Opcode
|
Mnemonic
|
Arguments
|
Arg Sizes
|
Description
|
$00
|
EXIT
|
None
|
-
|
Exit Interpreter
|
$01
|
LOD
|
Level, Offset
|
Byte, Word
|
Load a Variable
|
$02
|
LDX
|
None
|
-
|
Indexed Load a Byte
|
$03
|
STO
|
Level, Offset
|
Byte, Word
|
Store into a Variable
|
$04
|
STX
|
None
|
-
|
Indexed Store into a Byte
|
$05
|
CAL
|
New Level, Address
|
Byte, Word
|
Call an I2L Procedure
|
$06
|
RET
|
None
|
-
|
Return from I2L Procedure
|
$07
|
JMP
|
Address
|
Word
|
Jump to I2L Code
|
$08
|
JPC
|
Address
|
Word
|
Jump if False
|
$09
|
HPI
|
Increment
|
Word
|
Increment Heap Ptr by Arg
|
$0A
|
ARG
|
Arg Count
|
Word
|
Get Procedure Arguments
|
$0B
|
IMM
|
Constant
|
Word
|
Immediate Load of a Value
|
$0C
|
CML
|
Intrinsic Number
|
Byte
|
Call an Intrinsic
|
$0D
|
ADD
|
None
|
-
|
Add
|
$0E
|
SUB
|
None
|
-
|
Subtract
|
$0F
|
MUL
|
None
|
-
|
Multiply
|
$10
|
DIV
|
None
|
-
|
Divide
|
$11
|
NEG
|
None
|
-
|
Unary Minus
|
$12
|
EQ
|
None
|
-
|
Test For Equal
|
$13
|
NE
|
None
|
-
|
Test For Not Equal
|
$14
|
GE
|
None
|
-
|
Test For Greater or Equal
|
$15
|
GT
|
None
|
-
|
Test For Greater
|
$16
|
LE
|
None
|
-
|
Test For Less Than or Equal
|
$17
|
LT
|
None
|
-
|
Test For Less Than
|
$18
|
FOR
|
Branch Address
|
Word
|
'for' Loop Control
|
$19
|
INP
|
Level, Offset
|
Byte, Word
|
Increment and Push
|
$1A
|
OR
|
None
|
-
|
OR
|
$1B
|
AND
|
None
|
-
|
AND
|
$1C
|
NOT
|
None
|
-
|
1's Complement
|
$1D
|
EOR
|
None
|
-
|
Exclusive OR
|
$1E
|
DBA
|
None
|
-
|
TOS:= TOS*IntBytes+NOS
|
$1F
|
STD
|
None
|
-
|
Indirect Save
|
$20
|
DBX
|
None
|
-
|
Indirect Get
|
$21
|
ADR
|
Level, Offset
|
Byte, Word
|
Address of Variable
|
$22
|
LDI
|
None
|
-
|
Indirect Get
|
$23
|
LDA
|
Address
|
Word
|
Absolute Get
|
$24
|
IMS
|
Value
|
Byte
|
Short Immediate
|
$25
|
CJP
|
Address
|
Word
|
Case Jump
|
$26
|
JSR
|
Address
|
Word
|
Optimized Procedure Call
|
$27
|
RTS
|
None
|
-
|
Optimized Return
|
$28
|
DRP
|
None
|
-
|
Drop TOS
|
$29
|
CEXT
|
Address
|
Word
|
Call External Subroutine
|
$2A
|
FLOD
|
Level, Offset
|
Byte, Word
|
Floating Load
|
$2B
|
FSTO
|
Level, Offset
|
Byte, Word
|
Floating Store
|
$2C
|
FIMM
|
Value
|
64-bit float
|
Floating Load Immediate
|
$2D
|
FADD
|
None
|
-
|
Floating Add
|
$2E
|
FSUB
|
None
|
-
|
Floating Subtract
|
$2F
|
FMUL
|
None
|
-
|
Floating Multiply
|
$30
|
FDIV
|
None
|
-
|
Floating Divide
|
$31
|
FNEG
|
None
|
-
|
Floating Negate
|
$32
|
FEQ
|
None
|
-
|
Test Floating For Equal
|
$33
|
FNE
|
None
|
-
|
Test Floating For Not Equal
|
$34
|
FGE
|
None
|
-
|
Test Floating For Greater or Equal
|
$35
|
FGT
|
None
|
-
|
Test Floating For Greater
|
$36
|
FLE
|
None
|
-
|
Test Floating For Less Than or Equal
|
$37
|
FLT
|
None
|
-
|
Test Floating For Less Than
|
$38
|
TRA
|
None
|
-
|
TOS:=TOS*RealSize + NOS
|
$39
|
TRX
|
None
|
-
|
Push @(RealSize*TOS+NOS)
|
$3A
|
TRI
|
None
|
-
|
Push(Real) @(TOS(Int)+NOS(Real))
|
$3B
|
STT
|
None
|
-
|
Pull(Real) @(NOS(Int))
|
$3C
|
MARK
|
Level, Offset
|
Byte, Word
|
Push Address of Real
|
$3D
|
ASR
|
None
|
-
|
Arithmetic Shift Right
|
$3E
|
LSL
|
None
|
-
|
Logical Shift Left
|
$3F
|
LSR
|
None
|
-
|
Logical Shift Right
|
$40
|
LDSI
|
None
|
-
|
Load Segment Integer
|
$41
|
LDSB
|
None
|
-
|
Load Segment Byte
|
$42
|
LDSR
|
None
|
-
|
Load Segment Real
|
$43
|
STSI
|
None
|
-
|
Store Segment Integer
|
$44
|
STSB
|
None
|
-
|
Store Segment Byte
|
$45
|
STSR
|
None
|
-
|
Store Segment Real
|
$46
|
LSHORT
|
None
|
-
|
Load Short Segment Real
|
$47
|
SSHORT
|
None
|
-
|
Store Short Segment Real
|
$48
|
MKARRAY
|
None
|
-
|
Reserve Array
|
$49
|
FORDOWN
|
Branch Address
|
Word
|
Downto 'for' Loop Control
|
$4A
|
DECP
|
Level, Offset
|
Byte, Word
|
Decrement and Push
|
$4B
|
Unused
|
None
|
-
|
Unused
|
$4C
|
Unused
|
None
|
-
|
Unused
|
$4D
|
Unused
|
None
|
-
|
Unused
|
$4E
|
PIN
|
None
|
-
|
Port In
|
$4F
|
POUT
|
None
|
-
|
Port Out
|
$50
|
ABS
|
None
|
-
|
Integer Absolute Value
|
$51
|
REM
|
None
|
-
|
Remainder
|
$52
|
SWAP
|
None
|
-
|
Swap Bytes
|
$53
|
EXT
|
None
|
-
|
Extend Sign
|
$54
|
SQRT
|
None
|
-
|
Integer Square Root
|
$55
|
SQR
|
None
|
-
|
Integer Square
|
$56
|
FIX
|
None
|
-
|
Convert Real to Integer Number
|
$57
|
FLOAT
|
None
|
-
|
Convert Integer to Real Number
|
$58
|
FABS
|
None
|
-
|
Floating Point Absolute Value
|
$59
|
FSQRT
|
None
|
-
|
Floating Point Square Root
|
$5A
|
FSQR
|
None
|
-
|
Floating Point Square
|
$60
|
STRMOD
|
Flag Value
|
Byte
|
Set String Termination Flag
|
|