1 /OS8 FORTRAN II COMPILER OVERLAY V5 ***FPATCH.05*** 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 // 10 / 11 / 12 / 13 / 14 /COPYRIGHT (C) 1974, 1975 15 /DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 16 / 17 / 18 / 19 /THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A 20 /SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLU- 21 /SION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANT OTHER 22 /COPIES THEREOF, MAY NOT BR PROVIDED OR OTHERWISE MADE AVAILABLE 23 /TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO 24 /AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE 25 /SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. 26 / 27 / 28 /THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT 29 /NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL 30 /EQUIPMRNT COROPATION. 31 / 32 /DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS 33 /SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. 34 / 35 / 36 / 37 / 38 / 39 / 40 / 41 /FIXES TO FPATCH FOR V4 J.K. 1975 42 / 43 / .CHANGED USE OF 17645 SO /N CAN BE PASSED TO LOADER 44 / BIT 0 OF 17645 INDICATES THAT SABR WAS CHAINED 45 / TO FORM FORT INSTEAD OF WHOLE WORD 46 / 47 / .VERSION NUMBER VIA /V--OPTION 48 / WILL BE PASSED ONTO SABR 49 / 50 / 51 / 52 FIELD 0 53 JSBITS=7746 54 MOFILE=7600 55 MPARAM=7643 56 LLUNCH=7001 /TAKE OUT WHEN MERGING WITH COMPILER 57 DO=7173 /" 58 ELIST=1162 /" 59 EMSG1=1270 /" 60 EMSG14=1520 /" 61 FLST=242 /" 62 FORST=5362 /" 63 FPROP=144 /" 64 GOOON=5455 /" 65 KOUNT=113 /" 66 LPTRIN=545 /" 67 LPUNCH=5333 /" 68 LTTYPE=3372 /" 69 L75=75 /" 70 OSTOP=4052 /" 71 XFINI=5354 /" 72 *200 73 000200 7240 START, CLA CMA 74 000201 3244 DCA FCHFLG 75 000202 6212 CIF 10 76 000203 4777 JMS I (7700 77 000204 0010 10 /ESCAPE 78 000205 2244 ISZ FCHFLG 79 000206 5213 JMP .+5 80 000207 6212 CIF 10 81 000210 4776 JMS I (200 82 000211 0005 5 /COMMAND DECODE 83 000212 0624 0624 /.FT ASSUMED EXTENSION 84 000213 6211 CDF 10 85 000214 1775 TAD I (MPARAM+1 86 000215 6201 CDF 0 87 000216 0374 AND (4 88 000217 7640 SZA CLA 89 000220 4323 JMS VERNUM 90 000221 7201 CLA IAC 91 000222 6212 CIF 10 92 000223 4776 JMS I (200 93 000224 0004 4 /CLOSE OPERATOR USED AS DELETE 94 000225 2205 OUSNAME /DELETE FORTRN.TM IF IT EXISTS 95 000226 0000 0 96 000227 7200 CLA /IT DIDN'T EXIST 97 000230 7201 CLA IAC /ENTER A FILE ON "SYS" - MAXIMUM SIZE 98 000231 6212 CIF 10 99 000232 4776 JMS I (200 100 000233 0003 3 /ENTER 101 000234 2205 OUSREC, OUSNAME 102 000235 0000 HOLSIZ, 0 103 000236 5773 JMP I (OUERR /WHATS GOING ON HERE? 104 000237 7201 CLA IAC /DEVICE "SYS" 105 000240 6212 CIF 10 106 000241 4776 JMS I (200 107 000242 0002 2 108 000243 2200 PTSABR, SABR 109 000244 0000 FCHFLG, 0 /USELESS LENGTH WORD 110 000245 5772 JMP I (BIGGIE 111 000246 1243 TAD PTSABR 112 000247 3771 DCA I (CLSABR 113 000250 1234 TAD OUSREC 114 000251 3770 DCA I (OUTREC 115 000252 1235 TAD HOLSIZ 116 000253 3767 DCA I (OURCNT 117 000254 1366 TAD (1000 118 000255 1765 TAD I (JSBITS 119 000256 3765 DCA I (JSBITS /SET "UNSTARTABLE" STATUS BIT 120 000257 4764 JMS I (FNEWF /INITIALIZE FIRST INPUT FILE WHILE I/O MON IS IN CORE 121 000260 6211 CDF 10 122 000261 1234 TAD OUSREC 123 000262 3763 DCA I (7620 124 000263 7201 CLA IAC 125 000264 3762 DCA I (7617 126 000265 7326 CLA CLL CML RTL 127 000266 0761 AND I (MPARAM 128 000267 1760 TAD I (MOFILE+5 129 000270 7650 SNA CLA 130 000271 3757 DCA I (FLST 131 000272 1756 TAD I (7600 132 000273 7650 SNA CLA 133 000274 1761 TAD I (MPARAM 134 000275 0355 AND (41 135 000276 7650 SNA CLA /DID HE SPECIFY A "L" OR "G" OPTION WITHOUT A 136 000277 5306 JMP FCDF0-3 /RELOCATABLE OUTPUT FILE? 137 000300 1313 FTADNM, TAD BDFALT /YES - GIVE HIM ONE 138 000301 3721 DCA I B7600 /NAMED "FORTRL.TM" 139 000302 2300 ISZ FTADNM 140 000303 2321 ISZ B7600 141 000304 2322 ISZ B7773 142 000305 5300 JMP FTADNM 143 000306 7330 CLA CLL CML RAR 144 000307 1754 TAD I (7645 145 000310 3754 DCA I (7645 /SABR IT WAS CHAINED TO BY FORT 146 000311 6201 FCDF0, CDF 0 147 000312 5753 JMP I (1003 /START COMPILATION 148 149 000313 0001 BDFALT, 1 /DEVICE "SYS" 150 000314 0617 TEXT /FORTRLTM/ 000315 2224 000316 2214 000317 2415 000320 0000 151 000321 7600 B7600, 7600 152 000322 7773 B7773, 7773 153 / 154 000323 0000 VERNUM, 0 155 000324 1733 TAD I POINT 156 000325 6213 CDF CIF 10 157 000326 4747 JMS I VPRINT 158 000327 2333 ISZ POINT 159 000330 2334 ISZ COUNT 160 000331 5324 JMP .-5 161 000332 5723 JMP I VERNUM 162 / 163 000333 0335 POINT, VERN 164 000334 7766 COUNT, -12 165 000335 0306 VERN, 306 166 000336 0317 317 167 000337 0322 322 168 000340 0324 324 169 000341 0240 240 170 000342 0326 326 171 000343 0265 265 172 000344 0301 301 173 000345 0215 215 174 000346 0212 212 175 / 176 000347 4753 VPRINT, VERPRT 177 178 /ADDITIONS TO FORTRAN ERROR MESSAGES 179 180 000353 1003 *ELIST+1 000354 7645 000355 0041 000356 7600 000357 0242 000360 7605 000361 7643 000362 7617 000363 7620 000364 5400 000365 7746 000366 1000 000367 3343 000370 3223 000371 3327 000372 3330 000373 3337 000374 0004 000375 7644 000376 0200 000377 7700 181 001163 2212 NUMSG1 182 *EMSG1-2 183 001266 2226 -ERR61-1; EMSG15 001267 2225 184 001270 2237 -ERR62-1; EMSG16 001271 2236 185 001272 4444 -ERR63-1; EMSG17 001273 2243 186 001274 4435 -ERR64-1; EMSG20 001275 2254 187 001276 0000 0 ; EMSG14 001277 1520 188 /DUMMY PAGES TO CONSOLIDATE CORE IMAGE 189 *1600 190 001600 0000 0 191 *2000 192 002000 0000 0 193 *2400 194 002400 0000 0 195 *3000 196 003000 0000 0 197 *5600 198 005600 0000 0 199 *5400 200 005400 0000 FNEWF, 0 201 005401 6211 CDF 10 202 005402 1637 TAD I FILPTR 203 005403 7450 SNA 204 005404 5346 JMP EOFERR /END OF INPUT REACHED BEFORE END STATEMENT 205 005405 3342 DCA INWCNT 206 005406 1637 TAD I FILPTR 207 005407 0377 AND (7760 208 005410 7440 SZA 209 005411 1376 TAD (17 210 005412 7132 CLL CML RTR 211 005413 7012 RTR 212 005414 3344 DCA INRCNT 213 005415 2237 ISZ FILPTR 214 005416 1637 TAD I FILPTR 215 005417 3264 DCA INREC 216 005420 2237 ISZ FILPTR 217 005421 1375 TAD (5001 /FORTRAN ALLOWS TWO-PAGE HANDLERS 218 005422 3230 DCA INHNDL 219 005423 1342 TAD INWCNT 220 005424 6201 CDF 0 221 005425 6212 CIF 10 222 005426 4774 JMS I (200 223 005427 0001 1 /ASSIGN AND FETCH HANDLER 224 005430 5000 INHNDL, 5000 /LOCATIONS 5000-5377 ARE FREE 225 005431 5336 JMP IOERR /SOMETHINGS SCREWY 226 005432 7240 CLA CMA 227 005433 3342 DCA INWCNT 228 005434 3345 DCA INEOF 229 005435 4352 JMS MOUCOR 230 005436 5600 JMP I FNEWF 231 005437 7617 FILPTR, 7617 232 005440 0000 GETCH, 0 233 005441 6031 KSF 234 005442 5247 JMP .+5 235 005443 6034 KRS 236 005444 1373 TAD (-203 237 005445 7650 SNA CLA 238 005446 5772 JMP I (7600 239 005447 2301 ISZ JMPGET 240 005450 2342 ISZ INWCNT 241 005451 5301 JMPG, JMP JMPGET 242 005452 1345 TAD INEOF 243 005453 7650 SNA CLA 244 005454 5261 JMP JUSTRD 245 005455 6212 GETNXT, CIF 10 246 005456 4734 JMS I G7700 247 005457 0010 10 /ESCAPE 248 005460 4200 JMS FNEWF 249 005461 4630 JUSTRD, JMS I INHNDL /INHNDL CONTAINS LOCN OF DEVICE HANDLER 250 005462 0200 0200 /READ 2 HALF-RECORDS INTO FIELD 0 251 005463 1600 INBFPT, INBUF 252 005464 0000 INREC, 0 253 005465 5334 JMP RERROR 254 005466 2264 ISZ INREC 255 005467 2344 ISZ INRCNT 256 005470 7410 SKP 257 005471 2345 ENDFIL, ISZ INEOF 258 005472 1371 TAD (-601 259 005473 3342 DCA INWCNT 260 005474 1251 TAD JMPG 261 005475 3301 DCA JMPGET 262 005476 1263 TAD INBFPT 263 005477 3341 DCA INPTR 264 005500 5241 JMP GETCH+1 265 005501 5301 JMPGET, JMP . 266 005502 5323 JMP INCHR1 267 005503 5317 JMP INCHR2 268 005504 1251 INCHR3, TAD JMPG 269 005505 3301 DCA JMPGET 270 005506 1741 TAD I INPTR 271 005507 0370 AND (7400 272 005510 7112 CLL RTR 273 005511 7012 RTR 274 005512 1343 TAD INTMP 275 005513 7012 RTR 276 005514 7012 RTR 277 005515 2341 ISZ INPTR 278 005516 5324 JMP GCHCOM 279 005517 1741 INCHR2, TAD I INPTR 280 005520 0370 AND (7400 281 005521 3343 DCA INTMP 282 005522 2341 ISZ INPTR 283 005523 1741 INCHR1, TAD I INPTR 284 005524 0367 GCHCOM, AND (377 285 005525 1366 TAD (-232 286 005526 7450 SNA 287 005527 5255 JMP GETNXT 288 005530 1365 TAD (232 289 005531 6212 CIF 10 290 005532 2240 ISZ GETCH 291 005533 5640 JMP I GETCH 292 005534 7700 RERROR, SMA CLA 293 G7700=RERROR 294 005535 5271 JMP ENDFIL 295 005536 4764 IOERR, JMS I (SFATAL 296 005537 6212 CIF 10 297 005540 4763 ERR62, JMS I (LLUNCH 298 005541 0000 INPTR, 0 299 005542 0000 INWCNT, 0 300 005543 0000 INTMP, 0 301 005544 0000 INRCNT, 0 302 005545 0000 INEOF, 0 303 005546 4352 EOFERR, JMS MOUCOR /KICK MONITOR OUT 304 005547 4764 JMS I (SFATAL 305 005550 6212 CIF 10 306 005551 4763 ERR61, JMS I (LLUNCH 307 005552 0000 MOUCOR, 0 308 005553 6201 CDF 0 309 005554 6212 CIF 10 310 005555 4774 JMS I (200 311 005556 0011 11 312 005557 5752 JMP I MOUCOR 313 005563 7001 *3200 005564 3350 005565 0232 005566 7546 005567 0377 005570 7400 005571 7177 005572 7600 005573 7575 005574 0200 005575 5001 005576 0017 005577 7760 314 003200 0377 P377, 377 315 003201 7400 P7400, 7400 /WARNING ***DO NOT MOVE THIS*** 316 317 003202 0000 PUTCH, 0 318 003203 3346 DCA PUTMP 319 003204 7004 RAL 320 003205 3350 DCA PUTLNK 321 003206 2236 PUTCHX, ISZ JMPPUT 322 003207 2345 ISZ OUWDCT 323 003210 5236 JMPP, JMP JMPPUT 324 003211 7326 CLA CLL CML RTL 325 003212 1343 TAD OURCNT 326 003213 7430 SZL 327 003214 5340 JMP OUERR+1 328 003215 3343 DCA OURCNT 329 003216 2322 ISZ CLOSCT 330 003217 2322 ISZ CLOSCT 331 003220 4777 JMS I (7607 332 003221 4400 4400 333 003222 3600 OUBFPT, OUBUF 334 003223 0000 OUTREC, 0 335 003224 5776 JMP I (IOERR 336 003225 2223 ISZ OUTREC 337 003226 2223 ISZ OUTREC 338 003227 1375 TAD (-1401 339 003230 3345 DCA OUWDCT 340 003231 1222 TAD OUBFPT 341 003232 3344 DCA OUPTR 342 003233 1210 TAD JMPP 343 003234 3236 DCA JMPPUT 344 003235 5206 JMP PUTCHX 345 003236 5236 JMPPUT, JMP . 346 003237 5266 JMP PUTCH1 347 003240 5263 JMP PUTCH2 348 003241 1346 PUTCH3, TAD PUTMP 349 003242 7006 RTL 350 003243 7006 RTL 351 003244 3346 DCA PUTMP 352 003245 1210 TAD JMPP 353 003246 3236 DCA JMPPUT 354 003247 1346 TAD PUTMP 355 003250 0201 AND P7400 356 003251 1747 TAD I OUPOLD 357 003252 3747 DCA I OUPOLD 358 003253 1346 TAD PUTMP 359 003254 7006 RTL 360 003255 7006 RTL 361 003256 0201 P201, AND P7400 362 003257 1744 TAD I OUPTR 363 003260 3744 DCA I OUPTR 364 003261 2344 ISZ OUPTR 365 003262 5271 JMP PCHCOM 366 003263 1344 PUTCH2, TAD OUPTR 367 003264 3347 DCA OUPOLD 368 003265 2344 ISZ OUPTR 369 003266 1346 PUTCH1, TAD PUTMP 370 003267 0200 P200, AND P377 371 003270 3744 DCA I OUPTR 372 003271 6212 PCHCOM, CIF 10 373 003272 1350 TAD PUTLNK 374 003273 7110 CLL RAR 375 003274 5602 JMP I PUTCH 376 377 003275 7640 EOFORT, SZA CLA /ANY ERRORS? 378 003276 5751 JMP I SF7600 /YES, DO NOT ASSEMBLE 379 003277 3271 DCA PCHCOM 380 003300 1374 TAD (232 381 003301 4202 JMS PUTCH 382 003302 1345 TAD OUWDCT 383 003303 1373 TAD (1400 384 003304 7640 SZA CLA 385 003305 5300 JMP .-5 /FILL BUFFER WITH ^Z 386 003306 1772 TAD I (JSBITS 387 003307 7010 RAR 388 003310 7124 CLL CML RAL 389 003311 3772 DCA I (JSBITS /NO NEED TO SAVE CORE ON THIS MONITOR CALL 390 003312 6212 CIF 10 391 003313 4771 JMS I (7700 392 003314 0010 10 /ESCAPE 393 003315 7201 CLA IAC /DEVICE "SYS" 394 003316 6212 CIF 10 395 003317 4667 JMS I P200 396 003320 0004 4 /CLOSE 397 003321 2205 OUSNAM 398 003322 0000 CLOSCT, 0 /CLOSING LENGTH 399 003323 5334 JMP OUERR-3 400 003324 6212 CIF 10 401 003325 4667 JMS I P200 402 003326 0006 6 /RUN 403 003327 0000 CLSABR, 0 404 003330 4770 BIGGIE, JMS I (MOUCOR 405 003331 4350 JMS SFATAL 406 003332 6212 CIF 10 407 003333 4767 ERR63, JMS I (LLUNCH 408 003334 7346 CLA CLL CMA RTL 409 003335 0772 AND I (JSBITS 410 003336 3772 DCA I (JSBITS /WHOOPS - GUESS WE SHOULD RESTORE CORE AFTER ALL 411 003337 4770 OUERR, JMS I (MOUCOR 412 003340 4350 JMS SFATAL 413 003341 6212 CIF 10 414 003342 4767 ERR64, JMS I (LLUNCH 415 INBUF=1600 416 OUBUF=3600 417 003343 0000 OURCNT, 0 418 003344 3600 OUPTR, OUBUF 419 003345 6377 OUWDCT, -1401 420 003346 0000 PUTMP, 0 421 003347 0000 OUPOLD, 0 422 003350 0000 SFATAL, 0 423 PUTLNK=SFATAL 424 003351 7600 SF7600, 7600 /CLEAR AC 425 003352 6211 CDF 10 426 003353 1361 TAD SCDIF0 427 003354 3766 DCA I (177 428 003355 1365 TAD (5601 429 003356 3667 DCA I P200 430 003357 1351 TAD SF7600 431 003360 3656 DCA I P201 432 003361 6203 SCDIF0, CDF CIF 0 433 003362 5750 JMP I SFATAL 434 003365 5601 *2200 /CANNOT GO PAST 2373 003366 0177 003367 7001 003370 5552 003371 7700 003372 7746 003373 1400 003374 0232 003375 6377 003376 5536 003377 7607 435 002200 2301 SABR, TEXT /SABR/ 002201 0222 002202 0000 436 002203 2326 TEXT /SV/ 002204 0000 437 002205 0617 OUSNAM, TEXT /FORTRNTM/ 002206 2224 002207 2216 002210 2415 002211 0000 438 002212 1114 NUMSG1, TEXT /ILLEGAL CONTINUATION/ 002213 1405 002214 0701 002215 1440 002216 0317 002217 1624 002220 1116 002221 2501 002222 2411 002223 1716 002224 0000 439 002225 1617 EMSG15, TEXT /NO END STATEMENT/ 002226 4005 002227 1604 002230 4023 002231 2401 002232 2405 002233 1505 002234 1624 002235 0000 440 002236 1157 EMSG16, TEXT #I/O ERROR# 002237 1740 002240 0522 002241 2217 002242 2200 441 002243 2301 EMSG17, TEXT /SABR.SV NOT FOUND/ 002244 0222 002245 5623 002246 2640 002247 1617 002250 2440 002251 0617 002252 2516 002253 0400 442 002254 1617 EMSG20, TEXT /NO ROOM FOR OUTPUT/ 002255 4022 002256 1717 002257 1540 002260 0617 002261 2240 002262 1725 002263 2420 002264 2524 002265 0000 443 FIELD 1 444 /THESE ARE THE PATCHES OVER THE COMPILER. 445 446 447 *FORST /HEADER PRINTER 448 015362 7000 NOP 449 015363 7000 NOP 450 015364 7000 NOP 451 452 *FORST+5 /LEADER OUTPUT 453 015367 7346 CLA CLL CMA RTL /3 CHARACTERS OF LEADER 454 455 *LPTRIN+1 /HIGH-SPEED READER ROUTINE 456 010546 6202 CIF 0 457 010547 4750 JMS I .+1 458 010550 5440 GETCH 459 460 *OSTOP+1 461 014053 4544 JMS I FPROP /PUNCH 'CALL 0,EXIT' 462 014054 6253 6253 463 014055 5652 JMP I OSTOP 464 465 *LPUNCH+1 /PUNCH ROUTINE 466 015334 6202 CIF 0 467 015335 4737 JMS I .+2 468 015336 7610 CLA SKP 469 015337 3202 PUTCH 470 471 *XFINI-3 /TRAILER PRINTER 472 015351 7346 CLA CLL CMA RTL /3 CHARACTERS OF TRAILER 473 474 *XFINI-1 /ENDING SEQUENCE 475 015353 6203 CDF CIF 0 476 015354 1075 TAD L75 /PICK UP ERROR FLAG 477 015355 5756 JMP I .+1 478 015356 3275 EOFORT 479 480 *GOOON+4 /TRAILER AFTER "END" STATEMENT 481 015461 7346 CLA CLL CMA RTL /3 CHARS ETC. 482 483 484 *LTTYPE+1 /REVERSE TTY WAIT MODE 485 013373 6046 TLS 486 013374 6041 TSF 487 013375 5374 JMP .-1 488 489 / 490 *4753 491 014753 0000 VERPRT, 0 492 014754 4757 JMS I VPUNCH 493 014755 6203 CDF CIF 0 494 014756 5753 JMP I VERPRT 495 014757 3372 VPUNCH, 3372 496 / 497 $ B7600 0321 B7773 0322 BDFALT 0313 BIGGIE 3330 CLOSCT 3322 CLSABR 3327 COUNT 0334 DO 7173 unreferenced ELIST 1162 EMSG1 1270 EMSG14 1520 EMSG15 2225 EMSG16 2236 EMSG17 2243 EMSG20 2254 ENDFIL 5471 EOFERR 5546 EOFORT 3275 ERR61 5551 ERR62 5540 ERR63 3333 ERR64 3342 FCDF0 0311 FCHFLG 0244 FILPTR 5437 FLST 0242 FNEWF 5400 FORST 5362 FPROP 0144 FTADNM 0300 G7700 5534 GCHCOM 5524 GETCH 5440 GETNXT 5455 GOOON 5455 HOLSIZ 0235 INBFPT 5463 INBUF 1600 INCHR1 5523 INCHR2 5517 INCHR3 5504 unreferenced INEOF 5545 INHNDL 5430 INPTR 5541 INRCNT 5544 INREC 5464 INTMP 5543 INWCNT 5542 IOERR 5536 JMPG 5451 JMPGET 5501 JMPP 3210 JMPPUT 3236 JSBITS 7746 JUSTRD 5461 KOUNT 0113 unreferenced L75 0075 LLUNCH 7001 LPTRIN 0545 LPUNCH 5333 LTTYPE 3372 MOFILE 7600 MOUCOR 5552 MPARAM 7643 NUMSG1 2212 OSTOP 4052 OUBFPT 3222 OUBUF 3600 OUERR 3337 OUPOLD 3347 OUPTR 3344 OURCNT 3343 OUSNAM 2205 OUSREC 0234 OUTREC 3223 OUWDCT 3345 P200 3267 P201 3256 P377 3200 P7400 3201 PCHCOM 3271 POINT 0333 PTSABR 0243 PUTCH 3202 PUTCH1 3266 PUTCH2 3263 PUTCH3 3241 unreferenced PUTCHX 3206 PUTLNK 3350 PUTMP 3346 RERROR 5534 SABR 2200 SCDIF0 3361 SF7600 3351 SFATAL 3350 START 0200 unreferenced VERN 0335 VERNUM 0323 VERPRT 4753 VPRINT 0347 VPUNCH 4757 XFINI 5354