1136 lines
62 KiB
OpenEdge ABL
1136 lines
62 KiB
OpenEdge ABL
|
60000 (* COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER *)
|
||
|
60010 (**)
|
||
|
60020 (**)
|
||
|
60030 (*$T-*)
|
||
|
60040 (*+23()
|
||
|
60050 PROCEDURE OCODE(OPCOD:POP;ROUTINE:ALFA);
|
||
|
60060 BEGIN
|
||
|
60070 CODETABLE[OPCOD].ROUTINE:=ROUTINE;
|
||
|
60080 END;
|
||
|
60090 PROCEDURE INITCODES;
|
||
|
60100 VAR I: INTEGER;
|
||
|
60110 BEGIN
|
||
|
60120 FOR I := PNONE TO PLAST DO
|
||
|
60130 BEGIN CODETABLE[I].ROUTINE := ' '; CODETABLE[I].PR := SBTSTK END;
|
||
|
60140 OCODE (PNONE , 'PNONE ');
|
||
|
60150 OCODE (PIM , 'PIM ');
|
||
|
60160 OCODE (PRE , 'PRE ');
|
||
|
60170 OCODE (PBIN , 'PBIN ');
|
||
|
60180 OCODE (PREPR , 'PREPR ');
|
||
|
60190 OCODE (PSGNI , 'PSGNI ');
|
||
|
60200 OCODE (PSHRTC , 'PSHRTC ');
|
||
|
60210 OCODE (PSHRTR , 'PSHRTR ');
|
||
|
60220 OCODE (PSHRTI , 'PSHRTI ');
|
||
|
60230 OCODE (PLENGC , 'PLENGC ');
|
||
|
60240 OCODE (PLENGR , 'PLENGR ');
|
||
|
60250 OCODE (PLENGI , 'PLENGI ');
|
||
|
60260 OCODE (PODD , 'PODD ');
|
||
|
60270 OCODE (PROUNL , 'PROUNL ');
|
||
|
60280 OCODE (PROUN , 'PROUN ');
|
||
|
60290 OCODE (PENTIL , 'PENTIL ');
|
||
|
60300 OCODE (PENTI , 'PENTI ');
|
||
|
60310 OCODE (PCONJ , 'PCONJ ');
|
||
|
60320 OCODE (PARGL , 'PARGL ');
|
||
|
60330 OCODE (PARG , 'PARG ');
|
||
|
60340 OCODE (PNOTB , 'PNOTB ');
|
||
|
60350 OCODE (PABSCH , 'PABSCH ');
|
||
|
60360 OCODE (PABSB , 'PABSB ');
|
||
|
60370 OCODE (PABSC , 'PABSC ');
|
||
|
60380 OCODE (PABSI , 'PABSI ');
|
||
|
60390 OCODE (PNEGI , 'PNEGI ');
|
||
|
60400 OCODE (PPLITM , 'PPLITM ');
|
||
|
60410 OCODE (PMULIC , 'PMULIC ');
|
||
|
60420 OCODE (PMULCI , 'PMULCI ');
|
||
|
60430 OCODE (PELMBY , 'PELMBY ');
|
||
|
60440 OCODE (PELMBT , 'PELMBT ');
|
||
|
60450 OCODE (PSHR , 'PSHR ');
|
||
|
60460 OCODE (PSHL , 'PSHL ');
|
||
|
60470 OCODE (PLWBMSTR , 'PLWBMSTR ');
|
||
|
60480 OCODE (PLWBM , 'PLWBM ');
|
||
|
60490 OCODE (PLWB , 'PLWB ');
|
||
|
60500 OCODE (PUPBMSTR , 'PUPBMSTR ');
|
||
|
60510 OCODE (PUPBM , 'PUPBM ');
|
||
|
60520 OCODE (PUPB , 'PUPB ');
|
||
|
60530 OCODE (PORB , 'PORB ');
|
||
|
60540 OCODE (PANDB , 'PANDB ');
|
||
|
60550 OCODE (PMODAB , 'PMODAB ');
|
||
|
60560 OCODE (POVERAB , 'POVERAB ');
|
||
|
60570 OCODE (PDIVAB , 'PDIVAB ');
|
||
|
60580 OCODE (PTIMSABS , 'PTIMSABS ');
|
||
|
60590 OCODE (PTIMSAB , 'PTIMSAB ');
|
||
|
60600 OCODE (PMINUSAB , 'PMINUSAB ');
|
||
|
60610 OCODE (PPLSTOCS , 'PPLSTOCS ');
|
||
|
60620 OCODE (PPLSABCH , 'PPLSABCH ');
|
||
|
60630 OCODE (PPLSABS , 'PPLSABS ');
|
||
|
60640 OCODE (PPLSAB , 'PPLSAB ');
|
||
|
60650 OCODE (PCAT , 'PCAT ');
|
||
|
60660 OCODE (PGEBT , 'PGEBT ');
|
||
|
60670 OCODE (PGECS , 'PGECS ');
|
||
|
60680 OCODE (PGE , 'PGE ');
|
||
|
60690 OCODE (PGTBY , 'PGTBY ');
|
||
|
60700 OCODE (PGTCS , 'PGTCS ');
|
||
|
60710 OCODE (PGT , 'PGT ');
|
||
|
60720 OCODE (PLEBT , 'PLABT ');
|
||
|
60730 OCODE (PLECS , 'PLECS ');
|
||
|
60740 OCODE (PLE , 'PLE ');
|
||
|
60750 OCODE (PLTBY , 'PLTBY ');
|
||
|
60760 OCODE (PLTCS , 'PLTCS ');
|
||
|
60770 OCODE (PLT , 'PLT ');
|
||
|
60780 OCODE (PNEB , 'PNEB ');
|
||
|
60790 OCODE (PNECS , 'PNECS ');
|
||
|
60800 OCODE (PNE , 'PNE ');
|
||
|
60810 OCODE (PEQB , 'PEQB ');
|
||
|
60820 OCODE (PEQCS , 'PEQCS ');
|
||
|
60830 OCODE (PEQ , 'PEQ ');
|
||
|
60840 OCODE (PEXP , 'PEXP ');
|
||
|
60850 OCODE (PMOD , 'PMOD ');
|
||
|
60860 OCODE (POVER , 'POVER ');
|
||
|
60870 OCODE (PDIV , 'PDIV ');
|
||
|
60880 OCODE (PMUL , 'PMUL ');
|
||
|
60890 OCODE (PSUB , 'PSUB ');
|
||
|
60900 OCODE (PADD , 'PADD ');
|
||
|
60910 OCODE (PNOOP , 'PNOOP ');
|
||
|
60920 OCODE (PASP , 'PASP ');
|
||
|
60930 OCODE (PHOIST , 'PHOIST ');
|
||
|
60940 OCODE (PSELECT , 'PSELECT ');
|
||
|
60950 OCODE (PSELECTROW, 'PSELECTROW');
|
||
|
60960 OCODE (PSTRNGSLICE , 'PSTRNGSLIC');
|
||
|
60970 OCODE (PSTARTSLICE , 'PSTARTSLIC');
|
||
|
60980 OCODE (PSLICE1 , 'PSLICE1 ');
|
||
|
60990 OCODE (PSLICE2 , 'PSLICE2 ');
|
||
|
61000 OCODE (PSLICEN , 'PSLICEN ');
|
||
|
61010 OCODE (PCASE , 'PCASE ');
|
||
|
61020 OCODE (PJMPF , 'PJMPF ');
|
||
|
61030 OCODE (PLPINIT , 'PLPINIT ');
|
||
|
61040 OCODE (PRANGENT , 'PRANGENT ');
|
||
|
61050 OCODE (PRANGEXT , 'PRANGEXT ');
|
||
|
61060 OCODE (PROUTNENT , 'PROUTNENT ');
|
||
|
61070 OCODE (PACTDRMULT, 'PACTDRMULT');
|
||
|
61080 OCODE (PACTDRSTRUCT, 'PACTDRSTRU');
|
||
|
61090 OCODE (PVARLISTEND , 'PVARLISTEN');
|
||
|
61100 OCODE (PDCLINIT , 'PDCLINIT ');
|
||
|
61110 OCODE (PCREATEREF, 'PCREATEREF');
|
||
|
61120 OCODE (PCHECKDESC, 'PCHECKDESC');
|
||
|
61130 OCODE (PDCLSP , 'PDCLSP ');
|
||
|
61140 OCODE (PDECM , 'PDECM ');
|
||
|
61150 OCODE (PBOUNDS , 'PBOUNDS ');
|
||
|
61160 OCODE (PLOADRT , 'PLOADRT ');
|
||
|
61170 OCODE (PLOADRTP , 'PLOADRTP ');
|
||
|
61180 OCODE (PSCOPETT , 'PSCOPETT ');
|
||
|
61190 OCODE (PASSIGTT , 'PASSIGTT ');
|
||
|
61200 OCODE (PSCOPETN , 'PSCOPETN ');
|
||
|
61210 OCODE (PASSIGTN , 'PASSIGTN ');
|
||
|
61220 OCODE (PSCOPENT , 'PSCOPENT ');
|
||
|
61230 OCODE (PASSIGNT , 'PASSIGNT ');
|
||
|
61240 OCODE (PSCOPENN , 'PSCOPENN ');
|
||
|
61250 OCODE (PASSIGNN , 'PASSIGNN ');
|
||
|
61260 OCODE (PSCOPEVAR , 'PSCOPEVAR ');
|
||
|
61270 OCODE (PSCOPEEXT , 'PSCOPEEXT ');
|
||
|
61280 OCODE (PLOADVAR , 'PLOADVAR ');
|
||
|
61290 OCODE (PASGVART , 'PASGVART ');
|
||
|
61300 OCODE (PGETPROC , 'PGETPROC ');
|
||
|
61310 OCODE (PIDTYREL , 'PIDTYREL ');
|
||
|
61320 OCODE (PDEREF , 'PDEREF ');
|
||
|
61330 OCODE (PGETTOTAL , 'PGETTOTAL ');
|
||
|
61332 OCODE (PGETMULT , 'PGETMULT ');
|
||
|
61340 OCODE (PGETTOTCMN, 'PGETTOTCMN');
|
||
|
61350 OCODE (PVOIDNAKED, 'PVOIDNAKED');
|
||
|
61360 OCODE (PSKIP , 'PSKIP ');
|
||
|
61370 OCODE (PSKIPSTRUCT , 'PSKIPSTRUC');
|
||
|
61380 OCODE (PNIL , 'PNIL ');
|
||
|
61390 OCODE (PVOIDNORMAL , 'PVOIDNORMA');
|
||
|
61400 OCODE (PVOIDSPECIAL, 'PVOIDSPECI');
|
||
|
61410 OCODE (PWIDEN , 'PWIDEN ');
|
||
|
61420 OCODE (PROWNONMULT , 'PROWNONMUL');
|
||
|
61430 OCODE (PROWMULT , 'PROWMULT ');
|
||
|
61440 OCODE (PCALL , 'PCALL ');
|
||
|
61450 OCODE (PRETURN , 'PRETURN ');
|
||
|
61460 OCODE (PPARBEGIN , 'PPARBEGIN ');
|
||
|
61470 OCODE (PLPINCR , 'PLPINCR ');
|
||
|
61480 OCODE (PLPTEST , 'PLPTEST ');
|
||
|
61490 OCODE (PGBSTK , 'PGBSTK ');
|
||
|
61500 OCODE (PLEAPGEN , 'PLEAPGEN ');
|
||
|
61510 OCODE (PSWAP , 'PSWAP ');
|
||
|
61520 OCODE (PPREPSTRDISP, 'PPREPSTRDI');
|
||
|
61530 OCODE (PPREPROWDISP, 'PPREPROWDI');
|
||
|
61540 OCODE (PCOLLTOTAL, 'PCOLLTOTAL');
|
||
|
61550 OCODE (PCOLLNAKED, 'PCOLLNAKED');
|
||
|
61560 OCODE (PCOLLCHECK, 'PCOLLCHECK');
|
||
|
61570 OCODE (PLINE , 'PLINE ');
|
||
|
61580 OCODE (PENDSLICE , 'PENDSLICE ');
|
||
|
61590 OCODE (PTRIM , 'PTRIM ');
|
||
|
61600 OCODE (PJMP , 'PJMP ');
|
||
|
61610 OCODE (PPUSH , 'PPUSH ');
|
||
|
61620 OCODE (PPUSHIM , 'PPUSHIM ');
|
||
|
61630 OCODE (PGETOUT , 'PGETOUT ');
|
||
|
61640 OCODE (PSETIB , 'PSETIB ');
|
||
|
61650 OCODE (PRNSTART , 'PRNSTART ');
|
||
|
61660 OCODE (PPARM , 'PPARM ');
|
||
|
61670 OCODE (PNAKEDPTR , 'PNAKEDPTR ');
|
||
|
61680 OCODE (PPBEGIN , 'PPBEGIN ');
|
||
|
61690 OCODE (PPEND , 'PPEND ');
|
||
|
61710 OCODE (PLAST , 'PLAST ');
|
||
|
61720 OCODE (PPASC , 'PPASC ');
|
||
|
61730 OCODE (PENVCHAIN , 'PENVCHAIN ');
|
||
|
61740 OCODE (PDUP1ST , 'PDUP1ST ');
|
||
|
61750 OCODE (PDUP2ND , 'PDUP2ND ');
|
||
|
61760 OCODE (PDATALIST , 'PDATALIST ');
|
||
|
61770 END;
|
||
|
61780 ()+23*)
|
||
|
61790 (************************************)
|
||
|
61800 (* CYBER VERSION *)
|
||
|
61810 (************************************)
|
||
|
61820 PROCEDURE INITCODES;
|
||
|
61830 (*INITIALIZES CODETABLE*)
|
||
|
61840 CONST
|
||
|
61850 (*+61() X12 = SBTX12; X45 = SBTX45; ST2 = SBTSTK2; ()+61*)
|
||
|
61860 X5 = SBTX5; X5S = SBTX5; ST = SBTSTK; O = SBTVOID;
|
||
|
61870 SN = SBTSTKN; SNS = SBTSTKN; SNP = SBTSTKN; SDL = SBTDL; XN = SBTXN;
|
||
|
61880 X5P = SBTX5; STP = SBTSTK; X0S = SBTX0; STS = SBTSTK; X6 = SBTX6;
|
||
|
61890 X0 = SBTX0; X0P = SBTX0; X1 = SBTX1; X1S = SBTX1; X1P = SBTX1;
|
||
|
61910 PPOPTOX0(*2*)=203; PPOPTOX1(*2*)=205; PPUSHX6=207;
|
||
|
61920 PLOADX5IM(*2*)=208; PX5TOX0=210; PX5TOX1=211;
|
||
|
61930 PX6TOX5=212; PX6TOX0=213; PX6TOX1=214; PX1TOX0=215; PLOADX6(*3*)=216;
|
||
|
61940 QELMBT=219; QNORM=220; QNEGI=221; QABSB=222; QABSB1=223;
|
||
|
61950 QNAKEDPTR=224; QDIV=225; QDIV1=226; QDIV2=227; QSWAP=228; QSWAP1=229; QCFSTRNG=230;
|
||
|
61960 QGEBT=231; QRANGENT=232; QWIDEN=233; QLPINIT(*4*)=234; QDCLINIT(*1*)=238;
|
||
|
61970 PPUSHX0=239; QGETPROC=240; QPARAM1A=241;
|
||
|
61980 QPBEGIN(*5*)=242;
|
||
|
61990 QLOADRTA=247; QCHECKDESC=248; QABSI=249; QABSI1=250; QLOADX6=251; QPOPTOX6=252;
|
||
|
62000 QMUL=253; QMUL1=254; QCAS=255; QVOIDNM=256; QVOIDNM1=257; QVOIDNM2=258; QVOIDNM3=259;
|
||
|
62010 QASSIGNT(*2*)=260;QCOLLTOTAL(*5*)=262;QSCOPEVAR(*3*)=267;QLOADVAR(*4*)=270;
|
||
|
62020 QLOADX0=274;QPOPX0=275;QPOPX1=276;
|
||
|
62030 QDCLSP(*4*)=277; QLOOPINCR(*6*)=281;
|
||
|
62040 QSETIB(*2*)=287; QPOP1=289; QPASC(*2*)=290;
|
||
|
62050 QPUSH(*3*)=292; QVASSTX(*4*)=295;
|
||
|
62060 QRANGEXT(*3*)=299; QLINK=302; QENTER=303; QLINE=304;
|
||
|
62070 QNOTB=305; QEQ=306; QEQ1=307; QNE=308; QNE1=309; QCALL(*5*)=310; PPOPTOX5=315; QRNSTART(*3*)=316;
|
||
|
62080 PPUSHX5=319; PLOADX6IM(*2*)=320;PPOPTOX6=322;PX5TOX6=323;
|
||
|
62090 PLOADX5(*3*)=324;
|
||
|
62100 PLOADX0(*4*)=327; PLOADX1(*3*)=331;
|
||
|
62110 QGETTOTCMN(*2*)=334; QGETTOTAL(*6*)=336; QPARM(*5*)=342; QCALLA(*4*)=347;
|
||
|
62120 QSELECT(*5*)=351; QDECM(*5*)=356; PLOADRTA(*3*)=361;
|
||
|
62124 PPUSHX1=364; PX1TOX5=365; PX1TOX6=366;
|
||
|
62130 (*+61()
|
||
|
62140 QASGVART(*5+)=367; PPUSH2(*3+)=372; QPUSH2(*6+)=375;
|
||
|
62150 PLOADX12(*3+)=381; QLOADX12=384; PLOADX45(*3+)=385; QLOADX45=388;
|
||
|
62160 PPUSHX12=389; QPUSHX12(*2+)=390; PPUSHX45=392; QPUSHX45(*2+)=393;
|
||
|
62170 PPOPTOX12=395; QPOPTOX12(*2+)=396; PPOPTOX45=398; QPOPTOX45(*2+)=399;
|
||
|
62180 PX12TOX45=401; QX12TOX45=402; PX45TOX12=400;5QX45TOX12=401; 6 3
|
||
|
62190 QLENGR=402; QMULL(*7+)=403; QADD(*10+)=410;
|
||
|
62200 ()+61*)
|
||
|
62210 VAR I: INTEGER;
|
||
|
62220 PROCEDURE ICODE(OPCOD: POP; COMPASS: ALFA; PNEXT: POP;VP1,VP2,VPR:SBTTYP);
|
||
|
62230 (*WARNING: THIS PROCEDURE WILL NOT COPE WITH ERRONEOUS COMPASS*)
|
||
|
62240 LABEL 99;
|
||
|
62250 CONST SHIFT1=100000B;
|
||
|
62260 VAR CHA: CHAR;
|
||
|
62270 II: INTEGER;
|
||
|
62280 L: PACKED RECORD
|
||
|
62290 CASE INTEGER OF
|
||
|
62300 1: (FM: PACKED ARRAY [1..2] OF CHAR;
|
||
|
62310 LJT, LKT: (B, A, X, KK, STAR);
|
||
|
62320 LI, LJ, LK: 0..7;
|
||
|
62330 LOP1, LOP2: (PLUS, MINUS, TIMES, OVER, COMMA, MISSING);
|
||
|
62340 LKP: BOOLEAN;
|
||
|
62350 LKK: -400000B..377777B);
|
||
|
62360 2: (LW: INTEGER)
|
||
|
62370 (*NOTE THAT LW:=0 SETS LI,LJ,LK TO 0, LOP1,LOP2 TO PLUS AND LJT,LKT TO B*)
|
||
|
62380 END;
|
||
|
62390 M: PACKED RECORD
|
||
|
62400 CASE INTEGER OF
|
||
|
62410 1: (F: 0..7; M: 0..7; I: 0..7; J: 0..7; K: 0..7);
|
||
|
62420 2: (MW: 0..77777B)
|
||
|
62430 END;
|
||
|
62440 BEGIN WITH L, M DO
|
||
|
62450 BEGIN
|
||
|
62460 LW := 0; MW := 0; LKP := FALSE; LKK := 0;
|
||
|
62470 FM[1] := COMPASS[1]; FM[2] := COMPASS[2];
|
||
|
62480 CHA := COMPASS[3];
|
||
|
62490 IF CHA IN ['0'..'9'] THEN BEGIN LI := ORD(CHA)-ORD('0'); II := 4 END
|
||
|
62500 ELSE II := 3;
|
||
|
62510 WHILE COMPASS[II]=' ' DO
|
||
|
62520 IF II=10 THEN GOTO 99 ELSE II := II+1;
|
||
|
62530 CHA := COMPASS[II];
|
||
|
62540 IF (CHA='-') AND NOT(COMPASS[II+1] IN ['0'..'9']) THEN
|
||
|
62550 BEGIN LOP1 := MINUS; II := II+1; CHA := COMPASS[II] END;
|
||
|
62560 IF CHA IN ['B', 'A', 'X'] THEN
|
||
|
62570 BEGIN
|
||
|
62580 IF CHA='B' THEN LJT := B
|
||
|
62590 ELSE IF CHA='A' THEN LJT := A
|
||
|
62600 ELSE IF CHA='X' THEN LJT := X;
|
||
|
62610 LJ := ORD(COMPASS[II+1])-ORD('0');
|
||
|
62620 II := II+2; CHA := COMPASS[II]
|
||
|
62630 END
|
||
|
62640 ELSE LJT := KK;
|
||
|
62650 LKT := KK;
|
||
|
62660 IF CHA='+' THEN LOP2 := PLUS
|
||
|
62670 ELSE IF CHA='-' THEN LOP2 := MINUS
|
||
|
62680 ELSE IF CHA='*' THEN LOP2 := TIMES
|
||
|
62690 ELSE IF CHA='/' THEN LOP2 := OVER
|
||
|
62700 ELSE IF CHA=',' THEN LOP2 := COMMA
|
||
|
62710 ELSE IF CHA IN ['0'..'9'] THEN
|
||
|
62720 BEGIN LKK := ORD(CHA)-ORD('0'); LKP := TRUE END
|
||
|
62730 ELSE BEGIN LKT := B; LOP2 := MISSING END;
|
||
|
62740 II := II+1; CHA := COMPASS[II];
|
||
|
62750 IF CHA IN ['B', 'A', 'X'] THEN
|
||
|
62760 BEGIN
|
||
|
62770 IF CHA='B' THEN LKT := B
|
||
|
62780 ELSE IF CHA='A' THEN LKT := A
|
||
|
62790 ELSE IF CHA='X' THEN LKT := X;
|
||
|
62800 LK := ORD(COMPASS[II+1])-ORD('0');
|
||
|
62810 II := II+2
|
||
|
62820 END
|
||
|
62830 ELSE LK := 0;
|
||
|
62840 (*READ K*)
|
||
|
62850 WHILE II<=10 DO
|
||
|
62860 BEGIN CHA := COMPASS[II];
|
||
|
62870 IF CHA IN ['0'..'9'] THEN
|
||
|
62880 BEGIN LKK := LKK*10+ORD(CHA)-ORD('0'); LKP := TRUE END
|
||
|
62890 ELSE IF CHA='*' THEN LKT := STAR;
|
||
|
62900 II := II+1
|
||
|
62910 END;
|
||
|
62920 IF LOP2=MINUS THEN
|
||
|
62930 IF LKP THEN
|
||
|
62940 BEGIN LKK := -LKK; LOP2 := PLUS END
|
||
|
62950 ELSE LKK := 1; (*OR ANY ODD NUMBER*)
|
||
|
62960 99: WITH CODETABLE[OPCOD] DO
|
||
|
62970 BEGIN
|
||
|
62980 P1 := VP1;
|
||
|
62990 P2 := VP2;
|
||
|
63000 PR := VPR;
|
||
|
63010 IF (P1=O)AND(P2<>O) THEN WRITELN(OUTPUT,'FAILED ICODE-A');
|
||
|
63020 IF (P2=ST) THEN WRITELN(OUTPUT,'FAILED ICODE-B');
|
||
|
63030 IF FM='LB' THEN
|
||
|
63040 LEN := F0
|
||
|
63050 ELSE IF FM[1]='S' THEN
|
||
|
63060 BEGIN
|
||
|
63070 CASE FM[2] OF
|
||
|
63080 'A': F := 5;
|
||
|
63090 'B': F := 6;
|
||
|
63100 'X': F := 7
|
||
|
63110 END;
|
||
|
63120 I := LI; J := LJ;
|
||
|
63130 CASE LKT OF
|
||
|
63140 STAR,KK: BEGIN
|
||
|
63150 LEN := F30;
|
||
|
63160 CASE LJT OF
|
||
|
63170 A: M := 0;
|
||
|
63180 KK,B: M := 1;
|
||
|
63190 X: M := 2
|
||
|
63200 END
|
||
|
63210 END;
|
||
|
63220 B: BEGIN
|
||
|
63230 LEN := F15;
|
||
|
63240 CASE LJT OF
|
||
|
63250 X: M := 3;
|
||
|
63260 A: M := 4;
|
||
|
63270 B: M := 6;
|
||
|
63280 END;
|
||
|
63290 IF LOP2=MINUS THEN M := M+1;
|
||
|
63300 K := LK
|
||
|
63310 END
|
||
|
63320 END
|
||
|
63330 END
|
||
|
63340 ELSE IF FM='BX' THEN
|
||
|
63350 BEGIN
|
||
|
63360 F := 1; LEN := F15;
|
||
|
63370 I := LI; K := LJ;
|
||
|
63380 IF LKT=B (*I.E. ABSENT*) THEN
|
||
|
63390 BEGIN M := 0; J := LJ END
|
||
|
63400 ELSE
|
||
|
63410 BEGIN
|
||
|
63420 CASE LOP2 OF
|
||
|
63430 TIMES: M := 1;
|
||
|
63440 PLUS: M := 2;
|
||
|
63450 MINUS: M := 3
|
||
|
63460 END;
|
||
|
63470 J := LK
|
||
|
63480 END;
|
||
|
63490 IF LOP1=MINUS THEN M := M+4
|
||
|
63500 END
|
||
|
63510 ELSE IF (FM[1] IN ['F', 'D', 'R', 'I', 'C']) AND (FM[2]='X') THEN
|
||
|
63520 BEGIN
|
||
|
63530 LEN := F15;
|
||
|
63540 I := LI; J := LJ; K := LK;
|
||
|
63550 IF LOP2 IN [PLUS, MINUS] THEN
|
||
|
63560 BEGIN
|
||
|
63570 F := 3;
|
||
|
63580 CASE FM[1] OF
|
||
|
63590 'F': M := 0;
|
||
|
63600 'D': M := 2;
|
||
|
63610 'R': M := 4;
|
||
|
63620 'I': M := 6
|
||
|
63630 END;
|
||
|
63640 IF LOP2=MINUS THEN M := M+1
|
||
|
63650 END
|
||
|
63660 ELSE
|
||
|
63670 BEGIN F := 4;
|
||
|
63680 CASE FM[1] OF
|
||
|
63690 'F': M := 0;
|
||
|
63700 'R': M := 1;
|
||
|
63710 'D': M := 2;
|
||
|
63720 'C': BEGIN M := 7; K := LJ END
|
||
|
63730 END;
|
||
|
63740 IF LOP2=OVER THEN M := M+4
|
||
|
63750 END
|
||
|
63760 END
|
||
|
63770 ELSE IF (FM[1] IN ['M','L','A','N','Z','U','P']) AND (FM[2]='X') THEN
|
||
|
63780 BEGIN
|
||
|
63790 IF LKP THEN
|
||
|
63800 BEGIN
|
||
|
63810 MW := LKK; (*SET JK*)
|
||
|
63820 CASE FM[1] OF
|
||
|
63830 'M': BEGIN F := 4; M := 3 END;
|
||
|
63840 'L': BEGIN F := 2; M := 0 END;
|
||
|
63850 'A': BEGIN F := 2; M := 1 END
|
||
|
63860 END
|
||
|
63870 END
|
||
|
63880 ELSE
|
||
|
63890 BEGIN F := 2;
|
||
|
63900 IF LKT=X THEN BEGIN J := LJ; K := LK END
|
||
|
63910 ELSE BEGIN J := LK; K := LJ END;
|
||
|
63920 CASE FM[1] OF
|
||
|
63930 'L': M := 2;
|
||
|
63940 'A': M := 3;
|
||
|
63950 'N': M := 4;
|
||
|
63960 'Z': M := 5;
|
||
|
63970 'U': M := 6;
|
||
|
63980 'P': M := 7
|
||
|
63990 END
|
||
|
64000 END;
|
||
|
64010 LEN := F15; I := LI
|
||
|
64020 END
|
||
|
64030 ELSE (*JUMP*)
|
||
|
64040 BEGIN F := 0;
|
||
|
64050 LEN := F30;
|
||
|
64060 IF LJT=X THEN
|
||
|
64070 BEGIN M := 3; J := LJ;
|
||
|
64080 IF FM='ZR' THEN I := 0
|
||
|
64090 ELSE IF FM='NZ' THEN I := 1
|
||
|
64100 ELSE IF FM='PL' THEN I := 2
|
||
|
64110 ELSE IF FM='NG' THEN I := 3
|
||
|
64120 ELSE IF FM='IR' THEN I := 4
|
||
|
64130 ELSE IF FM='OR' THEN I := 5
|
||
|
64140 ELSE IF FM='DF' THEN I := 6
|
||
|
64150 ELSE IF FM='ID' THEN I := 7
|
||
|
64160 ELSE HALT
|
||
|
64170 END
|
||
|
64180 ELSE
|
||
|
64190 BEGIN I := LJ; J := LK;
|
||
|
64200 IF FM='PS' THEN M := 0
|
||
|
64210 ELSE IF FM='RJ' THEN M := 1
|
||
|
64220 ELSE IF FM='JP' THEN M := 2
|
||
|
64230 ELSE IF FM='EQ' THEN M := 4
|
||
|
64240 ELSE IF FM='NE' THEN M := 5
|
||
|
64250 ELSE IF FM='GE' THEN M := 6
|
||
|
64260 ELSE IF FM='LE' THEN BEGIN M := 6; I := LJ; J := LI END
|
||
|
64270 ELSE IF FM='LT' THEN M := 7
|
||
|
64280 ELSE IF FM='GT' THEN BEGIN M := 7; I := LJ; J := LI END
|
||
|
64290 ELSE IF FM='NO' THEN BEGIN F := 4; M := 6; LEN := F15 END
|
||
|
64300 ELSE HALT
|
||
|
64310 END
|
||
|
64320 END;
|
||
|
64330 REL := 0;
|
||
|
64340 IF LEN=F15 THEN FMIJK := MW
|
||
|
64350 ELSE IF (LKP) AND (LKT<>STAR) THEN
|
||
|
64360 IF LKK>=0 THEN FMIJK := MW*SHIFT1+LKK
|
||
|
64370 ELSE FMIJK := MW*SHIFT1+LKK+1000000B
|
||
|
64380 ELSE IF LEN=F30 THEN
|
||
|
64390 IF (LKT <> STAR) AND (LOP2<>MISSING) THEN
|
||
|
64400 BEGIN LEN := F30K; FMIJK := MW*SHIFT1+LKK END
|
||
|
64410 ELSE BEGIN FMIJK := MW*SHIFT1; REL := LKK END;
|
||
|
64420 INLINE := TRUE;
|
||
|
64430 NEXT := PNEXT
|
||
|
64440 END
|
||
|
64450 END
|
||
|
64460 END;
|
||
|
64470 PROCEDURE OCODE(OPCOD: POP; PROUTINE: ALFA;VP1,VP2,VPR:SBTTYP);
|
||
|
64480 VAR I: INTEGER;
|
||
|
64490 BEGIN
|
||
|
64500 WITH CODETABLE[OPCOD] DO
|
||
|
64510 BEGIN
|
||
|
64520 P1 := VP1;
|
||
|
64530 P2 := VP2;
|
||
|
64540 PR := VPR;
|
||
|
64550 IF (P1=O)AND(P2<>O) THEN WRITELN(OUTPUT,'FAILED OCODE-A');
|
||
|
64560 IF P2=ST THEN WRITELN(OUTPUT,'FAILED OCODE-B');
|
||
|
64570 INLINE := FALSE;
|
||
|
64580 LINKINS := NIL;
|
||
|
64590 FOR I := 1 TO 7 DO ROUTINE[I] := PROUTINE[I]
|
||
|
64600 END
|
||
|
64610 END;
|
||
|
64620 (**)
|
||
|
64630 PROCEDURE QCODE (OPCOD:POP; COMPASS:ALFA; PNEXT:POP );
|
||
|
64640 BEGIN ICODE(OPCOD, COMPASS, PNEXT, O, O ,O ) END;
|
||
|
64650 (**)
|
||
|
64660 PROCEDURE FIRSTPART;
|
||
|
64670 VAR I: INTEGER;
|
||
|
64680 BEGIN FOR I := PNONE TO PLAST DO OCODE(I, 'DUMMY ', O , O , O );
|
||
|
64690 (**)
|
||
|
64700 ICODE(PPBEGIN , 'SB7 2 ', QPBEGIN ,O ,O ,O );
|
||
|
64710 QCODE(QPBEGIN , 'RJ B0+ ', 0);
|
||
|
64720 ICODE(PPBEGIN+1 , 'SB6 B2+ ', QPBEGIN+1 ,O ,O ,O );
|
||
|
64730 QCODE(QPBEGIN+1 , 'SB7 B6+100', QPBEGIN+2);
|
||
|
64740 QCODE(QPBEGIN+2 , 'SA0 5 ', QPBEGIN+3);
|
||
|
64750 QCODE(QPBEGIN+3 , 'GEB7,B4,41', QPBEGIN+4);
|
||
|
64760 OCODE(QPBEGIN+4 , 'START68 ' ,O ,O ,O );
|
||
|
64770 OCODE(PPEND , 'STOP68 ' ,O ,O ,O );
|
||
|
64780 OCODE(PPOP , ' ' ,O ,O ,O );
|
||
|
64790 ICODE(PABSI , 'BX3 X1 ', QABSI ,X1 ,O ,X1 );
|
||
|
64800 QCODE(QABSI , 'AX3 59 ', QABSI1);
|
||
|
64810 QCODE(QABSI1 , 'BX1 X1-X3 ', 0);
|
||
|
64820 ICODE(PABSI-2 , 'BX3 X1 ', QABSI ,X1 ,O ,X1 );
|
||
|
64830 OCODE(PABSI-4 , 'CABSI ' ,X0 ,O ,X6 );
|
||
|
64840 ICODE(PABSB , 'MX3 1 ', QABSB ,X1 ,O ,X1 );
|
||
|
64850 QCODE(QABSB , 'BX1 X1*X3 ', QABSB1);
|
||
|
64860 QCODE(QABSB1 , 'LX1 1 ', 0);
|
||
|
64870 ICODE(PABSB-1 , 'NO ', 0 ,X1 ,O ,X1 );
|
||
|
64880 ICODE(PABSCH , 'NO ', 0 ,X1 ,O ,X1 );
|
||
|
64890 ICODE(PADD , 'IX1 X5+X1 ', 0 ,X5 ,X1 ,X1 );
|
||
|
64900 ICODE(PADD-2 , 'RX1 X5+X1 ', QNORM ,X5 ,X1 ,X1 );
|
||
|
64910 (*+61()
|
||
|
64920 ICODE(PADD-3 , 'FX3 X1+X4 ', QADD ,X45,X12,X12);
|
||
|
64930 QCODE(QADD , 'DX4 X1+X4 ', QADD+1);
|
||
|
64940 QCODE(QADD+1 , 'NX3 X3 ', QADD+2);
|
||
|
64950 QCODE(QADD+2 , 'RX5 X2+X5 ', QADD+3);
|
||
|
64960 QCODE(QADD+3 , 'RX5 X4+X5 ', QADD+4);
|
||
|
64970 QCODE(QADD+4 , 'FX4 X3+X5 ', QADD+5);
|
||
|
64980 QCODE(QADD+5 , 'NX4 X4 ', QADD+6);
|
||
|
64990 QCODE(QADD+6 , 'DX5 X3+X5 ', QADD+7);
|
||
|
65000 QCODE(QADD+7 , 'NX5 X5 ', QADD+8);
|
||
|
65010 QCODE(QADD+8 , 'FX1 X4+X5 ', QADD+9);
|
||
|
65020 QCODE(QADD+9 , 'DX2 X4+X5 ', 0);
|
||
|
65030 ()+61*)
|
||
|
65040 OCODE(PADD-4 , 'CPLUS ' ,X0 ,X1 ,X6 );
|
||
|
65050 ICODE(PANDB , 'BX1 X1*X5 ', 0 ,X5 ,X1 ,X1 );
|
||
|
65060 ICODE(PANDB-1 , 'BX1 X1*X5 ', 0 ,X5 ,X1 ,X1 );
|
||
|
65070 OCODE(PARG , 'CARG ' ,X0 ,O ,X6 );
|
||
|
65080 ICODE(PBIN , 'NO ', 0 ,X1 ,O ,X1 );
|
||
|
65090 OCODE(PCAT , 'CATCC ' ,X0 ,X1 ,X6 );
|
||
|
65100 OCODE(PCAT-1 , 'CATSS ' ,X0 ,X1 ,X6 );
|
||
|
65110 OCODE(PCONJ , 'CCONJ ' ,X0 ,O ,X6 );
|
||
|
65120 ICODE(PDIV , 'PX5 X5 ', QDIV ,X5 ,X1 ,X1 );
|
||
|
65130 QCODE(QDIV , 'NX5 X5 ', QDIV1);
|
||
|
65140 QCODE(QDIV1 , 'PX1 X1 ', QDIV2);
|
||
|
65150 QCODE(QDIV2 , 'NX1 X1 ', PDIV-2);
|
||
|
65160 ICODE(PDIV-2 , 'RX1 X5/X1 ', 0 ,X5 ,X1 ,X1 );
|
||
|
65170 OCODE(PDIV-4 , 'CDIV ' ,X0 ,X1 ,X6 );
|
||
|
65180 ICODE(PDIVAB , 'RX1 X5/X1 ', 0 ,X5 ,X1 ,X1 );
|
||
|
65190 OCODE(PDIVAB-2 , 'CDIVAB ' ,X0 ,X1 ,X6 );
|
||
|
65200 ICODE(PELMBT , 'SB3 X5-1 ', QELMBT ,X5 ,X1 ,X1 );
|
||
|
65210 QCODE(QELMBT , 'LX1 B3,X1 ', 0);
|
||
|
65220 OCODE(PELMBY , 'ELEMBY ' ,X5 ,X1 ,X1 );
|
||
|
65230 OCODE(PENTI , 'ENTIER ' ,X1 ,O ,X1 );
|
||
|
65240 ICODE(PEQ , 'IX3 X1-X5 ', QEQ ,X5 ,X1 ,X1 );
|
||
|
65250 QCODE(QEQ , 'IX1 X5-X1 ', QEQ1);
|
||
|
65260 QCODE(QEQ1 , 'BX1 -X1-X3', 0);
|
||
|
65270 ICODE(PEQ-2 , 'IX3 X1-X5 ', QEQ ,X5 ,X1 ,X1 );
|
||
|
65280 OCODE(PEQ-4 , 'CEQ ' ,X0 ,X1 ,X6 );
|
||
|
65290 ICODE(PEQB , 'BX1 -X1-X5', 0 ,X5 ,X1 ,X1 );
|
||
|
65300 ICODE(PEQB-1 , 'IX3 X1-X5 ', QEQ ,X5 ,X1 ,X1 );
|
||
|
65310 ICODE(PEQB-2 , 'IX3 X1-X5 ', QEQ ,X5 ,X1 ,X1 );
|
||
|
65320 ICODE(PEQCS , 'IX3 X1-X5 ', QEQ ,X5 ,X1 ,X1 );
|
||
|
65330 ICODE(PEQCS-1 , 'SX2 2 ', QCFSTRNG ,X0 ,X1 ,X6 );
|
||
|
65340 OCODE(PEXP , 'POWI ' ,X5 ,X1 ,X1 );
|
||
|
65350 OCODE(PEXP-2 , 'POWR ' ,X5 ,X1 ,X1 );
|
||
|
65360 OCODE(PEXP-4 , 'CPOW ' ,X0 ,X1 ,X6 );
|
||
|
65370 ICODE(PPASC , 'SX6 B5 ', QPASC ,SDL,O ,X6 );
|
||
|
65380 ICODE(PPASC+1 , 'SX6 B5 ', QPASC ,X0S,O ,X6 );
|
||
|
65390 ICODE(PPASC+2 , 'SX6 B5 ', QPASC ,X0S,X1 ,X6 );
|
||
|
65400 OCODE(PPASC+3 , 'PASC ' ,STS,O ,X6 );
|
||
|
65410 QCODE(QPASC , 'SX7 2* ', QPASC+1);
|
||
|
65420 QCODE(QPASC+1 , 'EQ B0+ ', 0);
|
||
|
65430 ICODE(PENVCHAIN , 'SA3 B5 ', 0 ,O ,O ,O );
|
||
|
65440 ICODE(PENVCHAIN+1 , 'SA3 X3 ', 0 ,O ,O ,O );
|
||
|
65450 ICODE(PGE , 'IX1 X5-X1 ', PNOTB ,X5 ,X1 ,X1 );
|
||
|
65460 ICODE(PGE-2 , 'IX1 X5-X1 ', PNOTB ,X5 ,X1 ,X1 );
|
||
|
65470 ICODE(PGEBT , 'BX1 -X5*X1', QGEBT ,X5 ,X1 ,X1 );
|
||
|
65480 QCODE(QGEBT , 'BX5 X5-X5 ', PEQ);
|
||
|
65490 ICODE(PGEBT-1 , 'IX1 X5-X1 ', PNOTB ,X5 ,X1 ,X1 );
|
||
|
65500 ICODE(PGECS , 'IX1 X5-X1 ', PNOTB ,X5 ,X1 ,X1 );
|
||
|
65510 ICODE(PGECS-1 , 'SX2 4 ', QCFSTRNG ,X0 ,X1 ,X6 );
|
||
|
65520 ICODE(PGT , 'IX1 X1-X5 ', 0 ,X5 ,X1 ,X1 );
|
||
|
65530 ICODE(PGT-2 , 'IX1 X1-X5 ', 0 ,X5 ,X1 ,X1 );
|
||
|
65540 ICODE(PGTBY , 'IX1 X1-X5 ', 0 ,X5 ,X1 ,X1 );
|
||
|
65550 ICODE(PGTCS , 'IX1 X1-X5 ', 0 ,X5 ,X1 ,X1 );
|
||
|
65560 ICODE(PGTCS-1 , 'SX2 5 ', QCFSTRNG ,X0 ,X1 ,X6 );
|
||
|
65570 OCODE(PIM , 'CIM ' ,X0 ,O ,X6 );
|
||
|
65580 ICODE(PLE , 'IX1 X1-X5 ', PNOTB ,X5 ,X1 ,X1 );
|
||
|
65590 ICODE(PLE-2 , 'IX1 X1-X5 ', PNOTB ,X5 ,X1 ,X1 );
|
||
|
65600 ICODE(PLEBT , 'BX1 -X1*X5', QGEBT ,X5 ,X1 ,X1 );
|
||
|
65610 ICODE(PLEBT-1 , 'IX1 X1-X5 ', PNOTB ,X5 ,X1 ,X1 );
|
||
|
65620 ICODE(PLECS , 'IX1 X1-X5 ', PNOTB ,X5 ,X1 ,X1 );
|
||
|
65630 ICODE(PLECS-1 , 'SX2 B1 ', QCFSTRNG ,X0 ,X1 ,X6 );
|
||
|
65640 (*+61()
|
||
|
65650 ICODE(PLENGR , 'BX2 X2-X2 ', QLENGR ,X1 ,O ,X12);
|
||
|
65660 QCODE(QLENGR , 'DX2 X1+X2 ', 0);
|
||
|
65670 ()+61*)
|
||
|
65680 ICODE(PLT , 'IX1 X5-X1 ', 0 ,X5 ,X1 ,X1 );
|
||
|
65690 ICODE(PLT-2 , 'IX1 X5-X1 ', 0 ,X5 ,X1 ,X1 );
|
||
|
65700 ICODE(PLTBY , 'IX1 X5-X1 ', 0 ,X5 ,X1 ,X1 );
|
||
|
65710 ICODE(PLTCS , 'IX1 X5-X1 ', 0 ,X5 ,X1 ,X1 );
|
||
|
65720 ICODE(PLTCS-1 , 'SX2 B0 ', QCFSTRNG ,X0 ,X1 ,X6 );
|
||
|
65730 OCODE(PLWBMSTR , 'LWBMSTR ' ,X0 ,O ,X6 );
|
||
|
65740 OCODE(PLWBM , 'LWBM ' ,X0 ,O ,X6 );
|
||
|
65750 OCODE(PLWB , 'LWB ' ,X0 ,X1 ,X6 );
|
||
|
65760 ICODE(PMINUSAB , 'IX1 X5-X1 ', 0 ,X5 ,X1 ,X1 );
|
||
|
65770 ICODE(PMINUSAB-2 , 'RX1 X5-X1 ', QNORM ,X5 ,X1 ,X1 );
|
||
|
65780 OCODE(PMINUSAB-4 , 'CMINAB ' ,X0 ,X1 ,X6 );
|
||
|
65790 OCODE(PMOD , 'MOD ' ,X5 ,X1 ,X1 );
|
||
|
65800 OCODE(PMODAB , 'MOD ' ,X5 ,X1 ,X1 );
|
||
|
65810 ICODE(PMUL , 'DX1 X1*X5 ', QMUL ,X5 ,X1 ,X1 );
|
||
|
65820 QCODE(QMUL , 'BX3 X3-X3 ', QMUL1);
|
||
|
65830 QCODE(QMUL1 , 'IX1 X1+X3 ', 0);
|
||
|
65840 ICODE(PMUL-2 , 'RX1 X1*X5 ', 0 ,X5 ,X1 ,X1 );
|
||
|
65850 (*+61()
|
||
|
65860 ICODE(PMUL-3 , 'RX2 X2*X4 ', QMULL ,X45,X12,X12);
|
||
|
65870 QCODE(QMULL , 'RX5 X1*X5 ', QMULL+1);
|
||
|
65880 QCODE(QMULL+1 , 'RX2 X2+X5 ', QMULL+2);
|
||
|
65890 QCODE(QMULL+2 , 'FX3 X1*X4 ', QMULL+3);
|
||
|
65900 QCODE(QMULL+3 , 'DX4 X1*X4 ', QMULL+4);
|
||
|
65910 QCODE(QMULL+4 , 'RX4 X4+X2 ', QMULL+5);
|
||
|
65920 QCODE(QMULL+5 , 'FX1 X3+X4 ', QMULL+6);
|
||
|
65930 QCODE(QMULL+6 , 'DX2 X3+X4 ', 0);
|
||
|
65940 ()+61*)
|
||
|
65950 OCODE(PMUL-4 , 'CTIMS ' ,X0 ,X1 ,X6 );
|
||
|
65960 OCODE(PMULCI , 'MULCI ' ,X0 ,X1 ,X6 );
|
||
|
65970 OCODE(PMULCI-1 , 'MULSI ' ,X0 ,X1 ,X6 );
|
||
|
65980 OCODE(PMULIC , 'MULIC ' ,X0 ,X1 ,X6 );
|
||
|
65990 OCODE(PMULIC-1 , 'MULIS ' ,X0 ,X1 ,X6 );
|
||
|
66000 ICODE(PNE , 'IX3 X1-X5 ', QNE ,X5 ,X1 ,X1 );
|
||
|
66010 QCODE(QNE , 'IX1 X5-X1 ', QNE1);
|
||
|
66020 QCODE(QNE1 , 'BX1 X1-X3 ', 0);
|
||
|
66030 ICODE(PNE-2 , 'IX3 X1-X5 ', QNE ,X5 ,X1 ,X1 );
|
||
|
66040 OCODE(PNE-4 , 'CNE ' ,X0 ,X1 ,X6 );
|
||
|
66050 ICODE(PNEB , 'BX1 X1-X5 ', 0 ,X5 ,X1 ,X1 );
|
||
|
66060 ICODE(PNEB-1 , 'IX3 X1-X5 ', QNE ,X5 ,X1 ,X1 );
|
||
|
66070 ICODE(PNEB-2 , 'IX3 X1-X5 ', QNE ,X5 ,X1 ,X1 );
|
||
|
66080 ICODE(PNECS , 'IX3 X1-X5 ', QNE ,X5 ,X1 ,X1 );
|
||
|
66090 ICODE(PNECS-1 , 'SX2 3 ', QCFSTRNG ,X0 ,X1 ,X6 );
|
||
|
66100 ICODE(PNEGI , 'BX3 X3-X3 ', QNEGI ,X1 ,O ,X1 );
|
||
|
66110 QCODE(QNEGI , 'IX1 X3-X1 ', 0);
|
||
|
66120 ICODE(PNEGI-2 , 'BX3 X3-X3 ', QNEGI ,X1 ,O ,X1 );
|
||
|
66130 OCODE(PNEGI-4 , 'CNEGI ' ,X0 ,O ,X6 );
|
||
|
66140 ICODE(PNOTB , 'MX3 1 ', QNOTB ,X1 ,O ,X1 );
|
||
|
66150 QCODE(QNOTB , 'BX1 X3-X1 ', 0);
|
||
|
66160 ICODE(PNOTB-1 , 'BX3 X3-X3 ', QEQ1 ,X1 ,O ,X1 );
|
||
|
66170 ICODE(PNOOP , 'NO ', 0 ,X1 ,O ,X1 );
|
||
|
66180 ICODE(PNOOP-2 , 'NO ', 0 ,X1 ,O ,X1 );
|
||
|
66190 ICODE(PNOOP-4 , 'NO ', 0 ,X1 ,O ,X1 );
|
||
|
66200 ICODE(PODD , 'LX1 59 ', 0 ,X1 ,O ,X1 );
|
||
|
66210 ICODE(PORB , 'BX1 X1+X5 ', 0 ,X5 ,X1 ,X1 );
|
||
|
66220 ICODE(PORB-1 , 'BX1 X1+X5 ', 0 ,X5 ,X1 ,X1 );
|
||
|
66230 OCODE(POVER , 'OVER ' ,X5 ,X1 ,X1 );
|
||
|
66240 OCODE(POVERAB , 'OVER ' ,X5 ,X1 ,X1 );
|
||
|
66250 OCODE(PPLITM , 'CRCOMPLEX ' ,X0 ,X1 ,X6 );
|
||
|
66260 ICODE(PPLSAB , 'IX1 X5+X1 ', 0 ,X5 ,X1 ,X1 );
|
||
|
66270 ICODE(PPLSAB-2 , 'RX1 X5+X1 ', QNORM ,X5 ,X1 ,X1 );
|
||
|
66280 (*+61()
|
||
|
66290 ICODE(PPLSAB-3 , 'FX3 X1+X4 ', QADD ,X45,X12,X12);
|
||
|
66300 ()+61*)
|
||
|
66310 OCODE(PPLSAB-4 , 'CPLUSAB ' ,X0 ,X1 ,X6 );
|
||
|
66320 OCODE(PPLSABS , 'PLABSS ' ,X0 ,X1 ,X6 );
|
||
|
66330 OCODE(PPLSABS-1 , 'PLABSS ' ,X0 ,X1 ,X6 );
|
||
|
66340 OCODE(PPLSTOCS , 'PLTOSS ' ,X0 ,X1 ,X6 );
|
||
|
66350 OCODE(PPLSTOCS-1 , 'PLTOSS ' ,X0 ,X1 ,X6 );
|
||
|
66360 OCODE(PRE , 'CRE ' ,X0 ,O ,X6 );
|
||
|
66370 ICODE(PREPR , 'NO ', 0 ,X1 ,O ,X1 );
|
||
|
66380 OCODE(PROUN , 'ROUN ' ,X1 ,O ,X1 );
|
||
|
66390 OCODE(PSGNI , 'SIGN ' ,X1 ,O ,X1 );
|
||
|
66400 OCODE(PSGNI-2 , 'SIGN ' ,X1 ,O ,X1 );
|
||
|
66410 OCODE(PSHL , 'SHL ' ,X5 ,X1 ,X1 );
|
||
|
66420 (*+61()
|
||
|
66430 ICODE(PSHRTR , 'RX1 X1+X2 ', QNORM ,X12,O ,X1 );
|
||
|
66440 ()+61*)
|
||
|
66450 OCODE(PSHR , 'SHR ' ,X5 ,X1 ,X1 );
|
||
|
66460 ICODE(PSUB , 'IX1 X5-X1 ', 0 ,X5 ,X1 ,X1 );
|
||
|
66470 ICODE(PSUB-2 , 'RX1 X5-X1 ', QNORM ,X5 ,X1 ,X1 );
|
||
|
66480 OCODE(PSUB-4 , 'CMINUS ' ,X0 ,X1 ,X6 );
|
||
|
66490 ICODE(PTIMSAB , 'DX1 X5*X1 ', 0 ,X5 ,X1 ,X1 );
|
||
|
66500 ICODE(PTIMSAB-2 , 'RX1 X1*X5 ', 0 ,X5 ,X1 ,X1 );
|
||
|
66510 (*+61()
|
||
|
66520 ICODE(PTIMSAB-3 , 'RX2 X2*X4 ', QMULL ,X45,X12,X12);
|
||
|
66530 ()+61*)
|
||
|
66540 OCODE(PTIMSAB-4 , 'CTIMSAB ' ,X0 ,X1 ,X6 );
|
||
|
66550 OCODE(PTIMSABS , 'MULABSI ' ,X0 ,X1 ,X6 );
|
||
|
66560 OCODE(PUPBMSTR , 'UPBMSTR ' ,X0 ,O ,X6 );
|
||
|
66570 OCODE(PUPBM , 'UPBM ' ,X0 ,O ,X6 );
|
||
|
66580 OCODE(PUPB , 'UPB ' ,X0 ,X1 ,X6 );
|
||
|
66590 OCODE(QCFSTRNG , 'CFSTR ' ,O ,O ,O );
|
||
|
66600 QCODE(QNORM , 'NX1 B0,X1 ', 0);
|
||
|
66610 END;
|
||
|
66620 PROCEDURE SECONDPART;
|
||
|
66630 BEGIN
|
||
|
66640 ICODE(PGETPROC , 'SA3 B6+ ', QGETPROC ,O ,O ,O );
|
||
|
66650 QCODE(QGETPROC , 'BX0 X3 ', PGETPROC+1);
|
||
|
66660 OCODE(PGETPROC+1 , 'GETPROC ' ,X0 ,O ,O );
|
||
|
66670 ICODE(PSELECT , 'SA3 X1+B1 ', QSELECT+1 ,X1 ,O ,X1 );
|
||
|
66672 QCODE(QSELECT+1 , 'AX3 25 ', QSELECT+2);
|
||
|
66673 QCODE(QSELECT+2 , 'SX3 X3+ ', QSELECT+3);
|
||
|
66674 QCODE(QSELECT+3 , 'LX1 42 ', QSELECT+4);
|
||
|
66676 QCODE(QSELECT+4 , 'BX1 X1+X3 ', 0);
|
||
|
66678 ICODE(PSELECT+1 , 'SX3 B1+ ', QSELECT+3 ,X1 ,O ,X1 );
|
||
|
66680 ICODE(PSELECT+2 , 'SX3 B0+ ', QSELECT ,X0 ,O ,X0 );
|
||
|
66690 QCODE(QSELECT , 'IX0 X0+X3 ', 0);
|
||
|
66700 OCODE(PSELECTROW , 'SELECTR ' ,X0 ,O ,X6 );
|
||
|
66710 OCODE(PSTRNGSLICE , 'STRSUB ' ,X0 ,X1 ,X6 );
|
||
|
66720 OCODE(PSTRNGSLICE+1,'STRTRIM ' ,X0S,O ,X6 );
|
||
|
66730 OCODE(PSTARTSLICE , 'STARTSL ' ,STP,O ,O );
|
||
|
66740 OCODE(PSLICE1 , 'SLICE1 ' ,X0 ,X1 ,X0 );
|
||
|
66750 OCODE(PSLICE2 , 'SLICE2 ' ,X0S,X1 ,X0 );
|
||
|
66760 OCODE(PSLICEN , 'SLICEN ' ,X0S,O ,X6 );
|
||
|
66770 ICODE(PCASE , 'SA3 + ', QCAS ,X1 ,O ,O );
|
||
|
66780 OCODE(QCAS , 'CASE ' ,O ,O ,O );
|
||
|
66785 ICODE(PCASJMP , 'EQ B0, ', 0 ,O ,O ,O );
|
||
|
66787 ICODE(PCASJMP+1 , 'EQ B0, ', 0 ,O ,O ,O );
|
||
|
66790 ICODE(PJMPF , 'PL X1, ', 0 ,X1 ,O ,O );
|
||
|
66800 ICODE(PLPINIT , 'SX1 B5+ ', QLPINIT ,X0S,O ,X6 );
|
||
|
66810 OCODE(QLPINIT , 'LINIT1 ' ,O ,O ,O );
|
||
|
66820 ICODE(PLPINIT+1 , 'SX1 B5+ ', QLPINIT+1 ,X0S,O ,X6 );
|
||
|
66830 OCODE(QLPINIT+1 , 'LINIT2 ' ,O ,O ,O );
|
||
|
66840 ICODE(PLPINIT+2 , 'SX1 B5+ ', QLPINIT+2 ,X0S,O ,O );
|
||
|
66850 OCODE(QLPINIT+2 , 'LINIT3 ' ,O ,O ,O );
|
||
|
66860 ICODE(PLPINIT+3 , 'SX1 B5+ ', QLPINIT+3 ,X0S,O ,O );
|
||
|
66870 OCODE(QLPINIT+3 , 'LINIT4 ' ,O ,O ,O );
|
||
|
66880 ICODE(PLPTEST , 'ZR X6, ', 0 ,X6 ,O ,O );
|
||
|
66888 ICODE(PLPINCR , 'SX0 B5+ ', QLOOPINCR+5 ,O ,O ,X6 );
|
||
|
66890 OCODE(QLOOPINCR+5 , 'LOOPINC ' ,O ,O ,O );
|
||
|
66900 ICODE(PLPINCR+1 , 'SA4 B5+ ', QLOOPINCR ,O ,O ,X6 );
|
||
|
66910 QCODE(QLOOPINCR , 'SX3 B1 ', QLOOPINCR+1);
|
||
|
66920 QCODE(QLOOPINCR+1 , 'IX7 X4+X3 ', QLOOPINCR+2);
|
||
|
66930 QCODE(QLOOPINCR+2 , 'SA7 A4 ', QLOOPINCR+3);
|
||
|
66940 QCODE(QLOOPINCR+3 , 'SA3 A4+B1 ', QLOOPINCR+4);
|
||
|
66950 QCODE(QLOOPINCR+4 , 'IX6 X3-X4 ', 0);
|
||
|
66960 ICODE(PRANGENT , 'SX2 B5+ ', QRANGENT ,O ,O ,O );
|
||
|
66970 OCODE(QRANGENT , 'RANGENT ' ,O ,O ,O );
|
||
|
66980 OCODE(PRANGEXT , 'RANGEXT ' ,O ,O ,O );
|
||
|
66990 ICODE(PRANGEXT+1 , 'SA3 B5+12 ', QRANGEXT ,O ,O ,O );
|
||
|
67000 QCODE(QRANGEXT , 'SA2 X3+2 ', QRANGEXT+1);
|
||
|
67010 QCODE(QRANGEXT+1 , 'BX7 X2 ', QRANGEXT+2);
|
||
|
67020 QCODE(QRANGEXT+2 , 'SA7 A3 ', 0);
|
||
|
67030 OCODE(PRANGEXT+2 , 'RANGXTP ' ,X0 ,O ,X6 );
|
||
|
67032 OCODE(PRECGEN , 'DORECGE ' ,O ,O ,O );
|
||
|
67040 OCODE(PACTDRMULT , 'CRMULT ' ,X0 ,O ,X6 );
|
||
|
67050 OCODE(PACTDRSTRUCT, 'CRSTRUC ' ,O ,O ,X6 );
|
||
|
67060 OCODE(PCHECKDESC , 'CHKDESC ' ,X0 ,X1 ,X6 );
|
||
|
67070 OCODE(PVARLISTEND , 'GARBAGE ' ,X0 ,O ,O );
|
||
|
67080 ICODE(PVARLISTEND+1,'SB6 B6-B1 ', 0 ,ST ,O ,O );
|
||
|
67090 ICODE(PDCLINIT , 'SA3 B2+328', QDCLINIT ,O ,O ,O ); (*FIRSTVAR*)
|
||
|
67100 QCODE(QDCLINIT , 'BX7 X3 ',0);
|
||
|
67110 ICODE(PDCLINIT+1 , 'SA3 B2+329', QDCLINIT ,O ,O ,O ); (*FIRSTVAR+1*)
|
||
|
67120 ICODE(PDCLINIT+2 , 'SA7 B5+ ',0 ,O ,O ,O );
|
||
|
67130 ICODE(PPARM , 'SA3 B5+ ', QPARM ,O ,O ,O );
|
||
|
67140 QCODE(QPARM , 'SA2 X3 ', QPARM+1);
|
||
|
67150 QCODE(QPARM+1 , 'SX7 B1 ', QPARM+2);
|
||
|
67160 QCODE(QPARM+2 , 'LX7 47 ', QPARM+3);
|
||
|
67170 QCODE(QPARM+3 , 'IX7 X2+X7 ', QPARM+4);
|
||
|
67180 QCODE(QPARM+4 , 'SA7 A2 ', 0);
|
||
|
67210 OCODE(PCREATEREF , 'CRREFN ' ,X0 ,O ,X6 );
|
||
|
67220 OCODE(PCREATEREF+1, 'CRRECN ' ,X0 ,O ,X6 );
|
||
|
67230 OCODE(PCREATEREF+2, 'CRREFR ' ,X0 ,O ,X6 );
|
||
|
67240 OCODE(PCREATEREF+3, 'CRRECR ' ,X0 ,O ,X6 );
|
||
|
67260 ICODE(PDCLSP , 'SA6 B5+ ', 0 ,X6 ,O ,O );
|
||
|
67270 ICODE(PDCLSP+1 , 'SA3 X6 ', QDCLSP ,X6 ,O ,O );
|
||
|
67280 QCODE(QDCLSP , 'SX7 B1 ', QDCLSP+1);
|
||
|
67290 QCODE(QDCLSP+1 , 'LX7 47 ', QDCLSP+2);
|
||
|
67300 QCODE(QDCLSP+2 , 'IX7 X3+X7 ', QDCLSP+3);
|
||
|
67310 QCODE(QDCLSP+3 , 'SA7 A3 ', PDCLSP);
|
||
|
67320 OCODE(PDCLSP+2 , 'DCLSN ' ,SNS,O ,O );
|
||
|
67330 OCODE(PDCLSP+3 , 'DCLPN ' ,SNS,O ,O );
|
||
|
67340 ICODE(PFIXRG , 'SX7 B5+ ', 0 , O ,O ,O );
|
||
|
67350 ICODE(PFIXRG+1 , 'SA7 B5+ ', 0 , O ,O ,O );
|
||
|
67360 OCODE(PBOUNDS , 'BOUND ' ,STS,O ,X6 );
|
||
|
67370 ICODE(PLOADVAR , 'SX1 B5+ ', QLOADVAR ,O ,O ,X6 );
|
||
|
67380 QCODE(QLOADVAR , 'SX2 B5 ', QLOADVAR+1);
|
||
|
67390 OCODE(QLOADVAR+1 , 'GLDVAR ' ,O ,O ,O );
|
||
|
67400 ICODE(PLOADVAR+1 , 'SX1 B2+ ', QLOADVAR+2 ,O ,O ,X6 );
|
||
|
67410 QCODE(QLOADVAR+2 , 'SX2 B2+345', QLOADVAR+1); (*FIRSTIBOFFSET*)
|
||
|
67420 ICODE(PLOADVAR+2 , 'SX1 X3+ ', QLOADVAR+3 ,O ,O ,X6 );
|
||
|
67430 QCODE(QLOADVAR+3 , 'SX2 X3 ', QLOADVAR+1);
|
||
|
67440 OCODE(PLOADRT , 'ROUTN ' ,O ,O ,X6 );
|
||
|
67450 ICODE(PLOADRTA , 'SX1 B5+ ', QLOADRTA ,O ,O ,X6 );
|
||
|
67460 ICODE(PLOADRTA+1 , 'SX1 B2+ ', QLOADRTA ,O ,O ,X6 );
|
||
|
67470 ICODE(PLOADRTA+2 , 'SX1 X3+ ', QLOADRTA ,O ,O ,X6 );
|
||
|
67480 OCODE(QLOADRTA , 'ROUTNA ' ,O ,O ,O );
|
||
|
67490 OCODE(PLOADRTP , 'ROUTNP ' ,X0 ,O ,X6 );
|
||
|
67500 OCODE(PSCOPETT+2 , 'TASSTPT ' ,X0 ,X1 ,X6 );
|
||
|
67510 OCODE(PSCOPETT+3 , 'SCPTTP ' ,X0 ,X1 ,X6 );
|
||
|
67520 OCODE(PSCOPETT+4 , 'SCPTTM ' ,X0 ,X1 ,X6 );
|
||
|
67530 OCODE(PASSIGTT , 'TASSTS ' ,X0 ,X1 ,X6 );
|
||
|
67540 (*+61()
|
||
|
67550 OCODE(PASSIGTT+1 , 'TASSTS2 ' ,X0 ,X12,X6 );
|
||
|
67560 ()+61*)
|
||
|
67570 OCODE(PASSIGTT+2 , 'TASSTPT ' ,X0 ,X1 ,X6 );
|
||
|
67580 OCODE(PASSIGTT+3 , 'TASSTP ' ,X0 ,X1 ,X6 );
|
||
|
67590 OCODE(PASSIGTT+4 , 'TASSTM ' ,X0 ,X1 ,X6 );
|
||
|
67600 OCODE(PSCOPETN , 'SCPTNP ' ,X0 ,X1 ,X6 );
|
||
|
67610 OCODE(PASSIGTN , 'TASSNP ' ,X0 ,X1 ,X6 );
|
||
|
67620 OCODE(PSCOPENT+2 , 'SCPNTPT ' ,X0 ,X1 ,X6 );
|
||
|
67630 OCODE(PSCOPENT+3 , 'SCPNTP ' ,X0 ,X1 ,X6 );
|
||
|
67640 OCODE(PASSIGNT , 'NASSTS ' ,X0 ,X1 ,X6 );
|
||
|
67650 OCODE(PASSIGNT+1 , 'NASSTS2 ' ,X0 ,X1 ,X6 );
|
||
|
67660 OCODE(PASSIGNT+2 , 'NASSTPT ' ,X0 ,X1 ,X6 );
|
||
|
67670 OCODE(PASSIGNT+3 , 'NASSTP ' ,X0 ,X1 ,X6 );
|
||
|
67690 OCODE(PSCOPENN , 'SCPNNP ' ,X0 ,X1 ,X6 );
|
||
|
67700 OCODE(PASSIGNN , 'NASSNP ' ,X0 ,X1 ,X6 );
|
||
|
67710 ICODE(PSCOPEVAR , 'SX2 B5+ ', QSCOPEVAR ,X0 ,O ,O );
|
||
|
67720 QCODE(QSCOPEVAR , 'SX3 B5 ', QSCOPEVAR+1);
|
||
|
67730 OCODE(QSCOPEVAR+1 , 'GVSCOPE ' ,O ,O ,O );
|
||
|
67740 ICODE(PSCOPEVAR+1 , 'SX2 B2+ ', QSCOPEVAR+2 ,X0 ,O ,O );
|
||
|
67750 QCODE(QSCOPEVAR+2 , 'SX3 B2+345', QSCOPEVAR+1);
|
||
|
67760 ICODE(PSCOPEVAR+2 , 'SX2 X3+ ', QSCOPEVAR+1 ,X0 ,O ,O );
|
||
|
67770 OCODE(PSCOPEEXT , 'SCOPEXT ' ,X0 ,O ,X6 );
|
||
|
67780 ICODE(PASGVART , 'SA6 B5+ ', 0 ,X6 ,O ,O );
|
||
|
67790 ICODE(PASGVART+1 , 'SA6 B2+ ', 0 ,X6 ,O ,O );
|
||
|
67800 ICODE(PASGVART+2 , 'SA6 X3+ ', 0 ,X6 ,O ,O );
|
||
|
67810 (*+61()
|
||
|
67820 ICODE(PASGVART+3 , 'BX7 X1 ', QASGVART ,X12,O ,O );
|
||
|
67830 QCODE(QASGVART , 'SA7 B5+ ', QASGVART+1);
|
||
|
67840 QCODE(QASGVART+1 , 'BX7 X2 ', QASGVART+2);
|
||
|
67850 QCODE(QASGVART+2 , 'SA7 A7+B1 ', 0);
|
||
|
67860 ICODE(PASGVART+4 , 'BX7 X1 ', QASGVART+3 ,X12,O ,O );
|
||
|
67870 QCODE(QASGVART+3 , 'SA7 B2+ ', QASGVART+1);
|
||
|
67880 ICODE(PASGVART+5 , 'BX7 X1 ', QASGVART+4 ,X12,O ,O );
|
||
|
67890 QCODE(QASGVART+4 , 'SA7 X3+ ', QASGVART+1);
|
||
|
67900 ()+61*)
|
||
|
67910 ICODE(PASGVART+6 , 'SX1 B5+ ', QVASSTX ,X0 ,O ,O );
|
||
|
67920 OCODE(QVASSTX , 'GVASSTX ' ,O ,O ,O );
|
||
|
67930 ICODE(PASGVART+7 , 'SX1 B2+ ', QVASSTX ,X0 ,O ,O );
|
||
|
67940 ICODE(PASGVART+8 , 'SX1 X3+ ', QVASSTX ,X0 ,O ,O );
|
||
|
67950 OCODE(PIDTYREL , 'IS ' ,X0 ,X1 ,X6 );
|
||
|
67960 OCODE(PIDTYREL+1 , 'ISNT ' ,X0 ,X1 ,X6 );
|
||
|
67980 ICODE(PGETTOTCMN , 'BX1 X0 ', QGETTOTCMN ,X0 ,O ,X1 );
|
||
|
67990 QCODE(QGETTOTCMN , 'AX0 42 ', QGETTOTCMN+1);
|
||
|
68000 QCODE(QGETTOTCMN+1, 'IX1 X1+X0 ', 0);
|
||
|
68005 OCODE(PGETTOTCMN+1, 'GTOTMUL ' ,X0 ,O ,X1 );
|
||
|
68010 OCODE(PGETTOTCMN+2, 'GTOTRFR ' ,X0 ,O ,X1 );
|
||
|
68030 ICODE(PGETTOTAL , 'SA5 X1 ', QGETTOTAL ,X1 ,O ,X5 );
|
||
|
68040 QCODE(QGETTOTAL , 'AX1 42 ', QGETTOTAL+1);
|
||
|
68050 QCODE(QGETTOTAL+1 , 'SA3 X1 ', QGETTOTAL+2);
|
||
|
68060 QCODE(QGETTOTAL+2 , 'AX3 47 ', QGETTOTAL+3);
|
||
|
68070 QCODE(QGETTOTAL+3 , 'NZ X3,2* ', QGETTOTAL+4);
|
||
|
68080 OCODE(QGETTOTAL+4 , 'SAVGARB ' ,O ,O ,O );
|
||
|
68090 (*+61()
|
||
|
68100 ICODE(PGETTOTAL+1 , 'SA4 X1 ', QGETTOTAL+5 ,X1 ,O ,X45);
|
||
|
68110 QCODE(QGETTOTAL+5 , 'SA5 A4+B1 ', QGETTOTAL+1);
|
||
|
68120 ()+61*)
|
||
|
68130 OCODE(PGETTOTAL+2 , 'GTOTP ' ,X0 ,O ,X6 );
|
||
|
68140 OCODE(PGETTOTAL+3 , 'GTOTN ' ,X0 ,O ,X6 );
|
||
|
68150 OCODE(PGETTOTAL+4 , 'GTOTREF ' ,X0 ,O ,X6 );
|
||
|
68152 OCODE(PGETMULT , 'GETMULT ' ,X0 ,O ,X6 );
|
||
|
68154 OCODE(PGETMULT+1 , 'GETSLN ' ,X0 ,O ,X6 );
|
||
|
68160 OCODE(PDEREF , 'DREFS ' ,X0 ,O ,X6 );
|
||
|
68170 OCODE(PDEREF+2 , 'DREFPTR ' ,X0 ,O ,X6 );
|
||
|
68180 OCODE(PDEREF+3 , 'DREFN ' ,X0 ,O ,X6 );
|
||
|
68190 OCODE(PDEREF+4 , 'DREFM ' ,X0 ,O ,X6 );
|
||
|
68200 OCODE(PSKIP , 'SKIPS ' ,O ,O ,X6 );
|
||
|
68210 OCODE(PSKIP+1 , 'SKIPPIL ' ,O ,O ,X6 );
|
||
|
68220 OCODE(PSKIPSTRUCT , 'SKIPSTR ' ,O ,O ,X6 );
|
||
|
68230 OCODE(PNIL , 'NILP ' ,O ,O ,X6 );
|
||
|
68240 ICODE(PVOIDNORMAL , 'SA3 X1 ', QVOIDNM ,X1 ,O ,O );
|
||
|
68250 QCODE(QVOIDNM , 'AX3 47 ', QVOIDNM1);
|
||
|
68260 QCODE(QVOIDNM1 , 'NZ X3,3* ', QVOIDNM2);
|
||
|
68270 QCODE(QVOIDNM2 , 'SX0 A3 ', QVOIDNM3);
|
||
|
68280 OCODE(QVOIDNM3 , 'GARBAGE ' ,O ,O ,O );
|
||
|
68290 ICODE(PVOIDNAKED , 'LX1 18 ', PVOIDNORMAL ,X1 ,O ,O );
|
||
|
68300 ICODE(PWIDEN , 'PX1 X1 ', QWIDEN ,X1 ,O ,X1 );
|
||
|
68310 QCODE(QWIDEN , 'NX1 X1 ', 0);
|
||
|
68320 OCODE(PWIDEN+2 , 'WIDREAL ' ,X0 ,O ,X6 );
|
||
|
68330 OCODE(PWIDEN+4 , 'WIDCHAR ' ,X0 ,O ,X6 );
|
||
|
68340 OCODE(PWIDEN+5 , 'WIDBITS ' ,X0 ,O ,X6 );
|
||
|
68350 OCODE(PWIDEN+6 , 'WIDBYTS ' ,X0 ,O ,X6 );
|
||
|
68360 OCODE(PWIDEN+7 , 'WIDSTR ' ,X0 ,O ,X6 );
|
||
|
68370 OCODE(PROWNONMULT , 'ROWNM ' ,X0 ,O ,X6 );
|
||
|
68380 OCODE(PROWMULT , 'ROWM ' ,X0 ,O ,X6 );
|
||
|
68390 ICODE(PCALL , 'SX1 B0+ ', QCALL ,SNS,O ,O );
|
||
|
68400 QCODE(QCALL , 'SA5 X6 ', QCALL+1);
|
||
|
68410 QCODE(QCALL+1 , 'AX6 42 ', QCALL+2);
|
||
|
68420 QCODE(QCALL+2 , 'SB7 X5 ', QCALL+3);
|
||
|
68430 QCODE(QCALL+3 , 'SX7 2* ', QCALL+4);
|
||
|
68440 QCODE(QCALL+4 , 'JP B7 ', 0);
|
||
|
68450 ICODE(PCALLA , 'SX6 B5+ ', QCALLA ,SNS,O ,O );
|
||
|
68460 ICODE(PCALLA+1 , 'SX6 B2+ ', QCALLA ,SNS,O ,O );
|
||
|
68470 ICODE(PCALLA+2 , 'SX6 X3+ ', QCALLA ,SNS,O ,O );
|
||
|
68480 QCODE(QCALLA , 'SA5 X2 ', QCALLA+1);
|
||
|
68490 QCODE(QCALLA+1 , 'SB7 X5 ', QCALLA+2);
|
||
|
68500 QCODE(QCALLA+2 , 'SX7 2* ', QCALLA+3);
|
||
|
68510 QCODE(QCALLA+3 , 'JP B7 ', 0);
|
||
|
68520 ICODE(PRNSTART , 'SA6 B6 ', QRNSTART ,O ,O ,O );
|
||
|
68530 QCODE(QRNSTART , 'BX3 X7 ', QRNSTART+1);
|
||
|
68540 QCODE(QRNSTART+1 , 'SX4 B0+ ', QRNSTART+2);
|
||
|
68550 OCODE(QRNSTART+2 , 'RNSTART ' ,O ,O ,O );
|
||
|
68560 OCODE(PRETURN , 'RETURN ' ,XN ,O ,O );
|
||
|
68570 OCODE(PGBSTK , 'GBSTK ' ,O ,O ,O );
|
||
|
68580 OCODE(PGETOUT , 'GETOUT ' ,O ,O ,O );
|
||
|
68590 ICODE(PSETIB , 'SB5 X6 ', QSETIB ,O ,O ,O );
|
||
|
68600 QCODE(QSETIB , 'LX6 18 ', QSETIB+1);
|
||
|
68610 QCODE(QSETIB+1 , 'SB6 X6 ', 0);
|
||
|
68620 OCODE(PLEAPGEN , 'GENSTR ' ,O ,O ,X6 );
|
||
|
68630 OCODE(PLEAPGEN+1 , 'HEAPSTR ' ,O ,O ,X6 );
|
||
|
68640 OCODE(PLEAPGEN+2 , 'GENRSTR ' ,O ,O ,X6 );
|
||
|
68650 OCODE(PLEAPGEN+3 , 'GENMUL ' ,X0 ,O ,X6 );
|
||
|
68660 OCODE(PLEAPGEN+4 , 'HEAPMUL ' ,X0 ,O ,X6 );
|
||
|
68670 OCODE(PLEAPGEN+5 , 'GENRMUL ' ,X0 ,O ,X6 );
|
||
|
68680 OCODE(PPREPSTRDISP, 'PCOLLST ' ,O ,O ,X6 );
|
||
|
68690 OCODE(PPREPROWDISP, 'PCOLLR ' ,STS,O ,X6 );
|
||
|
68700 OCODE(PPREPROWDISP+1,'PCOLLRM ' ,STS,O ,X6 );
|
||
|
68710 OCODE(PCOLLCHECK , 'PCOLLCK ' ,X0 ,O ,X6 );
|
||
|
68720 (**)
|
||
|
68730 END;
|
||
|
68740 PROCEDURE THIRDPART;
|
||
|
68750 BEGIN
|
||
|
68760 ICODE(PCOLLTOTAL , 'SA4 B6-B1 ', QCOLLTOTAL ,ST ,X6 ,ST );
|
||
|
68770 QCODE(QCOLLTOTAL , 'SA6 X4+ ', 0);
|
||
|
68780 ICODE(PCOLLTOTAL+2, 'SA4 X6 ', QCOLLTOTAL+1 ,ST ,X6 ,ST );
|
||
|
68790 QCODE(QCOLLTOTAL+1, 'SX7 B1 ', QCOLLTOTAL+2);
|
||
|
68800 QCODE(QCOLLTOTAL+2, 'LX7 47 ', QCOLLTOTAL+3);
|
||
|
68810 QCODE(QCOLLTOTAL+3, 'IX7 X4+X7 ', QCOLLTOTAL+4);
|
||
|
68820 QCODE(QCOLLTOTAL+4, 'SA7 A4 ', PCOLLTOTAL);
|
||
|
68830 OCODE(PCOLLTOTAL+3, 'COLLTP ' ,X0 ,X1 ,X6 );
|
||
|
68840 OCODE(PCOLLTOTAL+4, 'COLLTM ' ,X0 ,X1 ,X6 );
|
||
|
68850 OCODE(PCOLLNAKED , 'COLLNP ' ,X0 ,X1 ,X6 );
|
||
|
68860 ICODE(PNAKEDPTR , 'LX1 18 ', QNAKEDPTR ,X1 ,O ,X6 );
|
||
|
68862 QCODE(QNAKEDPTR , 'SX6 X1 ', 0);
|
||
|
68870 ICODE(PLINE , 'SX7 B0+ ', QLINE ,O ,O ,O );
|
||
|
68880 QCODE(QLINE , 'SA7 B5+9 ', 0);
|
||
|
68890 OCODE(PENDSLICE , 'ENDSL ' ,X0 ,O ,X0 );
|
||
|
68900 OCODE(PTRIM , 'SLICEA ' ,STP,O ,O );
|
||
|
68910 OCODE(PTRIM+1 , 'SLICEB ' ,STP,O ,O );
|
||
|
68920 OCODE(PTRIM+2 , 'SLICEC ' ,STP,O ,O );
|
||
|
68930 OCODE(PTRIM+3 , 'SLICED ' ,STP,O ,O );
|
||
|
68940 OCODE(PTRIM+4 , 'SLICEE ' ,STP,O ,O );
|
||
|
68950 OCODE(PTRIM+5 , 'SLICEF ' ,STP,O ,O );
|
||
|
68960 OCODE(PTRIM+6 , 'SLICEG ' ,STP,O ,O );
|
||
|
68970 OCODE(PTRIM+7 , 'SLICEH ' ,STP,O ,O );
|
||
|
68980 OCODE(PTRIM+8 , 'SLICEI ' ,STP,O ,O );
|
||
|
68990 OCODE(PTRIM+9 , 'SLICEJ ' ,STP,O ,O );
|
||
|
69000 ICODE(PJMP , 'EQ B0, ', 0 ,O ,O ,O );
|
||
|
69010 ICODE(PDUP1ST , 'SA1 B6-B1 ', 0 ,STP,O ,X1 );
|
||
|
69010 ICODE(PDUP1PILE , 'SA1 B6-B1 ', 0 ,STP,O ,X1 );
|
||
|
69020 ICODE(PDUP2ND , 'SA1 B6-B1 ', 0 ,STP,X5P,X1 );
|
||
|
69020 ICODE(PDUP2PILE , 'SA1 B6-B1 ', 0 ,STP,X5P,X1 );
|
||
|
69030 (*+61() ICODE(PDUP2ND+1 , 'SA1 B6-B1 ', 0 ,STP,X45,X1 ); ()+61*)
|
||
|
69040 ICODE(PDATALIST , 'SX7 B0+ ', QPUSH+1 ,SNS,O ,SDL);
|
||
|
69050 OCODE(PHOIST , 'HOIST ' ,O ,O ,O );
|
||
|
69060 ICODE(PSTATICLINK , 'SX6 B5 ', 0 ,O ,O ,O );
|
||
|
69070 ICODE(PASP , 'SB6 B6- ', 0 ,O ,O ,O );
|
||
|
69080 ICODE(PLOADX5 , 'SA5 B5+ ', 0 ,O ,O ,O );
|
||
|
69090 ICODE(PLOADX5+1 , 'SA5 B2+ ', 0 ,O ,O ,O );
|
||
|
69100 ICODE(PLOADX5+2 , 'SA5 X3+ ', 0 ,O ,O ,O );
|
||
|
69110 ICODE(PLOADX5IM , 'SX5 B0+ ', 0 ,O ,O ,X5 );
|
||
|
69120 ICODE(PLOADX5IM+1 , 'SA5 B0+ ', 0 ,O ,O ,O );
|
||
|
69130 ICODE(PPUSH , 'SA4 B5+ ', QPUSH ,O ,O ,O );
|
||
|
69140 QCODE(QPUSH , 'BX7 X4 ', QPUSH+1);
|
||
|
69150 QCODE(QPUSH+1 , 'SA7 B6 ', QPUSH+2);
|
||
|
69160 QCODE(QPUSH+2 , 'SB6 B6+B1 ', 0);
|
||
|
69170 ICODE(PPUSH+1 , 'SA4 B2+ ', QPUSH ,O ,O ,O );
|
||
|
69180 ICODE(PPUSH+2 , 'SA4 X3+ ', QPUSH ,O ,O ,O );
|
||
|
69190 ICODE(PPUSHIM , 'SX7 B0+ ', QPUSH+1 ,O ,O ,ST );
|
||
|
69200 ICODE(PPUSHIM+1 , 'SA4 B0+ ', QPUSH ,O ,O ,O );
|
||
|
69210 ICODE(PLOADX0 , 'SA4 B5+ ', QLOADX0 ,O ,O ,O );
|
||
|
69220 QCODE(QLOADX0 , 'BX0 X4 ', 0);
|
||
|
69230 ICODE(PLOADX0+1 , 'SA4 B2+ ', QLOADX0 ,O ,O ,O );
|
||
|
69240 ICODE(PLOADX0+2 , 'SA4 X3+ ', QLOADX0 ,O ,O ,O );
|
||
|
69250 ICODE(PLOADX1 , 'SA1 B5+ ', 0 ,O ,O ,O );
|
||
|
69260 ICODE(PLOADX1+1 , 'SA1 B2+ ', 0 ,O ,O ,O );
|
||
|
69270 ICODE(PLOADX1+2 , 'SA1 X3+ ', 0 ,O ,O ,O );
|
||
|
69280 ICODE(PLOADX6 , 'SA4 B5+ ', QLOADX6 ,O ,O ,O );
|
||
|
69290 QCODE(QLOADX6 , 'BX6 X4 ', 0);
|
||
|
69300 ICODE(PLOADX6+1 , 'SA4 B2+ ', QLOADX6 ,O ,O ,O );
|
||
|
69310 ICODE(PLOADX6+2 , 'SA4 X3+ ', QLOADX6 ,O ,O ,O );
|
||
|
69320 ICODE(PLOADX0IM , 'SX0 B0+ ', 0 ,O ,O ,X0 );
|
||
|
69330 ICODE(PLOADX0IM+1 , 'SA4 B0+ ', QLOADX0 ,O ,O ,O );
|
||
|
69340 ICODE(PLOADX1IM , 'SX1 B0+ ', 0 ,O ,O ,X1 );
|
||
|
69350 ICODE(PLOADX1IM+1 , 'SA1 B0+ ', 0 ,O ,O ,O );
|
||
|
69360 ICODE(PLOADX2IM , 'SX2 B0+ ', 0 ,O ,O ,O );
|
||
|
69370 ICODE(PLOADX2IM+1 , 'SA2 B0+ ', 0 ,O ,O ,O );
|
||
|
69380 ICODE(PLOADX3IM , 'SX3 B0+ ', 0 ,O ,O ,O );
|
||
|
69390 ICODE(PLOADX3IM+1 , 'SA3 B0+ ', 0 ,O ,O ,O );
|
||
|
69400 ICODE(PLOADX4IM , 'SX4 B0+ ', 0 ,O ,O ,O );
|
||
|
69410 ICODE(PLOADX4IM+1 , 'SA4 B0+ ', 0 ,O ,O ,O );
|
||
|
69420 ICODE(PLOADX6IM , 'SX6 B0+ ', 0 ,O ,O ,X6 );
|
||
|
69430 ICODE(PLOADX6IM+1 , 'SA4 B0+ ', QLOADX6 ,O ,O ,O );
|
||
|
69440 ICODE(PPOPTOX0 , 'SB6 B6-B1 ', QPOPX0 ,O ,O ,O );
|
||
|
69450 QCODE(QPOPX0 , 'SA4 B6 ', QLOADX0);
|
||
|
69460 ICODE(PPOPTOX1 , 'SB6 B6-B1 ', QPOPX1 ,O ,O ,O );
|
||
|
69470 QCODE(QPOPX1 , 'SA1 B6 ', 0);
|
||
|
69480 ICODE(PPOPTOX6 , 'SB6 B6-B1 ', QPOPTOX6 ,O ,O ,O );
|
||
|
69490 QCODE(QPOPTOX6 , 'SA4 B6 ', QLOADX6);
|
||
|
69500 ICODE(PX5TOX0 , 'BX0 X5 ', 0 ,X5 ,O ,X0 );
|
||
|
69510 ICODE(PX5TOX1 , 'BX1 X5 ', 0 ,X5 ,O ,X1 );
|
||
|
69520 ICODE(PX5TOX6 , 'BX6 X5 ', 0 ,X5 ,O ,X6 );
|
||
|
69530 ICODE(PPUSHX6 , 'SA6 B6 ', QPUSH+2 ,X6 ,O ,O );
|
||
|
69540 ICODE(PX6TOX5 , 'BX5 X6 ', 0 ,X6 ,O ,X5 );
|
||
|
69550 ICODE(PX6TOX0 , 'BX0 X6 ', 0 ,X6 ,O ,X0 );
|
||
|
69560 ICODE(PX6TOX1 , 'BX1 X6 ', 0 ,X6 ,O ,X1 );
|
||
|
69570 ICODE(PPUSHX5 , 'BX7 X5 ', QPUSH+1 ,X5 ,O ,O );
|
||
|
69580 ICODE(PPOPTOX5 , 'SB6 B6-B1 ', QPOP1 ,O ,O ,O );
|
||
|
69590 QCODE(QPOP1 , 'SA5 B6 ', 0);
|
||
|
69600 ICODE(PPUSHX0 , 'BX7 X0 ', QPUSH+1 ,X0 ,O ,O );
|
||
|
69610 ICODE(PPUSHX1 , 'BX7 X1 ', QPUSH+1 ,X1 ,O ,O );
|
||
|
69620 ICODE(PX1TOX5 , 'BX5 X1 ', 0 ,X1 ,O ,X5 );
|
||
|
69630 ICODE(PX1TOX6 , 'BX6 X1 ', 0 ,X1 ,O ,X6 );
|
||
|
69640 ICODE(PX1TOX0 , 'BX0 X1 ', 0 ,X1 ,O ,X0 );
|
||
|
69650 ICODE(PSWAP , 'BX3 X1 ', QSWAP ,O ,O ,O );
|
||
|
69660 QCODE(QSWAP , 'BX1 X5 ', QSWAP1);
|
||
|
69670 QCODE(QSWAP1 , 'BX5 X3 ', 0);
|
||
|
69680 (*+61()
|
||
|
69690 ICODE(PPUSH2 , 'SA3 B5+ ', QPUSH2 ,O ,O ,O );
|
||
|
69700 QCODE(QPUSH2 , 'BX7 X3 ', QPUSH2+1);
|
||
|
69710 QCODE(QPUSH2+1 , 'SA7 B6 ', QPUSH2+2);
|
||
|
69720 QCODE(QPUSH2+2 , 'SA3 A3+B1 ', QPUSH2+3);
|
||
|
69730 QCODE(QPUSH2+3 , 'BX7 X3 ', QPUSH2+4);
|
||
|
69740 QCODE(QPUSH2+4 , 'SA7 A7+B1 ', QPUSH2+5);
|
||
|
69750 QCODE(QPUSH2+5 , 'SB6 A7+B1 ', 0);
|
||
|
69760 ICODE(PPUSH2+1 , 'SA3 B2+ ', QPUSH2 ,O ,O ,O );
|
||
|
69770 ICODE(PPUSH2+2 , 'SA3 X3+ ', QPUSH2 ,O ,O ,O );
|
||
|
69780 ICODE(PLOADX12 , 'SA1 B5+ ', QLOADX12 ,O ,O ,O );
|
||
|
69790 QCODE(QLOADX12 , 'SA2 A1+B1 ', 0);
|
||
|
69800 ICODE(PLOADX12+1 , 'SA1 B2+ ', QLOADX12 ,O ,O ,O );
|
||
|
69810 ICODE(PLOADX12+2 , 'SA1 X3+ ', QLOADX12 ,O ,O ,O );
|
||
|
69820 ICODE(PLOADX45 , 'SA4 B5+ ', QLOADX45 ,O ,O ,O );
|
||
|
69830 QCODE(QLOADX45 , 'SA5 A4+B1 ', 0);
|
||
|
69840 ICODE(PLOADX45+1 , 'SA4 B2+ ', QLOADX45 ,O ,O ,O );
|
||
|
69850 ICODE(PLOADX45+2 , 'SA4 X3+ ', QLOADX45 ,O ,O ,O );
|
||
|
69860 ICODE(PPUSHX12 , 'BX7 X1 ', QPUSHX12 ,O ,O ,O );
|
||
|
69870 QCODE(QPUSHX12 , 'SA7 B6 ', QPUSHX12+1);
|
||
|
69880 QCODE(QPUSHX12+1 , 'BX7 X2 ', QPUSH2+4);
|
||
|
69890 ICODE(PPUSHX45 , 'BX7 X4 ', QPUSHX45 ,O ,O ,O );
|
||
|
69900 QCODE(QPUSHX45 , 'SA7 B6 ', QPUSHX45+1);
|
||
|
69910 QCODE(QPUSHX45+1 , 'BX7 X5 ', QPUSH2+4);
|
||
|
69920 ICODE(PPOPTOX12 , 'SA2 B6-B1 ', QPOPTOX12 ,O ,O ,O );
|
||
|
69930 QCODE(QPOPTOX12 , 'SA1 A2-B1 ', QPOPTOX12+1);
|
||
|
69940 QCODE(QPOPTOX12+1 , 'SB6 A1 ', 0);
|
||
|
69950 ICODE(PPOPTOX45 , 'SA5 B6-B1 ', QPOPTOX45 ,O ,O ,O );
|
||
|
69960 QCODE(QPOPTOX45 , 'SA4 A5-B1 ', QPOPTOX45+1);
|
||
|
69970 QCODE(QPOPTOX45+1 , 'SB6 A4 ', 0);
|
||
|
69980 ICODE(PX12TOX45 , 'BX4 X1 ', QX12TOX45 ,O ,O ,O );
|
||
|
69990 QCODE(QX12TOX45 , 'BX5 X2 ', 0);
|
||
|
70000 ICODE(PX45TOX12 , 'BX1 X4 ', QX45TOX12 ,O ,O ,O );
|
||
|
70010 QCODE(QX45TOX12 , 'BX2 X5 ', 0);
|
||
|
70020 ()+61*)
|
||
|
70030 ICODE(PDECM , 'SX7 B0+ ', 0 ,O ,O ,O );
|
||
|
70040 ICODE(PDECM+1 , 'SA3 B5+ ', QDECM ,O ,O ,O );
|
||
|
70050 QCODE(QDECM , 'MX4 25 ', QDECM+1);
|
||
|
70060 QCODE(QDECM+1 , 'BX3 -X4*X3', QDECM+2);
|
||
|
70070 QCODE(QDECM+2 , 'LX7 35 ', QDECM+3);
|
||
|
70080 QCODE(QDECM+3 , 'BX7 X3+X7 ', QDECM+4);
|
||
|
70090 QCODE(QDECM+4 , 'SA7 A3 ', 0);
|
||
|
70100 END;
|
||
|
70110 (* *** CHANGES TO BE MADE ON PERQ *** *)
|
||
|
70120 (* PPARM , PPARM+1, PLOADRTA, PDECM *)
|
||
|
70130 (* PCALLA, PRANGENT, PDCLINIT *)
|
||
|
70140 PROCEDURE INITPOPARRAY;
|
||
|
70150 VAR I, J:SBTTYP;
|
||
|
70160 BEGIN
|
||
|
70170 FOR I := SBTSTK TO SBTX1 DO
|
||
|
70180 FOR J:= SBTVOID TO SBTX1 DO POPARRAY [I, J] := PNONE;
|
||
|
70190 FOR I := SBTSTK TO SBTX1 DO
|
||
|
70200 BEGIN
|
||
|
70210 POPARRAY [I,I] := PNOOP;
|
||
|
70220 POPARRAY [I,SBTVOID] := PNOOP;
|
||
|
70230 POPARRAY [I,SBTVAR] := PLOADVAR;
|
||
|
70240 POPARRAY [I,SBTPROC] := PLOADRTA;
|
||
|
70250 POPARRAY [I,SBTRPROC]:= PLOADRTA;
|
||
|
70260 END;
|
||
|
70270 (*+61()
|
||
|
70280 POPARRAY [SBTSTK , SBTSTK2 ] := PVARLISTEND+1;
|
||
|
70290 POPARRAY [SBTX12 , SBTX1 ] := PNOOP;
|
||
|
70300 POPARRAY [SBTSTK , SBTX12 ] := PPUSHX1;
|
||
|
70310 POPARRAY [SBTSTK , SBTX45 ] := PPUSHX5;
|
||
|
70320 POPARRAY [SBTSTK2 , SBTID ] := PPUSH2;
|
||
|
70330 POPARRAY [SBTSTK2 , SBTIDV ] := PPUSH2;
|
||
|
70340 POPARRAY [SBTSTK2 , SBTX12 ] := PPUSHX12;
|
||
|
70350 POPARRAY [SBTSTK2 , SBTX45 ] := PPUSHX45;
|
||
|
70360 POPARRAY [SBTX12 , SBTID ] := PLOADX12;
|
||
|
70370 POPARRAY [SBTX12 , SBTIDV ] := PLOADX12;
|
||
|
70380 POPARRAY [SBTX12 , SBTSTK2 ] := PPOPTOX12;
|
||
|
70390 POPARRAY [SBTX12 , SBTX45 ] := PX45TOX12;
|
||
|
70400 POPARRAY [SBTX45 , SBTID ] := PLOADX45;
|
||
|
70410 POPARRAY [SBTX45 , SBTIDV ] := PLOADX45;
|
||
|
70420 POPARRAY [SBTX45 , SBTSTK2 ] := PPOPTOX45;
|
||
|
70430 POPARRAY [SBTX45 , SBTX12 ] := PX12TOX45;
|
||
|
70440 ()+61*)
|
||
|
70450 POPARRAY [SBTSTK , SBTID ] := PPUSH;
|
||
|
70460 POPARRAY [SBTSTK , SBTIDV ] := PPUSH;
|
||
|
70470 POPARRAY [SBTSTK , SBTLIT ] := PPUSHIM;
|
||
|
70480 POPARRAY [SBTSTK , SBTDEN ] := PPUSHIM;
|
||
|
70490 POPARRAY [SBTSTK , SBTX5 ] := PPUSHX5;
|
||
|
70500 POPARRAY [SBTSTK , SBTX6 ] := PPUSHX6;
|
||
|
70510 POPARRAY [SBTSTK , SBTX0 ] := PPUSHX0;
|
||
|
70520 POPARRAY [SBTSTK , SBTX1 ] := PPUSHX1;
|
||
|
70530 POPARRAY [SBTX5 , SBTID ] := PLOADX5;
|
||
|
70540 POPARRAY [SBTX5 , SBTIDV ] := PLOADX5;
|
||
|
70550 POPARRAY [SBTX5 , SBTLIT ] := PLOADX5IM;
|
||
|
70560 POPARRAY [SBTX5 , SBTDEN ] := PLOADX5IM;
|
||
|
70570 POPARRAY [SBTX5 , SBTSTK ] := PPOPTOX5;
|
||
|
70580 POPARRAY [SBTX5 , SBTX6 ] := PX6TOX5;
|
||
|
70590 POPARRAY [SBTX5 , SBTX1 ] := PX1TOX5;
|
||
|
70600 POPARRAY [SBTX6 , SBTID ] := PLOADX6;
|
||
|
70610 POPARRAY [SBTX6 , SBTIDV ] := PLOADX6;
|
||
|
70620 POPARRAY [SBTX6 , SBTLIT ] := PLOADX6IM;
|
||
|
70630 POPARRAY [SBTX6 , SBTDEN ] := PLOADX6IM;
|
||
|
70640 POPARRAY [SBTX6 , SBTSTK ] := PPOPTOX6;
|
||
|
70650 POPARRAY [SBTX6 , SBTX5 ] := PX5TOX6;
|
||
|
70660 POPARRAY [SBTX6 , SBTX1 ] := PX1TOX6;
|
||
|
70670 POPARRAY [SBTX0 , SBTID ] := PLOADX0;
|
||
|
70680 POPARRAY [SBTX0 , SBTIDV ] := PLOADX0;
|
||
|
70690 POPARRAY [SBTX0 , SBTLIT ] := PLOADX0IM;
|
||
|
70700 POPARRAY [SBTX0 , SBTDEN ] := PLOADX0IM;
|
||
|
70710 POPARRAY [SBTX0 , SBTSTK ] := PPOPTOX0;
|
||
|
70720 POPARRAY [SBTX0 , SBTX5 ] := PX5TOX0;
|
||
|
70730 POPARRAY [SBTX0 , SBTX6 ] := PX6TOX0;
|
||
|
70740 POPARRAY [SBTX0 , SBTX1 ] := PX1TOX0;
|
||
|
70750 POPARRAY [SBTX1 , SBTID ] := PLOADX1;
|
||
|
70760 POPARRAY [SBTX1 , SBTIDV ] := PLOADX1;
|
||
|
70770 POPARRAY [SBTX1 , SBTLIT ] := PLOADX1IM;
|
||
|
70780 POPARRAY [SBTX1 , SBTDEN ] := PLOADX1IM;
|
||
|
70790 POPARRAY [SBTX1 , SBTSTK ] := PPOPTOX1;
|
||
|
70800 POPARRAY [SBTX1 , SBTX5 ] := PX5TOX1;
|
||
|
70810 POPARRAY [SBTX1 , SBTX6 ] := PX6TOX1;
|
||
|
70820 END;
|
||
|
70830 PROCEDURE INITLENARRAY;
|
||
|
70840 VAR I: SBTTYP;
|
||
|
70850 BEGIN
|
||
|
70860 FOR I := SBTSTK TO SBTX1 DO LENARRAY[I] := 0;
|
||
|
70870 LENARRAY[SBTSTK ] := SZWORD;
|
||
|
70880 (*+61()
|
||
|
70890 LENARRAY[SBTSTK2] := 2*SZWORD;
|
||
|
70900 LENARRAY[SBTX12 ] := 2*SZWORD;
|
||
|
70910 LENARRAY[SBTX45 ] := 2*SZWORD;
|
||
|
70920 ()+61*)
|
||
|
70930 LENARRAY[SBTX5 ] := SZWORD;
|
||
|
70940 LENARRAY[SBTX6 ] := SZWORD;
|
||
|
70950 LENARRAY[SBTX0 ] := SZWORD;
|
||
|
70960 LENARRAY[SBTX1 ] := SZWORD;
|
||
|
70970 END;
|
||
|
70980 PROCEDURE INITREGISTERS;
|
||
|
70990 VAR I: SBTTYP;
|
||
|
71000 BEGIN
|
||
|
71010 FOR I := SBTVOID TO SBTX1 DO REGISTERS[I] := [];
|
||
|
71020 REGISTERS[SBTDL ] := [SBTX1];
|
||
|
71030 REGISTERS[SBTX5 ] := [SBTX5];
|
||
|
71040 REGISTERS[SBTX6 ] := [SBTX6];
|
||
|
71050 REGISTERS[SBTX0 ] := [SBTX0];
|
||
|
71060 REGISTERS[SBTX1 ] := [SBTX1];
|
||
|
71070 (*+61()
|
||
|
71080 REGISTERS[SBTX12 ] := [SBTX1]; (*THERE IS NO SBTX2+)
|
||
|
71090 REGISTERS[SBTX45 ] := [SBTX5]; (*THERE IS NO SBTX4+)
|
||
|
71100 ()+61*)
|
||
|
71110 END;
|
||
|
71120 BEGIN (*INITCODES*)
|
||
|
71130 FIRSTPART; SECONDPART; THIRDPART; INITPOPARRAY; INITLENARRAY; INITREGISTERS;
|
||
|
71140 END;
|
||
|
71150 (**)
|
||
|
71160 (**)
|
||
|
71170 (**)
|
||
|
71180 (**)
|
||
|
71190 (**)
|
||
|
71200 BEGIN
|
||
|
71210 LINELIMIT(OUTPUT,10000); LINELIMIT(LSTFILE,10000);
|
||
|
71220 DUMP(FIRSTSTACK);
|
||
|
71230 (*-01() DUMP(FIRSTSTACK,LASTSTACK); ()-01*)
|
||
|
71240 END (*$G-*) .
|
||
|
####S
|