I2L Opcode Table

Top  Previous  Next

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