@@ 1,4 1,4 @@
- 0x00000 T_imm(0x11) line: 276 T_imm(main)
+ 0x00000 T_imm(0x11) line: 283 T_imm(main)
_reserved: 0x00004 0x00000000
0x00008 0x00000000
0x0000c 0x00000000
@@ 8,543 8,535 @@
0x0001c 0x00000000
0x00020 0x00000000
0x00024 0x00000000
- NEXT_: 0x00028 Load_word(3, 14) line: 281 Load_word(next_function, IP) # next_function <- RAM[IP]
- 0x0002c Load_word(4, 3) line: 282 Load_word(codeword, next_function) # codeword <- RAM[next_function]
- 0x00030 Add_imm(14, 14, 0x4, u=False, v=False) line: 283 Add_imm(IP, IP, 4) # IP += 4
- 0x00034 T(4) line: 284 T(codeword) # PC <- RAM[codeword]
+ NEXT_: 0x00028 Load_word(3, 14) line: 288 Load_word(next_function, IP) # next_function <- RAM[IP]
+ 0x0002c Load_word(4, 3) line: 289 Load_word(codeword, next_function) # codeword <- RAM[next_function]
+ 0x00030 Add_imm(14, 14, 0x4, u=False, v=False) line: 290 Add_imm(IP, IP, 4) # IP += 4
+ 0x00034 T(4) line: 291 T(codeword) # PC <- RAM[codeword]
DOCOL: 0x00038 Sub_imm(12, 12, 0x4, u=False, v=False) line: 142 Sub_imm(Rstack, Rstack, 4) # Rstack -= 4 -- (in PUSHRSP)
0x0003c Store_word(14, 12) line: 143 Store_word(reg, Rstack) # reg -> RAM[Rstack] -- (in PUSHRSP)
- 0x00040 Add_imm(14, 3, 0x4, u=False, v=False) line: 300 Add_imm(IP, next_function, 4)
+ 0x00040 Add_imm(14, 3, 0x4, u=False, v=False) line: 307 Add_imm(IP, next_function, 4)
0x00044 T_imm(0xfffff8) line: 137 T_imm(NEXT_) -- (in NEXT)
- main: 0x00048 Mov_imm(10, 0x4000, u=False, v=False) line: 310 Mov_imm(Dstack, DATA_STACK)
- 0x0004c Mov_imm(12, 0x6000, u=False, v=False) line: 311 Mov_imm(Rstack, RETURN_STACK)
- 0x00050 Mov_imm(14, 0x58, u=False, v=False) line: 312 Mov_imm(IP, cold_start)
+ main: 0x00048 Mov_imm(10, 0x4000, u=False, v=False) line: 317 Mov_imm(Dstack, DATA_STACK)
+ 0x0004c Mov_imm(12, 0x6000, u=False, v=False) line: 318 Mov_imm(Rstack, RETURN_STACK)
+ 0x00050 Mov_imm(14, 0x58, u=False, v=False) line: 319 Mov_imm(IP, cold_start)
0x00054 T_imm(0xfffff4) line: 137 T_imm(NEXT_) -- (in NEXT)
- cold_start: 0x00058 0x00000064 line: 322 dw(REPL) # IP set to point here at start
- REPL_dfa: 0x0005c 0x00000000 line: 181 dw(LINK) -- (in def_)
- 0x00060 0x50455204 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- REPL: 0x00064 0x00000038 line: 203 dw(DOCOL) # codeword points to DOCOL colon word mini-interpreter. -- (in defword)
- 0x00068 0x000006e4 line: 333 dw(INTERPRET)
- 0x0006c 0x0000063c line: 334 dw(BRANCH)
- 0x00070 0xfffffff8 line: 335 dw(s_to_u_32(-8)) # Loop back to INTERPRET.
- DROP_dfa: 0x00074 0x0000005c line: 181 dw(LINK) -- (in def_)
- 0x00078 0x4f524404 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- DROP: 0x0007c 0x00000080 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00080 Add_imm(10, 10, 0x4, u=False, v=False) line: 339 Add_imm(Dstack, Dstack, 4) # drop top of stack
+ cold_start: 0x00058 0x00000064 line: 329 dw(REPL) # IP set to point here at start
+ REPL_dfa: 0x0005c 0x00000000 line: 188 dw(LINK) -- (in def_)
+ 0x00060 0x50455204 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ REPL: 0x00064 0x00000038 line: 210 dw(DOCOL) # codeword points to DOCOL colon word mini-interpreter. -- (in defword)
+ 0x00068 0x000006c4 line: 340 dw(INTERPRET)
+ 0x0006c 0x0000061c line: 341 dw(BRANCH)
+ 0x00070 0xfffffff8 line: 342 dw(s_to_u_32(-8)) # Loop back to INTERPRET.
+ DROP_dfa: 0x00074 0x0000005c line: 188 dw(LINK) -- (in def_)
+ 0x00078 0x4f524404 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ DROP: 0x0007c 0x00000080 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00080 Add_imm(10, 10, 0x4, u=False, v=False) line: 346 Add_imm(Dstack, Dstack, 4) # drop top of stack
0x00084 T_imm(0xffffe8) line: 137 T_imm(NEXT_) -- (in NEXT)
- EXIT_dfa: 0x00088 0x00000074 line: 181 dw(LINK) -- (in def_)
- 0x0008c 0x49584504 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- EXIT: 0x00090 0x00000094 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ EXIT_dfa: 0x00088 0x00000074 line: 188 dw(LINK) -- (in def_)
+ 0x0008c 0x49584504 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ EXIT: 0x00090 0x00000094 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
0x00094 Load_word(14, 12) line: 148 Load_word(reg, Rstack) # reg <- RAM[Rstack] -- (in POPRSP)
0x00098 Add_imm(12, 12, 0x4, u=False, v=False) line: 149 Add_imm(Rstack, Rstack, 4) # Rstack += 4 -- (in POPRSP)
0x0009c T_imm(0xffffe2) line: 137 T_imm(NEXT_) -- (in NEXT)
- LIT_dfa: 0x000a0 0x00000088 line: 181 dw(LINK) -- (in def_)
- 0x000a4 0x54494c03 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- LIT: 0x000a8 0x000000ac line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x000ac Load_word(0, 14) line: 349 Load_word(R0, IP) # Don't run the next cell, load it,
+ LIT_dfa: 0x000a0 0x00000088 line: 188 dw(LINK) -- (in def_)
+ 0x000a4 0x54494c03 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ LIT: 0x000a8 0x000000ac line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x000ac Load_word(0, 14) line: 356 Load_word(R0, IP) # Don't run the next cell, load it,
0x000b0 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
0x000b4 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x000b8 Add_imm(14, 14, 0x4, u=False, v=False) line: 351 Add_imm(IP, IP, 4) # then skip it.
+ 0x000b8 Add_imm(14, 14, 0x4, u=False, v=False) line: 358 Add_imm(IP, IP, 4) # then skip it.
0x000bc T_imm(0xffffda) line: 137 T_imm(NEXT_) -- (in NEXT)
- SWAP_dfa: 0x000c0 0x000000a0 line: 181 dw(LINK) -- (in def_)
- 0x000c4 0x41575304 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- SWAP: 0x000c8 0x000000cc line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ SWAP_dfa: 0x000c0 0x000000a0 line: 188 dw(LINK) -- (in def_)
+ 0x000c4 0x41575304 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ SWAP: 0x000c8 0x000000cc line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
0x000cc Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
0x000d0 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x000d4 Load_word(1, 10) line: 357 Load_word(R1, 10)
- 0x000d8 Store_word(0, 10) line: 358 Store_word(R0, 10)
+ 0x000d4 Load_word(1, 10) line: 364 Load_word(R1, 10)
+ 0x000d8 Store_word(0, 10) line: 365 Store_word(R0, 10)
0x000dc Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
0x000e0 Store_word(1, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
0x000e4 T_imm(0xffffd0) line: 137 T_imm(NEXT_) -- (in NEXT)
- SUB_dfa: 0x000e8 0x000000c0 line: 181 dw(LINK) -- (in def_)
- 0x000ec 0x00002d01 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- SUB: 0x000f0 0x000000f4 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ SUB_dfa: 0x000e8 0x000000c0 line: 188 dw(LINK) -- (in def_)
+ 0x000ec 0x00002d01 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ SUB: 0x000f0 0x000000f4 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
0x000f4 Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
0x000f8 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x000fc Load_word(1, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x00100 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x00104 Sub(1, 1, 0, u=False) line: 366 Sub(R1, R1, R0)
- 0x00108 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x0010c Store_word(1, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x00110 T_imm(0xffffc5) line: 137 T_imm(NEXT_) -- (in NEXT)
- MUL_dfa: 0x00114 0x000000e8 line: 181 dw(LINK) -- (in def_)
- 0x00118 0x00002a01 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- MUL: 0x0011c 0x00000120 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00120 Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x00124 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x00128 Load_word(1, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x0012c Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x00130 Mul(1, 1, 0, u=False) line: 374 Mul(R1, R1, R0)
- 0x00134 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x00138 Store_word(1, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x0013c T_imm(0xffffba) line: 137 T_imm(NEXT_) -- (in NEXT)
- EQU_dfa: 0x00140 0x00000114 line: 181 dw(LINK) -- (in def_)
- 0x00144 0x00003d01 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- EQU: 0x00148 0x0000014c line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x0014c Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x00150 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x00154 Load_word(1, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x00158 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x0015c Sub(1, 1, 0, u=False) line: 382 Sub(R1, R1, R0)
- 0x00160 Mov(0, 0, u=True, v=True) # R0 <- (N,Z,C,OV, 0..01010000) line: 383 Mov(R0, 0, u=True, v=True) # Get flags, c register is ignored.
- 0x00164 Asr_imm(0, 0, 0x1e, u=False, v=False) line: 384 Asr_imm(R0, R0, 30) # Z is the 31st bit, penultimate from the MSB.
- 0x00168 And_imm(0, 0, 0x1, u=False, v=False) line: 385 And_imm(R0, R0, 1) # Mask out N flag.
- 0x0016c Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x00170 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x00174 T_imm(0xffffac) line: 137 T_imm(NEXT_) -- (in NEXT)
- GTE_dfa: 0x00178 0x00000140 line: 181 dw(LINK) -- (in def_)
- 0x0017c 0x003d3e02 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- GTE: 0x00180 0x00000184 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00184 Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x00188 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x0018c Load_word(1, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x00190 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x00194 Sub(1, 1, 0, u=False) line: 393 Sub(R1, R1, R0)
- 0x00198 GE_imm(0x2) line: 394 GE_imm(_GTE_True)
- 0x0019c Mov_imm(0, 0x0, u=False, v=False) line: 395 Mov_imm(R0, 0)
- 0x001a0 T_imm(0x1) line: 396 T_imm(_GTE_fin)
- _GTE_True: 0x001a4 Mov_imm(0, 0x1, u=False, v=False) line: 398 Mov_imm(R0, 1)
- _GTE_fin: 0x001a8 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x001ac Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x001b0 T_imm(0xffff9d) line: 137 T_imm(NEXT_) -- (in NEXT)
- INCR_dfa: 0x001b4 0x00000178 line: 181 dw(LINK) -- (in def_)
- 0x001b8 0x002b3102 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- INCR: 0x001bc 0x000001c0 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x001c0 Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x001c4 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x001c8 Add_imm(0, 0, 0x1, u=False, v=False) line: 406 Add_imm(R0, R0, 1)
- 0x001cc Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x001d0 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x001d4 T_imm(0xffff94) line: 137 T_imm(NEXT_) -- (in NEXT)
- DECR_dfa: 0x001d8 0x000001b4 line: 181 dw(LINK) -- (in def_)
- 0x001dc 0x002d3102 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- DECR: 0x001e0 0x000001e4 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x001e4 Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x001e8 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x001ec Sub_imm(0, 0, 0x1, u=False, v=False) line: 413 Sub_imm(R0, R0, 1)
- 0x001f0 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x001f4 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x001f8 T_imm(0xffff8b) line: 137 T_imm(NEXT_) -- (in NEXT)
- ADDSTORE_dfa: 0x001fc 0x000001d8 line: 181 dw(LINK) -- (in def_)
- 0x00200 0x00212b02 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- ADDSTORE: 0x00204 0x00000208 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00208 Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x0020c Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x00210 Load_word(1, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x00214 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x00218 Load_word(2, 0) line: 421 Load_word(R2, R0)
- 0x0021c Add(2, 2, 1, u=False) line: 422 Add(R2, R2, R1)
- 0x00220 Store_word(2, 0) line: 423 Store_word(R2, R0)
- 0x00224 T_imm(0xffff80) line: 137 T_imm(NEXT_) -- (in NEXT)
- KEY_dfa: 0x00228 0x000001fc line: 181 dw(LINK) -- (in def_)
- 0x0022c 0x59454b03 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- KEY: 0x00230 0x00000234 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00234 Mov_imm(1, 0x270, u=False, v=False) line: 244 Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
- 0x00238 T_link(1) line: 245 T_link(R1) -- (in busywait_on_serial_ready)
- 0x0023c Load_word(0, 1, offset=0xffffc) line: 434 Load_word(R0, R1, negative_offset_20(-4)) # serial port is 4 bytes lower.
- 0x00240 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x00244 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x00248 T_imm(0xffff77) line: 137 T_imm(NEXT_) -- (in NEXT)
- EMIT_dfa: 0x0024c 0x00000228 line: 181 dw(LINK) -- (in def_)
- 0x00250 0x494d4504 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- EMIT: 0x00254 0x00000258 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00258 Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x0025c Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x00260 Mov_imm(1, 0x270, u=False, v=False) line: 244 Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
- 0x00264 T_link(1) line: 245 T_link(R1) -- (in busywait_on_serial_ready)
- 0x00268 Store_word(0, 1, offset=0xffffc) line: 441 Store_word(R0, R1, negative_offset_20(-4)) # serial port is 4 bytes lower.
- 0x0026c T_imm(0xffff6e) line: 137 T_imm(NEXT_) -- (in NEXT)
- _KEY: 0x00270 Mov_imm(1, 0xffff, u=True, v=False) line: 238 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
- 0x00274 Ior_imm(1, 1, 0xffcc, u=False, v=False) line: 239 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
- 0x00278 Load_word(2, 1) line: 457 Load_word(R2, R1)
- 0x0027c EQ_imm(0x3fff5e) line: 458 EQ_imm(negative_offset_24(-8)) # if R2==0 repeat
- 0x00280 T(15) line: 463 T(15) # return
- _blank: 0x00284 Sub_imm(2, 0, 0x20, u=False, v=False) line: 481 Sub_imm(R2, R0, 32) # Is it a space char?
- 0x00288 EQ(15) line: 482 EQ(15)
- 0x0028c Sub_imm(2, 0, 0xa, u=False, v=False) line: 483 Sub_imm(R2, R0, 10) # Is it a newline char?
- 0x00290 EQ(15) line: 484 EQ(15)
- 0x00294 Sub_imm(2, 0, 0x9, u=False, v=False) line: 485 Sub_imm(R2, R0, 9) # Is it a tab char?
- 0x00298 EQ(15) line: 486 EQ(15)
- 0x0029c Sub_imm(2, 0, 0xb, u=False, v=False) line: 487 Sub_imm(R2, R0, 11) # Is it a '\x0b' char?
- 0x002a0 EQ(15) line: 488 EQ(15)
- 0x002a4 Sub_imm(2, 0, 0xc, u=False, v=False) line: 489 Sub_imm(R2, R0, 12) # Is it a '\x0c' char?
- 0x002a8 EQ(15) line: 490 EQ(15)
- 0x002ac Sub_imm(2, 0, 0xd, u=False, v=False) line: 491 Sub_imm(R2, R0, 13) # Is it a carriage return char?
- 0x002b0 T(15) line: 492 T(15) # return
- _skip_comment: 0x002b4 Sub_imm(2, 0, 0x5c, u=False, v=False) line: 506 Sub_imm(R2, R0, ord('\\')) # Is it a '\' char?
- 0x002b8 NE(15) line: 507 NE(15) # It's not a '\' char, return.
-_skip_cmt_loop: 0x002bc Load_word(2, 1) line: 510 Load_word(R2, R1) # Get the serial port status.
- 0x002c0 EQ_imm(0xfffffe) line: 511 EQ_imm(_skip_cmt_loop) # until serial port status != 0
- 0x002c4 Load_word(0, 1, offset=0xffffc) line: 512 Load_word(R0, R1, negative_offset_20(-4)) # serial port is 4 bytes lower.
- 0x002c8 Sub_imm(2, 0, 0xa, u=False, v=False) line: 513 Sub_imm(R2, R0, ord('\n')) # Is it a newline char?
- 0x002cc EQ(15) line: 514 EQ(15) # We have reached the end of the line, return.
- 0x002d0 T_imm(0xfffffa) line: 515 T_imm(_skip_cmt_loop) # ...until newline.
- WORD_BUFFER: 0x002d4 0x00000000
- 0x002d8 0x00000000
- 0x002dc 0x00000000
- 0x002e0 0x00000000
- 0x002e4 0x00000000
- 0x002e8 0x00000000
- 0x002ec 0x00000000
- 0x002f0 0x00000000
- WORD_dfa: 0x002f4 0x0000024c line: 181 dw(LINK) -- (in def_)
- 0x002f8 0x524f5704 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- WORD: 0x002fc 0x00000300 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- _word_key: 0x00300 Mov_imm(1, 0x270, u=False, v=False) line: 244 Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
- 0x00304 T_link(1) line: 245 T_link(R1) -- (in busywait_on_serial_ready)
- 0x00308 Load_word(0, 1, offset=0xffffc) line: 535 Load_word(R0, R1, negative_offset_20(-4)) # serial port is 4 bytes lower.
- 0x0030c Mov_imm(2, 0x2b4, u=False, v=False) line: 537 Mov_imm(R2, _skip_comment) # Skip line comments.
- 0x00310 T_link(2) line: 538 T_link(R2)
- 0x00314 Mov_imm(1, 0x284, u=False, v=False) line: 540 Mov_imm(R1, _blank) # Is it a space char?
- 0x00318 T_link(1) line: 541 T_link(R1)
- 0x0031c EQ_imm(0xfffff8) line: 542 EQ_imm(_word_key) # then get another char
- 0x00320 Mov_imm(6, 0x2d4, u=False, v=False) line: 545 Mov_imm(word_pointer, WORD_BUFFER)
- 0x00324 Mov_imm(5, 0x0, u=False, v=False) line: 546 Mov_imm(word_counter, 0)
- 0x00328 Store_word(5, 6) line: 547 Store_word(word_counter, word_pointer) # Zero out the first word of WORD_BUFFER.
- 0x0032c Add_imm(6, 6, 0x1, u=False, v=False) line: 550 Add_imm(word_pointer, word_pointer, 1) # Leave a byte for the length.
- _find_length: 0x00330 Sub_imm(2, 5, 0x20, u=False, v=False) line: 554 Sub_imm(R2, word_counter, 32)
- 0x00334 EQ_imm(0xfffff2) line: 555 EQ_imm(_word_key) # try again.
- 0x00338 Store_byte(0, 6) line: 558 Store_byte(R0, word_pointer)
- 0x0033c Add_imm(6, 6, 0x1, u=False, v=False) line: 559 Add_imm(word_pointer, word_pointer, 1)
- 0x00340 Add_imm(5, 5, 0x1, u=False, v=False) line: 560 Add_imm(word_counter, word_counter, 1)
- 0x00344 Mov_imm(1, 0x270, u=False, v=False) line: 244 Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
- 0x00348 T_link(1) line: 245 T_link(R1) -- (in busywait_on_serial_ready)
- 0x0034c Load_word(0, 1, offset=0xffffc) line: 564 Load_word(R0, R1, negative_offset_20(-4)) # serial port is 4 bytes lower.
- 0x00350 Mov_imm(1, 0x284, u=False, v=False) line: 567 Mov_imm(R1, _blank)
- 0x00354 T_link(1) line: 568 T_link(R1)
- 0x00358 NE_imm(0xfffff5) line: 569 NE_imm(_find_length) # No, keep getting chars to the buffer
- 0x0035c Mov_imm(6, 0x2d4, u=False, v=False) line: 572 Mov_imm(word_pointer, WORD_BUFFER)
- 0x00360 Store_byte(5, 6) line: 573 Store_byte(word_counter, word_pointer)
- 0x00364 T_imm(0xffff30) line: 137 T_imm(NEXT_) -- (in NEXT)
- FIND_dfa: 0x00368 0x000002f4 line: 181 dw(LINK) -- (in def_)
- 0x0036c 0x4e494604 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- FIND: 0x00370 0x00000374 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00374 Mov_imm(6, 0x2d4, u=False, v=False) line: 586 Mov_imm(word_pointer, WORD_BUFFER)
- 0x00378 Load_word(5, 6) line: 588 Load_word(word_counter, word_pointer)
- 0x0037c Mov_imm(2, 0xffff, u=True, v=False) line: 238 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
- 0x00380 Ior_imm(2, 2, 0xff7f, u=False, v=False) line: 239 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
- 0x00384 Mov_imm(0, 0x4b0, u=False, v=False) line: 593 Mov_imm(R0, LATEST_var)
- 0x00388 Load_word(0, 0) line: 594 Load_word(R0, R0) # Point R0 to latest word's LFA.
- _FIND_1: 0x0038c Load_word(1, 0, offset=0x4) line: 596 Load_word(R1, R0, 4) # load a word of the name field.
- 0x00390 And(1, 1, 2, u=False) line: 597 And(R1, R1, R2) # Clear the IMMEDIATE flag, if any.
- 0x00394 Sub(1, 1, 5, u=False) line: 598 Sub(R1, R1, word_counter) # Compare.
- 0x00398 EQ_imm(0x2) line: 599 EQ_imm(_found) # If this is the word...
- 0x0039c Load_word(0, 0) line: 605 Load_word(R0, R0) # Load the address of the next link field into R0
- 0x003a0 NE_imm(0xfffffa) line: 606 NE_imm(_FIND_1) # Check the next word.
- _found: 0x003a4 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x003a8 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x003ac T_imm(0xffff1e) line: 137 T_imm(NEXT_) -- (in NEXT)
- NUMBER_dfa: 0x003b0 0x00000368 line: 181 dw(LINK) -- (in def_)
- 0x003b4 0x4d554e06 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- NUMBER: 0x003b8 0x000003bc line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x003bc Mov_imm(6, 0x2d4, u=False, v=False) line: 645 Mov_imm(word_pointer, WORD_BUFFER)
- 0x003c0 Load_byte(5, 6) line: 646 Load_byte(word_counter, word_pointer)
- 0x003c4 Mov_imm(2, 0x0, u=False, v=False) line: 647 Mov_imm(R2, 0) # use R2 as the accumulator for the number's value
- 0x003c8 Add_imm(6, 6, 0x1, u=False, v=False) line: 649 Add_imm(word_pointer, word_pointer, 1) # Point to first char.
- 0x003cc Load_byte(0, 6) line: 650 Load_byte(R0, word_pointer) # Load it.
- 0x003d0 Sub_imm(0, 0, 0x24, u=False, v=False) line: 651 Sub_imm(R0, R0, ord('$')) # Is it a '$'?
- 0x003d4 NE_imm(0xf) line: 652 NE_imm(_NUM_fin)
- 0x003d8 Sub_imm(5, 5, 0x1, u=False, v=False) line: 655 Sub_imm(word_counter, word_counter, 1) # we have parsed one '$' char.
- _NUM_hex: 0x003dc Add_imm(6, 6, 0x1, u=False, v=False) line: 658 Add_imm(word_pointer, word_pointer, 1) # Point to next char.
- 0x003e0 Load_byte(0, 6) line: 659 Load_byte(R0, word_pointer) # Load it.
- 0x003e4 Sub_imm(0, 0, 0x30, u=False, v=False) line: 661 Sub_imm(R0, R0, ord('0'))
- 0x003e8 LT_imm(0xa) line: 662 LT_imm(_NUM_fin) # Is its ASCII value lower than '0'?
- 0x003ec Sub_imm(1, 0, 0x9, u=False, v=False) line: 664 Sub_imm(R1, R0, 9) # Is it 0-9?
- 0x003f0 LE_imm(0x5) line: 665 LE_imm(_NUM_add) # It is!
- 0x003f4 Sub_imm(0, 0, 0x31, u=False, v=False) line: 671 Sub_imm(R0, R0, 49) # so now '1'..'6' -> 0..5
- 0x003f8 LT_imm(0x6) line: 672 LT_imm(_NUM_fin) # Its ASCII value is less than 'a', nope out.
- 0x003fc Sub_imm(1, 0, 0x5, u=False, v=False) line: 675 Sub_imm(R1, R0, 5) # Is it a-f?
- 0x00400 GT_imm(0x4) line: 676 GT_imm(_NUM_fin) # nope, nope out
- 0x00404 Add_imm(0, 0, 0xa, u=False, v=False) line: 678 Add_imm(R0, R0, 10) # 0..5 -> 10..15
- _NUM_add: 0x00408 Add(2, 2, 0, u=False) line: 681 Add( R2, R2, R0) # Add it to the accumulator.
- 0x0040c Sub_imm(5, 5, 0x1, u=False, v=False) line: 683 Sub_imm(word_counter, word_counter, 1) # we have parsed a digit char.
- 0x00410 NE_imm(0x5) line: 684 NE_imm(_NUM_foo) # More digits? Keep going.
- _NUM_fin: 0x00414 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x00418 Store_word(2, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x0041c Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x00420 Store_word(5, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x00424 T_imm(0xffff00) line: 137 T_imm(NEXT_) -- (in NEXT)
- _NUM_foo: 0x00428 Lsl_imm(2, 2, 0x4, u=False, v=False) line: 693 Lsl_imm(R2, R2, 4) # accumulator *= 16
- 0x0042c T_imm(0xffffeb) line: 694 T_imm(_NUM_hex) # Go get the next digit.
- CREATE_dfa: 0x00430 0x000003b0 line: 181 dw(LINK) -- (in def_)
- 0x00434 0x45524306 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- CREATE: 0x00438 0x0000043c line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x0043c Mov_imm(0, 0x490, u=False, v=False) line: 705 Mov_imm(R0, HERE__var) # R0 <- &HERE
- 0x00440 Load_word(0, 0) line: 706 Load_word(R0, R0) # R0 <- ram[HERE]
- 0x00444 Mov_imm(1, 0x4b0, u=False, v=False) line: 708 Mov_imm(R1, LATEST_var) # R1 <- &LATEST
- 0x00448 Load_word(2, 1) line: 709 Load_word(R2, R1) # R2 <- ram[LATEST]
- 0x0044c Store_word(2, 0) line: 711 Store_word(R2, R0) # value of LATEST -> ram[HERE]
- 0x00450 Store_word(0, 1) line: 712 Store_word(R0, R1) # value of HERE (now LFA for new word) -> ram[LATEST]
- 0x00454 Add_imm(0, 0, 0x4, u=False, v=False) line: 714 Add_imm(R0, R0, 4) # HERE += 4
- 0x00458 Mov_imm(6, 0x2d4, u=False, v=False) line: 717 Mov_imm(word_pointer, WORD_BUFFER)
- 0x0045c Load_word(1, 6) line: 727 Load_word(R1, word_pointer) # Get the word from WORD_BUFFER.
- 0x00460 Store_word(1, 0) line: 728 Store_word(R1, R0) # Store word to HERE.
- 0x00464 Add_imm(0, 0, 0x4, u=False, v=False) line: 729 Add_imm(R0, R0, 4) # HERE += 4
- 0x00468 Mov_imm(1, 0x490, u=False, v=False) line: 740 Mov_imm(R1, HERE__var) # R1 <- &HERE
- 0x0046c Store_word(0, 1) line: 741 Store_word(R0, R1) # value of HERE -> ram[HERE]
- 0x00470 T_imm(0xfffeed) line: 137 T_imm(NEXT_) -- (in NEXT)
- HERE__dfa: 0x00474 0x00000430 line: 181 dw(LINK) -- (in def_)
- 0x00478 0x52454804 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- HERE_: 0x0047c 0x00000480 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00480 Mov_imm(0, 0x490, u=False, v=False) line: 221 Mov_imm(R0, LABEL_var) -- (in defvar)
+ 0x000fc Load_word(1, 10) line: 175 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in PEEK)
+ 0x00100 Sub(1, 1, 0, u=False) line: 373 Sub(R1, R1, R0)
+ 0x00104 Store_word(1, 10) line: 168 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in POKE)
+ 0x00108 T_imm(0xffffc7) line: 137 T_imm(NEXT_) -- (in NEXT)
+ MUL_dfa: 0x0010c 0x000000e8 line: 188 dw(LINK) -- (in def_)
+ 0x00110 0x00002a01 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ MUL: 0x00114 0x00000118 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00118 Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x0011c Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x00120 Load_word(1, 10) line: 175 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in PEEK)
+ 0x00124 Mul(1, 1, 0, u=False) line: 381 Mul(R1, R1, R0)
+ 0x00128 Store_word(1, 10) line: 168 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in POKE)
+ 0x0012c T_imm(0xffffbe) line: 137 T_imm(NEXT_) -- (in NEXT)
+ EQU_dfa: 0x00130 0x0000010c line: 188 dw(LINK) -- (in def_)
+ 0x00134 0x00003d01 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ EQU: 0x00138 0x0000013c line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x0013c Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x00140 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x00144 Load_word(1, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x00148 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x0014c Sub(1, 1, 0, u=False) line: 389 Sub(R1, R1, R0)
+ 0x00150 Mov(0, 0, u=True, v=True) # R0 <- (N,Z,C,OV, 0..01010000) line: 390 Mov(R0, 0, u=True, v=True) # Get flags, c register is ignored.
+ 0x00154 Asr_imm(0, 0, 0x1e, u=False, v=False) line: 391 Asr_imm(R0, R0, 30) # Z is the 31st bit, penultimate from the MSB.
+ 0x00158 And_imm(0, 0, 0x1, u=False, v=False) line: 392 And_imm(R0, R0, 1) # Mask out N flag.
+ 0x0015c Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
+ 0x00160 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
+ 0x00164 T_imm(0xffffb0) line: 137 T_imm(NEXT_) -- (in NEXT)
+ GTE_dfa: 0x00168 0x00000130 line: 188 dw(LINK) -- (in def_)
+ 0x0016c 0x003d3e02 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ GTE: 0x00170 0x00000174 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00174 Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x00178 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x0017c Load_word(1, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x00180 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x00184 Sub(1, 1, 0, u=False) line: 400 Sub(R1, R1, R0)
+ 0x00188 GE_imm(0x2) line: 401 GE_imm(_GTE_True)
+ 0x0018c Mov_imm(0, 0x0, u=False, v=False) line: 402 Mov_imm(R0, 0)
+ 0x00190 T_imm(0x1) line: 403 T_imm(_GTE_fin)
+ _GTE_True: 0x00194 Mov_imm(0, 0x1, u=False, v=False) line: 405 Mov_imm(R0, 1)
+ _GTE_fin: 0x00198 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
+ 0x0019c Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
+ 0x001a0 T_imm(0xffffa1) line: 137 T_imm(NEXT_) -- (in NEXT)
+ INCR_dfa: 0x001a4 0x00000168 line: 188 dw(LINK) -- (in def_)
+ 0x001a8 0x002b3102 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ INCR: 0x001ac 0x000001b0 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x001b0 Load_word(0, 10) line: 175 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in PEEK)
+ 0x001b4 Add_imm(0, 0, 0x1, u=False, v=False) line: 413 Add_imm(R0, R0, 1)
+ 0x001b8 Store_word(0, 10) line: 168 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in POKE)
+ 0x001bc T_imm(0xffff9a) line: 137 T_imm(NEXT_) -- (in NEXT)
+ DECR_dfa: 0x001c0 0x000001a4 line: 188 dw(LINK) -- (in def_)
+ 0x001c4 0x002d3102 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ DECR: 0x001c8 0x000001cc line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x001cc Load_word(0, 10) line: 175 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in PEEK)
+ 0x001d0 Sub_imm(0, 0, 0x1, u=False, v=False) line: 420 Sub_imm(R0, R0, 1)
+ 0x001d4 Store_word(0, 10) line: 168 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in POKE)
+ 0x001d8 T_imm(0xffff93) line: 137 T_imm(NEXT_) -- (in NEXT)
+ ADDSTORE_dfa: 0x001dc 0x000001c0 line: 188 dw(LINK) -- (in def_)
+ 0x001e0 0x00212b02 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ ADDSTORE: 0x001e4 0x000001e8 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x001e8 Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x001ec Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x001f0 Load_word(1, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x001f4 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x001f8 Load_word(2, 0) line: 428 Load_word(R2, R0)
+ 0x001fc Add(2, 2, 1, u=False) line: 429 Add(R2, R2, R1)
+ 0x00200 Store_word(2, 0) line: 430 Store_word(R2, R0)
+ 0x00204 T_imm(0xffff88) line: 137 T_imm(NEXT_) -- (in NEXT)
+ KEY_dfa: 0x00208 0x000001dc line: 188 dw(LINK) -- (in def_)
+ 0x0020c 0x59454b03 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ KEY: 0x00210 0x00000214 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00214 Mov_imm(1, 0x250, u=False, v=False) line: 251 Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
+ 0x00218 T_link(1) line: 252 T_link(R1) -- (in busywait_on_serial_ready)
+ 0x0021c Load_word(0, 1, offset=0xffffc) line: 441 Load_word(R0, R1, negative_offset_20(-4)) # serial port is 4 bytes lower.
+ 0x00220 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
+ 0x00224 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
+ 0x00228 T_imm(0xffff7f) line: 137 T_imm(NEXT_) -- (in NEXT)
+ EMIT_dfa: 0x0022c 0x00000208 line: 188 dw(LINK) -- (in def_)
+ 0x00230 0x494d4504 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ EMIT: 0x00234 0x00000238 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00238 Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x0023c Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x00240 Mov_imm(1, 0x250, u=False, v=False) line: 251 Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
+ 0x00244 T_link(1) line: 252 T_link(R1) -- (in busywait_on_serial_ready)
+ 0x00248 Store_word(0, 1, offset=0xffffc) line: 448 Store_word(R0, R1, negative_offset_20(-4)) # serial port is 4 bytes lower.
+ 0x0024c T_imm(0xffff76) line: 137 T_imm(NEXT_) -- (in NEXT)
+ _KEY: 0x00250 Mov_imm(1, 0xffff, u=True, v=False) line: 245 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
+ 0x00254 Ior_imm(1, 1, 0xffcc, u=False, v=False) line: 246 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
+ 0x00258 Load_word(2, 1) line: 464 Load_word(R2, R1)
+ 0x0025c EQ_imm(0x3fff66) line: 465 EQ_imm(negative_offset_24(-8)) # if R2==0 repeat
+ 0x00260 T(15) line: 470 T(15) # return
+ _blank: 0x00264 Sub_imm(2, 0, 0x20, u=False, v=False) line: 488 Sub_imm(R2, R0, 32) # Is it a space char?
+ 0x00268 EQ(15) line: 489 EQ(15)
+ 0x0026c Sub_imm(2, 0, 0xa, u=False, v=False) line: 490 Sub_imm(R2, R0, 10) # Is it a newline char?
+ 0x00270 EQ(15) line: 491 EQ(15)
+ 0x00274 Sub_imm(2, 0, 0x9, u=False, v=False) line: 492 Sub_imm(R2, R0, 9) # Is it a tab char?
+ 0x00278 EQ(15) line: 493 EQ(15)
+ 0x0027c Sub_imm(2, 0, 0xb, u=False, v=False) line: 494 Sub_imm(R2, R0, 11) # Is it a '\x0b' char?
+ 0x00280 EQ(15) line: 495 EQ(15)
+ 0x00284 Sub_imm(2, 0, 0xc, u=False, v=False) line: 496 Sub_imm(R2, R0, 12) # Is it a '\x0c' char?
+ 0x00288 EQ(15) line: 497 EQ(15)
+ 0x0028c Sub_imm(2, 0, 0xd, u=False, v=False) line: 498 Sub_imm(R2, R0, 13) # Is it a carriage return char?
+ 0x00290 T(15) line: 499 T(15) # return
+ _skip_comment: 0x00294 Sub_imm(2, 0, 0x5c, u=False, v=False) line: 513 Sub_imm(R2, R0, ord('\\')) # Is it a '\' char?
+ 0x00298 NE(15) line: 514 NE(15) # It's not a '\' char, return.
+_skip_cmt_loop: 0x0029c Load_word(2, 1) line: 517 Load_word(R2, R1) # Get the serial port status.
+ 0x002a0 EQ_imm(0xfffffe) line: 518 EQ_imm(_skip_cmt_loop) # until serial port status != 0
+ 0x002a4 Load_word(0, 1, offset=0xffffc) line: 519 Load_word(R0, R1, negative_offset_20(-4)) # serial port is 4 bytes lower.
+ 0x002a8 Sub_imm(2, 0, 0xa, u=False, v=False) line: 520 Sub_imm(R2, R0, ord('\n')) # Is it a newline char?
+ 0x002ac EQ(15) line: 521 EQ(15) # We have reached the end of the line, return.
+ 0x002b0 T_imm(0xfffffa) line: 522 T_imm(_skip_cmt_loop) # ...until newline.
+ WORD_BUFFER: 0x002b4 0x00000000
+ 0x002b8 0x00000000
+ 0x002bc 0x00000000
+ 0x002c0 0x00000000
+ 0x002c4 0x00000000
+ 0x002c8 0x00000000
+ 0x002cc 0x00000000
+ 0x002d0 0x00000000
+ WORD_dfa: 0x002d4 0x0000022c line: 188 dw(LINK) -- (in def_)
+ 0x002d8 0x524f5704 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ WORD: 0x002dc 0x000002e0 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ _word_key: 0x002e0 Mov_imm(1, 0x250, u=False, v=False) line: 251 Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
+ 0x002e4 T_link(1) line: 252 T_link(R1) -- (in busywait_on_serial_ready)
+ 0x002e8 Load_word(0, 1, offset=0xffffc) line: 542 Load_word(R0, R1, negative_offset_20(-4)) # serial port is 4 bytes lower.
+ 0x002ec Mov_imm(2, 0x294, u=False, v=False) line: 544 Mov_imm(R2, _skip_comment) # Skip line comments.
+ 0x002f0 T_link(2) line: 545 T_link(R2)
+ 0x002f4 Mov_imm(1, 0x264, u=False, v=False) line: 547 Mov_imm(R1, _blank) # Is it a space char?
+ 0x002f8 T_link(1) line: 548 T_link(R1)
+ 0x002fc EQ_imm(0xfffff8) line: 549 EQ_imm(_word_key) # then get another char
+ 0x00300 Mov_imm(6, 0x2b4, u=False, v=False) line: 552 Mov_imm(word_pointer, WORD_BUFFER)
+ 0x00304 Mov_imm(5, 0x0, u=False, v=False) line: 553 Mov_imm(word_counter, 0)
+ 0x00308 Store_word(5, 6) line: 554 Store_word(word_counter, word_pointer) # Zero out the first word of WORD_BUFFER.
+ 0x0030c Add_imm(6, 6, 0x1, u=False, v=False) line: 557 Add_imm(word_pointer, word_pointer, 1) # Leave a byte for the length.
+ _find_length: 0x00310 Sub_imm(2, 5, 0x20, u=False, v=False) line: 561 Sub_imm(R2, word_counter, 32)
+ 0x00314 EQ_imm(0xfffff2) line: 562 EQ_imm(_word_key) # try again.
+ 0x00318 Store_byte(0, 6) line: 565 Store_byte(R0, word_pointer)
+ 0x0031c Add_imm(6, 6, 0x1, u=False, v=False) line: 566 Add_imm(word_pointer, word_pointer, 1)
+ 0x00320 Add_imm(5, 5, 0x1, u=False, v=False) line: 567 Add_imm(word_counter, word_counter, 1)
+ 0x00324 Mov_imm(1, 0x250, u=False, v=False) line: 251 Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
+ 0x00328 T_link(1) line: 252 T_link(R1) -- (in busywait_on_serial_ready)
+ 0x0032c Load_word(0, 1, offset=0xffffc) line: 571 Load_word(R0, R1, negative_offset_20(-4)) # serial port is 4 bytes lower.
+ 0x00330 Mov_imm(1, 0x264, u=False, v=False) line: 574 Mov_imm(R1, _blank)
+ 0x00334 T_link(1) line: 575 T_link(R1)
+ 0x00338 NE_imm(0xfffff5) line: 576 NE_imm(_find_length) # No, keep getting chars to the buffer
+ 0x0033c Mov_imm(6, 0x2b4, u=False, v=False) line: 579 Mov_imm(word_pointer, WORD_BUFFER)
+ 0x00340 Store_byte(5, 6) line: 580 Store_byte(word_counter, word_pointer)
+ 0x00344 T_imm(0xffff38) line: 137 T_imm(NEXT_) -- (in NEXT)
+ FIND_dfa: 0x00348 0x000002d4 line: 188 dw(LINK) -- (in def_)
+ 0x0034c 0x4e494604 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ FIND: 0x00350 0x00000354 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00354 Mov_imm(6, 0x2b4, u=False, v=False) line: 593 Mov_imm(word_pointer, WORD_BUFFER)
+ 0x00358 Load_word(5, 6) line: 595 Load_word(word_counter, word_pointer)
+ 0x0035c Mov_imm(2, 0xffff, u=True, v=False) line: 245 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
+ 0x00360 Ior_imm(2, 2, 0xff7f, u=False, v=False) line: 246 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
+ 0x00364 Mov_imm(0, 0x490, u=False, v=False) line: 600 Mov_imm(R0, LATEST_var)
+ 0x00368 Load_word(0, 0) line: 601 Load_word(R0, R0) # Point R0 to latest word's LFA.
+ _FIND_1: 0x0036c Load_word(1, 0, offset=0x4) line: 603 Load_word(R1, R0, 4) # load a word of the name field.
+ 0x00370 And(1, 1, 2, u=False) line: 604 And(R1, R1, R2) # Clear the IMMEDIATE flag, if any.
+ 0x00374 Sub(1, 1, 5, u=False) line: 605 Sub(R1, R1, word_counter) # Compare.
+ 0x00378 EQ_imm(0x2) line: 606 EQ_imm(_found) # If this is the word...
+ 0x0037c Load_word(0, 0) line: 612 Load_word(R0, R0) # Load the address of the next link field into R0
+ 0x00380 NE_imm(0xfffffa) line: 613 NE_imm(_FIND_1) # Check the next word.
+ _found: 0x00384 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
+ 0x00388 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
+ 0x0038c T_imm(0xffff26) line: 137 T_imm(NEXT_) -- (in NEXT)
+ NUMBER_dfa: 0x00390 0x00000348 line: 188 dw(LINK) -- (in def_)
+ 0x00394 0x4d554e06 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ NUMBER: 0x00398 0x0000039c line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x0039c Mov_imm(6, 0x2b4, u=False, v=False) line: 652 Mov_imm(word_pointer, WORD_BUFFER)
+ 0x003a0 Load_byte(5, 6) line: 653 Load_byte(word_counter, word_pointer)
+ 0x003a4 Mov_imm(2, 0x0, u=False, v=False) line: 654 Mov_imm(R2, 0) # use R2 as the accumulator for the number's value
+ 0x003a8 Add_imm(6, 6, 0x1, u=False, v=False) line: 656 Add_imm(word_pointer, word_pointer, 1) # Point to first char.
+ 0x003ac Load_byte(0, 6) line: 657 Load_byte(R0, word_pointer) # Load it.
+ 0x003b0 Sub_imm(0, 0, 0x24, u=False, v=False) line: 658 Sub_imm(R0, R0, ord('$')) # Is it a '$'?
+ 0x003b4 NE_imm(0xf) line: 659 NE_imm(_NUM_fin)
+ 0x003b8 Sub_imm(5, 5, 0x1, u=False, v=False) line: 662 Sub_imm(word_counter, word_counter, 1) # we have parsed one '$' char.
+ _NUM_hex: 0x003bc Add_imm(6, 6, 0x1, u=False, v=False) line: 665 Add_imm(word_pointer, word_pointer, 1) # Point to next char.
+ 0x003c0 Load_byte(0, 6) line: 666 Load_byte(R0, word_pointer) # Load it.
+ 0x003c4 Sub_imm(0, 0, 0x30, u=False, v=False) line: 668 Sub_imm(R0, R0, ord('0'))
+ 0x003c8 LT_imm(0xa) line: 669 LT_imm(_NUM_fin) # Is its ASCII value lower than '0'?
+ 0x003cc Sub_imm(1, 0, 0x9, u=False, v=False) line: 671 Sub_imm(R1, R0, 9) # Is it 0-9?
+ 0x003d0 LE_imm(0x5) line: 672 LE_imm(_NUM_add) # It is!
+ 0x003d4 Sub_imm(0, 0, 0x31, u=False, v=False) line: 678 Sub_imm(R0, R0, 49) # so now '1'..'6' -> 0..5
+ 0x003d8 LT_imm(0x6) line: 679 LT_imm(_NUM_fin) # Its ASCII value is less than 'a', nope out.
+ 0x003dc Sub_imm(1, 0, 0x5, u=False, v=False) line: 682 Sub_imm(R1, R0, 5) # Is it a-f?
+ 0x003e0 GT_imm(0x4) line: 683 GT_imm(_NUM_fin) # nope, nope out
+ 0x003e4 Add_imm(0, 0, 0xa, u=False, v=False) line: 685 Add_imm(R0, R0, 10) # 0..5 -> 10..15
+ _NUM_add: 0x003e8 Add(2, 2, 0, u=False) line: 688 Add( R2, R2, R0) # Add it to the accumulator.
+ 0x003ec Sub_imm(5, 5, 0x1, u=False, v=False) line: 690 Sub_imm(word_counter, word_counter, 1) # we have parsed a digit char.
+ 0x003f0 NE_imm(0x5) line: 691 NE_imm(_NUM_foo) # More digits? Keep going.
+ _NUM_fin: 0x003f4 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
+ 0x003f8 Store_word(2, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
+ 0x003fc Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
+ 0x00400 Store_word(5, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
+ 0x00404 T_imm(0xffff08) line: 137 T_imm(NEXT_) -- (in NEXT)
+ _NUM_foo: 0x00408 Lsl_imm(2, 2, 0x4, u=False, v=False) line: 700 Lsl_imm(R2, R2, 4) # accumulator *= 16
+ 0x0040c T_imm(0xffffeb) line: 701 T_imm(_NUM_hex) # Go get the next digit.
+ CREATE_dfa: 0x00410 0x00000390 line: 188 dw(LINK) -- (in def_)
+ 0x00414 0x45524306 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ CREATE: 0x00418 0x0000041c line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x0041c Mov_imm(0, 0x470, u=False, v=False) line: 712 Mov_imm(R0, HERE__var) # R0 <- &HERE
+ 0x00420 Load_word(0, 0) line: 713 Load_word(R0, R0) # R0 <- ram[HERE]
+ 0x00424 Mov_imm(1, 0x490, u=False, v=False) line: 715 Mov_imm(R1, LATEST_var) # R1 <- &LATEST
+ 0x00428 Load_word(2, 1) line: 716 Load_word(R2, R1) # R2 <- ram[LATEST]
+ 0x0042c Store_word(2, 0) line: 718 Store_word(R2, R0) # value of LATEST -> ram[HERE]
+ 0x00430 Store_word(0, 1) line: 719 Store_word(R0, R1) # value of HERE (now LFA for new word) -> ram[LATEST]
+ 0x00434 Add_imm(0, 0, 0x4, u=False, v=False) line: 721 Add_imm(R0, R0, 4) # HERE += 4
+ 0x00438 Mov_imm(6, 0x2b4, u=False, v=False) line: 724 Mov_imm(word_pointer, WORD_BUFFER)
+ 0x0043c Load_word(1, 6) line: 734 Load_word(R1, word_pointer) # Get the word from WORD_BUFFER.
+ 0x00440 Store_word(1, 0) line: 735 Store_word(R1, R0) # Store word to HERE.
+ 0x00444 Add_imm(0, 0, 0x4, u=False, v=False) line: 736 Add_imm(R0, R0, 4) # HERE += 4
+ 0x00448 Mov_imm(1, 0x470, u=False, v=False) line: 747 Mov_imm(R1, HERE__var) # R1 <- &HERE
+ 0x0044c Store_word(0, 1) line: 748 Store_word(R0, R1) # value of HERE -> ram[HERE]
+ 0x00450 T_imm(0xfffef5) line: 137 T_imm(NEXT_) -- (in NEXT)
+ HERE__dfa: 0x00454 0x00000410 line: 188 dw(LINK) -- (in def_)
+ 0x00458 0x52454804 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ HERE_: 0x0045c 0x00000460 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00460 Mov_imm(0, 0x470, u=False, v=False) line: 228 Mov_imm(R0, LABEL_var) -- (in defvar)
+ 0x00464 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
+ 0x00468 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
+ 0x0046c T_imm(0xfffeee) line: 137 T_imm(NEXT_) -- (in NEXT)
+ HERE__var: 0x00470 0x00000878 line: 235 dw(initial) -- (in defvar)
+ LATEST_dfa: 0x00474 0x00000454 line: 188 dw(LINK) -- (in def_)
+ 0x00478 0x54414c06 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ LATEST: 0x0047c 0x00000480 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00480 Mov_imm(0, 0x490, u=False, v=False) line: 228 Mov_imm(R0, LABEL_var) -- (in defvar)
0x00484 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
0x00488 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
0x0048c T_imm(0xfffee6) line: 137 T_imm(NEXT_) -- (in NEXT)
- HERE__var: 0x00490 0x00000898 line: 228 dw(initial) -- (in defvar)
- LATEST_dfa: 0x00494 0x00000474 line: 181 dw(LINK) -- (in def_)
- 0x00498 0x54414c06 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- LATEST: 0x0049c 0x000004a0 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x004a0 Mov_imm(0, 0x4b0, u=False, v=False) line: 221 Mov_imm(R0, LABEL_var) -- (in defvar)
+ LATEST_var: 0x00490 0x0000085c line: 235 dw(initial) -- (in defvar)
+ STATE_dfa: 0x00494 0x00000474 line: 188 dw(LINK) -- (in def_)
+ 0x00498 0x41545305 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ STATE: 0x0049c 0x000004a0 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x004a0 Mov_imm(0, 0x4b0, u=False, v=False) line: 228 Mov_imm(R0, LABEL_var) -- (in defvar)
0x004a4 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
0x004a8 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
0x004ac T_imm(0xfffede) line: 137 T_imm(NEXT_) -- (in NEXT)
- LATEST_var: 0x004b0 0x0000087c line: 228 dw(initial) -- (in defvar)
- STATE_dfa: 0x004b4 0x00000494 line: 181 dw(LINK) -- (in def_)
- 0x004b8 0x41545305 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- STATE: 0x004bc 0x000004c0 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x004c0 Mov_imm(0, 0x4d0, u=False, v=False) line: 221 Mov_imm(R0, LABEL_var) -- (in defvar)
- 0x004c4 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x004c8 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x004cc T_imm(0xfffed6) line: 137 T_imm(NEXT_) -- (in NEXT)
- STATE_var: 0x004d0 0x00000000 line: 228 dw(initial) -- (in defvar)
- __DOCOL_dfa: 0x004d4 0x000004b4 line: 181 dw(LINK) -- (in def_)
- 0x004d8 0x434f4405 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- __DOCOL: 0x004dc 0x000004e0 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x004e0 Mov_imm(0, 0x0, u=True, v=False) line: 238 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
- 0x004e4 Ior_imm(0, 0, 0x38, u=False, v=False) line: 239 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
- 0x004e8 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x004ec Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
+ STATE_var: 0x004b0 0x00000000 line: 235 dw(initial) -- (in defvar)
+ __DOCOL_dfa: 0x004b4 0x00000494 line: 188 dw(LINK) -- (in def_)
+ 0x004b8 0x434f4405 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ __DOCOL: 0x004bc 0x000004c0 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x004c0 Mov_imm(0, 0x0, u=True, v=False) line: 245 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
+ 0x004c4 Ior_imm(0, 0, 0x38, u=False, v=False) line: 246 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
+ 0x004c8 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
+ 0x004cc Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
+ 0x004d0 T_imm(0xfffed5) line: 137 T_imm(NEXT_) -- (in NEXT)
+ COMMA_dfa: 0x004d4 0x000004b4 line: 188 dw(LINK) -- (in def_)
+ 0x004d8 0x00002c01 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ COMMA: 0x004dc 0x000004e0 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x004e0 Load_word(2, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x004e4 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x004e8 Mov_imm(1, 0x4f4, u=False, v=False) line: 775 Mov_imm(R1, _COMMA)
+ 0x004ec T_link(1) line: 776 T_link(R1)
0x004f0 T_imm(0xfffecd) line: 137 T_imm(NEXT_) -- (in NEXT)
- COMMA_dfa: 0x004f4 0x000004d4 line: 181 dw(LINK) -- (in def_)
- 0x004f8 0x00002c01 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- COMMA: 0x004fc 0x00000500 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00500 Load_word(2, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x00504 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x00508 Mov_imm(1, 0x514, u=False, v=False) line: 768 Mov_imm(R1, _COMMA)
- 0x0050c T_link(1) line: 769 T_link(R1)
- 0x00510 T_imm(0xfffec5) line: 137 T_imm(NEXT_) -- (in NEXT)
- _COMMA: 0x00514 Mov_imm(0, 0x490, u=False, v=False) line: 778 Mov_imm(R0, HERE__var) # R0 <- HERE__var
- 0x00518 Load_word(1, 0) line: 779 Load_word(R1, R0) # HERE <- ram[HERE__var]
- 0x0051c Store_word(2, 1) line: 780 Store_word(R2, R1) # R2 -> ram[HERE]
- 0x00520 Add_imm(1, 1, 0x4, u=False, v=False) line: 781 Add_imm(R1, R1, 4) # HERE += 4
- 0x00524 Store_word(1, 0) line: 782 Store_word(R1, R0) # HERE -> ram[HERE__var]
- 0x00528 T(15) line: 783 T(15) # return
- LBRAC_dfa: 0x0052c 0x000004f4 line: 181 dw(LINK) -- (in def_)
- 0x00530 0x00005b81 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- LBRAC: 0x00534 0x00000538 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00538 Mov_imm(0, 0x4d0, u=False, v=False) line: 797 Mov_imm(R0, STATE_var)
- 0x0053c Mov_imm(1, 0x0, u=False, v=False) line: 798 Mov_imm(R1, 0)
- 0x00540 Store_word(1, 0) line: 799 Store_word(R1, R0)
- 0x00544 T_imm(0xfffeb8) line: 137 T_imm(NEXT_) -- (in NEXT)
- RBRAC_dfa: 0x00548 0x0000052c line: 181 dw(LINK) -- (in def_)
- 0x0054c 0x00005d01 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- RBRAC: 0x00550 0x00000554 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00554 Mov_imm(0, 0x4d0, u=False, v=False) line: 803 Mov_imm(R0, STATE_var)
- 0x00558 Mov_imm(1, 0x1, u=False, v=False) line: 804 Mov_imm(R1, 1)
- 0x0055c Store_word(1, 0) line: 805 Store_word(R1, R0)
- 0x00560 T_imm(0xfffeb1) line: 137 T_imm(NEXT_) -- (in NEXT)
- COLON_dfa: 0x00564 0x00000548 line: 181 dw(LINK) -- (in def_)
- 0x00568 0x00003a01 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- COLON: 0x0056c 0x00000038 line: 203 dw(DOCOL) # codeword points to DOCOL colon word mini-interpreter. -- (in defword)
- 0x00570 0x000002fc line: 828 dw(WORD) # "Get the name of the new word"
- 0x00574 0x00000438 line: 829 dw(CREATE) # "CREATE the dictionary entry / header"
- 0x00578 0x000000a8 line: 830 dw(LIT) # "Append DOCOL (the codeword)."
- 0x0057c 0x00000038 line: 831 dw(DOCOL)
- 0x00580 0x000004fc line: 832 dw(COMMA)
- 0x00584 0x0000049c line: 833 dw(LATEST) # "Make the word hidden (see below for definition)."
- 0x00588 0x00000678 line: 834 dw(FETCH)
- 0x0058c 0x000005f4 line: 835 dw(HIDDEN)
- 0x00590 0x00000550 line: 836 dw(RBRAC) # "Go into compile mode."
- 0x00594 0x00000090 line: 837 dw(EXIT) # "Return from the function."
- SEMICOLON_dfa: 0x00598 0x00000564 line: 181 dw(LINK) -- (in def_)
- 0x0059c 0x00003b81 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- SEMICOLON: 0x005a0 0x00000038 line: 203 dw(DOCOL) # codeword points to DOCOL colon word mini-interpreter. -- (in defword)
- 0x005a4 0x000000a8 line: 846 dw(LIT) # "Append EXIT (so the word will return)."
- 0x005a8 0x00000090 line: 847 dw(EXIT)
- 0x005ac 0x000004fc line: 848 dw(COMMA)
- 0x005b0 0x0000049c line: 849 dw(LATEST) # "Toggle hidden flag -- unhide the word (see below for definition)."
- 0x005b4 0x00000678 line: 850 dw(FETCH)
- 0x005b8 0x000005f4 line: 851 dw(HIDDEN)
- 0x005bc 0x00000534 line: 852 dw(LBRAC) # "Go back to IMMEDIATE mode."
- 0x005c0 0x00000090 line: 853 dw(EXIT) # "Return from the function."
- IMMEDIATE_dfa: 0x005c4 0x00000598 line: 181 dw(LINK) -- (in def_)
- 0x005c8 0x4d4d4989 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- IMMEDIATE: 0x005cc 0x000005d0 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x005d0 Mov_imm(0, 0x4b0, u=False, v=False) line: 862 Mov_imm(R0, LATEST_var) # R0 <- &LATEST
- 0x005d4 Load_word(1, 0) line: 863 Load_word(R1, R0) # R1 <- ram[LATEST]
- 0x005d8 Add_imm(1, 1, 0x4, u=False, v=False) line: 864 Add_imm(R1, R1, 4) # "Point to name/flags byte."
- 0x005dc Load_word(0, 1) line: 865 Load_word(R0, R1)
- 0x005e0 Xor_imm(0, 0, 0x80, u=False, v=False) line: 866 Xor_imm(R0, R0, F_IMMED) # Toggle IMMEDIATE bit.
- 0x005e4 Store_word(0, 1) line: 867 Store_word(R0, R1)
- 0x005e8 T_imm(0xfffe8f) line: 137 T_imm(NEXT_) -- (in NEXT)
- HIDDEN_dfa: 0x005ec 0x000005c4 line: 181 dw(LINK) -- (in def_)
- 0x005f0 0x44494806 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- HIDDEN: 0x005f4 0x000005f8 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x005f8 Load_word(1, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x005fc Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x00600 Add_imm(1, 1, 0x4, u=False, v=False) line: 878 Add_imm(R1, R1, 4) # "Point to name/flags byte."
- 0x00604 Load_word(0, 1) line: 879 Load_word(R0, R1)
- 0x00608 Xor_imm(0, 0, 0x20, u=False, v=False) line: 880 Xor_imm(R0, R0, F_HIDDEN) # "Toggle the HIDDEN bit."
- 0x0060c Store_word(0, 1) line: 881 Store_word(R0, R1)
+ _COMMA: 0x004f4 Mov_imm(0, 0x470, u=False, v=False) line: 785 Mov_imm(R0, HERE__var) # R0 <- HERE__var
+ 0x004f8 Load_word(1, 0) line: 786 Load_word(R1, R0) # HERE <- ram[HERE__var]
+ 0x004fc Store_word(2, 1) line: 787 Store_word(R2, R1) # R2 -> ram[HERE]
+ 0x00500 Add_imm(1, 1, 0x4, u=False, v=False) line: 788 Add_imm(R1, R1, 4) # HERE += 4
+ 0x00504 Store_word(1, 0) line: 789 Store_word(R1, R0) # HERE -> ram[HERE__var]
+ 0x00508 T(15) line: 790 T(15) # return
+ LBRAC_dfa: 0x0050c 0x000004d4 line: 188 dw(LINK) -- (in def_)
+ 0x00510 0x00005b81 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ LBRAC: 0x00514 0x00000518 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00518 Mov_imm(0, 0x4b0, u=False, v=False) line: 804 Mov_imm(R0, STATE_var)
+ 0x0051c Mov_imm(1, 0x0, u=False, v=False) line: 805 Mov_imm(R1, 0)
+ 0x00520 Store_word(1, 0) line: 806 Store_word(R1, R0)
+ 0x00524 T_imm(0xfffec0) line: 137 T_imm(NEXT_) -- (in NEXT)
+ RBRAC_dfa: 0x00528 0x0000050c line: 188 dw(LINK) -- (in def_)
+ 0x0052c 0x00005d01 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ RBRAC: 0x00530 0x00000534 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00534 Mov_imm(0, 0x4b0, u=False, v=False) line: 810 Mov_imm(R0, STATE_var)
+ 0x00538 Mov_imm(1, 0x1, u=False, v=False) line: 811 Mov_imm(R1, 1)
+ 0x0053c Store_word(1, 0) line: 812 Store_word(R1, R0)
+ 0x00540 T_imm(0xfffeb9) line: 137 T_imm(NEXT_) -- (in NEXT)
+ COLON_dfa: 0x00544 0x00000528 line: 188 dw(LINK) -- (in def_)
+ 0x00548 0x00003a01 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ COLON: 0x0054c 0x00000038 line: 210 dw(DOCOL) # codeword points to DOCOL colon word mini-interpreter. -- (in defword)
+ 0x00550 0x000002dc line: 835 dw(WORD) # "Get the name of the new word"
+ 0x00554 0x00000418 line: 836 dw(CREATE) # "CREATE the dictionary entry / header"
+ 0x00558 0x000000a8 line: 837 dw(LIT) # "Append DOCOL (the codeword)."
+ 0x0055c 0x00000038 line: 838 dw(DOCOL)
+ 0x00560 0x000004dc line: 839 dw(COMMA)
+ 0x00564 0x0000047c line: 840 dw(LATEST) # "Make the word hidden (see below for definition)."
+ 0x00568 0x00000658 line: 841 dw(FETCH)
+ 0x0056c 0x000005d4 line: 842 dw(HIDDEN)
+ 0x00570 0x00000530 line: 843 dw(RBRAC) # "Go into compile mode."
+ 0x00574 0x00000090 line: 844 dw(EXIT) # "Return from the function."
+ SEMICOLON_dfa: 0x00578 0x00000544 line: 188 dw(LINK) -- (in def_)
+ 0x0057c 0x00003b81 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ SEMICOLON: 0x00580 0x00000038 line: 210 dw(DOCOL) # codeword points to DOCOL colon word mini-interpreter. -- (in defword)
+ 0x00584 0x000000a8 line: 853 dw(LIT) # "Append EXIT (so the word will return)."
+ 0x00588 0x00000090 line: 854 dw(EXIT)
+ 0x0058c 0x000004dc line: 855 dw(COMMA)
+ 0x00590 0x0000047c line: 856 dw(LATEST) # "Toggle hidden flag -- unhide the word (see below for definition)."
+ 0x00594 0x00000658 line: 857 dw(FETCH)
+ 0x00598 0x000005d4 line: 858 dw(HIDDEN)
+ 0x0059c 0x00000514 line: 859 dw(LBRAC) # "Go back to IMMEDIATE mode."
+ 0x005a0 0x00000090 line: 860 dw(EXIT) # "Return from the function."
+ IMMEDIATE_dfa: 0x005a4 0x00000578 line: 188 dw(LINK) -- (in def_)
+ 0x005a8 0x4d4d4989 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ IMMEDIATE: 0x005ac 0x000005b0 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x005b0 Mov_imm(0, 0x490, u=False, v=False) line: 869 Mov_imm(R0, LATEST_var) # R0 <- &LATEST
+ 0x005b4 Load_word(1, 0) line: 870 Load_word(R1, R0) # R1 <- ram[LATEST]
+ 0x005b8 Add_imm(1, 1, 0x4, u=False, v=False) line: 871 Add_imm(R1, R1, 4) # "Point to name/flags byte."
+ 0x005bc Load_word(0, 1) line: 872 Load_word(R0, R1)
+ 0x005c0 Xor_imm(0, 0, 0x80, u=False, v=False) line: 873 Xor_imm(R0, R0, F_IMMED) # Toggle IMMEDIATE bit.
+ 0x005c4 Store_word(0, 1) line: 874 Store_word(R0, R1)
+ 0x005c8 T_imm(0xfffe97) line: 137 T_imm(NEXT_) -- (in NEXT)
+ HIDDEN_dfa: 0x005cc 0x000005a4 line: 188 dw(LINK) -- (in def_)
+ 0x005d0 0x44494806 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ HIDDEN: 0x005d4 0x000005d8 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x005d8 Load_word(1, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x005dc Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x005e0 Add_imm(1, 1, 0x4, u=False, v=False) line: 885 Add_imm(R1, R1, 4) # "Point to name/flags byte."
+ 0x005e4 Load_word(0, 1) line: 886 Load_word(R0, R1)
+ 0x005e8 Xor_imm(0, 0, 0x20, u=False, v=False) line: 887 Xor_imm(R0, R0, F_HIDDEN) # "Toggle the HIDDEN bit."
+ 0x005ec Store_word(0, 1) line: 888 Store_word(R0, R1)
+ 0x005f0 T_imm(0xfffe8d) line: 137 T_imm(NEXT_) -- (in NEXT)
+ TICK_dfa: 0x005f4 0x000005cc line: 188 dw(LINK) -- (in def_)
+ 0x005f8 0x00002701 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ TICK: 0x005fc 0x00000600 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00600 Load_word(0, 14) line: 907 Load_word(R0, IP) # Get the address of the next codeword.
+ 0x00604 Add_imm(14, 14, 0x4, u=False, v=False) line: 908 Add_imm(IP, IP, 4) # Skip it.
+ 0x00608 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
+ 0x0060c Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
0x00610 T_imm(0xfffe85) line: 137 T_imm(NEXT_) -- (in NEXT)
- TICK_dfa: 0x00614 0x000005ec line: 181 dw(LINK) -- (in def_)
- 0x00618 0x00002701 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- TICK: 0x0061c 0x00000620 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00620 Load_word(0, 14) line: 900 Load_word(R0, IP) # Get the address of the next codeword.
- 0x00624 Add_imm(14, 14, 0x4, u=False, v=False) line: 901 Add_imm(IP, IP, 4) # Skip it.
- 0x00628 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x0062c Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x00630 T_imm(0xfffe7d) line: 137 T_imm(NEXT_) -- (in NEXT)
- BRANCH_dfa: 0x00634 0x00000614 line: 181 dw(LINK) -- (in def_)
- 0x00638 0x41524206 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- BRANCH: 0x0063c 0x00000640 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00640 Load_word(0, 14) line: 912 Load_word(R0, IP) # Get the offset.
- 0x00644 Add(14, 14, 0, u=False) line: 914 Add(IP, IP, R0) # IP += offset
- 0x00648 T_imm(0xfffe77) line: 137 T_imm(NEXT_) -- (in NEXT)
- ZBRANCH_dfa: 0x0064c 0x00000634 line: 181 dw(LINK) -- (in def_)
- 0x00650 0x52423007 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- ZBRANCH: 0x00654 0x00000658 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00658 Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x0065c Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x00660 Add_imm(0, 0, 0x0, u=False, v=False) line: 925 Add_imm(R0, R0, 0) # Set condition flags.
- 0x00664 EQ_imm(0xfffff6) line: 926 EQ_imm(BRANCH + 4) # Zero? Delegate to BRANCH.
- 0x00668 Add_imm(14, 14, 0x4, u=False, v=False) line: 927 Add_imm(IP, IP, 4) # Non-zero? Skip offset.
- 0x0066c T_imm(0xfffe6e) line: 137 T_imm(NEXT_) -- (in NEXT)
- FETCH_dfa: 0x00670 0x0000064c line: 181 dw(LINK) -- (in def_)
- 0x00674 0x00004001 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- FETCH: 0x00678 0x0000067c line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x0067c Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x00680 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x00684 Load_word(0, 0) line: 938 Load_word(R0, R0)
- 0x00688 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x0068c Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x00690 T_imm(0xfffe65) line: 137 T_imm(NEXT_) -- (in NEXT)
- STORE_dfa: 0x00694 0x00000670 line: 181 dw(LINK) -- (in def_)
- 0x00698 0x00002101 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- STORE: 0x0069c 0x000006a0 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x006a0 Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x006a4 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x006a8 Load_word(1, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x006ac Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x006b0 Store_word(1, 0) line: 951 Store_word(R1, R0)
- 0x006b4 T_imm(0xfffe5c) line: 137 T_imm(NEXT_) -- (in NEXT)
- IS_NUMBER_dfa: 0x006b8 0x00000694 line: 181 dw(LINK) -- (in def_)
- 0x006bc 0x003f2302 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- IS_NUMBER: 0x006c0 0x000006c4 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x006c4 Mov_imm(6, 0x2d4, u=False, v=False) line: 967 Mov_imm(word_pointer, WORD_BUFFER)
- 0x006c8 Load_byte(0, 6, offset=0x1) line: 968 Load_byte(R0, word_pointer, 1) # Load first char of word.
- 0x006cc Sub_imm(0, 0, 0x24, u=False, v=False) line: 969 Sub_imm(R0, R0, ord('$')) # Is it a '$'?
- 0x006d0 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x006d4 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x006d8 T_imm(0xfffe53) line: 137 T_imm(NEXT_) -- (in NEXT)
- INTERPRET_dfa: 0x006dc 0x000006b8 line: 181 dw(LINK) -- (in def_)
- 0x006e0 0x544e4909 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- INTERPRET: 0x006e4 0x00000038 line: 203 dw(DOCOL) # codeword points to DOCOL colon word mini-interpreter. -- (in defword)
- 0x006e8 0x000002fc line: 980 dw(WORD)
- 0x006ec 0x000006c0 line: 981 dw(IS_NUMBER)
- 0x006f0 0x00000654 line: 982 dw(ZBRANCH)
- 0x006f4 0x0000001c line: 983 dw(s_to_u_32(4 * 7)) # It could be a number...
- 0x006f8 0x00000370 line: 986 dw(FIND)
- 0x006fc 0x00000884 line: 987 dw(DUP)
- 0x00700 0x00000654 line: 988 dw(ZBRANCH) # Zero means it wasn't in the dictionary,
- 0x00704 0x0000001c line: 989 dw(s_to_u_32(4 * 7))
- 0x00708 0x00000754 line: 992 dw(_INTERP)
- 0x0070c 0x00000090 line: 993 dw(EXIT)
- 0x00710 0x000003b8 line: 996 dw(NUMBER)
- 0x00714 0x00000884 line: 997 dw(DUP)
- 0x00718 0x00000654 line: 998 dw(ZBRANCH) # No chars left? It is a number!
- 0x0071c 0x00000008 line: 999 dw(s_to_u_32(4 * 2))
- 0x00720 0x00000090 line: 1003 dw(EXIT)
- 0x00724 0x0000007c line: 1006 dw(DROP)
- 0x00728 0x000004bc line: 1010 dw(STATE)
- 0x0072c 0x00000678 line: 1011 dw(FETCH)
- 0x00730 0x00000654 line: 1012 dw(ZBRANCH) # STATE = 0 -> interpreting.
- 0x00734 0x00000014 line: 1014 dw(s_to_u_32(4 * 5)) # to EXIT
- 0x00738 0x000000a8 line: 1017 dw(LIT)
- 0x0073c 0x000000a8 line: 1018 dw(LIT)
- 0x00740 0x000004fc line: 1019 dw(COMMA) # write the address of the codeword of LIT
- 0x00744 0x000004fc line: 1020 dw(COMMA) # then the value itself.
- 0x00748 0x00000090 line: 1022 dw(EXIT)
- _INTERP_dfa: 0x0074c 0x000006dc line: 181 dw(LINK) -- (in def_)
- 0x00750 0x4e495f27 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- _INTERP: 0x00754 0x00000758 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00758 Load_word(2, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x0075c Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x00760 Mov_imm(0, 0x4d0, u=False, v=False) line: 1035 Mov_imm(R0, STATE_var) # R0 <- &STATE
- 0x00764 Load_word(0, 0) line: 1036 Load_word(R0, R0) # R0 <- ram[STATE]
- 0x00768 EQ_imm(0x7) line: 1037 EQ_imm(_intrp_exe) # STATE = 0 -> interpreting.
- 0x0076c Load_word(0, 2, offset=0x4) line: 1038 Load_word(R0, R2, 4) # R0 <- Name field
- 0x00770 And_imm(0, 0, 0x80, u=False, v=False) line: 1039 And_imm(R0, R0, F_IMMED)
- 0x00774 NE_imm(0x4) line: 1040 NE_imm(_intrp_exe) # word is IMMEDIATE.
- 0x00778 Add_imm(2, 2, 0x8, u=False, v=False) line: 1043 Add_imm(R2, R2, 8) # Point from LFA to codeword.
- 0x0077c Mov_imm(1, 0x514, u=False, v=False) line: 1044 Mov_imm(R1, _COMMA) # Call comma to store it and increment HERE.
- 0x00780 T_link(1) line: 1045 T_link(R1)
- 0x00784 T_imm(0xfffe28) line: 137 T_imm(NEXT_) -- (in NEXT)
- _intrp_exe: 0x00788 Add_imm(2, 2, 0x8, u=False, v=False) line: 1049 Add_imm(R2, R2, 8) # Point to the codeword
- 0x0078c Load_word(0, 2) line: 1050 Load_word(R0, R2) # Get the address to which its codeword points...
- 0x00790 Mov(3, 2, u=False) line: 1051 Mov(next_function, R2) # DOCOL depends on this.
- 0x00794 T(0) line: 1052 T(R0) # and jump to it.
- PAI_dfa: 0x00798 0x0000074c line: 181 dw(LINK) -- (in def_)
- 0x0079c 0x69617003 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- PAI: 0x007a0 0x000007a4 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x007a4 Mov_imm(0, 0xe, u=True, v=False) line: 238 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
- 0x007a8 Ior_imm(0, 0, 0x7f00, u=False, v=False) line: 239 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
- 0x007ac Mov_imm(1, 0x1, u=True, v=False) line: 238 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
- 0x007b0 Ior_imm(1, 1, 0x8000, u=False, v=False) line: 239 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
- 0x007b4 Mov_imm(8, 0xffff, u=True, v=False) line: 238 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
- 0x007b8 Ior_imm(8, 8, 0xffff, u=False, v=False) line: 239 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
- 0x007bc Add(1, 1, 0, u=False) line: 1078 Add(R1, R1, R0)
- 0x007c0 Sub_imm(0, 0, 0x4e0, u=False, v=False) line: 1079 Sub_imm(R0, R0, 312 * 4) # 312 words in font data.
- 0x007c4 Mov_imm(2, 0x138, u=False, v=False) line: 1080 Mov_imm(R2, 13 * 24)
- _pai_loop: 0x007c8 Load_word(7, 0) line: 1083 Load_word(R7, R0)
- 0x007cc Xor(7, 7, 8, u=False) line: 1084 Xor(R7, R7, R8) # Reverse video.
- 0x007d0 Store_word(7, 1) line: 1085 Store_word(R7, R1)
- 0x007d4 Add_imm(0, 0, 0x4, u=False, v=False) line: 1086 Add_imm(R0, R0, 4)
- 0x007d8 Sub_imm(1, 1, 0x80, u=False, v=False) line: 1087 Sub_imm(R1, R1, 128)
- 0x007dc Sub_imm(2, 2, 0x1, u=False, v=False) line: 1088 Sub_imm(R2, R2, 1)
- 0x007e0 NE_imm(0xfffff9) line: 1089 NE_imm(_pai_loop)
- 0x007e4 T_imm(0xfffe10) line: 137 T_imm(NEXT_) -- (in NEXT)
-PAINT_CHAR_dfa: 0x007e8 0x00000798 line: 181 dw(LINK) -- (in def_)
- 0x007ec 0x6961700a line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- PAINT_CHAR: 0x007f0 0x000007f4 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x007f4 Mov_imm(0, 0xe, u=True, v=False) line: 238 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
- 0x007f8 Ior_imm(0, 0, 0x7a20, u=False, v=False) line: 239 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
+ BRANCH_dfa: 0x00614 0x000005f4 line: 188 dw(LINK) -- (in def_)
+ 0x00618 0x41524206 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ BRANCH: 0x0061c 0x00000620 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00620 Load_word(0, 14) line: 919 Load_word(R0, IP) # Get the offset.
+ 0x00624 Add(14, 14, 0, u=False) line: 921 Add(IP, IP, R0) # IP += offset
+ 0x00628 T_imm(0xfffe7f) line: 137 T_imm(NEXT_) -- (in NEXT)
+ ZBRANCH_dfa: 0x0062c 0x00000614 line: 188 dw(LINK) -- (in def_)
+ 0x00630 0x52423007 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ ZBRANCH: 0x00634 0x00000638 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00638 Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x0063c Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x00640 Add_imm(0, 0, 0x0, u=False, v=False) line: 932 Add_imm(R0, R0, 0) # Set condition flags.
+ 0x00644 EQ_imm(0xfffff6) line: 933 EQ_imm(BRANCH + 4) # Zero? Delegate to BRANCH.
+ 0x00648 Add_imm(14, 14, 0x4, u=False, v=False) line: 934 Add_imm(IP, IP, 4) # Non-zero? Skip offset.
+ 0x0064c T_imm(0xfffe76) line: 137 T_imm(NEXT_) -- (in NEXT)
+ FETCH_dfa: 0x00650 0x0000062c line: 188 dw(LINK) -- (in def_)
+ 0x00654 0x00004001 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ FETCH: 0x00658 0x0000065c line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x0065c Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x00660 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x00664 Load_word(0, 0) line: 945 Load_word(R0, R0)
+ 0x00668 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
+ 0x0066c Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
+ 0x00670 T_imm(0xfffe6d) line: 137 T_imm(NEXT_) -- (in NEXT)
+ STORE_dfa: 0x00674 0x00000650 line: 188 dw(LINK) -- (in def_)
+ 0x00678 0x00002101 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ STORE: 0x0067c 0x00000680 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00680 Load_word(0, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x00684 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x00688 Load_word(1, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x0068c Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x00690 Store_word(1, 0) line: 958 Store_word(R1, R0)
+ 0x00694 T_imm(0xfffe64) line: 137 T_imm(NEXT_) -- (in NEXT)
+ IS_NUMBER_dfa: 0x00698 0x00000674 line: 188 dw(LINK) -- (in def_)
+ 0x0069c 0x003f2302 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ IS_NUMBER: 0x006a0 0x000006a4 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x006a4 Mov_imm(6, 0x2b4, u=False, v=False) line: 974 Mov_imm(word_pointer, WORD_BUFFER)
+ 0x006a8 Load_byte(0, 6, offset=0x1) line: 975 Load_byte(R0, word_pointer, 1) # Load first char of word.
+ 0x006ac Sub_imm(0, 0, 0x24, u=False, v=False) line: 976 Sub_imm(R0, R0, ord('$')) # Is it a '$'?
+ 0x006b0 Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
+ 0x006b4 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
+ 0x006b8 T_imm(0xfffe5b) line: 137 T_imm(NEXT_) -- (in NEXT)
+ INTERPRET_dfa: 0x006bc 0x00000698 line: 188 dw(LINK) -- (in def_)
+ 0x006c0 0x544e4909 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ INTERPRET: 0x006c4 0x00000038 line: 210 dw(DOCOL) # codeword points to DOCOL colon word mini-interpreter. -- (in defword)
+ 0x006c8 0x000002dc line: 987 dw(WORD)
+ 0x006cc 0x000006a0 line: 988 dw(IS_NUMBER)
+ 0x006d0 0x00000634 line: 989 dw(ZBRANCH)
+ 0x006d4 0x0000001c line: 990 dw(s_to_u_32(4 * 7)) # It could be a number...
+ 0x006d8 0x00000350 line: 993 dw(FIND)
+ 0x006dc 0x00000864 line: 994 dw(DUP)
+ 0x006e0 0x00000634 line: 995 dw(ZBRANCH) # Zero means it wasn't in the dictionary,
+ 0x006e4 0x0000001c line: 996 dw(s_to_u_32(4 * 7))
+ 0x006e8 0x00000734 line: 999 dw(_INTERP)
+ 0x006ec 0x00000090 line: 1000 dw(EXIT)
+ 0x006f0 0x00000398 line: 1003 dw(NUMBER)
+ 0x006f4 0x00000864 line: 1004 dw(DUP)
+ 0x006f8 0x00000634 line: 1005 dw(ZBRANCH) # No chars left? It is a number!
+ 0x006fc 0x00000008 line: 1006 dw(s_to_u_32(4 * 2))
+ 0x00700 0x00000090 line: 1010 dw(EXIT)
+ 0x00704 0x0000007c line: 1013 dw(DROP)
+ 0x00708 0x0000049c line: 1017 dw(STATE)
+ 0x0070c 0x00000658 line: 1018 dw(FETCH)
+ 0x00710 0x00000634 line: 1019 dw(ZBRANCH) # STATE = 0 -> interpreting.
+ 0x00714 0x00000014 line: 1021 dw(s_to_u_32(4 * 5)) # to EXIT
+ 0x00718 0x000000a8 line: 1024 dw(LIT)
+ 0x0071c 0x000000a8 line: 1025 dw(LIT)
+ 0x00720 0x000004dc line: 1026 dw(COMMA) # write the address of the codeword of LIT
+ 0x00724 0x000004dc line: 1027 dw(COMMA) # then the value itself.
+ 0x00728 0x00000090 line: 1029 dw(EXIT)
+ _INTERP_dfa: 0x0072c 0x000006bc line: 188 dw(LINK) -- (in def_)
+ 0x00730 0x4e495f27 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ _INTERP: 0x00734 0x00000738 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00738 Load_word(2, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x0073c Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x00740 Mov_imm(0, 0x4b0, u=False, v=False) line: 1042 Mov_imm(R0, STATE_var) # R0 <- &STATE
+ 0x00744 Load_word(0, 0) line: 1043 Load_word(R0, R0) # R0 <- ram[STATE]
+ 0x00748 EQ_imm(0x7) line: 1044 EQ_imm(_intrp_exe) # STATE = 0 -> interpreting.
+ 0x0074c Load_word(0, 2, offset=0x4) line: 1045 Load_word(R0, R2, 4) # R0 <- Name field
+ 0x00750 And_imm(0, 0, 0x80, u=False, v=False) line: 1046 And_imm(R0, R0, F_IMMED)
+ 0x00754 NE_imm(0x4) line: 1047 NE_imm(_intrp_exe) # word is IMMEDIATE.
+ 0x00758 Add_imm(2, 2, 0x8, u=False, v=False) line: 1050 Add_imm(R2, R2, 8) # Point from LFA to codeword.
+ 0x0075c Mov_imm(1, 0x4f4, u=False, v=False) line: 1051 Mov_imm(R1, _COMMA) # Call comma to store it and increment HERE.
+ 0x00760 T_link(1) line: 1052 T_link(R1)
+ 0x00764 T_imm(0xfffe30) line: 137 T_imm(NEXT_) -- (in NEXT)
+ _intrp_exe: 0x00768 Add_imm(2, 2, 0x8, u=False, v=False) line: 1056 Add_imm(R2, R2, 8) # Point to the codeword
+ 0x0076c Load_word(0, 2) line: 1057 Load_word(R0, R2) # Get the address to which its codeword points...
+ 0x00770 Mov(3, 2, u=False) line: 1058 Mov(next_function, R2) # DOCOL depends on this.
+ 0x00774 T(0) line: 1059 T(R0) # and jump to it.
+ PAI_dfa: 0x00778 0x0000072c line: 188 dw(LINK) -- (in def_)
+ 0x0077c 0x69617003 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ PAI: 0x00780 0x00000784 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00784 Mov_imm(0, 0xe, u=True, v=False) line: 245 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
+ 0x00788 Ior_imm(0, 0, 0x7f00, u=False, v=False) line: 246 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
+ 0x0078c Mov_imm(1, 0x1, u=True, v=False) line: 245 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
+ 0x00790 Ior_imm(1, 1, 0x8000, u=False, v=False) line: 246 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
+ 0x00794 Mov_imm(8, 0xffff, u=True, v=False) line: 245 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
+ 0x00798 Ior_imm(8, 8, 0xffff, u=False, v=False) line: 246 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
+ 0x0079c Add(1, 1, 0, u=False) line: 1085 Add(R1, R1, R0)
+ 0x007a0 Sub_imm(0, 0, 0x4e0, u=False, v=False) line: 1086 Sub_imm(R0, R0, 312 * 4) # 312 words in font data.
+ 0x007a4 Mov_imm(2, 0x138, u=False, v=False) line: 1087 Mov_imm(R2, 13 * 24)
+ _pai_loop: 0x007a8 Load_word(7, 0) line: 1090 Load_word(R7, R0)
+ 0x007ac Xor(7, 7, 8, u=False) line: 1091 Xor(R7, R7, R8) # Reverse video.
+ 0x007b0 Store_word(7, 1) line: 1092 Store_word(R7, R1)
+ 0x007b4 Add_imm(0, 0, 0x4, u=False, v=False) line: 1093 Add_imm(R0, R0, 4)
+ 0x007b8 Sub_imm(1, 1, 0x80, u=False, v=False) line: 1094 Sub_imm(R1, R1, 128)
+ 0x007bc Sub_imm(2, 2, 0x1, u=False, v=False) line: 1095 Sub_imm(R2, R2, 1)
+ 0x007c0 NE_imm(0xfffff9) line: 1096 NE_imm(_pai_loop)
+ 0x007c4 T_imm(0xfffe18) line: 137 T_imm(NEXT_) -- (in NEXT)
+PAINT_CHAR_dfa: 0x007c8 0x00000778 line: 188 dw(LINK) -- (in def_)
+ 0x007cc 0x6961700a line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ PAINT_CHAR: 0x007d0 0x000007d4 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x007d4 Mov_imm(0, 0xe, u=True, v=False) line: 245 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
+ 0x007d8 Ior_imm(0, 0, 0x7a20, u=False, v=False) line: 246 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
+ 0x007dc Load_word(1, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x007e0 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x007e4 Sub_imm(1, 1, 0x21, u=False, v=False) line: 1128 Sub_imm(R1, R1, ord('!')) # R1 counts byte offset of char.
+ 0x007e8 Asr_imm(2, 1, 0x2, u=False, v=False) line: 1130 Asr_imm(R2, R1, 2) # R2 = R1 / 4 Trim the two least bits.
+ 0x007ec Mul_imm(2, 2, 0x34, u=False, v=False) line: 1131 Mul_imm(R2, R2, 52) # R2 *= 13 words/char * 4 bytes/word.
+ 0x007f0 Add(0, 0, 2, u=False) line: 1132 Add(R0, R0, R2) # Point R0 to char's first word in font.
+ 0x007f4 And_imm(1, 1, 0x3, u=False, v=False) line: 1133 And_imm(R1, R1, 0b11) # Which byte in the word?
+ 0x007f8 Add(0, 0, 1, u=False) line: 1134 Add(R0, R0, R1) # Point R0 to char's first byte in font.
0x007fc Load_word(1, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
0x00800 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x00804 Sub_imm(1, 1, 0x21, u=False, v=False) line: 1121 Sub_imm(R1, R1, ord('!')) # R1 counts byte offset of char.
- 0x00808 Asr_imm(2, 1, 0x2, u=False, v=False) line: 1123 Asr_imm(R2, R1, 2) # R2 = R1 / 4 Trim the two least bits.
- 0x0080c Mul_imm(2, 2, 0x34, u=False, v=False) line: 1124 Mul_imm(R2, R2, 52) # R2 *= 13 words/char * 4 bytes/word.
- 0x00810 Add(0, 0, 2, u=False) line: 1125 Add(R0, R0, R2) # Point R0 to char's first word in font.
- 0x00814 And_imm(1, 1, 0x3, u=False, v=False) line: 1126 And_imm(R1, R1, 0b11) # Which byte in the word?
- 0x00818 Add(0, 0, 1, u=False) line: 1127 Add(R0, R0, R1) # Point R0 to char's first byte in font.
- 0x0081c Load_word(1, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x00820 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x00824 Mov_imm(2, 0xe, u=True, v=False) line: 238 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
- 0x00828 Ior_imm(2, 2, 0x7f00, u=False, v=False) line: 239 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
- 0x0082c Add(1, 1, 2, u=False) line: 1131 Add(R1, R1, R2) # R1 = x + DISPLAY_START
- 0x00830 Mov_imm(7, 0x2ff, u=False, v=False) line: 1132 Mov_imm(R7, 767) # Display width - 1 in pixels. (TODO don't hardcod3 this.)
- 0x00834 Load_word(2, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
- 0x00838 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
- 0x0083c Mul_imm(2, 2, 0xd, u=False, v=False) line: 1134 Mul_imm(R2, R2, 13) # R2 = y in px (13px/char height)
- 0x00840 Sub(2, 7, 2, u=False) line: 1135 Sub(R2, R7, R2) # R2 = 768 - 1 - y
- 0x00844 Lsl_imm(2, 2, 0x7, u=False, v=False) line: 1136 Lsl_imm(R2, R2, 7) # R2 = (768 - 1 - y) * 128 bytes per line.
- 0x00848 Add(1, 1, 2, u=False) line: 1137 Add(R1, R1, R2) # R1 = (768 - 1 - y) * 128 + x + DISPLAY_START
- 0x0084c Mov_imm(2, 0xd, u=False, v=False) line: 1143 Mov_imm(R2, 13) # Counter
- _pchr_loop: 0x00850 Load_byte(7, 0) line: 1146 Load_byte(R7, R0)
- 0x00854 Store_byte(7, 1) line: 1148 Store_byte(R7, R1)
- 0x00858 Add_imm(0, 0, 0x4, u=False, v=False) line: 1149 Add_imm(R0, R0, 4)
- 0x0085c Sub_imm(1, 1, 0x80, u=False, v=False) line: 1150 Sub_imm(R1, R1, 128)
- 0x00860 Sub_imm(2, 2, 0x1, u=False, v=False) line: 1151 Sub_imm(R2, R2, 1)
- 0x00864 NE_imm(0xfffffa) line: 1152 NE_imm(_pchr_loop)
- 0x00868 T_imm(0xfffdef) line: 137 T_imm(NEXT_) -- (in NEXT)
- TRAP_dfa: 0x0086c 0x000007e8 line: 181 dw(LINK) -- (in def_)
- 0x00870 0x41525404 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- TRAP: 0x00874 0x00000878 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00878 T_imm(0xfffdeb) line: 137 T_imm(NEXT_) -- (in NEXT)
- DUP_dfa: 0x0087c 0x0000086c line: 181 dw(LINK) -- (in def_)
- 0x00880 0x50554403 line: 190 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
- DUP: 0x00884 0x00000888 line: 211 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
- 0x00888 Load_word(0, 10) line: 168 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in PEEK)
- 0x0088c Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
- 0x00890 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
- 0x00894 T_imm(0xfffde4) line: 137 T_imm(NEXT_) -- (in NEXT)
+ 0x00804 Mov_imm(2, 0xe, u=True, v=False) line: 245 Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
+ 0x00808 Ior_imm(2, 2, 0x7f00, u=False, v=False) line: 246 Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
+ 0x0080c Add(1, 1, 2, u=False) line: 1138 Add(R1, R1, R2) # R1 = x + DISPLAY_START
+ 0x00810 Mov_imm(7, 0x2ff, u=False, v=False) line: 1139 Mov_imm(R7, 767) # Display width - 1 in pixels. (TODO don't hardcod3 this.)
+ 0x00814 Load_word(2, 10) line: 160 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in POP)
+ 0x00818 Add_imm(10, 10, 0x4, u=False, v=False) line: 161 Add_imm(Dstack, Dstack, 4) # Dstack += 4 -- (in POP)
+ 0x0081c Mul_imm(2, 2, 0xd, u=False, v=False) line: 1141 Mul_imm(R2, R2, 13) # R2 = y in px (13px/char height)
+ 0x00820 Sub(2, 7, 2, u=False) line: 1142 Sub(R2, R7, R2) # R2 = 768 - 1 - y
+ 0x00824 Lsl_imm(2, 2, 0x7, u=False, v=False) line: 1143 Lsl_imm(R2, R2, 7) # R2 = (768 - 1 - y) * 128 bytes per line.
+ 0x00828 Add(1, 1, 2, u=False) line: 1144 Add(R1, R1, R2) # R1 = (768 - 1 - y) * 128 + x + DISPLAY_START
+ 0x0082c Mov_imm(2, 0xd, u=False, v=False) line: 1150 Mov_imm(R2, 13) # Counter
+ _pchr_loop: 0x00830 Load_byte(7, 0) line: 1153 Load_byte(R7, R0)
+ 0x00834 Store_byte(7, 1) line: 1155 Store_byte(R7, R1)
+ 0x00838 Add_imm(0, 0, 0x4, u=False, v=False) line: 1156 Add_imm(R0, R0, 4)
+ 0x0083c Sub_imm(1, 1, 0x80, u=False, v=False) line: 1157 Sub_imm(R1, R1, 128)
+ 0x00840 Sub_imm(2, 2, 0x1, u=False, v=False) line: 1158 Sub_imm(R2, R2, 1)
+ 0x00844 NE_imm(0xfffffa) line: 1159 NE_imm(_pchr_loop)
+ 0x00848 T_imm(0xfffdf7) line: 137 T_imm(NEXT_) -- (in NEXT)
+ TRAP_dfa: 0x0084c 0x000007c8 line: 188 dw(LINK) -- (in def_)
+ 0x00850 0x41525404 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ TRAP: 0x00854 0x00000858 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00858 T_imm(0xfffdf3) line: 137 T_imm(NEXT_) -- (in NEXT)
+ DUP_dfa: 0x0085c 0x0000084c line: 188 dw(LINK) -- (in def_)
+ 0x00860 0x50554403 line: 197 dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
+ DUP: 0x00864 0x00000868 line: 218 dw(HERE() + 4) # codeword points to ASM immediately following. -- (in defcode)
+ 0x00868 Load_word(0, 10) line: 175 Load_word(reg, Dstack) # reg <- RAM[Dstack] -- (in PEEK)
+ 0x0086c Sub_imm(10, 10, 0x4, u=False, v=False) line: 154 Sub_imm(Dstack, Dstack, 4) # Dstack -= 4 -- (in PUSH)
+ 0x00870 Store_word(0, 10) line: 155 Store_word(reg, Dstack) # reg -> RAM[Dstack] -- (in PUSH)
+ 0x00874 T_imm(0xfffdec) line: 137 T_imm(NEXT_) -- (in NEXT)