~sforman/PythonOberon

e4c9512cff906f380e599d5e881042247813afb3 — Simon Forman 18 days ago d53ef1d master
The C emu draws but my emu doesn't. :(
M forth/assembler.output.txt => forth/assembler.output.txt +550 -544
@@ 26,8 26,8 @@
      REPL_dfa: 0x00064 0x00000000                                       line: 172     dw(LINK) -- (in def_)
                0x00068 0x50455204                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
          REPL: 0x0006c 0x00000028                                       line: 194     dw(DOCOL)  # codeword points to DOCOL colon word mini-interpreter. -- (in defword)
                0x00070 0x00000870                                       line: 317 dw(INTERPRET)
                0x00074 0x0000078c                                       line: 318 dw(BRANCH)
                0x00070 0x0000086c                                       line: 317 dw(INTERPRET)
                0x00074 0x00000788                                       line: 318 dw(BRANCH)
                0x00078 0xfffffff8                                       line: 319 dw(s_to_u_32(-8))  # Loop back to INTERPRET.
      DROP_dfa: 0x0007c 0x00000064                                       line: 172     dw(LINK) -- (in def_)
                0x00080 0x4f524404                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)


@@ 109,552 109,558 @@
                0x001b0 Mov(0, 0, u=True, v=True)  # R0 <- (N,Z,C,OV, 0..01010000) line: 367 Mov(R0, 0, u=True, v=True)  # Get flags, c register is ignored.
                0x001b4 Asr_imm(0, 0, 0x1e, u=False, v=False)            line: 368 Asr_imm(R0, R0, 30)  # Z is the 31st bit, penultimate from the MSB.
                0x001b8 And_imm(0, 0, 0x1, u=False, v=False)             line: 369 And_imm(R0, R0, 1)  # Mask out N flag.
                0x001bc Xor_imm(0, 0, 0x1, u=False, v=False)             line: 370 Xor_imm(R0, R0, 1)  # flip the (shifted) Z bit.
                0x001c0 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x001c4 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x001c8 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x001cc Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x001d0 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x001d4 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
       GTE_dfa: 0x001d8 0x00000190                                       line: 172     dw(LINK) -- (in def_)
                0x001dc 0x003d3e02                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
           GTE: 0x001e0 0x000001e4                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x001e4 Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x001e8 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x001ec Load_word(1, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x001f0 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x001f4 Sub(1, 1, 0, u=False)                            line: 378 Sub(R1, R1, R0)
                0x001f8 GE_imm(0x2)                                      line: 379 GE_imm(_GTE_True)
                0x001fc Mov_imm(0, 0x0, u=False, v=False)                line: 380 Mov_imm(R0, 0)
                0x00200 T_imm(0x1)                                       line: 381 T_imm(_GTE_fin)
     _GTE_True: 0x00204 Mov_imm(0, 0x1, u=False, v=False)                line: 383 Mov_imm(R0, 1)
      _GTE_fin: 0x00208 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x0020c Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x00210 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00214 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00218 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x0021c T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
      INCR_dfa: 0x00220 0x000001d8                                       line: 172     dw(LINK) -- (in def_)
                0x00224 0x002b3102                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
          INCR: 0x00228 0x0000022c                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x0022c Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x00230 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x00234 Add_imm(0, 0, 0x1, u=False, v=False)             line: 391 Add_imm(R0, R0, 1)
                0x00238 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x0023c Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x00240 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00244 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00248 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x0024c T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
      DECR_dfa: 0x00250 0x00000220                                       line: 172     dw(LINK) -- (in def_)
                0x00254 0x002d3102                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
          DECR: 0x00258 0x0000025c                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x0025c Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x00260 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x00264 Sub_imm(0, 0, 0x1, u=False, v=False)             line: 398 Sub_imm(R0, R0, 1)
                0x00268 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x0026c Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x00270 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00274 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00278 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x0027c T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
  ADDSTORE_dfa: 0x00280 0x00000250                                       line: 172     dw(LINK) -- (in def_)
                0x00284 0x00212b02                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
      ADDSTORE: 0x00288 0x0000028c                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x0028c Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x00290 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x00294 Load_word(1, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x00298 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x0029c Load_word(2, 0)                                  line: 406 Load_word(R2, R0)
                0x002a0 Add(2, 2, 1, u=False)                            line: 407 Add(R2, R2, R1)
                0x002a4 Store_word(2, 0)                                 line: 408 Store_word(R2, R0)
                0x002a8 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x002ac Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x002b0 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x002b4 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
       KEY_dfa: 0x002b8 0x00000280                                       line: 172     dw(LINK) -- (in def_)
                0x002bc 0x59454b03                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
           KEY: 0x002c0 0x000002c4                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x002c4 Mov_imm(1, 0x318, u=False, v=False)              line: 235     Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
                0x002c8 T_link(1)                                        line: 236     T_link(R1) -- (in busywait_on_serial_ready)
                0x002cc Load_word(0, 1, offset=0xffffc)                  line: 419 Load_word(R0, R1, negative_offset_20(-4))  # serial port is 4 bytes lower.
                0x002d0 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x002d4 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x002d8 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x002dc Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x002e0 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x002e4 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
      EMIT_dfa: 0x002e8 0x000002b8                                       line: 172     dw(LINK) -- (in def_)
                0x002ec 0x494d4504                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
          EMIT: 0x002f0 0x000002f4                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x002f4 Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x002f8 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x002fc Mov_imm(1, 0x318, u=False, v=False)              line: 235     Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
                0x00300 T_link(1)                                        line: 236     T_link(R1) -- (in busywait_on_serial_ready)
                0x00304 Store_word(0, 1, offset=0xffffc)                 line: 426 Store_word(R0, R1, negative_offset_20(-4))  # serial port is 4 bytes lower.
                0x00308 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x0030c Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00310 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00314 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
          _KEY: 0x00318 Mov_imm(1, 0xffff, u=True, v=False)              line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x0031c Ior_imm(1, 1, 0xffcc, u=False, v=False)          line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x00320 Load_word(2, 1)                                  line: 442 Load_word(R2, R1)
                0x00324 EQ_imm(0x3fff34)                                 line: 443 EQ_imm(negative_offset_24(-8))  # if R2==0 repeat
                0x00328 T(15)                                            line: 448 T(15)  # return
        _blank: 0x0032c Sub_imm(2, 0, 0x20, u=False, v=False)            line: 466 Sub_imm(R2, R0, 32)  # Is it a space char?
                0x00330 EQ(15)                                           line: 467 EQ(15)
                0x00334 Sub_imm(2, 0, 0xa, u=False, v=False)             line: 468 Sub_imm(R2, R0, 10)  # Is it a newline char?
                0x00338 EQ(15)                                           line: 469 EQ(15)
                0x0033c Sub_imm(2, 0, 0x9, u=False, v=False)             line: 470 Sub_imm(R2, R0, 9)  # Is it a tab char?
                0x00340 EQ(15)                                           line: 471 EQ(15)
                0x00344 Sub_imm(2, 0, 0xb, u=False, v=False)             line: 472 Sub_imm(R2, R0, 11)  # Is it a '\x0b' char?
                0x00348 EQ(15)                                           line: 473 EQ(15)
                0x0034c Sub_imm(2, 0, 0xc, u=False, v=False)             line: 474 Sub_imm(R2, R0, 12)  # Is it a '\x0c' char?
                0x00350 EQ(15)                                           line: 475 EQ(15)
                0x00354 Sub_imm(2, 0, 0xd, u=False, v=False)             line: 476 Sub_imm(R2, R0, 13)  # Is it a carriage return char?
                0x00358 T(15)                                            line: 477 T(15)  # return
 _skip_comment: 0x0035c Sub_imm(2, 0, 0x5c, u=False, v=False)            line: 491 Sub_imm(R2, R0, ord('\\'))  # Is it a '\' char?
                0x00360 NE(15)                                           line: 492 NE(15)                      # It's not a '\' char, return.
_skip_cmt_loop: 0x00364 Load_word(2, 1)                                  line: 495 Load_word(R2, R1)           # Get the serial port status.
                0x00368 EQ_imm(0xfffffe)                                 line: 496 EQ_imm(_skip_cmt_loop)      # until serial port status != 0
                0x0036c Load_word(0, 1, offset=0xffffc)                  line: 497 Load_word(R0, R1, negative_offset_20(-4))  # serial port is 4 bytes lower.
                0x00370 Sub_imm(2, 0, 0xa, u=False, v=False)             line: 498 Sub_imm(R2, R0, ord('\n'))  # Is it a newline char?
                0x00374 EQ(15)                                           line: 499 EQ(15)  # We have reached the end of the line, return.
                0x00378 T_imm(0xfffffa)                                  line: 500 T_imm(_skip_cmt_loop)   # ...until newline.
   WORD_BUFFER: 0x0037c 0x00000000
                0x001bc Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x001c0 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x001c4 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x001c8 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x001cc Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x001d0 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
       GTE_dfa: 0x001d4 0x00000190                                       line: 172     dw(LINK) -- (in def_)
                0x001d8 0x003d3e02                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
           GTE: 0x001dc 0x000001e0                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x001e0 Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x001e4 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x001e8 Load_word(1, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x001ec Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x001f0 Sub(1, 1, 0, u=False)                            line: 377 Sub(R1, R1, R0)
                0x001f4 GE_imm(0x2)                                      line: 378 GE_imm(_GTE_True)
                0x001f8 Mov_imm(0, 0x0, u=False, v=False)                line: 379 Mov_imm(R0, 0)
                0x001fc T_imm(0x1)                                       line: 380 T_imm(_GTE_fin)
     _GTE_True: 0x00200 Mov_imm(0, 0x1, u=False, v=False)                line: 382 Mov_imm(R0, 1)
      _GTE_fin: 0x00204 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x00208 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x0020c Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00210 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00214 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00218 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
      INCR_dfa: 0x0021c 0x000001d4                                       line: 172     dw(LINK) -- (in def_)
                0x00220 0x002b3102                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
          INCR: 0x00224 0x00000228                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00228 Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x0022c Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x00230 Add_imm(0, 0, 0x1, u=False, v=False)             line: 390 Add_imm(R0, R0, 1)
                0x00234 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x00238 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x0023c Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00240 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00244 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00248 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
      DECR_dfa: 0x0024c 0x0000021c                                       line: 172     dw(LINK) -- (in def_)
                0x00250 0x002d3102                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
          DECR: 0x00254 0x00000258                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00258 Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x0025c Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x00260 Sub_imm(0, 0, 0x1, u=False, v=False)             line: 397 Sub_imm(R0, R0, 1)
                0x00264 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x00268 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x0026c Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00270 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00274 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00278 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
  ADDSTORE_dfa: 0x0027c 0x0000024c                                       line: 172     dw(LINK) -- (in def_)
                0x00280 0x00212b02                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
      ADDSTORE: 0x00284 0x00000288                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00288 Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x0028c Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x00290 Load_word(1, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x00294 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x00298 Load_word(2, 0)                                  line: 405 Load_word(R2, R0)
                0x0029c Add(2, 2, 1, u=False)                            line: 406 Add(R2, R2, R1)
                0x002a0 Store_word(2, 0)                                 line: 407 Store_word(R2, R0)
                0x002a4 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x002a8 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x002ac Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x002b0 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
       KEY_dfa: 0x002b4 0x0000027c                                       line: 172     dw(LINK) -- (in def_)
                0x002b8 0x59454b03                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
           KEY: 0x002bc 0x000002c0                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x002c0 Mov_imm(1, 0x314, u=False, v=False)              line: 235     Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
                0x002c4 T_link(1)                                        line: 236     T_link(R1) -- (in busywait_on_serial_ready)
                0x002c8 Load_word(0, 1, offset=0xffffc)                  line: 418 Load_word(R0, R1, negative_offset_20(-4))  # serial port is 4 bytes lower.
                0x002cc Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x002d0 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x002d4 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x002d8 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x002dc Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x002e0 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
      EMIT_dfa: 0x002e4 0x000002b4                                       line: 172     dw(LINK) -- (in def_)
                0x002e8 0x494d4504                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
          EMIT: 0x002ec 0x000002f0                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x002f0 Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x002f4 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x002f8 Mov_imm(1, 0x314, u=False, v=False)              line: 235     Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
                0x002fc T_link(1)                                        line: 236     T_link(R1) -- (in busywait_on_serial_ready)
                0x00300 Store_word(0, 1, offset=0xffffc)                 line: 425 Store_word(R0, R1, negative_offset_20(-4))  # serial port is 4 bytes lower.
                0x00304 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00308 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x0030c Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00310 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
          _KEY: 0x00314 Mov_imm(1, 0xffff, u=True, v=False)              line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x00318 Ior_imm(1, 1, 0xffcc, u=False, v=False)          line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x0031c Load_word(2, 1)                                  line: 441 Load_word(R2, R1)
                0x00320 EQ_imm(0x3fff35)                                 line: 442 EQ_imm(negative_offset_24(-8))  # if R2==0 repeat
                0x00324 T(15)                                            line: 447 T(15)  # return
        _blank: 0x00328 Sub_imm(2, 0, 0x20, u=False, v=False)            line: 465 Sub_imm(R2, R0, 32)  # Is it a space char?
                0x0032c EQ(15)                                           line: 466 EQ(15)
                0x00330 Sub_imm(2, 0, 0xa, u=False, v=False)             line: 467 Sub_imm(R2, R0, 10)  # Is it a newline char?
                0x00334 EQ(15)                                           line: 468 EQ(15)
                0x00338 Sub_imm(2, 0, 0x9, u=False, v=False)             line: 469 Sub_imm(R2, R0, 9)  # Is it a tab char?
                0x0033c EQ(15)                                           line: 470 EQ(15)
                0x00340 Sub_imm(2, 0, 0xb, u=False, v=False)             line: 471 Sub_imm(R2, R0, 11)  # Is it a '\x0b' char?
                0x00344 EQ(15)                                           line: 472 EQ(15)
                0x00348 Sub_imm(2, 0, 0xc, u=False, v=False)             line: 473 Sub_imm(R2, R0, 12)  # Is it a '\x0c' char?
                0x0034c EQ(15)                                           line: 474 EQ(15)
                0x00350 Sub_imm(2, 0, 0xd, u=False, v=False)             line: 475 Sub_imm(R2, R0, 13)  # Is it a carriage return char?
                0x00354 T(15)                                            line: 476 T(15)  # return
 _skip_comment: 0x00358 Sub_imm(2, 0, 0x5c, u=False, v=False)            line: 490 Sub_imm(R2, R0, ord('\\'))  # Is it a '\' char?
                0x0035c NE(15)                                           line: 491 NE(15)                      # It's not a '\' char, return.
_skip_cmt_loop: 0x00360 Load_word(2, 1)                                  line: 494 Load_word(R2, R1)           # Get the serial port status.
                0x00364 EQ_imm(0xfffffe)                                 line: 495 EQ_imm(_skip_cmt_loop)      # until serial port status != 0
                0x00368 Load_word(0, 1, offset=0xffffc)                  line: 496 Load_word(R0, R1, negative_offset_20(-4))  # serial port is 4 bytes lower.
                0x0036c Sub_imm(2, 0, 0xa, u=False, v=False)             line: 497 Sub_imm(R2, R0, ord('\n'))  # Is it a newline char?
                0x00370 EQ(15)                                           line: 498 EQ(15)  # We have reached the end of the line, return.
                0x00374 T_imm(0xfffffa)                                  line: 499 T_imm(_skip_cmt_loop)   # ...until newline.
   WORD_BUFFER: 0x00378 0x00000000
                0x0037c 0x00000000
                0x00380 0x00000000
                0x00384 0x00000000
                0x00388 0x00000000
                0x0038c 0x00000000
                0x00390 0x00000000
                0x00394 0x00000000
                0x00398 0x00000000
      WORD_dfa: 0x0039c 0x000002e8                                       line: 172     dw(LINK) -- (in def_)
                0x003a0 0x524f5704                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
          WORD: 0x003a4 0x000003a8                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
     _word_key: 0x003a8 Mov_imm(1, 0x318, u=False, v=False)              line: 235     Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
                0x003ac T_link(1)                                        line: 236     T_link(R1) -- (in busywait_on_serial_ready)
                0x003b0 Load_word(0, 1, offset=0xffffc)                  line: 520 Load_word(R0, R1, negative_offset_20(-4))  # serial port is 4 bytes lower.
                0x003b4 Mov_imm(2, 0x35c, u=False, v=False)              line: 522 Mov_imm(R2, _skip_comment)  # Skip line comments.
                0x003b8 T_link(2)                                        line: 523 T_link(R2)
                0x003bc Mov_imm(1, 0x32c, u=False, v=False)              line: 525 Mov_imm(R1, _blank)  # Is it a space char?
                0x003c0 T_link(1)                                        line: 526 T_link(R1)
                0x003c4 EQ_imm(0xfffff8)                                 line: 527 EQ_imm(_word_key)  # then get another char
                0x003c8 Mov_imm(6, 0x37c, u=False, v=False)              line: 530 Mov_imm(word_pointer, WORD_BUFFER)
                0x003cc Mov_imm(5, 0x0, u=False, v=False)                line: 531 Mov_imm(word_counter, 0)
                0x003d0 Store_word(5, 6)                                 line: 532 Store_word(word_counter, word_pointer)  # Zero out the first word of WORD_BUFFER.
                0x003d4 Add_imm(6, 6, 0x1, u=False, v=False)             line: 535 Add_imm(word_pointer, word_pointer, 1)  # Leave a byte for the length.
  _find_length: 0x003d8 Sub_imm(2, 5, 0x20, u=False, v=False)            line: 539 Sub_imm(R2, word_counter, 32)
                0x003dc EQ_imm(0xfffff2)                                 line: 540 EQ_imm(_word_key)  # try again.
                0x003e0 Store_byte(0, 6)                                 line: 543 Store_byte(R0, word_pointer)
                0x003e4 Add_imm(6, 6, 0x1, u=False, v=False)             line: 544 Add_imm(word_pointer, word_pointer, 1)
                0x003e8 Add_imm(5, 5, 0x1, u=False, v=False)             line: 545 Add_imm(word_counter, word_counter, 1)
                0x003ec Mov_imm(1, 0x318, u=False, v=False)              line: 235     Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
                0x003f0 T_link(1)                                        line: 236     T_link(R1) -- (in busywait_on_serial_ready)
                0x003f4 Load_word(0, 1, offset=0xffffc)                  line: 549 Load_word(R0, R1, negative_offset_20(-4))  # serial port is 4 bytes lower.
                0x003f8 Mov_imm(1, 0x32c, u=False, v=False)              line: 552 Mov_imm(R1, _blank)
                0x003fc T_link(1)                                        line: 553 T_link(R1)
                0x00400 NE_imm(0xfffff5)                                 line: 554 NE_imm(_find_length)  # No, keep getting chars to the buffer
                0x00404 Mov_imm(6, 0x37c, u=False, v=False)              line: 557 Mov_imm(word_pointer, WORD_BUFFER)
                0x00408 Store_byte(5, 6)                                 line: 558 Store_byte(word_counter, word_pointer)
                0x0040c Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00410 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00414 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00418 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
      FIND_dfa: 0x0041c 0x0000039c                                       line: 172     dw(LINK) -- (in def_)
                0x00420 0x4e494604                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
          FIND: 0x00424 0x00000428                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00428 Mov_imm(6, 0x37c, u=False, v=False)              line: 571 Mov_imm(word_pointer, WORD_BUFFER)
                0x0042c Load_word(5, 6)                                  line: 573 Load_word(word_counter, word_pointer)
                0x00430 Mov_imm(2, 0xffff, u=True, v=False)              line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x00434 Ior_imm(2, 2, 0xff7f, u=False, v=False)          line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x00438 Mov_imm(0, 0x5a0, u=False, v=False)              line: 578 Mov_imm(R0, LATEST_var)
                0x0043c Load_word(0, 0)                                  line: 579 Load_word(R0, R0)          # Point R0 to latest word's LFA.
       _FIND_1: 0x00440 Load_word(1, 0, offset=0x4)                      line: 581 Load_word(R1, R0, 4)       # load a word of the name field.
                0x00444 And(1, 1, 2, u=False)                            line: 582 And(R1, R1, R2)            # Clear the IMMEDIATE flag, if any.
                0x00448 Sub(1, 1, 5, u=False)                            line: 583 Sub(R1, R1, word_counter)  # Compare.
                0x0044c EQ_imm(0x2)                                      line: 584 EQ_imm(_found)             # If this is the word...
                0x00450 Load_word(0, 0)                                  line: 590 Load_word(R0, R0)  # Load the address of the next link field into R0
                0x00454 NE_imm(0xfffffa)                                 line: 591 NE_imm(_FIND_1)  # Check the next word.
        _found: 0x00458 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x0045c Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x00460 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00464 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00468 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x0046c T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
    NUMBER_dfa: 0x00470 0x0000041c                                       line: 172     dw(LINK) -- (in def_)
                0x00474 0x4d554e06                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
        NUMBER: 0x00478 0x0000047c                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x0047c Mov_imm(6, 0x37c, u=False, v=False)              line: 630 Mov_imm(word_pointer, WORD_BUFFER)
                0x00480 Load_byte(5, 6)                                  line: 631 Load_byte(word_counter, word_pointer)
                0x00484 Mov_imm(2, 0x0, u=False, v=False)                line: 632 Mov_imm(R2, 0)  # use R2 as the accumulator for the number's value
                0x00488 Add_imm(6, 6, 0x1, u=False, v=False)             line: 634 Add_imm(word_pointer, word_pointer, 1)  # Point to first char.
                0x0048c Load_byte(0, 6)                                  line: 635 Load_byte(R0, word_pointer)  # Load it.
                0x00490 Sub_imm(0, 0, 0x24, u=False, v=False)            line: 636 Sub_imm(R0, R0, ord('$'))  # Is it a '$'?
                0x00494 NE_imm(0xf)                                      line: 637 NE_imm(_NUM_fin)
                0x00498 Sub_imm(5, 5, 0x1, u=False, v=False)             line: 640 Sub_imm(word_counter, word_counter, 1)  # we have parsed one '$' char.
      _NUM_hex: 0x0049c Add_imm(6, 6, 0x1, u=False, v=False)             line: 643 Add_imm(word_pointer, word_pointer, 1)  # Point to next char.
                0x004a0 Load_byte(0, 6)                                  line: 644 Load_byte(R0, word_pointer)  # Load it.
                0x004a4 Sub_imm(0, 0, 0x30, u=False, v=False)            line: 646 Sub_imm(R0, R0, ord('0'))
                0x004a8 LT_imm(0xa)                                      line: 647 LT_imm(_NUM_fin)  # Is its ASCII value lower than '0'?
                0x004ac Sub_imm(1, 0, 0x9, u=False, v=False)             line: 649 Sub_imm(R1, R0, 9)  # Is it 0-9?
                0x004b0 LE_imm(0x5)                                      line: 650 LE_imm(_NUM_add)  # It is!
                0x004b4 Sub_imm(0, 0, 0x31, u=False, v=False)            line: 656 Sub_imm(R0, R0, 49)  # so now '1'..'6' -> 0..5
                0x004b8 LT_imm(0x6)                                      line: 657 LT_imm(_NUM_fin)  # Its ASCII value is less than 'a', nope out.
                0x004bc Sub_imm(1, 0, 0x5, u=False, v=False)             line: 660 Sub_imm(R1, R0, 5)  # Is it a-f?
                0x004c0 GT_imm(0x4)                                      line: 661 GT_imm(_NUM_fin)  # nope, nope out
                0x004c4 Add_imm(0, 0, 0xa, u=False, v=False)             line: 663 Add_imm(R0, R0, 10)  # 0..5 -> 10..15
      _NUM_add: 0x004c8 Add(2, 2, 0, u=False)                            line: 666 Add( R2, R2, R0)  # Add it to the accumulator.
                0x004cc Sub_imm(5, 5, 0x1, u=False, v=False)             line: 668 Sub_imm(word_counter, word_counter, 1)  # we have parsed a digit char.
                0x004d0 NE_imm(0x8)                                      line: 669 NE_imm(_NUM_foo)  # More digits? Keep going.
      _NUM_fin: 0x004d4 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x004d8 Store_word(2, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x004dc Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x004e0 Store_word(5, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x004e4 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x004e8 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x004ec Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x004f0 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
      _NUM_foo: 0x004f4 Lsl_imm(2, 2, 0x4, u=False, v=False)             line: 678 Lsl_imm(R2, R2, 4)  # accumulator *= 16
                0x004f8 T_imm(0xffffe8)                                  line: 679 T_imm(_NUM_hex)  # Go get the next digit.
    CREATE_dfa: 0x004fc 0x00000470                                       line: 172     dw(LINK) -- (in def_)
                0x00500 0x45524306                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
        CREATE: 0x00504 0x00000508                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00508 Mov_imm(0, 0x574, u=False, v=False)              line: 690 Mov_imm(R0, HERE__var)  # R0 <- &HERE
                0x0050c Load_word(0, 0)                                  line: 691 Load_word(R0, R0)       # R0 <- ram[HERE]
                0x00510 Mov_imm(1, 0x5a0, u=False, v=False)              line: 693 Mov_imm(R1, LATEST_var)  # R1 <- &LATEST
                0x00514 Load_word(2, 1)                                  line: 694 Load_word(R2, R1)        # R2 <- ram[LATEST]
                0x00518 Store_word(2, 0)                                 line: 696 Store_word(R2, R0)  # value of LATEST -> ram[HERE]
                0x0051c Store_word(0, 1)                                 line: 697 Store_word(R0, R1)  # value of HERE (now LFA for new word) -> ram[LATEST]
                0x00520 Add_imm(0, 0, 0x4, u=False, v=False)             line: 699 Add_imm(R0, R0, 4)  # HERE += 4
                0x00524 Mov_imm(6, 0x37c, u=False, v=False)              line: 702 Mov_imm(word_pointer, WORD_BUFFER)
                0x00528 Load_word(1, 6)                                  line: 712 Load_word(R1, word_pointer)  # Get the word from WORD_BUFFER.
                0x0052c Store_word(1, 0)                                 line: 713 Store_word(R1, R0)  # Store word to HERE.
                0x00530 Add_imm(0, 0, 0x4, u=False, v=False)             line: 714 Add_imm(R0, R0, 4)  # HERE += 4
                0x00534 Mov_imm(1, 0x574, u=False, v=False)              line: 725 Mov_imm(R1, HERE__var)  # R1 <- &HERE
                0x00538 Store_word(0, 1)                                 line: 726 Store_word(R0, R1)      # value of HERE -> ram[HERE]
                0x0053c Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00540 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00544 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00548 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     HERE__dfa: 0x0054c 0x000004fc                                       line: 172     dw(LINK) -- (in def_)
                0x00550 0x52454804                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         HERE_: 0x00554 0x00000558                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00558 Mov_imm(0, 0x574, u=False, v=False)              line: 212     Mov_imm(R0, LABEL_var) -- (in defvar)
                0x0055c Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x00560 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x00564 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00568 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x0056c Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00570 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     HERE__var: 0x00574 0x00000a50                                       line: 219     dw(initial) -- (in defvar)
    LATEST_dfa: 0x00578 0x0000054c                                       line: 172     dw(LINK) -- (in def_)
                0x0057c 0x54414c06                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
        LATEST: 0x00580 0x00000584                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00584 Mov_imm(0, 0x5a0, u=False, v=False)              line: 212     Mov_imm(R0, LABEL_var) -- (in defvar)
                0x00588 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x0058c Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x00590 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00594 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00598 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x0059c T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
    LATEST_var: 0x005a0 0x00000a1c                                       line: 219     dw(initial) -- (in defvar)
     STATE_dfa: 0x005a4 0x00000578                                       line: 172     dw(LINK) -- (in def_)
                0x005a8 0x41545305                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         STATE: 0x005ac 0x000005b0                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x005b0 Mov_imm(0, 0x5cc, u=False, v=False)              line: 212     Mov_imm(R0, LABEL_var) -- (in defvar)
                0x005b4 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x005b8 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x005bc Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x005c0 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x005c4 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x005c8 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     STATE_var: 0x005cc 0x00000000                                       line: 219     dw(initial) -- (in defvar)
   __DOCOL_dfa: 0x005d0 0x000005a4                                       line: 172     dw(LINK) -- (in def_)
                0x005d4 0x434f4405                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
       __DOCOL: 0x005d8 0x000005dc                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x005dc Mov_imm(0, 0x0, u=True, v=False)                 line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x005e0 Ior_imm(0, 0, 0x28, u=False, v=False)            line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x005e4 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x005e8 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x005ec Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x005f0 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x005f4 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x005f8 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     COMMA_dfa: 0x005fc 0x000005d0                                       line: 172     dw(LINK) -- (in def_)
                0x00600 0x00002c01                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         COMMA: 0x00604 0x00000608                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00608 Load_word(2, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x0060c Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x00610 Mov_imm(1, 0x628, u=False, v=False)              line: 753 Mov_imm(R1, _COMMA)
                0x00614 T_link(1)                                        line: 754 T_link(R1)
                0x00618 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x0061c Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00620 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00624 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
        _COMMA: 0x00628 Mov_imm(0, 0x574, u=False, v=False)              line: 763 Mov_imm(R0, HERE__var)  # R0 <- HERE__var
                0x0062c Load_word(1, 0)                                  line: 764 Load_word(R1, R0)       # HERE <- ram[HERE__var]
                0x00630 Store_word(2, 1)                                 line: 765 Store_word(R2, R1)      # R2 -> ram[HERE]
                0x00634 Add_imm(1, 1, 0x4, u=False, v=False)             line: 766 Add_imm(R1, R1, 4)      # HERE += 4
                0x00638 Store_word(1, 0)                                 line: 767 Store_word(R1, R0)      # HERE -> ram[HERE__var]
                0x0063c T(15)                                            line: 768 T(15)  # return
     LBRAC_dfa: 0x00640 0x000005fc                                       line: 172     dw(LINK) -- (in def_)
                0x00644 0x00005b81                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         LBRAC: 0x00648 0x0000064c                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x0064c Mov_imm(0, 0x5cc, u=False, v=False)              line: 782 Mov_imm(R0, STATE_var)
                0x00650 Mov_imm(1, 0x0, u=False, v=False)                line: 783 Mov_imm(R1, 0)
                0x00654 Store_word(1, 0)                                 line: 784 Store_word(R1, R0)
                0x00658 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x0065c Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00660 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00664 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     RBRAC_dfa: 0x00668 0x00000640                                       line: 172     dw(LINK) -- (in def_)
                0x0066c 0x00005d01                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         RBRAC: 0x00670 0x00000674                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00674 Mov_imm(0, 0x5cc, u=False, v=False)              line: 788 Mov_imm(R0, STATE_var)
                0x00678 Mov_imm(1, 0x1, u=False, v=False)                line: 789 Mov_imm(R1, 1)
                0x0067c Store_word(1, 0)                                 line: 790 Store_word(R1, R0)
                0x00680 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00684 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00688 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x0068c T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     COLON_dfa: 0x00690 0x00000668                                       line: 172     dw(LINK) -- (in def_)
                0x00694 0x00003a01                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         COLON: 0x00698 0x00000028                                       line: 194     dw(DOCOL)  # codeword points to DOCOL colon word mini-interpreter. -- (in defword)
                0x0069c 0x000003a4                                       line: 813 dw(WORD)  # "Get the name of the new word"
                0x006a0 0x00000504                                       line: 814 dw(CREATE)  # "CREATE the dictionary entry / header"
                0x006a4 0x000000c8                                       line: 815 dw(LIT)  # "Append DOCOL  (the codeword)."
                0x006a8 0x00000028                                       line: 816 dw(DOCOL)
                0x006ac 0x00000604                                       line: 817 dw(COMMA)
                0x006b0 0x00000580                                       line: 818 dw(LATEST)  # "Make the word hidden (see below for definition)."
                0x006b4 0x000007e0                                       line: 819 dw(FETCH)
                0x006b8 0x0000072c                                       line: 820 dw(HIDDEN)
                0x006bc 0x00000670                                       line: 821 dw(RBRAC)  # "Go into compile mode."
                0x006c0 0x000000a4                                       line: 822 dw(EXIT)  # "Return from the function."
 SEMICOLON_dfa: 0x006c4 0x00000690                                       line: 172     dw(LINK) -- (in def_)
                0x006c8 0x00003b81                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
     SEMICOLON: 0x006cc 0x00000028                                       line: 194     dw(DOCOL)  # codeword points to DOCOL colon word mini-interpreter. -- (in defword)
                0x006d0 0x000000c8                                       line: 831 dw(LIT)  # "Append EXIT (so the word will return)."
                0x006d4 0x000000a4                                       line: 832 dw(EXIT)
                0x006d8 0x00000604                                       line: 833 dw(COMMA)
                0x006dc 0x00000580                                       line: 834 dw(LATEST)  # "Toggle hidden flag -- unhide the word (see below for definition)."
                0x006e0 0x000007e0                                       line: 835 dw(FETCH)
                0x006e4 0x0000072c                                       line: 836 dw(HIDDEN)
                0x006e8 0x00000648                                       line: 837 dw(LBRAC)  # "Go back to IMMEDIATE mode."
                0x006ec 0x000000a4                                       line: 838 dw(EXIT)  # "Return from the function."
 IMMEDIATE_dfa: 0x006f0 0x000006c4                                       line: 172     dw(LINK) -- (in def_)
                0x006f4 0x4d4d4989                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
     IMMEDIATE: 0x006f8 0x000006fc                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x006fc Mov_imm(0, 0x5a0, u=False, v=False)              line: 847 Mov_imm(R0, LATEST_var)  # R0 <- &LATEST
                0x00700 Load_word(1, 0)                                  line: 848 Load_word(R1, R0)        # R1 <- ram[LATEST]
                0x00704 Add_imm(1, 1, 0x4, u=False, v=False)             line: 849 Add_imm(R1, R1, 4)       # "Point to name/flags byte."
                0x00708 Load_word(0, 1)                                  line: 850 Load_word(R0, R1)
                0x0070c Xor_imm(0, 0, 0x80, u=False, v=False)            line: 851 Xor_imm(R0, R0, F_IMMED) # Toggle IMMEDIATE bit.
                0x00710 Store_word(0, 1)                                 line: 852 Store_word(R0, R1)
                0x00714 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00718 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x0071c Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00720 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
    HIDDEN_dfa: 0x00724 0x000006f0                                       line: 172     dw(LINK) -- (in def_)
                0x00728 0x44494806                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
        HIDDEN: 0x0072c 0x00000730                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00730 Load_word(1, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x00734 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x00738 Add_imm(1, 1, 0x4, u=False, v=False)             line: 863 Add_imm(R1, R1, 4)  # "Point to name/flags byte."
                0x0073c Load_word(0, 1)                                  line: 864 Load_word(R0, R1)
                0x00740 Xor_imm(0, 0, 0x20, u=False, v=False)            line: 865 Xor_imm(R0, R0, F_HIDDEN)  # "Toggle the HIDDEN bit."
                0x00744 Store_word(0, 1)                                 line: 866 Store_word(R0, R1)
                0x00748 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x0074c Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00750 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00754 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
      TICK_dfa: 0x00758 0x00000724                                       line: 172     dw(LINK) -- (in def_)
                0x0075c 0x00002701                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
          TICK: 0x00760 0x00000764                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00764 Load_word(0, 14)                                 line: 885 Load_word(R0, IP)   # Get the address of the next codeword.
                0x00768 Add_imm(14, 14, 0x4, u=False, v=False)           line: 886 Add_imm(IP, IP, 4)  # Skip it.
                0x0076c Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x00770 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x00774 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00778 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x0077c Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00780 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
    BRANCH_dfa: 0x00784 0x00000758                                       line: 172     dw(LINK) -- (in def_)
                0x00788 0x41524206                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
        BRANCH: 0x0078c 0x00000790                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00790 Load_word(0, 14)                                 line: 897 Load_word(R0, IP)  # Get the offset.
                0x00794 Add(14, 14, 0, u=False)                          line: 899 Add(IP, IP, R0)    # IP += offset
                0x00798 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x0079c Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x007a0 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x007a4 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
   ZBRANCH_dfa: 0x007a8 0x00000784                                       line: 172     dw(LINK) -- (in def_)
                0x007ac 0x52423007                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
       ZBRANCH: 0x007b0 0x000007b4                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x007b4 Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x007b8 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x007bc Add_imm(0, 0, 0x0, u=False, v=False)             line: 910 Add_imm(R0, R0, 0)  # Set condition flags.
                0x007c0 EQ_imm(0xfffff3)                                 line: 911 EQ_imm(BRANCH + 4)  # Zero? Delegate to BRANCH.
                0x007c4 Add_imm(14, 14, 0x4, u=False, v=False)           line: 912 Add_imm(IP, IP, 4)  # Non-zero? Skip offset.
                0x007c8 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x007cc Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x007d0 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x007d4 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     FETCH_dfa: 0x007d8 0x000007a8                                       line: 172     dw(LINK) -- (in def_)
                0x007dc 0x00004001                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         FETCH: 0x007e0 0x000007e4                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x007e4 Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x007e8 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x007ec Load_word(0, 0)                                  line: 923 Load_word(R0, R0)
                0x007f0 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x007f4 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x007f8 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x007fc Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00800 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00804 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     STORE_dfa: 0x00808 0x000007d8                                       line: 172     dw(LINK) -- (in def_)
                0x0080c 0x00002101                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         STORE: 0x00810 0x00000814                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00814 Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x00818 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x0081c Load_word(1, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x00820 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x00824 Store_word(1, 0)                                 line: 936 Store_word(R1, R0)
                0x00828 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x0082c Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00830 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00834 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
 IS_NUMBER_dfa: 0x00838 0x00000808                                       line: 172     dw(LINK) -- (in def_)
                0x0083c 0x003f2302                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
     IS_NUMBER: 0x00840 0x00000844                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00844 Mov_imm(6, 0x37c, u=False, v=False)              line: 952 Mov_imm(word_pointer, WORD_BUFFER)
                0x00848 Load_byte(0, 6, offset=0x1)                      line: 953 Load_byte(R0, word_pointer, 1)  # Load first char of word.
                0x0084c Sub_imm(0, 0, 0x24, u=False, v=False)            line: 954 Sub_imm(R0, R0, ord('$'))  # Is it a '$'?
                0x00850 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x00854 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x00858 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x0085c Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00860 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00864 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
 INTERPRET_dfa: 0x00868 0x00000838                                       line: 172     dw(LINK) -- (in def_)
                0x0086c 0x544e4909                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
     INTERPRET: 0x00870 0x00000028                                       line: 194     dw(DOCOL)  # codeword points to DOCOL colon word mini-interpreter. -- (in defword)
                0x00874 0x000003a4                                       line: 965 dw(WORD)
                0x00878 0x00000840                                       line: 966 dw(IS_NUMBER)
                0x0087c 0x000007b0                                       line: 967 dw(ZBRANCH)
                0x00880 0x0000001c                                       line: 968 dw(s_to_u_32(4 * 7))  # It could be a number...
                0x00884 0x00000424                                       line: 971 dw(FIND)
                0x00888 0x00000a24                                       line: 972 dw(DUP)
                0x0088c 0x000007b0                                       line: 973 dw(ZBRANCH)  # Zero means it wasn't in the dictionary,
                0x00890 0x0000001c                                       line: 974 dw(s_to_u_32(4 * 7))
                0x00894 0x000008e0                                       line: 977 dw(_INTERP)
                0x00898 0x000000a4                                       line: 978 dw(EXIT)
                0x0089c 0x00000478                                       line: 981 dw(NUMBER)
                0x008a0 0x00000a24                                       line: 982 dw(DUP)
                0x008a4 0x000007b0                                       line: 983 dw(ZBRANCH)  # No chars left?  It is a number!
                0x008a8 0x00000008                                       line: 984 dw(s_to_u_32(4 * 2))
                0x008ac 0x000000a4                                       line: 988 dw(EXIT)
                0x008b0 0x00000084                                       line: 991 dw(DROP)
                0x008b4 0x000005ac                                       line: 995 dw(STATE)
                0x008b8 0x000007e0                                       line: 996 dw(FETCH)
                0x008bc 0x000007b0                                       line: 997 dw(ZBRANCH)  #  STATE = 0 -> interpreting.
                0x008c0 0x00000014                                       line: 999 dw(s_to_u_32(4 * 5))  # to EXIT
      WORD_dfa: 0x00398 0x000002e4                                       line: 172     dw(LINK) -- (in def_)
                0x0039c 0x524f5704                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
          WORD: 0x003a0 0x000003a4                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
     _word_key: 0x003a4 Mov_imm(1, 0x314, u=False, v=False)              line: 235     Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
                0x003a8 T_link(1)                                        line: 236     T_link(R1) -- (in busywait_on_serial_ready)
                0x003ac Load_word(0, 1, offset=0xffffc)                  line: 519 Load_word(R0, R1, negative_offset_20(-4))  # serial port is 4 bytes lower.
                0x003b0 Mov_imm(2, 0x358, u=False, v=False)              line: 521 Mov_imm(R2, _skip_comment)  # Skip line comments.
                0x003b4 T_link(2)                                        line: 522 T_link(R2)
                0x003b8 Mov_imm(1, 0x328, u=False, v=False)              line: 524 Mov_imm(R1, _blank)  # Is it a space char?
                0x003bc T_link(1)                                        line: 525 T_link(R1)
                0x003c0 EQ_imm(0xfffff8)                                 line: 526 EQ_imm(_word_key)  # then get another char
                0x003c4 Mov_imm(6, 0x378, u=False, v=False)              line: 529 Mov_imm(word_pointer, WORD_BUFFER)
                0x003c8 Mov_imm(5, 0x0, u=False, v=False)                line: 530 Mov_imm(word_counter, 0)
                0x003cc Store_word(5, 6)                                 line: 531 Store_word(word_counter, word_pointer)  # Zero out the first word of WORD_BUFFER.
                0x003d0 Add_imm(6, 6, 0x1, u=False, v=False)             line: 534 Add_imm(word_pointer, word_pointer, 1)  # Leave a byte for the length.
  _find_length: 0x003d4 Sub_imm(2, 5, 0x20, u=False, v=False)            line: 538 Sub_imm(R2, word_counter, 32)
                0x003d8 EQ_imm(0xfffff2)                                 line: 539 EQ_imm(_word_key)  # try again.
                0x003dc Store_byte(0, 6)                                 line: 542 Store_byte(R0, word_pointer)
                0x003e0 Add_imm(6, 6, 0x1, u=False, v=False)             line: 543 Add_imm(word_pointer, word_pointer, 1)
                0x003e4 Add_imm(5, 5, 0x1, u=False, v=False)             line: 544 Add_imm(word_counter, word_counter, 1)
                0x003e8 Mov_imm(1, 0x314, u=False, v=False)              line: 235     Mov_imm(R1, _KEY) -- (in busywait_on_serial_ready)
                0x003ec T_link(1)                                        line: 236     T_link(R1) -- (in busywait_on_serial_ready)
                0x003f0 Load_word(0, 1, offset=0xffffc)                  line: 548 Load_word(R0, R1, negative_offset_20(-4))  # serial port is 4 bytes lower.
                0x003f4 Mov_imm(1, 0x328, u=False, v=False)              line: 551 Mov_imm(R1, _blank)
                0x003f8 T_link(1)                                        line: 552 T_link(R1)
                0x003fc NE_imm(0xfffff5)                                 line: 553 NE_imm(_find_length)  # No, keep getting chars to the buffer
                0x00400 Mov_imm(6, 0x378, u=False, v=False)              line: 556 Mov_imm(word_pointer, WORD_BUFFER)
                0x00404 Store_byte(5, 6)                                 line: 557 Store_byte(word_counter, word_pointer)
                0x00408 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x0040c Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00410 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00414 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
      FIND_dfa: 0x00418 0x00000398                                       line: 172     dw(LINK) -- (in def_)
                0x0041c 0x4e494604                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
          FIND: 0x00420 0x00000424                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00424 Mov_imm(6, 0x378, u=False, v=False)              line: 570 Mov_imm(word_pointer, WORD_BUFFER)
                0x00428 Load_word(5, 6)                                  line: 572 Load_word(word_counter, word_pointer)
                0x0042c Mov_imm(2, 0xffff, u=True, v=False)              line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x00430 Ior_imm(2, 2, 0xff7f, u=False, v=False)          line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x00434 Mov_imm(0, 0x59c, u=False, v=False)              line: 577 Mov_imm(R0, LATEST_var)
                0x00438 Load_word(0, 0)                                  line: 578 Load_word(R0, R0)          # Point R0 to latest word's LFA.
       _FIND_1: 0x0043c Load_word(1, 0, offset=0x4)                      line: 580 Load_word(R1, R0, 4)       # load a word of the name field.
                0x00440 And(1, 1, 2, u=False)                            line: 581 And(R1, R1, R2)            # Clear the IMMEDIATE flag, if any.
                0x00444 Sub(1, 1, 5, u=False)                            line: 582 Sub(R1, R1, word_counter)  # Compare.
                0x00448 EQ_imm(0x2)                                      line: 583 EQ_imm(_found)             # If this is the word...
                0x0044c Load_word(0, 0)                                  line: 589 Load_word(R0, R0)  # Load the address of the next link field into R0
                0x00450 NE_imm(0xfffffa)                                 line: 590 NE_imm(_FIND_1)  # Check the next word.
        _found: 0x00454 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x00458 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x0045c Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00460 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00464 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00468 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
    NUMBER_dfa: 0x0046c 0x00000418                                       line: 172     dw(LINK) -- (in def_)
                0x00470 0x4d554e06                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
        NUMBER: 0x00474 0x00000478                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00478 Mov_imm(6, 0x378, u=False, v=False)              line: 629 Mov_imm(word_pointer, WORD_BUFFER)
                0x0047c Load_byte(5, 6)                                  line: 630 Load_byte(word_counter, word_pointer)
                0x00480 Mov_imm(2, 0x0, u=False, v=False)                line: 631 Mov_imm(R2, 0)  # use R2 as the accumulator for the number's value
                0x00484 Add_imm(6, 6, 0x1, u=False, v=False)             line: 633 Add_imm(word_pointer, word_pointer, 1)  # Point to first char.
                0x00488 Load_byte(0, 6)                                  line: 634 Load_byte(R0, word_pointer)  # Load it.
                0x0048c Sub_imm(0, 0, 0x24, u=False, v=False)            line: 635 Sub_imm(R0, R0, ord('$'))  # Is it a '$'?
                0x00490 NE_imm(0xf)                                      line: 636 NE_imm(_NUM_fin)
                0x00494 Sub_imm(5, 5, 0x1, u=False, v=False)             line: 639 Sub_imm(word_counter, word_counter, 1)  # we have parsed one '$' char.
      _NUM_hex: 0x00498 Add_imm(6, 6, 0x1, u=False, v=False)             line: 642 Add_imm(word_pointer, word_pointer, 1)  # Point to next char.
                0x0049c Load_byte(0, 6)                                  line: 643 Load_byte(R0, word_pointer)  # Load it.
                0x004a0 Sub_imm(0, 0, 0x30, u=False, v=False)            line: 645 Sub_imm(R0, R0, ord('0'))
                0x004a4 LT_imm(0xa)                                      line: 646 LT_imm(_NUM_fin)  # Is its ASCII value lower than '0'?
                0x004a8 Sub_imm(1, 0, 0x9, u=False, v=False)             line: 648 Sub_imm(R1, R0, 9)  # Is it 0-9?
                0x004ac LE_imm(0x5)                                      line: 649 LE_imm(_NUM_add)  # It is!
                0x004b0 Sub_imm(0, 0, 0x31, u=False, v=False)            line: 655 Sub_imm(R0, R0, 49)  # so now '1'..'6' -> 0..5
                0x004b4 LT_imm(0x6)                                      line: 656 LT_imm(_NUM_fin)  # Its ASCII value is less than 'a', nope out.
                0x004b8 Sub_imm(1, 0, 0x5, u=False, v=False)             line: 659 Sub_imm(R1, R0, 5)  # Is it a-f?
                0x004bc GT_imm(0x4)                                      line: 660 GT_imm(_NUM_fin)  # nope, nope out
                0x004c0 Add_imm(0, 0, 0xa, u=False, v=False)             line: 662 Add_imm(R0, R0, 10)  # 0..5 -> 10..15
      _NUM_add: 0x004c4 Add(2, 2, 0, u=False)                            line: 665 Add( R2, R2, R0)  # Add it to the accumulator.
                0x004c8 Sub_imm(5, 5, 0x1, u=False, v=False)             line: 667 Sub_imm(word_counter, word_counter, 1)  # we have parsed a digit char.
                0x004cc NE_imm(0x8)                                      line: 668 NE_imm(_NUM_foo)  # More digits? Keep going.
      _NUM_fin: 0x004d0 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x004d4 Store_word(2, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x004d8 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x004dc Store_word(5, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x004e0 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x004e4 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x004e8 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x004ec T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
      _NUM_foo: 0x004f0 Lsl_imm(2, 2, 0x4, u=False, v=False)             line: 677 Lsl_imm(R2, R2, 4)  # accumulator *= 16
                0x004f4 T_imm(0xffffe8)                                  line: 678 T_imm(_NUM_hex)  # Go get the next digit.
    CREATE_dfa: 0x004f8 0x0000046c                                       line: 172     dw(LINK) -- (in def_)
                0x004fc 0x45524306                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
        CREATE: 0x00500 0x00000504                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00504 Mov_imm(0, 0x570, u=False, v=False)              line: 689 Mov_imm(R0, HERE__var)  # R0 <- &HERE
                0x00508 Load_word(0, 0)                                  line: 690 Load_word(R0, R0)       # R0 <- ram[HERE]
                0x0050c Mov_imm(1, 0x59c, u=False, v=False)              line: 692 Mov_imm(R1, LATEST_var)  # R1 <- &LATEST
                0x00510 Load_word(2, 1)                                  line: 693 Load_word(R2, R1)        # R2 <- ram[LATEST]
                0x00514 Store_word(2, 0)                                 line: 695 Store_word(R2, R0)  # value of LATEST -> ram[HERE]
                0x00518 Store_word(0, 1)                                 line: 696 Store_word(R0, R1)  # value of HERE (now LFA for new word) -> ram[LATEST]
                0x0051c Add_imm(0, 0, 0x4, u=False, v=False)             line: 698 Add_imm(R0, R0, 4)  # HERE += 4
                0x00520 Mov_imm(6, 0x378, u=False, v=False)              line: 701 Mov_imm(word_pointer, WORD_BUFFER)
                0x00524 Load_word(1, 6)                                  line: 711 Load_word(R1, word_pointer)  # Get the word from WORD_BUFFER.
                0x00528 Store_word(1, 0)                                 line: 712 Store_word(R1, R0)  # Store word to HERE.
                0x0052c Add_imm(0, 0, 0x4, u=False, v=False)             line: 713 Add_imm(R0, R0, 4)  # HERE += 4
                0x00530 Mov_imm(1, 0x570, u=False, v=False)              line: 724 Mov_imm(R1, HERE__var)  # R1 <- &HERE
                0x00534 Store_word(0, 1)                                 line: 725 Store_word(R0, R1)      # value of HERE -> ram[HERE]
                0x00538 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x0053c Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00540 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00544 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     HERE__dfa: 0x00548 0x000004f8                                       line: 172     dw(LINK) -- (in def_)
                0x0054c 0x52454804                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         HERE_: 0x00550 0x00000554                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00554 Mov_imm(0, 0x570, u=False, v=False)              line: 212     Mov_imm(R0, LABEL_var) -- (in defvar)
                0x00558 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x0055c Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x00560 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00564 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00568 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x0056c T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     HERE__var: 0x00570 0x00000a68                                       line: 219     dw(initial) -- (in defvar)
    LATEST_dfa: 0x00574 0x00000548                                       line: 172     dw(LINK) -- (in def_)
                0x00578 0x54414c06                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
        LATEST: 0x0057c 0x00000580                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00580 Mov_imm(0, 0x59c, u=False, v=False)              line: 212     Mov_imm(R0, LABEL_var) -- (in defvar)
                0x00584 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x00588 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x0058c Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00590 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00594 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00598 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
    LATEST_var: 0x0059c 0x00000a34                                       line: 219     dw(initial) -- (in defvar)
     STATE_dfa: 0x005a0 0x00000574                                       line: 172     dw(LINK) -- (in def_)
                0x005a4 0x41545305                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         STATE: 0x005a8 0x000005ac                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x005ac Mov_imm(0, 0x5c8, u=False, v=False)              line: 212     Mov_imm(R0, LABEL_var) -- (in defvar)
                0x005b0 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x005b4 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x005b8 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x005bc Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x005c0 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x005c4 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     STATE_var: 0x005c8 0x00000000                                       line: 219     dw(initial) -- (in defvar)
   __DOCOL_dfa: 0x005cc 0x000005a0                                       line: 172     dw(LINK) -- (in def_)
                0x005d0 0x434f4405                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
       __DOCOL: 0x005d4 0x000005d8                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x005d8 Mov_imm(0, 0x0, u=True, v=False)                 line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x005dc Ior_imm(0, 0, 0x28, u=False, v=False)            line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x005e0 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x005e4 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x005e8 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x005ec Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x005f0 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x005f4 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     COMMA_dfa: 0x005f8 0x000005cc                                       line: 172     dw(LINK) -- (in def_)
                0x005fc 0x00002c01                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         COMMA: 0x00600 0x00000604                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00604 Load_word(2, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x00608 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x0060c Mov_imm(1, 0x624, u=False, v=False)              line: 752 Mov_imm(R1, _COMMA)
                0x00610 T_link(1)                                        line: 753 T_link(R1)
                0x00614 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00618 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x0061c Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00620 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
        _COMMA: 0x00624 Mov_imm(0, 0x570, u=False, v=False)              line: 762 Mov_imm(R0, HERE__var)  # R0 <- HERE__var
                0x00628 Load_word(1, 0)                                  line: 763 Load_word(R1, R0)       # HERE <- ram[HERE__var]
                0x0062c Store_word(2, 1)                                 line: 764 Store_word(R2, R1)      # R2 -> ram[HERE]
                0x00630 Add_imm(1, 1, 0x4, u=False, v=False)             line: 765 Add_imm(R1, R1, 4)      # HERE += 4
                0x00634 Store_word(1, 0)                                 line: 766 Store_word(R1, R0)      # HERE -> ram[HERE__var]
                0x00638 T(15)                                            line: 767 T(15)  # return
     LBRAC_dfa: 0x0063c 0x000005f8                                       line: 172     dw(LINK) -- (in def_)
                0x00640 0x00005b81                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         LBRAC: 0x00644 0x00000648                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00648 Mov_imm(0, 0x5c8, u=False, v=False)              line: 781 Mov_imm(R0, STATE_var)
                0x0064c Mov_imm(1, 0x0, u=False, v=False)                line: 782 Mov_imm(R1, 0)
                0x00650 Store_word(1, 0)                                 line: 783 Store_word(R1, R0)
                0x00654 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00658 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x0065c Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00660 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     RBRAC_dfa: 0x00664 0x0000063c                                       line: 172     dw(LINK) -- (in def_)
                0x00668 0x00005d01                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         RBRAC: 0x0066c 0x00000670                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00670 Mov_imm(0, 0x5c8, u=False, v=False)              line: 787 Mov_imm(R0, STATE_var)
                0x00674 Mov_imm(1, 0x1, u=False, v=False)                line: 788 Mov_imm(R1, 1)
                0x00678 Store_word(1, 0)                                 line: 789 Store_word(R1, R0)
                0x0067c Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00680 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00684 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00688 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     COLON_dfa: 0x0068c 0x00000664                                       line: 172     dw(LINK) -- (in def_)
                0x00690 0x00003a01                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         COLON: 0x00694 0x00000028                                       line: 194     dw(DOCOL)  # codeword points to DOCOL colon word mini-interpreter. -- (in defword)
                0x00698 0x000003a0                                       line: 812 dw(WORD)  # "Get the name of the new word"
                0x0069c 0x00000500                                       line: 813 dw(CREATE)  # "CREATE the dictionary entry / header"
                0x006a0 0x000000c8                                       line: 814 dw(LIT)  # "Append DOCOL  (the codeword)."
                0x006a4 0x00000028                                       line: 815 dw(DOCOL)
                0x006a8 0x00000600                                       line: 816 dw(COMMA)
                0x006ac 0x0000057c                                       line: 817 dw(LATEST)  # "Make the word hidden (see below for definition)."
                0x006b0 0x000007dc                                       line: 818 dw(FETCH)
                0x006b4 0x00000728                                       line: 819 dw(HIDDEN)
                0x006b8 0x0000066c                                       line: 820 dw(RBRAC)  # "Go into compile mode."
                0x006bc 0x000000a4                                       line: 821 dw(EXIT)  # "Return from the function."
 SEMICOLON_dfa: 0x006c0 0x0000068c                                       line: 172     dw(LINK) -- (in def_)
                0x006c4 0x00003b81                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
     SEMICOLON: 0x006c8 0x00000028                                       line: 194     dw(DOCOL)  # codeword points to DOCOL colon word mini-interpreter. -- (in defword)
                0x006cc 0x000000c8                                       line: 830 dw(LIT)  # "Append EXIT (so the word will return)."
                0x006d0 0x000000a4                                       line: 831 dw(EXIT)
                0x006d4 0x00000600                                       line: 832 dw(COMMA)
                0x006d8 0x0000057c                                       line: 833 dw(LATEST)  # "Toggle hidden flag -- unhide the word (see below for definition)."
                0x006dc 0x000007dc                                       line: 834 dw(FETCH)
                0x006e0 0x00000728                                       line: 835 dw(HIDDEN)
                0x006e4 0x00000644                                       line: 836 dw(LBRAC)  # "Go back to IMMEDIATE mode."
                0x006e8 0x000000a4                                       line: 837 dw(EXIT)  # "Return from the function."
 IMMEDIATE_dfa: 0x006ec 0x000006c0                                       line: 172     dw(LINK) -- (in def_)
                0x006f0 0x4d4d4989                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
     IMMEDIATE: 0x006f4 0x000006f8                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x006f8 Mov_imm(0, 0x59c, u=False, v=False)              line: 846 Mov_imm(R0, LATEST_var)  # R0 <- &LATEST
                0x006fc Load_word(1, 0)                                  line: 847 Load_word(R1, R0)        # R1 <- ram[LATEST]
                0x00700 Add_imm(1, 1, 0x4, u=False, v=False)             line: 848 Add_imm(R1, R1, 4)       # "Point to name/flags byte."
                0x00704 Load_word(0, 1)                                  line: 849 Load_word(R0, R1)
                0x00708 Xor_imm(0, 0, 0x80, u=False, v=False)            line: 850 Xor_imm(R0, R0, F_IMMED) # Toggle IMMEDIATE bit.
                0x0070c Store_word(0, 1)                                 line: 851 Store_word(R0, R1)
                0x00710 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00714 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00718 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x0071c T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
    HIDDEN_dfa: 0x00720 0x000006ec                                       line: 172     dw(LINK) -- (in def_)
                0x00724 0x44494806                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
        HIDDEN: 0x00728 0x0000072c                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x0072c Load_word(1, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x00730 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x00734 Add_imm(1, 1, 0x4, u=False, v=False)             line: 862 Add_imm(R1, R1, 4)  # "Point to name/flags byte."
                0x00738 Load_word(0, 1)                                  line: 863 Load_word(R0, R1)
                0x0073c Xor_imm(0, 0, 0x20, u=False, v=False)            line: 864 Xor_imm(R0, R0, F_HIDDEN)  # "Toggle the HIDDEN bit."
                0x00740 Store_word(0, 1)                                 line: 865 Store_word(R0, R1)
                0x00744 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00748 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x0074c Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00750 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
      TICK_dfa: 0x00754 0x00000720                                       line: 172     dw(LINK) -- (in def_)
                0x00758 0x00002701                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
          TICK: 0x0075c 0x00000760                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00760 Load_word(0, 14)                                 line: 884 Load_word(R0, IP)   # Get the address of the next codeword.
                0x00764 Add_imm(14, 14, 0x4, u=False, v=False)           line: 885 Add_imm(IP, IP, 4)  # Skip it.
                0x00768 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x0076c Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x00770 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00774 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00778 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x0077c T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
    BRANCH_dfa: 0x00780 0x00000754                                       line: 172     dw(LINK) -- (in def_)
                0x00784 0x41524206                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
        BRANCH: 0x00788 0x0000078c                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x0078c Load_word(0, 14)                                 line: 896 Load_word(R0, IP)  # Get the offset.
                0x00790 Add(14, 14, 0, u=False)                          line: 898 Add(IP, IP, R0)    # IP += offset
                0x00794 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00798 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x0079c Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x007a0 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
   ZBRANCH_dfa: 0x007a4 0x00000780                                       line: 172     dw(LINK) -- (in def_)
                0x007a8 0x52423007                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
       ZBRANCH: 0x007ac 0x000007b0                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x007b0 Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x007b4 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x007b8 Add_imm(0, 0, 0x0, u=False, v=False)             line: 909 Add_imm(R0, R0, 0)  # Set condition flags.
                0x007bc EQ_imm(0xfffff3)                                 line: 910 EQ_imm(BRANCH + 4)  # Zero? Delegate to BRANCH.
                0x007c0 Add_imm(14, 14, 0x4, u=False, v=False)           line: 911 Add_imm(IP, IP, 4)  # Non-zero? Skip offset.
                0x007c4 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x007c8 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x007cc Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x007d0 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     FETCH_dfa: 0x007d4 0x000007a4                                       line: 172     dw(LINK) -- (in def_)
                0x007d8 0x00004001                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         FETCH: 0x007dc 0x000007e0                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x007e0 Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x007e4 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x007e8 Load_word(0, 0)                                  line: 922 Load_word(R0, R0)
                0x007ec Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x007f0 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x007f4 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x007f8 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x007fc Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00800 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
     STORE_dfa: 0x00804 0x000007d4                                       line: 172     dw(LINK) -- (in def_)
                0x00808 0x00002101                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
         STORE: 0x0080c 0x00000810                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00810 Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x00814 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x00818 Load_word(1, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x0081c Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x00820 Store_word(1, 0)                                 line: 935 Store_word(R1, R0)
                0x00824 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00828 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x0082c Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00830 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
 IS_NUMBER_dfa: 0x00834 0x00000804                                       line: 172     dw(LINK) -- (in def_)
                0x00838 0x003f2302                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
     IS_NUMBER: 0x0083c 0x00000840                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00840 Mov_imm(6, 0x378, u=False, v=False)              line: 951 Mov_imm(word_pointer, WORD_BUFFER)
                0x00844 Load_byte(0, 6, offset=0x1)                      line: 952 Load_byte(R0, word_pointer, 1)  # Load first char of word.
                0x00848 Sub_imm(0, 0, 0x24, u=False, v=False)            line: 953 Sub_imm(R0, R0, ord('$'))  # Is it a '$'?
                0x0084c Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x00850 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x00854 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00858 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x0085c Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00860 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
 INTERPRET_dfa: 0x00864 0x00000834                                       line: 172     dw(LINK) -- (in def_)
                0x00868 0x544e4909                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
     INTERPRET: 0x0086c 0x00000028                                       line: 194     dw(DOCOL)  # codeword points to DOCOL colon word mini-interpreter. -- (in defword)
                0x00870 0x000003a0                                       line: 964 dw(WORD)
                0x00874 0x0000083c                                       line: 965 dw(IS_NUMBER)
                0x00878 0x000007ac                                       line: 966 dw(ZBRANCH)
                0x0087c 0x0000001c                                       line: 967 dw(s_to_u_32(4 * 7))  # It could be a number...
                0x00880 0x00000420                                       line: 970 dw(FIND)
                0x00884 0x00000a3c                                       line: 971 dw(DUP)
                0x00888 0x000007ac                                       line: 972 dw(ZBRANCH)  # Zero means it wasn't in the dictionary,
                0x0088c 0x0000001c                                       line: 973 dw(s_to_u_32(4 * 7))
                0x00890 0x000008dc                                       line: 976 dw(_INTERP)
                0x00894 0x000000a4                                       line: 977 dw(EXIT)
                0x00898 0x00000474                                       line: 980 dw(NUMBER)
                0x0089c 0x00000a3c                                       line: 981 dw(DUP)
                0x008a0 0x000007ac                                       line: 982 dw(ZBRANCH)  # No chars left?  It is a number!
                0x008a4 0x00000008                                       line: 983 dw(s_to_u_32(4 * 2))
                0x008a8 0x000000a4                                       line: 987 dw(EXIT)
                0x008ac 0x00000084                                       line: 990 dw(DROP)
                0x008b0 0x000005a8                                       line: 994 dw(STATE)
                0x008b4 0x000007dc                                       line: 995 dw(FETCH)
                0x008b8 0x000007ac                                       line: 996 dw(ZBRANCH)  #  STATE = 0 -> interpreting.
                0x008bc 0x00000014                                       line: 998 dw(s_to_u_32(4 * 5))  # to EXIT
                0x008c0 0x000000c8                                       line: 1001 dw(LIT)
                0x008c4 0x000000c8                                       line: 1002 dw(LIT)
                0x008c8 0x000000c8                                       line: 1003 dw(LIT)
                0x008cc 0x00000604                                       line: 1004 dw(COMMA)  # write the address of the codeword of LIT
                0x008d0 0x00000604                                       line: 1005 dw(COMMA)  # then the value itself.
                0x008d4 0x000000a4                                       line: 1007 dw(EXIT)
   _INTERP_dfa: 0x008d8 0x00000868                                       line: 172     dw(LINK) -- (in def_)
                0x008dc 0x4e495f27                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
       _INTERP: 0x008e0 0x000008e4                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x008e4 Load_word(2, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x008e8 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x008ec Mov_imm(0, 0x5cc, u=False, v=False)              line: 1020 Mov_imm(R0, STATE_var)  # R0 <- &STATE
                0x008f0 Load_word(0, 0)                                  line: 1021 Load_word(R0, R0)  # R0 <- ram[STATE]
                0x008f4 EQ_imm(0xa)                                      line: 1022 EQ_imm(_intrp_exe)  # STATE = 0 -> interpreting.
                0x008f8 Load_word(0, 2, offset=0x4)                      line: 1023 Load_word(R0, R2, 4)  # R0 <- Name field
                0x008fc And_imm(0, 0, 0x80, u=False, v=False)            line: 1024 And_imm(R0, R0, F_IMMED)
                0x00900 NE_imm(0x7)                                      line: 1025 NE_imm(_intrp_exe)  # word is IMMEDIATE.
                0x00904 Add_imm(2, 2, 0x8, u=False, v=False)             line: 1028 Add_imm(R2, R2, 8)  # Point from LFA to codeword.
                0x00908 Mov_imm(1, 0x628, u=False, v=False)              line: 1029 Mov_imm(R1, _COMMA)  # Call comma to store it and increment HERE.
                0x0090c T_link(1)                                        line: 1030 T_link(R1)
                0x00910 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00914 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00918 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x0091c T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
    _intrp_exe: 0x00920 Add_imm(2, 2, 0x8, u=False, v=False)             line: 1034 Add_imm(R2, R2, 8)  # Point to the codeword
                0x00924 Load_word(0, 2)                                  line: 1035 Load_word(R0, R2)  # Get the address to which its codeword points...
                0x00928 Mov(3, 2, u=False)                               line: 1036 Mov(next_function, R2)  # DOCOL depends on this.
                0x0092c T(0)                                             line: 1037 T(R0)  # and jump to it.
       PAI_dfa: 0x00930 0x000008d8                                       line: 172     dw(LINK) -- (in def_)
                0x00934 0x69617003                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
           PAI: 0x00938 0x0000093c                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x0093c Mov_imm(0, 0xe, u=True, v=False)                 line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x00940 Ior_imm(0, 0, 0x7f00, u=False, v=False)          line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x00944 Mov_imm(1, 0x1, u=True, v=False)                 line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x00948 Ior_imm(1, 1, 0x8000, u=False, v=False)          line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x0094c Mov_imm(8, 0xffff, u=True, v=False)              line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x00950 Ior_imm(8, 8, 0xffff, u=False, v=False)          line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x00954 Add(1, 1, 0, u=False)                            line: 1063 Add(R1, R1, R0)
                0x00958 Sub_imm(0, 0, 0x4e0, u=False, v=False)           line: 1064 Sub_imm(R0, R0, 312 * 4)  # 312 words in font data.
                0x0095c Mov_imm(2, 0x138, u=False, v=False)              line: 1065 Mov_imm(R2, 13 * 24)
     _pai_loop: 0x00960 Load_word(7, 0)                                  line: 1068 Load_word(R7, R0)
                0x00964 Xor(7, 7, 8, u=False)                            line: 1069 Xor(R7, R7, R8)  #  Reverse video.
                0x00968 Store_word(7, 1)                                 line: 1070 Store_word(R7, R1)
                0x0096c Add_imm(0, 0, 0x4, u=False, v=False)             line: 1071 Add_imm(R0, R0, 4)
                0x00970 Sub_imm(1, 1, 0x80, u=False, v=False)            line: 1072 Sub_imm(R1, R1, 128)
                0x00974 Sub_imm(2, 2, 0x1, u=False, v=False)             line: 1073 Sub_imm(R2, R2, 1)
                0x00978 NE_imm(0xfffff9)                                 line: 1074 NE_imm(_pai_loop)
                0x0097c Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00980 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00984 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00988 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
PAINT_CHAR_dfa: 0x0098c 0x00000930                                       line: 172     dw(LINK) -- (in def_)
                0x00990 0x6961700a                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
    PAINT_CHAR: 0x00994 0x00000998                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00998 Mov_imm(0, 0xe, u=True, v=False)                 line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x0099c Ior_imm(0, 0, 0x7a20, u=False, v=False)          line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x009a0 Load_word(1, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x009a4 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x009a8 Sub_imm(1, 1, 0x21, u=False, v=False)            line: 1106 Sub_imm(R1, R1, ord('!'))  # R1 counts byte offset of char.
                0x009ac Asr_imm(2, 1, 0x2, u=False, v=False)             line: 1108 Asr_imm(R2, R1, 2)     # R2 = R1 / 4  Trim the two least bits.
                0x009b0 Mul_imm(2, 2, 0x34, u=False, v=False)            line: 1109 Mul_imm(R2, R2, 52)    # R2 *= 13 words/char * 4 bytes/word.
                0x009b4 Add(0, 0, 2, u=False)                            line: 1110 Add(R0, R0, R2)        # Point R0 to char's first word in font.
                0x009b8 And_imm(1, 1, 0x3, u=False, v=False)             line: 1111 And_imm(R1, R1, 0b11)  # Which byte in the word?
                0x009bc Add(0, 0, 1, u=False)                            line: 1112 Add(R0, R0, R1)        # Point R0 to char's first byte in font.
                0x009c0 Load_word(1, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x009c4 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x009c8 Mov_imm(2, 0xe, u=True, v=False)                 line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x009cc Ior_imm(2, 2, 0x7f00, u=False, v=False)          line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x009d0 Add(1, 1, 2, u=False)                            line: 1116 Add(R1, R1, R2)     # R1 = x + DISPLAY_START
                0x009d4 Mov_imm(7, 0x2ff, u=False, v=False)              line: 1117 Mov_imm(R7, 767)    # Display width - 1 in pixels. (TODO don't hardcod3 this.)
                0x009d8 Load_word(2, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x009dc Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x009e0 Mul_imm(2, 2, 0xd, u=False, v=False)             line: 1119 Mul_imm(R2, R2, 13) # R2 = y in px  (13px/char height)
                0x009e4 Sub(2, 7, 2, u=False)                            line: 1120 Sub(R2, R7, R2)     # R2 = 768 - 1 - y
                0x009e8 Lsl_imm(2, 2, 0x7, u=False, v=False)             line: 1121 Lsl_imm(R2, R2, 7)  # R2 = (768 - 1 - y) * 128 bytes per line.
                0x009ec Add(1, 1, 2, u=False)                            line: 1122 Add(R1, R1, R2)     # R1 = (768 - 1 - y) * 128 + x + DISPLAY_START
                0x009f0 Mov_imm(2, 0xd, u=False, v=False)                line: 1128 Mov_imm(R2, 13)  # Counter
    _pchr_loop: 0x009f4 Load_byte(7, 0)                                  line: 1131 Load_byte(R7, R0)
                0x009f8 Store_byte(7, 1)                                 line: 1133 Store_byte(R7, R1)
                0x009fc Add_imm(0, 0, 0x4, u=False, v=False)             line: 1134 Add_imm(R0, R0, 4)
                0x00a00 Sub_imm(1, 1, 0x80, u=False, v=False)            line: 1135 Sub_imm(R1, R1, 128)
                0x00a04 Sub_imm(2, 2, 0x1, u=False, v=False)             line: 1136 Sub_imm(R2, R2, 1)
                0x00a08 NE_imm(0xfffffa)                                 line: 1137 NE_imm(_pchr_loop)
                0x00a0c Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00a10 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00a14 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00a18 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
       DUP_dfa: 0x00a1c 0x0000098c                                       line: 172     dw(LINK) -- (in def_)
                0x00a20 0x50554403                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
           DUP: 0x00a24 0x00000a28                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00a28 Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x00a2c Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x00a30 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x00a34 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x00a38 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x00a3c Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x00a40 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00a44 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00a48 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00a4c T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
                0x008c8 0x00000600                                       line: 1003 dw(COMMA)  # write the address of the codeword of LIT
                0x008cc 0x00000600                                       line: 1004 dw(COMMA)  # then the value itself.
                0x008d0 0x000000a4                                       line: 1006 dw(EXIT)
   _INTERP_dfa: 0x008d4 0x00000864                                       line: 172     dw(LINK) -- (in def_)
                0x008d8 0x4e495f27                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
       _INTERP: 0x008dc 0x000008e0                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x008e0 Load_word(2, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x008e4 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x008e8 Mov_imm(0, 0x5c8, u=False, v=False)              line: 1019 Mov_imm(R0, STATE_var)  # R0 <- &STATE
                0x008ec Load_word(0, 0)                                  line: 1020 Load_word(R0, R0)  # R0 <- ram[STATE]
                0x008f0 EQ_imm(0xa)                                      line: 1021 EQ_imm(_intrp_exe)  # STATE = 0 -> interpreting.
                0x008f4 Load_word(0, 2, offset=0x4)                      line: 1022 Load_word(R0, R2, 4)  # R0 <- Name field
                0x008f8 And_imm(0, 0, 0x80, u=False, v=False)            line: 1023 And_imm(R0, R0, F_IMMED)
                0x008fc NE_imm(0x7)                                      line: 1024 NE_imm(_intrp_exe)  # word is IMMEDIATE.
                0x00900 Add_imm(2, 2, 0x8, u=False, v=False)             line: 1027 Add_imm(R2, R2, 8)  # Point from LFA to codeword.
                0x00904 Mov_imm(1, 0x624, u=False, v=False)              line: 1028 Mov_imm(R1, _COMMA)  # Call comma to store it and increment HERE.
                0x00908 T_link(1)                                        line: 1029 T_link(R1)
                0x0090c Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00910 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00914 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00918 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
    _intrp_exe: 0x0091c Add_imm(2, 2, 0x8, u=False, v=False)             line: 1033 Add_imm(R2, R2, 8)  # Point to the codeword
                0x00920 Load_word(0, 2)                                  line: 1034 Load_word(R0, R2)  # Get the address to which its codeword points...
                0x00924 Mov(3, 2, u=False)                               line: 1035 Mov(next_function, R2)  # DOCOL depends on this.
                0x00928 T(0)                                             line: 1036 T(R0)  # and jump to it.
       PAI_dfa: 0x0092c 0x000008d4                                       line: 172     dw(LINK) -- (in def_)
                0x00930 0x69617003                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
           PAI: 0x00934 0x00000938                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00938 Mov_imm(0, 0xe, u=True, v=False)                 line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x0093c Ior_imm(0, 0, 0x7f00, u=False, v=False)          line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x00940 Mov_imm(1, 0x1, u=True, v=False)                 line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x00944 Ior_imm(1, 1, 0x8000, u=False, v=False)          line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x00948 Mov_imm(8, 0xffff, u=True, v=False)              line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x0094c Ior_imm(8, 8, 0xffff, u=False, v=False)          line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x00950 Add(1, 1, 0, u=False)                            line: 1062 Add(R1, R1, R0)
                0x00954 Sub_imm(0, 0, 0x4e0, u=False, v=False)           line: 1063 Sub_imm(R0, R0, 312 * 4)  # 312 words in font data.
                0x00958 Mov_imm(2, 0x138, u=False, v=False)              line: 1064 Mov_imm(R2, 13 * 24)
     _pai_loop: 0x0095c Load_word(7, 0)                                  line: 1067 Load_word(R7, R0)
                0x00960 Xor(7, 7, 8, u=False)                            line: 1068 Xor(R7, R7, R8)  #  Reverse video.
                0x00964 Store_word(7, 1)                                 line: 1069 Store_word(R7, R1)
                0x00968 Add_imm(0, 0, 0x4, u=False, v=False)             line: 1070 Add_imm(R0, R0, 4)
                0x0096c Sub_imm(1, 1, 0x80, u=False, v=False)            line: 1071 Sub_imm(R1, R1, 128)
                0x00970 Sub_imm(2, 2, 0x1, u=False, v=False)             line: 1072 Sub_imm(R2, R2, 1)
                0x00974 NE_imm(0xfffff9)                                 line: 1073 NE_imm(_pai_loop)
                0x00978 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x0097c Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00980 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00984 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
PAINT_CHAR_dfa: 0x00988 0x0000092c                                       line: 172     dw(LINK) -- (in def_)
                0x0098c 0x6961700a                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
    PAINT_CHAR: 0x00990 0x00000994                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00994 Mov_imm(0, 0xe, u=True, v=False)                 line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x00998 Ior_imm(0, 0, 0x7a20, u=False, v=False)          line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x0099c Load_word(1, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x009a0 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x009a4 Sub_imm(1, 1, 0x21, u=False, v=False)            line: 1105 Sub_imm(R1, R1, ord('!'))  # R1 counts byte offset of char.
                0x009a8 Asr_imm(2, 1, 0x2, u=False, v=False)             line: 1107 Asr_imm(R2, R1, 2)     # R2 = R1 / 4  Trim the two least bits.
                0x009ac Mul_imm(2, 2, 0x34, u=False, v=False)            line: 1108 Mul_imm(R2, R2, 52)    # R2 *= 13 words/char * 4 bytes/word.
                0x009b0 Add(0, 0, 2, u=False)                            line: 1109 Add(R0, R0, R2)        # Point R0 to char's first word in font.
                0x009b4 And_imm(1, 1, 0x3, u=False, v=False)             line: 1110 And_imm(R1, R1, 0b11)  # Which byte in the word?
                0x009b8 Add(0, 0, 1, u=False)                            line: 1111 Add(R0, R0, R1)        # Point R0 to char's first byte in font.
                0x009bc Load_word(1, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x009c0 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x009c4 Mov_imm(2, 0xe, u=True, v=False)                 line: 229     Mov_imm(reg, HIGH(word), u=1) -- (in move_immediate_word_to_register)
                0x009c8 Ior_imm(2, 2, 0x7f00, u=False, v=False)          line: 230     Ior_imm(reg, reg, LOW(word)) -- (in move_immediate_word_to_register)
                0x009cc Add(1, 1, 2, u=False)                            line: 1115 Add(R1, R1, R2)     # R1 = x + DISPLAY_START
                0x009d0 Mov_imm(7, 0x2ff, u=False, v=False)              line: 1116 Mov_imm(R7, 767)    # Display width - 1 in pixels. (TODO don't hardcod3 this.)
                0x009d4 Load_word(2, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x009d8 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x009dc Mul_imm(2, 2, 0xd, u=False, v=False)             line: 1118 Mul_imm(R2, R2, 13) # R2 = y in px  (13px/char height)
                0x009e0 Sub(2, 7, 2, u=False)                            line: 1119 Sub(R2, R7, R2)     # R2 = 768 - 1 - y
                0x009e4 Lsl_imm(2, 2, 0x7, u=False, v=False)             line: 1120 Lsl_imm(R2, R2, 7)  # R2 = (768 - 1 - y) * 128 bytes per line.
                0x009e8 Add(1, 1, 2, u=False)                            line: 1121 Add(R1, R1, R2)     # R1 = (768 - 1 - y) * 128 + x + DISPLAY_START
                0x009ec Mov_imm(2, 0xd, u=False, v=False)                line: 1127 Mov_imm(R2, 13)  # Counter
    _pchr_loop: 0x009f0 Load_byte(7, 0)                                  line: 1130 Load_byte(R7, R0)
                0x009f4 Store_byte(7, 1)                                 line: 1132 Store_byte(R7, R1)
                0x009f8 Add_imm(0, 0, 0x4, u=False, v=False)             line: 1133 Add_imm(R0, R0, 4)
                0x009fc Sub_imm(1, 1, 0x80, u=False, v=False)            line: 1134 Sub_imm(R1, R1, 128)
                0x00a00 Sub_imm(2, 2, 0x1, u=False, v=False)             line: 1135 Sub_imm(R2, R2, 1)
                0x00a04 NE_imm(0xfffffa)                                 line: 1136 NE_imm(_pchr_loop)
                0x00a08 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00a0c Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00a10 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00a14 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
      TRAP_dfa: 0x00a18 0x00000988                                       line: 172     dw(LINK) -- (in def_)
                0x00a1c 0x41525404                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
          TRAP: 0x00a20 0x00000a24                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00a24 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00a28 Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00a2c Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00a30 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)
       DUP_dfa: 0x00a34 0x00000a18                                       line: 172     dw(LINK) -- (in def_)
                0x00a38 0x50554403                                       line: 181         dw((a<<24) + (b<<16) + (c<<8) + d) -- (in def_)
           DUP: 0x00a3c 0x00000a40                                       line: 202     dw(HERE() + 4)  # codeword points to ASM immediately following. -- (in defcode)
                0x00a40 Load_word(0, 10)                                 line: 158     Load_word(reg, Dstack)      # reg <- RAM[Dstack] -- (in POP)
                0x00a44 Add_imm(10, 10, 0x4, u=False, v=False)           line: 159     Add_imm(Dstack, Dstack, 4)  # Dstack += 4 -- (in POP)
                0x00a48 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x00a4c Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x00a50 Sub_imm(10, 10, 0x4, u=False, v=False)           line: 152     Sub_imm(Dstack, Dstack, 4)  # Dstack -= 4 -- (in PUSH)
                0x00a54 Store_word(0, 10)                                line: 153     Store_word(reg, Dstack)     # reg -> RAM[Dstack] -- (in PUSH)
                0x00a58 Load_word(3, 14)                                 line: 132     Load_word(next_function, IP)        # next_function <- RAM[IP] -- (in NEXT)
                0x00a5c Load_word(4, 3)                                  line: 133     Load_word(codeword, next_function)  # codeword <- RAM[next_function] -- (in NEXT)
                0x00a60 Add_imm(14, 14, 0x4, u=False, v=False)           line: 134     Add_imm(IP, IP, 4)                  # IP += 4 -- (in NEXT)
                0x00a64 T(4)                                             line: 135     T(codeword)                         # PC <- RAM[codeword] -- (in NEXT)

M forth/breaks.txt => forth/breaks.txt +3 -1
@@ 1,3 1,5 @@
PC == 0x0
PC == (0x00934 >> 2) # end of pai.
PC == MUL + 1
\ No newline at end of file
PC == TRAP + 1
PC == _found
PC == (0x0040c >> 2) # in word

M forth/oberonforth.bin => forth/oberonforth.bin +0 -0
M forth/oberonforth.oberonforth => forth/oberonforth.oberonforth +105 -0
@@ 30,6 30,7 @@
	DROP     \ Drop the (zero'd) counter.
;


( I can haz (nested) parentheses comments! )

$2 Hi


@@ 47,6 48,103 @@ $e7f00 CONSTANT DISPLAY_START
$18000 CONSTANT DISPLAY_LENGTH  ( 1024 * 768 / 8 = 98304 )


( Let's implement a Joy-in-Forth

We're going to use the format specified in the book:
https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-33.html#%_sec_5.3.1

So we have a "vector" of heads and another "vector" of tails, which
contain tagged pointers.  For now I think we want:

- Numbers, both inline and indirect
- List cells
  - "the empty list is denoted by the pointer e0"
- Symbols or Codewords
- ?

The first two decisions are where to put the lists and how long to make
them.  We have plenty of room, and the data and return stacks can be
moved, so let's just use ALLOT.  I think to start out 1024 cells should
be fine.
)

$400 CELLS DUP
ALLOT CONSTANT HEADS
ALLOT CONSTANT TAILS

( From the book: "We presume that there is a special register,
free, that always holds a pair pointer containing the next available
index, and that we can increment the index part of that pointer to find
the next free location." )

VARIABLE free

$0 free !  \ Set the free pointer.

( For tagged pointers I'm going to try putting the tag in the upper, say,
four bits, and let the rest be the offset or numeric value or whatever.
For list cells let the four bits be all zeros.  See how that works out.

So how do we create these things?  Normally there would be a text-to-Joy
function but here there isn't enough infrastructure to do that yet.

We can put a new, empty list onto the Forth stack by simply pushing zero.
)

$0

( Now how would we put a number onto that Joy stack from Forth?  First,
convert the number to a Joy stack tagged pointer.  Let the MSB indicate
that a value is a number.  So negtive numbers are already fine, and we
just have to set the MSB of positive numbers, eh?
)

: nf2j DUP $0 >= IF $80000000 + THEN ;  / number Forth to Joy

( So now we have a pointer to a cons cell and a number "pointer" on the
stack, How to cons them together?

    : CONS ( tail head -- list ) 
        / we are going to want to do 
           head HEADS free @ + !
           tail TAILS free @ + !
           free @  / Keep the result list on the stack.
           free $4 +!
    ;

While it would be neat to figure out a way to do all this and only fetch
free once, it's easier to do this:
)


: f@+! free @ + ! ;  / Add free pointer to vector and store a value there.
: f@4! free @ free $4 +! ;  / Leave new list on stack, point to next free cell.

: CONS HEADS f@+! TAILS f@+! f@4! ;

TRAP

( Eh?  And I bet there's a nice way to write f@4! too.
Naming sucks (for me) but I feel this is a "Forthic"? "Forthionic"? way
to do things.

This is inefficient, but we will figure out ways to more easily specify
more efficient forms as we get into Joy and higher order combinators.

So:

    $0 $123 nf2j CONS

Should create a cons cell in the vectors and leave its pointer on the
stack, eh?  You could then do:

    $1 nf2j CONS $2 nf2j CONS $3 nf2j CONS

To add three more numbers to the Joy stack.

)


pai




@@ 60,3 158,10 @@ pai











M forth/oberonforth.py => forth/oberonforth.py +6 -1
@@ 367,7 367,6 @@ Sub(R1, R1, R0)
Mov(R0, 0, u=True, v=True)  # Get flags, c register is ignored.
Asr_imm(R0, R0, 30)  # Z is the 31st bit, penultimate from the MSB.
And_imm(R0, R0, 1)  # Mask out N flag.
Xor_imm(R0, R0, 1)  # flip the (shifted) Z bit.
PUSH(R0)
NEXT()



@@ 1138,6 1137,12 @@ NE_imm(_pchr_loop)
NEXT()


defcode(b'TRAP', TRAP)
NEXT()




# Rather than continue updating (or forgetting to update) LATEST
# just put DUP at the end.


M forth/oberonforth.symbols => forth/oberonforth.symbols +0 -0