Previous File | Multiple Pages | Next File |
*SUBR MSGINT/INTERR/ASR/ B.2. 11-11-70 PAGE 1
0001 *SUBR MSGINT/INTERR/ASR/ B.2. 11-11-70 0002 *SUBR MSGINT/INTERR/ASR REV B.1. 7.11.70 0003 *SUBR MSGINT/INTERR REV A 28 OKT 70 PL 0004 *SUBROUTINE MSGINT & INTERR.16 OKT 70 PL. 0005 * 0006 * PURPOSE:TYPE EITHER A MESSAGE OR TWO 0007 * ASCII CHARACTERS,OR RECEIVE TWO ASCII 0008 * CHARACTERS ON A INTERRUPT BASE. 0009 * 0010 * USE: LOAD THE ACCUMULATOR WITH TWO 0011 * ASCII CHARACTERS OR THE ADDRESS OF A 0012 * MESSAGE AND CALL"MSGINT". 0013 * 0014 * MSGINT WILL PREPARE THE ASR FOR OUTPUT 0015 * IT STORES THE MESSAGE ADDRESS OR ASCII 0016 * CHARACTERS, CLEARS THE REFERENE CEL 0017 * AND JUMPS BACK TO THE MAIN PROGRAM. 0018 * 0019 * THE MAIN PROGRAM WILL CONTINUE BUT WILL 0020 * BE INTERRUPTED BY "INTERR" FROM TIME TO 0021 * TIME.TO SEND A CHARACTER TO THE ASR 0022 * BUFFER UNTIL A WORD "@@" IS FOUND.THE 0023 * ASR IS THEN PREPARED FOR INPUT AGAIN. 0024 * 0025 * ASR INPUT WILL ALSO CAUSE INTERRUPTS. 0026 * ANY TWO CHARACTERS RECEIVED ARE COMPARED 0027 * WITH THE REFERENCE CELL OR CHECKED FOR 0028 * ASTERISK + ONE CHARACTER. 0029 * CHARACTERS RECEIVED ARE STORED IN THE 0030 * "REC" CEL ('77). 0031 * IF ILLEGAL CHARACTERS ARE TYPED,A "?" 0032 * IS TYPED. 0033 * IN ALL CASES THE CONTROL WILL NOW GO 0034 * BACK TO THE MAIN PROGRAM. 0035 * 0036 * ANY OTHER INTERRUPT ON THE PIL00 LINE 0037 * WILL GIVE CONTROL TO A SUBPROGRAM "INTR" 0038 * 0039 REL 0040 SUBR MSGINT 0041 SUBR INTERR 0042 SUBR ASR 0043 * 0044 00000 0 000000 MSGI DAC ** PREPARE ASR FOR 0045 00001 101400 SMI CHECK FOR 0046 00002 0 01 00005 JMP *+3 ADDRESS OR 0047 00003 0 04 00205 STA CHAR ASCII. 0048 00004 0 02 00207 LDA CHA! 0049 00005 0 04 00212 STA MNR OUTPUT. 0050 00006 34 0104 SKS '104
*SUBR MSGINT/INTERR/ASR/ B.2. 11-11-70 PAGE 2
0051 00007 0 01 00006 JMP *-1 0052 00010 140040 CRA 0053 00011 0 04 00204 STA CHNR 0054 00012 0 04 00074 STA REF CLEAR REFERENCE CELL 0055 00013 14 0104 OCP '104 0056 00014 0 02 00213 LDA OUTP 0057 00015 0 04 00036 STA ASR 0058 00016 0 02 00226 LDA =-5 0059 00017 0 04 00211 STA LINE 0060 00020 0 02 00225 LDA =-2 0061 00021 0 04 00210 STA HEAD 0062 00022 -0 01 00000 JMP* MSGI 0063 * 0064 * ---------------------- 0065 * INTERRUPT ROUTINE. 0066 * ---------------------- 0067 00023 0 000000 INTE DAC ** 0068 00024 0 04 00203 STA SAVA 0069 00025 34 0404 SKS '404 0070 00026 0 01 00036 JMP ASR 0071 00027 54 1500 INA '1500 0072 00030 0 01 00027 JMP *-1 0073 00031 0 03 00224 ANA ='4000 0074 00032 101040 SNZ 0075 00033 0 01 00200 JMP RET 0076 00034 140040 CRA 0077 00035 0 10 00000 CALL INTR 0078 00036 0 00 00000 ASR PZE JUMP INP OR JUMP OUT. 0079 00037 0 02 00204 INP LDA CHNR 1ST OR 2ND CHAR? 0080 00040 100040 SZE 0081 00041 0 01 00073 JMP 2ND 0082 00042 54 1004 INA '1004 READ 1ST CHAR. 0083 00043 000000 HLT 0084 00044 0 04 00077 STA REC SAVE 1ST CHAR. 0085 00045 0 05 00223 ERA ='252 CHECK FOR ASTERISK * 0086 00046 101040 SNZ 0087 00047 0 01 00067 JMP AST1 0088 00050 0 02 00074 LDA REF 0089 00051 0406 70 ARR 8 0090 00052 0 03 00222 ANA ='377 1ST REFERENCE CHAR. 0091 00053 0 07 00077 SUB REC CHAR. RECEIVED EQUAL? 0092 00054 101040 SNZ 0093 00055 0 01 00071 JMP REC0 RECOGNIZED. 0094 00056 0 02 00221 NREC LDA =0 ILLEGAL CHARACTER. 0095 00057 0 04 00204 STA CHNR 0096 00060 14 0104 OCP '104 ASR IN OUTPUTMODE. 0097 00061 0 02 00220 LDA =A ? 0098 00062 74 0004 OTA 4 TYPE A "?" 0099 00063 0 01 00062 JMP *-1 0100 00064 34 0104 SKS '104 WAIT TILL READY.
*SUBR MSGINT/INTERR/ASR/ B.2. 11-11-70 PAGE 3
0101 00065 0 01 00064 JMP *-1 0102 00066 0 01 00171 JMP SCOD 0103 00067 0 02 00221 AST1 LDA =0 CLEAR "REC" CELL 0104 00070 0 04 00077 STA REC 0105 00071 0 12 00204 REC0 IRS CHNR 1ST CHAR.RECOGNI2ED. 0106 00072 0 01 00200 JMP RET RETURN TO MAIN PROGR. 0107 00073 0 02 00077 2ND LDA REC LOAD 1ST CHARACTER. 0108 00074 0406 70 ARR 8 AND SWOP 0109 00075 54 0004 INA 4 READ ALSO 2ND CHAR. 0110 00076 000000 HLT 0111 00077 0 04 00077 STA REC SAVE THE TWO CHAR. 0112 00100 0 07 00074 SUB REF REFERENCE 0113 00101 101040 SNZ 0114 00102 0 01 00110 JMP COMP SET CHAR. COMPLETE. 0115 00103 0 02 00077 LDA REC 0116 00104 0406 70 ARR 8 0117 00105 0 03 00222 ANA ='377 1ST CHARACTER 0118 00106 100040 SZE 0119 00107 0 01 00056 JMP NREC IT WAS NOT AN "*" 0120 00110 0 02 00221 COMP LDA =0 0121 00111 0 04 00204 STA CHNR RESET CHARACTERNR. 0122 00112 0 10 00000 CALL LETTER 0123 00113 0 01 00200 JMP RET RETURN TO MAIN PROGRAM 0124 00114 0 02 00210 OUT LDA HEAD 0125 00115 101040 SNZ 0126 00116 0 01 00132 JMP OK 0127 00117 0 06 00217 ADD =1 0128 00120 100040 SZE 0129 00121 0 01 00124 JMP *+3 0130 00122 0 02 00216 LDA ='212 0131 00123 0 01 00125 JMP *+2 0132 00124 0 02 00215 LDA ='215 0133 00125 0 12 00210 IRS HEAD 0134 00126 101000 NOP 0135 00127 74 0004 OTA 4 0136 00130 000000 HLT 0137 00131 0 01 00200 JMP RET 0138 00132 0 02 00204 OK LDA CHNR 0139 00133 100040 SZE 0140 00134 0 01 00151 JMP CH2 0141 00135 -0 02 00212 LDA* MNR 0142 00136 0 04 00205 STA CHAR 0143 00137 0 07 00206 SUB EOM CHECK END OF MESSAGE. 0144 00140 101040 SNZ 0145 00141 0 01 00171 JMP SCOD 0146 00142 0 02 00205 LDA CHAR 0147 00143 0406 70 ARR 8 0148 00144 74 0004 OTA '4 0149 00145 000000 HLT 0150 00146 0 04 00205 STA CHAR
*SUBR MSGINT/INTERR/ASR/ B.2. 11-11-70 PAGE 4
0151 00147 0 12 00204 IRS CHNR 0152 00150 0 01 00200 JMP RET 0153 00151 0 02 00205 CH2 LDA CHAR 0154 00152 0406 70 ARR 8 0155 00153 74 0004 OTA '4 0156 00154 000000 HLT 0157 00155 0 12 00212 IRS MNR 0158 00156 140040 CRA 0159 00157 0 04 00204 STA CHNR 0160 00160 0 01 00200 JMP RET 0161 00161 0 12 00211 MORE IRS LINE 0162 00162 0 01 00165 JMP *+3 SOME LINEFEEDS AND 0163 00163 0 02 00215 LDA ='215 1 RETURN. 0164 00164 0 01 00166 JMP *+2 0165 00165 0 02 00216 LDA ='212 0166 00166 74 0004 OTA 4 0167 00167 000000 HLT 0168 00170 0 01 00200 JMP RET 0169 00171 0 02 00211 SCOD LDA LINE 0170 00172 100040 SZE 0171 00173 0 01 00161 JMP MORE 0172 00174 0 02 00214 LDA INPT ASR OFF AND RESET 0173 00175 0 04 00036 STA ASR 0174 00176 14 0004 OCP 4 0175 00177 101000 NOP 0176 00200 0 02 00203 RET LDA SAVA RESTORE ACCU. 0177 00201 000401 ENB 0178 00202 -0 01 00023 JMP* INTE -----EXIT-----> 0179 00203 000000 SAVA BSZ 1 0180 00204 000000 CHNR BSZ 1 0181 00205 000000 CHAR BSZ 1 0182 00206 140300 EOM BCI 1,@@ END OF MESSAGE 0183 00207 0 000205 CHA! DAC CHAR 0184 00210 000000 HEAD BSZ 1 HEAD LINES 0185 00211 000000 LINE BSZ 1 NUMBER OF LINEFEEDS. 0186 00212 000000 MNR BSZ 1 0187 000074 REF EQU '74 REFERENCE CELL. 0188 000077 REC EQU '77 CHARACTERS RECEIVED. 0189 00213 0 01 00114 OUTP JMP OUT 0190 00214 0 01 00037 INPT JMP INP 0191 00215 000215 END 00216 000212 00217 000001 00220 120240 00221 000000 00222 000377 00223 000252 00224 004000 00225 177776 00226 177773
*SUBR MSGINT/INTERR/ASR/ B.2. 11-11-70 PAGE 5
2ND 000073 ASR 000036 AST1 000067 CH2 000151 CHA! 000207 CHAR 000205 CHNR 000204 COMP 000110 EOM 000206 HEAD 000210 INP 000037 INPT 000214 INTE 000023 LINE 000211 MNR 000212 MORE 000161 MSGI 000000 NREC 000056 OK 000132 OUT 000114 OUTP 000213 REC 000077A REC0 000071 REF 000074A RET 000200 SAVA 000203 SCOD 000171 0000 WARNING OR ERROR FLAGS DAP-16 MOD 2 REV. C 01-26-71
Previous File | Multiple Pages | Next File |