Uit Hack42
| Regel 68: | Regel 68: | ||
| 0432 || ? || writing completely gone | | 0432 || ? || writing completely gone | ||
|} | |} | ||
| + | |||
| + | ==== code to dump the core of field 0 to a serial port ==== | ||
| + | |||
| + | There are some jumps because of faulty memory locations. that is why the start address is 176o. | ||
| + | |||
| + | <code> | ||
| + | *176 /LOCATE PROGRAM STARTING AT ADDR 200 | ||
| + | CLA CLL /CLEAR ACCUMULATOR /CLEAR AC LINK | ||
| + | NOP // bad memory | ||
| + | DCA TMP1 /STORE THAT (0) IN TMP1 | ||
| + | NOP // bad memory | ||
| + | MAIN, NOP | ||
| + | TAD TMP1 // load TMP1 | ||
| + | JMS PRINTNUM // print dit nummer | ||
| + | CLA CLL | ||
| + | TAD SPACE | ||
| + | JMS TTYO // output to tty0 | ||
| + | TAD I TMP1 // indirect laden van TMP1 | ||
| + | JMS PRINTNUM // print dit nummer | ||
| + | TAD TMP1 // load TMP1 | ||
| + | IAC // INCREMENT 1 | ||
| + | DCA TMP1 | ||
| + | TAD CR | ||
| + | JMS TTYO // output to tty0 | ||
| + | CLA CLL | ||
| + | TAD LF | ||
| + | JMS TTYO // output to tty0 | ||
| + | JMP MAIN // tada.wav | ||
| + | |||
| + | PRINTNUM, NOP | ||
| + | DCA TMP3 // store this in tmp3 | ||
| + | TAD TMP3 // get it. | ||
| + | RAR | ||
| + | RTR | ||
| + | RTR | ||
| + | RTR | ||
| + | JMS STUK | ||
| + | NOP | ||
| + | HEEL, NOP | ||
| + | |||
| + | CLA CLL // clear AC | ||
| + | TAD TMP3 // load TMP3 | ||
| + | RTR | ||
| + | RTR | ||
| + | RTR // 6 bitwise shift | ||
| + | JMS PLUS // xor met 0070 | ||
| + | JMS TTYO // output to tty0 | ||
| + | |||
| + | CLA CLL // clear AC | ||
| + | TAD TMP3 // load TMP3 | ||
| + | RAR | ||
| + | RTR // 3 bitwise shift | ||
| + | JMS PLUS // xor met 0070 | ||
| + | JMS TTYO // output to tty0 | ||
| + | |||
| + | CLA CLL // clear AC | ||
| + | TAD TMP3 // load TMP3 | ||
| + | JMS PLUS // xor met 0070 | ||
| + | JMS TTYO // output to tty0 | ||
| + | JMP I PRINTNUM | ||
| + | |||
| + | PLUS, NOP | ||
| + | AND AND7 | ||
| + | TAD PLUS60 | ||
| + | JMP I PLUS | ||
| + | |||
| + | TTYO, NOP /TTY OUTPUT ROUTINE. THE FIRST WORD OF | ||
| + | /A SUBROUTINE MUST BE EMPTY (0) BECAUSE | ||
| + | /THE JMS INSTRUCTION INSERTS THE RETURN | ||
| + | /ADDR IN THIS WORD. | ||
| + | 6446 /WRITE AC TO THE OUTPUT DEVICE (TTY) | ||
| + | 6441 /IF TTY IS READY, SKIP NEXT INSTRUCTION. | ||
| + | JMP .-1 /TTY IS NOT READY, SO CHECK AGAIN | ||
| + | CLA /CLEAR AC | ||
| + | NOP // Memory broken | ||
| + | JMP I TTYO /RETURN TO CALLER | ||
| + | |||
| + | PLUS60, 60 | ||
| + | TMP1, 0 | ||
| + | TMP3, 0 | ||
| + | SPACE, 40 | ||
| + | LF, 12 | ||
| + | CR, 15 | ||
| + | AND7, 7 | ||
| + | NOP // Memory broken | ||
| + | STUK, NOP | ||
| + | RTR // 9 bitwise shift | ||
| + | JMS PLUS // xor met 0070 | ||
| + | JMS TTYO // output to tty0 | ||
| + | JMP HEEL | ||
| + | $ | ||
| + | </code> | ||
Versie van 28 sep 2014 09:57
Code for the pdp8/f
for this machine
this code is for the machine in the configuration we got it in.
OS8/SYKES Bootstrap Loader
Pasted on paper on the back of the pdp8 8/e 8/f 8/m Pocket Reference Card
| Addr | instr | comment |
|---|---|---|
| 0400 | 1230 | - |
| 0401 | 6321 | - |
| 0402 | 6321 | - |
| 0403 | 7600 | - |
| 0404 | 6322 | - |
| 0405 | 5204 | - |
| 0406 | 6324 | - |
| 0407 | 7106 | - |
| 0410 | 7006 | - |
| 0411 | 3233 | - |
| 0412 | 6322 | - |
| 0413 | 5212 | - |
| 0414 | 6324 | - |
| 0415 | 7012 | - |
| 0416 | 7012 | - |
| 0417 | 0217 | - |
| 0420 | 1233 | - |
| 0421 | 3132 | - |
| 0422 | 2332 | very faint.. |
| 0423 | 2331 | barely readable |
| 0424 | 5204 | - |
| 0425 | 1203 | - |
| 0426 | 6321 | - |
| 0427 | 5014 | faint could be 5017 |
| 0430 | 0401 | faint. |
| 0431 | ? | writing completely gone |
| 0432 | ? | writing completely gone |
code to dump the core of field 0 to a serial port
There are some jumps because of faulty memory locations. that is why the start address is 176o.
*176 /LOCATE PROGRAM STARTING AT ADDR 200
CLA CLL /CLEAR ACCUMULATOR /CLEAR AC LINK
NOP // bad memory
DCA TMP1 /STORE THAT (0) IN TMP1
NOP // bad memory
MAIN, NOP
TAD TMP1 // load TMP1
JMS PRINTNUM // print dit nummer
CLA CLL
TAD SPACE
JMS TTYO // output to tty0
TAD I TMP1 // indirect laden van TMP1
JMS PRINTNUM // print dit nummer
TAD TMP1 // load TMP1
IAC // INCREMENT 1
DCA TMP1
TAD CR
JMS TTYO // output to tty0
CLA CLL
TAD LF
JMS TTYO // output to tty0
JMP MAIN // tada.wav
PRINTNUM, NOP
DCA TMP3 // store this in tmp3
TAD TMP3 // get it.
RAR
RTR
RTR
RTR
JMS STUK
NOP
HEEL, NOP
CLA CLL // clear AC
TAD TMP3 // load TMP3
RTR
RTR
RTR // 6 bitwise shift
JMS PLUS // xor met 0070
JMS TTYO // output to tty0
CLA CLL // clear AC
TAD TMP3 // load TMP3
RAR
RTR // 3 bitwise shift
JMS PLUS // xor met 0070
JMS TTYO // output to tty0
CLA CLL // clear AC
TAD TMP3 // load TMP3
JMS PLUS // xor met 0070
JMS TTYO // output to tty0
JMP I PRINTNUM
PLUS, NOP
AND AND7
TAD PLUS60
JMP I PLUS
TTYO, NOP /TTY OUTPUT ROUTINE. THE FIRST WORD OF
/A SUBROUTINE MUST BE EMPTY (0) BECAUSE
/THE JMS INSTRUCTION INSERTS THE RETURN
/ADDR IN THIS WORD.
6446 /WRITE AC TO THE OUTPUT DEVICE (TTY)
6441 /IF TTY IS READY, SKIP NEXT INSTRUCTION.
JMP .-1 /TTY IS NOT READY, SO CHECK AGAIN
CLA /CLEAR AC
NOP // Memory broken
JMP I TTYO /RETURN TO CALLER
PLUS60, 60
TMP1, 0
TMP3, 0
SPACE, 40
LF, 12
CR, 15
AND7, 7
NOP // Memory broken
STUK, NOP
RTR // 9 bitwise shift
JMS PLUS // xor met 0070
JMS TTYO // output to tty0
JMP HEEL
$