         
/DISASSEMBLY PROGRAM PAGE 7
/CROSS REFERENCE PRINTOUT
          *1600
XPRNT,    CLA IAC    /NO REFERENCES TO LOCATION 0
          DCA PC
          DCA FLAG+1
          JMS I IPAGE
          JMS I IXTYP
          JMS CRLF
          TAD 16
          CMA IAC
          TAD AXREF
          SNA
          JMP NONE   /NO ENTRIES IN TABLE
          STL RAR    /DIVIDE BY TWO
          DCA SAVE   /= NUMBER OF ENTRIES
UP,       TAD SAVE
          DCA FLAG+4
          CMA
          DCA FLAG
          TAD AXREF
          DCA 16
          CMA
          TAD FLAG+1
          DCA FLAG+1
          TAD I 16
          TAD FLAG+1
          SNA CLA
          JMP PRNTX
          ISZ 16
LP,       ISZ FLAG+4
          JMP .-6
          ISZ PC
          JMP UP
END,      JMS CRLF   /FINISHED WITH CROSS REFERENCE
          JMS I IPAGE
          JMP I .+1
          0200
NONE,     JMS CRLF   /PRINT "NONE"
          JMS OUTPUT
          1617
          1605
          0000
          JMP END
PRNTX,    ISZ FLAG
          JMP DWN
          JMS CRLF
          TAD M11
          DCA FLAG+2
          TAD PC
          JMS OCTYP
          TAD C6
          JMS I ISPACE          /MAKE TWO SPACES
          JMS SYMBL
DWN,      ISZ FLAG+2
          JMP DWN2
          TAD M0010
          DCA FLAG+2
          JMS CRLF
          TAD I ISYMCN
          SZA CLA
          JMS I ISPACE
          JMS I ISPACE
DWN2,     TAD I 16
          JMS OCTYP
          JMP LP
M0010,    -10
FTAB,     0601       /FADD
          0404
          0623       /FSUB
          2502
          0615       /FMPY
          2031
          0604       /FDIV
          1126
          0607       /FGET
          0524
          0620       /FPUT
          2524
FCHK,     TAD SAVE   /MORE FLOATING POINT
          CMA
          AND FMSK   /IS IT FNOR
          SNA CLA
          JMP .+3
          JMS I MEMI
          FTAB-3
          JMS OUTPUT
          0616
          1722
          0000
          JMP RETURN
SUBR,     TAD SAVE
          SNA CLA
          JMP EXIT   /FEXT
          JMS OUTPUT
          2325
          0222
          0000
          JMP ILL
EXIT,     JMS OUTPUT
          0605
          3024
          0000
          DCA I IFLAG
          JMP RETURN
FMSK,     7000
MEMI,     MEM
IFLAG,    FFLAG
SYMBL,    0
          TAD I ISYMCN
          SNA CLA
          JMP I SYMBL
          TAD PC
          DCA ADD
          DCA CLER
          JMS I ISMSR
          JMP .+4
          TAD C254
          JMS I OUT
          ISZ CLER
          TAD CLER
          JMS I ISPACE
          JMP I SYMBL
ISYMCN,   SYMCNT
ISMSR,    SMSR
C254,     254
IXTYP,    XTYP
XREF,     0
LAST07,
          
/SYMBOL TABLE FOR DISASSEMBLER
/VERSION 15/IX/67
$
*U*',/CARD READER FOR THE PDP-8 FORTRAN COMPILER
/USING THE CR01C CARD READER AND THE 183 MEMORY EXTENTION
/LISTING OF CHANGES AND ADDITIONS
 
 
/LINKAGE TO INITIALIZING ROUTINE
 
*200
       6212           /CHANGE TO INSTRUCTION FIELD 1
       JMP I  .+1     /JUMP TO THE...
       INIT           /CARD INITIALIZING ROUTINE
 
 
/LINKAGE TO KEYBOARD AND CARD READ ROUTINE
*5155
       6213           /CHANGE TO FIELD 1
       JMS I  .+1     /REPLACES THE NORMAL...
       ENTRY          /READ ROUTINE
*5536
       6213           /CHANGE TO FIELD 1
       JMS I  .+1     /REPLACES THE NORMAL...
       ENTRY          /READ ROUTINE
 
 
/ROUTINE TO MOVE INITIALIZE AND READ ROUTINES
 
*7240
       CLA            /STARTS HERE
LOOP,  TAD I  FENT    /PICKUP WORD FROM LOWER MEMORY
       6211           /CHANGE TO DATA FIELD 1
       DCA I  FENT    /STORE IN UPPER MEMORY
       6201           /CHANGE TO DATA FIELD 0
       ISZ    FENT    /INCREMENT POINTER, NEVER SKIP
       ISZ    FIN     /ARE WE FINISHED
       JMP    LOOP    /NO, MOVE ONE MORE WORD
       HLT            /YES
       JMP I  .+1     /JUMP TO 200 TO START...
       200            /THE FORTRAN COMPILER
FENT,  INIT           /FIRST WORD MOVED
FIN,   INIT-BUF-1     /NUMBER OF WORDS MOVED
/ROUTINE TO INITIALIZE THE CARD READ ROUTINE
 
INIT,  OSR            /THIS INSTRUCTION WAS AT 200
       DCA I  PZRO    /THIS INSTRUCTION WAS AT 201
       6211           /CHANGE TO DATA FIELD 1
       DCA I  IPLPA   /SET BUFFER EMPTY INDICATOR
       DCA I  LF1     /CLEAR CARD READER BUSY FLAG
       DCA I  LFCONT  /CLEAR CONTINUATION FLAG
       6203           /CHANGE TO FIELD 0
       JMP I  .+1     /RETURN TO...
       5677           /STANDARD INITIALIZING ROUTINE
PZRO,  162            /ADDRESS OF INIT+1
IPLPA, BUF            /FIRST COLUMN IN CARD BUFFER
LFCONT,FCONT          /LOCATION OF CONTINUATION FLAG
LPOINT,POINT          /CARD BUFFER POINTER
LF1,   F1             /LOCATION IF CARD READER BUSY FLAG
 
 
/CARD READ ROUTINE
 
*7400
ENTRY, NOP            /START OF CARD READING ROUTINE
       CLA            /...
       TAD I  POINT   /PICKUP CONTENTS OF BUFFER
       SNA            /IS BUFFER EMPTY
       JMP    READ    /YES
       ISZ    POINT   /INCREMENT POINTER, NEVER SKIP
FOX,   6203           /CHANGE TO FIELD 0
       ISZ    ENTRY   /SKIP ONE ON RETURN
       JMP I  ENTRY   /RETURN
READ,  TAD    F1      /READER BUSY FLAG
       SNA            /IS CARD READER BUSY
       JMP    KEY     /NO
       6671           /YES, WAIT FOR CARD DONE FLAG
       JMP    .-1     /...
KEYM4, 6674           /CLEAR CARD DONE FLAG
       6632           /CLEAR DATA READY FLAG
       CLA            /...
       DCA    F1      /CLEAR READER BUSY FLAG
KEY,   CLA OSR        /LOAD AC WITH THE SWITCH REGISTER
       RTR            /...
       SZL CLA        /IS BIT 11 OF SWITCH REGISTER ON
       JMP    SCR     /YES, READ CARD
       6031           /NO, IS KEYBOARD FLAG ON
       JMP    KEY     /NO, TEST SWITCH REGISTER
       6036           /READ CHARACTER
       AND    MASK    /REMOVE PARITY BIT
       TAD    N200    /ADD IN PARITY BIT
       JMP    FOX     /RETURN
SCR,   6672           /CARD READY
       JMP    KEY     /NO
       TAD    IPLP    /YES, READ CARD
       DCA    POINT   /INITIALIZE POINTER TO START OF BUFFER
       TAD    IPLP    /...
       DCA    LAST    /INITIALIZE LAST NON-SPACE POINTER
       TAD    MCOLS   /LOAD AC WITH MINUS 72(10)
       DCA    TEMP2   /INITIALIZE NUMBER OF COLUMNS POINTER
READC, 6672           /KEEP SELECTING THE CARD READER
       NOP            /IGNORE SKIP
       6631           /DATA READY
       JMP    READC   /NO, SELECT CARD READER AGAIN
       6632           /YES, READ DATA ALPHA
       DCA    TEMP1   /STORE IN TEMP
       TAD    MTIME   /READ EACH COLUMN 19 MORE TIMES
       DCA    TEMP3   /INITIALIZE MULTIPUL READING COUNTER
TEST,  6632           /READ DATA AGAIN
       CIA            /NEGATE IT
       TAD    TEMP1   /ADD WHAT WAS READ INITIALLY
       SZA            /IS IT ZERO
       JMP    ERR     /NO, ERROR, GO TO HALT
       ISZ    TEMP3   /YES, SHOULD WE READ IT AGAIN
       JMP    TEST    /YES
       TAD    TEMP1   /NO, IT'S BEEN READ ENOUGH
       SNA CLA        /IS IT A SPACE
       JMP    MXT     /YES, SKIP NEXT TWO INSTRUCTIONS
       TAD    POINT   /NOT A SPACE
       DCA    LAST    /MOVE LAST NON-SPACE POINTER
MXT,   TAD    LTABLE  /CALCULATE LOCATION IN TABLE
       TAD    TEMP1   /SIMPLE TABLE LOOK-UP...
       DCA    TEMP1   /TO FIND ASCII CODE
       TAD I  TEMP1   /GET CONTENTS OF TABLE
       DCA I  POINT   /PLACE IN BUFFER
       ISZ    POINT   /MOVE BUFFER POINTER
       ISZ    TEMP2   /FINISHED 72 COLUMNS YET
       JMP    READC   /NO, READ ANOTHER COLUMN
       CMA            /C(AC)=1
       DCA    F1      /SET CARD READER BUSY FLAG
       TAD I  IPLP    /GET CONTENTS OF COLUMN ONE
       TAD    M303    /IS THERE A C IN...
       SNA CLA        /THE FIRST COLUMN
       JMP    READ    /YES, READ ANOTHER CARD
       TAD I  LCOL6   /GET COLUMN 6
       TAD    M240    /SUBTRACT 240, A SPACE
       SZA CLA        /IS COLUMN 6 BLANK
       JMP    CONTA   /NOT BLANK, MUST BE A CONTINUATION
       TAD    FCONT   /GET CONTINUATION FLAG
       SZA CLA        /IS CONTINUATION FLAG ON
       JMP    CONTA   /YES, THIS IS A CONTINUATION
       TAD    LRET    /NOT CONTINUATION, SET POINTER...
       DCA    POINT   /TO A RETURN AND LINE FEED
SETF,  DCA    FCONT   /CLEAR CONTINUATION FLAG
       TAD I  LAST    /GET THE LAST NON-SPACE
       TAD    M247    /IS LAST NON-SPACE AN APOSTRAPHY
       SNA            /...
       ISZ    FCONT   /YES, SET CONTINUATION FLAG
       SZA CLA        /...
       ISZ    LAST    /NO, INCREMENT LAST NON-SPACE POINTER
       DCA I  LAST    /STORE END OF LINE CHARACTER (ZERO)
       TAD    N273    /PLACE A SEMICOLON...
       DCA I  LCOL6   /IN COLUMN SIX
       JMP    ENTRY+1 /PRETEND THAT YOU JUST ENTERED
CONTA, TAD    LCOL7   /GET THE ADDRESS OF COL 7...
       CIA            /AND SUBTRACT IT FROM...
       TAD    LAST    /THE ADDRESS OF THE LAST NON-ZERO
       SPA CLA        /IS THERE ANY INFO AFTER COL 6
       JMP    READ    /NO, READ ANOTHER CARD
       TAD    LCOL7   /GET THE LOCATION OF COLUMN 7...
       DCA    POINT   /AND SET CARD BUFF POINTER THERE
       JMP    SETF    /CONTINUE
ERR,   HLT            /LAST CARD READ SHOULD BE RE-READ
       JMP    KEYM4   /RETURN TO START OF READ ROUTINE
MASK,  177            /MASK OFF PARITY BIT
N200,  200            /PARITY BIT
N273,  273            /SEMICOLON
M303,  -303           /-ASCII(C)
MCOLS, -110           /-72(10)
M240,  -240           /SPACE
M247,  -247           /MINUS APOSTRAPHY
MTIME, -23            /NUMBER OF TIMES EACH COLUMN IS READ
TEMP1, 0              /STORES CARD CODE DURING RE-READING
TEMP2, 0              /CONTAINS NUMBER OF COLUMNS COUNTER
TEMP3, 0              /CONTAINS RE-READING COUNTER
LAST,  BUF            /LAST NON-SPACE POINTER
IPLP,  BUF            /LOCATION OF CARD BUFFER
POINT, BUF            /CARD BUFFER POINTER
F1,    0              /CARD READER BUSY FLAG
FCONT, 0              /CONTINUATION FLAG, 0=OFF, 1=ON
LCOL6, COL6           /LOCATION OF COLUMN 6
LCOL7, COL7           /LOCATION OF COLUMN 7
LRET,  RET            /LOCATION OF THE RETURN
LTABLE,TABLE          /LOCATION OF CARD CHARACTER TABLE
RET,   215            /RETURN
LF,    212            /LINE FEED
BUF,   0              /FIRST LOCATION OF CARD BUFFER
COL6=BUF+5
COL7=BUF+6
*7300                 /START OF CHARACTER TABLE
TABLE,
       240            /SPACE
       261            /1
       262            /2
       263            /3
       264            /4
       265            /5
       266            /6
       267            /7
       270            /8
       271            /9
       277            /UNDEFINED
       275            /=
       247            /'
       277            /UNDEFINED
       277            /UNDEFINED
       277            /UNDEFINED
       260            /0
       257            //
       323            /S
       324            /T
       325            /U
       326            /V
       327            /W
       330            /X
       331            /Y
       332            /Z
       277            /UNDEFINED
       254            /,
       250            /(
       277            /UNDEFINED
       277            /UNDEFINED
       277            /UNDEFINED
       255            /-
       312            /J
       313            /K
       314            /L
       315            /M
       316            /N
       317            /O
       320            /P
       321            /Q
       322            /R
       277            /UNDEFINED
       242            /$ IS QUOTE
       252            /*
       277            /UNDEFINED
       277            /UNDEFINED
       277            /UNDEFINED
       253            /+
       301            /A
       302            /B
       303            /C
       304            /D
       305            /E
       306            /F
       307            /G
       310            /H
       311            /I
       277            /UNDEFINED
       256            /.
       251            /)
       277            /UNDEFINED
       277            /UNDEFINED
       277            /UNDEFINED
$
