43 lines
630 B
NASM
43 lines
630 B
NASM
.include "$lib/core.asm"
|
|
.include "$lib/std.asm"
|
|
.include "$lib/main.asm"
|
|
.define MEM_CALL_STACK, CORE_MEM_MEM
|
|
.macro stack_transfer_alu
|
|
.std_ld
|
|
tlr CORE_REG_B
|
|
.std_ld
|
|
tlr CORE_REG_A
|
|
.endmacro
|
|
.macro call_word, call_word_arg_0_label
|
|
ts (OFFSET + 14)
|
|
tlr CORE_REG_A
|
|
ts MEM_CALL_STACK
|
|
set
|
|
ts call_word_arg_0_label
|
|
tlr CORE_REG_PC
|
|
.endmacro
|
|
.macro return_word
|
|
.std_get MEM_CALL_STACK
|
|
tlr CORE_REG_PC
|
|
.endmacro
|
|
.jump_main
|
|
data:
|
|
data_strings:
|
|
words:
|
|
main:
|
|
.main main
|
|
push 10
|
|
tss
|
|
tls
|
|
tss
|
|
tls
|
|
.std_ld
|
|
tlr CORE_REG_A
|
|
.std_set CORE_MEM_CHR
|
|
.std_ld
|
|
tlr CORE_REG_A
|
|
.std_set CORE_MEM_CHR
|
|
.std_ld
|
|
tlr CORE_REG_A
|
|
.std_set CORE_MEM_CHR
|
|
.std_stop |