Skip to content
0xC0ba1t edited this page Apr 15, 2023 · 9 revisions

Instructions

0: MW reg, imm8/reg -> reg = imm8/reg
1: LW reg, [imm16/LM] -> reg = [LM/imm16]
2: SW [imm16/LM], reg -> [LM/imm16] = reg
3: PUSH imm8/reg -> [SP--] = imm8/reg
4: POP reg -> reg = [++SP]
5: LDA [imm16] -> LM = imm16
6: JNZ imm8/reg -> PC = LM if imm8/reg != 0 else NOP
7: INB reg, imm8/reg -> reg = PORT[imm8/reg]
8: OUTB imm8/reg, reg -> PORT[imm8/reg] = reg
9: ADD^ reg, imm8/reg -> reg = reg + imm8/reg
A: ADC^ reg, imm8/reg -> reg = reg + imm8/reg + c
B: AND reg, imm8/reg -> reg = reg & imm8/reg
C: OR reg, imm8/reg -> reg = reg | imm8/reg
D: NOR reg, imm8/reg -> reg = ~(reg | imm8/reg)
E: CMP^ reg, imm8/reg -> f = compare reg, imm8/reg (see below)
F: SBB^ reg, imm8/reg -> reg = reg - imm8/reg - b

Registers

A [0]: GP Register

B [1]: GP Register

C [2]: GP Register

D [3]: GP Register

Z [4]: GP Register

L [5]: GP Register / (L)east Significant Index Register

M [6]: GP Register / (M)ost Significant Index Register

F [7]: FLAGS Register (LSB to MSB)::

---LESS

---EQUAL

---CARRY

---BORROW

Instruction Layout

WIP

Memory Layout

WIP

Memory Banking

WIP

Ports

WIP

Status Register

WIP

Video

WIP

Clone this wiki locally