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
$