Yeah, we're moving. I rolled the computer over and entered the simplest program on the earth.
0000 | 7001 | LOOP1: | IAC | |
0001 | 2101 | LOOP2: | ISZ | 0101 |
0002 | 5001 | | JMP | LOOP2 |
0003 | 5000 | | JMP | LOOP1 |
Simple program, just increments the accumulator in a way you can watch. I need to remember that bit 0 is the MSB and bit 11 is the LSB. But after loading that program in and running it I can see that:
The accumulator increments properly.
Link overflow works, and when link overflow is overflowed it clears the AC and starts again.
Lights on 10 and 8 on the accumulator seem to be out. Need new bulbs.
The three Instruction register bits are properly lighted and working.
Major states lights include F,E and RUN.
Turning the key to PANEL_LOCK locks out the start, stop, and other buttons.
Odd things:
Putting MEM PROT up doesn't seem to light the PROT light. Maybe that's only if you try to change top memory.
Togging Data field and inst field doesn't seem to change the memory address location. Yes I don't have the memory expansion but ok....
Running a slightly more complex program gets the AC lights to go back and forth.
| | | | |
0000 | 7320 | | CIA STL | |
0001 | 7004 | L5: | RAL | |
0002 | 7430 | | SZL | |
0003 | 5013 | | JMP | L1 |
0004 | 2100 | L2: | ISZ | 0100 |
0005 | 5004 | | JMP | L2 |
0006 | 2100 | L3: | ISZ | 0100 |
0007 | 5006 | | JMP | L3 |
0010 | 2100 | L4: | ISZ | 0100 |
0011 | 5010 | | JMP | L4 |
0012 | 5001 | | JMP | L5 |
0013 | 7010 | L1: | RAL | |
0014 | 7430 | | SZL | |
0015 | 5001 | | JMP | L5 |
0016 | 2100 | L6: | ISZ | 0100 |
0017 | 5016 | | JMP | L6 |
0020 | 2100 | L7: | ISZ | 0100 |
0021 | 5020 | | JMP | L7 |
0022 | 2100 | L8: | ISZ | 0100 |
0023 | 5022 | | JMP | L8 |
0024 | 5013 | | JMP | L1 |
One thing I did notice here is that if I make a mistake in the program and go back to an address with load address, the address and the instruction are in the MA and MB and changing the switches then hitting DEP puts the right value in the memory address.
However if I use Exam to go to an address then toggle in the value for that address and hit DEP it puts the value in the switches in the next memory address. This might be how it works, if EXAM increments the PC when selected and DEP gets the value of the PC then it's possible it would put the value one address up. Simply entering the address, then hitting LA then changing it then hitting DEP works.
And now my pdp8/L has a little cylon thing going back and forth. I think I will stop here for awhile and take a break. I need to order some bulbs to fix this display, then I can start working on the other 8/L here and get it to this point.