| Return to IndexInstruction Set Summary The following tables provide a quick summary of the names, opcodes, instruction
stream and stack interaction of the TrueType instruction set.
 
 The first table lists those instructions that take data from the instruction
stream and place it onto the interpreter stack. The second table lists the
remaining TrueType instructions which take their arguments from the stack.
 Table 1 Instructions taking data
from the instruction stream
 
| Instruction | Opcode | From Instruction Stream | Pushes |  
| NPUSHB[ ] | 0x40 | n, b1, b2,...bn | b1,b2...bn |  
| NPUSHW[ ] | 0x41 | n, w1, w2,...w | w1,w2...wn |  
| PUSHB[abc] | 0xB0 - 0xB7 | b0, b1,..bn | b0, b1, ...,bn |  
| PUSHW[abc] | 0xB8 - 0xBF | w0,w1,..wn | w0 ,w1, ...wn |  
 Table 2 Instructions taking
data from the interpreter stack 
| Instruction | Opcode | Pops | Pushes |  
| AA[ ] | 0x7F | p | - |  
| ABS[ ] | 0x64 | n | |n| |  
| ADD[ ] | 0x60 | n2, n1 | (n1 + n2) |  
| ALIGNPTS[ ] | 0x27 | p2, p1 | - |  
| ALIGNRP[ ] | 0x3C | p1, p2, ... , ploopvalue | - |  
| AND[ ] | 0x5A | e2, e1 | b |  
| CALL[ ] | 0x2B | f | - |  
| CEILING[ ] | 0x67 | n | Èn |  
| CINDEX[ ] | 0x25 | k | ek |  
| CLEAR[ ] | 0x22 | all items on the stack | - |  
| DEBUG[ ] | 0x4F | n | - |  
| DELTAC1[ ], | 0x73 | argn, cn, argn-1,cn-1, , arg1, c1 | - |  
| DELTAC2[ ] | 0x74 | argn, cn, argn-1,cn-1, , arg1, c1 | - |  
| DELTAC3[ ] | 0x75 | argn, cn, argn-1,cn-1, , arg1, c1 | - |  
| DELTAP1[ ] | 0x5D | argn, pn, argn-1, pn-1, , arg1, p1 | - |  
| DELTAP2[ ] | 0x71 | argn, pn, argn-1, pn-1, , arg1, p1 | - |  
| DELTAP3[ ] | 0x72 | argn, pn, argn-1, pn-1, , arg1, p1 | - |  
| DEPTH[ ] | 0x24 | - | n |  
| DIV[ ] | 0x62 | n2, n1 | (n1 * 64)/ n2 |  
| DUP[ ] | 0x20 | e | e, e |  
| EIF[ ] | 0x59 | - | - |  
| ELSE | 0x1B | - | - |  
| ENDF[ ] | 0x2D | - | - |  
| EQ[ ] | 0x54 | e2, e1 | b |  
| EVEN[ ] | 0x57 | e | b |  
| FDEF[ ] | 0x2C | f | - |  
| FLIPOFF[ ] | 0x4E | - | - |  
| FLIPON[ ] | 0x4D | - | - |  
| FLIPPT[ ] | 0x80 | p1, p2, ..., ploopvalue | - |  
| FLIPRGOFF[ ] | 0x82 | h, l | - |  
| FLIPRGON[ ] | 0x81 | h, l | - |  
| FLOOR[ ] | 0x66 | n | În° |  
| GC[a] | 0x46 - 0x47 | p | c |  
| GETINFO[ ] | 0x88 | selector | result |  
| GFV[ ] | 0x0D | - | px, py |  
| GPV[ ] | 0x0C | - | px, py |  
| GT[ ] | 0x52 | e2, e1 | b |  
| GTEQ[ ] | 0x53 | e2, e1 | b |  
| IDEF[ ] | 0x89 | f | - |  
| IF[ ] | 0x58 | e | - |  
| INSTCTRL | 0x8E | s, v | - |  
| IP[ ] | 0x39 | p1, p2, ... , ploopvalue | - |  
| ISECT[ ] | 0x0F | a1, a0, b1, b0, p | - |  
| IUP[a] | 0x30 - 0x31 | - | - |  
| JMPR | 0x1C | offset | - |  
| JROF[ ] | 0x79 | e, offset | - |  
| JROT[ ] | 0x78 | e, offset | - |  
| LOOPCALL[ ] | 0x2A | f, count | - |  
| LT[ ] | 0x50 | e2, e1 | b |  
| LTEQ[ ] | 0x51 | e2, e1 | b |  
| MAX[ ] | 0X8B | e2, e1 | max(e1, e2) |  
| MD[a] | 0x49 - 0x4A | p2,p1 | d |  
| MDAP[ a ] | 0x2E - 0x2F | p | - |  
| MDRP[abcde] | 0xC0 - 0xDF | p | - |  
| MIAP[a] | 0x3E - 0x3F | n, p | - |  
| MIN[ ] | 0X8C | e2, e1 | min(e1, e2) |  
| MINDEX[ ] | 0x26 | k | ek |  
| MIRP[abcde] | 0xE0 - 0xFF | n, p | - |  
| MPPEM[ ] | 0x4B | - | ppem |  
| MPS[ ] | 0x4C | - | pointSize |  
| MSIRP[a] | 0x3A - 0x3B | d, p | - |  
| MUL[ ] | 0x63 | n2, n1 | (n1 * n2)/64 |  
| NEG[ ] | 0x65 | n | -n |  
| NEQ[ ] | 0x55 | e2, e1 | b |  
| NOT[ ] | 0x5C | e | ( not e ) |  
| NROUND[ab] | 0x6C - 0x6F | n1 | n2 |  
| ODD[ ] | 0x56 | e | b |  
| OR[ ] | 0x5B | e2, e1 | b |  
| POP[ ] | 0x21 | e | - |  
| RCVT[ ] | 0x45 | location | value |  
| RDTG[ ] | 0x7D | - | - |  
| ROFF[ ] | 0x7A | - | - |  
| ROLL | 0x8a | a,b,c | b,a,c |  
| ROUND[ab] | 0x68 - 0x6B | n1 | n2 |  
| RS[ ] | 0x43 | n | v |  
| RTDG[ ] | 0x3D | - | - |  
| RTG[ ] | 0x18 | - | - |  
| RTHG[ ] | 0x19 | - | - |  
| RUTG[ ] | 0x7C | - | - |  
| S45ROUND[ ] | 0x77 | n | - |  
| SANGW[ ] | 0x7E | weight | - |  
| SCANCTRL[ ] | 0x85 | n | - |  
| SCANTYPE[ ] | 0x8D | n | - |  
| SCFS[ ] | 0x48 | c, p | - |  
| SCVTCI[ ] | 0x1D | n | - |  
| SDB[ ] | 0x5E | n | - |  
| SDPVTL[a] | 0x86 - 0x87 | p2, p1 | - |  
| SDS[ ] | 0x5F | n | - |  
| SFVFS[ ] | 0x0B | y, x | - |  
| SFVTCA[a] | 0x04 - 0x05 | - | - |  
| SFVTL[a] | 0x08 - 0x09 | p2, p1 | - |  
| SFVTPV[ ] | 0x0E | - | - |  
| SHC[a] | 0x34 - 0x35 | c | - |  
| SHP[a] | 0x32 - 0x33 | p1, p2, ..., ploopvalue | - |  
| SHPIX[ ] | 0x38 | d, p1, p2, ..., ploopvalue | - |  
| SHZ[a] | 0x36 - 0x37 | e | - |  
| SLOOP[ ] | 0x17 | n | - |  
| SMD[ ] | 0x1A | distance | - |  
| SPVFS[ ] | 0x0A | y, x | - |  
| SPVTCA[a] | 0x02 - 0x03 | - | - |  
| SPVTL[a] | 0x06 - 0x07 | p2, p1 | - |  
| SROUND[ ] | 0x76 | n | - |  
| SRP0[ ] | 0x10 | p | - |  
| SRP1[ ] | 0x11 | p | - |  
| SRP2[ ] | 0x12 | p | - |  
| SSW[ ] | 0x1F | n | - |  
| SSWCI[ ] | 0x1E | n | - |  
| SUB[ ] | 0x61 | n2, n1 | (n1 - n2) |  
| SVTCA[a] | 0x00 - 0x01 | - | - |  
| SWAP[ ] | 0x23 | e2, e1 | e1, e2 |  
| SZP0[ ] | 0x13 | n | - |  
| SZP1[ ] | 0x14 | n | - |  
| SZP2[ ] | 0x15 | n | - |  
| SZPS[ ] | 0x16 | n | - |  
| UTP[ ] | 0x29 | p | - |  
| WCVTF[ ] | 0x70 | n, l | - |  
| WCVTP[ ] | 0x44 | v, l | - |  
| WS[ ] | 0x42 | v, l | - |  
 Return to Index
 |