6 * PROGRAM CATEGORY: I/O LIBRARY
8 * PROGRAM TITLE: I$PA (I$PI)
21 * TO READ ASCII SOURCE TEXT FROM HIGH SPEED PAPTER TAPE READER
26 * NOT ALL FUNCTIONALITY MAY BE COMPLETELY RECOVERED BECAUSE
27 * OF MISSING INFORMATION.
37 * I$PA - READ LINE OF SOURCE CODE USING TAB CHARACTERS
39 * DAC (BUFFER ADDRESS)
41 * I$PI - CONFIGURE O$PA
43 * DEC (NUMBER OF WORDS IN DATA BUFFER)
44 * DEC (NUMBER OF TABS IN FOLLOWING TABLE, IF ANY)
53 ********************************************************************************
66 I$PI DAC ** SETUP READ ROUTINE
67 LDA* I$PI WORD COUNT PARAMETER
71 IRS I$PI TALLY RETURN ADDRESS
72 LDA* I$PI TAB COUNT PARAMETER
75 LDA I$PI RETURN ADDRESS
77 STA TABL TAB TABLE LINK
80 STA I$PI RETURN ADDRESS
86 I$PA DAC ** READ ROUTINE
87 STX SIR SAVED INDEX REGISTER
88 LDA* I$PA BUFFER ADDRESS PARAMETER
92 RSTR LDA =1 POSITION 1
93 STA CP CHARACTER POSITION
96 JST NSRT INSERT IN CHARACTER POSITION
100 SCP STA CP CHARACTER POSITION
102 * INPUT AND TEST FOR SPECIAL CODES
104 RES LDX =-4 INDEX REGISTER = -4
105 JST INPT READ ONE CHARACTER
107 CAS ='337 LEFT ARROW?
109 JMP DLT YES, DELETE LINE
111 ISIT CAS IGNT+4,1 IGNORE TABLE
113 JMP RES YES, IGNORE IT
115 IRS 0 TALLY INDEX REGISTER
118 CAS ='215 CARRIAGE RETURN?
120 JMP EXIT YES, END-OF-RECORD
126 CAS ='203 END-OF-TEXT?
130 * NO ACTION CHARACTER
131 NAC JST NSRT INSERT IN CHARACTER POSITION
132 JMP READ BUFFER NOT FULL, LOOP AGAIN
133 JMP READ BUFFER NOW FULL, LOOP AGAIN
136 TAB CRA CLEAR A-REGISTER
142 LDA TABL TAB TABLE LINK
143 STA TABI TABLE POINTER
145 ITAB LDA* TABI TABLE POINTER
146 IRS TABI TALLY TABLE POINTER
147 CAS CP CHARACTER POSITION
148 JMP SCP GR, SET NEW CHARACTER POSITION
150 IRS 0 LE, TALLY INDEX REGISTER
154 JMP NAC RETURN TO INSERT CHARACTER
156 * INSERT IN CHARACTER POSITION
157 NSRT DAC ** INSERT IN CHARACTER POSITION
158 LRR 8 RIGHT ROTATE BOTH 8
159 LDA CP CHARACTER POSITION
161 JMP DNA GR, DO NOT ACCEPT
162 NOP EQ, ACCEPT AND PACK
163 * LE, ACCEPT AND PACK
167 STA TABI TABLE POINTER
169 LDA* TABI TABLE POINTER
171 IAB C RESET, INTERCHANGE A AND B
173 LLR 8 LEFT ROTATE BOTH 8
174 STA* TABI TABLE POINTER
175 IRS CP TALLY CHARACTER POSITION
178 DNA IRS NSRT TALLY RETURN ADDRESS
182 DLT JST INPT READ ONE CHARACTER
183 ERA ='215 CARRIAGE RETURN
185 JMP DLT NZ, LOOP AGAIN
189 * RETURN TO CALLING PROGRAM
190 EXIT IRS I$PA TALLY RETURN ADDRESS
191 IRS I$PA TALLY RETURN ADDRESS
193 LDX SIR SAVED INDEX REGISTER
196 * CHARACTER INPUT ROUTINE
199 INA '1001 READ ONE CHARACTER
200 JMP *-1 WAIT FOR FINISH
201 OCP '101 TURN OFF READER
204 ERA ='200 TOGGLE BIT 9
208 * VARIABLES AND CONSTANTS
210 SIR BSZ 1 STORED INDEX REGISTER
211 BUFL BSZ 1 BUFFER LINK
212 CP BSZ 1 CHARACTER POSITION
213 TABI BSZ 1 TABLE POINTER
215 * CHANGEABLE PARAMETERS
216 LIM DEC 80 BUFFER LIMIT (DEFAULT IS 80)
217 NTAB DEC 4 TAB COUNT (DEFAULT IS 4)
218 TABL DAC TABS TAB TABLE LINK (DEFAULT IS TABS)
220 * DAP-16 TAB SETTINGS
221 TABS DEC 6 OPERATION FIELD
222 DEC 12 VARIABLE FIELD
223 DEC 30 COMMENTS FIELD
224 DEC 73 IDENTIFICATION FIELD
226 * IGNORABLE CHARACTERS
227 IGNT OCT 200 BLANK TAPE
236 END END OF I$PA 4.2.2005