• Please review our updated Terms and Rules here

SIMH/os8diskserver/PDP-8

Mike_Z

Veteran Member
Joined
Dec 1, 2013
Messages
1,713
Location
Near Milwaukee Wisconsin
I think my PDP8E machine is working well enough to attempt making a RK05 Disk emulator. Each program that I have entered via the front panel switches either worked or didn't because I made an entry error.

I decided to use a Dell GX520 Windows XP SP3 machine for the emulator. It has a Pentium 4 running at 3.0 Gc, with 2 Gb of RAM and an 80GB IDE hard disk.

I've decided to follow Kyle Owens web site page on GITHUB. https://github.com/drovak/os8diskserver/blob/master/SerialDisk/docs/how-to.md

This software should emulator a RK05 drive via a serial port to the PDP8E, Aync Comm board M8650. My M8650 boards have the device select configured for 03 and 04 Rx/Tx. I will have to change one of them when the time comes.

I down loaded Kyle's zip file, which are the same files as on the web site. For some reason I can not view the *.MD doc files on my computer and have to look at them on the internet. Minor problem.

The next item is to compile the software. I don't pretend to actually know what I'm doing in each case here and am just following Kyle's instructions. Apparently, the code is written in C and set up for Linux. Having limited knowledge of these, and also limited Windows, I read about and decided to use the CYGWIN program. This program allows one to run Linux programs on Windows. Chime in if I'm not speaking correctly, remember I'm a draftee here. So.... on the WWW.CYGWIN.com page, a little down from the top there are download links for 32 and 64 bit versions. I selected the 32 bit, 'setup-x86exe'. I just clicked on the link and followed the instructions and it worked. I did not install any extra packages, the GCC ones. Did that later. I also saved the install program in my C:\cygwin directory. You may need it for more installation stuff.

I then Googled how to install GCC and found preshing.com/20141108/how-to-install-the-latest-gcc-on-windows. This explained how to install the GCC program via the command line. Here again I followed the instructions.

To install the GCC stuff, In a Windows CMD box, I had to change the directory to C:\CYGWIN. This is where the program resides, and then entered.

c:\cygwin>set-x86.exe -q -P GCC-G++ -P make -PDIFFUTILS -P LIBMPFR-devel -P LIBGMP-devel -PLIBMPC-devel

I don't know what all this stuff is. It must be the tools needed to compile the software. I do know that if you are using a 64 bit machine the directory name has 64 in it and the setup name also has 64 in it. Those are the changes needed. Also be careful entering the exact words. Don't copy mine, use the website's, I'm a poor typer.

If it works the command line will return with no errors.

Here is where I stumbled a little for a while. I could not get GCC to find the files. So I had to change the path in windows to include c:\cygwin\bin. In XP, that would be Control Panel - System - Advanced - environmental variables. I added c:\cygwin\bin and c:\cygwin. Then restarted the machine. This was not on Kyle's page.

Then back to the command line box. Change the directory to where you have the SerialDisk\Server files. Type in

GCC -o os8disk server.c

The command line should return with no errors. Mine did. otherwise you have to investigate. I tested the program by running os8disk.exe and received the response that Kyle mentioned.

$./os8disk
PDP-8 Disk Server for OS/8 V1.0
........etal

All this stuff is in Kyle's How To file.

Next, is installing the system handler. In the command line box change the directory to SerialDisk\installer. Here again I stumbled for a while until I noticed that Kyle's website was calling for a file called instlhndl.exe, but in my directory it was spelled inst(no l)hndl.exe. I typed in

GCC -o insthndl handler_installer.c

This also worked because the command line returned with no errors.

Now the handler is used to make the rk05 disk image. I was a little confused here. I at first thought that I had to go to David Gesswein's website to get it, but the diagpack2.rk05 file was already in my disks directory. Next I typed in on the command line box

inst(no l)hndl [handler directory]/sys_handler.bin [disk directory]/diagpack2.rk05

Here again I stumbled because of poor typing. The directory names are quite long. I also noticed that the diagpack2.rk05 is not in the disks directory but in the sub \omnibus\system\ of the disks.

Anyway this worked and I'm up to Configuring the server, but the dog has to go out and I had enough for today. If anyone sees something I did wrong let me know. I figure I may have to do this a few times to get everything correct. I want these notes to help through the second, third etc. times.

Thanks Mike
 
Hi All;

Mike, You could have saved Yourself a few steps, When downloading Cygwin, and had it install Gcc, Binutils, and a few others that I can't remember the names of at the Present..
And it would have Installed them ready to go for You all by itself..
I know because I have had and continue to have to do many of the same things to try to get things to run on my 11/45..
You could ask Don about all of my plentiful mistakes, that He had to correct me on..
So, You're not alone in this Journey..
I know about the Dog thing, we have two here..

THANK YOU Marty
 
Kyle's stuff pretty much just works, except for the few documentation errors you noted. An easier option might have been to set everything up on a Raspberry Pi already running linux, but your path will work just as well.

Malcolm and I just went through this exercise with his PDP-8/E. We got caught out because we _didn't_ run all the toggle-in diagnostics first (details to follow) but otherwise, everything went according to Kyle's recipe. A big advantage of having his system in place is that running further diagnostics becomes much easier. That catch, of course, is that you have to fix your system before you can run diagnostics, not exactly the order one might prefer.

Jack
 
Hi All;

"" That catch, of course, is that you have to fix your system before you can run diagnostics, not exactly the order one might prefer. ""
Jack, that exactly describes the problem(s), I am having with the PDP 11/45..
As, well as what many others are having with their 8's and what Daver2 and I went thru on our 8i clone..
Hopefully, Mike isn't or won't have the problems others have had..

THANK YOU Marty
 
Keep in mind that "the diagnostics" will produce at best a reasonable guess at what ails a machine and were intended to be interpreted by people who had been trained on the machine, the software, and test equipment that in many cases no longer exists.

But some principles are pretty universal. You need solid, stable, clean power. All those pretty gates on the logic diagram do some pretty unpredictable things if they're not getting the power they were designed for. You really should have a known good set of spares for central parts of what you're trying to fix. You should have some way to look into the guts of the circuit while it's running: scope, logic analyzer, whatever. And you should have some idea of what it would be doing if it wasn't sick.
 
Marty, I thought about installing the GCC with CYGWIN, but there was so many choices. I didn't know which to use. So I just did what I did and it worked.

Jack, there is no reason that I can not do a few different methods. I like pie, especially apple. So maybe after I get this to work, I can spend some time investigating the pie way.

As far as the health of my machine, I think it's OK. Everything I tried so far works. Not to say that a failure is not eminent. Old stuff can go any time.

So..... today I looked at the configuring the server. The Disk.CFG file has the baud rate, # of stop bits and port. Since, currently my serial rate is only 110 baud, I set it at that. I have a couple 19.6608 crystal coming and maybe then I can up the rate, later. The next number is the stop bits. 0 = 1 stop bit and 1 = 2 stop bits. The last is the port. Here I stumbled again. I entered COM1, but this didn't work. When I started the server, I got a comm error

os8disk -1 ../disks/diagpack2.rk05
PDP-8 Disk Server for OS/8, v1.0
Using system disk ../disks/diagpack2.rk05 with read enabled and write
enabled
init_comm:port failure on 'com1': no such file or directory

I tried upper and lower case on the COM1, no soap. I made a serial cable and connected it to the PDP8, no dice. I checked the cable. Then I figured maybe Linux uses a different name for the port, then windows, and it does.

/dev/ttyS0 is COM1

At first this didn't work either, because I added a '/' between tty and S0. Damn typing.

So with this change and starting the server I found that it started without errors. I connected the serial cable and got and error message, Unknown command 3777. So something is being sent.

I have to stop here. I have forgotten that I have to change the M8650 device select address. I'm wondering about what to do with the RTS/CTS lines or does that not matter. I'd like to change the baud rate to something faster. Should get a different crystal later this week. So I think I will just wait and maybe read up a little more on what is ahead.

Thanks Mike
 
Hi All;

Mike, "" I'm wondering about what to do with the RTS/CTS lines or does that not matter. ""
Unless you are using above 9600 baud, You should be able to leave then alone..
The only reason I have said should, is because I do not know anything about this particular Board and what it has on it, and the software You are running or using.. But, normally it should be OK, with not using these lines..

THANK YOU Marty
 
The M8650 doesn't do anything with hardware handshaking. It correctly asserts the lines that need to be asserted for data to flow, but they are held there while the machine is powered.

Sounds like you're making good progress! You're going to find it unbearably slow at 110 baud; I wouldn't even bother at such speeds, to be honest. I'm actually kind of surprised I wrote the software to work with 110 baud; then again, I based it off of David Gesswein's work, so if he supported it, I likely did as well.
 
I've made some progress with getting OS8 going and have run into a road block.

First I got the server to work, the boot loader and I get the OS8 dot prompt, after a boot. The OS8 EDIT program works, PAL8 and BUILD seem to work.

I'm up to the rebuilding OS8 part. Here the handler software is appended to files, assembled and built into the OS8.

I'm having a boat load of trouble appending the handler files into the DSKNSY and DSKSYS files. I've tried to use HyperTerminal that comes with Windows XP. After horsing around with the settings, I got it to work maybe 80%, but it continues to send bad data. I know this because I watch the data on the screen as it is sent. Then I make a listing of the buffer in EDIT and the same errors are there. I've changed the line and character delays, this seems to help, but there are still many errors. It seems that at times there is overrun then it catches up for a while. I have the flow control set to none and had the character and line delays up to 250ms. I think I need some better software.

I want something that is free, simple to use and works on XP. Does anyone have some suggestions for my to try? Thanks Mike

Or maybe I have to learn more about EDIT and just repair the errors in EDIT.
 
An old emulator which works under XP OK is Brays Emulator, do a google - still around though the website has changed names I think now. Easy to use, free and easy to change speeds, parity and the rest. I use it frequently.

I HAVE seen some problems occasionally at very high speeds (probably down to having no flow control) but generally robust.

It's a nice one to use on the 03/04 port as it is very easy to swap things around if you want to (say) load a RIM or BIN file then swap back to terminal I/O.
 
Mike,

I got the source PAL code from my Host OS to the emulated simh pdp8 using cut-and-paste. I had the code open in.a notepad type editor, selected and copied the text then pasted into the pdp8 window whilst running EDIT. I did have problems with longer text, I think it was buffer overrun. So, I cut about half of the text, paste that to EDIT the closed and saved the file. Re-open the saved file, put into append mode, cut and past the rest. Not elegant but it did work.

- Crawford
 
Today, ended some frustration I was having trouble getting past rebuilding OS/8. Here new handlers were being made to be built into the OS/8. The Serial Disk Server works fines with no trouble at all. I could start the EDIT program and all the functions would work. I'd set up the non system file for appending the non system handler code to it and there would be tons of errors. I was using MS Hyper Terminal. As I watched the screen I could see that something was not right. The text would appear in a uniform fashion and then occasionally, the rate would speed up, the insert point would back up, then the rate was inform again. This happened multiple times during the transfer. I tried many line and character delay values, but this did not help. I then tried another XP computer with a different copy of Hyper Terminal and the same problems occurred. I suspected Hyper Terminal.

Then I thought of trying some DOS commands in the command window. I set MODE COM1:110,E,7,2. I was using the 110 baud port for my terminal. Then COPY a:\nonsys.pal COM1:. This only worked for a short period until I received a Windows error 995. Something interrupted the terminal the transfer.

So, I decided to try my IBM XT machine with the same settings running in DOS. This seemed to work. So to check it I ran the SYS:DSKNSY.PA< in PAL8. Again it showed tons of errors. RATS!

Next I figured I have to see what is in the new file after the append. I first tried to see the file on the XP machine. Nothing. Then I remembered that the server is Linux. So I loaded Knoppix 6 on the XP machine, but could not find the files again. They have to be there, but I don't know where.

Then, I decided to learn how to use the OS/8 EDIT commands. They are rather similar the CP/M ED commands. So after some practice I was getting pretty good at loading the buffer, finding stuff, printing it off, etc. That is when I noticed that many characters were missing from most of the lines of code. Mostly the first 7 or 8. Comparing this to the original nonsys_handler.pal file I noticed that this omissions corresponded to a TAB in the original file. What in the world? After thinking about how to fix this, I decided that I'd remove all the TAB's from the original file. This did it. My next append with EDIT and assembly with PAL8 yielded only one error and that was a dropped character. Which, since I now know how to work EDIT I corrected and then PAL8 assembled with no errors. So, I did the same with sys_handler.pal with similar results. OK, I'm on my way.

Next to build the system. Build started and reported what was loaded as the instructions say on page 4. The unload commands also worked and were verified with the PR command. Here I was a little confused by Kyle's statement that he removed the DECtape handlers, but there was no UN commands with which files those were. I investigated and decided that they were

TD8A: *DTA0 *DTA1

and did a UN TD8a, which PR reported they were gone.

Next, I started the Loads, LO SYS:DSKSYS worked fine. PR reported that it was there. Here is where I notice that the TD8A line was still in Kyle's PR.

Next the IN SDSK:SYS,SDA0,SDB0, which also worked. I say worked because I would get no error report and the return of the $ prompt. Did the same for the DSKNSY stuff. Again PR reported correctly (except that mine did not have the TD8A).

Did the IN SDSK:SDA1,SDB1 and DSK=SYS which also worked. Then I did DE DTA0-1. This didn't work, because I had unloaded TD8A earlier, so I figured that was OK. Proceeded to DSK=SDSK:SYS.

Now, I'm up to building, I entered BO and waited for the SYS BUILT, but I got a question WRITE ZERO DIRECT, Not knowing what this was I replied Y, the program continued and I did get the SYS BUILT. I then saved it. Happily I read "That's it, your done" and was advised to test my work. with a DIR SDB0:/p. No directory report, but an error message NO CCL. Now nothing works EDIT, PAL8, both not found, Dir also can not find a directory. So I powered the machines down and started again, but with the same results. I get the dot prompt, but nothing works beyond that.

My question now is what to do. Must I start fresh or can I do something different? Geeezzzz...... Thanks Mike
 
Mike,

To be painfully honest, I had the same experience. I think I went back and tried answering "NO" to the write query, but I don't recall if it worked or not. I definitely experienced the "NO CCL" message several times. In the end, I just copied what I needed from the B sides, either using the memory image or PUTR and never bothered with the BUILD part of the installation. Maybe someone else can illuminate the process for both of us (Lou?). I've also heard somewhere that some copies of BUILD were suspect but I never really followed up on the reports since I've been happy with what I have available on the A sides of the cartridges. I hope Malcolm covers it in his HowTo ...

Jack
 
Jack, I found, in the OS/8 handbook on page 2-54;
******
If the system device specified is different from the current system device (which I suspect it is), BUILD copies the system from the current system device to the new system device. After the copy is complete, BUILD asks:

WRITE ZERO DIRECT?

to determine whether a new (zero) directory is to be written on the new system device. If the reply is YES, a zero directory will be place on the device. Any other reply causes the old directory to be retained.

NOTE:
Care should be exercised if the old directory is to be retained. The directory must be that of an OS/* system device.

After this question has been answered, BUILD updates the system and prints: SYS BUILT.
*******
I don't think that I made an entry error. This is one good point for the TTY, it may be slow, but it recorded what I typed. I think I did the right thing by entering YES to the question.

I don't understand what you mean by "In the end, I just copied what I needed from the B sides, either using the memory image or PUTR and never bothered with the BUILD part of the installation." I'll have to think about that some. Thanks Mike
 
Mike,

Yes, I remember consulting those pages, but I came up with the opposite interpretation - by zeroing the directory, you are deleting (the pointers to) all the files on the device, and thus there is no CCL to interpret your commands when you try to work from the dot prompt. I think it would be the same as erasing the CCP in CP/M. But, and it's been a while, I think that I still had problems when I answered NO to the question.

Jack
 
Yes, you may be correct. I found this explanation of NO CCL;

CCL.SV is not present on the system device, or an I/O error occurred on the file. Refer to the OS/8 System Generation Notes for instructions on loading programs onto the system device.

Maybe If I can find the 'OS/8 System Generation Notes'. I wish I could see the files on my XP machine. Maybe I will at least attempt to start over and answer NO the question to see what will happen, but I'll wait some before I try. Thanks. Mike.
 
Since you've got a minimal system you can remove more or less whatever you like from Build to make room for the os8diskserver devices. UNload removes the handler completely so it can't be reINserted. DElete only deactivates it. There are different restrictions on device types and numbers in the different Build tables, see the Build writeup.

You should generally reply 'NO' to the invitation to zero the system directory in this case. The reason is that you haven't actually changed the system device (ie the file you began with) but because you've changed the handler Build thinks it is a new system device. As you've found, if you say 'YES' you make life awkward ;).

Remember to do a .SAVE SYS BUILD as soon as you've BOoted in case you want to fiddle with the handlers again afterwards. If you don't want to blow away the original copy of Build, just save as a different name. If the system device is full, try saving to the B side instead .SA SDB0 BUILD.
 
This morning I started over with Serial Disk. Followed the instructions as is this time. It sure goes a lot faster when you don't have to trouble shoot along the way. Anyway, I got to the question WRITE ZERO DIRECT? I answered it 'N' then everything just hung. I had to reboot from the boot loader to get started again. This time nothing was changed and I still have control on OS/8. So the build apparently was not changed.

I need to understand the file system a little better than I do. The RK05 has two drives and two sides to each? What are they called?

In the minimal system that I have the drive device is SYS: Is this one of the RK05 devices? I have a copy of the OS8 handbook from April 1974, suppose some reading is in order. Thanks Mike
 
Back
Top