• Please review our updated Terms and Rules here

Booting OS/8 from a PC

antiquekid3

Veteran Member
Joined
Nov 10, 2009
Messages
591
Location
Alabama
Hi all,

I've constructed an OS/8 system handler and a matching *nix-based disk server utility that allows anyone with a spare serial card to boot OS/8.

The server is written in C and has been successfully compiled under Cygwin on Windows and natively on Mac OS X 10.6. Those who have used David Gesswein's dumprest utilities should find themselves comfortable with my disk server, as it is based on some of the dumprest functions (config file, etc.).

I'll be releasing the source for this within the next few days. David has graciously offered to host the software, and Steve Lafferty of tronola.com said he'd be happy to help write an article about it.

Here's a quick video demonstrating it under Cygwin: https://www.youtube.com/watch?v=YkqVJ6ShV5A

I'll be posting updates both here and on the cctalk list. My original post to cctalk can be found here: http://www.classiccmp.org/pipermail/cctalk/2014-February/155705.html

Kyle
 
Kyle,

That is pretty sweet! Absolutely fantastic work. I would like to try it myself. I would have to set up some old PC to run unix though to run your server. Is there any way you would be willing to compile the server to run under Windows XP or dos? I know I am probably asking something that many would find thoroughly disgusting, but I am not a programmer and last played with unix on a PC about twenty years ago. I have managed without it somehow over the years.

Is your handler a one or two page handler? Did you write a version that is a non-system handler? If I have OS/8 running off of some other system disk, this would be an excellent tool for moving files from the PC.

Lou
 
Last edited:
Hi all,

I've constructed an OS/8 system handler and a matching *nix-based disk server utility that allows anyone with a spare serial card to boot OS/8.

The server is written in C and has been successfully compiled under Cygwin on Windows and natively on Mac OS X 10.6. Those who have used David Gesswein's dumprest utilities should find themselves comfortable with my disk server, as it is based on some of the dumprest functions (config file, etc.).

I'll be releasing the source for this within the next few days. David has graciously offered to host the software, and Steve Lafferty of tronola.com said he'd be happy to help write an article about it.

Here's a quick video demonstrating it under Cygwin: https://www.youtube.com/watch?v=YkqVJ6ShV5A

I'll be posting updates both here and on the cctalk list. My original post to cctalk can be found here: http://www.classiccmp.org/pipermail/cctalk/2014-February/155705.html

Kyle
Very nice. I will anxiously await it's release. I am a programmer and can't wait to see it.
 
Kyle,

I just read some of the other juicy stuff on cctalk. Support for DP278 sounds awesome (I have a VT278 decmate I with DP278 ). DKC8AA support would be really awesome and should be really fast (have one in the 8/a). Raspberry PI for a server is great. I am surely looking forward to playing with this.

Lou
 
Very nice. I will anxiously await it's release. I am a programmer and can't wait to see it.

Thanks. If you're a programmer, you'll probably scoff at what I have to offer. Let's just say my assembly skills exceed that of my C skills. :) Still, it does work (and I've improved it since the video; it's now more than twice as fast, and getting faster) so I'm relatively happy with it. I intend to get v1.0 released this weekend.
 
Kyle,

I just read some of the other juicy stuff on cctalk. Support for DP278 sounds awesome (I have a VT278 decmate I with DP278 ). DKC8AA support would be really awesome and should be really fast (have one in the 8/a). Raspberry PI for a server is great. I am surely looking forward to playing with this.

Lou

Although I don't have any DECmates, I can support them assuming I have sufficient documentation. I'll need beta testers, and it sounds like you're offering! Yay! I'll be pulling the RPi out tomorrow and seeing how it does on there.
 
Kyle,

That is pretty sweet! Absolutely fantastic work. I would like to try it myself. I would have to set up some old PC to run unix though to run your server. Is there any way you would be willing to compile the server to run under Windows XP or dos? I know I am probably asking something that many would find thoroughly disgusting, but I am not a programmer and last played with unix on a PC about twenty years ago. I have managed without it somehow over the years.

Is your handler a one or two page handler? Did you write a version that is a non-system handler? If I have OS/8 running off of some other system disk, this would be an excellent tool for moving files from the PC.

Lou

Thank you very much. You don't need to run Unix per se. You can run it under Cygwin on Windows (a very easy install), natively on a Mac (assuming Xcode is installed for gcc), or natively on Linux or whatever other *nix variety you have with a more-or-less standard C compiler.

I don't think I'll be supporting a native Windows or DOS version, but I do highly recommend Cygwin (what was in the video, by the way) for running such code on Windows. It makes things so much easier for the programmer! :)

The system handler is one page. I am going to be writing a non-system handler soon, which will support more typical OS/8 handler functionality, like catching ctrl-c, etc.

I've actually been able to boot OS/8 from my system that I made from replacing the bootloader and system handler in block 0 on an RK05 image from online and used BUILD to remake the system. Seems to work pretty well. It still thinks the system handler is an RK8E, but I don't know if that's just how RESORC works or not. Haven't looked into it since it's not a huge deal. I was able to send my handler (DSKSRV.PA) over via TTY: and used PAL8 to assemble it, and BUILD to LOAD, BOOT, etc. Worked great!

I'll be writing up tutorials on all of this. It's been a huge learning experience the past week-and-a-half. Trial by fire!
 
Thank you for working on this project and sharing it! I'm very new to the PDP-8 world; my first PDP-8/M is due to arrive via UPS today. I've already benefitted from similar tools on other vintage computer platforms I've brought up recently. Some folks prefer to run their vintage machines tethered to a host computer that serves up files and filesystems. I'm not one of those folks, as I'm a cantankerous fellow who wants to run crusty original hardware (or at least untethered hardware emulation), but even I find these sorts of setups to be very useful when initially bootstrapping a new system assembled from dusty mismatched pieces.

P.S.: My main computer is a Mac, so it pleases me that your server runs in a Unix environment.
 
Thank you for working on this project and sharing it! I'm very new to the PDP-8 world; my first PDP-8/M is due to arrive via UPS today. I've already benefitted from similar tools on other vintage computer platforms I've brought up recently. Some folks prefer to run their vintage machines tethered to a host computer that serves up files and filesystems. I'm not one of those folks, as I'm a cantankerous fellow who wants to run crusty original hardware (or at least untethered hardware emulation), but even I find these sorts of setups to be very useful when initially bootstrapping a new system assembled from dusty mismatched pieces.

P.S.: My main computer is a Mac, so it pleases me that your server runs in a Unix environment.

Happy to help! You're going to really enjoy the -8/M. I've got a couple here along side a couple of -8/Es. The -8s have become my favorite computers in the collection.

I would certainly be one to use original disk packs and DECtape as well, but getting the drives (and interface cards) can be quite the challenge. My dual hard sector 8" drives are very flaky at the moment, probably due to bad or weak media.

73 de W4GNU
 
I have a little hardware project in the works to emulate the TU58 for my PDP-11/44 project. There are existing ones out there, including the tu58em tethered emulator that I will probably be using for my initial bringup; mine will have an interesting form factor if I ever get it done. :)

I don't know how hard it would be to emulate TU56 drives for a PDP-8 machine, since I gather that they don't use a plain old UART interface.
 
Since I saw some more interest in the VT278 decmate / DP278 attachment route, I thought I'd mention something intersting about that configuration.

The DP278 has a mode where it was *intended* to be the way the OS (or other pdp-8 code) was loaded! There is no way to fat finger in a bootstrap of the user's choosing (you get RX or RL). The decmate system architecture manual at the end of chapter 6 has a section on down-line loading. In essence, the host sends some ESC L s, and then sends the rest in a BIN papertape-like format (it's different enough to be a small pain). The VT278 sends ESC G for a good load and ESC B for bad. If good, execution starts at location 0200.

So, a bootable OS/78 image could be made and little PC-side loader could send the bootstrap over. It might require a little more code also because the DP278 in terminal mode only goes up to 4800 baud (and this down-line loading is initiated when the VT278 is in terminal mode). To go to a more usable 19.2k the bootstrap would need to tell the DP278 to go to that baud rate.

Lou
 
Last edited:
This is an interesting effort. I have a couple of 8es running OS8 but this will likely be handy for helping get an IDE interface to the 8a going.

Don't like github very much as I'm not used to repositories and I get confused when there are what look like multiple releases under the same version number but I'm sure these ageing grey cells will cope eventually. ;).
 
Last edited:
I'm new to GitHub, and versioning in general. I haven't used it much before, and I've already screwed up my tree. It's a learning experience for both of us, then!

I just made an update last night which includes all the docs needed to get my software running. It shouldn't be too much of an effort for those already familiar with programming fundamentals, like compiling at the command line, etc.

Let me know if you have any questions!
 
Kyle,

There's a gathering in Baltimore this weekend and I'm carpooling with Dave Gesswein. I'm going to take along my PDP8a and your code and try to get the 8a running with Dave's help.

P.S. Thanks for the code and the docs. I got it all compiled under Ubuntu no problem.

-Crawford
 
Kyle,

Quick idea for enhancement (I'd give better advice if I had time to look at the code).

You are patching in a handler into the rk05 image. How about doing this automatically in the server routine? You could look at the image mounted, and hash that area. If that hash matched your patch, good to go, or it could be loaded then before use. You could even 'unpatch' the code on unmount to keep the disk image kosher, but that might be unnecessary.

Just some ideas. Looking forward to working with it!

? ; - )
 
You are patching in a handler into the rk05 image. How about doing this automatically in the server routine? You could look at the image mounted, and hash that area. If that hash matched your patch, good to go, or it could be loaded then before use. You could even 'unpatch' the code on unmount to keep the disk image kosher, but that might be unnecessary.
I prefer not to have operations like this take place automagically without being able to disable the behavior. If you want to provide an opt-in switch that says do this to the image under use, then ok. But don't do it by default or don't allow me to opt-out.

On another topic I was trying to bring up the server code on my system (windows xp with cygwin). It compiles OK. However when I configured it to run at 115200 baud on the link it seg faults in startup. Turns out there is a bug in the config.c/server.c code that will seg fault for any baud rate over 38400. I posted this as an 'issue' on github.

FYI I have a very fast PDP-8 that will easily run at 115200 on this SerialDisk interface link :)

Don
 
There's a gathering in Baltimore this weekend and I'm carpooling with Dave Gesswein. I'm going to take along my PDP8a and your code and try to get the 8a running with Dave's help.

How did it go yesterday? Any luck on getting it running? I've had a lot of success with an M8650 at 19200 baud.
 
I prefer not to have operations like this take place automagically without being able to disable the behavior. If you want to provide an opt-in switch that says do this to the image under use, then ok. But don't do it by default or don't allow me to opt-out.

On another topic I was trying to bring up the server code on my system (windows xp with cygwin). It compiles OK. However when I configured it to run at 115200 baud on the link it seg faults in startup. Turns out there is a bug in the config.c/server.c code that will seg fault for any baud rate over 38400. I posted this as an 'issue' on github.

I agree. I don't know why this behavior would be desirable. Yes, it patches the system handler, but it does not update the table of handlers in BUILD. Without replacing BUILD with the correct information, the actual handlers loaded would be different than what the system reports.

Thanks for reporting the issue. David Gesswein has provided some input on that and I hope to have a fix soon.
 
How did it go yesterday? Any luck on getting it running? I've had a lot of success with an M8650 at 19200 baud.

Kyle,

Unfortunately I found the 8a SLU only went to 9600 baud so I didn't try it yet. I got OS8 running from my RX01, so I'll use that as a test bed. I do have a 8650 to try though.
 
Back
Top