CTI NOP LDA SAP LOAD PTR TO INSTR LOC'S STA SAPS SAVE CTI1 LDA SAPS,I LOAD INSTR PTR LDB CTI,I LOAD 1ST INSTR STB A,I STORE INLINE ISZ CTI BUMP PTRS LDA SAPS INA STA SAPS SAVE CPA EAP TEST FOR LAST LOC JMP CTI,I YES, EXIT JMP CTI1 NO, CONTINUE SAPS OCT 0 SAP DEF *+1 DEF ILI0 DEF ILI1 DEF ILI2 DEF ILI3 DEF ILI4 DEF ILI5 DEF ILI6 DEF ILI7 DEF ILI10 DEF ILI11 DEF ILI12 DEF ILI13 EAP DEF * SKP XINT NOP STA ASV SAVE A LDA OPTP1 INITIALIZE PTR STA TPSV TO TST CASES CLA CLEAR STA YFLG Y FLAG LDA BEXP STA YEXP LDY YEXP LOAD Y NOP DANGER DO NOT REMOVE LDA ASV RESTORE A JMP XINT,I EXIT SPC 2 YINT NOP STA ASV SAVE A LDA OPTP1 INITIALIZE PTR STA TPSV TO TST CASES CCA SET STA YFLG Y FLAG LDA BEXP STA XEXP LDX XEXP LOAD X NOP DANGER DO NOT REMOVE LDA ASV RESTORE A JMP YINT,I EXIT HED EXECUTIVE CONTROL ORG 2000B ZSTEX CLC INTP,C TURN I/O SYSTEM OFF JSB MSGC,I DO CRLF DEF ZRTLF LDA HDMP GET INTRODUCTORY MESSAGE STA *+2 JSB MSGC,I OUT PUT IT NOP 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 LDA ZSINA RETRIEVE PREVIOUS RUN LDB ZSINB HLT 75B WAIT FOR USER INPUT NOP NOP NOP ZEXC STA ZUINA SAVE STB ZUINB USER STA ZSINA INPUT STB ZSINB PROGRAM LDB ZSW9 CHECK IF SW9 IS DOWN JSB SWRT,I JMP ZUSR NO GO AND WAIT CCA SET TEST NUMBER STA TSTN =-1 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 ZEXRT LDA TSTN DISPLAY TEST NUMBER IF HALTED LDB ZSW15 CHECK FOR HALT AT END OF TEST JSB SWRT,I 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 WITH OUT 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 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 IF ERROR LDA A,I LDA A,I IF SO 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 CLA,CLE JSB FMTR,I ZMSG0 LDA ZMSG,I CONVERT HALT CODE LDB A,I FROM ASCII STRING 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 ISZ ZMSG,I ADJUST RETURN POINTERS ISZ ZMSG ISZ ZMSG ISZ ZMSG LDA ZSAVA RESTORE A AND B REGISTERS LDB ZSAVB JMP ZMSG,I * * * * * * SKP 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 PUT IT IN STRING CLA DO A CRLF JSB SLOP,I CLA,CLE INDICATE START OF FORMAT LDB ZTSTF JSB FMTR,I JMP ZCFTN,I RETURN * * * * ZSAVA NOP ZSAVB NOP ZEOLC NOP ZTSTA NOP ZSINA NOP ZSINB NOP ZUINA NOP ZUINB NOP ZBTMP NOP Z.2 OCT 2 Z.7 OCT 7 Z.10 OCT 10 Z.60 OCT 60 Z.77 OCT 77 Z.177 OCT 177 Z.M1 DEC -1 Z.M2 DEC -2 ZD100 DEC -100 ZIOM OCT 177700 ZSW15 OCT 100000 ZSW14 OCT 40000 ZSW13 OCT 20000 ZSW12 OCT 10000 ZS812 OCT 010400 ZSW9 OCT 1000 Z.100 OCT 100 Z.200 OCT 200 Z.300 OCT 300 ZH2 OCT 102000 ZH6 OCT 106000 ZH3 OCT 103000 ZH7 OCT 107000 ZCFTT DEC -1 ZTSTF DEF *+1 ASC 3,TEST ZTSTN ASC 2,XX// ZRTLF ASC 1,// ZPSC ASC 6,PASS XXXXXX/ ZA.E OCT 105 HED GENERAL ROUTINES * * 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 STA ZN2AO SAVE A REGISTER LIA SW GET SWITCH REG. AND B MASK OUT BIT SZA,RSS IS IT UP? ISZ ZSWRT NO LDA ZN2AO RESTORE A REGISTER LIB SW LET B = SWITCH REGISTER JMP ZSWRT,I RETURN TO CALLER * * * * 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 * * * SKP * PUT JSB INSTRUCTION IN TRAP CELL * ZTCJI NOP LDB ZJSBI GET INSTRUCTION STB ZIOSC,I PUT IT IN TRAP CELL LDA ZTCJI,I GET LOCATION STA 3B SAVE IT FOR JSB INSTRUCTION ISZ ZTCJI ADJUST RETURN JMP ZTCJI,I RETURN TO CALLER * ZJSBI JSB 3B,I JSB INSTRUCTION * * * 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 * ZIOSC NOP ZIOAD NOP * * * * ZCEND EQU * HED EIG DIAGNOSTIC - SUBROUTINES ORG ZCEND ISTS NOP CLA INITIALIZE STA BPFLG BYPASS FLAG STA MFLG MEMORY CHECK FLAG STA ERFLG ERROR FLAG ILI0 NOP INSTR LOADS ERROR CODE STA ECSV LDA ST1 SET UP STA STS TEST/SUBTEST NO CLB B= 0'S STB BEXP ILI1 NOP INSTR CALLS EXECUTION ROUTINE CCB B= 1'S STB BEXP ILI2 NOP INSTR CALLS EXECUTION ROUTINE ILI3 NOP INSTR LOADS ERROR CODE STA ECSV LDA ST2 SET UP STA STS TEST/SUBTEST NO CLB B= 0'S STB BEXP ILI4 NOP INSTR CALLS EXECUTION ROUTINE CCB B= 1'S STB BEXP ILI5 NOP INSTR CALLS EXECUTION ROUTINE ILI6 NOP INSTR LOADS ERROR CODE STA ECSV LDA ST3 SET UP STA STS TEST/SUBTEST NO CLA A= 0'S STA AEXP ILI7 NOP INSTR CALLS EXECUTION ROUTINE CCA A= 1'S STA AEXP ILI10 NOP INSTR CALLS EXECUTION ROUTINE ILI11 NOP INSTR LOADS ERROR CODE STA ECSV LDA ST4 SET UP STA STS TEST/SUBTEST NO CLA A= 0'S STA AEXP ILI12 NOP INSTR CALLS EXECUTION ROUTINE CCA A= 1'S STA AEXP ILI13 NOP INSTR CALLS EXECUTION ROUTINE JMP ISTS,I HED EIG (INDEX) DIAGNOSTIC - TEST 0 TST00 EQU * NOP JSB CTI LDA EC11 LOAD ERROR CODE IG1 JSB EXE11 EXECUTION ROUTINE JSB EXE11 EXECUTION ROUTINE LDA EC12 LOAD ERROR CODE JSB EXE12 EXECUTION ROUTINE JSB EXE12 EXECUTION ROUTINE LDA EC13 LOAD ERROR CODE JSB EXE13 EXECUTION ROUTINE JSB EXE13 EXECUTION ROUTINE LDA EC14 LOAD ERROR CODE JSB EXE14 EXECUTION ROUTINE JSB EXE14 EXECUTION ROUTINE JSB ISTS EXECUTE INITIALIZED SUBROUTINE JMP TST00,I EXIT SKP EXE11 NOP CCA INITIALIZE STA BPFLG BYPASS FLAG JSB XINT INITIALIZE PTRS/FLGS EX11 LDA TPSV,I LOAD 1ST TST CASE STA AEXP SAVE STA XEXP LDB BEXP LOAD B CAX X _ A STX XACT M _ X NOP DANGER DO NOT REMOVE JSB RCK01 CHECK RESULTS JMP EX11 LOOP JMP EXE11,I EXIT SPC 2 EXE12 NOP JSB YINT INITIALIZE PTRS/FLGS EX12 LDA TPSV,I LOAD TST CASE STA AEXP SAVE STA YEXP LDB BEXP LOAD B CAY Y _ A STY YACT M _ Y NOP DANGER DO NOT REMOVE JSB RCK01 CHECK RESULTS JMP EX12 LOOP JMP EXE12,I EXIT SKP EXE13 NOP JSB XINT INITIALIZE PTRS/FLGS EX13 LDB TPSV,I LOAD TST CASE STB BEXP SAVE STB XEXP LDA AEXP LOAD A CBX X _ B STX XACT M _ X NOP DANGER DO NOT REMOVE JSB RCK01 CHECK RESULTS JMP EX13 LOOP JMP EXE13,I EXIT SPC 2 EXE14 NOP JSB YINT INITIALIZE PTRS/FLGS EX14 LDB TPSV,I LOAD TST CASE STB BEXP SAVE STB YEXP LDA AEXP LOAD A CBY Y _ B STY YACT M _ Y NOP DANGER DO NOT REMOVE JSB RCK01 CHECK RESULTS JMP EX14 LOOP JMP EXE14,I EXIT HED EIG (INDEX) DIAGNOSTIC - TEST 1 TST01 EQU * NOP JSB CTI LDA EC21 LOAD ERROR CODE IG2 JSB EXE21 EXECUTION ROUTINE JSB EXE21 EXECUTION ROUTINE LDA EC22 LOAD ERROR CODE JSB EXE22 EXECUTION ROUTINE JSB EXE22 EXECUTION ROUTINE LDA EC23 LOAD ERROR CODE JSB EXE23 EXECUTION ROUTINE JSB EXE23 EXECUTION ROUTINE LDA EC24 LOAD ERROR CODE JSB EXE24 EXECUTION ROUTINE JSB EXE24 EXECUTION ROUTINE JSB ISTS EXECUTE INITIALIZED SUBROUTINE JMP TST01,I EXIT SKP EXE21 NOP CCA INITIALIZE STA BPFLG BYPASS FLAG JSB XINT INITIALIZE PTRS/FLGS EX21 LDA TPSV,I LOAD TST CASE STA AEXP STA XEXP SAVE LDB BEXP LOAD B CLA LDX XEXP X _ M CXA A _ X STX XACT M _ X NOP DANGER DO NOT REMOVE JSB RCK01 CHECK RESULTS JMP EX21 LOOP JMP EXE21,I EXIT SPC 2 EXE22 NOP JSB YINT INITIALIZE PTRS/FLGS EX22 LDA TPSV,I LOAD TST CASE STA AEXP STA YEXP SAVE LDB BEXP LOAD B CLA LDY YEXP Y _ M CYA A _ Y STY YACT M _ Y NOP DANGER DO NOT REMOVE JSB RCK01 CHECK RESULTS JMP EX22 LOOP JMP EXE22,I EXIT SKP EXE23 NOP JSB XINT INITIALIZE PTRS/FLGS EX23 LDB TPSV,I STB BEXP SAVE STB XEXP LDA AEXP LOAD A CLB LDX XEXP X _ M CXB B _ X STX XACT M _ X NOP DANGER DO NOT REMOVE JSB RCK01 CHECK RESULTS JMP EX23 LOOP JMP EXE23,I EXIT SPC 2 EXE24 NOP JSB YINT EX24 LDB TPSV,I STB BEXP SAVE STB YEXP LDA AEXP LOAD A CLB LDY YEXP Y _ M CYB B _ Y STY YACT M _ Y NOP DANGER DO NOT REMOVE JSB RCK01 CHECK RESULTS JMP EX24 LOOP JMP EXE24,I EXIT HED EIG (INDEX) DIAGNOSTIC - TEST 2 TST02 EQU * NOP JSB CTI LDA EC31 LOAD ERROR CODE IG3 JSB EXE31 EXECUTION ROUTINE JSB EXE31 EXECUTION ROUTINE LDA EC32 LOAD ERROR CODE JSB EXE32 EXECUTION ROUTINE JSB EXE32 EXECUTION ROUTINE LDA EC33 LOAD ERROR CODE JSB EXE33 EXECUTION ROUTINE JSB EXE33 EXECUTION ROUTINE LDA EC34 LOAD ERROR CODE JSB EXE34 EXECUTION ROUTINE JSB EXE34 EXECUTION ROUTINE JSB ISTS EXECUTE INITIALIZED SUBROUTINE JMP TST02,I EXIT SKP EXE31 NOP JSB XINT INITIALIZE PTRS/FLGS EX31 LDA TPSV,I LOAD TST CASE STA AEXP SAVE CMA STA XEXP LDB BEXP LOAD B LDX AEXP X _ M XAX A _ X X _ A STX XACT M _ X NOP DANGER DO NOT REMOVE JSB RCK01 CHECK RESULTS JMP EX31 LOOP JMP EXE31,I EXIT SPC 2 EXE32 NOP JSB YINT INITIALIZE PTRS/FLGS EX32 LDA TPSV,I LOAD TST CASE STA AEXP SAVE CMA STA YEXP LDB BEXP LOAD B LDY AEXP Y _ M XAY A _ Y Y _ A STY YACT M _ Y NOP DANGER DO NOT REMOVE JSB RCK01 CHECK RESULTS JMP EX32 LOOP JMP EXE32,I EXIT SKP EXE33 NOP JSB XINT INITIALIZE PTRS/FLGS EX33 LDB TPSV,I LOAD TST CASE STB BEXP SAVE CMB STB XEXP LDA AEXP LOAD A LDX BEXP X _ M XBX B _ X X _ B STX XACT M _ X NOP DANGER DO NOT REMOVE JSB RCK01 CHECK RESULTS JMP EX33 LOOP JMP EXE33,I EXIT SPC 2 EXE34 NOP JSB YINT INITIALIZE PTRS/FLGS EX34 LDB TPSV,I LOAD TST CASE STB BEXP SAVE CMB STB YEXP LDA AEXP LOAD A LDY BEXP Y _ M XBY B _ Y Y _ B STY YACT M _ Y NOP DANGER DO NOT REMOVE JSB RCK01 CHECK RESULTS JMP EX34 LOOP JMP EXE34,I EXIT HED EIG (INDEX) DIAGNOSTIC - TEST 3 TST03 EQU * NOP JSB CTI LDA EC41 LOAD ERROR CODE IG4 JSB EXE41 EXECUTION ROUTINE JSB EXE41 EXECUTION ROUTINE LDA EC42 LOAD ERROR CODE JSB EXE42 EXECUTION ROUTINE JSB EXE42 EXECUTION ROUTINE LDA EC43 LOAD ERROR CODE JSB EXE43 EXECUTION ROUTINE JSB EXE43 EXECUTION ROUTINE LDA EC44 LOAD ERROR CODE JSB EXE44 EXECUTION ROUTINE JSB EXE44 EXECUTION ROUTINE JSB ISTS EXECUTE INITIALIZED SUBROUTINE JMP TST03,I EXIT SKP EXE41 NOP JSB XINT INITIALIZE PTRS/FLGS EX41 LDA TPSV,I LOAD TST CASE STA AEXP SAVE INA STA XEXP CLA STA ECSV1 SAVE ERROR CODE LDB BEXP LOAD B LDA AEXP RELOAD A LDX AEXP X _ M ISX X _ X+1 JSB SKP1 CHECK SKP CONDITION JSB SKP11 CHECK SKP CONDITION STX XACT M _ X NOP DANGER DO NOT REMOVE JSB RSEI REPORT SKP ERROR IF PRESENT JSB RCK01 CHECK RESULTS JMP EX41 LOOP JMP EXE41,I EXIT SPC 2 EXE42 NOP JSB YINT INITIALIZE PTRS/FLGS EX42 LDA TPSV,I LOAD TST CASE STA AEXP SAVE INA STA YEXP LDA B2 STA ECSV1 SAVE ERROR CODE LDB BEXP LOAD B LDA AEXP RELOAD A LDY AEXP Y _ M ISY Y _ Y+1 JSB SKP2 CHECK SKP CONDITION JSB SKP21 CHECK SKP CONDITION STY YACT M _ X NOP DANGER DO NOT REMOVE JSB RSEI REPORT SKP ERROR IF PRESENT JSB RCK01 CHECK RESULTS JMP EX42 LOOP JMP EXE42,I EXIT SKP EXE43 NOP JSB XINT INITIALIZE PTRS/FLGS EX43 LDA TPSV,I LOAD TST CASE STA AEXP SAVE ADA DM1 STA XEXP LDA B4 STA ECSV1 SAVE ERROR CODE LDB BEXP LOAD B LDA AEXP RELOAD A LDX AEXP X _ M DSX X _ X-1 JSB SKP1 CHECK SKP CONDITION JSB SKP11 CHECK SKP CONDITION STX XACT M _ X NOP DANGER DO NOT REMOVE JSB RSEI REPORT ERROR IF PRESENT JSB RCK01 CHECK RESULTS JMP EX43 LOOP JMP EXE43,I EXIT SPC 2 EXE44 NOP JSB YINT INITIALIZE PTRS/FLGS EX44 LDA TPSV,I LOAD TST CASE STA AEXP SAVE ADA DM1 STA YEXP LDA B6 STA ECSV1 SAVE ERROR CODE LDB BEXP LOAD B LDA AEXP RELOAD A LDY AEXP Y _ M DSY Y _ Y-1 JSB SKP2 CHECK SKP CONDITION JSB SKP21 CHECK SKP CONDITION STY YACT M _ Y NOP DANGER DO NOT REMOVE JSB RSEI REPORT ERROR IF PRESENT JSB RCK01 CHECK RESULTS JMP EX44 LOOP JMP EXE44,I EXIT HED EIG (INDEX) DIAGNOSTIC - TEST 4 TST04 EQU * NOP JSB CTI LDA EC51 LOAD ERROR CODE IG5 JSB EXE51 EXECUTION ROUTINE JSB EXE51 EXECUTION ROUTINE LDA EC52 LOAD ERROR CODE JSB EXE52 EXECUTION ROUTINE JSB EXE52 EXECUTION ROUTINE LDA EC53 LOAD ERROR CODE JSB EXE53 EXECUTION ROUTINE JSB EXE53 EXECUTION ROUTINE LDA EC54 LOAD ERROR CODE JSB EXE54 EXECUTION ROUTINE JSB EXE54 EXECUTION ROUTINE JSB ISTS EXECUTE INITIALIZED SUBROUTINE JMP TST04,I EXIT SKP EXE51 NOP JSB XINT INITIALIZE PTRS/FLGS EX51 LDA TPSV,I LOAD TST CASE STA AEXP SAVE CLE CLEAR E CLO O ADA OP1 STA XEXP JSB EOSV LDB BEXP LOAD B LDA AEXP RELOAD A LDX AEXP X _ M ADX OP1 X _ X + M STX XACT M _ X NOP DANGER DO NOT REMOVE JSB EOCK CHECK E/O RESULTS JSB RCK01 CHECK RESULTS JMP EX51 LOOP JMP EXE51,I EXIT SPC 2 EXE52 NOP JSB YINT INITIALIZE PTRS/FLGS EX52 LDA TPSV,I LOAD TST CASE STA AEXP SAVE CLE CLEAR E CLO O ADA OP1 STA YEXP JSB EOSV LDB BEXP LOAD B LDA AEXP RELOAD A LDY AEXP Y _ M ADY OP1 Y _ Y + M STY YACT M _ Y NOP DANGER DO NOT REMOVE JSB EOCK CHECK E/O RESULTS JSB RCK01 CHECK RESULTS JMP EX52 LOOP JMP EXE52,I EXIT SKP