SAGA/Bytecode Instruction Table

From ScummVM :: Wiki
< SAGA
Revision as of 10:41, 9 May 2007 by Clone2727 (talk | contribs) (typo)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Opcode Instruction Format Description
01 ALGN - Align to next offset unit
02 PSHN - Push stack (no value)
03 POPN - Pop stack and discard result
04 PSHF - Push 0 onto stack
05 PSHT - Push 1 onto stack
06 PUSH [ w ] Push immediate onto stack
08 PSHD [ w ] Push dialogue string index onto stack
0B TSTF [b][ w ] Test Flag
0C GETW [b][ w ] Get Word
0F MODF [b][ w ] Set / Clear Flag
10 PUTW [b][ w ] Put Word
13 MDFP [b][ w ] Set / Clear Flag, Pop
14 PTWP [b][ w ] Put Word, Pop
17 GOSB [b][b][ w ] Call Subroutine
18 CALL [b][ w ] Call function
19 CALL [b][ w ] Call function
1A ENTR [ w ] Entrypoint
1B ? -
1C EXIT - Exit script processing
1D JMP [ w ] Unconditional jump
1E JNZP [ w ] Jump if Not Zero, Pop
1F JZP [ w ] Jump if Zero, Pop
20 JNZ [ w ] Jump if Not Zero
21 JZ [ w ] Jump if Zero
22 SWCH [ w ]([ w ][ w ])*n [ w ] Switch
24 RJMP [ w ][ w ]([ w ][ w ])*n Random branch
25 NEG - Negate
26 TSTZ - Test for zero
27 NOT - Binary NOT
28 ? [b][ w ]
29 ? [b][ w ]
2A ? [b][ w ]
2B ? [b][ w ]
2C ADD - Add
2D SUB - Subtract
2E MULT - Multiply
2F DIV - Divide
30 MOD - Modulus
33 EQU - Test Equality
34 NEQU - Test Inequality
35 GRT - Test Greater-than
36 LST - Test Less-than
37 GRTE - Test Greater-than or Equal
38 LSTE - Test Less-than or Equal
3F SHR - Arithmetic Bitshift Right
40 SHL - Arithmetic Bitshift Left
41 AND - Binary AND
42 OR - Binary OR
43 XOR - Binary XOR
44 LAND - Logical AND
45 LOR - Logical OR
46 LXOR - Logical XOR
53 DLGP [b][ w ][b][ w ] Play character dialogue
54 DLGS - Setup dialogue tree
55 DLGX - Run dialogue tree
56 DLGO [b][b]([ w ]) Add dialogue tree option
57 JMPS [ w ][ w ][b] Short jump