/MAINDEC-08-DILAC-B-D /LA180 PRINTER DIAGNOSTIC *0 0 JMP I ISRV ISRV, IERROR *10 AUTPTR, 0 *20 SWITCH, 0000 PARAM, 4003 0000 /FLAGS, POINTERS, & STORAGE TSTNM, 0 ERRNM, 0 ERRPC, 0 WIDTH, 0 PTRIOT, 0660 /LA180 IOT CODE - 0XX0 IOTSEL, 0304 /TTY IOT CODES, XMT - RCV CHAR, 0 CHAR2, 0 SAVE, 0 COUNT, 0 COUNT2, 0 LPCNT, 0 CKCNT, 0 PASCNT, 0 TABPTR, 0 TSTPTR, 0 MSGADR, 0 ONES, 0 TENS, 0 HUNDS, 0 THOUS, 0 STRONE, 0 TRONE, 0 TLOOP, 0 TPFLG, 0 CKFLAG, 0000 /TAGS TTYPE, RTYPE TLOAD, RLOAD THOLD, RHOLD TMLOAD, RMLOAD TPRINT, RPRINT TPRHDR, RPRHDR TERROR, RERROR TCHECK, RCHECK TEXIT, REXIT TKBDST, KYBDST TSELCT, SELECT TTAT, TAT TMIOT, MIOT TKSF, RKSF TKCC, RKCC TKRS, RKRS TKRB, RKRB TTSF, RTSF TTCF, RTCF TTPC, RTPC TTLS, RTLS TPSKF, RPSKF TPCLF, RPCLF TPSTS, RPSTB TPSIE, RPSIE TPCLP, RPCLP TKBFG, KYBDF TTSEL, TSEL READ, TREAD TREADQ, READQ CHKOCT, TCKOUT CHKNR, TCHKNR GOUT, OUT TDELAY, DELAY TCNVRT, CNVRT TCKSRV, CKSRV TGETSW, RGETSW PDIGIT, RPDIGT TPOCT, POCT LREADT, READT LIERR, IERROR /CONSTANTS P2, 0002 P7, 0007 P10, 0010 P12, 0012 P15, 0015 P36, 0036 P40, 0040 P41, 0041 P55, 0055 P57, 0057 P60, 0060 P72, 0072 P77, 0077 P100, 0100 P134, 0134 P177, 0177 P200, 0200 P204, 0204 P377, 0377 P400, 0400 P1000, 1000 M1, 7777 M2, 7776 M3, 7775 M4, 7774 M7, 7771 M12, 7766 M15, 7763 M20, 7760 M23, 7755 M25, 7753 M30, 7750 M35, 7743 M36, 7742 M40, 7740 M56, 7722 M100, 7700 M144, 7634 M177, 7601 /SUBROUTINE CALL EQUATES TYPE=JMS I TTYPE EXIT=JMP I TEXIT LOAD=JMS I TLOAD HOLD=JMS I THOLD CHECK=JMS I TCHECK ERROR=JMS I TERROR PRINT=JMS I TPRINT MLOAD=JMS I TMLOAD GETSW=JMS I TGETSW PRTHDR=JMS I TPRHDR /LINE PRINTER INSTRUCTIONS PSKF=6661 PCLF=6662 PSTB=6664 PSIE=6665 PCLP=6666 /DK8-EA & DK8-EC CLOCK INSTRUCTIONS CLEI=6131 CLDI=6132 CLSK=6133 /PDP-8A OPTION BOARD #1 PARALLEL I/O INSTRUCTIONS DBST=6570 DBSK=6571 DBRD=6572 DBCF=6573 DBTD=6574 DBSE=6575 DBCE=6576 DBSS=6577 *0200 JMP START JMP RESTRT JMP CONTRL *210 START, CLA CLL DCA TSTNM JMP STARTX RESTRT, CLA CLL TAD (20 DCA TSTNM JMP STARTX CONTRL, CLA CMA DCA TSTNM STARTX, IOF CLDI CLA CLL JMS I TPSIE GETSW AND P377 CIA DCA WIDTH L00231, TAD P2 TAD WIDTH SZA SMA CLA JMP START2 TAD P204 TAD WIDTH SMA CLA JMP .+3 START2, TAD (-204 DCA WIDTH DCA TLOOP DCA STRONE DCA TRONE TAD LIERR DCA ISRV TAD P177 JMS I TPCLP JMS I TMIOT JMS I TTLS JMS DELAY JMS I TTSF SKP CLA CLA CMA DCA TPFLG TAD TPFLG SZA CLA JMP STARTB PRINT NCMSG STARTB, SKP JMP START5 TYPE HEADER TAD (NOP) DCA STARTB START5, TAD TSTNM SMA CLA JMP START7 START9, TAD TPFLG SZA CLA JMP I TKBDST JMP I TSELCT START8, SZA CLA JMP START9 ISZ TSTNM START7, GETSW AND P400 SZA CLA JMP I TSELCT TAD TTAT TAD TSTNM DCA TABPTR TAD I TABPTR SNA SPA JMP START8 DCA TSTPTR JMP I TSTPTR /ROUTINE TO GET SWITCH SETTINGS RGETSW, 0 CLA CLL TAD PARAM SPA CLA JMP .+3 TAD SWITCH JMP I RGETSW LAS JMP I RGETSW /ROUTINE TO DELAY ABOUT 150 MILLISECONDS /USING INSTRUCTION TIMING. DELAY, 0 CLA CLL DCA DELAY0 TAD (-10 DCA DELAY1 ISZ DELAY0 JMP .-1 ISZ DELAY1 JMP .-3 JMP I DELAY DELAY0, 0000 DELAY1, 7770 IERROR, ERROR 12 JMP I 0 PAGE /OPERATOR INTERVENTION TESTS /TEST 0 - INTERFACE AND CONTROL TESTS /TEST READY BIT, PRINTER OFF LINE - POWER OFF TEST0, TYPE T0MSG0 HOLD T0AC, CHECK CLA CLL D00405, TAD P177 JMS I TPCLP JMS I TDELAY JMS I TPSKF JMP T0AA ERROR 1 JMP T0AC /TEST READY BIT, PRINTER OFF LINE - POWER ON T0AA, TYPE T0MSG1 HOLD T0AB, CHECK CLA CLL TAD P177 JMS I TPCLP JMS I TDELAY JMS I TPSKF JMP T0B ERROR 2 JMP T0AB /TEAD READY BIT, PRINTER ON LINE T0B, TYPE T0MSG2 HOLD T0C, CHECK CLA CLL TAD P177 JMS I TPCLP JMS I TDELAY JMS I TPSKF JMP .+10 JMS OP1CHK .+2 JMP T0E TAD P177 JMS I TPCLP JMS I TDELAY JMP T0E ERROR 3 JMP T0C /TEST PAPER OUT SWITCH T0E, TYPE T0MSG3 HOLD T0F, CHECK PRINT LF JMS I TDELAY JMS I TPSKF JMP T0H ERROR 4 JMP T0F /TEST ABILITY TO CLEAR ERROR CONDITION T0H, TYPE T0MSG4 HOLD T0I, CHECK CLA CLL TAD P177 JMS I TPCLP JMS I TDELAY JMS I TPSKF SKP JMP T0K ERROR 5 JMP T0I /TEST ABILITY TO CLEAR READY FLAG T0K, CHECK JMS I TPCLF JMS I TPSKF JMP T0L ERROR 6 JMP T0K T0L, CHECK CLA CLL TAD P177 JMS I TPSTS JMS I TDELAY JMS I TPSKF SKP JMP T0M ERROR 7 JMP T0K /TEST AGAIN USING SINGLE INSTR T0M, CHECK JMS SETSKP TAD P177 JMS I TPCLP T0MIOT, PSKF/DBST JMP T0N ERROR 10 JMP T0M T0N, JMS I TDELAY JMS I TPSKF SKP JMP T0O ERROR 11 JMP T0M /CHECK FOR UNEXPECTED INTERRUPTS T0O, CHECK CLA CLL TAD (T0P DCA ISRV JMS I TKCC JMS I TTCF JMS I TPCLF CLA CLL JMS I TPSIE ION NOP NOP IOF JMP I LT0Q T0P, ERROR 12 JMP T0O LT0Q, T0Q PAGE /CHECK THAT NO INTERRUPT OCCURS WITH READY BIT CLEAR T0Q, CHECK CLA CLL TAD (T0R DCA ISRV JMS I TKCC JMS I TTCF JMS I TPCLF CLA IAC JMS I TPSIE ION NOP NOP IOF CLA CLL JMS I TPSIE JMP T0S T0R, CLA CLL JMS I TPSIE ERROR 13 JMP T0Q /CHECK THAT INTERRUPT OCCURS WITH READY BIT SET T0S, CHECK CLA CLL TAD (T0W DCA ISRV TAD P177 JMS I TPCLP JMS OP1CHKK .+4 JMS I TPSKF JMP .-1 SKP JMS I TDELAY JMS I TKCC JMS I TTCF CLA IAC JMS I TPSIE ION NOP NOP IOF CLA CLL JMS I TPSIE ERROR 14 JMP T0S /TEST NO INTERRUPT OCCURS WITH LA180 INTERRUPT ENABLED, READY SET, /BUT CPU INTERRUPT SYSTEM OFF. T0W, CLA CLL JMS I TPSIE T0U, CHECK CLA CLL TAD (T0V DCA ISRV TAD P177 JMS I TPCLP JMS OP1CHK .+4 JMS I TPSKF JMP .-1 SKP JMS I TDELAY JMS I TKCC JMS I TTCF CLA IAC JMS I TPSIE NOP NOP CLA CLL JMS I TPSIE TAD LIERR DCA ISRV EXIT T0V, CLA CLL JMS I TPSIE ERROR 15 JMP T0U /TEST 1 - TOP OF FORM SWITCH TEST TEST1, PRTHDR TAD (T1TAB DCA TABPTR TAD M30 DCA COUNT TAD P55 MLOAD PRINT CR T1A, TYPE T1MSG3 TAD TABPTR DCA .+2 TYPE 0 TYPE T1MSG4 HOLD CHECK PRINT FF PRINT T1MSG1 TAD TABPTR DCA .+2 PRINT 0 PRINT T1MSG2 ISZ TABPTR ISZ TABPTR TAD I TABPTR SZA CLA JMP T1A PRINT LF EXIT PAGE /TEST 2 = PRINT SPEED TIMING TEST /A SWIRL PATTERN IS PRINTED FOR ONE FULL MINUTE /WHILE THE NUMBER OF LINES PRINTED IS COUNTED. /TIMING WILL BE DONE BY DK8-EA OR DK8-EC CLOCK /OPTION IF EITHER IS AVAILABLE AND LOCATION /"CKFLAG" IS PRESET WITH THE TIME COUNT. /IF CKFLAG IS ZERO, MANUAL TIMING WILL BE USED TO /OBTAIN AN APPROXIMATE PRINT TIMING. /IF A HARDWARE SWITCH REGISTER IS NOT AVAILABLE, THIS TEST /CANNOT BE RUN WITHOUT A CLOCK OPTION BEING AVAILABLE. /THE PROGRAM WILL AUTOMATICALLY SKIP THIS TEST IF IT CANNOT BE RUN. TEST2, PRTHDR DCA PASCNT TAD CKFLAG SZA CLA JMP T2C TAD PARAM SPA CLA JMP T2A PRINT T2EM TYPE T2EM EXIT T2A, TYPE T2M1 TYPE T2M2 TYPE T2M3 T2B, GETSW AND P200 SNA CLA JMP T2B JMP T2SP /CLOCK OPTION START-UP T2C, TAD (6650 DCA LPCNT TAD TCKSRV DCA ISRV TAD CKFLAG DCA CKCNT JMS I TKCC JMS I TTCF CLA CLL JMS I TPSIE CLEI ION T2SP, CLA IAC TAD P40 DCA CHAR2 T2PA, TAD CHAR2 DCA CHAR TAD WIDTH DCA COUNT T2PC, TAD CHAR LOAD ISZ COUNT SKP JMP T2PD ISZ CHAR TAD M177 TAD CHAR SZA CLA JMP T2PC TAD P40 DCA CHAR JMP T2PC T2PD, PRINT LF ISZ PASCNT TAD CKFLAG SZA CLA JMP T2PE GETSW AND P200 SNA CLA JMP T2SPD T2PE, ISZ CHAR2 TAD M177 TAD CHAR2 SZA CLA JMP T2PA JMP T2SP /ROUTINE TO PRINT NUMBER OF LINES PRINTED T2SPDC, IOF CLDI TAD LIERR DCA ISRV T2SPD, CLA CLL TAD P177 LOAD TYPE PRSP1 PRINT PRSP1 TAD CKFLAG SZA CLA JMP T2S1 TYPE PRSP2 PRINT PRSP2 T2S1, TAD PASCNT JMS I TCNVRT PRINT CNVMSG TYPE CNVMSG PRINT PRSP3 TYPE PRSP3 TAD WIDTH CIA JMS I TCNVRT PRINT CNVMSG TYPE CNVMSG PRINT PRSP4 TYPE PRSP4 EXIT PAGE /PRINTING TESTS /TEST 20 - DATA TRANSFER PATHS TEST / /THIS TEST PRINTS 16 LINES OF ALTERNATING *'S and U's IN A /CHECKERBOARD PATTERN TEST20, PRTHDR TAD M20 DCA LPCNT T20A, TAD WIDTH DCA COUNT IAC AND LPCNT SZA CLA JMP T20C T20B, TAD (52 LOAD ISZ COUNT SKP JMP T20D T20C, TAD (125 LOAD ISZ COUNT JMP T20B T20D, PRINT LF ISZ LPCNT JMP T20A EXIT /TEST 21 - HEAD POSITIONING TEST / /THIS TEST PRINTS A SINGLE LINE OF ALTERNATING 0'S AND SPACES /THEN FILLS IN THE SPACES WITH X'S ONE AT A TIME TEST21, PRTHDR TAD WIDTH DCA COUNT T21B, TAD P60 LOAD ISZ COUNT SKP JMP T21C TAD P40 LOAD ISZ COUNT JMP T21B T21C, PRINT CR CLA CMA DCA T21W T21D, TAD T21W DCA COUNT TAD P40 MLOAD TAD (130 LOAD PRINT CR TAD M2 TAD T21W DCA T21W CLA CMA TAD T21W CIA TAD WIDTH SPA SNA CLA JMP T21D PRINT LF EXIT T21W, 0 /TEST 22 BACKSPACE TEST / /TWO LINES OF X'S INTERSPACED WITH DASHES /WILL BE PRINTED BY PRINTING A SLASH, EXECUTING A BACKSPACE, /AND THEN PRINTING A BACKSLASH TO COMPLETE EACH X CHAR, /A MAX. OF 127 COLUMNS WILL BE PRINTED. TEST22, PRTHDR TAD M2 DCA LPCNT T22A, TAD WIDTH TAD P177 SPA CLA JMP .+3 TAD WIDTH SKP TAD M177 DCA COUNT T22B, TAD P57 LOAD TAD P10 LOAD TAD P134 LOAD ISZ COUNT SKP JMP T22C TAD P55 LOAD ISZ COUNT JMP T22B T22C, PRINT LF ISZ LPCNT JMP T22A EXIT /TEST 23 = CHARACTER GENERATOR TEST / /THIS PRINTS A SINGLE LINE (30 CHARACTERS LONG) OF EACH /PRINTABLE CHARACTER PRECEEDED BY A LINE OF ALL SPACES TEST23, PRTHDR TAD P40 DCA CHAR T23A, TAD M36 DCA COUNT TAD CHAR MLOAD PRINT LF ISZ CHAR TAD M177 TAD CHAR SZA CLA JMP T23A EXIT PAGE /TEST 24 - NON-PRINTABLE CHARACTER TEST TEST24, PRTHDR TAD P41 DCA CHAR T24H, TAD M36 DCA LPCNT DCA PASCNT TAD WIDTH TAD P377 T24A, TAD M35 SPA JMP T24B ISZ PASCNT JMP T24A T24B, CLA CLL DCA COUNT2 T24C, TAD COUNT2 CIA TAD (-377 TAD WIDTH JMS T24S CLA CLL TAD WIDTH DCA COUNT TAD CHAR DCA CHAR2 T24D, TAD CHAR2 LOAD ISZ COUNT SKP JMP T24E ISZ CHAR2 TAD CHAR2 TAD M177 SZA CLA JMP T24D TAD P40 DCA CHAR2 JMP T24D T24E, TAD COUNT2 JMS T24S PRINT LF TAD COUNT2 TAD PASCNT DCA COUNT2 ISZ CHAR TAD CHAR TAD M177 SZA CLA JMP .+3 TAD P40 DCA CHAR ISZ LPCNT JMP T24C T24F, CLA CLL TAD TLOOP SZA CLA JMP T24G GETSW AND P1000 SNA CLA EXIT T24G, JMP T24H /ROUTINE TO LOAD NON-PRINTABLE CHARACTERS FOR TEST 24 T24S, 0 SNA SPA JMP I T24S CIA DCA COUNT T24SC, DCA CHAR2 T24SA, TAD CHAR2 LOAD ISZ COUNT SKP JMP I T24S T24SB, ISZ CHAR2 CLA CLL TAD CHAR2 TAD M7 SNA JMP T24SB TAD M1 SNA JMP T24SB TAD M2 SNA JMP T24SB TAD M2 SNA JMP T24SB TAD M1 SNA JMP T24SB TAD M23 SNA CLA JMP T24SC JMP T24SA SETSKP, 0 CLA CLL TAD PARAM RAL SPA CLA JMP .+4 TAD RPSKF+3 DCA T0MIOT JMP I SETSKP TAD OPDBST JMP .-3 PAGE /TEST 25 - BUFFER TEST TEST25, PRTHDR D01601, TAD M20 DCA COUNT TAD (105 MLOAD TAD P177 LOAD TAD WIDTH DCA COUNT TAD M144 DCA LPCNT IAC JMS T25S JMP T25A TAD M36 DCA LPCNT TAD (3 JMS T25S JMP T25A TAD M2 DCA LPCNT TAD P2 JMS T25S NOP T25A, PRINT LF TAD (-400 DCA COUNT TAD (105 MLOAD PRINT LF TAD (-376 DCA COUNT TAD (105 MLOAD TAD P177 LOAD PRINT LF TAD (-400 DCA COUNT TAD (105 MLOAD TAD WIDTH DCA COUNT TAD (-143 DCA LPCNT JMS T25S JMP T25B IAC JMS T25S NOP T25B, PRINT LF TAD (-377 DCA COUNT TAD (105 MLOAD TAD P177 LOAD TAD WIDTH DCA COUNT TAD (-11 DCA LPCNT T25C, DCA CHAR T25D, TAD CHAR TAD M12 SNA CLA JMP T25C TAD CHAR JMS T25S JMP T25E TAD M12 DCA LPCNT ISZ CHAR JMP T25D T25E, PRINT LF TAD (-400 DCA COUNT TAD (105 MLOAD TAD (61 DCA CHAR D01725, TAD WIDTH DCA COUNT T25F, TAD CHAR LOAD ISZ CHAR TAD CHAR TAD (-72 SZA CLA JMP T25G TAD P60 DCA CHAR T25G, ISZ COUNT JMP T25F PRINT LF EXIT /ROUTINE TO LOAD GROUPS OF CHARS FOR TEST 25 T25S, 0 TAD P60 DCA CHAR2 TAD CHAR2 LOAD ISZ COUNT SKP JMP I T25S ISZ LPCNT JMP T25S+3 ISZ T25S JMP I T25S PAGE /TEST 26 - OVERPRINT TEST TEST26, PRTHDR TAD (T26TAB DCA TABPTR T26A, TAD M3 DCA LPCNT T26B, TAD WIDTH DCA COUNT T26C, TAD I TABPTR SNA EXIT AND P77 TAD M40 SPA TAD P100 TAD P40 LOAD ISZ COUNT SKP JMP T26D TAD I TABPTR RTR RTR RTR AND P77 TAD M40 SPA TAD P100 TAD P40 LOAD ISZ COUNT JMP T26C T26D, PRINT CR ISZ LPCNT JMP T26B PRINT LF ISZ TABPTR JMP T26A T26TAB, 0540 4000 1540 4043 0 /TEST 27 - MULTIPLE LINE FEED TEST TEST27, PRTHDR TAD (T27TAB DCA TABPTR T27A, DCA TENS DCA ONES TAD I TABPTR ISZ TENS TAD M12 SMA JMP .-3 DCA ONES CLA CMA TAD TENS SNA JMP T27B TAD P60 LOAD T27B, CLA CLL TAD ONES TAD P72 LOAD TAD I TABPTR SNA JMP T27C TAD M1 SZA JMP T27D T27C, TAD WIDTH TAD P36 SMA SZA CLA JMP T27DA TAD WIDTH JMP T27E T27D, TAD M12 SMA CLA JMP .+3 TAD M35 SKP T27DA, TAD (-34 T27E, DCA COUNT TAD P55 MLOAD TAD I TABPTR SNA JMP T27X CIA DCA COUNT TAD P12 MLOAD ISZ TABPTR JMP T27A T27X, PRINT LF EXIT T27TAB, 1 2 4 10 20 40 0 PAGE /TEST 30 - RIBBON FEED TEST TEST30, PRTHDR TAD M30 DCA COUNT T30A, PRINT T30M ISZ COUNT JMP T30A EXIT T30M, TEXT /X;/ /TEST 31 - BELL TEST TEST31, PRTHDR TAD P7 LOAD PRINT T31M1 TAD P7 LOAD PRINT T31M2 TAD P7 LOAD PRINT CR TAD P7 LOAD PRINT LF TAD P7 LOAD PRINT CR EXIT T31M1, TEXT /BELL/ T31M2, TEXT / TEST/ /TEST 60 - LIFE TEST TEST60, CLA CLL DCA PASCNT T60A, PRTHDR TAD P41 DCA CHAR T60B, TAD WIDTH DCA COUNT TAD CHAR MLOAD PRINT LF TAD (-5 DCA LPCNT T60C, TAD WIDTH DCA COUNT TAD CHAR MLOAD PRINT CR ISZ LPCNT JMP T60C PRINT LF ISZ CHAR TAD M177 TAD CHAR SZA CLA JMP T60B ISZ PASCNT NOP PRINT PASMSG DCA THOUS TAD PASCNT ISZ THOUS TAD (-1750 SMA JMP .-3 TAD (1750 DCA PASCNT TAD P57 TAD THOUS LOAD TAD PASCNT JMS I TCNVRT PRINT CNVMSG PRINT LF JMP T60A PAGE /TEST 61 - SCOPE DRIVE ROUTINE TEST61, PRTHDR JMP T61C T61A, TAD WIDTH DCA COUNT T61B, GETSW AND P177 DCA CHAR TAD CHAR LOAD TAD M12 TAD CHAR SNA JMP T61C TAD M3 SNA JMP T61C TAD M23 SMA CLA ISZ COUNT NOP JMP T61D T61C, CLA CLL TAD WIDTH DCA COUNT T61D, LAS AND P200 SNA CLA JMP T61E HLT JMP T61B T61E, TAD COUNT SPA JMP T61B SNA CLA JMP T61F TAD P177 LOAD T61F, PRINT LF JMP T61A /TEST 62 - LINE PRINT TEST TEST62, PRTHDR TAD TPFLG SNA CLA JMP TERR TYPE TCHAR JMS I TKSF JMP .-1 CHECK JMS I TKRB T62A, JMS I TTLS JMS I TTSF JMP .-1 DCA CHAR TYPE CRLF T62B, TAD WIDTH DCA COUNT TAD CHAR MLOAD PRINT LF JMP T62B /TEST 63 - CHARACTER PRINT TEST TEST63, PRTHDR TAD TPFLG SNA CLA JMP TERR TYPE TCHAR TYPE CRLF T63B, JMS I TKSF JMP .-1 CHECK JMS I TKRB AND P177 DCA CHAR TAD CHAR T63A, JMS I TTLS JMS I TTSF JMP .-1 LOAD TAD CHAR TAD M15 SNA CLA JMP T63E T63C, TAD CHAR TAD M12 SNA CLA JMP T63E T63D, TAD CHAR TAD (-14 SZA CLA JMP T63B T63E, TYPE CRLF JMP T63B TERR, PRINT NCMSG EXIT PAGE /TTY I-O INSTRUCTIONS RKSF, 0 KSF SKP ISZ RKSF JMP I RKSF RKCC, 0 KCC JMP I RKCC RKRS, 0 KRS JMP I RKRS RKRB, 0 KRB JMP I RKRB RTSF, 0 TSF SKP ISZ RTSF JMP I RTSF RTCF, 0 TCF JMP I RTCF RTPC, 0 TPC JMP I RTPC RTLS, 0 TLS JMP I RTLS /PRINTER INSTRUCTIONS RPSKF, 0 JMS OP1CHK OPDBST PSKF SKP ISZ RPSKF JMP I RPSKF OPDBST, DBST JMP I RPSKF JMP .-4 RPCLF, 0 JMS OP1CHK OP1CLF PCLF JMP I RPCLF OP1CLF, DBST JMP I RPCLF JMP I RPCLF RPSTB, 0 JMS OP1CHK OPLOD1 PSTB JMP I RPSTB OPLOD1, CMA DBTD CMA DBSS JMP I RPSTB RPSIE, 0 JMS OP1CHK OPSCIE PSIE JMP I RPSIE OPSCIE, SZA DBSE SNA DBCE JMP I RPSIE RPCLP, 0 JMS OP1CHK OPLOD2 PCLP JMP I RPCLP OPLOD2, DBST NOP CMA DBTD CMA DBSS JMP I RPCLP /ROUTINES TO MODIFY I-O INSTRUCTIONS FOR SELECTED IOT CODES /ON CONSOLE TERMINAL & LA180 PRINTER MIOT, 0 CLA CLL TAD M4 DCA COUNT TAD (IOTAB-1 DCA AUTPTR TAD IOTSEL AND M100 CLL RAR CLL RTR MIOTB, DCA SAVE MIOTA, TAD I AUTPTR SNA JMP MIOTC DCA TABPTR TAD I TABPTR AND (7007 TAD SAVE DCA I TABPTR ISZ COUNT JMP MIOTA TAD IOTSEL AND P77 CLL RTL CLL RAL JMP MIOTB MIOTC, TAD I AUTPTR SNA JMP I MIOT DCA TABPTR TAD I TABPTR AND (7007 TAD PTRIOT DCA I TABPTR JMP MIOTC PAGE /CLOCK INTERRUPT SERVICE ROUTINE FOR TEST 2 CKSRV, CLSK JMP CKEXIT ISZ CKCNT JMP CKEXIT ISZ LPCNT SKP JMP I CKSTOP DCA ISAVE TAD CKFLAG DCA CKCNT TAD ISAVE CKEXIT, ION JMP I 0000 CKSTOP, T2SPDC ISAVE, 0 /TEST EXIT ROUTINE REXIT, JMS I TKBFG GETSW AND P1000 SZA CLA JMP EXIT3 GETSW AND P400 SZA CLA JMP I TSELCT TAD TLOOP SZA CLA JMP EXIT3 TAD TRONE SZA CLA JMP I TTSEL EXIT1, ISZ TSTNM EXIT3, TAD TTAT TAD TSTNM DCA TABPTR TAD I TABPTR SNA SPA JMP EXIT2 DCA TSTPTR JMP I TSTPTR EXIT2, SMA CLA JMP EXIT1 TAD (20 DCA TSTNM JMP EXIT3 /SELECT TEST FROM CPU SW REG BITS 06-11 SELECT, IOF CLDI CLA CLL JMS I TPSIE DCA STRONE DCA TRONE DCA TLOOP TAD LIERR DCA ISRV JMS I TKBFG HLT GETSW AND P400 SZA CLA CMA DCA STRONE GETSW AND P77 DCA TSTNM TAD TTAT TAD TSTNM DCA TABPTR TAD I TABPTR SNA SPA JMP SELECT DCA TSTPTR JMP I TSTPTR /ROUTINE TO CHECK FOR KYBD OR SW REG CONTROL RCHECK, 0 DCA SAVE JMS I TKBFG GETSW AND P400 SZA CLA IAC TAD STRONE SZA CLA JMP I TSELCT TAD SAVE JMP I RCHECK /ROUTINE TO WAIT FOR OPERATOR ACTION RHOLD, 0 DCA HOLDCH TAD TPFLG SNA CLA JMP RHOLDA TYPE WTMSG TAD HOLDCH JMS I TKSF JMP .-1 JMP I RHOLD RHOLDA, TAD HOLDCH HLT JMP I RHOLD HOLDCH, 0 /ROUTINE TO CHECK FOR PARALLEL I/O OP1CHK, 0 DCA SAVEAC TAD PARAM RAL SPA CLA JMP .+4 ISZ OP1CHK TAD SAVEAC JMP I OP1CHK TAD I OP1CHK DCA OP1CHK JMP .-4 SAVEAC, 0000 PAGE /ROUTINE TO CHECK FOR KYBD FLAG KYBDF, 0 CLA CLL TAD TPFLG SNA CLA JMP I KYBDF JMS I TKSF JMP I KYBDF JMS I TKRB AND P177 DCA KYBDC TAD PARAM SPA CLA JMP KFA TAD KYBDC TAD M7 SZA CLA JMP KFA KFB, CLA CLL DCA TTYIN DCA INFLAG TYPE DSMSG1 TAD SWITCH JMS I TPOCT TYPE DSMSG2 KFF, JMS I TKSF JMP .-1 JMS I TKRB AND P177 DCA KYBDC TAD M25 TAD KYBDC SZA CLA JMP KFC TYPE CNTLU JMP KFB KFC, TAD M15 TAD KYBDC SZA CLA JMP KFD TYPE CRLF TAD INFLAG SNA CLA JMP I KYBDF TAD TTYIN DCA SWITCH JMP I KYBDF KFD, TAD M12 TAD KYBDC SZA CLA JMP KFE TYPE CRLF TAD INFLAG SNA CLA JMP I TTSEL TAD TTYIN DCA SWITCH JMP I TTSEL KFE, TAD KYBDC JMS I PDIGIT TAD KYBDC AND P7 DCA KYBDC P03303, TAD TTYIN CLL RAL CLL RAL CLL RAL TAD KYBDC DCA TTYIN ISZ INFLAG JMP KFF KFA, TAD KYBDC TAD M177 SNA CLA JMP I TTSEL TAD KYBDC TAD M3 SNA CLA JMP I TKBDST JMP I KYBDF KYBDC, 0 TTYIN, 0 INFLAG, 0 PAGE *3400 KBTAB, READQ KYBDAA KYBDA KYBDB READQ /ROUTINE TO SET NUMBER OF COLUMNS FROM CONSOLE DEVICE KYBD KYBDST, TYPE COLUMN DCA WIDTH JMS I READ TAD (READT-1 DCA AUTPTR TAD COUNT CIA TAD (KBTAB DCA SAVE TAD I SAVE DCA SAVE JMP I SAVE KYBDAA, TAD I AUTPTR JMS I CHKNR SNA JMP KYBDA CIA DCA COUNT TAD M144 ISZ COUNT JMP .-2 KYBDA, DCA WIDTH TAD I AUTPTR JMS I CHKNR SNA JMP KYBDB CIA DCA COUNT TAD M12 ISZ COUNT JMP .-2 TAD WIDTH DCA WIDTH KYBDB, tAD I AUTPTR JMS I CHKNR CIA TAD WIDTH DCA WIDTH TAD P2 TAD WIDTH SMA SZA CLA JMP I TREADQ TAD P204 TAD WIDTH SPA CLA JMP I TREADQ JMP I TTSEL /ROUTINE TO SELECT TEST FROM CONSOLE DEVICE KYBD TSEL, IOF CLDI CLA CLL JMS I TPSIE DCA TRONE DCA TLOOP DCA STRONE TAD LIERR DCA ISRV TYPE SELTST JMS I READ TAD I LREADT TAD M3 SNA CLA JMP I TKBDST ISZ COUNT JMP I TREADQ TAD (READT-1 DCA AUTPTR TAD I AUTPTR JMS I CHKOCT CLL RTL CLL RAL DCA TSTNM TAD I AUTPTR JMS I CHKOCT TAD TSTNM DCA TSTNM TAD TTAT TAD TSTNM DCA TABPTR TAD I TABPTR SNA SPA JMP I TREADQ DCA TSTPTR TAD I AUTPTR DCA SAVE TAD M56 TAD SAVE SZA CLA JMP TSEL1 CLA CMA DCA TRONE JMP TSELX TSEL1, TAD SAVE AND (137 TAD (-114 SZA JMP TSEL2 CLA CMA DCA TLOOP JMP TSELX TSEL2, TAD M7 SZA CLA JMP I TREADQ TSELX, TYPE CRLF JMP I TSTPTR PAGE /ERROR ROUTINE, ERROR MESG IS IN FORM: / /TEST #XX, PC=XXXX, ERROR #XXXX, MESSAGE>>>>>> RERROR, 0 CLA CMA TAD RERROR DCA ERRPC TAD I RERROR DCA ERRNM GETSW RAL SPA CLA JMP IERRT TAD TPFLG SNA CLA JMP IERRT TYPE ETSTNO TAD TSTNM RTR RAR JMS I PDIGIT TAD TSTNM JMS I PDIGIT TYPE PCMSG TAD ERRPC JMS I TPOCT TYPE JMP THOUS TAD ERRNM JMS I TPOCT TYPE ERRS TAD (EMAT-1 TAD ERRNM DCA RSAVE TAD I RSAVE DCA RSAVE TYPE RSAVE, 0 TYPE CRLF IERRT, GETSW SMA CLA JMP .+3 TAD ERRNM HOLD ISZ RERROR CLA CLL JMP I RERROR /ROUTINE TO PRINT AN OCTAL DIGIT ON THE CONSOLE DEVICE RPDIGT, 0 AND P7 TAD P60 JMS I GOUT JMP I RPDIGT /ROUTINE TO CONVERT 4 DIGIT OCTAL NUMBER TO ASCII AND TYPE ON CONSOLE POCT, 0 DCA OCTSAV TAD OCTSAV RTR RTR RTR RTR RAR JMS I PDIGIT TAD OCTSAV RTR RTR RTR JMS I PDIGIT TAD OCTSAV RTR RAR JMS I PDIGIT TAD OCTSAV JMS I PDIGIT JMP I POCT OCTSAV, 0 /ROUTINE TO CONVERT OCTAL NUMBER TO 3 DIGIT DECIMAL NUMBER IN ASCII STRING /RETURN WITH CONVERT NUMBER STRING IN CNVMSG. CNVRT, 0 DCA CNVNM DCA HUNDS DCA TENS DCA ONES TAD CNVNM L03721, ISZ HUNDS TAD M144 SMA JMP .-3 TAD (144 L03726, ISZ TENS TAD M12 SMA JMP .-3 DCA ONES TAD (CNVMSG DCA MSGPTR TAD HUNDS TAD P57 RTL RTL RTL AND M100 DCA I MSGPTR TAD TENS TAD P57 TAD I MSGPTR DCA I MSGPTR ISZ MSGPTR TAD ONES TAD P72 RTL RTL RTL AND M100 DCA I MSGPTR JMP I CNVRT CNVNM, 0 MSGPTR, 0 PAGE /TYPE ROUTINE - TO TYPE ASCII MESSAGES RTYPE, 0 CLA CLL TAD TPFLG SZA CLA JMP .+3 RT2, ISZ RTYPE JMP I RTYPE TAD I RTYPE DCA MSGADR RT1, TAD I MSGADR CLL RTR CLL RTR CLL RTR JMS OUT TAD I MSGADR JMS OUT ISZ MSGADR JMP RT1 OUT, 0 AND P77 SNA JMP RT2 DCA SAVE TAD SAVE TAD (-53 SNA JMP OUTCL TAD M20 SNA CLA JMP OUTLF TAD SAVE AND P40 SNA CLA TAD P100 TAD SAVE JMP OUTCHR OUTCL, CLA CLL TAD P15 JMS I TTLS JMS I TTSF JMP .-1 OUTLF, CLA CLL TAD P12 OUTCHR, JMS I TTLS JMS I TTSF JMP .-1 CLA CLL JMP I OUT /ROUTINE TO LOAD SINGLE CHARACTERS TO LA180 PRINTER RLOAD, 0 CHECK RLA, CLA CLL DCA RLDC TAD (-300 DCA RLDCC RLB, ISZ RLDC JMP RLC ISZ RLDCC JMP RLC ERROR 16 JMP I RLOAD RLC, JMS I TPSKF JMP RLB TAD SAVE JMS I TPCLP CLA CLL JMP I RLOAD RLDC, 0 RLDCC, 0 /ROUTINE TO LOAD MULTIPLE CHARACTERS (NOT TEXT STRINGS) TO LA180 RMLOAD, 0 DCA SAVE TAD SAVE LOAD ISZ COUNT TAD COUNT SPA CLA JMP RMLOAD+2 JMP I RMLOAD PAGE /ROUTINE TO PRINT ASCII MESSAGES ON THE LA180 PRINTER RPRINT, 0 CLA CLL TAD I RPRINT DCA MSGADR ISZ RPRINT RP1, TAD I MSGADR CLL RTR CLL RTR CLL RTR JMS PRT TAD I MSGADR JMS PRT ISZ MSGADR JMP RP1 PRT, 0 AND P77 SNA JMP I RPRINT DCA SAVE TAD SAVE TAD (-41 SNA JMP PRTFF TAD M12 SNA JMP PRTCL TAD (-17 SNA JMP PRTCR TAD M1 SNA CLA JMP PRTLF TAD SAVE AND P40 SNA CLA TAD P100 TAD SAVE JMP PRTCHR PRTFF, CLA CLL TAD (14 JMP PRTCHR PRTCR, CLA CLL TAD P15 JMP PRTCHR PRTCL, CLA CLL TAD P15 LOAD PRTLF, TAD P12 PRTCHR, LOAD JMP I PRT /ROUTINE TO PRINT TET HEADER ON LA180 RPRHDR, 0 CLA CLL TAD P177 LOAD TAD SVTST CIA TAD TSTNM SNA CLA JMP HDRX TAD TSTNM DCA SVTST PRINT TSTNO TAD TSTNM RTR RAR AND P7 TAD P60 LOAD TAD TSTNM AND P7 TAD P60 LOAD PRINT LF TAD M25 TAD TSTNM SZA CLA JMP HDRX TAD WIDTH CIA JMS I TCNVRT PRINT CNVMSG PRINT COLMN HDRX, PRINT LF JMP I RPRHDR SVTST, 0 PAGE /ROUTINE TO READ 4 CHARS FROM THE CONSOLE KEYBOARD TREAD, 0 READ0, CLA CLL DCA RFLAG READ1, TAD M4 DCA COUNT TAD LREADT DCA TABPTR READ2, JMS I TKSF JMP .-1 JMS I TKRB AND P177 DCA I TABPTR TAD M40 TAD I TABPTR SNA CLA JMP READ2 TAD M25 TAD I TABPTR SNA CLA JMP READU TAD M177 TAD I TABPTR SNA CLA JMP READD TAD M15 TAD I TABPTR SNA CLA JMP I TREAD TAD RFLAG SNA CLA JMP .+3 TAD P134 JMS I GOUT DCA RFLAG TAD I TABPTR JMS I TTLS JMS I TTSF JMP .-1 ISZ TABPTR ISZ COUNT JMP READ2 READQ, TYPE QUES JMP READ0 READU, TYPE CNTLU JMP READ0 READD, CLA CMA TAD COUNT DCA COUNT TAD (4 TAD COUNT SPA CLA JMP READ1 CLA CMA TAD TABPTR DCA TABPTR TAD RFLAG SZA CLA JMP .+3 TAD P134 JMS I GOUT TAD I TABPTR JMS I GOUT CLA CMA DCA RFLAG JMP READ2 RFLAG, 0 READT, 0 0 0 0 /ROUTINE TO CHECK FOR OCTAL DIGIT INPUT TCKOUT, 0 JMS TCHKNR AND P10 SZA CLA JMP I TREADQ TAD SAVE AND P7 JMP I TCKOUT /ROUTINE TO CHECK INPUTTED CHAR IF A NUMBER! TCHKNR, 0 DCA SAVE TAD (-60 TAD SAVE SPA CLA JMP I TREADQ TAD (-72 TAD SAVE SMA CLA JMP I TREADQ TAD SAVE AND (17 JMP I TCHKNR IOTAB, RKSF+1 RKCC+1 RKRS+1 RKRB+1 RTSF+1 RTCF+1 RTPC+1 RTLS+1 0 RPSKF+3 RPCLF+3 RPSTB+3 RPSIE+3 RPCLP+3 0 PAGE /TEST ADDRESS TABLE TAT, TEST0 TEST1 P04602, TEST2 0 P04604, 0 0 0 0 0 0 D04612, 0 0 0 0 0 P04617, 0 TEST20 TEST21 TEST22 P04623, TEST23 TEST24 TEST25 TEST26 D04627, TEST27 TEST30 TEST31 -1 0 0 0 0 0 P04640, 0 0 0 0 0 0 D04646, 0 0 0 0 0 D04653, 0 0 P04655, 0 0 0 TEST60 TEST61 TEST62 TEST63 0 0 0 0 0 0 0 0 D04674, 0 0 P04676, 0 0 EMAT, ERR1 P04701, ERR2 ERR3 ERR4 ERR5 ERR6 ERR7 ERR10 ERR11 P04711, ERR12 ERR13 ERR14 P04714, ERR15 L04715, ERR16 HEADER, TEXT '+MAINDEC-08-DILAC-B+LA180 PRINTER DIAGNOSTIC+;' COLUMN, TEXT '+# COLUMNS = ' SELTST, TEXT '+SELECT TEST # ' DSMSG1, TEXT /+SWR = / DSMSG2, TEXT / NEW = / WTMSG, TEXT /WAITING, TYPE SPACE TO CONTINUE+/ TSTNO, TEXT ';;TEST NUMBER ' COLMN, TEXT ' COLUMNS;' ETSTNO, TEXT '+TEST # ' PCMSG, TEXT ', PC=' ERR, TEXT ', ERROR #' ERRS, TEXT ', ' PASMSG, TEXT ';END OF PASS #' T2M1, TEXT 'PRINT SPEED MANUAL TIMING+' T2M2, TEXT 'PUT SWITCH 4 UP TO START TIMING+' T2M3, TEXT 'PUT SWITCH 4 DOWN AT END OF 1 MINUTE+' T2EM, TEXT /NO METHOD OF TIMING AVAILABLE+/ PRSP1, TEXT '+PRINT SPEED IS ' PRSP2, TEXT 'APPROX ' PRSP3, TEXT ' LINES/MINUTE , WITH ' PRSP4, TEXT ' CHARS/LINE+' NCMSG, TEXT ';NO CONSOLE TERMINAL;' TCHAR, TEXT 'CHAR = ' T0MSG0, TEXT /TURN POWER OFF & SET OFF LINE+/ T0MSG1, TEXT /OK, TURN POWER ON+/ T0MSG2, TEXT /OK, SET PRINTER TO ON-LINE+/ T0MSG3, TEXT /OK, TRY PAPER OUT SWITCH+/ T0MSG4, TEXT /OK, RESTORE PRINTER TO ON-LINE+/ T1MSG1, TEXT '----- ' T1MSG2, TEXT ' INCH FORM FEED -----:' T1MSG3, TEXT 'SET FORM FEED SWITCH TO ' T1MSG4, TEXT ' INCHES & DEPRESS TOF RESET SWITCH+' CNVMSG, TEXT / / CR, TEXT ':' LF, TEXT ';' CRLF, TEXT '+' FF, TEXT '!' QUES, TEXT '+?+' CNTLU, TEXT '^U+' T1TAB, TEXT ' 3 ' TEXT '3.5' TEXT ' 4 ' TEXT '5.5' TEXT ' 6 ' TEXT ' 7 ' TEXT ' 8 ' TEXT '8.5' TEXT '11 ' TEXT '12 ' TEXT '14 ' 0 ERR1, TEXT /READY SET, POWER OFF/ ERR2, TEXT /READY SET, PRINTER OFF LINE/ ERR3, TEXT /READY CLEAR, PRINTER ON LINE/ ERR4, TEXT /READY SET, PAPER OUT/ ERR5, TEXT /READY NOT SET AFTER ERROR CLEARED/ ERR6, TEXT /PCLF DID NOT CLEAR READY/ ERR7, TEXT /READY DID NOT SET AFTER CHAR LOAD/ ERR10, TEXT /PCLP DID NOT CLEAR READY/ ERR11, TEXT /READY DID NOT SET AFTER CHAR LOAD/ ERR12, TEXT /UNEXPECTED INTERRUPT/ ERR13, TEXT /INTER - READY CLEAR, ENABLED & ION/ ERR14, TEXT /NO INTER - READY SET, ENABLED & ION/ ERR15, TEXT /INTER - READY SET, ENABLED BUT IOF/ ERR16, TEXT /PRINTER NOT READY/ $