Previous Page | Single Page | Next Page |
* NAME: LDR-APM DOC. 70180005000 REV. E PAGE 21
0974 00100 0 01 00067 JMP R1K+14 +23 GO READ NEXT WORD. 0975 00101 0 02 00711 LDA ='141314 (BL)+24 OOPS, BLOCK LENGTH OVERFLOW. 0976 00102 0 10 00272 JST TYER +25 GRIPE TO USER. BAD BLOCK. 0977 00103 0 01 00052 JMP R1K+1 +26 ON RESTART, TRY AGAIN FROM THE TOP. 0978 * 0979 00104 0 000000 DAC ** R1K+27 HERE TO READ AND TRANSLATE ONE CHARACTER. 0980 00105 0415 72 ALS 6 +28 POSITION PREVIOUS CHARACTERS. 0981 00106 0 04 03675 STA T+2 +29 SAVE THEM AWAY WHILE WE GET NEXT ONE. 0982 00107 0 10 00157 JST R1K+70 +30 READ RAW CODE FROM TAPE. 0983 00110 0 07 00710 SUB ='000223 +31 IS IT AN 'X-OFF' CHARACTER.Q 0984 00111 101040 SNZ +32 SKIP IF NOT. 0985 00112 0 01 00151 JMP R1K+64 +33 YES. END OF BLOCK. GO CHECK CHECKSUM. 0986 00113 0 06 00710 ADD ='000223 +34 NO. RESTORE CODE. 0987 00114 0406 71 ARR 7 +35 SHIFT CODE BIT 2 TO A-REGISTER SIGN BIT. 0988 00115 100400 SPL +36 IF BIT 2 IS NOT ZERO, 0989 00116 0 01 00125 JMP R1K+44 +37 GO TRANSLATE IT. 0990 00117 0406 77 ARR 1 +38 OTHERWISE. MOVE CODE BIT 1 T0 SIGN. 0991 00120 100400 SPL +39 IF IT IS A ONE, 0992 00121 0 05 00707 ERA ='120000 +40 FLIP IT AND BIT 3. 0993 00122 0405 70 ARS 8 +41 REPOSITION CHARACTER CORRECTLY. 0994 00123 0 06 03675 ADD T+2 R1K+42 COMBINE WITH PREVIOUS CHARACTERS. 0995 00124 -0 01 00104 JMP* R1K+27 +43 RETURN TO CALLER OF 'R1K+27'. 0996 * 0997 00125 0415 76 ALS 2 R1K+44 HERE FOR FUDGING FUNNY CODES. 0998 00126 0 06 00706 ADD ='000034 +45 MOVE HIGH BIT OVER TO BIT 11. 0999 00127 0 03 00705 ANA ='177740 +46 MASK OUT BITS 12...16. 1000 00130 0 04 03676 STA T+3 +47 SAVE HIGH ORDER INFO. 1001 00131 0404 65 LGR 11 +48 NOW WORK ON LOW ORDER FIVE. 1002 00132 0 07 00704 SUB ='000037 +49 IF CODE IS 177, 1003 00133 101040 SNZ +50 1004 00134 0 02 00703 LDA ='000020 +51 THEN MAKE IT 023. 1005 00135 0 06 00702 ADD ='000001 +52 OR IF CODF IS 176, 1006 00136 101040 SNZ +53 1007 00137 0 02 00701 LDA ='000017 +54 THEN MAKE IT 021. 1008 00140 0 06 00702 ADD ='000001 +55 OR IF CODE IS 175, 1009 00141 101040 SNZ +56 1010 00142 0 02 00700 LDA ='000011 +57 THEN MAKE IT 012. 1011 00143 0 06 00702 ADD ='000001 +58 OR IF CODE IS 174, 1012 00144 101040 SNZ +59 1013 00145 0 02 00677 LDA ='000005 +60 THEN MAXE IT 005. 1014 00146 0 06 03676 ADD T+3 +61 RESTORE HIGH-ORDER AGAIN. 1015 00147 0 03 00676 ANA ='000077 +62 MASK DOWN TO SIX BITS. 1016 00150 0 01 00123 JMP R1K+42 +63 GO COMBINE WITH OTHER CHARACTERS 1017 * 1018 00151 0 02 03674 LDA T+1 R1K+64 HERE WHEN BLOCK DONE. 1019 00152 101040 SNZ +65 CHECK CHECKSUM. 1020 00153 -0 01 00051 JMP* R1K +66 OK, RETURN TO CALLER OF 'RIK'. 1021 00154 0 02 00675 LDA ='141713 (CK)+67 UHOH, CHECKSUM ERROR. 1022 00155 0 10 00272 JST TYER +68 GRIPE TO USER AND HALT. 1023 00156 0 01 00052 JMP R1K+1 +69 ON RESTART, TRY AGAIN FROM THE TOP.
Previous Page | Single Page | Next Page |