Uit Hack42
Ga naar: navigatie, zoeken
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 10: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
   $