60000 (* COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER *) 60010 (**) 60020 (**) 60030 (*+86() 60031 (************************************) 60032 (* EM-1 VERSION *) 60033 (************************************) 60034 (**) 60035 (************************************) 60036 (* MEANING OF PARAMTYPES *) 60037 (************************************) 60038 (**) 60040 (* WOP - OPERAND SUPPLIED BY CODETABLE 60042 WNP - NEGATIVE OF OPERAND SUPPLIED BY CODETABLE 60043 WLB - OPERAND SUPPLIED BY CODETABLE IS A GLOBAL LABEL OFFSET 60044 OPX - OPERAND SUPPLIED BY CODE GENERATOR 60046 ONX - NEGATIVE OF OPERAND SUPPLIED BY CODE GENERATOR 60048 OPL - OPERAND SUPPLIED BY CODE GENERATOR IS A GLOBAL LABEL OFFSET 60049 ONL - NEGATIVE OF ABOVE 60050 LCX - LOCAL INSTRUCTION LABEL 60052 GBX - GLOBAL DATA LABEL 60054 NON - NO OPERAND 60056 JMP - FORWARD JUMP WITHIN CODETABLE 60058 ACP - AS WOP, BUT PROVIDES LAST OPERAND FOR AN OCODE 60059 ACB - AS WLB, BUT DITTO 60060 ANP - AS WNP, BUT DITTO 60062 ACX - AS OPX, BUT DITTO 60064 ANX - AS ONX, BUT DITTO 60066 ACL - AS OPL, BUT DITTO 60067 ANL - AS ONL, BUT DITTO 60068 MOR - LONG OPERAND IN PARAM SUPPLIED BY CODETABLE 60072 *) 60080 PROCEDURE INITCODES; 60090 (* INITIALISES CODETABLE *) 60100 CONST 60310 (* EXTRA P-OPS AND CODETABLE ENTRIES *) 60320 PPUSH1(*3*)=200; PPUSHFTN(*3*)=203; PS4TOS2=206; PPUSHIM2(*2*)=207; PPUSH2(*3*)=209; PSTOS2=212; PPUSHIM4(*2*)=213; 60328 PLOADRTA(*3*)=215; PPUSHI2A=218; 60330 QDCLINIT(*5*)=219; QCOLLTOTAL(*8*)=224; QSELECT=232; QEQ=233; QGE=234; QGT=235; 60340 QRANGENT=238; QLOADRTA=239; QLE=240; QLT=241; QNE=242; 60350 QNOTB=243; QODD=244; QCAS=245; QSCOPENT=246; QLEBT=247; 60360 QCFSTRNG=248; QVOIDNM(*5*)=249; QDCLSP(*6*)=254; QOUTJUMP(*4*)=260; QWIDEN(*2*)=264; 60370 QELMBT=266; QRANGEXT(*2*)=267; QASGVART(*2*)=269; QASSIGNT(*2*)=271; QPASC(*2*)=273; 60376 QLOOPINCR(*5*)=275; QPUSH2=280; QPUSHIM4(*2*)=281; QGETPROC(*2*)=283; QABSI(*6*)=285; 60380 QDUP2ND(*2*)=291; QDUP2PILE=293; (*SPARE(2)=294;*) QCALLA(*4*)=296; QHOIST(*2*)=300; QLOADVAR(*5*)=302; 60382 QLPINIT(*4*)=307; QSCOPEVAR(*5*)=311; QSETIB(*3*)=316; QRNSTART(*2*)=319; 60384 (*321-350 SPARE*) 60390 ST=SBTSTK; STP=SBTSTK; STS=SBTSTK; 60400 ST2=SBTSTK2; S2P=SBTSTK2; S2S=SBTSTK2; 60410 ST4=SBTSTK4; S4P=SBTSTK4; S4S=SBTSTK4; 60420 STN=SBTSTKN; SNP=SBTSTKN; SNS=SBTSTKN; 60430 PR1=SBTPR1; PR2=SBTPR2; PRR=SBTPRR; 60440 O=SBTVOID; DLS=SBTDL; 60445 SRE=SBTSTK4;SP=(*+19()SBTSTK2()+19*)(*-19()SBTSTK()-19*); 60450 (**) 60460 PROCEDURE ICODE(OPCOD:POP;EMCODE:COMPACT;TYP:PARAMTYPES;PM:INTEGER;PNXT:POP;VP1,VP2,VPR:SBTTYP); 60470 BEGIN 60480 WITH CODETABLE[OPCOD] DO 60490 BEGIN 60500 INLINE := TRUE; 60510 EMCOD := EMCODE; 60520 P1 := VP1; 60530 P2 := VP2; 60540 PR := VPR; 60550 NEXT := PNXT; 60560 PARTYP := TYP; 60570 CASE TYP OF 60580 LCX,GBX,WLB,ACB,OPX,ONX,ACX,ANX,OPL,ONL,ACL,ANL,NON:PARM := PM; 60590 WOP,ACP,JMP: PARM := PM; 60595 WNP,ANP: PARM := -PM; 60596 MOR: PARM:=PM; 60600 END; 60610 END; 60620 END; 60630 (*+) 60640 PROCEDURE QCODE(OPCOD:POP;EMCODE:COMPACT;TYP:PARAMTYPES;PM:INTEGER;PNXT:POP); 60650 BEGIN 60660 ICODE(OPCOD,EMCODE,TYP,PM,PNXT,O,O,O); 60670 END; 60680 (*+) 60690 PROCEDURE OCODE(OPCOD:POP;PROUTINE:ALFA;VP1,VP2,VPR:SBTTYP); 60700 VAR I:INTEGER; 60710 BEGIN 60720 WITH CODETABLE[OPCOD] DO 60730 BEGIN 60740 INLINE := FALSE; 60750 P1 := VP1; 60760 P2 := VP2; 60770 PR := VPR; 60780 IF (P1=O) AND (P2 <> O) THEN WRITELN(LSTFILE,'FAILED OCODE-A'); 60790 FOR I := 1 TO RTNLENGTH DO ROUTINE[I] := PROUTINE[I]; 60800 END; 60810 END; 60820 PROCEDURE FIRSTPART; 60830 VAR I:INTEGER; 60840 BEGIN 60850 FOR I := PNONE TO PLAST DO OCODE(I,'DUMMY ',O,O,O); 60860 OCODE(PPEND , 'STOP68 ' , O , O , O ); 60864 OCODE(PPBEGIN , 'ESTART0 ' , O , O , O ); 60870 OCODE(PPBEGIN+1 , 'START68 ' , O , O , O ); 60880 ICODE(PABSI , DUP , WOP , SZINT ,QABSI ,ST , O ,ST ); 60890 QCODE(QABSI , ZGE , JMP , 2 ,QABSI+1 ); 60900 QCODE(QABSI+1 , NGI , WOP , SZINT ,0 ); 60910 ICODE(PABSI-2 , DUP , WOP , SZREAL ,QABSI+2,SRE, O ,SRE); 60920 OCODE(PABSI-4 , 'CABSI ' ,PR1, O ,PRR); 60924 QCODE(QABSI+2 , ZRF , WOP , SZREAL ,QABSI+3 ); 60930 QCODE(QABSI+3 , CMF , WOP , SZREAL ,QABSI+4 ); 60940 QCODE(QABSI+4 , ZGE , JMP , 2 ,QABSI+5 ); 60950 QCODE(QABSI+5 , NGF , WOP , SZREAL ,0 ); 60960 ICODE(PABSB , NOP , NON , 0 ,0 ,ST , O ,ST ); 60970 ICODE(PABSB-1 , NOP , NON , 0 ,0 ,ST , O ,ST ); 60980 ICODE(PABSCH , NOP , NON , 0 ,0 ,ST , O ,ST ); 60990 ICODE(PADD , ADI , WOP , SZINT ,0 ,ST ,ST ,ST ); 61020 ICODE(PADD-2 , ADF , WOP , SZREAL ,0 ,SRE,SRE,SRE); 61040 OCODE(PADD-4 , 'CPLUS ' ,PR1,PR2,PRR); 61050 ICODE(PANDB , CAND , WOP , SZWORD ,0 ,ST ,ST ,ST ); 61060 ICODE(PANDB-1 , CAND , WOP , SZINT ,0 ,ST ,ST ,ST ); 61070 OCODE(PARG , 'CARG ' ,PR1,O ,PRR); 61080 ICODE(PBIN , NOP , NON , 0 ,0 ,ST , O ,ST ); 61090 OCODE(PCAT , 'CATCC ' ,PR1,PR2,PRR); 61100 OCODE(PCAT-1 , 'CATSS ' ,PR1,PR2,PRR); 61110 OCODE(PCONJ , 'CCONJ ' ,PR1,O ,PRR); 61120 OCODE(PDIV , 'DIV ' ,PR1,PR2,PRR); 61130 ICODE(PDIV-2 , DVF , WOP , SZREAL ,0 ,SRE,SRE,SRE); 61140 OCODE(PDIV-4 , 'CDIV ' ,PR1,PR2,PRR); 61150 ICODE(PDIVAB , DVF , WOP , SZREAL ,0 ,SRE,SRE,SRE); 61160 OCODE(PDIVAB-2 , 'CDIVAB ' ,PR1,PR2,PRR); 61170 ICODE(PELMBT , EXG , WOP , SZINT ,QELMBT , ST, ST, ST); 61180 QCODE(QELMBT , ROL , WOP , SZINT ,PODD ); 61210 OCODE(PELMBY , 'ELMBY ' ,PR1,PR2,PRR); 61220 OCODE(PENTI , 'ENTIER ' ,PR1, O ,PRR); 61230 ICODE(PEQ , CMI , WOP , SZINT ,QEQ ,ST ,ST ,ST ); 61240 QCODE(QEQ , TEQ , NON , 0 ,0 ); 61250 ICODE(PEQ-2 , CMF , WOP , SZREAL ,QEQ ,SRE,SRE,ST ); 61260 OCODE(PEQ-4 , 'CEQ ' ,PR1,PR2,PRR); 61270 ICODE(PEQB , CMI , WOP , SZINT ,QEQ ,ST ,ST ,ST ); 61280 ICODE(PEQB-1 , CMI , WOP , SZWORD ,QEQ ,ST ,ST ,ST ); 61290 ICODE(PEQB-2 , CMI , WOP , SZWORD ,QEQ ,ST ,ST ,ST ); 61300 ICODE(PEQCS , CMI , WOP , SZINT ,QEQ ,ST ,ST ,ST ); 61310 ICODE(PEQCS-1 , LOC , ACP , 2 ,QCFSTRNG ,PR1,PR2,PRR); 61320 OCODE(QCFSTRNG , 'CFSTR ' , O , O , O ); 61330 OCODE(PEXP , 'POWI ' ,PR1,PR2,PRR); 61340 OCODE(PEXP-2 , 'POWR ' ,PR1,PR2,PRR); 61350 OCODE(PEXP-4 , 'CPOW ' ,PR1,PR2,PRR); 61355 ICODE(PPASC , LFC , WOP , 0 ,QPASC ,DLS, O ,PRR); 61357 QCODE(QPASC , LXL , WOP , 0 ,QPASC+1 ); 61360 QCODE(QPASC+1 , CAL , OPX , 0 ,0 ); 61370 ICODE(PPASC+1 , LXL , WOP , 0 ,QPASC+1 ,PR1, O ,PRR); 61380 ICODE(PPASC+2 , CAL , OPX , 0 ,0 ,PR1,PR2,PRR); 61390 OCODE(PPASC+3 , 'PASC ' ,PR1,PR2,PRR); 61395 ICODE(PASP , ASP , OPX , 0 ,0 , O , O , O ); 61400 ICODE(PENVCHAIN , LXL , OPX , 0 ,0 , O , O , O ); 61410 ICODE(PENVCHAIN+1, LXA , OPX , 0 ,0 , O , O , O ); 61420 ICODE(PGE , CMI , WOP , SZINT ,QGE ,ST ,ST ,ST ); 61430 ICODE(PGE-2 , CMF , WOP , SZREAL ,QGE ,SRE,SRE,ST ); 61440 ICODE(PGEBT , EXG , WOP , SZINT ,PLEBT ,ST ,ST ,ST ); 61450 ICODE(PGEBT-1 , CMU , WOP , SZINT ,QGE ,ST ,ST ,ST ); 61460 ICODE(PGECS , CMI , WOP , SZINT ,QGE ,ST ,ST ,ST ); 61470 ICODE(PGECS-1 , LOC , ACP , 4 ,QCFSTRNG ,PR1,PR2,PRR); 61480 QCODE(QGE , TGE , NON , 0 ,0 ); 61490 ICODE(PGT , CMI , WOP , SZINT ,QGT ,ST ,ST ,ST ); 61500 QCODE(QGT , TGT , NON , 0 ,0 ); 61510 ICODE(PGT-2 , CMF , WOP , SZREAL ,QGT ,SRE,SRE,ST ); 61520 ICODE(PGTBY , CMU , WOP , SZINT ,QGT ,ST ,ST ,ST ); 61530 ICODE(PGTCS , CMI , WOP , SZINT ,QGT ,ST ,ST ,ST ); 61540 ICODE(PGTCS-1 , LOC , ACP , 5 ,QCFSTRNG ,PR1,PR2,PRR); 61550 OCODE(PIM , 'CIM ' ,PR1, O ,PRR); 61560 ICODE(PLE , CMI , WOP , SZINT ,QLE ,ST ,ST ,ST ); 61570 QCODE(QLE , TLE , NON , 0 ,0 ); 61580 ICODE(PLE-2 , CMF , WOP , SZREAL ,QLE ,SRE,SRE,ST ); 61590 ICODE(PLEBT , COM , WOP , SZINT ,QLEBT ,ST ,ST ,ST ); 61592 QCODE(QLEBT , CAND , WOP , SZINT ,QEQ ); 61600 ICODE(PLEBT-1 , CMU , WOP , SZINT ,QLE ,ST ,ST ,ST ); 61610 ICODE(PLECS , CMI , WOP , SZINT ,QLE ,ST ,ST ,ST ); 61620 ICODE(PLECS-1 , LOC , ACP , 1 ,QCFSTRNG ,PR1,PR2,PRR); 61680 ICODE(PLT , CMI , WOP , SZINT ,QLT ,ST ,ST ,ST ); 61690 QCODE(QLT , TLT , NON , 0 ,0 ); 61700 ICODE(PLT-2 , CMF , WOP , SZREAL ,QLT ,SRE,SRE,ST ); 61710 ICODE(PLTBY , CMU , WOP , SZINT ,QLT ,ST ,ST ,ST ); 61720 ICODE(PLTCS , CMI , WOP , SZINT ,QLT ,ST ,ST ,ST ); 61730 ICODE(PLTCS-1 , LOC , ACP , 0 ,QCFSTRNG ,PR1,PR2,PRR); 61740 OCODE(PLWBMSTR , 'LWBMSTR ' ,PR1, O ,PRR); 61750 OCODE(PLWBM , 'LWBM ' ,PR1, O ,PRR); 61760 OCODE(PLWB , 'LWB ' ,PR1,PR2,PRR); 61770 ICODE(PMINUSAB , SBI , WOP , SZINT ,0 ,ST ,ST ,ST ); 61780 ICODE(PMINUSAB-2 , SBF , WOP , SZREAL ,0 ,SRE,SRE,SRE); 61790 OCODE(PMINUSAB-4 , 'CMINAB ' ,PR1,PR2,PRR); 61800 OCODE(PMOD , 'MOD ' ,PR1,PR2,PRR); 61810 OCODE(PMODAB , 'MOD ' ,PR1,PR2,PRR); 61820 ICODE(PMUL , MLI , WOP , SZINT ,0 ,ST ,ST ,ST ); 61830 ICODE(PMUL-2 , MLF , WOP , SZREAL ,0 ,SRE,SRE,SRE); 61870 OCODE(PMUL-4 , 'CTIMS ' ,PR1,PR2,PRR); 61880 OCODE(PMULCI , 'MULCI ' ,PR1,PR2,PRR); 61890 OCODE(PMULCI-1 , 'MULSI ' ,PR1,PR2,PRR); 61900 OCODE(PMULIC , 'MULIC ' ,PR1,PR2,PRR); 61910 OCODE(PMULIC-1 , 'MULIS ' ,PR1,PR2,PRR); 61920 END; 61930 PROCEDURE SECONDPART; 61940 BEGIN 61950 ICODE(PNE , CMI , WOP , SZINT ,QNE ,ST ,ST ,ST ); 61960 QCODE(QNE , TNE , NON , 0 ,0 ); 61970 ICODE(PNE-2 , CMF , WOP , SZREAL ,QNE ,SRE,SRE,ST ); 61980 OCODE(PNE-4 , 'CNE ' ,PR1,PR2,PRR); 61990 ICODE(PNEGI , NGI , WOP , SZINT ,0 ,ST , O ,ST ); 62000 ICODE(PNEB , CMI , WOP , SZINT ,QNE ,ST ,ST ,ST ); 62010 ICODE(PNEB-1 , CMI , WOP , SZINT ,QNE ,ST ,ST ,ST ); 62020 ICODE(PNEB-2 , CMI , WOP , SZINT ,QNE ,ST ,ST ,ST ); 62030 ICODE(PNECS , CMI , WOP , SZINT ,QNE ,ST ,ST ,ST ); 62040 ICODE(PNECS-1 , LOC , ACP , 3 ,QCFSTRNG ,PR1,PR2,PRR); 62050 ICODE(PNEGI-2 , NGF , WOP , SZREAL ,0 ,SRE, O ,SRE); 62060 OCODE(PNEGI-4 , 'CNEGI ' ,PR1,PR2,PRR); 62070 ICODE(PNOTB , LOC , WOP , 1 ,QNOTB ,ST , O ,ST ); 62080 QCODE(QNOTB , XOR , WOP , SZWORD ,0 ); 62090 ICODE(PNOTB-1 , COM , WOP , SZWORD ,0 ,ST , O ,ST ); 62100 ICODE(PNOOP , NOP , NON , 0 ,0 ,ST , O ,ST ); 62110 ICODE(PNOOP-2 , NOP , NON , 0 ,0 ,SRE, O ,SRE); 62120 ICODE(PNOOP-4 , NOP , NON , 0 ,0 ,SP, O ,SP); 62130 ICODE(PODD , LOC , WOP , 1 ,QODD ,ST , O ,ST ); 62140 QCODE(QODD , CAND , WOP , SZINT ,0 ); 62150 ICODE(PORB , IOR , WOP , SZWORD ,0 ,ST ,ST ,ST ); 62160 ICODE(PORB-1 , IOR , WOP , SZWORD ,0 ,ST ,ST ,ST ); 62170 ICODE(POVER , DVI , WOP , SZINT,0 ,ST ,ST ,ST ); 62180 ICODE(POVERAB , DVI , WOP , SZINT,0 ,ST ,ST ,ST ); 62190 OCODE(PPLITM , 'CRCOMPLEX ' ,PR1,PR2,PRR); 62200 ICODE(PPLSAB , ADI , WOP , SZINT ,0 ,ST ,ST ,ST ); 62210 ICODE(PPLSAB-2 , ADF , WOP , SZREAL ,0 ,SRE,SRE,SRE); 62250 OCODE(PPLSAB-4 , 'CPLUSAB ' ,PR1,PR2,PRR); 62260 OCODE(PPLSABS , 'PLABSS ' ,PR1,PR2,PRR); 62270 OCODE(PPLSABS-1 , 'PLABSS ' ,PR1,PR2,PRR); 62280 OCODE(PPLSTOCS , 'PLTOSS ' ,PR1,PR2,PRR); 62290 OCODE(PPLSTOCS-1 , 'PLTOSS ' ,PR1,PR2,PRR); 62300 OCODE(PRE , 'CRE ' ,PR1,O ,PRR); 62310 ICODE(PREPR , NOP , NON , 0 ,0 ,ST ,ST ,ST ); 62320 OCODE(PROUN , 'ROUN ' ,PR1, O ,PRR); 62330 OCODE(PSGNI , 'SIGNI ' ,PR1, O ,PRR); 62340 OCODE(PSGNI-2 , 'SIGNR ' ,PR1, O ,PRR); 62350 OCODE(PSHL , 'SHL ' ,PR1,PR2,PRR); 62410 OCODE(PSHR , 'SHR ' ,PR1,PR2,PRR); 62420 ICODE(PSUB , SBI , WOP , SZINT ,0 ,ST ,ST ,ST ); 62430 ICODE(PSUB-2 , SBF , WOP , SZREAL ,0 ,SRE,SRE,SRE); 62440 OCODE(PSUB-4 , 'CMINUS ' ,PR1,PR2,PRR); 62450 ICODE(PTIMSAB , MLI , WOP , SZINT ,0 ,ST ,ST ,ST ); 62460 ICODE(PTIMSAB-2 , MLF , WOP , SZREAL ,0 ,SRE,SRE,SRE); 62500 OCODE(PTIMSAB-4 , 'CTIMSAB ' ,PR1,PR2,PRR); 62510 OCODE(PTIMSABS , 'MULABSI ' ,PR1,PR2,PRR); 62520 OCODE(PUPBMSTR , 'UPBMSTR ' ,PR1, O ,PRR); 62530 OCODE(PUPBM , 'UPBM ' ,PR1, O ,PRR); 62540 OCODE(PUPB , 'UPB ' ,PR1,PR2,PRR); 62570 OCODE(PSELECT , 'SELECTT ' ,PR1, O ,PRR); 62575 OCODE(PSELECT+1 , 'SELECTS ' ,PR1, O ,PRR); 62576 OCODE(PSELECT+2 , 'SELECTN ' ,PR1, O ,PRR); 62580 (* ICODE(PSELECT+1 , LOC , OPX , 0 ,QSELECT ,ST , O ,ST ); 62590 QCODE(QSELECT , ADI , WOP , SZINT ,0 );*) 62600 OCODE(PSELECTROW , 'SELECTR ' ,PR1, O ,PRR); 62610 OCODE(PSTRNGSLICE, 'STRSUB ' ,PR1,PR2,PRR); 62620 OCODE(PSTRNGSLICE+1, 'STRTRIM ' ,PR1, O ,PRR); 62630 OCODE(PSTARTSLICE, 'STARTSL ' , O , O , O ); 62640 OCODE(PSLICE1 , 'SLICE1 ' ,PR1,PR2,PRR); 62650 OCODE(PSLICE2 , 'SLICE2 ' ,PR1,PR2,PRR); 62660 OCODE(PSLICEN , 'SLICEN ' ,PR1, O ,PRR); 62670 ICODE(PCASE , LAE , GBX , 0 ,QCAS ,ST , O , O ); 62680 QCODE(QCAS , CSA , WOP , SZWORD ,0 ); 62690 ICODE(PJMPF , ZEQ , LCX , 0 ,0 ,ST , O , O ); 62700 ICODE(PLPINIT , LAL , ANX , 0 ,QLPINIT ,PR1, O ,PRR); 62704 OCODE(QLPINIT , 'LINIT1 ' , O , O , O ); 62710 ICODE(PLPINIT+1 , LAL , ANX , 0 ,QLPINIT+1 ,PR1, O ,PRR); 62714 OCODE(QLPINIT+1 , 'LINIT2 ' , O , O , O ); 62720 ICODE(PLPINIT+2 , LAL , ANX , 0 ,QLPINIT+2 ,PR1, O , O ); 62724 OCODE(QLPINIT+2 , 'LINIT3 ' , O , O , O ); 62730 ICODE(PLPINIT+3 , LAL , ANX , 0 ,QLPINIT+3 ,PR1, O , O ); 62734 OCODE(QLPINIT+3 , 'LINIT4 ' , O , O , O ); 62740 ICODE(PLPTEST , ZEQ , LCX , 0 ,0 ,ST , O , O ); 62750 ICODE(PLPINCR , LAL , ANX , 0 ,QLOOPINCR+4 , O , O ,PRR); 62760 ICODE(PLPINCR+1 , INL , ONX , 0 ,QLOOPINCR , O , O ,ST ); 62770 QCODE(QLOOPINCR , LOL , ONX , 0 ,QLOOPINCR+1 ); 62780 QCODE(QLOOPINCR+1, LOL , ONX , SZINT, QLOOPINCR+2 ); 62790 QCODE(QLOOPINCR+2, CMI , WOP , SZINT, QLOOPINCR+3 ); 62792 QCODE(QLOOPINCR+3, TLE , NON , 0 ,0 ); 62793 OCODE(QLOOPINCR+4, 'LOOPINC ' , O , O , O ); 62805 ICODE(PRANGENT , LAL , ANX , 0 ,QRANGENT , O , O , O ); 62810 OCODE(QRANGENT , 'RANGENT ' , O , O , O ); 62820 OCODE(PRANGEXT , 'RANGEXT ' , O , O , O ); 62830 ICODE(PRANGEXT+1 , LFL , WNP , 62835 SIZIBBASE+SIZLEBBASE-(2*SZWORD+2*SZADDR) ,QRANGEXT , O , O , O ); 62840 QCODE(QRANGEXT , LFF , WOP , 62845 2*SZWORD+2*SZADDR ,QRANGEXT+1 ); 62850 QCODE(QRANGEXT+1 , SFL , WNP , 62855 SIZIBBASE+SIZLEBBASE-(2*SZWORD+2*SZADDR) ,0 ); 62860 OCODE(PRANGEXT+2 , 'RANGXTP ' ,PR1, O ,PRR); 62865 OCODE(PRECGEN , 'DORECGEN ' , O , O , O ); 62870 OCODE(PACTDRSTRUCT,'CRSTRUCT ' ,PR1, O ,PRR); 62880 OCODE(PACTDRMULT , 'CRMULT ' ,PR1, O ,PRR); 62910 OCODE(PCHECKDESC , 'CHKDESC ' ,PR1,PR2,PRR); 62920 OCODE(PVARLISTEND, 'GARBAGE ' ,PR1, O , O ); 62930 ICODE(PVARLISTEND+1,ASP , WOP , SZINT ,0 , O , O ,ST ); 62940 ICODE(PDCLINIT , LOC , MOR , -32000-768,0 , O , O , O ); 62944 ICODE(PDCLINIT+1 , LAE , WLB ,-FIRSTIBOFFSET,QDCLINIT, O , O , O ); 62946 QCODE(QDCLINIT , LPB , NON , 0 ,QDCLINIT+1 ); 62948 QCODE(QDCLINIT+1 , ADP , WOP , (2*SZADDR)+(SZINT+SZLONG),QDCLINIT+2); 62950 QCODE(QDCLINIT+2 , LOI , WOP , SZADDR,0 ); 62952 ICODE(PDCLINIT+2 , DUP , WOP , SZINT,QDCLINIT+3 , O , O , O ); 62953 QCODE(QDCLINIT+3 , STL , ONX , SZINT ,0 ); 62954 ICODE(PDCLINIT+3 , DUP , WOP , SZADDR,QDCLINIT+4 , O , O , O ); 62955 QCODE(QDCLINIT+4 , SFL , ONX , SZADDR ,0 ); 62960 OCODE(PCREATEREF , 'CRREFN ' ,PR1, O ,PRR); 62970 OCODE(PCREATEREF+1, 'CRRECN ' ,PR1, O ,PRR); 62980 OCODE(PCREATEREF+2, 'CRREFR ' ,PR1, O ,PRR); 62990 OCODE(PCREATEREF+3, 'CRRECR ' ,PR1, O ,PRR); 63000 OCODE(PCREATEREF+4, 'SETCC ' ,PR1, O ,PRR); 63010 ICODE(PDCLSP , STL , ONX , SZWORD , 0 ,ST , O , O ); 63012 (*+12() ICODE(PDCLSP+1 , SFL , ONX , SZADDR ,QDCLSP ,SP , O , O ); 63040 QCODE(QDCLSP , LIL , ONX , SZADDR,QDCLSP+1 ); 63050 QCODE(QDCLSP+1 , INC , NON , 0 ,QDCLSP+2 ); 63060 QCODE(QDCLSP+2 , SIL , ONX , SZADDR, 0 ); ()+12*) 63072 (*+13() ICODE(PDCLSP+1 , DUP , WOP , SZADDR,QDCLSP ,SP , O , O ); 63073 QCODE(QDCLSP , STL , ONX , SZADDR,QDCLSP+1 ); 63074 QCODE(QDCLSP+1 , DUP , WOP , SZADDR,QDCLSP+2 ); 63075 QCODE(QDCLSP+2 , LOI , WOP , 2 ,QDCLSP+3 ); 63076 QCODE(QDCLSP+3 , INC , NON , 0 ,QDCLSP+4 ); 63077 QCODE(QDCLSP+4 , EXG , WOP , SZADDR,QDCLSP+5 ); 63078 QCODE(QDCLSP+5 , STI , WOP , 2 , 0 ); ()+13*) 63080 OCODE(PDCLSP+2 , 'DCLSN ' ,SNS, O , O ); 63090 OCODE(PDCLSP+3 , 'DCLPN ' ,SNS, O , O ); 63099 ICODE(PFIXRG , LAL , ONX , 0 ,0 , O , O , O ); 63100 ICODE(PFIXRG+1 , SFL , ONX , 0 ,0 , O , O , O ); 63101 END; 63110 PROCEDURE THIRDPART; 63120 BEGIN 63130 OCODE(PBOUNDS , 'BOUND ' ,STS, O ,PRR); 63140 ICODE(PLOADVAR , LAL , ACX , 0 ,QLOADVAR , O , O ,PRR); 63145 QCODE(QLOADVAR , LXL , ACP , 0 ,QLOADVAR+4 ); 63150 ICODE(PLOADVAR+1 , LAE , ACL , 0 ,QLOADVAR+1 , O , O ,PRR); 63155 QCODE(QLOADVAR+1 , LAE , ACB ,-FIRSTIBOFFSET,QLOADVAR+4 ); 63156 ICODE(PLOADVAR+2 , DUP , ACP ,SZADDR,QLOADVAR+2,O , O ,PRR); 63157 QCODE(QLOADVAR+2 , ADP , ACX , 0 ,QLOADVAR+3 ); 63158 QCODE(QLOADVAR+3 , EXG , WOP , SZADDR,QLOADVAR+4 ); 63160 OCODE(QLOADVAR+4 , 'GLDVAR ' , O , O , O ); 63170 OCODE(PLOADRT , 'ROUTN ' , O , O ,PRR); 63172 ICODE(PLOADRTA , LXL , ACP , 0 ,QLOADRTA , O , O ,SP); 63174 ICODE(PLOADRTA+1 , LAE , ACB ,-FIRSTIBOFFSET,QLOADRTA, O , O ,SP); 63176 ICODE(PLOADRTA+2 , ADP , ACP , 0 ,QLOADRTA , O , O ,SP); 63178 OCODE(QLOADRTA , 'ROUTNA ' , O , O , O ); 63180 OCODE(PLOADRTP , 'ROUTNP ' ,PR1, O ,PRR); 63190 OCODE(PSCOPETT+2 , 'TASSTPT ' ,PR1,PR2,PRR); 63200 OCODE(PSCOPETT+3 , 'SCPTTP ' ,PR1,PR2,PRR); 63210 OCODE(PSCOPETT+4 , 'SCPTTM ' ,PR1,PR2,PRR); 63220 OCODE(PASSIGTT , 'TASSTS ' ,PR1,PR2,PRR); 63225 OCODE(PASSIGTT+1 , 'TASSTS2 ' ,PR1,PR2,PRR); 63230 OCODE(PASSIGTT+2 , 'TASSTPT ' ,PR1,PR2,PRR); 63240 OCODE(PASSIGTT+3 , 'TASSTP ' ,PR1,PR2,PRR); 63250 OCODE(PASSIGTT+4 , 'TASSTM ' ,PR1,PR2,PRR); 63260 OCODE(PSCOPETN , 'SCPTNP ' ,PR1,PR2,PRR); 63270 OCODE(PASSIGTN , 'TASSNP ' ,PR1,PR2,PRR); 63300 OCODE(PSCOPENT+2 , 'SCPNTPT ' ,PR1,PR2,PRR); 63310 OCODE(PSCOPENT+3 , 'SCPNTP ' ,PR1,PR2,PRR); 63330 OCODE(PASSIGNT , 'NASSTS ' ,PR1,PR2,PRR); 63340 OCODE(PASSIGNT+1 , 'NASSTS2 ' ,PR1,PR2,PRR); 63350 OCODE(PASSIGNT+2 , 'NASSTPT ' ,PR1,PR2,PRR); 63360 OCODE(PASSIGNT+3 , 'NASSTP ' ,PR1,PR2,PRR); 63390 OCODE(PSCOPENN , 'SCPNNP ' ,PR1,PR2,PRR); 63410 OCODE(PASSIGNN , 'NASSNP ' ,PR1,PR2,PRR); 63430 ICODE(PSCOPEVAR , LAL , ACX , 0 ,QSCOPEVAR ,PR1, O , O ); 63435 QCODE(QSCOPEVAR , LXL , ACP , 0 ,QSCOPEVAR+4 ); 63440 ICODE(PSCOPEVAR+1, LAE , ACL , 0 ,QSCOPEVAR+1 ,PR1, O , O ); 63445 QCODE(QSCOPEVAR+1, LAE , ACB ,-FIRSTIBOFFSET,QSCOPEVAR+4 ); 63446 ICODE(PSCOPEVAR+2, DUP , ACP,SZADDR,QSCOPEVAR+2,PR1,O , O ); 63447 QCODE(QSCOPEVAR+2, ADP , ACX , 0 ,QSCOPEVAR+3 ); 63448 QCODE(QSCOPEVAR+3, EXG , WOP , SZADDR ,QSCOPEVAR+4 ); 63450 OCODE(QSCOPEVAR+4, 'GVSCOPE ' , O , O , O ); 63460 OCODE(PSCOPEEXT , 'SCOPEXT ' ,PR1, O ,PRR); 63470 ICODE(PASGVART , STL , OPX , 0 ,0 ,ST , O , O ); 63480 ICODE(PASGVART+1 , STE , OPL , 0 ,0 ,ST , O , O ); 63490 ICODE(PASGVART+2 , STF , OPX , 0 ,0 ,ST , O , O ); 63510 ICODE(PASGVART+3 , LAL , OPX , 0 ,QASGVART ,SRE, O , O ); 63520 QCODE(QASGVART , STI , WOP , SZREAL ,0 ); 63530 ICODE(PASGVART+4 , LAE , OPL , 0 ,QASGVART ,SRE, O , O ); 63540 ICODE(PASGVART+5 , ADP , OPX , 0 ,QASGVART ,SRE, O , O ); 63560 ICODE(PASGVART+6 , LAL , ACX , 0 ,QASGVART+1 ,ST , O , O ); 63570 ICODE(PASGVART+7 , LAE , ACL , 0 ,QASGVART+1 ,ST , O , O ); 63572 ICODE(PASGVART+8 , ADP , ACX , 0 ,QASGVART+1 ,PR1, O , O ); 63580 OCODE(QASGVART+1 , 'GVASSTX ' , O , O , O ); 63590 OCODE(PIDTYREL , 'IS ' ,PR1,PR2,PRR); 63600 OCODE(PIDTYREL+1 , 'ISNT ' ,PR1,PR2,PRR); 63602 OCODE(PGETTOTCMN , 'GTOTSTR ' ,PR1, O ,PRR); 63604 OCODE(PGETTOTCMN+1,'GTOTMUL ' ,PR1, O ,PRR); 63606 OCODE(PGETTOTCMN+2,'GTOTRFR ' ,PR1, O ,PRR); 63608 OCODE(PGETTOTAL , 'GTOTS ' ,PR1, O ,PRR); 63610 OCODE(PGETTOTAL+1, 'GTOTS2 ' ,PR1, O ,PRR); 63612 OCODE(PGETTOTAL+2, 'GTOTP ' ,PR1, O ,PRR); 63614 OCODE(PGETTOTAL+3, 'GTOTN ' ,PR1, O ,PRR); 63616 OCODE(PGETTOTAL+4, 'GTOTREF ' ,PR1, O ,PRR); 63618 OCODE(PGETMULT , 'GETMULT ' ,PR1, O ,PRR); 63620 OCODE(PGETMULT+1 , 'GETSLN ' ,PR1, O ,PRR); 63630 OCODE(PDEREF , 'DREFS ' ,PR1, O ,PRR); 63631 OCODE(PDEREF+1 , 'DREFS2 ' ,PR1, O ,PRR); 63632 OCODE(PDEREF+2 , 'DREFPTR ' ,PR1, O ,PRR); 63634 OCODE(PDEREF+3 , 'DREFN ' ,PR1, O ,PRR); 63640 OCODE(PDEREF+4 , 'DREFM ' ,PR1, O ,PRR); 63650 OCODE(PSKIP , 'SKIPS ' , O , O ,PRR); 63660 OCODE(PSKIP+1 , 'SKIPPIL ' , O , O ,PRR); 63665 OCODE(PSKIP+2 , 'SKIPS2 ' , O , O ,PRR); 63670 OCODE(PSKIPSTRUCT, 'SKIPSTR ' , O , O ,PRR); 63680 OCODE(PNIL , 'NILP ' , O , O ,PRR); 63690 ICODE(PVOIDNORMAL, DUP , WOP , SZADDR ,QVOIDNM, SP, O , O ); 63700 QCODE(QVOIDNM , LOI , WOP , SZWORD ,QVOIDNM+1 ); 63710 QCODE(QVOIDNM+1 , ZEQ , JMP , 3 ,QVOIDNM+2 ); 63720 QCODE(QVOIDNM+2 , ASP , WOP , SZADDR ,QVOIDNM+3 ); 63730 QCODE(QVOIDNM+3 , BRA , JMP , 2 ,QVOIDNM+4 ); 63740 OCODE(QVOIDNM+4 , 'GARBAGE ' , O , O , O ); 63750 OCODE(PVOIDNAKED , 'VOIDN ' ,PR1, O , O ); 63760 ICODE(PWIDEN , LOC , WOP , SZINT ,QWIDEN , ST, O ,SRE); 63770 QCODE(QWIDEN , LOC , WOP , SZREAL ,QWIDEN+1 ); 63780 QCODE(QWIDEN+1 , CIF , NON , 0 ,0 ); 63790 OCODE(PWIDEN+2 , 'WIDREAL ' ,PR1, O ,PRR); 63800 OCODE(PWIDEN+4 , 'WIDCHAR ' ,PR1, O ,PRR); 63810 OCODE(PWIDEN+5 , 'WIDBITS ' ,PR1, O ,PRR); 63820 OCODE(PWIDEN+6 , 'WIDBYTS ' ,PR1, O ,PRR); 63830 OCODE(PWIDEN+7 , 'WIDSTR ' ,PR1, O ,PRR); 63840 OCODE(PROWNONMULT, 'ROWNM ' ,PR1, O ,PRR); 63850 OCODE(PROWMULT , 'ROWM ' ,PR1, O ,PRR); 63855 ICODE(PGETPROC , LOR , WOP , 1 ,QGETPROC ,PR1, O ,PRR); 63856 QCODE(QGETPROC , ADP , ANX , SZADDR ,QGETPROC+1 ); 63857 QCODE(QGETPROC+1 , LOI , WOP , SZADDR,PGETPROC+1 ); 63859 OCODE(PGETPROC+1 , 'GETPROC ' ,PR1, O ,PRR); 63860 ICODE(PCALL , LFR , WOP , 2*SZADDR,QCALLA,SNS, O , O ); 63862 ICODE(PCALLA , LXL , ACP , 0 ,QCALLA ,SNS, O , O ); 63865 ICODE(PCALLA+1 , LAE , ACB ,-FIRSTIBOFFSET,QCALLA,SNS, O , O ); 63867 ICODE(PCALLA+2 , ADP , ACP , 0 ,QCALLA ,SNS, O , O ); 63869 QCODE(QCALLA , DUP , WOP , 2*SZADDR,QCALLA+1 ); 63870 QCODE(QCALLA+1 , ASP , WOP , SZADDR,QCALLA+2 ); 63872 QCODE(QCALLA+2 , LOI , WOP , SZADDR,QCALLA+3 ); 63874 QCODE(QCALLA+3 , CAI , NON , 0 ,0 ); 63875 ICODE(PRNSTART , LOC , WOP ,A68STAMP,QRNSTART, O , O , O ); 63876 QCODE(QRNSTART , STL , WOP , -SZWORD ,QRNSTART+1 ); 63877 OCODE(QRNSTART+1 , 'RNSTART ' , O , O , O ); 63878 ICODE(PRETURN , RET , OPX , 0 ,0 ,STN, O , O ); 63880 OCODE(PGBSTK , 'GBSTK ' , O , O , O ); 63884 ICODE(POUTJUMP , LOR , WOP , 1 ,QOUTJUMP , O , O , O ); 63885 QCODE(QOUTJUMP , SFE , GBX , SZADDR ,QOUTJUMP+1 ); 63886 QCODE(QOUTJUMP+1 , LOR , WOP , 0 ,QOUTJUMP+2 ); 63887 QCODE(QOUTJUMP+2 , SFE , GBX , 2*SZADDR ,QOUTJUMP+3 ); 63888 QCODE(QOUTJUMP+3 , GTO , GBX , 0 ,0 ); 63890 OCODE(PGETOUT , 'GETOUT ' , O , O , O ); 63892 ICODE(PSETIB , LFR , WOP , 2*SZADDR,QSETIB, O , O , O ); 63895 QCODE(QSETIB , EXG , WOP , SZADDR ,QSETIB+1 ); 63896 QCODE(QSETIB+1 , STR , WOP , 0 ,QSETIB+2 ); 63897 QCODE(QSETIB+2 , STR , WOP , 1 ,0 ); 63900 OCODE(PLEAPGEN , 'GENSTR ' , O , O ,PRR); 63910 OCODE(PLEAPGEN+1 , 'HEAPSTR ' , O , O ,PRR); 63920 OCODE(PLEAPGEN+2 , 'GENRSTR ' , O , O ,PRR); 63930 OCODE(PLEAPGEN+3 , 'GENMUL ' ,PR1, O ,PRR); 63940 OCODE(PLEAPGEN+4 , 'HEAPMUL ' ,PR1, O ,PRR); 63950 OCODE(PLEAPGEN+5 , 'GENRMUL ' ,PR1, O ,PRR); 63960 OCODE(PPREPSTRDISP , 'PCOLLST ' , O , O ,PRR); 63970 OCODE(PPREPROWDISP , 'PCOLLR ' ,STS, O ,PRR); 63980 OCODE(PPREPROWDISP+1, 'PCOLLRM ' ,STS, O ,PRR); 63990 OCODE(PCOLLCHECK , 'PCOLLCK ' ,STP, O , O ); 64000 (* ICODE(PCOLLTOTAL , DUP , WOP , SZINT ,QCOLLTOTAL,STP,ST ,O); 64010 QCODE(QCOLLTOTAL , LOC , OPX , 0 ,QCOLLTOTAL+1 ); 64020 QCODE(QCOLLTOTAL+1, ADI , WOP , SZINT ,QCOLLTOTAL+2 ); 64030 QCODE(QCOLLTOTAL+2, EXG , WOP , SZINT ,QCOLLTOTAL+3 ); 64040 QCODE(QCOLLTOTAL+3, STI , WOP , SZINT ,0 );*) 64050 (* ICODE(PCOLLTOTAL+2, DUP , WOP , SZINT,QCOLLTOTAL+4,STP,ST,O); 64060 QCODE(QCOLLTOTAL+4, LOC , WOP ,15 ,QCOLLTOTAL+5 ); 64070 QCODE(QCOLLTOTAL+5,CSET , WOP , SZINT ,QCOLLTOTAL+6 ); 64080 QCODE(QCOLLTOTAL+6, EXG , WOP , SZINT ,QCOLLTOTAL+7 ); 64090 QCODE(QCOLLTOTAL+7, STI , WOP , SZINT ,PCOLLTOTAL );*) 64092 OCODE(PCOLLTOTAL , 'COLLTS ' ,PR1,PR2,PRR); 64093 OCODE(PCOLLTOTAL+1 , 'COLLTS2 ' ,PR1,PR2,PRR); 64095 OCODE(PCOLLTOTAL+2 , 'COLLTPT ' ,PR1,PR2,PRR); 64100 OCODE(PCOLLTOTAL+3 , 'COLLTP ' ,PR1,PR2,PRR); 64110 OCODE(PCOLLTOTAL+4 , 'COLLTM ' ,PR1,PR2,PRR); 64120 OCODE(PCOLLNAKED , 'COLLNP ' ,PR1,PR2,PRR); 64130 OCODE(PNAKEDPTR , 'NAKPTR ' ,PR1, O ,PRR); 64140 ICODE(PLINE , LIN , OPX , 0 ,0 , O , O , O ); 64170 OCODE(PENDSLICE , 'ENDSL ' ,PR1, O ,PRR); 64180 OCODE(PTRIM , 'SLICEA ' , O , O , O ); 64190 OCODE(PTRIM+1 , 'SLICEB ' , O , O , O ); 64200 OCODE(PTRIM+2 , 'SLICEC ' , O , O , O ); 64210 OCODE(PTRIM+3 , 'SLICED ' , O , O , O ); 64220 OCODE(PTRIM+4 , 'SLICEE ' , O , O , O ); 64230 OCODE(PTRIM+5 , 'SLICEF ' , O , O , O ); 64240 OCODE(PTRIM+6 , 'SLICEG ' , O , O , O ); 64250 OCODE(PTRIM+7 , 'SLICEH ' , O , O , O ); 64260 OCODE(PTRIM+8 , 'SLICEI ' , O , O , O ); 64270 OCODE(PTRIM+9 , 'SLICEJ ' , O , O , O ); 64280 ICODE(PJMP , BRA , LCX , 0 ,0 , O , O , O ); 64282 ICODE(PDUP1PILE , DUP , WOP , SZADDR,0 ,SP , O , SP); 64284 ICODE(PDUP2PILE , DUP , WOP , SZADDR*2,QDUP2PILE,SP,SP,SP); 64286 QCODE(QDUP2PILE , ASP , WOP , SZADDR,0 ); 64290 ICODE(PDUP1ST , DUP , WOP , SZINT,0 , ST, O , ST); 64294 ICODE(PDUP1ST+1 , DUP , WOP , SZREAL,0 ,SRE, O ,SRE); 64300 ICODE(PDUP2ND , DUP , WOP , SZINT*2,QDUP2ND,ST ,ST , ST); 64310 ICODE(PDUP2ND+1 , DUP , WOP ,SZREAL+SZINT,QDUP2ND,SRE, ST,SRE); 64312 ICODE(PDUP2ND+2 , DUP , WOP , SZINT+SZREAL,QDUP2ND+1, ST,SRE, ST); 64314 ICODE(PDUP2ND+3 , DUP , WOP , SZREAL*2,QDUP2ND+1,SRE,SRE,SRE); 64318 QCODE(QDUP2ND , ASP , WOP , SZINT ,0 ); 64319 QCODE(QDUP2ND+1 , ASP , WOP , SZREAL ,0 ); 64320 ICODE(PDATALIST , LOC , OPX , 0 ,0 ,SNS, O ,DLS); 64322 ICODE(PHOIST , ASP , ONX , 0 ,QHOIST , O , O , O ); 64324 QCODE(QHOIST , LOC , ACX , 0 ,QHOIST+1 ); 64326 OCODE(QHOIST+1 , 'HOIST ' , O , O , O ); 64330 ICODE(PPUSH , LOL , OPX , 0 ,0 , O , O , O ); 64340 ICODE(PPUSH+1 , LOE , OPL , 0 ,0 , O , O , O ); 64350 ICODE(PPUSH+2 , LOF , OPX , 0 ,0 , O , O , O ); 64360 ICODE(PPUSH1 , LFL , OPX , 0 ,0 , O , O , O ); 64375 ICODE(PPUSH1+1 , LFE , OPL , 0 ,0 , O , O , O ); 64376 ICODE(PPUSH1+2 , LFF , OPX , 0 ,0 , O , O , O ); 64377 ICODE(PPUSH2 , LAL , OPX , 0 ,QPUSH2 , O , O , O ); 64378 ICODE(PPUSH2+1 , LAE , OPL , 0 ,QPUSH2 , O , O , O ); 64379 ICODE(PPUSH2+2 , ADP , OPX , 0 ,QPUSH2 , O , O , O ); 64380 QCODE(QPUSH2 , LOI , WOP , SZREAL ,0 ); 64385 ICODE(PPUSHIM , LOC , OPX , 0 ,0 , O , O ,ST ); 64390 ICODE(PPUSHIM+1 , LAE , GBX , 0 ,0 , O , O ,SP ); 64395 ICODE(PPUSHIM+2 , LFC , OPX , 0 ,0 , O , O ,SP ); 64397 ICODE(PPUSHIM+3 , LOE , GBX , 0 ,0 , O , O ,ST ); 64400 ICODE(PPUSHIM2 , LFC , OPX , 0 ,0 , O , O , O ); 64410 ICODE(PPUSHIM2+1 , LAE , GBX , 0 ,0 , O , O , O ); 64411 ICODE(PPUSHI2A , ASP , WOP , SZINT-SZREAL,0 , O , O , O ); 64412 ICODE(PPUSHIM4 , LXL , WOP , 0 ,QPUSHIM4 , O , O , O ); 64414 QCODE(QPUSHIM4 , LPI , OPX , 0 ,0 ); 64415 ICODE(PPUSHIM4+1 , LAE , GBX , 0 ,QPUSHIM4+1 , O , O , O ); 64416 QCODE(QPUSHIM4+1 , LOI , WOP , SZREAL ,0 ); 64420 ICODE(PPUSHFTN , LFR , WOP , SZINT ,0 , O , O , O ); 64430 ICODE(PPUSHFTN+1 , LFR , WOP , SZADDR ,0 , O , O , O ); 64435 ICODE(PPUSHFTN+2 , LFR , WOP , SZREAL ,0 , O , O , O ); 64440 ICODE(PSWAP , EXG , WOP , SZWORD ,0 , O , O , O ); 64442 ICODE(PSWAP+1 , EXG , WOP , SZADDR ,0 , O , O , O ); 64444 ICODE(PSWAP+2 , EXG , WOP , SZREAL ,0 , O , O , O ); 64446 OCODE(PSWAP+3 , 'SWAP ' , O , O , O ); 64448 (*+13() ICODE(PPARM , LOL , ONX , 0 ,QDCLSP+1 , O , O , O ); ()+13*) 64450 (*+12() ICODE(PPARM , LIL , ONX , 0 ,QDCLSP+4 , O , O , O ); 64460 QCODE(QDCLSP+4 , INC , NON , 0 ,QDCLSP+5 ); 64465 QCODE(QDCLSP+5 , SIL , ONX , 0 ,0 ); ()+12*) 64470 (* ICODE(PSTOS2 , ASP , WOP ,-SZINT ,0 , O , O , O ); 64530 ICODE(PS4TOS2 , ASP , WOP , SZADDR ,0 , O , O , ST); *) 64560 ICODE(PDECM , LOC , OPX , 0 ,0 , O , O , O ); 64565 ICODE(PDECM+1 , STL , ONX , 0 ,0 , O , O , O ); 64570 END; 64580 PROCEDURE INITPOPARRAY; 64590 VAR I,J:SBTTYP; 64600 BEGIN 64610 FOR I := SBTSTK TO SBTDL DO 64620 FOR J := SBTVOID TO SBTPRR DO 64630 BEGIN 64640 POPARRAY [I,J] := PNONE; 64650 POPARRAY [I,I] := PNOOP; 64660 POPARRAY [I,SBTVOID] :=PNOOP; 64670 POPARRAY [I,SBTVAR ] := PLOADVAR; 64672 POPARRAY [I,SBTPROC] := PLOADRTA; 64674 POPARRAY [I,SBTRPROC]:= PLOADRTA; 64680 END; 64700 POPARRAY[ SBTSTK2 , SBTSTK4 ] := PS4TOS2; 64710 POPARRAY[ SBTSTK4 , SBTPRR ] := PPUSHFTN+2; 64720 POPARRAY[ SBTSTK4 , SBTID ] := PPUSH2; 64730 POPARRAY[ SBTSTK4 , SBTIDV ] := PPUSH2; 64735 POPARRAY[ SBTSTK4 , SBTDEN ] := PPUSHIM4; 64740 POPARRAY[ SBTSTK4 , SBTPR1 ] := PNOOP; 64750 POPARRAY[ SBTSTK4 , SBTPR2 ] := PNOOP; 64760 POPARRAY[ SBTSTK , SBTSTK2 ] := PVARLISTEND+1; 64770 POPARRAY[ SBTSTK , SBTID ] := PPUSH; 64780 POPARRAY[ SBTSTK , SBTIDV ] := PPUSH; 64790 POPARRAY[ SBTSTK , SBTLIT ] := PPUSHIM; 64800 POPARRAY[ SBTSTK , SBTDEN ] := PPUSHIM; 64810 POPARRAY[ SBTSTK , SBTDL ] := PNOOP; 64820 POPARRAY[ SBTSTK2 , SBTID ] := PPUSH1; 64830 POPARRAY[ SBTSTK2 , SBTIDV ] := PPUSH1; 64840 POPARRAY[ SBTSTK2 , SBTLIT ] := PPUSHIM2; 64850 POPARRAY[ SBTSTK2 , SBTDEN ] := PPUSHIM2; 64852 POPARRAY[ SBTSTK2A, SBTLIT ] := PPUSHI2A; 64860 POPARRAY[ SBTSTK , SBTPRR ] := PPUSHFTN; 64870 POPARRAY[ SBTSTK2 , SBTPRR ] := PPUSHFTN+1; 64880 POPARRAY[ SBTSTK , SBTPR1 ] := PNOOP; 64890 POPARRAY[ SBTSTK , SBTPR2 ] := PNOOP; 64900 POPARRAY[ SBTSTK2 , SBTPR1 ] := PNOOP; 64910 POPARRAY[ SBTSTK2 , SBTPR2 ] := PNOOP; 64920 POPARRAY[ SBTSTK2 , SBTSTK ] := PSTOS2; 64980 END; 64990 PROCEDURE INITLENARRAY; 65000 VAR I:SBTTYP; 65010 BEGIN 65020 FOR I := SBTSTK TO SBTPRR DO LENARRAY[I] := 0; 65030 LENARRAY[SBTSTK ] := SZWORD; 65040 (*+19() LENARRAY[SBTSTK2] := SZADDR; 65042 LENARRAY[SBTSTK2A]:= 3*SZWORD; ()+19*) 65050 LENARRAY[SBTSTK4] := SZREAL; 65060 END; 65070 BEGIN (* INITCODES +) 65080 FIRSTPART; SECONDPART; THIRDPART; INITPOPARRAY; INITLENARRAY; 65090 END; 65100 (*+) 65110 ()+86*) 65120 (**) 65130 (**) 65140 (**) 65150 (**) 65160 (**) 65170 (*+71() BEGIN 65180 DUMP(FIRSTSTACK,LASTSTACK); 65190 END . ()+71*)