On Tuesday, March 7, 2017 at 8:00:01 AM UTC-5, Klemens Krause wrote:
> cjl wrote:
> ...
> > This is the 50th anniversary of the R-L Monitor System.
> > And P?S/8, unlike OS/8 can set today's date correctly.
>
> I wonder, if I'm really the only one in this world, who faced this problem
> in 1999, nearly 20 years ago?
No, we all suffered through the REAL problem, this is some lame problem that obfuscates the real problem.
>
> .
> .VERSION
> OS/8 - KBM V3Q - CCL V1F
>
> .DA 7-MAR-17
>
> .DATE
> TUESDAY MAR 7, 2017
I never tested the defective code to see if it could be even worse than we knew.
First layer of the problem [which your printout below confirms, not that the junk output is even meaningful].
OS/ ONLY supports the date in the range of 1970-1977. This is inherently partof the design and CANNOT BE FIXED. Delusions aside, this is the absolute fact.
Now to the delusionary add-ons.
I know the people who did this design personally, I was nearly suckered into working on it, and fortunately I refused because inside of DEC back in that day, the idiocy of managers reigned. the inherent short-sighted mediocrity was baked in and non-removabe. [For those who don't know me well, I am a glass is definitely half-empty person, unfortunately, if you are the other half, you suffer for it when it comes to OS/8.]
Various heavy users of OS/8 who even liked it [as opposed to people like me who merely tolerated it and also did something about it to get around much of the problems, in fact it grew to be a model of what NOT to do] warned my lazy friends about the upcoming problem because on TOPS10 they had their own expiration issues known historically as DATE75. By scrounging bits in the various directory formats, they were able to give a "new lease on life" on their analogous problem to work far into the future.
But despite all that warning, the initial reaction was just ignore it and it will go away; it didn't.
A PROPER fix to this problem is about a 4-layer issue:
1) What became OS/8 was initially a literal weekend hack [we as a group are night-owls and binge-workers, but a week-end is still a week-end.
A few good ideas, lots of really crap ones, and a lot of crap code to bind it together into something that LOOOKS good to show to the dim bulbs in charge who among other incredibly stupid things they did was to just not listen to anything about the R-L Monitor, also written by Richard Lary, who did most of the week-end brainstorming. I had the dubious distinction of meeting one of these "brains" some years later at a DECUS symposium hoping that he had an open mind; instead I found a large absence of one. What I was there for was hopefully he had had a favorable reaction to the R-L Monitor because what I am known for, the alternate O/S for the PDP-8 is P?S/8 the outgrowth of the R-L Monitor System and maybe setup some dialogue, etc.
Unfortunate, he revealed something quite embarrassing which I won't embarrass the guy by naming him. In essence, he was hung up on the relatively trivial "modifications to the DECtape Library System" which is just about the most unimportant topic in this area you could think of. This is a "system" that lacks what anyone can call a "file system" at its core; these were just kludges to make it slightly better and modestly more functional than the original, which is just a core-image saver, literally nothing more.
Details aside, the point is this pathetic "manager" was incompetent to understand ANYTHING about the R-L Monitor [which today can can be likened to a "diamond in the rough" so to speak. I actually wrote a small part of it, the support for passing input files to FOCAL, 1969 as the redirected input from the console during the phase of reading the contents of the files, and then when all the files are read, reverting to the usual FOCAL input from the 03/04 console, etc. It was a nice effort, but no big deal, but I get my two-cents worth of claim about the R-L Monitor System, the rest of it is the work of people far better than I was at the time, etc.]
And later, so much of this historical stuff is told in hindsight, I found out indeed R-L was rejected by this gut and has buddies, all of whom were pretty bad, and as must of us know, DEC's downfall was supremely bad management, and I'm sure many can cite their own examples of same, etc.
Thus, instead of being able to attempt to introduce him to what progress had been made in severely improving R-L on the way to being P?S/8, it was obvious it was hopeless, and frankly I was dumbfounded and didn't know what to respond, so I just thanked him for his time and left.
Why bring this up, because he was a typical example of a small group of small minds that did this: The demo done over a week-end was Richard Lary's direct work in that short a time, with encouragement and some suggestions from his four friends who are hands down the best PDP-8 programmers there ever were up to that time, bar none. And I studied only part of what they did. Richie did many things for DEC, many not even 12-bit oriented.
The point is the demo was supposed to be nothing more than, uh, a demo! They came prepared to scrap the short-work and have a second system that would LOOK like the demo, but be a lot better. These idiots rejected that and insisted the demo be maintained! [This is monumentally stupid! As a manager of talented people, you should take their advice; instead they over-rode the best technical minds available, but enough on the stupidity of bad management for the moment.
As a result of this, the other four refuses to work on it knowing just how much was wrong with it.
Soon thereafter, I got a phone call from Richie [we all knew each other because we were all within two years of each other at Brooklyn Poly; the common threat was the original straight -8 there: 4K and a single TU55 on a TC01, etc.]
He wanted to recruit me and I turned him down. He couldn't fault my logic: I told him we [there were some others at the time, and they are also early contributors to P?S/8] were starting over from scratch in terms of the source code and making R-L even better, documenting it [the first system documentation varied from extremely poor to non-existent. In fact one of our first efforts was to write some stopgap documentation on how to use it; we had learned from Richie and each other, no manuals at all!] And then it was renamed MS/8 and submitted to DECUS; you should be able to get a copy of it; it can run on the SIMH simulator as is, etc. but for me, it is the "grandfather" of more recent P?S/8, although a few things we retained compatibility here and there, and in no way made it worse, etc.] So, even at that point, Richie could not fault me for working on his unpolished gem of a work instead of the new thing forced to continue the piss-poor demo. Yes, I was tipped off by one of the four of them; we all periodically spoke to each other consisting of trips to Maynard Mass or one or two of them coming to the school and we went out for Chinese food, etc. This is the camaraderie of a group of friends, all of whom are connected by the PDP-8, etc.
Eventually, some of the group did go to DEC to work with Richle on PS/9 later renamed OS/8. The rest stayed in the New York area, became employees and/or consultants on various projects perhaps some have heard about, etc. But we all did work incrementally on P?S/8, although eventually it all fell upon me to continue with it and eventually it was virtually all my work, etc.
The demo had a good idea and a bad implementation of related portions.
The OS/8 directory started out with the boon-doggle notion of a linked-list directory, sounds good in theory, but because of the half-asses nature of the design, this is what you have:
a) the linked list is superfluous. The actual physical sectors are sequential. The linking is implicit. The structures are redundant to the inherent limitation of the design and only lead to inefficiency maintaining the superfluous nature of the structure.
b) The length allocated for the directory is neither fish nor fowl. If you have a small DECtape directory and all of your files consist of just a few relatively large files that fit on a DECtape, it is cute to be able to print them out on a piece of teletype paper and stick it in the DECtape cannister, but if you have applications that require tons of modules as say some Fortran projects and the like, etc. You cannot likely get all of them on the DECtape. Certainly, you cannot get them onto larger devices such as the RK05. OS/8 has the dubious distinction that for many people, the DIRECTORY runs out of slots BEFORE the underlying storage!
c) The directory links must be maintained as is. As such, as a practical matter, the size of the directory can neither be shortened nor lengthened. The DEVICE length can be defined, and even then only by a klduge; a table maintained inside of OS/8 PIP, but the directory HAS to be just what it is, and nothing else.
In the directory structure, there is a potentially acceptable feature called the Additional Words count. The default is one word. This is used to hold the 12-bit value of the date, which for the period 197-1977 is perfectly fine, and worthless if you want to make the date "lifetime" larger.
Many people faces with the storage going to waste due to the small capacity of the directory opted to remove date support completely. This got a few more files, but clearly this was out of desperation.
Since this short-sighted "feature" was never thought through, the directory could not get anything other than 12-bits at a time more.
Now let me show you the P?S/8 alternative which is 18 bits:
In P/S/8 one 12-bit word also stores the low-order 12-bits of the directory, and is essentially comparable [with some lessor improvements, smaller issues, etc.] but more importantly there are six more bits for the upper range of the date.
This allows the P?S/8 Version 9A [the up and coming release] to handle any date in the range of 01-Jan-1900 through 31-Dec-2411.
This is better than just about any other computer system you can name [including unix which dies in 2039, which now doesn't seem all that far away, does it.]
The fallacy is that with just a few more bits, so much more can be accommodated; no excuses allowed. [Note: P?S/8 date handling is undergoing revision, the current version is Version 8Z; it "only" goes from 01-Jan-1960 through 31-Dec-2099; but I found a better way to implement it.]
So, back to OS/8, simply no excuse; the directory needed to be modified and they had over two years to fix it; they didn't fix it, they instead kludged it to fool people for awhile.
Scrounging could only yield TWO bits. Thus, in theory, that means the date can be from 01-Jan-1970 through 31-Dec-2001. This is mythical but the cosmetics as part of the kludge do support that.
Apparently there are more bugs in implementing this than I know, but I never tested what you attempted. Back in the day the smaller issue was the Y2K problem and indeed some OS/8 programs print out badly past 31-Dec-1999, but if bug-free should work to the end of 2001. BUT NOT MORE THAN THAT!
But let's go back to the actual kludge and what you get as a result.
in the original system it was clearly uniquely and non-anomolously 01-Jan-1970 through 31-Dec-1977.
This was COSMETICALLY modified to obfuscate the problem:
All of the new programs concerned with the date created a fiction:
All dates are DECLARED to be either this year or one of the previous seven years.
In 1974, COS-300 was created as a form of "shell" over OS/8. COS-300's user interface is based on the DIBOL-8 user interface.
However, DIBOL-8 IS IN FACT the R-L Monitor with the names of the commands hacked up to allow what in P?S/8 we call concise execution commands. this is a simplfied "cousin" of CCL but it has no overhead, and in fact is quite similar to some newer systems from DEC released past OS/8, which was hopelessly and slavishly imitating the growing pains of TOPS-19.
Thus, by the time COS-300 came out it was in fact imitating P?S/8. [Remember, we all knew each other and at best this was a friendly rivalry; my lazy friends knew I was doing a better design than they were just heaping mediocre code on top of, but they didn't care, unmotivated largely because of these incompetent managers; good and talented people have to be motivated; when you don't, you get OS/8.]
COS-300 was aware of the same problem, but a different kludge was done. They changed the base year to 1974, thus in 1978, no important change occurred there, and the VT79 had come out, and the marketroid nonsense of OS78 and other hijinx. thus, to the user clueless user, it SEEMED to be fixed, after all if you set the date to 1978 it worked, right?
WRONG!
We were first developing P?S/8 on TOPS-10 and that was in 1967-1971. In point of fact, the real date of our early files could NOT even be properly represented in the original OS/8, much less after the kludge; our 1970 dated files DID NOT fair well in this kludge.
So, on 01-Jan-1978, we had files that appeared to be IN THE FUTURE because they were really from 1970 and not 1978 at all!
As the years wore on, the deferred consequences of the ugly kludge got worse, not better.
Today, when I have to archive OS/8 files, I have a caceat: OS/8 is NOT capable of an accurate rendering of the date of these files. That said, some people have PERSONAL KNOWLEDGE of the actual date or approximately thereso such that we can PROJECT them, and as such, an OS/8 directory was taken and then EDITED to become something OS/8 is incapable of, but is more ACCURATE than OS/8 and just based on the format of the output of the OS/8 DIR command.
And depending on the system, actual file dates are provided, but because of widespread use of MS-DOS/Windows, dates prior to 1980 are known to be incorrect. as such, the date is set to 01-Jan-1980 at 2 seconds into the day. This is the minimum practical date in Windows and will lead to a printout where the date is left out; best that can be done there.
This is why it is so important for P/S/8 to support that much wider date range. Files that are from the dawn of the 12-bit computing era [generally considered 1960 with the introduction of Seymour Cray's CDC 160] can be accurately files on P?S/8's new SHELL directory [a work in progress; the point is this aspect of it is perfected, not hatched like OS/8. never paint yourself into corners!].
The problem is now properly discussed, and I know most never expected that it would take this much detail to debunk this and remove all of the obfuscation.
this would not have happened if two more dim bulb managers hadn;t made more bad decisions.
While around 1967 these fools rejected the R-K Monitor out of sheer incompetence, the R-l/P?S/9 "story" was told in-house by those from Brooklyn Poly who told their colleagues in the 12-bit development group. All of them, as was I, cut their PDP-8 "teeth" on that system, and eventually there was a desire by the programming staff to have a chance to work with it. One of them arranged a demo of the then-current P?S/8. I came to DEC and demoe'd it and they were quite impressed by it.
However, the arrogant manager [I am tempted to name him as well, but I won't] asked me ONE question about it:
P?S/8 is a system that runs in a MINIMUM of 4K. Various programs and optional modular components can take advantage of more, even up to a full 32K if available.
I honestly answered 4K. He refused to talk to me further and was rather nasty, because he felt that his staff had "totally wasted his time". I later found out the real reason:
He only liked OS/8 because it forced the sale of more memory. Remember, many of the earlier models were hard to get to 8K with the extended memory controller upgrade, etc.
Thus, his official internal decision was that he didn't want it because "it would discourage memory sales".
Many of you know that depending on the program, even 18K may not be enough; the minimum memory is a worthless yardstick. And moreover, when the PDP-8/A came out, a lot of machines night have even less memory [or some ram/rom combinations]. Clearly a smaller memory footprint system to act as at least a program loader would be useful for that part of DEC's markiet. That was the FIRST time.
Somewhat later, i organized a "shootout" demo where I showed them P?S/8 running on a few TC08 TU56 drives. I said they can use OS/8 on the RK8E. Some of the snarky ones laughed at me. [Later they weren;t laughing].
I gave them the choice of source file; I asked them to put it on an OS/8 non-system DECtape. I believe it was a current work-in-progress piece of CCL, etc.
Then I assembled it to produce binary and a listing and we agreed I could turn off the listing output to save paper, and time the demo as up to when the LPT output started [the printing time ruins the comparison, and we agreed that was fair.]
The results were this: OS/8, despite running on much faster media [RK05 drives] took one half the time to get the result from PAL9 as P?S/8 and P/S/8 PAL did on DECtape despite the much slower media. [At this point, one of the snarky ones was no logner so snarky].
Then I turned the knife in the wound. I asked them to time loading the binary file just assembled into memory with ABSLDR. The time stars from the commend-deooder prompt and typing the file, start when you hit CR to start the loading and ends at the dot prompt afterwards.
Using the P?S/8 equivalent, while running on DECtapes, P?S/8 in fact loaded the same binary content into memory TWICE AS FAST as the OS/8 and RK05. At this point, Mr. Snarky had nothing to say and a bewildered expression on his face.
Then we went to the then-current manager; he hadn't paid attention, didn't care and refused to comment, just go away, I'm not interested. this of course was totally insulting to his programmers; great way to manage your people, idiot!
It was hopeless;
So, later I was contacted by one of Richie's comrades from back in the day; He had quit DEC but then worked as a consultant on many projects, including what became known as as 4K BASIC which is the basis for 8K BASIC, etc. and many other things.
He got me in touch with the project leader inside of Intersil that developed the IM6100 PDP-8 on a chip that later became the innards of the VT78.
Intersil had just produced a slightly better machine, based on static CMOS memory and a full-speed chip and capable of up to 32K in increments of4K each memory module having battery backup on board. This is known as the Intercept I and there is a kit form from Pacific CyberMetrix called the PCM-12 PCM12-A if wired, it's a semi-kit otherwise.] It used the DSD-210 superset of the RX01; it can handle up to four drives and can actually FORMAT 8" media, no DEC system can do that. [Note: Changing the media density to/from single or double is NOT formatting; it's just the misleading name of the associated OS/9 CCL command. Unless the media is already formatted, you cannot perform the OS/8 operation. The DSD-210 can format a magnetically wiped diskette and in fact that is recommended beforehand.] There is also an Omnibus interface for this hardware, etc.
Long story short, I signed a royalty agreement with Intersil for just the then-current P?S/8 configured for RX01/DSD-210 with up to 4 drives, which also supports the VT78 with up to 4 drives, and ON THE VT78, runs at least THIRTEEN TIMES AS FAST as OS/8. this is because on the VT78, OS/8 suffers from rotational latency; P?S/8 does not due to superior handler design [that necessitates it running in at least 8K, not 4K]. Typical Intercept configurations were 12K so the poor=performing OS/8 for RX01 could also be used, but that was outside of the license agreement. They got only then-current LPT listings on paper, no sources and no support whatsoever. Thus, I retain all rights to P?S/8 to this day.
And what did DEC do when they heard about this? They were going to SUE ME because they ASSUMED no one outside of DEC could have written another operating system, thus I "must have" stolen it from DEC [not in the slightest with the exception of FOCAL, 1969].
All potential customers of what Intersil called the Intercept Floppy Disk Operating System [IFDOS] were first required to either purchase or sign an agreement that they had in their personal possession not only FOCAL, but an entire kit of the "paper-tape operating system" which includes PAL III, EDIT, a copy of the BIN loader, etc.
DEC sold those kits to Intersil and Intersil sold them directly to customers so that lesser machines could do some software work, etc.
I documented that P?S/8 FOCAL is FOCAL, 1969 with a massive overlay to make it work with P?S/8 BINARy and TEXT files, etc. And it is created by first loading the FOCAL, 1969 binary followed by the binary output of the P?S/8 PAL assembly of this overlay code, then the result is written to the P?S/8 system device.
Further, I provided them with a copy of FOCAL, 69 captured into P?S/8 TFS [Tiny File System[ binary files and the binary output of the assembly of the overlay, and a short P?S/8 BATCH file that creates the system program P?S/8 FOCAL pragmatically for that particular configuration, etc. [Note: P?S/8 BATCH, like the R-L Monitor BATCh before it, runs in 4K. OS/8 BATCH is a kludge added on later than requires at least 12K, and worse, it steals 4 words from the system handler extension such as the RX system in question so the code has an added burden of requiring being written into a slightly smaller space than otherwise/]
Thus, these are already licensed users of FOCAL, and all other code has noth9ing to do with DEC.
Fortunately, one of the people in the group now working for DEC explained all of this to the lawyers, but what cinched it was they were told that DEC turned the software down, not once but twice! Thus, I never was actually sued, but over the years there were some sore points between me and bad managers; I simply do not suffer fools, etc.
In any case, that was 1978, and very active P?S/8 development continued into about 1990 when having the PDP-8 as the source of your livelihood was becoming economically impossible, and in fact I was mostly working on Kermit-12 for OS/8 to allow files to be interchanged more easily, and that has paid off to this day as there are people using my Kermit-12 utilities even now.]
But I stopped working on 12-bit code altogether in 1992.
In 2007 I had the start of some medical problems, that still plague me today. The short answer is it won't kill me. And about then I started writing notes to myself about how to expand P?S/8 once I got my act together again, etc.
By 2013, I started working with others on the SIMH simulator for the PDP-8 and actually started working on some new code, some foundational fragments, and some bug fixes and improvements on the last whole release of Version 8Z first released 23-Feb-1988 with a lot of small patches for a few years, the last incomplete work has a date of 1992 on it, etc.
More recently, I have made even more changes to P?S/8 and the first stage is fixing some bugs and making changes in preparation for a new release to be known as 9A, although I don't have an exact time-table, I do know most of the issues now, so this should be forthcoming, but I have a reason for delay:
while I have been working on P/S/8 as described above, I have also been spending a serious amount of time [I have time now, as I am "retired" whatever that means] on major improvements to not the innards of SIMH so much as the overall environment and peripheral utilities and components that transform SIMH as released into a serioud development environment that I can consider worthy [I have very high standards and as such I am my own worst critic]/. I see an end in sight, including I would say a pretty good amount of functional documentation. [My my own reckoning, it is superior to the equivalent in DEC's documents of OS/8 in terms of useful details.]
Thus, this will be a major "shot in the arm" for 12-bit productivity and addresses many very real issues a PDP-8 programmer faces; this was not on the minds of the writers of SIMH; what they did is great but it is not a total solution, just a great "heart" of something much larger.]
While I do not have an exact release date, it will be capable of elegantly running editing sessions in Windows, it is very much Windows-dependent, and passing files back and forth between OS/8 V3D with patches and extensions fro me and others, AND P?S/8 Version 8Z patched to date, which is an imperfect solution, but it is the last stable release, although there is a little more work needed on it; so it may be replaced later in newer still releases of the package, but the overall goal is to replace it first with 9A and then the next phase of P?S/8, which is the P?S/8 SHELL. But I will release 9A when the functionality is hardly different from the current 8Z, but all the prep work for the SHELL has been done, etc.
For those who are not familiar with the goals of the P?S/8 SHELL, here are a few particulars:
1) An alternate environment for ALL OS/8 CUSPs and P?S/8 basic's system programs. It is not binary compatible with either, but a reasonably short source code change will accommodate all such programs. [The internal goals are quite similar to the CALLS of OS/8, but not the implementations.]
2) A far superior and dynamically adjustable file system that can be scaled up or down as necessary.
3) Full 18-bit date support for all files.
4) Superior execution models to prevent the wasteful saving of memory when it is superfluous which is the vast bulk of the practical number of instances. Programs under development can set saving and debugging options. The debugger is expected to be a superset of P?S/8 ODT which in turn is a proper superset of OS/8 ODT plus features taken from DDT. As with P?S/8 basic, overlay structure will be defined.
5) As with P/S/8 basic, a superior command-line model that is based on concise command formation. The notion of CCL is superfluous if the system doesn't depend on a command-decoder routinely. However, one will be available for the few programs that make good use of the mechanism; but recognition that these programs are in the minority.
6) While in theory the SHELL runs in 4K, as a practical matter, most command will gracefully inform that more is needed; this is a fluid dynamic situation because available memory is defined from 4K on up to 32K and many points in between; this is in part due to the modular optional components of P?S/8 including the Logical Console Overlay, a conceptual feature OS/8 never could have and is already available in the basic P?S/8. No component of P/S/8 raises the minimal memory beyond 8K, but performance is generally more like 4K, and that may be inadequate depending on program requirements. Practical memory sizes suggest that 16K is a nice amount of memory for many purposes, and as much as 28K could be required for certain specific operations, and actually if all are enabled at once, 32K would be required.
7) SHELL filenames with be 12.4, and the filenames will be case-retentive, similar to OS/2. you can ignore the case in all contestx, but the original case of the name is ratained and can be used optionally for cosmetic purposes such as a "natural" option of directory printouts. Notice that this is exactly twice the capability of OS/8's file system names notwithstanding OS/8 is upper-case only.
8) Clever memory management means the actual SHELL is extensible and can be moidular if it takes advantage of the basic P?S/8 system program overlay structure. Indeed, SHELL will be a basic P?S/8 system program. Running it will be able to configure the SHELL [turn it on or off] as one of the ways to initiate it.
9) A new low-level monitor will be added shortly in 9A to prevent configurational loss of control. Pressing Control-D when the system is loading enters the low-level monitor instead of whichever system component would normally load. This will allow controlling Logical Console and Shell configurations including deleting either or both, and stop BATCH processing in progress thrown in for good measure [which is usually not a problem]. This is primarily needed to prevent problems such as moving a live P?S/8 system to where the required hardware for the Logical Console Overlay doesn't exist; it will no longer be either required to have the requisite hardware if relevant and/or stop the machine and make manual patches in memory in perverse circumstances if this was not disabled prior to the moving of the media/system, etc. [this was a small sore point; some Overlay configurations needed such as the VT8E, and by mistake the overlay was enabled yet the system was brought to another machine; the low level monitor prevents this from being a problem.
8) Far superior non-system handlers are used for all SHELL file operations. This eliminates a conceptual flaw of OS/8 I have had reports of actually happening:
In OS/8 FOOLISHLY ALL calls to all handlers are formed identically. To a newbie, this sounds like a great design. IT IS NOT!
All OS/8 handlers require an error exit handler. MOST situations this is useful, but not ALL. There is one that is quite fatal:
The last operation of OS/8 initiating execution of all programs is to act on a call places within the system kernel. If there is an error on that last read, there is a fatal HALT. There is no possible recovery. The system must be rebooted, and this is not generally known, which of course gives credit to the general reliability of most DEC hardware [at least when new; today more people are experiencing errors we didn't see before].
Thus, if this particular call fails, and you press CONTINUE, you may very well corrupt not only the system in memory, but actually damage the contents of the system device! There simply is no room for ANY form of error handler; how could there be since this is a very limited system kernel never designed to handle it!
P?S/8 fares differently on this same general problem.
All P/S/8 SYSTEM handler calls do not support an error return at all! Instead, when there is an error, there is an internal HALT within the system handler. As in the R-L Monitor before it, pressing CONTINUE is ENCOURAGED as this is a SAFE halt intended to be retried, and generally it recovers completely. the classic example is write-protect the DECtape drive, try to write on it, the HALT happens, enable writing, then press CONTINUE and it succeeds.
If the Logical Console Overlay is enabled, the system does not halt at all, instead a nice screen of particulars of the failing call is displayed on the Logical Console device [which may differ from the 03/04 console] and screen options exist to retry or abort/exit to 07600 to restart P?S/8. [Yes, we had that before MS-DOS, but actually it originates in the ADSS/9 system for the PDP-9/15. it's known as an IOPS4 error, but the cosmetics of the newer P?S/8 one are better, and judge for yourself who ripped off who :-). Some other aspects of P?S/8 were ripped off by CP/M-80 and MS-DOS.]
All of the operations of the SHELL internally use the system handler. It allows access to 128-word blocks 0000-7777 [or less if no more exist] on logical units 0 through 7, which on TC01/08 DECtape is all 8 DECtapes. The handler is always there, nothing to load, ever.
Admittedly, for any one logical unit, this is 1/2 of the storage space covered by a corresponding OS/8 device. [But then again, there could be 8 of them which is four times as large!].
But all of that is moot in the SHELL. The SHELL FILES are accessed by non-system handlers which are partially conceptual cousins of OS/8 non-system handlers with the following exceptions:
a) OS/8 non-system handlers must be loaded into field 0. P/S/8 non-system handlers can load into any available field as they are both page and field relocatable.
b) OS/8 non-system handlers are limited to at most two pages. P?S/8 non-system handlers can be as much as an entire FIELD long, although most are one-four pages. The RX01 P?S/8 handler is far superior to the OS/8 equivalent in many ways; it is three pages long.
c) The blocks are 128 words long, not 256 words long, thus the minimum buffer size is one page; in OS/8 it is at least two, and only multiles of two up to thirty are allowed. In P?S/8, one page is fine, and any number up to 32 is allowed. [This is because P?S/8 does not restrict access to any last page in any extended memory field. System kernel indicates will indicate the memory resources available; no program has to calculate it by itself, an annoyance in OS/8. At most, all of the highest field of memory is off limits, perhaps less. But any program can dynamically determine this. But other than that, assuming extended memory exists, all extended memory fields from 1 though that upper limit are 100% available to programs, thus you can have 31 or 32 pages available to a buffer when accessing a non-system device.
d) The call is organized only a partial in-line argument mechanism. The call points to the basic argument list; it can be useful to place this on Page Zero when performing practical reading and writing, minor but the right thing to do.
4) OS/8 can handle as much as 4096 records of 256 words each. While the basic P?S/8 system handler can only get to 4096 128-word sizes blocks, the P?S/8 non-system handlers can access up to 2048 times as much storage per logical unit. Assuming six-bit bytes, the conceptual scope of a P?S/8 non-system handler is up to about 32 GB.
As a practical matter, P?S/8 can handle all four RK05 drives as RK0:, RK1:, RK2: and RK#:. this is all from one handler. Each of them appears to be a set of 128 word blocks in the range of 00000-31277. OS/8 can only have one handler to address one half of one drive.}}
moreover, there is space in the handler to support the RKS8E modified RK8E/RK05 controller. I am seeking documentation on exactly how it implements the extra bit of addressing that gets support up to EIGHT drives. I also need to know how to tell the hardware is an actual RKS8E to avoid spoofing the handler, but there is plenty of room in the handler to dynamically figure this out. [But I do need a fool-proof method.] It would be nice if someone knows more about the full definition of the modifications. OS/8 plays it safe and just has lamer separate handlers, etc.
The OS/8 non-system TD8E handler can access at most two drives. But there is a definition for as much as four TD8E's in any one system, and back in the day I saw one of them four TU56s on the machine and four TD8E cards. The P?S/8 non0-system TD8E handler can handle all of them.
When you can have as much as an entire field for the code of a non-system handler, writing excellent handlers is readily possible, not that I encourage sloppy code or too-tight code written out of desperation with serious performance and/or configurational and/or error recovery issues. It's just that two pages is generally compromised for just about any device that needs more than one page, the TD8E non-system OS/8 handler comes the closest to not being cramped, but with a little more space I can do so much more.
That's a taste of what the SHELL can do. Currently there is only one non-system handler-aware program in the basic P?S/8 version 8Z; it's P?S/8 BLKCPY which is an excellent copy and/or compare program for any number of blocks copying from anything to anything.
Since P?S/8 non-system handlers each handle 8 logical units, there is generally far less need for handlers by head count. OS/8 effectively only has 14 handlers, because of the reserved SYS and proxy DSK handlers in the defined 15 maximum. I have often had to constantly reconfigure OS/8 and have mutliple aved copies of OS/8 BUiLD, etc.
But with each P?S/8 non-system handler inherently handling up to 8 logical units, it is easier to support far more handlers if need be.
In TOPS-10, there is the DTA handler and it takses logical unit arguments 9 through 7, and P?S/8 does the same. OS/8 treats DTA1: as a handler, and DTA0: is a different handler in that 14 maximum allowed, etc.
That is just a taste for now, but I wlll be releasing a system fairly soon [perhaps in April] P?S/8 by nature is always a work-in-progress, but here is something telling:
I mostly had to use OS/8 for the benefit of longer files; P?S/8 TFS files are only useful for small to medium projects; on those, P?S/8 is far more efficent to edit, but random access editing of files has to be gotten used to, and admittedly there are personal preference issues here.
But I am a "power user" and I must have files so large they tax OS/8. The source code of P?S/8 PAL overflows OS/8 CREF even with the "mammoth" option set, and this is after I did a concerted effort to "balance" the symbols to optimize to handle the CREF mammoth option quirk. [For those who are not familiar, OS/8 CREF has a forces half-point of the exact symbol named KGNNNN. Thus, you could have an acceptable total number of symbols, but too many in one "half" etc.]
But CREF cannot completely handle it, period. OS/8 has become too limited for me.
Routinely I use P?S/8 PAL exclusively, so now I hardly need OS/8 at all for my personal development usage, but it is still there for some minor quirks and stopgap measures [one of which will be shortly eliminated caused mainly because of the SIMH environment]
And I use host-environment editing and post-processing facilities. I can edit files in Windows using notepad, editpadlite7, or TECO as necessary. While I can use OS/8 TECO, it is actually more work to do so. Also TECOC for Windows is a slightly better TECO and I need some of its features for other parts of the package, etc.
Thus, after a "small interlude" I am back and more productive than ever. [There is a whole lot more, but this is just a warmup for some time later.]
cjl