CLEAR STORAGE 1 ,008015,022026,030037,044,049,053053N000000N00001026 1 CLEAR STORAGE 2 L068116,105106,110117B101/I9I#071029C029056B026/B001/0991,001/001117I0? 2 BOOTSTRAP ,008015,022029,036040,047054,061068,072/061039 ,0010011040 3 FORTRAN COMPILER -- ARITHMETIC PACKAGE -- PHASE 63 PAGE 1 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 101 JOB FORTRAN COMPILER -- ARITHMETIC PACKAGE -- PHASE 63 102 CTL 6611 103 * 104 * THIS PHASE IS COMPRISED OF THE ARITHMETIC ROUTINE WHICH IS 105 * LOADED BY GEAUX PHASE 2. 106 * 107 ORG 87 0087 108 89 X1 DCW 000 3 0089 4 109 91 DC 00 2 0091 4 110 94 X2 DCW 000 3 0094 4 111 96 DC 00 2 0096 4 112 99 X3 DCW 000 3 0099 4 113 100 DC 0 1 0100 4 114 * 115 * ARITHMETIC INTERPRETER 116 * 117 * GENERAL FORM OF INTERPRETED STRING IS 118 * OPERAND [ OPERATOR OPERAND ... ], 119 * HOWEVER, IF OPERAND HAS A WORD MARK, IT'S AN OPERATOR, 120 * USUALLY A FUNCTION CALL. OPERANDS ARE MACHINE ADDRESSES, 121 * WITH A TAG IN THE TENS DIGIT TO INDICATE TYPE: A- OR B- 122 * ZONE ALONE INDICATES INTEGER. OPERATORS ARE ONE CHARACTER. 123 * SUBSCRIPT CALCULATIONS ARE SURROUNDED BY $...$. 124 * 125 * TWO ACCUMULATORS IN THE PRINT AREA ARE USED. THE LOW-ORDER 126 * DIGIT OF AN OPERAND IS LOADED INTO ACCUMULATOR 1 AT 250; IT 127 * EXTENDS LEFTWARD BY THE LENGTH OF THE OPERAND, AND RIGHTWARD 128 * FROM THE LEFT END BY THE MANTISSA WIDTH. ACCUMULATOR 2 HAS ITS 129 * HIGH-ORDER DIGIT AT ACCHI&1; IT EXTENDS RIGHTWARD BY THE MANTISSA 130 * WIDTH. 131 * 132 * IN THE FORTRAN MANUAL C24-1455, THE HIGH-ORDER DIGIT OF 133 * ACCUM 2 IS LABELED ACCHI&1. 134 * 135 ACCHI EQU 279 0279 136 * 137 * MOSTLY, INDEX REGISTER USAGE IS 138 * X1 = OPERAND ADDRESS 139 * X2 = INTERPRETER'S COUNTER, LOW-ORDER DIGIT OF ACCUM 1 140 * X3 = OPERAND WIDTH 141 * 142 * ADDRESS IN PHASE 62 143 * 144 LDRET EQU 227 RETURN HERE AFTER LOADING 0227 145 * 146 ORG 700 0700 147 700 ARITF SBR X2 4 0700 H 094 5 FORTRAN COMPILER -- ARITHMETIC PACKAGE -- PHASE 63 PAGE 2 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 148 704 SBR X1-3 INTERPRETER ADDRESS FOR DUMPS 4 0704 H 086 5 149 708 SBR ERMSI&6 INTERPRETER ADDRESS FOR ERR MSGS 4 0708 H V06 5 150 712 NXTOP MCW 2&X2,X1 X1 = OPERAND (RESULT) ADDRESS 7 0712 M 0!2 089 5 151 719 SAR SX2A&6 SAVE X2-1 4 0719 Q 765 5 152 723 NXTOP0 SBR SX2B&6 TWICE 4 0723 H S27 5 153 727 BCE DOSUB,0&X2,$ SUBSCRIPT? 8 0727 B S06 0!0 $ 5 154 735 SBR RES&6,0&X1 SAVE X1 (RESULT ADDRESS) 7 0735 H T75 0|0 6 155 742 CS 303 CLEAR ACCUMUMULATORS 4 0742 / 303 6 156 746 CS 1 0746 / 6 157 747 CS 1 0747 / 6 158 748 LCA KZ1,ACCHI&1 SET HIGH-ORDER ZERO IN ACCUM 2 7 0748 L W85 280 6 159 755 NXTOP1 S X1&2 CLEAR X1 4 0755 S 091 6 160 759 SX2A SBR X2,0-0 RECOVER X2 = ADDR(OPERAND) - 1 7 0759 H 094 000 6 161 766 C 4&X2,ASGOP COMPARE OP TO ASSIGNMENT OP 7 0766 C 0!4 W86 7 162 773 MCW 4&X2,SAVOP SAVE WHATEVER OPERATOR IT IS 7 0773 M 0!4 924 7 163 780 SW 201 4 0780 , 201 7 164 784 BL FUNC FUNC IF ASSIGNMENT OP .LT. OPERATOR 5 0784 B T05 T 7 165 * 166 * ASSIGNMENT OP GREATER OR EQUAL TO OPERATOR, I.E., OPERATOR IS 167 * BLANK, ., ) LOZENGE, } GROUP MARK, &, $, *, -, /, COMMA, %, # 168 * 169 789 SBR NXTOP2&6,4&X2 SAVE ADDR OF OPERATOR 7 0789 H 874 0!4 7 170 796 BCE DOSUB5,5&X2,$ SUBSCRIPT? 8 0796 B /99 0!5 $ 7 171 804 MCW 7&X2,X1 SECOND OPERAND ADDRESS TO X1 7 0804 M 0!7 089 8 172 811 SAR SX2A&6 SAVE 4&X2 4 0811 Q 765 8 173 815 TSTZON BWZ ARITI,X1-1,K OPERAND 2 TAG IS B ZONE (INTEGER)? 8 0815 V V30 088 K 8 174 823 BWZ ARITI,X1-1,S OPERAND 2 TAG IS A ZONE (INTEGER)? 8 0823 V V30 088 S 8 175 831 SBR X3,0 LOADER PLUGS MANTISSA WIDTH INTO B 7 0831 H 099 000 8 176 838 CW IFLAG INDICATE FLOATING POINT 4 0838 ) W87 8 177 842 MCW 0&X1,EXP1-1 SAVE EXPONENT 1 7 0842 M 0|0 W82 9 178 849 SAR X1 SAVE MANTISSA 1 ADDRESS 4 0849 Q 089 9 179 853 MCW 0&X1,250 MANTISSA 1 TO ACCUMULATOR 1 7 0853 M 0|0 250 9 180 * FROM HERE, X2 INDEXES ACCUM 1, FIRST HIGH, THEN LOW DIGIT 181 860 SBR X2 SET X2 TO ACCUM 1 ADDRESS - OP WIDTH 4 0860 H 094 9 182 864 LCA KZ1 APPEND A HIGH-ORDER ZERO TO ACCUM 1 4 0864 L W85 9 183 868 NXTOP2 BW NOSIGN,0-0 WM UNDER OPERATOR? 8 0868 V 883 000 1 9 184 876 MZ 250,ZAS SIGN OF OPERAND 1 DETERMINES ZA OR ZS 7 0876 Y 250 |87 10 185 883 NOSIGN S KZ1,252&X3 ADD ZEROS BELOW MANTISSA 7 0883 S W85 2E2 10 186 890 C 1&X2,KZ1 COMPARE OPERAND HIGH-ORDER DIGIT TO 0 7 0890 C 0!1 W85 10 187 897 A X3,X2 X2 NOW AT LOW-ORDER DIGIT OF ACCUM 1 7 0897 A 099 094 10 188 904 BCE FDIV,SAVOP,/ DIVIDE? 8 0904 B S33 924 / 10 189 912 BCE FMPY,SAVOP,* MULTIPLY? 8 0912 B S62 924 * 11 190 920 S SAVOP TURN IT BACK TO ZA 4 0920 S 924 11 191 924 SAVOP ZA ZAS COPY THIS OP CODE 4 0924 ? |87 11 192 928 BCE NMLZ1,ACCHI&1,0 HIGH-ORDER DIGIT OF ACCUM 2 ZERO? 8 0928 B |17 280 0 11 193 936 BE CLRWK ACCUM 1 HIGH-ORDER DIGIT IS ZERO 5 0936 B /34 S 11 194 941 S EXP1-1,EXP2-1 EXP2 IS NOW EXP2 - EXP1 7 0941 S W82 W79 11 195 948 ZA EXP2,X1&1 MOVE ABS(EXP2-EXP1) TO X1 7 0948 ? W80 090 12 196 955 C X3,X1 COMPARE MANTISSA WIDTH AND ABS(EXP2-EXP1) 7 0955 C 099 089 12 197 962 BM E1GTE2,EXP2-1 EXP1 .GT. EXP2 8 0962 V /65 W79 K 12 FORTRAN COMPILER -- ARITHMETIC PACKAGE -- PHASE 63 PAGE 3 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 198 970 BH EXDGMW ABS(EXP2-EXP1) .GT. MANTISSA WIDTH 5 0970 B /88 U 12 199 975 A EXP2-1,EXP1-1 ADD EXP2-EXP1 TO EXP1 7 0975 A W79 W82 12 200 982 ZA 250,250&X1 SHIFT MANTISSA RIGHT BY EXP2-EXP1 7 0982 ? 250 2V0 13 201 989 ZA X3&1,X1&1 X1 AND X3 NOW BOTH MANTISSA WIDTH 7 0989 ? 100 090 13 202 996 ADDSUB MZ ZAS,0&X2 SIGN OF ACCUM 1 DEPENDS ON OP 7 0996 Y |87 0!0 13 203 1 003 A ACCHI&X1,0&X2 ADD (SUBTRACT) MANTISSAS 7 1003 A 2X9 0!0 13 204 * 205 * RELOCATABLE FUNCTIONS RETURN HERE TOO 206 * 207 1 010 FRET MZ 0&X2,ZAS 7 1010 Y 0!0 |87 13 208 * 209 * NORMALIZE FLOATING-POINT RESULT OF A SINGLE ARITHMETIC 210 * OPERATION; PLACE THE NORMALIZED RESULT IN THE WORKING 211 * ACCUMULATOR. IF EXPONENT OVERFLOW IS DETECTED, GO TO ERMSG TO 212 * PRINT MESSAGE (NOF); THEN GO TO STR99. IF EXPONENT UNDERFLOW 213 * IS DETECTED, GO TO STRZE. HERE, THE LOW-ORDER DIGIT OF THE 214 * RESULT IS INDEXED BY X2. 215 * 216 * THE NORMALIZED RESULT IS LEFT IN ACCUM 2. 217 * 218 1 017 NMLZ1 ZA EXP1-1,EXP2-1 7 1017 ? W82 W79 14 219 1 024 NMLZ2 MCW RM,1&X2 INSERT RM AFTER LOW-ORDER DIGIT 7 1024 M W75 0!1 14 220 1 031 MZ CHAIN 1 1031 Y 14 221 1 032 MZ TWO ZEROS 1 1032 Y 14 222 1 033 A AND ADD ANOTHER ONE 1 1033 A 14 223 1 034 MN DECR A AND B (COPIES JUNK TO UNUSED) 1 1034 D 14 224 1 035 SBR X1 X1 IS NOW TWO BELOW ACCUM 1 HIGH-ORDER 4 1035 H 089 14 225 1 039 S ACCHI&2&X3 CLEAR ACCUM 2 4 1039 S 2H1 15 226 1 043 NMLZL BCE STRZE,2&X1,| RECORD MARK INDICATES ZERO RESULT 8 1043 B /42 0|2 | 15 227 1 051 SBR X1 BUMP X1 4 1051 H 089 15 228 1 055 BCE NMLZL,1&X1,0 ZERO MEANS MORE NORMALIZATION NEEDED 8 1055 B |43 0|1 0 15 229 1 063 MCM 1&X1,ACCHI&1 NORMALIZE 7 1063 P 0|1 280 15 230 1 070 S X3,X2 7 1070 S 099 094 15 231 1 077 CW DECREASE AS AND BS TO 1 1077 ) 15 232 1 078 CW REFER TO X2 AND X1 1 1078 ) 16 233 1 079 S S X2,X1 1 1079 S 16 234 1 080 S X1,EXP2-1 STORE NORMALIZED EXPONENT 7 1080 S 089 W79 16 235 1 087 ZAS ZA ACCHI&X3 ZS IF ACCUM 1 NEGATIVE 4 1087 ? 2G9 16 236 1 091 SW 1 1091 , 16 237 1 092 BCE CLRWK,EXP2-3,0 8 1092 B /34 W77 0 16 238 1 100 BM STRZE,EXP2-1 EXPONENT UNDERFLOW 8 1100 V /42 W79 K 16 239 1 108 B ERMSG EXPONENT OVERFLOW 4 1108 B U71 17 240 1 114 DCW @NOF@ 3 1114 17 241 * 242 * EXPONENT OVERFLOW; SET RESULT MAGNITUDE EQUAL TO LARGEST 243 * VALUE POSSIBLE IN FLOATING-POINT NOTATION; SET RESULT SIGN 244 * AS APPROPRIATE. 245 * 246 1 115 STR99 ZA KP99,EXP2-1 -99 TO EXP2 7 1115 ? W89 W79 17 247 1 122 MN KP99,ACCHI&X3 ALL 9'S 7 1122 D W89 2G9 17 FORTRAN COMPILER -- ARITHMETIC PACKAGE -- PHASE 63 PAGE 4 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 248 1 129 MCW TO MANTISSA 1 1129 M 17 249 1 130 MCW ACCHI-1&X3 IN ACCUM2 4 1130 M 2G8 17 250 * 251 * CLEAR ACCUM 1 AFTER AN INDIVIDUAL ARITHMETIC OPERATION 252 * 253 1 134 CLRWK CS ACCHI-1 4 1134 / 278 17 254 1 138 B NXTOP1 4 1138 B 755 18 255 * 256 * EXPONENT UNDERFLOW, OR RESULT IS ZERO. SET FLOATING-POINT 257 * RESULT TO ZERO 258 * 259 1 142 STRZE S EXP2-1 EXP2 = 0 4 1142 S W79 18 260 1 146 S ACCHI&X3 ACCUM 2 MANTISSA = 0 4 1146 S 2G9 18 261 1 150 B CLRWK 4 1150 B /34 18 262 * 263 * DIVISION BY ZERO 264 * 265 1 154 DVERR B ERMSG 4 1154 B U71 18 266 1 160 DCW @DZE@ DIVIDE BY ZERO MESSAGE 3 1160 18 267 1 161 B STR99 INSERT OVERFLOW EXPONENT 4 1161 B /15 18 268 * 269 * EXP1 IS GREATER THAN EXP2 270 * 271 1 165 E1GTE2 BH NMLZ1 ABS(EXP2-EXP1) .GT. MANTISSA WIDTH 5 1165 B |17 U 19 272 1 170 S X3&1,X1&1 SUBTR MAN. WIDTH FROM ABS(EXP2-EXP1) 7 1170 S 100 090 19 273 1 177 MZ ACCHI&X3,ACCHI&X1 MOVE ZONE OVER TO NEW WIDTH 7 1177 Y 2G9 2X9 19 274 1 184 B ADDSUB GO ADD (OR SUBTRACT) MANTISSAS 4 1184 B 996 19 275 * 276 * ABS(EXP2-EXP1) .GT. MANTISSA WIDTH 277 * 278 1 188 EXDGMW A EXP1-1,EXP2-1 RESTORE EXP2 7 1188 A W82 W79 19 279 1 195 B CLRWK 4 1195 B /34 19 280 * 281 * CALCULATE SUBSCRIPTED ADDRESS USING A RELOCATABLE ROUTINE THAT 282 * IS ONLY LOADED IF NEEDED. 283 * 284 1 199 DOSUB5 SBR X2,5&X2 BUMP X2 TO BEGINNING OF SUBSCRIPT INFO 7 1199 H 094 0!5 20 285 1 206 DOSUB B 0-0 LOADER PLUGS SUBSCRIPT ROUTINE ADDRESS HERE 4 1206 B 000 20 286 * 287 1 210 MN 0&X2 SUBTRACT 4 FROM X2 4 1210 D 0!0 20 288 1 214 MN 1 1214 D 20 289 1 215 MN 1 1215 D 20 290 1 216 MN 1 1216 D 20 291 1 217 SAR SX2A&6 4 1217 Q 765 20 292 1 221 SX2B BCE NXTOP0,0-0,$ 8 1221 B 723 000 $ 21 293 1 229 B TSTZON 4 1229 B 815 21 294 * 295 * FLOATING-POINT DIVIDE 296 * 297 1 233 FDIV BE DVERR DIVIDE BY ZERO (COMPARE WAS AT NOSIGN) 5 1233 B /54 S 21 FORTRAN COMPILER -- ARITHMETIC PACKAGE -- PHASE 63 PAGE 5 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 298 1 238 MN ACCHI&X3,1&X2 7 1238 D 2G9 0!1 21 299 1 245 MCW 1 1245 M 21 300 1 246 MN 1 1246 D 21 301 1 247 D 0&X1,251 DIVIDE MANTISSAS. 7 1247 % 0|0 251 21 302 1 254 ZS EXP1-1 NEGATE EXPONENT 4 1254 ! W82 22 303 1 258 B EXPS GO ADD EXPONENTS, NORMALIZE, ETC. 4 1258 B S83 22 304 * 305 * FLOATING-POINT MULTIPLY 306 * 307 1 262 FMPY M ACCHI&X3,251&X3 MULTIPLY MANTISSAS 7 1262 @ 2G9 2E1 22 308 1 269 SBR X2,3&X2 7 1269 H 094 0!3 22 309 1 276 S KP2,EXP2-1 7 1276 S W90 W79 22 310 1 283 EXPS A EXP1-1,EXP2-1 ADD EXPONENTS 7 1283 A W82 W79 22 311 1 290 MZ ACCHI&X3,*&1 PREPARE TO 7 1290 Y 2G9 S97 23 312 1 297 ZA ZAS SET SIGN OF RESULT 4 1297 ? |87 23 313 1 301 B NMLZ2 NORMALIZE 4 1301 B |24 23 314 * 315 * ASSIGNMENT OPERATOR IS LESS THAN CURRENT OPERATOR, I.E., 316 * CURRENT OPERATOR IS ONE OF @, ?, A-I, !, J-R, |, S-Z, 0-9. 317 * IF NOT RECORD MARK, IT'S THE FIRST CHARACTER OF WHAT WOULD 318 * OTHERWISE BE AN OPERAND, SO BUMP THE OPERAND ADDRESS. 319 * 320 1 305 FUNC BCE DONE,4&X2,| DONE (RECORD MARK)? 8 1305 B T31 0!4 | 23 321 1 313 SBR SX2A&6,1&X2 BUMP OPERAND ADDR 7 1313 H 765 0!1 23 322 1 320 C ACCHI&1,KZ1 HIGH-ORDER ACCUM 2 MANTISSA DIGIT 7 1320 C 280 W85 23 323 * THE LOADER PLUGS THE RELOCATABLE FUNCTION SELECTOR ADDRESS HERE 324 1 327 QFUNCT B 0 GO TO FUNCTION SELECTOR 4 1327 B 000 24 325 1 331 DONE BCE RES,ACCHI&1,0 FLOATING-POINT RESULT ZERO? 8 1331 B T69 280 0 24 326 1 339 BW RES,IFLAG INTEGER RESULT? 8 1339 V T69 W87 1 24 327 1 347 BW FPRES,4&X2 WM UNDER OPERATOR? 8 1347 V T92 0!4 1 24 328 1 355 SBR X3,2&X3 7 1355 H 099 0?2 24 329 1 362 SEXP2 MCM EXP2-2,ACCHI-1&X3 MOVE EXP2 TO ACCUM 2 7 1362 P W78 2G8 25 330 1 369 RES LCA ACCHI&X3,0 STORE ACCUMULATOR TO SAVED B 7 1369 L 2G9 000 25 331 1 376 BW 5&X2,4&X2 RETURN IF DONE (WORD MARK) 8 1376 V 0!5 0!4 1 25 332 1 384 SAR X2 BUMP X2 TO NEXT OPERAND 4 1384 Q 094 25 333 1 388 B NXTOP 4 1388 B 712 25 334 * 335 * ROUND NONZERO FLOATING-POINT RESULT 336 * 337 1 392 FPRES A KP5,ACCHI-1&X3 ROUND MANTISSA 7 1392 A W91 2G8 25 338 1 399 BWZ CARRY,ACCHI&1,S CARRY IN ACC2 SHOWN BY A-ZONE? 8 1399 V U18 280 S 26 339 1 407 CPZONE MZ ACCHI&X3,ACCHI-2&X3 MOVE ZONE FROM EXP TO MAN 7 1407 Y 2G9 2G7 26 340 1 414 B SEXP2 4 1414 B T62 26 341 1 418 CARRY A KP1,EXP2-1 BUMP EXPONENT 7 1418 A W92 W79 26 342 1 425 BCE FOVFL,EXP2-3,1 OVERFLOW? 8 1425 B U48 W77 1 26 343 1 433 S ACCHI&X3 CLEAR MANTISSA 4 1433 S 2G9 26 344 1 437 LCA K1B-1,ACCHI&1 AND PUT 1 IN ITS HIGH-ORDER DIGIT 7 1437 L W93 280 27 345 1 444 B CPZONE 4 1444 B U07 27 346 * 347 * FLOATING-POINT OVERFLOW -- HIGH-ORDER DIGIT OF EXP2 IS 1 FORTRAN COMPILER -- ARITHMETIC PACKAGE -- PHASE 63 PAGE 6 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 348 * 349 1 448 FOVFL MN KP99,ACCHI&X3 99 TO 7 1448 D W89 2G9 27 350 1 455 MCW EXPONENT 1 1455 M 27 351 1 456 MCW ACCHI-1&X3 ALL 9S TO MANTISSA 4 1456 M 2G8 27 352 1 460 S KP1,EXP2-1 7 1460 S W92 W79 27 353 1 467 B CPZONE 4 1467 B U07 27 354 * 355 * PRINT APPROPRIATE ERROR MESSAGES, WHICH INCLUDES A MNEMONIC 356 * THREE-CHARACTER CODE AND THE DISPLAY ADDRESS IN THE GENERATED 357 * PROCEDURE OF THE SOURCE PROGRAM STATEMENT BEING EXECUTED. THIS 358 * SUBROUTINE IS USED TO RECORD CIRCUMSTANCES, OCCURRING DURING 359 * ARITHMETIC OPERATIONS, WHICH MAY AFFECT THE CALCULATION 360 * ADVERSELY. 361 * 362 1 471 ERMSG SBR ERSVX&6 SAVE RETURN ADDRESS 4 1471 H U92 28 363 1 475 CS 202&X3 4 1475 / 2?2 28 364 1 479 SBR ERSX3&6,0&X3 SAVE X3 7 1479 H V25 0?0 28 365 1 486 ERSVX SBR X3,0 RETURN ADDRESS TO X3 7 1486 H 099 000 28 366 1 493 MCW 2&X3,212 MNEMONIC TO PRINT AREA 7 1493 M 0?2 212 28 367 1 500 ERMSI SBR 217,0 INTERPRETER ADDRESS TO PRINT AREA 7 1500 H 217 000 28 368 1 507 W 1 1507 2 28 369 1 508 SW 201 4 1508 , 201 29 370 1 512 SBR ERMSGX&3,3&X3 RETURN ADDRESS TO EXIT 7 1512 H V29 0?3 29 371 1 519 ERSX3 SBR X3,0 RESTORE X3 7 1519 H 099 000 29 372 1 526 ERMSGX B 0 4 1526 B 000 29 373 * 374 * OPERAND TENS DIGIT HAS A OR B BUT NOT AB ZONE (INTEGER ARITH.) 375 * 376 1 530 ARITI SBR X3,0 LOADER PUTS INTEGER SIZE IN B 7 1530 H 099 000 29 377 1 537 SW IFLAG INDICATE INTEGER 4 1537 , W87 29 378 1 541 MCS 0&X1,250 OPERAND TO ACCUMULATOR 1 7 1541 Z 0|0 250 30 379 1 548 BCE XDIV,SAVOP,/ DIVIDE? 8 1548 B W23 924 / 30 380 1 556 BCE XMPY,SAVOP,* MULTIPLY? 8 1556 B V98 924 * 30 381 1 564 BM XSUB,SAVOP SUBTRACT? 8 1564 V V87 924 K 30 382 1 572 A 0&X1,ACCHI&X3 ADD OPERAND TO ACCUMULATOR 2 7 1572 A 0|0 2G9 30 383 1 579 XSIGN ZA ACCHI&X3 PUT A SIGN ON THE ACCUMULATOR 4 1579 ? 2G9 31 384 1 583 B CLRWK 4 1583 B /34 31 385 1 587 XSUB S 0&X1,ACCHI&X3 SUBTRACT OPERAND FROM ACCUMULATOR 2 7 1587 S 0|0 2G9 31 386 1 594 B XSIGN 4 1594 B V79 31 387 1 598 XMPY LCA 0&X1,250 MOVE OPERAND TO ACCUMULATOR 1 7 1598 L 0|0 250 31 388 1 605 M ACCHI&X3,251&X3 7 1605 @ 2G9 2E1 31 389 1 612 MCW 251&X3,ACCHI&X3 7 1612 M 2E1 2G9 32 390 1 619 B CLRWK 4 1619 B /34 32 391 1 623 XDIV BCE DVERR,250, DIVIDE BY ZERO? 8 1623 B /54 250 32 392 1 631 MCW 0&X1,250&X3 7 1631 M 0|0 2E0 32 393 1 638 MN 1 1638 D 32 394 1 639 SBR MOVEQ&3 STORE ADDR TO MOVE TO ACCUM 2 4 1639 H W64 32 395 1 643 LCA ACCHI&X3 4 1643 L 2G9 32 396 1 647 ZA ACCHI&X3,250&X3 7 1647 ? 2G9 2E0 33 397 1 654 D 0&X1,251 7 1654 % 0|0 251 33 FORTRAN COMPILER -- ARITHMETIC PACKAGE -- PHASE 63 PAGE 7 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 398 1 661 MOVEQ MCW 249,ACCHI&X3 7 1661 M 249 2G9 33 399 1 668 B CLRWK 4 1668 B /34 33 400 * 401 * DATA 402 * 403 1 674 DCW 000 CHAINED TO RM 3 1674 33 404 1 675 RM DCW @|@ 1 1675 33 405 1 676 DCW 0 1 1676 33 406 1 680 EXP2 DCW @000|@ EXPONENT OF ACCUM 2, AND ZERO AND RM 4 1680 34 407 1 683 EXP1 DCW 000 EXPONENT OF ACCUM 1, AND ZERO 3 1683 34 408 1 684 K8 DCW 8 1 1684 34 409 1 685 KZ1 DCW 0 1 1685 34 410 1 686 ASGOP DCW @#@ ASSIGNMENT OPERATOR 1 1686 34 411 1 687 IFLAG DCW #1 WORD MARK INDICATES INTEGER 1 1687 34 412 1 689 KP99 DCW &99 USED FOR OVERFLOW 2 1689 34 413 1 690 KP2 DCW &2 1 1690 35 414 1 691 KP5 DCW &5 1 1691 35 415 1 692 KP1 DCW &1 1 1692 35 416 1 694 K1B DCW @1 @ 2 1694 35 417 1 695 DCW 0 1 1695 35 418 1 696 GMWM DCW @}@ 1 1696 GMARK 35 419 EX LDRET B 227 36 420 END / 000 080 FORTRAN COMPILER -- ARITHMETIC PACKAGE -- PHASE 63 PAGE 8 SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS ACCHI 279 ADDSUB 996 ARITF 700 ARITI 1530 ASGOP 1686 CARRY 1418 CLRWK 1134 CPZONE 1407 DONE 1331 DOSUB 1206 DOSUB5 1199 DVERR 1154 E1GTE2 1165 ERMSG 1471 ERMSGX 1526 ERMSI 1500 ERSVX 1486 ERSX3 1519 EXDGMW 1188 EXP1 1683 EXP2 1680 EXPS 1283 FDIV 1233 FMPY 1262 FOVFL 1448 FPRES 1392 FRET 1010 FUNC 1305 GMWM 1696 IFLAG 1687 K1B 1694 K8 1684 KP1 1692 KP2 1690 KP5 1691 KP99 1689 KZ1 1685 LDRET 227 MOVEQ 1661 NMLZ1 1017 NMLZ2 1024 NMLZL 1043 NOSIGN 883 NXTOP 712 NXTOP0 723 NXTOP1 755 NXTOP2 868 QFUNCT 1327 RES 1369 RM 1675 SAVOP 924 SEXP2 1362 STR99 1115 STRZE 1142 SX2A 759 SX2B 1221 TSTZON 815 X1 89 X2 94 X3 99 XDIV 1623 XMPY 1598 XSIGN 1579 XSUB 1587 ZAS 1087