1 /ROGALGOL V4 ARRAY OVERLAY. PUTS ELEMENTS IN ANY FIELD 2 /WITH FIRST AND LAST ADDRESSES DEFINED 3 ARFLD=20 4 5 FIELD 1 6 7 SUBSA4=1652 8 IGET=1724 9 ARR=2220 10 ARNW=2322 11 PFORM=1731 12 SUBSA=1600 13 NEXT=37 14 ABAS=24 15 T1=1 16 FLAC=44 17 FPUSH=4475 18 FPOP=4473 19 FPUT=5663 20 21 22 / THIS NEXT ASSUMES ARFLD=20; PREVENTS FIELD OPTIONS LOADING 23 / INTO FIELD 2 OR BELOW. IF ARFLD CHANGED, THEN THIS SHOULD 24 / BE DELETED. OR SET TO -6211 25 / THEN BEWARE LOADING PROGRAM BY /0 - /7 OVER THIS OVERLAY. 26 / IF SET TO -6231, THEN COULD NOT LOAD BY OPTION 27 / INTO FIELDS 0 - 3 (FIELD 0 WOULD STILL BE THE DEFAULT). 28 013602 1557 *3602; -6221 29 30 010117 1736 *117; IPUT 31 32 010600 2600 *600; EINT 33 010602 0000 *602; 0; JMP I .+1; ALEV0; JMP I 602 /CREATE LEVEL 0 010603 5604 010604 2441 010605 5602 34 010636 5637 *636; JMP I .+1; AINIT /INITIALISE ARRAY STACK 010637 2456 35 36 011240 6032 *1240; KCC; CDF CIF; JMP I 1220 /STRAIGHT TO MONITOR 011241 6203 011242 5620 37 38 011653 1417 *SUBSA4+1; TAD I 17; NOP /ADD BASE ADDRESS FROM DV 011654 7000 39 40 *IGET+2 41 011726 5727 JMP I .+1; FXSTAK 011727 2471 42 *PFORM+2 43 011733 4744 JMS I XFPUT; NOP; JMP I NEXT 011734 7000 011735 5437 44 011736 4473 IPUT, FPOP; JMS SUBSA; JMP I FXPUTI 011737 4200 011740 5742 45 011741 5743 JMP I FXPUTR 46 011742 2514 FXPUTI, FXPI 47 011743 2503 FXPUTR, FXPR 48 011744 5663 XFPUT, FPUT 49 50 012234 5635 *ARR+14; JMP I .+1; ARR1 012235 2521 51 012324 5725 *ARNW+2; JMP I .+1; ARR2 012325 2533 52 53 *2440 54 012440 7577 MAXAR, 7577 /MAXIMUM LOCATION FOR ARRAYS 55 012441 1377 ALEV0, TAD (2; TAD ABAS; DCA T1 /ADDRESS FX FREE SPACE POINT 012442 1024 012443 3001 56 012444 1023 TAD 23; DCA ABAS /SET NEW ABAS 012445 3024 57 012446 3423 DCA I 23; ISZ 23; ISZ 23 /LEVEL NO. 0 012447 2023 012450 2023 58 012451 1401 TAD I T1; DCA I 23; ISZ 23 /FX POINTER TO NEW LEVEL 012452 3423 012453 2023 59 012454 5655 JMP I .+1; 605 012455 0605 60 61 012456 1032 AINIT, TAD 32; DCA 21 /OVERWRITTEN CODES 012457 3021 62 012460 7040 CMA; TAD 23; DCA T1 /ADDRESS OF ARRAY SPACE POINTER 012461 1023 012462 3001 63 012463 1265 TAD .+2; SKP; 0 /GET FIRST AVAILABLE ADDRESS 012464 7410 012465 0000 64 012466 3401 DCA I T1; JMP I .+1; 640 012467 5670 012470 0640 65 66 012471 4347 FXSTAK, JMS SETAD 67 012472 1411 TAD I 11; DCA FLAC 012473 3044 68 012474 1411 TAD I 11; DCA FLAC+1 012475 3045 69 012476 1411 TAD I 11; DCA FLAC+2 012477 3046 70 012500 6211 CDF 10; FPUSH; JMP I NEXT 012501 4475 012502 5437 71 72 012503 4347 FXPR, JMS SETAD 73 012504 1044 TAD FLAC; DCA I 11 012505 3411 74 012506 1045 TAD FLAC+1; DCA I 11 012507 3411 75 012510 1046 TAD FLAC+2; DCA I 11 012511 3411 76 012512 6211 CDF 10; JMP I NEXT 012513 5437 77 78 012514 6221 FXPI, CDF ARFLD; TAD FLAC+2; DCA I T1 012515 1046 012516 3401 79 012517 6211 CDF 10; JMP I NEXT 012520 5437 80 81 012521 2023 ARR1, ISZ 23 /3RD WORD IS FX POINTER 82 012522 1377 TAD (2; TAD ABAS; DCA T1 /ADDRESS OF FX POINTER 012523 1024 012524 3001 83 012525 1401 TAD I T1; DCA I 23 /TRANSFER POINTER TO NEW LEVEL 012526 3423 84 012527 7344 CLA CLL CMA RAL; TAD 23 /NEW ABAS 012530 1023 85 012531 5732 JMP I .+1; ARR+16 /GO STORE IT 012532 2236 86 87 012533 3347 ARR2, DCA SETAD /SAVE ARRAY SIZE 88 012534 1377 TAD (2; TAD ABAS; DCA T1 /ADDRESS FX POINTER 012535 1024 012536 3001 89 012537 1401 TAD I T1; DCA I 23; ISZ 23 /START OF ARRAY TO DV 012540 3423 012541 2023 90 012542 1401 TAD I T1; TAD SETAD; DCA I T1 /BUMP FX POINT. BY ARRAY SIZE 012543 1347 012544 3401 91 012545 5746 JMP I .+1; ARNW+4 /GO CHECK FREE SPACE (F1) POINTER 012546 2326 92 93 012547 0000 SETAD, 0; TAD T1; DCA T1 /ADDRESS OF ELEMENT 012550 1001 012551 3001 94 012552 1377 TAD (2; TAD T1; CLL CIA 012553 1001 012554 7141 95 012555 1240 TAD MAXAR; SNL CLA; JMS 1200 012556 7620 012557 4776 96 012560 7040 CMA; TAD T1; DCA 11; CDF ARFLD; JMP I SETAD 012561 1001 012562 3011 012563 6221 012564 5747 97 98 EINT=2600 99 012576 1200 $ 012577 0002 ABAS 0024 AINIT 2456 ALEV0 2441 ARFLD 0020 ARNW 2322 ARR 2220 ARR1 2521 ARR2 2533 EINT 2600 FLAC 0044 FPOP 4473 FPUSH 4475 FPUT 5663 FXPI 2514 FXPR 2503 FXPUTI 1742 FXPUTR 1743 FXSTAK 2471 IGET 1724 IPUT 1736 MAXAR 2440 NEXT 0037 PFORM 1731 SETAD 2547 SUBSA 1600 SUBSA4 1652 T1 0001 XFPUT 1744