(FILECREATED " 4-Jun-85 22:14:36" ("compiled on " {ERIS}PROLOG>HERB>OPCODES.%;24) "19-Mar-85 14:34:17" recompiled changes: PrologNameToURegs PrologNameToHiUReg PrologNameToLoUReg PROLOG.AROUNDEXITFN MAKEOP \RDPROLOGPTR.UFN \POPDISP.UFN \RDPROLOGTAG.UFN \WRTPTR&TAG.UFN \WRTPTR&0TAG.UFN in "INTERLISP-D 16-Apr-85 ..." dated "16-Apr-85 13:02:15") (FILECREATED " 4-Jun-85 22:13:47" {ERIS}PROLOG>HERB>OPCODES.%;24 16158 changes to: (VARS REGISTER.ASSIGNMENTS OPCODESCOMS) (FNS MAKEOP \RDPROLOGPTR.UFN \WRTPTR&0TAG.UFN \WRTPTR&TAG.UFN \RDPROLOGTAG.UFN \POPDISP.UFN PrologNameToURegs PrologNameToHiUReg PrologNameToLoUReg PROLOG.AROUNDEXITFN) previous date: "31-May-85 15:27:10" {ERIS}PROLOG>HERB>OPCODES.%;23) PROLOG.GEN.OP# D1 (I 0 OP#) o@ (7 PACK*) NIL ( 3 "OP") PROLOG.INCR.P D1 NIL nîí4nîíHkÐ7NIL NIL () ReadPrologPtr D1 (I 0 RegisterName) @ 4(3 PrologNameToURegs) NIL () ReadPrologTag D1 (I 0 RegisterName) @ 5(3 PrologNameToURegs) NIL () WritePrologPtrAnd0Tag D1 (I 1 PtrVal I 0 RegisterName) @ A 7(7 EVAL 3 PrologNameToURegs) NIL () WritePrologTagAndPtr D1 (I 2 PtrVal I 1 TagVal I 0 RegisterName) @ A B 6(13Q EVAL 7 EVAL 3 PrologNameToURegs) NIL () PrologNameToURegs D1 (P 0 REG I 0 NAME F 1 REGISTER.ASSIGNMENTS) @Q Hµ o@ ¿HáHä(22Q HELP 4 FASSOC) NIL ( 16Q "Unknown Prolog register") PrologNameToHiUReg D1 (P 0 REG I 0 NAME F 1 REGISTER.ASSIGNMENTS) @Q Hµ o@ ¿H(22Q HELP 4 FASSOC) NIL ( 16Q "Unknown Prolog register") PrologNameToLoUReg D1 (P 0 REG I 0 NAME F 1 REGISTER.ASSIGNMENTS) @Q Hµ o@ ¿H(22Q HELP 4 FASSOC) NIL ( 16Q "Unknown Prolog register") PROLOG.AROUNDEXITFN D1 (I 0 EVENT) ˆ`´‚±€@gð®@gð¨@dgð²¿`Ék `Ék gð³@gð¬@gð¦@gð´8`Ék `Ék nkk`É 7nll`É 7(204Q MakeUCodeRealBaseAddr 165Q MakeUCodeRealBaseAddr 147Q \LOCKPAGES 133Q \LOCKPAGES 65Q \UNLOCKPAGES 51Q \UNLOCKPAGES) (177Q ARRAYP 174Q PROLOG.ENABLE.PUFN.TABLE 160Q ARRAYP 155Q PROLOG.PUFN.TABLE 141Q ARRAYP 136Q PROLOG.ENABLE.PUFN.TABLE 125Q ARRAYP 122Q PROLOG.PUFN.TABLE 114Q AFTERSAVEVM 106Q AFTERSYSOUT 100Q AFTERMAKESYS 71Q AFTERLOGOUT 57Q ARRAYP 54Q PROLOG.ENABLE.PUFN.TABLE 43Q ARRAYP 40Q PROLOG.PUFN.TABLE 31Q BEFORESYSOUT 22Q BEFOREMAKESYS 14Q BEFORELOGOUT 2 QP.membot) () MAKEOP D1 (P 0 ItsOpcode I 1 UFNFN I 0 InstructionName) 4@ HAHYjð³IµkkØHÙH h ²êj°è(55Q \FZEROP 50Q \SETUFNENTRY 3 \FINDOP) NIL () \RDPROLOGPTR.UFN D1 (I 1 B I 0 A) @A (4 HELP) NIL () \POPDISP.UFN D1 (I 1 B I 0 A) @A (4 HELP) NIL () \RDPROLOGTAG.UFN D1 (I 1 B I 0 A) @A (4 HELP) NIL () \WRTPTR&TAG.UFN D1 (I 1 B I 0 A) @A (4 HELP) NIL () \WRTPTR&0TAG.UFN D1 (I 1 B I 0 A) @A (4 HELP) NIL () (PRETTYCOMPRINT OPCODESCOMS) (RPAQQ OPCODESCOMS ((FNS PROLOG.GEN.OP# PROLOG.INCR.P ReadPrologPtr ReadPrologTag WritePrologPtrAnd0Tag WritePrologTagAndPtr) (VARS REGISTER.ASSIGNMENTS) (VARS NEW\OPCODES) (PROP DOPVAL POPDISP) (RECORDS REGISTERDEF) (FNS PrologNameToURegs PrologNameToHiUReg PrologNameToLoUReg) ( MACROS PROLOG.INCR.P ReadPrologPtr ReadPrologTag WritePrologPtrAnd0Tag WritePrologTagAndPtr WriteProlog16 ReadProlog16) (MACROS PrologOpcode) (ADDVARS (AROUNDEXITFNS PROLOG.AROUNDEXITFN)) (FNS PROLOG.AROUNDEXITFN) (FNS MAKEOP) (FNS \RDPROLOGPTR.UFN \POPDISP.UFN \RDPROLOGTAG.UFN \WRTPTR&TAG.UFN \WRTPTR&0TAG.UFN) (P (SETQ \OPCODES NEW\OPCODES) (SETQ \OPCODEARRAY NIL)) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA) (NLAML WritePrologTagAndPtr WritePrologPtrAnd0Tag ReadPrologTag ReadPrologPtr) (LAMA))))) (RPAQQ REGISTER.ASSIGNMENTS ((P 238 237) (CP 236 235) (C 234 233) (R 232 231) (S 229 227) (H 223 221) (HB 220 219) (TR 218 217) (E 211 206) (B 205 204) (B0 193 189) (T0 188 186) (T1 177 159) (N 155 155) ( I 110 110) (* * Special registers) (A1 21 20) (A2 28 22) (A3 61 154) (A4 18 17) (W 54 54) (Debug 60 60 ) (LMBase 108 108) (PUfnTableBase 107 107) (LispEmuCodeBase 95 94) (VMlim 156 156) (A0Base 158 158) ( A1Base 157 157) (PFCont 78 78) (Step 62 62) (* * (ABase 147 147)) (Trashable 55 55) (Zero 97 97))) (RPAQQ NEW\OPCODES ((0 -X- 0) (1 CAR 0 T 0 NIL \CAR.UFN) (2 CDR 0 T 0 NIL \CDR.UFN) (3 LISTP 0 T 0 NIL LISTP) (4 NTYPX 0 T 0 NIL NTYPX) (5 TYPEP 1 TYPEP 0) (6 DTEST 2 ATOM 0 NIL \DTESTFAIL) (7 CDDR 0 T 0 NIL CDDR) (8 FN0 2 FN 1) (9 FN1 2 FN 0) (10 FN2 2 FN -1) (11 FN3 2 FN -2) (12 FN4 2 FN -3) (13 FNX 3 FNX FNX) (14 APPLYFN 0 T -1) (15 CHECKAPPLY* 0 T 0 NIL \CHECKAPPLY*) (16 RETURN 0 T 0 NIL \HARDRETURN) (17 BIND 2) (18 UNBIND 0) (19 DUNBIND 0) (20 RPLPTR.N 1 T -1 NIL \RPLPTR.UFN) (21 GCREF 1 T 0 NIL \HTFIND) (22 ASSOC 0 T -1 NIL ASSOC) (23 GVAR_ 2 ATOM 0 NIL \SETGLOBALVAL.UFN) (24 RPLACA 0 T -1 NIL \RPLACA.UFN) (25 RPLACD 0 T -1 NIL \RPLACD.UFN) (26 CONS 0 T -1 NIL \CONS.UFN) (27 GETP 0 T -1 NIL GETPROP) (28 FMEMB 0 T -1 NIL FMEMB) (29 GETHASH 0 T -1 NIL GETHASH) (30 PUTHASH 0 T -2 NIL PUTHASH) ( 31 CREATECELL 0 T 0 NIL \CREATECELL) (32 BIN 0 T 0 NIL \BIN) (33 BOUT 0 T -1 NIL \BOUT) (34 POPDISP 0 T 0 NIL) (35 LIST1 0 T 0 NIL CONS) (36 DOCOLLECT 0 T -1 NIL DOCOLLECT) (37 ENDCOLLECT 0 T -1 NIL ENDCOLLECT) (38 RPLCONS 0 T -1 NIL \RPLCONS) (39 LISTGET 0 T -1 NIL LISTGET) (40 ELT 0 T -1 NIL ELT) ( 41 NTHCHC 0 T -1 NIL NTHCHARCODE) (42 SETA 0 T -2 NIL SETA) (43 RPLCHARCODE 0 T -2 NIL RPLCHARCODE) ( 44 EVAL 0 T 0 NIL \EVAL) (45 EVALV 0 T 0 NIL \EVALV1) (46 unused) (47 STKSCAN 0 T 0 NIL \STKSCAN) (48 BUSBLT 1 (WORDSOUT BYTESOUT BYTESOUTSWAPPED NYBBLESOUT WORDSIN BYTESIN BYTESINSWAPPED NYBBLESINSWAPPED ) -3 NIL \BUSBLT.UFN) (49 MISC8 1 (IBLT1 IBLT2) -7 NIL \MISC8.UFN) (50 UBFLOAT3 1 (POLY 3X3 4X4 133 331 144 441) (-2 1) NIL \UNBOXFLOAT3) (52 RDPROLOGPTR 0 T 0) (53 RDPROLOGTAG 0 T 0) (54 WRTPTR&TAG 0 T -2) (55 WRTPTR&0TAG 0 T -1) (59 DRAWLINE 0 T -8 NIL \DRAWLINE.UFN) (60 STORE.N 1 T 0 NIL \STORE.N.UFN ) (61 COPY.N 1 T 1 NIL \COPY.N.UFN) (62 RAID 0 T 0 NIL RAID) (63 \RETURN 0 T 0 NIL \RETURN) (64 IVAR 0 IVAR 1 70) (71 IVARX 1 IVAR 1) (72 PVAR 0 PVAR 1 78) (79 PVARX 1 PVAR 1) (80 FVAR 0 FVAR 1 86) (87 FVARX 1 FVAR 1) (88 PVAR_ 0 PVAR 0 94) (95 PVARX_ 1 PVAR 0) (96 GVAR 2 ATOM 1) (97 ARG0 0 T 0 NIL \ARG0) (98 IVARX_ 1 IVAR 0) (99 FVARX_ 1 FVAR 0) (100 COPY 0 T 1) (101 MYARGCOUNT 0 T 1 NIL \MYARGCOUNT) (102 MYALINK 0 T 1) (103 ACONST 2 ATOM 1) (104 'NIL 0 T 1) (105 'T 0 T 1) (106 '0 0 T 1) (107 '1 0 T 1) (108 SIC 1 SIC 1) (109 SNIC 1 SNIC 1) (110 SICX 2 SICX 1) (111 GCONST 3 GCONST 1) (112 ATOMNUMBER 2 ATOM 1) (113 READFLAGS 0 T 0 NIL \READFLAGS) (114 READRP 0 T 0 NIL \READRP) (115 WRITEMAP 0 T -2 NIL \WRITEMAP) (116 READPRINTERPORT 0 T 1 NIL \READPRINTERPORT.UFN) (117 WRITEPRINTERPORT 0 T 0 NIL \WRITEPRINTERPORT.UFN) (118 PILOTBITBLT 0 T -1 NIL \PILOTBITBLT) (119 RCLK 0 T 0 NIL \RCLKSUBR) (120 MISC1 1 T 0 NIL \MISC1.UFN) (121 MISC2 1 T -1 NIL \MISC2.UFN) (122 RECLAIMCELL 0 T 0 NIL \GCRECLAIMCELL) (123 GCSCAN1 0 T 0 NIL \GCSCAN1) (124 GCSCAN2 0 T 0 NIL \GCSCAN2) (125 SUBRCALL 2) ( 126 CONTEXTSWITCH 0 T 0 NIL \CONTEXTSWITCH) (127 AUDIO 0 T 0 NIL NILL) (128 JUMP 0 JUMP JUMP 143) (144 FJUMP 0 JUMP CJUMP 159) (160 TJUMP 0 JUMP CJUMP 175) (176 JUMPX 1 JUMPX JUMP) (177 JUMPXX 2 JUMPXX JUMP) (178 FJUMPX 1 JUMPX CJUMP) (179 TJUMPX 1 JUMPX CJUMP) (180 NFJUMPX 1 JUMPX NCJUMP) (181 NTJUMPX 1 JUMPX NCJUMP) (182 jeq) (183 jlistp) (184 PVAR_^ 0 PVAR -1 190) (191 POP 0 T -1) (192 was.getbase) ( 193 was.getbaseptr) (194 GETBASEBYTE 0 T -1 NIL \GETBASEBYTE) (195 was.scanbase) (196 BLT 0 T -2 NIL \BLT) (197 was.putbase) (198 was.putbaseptr) (199 PUTBASEBYTE 0 T -2 NIL \PUTBASEBYTE) (200 GETBASE.N 1 T 0) (201 GETBASEPTR.N 1 T 0) (202 GETBITS.N.FD 2 T 0) (203 GETBASEFIXP.N 1 T 0 NIL \GETBASEFIXP) ( 204 PUTBASEFIXP.N 1 T -1 NIL \PUTBASEFIXP.UFN) (205 PUTBASE.N 1 T -1 NIL \PUTBASE.UFN) (206 PUTBASEPTR.N 1 T -1 NIL \PUTBASEPTR.UFN) (207 PUTBITS.N.FD 2 T -1 NIL \PUTBITS.UFN) (208 ADDBASE 0 T -1 NIL \ADDBASE) (209 VAG2 0 T -1 NIL \VAG2) (210 HILOC 0 T 0) (211 LOLOC 0 T 0) (212 PLUS2 0 T -1 NIL \SLOWPLUS2) (213 DIFFERENCE 0 T -1 NIL \SLOWDIFFERENCE) (214 TIMES2 0 T -1 NIL \SLOWTIMES2) (215 QUOTIENT 0 T -1 NIL \SLOWQUOTIENT) (216 IPLUS2 0 T -1 NIL \SLOWIPLUS2) (217 IDIFFERENCE 0 T -1 NIL \SLOWIDIFFERENCE) (218 ITIMES2 0 T -1 NIL \SLOWITIMES2) (219 IQUOTIENT 0 T -1 NIL \SLOWIQUOTIENT) (220 IREMAINDER 0 T -1 NIL IREMAINDER) (221 IPLUS.N 1 T 0 NIL \SLOWIPLUS2) (222 IDIFFERENCE.N 1 T 0 NIL \SLOWIDIFFERENCE) (223 IBLT1 0 T -7 NIL \IBLT1.UFN) (224 LLSH1 0 T 0 NIL \SLOWLLSH1) (225 LLSH8 0 T 0 NIL \SLOWLLSH8) (226 LRSH1 0 T 0 NIL \SLOWLRSH1) (227 LRSH8 0 T 0 NIL \SLOWLRSH8) (228 LOGOR2 0 T -1 NIL \SLOWLOGOR2) (229 LOGAND2 0 T -1 NIL \SLOWLOGAND2) (230 LOGXOR2 0 T -1 NIL \SLOWLOGXOR2) (231 unused) (232 FPLUS2 0 T -1 NIL \SLOWFPLUS2) (233 FDIFFERENCE 0 T -1 NIL \SLOWFDIFFERENCE) (234 FTIMES2 0 T -1 NIL \SLOWFTIMES2) (235 FQUOTIENT 0 T -1 NIL \SLOWFQUOTIENT) (236 UBFLOAT2 1 (UFADD UFSUB UFISUB UFMULT UFDIV UFGREAT UFMAX UFMIN) (-1 1) NIL \UNBOXFLOAT2) (237 UBFLOAT1 1 (BOX UNBOX UFABS UFNEGATE) (0 1) NIL \UNBOXFLOAT1) (238 unused) (239 unused) (240 EQ 0 T -1) (241 IGREATERP 0 T -1 NIL \SLOWIGREATERP) (242 FGREATERP 0 T -1 NIL \SLOWFGREATERP) (243 GREATERP 0 T -1 NIL GREATERP) (244 EQUAL 0 T -1 NIL EQUAL) (245 MAKENUMBER 0 T -1 NIL \MAKENUMBER) (246 BOXIPLUS 0 T -1 NIL \BOXIPLUS) ( 247 BOXIDIFFERENCE 0 T -1 NIL \BOXIDIFFERENCE) (248 FLOATBLT 0 T -4 NIL \FLOATBLT) (249 FFTSTEP 0 T -1 NIL \FFTSTEP) (250 MISC3 1 (EXP MAG FLOAT COMP) -2 NIL \MISC3.UFN) (251 MISC4 1 (TIMES PERM PLUS DIFF SEP) -3 NIL \MISC4.UFN) (252 IEQP 0 T -1 NIL IEQP) (253 SWAP 0 T 0) (254 NOP 0 T 0) (255 UPCTRACE 0 T 0 NIL NILL))) (PUTPROPS POPDISP DOPVAL (1 POPDISP)) (RECORD REGISTERDEF (NAME ALO AHI)) (PUTPROPS PROLOG.INCR.P MACRO (QUOTE (LET ((OLDPC (ReadPrologPtr P))) (WritePrologPtrAnd0Tag P ( \ADDBASE OLDPC 1))))) (PUTPROPS ReadPrologPtr MACRO (ARGS (LET* ((RegisterName (CAR ARGS)) (REGDEF (PrologNameToURegs RegisterName))) (BQUOTE ((OPCODES RDPROLOGPTR) , REGDEF))))) (PUTPROPS ReadPrologTag MACRO (ARGS (LET* ((RegisterName (CAR ARGS)) (REGDEF (PrologNameToURegs RegisterName))) (BQUOTE ((OPCODES RDPROLOGTAG) , REGDEF))))) (PUTPROPS WritePrologPtrAnd0Tag MACRO (ARGS (LET* ((RegisterName (CAR ARGS)) (PtrVal (CADR ARGS)) ( REGDEF (PrologNameToURegs RegisterName))) (BQUOTE ((OPCODES WRTPTR&0TAG) , REGDEF , PtrVal))))) (PUTPROPS WritePrologTagAndPtr MACRO (ARGS (LET* ((RegisterName (CAR ARGS)) (TagVal (CADR ARGS)) ( PtrVal (CADDR ARGS)) (REGDEF (PrologNameToURegs RegisterName))) (BQUOTE ((OPCODES WRTPTR&TAG) , REGDEF , TagVal , PtrVal))))) (PUTPROPS WriteProlog16 MACRO (ARGS (* * write 16 bits into a Prolog register. Simulated by writing 24 bits in two chunks - the second chunk overwrites the first. HACK!) (LET* ((RegisterName (CAR ARGS)) ( PtrVal (CADR ARGS)) (REGDEF (PrologNameToLoUReg RegisterName))) (BQUOTE ((OPCODES WRTPTR&0TAG) , ( LOGOR (LLSH REGDEF 8) REGDEF) , PtrVal))))) (PUTPROPS ReadProlog16 MACRO (ARGS (* * read 16 bits from a Prolog register. We do this by reading from a zero register into hi and the register we want into lo. HACK!) (LET* ((RegisterName (CAR ARGS)) (REGDEF (PrologNameToLoUReg RegisterName)) (ZEROREGDEF (PrologNameToLoUReg (QUOTE Zero)))) (BQUOTE (( OPCODES RDPROLOGPTR) , (LOGOR (LLSH ZEROREGDEF 8) REGDEF)))))) (PUTPROPS PrologOpcode MACRO (ARGS (LET ((N (CAR ARGS))) (LIST (MKATOM (CONCAT "PrologOp" N)))))) (ADDTOVAR AROUNDEXITFNS PROLOG.AROUNDEXITFN) (SETQ \OPCODES NEW\OPCODES) (SETQ \OPCODEARRAY NIL) (PUTPROPS OPCODES COPYRIGHT ("Xerox Corporation" 1985)) NIL