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)
54 * THE CHARACTER SEQUENCE 'ABS' HAS BEEN REPLACED BY 'DBS' BECAUSE THE
55 * ASSEMBLER SHOWED STRANGE BEHAVIOUR
57 ********************************************************************************
70 I$PI DAC ** SETUP READ ROUTINE
71 LDA* I$PI WORD COUNT PARAMETER
75 IRS I$PI TALLY RETURN ADDRESS
76 LDA* I$PI TAB COUNT PARAMETER
79 LDA I$PI RETURN ADDRESS
81 STA TABL TAB TABLE LINK
84 STA I$PI RETURN ADDRESS
90 I$PA DAC ** READ ROUTINE
91 STX SIR SAVED INDEX REGISTER
92 LDA* I$PA BUFFER ADDRESS PARAMETER
96 RSTR LDA =1 POSITION 1
97 STA CP CHARACTER POSITION
100 JST NSRT INSERT IN CHARACTER POSITION
104 SCP STA CP CHARACTER POSITION
106 * INPUT AND TEST FOR SPECIAL CODES
108 RES LDX =-4 INDEX REGISTER = -4
109 JST INPT READ ONE CHARACTER
111 CAS ='337 LEFT ARROW?
113 JMP DLT YES, DELETE LINE
115 ISIT CAS IGNT+4,1 IGNORE TABLE
117 JMP RES YES, IGNORE IT
119 IRS 0 TALLY INDEX REGISTER
122 CAS ='215 CARRIAGE RETURN?
124 JMP EXIT YES, END-OF-RECORD
130 CAS ='203 END-OF-TEXT?
134 * NO ACTION CHARACTER
135 NAC JST NSRT INSERT IN CHARACTER POSITION
136 JMP READ BUFFER NOT FULL, LOOP AGAIN
137 JMP READ BUFFER NOW FULL, LOOP AGAIN
140 TAB CRA CLEAR A-REGISTER
146 LDA TABL TAB TABLE LINK
147 STA TABI TABLE POINTER
149 ITAB LDA* TABI TABLE POINTER
150 IRS TABI TALLY TABLE POINTER
151 CAS CP CHARACTER POSITION
152 JMP SCP GR, SET NEW CHARACTER POSITION
154 IRS 0 LE, TALLY INDEX REGISTER
158 JMP NAC RETURN TO INSERT CHARACTER
160 * INSERT IN CHARACTER POSITION
161 NSRT DAC ** INSERT IN CHARACTER POSITION
162 LRR 8 RIGHT ROTATE BOTH 8
163 LDA CP CHARACTER POSITION
165 JMP DNA GR, DO NOT ACCEPT
166 NOP EQ, ACCEPT AND PACK
167 * LE, ACCEPT AND PACK
171 STA TABI TABLE POINTER
173 LDA* TABI TABLE POINTER
175 IAB C RESET, INTERCHANGE A AND B
177 LLR 8 LEFT ROTATE BOTH 8
178 STA* TABI TABLE POINTER
179 IRS CP TALLY CHARACTER POSITION
182 DNA IRS NSRT TALLY RETURN ADDRESS
186 DLT JST INPT READ ONE CHARACTER
187 ERA ='215 CARRIAGE RETURN
189 JMP DLT NZ, LOOP AGAIN
193 * RETURN TO CALLING PROGRAM
194 EXIT IRS I$PA TALLY RETURN ADDRESS
195 IRS I$PA TALLY RETURN ADDRESS
197 LDX SIR SAVED INDEX REGISTER
200 * CHARACTER INPUT ROUTINE
203 INA '1001 READ ONE CHARACTER
204 JMP *-1 WAIT FOR FINISH
205 OCP '101 TURN OFF READER
208 ERA ='200 TOGGLE BIT 9
212 * VARIABLES AND CONSTANTS
214 SIR BSZ 1 STORED INDEX REGISTER
215 BUFL BSZ 1 BUFFER LINK
216 CP BSZ 1 CHARACTER POSITION
217 TABI BSZ 1 TABLE POINTER
219 * CHANGEABLE PARAMETERS
220 LIM DEC 80 BUFFER LIMIT (DEFAULT IS 80)
221 NTAB DEC 4 TAB COUNT (DEFAULT IS 4)
222 TABL DAC TDBS TAB TABLE LINK (DEFAULT IS TDBS)
224 * DAP-16 TAB SETTINGS
225 TDBS DEC 6 OPERATION FIELD
226 DEC 12 VARIABLE FIELD
227 DEC 30 COMMENTS FIELD
228 DEC 73 IDENTIFICATION FIELD
230 * IGNORABLE CHARACTERS
231 IGNT OCT 200 BLANK TAPE
240 END END OF I$PA 4.2.2005