• Please review our updated Terms and Rules here

Building a bootable RX02 disk from SerialDisk

BitWiz

Experienced Member
Joined
Sep 7, 2021
Messages
420
Location
Glen Ellyn, Iil
Please forgive me for the length of this message. I am trying to include all of the pertinent information.

I am trying to build an RX02 Bootable disk from the standard SerialDisk boot setup. The RX02 drives are connected to the computer and I has OS/8 V3T booting from SerialDisk with RXA0 and RXA1 setup as RX02 disks:

.RES/E

194 FILES IN 3082 BLOCKS USING 5 SEGMENTS
110 FREE BLOCKS

# NAME TYPE MODE SIZ BLK KIND U V ENT USER
01 SYS 64 RWF SYS 0 I 07
02 DSK 64 RWF SYS 0 I 07
03 BAT BAT R 16 B 00
04 TTY TTY RW 17+ KL8E E 176
05 RXA0 RX02 RWF 988 20+ 32
06 RXA1 RX02 RWF 988 20+ 36
07 DTA0 TD8E RWF 737 21+ TD8 0 D 10
10 T4 64 RWF SYS 0 I 07
11 TDA0 64 RWF SYS 1 I 56
12 T5 64 RWF 22 I 54
13 TDA1 64 RWF 22 I 53
14 RFB0 64 RWF 22 I 52
15 TDA2 64 RWF 22 I 51
16 RFB1 64 RWF 22 I 50
17 TDA3 64 RWF 22 I 47

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


On the SerialDisk RK05 images I have found the following RX02 drivers (or so I think they are):

\disks\diagpack2.0\rx02.bx
\disks\diagpack2.0\rxsy1.sy
\disks\diagpack2.0\rxsy2.sy
\disks\diagpack2.1\rx28c.bh
\disks\diagpack2.1\rx78c.bh
\disks\diagpack2.1\rxbns.bh
\disks\diagpack2.1\rxbsy1.bh
\disks\diagpack2.1\rxbsy2.bh
\disks\diagpack2.1\rxns.bh
\disks\diagpack2.1\rxsy1.bh
\disks\diagpack2.1\rxsy2.bh
\disks\diagpack2_new2.0\rx02.bx
\disks\diagpack2_new2.0\rxsy1.sy
\disks\diagpack2_new2.0\rxsy2.sy
\disks\diagpack2_new2.1\rx28c.bh
\disks\diagpack2_new2.1\rx78c.bh
\disks\diagpack2_new2.1\rxbns.bh
\disks\diagpack2_new2.1\rxbsy1.bh
\disks\diagpack2_new2.1\rxbsy2.bh
\disks\diagpack2_new2.1\rxns.bh
\disks\diagpack2_new2.1\rxsy1.bh
\disks\diagpack2_new2.1\rxsy2.bh
\installer\diagpack2.0\rx02.bx
\installer\diagpack2.0\rxsy1.sy
\installer\diagpack2.0\rxsy2.sy
\installer\diagpack2.1\rx28c.bh
\installer\diagpack2.1\rx78c.bh
\installer\diagpack2.1\rxbns.bh
\installer\diagpack2.1\rxbsy1.bh
\installer\diagpack2.1\rxbsy2.bh
\installer\diagpack2.1\rxns.bh
\installer\diagpack2.1\rxsy1.bh
\installer\diagpack2.1\rxsy2.bh

All of the .SY files are 19,200 bytes long (in an DOS directory)
The RX02.BX file is 1,536 bytes long.
All of the .BH files are 768 bytes long.

Here are my questions:

1. What is the difference between the .SY, .BH and .DX files. The build documentation says that the extension should be .BN.
2. What is RX28C.BH?
3. What is RX02.BH?
4. I loaded RXSY2.BH and RXNS.BH in build and was able to so IN RX8E:SYS but when I tried IN RX8E:SYS, RXA0,RXA1 I gott an RXA0
5. What is the handler name when installing non-system devices?
6. What are the advantages of running the byte wide drivers (RXBSY2 and RXBNS)?
7. If I do use the byte wide drivers where does RXFIX.SV come in and will that work to boot an RX02 diskette?
8. What am I doing wrong with the following commands (from the serial disk boot system) to create a bootable RX02 disk in RXA0:

.RUN SYS BUILD

$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
$UN RK05

$UN RK8E

$UN RX02

$PR

BAT : *BAT
KL8E: *TTY
LPSV: *LPT
TD8A: *DTA0 *DTA1
RL0 : *RL0A *RL0B

DSK=RK8E:SYS
$LO SDB0:RXSY2.BH

$LO SDB0:RXNS.BH

$IN RX8E:SYS,RXA0,RXB0
RXA0 NOT FOUND
$IN RX02:RXA0,RXA1

$DSK=RXA1:

$PR

BAT : *BAT
KL8E: *TTY
LPSV: *LPT
TD8A: *DTA0 *DTA1
RL0 : *RL0A *RL0B
RX8E: *SYS
RX02: *RXA0 *RXA1

DSK=RX02:RXA1
$



Thank you in advance,

Mike
 
1. What is the difference between the .SY, .BH and .DX files. The build documentation says that the extension should be .BN.
As I mentioned before, I believe .SY files are system heads. Those are not relevant here.

The .BX and .BH files are in BIN loader format, and I believe they are mostly drivers.
2. What is RX28C.BH?
It looks like a handler which starts:
-2; DEVICE RX02; DEVICE RXA2; 4320; 4033; 0; 0
DEVICE RX02; DEVICE RXA3; 4320; 4037; 0; 0
3. What is RX02.BH?
RX02.BX starts:
0; TEXT /RX02 /; 120; 2230; 0355
I'm not sure what that is. The binview tool from 8tools can be used to inspect it further.
4. I loaded RXSY2.BH and RXNS.BH in build and was able to so IN RX8E:SYS but when I tried IN RX8E:SYS, RXA0,RXA1 I got an RXA0
I too see a problem where I try to insert two things, but only the first takes.
5. What is the handler name when installing non-system devices?
All the copies of RX02NS.PA that I have to hand have the sum "35672 13".
These files generate a driver with the group RX02 and device names RXA0 and RXA1.
6. What are the advantages of running the byte wide drivers (RXBSY2 and RXBNS)?
Those should have some advantage in terms of storing more, at the expense of any compatibiliy with much of anything else. The probably do allow you to copy the boot areas of DECmates and such, some of which are in 8-bit mode. But doing that correctly would still require a bunch of detailed knowledge about DECmates that I don't carry in my head.
7. If I do use the byte wide drivers where does RXFIX.SV come in and will that work to boot an RX02 diskette?
I'd have to research that.
8. What am I doing wrong with the following commands (from the serial disk boot system) to create a bootable RX02 disk in RXA0:
You seem to have loaded RX8E:SYS. I'd feel better about that if that said RX02:SYS. That's what the source code I have for RX02SY.PA would generate if correctly assembled for RX02. The group name RX8E was used in the RX01SY.PA.

Hope this helps!

Vince
 
The advantage of the byte wide handlers is that you get to use all the space on the floppy. The disadvantage of the byte wide handlers it that as far as I know they were not written by DEC and this adds another level of issues with RESORC. I would steer clear of this at least until you have it working. I think the byte wide handlers are all two page.

I think one of the issues you are having is that you can't be sure that the handlers you are loading are what you think they are. RESORC is a fragile program and while it works well when used with handlers it knows about the RX02 was one of the last devices added to the releases. An old RESORC with newer handlers is going to be confused. However, RESORC doesn't have to work in order to have a working system.

The RX01 SYS handler uses every word of space in its single page. It had to sacrifice any kind of error handling just to fit. There was a lot of resistance in going to a two page system handler because this required a minimum of a 12k word machine.

I have the source for an RX02 system handler with a version number of B1 and a Copyright date of 1984. The group name is RX02 and it has only the SYS entry point. It is a two page handler so it requires at least a 12k word omnibus machine.

I have the source for an RX01 system handler with a version number of E and a Copyright date of 1977. The group name is RX8E and it has only the SYS entry point. It is a one page handler so would work on any omnibus machine that could run OS/8. This might be what you loaded.

There are so many variables that I am having trouble thinking of them all. It would perhaps be best to try to just add the non-system RX02 handler to your serial disk boot and see if you can talk to the drive. If you can do that it means you are at the very least not fighting hardware issues. I don't see anything in your list that looks like it would be a non-sys RX02 handler. And I don't have the sources for one in my handler collection. But it isn't something I have looked for either.
 
The advantage of the byte wide handlers is that you get to use all the space on the floppy. The disadvantage of the byte wide handlers it that as far as I know they were not written by DEC and this adds another level of issues with RESORC. I would steer clear of this at least until you have it working. I think the byte wide handlers are all two page.

I think one of the issues you are having is that you can't be sure that the handlers you are loading are what you think they are. RESORC is a fragile program and while it works well when used with handlers it knows about the RX02 was one of the last devices added to the releases. An old RESORC with newer handlers is going to be confused. However, RESORC doesn't have to work in order to have a working system.

The RX01 SYS handler uses every word of space in its single page. It had to sacrifice any kind of error handling just to fit. There was a lot of resistance in going to a two page system handler because this required a minimum of a 12k word machine.

I have the source for an RX02 system handler with a version number of B1 and a Copyright date of 1984. The group name is RX02 and it has only the SYS entry point. It is a two page handler so it requires at least a 12k word omnibus machine.

I have the source for an RX01 system handler with a version number of E and a Copyright date of 1977. The group name is RX8E and it has only the SYS entry point. It is a one page handler so would work on any omnibus machine that could run OS/8. This might be what you loaded.

There are so many variables that I am having trouble thinking of them all. It would perhaps be best to try to just add the non-system RX02 handler to your serial disk boot and see if you can talk to the drive. If you can do that it means you are at the very least not fighting hardware issues. I don't see anything in your list that looks like it would be a non-sys RX02 handler. And I don't have the sources for one in my handler collection. But it isn't something I have looked for either.
Doug,

Thank you for the help. I have the SerialDisk booting up with RX02 drivers and I am able to read and write disks.

The question I have for both you and Vince is: Is the group name the same for both the system and non-system drivers so that the build should look like this:

$LO SBD0:RXSY2.BH
$LO SBDO:RXNS.BH
$IN RX02:SYS
$IN RX02:RXA1,RXA2


Thank you both for your help. You guys are just a font of information.

Mike
 
$LO SDB0:RXSY2.BH
I looked at this file briefly. Here are the differences from RXSY1:
0010: 0756 != 1734
0223: 0000 != 0400
The change at 0010 is the last word of the device description, and the change at 0223 is a word in the bootstrap.

That can't be a proper boot in RX02 mode. What I think it *might* be is a driver that can boot in RX01 mode without erasing itself when run on an RX02.
 
Vince and Doug,

I found the following source for RXSY2.PA on Tangentsofts site:
1691154929969.png

This shows the group name as RX8E regardless of whether it is RX01, RX02 or RX03.

The source code (on the same site) for RXNS.PA shows the group name to be RX02:

1691155237602.png

If I read this correctly then I accidentally actually got it right.

What do you guys think?
 
Doug,

Thank you for the help. I have the SerialDisk booting up with RX02 drivers and I am able to read and write disks.

The question I have for both you and Vince is: Is the group name the same for both the system and non-system drivers so that the build should look like this:

$LO SBD0:RXSY2.BH
$LO SBDO:RXNS.BH
$IN RX02:SYS
$IN RX02:RXA1,RXA2


Thank you both for your help. You guys are just a font of information.

Mike
Yes, sort of. I think we've also established, though, that RXSY2.BH isn't a handler for RX02 bootable media. I looked at the other files on diagpack2, and didn't find anything matching the binary generated by the source code for that.

It is possible that the stuff you have will actually allow you to operate the drive in RX02 mode with RX01 boot media, but that also isn't anything I've ever seen work, so who knows. That hardware configuration is still dangerous, as the vast bulk of RX01 media would still self destruct there.
 
I looked at this file briefly. Here are the differences from RXSY1:
0010: 0756 != 1734
0223: 0000 != 0400
The change at 0010 is the last word of the device description, and the change at 0223 is a word in the bootstrap.

That can't be a proper boot in RX02 mode. What I think it *might* be is a driver that can boot in RX01 mode without erasing itself when run on an RX02.
If that is the case, what should I use as the system device for the RX02 so that it can be booted?

Thank you again and again for all of your work.
 
If that is the case, what should I use as the system device for the RX02 so that it can be booted?
I think the only way to create RX02 bootable media (double density) would be to locate the two page system handler that I mentioned and Doug described. It seems to be called rx02sy.pa, and as Doug says is Copyright 1984 and version B1. It is 564 lines long and the "sum" command outputs
47654 15 rx02sy.pa

It looks like it is/was online at ftp.ibiblio.org/pub/academic/computer-science/history/pdp-8/os278/os278/rx02sy.pa. There's a broken version in the "dm1115" image, and you don't want that one. Here's a link to a copy squirreled away on my SVN:

 
I expect that the group name should be RX02 for both. The sources for the RX02 system handler I have show that the group is RX02.

Doug,

Thank you for the help. I have the SerialDisk booting up with RX02 drivers and I am able to read and write disks.

The question I have for both you and Vince is: Is the group name the same for both the system and non-system drivers so that the build should look like this:

$LO SBD0:RXSY2.BH
$LO SBDO:RXNS.BH
$IN RX02:SYS
$IN RX02:RXA1,RXA2

The only thing that bothers me about the above is that by convention the left drive is RXA0 and the right drive is RXA1, at least for the RX01. Your insert implies they are called RXA1 and RXA2. And they certainly could be. I think RXA2 is the left drive of a second pair of drives. I could be wrong about the convention. But other than that It is what I would expect.

What happens when you do that and execute the BOOTSTRAP command? What should happen is that BUILD will copy the system blocks from your current SYS device which is serial disk to the new system device RX02:SYS. It does this by swapping the active system device between the current serial disk for the reads and the new RX02:SYS for the writes. This will take a while with much clattering of heads on the floppy drive. You will want to save BUILD to the new device, not to SYS.

You will also need to use the boot that matches the system handler you have installed. This might not be what is on Rolands M847. There might be switch register settings involved. I think the option was the MI8EP which says RX01/RX02 boot. I've never used the RX02 so a lot of what I am saying could be wrong. And I do have an RX02 drive in an 8/i rack in the garage. I have no idea how Warren was planning on making it work with the 8/i. I guess it would have worked with the Posi to Omnibus converter since the RX0? controllers don't use databreak.

I've been looking at the OS8DevExt manual and it indicates that the non-sys rx02 handler will automatically detect single or double density and do the correct thing. I get the impression that this is not the case with the SYS handler.
 
$IN RX02:RXA0,RXA1
This worked when you did it, so I suspect the later was a typo.

As Doug mentions, you'll need the RX28 bootstrap, which I believe is available in Roland's boot card.

I can't imagine the one page system handlers have enough room for the code to select density. Maybe the two page system handler does.
 
Vince, Thank you.

I downloaded it and assembled it with palbart. Will that work or do i need to assemble it with PAL8 under OS/8.

Also, I am able to boot off of the RX02 Emulator that I got from George Whiley. This is based on Don North's image: OS8V3D.RX2

I will touch bases with him on how he built the bootable RX02 images.

Thank you all for your help,

Mike
 
I expect that the group name should be RX02 for both. The sources for the RX02 system handler I have show that the group is RX02.



The only thing that bothers me about the above is that by convention the left drive is RXA0 and the right drive is RXA1, at least for the RX01. Your insert implies they are called RXA1 and RXA2. And they certainly could be. I think RXA2 is the left drive of a second pair of drives. I could be wrong about the convention. But other than that It is what I would expect.

What happens when you do that and execute the BOOTSTRAP command? What should happen is that BUILD will copy the system blocks from your current SYS device which is serial disk to the new system device RX02:SYS. It does this by swapping the active system device between the current serial disk for the reads and the new RX02:SYS for the writes. This will take a while with much clattering of heads on the floppy drive. You will want to save BUILD to the new device, not to SYS.

You will also need to use the boot that matches the system handler you have installed. This might not be what is on Rolands M847. There might be switch register settings involved. I think the option was the MI8EP which says RX01/RX02 boot. I've never used the RX02 so a lot of what I am saying could be wrong. And I do have an RX02 drive in an 8/i rack in the garage. I have no idea how Warren was planning on making it work with the 8/i. I guess it would have worked with the Posi to Omnibus converter since the RX0? controllers don't use databreak.

I've been looking at the OS8DevExt manual and it indicates that the non-sys rx02 handler will automatically detect single or double density and do the correct thing. I get the impression that this is not the case with the SYS handler.
Doug, you are correct.

It should have read:

$LO SBD0:RXSY2.BH
$LO SBDO:RXNS.BH
$IN RX02:SYS
$IN RX02:RXA0,RXA1
 
I downloaded it and assembled it with palbart. Will that work or do i need to assemble it with PAL8 under OS/8.
I'm sure the assembly is fine. The trick is to get it into the SerialDisk image. You might find bin2bn from 8tools useful. It copies the .bin to a .bn, fixing the extension and also makiing sure the result is a multiple of a block long, allowing it to be treated as binary by os8implode and mkdsk.
 
Vince,

Is there anything that I can do from a booted OS8V3D.RX2 using the RX02 Emulator do determine the drivers?

Mike
 
Last edited:
Vince,

Here is the RES/E dump from booting the RX02 emulator from the OS8V3D.RX2 image:

Thank you for all of your help.

RES/E

64 FILES IN 932 BLOCKS USING 2 SEGMENTS
FREE BLOCKS

# NAME TYPE MODE SIZ BLK KIND U V ENT USER
01 SYS RX02 RWF 988 SYS 0 M 07
02 DSK RX02 RWF 988 SYS 0 M 07
03 RXA0 RX02 RWF 988 16+ 32
04 RXA1 RX02 RWF 988 16+ 36
05 LPT LPTR W 17 LPSV C 05
06 BAT BAT R 20 B 00
07 TTY TTY RW 21+ KL8E E 176
10 RL0A RL01 RWF 4081 22+ 0 A 44
11 RL0B RL01 RWF 4081 22+ 0 A 40
12 RL1A RL01 RWF 4081 23+ 1 A 45
13 RL1B RL01 RWF 4081 23+ 1 A 41
14 RL0C RL01 RWF 2025 24+ 0 A 50
15 RL1C RL01 RWF 2025 24+ 1 A 54

FREE DEVICE SLOTS: 02, FREE BLOCK SLOTS: 01
OS/8 V3T
 
Back
Top