53 lines
1.4 KiB
NASM
53 lines
1.4 KiB
NASM
|
; hence core lib
|
||
|
core:
|
||
|
.define NULL, 0x0000
|
||
|
.define VOID, NULL
|
||
|
|
||
|
.define FALSE, NULL
|
||
|
.define TRUE, 0x0001
|
||
|
|
||
|
.define CORE_U8_MAX, 0x00ff
|
||
|
.define CORE_U16_MAX, 0xffff
|
||
|
|
||
|
.define CORE_KB, 1024
|
||
|
|
||
|
core_mem:
|
||
|
.define CORE_MEM_PRG, (0 * CORE_KB)
|
||
|
.define CORE_MEM_ST, (32 * CORE_KB)
|
||
|
.define CORE_MEM_MEM, (40 * CORE_KB)
|
||
|
.define CORE_MEM_OUT, (56 * CORE_KB)
|
||
|
.define CORE_MEM_CHR, (56 * CORE_KB + 1)
|
||
|
.define CORE_MEM_KEY, (56 * CORE_KB + 2)
|
||
|
|
||
|
core_reg:
|
||
|
.define CORE_REG_PC, 0x0
|
||
|
.define CORE_REG_OPC, 0x1
|
||
|
.define CORE_REG_ARG, 0x2
|
||
|
.define CORE_REG_S, 0x3
|
||
|
.define CORE_REG_SP, 0x4
|
||
|
.define CORE_REG_A, 0x5
|
||
|
.define CORE_REG_B, 0x6
|
||
|
.define CORE_REG_C, 0x7
|
||
|
.define CORE_REG_D, 0x8
|
||
|
|
||
|
core_alu:
|
||
|
.define CORE_ALU_NOT, 0x00
|
||
|
.define CORE_ALU_AND, 0x01
|
||
|
.define CORE_ALU_OR, 0x02
|
||
|
.define CORE_ALU_XOR, 0x03
|
||
|
.define CORE_ALU_LSH, 0x04
|
||
|
.define CORE_ALU_RSH, 0x05
|
||
|
.define CORE_ALU_ADD, 0x06
|
||
|
.define CORE_ALU_SUB, 0x07
|
||
|
.define CORE_ALU_MUL, 0x08
|
||
|
.define CORE_ALU_DIV, 0x09
|
||
|
.define CORE_ALU_CMP, 0x0a
|
||
|
.define CORE_ALU_EQ, 0x0b
|
||
|
.define CORE_ALU_LT, 0x0c
|
||
|
.define CORE_ALU_GT, 0x0d
|
||
|
.define CORE_ALU_LEQ, 0x0e
|
||
|
.define CORE_ALU_GEQ, 0x0f
|
||
|
.define CORE_ALU_BOL, 0x10
|
||
|
.define CORE_ALU_INV, 0x11
|
||
|
.define CORE_ALU_RND, 0x12
|