File: FPPTST.PA of Tape: Sources/Multi8/multi8-3
(Source file text)
/ FPPTST / / TEST FUER M & S FPP C8080 / ========================= / / Dieses Programm testet die Logik auf dem C8080 Board, und / ob der FPP IC AMD9512 in der Lage ist Daten zu lesen und zu / schreiben. / / Bedienung / --------- / / Standart Test Procedure: / Start bei ADDR 0200 mit 0000 im Switchregister. / Der Test laueft bis ein Fehler auftritt, oder / er von Hand angehalten wird, oder 4XXX im SW ein- / gestellt wird (HLT nach current subtest), oder Ctrl/C / an der Konsole eingegeben wird. Die Reaktion auf Ctrl/C / kann einige Sekunden dauern, dann wird der Test abgebrochen / und zum Monitor zurueckgesprungen. / Alle 20 sec etwa, wird auf der Konsole: / FPP TEST: PASS COMPLETE / ausgedruckt. / Einzeltests: / Die 10 Subtests koennen auch einzeln ausgefuehrt werden. / Bei ADR 0200 starten mit: SW = 4000 + Subtest-Nummer (1-12) / Das Testprogramm bleibt dann nach ausfuehrung dieses / Subtestees mit der Subtest Nummer im AC stehen, bei / ADR 0221. / / Fehler / ______ / / Alle erkannten Fehler fuehren zu einem Programm-Halt. Die / Fehlermeldung dazu steht hinter jedem dieser Fehler-Halts / im Programm-Listing. Soweit sinnvoll steht der Wert, der den / Fehlerhalt bewirkt hat (z.B. Inhalt des Shiftcounters etc.) / im AC oder im MQ Register beim Halt. Wird der Kommetar des / Fehler-Halts mit ///// eingeleitet, so enthaelt der AC / den fehlerhaften Wert, oder es ist ein solcher nicht angeb- / bar (SKP-Befehl funktioniert nicht z.B.). Wird / der Kommetar des Fehler-Halts mit ///** eingeleitet, steht / der fehlerhafte Wert im MQ Register. Die Tests # 3,4,7,10 und 11 / benoetigen Daten zum testen. Diese werden aus entsprechenden / Tabellen (Tab3, Tab4 usw.) entnommen. Autoindexregister 10 wird / dabei als Pointer verwendet. Durch 10 ADDR LOAD, EXAM kann man / also feststellen welcher Datensatz den Fehler erkennen laesst. / / Bevor weiter getestet wird, sollte ein erkannter Fehler be- / hoben sein, es muss jedoch nach jedem Fehler-Halt mit AC=0000 / weiter gemacht werden (also : CLEAR, CONT druecken). Der dadurch / erzeugte CAF, kann natuerlich weitere Fehler erzeugen. Nach be- / heben eines Fehlers koennen weiter vorne im Testprogramm Fehler- / Halts auftreten, von einem anderen Fehler, der bis dahin wegen des / ersten (behobenen) Fehlers nicht erkennbar war. / / Der Test ist jederzeit auf ADR 0200 wieder startbar. / / S.N. 26-JAN-80 / / / DEFINITIONEN: CSR=6140 / CLEAR SHIFT REGISTER SFR=6141 / SKP IF FPP IC READY SFE=6142 / SKIP IF FPP ERROR FLAG IST SET SNS=6143 / SKIP IF SHIFT REGISTER NOT SHIFTING SMO=6144 / AC0=1 -> INT. ENABLE / AC1=1 -> 64 BIT MODE SCA=6145 / SHIFT COUNTER TO AC6-11 / BITS 0-5 HAVE TO BE MASKED OUT !!!! SRA=6146 / SHIFT REGISTER TO AC NRM=6147 / NORMALIZE CONTENTS OF SHR / SHIFT LEFT UNTIL THE FIRST "1" BIT OCCURS / AT THE LEFT SERIAL OUTPUT, THE SHIFT COUNTER / HOLDS THE PERFORMED SHIFT COUNT ASR=6150 / AC TO SHIFT REGISTER, 0-> AC ASC=6151 / AC TO SHIFT COUNTER, 0-> AC / AC6-11 TO SHIFT COUNTER / AC0=1 -> SHIFT DOWN / AC1=1 -> SET IMPLIED BIT / TO BE USED ONLY IN CONJUNCTION WITH NEXT ONE!!! / AC2=1 -> LINEAR SHIFT (FILL WITH 0) SRF=6152 / SHIFT REGISTER TO FPP (32 OR 64 BITS, SEE SMO) FSR=6153 / FPP TO SHIFT REGISTER (32 OR 64 BITS, SEE SMO) SSR=6154 / STATUS OF FPP IC TO SHIFT REGISTER LCG=6155 / LOAD CMD BYTE INTO FPP IC & GO / THIS CMD WILL DESTROY THE LS 12 BITS / THE SHIFT REGISTER SUP=6156 / SHIFT UP 12 BITS (IN RING-MODE) SDW=6157 / SHIFT DOWN 12 BITS (IN RING-MODE) MQSAV=JMS MQLMQA / SAVE SOME VALUE IN MQ / INDEX REGISTER 10 USED AS POINTER TO VARIOUS DATA-TABLES *100 TSTCNT, 0 CNTR, 0 TEMP, 0 TESVAL, 0 MQLMQA, 0 MQL / AC --: MQ MQA / MQ --: AC UND MQ --: MQ JMP I MQLMQA CCCHK, 0 CLA CLL KIE / DISABLE INTERRUPT / TO PLAY SAVE! KSF / SOME REQUEST? JMP I CCCHK / NO: GO ON TESTING KRS / YES: LOOK IF CTRL/C AND (177 TAD (-3 SZA CLA / CTRL/C? JMP I CCCHK / NO: GO ON JMP I (7605 / YES: ABORT! *200 STRT, JMP TWTR TSTEND, 0 JMS CCCHK / LOOK IF CTRL/C AT KEYBOARD CLA CLL TAD I TSTEND / GET TEST # IAC / ANDVANCE POINTER TO NEXT TEST TAD (TETAB DCA TEMP LAS / LOOK IF WE SHOULD STOP! SMA CLA JMP TWTR+4 / NO: GO ON CLA CLL TAD I TSTEND / DISPLAY LAST TEST PERFORMED HLT / AND HALT TWTR, / RESTART WITH TEST INDICATED BY SR LAS AND (17 TAD (TETAB DCA TEMP TAD I TEMP DCA TEMP JMP I TEMP TETAB, TEST1 TEST1 TEST2 TEST3 TEST4 TEST5 TEST6 TEST7 TEST10 TEST11 TEST12 BIBRET TEST1 / NOEXISTANT TEST SELECT DIRECTED TO TEST1 TEST1 TEST1 TEST1 / TEST 1 / TESTET SHR -: AC (SRA) UND / AC -: SHR (ASR) / TEST1, CLA CLL DCA TSTCNT / PERFORM 4096 TIMES T1L1, TAD TSTCNT / GET PATTERN ASR / TO SHR SZA HLT ///// ASR FAILED TO CLEAR AC CLA CMA SRA / GET VALUE BACK MQSAV CIA TAD TSTCNT SZA HLT ///** SRA OR ASR FAILED! ///** (READ DATA =/ WRITE DATA) ///** IF MQ = 7777 SRAC FAILED TO SET C0 LINE ISZ TSTCNT /NEXT PATTERN JMP T1L1 JMS TSTEND 1 / TEST 1 DONE! / TEST 2 / TESTET CLEAR SHR (CSR) / TEST2, CLA CLL DCA TSTCNT / 4096 MAL CLA STL RTR SMO / SET 72 BIT MODE T2L1, CLA CLL CMA ASR / SET SOME BITS IN THE SR CLA CLL CMA / SET SOME BITS IN THE AC CSR / CLEAR SHR!!! SNA CLA HLT ///// CLSR CLEARED AC! TAD (-6 / TO READ 6 WORDS BACK DCA CNTR T2L2, SRA / READ BACK SZA HLT ///// CSR FAILED SUP / SHIFT 12 BITS UP ISZ CNTR JMP T2L2 ISZ TSTCNT JMP T2L1 JMS TSTEND 2 / TEST 2 DONE / TEST 3 / TESTET EINIGE SHIFTS IM 36 BIT MODE / TEST3, CLA CLL DCA TSTCNT / 4096 TIMES TO PERFORM CLA CLL SMO / SET 36 BIT MODE T3L1, TAD (TAB3-1 / TAB3 HOLDS SOME SHIFT EXAMPLES DCA 10 TAD (-31 / THERE ARE 25 DCA CNTR T3L2, CSR TAD I 10 / GET A PATTERN ASR / TO THE SHR TAD I 10 / PERFORM A SPECIFIC SHIFT ASC SZA HLT ///// ACSC FAILED TO CLEAR AC NOP AND I 0 / WAIT FOR SHIFTING IS COMPLETE SRA / READ BACK MQSAV CIA TAD I 10 / COMPARE AGAINST CORRECT DATA SZA HLT ///** SHIFT FAULT ISZ CNTR JMP T3L2 / NEXT PATTERN ISZ TSTCNT JMP T3L1 / NEXT TIME ALL THE PATTERNS JMS TSTEND 3 / TEST 3 DONE PAGE TAB3, / TABELLE FUER SHIFT BEISPIELE /INPUT PATTERN /SHIFT COUNT /RETURN PATTERN 2525 ; 1 ; 5252 1111 ; 2 ; 4444 0707 ; 3 ; 7070 0077 ; 6 ; 7700 0004 ; 10 ; 2000 0001 ; 13 ; 4000 / 5252 ; 4000 ; 2525 / 0 BIT SHIFT COUNT = 1 BIT SC! 4444 ; 4002 ; 1111 7070 ; 4003 ; 0707 1760 ; 4004 ; 0077 4000 ; 4011 ; 0004 4000 ; 4013 ; 0001 / 7777 ; 7031 ; 4000 7777 ; 7034 ; 0400 7777 ; 7037 ; 0040 0000 ; 7044 ; 0001 0000 ; 7077 ; 0000 / 0707 ; 1003 ; 7070 0007 ; 1011 ; 7000 7777 ; 1044 ; 0000 2525 ; 0044 ; 2525 7777 ; 4043 ; 7776 5252 ; 0043 ; 2525 0770 ; 4044 ; 0770 0070 ; 4041 ; 0700 TAB4, / ENTSPR. FUER 72 BIT MODE 1231 ; 0001 ; 2462 7070 ; 4003 ; 0707 / 7777 ; 0044 ; 0000 7777 ; 4044 ; 0000 / 7777 ; 7077 ; 1000 7777 ; 7075 ; 4000 / 7777 ; 1077 ; 0000 7777 ; 5077 ; 0000 6000 ; 0077 ; 0006 0006 ; 4077 ; 6000 PAGE / TEST 4 / TESTET SHIFT MIT 72 BIT MODE / TEST4, CLA CLL / 4096 TIMES DCA TSTCNT CLA STL RTR SMO / SET 72 BIT MODE SZA HLT ///// SMO FAILED TO CLEAR AC T4L1, TAD (TAB4-1 DCA 10 / TAB4 HOLDS SOME OTHER SHIFT EXAMPLES TAD (-11 / 9 OF THEM DCA CNTR T4L2, CSR TAD I 10 / GET A PATTERN ASR TAD I 10 / PERFORM THIS SHIFT ASC AND I 0 AND I 0 / WAIT UNTIL SHIFTING IS COMPLETE AND I 0 SRA / READ BACK MQSAV CIA TAD I 10 / COMPARE AGAINST EXPECTED VALUE SZA HLT ///** SHIFT FAULT ISZ CNTR JMP T4L2 / NEXT PATTERN ISZ TSTCNT JMP T4L1 / ONCE MORE ALL PATTERNS JMS TSTEND 4 / TEST 4 DONE / TEST 5 / TESTET SRUP,SRDW,SKSR / TEST5, CLA CLL DCA TSTCNT / 4096 MAL T5L1, CSR CLA STL RAR ASR / EXACTLY ONE BIT TO SR! CLA CMA SDW / SHIFT DOWN SNA CLA / ALSO DELAY!!! HLT ///// SRDW CLEARED AC SDW / ONCE MORE 12 BITS NOP TAD (30 ASC / BRING IT BACK! SNS / SHOULD NOT SKIP! SKP HLT ///// SNS SKIPPED WHILE SR BUSY!! NOP SNS / NOW WE SHOULD HAVE FINISHED HLT ///// SNS FAILED TO SKIP SRA / LOOK IF OUR BIT IS BACK AGAIN RAL CLL / AND ONLY THAT!! SZA HLT ///// SRDW FAILED (PICKED UP SOME BITS) SNL HLT ///// SRDW FAILED (LOST THE ONE-BIT) SDW / REMEMBER THE CONTENTS OF THE SR IS STILL THE SAME CLA CLL CMA / ALSO DELAY!! SUP SNA CLA HLT ///// SRUP CLEARED AC! SRA RAL CLL SZA HLT ///// SUP FAILED (PICKED UP SOME BITS) SNL HLT ///// SUP FAILED (LOST THE ONE-BIT) ISZ TSTCNT / 4096 TIMES DONE ? JMP T5L1 / NO! JMS TSTEND / YES 5 / THIS WAS TEST 5! PAGE / TEST 6 / TESTET NRM + SCA / TEST6, CLA CLL DCA TSTCNT / 4096 MAL T6L1, CLA STL RTR / SET 72 BIT MODE SMO CSR TAD (5252 ASR CLA CLL CMA NRM SNA HLT ///// NRM CLEARED AC SNS JMP .-1 SCA / GET RESULT MQSAV AND (77 / ONLY 6 BITS ARE VALID TAD (-74 / SHOULD INDICATE 60 BIT SHIFT SZA HLT ///** NRM OR SCA FAILED (WE GOT FAULTY SHIFT COUNT) ///** IF THE MQ EQUALS 7777 SCA FAILED TO SET C0-LINE SUP NOP SRA MQSAV TAD (-5252 SZA HLT ///// NRM FAILED (PICKED UP SOME BITS) ///// (OR LOST SOME!) TAD (-4 DCA CNTR T6L2, SUP NOP SRA / SHOULD READ ZERO! SZA HLT ///// NRM FAILED (PICKED UP SOME BITS) ISZ CNTR JMP T6L2 CLA CLL / SET 36 BIT MODE SMO CSR CLA CLL IAC ASR / EXACTLY LSB SET! NRM SNS JMP .-1 SCA / SHOULD READ 35 BIT SHIFT MQSAV AND (77 / TAKE ONLY LOWER BYTE TAD (-43 SZA HLT ///** NRM OR SCA FAILED (FAULTY SHIFT COUNT) TAD (-3 DCA CNTR TAD (1001 ASC / SHIFT OUT THE SINGLE "1 ! T6L3, SUP NOP SRA / SHOULD READ ZERO SZA HLT ///// NRM FAILED (PICKED UP SOME BITS) ISZ CNTR JMP T6L3 ISZ TSTCNT JMP T6L1 JMS TSTEND / TEST 6 DONE 6 PAGE / TEST 7 / TESTET SKSR, SRFP IM 72/64 BIT MODE / TEST7, CLA CLL CML RAR / 2048 MAL DCA TSTCNT T7L1, TAD (-10 / 8 PATTERNS DCA CNTR TAD (TAB7-1 / IN TABLE 7 DCA 10 CLA STL RTR / 72 BIT MODE SMO T7L2, TAD (-6 / 6 WORDS PER PATTERN DCA LCNT T7L3, / LOAD FPP THROUGH SR SUP TAD I 10 ASR ISZ LCNT JMP T7L3 TAD (5010 / POSITION LSB (64BIT) ASC / CORRECT FOR FPP IC CLA CLL CMA / ALSO DELAY! SRF / SR TO FPP NOW SNA CLA HLT ///// SRFP CLEARED AC SNS JMP .-1 CSR / CLEAR RUBBISH CLA CLL CMA FSR / GET BACK! SNA CLA HLT ///// FPSR CLEARED AC! TAD (-6 DCA LCNT TAD 10 / RESET POINTER TO TESTVALUES TAD (-6 DCA 10 SNS JMP .-1 TAD (24 / POSITION MSW BACK , TO ASC / GET OUT FIRST AND I 0 / DELAY T7L4, / READ BACK! SRA MQSAV CIA TAD I 10 SZA HLT ///** FSR OR SRF FAILED SUP ISZ LCNT JMP T7L4 ISZ CNTR JMP T7L2 ISZ TSTCNT JMP T7L1 JMS TSTEND 7 LCNT, 0 PAGE TAB7, / TABELLE FUER EINIGE TEST WERTE FUER SRF,FSR / DIE LETZTEN 8 BIT MUESSEN NULL SEIN, DA NUR / DIE ERSTEN 64 BIT IN DEN FPP GELADEN WERDEN ZBLOCK 6 0000 ; 1111 ; 2222 ; 4444 ; 1234 ; 0000 1234 ; 1234 ; 1234 ; 1234 ; 1234 ; 1000 5670 ; 1234 ; 5670 ; 1234 ; 5670 ; 2400 7117 ; 7070 ; 0707 ; 5252 ; 2525 ; 5000 3312 ; 6226 ; 4114 ; 6262 ; 1414 ; 7400 5504 ; 7654 ; 3333 ; 6666 ; 1276 ; 7000 4213 ; 3223 ; 1341 ; 7474 ; 4312 ; 5400 TAB10, / TABELLE FUER 36 BIT MODE / TEST SRF,FSR / DIE LETZTEN 4 BIT MUESSEN NULL SEIN, / DA DER FPP IC NUR 32 BIT LAEDT UND SCHREIBT ZBLOCK 3 1234 ; 5670 ; 1220 2372 ; 5225 ; 7120 6226 ; 7777 ; 1100 2335 ; 6543 ; 7240 7170 ; 1717 ; 5760 1111 ; 2222 ; 4440 3333 ; 6666 ; 5540 / TEST 10 / TESTET SRFP UND FPSR IM 36/32 BIT MODE / TEST10, CLA CLL CML RAR / 2048 MAL DCA TSTCNT T10L1, TAD (-10 / 8 PATTERNS DCA CNTR TAD (TAB10-1 / IN TABLE 10 DCA 10 CLA CLL / 36 BIT MODE SMO T10L2, TAD (-3 / 3 WORDS PER PATTERN DCA LCNT T10L3, / LOAD FPP IC THROUGH SR SUP TAD I 10 ASR ISZ LCNT JMP T10L3 TAD (5004 / POSITION LSB (32 BIT) ASC / CORRECT FOR FPP IC SRF / SR TO FPP NOW SNS JMP .-1 CSR / CLEAR RUBBISH FSR / GET BACK! TAD (-3 DCA LCNT TAD 10 / RESET POINTER TO TESTVALUES TAD (-3 DCA 10 SNS JMP .-1 TAD (20 / POSITION MSW BACK , TO ASC / GET OUT FIRST AND I 0 / DELAY T10L4, / READ BACK LOOP SRA MQSAV CIA TAD I 10 / COMPARE! SZA HLT ///** FSR OR SRF FAILED SUP ISZ LCNT JMP T10L4 ISZ CNTR JMP T10L2 ISZ TSTCNT JMP T10L1 JMS TSTEND 10 PAGE / TEST 11 / TESTS LCG, SRFP, SSR AND SMO TO CLEAR READY FLAG / TEST11, CLA STL IAC RTR DCA TSTCNT T11L1, TAD (TAB11-1 DCA 10 TAD (-4 DCA CNTR / JE 4 TESTS MIT 72 UND MIT 36 BIT MODE T11L2, CLA STL RTR SMO / 64 BIT MODE JMS L72 / LOAD 72 BIT OPR JMS L72 TAD I 10 LCG / AND COMMAND TAD I 10 JMS WAIT / WARTE! SFR / FERTIG? HLT ///// SFR FAILED TO SKIP ///// OR LCG LOADS WRONG CMD TAD I 10 / GET STATUS AND (16 / CHECK IF ANY SNA CLA / ERROR BIT IS SET JMP T11W1 / NO / YES - CHECK : SFE / SFE TO SKP ON ERROR HLT ///// SFE FAILED TO SKP ON ERR T11W1, CLA CLL SMO / CLEAR READY FLAG SFR SKP HLT ///// SMO FAILED TO CLEAR RDY FLG SSR / GET STATUS SNS JMP .-1 SRA MQSAV CIA TAD I 10 SZA HLT ///** SSR FAILED TO READ STATUS CORRECT ///** OR LCG INITIATE WRONG CMD CLA CLL SMO / SET 36 BIT MODE JMS L36 / LOAD 36 BIT OPR JMS L36 TAD I 10 LCG / AND LOAD CMD TAD I 10 JMS WAIT SFR / SHOULD SKP NOW HLT ///// SFR FAILED TO SKP ON IC READY ///// OR IC NOT READY ///// OR LCG INITIATES WRONG CMD TAD I 10 / GET STATUS AND (16 / MASK FOR ERROR BITS SNA CLA / ANY ERROR BIT SET? JMP T11W2 / YES CHECK: SFE / ERROR FLG SET? HLT ///// SFE FAILED TO SKP ON ERR T11W2, CLA CLL SMO / CHECK IF SMO CLR'S RDY FLAG SFR SKP HLT ///// SMO FAILED TO CLR RDY FLG SSR / GET STATUS SNS JMP .-1 SRA MQSAV CIA TAD I 10 / COMPARE AGAINST EXPECTED STATUS SZA HLT ///** SSR FAILED TO READ STATUS CORRECT ///** OR LCG INITATES WRONG CMD ISZ CNTR / ALL PATTERNS ? JMP T11L2 / NO / YES ISZ TSTCNT JMP T11L1 JMS TSTEND 11 PAGE / DEFINITIONEN FUER TABELLE 11 SADD=1 SSUB=2 SMUL=3 SDIV=4 CHSS=5 DADD=51 DSUB=52 DMUL=53 DDIV=54 CHSD=55 / MINUS=100 ZERO=40 DIVI=10 UNDR=4 OVER=2 TAB11, / TABELLE FUER DEN TEST EINIGER / GRUND OPERATIONEN MIT FPP IC / ABWECHSELND WERDEN 72 UND 36 BIT OPERATIONEN GETESTET / DATEN FORMAT: / ZWEI OPERANDEN MIT 6 BZW 3 WORTEN / DANN: COMMAND,DELAY (IN SCHRITTEN VON 5US),ERWARTETER STATUS / DER STATUS KOMMT ZWEIMAL(!!!!!!) WEGEN EVTL. SKP ON ERROR! / / 0 -- CHANGE SIGN GIBT ZERO BIT ZBLOCK 14 CHSD ; 2 ; ZERO ; ZERO / 0 -- CHANGE SIGN GIBT ZERO BIT 0 ; 7777 ; 7777 ; 0 ; 7777 ; 7777 CHSS ; 1 ; ZERO ; ZERO / 1 + (-2) GIBT MINUS BIT 2000 ; 0 ; 0 ; 0 ; 0 ; 0 6001 ; 0 ; 0 ; 0 ; 0 ; 0 DADD ; 200 ; MINUS ; MINUS / 3 - 3 GIBT ZERO 2014 ; 0 ; 0 2014 ; 0 ; 0 SSUB ; 4 ; ZERO ; ZERO / 1 / 0 GIBT DIVIDE OVERFLOW 2000 ; 0 ; 0 ; 0 ; 0 ; 0 0000 ; 7777 ; 0 ; 0 ; 0 ; 0 DDIV ; 500 ; DIVI ; DIVI / -2 * -3 GIBT STATUS 0! 6010 ; 0 ; 0 6014 ; 0 ; 0 SMUL ; 50 ; 0 ; 0 / 2 * -3 GIBT MINUS 2001 ; 0 ; 0 ; 0 ; 0 ; 0 6001 ; 0 ; 0 ; 0 ; 0 ; 0 DMUL ; 300 ; MINUS ; MINUS / MAX/MIN GIBT OVERFLOW 3777 ; 7777 ; 7777 10 ; 0 ; 0 SDIV ; 200 ; OVER ; OVER PAGE / 3 SUBROUTINES FOR TEST 11 L36, 0 / SUBR. TO LOAD SINGLE PRECISION / FP WORD INTO FPP IC CLA CLL SMO / SET 36 BIT MODE TAD (-3 DCA LC / 3 WORTE L36L1, SUP TAD I 10 ASR ISZ LC JMP L36L1 TAD (5004 ASC / POSITION LSB OF IC'S FORMAT CORRECT SRF SNS JMP .-1 JMP I L36 LC, 0 / COUNTER ! L72, 0 / SUBR. TO LOAD DOUBLE PRECISION WORD CLA STL RTR SMO TAD (-6 DCA LC L72L1, SUP TAD I 10 ASR ISZ LC JMP L72L1 TAD (5010 ASC / POSITION LSB OF IC'S FORMAT CORRECT! NOP SRF SNS JMP .-1 JMP I L72 WAIT, 0 / WAIT <AC>*5 US CIA WLOP, IAC NOP SZA JMP WLOP JMP I WAIT / / TEST 12 / TESTET INTERRUPT ON FPP IC READY / TEST12, CLA CLL DCA TSTCNT / 4096 MAL T12L1, CAF NOP ; NOP SRQ SKP HLT ///// UNKNOWN INTERRUPT ///// OR CAF FAILED TO CLEAR FPP INT TAD (CHSS LCG / CHANGE SIGN SINGLE USES ONLY SOME US! CLA STL RAR SMO / ENABLE INTERRUPT OF FPP AND I 0 / DELAY AND I 0 / DELAY SRQ HLT ///// NO INTERRUPT ON FPP IC READY CLA STL RAR SMO / CLEAR IC' S READY FLAG SRQ SKP HLT ///// SMO FAILED TO CLEAR FLAG ///// OR UNKNOWN INTERRUPT ISZ TSTCNT JMP T12L1 JMS TSTEND 12 BIBRET, / SIGNALS THAT ALL TESTS ARE PERFORMED / ONCE / THEN RESTARTS TEST1! CLA CLL TAD (PMSG-1 DCA 10 PLP, CLA CLL TAD I 10 SNA JMP .+5 / END OF MESSAGE REACHED! TLS TSF JMP .-1 JMP PLP TCF / TO NOT CONFLICT WITH OUR INTRRUPT TEST! JMS TSTEND 0 / MEANS : GO TO TEST 1 AGAIN! PMSG, / END OF PASS MESSAGE 207 "F ; "P ; "P ; " ; "T ; "E ; "S ; "T ": ; " "P ; "A ; "S ; "S ; " "C ; "O ; "M ; "P ; "L ; "E ; "T ; "E 215 ; 212 ; 0