ASMB,A,B,L,T ORG 105B OCT 6264 HED CONSTANTS AND VARIABLES ORG 126B OCT 113003 SERIAL NUMBER ORG 130B JMP BEGIN * SFLAG OCT 000000 SEQPT OCT 0 SEQUN DEF SLIST TSTPT DEF LSTST SAVSW OCT 0 PTCNT OCT 0 SUP * * * NBASE OCT 000060 PERFT DEF *+1 ASC 8,ALL TESTS OKAY./ REPER DEF *+1 OCT 000000 ASC 9, ERRORS DETECTED./ * * NOESS OCT 000040 ANESS OCT 051440 ADESS DEF ROPER+4 AROPR DEF ROPER BELLS OCT 000010 BCFLG OCT 000000 BAD CHAR REPORT FLAG RFCT1 DEC 81 RFCT2 DEC 41 COFL1 DEF ACFL1 COFL2 DEF ACFL2 COFL4 DEF ACFL4 DAFIL DEF ADAFL FLCMS DEF AFLCM CRLFD DEF ACRLF STERM DEF * DEF STM01 DEF STM02 DEF STM03 DEF STM04 DEF STM05 DEF STM06 RDCON OCT 050050 * SAVEA OCT 0 SAVEC OCT 0 ASCNO OCT 0 ASCNU OCT 0 AHEAD DEF MHEAD ACT01 DEF CMES1 ACT02 DEF CMES2 ACT03 DEF CMES3 ACT04 DEF CMES4 ACT05 DEF CMES5 * * HPCNT OCT 0 HPMAX DEC -50 HPMIN DEC -30 AHPHD DEF HOPHD TIMEC DEC +10 STCNT OCT 0 PACRD OCT 0 ADCRD DEF CDSTG MREAD OCT 0 AIOTS DEF IOTST AREAD DEF READR ADMAR DEF DMARD ABCRP DEF BCRPT MBLNO DEC 3 BLTIM DEC 200 BLCNT OCT 0 ATEMP OCT 0 ADTIM DEF TIMES AOLT0 DEF OLT00 * MSK01 OCT 170000 MSK02 OCT 030000 MSK03 OCT 007777 MSK04 OCT 160000 MSK05 OCT 000077 ALONE OCT 177777 NZERO DEC 0 MTEN4 DEC -10000 N0128 DEC -128 N0011 DEC -11 N0010 DEC -10 N0004 DEC -4 N0003 DEC -3 N0001 DEC -1 P0001 DEC 1 P0002 DEC 2 P0003 DEC 3 P0004 DEC 4 P0005 DEC 5 P0006 DEC 6 P0007 DEC 7 P0008 DEC 8 P0010 DEC 10 P0011 DEC 11 * C2100 OCT 070000 BIAS1 OCT 140000 BIAS2 OCT 150000 CNU16 DEC 160 CNU15 DEC 200 CNU00 DEC 098 CNUMX DEC 120 CNUMB OCT 0 HIWRD OCT 0 * IEC01 OCT 000001 IEC02 OCT 000002 IEC03 OCT 000003 IEC04 OCT 000004 IEC05 OCT 000005 IEC06 OCT 000006 IEC07 OCT 000007 IEC08 OCT 000010 IEC09 OCT 000011 IEC10 OCT 000012 IEC11 OCT 000013 IEC12 OCT 000014 IEC13 OCT 000015 IEC14 OCT 000016 STS00 OCT 000000 STS01 OCT 010000 STS02 OCT 020000 STS03 OCT 030000 STS04 OCT 040000 STS05 OCT 050000 STS06 OCT 060000 STS07 OCT 070000 STS10 OCT 100000 STS11 OCT 110000 STS12 OCT 120000 STS13 OCT 130000 STS14 OCT 140000 STS15 OCT 150000 STS16 OCT 160000 STS17 OCT 170000 * * * ***** TIME ADJUSTMENT CODE * * TTM11 DEF *+1,I TTM10 DEF *+1,I TTM09 DEF *+1,I TTM08 DEF *+1,I TTM07 DEF *+1,I TTM06 DEF *+1,I TTM05 DEF *+1,I TTM04 DEF *+1,I TTM03 DEF 0B * * OLT10 DEF *+1,I OLT09 DEF *+1,I OLT08 DEF *+1,I OLT07 DEF *+1,I OLT06 DEF *+1,I OLT05 DEF *+1,I OLT04 DEF *+1,I OLT03 DEF *+1,I OLT02 DEF *+1,I OLT01 DEF *+1,I OLT00 DEF *+1,I DEF 0B * * ERC01 OCT 000002 ERC02 OCT 000003 ERC03 OCT 000001 * ERC80 OCT 100004 * ERC90 OCT 100001 ERC91 OCT 100002 ERC92 OCT 100003 ERC93 OCT 100005 ERC99 OCT 100006 ERC70 OCT 000007 ERC95 OCT 000010 ERC96 OCT 000006 ERC97 OCT 000005 ERC98 OCT 000004 * DMACC EQU 6B DMAAC EQU 2B DMACW OCT 0 * ECCNT OCT 0 DMACT OCT 0 CYCNT OCT 0 CRCNT OCT 0 SCRW1 OCT 0 BUFLN DEC 128 EXCNT OCT 0 LWPTR OCT 0 * * * RWADD OCT 0 IWADD OCT 0 IWPTR OCT 0 RWPTR OCT 0 FLCNT OCT 0 BWCNT OCT 0 BSCNT OCT 0 BCCNT OCT 0 HSCNT OCT 0 READT OCT 0 ECODE OCT 0 RFCNT OCT 0 CCMSK ASC 1,00 BCC53 OCT 020053 BCC55 OCT 020055 BCC60 OCT 020060 BCC61 OCT 020061 REFWD OCT 0 ERRWD OCT 0 CCNT1 OCT 0 CCNT2 OCT 0 BCOAD DEF *+4 BCMAD DEF *+1 BCM01 ASC 1,00 ASC 1, ASC 15, ASC 7, / E7 DEF *+1 ASC 1,EC * * * PNTR1 OCT 0 PNTR2 OCT 0 PNTR9 OCT 0 * CNTR1 OCT 0 CNTR8 OCT 0 CNTR9 OCT 0 SCVAL ABS *-* IRQIN ISZ IRQFL IRQFL OCT 0 * * * * * MWHLT OCT 102000 * * CONSTANTS BTM00 OCT 000001 BTM01 OCT 000002 BTM02 OCT 000004 BTM03 OCT 000010 BTM04 OCT 000020 BTM05 OCT 000040 BTM06 OCT 000100 BTM07 OCT 000200 BTM08 OCT 000400 BTM09 OCT 001000 BTM10 OCT 002000 BTM11 OCT 004000 BTM12 OCT 010000 BTM13 OCT 020000 BTM14 OCT 040000 BTM15 OCT 100000 BM2.4 OCT 000024 * INTSW OCT 0 ERCNT OCT 0 .0770 OCT 000770 MNINE DEC -9 SC OCT 0 * TIMAX DEC +220 TIMIN DEC +150 * * LSTST DEF * DEF TEST1 DEF TEST2 DEF TEST3 DEF TEST4 DEF TEST5 DEF TEST6 DEF TEST7 DEF TEST8 DEF TEST9 * HED GET SELECT CODE AND OPTIONS BEGIN LDB N0010 STB SAVEC SAVEC=-10 NXTCD LDB OLT00 LDA 115B AND MSK01 A=COMPUTER TYPE CPA C2100 2100? JMP *+2 YES ADB SAVEC B=OLT00+SAVEC LDA AOLT0 ADA SAVEC A=AOLT0+SAVEC STB 0B,I ISZ SAVEC JMP NXTCD ** SET THE TIMING CONSTANT LDA 115B SSA IS IT 21MX ? JMP L21MX YES. ADA BIAS1 SSA JMP L2116 ADA BIAS2 SSA JMP L2115 L2100 LDA CNU00 STA CNUMB JMP COLET L21MX LDA CNUMX SET UP TIMING STA CNUMB FOR 21MX. JMP COLET L2115 LDA CNU15 STA CNUMB JMP COLET L2116 LDA CNU16 STA CNUMB COLET LDA ADCRD RESTORE POINTER STA PACRD CLB STB INTSW JSB LOAD LOAD SELECT CODE HLT 01B CLB STB INTSW AND MSK05 STA DMACW STORE FOR DMA STA SCVAL DOINS LDB PACRD,I B=BASE NO. SZB,RSS B=0? JMP GTOPT YES, GET OPTIONS ADA 1B ADD BASE TO S.C. ISZ PACRD INC. POINTER LDB PACRD,I B=-NO. INSTR. STB STCNT STCNT=-NO. INSTR. ISZ PACRD INC. POINTER LDB PACRD,I B=ADDRESS OF INSTR. STA 1B,I STORE INSTR. ISZ STCNT INC. STCNT, =0? JMP *-4 NO, NEXT INSTR. ISZ PACRD YES, INCR. POINT. JMP DOINS DO INSTR. GTOPT JSB LOAD HLT 02B HED DIAGNOSTIC TEST STRUCTURE BEGTS LDA INTSW GET SWITCH AND BTM09 MASK ALL BUT BIT 9 SZA JMP TBLST JMP TO TROUBLESHOOT * *** PERFORM ALL RELEVANT TESTS * PERFR CLB STB ERCNT INITIALIZE ERROR COUNTER JSB TEST PERFORM TEST 1 DEF TEST1 DEF TEST1 JSB TEST PERFORM TEST 2 DEF TEST2 DEF TEST2 JSB TEST PERFORM TEST 3 DEF TEST3 DEF TEST3 LDA INTSW AND BTM03 MASK ALL BUT BIT 3 SZA,RSS JMP SK4.5 JSB TEST PERFORM TEST 4 DEF TEST4 DEF TEST4 JSB TEST PERFORM TEST 5 DEF TEST5 DEF TEST5 SK4.5 JSB TEST PERFORM TEST 6 DEF TEST6 DEF TEST6 LDA INTSW AND BTM02 MASK ALL BUT BIT 2 SZA,RSS DO TEST 7? JMP SK7 NO JSB TEST PERFORM TEST 7 DEF TEST7 DEF TEST7 SK7 JSB TEST PERFORM TEST 8 DEF TEST8 DEF TEST8 LDB BTM04 JSB FINAL CHECK IF FINAL TEST LDA INTSW AND BTM04 MASK ALL BUT BIT 4 SZA,RSS JMP SK9 JSB TEST PERFORM TEST 9 DEF TEST9 DEF TEST9 SK9 JSB LOAD HLT 05B JMP BEGTS RETURN TO BEGINNING * *** PERFORM SELECTED TESTS * TBLST LDA INTSW SLA SINGLE TEST OR SEQUENCE? JMP SQTST SEQUENCE JSB VALID SINGLE. INPUT VALID? JSB LOAD NO, RELOAD INPUT HLT 06B,C INPUT ERROR HALT JMP *-3 JSB GTTST GET TEST AND PERFORM JMP SK9 RETURN FOR NEW OPTIONS SQTST LDA INTSW SAVE INTSW STA SAVSW AND BTM12 BIT 12 SZA,RSS PERFORM LAST SEQUENCE? JMP GTSEQ NO, GET NEW SEQUENCE LDA SFLAG YES, LOAD SFLAG SZA DOES LAST SEQUENCE EXIST? JMP EXCTS YES, EXECUTE THE SEQUENCE JMP GTOPT NO, GET OPTIONS GTSEQ LDA SEQUN A=FIRST SEQ. LOCATION STA SEQPT STORE IN POINTER LDA INTSW JMP *+3 LDTST JSB LOAD LOAD NEXT TEST IN SEQUENCE HLT 17B JSB VALID INPUT VALID? JSB LOAD NO, RELOAD INPUT. HLT 17B,C JMP *-3 STA SEQPT,I STORE IN SEQUENCE LIST SZA,RSS ADD ANOTHER TEST TO SEQ.? JMP *+3 NO ISZ SEQPT INCREMENT POINTER JMP LDTST NEXT INPUT EXCTS CLA STA PTCNT RESET SEQ. TEST NUMBER INA STA SFLAG SIGNAL THAT SEQ. EXISTS LDA SEQUN STA SEQPT RESET SEQ. POINTER DOTST LDA SEQPT,I A=TEST NUMBER SZA,RSS A=0? (END OF STRING?) JMP RPINT YES, REPLACE SWITCH LDB SAVSW STB INTSW JSB GTTST GET TEST AND PERFORM ISZ PTCNT INCREMENT SEQ. TEST NUMBER ISZ SEQPT INCREMENT SEQ. POINTER LDA PTCNT A=SEQ. TEST NUMBER LDB SAVSW LOAD B= SWITCH SSB HALT TO SHOW TEST NUMBER? HLT 76B YES, A=SEQ. TEST NUMBER JMP DOTST NEXT TEST RPINT LDA SAVSW REPLACE SWITCH BEFORE LEAVING STA INTSW JMP SK9 RETURN FOR NEW OPTIONS * * SUBROUTINE VALID * ENTER:A=INPUT WORD * RETURN:A=TEST NUMBER IF VALID, SKIP NEXT 2 INSTR. * RELOAD IF INVALID. * VALID NOP SZA,RSS JMP VAL01 AND .0770 MASK ALL BUT TEST NUMBER ARS,ARS RIGHT ARS JUSTIFY LDB 0B TRANSFER TO B SZB,RSS ILLEGAL IF B=0 JMP VALID,I ILLEGAL, LOAD AGAIN ADB N0010 ADD -10 SSB,RSS LEGAL IF B NEGATIVE JMP VALID,I ILLEGAL, LOAD AGAIN VAL01 LDB VALID LEGAL, SKIP RELOAD ADB P0003 JMP 1B,I RETURN * *SUBROUTINE GTTST *ENTER:A=TEST NUMBER GTTST NOP ADA TSTPT ADD TEST POINTER LDB 0B,I STB TSNUM STORE THE RIGHT ARGUMENTS STB TSNUM+1 JSB TEST PERFORM PROPER TEST TSNUM OCT 0 OCT 0 JMP GTTST,I * * * * SUBROUTINE TEST TEST NOP LDB TEST,I RESTORE ARGUMENT ISZ TEST STB TEST,I DONE JSB REPRT REPORT MESSAGE JSB REPRT REPORT MESSAGE LDA TEST,I IOR BTM15 JSB 0B,I PEFORM TEST,A=ERR.+MESS. CODE STA SAVEC SAVE CODE ISZ TEST,I INCREMENT POINTER LDB TEST,I SSA ERROR MESSAGE? JMP ERROR YES ADB 0B ADD TO POINTER STB TEST,I STORE AS NEW POINTER JSB REPRT JMP RQUES ERROR ADA BTM15 CHANGE SIGN BIT ADB 0B ADD TO POINTER STB TEST,I STORE AS NEW POINTER JSB REPRT LDA INTSW AND BTM14 SZA SUPRESS ERROR HALT? JMP RQUES YES JSB LOAD NO HLT 03B JMP SKRTS RQUES LDA INTSW AND BTM13 ISOLATE REPEAT BIT SZA,RSS WAS REPEAT? JMP *+3 NO SKIP HALT JSB LOAD HLT 04B SKRTS LDA INTSW AND BTM13 SZA,RSS REPEAT LAST TEST? JMP NXTST NO LDA SAVEC YES, LOAD CODE SSA,RSS ERROR IF NEGATIVE JMP STTST NO ERROR , SKIP DEC OF ERCNT CCA ADA ERCNT STA ERCNT ERCNT DECREMENTED STTST CCA DECREMENT TEST ADA TEST STA TEST JMP TEST+1 REPEAT TEST NXTST ISZ TEST LDB CRLFD SEPARATE TESTS BY CR-LF CLA,CLE JSB 127B,I JMP TEST,I * REPRT NOP LDA TEST,I LDB 0B,I CLA CLE JSB 127B,I OUTPUT MESSAGE ISZ TEST,I INCREMENT POINTER LDA BCFLG SZA,RSS BAD CHAR REPORT? JMP *+4 NO CLA STA BCFLG RESET THE FLAG JSB ABCRP,I REPORT BAD CHARACTERS JMP REPRT,I * LOAD NOP LDA LOAD,I STA LHLT LDA INTSW LDB INTSW LHLT NOP CPA INTSW JMP *+3 STA INTSW JMP LEXR CPB INTSW JMP *+3 STB INTSW JMP LEXR LDA LHLT CPA LOAD,I JMP *+2 STA INTSW LEXR ISZ LOAD LDA INTSW LEAVE WITH LOADED WORD JMP LOAD,I * * *FINAL REPORT SUBROUTINE FOR TESTS 6 AND 7. * *ENTER WITH B=BIT MASK. *FOR TEST 6 B=BM2.4, FOR TEST 7 B=BTM04. FINAL NOP LDA INTSW AND 1B MASK SWITCH SZA ANY MORE TESTS? JMP FINAL,I YES LDA ERCNT NO, A=ERCNT SZA ANY ERRORS? JMP *+3 YES, SET UP MESSAGE LDB PERFT NO, SET UP MESSAGE JMP *+9 CPA P0001 PLURAL OR SINGULAR IN MESS? JMP *+2 SINGULAR JMP *+3 PLURAL LDB NOESS STB REPER+5 ADA NBASE MAKE INTO ASCII STA REPER,I STORE STRING LDB REPER SET UP MESSAGE ADDR. CLA CLE JSB 127B,I OUTPUT MESSAGE LDB ANESS REPLACE "S" STB REPER+5 JMP FINAL,I * HED INDIVIDUAL TEST SUBROUTINES * *TESTS: * TST01 NOP HLT 22B JSB AIOTS,I CHECK INTERFACE SZA,RSS SKIP IF ERROR JMP TST01,I RETURN ADA BTM15 PLACE ERROR BIT ISZ ERCNT INC. ERROR COUNTER NOP JMP TST01,I * * TST02 NOP LDA RFCT1 STA RFCNT LDA COFL2 STA RWADD LDA AREAD STA MREAD JSB TSTCD JMP TST02,I * * TST03 NOP LDA RFCT2 STA RFCNT LDA COFL1 STA RWADD LDA AREAD STA MREAD JSB TSTCD JMP TST03,I * * TST04 NOP LDA RFCT2 STA RFCNT LDA COFL1 STA RWADD LDA AREAD STA MREAD JSB TSTCD JMP TST04,I * * TST05 NOP LDA RFCT1 STA RFCNT LDA COFL4 STA RWADD LDA AREAD STA MREAD JSB TSTCD JMP TST05,I * * TST06 NOP LDA RFCT1 STA RFCNT LDA COFL2 STA RWADD LDA ADMAR STA MREAD JSB TSTCD JMP TST06,I * * TST07 NOP HPLB1 CLA INITIALIZE HPCNT=0 STA HPCNT HLT 10B LDA DAFIL SET UP FOR READ STA IWADD LDA RDCON STA READT NEXTC JSB AREAD,I READ CARD NOP SSA SKIP IF NO STATUS ERROR JMP STERT TEST STATUS ERROR LDB BTM02 LDA TIMEC TIMEC=NO. MILLISEC. WAIT OTB04 OTB *-* SEND REJECT COMMAND JSB 121B,I LEAVE FOR 1 MILLISEC. ISZ HPCNT INCREMENT HOPPER COUNT LIA02 LIA *-* LOAD STATUS AND MSK01 MASK ALL BUT STATUS CPA STS00 HOPPER FULL? (0000 STATUS) JMP MNTST YES LDA HPCNT NO ADA HPMAX SSA TOO MANY CARDS? JMP NEXTC NO ISZ ERCNT YES, REPORT LDA ERC91 A=100002 JMP HPOUT OUTPUT COUNT STERT CPA ERC91 JMP MNTST JSB UTILR JMP HPLB1 MNTST LDA HPCNT ADA HPMIN SSA HPCNT BIG ENOUGH? JMP *+3 NO CLA A=000000 JMP HPOUT ISZ ERCNT LDA ERC90 A=100001 HPOUT STA SAVEA LDB AHPHD LDA HPCNT STA ASCNO JSB NOOUT LDA SAVEA JMP TST07,I * * TST08 NOP LDA RFCT1 STA RFCNT LDA COFL2 STA RWADD LDA DAFIL STA IWADD LDA RDCON STA READT CLA STA PKFLG INITIALIZE PICK FAIL FLAG T8.01 HLT 20B HALT TO MAKE CRD RDR READY T8.02 JSB AREAD,I READ CARD SSA UTILITY ERROR? JMP T8.03 YES CPA ERC02 NO, EOD? JMP T8.04 YES CPA ERC03 EOD? JMP T8.04 YES JMP T8.02 NO, READ CARD T8.03 CPA ERC80 UTIL. ERR., PICK FAIL? JMP *+2 YES JMP *+3 NO CLB,INB SET PICK FAIL FLAG STB PKFLG JSB UTILR REPORT ERROR JMP T8.01 T8.04 LDA PKFLG TEST FLAG SZA,RSS WAS THERE A PICK FAIL? JMP *+3 YES CLA JMP TST08,I LDA ERC90 JMP TST08,I * PKFLG OCT 0 * TSTCD NOP LDA DAFIL STA IWADD LDA RDCON STA READT FIXRD HLT 20B HALT TO FIX READER. CARDR JSB MREAD,I READ CARD, A=CODE STA SAVEA SAVE A SSA JMP SKRDT * ** MULTIPLY BY CNUMB, DIVIDE BY 10000 * * ENTER:B=TIMING NUMBER,T; CNUMB IS SET * RETURN:B=T*CNUMB/10000 NOP CLA MULTIPLY FIRST STA HIWRD CLE LDA CNUMB CMA,INA STA SAVEC SAVEC=-CNUMB CLA A=0 MLOOP ADA 1B A=A+T SEZ EXTEND? ISZ HIWRD YES, INCR. HIWRD NOP CLE ISZ SAVEC INCR. SAVEC JMP MLOOP * A=T*CNUMB, SAVEC=0 DIVIDE SECOND LDB HIWRD B-A DLOOP ADB ALONE CLE ADA MTEN4 A=A-10000 SEZ EXTEND? INB YES CLE SSB B<0? JMP *+3 YES ISZ SAVEC JMP DLOOP LDB SAVEC NOP * LDA INTSW AND BTM01 SZA JMP SKRDT LDA TIMAX CMA ADA 1B SSA,RSS >TIMAX? JMP BDRDT YES LDA TIMIN NO CMA,INA ADA 1B SSA,RSS