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