• Please review our updated Terms and Rules here

SIMH/os8diskserver/PDP-8

I have also recently added pages to my website for PDP-8e related diagnostics. Includes not only .bin and .rim loadable tape images, but .pdf versions of original DEC printed documents, and .pal and .lst disassembly/assembly for each corresponding diagnostic.

The files are all located under directories here: http://ak6dn.dyndns.org/PDP-8/MAINDEC/

They have been gathered from various sources (like both sites mentioned in the previous post) as well as others.

Don
 
I have the RIM loader working and can key it in. With it I can load the BIN loader from my IBM-XT machine com port. I plan on using the XT to load the MAINDEC programs as well. The BIN loader runs and looks like it is working, but I don't think the first attempt of loading the instruction #1 program worked. Today, I want to check to see whether or not the BIN is loaded correctly.

If I recall correctly, the RIM loader expects files to be formatted as 2 bytes of address followed by 2 bytes of data, whereas the BIN loader excepts 2 bytes of address, then followed by consecutive 2 bytes of data.

I also toke a quick look at the data in the instruction #1 program and it seems to have some odd stuff at the beginning, right after the leader. So today will most likely be consumed with investigation and hopefully soon a successful run of the instruction #1 program.

Dave, I like the idea that there maybe there is a problem with some little used part of the machine, like the MQ register. Otherwise I should not have had as much success with the machine as I have.

Don, thanks for consolidating the software as you have. I do like the PDF documents, other wise I'd be up a tree trying to figure out how the program works. Mike
 
Some of the diag tape images are complete images of the original tape, including the human readable copyright notice at the beginning. The BIN loader doesn't like the garbage at the beginning of the tape and will halt. I open the files in a HEX editor end delete everything at the beginning except for some of the 0x80 characters. The tapes work fine after editing.
 
Looks like the BIN LOADER that I downloaded and tried to use makes use of a HIGH SPEED I/O device, 60XX. One that I do not have. I found a couple other Bin Loader on bit savers which I'm going to try. Mike
 
The BIN loader can use either low or high speed reader depending on the setting of the switch register bit 0.
Load BIN loader using RIM
Halt the pdp8
Load Address 7777
Set SR0 to 0 for high speed reader (which you don't have) OR Leave SR0 at 1 for low speed
Clear, Cont
Send the binary file from the PC
Check that the pdp8 has halted
Check that AC = 0

As Mike has noted, you need to make sure that the binary file has no characters before the leader code.
Be aware that some binary tapes (not diagnostics IIRC) have more than 1 part which makes life more interesting.
 
Bob, I have to follow instructions? Image that! Geezz, it works so much better when you know what to do. I did as you said and the 1st instruction program loaded. Takes a while at 110 baud. The PDP8 halted and the accumulator was zero. So I ran the 1st instruction program. Here I have the instructions, the PDF file.

1. set sr=200 load address
2. set sr=7777 clear and continue
3. the PDP8 did HALT at 147 and the AC = zero, no errors
4. I pressed continue and the machine has been running for 30 minutes with no errors and it beeps every 5 seconds or so. So this 1st MAINDEC seems to worked fine.

I'll leave this run for a while and then maybe tomorrow, I'll try the second instruction MAINDEC program. Thanks a million for the help. Mike
 
That's good you got it going. That is the correct behavior for that first diagnostic.

The diagnostic tape .BIN and .RIM images I put on my website don't have any fluff at the beginning, they are data tapes only. They can be loaded directly into the hardware via either the RIMLDR (.rim) or BINLDR (.bin) program stubs, depending on the tape format used.

I added my low speed (ie, console TTY) version of the BINLDR on this page: http://ak6dn.dyndns.org/PDP-8/MAINDEC/. I have a hardware RIMLDR on my PDP-8m (MI8-E M847) that I will use to either load .rim tapes directly, or use to load BINLDR.rim to then load .bin tapes. I do this using TeraTerm 'send binary file' to a 9600baud serial interface in my PDP-8m (M8655).

At 9600b the difference in loading .rim vs .bin is not that a big deal, but at 110b it will be about 2X as long. .rim is a very simple format, address/data for each word, whereas .bin does an address followed by a block of data. It is shorter by about a factor of 2X versus .rim - the .bin tape is mostly just data words with a few interspersed address and checksum words. .bin tapes have checksummed data blocks, whereas there is no checksum at all on .rim tapes.

All the .bin (and .rim) tapes on my site have been vetted thru running on my real PDP-8m hardware, and thru running under PDP-8 SIMH. I have added the SIMH .ini and .log files to each directory along with the diagnostic tape images. Note in the .ini file for SIMH I patch those diagnostics that ring the bell on end-of-pass to output a '.' instead of ringing the BELL so it appears in the log file.

Here is the log of running the .bin format CPU diagnostic tapes under SIMH:

Code:
KK8-E_pdp8e_cpu[1] pdp8 diagnostics_bin.ini

PDP-8 simulator V4.0-0 Beta        git commit id: fc417114
============================================================
MAINDEC-8E-D0AB-PB.bin

Breakpoint, PC: 00200 (JMP 144)
...............................................
Step expired, PC: 02660 (CLA)
============================================================
MAINDEC-8E-D0BB-PB.bin

Breakpoint, PC: 00200 (CLA)
................................................
Step expired, PC: 02115 (DCA 15)
============================================================
MAINDEC-8E-D0CC-PB.bin

Breakpoint, PC: 00200 (JMP 156)

SIMAD
SIMROT
FCT
RANDOM
Step expired, PC: 00214 (CMA)
============================================================
MAINDEC-8E-D0IB-PB.bin

Breakpoint, PC: 00200 (JMP I 201)
..............................................
Step expired, PC: 03443 (DCA 136)
============================================================
MAINDEC-8E-D0EB-PB.bin

Breakpoint, PC: 00200 (CAF)

T
T
T
T
T
Step expired, PC: 07223 (MQA)
============================================================
MAINDEC-8E-D0DB-PB.bin

Breakpoint, PC: 00200 (CAF)

A
A
A
A
A
Step expired, PC: 00230 (TAD I 202)
============================================================
MAINDEC-8E-D0FC-PB.bin

Breakpoint, PC: 00200 (JMP 40)

FC
FC
FC
FC
FC
Step expired, PC: 00134 (SNA CLA)
============================================================
MAINDEC-8E-D0GC-PB.bin

Breakpoint, PC: 00200 (JMP 20)
.................................................
Step expired, PC: 00164 (JMP I 154)
============================================================
MAINDEC-8E-D0HC-PB.bin

Breakpoint, PC: 00200 (JMP I 370)

HC
HC
HC
HC
HC
Step expired, PC: 00073 (TAD 124)
============================================================
MAINDEC-8E-D0JC-PB.bin

Breakpoint, PC: 00200 (JMS 157)

JC
JC
JC
JC
JC
Step expired, PC: 00267 (SPA)
============================================================
Goodbye
 
Last edited:
I also toke a quick look at the data in the instruction #1 program and it seems to have some odd stuff at the beginning, right after the leader. So today will most likely be consumed with investigation and hopefully soon a successful run of the instruction #1 program.

My site (www.so-much-stuff.com/pdp8) tries to be more "Living Computer" than "Computer History" about these files.
One manifestation of this is that the files at http://www.so-much-stuff.com/pdp8/software/maindec.php
have already been trimmed of historical cruft and should be ready to punch or load. Tapes with multiple sections have
been split so the sections can be separately attached to a simulator (though a cleaned up original is usually present
too).

The DECUS area has had more attention than the maindecs, but please let me know if you find cruft in any of my images.

Thanks,

Vince
 
This morning, the Instruction #1 program was still running and beeping. So, I stopped it and loaded the Instruction #2 program. It also ran fine. I had it running for about 5 hours with no errors. So I thought I'd try the memory checkerboard program, but here I ran into some trouble. I downloaded one of the programs and successfully transferred it to the PDP8E with BIN loader. The instructions told me to start the program at 200, clear and continue. Apparently I should then see TEST LIMITS displayed, but the PDP8E seemed to be running wild. I tried another Checkerboard program and the same behavior occurred. The first file I used was MAINDEC-08-D1EC-D and the second was MAINDEC-08-DHKAC-A. There are other programs listed, suppose I'll try them all. Mike
 
This morning, the Instruction #1 program was still running and beeping. So, I stopped it and loaded the Instruction #2 program. It also ran fine. I had it running for about 5 hours with no errors. So I thought I'd try the memory checkerboard program, but here I ran into some trouble. I downloaded one of the programs and successfully transferred it to the PDP8E with BIN loader. The instructions told me to start the program at 200, clear and continue. Apparently I should then see TEST LIMITS displayed, but the PDP8E seemed to be running wild. I tried another Checkerboard program and the same behavior occurred. The first file I used was MAINDEC-08-D1EC-D and the second was MAINDEC-08-DHKAC-A. There are other programs listed, suppose I'll try them all. Mike

I have never had any issues running DHKMA available here: http://ak6dn.dyndns.org/PDP-8/MAINDEC/MM8-EJ_memory/ as well as other places. It runs in simulation on SIMH as well as on my real PDP-8m with 16K core. Basically load it, set the switch register to 0007, and start it up. It will autodetect the number of pages of memory you have and test all those present. Let it run for a couple of hours or so.

Don
 
OK, I misunderstood. I had read in the PDF that the program would ask for blocks to test, but your saying it reads the SR. So when I had started the program at 200, apparently the SR was set to something the program didn't understand. I'll try again tomorrow. Thanks Mike
 
Don, I loaded DHKMA as you said. Set the start address to 0200, then set SR=0007, clear, continue and the machine is running. There is no activity on the TTY, the PDP8 run light is on, the low 8 bits of address lights are lit (not all the same intensity). How do I know that the program is actually doing something? Should I expect to see the Extended Address lights to come on at some point? The PDF file for DHKMA says that errors will be displayed on the TTY. After 15 minutes of program run time, there is nothing. Happy Easter, Mike
 
You should see the program relocate periodically and should see the field lights change periodically. Every 5 minutes you should see a "5" and a four digit pass number printed on the console.
 
You should see the program relocate periodically and should see the field lights change periodically. Every 5 minutes you should see a "5" and a four digit pass number printed on the console.

Correct except the pass number is not printed, just a '5' after each successful pass. The DATA FIELD lights should be changing fairly frequently as the program cycles thru the detected fields. The below printout is for a full 32K / 8 field system, if you only have 16K / 4 fields it should show the selected fields as only 3 2 1 0.

Code:
PDP-8E EXT MEM DATA & CHKBD

SETUP SR & CONT
((HALT instruction; set SWR to 0007; hit CONT; this line is not actually printed))

8 FIELDS IN THIS SYSTEM
FIELDS SEL'D ARE 7 6 5 4 3 2 1 0
PROG WILL RELOCATE
5
5
5

You might also want to run the Extended Memory Controller diagnostic: http://ak6dn.dyndns.org/PDP-8/MAINDEC/KM8-E_memory_extension/ This functionality has to be working for the above memory test to access and test the additional memory fields.

To run it, load the program and then set the low three bits of the SR to the number of extended fields present (ie, for a full 32K system set the SR to 0007; for 16K set it to 0003). I also deposit a 0256 into location 1554 to have it print a '.' on end of pass, rather than ring the BELL.

Don
 
Last edited:
Mike,

I checked through the source listing for MAINDEC D1EC and it should have printed the "TEST LIMITS" message on the console at start-up. If not, either IF/DF are not set-up correctly before you run the program - or there is a fault somewhere within your machine (which you already suspect).

If I have read your posts correctly - you have run CPU test 1 and 2 but none of the others?

If you read the comments for CPU test 2 (PDF file) you will read that it only provides 'minimal testing' for the INTERRUPTS and the AND, TAD, ISZ, JMS, JMP and IOT instructions. This is the purpose of the other tests in the CPU category.

I would suggest following the correct sequence of all CPU tests followed by EXTENDED ARITHMETIC followed by MEMORY EXTENSION followed by MEMORY. Yes, I know it is a ball ache - but this is the best way to fully test out the 8/e logic in a systematic way. This way, you will hopefully pin-point an individual instruction that fails rather than a test function that could contain hundreds of individual instructions - one of which may be failing.

Dave
 
Yes, I agree it's a good idea to run all of the diagnostics for a good while with the machine warm and cold and I always do that when I've got one of my pdp-8s first run up or made changes.

Having said that, I can't think of a single time when a machine was able to load the BIN and then load a tape successfully but would still fail a diagnostic aside from cpu or memory tests. From my experience it's quite uncommon to find obscure faults in the basic instructions, they generally work or don't.

(But it's still a good idea ;)).
 
Last edited:
I toke the afternoon off yesterday for a nice Easter Dinner. Today I have to drive over to the hardware store for some home repair stuff. I hope to get the PDP8 started later this afternoon.

Once I knew exactly how to run the first and second instruction MAINDEC programs they both ran fine. I'm still having trouble with the memory program. It's probably human error (human being me). There are times when the sun, stars and moon are aligned when I can ball things up royally. Just got to get a way from it for a while to let things settle. So I'm sure this afternoon or tomorrow, should that be, will show more progress.

I'm pretty sure that the memory in my machine is good. I borrowed one of Vince's 32K board from Jack and it seems to be working OK. I suppose that the extended memory board M837, could be a problem though. I don't see the extended memory front panel lights come on very often, but they do occasionally.

If the memory program continues being a pain (or maybe it's me), I'll try some of the other programs. Thanks for the help, I appreciate it. Mike

One last thing, you mentioned a sequence of tests. Is that documented some where? In what order should they be done?
 
Last edited:
Marty, anytime is Model T time and I drive it year round. BUT, it's down right now for it's annual physical. The engine will be out soon to check all the clearances and a general inspection. I rebuilt the engine about 5 years ago, all new babbitt etal. Now with about 25K miles on it I want to see how it is holding up. So, the 'T' will out of commission for maybe a month. Mike
 
Back
Top