104 lines
840 B
NASM
104 lines
840 B
NASM
:: Some insight on this
|
|
:: @meta is the metadata discriptor
|
|
::
|
|
@meta
|
|
:: Set to codepage 610
|
|
SEA 610
|
|
:: codepage always gets stored at byte 0 of mem
|
|
STA 0
|
|
:: set interupt 0 to 615 (startup)
|
|
SEA 615
|
|
:: store in mem
|
|
STA 1
|
|
JMP ready
|
|
|
|
@readyjumpback
|
|
LDA 24
|
|
JMP ACC
|
|
|
|
@ready
|
|
SEA ready
|
|
LDX
|
|
SEA 8
|
|
LDY
|
|
ADD
|
|
STA 24
|
|
JMP RegisterModes
|
|
JMP parse
|
|
|
|
@RegisterModes
|
|
NVAR m_add, 068
|
|
NVAR m_sub, 078
|
|
NVAR m_div, 088
|
|
NVAR m_mul, 098
|
|
NVAR mode, m_mul
|
|
NVAR A, 10
|
|
NVAR B, 10
|
|
JMP readyjumpback
|
|
|
|
@madd
|
|
SEA A
|
|
LDX
|
|
SEA B
|
|
LDY
|
|
ADD
|
|
STA 8
|
|
JMP EOF
|
|
|
|
@msub
|
|
SEA A
|
|
LDX
|
|
SEA B
|
|
LDY
|
|
SUB
|
|
STA 8
|
|
JMP EOF
|
|
|
|
@mmul
|
|
SEA A
|
|
LDX
|
|
SEA B
|
|
LDY
|
|
MUL
|
|
STA 8
|
|
JMP EOF
|
|
|
|
@mdiv
|
|
SEA A
|
|
LDX
|
|
SEA B
|
|
LDY
|
|
DIV
|
|
STA 8
|
|
JMP EOF
|
|
|
|
@parse
|
|
SEA mode
|
|
LDX
|
|
SEA m_add
|
|
LDY
|
|
GIE
|
|
JIE madd
|
|
SEA mode
|
|
LDX
|
|
SEA m_sub
|
|
LDY
|
|
GIE
|
|
JIE msub
|
|
SEA mode
|
|
LDX
|
|
SEA m_mul
|
|
LDY
|
|
GIE
|
|
JIE mmul
|
|
SEA mode
|
|
LDX
|
|
SEA m_div
|
|
LDY
|
|
GIE
|
|
JIE mdiv
|
|
JMP EOF
|
|
|
|
@EOF
|
|
PRM 8
|
|
HLT |