1 | APPLIED PROGRAMMING/ FORTRAN. 704 = EST.NO. 8081, JOB NO. 1. | ||||||
2 | |||||||
3 | |||||||
4 | THE FOLLOWING CONVENTIONS ARE USED IN TH1S LISTING= | ||||||
5 | |||||||
6 | |||||||
7 | ** IN THE ADDRESS, TAG, OR DECREMENT OF AN INSTRUCTION | ||||||
8 | INDICATES THAT THIS FIELD WILL BE MODIFIED BY THE PROGRAM. | ||||||
9 | * IN COL/36 INDICATES THE INSTRUCTION IS A TRANSFER OUT OF | ||||||
10 | THIS L0GICAL BLOCK OR SUBROUTINE. | ||||||
11 | C IN COL/34 INDICATES THE INSTRUCTION WAS CORRECTED. | ||||||
12 | P IN COL/32 INDICATES THE INSTRUCTION WAS INSERTED (PATCH). | ||||||
13 | |||||||
14 | |||||||
15 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
16 | |||||||
17 | |||||||
18 | 704 FORTRAN 2 / SECTION 5PRIME / A. S. NOBLE, JR. / 12 FEB 58 | ||||||
19 | |||||||
20 | |||||||
21 | 5PRIME COMPILES ASSIGN CONSTANTS, FIXED POINT CONSTANTS | ||||||
22 | FLOATING POINT CONSTANTS, REGION SIX CONSTANTS AND FORMAT | ||||||
23 | STATEMENTS. THE FOLLOWING TABLES ARE PUT ON DRUMS FOR USE IN | ||||||
24 | THE ASSEMBLY PROGRAM ... SIZ, TEIFNO, EQUIT, CLOSUB, FORSUB. | ||||||
00030 | 25 | ORG | 24 | ||||
26 | SETCIT/ CALLS=OIAG. | ||||||
27 | SET UP CIT BUFFER, COUNTER, ANO TARE FOR COMPILING. | ||||||
00030 | 0 76400 0 00203 | 28 | 5PRIME | BST | CITTAP BACKSPACE CIT TAPE OVER EOF MARK | ||
00031 | 0 76400 0 00203 | 29 | BST | CITTAP AND LAST RECOR0. | |||
00032 | 0 53400 2 00420 | 30 | LXA | TERC,2 SET TAPE ERROR COUNTER FOR 5 TRYS. | |||
00033 | 0 76200 0 00223 | 31 | RTB | CITTAP SELECT CIT TAPE FOR READING. | |||
00034 | 0 53400 1 00413 | 32 | LXA | L(0),1 COPY LAST | |||
00035 | 0 70000 1 00445 | 33 | CPYCIT | CPY | CIB,1 CIT RECORD | ||
00036 | 1 77777 1 00035 | 34 | TXI | CPYCIT,1,−1 INTO CIT BUFFER. | |||
00037 | 0 07400 4 00004 | 35 | TSX | DIAG,4 * EOF ERROR - GO TO DIAGNOSTIC. | |||
00040 | 0 76400 0 00203 | 36 | BST | CITTAP REPOSITION CIT TAPE, AND | |||
00041 | −0 76000 0 00012 | 37 | RTT | IF TAPE RECORD | |||
D | 00042 | 1 00000 0 00045 | 38 | TXI | RTTON1,0 WAS READ CORRECTLY, | ||
00043 | −0 63400 1 00044 | 39 | SXD | BBOX,1 SAVE CIT COUNTER, | |||
00044 | 1 00000 0 00047 | 40 | BBOX | TXI | 5P1ASC,0,** * AND GO READ ASSIGN CONSTANTS. | ||
00045 | 2 00001 2 00033 | 41 | RTTON1 | TIX | CPYCIT−2,2,1 OTHERWISE, GO REREAD RECORD UNLESS | ||
00046 | 0 07400 4 00004 | 42 | TSX | DIAG,4 * 5 ATTEMPTS FAILE0 - GO TO DIAG. | |||
43 | END OF PROGRAM SETCIT. | ||||||
44 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
45 | |||||||
46 | 5P1ASC/ CALLS=5PS1R,5PS2C. | ||||||
47 | READ IN AND COMPILE ASSIGN CONSTANTS. | ||||||
00047 | 0 76400 0 00202 | 48 | 5P1ASC | BST | TABTAP POSITION TABLE TAPE, AND | ||
00050 | 0 07400 4 00304 | 49 | TSX | 5PS1R,4 * GO READ ASSIGN CONSTANTS. | |||
00051 | −3 00000 1 00053 | 50 | TXL | SETOP,1,0 IF NO ENTRIES, GO SET OP TO OCT. | |||
00052 | 0 07400 4 00331 | 51 | TSX | 5PS2C,4 * GO COMPILE ASSIGN CONSTANTS. | |||
00053 | 0 50000 0 00431 | 52 | SETOP | CLA | OCTLOP SET WORD2 OF COMPILED INSTRUCTION | ||
00054 | 0 60100 0 00442 | 53 | STO | WORD2 TO (OCT000) BCD FOR FUTURE USE. | |||
54 | END OF PROGRAM 5P1ASC. | ||||||
55 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
56 | |||||||
57 | 5P2FXC/ CALLS=5PS1R,5PS2C. | ||||||
58 | READ IN AND COMPILE FIXCON. | ||||||
00055 | 0 53400 2 00416 | 59 | 5P2FXC | LXA | L(3),2 POSITION | ||
00056 | 0 76400 0 00202 | 60 | BST | TABTAP TABLE TAPE | |||
00057 | 2 00001 2 00056 | 61 | TIX | 5P2FXC+1,2,1 TO FIXCON. | |||
00060 | 0 07400 4 00304 | 62 | TSX | 5PS1R,4 * GO READ FIXCON INTO BUFFER. | |||
00061 | −3 00000 1 00065 | 63 | TXL | 5P3F3D,1,0 * IF NO ENTRIES, GO READ IN FORSUB. | |||
00062 | 0 50000 0 00426 | 64 | CLA | FIXSYM SET WORD1 OF COMPILED | |||
00063 | 0 60100 0 00441 | 65 | STO | WORD1 INSTRUCTION TO (200000) BCD. | |||
00064 | 0 07400 4 00331 | 66 | TSX | 5PS2C,4 * GO COMPILE FIXCON ENTRIES. | |||
67 | END OF PROGRAM 5P2FXC. | ||||||
68 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
69 | |||||||
70 | 5P3F3D/ CALLS=5PS1R,5PS3D. | ||||||
71 | TRANSFER FORSUB TABLE FROM TAPE 2 TO DRUM 3. | ||||||
00065 | 0 53400 2 00420 | 72 | 5P3F3D | LXA | L(5),2 POSITION | ||
00066 | 0 76400 0 00202 | 73 | BST | TABTAP TABLE TAPE | |||
00067 | 2 00001 2 00066 | 74 | TIX | 5P3F3D+1,2,1 TO DO TAG B | |||
00070 | 0 76200 0 00222 | 75 | RTB | TABTAP RECORD COUNT | |||
00071 | 0 70000 0 00440 | 76 | CPY | 5PERAS AND ADD 23 | |||
00072 | −0 53400 1 00440 | 77 | LXD | 5PERAS,1 TO THIS TO | |||
00073 | 1 00027 1 00074 | 78 | TXI | BKSPC,1,23 POSITION | |||
00074 | 0 76400 0 00202 | 79 | BKSPC | BST | TABTAP TABLE TAPE | ||
00075 | 2 00001 1 00074 | 80 | TIX | BKSPC,1,1 TO FORSUB. | |||
00076 | 0 07400 4 00304 | 81 | TSX | 5PS1R,4 * GO READ FORSUB INTO BUFFER. | |||
00077 | 0 60000 0 00613 | 82 | STZ | WRDCNT IF THERE WERE | |||
00100 | −3 00000 1 00107 | 83 | TXL | EMPTY1,1,0 ENTRIES MADE IN | |||
00101 | −0 75400 1 00433 | 84 | L(SIX) | PXD | SIX,1 FORSUB TABLE | ||
00102 | 0 76000 0 00006 | 85 | COM | COMPUTE THE | |||
00103 | 0 40100 0 00425 | 86 | ADM | DECR1 WORD COUNT | |||
00104 | 0 62200 0 00613 | 87 | STD | WRDCNT AND THEN | |||
00105 | 0 07400 4 00345 | 88 | TSX | 5PS3D1,4 * GO WRITE FORSUB ONTO DRUM3. | |||
D | 00106 | 1 00000 0 00110 | 89 | TXI | 5P4FLC,0 * WHEN DONE, GO READ IN FLOCON. | ||
00107 | 0 07400 4 00351 | 90 | EMPTY1 | TSX | 5PS3D3,4 * IF FORSUB IS EMPTY, RECORD WRD CNT. | ||
91 | END OF PROGRAM 5P3F3D. | ||||||
92 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | * | |||||
93 | |||||||
94 | 5P4FLC/ CALLS=5PS1R,5PS2C. | ||||||
95 | READ IN AND COMPILE FLOCON. | ||||||
00110 | 0 76200 0 00222 | 96 | 5P4FLC | RTB | TABTAP FIND | ||
00111 | 0 70000 0 00440 | 97 | CPY | 5PERAS NEXT | |||
D | 00112 | 1 00000 0 00111 | 98 | TXI | 5P4FLC+1,0 END OF FILE | ||
D | 00113 | 1 00000 0 00115 | 99 | TXI | EOFILE,0 ON TABLE TAPE | ||
00114 | 1 77773 0 00110 | 100 | MINUS5 | TXI | 5P4FLC,0,−5 TO LOCATE FLOCON. | ||
00115 | 0 76600 0 00333 | 101 | EOFILE | IOD | WHEN DONE, | ||
00116 | −0 76000 0 00012 | 102 | RTT | MAKE SURE TAPE CHECK | |||
00117 | 0 76100 0 00000 | 103 | NOP | LIGHT IS TURNED OFF, AND | |||
00120 | 0 07400 4 00304 | 104 | TSX | 5PS1R,4 * GO READ FLOCON INTO BUFFER. | |||
00121 | −3 00000 1 00125 | 105 | TXL | 5P5R6C,1,0 * IF NO ENTRIES, GO COMPILE REGION6. | |||
00122 | 0 50000 0 00427 | 106 | CLA | FLOSYM SET WORD1 OF COMPILED | |||
00123 | 0 60100 0 00441 | 107 | STO | WORD1 INSTRUCTION TO (300000) BCD. | |||
00124 | 0 07400 4 00331 | 108 | TSX | 5PS2C,4 * GO COMPILE FLOCON ENTRIES. | |||
109 | END OF PROGRAM 5P4FLC. | ||||||
110 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
111 | |||||||
112 | 5P5R6C/ CALLS=5PS2C. | ||||||
113 | COMPILE REGION-SIX CONSTANTS. | ||||||
00125 | 0 50000 0 00430 | 114 | 5P5R6C | CLA | SIXSYM SET WORD1 OF COMPILED | ||
00126 | 0 60100 0 00441 | 115 | STO | WORD1 INSTRUCTION TO (600000) BCD. | |||
00127 | 0 50000 0 00101 | 116 | CLA | L(SIX) SET COMPILING | |||
00130 | 0 62100 0 00333 | 117 | STA | COMP SUBROUTINE (5PS2) | |||
00131 | −0 53400 1 00114 | 118 | LXD | MINUS5,1 TO PICK UP THE FIVE CONSTANTS. | |||
00132 | 0 07400 4 00331 | 119 | TSX | 5PS2C,4 * GO COMPILE REGION-SIX CONSTANTS. | |||
120 | END OF PROGRAM 5P5R6C. | ||||||
121 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
122 | |||||||
123 | 5P6FTC/ CALLS=5PS1R,5PS4W. | ||||||
124 | READ IN AND COMPILE FORMAT TABLE. | ||||||
00133 | 0 50000 0 00137 | 125 | 5P6FTC | CLA | TXLOP SET OP SWITCH | ||
00134 | 0 63000 0 00306 | 126 | STP | OPSW1 IN READING ROUTINE (5PS1) | |||
00135 | 0 50000 0 00424 | 127 | CLA | L(10) TO TEST FOR CORRECT TABLE NUMBER. | |||
00136 | 0 07400 4 00304 | 128 | TSX | 5PS1R,4 * GO READ IN FORMAT TABLE. | |||
00137 | −3 00000 1 00154 | 129 | TXLOP | TXL | 5P7CBW,1,0 * IF NO ENTRIES, GO WRITE OUT CIT. | ||
00140 | 0 50000 0 00432 | 130 | CLA | 4MATOP SET WORD2 OF COMPILED | |||
00141 | 0 60100 0 00442 | 131 | STO | WORD2 INSTRUCTION TO (BCD000) BCD. | |||
00142 | 0 53400 2 00413 | 132 | LXA | L(0),2 MOVE | |||
00143 | 0 50000 2 00614 | 133 | COMPW1 | CLA | BUFFER,2 FORMAT | ||
00144 | 0 60100 0 00441 | 134 | STO | WORD1 ENTRY | |||
00145 | 1 77777 2 00146 | 135 | TXI | COMPW3,2,−1 INTO | |||
00146 | 0 50000 2 00614 | 136 | COMPW3 | CLA | BUFFER,2 WORD1 AND | ||
00147 | 0 60100 0 00443 | 137 | STO | WORD3 WORD3. | |||
00150 | 0 07400 4 00370 | 138 | TSX | 5PS4W,4 * THEN GO COMPILE FORMAT TABLE. | |||
00151 | 1 00002 1 00152 | 139 | TXI | TESTF,1,2 IF NO ENTRIES REMAIN, | |||
00152 | −3 00000 1 00154 | 140 | TESTF | TXL | 5P7CBW,1,0 * THEN GO WRITE OUT CIT BUFFER. | ||
00153 | 1 77777 2 00143 | 141 | TXI | COMPW1,2,−1 OTHERWISE, CONTINUE COMPILING. | |||
142 | END OF PROGRAM 5P6FTC. | ||||||
143 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
144 | |||||||
145 | 5P7CBW. | ||||||
146 | TERMINATE COMPILING. | ||||||
00154 | 0 76600 0 00223 | 147 | 5P7CBW | WTB | CITTAP WRITE | ||
00155 | −0 53400 2 00044 | 148 | LXD | BBOX,2 THE CONTENTS | |||
00156 | −0 63400 2 00162 | 149 | SXD | TESTC,2 OF THE | |||
00157 | 0 53400 2 00413 | 150 | LXA | L(0),2 CIT BUFFER | |||
00160 | 0 70000 2 00445 | 151 | WRCIB | CPY | CIB,2 ONTO | ||
00161 | 1 77777 2 00162 | 152 | TXI | TESTC,2,−1 TAPE3 | |||
00162 | 3 00000 2 00160 | 153 | TESTC | TXH | WRCIB,2,** FOLLOWED BY | ||
00163 | 0 77000 0 00203 | 154 | WEF | CITTAP AN END OF FILE. | |||
155 | END OF PROGRAM 5P7CBW. | ||||||
156 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
157 | |||||||
158 | 5P8S2D/ CALLS=5PS1R,5PS3D. | ||||||
159 | TRANSFER SIZ TABLE FROM TAPE 2 TO DRUM 2. | ||||||
00164 | −0 50000 0 00137 | 160 | 5P8S2D | CAL | TXLOP SET OP SWITCH IN 5PS1R | ||
00165 | 0 63000 0 00310 | 161 | STP | OPSW2 TO COPY EIFNO, BUT SKIP TABNO TEST. | |||
00166 | 0 07400 4 00304 | 162 | TSX | 5PS1R,4 * GO READ IN SIZ TABLE + EIFNO. | |||
00167 | 0 50000 0 00612 | 163 | CLA | TABNUM MOVE EIFNO | |||
00170 | 0 60100 0 00611 | 164 | STO | EIFNO INTO PROPER LOCATION. | |||
00171 | 0 50000 0 00351 | 165 | CLA | SETDRM SET DRUM ROUTINE (5PS3D) | |||
00172 | 0 40200 0 00414 | 166 | SUB | L(1) TO WRITE ONTO DRUM2. | |||
00173 | 0 60100 0 00351 | 167 | STO | SETDRM SET DRUM ADDRESS | |||
00174 | −0 75400 0 02000 | 168 | DRMLOC | PXD | 1024,0 FOR REMAINING DRUM TABLES | ||
00175 | 0 62100 0 00174 | 169 | STA | DRMLOC TO ZERO. | |||
00176 | −3 00000 1 00202 | 170 | TXL | EMPTY2,1,0 IF THERE WERE ENTRIES MADE | |||
00177 | 0 50000 0 00613 | 171 | CLA | WRDCNT IN SIZ TABLE, PICKUP WRDCNT AND, | |||
00200 | 0 07400 4 00346 | 172 | TSX | 5PS3D2,4 * GO WRITE SIZ ONTO DRUM2. | |||
D | 00201 | 1 00000 0 00203 | 173 | TXI | 5P9T4D,0 * WHEN DONE, GO READ IN TEIFNO. | ||
00202 | 0 07400 4 00351 | 174 | EMPTY2 | TSX | 5PS3D3,4 * IF SIZ IS EMPTY, GO RECORD WRD CNT. | ||
175 | END OF PROGRAM 5P8S2D. | ||||||
176 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
177 | |||||||
178 | 5P9T4D/ CALLS=5PS1R,5PS3D. | ||||||
179 | TRANSFER TEIFNO TABLE FROM TAPE 2 TO DRUM 4. | ||||||
00203 | 0 53400 2 00420 | 180 | 5P9T4D | LXA | L(5),2 MOVE TABLE TAPE | ||
00204 | 0 76200 0 00222 | 181 | RTB | TABTAP OVER END OF FILE AND 1ST FOUR | |||
00205 | 2 00001 2 00204 | 182 | TIX | 5P9T4D+1,2,1 TABLES TO POSITION FOR TEIFNO. | |||
00206 | 0 50000 0 00137 | 183 | CLA | TXLOP SET OP SW1TCH IN 5PS1R | |||
00207 | 0 63000 0 00310 | 184 | STP | OPSW2 TO MAKE TABLE NUMBER TEST. | |||
00210 | 0 50000 0 00413 | 185 | CLA | L(0) PICKUP TEIFNO TABLE NUMBER, AND | |||
00211 | 0 07400 4 00304 | 186 | TSX | 5PS1R,4 * GO READ IN TEIFNO TABLE. | |||
00212 | 0 50000 0 00137 | 187 | CLA | TXLOP SET OP SWITCH IN 5PS3D | |||
00213 | 0 63000 0 00354 | 188 | STP | DRMSW TO WRITE EIFNO ON DRUM. | |||
00214 | 0 50000 0 00351 | 189 | CLA | SETDRM SET DRUM ROUTINE | |||
00215 | 0 40000 0 00415 | 190 | ADD | L(2) TO WRITE ONTO | |||
00216 | 0 60100 0 00351 | 191 | STO | SETDRM DRUM 4. | |||
00217 | −3 00000 1 00222 | 192 | TXL | EMPTY3,1,0 IF THERE WERE ENTRIES MAEEIN TEIFNO | |||
00220 | 0 07400 4 00344 | 193 | TSX | 5PS3D,4 * GO WRITE EIFNO AND TEIFNO ON DRUM4. | |||
D | 00221 | 1 00000 0 00223 | 194 | TXI | 5P10ED,0 * WHEN DONE, GO READ IN EQUIT. | ||
00222 | 0 07400 4 00351 | 195 | EMPTY3 | TSX | 5PS3D3,4 * IF TEIFNO IS EMPTY, RECORD WRD CNT. | ||
196 | END OF PROGRAM 5P9T4D. | ||||||
197 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
198 | |||||||
199 | 5P10ED/ CALLS=5PS1R,5PS3D. | ||||||
200 | TRANSFER EQU1T TABLE FROM TAPE 2 TO DRUM 1. | ||||||
00223 | 0 53400 1 00421 | 201 | 5P10ED | LXA | L(7),1 MOVE TABLE TAPE | ||
00224 | 0 76200 0 00222 | 202 | RTB | TABTAP OVER 7 RECORDS | |||
00225 | 2 00001 1 00224 | 203 | TIX | 5P10ED+1,1,1 TO POSITION FOR EQUIT. | |||
00226 | 0 50000 0 00422 | 204 | CLA | L(8) PICKUP EQUIT TABLE NUMBER, AND | |||
00227 | 0 07400 4 00304 | 205 | TSX | 5PS1R,4 * GO READ IN EQUIT TABLE. | |||
00230 | −0 50000 0 00137 | 206 | CAL | TXLOP SET OP SWITCH IN 5PS3D | |||
00231 | 0 63000 0 00354 | 207 | STP | DRMSW TO SKIP WRIT1NG OF EIFNO. | |||
00232 | 0 50000 0 00351 | 208 | CLA | SETDRM SET DRUM ROUTINE | |||
00233 | 0 40200 0 00416 | 209 | SUB | L(3) TO WRITE ONTO | |||
00234 | 0 60100 0 00351 | 210 | STO | SETDRM DRUM1. | |||
00235 | −3 00000 1 00270 | 211 | TXL | EMPTY4,1,0 IF EQUIT IS EMPTY, RECORD WRDCNT. | |||
00236 | −0 53400 4 00613 | 212 | LXD | WRDCNT,4 OTHERWISE, | |||
00237 | 0 53400 3 00413 | 213 | LXA | L(0),3 COMPUTE A | |||
00240 | 0 76000 0 00000 | 214 | EQCHS | CLM | LOG1CAL | ||
00241 | 0 36100 1 00614 | 215 | CLASS | ACL | BUFFER,1 CHECK | ||
00242 | 0 56000 1 00614 | 216 | LDQ | BUFFER,1 SUM | |||
00243 | −0 60000 2 03550 | 217 | STQ | NEWEQ,2 FOR | |||
00244 | 1 77777 1 00245 | 218 | TXI | NXT1,1,−1 EACH | |||
00245 | 1 77777 2 00246 | 219 | NXT1 | TXI | NXT2,2,−1 EQUIVALENCE | ||
00246 | 0 36100 1 00614 | 220 | NXT2 | ACL | BUFFER,1 CLASS | ||
00247 | 0 56000 1 00614 | 221 | LDQ | BUFFER,1 AND | |||
00250 | −0 60000 2 03550 | 222 | STQ | NEWEQ,2 MOVE | |||
00251 | 1 77777 1 00252 | 223 | TXI | NXT3,1,−1 EACH | |||
00252 | 1 77777 2 00253 | 224 | NXT3 | TXI | NXT4,2,−1 CLASS | ||
00253 | 1 77776 4 00254 | 225 | NXT4 | TXI | NXT5,4,−2 FOLLOWED | ||
00254 | 0 16200 0 00241 | 226 | NXT5 | TQP | CLASS BY ITS | ||
00255 | 0 60200 2 03550 | 227 | L(NEQ) | SLW | NEWEQ,2 CHECK | ||
00256 | 1 77777 2 00257 | 228 | TXI | NXT6,2,−1 SUM | |||
00257 | 3 00001 4 00240 | 229 | NXT6 | TXH | EQCHS,4,1 INTO NEWEQ. | ||
00260 | −0 75400 2 00000 | 230 | PXD | ,2 COMPUTE | |||
00261 | 0 76000 0 00006 | 231 | COM | THE | |||
00262 | 0 40100 0 00425 | 232 | ADM | DECR1 NEW | |||
00263 | 0 62200 0 00613 | 233 | STD | WRDCNT WORDCOUNT | |||
00264 | 0 77100 0 00022 | 234 | ARS | 18 AND | |||
00265 | 0 73400 1 00000 | 235 | PAX | ,1 THE | |||
00266 | 0 40000 0 00255 | 236 | ADD | L(NEQ) NEW | |||
00267 | 0 62100 0 00362 | 237 | STA | CADDRM MEMORY ADDRESS, AND | |||
00270 | 0 07400 4 00351 | 238 | EMPTY4 | TSX | 5PS3D3,4 * GO WRITE EQUIT ON DRUM 1. | ||
239 | END OF PROGRAM 5P10ED. | ||||||
240 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | * | |||||
241 | |||||||
242 | 5P11CD/ CALLS=5PS1R,5PS3D. | ||||||
243 | TRANSFER CLOSUB TABLE FROM TAPE 2 TO DRUM 3. | ||||||
00271 | 0 50000 0 00423 | 244 | 5P11CD | CLA | L(9) PICKUP CLOSUB TABLE NUMBER, AND | ||
00272 | 0 07400 4 00304 | 245 | TSX | 5PS1R,4 * GO READ IN CLOSUB TABLE. | |||
00273 | 0 50000 0 00351 | 246 | CLA | SETDRM SET DRUM ROUTINE | |||
00274 | 0 40000 0 00415 | 247 | ADD | L(2) TO WRITE ONTO | |||
00275 | 0 60100 0 00351 | 248 | STO | SETDRM DRUM3. | |||
00276 | −3 00000 1 00301 | 249 | TXL | EMPTY5,1,0 IF THERE WERE ENTRIES MADEIN CLOSUB | |||
00277 | 0 07400 4 00344 | 250 | TSX | 5PS3D,4 * GO WRITE CLOSUB ONTO DRUM3. | |||
00300 | 1 00000 0 00302 | 251 | 5PXR1 | TXI | END5P,0,** THEN GO CALL SECTION SIX. | ||
00301 | 0 07400 4 00351 | 252 | EMPTY5 | TSX | 5PS3D3,4 * IF CLOSUB IS EMPTY, RECORD WRDCNT. | ||
00302 | 0 76200 0 00221 | 253 | END5P | RTB | SYSTAP SPACE OVER DIAGNOSTIC RECORD, | ||
00303 | 1 00000 0 00004 | 254 | 5PXR2 | TXI | SECSIX,0,** * THEN GO CALL SECTION SIX. | ||
255 | END OF PROGRAM 5P11CD. | ||||||
256 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | * | |||||
257 | |||||||
258 | END OF PROGRAM 5PRIME. | ||||||
259 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | * | |||||
260 | |||||||
261 | 5PS1R,4/ CALLERS=5P1ASC,5P2FXC,5P3F3D,5P4FLC,5P6FTC,5P8S2D, | ||||||
262 | 5P9T4D,5P10ED,5P11CD. CALLS=DIAG. | ||||||
263 | READ A RECORD FROM TAPE 2. | ||||||
00304 | 0 53400 2 00420 | 264 | 5PS1R | LXA | TERC,2 SET TAPE ERROR COUNTER FOR 5 TRYS. | ||
00305 | 0 76200 0 00222 | 265 | READ | RTB | TABTAP SELECT TABLE TAPE FOR READING. | ||
D | 00306 | −3 00000 0 00315 | 266 | OPSW1 | TXL | SKIP,0 IF OP SWITCH IS SET TO TXH, | |
00307 | 0 70000 0 00612 | 267 | CPY | TABNUM THEN COPY 1ST WORD INTO TABNUM. | |||
D | 00310 | 3 00000 0 00315 | 268 | OPSW2 | TXH | SKIP,0 IF OP SWITCH IS SET TO TXH, | |
00311 | 0 34000 0 00612 | 269 | CAS | TABNUM THEN COMPARE C(AC) WITH TABNUM= | |||
D | 00312 | 1 00000 0 00314 | 270 | TXI | STOP,0 IF INCORRECT RECORD - GO TO STOP. | ||
00313 | 1 00000 0 00315 | 271 | 5PXR4 | TXI | SKIP,0,** IF EQUAL - THEN CONTINUE. | ||
00314 | 0 07400 4 00004 | 272 | STOP | TSX | DIAG,4 * IF INCORRECT RECORD - GO TO DIAG. | ||
00315 | 0 70000 0 00613 | 273 | SKIP | CPY | WRDCNT READ WORD COUNT, | ||
00316 | 0 53400 1 00413 | 274 | LXA | L(0),1 AND THEN READ | |||
00317 | 0 70000 1 00614 | 275 | COPY | CPY | BUFFER,1 COMPLETE TABLE | ||
00320 | 1 77777 1 00317 | 276 | TXI | COPY,1,−1 INTO BUFFER. | |||
00321 | 0 07400 4 00004 | 277 | TSX | DIAG,4 * IF END OF FILE -,GO TO DIAGNOSTIC. | |||
00322 | 0 76600 0 00333 | 278 | IOD | WHEN DONE, | |||
00323 | −0 76000 0 00012 | 279 | RTT | IF TAPE RECORD | |||
D | 00324 | 1 00000 0 00326 | 280 | TXI | RTTON,0 WAS READ CORRECTLY, | ||
00325 | 0 02000 4 00001 | 281 | TRA | 1,4 * RETURN TO MAIN ROUTINE. | |||
00326 | 0 76400 0 00202 | 282 | RTTON | BST | TABTAP OTHERWISE, BACKSPACE TAPE, AND | ||
00327 | 2 00001 2 00305 | 283 | TIX | READ,2,1 GO REREAD RECORD UNLESS | |||
00330 | 0 07400 4 00004 | 284 | TSX | DIAG,4 * 5 ATTEMPTS FAILED - GO TO DIAG. | |||
285 | END OF PROGRAM 5PS1R. | ||||||
286 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
287 | |||||||
288 | 5PS2C,4/ CALLS=5PS4W. CALLERS=5P1ASC,5P2FXC,5P4FLC,5P5R6C. | ||||||
289 | COMPILE 4-WORD INSTRUCTIONS FROM BUFFER ENTRIES. | ||||||
00331 | −0 63400 4 00313 | 290 | 5PS2C | SXD | 5PXR4,4 SAVE C(XR4) FOR EXIT. | ||
00332 | 0 53400 2 00413 | 291 | LXA | L(0),2 MOVE | |||
00333 | 0 50000 2 00614 | 292 | COMP | CLA | BUFFER,2 ENTRY | ||
00334 | 0 60100 0 00443 | 293 | STO | WORD3 INTO WORD3, | |||
00335 | 0 07400 4 00370 | 294 | TSX | 5PS4W,4 * AND GO COMPILE INSTRUCTION. | |||
00336 | 1 00001 1 00337 | 295 | TXI | TEST,1,1 IF NO ENTRIES REMAIN, | |||
00337 | −3 00000 1 00342 | 296 | TEST | TXL | EXIT2,1,0 THEN TAKE EXIT2. | ||
00340 | 0 60000 0 00441 | 297 | STZ | WORD1 SET WORD1 TO ZERO, | |||
00341 | 1 77777 2 00333 | 298 | TXI | COMP,2,−1 AND COMPILE SUCCEEDING ENTRIES. | |||
00342 | −0 53400 4 00313 | 299 | EXIT2 | LXD | 5PXR4,4 RESTORE C(XR4), AND | ||
00343 | 0 02000 4 00001 | 300 | TRA | 1,4 * RETURN TO MAIN ROUTINE. | |||
301 | END OF PROGRAM 5PS2C. | ||||||
302 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | * | |||||
303 | |||||||
304 | 5PS3D,4/ CALLERS=5P3F3D,5P8S2D,5P9T4D,5P10ED,5P11CD. | ||||||
305 | WRITE TABLE ONTO DRUM FOLLOWED BY CHECKSUM. | ||||||
00344 | 0 50000 0 00613 | 306 | 5PS3D | CLA | WRDCNT SET C(XR1) | ||
00345 | 0 77100 0 00022 | 307 | 5PS3D1 | ARS | 18 EQUAL TO | ||
00346 | 0 73400 1 00614 | 308 | 5PS3D2 | PAX | BUFFER,1 THE WORD COUNT | ||
00347 | 0 40000 0 00346 | 309 | ADD | 5PS3D2 AND INITIALIZE | |||
00350 | 0 62100 0 00362 | 310 | STA | CADDRM CAD ADDRESS. | |||
00351 | 0 76600 0 00303 | 311 | 5PS3D3 | WDR | 3 WRITE ONTO | ||
00352 | 0 76000 0 00000 | 312 | CLM | THE DRUM, | |||
00353 | 0 46000 0 00174 | 313 | LDA | DRMLOC ACCORDING TO SWITCH SETTING. | |||
D | 00354 | −3 00000 0 00357 | 314 | DRMSW | TXL | DRMSW+3,0 IF OP SWITCH IS TXH, | |
00355 | 0 70000 0 00611 | 315 | CPY | EIFNO WRITE EIFNO FOLLOWED | |||
00356 | 0 70000 0 00611 | 316 | CPY | EIFNO BY ITS CHECKSUM. | |||
00357 | 0 70000 0 00613 | 317 | CPY | WRDCNT WRITE WORD COUNT FOLLOWED | |||
00360 | 0 70000 0 00613 | 318 | CPY | WRDCNT BY ITS CHECKSUM, AND THEN | |||
00361 | −3 00000 1 00367 | 319 | TXL | EXIT3,1,0 UNLESS THE BUFFER IS EMPTY, | |||
00362 | −0 70000 1 00000 | 320 | CADDRM | CAD | **,1 WRITE THE | ||
00363 | 2 00001 1 00362 | 321 | TIX | CADDRM,1,1 CONTENTS OF BUFFER | |||
00364 | 0 70000 0 00413 | 322 | CPY | L(0) ONTO DRUM FOLLOWED | |||
00365 | 0 60200 0 00440 | 323 | SLW | 5PERAS BY ZERO AND THEN | |||
00366 | 0 70000 0 00440 | 324 | CPY | 5PERAS THE LOGICAL CHECKSUM. | |||
00367 | 0 02000 4 00001 | 325 | EXIT3 | TRA | 1,4 * RETURN TO MAIN ROUTINE. | ||
326 | END OF PROGRAM 5PS3D. | ||||||
327 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | * | |||||
328 | |||||||
329 | 5PS4W,4/ CALLERS=5P6FTC,5PS2C. | ||||||
330 | MOVE 4-WORD INSTRUCTION INTO CIB, AND WRITE CIB ONTO TAPE3. | ||||||
00370 | −0 63400 1 00300 | 331 | 5PS4W | SXD | 5PXR1,1 SAVE C(XR1) AND | ||
00371 | −0 63400 2 00303 | 332 | SXD | 5PXR2,2 SAVE C(XR2). | |||
00372 | −0 53400 2 00044 | 333 | LXD | BBOX,2 IF THE NUMBER OF | |||
00373 | 3 77634 2 00402 | 334 | TXH | MOVE−1,2,−100 WORDS ENTERED = 100, | |||
00374 | 0 76600 0 00223 | 335 | WTB | CITTAP THEN | |||
00375 | 0 53400 1 00413 | 336 | LXA | L(0),1 WRITE | |||
00376 | 0 70000 1 00445 | 337 | WRITE | CPY | CIB,1 THE CONTENTS | ||
00377 | 1 00001 2 00400 | 338 | TXI | TESTB,2,1 OF THE CIT | |||
00400 | −3 00000 2 00402 | 339 | TESTB | TXL | MOVE−1,2,0 BUFFER | ||
00401 | 1 77777 1 00376 | 340 | TXI | WRITE,1,−1 ONTO TAPE3. | |||
00402 | 0 53400 1 00417 | 341 | LXA | L(4),1 MOVE | |||
00403 | 0 50000 1 00445 | 342 | MOVE | CLA | WORD1+4,1 NEW | ||
00404 | 0 60100 2 00445 | 343 | STO | CIB,2 4 WORD | |||
00405 | 1 77777 2 00406 | 344 | TXI | TESTA,2,−1 INSTRUCTION | |||
00406 | 2 00001 1 00403 | 345 | TESTA | TIX | MOVE,1,1 INTO CIT BUFFER. | ||
00407 | −0 63400 2 00044 | 346 | SXD | BBOX,2 ADJUST BUFFER COUNT. | |||
00410 | −0 53400 1 00300 | 347 | LXD | 5PXR1,1 RESTORE C(XR1), | |||
00411 | −0 53400 2 00303 | 348 | LXD | 5PXR2,2 RESTORE C(XR2), AND | |||
00412 | 0 02000 4 00001 | 349 | TRA | 1,4 * EXIT TO MAIN ROUTINE. | |||
350 | END DF PROGRAM 5PS4W. | ||||||
351 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | * | |||||
352 | |||||||
353 | |||||||
354 | CONSTANTS USED BY 5 PRIME. | ||||||
00413 | 0 00000 0 00000 | 355 | L(0) | PZE | 0 | ||
00414 | 0 00000 0 00001 | 356 | L(1) | PZE | 1 | ||
00415 | 0 00000 0 00002 | 357 | L(2) | PZE | 2 | ||
00416 | 0 00000 0 00003 | 358 | L(3) | PZE | 3 | ||
00417 | 0 00000 0 00004 | 359 | L(4) | PZE | 4 | ||
00420 | 0 00000 0 00005 | 360 | L(5) | PZE | 5 | ||
00421 | 0 00000 0 00007 | 361 | L(7) | PZE | 7 | ||
00422 | 0 00000 0 00010 | 362 | L(8) | PZE | 8 | ||
00423 | 0 00000 0 00011 | 363 | L(9) | PZE | 9 | ||
00424 | 0 00000 0 00012 | 364 | L(10) | PZE | 10 | ||
00425 | 0 00001 0 00000 | 365 | DECR1 | PZE | 0,0,1 | ||
00426 | 020000000000 | 366 | FIXSYM | BCD | 1200000 | ||
00427 | 030000000000 | 367 | FLOSYM | BCD | 1300000 | ||
00430 | 060000000000 | 368 | SIXSYM | BCD | 1600000 | ||
00431 | 462363000000 | 369 | OCTLOP | BCD | 1OCT000 | ||
00432 | 222324000000 | 370 | 4MATOP | BCD | 1BCD000 | ||
00433 | +233000000000 | 371 | SIX | OCT | 233000000000,77777,0,1000000,0 | ||
00434 | +000000077777 | 372 | |||||
00435 | +000000000000 | 373 | |||||
00436 | +000001000000 | 374 | |||||
00437 | +000000000000 | 375 | |||||
376 | END OF 5 PRIME CONSTANTS. | ||||||
377 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
378 | |||||||
379 | WORKING STORAGE USED BY 5 PRIME. | ||||||
00440 | 380 | 5PERAS | BSS | 1 | |||
00441 | 050000000000 | 381 | WORD1 | BCD | 1500000 | ||
00442 | 635121000000 | 382 | WORD2 | BCD | 1TRA000 | ||
00443 | 000000000000 | 383 | WORD3 | BCD | 1000000 | ||
00444 | 000000000000 | 384 | WORD4 | BCD | 1000000 | ||
00445 | 385 | CIB | BSS | 100 | |||
00611 | 386 | EIFNO | BSS | 1 | |||
00612 | 387 | TABNUM | BSS | 1 | |||
00613 | 388 | WRDCNT | BSS | 1 | |||
00614 | 389 | BUFFER | BSS | 1500 | |||
03550 | 390 | NEWEQ | BSS | 1500 | |||
391 | END OF 5 PRIME WORKING STORAGE. | ||||||
392 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||||
393 | |||||||
394 | |||||||
395 | SYNONYMS USED BY 5 PRIME. | ||||||
00351 | 396 | SETDRM | SYN | 5PS3D3 LOCATION OF WDR INSTRUCTION. | |||
00420 | 397 | TERC | SYN | L(5) TAPE ERROR COUNTER. | |||
00001 | 398 | SYSTAP | SYN | 1 FORTRAN SYSTEM TAPE. | |||
00002 | 399 | TABTAP | SYN | 2 TABLE TAPE. | |||
00003 | 400 | CITTAP | SYN | 3 COMPILED INSTRUCTION TAPE. | |||
00004 | 401 | DIAG | SYN | 4 DIAGNOSTIC ROUTINE. | |||
00004 | 402 | SECSIX | SYN | 4 SECTION SIX = NEXT SECTION. | |||
403 | END OF 5 PRIME SYNONYMS. | ||||||
404 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | * | |||||
405 | |||||||
406 |