.include "$lib/core.asm" .include "$lib/std.asm" .include "$lib/main.asm" .define HENCEFORTH_SOURCE_MAX_LEN, 128 .define HENCEFORTH_SOURCE_START, CORE_MEM_MEM .define HENCEFORTH_SOURCE_END, (HENCEFORTH_SOURCE_START + HENCEFORTH_SOURCE_MAX_LEN) .define HENCEFORTH_SOURCE_LEN, (HENCEFORTH_SOURCE_END + 1) .jump_main .def_main ts HENCEFORTH_SOURCE_START tlr CORE_REG_B loop: ; get key press ts CORE_MEM_KEY get tlr CORE_REG_A ; echo ts CORE_MEM_CHR set ; store in source tsr CORE_REG_B set ; increment pointer ts 1 tlr CORE_REG_A ts CORE_ALU_ADD alu tlr CORE_REG_B ; jump to loop start or not ; backup tsr CORE_REG_B tlr CORE_REG_C ; check ts HENCEFORTH_SOURCE_END tlr CORE_REG_A ts CORE_ALU_GT alu tlr CORE_REG_A ; restore tsr CORE_REG_C tlr CORE_REG_B ; jump ts loop tlrc CORE_REG_PC .std_stop