• Please review our updated Terms and Rules here

Serial Disk Questions

BitWiz

Experienced Member
Joined
Sep 7, 2021
Messages
420
Location
Glen Ellyn, Iil
I want to make a version of Serial Disk that supports RX01 & RX02 floppies.

Is all I need to do is add the appropriate Load and Install commands in the runbuild script?

I see RX02.BX, RXSY1.SY and RXSY2.SY on the default Serial Disk SYS: drive.

I'm a bit confused because the OS/8 Device Extensions User's Guide lists the drivers as RXSY1.BN, RXSY2.BN & RXNS.BN.

Can I just add:

LOAD SYS:RXSY1.SY
LOAD SYS:RXSY2.SY
IN RXSY1:RXA0
IN RXSY2:RXB0

The OS/8 Build command has always flummoxed me and old age hasn't made it any easier.

My goal is to build bootable RX01 and RX02 Diskettes so that I can boot off of them. So any advice here would be greatly appreciated.

I have heard that it is difficult to boot OS/8 off of an RX02 formatted diskette and I have no problem running the boot drive as an RX01 and the data data drive as an RX02.

Vince, thank you for your help in this in the past, now I'm actually ready to try it.

I am also getting some strange errors from my system when running off of serial disk.


BUILD lists the following devices:

.R BUILD

$PRINT

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
$QLIST
BAT TTY LPT RK8E:SYS RKA0 RKB0 RKA1 RKB1 RXA0 RXA1 DTA0 DTA1 RL0A RL0B

DSK=RK8E:SYS
$

But when I try to access any of those block devices other than SYS: and DSK: the system hangs.

When I try to access the the SDSN drives I get the following:

.DIR SDA0




0 Files in 0 Blocks - 147 Free blocks

I am using the following command line to start SerialDisk:

sudo ./server -1 ../installer/diagpack2.new -2 ../disks/diag-games-kermit.dsk -3 ../disks/diagpack2_new2.dsk -4 ../disks/diagpack2.dsk


Thanks in advance,

Mike
 
Thank you.

Are the images in a form that I can write with a greaseweazle?

I would also like to be able to create a bootable disk from SerialDisk.

Thanks again,

Mike
 
I want to make a version of Serial Disk that supports RX01 & RX02 floppies.
Well, you need to be careful there, as the RX01 bootstraps and driver eats floppies for lunch when run with RX02 hardware.

Is all I need to do is add the appropriate Load and Install commands in the runbuild script?
Yeah, that's basically the idea.

Can I just add:

LOAD SYS:RXSY1.SY
LOAD SYS:RXSY2.SY
IN RXSY1:RXA0
IN RXSY2:RXB0

The OS/8 Build command has always flummoxed me and old age hasn't made it any easier.
Basically, but because of the above mentioned floppy munching, I can't recommend that. The only driver I'd recommend is the non-system one for the RX02 hardware.

And never ever try to boot from floppy. It will not go well unless it really is an RX02 boot floppy, AND you remember to use the RX02 bootstrap. All the other use cases will fail, often destroying the floppy content as well.

This is why most folks set the drive for RX01 emulation and pretend RX02 never happened.

I do have an 8/A (in a desk) that is configured for RX02, with the correct bootstrap. Even so, I have to remember not to put RX01 in the left drive, or the drivers will cause them to self destruct.

I have heard that it is difficult to boot OS/8 off of an RX02 formatted diskette and I have no problem running the boot drive as an RX01 and the data data drive as an RX02.
Alas, it's not really a mix-match sort of thing. The RX01 software just doesn't work if the drive pair is configured RX02 in the hardware.

To do what you are asking safely would require a second drive pair with the default pair being RX01.

Vince, thank you for your help in this in the past, now I'm actually ready to try it.
You are welcome.

$QLIST
BAT TTY LPT RK8E:SYS RKA0 RKB0 RKA1 RKB1 RXA0 RXA1 DTA0 DTA1 RL0A RL0B

DSK=RK8E:SYS
$

But when I try to access any of those block devices other than SYS: and DSK: the system hangs.

When I try to access the the SDSN drives I get the following:

.DIR SDA0




0 Files in 0 Blocks - 147 Free blocks

I am using the following command line to start SerialDisk:

sudo ./server -1 ../installer/diagpack2.new -2 ../disks/diag-games-kermit.dsk -3 ../disks/diagpack2_new2.dsk -4 ../disks/diagpack2.dsk
Don't think you need the sudo on that last.

Not sure what's going on there. This was created for you with sdsk? Did you try to change things after sdsk, but not $BOOT at the end?

Vince
 
I want to make a version of Serial Disk that supports RX01 & RX02 floppies.

Ok. After reading the rest of this note I think you mean you want a serial disk boot image that has handlers installed for those devices.

Is all I need to do is add the appropriate Load and Install commands in the runbuild script?

I've never seen a runbuild script and there are so many gotchas with build that I would not trust such a script except under extremely controlled circumstances.

The OS/8 Build command has always flummoxed me and old age hasn't made it any easier.

It has some interesting characteristics. That is why I have a whole chapter about BUILD in my book.

My goal is to build bootable RX01 and RX02 Diskettes so that I can boot off of them. So any advice here would be greatly appreciated.

I have heard that it is difficult to boot OS/8 off of an RX02 formatted diskette and I have no problem running the boot drive as an RX01 and the data data drive as an RX02.

I don't have any experience with RX02 but from what I have read I would not bother with it.

I am also getting some strange errors from my system when running off of serial disk.

I am going to interject comments in the listing.

BUILD lists the following devices:

.R BUILD

Never run BUILD this way. Always use:

.RUN SYS BUILD

If you use .R BUILD then the changes you make to your system will not be reflected the next time you use BUILD and you will have to do everything over again. This is because the changes you make are only made to memory. When you exit BUILD you have to save the core image over the top of BUILD. In fact to be 100% safe run it like this:

.SET SYS NO INIT
.RUN SYS BUILD

<do all the stuff in build you need>
$BOOTSTRAP
SYS BUILT
.SAVE SYS: BUILD


The save is critical!! And the SET SYS NO INIT at the top is used to get rid of any pesky scripts that might automagically run when the BOOTSTRAP command completes and BUILD exits. The SAVE will save the wrong thing if anything runs between BUILD and the SAVE.

$PRINT

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
$QLIST
BAT TTY LPT RK8E:SYS RKA0 RKB0 RKA1 RKB1 RXA0 RXA1 DTA0 DTA1 RL0A RL0B

DSK=RK8E:SYS
$

But when I try to access any of those block devices other than SYS: and DSK: the system hangs.

This is most likely because the last time BUILD was run it was not saved after the changes so your running system does not match BUILD. In a perfect world you could use RESORC to tell you what is in your currently running system. However RESORC does not deal well with user defined devices and its output is confusing at best when something like serial disk is installed.

When I try to access the the SDSN drives I get the following:

.DIR SDA0




0 Files in 0 Blocks - 147 Free blocks

This makes perfect sense. You requested a search of the DSK: device for files named SDA0. Try

.DIR SDA0:

instead.
 
This is a new setup directly from the repository using my scripts. I will look into what is going on further this afternoon.

I would prefer to boot and run off of RX02 disks. The RXCOPY command seems to be able to format single or double density disks. Does the OS/8 RX02 driver not work with single density disks? Maybe the system driver only works RX01 or RX02 but what about the non-system driver (RXNS)?

Also, what is the difference between the .BN files listed in the OS/8 build documentation and the .SY files on SYS: in the SerialDisk boot configuration?

If I only use RX02 formatted disks then I should be ok?
 
The build is the build as created by the serial disk runbuild script.

Here is the result of your suggestion:

.DIR SDA0:
SDA0 Does not exist

.
 
I am getting a boat load of warning when trying to build SIMH as part of the SerialDisk build. This is causing the build of SIMH to fail which is causing none of the SIMH steps to work. This is what is causing my problems.

Any Ideas why this is failing?

I will post this as a separate issue here and in the mailling list.
 

Attachments

  • SIMHBuild.jpg
    SIMHBuild.jpg
    1.3 MB · Views: 5
Ok. After reading the rest of this note I think you mean you want a serial disk boot image that has handlers installed for those devices.



I've never seen a runbuild script and there are so many gotchas with build that I would not trust such a script except under extremely controlled circumstances.



It has some interesting characteristics. That is why I have a whole chapter about BUILD in my book.



I don't have any experience with RX02 but from what I have read I would not bother with it.



I am going to interject comments in the listing.



Never run BUILD this way. Always use:

.RUN SYS BUILD
I ran R BUILD just so I could show the installed drivers. I was not rebuilding OS/8.
If you use .R BUILD then the changes you make to your system will not be reflected the next time you use BUILD and you will have to do everything over again. This is because the changes you make are only made to memory. When you exit BUILD you have to save the core image over the top of BUILD. In fact to be 100% safe run it like this:

.SET SYS NO INIT
.RUN SYS BUILD

<do all the stuff in build you need>
$BOOTSTRAP
SYS BUILT
.SAVE SYS: BUILD


The save is critical!! And the SET SYS NO INIT at the top is used to get rid of any pesky scripts that might automagically run when the BOOTSTRAP command completes and BUILD exits. The SAVE will save the wrong thing if anything runs between BUILD and the SAVE.



This is most likely because the last time BUILD was run it was not saved after the changes so your running system does not match BUILD. In a perfect world you could use RESORC to tell you what is in your currently running system. However RESORC does not deal well with user defined devices and its output is confusing at best when something like serial disk is installed.



This makes perfect sense. You requested a search of the DSK: device for files named SDA0. Try

.DIR SDA0:

instead.
Doug,

What book? Can I download it or buy it?

Thanks,

Mike
 
I've never seen a runbuild script and there are so many gotchas with build that I would not trust such a script except under extremely controlled circumstances.
"runbuild" is the expect-send script used by "sdsk" to configure a SerialDisk build. It's in the installer sub-directory of SerialDisk.

It exists because there are so manu gotchas running build. It is helpful to start with a successful recipe and tweak it to do what you want, rather than try to get all those details right by hand from scratch.

Some of us (I) lack the attention to detail to manage running build without mechanical help.

Vince
 
I ran R BUILD just so I could show the installed drivers. I was not rebuilding OS/8.

Fair enough. The problem is that unless it was saved correctly it will not reflect the currently running system. RESORC is better for that.

Try running that. Here is an example on a system that does not have serial disk or console serial disk.

.RESORC /E

49 FILES IN 756 BLOCKS USING 2 SEGMENTS
2436 FREE BLOCKS (2 EMPTIES)

# NAME TYPE MODE SIZ BLK KIND U V ENT USER
01 SYS RK8E RWF 3248 SYS 0 C 07
02 DSK RK8E RWF 3248 SYS 0 C 07
03 PTR PTR R 16 PT8E A 112
04 RXA0 RX8E RWF 494 17 E 30
05 RXA1 RX8E RWF 494 17 E 34
06 RKA0 RK8E RWF 3248 SYS 0 C 07
07 RKB0 RK8E RWF 3248 SYS 1 C 21
10 RKA1 RK8E RWF 3248 20 RK05 1 A 22
11 RKB1 RK8E RWF 3248 20 RK05 1 A 23
12 TTY TTY RW 21+ KL8E E 176
13 LPT LPTR W 22+ LQP D 03
14 PTP PTP W 23 PT8E A 00

FREE DEVICE SLOTS: 03, FREE BLOCK SLOTS: 02
OS/8 V3Q


RESORC will show you the state of the running system except it will be wrong during the time between running BUILD to make changes and the next reboot.

The NAME field will be a 2 characters, usually a letter and a number for user defined devices like serial disk and console serial disk devices.

Why don't you make a safety copy of your serial disk boot system image so if we mess it up you can get back to where you are right now. And then I will walk you through fixing your system image.

Here is the build run from a few messages ago.

.R BUILD

$PRINT

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
$QLIST
BAT TTY LPT RK8E:SYS RKA0 RKB0 RKA1 RKB1 RXA0 RXA1 DTA0 DTA1 RL0A RL0B

DSK=RK8E:SYS
$

I was going to walk you through this but that copy of BUILD does not have any serial disk stuff so we can't just fix it. And I am assuming you booted off of serial disk. That copy of BUILD knows about RK05, RX02, TD8A which is the first of the dumb dectape devices and RL01 probably.

Show me the output of RESORC /E You can abbreviate it RES /E if you want.

What book? Can I download it or buy it?

Here is the link to the google doc. OS/8 handler info

You can download a copy if you want. It is a work in progress.
 
"runbuild" is the expect-send script used by "sdsk" to configure a SerialDisk build. It's in the installer sub-directory of SerialDisk.

It exists because there are so manu gotchas running build. It is helpful to start with a successful recipe and tweak it to do what you want, rather than try to get all those details right by hand from scratch.

I suppose I should grab a current copy of serial disk and look at this. What I don't understand is if it correctly ran on Mike's system why his running build is for something not serial disk.

Some of us (I) lack the attention to detail to manage running build without mechanical help.

It isn't that difficult. Unless the last person to run it didn't save it after making their changes.
 
Fair enough. The problem is that unless it was saved correctly it will not reflect the currently running system. RESORC is better for that.

Try running that. Here is an example on a system that does not have serial disk or console serial disk.

.RESORC /E

49 FILES IN 756 BLOCKS USING 2 SEGMENTS
2436 FREE BLOCKS (2 EMPTIES)

# NAME TYPE MODE SIZ BLK KIND U V ENT USER
01 SYS RK8E RWF 3248 SYS 0 C 07
02 DSK RK8E RWF 3248 SYS 0 C 07
03 PTR PTR R 16 PT8E A 112
04 RXA0 RX8E RWF 494 17 E 30
05 RXA1 RX8E RWF 494 17 E 34
06 RKA0 RK8E RWF 3248 SYS 0 C 07
07 RKB0 RK8E RWF 3248 SYS 1 C 21
10 RKA1 RK8E RWF 3248 20 RK05 1 A 22
11 RKB1 RK8E RWF 3248 20 RK05 1 A 23
12 TTY TTY RW 21+ KL8E E 176
13 LPT LPTR W 22+ LQP D 03
14 PTP PTP W 23 PT8E A 00

FREE DEVICE SLOTS: 03, FREE BLOCK SLOTS: 02
OS/8 V3Q


RESORC will show you the state of the running system except it will be wrong during the time between running BUILD to make changes and the next reboot.

The NAME field will be a 2 characters, usually a letter and a number for user defined devices like serial disk and console serial disk devices.

Why don't you make a safety copy of your serial disk boot system image so if we mess it up you can get back to where you are right now. And then I will walk you through fixing your system image.

Here is the build run from a few messages ago.



I was going to walk you through this but that copy of BUILD does not have any serial disk stuff so we can't just fix it. And I am assuming you booted off of serial disk. That copy of BUILD knows about RK05, RX02, TD8A which is the first of the dumb dectape devices and RL01 probably.

Show me the output of RESORC /E You can abbreviate it RES /E if you want.



Here is the link to the google doc. OS/8 handler info

You can download a copy if you want. It is a work in progress.

Doug,

Here is the output you asked for:

Code:
.RESOUC                                                                         
SYS,DSK,BAT,TTY,RKA0,RKB0,DTA0,T4,TDA0,T5,TDA1,RFB0,TDA2,RFB1,TDA3             
                                                                                
                                                                                
.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 RKA0 RK8E RWF 3248 20  RK05 0 A  20                                         
06 RKB0 RK8E RWF 3248 20  RK05 0 A  21                                         
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

Type 64 is the type used for Serial Disk devices. RESORC does not know how to deal with them.

The serialdisk runbuild script issues the following commands to BUILD

PR
UN LPSV
UN RL0
DE SYS
DE DTA1
DE RXA0,RXA1
DE RKA1,RKB1
IN KL8E:TTY
IN PT8E:pTP,PTR
LOAD SYS:SDSKSY
LOAD SYS:SDSKNS
IN SDSY:SYS,SDA0,SDB0
IN SDNS:SDA1,SDB1,SDA2,SDB2,SDA3,SDB3
SYS SDSY:SYS
DSK SDSY:SYS
PR
BOOT
SAVE SYS:BUILT


If I remove the DE RXA0, RXA1 lines do you think that will add the RX02 support that I want? Or will that be RX01 support? How can I tell?


Thank you,

Mike



T
 
It isn't that difficult. Unless the last person to run it didn't save it after making their changes.
Which they typically didn't. Also, it's not too bad if you are just there to do one thing. But it's messy tedious and error prone to reconfigure the whole system. I had enough trouble getting it right that I ended up scripting it, which made things much more predictable and also sort of documents things, at least in the "source code as documentation" sense.

BTW, the command at the end is SAVE SYS BUILT, so that you have the choice whether to copy BUIlLT.SV to BUILD.SV or to start over when trying again. So Mike may have to run BUILT instead to get the latest configuration, if he's been running sdsk.

Vince
 
Code:
.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 RKA0 RK8E RWF 3248 20  RK05 0 A  20                                        
06 RKB0 RK8E RWF 3248 20  RK05 0 A  21                                        
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

Type 64 is the type used for Serial Disk devices. RESORC does not know how to deal with them.

Yeah, that is ugly. It looks to me like you should have the following devices.

  1. SYS: with entry point 07.
  2. DSK: is mapped to SYS:
  3. BAT: I have never bothered with a BAT device.
  4. TTY: There has to be a TTY: device.
  5. RKA0: with entry point 20. If you don't have an RK05 then you should probably delete this and RKB0:
  6. RKB0: with entry point 21. And maybe unload the RK8E handler to make more room.
  7. DTA0: with entry point 10. And unless you have a TD8E simple DECtape controller this too can be deleted and unloaded.
  8. SDA0: with entry point 07 is the same as SYS:
  9. SDB0: with entry point 56 in the SYS handler.
  10. SDA1: with entry point 54 in the NON SYS handler.
  11. SDB1: with entry point 53.
  12. SDA2: with entry point 52.
  13. SDB2: with entry point 51.
  14. SDA3: with entry point 50.
  15. SDB3: with entry point 47.
There is supposed to be an LPT: device according to the manual but I don't know what needs it. Probably some programs expect it to be there.

The serialdisk runbuild script issues the following commands to BUILD

Ok, I assume that it sends a RUN SYS BUILD to initiate BUILD and then sends the build commands.
PR
UN LPSV
UN RL0
DE SYS
DE DTA1
DE RXA0,RXA1
DE RKA1,RKB1
IN KL8E:TTY
IN PT8E:pTP,PTR
LOAD SYS:SDSKSY
LOAD SYS:SDSKNS
IN SDSY:SYS,SDA0,SDB0
IN SDNS:SDA1,SDB1,SDA2,SDB2,SDA3,SDB3
SYS SDSY:SYS
DSK SDSY:SYS
PR
BOOT
SAVE SYS:BUILT


If I remove the DE RXA0, RXA1 lines do you think that will add the RX02 support that I want? Or will that be RX01 support? How can I tell?

Removing the DE RXA0, RXA1 line would leave in an RX handler but RESORC says you have zero device slots so the answer is probably not. You will need to delete and unload something else. The IN PT8E:pTP,PTR doesn't seem to have worked since no PTP or PTR devices show in RESORC.

I noticed the last command is SAVE SYS:BUILT rather than SAVE SYS:BUILD. That means that there is a BUILT.SV on your system image. If you RUN SYS BUILT and do a PR command
you should see your running system. I would like to see this output. You can control C to get out of it. And now I see that Vince also made a point of mentioning BUILT.

So I suggest you DELETE and UNLOAD the unused devices in the script and you can try leaving in the RX handler. RESORC should show that one correctly since it is an official DEC device. If everything is as I think it is there should then be a handler for RX02 with two devices.
 
I would prefer to boot and run off of RX02 disks. The RXCOPY command seems to be able to format single or double density disks. Does the OS/8 RX02 driver not work with single density disks? Maybe the system driver only works RX01 or RX02 but what about the non-system driver (RXNS)?
I'm unfamiliar with the ins and outs of RXCOPY.

The non-system RX02 driver can safely access media of either kind.

Also, what is the difference between the .BN files listed in the OS/8 build documentation and the .SY files on SYS: in the SerialDisk boot configuration?
I hadn't looked at those closely, as they weren't needed for what I was doing. I suspect the .sy files are in fact entire system heads, preconfigured for various configurations. I would ignore them (or delete them if I ran short of space on the pack)

If I only use RX02 formatted disks then I should be ok?
Yes, in the sense that if you are running all RX02 software (RX28 boot loaders and drivers), then your system will not self-destruct.

Inserting any RX01 floppy into the left drive is still risking for it to erase itself, though. If it is an 8/A, I'm not sure the right drive is safe either, as I think that bootstrap tries them both.
 
I have to check my stuff again, I've been quite busy last year. But I use two floppy controllers. I used the rx02 bootstrap and driver for the first to just use emulated disks. The second controller goes to a real rx01 drive. I've shared the image and edited secondary rx01 driver on the forum.. I have to search for it if it would be helpful.

Regards, Roland
 
Back
Top