Initial revision
This commit is contained in:
716
lang/a68s/aem/perqcod.p
Normal file
716
lang/a68s/aem/perqcod.p
Normal file
@@ -0,0 +1,716 @@
|
||||
40000 (* COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER *)
|
||||
40001 THINGS NEEDING ATTENTION
|
||||
40002 CHECK THE START OF THE LOCAL POPS
|
||||
40003 ATTEND TO PDUP1PILE AND P2DUP2PILE
|
||||
40010 (**)
|
||||
40020 (**)
|
||||
40040 (*+05()
|
||||
40050 (*+86()
|
||||
40100 (*************************)
|
||||
40110 (* MEANING OF PARAMTYPES *)
|
||||
40120 (*************************)
|
||||
40130 (**)
|
||||
40140 (* OPX - OPERAND SUPPLIED BY CODE GENERATOR
|
||||
40150 ONX - NEGATIVE OF OPERAND SUPPLIED BY CODE GENERATOR
|
||||
40160 LCX - LOCAL INSTRUCTION LABEL
|
||||
40170 GBX - GLOBAL INSTRUCTION LABEL
|
||||
40180 WOP - OPERAND SUPPLIED BY CODETABLE
|
||||
40190 WNP - NEGATIVE OF OPERAND SUPPLIED BY CODETABLE
|
||||
40200 NON - NO OPERAND
|
||||
40210 JMP - FORWARD JUMP WITHIN CODETABLE
|
||||
40220 ANP - AS WNP, BUT PROVIDES LAST OPERAND FOR AN OCODE
|
||||
40230 ACP - AS WOP, BUT DITTO
|
||||
40240 ACX - AS OPX, BUT DITTO
|
||||
40250 ANX - AS ONX, BUT DITTO
|
||||
40252 MOR - LONG OPERAND TO BE FOUND IN THE NEXT OPCOD
|
||||
40260 *)
|
||||
40270 (**)
|
||||
46726 (**)
|
||||
46728 PROCEDURE INITCODES;
|
||||
46730 (*INITIALISES CODETABLE+)
|
||||
46732 CONST
|
||||
46734 (**)
|
||||
46736 PLOADRTA(*3*)=194; PDEPROC=197;
|
||||
46737 PLOADE(*3*)=198; PLOADEIM(*2*)=201; PETOSTK(*3*)=203; PS4TOS2=206; PPUSHIM2(*2*)=207;
|
||||
46738 PPUSHFSTK=209; PPUSHFSTK1=210; PLOADF=211; PLOADF1=212; QPUSHIM2(*2*)=213;
|
||||
46739 PLOADFIM=215; PLOADFIM1=216; PLOADFSTK=217; PLOADFSTK1=218; PSTOS4=219; PPUSHF=220; PPUSHF1=221;
|
||||
46740 PF0TOF1=222; PF1TOF0=223; PPUSH2(*3*)=224; PSTOS2=227; PPUSHER0=228; PLOADER0F0=229; PLOADER0F1=230;
|
||||
46741 PLOADER0STK=231; QPUSHER0(*2*)=232; QLPINIT(*8*)=234; QDIV(*2*)=242; QCALL(*8*)=244;
|
||||
46742 QABSI(*7*)=252;
|
||||
46743 QRNSTART=259; QHOIST(*3*)=260; QSCOPEVAR(*6*)=263; QENVCHAIN=269;
|
||||
46744 QIPUSH=270; QODD=271; QLEBT(*2*)=272; QLINE=274; QDATALIST=275; QGETPROC(*4*)=276;
|
||||
46745 QNOTB=280; QPUSH1=281; QCAS(*3*)=282;
|
||||
46746 QLOOPINCR(*6*)=285; QDCLSP(*4*)=291; QDCLINIT(*2*)=295;
|
||||
46747 QELMBT(*5*)=297; QDUP1ST=302; QDUP2ND=303;
|
||||
46748 QASGVART(*3*)=304; QRANGENT(*2*)=307;
|
||||
46749 QNAKEDPTR=309; QLOADI=310; QADJSP2=311; QSTKTOE(*3+)=312; QADJSP4=315;
|
||||
46750 QLOADF=316; QLOADF1=317; QLOADVAR(*6*)=318; QPUSH2(*4*)=324;
|
||||
46751 QLOADRTA(*2*)=328; QCFSTRNG(*2*)=330; QRANGEXT(*3*)=332; QCALLA(*4*)=335;
|
||||
46752 QSETIB=339; QSELECT(*3*)=340; (*SPARE(3)=343;*) QCOLLTOTAL(*11*)=346;
|
||||
46753 QETOSTK(*6*)=357; QGETTOTAL(*5*)=363; (*SPARE(7)=368;*) QHEAVE(*6*)=375; QLOADER0STK(*6*)=381;
|
||||
46754 QGETTOTCMN(*4*)=387; (*SPARE=391..400*)
|
||||
46755 ST=SBTSTK; STP=SBTSTK; STS=SBTSTK;
|
||||
46756 ST4=SBTSTK4; S4P=SBTSTK4; S4S=SBTSTK4;
|
||||
46758 STN=SBTSTKN; SNP=SBTSTKN; SNS=SBTSTKN;
|
||||
46760 PR1=SBTPR1; PR2=SBTPR2;
|
||||
46761 FP0=SBTFPR0; FP1=SBTFPR1; FP2=SBTFPR2; FP3=SBTFPR3; F0P=SBTFPR0;
|
||||
46764 XN=SBTXN;
|
||||
46770 O=SBTVOID; SDL=SBTDL; E=SBTE; ER0=SBTER0;
|
||||
46780 (*+)
|
||||
46790 PROCEDURE ICODE(OPCOD:POP;PERQCODE:MNEMONICS;TYP:PARAMTYPES;PM:INTEGER;PNXT:POP;VP1,VP2,VPR: SBTTYP);
|
||||
46800 BEGIN
|
||||
46810 WITH CODETABLE[OPCOD] DO
|
||||
46820 BEGIN
|
||||
46830 INLINE := TRUE;
|
||||
46840 PERQCOD := PERQCODE;
|
||||
46850 P1 := VP1;
|
||||
46860 P2 := VP2;
|
||||
46870 PR := VPR;
|
||||
46880 NEXT := PNXT;
|
||||
46890 PARTYP := TYP;
|
||||
46900 PARM := PM;
|
||||
46930 END;
|
||||
46950 END;
|
||||
46960 (*+)
|
||||
46970 PROCEDURE QCODE(OPCOD:POP;PERQCODE:MNEMONICS;TYP:PARAMTYPES;PM:INTEGER;PNXT:POP);
|
||||
46980 BEGIN
|
||||
46990 ICODE(OPCOD,PERQCODE,TYP,PM,PNXT,O,O,O);
|
||||
47000 END;
|
||||
47010 (*+)
|
||||
47020 PROCEDURE OCODE(OPCOD:POP;PROUTINE:ALFA;VP1,VP2,VPR:SBTTYP);
|
||||
47030 VAR I:INTEGER;
|
||||
47040 BEGIN
|
||||
47050 WITH CODETABLE[OPCOD] DO
|
||||
47060 BEGIN
|
||||
47070 INLINE := FALSE;
|
||||
47080 P1 := VP1;
|
||||
47090 P2 := VP2;
|
||||
47100 PR := VPR;
|
||||
47110 IF (P1=O) AND (P2 <> O) THEN WRITELN(OUTPUT,'FAILED OCODE-A');
|
||||
47120 FOR I := 1 TO 7 DO
|
||||
47124 ROUTINE[I] := PROUTINE[I];
|
||||
47130 END;
|
||||
47140 END;
|
||||
47150 PROCEDURE FIRSTPART;
|
||||
47160 VAR I:INTEGER;
|
||||
47170 BEGIN
|
||||
47180 FOR I := PNONE TO PLAST DO OCODE(I,'DUMMY ',O,O,O);
|
||||
47182 OCODE(PPBEGIN+1 , 'ESTART_ ' , O , O , O );
|
||||
47185 OCODE(PPBEGIN , 'START68 ' , O , O , O );
|
||||
47190 OCODE(PPEND , 'STOP68 ' , O , O , O );
|
||||
47210 ICODE(PABSI , 'DUPL ' , NON , 0 ,QABSI , E , O , E );
|
||||
47215 QCODE(QABSI , 'CI ' , WOP , 0 ,QABSI+1 );
|
||||
47220 QCODE(QABSI+1 , 'IJGE ' , JMP , 2 ,QABSI+2 );
|
||||
47230 QCODE(QABSI+2 , 'INEG ' , NON , 0 ,0 );
|
||||
47240 ICODE(PABSI-2 , 'CI ' , WOP , 0 ,QABSI+3 ,FP0, O ,FP0);
|
||||
47250 QCODE(QABSI+3 , 'FLOAT ' , WOP , 3 ,QABSI+4);
|
||||
47260 QCODE(QABSI+4 , 'RGE 0,3 ' , NON , 0 ,QABSI+5);
|
||||
47270 QCODE(QABSI+5 , 'JTRUE ' , JMP , 2 ,QABSI+6);
|
||||
47272 QCODE(QABSI+6 , 'RNEG ' , WOP , 0 ,0);
|
||||
47274 OCODE(PABSI-4 , 'CABSI ' ,PR1,O ,E );
|
||||
47280 ICODE(PABSB , 'NULL ' , NON , 0 ,0 , E , O , E );
|
||||
47290 ICODE(PABSB-1 , 'NULL ' , NON , 0 ,0 , E , O , E );
|
||||
47300 ICODE(PABSCH , 'NULL ' , NON , 0 ,0 ,ST , O ,ST );
|
||||
47310 ICODE(PADD , 'IADD ' , NON , 0 ,0 , E , E , E );
|
||||
47320 ICODE(PADD-2 , 'RADD 0,1' , NON , 0 ,0 ,FP0,FP1,FP0);
|
||||
47325 OCODE(PADD-4 , 'CPLUS ' ,PR1,PR2, E );
|
||||
47330 (*+61()
|
||||
47340 ICODE(PADD-3 , '?ADD-3 ' , WOP , 8 ,0 ,ST4,ST4,ST4);
|
||||
47350 ()+61+)
|
||||
47360 ICODE(PANDB , 'ILAND ' , NON , 0 ,0 , E , E , E );
|
||||
47370 ICODE(PANDB-1 , 'ILAND ' , NON , 0 ,0 , E , E , E );
|
||||
47375 OCODE(PARG , 'CARG ' ,PR1, O , E );
|
||||
47380 ICODE(PBIN , 'NULL ' , NON , 0 ,0 , E , O , E );
|
||||
47390 OCODE(PCAT , 'CATCC ' ,PR1,PR2, E );
|
||||
47400 OCODE(PCAT-1 , 'CATSS ' ,PR1,PR2, E );
|
||||
47405 OCODE(PCONJ , 'CCONJ ' ,PR1, O , E );
|
||||
47410 ICODE(PDIV , 'FLOAT ' , WOP , 3 ,QDIV , E , E ,FP0);
|
||||
47412 QCODE(QDIV , 'FLOAT ' , WOP , 0 ,QDIV+1);
|
||||
47414 QCODE(QDIV+1 , 'RDIV 0,3' , NON , 0 ,0);
|
||||
47420 ICODE(PDIV-2 , 'RDIV 0,1' , NON , 0 ,0 ,FP0,FP1,FP0);
|
||||
47425 OCODE(PDIV-4 , 'CDIV ' ,PR1,PR2, E );
|
||||
47430 ICODE(PDIVAB , 'RDIV 0,1' , NON , 0 ,0 ,FP0,FP1,FP0);
|
||||
47435 OCODE(PDIVAB-2 , 'CDIVAB ' ,PR1,PR2, E );
|
||||
47440 ICODE(PELMBT , 'EXCH ' , NON , 0 ,QELMBT , E , E , E );
|
||||
47450 QCODE(QELMBT , 'CI ' , WOP , 1 ,QELMBT+1);
|
||||
47452 QCODE(QELMBT+1 , 'ISUB ' , NON , 0 ,QELMBT+2);
|
||||
47460 QCODE(QELMBT+2 , 'ISLLT ' , NON , 0 ,QELMBT+3);
|
||||
47470 QCODE(QELMBT+3 , 'CI ' , WOP , 0 ,QELMBT+4);
|
||||
47472 QCODE(QELMBT+4 , 'IGT ' , NON , 0 ,0);
|
||||
47480 OCODE(PELMBY , 'ELMBY ' ,PR1,PR2, E );
|
||||
47490 OCODE(PENTI , 'ENTIER ' ,PR1, O , E );
|
||||
47500 ICODE(PEQ , 'IEQ ' , NON , 0 ,0 , E , E , E );
|
||||
47520 ICODE(PEQ-2 , 'REQ 0,1 ' , NON , 0 ,0 ,FP0,FP1, E );
|
||||
47525 OCODE(PEQ-4 , 'CEQ ' ,PR1,PR2, E );
|
||||
47530 ICODE(PEQB , 'IEQ ' , NON , 0 ,0 , E , E , E );
|
||||
47540 ICODE(PEQB-1 , 'IEQ ' , NON , 0 ,0 , E , E , E );
|
||||
47550 ICODE(PEQB-2 , 'IEQ ' , NON , 0 ,0 , E , E , E );
|
||||
47560 ICODE(PEQCS , 'IEQ ' , NON , 0 ,0 , E , E , E );
|
||||
47570 ICODE(PEQCS-1 , 'CI ' , ACP , 2 ,QCFSTRNG ,PR1,PR2, E );
|
||||
47590 OCODE(PEXP , 'POWI ' ,PR1,PR2, E );
|
||||
47600 OCODE(PEXP-2 , 'POWR ' ,PR1,PR2,FP0);
|
||||
47605 OCODE(PEXP-4 , 'CPOW ' ,PR1,PR2, E );
|
||||
47610 ICODE(PPASC , 'CALL ' , OPX , 0 ,0 ,SDL, O , E );
|
||||
47620 ICODE(PPASC+1 , 'CALL ' , OPX , 0 ,0 ,PR1, O , E );
|
||||
47670 ICODE(PGE , 'ILE ' , NON , 0 ,0 , E , E , E );
|
||||
47680 ICODE(PGE-2 , 'RGE 0,1 ' , NON , 0 ,0 ,FP0,FP1, E );
|
||||
47690 ICODE(PGEBT , 'EXCH ' , NON , 0 ,PLEBT , E , E , E );
|
||||
47700 ICODE(PGEBT-1 , 'ILE ' , NON , 0 ,0 , E , E , E );
|
||||
47710 ICODE(PGECS , 'ILE ' , NON , 0 ,0 , E , E , E );
|
||||
47720 ICODE(PGECS-1 , 'CI ' , ACP , 4 ,QCFSTRNG ,PR1,PR2, E );
|
||||
47740 ICODE(PGT , 'ILT ' , NON , 0 ,0 , E , E , E );
|
||||
47760 ICODE(PGT-2 , 'RGT 0,1 ' , NON , 0 ,0 ,FP0,FP1, E );
|
||||
47770 ICODE(PGTBY , 'ILT ' , NON , 0 ,0 , E , E , E );
|
||||
47780 ICODE(PGTCS , 'ILT ' , NON , 0 ,0 , E , E , E );
|
||||
47790 ICODE(PGTCS-1 , 'CI ' , ACP , 5 ,QCFSTRNG ,PR1,PR2, E );
|
||||
47795 OCODE(PIM , 'CIM ' ,PR1, O , E );
|
||||
47800 ICODE(PLE , 'IGE ' , NON , 0 ,0 , E , E , E );
|
||||
47820 ICODE(PLE-2 , 'RLE 0,1 ' , NON , 0 ,0 ,FP0,FP1, E );
|
||||
47830 ICODE(PLEBT , 'ILNOT ' , NON , 0 ,QLEBT , E , E , E );
|
||||
47832 QCODE(QLEBT , 'ILAND ' , NON , 0 ,QLEBT+1);
|
||||
47834 QCODE(QLEBT+1 , 'INOT ' , NON , 0 ,0);
|
||||
47840 ICODE(PLEBT-1 , 'ILE ' , NON , 0 ,0 , E , E , E );
|
||||
47850 ICODE(PLECS , 'IGE ' , NON , 0 ,0 , E , E , E );
|
||||
47860 ICODE(PLECS-1 , 'CI ' , ACP , 1 ,QCFSTRNG ,PR1,PR2, E );
|
||||
47920 ICODE(PLT , 'IGT ' , NON , 0 ,0 , E , E , E );
|
||||
47940 ICODE(PLT-2 , 'RLT 0,1 ' , NON , 0 ,0 ,FP0,FP1, E );
|
||||
47950 ICODE(PLTBY , 'IGT ' , NON , 0 ,0 , E , E , E );
|
||||
47960 ICODE(PLTCS , 'IGT ' , NON , 0 ,0 , E , E , E );
|
||||
47970 ICODE(PLTCS-1 , 'CI ' , ACP , 0 ,QCFSTRNG ,PR1,PR2, E );
|
||||
47980 OCODE(PLWBMSTR , 'LWBMSTR ' ,PR1, O , E );
|
||||
47990 OCODE(PLWBM , 'LWBM ' ,PR1, O , E );
|
||||
48000 OCODE(PLWB , 'LWB ' ,PR1,PR2, E );
|
||||
48010 ICODE(PMINUSAB , 'ISUB ' , NON , 0 ,0 , E , E , E );
|
||||
48020 ICODE(PMINUSAB-2 , 'RSUB 0,1' , NON , 0 ,0 ,FP0,FP1,FP0);
|
||||
48025 OCODE(PMINUSAB-4 , 'CMINAB ' ,PR1,PR2, E );
|
||||
48030 OCODE(PMOD , 'MOD ' ,PR1,PR2, E );
|
||||
48040 OCODE(PMODAB , 'MOD ' ,PR1,PR2, E );
|
||||
48050 ICODE(PMUL , 'IMULT ' , NON , 0 ,0 , E , E , E );
|
||||
48060 ICODE(PMUL-2 , 'RMULT 0,' , WOP , 1 ,0 ,FP0,FP1,FP0);
|
||||
48070 (*+61()
|
||||
48080 ICODE(PMUL-3 , '?MUL-3 ' , WOP , 8 ,0 ,ST4,ST4,ST4);
|
||||
48090 ()+61+)
|
||||
48095 OCODE(PMUL-4 , 'CTIMS ' ,PR1,PR2, E );
|
||||
48100 OCODE(PMULCI , 'MULCI ' ,PR1,PR2, E );
|
||||
48110 OCODE(PMULCI-1 , 'MULSI ' ,PR1,PR2, E );
|
||||
48120 OCODE(PMULIC , 'MULIC ' ,PR1,PR2, E );
|
||||
48130 OCODE(PMULIC-1 , 'MULIS ' ,PR1,PR2, E );
|
||||
48140 END;
|
||||
48150 PROCEDURE SECONDPART;
|
||||
48160 BEGIN
|
||||
48170 ICODE(PNE , 'INE ' , NON , 0 ,0 , E , E , E );
|
||||
48190 ICODE(PNE-2 , 'RNE 0,1 ' , NON , 0 ,0 ,FP0,FP1, E );
|
||||
48195 OCODE(PNE-4 , 'CNE ' ,PR1,PR2, E );
|
||||
48210 ICODE(PNEB , 'INE ' , NON , 0 ,0 , E , E , E );
|
||||
48220 ICODE(PNEB-1 , 'INE ' , NON , 0 ,0 , E , E , E );
|
||||
48230 ICODE(PNEB-2 , 'INE ' , NON , 0 ,0 , E , E , E );
|
||||
48240 ICODE(PNECS , 'INE ' , NON , 0 ,0 , E , E , E );
|
||||
48250 ICODE(PNECS-1 , 'CI ' , ACP , 3 ,QCFSTRNG ,PR1,PR2, E );
|
||||
48252 ICODE(PNEGI , 'INEG ' , NON , 0 ,0 , E , O , E );
|
||||
48260 ICODE(PNEGI-2 , 'RNEG ' , WOP , 0 ,0 ,FP0, O ,FP0);
|
||||
48265 OCODE(PNEGI-4 , 'CNEGI ' ,PR1,PR2, E );
|
||||
48270 ICODE(PNOTB , 'INOT ' , NON , 0 ,0 , E , O , E );
|
||||
48290 ICODE(PNOTB-1 , 'ILNOT ' , NON , 0 ,0 , E , O , E );
|
||||
48300 ICODE(PNOOP , 'NULL ' , NON , 0 ,0 , E , O ,ST );
|
||||
48310 ICODE(PNOOP-2 , 'NULL ' , NON , 0 ,0 ,FP0, O ,ST );
|
||||
48320 ICODE(PNOOP-4 , 'NULL ' , NON , 0 ,0 , E , O ,ST );
|
||||
48330 ICODE(PODD , 'CI ' , WOP , 1 ,QODD , E , O , E );
|
||||
48340 QCODE(QODD , 'ILAND ' , NON , 0 ,0 );
|
||||
48350 ICODE(PORB , 'ILOR ' , NON , 0 ,0 , E , E , E );
|
||||
48360 ICODE(PORB-1 , 'ILOR ' , NON , 0 ,0 , E , E , E );
|
||||
48370 ICODE(POVER , 'IDIV ' , NON , 0 ,0 , E , E , E );
|
||||
48380 ICODE(POVERAB , 'IDIV ' , NON , 0 ,0 , E , E , E );
|
||||
48385 OCODE(PPLITM , 'CRCOMPLEX ' ,PR1,PR2, E );
|
||||
48390 ICODE(PPLSAB , 'IADD ' , NON , 0 ,0 , E , E , E );
|
||||
48400 ICODE(PPLSAB-2 , 'RADD 0,1' , NON , 0 ,0 ,FP0,FP1,FP0);
|
||||
48410 (*+61()
|
||||
48420 ICODE(PPLSAB-3 , '?PLSAB-3' , WOP , 8 ,0 ,ST4,ST4,ST4);
|
||||
48430 ()+61+)
|
||||
48435 OCODE(PPLSAB-4 , 'CPLUSAB ' ,PR1,PR2, E );
|
||||
48440 OCODE(PPLSABS , 'PLABSS ' ,PR1,PR2, E );
|
||||
48450 OCODE(PPLSABS-1 , 'PLABSS ' ,PR1,PR2, E );
|
||||
48460 OCODE(PPLSTOCS , 'PLTOSS ' ,PR1,PR2, E );
|
||||
48470 OCODE(PPLSTOCS-1 , 'PLTOSS ' ,PR1,PR2, E );
|
||||
48475 OCODE(PRE , 'CRE ' ,PR1,O , E );
|
||||
48480 ICODE(PREPR , 'NULL ' , NON , 0 ,0 , E , E , E );
|
||||
48490 ICODE(PROUN , 'ROUND ' , WOP , 0 ,0 ,FP0, O , E );
|
||||
48500 OCODE(PSGNI , 'SIGNI ' ,PR1, O , E );
|
||||
48510 OCODE(PSGNI-2 , 'SIGNR ' ,PR1, O , E );
|
||||
48520 OCODE(PSHL , 'SHL ' ,PR1,PR2, E );
|
||||
48530 (*+61()
|
||||
48540 ICODE(PSHRTR , '?SHRTR ' , WOP , 8 ,QSHRTR ,ST4, O ,ST2);
|
||||
48550 QCODE(QSHRTR , 'RUBBISH ' , WOP , 4 ,QSHRTR+1 );
|
||||
48560 QCODE(QSHRTR+1 , 'RUBBISH ' , NON , 0 ,0 );
|
||||
48570 ()+61+)
|
||||
48580 OCODE(PSHR , 'SHR ' ,PR1,PR2, E );
|
||||
48590 ICODE(PSUB , 'ISUB ' , NON , 0 ,0 , E , E , E );
|
||||
48600 ICODE(PSUB-2 , 'RSUB 0,1' , NON , 0 ,0 ,FP0,FP1, FP0);
|
||||
48605 OCODE(PSUB-4 , 'CMINUS ' ,PR1,PR2, E );
|
||||
48610 ICODE(PTIMSAB , 'IMULT ' , NON , 0 ,0 , E , E , E );
|
||||
48620 ICODE(PTIMSAB-2 , 'RMULT 0,' , WOP , 1 ,0 ,FP0,FP1,FP0);
|
||||
48630 (*+61()
|
||||
48640 ICODE(PTIMSAB-3 , '?TIMSAB-' , WOP , 8 ,0 ,ST4,ST4,ST4);
|
||||
48650 ()+61+)
|
||||
48655 OCODE(PTIMSAB-4 , 'CTIMSAB ' ,PR1,PR2, E );
|
||||
48660 OCODE(PTIMSABS , 'MULABSI ' ,PR1,PR2, E );
|
||||
48670 OCODE(PUPBMSTR , 'UPBMSTR ' ,PR1, O , E );
|
||||
48680 OCODE(PUPBM , 'UPBM ' ,PR1, O , E );
|
||||
48690 OCODE(PUPB , 'UPB ' ,PR1,PR2, E );
|
||||
48696 QCODE(QCFSTRNG , 'IPUSH ' , NON , 0 ,QCFSTRNG+1);
|
||||
48700 OCODE(QCFSTRNG+1 , 'CFSTR ' , O , O , O );
|
||||
48730 ICODE(PSELECT , ' SR0 ' , NON , 0 ,QSELECT , E , O ,ER0);
|
||||
48731 QCODE(QSELECT , 'LRO0 ' , WOP , 6 ,PSELECT+2);
|
||||
48734 ICODE(PSELECT+1 , ' SR0 ' , NON , 0 ,QSELECT+1 , E , O ,ER0);
|
||||
48736 QCODE(QSELECT+1 , 'CI ' , OPX , 6 ,0);
|
||||
48740 ICODE(PSELECT+2 , 'CI ' , OPX , 0 ,QSELECT+2 ,ER0, O ,ER0);
|
||||
48742 QCODE(QSELECT+2 , 'IADD ' , NON , 0 ,0);
|
||||
48760 OCODE(PSELECTROW , 'SELECTR ' ,PR1, O , E );
|
||||
48770 OCODE(PSTRNGSLICE, 'STRSUB ' ,PR1,PR2, E );
|
||||
48780 OCODE(PSTRNGSLICE+1, 'STRTRIM ' ,PR1, O , E );
|
||||
48790 OCODE(PSTARTSLICE, 'STARTSL ' , O , O , O );
|
||||
48800 OCODE(PSLICE1 , 'SLICE1 ' , E , E ,ER0);
|
||||
48810 OCODE(PSLICE2 , 'SLICE2 ' , E , E ,ER0);
|
||||
48820 OCODE(PSLICEN , 'SLICEN ' ,PR1, O ,FP0);
|
||||
48822 ICODE(PCASE , 'JUMP ' , LCX , 0 ,0 , E , O , O );
|
||||
48830 ICODE(PCASCOUNT , 'CI ' , WOP , 1 ,QCAS , O , O , O );
|
||||
48840 QCODE(QCAS , 'ISUB ' , NON , 0 ,QCAS+1);
|
||||
48842 QCODE(QCAS+1 , 'INDXJUMP' , NON , 0 ,QCAS+2);
|
||||
48844 QCODE(QCAS+2 , 'ARG ' , OPX , 0 ,0);
|
||||
48846 ICODE(PCASJMP , 'LAB ' , LCX , 0 ,0 , O , O , O );
|
||||
48848 ICODE(PCASJMP+1 , 'JUMP ' , LCX , 0 ,0 , O , O , O );
|
||||
48850 ICODE(PJMPF , 'JFALSE ' , LCX , 0 ,0 , E , O , O );
|
||||
48860 ICODE(PLPINIT , 'LAS ' , ANX , 0 ,QLPINIT ,PR1, O , E );
|
||||
48862 QCODE(QLPINIT , 'IPUSH ' , NON , 0 ,QLPINIT+1);
|
||||
48864 OCODE(QLPINIT+1 , 'LINIT1 ' , O , O , O );
|
||||
48870 ICODE(PLPINIT+1 , 'LAS ' , ANX , 0 ,QLPINIT+2 ,PR1, O , E );
|
||||
48872 QCODE(QLPINIT+2 , 'IPUSH ' , NON , 0 ,QLPINIT+3);
|
||||
48874 OCODE(QLPINIT+3 , 'LINIT2 ' , O , O , O );
|
||||
48880 ICODE(PLPINIT+2 , 'LAS ' , ANX , 0 ,QLPINIT+4 ,PR1, O , O );
|
||||
48882 QCODE(QLPINIT+4 , 'IPUSH ' , NON , 0 ,QLPINIT+5);
|
||||
48884 OCODE(QLPINIT+5 , 'LINIT3 ' , O , O , O );
|
||||
48890 ICODE(PLPINIT+3 , 'LAS ' , ANX , 0 ,QLPINIT+6 ,PR1, O , O );
|
||||
48892 QCODE(QLPINIT+6 , 'IPUSH ' , NON , 0 ,QLPINIT+7);
|
||||
48894 OCODE(QLPINIT+7 , 'LINIT4 ' , O , O , O );
|
||||
48900 ICODE(PLPTEST , 'JFALSE ' , LCX , 0 ,0 , E , O , O );
|
||||
48902 ICODE(PLPINCR , 'LAS ' , ANX , 0 ,QLOOPINCR+4 , O , O , E );
|
||||
48904 QCODE(QLOOPINCR+4, 'IPUSH ' , NON , 0 ,QLOOPINCR+5);
|
||||
48910 OCODE(QLOOPINCR+5, 'LOOPINC ' , O , O , O );
|
||||
48920 ICODE(PLPINCR+1 , 'CI ' , WOP , 1 ,QLOOPINCR , O , O , E );
|
||||
48930 QCODE(QLOOPINCR , 'LAS ' , ONX , 0 ,QLOOPINCR+1);
|
||||
48940 QCODE(QLOOPINCR+1, 'OAADD ' , NON , 0 ,QLOOPINCR+2);
|
||||
48950
|
||||
48960 QCODE(QLOOPINCR+2, 'IL ' , ONX , 2 ,QLOOPINCR+3);
|
||||
48964 QCODE(QLOOPINCR+3, 'IGE ' , NON , 0 ,0);
|
||||
48966 ICODE(PRANGENT , 'LAS ' , ANX , 0 ,QRANGENT , O , O , O );
|
||||
48968 QCODE(QRANGENT , 'IPUSH ' , NON , 0 ,QRANGENT+1);
|
||||
48970 OCODE(QRANGENT+1 , 'RANGENT ' , O , O , O );
|
||||
48980 OCODE(PRANGEXT , 'RANGEXT ' , O , O , O );
|
||||
48990 ICODE(PRANGEXT+1 , 'IL ' , WNP ,(SIZIBBASE+SIZLEBBASE-8),QRANGEXT, O , O , O );
|
||||
48992 QCODE(QRANGEXT , ' SR2 ' , NON , 0 ,QRANGEXT+1);
|
||||
48994 QCODE(QRANGEXT+1 , 'LRO2 ' , WOP , 8 ,QRANGEXT+2);
|
||||
49000 QCODE(QRANGEXT+2 , ' IS ' , WNP ,(SIZIBBASE+SIZLEBBASE-8),0 );
|
||||
49020 OCODE(PRANGEXT+2 , 'RANGXTP ' ,STP, O , E );
|
||||
49022 OCODE(PRECGEN , 'DORECGE ' , O , O , O );
|
||||
49030 OCODE(PACTDRSTRUCT,'CRSTRUC ' , O , O , E );
|
||||
49040 OCODE(PACTDRMULT , 'CRMULT ' ,PR1, O , E );
|
||||
49050 OCODE(PCHECKDESC , 'CHKDESC ' ,PR1,PR2, E );
|
||||
49080 OCODE(PVARLISTEND, 'GARBAGE ' ,PR1, O , O );
|
||||
49090 ICODE(PVARLISTEND+1,'ASFW ' , WOP , 2 ,0 ,ST , O , O );
|
||||
49096 ICODE(PDCLINIT , 'LGI ' , MOR , 0 ,QDCLINIT , O , O , O );
|
||||
49097 QCODE(QDCLINIT , '_UNINT ' , NON , 0 ,0);
|
||||
49098 ICODE(PDCLINIT+1 , 'LGI ' , MOR , 0 ,QDCLINIT+1 , O , O , O );
|
||||
49099 QCODE(QDCLINIT+1 , '_UNDEFIN' , NON , 0 ,0);
|
||||
49100 ICODE(PDCLINIT+2 , 'IS ' , ONX , 2 ,0 , O , O , O );
|
||||
49106 ICODE(PPARM , 'IL ' , ONX , 0 ,QDCLSP , O , O , O );
|
||||
49108
|
||||
49110
|
||||
49120 OCODE(PCREATEREF , 'CRREFN ' ,PR1, O , E );
|
||||
49130 OCODE(PCREATEREF+1,'CRRECN ' ,PR1, O , E );
|
||||
49140 OCODE(PCREATEREF+2,'CRREFR ' ,PR1, O , E );
|
||||
49150 OCODE(PCREATEREF+3,'CRRECR ' ,PR1, O , E );
|
||||
49160
|
||||
49170 ICODE(PDCLSP , ' IS ' , ONX , 2 ,0 , E , O , O );
|
||||
49180 ICODE(PDCLSP+1 , ' IS ' , ONX , 2 ,QDCLSP , E , O , O );
|
||||
49190 QCODE(QDCLSP , 'CI ' , MOR , 0 ,QDCLSP+1 );
|
||||
49200 QCODE(QDCLSP+1 , '65536 ' , NON , 0 ,QDCLSP+2 );
|
||||
49230 QCODE(QDCLSP+2 , 'EXCH ' , NON , 0 ,QDCLSP+3 );
|
||||
49232 QCODE(QDCLSP+3 , ' OAADD ' , NON , 0 ,0);
|
||||
49240 OCODE(PDCLSP+2 , 'DCLSN ' ,SNS, O , O );
|
||||
49250 OCODE(PDCLSP+3 , 'DCLPN ' ,SNS, O , O );
|
||||
49252 ICODE(PFIXRG , 'LAS ' , ONX , 0 ,0 , O , O , O );
|
||||
49254 ICODE(PFIXRG+1 , 'IS ' , ONX , 0 ,0 , O , O , O );
|
||||
49260 END;
|
||||
49270 PROCEDURE THIRDPART;
|
||||
49280 BEGIN
|
||||
49290 OCODE(PBOUNDS , 'BOUND ' ,STS, O , E );
|
||||
49300 ICODE(PLOADVAR , 'LAS ' , ACP , 0 ,QLOADVAR , O , O , E );
|
||||
49304 QCODE(QLOADVAR , 'LAS ' , ACX , 0 ,QLOADVAR+3);
|
||||
49310 ICODE(PLOADVAR+1 , 'LROA3 ' , ACP ,250,QLOADVAR+1 , O , O , E );
|
||||
49312 QCODE(QLOADVAR+1 , 'LROA3 ' , ACX ,250,QLOADVAR+3);
|
||||
49320 ICODE(PLOADVAR+2 , 'LROA2 ' , ACP ,192,QLOADVAR+2 , O , O , E );
|
||||
49322 QCODE(QLOADVAR+2 , 'LROA2 ' , ACX ,192,QLOADVAR+3);
|
||||
49324 QCODE(QLOADVAR+3 , 'IPUSH ' , NON , 0 ,QLOADVAR+4);
|
||||
49326 QCODE(QLOADVAR+4 , 'IPUSH ' , NON , 0 ,QLOADVAR+5);
|
||||
49328 OCODE(QLOADVAR+5 , 'GLDVAR ' , O , O , O );
|
||||
49330 OCODE(PLOADRT , 'ROUTN ' , O , O , E );
|
||||
49331 ICODE(PLOADRTA , 'LAS ' , ACX , 0 ,QLOADRTA , O , O , E );
|
||||
49332 ICODE(PLOADRTA+1 , 'LROA3 ' , ACX ,250,QLOADRTA , O , O , E );
|
||||
49333 ICODE(PLOADRTA+2 , 'LROA2 ' , ACX ,192,QLOADRTA , O , O , E );
|
||||
49334 QCODE(QLOADRTA , 'IPUSH ' , NON , 0 ,QLOADRTA+1);
|
||||
49335 OCODE(QLOADRTA+1 , 'ROUTNA ' , O , O , O );
|
||||
49336 OCODE(PLOADRTP , 'ROUTNP ' ,PR1, O , E );
|
||||
49340 OCODE(PSCOPETT+2 , 'TASSTPT ' ,PR1,PR2, E );
|
||||
49350 OCODE(PSCOPETT+3 , 'SCPTTP ' ,PR1,PR2, E );
|
||||
49360 OCODE(PSCOPETT+4 , 'SCPTTM ' ,PR1,PR2, E );
|
||||
49370 OCODE(PASSIGTT , 'TASSTS ' , E , E , E );
|
||||
49372 OCODE(PASSIGTT+1 , 'TASSTS2 ' , E ,FP0, E );
|
||||
49380 OCODE(PASSIGTT+2 , 'TASSTPT ' ,PR1,PR2, E );
|
||||
49390 OCODE(PASSIGTT+3 , 'TASSTP ' ,PR1,PR2, E );
|
||||
49400 OCODE(PASSIGTT+4 , 'TASSTM ' ,PR1,PR2, E );
|
||||
49410 OCODE(PSCOPETN , 'SCPTNP ' ,PR1,PR2, E );
|
||||
49420 OCODE(PASSIGTN , 'TASSNP ' ,PR1,PR2, E );
|
||||
49430 OCODE(PSCOPENT+2 , 'SCPNTPT ' ,PR1,PR2,FP0);
|
||||
49440 OCODE(PSCOPENT+3 , 'SCPNTP ' ,PR1,PR2,FP0);
|
||||
49480 OCODE(PASSIGNT , 'NASSTS ' ,ER0, E ,ER0);
|
||||
49490 OCODE(PASSIGNT+1 , 'NASSTS2 ' ,ER0,FP0,ER0);
|
||||
49500 OCODE(PASSIGNT+2 , 'NASSTPP ' ,ER0, E ,ER0);
|
||||
49520 OCODE(PASSIGNT+3 , 'NASSTP ' ,PR1,PR2,FP0);
|
||||
49530
|
||||
49540 OCODE(PSCOPENN , 'SCPNNP ' ,PR1,PR2,FP0);
|
||||
49560 OCODE(PASSIGNN , 'NASSNP ' ,PR1,PR2,FP0);
|
||||
49580 ICODE(PSCOPEVAR , 'LAS ' , ACP , 0 ,QSCOPEVAR ,PR1, O , O );
|
||||
49584 QCODE(QSCOPEVAR , 'LAS ' , ACX , 0 ,QSCOPEVAR+3);
|
||||
49590 ICODE(PSCOPEVAR+1, 'LROA3 ' , ACP ,250,QSCOPEVAR+1 ,PR1, O , O );
|
||||
49591 QCODE(QSCOPEVAR+1, 'LROA3 ' , ACX ,250,QSCOPEVAR+3);
|
||||
49592 ICODE(PSCOPEVAR+2, 'LROA2 ' , ACP ,192,QSCOPEVAR+2 ,PR1, O , O );
|
||||
49594 QCODE(QSCOPEVAR+2, 'LROA2 ' , ACX ,192,QSCOPEVAR+3);
|
||||
49596 QCODE(QSCOPEVAR+3, 'IPUSH ' , NON , 0 ,QSCOPEVAR+4);
|
||||
49598 QCODE(QSCOPEVAR+4, 'IPUSH ' , NON , 0 ,QSCOPEVAR+5);
|
||||
49600 OCODE(QSCOPEVAR+5, 'GVSCOPE ' , O , O , O );
|
||||
49610 OCODE(PSCOPEEXT , 'SCOPEXT ' ,PR1, O , E );
|
||||
49620 ICODE(PASGVART , ' IS ' , OPX , 0 ,0 ,E , O , O );
|
||||
49630 ICODE(PASGVART+1 , ' SRO3 ' , OPX ,250,0 ,E , O , O );
|
||||
49640 ICODE(PASGVART+2 , ' SRO2 ' , OPX ,192,0 ,E , O , O );
|
||||
49660 ICODE(PASGVART+3 , 'LAS ' , OPX , 0 ,QASGVART ,FP0, O , O );
|
||||
49671 QCODE(QASGVART , ' ASSD ' , WOP , 0 ,0 );
|
||||
49680 ICODE(PASGVART+4 , 'LROA3 ' , OPX ,250,QASGVART ,FP0, O , O );
|
||||
49690 ICODE(PASGVART+5 , 'LROA2 ' , OPX ,192,QASGVART ,FP0, O , O );
|
||||
49710 ICODE(PASGVART+6 , 'LAS ' , ACX , 0 ,QASGVART+1 ,PR1, O , O );
|
||||
49712 QCODE(QASGVART+1 , 'IPUSH ' , NON , 0 ,QASGVART+2);
|
||||
49714 OCODE(QASGVART+2 , 'GVASSTX ' , O , O , O );
|
||||
49720 ICODE(PASGVART+7 , 'LROA3 ' , ACX ,250,QASGVART+1 ,PR1, O , O );
|
||||
49730 ICODE(PASGVART+8 , 'LROA2 ' , ACX ,192,QASGVART+1 ,PR1, O , O );
|
||||
49740 OCODE(PIDTYREL , 'IS ' ,PR1,PR2, E );
|
||||
49750 OCODE(PIDTYREL+1 , 'ISNT ' ,PR1,PR2, E );
|
||||
49752 ICODE(PGETTOTCMN , 'LR0 ' , NON , 0 ,QGETTOTCMN ,ER0, O ,ER0);
|
||||
49753 QCODE(QGETTOTCMN , 'IADD ' , NON , 0 ,0);
|
||||
49754 ICODE(PGETTOTCMN+1, 'LRO0 ' , WOP , 2 ,QGETTOTCMN ,ER0, O ,ER0);
|
||||
49755 ICODE(PGETTOTCMN+2, 'LRO0 ' , WOP , 4 ,QGETTOTCMN+1 ,ER0, O ,ER0);
|
||||
49756 QCODE(QGETTOTCMN+1, 'SR1 ' , NON , 0 ,QGETTOTCMN+2);
|
||||
49757 QCODE(QGETTOTCMN+2, 'JFALSE ' , JMP , 1 ,QGETTOTCMN+3);
|
||||
49758 QCODE(QGETTOTCMN+3, 'LRO1 ' , WOP , 2 ,QGETTOTCMN);
|
||||
49760 ICODE(PGETTOTAL , 'LI ' , NON , 0 ,QGETTOTAL ,ER0, O , E );
|
||||
49761
|
||||
49762
|
||||
49763
|
||||
49764 ICODE(PGETTOTAL+1, 'LDI ' , WOP , 0 ,QGETTOTAL ,ER0, O ,FP0);
|
||||
49765
|
||||
49766
|
||||
49767
|
||||
49768 QCODE(QGETTOTAL , 'LRO0 ' , WOP , 0 ,QGETTOTAL+1);
|
||||
49769
|
||||
49770 QCODE(QGETTOTAL+1, 'CI ' , MOR , 0 ,QGETTOTAL+2);
|
||||
49771 QCODE(QGETTOTAL+2, '65536 ' , NON , 0 ,QGETTOTAL+3);
|
||||
49772 QCODE(QGETTOTAL+3, 'IJGE ' , JMP , 2 ,QGETTOTAL+4);
|
||||
49773 OCODE(QGETTOTAL+4, 'SAVGARB ' , O , O , O );
|
||||
49774 OCODE(PGETTOTAL+2, 'GTOTP ' ,PR1, O , E );
|
||||
49775 OCODE(PGETTOTAL+3, 'GTOTN ' ,PR1, O , E );
|
||||
49776 OCODE(PGETTOTAL+4, 'GTOTREF ' ,PR1, O , E );
|
||||
49778 OCODE(PGETMULT , 'GETMULT ' ,PR1, O , E );
|
||||
49780 OCODE(PGETMULT+1 , 'GETSLN ' ,PR1, O , E );
|
||||
49782 OCODE(PDEREF , 'DREFS ' ,PR1, O , E );
|
||||
49784 OCODE(PDEREF+1 , 'DREFS2 ' ,PR1, O , E );
|
||||
49786 OCODE(PDEREF+2 , 'DREFPTR ' ,PR1, O , E );
|
||||
49788 OCODE(PDEREF+3 , 'DREFN ' ,PR1, O , E );
|
||||
49790 OCODE(PDEREF+4 , 'DREFM ' ,PR1, O , E );
|
||||
49800 OCODE(PSKIP , 'SKIPS ' , O , O , E );
|
||||
49810 OCODE(PSKIP+1 , 'SKIPPIL ' , O , O , E );
|
||||
49812 OCODE(PSKIP+2 , 'SKIPS2 ' , O , O ,FP0);
|
||||
49820 OCODE(PSKIPSTRUCT, 'SKIPSTR ' , O , O , E );
|
||||
49830 OCODE(PNIL , 'NILP ' , O , O , E );
|
||||
49840 ICODE(PVOIDNORMAL, 'SR0 ' , NON , 0 ,PVOIDNAKED , E , O , O );
|
||||
49843 ICODE(PVOIDNAKED , 'LRO0 ' , WOP , 0 ,QGETTOTAL+1 ,ER0, O , O );
|
||||
49844
|
||||
49845
|
||||
49846
|
||||
49847
|
||||
49848
|
||||
49900
|
||||
49910 ICODE(PWIDEN , 'FLOAT ' , WOP , 0 ,0 ,E , O ,FP0);
|
||||
49940 OCODE(PWIDEN+2 , 'WIDREAL ' ,PR1, O , E );
|
||||
49950 OCODE(PWIDEN+4 , 'WIDCHAR ' ,PR1, O , E );
|
||||
49960 OCODE(PWIDEN+5 , 'WIDBITS ' ,PR1, O , E );
|
||||
49970 OCODE(PWIDEN+6 , 'WIDBYTS ' ,PR1, O , E );
|
||||
49980 OCODE(PWIDEN+7 , 'WIDSTR ' ,PR1, O , E );
|
||||
49990 OCODE(PROWNONMULT, 'ROWNM ' ,PR1, O , E );
|
||||
50000 OCODE(PROWMULT , 'ROWM ' ,PR1, O , E );
|
||||
50001 ICODE(PGETPROC , 'SFA ' , NON , 0 ,QGETPROC , O , O , O );
|
||||
50002 QCODE(QGETPROC , 'CI ' , ANX , 0 ,QGETPROC+1);
|
||||
50003 QCODE(QGETPROC+1 , 'IADD ' , NON , 0 ,QGETPROC+2);
|
||||
50004 QCODE(QGETPROC+2 , 'LI ' , NON , 0 ,QGETPROC+3);
|
||||
50005 QCODE(QGETPROC+3 , 'IPUSH ' , NON , 0 ,PGETPROC+1);
|
||||
50006 OCODE(PGETPROC+1 , 'GETPROC ' ,PR1, O , O );
|
||||
50010 ICODE(PCALL , 'CI ' , ACX , 0 ,QCALL ,SNS, O , O );
|
||||
50011 QCODE(QCALL , 'IPUSH ' , NON , 0 ,QCALL+1);
|
||||
50012 QCODE(QCALL+1 , 'RPUSH ' , WOP , 0 ,QCALL+2);
|
||||
50013 QCODE(QCALL+2 , 'SFA ' , NON , 0 ,QCALL+3);
|
||||
50014 QCODE(QCALL+3 , 'CI ' , WOP , 2 ,QCALL+4);
|
||||
50015 QCODE(QCALL+4 , 'IADD ' , NON , 0 ,QCALL+5);
|
||||
50016 QCODE(QCALL+5 , 'LI ' , NON , 0 ,QCALL+6);
|
||||
50017 QCODE(QCALL+6 , 'LI ' , NON , 0 ,QCALL+7);
|
||||
50018 QCODE(QCALL+7 , 'CALLT ' , NON , 0 ,0);
|
||||
50019 ICODE(PCALLA , 'SFA ' , NON , 0 ,QCALLA ,SNS, O , O );
|
||||
50020 QCODE(QCALLA , 'LAS ' , ACX , 0 ,QCALLA+3);
|
||||
50021 ICODE(PCALLA+1 , 'SFA ' , NON , 0 ,QCALLA+1 ,SNS, O , O );
|
||||
50022 QCODE(QCALLA+1 , 'LROA3 ' , ACX ,250,QCALLA+3);
|
||||
50023 ICODE(PCALLA+2 , 'SFA ' , NON , 0 ,QCALLA+2 ,SNS, O , O );
|
||||
50024 QCODE(QCALLA+2 , 'LROA2 ' , ACX ,192,QCALLA+3);
|
||||
50025 QCODE(QCALLA+3 , 'IPUSH ' , NON , 0 ,QCALL+5);
|
||||
50026 ICODE(PRNSTART , 'ASFW ' , OPX , 0 ,QRNSTART , O , O , O );
|
||||
50028 OCODE(QRNSTART , 'RNSTART ' , O , O , O );
|
||||
50029 ICODE(PRETURN , 'RETURN ' , NON , 0 ,0 ,XN , O , O );
|
||||
50030 OCODE(PGBSTK , 'GBSTK ' , O , O , O );
|
||||
50034 OCODE(POUTJUMP , 'OUTJUMP ' , O , O , O );
|
||||
50040 OCODE(PGETOUT , 'GETOUT ' , O , O , O );
|
||||
50042 ICODE(PSETIB , 'RPUSH ' , WOP , 0 ,QSETIB , O , O , O );
|
||||
50044 OCODE(QSETIB , 'SETIB ' , O , O , O );
|
||||
50050 OCODE(PLEAPGEN , 'GENSTR ' , O , O , E );
|
||||
50060 OCODE(PLEAPGEN+1 , 'HEAPSTR ' , O , O , E );
|
||||
50070 OCODE(PLEAPGEN+2 , 'GENRSTR ' , O , O , E );
|
||||
50080 OCODE(PLEAPGEN+3 , 'GENMUL ' ,PR1, O , E );
|
||||
50090 OCODE(PLEAPGEN+4 , 'HEAPMUL ' ,PR1, O , E );
|
||||
50100 OCODE(PLEAPGEN+5 , 'GENRMUL ' ,PR1, O , E );
|
||||
50110 OCODE(PPREPSTRDISP , 'PCOLLST ' , O , O ,FP0);
|
||||
50120 OCODE(PPREPROWDISP , 'PCOLLR ' ,STS, O ,FP0);
|
||||
50130 OCODE(PPREPROWDISP+1, 'PCOLLRM ' ,STS, O ,FP0);
|
||||
50140 OCODE(PCOLLCHECK , 'PCOLLCK ' ,S4P, O ,FP0);
|
||||
50150 ICODE(PCOLLTOTAL , 'EXCH ' , NON , 0 ,QCOLLTOTAL ,ER0, E ,ER0);
|
||||
50151 QCODE(QCOLLTOTAL , 'SR1 ' , NON , 0 ,QCOLLTOTAL+1);
|
||||
50152 QCODE(QCOLLTOTAL+1, 'EXCH ' , NON , 0 ,QCOLLTOTAL+2);
|
||||
50153
|
||||
50154 QCODE(QCOLLTOTAL+2, 'SRO1 ' , OPX , 0 ,QCOLLTOTAL+3);
|
||||
50155 QCODE(QCOLLTOTAL+3, 'JFALSE ' , JMP , 1 ,0);
|
||||
50156
|
||||
50170 ICODE(PCOLLTOTAL+1, 'SR1 ' , NON , 0 ,QCOLLTOTAL+4 ,ER0,FP0,ER0);
|
||||
50171
|
||||
50172
|
||||
50173 QCODE(QCOLLTOTAL+4, 'LROA1 ' , OPX , 0 ,QCOLLTOTAL+5);
|
||||
50174 QCODE(QCOLLTOTAL+5, 'ASSD ' , WOP , 0 ,0);
|
||||
50175
|
||||
50200 ICODE(PCOLLTOTAL+2, 'DUPL ' , NON , 0 ,QCOLLTOTAL+6 ,ER0, E ,ER0);
|
||||
50210 QCODE(QCOLLTOTAL+6, 'CI ' , MOR , 0 ,QCOLLTOTAL+7);
|
||||
50220 QCODE(QCOLLTOTAL+7, '65536 ' , NON , 0 ,QCOLLTOTAL+8);
|
||||
50222 QCODE(QCOLLTOTAL+8, 'EXCH ' , NON , 0 ,QCOLLTOTAL+9);
|
||||
50230 QCODE(QCOLLTOTAL+9, 'OAADD ' , NON , 0 ,QCOLLTOTAL+10);
|
||||
50240 QCODE(QCOLLTOTAL+10,'JFALSE ' , JMP , 1 ,PCOLLTOTAL);
|
||||
50250 OCODE(PCOLLTOTAL+3,'COLLTP ' ,PR1,PR2,FP0);
|
||||
50260 OCODE(PCOLLTOTAL+4,'COLLTM ' ,PR1,PR2,FP0);
|
||||
50270 OCODE(PCOLLNAKED , 'COLLNP ' ,PR1,PR2,FP0);
|
||||
50280 ICODE(PNAKEDPTR , 'JFALSE ' , JMP , 1 ,QNAKEDPTR ,ER0, O , E );
|
||||
50282 QCODE(QNAKEDPTR , 'LR0 ' , NON , 0 ,0);
|
||||
50290 ICODE(PLINE , 'CI ' , OPX , 0 ,QLINE , O , O , O );
|
||||
50300 QCODE(QLINE , ' IS ' , WNP ,12 ,0);
|
||||
50320 OCODE(PENDSLICE , 'ENDSL ' ,PR1, O , E );
|
||||
50330 OCODE(PTRIM , 'SLICEA ' , O , O , O );
|
||||
50340 OCODE(PTRIM+1 , 'SLICEB ' , O , O , O );
|
||||
50350 OCODE(PTRIM+2 , 'SLICEC ' , O , O , O );
|
||||
50360 OCODE(PTRIM+3 , 'SLICED ' , O , O , O );
|
||||
50370 OCODE(PTRIM+4 , 'SLICEE ' , O , O , O );
|
||||
50380 OCODE(PTRIM+5 , 'SLICEF ' , O , O , O );
|
||||
50390 OCODE(PTRIM+6 , 'SLICEG ' , O , O , O );
|
||||
50400 OCODE(PTRIM+7 , 'SLICEH ' , O , O , O );
|
||||
50410 OCODE(PTRIM+8 , 'SLICEI ' , O , O , O );
|
||||
50420 OCODE(PTRIM+9 , 'SLICEJ ' , O , O , O );
|
||||
50430 ICODE(PJMP , 'JUMP ' , LCX , 0 ,0 , O , O , O );
|
||||
50432 ICODE(PENVCHAIN , 'IL ' , WOP , 4 ,QENVCHAIN , O , O , O );
|
||||
50434 QCODE(QENVCHAIN , ' SR2 ' , NON , 0 ,0);
|
||||
50436 ICODE(PENVCHAIN+1, 'LRO2 ' , WOP ,196,QENVCHAIN , O , O , O );
|
||||
50438 ICODE(PDISCARD , 'JFALSE ' , JMP , 1 ,0 , O , O , O );
|
||||
50440 ICODE(PDUP1ST , 'SFA ' , NON , 0 ,QDUP1ST ,STP, O , E );
|
||||
50441 ICODE(PDUP1ST+1 , 'SFA ' , NON , 0 ,QDUP2ND ,ST4, O ,FP1);
|
||||
50442 QCODE(QDUP1ST , 'LI ' , NON , 0 ,0);
|
||||
50450 ICODE(PDUP2ND , 'SFA ' , NON , 0 ,QDUP1ST ,STP, E , E );
|
||||
50460 ICODE(PDUP2ND+1 , 'SFA ' , NON , 0 ,QDUP2ND ,ST4, E ,FP1);
|
||||
50464 ICODE(PDUP2ND+2 , 'SFA ' , NON , 0 ,QDUP1ST ,STP,F0P, E );
|
||||
50466 ICODE(PDUP2ND+3 , 'SFA ' , NON , 0 ,QDUP2ND ,ST4,F0P,FP1);
|
||||
50468 QCODE(QDUP2ND , 'LDI ' , WOP , 1 ,0);
|
||||
50470 ICODE(PDATALIST , 'CI ' , OPX , 0 ,QDATALIST ,SNS, O ,SDL);
|
||||
50471 QCODE(QDATALIST , 'IPUSH ' , NON , 0 ,PALIGN);
|
||||
50472 ICODE(PASP , 'ASFW ' , OPX , 0 , 0 , O , O , O );
|
||||
50474 ICODE(PALIGN , 'ALIGN ' , NON , 0 , 0 , O , O , O );
|
||||
50476 ICODE(PHEAVE , 'SFA ' , NON , 0 ,QHEAVE , O , O , O );
|
||||
50478 QCODE(QHEAVE , 'SFA ' , NON , 0 ,QHEAVE+1);
|
||||
50480 QCODE(QHEAVE+1 , 'CI ' , WOP , 2 ,QHEAVE+2);
|
||||
50482 QCODE(QHEAVE+2 , 'ISUB ' , NON , 0 ,QHEAVE+3);
|
||||
50484 QCODE(QHEAVE+3 , 'CI ' , OPX , 0 ,QHEAVE+4);
|
||||
50486 QCODE(QHEAVE+4 , ' MVW ' , NON , 0 ,QHEAVE+5);
|
||||
50487 QCODE(QHEAVE+5 , 'ASFW ' , WNP , 2 ,0);
|
||||
50490 ICODE(PHOIST , 'ASFW ' , ONX , 0 ,QHOIST , O , O , O );
|
||||
50492 QCODE(QHOIST , 'CI ' , ACX , 0 ,QHOIST+1);
|
||||
50493 QCODE(QHOIST+1 , 'IPUSH ' , NON , 0 ,QHOIST+2);
|
||||
50494 OCODE(QHOIST+2 , 'HOIST ' , O , O , O );
|
||||
50496 ICODE(PPUSH , 'IL ' , OPX , 0 ,QIPUSH , O , O , O );
|
||||
50498 QCODE(QIPUSH , 'IPUSH ' , NON , 0 , 0 );
|
||||
50510 ICODE(PPUSH+1 , 'LRO3 ' , OPX ,250,QIPUSH , O , O ,ST );
|
||||
50512 ICODE(PPUSH+2 , 'LRO2 ' , OPX ,192,QIPUSH , O , O , O );
|
||||
50520 ICODE(PPUSHIM , 'CI ' , OPX , 0 ,QIPUSH , O , O ,ST );
|
||||
50530 ICODE(PPUSHIM+1 , 'LGA ' , GBX , 0 ,QIPUSH , O , O , O );
|
||||
50531 ICODE(PLOADEIM , 'CI ' , OPX , 0 ,0 , O , O , E );
|
||||
50532 ICODE(PLOADEIM+1 , 'LGA ' , GBX , 0 ,0 , O , O , O );
|
||||
50533 ICODE(PLOADE , 'IL ' , OPX , 0 ,0 , O , O , O );
|
||||
50534 ICODE(PLOADE+1 , 'LRO3 ' , OPX ,250,0 , O , O , O );
|
||||
50535 ICODE(PLOADE+2 , 'LRO2 ' , OPX ,192,0 , O , O , O );
|
||||
50550 ICODE(PPUSHIM2 , 'LGA ' , OPX , 0 ,QPUSHIM2 , O , O , O ); (*SPECIAL FOR*)
|
||||
50552 QCODE(QPUSHIM2 , 'IPUSH ' , NON , 0 ,QPUSHIM2+1); (*MDCHAN AND *)
|
||||
50554 QCODE(QPUSHIM2+1 , 'IL ' , WNP , 2 ,QIPUSH); (*MDCODE *)
|
||||
50560 ICODE(PPUSHIM2+1 , 'LGA ' , GBX , 0 ,QPUSH2 , O , O , O );
|
||||
50570 ICODE(PPUSHER0 , 'IPUSH ' , NON , 0 ,QPUSHER0 , O , O , O );
|
||||
50572 QCODE(QPUSHER0 , 'LR0 ' , NON , 0 ,QPUSHER0+1);
|
||||
50574 QCODE(QPUSHER0+1 , 'IPUSH ' , NON , 0 ,0);
|
||||
50580 ICODE(PLOADER0F0 , 'RPUSH ' , WOP , 0 ,PLOADER0STK , O , O , O );
|
||||
50582 ICODE(PLOADER0F1 , 'RPUSH ' , WOP , 1 ,PLOADER0STK , O , O , O );
|
||||
50590 ICODE(PLOADER0STK, 'SFA ' , NON , 0 ,QLOADER0STK , O , O , O );
|
||||
50592 QCODE(QLOADER0STK, ' SR1 ' , NON , 0 ,QLOADER0STK+1);
|
||||
50594 QCODE(QLOADER0STK+1,'LRO1 ' , WOP , 0 ,QLOADER0STK+2);
|
||||
50596 QCODE(QLOADER0STK+2,' SR0 ' , NON , 0 ,QLOADER0STK+3);
|
||||
50598 QCODE(QLOADER0STK+3,'LRO1 ' , WOP , 2 ,QLOADER0STK+4);
|
||||
50600 QCODE(QLOADER0STK+4,'ASFW ' , WOP , 4 ,0);
|
||||
50640 ICODE(PPUSH2 , 'LAS ' , OPX , 0 ,QPUSH2 , O , O , O );
|
||||
50650 QCODE(QPUSH2 , 'LDI ' , WOP , 3 ,QPUSH2+1);
|
||||
50652 QCODE(QPUSH2+1 , 'RPUSH ' , WOP , 3 ,0);
|
||||
50660 ICODE(PPUSH2+1 , 'LRO3 ' , OPX ,252,QPUSH2+2 , O , O , O );
|
||||
50662 QCODE(QPUSH2+2 , 'IPUSH ' , NON , 0 ,PPUSH+1);
|
||||
50670 ICODE(PPUSH2+2 , 'LRO2 ' , OPX ,194,QPUSH2+3 , O , O , O );
|
||||
50672 QCODE(QPUSH2+3 , 'IPUSH ' , NON , 0 ,PPUSH+2);
|
||||
50690 ICODE(PDECM , 'CI ' , OPX , 0 ,0 , O , O , O );
|
||||
50694 QCODE(PDECM+1 , ' IS ' , ONX , 0 ,0);
|
||||
50696 ICODE(PETOSTK , 'IPUSH ' , NON , 0 ,0 , O , O , O );
|
||||
50700 ICODE(PETOSTK+1 , 'ASFW ' , WNP , 4 ,QETOSTK , O , O , O );
|
||||
50701 QCODE(QETOSTK , 'SFA ' , NON , 0 ,QETOSTK+1);
|
||||
50702 QCODE(QETOSTK+1 , 'SR1 ' , NON , 0 ,QETOSTK+2);
|
||||
50703 QCODE(QETOSTK+2 , 'JFALSE ' , JMP , 1 ,QETOSTK+3);
|
||||
50704 QCODE(QETOSTK+3 , 'SRO1 ' , WOP , 0 ,QETOSTK+4);
|
||||
50705 QCODE(QETOSTK+4 , 'JFALSE ' , JMP , 1 ,QETOSTK+5);
|
||||
50706 QCODE(QETOSTK+5 , 'SRO1 ' , WOP , 2 ,0);
|
||||
50714 OCODE(PETOSTK+2 , 'ETOSTK ' , O , O , O );
|
||||
50715 ICODE(PSTKTOE , 'SFA ' , NON , 0 ,QLOADI , O , O , O );
|
||||
50716 QCODE(QLOADI , 'LI ' , NON , 0 ,QADJSP2 );
|
||||
50717 QCODE(QADJSP2 , 'ASFW ' , WOP , 2 ,0 );
|
||||
50718 ICODE(PSTKTOE+1 , 'SFA ' , NON , 0 ,QSTKTOE , O , O , O );
|
||||
50719 QCODE(QSTKTOE , ' SR1 ' , NON , 0 ,QSTKTOE+1 );
|
||||
50720 QCODE(QSTKTOE+1 , 'LRO1 ' , WOP , 2 ,QSTKTOE+2 );
|
||||
50721 QCODE(QSTKTOE+2 , 'LRO1 ' , WOP , 0 ,QADJSP4 );
|
||||
50722 QCODE(QADJSP4 , 'ASFW ' , WOP , 4 ,0 );
|
||||
50723 OCODE(PSTKTOE+2 , 'STKTOE ' , O , O , O );
|
||||
50724 ICODE(PSWAP , 'EXCH ' , NON , 0 ,0 , O , O , O );
|
||||
50725 ICODE(PPUSHFSTK , 'RPUSH ' , WOP , 0 ,0 , O , O , O );
|
||||
50726 ICODE(PPUSHFSTK1 , 'RPUSH ' , WOP , 1 ,0 , O , O , O );
|
||||
50727 ICODE(PLOADF , 'LAS ' , OPX , 0 ,QLOADF , O , O , O );
|
||||
50728 QCODE(QLOADF , 'LDI ' , WOP , 0 ,0);
|
||||
50732 ICODE(PLOADFIM , 'LGA ' , GBX , 0 ,QLOADF , O , O , O );
|
||||
50734 ICODE(PLOADF1 , 'LAS ' , OPX , 0 ,QLOADF1 , O , O , E );
|
||||
50735 QCODE(QLOADF1 , 'LDI ' , WOP , 1 ,0 );
|
||||
50739 ICODE(PLOADFIM1 , 'LGA ' , GBX , 0 ,QLOADF1 , O , O ,FP1);
|
||||
50742 ICODE(PLOADFSTK , 'RPOP ' , WOP , 0 ,0 , O , O , O );
|
||||
50743 ICODE(PLOADFSTK1 , 'RPOP ' , WOP , 1 ,0 , O , O , O );
|
||||
50744 ICODE(PF0TOF1 , 'RPUSH ' , WOP , 0 ,PLOADFSTK1 , O , O ,FP1);
|
||||
50745 ICODE(PF1TOF0 , 'RPUSH ' , WOP , 1 ,PLOADFSTK , O , O ,FP0);
|
||||
50750 END;
|
||||
50755 PROCEDURE INITPOPARRAY;
|
||||
50757 VAR I,J:SBTTYP;
|
||||
50760 BEGIN
|
||||
50761 FOR I := SBTSTK TO SBTFPR3 DO
|
||||
50770 FOR J := SBTVOID TO SBTFPR3 DO
|
||||
50780 BEGIN
|
||||
50790 POPARRAY [I,J] := PNONE;
|
||||
50800 POPARRAY [I,I] := PNOOP;
|
||||
50810 POPARRAY [I,SBTVOID] :=PNOOP;
|
||||
50820 POPARRAY [I,SBTVAR ] := PLOADVAR;
|
||||
50822 POPARRAY [I,SBTPROC] := PLOADRTA;
|
||||
50824 POPARRAY [I,SBTRPROC]:= PLOADRTA;
|
||||
50830 END;
|
||||
50910 POPARRAY[ SBTSTK , SBTSTK4 ] := PVARLISTEND+1;
|
||||
50920 POPARRAY[ SBTSTK , SBTID ] := PPUSH;
|
||||
50930 POPARRAY[ SBTSTK , SBTIDV ] := PPUSH;
|
||||
50940 POPARRAY[ SBTSTK , SBTLIT ] := PPUSHIM;
|
||||
50950 POPARRAY[ SBTSTK , SBTDEN ] := PPUSHIM;
|
||||
50951 POPARRAY[ SBTE , SBTID ] := PLOADE;
|
||||
50952 POPARRAY[ SBTE , SBTIDV ] := PLOADE;
|
||||
50954 POPARRAY[ SBTE , SBTVAR ] := PLOADVAR;
|
||||
50956 POPARRAY[ SBTE , SBTLIT ] := PLOADEIM;
|
||||
50958 POPARRAY[ SBTE , SBTDEN ] := PLOADEIM;
|
||||
50960 POPARRAY[ SBTSTK , SBTDL ] := PNOOP;
|
||||
50970 POPARRAY[ SBTSTK4 , SBTID ] := PPUSH2;
|
||||
50980 POPARRAY[ SBTSTK4 , SBTIDV ] := PPUSH2;
|
||||
51000 POPARRAY[ SBTSTK4 , SBTDEN ] := PPUSHIM2;
|
||||
51030 POPARRAY[ SBTSTK , SBTPR1 ] := PNOOP;
|
||||
51040 POPARRAY[ SBTSTK , SBTPR2 ] := PNOOP;
|
||||
51050 POPARRAY[ SBTSTK4 , SBTPR1 ] := PNOOP;
|
||||
51060 POPARRAY[ SBTSTK4 , SBTPR2 ] := PNOOP;
|
||||
51070 POPARRAY[ SBTSTK4 , SBTSTK ] := PSTOS4;
|
||||
51071 POPARRAY[ SBTSTK , SBTE ] := PETOSTK;
|
||||
51072 POPARRAY[ SBTE , SBTSTK ] := PSTKTOE;
|
||||
51073 POPARRAY[ SBTSTK4 , SBTFPR0 ] := PPUSHFSTK;
|
||||
51074 POPARRAY[ SBTSTK4 , SBTFPR1 ] := PPUSHFSTK1;
|
||||
51075 POPARRAY[ SBTFPR0 , SBTID ] := PLOADF;
|
||||
51076 POPARRAY[ SBTFPR0 , SBTIDV ] := PLOADF;
|
||||
51077 POPARRAY[ SBTFPR0 , SBTLIT ] := PLOADFIM;
|
||||
51078 POPARRAY[ SBTFPR0 , SBTDEN ] := PLOADFIM-1;
|
||||
51079 POPARRAY[ SBTFPR1 , SBTID ] := PLOADF1;
|
||||
51080 POPARRAY[ SBTFPR1 , SBTIDV ] := PLOADF1;
|
||||
51082 POPARRAY[ SBTFPR1 , SBTLIT ] := PLOADFIM1;
|
||||
51083 POPARRAY[ SBTFPR1 , SBTDEN ] := PLOADFIM1-1;
|
||||
51084 POPARRAY[ SBTFPR0 , SBTSTK4 ] := PLOADFSTK;
|
||||
51085 POPARRAY[ SBTFPR1 , SBTSTK4 ] := PLOADFSTK1;
|
||||
51086 POPARRAY[ SBTFPR1 , SBTFPR0 ] := PF0TOF1;
|
||||
51087 POPARRAY[ SBTFPR0 , SBTFPR1 ] := PF1TOF0;
|
||||
51090 POPARRAY[ SBTSTK4 , SBTER0 ] := PPUSHER0;
|
||||
51092 POPARRAY[ SBTSTK4 , SBTSTKR0] := PPUSHER0; (*ACTUALLY, LOAD PUTS IT INTO SBTER0 FIRST*)
|
||||
51094 POPARRAY[ SBTER0 , SBTSTKR0] := PNOOP; (*ACTUALLY, LOAD PUTS IT INTO SBTER0 FIRST*)
|
||||
51100 POPARRAY[ SBTER0 , SBTSTK4 ] := PLOADER0STK;
|
||||
51110 POPARRAY[ SBTER0 , SBTFPR0 ] := PLOADER0F0;
|
||||
51120 POPARRAY[ SBTER0 , SBTFPR1 ] := PLOADER0F1;
|
||||
51130 END;
|
||||
51140 PROCEDURE INITLENARRAY;
|
||||
51150 VAR I:SBTTYP;
|
||||
51160 BEGIN
|
||||
51170 FOR I := SBTSTK TO SBTXN DO LENARRAY[I] := 0;
|
||||
51180 LENARRAY[SBTSTK ] := SZWORD;
|
||||
51184 LENARRAY[SBTSTK4] := 2*SZWORD;
|
||||
51186 LENARRAY[SBTSTKR0]:= SZWORD; (*FOR NAKES VALUES*)
|
||||
51190 LENARRAY[SBTE ] := SZWORD;
|
||||
51191 LENARRAY[SBTER0 ] := 2*SZWORD; (*FOR NAKED VALUES*)
|
||||
51192 LENARRAY[SBTFPR0] := 2*SZWORD;
|
||||
51193 LENARRAY[SBTFPR1] := 2*SZWORD;
|
||||
51194 LENARRAY[SBTFPR2] := 2*SZWORD;
|
||||
51195 LENARRAY[SBTFPR3] := 2*SZWORD;
|
||||
51210 END;
|
||||
51220 BEGIN (* INITCODES +)
|
||||
51230 FIRSTPART; SECONDPART; THIRDPART; INITPOPARRAY; INITLENARRAY;
|
||||
51240 END;
|
||||
51250 (*+)
|
||||
51260 ()+86+)
|
||||
51270 ()+05*)
|
||||
59771
|
||||
59772
|
||||
59773
|
||||
60280 (**)
|
||||
60290 (**)
|
||||
60300 (**)
|
||||
60310 (**)
|
||||
60320 (**)
|
||||
60340 BEGIN
|
||||
60360 (*+25() LINELIMIT(OUTPUT,10000); LINELIMIT(LSTFILE,10000); ()+25*)
|
||||
60375 DUMP(FIRSTSTACK,LASTSTACK);
|
||||
60380 END (*+25() (*$G-+) ()+25*).
|
||||
####S
|
||||
Reference in New Issue
Block a user