ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:06 2020 Source File: \kforph25.asm 1130 FORTRAN COMPILER PHASE 25 2 | *************************************************** K2500020 3 | * * K2500030 4 | *STATUS - VERSION 2, MODIFICATION LEVEL 12 * K2500040 5 | * * K2500050 6 | *FUNCTION/OPERATION- * K2500060 7 | * * BUILD PROGRAM HEADER AND DATA HEADER * K2500070 8 | * RECORDS * K2500080 9 | * * OUTPUT THESE RECORDS BY BUFFER LOADS OF 320 * K2500090 10 | * WORDS TO DISK WORKING STORAGE * K2500100 11 | * * ANALYZES DEFINE FILE STATEMENTS AND PUTS * K2500110 12 | * THEM IN THE BUFFER FOR OUTPUT TO WORKING * K2500120 13 | * STORAGE IN ABSOLUTE MODE (EXCEPT FOR THE * K2500130 14 | * ASSOCIATED VARIABLE WHICH IS IN RELOCATABLE * K2500140 15 | * OR ABSOLUTE MODE) * K2500150 16 | * * SCANS THE SYMBOL TABLE FOR REAL AND INTEGER * K2500160 17 | * CONSTANTS AND PLACES THEM IN THE BUFFER IN * K2500170 18 | * ABSOLUTE MODE FOR OUTPUT TO WORKING STORAGE * K2500180 19 | * * K2500190 20 | *ENTRY POINTS-THE ONLY ENTRY POINT IS AT BPHAR * K2500200 21 | * AND IS REACHED BY A CALL TO THE ROL ROUTINE * K2500210 22 | * BY A PREVIOUS PHASE * K2500220 23 | * * K2500230 24 | *INPUT-THE STATEMENT STRING AND SYMBOL TABLE FROM * K2500240 25 | * THE PREVIOUS PHASES * K2500250 26 | * * K2500260 27 | *OUTPUT- * K2500270 28 | * * WORKING STORAGE ON THE DISK CONTAINING * K2500280 29 | * HEADER AND DATA RECORDS, REAL AND INTEGER * K2500290 30 | * CONSTANTS AND OUTPUT FROM DEFINE FILE * K2500300 31 | * STATEMENTS * K2500310 32 | * * A 320 WORD BUFFER CONTAINING SIMILAR * K2500320 33 | * INFORMATION TO BE OUTPUT TO WORKING STORAGE * K2500330 34 | * OR TO BE PASSED ON TO PHASE 26 TO BE FILLED * K2500340 35 | * AND PUT INTO WORKING STORAGE * K2500350 36 | * * K2500360 37 | *EXTERNAL REFERENCES- * K2500370 38 | * SUBROUTINES- * K2500380 39 | * * ROL-LOADS NEXT PHASE OF THE COMPILER * K2500390 40 | * * DZ000-DISK WRITE SUBROUTINE * K2500400 41 | * COMMA-DCOM- * K2500410 42 | * * $PHSE * K2500420 43 | * * $WSDR * K2500430 44 | * * $DBSY * K2500440 45 | * * $FPAD * K2500450 46 | * * K2500460 47 | *EXITS- * K2500470 48 | * NORMAL-A CALL TO THE ROL ROUTINE BRINGS IN * K2500480 49 | * THE NEXT PHASE * K2500490 50 | * ERROR-NONE * K2500500 51 | * * K2500510 52 | *TABLES/WORK AREAS * K2500520 53 | * * INPUT STRING * K2500530 54 | * *SYMBOL TABLE * K2500540 55 | * *FORTRAN COMMUNICATIONS AREA * K2500550 56 | * *DISK OUTPUT BUFFER * K2500560 57 | * * K2500570 58 | *ATTRIBUTES-N/A * K2500580 59 | * * K2500590 60 | *NOTES- * K2500600 61 | * PROGRAM HEADER CONSISTS OF 12 WORDS IN THE * K2500610 62 | * BUFFER AREA * K2500620 63 | * WD 1 RESERVED * K2500630 64 | * WD 2 RESERVED * K2500640 65 | * WD 3 INTEGER TYPE, PRECISION * K2500650 66 | * WD 4 OBJECT TIME PROGRAM LENGTH * K2500660 67 | * WD 5 LENGTH OF COMMON * K2500670 68 | * WD 6 WD SIZE OF PROGRAM HEADER - 9 (=3) * K2500680 69 | * WD 7 VAR. AREA WHEN NO DEFINE FILE STMNT * K2500690 70 | * WD 8 LENGTH OF PROGRAM IN DISK BLOCKS * K2500700 71 | * WD 9 NUMBER OF FILES DEFINED * K2500710 72 | * WD10 PROGRAM NAME * K2500720 73 | * WD11 PROGRAM NAME * K2500730 74 | * WD12 EXECUTION ADDRESS * K2500740 75 | * DATA HEADER CONSISTS OF 4 WORDS (WD13-WD16) * K2500750 76 | * WD 13 ADDRESS OF NEXT DATA * K2500760 77 | * WD 14 NUMBER OF DATA WORDS * K2500770 78 | * WD15 FIRST INDICATOR WORD * K2500780 79 | * WD16 FIRST DATA WORD * K2500790 80 | * EVERY 8 WORDS OF DATA OR PROGRAM OUTPUT IS * K2500800 81 | * PRECEDED BY AN INDICATOR WORD CONTAINING TWO * K2500810 82 | * BITS OF INFORMATION FOR EACH OF THE SUCCESSIVE* K2500820 83 | * EIGHT WORDS. THE TWO BITS HAVE THE FOLLOWING * K2500830 84 | * MEANINGS. * K2500840 85 | * 00 = ABSOLUTE INSTRUCTION OR DATA * K2500850 86 | * 01 = RELOCATABLE INSTRUCTION * K2500860 87 | * 10 = ONE WORD CALL * K2500870 88 | * 11 = TWO WORD CALL * K2500880 89 | * * K2500890 90 | *************************************************** K2500900 1130 FORTRAN COMPILER PHASE 25 92 | *** NOTE- COMMENTS BEGIN IN COL. 44 *** K2500920 93 | ABS K2500930 94 | * K2500940 95 | * SYSTEM EQUATES K2500950 96 | * K2500960 8000 97 | MEMRY EQU /8000 K2500970 7A23 98 | OVERL EQU MEMRY-1501 START OF FCOM 2-4 K2500980 0078 99 | $PHSE EQU /78 NO. OF PHASE NOW IN CORE K2500990 7FBC 100 | ROL EQU MEMRY-68 LOC OF PROG TO RD NXT PH K2501000 0037 101 | PHID EQU 55 ID NUMBER THIS PHASE K2501010 00F2 102 | DZ000 EQU /F2 DISKZ ENTRY POINT K2501020 00EE 103 | $DBSY EQU /EE NON-ZERO WHEN DISKZ BUSY K2501030 007A 104 | $WSDR EQU /7A WORKING STORAGE DRIVE CODE K2501040 0095 105 | $FPAD EQU /95 TABLE OF FILE PROTECT ADDR K2501050 7A23 106 | ORG OVERL K2501060 107 | * K2501070 108 | * FORTRAN COMMUNICATION K2501080 7A23 109 | ORG BSS 1 ORIGIN ADDRESS 2-4 K2501090 7A24 110 | SOFS BSS 1 START OF STRING K2501100 7A25 111 | EOFS BSS 1 END OF STRING K2501110 7A26 112 | SOFST BSS 1 START OF SYMBOL TABLE K2501120 7A27 113 | SOFNS BSS 1 PROGR LENGTH AT OBJECT TIME K2501130 7A28 114 | SOFXT BSS 1 SIZE OF WORK AREA K2501140 7A29 115 | SOFGT BSS 1 SIZE OF CONSTANTS AREA K2501150 7A2A 116 | EOFST BSS 1 END OF SYMBOL TABLE K2501160 7A2B 117 | COMON BSS 1 ENTRY POINT K2501170 7A2C 118 | CSIZE BSS 1 SIZE OF COMMON K2501180 7A2D 119 | ERROR BSS 1 OVERLAP ERROR K2501190 7A2E 120 | FNAME BSS 1 PROGRAM NAME K2501200 7A2F 121 | BSS 1 K2501210 7A30 122 | SORF BSS 1 SUBROUTINE(-) OR FUNCTION(+) K2501220 7A31 123 | CCWD BSS 1 CONTROL CARD WORD K2501230 124 | * BIT 15 TRANSFER TRACE K2501240 125 | * BIT 14 ARITHMETIC TRACE K2501250 126 | * BIT 13 EXTENDED PRECISION K2501260 127 | * BIT 12 LIST SYMBOL TABLE K2501270 128 | * BIT 11 LIST SUBPROGRAM NAMES K2501280 129 | * BIT 10 LIST SOURCE PROGRAM K2501290 130 | * BIT 9 ONE WORD INTEGERS K2501300 131 | * BIT 8 ORIGIN 2-4 K2501310 7A32 132 | IOCS BSS 1 IOCS CONTROL CARD WORD K2501320 133 | * BIT 15 CARD K2501330 134 | * BIT 14 PAPER TAPE K2501340 135 | * BIT 13 TYPEWRITER K2501350 136 | * BIT 12 1403 PRINTER K2501360 137 | * BIT 11 2501 READER K2501370 138 | * BIT 10 KEYBOARD K2501380 139 | * BIT 9 1442 PUNCH K2501390 140 | * BIT 8 DISK K2501400 141 | * BIT 7 1132 PRINTER K2501410 142 | * BIT 3 PLOTTER K2501420 143 | * BIT 1 UNFORMATTED DISK K2501430 7A33 144 | DFCNT BSS 1 FILE COUNT K2501440 145 | * K2501450 146 | * K2501460 147 | * END OF FORTRAN COMMUNICATION K2501470 148 | * AREA K2501480 149 | *************************************************** K2501490 150 | * THE SWITCHES USED IN PHASE 26 FOLLOW K2501500 151 | * IF POSITIVE, THE SWITCH IS TRANSFER=T K2501510 152 | * IF ZERO, THE SWITCH IS NORMAL=N K2501520 153 | * SWITCH COSW K2501530 154 | * N= OUTPUT OF REAL CONSTANTS K2501540 155 | * T= OUTPUT OF INTEGER CONSTANTS K2501550 156 | * THE SWITCHES USED IN PHASE 26 FOLLOW K2501560 157 | * IF POSITIVE, THE SWITCH IS TRANSFER=T K2501570 158 | * IF ZERO, THE SWITCH IS NORMAL=N K2501580 159 | * SWITCH TWOWC K2501590 160 | * N= OUTPUT OF TWO-WORD CALL NAME K2501600 161 | * T= OUTPUT OF ONE-WORD CALL NAME K2501610 162 | * K250162- 163 | * K2501630 7A36 164 | BPHAR EQU *+2 K2501640 7A34 0000 165 | DC 0 PROGRAM ORIGIN K2501650 7A35 FFC9 166 | DC -55 -PHASE ID FOR SLET LOOKUP K2501660 7A36 0438 167 | DC NXTPH-*+1 TABLE FOR NEXT PHASE ENTRY K2501670 7A37 0001 168 | DC 1 ONE ENTRY TO BE SET BY LDR K2501680 7A36 169 | ORG *-2 ORG PROGRAM K2501690 170 | * K2501700 171 | * K2501710 7A36 4C00 7E72 172 | NEQ BSC L ENT K2501720 173 | * K2501730 174 | * K2501740 175 | * BUFFER COMMUNICATIONS AREA K2501750 176 | * AND BUFFER K2501760 177 | * K2501770 178 | * RESERVED FOR COMMUNICATION K2501780 179 | * BETWEEN PHASES K2501790 180 | * OUTPUT1 AND OUTPUT2 K2501800 181 | * AS FOLLOWS K2501810 182 | * K2501820 7A38 183 | BSS E 0 K2501830 7A38 0000 184 | DC 0 BFR CNT NXT PH-NOT YET USED K2501840 7A39 7A51 185 | BUFPT DC WD16 BUFFERPOINTER K2501850 7A3A 0010 186 | INCT DC 16 INDICATOR COUNTER K2501860 7A3B 7A50 187 | INPT DC WD15 INDICATOR POINTER K2501870 7A3C 7A4E 188 | DHDRA DC WD13 DATAHEADER-ADDRESS K2501880 7A3D 0000 189 | LOCTR DC 0 LOCATION COUNTER K2501890 7A3E 0000 190 | PRLGT DC 0 PROGRAM LENGTH K2501900 191 | * (ON DISK) K2501910 7A3F 0000 192 | DC 0 NOT YET USED K2501920 7A40 0140 193 | DC /140 WORD COUNT K2501930 7A41 0000 194 | DC /0000 SCRATCH SECTOR ADDR K2501940 195 | * K2501950 196 | * DISK OUTPUT BUFFER K2501960 7A42 0000 197 | BUFF DC 0 K2501970 198 | * K2501980 199 | * PROGRAM HEADER K2501990 7A42 200 | WD1 EQU BUFF RESERVED K2502000 7A43 0000 201 | WD2 DC 0 RESERVED K2502010 7A44 0000 202 | WD3 DC 0 TYPE, PRECISION K2502020 7A45 0000 203 | WD4 DC 0 OBJECT TIME PROGRAM LENGTH K2502030 7A46 0000 204 | WD5 DC 0 LENGTH OF COMMON K2502040 7A47 0003 205 | WD6 DC 3 WD SIZE OF PROG HDR - 9 K2502050 7A48 0000 206 | WD7 DC 0 VAR AREA IF NO DEFINE FILES K2502060 7A49 0000 207 | WD8 DC 0 PROG LNG (DB CNT - DUP ADDS) K2502070 208 | * (DISKBYTE COUNT, INSERTED BY DUP) K2502080 7A4A 0000 209 | WD9 DC 0 NUMBER OF FILES DEFINED K2502090 7A4B 0000 210 | WD10 DC 0 PROGRAM NAME K2502100 7A4C 0000 211 | DC 0 WORD 2 OF PROGRAM NAME K2502110 7A4D 0000 212 | WD12 DC 0 EXECUTION ADDR K2502120 213 | * K2502130 214 | * FIRST DATA HEADER K2502140 7A4E 0000 215 | WD13 DC 0 RELATIVE ADDR OF NEXT DATA K2502150 7A4F 0003 216 | WD14 DC 3 NUMBER OF DATA WORDS K2502160 217 | * K2502170 218 | * K2502180 7A50 0000 219 | WD15 DC 0 FIRST INDICATOR WORD K2502190 7A51 0000 220 | WD16 DC 0 FIRST DATA WORD K2502200 221 | * K2502210 7A84 222 | ORG *+50 K2502220 223 | * K2502230 224 | * K2502240 225 | * FOLLOWING INITIAL PROGRAM K2502250 226 | * IS WITHIN BUFFERAREA K2502260 227 | * K2502270 7A84 1000 228 | START SLA 0 NOP K2502280 229 | * K2502290 230 | * INITIALIZE WORKING STORAGE SECTOR K2502300 231 | * ADDRESS FROM COMMA K2502310 232 | * K2502320 7A85 6780 007A 233 | LDX I3 $WSDR WORKING STORAGE DRIVE CODE K2502330 7A87 C700 0095 234 | LD L3 $FPAD LOAD WORKING STO SECTOR ADDR K2502340 7A89 D0B7 235 | STO BUFF-1 SAVE IN SCRATCH SECTOR ADDR K2502350 236 | * K2502360 237 | * INITIALIZE TRANSFER VECTOR K2502370 238 | * K2502380 7A8A 6700 7D50 239 | LDX L3 ZERO K2502390 240 | * K2502400 241 | * K2502410 7A8C C0A4 242 | LD CCWD IS IT AN ABSOLUTE 2-4 K2502420 7A8D 1008 243 | SLA 8 COMPILATION 2-4 K2502430 7A8E 4C10 7A93 244 | BSC L STAR1,- NO - BRANCH 2-4 K2502440 7A90 D328 245 | STO 3 ORGSW-Z YES - SET ORIGIN SW 2-4 K2502450 7A91 C329 246 | LD 3 H0101-Z SET UP FOR ABSOLUTE 2-4 K2502460 7A92 D30A 247 | STO 3 TYPE-Z TYPE CODE 2-4 K2502470 248 | * K2502480 249 | * K2502490 250 | * K2502500 251 | * STORE FNAME FOR OUTPUT K2502510 252 | * K2502520 7A93 C09C 253 | STAR1 LD SORF DO NOT STORE NAME IF K2502530 7A94 4C18 7A9A 254 | BSC L Q0010,+- *SUBROUTINE OR FUNCTION K2502540 255 | * K2502550 256 | * K2502560 7A96 C897 257 | LDD FNAME GET 2 WD PROG OR SUBR NAME K2502570 7A97 D0B3 258 | STO WD10 SAVE WD 1 IN PROG HDR NAME K2502580 7A98 18D0 259 | RTE 16 PUT WD 2 IN ACC K2502590 7A99 D0B2 260 | STO WD10+1 SAVE WD 2 IN PROG HDR NAME K2502600 261 | * K2502610 262 | * K2502620 263 | * INITIALIZE INDICATORS IN WORD 9 K2502630 7A9A C098 264 | Q0010 LD DFCNT K2502640 7A9B 1890 265 | SRT 16 K2502650 7A9C AB08 266 | D 3 SEVEN-Z COMPUTE NUMBER OF FILES DEF K2502660 7A9D 8318 267 | A 3 H2000-Z K2502670 7A9E D324 268 | STO 3 TEMP2-Z K2502680 7A9F C092 269 | LD IOCS DISK IO INDICATOR K2502690 7AA0 1008 270 | SLA 8 K2502700 7AA1 E319 271 | AND 3 H8000-Z PUT DISK I/O IND IN BIT 0 K2502710 7AA2 EB24 272 | OR 3 TEMP2-Z K2502720 7AA3 D324 273 | STO 3 TEMP2-Z K2502730 7AA4 C08C 274 | LD CCWD CHECK FOR EXT. PRECISION IO K2502740 7AA5 E30F 275 | AND 3 HFEFF-Z K2502750 7AA6 4820 276 | BSC Z SKIP IF EXT PREC IO BIT OFF K2502760 7AA7 C31A 277 | LD 3 H4000-Z SET FLAG K2502770 7AA8 EB24 278 | OR 3 TEMP2-Z K2502780 7AA9 D0A0 279 | STO WD9 K2502790 280 | * SET VAR AREA WHEN NO DEFINE FILE K2502800 7AAA C088 281 | LD DFCNT K2502810 7AAB 4C18 7AAF 282 | BSC L Q1000,+- SKIP IF DEFINE FILE PRESENT K2502820 7AAD C400 7A28 283 | LD L SOFXT PUT SIZE OF WK-AREA IN WD7 K2502830 7AAF D098 284 | Q1000 STO WD7 K2502840 285 | * K2502850 286 | * K2502860 7AB0 1000 287 | INIT SLA 0 NOP K2502870 7AB1 C400 7A27 288 | LD L SOFNS STORE PROGRAM LENGTH 2-2 K2502880 7AB3 8400 7A28 289 | A L SOFXT IN WORD 4 OF 2-2 K2502890 7AB5 D08F 290 | STO WD4 PROGRAM HEADER 2-2 K2502900 7AB6 C328 291 | LD 3 ORGSW-Z IS IT ABSOLUTE 2-4 K2502910 7AB7 4C18 7B96 292 | BSC L Q1011,+- NO - BRANCH 2-4 K2502920 7AB9 C08B 293 | LD WD4 YES - RELOCATE 2-4 K2502930 7ABA 8400 7A23 294 | A L ORG THE TERMINAL 2-4 K2502940 7ABC D400 7A45 295 | STO L WD4 ADDRESS 2-4 K2502950 7ABE 4C10 7B96 296 | BSC L Q1011,- BRANCH IF POSITIVE 2-4 K2502960 7AC0 7440 7A2D 297 | MDX L ERROR,64 SET UP ERROR 86 2-4 K2502970 7AC2 4C00 7E69 298 | BSC L EXIT EXIT 2-4 K2502980 299 | * K2502990 7B96 300 | ORG BUFF+340 ALLOW 320 WS BFR +20 212 K2503000 301 | * K2503010 302 | * CHECK FOR MAINLINE PROG OR SUBP K2503020 303 | * PUT ADDITIONAL INFO IN O/P AREA K2503030 304 | * OUTPUT DEFINE FILE STATEMENTS K2503040 7B96 1000 305 | Q1011 SLA 0 NOP K2503050 306 | * K2503060 307 | * K2503070 308 | * INITIALIZE OUTPUT K2503080 309 | * K2503090 310 | * DETERMINE WHETHER MAIN LINE K2503100 311 | * OR SUBPROGRAM K2503110 312 | * K2503120 7B97 C400 7A30 313 | LD L SORF GET SUBR-FUNCTION IND WD K2503130 7B99 4C20 7D05 314 | BSC L INISR,Z BR IF SUBROUTINE K2503140 315 | * K2503150 316 | * INITIALIZE MAIN LINE PROGR K2503160 7B9B C400 7A31 317 | LD L CCWD SPECIFY PRECISION K2503170 7B9D 1802 318 | SRA 2 K2503180 7B9E E301 319 | AND 3 ONE-Z MASK OUT ALL BUT EXT PRE BIS K2503190 7B9F 830A 320 | A 3 TYPE-Z MAINL REL TYPE W PREC CONST K2503200 7BA0 D400 7A44 321 | Q101X STO L WD3 SAVE IN 3RD WORD OF PROG HDR K2503210 7BA2 C400 7A31 322 | LD L CCWD IS ONE WORD INTEGERS 2-5 K2503211 7BA4 1806 323 | SRA 6 *SPECIFIED 2-5 K2503212 7BA5 E301 324 | AND 3 ONE-Z IF YES - SET 2-5 K2503213 7BA6 1004 325 | SLA 4 *INDICATOR FOR 2-5 K2503214 7BA7 801B 326 | A H0080 *INTEGER PRECISION 2-5 K2503215 7BA8 8400 7A44 327 | A L WD3 *IN WORD 3 OF 2-5 K2503216 7BAA D400 7A44 328 | STO L WD3 *PROGRAM HEADER 2-5 K2503217 7BAC C400 7A2C 329 | LD L CSIZE SIZE OF COMMON K2503220 7BAE D400 7A46 330 | STO L WD5 SAVE IN 5TH WORD OF PROG HDR K2503230 331 | * K2503240 7BB0 C400 7A2B 332 | Q101A LD L COMON PROGRAM ENTRY POINT K2503250 7BB2 D400 7A4D 333 | STO L WD12 PUT IN 12TH WORD OF PROG HDR K2503260 7BB4 C328 334 | LD 3 ORGSW-Z IS IT ABSOLUTE 2-4 K2503270 7BB5 4C18 7BC4 335 | BSC L Q101B,+- NO - BRANCH 2-4 K2503280 7BB7 C400 7A4D 336 | LD L WD12 YES - RELOCATE 2-4 K2503290 7BB9 8400 7A23 337 | A L ORG THIS 2-4 K2503300 7BBB D400 7A4D 338 | STO L WD12 WORD 2-4 K2503310 7BBD 4C10 7BC4 339 | BSC L Q101B,- BRANCH IF POSITIVE 2-4 K2503320 7BBF 7440 7A2D 340 | Q101C MDX L ERROR,64 SET UP ERROR 86 2-4 K2503330 7BC1 4C00 7E69 341 | BSC L EXIT EXIT 2-4 K2503340 342 | * K2503350 7BC3 0080 343 | H0080 DC /0080 INDICATOR WORD 2-5 K2503352 344 | * K2503354 345 | * K2503356 346 | * TEST IF ANY 'DEFINEFILE' STATEMENTS K2503360 347 | * INCLUDED K2503370 348 | * K2503380 7BC4 C400 7A33 349 | Q101B LD L DFCNT CNT OF NO. DEFINING FILE K2503390 7BC6 4C20 7BCA 350 | BSC L F1012,Z BR IF DEFN FILES ARE PRESENT K2503400 7BC8 702E 351 | MDX F2012 BR IF NOT K2503410 352 | * K2503420 353 | * OUTPUT 'DEFINE FILE' STATEMENTS K2503430 7BC9 0000 354 | COUNT DC 0 NO. WDS DEFN FILE STMNTS K2503440 7BCA D0FE 355 | F1012 STO COUNT SET DEF FILE WORDCOUNTER K2503450 7BCB 1010 356 | SLA 16 CLEAR ACC K2503460 7BCC 4400 7DFD 357 | BSI L DHDRR DATAHEADERROUTINE K2503470 358 | * ACC = 0 AT ENTRY TO SUBR K2503480 359 | * K2503490 7BCE 6580 7A24 360 | LDX I1 SOFS INIT STRING POINTER K2503500 361 | * K2503510 7BD0 C0F8 362 | F1014 LD COUNT NO. WDS DEFN FILE K2503520 363 | * SCAN STRING FOR DEFINE FILE STMNTS K2503530 7BD1 4C08 7BF7 364 | BSC L F2012,+ BR IF NO MORE DEFN FILE 2-10 K2503540 7BD3 C100 365 | F1015 LD 1 0 GET ID WORD FROM STRING K2503550 7BD4 E313 366 | AND 3 H07FC-Z MASK ALL BUT NORM BITS K2503560 7BD5 D322 367 | STO 3 NORM-Z SAVE NORM IN TEMP STO K2503570 7BD6 C100 368 | LD 1 0 GET ID WORD FROM STRING K2503580 7BD7 E314 369 | AND 3 HF800-Z MASK ALL BUT TYPE CODE K2503590 7BD8 9315 370 | S 3 HF000-Z TEST FOR DEFN FILE CODE K2503600 7BD9 4C18 7BE1 371 | BSC L F1021,+- BR IF DEFINE FILE STATEMENT K2503610 372 | * K2503620 373 | * MOVE POINTER TO NEXT STATEMENT K2503630 7BDB C322 374 | LD 3 NORM-Z GET STMNT NORM K2503640 7BDC 1802 375 | SRA 2 RIGHT JUSTIFY NORM K2503650 7BDD D001 376 | STO F1016+1 SAVE NORM COUNT K2503660 7BDE 7500 0000 377 | F1016 MDX L1 *-* INCR I/P STRING PT BY NORM K2503670 7BE0 70F2 378 | MDX F1015 BR TO CHECK NEXT STMNT TYPE K2503680 379 | * K2503690 380 | * OUTPUT A DEFINE FILE STATEMENT K2503700 381 | * K2503710 382 | * INITIALIZE COUNTER TO OUTPUT K2503720 383 | * FOURTH WORD IN EACH SEVENWORD GROUP K2503730 384 | * AS RELATIVE SYMBOL TABLE ADDRESS K2503740 385 | * K2503750 7BE1 C304 386 | F1021 LD 3 FOUR-Z GET CONSTANT = 4 K2503760 7BE2 D326 387 | STO 3 SCT-Z SET UP COUNTER ON NO. WORDS K2503770 388 | * K2503780 7BE3 7101 389 | F1022 MDX 1 1 INCR POINTER K2503790 7BE4 74FC 7D72 390 | MDX L NORM,-4 DECR NORM BY ONE WORD K2503800 7BE6 7001 391 | MDX F1023 BR IF NO SKIP K2503810 7BE7 70E8 392 | MDX F1014 BR IF END OF STATEMENT K2503820 393 | * K2503830 394 | * TEST IF FOURTH WD IN GROUP K2503840 7BE8 74FF 7D76 395 | F1023 MDX L SCT,-1 DECR WORD COUNTER K2503850 7BEA 7006 396 | MDX F1024 BR IF NO SKIP K2503860 397 | * K2503870 398 | * OUTPUT RELTV ADDR ASSOCIATED VAR-WD 4 K2503880 7BEB C100 399 | LD 1 0 PICK UP FOURTH WORD STMNT K2503890 7BEC 432A 400 | BSI 3 GETST-Z GET SYMBOL TABLE ADDRESS K2503900 7BED 4349 401 | BSI 3 OUREL-Z OUTPUT RELATIVE WORD K2503910 402 | * (OR ABSOLUTE IF IN K2503920 403 | * COMMON) K2503930 7BEE C308 404 | LD 3 SEVEN-Z RESET CTR ON DEFN FILE WDCNT K2503940 7BEF D326 405 | STO 3 SCT-Z SAVE COUNT IN TEMP CTR K2503950 7BF0 7002 406 | MDX F1025 BR TO CONTINUE O/P OF STMNT K2503960 407 | * K2503970 408 | * OUTPUT ABSOLUTE K2503980 7BF1 C100 409 | F1024 LD 1 0 K2503990 7BF2 4341 410 | BSI 3 OUABS-Z K2504000 411 | * K2504010 412 | * COUNT DEFINE FILE WORDS K2504020 7BF3 74FF 7BC9 413 | F1025 MDX L COUNT,-1 K2504030 7BF5 1000 414 | SLA 0 TO BALANCE SKIP K2504040 7BF6 70EC 415 | MDX F1022 K2504050 416 | * K2504060 417 | * K2504070 418 | * HERE COMES OUTPUT OF K2504080 419 | * 'DATA'-STATEMENTS K2504090 420 | * SEARCH THROUGH STRING FOR DATA K2504100 421 | * STATEMENTS AND OUTPUT K2504110 422 | * K2504120 423 | * SUPERFLUOUS CODING REMOVED 2-10 K2504200 424 | * K2504210 7BF7 425 | F2012 EQU * K2504220 426 | * K2504230 7BF7 6580 7A24 427 | LDX I1 SOFS INITIALIZE POINTER K2504240 428 | * K2504250 429 | * STORE STMNT-ID COMPUTE K2504260 430 | * ADDR OF NEXT STATEMENT K2504270 431 | * K2504280 7BF9 C100 432 | DT102 LD 1 0 LOAD STMNT ID WORD K2504290 7BFA E314 433 | AND 3 HF800-Z MASK OUT ALL BUT STMNT TYPE K2504300 7BFB D011 434 | STO STID SAVE STMNT TYPE K2504310 7BFC C100 435 | LD 1 0 LOAD STMNT ID WORD AGAIN K2504320 7BFD E313 436 | AND 3 H07FC-Z MASK OUT ALL BUT STMNT NORM K2504330 7BFE 1802 437 | SRA 2 RIGHT JUSTIFY NORM K2504340 7BFF 690C 438 | STX 1 TMP1 SAVE PT OF CURRENT STMNT K2504350 7C00 800B 439 | A TMP1 ADD TO STMNT NORM TO K2504360 7C01 D008 440 | STO DT104+1 COMPUTE POINTER TO NXT STMNT K2504370 441 | * K2504380 7C02 C00A 442 | LD STID TEST IF END-STMNT K2504390 7C03 9317 443 | S 3 H1000-Z END STMNT ID CONSTANT K2504400 7C04 4C18 7CB6 444 | BSC L F3011,+- BR IF END-STMNT K2504410 7C06 9008 445 | S DTAID DATA STATEMENT TEST CONSTANT K2504420 7C07 4C18 7C10 446 | BSC L DT201,+- BRANCH IF DATA STATEMENT K2504430 7C09 6500 0000 447 | DT104 LDX L1 *-* MOVE POINTER TO NEXT STMNT K2504440 7C0B 70ED 448 | MDX DT102 CONTINUE SCAN FOR DATA STMNT K2504450 449 | * K2504460 450 | * CONSTANTS, TEMP STORAGE K2504470 451 | * K2504480 7C0C 0000 452 | TMP1 DC 0 POINTER TO CURRENT STMNT K2504490 7C0D 0000 453 | STID DC 0 STATEMENT ID TYPE K2504500 7C0E 0000 454 | DPLF DC 0 DUPLICATION FACTOR K2504510 7C0F E800 455 | DTAID DC /F800-/1000 K2504520 456 | * K2504530 457 | * MOVE POINTER TO NEXT DATAGROUP K2504540 458 | * K2504550 7C10 7101 459 | DT201 MDX 1 1 K2504560 460 | * K2504570 7C11 1000 461 | SLA 0 NOP K2504580 7C12 69F9 462 | STX 1 TMP1 SAVE CURRENT STRING POINTER K2504590 7C13 C0F8 463 | LD TMP1 COMPARE CURRENT STRING LOC K2504600 7C14 90F5 464 | S DT104+1 WITH START OF NEXT STMNT K2504610 7C15 4C10 7C09 465 | BSC L DT104,- BR IF END OF STATEMENT K2504620 466 | * K2504630 467 | * SAVE ADDR OF CONSTANT STRING - 1 K2504640 468 | * MOVE POINTER TO FIRST VARIABLE K2504650 469 | * K2504660 7C17 6D00 7D70 470 | STX L1 ADCST SAVE ADDRESS K2504670 7C19 C100 471 | LD 1 0 GET LENGTH OF CON STRING WD K2504680 7C1A E310 472 | AND 3 H0007-Z MASK OUT ALL BUT LENGTH K2504690 7C1B D005 473 | STO DT202+1 SAVE LENGTH K2504700 7C1C C100 474 | LD 1 0 GET WD HAVING DUPCTN FACTOR K2504710 7C1D 1803 475 | SRA 3 RIGHT JUSTIFY FACTOR IN ACC K2504720 7C1E D0EF 476 | STO DPLF STORE DUPLICATION FACTOR K2504730 7C1F 7101 477 | MDX 1 1 MOVE I/P PT PAST DATA HEADER K2504740 7C20 7500 0000 478 | DT202 MDX L1 *-* MOVE PT TO FIRST VAR NAME K2504750 7C22 C100 479 | DT203 LD 1 0 GET DATA POINTER K2504760 7C23 432A 480 | BSI 3 GETST-Z LOCATE SYMBOL TABLE ID WORD K2504770 7C24 C480 7D90 481 | LD I GET4 GET SYMBOL TABLE ID WORD K2504780 7C26 E30D 482 | AND 3 H1800-Z MASK ID WD FOR DIMENSION BIT K2504790 7C27 4C20 7C33 483 | BSC L DT301,Z BR IF DIMENSIONED VARIABLE K2504800 484 | * K2504810 485 | * OUTPUT DATA FOR A SINGLE VARIABLE K2504820 486 | * K2504830 7C29 C480 7D87 487 | LD I GET1+1 GET LOCATION K2504840 7C2B 4061 488 | DT211 BSI DHT OUTPUT DATAHDR IF NECESSARY K2504850 489 | * SUPERFLUOUS CODING REMOVED 2-9 K2504870 7C2C 4079 490 | BSI DTAC OUTPUT DATA CONSTANT K2504880 7C2D 74FF 7C0E 491 | DT221 MDX L DPLF,-1 DECR DUPLICATION FACTOR K2504890 7C2F 7001 492 | MDX DT222 BR IF NOT END OF VARIABLES K2504900 7C30 70DF 493 | MDX DT201 BR IF END OF DTAGROUP K2504910 7C31 7101 494 | DT222 MDX 1 1 BR TO PROCESS NEXT VARIABLE K2504920 7C32 70EF 495 | MDX DT203 K2504930 496 | * K2504940 497 | * DIMENSIONED VARIABLE ENCOUNTERED K2504950 498 | * K2504960 7C33 499 | DT301 EQU * ENTRY POINT LABEL K2504970 7C33 C0DA 500 | LD DPLF PLACE DUPLICATION FACTOR K2504980 7C34 D327 501 | STO 3 ADUPF-Z *INTO TEMPORARY WORK AREA K2504990 7C35 1010 502 | SLA 16 CLEAR ACC K2505000 7C36 D31C 503 | STO 3 OFSET-Z CLEAR OFFSET DISPLACEMENT WD K2505010 504 | * K2505020 7C37 C100 505 | LD 1 0 LOAD DATA POINTER WORD K2505030 7C38 1001 506 | SLA 1 SHIFT DISPLACEMENT INDR BIT K2505040 7C39 4C10 7C44 507 | BSC L DT320,- BRANCH, NO OFFSET K2505050 508 | * K2505060 7C3B 7101 509 | MDX 1 1 POSITION POINTER K2505070 7C3C C100 510 | LD 1 0 GET DISPLACEMENT WORD K2505080 7C3D D31C 511 | STO 3 OFSET-Z OFSET= F(SUBSCRIPT) K2505090 7C3E C1FF 512 | LD 1 -1 LOAD DATA POINTER WORD K2505100 7C3F 1002 513 | SLA 2 TEST FOR SUBSC ELEMENT BIT K2505110 7C40 4C10 7C44 514 | BSC L DT320,- BRANCH IF NOT ON K2505120 7C42 C301 515 | LD 3 ONE-Z SET DUPLICATION FACTOR = 1 K2505130 7C43 D327 516 | STO 3 ADUPF-Z *FOR SUBSCRIPTED VARIABLE K2505140 517 | * K2505150 7C44 518 | DT320 EQU * ENTRY POINT LABEL K2505160 7C44 C400 7A31 519 | LD L CCWD VSIZE=SIZE OF REAL VARIABLE K2505170 7C46 100E 520 | SLA 14 PLACE INDICATOR IN CARRY K2505180 7C47 C302 521 | LD 3 TWO-Z STANDARD VARIABLE SIZE K2505190 7C48 4802 522 | BSC C SKIP IF STANDARD PRECISION K2505200 7C49 C303 523 | LD 3 THREE-Z EXTENDED VARIABLE SIZE K2505210 7C4A D31D 524 | STO 3 VSIZE-Z SAVE VARIABLE SIZE K2505220 525 | * K2505230 7C4B C480 7D90 526 | LD I GET4 LOAD SYMBOL TABLE ID WORD K2505240 7C4D 1001 527 | SLA 1 TEST BIT 1 (REAL OR INTEGER) K2505250 7C4E 4C10 7C56 528 | BSC L DT340,- BRANCH IF REAL VARIABLE K2505260 529 | * K2505270 7C50 C400 7A31 530 | LD L CCWD VSIZE = SIZE OF INTEGER VAR K2505280 7C52 100A 531 | SLA 10 PLACE INDICATOR IN CARRY K2505290 7C53 C301 532 | LD 3 ONE-Z ONE WORD INTEGER SIZE K2505300 7C54 4802 533 | BSC C SKIP ON NO ONE WORD INTEGER K2505310 7C55 D31D 534 | STO 3 VSIZE-Z SAVE VARIABLE SIZE K2505320 535 | * K2505330 7C56 536 | DT340 EQU * ENTRY POINT LABEL K2505340 537 | * K2505350 7C56 C340 538 | LD 3 GET4-Z COMPUTE ARRAY SIZE IN WORDS K2505360 7C57 9303 539 | S 3 THREE-Z FIRST COMPUTE ADDR OF FIRST K2505370 7C58 D001 540 | STO *+1 WORD OF ARRAY SIZE K2505380 7C59 C400 0000 541 | LD L *-* LOAD ARRAY SIZE FROM SYM TBL K2505390 7C5B A31D 542 | M 3 VSIZE-Z MULTIPLY BY VARIABLE SIZE K2505400 7C5C 1090 543 | SLT 16 PUT PRODUCT IN ACC K2505410 7C5D D31E 544 | STO 3 ASIZE-Z SAVE IN ARRAY SIZE K2505420 545 | * K2505430 7C5E 931C 546 | S 3 OFSET-Z COMPUTE NO.OF ELEMENTS THAT K2505440 7C5F 1890 547 | SRT 16 CAN BE FILLED. K2505450 7C60 AB1D 548 | D 3 VSIZE-Z DIVIDE BY VARIABLE SIZE K2505460 7C61 D31F 549 | STO 3 NOELM-Z SAVE NO. ELEMENTS TO FILL K2505470 550 | * K2505480 7C62 9327 551 | S 3 ADUPF-Z SUBTRACT DUPLICATION FACTOR K2505490 7C63 4C08 7C6B 552 | BSC L DT330,+ BR, FILL ARRAY IF NOELM LE K2505500 553 | * DUPLICATION FACTOR K2505510 7C65 C327 554 | LD 3 ADUPF-Z NOELM = DPLF K2505520 7C66 D31F 555 | STO 3 NOELM-Z K2505530 556 | * K2505540 7C67 A31D 557 | M 3 VSIZE-Z COMPUTE ARRAY SIZE K2505550 7C68 1090 558 | SLT 16 NO. ELEMENTS * VAR SIZE K2505560 7C69 831C 559 | A 3 OFSET-Z PLUS OFFSET K2505570 7C6A D31E 560 | STO 3 ASIZE-Z =ARRAY SIZE K2505580 561 | * K2505590 7C6B 562 | DT330 EQU * ENTRY POINT K2505600 7C6B C0A2 563 | LD DPLF ADJUST DUPLICATION FACTOR K2505610 7C6C 931F 564 | S 3 NOELM-Z SUBTRACT NO. ELEMENTS K2505620 7C6D 8301 565 | A 3 ONE-Z PLUS ONE K2505630 7C6E D09F 566 | STO DPLF SAVE NEW DUPLICATION FACTOR K2505640 567 | * K2505650 7C6F C31F 568 | LD 3 NOELM-Z GET NO. ELEMENTS TO FILL K2505660 7C70 1801 569 | SRA 1 REMOVE LOW ORDER BIT K2505670 7C71 4C18 7C83 570 | BSC L DT350,+- BRANCH IF REMAINDER = 0 K2505680 571 | * K2505690 7C73 C480 7D90 572 | LD I GET4 LOAD SYMBOL TABLE ID WORD K2505700 7C75 1001 573 | SLA 1 TEST FOR INTEGER VARIABLE K2505710 7C76 4C10 7C83 574 | BSC L DT350,- BRANCH, NOT INTEGER VARIABLE K2505720 575 | * K2505730 7C78 C400 7A31 576 | LD L CCWD TEST CONTROL CARD WORD K2505740 7C7A 1009 577 | SLA 9 FOR ONE WORD INTEGERS K2505750 7C7B 4C28 7C83 578 | BSC L DT350,+Z BRANCH, ONE WORD INTEGERS K2505760 579 | * K2505770 7C7D 1005 580 | SLA 5 EXTENDED PREC BIT TO CARRY K2505780 7C7E C31F 581 | LD 3 NOELM-Z LOAD NO. ELEMENTS K2505790 7C7F 4802 582 | BSC C TEST CARRY FOR EXTENDED PREC K2505800 7C80 1001 583 | SLA 1 EXTENDED PREC MPY NO. ELTS*2 K2505810 7C81 831F 584 | A 3 NOELM-Z ADD ACTUAL NO. ELEMENTS K2505820 7C82 D31F 585 | STO 3 NOELM-Z NO.ELEMENTS *2 OR 3 - SAVE K2505830 586 | * K2505840 7C83 587 | DT350 EQU * ENTRY POINT LABEL K2505850 7C83 C480 7D87 588 | LD I GET1+1 PLACE DSF HEADER K2505860 7C85 931E 589 | S 3 ASIZE-Z DATA WD ADDR - ARRAY SIZE K2505870 7C86 831D 590 | A 3 VSIZE-Z PLUS VAR SIZE K2505880 7C87 4005 591 | BSI DHT BR TO SEE IF DATA HDR O/P K2505890 592 | * K2505900 593 | * SUPERFLUOUS CODING REMOVED 2-9 K2505920 7C88 401D 594 | DT360 BSI DTAC OUTPUT CONSTANTS 2-9 K2505930 7C89 74FF 7D6F 595 | MDX L NOELM,-1 DECR COUNT ON NO. ELEMENTS K2505940 7C8B 70FC 596 | MDX DT360 CONTINUE IF MORE O/P K2505950 7C8C 70A0 597 | MDX DT221 FINISHED, RETURN K2505960 598 | * K2505970 599 | * SUBROUTINE K2505980 600 | * TEST IF DATAHEADER NECESSARY K2505990 601 | * ACC CONTAINS ADDR OF VAR TO BE O/P K2506000 602 | * OUTPUT DATA HEADER IF NECESSARY K2506010 603 | * K2506020 7C8D 0000 604 | DHT DC 0 LINK ENTRY POINT K2506030 7C8E 4C18 7C96 605 | BSC L DHT1,+- IF ZERO, OUTPUT HEADER K2506040 7C90 9400 7A3D 606 | S L LOCTR TEST LOCATION COUNTER K2506050 7C92 4C18 7CA4 607 | BSC L DHT2,+- BR IF LOC = LOCTR, NO HDR K2506060 608 | * IS NEEDED K2506070 7C94 8400 7A3D 609 | A L LOCTR RESET LOCATION COUNTER K2506080 7C96 D400 7A3D 610 | DHT1 STO L LOCTR SAVE K2506090 7C98 4400 7DFD 611 | BSI L DHDRR OUTPUT DATA HEADER K2506100 7C9A C400 7A3B 612 | LD L INPT LOAD INDICATOR POINTER K2506110 7C9C 931B 613 | S 3 BFEND-Z DETERMINE IF BUFFER FULL K2506120 7C9D 4CA8 7C8D 614 | BSC I DHT,+Z RETURN IF NOT K2506130 7C9F 4400 7D11 615 | BSI L WRITS WRITE TO DISK K2506140 7CA1 C312 616 | LD 3 CD16-Z K2506150 7CA2 D400 7A3A 617 | STO L INCT RESET INDICATOR COUNTER K2506160 7CA4 4C80 7C8D 618 | DHT2 BSC I DHT RETURN K2506170 619 | * K2506180 620 | * SUBROUTINE OUTPUT DATA-CONSTANT K2506190 621 | * K2506200 622 | * FROM THE STRING K2506210 7CA6 0000 623 | DTAC DC 0 ENTRY POINT K2506220 7CA7 C320 624 | LD 3 ADCST-Z INSERT ADDRESS OF CON STRING K2506230 7CA8 D006 625 | STO DTAC2+1 SAVE ADDRESS OF CON STRING K2506240 7CA9 C400 7C21 626 | LD L DT202+1 INITLZ CONSTANT STRING COUNT K2506250 7CAB D321 627 | STO 3 CLCT-Z SAVE CONSTANT STRING COUNT K2506260 7CAC 7401 7CAF 628 | DTAC1 MDX L DTAC2+1,1 INCR ADDR OF CON STRING K2506270 7CAE C400 0000 629 | DTAC2 LD L *-* GET CONSTANT FR STRING K2506280 7CB0 4341 630 | BSI 3 OUABS-Z OUTPUT K2506290 7CB1 74FF 7D71 631 | MDX L CLCT,-1 CONSTANT STRING COUNT K2506300 7CB3 70F8 632 | MDX DTAC1 BR IF PART OF CNSTNT REMAINS K2506310 7CB4 4C80 7CA6 633 | BSC I DTAC RETURN IF END OF CONSTANT K2506320 634 | * K2506330 635 | ** K2506340 636 | * K2506350 637 | * K2506360 638 | * INITIALIZE LOCATIONCOUNTER K2506370 7CB6 1000 639 | F3011 SLA 0 K2506380 7CB7 C400 7A28 640 | LD L SOFXT NOP K2506390 641 | * (INCLUDING DEFINEFILE WORDS) K2506400 7CB9 D400 7A3D 642 | STO L LOCTR LOCATION COUNTER K2506410 7CBB 4400 7DFD 643 | BSI L DHDRR DATAHEADERROUTINE K2506420 644 | * K2506430 645 | * K2506440 646 | * OUTPUT CONSTANTS K2506450 647 | * SCANS SYMBOL TABLE AND OUTPUTS REAL K2506460 648 | * CONSTANTS, FOLLOWED BY A SCAN TO K2506470 649 | * OUTPUT INTEGER CONSTANTS K2506480 650 | * K2506490 651 | * INITIALIZE SYMBOL TABLE FOR OUTPUT K2506500 652 | * OF CONSTANTS K2506510 653 | * K2506520 7CBD C400 7A26 654 | INIST LD L SOFST LOAD START LOC OF ST 2-9 K2506530 7CBF D325 655 | STO 3 SYMTP-Z SYMBOL TABLE POINTER K2506540 656 | * K2506550 657 | * TEST IF END OF SYM TABLE K2506560 7CC0 C325 658 | Q1012 LD 3 SYMTP-Z SYMBOL TABLE POINTER K2506570 7CC1 9400 7A2A 659 | S L EOFST END OF SYMBOL TABLE K2506580 7CC3 4C08 7CF2 660 | BSC L Q1041,+ BR IF END OF SYMBOL TABLE K2506590 661 | * K2506600 7CC5 C480 7D75 662 | LD I SYMTP LOAD ID WORD FROM SYMBOL TBL K2506610 7CC7 4828 663 | BSC +Z SKIP IF NOT ENTRY OF CON K2506620 7CC8 7009 664 | MDX Q1021 BR IF ENTRY CONSTANT K2506630 665 | * K2506640 666 | * MOVE SYMBOL TABLE POINTER K2506650 667 | * BY 3 WORDS FOR MOST SYMBOLS K2506660 668 | * OR 6 WORDS FOR DIMENSIONED VARIABLES K2506670 7CC9 C480 7D75 669 | Q1013 LD I SYMTP LOAD SYMBOL TABLE ID WORD K2506680 7CCB E30D 670 | AND 3 H1800-Z TEST FOR DIMENSIONED VAR. K2506690 7CCC 4820 671 | BSC Z SKIP IF NOT DIMENSIONED VA K2506700 7CCD C30E 672 | LD 3 HFFFD-Z INCR BY -3 WDS FOR DIM VAR K2506710 7CCE 830E 673 | A 3 HFFFD-Z INCR BY -3 WDS FOR ALL ENT K2506720 7CCF 8325 674 | A 3 SYMTP-Z ADD TO SYMBOL TABLE POINTE K2506730 7CD0 D325 675 | STO 3 SYMTP-Z SAVE IN SYMBOL TABLE POINT K2506740 7CD1 70EE 676 | MDX Q1012 CONTINUE SCAN OF SYMBOL TB K2506750 677 | * K2506760 678 | * CONSTANT FOUND IN SYMBOL TABLE K2506770 679 | * OUTPUT REAL AND INTEGER CONSTANTS IN K2506780 680 | * ABSOLUTE MODE K2506790 681 | * K2506800 7CD2 6580 7D75 682 | Q1021 LDX I1 SYMTP PUT SYMBOL TABLE POINTER X K2506810 683 | * K2506820 684 | * SAVE LOCATION COUNTER K2506830 7CD4 C400 7A3D 685 | Q1022 LD L LOCTR LOAD LOCATION COUNTER K2506840 7CD6 D324 686 | STO 3 TEMP2-Z SAVE IN TEMPORARY STORAGE K2506850 687 | * K2506860 7CD7 C100 688 | LD 1 0 GET SYMBOL TABLE CONSTANT K2506870 7CD8 1001 689 | SLA 1 SHIFT INTEGER BIT TO SIGN K2506880 7CD9 4810 690 | BSC - SKIP IF INTEGER CONSTANT K2506890 7CDA 7005 691 | MDX Q1031 BR IF NOT K2506900 692 | * K2506910 693 | * TEST IF INTEGER CONSTANT OUTPUT PASS K2506920 7CDB C323 694 | LD 3 COSW-Z LOAD INTEGER CON O/P SWITC K2506930 7CDC 4C18 7CC9 695 | BSC L Q1013,+- BR IF NOT INTEGER CON O/P K2506940 696 | * K2506950 7CDE C101 697 | LD 1 1 SECOND WORD IN SYMBOL TABL K2506960 698 | * ENTRY TO ACCUMULATOR K2506970 7CDF 700E 699 | MDX Q1033 BR TO O/P IN ABSOLUTE MODE K2506980 700 | * K2506990 701 | * TEST IF REAL CONSTANT PASS K2507000 7CE0 C323 702 | Q1031 LD 3 COSW-Z LOAD INTEGER CON O/P SWITC K2507010 7CE1 4C20 7CC9 703 | BSC L Q1013,Z BR IF INTEGER CON INDICATED K2507020 704 | * K2507030 705 | * TEST IF EXTENDED PRECISION K2507040 7CE3 C400 7A31 706 | LD L CCWD LOAD CONTROL CARD WORD K2507050 7CE5 100D 707 | SLA 13 SHIFT EXTENDED PREC BIT K2507060 7CE6 4810 708 | BSC - SKIP IF EXTENDED PREC K2507070 7CE7 7003 709 | MDX Q1032 BR IF NOT EXTENDED PREC K2507080 710 | * K2507090 7CE8 C100 711 | LD 1 0 LOAD SYMBOL TABLE ID WORD K2507100 7CE9 E311 712 | AND 3 H00FF-Z MASK ALL BUT BITS 8-15 K2507110 7CEA 4341 713 | BSI 3 OUABS-Z SUBR OUTPUT, ENTRY = ABS K2507120 7CEB C101 714 | Q1032 LD 1 1 SECOND WORD IN ENTRY TO ACC K2507130 7CEC 4341 715 | BSI 3 OUABS-Z SUBR OUTPUT, ENTRY = ABS K2507140 7CED C102 716 | LD 1 2 THIRD WORD IN SYMBOL TABLE K2507150 717 | * ENTRY TO ACC K2507160 7CEE 4341 718 | Q1033 BSI 3 OUABS-Z SUBR OUTPUT, ENTRY = ABS K2507170 719 | * K2507180 720 | * INSERT ALLOCATION INTO SYM.TBL. K2507190 7CEF C324 721 | LD 3 TEMP2-Z GET ALLOC CON FROM TEMP STO K2507200 7CF0 D101 722 | STO 1 1 STORE IN 2ND WD OF SYM TBL K2507210 723 | * K2507220 7CF1 70D7 724 | MDX Q1013 BR TO CONTINUE SYM TBL SCAN K2507230 725 | * K2507240 726 | * TEST IF THAT WAS THE SECOND K2507250 727 | * (=INTEGER CONSTANT) PASS K2507260 728 | * K2507270 7CF2 C323 729 | Q1041 LD 3 COSW-Z CONSTANT OUTPUT SWITCH K2507280 7CF3 4C20 7CF8 730 | BSC L Q1051,Z BR IF SECOND PASS K2507290 7CF5 7401 7D73 731 | MDX L COSW,1 CHANGE CONSTANT O/P SWITCH K2507300 7CF7 70C5 732 | MDX INIST GO TO NEXT PASS K2507310 733 | * K2507320 734 | * OUTPUT OF CONSTANTS COMPLETED K2507330 735 | * START OUTPUT OF STRING DATA K2507340 736 | * K2507350 737 | * TEST THAT OUTPUT LOCATION COUNTER K2507360 738 | * CHECKS WITH THE ONE ASSUMED AT K2507370 739 | * STATEMENT ALLOCATION. IF NOT, K2507380 740 | * OUTPUT DUMMY WORD. K2507390 7CF8 C400 7A28 741 | Q1051 LD L SOFXT LOAD SIZE OF WORK AREA K2507400 7CFA 8400 7A29 742 | A L SOFGT PLUS SIZE OF CONSTANT AREA K2507410 7CFC 9400 7A3D 743 | S L LOCTR LESS THE LOCATION COUNTER K2507420 7CFE 4C08 7E69 744 | BSC L EXIT,+ BR IF SIZE WK AREA & CONST K2507430 745 | * AREA L.E. LOCATION COUNTER K2507440 7D00 1010 746 | SLA 16 CLEAR ACC K2507450 7D01 4341 747 | BSI 3 OUABS-Z OUTPUT DUMMY WORD K2507460 7D02 70F5 748 | MDX Q1051 CONTINUE LOOP K2507470 749 | * K2507480 750 | * BR TO LOADING OF NEXT PHASE K2507490 7D03 4C00 7E69 751 | BSC L EXIT K2507500 752 | * K2507510 753 | * PROGRAM BEING COMPILED IS A SUBR K2507520 754 | * INITIALIZE SUBR. OUTPUT K2507530 7D05 1000 755 | INISR SLA 0 NOP K2507540 756 | * K2507550 757 | * INSERT TYPECODE .SUBPROGR. K2507560 758 | * AND PRECISION K2507570 759 | * K2507580 7D06 C400 7A31 760 | LD L CCWD SPECIFY PRECISION K2507590 7D08 1802 761 | SRA 2 SHIFT EXTENDED PREC TO BIT15 K2507600 7D09 E301 762 | AND 3 1 MASK EXTENDED PRECISION BIT K2507610 7D0A 830B 763 | A 3 H0401-Z ADD TYPE AND PRECISION MASK K2507620 7D0B 4C00 7BA0 764 | BSC L Q101X RETURN TO CONTINUE PROCESSIN K2507630 765 | * K2507640 766 | * K2507650 7D0E 767 | BSS E 0 DISK CONSTANTS K2507660 7D0E 7001 768 | WR900 DC /7001 WRITE DISK PARAMETER K2507670 7D0F 7A40 769 | DC BUFF-2 DISK BUFFER AREA K2507680 7D10 63F0 770 | ENDLZ DC /63F0 END OF WK STO TEST CONSTANT K2507690 771 | * K2507700 772 | * WRITE DISK K2507710 7D11 0000 773 | WRITS DC *-* LINK ENTRY POIN K2507720 7D12 C0FE 774 | LD WRITS MOVE LINK WORD K2507730 7D13 D001 775 | STO WRITE TO RETURN LINK K2507740 7D14 7006 776 | MDX WRITT BRANCH TO WRITE DISK K2507750 7D15 0000 777 | WRITE DC 0 LINK ENTRY AND RETURN K2507760 778 | * K2507770 779 | * CORRECT WORDCOUNT IN DATAHEADER K2507780 7D16 4400 7DF0 780 | BSI L PCT BUFFER COUNT 2-3 K2507790 7D18 1000 781 | NOP 2-3 K2507800 7D19 1000 782 | NOP 2-3 K2507810 7D1A 1000 783 | NOP 2-3 K2507820 784 | * K2507830 785 | * K2507840 7D1B C400 7A41 786 | WRITT LD L BUFF-1 CHECK SECTOR ADDRESS K2507850 7D1D 1004 787 | SLA 4 REMOVE HIGH ORDER BITS K2507860 7D1E 90F1 788 | S ENDLZ TEST IF END OF WORKING STO K2507870 7D1F 4C10 7D45 789 | BSC L NOWS,- BRANCH IF NO WORKING STO K2507880 7D21 C8EC 790 | LDD WR900 LOAD DISK WRITE PARAMETERS K2507890 7D22 4400 00F2 791 | BSI L DZ000 WRITE SECTOR ONTO DISK K2507900 7D24 7400 00EE 792 | MDX L $DBSY,0 SKIP IF DISK READY K2507910 7D26 70FD 793 | MDX *-3 LOOP IF DISK BUSY K2507920 794 | * RESET POINTERS K2507930 7D27 C400 7A3B 795 | LD L INPT INDICATOR POINTER K2507940 7D29 930C 796 | S 3 C320-Z DECR INDICATOR POINTER K2507950 7D2A D400 7A3B 797 | STO L INPT SAVE BACK IN POINTER K2507960 7D2C C400 7A39 798 | LD L BUFPT BUFFER POINTER K2507970 7D2E 930C 799 | S 3 C320-Z DECR BUFFERPOINTER K2507980 7D2F D400 7A39 800 | STO L BUFPT SAVE BACK IN BUFFER POINTER K2507990 7D31 C400 7A3C 801 | LD L DHDRA DATA HEADER ADDR K2508000 7D33 930C 802 | S 3 C320-Z DECR DATA HEADER ADDR K2508010 7D34 D400 7A3C 803 | STO L DHDRA SAVE BACK IN DATA HDR ADDR K2508020 804 | * K2508030 805 | * MOVE BUFFER TAIL TO FRONT OF K2508040 806 | * NEXT BUFFER K2508050 807 | * K2508060 7D36 6318 808 | LDX 3 24 XR3 = WORD COUNT OF 24 K2508070 7D37 C700 7B81 809 | MOV1 LD L3 BUFF+319 MOVE LAST 24 WDS OF BFR AREA K2508080 7D39 D700 7A41 810 | STO L3 BUFF-1 TO HEADER AREA K2508090 7D3B 73FF 811 | MDX 3 -1 COUNT K2508100 7D3C 70FA 812 | MDX MOV1 BR IF NO SKIP K2508110 7D3D 6700 7D50 813 | LDX L3 ZERO RESTORE XR3 TO CONSTANT K2508120 814 | * K2508130 7D3F 7401 7A41 815 | MDX L BUFF-1,1 INCR SECTORADDR,SCRATCHAREA K2508140 816 | * K2508150 7D41 7414 7A3A 817 | MDX L INCT,20 MAKE INCT NON-16 K2508160 818 | * K2508170 7D43 4C80 7D15 819 | BSC I WRITE RETURN K2508180 820 | * K2508190 7D45 6101 821 | NOWS LDX 1 1 CALL RECOVERY - NO WS K2508200 7D46 6D00 7A23 822 | STX L1 SOFS-1 K2508210 7D48 6580 7E6F 823 | LDX I1 NXTPH+1 LOAD PARAMETER FOR READING K2508220 7D4A CC00 7E70 824 | LDD L NXTPH+2 NEXT PHASE K2508230 7D4C 4C00 7FBC 825 | BSC L ROL GO TO READ NEXT PHASE K2508240 826 | * K2508250 827 | * K2508260 828 | * K2508270 829 | * K2508280 7D4E 830 | BSS E 0 K2508290 7D4E 0000 831 | STONA DC 0 STORED NAME WD 1 K2508300 7D4F 0000 832 | DC 0 STORED NAME WD 2 K2508310 833 | * K2508320 7D50 0000 834 | ZERO DC 0 CONSTANT K2508330 7D50 835 | Z EQU ZERO CONSTANT K2508340 7D51 0001 836 | ONE DC 1 CONSTANT K2508350 7D52 0002 837 | TWO DC 2 CONSTANT K2508360 7D53 0003 838 | THREE DC 3 CONSTANT K2508370 7D54 0004 839 | FOUR DC 4 CONSTANT K2508380 7D55 0002 840 | H0002 DC /0002 CONSTANT K2508390 7D56 0003 841 | H0003 DC /0003 CONSTANT K2508400 7D57 0005 842 | H0005 DC /0005 CONSTANT K2508410 7D58 0007 843 | SEVEN DC 7 CONSTANT K2508420 7D59 0200 844 | H0200 DC /0200 CONSTANT K2508430 7D5A 0201 845 | TYPE DC /0201 MAINL REL TYPE W PREC CONST K2508440 7D5B 0401 846 | H0401 DC /0401 CONSTANT K2508450 7D5C 0140 847 | C320 DC 320 CONSTANT K2508460 7D5D 1800 848 | H1800 DC /1800 CONSTANT K2508470 7D5E FFFD 849 | HFFFD DC /FFFD CONSTANT K2508480 7D5F FEFF 850 | HFEFF DC /FEFF EXT PRECISION MASK K2508490 7D60 0007 851 | H0007 DC /0007 CONSTANT K2508500 7D61 00FF 852 | H00FF DC /00FF CONSTANT K2508510 7D62 0010 853 | CD16 DC 16 CONSTANT K2508520 7D63 07FC 854 | H07FC DC /07FC CONSTANT K2508530 7D64 F800 855 | HF800 DC /F800 CONSTANT K2508540 7D65 F000 856 | HF000 DC /F000 ID FOR 'DEFINE FILE' K2508550 7D66 07FF 857 | H07FF DC /07FF CONSTANT K2508560 7D67 1000 858 | H1000 DC /1000 CONSTANT K2508570 7D68 2000 859 | H2000 DC /2000 CONSTANT K2508580 7D69 8000 860 | H8000 DC /8000 MASK TO SEE IF DISK IO(BIT0) K2508590 7D6A 4000 861 | H4000 DC /4000 CONSTANT K2508600 7D6B 7B82 862 | BFEND DC BUFF+320 END OF BUFFER O/P AREA 212 K2508610 7D6C 0000 863 | OFSET DC *-* DISPLACEMENT WD FR DATA PT K2508620 7D6D 0000 864 | VSIZE DC *-* VARIABLE SIZE = 1,2 OR 3 K2508630 7D6E 0000 865 | ASIZE DC *-* ARRAY SIZE DATA STMNT K2508640 7D6F 0000 866 | NOELM DC *-* NO. ELEMENTS TO BE FILLED K2508650 7D70 0000 867 | ADCST DC *-* ADDR CONSTANT STRING - 1 K2508660 7D71 0000 868 | CLCT DC *-* LENGTH OF CONSTANT STRING K2508670 869 | * SUPERFLUOUS WORD REMOVED 2-9 K2508680 870 | * K2508690 7D72 0000 871 | NORM DC 0 WD COUNT I/P STRING K2508700 7D73 0000 872 | COSW DC 0 CONSTANT PASS SWITCH K2508710 7D74 0000 873 | TEMP2 DC 0 TEMPORARY STORAGE K2508720 7D75 0000 874 | SYMTP DC 0 SYMBOL TABLE POINTER K2508730 7D76 0000 875 | SCT DC 0 SEVEN COUNT K2508740 7D77 0000 876 | ADUPF DC *-* TEMPORARY DUPLICATION FACTOR K2508750 7D78 0000 877 | ORGSW DC 0 ORIGIN SWITCH 2-4 K2508760 7D79 0101 878 | H0101 DC /0101 ABSOLUTE TYPE 2-4 K2508770 879 | * K2508780 880 | * K2508790 881 | * SUBROUTINE GETST K2508800 882 | * GET OBJECT TIME ADDRESS OR K2508810 883 | * ALPHABETIC NAME FROM SYMBOL TABLE K2508820 884 | * ON ENTRY ACC = STRING POINTER TO K2508830 885 | * SYMBOL TABLE K2508840 886 | * K2508850 7D7A 0000 887 | GETST DC 0 LINK ENTRY POINT K2508860 7D7B E316 888 | AND 3 H07FF-Z MASK OUT ALL BUT VAR PT K2508870 7D7C D00A 889 | STO GET1+1 SAVE VARIABLE POINTER K2508880 7D7D C400 7A26 890 | LD L SOFST LOAD START OF SYMBOL TABLE K2508890 7D7F 9007 891 | S GET1+1 SUBTRACT POINTER IN SYM TBL K2508900 7D80 9006 892 | S GET1+1 *THREE K2508910 7D81 9005 893 | S GET1+1 *TIMES K2508920 7D82 8307 894 | A 3 H0005-Z ADD 5 TO POS AT END OF DATA K2508930 7D83 D003 895 | STO GET1+1 SAVE POINTER K2508940 7D84 9302 896 | S 3 TWO-Z MOVE PT BACK TO ADDR OF ID K2508950 7D85 D00A 897 | STO GET4 STORE ADDR OF ID-WD K2508960 7D86 C400 0000 898 | GET1 LD L *-* LOAD VARIABLE FROM SYM TBL K2508970 7D88 18D0 899 | RTE 16 PUT IN EXTENSION K2508980 7D89 74FF 7D87 900 | MDX L GET1+1,-1 DECR POINTER K2508990 7D8B 1000 901 | SLA 0 GUARDS AGAINST SKIP K2509000 7D8C C480 7D87 902 | LD I GET1+1 GET DATA WD FR SYM TBL K2509010 7D8E 4C80 7D7A 903 | BSC I GETST RETURN K2509020 7D90 0000 904 | GET4 DC *-* ADDR OF SYM TBL ID WORD K2509030 905 | * K2509040 906 | * OUTPUT ADDRESS OR CONSTANT IN K2509050 907 | * ABSOLUTE MODE K2509060 908 | * ACCUMULATOR AND EXTENSION CONTAIN K2509070 909 | * WORDS TO BE OUTPUT K2509080 910 | * K2509090 911 | * ENTRY = ABSOLUTE OUTPUT K2509100 7D91 0000 912 | OUABS DC 0 LINK K2509110 7D92 DBFE 913 | T8011 STD 3 STONA-Z STORE ACC AND EXTENSION K2509120 7D93 C300 914 | LD 3 ZERO-Z ZERO-ZERO K2509130 7D94 4021 915 | BSI IBITS TO INDICATOR AREA K2509140 916 | * K2509150 7D95 C3FE 917 | T8012 LD 3 STONA-Z GET STORED ACCUMULATOR K2509160 7D96 403B 918 | BSI TOBUF MOVE TO BUFFER K2509170 919 | * K2509180 7D97 4C80 7D91 920 | T8016 BSC I OUABS RETURN K2509190 921 | * K2509200 922 | * OUTPUT ADDRESS OR CONSTANT IN K2509210 923 | * RELOCATABLE MODE K2509220 924 | * K2509230 925 | * ENTRY = RELATIVE OUTPUT K2509240 926 | * RELATIVE OUTPUT (INCLUDES TEST K2509250 927 | * WHETHER VARIABLE IS IN COMMON, IN K2509260 928 | * WHICH CASE OUTPUT IS ABSOLUTE K2509270 929 | * K2509280 7D99 0000 930 | OUREL DC 0 LINK ENTRY POINT K2509290 7D9A DBFE 931 | T8013 STD 3 STONA-Z STORE ACC AND EXTENSION K2509300 7D9B C0FD 932 | LD OUREL SET LINK RETURN ADDRESS K2509310 7D9C D0F4 933 | STO OUABS IN ABSOLUTE LINK EXIT POINT K2509320 7D9D C400 7D87 934 | LD L GET1+1 LOAD ADDR OF SYM TBL DATA WD K2509330 7D9F 9301 935 | S 3 ONE-Z SUBTRACT 1 TO GET ADDR ID WD K2509340 7DA0 D001 936 | STO T8014+1 INSERT ADDR OF SYM TBL ID WD K2509350 7DA1 C400 0000 937 | T8014 LD L *-* LOAD SYM TBL ID WORD K2509360 7DA3 E318 938 | AND 3 H2000-Z TEST FOR COMMON INDR BIT K2509370 7DA4 4C18 7DA8 939 | BSC L T8015,+- BR IF NOT IN COMMON K2509380 7DA6 C300 940 | LD 3 ZERO-Z ZERO INDICATOR BIT MASK K2509390 7DA7 700C 941 | MDX T8017+1 GO OUTPUT INDICATOR BITS K2509400 942 | * K2509410 7DA8 C328 943 | T8015 LD 3 ORGSW-Z IS IT ABS COMPILATION 2-4 K2509420 7DA9 4C18 7DB3 944 | BSC L T8017,+- NO - BRANCH 2-4 K2509430 7DAB C3FE 945 | LD 3 STONA-Z YES - RELOCATE 2-4 K2509440 7DAC 8400 7A23 946 | A L ORG THIS 2-4 K2509450 7DAE D3FE 947 | STO 3 STONA-Z ADDRESS 2-4 K2509460 7DAF 4C28 7BBF 948 | BSC L Q101C,+Z BRANCH TO ERROR IF NEG 2-4 K2509470 7DB1 C300 949 | LD 3 ZERO-Z ZERO-ZERO TO IND BITS 2-4 K2509480 7DB2 7001 950 | MDX *+1 SKIP 2-4 K2509490 951 | * K2509500 7DB3 C301 952 | T8017 LD 3 ONE-Z ZERO-ONE FOR INDICATOR BITS K2509510 7DB4 4001 953 | BSI IBITS MOVE TO INDICATOR AREA K2509520 7DB5 70DF 954 | MDX T8012 RETURN K2509530 955 | * K2509540 956 | * K2509550 957 | * INDICATOR BITS K2509560 958 | * ACCUMULATOR CONTAINS BIT PATTERNS TO K2509570 959 | * MASK INTO THE INDICATOR POINTER K2509580 960 | * BASED ON SHIFTS SPECIFIED IN THE K2509590 961 | * INDICATOR COUNTER K2509600 962 | * K2509610 963 | * K2509620 7DB6 0000 964 | IBITS DC 0 LINK ENTRY POINT K2509630 7DB7 D017 965 | STO IBIT5 SAVE BIT PATTERNS K2509640 7DB8 C400 7A3A 966 | LD L INCT PRODUCE SLA AND SRA K2509650 7DBA 8015 967 | A IBIT6 INSTRUCTIONS AND INSERT K2509660 7DBB D006 968 | STO IBIT3 (LENGTH OF SHIFT DEPENDS ON K2509670 7DBC 8014 969 | A IBIT7 INDICATOR COUNTER) K2509680 7DBD D002 970 | STO IBIT2 SET UP SRA INSTRUCTION K2509690 7DBE C480 7A3B 971 | LD I INPT K2509700 7DC0 1800 972 | IBIT2 SRA *-* SRA (INCT - 2) K2509710 7DC1 800D 973 | A IBIT5 TEMP VALUE FROM ACC K2509720 7DC2 1000 974 | IBIT3 SLA *-* SLA (INCT - 2) K2509730 7DC3 D480 7A3B 975 | STO I INPT K2509740 7DC5 74FE 7A3A 976 | MDX L INCT,-2 DECR INDICATOR COUNTER K2509750 7DC7 7005 977 | MDX IBIT4 BR IF NOT ZERO (=NO SKIP) K2509760 7DC8 7409 7A3B 978 | MDX L INPT,9 INCR INDICATOR POINTER K2509770 7DCA C312 979 | LD 3 CD16-Z REINITIALIZE INDICATOR CTR K2509780 7DCB D400 7A3A 980 | STO L INCT TO 16 K2509790 7DCD 4C80 7DB6 981 | IBIT4 BSC I IBITS RETURN K2509800 7DCF 0000 982 | IBIT5 DC 0 TEMPORARY STORAGE K2509810 7DD0 0FFE 983 | IBIT6 DC /0FFE .SLA 0. - 0002 K2509820 7DD1 0800 984 | IBIT7 DC /0800 .SRA 0. - .SLA 0. K2509830 985 | * K2509840 986 | * SUBROUTINE K2509850 987 | * MOVE TO BUFFER K2509860 988 | * ACCUMULATOR CONTAINS INDICATOR K2509870 989 | * POINTER K2509880 990 | * K2509890 7DD2 0000 991 | TOBUF DC 0 LINK ENTRY POINT K2509900 7DD3 D480 7A39 992 | STO I BUFPT SAVE WORD IN BUFFER K2509910 7DD5 7401 7A3D 993 | MDX L LOCTR,1 INCR LOCATION COUNTER K2509920 994 | * K2509930 995 | * TEST IF SKIP TO NEXT 8WORD GROUP K2509940 7DD7 C400 7A3A 996 | LD L INCT LOAD INDICATOR COUNTER K2509950 7DD9 9312 997 | S 3 CD16-Z SUBTRACT 16 K2509960 7DDA 4C20 7DED 998 | BSC L TOBU1,Z BR IF NOT NEW INDR WORD K2509970 7DDC D480 7A3B 999 | STO I INPT ZERO TO NEW INDICATOR WORD K2509980 1000 | * K2509990 1001 | * SUPERFLUOUS CODING REMOVED 2-9 K2510000 1002 | * K2510050 1003 | * TEST IF END OF BUFFER K2510060 7DDE C400 7A3B 1004 | TEOB LD L INPT LOAD INDICATOR POINTER K2510070 7DE0 931B 1005 | S 3 BFEND-Z K2510080 7DE1 4C28 7DEC 1006 | BSC L TOBUC,Z+ BR IF BUFF NOT FULL K2510090 7DE3 43C5 1007 | BSI 3 WRITE-Z K2510100 7DE4 C400 7A3B 1008 | LD L INPT INDIC PTR TO K2510110 7DE6 D400 7A39 1009 | STO L BUFPT BUFFER POINTER K2510120 7DE8 4400 7DFD 1010 | BSI L DHDRR DATAHEADERROUTINE K2510130 7DEA 4C80 7DD2 1011 | BSC I TOBUF REUTRN K2510140 1012 | * K2510150 7DEC 4003 1013 | TOBUC BSI PCT BUFFER COUNT SUBR K2510160 7DED 4002 1014 | TOBU1 BSI PCT BUFFER COUNT SUBR K2510170 7DEE 4C80 7DD2 1015 | BSC I TOBUF RETURN K2510180 1016 | * K2510190 1017 | * K2510200 1018 | * SUBROUTINE MOVE BUFFERPOINTERS K2510210 1019 | * K2510220 7DF0 0000 1020 | PCT DC 0 LINK K2510230 1021 | * K2510240 1022 | * INCR COUNT IN DATAHEADER K2510250 7DF1 C400 7A3C 1023 | LD L DHDRA LOAD ADDR OF NEXT DATA WD K2510260 7DF3 8301 1024 | A 3 ONE-Z ADD 1 K2510270 7DF4 D001 1025 | STO PCT0+1 SAVE ADDR OF CNT NXT DATA WD K2510280 7DF5 7401 0000 1026 | PCT0 MDX L *-*,1 INCR CNT OF DATA WDS K2510290 1027 | * K2510300 7DF7 7401 7A3E 1028 | MDX L PRLGT,1 INCR PROGRAM LENGTH COUNT K2510310 7DF9 7401 7A39 1029 | MDX L BUFPT,1 INCR BUFFERPOINTER K2510320 7DFB 4C80 7DF0 1030 | PCT1 BSC I PCT RETURN K2510330 1031 | * K2510340 1032 | * K2510350 1033 | * DATAHEADER ROUTINE K2510360 1034 | * OUTPUT DATA HEADER K2510370 1035 | * ACCUMULATOR CONTAINS LOCATION COUNTER K2510380 1036 | * K2510390 7DFD 0000 1037 | DHDRR DC 0 LINK K2510400 7DFE 7043 1038 | DHDR1 MDX FIRST FIRST-TIME-SWITCH K2510410 1039 | * (AFTER FIRST TIME = NO OP) K2510420 7DFF C400 7A3A 1040 | LD L INCT LOAD INDICATOR COUNTER K2510430 7E01 9312 1041 | S 3 CD16-Z SUBTRACT 16 K2510440 7E02 4C20 7E17 1042 | BSC L DHDR0,Z BR IF NOT EMPTY K2510450 7E04 C480 7DF6 1043 | LD I PCT0+1 LOAD NO. DATA WDS IN BUFFER K2510480 7E06 9301 1044 | S 3 ONE-Z DECR BY 1 K2510490 7E07 D480 7DF6 1045 | STO I PCT0+1 ADJUST HEADER K2510500 7E09 9302 1046 | S 3 TWO-Z CHECK IF NO DATA WORDS 2-8 K2510501 7E0A 4C20 7E11 1047 | BSC L LAB1,Z DO NOT BRANCH IF SO 2-8 K2510502 7E0C 74FD 7A3E 1048 | MDX L PRLGT,-3 OVERLAY LAST DATA HEADER 2-8 K2510503 7E0E 74FE 7A3B 1049 | MDX L INPT,-2 *WITH THE NEW ONE 2-8 K2510504 7E10 7002 1050 | MDX LAB2 2-8 K2510505 7E11 74FF 7A3E 1051 | LAB1 MDX L PRLGT,-1 2-8 K2510506 7E13 C400 7A3B 1052 | LAB2 LD L INPT LOAD INDICATOR POINTER 2-8 K2510507 7E15 D400 7A39 1053 | STO L BUFPT RESET BUFFER POINTER 2-8 K2510508 7E17 1054 | DHDR0 EQU * ENTRY POINT K2510510 7E17 C328 1055 | LD 3 ORGSW-Z IS IT ABSOLUTE 2-4 K2510520 7E18 4C18 7E21 1056 | BSC L DHDRY,+- NO - BRANCH 2-4 K2510530 7E1A C400 7A3D 1057 | LD L LOCTR RELOCATE THE 2-4 K2510540 7E1C 8400 7A23 1058 | A L ORG LOCATION COUNTER 2-4 K2510550 7E1E 4C28 7BBF 1059 | BSC L Q101C,+Z ERROR IF NEGATIVE 2-4 K2510560 7E20 7002 1060 | MDX DHDRZ CONTINUE 2-4 K2510570 7E21 C400 7A3D 1061 | DHDRY LD L LOCTR LOCCOUNTER TO DATAHEADER K2510580 7E23 D480 7A39 1062 | DHDRZ STO I BUFPT SAVE IN BUFFER K2510590 7E25 C400 7A39 1063 | LD L BUFPT INSERT NEW DATAHEADER ADDR K2510600 7E27 D400 7A3C 1064 | STO L DHDRA SAVE K2510610 7E29 8301 1065 | A 3 ONE-Z INCREASE TO POINT 2-8 K2510613 7E2A D0CB 1066 | STO PCT0+1 *AT WORD COUNT 2-8 K2510616 7E2B 7401 7A39 1067 | MDX L BUFPT,1 INCR BUFFER POINTER K2510620 7E2D C303 1068 | LD 3 THREE-Z INITIAL COUNT = 3 K2510630 1069 | * (INDICATOR WORD +2) K2510640 7E2E D480 7A39 1070 | STO I BUFPT SAVE IN BUFFER K2510650 7E30 7401 7A39 1071 | MDX L BUFPT,1 INCR BUFFER POINTER K2510660 7E32 C300 1072 | LD 3 ZERO-Z CLEAR ACC K2510670 7E33 D480 7A39 1073 | STO I BUFPT ZERO TO FIRST INDICATOR K2510680 7E35 C400 7A39 1074 | LD L BUFPT GET BUFFER POINTER K2510690 7E37 D400 7A3B 1075 | STO L INPT INSER INDICATOR POINTER K2510700 7E39 C312 1076 | LD 3 CD16-Z RESET INDICATOR POINTER K2510710 7E3A D400 7A3A 1077 | STO L INCT K2510720 7E3C 7401 7A39 1078 | MDX L BUFPT,1 MOVE BUFPTR TO NEXT DATAWORD K2510730 7E3E 7403 7A3E 1079 | MDX L PRLGT,3 COUNT 3 FOR DATAHDR K2510740 7E40 4C80 7DFD 1080 | DHDRX BSC I DHDRR RETURN K2510750 1081 | * K2510760 1082 | * USED AT FIRST ENTRY TO ROUTINE K2510770 7E42 D400 7A3D 1083 | FIRST STO L LOCTR INSERT LOCATION COUNTER K2510780 7E44 D400 7A4E 1084 | STO L WD13 SAVE IN HEADER WD K2510790 7E46 C328 1085 | LD 3 ORGSW-Z IS IT ABSOLUTE 2-4 K2510800 7E47 4C18 7E51 1086 | BSC L FRST1,+- NO - BRANCH 2-4 K2510810 7E49 C400 7A4E 1087 | LD L WD13 YES - LOAD WORD 13 2-4 K2510820 7E4B 4C20 7E55 1088 | BSC L FRST2,Z BRANCH IF NON-ZERO 2-4 K2510830 7E4D C400 7A23 1089 | LD L ORG SET ORIGIN ADDRESS 2-4 K2510840 7E4F D400 7A4E 1090 | STO L WD13 IN WORD 13 2-4 K2510850 7E51 C002 1091 | FRST1 LD NOP REPLACE FIRST-TIME-BRANCH K2510860 7E52 D0AB 1092 | STO DHDR1 BY NOP K2510870 7E53 70EC 1093 | MDX DHDRX TO RETURN K2510880 7E54 1000 1094 | NOP SLA 0 K2510890 1095 | * K2510900 7E55 9301 1096 | FRST2 S 3 ONE-Z IS IT ONE 2-4 K2510910 7E56 4C20 7E5E 1097 | BSC L FRST3,Z NO - BRANCH 2-4 K2510920 7E58 4341 1098 | BSI 3 OUABS-Z YES - OUTPUT DUMMY 2-4 K2510930 7E59 C400 7A23 1099 | LD L ORG WORD AT THE 2-4 K2510940 7E5B D400 7A4E 1100 | STO L WD13 ORIGIN ADDRESS 2-4 K2510950 7E5D 70F3 1101 | MDX FRST1 GO BACK AGAIN 2-4 K2510960 1102 | * K2510970 7E5E C400 7A23 1103 | FRST3 LD L ORG SET ORIGIN ADDRESS 2-4 K2510980 7E60 D400 7A4E 1104 | STO L WD13 IN DATA HEADER 2-4 K2510990 7E62 C0F1 1105 | LD NOP SET NOP IN 2-4 K2511000 7E63 D09A 1106 | STO DHDR1 FIRST TIME BRANCH 2-4 K2511010 7E64 C300 1107 | LD 3 ZERO-Z OUTPUT DUMMY 2-4 K2511020 7E65 4341 1108 | BSI 3 OUABS-Z WORD 2-4 K2511030 7E66 74FF 7A3D 1109 | MDX L LOCTR,-1 RESTORE LOCTR 2-4 K2511040 7E68 7095 1110 | MDX DHDR1 MAKE NEW HEADER 2-4 K2511050 1111 | * K2511060 1112 | * K2511070 1113 | * LOAD NEXT PHASE K2511080 1114 | * K2511090 7E69 6580 7E6F 1115 | EXIT LDX I1 NXTPH+1 LOAD PARAM FOR READING K2511100 7E6B C804 1116 | LDD NXTPH+2 NEXT PHASE K2511110 7E6C 4C00 7FBC 1117 | BSC L ROL GO TO READ NEXT PHASE K2511120 7E6E 1118 | BSS E 0 K2511130 7E6E 0038 1119 | NXTPH DC 56 ID OF NEXT PHASE K2511140 7E6F 1120 | BSS 3 LOADER TABLE FOR NEXT PHASE K2511150 1121 | * K2511160 1122 | * K2511170 1123 | * PROGRAM ENTRY K2511180 7E72 6137 1124 | ENT LDX 1 PHID GET ID THIS PHASE K2511190 7E73 6D00 0078 1125 | STX L1 $PHSE STORE IN SYSTEM PHASE AREA K2511200 1126 | * TEST IF OUTPUT IS TO BE DEFERRED K2511210 1127 | * K2511220 7E75 C400 7A2D 1128 | LD L ERROR K2511230 7E77 4C18 7A84 1129 | BSC L START,+- BRANCH TO START IF NO K2511240 1130 | * ERROR K2511250 7E79 4C00 7E69 1131 | BSC L EXIT K2511260 1132 | * K2511270 1133 | * SUPERFLUOUS CODING REMOVED 2-9 K2511280 7E7B 1134 | BSS /7F35-* PATCH AREA K2511320 7F35 0000 1135 | DC 0 K2511330 7F36 1136 | END BPHAR-2 K2511340 There were no errors in this assembly === CROSS REFERENCES ========================================================== Name Val Defd Referenced $DBSY 00EE 103 792 $FPAD 0095 105 234 $PHSE 0078 99 1125 $WSDR 007A 104 233 ADCST 7D70 867 470 624 ADUPF 7D77 876 501 516 551 554 ASIZE 7D6E 865 544 560 589 BFEND 7D6B 862 613 1005 BPHAR 7A36 164 1136 BUFF 7A42 197 200 235 300 769 786 809 810 815 862 BUFPT 7A39 185 798 800 992 1009 1029 1053 1062 1063 1067 1070 1071 1073 1074 1078 C320 7D5C 847 796 799 802 CCWD 7A31 123 242 274 317 322 519 530 576 706 760 CD16 7D62 853 616 979 997 1041 1076 CLCT 7D71 868 627 631 COMON 7A2B 117 332 COSW 7D73 872 694 702 729 731 COUNT 7BC9 354 355 362 413 CSIZE 7A2C 118 329 DFCNT 7A33 144 264 281 349 DHDR0 7E17 1054 1042 DHDR1 7DFE 1038 1092 1106 1110 DHDRA 7A3C 188 801 803 1023 1064 DHDRR 7DFD 1037 357 611 643 1010 1080 DHDRX 7E40 1080 1093 DHDRY 7E21 1061 1056 DHDRZ 7E23 1062 1060 DHT 7C8D 604 488 591 614 618 DHT1 7C96 610 605 DHT2 7CA4 618 607 DPLF 7C0E 454 476 491 500 563 566 DT102 7BF9 432 448 DT104 7C09 447 440 464 465 DT201 7C10 459 446 493 DT202 7C20 478 473 626 DT203 7C22 479 495 DT211 7C2B 488 DT221 7C2D 491 597 DT222 7C31 494 492 DT301 7C33 499 483 DT320 7C44 518 507 514 DT330 7C6B 562 552 DT340 7C56 536 528 DT350 7C83 587 570 574 578 DT360 7C88 594 596 DTAC 7CA6 623 490 594 633 DTAC1 7CAC 628 632 DTAC2 7CAE 629 625 628 DTAID 7C0F 455 445 DZ000 00F2 102 791 ENDLZ 7D10 770 788 ENT 7E72 1124 172 EOFS 7A25 111 EOFST 7A2A 116 659 ERROR 7A2D 119 297 340 1128 EXIT 7E69 1115 298 341 744 751 1131 F1012 7BCA 355 350 F1014 7BD0 362 392 F1015 7BD3 365 378 F1016 7BDE 377 376 F1021 7BE1 386 371 F1022 7BE3 389 415 F1023 7BE8 395 391 F1024 7BF1 409 396 F1025 7BF3 413 406 F2012 7BF7 425 351 364 F3011 7CB6 639 444 FIRST 7E42 1083 1038 FNAME 7A2E 120 257 FOUR 7D54 839 386 FRST1 7E51 1091 1086 1101 FRST2 7E55 1096 1088 FRST3 7E5E 1103 1097 GET1 7D86 898 487 588 889 891 892 893 895 900 902 934 GET4 7D90 904 481 526 538 572 897 GETST 7D7A 887 400 480 903 H0002 7D55 840 H0003 7D56 841 H0005 7D57 842 894 H0007 7D60 851 472 H0080 7BC3 343 326 H00FF 7D61 852 712 H0101 7D79 878 246 H0200 7D59 844 H0401 7D5B 846 763 H07FC 7D63 854 366 436 H07FF 7D66 857 888 H1000 7D67 858 443 H1800 7D5D 848 482 670 H2000 7D68 859 267 938 H4000 7D6A 861 277 H8000 7D69 860 271 HF000 7D65 856 370 HF800 7D64 855 369 433 HFEFF 7D5F 850 275 HFFFD 7D5E 849 672 673 IBIT2 7DC0 972 970 IBIT3 7DC2 974 968 IBIT4 7DCD 981 977 IBIT5 7DCF 982 965 973 IBIT6 7DD0 983 967 IBIT7 7DD1 984 969 IBITS 7DB6 964 915 953 981 INCT 7A3A 186 617 817 966 976 980 996 1040 1077 INISR 7D05 755 314 INIST 7CBD 654 732 INIT 7AB0 287 INPT 7A3B 187 612 795 797 971 975 978 999 1004 1008 1049 1052 1075 IOCS 7A32 132 269 LAB1 7E11 1051 1047 LAB2 7E13 1052 1050 LOCTR 7A3D 189 606 609 610 642 685 743 993 1057 1061 1083 1109 MEMRY 8000 97 98 100 MOV1 7D37 809 812 NEQ 7A36 172 NOELM 7D6F 866 549 555 564 568 581 584 585 595 NOP 7E54 1094 1091 1105 NORM 7D72 871 367 374 390 NOWS 7D45 821 789 NXTPH 7E6E 1119 167 823 824 1115 1116 OFSET 7D6C 863 503 511 546 559 ONE 7D51 836 319 324 515 532 565 935 952 1024 1044 1065 1096 ORG 7A23 109 294 337 946 1058 1089 1099 1103 ORGSW 7D78 877 245 291 334 943 1055 1085 OUABS 7D91 912 410 630 713 715 718 747 920 933 1098 1108 OUREL 7D99 930 401 932 OVERL 7A23 98 106 PCT 7DF0 1020 780 1013 1014 1030 PCT0 7DF5 1026 1025 1043 1045 1066 PCT1 7DFB 1030 PHID 0037 101 1124 PRLGT 7A3E 190 1028 1048 1051 1079 Q0010 7A9A 264 254 Q1000 7AAF 284 282 Q1011 7B96 305 292 296 Q1012 7CC0 658 676 Q1013 7CC9 669 695 703 724 Q101A 7BB0 332 Q101B 7BC4 349 335 339 Q101C 7BBF 340 948 1059 Q101X 7BA0 321 764 Q1021 7CD2 682 664 Q1022 7CD4 685 Q1031 7CE0 702 691 Q1032 7CEB 714 709 Q1033 7CEE 718 699 Q1041 7CF2 729 660 Q1051 7CF8 741 730 748 ROL 7FBC 100 825 1117 SCT 7D76 875 387 395 405 SEVEN 7D58 843 266 404 SOFGT 7A29 115 742 SOFNS 7A27 113 288 SOFS 7A24 110 360 427 822 SOFST 7A26 112 654 890 SOFXT 7A28 114 283 289 640 741 SORF 7A30 122 253 313 STAR1 7A93 253 244 START 7A84 228 1129 STID 7C0D 453 434 442 STONA 7D4E 831 913 917 931 945 947 SYMTP 7D75 874 655 658 662 669 674 675 682 T8011 7D92 913 T8012 7D95 917 954 T8013 7D9A 931 T8014 7DA1 937 936 T8015 7DA8 943 939 T8016 7D97 920 T8017 7DB3 952 941 944 TEMP2 7D74 873 268 272 273 278 686 721 TEOB 7DDE 1004 THREE 7D53 838 523 539 1068 TMP1 7C0C 452 438 439 462 463 TOBU1 7DED 1014 998 TOBUC 7DEC 1013 1006 TOBUF 7DD2 991 918 1011 1015 TWO 7D52 837 521 896 1046 TYPE 7D5A 845 247 320 VSIZE 7D6D 864 524 534 542 548 557 590 WD1 7A42 200 WD10 7A4B 210 258 260 WD12 7A4D 212 333 336 338 WD13 7A4E 215 188 1084 1087 1090 1100 1104 WD14 7A4F 216 WD15 7A50 219 187 WD16 7A51 220 185 WD2 7A43 201 WD3 7A44 202 321 327 328 WD4 7A45 203 290 293 295 WD5 7A46 204 330 WD6 7A47 205 WD7 7A48 206 284 WD8 7A49 207 WD9 7A4A 209 279 WR900 7D0E 768 790 WRITE 7D15 777 775 819 1007 WRITS 7D11 773 615 774 WRITT 7D1B 786 776 Z 7D50 835 245 246 247 266 267 268 271 272 273 275 277 278 291 319 320 324 334 366 367 369 370 374 386 387 400 401 404 405 410 433 436 443 472 480 482 501 503 511 515 516 521 523 524 532 534 538 539 542 544 546 548 549 551 554 555 557 559 560 564 565 568 581 584 585 589 590 613 616 624 627 630 655 658 670 672 673 674 675 686 694 702 712 713 715 718 721 729 747 763 796 799 802 888 894 896 913 914 917 931 935 938 940 943 945 947 949 952 979 997 1005 1007 1024 1041 1044 1046 1055 1065 1068 1072 1076 1085 1096 1098 1107 1108 ZERO 7D50 834 239 813 835 914 940 949 1072 1107