Uit Hack42
Ga naar: navigatie, zoeken

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
   $