Appendix B Instruction Set Summary Instructions by Category Pushing data onto the interpreter stack Instruction NPUSHB[ ] NPUSHW[ ] PUSHB[abc] PUSHW[abc] Opcode 0x40 0x41 0xB0 – 0xB7 0xB8 – 0xBF Takes from IS n, b1, b2,...bn n, w1, w2,...wn b0, b1,..bn w0,w1,..wn Pushes b1,b2...bn w1,w2...wn b0, b1, ...,bn w0 ,w1, ...wn Pops location value, locat ion Pushes value – Managing the Storage Area Instruction RS[ ] WS[ ] Opcode 0x43 0x42 Managing the Control Value Table Instruction WCVTP[ ] WCVTF[ ] RCVT[ ] Opcode 0x44 0x70 0x45 Pops value, location value, location location Pushes – – value Managing the Graphics State Setting and getting the freedom_vector and the projection_vector Instruction SVTCA[a] SPVTCA[a] SFVTCA[a] SPVTL[a] SFVTL[a] SFVTPV[ ] SDPVTL[a] SPVFS[ ] SFVFS[ ] GPV[ ] GFV[ ] Revision 1.66 File Name: 81919596 Opcode 0x00 – 0x01 0x02 – 0x03 0x04 – 0x05 0x06 – 0x07 0x08 – 0x09 0x0E 0x86 – 0x87 0x0A 0x0B 0x0C 0x0D Pops – – – p1, p2 p1, p2 – p1, p2 y, x y, x – – Pushes – – – – – – – – – x, y x, y Page 377 Instruction Set Summary Setting reference points and glyph element pointers Instruction SRP0[ ] SRP1[ ] SRP2[ ] SZP0[ ] SZP1[ ] SZP2[ ] SZPS[ ] Opcode 0x10 0x11 0x12 0x13 0x14 0x15 0x16 Pops p p p n n n n Pushes – – – – – – – Pops – – – – – – n n Pushes – – – – – – – – Pops selector and value n distance n n n n n – – weight n n Pushes – – – – – – – – – – – – – Pops p value, p p1,p2 Pushes value – distance Setting the round_state Instruction RTHG[ ] RTG[ ] RTDG[ ] RDTG[ ] RUTG[ ] ROFF[ ] SROUND[ ] S45ROUND[ ] Opcode 0x19 0x18 0x3D 0x7D 0x7C 0x7A 0x76 0x77 Setting other graphics state variables Instruction INSTCTRL SLOOP[ ] SMD[ ] SCANCTRL[ ] SCANTYPE[ ] SCVTCI[ ] SSWCI[ ] SSW[ ] FLIPON[ ] FLIPOFF[ ] SANGW[ ] SDB[ ] SDS[ ] Opcode 0x8E 0x17 0x1A 0x85 0x8D 0x1D 0x1E 0x1F 0x4D 0x4E 0x7E 0x5E 0x5F Reading and Writing Data Instruction GC[a] SCFS[ ] MD[a] Page 378 Opcode 0x46 – 0x47 0x48 0x49 – 0x4A Revision 1.66 File Name: 81919596 Instruction Set Summary MPPEM[ ] MPS[ ] – – ppem pointSize Opcode 0x81 0x82 0x80 Pops highpoint, lowpoint highpoint, lowpoint p Pushes – – – Opcode 0x34 – 0x35 0x36 – 0x37 0x38 0x32 – 0x33 Pops c e p1, p2, amount p Pushes – – – – Opcode 0x2E – 0x2F 0x3E – 0x3F 0xC0 – 0xDF 0xE0 – 0xFF 0x3C 0x7F 0x0F 0x27 Pops p n, p p n, p p1, p2, ... , ploop p a1, a0, b1, b0, p p1, p2 Pushes – – – – – – – – Pops p – Pushes – – Pops n, p1, arg1, ..., pn, argn n, p1, arg1, ..., pn, argn Pushes – 0x4B 0x4C Managing Outlines Flipping Points Instruction FLIPRGON[ ] FLIPRGOFF[ ] FLIPPT[ ] Shifting Points Instruction SHC[a] SHZ[a] SHPIX[ ] SHP Moving Points Instruction MDAP[ a ] MIAP[a] MDRP[abcde] MIRP[abcde] ALIGNRP[ ] AA[ ] ISECT[ ] ALIGNPTS[ ] Interpolating Points Instruction UTP[ ] IUP[a] Opcode 0x29 0x30 – 0x31 Managing Exceptions Instruction DELTAP1[ ] Opcode 0x5D DELTAP2[ ] 0x71 Revision 1.66 File Name: 81919596 – Page 379 Instruction Set Summary DELTAP3[ ] 0x72 DELTAC1[ ], DELTAC2[ ] DELTAC3[ ] 0x73 0x74 0x75 n, p1, arg1, ..., pn, argn n, c1, arg1, ..., cn, argn n, c1, arg1, ..., cn, argn n, c1, arg1, ..., cn, argn – Pops e e all items on the stack e1, e2 – k k, e1, e2, ..., ek – Pushes e, e – – e1, e2 n ek ek–1, ek–2, ..., e1, ek – Pushes (e2 < e1 Boolean value (e2 e1) Boolean value (e2 > e1) Boolean value (e2 e1) Boolean value (e2 = e1) Boolean value (e2 e1) Boolean value (e mod 2) = 1 Boolean value (e mod 2) = 0 Boolean value ( e2 and e1 ) Boolean value ( e2 or e1 )Boolean value ( not e )Boolean value – – – Managing the stack Instruction DUP[ ] POP[ ] CLEAR[ ] SWAP[ ] DEPTH[ ] CINDEX[ ] MINDEX[ ] ROLL Opcode 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x8a Logical functions Instruction LT[ ] Opcode 0x50 Pops e1, e2 LTEQ[ ] 0x51 e1, e2 GT[ ] 0x52 e1, e2 GTEQ[ ] 0x53 e1, e2 EQ[ ] 0x54 e1, e2 NEQ[ ] 0x55 e1, e2 ODD[ ] 0x56 e EVEN[ ] 0x57 e AND[ ] 0x5A e1, e2 OR[ ] 0x5B e1, e2 NOT[ ] 0x5C e Page 380 Revision 1.66 File Name: 81919596 Instruction Set Summary Managing the flow of control Instruction IF[ ] EIF[ ] ELSE JMPR JROT[ ] JROF[ ] Opcode 0x58 0x59 0x1B 0x1C 0x78 0x79 Pops e – Pushes – – offset e, offset e, offset – – Pops n1, n2 n1, n2 n1, n2 n1, n2 n n1 n1 n1 e1, e2 e1, e2 Pushes (n1 + n2) (n2 – n1) (n2 ¥ 64)/ n1 (n1 ¥ n2)/64 |n| –n1 n n max(e1, e2) min(e1, e2) Arithmetic functions Instruction ADD[ ] SUB[ ] DIV[ ] MUL[ ] ABS[ ] NEG[ ] FLOOR[ ] CEILING[ ] MAX[ ] MIN[ ] Opcode 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0X8B 0X8C Compensating for the engine characteristics Instruction ROUND[ab] NROUND[ab] Opcode 0x68 – 0x6B 0x6C – 0x6F Pops n1 n1 Pushes n2 n2 Defining and using functions and instructions Instruction FDEF[ ] ENDF[ ] CALL[ ] LOOPCALL[ ] IDEF[ ] Opcode 0x2C 0x2D 0x2B 0x2A 0x89 Pops f – f f, count o Pushes – – – – – Opcode 0x4F Pops opcode Pushes – Debugging Instruction DEBUG[ ] Revision 1.66 File Name: 81919596 Page 381 Instruction Set Summary Miscellaneous Instruction GETINFO[ ] Page 382 Opcode 0x88 Pops selector Pushes result Revision 1.66 File Name: 81919596 Instruction Set Summary Instructions by Name Instruction AA[ ] ABS[ ] ADD[ ] ALIGNPTS[ ] ALIGNRP[ ] AND[ ] Opcode 0x7F 0x64 0x60 0x27 0x3C 0x5A CALL[ ] CEILING[ ] CINDEX[ ] CLEAR[ ] DEBUG[ ] DELTAC1[ ], DELTAC2[ ] DELTAC3[ ] DELTAP1[ ] 0x2B 0x67 0x25 0x22 0x4F 0x73 0x74 0x75 0x5D DELTAP2[ ] 0x71 DELTAP3[ ] 0x72 DEPTH[ ] DIV[ ] DUP[ ] EIF[ ] ELSE ENDF[ ] EQ[ ] 0x24 0x62 0x20 0x59 0x1B 0x2D 0x54 EVEN[ ] 0x57 e FDEF[ ] FLIPOFF[ ] FLIPON[ ] FLIPPT[ ] FLIPRGOFF[ ] FLIPRGON[ ] FLOOR[ ] GC[a] GETINFO[ ] GFV[ ] 0x2C 0x4E 0x4D 0x80 0x82 0x81 0x66 0x46 – 0x47 0x88 0x0D f – – p1, p2, ..., ploop highpoint, lowpoint highpoint, lowpoint n1 p selector – Revision 1.66 File Name: 81919596 Takes from IS p n n1, n2 p1, p2 p1, p2, ... , ploop e1, e2 Pushes – |n| (n1 + n2) – – ( e2 and e1 ) Boolean value f – n1 n k ek all items on the stack – opcode – n, c1, arg1, ..., cn, argn – n, c1, arg1, ..., cn, argn – n, c1, arg1, ..., cn, argn – n, p1, arg1, ..., pn, – argn n, p1, arg1, ..., pn, – argn n, p1, arg1, ..., pn, – argn – n n1, n2 (n2 * 64)/ n1 e e, e – – – e1, e2 – (e2= e1) Boolean value (e mod 2) = 0 Boolean value – – – – – – n value result x, y Page 383 Instruction Set Summary GPV[ ] GT[ ] 0x0C 0x52 – e1, e2 GTEQ[ ] 0x53 e1, e2 IDEF[ ] IF[ ] INSTCTRL IP[ ] ISECT[ ] IUP[a] JMPR JROF[ ] JROT[ ] LOOPCALL[ ] LT[ ] 0x89 0x58 0x8E 0x39 0x0F 0x30 – 0x31 0x1C 0x79 0x78 0x2A 0x50 o e value p1, p2, ... , ploop a1, a0, b1, b0, p – offset e, offset e, offset f, count e1, e2 LTEQ[ ] 0x51 e1, e2 MAX[ ] MD[a] MDAP[ a ] MDRP[abcde] MIAP[a] MIN[ ] MINDEX[ ] MIRP[abcde] MPPEM[ ] MPS[ ] MSIRP[a] MUL[ ] NEG[ ] NEQ[ ] 0X8B 0x49 – 0x4A 0x2E – 0x2F 0xC0 – 0xDF 0x3E – 0x3F 0X8C 0x26 0xE0 – 0xFF 0x4B 0x4C 0x3A – 0x3B 0x63 0x65 0x55 e1, e2 p1,p2 p p n, p e1, e2 k, e1, e2, ..., ek n, p – – distance, p n1, n2 n1 e1, e2 NOT[ ] NPUSHB[ ] NPUSHW[ ] NROUND[ab] ODD[ ] 0x5C 0x40 0x41 0x6C – 0x6F 0x56 e n, b1, b2,...bn n, w1, w2,...wn n1 e OR[ ] 0x5B e1, e2 POP[ ] PUSHB[abc] 0x21 0xB0 – 0xB7 e b0, b1,..bn Page 384 x, y (e2 > e1) Boolean value (e2 e1) Boolean value – – – – – – – – – (e2 < e1 Boolean value (e2 e1) Boolean value max(e1, e2) distance – – – min(e1, e2) ek–1, ek–2, ..., e1, ek – ppem pointSize – (n1 ¥ n2)/64 –n1 (e2 e1) Boolean value ( not e )Boolean value b1,b2...bn w1,w2...wn n2 (e mod 2) = 1 Boolean value ( e2 or e1 )Boolean value – b0, b1, ...,bn Revision 1.66 File Name: 81919596 Instruction Set Summary PUSHW[abc] RCVT[ ] RDTG[ ] ROFF[ ] ROLL ROUND[ab] RS[ ] RTDG[ ] RTG[ ] RTHG[ ] RUTG[ ] S45ROUND[ ] SANGW[ ] SCANCTRL[ ] SCANTYPE[ ] SCFS[ ] SCVTCI[ ] SDB[ ] SDPVTL[a] SDS[ ] SFVFS[ ] SFVTCA[a] SFVTL[a] SFVTPV[ ] SHC[a] SHP[a] SHPIX[ ] SHZ[a] SLOOP[ ] SMD[ ] SPVFS[ ] SPVTCA[a] SPVTL[a] SROUND[ ] SRP0[ ] SRP1[ ] SRP2[ ] SSW[ ] SSWCI[ ] SUB[ ] SVTCA[a] SWAP[ ] SZP0[ ] SZP1[ ] Revision 1.66 File Name: 81919596 0xB8 – 0xBF 0x45 0x7D 0x7A 0x8a 0x68 – 0x6B 0x43 0x3D 0x18 0x19 0x7C 0x77 0x7E 0x85 0x8D 0x48 0x1D 0x5E 0x86 – 0x87 0x5F 0x0B 0x04 – 0x05 0x08 – 0x09 0x0E 0x34 – 0x35 0x32 – 0x33 0x38 0x36 – 0x37 0x17 0x1A 0x0A 0x02 – 0x03 0x06 – 0x07 0x76 0x10 0x11 0x12 0x1F 0x1E 0x61 0x00 – 0x01 0x23 0x13 0x14 w0,w1,..wn location – – – n1 location – – – – n weight n n value, p n n p1, p2 n y, x – p1, p2 – c p1, p2, ..., ploop p1, p2, amount e n distance y, x – p1, p2 n p p p n n n1, n2 – e1, e2 n n w0 ,w1, ...wn value – – – n2 value – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – (n2 – n1) – e1, e2 – – Page 385 Instruction Set Summary SZP2[ ] SZPS[ ] UTP[ ] WCVTF[ ] WCVTP[ ] WS[ ] Page 386 0x15 0x16 0x29 0x70 0x44 0x42 n n p value, location value, location value, location – – – – – – Revision 1.66 File Name: 81919596
© Copyright 2026 Paperzz