GD.16 BSS 1 16LSB OF RAM DATA LOADED M16 OCT -16 M6 OCT -6 MASK1 OCT 177400 MASK2 EQU B377 MASK3 OCT 41 MASK4 OCT 204 MASK5 OCT 7700 MASK6 OCT 10400 MASK7 OCT 177417 MASK8 OCT 176000 MASK9 OCT 177700 MASKS OCT 176777 MSGC DEF ZMSGC MESSAGE WITHOUT A HALT MSGH DEF ZMSGH MESSAGE WITH A HALT O.REG BSS 1 STORAGE FOR O AFTER MACRO P100A DEF M100A LINK TO RAM ADDRESS IN MSG H100 P100B DEF M100B LINK TO 8MSB LOADED IN MSG H100 P100C DEF M100C LINK TO 16LSB LOADED IN H100 P100D DEF M100D LINK TO 8MSB READ IN MSG H100 P100E DEF M100E LINK TO 16LSB READ IN MSG H100 P101A DEF H101A LINK TO MOD # IN MSG H101 P101B DEF H101B LINK TO 1ST RAM ADR IN MSG H101 P101C DEF H101C LINK TO 1ST 8MSB IN MSG H101 P101E DEF H101E LINK TO 2ND RAM ADR IN MSG H101 P101F DEF H101F LINK TO 2ND MICROWORD IN H101 P101H DEF H101H LINK TO 3RD RAM ADR IN MSG H101 P101I DEF H101I LINK TO 3RD MICROWORD IN H101 P101K DEF H101K LINK TO 4TH RAM ADR IN MSG H101 P103B DEF H103B LINK TO RAM ADDRESS IN H103A P103C DEF H103C LINK TO 8MSB OF MICROWORD P103D DEF H103D LINK TO 16LSB OF MICROWORD PATT1 OCT 252 PATT2 OCT 125252 PATT3 OCT 125 PATT4 OCT 52525 PBUFF DEF BUFF LINK TO TST25 BUFFER PE37A DEF E037A LINK TO RAM ADR. IN E037 PE37B DEF E037B LINK TO ALT. RAM ADR. IN E037 PERBB DEF E0BB+1 LINK TO TEST # IN MESSAGE E0BB PERFF DEF EFF+1 LINK TO TEST # IN MSG EFF PERRC DEF ECCA LINK TO TEST # IN MESSAGE H033 PERRD DEF EDD LINK TO "DISABLED" TEXT PERRE DEF EEE LINK TO " ENABLED" TEXT PERRF DEF EFFA LINK TO TEXT IN MSG EFF PERRG DEF EGG+1 LINK TO TEST # IN MSG EGG PEROD OCT 56 ASCII PERIOD PFLAG BSS 1 EVEN OR ODD PARITY FLAG PMAC DEF MACRO LINK TO MACRO IN TST25 PS100 DEF S100 POINTER TO S100 AREA PS10A DEF S100A POINTER TO S100 DATA PT118 DEF T11.8 ERROR RETURN POINT IN TST11 PT250 DEF T25.0 LINK TO CALL RTN. IN TST25 PT25A DEF T25.A LINK TO RETURN PT. IN TST25 PTEST DEF CTMTA LINK TO TABLE OF CEN. TEST MIC'S QO2AS DEF ZN2AO 2 DIGIT OCTAL TO ASCII ROUTINE S100 BSS 1 STORAGE S100A BSS 1 FOR S100B BSS 1 MSG'S H100 & H101 SAVE1 BSS 1 BASE PAGE ROUTINES STORAGE SAVE2 BSS 1 BASE PAGE ROUTINES STORAGE SAVE3 BSS 1 BASE PAGE ROUTINES STORAGE SAVE4 BSS 1 PROGRAM STORAGE SAVE5 BSS 1 PROGRAM STORAGE SAVE6 BSS 1 PROGRAM STORAGE SAVE7 BSS 1 PROGRAM STORAGE SAVE8 BSS 1 PROGRAM STORAGE SAVE9 BSS 1 PROGRAM STORAGE SAVEX BSS 1 ERROR STORAGE SAVEY BSS 1 ERROR STORAGE SLASH OCT 20057 ASCII SPACE,/ STDA OCT 177777 DEFAULT TESTS WORD(A-REG) STDB OCT 37 DEFAULT TESTS WORD(B-REG) SWRT DEF ZSWRT LINK TO S-REG CHECK TEST1 BSS 1 8MSB OF RAM TEST PATTERN TEST2 BSS 1 16LSB OF RAM TEST PATTERN TSTN NOP TEST # WFLAG BSS 1 WRITING/READING FLAG X.REG BSS 1 STORAGE FOR X AFTER MACRO Y.REG BSS 1 STORAGE FOR Y AFTER MACRO * TBCNT ABS LSTMD-CTMTA+1 TBMX DEF *+1 CTMTA OCT 0,0 ENVE INC X X CTM#1 OCT 0,0 R1 PASS B Y CTM#2 OCT 0,0 IMM L4 CMLO Y 0 CTM#3 OCT 0,0 PASS A B CTM#4 RT OCT 0,0 RTN MICROINSTRUCTION P1 OCT 0,0 RTN INC A A P2 OCT 0,0 PASS P3 BSS 2 CENTER TEST MICROINSTRUCTION P4 OCT 0,0 RTN DEC A A P5 OCT 0,0 P6 OCT 0,0 JSB 0B P7 OCT 0,0 P8 OCT 0,0 RTN INC B B TMOD OCT 0 TEST MODULE NUMBER TMOD1 OCT 0 TMOD2 OCT 0 TMOD3 OCT 0 TMOD4 OCT 0 TRA1 OCT 0 TEST RAM ADDRESS TRA2 OCT 0 FLTMD OCT 0 FLOATING POINT MODULE NUMBER TMAC OCT 0 LOWMD OCT 0 LOWEST MOD PERMITTED TST24 LSTMD OCT 0 LAST MODULE NUMBER SKP TBMXM DEF *+1 OCT 260,071617 ENVE INC X X CTM#1 OCT 017,172504 R1 PASS B Y CTM#2 OCT 354,001643 IMM L4 CMLO Y 0 CTM#3 OCT 017,124557 PASS A B CTM#4 OCT 017,136776 RTN MICROINSTRUCTION OCT 000,026576 RTN INC A A OCT 017,136757 PASS BSS 2 CENTER TEST MICROINSTRUCTION OCT 007,126576 RTN DEC A A OCT 0,0 OCT 300,000030 JSB 0B(+MOD ADDRESS) OCT 0,0 OCT 000,024536 RTN INC B B OCT 201 TEST MODULE NUMBER OCT 403 OCT 605 OCT 101 OCT 302 OCT 400 TEST RAM ADDRESS OCT 1400 OCT 706 FLOATING POINT MODULE NUMBER OCT 105100 OCT 0 OCT 7 LAST MODULE NUMBER * TBMXE DEF *+1 OCT 267,171607 ENVE INC X X CTM#1 OCT 010,072224 R1 PASS B Y CTM#2 OCT 350,001663 IMM L4 CMLO Y 0 CTM#3 OCT 010,010147 PASS A B CTM#4 OCT 230,036740 RTN MICROINSTRUCTION OCT 227,106140 RTN INC A A OCT 010,036747 PASS BSS 2 CENTER TEST MICROINSTRUCTION OCT 220,006140 RTN DEC A A OCT 0,0 OCT 300,000007 JSB 0B(+MOD ADDRESS) OCT 0,0 OCT 227,110200 RTN INC B B OCT 3736 TEST MODULE NUMBER OCT 1110 OCT 2120 OCT 3636 OCT 2221 OCT 36000 TEST RAM ADDRESS OCT 37000 OCT 201 FLOATING POINT MODULE NUMBER OCT 105160 OCT 1 OCT 37 LAST MODULE NUMBER SKP Z.177 EQU B177 Z.100 OCT 100 Z.2 EQU B2 Z.200 EQU B200 Z.300 EQU P6 Z.60 OCT 60 Z.7 OCT 7 Z.77 EQU B77 Z.M1 EQU .M1 Z.M2 EQU .M2 ZA.E OCT 105 ZCFTT DEC -1 ZEOLC NOP ZH2 OCT 102000 ZH3 OCT 103000 ZH6 OCT 106000 ZH7 OCT 107000 ZIOAD NOP ZIOM OCT 177700 ZIOSC NOP ZSAV1 BSS 1 ERROR STORAGE ZSAVA NOP ERROR STORAGE ZSAVB NOP ERROR STORAGE ZSINA NOP ZSINB NOP ZSW12 OCT 10000 ZSW13 OCT 20000 ZSW14 OCT 40000 ZSW15 EQU B100K ZSW9 EQU B1000 ZTSTA NOP ZTSTF DEF H102 LINK TO MSG H102 ZTSTN DEF M102A LINK TO TEST # IN MSG H102 ZUINA NOP ZUINB NOP HED I/O INSTRUCTIONS TABLE IOIP DEF *+1 DEF CLC01 DEF CLC02 DEF CLC03 DEF CLC04 DEF CLC05 DEF CLC06 DEF CLC07 DEF CLC08 DEF CLC09 DEF CLC10 DEF CLC11 DEF CLC12 DEF CLC13 DEF CLC14 DEF CLF01 DEF CLF02 DEF CLF03 DEF CLF04 DEF CLF05 DEF CLF06 DEF LIA01 DEF LIA02 DEF LIA03 DEF LIA04 DEF LIA05 DEF LIA06 DEF LIA07 DEF LIA08 DEF LIA09 DEF LIB01 DEF LIB02 DEF LIB03 DEF LIB04 DEF LIB05 DEF LIB06 DEF LIB07 DEF LIB08 DEF OTA01 DEF OTA02 DEF OTA03 DEF OTA04 DEF OTA05 DEF OTA06 DEF OTA07 DEF OTA08 DEF OTA09 DEF OTA10 DEF OTA11 DEF OTA12 DEF OTA13 DEF OTA14 DEF OTA15 DEF OTA16 DEF OTA17 DEF OTA18 DEF OTA19 DEF OTA20 DEF OTB01 DEF OTB02 DEF OTB03 DEF OTB04 DEF OTB05 DEF OTB06 DEF OTB07 DEF OTB08 DEF OTB09 DEF OTB10 DEF OTB11 DEF OTB12 DEF OTB13 DEF OTB14 DEF OTB15 DEF STC01 DEF STC02 DEF STC03 DEF STC04 DEF STC05 DEF STC06 DEF STC07 DEF STC08 DEF STC09 DEF STC10 DEF STF01 DEF STF02 DEF STF03 DEF STF05 DEF STF06 DEF STF07 DEF STF08 DEF STF09 OCT -1 HED TEST CONTROL ORG 2000B ZSTEX CLC INTP,C TURN I/O SYSTEM OFF JSB MSGC,I OUTPUT THE DEF HEADR INTRODUCTORY MESSAGE CLA CLEAR PASS STA ZEOLC COUNT LDB ZSW9 CHECK FOR USER SELECTION REQ JSB SWRT,I JMP ZUSR IT'S USERS CHOICE ZNUSR LDA STDA GET STANDARD TEST RUN LDB STDB JMP ZEXC ZUSR LIA S GET S REG AND MASKS ELIMINATE BIT 9 OTA S LDA ZSINA RETRIEVE PREVIOUS RUN LDB ZSINB HLT 75B WAIT FOR USER INPUT ZEXC STA ZUINA SAVE STB ZUINB USER STA ZSINA INPUT STB ZSINB PROGRAM CCA SET TEST NUMBER STA TSTN =-1 STA ZCFTT CLA STA ZTSTA CLEAR TEST RUN FLAG SKP ZEXCL LDA ZUINA RESTORE A REG. LDB ZUINB RESTORE B REG. ERA,RAL ROTATE ERB FIRST ERA TEST BIT STA ZUINA SAVE POSITIONS STB ZUINB ISZ TSTN MOVE TEST UP ONE NOP ZXCL1 LDA TSTN ADA TSTP GET IT'S LDA A,I ADDRESS CPA Z.M1 IS IT END OF LIST JMP ZEOL YES LDB ZUINB SSB,RSS SHOULD IT BE RUN? JMP ZEXCL NO STA ZTSTA YES - SAVE TEST ADDRESS JSB ZITCH INITIALIZE TRAP CELL HALTS JSB ZTSTA,I GO DO TEST LDB ZSW15 CHECK FOR HALT AT END OF TEST JSB SWRT,I RSS JMP *+3 NO.GO ON WITHOUT HALT LDA TSTN GET CURRENT TEST # HLT 76B YES WAIT FOR OPERATOR LDB ZSW9 CHECK FOR ABORT JSB SWRT,I JMP ZUSR YES LDB ZSW13 CHECK FOR LOOP ON ROUTINE JSB SWRT,I JMP ZXCL1 YES - LOOP JMP ZEXCL CONTINUE ZEOL LDA ZTSTA CHECK IF ANY TESTS WERE RUN SZA,RSS ? JMP ZNUSR NO SO PICK UP STANDARD RUN LDA ZEOLC UP DATE PASS COUNT INA STA ZEOLC CCE LDB ZPSCA GET PASS COUNT ADB Z.2 ADDRESS JSB O2AS,I CONVERT IT JSB MSGC,I CALL PRINT ROUTINE ZPSCA DEF ZPSC LDB ZSW12 CHECK FOR LOOP ON DIAG. JSB SWRT,I JMP *+3 YES LDA ZEOLC HLT 77B NO WAIT AND DISPLAY PASS COUNT LDA ZSINA RESTORE ORIGINAL LDB ZSINB PROGRAM JMP ZEXC DO IT ALL AGAIN SKP * MESSAGE OUTPUT WITHOUT HALT * ZMSGC NOP ENTRY JSB ZMSG OUTPUT MESSAGE OCT 2000 SWITCH 10 CHECK JMP ZMSGC,I RETURN TO CALLER * * MESSAGE OUTPUT WITH HALT * ZMSGH NOP ENTRY JSB ZMSG OUTPUT MESSAGE OCT 2000 SWITCH 10 CHECK LDA ZHLT GET HALT CODE STA *+2 PUT IT IN PLACE LDA ZSAVA RESTORE A REGISTER NOP HALT FOR DISPLAY JMP ZMSGH,I RETURN TO CALLER * * ERROR MESSAGE WITH HALT * ZERMS NOP ENTRY JSB ZMSG OUTPUT MESSAGE OCT 4000 SWITCH 11 CHECK CLA LDB ZSW14 CHECK SWR BIT 14 TO SUPPRESS JSB SWRT,I HALT CLA,RSS LDA ZHLT GET HALT CODE STA *+3 PUT HALT IN PLACE LDA ZSAVA RESTORE A & B LDB ZSAVB ZHLT NOP WAIT FOR OPERATOR JMP ZERMS,I RETURN TO CALLER SKP * OUTPUT MESSAGE * ZMSG NOP STA ZSAVA SAVE A AND B REGISTERS STB ZSAVB LDB ZMSG,I GET SWITCH REGISTER BIT LDA ZMSG ADA Z.M2 DECREMENT RETURN ADDRESS STA ZMSG JSB SWRT,I CHECK TO SUPPRESS MESSAGE JMP ZMSG0 YES LDA ZMSG,I CHECK LDA A,I IF ELA,CLE,ERA ERROR LDA A,I ALF,ALF AND Z.177 CPA ZA.E JSB ZCFTN CHECK TO OUTPUT TEST NUMBER LDA ZMSG,I NO RETRIEVE FORMAT LDB A,I ADDRESS ELB,CLE,ERB CLEAR INDIRECT BIT CLA,CLE JSB FMTR,I ZMSG0 LDA ZMSG,I CONVERT HALT CODE LDB A,I FROM ASCII STRING ELB,CLE,ERB CLEAR INDIRECT BIT CCA,CCE JSB AS2N,I STA ZN2AO SAVE RESULT AND Z.300 DECODE LDB ZH2 HALT CODE CPA Z.100 LDB ZH6 CPA Z.200 LDB ZH3 CPA Z.300 LDB ZH7 LDA ZN2AO GET HALT NUMBER AND Z.77 IOR B STA ZHLT SAVE IT SKP ZMSG1 LDA ZMSG,I CHECK FOR LDA A,I ADDITIONAL SSA,RSS MESSAGES JMP ZMSG2 NO MORE MESSAGES ISZ ZMSG,I BUMP RETURN POINTER LDB ZMSG CHECK ADB Z.2 FOR LDB B,I SUPPRESS JSB SWRT,I MESSAGES JMP ZMSG1 SUPPRESS MESSAGE LDA ZMSG,I GO REPORT LDB A,I NEXT ELB,CLE,ERB MESSAGE CLA,CLE JSB FMTR,I JMP ZMSG1 ZMSG2 ISZ ZMSG,I ADJUST RETURN POINTERS ISZ ZMSG ISZ ZMSG ISZ ZMSG LDA ZSAVA RESTORE A AND B REGISTERS LDB ZSAVB JMP ZMSG,I * * MESSAGE ROUTINE * ZCFTN NOP LDA TSTN GET TEST NUMBER CPA ZCFTT IS IT THE SAME ONE? JMP ZCFTN,I YES SKIP OUTPUT STA ZCFTT NO - THEN UPDATE IT JSB ZN2AO CONVERT IT STA ZTSTN,I PUT IT IN STRING CLA,CLE INDICATE START OF FORMAT LDB ZTSTF JSB FMTR,I JMP ZCFTN,I RETURN SKP * TWO DIGIT OCTAL TO ASCII ROUTINE * ZN2AO NOP STA ZIOAD SAVE NUMBER AND Z.7 CONVERT FIRST IOR Z.60 NUMBER STA B SAVE IT LDA ZIOAD GET RAR,RAR SECOND RAR NUMBER AND Z.7 CONVERT IOR Z.60 IT ALF,ALF MOVE TO UPPER HALF IOR B ADD LOWER JMP ZN2AO,I AND RETURN * * SWITCH REGISTER CHECK * ZSWRT NOP JSB SWRC,I GO CHECK S-REG BIT(S) RSS BIT(S) ARE ON.RETURN P+1 ISZ ZSWRT BIT(S) ARE OFF.RETURN P+2 LIA S SAVE STA ZN2AO S-REG L.006 CCE CLEAR DELAY FLAG L.002 CLA ANY OTA S BITS LIA S STILL SZA,RSS ON? JMP L.003 NO.GO SEE IF ANY STUCK OFF CLE YES.SET DELAY FLAG JMP L.002 TRY AGAIN L.003 CCA ANY OTA S BITS LIA S STILL ISZ A OFF? CLE,RSS YES.SET DELAY FLAG JMP L.004 NO.SEE IF DONE JMP L.003 TRY AGAIN L.004 SEZ DELAY? JMP L.005 NO INA,SZA YES.DELAY APPROXIMATELY JMP *-1 315 MILLISECONDS JMP L.006 GO PASS DEBOUNCE AGAIN L.005 LDA ZN2AO RESTORE OTA S S-REG JMP ZSWRT,I SKP * INITIALIZE TRAP CELL HALTS * ZITCH NOP LDA ZTSH GET STARTING TRAP CELL HALT LDB Z.2 GET FIRST TRAP CELL LOCATION ZTSHL STA B,I PUT IT IN PLACE CPB Z.77 AM I FINISHED JMP ZITCH,I YES INB NEXT ADDRESS JMP ZTSHL * ZTSH OCT 106077 * * INITIALIZE SELECT CODE I/O INSTRUCTIONS * ZISC NOP STA ZIOSC SAVE SELECT CODE STB ZIOAD SAVE TABLE ADDRESS ZIOL LDB ZIOAD,I GET ADDRESS OF LOCATION CPB Z.M1 IS IT THE TERMINATOR JMP ZISC,I YES RETURN TO CALLER LDA B,I NO - GET CONTENTS AND ZIOM MASK OFF OLD SELECT CODE IOR ZIOSC ADD IN NEW SELECT CODE STA B,I RESTORE IT ISZ ZIOAD MOVE TO NEXT ADDRESS JMP ZIOL DO IT SKP * CONFIGURATION SECTION * ZCONF CLC INTP,C TURN I/O SYSTEM OFF LIA S GET SELECT CODE AND OPTIONS STA USSC SAVE THEM AND Z.77 ELIMINATE OPTIONS LDB A CMB,INB CHECK THAT SC > 7 ADB Z.7 SSB ? JMP *+3 OK GO ON HLT 73B NO JMP ZCONF TRY AGAIN LDB IOIP INITIALIZE TEST I/O JSB ZISC INSTRUCTIONS LDA TBMXM GET TABLE FOR 21MX M LDB CPTO GET COMPUTER TYPE SSB,RSS HLT 71B WRONG COMPUTER TYPE BLF SLB LDA TBMXE GET 21MX E TABLE LDB TBMX DESTINATION MVW TBCNT CLA CLEAR S-REG. OTA S HLT 74B ENTER PROGRAM OPTIONS JMP ZSTEX GO TO EXEC CONTROL SECTION HED TEST TABLE TSTP DEF *+1 DEF TST00 DEF TST01 DEF TST02 DEF TST03 DEF TST04 DEF TST05 DEF TST06 DEF TST07 DEF TST10 DEF TST11 DEF TST12 DEF TST13 DEF TST14 DEF TST15 DEF TST16 DEF TST17 DEF TST20 DEF TST21 DEF TST22 DEF TST23 DEF TST24 DEF TST25 OCT -1 HED TST00-BASIC LOAD TEST * LOADS AND VERIFIES ENTIRE WCS RAM STORAGE USING A * RTN MICRO INSTRUCTION. * TST00 EQU * BASIC NOP LDB TMOD LOAD WCS WITH A RTN LDX RT MICROINSTRUCTION LDY RT+1 JSB WRITE LDX RT NOW READ IT LDY RT+1 BACK FOR JSB READ VERIFICATION JMP BASIC,I HED TST01-COMMAND STATE TEST * 1. LOADS AND VERIFIES WCS USING A RTN MICROINSTRUCTION * 2. PUTS WCS IN COMMAND STATE. * 3. DOES A SERIES OF OTA'S AND STOPS TO VERIFY THE RAM * ADDRESS=THE LAST OTA. * TST01 EQU * CMNDS NOP LDA TSTN CONVERT THE TEST JSB QO2AS,I # TO ASCII IN STA PERRC,I MESSAGE ECC LDB TMOD LOAD WCS WITH LDX RT A "RTN"