LSI-11 simulator (looking for the author)
All – I’m cleaning out my shop (I will have a “to go” list at some point) and going through magazine articles I saved. One peaked my interest, from Circuit Cellar (7/1996) by Robert W. Meister, was an LSI-11 simulator. I liked working on my Altair32 project, so I thought this would be good to play with. I was able to find the original simulator code from the article and it compiles under MS-DOS with only minor changes, but it has certain compromises regarding the hardware memory addresses and return codes that require it to use a custom RT-11 boot diskette (it has a custom DX.SYS, I’m guessing). I’ve done quite a bit of Googling about the simulator and the author (who worked for the NASD at the time he wrote the article), but haven’t come up with much additional information. Yes, I could easily use SIMH instead, but this is a fun project to work on to keep the mind busy. I guess I have four options: move memory around and see if the default DX.SYS will work; write a custom DX.SYS and make a new image using SIMH (way beyond me); continue to hunt down the author and see if he has any of the original files; give up and just use SIMH. If anyone is interested, I can send a PDF of the article. It’s actually a neatly-written program, and the ODT works fine. Rich -- Rich Cini http://www.classiccmp.org/cini http://www.classiccmp.org/altair32
I’ve been sidetracked by another project but I’m getting back to the below LSI11 simulator. The simulator code loads and runs the first 256 words from whichever disk image is attached to the simulator. No RT-11 disk image I’ve used will boot, and I suspect that it’s because the simulated RX01 isn’t faithful enough that an unmodified RT11 disk image would work (not to mention, the address of the disk controller isn’t the same as the RXV11). I’ve also tried to disable the LTC interrupt within the simulator code because, from my own experience with RT-11, it won’t boot with the LTC enabled. I was able to locate and correspond with the original author, and he doesn’t recall creating custom disks or disk images. Hmmm. So, I was hoping someone could point me to a listing of what the on-disk boot block code on an RT-11 floppy might look like. It might be buried in an RT-11 manual somewhere, but Googling isn’t really giving me what I’m looking for. It’s like looking for a disassembly of the MS-DOS boot sector. Thanks! Rich -- Rich Cini http://www.classiccmp.org/cini http://www.classiccmp.org/altair32 On 8/15/20, 8:46 AM, "Richard Cini" <rich.cini@gmail.com> wrote: All – I’m cleaning out my shop (I will have a “to go” list at some point) and going through magazine articles I saved. One peaked my interest, from Circuit Cellar (7/1996) by Robert W. Meister, was an LSI-11 simulator. I liked working on my Altair32 project, so I thought this would be good to play with. I was able to find the original simulator code from the article and it compiles under MS-DOS with only minor changes, but it has certain compromises regarding the hardware memory addresses and return codes that require it to use a custom RT-11 boot diskette (it has a custom DX.SYS, I’m guessing). I’ve done quite a bit of Googling about the simulator and the author (who worked for the NASD at the time he wrote the article), but haven’t come up with much additional information. Yes, I could easily use SIMH instead, but this is a fun project to work on to keep the mind busy. I guess I have four options: move memory around and see if the default DX.SYS will work; write a custom DX.SYS and make a new image using SIMH (way beyond me); continue to hunt down the author and see if he has any of the original files; give up and just use SIMH. If anyone is interested, I can send a PDF of the article. It’s actually a neatly-written program, and the ODT works fine. Rich -- Rich Cini http://www.classiccmp.org/cini http://www.classiccmp.org/altair32
On Thu, Sep 10, 2020 at 10:10 AM Richard Cini via vcf-midatlantic < vcf-midatlantic@lists.vcfed.org> wrote:
I was able to locate and correspond with the original author, and he doesn’t recall creating custom disks or disk images. Hmmm.
The original author might not have created a custom disk or disk image, he might instead have created a custom PF device driver, then made a bootable "PF" disk the normal way using PIP or whatever. I have a vague idea that RT-11 does this by copying a part of the PF device driver to the boot block, then arranging for the rest of the device driver to reside at a particular place on the disk (where the boot block code expects to find it). The magazine article referred to the need for a custom PF driver, did it not? Technically the result could be considered a "custom" disk but when you're dealing with decades-old memories the distinction between "custom" and "standard" might apply more to the procedure used rather than the end result. In other words, I might recall editing a disk image with a hex editor as making a "custom" disk, but if I had produced exactly the same result using standard OS tools I might not.remember this as being "custom" at all. -ken
I re-read the article again and he does make that statement, yes. But, when discussing it a few weeks ago, he didn’t seem to think he did that. So, that’s what let me to finding out a way to modify the simulator to work with an existing disk image rather than writing a custom PF driver and putting it on a disk image – mostly because I have experience in writing emulators and almost zero experience in writing/modifying native PDP code. The RXV11 manual only has some basic code samples, not the device driver code. I recall seeing it somewhere, but of course, I don’t remember which manual it might have been in… Rich -- Rich Cini http://www.classiccmp.org/cini http://www.classiccmp.org/altair32 On 9/10/20, 1:40 PM, "Kenneth Gober" <kgober@gmail.com> wrote: On Thu, Sep 10, 2020 at 10:10 AM Richard Cini via vcf-midatlantic <vcf-midatlantic@lists.vcfed.org> wrote: I was able to locate and correspond with the original author, and he doesn’t recall creating custom disks or disk images. Hmmm. The original author might not have created a custom disk or disk image, he might instead have created a custom PF device driver, then made a bootable "PF" disk the normal way using PIP or whatever. I have a vague idea that RT-11 does this by copying a part of the PF device driver to the boot block, then arranging for the rest of the device driver to reside at a particular place on the disk (where the boot block code expects to find it). The magazine article referred to the need for a custom PF driver, did it not? Technically the result could be considered a "custom" disk but when you're dealing with decades-old memories the distinction between "custom" and "standard" might apply more to the procedure used rather than the end result. In other words, I might recall editing a disk image with a hex editor as making a "custom" disk, but if I had produced exactly the same result using standard OS tools I might not.remember this as being "custom" at all. -ken
I might have found it. AA-PE7VA-TC_RT-11_Device_Handlers_Manual_Aug91. Appendix A has a sample DX/DY handler which is for the RX01/RX02. Not sure what a “PF” device is or how it relates to DX/DY. It still seems that the RX11 code within the simulator would need changes to support native disks. Rich -- Rich Cini http://www.classiccmp.org/cini http://www.classiccmp.org/altair32 On 9/10/20, 1:50 PM, "Richard Cini" <rich.cini@gmail.com> wrote: I re-read the article again and he does make that statement, yes. But, when discussing it a few weeks ago, he didn’t seem to think he did that. So, that’s what let me to finding out a way to modify the simulator to work with an existing disk image rather than writing a custom PF driver and putting it on a disk image – mostly because I have experience in writing emulators and almost zero experience in writing/modifying native PDP code. The RXV11 manual only has some basic code samples, not the device driver code. I recall seeing it somewhere, but of course, I don’t remember which manual it might have been in… Rich -- Rich Cini http://www.classiccmp.org/cini http://www.classiccmp.org/altair32 On 9/10/20, 1:40 PM, "Kenneth Gober" <kgober@gmail.com> wrote: On Thu, Sep 10, 2020 at 10:10 AM Richard Cini via vcf-midatlantic <vcf-midatlantic@lists.vcfed.org> wrote: I was able to locate and correspond with the original author, and he doesn’t recall creating custom disks or disk images. Hmmm. The original author might not have created a custom disk or disk image, he might instead have created a custom PF device driver, then made a bootable "PF" disk the normal way using PIP or whatever. I have a vague idea that RT-11 does this by copying a part of the PF device driver to the boot block, then arranging for the rest of the device driver to reside at a particular place on the disk (where the boot block code expects to find it). The magazine article referred to the need for a custom PF driver, did it not? Technically the result could be considered a "custom" disk but when you're dealing with decades-old memories the distinction between "custom" and "standard" might apply more to the procedure used rather than the end result. In other words, I might recall editing a disk image with a hex editor as making a "custom" disk, but if I had produced exactly the same result using standard OS tools I might not.remember this as being "custom" at all. -ken
On Thu, Sep 10, 2020 at 2:50 PM Richard Cini <rich.cini@gmail.com> wrote:
I might have found it.
AA-PE7VA-TC_RT-11_Device_Handlers_Manual_Aug91. Appendix A has a sample DX/DY handler which is for the RX01/RX02. Not sure what a “PF” device is or how it relates to DX/DY.
It still seems that the RX11 code within the simulator would need changes to support native disks.
That is the correct document. The DX and DY handlers are presented as a model for how to write a device driver for a new type of disk device not already supported by RT-11. In this case the PF device. I took a more detailed look at the code (I still don't have a platform ready-at-hand that it compiles on) and it looks like the disk code in the simulator isn't pretending to be an RX11 after all, or any other real DEC disk device. Rather it is an entirely made-up device designed to be easy to implement in the simulator, and also easy to write a device driver for. For example, it appears that the PF device works purely at the block level so you don't need to worry about tracks and sectors. This makes writing a custom driver from scratch easier, but ironically it also makes it harder to do this starting with an existing device that already has track/sector code. It may be easier to add real RX11/RXV11 support to the simulator than it would be to write a new RT-11 driver for the PF device, since the latter requires you to already have a running RT-11 system (or similar) to do the development work on. It's a question of how much effort you want to put into this when there are other emulators that work already (e.g. simh, ersatz-11, etc.). Or more to the point, which would you find more fun/interesting? Writing a new RT-11 PF device driver (or rewriting one that was previously written and is now lost) in PDP-11 assembly, or writing an RX11/RXV11 simulator in C? -ken
I agree. My “expertise” is more writing simulator code than PDP-11 code, so I’m leaning that way. For most PDP stuff I run SIMH (but I do have a real 11/23+). So this is just more for fun and to get it working than anything practical. Rich http://www.classiccmp.org/cini Long Island S100 User’s Group Get Outlook<https://aka.ms/qtex0l> for iOS ________________________________ From: Kenneth Gober <kgober@gmail.com> Sent: Friday, September 11, 2020 1:09:00 PM To: Richard Cini <rich.cini@gmail.com> Cc: vcf-midatlantic <vcf-midatlantic@lists.vcfed.org> Subject: Re: [vcf-midatlantic] LSI-11 simulator (looking for the author) On Thu, Sep 10, 2020 at 2:50 PM Richard Cini <rich.cini@gmail.com<mailto:rich.cini@gmail.com>> wrote: I might have found it. AA-PE7VA-TC_RT-11_Device_Handlers_Manual_Aug91. Appendix A has a sample DX/DY handler which is for the RX01/RX02. Not sure what a “PF” device is or how it relates to DX/DY. It still seems that the RX11 code within the simulator would need changes to support native disks. That is the correct document. The DX and DY handlers are presented as a model for how to write a device driver for a new type of disk device not already supported by RT-11. In this case the PF device. I took a more detailed look at the code (I still don't have a platform ready-at-hand that it compiles on) and it looks like the disk code in the simulator isn't pretending to be an RX11 after all, or any other real DEC disk device. Rather it is an entirely made-up device designed to be easy to implement in the simulator, and also easy to write a device driver for. For example, it appears that the PF device works purely at the block level so you don't need to worry about tracks and sectors. This makes writing a custom driver from scratch easier, but ironically it also makes it harder to do this starting with an existing device that already has track/sector code. It may be easier to add real RX11/RXV11 support to the simulator than it would be to write a new RT-11 driver for the PF device, since the latter requires you to already have a running RT-11 system (or similar) to do the development work on. It's a question of how much effort you want to put into this when there are other emulators that work already (e.g. simh, ersatz-11, etc.). Or more to the point, which would you find more fun/interesting? Writing a new RT-11 PF device driver (or rewriting one that was previously written and is now lost) in PDP-11 assembly, or writing an RX11/RXV11 simulator in C? -ken
participants (2)
-
Kenneth Gober -
Richard Cini