\ debug routines \ load cm.f \ use compiled macros \ wait, but reset when bytes are arriving on the port \ : rint receive interpret ; \ : pause 0 for 0 for \ rx-ready? if reset then \ next next ; \ --- Host-assisted commands --- : dump-begin \ n -- #xFD \ hex dump command tx-handshake-addr ; : dump-simple-begin #xFC \ hex dump, skip row formatting tx-handshake-addr ; : dump-end tx-wait-ack emit-handshake ; \ Send n Flash bytes at current f pointer, increment f. : nfdump+ \ n -- dup dump-begin for @f+ transmit next dump-end ; \ Same, but save contents of f. : nfdump \ n -- >r fl @ fh @ r> nfdump+ fh ! fl ! ; \ Send n RAM bytes at current a pointer, increment a. : nadump+ \ n -- dup dump-begin for @a+ transmit next dump-end ; \ Same, but save contents of a. : nadump \ n -- >r al @ ah @ r> nfdump+ ah ! al ! ; \ Send one byte : dump \ byte -- 1 dump-simple-begin transmit dump-end ; \ Trace: send out current execution point, then fall into interpreter. : trace 2 #xFE \ trace addr tx-handshake-addr xl @ transmit xh @ transmit tx-wait-ack interpreter \ emit-handshake ;