ref: 754789293089d9df5b904256a38400dab9fa2e5e
parent: 6a97b4367070801166d7f5c8a47f7629e81c3816
author: 9ferno <gophone2015@gmail.com>
date: Sun Dec 12 11:09:02 EST 2021
compiling forth dictionary structure
--- /dev/null
+++ b/os/pc64/forth.h
@@ -1,0 +1,2179 @@
+/*
+ * Forth dictionary
+ */
+#define WORDB (BY2WD*144) /* word buffer */
+#define TIB (7*BY2PG) /* text input buffer */
+enum {
+ Header,
+ IHeader, /* Immediate dictionary definition */
+ Absolute,
+ FromH0,
+ Chars,
+};
+
+typedef struct Hdr Hdr;
+ struct Hdr {
+ int len;
+ char *name;
+ void *cfa;
+ };
+typedef struct Fentry Fentry;
+struct Fentry
+{
+ int type;
+ union {
+ Hdr hdr;
+ intptr p;
+ char *str;
+ } u;
+};
+enum {
+ M_fetch = 16,
+ M_store = 40,
+ M_cfetch = 64,
+ M_cstore = 88,
+ M_fthread = 112,
+ M_fthwrite = 136,
+ M_fthseek = 160,
+ M_fthopen = 184,
+ M_fthclose = 208,
+ M_mmap = 232,
+ M_terminate = 256,
+ M_clear = 280,
+ M_reset = 304,
+ M_exitcolon = 328,
+ M_literal = 360,
+ M_sliteral = 392,
+ M_doinit = 416,
+ M_doloop = 440,
+ M_doploop = 464,
+ M_rfetch = 488,
+ M_rpop = 512,
+ M_rpush = 536,
+ M_i = 560,
+ M_j = 584,
+ M_plus = 608,
+ M_minus = 632,
+ M_multiply = 656,
+ M_cjump = 680,
+ M_jump = 704,
+ M_slashmod = 728,
+ M_uslashmod = 752,
+ M_binand = 776,
+ M_binor = 800,
+ M_binxor = 824,
+ M_xswap = 848,
+ M_drop = 872,
+ M_dup = 896,
+ M_over = 920,
+ M_equal = 944,
+ M_greater = 968,
+ M_less = 992,
+ M_lshift = 1016,
+ M_rshift = 1040,
+ M_rshifta = 1064,
+ M_execute = 1088,
+ M_unloop = 1112,
+ M_cmove = 1136,
+ M_cmoveb = 1160,
+ MV_Dp = 1184,
+ MV_Dtop = 1216,
+ MV_Iobuf = 1248,
+ MV_Sourcebuf = 1288,
+ MV_Wordbuf = 1320,
+ MV_toIn = 1352,
+ MV_toLimit = 1384,
+ MV_Findadr = 1416,
+ MV_Blk = 1448,
+ MV_Searchlen = 1488,
+ MV_Base = 1520,
+ MV_toNum = 1552,
+ MV_State = 1584,
+ MV_Abortvec = 1616,
+ MV_Infd = 1648,
+ MV_Outfd = 1680,
+ MV_Errfd = 1712,
+ MV_Eof = 1744,
+ MC_STDIN = 1776,
+ MC_STDOUT = 1808,
+ MC_STDERR = 1840,
+ MC_WORDB = 1872,
+ MC_TIB = 1904,
+ M_s0 = 1936,
+ M_stackptr = 1960,
+ M_h0 = 1984,
+ M_args = 2008,
+ M_variable = 2040,
+ M_constant = 2072,
+ M_colon = 2096,
+ M_dodoes = 2120,
+ M_cas = 2144,
+ M_deferred = 2176,
+ C_false = 2200,
+ C_true = 2248,
+ C_bl = 2296,
+ C_on = 2344,
+ C_off = 2408,
+ C_tobody = 2472,
+ C_aligned = 2528,
+ C_cells = 2608,
+ C_cellplus = 2664,
+ C_depth = 2728,
+ C_nip = 2832,
+ C_rot = 2880,
+ C_2drop = 2944,
+ C_2dup = 2992,
+ C_2nip = 3040,
+ C_2swap = 3088,
+ C_qdup = 3152,
+ L20 = 3224,
+ C_pick = 3248,
+ L22 = 3352,
+ L23 = 3360,
+ C_tuck = 3384,
+ C_divides = 3448,
+ C_plusstore = 3496,
+ C_invert = 3576,
+ C_mod = 3632,
+ C_1plus = 3680,
+ C_1minus = 3736,
+ C_negate = 3792,
+ C_2multiplies = 3856,
+ C_2divides = 3912,
+ C_0eq = 3968,
+ C_0lt = 4024,
+ C_0gt = 4080,
+ C_neq = 4136,
+ C_0neq = 4184,
+ C_max = 4240,
+ L40 = 4304,
+ L41 = 4312,
+ C_min = 4336,
+ L43 = 4400,
+ L44 = 4408,
+ C_signum = 4432,
+ L46 = 4512,
+ L48 = 4568,
+ L49 = 4584,
+ L47 = 4584,
+ C_within = 4608,
+ C_abs = 4712,
+ L52 = 4760,
+ C_key = 4784,
+ L78 = 4912,
+ L79 = 4928,
+ C_emit = 4952,
+ C_type = 5056,
+ C_cr = 5120,
+ C_space = 5176,
+ C_emits = 5224,
+ L85 = 5232,
+ L86 = 5296,
+ C_spaces = 5328,
+ C_count = 5384,
+ C_compare = 5448,
+ L55 = 5520,
+ L56 = 5656,
+ C_erase = 5736,
+ L58 = 5768,
+ C_fill = 5856,
+ L60 = 5896,
+ C_blank = 5984,
+ C_search = 6032,
+ L64 = 6136,
+ L65 = 6320,
+ C_here = 6384,
+ C_comma = 6432,
+ C_c = 6512,
+ C_allot = 6592,
+ C_pad = 6640,
+ C_align = 6704,
+ C_unused = 6768,
+ C_fromhash = 6832,
+ C_hash = 6912,
+ L92 = 7064,
+ L93 = 7088,
+ C_hashs = 7168,
+ L95 = 7176,
+ L96 = 7224,
+ C_hashfrom = 7248,
+ C_hold = 7360,
+ C_sign = 7464,
+ L100 = 7520,
+ C_dot = 7544,
+ C_dotr = 7648,
+ C_hex = 7808,
+ C_decimal = 7872,
+ C_digit = 7936,
+ L106 = 8048,
+ L108 = 8152,
+ L110 = 8256,
+ L111 = 8280,
+ L109 = 8280,
+ L107 = 8280,
+ L112 = 8352,
+ L113 = 8368,
+ C_number = 8392,
+ L115 = 8528,
+ L116 = 8560,
+ L117 = 8624,
+ L118 = 8728,
+ L119 = 8784,
+ C_abort = 8872,
+ C_source = 8928,
+ C_current_input = 8984,
+ C_save_input = 9064,
+ C_default_input = 9192,
+ C_restore_input = 9312,
+ L133 = 9408,
+ L134 = 9496,
+ C_qrestore_input = 9528,
+ L136 = 9632,
+ C_next_input = 9664,
+ L139 = 9760,
+ L140 = 9784,
+ C_parse = 9808,
+ L142 = 9848,
+ L143 = 9976,
+ C_word = 10120,
+ L145 = 10136,
+ L146 = 10232,
+ C_accept = 10272,
+ L148 = 10312,
+ L150 = 10472,
+ L149 = 10536,
+ C_query = 10584,
+ L152 = 10728,
+ L153 = 10760,
+ C_refill = 10784,
+ L155 = 10848,
+ L156 = 10864,
+ C_findname = 10888,
+ L158 = 10928,
+ L160 = 11040,
+ L162 = 11168,
+ L161 = 11176,
+ L159 = 11192,
+ C_find = 11240,
+ L165 = 11432,
+ L166 = 11448,
+ L164 = 11472,
+ L167 = 11480,
+ C_single_quote = 11504,
+ L169 = 11640,
+ C_qstack = 11664,
+ L172 = 11768,
+ C_interpret = 11800,
+ L175 = 11808,
+ L177 = 11920,
+ L179 = 12032,
+ L178 = 12032,
+ L176 = 12048,
+ C_create = 12080,
+ C_variable = 12320,
+ C_constant = 12384,
+ C_immediate = 12512,
+ C_tocfa = 12624,
+ C_compile = 12704,
+ L189 = 12832,
+ L190 = 12848,
+ L188 = 12864,
+ L192 = 12992,
+ L194 = 13024,
+ L191 = 13024,
+ C_close_bracket = 13048,
+ L196 = 13072,
+ L197 = 13160,
+ L198 = 13184,
+ L199 = 13216,
+ C_smudge = 13264,
+ C_reveal = 13376,
+ C_colon = 13496,
+ C_L206 = 13728,
+ C_literal = 13792,
+ C_sliteral = 13856,
+ C_string = 14024,
+ L214 = 14368,
+ L215 = 14400,
+ C_qabort_parens = 14424,
+ L217 = 14504,
+ L218 = 14512,
+ C_double_quote = 14576,
+ C_cdouble_quote = 14704,
+ L234 = 15448,
+ L236 = 15536,
+ C_wo = 15560,
+ C_ro = 15656,
+ C_rw = 15704,
+ C_open_file = 15760,
+ C_close_file = 16040,
+ C_read_file = 16096,
+ C_write_file = 16176,
+ C_reposition_file = 16248,
+ C_qfcheck = 16312,
+ L246 = 16408,
+ C_bye = 16432,
+ C_include = 16488,
+ C_crash = 16640,
+ C_quit = 16728,
+ L253 = 16752,
+ C_parenabort = 16808,
+ C_oldboot = 16976,
+ C_boot = 17296,
+ L137 = 17624,
+ L170 = 17648,
+ L173 = 17652,
+ L180 = 17669,
+ L193 = 17673,
+ L247 = 17677,
+ L251 = 17687,
+ L255 = 17718,
+};
+extern void *sliteral(void);
+extern void *cjump(void);
+extern void *i(void);
+extern void *equal(void);
+extern void *j(void);
+extern void *drop(void);
+extern void *rpop(void);
+extern void *fthwrite(void);
+extern void *stackptr(void);
+extern void *fthseek(void);
+extern void *deferred(void);
+extern void *cas(void);
+extern void *s0(void);
+extern void *xswap(void);
+extern void *terminate(void);
+extern void *greater(void);
+extern void *slashmod(void);
+extern void *cmoveb(void);
+extern void *doinit(void);
+extern void *multiply(void);
+extern void *colon(void);
+extern void *less(void);
+extern void *lshift(void);
+extern void *fthopen(void);
+extern void *h0(void);
+extern void *plus(void);
+extern void *jump(void);
+extern void *rshift(void);
+extern void *cstore(void);
+extern void *store(void);
+extern void *cmove(void);
+extern void *binor(void);
+extern void *fthclose(void);
+extern void *unloop(void);
+extern void *cfetch(void);
+extern void *constant(void);
+extern void *variable(void);
+extern void *fetch(void);
+extern void *doloop(void);
+extern void *mmap(void);
+extern void *binxor(void);
+extern void *fthread(void);
+extern void *args(void);
+extern void *dup(void);
+extern void *exitcolon(void);
+extern void *clear(void);
+extern void *binand(void);
+extern void *literal(void);
+extern void *rpush(void);
+extern void *over(void);
+extern void *minus(void);
+extern void *rfetch(void);
+extern void *reset(void);
+extern void *dodoes(void);
+extern void *uslashmod(void);
+extern void *execute(void);
+extern void *rshifta(void);
+extern void *doploop(void);
+Fentry fentries[] = {
+ {.type Header, .u {.hdr { 1, "@", /* M_fetch = 16 */ fetch }}}, /* MENTRY "@" fetch 1 h 24 */
+ {.type Header, .u {.hdr { 1, "!", /* M_store = 40 */ store }}}, /* MENTRY "!" store 1 h 48 */
+ {.type Header, .u {.hdr { 2, "c@", /* M_cfetch = 64 */ cfetch }}}, /* MENTRY "c@" cfetch 2 h 72 */
+ {.type Header, .u {.hdr { 2, "c!", /* M_cstore = 88 */ cstore }}}, /* MENTRY "c!" cstore 2 h 96 */
+ {.type Header, .u {.hdr { 4, "read", /* M_fthread = 112 */ fthread }}}, /* MENTRY "read" fthread 4 h 120 */
+ {.type Header, .u {.hdr { 5, "write", /* M_fthwrite = 136 */ fthwrite }}}, /* MENTRY "write" fthwrite 5 h 144 */
+ {.type Header, .u {.hdr { 4, "seek", /* M_fthseek = 160 */ fthseek }}}, /* MENTRY "seek" fthseek 4 h 168 */
+ {.type Header, .u {.hdr { 4, "open", /* M_fthopen = 184 */ fthopen }}}, /* MENTRY "open" fthopen 4 h 192 */
+ {.type Header, .u {.hdr { 5, "close", /* M_fthclose = 208 */ fthclose }}}, /* MENTRY "close" fthclose 5 h 216 */
+ {.type Header, .u {.hdr { 4, "mmap", /* M_mmap = 232 */ mmap }}}, /* MENTRY "mmap" mmap 4 h 240 */
+ {.type Header, .u {.hdr { 4, "halt", /* M_terminate = 256 */ terminate }}}, /* MENTRY "halt" terminate 4 h 264 */
+ {.type Header, .u {.hdr { 5, "clear", /* M_clear = 280 */ clear }}}, /* MENTRY "clear" clear 5 h 288 */
+ {.type Header, .u {.hdr { 5, "reset", /* M_reset = 304 */ reset }}}, /* MENTRY "reset" reset 5 h 312 */
+ {.type Header, .u {.hdr { 4, "exitcolon", /* M_exitcolon = 328 */ exitcolon }}}, /* MENTRY "exitcolon" exitcolon 4 h 336 */
+ {.type Header, .u {.hdr { 9, "(literal)", /* M_literal = 360 */ literal }}}, /* MENTRY "(literal)" literal 9 h 368 */
+ {.type Header, .u {.hdr { 10, "(sliteral)", /* M_sliteral = 392 */ sliteral }}}, /* MENTRY "(sliteral)" sliteral 10 h 400 */
+ {.type Header, .u {.hdr { 4, "(do)", /* M_doinit = 416 */ doinit }}}, /* MENTRY "(do)" doinit 4 h 424 */
+ {.type Header, .u {.hdr { 6, "(loop)", /* M_doloop = 440 */ doloop }}}, /* MENTRY "(loop)" doloop 6 h 448 */
+ {.type Header, .u {.hdr { 7, "(+loop)", /* M_doploop = 464 */ doploop }}}, /* MENTRY "(+loop)" doploop 7 h 472 */
+ {.type Header, .u {.hdr { 2, "r@", /* M_rfetch = 488 */ rfetch }}}, /* MENTRY "r@" rfetch 2 h 496 */
+ {.type Header, .u {.hdr { 2, "r>", /* M_rpop = 512 */ rpop }}}, /* MENTRY "r>" rpop 2 h 520 */
+ {.type Header, .u {.hdr { 2, ">r", /* M_rpush = 536 */ rpush }}}, /* MENTRY ">r" rpush 2 h 544 */
+ {.type Header, .u {.hdr { 1, "i", /* M_i = 560 */ i }}}, /* MENTRY "i" i 1 h 568 */
+ {.type Header, .u {.hdr { 1, "j", /* M_j = 584 */ j }}}, /* MENTRY "j" j 1 h 592 */
+ {.type Header, .u {.hdr { 1, "+", /* M_plus = 608 */ plus }}}, /* MENTRY "+" plus 1 h 616 */
+ {.type Header, .u {.hdr { 1, "-", /* M_minus = 632 */ minus }}}, /* MENTRY "-" minus 1 h 640 */
+ {.type Header, .u {.hdr { 1, "*", /* M_multiply = 656 */ multiply }}}, /* MENTRY "*" multiply 1 h 664 */
+ {.type Header, .u {.hdr { 4, "(if)", /* M_cjump = 680 */ cjump }}}, /* MENTRY "(if)" cjump 4 h 688 */
+ {.type Header, .u {.hdr { 6, "(else)", /* M_jump = 704 */ jump }}}, /* MENTRY "(else)" jump 6 h 712 */
+ {.type Header, .u {.hdr { 4, "/mod", /* M_slashmod = 728 */ slashmod }}}, /* MENTRY "/mod" slashmod 4 h 736 */
+ {.type Header, .u {.hdr { 5, "u/mod", /* M_uslashmod = 752 */ uslashmod }}}, /* MENTRY "u/mod" uslashmod 5 h 760 */
+ {.type Header, .u {.hdr { 3, "and", /* M_binand = 776 */ binand }}}, /* MENTRY "and" binand 3 h 784 */
+ {.type Header, .u {.hdr { 2, "or", /* M_binor = 800 */ binor }}}, /* MENTRY "or" binor 2 h 808 */
+ {.type Header, .u {.hdr { 3, "xor", /* M_binxor = 824 */ binxor }}}, /* MENTRY "xor" binxor 3 h 832 */
+ {.type Header, .u {.hdr { 4, "swap", /* M_xswap = 848 */ xswap }}}, /* MENTRY "swap" xswap 4 h 856 */
+ {.type Header, .u {.hdr { 4, "drop", /* M_drop = 872 */ drop }}}, /* MENTRY "drop" drop 4 h 880 */
+ {.type Header, .u {.hdr { 3, "dup", /* M_dup = 896 */ dup }}}, /* MENTRY "dup" dup 3 h 904 */
+ {.type Header, .u {.hdr { 4, "over", /* M_over = 920 */ over }}}, /* MENTRY "over" over 4 h 928 */
+ {.type Header, .u {.hdr { 1, "=", /* M_equal = 944 */ equal }}}, /* MENTRY "=" equal 1 h 952 */
+ {.type Header, .u {.hdr { 1, ">", /* M_greater = 968 */ greater }}}, /* MENTRY ">" greater 1 h 976 */
+ {.type Header, .u {.hdr { 1, "<", /* M_less = 992 */ less }}}, /* MENTRY "<" less 1 h 1000 */
+ {.type Header, .u {.hdr { 6, "lshift", /* M_lshift = 1016 */ lshift }}}, /* MENTRY "lshift" lshift 6 h 1024 */
+ {.type Header, .u {.hdr { 6, "rshift", /* M_rshift = 1040 */ rshift }}}, /* MENTRY "rshift" rshift 6 h 1048 */
+ {.type Header, .u {.hdr { 7, "rshifta", /* M_rshifta = 1064 */ rshifta }}}, /* MENTRY "rshifta" rshifta 7 h 1072 */
+ {.type Header, .u {.hdr { 7, "execute", /* M_execute = 1088 */ execute }}}, /* MENTRY "execute" execute 7 h 1096 */
+ {.type Header, .u {.hdr { 6, "unloop", /* M_unloop = 1112 */ unloop }}}, /* MENTRY "unloop" unloop 6 h 1120 */
+ {.type Header, .u {.hdr { 5, "cmove", /* M_cmove = 1136 */ cmove }}}, /* MENTRY "cmove" cmove 5 h 1144 */
+ {.type Header, .u {.hdr { 6, "cmove>", /* M_cmoveb = 1160 */ cmoveb }}}, /* MENTRY "cmove>" cmoveb 6 h 1168 */
+ {.type Header, .u {.hdr { 2, "Dp", /* MV_Dp = 1184 */ variable }}}, /* MVENTRY "Dp" Dp 0 2 ; cannot use H as it is nil in inferno next available cell for the dictionary h 1192 */
+ {.type Absolute, .u {.p 0}}, /* 1200 */
+ {.type Header, .u {.hdr { 4, "Dtop", /* MV_Dtop = 1216 */ variable }}}, /* MVENTRY "Dtop" Dtop 0 4 ; TODO put centry_c_boot here. cannot use H as it is nil in inferno next available cell for the dictionary h 1224 */
+ {.type Absolute, .u {.p 0}}, /* 1232 */
+ {.type Header, .u {.hdr { 5, "Iobuf", /* MV_Iobuf = 1248 */ variable }}}, /* MVENTRY "Iobuf" Iobuf 0 5 h 1256 */
+ {.type Absolute, .u {.p 0}}, /* 1264 */
+ {.type Header, .u {.hdr { 9, "Sourcebuf", /* MV_Sourcebuf = 1288 */ variable }}}, /* MVENTRY "Sourcebuf" Sourcebuf 0 9 ; is there a need for this? h 1296 */
+ {.type Absolute, .u {.p 0}}, /* 1304 */
+ {.type Header, .u {.hdr { 7, "Wordbuf", /* MV_Wordbuf = 1320 */ variable }}}, /* MVENTRY "Wordbuf" Wordbuf 0 7 ; is there a need for this? h 1328 */
+ {.type Absolute, .u {.p 0}}, /* 1336 */
+ {.type Header, .u {.hdr { 3, ">In", /* MV_toIn = 1352 */ variable }}}, /* MVENTRY ">In" toIn 0 3 h 1360 */
+ {.type Absolute, .u {.p 0}}, /* 1368 */
+ {.type Header, .u {.hdr { 6, ">Limit", /* MV_toLimit = 1384 */ variable }}}, /* MVENTRY ">Limit" toLimit 0 6 h 1392 */
+ {.type Absolute, .u {.p 0}}, /* 1400 */
+ {.type Header, .u {.hdr { 7, "Findadr", /* MV_Findadr = 1416 */ variable }}}, /* MVENTRY "Findadr" Findadr 0 7 h 1424 */
+ {.type Absolute, .u {.p 0}}, /* 1432 */
+ {.type Header, .u {.hdr { 3, "Blk", /* MV_Blk = 1448 */ variable }}}, /* MVENTRY "Blk" Blk 0 3 h 1456 */
+ {.type Absolute, .u {.p 0}}, /* 1464 */
+ {.type Header, .u {.hdr { 9, "Searchlen", /* MV_Searchlen = 1488 */ variable }}}, /* MVENTRY "Searchlen" Searchlen 0 9 h 1496 */
+ {.type Absolute, .u {.p 0}}, /* 1504 */
+ {.type Header, .u {.hdr { 4, "Base", /* MV_Base = 1520 */ variable }}}, /* MVENTRY "Base" Base 0 4 h 1528 */
+ {.type Absolute, .u {.p 0}}, /* 1536 */
+ {.type Header, .u {.hdr { 4, ">Num", /* MV_toNum = 1552 */ variable }}}, /* MVENTRY ">Num" toNum 0 4 h 1560 */
+ {.type Absolute, .u {.p 0}}, /* 1568 */
+ {.type Header, .u {.hdr { 5, "State", /* MV_State = 1584 */ variable }}}, /* MVENTRY "State" State 0 5 h 1592 */
+ {.type Absolute, .u {.p 0}}, /* 1600 */
+ {.type Header, .u {.hdr { 8, "Abortvec", /* MV_Abortvec = 1616 */ variable }}}, /* MVENTRY "Abortvec" Abortvec 0 8 ; not sure if these 3 can be constants instead? h 1624 */
+ {.type Absolute, .u {.p 0}}, /* 1632 */
+ {.type Header, .u {.hdr { 5, "Infd", /* MV_Infd = 1648 */ variable }}}, /* MVENTRY "Infd" Infd 0 5 h 1656 */
+ {.type Absolute, .u {.p 0}}, /* 1664 */
+ {.type Header, .u {.hdr { 6, "Outfd", /* MV_Outfd = 1680 */ variable }}}, /* MVENTRY "Outfd" Outfd 0 6 h 1688 */
+ {.type Absolute, .u {.p 0}}, /* 1696 */
+ {.type Header, .u {.hdr { 4, "Errfd", /* MV_Errfd = 1712 */ variable }}}, /* MVENTRY "Errfd" Errfd 0 4 h 1720 */
+ {.type Absolute, .u {.p 0}}, /* 1728 */
+ {.type Header, .u {.hdr { 3, "Eof", /* MV_Eof = 1744 */ variable }}}, /* MVENTRY "Eof" Eof 0 3 h 1752 */
+ {.type Absolute, .u {.p 0}}, /* 1760 */
+ {.type Header, .u {.hdr { 5, "STDIN", /* MC_STDIN = 1776 */ constant }}}, /* MCENTRY "STDIN" STDIN 0 5 ; 3 constants from here CAPITALS h 1784 */
+ {.type Absolute, .u {.p 0}}, /* 1792 */
+ {.type Header, .u {.hdr { 6, "STDOUT", /* MC_STDOUT = 1808 */ constant }}}, /* MCENTRY "STDOUT" STDOUT 1 6 h 1816 */
+ {.type Absolute, .u {.p 1}}, /* 1824 */
+ {.type Header, .u {.hdr { 6, "STDERR", /* MC_STDERR = 1840 */ constant }}}, /* MCENTRY "STDERR" STDERR 2 6 h 1848 */
+ {.type Absolute, .u {.p 2}}, /* 1856 */
+ {.type Header, .u {.hdr { 5, "WORDB", /* MC_WORDB = 1872 */ constant }}}, /* MCENTRY "WORDB" WORDB WORDB 5 h 1880 */
+ {.type Absolute, .u {.p WORDB}}, /* 1888 */
+ {.type Header, .u {.hdr { 3, "TIB", /* MC_TIB = 1904 */ constant }}}, /* MCENTRY "TIB" TIB TIB 3 h 1912 */
+ {.type Absolute, .u {.p TIB}}, /* 1920 */
+ {.type Header, .u {.hdr { 2, "s0", /* M_s0 = 1936 */ s0 }}}, /* MENTRY "s0" s0 2 h 1944 */
+ {.type Header, .u {.hdr { 2, "s@", /* M_stackptr = 1960 */ stackptr }}}, /* MENTRY "s@" stackptr 2 ; puts PSP on stack h 1968 */
+ {.type Header, .u {.hdr { 2, "h0", /* M_h0 = 1984 */ h0 }}}, /* MENTRY "h0" h0 2 h 1992 */
+ {.type Header, .u {.hdr { 3, "args", /* M_args = 2008 */ args }}}, /* MENTRY "args" args 3 h 2016 */
+ {.type Header, .u {.hdr { 10, "(variable)", /* M_variable = 2040 */ variable }}}, /* MENTRY "(variable)" variable 10 h 2048 */
+ {.type Header, .u {.hdr { 10, "(constant)", /* M_constant = 2072 */ constant }}}, /* MENTRY "(constant)" constant 10 h 2080 */
+ {.type Header, .u {.hdr { 3, "(:)", /* M_colon = 2096 */ colon }}}, /* MENTRY "(:)" colon 3 h 2104 */
+ {.type Header, .u {.hdr { 6, "(does)", /* M_dodoes = 2120 */ dodoes }}}, /* MENTRY "(does)" dodoes 6 h 2128 */
+ {.type Header, .u {.hdr { 3, "cas", /* M_cas = 2144 */ cas }}}, /* MENTRY "cas" cas 3 h 2152 */
+ {.type Header, .u {.hdr { 10, "(deferred)", /* M_deferred = 2176 */ deferred }}}, /* MENTRY "(deferred)" deferred 10 h 2184 */
+ {.type Header, .u {.hdr { 5, "false", /* C_false = 2200 */ colon }}}, /* CENTRY "false" false 5 h 2208 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 2216 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 2224 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 2232 */
+ {.type Header, .u {.hdr { 4, "true", /* C_true = 2248 */ colon }}}, /* CENTRY "true" true 4 h 2256 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 2264 */
+ {.type Absolute, .u {.p -1}}, /* dd -1 2272 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 2280 */
+ {.type Header, .u {.hdr { 2, "bl", /* C_bl = 2296 */ colon }}}, /* CENTRY "bl" bl 2 h 2304 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 2312 */
+ {.type Absolute, .u {.p 32}}, /* dd 32 2320 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 2328 */
+ {.type Header, .u {.hdr { 2, "on", /* C_on = 2344 */ colon }}}, /* CENTRY "on" on 2 ; ( a -- ) (G stores -1 at a ) h 2352 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 2360 */
+ {.type Absolute, .u {.p -1}}, /* dd -1 2368 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 2376 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 2384 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 2392 */
+ {.type Header, .u {.hdr { 3, "off", /* C_off = 2408 */ colon }}}, /* CENTRY "off" off 3 ; ( a -- ) (G stores 0 at a ) h 2416 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 2424 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 2432 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 2440 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 2448 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 2456 */
+ {.type Header, .u {.hdr { 5, ">body", /* C_tobody = 2472 */ colon }}}, /* CENTRY ">body" tobody 5 h 2480 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 2488 */
+ {.type Absolute, .u {.p 8}}, /* dd 8 2496 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 2504 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 2512 */
+ {.type Header, .u {.hdr { 7, "aligned", /* C_aligned = 2528 */ colon }}}, /* CENTRY "aligned" aligned 7 h 2536 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 2544 */
+ {.type Absolute, .u {.p 7}}, /* dd 7 2552 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 2560 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 2568 */
+ {.type Absolute, .u {.p -8}}, /* dd -8 2576 */
+ {.type FromH0, .u {.p M_binand}}, /* dd M_binand 2584 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 2592 */
+ {.type Header, .u {.hdr { 5, "cells", /* C_cells = 2608 */ colon }}}, /* CENTRY "cells" cells 5 h 2616 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 2624 */
+ {.type Absolute, .u {.p 3}}, /* dd 3 ; (index << 2) -> (index << 3)for amd64 2632 */
+ {.type FromH0, .u {.p M_lshift}}, /* dd M_lshift 2640 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 2648 */
+ {.type Header, .u {.hdr { 5, "cell+", /* C_cellplus = 2664 */ colon }}}, /* CENTRY "cell+" cellplus 5 h 2672 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 2680 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 2688 */
+ {.type FromH0, .u {.p C_cells}}, /* dd C_cells 2696 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 2704 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 2712 */
+ {.type Header, .u {.hdr { 5, "depth", /* C_depth = 2728 */ colon }}}, /* CENTRY "depth" depth 5 h 2736 */
+ {.type FromH0, .u {.p M_s0}}, /* dd M_s0 2744 */
+ {.type FromH0, .u {.p M_stackptr}}, /* dd M_stackptr 2752 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 2760 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 2768 */
+ {.type Absolute, .u {.p 3}}, /* dd 3 2776 */
+ {.type FromH0, .u {.p M_rshift}}, /* dd M_rshift 2784 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 2792 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 2800 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 2808 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 2816 */
+ {.type Header, .u {.hdr { 3, "nip", /* C_nip = 2832 */ colon }}}, /* CENTRY "nip" nip 3 h 2840 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 2848 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 2856 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 2864 */
+ {.type Header, .u {.hdr { 3, "rot", /* C_rot = 2880 */ colon }}}, /* CENTRY "rot" rot 3 h 2888 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 2896 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 2904 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 2912 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 2920 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 2928 */
+ {.type Header, .u {.hdr { 5, "2drop", /* C_2drop = 2944 */ colon }}}, /* CENTRY "2drop" 2drop 5 h 2952 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 2960 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 2968 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 2976 */
+ {.type Header, .u {.hdr { 4, "2dup", /* C_2dup = 2992 */ colon }}}, /* CENTRY "2dup" 2dup 4 h 3000 */
+ {.type FromH0, .u {.p M_over}}, /* dd M_over 3008 */
+ {.type FromH0, .u {.p M_over}}, /* dd M_over 3016 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 3024 */
+ {.type Header, .u {.hdr { 4, "2nip", /* C_2nip = 3040 */ colon }}}, /* CENTRY "2nip" 2nip 4 h 3048 */
+ {.type FromH0, .u {.p C_nip}}, /* dd C_nip 3056 */
+ {.type FromH0, .u {.p C_nip}}, /* dd C_nip 3064 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 3072 */
+ {.type Header, .u {.hdr { 5, "2swap", /* C_2swap = 3088 */ colon }}}, /* CENTRY "2swap" 2swap 5 h 3096 */
+ {.type FromH0, .u {.p C_rot}}, /* dd C_rot 3104 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 3112 */
+ {.type FromH0, .u {.p C_rot}}, /* dd C_rot 3120 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 3128 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 3136 */
+ {.type Header, .u {.hdr { 4, "?dup", /* C_qdup = 3152 */ colon }}}, /* CENTRY "?dup" qdup 4 ; if (tos != 0) dup ( n -- ) TODO correct stack notations h 3160 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup ; ( n n -- ) 3168 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup ; ( n n n -- ) 3176 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 3184 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 ; ( n n n 0 -- ) 3192 */
+ {.type FromH0, .u {.p M_equal}}, /* dd M_equal ; ( n n f -- ) 3200 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump ; ( n n -- ) 3208 */
+ {.type FromH0, .u {.p L20}}, /* dd L20 3216 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop ; tos == 0 ( n -- ) 3224 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 3232 */
+ {.type Header, .u {.hdr { 4, "pick", /* C_pick = 3248 */ colon }}}, /* CENTRY "pick" pick 4 h 3256 */
+ {.type FromH0, .u {.p C_qdup}}, /* dd C_qdup 3264 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 3272 */
+ {.type FromH0, .u {.p L22}}, /* dd L22 3280 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 3288 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 3296 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 3304 */
+ {.type FromH0, .u {.p C_cells}}, /* dd C_cells 3312 */
+ {.type FromH0, .u {.p M_stackptr}}, /* dd M_stackptr 3320 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 3328 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 3336 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 3344 */
+ {.type FromH0, .u {.p L23}}, /* dd L23 3352 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 3360 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 3368 */
+ {.type Header, .u {.hdr { 4, "tuck", /* C_tuck = 3384 */ colon }}}, /* CENTRY "tuck" tuck 4 h 3392 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 3400 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 3408 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 3416 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 3424 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 3432 */
+ {.type Header, .u {.hdr { 1, "/", /* C_divides = 3448 */ colon }}}, /* CENTRY "/" divides 1 h 3456 */
+ {.type FromH0, .u {.p M_slashmod}}, /* dd M_slashmod 3464 */
+ {.type FromH0, .u {.p C_nip}}, /* dd C_nip 3472 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 3480 */
+ {.type Header, .u {.hdr { 2, "+!", /* C_plusstore = 3496 */ colon }}}, /* CENTRY "+!" plusstore 2 h 3504 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 3512 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 3520 */
+ {.type FromH0, .u {.p C_rot}}, /* dd C_rot 3528 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 3536 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 3544 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 3552 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 3560 */
+ {.type Header, .u {.hdr { 6, "invert", /* C_invert = 3576 */ colon }}}, /* CENTRY "invert" invert 6 h 3584 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 3592 */
+ {.type Absolute, .u {.p -1}}, /* dd -1 3600 */
+ {.type FromH0, .u {.p M_binxor}}, /* dd M_binxor 3608 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 3616 */
+ {.type Header, .u {.hdr { 3, "mod", /* C_mod = 3632 */ colon }}}, /* CENTRY "mod" mod 3 h 3640 */
+ {.type FromH0, .u {.p M_slashmod}}, /* dd M_slashmod 3648 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 3656 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 3664 */
+ {.type Header, .u {.hdr { 2, "1+", /* C_1plus = 3680 */ colon }}}, /* CENTRY "1+" 1plus 2 h 3688 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 3696 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 3704 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 3712 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 3720 */
+ {.type Header, .u {.hdr { 2, "1-", /* C_1minus = 3736 */ colon }}}, /* CENTRY "1-" 1minus 2 h 3744 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 3752 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 3760 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 3768 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 3776 */
+ {.type Header, .u {.hdr { 6, "negate", /* C_negate = 3792 */ colon }}}, /* CENTRY "negate" negate 6 h 3800 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 3808 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 3816 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 3824 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 3832 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 3840 */
+ {.type Header, .u {.hdr { 2, "2*", /* C_2multiplies = 3856 */ colon }}}, /* CENTRY "2*" 2multiplies 2 h 3864 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 3872 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 3880 */
+ {.type FromH0, .u {.p M_lshift}}, /* dd M_lshift 3888 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 3896 */
+ {.type Header, .u {.hdr { 2, "2/", /* C_2divides = 3912 */ colon }}}, /* CENTRY "2/" 2divides 2 h 3920 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 3928 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 3936 */
+ {.type FromH0, .u {.p M_rshifta}}, /* dd M_rshifta 3944 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 3952 */
+ {.type Header, .u {.hdr { 2, "0=", /* C_0eq = 3968 */ colon }}}, /* CENTRY "0=" 0eq 2 h 3976 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 3984 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 3992 */
+ {.type FromH0, .u {.p M_equal}}, /* dd M_equal 4000 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 4008 */
+ {.type Header, .u {.hdr { 2, "0<", /* C_0lt = 4024 */ colon }}}, /* CENTRY "0<" 0lt 2 h 4032 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 4040 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 4048 */
+ {.type FromH0, .u {.p M_less}}, /* dd M_less 4056 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 4064 */
+ {.type Header, .u {.hdr { 2, "0>", /* C_0gt = 4080 */ colon }}}, /* CENTRY "0>" 0gt 2 h 4088 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 4096 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 4104 */
+ {.type FromH0, .u {.p M_greater}}, /* dd M_greater 4112 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 4120 */
+ {.type Header, .u {.hdr { 2, "<>", /* C_neq = 4136 */ colon }}}, /* CENTRY "<>" neq 2 h 4144 */
+ {.type FromH0, .u {.p M_equal}}, /* dd M_equal 4152 */
+ {.type FromH0, .u {.p C_invert}}, /* dd C_invert 4160 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 4168 */
+ {.type Header, .u {.hdr { 3, "0<>", /* C_0neq = 4184 */ colon }}}, /* CENTRY "0<>" 0neq 3 h 4192 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 4200 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 4208 */
+ {.type FromH0, .u {.p C_neq}}, /* dd C_neq 4216 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 4224 */
+ {.type Header, .u {.hdr { 3, "max", /* C_max = 4240 */ colon }}}, /* CENTRY "max" max 3 h 4248 */
+ {.type FromH0, .u {.p C_2dup}}, /* dd C_2dup 4256 */
+ {.type FromH0, .u {.p M_greater}}, /* dd M_greater 4264 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 4272 */
+ {.type FromH0, .u {.p L40}}, /* dd L40 4280 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 4288 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 4296 */
+ {.type FromH0, .u {.p L41}}, /* dd L41 4304 */
+ {.type FromH0, .u {.p C_nip}}, /* dd C_nip 4312 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 4320 */
+ {.type Header, .u {.hdr { 3, "min", /* C_min = 4336 */ colon }}}, /* CENTRY "min" min 3 h 4344 */
+ {.type FromH0, .u {.p C_2dup}}, /* dd C_2dup 4352 */
+ {.type FromH0, .u {.p M_less}}, /* dd M_less 4360 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 4368 */
+ {.type FromH0, .u {.p L43}}, /* dd L43 4376 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 4384 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 4392 */
+ {.type FromH0, .u {.p L44}}, /* dd L44 4400 */
+ {.type FromH0, .u {.p C_nip}}, /* dd C_nip 4408 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 4416 */
+ {.type Header, .u {.hdr { 6, "signum", /* C_signum = 4432 */ colon }}}, /* CENTRY "signum" signum 6 h 4440 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 4448 */
+ {.type FromH0, .u {.p C_0gt}}, /* dd C_0gt 4456 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 4464 */
+ {.type FromH0, .u {.p L46}}, /* dd L46 4472 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 4480 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 4488 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 4496 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 4504 */
+ {.type FromH0, .u {.p L47}}, /* dd L47 4512 */
+ {.type FromH0, .u {.p C_0lt}}, /* dd C_0lt 4520 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 4528 */
+ {.type FromH0, .u {.p L48}}, /* dd L48 4536 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 4544 */
+ {.type Absolute, .u {.p -1}}, /* dd -1 4552 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 4560 */
+ {.type FromH0, .u {.p L49}}, /* dd L49 4568 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 4576 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 4584 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 4592 */
+ {.type Header, .u {.hdr { 6, "within", /* C_within = 4608 */ colon }}}, /* CENTRY "within" within 6 h 4616 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 4624 */
+ {.type FromH0, .u {.p M_over}}, /* dd M_over 4632 */
+ {.type FromH0, .u {.p M_greater}}, /* dd M_greater 4640 */
+ {.type FromH0, .u {.p C_0eq}}, /* dd C_0eq 4648 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 4656 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 4664 */
+ {.type FromH0, .u {.p M_greater}}, /* dd M_greater 4672 */
+ {.type FromH0, .u {.p C_0eq}}, /* dd C_0eq 4680 */
+ {.type FromH0, .u {.p M_binand}}, /* dd M_binand 4688 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 4696 */
+ {.type Header, .u {.hdr { 3, "abs", /* C_abs = 4712 */ colon }}}, /* CENTRY "abs" abs 3 h 4720 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 4728 */
+ {.type FromH0, .u {.p C_0lt}}, /* dd C_0lt 4736 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 4744 */
+ {.type FromH0, .u {.p L52}}, /* dd L52 4752 */
+ {.type FromH0, .u {.p C_negate}}, /* dd C_negate 4760 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 4768 */
+ {.type Header, .u {.hdr { 3, "key", /* C_key = 4784 */ colon }}}, /* CENTRY "key" key 3 ; ( -- c ) (G read a single character from the input onto the stack ) h 4792 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 4800 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 ; ( 1 -- ) 4808 */
+ {.type FromH0, .u {.p MV_Iobuf}}, /* dd MV_Iobuf ; variable iobuf to store the character read 4816 */
+ {.type FromH0, .u {.p MV_Infd}}, /* dd MV_Infd 4824 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch ; ( 1 Iobuf -- 1 Iobuf infd ) 4832 */
+ {.type FromH0, .u {.p M_fthread}}, /* dd M_fthread ; ( 1 Iobuf infd -- n ) 4840 */
+ {.type FromH0, .u {.p C_0eq}}, /* dd C_0eq 4848 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump ; if 0 characters read 4856 */
+ {.type FromH0, .u {.p L78}}, /* dd L78 ; if qread n != 0 jump to L78. If n == 0 jump over 4864 */
+ {.type FromH0, .u {.p MV_Eof}}, /* dd MV_Eof 4872 */
+ {.type FromH0, .u {.p C_on}}, /* dd C_on ; EOF 4880 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 4888 */
+ {.type Absolute, .u {.p -1}}, /* dd -1 ; return -1 when EOF 4896 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 4904 */
+ {.type FromH0, .u {.p L79}}, /* dd L79 4912 */
+ {.type FromH0, .u {.p MV_Iobuf}}, /* dd MV_Iobuf ; get the character from Iobuf to stack 4920 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch ; ( -- c ) return the character read if not EOF 4928 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 4936 */
+ {.type Header, .u {.hdr { 4, "emit", /* C_emit = 4952 */ colon }}}, /* CENTRY "emit" emit 4 ; ( character -- ) h 4960 */
+ {.type FromH0, .u {.p MV_Iobuf}}, /* dd MV_Iobuf ; variable iobuf address 4968 */
+ {.type FromH0, .u {.p M_cstore}}, /* dd M_cstore ; variable iobuf has character 4976 */
+ {.type FromH0, .u {.p MV_Iobuf}}, /* dd MV_Iobuf ; variable iobuf address 4984 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 4992 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 5000 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap ; ( iobuf 1 -- 1 iobuf ) 5008 */
+ {.type FromH0, .u {.p MV_Outfd}}, /* dd MV_Outfd 5016 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch ; outfd 5024 */
+ {.type FromH0, .u {.p M_fthwrite}}, /* dd M_fthwrite ; ( 1 iobuf outfd -- ) 5032 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 5040 */
+ {.type Header, .u {.hdr { 4, "type", /* C_type = 5056 */ colon }}}, /* CENTRY "type" type 4 ; ( addr n -- ) h 5064 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap ; ( addr n -- n addr ) 5072 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 5080 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 ; stdout 5088 */
+ {.type FromH0, .u {.p M_fthwrite}}, /* dd M_fthwrite ; ( n addr 1 -- ) 5096 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 5104 */
+ {.type Header, .u {.hdr { 2, "cr", /* C_cr = 5120 */ colon }}}, /* CENTRY "cr" cr 2 h 5128 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 5136 */
+ {.type Absolute, .u {.p 10}}, /* dd 10 ; ascii value of carriage return 5144 */
+ {.type FromH0, .u {.p C_emit}}, /* dd C_emit ; emit 5152 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 5160 */
+ {.type Header, .u {.hdr { 5, "space", /* C_space = 5176 */ colon }}}, /* CENTRY "space" space 5 h 5184 */
+ {.type FromH0, .u {.p C_bl}}, /* dd C_bl 5192 */
+ {.type FromH0, .u {.p C_emit}}, /* dd C_emit 5200 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 5208 */
+ {.type Header, .u {.hdr { 5, "emits", /* C_emits = 5224 */ colon }}}, /* CENTRY "emits" emits 5 h 5232 */
+ {.type FromH0, .u {.p C_qdup}}, /* dd C_qdup 5240 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 5248 */
+ {.type FromH0, .u {.p L86}}, /* dd L86 5256 */
+ {.type FromH0, .u {.p M_over}}, /* dd M_over 5264 */
+ {.type FromH0, .u {.p C_emit}}, /* dd C_emit 5272 */
+ {.type FromH0, .u {.p C_1minus}}, /* dd C_1minus 5280 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 5288 */
+ {.type FromH0, .u {.p L85}}, /* dd L85 5296 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 5304 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 5312 */
+ {.type Header, .u {.hdr { 6, "spaces", /* C_spaces = 5328 */ colon }}}, /* CENTRY "spaces" spaces 6 h 5336 */
+ {.type FromH0, .u {.p C_bl}}, /* dd C_bl 5344 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 5352 */
+ {.type FromH0, .u {.p C_emits}}, /* dd C_emits 5360 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 5368 */
+ {.type Header, .u {.hdr { 5, "count", /* C_count = 5384 */ colon }}}, /* CENTRY "count" count 5 ; ( a -- a+1 n ) a = counted string h 5392 */
+ {.type FromH0, .u {.p C_1plus}}, /* dd C_1plus 5400 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 5408 */
+ {.type FromH0, .u {.p C_1minus}}, /* dd C_1minus 5416 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 5424 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 5432 */
+ {.type Header, .u {.hdr { 7, "compare", /* C_compare = 5448 */ colon }}}, /* CENTRY "compare" compare 7 ; ( a1 n1 a2 n2 -- f ) a1 = dictionary entry a2 = word name to search h 5456 */
+ {.type FromH0, .u {.p C_rot}}, /* dd C_rot ; ( a1 n1 a2 n2 -- a1 a2 n2 n1 ) 5464 */
+ {.type FromH0, .u {.p C_2dup}}, /* dd C_2dup ; ( -- a1 a2 n2 n1 n2 n1 ) 5472 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush ; ( -- a1 a2 n2 n1 n2 ) (R n1 -- ) 5480 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush ; ( -- a1 a2 n2 n1 ) (R n1 n2 -- ) 5488 */
+ {.type FromH0, .u {.p C_min}}, /* dd C_min ; ( -- a1 a2 nmin ) (R n1 n2 -- ) 5496 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 5504 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 ; ( -- a1 a2 nmin 0 ) (R n1 n2 -- ) 5512 */
+ {.type FromH0, .u {.p M_doinit}}, /* dd M_doinit ; ( -- a1 a2 ) (R n1 n2 0 nmin -- ) 5520 */
+ {.type FromH0, .u {.p M_over}}, /* dd M_over 5528 */
+ {.type FromH0, .u {.p M_i}}, /* dd M_i 5536 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 5544 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 5552 */
+ {.type FromH0, .u {.p M_over}}, /* dd M_over 5560 */
+ {.type FromH0, .u {.p M_i}}, /* dd M_i 5568 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 5576 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 5584 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 5592 */
+ {.type FromH0, .u {.p C_signum}}, /* dd C_signum 5600 */
+ {.type FromH0, .u {.p C_qdup}}, /* dd C_qdup 5608 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 5616 */
+ {.type FromH0, .u {.p L56}}, /* dd L56 5624 */
+ {.type FromH0, .u {.p C_2nip}}, /* dd C_2nip 5632 */
+ {.type FromH0, .u {.p M_unloop}}, /* dd M_unloop 5640 */
+ {.type FromH0, .u {.p M_unloop}}, /* dd M_unloop 5648 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 5656 */
+ {.type FromH0, .u {.p M_doloop}}, /* dd M_doloop 5664 */
+ {.type FromH0, .u {.p L55}}, /* dd L55 5672 */
+ {.type FromH0, .u {.p C_2drop}}, /* dd C_2drop ; ( a1 a2 -- ) (R n1 n2 -- ) 5680 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 5688 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop ; ( n2 n1 -- ) (R -- ) 5696 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus ; ( -- n1-n2 ) 5704 */
+ {.type FromH0, .u {.p C_signum}}, /* dd C_signum 5712 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 5720 */
+ {.type Header, .u {.hdr { 5, "erase", /* C_erase = 5736 */ colon }}}, /* CENTRY "erase" erase 5 h 5744 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 5752 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 5760 */
+ {.type FromH0, .u {.p M_doinit}}, /* dd M_doinit 5768 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 5776 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 5784 */
+ {.type FromH0, .u {.p M_over}}, /* dd M_over 5792 */
+ {.type FromH0, .u {.p M_cstore}}, /* dd M_cstore 5800 */
+ {.type FromH0, .u {.p C_1plus}}, /* dd C_1plus 5808 */
+ {.type FromH0, .u {.p M_doloop}}, /* dd M_doloop 5816 */
+ {.type FromH0, .u {.p L58}}, /* dd L58 5824 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 5832 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 5840 */
+ {.type Header, .u {.hdr { 4, "fill", /* C_fill = 5856 */ colon }}}, /* CENTRY "fill" fill 4 h 5864 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 5872 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 5880 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 5888 */
+ {.type FromH0, .u {.p M_doinit}}, /* dd M_doinit 5896 */
+ {.type FromH0, .u {.p C_2dup}}, /* dd C_2dup 5904 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 5912 */
+ {.type FromH0, .u {.p M_i}}, /* dd M_i 5920 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 5928 */
+ {.type FromH0, .u {.p M_cstore}}, /* dd M_cstore 5936 */
+ {.type FromH0, .u {.p M_doloop}}, /* dd M_doloop 5944 */
+ {.type FromH0, .u {.p L60}}, /* dd L60 5952 */
+ {.type FromH0, .u {.p C_2drop}}, /* dd C_2drop 5960 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 5968 */
+ {.type Header, .u {.hdr { 5, "blank", /* C_blank = 5984 */ colon }}}, /* CENTRY "blank" blank 5 h 5992 */
+ {.type FromH0, .u {.p C_bl}}, /* dd C_bl 6000 */
+ {.type FromH0, .u {.p C_fill}}, /* dd C_fill 6008 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 6016 */
+ {.type Header, .u {.hdr { 6, "search", /* C_search = 6032 */ colon }}}, /* CENTRY "search" search 6 h 6040 */
+ {.type FromH0, .u {.p MV_Searchlen}}, /* dd MV_Searchlen 6048 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 6056 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 6064 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 6072 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 6080 */
+ {.type FromH0, .u {.p MV_Searchlen}}, /* dd MV_Searchlen 6088 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 6096 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 6104 */
+ {.type FromH0, .u {.p C_1plus}}, /* dd C_1plus 6112 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 6120 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 6128 */
+ {.type FromH0, .u {.p M_doinit}}, /* dd M_doinit 6136 */
+ {.type FromH0, .u {.p M_over}}, /* dd M_over 6144 */
+ {.type FromH0, .u {.p M_i}}, /* dd M_i 6152 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 6160 */
+ {.type FromH0, .u {.p M_over}}, /* dd M_over 6168 */
+ {.type FromH0, .u {.p MV_Searchlen}}, /* dd MV_Searchlen 6176 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 6184 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 6192 */
+ {.type FromH0, .u {.p MV_Searchlen}}, /* dd MV_Searchlen 6200 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 6208 */
+ {.type FromH0, .u {.p C_compare}}, /* dd C_compare 6216 */
+ {.type FromH0, .u {.p C_0eq}}, /* dd C_0eq 6224 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 6232 */
+ {.type FromH0, .u {.p L65}}, /* dd L65 6240 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 6248 */
+ {.type FromH0, .u {.p M_i}}, /* dd M_i 6256 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 6264 */
+ {.type FromH0, .u {.p M_i}}, /* dd M_i 6272 */
+ {.type FromH0, .u {.p M_unloop}}, /* dd M_unloop 6280 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 6288 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 6296 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 6304 */
+ {.type FromH0, .u {.p C_true}}, /* dd C_true 6312 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 6320 */
+ {.type FromH0, .u {.p M_doloop}}, /* dd M_doloop 6328 */
+ {.type FromH0, .u {.p L64}}, /* dd L64 6336 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 6344 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 6352 */
+ {.type FromH0, .u {.p C_false}}, /* dd C_false 6360 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 6368 */
+ {.type Header, .u {.hdr { 4, "here", /* C_here = 6384 */ colon }}}, /* CENTRY "here" here 4 h 6392 */
+ {.type FromH0, .u {.p M_h0}}, /* dd M_h0 6400 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 6408 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 6416 */
+ {.type Header, .u {.hdr { 1, ",", /* C_comma = 6432 */ colon }}}, /* CENTRY "," comma 1 h 6440 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 6448 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 6456 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 6464 */
+ {.type Absolute, .u {.p 8}}, /* dd 8 6472 */
+ {.type FromH0, .u {.p M_h0}}, /* dd M_h0 6480 */
+ {.type FromH0, .u {.p C_plusstore}}, /* dd C_plusstore 6488 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 6496 */
+ {.type Header, .u {.hdr { 2, "c", /* C_c = 6512 */ colon }}}, /* CENTRY "c" c 2 h 6520 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 6528 */
+ {.type FromH0, .u {.p M_cstore}}, /* dd M_cstore 6536 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 6544 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 6552 */
+ {.type FromH0, .u {.p M_h0}}, /* dd M_h0 6560 */
+ {.type FromH0, .u {.p C_plusstore}}, /* dd C_plusstore 6568 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 6576 */
+ {.type Header, .u {.hdr { 5, "allot", /* C_allot = 6592 */ colon }}}, /* CENTRY "allot" allot 5 h 6600 */
+ {.type FromH0, .u {.p M_h0}}, /* dd M_h0 6608 */
+ {.type FromH0, .u {.p C_plusstore}}, /* dd C_plusstore 6616 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 6624 */
+ {.type Header, .u {.hdr { 3, "pad", /* C_pad = 6640 */ colon }}}, /* CENTRY "pad" pad 3 h 6648 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 6656 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 6664 */
+ {.type Absolute, .u {.p 256}}, /* dd 256 6672 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 6680 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 6688 */
+ {.type Header, .u {.hdr { 5, "align", /* C_align = 6704 */ colon }}}, /* CENTRY "align" align 5 h 6712 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 6720 */
+ {.type FromH0, .u {.p C_aligned}}, /* dd C_aligned 6728 */
+ {.type FromH0, .u {.p M_h0}}, /* dd M_h0 6736 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 6744 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 6752 */
+ {.type Header, .u {.hdr { 6, "unused", /* C_unused = 6768 */ colon }}}, /* CENTRY "unused" unused 6 h 6776 */
+ {.type FromH0, .u {.p M_h0}}, /* dd M_h0 6784 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 6792 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 6800 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 6808 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 6816 */
+ {.type Header, .u {.hdr { 2, "<#", /* C_fromhash = 6832 */ colon }}}, /* CENTRY "<#" fromhash 2 h 6840 */
+ {.type FromH0, .u {.p C_pad}}, /* dd C_pad 6848 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 6856 */
+ {.type Absolute, .u {.p 1024}}, /* dd 1024 6864 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 6872 */
+ {.type FromH0, .u {.p MV_toNum}}, /* dd MV_toNum 6880 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 6888 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 6896 */
+ {.type Header, .u {.hdr { 1, "#", /* C_hash = 6912 */ colon }}}, /* CENTRY "#" hash 1 h 6920 */
+ {.type FromH0, .u {.p MV_Base}}, /* dd MV_Base 6928 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 6936 */
+ {.type FromH0, .u {.p M_uslashmod}}, /* dd M_uslashmod 6944 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 6952 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 6960 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 6968 */
+ {.type Absolute, .u {.p 9}}, /* dd 9 6976 */
+ {.type FromH0, .u {.p M_greater}}, /* dd M_greater 6984 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 6992 */
+ {.type FromH0, .u {.p L92}}, /* dd L92 7000 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 7008 */
+ {.type Absolute, .u {.p 97}}, /* dd 97 7016 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 7024 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 7032 */
+ {.type Absolute, .u {.p 10}}, /* dd 10 7040 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 7048 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 7056 */
+ {.type FromH0, .u {.p L93}}, /* dd L93 7064 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 7072 */
+ {.type Absolute, .u {.p 48}}, /* dd 48 7080 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 7088 */
+ {.type FromH0, .u {.p MV_toNum}}, /* dd MV_toNum 7096 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 7104 */
+ {.type FromH0, .u {.p C_1minus}}, /* dd C_1minus 7112 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 7120 */
+ {.type FromH0, .u {.p MV_toNum}}, /* dd MV_toNum 7128 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 7136 */
+ {.type FromH0, .u {.p M_cstore}}, /* dd M_cstore 7144 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 7152 */
+ {.type Header, .u {.hdr { 2, "#s", /* C_hashs = 7168 */ colon }}}, /* CENTRY "#s" hashs 2 h 7176 */
+ {.type FromH0, .u {.p C_hash}}, /* dd C_hash 7184 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 7192 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 7200 */
+ {.type FromH0, .u {.p L96}}, /* dd L96 7208 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 7216 */
+ {.type FromH0, .u {.p L95}}, /* dd L95 7224 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 7232 */
+ {.type Header, .u {.hdr { 2, "#>", /* C_hashfrom = 7248 */ colon }}}, /* CENTRY "#>" hashfrom 2 h 7256 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 7264 */
+ {.type FromH0, .u {.p MV_toNum}}, /* dd MV_toNum 7272 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 7280 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 7288 */
+ {.type FromH0, .u {.p C_pad}}, /* dd C_pad 7296 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 7304 */
+ {.type Absolute, .u {.p 1024}}, /* dd 1024 7312 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 7320 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 7328 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 7336 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 7344 */
+ {.type Header, .u {.hdr { 4, "hold", /* C_hold = 7360 */ colon }}}, /* CENTRY "hold" hold 4 h 7368 */
+ {.type FromH0, .u {.p MV_toNum}}, /* dd MV_toNum 7376 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 7384 */
+ {.type FromH0, .u {.p C_1minus}}, /* dd C_1minus 7392 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 7400 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 7408 */
+ {.type FromH0, .u {.p M_cstore}}, /* dd M_cstore 7416 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 7424 */
+ {.type FromH0, .u {.p MV_toNum}}, /* dd MV_toNum 7432 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 7440 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 7448 */
+ {.type Header, .u {.hdr { 4, "sign", /* C_sign = 7464 */ colon }}}, /* CENTRY "sign" sign 4 h 7472 */
+ {.type FromH0, .u {.p C_0lt}}, /* dd C_0lt 7480 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 7488 */
+ {.type FromH0, .u {.p L100}}, /* dd L100 7496 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 7504 */
+ {.type Absolute, .u {.p 45}}, /* dd 45 7512 */
+ {.type FromH0, .u {.p C_hold}}, /* dd C_hold 7520 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 7528 */
+ {.type Header, .u {.hdr { 1, ".", /* C_dot = 7544 */ colon }}}, /* CENTRY "." dot 1 h 7552 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 7560 */
+ {.type FromH0, .u {.p C_abs}}, /* dd C_abs 7568 */
+ {.type FromH0, .u {.p C_fromhash}}, /* dd C_fromhash 7576 */
+ {.type FromH0, .u {.p C_hashs}}, /* dd C_hashs 7584 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 7592 */
+ {.type FromH0, .u {.p C_sign}}, /* dd C_sign 7600 */
+ {.type FromH0, .u {.p C_hashfrom}}, /* dd C_hashfrom 7608 */
+ {.type FromH0, .u {.p C_type}}, /* dd C_type 7616 */
+ {.type FromH0, .u {.p C_space}}, /* dd C_space 7624 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 7632 */
+ {.type Header, .u {.hdr { 2, ".r", /* C_dotr = 7648 */ colon }}}, /* CENTRY ".r" dotr 2 h 7656 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 7664 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 7672 */
+ {.type FromH0, .u {.p C_abs}}, /* dd C_abs 7680 */
+ {.type FromH0, .u {.p C_fromhash}}, /* dd C_fromhash 7688 */
+ {.type FromH0, .u {.p C_hashs}}, /* dd C_hashs 7696 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 7704 */
+ {.type FromH0, .u {.p C_sign}}, /* dd C_sign 7712 */
+ {.type FromH0, .u {.p C_hashfrom}}, /* dd C_hashfrom 7720 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 7728 */
+ {.type FromH0, .u {.p M_over}}, /* dd M_over 7736 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 7744 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 7752 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 7760 */
+ {.type FromH0, .u {.p C_max}}, /* dd C_max 7768 */
+ {.type FromH0, .u {.p C_spaces}}, /* dd C_spaces 7776 */
+ {.type FromH0, .u {.p C_type}}, /* dd C_type 7784 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 7792 */
+ {.type Header, .u {.hdr { 3, "hex", /* C_hex = 7808 */ colon }}}, /* CENTRY "hex" hex 3 h 7816 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 7824 */
+ {.type Absolute, .u {.p 16}}, /* dd 16 7832 */
+ {.type FromH0, .u {.p MV_Base}}, /* dd MV_Base 7840 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 7848 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 7856 */
+ {.type Header, .u {.hdr { 7, "decimal", /* C_decimal = 7872 */ colon }}}, /* CENTRY "decimal" decimal 7 h 7880 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 7888 */
+ {.type Absolute, .u {.p 10}}, /* dd 10 7896 */
+ {.type FromH0, .u {.p MV_Base}}, /* dd MV_Base 7904 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 7912 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 7920 */
+ {.type Header, .u {.hdr { 5, "digit", /* C_digit = 7936 */ colon }}}, /* CENTRY "digit" digit 5 h 7944 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 7952 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 7960 */
+ {.type Absolute, .u {.p 65}}, /* dd 65 7968 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 7976 */
+ {.type Absolute, .u {.p 91}}, /* dd 91 7984 */
+ {.type FromH0, .u {.p C_within}}, /* dd C_within 7992 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 8000 */
+ {.type FromH0, .u {.p L106}}, /* dd L106 8008 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 8016 */
+ {.type Absolute, .u {.p 55}}, /* dd 55 8024 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 8032 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 8040 */
+ {.type FromH0, .u {.p L107}}, /* dd L107 8048 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 8056 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 8064 */
+ {.type Absolute, .u {.p 97}}, /* dd 97 8072 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 8080 */
+ {.type Absolute, .u {.p 123}}, /* dd 123 8088 */
+ {.type FromH0, .u {.p C_within}}, /* dd C_within 8096 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 8104 */
+ {.type FromH0, .u {.p L108}}, /* dd L108 8112 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 8120 */
+ {.type Absolute, .u {.p 87}}, /* dd 87 8128 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 8136 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 8144 */
+ {.type FromH0, .u {.p L109}}, /* dd L109 8152 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 8160 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 8168 */
+ {.type Absolute, .u {.p 48}}, /* dd 48 8176 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 8184 */
+ {.type Absolute, .u {.p 58}}, /* dd 58 8192 */
+ {.type FromH0, .u {.p C_within}}, /* dd C_within 8200 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 8208 */
+ {.type FromH0, .u {.p L110}}, /* dd L110 8216 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 8224 */
+ {.type Absolute, .u {.p 48}}, /* dd 48 8232 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 8240 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 8248 */
+ {.type FromH0, .u {.p L111}}, /* dd L111 8256 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 8264 */
+ {.type FromH0, .u {.p C_false}}, /* dd C_false 8272 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 8280 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 8288 */
+ {.type FromH0, .u {.p MV_Base}}, /* dd MV_Base 8296 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 8304 */
+ {.type FromH0, .u {.p M_less}}, /* dd M_less 8312 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 8320 */
+ {.type FromH0, .u {.p L112}}, /* dd L112 8328 */
+ {.type FromH0, .u {.p C_true}}, /* dd C_true 8336 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 8344 */
+ {.type FromH0, .u {.p L113}}, /* dd L113 8352 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 8360 */
+ {.type FromH0, .u {.p C_false}}, /* dd C_false 8368 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 8376 */
+ {.type Header, .u {.hdr { 6, "number", /* C_number = 8392 */ colon }}}, /* CENTRY "number" number 6 h 8400 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 8408 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 8416 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 8424 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 8432 */
+ {.type Absolute, .u {.p 45}}, /* dd 45 8440 */
+ {.type FromH0, .u {.p M_equal}}, /* dd M_equal 8448 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 8456 */
+ {.type FromH0, .u {.p L115}}, /* dd L115 8464 */
+ {.type FromH0, .u {.p C_1plus}}, /* dd C_1plus 8472 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 8480 */
+ {.type FromH0, .u {.p C_1minus}}, /* dd C_1minus 8488 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 8496 */
+ {.type Absolute, .u {.p -1}}, /* dd -1 8504 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 8512 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 8520 */
+ {.type FromH0, .u {.p L116}}, /* dd L116 8528 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 8536 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 8544 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 8552 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 8560 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 8568 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 8576 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 8584 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 8592 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 8600 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 8608 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 8616 */
+ {.type FromH0, .u {.p M_doinit}}, /* dd M_doinit 8624 */
+ {.type FromH0, .u {.p MV_Base}}, /* dd MV_Base 8632 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 8640 */
+ {.type FromH0, .u {.p M_multiply}}, /* dd M_multiply 8648 */
+ {.type FromH0, .u {.p M_over}}, /* dd M_over 8656 */
+ {.type FromH0, .u {.p M_i}}, /* dd M_i 8664 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 8672 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 8680 */
+ {.type FromH0, .u {.p C_digit}}, /* dd C_digit 8688 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 8696 */
+ {.type FromH0, .u {.p L118}}, /* dd L118 8704 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 8712 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 8720 */
+ {.type FromH0, .u {.p L119}}, /* dd L119 8728 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 8736 */
+ {.type FromH0, .u {.p M_unloop}}, /* dd M_unloop 8744 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 8752 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 8760 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 8768 */
+ {.type FromH0, .u {.p C_false}}, /* dd C_false 8776 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 8784 */
+ {.type FromH0, .u {.p M_doloop}}, /* dd M_doloop 8792 */
+ {.type FromH0, .u {.p L117}}, /* dd L117 8800 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 8808 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 8816 */
+ {.type FromH0, .u {.p C_nip}}, /* dd C_nip 8824 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 8832 */
+ {.type FromH0, .u {.p M_multiply}}, /* dd M_multiply 8840 */
+ {.type FromH0, .u {.p C_true}}, /* dd C_true 8848 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 8856 */
+ {.type Header, .u {.hdr { 5, "abort", /* C_abort = 8872 */ colon }}}, /* CENTRY "abort" abort 5 h 8880 */
+ {.type FromH0, .u {.p MV_Abortvec}}, /* dd MV_Abortvec 8888 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 8896 */
+ {.type FromH0, .u {.p M_execute}}, /* dd M_execute 8904 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 8912 */
+ {.type Header, .u {.hdr { 6, "source", /* C_source = 8928 */ colon }}}, /* CENTRY "source" source 6 h 8936 */
+ {.type FromH0, .u {.p MV_Sourcebuf}}, /* dd MV_Sourcebuf 8944 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 8952 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 8960 */
+ {.type Header, .u {.hdr { 13, "current-input", /* C_current_input = 8984 */ colon }}}, /* CENTRY "current-input" current_input 13 ; ( -- c ) read the next character from the location in Sourcebuf h 8992 */
+ {.type FromH0, .u {.p MV_toIn}}, /* dd MV_toIn 9000 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 9008 */
+ {.type FromH0, .u {.p C_source}}, /* dd C_source 9016 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus ; Sourcebuf + >In 9024 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 9032 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 9040 */
+ {.type Header, .u {.hdr { 10, "save-input", /* C_save_input = 9064 */ colon }}}, /* CENTRY "save-input" save_input 10 h 9072 */
+ {.type FromH0, .u {.p MV_Infd}}, /* dd MV_Infd 9080 */
+ {.type FromH0, .u {.p MV_toIn}}, /* dd MV_toIn 9088 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 9096 */
+ {.type FromH0, .u {.p MV_toLimit}}, /* dd MV_toLimit 9104 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 9112 */
+ {.type FromH0, .u {.p MV_Sourcebuf}}, /* dd MV_Sourcebuf 9120 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 9128 */
+ {.type FromH0, .u {.p MV_Blk}}, /* dd MV_Blk 9136 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 9144 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 9152 */
+ {.type Absolute, .u {.p 5}}, /* dd 5 9160 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 9168 */
+ {.type Header, .u {.hdr { 13, "default-input", /* C_default_input = 9192 */ colon }}}, /* CENTRY "default-input" default_input 13 h 9200 */
+ {.type FromH0, .u {.p MC_STDIN}}, /* dd MC_STDIN 9208 */
+ {.type FromH0, .u {.p MV_toIn}}, /* dd MV_toIn 9216 */
+ {.type FromH0, .u {.p C_off}}, /* dd C_off 9224 */
+ {.type FromH0, .u {.p MV_toLimit}}, /* dd MV_toLimit 9232 */
+ {.type FromH0, .u {.p C_off}}, /* dd C_off 9240 */
+ {.type FromH0, .u {.p MC_TIB}}, /* dd MC_TIB 9248 */
+ {.type FromH0, .u {.p MV_Sourcebuf}}, /* dd MV_Sourcebuf 9256 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 9264 */
+ {.type FromH0, .u {.p MV_Blk}}, /* dd MV_Blk 9272 */
+ {.type FromH0, .u {.p C_off}}, /* dd C_off 9280 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 9288 */
+ {.type Header, .u {.hdr { 13, "restore-input", /* C_restore_input = 9312 */ colon }}}, /* CENTRY "restore-input" restore_input 13 h 9320 */
+ {.type FromH0, .u {.p MV_Eof}}, /* dd MV_Eof 9328 */
+ {.type FromH0, .u {.p C_off}}, /* dd C_off 9336 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 9344 */
+ {.type Absolute, .u {.p 5}}, /* dd 5 9352 */
+ {.type FromH0, .u {.p C_neq}}, /* dd C_neq 9360 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 9368 */
+ {.type FromH0, .u {.p L133}}, /* dd L133 9376 */
+ {.type FromH0, .u {.p C_default_input}}, /* dd C_default_input 9384 */
+ {.type FromH0, .u {.p C_false}}, /* dd C_false 9392 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 9400 */
+ {.type FromH0, .u {.p L134}}, /* dd L134 9408 */
+ {.type FromH0, .u {.p MV_Blk}}, /* dd MV_Blk 9416 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 9424 */
+ {.type FromH0, .u {.p MV_Sourcebuf}}, /* dd MV_Sourcebuf 9432 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 9440 */
+ {.type FromH0, .u {.p MV_toLimit}}, /* dd MV_toLimit 9448 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 9456 */
+ {.type FromH0, .u {.p MV_toIn}}, /* dd MV_toIn 9464 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 9472 */
+ {.type FromH0, .u {.p MV_Infd}}, /* dd MV_Infd 9480 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 9488 */
+ {.type FromH0, .u {.p C_true}}, /* dd C_true 9496 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 9504 */
+ {.type Header, .u {.hdr { 14, "?restore-input", /* C_qrestore_input = 9528 */ colon }}}, /* CENTRY "?restore-input" qrestore_input 14 h 9536 */
+ {.type FromH0, .u {.p C_restore_input}}, /* dd C_restore_input 9544 */
+ {.type FromH0, .u {.p C_0eq}}, /* dd C_0eq 9552 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 9560 */
+ {.type FromH0, .u {.p L136}}, /* dd L136 9568 */
+ {.type FromH0, .u {.p C_space}}, /* dd C_space 9576 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 9584 */
+ {.type FromH0, .u {.p L137}}, /* dd L137 9592 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 9600 */
+ {.type Absolute, .u {.p 23}}, /* dd 23 9608 */
+ {.type FromH0, .u {.p C_type}}, /* dd C_type 9616 */
+ {.type FromH0, .u {.p C_cr}}, /* dd C_cr 9624 */
+ {.type FromH0, .u {.p C_abort}}, /* dd C_abort 9632 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 9640 */
+ {.type Header, .u {.hdr { 10, "next-input", /* C_next_input = 9664 */ colon }}}, /* CENTRY "next-input" next_input 10 ; when >In < >Limit ( -- true c ). ( -- 0 false ) otherwise h 9672 */
+ {.type FromH0, .u {.p MV_toIn}}, /* dd MV_toIn 9680 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 9688 */
+ {.type FromH0, .u {.p MV_toLimit}}, /* dd MV_toLimit 9696 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 9704 */
+ {.type FromH0, .u {.p M_less}}, /* dd M_less 9712 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 9720 */
+ {.type FromH0, .u {.p L139}}, /* dd L139 ; >In >= >Limit 9728 */
+ {.type FromH0, .u {.p C_true}}, /* dd C_true ; >In < >Limit 9736 */
+ {.type FromH0, .u {.p C_current_input}}, /* dd C_current_input ; ( -- c ) 9744 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 9752 */
+ {.type FromH0, .u {.p L140}}, /* dd L140 9760 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 9768 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 9776 */
+ {.type FromH0, .u {.p C_false}}, /* dd C_false 9784 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 9792 */
+ {.type Header, .u {.hdr { 5, "parse", /* C_parse = 9808 */ colon }}}, /* CENTRY "parse" parse 5 ; ( c -- a ) Place the counted string in the address in Wordbuf and return that address. c = word delimiter. h 9816 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush ; ( c -- ) (R -- c ) 9824 */
+ {.type FromH0, .u {.p MV_Wordbuf}}, /* dd MV_Wordbuf 9832 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch ; ( -- Wordb ) 9840 */
+ {.type FromH0, .u {.p C_1plus}}, /* dd C_1plus ; ( Wordb -- Wordb+1 ) 9848 */
+ {.type FromH0, .u {.p C_next_input}}, /* dd C_next_input ; ( Wordb+1 -- Wordb+1 f c ) 9856 */
+ {.type FromH0, .u {.p M_rfetch}}, /* dd M_rfetch ; ( Wordb+1 f c -- Wordb+1 f cinitial ) (R c -- c ) 9864 */
+ {.type FromH0, .u {.p C_neq}}, /* dd C_neq ; ( Wordb+1 f c cinitial -- Wordb+1 f f(c!=cinitial) ) 9872 */
+ {.type FromH0, .u {.p M_binand}}, /* dd M_binand 9880 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 9888 */
+ {.type FromH0, .u {.p L143}}, /* dd L143 ; ( Wordb+1 ) >In >= >Limit || cinitial == cnew 9896 */
+ {.type FromH0, .u {.p C_current_input}}, /* dd C_current_input ; ( Wordb+1 -- Wordb+1 c ) 9904 */
+ {.type FromH0, .u {.p M_over}}, /* dd M_over 9912 */
+ {.type FromH0, .u {.p M_cstore}}, /* dd M_cstore ; ( Wordb+1 c Wordb+1 -- Wordb+1 ) store c at Wordb+1 9920 */
+ {.type FromH0, .u {.p C_1plus}}, /* dd C_1plus ; ( Wordb+1 -- Wordb+2 ) 9928 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 9936 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 9944 */
+ {.type FromH0, .u {.p MV_toIn}}, /* dd MV_toIn 9952 */
+ {.type FromH0, .u {.p C_plusstore}}, /* dd C_plusstore ; >In++ 9960 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 9968 */
+ {.type FromH0, .u {.p L142}}, /* dd L142 ; ( Wordb+2 ) repeat 9976 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 9984 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 9992 */
+ {.type FromH0, .u {.p MV_toIn}}, /* dd MV_toIn 10000 */
+ {.type FromH0, .u {.p C_plusstore}}, /* dd C_plusstore ; >In++ 10008 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop ; (Wordb+1 -- Wordb+1 c) (R c -- ) 10016 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop ; (Wordb+1 c -- Wordb+1) 10024 */
+ {.type FromH0, .u {.p MV_Wordbuf}}, /* dd MV_Wordbuf 10032 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch ; (Wordb+1 -- Wordb+1 Wordb) 10040 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup ; (Wordb+1 Wordb -- Wordb+1 Wordb Wordb) 10048 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush ; (Wordb+1 Wordb Wordb -- Wordb+1 Wordb) (R -- Wordb) 10056 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus ; (Wordb+1 Wordb -- Wordb+1-Wordb) (R -- Wordb) 10064 */
+ {.type FromH0, .u {.p C_1minus}}, /* dd C_1minus ; (Wordb+1-Wordb -- Wordb+1-Wordb-1) (R -- Wordb) 10072 */
+ {.type FromH0, .u {.p M_rfetch}}, /* dd M_rfetch ; (Wordb+1-Wordb-1 Wordb -- Wordb+1-Wordb-1 Wordb) (R -- Wordb) 10080 */
+ {.type FromH0, .u {.p M_cstore}}, /* dd M_cstore ; store the length of the string found at Wordb[0]. Counted string at Wordb now. 10088 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop ; ( -- Wordb) (R Wordb -- ) 10096 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 10104 */
+ {.type Header, .u {.hdr { 4, "word", /* C_word = 10120 */ colon }}}, /* CENTRY "word" word 4 ; ( c -- a ) skip the c"s. Placed the counted string in a (as in Wordbuf) h 10128 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush ; ( -- ) (R -- c ) 10136 */
+ {.type FromH0, .u {.p C_next_input}}, /* dd C_next_input ; ( -- f c2 ) (R c1 -- ) 10144 */
+ {.type FromH0, .u {.p M_rfetch}}, /* dd M_rfetch ; ( f cnew -- f cnew cinitial ) (R cinitial -- cinitial ) 10152 */
+ {.type FromH0, .u {.p M_equal}}, /* dd M_equal ; ( f cnew cinitial -- f f(cnew==cinitial) ) (R cinitial -- cinitial ) 10160 */
+ {.type FromH0, .u {.p M_binand}}, /* dd M_binand ; ( f f2 -- f&&f2 ) (R cinitial -- cinitial ) 10168 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 10176 */
+ {.type FromH0, .u {.p L146}}, /* dd L146 ; >In >= >Limit || cinitial != cnew 10184 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal ; >In < >Limit && cinitial == cnew 10192 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 10200 */
+ {.type FromH0, .u {.p MV_toIn}}, /* dd MV_toIn 10208 */
+ {.type FromH0, .u {.p C_plusstore}}, /* dd C_plusstore ; >In++ 10216 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump ; repeat 10224 */
+ {.type FromH0, .u {.p L145}}, /* dd L145 10232 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop ; ( -- cinitial ) Sourcebuf+>In = location of first non-matching character 10240 */
+ {.type FromH0, .u {.p C_parse}}, /* dd C_parse 10248 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 10256 */
+ {.type Header, .u {.hdr { 6, "accept", /* C_accept = 10272 */ colon }}}, /* CENTRY "accept" accept 6 ; ( a n -- n ) get line or n chars or EOF from input and store at a h 10280 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap ; ( n a -- ) 10288 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup ; ( n a a -- ) 10296 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 10304 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush ; ( n -- ) (R a a -- ) 10312 */
+ {.type FromH0, .u {.p C_qdup}}, /* dd C_qdup ; ( n n -- ) (R a a -- ) 10320 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump ; (if) 10328 */
+ {.type FromH0, .u {.p L149}}, /* dd L149 ; n == 0 10336 */
+ {.type FromH0, .u {.p C_key}}, /* dd C_key ; n > 0 ( n -- n c ) 10344 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup ; ( -- n c c ) 10352 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 10360 */
+ {.type Absolute, .u {.p 10}}, /* dd 10 ; ( -- n c c 10 ) 10368 */
+ {.type FromH0, .u {.p M_equal}}, /* dd M_equal ; ( n c c 10 -- n c f ) checking for newline 10376 */
+ {.type FromH0, .u {.p M_over}}, /* dd M_over ; ( -- n c f c ) 10384 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 10392 */
+ {.type Absolute, .u {.p -1}}, /* dd -1 ; ( -- n c f c -1 ) 10400 */
+ {.type FromH0, .u {.p M_equal}}, /* dd M_equal ; ( -- n c f1 f2 ) 10408 */
+ {.type FromH0, .u {.p M_binor}}, /* dd M_binor ; ( -- n c f ) 10416 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 10424 */
+ {.type FromH0, .u {.p L150}}, /* dd L150 10432 */
+ {.type FromH0, .u {.p C_2drop}}, /* dd C_2drop ; n == -1 || n == 10 ( -- ) 10440 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 10448 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 10456 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus ; ( -- a2-a1 ) 10464 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon ; ( -- n ) (R -- ) 10472 */
+ {.type FromH0, .u {.p M_rfetch}}, /* dd M_rfetch ; ( n c a -- ) (R a a -- ) 10480 */
+ {.type FromH0, .u {.p M_cstore}}, /* dd M_cstore ; store the character at a 10488 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop ; ( n a -- ) (R a -- ) 10496 */
+ {.type FromH0, .u {.p C_1plus}}, /* dd C_1plus 10504 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush ; ( n -- ) (R a1 -- a1 a2 ) a1 = begin address a2 = current address 10512 */
+ {.type FromH0, .u {.p C_1minus}}, /* dd C_1minus ; ( n -- n-1 ) 10520 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 10528 */
+ {.type FromH0, .u {.p L148}}, /* dd L148 ; loop again for the next character 10536 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop ; ( -- a2 ) (R a1 a2 -- a1 ) 10544 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop ; ( a2 a1 -- ) (R a1 -- ) 10552 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus ; ( a2 a1 -- a2-a1 ) 10560 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 10568 */
+ {.type Header, .u {.hdr { 5, "query", /* C_query = 10584 */ colon }}}, /* CENTRY "query" query 5 ; read from input stream into the Text Input Buffer h 10592 */
+ {.type FromH0, .u {.p MV_Eof}}, /* dd MV_Eof 10600 */
+ {.type FromH0, .u {.p C_off}}, /* dd C_off ; clear EOF flag 10608 */
+ {.type FromH0, .u {.p MC_TIB}}, /* dd MC_TIB ; constant puts address of tibuffer on the top 10616 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 10624 */
+ {.type Absolute, .u {.p 4096}}, /* dd 4096 ; ( tibuffer -- tibuffer 4096 ) 10632 */
+ {.type FromH0, .u {.p C_accept}}, /* dd C_accept ; ( tibuffer 4096 -- n ) 10640 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup ; ( n -- n n ) 10648 */
+ {.type FromH0, .u {.p C_0eq}}, /* dd C_0eq ; ( n n -- n f ) 10656 */
+ {.type FromH0, .u {.p MV_Eof}}, /* dd MV_Eof 10664 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 10672 */
+ {.type FromH0, .u {.p M_binand}}, /* dd M_binand ; n == 0 && EOF 10680 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 10688 */
+ {.type FromH0, .u {.p L152}}, /* dd L152 ; false condition 10696 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop ; n == 0 && EOF ( n -- ) 10704 */
+ {.type FromH0, .u {.p C_qrestore_input}}, /* dd C_qrestore_input 10712 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 10720 */
+ {.type FromH0, .u {.p L153}}, /* dd L153 10728 */
+ {.type FromH0, .u {.p MV_toLimit}}, /* dd MV_toLimit 10736 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store ; number of characters to read >Limit = n 10744 */
+ {.type FromH0, .u {.p MV_toIn}}, /* dd MV_toIn 10752 */
+ {.type FromH0, .u {.p C_off}}, /* dd C_off ; start from 0 >In = 0 10760 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 10768 */
+ {.type Header, .u {.hdr { 6, "refill", /* C_refill = 10784 */ colon }}}, /* CENTRY "refill" refill 6 h 10792 */
+ {.type FromH0, .u {.p MV_Blk}}, /* dd MV_Blk 10800 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 10808 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 10816 */
+ {.type FromH0, .u {.p L155}}, /* dd L155 10824 */
+ {.type FromH0, .u {.p C_false}}, /* dd C_false 10832 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 10840 */
+ {.type FromH0, .u {.p L156}}, /* dd L156 10848 */
+ {.type FromH0, .u {.p C_query}}, /* dd C_query 10856 */
+ {.type FromH0, .u {.p C_true}}, /* dd C_true 10864 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 10872 */
+ {.type Header, .u {.hdr { 8, "findname", /* C_findname = 10888 */ colon }}}, /* CENTRY "findname" findname 8 ; ( a1 -- a2 f ) ; loop through the dictionary names h 10896 */
+ {.type FromH0, .u {.p MV_Findadr}}, /* dd MV_Findadr 10904 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 10912 */
+ {.type FromH0, .u {.p MV_Dp}}, /* dd MV_Dp 10920 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch ; get dictionary link 10928 */
+ {.type FromH0, .u {.p C_qdup}}, /* dd C_qdup 10936 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 10944 */
+ {.type FromH0, .u {.p L159}}, /* dd L159 ; seached until the first dictionary entry get out 10952 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup ; ( a -- a a ) 10960 */
+ {.type FromH0, .u {.p C_cellplus}}, /* dd C_cellplus ; lenth + initial name address 10968 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch ; length + initial name 10976 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 10984 */
+ {.type Absolute, .u {.p 64}}, /* dd 64 ; max name length? 10992 */
+ {.type FromH0, .u {.p M_binand}}, /* dd M_binand ; keep only the length 11000 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 11008 */
+ {.type FromH0, .u {.p L160}}, /* dd L160 11016 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 11024 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 11032 */
+ {.type FromH0, .u {.p L161}}, /* dd L161 11040 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 11048 */
+ {.type FromH0, .u {.p C_cellplus}}, /* dd C_cellplus 11056 */
+ {.type FromH0, .u {.p C_count}}, /* dd C_count ; ( a1 a1+8 -- a1 a1+8+1 n ) 11064 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 11072 */
+ {.type Absolute, .u {.p 63}}, /* dd 63 11080 */
+ {.type FromH0, .u {.p M_binand}}, /* dd M_binand ; ( a1 a1+8+1 n 63 -- a1 a1+8+1 n&63 ) 11088 */
+ {.type FromH0, .u {.p MV_Findadr}}, /* dd MV_Findadr 11096 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 11104 */
+ {.type FromH0, .u {.p C_count}}, /* dd C_count ; ( a1 a1+8+1 n&63 a2 n2 -- a1 a1+8+1 n&63 a2+1 n2 ) 11112 */
+ {.type FromH0, .u {.p C_compare}}, /* dd C_compare ; ( -- a1 n ) compare dictionary entry with name 11120 */
+ {.type FromH0, .u {.p C_0eq}}, /* dd C_0eq ; found a match? 11128 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 11136 */
+ {.type FromH0, .u {.p L162}}, /* dd L162 11144 */
+ {.type FromH0, .u {.p C_cellplus}}, /* dd C_cellplus 11152 */
+ {.type FromH0, .u {.p C_true}}, /* dd C_true 11160 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 11168 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 11176 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 11184 */
+ {.type FromH0, .u {.p L158}}, /* dd L158 11192 */
+ {.type FromH0, .u {.p MV_Findadr}}, /* dd MV_Findadr 11200 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 11208 */
+ {.type FromH0, .u {.p C_false}}, /* dd C_false 11216 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 11224 */
+ {.type Header, .u {.hdr { 4, "find", /* C_find = 11240 */ colon }}}, /* CENTRY "find" find 4 ; ( a1 -- a2 f )? h 11248 */
+ {.type FromH0, .u {.p C_findname}}, /* dd C_findname 11256 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 11264 */
+ {.type FromH0, .u {.p L164}}, /* dd L164 11272 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 11280 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 11288 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 11296 */
+ {.type FromH0, .u {.p M_over}}, /* dd M_over 11304 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 11312 */
+ {.type Absolute, .u {.p 63}}, /* dd 63 11320 */
+ {.type FromH0, .u {.p M_binand}}, /* dd M_binand 11328 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 11336 */
+ {.type FromH0, .u {.p C_1plus}}, /* dd C_1plus 11344 */
+ {.type FromH0, .u {.p C_aligned}}, /* dd C_aligned 11352 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 11360 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 11368 */
+ {.type Absolute, .u {.p 128}}, /* dd 128 11376 */
+ {.type FromH0, .u {.p M_binand}}, /* dd M_binand 11384 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 11392 */
+ {.type FromH0, .u {.p L165}}, /* dd L165 11400 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 11408 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 11416 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 11424 */
+ {.type FromH0, .u {.p L166}}, /* dd L166 11432 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 11440 */
+ {.type Absolute, .u {.p -1}}, /* dd -1 11448 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 11456 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 11464 */
+ {.type FromH0, .u {.p L167}}, /* dd L167 11472 */
+ {.type FromH0, .u {.p C_false}}, /* dd C_false 11480 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 11488 */
+ {.type Header, .u {.hdr { 1, "'", /* C_single_quote = 11504 */ colon }}}, /* CENTRY "'" single_quote 1 h 11512 */
+ {.type FromH0, .u {.p C_bl}}, /* dd C_bl 11520 */
+ {.type FromH0, .u {.p C_word}}, /* dd C_word 11528 */
+ {.type FromH0, .u {.p C_find}}, /* dd C_find 11536 */
+ {.type FromH0, .u {.p C_0eq}}, /* dd C_0eq 11544 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 11552 */
+ {.type FromH0, .u {.p L169}}, /* dd L169 11560 */
+ {.type FromH0, .u {.p C_space}}, /* dd C_space 11568 */
+ {.type FromH0, .u {.p C_count}}, /* dd C_count 11576 */
+ {.type FromH0, .u {.p C_type}}, /* dd C_type 11584 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 11592 */
+ {.type FromH0, .u {.p L170}}, /* dd L170 11600 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 11608 */
+ {.type Absolute, .u {.p 3}}, /* dd 3 11616 */
+ {.type FromH0, .u {.p C_type}}, /* dd C_type 11624 */
+ {.type FromH0, .u {.p C_cr}}, /* dd C_cr 11632 */
+ {.type FromH0, .u {.p C_abort}}, /* dd C_abort 11640 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 11648 */
+ {.type Header, .u {.hdr { 6, "?stack", /* C_qstack = 11664 */ colon }}}, /* CENTRY "?stack" qstack 6 h 11672 */
+ {.type FromH0, .u {.p M_stackptr}}, /* dd M_stackptr 11680 */
+ {.type FromH0, .u {.p M_s0}}, /* dd M_s0 11688 */
+ {.type FromH0, .u {.p M_greater}}, /* dd M_greater 11696 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 11704 */
+ {.type FromH0, .u {.p L172}}, /* dd L172 11712 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 11720 */
+ {.type FromH0, .u {.p L173}}, /* dd L173 11728 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 11736 */
+ {.type Absolute, .u {.p 16}}, /* dd 16 11744 */
+ {.type FromH0, .u {.p C_type}}, /* dd C_type 11752 */
+ {.type FromH0, .u {.p C_cr}}, /* dd C_cr 11760 */
+ {.type FromH0, .u {.p C_abort}}, /* dd C_abort 11768 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 11776 */
+ {.type Header, .u {.hdr { 9, "interpret", /* C_interpret = 11800 */ colon }}}, /* CENTRY "interpret" interpret 9 ; there is stuff in TIB to be interpreted >In and >Limit are set h 11808 */
+ {.type FromH0, .u {.p C_bl}}, /* dd C_bl 11816 */
+ {.type FromH0, .u {.p C_word}}, /* dd C_word ; ( bl -- a ) 11824 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 11832 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 11840 */
+ {.type FromH0, .u {.p C_0neq}}, /* dd C_0neq 11848 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 11856 */
+ {.type FromH0, .u {.p L176}}, /* dd L176 ; count at a = 0 11864 */
+ {.type FromH0, .u {.p C_find}}, /* dd C_find ; ( a -- ) a = address of counted string 11872 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 11880 */
+ {.type FromH0, .u {.p L177}}, /* dd L177 11888 */
+ {.type FromH0, .u {.p M_execute}}, /* dd M_execute 11896 */
+ {.type FromH0, .u {.p C_qstack}}, /* dd C_qstack 11904 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 11912 */
+ {.type FromH0, .u {.p L178}}, /* dd L178 11920 */
+ {.type FromH0, .u {.p C_count}}, /* dd C_count 11928 */
+ {.type FromH0, .u {.p C_number}}, /* dd C_number 11936 */
+ {.type FromH0, .u {.p C_0eq}}, /* dd C_0eq 11944 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 11952 */
+ {.type FromH0, .u {.p L179}}, /* dd L179 11960 */
+ {.type FromH0, .u {.p C_space}}, /* dd C_space 11968 */
+ {.type FromH0, .u {.p C_type}}, /* dd C_type 11976 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 11984 */
+ {.type FromH0, .u {.p L180}}, /* dd L180 ; error I? 11992 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 12000 */
+ {.type Absolute, .u {.p 3}}, /* dd 3 12008 */
+ {.type FromH0, .u {.p C_type}}, /* dd C_type 12016 */
+ {.type FromH0, .u {.p C_cr}}, /* dd C_cr 12024 */
+ {.type FromH0, .u {.p C_abort}}, /* dd C_abort 12032 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 12040 */
+ {.type FromH0, .u {.p L175}}, /* dd L175 12048 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop ; count at a = 0 ( a -- ) 12056 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 12064 */
+ {.type Header, .u {.hdr { 6, "create", /* C_create = 12080 */ colon }}}, /* CENTRY "create" create 6 h 12088 */
+ {.type FromH0, .u {.p C_align}}, /* dd C_align 12096 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 12104 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 12112 */
+ {.type FromH0, .u {.p MV_Dp}}, /* dd MV_Dp 12120 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 12128 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 12136 */
+ {.type FromH0, .u {.p C_bl}}, /* dd C_bl 12144 */
+ {.type FromH0, .u {.p C_word}}, /* dd C_word 12152 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 12160 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 12168 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 12176 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 12184 */
+ {.type FromH0, .u {.p C_1plus}}, /* dd C_1plus 12192 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 12200 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 12208 */
+ {.type FromH0, .u {.p M_cmove}}, /* dd M_cmove 12216 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 12224 */
+ {.type FromH0, .u {.p C_allot}}, /* dd C_allot 12232 */
+ {.type FromH0, .u {.p C_align}}, /* dd C_align 12240 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 12248 */
+ {.type FromH0, .u {.p M_variable}}, /* dd M_variable 12256 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 12264 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 12272 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 12280 */
+ {.type FromH0, .u {.p MV_Dp}}, /* dd MV_Dp 12288 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 12296 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 12304 */
+ {.type Header, .u {.hdr { 8, "variable", /* C_variable = 12320 */ colon }}}, /* CENTRY "variable" variable 8 h 12328 */
+ {.type FromH0, .u {.p C_create}}, /* dd C_create 12336 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 12344 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 12352 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 12360 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 12368 */
+ {.type Header, .u {.hdr { 8, "constant", /* C_constant = 12384 */ colon }}}, /* CENTRY "constant" constant 8 h 12392 */
+ {.type FromH0, .u {.p C_create}}, /* dd C_create 12400 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 12408 */
+ {.type FromH0, .u {.p M_constant}}, /* dd M_constant 12416 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 12424 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 12432 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 12440 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 12448 */
+ {.type FromH0, .u {.p C_cells}}, /* dd C_cells 12456 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 12464 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 12472 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 12480 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 12488 */
+ {.type Header, .u {.hdr { 9, "immediate", /* C_immediate = 12512 */ colon }}}, /* CENTRY "immediate" immediate 9 h 12520 */
+ {.type FromH0, .u {.p MV_Dp}}, /* dd MV_Dp 12528 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 12536 */
+ {.type FromH0, .u {.p C_cellplus}}, /* dd C_cellplus 12544 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 12552 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 12560 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 12568 */
+ {.type Absolute, .u {.p 128}}, /* dd 128 12576 */
+ {.type FromH0, .u {.p M_binor}}, /* dd M_binor 12584 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 12592 */
+ {.type FromH0, .u {.p M_cstore}}, /* dd M_cstore 12600 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 12608 */
+ {.type Header, .u {.hdr { 4, ">cfa", /* C_tocfa = 12624 */ colon }}}, /* CENTRY ">cfa" tocfa 4 h 12632 */
+ {.type FromH0, .u {.p C_count}}, /* dd C_count 12640 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 12648 */
+ {.type Absolute, .u {.p 63}}, /* dd 63 12656 */
+ {.type FromH0, .u {.p M_binand}}, /* dd M_binand 12664 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 12672 */
+ {.type FromH0, .u {.p C_aligned}}, /* dd C_aligned 12680 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 12688 */
+ {.type Header, .u {.hdr { 7, "compile", /* C_compile = 12704 */ colon }}}, /* CENTRY "compile" compile 7 h 12712 */
+ {.type FromH0, .u {.p C_findname}}, /* dd C_findname 12720 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 12728 */
+ {.type FromH0, .u {.p L188}}, /* dd L188 12736 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 12744 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 12752 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 12760 */
+ {.type Absolute, .u {.p 128}}, /* dd 128 12768 */
+ {.type FromH0, .u {.p M_binand}}, /* dd M_binand 12776 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 12784 */
+ {.type FromH0, .u {.p L189}}, /* dd L189 12792 */
+ {.type FromH0, .u {.p C_tocfa}}, /* dd C_tocfa ; immediate 12800 */
+ {.type FromH0, .u {.p M_execute}}, /* dd M_execute 12808 */
+ {.type FromH0, .u {.p C_qstack}}, /* dd C_qstack 12816 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 12824 */
+ {.type FromH0, .u {.p L190}}, /* dd L190 12832 */
+ {.type FromH0, .u {.p C_tocfa}}, /* dd C_tocfa 12840 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 12848 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 12856 */
+ {.type FromH0, .u {.p L191}}, /* dd L191 12864 */
+ {.type FromH0, .u {.p C_count}}, /* dd C_count 12872 */
+ {.type FromH0, .u {.p C_number}}, /* dd C_number 12880 */
+ {.type FromH0, .u {.p C_0eq}}, /* dd C_0eq 12888 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 12896 */
+ {.type FromH0, .u {.p L192}}, /* dd L192 12904 */
+ {.type FromH0, .u {.p C_space}}, /* dd C_space 12912 */
+ {.type FromH0, .u {.p C_type}}, /* dd C_type 12920 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 12928 */
+ {.type FromH0, .u {.p L193}}, /* dd L193 12936 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 12944 */
+ {.type Absolute, .u {.p 3}}, /* dd 3 12952 */
+ {.type FromH0, .u {.p C_type}}, /* dd C_type 12960 */
+ {.type FromH0, .u {.p C_cr}}, /* dd C_cr 12968 */
+ {.type FromH0, .u {.p C_abort}}, /* dd C_abort 12976 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 12984 */
+ {.type FromH0, .u {.p L194}}, /* dd L194 12992 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 13000 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 13008 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 13016 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 13024 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 13032 */
+ {.type Header, .u {.hdr { 1, "]", /* C_close_bracket = 13048 */ colon }}}, /* CENTRY "]" close_bracket 1 h 13056 */
+ {.type FromH0, .u {.p MV_State}}, /* dd MV_State 13064 */
+ {.type FromH0, .u {.p C_on}}, /* dd C_on 13072 */
+ {.type FromH0, .u {.p C_bl}}, /* dd C_bl 13080 */
+ {.type FromH0, .u {.p C_word}}, /* dd C_word 13088 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 13096 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 13104 */
+ {.type FromH0, .u {.p C_0eq}}, /* dd C_0eq 13112 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 13120 */
+ {.type FromH0, .u {.p L197}}, /* dd L197 13128 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 13136 */
+ {.type FromH0, .u {.p C_refill}}, /* dd C_refill 13144 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 13152 */
+ {.type FromH0, .u {.p L198}}, /* dd L198 13160 */
+ {.type FromH0, .u {.p C_compile}}, /* dd C_compile 13168 */
+ {.type FromH0, .u {.p MV_State}}, /* dd MV_State 13176 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 13184 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 13192 */
+ {.type FromH0, .u {.p L199}}, /* dd L199 13200 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 13208 */
+ {.type FromH0, .u {.p L196}}, /* dd L196 13216 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 13224 */
+ {.type FromH0, .u {.p MV_State}}, /* dd MV_State 13232 */
+ {.type FromH0, .u {.p C_off}}, /* dd C_off 13240 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 13248 */
+ {.type Header, .u {.hdr { 6, "smudge", /* C_smudge = 13264 */ colon }}}, /* CENTRY "smudge" smudge 6 h 13272 */
+ {.type FromH0, .u {.p MV_Dp}}, /* dd MV_Dp 13280 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 13288 */
+ {.type FromH0, .u {.p C_cellplus}}, /* dd C_cellplus 13296 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 13304 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 13312 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 13320 */
+ {.type Absolute, .u {.p 64}}, /* dd 64 13328 */
+ {.type FromH0, .u {.p M_binor}}, /* dd M_binor 13336 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 13344 */
+ {.type FromH0, .u {.p M_cstore}}, /* dd M_cstore 13352 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 13360 */
+ {.type Header, .u {.hdr { 6, "reveal", /* C_reveal = 13376 */ colon }}}, /* CENTRY "reveal" reveal 6 h 13384 */
+ {.type FromH0, .u {.p MV_Dp}}, /* dd MV_Dp 13392 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 13400 */
+ {.type FromH0, .u {.p C_cellplus}}, /* dd C_cellplus 13408 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 13416 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 13424 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 13432 */
+ {.type Absolute, .u {.p 64}}, /* dd 64 13440 */
+ {.type FromH0, .u {.p C_invert}}, /* dd C_invert 13448 */
+ {.type FromH0, .u {.p M_binand}}, /* dd M_binand 13456 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 13464 */
+ {.type FromH0, .u {.p M_cstore}}, /* dd M_cstore 13472 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 13480 */
+ {.type Header, .u {.hdr { 1, ":", /* C_colon = 13496 */ colon }}}, /* CENTRY ":" colon 1 h 13504 */
+ {.type FromH0, .u {.p C_create}}, /* dd C_create 13512 */
+ {.type FromH0, .u {.p C_smudge}}, /* dd C_smudge 13520 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 13528 */
+ {.type FromH0, .u {.p M_colon}}, /* dd M_colon 13536 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 13544 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 13552 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 13560 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 13568 */
+ {.type FromH0, .u {.p C_cells}}, /* dd C_cells 13576 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus 13584 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 13592 */
+ {.type FromH0, .u {.p C_close_bracket}}, /* dd C_close_bracket 13600 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 13608 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 13616 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 13624 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 13632 */
+ {.type FromH0, .u {.p MV_State}}, /* dd MV_State 13640 */
+ {.type FromH0, .u {.p C_off}}, /* dd C_off 13648 */
+ {.type FromH0, .u {.p C_reveal}}, /* dd C_reveal 13656 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 13664 */
+ {.type FromH0, .u {.p MV_Dp}}, /* dd MV_Dp 13672 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 13680 */
+ {.type FromH0, .u {.p C_cellplus}}, /* dd C_cellplus 13688 */
+ {.type FromH0, .u {.p C_tocfa}}, /* dd C_tocfa 13696 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 13704 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 13712 */
+ {.type Header, .u {.hdr { 4, "char", /* C_L206 = 13728 */ colon }}}, /* CENTRY "char" L206 4 h 13736 */
+ {.type FromH0, .u {.p C_bl}}, /* dd C_bl 13744 */
+ {.type FromH0, .u {.p C_word}}, /* dd C_word 13752 */
+ {.type FromH0, .u {.p C_1plus}}, /* dd C_1plus 13760 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 13768 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 13776 */
+ {.type Header, .u {.hdr { 7, "literal", /* C_literal = 13792 */ colon }}}, /* CENTRY "literal" literal 7 h 13800 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 13808 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 13816 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 13824 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 13832 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 13840 */
+ {.type Header, .u {.hdr { 8, "sliteral", /* C_sliteral = 13856 */ colon }}}, /* CENTRY "sliteral" sliteral 8 h 13864 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 13872 */
+ {.type FromH0, .u {.p M_sliteral}}, /* dd M_sliteral 13880 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 13888 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 13896 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 13904 */
+ {.type Absolute, .u {.p 34}}, /* dd 34 13912 */
+ {.type FromH0, .u {.p C_parse}}, /* dd C_parse 13920 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 13928 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 13936 */
+ {.type FromH0, .u {.p C_1plus}}, /* dd C_1plus 13944 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 13952 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 13960 */
+ {.type FromH0, .u {.p M_rfetch}}, /* dd M_rfetch 13968 */
+ {.type FromH0, .u {.p M_cmove}}, /* dd M_cmove 13976 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 13984 */
+ {.type FromH0, .u {.p C_allot}}, /* dd C_allot 13992 */
+ {.type FromH0, .u {.p C_align}}, /* dd C_align 14000 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 14008 */
+ {.type Header, .u {.hdr { 6, "string", /* C_string = 14024 */ colon }}}, /* CENTRY "string" string 6 h 14032 */
+ {.type FromH0, .u {.p C_word}}, /* dd C_word 14040 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 14048 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 14056 */
+ {.type FromH0, .u {.p C_1plus}}, /* dd C_1plus 14064 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 14072 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 14080 */
+ {.type FromH0, .u {.p M_rfetch}}, /* dd M_rfetch 14088 */
+ {.type FromH0, .u {.p M_cmove}}, /* dd M_cmove 14096 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 14104 */
+ {.type FromH0, .u {.p C_allot}}, /* dd C_allot 14112 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 14120 */
+ {.type FromH0, .u {.p C_bl}}, /* dd C_bl 14128 */
+ {.type FromH0, .u {.p C_word}}, /* dd C_word 14136 */
+ {.type FromH0, .u {.p C_1plus}}, /* dd C_1plus 14144 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 14152 */
+ {.type FromH0, .u {.p C_literal}}, /* dd C_literal 14160 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 14168 */
+ {.type FromH0, .u {.p C_single_quote}}, /* dd C_single_quote 14176 */
+ {.type FromH0, .u {.p C_literal}}, /* dd C_literal 14184 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 14192 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 14200 */
+ {.type Absolute, .u {.p 41}}, /* dd 41 14208 */
+ {.type FromH0, .u {.p C_parse}}, /* dd C_parse 14216 */
+ {.type FromH0, .u {.p M_drop}}, /* dd M_drop 14224 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 14232 */
+ {.type FromH0, .u {.p MV_Blk}}, /* dd MV_Blk 14240 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 14248 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 14256 */
+ {.type FromH0, .u {.p L214}}, /* dd L214 14264 */
+ {.type FromH0, .u {.p MV_toIn}}, /* dd MV_toIn 14272 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 14280 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 14288 */
+ {.type Absolute, .u {.p 63}}, /* dd 63 14296 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 14304 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 14312 */
+ {.type Absolute, .u {.p 63}}, /* dd 63 14320 */
+ {.type FromH0, .u {.p C_invert}}, /* dd C_invert 14328 */
+ {.type FromH0, .u {.p M_binand}}, /* dd M_binand 14336 */
+ {.type FromH0, .u {.p MV_toIn}}, /* dd MV_toIn 14344 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 14352 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 14360 */
+ {.type FromH0, .u {.p L215}}, /* dd L215 14368 */
+ {.type FromH0, .u {.p MV_toLimit}}, /* dd MV_toLimit 14376 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 14384 */
+ {.type FromH0, .u {.p MV_toIn}}, /* dd MV_toIn 14392 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 14400 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 14408 */
+ {.type Header, .u {.hdr { 8, "(?abort)", /* C_qabort_parens = 14424 */ colon }}}, /* CENTRY "(?abort)" qabort_parens 8 h 14432 */
+ {.type FromH0, .u {.p MV_State}}, /* dd MV_State 14440 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 14448 */
+ {.type FromH0, .u {.p L217}}, /* dd L217 14456 */
+ {.type FromH0, .u {.p C_space}}, /* dd C_space 14464 */
+ {.type FromH0, .u {.p C_type}}, /* dd C_type 14472 */
+ {.type FromH0, .u {.p C_cr}}, /* dd C_cr 14480 */
+ {.type FromH0, .u {.p C_abort}}, /* dd C_abort 14488 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 14496 */
+ {.type FromH0, .u {.p L218}}, /* dd L218 14504 */
+ {.type FromH0, .u {.p C_2drop}}, /* dd C_2drop 14512 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 14520 */
+ {.type FromH0, .u {.p C_sliteral}}, /* dd C_sliteral 14528 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 14536 */
+ {.type FromH0, .u {.p C_qabort_parens}}, /* dd C_qabort_parens 14544 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 14552 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 14560 */
+ {.type Header, .u {.hdr { 1, "\"", /* C_double_quote = 14576 */ colon }}}, /* CENTRY "\"" double_quote 1 h 14584 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 14592 */
+ {.type Absolute, .u {.p 34}}, /* dd 34 14600 */
+ {.type FromH0, .u {.p C_word}}, /* dd C_word 14608 */
+ {.type FromH0, .u {.p C_count}}, /* dd C_count 14616 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 14624 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 14632 */
+ {.type FromH0, .u {.p M_rfetch}}, /* dd M_rfetch 14640 */
+ {.type FromH0, .u {.p M_cmove}}, /* dd M_cmove 14648 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 14656 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 14664 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 14672 */
+ {.type FromH0, .u {.p C_allot}}, /* dd C_allot 14680 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 14688 */
+ {.type Header, .u {.hdr { 2, "c\"", /* C_cdouble_quote = 14704 */ colon }}}, /* CENTRY "c\"" cdouble_quote 2 h 14712 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 14720 */
+ {.type Absolute, .u {.p 34}}, /* dd 34 14728 */
+ {.type FromH0, .u {.p C_word}}, /* dd C_word 14736 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 14744 */
+ {.type FromH0, .u {.p M_cfetch}}, /* dd M_cfetch 14752 */
+ {.type FromH0, .u {.p C_1plus}}, /* dd C_1plus 14760 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 14768 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 14776 */
+ {.type FromH0, .u {.p M_rfetch}}, /* dd M_rfetch 14784 */
+ {.type FromH0, .u {.p M_cmove}}, /* dd M_cmove 14792 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 14800 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 14808 */
+ {.type FromH0, .u {.p C_allot}}, /* dd C_allot 14816 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 14824 */
+ {.type FromH0, .u {.p C_sliteral}}, /* dd C_sliteral 14832 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 14840 */
+ {.type FromH0, .u {.p C_sliteral}}, /* dd C_sliteral 14848 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 14856 */
+ {.type FromH0, .u {.p C_type}}, /* dd C_type 14864 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 14872 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 14880 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 14888 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 14896 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 14904 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 14912 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 14920 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 14928 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 14936 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 14944 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 14952 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 14960 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 14968 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 14976 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 14984 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 14992 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 15000 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 15008 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 15016 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 15024 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 15032 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 15040 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 15048 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 15056 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 15064 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 15072 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 15080 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 15088 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 15096 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15104 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 15112 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 15120 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 15128 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 15136 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15144 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 15152 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 15160 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 15168 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 15176 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15184 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 15192 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 15200 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 15208 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15216 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 15224 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 15232 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 15240 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15248 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 15256 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 15264 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 15272 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 15280 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 15288 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 15296 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 15304 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 15312 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15320 */
+ {.type FromH0, .u {.p M_doinit}}, /* dd M_doinit 15328 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 15336 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15344 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 15352 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 15360 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 15368 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15376 */
+ {.type FromH0, .u {.p M_doloop}}, /* dd M_doloop 15384 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 15392 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 15400 */
+ {.type FromH0, .u {.p C_qdup}}, /* dd C_qdup 15408 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 15416 */
+ {.type FromH0, .u {.p L234}}, /* dd L234 15424 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 15432 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 15440 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 15448 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 15456 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15464 */
+ {.type FromH0, .u {.p M_doploop}}, /* dd M_doploop 15472 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 15480 */
+ {.type FromH0, .u {.p C_comma}}, /* dd C_comma 15488 */
+ {.type FromH0, .u {.p C_qdup}}, /* dd C_qdup 15496 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 15504 */
+ {.type FromH0, .u {.p L236}}, /* dd L236 15512 */
+ {.type FromH0, .u {.p C_here}}, /* dd C_here 15520 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 15528 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 15536 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 15544 */
+ {.type Header, .u {.hdr { 3, "w/o", /* C_wo = 15560 */ colon }}}, /* CENTRY "w/o" wo 3 h 15568 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15576 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 15584 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15592 */
+ {.type Absolute, .u {.p 512}}, /* dd 512 15600 */
+ {.type FromH0, .u {.p M_binor}}, /* dd M_binor 15608 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15616 */
+ {.type Absolute, .u {.p 64}}, /* dd 64 15624 */
+ {.type FromH0, .u {.p M_binor}}, /* dd M_binor 15632 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 15640 */
+ {.type Header, .u {.hdr { 3, "r/o", /* C_ro = 15656 */ colon }}}, /* CENTRY "r/o" ro 3 h 15664 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15672 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 15680 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 15688 */
+ {.type Header, .u {.hdr { 3, "r/w", /* C_rw = 15704 */ colon }}}, /* CENTRY "r/w" rw 3 h 15712 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15720 */
+ {.type Absolute, .u {.p 2}}, /* dd 2 15728 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 15736 */
+ {.type Header, .u {.hdr { 9, "open-file", /* C_open_file = 15760 */ colon }}}, /* CENTRY "open-file" open_file 9 h 15768 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 15776 */
+ {.type FromH0, .u {.p C_pad}}, /* dd C_pad 15784 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15792 */
+ {.type Absolute, .u {.p 1024}}, /* dd 1024 15800 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 15808 */
+ {.type FromH0, .u {.p M_xswap}}, /* dd M_xswap 15816 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 15824 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 15832 */
+ {.type FromH0, .u {.p M_cmove}}, /* dd M_cmove 15840 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15848 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 15856 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 15864 */
+ {.type FromH0, .u {.p C_pad}}, /* dd C_pad 15872 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 15880 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15888 */
+ {.type Absolute, .u {.p 1024}}, /* dd 1024 15896 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 15904 */
+ {.type FromH0, .u {.p M_cstore}}, /* dd M_cstore 15912 */
+ {.type FromH0, .u {.p C_pad}}, /* dd C_pad 15920 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15928 */
+ {.type Absolute, .u {.p 1024}}, /* dd 1024 15936 */
+ {.type FromH0, .u {.p M_plus}}, /* dd M_plus 15944 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 15952 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15960 */
+ {.type Absolute, .u {.p 420}}, /* dd 420 15968 */
+ {.type FromH0, .u {.p M_fthopen}}, /* dd M_fthopen 15976 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 15984 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 15992 */
+ {.type Absolute, .u {.p -1}}, /* dd -1 16000 */
+ {.type FromH0, .u {.p M_greater}}, /* dd M_greater 16008 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 16016 */
+ {.type Header, .u {.hdr { 10, "close-file", /* C_close_file = 16040 */ colon }}}, /* CENTRY "close-file" close_file 10 h 16048 */
+ {.type FromH0, .u {.p M_fthclose}}, /* dd M_fthclose 16056 */
+ {.type FromH0, .u {.p C_0eq}}, /* dd C_0eq 16064 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 16072 */
+ {.type Header, .u {.hdr { 9, "read-file", /* C_read_file = 16096 */ colon }}}, /* CENTRY "read-file" read_file 9 h 16104 */
+ {.type FromH0, .u {.p M_fthread}}, /* dd M_fthread 16112 */
+ {.type FromH0, .u {.p M_dup}}, /* dd M_dup 16120 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 16128 */
+ {.type Absolute, .u {.p -1}}, /* dd -1 16136 */
+ {.type FromH0, .u {.p C_neq}}, /* dd C_neq 16144 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 16152 */
+ {.type Header, .u {.hdr { 10, "write-file", /* C_write_file = 16176 */ colon }}}, /* CENTRY "write-file" write_file 10 h 16184 */
+ {.type FromH0, .u {.p M_fthwrite}}, /* dd M_fthwrite 16192 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 16200 */
+ {.type Absolute, .u {.p -1}}, /* dd -1 16208 */
+ {.type FromH0, .u {.p C_neq}}, /* dd C_neq 16216 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 16224 */
+ {.type Header, .u {.hdr { 15, "reposition-file", /* C_reposition_file = 16248 */ colon }}}, /* CENTRY "reposition-file" reposition_file 15 h 16256 */
+ {.type FromH0, .u {.p M_fthseek}}, /* dd M_fthseek 16264 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 16272 */
+ {.type Absolute, .u {.p -1}}, /* dd -1 16280 */
+ {.type FromH0, .u {.p C_neq}}, /* dd C_neq 16288 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 16296 */
+ {.type Header, .u {.hdr { 7, "?fcheck", /* C_qfcheck = 16312 */ colon }}}, /* CENTRY "?fcheck" qfcheck 7 h 16320 */
+ {.type FromH0, .u {.p C_0eq}}, /* dd C_0eq 16328 */
+ {.type FromH0, .u {.p M_cjump}}, /* dd M_cjump 16336 */
+ {.type FromH0, .u {.p L246}}, /* dd L246 16344 */
+ {.type FromH0, .u {.p C_space}}, /* dd C_space 16352 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 16360 */
+ {.type FromH0, .u {.p L247}}, /* dd L247 16368 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 16376 */
+ {.type Absolute, .u {.p 9}}, /* dd 9 16384 */
+ {.type FromH0, .u {.p C_type}}, /* dd C_type 16392 */
+ {.type FromH0, .u {.p C_cr}}, /* dd C_cr 16400 */
+ {.type FromH0, .u {.p C_abort}}, /* dd C_abort 16408 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 16416 */
+ {.type Header, .u {.hdr { 3, "bye", /* C_bye = 16432 */ colon }}}, /* CENTRY "bye" bye 3 h 16440 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 16448 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 16456 */
+ {.type FromH0, .u {.p M_terminate}}, /* dd M_terminate 16464 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 16472 */
+ {.type Header, .u {.hdr { 7, "include", /* C_include = 16488 */ colon }}}, /* CENTRY "include" include 7 h 16496 */
+ {.type FromH0, .u {.p C_bl}}, /* dd C_bl 16504 */
+ {.type FromH0, .u {.p C_word}}, /* dd C_word 16512 */
+ {.type FromH0, .u {.p M_rpush}}, /* dd M_rpush 16520 */
+ {.type FromH0, .u {.p MV_toLimit}}, /* dd MV_toLimit 16528 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch 16536 */
+ {.type FromH0, .u {.p MV_toIn}}, /* dd MV_toIn 16544 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 16552 */
+ {.type FromH0, .u {.p C_save_input}}, /* dd C_save_input 16560 */
+ {.type FromH0, .u {.p M_rpop}}, /* dd M_rpop 16568 */
+ {.type FromH0, .u {.p C_count}}, /* dd C_count 16576 */
+ {.type FromH0, .u {.p C_ro}}, /* dd C_ro 16584 */
+ {.type FromH0, .u {.p C_open_file}}, /* dd C_open_file 16592 */
+ {.type FromH0, .u {.p C_qfcheck}}, /* dd C_qfcheck 16600 */
+ {.type FromH0, .u {.p MV_Infd}}, /* dd MV_Infd 16608 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 16616 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 16624 */
+ {.type Header, .u {.hdr { 5, "crash", /* C_crash = 16640 */ colon }}}, /* CENTRY "crash" crash 5 h 16648 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 16656 */
+ {.type FromH0, .u {.p L251}}, /* dd L251 16664 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 16672 */
+ {.type Absolute, .u {.p 30}}, /* dd 30 16680 */
+ {.type FromH0, .u {.p C_type}}, /* dd C_type 16688 */
+ {.type FromH0, .u {.p C_cr}}, /* dd C_cr 16696 */
+ {.type FromH0, .u {.p C_abort}}, /* dd C_abort 16704 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 16712 */
+ {.type Header, .u {.hdr { 4, "quit", /* C_quit = 16728 */ colon }}}, /* CENTRY "quit" quit 4 ; interpreter loop h 16736 */
+ {.type FromH0, .u {.p M_reset}}, /* dd M_reset ; initialize return stack 16744 */
+ {.type FromH0, .u {.p M_clear}}, /* dd M_clear ; SP = sstack_end initialize data stack 16752 */
+ {.type FromH0, .u {.p C_query}}, /* dd C_query 16760 */
+ {.type FromH0, .u {.p C_interpret}}, /* dd C_interpret 16768 */
+ {.type FromH0, .u {.p M_jump}}, /* dd M_jump 16776 */
+ {.type FromH0, .u {.p L253}}, /* dd L253 16784 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon ; why is this needed? 16792 */
+ {.type Header, .u {.hdr { 7, "(abort)", /* C_parenabort = 16808 */ colon }}}, /* CENTRY "(abort)" parenabort 7 ; TODO correct below stack notations h 16816 */
+ {.type FromH0, .u {.p MV_State}}, /* dd MV_State ; ( mv_State -- ) 16824 */
+ {.type FromH0, .u {.p C_off}}, /* dd C_off ; off sets variable state = 0 16832 */
+ {.type FromH0, .u {.p MC_TIB}}, /* dd MC_TIB ; constant puts address of tibuffer on the top of stack 16840 */
+ {.type FromH0, .u {.p MV_Sourcebuf}}, /* dd MV_Sourcebuf ; variable sourcebuf 16848 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store ; variable sourcebuf = address of tibuffer 16856 */
+ {.type FromH0, .u {.p MV_Blk}}, /* dd MV_Blk ; variable blk 16864 */
+ {.type FromH0, .u {.p C_off}}, /* dd C_off ; off variable blk = 0 16872 */
+ {.type FromH0, .u {.p MC_STDIN}}, /* dd MC_STDIN 16880 */
+ {.type FromH0, .u {.p MV_Infd}}, /* dd MV_Infd 16888 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 16896 */
+ {.type FromH0, .u {.p MC_STDOUT}}, /* dd MC_STDOUT 16904 */
+ {.type FromH0, .u {.p MV_Outfd}}, /* dd MV_Outfd 16912 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 16920 */
+ {.type FromH0, .u {.p MC_STDERR}}, /* dd MC_STDERR 16928 */
+ {.type FromH0, .u {.p MV_Errfd}}, /* dd MV_Errfd 16936 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 16944 */
+ {.type FromH0, .u {.p C_quit}}, /* dd C_quit ; quit resets stacks and is the interpreter loop 16952 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon ; why is this needed? quit does not return unless it breaks 16960 */
+ {.type Header, .u {.hdr { 7, "oldboot", /* C_oldboot = 16976 */ colon }}}, /* CENTRY "oldboot" oldboot 7 ; TODO correct below stack notations and this is obsolete. leaving it here for reference until it all works well h 16984 */
+ {.type FromH0, .u {.p M_reset}}, /* dd M_reset 16992 */
+ {.type FromH0, .u {.p M_clear}}, /* dd M_clear ; SP = sstack_end 17000 */
+ {.type FromH0, .u {.p M_stackptr}}, /* dd M_stackptr ; (D -- FFEND) 17008 */
+ {.type FromH0, .u {.p M_s0}}, /* dd M_s0 17016 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store ; s0 = FFEND 17024 */
+ {.type FromH0, .u {.p M_h0}}, /* dd M_h0 ; heaptop = heapend 17032 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch ; ( heapend -- ) 17040 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 17048 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 ; ( heapend 1 -- ) 17056 */
+ {.type FromH0, .u {.p C_cells}}, /* dd C_cells ; cells ( heapend 8 -- ) 17064 */
+ {.type FromH0, .u {.p M_minus}}, /* dd M_minus ; ( heapend-8 -- ) 17072 */
+ {.type FromH0, .u {.p M_fetch}}, /* dd M_fetch ; ( contents_from_heapend-8 -- ) 17080 */
+ {.type FromH0, .u {.p M_args}}, /* dd M_args ; variable args 17088 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store ; args = contents_from_heapend-8 17096 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 17104 */
+ {.type FromH0, .u {.p C_parenabort}}, /* dd C_parenabort ; ( (abort) -- ) 17112 */
+ {.type FromH0, .u {.p MV_Abortvec}}, /* dd MV_Abortvec ; variable abortvec 17120 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store ; variable abortvec = (abort) code address 17128 */
+ {.type FromH0, .u {.p MC_WORDB}}, /* dd MC_WORDB ; constant puts address of wordbuffer on the top of stack 17136 */
+ {.type FromH0, .u {.p MV_Wordbuf}}, /* dd MV_Wordbuf ; variable wordbuf 17144 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store ; variable wordbuf = address of wordbuffer 17152 */
+ {.type FromH0, .u {.p MC_TIB}}, /* dd MC_TIB ; constant puts address of tibuffer on the top of stack 17160 */
+ {.type FromH0, .u {.p MV_Sourcebuf}}, /* dd MV_Sourcebuf ; variable sourcebuf 17168 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store ; variable sourcebuf = address of tibuffer 17176 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 17184 */
+ {.type Absolute, .u {.p 0}}, /* dd 0 17192 */
+ {.type FromH0, .u {.p MV_Infd}}, /* dd MV_Infd 17200 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store ; stdin = 0 17208 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 17216 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 17224 */
+ {.type FromH0, .u {.p MV_Outfd}}, /* dd MV_Outfd 17232 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store ; stdout = 1 17240 */
+ {.type FromH0, .u {.p MV_State}}, /* dd MV_State 17248 */
+ {.type FromH0, .u {.p C_off}}, /* dd C_off ; off stores 0 at state 17256 */
+ {.type FromH0, .u {.p C_decimal}}, /* dd C_decimal ; decimal setting base = 0 17264 */
+ {.type FromH0, .u {.p C_quit}}, /* dd C_quit ; quit 17272 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 17280 */
+ {.type Header, .u {.hdr { 4, "boot", /* C_boot = 17296 */ colon }}}, /* CENTRY "boot" boot 4 h 17304 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal ; this is not working TEST 17312 */
+ {.type Absolute, .u {.p 66}}, /* dd 66 17320 */
+ {.type FromH0, .u {.p MC_WORDB}}, /* dd MC_WORDB 17328 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 17336 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 17344 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 17352 */
+ {.type FromH0, .u {.p MC_WORDB}}, /* dd MC_WORDB 17360 */
+ {.type FromH0, .u {.p MC_STDOUT}}, /* dd MC_STDOUT 17368 */
+ {.type FromH0, .u {.p M_fthwrite}}, /* dd M_fthwrite 17376 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 17384 */
+ {.type Absolute, .u {.p 1}}, /* dd 1 17392 */
+ {.type FromH0, .u {.p MC_WORDB}}, /* dd MC_WORDB 17400 */
+ {.type FromH0, .u {.p MC_STDIN}}, /* dd MC_STDIN 17408 */
+ {.type FromH0, .u {.p M_fthread}}, /* dd M_fthread ; this is not working TODO 17416 */
+ {.type FromH0, .u {.p M_reset}}, /* dd M_reset ; initialize return stack 17424 */
+ {.type FromH0, .u {.p M_clear}}, /* dd M_clear ; SP = sstack_end initialize data stack 17432 */
+ {.type FromH0, .u {.p M_literal}}, /* dd M_literal 17440 */
+ {.type FromH0, .u {.p C_parenabort}}, /* dd C_parenabort ; ( (abort) -- ) 17448 */
+ {.type FromH0, .u {.p MV_Abortvec}}, /* dd MV_Abortvec ; variable that puts (abort) code address on the stack 17456 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store ; variable abortvec = (abort) code address 17464 */
+ {.type FromH0, .u {.p MC_WORDB}}, /* dd MC_WORDB ; variable puts address of wordbuffer on the top of stack 17472 */
+ {.type FromH0, .u {.p MV_Wordbuf}}, /* dd MV_Wordbuf ; variable wordbuf 17480 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store ; variable wordbuf = address of wordbuffer 17488 */
+ {.type FromH0, .u {.p MC_TIB}}, /* dd MC_TIB ; constant puts address of tibuffer on the top of stack 17496 */
+ {.type FromH0, .u {.p MV_Sourcebuf}}, /* dd MV_Sourcebuf ; variable sourcebuf 17504 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store ; variable sourcebuf = address of tibuffer 17512 */
+ {.type FromH0, .u {.p MC_STDIN}}, /* dd MC_STDIN 17520 */
+ {.type FromH0, .u {.p MV_Infd}}, /* dd MV_Infd 17528 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store ; stdin = 0 17536 */
+ {.type FromH0, .u {.p MC_STDOUT}}, /* dd MC_STDOUT 17544 */
+ {.type FromH0, .u {.p MV_Outfd}}, /* dd MV_Outfd 17552 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 17560 */
+ {.type FromH0, .u {.p MC_STDERR}}, /* dd MC_STDERR 17568 */
+ {.type FromH0, .u {.p MV_Errfd}}, /* dd MV_Errfd 17576 */
+ {.type FromH0, .u {.p M_store}}, /* dd M_store 17584 */
+ {.type FromH0, .u {.p MV_State}}, /* dd MV_State 17592 */
+ {.type FromH0, .u {.p C_off}}, /* dd C_off ; off stores 0 at state 17600 */
+ {.type FromH0, .u {.p C_decimal}}, /* dd C_decimal ; decimal setting base = 0 17608 */
+ {.type FromH0, .u {.p C_quit}}, /* dd C_quit ; quit 17616 */
+ {.type FromH0, .u {.p M_exitcolon}}, /* dd M_exitcolon 17624 */
+ {.type Chars, .u {.str "unable to restore input"}}, /* 17648 */
+ {.type Chars, .u {.str " Q?"}}, /* 17652 */
+ {.type Chars, .u {.str " stack underflow"}}, /* 17669 */
+ {.type Chars, .u {.str " I?"}}, /* 17673 */
+ {.type Chars, .u {.str " C?"}}, /* 17677 */
+ {.type Chars, .u {.str "I/O error"}}, /* 17687 */
+ {.type Chars, .u {.str "uninitialized execution vector"}}, /* 17718 */
+ {.type Chars, .u {.str " ok"}}, /* 17722 */
+};
+
--- /dev/null
+++ b/os/pc64/forth.head.h
@@ -1,0 +1,29 @@
+/*
+ * Forth dictionary
+ */
+#define WORDB (BY2WD*144) /* word buffer */
+#define TIB (7*BY2PG) /* text input buffer */
+enum {
+ Header,
+ IHeader, /* Immediate dictionary definition */
+ Absolute,
+ FromH0,
+ Chars,
+};
+
+typedef struct Hdr Hdr;
+ struct Hdr {
+ int len;
+ char *name;
+ void *cfa;
+ };
+typedef struct Fentry Fentry;
+struct Fentry
+{
+ int type;
+ union {
+ Hdr hdr;
+ intptr p;
+ char *str;
+ } u;
+};
--- a/os/pc64/forth.s
+++ b/os/pc64/forth.s
@@ -120,7 +120,6 @@
Variables - initial capital case
words - lower case
*/
-#include "primitives.s"
TEXT forthmain(SB), 1, $-4 /* _main(SB), 1, $-4 without the libc */
/* Argument has the start of heap */
@@ -566,7 +565,5 @@
*/
TEXT forthend(SB), 1, $-4
-
-#include "words.s"
END
--- /dev/null
+++ b/os/pc64/mkdict.awk
@@ -1,0 +1,84 @@
+#!/bin/awk -f
+
+# rc script to build amd64 9front forth words from words-nasm.s
+# ./mkdict.awk primitives-nasm.s words-nassm.s
+# watch -e 'mkdict.awk' 'cat primitives-nasm.s words-nasm.s | ./mkdict.awk'
+
+BEGIN{
+ last=""
+ nlines=0
+ addr=""
+ h=0 # here = dictionary pointer
+ nlabels=0
+ literal = "^[+-]?[0-9]+$"
+ branchlabel = "^L[0-9]+:$"
+ fentries = "Fentry fentries[] = {\n";
+}
+
+function header(len, name, prefix, label, cfa, immediate){
+ h+=8; # for link
+ h+=len;
+ if(len%8 > 0)
+ h += 8-(len%8);
+ labels[nlabels++] = prefix label " = " h;
+ h+=8; # for cfa
+ cfas[cfa] = 1
+ if(immediate == 1)
+ type = "IHeader"
+ else
+ type = "Header"
+ fentries = fentries " {.type " type ", .u {.hdr { " len ", " name ", /* " labels[nlabels-1] " */ " cfa " }}}, /* " $0 " h " h " */\n";
+ # print(prefix label " @ " labels[nlabels-1]);
+}
+$1 == "MENTRY" {
+ name = $2
+ header($4, name, "M_", $3, $3);
+}
+$1 == "MCENTRY" {
+ name = $2
+ header($5, name, "MC_", $3, "constant")
+ h+=8;
+ fentries = fentries " {.type Absolute, .u {.p " $4"}}, /* " h " */\n"
+}
+$1 == "MVENTRY" {
+ name = $2
+ header($5, name, "MV_", $3, "variable")
+ h+=8;
+ fentries = fentries " {.type Absolute, .u {.p " $4 "}}, /* " h " */\n"
+}
+$1 == "CENTRY" {
+ name = $2
+ gsub(/^c_/,"", $3)
+ header($4, name, "C_", $3, "colon")
+}
+$1 == "dd" && $2 ~ literal {
+ h+=8
+ fentries = fentries " {.type Absolute, .u {.p " $2 "}}, /* " $0 " " h " */\n"
+}
+$1 == "dd" && $2 ~ "^[M_|C_|(MC_)|(MV_)|L]" {
+ h+=8
+ fentries = fentries " {.type FromH0, .u {.p " $2 "}}, /* " $0 " " h " */\n"
+}
+$1 ~ branchlabel {
+ gsub(/:/,"", $1)
+ labels[nlabels++] = $1 " = " h;
+}
+$1 == "db" {
+ gsub(/^db /,"", $0)
+ h += length($0)-2+1; # -2 for the quotes, +1 for the null character
+ fentries = fentries " {.type Chars, .u {.str " $0 "}}, /* " h " */\n"
+}
+$0 ~ /^$/ {
+ fentries = fentries $0
+}
+END{
+ fentries= fentries "};\n"
+ # print("here " h);
+ print("enum {");
+ for(i = 0; i < nlabels; i++)
+ print " " labels[i] ","
+ print("};");
+ for(c in cfas)
+ print "extern void *" c "(void);"
+ print(fentries);
+}
--- a/os/pc64/mkfile
+++ b/os/pc64/mkfile
@@ -90,13 +90,13 @@
main.$O: $ROOT/Inferno/$OBJTYPE/include/ureg.h rebootcode.i
trap.$O: $ROOT/Inferno/$OBJTYPE/include/ureg.h
-forth.$O: primitives.s words.s bindings.s
-primitives.s: primitives.awk primitives-nasm.s
- cat primitives-nasm.s | ./primitives.awk > primitives.s
-words.s: words.awk words-nasm.s
- cat words-nasm.s | ./words.awk > words.s
+forth.$O: forth.h bindings.s
+forth.h: forth.head.h mkdict.awk primitives-nasm.s words-nasm.s
+ cp forth.head.h $target
+ cat primitives-nasm.s words-nasm.s | ./mkdict.awk >> $target
+devforth.$O: forth.h
-CLEANEXTRA=words.s primitives.s
+CLEANEXTRA=words.s primitives.s forth.h
devether.$O $ETHERS: etherif.h ../port/netif.h
$IP devip.$O: ../ip/ip.h
--- a/os/pc64/primitives-nasm.s
+++ b/os/pc64/primitives-nasm.s
@@ -1,85 +1,84 @@
-dict:
- MENTRY "@", fetch, 1
- MENTRY "!", store, 1
- MENTRY "c@", cfetch, 2
- MENTRY "c!", cstore, 2
- MENTRY "read", fthread, 4
- MENTRY "write", fthwrite, 5
- MENTRY "seek", fthseek, 4
- MENTRY "open", fthopen, 4
- MENTRY "close", fthclose, 5
- MENTRY "mmap", mmap, 4
- MENTRY "halt", terminate, 4
- MENTRY "clear", clear, 5
- MENTRY "reset", reset, 5
- MENTRY "exitcolon", exitcolon, 4
- MENTRY "(literal)", literal, 9
- MENTRY "(sliteral)", sliteral, 10
- MENTRY "(do)", doinit, 4
- MENTRY "(loop)", doloop, 6
- MENTRY "(+loop)", doploop, 7
- MENTRY "r@", rfetch, 2
- MENTRY "r>", rpop, 2
- MENTRY ">r", rpush, 2
- MENTRY "i", i, 1
- MENTRY "j", j, 1
- MENTRY "+", plus, 1
- MENTRY "-", minus, 1
- MENTRY "*", multiply, 1
- MENTRY "(if)", cjump, 4
- MENTRY "(else)", jump, 6
- MENTRY "/mod", slashmod, 4
- MENTRY "u/mod", uslashmod, 5
- MENTRY "and", binand, 3
- MENTRY "or", binor, 2
- MENTRY "xor", binxor, 3
- MENTRY "swap", xswap, 4
- MENTRY "drop", drop, 4
- MENTRY "dup", dup, 3
- MENTRY "over", over, 4
- MENTRY "=", equal, 1
- MENTRY ">", greater, 1
- MENTRY "<", less, 1
- MENTRY "lshift", lshift, 6
- MENTRY "rshift", rshift, 6
- MENTRY "rshifta", rshifta, 7
- MENTRY "execute", execute, 7
- MENTRY "unloop", unloop, 6
- MENTRY "cmove", cmove, 5
- MENTRY "cmove>", cmoveb, 6
+MENTRY "@" fetch 1
+MENTRY "!" store 1
+MENTRY "c@" cfetch 2
+MENTRY "c!" cstore 2
+MENTRY "read" fthread 4
+MENTRY "write" fthwrite 5
+MENTRY "seek" fthseek 4
+MENTRY "open" fthopen 4
+MENTRY "close" fthclose 5
+MENTRY "mmap" mmap 4
+MENTRY "halt" terminate 4
+MENTRY "clear" clear 5
+MENTRY "reset" reset 5
+MENTRY "exitcolon" exitcolon 4
+MENTRY "(literal)" literal 9
+MENTRY "(sliteral)" sliteral 10
+MENTRY "(do)" doinit 4
+MENTRY "(loop)" doloop 6
+MENTRY "(+loop)" doploop 7
+MENTRY "r@" rfetch 2
+MENTRY "r>" rpop 2
+MENTRY ">r" rpush 2
+MENTRY "i" i 1
+MENTRY "j" j 1
+MENTRY "+" plus 1
+MENTRY "-" minus 1
+MENTRY "*" multiply 1
+MENTRY "(if)" cjump 4
+MENTRY "(else)" jump 6
+MENTRY "/mod" slashmod 4
+MENTRY "u/mod" uslashmod 5
+MENTRY "and" binand 3
+MENTRY "or" binor 2
+MENTRY "xor" binxor 3
+MENTRY "swap" xswap 4
+MENTRY "drop" drop 4
+MENTRY "dup" dup 3
+MENTRY "over" over 4
+MENTRY "=" equal 1
+MENTRY ">" greater 1
+MENTRY "<" less 1
+MENTRY "lshift" lshift 6
+MENTRY "rshift" rshift 6
+MENTRY "rshifta" rshifta 7
+MENTRY "execute" execute 7
+MENTRY "unloop" unloop 6
+MENTRY "cmove" cmove 5
+MENTRY "cmove>" cmoveb 6
- MVENTRY "Dp", Dp, 0, 2 ; cannot use H as it is nil in inferno, next available cell for the dictionary
- MVENTRY "Dtop", Dtop, centry_c_boot(SB),4 ; cannot use H as it is nil in inferno, next available cell for the dictionary
- MVENTRY "Iobuf", Iobuf, 0, 5
- MVENTRY "Sourcebuf", Sourcebuf, 0, 9 ; is there a need for this?
- MVENTRY "Wordbuf", Wordbuf, 0, 7 ; is there a need for this?
- MVENTRY ">In", toIn, 0, 3
- MVENTRY ">Limit", toLimit, 0, 6
- MVENTRY "Findadr", Findadr, 0, 7
- MVENTRY "Blk", Blk, 0, 3
- MVENTRY "Searchlen", Searchlen, 0, 9
- MVENTRY "Base", Base, 0, 4
- MVENTRY ">Num", toNum, 0, 4
- MVENTRY "State", State, 0, 5
- MVENTRY "Abortvec", Abortvec, 0, 8 ; not sure if these 3 can be constants instead?
- MVENTRY "Infd", Infd, 0, 5
- MVENTRY "Outfd", Outfd, 0, 6
- MVENTRY "Errfd", Errfd, 0, 4
- MVENTRY "Eof", Eof, 0, 3
+MVENTRY "Dp" Dp 0 2 ; cannot use H as it is nil in inferno next available cell for the dictionary
+MVENTRY "Dtop" Dtop 0 4 ; TODO put centry_c_boot here. cannot use H as it is nil in inferno next available cell for the dictionary
+MVENTRY "Iobuf" Iobuf 0 5
+MVENTRY "Sourcebuf" Sourcebuf 0 9 ; is there a need for this?
+MVENTRY "Wordbuf" Wordbuf 0 7 ; is there a need for this?
+MVENTRY ">In" toIn 0 3
+MVENTRY ">Limit" toLimit 0 6
+MVENTRY "Findadr" Findadr 0 7
+MVENTRY "Blk" Blk 0 3
+MVENTRY "Searchlen" Searchlen 0 9
+MVENTRY "Base" Base 0 4
+MVENTRY ">Num" toNum 0 4
+MVENTRY "State" State 0 5
+MVENTRY "Abortvec" Abortvec 0 8 ; not sure if these 3 can be constants instead?
+MVENTRY "Infd" Infd 0 5
+MVENTRY "Outfd" Outfd 0 6
+MVENTRY "Errfd" Errfd 0 4
+MVENTRY "Eof" Eof 0 3
- MCENTRY "STDIN", STDIN, 0, 5 ; 3 constants from here, CAPITALS
- MCENTRY "STDOUT", STDOUT, 1, 6
- MCENTRY "STDERR", STDERR, 2, 6
- MCENTRY "WORDB", WORDB, WORDB, 5
- MCENTRY "TIB", TIB, TIB, 3
+MCENTRY "STDIN" STDIN 0 5 ; 3 constants from here CAPITALS
+MCENTRY "STDOUT" STDOUT 1 6
+MCENTRY "STDERR" STDERR 2 6
+MCENTRY "WORDB" WORDB WORDB 5
+MCENTRY "TIB" TIB TIB 3
- MENTRY "s0", s0, 2
- MENTRY "s@", stackptr, 2 ; puts PSP on stack
- MENTRY "h0", h0, 2
- MENTRY "args", args, 3
- MENTRY "(variable)", variable, 10
- MENTRY "(constant)", constant, 10
- MENTRY "(:)", colon, 3
- MENTRY "(does)", dodoes, 6
- MENTRY "cas", cas, 3
- MENTRY "(deferred)", deferred, 10
+MENTRY "s0" s0 2
+MENTRY "s@" stackptr 2 ; puts PSP on stack
+MENTRY "h0" h0 2
+MENTRY "args" args 3
+MENTRY "(variable)" variable 10
+MENTRY "(constant)" constant 10
+MENTRY "(:)" colon 3
+MENTRY "(does)" dodoes 6
+MENTRY "cas" cas 3
+MENTRY "(deferred)" deferred 10
--- a/os/pc64/words-nasm.s
+++ b/os/pc64/words-nasm.s
@@ -1,1815 +1,1831 @@
- CENTRY `false`, c_false, 5
- dd m_literal
- dd 0
- dd m_exitcolon
- CENTRY `true`, c_true, 4
- dd m_literal
- dd -1
- dd m_exitcolon
- CENTRY `bl`, c_bl, 2
- dd m_literal
- dd 32
- dd m_exitcolon
- CENTRY `on`, c_on, 2 ; ( a -- ) (G stores -1 at a )
- dd m_literal
- dd -1
- dd m_xswap
- dd m_store
- dd m_exitcolon
- CENTRY `off`, c_off, 3 ; ( a -- ) (G stores 0 at a )
- dd m_literal
- dd 0
- dd m_xswap
- dd m_store
- dd m_exitcolon
- CENTRY `>body`, c_tobody, 5
- dd m_literal
- dd 8
- dd m_plus
- dd m_exitcolon
- CENTRY `aligned`, c_aligned, 7
- dd m_literal
- dd 7
- dd m_plus
- dd m_literal
- dd -8
- dd m_binand
- dd m_exitcolon
- CENTRY `cells`, c_cells, 5
- dd m_literal
- dd 3 ; (index << 2) -> (index << 3)for amd64
- dd m_lshift
- dd m_exitcolon
- CENTRY `cell+`, c_cellplus, 5
- dd m_literal
- dd 1
- dd c_cells
- dd m_plus
- dd m_exitcolon
- CENTRY `depth`, c_depth, 5
- dd m_s0
- dd m_stackptr
- dd m_minus
- dd m_literal
- dd 3
- dd m_rshift
- dd m_literal
- dd 1
- dd m_minus
- dd m_exitcolon
- CENTRY `nip`, c_nip, 3
- dd m_xswap
- dd m_drop
- dd m_exitcolon
- CENTRY `rot`, c_rot, 3
- dd m_rpush
- dd m_xswap
- dd m_rpop
- dd m_xswap
- dd m_exitcolon
- CENTRY `2drop`, c_2drop, 5
- dd m_drop
- dd m_drop
- dd m_exitcolon
- CENTRY `2dup`, c_2dup, 4
- dd m_over
- dd m_over
- dd m_exitcolon
- CENTRY `2nip`, c_2nip, 4
- dd c_nip
- dd c_nip
- dd m_exitcolon
- CENTRY `2swap`, c_2swap, 5
- dd c_rot
- dd m_rpush
- dd c_rot
- dd m_rpop
- dd m_exitcolon
- CENTRY `?dup`, c_qdup, 4 ; if (tos != 0) dup ( n -- ) TODO correct stack notations
- dd m_dup ; ( n n -- )
- dd m_dup ; ( n n n -- )
- dd m_literal
- dd 0 ; ( n n n 0 -- )
- dd m_equal ; ( n n f -- )
- dd m_cjump ; ( n n -- )
- dd L20
- dd m_drop ; tos == 0 ( n -- )
+CENTRY "false" c_false 5
+dd M_literal
+dd 0
+dd M_exitcolon
+CENTRY "true" c_true 4
+dd M_literal
+dd -1
+dd M_exitcolon
+CENTRY "bl" c_bl 2
+dd M_literal
+dd 32
+dd M_exitcolon
+CENTRY "on" c_on 2 ; ( a -- ) (G stores -1 at a )
+dd M_literal
+dd -1
+dd M_xswap
+dd M_store
+dd M_exitcolon
+CENTRY "off" c_off 3 ; ( a -- ) (G stores 0 at a )
+dd M_literal
+dd 0
+dd M_xswap
+dd M_store
+dd M_exitcolon
+CENTRY ">body" c_tobody 5
+dd M_literal
+dd 8
+dd M_plus
+dd M_exitcolon
+CENTRY "aligned" c_aligned 7
+dd M_literal
+dd 7
+dd M_plus
+dd M_literal
+dd -8
+dd M_binand
+dd M_exitcolon
+CENTRY "cells" c_cells 5
+dd M_literal
+dd 3 ; (index << 2) -> (index << 3)for amd64
+dd M_lshift
+dd M_exitcolon
+CENTRY "cell+" c_cellplus 5
+dd M_literal
+dd 1
+dd C_cells
+dd M_plus
+dd M_exitcolon
+CENTRY "depth" c_depth 5
+dd M_s0
+dd M_stackptr
+dd M_minus
+dd M_literal
+dd 3
+dd M_rshift
+dd M_literal
+dd 1
+dd M_minus
+dd M_exitcolon
+CENTRY "nip" c_nip 3
+dd M_xswap
+dd M_drop
+dd M_exitcolon
+CENTRY "rot" c_rot 3
+dd M_rpush
+dd M_xswap
+dd M_rpop
+dd M_xswap
+dd M_exitcolon
+CENTRY "2drop" c_2drop 5
+dd M_drop
+dd M_drop
+dd M_exitcolon
+CENTRY "2dup" c_2dup 4
+dd M_over
+dd M_over
+dd M_exitcolon
+CENTRY "2nip" c_2nip 4
+dd C_nip
+dd C_nip
+dd M_exitcolon
+CENTRY "2swap" c_2swap 5
+dd C_rot
+dd M_rpush
+dd C_rot
+dd M_rpop
+dd M_exitcolon
+CENTRY "?dup" c_qdup 4 ; if (tos != 0) dup ( n -- ) TODO correct stack notations
+dd M_dup ; ( n n -- )
+dd M_dup ; ( n n n -- )
+dd M_literal
+dd 0 ; ( n n n 0 -- )
+dd M_equal ; ( n n f -- )
+dd M_cjump ; ( n n -- )
+dd L20
+dd M_drop ; tos == 0 ( n -- )
L20: ; tos != 0 ( n n -- )
- dd m_exitcolon
- CENTRY `pick`, c_pick, 4
- dd c_qdup
- dd m_cjump
- dd L22
- dd m_literal
- dd 1
- dd m_plus
- dd c_cells
- dd m_stackptr
- dd m_plus
- dd m_fetch
- dd m_jump
- dd L23
+dd M_exitcolon
+CENTRY "pick" c_pick 4
+dd C_qdup
+dd M_cjump
+dd L22
+dd M_literal
+dd 1
+dd M_plus
+dd C_cells
+dd M_stackptr
+dd M_plus
+dd M_fetch
+dd M_jump
+dd L23
L22:
- dd m_dup
+dd M_dup
L23:
- dd m_exitcolon
- CENTRY `tuck`, c_tuck, 4
- dd m_dup
- dd m_rpush
- dd m_xswap
- dd m_rpop
- dd m_exitcolon
- CENTRY `/`, c_divides, 1
- dd m_slashmod
- dd c_nip
- dd m_exitcolon
- CENTRY `+!`, c_plusstore, 2
- dd m_dup
- dd m_fetch
- dd c_rot
- dd m_plus
- dd m_xswap
- dd m_store
- dd m_exitcolon
- CENTRY `invert`, c_invert, 6
- dd m_literal
- dd -1
- dd m_binxor
- dd m_exitcolon
- CENTRY `mod`, c_mod, 3
- dd m_slashmod
- dd m_drop
- dd m_exitcolon
- CENTRY `1+`, c_1plus, 2
- dd m_literal
- dd 1
- dd m_plus
- dd m_exitcolon
- CENTRY `1-`, c_1minus, 2
- dd m_literal
- dd 1
- dd m_minus
- dd m_exitcolon
- CENTRY `negate`, c_negate, 6
- dd m_literal
- dd 0
- dd m_xswap
- dd m_minus
- dd m_exitcolon
- CENTRY `2*`, c_2multiplies, 2
- dd m_literal
- dd 1
- dd m_lshift
- dd m_exitcolon
- CENTRY `2/`, c_2divides, 2
- dd m_literal
- dd 1
- dd m_rshifta
- dd m_exitcolon
- CENTRY `0=`, c_0eq, 2
- dd m_literal
- dd 0
- dd m_equal
- dd m_exitcolon
- CENTRY `0<`, c_0lt, 2
- dd m_literal
- dd 0
- dd m_less
- dd m_exitcolon
- CENTRY `0>`, c_0gt, 2
- dd m_literal
- dd 0
- dd m_greater
- dd m_exitcolon
- CENTRY `<>`, c_neq, 2
- dd m_equal
- dd c_invert
- dd m_exitcolon
- CENTRY `0<>`, c_0neq, 3
- dd m_literal
- dd 0
- dd c_neq
- dd m_exitcolon
- CENTRY `max`, c_max, 3
- dd c_2dup
- dd m_greater
- dd m_cjump
- dd L40
- dd m_drop
- dd m_jump
- dd L41
+dd M_exitcolon
+CENTRY "tuck" c_tuck 4
+dd M_dup
+dd M_rpush
+dd M_xswap
+dd M_rpop
+dd M_exitcolon
+CENTRY "/" c_divides 1
+dd M_slashmod
+dd C_nip
+dd M_exitcolon
+CENTRY "+!" c_plusstore 2
+dd M_dup
+dd M_fetch
+dd C_rot
+dd M_plus
+dd M_xswap
+dd M_store
+dd M_exitcolon
+CENTRY "invert" c_invert 6
+dd M_literal
+dd -1
+dd M_binxor
+dd M_exitcolon
+CENTRY "mod" c_mod 3
+dd M_slashmod
+dd M_drop
+dd M_exitcolon
+CENTRY "1+" c_1plus 2
+dd M_literal
+dd 1
+dd M_plus
+dd M_exitcolon
+CENTRY "1-" c_1minus 2
+dd M_literal
+dd 1
+dd M_minus
+dd M_exitcolon
+CENTRY "negate" c_negate 6
+dd M_literal
+dd 0
+dd M_xswap
+dd M_minus
+dd M_exitcolon
+CENTRY "2*" c_2multiplies 2
+dd M_literal
+dd 1
+dd M_lshift
+dd M_exitcolon
+CENTRY "2/" c_2divides 2
+dd M_literal
+dd 1
+dd M_rshifta
+dd M_exitcolon
+CENTRY "0=" c_0eq 2
+dd M_literal
+dd 0
+dd M_equal
+dd M_exitcolon
+CENTRY "0<" c_0lt 2
+dd M_literal
+dd 0
+dd M_less
+dd M_exitcolon
+CENTRY "0>" c_0gt 2
+dd M_literal
+dd 0
+dd M_greater
+dd M_exitcolon
+CENTRY "<>" c_neq 2
+dd M_equal
+dd C_invert
+dd M_exitcolon
+CENTRY "0<>" c_0neq 3
+dd M_literal
+dd 0
+dd C_neq
+dd M_exitcolon
+CENTRY "max" c_max 3
+dd C_2dup
+dd M_greater
+dd M_cjump
+dd L40
+dd M_drop
+dd M_jump
+dd L41
L40:
- dd c_nip
+dd C_nip
L41:
- dd m_exitcolon
- CENTRY `min`, c_min, 3
- dd c_2dup
- dd m_less
- dd m_cjump
- dd L43
- dd m_drop
- dd m_jump
- dd L44
+dd M_exitcolon
+CENTRY "min" c_min 3
+dd C_2dup
+dd M_less
+dd M_cjump
+dd L43
+dd M_drop
+dd M_jump
+dd L44
L43:
- dd c_nip
+dd C_nip
L44:
- dd m_exitcolon
- CENTRY `signum`, c_signum, 6
- dd m_dup
- dd c_0gt
- dd m_cjump
- dd L46
- dd m_drop
- dd m_literal
- dd 1
- dd m_jump
- dd L47
+dd M_exitcolon
+CENTRY "signum" c_signum 6
+dd M_dup
+dd C_0gt
+dd M_cjump
+dd L46
+dd M_drop
+dd M_literal
+dd 1
+dd M_jump
+dd L47
L46:
- dd c_0lt
- dd m_cjump
- dd L48
- dd m_literal
- dd -1
- dd m_jump
- dd L49
+dd C_0lt
+dd M_cjump
+dd L48
+dd M_literal
+dd -1
+dd M_jump
+dd L49
L48:
- dd m_literal
- dd 0
+dd M_literal
+dd 0
L49:
L47:
- dd m_exitcolon
- CENTRY `within`, c_within, 6
- dd m_rpush
- dd m_over
- dd m_greater
- dd c_0eq
- dd m_xswap
- dd m_rpop
- dd m_greater
- dd c_0eq
- dd m_binand
- dd m_exitcolon
- CENTRY `abs`, c_abs, 3
- dd m_dup
- dd c_0lt
- dd m_cjump
- dd L52
- dd c_negate
+dd M_exitcolon
+CENTRY "within" c_within 6
+dd M_rpush
+dd M_over
+dd M_greater
+dd C_0eq
+dd M_xswap
+dd M_rpop
+dd M_greater
+dd C_0eq
+dd M_binand
+dd M_exitcolon
+CENTRY "abs" c_abs 3
+dd M_dup
+dd C_0lt
+dd M_cjump
+dd L52
+dd C_negate
L52:
- dd m_exitcolon
+dd M_exitcolon
- CENTRY `key`, c_key, 3 ; ( -- c ) (G read a single character from the input onto the stack )
- dd m_literal
- dd 1 ; ( 1 -- )
- dd mv_Iobuf ; variable iobuf to store the character read
- dd mv_Infd
- dd m_fetch ; ( 1 Iobuf -- 1 Iobuf infd )
- dd m_fthread ; ( 1 Iobuf infd -- n )
- dd c_0eq
- dd m_cjump ; if 0 characters read
- dd L78 ; if qread n != 0, jump to L78. If n == 0, jump over
- dd mv_Eof
- dd c_on ; EOF
- dd m_literal
- dd -1 ; return -1 when EOF
- dd m_jump
- dd L79
+CENTRY "key" c_key 3 ; ( -- c ) (G read a single character from the input onto the stack )
+dd M_literal
+dd 1 ; ( 1 -- )
+dd MV_Iobuf ; variable iobuf to store the character read
+dd MV_Infd
+dd M_fetch ; ( 1 Iobuf -- 1 Iobuf infd )
+dd M_fthread ; ( 1 Iobuf infd -- n )
+dd C_0eq
+dd M_cjump ; if 0 characters read
+dd L78 ; if qread n != 0 jump to L78. If n == 0 jump over
+dd MV_Eof
+dd C_on ; EOF
+dd M_literal
+dd -1 ; return -1 when EOF
+dd M_jump
+dd L79
L78:
- dd mv_Iobuf ; get the character from Iobuf to stack
- dd m_cfetch ; ( -- c ) return the character read if not EOF
+dd MV_Iobuf ; get the character from Iobuf to stack
+dd M_cfetch ; ( -- c ) return the character read if not EOF
L79:
- dd m_exitcolon
+dd M_exitcolon
- CENTRY `emit`, c_emit, 4 ; ( character -- )
- dd mv_Iobuf ; variable iobuf address
- dd m_cstore ; variable iobuf has character
- dd mv_Iobuf ; variable iobuf address
- dd m_literal
- dd 1
- dd m_xswap ; ( iobuf 1 -- 1 iobuf )
- dd mv_Outfd
- dd m_fetch ; outfd
- dd m_fthwrite ; ( 1 iobuf outfd -- )
- dd m_exitcolon
+CENTRY "emit" c_emit 4 ; ( character -- )
+dd MV_Iobuf ; variable iobuf address
+dd M_cstore ; variable iobuf has character
+dd MV_Iobuf ; variable iobuf address
+dd M_literal
+dd 1
+dd M_xswap ; ( iobuf 1 -- 1 iobuf )
+dd MV_Outfd
+dd M_fetch ; outfd
+dd M_fthwrite ; ( 1 iobuf outfd -- )
+dd M_exitcolon
- CENTRY `type`, c_type, 4 ; ( addr n -- )
- dd m_xswap ; ( addr n -- n addr )
- dd m_literal
- dd 1 ; stdout
- dd m_fthwrite ; ( n addr 1 -- )
- dd m_exitcolon
+CENTRY "type" c_type 4 ; ( addr n -- )
+dd M_xswap ; ( addr n -- n addr )
+dd M_literal
+dd 1 ; stdout
+dd M_fthwrite ; ( n addr 1 -- )
+dd M_exitcolon
- CENTRY `cr`, c_cr, 2
- dd m_literal
- dd 10 ; ascii value of carriage return
- dd c_emit ; emit
- dd m_exitcolon
- CENTRY `space`, c_space, 5
- dd c_bl
- dd c_emit
- dd m_exitcolon
- CENTRY `emits`, c_emits, 5
+CENTRY "cr" c_cr 2
+dd M_literal
+dd 10 ; ascii value of carriage return
+dd C_emit ; emit
+dd M_exitcolon
+CENTRY "space" c_space 5
+dd C_bl
+dd C_emit
+dd M_exitcolon
+CENTRY "emits" c_emits 5
L85:
- dd c_qdup
- dd m_cjump
- dd L86
- dd m_over
- dd c_emit
- dd c_1minus
- dd m_jump
- dd L85
+dd C_qdup
+dd M_cjump
+dd L86
+dd M_over
+dd C_emit
+dd C_1minus
+dd M_jump
+dd L85
L86:
- dd m_drop
- dd m_exitcolon
- CENTRY `spaces`, c_spaces, 6
- dd c_bl
- dd m_xswap
- dd c_emits
- dd m_exitcolon
- CENTRY `count`, c_count, 5 ; ( a -- a+1 n ) a = counted string
- dd c_1plus
- dd m_dup
- dd c_1minus
- dd m_cfetch
- dd m_exitcolon
- CENTRY `compare`, c_compare, 7 ; ( a1 n1 a2 n2 -- f ) a1 = dictionary entry a2 = word name to search
- dd c_rot ; ( a1 n1 a2 n2 -- a1 a2 n2 n1 )
- dd c_2dup ; ( -- a1 a2 n2 n1 n2 n1 )
- dd m_rpush ; ( -- a1 a2 n2 n1 n2 ) (R n1 -- )
- dd m_rpush ; ( -- a1 a2 n2 n1 ) (R n1 n2 -- )
- dd c_min ; ( -- a1 a2 nmin ) (R n1 n2 -- )
- dd m_literal
- dd 0 ; ( -- a1 a2 nmin 0 ) (R n1 n2 -- )
- dd m_doinit ; ( -- a1 a2 ) (R n1 n2 0 nmin -- )
+dd M_drop
+dd M_exitcolon
+CENTRY "spaces" c_spaces 6
+dd C_bl
+dd M_xswap
+dd C_emits
+dd M_exitcolon
+CENTRY "count" c_count 5 ; ( a -- a+1 n ) a = counted string
+dd C_1plus
+dd M_dup
+dd C_1minus
+dd M_cfetch
+dd M_exitcolon
+CENTRY "compare" c_compare 7 ; ( a1 n1 a2 n2 -- f ) a1 = dictionary entry a2 = word name to search
+dd C_rot ; ( a1 n1 a2 n2 -- a1 a2 n2 n1 )
+dd C_2dup ; ( -- a1 a2 n2 n1 n2 n1 )
+dd M_rpush ; ( -- a1 a2 n2 n1 n2 ) (R n1 -- )
+dd M_rpush ; ( -- a1 a2 n2 n1 ) (R n1 n2 -- )
+dd C_min ; ( -- a1 a2 nmin ) (R n1 n2 -- )
+dd M_literal
+dd 0 ; ( -- a1 a2 nmin 0 ) (R n1 n2 -- )
+dd M_doinit ; ( -- a1 a2 ) (R n1 n2 0 nmin -- )
L55:
- dd m_over
- dd m_i
- dd m_plus
- dd m_cfetch
- dd m_over
- dd m_i
- dd m_plus
- dd m_cfetch
- dd m_minus
- dd c_signum
- dd c_qdup
- dd m_cjump
- dd L56
- dd c_2nip
- dd m_unloop
- dd m_unloop
- dd m_exitcolon
+dd M_over
+dd M_i
+dd M_plus
+dd M_cfetch
+dd M_over
+dd M_i
+dd M_plus
+dd M_cfetch
+dd M_minus
+dd C_signum
+dd C_qdup
+dd M_cjump
+dd L56
+dd C_2nip
+dd M_unloop
+dd M_unloop
+dd M_exitcolon
L56:
- dd m_doloop
- dd L55
- dd c_2drop ; ( a1 a2 -- ) (R n1 n2 -- )
- dd m_rpop
- dd m_rpop ; ( n2 n1 -- ) (R -- )
- dd m_minus ; ( -- n1-n2 )
- dd c_signum
- dd m_exitcolon
- CENTRY `erase`, c_erase, 5
- dd m_literal
- dd 0
- dd m_doinit
+dd M_doloop
+dd L55
+dd C_2drop ; ( a1 a2 -- ) (R n1 n2 -- )
+dd M_rpop
+dd M_rpop ; ( n2 n1 -- ) (R -- )
+dd M_minus ; ( -- n1-n2 )
+dd C_signum
+dd M_exitcolon
+CENTRY "erase" c_erase 5
+dd M_literal
+dd 0
+dd M_doinit
L58:
- dd m_literal
- dd 0
- dd m_over
- dd m_cstore
- dd c_1plus
- dd m_doloop
- dd L58
- dd m_drop
- dd m_exitcolon
- CENTRY `fill`, c_fill, 4
- dd m_xswap
- dd m_literal
- dd 0
- dd m_doinit
+dd M_literal
+dd 0
+dd M_over
+dd M_cstore
+dd C_1plus
+dd M_doloop
+dd L58
+dd M_drop
+dd M_exitcolon
+CENTRY "fill" c_fill 4
+dd M_xswap
+dd M_literal
+dd 0
+dd M_doinit
L60:
- dd c_2dup
- dd m_xswap
- dd m_i
- dd m_plus
- dd m_cstore
- dd m_doloop
- dd L60
- dd c_2drop
- dd m_exitcolon
- CENTRY `blank`, c_blank, 5
- dd c_bl
- dd c_fill
- dd m_exitcolon
- CENTRY `search`, c_search, 6
- dd mv_Searchlen
- dd m_store
- dd m_xswap
- dd m_dup
- dd m_rpush
- dd mv_Searchlen
- dd m_fetch
- dd m_minus
- dd c_1plus
- dd m_literal
- dd 0
- dd m_doinit
+dd C_2dup
+dd M_xswap
+dd M_i
+dd M_plus
+dd M_cstore
+dd M_doloop
+dd L60
+dd C_2drop
+dd M_exitcolon
+CENTRY "blank" c_blank 5
+dd C_bl
+dd C_fill
+dd M_exitcolon
+CENTRY "search" c_search 6
+dd MV_Searchlen
+dd M_store
+dd M_xswap
+dd M_dup
+dd M_rpush
+dd MV_Searchlen
+dd M_fetch
+dd M_minus
+dd C_1plus
+dd M_literal
+dd 0
+dd M_doinit
L64:
- dd m_over
- dd m_i
- dd m_plus
- dd m_over
- dd mv_Searchlen
- dd m_fetch
- dd m_xswap
- dd mv_Searchlen
- dd m_fetch
- dd c_compare
- dd c_0eq
- dd m_cjump
- dd L65
- dd m_drop
- dd m_i
- dd m_plus
- dd m_i
- dd m_unloop
- dd m_rpop
- dd m_xswap
- dd m_minus
- dd c_true
- dd m_exitcolon
+dd M_over
+dd M_i
+dd M_plus
+dd M_over
+dd MV_Searchlen
+dd M_fetch
+dd M_xswap
+dd MV_Searchlen
+dd M_fetch
+dd C_compare
+dd C_0eq
+dd M_cjump
+dd L65
+dd M_drop
+dd M_i
+dd M_plus
+dd M_i
+dd M_unloop
+dd M_rpop
+dd M_xswap
+dd M_minus
+dd C_true
+dd M_exitcolon
L65:
- dd m_doloop
- dd L64
- dd m_drop
- dd m_rpop
- dd c_false
- dd m_exitcolon
- CENTRY `here`, c_here, 4
- dd m_h0
- dd m_fetch
- dd m_exitcolon
- CENTRY `,`, c_comma, 1
- dd c_here
- dd m_store
- dd m_literal
- dd 8
- dd m_h0
- dd c_plusstore
- dd m_exitcolon
- CENTRY `c,`, c_c, 2
- dd c_here
- dd m_cstore
- dd m_literal
- dd 1
- dd m_h0
- dd c_plusstore
- dd m_exitcolon
- CENTRY `allot`, c_allot, 5
- dd m_h0
- dd c_plusstore
- dd m_exitcolon
- CENTRY `pad`, c_pad, 3
- dd c_here
- dd m_literal
- dd 256
- dd m_plus
- dd m_exitcolon
- CENTRY `align`, c_align, 5
- dd c_here
- dd c_aligned
- dd m_h0
- dd m_store
- dd m_exitcolon
- CENTRY `unused`, c_unused, 6
- dd m_h0
- dd m_fetch
- dd c_here
- dd m_minus
- dd m_exitcolon
- CENTRY `<#`, c_fromhash, 2
- dd c_pad
- dd m_literal
- dd 1024
- dd m_plus
- dd mv_toNum
- dd m_store
- dd m_exitcolon
- CENTRY `#`, c_hash, 1
- dd mv_Base
- dd m_fetch
- dd m_uslashmod
- dd m_xswap
- dd m_dup
- dd m_literal
- dd 9
- dd m_greater
- dd m_cjump
- dd L92
- dd m_literal
- dd 97
- dd m_plus
- dd m_literal
- dd 10
- dd m_minus
- dd m_jump
- dd L93
+dd M_doloop
+dd L64
+dd M_drop
+dd M_rpop
+dd C_false
+dd M_exitcolon
+CENTRY "here" c_here 4
+dd M_h0
+dd M_fetch
+dd M_exitcolon
+CENTRY "," c_comma 1
+dd C_here
+dd M_store
+dd M_literal
+dd 8
+dd M_h0
+dd C_plusstore
+dd M_exitcolon
+CENTRY "c" c_c 2
+dd C_here
+dd M_cstore
+dd M_literal
+dd 1
+dd M_h0
+dd C_plusstore
+dd M_exitcolon
+CENTRY "allot" c_allot 5
+dd M_h0
+dd C_plusstore
+dd M_exitcolon
+CENTRY "pad" c_pad 3
+dd C_here
+dd M_literal
+dd 256
+dd M_plus
+dd M_exitcolon
+CENTRY "align" c_align 5
+dd C_here
+dd C_aligned
+dd M_h0
+dd M_store
+dd M_exitcolon
+CENTRY "unused" c_unused 6
+dd M_h0
+dd M_fetch
+dd C_here
+dd M_minus
+dd M_exitcolon
+CENTRY "<#" c_fromhash 2
+dd C_pad
+dd M_literal
+dd 1024
+dd M_plus
+dd MV_toNum
+dd M_store
+dd M_exitcolon
+CENTRY "#" c_hash 1
+dd MV_Base
+dd M_fetch
+dd M_uslashmod
+dd M_xswap
+dd M_dup
+dd M_literal
+dd 9
+dd M_greater
+dd M_cjump
+dd L92
+dd M_literal
+dd 97
+dd M_plus
+dd M_literal
+dd 10
+dd M_minus
+dd M_jump
+dd L93
L92:
- dd m_literal
- dd 48
- dd m_plus
+dd M_literal
+dd 48
+dd M_plus
L93:
- dd mv_toNum
- dd m_fetch
- dd c_1minus
- dd m_dup
- dd mv_toNum
- dd m_store
- dd m_cstore
- dd m_exitcolon
- CENTRY `#s`, c_hashs, 2
+dd MV_toNum
+dd M_fetch
+dd C_1minus
+dd M_dup
+dd MV_toNum
+dd M_store
+dd M_cstore
+dd M_exitcolon
+CENTRY "#s" c_hashs 2
L95:
- dd c_hash
- dd m_dup
- dd m_cjump
- dd L96
- dd m_jump
- dd L95
+dd C_hash
+dd M_dup
+dd M_cjump
+dd L96
+dd M_jump
+dd L95
L96:
- dd m_exitcolon
- CENTRY `#>`, c_hashfrom, 2
- dd m_drop
- dd mv_toNum
- dd m_fetch
- dd m_dup
- dd c_pad
- dd m_literal
- dd 1024
- dd m_plus
- dd m_xswap
- dd m_minus
- dd m_exitcolon
- CENTRY `hold`, c_hold, 4
- dd mv_toNum
- dd m_fetch
- dd c_1minus
- dd m_dup
- dd m_rpush
- dd m_cstore
- dd m_rpop
- dd mv_toNum
- dd m_store
- dd m_exitcolon
- CENTRY `sign`, c_sign, 4
- dd c_0lt
- dd m_cjump
- dd L100
- dd m_literal
- dd 45
- dd c_hold
+dd M_exitcolon
+CENTRY "#>" c_hashfrom 2
+dd M_drop
+dd MV_toNum
+dd M_fetch
+dd M_dup
+dd C_pad
+dd M_literal
+dd 1024
+dd M_plus
+dd M_xswap
+dd M_minus
+dd M_exitcolon
+CENTRY "hold" c_hold 4
+dd MV_toNum
+dd M_fetch
+dd C_1minus
+dd M_dup
+dd M_rpush
+dd M_cstore
+dd M_rpop
+dd MV_toNum
+dd M_store
+dd M_exitcolon
+CENTRY "sign" c_sign 4
+dd C_0lt
+dd M_cjump
+dd L100
+dd M_literal
+dd 45
+dd C_hold
L100:
- dd m_exitcolon
- CENTRY `.`, c_dot, 1
- dd m_dup
- dd c_abs
- dd c_fromhash
- dd c_hashs
- dd m_xswap
- dd c_sign
- dd c_hashfrom
- dd c_type
- dd c_space
- dd m_exitcolon
- CENTRY `.r`, c_dotr, 2
- dd m_rpush
- dd m_dup
- dd c_abs
- dd c_fromhash
- dd c_hashs
- dd m_xswap
- dd c_sign
- dd c_hashfrom
- dd m_rpop
- dd m_over
- dd m_minus
- dd m_literal
- dd 0
- dd c_max
- dd c_spaces
- dd c_type
- dd m_exitcolon
- CENTRY `hex`, c_hex, 3
- dd m_literal
- dd 16
- dd mv_Base
- dd m_store
- dd m_exitcolon
- CENTRY `decimal`, c_decimal, 7
- dd m_literal
- dd 10
- dd mv_Base
- dd m_store
- dd m_exitcolon
- CENTRY `digit`, c_digit, 5
- dd m_dup
- dd m_literal
- dd 65
- dd m_literal
- dd 91
- dd c_within
- dd m_cjump
- dd L106
- dd m_literal
- dd 55
- dd m_minus
- dd m_jump
- dd L107
+dd M_exitcolon
+CENTRY "." c_dot 1
+dd M_dup
+dd C_abs
+dd C_fromhash
+dd C_hashs
+dd M_xswap
+dd C_sign
+dd C_hashfrom
+dd C_type
+dd C_space
+dd M_exitcolon
+CENTRY ".r" c_dotr 2
+dd M_rpush
+dd M_dup
+dd C_abs
+dd C_fromhash
+dd C_hashs
+dd M_xswap
+dd C_sign
+dd C_hashfrom
+dd M_rpop
+dd M_over
+dd M_minus
+dd M_literal
+dd 0
+dd C_max
+dd C_spaces
+dd C_type
+dd M_exitcolon
+CENTRY "hex" c_hex 3
+dd M_literal
+dd 16
+dd MV_Base
+dd M_store
+dd M_exitcolon
+CENTRY "decimal" c_decimal 7
+dd M_literal
+dd 10
+dd MV_Base
+dd M_store
+dd M_exitcolon
+CENTRY "digit" c_digit 5
+dd M_dup
+dd M_literal
+dd 65
+dd M_literal
+dd 91
+dd C_within
+dd M_cjump
+dd L106
+dd M_literal
+dd 55
+dd M_minus
+dd M_jump
+dd L107
L106:
- dd m_dup
- dd m_literal
- dd 97
- dd m_literal
- dd 123
- dd c_within
- dd m_cjump
- dd L108
- dd m_literal
- dd 87
- dd m_minus
- dd m_jump
- dd L109
+dd M_dup
+dd M_literal
+dd 97
+dd M_literal
+dd 123
+dd C_within
+dd M_cjump
+dd L108
+dd M_literal
+dd 87
+dd M_minus
+dd M_jump
+dd L109
L108:
- dd m_dup
- dd m_literal
- dd 48
- dd m_literal
- dd 58
- dd c_within
- dd m_cjump
- dd L110
- dd m_literal
- dd 48
- dd m_minus
- dd m_jump
- dd L111
+dd M_dup
+dd M_literal
+dd 48
+dd M_literal
+dd 58
+dd C_within
+dd M_cjump
+dd L110
+dd M_literal
+dd 48
+dd M_minus
+dd M_jump
+dd L111
L110:
- dd m_drop
- dd c_false
- dd m_exitcolon
+dd M_drop
+dd C_false
+dd M_exitcolon
L111:
L109:
L107:
- dd m_dup
- dd mv_Base
- dd m_fetch
- dd m_less
- dd m_cjump
- dd L112
- dd c_true
- dd m_jump
- dd L113
+dd M_dup
+dd MV_Base
+dd M_fetch
+dd M_less
+dd M_cjump
+dd L112
+dd C_true
+dd M_jump
+dd L113
L112:
- dd m_drop
- dd c_false
+dd M_drop
+dd C_false
L113:
- dd m_exitcolon
- CENTRY `number`, c_number, 6
- dd m_xswap
- dd m_dup
- dd m_cfetch
- dd m_literal
- dd 45
- dd m_equal
- dd m_cjump
- dd L115
- dd c_1plus
- dd m_xswap
- dd c_1minus
- dd m_literal
- dd -1
- dd m_rpush
- dd m_jump
- dd L116
+dd M_exitcolon
+CENTRY "number" c_number 6
+dd M_xswap
+dd M_dup
+dd M_cfetch
+dd M_literal
+dd 45
+dd M_equal
+dd M_cjump
+dd L115
+dd C_1plus
+dd M_xswap
+dd C_1minus
+dd M_literal
+dd -1
+dd M_rpush
+dd M_jump
+dd L116
L115:
- dd m_xswap
- dd m_literal
- dd 1
- dd m_rpush
+dd M_xswap
+dd M_literal
+dd 1
+dd M_rpush
L116:
- dd m_dup
- dd m_rpush
- dd m_literal
- dd 0
- dd m_xswap
- dd m_literal
- dd 0
- dd m_doinit
+dd M_dup
+dd M_rpush
+dd M_literal
+dd 0
+dd M_xswap
+dd M_literal
+dd 0
+dd M_doinit
L117:
- dd mv_Base
- dd m_fetch
- dd m_multiply
- dd m_over
- dd m_i
- dd m_plus
- dd m_cfetch
- dd c_digit
- dd m_cjump
- dd L118
- dd m_plus
- dd m_jump
- dd L119
+dd MV_Base
+dd M_fetch
+dd M_multiply
+dd M_over
+dd M_i
+dd M_plus
+dd M_cfetch
+dd C_digit
+dd M_cjump
+dd L118
+dd M_plus
+dd M_jump
+dd L119
L118:
- dd m_drop
- dd m_unloop
- dd m_rpop
- dd m_rpop
- dd m_drop
- dd c_false
- dd m_exitcolon
+dd M_drop
+dd M_unloop
+dd M_rpop
+dd M_rpop
+dd M_drop
+dd C_false
+dd M_exitcolon
L119:
- dd m_doloop
- dd L117
- dd m_rpop
- dd m_drop
- dd c_nip
- dd m_rpop
- dd m_multiply
- dd c_true
- dd m_exitcolon
- CENTRY `abort`, c_abort, 5
- dd mv_Abortvec
- dd m_fetch
- dd m_execute
- dd m_exitcolon
- CENTRY `source`, c_source, 6
- dd mv_Sourcebuf
- dd m_fetch
- dd m_exitcolon
- CENTRY `current-input`, c_current_input, 13 ; ( -- c ) read the next character from the location in Sourcebuf
- dd mv_toIn
- dd m_fetch
- dd c_source
- dd m_plus ; Sourcebuf + >In
- dd m_cfetch
- dd m_exitcolon
- CENTRY `save-input`, c_save_input, 10
- dd mv_Infd
- dd mv_toIn
- dd m_fetch
- dd mv_toLimit
- dd m_fetch
- dd mv_Sourcebuf
- dd m_fetch
- dd mv_Blk
- dd m_fetch
- dd m_literal
- dd 5
- dd m_exitcolon
- CENTRY `default-input`, c_default_input, 13
- dd mc_STDIN
- dd mv_toIn
- dd c_off
- dd mv_toLimit
- dd c_off
- dd mc_TIB
- dd mv_Sourcebuf
- dd m_store
- dd mv_Blk
- dd c_off
- dd m_exitcolon
- CENTRY `restore-input`, c_restore_input, 13
- dd mv_Eof
- dd c_off
- dd m_literal
- dd 5
- dd c_neq
- dd m_cjump
- dd L133
- dd c_default_input
- dd c_false
- dd m_jump
- dd L134
+dd M_doloop
+dd L117
+dd M_rpop
+dd M_drop
+dd C_nip
+dd M_rpop
+dd M_multiply
+dd C_true
+dd M_exitcolon
+CENTRY "abort" c_abort 5
+dd MV_Abortvec
+dd M_fetch
+dd M_execute
+dd M_exitcolon
+CENTRY "source" c_source 6
+dd MV_Sourcebuf
+dd M_fetch
+dd M_exitcolon
+CENTRY "current-input" c_current_input 13 ; ( -- c ) read the next character from the location in Sourcebuf
+dd MV_toIn
+dd M_fetch
+dd C_source
+dd M_plus ; Sourcebuf + >In
+dd M_cfetch
+dd M_exitcolon
+CENTRY "save-input" c_save_input 10
+dd MV_Infd
+dd MV_toIn
+dd M_fetch
+dd MV_toLimit
+dd M_fetch
+dd MV_Sourcebuf
+dd M_fetch
+dd MV_Blk
+dd M_fetch
+dd M_literal
+dd 5
+dd M_exitcolon
+CENTRY "default-input" c_default_input 13
+dd MC_STDIN
+dd MV_toIn
+dd C_off
+dd MV_toLimit
+dd C_off
+dd MC_TIB
+dd MV_Sourcebuf
+dd M_store
+dd MV_Blk
+dd C_off
+dd M_exitcolon
+CENTRY "restore-input" c_restore_input 13
+dd MV_Eof
+dd C_off
+dd M_literal
+dd 5
+dd C_neq
+dd M_cjump
+dd L133
+dd C_default_input
+dd C_false
+dd M_jump
+dd L134
L133:
- dd mv_Blk
- dd m_store
- dd mv_Sourcebuf
- dd m_store
- dd mv_toLimit
- dd m_store
- dd mv_toIn
- dd m_store
- dd mv_Infd
- dd m_store
- dd c_true
+dd MV_Blk
+dd M_store
+dd MV_Sourcebuf
+dd M_store
+dd MV_toLimit
+dd M_store
+dd MV_toIn
+dd M_store
+dd MV_Infd
+dd M_store
+dd C_true
L134:
- dd m_exitcolon
- CENTRY `?restore-input`, c_qrestore_input, 14
- dd c_restore_input
- dd c_0eq
- dd m_cjump
- dd L136
- dd c_space
- dd m_literal
- dd L137
- dd m_literal
- dd 23
- dd c_type
- dd c_cr
- dd c_abort
+dd M_exitcolon
+CENTRY "?restore-input" c_qrestore_input 14
+dd C_restore_input
+dd C_0eq
+dd M_cjump
+dd L136
+dd C_space
+dd M_literal
+dd L137
+dd M_literal
+dd 23
+dd C_type
+dd C_cr
+dd C_abort
L136:
- dd m_exitcolon
+dd M_exitcolon
- CENTRY `next-input`, c_next_input, 10 ; when >In < >Limit ( -- true c ). ( -- 0 false ) otherwise
- dd mv_toIn
- dd m_fetch
- dd mv_toLimit
- dd m_fetch
- dd m_less
- dd m_cjump
- dd L139 ; >In >= >Limit
- dd c_true ; >In < >Limit
- dd c_current_input ; ( -- c )
- dd m_jump
- dd L140
+CENTRY "next-input" c_next_input 10 ; when >In < >Limit ( -- true c ). ( -- 0 false ) otherwise
+dd MV_toIn
+dd M_fetch
+dd MV_toLimit
+dd M_fetch
+dd M_less
+dd M_cjump
+dd L139 ; >In >= >Limit
+dd C_true ; >In < >Limit
+dd C_current_input ; ( -- c )
+dd M_jump
+dd L140
L139:
- dd m_literal
- dd 0
- dd c_false
+dd M_literal
+dd 0
+dd C_false
L140:
- dd m_exitcolon
+dd M_exitcolon
- CENTRY `parse`, c_parse, 5 ; ( c -- a ) Place the counted string in the address in Wordbuf and return that address. c = word delimiter.
- dd m_rpush ; ( c -- ) (R -- c )
- dd mv_Wordbuf
- dd m_fetch ; ( -- Wordb )
- dd c_1plus ; ( Wordb -- Wordb+1 )
+CENTRY "parse" c_parse 5 ; ( c -- a ) Place the counted string in the address in Wordbuf and return that address. c = word delimiter.
+dd M_rpush ; ( c -- ) (R -- c )
+dd MV_Wordbuf
+dd M_fetch ; ( -- Wordb )
+dd C_1plus ; ( Wordb -- Wordb+1 )
L142:
- dd c_next_input ; ( Wordb+1 -- Wordb+1 f c )
- dd m_rfetch ; ( Wordb+1 f c -- Wordb+1 f cinitial ) (R c -- c )
- dd c_neq ; ( Wordb+1 f c cinitial -- Wordb+1 f f(c!=cinitial) )
- dd m_binand
- dd m_cjump
- dd L143 ; ( Wordb+1 ) >In >= >Limit || cinitial == cnew
- dd c_current_input ; ( Wordb+1 -- Wordb+1 c )
- dd m_over
- dd m_cstore ; ( Wordb+1 c Wordb+1 -- Wordb+1 ) store c at Wordb+1
- dd c_1plus ; ( Wordb+1 -- Wordb+2 )
- dd m_literal
- dd 1
- dd mv_toIn
- dd c_plusstore ; >In++
- dd m_jump
- dd L142 ; ( Wordb+2 ) repeat
+dd C_next_input ; ( Wordb+1 -- Wordb+1 f c )
+dd M_rfetch ; ( Wordb+1 f c -- Wordb+1 f cinitial ) (R c -- c )
+dd C_neq ; ( Wordb+1 f c cinitial -- Wordb+1 f f(c!=cinitial) )
+dd M_binand
+dd M_cjump
+dd L143 ; ( Wordb+1 ) >In >= >Limit || cinitial == cnew
+dd C_current_input ; ( Wordb+1 -- Wordb+1 c )
+dd M_over
+dd M_cstore ; ( Wordb+1 c Wordb+1 -- Wordb+1 ) store c at Wordb+1
+dd C_1plus ; ( Wordb+1 -- Wordb+2 )
+dd M_literal
+dd 1
+dd MV_toIn
+dd C_plusstore ; >In++
+dd M_jump
+dd L142 ; ( Wordb+2 ) repeat
L143: ; ( Wordb+1 ) >In >= >Limit || cinitial == cnew
- dd m_literal
- dd 1
- dd mv_toIn
- dd c_plusstore ; >In++
- dd m_rpop ; (Wordb+1 -- Wordb+1 c) (R c -- )
- dd m_drop ; (Wordb+1 c -- Wordb+1)
- dd mv_Wordbuf
- dd m_fetch ; (Wordb+1 -- Wordb+1 Wordb)
- dd m_dup ; (Wordb+1 Wordb -- Wordb+1 Wordb Wordb)
- dd m_rpush ; (Wordb+1 Wordb Wordb -- Wordb+1 Wordb) (R -- Wordb)
- dd m_minus ; (Wordb+1 Wordb -- Wordb+1-Wordb) (R -- Wordb)
- dd c_1minus ; (Wordb+1-Wordb -- Wordb+1-Wordb-1) (R -- Wordb)
- dd m_rfetch ; (Wordb+1-Wordb-1 Wordb -- Wordb+1-Wordb-1 Wordb) (R -- Wordb)
- dd m_cstore ; store the length of the string found at Wordb[0]. Counted string at Wordb now.
- dd m_rpop ; ( -- Wordb) (R Wordb -- )
- dd m_exitcolon
+dd M_literal
+dd 1
+dd MV_toIn
+dd C_plusstore ; >In++
+dd M_rpop ; (Wordb+1 -- Wordb+1 c) (R c -- )
+dd M_drop ; (Wordb+1 c -- Wordb+1)
+dd MV_Wordbuf
+dd M_fetch ; (Wordb+1 -- Wordb+1 Wordb)
+dd M_dup ; (Wordb+1 Wordb -- Wordb+1 Wordb Wordb)
+dd M_rpush ; (Wordb+1 Wordb Wordb -- Wordb+1 Wordb) (R -- Wordb)
+dd M_minus ; (Wordb+1 Wordb -- Wordb+1-Wordb) (R -- Wordb)
+dd C_1minus ; (Wordb+1-Wordb -- Wordb+1-Wordb-1) (R -- Wordb)
+dd M_rfetch ; (Wordb+1-Wordb-1 Wordb -- Wordb+1-Wordb-1 Wordb) (R -- Wordb)
+dd M_cstore ; store the length of the string found at Wordb[0]. Counted string at Wordb now.
+dd M_rpop ; ( -- Wordb) (R Wordb -- )
+dd M_exitcolon
- CENTRY `word`, c_word, 4 ; ( c -- a ) skip the c's. Placed the counted string in a (as in Wordbuf)
- dd m_rpush ; ( -- ) (R -- c )
+CENTRY "word" c_word 4 ; ( c -- a ) skip the c"s. Placed the counted string in a (as in Wordbuf)
+dd M_rpush ; ( -- ) (R -- c )
L145:
- dd c_next_input ; ( -- f c2 ) (R c1 -- )
- dd m_rfetch ; ( f cnew -- f cnew cinitial ) (R cinitial -- cinitial )
- dd m_equal ; ( f cnew cinitial -- f f(cnew==cinitial) ) (R cinitial -- cinitial )
- dd m_binand ; ( f f2 -- f&&f2 ) (R cinitial -- cinitial )
- dd m_cjump
- dd L146 ; >In >= >Limit || cinitial != cnew
- dd m_literal ; >In < >Limit && cinitial == cnew
- dd 1
- dd mv_toIn
- dd c_plusstore ; >In++
- dd m_jump ; repeat
- dd L145
+dd C_next_input ; ( -- f c2 ) (R c1 -- )
+dd M_rfetch ; ( f cnew -- f cnew cinitial ) (R cinitial -- cinitial )
+dd M_equal ; ( f cnew cinitial -- f f(cnew==cinitial) ) (R cinitial -- cinitial )
+dd M_binand ; ( f f2 -- f&&f2 ) (R cinitial -- cinitial )
+dd M_cjump
+dd L146 ; >In >= >Limit || cinitial != cnew
+dd M_literal ; >In < >Limit && cinitial == cnew
+dd 1
+dd MV_toIn
+dd C_plusstore ; >In++
+dd M_jump ; repeat
+dd L145
L146:
- dd m_rpop ; ( -- cinitial ) Sourcebuf+>In = location of first non-matching character
- dd c_parse
- dd m_exitcolon
+dd M_rpop ; ( -- cinitial ) Sourcebuf+>In = location of first non-matching character
+dd C_parse
+dd M_exitcolon
- CENTRY `accept`, c_accept, 6 ; ( a n -- n ) get line or n chars or EOF from input and store at a
- dd m_xswap ; ( n a -- )
- dd m_dup ; ( n a a -- )
- dd m_rpush
- dd m_rpush ; ( n -- ) (R a a -- )
+CENTRY "accept" c_accept 6 ; ( a n -- n ) get line or n chars or EOF from input and store at a
+dd M_xswap ; ( n a -- )
+dd M_dup ; ( n a a -- )
+dd M_rpush
+dd M_rpush ; ( n -- ) (R a a -- )
L148:
- dd c_qdup ; ( n n -- ) (R a a -- )
- dd m_cjump ; (if)
- dd L149 ; n == 0
- dd c_key ; n > 0 ( n -- n c )
- dd m_dup ; ( -- n c c )
- dd m_literal
- dd 10 ; ( -- n c c 10 )
- dd m_equal ; ( n c c 10 -- n c f ) checking for newline
- dd m_over ; ( -- n c f c )
- dd m_literal
- dd -1 ; ( -- n c f c -1 )
- dd m_equal ; ( -- n c f1 f2 )
- dd m_binor ; ( -- n c f )
- dd m_cjump
- dd L150
- dd c_2drop ; n == -1 || n == 10 ( -- )
- dd m_rpop
- dd m_rpop
- dd m_minus ; ( -- a2-a1 )
- dd m_exitcolon ; ( -- n ) (R -- )
-L150: ; not EOF or newline, continue
- dd m_rfetch ; ( n c a -- ) (R a a -- )
- dd m_cstore ; store the character at a
- dd m_rpop ; ( n a -- ) (R a -- )
- dd c_1plus
- dd m_rpush ; ( n -- ) (R a1 -- a1 a2 ) a1 = begin address, a2 = current address
- dd c_1minus ; ( n -- n-1 )
- dd m_jump
- dd L148 ; loop again for the next character
+dd C_qdup ; ( n n -- ) (R a a -- )
+dd M_cjump ; (if)
+dd L149 ; n == 0
+dd C_key ; n > 0 ( n -- n c )
+dd M_dup ; ( -- n c c )
+dd M_literal
+dd 10 ; ( -- n c c 10 )
+dd M_equal ; ( n c c 10 -- n c f ) checking for newline
+dd M_over ; ( -- n c f c )
+dd M_literal
+dd -1 ; ( -- n c f c -1 )
+dd M_equal ; ( -- n c f1 f2 )
+dd M_binor ; ( -- n c f )
+dd M_cjump
+dd L150
+dd C_2drop ; n == -1 || n == 10 ( -- )
+dd M_rpop
+dd M_rpop
+dd M_minus ; ( -- a2-a1 )
+dd M_exitcolon ; ( -- n ) (R -- )
+L150: ; not EOF or newline continue
+dd M_rfetch ; ( n c a -- ) (R a a -- )
+dd M_cstore ; store the character at a
+dd M_rpop ; ( n a -- ) (R a -- )
+dd C_1plus
+dd M_rpush ; ( n -- ) (R a1 -- a1 a2 ) a1 = begin address a2 = current address
+dd C_1minus ; ( n -- n-1 )
+dd M_jump
+dd L148 ; loop again for the next character
L149: ; n == 0 ( -- ) (R a1 a2 -- )
- dd m_rpop ; ( -- a2 ) (R a1 a2 -- a1 )
- dd m_rpop ; ( a2 a1 -- ) (R a1 -- )
- dd m_minus ; ( a2 a1 -- a2-a1 )
- dd m_exitcolon
+dd M_rpop ; ( -- a2 ) (R a1 a2 -- a1 )
+dd M_rpop ; ( a2 a1 -- ) (R a1 -- )
+dd M_minus ; ( a2 a1 -- a2-a1 )
+dd M_exitcolon
- CENTRY `query`, c_query, 5 ; read from input stream into the Text Input Buffer
- dd mv_Eof
- dd c_off ; clear EOF flag
- dd mc_TIB ; constant puts address of tibuffer on the top
- dd m_literal
- dd 4096 ; ( tibuffer -- tibuffer 4096 )
- dd c_accept ; ( tibuffer 4096 -- n )
- dd m_dup ; ( n -- n n )
- dd c_0eq ; ( n n -- n f )
- dd mv_Eof
- dd m_fetch
- dd m_binand ; n == 0 && EOF
- dd m_cjump
- dd L152 ; false condition
- dd m_drop ; n == 0 && EOF ( n -- )
- dd c_qrestore_input
- dd m_jump
- dd L153
+CENTRY "query" c_query 5 ; read from input stream into the Text Input Buffer
+dd MV_Eof
+dd C_off ; clear EOF flag
+dd MC_TIB ; constant puts address of tibuffer on the top
+dd M_literal
+dd 4096 ; ( tibuffer -- tibuffer 4096 )
+dd C_accept ; ( tibuffer 4096 -- n )
+dd M_dup ; ( n -- n n )
+dd C_0eq ; ( n n -- n f )
+dd MV_Eof
+dd M_fetch
+dd M_binand ; n == 0 && EOF
+dd M_cjump
+dd L152 ; false condition
+dd M_drop ; n == 0 && EOF ( n -- )
+dd C_qrestore_input
+dd M_jump
+dd L153
L152: ; n > 0
- dd mv_toLimit
- dd m_store ; number of characters to read, >Limit = n
- dd mv_toIn
- dd c_off ; start from 0, >In = 0
+dd MV_toLimit
+dd M_store ; number of characters to read >Limit = n
+dd MV_toIn
+dd C_off ; start from 0 >In = 0
L153:
- dd m_exitcolon
+dd M_exitcolon
- CENTRY `refill`, c_refill, 6
- dd mv_Blk
- dd m_fetch
- dd m_cjump
- dd L155
- dd c_false
- dd m_jump
- dd L156
+CENTRY "refill" c_refill 6
+dd MV_Blk
+dd M_fetch
+dd M_cjump
+dd L155
+dd C_false
+dd M_jump
+dd L156
L155:
- dd c_query
- dd c_true
+dd C_query
+dd C_true
L156:
- dd m_exitcolon
+dd M_exitcolon
- CENTRY `findname`, c_findname, 8 ; ( a1 -- a2 f ) ; loop through the dictionary names
- dd mv_Findadr
- dd m_store
- dd mv_Dp
- dd m_fetch ; get dictionary link
+CENTRY "findname" c_findname 8 ; ( a1 -- a2 f ) ; loop through the dictionary names
+dd MV_Findadr
+dd M_store
+dd MV_Dp
+dd M_fetch ; get dictionary link
L158:
- dd c_qdup
- dd m_cjump
- dd L159 ; seached until the first dictionary entry, get out
- dd m_dup ; ( a -- a a )
- dd c_cellplus ; lenth + initial name address
- dd m_cfetch ; length + initial name
- dd m_literal
- dd 64 ; max name length?
- dd m_binand ; keep only the length
- dd m_cjump
- dd L160
- dd m_fetch
- dd m_jump
- dd L161
+dd C_qdup
+dd M_cjump
+dd L159 ; seached until the first dictionary entry get out
+dd M_dup ; ( a -- a a )
+dd C_cellplus ; lenth + initial name address
+dd M_cfetch ; length + initial name
+dd M_literal
+dd 64 ; max name length?
+dd M_binand ; keep only the length
+dd M_cjump
+dd L160
+dd M_fetch
+dd M_jump
+dd L161
L160: ; valid length? ( a -- )
- dd m_dup
- dd c_cellplus
- dd c_count ; ( a1 a1+8 -- a1 a1+8+1 n )
- dd m_literal
- dd 63
- dd m_binand ; ( a1 a1+8+1 n 63 -- a1 a1+8+1 n&63 )
- dd mv_Findadr
- dd m_fetch
- dd c_count ; ( a1 a1+8+1 n&63 a2 n2 -- a1 a1+8+1 n&63 a2+1 n2 )
- dd c_compare ; ( -- a1 n ) compare dictionary entry with name
- dd c_0eq ; found a match?
- dd m_cjump
- dd L162
- dd c_cellplus
- dd c_true
- dd m_exitcolon
+dd M_dup
+dd C_cellplus
+dd C_count ; ( a1 a1+8 -- a1 a1+8+1 n )
+dd M_literal
+dd 63
+dd M_binand ; ( a1 a1+8+1 n 63 -- a1 a1+8+1 n&63 )
+dd MV_Findadr
+dd M_fetch
+dd C_count ; ( a1 a1+8+1 n&63 a2 n2 -- a1 a1+8+1 n&63 a2+1 n2 )
+dd C_compare ; ( -- a1 n ) compare dictionary entry with name
+dd C_0eq ; found a match?
+dd M_cjump
+dd L162
+dd C_cellplus
+dd C_true
+dd M_exitcolon
L162:
- dd m_fetch
+dd M_fetch
L161:
- dd m_jump
- dd L158
+dd M_jump
+dd L158
L159:
- dd mv_Findadr
- dd m_fetch
- dd c_false
- dd m_exitcolon
- CENTRY `find`, c_find, 4 ; ( a1 -- a2 f )?
- dd c_findname
- dd m_cjump
- dd L164
- dd m_dup
- dd m_cfetch
- dd m_xswap
- dd m_over
- dd m_literal
- dd 63
- dd m_binand
- dd m_plus
- dd c_1plus
- dd c_aligned
- dd m_xswap
- dd m_literal
- dd 128
- dd m_binand
- dd m_cjump
- dd L165
- dd m_literal
- dd 1
- dd m_jump
- dd L166
+dd MV_Findadr
+dd M_fetch
+dd C_false
+dd M_exitcolon
+CENTRY "find" c_find 4 ; ( a1 -- a2 f )?
+dd C_findname
+dd M_cjump
+dd L164
+dd M_dup
+dd M_cfetch
+dd M_xswap
+dd M_over
+dd M_literal
+dd 63
+dd M_binand
+dd M_plus
+dd C_1plus
+dd C_aligned
+dd M_xswap
+dd M_literal
+dd 128
+dd M_binand
+dd M_cjump
+dd L165
+dd M_literal
+dd 1
+dd M_jump
+dd L166
L165:
- dd m_literal
- dd -1
+dd M_literal
+dd -1
L166:
- dd m_exitcolon
- dd m_jump
- dd L167
+dd M_exitcolon
+dd M_jump
+dd L167
L164:
- dd c_false
+dd C_false
L167:
- dd m_exitcolon
- CENTRY `'`, c_single_quote, 1
- dd c_bl
- dd c_word
- dd c_find
- dd c_0eq
- dd m_cjump
- dd L169
- dd c_space
- dd c_count
- dd c_type
- dd m_literal
- dd L170
- dd m_literal
- dd 3
- dd c_type
- dd c_cr
- dd c_abort
+dd M_exitcolon
+CENTRY "'" c_single_quote 1
+dd C_bl
+dd C_word
+dd C_find
+dd C_0eq
+dd M_cjump
+dd L169
+dd C_space
+dd C_count
+dd C_type
+dd M_literal
+dd L170
+dd M_literal
+dd 3
+dd C_type
+dd C_cr
+dd C_abort
L169:
- dd m_exitcolon
- CENTRY `?stack`, c_qstack, 6
- dd m_stackptr
- dd m_s0
- dd m_greater
- dd m_cjump
- dd L172
- dd m_literal
- dd L173
- dd m_literal
- dd 16
- dd c_type
- dd c_cr
- dd c_abort
+dd M_exitcolon
+CENTRY "?stack" c_qstack 6
+dd M_stackptr
+dd M_s0
+dd M_greater
+dd M_cjump
+dd L172
+dd M_literal
+dd L173
+dd M_literal
+dd 16
+dd C_type
+dd C_cr
+dd C_abort
L172:
- dd m_exitcolon
+dd M_exitcolon
- CENTRY `interpret`, c_interpret, 9 ; there is stuff in TIB to be interpreted, >In and >Limit are set
+CENTRY "interpret" c_interpret 9 ; there is stuff in TIB to be interpreted >In and >Limit are set
L175:
- dd c_bl
- dd c_word ; ( bl -- a )
- dd m_dup
- dd m_cfetch
- dd c_0neq
- dd m_cjump
- dd L176 ; count at a = 0
- dd c_find ; ( a -- ) a = address of counted string
- dd m_cjump
- dd L177
- dd m_execute
- dd c_qstack
- dd m_jump
- dd L178
+dd C_bl
+dd C_word ; ( bl -- a )
+dd M_dup
+dd M_cfetch
+dd C_0neq
+dd M_cjump
+dd L176 ; count at a = 0
+dd C_find ; ( a -- ) a = address of counted string
+dd M_cjump
+dd L177
+dd M_execute
+dd C_qstack
+dd M_jump
+dd L178
L177:
- dd c_count
- dd c_number
- dd c_0eq
- dd m_cjump
- dd L179
- dd c_space
- dd c_type
- dd m_literal
- dd L180 ; error I?
- dd m_literal
- dd 3
- dd c_type
- dd c_cr
- dd c_abort
+dd C_count
+dd C_number
+dd C_0eq
+dd M_cjump
+dd L179
+dd C_space
+dd C_type
+dd M_literal
+dd L180 ; error I?
+dd M_literal
+dd 3
+dd C_type
+dd C_cr
+dd C_abort
L179:
L178:
- dd m_jump
- dd L175
+dd M_jump
+dd L175
L176:
- dd m_drop ; count at a = 0, ( a -- )
- dd m_exitcolon
+dd M_drop ; count at a = 0 ( a -- )
+dd M_exitcolon
- CENTRY `create`, c_create, 6
- dd c_align
- dd c_here
- dd m_rpush
- dd mv_Dp
- dd m_fetch
- dd c_comma
- dd c_bl
- dd c_word
- dd m_dup
- dd m_cfetch
- dd c_here
- dd m_xswap
- dd c_1plus
- dd m_dup
- dd m_rpush
- dd m_cmove
- dd m_rpop
- dd c_allot
- dd c_align
- dd m_literal
- dd m_variable
- dd m_fetch
- dd c_comma
- dd m_rpop
- dd mv_Dp
- dd m_store
- dd m_exitcolon
- CENTRY `variable`, c_variable, 8
- dd c_create
- dd m_literal
- dd 0
- dd c_comma
- dd m_exitcolon
- CENTRY `constant`, c_constant, 8
- dd c_create
- dd m_literal
- dd m_constant
- dd m_fetch
- dd c_here
- dd m_literal
- dd 1
- dd c_cells
- dd m_minus
- dd m_store
- dd c_comma
- dd m_exitcolon
- CENTRY `immediate`, c_immediate, 9
- dd mv_Dp
- dd m_fetch
- dd c_cellplus
- dd m_dup
- dd m_cfetch
- dd m_literal
- dd 128
- dd m_binor
- dd m_xswap
- dd m_cstore
- dd m_exitcolon
- CENTRY `>cfa`, c_tocfa, 4
- dd c_count
- dd m_literal
- dd 63
- dd m_binand
- dd m_plus
- dd c_aligned
- dd m_exitcolon
- CENTRY `compile`, c_compile, 7
- dd c_findname
- dd m_cjump
- dd L188
- dd m_dup
- dd m_cfetch
- dd m_literal
- dd 128
- dd m_binand
- dd m_cjump
- dd L189
- dd c_tocfa ; immediate
- dd m_execute
- dd c_qstack
- dd m_jump
- dd L190
+CENTRY "create" c_create 6
+dd C_align
+dd C_here
+dd M_rpush
+dd MV_Dp
+dd M_fetch
+dd C_comma
+dd C_bl
+dd C_word
+dd M_dup
+dd M_cfetch
+dd C_here
+dd M_xswap
+dd C_1plus
+dd M_dup
+dd M_rpush
+dd M_cmove
+dd M_rpop
+dd C_allot
+dd C_align
+dd M_literal
+dd M_variable
+dd M_fetch
+dd C_comma
+dd M_rpop
+dd MV_Dp
+dd M_store
+dd M_exitcolon
+CENTRY "variable" c_variable 8
+dd C_create
+dd M_literal
+dd 0
+dd C_comma
+dd M_exitcolon
+CENTRY "constant" c_constant 8
+dd C_create
+dd M_literal
+dd M_constant
+dd M_fetch
+dd C_here
+dd M_literal
+dd 1
+dd C_cells
+dd M_minus
+dd M_store
+dd C_comma
+dd M_exitcolon
+CENTRY "immediate" c_immediate 9
+dd MV_Dp
+dd M_fetch
+dd C_cellplus
+dd M_dup
+dd M_cfetch
+dd M_literal
+dd 128
+dd M_binor
+dd M_xswap
+dd M_cstore
+dd M_exitcolon
+CENTRY ">cfa" c_tocfa 4
+dd C_count
+dd M_literal
+dd 63
+dd M_binand
+dd M_plus
+dd C_aligned
+dd M_exitcolon
+CENTRY "compile" c_compile 7
+dd C_findname
+dd M_cjump
+dd L188
+dd M_dup
+dd M_cfetch
+dd M_literal
+dd 128
+dd M_binand
+dd M_cjump
+dd L189
+dd C_tocfa ; immediate
+dd M_execute
+dd C_qstack
+dd M_jump
+dd L190
L189:
- dd c_tocfa
- dd c_comma
+dd C_tocfa
+dd C_comma
L190:
- dd m_jump
- dd L191
+dd M_jump
+dd L191
L188:
- dd c_count
- dd c_number
- dd c_0eq
- dd m_cjump
- dd L192
- dd c_space
- dd c_type
- dd m_literal
- dd L193
- dd m_literal
- dd 3
- dd c_type
- dd c_cr
- dd c_abort
- dd m_jump
- dd L194
+dd C_count
+dd C_number
+dd C_0eq
+dd M_cjump
+dd L192
+dd C_space
+dd C_type
+dd M_literal
+dd L193
+dd M_literal
+dd 3
+dd C_type
+dd C_cr
+dd C_abort
+dd M_jump
+dd L194
L192:
- dd m_literal
- dd m_literal
- dd c_comma
- dd c_comma
+dd M_literal
+dd M_literal
+dd C_comma
+dd C_comma
L194:
L191:
- dd m_exitcolon
- CENTRY `]`, c_close_bracket, 1
- dd mv_State
- dd c_on
+dd M_exitcolon
+CENTRY "]" c_close_bracket 1
+dd MV_State
+dd C_on
L196:
- dd c_bl
- dd c_word
- dd m_dup
- dd m_cfetch
- dd c_0eq
- dd m_cjump
- dd L197
- dd m_drop
- dd c_refill
- dd m_jump
- dd L198
+dd C_bl
+dd C_word
+dd M_dup
+dd M_cfetch
+dd C_0eq
+dd M_cjump
+dd L197
+dd M_drop
+dd C_refill
+dd M_jump
+dd L198
L197:
- dd c_compile
- dd mv_State
- dd m_fetch
+dd C_compile
+dd MV_State
+dd M_fetch
L198:
- dd m_cjump
- dd L199
- dd m_jump
- dd L196
+dd M_cjump
+dd L199
+dd M_jump
+dd L196
L199:
- dd m_exitcolon
- CIENTRY `[`, ci_open_bracket, 1
- dd mv_State
- dd c_off
- dd m_exitcolon
- CENTRY `smudge`, c_smudge, 6
- dd mv_Dp
- dd m_fetch
- dd c_cellplus
- dd m_dup
- dd m_cfetch
- dd m_literal
- dd 64
- dd m_binor
- dd m_xswap
- dd m_cstore
- dd m_exitcolon
- CENTRY `reveal`, c_reveal, 6
- dd mv_Dp
- dd m_fetch
- dd c_cellplus
- dd m_dup
- dd m_cfetch
- dd m_literal
- dd 64
- dd c_invert
- dd m_binand
- dd m_xswap
- dd m_cstore
- dd m_exitcolon
- CENTRY `:`, c_colon, 1
- dd c_create
- dd c_smudge
- dd m_literal
- dd m_colon
- dd m_fetch
- dd c_here
- dd m_literal
- dd 1
- dd c_cells
- dd m_minus
- dd m_store
- dd c_close_bracket
- dd m_exitcolon
- CIENTRY `;`, ci_semicolon, 1
- dd m_literal
- dd m_exitcolon
- dd c_comma
- dd mv_State
- dd c_off
- dd c_reveal
- dd m_exitcolon
- CIENTRY `recurse`, ci_recurse, 7
- dd mv_Dp
- dd m_fetch
- dd c_cellplus
- dd c_tocfa
- dd c_comma
- dd m_exitcolon
- CENTRY `char`, L206, 4
- dd c_bl
- dd c_word
- dd c_1plus
- dd m_cfetch
- dd m_exitcolon
- CENTRY `literal`, c_literal, 7
- dd m_literal
- dd m_literal
- dd c_comma
- dd c_comma
- dd m_exitcolon
- CENTRY `sliteral`, c_sliteral, 8
- dd m_literal
- dd m_sliteral
- dd c_comma
- dd c_here
- dd m_literal
- dd 34
- dd c_parse
- dd m_dup
- dd m_cfetch
- dd c_1plus
- dd m_rpush
- dd m_xswap
- dd m_rfetch
- dd m_cmove
- dd m_rpop
- dd c_allot
- dd c_align
- dd m_exitcolon
- CENTRY `string`, c_string, 6
- dd c_word
- dd m_dup
- dd m_cfetch
- dd c_1plus
- dd m_rpush
- dd c_here
- dd m_rfetch
- dd m_cmove
- dd m_rpop
- dd c_allot
- dd m_exitcolon
- CIENTRY `[char]`, ci_char_brackets, 6
- dd c_bl
- dd c_word
- dd c_1plus
- dd m_cfetch
- dd c_literal
- dd m_exitcolon
- CIENTRY `[']`, ci_quote_brackets, 3
- dd c_single_quote
- dd c_literal
- dd m_exitcolon
- CIENTRY `(`, ci_openparen, 1
- dd m_literal
- dd 41
- dd c_parse
- dd m_drop
- dd m_exitcolon
- CIENTRY `\`, ci_backslash, 1
- dd mv_Blk
- dd m_fetch
- dd m_cjump
- dd L214
- dd mv_toIn
- dd m_fetch
- dd m_literal
- dd 63
- dd m_plus
- dd m_literal
- dd 63
- dd c_invert
- dd m_binand
- dd mv_toIn
- dd m_store
- dd m_jump
- dd L215
+dd M_exitcolon
+CIENTRY "[" ci_open_bracket 1
+dd MV_State
+dd C_off
+dd M_exitcolon
+CENTRY "smudge" c_smudge 6
+dd MV_Dp
+dd M_fetch
+dd C_cellplus
+dd M_dup
+dd M_cfetch
+dd M_literal
+dd 64
+dd M_binor
+dd M_xswap
+dd M_cstore
+dd M_exitcolon
+CENTRY "reveal" c_reveal 6
+dd MV_Dp
+dd M_fetch
+dd C_cellplus
+dd M_dup
+dd M_cfetch
+dd M_literal
+dd 64
+dd C_invert
+dd M_binand
+dd M_xswap
+dd M_cstore
+dd M_exitcolon
+CENTRY ":" c_colon 1
+dd C_create
+dd C_smudge
+dd M_literal
+dd M_colon
+dd M_fetch
+dd C_here
+dd M_literal
+dd 1
+dd C_cells
+dd M_minus
+dd M_store
+dd C_close_bracket
+dd M_exitcolon
+CIENTRY ";" ci_semicolon 1
+dd M_literal
+dd M_exitcolon
+dd C_comma
+dd MV_State
+dd C_off
+dd C_reveal
+dd M_exitcolon
+CIENTRY "recurse" ci_recurse 7
+dd MV_Dp
+dd M_fetch
+dd C_cellplus
+dd C_tocfa
+dd C_comma
+dd M_exitcolon
+CENTRY "char" L206 4
+dd C_bl
+dd C_word
+dd C_1plus
+dd M_cfetch
+dd M_exitcolon
+CENTRY "literal" c_literal 7
+dd M_literal
+dd M_literal
+dd C_comma
+dd C_comma
+dd M_exitcolon
+CENTRY "sliteral" c_sliteral 8
+dd M_literal
+dd M_sliteral
+dd C_comma
+dd C_here
+dd M_literal
+dd 34
+dd C_parse
+dd M_dup
+dd M_cfetch
+dd C_1plus
+dd M_rpush
+dd M_xswap
+dd M_rfetch
+dd M_cmove
+dd M_rpop
+dd C_allot
+dd C_align
+dd M_exitcolon
+CENTRY "string" c_string 6
+dd C_word
+dd M_dup
+dd M_cfetch
+dd C_1plus
+dd M_rpush
+dd C_here
+dd M_rfetch
+dd M_cmove
+dd M_rpop
+dd C_allot
+dd M_exitcolon
+CIENTRY "[char]" ci_char_brackets 6
+dd C_bl
+dd C_word
+dd C_1plus
+dd M_cfetch
+dd C_literal
+dd M_exitcolon
+CIENTRY "[']" ci_quote_brackets 3
+dd C_single_quote
+dd C_literal
+dd M_exitcolon
+CIENTRY "(" ci_openparen 1
+dd M_literal
+dd 41
+dd C_parse
+dd M_drop
+dd M_exitcolon
+CIENTRY "\\" ci_backslash 1
+dd MV_Blk
+dd M_fetch
+dd M_cjump
+dd L214
+dd MV_toIn
+dd M_fetch
+dd M_literal
+dd 63
+dd M_plus
+dd M_literal
+dd 63
+dd C_invert
+dd M_binand
+dd MV_toIn
+dd M_store
+dd M_jump
+dd L215
L214:
- dd mv_toLimit
- dd m_fetch
- dd mv_toIn
- dd m_store
+dd MV_toLimit
+dd M_fetch
+dd MV_toIn
+dd M_store
L215:
- dd m_exitcolon
- CENTRY `(?abort)`, c_qabort_parens, 8
- dd mv_State
- dd m_cjump
- dd L217
- dd c_space
- dd c_type
- dd c_cr
- dd c_abort
- dd m_jump
- dd L218
+dd M_exitcolon
+CENTRY "(?abort)" c_qabort_parens 8
+dd MV_State
+dd M_cjump
+dd L217
+dd C_space
+dd C_type
+dd C_cr
+dd C_abort
+dd M_jump
+dd L218
L217:
- dd c_2drop
+dd C_2drop
L218:
- dd m_exitcolon
- CIENTRY `abort"`, ci_abort_double_quote, 6
- dd c_sliteral
- dd m_literal
- dd c_qabort_parens
- dd c_comma
- dd m_exitcolon
- CENTRY `"`, c_double_quote, 1
- dd m_literal
- dd 34
- dd c_word
- dd c_count
- dd m_rpush
- dd c_here
- dd m_rfetch
- dd m_cmove
- dd c_here
- dd m_rpop
- dd m_dup
- dd c_allot
- dd m_exitcolon
- CENTRY `c"`, c_cdouble_quote, 2
- dd m_literal
- dd 34
- dd c_word
- dd m_dup
- dd m_cfetch
- dd c_1plus
- dd m_rpush
- dd c_here
- dd m_rfetch
- dd m_cmove
- dd c_here
- dd m_rpop
- dd c_allot
- dd m_exitcolon
- CIENTRY `s"`, ci_sdouble_quote, 2
- dd c_sliteral
- dd m_exitcolon
- CIENTRY `."`, ci_dotstr, 2
- dd c_sliteral
- dd m_literal
- dd c_type
- dd c_comma
- dd m_exitcolon
- CIENTRY `if`, ci_if, 2
- dd m_literal
- dd m_cjump
- dd c_comma
- dd c_here
- dd m_literal
- dd 0
- dd c_comma
- dd m_exitcolon
- CIENTRY `else`, ci_else, 4
- dd m_literal
- dd m_jump
- dd c_comma
- dd c_here
- dd m_rpush
- dd m_literal
- dd 0
- dd c_comma
- dd c_here
- dd m_xswap
- dd m_store
- dd m_rpop
- dd m_exitcolon
- CIENTRY `then`, ci_then, 4
- dd c_here
- dd m_xswap
- dd m_store
- dd m_exitcolon
- CIENTRY `begin`, ci_begin, 5
- dd c_here
- dd m_exitcolon
- CIENTRY `again`, ci_again, 5
- dd m_literal
- dd m_jump
- dd c_comma
- dd c_comma
- dd m_exitcolon
- CIENTRY `until`, ci_until, 5
- dd m_literal
- dd m_cjump
- dd c_comma
- dd c_comma
- dd m_exitcolon
- CIENTRY `while`, ci_while, 5
- dd m_literal
- dd m_cjump
- dd c_comma
- dd c_here
- dd m_literal
- dd 0
- dd c_comma
- dd m_exitcolon
- CIENTRY `repeat`, ci_repeat, 6
- dd m_literal
- dd m_jump
- dd c_comma
- dd m_xswap
- dd c_comma
- dd c_here
- dd m_xswap
- dd m_store
- dd m_exitcolon
- CIENTRY `do`, ci_do, 2
- dd m_literal
- dd m_doinit
- dd c_comma
- dd m_literal
- dd 0
- dd c_here
- dd m_exitcolon
- CIENTRY `loop`, ci_loop, 4
- dd m_literal
- dd m_doloop
- dd c_comma
- dd c_comma
- dd c_qdup
- dd m_cjump
- dd L234
- dd c_here
- dd m_xswap
- dd m_store
+dd M_exitcolon
+CIENTRY "abort"" ci_abort_double_quote 6
+dd C_sliteral
+dd M_literal
+dd C_qabort_parens
+dd C_comma
+dd M_exitcolon
+CENTRY "\"" c_double_quote 1
+dd M_literal
+dd 34
+dd C_word
+dd C_count
+dd M_rpush
+dd C_here
+dd M_rfetch
+dd M_cmove
+dd C_here
+dd M_rpop
+dd M_dup
+dd C_allot
+dd M_exitcolon
+CENTRY "c\"" c_cdouble_quote 2
+dd M_literal
+dd 34
+dd C_word
+dd M_dup
+dd M_cfetch
+dd C_1plus
+dd M_rpush
+dd C_here
+dd M_rfetch
+dd M_cmove
+dd C_here
+dd M_rpop
+dd C_allot
+dd M_exitcolon
+CIENTRY "s\"" ci_sdouble_quote 2
+dd C_sliteral
+dd M_exitcolon
+CIENTRY ".\"" ci_dotstr 2
+dd C_sliteral
+dd M_literal
+dd C_type
+dd C_comma
+dd M_exitcolon
+CIENTRY "if" ci_if 2
+dd M_literal
+dd M_cjump
+dd C_comma
+dd C_here
+dd M_literal
+dd 0
+dd C_comma
+dd M_exitcolon
+CIENTRY "else" ci_else 4
+dd M_literal
+dd M_jump
+dd C_comma
+dd C_here
+dd M_rpush
+dd M_literal
+dd 0
+dd C_comma
+dd C_here
+dd M_xswap
+dd M_store
+dd M_rpop
+dd M_exitcolon
+CIENTRY "then" ci_then 4
+dd C_here
+dd M_xswap
+dd M_store
+dd M_exitcolon
+CIENTRY "begin" ci_begin 5
+dd C_here
+dd M_exitcolon
+CIENTRY "again" ci_again 5
+dd M_literal
+dd M_jump
+dd C_comma
+dd C_comma
+dd M_exitcolon
+CIENTRY "until" ci_until 5
+dd M_literal
+dd M_cjump
+dd C_comma
+dd C_comma
+dd M_exitcolon
+CIENTRY "while" ci_while 5
+dd M_literal
+dd M_cjump
+dd C_comma
+dd C_here
+dd M_literal
+dd 0
+dd C_comma
+dd M_exitcolon
+CIENTRY "repeat" ci_repeat 6
+dd M_literal
+dd M_jump
+dd C_comma
+dd M_xswap
+dd C_comma
+dd C_here
+dd M_xswap
+dd M_store
+dd M_exitcolon
+CIENTRY "do" ci_do 2
+dd M_literal
+dd M_doinit
+dd C_comma
+dd M_literal
+dd 0
+dd C_here
+dd M_exitcolon
+CIENTRY "loop" ci_loop 4
+dd M_literal
+dd M_doloop
+dd C_comma
+dd C_comma
+dd C_qdup
+dd M_cjump
+dd L234
+dd C_here
+dd M_xswap
+dd M_store
L234:
- dd m_exitcolon
- CIENTRY `+loop`, ci_ploop, 5
- dd m_literal
- dd m_doploop
- dd c_comma
- dd c_comma
- dd c_qdup
- dd m_cjump
- dd L236
- dd c_here
- dd m_xswap
- dd m_store
+dd M_exitcolon
+CIENTRY "+loop" ci_ploop 5
+dd M_literal
+dd M_doploop
+dd C_comma
+dd C_comma
+dd C_qdup
+dd M_cjump
+dd L236
+dd C_here
+dd M_xswap
+dd M_store
L236:
- dd m_exitcolon
- CENTRY `w/o`, c_wo, 3
- dd m_literal
- dd 1
- dd m_literal
- dd 512
- dd m_binor
- dd m_literal
- dd 64
- dd m_binor
- dd m_exitcolon
- CENTRY `r/o`, c_ro, 3
- dd m_literal
- dd 0
- dd m_exitcolon
- CENTRY `r/w`, c_rw, 3
- dd m_literal
- dd 2
- dd m_exitcolon
- CENTRY `open-file`, c_open_file, 9
- dd m_rpush
- dd c_pad
- dd m_literal
- dd 1024
- dd m_plus
- dd m_xswap
- dd m_dup
- dd m_rpush
- dd m_cmove
- dd m_literal
- dd 0
- dd m_rpop
- dd c_pad
- dd m_plus
- dd m_literal
- dd 1024
- dd m_plus
- dd m_cstore
- dd c_pad
- dd m_literal
- dd 1024
- dd m_plus
- dd m_rpop
- dd m_literal
- dd 420
- dd m_fthopen
- dd m_dup
- dd m_literal
- dd -1
- dd m_greater
- dd m_exitcolon
- CENTRY `close-file`, c_close_file, 10
- dd m_fthclose
- dd c_0eq
- dd m_exitcolon
- CENTRY `read-file`, c_read_file, 9
- dd m_fthread
- dd m_dup
- dd m_literal
- dd -1
- dd c_neq
- dd m_exitcolon
- CENTRY `write-file`, c_write_file, 10
- dd m_fthwrite
- dd m_literal
- dd -1
- dd c_neq
- dd m_exitcolon
- CENTRY `reposition-file`, c_reposition_file, 15
- dd m_fthseek
- dd m_literal
- dd -1
- dd c_neq
- dd m_exitcolon
- CENTRY `?fcheck`, c_qfcheck, 7
- dd c_0eq
- dd m_cjump
- dd L246
- dd c_space
- dd m_literal
- dd L247
- dd m_literal
- dd 9
- dd c_type
- dd c_cr
- dd c_abort
+dd M_exitcolon
+CENTRY "w/o" c_wo 3
+dd M_literal
+dd 1
+dd M_literal
+dd 512
+dd M_binor
+dd M_literal
+dd 64
+dd M_binor
+dd M_exitcolon
+CENTRY "r/o" c_ro 3
+dd M_literal
+dd 0
+dd M_exitcolon
+CENTRY "r/w" c_rw 3
+dd M_literal
+dd 2
+dd M_exitcolon
+CENTRY "open-file" c_open_file 9
+dd M_rpush
+dd C_pad
+dd M_literal
+dd 1024
+dd M_plus
+dd M_xswap
+dd M_dup
+dd M_rpush
+dd M_cmove
+dd M_literal
+dd 0
+dd M_rpop
+dd C_pad
+dd M_plus
+dd M_literal
+dd 1024
+dd M_plus
+dd M_cstore
+dd C_pad
+dd M_literal
+dd 1024
+dd M_plus
+dd M_rpop
+dd M_literal
+dd 420
+dd M_fthopen
+dd M_dup
+dd M_literal
+dd -1
+dd M_greater
+dd M_exitcolon
+CENTRY "close-file" c_close_file 10
+dd M_fthclose
+dd C_0eq
+dd M_exitcolon
+CENTRY "read-file" c_read_file 9
+dd M_fthread
+dd M_dup
+dd M_literal
+dd -1
+dd C_neq
+dd M_exitcolon
+CENTRY "write-file" c_write_file 10
+dd M_fthwrite
+dd M_literal
+dd -1
+dd C_neq
+dd M_exitcolon
+CENTRY "reposition-file" c_reposition_file 15
+dd M_fthseek
+dd M_literal
+dd -1
+dd C_neq
+dd M_exitcolon
+CENTRY "?fcheck" c_qfcheck 7
+dd C_0eq
+dd M_cjump
+dd L246
+dd C_space
+dd M_literal
+dd L247
+dd M_literal
+dd 9
+dd C_type
+dd C_cr
+dd C_abort
L246:
- dd m_exitcolon
- CENTRY `bye`, c_bye, 3
- dd m_literal
- dd 0
- dd m_terminate
- dd m_exitcolon
+dd M_exitcolon
+CENTRY "bye" c_bye 3
+dd M_literal
+dd 0
+dd M_terminate
+dd M_exitcolon
- CENTRY `include`, c_include, 7
- dd c_bl
- dd c_word
- dd m_rpush
- dd mv_toLimit
- dd m_fetch
- dd mv_toIn
- dd m_store
- dd c_save_input
- dd m_rpop
- dd c_count
- dd c_ro
- dd c_open_file
- dd c_qfcheck
- dd mv_Infd
- dd m_store
- dd m_exitcolon
+CENTRY "include" c_include 7
+dd C_bl
+dd C_word
+dd M_rpush
+dd MV_toLimit
+dd M_fetch
+dd MV_toIn
+dd M_store
+dd C_save_input
+dd M_rpop
+dd C_count
+dd C_ro
+dd C_open_file
+dd C_qfcheck
+dd MV_Infd
+dd M_store
+dd M_exitcolon
- CENTRY `crash`, c_crash, 5
- dd m_literal
- dd L251
- dd m_literal
- dd 30
- dd c_type
- dd c_cr
- dd c_abort
- dd m_exitcolon
+CENTRY "crash" c_crash 5
+dd M_literal
+dd L251
+dd M_literal
+dd 30
+dd C_type
+dd C_cr
+dd C_abort
+dd M_exitcolon
- CENTRY `quit`, c_quit, 4 ; interpreter loop
- dd m_reset ; initialize return stack
- dd m_clear ; SP = sstack_end, initialize data stack
+CENTRY "quit" c_quit 4 ; interpreter loop
+dd M_reset ; initialize return stack
+dd M_clear ; SP = sstack_end initialize data stack
L253:
- dd c_query
- dd c_interpret
- dd m_jump
- dd L253
- dd m_exitcolon ; why is this needed?
+dd C_query
+dd C_interpret
+dd M_jump
+dd L253
+dd M_exitcolon ; why is this needed?
- CENTRY `(abort)`, c_parenabort, 7 ; TODO correct below stack notations
- dd mv_State ; ( mv_State -- )
- dd c_off ; off sets variable state = 0
- dd mc_TIB ; constant puts address of tibuffer on the top of stack
- dd mv_Sourcebuf ; variable sourcebuf
- dd m_store ; variable sourcebuf = address of tibuffer
- dd mv_Blk ; variable blk
- dd c_off ; off variable blk = 0
- dd mc_STDIN
- dd mv_Infd
- dd m_store
- dd mc_STDOUT
- dd mv_Outfd
- dd m_store
- dd mc_STDERR
- dd mv_Errfd
- dd m_store
- dd c_quit ; quit resets stacks and is the interpreter loop
- dd m_exitcolon ; why is this needed? quit does not return unless it breaks
+CENTRY "(abort)" c_parenabort 7 ; TODO correct below stack notations
+dd MV_State ; ( mv_State -- )
+dd C_off ; off sets variable state = 0
+dd MC_TIB ; constant puts address of tibuffer on the top of stack
+dd MV_Sourcebuf ; variable sourcebuf
+dd M_store ; variable sourcebuf = address of tibuffer
+dd MV_Blk ; variable blk
+dd C_off ; off variable blk = 0
+dd MC_STDIN
+dd MV_Infd
+dd M_store
+dd MC_STDOUT
+dd MV_Outfd
+dd M_store
+dd MC_STDERR
+dd MV_Errfd
+dd M_store
+dd C_quit ; quit resets stacks and is the interpreter loop
+dd M_exitcolon ; why is this needed? quit does not return unless it breaks
- CENTRY `oldboot`, c_oldboot, 7 ; TODO correct below stack notations and this is obsolete. leaving it here for reference until it all works well
- dd m_reset
- dd m_clear ; SP = sstack_end
- dd m_stackptr ; (D -- FFEND)
- dd m_s0
- dd m_store ; s0 = FFEND
- dd m_h0 ; heaptop = heapend
- dd m_fetch ; ( heapend -- )
- dd m_literal
- dd 1 ; ( heapend 1 -- )
- dd c_cells ; cells ( heapend 8 -- )
- dd m_minus ; ( heapend-8 -- )
- dd m_fetch ; ( contents_from_heapend-8 -- )
- dd m_args ; variable args
- dd m_store ; args = contents_from_heapend-8
- dd m_literal
- dd c_parenabort ; ( (abort) -- )
- dd mv_Abortvec ; variable abortvec
- dd m_store ; variable abortvec = (abort) code address
- dd mc_WORDB ; constant puts address of wordbuffer on the top of stack
- dd mv_Wordbuf ; variable wordbuf
- dd m_store ; variable wordbuf = address of wordbuffer
- dd mc_TIB ; constant puts address of tibuffer on the top of stack
- dd mv_Sourcebuf ; variable sourcebuf
- dd m_store ; variable sourcebuf = address of tibuffer
- dd m_literal
- dd 0
- dd mv_Infd
- dd m_store ; stdin = 0
- dd m_literal
- dd 1
- dd mv_Outfd
- dd m_store ; stdout = 1
- dd mv_State
- dd c_off ; off stores 0 at state
- dd c_decimal ; decimal setting base = 0
- dd c_quit ; quit
- dd m_exitcolon
+CENTRY "oldboot" c_oldboot 7 ; TODO correct below stack notations and this is obsolete. leaving it here for reference until it all works well
+dd M_reset
+dd M_clear ; SP = sstack_end
+dd M_stackptr ; (D -- FFEND)
+dd M_s0
+dd M_store ; s0 = FFEND
+dd M_h0 ; heaptop = heapend
+dd M_fetch ; ( heapend -- )
+dd M_literal
+dd 1 ; ( heapend 1 -- )
+dd C_cells ; cells ( heapend 8 -- )
+dd M_minus ; ( heapend-8 -- )
+dd M_fetch ; ( contents_from_heapend-8 -- )
+dd M_args ; variable args
+dd M_store ; args = contents_from_heapend-8
+dd M_literal
+dd C_parenabort ; ( (abort) -- )
+dd MV_Abortvec ; variable abortvec
+dd M_store ; variable abortvec = (abort) code address
+dd MC_WORDB ; constant puts address of wordbuffer on the top of stack
+dd MV_Wordbuf ; variable wordbuf
+dd M_store ; variable wordbuf = address of wordbuffer
+dd MC_TIB ; constant puts address of tibuffer on the top of stack
+dd MV_Sourcebuf ; variable sourcebuf
+dd M_store ; variable sourcebuf = address of tibuffer
+dd M_literal
+dd 0
+dd MV_Infd
+dd M_store ; stdin = 0
+dd M_literal
+dd 1
+dd MV_Outfd
+dd M_store ; stdout = 1
+dd MV_State
+dd C_off ; off stores 0 at state
+dd C_decimal ; decimal setting base = 0
+dd C_quit ; quit
+dd M_exitcolon
- CENTRY `boot`, c_boot, 4
- dd m_reset ; initialize return stack
- dd m_clear ; SP = sstack_end, initialize data stack
+CENTRY "boot" c_boot 4
+
+dd M_literal ; this is not working TEST
+dd 66
+dd MC_WORDB
+dd M_store
+dd M_literal
+dd 1
+dd MC_WORDB
+dd MC_STDOUT
+dd M_fthwrite
+dd M_literal
+dd 1
+dd MC_WORDB
+dd MC_STDIN
+dd M_fthread ; this is not working TODO
+
+dd M_reset ; initialize return stack
+dd M_clear ; SP = sstack_end initialize data stack
; s0 puts FFEND on the stack
; no args
- dd m_literal
- dd c_parenabort ; ( (abort) -- )
- dd mv_Abortvec ; variable that puts (abort) code address on the stack
- dd m_store ; variable abortvec = (abort) code address
+dd M_literal
+dd C_parenabort ; ( (abort) -- )
+dd MV_Abortvec ; variable that puts (abort) code address on the stack
+dd M_store ; variable abortvec = (abort) code address
- dd mc_WORDB ; variable puts address of wordbuffer on the top of stack
- dd mv_Wordbuf ; variable wordbuf
- dd m_store ; variable wordbuf = address of wordbuffer
+dd MC_WORDB ; variable puts address of wordbuffer on the top of stack
+dd MV_Wordbuf ; variable wordbuf
+dd M_store ; variable wordbuf = address of wordbuffer
- dd mc_TIB ; constant puts address of tibuffer on the top of stack
- dd mv_Sourcebuf ; variable sourcebuf
- dd m_store ; variable sourcebuf = address of tibuffer
+dd MC_TIB ; constant puts address of tibuffer on the top of stack
+dd MV_Sourcebuf ; variable sourcebuf
+dd M_store ; variable sourcebuf = address of tibuffer
- dd mc_STDIN
- dd mv_Infd
- dd m_store ; stdin = 0
- dd mc_STDOUT
- dd mv_Outfd
- dd m_store
- dd mc_STDERR
- dd mv_Errfd
- dd m_store
+dd MC_STDIN
+dd MV_Infd
+dd M_store ; stdin = 0
+dd MC_STDOUT
+dd MV_Outfd
+dd M_store
+dd MC_STDERR
+dd MV_Errfd
+dd M_store
- dd mv_State
- dd c_off ; off stores 0 at state
- dd c_decimal ; decimal setting base = 0
- dd c_quit ; quit
- dd m_exitcolon
+dd MV_State
+dd C_off ; off stores 0 at state
+dd C_decimal ; decimal setting base = 0
+dd C_quit ; quit
+dd M_exitcolon
L137:
- db 'unable to restore input'
+db "unable to restore input"
L170:
- db ' Q?'
+db " Q?"
L173:
- db ' stack underflow'
+db " stack underflow"
L180:
- db ' I?'
+db " I?"
L193:
- db ' C?'
+db " C?"
L247:
- db 'I/O error'
+db "I/O error"
L251:
- db 'uninitialized execution vector'
+db "uninitialized execution vector"
L255:
- db ' ok'
+db " ok"
--- a/os/port/devforth.c
+++ b/os/port/devforth.c
@@ -5,7 +5,10 @@
#include "fns.h"
#include "../port/error.h"
+#include "forth.h"
+
static int debug = 0;
+extern Fentry fentries[];
/*
* 1. Provides #f/forth/new to start new forth processes