  ABS JMP+*-6-O875+CSLO+100000B NO RETURN 
      OCT 0,0 
* 
* 
I875  NOP 
  ABS STA+COT            SAVE COUNT AND 
  ABS STA+BFA            BUFFER ADDRESS 
  ABS STA+*+6-I875+CSLI 
  ABS JSB+SETP           SETUP COUNT AND BUFFER POINTER 
  ABS JSB+O.875+CSLO     OUTPUT CONTROL WORD
      ABS IR875-* 
  ABS JSB+.IN            LOAD BUFFER
      OCT 104000         CONTROL WORD 
      NOP                COUNT
      NOP                NO MORE
      NOP                NO INTERRUPT INST
  ABS STA+CSLI-1    SAVE A REG
      CCA                SEND 
  ABS JSB+O.875+CSLO       END OF OPERATION 
  ABS LDA+CSLI-1    RESTORE A REG 
      CLC SC,C             LEAVE CARD IN RECEIVE MODE 
  ABS JMP+CSLI+100000B  RETURN
IR875 NOP 
      CLA 
  ABS JSB+O.875+CSLO     OUTPUT REQUEST 
  ABS JMP+*-3-I875+CSLI+100000B 
EC875 EQU * 
      SKP 
.P875 EQU * 
      LDA FWA       SET BUFFER ADRESS 
      RAL           MAKE ADDRESS BYTE ADDRESS 
      STA IOADD 
      CLA           CLEAR 
      STA IOCT        COUNT 
      CLA 
      JSB .R875     GET NEXT WORD 
      CPA M1        END OF OPERATION? 
      JMP *+6 
      LDB IOADD     GET BUFFER ADDRESS
      JSB A2BUF     PUT CHR IN BUFFER 
      ISZ IOADD     MOVE BYTE ADDRESS UP ONE
      ISZ IOCT        AND ADD ONE TO COUNT
      JMP *-8 
      LDA IOCT      WAS THERE ANY TRANSFER
      SZA,RSS       ??
      JMP *+5       NO SKIP RUBOUT
      LDA B177      GET TERMINATOR
      LDB IOADD 
      JSB A2BUF     ADD IT TO BUFFER
      ISZ IOCT      ADD IT TO COUNT 
      LDA IOCT      OUTPUT BUFFER 
      LDB FWA       GET BUFFER ADDRESS
      JSB LPD,I     GO DO IT
      CLA           RESPOND TO LAST DATA
      JSB OTA 
      JSB STCC
      JMP X875      RETURN FOR MORE 
* 
* 
*     LINE PRINTER CROSS LINK (12875) DRIVER
* 
P875  ABS *-EP875        TRANSFER COUNT 
  ABS JSB+SETP           SETUP BUFFER POINTER AND COUNT 
  ABS JSB+P.875+LPTR     OUTPUT CONTROL WORD
      ABS PR875-*        ROUTINE
  ABS JSB+.OUT           DUMP BUFFER
      OCT 120000         INDICATE CONSOLE 
      NOP                NO MORE
      OCT 12             NORMAL LINE FEED 
      CCA                SEND 
  ABS JSB+P.875+LPTR       END OF OPERATION 
      CLC SC,C           TURN CARD OFF
  ABS JMP+LPTR+100000B   RETURN 
P.875 EQU *-P875
PR875 NOP 
      OTA SC             TRANSFER CHARACTER 
      STC SC,C
      SFS SC             WAIT FOR RETURN
  ABS JMP+*-1-P875+LPTR 
  ABS JMP+*-5-P875+LPTR+100000B NO RETURN 
EP875 EQU * 
      SKP 
*     CROSS LINK ROUTINE FOR LOADER 
* 
.L875 CLA 
      JSB .R875     REQUEST A REG.
      STA .875A     SAVE IT 
      CLA 
      JSB .R875     REQUEST B REG.
      STA .875B     SAVE IT 
      CLA 
      JSB .R875     SHAKE HANDS 
      SZA           IS HIS HANDS DURTY? 
      JMP ERMS1     YEP 
      LDA .875A     RESTORE A 
      LDB .875B     RESTORE B 
      JSB DRI,I     GO TO DRIVER
      STA .875A     SAVE A
      STB .875C     SAVE B
      LDB .875B     GET ORIGINAL
      SSB           IF REWIND OR FF 
      JMP *+4         DO A CLC SC,C ON LOAD DEVICE
      SZB           IF READING LEADER 
      SZA             OR TRAILER
      RSS 
      JSB CLCLD     CLEAR LOAD DEVICE 
      JSB .R875     TRANSMIT A
      SZA           DID HE GET IT?
      JMP ERMS1     NO
      LDA .875C 
      JSB .R875     TRANSMIT B
      CPA M1        DID HE GET IT?
      RSS 
      JMP ERMS1     NO
      JSB STCC      TERMINATE TRANSMISSION
      JMP X875      RETURN AND WAIT 
.875A NOP 
.875B NOP 
.875C NOP 
* 
.R875 NOP 
      JSB OTA 
      JSB STCC      TRANSMIT IT 
      JSB WSFS      WAIT FOR REWPONSE 
      JMP ERMS1     NONE SO ERROR 
      JSB LIA       GET THE DATA
      JMP .R875,I   YES RETURN
      SKP 
*     LOADER CROSS LINK (12875) DRIVER
* 
L875  ABS *-LE875 
  ABS STA+L875A+LD       SAVE A & B REGISTERS 
  ABS STB+L875B+LD
  ABS JSB+LR875+LD       OUTPUT CONTROL WORD
      OCT 140000
      SZA                IS RETURN 0
  ABS JMP+LH875+LD       NO THEN LINK ERROR 
  ABS JSB+LR875+LD       OUTPUT A-REG.
L875A EQU *-L875
      NOP 
      SZA                RETURN 0?
  ABS JMP+LH875+LD       NO THEN LINK ERROR 
  ABS JSB+LR875+LD       OUTPUT B-REG.
L875B EQU *-L875
      NOP 
      SZA                IS RETURN 0
  ABS JMP+LH875+LD       NO THEN ERROR
  ABS JSB+LR875+LD       REQUEST A
      NOP 
  ABS STA+L875A+LD
  ABS JSB+LR875+LD       REQUEST B
      NOP 
  ABS STA+L875B+LD
  ABS JSB+LR875+LD       OUTPUT TERMINATOR
      DEC -1
  ABS LDA+L875A+LD
  ABS LDB+L875B+LD
  ABS JMP+LD+100000B      RETURN
* 
LH875 EQU *-L875
      OCT 106073         ERROR HALT 
      CCA 
  ABS JMP+LD+L875+100000B   RETURN EOF
* 
LR875 EQU *-L875
      NOP 
  ABS LDA+*-1-L875+LD+100000B 
  ABS ISZ+*-2-L875+LD 
      OTA SC
      STC SC,C
      SFS SC
  ABS JMP+*-1-L875+LD 
      LIA SC
  ABS JMP+LR875+LD+100000B  RETURN
LE875 EQU * 
      SKP 
D662  NOP 
      STA IODSV     SAVE A REG
      SZB           IS IT A WORD
      JMP D662A     NO
      JSB OTA       OUT PUT WORD
      JSB WSFS      WAIT FOR COMPLETION 
      JMP ERMS0 
      JSB LIA 
      CPA TNW 
      RSS 
      JMP ERMS0     REPORT ERROR
      LDA IODSV     RESTORE A REG 
      JMP D662,I    GOOD RETURN 
D662A SSB           IS IT END OF TRANS
      JMP D662C     YES 
      ALF,ALF 
      CMA,INA       MAKE COUNT NEG
      STA IODCT     AND SAVE IT 
      SLB,RSS       FIRST TIME THROUGH
      JMP D662+4    NO NORMAL WORD
D662B JSB CLCC      PUT CARD IN RECEIVE MODE
      JSB SFS       WAIT FOR FIRST FLAG 
      JMP *-1 
      JSB LIA       GET DATA
      CPA RC        IS REQUEST COMMING? 
      JMP *+2 
      JMP D662B     NO WAIT FOR START 
      LDA TNW       GET TRANSMIT NEXT RECORD
      JSB OTA       TRANSMIT IT 
      JSB WSFS      NOW WAIT ONLY SHORT TIME
      JMP ERMS0 
      JSB LIA       GET DATA
      CPA M2        SECOND WORD -2? 
      JMP *+2       YES 
      JMP D662B     NO TRY AGAIN
      LDA TNW       TRANSMIT NEXT WORD
      JSB OTA 
      JSB WSFS      WAIT FOR IT 
      JMP ERMS0 
      JSB LIA       GET DATA
      CPA B2        IS IT +2? 
      JMP *+2       YES 
      JMP D662B     NO TRY AGAIN
      LDA TNW       TRANSMIT NEXT WORD
      JSB OTA 
      JSB WSFS      WAIT FOR RESPONSE 
      JMP ERMS0     NONE SO ERROR 
      JSB LIA       DISCARD DATA
      LDA TNW       TRANSMIT NEXT WORD
      JSB OTA 
      JSB WSFS      WAIT FOR IT 
      JMP ERMS0     NO RESPONSE SO ERROR
      JSB LIA       DISCARD DATA
      JMP D662,I    RETURN
      SKP 
D662C LDA RC        GET REQUEST COMMING 
      JSB OTA       OUTPUT IT 
      JSB WSFS      WAIT FOR COMPLETION 
      JMP *+4       NO MORE FLAGS SO CONTINUE 
      JSB LIA       GOT A FLAG SO GET THE DATA
      CLA           SEND DUMMY
      JMP *-5 
      CLC INTP,C    TURN OFF I/O
X662  EQU * 
      JSB LIA       DUMY LOAD 
      JSB CLCC      PUT CARD IN RECEIVE 
      JSB CNCK      CHECK FOR CONSOLE INTERRUPT 
      JSB OTA       PASS INTERRUPT ON 
      JSB SFS       WAIT FOR FLAG 
      JMP *-3 
      JSB LIA       GET DATA
      STA IODSV     SAVE IT 
      CPA M1        TERMINATOR? 
      JMP X662      YES 
      AND B377
      SZA           IS IT A CONTROL WORD? 
      JMP ERMS1     NO ERROR
      LDA IODSV 
      SZA,RSS 
      JMP ERMS1 
      SSA,RSS       IS IT A CONTROL WORD? 
      JMP ERMS1     NO THEN ERROR 
      RAL 
      SSA           LOADER? 
      JMP .L662     YES 
      RAL           NO
      SSA           LINE PRINTER? 
      JMP .P662     YES 
      RAL           NO
      SSA           CONSOLE OUTPUT? 
      JMP .O662     YES 
      RAL           NO
      SSA           CONSOLE INPUT?
      JMP .I662     YES 
      JMP ERMS1     NONE OF THE ABOVE SO ERROR
* 
* 
IN662 NOP 
      CLF 0         TURN OFF INTERRUPTS 
      JMP X662+6
      SKP 
.O662 EQU * 
      LDA FWA       SET BUFFER ADRESS 
      RAL           MAKE ADDRESS BYTE ADDRESS 
      STA IOADD 
      CLA           CLEAR 
      STA IOCT        COUNT 
      CLA 
      JSB .R662     GET NEXT WORD 
      CPA M1        END OF OPERATION? 
      JMP *+6 
      LDB IOADD     GET BUFFER ADDRESS
      JSB A2BUF     PUT CHR IN BUFFER 
      ISZ IOADD     MOVE BYTE ADDRESS UP ONE
      ISZ IOCT        AND ADD ONE TO COUNT
      JMP *-8 
      LDA IOCT      WAS THERE ANY TRANSFER
      SZA,RSS       ??
      JMP *+5       NO SKIP RUBOUT
      LDA B177      GET TERMINATOR
      LDB IOADD 
      JSB A2BUF     ADD IT TO BUFFER
      ISZ IOCT      ADD IT TO COUNT 
      LDA IOCT      OUTPUT BUFFER 
      LDB FWA       GET BUFFER ADDRESS
      JSB COD,I     GO DO IT
      CLA           RESPOND TO LAST DATA
      JSB OTA 
      JMP X662      RETURN FOR MORE 
* 
      SKP 
* 
.I662 EQU * 
      CLA 
      JSB .R662     GET COUNT 
      CPA M1        INT. REQUEST ONLY?
      JMP N1662     YES 
      SSA           CANT BE NEG 
      JMP ERMS1     OR ERROR
      STA IOCT      SAVE COUNT
      CLA           RESPOND TO COUNT
      JSB .R662 
      SZA           MUST BE ZERO
      JMP ERMS1     NOT SO ERROR
      JSB STCC      SET INTF TO INTERRUPT 
      LDA IOCT      RESTORE COUNT 
      LDB FWA       GET BUFFER FOR INPUT
      STF 0         TURN ON INTERRUPTS
      JSB CID,I     GO INPUT IT 
      CLF 0         TURN OFF INTERRUPTS 
      STA IODSV     SAVE COUNT
      CMA,INA       MAKE IT NEG.
      STA IODCT       FOR COUNTER 
      LDB FWA       SET BUFFER POINTER
      RBL 
      STB IOADD 
      SZA,RSS       ANY INPUT 
      JMP CR662     NO - RESPOND WITH CR
N0662 LDB IOADD     GET A BYTE
      JSB BUF2A 
      JSB .R662     OUTPUT IT 
      CPA M1        END OF TRANSFER 
      JMP EX662     YES 
      SZA           ACCEPTED
      JMP ERMS1     NO
      ISZ IOADD     MOVE TO NEXT BYTE 
      ISZ IODCT     DONE? 
      JMP N0662     NO
      SKP 
CR662 LDA CR        YES 
      JSB .R662     OUTPUT IT 
      LDB A         CHANGE HANDS
      CLA 
      CPB O662+5    CONSOLE OUTPUT CONTROL WORD?
      JMP CR662+1   YES 
      CPB CR        ? 
      JMP CR662+1   YES 
      CPB LF        ? 
      JMP CR662+1 
      CPB M1        TERMINATOR
      RSS 
      JMP ERMS1     NONE SO ERROR 
      JSB .R662     GET LAST TERMINATOR 
      CPA M1        SHOULD BE -1
      JMP EX662 
      JMP ERMS1     NO SO ERROR 
EX662 CLA           RESPOND TO LAST WORD
      JSB OTA 
      JMP X662      WAIT FOR MORE 
* 
N1662 CLA 
      JSB CID,I     CALL FOR INTERRUPT
      JMP EX662 
      SKP 
*     CONSOLE CROSS LINK (12662) DRIVER 
* 
O662  ABS *-EC662        TRANSFER COUNT 
  ABS JSB+SETP           SETUP BUFFER POINTER AND COUNT 
  ABS JSB+O.662+CSLO     OUTPUT CONTROL WORD
      ABS OR662-*        ROUTINE
  ABS JSB+.OUT           DUMP BUFFER
      OCT 110000         INDICATE CONSOLE 
      NOP                NO MORE
      OCT 12             NORMAL LINE FEED 
      CCA                SEND 
  ABS JSB+O.662+CSLO       END OF OPERATION 
      CLC SC,C           PUT CARD IN RECEIVE MODE 
  ABS JMP+CSLO+100000B RETURN 
O.662 EQU *-O662
OR662 NOP 
      CLC SC,C           PUT CARD IN RECEIVE
      LIB SC        CLEAR FLAG
      OTA SC             TRANSFER CHARACTER 
      SFS SC             WAIT FOR RETURN
  ABS JMP+*-1-O662+CSLO 
      LIA SC             GET RETURN WORD
  ABS JMP+*-7-O662+CSLO+100000B NO RETURN 
      OCT 0 
* 
* 
I662  NOP 
  ABS STA+COT            SAVE COUNT AND 
  ABS STA+BFA            BUFFER ADDRESS 
  ABS STA+*+6-I662+CSLI 
  ABS JSB+SETP           SETUP COUNT AND BUFFER POINTER 
  ABS JSB+O.662+CSLO     OUTPUT CONTROL WORD
      ABS IR662-* 
  ABS JSB+.IN            LOAD BUFFER
      OCT 104000         CONTROL WORD 
      NOP                COUNT
      NOP                NO MORE
      NOP           NO INTERRUPT INSTRUCTION
  ABS STA+CSLI-1         SAVE A REG.
      CCA                SEND 
  ABS JSB+O.662+CSLO       END OF OPERATION 
  ABS LDA+CSLI-1         RESTORE A REG. 
      CLC SC,C            LEAVE CARD IN RECEIVE MODE
  ABS JMP+CSLI+100000B  RETURN
IR662 NOP 
      CLA                SEND NEXT WORD 
  ABS JSB+O.662+CSLO     OUTPUT REQUEST 
  ABS JMP+*-3-I662+CSLI+100000B 
EC662 EQU * 
      SKP 
.P662 EQU * 
      LDA FWA       SET BUFFER ADRESS 
      RAL           MAKE ADDRESS BYTE ADDRESS 
      STA IOADD 
      CLA           CLEAR 
      STA IOCT        COUNT 
      CLA 
      JSB .R662     GET NEXT WORD 
      CPA M1        END OF OPERATION? 
      JMP *+6 
      LDB IOADD     GET BUFFER ADDRESS
      JSB A2BUF     PUT CHR IN BUFFER 
      ISZ IOADD     MOVE BYTE ADDRESS UP ONE
      ISZ IOCT        AND ADD ONE TO COUNT
      JMP *-8 
      LDA IOCT      WAS THERE ANY TRANSFER
      SZA,RSS       ??
      JMP *+5       NO SKIP RUBOUT
      LDA B177      GET TERMINATOR
      LDB IOADD 
      JSB A2BUF     ADD IT TO BUFFER
      ISZ IOCT      ADD IT TO COUNT 
      LDA IOCT      OUTPUT BUFFER 
      LDB FWA       GET BUFFER ADDRESS
      JSB LPD,I     GO DO IT
      CLA           RESPOND TO LAST DATA
      JSB OTA 
      JSB STCC
      JMP X662      RETURN FOR MORE 
* 
* 
*     LINE PRINTER CROSS LINK (12662) DRIVER
* 
P662  ABS *-EP662        TRANSFER COUNT 
  ABS JSB+SETP           SETUP BUFFER POINTER AND COUNT 
  ABS JSB+P.662+LPTR     OUTPUT CONTROL WORD
      ABS PR662-*        ROUTINE
  ABS JSB+.OUT           DUMP BUFFER
      OCT 120000         INDICATE CONSOLE 
      NOP                NO MORE
      OCT 12             NORMAL LINE FEED 
      CCA                SEND 
  ABS JSB+P.662+LPTR      END OF OPERATION
      CLC SC,C           PUT CARD IN RECEIVE MODE 
  ABS JMP+LPTR+100000B   RETURN 
P.662 EQU *-P662
PR662 NOP 
      CLC SC,C           PUT CARD IN RECEIVE
      LIB SC        CLEAR THE FLAG
      OTA SC             TRANSFER CHARACTER 
      SFS SC             WAIT FOR RETURN
  ABS JMP+*-1-P662+LPTR 
  ABS JMP+*-6-P662+LPTR+100000B NO RETURN 
EP662 EQU * 
      SKP 
*     CROSS LINK ROUTINE FOR LOADER 
* 
.L662 CLA 
      JSB .R662     REQUEST A REG.
      STA .662A     SAVE IT 
      CLA 
      JSB .R662     REQUEST B REG.
      STA .662B     SAVE IT 
      CLA 
      JSB .R662     SHAKE HANDS 
      SZA           ARE HIS HANDS DURTY?
      JMP ERMS1     YEP 
      LDA .662A     RESTORE A 
      LDB .662B     RESTORE B 
      JSB DRI,I     GO TO DRIVER
      STA .662A     SAVE A
      STB .662C     SAVE B
      LDB .662B     GET ORIGINAL REQUEST
      SSB           IF REWIND OR FF 
      JMP *+4         CLEAR LOAD DEVICE 
      SZB           OR IF LOOKING FOR LEADER OR 
      SZA              TRAILER
      RSS 
      JSB CLCLD     CLEAR THE LOAD DEVICE 
      JSB .R662     TRANSMIT A
      SZA           DID HE GET IT?
      JMP ERMS1     NO
      LDA .662C 
      JSB .R662     TRANSMIT B
      CPA M1        DID HE GET IT?
      RSS 
      JMP ERMS1     NO
      JSB OTA       TERMINATE TRANSMISSION
      JMP X662      RETURN AND WAIT 
.662A NOP 
.662B NOP 
.662C NOP 
* 
.R662 NOP 
      JSB CLCC      PUT CARD IN RECEIVE 
      JSB OTA       TRANSMIT IT 
      JSB WSFS      WAIT FOR REWPONSE 
      JMP ERMS1     NONE SO ERROR 
      JSB LIA       GET RETURN DATA 
      JMP .R662,I   YES RETURN
      SKP 
*     LOADER CROSS LINK (12662) DRIVER
* 
L662  ABS *-LE662 
  ABS STA+L662A+LD       SAVE A & B REGISTERS 
  ABS STB+L662B+LD
  ABS JSB+LR662+LD       OUTPUT CONTROL WORD
      OCT 140000
      SZA                IS RETURN 0
  ABS JMP+LH662+LD       NO THEN LINK ERROR 
  ABS JSB+LR662+LD       OUTPUT A-REG.
L662A EQU *-L662
      NOP 
      SZA                RETURN 0?
  ABS JMP+LH662+LD       NO THEN LINK ERROR 
  ABS JSB+LR662+LD       OUTPUT B-REG.
L662B EQU *-L662
      NOP 
      SZA                IS RETURN 0
  ABS JMP+LH662+LD       NO THEN ERROR
  ABS JSB+LR662+LD       REQUEST A
      NOP 
  ABS STA+L662A+LD
  ABS JSB+LR662+LD       REQUEST B
      NOP 
  ABS STA+L662B+LD
  ABS JSB+LR662+LD       OUTPUT TERMINATOR
      DEC -1
  ABS LDA+L662A+LD
  ABS LDB+L662B+LD
  ABS JMP+LD+100000B      RETURN
* 
LH662 EQU *-L662
      OCT 106073         ERROR HALT 
      CCA 
  ABS JMP+LD+L662+100000B   RETURN EOR
* 
LR662 EQU *-L662
      NOP 
  ABS LDA+*-1-L662+LD+100000B 
  ABS ISZ+*-2-L662+LD 
      CLC SC,C           PUT CARD IN INPUT
      LIB SC        CLEAR FLAG
      OTA SC        TRANSFER DATA 
      SFS SC             WAIT FOR IT
  ABS JMP+*-1-L662+LD 
      LIA SC
  ABS JMP+LR662+LD+100000B
LE662 EQU * 
* 
FWAA  EQU * 
      SKP 
%B377 EQU 7147B 
CNSLO EQU 7327B 
CNSLI EQU 7354B 
LNPTR EQU 7404B 
LDVR  EQU 7431B 
BFR   EQU 1166B 
BFA   EQU 1165B 
CNT   EQU 1164B 
COT   EQU 1163B 
ISZ   EQU 36000B
LDA   EQU 62000B
LDB   EQU 66000B
ADA   EQU 42000B
ADB   EQU 46000B
STA   EQU 72000B
STB   EQU 76000B
AND   EQU 12000B
IOR   EQU 32000B
XOR   EQU 22000B
CPA   EQU 52000B
CPB   EQU 56000B
JSB   EQU 16000B
JMP   EQU 26000B
SETP  EQU 741B
.IN   EQU 765B
.OUT  EQU 1031B 
CSLI  EQU CNSLI-6000B 
CSLO  EQU CNSLO-6000B 
LPTR  EQU LNPTR-6000B 
LD    EQU LDVR-6000B
      END 
                                                                                                                                                                                                                                        