1802 lines
61 KiB
OpenEdge ABL
1802 lines
61 KiB
OpenEdge ABL
0000 #
|
|
0001 (*+02()
|
|
0002 #define FINC PCOUNT := PCOUNT+1
|
|
0003 #define FDEC PCOUNT := PCOUNT-1
|
|
0004 #define FTST PCOUNT<1
|
|
0006 #define FPINC(THISP)THISP.PCOUNT := THISP.PCOUNT+1
|
|
0007 #define FPDEC(THISP)THISP.PCOUNT := THISP.PCOUNT-1
|
|
0008 #define FPTST(THISP)THISP.PCOUNT<1
|
|
0009 #define FPTWO(THISP)THISP.PCOUNT>=2
|
|
0010 #define FINCD(THISP,I)THISP.PCOUNT := THISP.PCOUNT+I
|
|
0011 ()+02*)
|
|
0012 (*+01()
|
|
0013 #define FINC FIRSTWORD := FIRSTWORD+INCRF
|
|
0014 #define FDEC FIRSTWORD := FIRSTWORD-INCRF;
|
|
0015 #define FTST FIRSTWORD<ONEF
|
|
0016 #define FPINC(THISP)THISP.FIRSTWORD := THISP.FIRSTWORD+INCRF
|
|
0017 #define FPDEC(THISP)THISP.FIRSTWORD := THISP.FIRSTWORD-INCRF
|
|
0018 #define FPTST(THISP)THISP.FIRSTWORD<ONEF
|
|
0019 #define FPTWO(THISP)THISP.FIRSTWORD>TWOF
|
|
0020 #define FINCD(THISP,I))THISP.FIRSTWORD := THISP.FIRSTWORD+I
|
|
0021 ()+01*)
|
|
0022 (*+05()
|
|
0023 #define FINC FIRSTWORD := FIRSTWORD+INCRF
|
|
0024 #define FDEC FIRSTWORD := FIRSTWORD-INCRF;
|
|
0025 #define FTST FIRSTWORD<ONEF
|
|
0026 #define FPINC(THISP)THISP.FIRSTWORD := THISP.FIRSTWORD+INCRF
|
|
0027 #define FPDEC(THISP)THISP.FIRSTWORD := THISP.FIRSTWORD-INCRF
|
|
0028 #define FPTST(THISP)THISP.FIRSTWORD<ONEF
|
|
0029 #define FPTWO(THISP)THISP.FIRSTWORD>TWOF
|
|
0030 #define FINCD(THISP,I))THISP.FIRSTWORD := THISP.FIRSTWORD+I
|
|
0031 ()+05*)
|
|
00100 (*+01() (*$L-*) ()+01*)
|
|
00110 (*+02() (*$U+*)(*$W-*)(*$G-*)(*$D+*)(*$R-*)(*$L+*)(*$E+*) ()+02*)
|
|
00120 (*+02() (*$I32*) (* MAKE SETS ABLE TO HOLD 32 BITS *) ()+02*)
|
|
00150 (* COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER *)
|
|
00200 (**)
|
|
00250 (*+01()
|
|
00300 (*-52() PROGRAM RA68 (INPUT/+,OUTPUT+/); ()-52*)
|
|
00350 (*+52() PROGRAM RA68 (INPUT+,OUTPUT+/); ()+52*)
|
|
00400 (*$G-,P-,T-,W2000 OPTIONS: COMPILE ONLY, NO IMMEDIATE GO,
|
|
00450 SET SIZE OF STACK/HEAP
|
|
00500 NO POINTER CHECK; ^'S TAKE UP 17 BITS *)
|
|
00550 ()+01*)
|
|
00555 (*+02()
|
|
00560 (*+71() PROGRAM RUN68 (INPUT,OUTPUT); ()+71*)
|
|
00565 ()+02*)
|
|
00600 (*+03()
|
|
00650 (*$E+;D-;NL*)
|
|
00700 PROGRAM RUN68;
|
|
00750 ()+03*)
|
|
00800 (**)
|
|
00850 (**)
|
|
00900 CONST (* CONST CONST CONST CONST CONST CONST CONST*)
|
|
00950 (**)
|
|
01000 (**************)
|
|
01050 (* WORD SIZES *)
|
|
01100 (**************)
|
|
01150 (**)
|
|
01200 (*+01()
|
|
01250 SZWORD=1; SZADDR=1; SZINT=1; SZREAL=1; SZLONG=2; SZNAK=1; SZPDS=1; SZPROC=1; SZTERMSET=2;
|
|
01300 CHARPERWORD=10 ; SZIDBLOCK=1 ;
|
|
01350 (*-41() STACKSZWORD = 1 ; STACKSZADDR = 1 ; STACKSZINT = 1 ; ()-41*)
|
|
01400 ()+01*)
|
|
01450 (*+02()
|
|
01500 (*+12() (*-19()
|
|
01550 SZWORD=2; SZADDR=2; SZINT=2; SZREAL=4; SZLONG=4; SZNAK=4; SZPDS=6; SZPROC=2; SZTERMSET=16;
|
|
01600 CHARPERWORD=2 ; SZIDBLOCK=12;
|
|
01650 (*-41() STACKSZWORD = 2 ; STACKSZADDR = 2 ; STACKSZINT = 2 ; ()-41*)
|
|
01700 ()-19*)
|
|
01705 (*+19()
|
|
01710 SZWORD=2; SZADDR=4; SZINT=2; SZREAL=8; SZLONG=4; SZNAK=4; SZPDS=6; SZPROC=8; SZTERMSET=16;
|
|
01720 CHARPERWORD=2 ; SZIDBLOCK=12;
|
|
01730 (*-41() STACKSZWORD = 2 ; STACKSZADDR = 4 ; STACKSZINT = 2 ; ()-41*)
|
|
01735 (*+41() STACKSZWORD =-2 ; STACKSZADDR =-4 ; STACKSZINT =-2 ; ()+41*)
|
|
01740 ()+19*) ()+12*)
|
|
01741 (*+13()
|
|
01742 SZWORD=4; SZADDR=4; SZINT=4; SZREAL=8; SZLONG=4; SZNAK=8; SZPDS=12; SZPROC=8; SZTERMSET=16;
|
|
01743 CHARPERWORD=4; SZIDBLOCK=12;
|
|
01744 (*-41() STACKSZWORD = 4 ; STACKSZADDR = 4 ; STACKSZINT = 4 ; ()-41*)
|
|
01745 (*+41() STACKSZWORD = -4 ; STACKSZADDR = -4 ; STACKSZINT = -4 ; ()+41*)
|
|
01746 ()+13*)
|
|
01750 ()+02*)
|
|
01800 (*+03()
|
|
01850 SZWORD=1; SZADDR=1; SZINT=1; SZREAL=3; SZNAK=3; SZPDS=3; (*??*) (*SZLONG??*) SZPROC=1; SZTERMSET=1;
|
|
01900 CHARPERWORD=2 ;
|
|
01950 (*-41() STACKSZWORD = 1 ; STACKSZADDR = 1 ; STACKSZINT = 1 ; ()-41*)
|
|
02000 ()+03*)
|
|
02050 (*+04()
|
|
02100 SZWORD=2; SZADDR=4; SZINT=4; SZREAL=4; SZLONG=4; SZNAK=6; (*SZPDS??*) SZPROC=4; SZTERMSET=1;
|
|
02150 CHARPERWORD=2 ;
|
|
02200 (*-41() STACKSZWORD = 2 ; STACKSZADDR = 4 ; STACKSZINT = 4 ; ()-41*)
|
|
02250 ()+04*)
|
|
02300 (*+05()
|
|
02350 SZWORD=2; SZADDR=2; SZINT=2; SZREAL=4; SZLONG=4; SZNAK=4; SZPDS=6; SZPROC=4; SZTERMSET=16;
|
|
02400 CHARPERWORD=4 ; SZIDBLOCK=5 ;
|
|
02450 (*-41() STACKSZWORD = 2 ; STACKSZADDR = 2 ; STACKSZINT = 2 ; ()-41*)
|
|
02500 (*+41() STACKSZWORD = -2 ; STACKSZADDR = -2 ; STACKSZINT = -2 ; ()+41*)
|
|
02550 ()+05*)
|
|
02600 (*+11() CHARSPACE = 64 ; ()+11*)
|
|
02700 (**)
|
|
02750 (***************************************)
|
|
02800 (* INCREASING AND DECREASING PCOUNTS *)
|
|
02850 (***************************************)
|
|
02900 (**)
|
|
02950 (*+11()
|
|
03000 INCRF=00004000000000000000B; (*INCREMENT FOR PCOUNTS WHEN USING FIRSTWORD*)
|
|
03050 INCRF2=00010000000000000000B;
|
|
03100 ONEF=00004000000000000000B; (*FOR TESTING PCOUNTS*)
|
|
03150 TWOF=00010000000000000000B;
|
|
03200 ()+11*)
|
|
03250 (*+12() (*+03()
|
|
03300 INCRF=32; (*INCREMENT FOR PCOUNTS WHEN USING FIRSTWORD*)
|
|
03350 INCRF2=64;
|
|
03400 ONEF=32; (*FOR TESTING PCOUNTS*)
|
|
03450 TWOF=64;
|
|
03500 ()+03*)
|
|
03510 (*+02()
|
|
03520 INCRF=1;
|
|
03525 INCRF2=2;
|
|
03530 ONEF=1;
|
|
03535 TWOF=2;
|
|
03540 ()+02*)()+12*)
|
|
03550 (*+13() (*+05()
|
|
03600 INCRF = 65536 ; (* INCREMENT FOR PCOUNTS WHEN USING FIRST WORD *)
|
|
03650 INCRF2 = 131072 ;
|
|
03700 ONEF = 65536 ; (* FOR TESTING PCOUNTS *)
|
|
03750 TWOF = 131072 ;
|
|
03760 ()+05*)
|
|
03765 (*+02()
|
|
03766 INCRF = 1;
|
|
03767 INCRF2 = 2;
|
|
03768 ONEF = 1;
|
|
03769 TWOF = 2;
|
|
03770 ()+02*)
|
|
03800 ()+13*)
|
|
03850 (**)
|
|
03855 (*************************************)
|
|
03900 (* SIZE OF OBJECTS * VARIABLE SIZE * *)
|
|
03950 (*************************************)
|
|
04000 (**)
|
|
04050 (*+11()
|
|
04100 STRUCTCONST=1;
|
|
04150 ELSCONST=2;
|
|
04200 STRINGCONST=1;
|
|
04250 NEXTOFFSET=2; (*OFFSET OF NEXT WITHIN OBJECT*)
|
|
04300 MULTCONST=4;
|
|
04310 REFRCONST=MULTCONST;
|
|
04320 RECRCONST=MULTCONST;
|
|
04350 REFSLNCONST=MULTCONST;
|
|
04400 SORTSHIFT=4398046511104;
|
|
04450 ()+11*)
|
|
04500 (*+12() (*+03()
|
|
04550 STRUCTCONST=3;
|
|
04600 ELSCONST=4;
|
|
04650 STRINGCONST=4;
|
|
04700 NEXTOFFSET=7; (*OFFSET OF NEXT WITHIN OBJECT*)
|
|
04750 MULTCONST=11;
|
|
04800 REFSLNCONST=11;
|
|
04805 ()+03*)
|
|
04807 (*+02()
|
|
04810 STRUCTCONST=10;
|
|
04815 ELSCONST=20;
|
|
04820 STRINGCONST=6;
|
|
04825 NEXTOFFSET=20; (*OFFSET OF NEXT WITHIN OBJECT*)
|
|
04830 MULTCONST=38;
|
|
04831 REFRCONST=MULTCONST;
|
|
04832 RECRCONST=MULTCONST;
|
|
04835 REFSLNCONST=MULTCONST;
|
|
04840 (* SORTSHIFT IS NOT USET IN THE EM MACHINE AS THERE IS NO DEFINITION OF THE UNDERLYING HARDWARE *)
|
|
04845 ()+02*)
|
|
04850 ()+12*)
|
|
04900 (*+13()
|
|
04901 (*+05()
|
|
04950 STRUCTCONST = 6 ;
|
|
05000 ELSCONST = 10;
|
|
05050 STRINGCONST = 10;
|
|
05100 NEXTOFFSET = 12 ; (* OFFSET OF NEXT WITHIN OBJECT *)
|
|
05150 MULTCONST = 18 ;
|
|
05160 REFSLNCONST = MULTCONST ;
|
|
05170 REFRCONST = MULTCONST ;
|
|
05180 RECRCONST = MULTCONST ;
|
|
05210 SORTSHIFT = 1;
|
|
05211 ()+05*)
|
|
05212 (*-05()
|
|
05213 STRUCTCONST = 12;
|
|
05214 ELSCONST = 20;
|
|
05215 STRINGCONST = 20;
|
|
05216 NEXTOFFSET = 24;
|
|
05217 MULTCONST = 36;
|
|
05218 REFSLNCONST = MULTCONST;
|
|
05219 REFRCONST = MULTCONST;
|
|
05220 RECRCONST = MULTCONST;
|
|
05221 (*-02() SORTSHIFT = 1; ()-02*)
|
|
05222 ()-05*)
|
|
05250 ()+13*)
|
|
05300 (**)
|
|
05350 (*************************************)
|
|
05400 (* * FIXED SIZE * *)
|
|
05450 (*************************************)
|
|
05500 (**)
|
|
05550 (*+11()
|
|
05600 ROUTINESIZE=2;
|
|
05650 PROUTINESIZE=2;
|
|
05700 REF1SIZE=3;
|
|
05750 REF2SIZE=4;
|
|
05800 CREFSIZE=2;
|
|
05850 REFNSIZE=2;
|
|
05950 REFSL1SIZE=2;
|
|
06100 RECNSIZE=3;
|
|
06150 UNSSIZE=2;
|
|
06200 UNPSIZE=1;
|
|
06250 AFILESIZE=8;
|
|
06300 COVERSIZE=15;
|
|
06350 ()+11*)
|
|
06400 (*+12() (*+03()
|
|
06450 ROUTINESIZE=4;
|
|
06500 PROUTINESIZE=3;
|
|
06550 REF1SIZE=3;
|
|
06600 REF2SIZE=5;
|
|
06650 CREFSIZE=4;
|
|
06700 REFNSIZE=3;
|
|
06800 REFSL1SIZE=6;
|
|
06950 RECNSIZE=8;
|
|
07000 UNSSIZE=4;
|
|
07050 UNPSIZE=4;
|
|
07100 AFILESIZE=24;
|
|
07150 COVERSIZE=20;
|
|
07155 ()+03*)
|
|
07157 (*+02() (*SIZE OF FIELDS OF OBJECT IN BYTES*)
|
|
07160 ROUTINESIZE=14;
|
|
07162 PROUTINESIZE=14;
|
|
07164 REF1SIZE=18;
|
|
07166 REF2SIZE=24;
|
|
07168 CREFSIZE=18;
|
|
07170 REFNSIZE=16;
|
|
07174 REFSL1SIZE=16;
|
|
07178 RECNSIZE=24;
|
|
07180 AFILESIZE=46;
|
|
07182 COVERSIZE=88;
|
|
07198 ()+02*)
|
|
07200 ()+12*)
|
|
07250 (*+13()
|
|
07251 (*-05()
|
|
07252 ROUTINESIZE = 12;
|
|
07253 PROUTINESIZE = 16;
|
|
07254 REF1SIZE = 20;
|
|
07255 REF2SIZE = 24;
|
|
07256 CREFSIZE = 16;
|
|
07257 REFNSIZE = 16;
|
|
07258 REFSL1SIZE = 20;
|
|
07259 RECNSIZE = 28;
|
|
07260 UNSSIZE = 12;
|
|
07261 UNPSIZE = 12;
|
|
07262 AFILESIZE = 64;
|
|
07263 COVERSIZE = 104;
|
|
07264 ()-05*)
|
|
07265 (*+05()
|
|
07300 ROUTINESIZE = 6 ;
|
|
07350 PROUTINESIZE = 8;
|
|
07400 REF1SIZE = 10;
|
|
07450 REF2SIZE = 12;
|
|
07500 CREFSIZE = 8 ;
|
|
07550 REFNSIZE = 8 ;
|
|
07650 REFSL1SIZE=10;
|
|
07800 RECNSIZE = 14 ;
|
|
07850 UNSSIZE = 6 ;
|
|
07900 UNPSIZE = 6 ;
|
|
07950 AFILESIZE = 32 ;
|
|
08000 COVERSIZE = 52 ;
|
|
08001 ()+05*)
|
|
08050 ()+13*)
|
|
08100 (**)
|
|
08150 (*+11()
|
|
08200 LFMOFFSET=0; (*OFFSETS WITHIN AFILE*)
|
|
08250 PFMOFFSET=1;
|
|
08300 PMOFFSET=2;
|
|
08350 LMOFFSET=3;
|
|
08400 TERMOFFSET=5;
|
|
08450 ()+11*)
|
|
08500 (*+12() (*+03()
|
|
08550 LFMOFFSET=2; (*OFFSETS WITHIN AFILE*)
|
|
08600 PFMOFFSET=3;
|
|
08650 PMOFFSET=4;
|
|
08700 LMOFFSET=5;
|
|
08750 TERMOFFSET=7;
|
|
08755 ()+03*)
|
|
08757 (*+02()
|
|
08760 LFMOFFSET=0; (*OFFSETS WITHIN AFILE*)
|
|
08765 PFMOFFSET=4;
|
|
08770 PMOFFSET=8;
|
|
08775 LMOFFSET=12;
|
|
08780 TERMOFFSET=20;
|
|
08800 ()+02*) ()+12*)
|
|
08850 (*+13()
|
|
08851 (*-05()
|
|
08852 LFMOFFSET = 0;
|
|
08853 PFMOFFSET = 4;
|
|
08854 PMOFFSET = 8;
|
|
08855 LMOFFSET = 12;
|
|
08856 TERMOFFSET = 20;
|
|
08857 ()-05*)
|
|
08858 (*+05()
|
|
08900 LFMOFFSET = 0 ; (* OFFSETS WITHIN A FILE *)
|
|
08950 PFMOFFSET = 2 ;
|
|
09000 PMOFFSET = 4 ;
|
|
09050 LMOFFSET = 6 ;
|
|
09100 TERMOFFSET = 10 ;
|
|
09101 ()+05*)
|
|
09150 ()+13*)
|
|
09155 (*+01() BUFFOFFSET=32; ()+01*) (*OFFSET OF THE ACTUAL BUFFER WITHIN A FETROOM *)
|
|
09160 (*+02() BUFFOFFSET=18; ()+02*)
|
|
09200 (**)
|
|
09250 (*************************)
|
|
09300 (* ENVIRONMENT ENQUIRIES *)
|
|
09350 (*************************)
|
|
09400 (**)
|
|
09450 ERRORCHAR='*';
|
|
09500 (*-50() MAXABSCHAR=127; ()-50*)
|
|
09550 (*+50() MAXABSCHAR=63; ()+50*)
|
|
09600 (*+11()
|
|
09650 BITSWIDTH=60;
|
|
09700 BYTESWIDTH=10;
|
|
09750 MINBOUND=-4194303;
|
|
09800 MAXBOUND=+4194303;
|
|
09810 HIOFFSET=377377B;
|
|
09850 INTWIDTH=16;
|
|
09900 REALWIDTH=16;
|
|
09950 EXPWIDTH=3;
|
|
10000 INTSPACE=17; (*INTWIDTH+1*)
|
|
10050 REALSPACE=23; (*REALWIDTH+EXPWIDTH+4*)
|
|
10100 COMPLSPACE=48; (*2*REALWIDTH+2*EXPWIDTH+10*)
|
|
10150 MAXINT=7777777777777777B;
|
|
10200 FAKEPI=17206220773250420551B;
|
|
10250 ()+11*)
|
|
10300 (*+12()
|
|
10350 BITSWIDTH=16;
|
|
10400 BYTESWIDTH=2;
|
|
10450 MINBOUND=-32767;
|
|
10500 MAXBOUND=+32767;
|
|
10550 INTWIDTH=5;
|
|
10600 REALWIDTH=16; (*NEEDS ATTENTION*)
|
|
10650 EXPWIDTH=3;
|
|
10700 INTSPACE=6; (*INTWIDTH+1*)
|
|
10750 REALSPACE=23; (*REALWIDTH+EXPWIDTH+4*)
|
|
10800 COMPLSPACE=48; (*2*REALWIDTH+2*EXPWIDTH+10*)
|
|
10850 MAXINT = 32767;
|
|
10860 HIOFFSET=32511;
|
|
10900 ()+12*)
|
|
10950 (*+13()
|
|
11000 BITSWIDTH = 32 ;
|
|
11050 BYTESWIDTH = 4 ;
|
|
11100 MINBOUND = -2147483647 ;
|
|
11150 MAXBOUND = +2147483647 ;
|
|
11200 INTWIDTH = 10 ;
|
|
11250 REALWIDTH = 16 ;
|
|
11300 EXPWIDTH = 3 ;
|
|
11350 INTSPACE = 11 ;
|
|
11400 REALSPACE = 23 ;
|
|
11450 COMPLSPACE = 48 ;
|
|
11500 MAXINT = 2147483647;
|
|
11505 HIOFFSET=2147483391;
|
|
11510 (*+05() FAKEPI = 1073291771 ; FAKEPI1 = 1413754136 ; ()+05*)
|
|
11550 ()+13*)
|
|
11600 (*+01()
|
|
11650 INTUNDEF=60000000000200400000B;
|
|
11700 MINREALEXP = -294 ;
|
|
11750 MAXREALEXP = 324 ;
|
|
11800 TRUEVAL = -1;
|
|
11850 ()+01*)
|
|
11860 (*+02() MINREALEXP = -10000 ; MAXREALEXP = 10000; TRUEVAL=1; LONGUNDEF=0.0;()+02*)
|
|
11865 (* INTUNDEF IS A VARIABLE IN THE 02 MACHINE (-32768) *)
|
|
11900 (*+03() INTUNDEF=100000B; ()+03*)
|
|
11950 (*+05()
|
|
12000 INTUNDEF= - 2147483647 - 1 ;
|
|
12050 LONGUNDEF = 0.0 ;
|
|
12100 MINREALEXP = -10000 ;
|
|
12150 MAXREALEXP = 10000 ;
|
|
12200 TRUEVAL=1;
|
|
12250 ()+05*)
|
|
12300 (**)
|
|
12350 (**************************************)
|
|
12400 (* ERROR NUMBERS (PROBABLY TEMPORARY) *)
|
|
12450 (**************************************)
|
|
12500 (**)
|
|
12550 RASSIG=1;
|
|
12600 RSEL=2;
|
|
12650 RDEREF=3;
|
|
12700 RASSIGNIL=4;
|
|
12750 RSELNIL=5;
|
|
12800 RDEREFNIL=6;
|
|
12850 IDREL=7;
|
|
12900 RPOWNEG=8;
|
|
12950 RBYTESPACK=9;
|
|
13000 RCLOWER=13; RCUPPER=14; RLWUPB=15;
|
|
13050 RSL1ERROR=16; RSL2ERROR=17; RSLICE=18; RSLICENIL=19;
|
|
13100 RMULASS=20; RROUTIN=21;
|
|
13150 RCHARERROR=22;
|
|
13200 RSCOPE=23; (*THE COMPASS FOR TASSTPT KNOWS THIS*)
|
|
13250 RARG=24;
|
|
13300 RDUMMY=25;
|
|
13350 BADIDF=32;
|
|
13400 NOWRITE=33; NOESTAB=34; POSMIN=35; POSMAX=36;
|
|
13450 NOTOPEN=38; NOREAD=39; NOSET=40;
|
|
13500 NORESET=41; NOSHIFT=43; NOBIN=44;
|
|
13550 NOALTER=45; NOMOOD=46; WRONGMULT=47;
|
|
13600 NODIGIT=49;NOLOGICAL=50;
|
|
13650 NOPHYSICAL=51; WRONGCHAR=52; WRONGVAL=53; SMALLLINE=56;
|
|
13700 (**)
|
|
13750 (*******************)
|
|
13800 (* VARIOUS OFFSETS *)
|
|
13850 (*******************)
|
|
13900 (**)
|
|
13950 (*+01()
|
|
14000 FIRSTIBOFFSET=531B; (*OFFSET OF GLOBAL VARIABLE FIRSTIB*)
|
|
14050 INPUTEFET=264B; (*OFFSET OF FETROOM FOR INPUT*)
|
|
14100 OUTPUTEFET=23B; (*OFFSET OF FETROOM FOR OUTPUT*)
|
|
14150 ()+01*)
|
|
14200 (*+03()
|
|
14250 (*THESE NEED ATTENTION ------------------------------------------------*)
|
|
14300 FIRSTIBOFFSET=531B; (*OFFSET OF GLOBAL VARIABLE FIRSTIB*)
|
|
14350 INPUTEFET=264B; (*OFFSET OF FETROOM FOR INPUT*)
|
|
14400 OUTPUTEFET=23B; (*OFFSET OF FETROOM FOR OUTPUT*)
|
|
14450 ()+03*)
|
|
14500 (*+05()
|
|
14550 (* THESE NEED ATTENTION ----------------------------------------------*)
|
|
14600 FIRSTIBOFFSET = 0 ; (* OFFSET OF GLOBAL VARIABLE FIRSTIB *)
|
|
14750 ()+05*)
|
|
14800 (*-05() (*-02() MAXSIZE=110B; (*MAXIMUM SIZE OF NONSTOWED OBJECT - MUST BE < 1ST PROGRAM ADDRESS*) ()-02*) ()-05*)
|
|
14810 (*+02() MAXSIZE = 16; (* MAXIMUM SIZE OF NONSTOWED OBJECT - MUST BE < FIRST DATA ADDRESS *) ()+02*)
|
|
14850 (*+05() MAXSIZE = 8 ; (* MAXIMUM SIZE OF NONSTOWED OBJECT - MUST BE < FIRST DATA ADDRESS *) ()+05*)
|
|
14900 (*+11()
|
|
14950 RECOFFSET=0; (*OFFSET OF RECGEN WITHIN RANGEBLOCK*)
|
|
15000 (*-41()
|
|
15050 IBCONST = 10;
|
|
15100 RGCONST = 4 ;
|
|
15150 ()-41*)
|
|
15200 ()+11*)
|
|
15250 (*+12() (*-02()
|
|
15300 RECOFFSET=2; (*OFFSET OF RECGEN WITHIN RANGEBLOCK*)
|
|
15350 (*-41()
|
|
15400 IBCONST = 18;
|
|
15450 RGCONST = 6 ;
|
|
15500 ()-41*) ()-02*)
|
|
15505 (*+02() (*+19()
|
|
15510 RECOFFSET=6; (*OFFSET OF RECGEN WITHIN A RANGEBLOCK*)
|
|
15515 (*+41()
|
|
15520 IBCONST = -12;
|
|
15525 RGCONST = -20;
|
|
15527 ()+41*)
|
|
15529 (*-41() (*EDUCATED GUESSES*)
|
|
15530 IBCONST = 12;
|
|
15533 RGCONST = 20;
|
|
15535 ()-41*) ()+19*)
|
|
15537 (*-19() (*LESS EDUCATED GUESSES*)
|
|
15539 RECOFFSET=4;
|
|
15541 (*+41()
|
|
15542 IBCONST = -8;
|
|
15543 RGCONST = -12;
|
|
15544 ()+41*)
|
|
15546 (*-41()
|
|
15547 IBCONST = 8;
|
|
15548 RGCONST = 12;
|
|
15549 ()-41*) ()-19*)
|
|
15550 ()+02*)
|
|
15560 ()+12*)
|
|
15600 (*+13()
|
|
15700 (*-41()
|
|
15750 IBCONST = 20 ;
|
|
15800 RGCONST = 24 ;
|
|
15850 ()-41*)
|
|
15900 (*+41()
|
|
15901 (*+05()
|
|
15650 RECOFFSET = 4 ; (* OFFSET OF RECGEN WITHIN RANGEBLOCK *)
|
|
15950 IBCONST = -12 ;
|
|
16000 RGCONST = -12 ;
|
|
16001 ()+05*)
|
|
16002 (*-05()
|
|
16003 RECOFFSET = 8;
|
|
16005 IBCONST=-20;
|
|
16006 RGCONST=-24;
|
|
16007 ()-05*)
|
|
16050 ()+41*)
|
|
16100 ()+13*)
|
|
16150 (*+01() PARAMOFFSET = 0 ; DLOFFSET = +1 ; ()+01*)
|
|
16160 (*+02() PARAMOFFSET = (*+12() -14 ()+12*) (*+13() -16 ()+13*);
|
|
16170 DLOFFSET = (*+12() (*+19() -8 ()+19*) (*-19() -4 ()-19*) ()+12*) (*+13() -8 ()+13*) ; ()+02*)
|
|
16200 (*+05() PARAMOFFSET = -12 ; DLOFFSET = -6 ; ()+05*)
|
|
16250 (**)
|
|
16300 (**********************)
|
|
16350 (* TRANSPUT CONSTANTS *)
|
|
16400 (**********************)
|
|
16450 (*+01()
|
|
16500 FORREAD = 123B ; FORWRITE = 123B ; ONLINE = 10B ;
|
|
16550 ()+01*)
|
|
16560 (*+02()
|
|
16570 FORREAD = 1 ; FORWRITE = 2 ; ONLINE = 0 ;
|
|
16580 DATAINBUF = 4 ; EOLINTEXTFIL = 8 ; EXTERNFIL = 32 ; STATICNAME = 64 ;
|
|
16590 ()+02*)
|
|
16600 (*+05()
|
|
16650 FORREAD = 1 ; FORWRITE = 2 ; ONLINE = 0 ;
|
|
16700 DATAINBUF = 4 ; EOLINTEXTFIL = 8 ; EXTERNFIL = 32 ; STATICNAME = 64 ;
|
|
16750 ()+05*)
|
|
16800 (**)
|
|
16850 TYPE (* TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE *)
|
|
16900 (**)
|
|
16950 SEVERAL = 0..10;
|
|
17000 (*-01() ALFA = PACKED ARRAY [ 1..10 ] OF CHAR ; ()-01*)
|
|
17050 (**)
|
|
17100 ACCURATEPI = RECORD
|
|
17150 CASE SEVERAL OF
|
|
17160 (*-01() (*-05() 0: (); ()-05*) ()-01*)
|
|
17200 (*+01() 0: (FAKEPI:INTEGER); ()+01*)
|
|
17210 (*+05() 0: ( FAKEPI, FAKEPI1: INTEGER ) ; ()+05*)
|
|
17250 1: (ACTUALPI:REAL);
|
|
17260 2,3,4,5,6,7,8,9,10: ();
|
|
17300 END;
|
|
17350 (**)
|
|
17400 (******************)
|
|
17450 (* ALGOL 68 MODES *)
|
|
17500 (******************)
|
|
17550 (*+01() A68INT=INTEGER; A68LONG = RECORD V1: INTEGER; V2: INTEGER END; ()+01*)
|
|
17600 (*+02()
|
|
17650 (*+12() A68INT=INTEGER; A68LONG=REAL; ()+12*)
|
|
17655 (*+13() A68INT=INTEGER; A68LONG=REAL; ()+13*)
|
|
17700 ()+02*)
|
|
17750 (*+03() A68INT=INTEGER; A68LONG=REAL; ()+03*)
|
|
17800 (*+04() A68INT=LONG; A68LONG=LONG; ()+04*)
|
|
17850 (*+05() A68INT = INTEGER ; A68LONG = REAL ; ()+05*)
|
|
17900 (**)
|
|
17950 (*+01() ASPROC = INTEGER; (*SCALAR TYPE TO ENCOMPASS A PASCAL PROCEDURE PARAMETER*) ()+01*)
|
|
18000 (*+02() (*+12() (*-19() ASPROC = LONG; ()-19*)
|
|
18005 (*+19() ASPROC = REAL; ()+19*) ()+12*)
|
|
18010 (*+13() ASPROC = REAL; ()+13*) ()+02*)
|
|
18050 (*+03() ASPROC = INTEGER; ()+03*)
|
|
18100 (*+04() ASPROC = INTEGER; ()+04*)
|
|
18150 (*+05() ASPROC = REAL ; ()+05*)
|
|
18200 (**)
|
|
18250 (**************************************)
|
|
18300 (* SIZE OF FIELDS IN OBJECTS *)
|
|
18350 (**************************************)
|
|
18400 (**)
|
|
18450 (*+11()
|
|
18500 PCOUNTRANGE=0..8191;
|
|
18550 CCOUNTRANGE=0..4095;
|
|
18600 OFFSETRANGE=-4095..4095;
|
|
18650 SIZERANGE=0..4095;
|
|
18700 DEPTHRANGE=0..4095;
|
|
18750 ELSRANGE=0..377777B;
|
|
18800 OFFSETPCOUNT=0..33554431;
|
|
18850 CHAN=0..377777B;
|
|
18900 BYTE=0..63;
|
|
18950 ()+11*)
|
|
19000 (*+12() (*+03()
|
|
19050 PCOUNTRANGE=0..2047;
|
|
19100 CCOUNTRANGE=0..511;
|
|
19150 OFFSETRANGE=-255..255;
|
|
19200 SIZERANGE=0..511;
|
|
19250 DEPTHRANGE=0..127;
|
|
19300 ELSRANGE=INTEGER;
|
|
19350 OFFSETPCOUNT=INTEGER;
|
|
19400 CHAN=ASPROC; (*MUST BE A GOOD IMITATION OF A PROCEDURE*)
|
|
19440 BYTE=0..255;
|
|
19450 ()+03*)
|
|
19460 (*+02()
|
|
19465 PCOUNTRANGE=0..2047;
|
|
19467 CCOUNTRANGE=0..511;
|
|
19469 OFFSETRANGE=INTEGER;
|
|
19471 SIZERANGE=0..511;
|
|
19475 DEPTHRANGE=0..255;
|
|
19477 ELSRANGE=INTEGER;
|
|
19479 OFFSETPCOUNT=INTEGER;
|
|
19481 CHAN=ASPROC; (*MUST BE A GOOD IMITATION OF A PROCEDURE*)
|
|
19483 BYTE=0..255;
|
|
19499 ()+02*)
|
|
19500 ()+12*)
|
|
19550 (*+13()
|
|
19600 PCOUNTRANGE = 0..32767 ;
|
|
19650 CCOUNTRANGE = 0..32767 ;
|
|
19700 OFFSETRANGE =-127..127;
|
|
19750 SIZERANGE = 0..255;
|
|
19800 DEPTHRANGE = 0..255 ;
|
|
19850 ELSRANGE = INTEGER ;
|
|
19900 OFFSETPCOUNT = INTEGER ;
|
|
19950 CHAN = ASPROC ; (* MUST BE A GOOD IMITATION OF A PROCEDURE *)
|
|
20000 BYTE = 0..255 ;
|
|
20050 ()+13*)
|
|
20100 BOUNDSRANGE=MINBOUND..MAXBOUND;
|
|
20150 VECCHARS = PACKED ARRAY [1..1000] OF CHAR ;
|
|
20200 (**)
|
|
20250 (**********************)
|
|
20300 (* POINTERS *)
|
|
20350 (**********************)
|
|
20400 (**)
|
|
20445 (*FOR MANIPULATING INVOCATION BLOCK POINTERS*)
|
|
20450 IPOINT = (*+12() (*-19()INTEGER()-19*) (*+19()LONG()+19*) ()+12*) (*+13() INTEGER ()+13*) ;
|
|
20500 PROCPOINT = ^PROCBLOCK;
|
|
20550 DPOINT = ^DEEBLOCK;
|
|
20600 UNDRESSP = ^UNDRESS;
|
|
20650 OBJECTP = ^OBJECT;
|
|
20700 OBJECTPP = ^OBJECTP;
|
|
20750 INTPOINT = ^INTEGER;
|
|
20800 CHARPOINT = ^CHAR;
|
|
20850 (**)
|
|
20900 (**********************)
|
|
20950 (* TRANSPUT *)
|
|
21000 (**********************)
|
|
21050 (**)
|
|
21100 (*+05()
|
|
21150 CFILE = PACKED RECORD
|
|
21200 PTR : ^ CHAR ;
|
|
21250 CNT : INTEGER ;
|
|
21300 BASE : ^ CHAR ;
|
|
21350 FLAG : 0..32767 ;
|
|
21400 FILEDES : BYTE
|
|
21450 END ;
|
|
21460 PCFILE = ^CFILE;
|
|
21500 ()+05*)
|
|
21550 (**)
|
|
21600 STATUSFIELD=(OPENED, LINEOVERFLOW, PAGEOVERFLOW, PFE, LFE, NOTINITIALIZED, NOTRESET,
|
|
21650 READMOOD, WRITEMOOD, CHARMOOD, BINMOOD, LAZY, NOTSET, CARRIAGE, STARTUP);
|
|
21700 POSSFIELD=(RESETPOSS, SETPOSS, GETPOSS, PUTPOSS, BINPOSS, ESTABPOSS, ASSPOSS);
|
|
21750 FETROOM = PACKED RECORD (*THE OBJECT CREATED BY THE PASCAL SYSTEM FOR A PASCAL FILE*)
|
|
21800 (*+01()
|
|
21850 LINECOUNTER: INTEGER;
|
|
21900 CHARBUFFER: ARRAY [1..10] OF INTEGER;
|
|
21950 SENTINEL: INTEGER;
|
|
22000 BUFELPTR: INTEGER;
|
|
22050 EOFB: 0..3B; DISP: 0..177B; RMSTUFF: 0..77777777777B; LRL: 0..777777B;
|
|
22100 (*-52()
|
|
22150 LFN: PACKED ARRAY [1..7] OF CHAR; STATUS: 0..777B;
|
|
22200 DT: PACKED ARRAY [1..2] OF CHAR; FILL1: 0..17777777777B; FIRST: ^INTEGER;
|
|
22250 FILL2: 0..177777777777777B; INN: ^INTEGER;
|
|
22300 FILL3: 0..177777777777777B; OUT: ^INTEGER;
|
|
22350 FILL4: 0..177777777777777B; LIMIT: ^INTEGER;
|
|
22400 RESTOFFET: ARRAY [1..13] OF INTEGER;
|
|
22450 ()-52*)
|
|
22500 (*+52()
|
|
22550 FILL1: 0..37B; BUFLGT: 0..1777777B; BUFADR: 0..777777B; BUFEND: 0..777777B;
|
|
22600 OUT: INTEGER;
|
|
22650 LFN: PACKED ARRAY [1..7] OF CHAR; STATUS: 0..777B;
|
|
22700 RESTOFFIT: ARRAY [1..15] OF INTEGER;
|
|
22750 ()+52*)
|
|
22800 BUFFER: ARRAY [0..128] OF INTEGER;
|
|
22850 ()+01*)
|
|
22855 (*+02()
|
|
22860 PTR: ^CHAR; (* THE POINTER F^ ,POINTS INTO BUFADR *)
|
|
22862 FLAGS: INTEGER; (* VARIOUS FLAGS USED BY PC RUNTIME SYSTEM *)
|
|
22864 FNAME: ^CHAR; (* THE FILE NAME, SHOULD REALLY BE STRING *)
|
|
22866 UFD: INTEGER; (* UNIX FILE DESCRIPTOR *)
|
|
22868 SIZE: INTEGER; (* THE ELEMENT SIZE *)
|
|
22870 COUNT: INTEGER; (* NUMBER OF BYTES LEFT IN BUFFER *)
|
|
22872 BUFLEN: INTEGER;(* EFFECTIVE LENGTH OF BUFFER *)
|
|
22874 BUFADR: PACKED ARRAY [1..512] OF CHAR; (* THE I/O BUFFER *)
|
|
22876 (* THE LAST LINE PRESUMES ONLY FILE OF CHAR ALLOWED IN ALGOL68S *)
|
|
22878 (* THUS SIZE WILL ALWAYS BE 1, THESE NEED CHANGING IF THIS IS NOT TRUE *)
|
|
22880 ()+02*)
|
|
22900 (*+03()
|
|
22950 FILENUMBER: INTEGER;
|
|
23000 EOFFLAG: INTEGER;
|
|
23050 BUFFERSIZE: INTEGER;
|
|
23100 BLOCKNUMBER: INTEGER;
|
|
23150 BLOCKSLEFT: INTEGER;
|
|
23200 FILESTATUS: INTEGER;
|
|
23250 EOLFLAG: INTEGER;
|
|
23300 CURRBYTE: INTEGER;
|
|
23350 CURRLIMIT: INTEGER;
|
|
23400 PASBUFVAR: INTEGER;
|
|
23450 BUFFER: ARRAY [0..255] OF INTEGER;
|
|
23500 ()+03*)
|
|
23550 (*+05()
|
|
23600 XOBJ: CHARPOINT ;
|
|
23650 XFILE: PCFILE ;
|
|
23700 XFLAG: INTEGER ;
|
|
23750 XOBJSIZE: INTEGER ;
|
|
23800 XBUF: CHAR ;
|
|
23850 ()+05*)
|
|
23900 END ;
|
|
23950 FETROOMP=^FETROOM;
|
|
24000 STATUSSET=SET OF STATUSFIELD;
|
|
24050 POSSSET=SET OF POSSFIELD;
|
|
24100 (*+01() LFNTYPE = ALFA ; ()+01*)
|
|
24150 (*-01() LFNTYPE = OBJECTP ; (* ACTUALLY A STRING *) ()-01*)
|
|
24200 (*-01() TERMSET=SET OF CHAR; ()-01*)
|
|
24250 (*+01() TERMSET=SET OF ':'..'<'; ()+01*)
|
|
24300 (*-01() FYL = TEXT; ()-01*)
|
|
24350 (*+01() FYL = SEGMENTED FILE OF CHAR; ()+01*)
|
|
24400 INTSTR = PACKED ARRAY [1..INTSPACE] OF CHAR;
|
|
24450 REASTR = PACKED ARRAY [1..REALSPACE] OF CHAR;
|
|
24500 CMPXSTR= PACKED ARRAY [1..COMPLSPACE] OF CHAR;
|
|
24550 GETBUFTYPE=PACKED ARRAY [0..199] OF CHAR; (*FOR INPUTTING STRINGS - SEE GETT*)
|
|
24600 MINT = (*+01()INTEGER()+01*) (*+02()REAL()+02*) (*+05()REAL()+05*) ;
|
|
24650 (*A MODE WHOSE VALUES ARE THE NON-NEGATIVE INTEGERS UP TO 10*POWOF2.
|
|
24700 THE OPERATIONS OF ADDITION, SUBTRACTION, AND MULTIPLICATION BY
|
|
24750 10 AND BY INTEGRAL POWERS OF 2 ARE ASSUMED TO WORK*)
|
|
24800 (**)
|
|
24850 (**********************)
|
|
24900 (* SORTS *)
|
|
24950 (**********************)
|
|
25000 (**)
|
|
25050 STRUCTYPE=(
|
|
25100 STRING, (*MUST BE FIRST BECAUSE THE COMPILER KNOWS ABOUT IT*)
|
|
25150 ROUTINE, (*THE COMPASS CODE FOR CALL KNOWS ABOUT THIS*)
|
|
25200 REFSLN, (*THE COMPASS CODE FOR TRIMS KNOWS ABOUT THIS*)
|
|
25250 REFN, (*THE COMPASS FOR NASSTPT KNOWS ABOUT THIS *)
|
|
25300 RECN,
|
|
25400 REF1,
|
|
25450 REF2,
|
|
25500 CREF,
|
|
25550 STRUCT,
|
|
25600 IELS,
|
|
25650 MULT,
|
|
25700 REFSL1,
|
|
25750 REFR,
|
|
25800 RECR,
|
|
25850 UNDEF,
|
|
25900 NILL,
|
|
25950 PASCROUT,
|
|
26000 AFILE,
|
|
26050 COVER);
|
|
26100 (**)
|
|
26150 (*********************************)
|
|
26200 (* THE THING *)
|
|
26250 (*********************************)
|
|
26300 (**)
|
|
26350 PDS = PACKED RECORD
|
|
26400 UI, LI: BOUNDSRANGE;
|
|
26450 (*+01() FILL: 0..3B; ()+01*)
|
|
26500 DI: SIZERANGE
|
|
26550 END;
|
|
26600 (**)
|
|
26650 UNDRESS = RECORD
|
|
26700 CASE SEVERAL OF
|
|
26750 0: (FIRSTPTR: OBJECTP; FILL0: INTEGER);
|
|
26800 1: (FIRSTWORD: INTEGER);
|
|
26850 2: (FIRSTINT: A68INT);
|
|
26900 3: (FIRSTLONG: A68LONG);
|
|
26950 4: (FIRSTREAL: REAL);
|
|
27000 5: (FIRSTTERMSET: TERMSET) ;
|
|
27050 6 , 7 , 8 , 9 , 10 : () ;
|
|
27100 END;
|
|
27150 (**)
|
|
27200 (*+11()
|
|
27250 OBJECT = PACKED RECORD
|
|
27300 CASE SEVERAL OF
|
|
27350 0: (FIRSTPTR: OBJECTP; FILL0: INTEGER);
|
|
27400 1: (FIRSTWORD: INTEGER;
|
|
27410 SECONDWORD: INTEGER);
|
|
27450 2: (PCOUNT: PCOUNTRANGE;
|
|
27500 CASE SORT: STRUCTYPE OF
|
|
27550 STRUCT:
|
|
27650 ( OSCOPE: DEPTHRANGE;
|
|
27700 LENGTH: SIZERANGE;
|
|
27725 DBLOCK: DPOINT;
|
|
27750 RE: REAL;
|
|
27800 IM: REAL);
|
|
27850 MULT:
|
|
27950 (OSCOPEM: DEPTHRANGE;
|
|
28000 FILLM1: SIZERANGE;
|
|
28025 PVALUE: OBJECTP;
|
|
28037 IHEAD: OBJECTP; (*1*)
|
|
28040 FILLM5: 0..1;
|
|
28050 FILLM2: ELSRANGE;
|
|
28150 FILLM3:OBJECTP;
|
|
28200 FILLM4: OBJECTP; (*2*)
|
|
28250 BPTR: OBJECTP;
|
|
28300 FPTR: OBJECTP; (*AT BOTTOM OF WORD TO MATCH RECEGN*)
|
|
28350 LBADJ: BOUNDSRANGE; (*3*) (*(DIST FROM EL[0,...,0] TO 1ST REAL EL) - ELSCONST*)
|
|
28400 MDBLOCK: DPOINT;
|
|
28450 SIZE: DEPTHRANGE;
|
|
28500 ROWS: 0..7;
|
|
28550 DESCVEC: ARRAY [0..7] OF PDS); (*4*)
|
|
28600 IELS:
|
|
28700 (OSCOPEE: DEPTHRANGE;
|
|
28750 CCOUNT: CCOUNTRANGE;
|
|
28775 DBLOCKE: DPOINT;
|
|
28850 IHEADE: OBJECTP; (*1*)
|
|
28860 FILLE2: 0..1;
|
|
28900 D0: ELSRANGE;
|
|
28925 FILLE1: OBJECTP (*BOTTOM OF 1*) );
|
|
28950 ROUTINE:
|
|
29050 (OSCOPER: DEPTHRANGE;
|
|
29100 FILLR: SIZERANGE;
|
|
29125 PROCBL: PROCPOINT;
|
|
29150 ENVCHAIN: IPOINT; (*1*)
|
|
29200 FILLR1: INTEGER (*2*) );
|
|
29250 PASCROUT:
|
|
29350 ( OSCOPEP: DEPTHRANGE;
|
|
29400 PPARAMS: SIZERANGE ;
|
|
29405 FILLPR: OBJECTP ;
|
|
29410 PPROCBL: ASPROC (*1*) );
|
|
29450 REF1:
|
|
29550 ( OSCOPERF1: DEPTHRANGE;
|
|
29600 FILLRF11: SIZERANGE;
|
|
29605 PVALUEF1: DPOINT;
|
|
29610 FILLRF12: OBJECTP; (*1*)
|
|
29615 FILLRF13: 0..1;
|
|
29620 OFFSETRF1: ELSRANGE;
|
|
29630 ANCESTORF1: OBJECTP;
|
|
29650 VALUE: A68INT (*2*) );
|
|
29700 REF2:
|
|
29800 ( OSCOPERF2: DEPTHRANGE;
|
|
29850 FILLRF21: SIZERANGE;
|
|
29855 PVALUEF2: DPOINT;
|
|
29860 FILLRF22: OBJECTP; (*1*)
|
|
29865 FILLRF23: 0..1;
|
|
29870 OFFSETRF2: ELSRANGE;
|
|
29880 ANCESTORF2: OBJECTP;
|
|
29900 LONGVALUE: A68LONG ); (*2*)
|
|
29950 REFN:
|
|
30050 (OSCOPEFN: DEPTHRANGE;
|
|
30100 FILLFN: SIZERANGE;
|
|
30125 PVALUEFN: OBJECTP;
|
|
30130 FILLFN1:OBJECTP; (*1*)
|
|
30132 FILLFN2: 0..1;
|
|
30135 OFFSETFN:ELSRANGE;
|
|
30140 ANCESTORFN:OBJECTP);
|
|
30150 CREF:
|
|
30250 (OSCOPECF: DEPTHRANGE;
|
|
30300 FILLCREF: SIZERANGE ;
|
|
30325 PVALUECF : DPOINT ;
|
|
30330 IPTR :UNDRESSP; (*1*)
|
|
30332 FILLCF1: 0..1;
|
|
30335 OFFSETCF:ELSRANGE;
|
|
30350 ANCESTORCF: OBJECTP ) ;
|
|
30400 REFR:
|
|
30500 ( OSCOPERR: DEPTHRANGE;
|
|
30550 CCOUNTR: CCOUNTRANGE;
|
|
30575 PVALUERR: OBJECTP;
|
|
30650 FILLRR0: OBJECTP; (*1*)
|
|
30660 FILLRR4: 0..1;
|
|
30700 FILLRR1: ELSRANGE;
|
|
30705 ANCESTOR: OBJECTP;
|
|
30710 FILLRR2: OBJECTP; (*2*)
|
|
30750 FILLRR3: OBJECTP;
|
|
30760 LBADJRR: BOUNDSRANGE; (*3*)
|
|
30768 MDBLOCKRR: DPOINT;
|
|
30776 SIZERR: DEPTHRANGE;
|
|
30784 ROWSNRR:0..7;
|
|
30792 DESCVECRR:ARRAY [0..7] OF PDS); (*4*)
|
|
30800 REFSL1:
|
|
30900 (OSCOPEL: DEPTHRANGE;
|
|
30950 CCOUNTL: CCOUNTRANGE;
|
|
30975 DBLOCKL: DPOINT;
|
|
31050 FILLL2: OBJECTP; (*1*)
|
|
31060 FILLL1: 0..1;
|
|
31100 OFFSET: ELSRANGE;
|
|
31125 ANCSTRL: OBJECTP;
|
|
31150 FILLL3: INTEGER (*2*) );
|
|
31200 REFSLN:
|
|
31300 (OSCOPEN: DEPTHRANGE;
|
|
31350 CCOUNTN: CCOUNTRANGE;
|
|
31375 FILLN4: OBJECTP;
|
|
31450 FILLN: OBJECTP; (*1*)
|
|
31460 FILLN5: 0..1;
|
|
31500 FILLN0: ELSRANGE;
|
|
31525 ANCSTRN: OBJECTP;
|
|
31550 FILLN1: OBJECTP; (*2*)
|
|
31600 FILLN2: OBJECTP;
|
|
31650 FILLN3: OBJECTP;
|
|
31700 LBADJN: BOUNDSRANGE; (*3*)
|
|
31750 MDBLOCKN: DPOINT;
|
|
31800 SIZEN: DEPTHRANGE;
|
|
31850 ROWSN: 0..7;
|
|
31900 DESCVECN: ARRAY [0..7] OF PDS); (*4*)
|
|
32300 RECR:
|
|
32400 ( OSCOPECR: DEPTHRANGE;
|
|
32450 CCOUNTCR: CCOUNTRANGE;
|
|
32475 PVALUECR: OBJECTP;
|
|
32550 FILLCR0: OBJECTP; (*1*)
|
|
32560 FILLCR3: 0..1;
|
|
32600 FILLCR1: ELSRANGE;
|
|
32625 ANCSTRCR: OBJECTP;
|
|
32650 FILLCR2: OBJECTP; (*2*)
|
|
32700 PREV: OBJECTP;
|
|
32750 NEXT: OBJECTP;
|
|
32800 LBADJCR: BOUNDSRANGE; (*3*)
|
|
32810 MDBLOCKCR: DPOINT;
|
|
32820 SIZECR: DEPTHRANGE;
|
|
32830 ROWSNCR:0..7;
|
|
32840 DESCVECCR:ARRAY [0..7] OF PDS); (*4*)
|
|
32850 RECN:
|
|
32950 ( OSCOPECN: DEPTHRANGE;
|
|
33000 FILLCN: SIZERANGE;
|
|
33025 PVALUECN :OBJECTP;
|
|
33050 FILLCN1: OBJECTP; (*1*)
|
|
33070 FILLCN4: 0..1;
|
|
33080 OFFSETCN:ELSRANGE;
|
|
33090 ANCESTORCN:OBJECTP;
|
|
33100 FILLCN2: OBJECTP; (*2*)
|
|
33150 PREVCN: OBJECTP;
|
|
33200 NEXTCN: OBJECTP;
|
|
33250 FILLCN3: INTEGER); (*3*)
|
|
33300 STRING:
|
|
33400 ( FILLST1: DEPTHRANGE;
|
|
33450 STRLENGTH: SIZERANGE;
|
|
33475 FILLST: DPOINT;
|
|
33500 CHARVEC: VECCHARS (*1*) );
|
|
33550 UNDEF, NILL:
|
|
33650 ( OSCOPEUN: DEPTHRANGE;
|
|
33700 STRLNGUN: SIZERANGE;
|
|
33705 PVALUEUN: OBJECTP;
|
|
33710 FILLUN1: OBJECTP; (*1*)
|
|
33715 FILLUN2: 0..1;
|
|
33725 OFFSETUN: ELSRANGE;
|
|
33750 ANCESTORUN: OBJECTP;
|
|
33800 FILLUN3: OBJECTP; (*2*)
|
|
33850 FILLUN4: OBJECTP;
|
|
33860 FILLUN5: OBJECTP;
|
|
33870 FILLUN6: BOUNDSRANGE; (*3*)
|
|
33880 FILLUN7: DPOINT;
|
|
33890 FILLUN8: DEPTHRANGE;
|
|
33895 ROWSUN: 0..7;
|
|
33900 DESCVECUN: ARRAY [0..7] OF PDS); (*4*)
|
|
33950 AFILE: (*ACTUALLY, AFILES WILL BE STORED AS STRUCTS, BUT THESE FIELD SELECTORS SHOULD WORK*)
|
|
34050 ( OSCOPEF: DEPTHRANGE;
|
|
34100 LENGTHF: SIZERANGE;
|
|
34125 DBLOCKF: DPOINT;
|
|
34150 FILLF1: 0..77777777777777B; (*1*)
|
|
34200 LOGICALFILEMENDED: OBJECTP;
|
|
34250 FILLF2: 0..77777777777777B; (*2*)
|
|
34300 PHYSICALFILEMENDED: OBJECTP;
|
|
34350 FILLF3: 0..77777777777777B; (*3*)
|
|
34400 PAGEMENDED: OBJECTP;
|
|
34450 FILLF4: 0..77777777777777B; (*4*)
|
|
34500 LINEMENDED: OBJECTP;
|
|
34550 FILLF5: 0..77777777777777B; (*5*)
|
|
34600 PCOVER: OBJECTP;
|
|
34650 TERM: TERMSET; (*6*)
|
|
34700 TERM1: TERMSET); (*7*)
|
|
34750 COVER:
|
|
34850 ( OSCOPEV: DEPTHRANGE;
|
|
34900 FILLV: SIZERANGE;
|
|
34925 CHANNEL: CHAN;
|
|
34950 STATUS: STATUSSET;
|
|
35000 POSSIBLES: POSSSET;
|
|
35050 COFCPOS, LOFCPOS, POFCPOS: INTEGER;
|
|
35100 CHARBOUND, LINEBOUND, PAGEBOUND: INTEGER;
|
|
35150 DOPUTS,DOGETS,DONEWLINE,DONEWPAGE,DOSET,DORESET: ASPROC;
|
|
35200 CASE ASSOC: BOOLEAN OF
|
|
35250 FALSE: (FILLC: 0..77777777777777B;
|
|
35300 BOOK:FETROOMP);
|
|
35350 TRUE: (ASSREF:OBJECTP;
|
|
35400 CPOSELS:ELSRANGE;
|
|
35450 OFFSETDI:SIZERANGE));
|
|
35500 );
|
|
35550 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 : () ;
|
|
35600 END;
|
|
35650 ()+11*)
|
|
35700 (*+12()
|
|
35720 (*+03()
|
|
35750 OBJECT = PACKED RECORD
|
|
35800 CASE SEVERAL OF
|
|
35850 0: (FIRSTPTR: OBJECTP; FILL0: INTEGER);
|
|
35900 1: (FIRSTWORD: INTEGER);
|
|
35950 2: (PCOUNT: PCOUNTRANGE;
|
|
36000 SORT: STRUCTYPE;
|
|
36050 CASE STRUCTYPE OF
|
|
36100 STRUCT:
|
|
36150 (OSCOPE: DEPTHRANGE;
|
|
36200 LENGTH: SIZERANGE;
|
|
36250 DBLOCK: DPOINT;
|
|
36300 RE: REAL;
|
|
36350 IM: REAL);
|
|
36400 MULT:
|
|
36450 (SCOPEM: DEPTHRANGE;
|
|
36500 FILLM1: CCOUNTRANGE;
|
|
36550 PVALUEM: OBJECTP;
|
|
36600 D0: ELSRANGE;
|
|
36650 ELS: OBJECTP;
|
|
36700 IHEAD: OBJECTP;
|
|
36750 BPTR: OBJECTP;
|
|
36800 FPTR: OBJECTP;
|
|
36850 LBADJ: BOUNDSRANGE; (*(DIST FROM EL[0,...,0] TO 1ST REAL EL) - ELSCONST*)
|
|
36900 MDBLOCK: DPOINT;
|
|
36950 SIZE: SIZERANGE;
|
|
37000 ROWS: 0..7;
|
|
37050 DESCVEC: ARRAY [0..7] OF PDS);
|
|
37100 IELS:
|
|
37150 (OSCOPEE: DEPTHRANGE;
|
|
37200 CCOUNT: CCOUNTRANGE;
|
|
37250 DBLOCKE: DPOINT;
|
|
37300 FILLE2: OBJECTP;
|
|
37350 D0E: ELSRANGE; );
|
|
37400 ROUTINE:
|
|
37450 (SCOPER: DEPTHRANGE;
|
|
37500 FILLR: SIZERANGE;
|
|
37550 PROCBL: PROCPOINT;
|
|
37600 ENVCHAIN: IPOINT);
|
|
37650 PASCROUT:
|
|
37700 (SCOPEP: DEPTHRANGE;
|
|
37750 PPARAMS: SIZERANGE;
|
|
37800 PPROCBL: ASPROC );
|
|
37850 REF1:
|
|
37900 (SCOPERF1: DEPTHRANGE;
|
|
37950 FILLRF11: SIZERANGE;
|
|
37955 PVALUERF1: OBJECTP;
|
|
37957 FILLRF12: ELSRANGE;
|
|
37960 ANCESTRF1: OBJECTP;
|
|
38000 VALUE: A68INT);
|
|
38050 REF2:
|
|
38100 (SCOPERF2: DEPTHRANGE;
|
|
38150 FILLRF21: SIZERANGE;
|
|
38160 PVALUERF2: OBJECTP;
|
|
38170 FILLRF22: ELSRANGE;
|
|
38180 ANCESTRF2: OBJECTP;
|
|
38200 LONGVALUE: A68LONG);
|
|
38250 REFN:
|
|
38300 (SCOPEFN: DEPTHRANGE;
|
|
38350 FILLFN: SIZERANGE;
|
|
38400 PVALUE: OBJECTP;
|
|
38410 OFFSETFN: ELSRANGE;
|
|
38420 ANCESTFN: OBJECTP);
|
|
38450 CREF:
|
|
38500 (SCOPEC: DEPTHRANGE;
|
|
38550 FILLCREF: SIZERANGE;
|
|
38600 PVALUEC : OBJECTP ;
|
|
38605 FILLC2: ELSRANGE;
|
|
38610 ANCESTCREF: OBJECTP ;
|
|
38650 IPTR: UNDRESSP);
|
|
38700 REFR:
|
|
38750 (SCOPERR: DEPTHRANGE;
|
|
38800 CCOUNTR: CCOUNTRANGE;
|
|
38850 PVALUER: OBJECTP;
|
|
38900 FILLRR1: ELSRANGE;
|
|
38950 ANCESTOR: OBJECTP;
|
|
39000 FILLRR2: OBJECTP;
|
|
39005 FILLRR3: OBJECTP;
|
|
39010 FILLRR4: OBJECTP;
|
|
39015 LBADJR: BOUNDSRANGE;
|
|
39020 MDBLOCKR: DPOINT;
|
|
39025 SIZER: SIZERANGE;
|
|
39030 ROWSR: 0..7;
|
|
39035 DESCVECR: ARRAY [0..7] OF PDS);
|
|
39050 REFSL1:
|
|
39100 (SCOPEL: DEPTHRANGE;
|
|
39150 CCOUNTL: CCOUNTRANGE;
|
|
39200 DBLOCKL: DPOINT;
|
|
39250 OFFSET: ELSRANGE;
|
|
39300 ANCSTRL: OBJECTP);
|
|
39400 REFSLN:
|
|
39450 (SCOPEN: DEPTHRANGE;
|
|
39500 CCOUNTN: CCOUNTRANGE;
|
|
39550 FILLN0: OBJECTP;
|
|
39600 FILLN1: ELSRANGE;
|
|
39650 ANCSTRN: OBJECTP;
|
|
39700 FILLN15: OBJECTP;
|
|
39750 FILLN2: OBJECTP;
|
|
39800 FILLN3: OBJECTP;
|
|
39850 LBADJN: BOUNDSRANGE;
|
|
39900 MDBLOCKN: DPOINT;
|
|
39950 SIZEN: SIZERANGE;
|
|
40000 ROWSN: 0..7;
|
|
40050 DESCVECN: ARRAY [0..7] OF PDS);
|
|
40400 RECR:
|
|
40450 (SCOPECR: DEPTHRANGE;
|
|
40500 CCOUNTCR: CCOUNTRANGE;
|
|
40550 PVALUECR: OBJECTP;
|
|
40600 FILLCR1: ELSRANGE;
|
|
40650 ANCSTRCR: OBJECTP;
|
|
40700 FILLCR2: OBJECTP;
|
|
40750 PREV: OBJECTP;
|
|
40800 NEXT: OBJECTP;
|
|
40810 LBADJCR: BOUNDSRANGE;
|
|
40820 MDBLOCKCR: DPOINT;
|
|
40830 SIZECR: SIZERANGE;
|
|
40840 ROWSCR: 0..7;
|
|
40845 DESCVECCR: ARRAY [0..7] OF PDS);
|
|
40850 RECN:
|
|
40900 (SCOPECN: DEPTHRANGE;
|
|
40950 FILLCN: SIZERANGE;
|
|
41000 PVALUECN :OBJECTP;
|
|
41050 OFFSETCN: ELSRANGE;
|
|
41100 ANCESTCN: OBJECTP;
|
|
41150 FILLCN3: OBJECTP;
|
|
41200 PREVCN: OBJECTP;
|
|
41250 NEXTCN: OBJECTP);
|
|
41300 STRING:
|
|
41350 (FILLST1: DEPTHRANGE;
|
|
41400 STRLENGTH: ELSRANGE;
|
|
41550 CHARVEC: VECCHARS);
|
|
41600 UNDEF, NILL:
|
|
41650 (SCOPEUN: DEPTHRANGE;
|
|
41700 STRLNGUN: ELSRANGE;
|
|
41750 PVALUEUN: OBJECTP;
|
|
41800 OFFSETUN: ELSRANGE;
|
|
41810 ANCESTUN: OBJECTP;
|
|
41850 FILLUN1: OBJECTP;
|
|
41860 FILLUN2: OBJECTP;
|
|
41870 FILLUN3:OBJECTP;
|
|
41880 FILLUN4: BOUNDRANGE;
|
|
41885 FILLUN5: DPOINT;
|
|
41890 FILLUN6: SIZERANGE;
|
|
41895 ROWSUN: 0..7;
|
|
41900 DESCVECUN: ARRAY [0..7] OF PDS);
|
|
41950 AFILE: (*ACTUALLY, AFILES WILL BE STORED AS STRUCTS, BUT THESE FIELD SELECTORS SHOULD WORK*)
|
|
42000 (SCOPEF: DEPTHRANGE;
|
|
42050 LENGTHF: SIZERANGE;
|
|
42100 DBLOCKF: DPOINT;
|
|
42150 LOGICALFILEMENDED: OBJECTP;
|
|
42200 PHYSICALFILEMENDED: OBJECTP;
|
|
42250 PAGEMENDED: OBJECTP;
|
|
42300 LINEMENDED: OBJECTP;
|
|
42350 PCOVER: OBJECTP;
|
|
42400 TERM: TERMSET);
|
|
42450 COVER:
|
|
42500 (SCOPEV: DEPTHRANGE;
|
|
42550 FILLV: SIZERANGE;
|
|
42600 CHANNEL: CHAN;
|
|
42650 STATUS: STATUSSET;
|
|
42700 POSSIBLES: POSSSET;
|
|
42750 COFCPOS, LOFCPOS, POFCPOS: INTEGER;
|
|
42800 CHARBOUND, LINEBOUND, PAGEBOUND: INTEGER;
|
|
42850 DOPUTS,DOGETS,DONEWLINE,DONEWPAGE,DOSET,DORESET: ASPROC;
|
|
42900 CASE ASSOC: BOOLEAN OF
|
|
42950 FALSE: (FILLC: SIZERANGE;
|
|
42955 BOOK:FETROOMP);
|
|
42960 TRUE: (OFFSETDI:SIZERANGE;
|
|
42965 ASSREF:OBJECTP;
|
|
42970 CPOSELS:ELSRANGE) );
|
|
42975 );
|
|
42980 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 : () ;
|
|
42985 END;
|
|
42990 ()+03*)
|
|
43000 (*+02()
|
|
43002 OBJECT = PACKED RECORD
|
|
43004 CASE SEVERAL OF
|
|
43006 0: (FIRSTPTR: OBJECTP; FILL0: INTEGER);
|
|
43008 1: (FIRSTWORD: INTEGER);
|
|
43010 2: (PCOUNT: PCOUNTRANGE;
|
|
43012 SORT: STRUCTYPE;
|
|
43014 CASE STRUCTYPE OF
|
|
43016 STRUCT:
|
|
43018 (OSCOPE: DEPTHRANGE;
|
|
43020 LENGTH: SIZERANGE;
|
|
43022 DBLOCK: DPOINT;
|
|
43024 RE: REAL;
|
|
43026 IM: REAL);
|
|
43028 MULT:
|
|
43030 (SCOPEM: DEPTHRANGE;
|
|
43032 FILLM1: CCOUNTRANGE;
|
|
43034 PVALUEM: OBJECTP;
|
|
43036 D0: ELSRANGE;
|
|
43038 ELS: OBJECTP;
|
|
43040 IHEAD: OBJECTP;
|
|
43042 BPTR: OBJECTP;
|
|
43044 FPTR: OBJECTP;
|
|
43046 LBADJ: BOUNDSRANGE; (*(DIST FROM EL[0,...,0] TO 1ST REAL EL) - ELSCONST*)
|
|
43048 MDBLOCK: DPOINT;
|
|
43050 SIZE: SIZERANGE;
|
|
43052 ROWS: 0..7;
|
|
43054 DESCVEC: ARRAY [0..7] OF PDS);
|
|
43056 IELS:
|
|
43058 (OSCOPEE: DEPTHRANGE;
|
|
43060 CCOUNT: CCOUNTRANGE;
|
|
43062 DBLOCKE: DPOINT;
|
|
43066 D0E: ELSRANGE;
|
|
43067 FILLE: OBJECTP;
|
|
43068 IHEADE: OBJECTP);
|
|
43069 ROUTINE:
|
|
43070 (SCOPER: DEPTHRANGE;
|
|
43072 FILLR: SIZERANGE;
|
|
43074 PROCBL: PROCPOINT;
|
|
43076 ENVCHAIN: IPOINT);
|
|
43078 PASCROUT:
|
|
43080 (SCOPEP: DEPTHRANGE;
|
|
43082 PPARAMS: SIZERANGE;
|
|
43084 PPROCBL: ASPROC );
|
|
43086 REF1:
|
|
43088 (SCOPERF1: DEPTHRANGE;
|
|
43090 FILLRF1: SIZERANGE;
|
|
43091 PVALUER1: OBJECTP;
|
|
43092 ANCESTR1: OBJECTP;
|
|
43093 OFFSETR1: ELSRANGE;
|
|
43094 VALUE: A68INT);
|
|
43095 REF2:
|
|
43096 (SCOPERF2: DEPTHRANGE;
|
|
43098 FILLRF2: SIZERANGE;
|
|
43099 PVALUER2: OBJECTP;
|
|
43100 ANCESTR2: OBJECTP;
|
|
43101 OFFSETR2: ELSRANGE;
|
|
43102 LONGVALUE: A68LONG);
|
|
43103 REFN:
|
|
43104 (SCOPEFN: DEPTHRANGE;
|
|
43106 FILLFN: SIZERANGE;
|
|
43108 PVALUE: OBJECTP;
|
|
43109 ANCESTRN: OBJECTP;
|
|
43110 OFFSETRN: ELSRANGE);
|
|
43111 CREF:
|
|
43112 (SCOPEC: DEPTHRANGE;
|
|
43114 FILLCREF: SIZERANGE;
|
|
43116 PVALUEC : OBJECTP ;
|
|
43117 ANCESTC : OBJECTP ;
|
|
43118 IPTR: UNDRESSP);
|
|
43120 REFR:
|
|
43122 (SCOPERR: DEPTHRANGE;
|
|
43124 CCOUNTR: CCOUNTRANGE;
|
|
43126 PVALUER: OBJECTP;
|
|
43127 ANCESTOR: OBJECTP;
|
|
43128 FILLRR1: ELSRANGE;
|
|
43129 FILLRR2: OBJECTP;
|
|
43130 FILLRR3: OBJECTP;
|
|
43131 FILLRR4: OBJECTP;
|
|
43132 LBADJRR: BOUNDSRANGE;
|
|
43133 MDBLOCKRR: DPOINT;
|
|
43134 SIZERR: SIZERANGE;
|
|
43135 ROWSRR: 0..7;
|
|
43136 DESCVECRR: ARRAY [0..7] OF PDS);
|
|
43137 REFSL1:
|
|
43138 (SCOPEL: DEPTHRANGE;
|
|
43139 CCOUNTL: CCOUNTRANGE;
|
|
43140 DBLOCKL: DPOINT;
|
|
43142 ANCSTRL: OBJECTP;
|
|
43144 OFFSET: ELSRANGE);
|
|
43148 REFSLN:
|
|
43150 (SCOPEN: DEPTHRANGE;
|
|
43152 CCOUNTN: CCOUNTRANGE;
|
|
43154 FILLN1: OBJECTP;
|
|
43156 ANCSTRN: OBJECTP;
|
|
43158 FILLN2: ELSRANGE;
|
|
43160 FILLN3: OBJECTP;
|
|
43162 FILLN4: OBJECTP;
|
|
43164 FILLN5: OBJECTP;
|
|
43166 LBADJN: BOUNDSRANGE;
|
|
43168 MDBLOCKN: DPOINT;
|
|
43170 SIZEN: SIZERANGE;
|
|
43172 ROWSN: 0..7;
|
|
43174 DESCVECN: ARRAY [0..7] OF PDS);
|
|
43176 RECR:
|
|
43178 (SCOPECR: DEPTHRANGE;
|
|
43180 CCOUNTCR: CCOUNTRANGE;
|
|
43182 PVALUECR: OBJECTP;
|
|
43184 ANCSTRCR: OBJECTP;
|
|
43185 FILLCR1: ELSRANGE;
|
|
43186 PREV: OBJECTP;
|
|
43187 NEXT: OBJECTP;
|
|
43188 FILLCR2: OBJECTP;
|
|
43189 LBADJCR: BOUNDSRANGE;
|
|
43190 MDBLOCKCR: DPOINT;
|
|
43191 SIZECR: SIZERANGE;
|
|
43192 ROWSCR: 0..7;
|
|
43193 DESCVECCR: ARRAY [0..7] OF PDS);
|
|
43194 RECN:
|
|
43196 (SCOPECN: DEPTHRANGE;
|
|
43198 FILLCN: SIZERANGE;
|
|
43200 PVALUECN :OBJECTP;
|
|
43202 ANCESTCN: OBJECTP;
|
|
43204 OFFSETCN: ELSRANGE;
|
|
43208 PREVCN: OBJECTP;
|
|
43210 NEXTCN: OBJECTP);
|
|
43212 STRING:
|
|
43214 (FILLST1: DEPTHRANGE;
|
|
43216 STRLENGTH: ELSRANGE;
|
|
43222 CHARVEC: VECCHARS);
|
|
43226 UNDEF, NILL:
|
|
43228 (SCOPEUN: DEPTHRANGE;
|
|
43230 STRLNGUN: ELSRANGE;
|
|
43232 PVALUEUN: OBJECTP;
|
|
43234 ANCESTUN: OBJECTP;
|
|
43236 OFFSETUN: ELSRANGE;
|
|
43238 FILLUN2: OBJECTP;
|
|
43240 FILLUN3: OBJECTP;
|
|
43242 FILLUN4: OBJECTP;
|
|
43244 FILLUN5: BOUNDSRANGE;
|
|
43246 FILLUN6: DPOINT;
|
|
43248 FILLUN7: SIZERANGE;
|
|
43250 ROWSUN: 0..7;
|
|
43252 DESCVECUN: ARRAY [0..7] OF PDS);
|
|
43260 AFILE: (*ACTUALLY, AFILES WILL BE STORED AS STRUCTS, BUT THESE FIELD SELECTORS SHOULD WORK*)
|
|
43262 (SCOPEF: DEPTHRANGE;
|
|
43264 LENGTHF: SIZERANGE;
|
|
43266 DBLOCKF: DPOINT;
|
|
43268 LOGICALFILEMENDED: OBJECTP;
|
|
43270 PHYSICALFILEMENDED: OBJECTP;
|
|
43272 PAGEMENDED: OBJECTP;
|
|
43274 LINEMENDED: OBJECTP;
|
|
43276 PCOVER: OBJECTP;
|
|
43278 TERM: TERMSET);
|
|
43300 COVER:
|
|
43302 (SCOPEV: DEPTHRANGE;
|
|
43304 FILLV: SIZERANGE;
|
|
43306 CHANNEL: CHAN;
|
|
43308 STATUS: STATUSSET;
|
|
43310 POSSIBLES: POSSSET;
|
|
43312 COFCPOS, LOFCPOS, POFCPOS: INTEGER;
|
|
43314 CHARBOUND, LINEBOUND, PAGEBOUND: INTEGER;
|
|
43316 DOPUTS,DOGETS,DONEWLINE,DONEWPAGE,DOSET,DORESET: ASPROC;
|
|
43318 CASE ASSOC: BOOLEAN OF
|
|
43320 FALSE: (FILLC: SIZERANGE;
|
|
43322 BOOK:FETROOMP);
|
|
43324 TRUE: (OFFSETDI:SIZERANGE;
|
|
43326 ASSREF:OBJECTP;
|
|
43328 CPOSELS:ELSRANGE) );
|
|
43330 );
|
|
43350 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 : () ;
|
|
43360 END;
|
|
43370 ()+02*)
|
|
43400 ()+12*)
|
|
43410 (*+13()
|
|
43450 OBJECT = PACKED RECORD
|
|
43500 CASE SEVERAL OF
|
|
43550 0: (FIRSTPTR: OBJECTP; FILL0: INTEGER);
|
|
43600 1: (FIRSTWORD: INTEGER);
|
|
43650 2: (PCOUNT: PCOUNTRANGE;
|
|
43700 SORT: STRUCTYPE;
|
|
43750 CASE STRUCTYPE OF
|
|
43800 STRUCT:
|
|
43850 (OSCOPE: DEPTHRANGE;
|
|
43900 DBLOCK: DPOINT ; (*1*)
|
|
44050 LENGTH: CCOUNTRANGE; (*2*)
|
|
44100 RE: REAL;
|
|
44150 IM: REAL);
|
|
44200 MULT:
|
|
44250 (OSCOPEM: DEPTHRANGE;
|
|
44300 PVALUEM: OBJECTP; (*1*)
|
|
44325 FILLM: ELSRANGE; (*2*)
|
|
44337 IHEAD: OBJECTP; (*3*)
|
|
44350 ROWS: 0..7 ; (*4*)
|
|
44400 SIZE: SIZERANGE ;
|
|
44450 FILLM1: CCOUNTRANGE ;
|
|
44650 BPTR: OBJECTP; (*5*)
|
|
44700 FPTR: OBJECTP; (*6*)
|
|
44750 LBADJ: BOUNDSRANGE; (*7*) (*(DIST FROM EL[0,...,0] TO 1ST REAL EL) - ELSCONST*)
|
|
44800 MDBLOCK: DPOINT; (*8*)
|
|
44850 DESCVEC: ARRAY [0..7] OF PDS);
|
|
44900 IELS:
|
|
44950 (OSCOPEE: DEPTHRANGE;
|
|
45000 DBLOCKE: DPOINT; (*1*)
|
|
45050 D0: ELSRANGE; (*2*)
|
|
45075 IHEADE: OBJECTP; (*3*)
|
|
45100 FILLE: CCOUNTRANGE; (*4*)
|
|
45150 CCOUNT: CCOUNTRANGE ) ;
|
|
45250 ROUTINE:
|
|
45300 (OSCOPER: DEPTHRANGE;
|
|
45350 PROCBL: PROCPOINT; (*1*)
|
|
45400 ENVCHAIN: IPOINT); (*2*)
|
|
45450 PASCROUT:
|
|
45500 (OSCOPEP: DEPTHRANGE;
|
|
45600 PPARAMS: SIZERANGE; (*1*)
|
|
45625 PPROCBL: ASPROC ) ; (*2*)
|
|
45650 REF1:
|
|
45700 (OSCOPERF1: DEPTHRANGE;
|
|
45710 PVALUEF1: OBJECTP; (*1*)
|
|
45720 ANCSTRF1: OBJECTP; (*2*)
|
|
45730 OFFSETF1: ELSRANGE; (*3*)
|
|
45750 VALUE: A68INT); (*4*)
|
|
45800 REF2:
|
|
45850 (SCOPERF2: DEPTHRANGE;
|
|
45866 PVALUEF2: OBJECTP; (*1*)
|
|
45882 ANCSTRF2: OBJECTP; (*2*)
|
|
45890 OFFSETF2: ELSRANGE; (*3*)
|
|
45900 LONGVALUE: A68LONG); (*4*)
|
|
45950 REFN:
|
|
46000 (OSCOPEFN: DEPTHRANGE;
|
|
46050 PVALUE: OBJECTP; (*1*)
|
|
46060 ANCSTRFN: OBJECTP; (*2*)
|
|
46070 OFFSETN: ELSRANGE ) ; (*3*)
|
|
46100 CREF:
|
|
46150 (SCOPEC: DEPTHRANGE;
|
|
46200 PVALUEC : DPOINT ; (*1*)
|
|
46210 ANCSTRC: OBJECTP; (*2*)
|
|
46250 IPTR: UNDRESSP); (*3*)
|
|
46300 REFR:
|
|
46350 (OSCOPERR: DEPTHRANGE;
|
|
46400 PVALUER: OBJECTP; (*1*)
|
|
46410 ANCESTOR: OBJECTP; (*2*)
|
|
46420 FILLRR: INTEGER; (*3*)
|
|
46450 ROWSRR: 0..7 ; (*4*)
|
|
46500 SIZERR: SIZERANGE ;
|
|
46550 CCOUNTR: CCOUNTRANGE ;
|
|
46600 FILLRR2: OBJECTP ; (*5*)
|
|
46700 FILLRR1: OBJECTP ; (*6*)
|
|
46710 LBADJRR: BOUNDSRANGE; (*7*)
|
|
46720 MDBLOCKRR: DPOINT; (*8*)
|
|
46730 DESCVECRR: ARRAY[0..7] OF PDS ) ;
|
|
46750 REFSL1:
|
|
46800 (OSCOPEL: DEPTHRANGE;
|
|
46850 DBLOCKL: DPOINT; (*1*)
|
|
46875 ANCSTRL: OBJECTP; (*2*)
|
|
46885 OFFSET: ELSRANGE; (*3*)
|
|
46900 FILLL: 0..7 ; (*4*)
|
|
46950 FILLL1: SIZERANGE ;
|
|
47000 CCOUNTL: CCOUNTRANGE);
|
|
47200 REFSLN:
|
|
47250 (OSCOPEN: DEPTHRANGE;
|
|
47300 FILLN: OBJECTP; (*1*)
|
|
47325 ANCSTRN: OBJECTP; (*2*)
|
|
47340 FILLN1: INTEGER; (*3*)
|
|
47350 ROWSN: 0..7 ; (*4*)
|
|
47400 SIZEN: SIZERANGE ;
|
|
47450 CCOUNTN: CCOUNTRANGE ;
|
|
47650 FILLN2: OBJECTP; (*5*)
|
|
47700 FILLN3: OBJECTP; (*6*)
|
|
47750 LBADJN: BOUNDSRANGE; (*7*)
|
|
47800 MDBLOCKN: DPOINT; (*8*)
|
|
47850 DESCVECN: ARRAY [0..7] OF PDS);
|
|
48200 RECR:
|
|
48250 (OSCOPECR: DEPTHRANGE;
|
|
48300 PVALUECR: OBJECTP; (*1*)
|
|
48325 ANCSTRCR: OBJECTP; (*2*)
|
|
48340 FILLCR0: INTEGER; (*3*)
|
|
48350 ROWSCR: 0..7 ; (*4*)
|
|
48400 SIZECR: SIZERANGE ;
|
|
48450 CCOUNTCR: CCOUNTRANGE ;
|
|
48650 PREV: OBJECTP; (*5*)
|
|
48700 NEXT: OBJECTP; (*6*)
|
|
48712 LBADJCR: BOUNDSRANGE; (*7*)
|
|
48724 MDBLOCKCR: DPOINT; (*8*)
|
|
48736 DESCVECCR: ARRAY [0..7] OF PDS);
|
|
48750 RECN:
|
|
48800 (OSCOPECN: DEPTHRANGE;
|
|
48850 PVALUECN :OBJECTP; (*1*)
|
|
48860 ANCSTRCN: OBJECTP; (*2*)
|
|
48950 OFFSETCN: ELSRANGE; (*3*)
|
|
49000 FILLCN2: INTEGER; (*4*)
|
|
49100 PREVCN: OBJECTP; (*5*)
|
|
49150 NEXTCN: OBJECTP); (*6*)
|
|
49200 STRING:
|
|
49250 (FILLSTG: DEPTHRANGE;
|
|
49275 FILLSTG1: ARRAY [1..3] OF INTEGER; (*1*)
|
|
49325 FILLSTG2: CCOUNTRANGE; (*4*)
|
|
49350 STRLENGTH: CCOUNTRANGE;
|
|
49400 CHARVEC: VECCHARS); (*5*)
|
|
49450 UNDEF, NILL:
|
|
49500 (OSCOPEUN: DEPTHRANGE;
|
|
49550 PVALUEUN: OBJECTP;
|
|
49560 ANCSTRUN: OBJECTP;
|
|
49570 OFFSETUN: ELSRANGE;
|
|
49580 ROWSUN: 0..7;
|
|
49600 STRLNGUN: CCOUNTRANGE;
|
|
49650 FILLUN: ARRAY [1..4] OF INTEGER;
|
|
49700 DESCVECUN: ARRAY [0..7] OF PDS);
|
|
49750 AFILE: (*ACTUALLY, AFILES WILL BE STORED AS STRUCTS, BUT THESE FIELD SELECTORS SHOULD WORK*)
|
|
49800 (SCOPEF: DEPTHRANGE;
|
|
49850 DBLOCKF: DPOINT;
|
|
49900 FILLAF: 0..7 ;
|
|
49950 FILLAF1: SIZERANGE ;
|
|
50000 LENGTHF: CCOUNTRANGE ;
|
|
50050 LOGICALFILEMENDED: OBJECTP;
|
|
50100 PHYSICALFILEMENDED: OBJECTP;
|
|
50150 PAGEMENDED: OBJECTP;
|
|
50200 LINEMENDED: OBJECTP;
|
|
50250 PCOVER: OBJECTP;
|
|
50300 TERM: TERMSET);
|
|
50350 COVER:
|
|
50400 (SCOPEV: DEPTHRANGE;
|
|
50450 CHANNEL: CHAN;
|
|
50500 STATUS: STATUSSET;
|
|
50550 POSSIBLES: POSSSET;
|
|
50600 COFCPOS, LOFCPOS, POFCPOS: INTEGER;
|
|
50650 CHARBOUND, LINEBOUND, PAGEBOUND: INTEGER;
|
|
50700 DOPUTS,DOGETS,DONEWLINE,DONEWPAGE,DOSET,DORESET: ASPROC;
|
|
50750 CASE ASSOC: BOOLEAN OF
|
|
50800 FALSE: (FILLC: SIZERANGE;
|
|
50850 BOOK:FETROOMP);
|
|
50900 TRUE: (OFFSETDI:SIZERANGE;
|
|
50950 ASSREF:OBJECTP;
|
|
51000 CPOSELS:ELSRANGE) );
|
|
51050 );
|
|
51100 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 : () ;
|
|
51150 END;
|
|
51200 ()+13*)
|
|
51250 (**)
|
|
51300 (**)
|
|
51350 (**)
|
|
51400 (**)
|
|
51450 (**)
|
|
51500 (**)
|
|
51550 (**)
|
|
51600 (**)
|
|
51650 (**)
|
|
51700 (**)
|
|
51750 (**)
|
|
51800 (**)
|
|
51850 (**)
|
|
51900 (**)
|
|
51950 (**)
|
|
52000 (**)
|
|
52050 (**)
|
|
52100 (**)
|
|
52150 (**)
|
|
52200 (**)
|
|
52250 (**)
|
|
52300 (**)
|
|
52350 (**)
|
|
52400 (**)
|
|
52450 (**)
|
|
52500 (**)
|
|
52550 (**)
|
|
52600 (**)
|
|
52650 (**)
|
|
52700 (**)
|
|
52750 (**)
|
|
52800 (**)
|
|
52850 (**)
|
|
52900 (**)
|
|
52950 (**)
|
|
53000 (*********************)
|
|
53050 (* INVOCATION BLOCKS *)
|
|
53100 (*********************)
|
|
53150 (**)
|
|
53200 (*+11() ADDRESS = 0..777777B; ()+11*)
|
|
53250 (*+12() ADDRESS = (*-19()INTEGER;()-19*) (*+19()LONG;()+19*) ()+12*)
|
|
53300 (*+13() ADDRESS = INTEGER ; ()+13*)
|
|
53350 CONVBLE = (POINT, INT);
|
|
53400 SIMPILE =
|
|
53450 RECORD CASE CONVBLE OF
|
|
53500 INT: (SIM: IPOINT);
|
|
53550 POINT: (PIL: OBJECTP)
|
|
53600 END;
|
|
53650 (**)
|
|
53700 (**)
|
|
53750 BITMAP = PACKED RECORD
|
|
53800 (*+11()
|
|
53850 FILL: 0..77777777777777B;
|
|
53900 MASK: -17777B..+17777B;
|
|
53950 ()+11*)
|
|
54000 (*+12() (*+03()
|
|
54050 MASK: -3777B..+3777B; (*DIFFICULTIES ON NORD*)
|
|
54055 ()+03*)
|
|
54060 (*+02()
|
|
54070 MASK: INTEGER;
|
|
54075 COUNT: INTEGER;
|
|
54080 ()+02*)
|
|
54100 ()+12*)
|
|
54150 (*+13() (*+02()
|
|
54200 MASK: -32768..+32767 ;
|
|
54210 COUNT: -32768..32767;
|
|
54250 ()+02*)
|
|
54300 (*-02() COUNT: 0..15 ;
|
|
54301 ()-02*) ()+13*)
|
|
54350 END;
|
|
54400 PIDBLK = ^IDBLK;
|
|
54450 IDBLK=PACKED RECORD
|
|
54451 CASE SEVERAL OF
|
|
54500 1: (ALF: (*+01() ALFA; ()+01*) (*-01() PACKED ARRAY [1..10] OF CHAR; ()-01*) );
|
|
54550 2: (A,B,C,D,E,F,G,H,I,J:BYTE;
|
|
54551 IDSIZE: BYTE;
|
|
54600 XMODE: BYTE);
|
|
54601 3,4,5,6,7,8,9,10: ();
|
|
54650 END;
|
|
54700 PRANGE = ^RANGEBLOCK;
|
|
54750 RANGEBLOCK =
|
|
54800 RECORD
|
|
54850 FIRSTW: PACKED RECORD
|
|
54860 (*+11() FILL: 0..177B;
|
|
54870 LOOPCOUNT: 0..377777B;
|
|
54880 FILL1: 0..1;
|
|
54890 ()+11*)
|
|
55000 (*-11() LOOPCOUNT: INTEGER; ()-11*)
|
|
55050 RGIDBLK: PIDBLK;
|
|
55100 (*+11() FILL2: 0..1; ()+11*)
|
|
55150 RECGEN: OBJECTP
|
|
55200 END;
|
|
55250 RGSCOPE: DEPTHRANGE;
|
|
55300 RIBOFFSET: PRANGE;
|
|
55350 (*-41() RGNEXTFREE: INTPOINT ; ()-41*)
|
|
55400 (*+41() RGLASTUSED: INTPOINT ; ()+41*)
|
|
55450 END;
|
|
55500 INVBLOCK = (*THIS RECORD IS FOR INFORMATION ONLY. IT IS NOT USED BY THE RUN-TIME SYSTEM*)
|
|
55550 RECORD
|
|
55600 (*+01()
|
|
55650 PASCAL: PACKED RECORD
|
|
55700 STATICCHAIN: IPOINT;
|
|
55750 A68BIT: BOOLEAN;PUTBIT: BOOLEAN;GETBIT: BOOLEAN; FILL2: 0..17777777B; DYN: ^INVBLOCK; RETURN: ADDRESS
|
|
55800 END;
|
|
55850 ()+01*)
|
|
55900 (*+03()
|
|
55950 PASCAL: PACKED RECORD
|
|
56000 WORD1,WORD2,WORD3: INTEGER;
|
|
56050 OLDB,OLDPC,OLDEP: INTEGER;
|
|
56100 STATICCHAIN, DYN: IPOINT;
|
|
56150 OLDLNR: INTEGER;
|
|
56200 (* WE NEED A68BIT AT LEAST - HOPEFULLY PUTBIT AND GETBIT ALSO ----------*)
|
|
56250 END;
|
|
56300 ()+03*)
|
|
56350 SPARE: INTEGER;
|
|
56400 SCOPE: DEPTHRANGE;
|
|
56450 NPARAMS: INTEGER;
|
|
56500 BITPATTERN: BITMAP;
|
|
56550 TRACE: OBJECTP;
|
|
56600 LEVEL: INTEGER;
|
|
56650 PROCBL: PROCPOINT;
|
|
56700 LINENO: INTEGER;
|
|
56750 FIRSTRG: RANGEBLOCK;
|
|
56800 END;
|
|
56850 (**)
|
|
56900 (*********************)
|
|
56950 (* OTHER BLOCKS *)
|
|
57000 (*********************)
|
|
57050 (**)
|
|
57100 PROCBLOCK =
|
|
57150 RECORD
|
|
57200 XBASE: ADDRESS;
|
|
57250 LEVEL: INTEGER;
|
|
57300 SCOFFSET: INTEGER;
|
|
57350 SCOPELEVEL: INTEGER;
|
|
57400 IBSIZE: INTEGER;
|
|
57450 PARAMS:INTEGER;
|
|
57500 ROUTNAME: IDBLK;
|
|
57550 IDBLOCK: PIDBLK;
|
|
57600 END;
|
|
57650 (* *)
|
|
57700 DEEBLOCK =
|
|
57750 ARRAY[0..999] OF INTEGER;
|
|
57800 (**)
|
|
57850 PDESC=
|
|
57900 RECORD
|
|
57950 PSIZE: OFFSETRANGE;
|
|
58000 ACCOFFS: BOUNDSRANGE;
|
|
58050 PROWS: 0..7;
|
|
58100 PDESCVEC: ARRAY [0..7] OF RECORD
|
|
58150 PP, PD, PL, PND: INTEGER;
|
|
58200 END
|
|
58250 END;
|
|
58300 (**)
|
|
58350 NAKED =
|
|
58400 PACKED RECORD
|
|
58450 (*+11() BIT0: BOOLEAN; (*THIS BIT MUST ALWAYS BE ZERO, FOR BENEFIT OF COMPILED CODE*) ()+11*)
|
|
58500 STOWEDVAL: OBJECTP;
|
|
58550 (*+11() FILL: 0..177777777B; ()+11*)
|
|
58600 CASE SEVERAL OF
|
|
58650 0: (POSITION: ELSRANGE);
|
|
58700 1: (POINTER: UNDRESSP); (*SPECIAL FORM, AS USED IN DISPLAYS*)
|
|
58750 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 : () ;
|
|
58800 END;
|
|
58850 (*+01() ASNAKED = INTEGER; ()+01*) (*OR WHATEVER SCALAR TYPE CAN ENCOMPASS A NAKED*)
|
|
58900 (*-01() ASNAKED = REAL; (*MOST MACHINES REQUIRE TWO WORDS FOR THIS*) ()-01*)
|
|
58950 NAKEGER =
|
|
59000 RECORD CASE CONVBLE OF
|
|
59050 INT: (ASNAK: ASNAKED);
|
|
59100 POINT: (NAK: NAKED);
|
|
59150 END;
|
|
59152 (**)
|
|
59160 PPROC = (*REPRESENTATION OF PASCAL PROCEDURE/FUNCTION VALUE*)
|
|
59162 PACKED RECORD
|
|
59163 (*+01() FILLER:0..77777777B; ()+01*)
|
|
59164 (*-02() ENV: ADDRESS;
|
|
59165 PROCADD: ADDRESS; ()-02*)
|
|
59166 (*+02() PROCADD: ADDRESS;
|
|
59167 ENV: ADDRESS; ()+02*)
|
|
59168 END;
|
|
59170 (**)
|
|
59200 REALTEGER =
|
|
59250 RECORD CASE SEVERAL OF
|
|
59300 0: (INT: INTEGER (*-01(); INT2: INTEGER ()-01*));
|
|
59350 (*-01() 1: (LONG: A68LONG); ()-01*)
|
|
59400 2: (REA: REAL);
|
|
59450 3: (ALF: PACKED ARRAY [ 1..BYTESWIDTH ] OF CHAR);
|
|
59500 4: (CH: CHAR);
|
|
59550 5: (PTR: OBJECTP);
|
|
59600 6: (PROCC: ASPROC);
|
|
59610 7: (PROCVAL: PPROC);
|
|
59650 8 , 9 , 10 : () ;
|
|
59700 END;
|
|
59750 (*+01()
|
|
59800 MESS = PACKED ARRAY [1..50] OF CHAR; (*FOR PASCPMD*)
|
|
59850 W66 = PACKED RECORD
|
|
59900 FILL1: 0..77777777B; JOPR: 0..7777B; FILL2: 0..77777777B;
|
|
59950 END;
|
|
60000 ()+01*)
|
|
60040 (**)
|
|
60050 BYLPP = ^BYLP;
|
|
60051 NOBYLPP = ^NOBYLP;
|
|
60052 BYLP = RECORD
|
|
60054 (*-41()
|
|
60056 LOOPTYP: INTEGER;
|
|
60058 BYPART: A68INT;
|
|
60060 FROMPART: A68INT;
|
|
60062 TOPART: A68INT;
|
|
60064 ()-41*)
|
|
60066 (*+41()
|
|
60068 TOPART: A68INT;
|
|
60070 FROMPART: A68INT;
|
|
60072 BYPART: A68INT;
|
|
60074 LOOPTYP: INTEGER;
|
|
60076 ()+41*)
|
|
60078 END;
|
|
60080 NOBYLP = RECORD
|
|
60082 (*-41()
|
|
60084 LOOPTYP: INTEGER;
|
|
60086 FROMPART: A68INT;
|
|
60088 TOPART: A68INT;
|
|
60090 ()-41*)
|
|
60092 (*+41()
|
|
60094 TOPART: A68INT;
|
|
60096 FROMPART: A68INT;
|
|
60097 LOOPTYP: INTEGER;
|
|
60098 ()+41*)
|
|
60099 END;
|
|
60100 (**)
|
|
60150 VAR (* VAR VAR VAR VAR VAR VAR VAR VAR VAR *)
|
|
60200 (**)
|
|
60250 UNINT: INTEGER;
|
|
60300 UNDEFIN: OBJECTP;
|
|
60350 PASCPARAMS: SIZERANGE ;
|
|
60400 PASCPROC: ASPROC;
|
|
60450 (*-02() (*THE ABOVE VARIABLES MUST BE DECLARED FIRST BECAUSE THE COMPILED CODE
|
|
60500 AND/OR MACHINE CODE ROUTINES KNOW ABOUT THEM*) ()-02*)
|
|
60550 PASCADDR: PROCPOINT; (*A68-STYLE PROCBLOCK REPRESENTING PASCAL ROUTINE*)
|
|
60600 ALLCHAR (*+01() , ALLCHAR1 ()+01*): TERMSET;
|
|
60650 HALFPI: ACCURATEPI;
|
|
60700 COMPLEX: DPOINT; (*FOR WIDENING TO .COMPL*)
|
|
60750 FILEBLOCK: DPOINT;
|
|
60800 (*-01()
|
|
60850 SOURDESC, SLICDESC: OBJECTP; (*GLOBAL VARIABLES FOR SLICING*)
|
|
60900 SOURDEX, SLICDEX: 0..7; (*DITTO*)
|
|
60950 ADJACC: BOUNDSRANGE; (*DITTO*)
|
|
61000 REVISEDLB: BOUNDSRANGE; (*DITTO*)
|
|
61050 SLICEPDS: PDS; (*DITTO*)
|
|
61150 ()-01*)
|
|
61200 PUTSTRING, HIGHPCOUNT: OBJECTP;
|
|
61250 SPARE2, NILPTR: OBJECTP;
|
|
61300 BITP: BITMAP;
|
|
61350 (*-54() SPARE1: IPOINT; ()-54*)
|
|
61400 (*+54() EXCEPTDB: DPOINT; ()+54*)
|
|
61410 (*+02() INTUNDEF: INTEGER; ()+02*)
|
|
61450 CPUCLOCK: INTEGER;
|
|
61500 (*THIS IS MERELY TO MAP OUT ENOUGH SPACE BEFORE THE NEXT VARIABLES, WHICH ARE ALSO KNOWN TO THE A68 PROGRAM*)
|
|
61550 FIRSTIB: INVBLOCK; (*FIRSTIBOFFSET MUST ACCESS THIS VARIABLE*)
|
|
61600 (*+01()
|
|
61650 LASTRANDOM: INTEGER; (*START OF STANDARD-PRELUDE*)
|
|
61700 STIN: OBJECTP;
|
|
61750 STOUT: OBJECTP;
|
|
61800 STBACK: OBJECTP;
|
|
61850 ()+01*)
|
|
61900 (**)
|
|
61905 (*+02()
|
|
61910 FUNCTION TIMESTE (T:REAL; E:INTEGER) :REAL; EXTERN;
|
|
61945 ()+02*)
|
|
61950 (**)
|
|
62000 (*+01() (*$E+*) ()+01*)
|
|
62050 (**)
|
|
62100 (**)
|
|
62150 (*+01() (*$X4*) ()+01*)
|
|
62200 (**)
|
|
62400 (*+01() PROCEDURE A68 ; ()+01*)
|
|
62450 (*+05()
|
|
62500 PROCEDURE A68( BITPATTERN: BITMAP ; LOCRG: DEPTHRANGE; PROCBL: PROCPOINT; STATICP: IPOINT);
|
|
62550 ()+05*)
|
|
62560 (*+02()
|
|
62570 PROCEDURE A68(UNINTCOPY: INTEGER; UNDEFINCOPY: OBJECTP; BITPATTERN: BITMAP;
|
|
62575 LOCRG: DEPTHRANGE; PROCBL: PROCPOINT; STATICP: IPOINT);
|
|
62580 ()+02*)
|
|
62600 (*THIS REPRESENTS THE A68 PROCEDURE (OR MAIN PROGRAM) FROM WHICH RUN-TIME ROUTINES (OCODES)
|
|
62650 GET CALLED. ALL RUN-TIME ROUTINES ARE DECLARED WITHIN A68, AND THE COMPILER ARRANGES THAT
|
|
62700 THEIR STATIC LINKS WILL ALWAYS POINT TO THE CALLING A68 ROUTINE. THUS THE VARIABLES ABOUT
|
|
62750 TO BE DECLARED ARE ALL ACCESSIBLE, AND WILL ACTUALLY BE PART OF THE INVOCATION BLOCK OF
|
|
62800 THE CALLING A68 PROCEDURE.
|
|
62850 *)
|
|
62900 (*+01()
|
|
62950 VAR SCOPE: DEPTHRANGE;
|
|
63000 SPARE: INTEGER;
|
|
63050 BITPATTERN: BITMAP;
|
|
63100 TRACE: OBJECTP;
|
|
63150 LEVEL: INTEGER;
|
|
63200 PROCBL: PROCPOINT;
|
|
63250 LINENO: INTEGER;
|
|
63300 FIRSTRG: RANGEBLOCK;
|
|
63350 ()+01*)
|
|
63400 (*+05()
|
|
63450 VAR
|
|
63500 SCOPE: INTEGER ;
|
|
63550 TRACE: OBJECTP ;
|
|
63600 LEVEL: INTEGER ;
|
|
63650 LINENO: INTEGER ;
|
|
63700 FIRSTRG: RANGEBLOCK ;
|
|
63750 (*THIS IS MERELY TO MAP OUT ENOUGH SPACE BEFORE THE NEXT VARIABLES, WHICH ARE ALSO KNOWN TO THE A68 PROGRAM*)
|
|
63800 LASTRANDOM: INTEGER; (*START OF STANDARD-PRELUDE*)
|
|
63850 STIN: OBJECTP;
|
|
63900 STOUT: OBJECTP;
|
|
63950 STBACK: OBJECTP;
|
|
64000 ()+05*)
|
|
64002 (*+02()
|
|
64004 VAR
|
|
64006 SCOPE: INTEGER ;
|
|
64008 TRACE: OBJECTP ;
|
|
64010 LEVEL: INTEGER ;
|
|
64012 LINENO: INTEGER ;
|
|
64014 FIRSTRG: RANGEBLOCK ;
|
|
64016 (*THIS IS MERELY TO MAP OUT ENOUGH SPACE BEFORE THE NEXT VARIABLES, WHICH ARE ALSO KNOWN TO THE A68 PROGRAM*)
|
|
64018 LASTRANDOM: INTEGER; (*START OF STANDARD-PRELUDE*)
|
|
64020 STIN: OBJECTP;
|
|
64021 STOUT: OBJECTP;
|
|
64022 STBACK: OBJECTP;
|
|
64024 MAXREAL: REAL
|
|
64025 SMALLREAL: REAL;
|
|
64026 PI: REAL;
|
|
64026 ()+02*)
|
|
64050 (**)
|
|
64100 (*ALL THE PROCEDURES AND FUNCTIONS WHICH FOLLOW ARE WITHIN A68*)
|
|
64150 (**)
|
|
64200 (**)
|
|
64300 FUNCTION ME: IPOINT; EXTERN; (*STACK FRAME POINTER OF CALLER*)
|
|
64350 FUNCTION STATIC(IB: IPOINT): IPOINT; EXTERN; (*FOLLOW STATIC CHAIN*)
|
|
64400 (*+05() FUNCTION A68STATIC(IB: IPOINT): IPOINT; EXTERN; (*FOLLOW ALGOL 68S STATIC CHAIN*) ()+05*)
|
|
64450 FUNCTION DYNAMIC(IB: IPOINT): IPOINT; EXTERN; (*FOLLOW DYNAMIC CHAIN*)
|
|
64452 (*+02() FUNCTION ARGBASE(IB: IPOINT): IPOINT; EXTERN; ()+02*)
|
|
64500 FUNCTION ISA68(IB: IPOINT): BOOLEAN; EXTERN; (*IB IS FRAME FOR A68 PROC*)
|
|
64550 FUNCTION ISPUT(IB: IPOINT): BOOLEAN; EXTERN; (*IB IS FRAME FOR CALL OF PUTT*)
|
|
64600 FUNCTION ISGET(IB: IPOINT): BOOLEAN; EXTERN; (*IB IS FRAME FOR CALL OF GETT*)
|
|
64650 PROCEDURE SETMYSTATIC(IB: IPOINT); EXTERN; (*SETS STATIC CHAIN OF CALLER*)
|