• Please review our updated Terms and Rules here

SIMH/os8diskserver/PDP-8

In an RK05-based system each drive has 2 pseudo platters because there are more blocks on a single RK05 than OS/8 can handle. Actually they're not the 2 sides of the platter but are the outer and inner tracks but no matter. For drive 0 you get RKA0,RKB0, for drive 1 RKA1,RKB1 etc. Maximum of 4 drives 0-3. The system handler (RK8E) can only handle 1 drive and a non-system handler (RK05) is used to handle any others.

SYS is a special device name for BUILD and refers to the system device whatever that is - for RK05s it is RKA0 and for the os8disksystem it is SDA0.
By the way, Kyle has altered the device names a little over time and I'm not too familiar with whatever the present setup is, follow the readme.
You can only have 1 system handler in a system. That's why you need to remove any preexisting system handlers from BUILD before booting. There is only 1 SYS and BUILD boots to it. It's usual though not necessary for SYS to be equivalenced to a device name such as (here) SDA0 just to make for symmetry.

Now that I reread here there's an oddity in the device naming in the current os8diskserver in that both the system and non-system handlers apparently belong to device SDSK. This is really unusual practice and I can't think why Kyle has done it. Confusing however not strictly an issue here .....

I can't see any reason why what you did above shouldn't have worked. Works for me every time. I suspect (though not sure) that maybe you missed out a step and BUILD tried to boot onto an RK05 which of course doesn't exist in your system. It may be a good idea to delete any device (you don't need to unload them all) which you don't have otherwise if you accidentally refer to it in a command later the system will hang.

By the way you can check what devices are installed in your OS/8 system by typing RES/E at the monitor prompt.
HTH
 
Last edited:
Bob, Thanks for the information. I could have missed something and I'll try again. For now I want to familiarize myself a little more with the build commands. I have a copy of the OS8 System Reference and the Handbook. I'm comparing what I see on my system, as directed by the SerialDisk instructions and what is shown in these documents. I have noticed some differences and have also learned a few items.

The Build instructions start with starting BUILD

.RUN SYS BUILD

Here I noticed that the documents use the statement

.R BUILD

Apparently they are the same. The .R command only uses *.sv files from the SYS: device. So referencing it is not needed. The RUN command does a GET and START, and be used on any device. So, no trouble here.

The next command is the PR (print). This lists the system and non-system device handlers. I first noticed that the documents show a PR listing that is segregated under two titles of SYSTEM and NONSYSTEM. My listing does not show this. I figure maybe the way this is currently set up is that there is no non-system handlers at all, so maybe the titles are not displayed. Here is what I see;

$PR

BAT : *BAT
KL8E: *TTY
LPSV: *LPT
RK8E: *SYS RKA0 RKB0
RK05: *RKA0 *RKB0 *RKA1 *RKB1 RKA2 RKB2 RKA3 RKB3
RX02: *RXA0 *RXA1
TD8A: *DTA0 *DTA1
RL0 : *RL0A *RL0B

DSK=RK8E:SYS

I figure that all these device handlers are all system devices, which means they are all on the same device as OS8. The * means that the handler is active, and/or will be loaded into memory when booted. Kyle's notes say to unload BAT, LPSV and RK8E. I wonder why RK8E is unloaded, since that is where SYS is. (I see that later SYS is in SDSK:) Also I figure the only device handlers that are really needed is KL8E and RK05. Then I also wonder what the last line means DSK=RK8E:SYS. This is not shown in any of the documents.

The instructions next unload BAT, LPSV and RK8E, which removes them from PR.

$PR

KL8E: *TTY
RK05: *RKA0 *RKB0 *RKA1 *RKB1 RKA2 RKB2 RKA3 RKB3
RX02: *RXA0 *RXA1
TD8A: *DTA0 *DTA1
RL0 : *RL0A *RL0B

DSK=RK8E:SYS

The next command loads the new system disk handler into memory.

$LO SYS:DSKSYS

This shows up in the PR listing as the SDSK: line. These names do not have an * because they are not activated yet

$PR

KL8E: *TTY
RK05: *RKA0 *RKB0 *RKA1 *RKB1 RKA2 RKB2 RKA3 RKB3
RX02: *RXA0 *RXA1
TD8A: *DTA0 *DTA1
RL0 : *RL0A *RL0B
SDSK: SYS SDA0 SDB0

DSK=RK8E:SYS

The INSERT command then marks them for activation. I read in the documents that you must insert each device singly and not in a group. But this seems to work as is, as each gets an *.

$IN SDSK:SYS,SDA0,SDB0

$PR

KL8E: *TTY
RK05: *RKA0 *RKB0 *RKA1 *RKB1 RKA2 RKB2 RKA3 RKB3
RX02: *RXA0 *RXA1
TD8A: *DTA0 *DTA1
RL0 : *RL0A *RL0B
SDSK: *SYS *SDA0 *SDB0

DSK=RK8E:SYS

The same load and insert is done with the non system handler.

$PR

KL8E: *TTY
RK05: *RKA0 *RKB0 *RKA1 *RKB1 RKA2 RKB2 RKA3 RKB3
RX02: *RXA0 *RXA1
TD8A: *DTA0 *DTA1
RL0 : *RL0A *RL0B
SDSK: *SYS *SDA0 *SDB0
SDSK: SDA0 SDB0 *SDA1 *SDB1

DSK=RK8E:SYS

Kyle then deletes the DECTape handler. This just deactivates them, removes the *.

$DE DTA0-1

$PR

KL8E: *TTY
RK05: *RKA0 *RKB0 *RKA1 *RKB1 RKA2 RKB2 RKA3 RKB3
RX02: *RXA0 *RXA1
TD8A: DTA0 DTA1
RL0 : *RL0A *RL0B
SDSK: *SYS *SDA0 *SDB0
SDSK: SDA0 SDB0 *SDA1 *SDB1

DSK=RK8E:SYS

Next is a command I can't find in the documentation.

$DSK=SYS

Is this a NAME command? Yet it seems to work in that it changes the last line of PR that I don't know about

$PR

KL8E: *TTY
RK05: *RKA0 *RKB0 *RKA1 *RKB1 RKA2 RKB2 RKA3 RKB3
RX02: *RXA0 *RXA1
TD8A: DTA0 DTA1
RL0 : *RL0A *RL0B
SDSK: *SYS *SDA0 *SDB0
SDSK: SDA0 SDB0 *SDA1 *SDB1

DSK=SDSK:SYS

This is where the Boot Strap would be done. I don't understand how this last PR listing will make the non system stuff. It also just occurred to me that the system handlers do not have a group name. The OS8 System Reference says "The available 'system device' handlers are listed first, and then the non-system handlers. Each non-system handler has both a group name and an individual permanent device name. The group name appears to the left of the colon and the permanent device name(s) to the right. The permanent names are the names by
which OS/8 will recognize the device." So are these all non system handlers, because they have a group and permanent name?

Still reading, but would like any assistance available, thanks Mike.
 
Bob, I re-read your last post and the last sentence about RES/E caught my eye. I spent some time searching though the OS8 reference manual looking for it, but didn't find anything. So I just typed it in to see what would occur. This is what was displayed.

.RES/E

196 FILES IN 3182 BLOCKS USING 6 SEGMENTS
10 FREE BLOCKS (2 EMPTIES)

#..NAME TYPE MODE SIZ BLK KIND U V ENT USER
01 SYS..RK8E RWF 3248 SYS......0 E..07
02 DSK..RK8E RWF 3248 SYS......0 E..07
03 BAT..BAT..R........16.........B..00
04 TTY..TTY..RW.......17+ KL8E...E 176
05 LPT..LTPR W........20..LPSV...C..05
06 RKA0 RK8E RWF 3248 21..RK05 0 A..20
07 RKB0 RK8E RWF 3248 21..RK05 0 A..21
10 RKA1 RK8E RWF 3248 21..RK05 1 A..22
11 RKB1 RK8E RWF 3248 21..RK05 1 A..23
12 RXA0 RX02 RWF..988 22+...........32
13 RXA1 RX02 RWF..988 22+...........36
14 DTA0 TD8E RWF..737 23+ TD8..0 D..10
15 DTA1 TD8E RWF..737 23+ TD8..1 D..14
16 RLOA RL01 RWF 4081 24+......0 A..44
17 RLOB RL01 RWF 4081 24+......0 A..40

FREE DEVICE SLOTS: NONE, FREE BLOCK SLOTS: 01
OS/8 V3T

This appears to be a Device Handler table and it is full. This was done with my minimal system prior to any BUILD work.

Can you help me out with every thing means in this table. I understand the NAME and TYPE.

What is the MODE? It appears that it defines what the handler can do? R for READ. W for WRITE and F for ???

SIZ and BLK are physical sizes?

What is KIND, U, V and ENT. I figure User is for time share stuff.

******

I'm going to try the BUILD again, but this time I'm going to do each step separately and then BUILD to see if it works and maybe determine which step is causing the problem. I figure I'll unload everything possible. Let you know how this works. Thanks Mike
 
I decided to try doing one thing in BUILD and then Bootstrapping to see what happens.

Started BUILD with

.R BUILD

$PR and it displayed the normal stuff

$UN BAT decided to unload the BAT

$BO

Here the program was running. I waited and waited. I waited 5 minutes. There was no activity on Serial Disk or the Front panel. The Run light was still on, but nothing was happening. After maybe 6-7 minutes I stopped and re loaded the Boot Loader. The server started as normal, but the rest failed. The BO command ruined something. I have to start again and maybe try something else. I wonder if the BUILD program is corrupt? Thanks Mike
 
Did a little more work this afternoon and made some progress. Re made and assembled the system and non-system device handlers.

I then ran BUILD and removed all the handlers except TTY and RK05. Then loaded and inserted both system and non-system.

Ran BOOT, and received the WRITE ZERO DIRECTORY? again. I found some information about this in the SYSTEM command section of the OS8 Reference.

"If the device specified in SYSTEM is not the current system device, the user will have an opportunity to have a zero directory placed on his new device."

I think the current device is the same, it is just being renamed and this may be responsible for this message. I answered 'N'.

The front panel lit up and Serial Disk was active and after a minute or two, I saw SYS BUILT. Maybe the last time I tried answering N to the question, I could have made a mistake some where, but I really don't know what was different. So I proceeded and saved the build. I tried the test

.DIR SDB0:/P I don't know what the /P switch is, but I got a listing of what is there. HOT DOG!

So I tried .DIR SDA0:/P and got the system directory. Then I tried

.DIR SDB1:/P This caused trouble. Serial Disk displayed Warning: No Second Disk and a 2nd message, Failed to initialize, Sending NACK. Here everything stopped. I had to use the Boot loader to get the machine going again, but it started and it all worked with the new stuff. So I decided to try .DIR SDB1:/P This caused the same trouble. I thought that there were the four devices, am I wrong? Is there only the two SDA0: and SDB0:? Maybe there still is some trouble?

I also tried RES/E again and received different results.

.RES/E

196 FILES IN 3182 BLOCKS USING 6 SEGMENTS
10 FREE BLOCKS (2 EMPTIES)

#..NAME TYPE MODE SIZ BLK KIND U V ENT USER
01 SYS..64.. RWF......SYS......0 E..07
02 DSK..64.. RWF......SYS......0 E..07
03 TTY..TTY..RW.......16+ KL8E...E 176
04 RKA0 RK8E RWF 3248 17..RK05 0 A..20
05 RKB0 RK8E RWF 3248 17..RK05 0 A..21
06 RKA1 RK8E RWF 3248 17..RK05 1 A..22
07 RKB1 RK8E RWF 3248 17..RK05 1 A..23
10 T4.. 64............SYS......0.E..07
11 TDA0 64............SYS......1.E..60
12 T5.. 64............20.........D.126
13 TDA1 64............20.........D.134

FREE DEVICE SLOTS: 04, FREE BLOCK SLOTS: 05
OS/8 V3T

I think I understand the first 7 handlers, but why is there T4, TDA0, T5 and TDA1? I'd like to know more about this. Anyway, Making progress, need to learn ALOT more, Mike
 
Are you loading two disk images with SerialDisk? Seems like you should at least be getting SDA0 and SDA1 (the two "sides" of the first disk). SDB0 and SDB1 should be the two segments of the second image.

Jack
 
Not quite. As I said earlier SDA0 and SDB0 refer to the partitions of the first disk, SDA1 and SDB1 refer to the second disk. The reason for the error message is that you have started the server with only 1 disk. Can't remember the syntax offhand but it is something like

-1 system disk.rk05 -2 second disk.rk05

Well done. Just run the server again with a second disk added. Remember that it is ONLY the disk (file) which you have just built which can be used as a system disk because that's the only one with the new handlers inserted, but you can use any other disk as the second one.

Re some of your earlier problems, if you try to boot without specifying a new system device BUILD will try to rebuild/boot onto the existing one which is this case is a physical RK05. Since you don't have one, it will hang.

When you run RES(orc) it tries to make sense of the device tables. If you do a little more reading you will find that the device names are coded in a compressed form which gives a non unique decode. So for the original DEC devices RESORC known what their real name is but for user developed handlers it just does its best.

So TDA0 and TDA1 are likely SDA0 and SDA1, T4 and T5 are likely SDB0 and SDB1. Too bad - that's just the way OS/8 is, but at least it shows you that you have inserted 4 new devices ;).

You asked a whole heap earlier. This is all (or mostly) documented in the BUILD writeup. The OS/8 manual which you're referring to is really the user guide but there are a few other manuals (on bitsavers) which cover software support and system details more thoroughly, lots to read ;).
 
Last edited:
Can you help me out with every thing means in this table. I understand the NAME and TYPE.

What is the MODE? It appears that it defines what the handler can do? R for READ. W for WRITE and F for ???

SIZ and BLK are physical sizes?

What is KIND, U, V and ENT. I figure User is for time share stuff.

Looking at the code for RESORC...

F is for "file-structured".

I think SIZ is the size of the device, and BLK is the location of the handler on disk.

KIND is an elaborate look-up of the device "kind" based on various information in the driver.
U is the unit number.
V is the version number from the driver.
ENT is the offset at which the driver should be entered to call for I/O on that device.

Vince
 
Thanks for the RES information. I have downloaded a copy of the OS8 Handbook, nearly 1000 pages of 'stuff'. Betta it's in there. Started reading, but there's a lot of stuff to digest. I found how to load two disks in Serial Disk. It was on the first page of Kyle's notes. Sometimes I can't see what I'm looking at. Anyway it works and I have all four partitions. Kyle also mentioned in the last paragraphs something about patches PIP. Probably will be asking questions about this. Lots to learn about OS/8.

Received a Raspberry PI in the mail today and not the kind I'm normally used to. Jack and Malcolm have a setup for using this mini computer as the host for Serial Disk. I still need a USB to RS232, and then I'm going to try out a procedure that Malcolm has written. Thanks again for all the help getting this to work. Gotta thank Kyle for all the work he must have put into Serial Disk. Mike
 
Received a Raspberry PI in the mail today and not the kind I'm normally used to. Jack and Malcolm have a setup for using this mini computer as the host for Serial Disk. I still need a USB to RS232, and then I'm going to try out a procedure that Malcolm has written. Thanks again for all the help getting this to work. Gotta thank Kyle for all the work he must have put into Serial Disk. Mike

Hi Mike - good luck with the RPi. SerialDisk has been working fine for me on it.

The instructions Mike mentions can be found here for the time being. Feedback and suggestions for improving it are very welcome.
 
Spent most of the day, today working on a 1926 Model T one ton Ford Truck. Did a little work on the rear axle, installed new bands in the transmission and rebuilt the carburetor.

Just finished up. So I thought I'd do something easy with OS8. I printed a directory for SYS:, DSK:, SDA0:, SDA1: SDB0:, and SDB1:. Turns out that SYS:, DSK:, SDA0: and SDA1: all have the same files on them. I think the SYS:, DSK: and SDA0: are all the same physical device, is that correct and If I'd delete one file from one of them that file would disappear from the others? Where as SDA1: is independent? If I deleted a file from SDA1: there would no change to the others

Then SDB0: and SDB1: have different files than SDA0 and 1, some are repeats, but SDB0: has the same files as SDB1:. I think these devices are independent of each other. I could delete files from one and the other would still have the file.

I'd like a little confirmation of my hunches, before I delete something I may need. I'd like to free up some space. Thanks Mike
 
Yes, you're quite correct.

SYS and SDA0 are mnemonics for the same device (which is the outer section of the first disk). If you read the listing of Kyle's system handler you will see that they are specified identically so they are identical. This was down to Kyle's choice, he could have called it anything or left it out, only SYS is mandatory.

SDB0 refers to the inner section of the first disk. If its files are the same as SYS that is happenstance, and deleting files from SDB0 won't delete them from SYS as they are different files on different tracks.

As one of the final steps in the BUILD procedure you specified DSK = SYS or something similar, so DSK and SYS are equivalent (and deleting files from one deletes them from the other). You could alternatively have specified that DSK = SDB1 for instance with the result that DSK != SYS but DSK = SDB1 instead.

Similarly, SDB0 and SDB1 are different areas of disk2 and nothing to do with disk 1.

Just for info, the reason for specifying DSK is that it is the default device for OS/8 file specifications (ie referring to an unqualified file name generally refers to DSK:filename). So OS/8 does not assume that all operations are carried out on the system disk unless DSK = SYS. This is a hangover from DECTape days where is was usual to have system and data files on different tapes, but in a disk system this is less common or important.

You're fairly shooting up the learning curve - well done!

By the way, why not just make a backup copy of disk1 and disk2 on the PC or Pi from time to time if you're worried about losing something? They're just files.
 
Last edited:
Spent most of the day, today working on a 1926 Model T one ton Ford Truck. Did a little work on the rear axle, installed new bands in the transmission and rebuilt the carburetor.

I revived a 1924 TT rack body that eventually ended up at the Shelburne Museum in Vermont. It was put on blocks in 1928 when the owners bough a much faster Model A pickup. A friend bought it in the 70s, and it didn't take too long to get it driving again. The engine/transmission oil was congealed from sitting for 50 years, so that was a challenge to clean out. Fortunately the transmission bands were fine. I wasn't looking forward to replacing them.
 
Mike, I'd make an image, if I knew how. I booted Knoppix 6 onto my XP machine to look for the SDA0 drive, but SDA0 is empty. I'd like to save the images for myself also. Can anyone tell me how to see the RK05 files on my XP machine? Thanks Mike
 
Can you share the RK05 disk image that includes the serial disk drivers?

Yes, no problem, my workshop is in the back of my somewhat chilly garage though, so it will need to wait until I put a heater in there for a bit (-4 degrees when I popped my nose in this morning, too chilly for me or my kit ;)).
 
I tried some copying and deleting today. I must still have something configured improperly. I have some BN files on SDA0 and SDA1. which I tried to copy. I entered

.COPY SDB0:*.BN<SDA0:*.BN

This worked, but the files appeared on both SDB0: and SDB1:

Then I attempted to delete files from SDB1:

.DEL SDB1:*.BN

This also worked, but again the files disappeared from both SDB0: and SDB1:

Tried the same but from SDB to SDA. The copies and deletes work the same.

It appears that I am not distinguishing between the two, SDA0/1: and SDB0/1:. They are appear as one volume to the machine.

Unsure where to look right now. Mike
 
I notice that earlier you had noted that a DIR also found the same files on SDA0 and SDA1. The possibility that immediately occurs to me is that you might have specified the same filename for both disk1 and disk2 when you started the server. In other words something like this:

./os8disk -1 systemdisk -2 systemdisk

This will work OK of course since OS/8 never does I/O to 2 devices simultaneously but it would have effect of equivalencing SDA0/SDA1 and SDB0/SDB1.

Any chance you've done that?

(A wilder possibility is that on your system you've somehow arranged for the disk2 filename to be a link to the system filename - same effect)
 
Last edited:
BINGO! Your are correct. I named both files the same. So I changed one and it works. Thanks

Yesterday, I toke the PDP8 and all the hardware to church. They were having a Ministry Fair. This is where all the temporary helpers for certain services can explain to the parish what they do. I'm on the TECH committee. We replace defective mice, keyboards, re image a hard disk and certain minor maintenance for the school. Anyway, When some one was attracted to the setup and asked what it's all about. I started out saying that I got a deal on a bunch of this old hardware and we are getting rid of all the Ipad's and going to use this stuff. I got a few grimaces. But it was fun. In fact a couple of kids replied COOOOLLL!! Mike
 
There are many files on the RK05 image. Most of which I have no idea what they are, or for. I spotted a file named FRTS.SV and I think this is the Fortran file. I wonder which flavor it is. I've seen DEC information that, for the PDP8, there was Fortran II, Fortran IV and 4k Fortran. Does any one know, what FRTS is?

So, I wrote a short Fortran program, using the OS8 editor, but didn't know what file extension to use, so I tried .FT.

I started FRTS as

.R SDB0:FRTS

and it responded with an *. I figured this was the command decoder, looking for input and output files, I typed

*SDB1:TRI.LD<SDB1:TRI.FT

It responded, 'NOT A LOADER IMAGE'.

I have searched around and found some information on how to program Fortran and the programming format, but nothing on actually how to compile a program. I did see some information on doing it from paper tape, but I'd like to use files if possible.

Does anyone have any experience with the PSP8 Fortran program or information on a document explaining the use of this language, particularly how to load, compile and what the output looks like? I'd appreciate any help Thanks, Mike.
 
Back
Top