• Please review our updated Terms and Rules here

PDP-8 OS handlers

That said, I do think that a separate backplane is awfully resource intensive, and would suggest packaging it to plug directly into the Negibus. That way the backplane connectors at the end of the user's Negibus have something to do, and the expense of trying to re-manufacture connector blocks is avoided.
I explored this notion a bit in the Posibus context. I found that three single-height medium-length modules didn't provide enough space for a fully TTL solution (but 6 might just, for Negibus), but here's a image of my effort so far:PT08Mpld.png
There are two small CPLD packages implementing the TX and RX half-UARTs on the BAC and IOB cards, and the baud rate and address decoding is on the BMB card. The Serial connector is on the receive card because that reduces the interconnect on the side by a pin.

Vince
 
Just finished uploading Version 1.0 of Console Serial Disk to Github. Here is the link https://github.com/dustyoldcomputers/console-serial-disk

I am sure there will be questions, please feel free to ask here. I went ahead and put my email address in the Readme so you can ask directly if you wish.

I supply three images with this version.

csd0.img which maps to SYS: and CSD0: This is essentially the first half of the PiDP boot image from a couple of years ago.
csd1.img which maps to DSK: and CSD1: This is essentially the second half of the PIDP boot image from a couple of years ago.,
rk05.img which maps to RKA: for the first half and RKB: for the second half. This is a diagnostic pack. I haven't done anything with it.

If csd2.img and csd3.img are present at boot then they should show up as CSD2: and CSD3: If you want a blank image you should be able to touch the file name to create a zero length file and then use PIP to zero the directory. I am reasonably certain that I patched PIP to know the size of these devices but I have not tried it. They should have sizes of around 4089 free blocks for an empty non-sys csd image.

A virtual DECtape is supported in the handler but support is not yet in the server for it. I am not sure what to do with word 129. I believe it gets cleared when you do a write on OS/8 and I am not sure I want to mimic this behavior.

Have fun! I am looking forward to hearing how it works at 115200 or faster speeds.
 
Just finished uploading Version 1.0 of Console Serial Disk to Github. Here is the link https://github.com/dustyoldcomputers/console-serial-disk
I wish I could report that this "just worked" on my PDP-12.

I configured the console baud rate for 19,200 baud to match the source code. (Actually, I first tried it at 230400, but that didn't work.) The documentation implies 9600 baud, but I went with 19.2K as per the source.

Is there a place where I need to configure stop bits? The console port uses two.

Anyway, it did not boot. The help loader bootstrap seems to have loaded stuff up to the KSF, then stopped doing anything. Here's the loader I toggled in:
0025 Load
6031 Dep
5025 Dep
6036 Dep
7012 Dep
7010 Dep
3001 Dep
2032 Dep
5025 Dep
which I think I got from server/Readme.

Also, when I type F1 to exit, I get a segmentation fault. Apparently disk_close() calls rewind() on an FD that looks undefined. GDB reports the value passed to rewind() as 0x2000000 (or however many zeroes it was).

Here's a session log with -D on:
./csd -D
SERVER: Opening CSD0 image csd0.img
SERVER: Reading the CSD image csd0.img into memory.
SERVER: Opening CSD1 image csd1.img
SERVER: Reading the CSD image csd1.img into memory.
SERVER: Opening CSD2 image csd2.img
SERVER: can't open CSD image csd2.img for read/write
SERVER: Opening CSD3 image csd3.img
SERVER: can't open CSD image csd3.img for read/write
SERVER: Opening RK0 image rk05.img
SERVER: Reading the RK05 image into memory.
SERVER: Calculating installed handler checksum.
SERVER: Installed handler checksum = 216467.
SERVER: csd0.img appears to have CONSYS.BN (20220802)
SERVER: Verifying the boot code on the boot block
SERVER: Examining the OS/8 entry point on the boot block
SERVER: Verifying the handler on the boot block
SERVER: going into terminal mode
SERVER: Shift F12 key pressed, sending boot code.
SERVER: sending 21 bytes of boot2 help code
SERVER: sending the boot block
SERVER: F1 key pressed, updating system disk image and exiting
SERVER: Writing out the CSD0 image.
SERVER: Writing out the CSD1 image.
Segmentation fault (core dumped)

So close!

Vince
 
I am excited to report that after hacking pdp.c to set CSTOPB, the boot works fine!

Next to try the higher speeds.
 
It boots fine at 115200, but it doesn't boot at 230400. It may be that is just too fast for the PDP-12, or that I have an additional speed related issue in my serial adapter card. (I suppose it could even be a speed that doesn't work right in the serial-USB dongle I'm using.)

The new baud rate card makes it delightfully easy to change the baud rate! Too bad it has glitchy output at 57600 baud. (The other speeds are fine.) I suppose some more rework is needed.

The CSD system is nice and snappy at 115.2K. The fast console also partially makes up for the floppy-like disk-access speed.
 
Fixed the segmentation fault thing. Wrong constant in a for loop and it has been that way for a year and a half but doesn't fault on my development server. I am going to do something about the stop bits and fix the config documentation and then upload a version 1.1 And this bug only happens when you are all done and exit out of the server. You might not even notice there was a problem. So don't let this stop you from grabbing and trying it before I get V1.1 uploaded.

It is neat that Vince was able to get it to run at 115.2k

There was an M8650 that sold on Ebay in the last day or so. I thought about bidding on it but it sold for more than I would have been willing to pay. Not sure if that was one of the ones that could be modified to operate really fast. I still want one for my collection.
 
Yep, the M8650 is the one you want. Works fine at 230.4k on my system!
I've been told that there is a version of the M8650 that is not practical to modify. I don't know what distinguishes it. It was that distinction I was alluding to. The M865 certainly would require more work than it would be worth.
 
You might not even notice there was a problem. So don't let this stop you from grabbing and trying it before I get V1.1 uploaded.
Seconded. It works quite well with just a couple of one line tweaks:

You will have to set the baud rate at compile time, as the documentation states, unless you want 19200.

If you need two stop bits, you will need to set CSTOPB, which I added right after it is cleared so it would be easy to comment out and restore the original behavior.

If you want to fix the core dump, the outer "for" in the disk_close() routine needs to end in MAX after the underscore for the limit. That's it.

Vince
 
It works with SBC6120 at 38400 Baud.
Thanks a lot!
I am pleased to hear that! I had not even thought of the SBC6120 but it is a good candidate machine! What machine/OS did you use for your server? I would like to add that info to the what works list before I post V1.1 which I plan to do tomorrow morning unless I find something else that needs fixing.

I added support for simh dectape images. And yes, it will destroy the 129th word of every record on the image since OS/8 does not use it. I don't have any DECtape images easily available so I have not tested this yet. There is a good chance it will work.
 
I added support for simh dectape images. And yes, it will destroy the 129th word of every record on the image since OS/8 does not use it. I don't have any DECtape images easily available so I have not tested this yet. There is a good chance it will work.
focal71-boot-os8.tu56 is td8e
tc08diag.tu56 is tc08
 
And games.tu56 isn't bootable.
At the moment I only allow boot from csd images. During development I forced the csd system handler in and tricked OS/8 into booting from an RK05 or serial disk image. But there are problems with doing this in a general way. Once I managed to make a csd system image I removed the rk05 tricks from the system handler. There are still bits in the nonsys handler which I may remove if they cause problems. They are still there because I thought it would trick RESORC and it partly does. But only partly. What it does seem to do is let PIP know the size of the file system without patching it. I write about this in a file called Anomalies.

Was the intention to mount games.tu56 as DSK: or are you supposed to copy the game you want to play to your SYS: device?
 
The csd runs on a raspberry pi 3 with "Raspbian GNU/Linux 9 (stretch)".

With the SBC6120 I have to give in the short words on the console. And because I normally use my raspies remote (ssh), I first have to start the server and key in the short code in the user interface of the sbc6120:

>D 0025 6031,5025,6036,7012,7010,3001,2032,5025
>ST 0025

Then I stop the csd (F1) and start over with "./csd -B". This is, because I find no solution to send "shift F12" on my apple keyboard. Then I get the OS/8 prompt.

This is very interestingg for the sbc6120, because it only has one serial port. With 38400 the speed is quite OK.
 
Was the intention to mount games.tu56 as DSK: or are you supposed to copy the game you want to play to your SYS: device?
Not having system head saved space so it was common for DECtapes to not be bootable.
If you had better storage and were going to use program frequently you would likely copy it off the DECtape for speed but didn't need to. Think I made up this tape probably for a VCF. Probably booted from drive 0 and swapped tapes on drive 1 for the demos but don't really remember.

I assumed your adding DECtape support was so people could easily access existing images so was giving examples of the 3 common formats for testing.
 
Then I stop the csd (F1) and start over with "./csd -B". This is, because I find no solution to send "shift F12" on my apple keyboard. Then I get the OS/8 prompt.

This is very interestingg for the sbc6120, because it only has one serial port. With 38400 the speed is quite OK.
What function key do think I should move the boot feature to?

Historically the function keys came from the DEC terminals and the code sequences seem to have been adopted by X windows. But there are anomalies, I say you used F1 to get out of it and then restarted with the boot option so at least some of the F-keys must be supported.

I played with it for a long time at 9600 baud and so when I got it to work at 19200 it felt a lot faster. I can imagine that 38400 would feel almost snappy.

If the sources or binaries for the ram disk and ide handlers were provided there is no reason you cant run BUILD and add them to the csd boot image. I included the CONSYS.PA and CONNON.PA sources used on DSK: (CSD1:) in addition to being in the handler sub directory. My suggestion might be to go the other way. Boot from the IDE device and install CONNON.PA on your IDE boot image or the RAM disk image, whichever you normally use. Then you can then add that handler to your normal system and turn on any of the CSD, RK05, or DECtape mappings in BUILD. Eventually I will add RX01 and RL01 image support.
 
Doug,
at the moment I'm not quite sure if the "shift F12" problem sits before or behind the keyboard. I will find out.

I hopefully will play with BUILD later tonight.
 
Back
Top