~sforman/PythonOberon

0644f4d9acaf85d27b0b500811f19bf68140603c — sforman 3 months ago b0d6127 master
POKE
M forth/assembler.output.txt => forth/assembler.output.txt +505 -513
@@ 1,4 1,4 @@
                0x00000 T_imm(0x11)                                      line: 276 T_imm(main)
                0x00000 T_imm(0x11)                                      line: 283 T_imm(main)
     _reserved: 0x00004 0x00000000
                0x00008 0x00000000
                0x0000c 0x00000000


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

M forth/oberonforth.0.bin => forth/oberonforth.0.bin +0 -0
M forth/oberonforth.bin => forth/oberonforth.bin +0 -0
M forth/oberonforth.py => forth/oberonforth.py +18 -11
@@ 161,9 161,16 @@ def POP(reg):
    Add_imm(Dstack, Dstack, 4)  # Dstack += 4


def POKE(reg):
    '''
    Store reg to top of stack without changing stack pointer.
    '''
    Store_word(reg, Dstack)     # reg -> RAM[Dstack]


def PEEK(reg):
    '''
    Copy top of stack to register without changing stack.
    Load top of stack to register without changing stack pointer.
    '''
    Load_word(reg, Dstack)      # reg <- RAM[Dstack]



@@ 362,17 369,17 @@ NEXT()

defcode(b'-', SUB)
POP(R0)
POP(R1)
PEEK(R1)
Sub(R1, R1, R0)
PUSH(R1)
POKE(R1)
NEXT()


defcode(b'*', MUL)
POP(R0)
POP(R1)
PEEK(R1)
Mul(R1, R1, R0)
PUSH(R1)
POKE(R1)
NEXT()




@@ 402,16 409,16 @@ NEXT()


defcode(b'1+', INCR)
POP(R0)
PEEK(R0)
Add_imm(R0, R0, 1)
PUSH(R0)
POKE(R0)
NEXT()


defcode(b'1-', DECR)
POP(R0)
PEEK(R0)
Sub_imm(R0, R0, 1)
PUSH(R0)
POKE(R0)
NEXT()




@@ 934,9 941,9 @@ NEXT()
## |_| |___| |_| \___|_||_|

defcode(b'@', FETCH)
POP(R0)
PEEK(R0)
Load_word(R0, R0)
PUSH(R0)
POKE(R0)
NEXT()



M forth/oberonforth.symbols => forth/oberonforth.symbols +0 -0
M oberon/IDE/__main__.py => oberon/IDE/__main__.py +2 -2
@@ 76,8 76,8 @@ cpu = newcpu(
app = DebugApp(cpu)
if args.symbol_file:
    app.set_symbols(*load_syms(args.symbol_file))
#app.font['family'] = 'Inconsolata'
app.font['size'] = 16
app.font['family'] = 'DejaVu Sans Mono'
app.font['size'] = 12
if '-n' not in argv:
    app.tk.mainloop()