ref: 8e10dcdcfb5e600e863823da5bff03861399caaa
parent: 40311fbd2be7d0299b78838dc3103ba9f8f70134
author: 9ferno <gophone2015@gmail.com>
date: Thu Feb 10 23:46:51 EST 2022
variables for memory locations
--- a/os/pc64/bindings.s
+++ b/os/pc64/bindings.s
@@ -36,7 +36,7 @@
#define STORE(x,y) \
MOVQ $y, CX; \
- ADDQ UM, CX; \
+ ADDQ UP, CX; \
MOVQ x, 0(CX);
#define STOREFORTH \
@@ -45,12 +45,12 @@
STORE(RSP,FORTHRSP);\
STORE(IP,FORTHIP);\
STORE(W,FORTHW);\
- STORE(UM,FORTHUM);\
- STORE(UME,FORTHUME);
+ STORE(UP,FORTHUP);\
+ STORE(UPE,FORTHUPE);
#define RESTORE(x,y) \
MOVQ $x, CX; \
- ADDQ UM, CX; \
+ ADDQ UP, CX; \
MOVQ 0(CX), y;
#define RESTOREFORTH \
@@ -59,8 +59,8 @@
RESTORE(FORTHRSP,RSP);\
RESTORE(FORTHIP,IP);\
RESTORE(FORTHW,W);\
- RESTORE(FORTHUM,UM);\
- RESTORE(FORTHUME,UME);
+ RESTORE(FORTHUP,UP);\
+ RESTORE(FORTHUPE,UPE);
#define C_TO_F_0 \
RESTOREFORTH;
@@ -92,19 +92,19 @@
STOREFORTH;
TEXT sysopen(SB), 1, $24 /* ( cstr mode -- fd ) */
- MOVQ UM, 16(SP)
+ MOVQ UP, 16(SP)
F_TO_C_2
CALL kopen(SB)
- MOVQ 16(SP), UM
+ MOVQ 16(SP), UP
C_TO_F_1
ADDQ $24, SP
NEXT
TEXT sysclose(SB), 1, $16 /* ( fd -- n ) */
- MOVQ UM, 8(SP)
+ MOVQ UP, 8(SP)
F_TO_C_1
CALL kclose(SB)
- MOVQ 24(SP), UM
+ MOVQ 24(SP), UP
C_TO_F_1
ADDQ $16, SP
NEXT
@@ -112,7 +112,7 @@
/*
* no link register in amd64
* 3 arguments for kwrite = 24 bytes
- * 1 local for storing UM = 8 bytes
+ * 1 local for storing UP = 8 bytes
* 1 local for storing fd
* Hence, need 40 bytes on the stack
* if fd == 0 and read return value == 0 == End of file, terminate
@@ -128,10 +128,10 @@
CMPQ CX, $0; /* negative n? */\
JLT belowum; /* TODO have an appropriate error message */\
ADDQ (PSP), CX; /* CX = a+n */\
- CMPQ CX, UME; /* a+n, UME */\
- JGT aboveume; /* a+n > UME */\
- CMPQ (PSP), UM; /* a, UM */\
- JLT belowum; /* a < UM */
+ CMPQ CX, UPE; /* a+n, UPE */\
+ JGT aboveume; /* a+n > UPE */\
+ CMPQ (PSP), UP; /* a, UP */\
+ JLT belowum; /* a < UP */
TEXT sysread(SB), 1, $40 /* ( fd a n -- n2 ) */
@@ -139,10 +139,10 @@
MOVQ 8(PSP), CX
MOVQ CX, 32(SP) /* storing the fd to double check later */
- MOVQ UM, 24(SP)
+ MOVQ UP, 24(SP)
F_TO_C_3
CALL kread(SB)
- MOVQ 24(SP), UM
+ MOVQ 24(SP), UP
C_TO_F_1
CMPQ TOP, $-1 /* return value == -1? */
@@ -165,7 +165,7 @@
/*
* no link register in amd64
* 3 arguments for kwrite = 24 bytes
- * 1 local for storing UM = 8 bytes
+ * 1 local for storing UP = 8 bytes
* Hence, need 32 bytes on the stack
*/
TEXT syswrite(SB), 1, $32 /* ( fd a n -- n2|-1 ) */
@@ -172,37 +172,37 @@
CHECKBUFFER
- MOVQ UM, 24(SP)
+ MOVQ UP, 24(SP)
F_TO_C_3
CALL kwrite(SB)
- MOVQ 24(SP), UM
+ MOVQ 24(SP), UP
C_TO_F_1
ADDQ $32, SP
NEXT
TEXT sysseek(SB), 1, $32 /* ( fd pos type -- n ) */
- MOVQ UM, 24(SP)
+ MOVQ UP, 24(SP)
F_TO_C_3
CALL kseek(SB)
- MOVQ 24(SP), UM
+ MOVQ 24(SP), UP
C_TO_F_1
ADDQ $32, SP
NEXT
TEXT syscreate(SB), 1, $32 /* ( cstr mode perm -- fd ) */
- MOVQ UM, 24(SP)
+ MOVQ UP, 24(SP)
F_TO_C_3
CALL kcreate(SB)
- MOVQ 24(SP), UM
+ MOVQ 24(SP), UP
C_TO_F_1
ADDQ $32, SP
NEXT
TEXT sysbind(SB), 1, $32 /* ( cstrold cstrnew flags -- int ) */
- MOVQ UM, 24(SP)
+ MOVQ UP, 24(SP)
F_TO_C_3
CALL kbind(SB)
- MOVQ 24(SP), UM
+ MOVQ 24(SP), UP
C_TO_F_1
ADDQ $32, SP
NEXT
@@ -221,10 +221,10 @@
STOREFORTH;
TEXT sysmount(SB), 1, $48 /* ( fd afd cstrold flags spec -- int ) */
- MOVQ UM, 40(SP)
+ MOVQ UP, 40(SP)
F_TO_C_5
CALL kmount(SB)
- MOVQ 40(SP), UM
+ MOVQ 40(SP), UP
C_TO_F_1
ADDQ $48, SP
NEXT
--- a/os/pc64/forth.h
+++ b/os/pc64/forth.h
@@ -5,6 +5,7 @@
Header,
IHeader, /* Immediate dictionary definition */
Absolute,
+ FromDictionary,
FromH0,
FromV0,
Chars,
@@ -78,297 +79,330 @@
M_dodoes = 1176,
M_cas = 1200,
M_deferred = 1232,
- M_sysbind = 1256,
- M_sysclose = 1288,
- M_syscreate = 1320,
- M_sysmount = 1352,
- M_sysopen = 1376,
- M_sysread = 1400,
- M_sysseek = 1424,
- M_syswrite = 1456,
- MC_STDIN = 1480,
- MC_STDOUT = 1512,
- MC_STDERR = 1544,
- MV_Iobuf = 1576,
- MV_Sourcebuf = 1616,
- MV_Wordbuf = 1648,
- MV_toIn = 1680,
- MV_toLimit = 1712,
- MV_Findadr = 1744,
- MV_Acceptvec = 1784,
- MV_Searchlen = 1824,
- MV_Base = 1856,
- MV_toNum = 1888,
- MV_State = 1920,
- MV_Abortvec = 1960,
- MV_Infd = 1992,
- MV_Outfd = 2024,
- MV_Errfd = 2056,
- MV_Eof = 2088,
- MV_Ninputs = 2120,
- MV_H0 = 2152,
- M_Dp = 2184,
- M_Dtop = 2208,
- M_Vp = 2232,
- M_S0 = 2256,
- M_stackptr = 2280,
- M_Wordb = 2304,
- M_Tib = 2328,
- M_Fthargs = 2352,
- C_false = 2376,
- C_true = 2424,
- C_bl = 2472,
- C_on = 2520,
- C_off = 2584,
- C_tobody = 2648,
- C_aligned = 2704,
- C_cells = 2784,
- C_cellplus = 2840,
- C_depth = 2904,
- C_nip = 3008,
- C_rot = 3056,
- C_2drop = 3120,
- C_2dup = 3168,
- C_2nip = 3216,
- C_2swap = 3264,
- C_qdup = 3328,
- L20 = 3400,
- C_pick = 3424,
- L22 = 3528,
- L23 = 3536,
- C_tuck = 3560,
- C_divides = 3624,
- C_plusstore = 3672,
- C_invert = 3752,
- C_mod = 3808,
- C_1plus = 3856,
- C_1minus = 3912,
- C_negate = 3968,
- C_2multiplies = 4032,
- C_2divides = 4088,
- C_0eq = 4144,
- C_0lt = 4200,
- C_0gt = 4256,
- C_neq = 4312,
- C_0neq = 4360,
- C_max = 4416,
- L40 = 4480,
- L41 = 4488,
- C_min = 4512,
- L43 = 4576,
- L44 = 4584,
- C_signum = 4608,
- L46 = 4688,
- L48 = 4744,
- L49 = 4760,
- L47 = 4760,
- C_within = 4784,
- C_abs = 4888,
- L52 = 4936,
- C_key = 4960,
- L78 = 5088,
- L79 = 5104,
- C_emit = 5128,
- C_type = 5232,
- C_cr = 5328,
- C_space = 5384,
- C_emits = 5432,
- L85 = 5440,
- L86 = 5504,
- C_spaces = 5536,
- C_count = 5592,
- C_compare = 5736,
- L55 = 5808,
- L56 = 5944,
- C_erase = 6024,
- L58 = 6056,
- C_fill = 6144,
- L60 = 6184,
- C_blank = 6272,
- C_search = 6320,
- L64 = 6424,
- L65 = 6608,
- C_here = 6672,
- C_vhere = 6720,
- C_comma = 6768,
- C_c = 6848,
- C_allot = 6928,
- C_vallot = 6976,
- C_pad = 7024,
- C_align = 7088,
- C_unused = 7152,
- C_fromhash = 7216,
- C_hash = 7296,
- L92 = 7448,
- L93 = 7472,
- C_hashs = 7552,
- L95 = 7560,
- L96 = 7608,
- C_hashfrom = 7632,
- C_hold = 7744,
- C_sign = 7848,
- L100 = 7904,
- C_dot = 7928,
- C_dotr = 8032,
- C_hex = 8192,
- C_decimal = 8256,
- C_digit = 8320,
- L106 = 8432,
- L108 = 8536,
- L110 = 8640,
- L111 = 8664,
- L109 = 8664,
- L107 = 8664,
- L112 = 8736,
- L113 = 8752,
- C_number = 8776,
- L115 = 8912,
- L116 = 8944,
- L117 = 9008,
- L118 = 9112,
- L119 = 9168,
- C_abort = 9256,
- C_source = 9312,
- C_current_input = 9368,
- C_save_input = 9448,
- C_default_input = 9584,
- C_restore_input = 9736,
- L132 = 9960,
- C_qrestore_input = 10008,
- L136 = 10136,
- C_next_input = 10168,
- L139 = 10264,
- L140 = 10288,
- C_parse = 10312,
- L142 = 10352,
- L143 = 10480,
- C_word = 10624,
- L145 = 10640,
- L146 = 10736,
- C_accept = 10776,
- L300 = 10840,
- C_accept_line = 10912,
- L303 = 11120,
- L301 = 11136,
- L302 = 11192,
- C_accept_key = 11240,
- L148 = 11280,
- L150 = 11440,
- L149 = 11504,
- C_query = 11552,
- L152 = 11696,
- L153 = 11728,
- C_refill = 11752,
- L155 = 11808,
- C_findname = 11856,
- L158 = 11896,
- L160 = 12008,
- L162 = 12136,
- L161 = 12144,
- L159 = 12160,
- C_find = 12208,
- L165 = 12400,
- L166 = 12416,
- L164 = 12440,
- L167 = 12448,
- C_single_quote = 12472,
- L169 = 12608,
- C_qstack = 12632,
- L172 = 12736,
- C_interpret = 12808,
- L175 = 12816,
- L177 = 12928,
- L179 = 13040,
- L178 = 13040,
- L176 = 13056,
- C_create = 13088,
- C_variable = 13336,
- C_constant = 13432,
- C_immediate = 13560,
- C_tocfa = 13672,
- C_compile = 13752,
- L189 = 13880,
- L190 = 13896,
- L188 = 13912,
- L192 = 14040,
- L194 = 14072,
- L191 = 14072,
- C_close_bracket = 14096,
- L196 = 14120,
- L197 = 14208,
- L198 = 14232,
- L199 = 14264,
- CI_open_bracket = 14288,
- C_smudge = 14336,
- C_reveal = 14448,
- C_colon = 14568,
- CI_semicolon = 14696,
- CI_recurse = 14776,
- C_char = 14848,
- C_literal = 14912,
- C_sliteral = 14984,
- C_string = 15152,
- CI_char_brackets = 15264,
- CI_quote_brackets = 15336,
- CI_openparen = 15384,
- CI_backslash = 15448,
- L214 = 15528,
- C_qabort_parens = 15592,
- L217 = 15672,
- L218 = 15680,
- CI_abort_double_quote = 15704,
- C_double_quote = 15768,
- C_cdouble_quote = 15896,
- CI_sdouble_quote = 16032,
- CI_dotstr = 16072,
- CI_if = 16136,
- CI_else = 16224,
- CI_then = 16352,
- CI_begin = 16408,
- CI_again = 16448,
- CI_until = 16512,
- CI_while = 16576,
- CI_repeat = 16664,
- CI_do = 16760,
- CI_loop = 16840,
- L234 = 16928,
- CI_ploop = 16952,
- L236 = 17040,
- C_wo = 17064,
- C_ro = 17160,
- C_rw = 17208,
- C_cstring = 17256,
- C_cstring0 = 17440,
- C_cstring1 = 17504,
- C_open_file = 17568,
- C_close_file = 17672,
- C_read_file = 17728,
- C_write_file = 17824,
- C_reposition_file = 17912,
- C_qfcheck = 17992,
- L246 = 18088,
- C_create_file = 18120,
- C_bye = 18392,
- C_include = 18448,
- L248 = 18544,
- C_crash = 18672,
- C_quit = 18760,
- L253 = 18784,
- C_parenabort = 18840,
- C_oldboot = 18976,
- C_do_args = 19424,
- C_boot = 19576,
- L260 = 19824,
- L137 = 19840,
- L170 = 19864,
- L173 = 19868,
- L180 = 19885,
- L193 = 19889,
- L247 = 19893,
- L251 = 19903,
- L255 = 19934,
- L304 = 19938,
- L305 = 19975,
+ M_stackptr = 1256,
+ M_sysbind = 1280,
+ M_sysclose = 1312,
+ M_syscreate = 1344,
+ M_sysmount = 1376,
+ M_sysopen = 1400,
+ M_sysread = 1424,
+ M_sysseek = 1448,
+ M_syswrite = 1480,
+ MC_STDIN = 1504,
+ MC_STDOUT = 1536,
+ MC_STDERR = 1568,
+ MC_WORDNUM = 1600,
+ MC_LINENUM = 1632,
+ MC_DOUBLEQUOTENUM = 1672,
+ MC_CLOSEPARENNUM = 1712,
+ MC_NBUFFERS = 1752,
+ MV_Dp = 1784,
+ MV_Dtop = 1816,
+ MV_Vp = 1848,
+ MV_Pid = 1880,
+ MV_Parentpid = 1912,
+ MV_S0 = 1944,
+ MV_Wordb = 1976,
+ MV_Tib = 2008,
+ MV_Argsfilename = 2048,
+ MV_Iobuf = 2080,
+ MV_Sourcebuf = 2120,
+ MV_Wordbuf = 2152,
+ MV_toIn = 2184,
+ MV_toLimit = 2216,
+ MV_Findadr = 2248,
+ MV_Acceptvec = 2288,
+ MV_Searchlen = 2328,
+ MV_Base = 2360,
+ MV_toNum = 2392,
+ MV_State = 2424,
+ MV_Abortvec = 2464,
+ MV_Infd = 2496,
+ MV_Outfd = 2528,
+ MV_Errfd = 2560,
+ MV_Eof = 2592,
+ MV_Ninputs = 2624,
+ MV_H0 = 2656,
+ MV_Bufferfds = 2696,
+ MV_Bufferfilenames = 2736,
+ C_false = 2768,
+ C_true = 2816,
+ C_bl = 2864,
+ C_on = 2912,
+ C_off = 2976,
+ C_tobody = 3040,
+ C_aligned = 3096,
+ C_cells = 3176,
+ C_cells_plus = 3232,
+ C_cell_plus = 3280,
+ C_depth = 3336,
+ C_nip = 3440,
+ C_rot = 3488,
+ C_2drop = 3552,
+ C_2dup = 3600,
+ C_2nip = 3648,
+ C_2swap = 3696,
+ C_qdup = 3760,
+ L_C_qdup = 3832,
+ C_pick = 3856,
+ L_C_pick = 3960,
+ L_C_pick_1 = 3968,
+ C_tuck = 3992,
+ C_divides = 4056,
+ C_plusstore = 4104,
+ C_invert = 4184,
+ C_mod = 4240,
+ C_1plus = 4288,
+ C_1minus = 4344,
+ C_negate = 4400,
+ C_2multiplies = 4464,
+ C_2divides = 4520,
+ C_0eq = 4576,
+ C_0lt = 4632,
+ C_0gt = 4688,
+ C_neq = 4744,
+ C_0neq = 4792,
+ C_max = 4848,
+ L_C_max = 4912,
+ L_C_max_1 = 4920,
+ C_min = 4944,
+ L_C_min = 5008,
+ L_C_min_1 = 5016,
+ C_signum = 5040,
+ L_C_signum = 5120,
+ L_C_signum_2 = 5176,
+ L_C_signum_3 = 5192,
+ L_C_signum_1 = 5192,
+ C_within = 5216,
+ C_abs = 5320,
+ L_C_abs = 5368,
+ C_emit = 5392,
+ C_type = 5496,
+ C_cr = 5592,
+ C_space = 5648,
+ C_emits = 5696,
+ L_C_emits = 5704,
+ L_C_emits_1 = 5768,
+ C_spaces = 5800,
+ C_count = 5856,
+ C_compare = 6000,
+ L_C_compare = 6072,
+ L_C_compare_1 = 6208,
+ C_erase = 6288,
+ L_C_erase = 6320,
+ C_fill = 6408,
+ L_C_fill = 6448,
+ C_blank = 6536,
+ C_search = 6584,
+ L_C_search = 6688,
+ L_C_search_1 = 6872,
+ C_here = 6936,
+ C_there = 6984,
+ C_comma = 7032,
+ C_c = 7112,
+ C_allot = 7192,
+ C_vallot = 7240,
+ C_pad = 7288,
+ C_align = 7352,
+ C_unused = 7416,
+ C_fromhash = 7480,
+ C_hash = 7560,
+ L_C_hash = 7712,
+ L_C_hash_1 = 7736,
+ C_hashs = 7816,
+ L_C_hashs = 7824,
+ L_C_hashs_1 = 7872,
+ C_hashfrom = 7896,
+ C_hold = 8008,
+ C_sign = 8112,
+ L_C_sign = 8168,
+ C_paren_dot_paren = 8192,
+ C_dot = 8280,
+ C_dotr = 8336,
+ C_hex = 8496,
+ C_decimal = 8560,
+ C_digit = 8624,
+ L_C_digit = 8736,
+ L_C_digit_2 = 8840,
+ L_C_digit_4 = 8944,
+ L_C_digit_5 = 8968,
+ L_C_digit_3 = 8968,
+ L_C_digit_1 = 8968,
+ L_C_digit_6 = 9040,
+ L_C_digit_7 = 9056,
+ C_number = 9080,
+ L_C_number = 9216,
+ L_C_number_1 = 9248,
+ L_C_number_2 = 9312,
+ L_C_number_3 = 9416,
+ L_C_number_4 = 9472,
+ C_abort = 9560,
+ C_source = 9616,
+ C_bufferfd = 9672,
+ C_Wordfd = 9728,
+ C_Linefd = 9784,
+ C_Doublequotefd = 9848,
+ C_Closeparenfd = 9912,
+ C_bufferfilename_store = 9976,
+ C_toword = 10040,
+ C_wordfd_fetch = 10096,
+ C_wordfd_store = 10152,
+ C_wordfilename_fetch = 10216,
+ C_wordfilename_store = 10280,
+ C_toline = 10336,
+ C_linefd_fetch = 10392,
+ C_linefd_store = 10448,
+ C_linefilename_fetch = 10512,
+ C_linefilename_store = 10576,
+ C_todoublequote = 10640,
+ C_doublequotefd_fetch = 10704,
+ C_doublequotefd_store = 10768,
+ C_doublequotefilename_fetch = 10840,
+ C_doublequotefilename_store = 10912,
+ C_tocloseparen = 10976,
+ C_closeparenfd_fetch = 11040,
+ C_closeparenfd_store = 11104,
+ C_closeparenfilename_fetch = 11176,
+ C_closeparenfilename_store = 11248,
+ C_stdinput = 11312,
+ L_C_stdinput = 11384,
+ C_args = 11504,
+ L_C_args_read = 11576,
+ C_input_fetch = 11664,
+ L_C_input_fetch = 11712,
+ C_input_store = 11896,
+ L_C_input_store = 12024,
+ L_C_input_store_1 = 12112,
+ C_close_input = 12160,
+ L_C_close_input = 12208,
+ C_restore_input = 12440,
+ L_restore_input = 12576,
+ C_buffername = 12608,
+ C_get = 12960,
+ L_C_get_store = 13216,
+ L_C_get = 13264,
+ L_C_get_1 = 13424,
+ L_C_get_2 = 13520,
+ C_word = 13568,
+ C_line = 13616,
+ C_doublequote = 13672,
+ C_closeparen = 13728,
+ C_findname = 13784,
+ L_C_findname = 13824,
+ L_C_findname_2 = 13936,
+ L_C_findname_4 = 14064,
+ L_C_findname_3 = 14072,
+ L_C_findname_1 = 14088,
+ C_find = 14136,
+ L_C_find_1 = 14328,
+ L_C_find_2 = 14344,
+ L_C_find = 14368,
+ L_C_find_3 = 14376,
+ C_single_quote = 14400,
+ L_C_single_quote = 14528,
+ C_qstack = 14552,
+ L_C_qstack = 14656,
+ C_interpret = 14728,
+ L_C_interpret = 14736,
+ L_C_interpret_2 = 14840,
+ L_C_interpret_4 = 14952,
+ L_C_interpret_3 = 14952,
+ L_C_interpret_1 = 14968,
+ C_create = 15000,
+ C_variable = 15240,
+ C_constant = 15336,
+ C_immediate = 15464,
+ C_tocfa = 15576,
+ C_compile = 15656,
+ L_C_compile_1 = 15784,
+ L_C_compile_2 = 15800,
+ L_C_compile = 15816,
+ L_C_compile_4 = 15944,
+ L_C_compile_6 = 15976,
+ L_C_compile_3 = 15976,
+ C_close_bracket = 16000,
+ L_C_close_bracket = 16024,
+ L_C_close_bracket_1 = 16104,
+ L_C_close_bracket_2 = 16128,
+ L_C_close_bracket_3 = 16160,
+ CI_open_bracket = 16184,
+ C_smudge = 16232,
+ C_reveal = 16344,
+ C_colon = 16464,
+ CI_semicolon = 16592,
+ CI_recurse = 16672,
+ C_char = 16744,
+ C_literal = 16800,
+ C_sliteral = 16872,
+ C_string = 17032,
+ CI_char_brackets = 17144,
+ CI_quote_brackets = 17208,
+ CI_openparen = 17256,
+ CI_backslash = 17304,
+ C_qabort_parens = 17352,
+ L_C_qabort_parens = 17432,
+ L_C_qabort_parens_1 = 17440,
+ CI_abort_double_quote = 17464,
+ C_double_quote = 17528,
+ C_cdouble_quote = 17640,
+ CI_sdouble_quote = 17760,
+ CI_dotstr = 17800,
+ CI_if = 17864,
+ CI_else = 17952,
+ CI_then = 18080,
+ CI_begin = 18136,
+ CI_again = 18176,
+ CI_until = 18240,
+ CI_while = 18304,
+ CI_repeat = 18392,
+ CI_do = 18488,
+ CI_loop = 18568,
+ L234 = 18656,
+ CI_ploop = 18680,
+ L236 = 18768,
+ C_wo = 18792,
+ C_ro = 18888,
+ C_rw = 18936,
+ C_cstring = 18984,
+ C_cstring0 = 19168,
+ C_cstring1 = 19232,
+ C_open_file = 19296,
+ C_close_file = 19400,
+ C_read_file = 19456,
+ C_write_file = 19552,
+ C_reposition_file = 19640,
+ C_qfcheck = 19720,
+ L246 = 19816,
+ C_create_file = 19848,
+ C_bye = 20120,
+ C_include = 20176,
+ C_crash = 20288,
+ C_quit = 20376,
+ L_C_quit = 20400,
+ C_parenabort = 20456,
+ C_initialize = 20728,
+ L150 = 20776,
+ C_boot = 20992,
+ L_pid_filename = 21240,
+ L_args_prefix = 21247,
+ L_args_suffix = 21251,
+ L120 = 21257,
+ L121 = 21261,
+ L122 = 21267,
+ L123 = 21273,
+ L124 = 21287,
+ L137 = 21300,
+ L140 = 21324,
+ L141 = 21342,
+ L170 = 21360,
+ L173 = 21364,
+ L180 = 21381,
+ L_C_compile_5 = 21385,
+ L247 = 21389,
+ L251 = 21399,
+ L255 = 21430,
+ L304 = 21434,
+ L305 = 21471,
};
extern void *sliteral(void);
extern void *syscreate(void);
@@ -388,15 +422,11 @@
extern void *greater(void);
extern void *slashmod(void);
extern void *cmoveb(void);
-extern void *Dtop(void);
extern void *doinit(void);
extern void *multiply(void);
-extern void *Fthargs(void);
extern void *colon(void);
extern void *less(void);
-extern void *Dp(void);
extern void *lshift(void);
-extern void *S0(void);
extern void *sysopen(void);
extern void *plus(void);
extern void *sysclose(void);
@@ -404,13 +434,10 @@
extern void *fthdump(void);
extern void *rshift(void);
extern void *cstore(void);
-extern void *Tib(void);
extern void *store(void);
-extern void *Vp(void);
extern void *cmove(void);
extern void *binor(void);
extern void *unloop(void);
-extern void *Wordb(void);
extern void *sysbind(void);
extern void *cfetch(void);
extern void *sysmount(void);
@@ -487,1933 +514,2034 @@
{.type Header, {.hdr { 6, "(does)", /* M_dodoes = 1176 */ dodoes }}}, /* MENTRY "(does)" dodoes 6 h 1184 */
{.type Header, {.hdr { 3, "cas", /* M_cas = 1200 */ cas }}}, /* MENTRY "cas" cas 3 h 1208 */
{.type Header, {.hdr { 10, "(deferred)", /* M_deferred = 1232 */ deferred }}}, /* MENTRY "(deferred)" deferred 10 h 1240 */
- {.type Header, {.hdr { 7, "sysbind", /* M_sysbind = 1256 */ sysbind }}}, /* MENTRY "sysbind" sysbind 7 h 1264 */
- {.type Header, {.hdr { 8, "sysclose", /* M_sysclose = 1288 */ sysclose }}}, /* MENTRY "sysclose" sysclose 8 h 1296 */
- {.type Header, {.hdr { 9, "syscreate", /* M_syscreate = 1320 */ syscreate }}}, /* MENTRY "syscreate" syscreate 9 h 1328 */
- {.type Header, {.hdr { 8, "sysmount", /* M_sysmount = 1352 */ sysmount }}}, /* MENTRY "sysmount" sysmount 8 h 1360 */
- {.type Header, {.hdr { 7, "sysopen", /* M_sysopen = 1376 */ sysopen }}}, /* MENTRY "sysopen" sysopen 7 h 1384 */
- {.type Header, {.hdr { 7, "sysread", /* M_sysread = 1400 */ sysread }}}, /* MENTRY "sysread" sysread 7 h 1408 */
- {.type Header, {.hdr { 7, "sysseek", /* M_sysseek = 1424 */ sysseek }}}, /* MENTRY "sysseek" sysseek 7 h 1432 */
- {.type Header, {.hdr { 8, "syswrite", /* M_syswrite = 1456 */ syswrite }}}, /* MENTRY "syswrite" syswrite 8 h 1464 */
- {.type Header, {.hdr { 5, "STDIN", /* MC_STDIN = 1480 */ constant }}}, /* MCENTRY "STDIN" STDIN 0 5 ; 3 constants from here CAPITALS h 1488 */
- {.type Absolute, {.p 0}}, /* 1496 */
- {.type Header, {.hdr { 6, "STDOUT", /* MC_STDOUT = 1512 */ constant }}}, /* MCENTRY "STDOUT" STDOUT 1 6 h 1520 */
- {.type Absolute, {.p 1}}, /* 1528 */
- {.type Header, {.hdr { 6, "STDERR", /* MC_STDERR = 1544 */ constant }}}, /* MCENTRY "STDERR" STDERR 2 6 h 1552 */
- {.type Absolute, {.p 2}}, /* 1560 */
- {.type Header, {.hdr { 5, "Iobuf", /* MV_Iobuf = 1576 */ variable }}}, /* MVENTRY "Iobuf" Iobuf 0 5 ; the values are not being used from the definition. All are initialized to 0. h 1584 */
- {.type FromV0, {.p 0 }}, /* 1592 0 */
- {.type Header, {.hdr { 9, "Sourcebuf", /* MV_Sourcebuf = 1616 */ variable }}}, /* MVENTRY "Sourcebuf" Sourcebuf 0 9 ; is there a need for this? h 1624 */
- {.type FromV0, {.p 8 }}, /* 1632 8 */
- {.type Header, {.hdr { 7, "Wordbuf", /* MV_Wordbuf = 1648 */ variable }}}, /* MVENTRY "Wordbuf" Wordbuf 0 7 ; is there a need for this? h 1656 */
- {.type FromV0, {.p 16 }}, /* 1664 16 */
- {.type Header, {.hdr { 3, ">In", /* MV_toIn = 1680 */ variable }}}, /* MVENTRY ">In" toIn 0 3 h 1688 */
- {.type FromV0, {.p 24 }}, /* 1696 24 */
- {.type Header, {.hdr { 6, ">Limit", /* MV_toLimit = 1712 */ variable }}}, /* MVENTRY ">Limit" toLimit 0 6 h 1720 */
- {.type FromV0, {.p 32 }}, /* 1728 32 */
- {.type Header, {.hdr { 7, "Findadr", /* MV_Findadr = 1744 */ variable }}}, /* MVENTRY "Findadr" Findadr 0 7 h 1752 */
- {.type FromV0, {.p 40 }}, /* 1760 40 */
- {.type Header, {.hdr { 9, "Acceptvec", /* MV_Acceptvec = 1784 */ variable }}}, /* MVENTRY "Acceptvec" Acceptvec 0 9 h 1792 */
- {.type FromV0, {.p 48 }}, /* 1800 48 */
- {.type Header, {.hdr { 9, "Searchlen", /* MV_Searchlen = 1824 */ variable }}}, /* MVENTRY "Searchlen" Searchlen 0 9 h 1832 */
- {.type FromV0, {.p 56 }}, /* 1840 56 */
- {.type Header, {.hdr { 4, "Base", /* MV_Base = 1856 */ variable }}}, /* MVENTRY "Base" Base 0 4 h 1864 */
- {.type FromV0, {.p 64 }}, /* 1872 64 */
- {.type Header, {.hdr { 4, ">Num", /* MV_toNum = 1888 */ variable }}}, /* MVENTRY ">Num" toNum 0 4 h 1896 */
- {.type FromV0, {.p 72 }}, /* 1904 72 */
- {.type Header, {.hdr { 5, "State", /* MV_State = 1920 */ variable }}}, /* MVENTRY "State" State 0 5 h 1928 */
- {.type FromV0, {.p 80 }}, /* 1936 80 */
- {.type Header, {.hdr { 8, "Abortvec", /* MV_Abortvec = 1960 */ variable }}}, /* MVENTRY "Abortvec" Abortvec 0 8 ; not sure if these 3 can be constants instead? h 1968 */
- {.type FromV0, {.p 88 }}, /* 1976 88 */
- {.type Header, {.hdr { 4, "Infd", /* MV_Infd = 1992 */ variable }}}, /* MVENTRY "Infd" Infd 0 4 h 2000 */
- {.type FromV0, {.p 96 }}, /* 2008 96 */
- {.type Header, {.hdr { 5, "Outfd", /* MV_Outfd = 2024 */ variable }}}, /* MVENTRY "Outfd" Outfd 0 5 h 2032 */
- {.type FromV0, {.p 104 }}, /* 2040 104 */
- {.type Header, {.hdr { 5, "Errfd", /* MV_Errfd = 2056 */ variable }}}, /* MVENTRY "Errfd" Errfd 0 5 h 2064 */
- {.type FromV0, {.p 112 }}, /* 2072 112 */
- {.type Header, {.hdr { 3, "Eof", /* MV_Eof = 2088 */ variable }}}, /* MVENTRY "Eof" Eof 0 3 h 2096 */
- {.type FromV0, {.p 120 }}, /* 2104 120 */
- {.type Header, {.hdr { 7, "Ninputs", /* MV_Ninputs = 2120 */ variable }}}, /* MVENTRY "Ninputs" Ninputs 0 7 h 2128 */
- {.type FromV0, {.p 128 }}, /* 2136 128 */
- {.type Header, {.hdr { 2, "H0", /* MV_H0 = 2152 */ variable }}}, /* MVENTRY "H0" H0 0 2 ; here at startup h 2160 */
- {.type FromV0, {.p 136 }}, /* 2168 136 */
-/* ; cannot use H as it is nil in inferno, address where here (next available dictionary cell location) is stored *//* ; here = Dp @ */ {.type Header, {.hdr { 2, "Dp", /* M_Dp = 2184 */ Dp }}}, /* MENTRY "Dp" Dp 2 ; here h 2192 */
- {.type Header, {.hdr { 4, "Dtop", /* M_Dtop = 2208 */ Dtop }}}, /* MENTRY "Dtop" Dtop 4 ; last defined header h 2216 */
- {.type Header, {.hdr { 2, "Vp", /* M_Vp = 2232 */ Vp }}}, /* MENTRY "Vp" Vp 2 ; here of the variables space h 2240 */
- {.type Header, {.hdr { 2, "S0", /* M_S0 = 2256 */ S0 }}}, /* MENTRY "S0" S0 2 h 2264 */
- {.type Header, {.hdr { 2, "s@", /* M_stackptr = 2280 */ stackptr }}}, /* MENTRY "s@" stackptr 2 ; puts PSP on stack. Not a variable hence lower case. h 2288 */
- {.type Header, {.hdr { 5, "Wordb", /* M_Wordb = 2304 */ Wordb }}}, /* MENTRY "Wordb" Wordb 5 h 2312 */
- {.type Header, {.hdr { 3, "Tib", /* M_Tib = 2328 */ Tib }}}, /* MENTRY "Tib" Tib 3 h 2336 */
- {.type Header, {.hdr { 7, "Fthargs", /* M_Fthargs = 2352 */ Fthargs }}}, /* MENTRY "Fthargs" Fthargs 7 h 2360 */
- {.type Header, {.hdr { 5, "false", /* C_false = 2376 */ colon }}}, /* CENTRY "false" false 5 h 2384 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2392 */
- {.type Absolute, {.p 0}}, /* dd 0 2400 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 2408 */
- {.type Header, {.hdr { 4, "true", /* C_true = 2424 */ colon }}}, /* CENTRY "true" true 4 h 2432 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2440 */
- {.type Absolute, {.p -1}}, /* dd -1 2448 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 2456 */
- {.type Header, {.hdr { 2, "bl", /* C_bl = 2472 */ colon }}}, /* CENTRY "bl" bl 2 h 2480 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2488 */
- {.type Absolute, {.p 32}}, /* dd 32 2496 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 2504 */
- {.type Header, {.hdr { 2, "on", /* C_on = 2520 */ colon }}}, /* CENTRY "on" on 2 ; ( a -- ) (G stores -1 at a ) h 2528 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2536 */
- {.type Absolute, {.p -1}}, /* dd -1 2544 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 2552 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 2560 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 2568 */
- {.type Header, {.hdr { 3, "off", /* C_off = 2584 */ colon }}}, /* CENTRY "off" off 3 ; ( a -- ) (G stores 0 at a ) h 2592 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2600 */
- {.type Absolute, {.p 0}}, /* dd 0 2608 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 2616 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 2624 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 2632 */
- {.type Header, {.hdr { 5, ">body", /* C_tobody = 2648 */ colon }}}, /* CENTRY ">body" tobody 5 h 2656 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2664 */
- {.type Absolute, {.p 8}}, /* dd 8 2672 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 2680 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 2688 */
- {.type Header, {.hdr { 7, "aligned", /* C_aligned = 2704 */ colon }}}, /* CENTRY "aligned" aligned 7 ; align a number to a multiple of 8 h 2712 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2720 */
- {.type Absolute, {.p 7}}, /* dd 7 2728 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 2736 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2744 */
- {.type Absolute, {.p -8}}, /* dd -8 2752 */
- {.type FromH0, {.p M_binand}, .src = "dd M_binand"}, /* dd M_binand 2760 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 2768 */
- {.type Header, {.hdr { 5, "cells", /* C_cells = 2784 */ colon }}}, /* CENTRY "cells" cells 5 h 2792 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2800 */
- {.type Absolute, {.p 3}}, /* dd 3 ; (index << 2) -> (index << 3) for amd64 2808 */
- {.type FromH0, {.p M_lshift}, .src = "dd M_lshift"}, /* dd M_lshift 2816 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 2824 */
- {.type Header, {.hdr { 5, "cell+", /* C_cellplus = 2840 */ colon }}}, /* CENTRY "cell+" cellplus 5 h 2848 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2856 */
- {.type Absolute, {.p 1}}, /* dd 1 2864 */
- {.type FromH0, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 2872 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 2880 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 2888 */
- {.type Header, {.hdr { 5, "depth", /* C_depth = 2904 */ colon }}}, /* CENTRY "depth" depth 5 h 2912 */
- {.type FromH0, {.p M_S0}, .src = "dd M_S0"}, /* dd M_S0 2920 */
- {.type FromH0, {.p M_stackptr}, .src = "dd M_stackptr"}, /* dd M_stackptr 2928 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 2936 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2944 */
- {.type Absolute, {.p 3}}, /* dd 3 2952 */
- {.type FromH0, {.p M_rshift}, .src = "dd M_rshift"}, /* dd M_rshift 2960 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2968 */
- {.type Absolute, {.p 1}}, /* dd 1 2976 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 2984 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 2992 */
- {.type Header, {.hdr { 3, "nip", /* C_nip = 3008 */ colon }}}, /* CENTRY "nip" nip 3 h 3016 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 3024 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 3032 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3040 */
- {.type Header, {.hdr { 3, "rot", /* C_rot = 3056 */ colon }}}, /* CENTRY "rot" rot 3 h 3064 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 3072 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 3080 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 3088 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 3096 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3104 */
- {.type Header, {.hdr { 5, "2drop", /* C_2drop = 3120 */ colon }}}, /* CENTRY "2drop" 2drop 5 h 3128 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 3136 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 3144 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3152 */
- {.type Header, {.hdr { 4, "2dup", /* C_2dup = 3168 */ colon }}}, /* CENTRY "2dup" 2dup 4 h 3176 */
- {.type FromH0, {.p M_over}, .src = "dd M_over"}, /* dd M_over 3184 */
- {.type FromH0, {.p M_over}, .src = "dd M_over"}, /* dd M_over 3192 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3200 */
- {.type Header, {.hdr { 4, "2nip", /* C_2nip = 3216 */ colon }}}, /* CENTRY "2nip" 2nip 4 h 3224 */
- {.type FromH0, {.p C_nip}, .src = "dd C_nip"}, /* dd C_nip 3232 */
- {.type FromH0, {.p C_nip}, .src = "dd C_nip"}, /* dd C_nip 3240 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3248 */
- {.type Header, {.hdr { 5, "2swap", /* C_2swap = 3264 */ colon }}}, /* CENTRY "2swap" 2swap 5 h 3272 */
- {.type FromH0, {.p C_rot}, .src = "dd C_rot"}, /* dd C_rot 3280 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 3288 */
- {.type FromH0, {.p C_rot}, .src = "dd C_rot"}, /* dd C_rot 3296 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 3304 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3312 */
- {.type Header, {.hdr { 4, "?dup", /* C_qdup = 3328 */ colon }}}, /* CENTRY "?dup" qdup 4 ; if (n != 0) ( n -- n n) else ( n -- n ) h 3336 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( n -- n n )"}, /* dd M_dup ; ( n -- n n ) 3344 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( n n -- n n n )"}, /* dd M_dup ; ( n n -- n n n ) 3352 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 3360 */
- {.type Absolute, {.p 0}}, /* dd 0 ; ( n n n -- n n n 0 ) 3368 */
- {.type FromH0, {.p M_equal}, .src = "dd M_equal ; ( n n n 0 -- n n f )"}, /* dd M_equal ; ( n n n 0 -- n n f ) 3376 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump ; ( n n f -- n n )"}, /* dd M_cjump ; ( n n f -- n n ) 3384 */
- {.type FromH0, {.p L20}, .src = "dd L20 ; when n != 0, go to L20"}, /* dd L20 ; when n != 0, go to L20 3392 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop ; when n == 0 ( n n -- n)"}, /* dd M_drop ; when n == 0 ( n n -- n) 3400 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3408 */
- {.type Header, {.hdr { 4, "pick", /* C_pick = 3424 */ colon }}}, /* CENTRY "pick" pick 4 h 3432 */
- {.type FromH0, {.p C_qdup}, .src = "dd C_qdup"}, /* dd C_qdup 3440 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 3448 */
- {.type FromH0, {.p L22}, .src = "dd L22"}, /* dd L22 3456 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 3464 */
- {.type Absolute, {.p 1}}, /* dd 1 3472 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 3480 */
- {.type FromH0, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 3488 */
- {.type FromH0, {.p M_stackptr}, .src = "dd M_stackptr"}, /* dd M_stackptr 3496 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 3504 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 3512 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 3520 */
- {.type FromH0, {.p L23}, .src = "dd L23"}, /* dd L23 3528 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 3536 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3544 */
- {.type Header, {.hdr { 4, "tuck", /* C_tuck = 3560 */ colon }}}, /* CENTRY "tuck" tuck 4 h 3568 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 3576 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 3584 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 3592 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 3600 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3608 */
- {.type Header, {.hdr { 1, "/", /* C_divides = 3624 */ colon }}}, /* CENTRY "/" divides 1 h 3632 */
- {.type FromH0, {.p M_slashmod}, .src = "dd M_slashmod"}, /* dd M_slashmod 3640 */
- {.type FromH0, {.p C_nip}, .src = "dd C_nip"}, /* dd C_nip 3648 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3656 */
- {.type Header, {.hdr { 2, "+!", /* C_plusstore = 3672 */ colon }}}, /* CENTRY "+!" plusstore 2 h 3680 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 3688 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 3696 */
- {.type FromH0, {.p C_rot}, .src = "dd C_rot"}, /* dd C_rot 3704 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 3712 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 3720 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 3728 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3736 */
- {.type Header, {.hdr { 6, "invert", /* C_invert = 3752 */ colon }}}, /* CENTRY "invert" invert 6 h 3760 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 3768 */
- {.type Absolute, {.p -1}}, /* dd -1 3776 */
- {.type FromH0, {.p M_binxor}, .src = "dd M_binxor"}, /* dd M_binxor 3784 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3792 */
- {.type Header, {.hdr { 3, "mod", /* C_mod = 3808 */ colon }}}, /* CENTRY "mod" mod 3 h 3816 */
- {.type FromH0, {.p M_slashmod}, .src = "dd M_slashmod"}, /* dd M_slashmod 3824 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 3832 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3840 */
- {.type Header, {.hdr { 2, "1+", /* C_1plus = 3856 */ colon }}}, /* CENTRY "1+" 1plus 2 h 3864 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 3872 */
- {.type Absolute, {.p 1}}, /* dd 1 3880 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 3888 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3896 */
- {.type Header, {.hdr { 2, "1-", /* C_1minus = 3912 */ colon }}}, /* CENTRY "1-" 1minus 2 h 3920 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 3928 */
- {.type Absolute, {.p 1}}, /* dd 1 3936 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 3944 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3952 */
- {.type Header, {.hdr { 6, "negate", /* C_negate = 3968 */ colon }}}, /* CENTRY "negate" negate 6 h 3976 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 3984 */
- {.type Absolute, {.p 0}}, /* dd 0 3992 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 4000 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 4008 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4016 */
- {.type Header, {.hdr { 2, "2*", /* C_2multiplies = 4032 */ colon }}}, /* CENTRY "2*" 2multiplies 2 h 4040 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4048 */
- {.type Absolute, {.p 1}}, /* dd 1 4056 */
- {.type FromH0, {.p M_lshift}, .src = "dd M_lshift"}, /* dd M_lshift 4064 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4072 */
- {.type Header, {.hdr { 2, "2/", /* C_2divides = 4088 */ colon }}}, /* CENTRY "2/" 2divides 2 h 4096 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4104 */
- {.type Absolute, {.p 1}}, /* dd 1 4112 */
- {.type FromH0, {.p M_rshifta}, .src = "dd M_rshifta"}, /* dd M_rshifta 4120 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4128 */
- {.type Header, {.hdr { 2, "0=", /* C_0eq = 4144 */ colon }}}, /* CENTRY "0=" 0eq 2 h 4152 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4160 */
- {.type Absolute, {.p 0}}, /* dd 0 4168 */
- {.type FromH0, {.p M_equal}, .src = "dd M_equal"}, /* dd M_equal 4176 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4184 */
- {.type Header, {.hdr { 2, "0<", /* C_0lt = 4200 */ colon }}}, /* CENTRY "0<" 0lt 2 h 4208 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4216 */
- {.type Absolute, {.p 0}}, /* dd 0 4224 */
- {.type FromH0, {.p M_less}, .src = "dd M_less"}, /* dd M_less 4232 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4240 */
- {.type Header, {.hdr { 2, "0>", /* C_0gt = 4256 */ colon }}}, /* CENTRY "0>" 0gt 2 h 4264 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4272 */
- {.type Absolute, {.p 0}}, /* dd 0 4280 */
- {.type FromH0, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 4288 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4296 */
- {.type Header, {.hdr { 2, "<>", /* C_neq = 4312 */ colon }}}, /* CENTRY "<>" neq 2 h 4320 */
- {.type FromH0, {.p M_equal}, .src = "dd M_equal"}, /* dd M_equal 4328 */
- {.type FromH0, {.p C_invert}, .src = "dd C_invert"}, /* dd C_invert 4336 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4344 */
- {.type Header, {.hdr { 3, "0<>", /* C_0neq = 4360 */ colon }}}, /* CENTRY "0<>" 0neq 3 h 4368 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4376 */
- {.type Absolute, {.p 0}}, /* dd 0 4384 */
- {.type FromH0, {.p C_neq}, .src = "dd C_neq"}, /* dd C_neq 4392 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4400 */
- {.type Header, {.hdr { 3, "max", /* C_max = 4416 */ colon }}}, /* CENTRY "max" max 3 h 4424 */
- {.type FromH0, {.p C_2dup}, .src = "dd C_2dup"}, /* dd C_2dup 4432 */
- {.type FromH0, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 4440 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 4448 */
- {.type FromH0, {.p L40}, .src = "dd L40"}, /* dd L40 4456 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 4464 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 4472 */
- {.type FromH0, {.p L41}, .src = "dd L41"}, /* dd L41 4480 */
- {.type FromH0, {.p C_nip}, .src = "dd C_nip"}, /* dd C_nip 4488 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4496 */
- {.type Header, {.hdr { 3, "min", /* C_min = 4512 */ colon }}}, /* CENTRY "min" min 3 h 4520 */
- {.type FromH0, {.p C_2dup}, .src = "dd C_2dup"}, /* dd C_2dup 4528 */
- {.type FromH0, {.p M_less}, .src = "dd M_less"}, /* dd M_less 4536 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 4544 */
- {.type FromH0, {.p L43}, .src = "dd L43"}, /* dd L43 4552 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 4560 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 4568 */
- {.type FromH0, {.p L44}, .src = "dd L44"}, /* dd L44 4576 */
- {.type FromH0, {.p C_nip}, .src = "dd C_nip"}, /* dd C_nip 4584 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4592 */
- {.type Header, {.hdr { 6, "signum", /* C_signum = 4608 */ colon }}}, /* CENTRY "signum" signum 6 h 4616 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 4624 */
- {.type FromH0, {.p C_0gt}, .src = "dd C_0gt"}, /* dd C_0gt 4632 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 4640 */
- {.type FromH0, {.p L46}, .src = "dd L46"}, /* dd L46 4648 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 4656 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4664 */
- {.type Absolute, {.p 1}}, /* dd 1 4672 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 4680 */
- {.type FromH0, {.p L47}, .src = "dd L47"}, /* dd L47 4688 */
- {.type FromH0, {.p C_0lt}, .src = "dd C_0lt"}, /* dd C_0lt 4696 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 4704 */
- {.type FromH0, {.p L48}, .src = "dd L48"}, /* dd L48 4712 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4720 */
- {.type Absolute, {.p -1}}, /* dd -1 4728 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 4736 */
- {.type FromH0, {.p L49}, .src = "dd L49"}, /* dd L49 4744 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4752 */
- {.type Absolute, {.p 0}}, /* dd 0 4760 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4768 */
- {.type Header, {.hdr { 6, "within", /* C_within = 4784 */ colon }}}, /* CENTRY "within" within 6 h 4792 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 4800 */
- {.type FromH0, {.p M_over}, .src = "dd M_over"}, /* dd M_over 4808 */
- {.type FromH0, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 4816 */
- {.type FromH0, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 4824 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 4832 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 4840 */
- {.type FromH0, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 4848 */
- {.type FromH0, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 4856 */
- {.type FromH0, {.p M_binand}, .src = "dd M_binand"}, /* dd M_binand 4864 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4872 */
- {.type Header, {.hdr { 3, "abs", /* C_abs = 4888 */ colon }}}, /* CENTRY "abs" abs 3 h 4896 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 4904 */
- {.type FromH0, {.p C_0lt}, .src = "dd C_0lt"}, /* dd C_0lt 4912 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 4920 */
- {.type FromH0, {.p L52}, .src = "dd L52"}, /* dd L52 4928 */
- {.type FromH0, {.p C_negate}, .src = "dd C_negate"}, /* dd C_negate 4936 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4944 */
- {.type Header, {.hdr { 3, "key", /* C_key = 4960 */ colon }}}, /* CENTRY "key" key 3 ; ( -- c ) (G read a single character from the input onto the stack ) h 4968 */
- {.type FromH0, {.p MV_Infd}, .src = "dd MV_Infd"}, /* dd MV_Infd 4976 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; ( infd )"}, /* dd M_fetch ; ( infd ) 4984 */
- {.type FromH0, {.p MV_Iobuf}, .src = "dd MV_Iobuf ; variable iobuf to store the character read"}, /* dd MV_Iobuf ; variable iobuf to store the character read 4992 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 5000 */
- {.type Absolute, {.p 1}}, /* dd 1 ; ( infd Iobuf 1 ) 5008 */
- {.type FromH0, {.p M_sysread}, .src = "dd M_sysread ; ( infd Iobuf 1 -- n )"}, /* dd M_sysread ; ( infd Iobuf 1 -- n ) 5016 */
- {.type FromH0, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 5024 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump ; if 0 characters read"}, /* dd M_cjump ; if 0 characters read 5032 */
- {.type FromH0, {.p L78}, .src = "dd L78 ; if qread n != 0 jump to L78. If n == 0 jump over"}, /* dd L78 ; if qread n != 0 jump to L78. If n == 0 jump over 5040 */
- {.type FromH0, {.p MV_Eof}, .src = "dd MV_Eof"}, /* dd MV_Eof 5048 */
- {.type FromH0, {.p C_on}, .src = "dd C_on ; EOF"}, /* dd C_on ; EOF 5056 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 5064 */
- {.type Absolute, {.p -1}}, /* dd -1 ; return -1 when EOF 5072 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 5080 */
- {.type FromH0, {.p L79}, .src = "dd L79"}, /* dd L79 5088 */
- {.type FromH0, {.p MV_Iobuf}, .src = "dd MV_Iobuf ; get the character from Iobuf to stack"}, /* dd MV_Iobuf ; get the character from Iobuf to stack 5096 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch ; ( -- c ) return the character read if not EOF"}, /* dd M_cfetch ; ( -- c ) return the character read if not EOF 5104 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5112 */
- {.type Header, {.hdr { 4, "emit", /* C_emit = 5128 */ colon }}}, /* CENTRY "emit" emit 4 ; ( character -- ) h 5136 */
- {.type FromH0, {.p MV_Iobuf}, .src = "dd MV_Iobuf ; variable iobuf address"}, /* dd MV_Iobuf ; variable iobuf address 5144 */
- {.type FromH0, {.p M_cstore}, .src = "dd M_cstore ; variable iobuf has character"}, /* dd M_cstore ; variable iobuf has character 5152 */
- {.type FromH0, {.p MV_Outfd}, .src = "dd MV_Outfd"}, /* dd MV_Outfd 5160 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; outfd"}, /* dd M_fetch ; outfd 5168 */
- {.type FromH0, {.p MV_Iobuf}, .src = "dd MV_Iobuf ; variable iobuf address"}, /* dd MV_Iobuf ; variable iobuf address 5176 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 5184 */
- {.type Absolute, {.p 1}}, /* dd 1 ; ( outfd iobuf 1 ) 5192 */
- {.type FromH0, {.p M_syswrite}, .src = "dd M_syswrite ; ( 1 iobuf outfd -- )"}, /* dd M_syswrite ; ( 1 iobuf outfd -- ) 5200 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop ; drop the return value of write"}, /* dd M_drop ; drop the return value of write 5208 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5216 */
- {.type Header, {.hdr { 4, "type", /* C_type = 5232 */ colon }}}, /* CENTRY "type" type 4 ; ( addr n -- ) h 5240 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( addr ) (R n )"}, /* dd M_rpush ; ( addr ) (R n ) 5248 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( ) (R n addr )"}, /* dd M_rpush ; ( ) (R n addr ) 5256 */
- {.type FromH0, {.p MV_Outfd}, .src = "dd MV_Outfd"}, /* dd MV_Outfd 5264 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; ( outfd )"}, /* dd M_fetch ; ( outfd ) 5272 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( outfd addr ) (R n )"}, /* dd M_rpop ; ( outfd addr ) (R n ) 5280 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( outfd addr n ) (R )"}, /* dd M_rpop ; ( outfd addr n ) (R ) 5288 */
- {.type FromH0, {.p M_syswrite}, .src = "dd M_syswrite ; ( 1 addr n -- )"}, /* dd M_syswrite ; ( 1 addr n -- ) 5296 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop ; drop the return value of write"}, /* dd M_drop ; drop the return value of write 5304 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5312 */
- {.type Header, {.hdr { 2, "cr", /* C_cr = 5328 */ colon }}}, /* CENTRY "cr" cr 2 h 5336 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 5344 */
- {.type Absolute, {.p 10}}, /* dd 10 ; ascii value of carriage return 5352 */
- {.type FromH0, {.p C_emit}, .src = "dd C_emit ; emit"}, /* dd C_emit ; emit 5360 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5368 */
- {.type Header, {.hdr { 5, "space", /* C_space = 5384 */ colon }}}, /* CENTRY "space" space 5 h 5392 */
- {.type FromH0, {.p C_bl}, .src = "dd C_bl"}, /* dd C_bl 5400 */
- {.type FromH0, {.p C_emit}, .src = "dd C_emit"}, /* dd C_emit 5408 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5416 */
- {.type Header, {.hdr { 5, "emits", /* C_emits = 5432 */ colon }}}, /* CENTRY "emits" emits 5 h 5440 */
- {.type FromH0, {.p C_qdup}, .src = "dd C_qdup"}, /* dd C_qdup 5448 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 5456 */
- {.type FromH0, {.p L86}, .src = "dd L86"}, /* dd L86 5464 */
- {.type FromH0, {.p M_over}, .src = "dd M_over"}, /* dd M_over 5472 */
- {.type FromH0, {.p C_emit}, .src = "dd C_emit"}, /* dd C_emit 5480 */
- {.type FromH0, {.p C_1minus}, .src = "dd C_1minus"}, /* dd C_1minus 5488 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 5496 */
- {.type FromH0, {.p L85}, .src = "dd L85"}, /* dd L85 5504 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 5512 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5520 */
- {.type Header, {.hdr { 6, "spaces", /* C_spaces = 5536 */ colon }}}, /* CENTRY "spaces" spaces 6 h 5544 */
- {.type FromH0, {.p C_bl}, .src = "dd C_bl"}, /* dd C_bl 5552 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 5560 */
- {.type FromH0, {.p C_emits}, .src = "dd C_emits"}, /* dd C_emits 5568 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5576 */
- {.type Header, {.hdr { 5, "count", /* C_count = 5592 */ colon }}}, /* CENTRY "count" count 5 ; ( 'counted-string -- 'text count ) a = address of counted string ( a - a+1 a[0]) h 5600 */
- {.type FromH0, {.p C_1plus}, .src = "dd C_1plus"}, /* dd C_1plus 5608 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 5616 */
- {.type FromH0, {.p C_1minus}, .src = "dd C_1minus"}, /* dd C_1minus 5624 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 5632 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5640 */
- {.type FromH0, {.p C_2dup}, .src = "dd C_2dup ; debug show the word name to search"}, /* dd C_2dup ; debug show the word name to search 5648 */
- {.type FromH0, {.p C_type}, .src = "dd C_type"}, /* dd C_type 5656 */
- {.type FromH0, {.p C_space}, .src = "dd C_space"}, /* dd C_space 5664 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; debug show the dictionary entry"}, /* dd M_rpush ; debug show the dictionary entry 5672 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 5680 */
- {.type FromH0, {.p C_2dup}, .src = "dd C_2dup"}, /* dd C_2dup 5688 */
- {.type FromH0, {.p C_type}, .src = "dd C_type"}, /* dd C_type 5696 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 5704 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 5712 */
- {.type FromH0, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 5720 */
- {.type Header, {.hdr { 7, "compare", /* C_compare = 5736 */ colon }}}, /* CENTRY "compare" compare 7 ; ( a1 n1 a2 n2 -- f ) a1 = dictionary entry a2 = word name to search h 5744 */
- {.type FromH0, {.p C_rot}, .src = "dd C_rot ; ( a1 n1 a2 n2 -- a1 a2 n2 n1 )"}, /* dd C_rot ; ( a1 n1 a2 n2 -- a1 a2 n2 n1 ) 5752 */
- {.type FromH0, {.p C_2dup}, .src = "dd C_2dup ; ( -- a1 a2 n2 n1 n2 n1 )"}, /* dd C_2dup ; ( -- a1 a2 n2 n1 n2 n1 ) 5760 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( -- a1 a2 n2 n1 n2 ) (R n1 -- )"}, /* dd M_rpush ; ( -- a1 a2 n2 n1 n2 ) (R n1 -- ) 5768 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( -- a1 a2 n2 n1 ) (R n1 n2 -- )"}, /* dd M_rpush ; ( -- a1 a2 n2 n1 ) (R n1 n2 -- ) 5776 */
- {.type FromH0, {.p C_min}, .src = "dd C_min ; ( -- a1 a2 nmin ) (R n1 n2 -- )"}, /* dd C_min ; ( -- a1 a2 nmin ) (R n1 n2 -- ) 5784 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 5792 */
- {.type Absolute, {.p 0}}, /* dd 0 ; ( -- a1 a2 nmin 0 ) (R n1 n2 -- ) 5800 */
- {.type FromH0, {.p M_doinit}, .src = "dd M_doinit ; ( -- a1 a2 ) (R n1 n2 0 nmin -- )"}, /* dd M_doinit ; ( -- a1 a2 ) (R n1 n2 0 nmin -- ) 5808 */
- {.type FromH0, {.p M_over}, .src = "dd M_over"}, /* dd M_over 5816 */
- {.type FromH0, {.p M_i}, .src = "dd M_i"}, /* dd M_i 5824 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 5832 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 5840 */
- {.type FromH0, {.p M_over}, .src = "dd M_over"}, /* dd M_over 5848 */
- {.type FromH0, {.p M_i}, .src = "dd M_i"}, /* dd M_i 5856 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 5864 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 5872 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 5880 */
- {.type FromH0, {.p C_signum}, .src = "dd C_signum"}, /* dd C_signum 5888 */
- {.type FromH0, {.p C_qdup}, .src = "dd C_qdup"}, /* dd C_qdup 5896 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 5904 */
- {.type FromH0, {.p L56}, .src = "dd L56 ; matches"}, /* dd L56 ; matches 5912 */
- {.type FromH0, {.p C_2nip}, .src = "dd C_2nip ; does not match ( a1 a2 f -- f ) (R n1 n2 0 nmin -- )"}, /* dd C_2nip ; does not match ( a1 a2 f -- f ) (R n1 n2 0 nmin -- ) 5920 */
- {.type FromH0, {.p M_unloop}, .src = "dd M_unloop ; ( f -- f ) (R n1 n2 0 nmin -- n1 n2)"}, /* dd M_unloop ; ( f -- f ) (R n1 n2 0 nmin -- n1 n2) 5928 */
- {.type FromH0, {.p M_unloop}, .src = "dd M_unloop ; ( f -- f ) (R n1 n2 -- )"}, /* dd M_unloop ; ( f -- f ) (R n1 n2 -- ) 5936 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5944 */
- {.type FromH0, {.p M_doloop}, .src = "dd M_doloop"}, /* dd M_doloop 5952 */
- {.type FromH0, {.p L55}, .src = "dd L55"}, /* dd L55 5960 */
- {.type FromH0, {.p C_2drop}, .src = "dd C_2drop ; ( a1 a2 -- ) (R n1 n2 -- )"}, /* dd C_2drop ; ( a1 a2 -- ) (R n1 n2 -- ) 5968 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 5976 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( n2 n1 -- ) (R -- )"}, /* dd M_rpop ; ( n2 n1 -- ) (R -- ) 5984 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus ; ( -- n1-n2 )"}, /* dd M_minus ; ( -- n1-n2 ) 5992 */
- {.type FromH0, {.p C_signum}, .src = "dd C_signum"}, /* dd C_signum 6000 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6008 */
- {.type Header, {.hdr { 5, "erase", /* C_erase = 6024 */ colon }}}, /* CENTRY "erase" erase 5 h 6032 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 6040 */
- {.type Absolute, {.p 0}}, /* dd 0 6048 */
- {.type FromH0, {.p M_doinit}, .src = "dd M_doinit"}, /* dd M_doinit 6056 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 6064 */
- {.type Absolute, {.p 0}}, /* dd 0 6072 */
- {.type FromH0, {.p M_over}, .src = "dd M_over"}, /* dd M_over 6080 */
- {.type FromH0, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 6088 */
- {.type FromH0, {.p C_1plus}, .src = "dd C_1plus"}, /* dd C_1plus 6096 */
- {.type FromH0, {.p M_doloop}, .src = "dd M_doloop"}, /* dd M_doloop 6104 */
- {.type FromH0, {.p L58}, .src = "dd L58"}, /* dd L58 6112 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 6120 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6128 */
- {.type Header, {.hdr { 4, "fill", /* C_fill = 6144 */ colon }}}, /* CENTRY "fill" fill 4 h 6152 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 6160 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 6168 */
- {.type Absolute, {.p 0}}, /* dd 0 6176 */
- {.type FromH0, {.p M_doinit}, .src = "dd M_doinit"}, /* dd M_doinit 6184 */
- {.type FromH0, {.p C_2dup}, .src = "dd C_2dup"}, /* dd C_2dup 6192 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 6200 */
- {.type FromH0, {.p M_i}, .src = "dd M_i"}, /* dd M_i 6208 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 6216 */
- {.type FromH0, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 6224 */
- {.type FromH0, {.p M_doloop}, .src = "dd M_doloop"}, /* dd M_doloop 6232 */
- {.type FromH0, {.p L60}, .src = "dd L60"}, /* dd L60 6240 */
- {.type FromH0, {.p C_2drop}, .src = "dd C_2drop"}, /* dd C_2drop 6248 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6256 */
- {.type Header, {.hdr { 5, "blank", /* C_blank = 6272 */ colon }}}, /* CENTRY "blank" blank 5 h 6280 */
- {.type FromH0, {.p C_bl}, .src = "dd C_bl"}, /* dd C_bl 6288 */
- {.type FromH0, {.p C_fill}, .src = "dd C_fill"}, /* dd C_fill 6296 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6304 */
- {.type Header, {.hdr { 6, "search", /* C_search = 6320 */ colon }}}, /* CENTRY "search" search 6 h 6328 */
- {.type FromH0, {.p MV_Searchlen}, .src = "dd MV_Searchlen"}, /* dd MV_Searchlen 6336 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 6344 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 6352 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 6360 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 6368 */
- {.type FromH0, {.p MV_Searchlen}, .src = "dd MV_Searchlen"}, /* dd MV_Searchlen 6376 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 6384 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 6392 */
- {.type FromH0, {.p C_1plus}, .src = "dd C_1plus"}, /* dd C_1plus 6400 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 6408 */
- {.type Absolute, {.p 0}}, /* dd 0 6416 */
- {.type FromH0, {.p M_doinit}, .src = "dd M_doinit"}, /* dd M_doinit 6424 */
- {.type FromH0, {.p M_over}, .src = "dd M_over"}, /* dd M_over 6432 */
- {.type FromH0, {.p M_i}, .src = "dd M_i"}, /* dd M_i 6440 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 6448 */
- {.type FromH0, {.p M_over}, .src = "dd M_over"}, /* dd M_over 6456 */
- {.type FromH0, {.p MV_Searchlen}, .src = "dd MV_Searchlen"}, /* dd MV_Searchlen 6464 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 6472 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 6480 */
- {.type FromH0, {.p MV_Searchlen}, .src = "dd MV_Searchlen"}, /* dd MV_Searchlen 6488 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 6496 */
- {.type FromH0, {.p C_compare}, .src = "dd C_compare"}, /* dd C_compare 6504 */
- {.type FromH0, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 6512 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 6520 */
- {.type FromH0, {.p L65}, .src = "dd L65"}, /* dd L65 6528 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 6536 */
- {.type FromH0, {.p M_i}, .src = "dd M_i"}, /* dd M_i 6544 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 6552 */
- {.type FromH0, {.p M_i}, .src = "dd M_i"}, /* dd M_i 6560 */
- {.type FromH0, {.p M_unloop}, .src = "dd M_unloop"}, /* dd M_unloop 6568 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 6576 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 6584 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 6592 */
- {.type FromH0, {.p C_true}, .src = "dd C_true"}, /* dd C_true 6600 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6608 */
- {.type FromH0, {.p M_doloop}, .src = "dd M_doloop"}, /* dd M_doloop 6616 */
- {.type FromH0, {.p L64}, .src = "dd L64"}, /* dd L64 6624 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 6632 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 6640 */
- {.type FromH0, {.p C_false}, .src = "dd C_false"}, /* dd C_false 6648 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6656 */
- {.type Header, {.hdr { 4, "here", /* C_here = 6672 */ colon }}}, /* CENTRY "here" here 4 h 6680 */
- {.type FromH0, {.p M_Dp}, .src = "dd M_Dp"}, /* dd M_Dp 6688 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 6696 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6704 */
- {.type Header, {.hdr { 4, "vhere", /* C_vhere = 6720 */ colon }}}, /* CENTRY "vhere" vhere 4 h 6728 */
- {.type FromH0, {.p M_Vp}, .src = "dd M_Vp"}, /* dd M_Vp 6736 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 6744 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6752 */
- {.type Header, {.hdr { 1, ",", /* C_comma = 6768 */ colon }}}, /* CENTRY "," comma 1 h 6776 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 6784 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 6792 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 6800 */
- {.type Absolute, {.p 8}}, /* dd 8 6808 */
- {.type FromH0, {.p M_Dp}, .src = "dd M_Dp"}, /* dd M_Dp 6816 */
- {.type FromH0, {.p C_plusstore}, .src = "dd C_plusstore"}, /* dd C_plusstore 6824 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6832 */
- {.type Header, {.hdr { 2, "c,", /* C_c = 6848 */ colon }}}, /* CENTRY "c," c 2 h 6856 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 6864 */
- {.type FromH0, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 6872 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 6880 */
- {.type Absolute, {.p 1}}, /* dd 1 6888 */
- {.type FromH0, {.p M_Dp}, .src = "dd M_Dp"}, /* dd M_Dp 6896 */
- {.type FromH0, {.p C_plusstore}, .src = "dd C_plusstore"}, /* dd C_plusstore 6904 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6912 */
- {.type Header, {.hdr { 5, "allot", /* C_allot = 6928 */ colon }}}, /* CENTRY "allot" allot 5 ; ( n -- ) here = here+n h 6936 */
- {.type FromH0, {.p M_Dp}, .src = "dd M_Dp"}, /* dd M_Dp 6944 */
- {.type FromH0, {.p C_plusstore}, .src = "dd C_plusstore"}, /* dd C_plusstore 6952 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6960 */
- {.type Header, {.hdr { 6, "vallot", /* C_vallot = 6976 */ colon }}}, /* CENTRY "vallot" vallot 6 ; allot on the variable space ( n -- ) vhere = vhere+n h 6984 */
- {.type FromH0, {.p M_Vp}, .src = "dd M_Vp"}, /* dd M_Vp 6992 */
- {.type FromH0, {.p C_plusstore}, .src = "dd C_plusstore"}, /* dd C_plusstore 7000 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7008 */
- {.type Header, {.hdr { 3, "pad", /* C_pad = 7024 */ colon }}}, /* CENTRY "pad" pad 3 h 7032 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 7040 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7048 */
- {.type Absolute, {.p 256}}, /* dd 256 7056 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 7064 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7072 */
- {.type Header, {.hdr { 5, "align", /* C_align = 7088 */ colon }}}, /* CENTRY "align" align 5 ; ( -- ) align here to a cell boundary h 7096 */
- {.type FromH0, {.p C_here}, .src = "dd C_here ; Dp @"}, /* dd C_here ; Dp @ 7104 */
- {.type FromH0, {.p C_aligned}, .src = "dd C_aligned ; here is aligned to a multiple of 8"}, /* dd C_aligned ; here is aligned to a multiple of 8 7112 */
- {.type FromH0, {.p M_Dp}, .src = "dd M_Dp ; store the aligned here at Dp"}, /* dd M_Dp ; store the aligned here at Dp 7120 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; Dp contains aligned_here"}, /* dd M_store ; Dp contains aligned_here 7128 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7136 */
- {.type Header, {.hdr { 6, "unused", /* C_unused = 7152 */ colon }}}, /* CENTRY "unused" unused 6 h 7160 */
- {.type FromH0, {.p M_Dp}, .src = "dd M_Dp"}, /* dd M_Dp 7168 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 7176 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 7184 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 7192 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7200 */
- {.type Header, {.hdr { 2, "<#", /* C_fromhash = 7216 */ colon }}}, /* CENTRY "<#" fromhash 2 h 7224 */
- {.type FromH0, {.p C_pad}, .src = "dd C_pad"}, /* dd C_pad 7232 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7240 */
- {.type Absolute, {.p 1024}}, /* dd 1024 7248 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 7256 */
- {.type FromH0, {.p MV_toNum}, .src = "dd MV_toNum"}, /* dd MV_toNum 7264 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 7272 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7280 */
- {.type Header, {.hdr { 1, "#", /* C_hash = 7296 */ colon }}}, /* CENTRY "#" hash 1 h 7304 */
- {.type FromH0, {.p MV_Base}, .src = "dd MV_Base"}, /* dd MV_Base 7312 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 7320 */
- {.type FromH0, {.p M_uslashmod}, .src = "dd M_uslashmod"}, /* dd M_uslashmod 7328 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 7336 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 7344 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7352 */
- {.type Absolute, {.p 9}}, /* dd 9 7360 */
- {.type FromH0, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 7368 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 7376 */
- {.type FromH0, {.p L92}, .src = "dd L92"}, /* dd L92 7384 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7392 */
- {.type Absolute, {.p 97}}, /* dd 97 7400 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 7408 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7416 */
- {.type Absolute, {.p 10}}, /* dd 10 7424 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 7432 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 7440 */
- {.type FromH0, {.p L93}, .src = "dd L93"}, /* dd L93 7448 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7456 */
- {.type Absolute, {.p 48}}, /* dd 48 7464 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 7472 */
- {.type FromH0, {.p MV_toNum}, .src = "dd MV_toNum"}, /* dd MV_toNum 7480 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 7488 */
- {.type FromH0, {.p C_1minus}, .src = "dd C_1minus"}, /* dd C_1minus 7496 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 7504 */
- {.type FromH0, {.p MV_toNum}, .src = "dd MV_toNum"}, /* dd MV_toNum 7512 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 7520 */
- {.type FromH0, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 7528 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7536 */
- {.type Header, {.hdr { 2, "#s", /* C_hashs = 7552 */ colon }}}, /* CENTRY "#s" hashs 2 h 7560 */
- {.type FromH0, {.p C_hash}, .src = "dd C_hash"}, /* dd C_hash 7568 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 7576 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 7584 */
- {.type FromH0, {.p L96}, .src = "dd L96"}, /* dd L96 7592 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 7600 */
- {.type FromH0, {.p L95}, .src = "dd L95"}, /* dd L95 7608 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7616 */
- {.type Header, {.hdr { 2, "#>", /* C_hashfrom = 7632 */ colon }}}, /* CENTRY "#>" hashfrom 2 h 7640 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 7648 */
- {.type FromH0, {.p MV_toNum}, .src = "dd MV_toNum"}, /* dd MV_toNum 7656 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 7664 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 7672 */
- {.type FromH0, {.p C_pad}, .src = "dd C_pad"}, /* dd C_pad 7680 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7688 */
- {.type Absolute, {.p 1024}}, /* dd 1024 7696 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 7704 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 7712 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 7720 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7728 */
- {.type Header, {.hdr { 4, "hold", /* C_hold = 7744 */ colon }}}, /* CENTRY "hold" hold 4 h 7752 */
- {.type FromH0, {.p MV_toNum}, .src = "dd MV_toNum"}, /* dd MV_toNum 7760 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 7768 */
- {.type FromH0, {.p C_1minus}, .src = "dd C_1minus"}, /* dd C_1minus 7776 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 7784 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 7792 */
- {.type FromH0, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 7800 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 7808 */
- {.type FromH0, {.p MV_toNum}, .src = "dd MV_toNum"}, /* dd MV_toNum 7816 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 7824 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7832 */
- {.type Header, {.hdr { 4, "sign", /* C_sign = 7848 */ colon }}}, /* CENTRY "sign" sign 4 h 7856 */
- {.type FromH0, {.p C_0lt}, .src = "dd C_0lt"}, /* dd C_0lt 7864 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 7872 */
- {.type FromH0, {.p L100}, .src = "dd L100"}, /* dd L100 7880 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7888 */
- {.type Absolute, {.p 45}}, /* dd 45 7896 */
- {.type FromH0, {.p C_hold}, .src = "dd C_hold"}, /* dd C_hold 7904 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7912 */
- {.type Header, {.hdr { 1, ".", /* C_dot = 7928 */ colon }}}, /* CENTRY "." dot 1 ; print the top of stack ( n -- ) h 7936 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( n -- n n )"}, /* dd M_dup ; ( n -- n n ) 7944 */
- {.type FromH0, {.p C_abs}, .src = "dd C_abs ; ( n n -- n u )"}, /* dd C_abs ; ( n n -- n u ) 7952 */
- {.type FromH0, {.p C_fromhash}, .src = "dd C_fromhash ; pad = h+256; >num = pad+1024"}, /* dd C_fromhash ; pad = h+256; >num = pad+1024 7960 */
- {.type FromH0, {.p C_hashs}, .src = "dd C_hashs ; ( n u1 -- n n2 )"}, /* dd C_hashs ; ( n u1 -- n n2 ) 7968 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap ; ( n n2 -- n2 n )"}, /* dd M_xswap ; ( n n2 -- n2 n ) 7976 */
- {.type FromH0, {.p C_sign}, .src = "dd C_sign ; ( n2 n -- n2 )"}, /* dd C_sign ; ( n2 n -- n2 ) 7984 */
- {.type FromH0, {.p C_hashfrom}, .src = "dd C_hashfrom ; ( u1 -- a n )"}, /* dd C_hashfrom ; ( u1 -- a n ) 7992 */
- {.type FromH0, {.p C_type}, .src = "dd C_type ; ( a n -- )"}, /* dd C_type ; ( a n -- ) 8000 */
- {.type FromH0, {.p C_space}, .src = "dd C_space"}, /* dd C_space 8008 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 8016 */
- {.type Header, {.hdr { 2, ".r", /* C_dotr = 8032 */ colon }}}, /* CENTRY ".r" dotr 2 h 8040 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 8048 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 8056 */
- {.type FromH0, {.p C_abs}, .src = "dd C_abs"}, /* dd C_abs 8064 */
- {.type FromH0, {.p C_fromhash}, .src = "dd C_fromhash"}, /* dd C_fromhash 8072 */
- {.type FromH0, {.p C_hashs}, .src = "dd C_hashs"}, /* dd C_hashs 8080 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 8088 */
- {.type FromH0, {.p C_sign}, .src = "dd C_sign"}, /* dd C_sign 8096 */
- {.type FromH0, {.p C_hashfrom}, .src = "dd C_hashfrom"}, /* dd C_hashfrom 8104 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 8112 */
- {.type FromH0, {.p M_over}, .src = "dd M_over"}, /* dd M_over 8120 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 8128 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8136 */
- {.type Absolute, {.p 0}}, /* dd 0 8144 */
- {.type FromH0, {.p C_max}, .src = "dd C_max"}, /* dd C_max 8152 */
- {.type FromH0, {.p C_spaces}, .src = "dd C_spaces"}, /* dd C_spaces 8160 */
- {.type FromH0, {.p C_type}, .src = "dd C_type"}, /* dd C_type 8168 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 8176 */
- {.type Header, {.hdr { 3, "hex", /* C_hex = 8192 */ colon }}}, /* CENTRY "hex" hex 3 h 8200 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8208 */
- {.type Absolute, {.p 16}}, /* dd 16 8216 */
- {.type FromH0, {.p MV_Base}, .src = "dd MV_Base"}, /* dd MV_Base 8224 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 8232 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 8240 */
- {.type Header, {.hdr { 7, "decimal", /* C_decimal = 8256 */ colon }}}, /* CENTRY "decimal" decimal 7 h 8264 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8272 */
- {.type Absolute, {.p 10}}, /* dd 10 8280 */
- {.type FromH0, {.p MV_Base}, .src = "dd MV_Base"}, /* dd MV_Base 8288 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 8296 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 8304 */
- {.type Header, {.hdr { 5, "digit", /* C_digit = 8320 */ colon }}}, /* CENTRY "digit" digit 5 ; ( c -- ) h 8328 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 8336 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8344 */
- {.type Absolute, {.p 65}}, /* dd 65 8352 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8360 */
- {.type Absolute, {.p 91}}, /* dd 91 8368 */
- {.type FromH0, {.p C_within}, .src = "dd C_within"}, /* dd C_within 8376 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 8384 */
- {.type FromH0, {.p L106}, .src = "dd L106"}, /* dd L106 8392 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8400 */
- {.type Absolute, {.p 55}}, /* dd 55 8408 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 8416 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 8424 */
- {.type FromH0, {.p L107}, .src = "dd L107"}, /* dd L107 8432 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 8440 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8448 */
- {.type Absolute, {.p 97}}, /* dd 97 8456 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8464 */
- {.type Absolute, {.p 123}}, /* dd 123 8472 */
- {.type FromH0, {.p C_within}, .src = "dd C_within"}, /* dd C_within 8480 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 8488 */
- {.type FromH0, {.p L108}, .src = "dd L108"}, /* dd L108 8496 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8504 */
- {.type Absolute, {.p 87}}, /* dd 87 8512 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 8520 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 8528 */
- {.type FromH0, {.p L109}, .src = "dd L109"}, /* dd L109 8536 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 8544 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8552 */
- {.type Absolute, {.p 48}}, /* dd 48 8560 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8568 */
- {.type Absolute, {.p 58}}, /* dd 58 8576 */
- {.type FromH0, {.p C_within}, .src = "dd C_within"}, /* dd C_within 8584 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 8592 */
- {.type FromH0, {.p L110}, .src = "dd L110"}, /* dd L110 8600 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8608 */
- {.type Absolute, {.p 48}}, /* dd 48 8616 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 8624 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 8632 */
- {.type FromH0, {.p L111}, .src = "dd L111"}, /* dd L111 8640 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 8648 */
- {.type FromH0, {.p C_false}, .src = "dd C_false"}, /* dd C_false 8656 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 8664 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 8672 */
- {.type FromH0, {.p MV_Base}, .src = "dd MV_Base"}, /* dd MV_Base 8680 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 8688 */
- {.type FromH0, {.p M_less}, .src = "dd M_less"}, /* dd M_less 8696 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 8704 */
- {.type FromH0, {.p L112}, .src = "dd L112"}, /* dd L112 8712 */
- {.type FromH0, {.p C_true}, .src = "dd C_true"}, /* dd C_true 8720 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 8728 */
- {.type FromH0, {.p L113}, .src = "dd L113"}, /* dd L113 8736 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 8744 */
- {.type FromH0, {.p C_false}, .src = "dd C_false"}, /* dd C_false 8752 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 8760 */
- {.type Header, {.hdr { 6, "number", /* C_number = 8776 */ colon }}}, /* CENTRY "number" number 6 ; ( a n1 -- n2 -1 | a n1 0 ) h 8784 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap ; ( a n1 -- n1 a )"}, /* dd M_xswap ; ( a n1 -- n1 a ) 8792 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( n1 a -- n1 a a )"}, /* dd M_dup ; ( n1 a -- n1 a a ) 8800 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch ; ( n1 a a -- n1 a c )"}, /* dd M_cfetch ; ( n1 a a -- n1 a c ) 8808 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8816 */
- {.type Absolute, {.p 45}}, /* dd 45 ; ( n1 a c -- n1 a c - ) 8824 */
- {.type FromH0, {.p M_equal}, .src = "dd M_equal ; ( n1 a c -- n1 a f )"}, /* dd M_equal ; ( n1 a c -- n1 a f ) 8832 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump ; ( n1 a c -- n1 a )"}, /* dd M_cjump ; ( n1 a c -- n1 a ) 8840 */
- {.type FromH0, {.p L115}, .src = "dd L115 ; c != -"}, /* dd L115 ; c != - 8848 */
- {.type FromH0, {.p C_1plus}, .src = "dd C_1plus ; c == - ( n1 a -- n1 a+1 )"}, /* dd C_1plus ; c == - ( n1 a -- n1 a+1 ) 8856 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 8864 */
- {.type FromH0, {.p C_1minus}, .src = "dd C_1minus ; c == - ( a+1 n1 -- a+1 n1-1 )"}, /* dd C_1minus ; c == - ( a+1 n1 -- a+1 n1-1 ) 8872 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8880 */
- {.type Absolute, {.p -1}}, /* dd -1 ; ( a+1 n1-1 -- a+1 n1-1 -1 ) 8888 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( a+1 n1-1 -- a+1 n1-1 ) (R -- -1)"}, /* dd M_rpush ; ( a+1 n1-1 -- a+1 n1-1 ) (R -- -1) 8896 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 8904 */
- {.type FromH0, {.p L116}, .src = "dd L116"}, /* dd L116 8912 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap ; ( n1 a -- a n1)"}, /* dd M_xswap ; ( n1 a -- a n1) 8920 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8928 */
- {.type Absolute, {.p 1}}, /* dd 1 8936 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( a n1 1 -- a n1 ) (R -- 1)"}, /* dd M_rpush ; ( a n1 1 -- a n1 ) (R -- 1) 8944 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( a n1 -- a n1 n1 ) (R nr)"}, /* dd M_dup ; ( a n1 -- a n1 n1 ) (R nr) 8952 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( a n1 n1 -- a n1 ) (R nr -- nr n1)"}, /* dd M_rpush ; ( a n1 n1 -- a n1 ) (R nr -- nr n1) 8960 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8968 */
- {.type Absolute, {.p 0}}, /* dd 0 ; ( a n1 -- a n1 0) (R nr n1) 8976 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap ; ( a n1 0 -- a 0 n1) (R nr n1)"}, /* dd M_xswap ; ( a n1 0 -- a 0 n1) (R nr n1) 8984 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8992 */
- {.type Absolute, {.p 0}}, /* dd 0 ; ( a 0 n1 -- a 0 n1 0) (R nr n1) 9000 */
- {.type FromH0, {.p M_doinit}, .src = "dd M_doinit ; ( a 0 n1 0 -- a 0 ) (R nr n1 -- nr n1 0 n1)"}, /* dd M_doinit ; ( a 0 n1 0 -- a 0 ) (R nr n1 -- nr n1 0 n1) 9008 */
- {.type FromH0, {.p MV_Base}, .src = "dd MV_Base"}, /* dd MV_Base 9016 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; ( a 0 Base -- a 0 10 ) (R nr n1 -- nr n1 0 n1)"}, /* dd M_fetch ; ( a 0 Base -- a 0 10 ) (R nr n1 -- nr n1 0 n1) 9024 */
- {.type FromH0, {.p M_multiply}, .src = "dd M_multiply ; ( a 0 10 -- a 0 ) (R nr n1 -- nr n1 0 n1)"}, /* dd M_multiply ; ( a 0 10 -- a 0 ) (R nr n1 -- nr n1 0 n1) 9032 */
- {.type FromH0, {.p M_over}, .src = "dd M_over ; ( a 0 -- a 0 a) (R nr n1 -- nr n1 0 n1)"}, /* dd M_over ; ( a 0 -- a 0 a) (R nr n1 -- nr n1 0 n1) 9040 */
- {.type FromH0, {.p M_i}, .src = "dd M_i ; ( a 0 a -- a 0 a n1) (R nr n1 -- nr n1 0 n1)"}, /* dd M_i ; ( a 0 a -- a 0 a n1) (R nr n1 -- nr n1 0 n1) 9048 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus ; ( a 0 a n1 -- a 0 a+n1) (R nr n1 -- nr n1 0 n1)"}, /* dd M_plus ; ( a 0 a n1 -- a 0 a+n1) (R nr n1 -- nr n1 0 n1) 9056 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch ; ( a 0 a+n1 -- a 0 c) (R nr n1 -- nr n1 0 n1)"}, /* dd M_cfetch ; ( a 0 a+n1 -- a 0 c) (R nr n1 -- nr n1 0 n1) 9064 */
- {.type FromH0, {.p C_digit}, .src = "dd C_digit"}, /* dd C_digit 9072 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 9080 */
- {.type FromH0, {.p L118}, .src = "dd L118"}, /* dd L118 9088 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 9096 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 9104 */
- {.type FromH0, {.p L119}, .src = "dd L119"}, /* dd L119 9112 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 9120 */
- {.type FromH0, {.p M_unloop}, .src = "dd M_unloop"}, /* dd M_unloop 9128 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 9136 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 9144 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 9152 */
- {.type FromH0, {.p C_false}, .src = "dd C_false"}, /* dd C_false 9160 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9168 */
- {.type FromH0, {.p M_doloop}, .src = "dd M_doloop"}, /* dd M_doloop 9176 */
- {.type FromH0, {.p L117}, .src = "dd L117"}, /* dd L117 9184 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 9192 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 9200 */
- {.type FromH0, {.p C_nip}, .src = "dd C_nip"}, /* dd C_nip 9208 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 9216 */
- {.type FromH0, {.p M_multiply}, .src = "dd M_multiply"}, /* dd M_multiply 9224 */
- {.type FromH0, {.p C_true}, .src = "dd C_true"}, /* dd C_true 9232 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9240 */
- {.type Header, {.hdr { 5, "abort", /* C_abort = 9256 */ colon }}}, /* CENTRY "abort" abort 5 h 9264 */
- {.type FromH0, {.p MV_Abortvec}, .src = "dd MV_Abortvec"}, /* dd MV_Abortvec 9272 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 9280 */
- {.type FromH0, {.p M_execute}, .src = "dd M_execute"}, /* dd M_execute 9288 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9296 */
- {.type Header, {.hdr { 6, "source", /* C_source = 9312 */ colon }}}, /* CENTRY "source" source 6 h 9320 */
- {.type FromH0, {.p MV_Sourcebuf}, .src = "dd MV_Sourcebuf"}, /* dd MV_Sourcebuf 9328 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 9336 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9344 */
-/* ; current-input-char */ {.type Header, {.hdr { 13, "current-input", /* C_current_input = 9368 */ colon }}}, /* CENTRY "current-input" current_input 13 ; ( -- c ) read the next character from the location in Sourcebuf h 9376 */
- {.type FromH0, {.p MV_toIn}, .src = "dd MV_toIn"}, /* dd MV_toIn 9384 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 9392 */
- {.type FromH0, {.p C_source}, .src = "dd C_source"}, /* dd C_source 9400 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus ; Sourcebuf + >In"}, /* dd M_plus ; Sourcebuf + >In 9408 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 9416 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9424 */
- {.type Header, {.hdr { 10, "save-input", /* C_save_input = 9448 */ colon }}}, /* CENTRY "save-input" save_input 10 ; ( -- infd >in >limit sourcebuf 'Acceptvec 5 ) save input stream onto the stack h 9456 */
- {.type FromH0, {.p MV_Infd}, .src = "dd MV_Infd"}, /* dd MV_Infd 9464 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 9472 */
- {.type FromH0, {.p MV_toIn}, .src = "dd MV_toIn"}, /* dd MV_toIn 9480 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 9488 */
- {.type FromH0, {.p MV_toLimit}, .src = "dd MV_toLimit"}, /* dd MV_toLimit 9496 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 9504 */
- {.type FromH0, {.p MV_Sourcebuf}, .src = "dd MV_Sourcebuf"}, /* dd MV_Sourcebuf 9512 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 9520 */
- {.type FromH0, {.p MV_Acceptvec}, .src = "dd MV_Acceptvec"}, /* dd MV_Acceptvec 9528 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 9536 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 9544 */
- {.type Absolute, {.p 5}}, /* dd 5 9552 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9560 */
- {.type Header, {.hdr { 13, "default-input", /* C_default_input = 9584 */ colon }}}, /* CENTRY "default-input" default_input 13 ; stream input from stdin into Text input buffer h 9592 */
- {.type FromH0, {.p MC_STDIN}, .src = "dd MC_STDIN"}, /* dd MC_STDIN 9600 */
- {.type FromH0, {.p MV_Infd}, .src = "dd MV_Infd"}, /* dd MV_Infd 9608 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 9616 */
- {.type FromH0, {.p MV_toIn}, .src = "dd MV_toIn"}, /* dd MV_toIn 9624 */
- {.type FromH0, {.p C_off}, .src = "dd C_off"}, /* dd C_off 9632 */
- {.type FromH0, {.p MV_toLimit}, .src = "dd MV_toLimit"}, /* dd MV_toLimit 9640 */
- {.type FromH0, {.p C_off}, .src = "dd C_off"}, /* dd C_off 9648 */
- {.type FromH0, {.p M_Tib}, .src = "dd M_Tib"}, /* dd M_Tib 9656 */
- {.type FromH0, {.p MV_Sourcebuf}, .src = "dd MV_Sourcebuf"}, /* dd MV_Sourcebuf 9664 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 9672 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 9680 */
- {.type FromH0, {.p C_accept_line}, .src = "dd C_accept_line ; could use C_accept_key too"}, /* dd C_accept_line ; could use C_accept_key too 9688 */
- {.type FromH0, {.p MV_Acceptvec}, .src = "dd MV_Acceptvec"}, /* dd MV_Acceptvec 9696 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 9704 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9712 */
- {.type Header, {.hdr { 13, "restore-input", /* C_restore_input = 9736 */ colon }}}, /* CENTRY "restore-input" restore_input 13 ; ( <input>|empty -- f ) ; restore input stream from the stack or set the default-input as the input stream h 9744 */
- {.type FromH0, {.p MV_Eof}, .src = "dd MV_Eof"}, /* dd MV_Eof 9752 */
- {.type FromH0, {.p C_off}, .src = "dd C_off ; reset Eof back to 0"}, /* dd C_off ; reset Eof back to 0 9760 */
- {.type FromH0, {.p C_depth}, .src = "dd C_depth"}, /* dd C_depth 9768 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 9776 */
- {.type Absolute, {.p 6}}, /* dd 6 ; is the input stream on the stack, depth == 6? 9784 */
- {.type FromH0, {.p M_equal}, .src = "dd M_equal"}, /* dd M_equal 9792 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 9800 */
- {.type FromH0, {.p L132}, .src = "dd L132 ; depth <> 6, there is no input stream on the stack, get out"}, /* dd L132 ; depth <> 6, there is no input stream on the stack, get out 9808 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; depth == 6, now check if there is a 5 on the top of stack"}, /* dd M_dup ; depth == 6, now check if there is a 5 on the top of stack 9816 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 9824 */
- {.type Absolute, {.p 5}}, /* dd 5 ; is 5 on the top of stack? 9832 */
- {.type FromH0, {.p M_equal}, .src = "dd M_equal"}, /* dd M_equal 9840 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 9848 */
- {.type FromH0, {.p L132}, .src = "dd L132 ; top of stack <> 5, there is no input stream on the stack, get out"}, /* dd L132 ; top of stack <> 5, there is no input stream on the stack, get out 9856 */
-/* ; ( infd >in >limit sourcebuf 'accept 5 ) */ {.type FromH0, {.p M_drop}, .src = "dd M_drop ; ( infd >in >limit sourcebuf 'accept )"}, /* dd M_drop ; ( infd >in >limit sourcebuf 'accept ) 9864 */
- {.type FromH0, {.p MV_Acceptvec}, .src = "dd MV_Acceptvec"}, /* dd MV_Acceptvec 9872 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 9880 */
- {.type FromH0, {.p MV_Sourcebuf}, .src = "dd MV_Sourcebuf"}, /* dd MV_Sourcebuf 9888 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 9896 */
- {.type FromH0, {.p MV_toLimit}, .src = "dd MV_toLimit"}, /* dd MV_toLimit 9904 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 9912 */
- {.type FromH0, {.p MV_toIn}, .src = "dd MV_toIn"}, /* dd MV_toIn 9920 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 9928 */
- {.type FromH0, {.p MV_Infd}, .src = "dd MV_Infd"}, /* dd MV_Infd 9936 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 9944 */
- {.type FromH0, {.p C_true}, .src = "dd C_true ; ( true )"}, /* dd C_true ; ( true ) 9952 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9960 */
- {.type FromH0, {.p C_default_input}, .src = "dd C_default_input ; no input stream on the stack, use default input from now"}, /* dd C_default_input ; no input stream on the stack, use default input from now 9968 */
- {.type FromH0, {.p C_false}, .src = "dd C_false ; ( 0 )"}, /* dd C_false ; ( 0 ) 9976 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9984 */
- {.type Header, {.hdr { 14, "?restore-input", /* C_qrestore_input = 10008 */ colon }}}, /* CENTRY "?restore-input" qrestore_input 14 ; ( <input> -- ) ; use the input stream on the stack or abort h 10016 */
- {.type FromH0, {.p C_restore_input}, .src = "dd C_restore_input"}, /* dd C_restore_input 10024 */
- {.type FromH0, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 10032 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 10040 */
- {.type FromH0, {.p L136}, .src = "dd L136 ; input stream restored"}, /* dd L136 ; input stream restored 10048 */
-/* ; no input stream on the stack to restore, show error and abort */ {.type FromH0, {.p C_space}, .src = "dd C_space"}, /* dd C_space 10056 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 10064 */
- {.type FromH0, {.p L137}, .src = "dd L137"}, /* dd L137 10072 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 10080 */
- {.type Absolute, {.p 23}}, /* dd 23 10088 */
- {.type FromH0, {.p C_type}, .src = "dd C_type"}, /* dd C_type 10096 */
- {.type FromH0, {.p C_space}, .src = "dd C_space"}, /* dd C_space 10104 */
- {.type FromH0, {.p C_depth}, .src = "dd C_depth"}, /* dd C_depth 10112 */
- {.type FromH0, {.p C_dot}, .src = "dd C_dot"}, /* dd C_dot 10120 */
- {.type FromH0, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 10128 */
- {.type FromH0, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 10136 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10144 */
-/* ; next-input-char */ {.type Header, {.hdr { 10, "next-input", /* C_next_input = 10168 */ colon }}}, /* CENTRY "next-input" next_input 10 ; when >In < >Limit ( -- true c ). ( -- 0 false ) otherwise h 10176 */
- {.type FromH0, {.p MV_toIn}, .src = "dd MV_toIn"}, /* dd MV_toIn 10184 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 10192 */
- {.type FromH0, {.p MV_toLimit}, .src = "dd MV_toLimit"}, /* dd MV_toLimit 10200 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 10208 */
- {.type FromH0, {.p M_less}, .src = "dd M_less"}, /* dd M_less 10216 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 10224 */
- {.type FromH0, {.p L139}, .src = "dd L139 ; >In >= >Limit"}, /* dd L139 ; >In >= >Limit 10232 */
- {.type FromH0, {.p C_true}, .src = "dd C_true ; >In < >Limit"}, /* dd C_true ; >In < >Limit 10240 */
- {.type FromH0, {.p C_current_input}, .src = "dd C_current_input ; ( -- c )"}, /* dd C_current_input ; ( -- c ) 10248 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 10256 */
- {.type FromH0, {.p L140}, .src = "dd L140"}, /* dd L140 10264 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 10272 */
- {.type Absolute, {.p 0}}, /* dd 0 10280 */
- {.type FromH0, {.p C_false}, .src = "dd C_false"}, /* dd C_false 10288 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10296 */
-/* ; replace current-input and next-input with an asm function that does cmove until it meets a certain character or limit? */ {.type Header, {.hdr { 5, "parse", /* C_parse = 10312 */ colon }}}, /* CENTRY "parse" parse 5 ; ( c -- a ) Place the counted string in Wordbuf and return that address. c = word delimiter. h 10320 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( c -- ) (R -- c )"}, /* dd M_rpush ; ( c -- ) (R -- c ) 10328 */
- {.type FromH0, {.p MV_Wordbuf}, .src = "dd MV_Wordbuf"}, /* dd MV_Wordbuf 10336 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; ( -- Wordb )"}, /* dd M_fetch ; ( -- Wordb ) 10344 */
- {.type FromH0, {.p C_1plus}, .src = "dd C_1plus ; ( Wordb -- Wordb+1 )"}, /* dd C_1plus ; ( Wordb -- Wordb+1 ) 10352 */
- {.type FromH0, {.p C_next_input}, .src = "dd C_next_input ; ( Wordb+1 -- Wordb+1 f c )"}, /* dd C_next_input ; ( Wordb+1 -- Wordb+1 f c ) 10360 */
- {.type FromH0, {.p M_rfetch}, .src = "dd M_rfetch ; ( Wordb+1 f c -- Wordb+1 f cinitial ) (R c -- c )"}, /* dd M_rfetch ; ( Wordb+1 f c -- Wordb+1 f cinitial ) (R c -- c ) 10368 */
- {.type FromH0, {.p C_neq}, .src = "dd C_neq ; ( Wordb+1 f c cinitial -- Wordb+1 f f(c!=cinitial) )"}, /* dd C_neq ; ( Wordb+1 f c cinitial -- Wordb+1 f f(c!=cinitial) ) 10376 */
- {.type FromH0, {.p M_binand}, .src = "dd M_binand ; ( Wordb+1 f&(c!=cinitial) )"}, /* dd M_binand ; ( Wordb+1 f&(c!=cinitial) ) 10384 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 10392 */
- {.type FromH0, {.p L143}, .src = "dd L143 ; ( Wordb+1 ) >In >= >Limit || cinitial == cnew"}, /* dd L143 ; ( Wordb+1 ) >In >= >Limit || cinitial == cnew 10400 */
- {.type FromH0, {.p C_current_input}, .src = "dd C_current_input ; ( Wordb+1 -- Wordb+1 c )"}, /* dd C_current_input ; ( Wordb+1 -- Wordb+1 c ) 10408 */
- {.type FromH0, {.p M_over}, .src = "dd M_over"}, /* dd M_over 10416 */
- {.type FromH0, {.p M_cstore}, .src = "dd M_cstore ; ( Wordb+1 c Wordb+1 -- Wordb+1 ) store c at Wordb+1"}, /* dd M_cstore ; ( Wordb+1 c Wordb+1 -- Wordb+1 ) store c at Wordb+1 10424 */
- {.type FromH0, {.p C_1plus}, .src = "dd C_1plus ; ( Wordb+1 -- Wordb+2 )"}, /* dd C_1plus ; ( Wordb+1 -- Wordb+2 ) 10432 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 10440 */
- {.type Absolute, {.p 1}}, /* dd 1 10448 */
- {.type FromH0, {.p MV_toIn}, .src = "dd MV_toIn"}, /* dd MV_toIn 10456 */
- {.type FromH0, {.p C_plusstore}, .src = "dd C_plusstore ; >In++"}, /* dd C_plusstore ; >In++ 10464 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 10472 */
- {.type FromH0, {.p L142}, .src = "dd L142 ; ( Wordb+2 ) repeat"}, /* dd L142 ; ( Wordb+2 ) repeat 10480 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 10488 */
- {.type Absolute, {.p 1}}, /* dd 1 10496 */
- {.type FromH0, {.p MV_toIn}, .src = "dd MV_toIn"}, /* dd MV_toIn 10504 */
- {.type FromH0, {.p C_plusstore}, .src = "dd C_plusstore ; >In++"}, /* dd C_plusstore ; >In++ 10512 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; (Wordb+1 -- Wordb+1 c) (R c -- )"}, /* dd M_rpop ; (Wordb+1 -- Wordb+1 c) (R c -- ) 10520 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop ; (Wordb+1 c -- Wordb+1)"}, /* dd M_drop ; (Wordb+1 c -- Wordb+1) 10528 */
- {.type FromH0, {.p MV_Wordbuf}, .src = "dd MV_Wordbuf"}, /* dd MV_Wordbuf 10536 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; (Wordb+1 -- Wordb+1 Wordb)"}, /* dd M_fetch ; (Wordb+1 -- Wordb+1 Wordb) 10544 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; (Wordb+1 Wordb -- Wordb+1 Wordb Wordb)"}, /* dd M_dup ; (Wordb+1 Wordb -- Wordb+1 Wordb Wordb) 10552 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; (Wordb+1 Wordb Wordb -- Wordb+1 Wordb) (R -- Wordb)"}, /* dd M_rpush ; (Wordb+1 Wordb Wordb -- Wordb+1 Wordb) (R -- Wordb) 10560 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus ; (Wordb+1 Wordb -- Wordb+1-Wordb) (R -- Wordb)"}, /* dd M_minus ; (Wordb+1 Wordb -- Wordb+1-Wordb) (R -- Wordb) 10568 */
- {.type FromH0, {.p C_1minus}, .src = "dd C_1minus ; (Wordb+1-Wordb -- Wordb+1-Wordb-1) (R -- Wordb)"}, /* dd C_1minus ; (Wordb+1-Wordb -- Wordb+1-Wordb-1) (R -- Wordb) 10576 */
- {.type FromH0, {.p M_rfetch}, .src = "dd M_rfetch ; (Wordb+1-Wordb-1 Wordb -- Wordb+1-Wordb-1 Wordb) (R -- Wordb)"}, /* dd M_rfetch ; (Wordb+1-Wordb-1 Wordb -- Wordb+1-Wordb-1 Wordb) (R -- Wordb) 10584 */
- {.type FromH0, {.p M_cstore}, .src = "dd M_cstore ; store the length of the string found at Wordb[0]. Counted string at Wordb now."}, /* dd M_cstore ; store the length of the string found at Wordb[0]. Counted string at Wordb now. 10592 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( -- Wordb) (R Wordb -- )"}, /* dd M_rpop ; ( -- Wordb) (R Wordb -- ) 10600 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10608 */
- {.type Header, {.hdr { 4, "word", /* C_word = 10624 */ colon }}}, /* CENTRY "word" word 4 ; ( c -- a ) skip the c"s. Placed the counted string in a (as in Wordbuf) h 10632 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( -- ) (R -- c )"}, /* dd M_rpush ; ( -- ) (R -- c ) 10640 */
- {.type FromH0, {.p C_next_input}, .src = "dd C_next_input ; ( -- f c2 ) (R c1 -- )"}, /* dd C_next_input ; ( -- f c2 ) (R c1 -- ) 10648 */
- {.type FromH0, {.p M_rfetch}, .src = "dd M_rfetch ; ( f cnew -- f cnew cinitial ) (R cinitial -- cinitial )"}, /* dd M_rfetch ; ( f cnew -- f cnew cinitial ) (R cinitial -- cinitial ) 10656 */
- {.type FromH0, {.p M_equal}, .src = "dd M_equal ; ( f cnew cinitial -- f f(cnew==cinitial) ) (R cinitial -- cinitial )"}, /* dd M_equal ; ( f cnew cinitial -- f f(cnew==cinitial) ) (R cinitial -- cinitial ) 10664 */
- {.type FromH0, {.p M_binand}, .src = "dd M_binand ; ( f f2 -- f&&f2 ) (R cinitial -- cinitial )"}, /* dd M_binand ; ( f f2 -- f&&f2 ) (R cinitial -- cinitial ) 10672 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 10680 */
- {.type FromH0, {.p L146}, .src = "dd L146 ; >In >= >Limit || cinitial != cnew"}, /* dd L146 ; >In >= >Limit || cinitial != cnew 10688 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal ; >In < >Limit && cinitial == cnew"}, /* dd M_literal ; >In < >Limit && cinitial == cnew 10696 */
- {.type Absolute, {.p 1}}, /* dd 1 10704 */
- {.type FromH0, {.p MV_toIn}, .src = "dd MV_toIn"}, /* dd MV_toIn 10712 */
- {.type FromH0, {.p C_plusstore}, .src = "dd C_plusstore ; >In++"}, /* dd C_plusstore ; >In++ 10720 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump ; repeat"}, /* dd M_jump ; repeat 10728 */
- {.type FromH0, {.p L145}, .src = "dd L145"}, /* dd L145 10736 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( cinitial ) Sourcebuf+>In = location of first non-matching character"}, /* dd M_rpop ; ( cinitial ) Sourcebuf+>In = location of first non-matching character 10744 */
- {.type FromH0, {.p C_parse}, .src = "dd C_parse"}, /* dd C_parse 10752 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10760 */
-/* ; accept is the Brdline of bio *//* ; if Acceptvec == 0, set Eof on and get out *//* ; else execute it */ {.type Header, {.hdr { 6, "accept", /* C_accept = 10776 */ colon }}}, /* CENTRY "accept" accept 6 ; ( a n -- n ) get line or n chars or EOF from input and store at a h 10784 */
- {.type FromH0, {.p MV_Acceptvec}, .src = "dd MV_Acceptvec"}, /* dd MV_Acceptvec 10792 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 10800 */
- {.type FromH0, {.p C_qdup}, .src = "dd C_qdup"}, /* dd C_qdup 10808 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 10816 */
- {.type FromH0, {.p L300}, .src = "dd L300 ; Acceptvec == 0, set Eof on and get out"}, /* dd L300 ; Acceptvec == 0, set Eof on and get out 10824 */
- {.type FromH0, {.p M_execute}, .src = "dd M_execute"}, /* dd M_execute 10832 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10840 */
- {.type FromH0, {.p C_2drop}, .src = "dd C_2drop ; ( )"}, /* dd C_2drop ; ( ) 10848 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 10856 */
- {.type Absolute, {.p 0}}, /* dd 0 ; ( 0 ) 10864 */
- {.type FromH0, {.p MV_Eof}, .src = "dd MV_Eof"}, /* dd MV_Eof 10872 */
- {.type FromH0, {.p C_on}, .src = "dd C_on"}, /* dd C_on 10880 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10888 */
- {.type Header, {.hdr { 11, "accept-line", /* C_accept_line = 10912 */ colon }}}, /* CENTRY "accept-line" accept_line 11 ; ( a n -- n1 ) get line or n chars or EOF from input and store at a using key h 10920 */
- {.type FromH0, {.p MV_Infd}, .src = "dd MV_Infd"}, /* dd MV_Infd 10928 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; ( a n infd )"}, /* dd M_fetch ; ( a n infd ) 10936 */
- {.type FromH0, {.p C_read_file}, .src = "dd C_read_file ; ( n ioresult )"}, /* dd C_read_file ; ( n ioresult ) 10944 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 10952 */
- {.type FromH0, {.p L301}, .src = "dd L301 ; ioresult == false as n = -1"}, /* dd L301 ; ioresult == false as n = -1 10960 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( n n )"}, /* dd M_dup ; ( n n ) 10968 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 10976 */
- {.type FromH0, {.p L302}, .src = "dd L302 ; ( 0 )"}, /* dd L302 ; ( 0 ) 10984 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; n > 0. if n == 4096, error out. ( n n )"}, /* dd M_dup ; n > 0. if n == 4096, error out. ( n n ) 10992 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11000 */
- {.type Absolute, {.p 4096}}, /* dd 4096 ; ( n n 4096 ) 11008 */
- {.type FromH0, {.p M_equal}, .src = "dd M_equal ; ( n n==4096 )"}, /* dd M_equal ; ( n n==4096 ) 11016 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump ; ( n )"}, /* dd M_cjump ; ( n ) 11024 */
- {.type FromH0, {.p L303}, .src = "dd L303 ; n < 4096 ( n )"}, /* dd L303 ; n < 4096 ( n ) 11032 */
- {.type FromH0, {.p MV_Sourcebuf}, .src = "dd MV_Sourcebuf ; n == 4096 ( n )"}, /* dd MV_Sourcebuf ; n == 4096 ( n ) 11040 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; ( n tib )"}, /* dd M_fetch ; ( n tib ) 11048 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap ; ( tib n )"}, /* dd M_xswap ; ( tib n ) 11056 */
- {.type FromH0, {.p C_type}, .src = "dd C_type ; show the long line and an error message"}, /* dd C_type ; show the long line and an error message 11064 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11072 */
- {.type FromH0, {.p L304}, .src = "dd L304"}, /* dd L304 11080 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11088 */
- {.type Absolute, {.p 37}}, /* dd 37 11096 */
- {.type FromH0, {.p C_type}, .src = "dd C_type ; show the error message"}, /* dd C_type ; show the error message 11104 */
- {.type FromH0, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 11112 */
- {.type FromH0, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 11120 */
- {.type FromH0, {.p C_1minus}, .src = "dd C_1minus ; n-- to avoid parsing the newline character"}, /* dd C_1minus ; n-- to avoid parsing the newline character 11128 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon ; ( n ) n = number of bytes read"}, /* dd M_exitcolon ; ( n ) n = number of bytes read 11136 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11144 */
- {.type FromH0, {.p L305}, .src = "dd L305"}, /* dd L305 11152 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11160 */
- {.type Absolute, {.p 12}}, /* dd 12 11168 */
- {.type FromH0, {.p C_type}, .src = "dd C_type ; show the error message"}, /* dd C_type ; show the error message 11176 */
- {.type FromH0, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 11184 */
- {.type FromH0, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 11192 */
- {.type FromH0, {.p MV_Eof}, .src = "dd MV_Eof ; n == 0, set Eof"}, /* dd MV_Eof ; n == 0, set Eof 11200 */
- {.type FromH0, {.p C_on}, .src = "dd C_on ; EOF"}, /* dd C_on ; EOF 11208 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon ; ( 0 )"}, /* dd M_exitcolon ; ( 0 ) 11216 */
-/* ; loops through 1 character at a time until a newline unlike accept-line which gets the line in one call. */ {.type Header, {.hdr { 10, "accept-key", /* C_accept_key = 11240 */ colon }}}, /* CENTRY "accept-key" accept_key 10 ; ( a n -- n ) get line or n chars or EOF from input and store at a using key h 11248 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap ; ( n a -- )"}, /* dd M_xswap ; ( n a -- ) 11256 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( n a a -- )"}, /* dd M_dup ; ( n a a -- ) 11264 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 11272 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( n -- ) (R a a -- )"}, /* dd M_rpush ; ( n -- ) (R a a -- ) 11280 */
- {.type FromH0, {.p C_qdup}, .src = "dd C_qdup ; ( n n -- ) (R a a -- )"}, /* dd C_qdup ; ( n n -- ) (R a a -- ) 11288 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump ; (if)"}, /* dd M_cjump ; (if) 11296 */
- {.type FromH0, {.p L149}, .src = "dd L149 ; n == 0"}, /* dd L149 ; n == 0 11304 */
- {.type FromH0, {.p C_key}, .src = "dd C_key ; n > 0 ( n -- n c )"}, /* dd C_key ; n > 0 ( n -- n c ) 11312 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( -- n c c )"}, /* dd M_dup ; ( -- n c c ) 11320 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11328 */
- {.type Absolute, {.p 10}}, /* dd 10 ; ( -- n c c 10 ) 11336 */
- {.type FromH0, {.p M_equal}, .src = "dd M_equal ; ( n c c 10 -- n c f ) checking for newline"}, /* dd M_equal ; ( n c c 10 -- n c f ) checking for newline 11344 */
- {.type FromH0, {.p M_over}, .src = "dd M_over ; ( -- n c f c )"}, /* dd M_over ; ( -- n c f c ) 11352 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11360 */
- {.type Absolute, {.p -1}}, /* dd -1 ; ( -- n c f c -1 ) 11368 */
- {.type FromH0, {.p M_equal}, .src = "dd M_equal ; ( -- n c f1 f2 )"}, /* dd M_equal ; ( -- n c f1 f2 ) 11376 */
- {.type FromH0, {.p M_binor}, .src = "dd M_binor ; ( -- n c f )"}, /* dd M_binor ; ( -- n c f ) 11384 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 11392 */
- {.type FromH0, {.p L150}, .src = "dd L150"}, /* dd L150 11400 */
- {.type FromH0, {.p C_2drop}, .src = "dd C_2drop ; n == -1 || n == 10 ( -- )"}, /* dd C_2drop ; n == -1 || n == 10 ( -- ) 11408 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 11416 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 11424 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus ; ( -- a2-a1 )"}, /* dd M_minus ; ( -- a2-a1 ) 11432 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon ; ( -- n ) (R -- )"}, /* dd M_exitcolon ; ( -- n ) (R -- ) 11440 */
- {.type FromH0, {.p M_rfetch}, .src = "dd M_rfetch ; ( n c a -- ) (R a a -- )"}, /* dd M_rfetch ; ( n c a -- ) (R a a -- ) 11448 */
- {.type FromH0, {.p M_cstore}, .src = "dd M_cstore ; store the character at a"}, /* dd M_cstore ; store the character at a 11456 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( n a -- ) (R a -- )"}, /* dd M_rpop ; ( n a -- ) (R a -- ) 11464 */
- {.type FromH0, {.p C_1plus}, .src = "dd C_1plus"}, /* dd C_1plus 11472 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( n -- ) (R a1 -- a1 a2 ) a1 = begin address a2 = current address"}, /* dd M_rpush ; ( n -- ) (R a1 -- a1 a2 ) a1 = begin address a2 = current address 11480 */
- {.type FromH0, {.p C_1minus}, .src = "dd C_1minus ; ( n -- n-1 )"}, /* dd C_1minus ; ( n -- n-1 ) 11488 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 11496 */
- {.type FromH0, {.p L148}, .src = "dd L148 ; loop again for the next character"}, /* dd L148 ; loop again for the next character 11504 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( -- a2 ) (R a1 a2 -- a1 )"}, /* dd M_rpop ; ( -- a2 ) (R a1 a2 -- a1 ) 11512 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( a2 a1 -- ) (R a1 -- )"}, /* dd M_rpop ; ( a2 a1 -- ) (R a1 -- ) 11520 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus ; ( a2 a1 -- a2-a1 )"}, /* dd M_minus ; ( a2 a1 -- a2-a1 ) 11528 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 11536 */
- {.type Header, {.hdr { 5, "query", /* C_query = 11552 */ colon }}}, /* CENTRY "query" query 5 ; read from input stream into the Text Input Buffer h 11560 */
- {.type FromH0, {.p MV_Eof}, .src = "dd MV_Eof"}, /* dd MV_Eof 11568 */
- {.type FromH0, {.p C_off}, .src = "dd C_off ; clear EOF flag"}, /* dd C_off ; clear EOF flag 11576 */
- {.type FromH0, {.p M_Tib}, .src = "dd M_Tib ; constant puts address of tibuffer on the top"}, /* dd M_Tib ; constant puts address of tibuffer on the top 11584 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11592 */
- {.type Absolute, {.p 4096}}, /* dd 4096 ; ( tibuffer -- tibuffer 4096 ) 11600 */
- {.type FromH0, {.p C_accept}, .src = "dd C_accept ; ( tibuffer 4096 -- n )"}, /* dd C_accept ; ( tibuffer 4096 -- n ) 11608 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( n -- n n )"}, /* dd M_dup ; ( n -- n n ) 11616 */
- {.type FromH0, {.p C_0eq}, .src = "dd C_0eq ; ( n n -- n f )"}, /* dd C_0eq ; ( n n -- n f ) 11624 */
- {.type FromH0, {.p MV_Eof}, .src = "dd MV_Eof"}, /* dd MV_Eof 11632 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 11640 */
- {.type FromH0, {.p M_binand}, .src = "dd M_binand ; n == 0 && EOF"}, /* dd M_binand ; n == 0 && EOF 11648 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 11656 */
- {.type FromH0, {.p L152}, .src = "dd L152 ; false condition"}, /* dd L152 ; false condition 11664 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop ; n == 0 && EOF ( n -- )"}, /* dd M_drop ; n == 0 && EOF ( n -- ) 11672 */
- {.type FromH0, {.p C_qrestore_input}, .src = "dd C_qrestore_input"}, /* dd C_qrestore_input 11680 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 11688 */
- {.type FromH0, {.p L153}, .src = "dd L153"}, /* dd L153 11696 */
- {.type FromH0, {.p MV_toLimit}, .src = "dd MV_toLimit"}, /* dd MV_toLimit 11704 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; number of characters to read >Limit = n"}, /* dd M_store ; number of characters to read >Limit = n 11712 */
- {.type FromH0, {.p MV_toIn}, .src = "dd MV_toIn"}, /* dd MV_toIn 11720 */
- {.type FromH0, {.p C_off}, .src = "dd C_off ; start from 0 >In = 0"}, /* dd C_off ; start from 0 >In = 0 11728 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 11736 */
- {.type Header, {.hdr { 6, "refill", /* C_refill = 11752 */ colon }}}, /* CENTRY "refill" refill 6 ; no more refills when there is no 'Acceptvec h 11760 */
- {.type FromH0, {.p MV_Acceptvec}, .src = "dd MV_Acceptvec"}, /* dd MV_Acceptvec 11768 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 11776 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 11784 */
- {.type FromH0, {.p L155}, .src = "dd L155"}, /* dd L155 11792 */
- {.type FromH0, {.p C_false}, .src = "dd C_false"}, /* dd C_false 11800 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 11808 */
- {.type FromH0, {.p C_query}, .src = "dd C_query"}, /* dd C_query 11816 */
- {.type FromH0, {.p C_true}, .src = "dd C_true"}, /* dd C_true 11824 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 11832 */
- {.type Header, {.hdr { 8, "findname", /* C_findname = 11856 */ colon }}}, /* CENTRY "findname" findname 8 ; ( a1 -- a2 f ) ; loop through the dictionary names h 11864 */
- {.type FromH0, {.p MV_Findadr}, .src = "dd MV_Findadr"}, /* dd MV_Findadr 11872 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 11880 */
- {.type FromH0, {.p M_Dtop}, .src = "dd M_Dtop"}, /* dd M_Dtop 11888 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; get latest dictionary link"}, /* dd M_fetch ; get latest dictionary link 11896 */
- {.type FromH0, {.p C_qdup}, .src = "dd C_qdup"}, /* dd C_qdup 11904 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 11912 */
- {.type FromH0, {.p L159}, .src = "dd L159 ; seached until the first dictionary entry get out"}, /* dd L159 ; seached until the first dictionary entry get out 11920 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( a -- a a )"}, /* dd M_dup ; ( a -- a a ) 11928 */
- {.type FromH0, {.p C_cellplus}, .src = "dd C_cellplus ; ( a a -- a a+8) lenth + initial name address"}, /* dd C_cellplus ; ( a a -- a a+8) lenth + initial name address 11936 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch ; ( a a+8 -- a immediate|hidden|len) length + initial name"}, /* dd M_cfetch ; ( a a+8 -- a immediate|hidden|len) length + initial name 11944 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11952 */
- {.type Absolute, {.p 64}}, /* dd 64 ; check the reveal'ed flag 1=hidden, 0=reveal 11960 */
- {.type FromH0, {.p M_binand}, .src = "dd M_binand ; if hidden, goto L161 else L160"}, /* dd M_binand ; if hidden, goto L161 else L160 11968 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 11976 */
- {.type FromH0, {.p L160}, .src = "dd L160"}, /* dd L160 11984 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; smudge'd dictionary entry, get the previous entry"}, /* dd M_fetch ; smudge'd dictionary entry, get the previous entry 11992 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 12000 */
- {.type FromH0, {.p L161}, .src = "dd L161"}, /* dd L161 12008 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( a1 -- a1 a1)"}, /* dd M_dup ; ( a1 -- a1 a1) 12016 */
- {.type FromH0, {.p C_cellplus}, .src = "dd C_cellplus ; ( a1 a1 -- a1 a1+8)"}, /* dd C_cellplus ; ( a1 a1 -- a1 a1+8) 12024 */
- {.type FromH0, {.p C_count}, .src = "dd C_count ; ( a1 a1+8 -- a1 a1+8+1 n )"}, /* dd C_count ; ( a1 a1+8 -- a1 a1+8+1 n ) 12032 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12040 */
- {.type Absolute, {.p 63}}, /* dd 63 12048 */
- {.type FromH0, {.p M_binand}, .src = "dd M_binand ; ( a1 a1+8+1 n 63 -- a1 a1+8+1 n&63=len )"}, /* dd M_binand ; ( a1 a1+8+1 n 63 -- a1 a1+8+1 n&63=len ) 12056 */
- {.type FromH0, {.p MV_Findadr}, .src = "dd MV_Findadr"}, /* dd MV_Findadr 12064 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 12072 */
- {.type FromH0, {.p C_count}, .src = "dd C_count ; ( a1 a1+8+1 len=n&63 a2 -- a1 a1+8+1 n&63 a2+1 n2 )"}, /* dd C_count ; ( a1 a1+8+1 len=n&63 a2 -- a1 a1+8+1 n&63 a2+1 n2 ) 12080 */
- {.type FromH0, {.p C_compare}, .src = "dd C_compare ; ( a1 a1+8+1 len=n&63 a2+1 n2 -- a1 f ) compare dictionary entry with name"}, /* dd C_compare ; ( a1 a1+8+1 len=n&63 a2+1 n2 -- a1 f ) compare dictionary entry with name 12088 */
- {.type FromH0, {.p C_0eq}, .src = "dd C_0eq ; found a match?"}, /* dd C_0eq ; found a match? 12096 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 12104 */
- {.type FromH0, {.p L162}, .src = "dd L162 ; no match"}, /* dd L162 ; no match 12112 */
- {.type FromH0, {.p C_cellplus}, .src = "dd C_cellplus ; match found"}, /* dd C_cellplus ; match found 12120 */
- {.type FromH0, {.p C_true}, .src = "dd C_true"}, /* dd C_true 12128 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 12136 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 12144 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 12152 */
- {.type FromH0, {.p L158}, .src = "dd L158"}, /* dd L158 12160 */
- {.type FromH0, {.p MV_Findadr}, .src = "dd MV_Findadr"}, /* dd MV_Findadr 12168 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 12176 */
- {.type FromH0, {.p C_false}, .src = "dd C_false"}, /* dd C_false 12184 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 12192 */
- {.type Header, {.hdr { 4, "find", /* C_find = 12208 */ colon }}}, /* CENTRY "find" find 4 ; ( a1 -- a2 f )? h 12216 */
- {.type FromH0, {.p C_findname}, .src = "dd C_findname"}, /* dd C_findname 12224 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 12232 */
- {.type FromH0, {.p L164}, .src = "dd L164"}, /* dd L164 12240 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 12248 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 12256 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 12264 */
- {.type FromH0, {.p M_over}, .src = "dd M_over"}, /* dd M_over 12272 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12280 */
- {.type Absolute, {.p 63}}, /* dd 63 12288 */
- {.type FromH0, {.p M_binand}, .src = "dd M_binand"}, /* dd M_binand 12296 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 12304 */
- {.type FromH0, {.p C_1plus}, .src = "dd C_1plus"}, /* dd C_1plus 12312 */
- {.type FromH0, {.p C_aligned}, .src = "dd C_aligned"}, /* dd C_aligned 12320 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 12328 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12336 */
- {.type Absolute, {.p 128}}, /* dd 128 12344 */
- {.type FromH0, {.p M_binand}, .src = "dd M_binand"}, /* dd M_binand 12352 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 12360 */
- {.type FromH0, {.p L165}, .src = "dd L165"}, /* dd L165 12368 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12376 */
- {.type Absolute, {.p 1}}, /* dd 1 12384 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 12392 */
- {.type FromH0, {.p L166}, .src = "dd L166"}, /* dd L166 12400 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12408 */
- {.type Absolute, {.p -1}}, /* dd -1 12416 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 12424 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 12432 */
- {.type FromH0, {.p L167}, .src = "dd L167"}, /* dd L167 12440 */
- {.type FromH0, {.p C_false}, .src = "dd C_false"}, /* dd C_false 12448 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 12456 */
- {.type Header, {.hdr { 1, "'", /* C_single_quote = 12472 */ colon }}}, /* CENTRY "'" single_quote 1 h 12480 */
- {.type FromH0, {.p C_bl}, .src = "dd C_bl"}, /* dd C_bl 12488 */
- {.type FromH0, {.p C_word}, .src = "dd C_word"}, /* dd C_word 12496 */
- {.type FromH0, {.p C_find}, .src = "dd C_find"}, /* dd C_find 12504 */
- {.type FromH0, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 12512 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 12520 */
- {.type FromH0, {.p L169}, .src = "dd L169"}, /* dd L169 12528 */
- {.type FromH0, {.p C_space}, .src = "dd C_space"}, /* dd C_space 12536 */
- {.type FromH0, {.p C_count}, .src = "dd C_count"}, /* dd C_count 12544 */
- {.type FromH0, {.p C_type}, .src = "dd C_type"}, /* dd C_type 12552 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12560 */
- {.type FromH0, {.p L170}, .src = "dd L170"}, /* dd L170 12568 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12576 */
- {.type Absolute, {.p 3}}, /* dd 3 12584 */
- {.type FromH0, {.p C_type}, .src = "dd C_type"}, /* dd C_type 12592 */
- {.type FromH0, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 12600 */
- {.type FromH0, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 12608 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 12616 */
- {.type Header, {.hdr { 6, "?stack", /* C_qstack = 12632 */ colon }}}, /* CENTRY "?stack" qstack 6 h 12640 */
- {.type FromH0, {.p M_stackptr}, .src = "dd M_stackptr"}, /* dd M_stackptr 12648 */
- {.type FromH0, {.p M_S0}, .src = "dd M_S0"}, /* dd M_S0 12656 */
- {.type FromH0, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 12664 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 12672 */
- {.type FromH0, {.p L172}, .src = "dd L172"}, /* dd L172 12680 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12688 */
- {.type FromH0, {.p L173}, .src = "dd L173"}, /* dd L173 12696 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12704 */
- {.type Absolute, {.p 16}}, /* dd 16 12712 */
- {.type FromH0, {.p C_type}, .src = "dd C_type"}, /* dd C_type 12720 */
- {.type FromH0, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 12728 */
- {.type FromH0, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 12736 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 12744 */
- {.type FromH0, {.p MC_STDOUT}, .src = "dd MC_STDOUT ; ( str -- str 1) ; debug code to show the word found"}, /* dd MC_STDOUT ; ( str -- str 1) ; debug code to show the word found 12752 */
- {.type FromH0, {.p M_over}, .src = "dd M_over ; ( str 1 str )"}, /* dd M_over ; ( str 1 str ) 12760 */
- {.type FromH0, {.p C_count}, .src = "dd C_count ; ( str 1 a n)"}, /* dd C_count ; ( str 1 a n) 12768 */
- {.type FromH0, {.p M_syswrite}, .src = "dd M_syswrite"}, /* dd M_syswrite 12776 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop ; drop the return value of write"}, /* dd M_drop ; drop the return value of write 12784 */
- {.type Header, {.hdr { 9, "interpret", /* C_interpret = 12808 */ colon }}}, /* CENTRY "interpret" interpret 9 ; there is stuff in TIB to be interpreted >In and >Limit are set h 12816 */
- {.type FromH0, {.p C_bl}, .src = "dd C_bl"}, /* dd C_bl 12824 */
- {.type FromH0, {.p C_word}, .src = "dd C_word ; ( bl -- a ) a = address of counted string"}, /* dd C_word ; ( bl -- a ) a = address of counted string 12832 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 12840 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 12848 */
- {.type FromH0, {.p C_0neq}, .src = "dd C_0neq"}, /* dd C_0neq 12856 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 12864 */
- {.type FromH0, {.p L176}, .src = "dd L176 ; count at a = 0, drop a and exit"}, /* dd L176 ; count at a = 0, drop a and exit 12872 */
- {.type FromH0, {.p C_find}, .src = "dd C_find ; ( a -- a1 f ) a = address of counted string"}, /* dd C_find ; ( a -- a1 f ) a = address of counted string 12880 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 12888 */
- {.type FromH0, {.p L177}, .src = "dd L177"}, /* dd L177 12896 */
- {.type FromH0, {.p M_execute}, .src = "dd M_execute ; found in dictionary, execute"}, /* dd M_execute ; found in dictionary, execute 12904 */
- {.type FromH0, {.p C_qstack}, .src = "dd C_qstack"}, /* dd C_qstack 12912 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 12920 */
- {.type FromH0, {.p L178}, .src = "dd L178"}, /* dd L178 12928 */
- {.type FromH0, {.p C_count}, .src = "dd C_count"}, /* dd C_count 12936 */
- {.type FromH0, {.p C_number}, .src = "dd C_number"}, /* dd C_number 12944 */
- {.type FromH0, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 12952 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 12960 */
- {.type FromH0, {.p L179}, .src = "dd L179"}, /* dd L179 12968 */
- {.type FromH0, {.p C_space}, .src = "dd C_space ; the word is neither in the dictionary nor a number"}, /* dd C_space ; the word is neither in the dictionary nor a number 12976 */
- {.type FromH0, {.p C_type}, .src = "dd C_type ; show the word"}, /* dd C_type ; show the word 12984 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12992 */
- {.type FromH0, {.p L180}, .src = "dd L180 ; error I?"}, /* dd L180 ; error I? 13000 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13008 */
- {.type Absolute, {.p 3}}, /* dd 3 13016 */
- {.type FromH0, {.p C_type}, .src = "dd C_type"}, /* dd C_type 13024 */
- {.type FromH0, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 13032 */
- {.type FromH0, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 13040 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 13048 */
- {.type FromH0, {.p L175}, .src = "dd L175"}, /* dd L175 13056 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop ; count at a = 0 ( a -- )"}, /* dd M_drop ; count at a = 0 ( a -- ) 13064 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 13072 */
- {.type Header, {.hdr { 6, "create", /* C_create = 13088 */ colon }}}, /* CENTRY "create" create 6 ; compiles dictionary header until the pfa (link, len, name, cfa) h 13096 */
- {.type FromH0, {.p C_align}, .src = "dd C_align ; sets Dp = aligned here"}, /* dd C_align ; sets Dp = aligned here 13104 */
- {.type FromH0, {.p C_here}, .src = "dd C_here ; ( -- here )"}, /* dd C_here ; ( -- here ) 13112 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( -- ) (R -- linkaddr )"}, /* dd M_rpush ; ( -- ) (R -- linkaddr ) 13120 */
- {.type FromH0, {.p M_Dtop}, .src = "dd M_Dtop ; ( -- Dtop ) (R -- linkaddr )"}, /* dd M_Dtop ; ( -- Dtop ) (R -- linkaddr ) 13128 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; ( Dtop -- dtop ) (R -- linkaddr )"}, /* dd M_fetch ; ( Dtop -- dtop ) (R -- linkaddr ) 13136 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma ; ( dtop -- ) (R -- linkaddr )"}, /* dd C_comma ; ( dtop -- ) (R -- linkaddr ) 13144 */
- {.type FromH0, {.p C_bl}, .src = "dd C_bl"}, /* dd C_bl 13152 */
- {.type FromH0, {.p C_word}, .src = "dd C_word ; get the word from the input stream ( c -- a ) skip any c. Placed the counted string in a (as in Wordbuf)"}, /* dd C_word ; get the word from the input stream ( c -- a ) skip any c. Placed the counted string in a (as in Wordbuf) 13160 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( a -- a a ) (R -- linkaddr )"}, /* dd M_dup ; ( a -- a a ) (R -- linkaddr ) 13168 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch ; ( a a -- a len ) (R -- linkaddr )"}, /* dd M_cfetch ; ( a a -- a len ) (R -- linkaddr ) 13176 */
- {.type FromH0, {.p C_here}, .src = "dd C_here ; ( a len -- a len here ) (R -- linkaddr )"}, /* dd C_here ; ( a len -- a len here ) (R -- linkaddr ) 13184 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap ; ( a len here -- a here len ) (R -- linkaddr )"}, /* dd M_xswap ; ( a len here -- a here len ) (R -- linkaddr ) 13192 */
- {.type FromH0, {.p C_1plus}, .src = "dd C_1plus ; ( a here len -- a here len+1 ) (R -- linkaddr ) using len+1 to copy even the length byte"}, /* dd C_1plus ; ( a here len -- a here len+1 ) (R -- linkaddr ) using len+1 to copy even the length byte 13200 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( a here len+1 -- a here len+1 len+1 ) (R -- linkaddr )"}, /* dd M_dup ; ( a here len+1 -- a here len+1 len+1 ) (R -- linkaddr ) 13208 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( a here len+1 len+1 -- a here len+1 ) (R -- linkaddr len+1 )"}, /* dd M_rpush ; ( a here len+1 len+1 -- a here len+1 ) (R -- linkaddr len+1 ) 13216 */
- {.type FromH0, {.p M_cmove}, .src = "dd M_cmove ; ( a here len+1 -- ) (R -- linkaddr len+1 )"}, /* dd M_cmove ; ( a here len+1 -- ) (R -- linkaddr len+1 ) 13224 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( -- len+1 ) (R -- linkaddr )"}, /* dd M_rpop ; ( -- len+1 ) (R -- linkaddr ) 13232 */
- {.type FromH0, {.p C_allot}, .src = "dd C_allot ; ( -- ) (R -- linkaddr ) here = here+len+1"}, /* dd C_allot ; ( -- ) (R -- linkaddr ) here = here+len+1 13240 */
- {.type FromH0, {.p C_align}, .src = "dd C_align ; sets Dp = aligned here"}, /* dd C_align ; sets Dp = aligned here 13248 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13256 */
- {.type FromH0, {.p M_variable}, .src = "dd M_variable"}, /* dd M_variable 13264 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; ( -- variablecfa) (R -- linkaddr )"}, /* dd M_fetch ; ( -- variablecfa) (R -- linkaddr ) 13272 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma ; ( -- ) put the variablecfa into the cfa"}, /* dd C_comma ; ( -- ) put the variablecfa into the cfa 13280 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( -- linkaddr) (R -- )"}, /* dd M_rpop ; ( -- linkaddr) (R -- ) 13288 */
- {.type FromH0, {.p M_Dtop}, .src = "dd M_Dtop"}, /* dd M_Dtop 13296 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; Dtop = just created link address"}, /* dd M_store ; Dtop = just created link address 13304 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 13312 */
- {.type Header, {.hdr { 8, "variable", /* C_variable = 13336 */ colon }}}, /* CENTRY "variable" variable 8 ; compile to put the vhere then on the stack h 13344 */
- {.type FromH0, {.p C_create}, .src = "dd C_create"}, /* dd C_create 13352 */
- {.type FromH0, {.p C_vhere}, .src = "dd C_vhere"}, /* dd C_vhere 13360 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma ; put the next available variable location in pfa"}, /* dd C_comma ; put the next available variable location in pfa 13368 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13376 */
- {.type Absolute, {.p 1}}, /* dd 1 13384 */
- {.type FromH0, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 13392 */
- {.type FromH0, {.p C_vallot}, .src = "dd C_vallot ; vhere = vhere+8, stored at Vp"}, /* dd C_vallot ; vhere = vhere+8, stored at Vp 13400 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 13408 */
- {.type Header, {.hdr { 8, "constant", /* C_constant = 13432 */ colon }}}, /* CENTRY "constant" constant 8 ; ( n -- ) do the same as variable but change the cfa to (constant) h 13440 */
- {.type FromH0, {.p C_create}, .src = "dd C_create ; create dictionary header upto the cfa"}, /* dd C_create ; create dictionary header upto the cfa 13448 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13456 */
- {.type FromH0, {.p M_constant}, .src = "dd M_constant"}, /* dd M_constant 13464 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; ( Contstantcfa -- (constant) )"}, /* dd M_fetch ; ( Contstantcfa -- (constant) ) 13472 */
- {.type FromH0, {.p C_here}, .src = "dd C_here ; ( (constant) -- (constant) here )"}, /* dd C_here ; ( (constant) -- (constant) here ) 13480 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13488 */
- {.type Absolute, {.p 1}}, /* dd 1 13496 */
- {.type FromH0, {.p C_cells}, .src = "dd C_cells ; ( (constant) here -- (constant) here 8 )"}, /* dd C_cells ; ( (constant) here -- (constant) here 8 ) 13504 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus ; ( (constant) here 8 -- (constant) here-8 )"}, /* dd M_minus ; ( (constant) here 8 -- (constant) here-8 ) 13512 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; ( (constant) here-8 -- ) changed cfa from (variable) to (constant) "}, /* dd M_store ; ( (constant) here-8 -- ) changed cfa from (variable) to (constant) 13520 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma ; store n into the dictionary"}, /* dd C_comma ; store n into the dictionary 13528 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 13536 */
- {.type Header, {.hdr { 9, "immediate", /* C_immediate = 13560 */ colon }}}, /* CENTRY "immediate" immediate 9 h 13568 */
- {.type FromH0, {.p M_Dp}, .src = "dd M_Dp"}, /* dd M_Dp 13576 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 13584 */
- {.type FromH0, {.p C_cellplus}, .src = "dd C_cellplus"}, /* dd C_cellplus 13592 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 13600 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 13608 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13616 */
- {.type Absolute, {.p 128}}, /* dd 128 13624 */
- {.type FromH0, {.p M_binor}, .src = "dd M_binor"}, /* dd M_binor 13632 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 13640 */
- {.type FromH0, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 13648 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 13656 */
- {.type Header, {.hdr { 4, ">cfa", /* C_tocfa = 13672 */ colon }}}, /* CENTRY ">cfa" tocfa 4 h 13680 */
- {.type FromH0, {.p C_count}, .src = "dd C_count"}, /* dd C_count 13688 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13696 */
- {.type Absolute, {.p 63}}, /* dd 63 13704 */
- {.type FromH0, {.p M_binand}, .src = "dd M_binand"}, /* dd M_binand 13712 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 13720 */
- {.type FromH0, {.p C_aligned}, .src = "dd C_aligned"}, /* dd C_aligned 13728 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 13736 */
- {.type Header, {.hdr { 7, "compile", /* C_compile = 13752 */ colon }}}, /* CENTRY "compile" compile 7 h 13760 */
- {.type FromH0, {.p C_findname}, .src = "dd C_findname"}, /* dd C_findname 13768 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 13776 */
- {.type FromH0, {.p L188}, .src = "dd L188"}, /* dd L188 13784 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 13792 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 13800 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13808 */
- {.type Absolute, {.p 128}}, /* dd 128 13816 */
- {.type FromH0, {.p M_binand}, .src = "dd M_binand"}, /* dd M_binand 13824 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 13832 */
- {.type FromH0, {.p L189}, .src = "dd L189"}, /* dd L189 13840 */
- {.type FromH0, {.p C_tocfa}, .src = "dd C_tocfa ; immediate"}, /* dd C_tocfa ; immediate 13848 */
- {.type FromH0, {.p M_execute}, .src = "dd M_execute"}, /* dd M_execute 13856 */
- {.type FromH0, {.p C_qstack}, .src = "dd C_qstack"}, /* dd C_qstack 13864 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 13872 */
- {.type FromH0, {.p L190}, .src = "dd L190"}, /* dd L190 13880 */
- {.type FromH0, {.p C_tocfa}, .src = "dd C_tocfa"}, /* dd C_tocfa 13888 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 13896 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 13904 */
- {.type FromH0, {.p L191}, .src = "dd L191"}, /* dd L191 13912 */
- {.type FromH0, {.p C_count}, .src = "dd C_count"}, /* dd C_count 13920 */
- {.type FromH0, {.p C_number}, .src = "dd C_number"}, /* dd C_number 13928 */
- {.type FromH0, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 13936 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 13944 */
- {.type FromH0, {.p L192}, .src = "dd L192"}, /* dd L192 13952 */
- {.type FromH0, {.p C_space}, .src = "dd C_space"}, /* dd C_space 13960 */
- {.type FromH0, {.p C_type}, .src = "dd C_type"}, /* dd C_type 13968 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13976 */
- {.type FromH0, {.p L193}, .src = "dd L193"}, /* dd L193 13984 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13992 */
- {.type Absolute, {.p 3}}, /* dd 3 14000 */
- {.type FromH0, {.p C_type}, .src = "dd C_type"}, /* dd C_type 14008 */
- {.type FromH0, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 14016 */
- {.type FromH0, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 14024 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 14032 */
- {.type FromH0, {.p L194}, .src = "dd L194"}, /* dd L194 14040 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14048 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14056 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 14064 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 14072 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14080 */
- {.type Header, {.hdr { 1, "]", /* C_close_bracket = 14096 */ colon }}}, /* CENTRY "]" close_bracket 1 h 14104 */
- {.type FromH0, {.p MV_State}, .src = "dd MV_State"}, /* dd MV_State 14112 */
- {.type FromH0, {.p C_on}, .src = "dd C_on"}, /* dd C_on 14120 */
- {.type FromH0, {.p C_bl}, .src = "dd C_bl"}, /* dd C_bl 14128 */
- {.type FromH0, {.p C_word}, .src = "dd C_word"}, /* dd C_word 14136 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 14144 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 14152 */
- {.type FromH0, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 14160 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 14168 */
- {.type FromH0, {.p L197}, .src = "dd L197"}, /* dd L197 14176 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 14184 */
- {.type FromH0, {.p C_refill}, .src = "dd C_refill ; no more refills when there is no Acceptvec. Is it a problem? did not dig through to figure out"}, /* dd C_refill ; no more refills when there is no Acceptvec. Is it a problem? did not dig through to figure out 14192 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 14200 */
- {.type FromH0, {.p L198}, .src = "dd L198"}, /* dd L198 14208 */
- {.type FromH0, {.p C_compile}, .src = "dd C_compile"}, /* dd C_compile 14216 */
- {.type FromH0, {.p MV_State}, .src = "dd MV_State"}, /* dd MV_State 14224 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 14232 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 14240 */
- {.type FromH0, {.p L199}, .src = "dd L199"}, /* dd L199 14248 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 14256 */
- {.type FromH0, {.p L196}, .src = "dd L196"}, /* dd L196 14264 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14272 */
- {.type IHeader, {.hdr { 1, "[", /* CI_open_bracket = 14288 */ colon }}}, /* CIENTRY "[" open_bracket 1 h 14296 */
- {.type FromH0, {.p MV_State}, .src = "dd MV_State"}, /* dd MV_State 14304 */
- {.type FromH0, {.p C_off}, .src = "dd C_off"}, /* dd C_off 14312 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14320 */
- {.type Header, {.hdr { 6, "smudge", /* C_smudge = 14336 */ colon }}}, /* CENTRY "smudge" smudge 6 h 14344 */
- {.type FromH0, {.p M_Dp}, .src = "dd M_Dp"}, /* dd M_Dp 14352 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 14360 */
- {.type FromH0, {.p C_cellplus}, .src = "dd C_cellplus"}, /* dd C_cellplus 14368 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 14376 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 14384 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14392 */
- {.type Absolute, {.p 64}}, /* dd 64 14400 */
- {.type FromH0, {.p M_binor}, .src = "dd M_binor"}, /* dd M_binor 14408 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 14416 */
- {.type FromH0, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 14424 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14432 */
- {.type Header, {.hdr { 6, "reveal", /* C_reveal = 14448 */ colon }}}, /* CENTRY "reveal" reveal 6 h 14456 */
- {.type FromH0, {.p M_Dp}, .src = "dd M_Dp"}, /* dd M_Dp 14464 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 14472 */
- {.type FromH0, {.p C_cellplus}, .src = "dd C_cellplus"}, /* dd C_cellplus 14480 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 14488 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 14496 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14504 */
- {.type Absolute, {.p 64}}, /* dd 64 14512 */
- {.type FromH0, {.p C_invert}, .src = "dd C_invert"}, /* dd C_invert 14520 */
- {.type FromH0, {.p M_binand}, .src = "dd M_binand"}, /* dd M_binand 14528 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 14536 */
- {.type FromH0, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 14544 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14552 */
- {.type Header, {.hdr { 1, ":", /* C_colon = 14568 */ colon }}}, /* CENTRY ":" colon 1 h 14576 */
- {.type FromH0, {.p C_create}, .src = "dd C_create ; create a dictionary header with (variable) at cfa"}, /* dd C_create ; create a dictionary header with (variable) at cfa 14584 */
- {.type FromH0, {.p C_smudge}, .src = "dd C_smudge"}, /* dd C_smudge 14592 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14600 */
- {.type FromH0, {.p M_colon}, .src = "dd M_colon"}, /* dd M_colon 14608 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; ( Coloncfa -- (colon) ) fetches the cfa of M_colon"}, /* dd M_fetch ; ( Coloncfa -- (colon) ) fetches the cfa of M_colon 14616 */
- {.type FromH0, {.p C_here}, .src = "dd C_here ; ( (colon) -- (colon) here )"}, /* dd C_here ; ( (colon) -- (colon) here ) 14624 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14632 */
- {.type Absolute, {.p 1}}, /* dd 1 14640 */
- {.type FromH0, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 14648 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus ; ( (colon) here -- (colon) here-8 )"}, /* dd M_minus ; ( (colon) here -- (colon) here-8 ) 14656 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; ( (colon) here-8 -- ) change the cfa from (variable) to colon"}, /* dd M_store ; ( (colon) here-8 -- ) change the cfa from (variable) to colon 14664 */
- {.type FromH0, {.p C_close_bracket}, .src = "dd C_close_bracket"}, /* dd C_close_bracket 14672 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14680 */
- {.type IHeader, {.hdr { 1, ";", /* CI_semicolon = 14696 */ colon }}}, /* CIENTRY ";" semicolon 1 h 14704 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14712 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14720 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 14728 */
- {.type FromH0, {.p MV_State}, .src = "dd MV_State"}, /* dd MV_State 14736 */
- {.type FromH0, {.p C_off}, .src = "dd C_off"}, /* dd C_off 14744 */
- {.type FromH0, {.p C_reveal}, .src = "dd C_reveal"}, /* dd C_reveal 14752 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14760 */
- {.type IHeader, {.hdr { 7, "recurse", /* CI_recurse = 14776 */ colon }}}, /* CIENTRY "recurse" recurse 7 h 14784 */
- {.type FromH0, {.p M_Dp}, .src = "dd M_Dp"}, /* dd M_Dp 14792 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 14800 */
- {.type FromH0, {.p C_cellplus}, .src = "dd C_cellplus"}, /* dd C_cellplus 14808 */
- {.type FromH0, {.p C_tocfa}, .src = "dd C_tocfa"}, /* dd C_tocfa 14816 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 14824 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14832 */
- {.type Header, {.hdr { 4, "char", /* C_char = 14848 */ colon }}}, /* CENTRY "char" char 4 ; ( -- c ) fetch the first character of the next word from input h 14856 */
- {.type FromH0, {.p C_bl}, .src = "dd C_bl"}, /* dd C_bl 14864 */
- {.type FromH0, {.p C_word}, .src = "dd C_word ; ( c -- a ) puts the address of the counted string from the input on the stack"}, /* dd C_word ; ( c -- a ) puts the address of the counted string from the input on the stack 14872 */
- {.type FromH0, {.p C_1plus}, .src = "dd C_1plus ; skip the count"}, /* dd C_1plus ; skip the count 14880 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch ; fetch the first character"}, /* dd M_cfetch ; fetch the first character 14888 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14896 */
- {.type Header, {.hdr { 7, "literal", /* C_literal = 14912 */ colon }}}, /* CENTRY "literal" literal 7 ; ( n -- ) adds (literal) n to the dictionary h 14920 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14928 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14936 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 14944 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 14952 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14960 */
- {.type Header, {.hdr { 8, "sliteral", /* C_sliteral = 14984 */ colon }}}, /* CENTRY "sliteral" sliteral 8 ; ( -- ) adds (sliteral) a n to the dictionary h 14992 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15000 */
- {.type FromH0, {.p M_sliteral}, .src = "dd M_sliteral"}, /* dd M_sliteral 15008 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma ; adds (sliteral) to the dictionary"}, /* dd C_comma ; adds (sliteral) to the dictionary 15016 */
- {.type FromH0, {.p C_here}, .src = "dd C_here ; ( -- here)"}, /* dd C_here ; ( -- here) 15024 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15032 */
- {.type Absolute, {.p 34}}, /* dd 34 ; ascii value of " 15040 */
- {.type FromH0, {.p C_parse}, .src = "dd C_parse ; ( here \" -- here a ) \" = word delimiter. a = address of counted string (in Wordbuf)."}, /* dd C_parse ; ( here \" -- here a ) \" = word delimiter. a = address of counted string (in Wordbuf). 15048 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( here a -- here a a )"}, /* dd M_dup ; ( here a -- here a a ) 15056 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch ; ( here a a -- here a n )"}, /* dd M_cfetch ; ( here a a -- here a n ) 15064 */
- {.type FromH0, {.p C_1plus}, .src = "dd C_1plus ; ( here a n -- here a n+1 ) n+1 as 1 for the count and n for the length of the string"}, /* dd C_1plus ; ( here a n -- here a n+1 ) n+1 as 1 for the count and n for the length of the string 15072 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( here a n+1 -- here a ) (R -- n+1)"}, /* dd M_rpush ; ( here a n+1 -- here a ) (R -- n+1) 15080 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap ; ( here a -- a here ) (R -- n+1)"}, /* dd M_xswap ; ( here a -- a here ) (R -- n+1) 15088 */
- {.type FromH0, {.p M_rfetch}, .src = "dd M_rfetch ; ( a here -- a here n+1 ) (R -- n+1 )"}, /* dd M_rfetch ; ( a here -- a here n+1 ) (R -- n+1 ) 15096 */
- {.type FromH0, {.p M_cmove}, .src = "dd M_cmove ; ( a here n+1 -- ) moves n+1 from a to here"}, /* dd M_cmove ; ( a here n+1 -- ) moves n+1 from a to here 15104 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( -- n+1 ) (R -- )"}, /* dd M_rpop ; ( -- n+1 ) (R -- ) 15112 */
- {.type FromH0, {.p C_allot}, .src = "dd C_allot ; ( n+1 -- ) here = here+n+1"}, /* dd C_allot ; ( n+1 -- ) here = here+n+1 15120 */
- {.type FromH0, {.p C_align}, .src = "dd C_align ; align here"}, /* dd C_align ; align here 15128 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15136 */
- {.type Header, {.hdr { 6, "string", /* C_string = 15152 */ colon }}}, /* CENTRY "string" string 6 ; ( c -- ) h 15160 */
- {.type FromH0, {.p C_word}, .src = "dd C_word"}, /* dd C_word 15168 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 15176 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 15184 */
- {.type FromH0, {.p C_1plus}, .src = "dd C_1plus"}, /* dd C_1plus 15192 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 15200 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 15208 */
- {.type FromH0, {.p M_rfetch}, .src = "dd M_rfetch"}, /* dd M_rfetch 15216 */
- {.type FromH0, {.p M_cmove}, .src = "dd M_cmove"}, /* dd M_cmove 15224 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 15232 */
- {.type FromH0, {.p C_allot}, .src = "dd C_allot"}, /* dd C_allot 15240 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15248 */
- {.type IHeader, {.hdr { 6, "[char]", /* CI_char_brackets = 15264 */ colon }}}, /* CIENTRY "[char]" char_brackets 6 ; take the next character from the input stream during compilation h 15272 */
- {.type FromH0, {.p C_bl}, .src = "dd C_bl"}, /* dd C_bl 15280 */
- {.type FromH0, {.p C_word}, .src = "dd C_word"}, /* dd C_word 15288 */
- {.type FromH0, {.p C_1plus}, .src = "dd C_1plus"}, /* dd C_1plus 15296 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 15304 */
- {.type FromH0, {.p C_literal}, .src = "dd C_literal"}, /* dd C_literal 15312 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15320 */
- {.type IHeader, {.hdr { 3, "[']", /* CI_quote_brackets = 15336 */ colon }}}, /* CIENTRY "[']" quote_brackets 3 ; take the address of next token from the input stream during compilation h 15344 */
- {.type FromH0, {.p C_single_quote}, .src = "dd C_single_quote"}, /* dd C_single_quote 15352 */
- {.type FromH0, {.p C_literal}, .src = "dd C_literal"}, /* dd C_literal 15360 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15368 */
- {.type IHeader, {.hdr { 1, "(", /* CI_openparen = 15384 */ colon }}}, /* CIENTRY "(" openparen 1 ; ignore until ) from the input stream during compilation h 15392 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15400 */
- {.type Absolute, {.p 41}}, /* dd 41 15408 */
- {.type FromH0, {.p C_parse}, .src = "dd C_parse"}, /* dd C_parse 15416 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 15424 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15432 */
-/* ; if the line is longer than Tib, then skipping this line is not good enough. hence, throwing an error when >Limit == Tib length */ {.type IHeader, {.hdr { 1, "\\", /* CI_backslash = 15448 */ colon }}}, /* CIENTRY "\\" backslash 1 ; when there is no Acceptvec, find a newline in the buffer and skip until that h 15456 */
- {.type FromH0, {.p MV_Acceptvec}, .src = "dd MV_Acceptvec"}, /* dd MV_Acceptvec 15464 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 15472 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 15480 */
- {.type FromH0, {.p L214}, .src = "dd L214 ; there is no Acceptvec, we are processing a buffer"}, /* dd L214 ; there is no Acceptvec, we are processing a buffer 15488 */
- {.type FromH0, {.p MV_toLimit}, .src = "dd MV_toLimit ; there is an Acceptvec, skip the rest of this line"}, /* dd MV_toLimit ; there is an Acceptvec, skip the rest of this line 15496 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 15504 */
- {.type FromH0, {.p MV_toIn}, .src = "dd MV_toIn"}, /* dd MV_toIn 15512 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 15520 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15528 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15536 */
- {.type Absolute, {.p 10}}, /* dd 10 15544 */
- {.type FromH0, {.p C_parse}, .src = "dd C_parse ; find the next 10 = LF character"}, /* dd C_parse ; find the next 10 = LF character 15552 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop ; skip all characters not equal to 10"}, /* dd M_drop ; skip all characters not equal to 10 15560 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15568 */
- {.type Header, {.hdr { 8, "(?abort)", /* C_qabort_parens = 15592 */ colon }}}, /* CENTRY "(?abort)" qabort_parens 8 h 15600 */
- {.type FromH0, {.p MV_State}, .src = "dd MV_State"}, /* dd MV_State 15608 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 15616 */
- {.type FromH0, {.p L217}, .src = "dd L217"}, /* dd L217 15624 */
- {.type FromH0, {.p C_space}, .src = "dd C_space"}, /* dd C_space 15632 */
- {.type FromH0, {.p C_type}, .src = "dd C_type"}, /* dd C_type 15640 */
- {.type FromH0, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 15648 */
- {.type FromH0, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 15656 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 15664 */
- {.type FromH0, {.p L218}, .src = "dd L218"}, /* dd L218 15672 */
- {.type FromH0, {.p C_2drop}, .src = "dd C_2drop"}, /* dd C_2drop 15680 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15688 */
- {.type IHeader, {.hdr { 6, "abort\"", /* CI_abort_double_quote = 15704 */ colon }}}, /* CIENTRY "abort\"" abort_double_quote 6 h 15712 */
- {.type FromH0, {.p C_sliteral}, .src = "dd C_sliteral"}, /* dd C_sliteral 15720 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15728 */
- {.type FromH0, {.p C_qabort_parens}, .src = "dd C_qabort_parens"}, /* dd C_qabort_parens 15736 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 15744 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15752 */
- {.type Header, {.hdr { 1, "\"", /* C_double_quote = 15768 */ colon }}}, /* CENTRY "\"" double_quote 1 ; ( | .. " -- 'text count ) stores counted string in the dictionary and also leaves the address and count of the string on the stack - to use strings at the interpreter prompt h 15776 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15784 */
- {.type Absolute, {.p 34}}, /* dd 34 15792 */
- {.type FromH0, {.p C_word}, .src = "dd C_word"}, /* dd C_word 15800 */
- {.type FromH0, {.p C_count}, .src = "dd C_count"}, /* dd C_count 15808 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 15816 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 15824 */
- {.type FromH0, {.p M_rfetch}, .src = "dd M_rfetch"}, /* dd M_rfetch 15832 */
- {.type FromH0, {.p M_cmove}, .src = "dd M_cmove"}, /* dd M_cmove 15840 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 15848 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 15856 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 15864 */
- {.type FromH0, {.p C_allot}, .src = "dd C_allot"}, /* dd C_allot 15872 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15880 */
- {.type Header, {.hdr { 2, "c\"", /* C_cdouble_quote = 15896 */ colon }}}, /* CENTRY "c\"" cdouble_quote 2 ; ( | ..." -- 'counted-string ) stores counted string in the dictionary and also leaves the address of the counted string on the stack. For use in interpretive mode. shouldn't this be using pad? h 15904 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15912 */
- {.type Absolute, {.p 34}}, /* dd 34 ; ( -- \" ) 15920 */
- {.type FromH0, {.p C_word}, .src = "dd C_word ; ( \" -- a ) a = counted string address. a will be in Wordbuf"}, /* dd C_word ; ( \" -- a ) a = counted string address. a will be in Wordbuf 15928 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( a -- a a)"}, /* dd M_dup ; ( a -- a a) 15936 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch ; ( a a -- a n )"}, /* dd M_cfetch ; ( a a -- a n ) 15944 */
- {.type FromH0, {.p C_1plus}, .src = "dd C_1plus ; ( a n -- a n+1 )"}, /* dd C_1plus ; ( a n -- a n+1 ) 15952 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( a n -- a ) (R -- n+1)"}, /* dd M_rpush ; ( a n -- a ) (R -- n+1) 15960 */
- {.type FromH0, {.p C_here}, .src = "dd C_here ; ( a -- a here ) (R -- n+1)"}, /* dd C_here ; ( a -- a here ) (R -- n+1) 15968 */
- {.type FromH0, {.p M_rfetch}, .src = "dd M_rfetch ; ( a here -- a here n+1) (R -- n+1)"}, /* dd M_rfetch ; ( a here -- a here n+1) (R -- n+1) 15976 */
- {.type FromH0, {.p M_cmove}, .src = "dd M_cmove ; move counted string from a to here"}, /* dd M_cmove ; move counted string from a to here 15984 */
- {.type FromH0, {.p C_here}, .src = "dd C_here ; ( -- here )"}, /* dd C_here ; ( -- here ) 15992 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( here -- here n+1 )(R -- )"}, /* dd M_rpop ; ( here -- here n+1 )(R -- ) 16000 */
- {.type FromH0, {.p C_allot}, .src = "dd C_allot ; ( here n+1 -- here) here += n+1"}, /* dd C_allot ; ( here n+1 -- here) here += n+1 16008 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16016 */
- {.type IHeader, {.hdr { 2, "s\"", /* CI_sdouble_quote = 16032 */ colon }}}, /* CIENTRY "s\"" sdouble_quote 2 ; ( | ..." -- 'text count ) add the string from the input stream to the dictionary as (sliteral) count string - at run-time puts the ( -- addr n) of the counted string on the stack. h 16040 */
- {.type FromH0, {.p C_sliteral}, .src = "dd C_sliteral"}, /* dd C_sliteral 16048 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16056 */
- {.type IHeader, {.hdr { 2, ".\"", /* CI_dotstr = 16072 */ colon }}}, /* CIENTRY ".\"" dotstr 2 ; ( | ..." -- ) do what s" does and then add a type word to the dictionary to print that string h 16080 */
- {.type FromH0, {.p C_sliteral}, .src = "dd C_sliteral"}, /* dd C_sliteral 16088 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16096 */
- {.type FromH0, {.p C_type}, .src = "dd C_type"}, /* dd C_type 16104 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16112 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16120 */
- {.type IHeader, {.hdr { 2, "if", /* CI_if = 16136 */ colon }}}, /* CIENTRY "if" if 2 h 16144 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16152 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 16160 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16168 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 16176 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16184 */
- {.type Absolute, {.p 0}}, /* dd 0 16192 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16200 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16208 */
- {.type IHeader, {.hdr { 4, "else", /* CI_else = 16224 */ colon }}}, /* CIENTRY "else" else 4 h 16232 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16240 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 16248 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16256 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 16264 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 16272 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16280 */
- {.type Absolute, {.p 0}}, /* dd 0 16288 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16296 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 16304 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 16312 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 16320 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 16328 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16336 */
- {.type IHeader, {.hdr { 4, "then", /* CI_then = 16352 */ colon }}}, /* CIENTRY "then" then 4 h 16360 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 16368 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 16376 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 16384 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16392 */
- {.type IHeader, {.hdr { 5, "begin", /* CI_begin = 16408 */ colon }}}, /* CIENTRY "begin" begin 5 h 16416 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 16424 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16432 */
- {.type IHeader, {.hdr { 5, "again", /* CI_again = 16448 */ colon }}}, /* CIENTRY "again" again 5 h 16456 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16464 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 16472 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16480 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16488 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16496 */
- {.type IHeader, {.hdr { 5, "until", /* CI_until = 16512 */ colon }}}, /* CIENTRY "until" until 5 h 16520 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16528 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 16536 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16544 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16552 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16560 */
- {.type IHeader, {.hdr { 5, "while", /* CI_while = 16576 */ colon }}}, /* CIENTRY "while" while 5 h 16584 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16592 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 16600 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16608 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 16616 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16624 */
- {.type Absolute, {.p 0}}, /* dd 0 16632 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16640 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16648 */
- {.type IHeader, {.hdr { 6, "repeat", /* CI_repeat = 16664 */ colon }}}, /* CIENTRY "repeat" repeat 6 h 16672 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16680 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 16688 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16696 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 16704 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16712 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 16720 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 16728 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 16736 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16744 */
- {.type IHeader, {.hdr { 2, "do", /* CI_do = 16760 */ colon }}}, /* CIENTRY "do" do 2 h 16768 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16776 */
- {.type FromH0, {.p M_doinit}, .src = "dd M_doinit ; compile this into the definition. Puts limit and index on the run stack at run time"}, /* dd M_doinit ; compile this into the definition. Puts limit and index on the run stack at run time 16784 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma ; puts (do) into the dictionary"}, /* dd C_comma ; puts (do) into the dictionary 16792 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16800 */
- {.type Absolute, {.p 0}}, /* dd 0 ; ( -- 0 ) 16808 */
- {.type FromH0, {.p C_here}, .src = "dd C_here ; ( 0 -- 0 here1 )"}, /* dd C_here ; ( 0 -- 0 here1 ) 16816 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16824 */
- {.type IHeader, {.hdr { 4, "loop", /* CI_loop = 16840 */ colon }}}, /* CIENTRY "loop" loop 4 ; ( 0 here1 -- ) h 16848 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16856 */
- {.type FromH0, {.p M_doloop}, .src = "dd M_doloop ; ( 0 here1 -- 0 here1 (loop) )"}, /* dd M_doloop ; ( 0 here1 -- 0 here1 (loop) ) 16864 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma ; dictionary has (do) ... (loop) ( 0 here1 (loop) -- 0 here1 )"}, /* dd C_comma ; dictionary has (do) ... (loop) ( 0 here1 (loop) -- 0 here1 ) 16872 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma ; dictionary has (do) ... (loop) here1 ( 0 here1 -- 0 )"}, /* dd C_comma ; dictionary has (do) ... (loop) here1 ( 0 here1 -- 0 ) 16880 */
- {.type FromH0, {.p C_qdup}, .src = "dd C_qdup"}, /* dd C_qdup 16888 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 16896 */
- {.type FromH0, {.p L234}, .src = "dd L234"}, /* dd L234 16904 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 16912 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 16920 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 16928 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16936 */
- {.type IHeader, {.hdr { 5, "+loop", /* CI_ploop = 16952 */ colon }}}, /* CIENTRY "+loop" ploop 5 h 16960 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16968 */
- {.type FromH0, {.p M_doploop}, .src = "dd M_doploop"}, /* dd M_doploop 16976 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16984 */
- {.type FromH0, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16992 */
- {.type FromH0, {.p C_qdup}, .src = "dd C_qdup"}, /* dd C_qdup 17000 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 17008 */
- {.type FromH0, {.p L236}, .src = "dd L236"}, /* dd L236 17016 */
- {.type FromH0, {.p C_here}, .src = "dd C_here"}, /* dd C_here 17024 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 17032 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 17040 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17048 */
- {.type Header, {.hdr { 3, "w/o", /* C_wo = 17064 */ colon }}}, /* CENTRY "w/o" wo 3 h 17072 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17080 */
- {.type Absolute, {.p 1}}, /* dd 1 17088 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17096 */
- {.type Absolute, {.p 512}}, /* dd 512 17104 */
- {.type FromH0, {.p M_binor}, .src = "dd M_binor"}, /* dd M_binor 17112 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17120 */
- {.type Absolute, {.p 64}}, /* dd 64 17128 */
- {.type FromH0, {.p M_binor}, .src = "dd M_binor"}, /* dd M_binor 17136 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17144 */
- {.type Header, {.hdr { 3, "r/o", /* C_ro = 17160 */ colon }}}, /* CENTRY "r/o" ro 3 h 17168 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17176 */
- {.type Absolute, {.p 0}}, /* dd 0 17184 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17192 */
- {.type Header, {.hdr { 3, "r/w", /* C_rw = 17208 */ colon }}}, /* CENTRY "r/w" rw 3 h 17216 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17224 */
- {.type Absolute, {.p 2}}, /* dd 2 17232 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17240 */
- {.type Header, {.hdr { 7, "cstring", /* C_cstring = 17256 */ colon }}}, /* CENTRY "cstring" cstring 7 ; ( 'text count o -- o+'pad+1024 ) \ copy string to pad+o and add a null byte at the end h 17264 */
- {.type FromH0, {.p C_pad}, .src = "dd C_pad ; ( 'text count o 'pad )"}, /* dd C_pad ; ( 'text count o 'pad ) 17272 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17280 */
- {.type Absolute, {.p 1024}}, /* dd 1024 ; ( 'text count o 'pad 1024 ) 17288 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus ; ( 'text count o 'pad+1024 )"}, /* dd M_plus ; ( 'text count o 'pad+1024 ) 17296 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus ; ( 'text count o+'pad+1024 ) o=padoffset"}, /* dd M_plus ; ( 'text count o+'pad+1024 ) o=padoffset 17304 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 17312 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( 'text count o+'pad+1024 ) (R o+'pad+1024 )"}, /* dd M_rpush ; ( 'text count o+'pad+1024 ) (R o+'pad+1024 ) 17320 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap ; ( 'text o+'pad+1024 count ) (R o+'pad+1024 )"}, /* dd M_xswap ; ( 'text o+'pad+1024 count ) (R o+'pad+1024 ) 17328 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( 'text o+'pad+1024 count count ) (R o+'pad+1024 )"}, /* dd M_dup ; ( 'text o+'pad+1024 count count ) (R o+'pad+1024 ) 17336 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( 'text o+'pad+1024 count ) (R o+'pad+1024 count )"}, /* dd M_rpush ; ( 'text o+'pad+1024 count ) (R o+'pad+1024 count ) 17344 */
- {.type FromH0, {.p M_cmove}, .src = "dd M_cmove ; moves the filename from 'text to o+'pad+1024"}, /* dd M_cmove ; moves the filename from 'text to o+'pad+1024 17352 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17360 */
- {.type Absolute, {.p 0}}, /* dd 0 ; ( 0 ) (R o+'pad+1024 count ) 17368 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( 0 count ) (R o+'pad+1024 )"}, /* dd M_rpop ; ( 0 count ) (R o+'pad+1024 ) 17376 */
- {.type FromH0, {.p M_rfetch}, .src = "dd M_rfetch ; ( 0 count o+'pad+1024 ) (R o+'pad+1024 )"}, /* dd M_rfetch ; ( 0 count o+'pad+1024 ) (R o+'pad+1024 ) 17384 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus ; ( 0 count+o+'pad+1024 ) (R o+'pad+1024 )"}, /* dd M_plus ; ( 0 count+o+'pad+1024 ) (R o+'pad+1024 ) 17392 */
- {.type FromH0, {.p M_cstore}, .src = "dd M_cstore ; makes the filename to a null terminated string"}, /* dd M_cstore ; makes the filename to a null terminated string 17400 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( o+'pad+1024 )"}, /* dd M_rpop ; ( o+'pad+1024 ) 17408 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17416 */
- {.type Header, {.hdr { 8, "cstring0", /* C_cstring0 = 17440 */ colon }}}, /* CENTRY "cstring0" cstring0 8 ; ( 'text count -- 'text ) \ copy string to pad+1024 and add a null byte at the end h 17448 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17456 */
- {.type Absolute, {.p 0}}, /* dd 0 17464 */
- {.type FromH0, {.p C_cstring}, .src = "dd C_cstring"}, /* dd C_cstring 17472 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17480 */
- {.type Header, {.hdr { 8, "cstring1", /* C_cstring1 = 17504 */ colon }}}, /* CENTRY "cstring1" cstring1 8 ; ( 'text count -- 'text ) \ copy string to pad+1536 and add a null byte at the end h 17512 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17520 */
- {.type Absolute, {.p 512}}, /* dd 512 17528 */
- {.type FromH0, {.p C_cstring}, .src = "dd C_cstring"}, /* dd C_cstring 17536 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17544 */
- {.type Header, {.hdr { 9, "open-file", /* C_open_file = 17568 */ colon }}}, /* CENTRY "open-file" open_file 9 ; ( 'text count mode -- fd ioresult ) h 17576 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( 'text count ) (R mode)"}, /* dd M_rpush ; ( 'text count ) (R mode) 17584 */
- {.type FromH0, {.p C_cstring0}, .src = "dd C_cstring0 ; ( 'padtext ) (R mode )"}, /* dd C_cstring0 ; ( 'padtext ) (R mode ) 17592 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( 'padtext mode ) (R )"}, /* dd M_rpop ; ( 'padtext mode ) (R ) 17600 */
- {.type FromH0, {.p M_sysopen}, .src = "dd M_sysopen"}, /* dd M_sysopen 17608 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 17616 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17624 */
- {.type Absolute, {.p -1}}, /* dd -1 17632 */
- {.type FromH0, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 17640 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17648 */
- {.type Header, {.hdr { 10, "close-file", /* C_close_file = 17672 */ colon }}}, /* CENTRY "close-file" close_file 10 ; ( fd -- ioresult ) h 17680 */
- {.type FromH0, {.p M_sysclose}, .src = "dd M_sysclose"}, /* dd M_sysclose 17688 */
- {.type FromH0, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 17696 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17704 */
- {.type Header, {.hdr { 9, "read-file", /* C_read_file = 17728 */ colon }}}, /* CENTRY "read-file" read_file 9 ; ( 'text count fd -- count2 ioresult ) h 17736 */
- {.type FromH0, {.p C_rot}, .src = "dd C_rot ; ( n fd a )"}, /* dd C_rot ; ( n fd a ) 17744 */
- {.type FromH0, {.p C_rot}, .src = "dd C_rot ; ( fd a n )"}, /* dd C_rot ; ( fd a n ) 17752 */
- {.type FromH0, {.p M_sysread}, .src = "dd M_sysread"}, /* dd M_sysread 17760 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 17768 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17776 */
- {.type Absolute, {.p -1}}, /* dd -1 17784 */
- {.type FromH0, {.p C_neq}, .src = "dd C_neq"}, /* dd C_neq 17792 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17800 */
- {.type Header, {.hdr { 10, "write-file", /* C_write_file = 17824 */ colon }}}, /* CENTRY "write-file" write_file 10 ; ( 'text count fd -- ioresult ) h 17832 */
- {.type FromH0, {.p C_rot}, .src = "dd C_rot ; ( n fd a )"}, /* dd C_rot ; ( n fd a ) 17840 */
- {.type FromH0, {.p C_rot}, .src = "dd C_rot ; ( fd a n )"}, /* dd C_rot ; ( fd a n ) 17848 */
- {.type FromH0, {.p M_syswrite}, .src = "dd M_syswrite"}, /* dd M_syswrite 17856 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17864 */
- {.type Absolute, {.p -1}}, /* dd -1 17872 */
- {.type FromH0, {.p C_neq}, .src = "dd C_neq"}, /* dd C_neq 17880 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17888 */
- {.type Header, {.hdr { 15, "reposition-file", /* C_reposition_file = 17912 */ colon }}}, /* CENTRY "reposition-file" reposition_file 15 ; ( type n fd -- ioresult ) h 17920 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap ; ( type fd n )"}, /* dd M_xswap ; ( type fd n ) 17928 */
- {.type FromH0, {.p C_rot}, .src = "dd C_rot ; ( fd n type )"}, /* dd C_rot ; ( fd n type ) 17936 */
- {.type FromH0, {.p M_sysseek}, .src = "dd M_sysseek"}, /* dd M_sysseek 17944 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17952 */
- {.type Absolute, {.p -1}}, /* dd -1 17960 */
- {.type FromH0, {.p C_neq}, .src = "dd C_neq"}, /* dd C_neq 17968 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17976 */
- {.type Header, {.hdr { 7, "?fcheck", /* C_qfcheck = 17992 */ colon }}}, /* CENTRY "?fcheck" qfcheck 7 h 18000 */
- {.type FromH0, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 18008 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 18016 */
- {.type FromH0, {.p L246}, .src = "dd L246"}, /* dd L246 18024 */
- {.type FromH0, {.p C_space}, .src = "dd C_space"}, /* dd C_space 18032 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18040 */
- {.type FromH0, {.p L247}, .src = "dd L247"}, /* dd L247 18048 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18056 */
- {.type Absolute, {.p 9}}, /* dd 9 18064 */
- {.type FromH0, {.p C_type}, .src = "dd C_type"}, /* dd C_type 18072 */
- {.type FromH0, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 18080 */
- {.type FromH0, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 18088 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18096 */
- {.type Header, {.hdr { 11, "create-file", /* C_create_file = 18120 */ colon }}}, /* CENTRY "create-file" create_file 11 ; ( a n mode perm -- fd ioresult ) not part of the original ff. could move this to a forth file. h 18128 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( a n mode ) (R perm)"}, /* dd M_rpush ; ( a n mode ) (R perm) 18136 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( a n ) (R perm mode)"}, /* dd M_rpush ; ( a n ) (R perm mode) 18144 */
- {.type FromH0, {.p C_pad}, .src = "dd C_pad ; ( a n padaddr)"}, /* dd C_pad ; ( a n padaddr) 18152 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18160 */
- {.type Absolute, {.p 1024}}, /* dd 1024 ; ( a n padaddr 1024 ) 18168 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus ; ( a n padaddr+1024 )"}, /* dd M_plus ; ( a n padaddr+1024 ) 18176 */
- {.type FromH0, {.p M_xswap}, .src = "dd M_xswap ; ( a padaddr+1024 n )"}, /* dd M_xswap ; ( a padaddr+1024 n ) 18184 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup ; ( a padaddr+1024 n n )"}, /* dd M_dup ; ( a padaddr+1024 n n ) 18192 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush ; ( a padaddr+1024 n ) (R perm mode n )"}, /* dd M_rpush ; ( a padaddr+1024 n ) (R perm mode n ) 18200 */
- {.type FromH0, {.p M_cmove}, .src = "dd M_cmove ; moves the filename from a to paddaddr+1024"}, /* dd M_cmove ; moves the filename from a to paddaddr+1024 18208 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18216 */
- {.type Absolute, {.p 0}}, /* dd 0 ; ( 0 ) 18224 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( 0 n ) (R perm mode)"}, /* dd M_rpop ; ( 0 n ) (R perm mode) 18232 */
- {.type FromH0, {.p C_pad}, .src = "dd C_pad ; ( 0 n padaddr)"}, /* dd C_pad ; ( 0 n padaddr) 18240 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus ; ( 0 padaddr+n )"}, /* dd M_plus ; ( 0 padaddr+n ) 18248 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18256 */
- {.type Absolute, {.p 1024}}, /* dd 1024 ; ( 0 padaddr+n 1024 ) 18264 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus ; ( 0 padaddr+n+1024 )"}, /* dd M_plus ; ( 0 padaddr+n+1024 ) 18272 */
- {.type FromH0, {.p M_cstore}, .src = "dd M_cstore ; ( ) makes the filename to a null terminated string"}, /* dd M_cstore ; ( ) makes the filename to a null terminated string 18280 */
- {.type FromH0, {.p C_pad}, .src = "dd C_pad"}, /* dd C_pad 18288 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18296 */
- {.type Absolute, {.p 1024}}, /* dd 1024 ; ( padaddr 1024 ) 18304 */
- {.type FromH0, {.p M_plus}, .src = "dd M_plus ; ( padaddr+1024 )"}, /* dd M_plus ; ( padaddr+1024 ) 18312 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( padaddr+1024 mode) (R perm )"}, /* dd M_rpop ; ( padaddr+1024 mode) (R perm ) 18320 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop ; ( padaddr+1024 mode perm ) (R )"}, /* dd M_rpop ; ( padaddr+1024 mode perm ) (R ) 18328 */
- {.type FromH0, {.p M_syscreate}, .src = "dd M_syscreate"}, /* dd M_syscreate 18336 */
- {.type FromH0, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 18344 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18352 */
- {.type Absolute, {.p -1}}, /* dd -1 18360 */
- {.type FromH0, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 18368 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18376 */
- {.type Header, {.hdr { 3, "bye", /* C_bye = 18392 */ colon }}}, /* CENTRY "bye" bye 3 h 18400 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18408 */
- {.type Absolute, {.p 0}}, /* dd 0 18416 */
- {.type FromH0, {.p M_terminate}, .src = "dd M_terminate"}, /* dd M_terminate 18424 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18432 */
- {.type Header, {.hdr { 7, "include", /* C_include = 18448 */ colon }}}, /* CENTRY "include" include 7 ; this does not work h 18456 */
- {.type FromH0, {.p C_bl}, .src = "dd C_bl"}, /* dd C_bl 18464 */
- {.type FromH0, {.p C_word}, .src = "dd C_word"}, /* dd C_word 18472 */
- {.type FromH0, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 18480 */
- {.type FromH0, {.p MV_Acceptvec}, .src = "dd MV_Acceptvec"}, /* dd MV_Acceptvec 18488 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 18496 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 18504 */
- {.type FromH0, {.p L248}, .src = "dd L248 ; when Acceptvec == 0"}, /* dd L248 ; when Acceptvec == 0 18512 */
- {.type FromH0, {.p MV_toLimit}, .src = "dd MV_toLimit ; include ends any further reading from the current input line"}, /* dd MV_toLimit ; include ends any further reading from the current input line 18520 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 18528 */
- {.type FromH0, {.p MV_toIn}, .src = "dd MV_toIn"}, /* dd MV_toIn 18536 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 18544 */
- {.type FromH0, {.p C_save_input}, .src = "dd C_save_input"}, /* dd C_save_input 18552 */
- {.type FromH0, {.p C_default_input}, .src = "dd C_default_input"}, /* dd C_default_input 18560 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18568 */
- {.type FromH0, {.p C_accept_key}, .src = "dd C_accept_key ; as C_accept_line will not get a line per read from non-cons files"}, /* dd C_accept_key ; as C_accept_line will not get a line per read from non-cons files 18576 */
- {.type FromH0, {.p MV_Acceptvec}, .src = "dd MV_Acceptvec"}, /* dd MV_Acceptvec 18584 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 18592 */
- {.type FromH0, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 18600 */
- {.type FromH0, {.p C_count}, .src = "dd C_count"}, /* dd C_count 18608 */
- {.type FromH0, {.p C_ro}, .src = "dd C_ro"}, /* dd C_ro 18616 */
- {.type FromH0, {.p C_open_file}, .src = "dd C_open_file"}, /* dd C_open_file 18624 */
- {.type FromH0, {.p C_qfcheck}, .src = "dd C_qfcheck"}, /* dd C_qfcheck 18632 */
- {.type FromH0, {.p MV_Infd}, .src = "dd MV_Infd"}, /* dd MV_Infd 18640 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 18648 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18656 */
- {.type Header, {.hdr { 5, "crash", /* C_crash = 18672 */ colon }}}, /* CENTRY "crash" crash 5 h 18680 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18688 */
- {.type FromH0, {.p L251}, .src = "dd L251"}, /* dd L251 18696 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18704 */
- {.type Absolute, {.p 30}}, /* dd 30 18712 */
- {.type FromH0, {.p C_type}, .src = "dd C_type"}, /* dd C_type 18720 */
- {.type FromH0, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 18728 */
- {.type FromH0, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 18736 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18744 */
- {.type Header, {.hdr { 4, "quit", /* C_quit = 18760 */ colon }}}, /* CENTRY "quit" quit 4 ; interpreter loop h 18768 */
- {.type FromH0, {.p M_reset}, .src = "dd M_reset ; initialize return stack"}, /* dd M_reset ; initialize return stack 18776 */
- {.type FromH0, {.p M_clear}, .src = "dd M_clear ; SP = sstack_end initialize data stack"}, /* dd M_clear ; SP = sstack_end initialize data stack 18784 */
- {.type FromH0, {.p C_query}, .src = "dd C_query"}, /* dd C_query 18792 */
-/* ; dd MV_toLimit ; show the line read, for debugging *//* ; dd M_fetch *//* ; dd M_Tib *//* ; dd MC_STDOUT *//* ; dd M_fswrite *//* ; dd M_drop ; drop the return value of write *//* ; dd C_cr *//* ; dd C_space */ {.type FromH0, {.p C_interpret}, .src = "dd C_interpret"}, /* dd C_interpret 18800 */
- {.type FromH0, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 18808 */
- {.type FromH0, {.p L253}, .src = "dd L253"}, /* dd L253 18816 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon ; why is this needed?"}, /* dd M_exitcolon ; why is this needed? 18824 */
- {.type Header, {.hdr { 7, "(abort)", /* C_parenabort = 18840 */ colon }}}, /* CENTRY "(abort)" parenabort 7 ; TODO correct below stack notations h 18848 */
- {.type FromH0, {.p MV_State}, .src = "dd MV_State ; ( mv_State -- )"}, /* dd MV_State ; ( mv_State -- ) 18856 */
- {.type FromH0, {.p C_off}, .src = "dd C_off ; off sets variable state = 0"}, /* dd C_off ; off sets variable state = 0 18864 */
- {.type FromH0, {.p MC_STDIN}, .src = "dd MC_STDIN"}, /* dd MC_STDIN 18872 */
- {.type FromH0, {.p MV_Infd}, .src = "dd MV_Infd"}, /* dd MV_Infd 18880 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 18888 */
- {.type FromH0, {.p MC_STDOUT}, .src = "dd MC_STDOUT"}, /* dd MC_STDOUT 18896 */
- {.type FromH0, {.p MV_Outfd}, .src = "dd MV_Outfd"}, /* dd MV_Outfd 18904 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 18912 */
- {.type FromH0, {.p MC_STDERR}, .src = "dd MC_STDERR"}, /* dd MC_STDERR 18920 */
- {.type FromH0, {.p MV_Errfd}, .src = "dd MV_Errfd"}, /* dd MV_Errfd 18928 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 18936 */
- {.type FromH0, {.p C_default_input}, .src = "dd C_default_input"}, /* dd C_default_input 18944 */
- {.type FromH0, {.p C_quit}, .src = "dd C_quit ; quit resets stacks and is the interpreter loop"}, /* dd C_quit ; quit resets stacks and is the interpreter loop 18952 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon ; why is this needed? quit does not return unless it breaks"}, /* dd M_exitcolon ; why is this needed? quit does not return unless it breaks 18960 */
- {.type Header, {.hdr { 7, "oldboot", /* C_oldboot = 18976 */ 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 18984 */
- {.type FromH0, {.p M_reset}, .src = "dd M_reset"}, /* dd M_reset 18992 */
- {.type FromH0, {.p M_clear}, .src = "dd M_clear ; SP = sstack_end"}, /* dd M_clear ; SP = sstack_end 19000 */
- {.type FromH0, {.p M_stackptr}, .src = "dd M_stackptr ; (D -- FFEND)"}, /* dd M_stackptr ; (D -- FFEND) 19008 */
- {.type FromH0, {.p M_S0}, .src = "dd M_S0"}, /* dd M_S0 19016 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; s0 = FFEND"}, /* dd M_store ; s0 = FFEND 19024 */
- {.type FromH0, {.p M_Dp}, .src = "dd M_Dp ; heaptop = heapend"}, /* dd M_Dp ; heaptop = heapend 19032 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; ( heapend -- )"}, /* dd M_fetch ; ( heapend -- ) 19040 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19048 */
- {.type Absolute, {.p 1}}, /* dd 1 ; ( heapend 1 -- ) 19056 */
- {.type FromH0, {.p C_cells}, .src = "dd C_cells ; cells ( heapend 8 -- )"}, /* dd C_cells ; cells ( heapend 8 -- ) 19064 */
- {.type FromH0, {.p M_minus}, .src = "dd M_minus ; ( heapend-8 -- )"}, /* dd M_minus ; ( heapend-8 -- ) 19072 */
- {.type FromH0, {.p M_fetch}, .src = "dd M_fetch ; ( contents_from_heapend-8 -- )"}, /* dd M_fetch ; ( contents_from_heapend-8 -- ) 19080 */
- {.type FromH0, {.p M_Fthargs}, .src = "dd M_Fthargs ; variable args"}, /* dd M_Fthargs ; variable args 19088 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; args = contents_from_heapend-8"}, /* dd M_store ; args = contents_from_heapend-8 19096 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19104 */
- {.type FromH0, {.p C_parenabort}, .src = "dd C_parenabort ; ( (abort) -- )"}, /* dd C_parenabort ; ( (abort) -- ) 19112 */
- {.type FromH0, {.p MV_Abortvec}, .src = "dd MV_Abortvec ; variable abortvec"}, /* dd MV_Abortvec ; variable abortvec 19120 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; variable abortvec = (abort) code address"}, /* dd M_store ; variable abortvec = (abort) code address 19128 */
- {.type FromH0, {.p M_Wordb}, .src = "dd M_Wordb ; constant puts address of wordbuffer on the top of stack"}, /* dd M_Wordb ; constant puts address of wordbuffer on the top of stack 19136 */
- {.type FromH0, {.p MV_Wordbuf}, .src = "dd MV_Wordbuf ; variable wordbuf"}, /* dd MV_Wordbuf ; variable wordbuf 19144 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; variable wordbuf = address of wordbuffer"}, /* dd M_store ; variable wordbuf = address of wordbuffer 19152 */
- {.type FromH0, {.p M_Tib}, .src = "dd M_Tib ; constant puts address of tibuffer on the top of stack"}, /* dd M_Tib ; constant puts address of tibuffer on the top of stack 19160 */
- {.type FromH0, {.p MV_Sourcebuf}, .src = "dd MV_Sourcebuf ; variable sourcebuf"}, /* dd MV_Sourcebuf ; variable sourcebuf 19168 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; variable sourcebuf = address of tibuffer"}, /* dd M_store ; variable sourcebuf = address of tibuffer 19176 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19184 */
+ {.type Header, {.hdr { 2, "s@", /* M_stackptr = 1256 */ stackptr }}}, /* MENTRY "s@" stackptr 2 ; puts PSP on stack. Not a variable hence lower case. h 1264 */
+ {.type Header, {.hdr { 7, "sysbind", /* M_sysbind = 1280 */ sysbind }}}, /* MENTRY "sysbind" sysbind 7 h 1288 */
+ {.type Header, {.hdr { 8, "sysclose", /* M_sysclose = 1312 */ sysclose }}}, /* MENTRY "sysclose" sysclose 8 h 1320 */
+ {.type Header, {.hdr { 9, "syscreate", /* M_syscreate = 1344 */ syscreate }}}, /* MENTRY "syscreate" syscreate 9 h 1352 */
+ {.type Header, {.hdr { 8, "sysmount", /* M_sysmount = 1376 */ sysmount }}}, /* MENTRY "sysmount" sysmount 8 h 1384 */
+ {.type Header, {.hdr { 7, "sysopen", /* M_sysopen = 1400 */ sysopen }}}, /* MENTRY "sysopen" sysopen 7 h 1408 */
+ {.type Header, {.hdr { 7, "sysread", /* M_sysread = 1424 */ sysread }}}, /* MENTRY "sysread" sysread 7 h 1432 */
+ {.type Header, {.hdr { 7, "sysseek", /* M_sysseek = 1448 */ sysseek }}}, /* MENTRY "sysseek" sysseek 7 h 1456 */
+ {.type Header, {.hdr { 8, "syswrite", /* M_syswrite = 1480 */ syswrite }}}, /* MENTRY "syswrite" syswrite 8 h 1488 */
+ {.type Header, {.hdr { 5, "STDIN", /* MC_STDIN = 1504 */ constant }}}, /* MCENTRY "STDIN" STDIN 5 0 ; 3 constants from here CAPITALS h 1512 */
+ {.type Absolute, {.p 0}}, /* 1520 */
+ {.type Header, {.hdr { 6, "STDOUT", /* MC_STDOUT = 1536 */ constant }}}, /* MCENTRY "STDOUT" STDOUT 6 1 h 1544 */
+ {.type Absolute, {.p 1}}, /* 1552 */
+ {.type Header, {.hdr { 6, "STDERR", /* MC_STDERR = 1568 */ constant }}}, /* MCENTRY "STDERR" STDERR 6 2 h 1576 */
+ {.type Absolute, {.p 2}}, /* 1584 */
+ {.type Header, {.hdr { 5, "WORD#", /* MC_WORDNUM = 1600 */ constant }}}, /* MCENTRY "WORD#" WORDNUM 5 0 h 1608 */
+ {.type Absolute, {.p 0}}, /* 1616 */
+ {.type Header, {.hdr { 5, "LINE#", /* MC_LINENUM = 1632 */ constant }}}, /* MCENTRY "LINE#" LINENUM 5 1 h 1640 */
+ {.type Absolute, {.p 1}}, /* 1648 */
+ {.type Header, {.hdr { 12, "DOUBLEQUOTE#", /* MC_DOUBLEQUOTENUM = 1672 */ constant }}}, /* MCENTRY "DOUBLEQUOTE#" DOUBLEQUOTENUM 12 2 h 1680 */
+ {.type Absolute, {.p 2}}, /* 1688 */
+ {.type Header, {.hdr { 11, "CLOSEPAREN#", /* MC_CLOSEPARENNUM = 1712 */ constant }}}, /* MCENTRY "CLOSEPAREN#" CLOSEPARENNUM 11 3 h 1720 */
+ {.type Absolute, {.p 3}}, /* 1728 */
+ {.type Header, {.hdr { 8, "#BUFFERS", /* MC_NBUFFERS = 1752 */ constant }}}, /* MCENTRY "#BUFFERS" NBUFFERS 8 16 h 1760 */
+ {.type Absolute, {.p 16}}, /* 1768 */
+/* ; put address of the defined location on the top of stack *//* ; cannot use H as it is nil in inferno, address where here (next available dictionary cell location) is stored *//* ; here = Dp @ *//* ; these memory locations (HERE, DTOP, etc.) are populated with values by the forth initializer */ {.type Header, {.hdr { 2, "Dp", /* MV_Dp = 1784 */ variable }}}, /* MVDENTRY "Dp" Dp 2 HERE ; here h 1792 */
+ {.type FromH0, {.p HERE }}, /* 1800 0 */
+ {.type Header, {.hdr { 4, "Dtop", /* MV_Dtop = 1816 */ variable }}}, /* MVDENTRY "Dtop" Dtop 4 DTOP ; last defined header h 1824 */
+ {.type FromH0, {.p DTOP }}, /* 1832 0 */
+ {.type Header, {.hdr { 2, "Vp", /* MV_Vp = 1848 */ variable }}}, /* MVDENTRY "Vp" Vp 2 THERE ; here of the variables space h 1856 */
+ {.type FromH0, {.p THERE }}, /* 1864 0 */
+ {.type Header, {.hdr { 3, "Pid", /* MV_Pid = 1880 */ variable }}}, /* MVDENTRY "Pid" Pid 3 FTHPID h 1888 */
+ {.type FromH0, {.p FTHPID }}, /* 1896 0 */
+ {.type Header, {.hdr { 4, "Parentpid", /* MV_Parentpid = 1912 */ variable }}}, /* MVDENTRY "Parentpid" Parentpid 4 FTHPARENTPID h 1920 */
+ {.type FromH0, {.p FTHPARENTPID }}, /* 1928 0 */
+/* ; the below memory locations are left alone as zeros by the initializer */ {.type Header, {.hdr { 2, "S0", /* MV_S0 = 1944 */ variable }}}, /* MVDENTRY "S0" S0 2 PSTACK h 1952 */
+ {.type FromH0, {.p PSTACK }}, /* 1960 0 */
+ {.type Header, {.hdr { 5, "Wordb", /* MV_Wordb = 1976 */ variable }}}, /* MVDENTRY "Wordb" Wordb 5 WORDB h 1984 */
+ {.type FromH0, {.p WORDB }}, /* 1992 0 */
+ {.type Header, {.hdr { 3, "Tib", /* MV_Tib = 2008 */ variable }}}, /* MVDENTRY "Tib" Tib 3 TIB h 2016 */
+ {.type FromH0, {.p TIB }}, /* 2024 0 */
+ {.type Header, {.hdr { 12, "Argsfilename", /* MV_Argsfilename = 2048 */ variable }}}, /* MVDENTRY "Argsfilename" Argsfilename 12 ARGSFILENAME ; counted string populated by forth starter from params h 2056 */
+ {.type FromH0, {.p ARGSFILENAME }}, /* 2064 0 */
+ {.type Header, {.hdr { 5, "Iobuf", /* MV_Iobuf = 2080 */ variable }}}, /* MVENTRY "Iobuf" Iobuf 5 ; the values are not being used from the definition. All are initialized to 0. h 2088 */
+ {.type FromV0, {.p 0 }}, /* 2096 0 */
+ {.type Header, {.hdr { 9, "Sourcebuf", /* MV_Sourcebuf = 2120 */ variable }}}, /* MVENTRY "Sourcebuf" Sourcebuf 9 ; is there a need for this? h 2128 */
+ {.type FromV0, {.p 8 }}, /* 2136 8 */
+ {.type Header, {.hdr { 7, "Wordbuf", /* MV_Wordbuf = 2152 */ variable }}}, /* MVENTRY "Wordbuf" Wordbuf 7 ; is there a need for this? h 2160 */
+ {.type FromV0, {.p 16 }}, /* 2168 16 */
+ {.type Header, {.hdr { 3, ">In", /* MV_toIn = 2184 */ variable }}}, /* MVENTRY ">In" toIn 3 h 2192 */
+ {.type FromV0, {.p 24 }}, /* 2200 24 */
+ {.type Header, {.hdr { 6, ">Limit", /* MV_toLimit = 2216 */ variable }}}, /* MVENTRY ">Limit" toLimit 6 h 2224 */
+ {.type FromV0, {.p 32 }}, /* 2232 32 */
+ {.type Header, {.hdr { 7, "Findadr", /* MV_Findadr = 2248 */ variable }}}, /* MVENTRY "Findadr" Findadr 7 h 2256 */
+ {.type FromV0, {.p 40 }}, /* 2264 40 */
+ {.type Header, {.hdr { 9, "Acceptvec", /* MV_Acceptvec = 2288 */ variable }}}, /* MVENTRY "Acceptvec" Acceptvec 9 h 2296 */
+ {.type FromV0, {.p 48 }}, /* 2304 48 */
+ {.type Header, {.hdr { 9, "Searchlen", /* MV_Searchlen = 2328 */ variable }}}, /* MVENTRY "Searchlen" Searchlen 9 h 2336 */
+ {.type FromV0, {.p 56 }}, /* 2344 56 */
+ {.type Header, {.hdr { 4, "Base", /* MV_Base = 2360 */ variable }}}, /* MVENTRY "Base" Base 4 h 2368 */
+ {.type FromV0, {.p 64 }}, /* 2376 64 */
+ {.type Header, {.hdr { 4, ">Num", /* MV_toNum = 2392 */ variable }}}, /* MVENTRY ">Num" toNum 4 h 2400 */
+ {.type FromV0, {.p 72 }}, /* 2408 72 */
+ {.type Header, {.hdr { 5, "State", /* MV_State = 2424 */ variable }}}, /* MVENTRY "State" State 5 h 2432 */
+ {.type FromV0, {.p 80 }}, /* 2440 80 */
+ {.type Header, {.hdr { 8, "Abortvec", /* MV_Abortvec = 2464 */ variable }}}, /* MVENTRY "Abortvec" Abortvec 8 ; not sure if these 3 can be constants instead? h 2472 */
+ {.type FromV0, {.p 88 }}, /* 2480 88 */
+ {.type Header, {.hdr { 4, "Infd", /* MV_Infd = 2496 */ variable }}}, /* MVENTRY "Infd" Infd 4 h 2504 */
+ {.type FromV0, {.p 96 }}, /* 2512 96 */
+ {.type Header, {.hdr { 5, "Outfd", /* MV_Outfd = 2528 */ variable }}}, /* MVENTRY "Outfd" Outfd 5 h 2536 */
+ {.type FromV0, {.p 104 }}, /* 2544 104 */
+ {.type Header, {.hdr { 5, "Errfd", /* MV_Errfd = 2560 */ variable }}}, /* MVENTRY "Errfd" Errfd 5 h 2568 */
+ {.type FromV0, {.p 112 }}, /* 2576 112 */
+ {.type Header, {.hdr { 3, "Eof", /* MV_Eof = 2592 */ variable }}}, /* MVENTRY "Eof" Eof 3 h 2600 */
+ {.type FromV0, {.p 120 }}, /* 2608 120 */
+ {.type Header, {.hdr { 7, "Ninputs", /* MV_Ninputs = 2624 */ variable }}}, /* MVENTRY "Ninputs" Ninputs 7 h 2632 */
+ {.type FromV0, {.p 128 }}, /* 2640 128 */
+ {.type Header, {.hdr { 2, "H0", /* MV_H0 = 2656 */ variable }}}, /* MVENTRY "H0" H0 2 ; here at startup h 2664 */
+ {.type FromV0, {.p 136 }}, /* 2672 136 */
+ {.type Header, {.hdr { 9, "Bufferfds", /* MV_Bufferfds = 2696 */ variable }}}, /* MVENTRY "Bufferfds" Bufferfds 9 16 h 2704 */
+ {.type FromV0, {.p 144 }}, /* 2712 144 */
+ {.type Header, {.hdr { 15, "Bufferfilenames", /* MV_Bufferfilenames = 2736 */ variable }}}, /* MVENTRY "Bufferfilenames" Bufferfilenames 15 16 ; counted string labels of the searchers populated by boot h 2744 */
+ {.type FromV0, {.p 272 }}, /* 2752 272 */
+ {.type Header, {.hdr { 5, "false", /* C_false = 2768 */ colon }}}, /* CENTRY "false" false 5 h 2776 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2784 */
+ {.type Absolute, {.p 0}}, /* dd 0 2792 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 2800 */
+ {.type Header, {.hdr { 4, "true", /* C_true = 2816 */ colon }}}, /* CENTRY "true" true 4 h 2824 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2832 */
+ {.type Absolute, {.p -1}}, /* dd -1 2840 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 2848 */
+ {.type Header, {.hdr { 2, "bl", /* C_bl = 2864 */ colon }}}, /* CENTRY "bl" bl 2 h 2872 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2880 */
+ {.type Absolute, {.p 32}}, /* dd 32 2888 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 2896 */
+ {.type Header, {.hdr { 2, "on", /* C_on = 2912 */ colon }}}, /* CENTRY "on" on 2 ; ( a -- ) (G stores -1 at a ) h 2920 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2928 */
+ {.type Absolute, {.p -1}}, /* dd -1 2936 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 2944 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 2952 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 2960 */
+ {.type Header, {.hdr { 3, "off", /* C_off = 2976 */ colon }}}, /* CENTRY "off" off 3 ; ( a -- ) (G stores 0 at a ) h 2984 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 2992 */
+ {.type Absolute, {.p 0}}, /* dd 0 3000 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 3008 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 3016 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3024 */
+ {.type Header, {.hdr { 5, ">body", /* C_tobody = 3040 */ colon }}}, /* CENTRY ">body" tobody 5 h 3048 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 3056 */
+ {.type Absolute, {.p 8}}, /* dd 8 3064 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 3072 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3080 */
+ {.type Header, {.hdr { 7, "aligned", /* C_aligned = 3096 */ colon }}}, /* CENTRY "aligned" aligned 7 ; align a number to a multiple of 8 h 3104 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 3112 */
+ {.type Absolute, {.p 7}}, /* dd 7 3120 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 3128 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 3136 */
+ {.type Absolute, {.p -8}}, /* dd -8 3144 */
+ {.type FromDictionary, {.p M_binand}, .src = "dd M_binand"}, /* dd M_binand 3152 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3160 */
+ {.type Header, {.hdr { 5, "cells", /* C_cells = 3176 */ colon }}}, /* CENTRY "cells" cells 5 h 3184 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 3192 */
+ {.type Absolute, {.p 3}}, /* dd 3 ; (index << 2) -> (index << 3) for amd64 3200 */
+ {.type FromDictionary, {.p M_lshift}, .src = "dd M_lshift"}, /* dd M_lshift 3208 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3216 */
+ {.type Header, {.hdr { 6, "cells+", /* C_cells_plus = 3232 */ colon }}}, /* CENTRY "cells+" cells_plus 6 ; ( n1 n2 -- n1+(n2*cellsize) ) h 3240 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 3248 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 3256 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3264 */
+ {.type Header, {.hdr { 5, "cell+", /* C_cell_plus = 3280 */ colon }}}, /* CENTRY "cell+" cell_plus 5 h 3288 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 3296 */
+ {.type Absolute, {.p 1}}, /* dd 1 3304 */
+ {.type FromDictionary, {.p C_cells_plus}, .src = "dd C_cells_plus"}, /* dd C_cells_plus 3312 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3320 */
+ {.type Header, {.hdr { 5, "depth", /* C_depth = 3336 */ colon }}}, /* CENTRY "depth" depth 5 h 3344 */
+ {.type FromDictionary, {.p MV_S0}, .src = "dd MV_S0"}, /* dd MV_S0 3352 */
+ {.type FromDictionary, {.p M_stackptr}, .src = "dd M_stackptr"}, /* dd M_stackptr 3360 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 3368 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 3376 */
+ {.type Absolute, {.p 3}}, /* dd 3 3384 */
+ {.type FromDictionary, {.p M_rshift}, .src = "dd M_rshift"}, /* dd M_rshift 3392 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 3400 */
+ {.type Absolute, {.p 1}}, /* dd 1 3408 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 3416 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3424 */
+ {.type Header, {.hdr { 3, "nip", /* C_nip = 3440 */ colon }}}, /* CENTRY "nip" nip 3 h 3448 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 3456 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 3464 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3472 */
+ {.type Header, {.hdr { 3, "rot", /* C_rot = 3488 */ colon }}}, /* CENTRY "rot" rot 3 h 3496 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 3504 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 3512 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 3520 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 3528 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3536 */
+ {.type Header, {.hdr { 5, "2drop", /* C_2drop = 3552 */ colon }}}, /* CENTRY "2drop" 2drop 5 h 3560 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 3568 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 3576 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3584 */
+ {.type Header, {.hdr { 4, "2dup", /* C_2dup = 3600 */ colon }}}, /* CENTRY "2dup" 2dup 4 h 3608 */
+ {.type FromDictionary, {.p M_over}, .src = "dd M_over"}, /* dd M_over 3616 */
+ {.type FromDictionary, {.p M_over}, .src = "dd M_over"}, /* dd M_over 3624 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3632 */
+ {.type Header, {.hdr { 4, "2nip", /* C_2nip = 3648 */ colon }}}, /* CENTRY "2nip" 2nip 4 h 3656 */
+ {.type FromDictionary, {.p C_nip}, .src = "dd C_nip"}, /* dd C_nip 3664 */
+ {.type FromDictionary, {.p C_nip}, .src = "dd C_nip"}, /* dd C_nip 3672 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3680 */
+ {.type Header, {.hdr { 5, "2swap", /* C_2swap = 3696 */ colon }}}, /* CENTRY "2swap" 2swap 5 h 3704 */
+ {.type FromDictionary, {.p C_rot}, .src = "dd C_rot"}, /* dd C_rot 3712 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 3720 */
+ {.type FromDictionary, {.p C_rot}, .src = "dd C_rot"}, /* dd C_rot 3728 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 3736 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3744 */
+ {.type Header, {.hdr { 4, "?dup", /* C_qdup = 3760 */ colon }}}, /* CENTRY "?dup" qdup 4 ; if (n != 0) ( n -- n n) else ( n -- n ) h 3768 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( n -- n n )"}, /* dd M_dup ; ( n -- n n ) 3776 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( n n -- n n n )"}, /* dd M_dup ; ( n n -- n n n ) 3784 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 3792 */
+ {.type Absolute, {.p 0}}, /* dd 0 ; ( n n n -- n n n 0 ) 3800 */
+ {.type FromDictionary, {.p M_equal}, .src = "dd M_equal ; ( n n n 0 -- n n f )"}, /* dd M_equal ; ( n n n 0 -- n n f ) 3808 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump ; ( n n f -- n n )"}, /* dd M_cjump ; ( n n f -- n n ) 3816 */
+ {.type FromDictionary, {.p L_C_qdup}, .src = "dd L_C_qdup ; when n != 0, go to L20"}, /* dd L_C_qdup ; when n != 0, go to L20 3824 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop ; when n == 0 ( n n -- n)"}, /* dd M_drop ; when n == 0 ( n n -- n) 3832 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3840 */
+ {.type Header, {.hdr { 4, "pick", /* C_pick = 3856 */ colon }}}, /* CENTRY "pick" pick 4 h 3864 */
+ {.type FromDictionary, {.p C_qdup}, .src = "dd C_qdup"}, /* dd C_qdup 3872 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 3880 */
+ {.type FromDictionary, {.p L_C_pick}, .src = "dd L_C_pick"}, /* dd L_C_pick 3888 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 3896 */
+ {.type Absolute, {.p 1}}, /* dd 1 3904 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 3912 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 3920 */
+ {.type FromDictionary, {.p M_stackptr}, .src = "dd M_stackptr"}, /* dd M_stackptr 3928 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 3936 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 3944 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 3952 */
+ {.type FromDictionary, {.p L_C_pick_1}, .src = "dd L_C_pick_1"}, /* dd L_C_pick_1 3960 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 3968 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 3976 */
+ {.type Header, {.hdr { 4, "tuck", /* C_tuck = 3992 */ colon }}}, /* CENTRY "tuck" tuck 4 h 4000 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 4008 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 4016 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 4024 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 4032 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4040 */
+ {.type Header, {.hdr { 1, "/", /* C_divides = 4056 */ colon }}}, /* CENTRY "/" divides 1 h 4064 */
+ {.type FromDictionary, {.p M_slashmod}, .src = "dd M_slashmod"}, /* dd M_slashmod 4072 */
+ {.type FromDictionary, {.p C_nip}, .src = "dd C_nip"}, /* dd C_nip 4080 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4088 */
+ {.type Header, {.hdr { 2, "+!", /* C_plusstore = 4104 */ colon }}}, /* CENTRY "+!" plusstore 2 ; ( n 'a -- ) a@ = a@+n h 4112 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 4120 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 4128 */
+ {.type FromDictionary, {.p C_rot}, .src = "dd C_rot"}, /* dd C_rot 4136 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 4144 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 4152 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 4160 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4168 */
+ {.type Header, {.hdr { 6, "invert", /* C_invert = 4184 */ colon }}}, /* CENTRY "invert" invert 6 h 4192 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4200 */
+ {.type Absolute, {.p -1}}, /* dd -1 4208 */
+ {.type FromDictionary, {.p M_binxor}, .src = "dd M_binxor"}, /* dd M_binxor 4216 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4224 */
+ {.type Header, {.hdr { 3, "mod", /* C_mod = 4240 */ colon }}}, /* CENTRY "mod" mod 3 h 4248 */
+ {.type FromDictionary, {.p M_slashmod}, .src = "dd M_slashmod"}, /* dd M_slashmod 4256 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 4264 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4272 */
+ {.type Header, {.hdr { 2, "1+", /* C_1plus = 4288 */ colon }}}, /* CENTRY "1+" 1plus 2 h 4296 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4304 */
+ {.type Absolute, {.p 1}}, /* dd 1 4312 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 4320 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4328 */
+ {.type Header, {.hdr { 2, "1-", /* C_1minus = 4344 */ colon }}}, /* CENTRY "1-" 1minus 2 h 4352 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4360 */
+ {.type Absolute, {.p 1}}, /* dd 1 4368 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 4376 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4384 */
+ {.type Header, {.hdr { 6, "negate", /* C_negate = 4400 */ colon }}}, /* CENTRY "negate" negate 6 h 4408 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4416 */
+ {.type Absolute, {.p 0}}, /* dd 0 4424 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 4432 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 4440 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4448 */
+ {.type Header, {.hdr { 2, "2*", /* C_2multiplies = 4464 */ colon }}}, /* CENTRY "2*" 2multiplies 2 h 4472 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4480 */
+ {.type Absolute, {.p 1}}, /* dd 1 4488 */
+ {.type FromDictionary, {.p M_lshift}, .src = "dd M_lshift"}, /* dd M_lshift 4496 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4504 */
+ {.type Header, {.hdr { 2, "2/", /* C_2divides = 4520 */ colon }}}, /* CENTRY "2/" 2divides 2 h 4528 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4536 */
+ {.type Absolute, {.p 1}}, /* dd 1 4544 */
+ {.type FromDictionary, {.p M_rshifta}, .src = "dd M_rshifta"}, /* dd M_rshifta 4552 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4560 */
+ {.type Header, {.hdr { 2, "0=", /* C_0eq = 4576 */ colon }}}, /* CENTRY "0=" 0eq 2 h 4584 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4592 */
+ {.type Absolute, {.p 0}}, /* dd 0 4600 */
+ {.type FromDictionary, {.p M_equal}, .src = "dd M_equal"}, /* dd M_equal 4608 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4616 */
+ {.type Header, {.hdr { 2, "0<", /* C_0lt = 4632 */ colon }}}, /* CENTRY "0<" 0lt 2 h 4640 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4648 */
+ {.type Absolute, {.p 0}}, /* dd 0 4656 */
+ {.type FromDictionary, {.p M_less}, .src = "dd M_less"}, /* dd M_less 4664 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4672 */
+ {.type Header, {.hdr { 2, "0>", /* C_0gt = 4688 */ colon }}}, /* CENTRY "0>" 0gt 2 h 4696 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4704 */
+ {.type Absolute, {.p 0}}, /* dd 0 4712 */
+ {.type FromDictionary, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 4720 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4728 */
+ {.type Header, {.hdr { 2, "<>", /* C_neq = 4744 */ colon }}}, /* CENTRY "<>" neq 2 h 4752 */
+ {.type FromDictionary, {.p M_equal}, .src = "dd M_equal"}, /* dd M_equal 4760 */
+ {.type FromDictionary, {.p C_invert}, .src = "dd C_invert"}, /* dd C_invert 4768 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4776 */
+ {.type Header, {.hdr { 3, "0<>", /* C_0neq = 4792 */ colon }}}, /* CENTRY "0<>" 0neq 3 h 4800 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 4808 */
+ {.type Absolute, {.p 0}}, /* dd 0 4816 */
+ {.type FromDictionary, {.p C_neq}, .src = "dd C_neq"}, /* dd C_neq 4824 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4832 */
+ {.type Header, {.hdr { 3, "max", /* C_max = 4848 */ colon }}}, /* CENTRY "max" max 3 h 4856 */
+ {.type FromDictionary, {.p C_2dup}, .src = "dd C_2dup"}, /* dd C_2dup 4864 */
+ {.type FromDictionary, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 4872 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 4880 */
+ {.type FromDictionary, {.p L_C_max}, .src = "dd L_C_max"}, /* dd L_C_max 4888 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 4896 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 4904 */
+ {.type FromDictionary, {.p L_C_max_1}, .src = "dd L_C_max_1"}, /* dd L_C_max_1 4912 */
+ {.type FromDictionary, {.p C_nip}, .src = "dd C_nip"}, /* dd C_nip 4920 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 4928 */
+ {.type Header, {.hdr { 3, "min", /* C_min = 4944 */ colon }}}, /* CENTRY "min" min 3 h 4952 */
+ {.type FromDictionary, {.p C_2dup}, .src = "dd C_2dup"}, /* dd C_2dup 4960 */
+ {.type FromDictionary, {.p M_less}, .src = "dd M_less"}, /* dd M_less 4968 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 4976 */
+ {.type FromDictionary, {.p L_C_min}, .src = "dd L_C_min"}, /* dd L_C_min 4984 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 4992 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 5000 */
+ {.type FromDictionary, {.p L_C_min_1}, .src = "dd L_C_min_1"}, /* dd L_C_min_1 5008 */
+ {.type FromDictionary, {.p C_nip}, .src = "dd C_nip"}, /* dd C_nip 5016 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5024 */
+ {.type Header, {.hdr { 6, "signum", /* C_signum = 5040 */ colon }}}, /* CENTRY "signum" signum 6 h 5048 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 5056 */
+ {.type FromDictionary, {.p C_0gt}, .src = "dd C_0gt"}, /* dd C_0gt 5064 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 5072 */
+ {.type FromDictionary, {.p L_C_signum}, .src = "dd L_C_signum"}, /* dd L_C_signum 5080 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 5088 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 5096 */
+ {.type Absolute, {.p 1}}, /* dd 1 5104 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 5112 */
+ {.type FromDictionary, {.p L_C_signum_1}, .src = "dd L_C_signum_1"}, /* dd L_C_signum_1 5120 */
+ {.type FromDictionary, {.p C_0lt}, .src = "dd C_0lt"}, /* dd C_0lt 5128 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 5136 */
+ {.type FromDictionary, {.p L_C_signum_2}, .src = "dd L_C_signum_2"}, /* dd L_C_signum_2 5144 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 5152 */
+ {.type Absolute, {.p -1}}, /* dd -1 5160 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 5168 */
+ {.type FromDictionary, {.p L_C_signum_3}, .src = "dd L_C_signum_3"}, /* dd L_C_signum_3 5176 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 5184 */
+ {.type Absolute, {.p 0}}, /* dd 0 5192 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5200 */
+ {.type Header, {.hdr { 6, "within", /* C_within = 5216 */ colon }}}, /* CENTRY "within" within 6 h 5224 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 5232 */
+ {.type FromDictionary, {.p M_over}, .src = "dd M_over"}, /* dd M_over 5240 */
+ {.type FromDictionary, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 5248 */
+ {.type FromDictionary, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 5256 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 5264 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 5272 */
+ {.type FromDictionary, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 5280 */
+ {.type FromDictionary, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 5288 */
+ {.type FromDictionary, {.p M_binand}, .src = "dd M_binand"}, /* dd M_binand 5296 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5304 */
+ {.type Header, {.hdr { 3, "abs", /* C_abs = 5320 */ colon }}}, /* CENTRY "abs" abs 3 h 5328 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 5336 */
+ {.type FromDictionary, {.p C_0lt}, .src = "dd C_0lt"}, /* dd C_0lt 5344 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 5352 */
+ {.type FromDictionary, {.p L_C_abs}, .src = "dd L_C_abs"}, /* dd L_C_abs 5360 */
+ {.type FromDictionary, {.p C_negate}, .src = "dd C_negate"}, /* dd C_negate 5368 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5376 */
+ {.type Header, {.hdr { 4, "emit", /* C_emit = 5392 */ colon }}}, /* CENTRY "emit" emit 4 ; ( character -- ) h 5400 */
+ {.type FromDictionary, {.p MV_Iobuf}, .src = "dd MV_Iobuf ; variable iobuf address"}, /* dd MV_Iobuf ; variable iobuf address 5408 */
+ {.type FromDictionary, {.p M_cstore}, .src = "dd M_cstore ; variable iobuf has character"}, /* dd M_cstore ; variable iobuf has character 5416 */
+ {.type FromDictionary, {.p MV_Outfd}, .src = "dd MV_Outfd"}, /* dd MV_Outfd 5424 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch ; outfd"}, /* dd M_fetch ; outfd 5432 */
+ {.type FromDictionary, {.p MV_Iobuf}, .src = "dd MV_Iobuf ; variable iobuf address"}, /* dd MV_Iobuf ; variable iobuf address 5440 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 5448 */
+ {.type Absolute, {.p 1}}, /* dd 1 ; ( outfd iobuf 1 ) 5456 */
+ {.type FromDictionary, {.p M_syswrite}, .src = "dd M_syswrite ; ( 1 iobuf outfd -- )"}, /* dd M_syswrite ; ( 1 iobuf outfd -- ) 5464 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop ; drop the return value of write"}, /* dd M_drop ; drop the return value of write 5472 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5480 */
+ {.type Header, {.hdr { 4, "type", /* C_type = 5496 */ colon }}}, /* CENTRY "type" type 4 ; ( addr n -- ) h 5504 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( addr ) (R n )"}, /* dd M_rpush ; ( addr ) (R n ) 5512 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( ) (R n addr )"}, /* dd M_rpush ; ( ) (R n addr ) 5520 */
+ {.type FromDictionary, {.p MV_Outfd}, .src = "dd MV_Outfd"}, /* dd MV_Outfd 5528 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch ; ( outfd )"}, /* dd M_fetch ; ( outfd ) 5536 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop ; ( outfd addr ) (R n )"}, /* dd M_rpop ; ( outfd addr ) (R n ) 5544 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop ; ( outfd addr n ) (R )"}, /* dd M_rpop ; ( outfd addr n ) (R ) 5552 */
+ {.type FromDictionary, {.p M_syswrite}, .src = "dd M_syswrite ; ( 1 addr n -- )"}, /* dd M_syswrite ; ( 1 addr n -- ) 5560 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop ; drop the return value of write"}, /* dd M_drop ; drop the return value of write 5568 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5576 */
+ {.type Header, {.hdr { 2, "cr", /* C_cr = 5592 */ colon }}}, /* CENTRY "cr" cr 2 h 5600 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 5608 */
+ {.type Absolute, {.p 10}}, /* dd 10 ; ascii value of carriage return 5616 */
+ {.type FromDictionary, {.p C_emit}, .src = "dd C_emit ; emit"}, /* dd C_emit ; emit 5624 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5632 */
+ {.type Header, {.hdr { 5, "space", /* C_space = 5648 */ colon }}}, /* CENTRY "space" space 5 h 5656 */
+ {.type FromDictionary, {.p C_bl}, .src = "dd C_bl"}, /* dd C_bl 5664 */
+ {.type FromDictionary, {.p C_emit}, .src = "dd C_emit"}, /* dd C_emit 5672 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5680 */
+ {.type Header, {.hdr { 5, "emits", /* C_emits = 5696 */ colon }}}, /* CENTRY "emits" emits 5 h 5704 */
+ {.type FromDictionary, {.p C_qdup}, .src = "dd C_qdup"}, /* dd C_qdup 5712 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 5720 */
+ {.type FromDictionary, {.p L_C_emits_1}, .src = "dd L_C_emits_1"}, /* dd L_C_emits_1 5728 */
+ {.type FromDictionary, {.p M_over}, .src = "dd M_over"}, /* dd M_over 5736 */
+ {.type FromDictionary, {.p C_emit}, .src = "dd C_emit"}, /* dd C_emit 5744 */
+ {.type FromDictionary, {.p C_1minus}, .src = "dd C_1minus"}, /* dd C_1minus 5752 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 5760 */
+ {.type FromDictionary, {.p L_C_emits}, .src = "dd L_C_emits"}, /* dd L_C_emits 5768 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 5776 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5784 */
+ {.type Header, {.hdr { 6, "spaces", /* C_spaces = 5800 */ colon }}}, /* CENTRY "spaces" spaces 6 h 5808 */
+ {.type FromDictionary, {.p C_bl}, .src = "dd C_bl"}, /* dd C_bl 5816 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 5824 */
+ {.type FromDictionary, {.p C_emits}, .src = "dd C_emits"}, /* dd C_emits 5832 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5840 */
+ {.type Header, {.hdr { 5, "count", /* C_count = 5856 */ colon }}}, /* CENTRY "count" count 5 ; ( 'counted-string -- 'text count ) a = address of counted string ( a - a+1 a[0]) h 5864 */
+ {.type FromDictionary, {.p C_1plus}, .src = "dd C_1plus"}, /* dd C_1plus 5872 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 5880 */
+ {.type FromDictionary, {.p C_1minus}, .src = "dd C_1minus"}, /* dd C_1minus 5888 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 5896 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 5904 */
+ {.type FromDictionary, {.p C_2dup}, .src = "dd C_2dup ; debug show the word name to search"}, /* dd C_2dup ; debug show the word name to search 5912 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 5920 */
+ {.type FromDictionary, {.p C_space}, .src = "dd C_space"}, /* dd C_space 5928 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; debug show the dictionary entry"}, /* dd M_rpush ; debug show the dictionary entry 5936 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 5944 */
+ {.type FromDictionary, {.p C_2dup}, .src = "dd C_2dup"}, /* dd C_2dup 5952 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 5960 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 5968 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 5976 */
+ {.type FromDictionary, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 5984 */
+ {.type Header, {.hdr { 7, "compare", /* C_compare = 6000 */ colon }}}, /* CENTRY "compare" compare 7 ; ( a1 n1 a2 n2 -- f ) a1 = dictionary entry a2 = word name to search h 6008 */
+ {.type FromDictionary, {.p C_rot}, .src = "dd C_rot ; ( a1 n1 a2 n2 -- a1 a2 n2 n1 )"}, /* dd C_rot ; ( a1 n1 a2 n2 -- a1 a2 n2 n1 ) 6016 */
+ {.type FromDictionary, {.p C_2dup}, .src = "dd C_2dup ; ( -- a1 a2 n2 n1 n2 n1 )"}, /* dd C_2dup ; ( -- a1 a2 n2 n1 n2 n1 ) 6024 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( -- a1 a2 n2 n1 n2 ) (R n1 -- )"}, /* dd M_rpush ; ( -- a1 a2 n2 n1 n2 ) (R n1 -- ) 6032 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( -- a1 a2 n2 n1 ) (R n1 n2 -- )"}, /* dd M_rpush ; ( -- a1 a2 n2 n1 ) (R n1 n2 -- ) 6040 */
+ {.type FromDictionary, {.p C_min}, .src = "dd C_min ; ( -- a1 a2 nmin ) (R n1 n2 -- )"}, /* dd C_min ; ( -- a1 a2 nmin ) (R n1 n2 -- ) 6048 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 6056 */
+ {.type Absolute, {.p 0}}, /* dd 0 ; ( -- a1 a2 nmin 0 ) (R n1 n2 -- ) 6064 */
+ {.type FromDictionary, {.p M_doinit}, .src = "dd M_doinit ; ( -- a1 a2 ) (R n1 n2 0 nmin -- )"}, /* dd M_doinit ; ( -- a1 a2 ) (R n1 n2 0 nmin -- ) 6072 */
+ {.type FromDictionary, {.p M_over}, .src = "dd M_over"}, /* dd M_over 6080 */
+ {.type FromDictionary, {.p M_i}, .src = "dd M_i"}, /* dd M_i 6088 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 6096 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 6104 */
+ {.type FromDictionary, {.p M_over}, .src = "dd M_over"}, /* dd M_over 6112 */
+ {.type FromDictionary, {.p M_i}, .src = "dd M_i"}, /* dd M_i 6120 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 6128 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 6136 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 6144 */
+ {.type FromDictionary, {.p C_signum}, .src = "dd C_signum"}, /* dd C_signum 6152 */
+ {.type FromDictionary, {.p C_qdup}, .src = "dd C_qdup"}, /* dd C_qdup 6160 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 6168 */
+ {.type FromDictionary, {.p L_C_compare_1}, .src = "dd L_C_compare_1 ; matches"}, /* dd L_C_compare_1 ; matches 6176 */
+ {.type FromDictionary, {.p C_2nip}, .src = "dd C_2nip ; does not match ( a1 a2 f -- f ) (R n1 n2 0 nmin -- )"}, /* dd C_2nip ; does not match ( a1 a2 f -- f ) (R n1 n2 0 nmin -- ) 6184 */
+ {.type FromDictionary, {.p M_unloop}, .src = "dd M_unloop ; ( f -- f ) (R n1 n2 0 nmin -- n1 n2)"}, /* dd M_unloop ; ( f -- f ) (R n1 n2 0 nmin -- n1 n2) 6192 */
+ {.type FromDictionary, {.p M_unloop}, .src = "dd M_unloop ; ( f -- f ) (R n1 n2 -- )"}, /* dd M_unloop ; ( f -- f ) (R n1 n2 -- ) 6200 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6208 */
+ {.type FromDictionary, {.p M_doloop}, .src = "dd M_doloop"}, /* dd M_doloop 6216 */
+ {.type FromDictionary, {.p L_C_compare}, .src = "dd L_C_compare"}, /* dd L_C_compare 6224 */
+ {.type FromDictionary, {.p C_2drop}, .src = "dd C_2drop ; ( a1 a2 -- ) (R n1 n2 -- )"}, /* dd C_2drop ; ( a1 a2 -- ) (R n1 n2 -- ) 6232 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 6240 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop ; ( n2 n1 -- ) (R -- )"}, /* dd M_rpop ; ( n2 n1 -- ) (R -- ) 6248 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus ; ( -- n1-n2 )"}, /* dd M_minus ; ( -- n1-n2 ) 6256 */
+ {.type FromDictionary, {.p C_signum}, .src = "dd C_signum"}, /* dd C_signum 6264 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6272 */
+ {.type Header, {.hdr { 5, "erase", /* C_erase = 6288 */ colon }}}, /* CENTRY "erase" erase 5 h 6296 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 6304 */
+ {.type Absolute, {.p 0}}, /* dd 0 6312 */
+ {.type FromDictionary, {.p M_doinit}, .src = "dd M_doinit"}, /* dd M_doinit 6320 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 6328 */
+ {.type Absolute, {.p 0}}, /* dd 0 6336 */
+ {.type FromDictionary, {.p M_over}, .src = "dd M_over"}, /* dd M_over 6344 */
+ {.type FromDictionary, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 6352 */
+ {.type FromDictionary, {.p C_1plus}, .src = "dd C_1plus"}, /* dd C_1plus 6360 */
+ {.type FromDictionary, {.p M_doloop}, .src = "dd M_doloop"}, /* dd M_doloop 6368 */
+ {.type FromDictionary, {.p L_C_erase}, .src = "dd L_C_erase"}, /* dd L_C_erase 6376 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 6384 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6392 */
+ {.type Header, {.hdr { 4, "fill", /* C_fill = 6408 */ colon }}}, /* CENTRY "fill" fill 4 h 6416 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 6424 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 6432 */
+ {.type Absolute, {.p 0}}, /* dd 0 6440 */
+ {.type FromDictionary, {.p M_doinit}, .src = "dd M_doinit"}, /* dd M_doinit 6448 */
+ {.type FromDictionary, {.p C_2dup}, .src = "dd C_2dup"}, /* dd C_2dup 6456 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 6464 */
+ {.type FromDictionary, {.p M_i}, .src = "dd M_i"}, /* dd M_i 6472 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 6480 */
+ {.type FromDictionary, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 6488 */
+ {.type FromDictionary, {.p M_doloop}, .src = "dd M_doloop"}, /* dd M_doloop 6496 */
+ {.type FromDictionary, {.p L_C_fill}, .src = "dd L_C_fill"}, /* dd L_C_fill 6504 */
+ {.type FromDictionary, {.p C_2drop}, .src = "dd C_2drop"}, /* dd C_2drop 6512 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6520 */
+ {.type Header, {.hdr { 5, "blank", /* C_blank = 6536 */ colon }}}, /* CENTRY "blank" blank 5 h 6544 */
+ {.type FromDictionary, {.p C_bl}, .src = "dd C_bl"}, /* dd C_bl 6552 */
+ {.type FromDictionary, {.p C_fill}, .src = "dd C_fill"}, /* dd C_fill 6560 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6568 */
+ {.type Header, {.hdr { 6, "search", /* C_search = 6584 */ colon }}}, /* CENTRY "search" search 6 h 6592 */
+ {.type FromDictionary, {.p MV_Searchlen}, .src = "dd MV_Searchlen"}, /* dd MV_Searchlen 6600 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 6608 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 6616 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 6624 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 6632 */
+ {.type FromDictionary, {.p MV_Searchlen}, .src = "dd MV_Searchlen"}, /* dd MV_Searchlen 6640 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 6648 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 6656 */
+ {.type FromDictionary, {.p C_1plus}, .src = "dd C_1plus"}, /* dd C_1plus 6664 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 6672 */
+ {.type Absolute, {.p 0}}, /* dd 0 6680 */
+ {.type FromDictionary, {.p M_doinit}, .src = "dd M_doinit"}, /* dd M_doinit 6688 */
+ {.type FromDictionary, {.p M_over}, .src = "dd M_over"}, /* dd M_over 6696 */
+ {.type FromDictionary, {.p M_i}, .src = "dd M_i"}, /* dd M_i 6704 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 6712 */
+ {.type FromDictionary, {.p M_over}, .src = "dd M_over"}, /* dd M_over 6720 */
+ {.type FromDictionary, {.p MV_Searchlen}, .src = "dd MV_Searchlen"}, /* dd MV_Searchlen 6728 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 6736 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 6744 */
+ {.type FromDictionary, {.p MV_Searchlen}, .src = "dd MV_Searchlen"}, /* dd MV_Searchlen 6752 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 6760 */
+ {.type FromDictionary, {.p C_compare}, .src = "dd C_compare"}, /* dd C_compare 6768 */
+ {.type FromDictionary, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 6776 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 6784 */
+ {.type FromDictionary, {.p L_C_search_1}, .src = "dd L_C_search_1"}, /* dd L_C_search_1 6792 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 6800 */
+ {.type FromDictionary, {.p M_i}, .src = "dd M_i"}, /* dd M_i 6808 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 6816 */
+ {.type FromDictionary, {.p M_i}, .src = "dd M_i"}, /* dd M_i 6824 */
+ {.type FromDictionary, {.p M_unloop}, .src = "dd M_unloop"}, /* dd M_unloop 6832 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 6840 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 6848 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 6856 */
+ {.type FromDictionary, {.p C_true}, .src = "dd C_true"}, /* dd C_true 6864 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6872 */
+ {.type FromDictionary, {.p M_doloop}, .src = "dd M_doloop"}, /* dd M_doloop 6880 */
+ {.type FromDictionary, {.p L_C_search}, .src = "dd L_C_search"}, /* dd L_C_search 6888 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 6896 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 6904 */
+ {.type FromDictionary, {.p C_false}, .src = "dd C_false"}, /* dd C_false 6912 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6920 */
+ {.type Header, {.hdr { 4, "here", /* C_here = 6936 */ colon }}}, /* CENTRY "here" here 4 h 6944 */
+ {.type FromDictionary, {.p MV_Dp}, .src = "dd MV_Dp"}, /* dd MV_Dp 6952 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 6960 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 6968 */
+ {.type Header, {.hdr { 5, "there", /* C_there = 6984 */ colon }}}, /* CENTRY "there" there 5 ; variable here h 6992 */
+ {.type FromDictionary, {.p MV_Vp}, .src = "dd MV_Vp"}, /* dd MV_Vp 7000 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 7008 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7016 */
+ {.type Header, {.hdr { 1, ",", /* C_comma = 7032 */ colon }}}, /* CENTRY "," comma 1 h 7040 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 7048 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 7056 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7064 */
+ {.type Absolute, {.p 8}}, /* dd 8 7072 */
+ {.type FromDictionary, {.p MV_Dp}, .src = "dd MV_Dp"}, /* dd MV_Dp 7080 */
+ {.type FromDictionary, {.p C_plusstore}, .src = "dd C_plusstore"}, /* dd C_plusstore 7088 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7096 */
+ {.type Header, {.hdr { 2, "c,", /* C_c = 7112 */ colon }}}, /* CENTRY "c," c 2 h 7120 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 7128 */
+ {.type FromDictionary, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 7136 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7144 */
+ {.type Absolute, {.p 1}}, /* dd 1 7152 */
+ {.type FromDictionary, {.p MV_Dp}, .src = "dd MV_Dp"}, /* dd MV_Dp 7160 */
+ {.type FromDictionary, {.p C_plusstore}, .src = "dd C_plusstore"}, /* dd C_plusstore 7168 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7176 */
+ {.type Header, {.hdr { 5, "allot", /* C_allot = 7192 */ colon }}}, /* CENTRY "allot" allot 5 ; ( n -- ) here = here+n h 7200 */
+ {.type FromDictionary, {.p MV_Dp}, .src = "dd MV_Dp"}, /* dd MV_Dp 7208 */
+ {.type FromDictionary, {.p C_plusstore}, .src = "dd C_plusstore"}, /* dd C_plusstore 7216 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7224 */
+ {.type Header, {.hdr { 6, "vallot", /* C_vallot = 7240 */ colon }}}, /* CENTRY "vallot" vallot 6 ; allot on the variable space ( n -- ) there = there+n h 7248 */
+ {.type FromDictionary, {.p MV_Vp}, .src = "dd MV_Vp"}, /* dd MV_Vp 7256 */
+ {.type FromDictionary, {.p C_plusstore}, .src = "dd C_plusstore"}, /* dd C_plusstore 7264 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7272 */
+ {.type Header, {.hdr { 3, "pad", /* C_pad = 7288 */ colon }}}, /* CENTRY "pad" pad 3 h 7296 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 7304 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7312 */
+ {.type Absolute, {.p 256}}, /* dd 256 7320 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 7328 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7336 */
+ {.type Header, {.hdr { 5, "align", /* C_align = 7352 */ colon }}}, /* CENTRY "align" align 5 ; ( -- ) align here to a cell boundary h 7360 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here ; Dp @"}, /* dd C_here ; Dp @ 7368 */
+ {.type FromDictionary, {.p C_aligned}, .src = "dd C_aligned ; here is aligned to a multiple of 8"}, /* dd C_aligned ; here is aligned to a multiple of 8 7376 */
+ {.type FromDictionary, {.p MV_Dp}, .src = "dd MV_Dp ; store the aligned here at Dp"}, /* dd MV_Dp ; store the aligned here at Dp 7384 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store ; Dp contains aligned_here"}, /* dd M_store ; Dp contains aligned_here 7392 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7400 */
+ {.type Header, {.hdr { 6, "unused", /* C_unused = 7416 */ colon }}}, /* CENTRY "unused" unused 6 h 7424 */
+ {.type FromDictionary, {.p MV_Dp}, .src = "dd MV_Dp"}, /* dd MV_Dp 7432 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 7440 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 7448 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 7456 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7464 */
+ {.type Header, {.hdr { 2, "<#", /* C_fromhash = 7480 */ colon }}}, /* CENTRY "<#" fromhash 2 h 7488 */
+ {.type FromDictionary, {.p C_pad}, .src = "dd C_pad"}, /* dd C_pad 7496 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7504 */
+ {.type Absolute, {.p 1024}}, /* dd 1024 7512 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 7520 */
+ {.type FromDictionary, {.p MV_toNum}, .src = "dd MV_toNum"}, /* dd MV_toNum 7528 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 7536 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7544 */
+ {.type Header, {.hdr { 1, "#", /* C_hash = 7560 */ colon }}}, /* CENTRY "#" hash 1 h 7568 */
+ {.type FromDictionary, {.p MV_Base}, .src = "dd MV_Base"}, /* dd MV_Base 7576 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 7584 */
+ {.type FromDictionary, {.p M_uslashmod}, .src = "dd M_uslashmod"}, /* dd M_uslashmod 7592 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 7600 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 7608 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7616 */
+ {.type Absolute, {.p 9}}, /* dd 9 7624 */
+ {.type FromDictionary, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 7632 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 7640 */
+ {.type FromDictionary, {.p L_C_hash}, .src = "dd L_C_hash"}, /* dd L_C_hash 7648 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7656 */
+ {.type Absolute, {.p 97}}, /* dd 97 7664 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 7672 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7680 */
+ {.type Absolute, {.p 10}}, /* dd 10 7688 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 7696 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 7704 */
+ {.type FromDictionary, {.p L_C_hash_1}, .src = "dd L_C_hash_1"}, /* dd L_C_hash_1 7712 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7720 */
+ {.type Absolute, {.p 48}}, /* dd 48 7728 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 7736 */
+ {.type FromDictionary, {.p MV_toNum}, .src = "dd MV_toNum"}, /* dd MV_toNum 7744 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 7752 */
+ {.type FromDictionary, {.p C_1minus}, .src = "dd C_1minus"}, /* dd C_1minus 7760 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 7768 */
+ {.type FromDictionary, {.p MV_toNum}, .src = "dd MV_toNum"}, /* dd MV_toNum 7776 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 7784 */
+ {.type FromDictionary, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 7792 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7800 */
+ {.type Header, {.hdr { 2, "#s", /* C_hashs = 7816 */ colon }}}, /* CENTRY "#s" hashs 2 h 7824 */
+ {.type FromDictionary, {.p C_hash}, .src = "dd C_hash"}, /* dd C_hash 7832 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 7840 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 7848 */
+ {.type FromDictionary, {.p L_C_hashs_1}, .src = "dd L_C_hashs_1"}, /* dd L_C_hashs_1 7856 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 7864 */
+ {.type FromDictionary, {.p L_C_hashs}, .src = "dd L_C_hashs"}, /* dd L_C_hashs 7872 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7880 */
+ {.type Header, {.hdr { 2, "#>", /* C_hashfrom = 7896 */ colon }}}, /* CENTRY "#>" hashfrom 2 h 7904 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 7912 */
+ {.type FromDictionary, {.p MV_toNum}, .src = "dd MV_toNum"}, /* dd MV_toNum 7920 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 7928 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 7936 */
+ {.type FromDictionary, {.p C_pad}, .src = "dd C_pad"}, /* dd C_pad 7944 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 7952 */
+ {.type Absolute, {.p 1024}}, /* dd 1024 7960 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 7968 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 7976 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 7984 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 7992 */
+ {.type Header, {.hdr { 4, "hold", /* C_hold = 8008 */ colon }}}, /* CENTRY "hold" hold 4 h 8016 */
+ {.type FromDictionary, {.p MV_toNum}, .src = "dd MV_toNum"}, /* dd MV_toNum 8024 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 8032 */
+ {.type FromDictionary, {.p C_1minus}, .src = "dd C_1minus"}, /* dd C_1minus 8040 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 8048 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 8056 */
+ {.type FromDictionary, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 8064 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 8072 */
+ {.type FromDictionary, {.p MV_toNum}, .src = "dd MV_toNum"}, /* dd MV_toNum 8080 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 8088 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 8096 */
+ {.type Header, {.hdr { 4, "sign", /* C_sign = 8112 */ colon }}}, /* CENTRY "sign" sign 4 h 8120 */
+ {.type FromDictionary, {.p C_0lt}, .src = "dd C_0lt"}, /* dd C_0lt 8128 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 8136 */
+ {.type FromDictionary, {.p L_C_sign}, .src = "dd L_C_sign"}, /* dd L_C_sign 8144 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8152 */
+ {.type Absolute, {.p 45}}, /* dd 45 8160 */
+ {.type FromDictionary, {.p C_hold}, .src = "dd C_hold"}, /* dd C_hold 8168 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 8176 */
+ {.type Header, {.hdr { 3, "(.)", /* C_paren_dot_paren = 8192 */ colon }}}, /* CENTRY "(.)" paren_dot_paren 3 ; convert the top of stack to a string ( n1 -- 'text n2 ) h 8200 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( n -- n n )"}, /* dd M_dup ; ( n -- n n ) 8208 */
+ {.type FromDictionary, {.p C_abs}, .src = "dd C_abs ; ( n n -- n u )"}, /* dd C_abs ; ( n n -- n u ) 8216 */
+ {.type FromDictionary, {.p C_fromhash}, .src = "dd C_fromhash ; pad = h+256; >num = pad+1024"}, /* dd C_fromhash ; pad = h+256; >num = pad+1024 8224 */
+ {.type FromDictionary, {.p C_hashs}, .src = "dd C_hashs ; ( n u1 -- n n2 )"}, /* dd C_hashs ; ( n u1 -- n n2 ) 8232 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap ; ( n n2 -- n2 n )"}, /* dd M_xswap ; ( n n2 -- n2 n ) 8240 */
+ {.type FromDictionary, {.p C_sign}, .src = "dd C_sign ; ( n2 n -- n2 )"}, /* dd C_sign ; ( n2 n -- n2 ) 8248 */
+ {.type FromDictionary, {.p C_hashfrom}, .src = "dd C_hashfrom ; ( u1 -- a n )"}, /* dd C_hashfrom ; ( u1 -- a n ) 8256 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 8264 */
+ {.type Header, {.hdr { 1, ".", /* C_dot = 8280 */ colon }}}, /* CENTRY "." dot 1 ; print the top of stack ( n -- ) h 8288 */
+ {.type FromDictionary, {.p C_paren_dot_paren}, .src = "dd C_paren_dot_paren ; ( n1 -- 'text n2 )"}, /* dd C_paren_dot_paren ; ( n1 -- 'text n2 ) 8296 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 8304 */
+ {.type FromDictionary, {.p C_space}, .src = "dd C_space"}, /* dd C_space 8312 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 8320 */
+ {.type Header, {.hdr { 2, ".r", /* C_dotr = 8336 */ colon }}}, /* CENTRY ".r" dotr 2 h 8344 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 8352 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 8360 */
+ {.type FromDictionary, {.p C_abs}, .src = "dd C_abs"}, /* dd C_abs 8368 */
+ {.type FromDictionary, {.p C_fromhash}, .src = "dd C_fromhash"}, /* dd C_fromhash 8376 */
+ {.type FromDictionary, {.p C_hashs}, .src = "dd C_hashs"}, /* dd C_hashs 8384 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 8392 */
+ {.type FromDictionary, {.p C_sign}, .src = "dd C_sign"}, /* dd C_sign 8400 */
+ {.type FromDictionary, {.p C_hashfrom}, .src = "dd C_hashfrom"}, /* dd C_hashfrom 8408 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 8416 */
+ {.type FromDictionary, {.p M_over}, .src = "dd M_over"}, /* dd M_over 8424 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 8432 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8440 */
+ {.type Absolute, {.p 0}}, /* dd 0 8448 */
+ {.type FromDictionary, {.p C_max}, .src = "dd C_max"}, /* dd C_max 8456 */
+ {.type FromDictionary, {.p C_spaces}, .src = "dd C_spaces"}, /* dd C_spaces 8464 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 8472 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 8480 */
+ {.type Header, {.hdr { 3, "hex", /* C_hex = 8496 */ colon }}}, /* CENTRY "hex" hex 3 h 8504 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8512 */
+ {.type Absolute, {.p 16}}, /* dd 16 8520 */
+ {.type FromDictionary, {.p MV_Base}, .src = "dd MV_Base"}, /* dd MV_Base 8528 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 8536 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 8544 */
+ {.type Header, {.hdr { 7, "decimal", /* C_decimal = 8560 */ colon }}}, /* CENTRY "decimal" decimal 7 h 8568 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8576 */
+ {.type Absolute, {.p 10}}, /* dd 10 8584 */
+ {.type FromDictionary, {.p MV_Base}, .src = "dd MV_Base"}, /* dd MV_Base 8592 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 8600 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 8608 */
+ {.type Header, {.hdr { 5, "digit", /* C_digit = 8624 */ colon }}}, /* CENTRY "digit" digit 5 ; ( c -- ) h 8632 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 8640 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8648 */
+ {.type Absolute, {.p 65}}, /* dd 65 8656 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8664 */
+ {.type Absolute, {.p 91}}, /* dd 91 8672 */
+ {.type FromDictionary, {.p C_within}, .src = "dd C_within"}, /* dd C_within 8680 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 8688 */
+ {.type FromDictionary, {.p L_C_digit}, .src = "dd L_C_digit"}, /* dd L_C_digit 8696 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8704 */
+ {.type Absolute, {.p 55}}, /* dd 55 8712 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 8720 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 8728 */
+ {.type FromDictionary, {.p L_C_digit_1}, .src = "dd L_C_digit_1"}, /* dd L_C_digit_1 8736 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 8744 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8752 */
+ {.type Absolute, {.p 97}}, /* dd 97 8760 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8768 */
+ {.type Absolute, {.p 123}}, /* dd 123 8776 */
+ {.type FromDictionary, {.p C_within}, .src = "dd C_within"}, /* dd C_within 8784 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 8792 */
+ {.type FromDictionary, {.p L_C_digit_2}, .src = "dd L_C_digit_2"}, /* dd L_C_digit_2 8800 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8808 */
+ {.type Absolute, {.p 87}}, /* dd 87 8816 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 8824 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 8832 */
+ {.type FromDictionary, {.p L_C_digit_3}, .src = "dd L_C_digit_3"}, /* dd L_C_digit_3 8840 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 8848 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8856 */
+ {.type Absolute, {.p 48}}, /* dd 48 8864 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8872 */
+ {.type Absolute, {.p 58}}, /* dd 58 8880 */
+ {.type FromDictionary, {.p C_within}, .src = "dd C_within"}, /* dd C_within 8888 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 8896 */
+ {.type FromDictionary, {.p L_C_digit_4}, .src = "dd L_C_digit_4"}, /* dd L_C_digit_4 8904 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 8912 */
+ {.type Absolute, {.p 48}}, /* dd 48 8920 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus"}, /* dd M_minus 8928 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 8936 */
+ {.type FromDictionary, {.p L_C_digit_5}, .src = "dd L_C_digit_5"}, /* dd L_C_digit_5 8944 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 8952 */
+ {.type FromDictionary, {.p C_false}, .src = "dd C_false"}, /* dd C_false 8960 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 8968 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 8976 */
+ {.type FromDictionary, {.p MV_Base}, .src = "dd MV_Base"}, /* dd MV_Base 8984 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 8992 */
+ {.type FromDictionary, {.p M_less}, .src = "dd M_less"}, /* dd M_less 9000 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 9008 */
+ {.type FromDictionary, {.p L_C_digit_6}, .src = "dd L_C_digit_6"}, /* dd L_C_digit_6 9016 */
+ {.type FromDictionary, {.p C_true}, .src = "dd C_true"}, /* dd C_true 9024 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 9032 */
+ {.type FromDictionary, {.p L_C_digit_7}, .src = "dd L_C_digit_7"}, /* dd L_C_digit_7 9040 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 9048 */
+ {.type FromDictionary, {.p C_false}, .src = "dd C_false"}, /* dd C_false 9056 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9064 */
+ {.type Header, {.hdr { 6, "number", /* C_number = 9080 */ colon }}}, /* CENTRY "number" number 6 ; ( a n1 -- n2 -1 | a n1 0 ) h 9088 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap ; ( a n1 -- n1 a )"}, /* dd M_xswap ; ( a n1 -- n1 a ) 9096 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( n1 a -- n1 a a )"}, /* dd M_dup ; ( n1 a -- n1 a a ) 9104 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch ; ( n1 a a -- n1 a c )"}, /* dd M_cfetch ; ( n1 a a -- n1 a c ) 9112 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 9120 */
+ {.type Absolute, {.p 45}}, /* dd 45 ; ( n1 a c -- n1 a c - ) 9128 */
+ {.type FromDictionary, {.p M_equal}, .src = "dd M_equal ; ( n1 a c -- n1 a f )"}, /* dd M_equal ; ( n1 a c -- n1 a f ) 9136 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump ; ( n1 a c -- n1 a )"}, /* dd M_cjump ; ( n1 a c -- n1 a ) 9144 */
+ {.type FromDictionary, {.p L_C_number}, .src = "dd L_C_number ; c != -"}, /* dd L_C_number ; c != - 9152 */
+ {.type FromDictionary, {.p C_1plus}, .src = "dd C_1plus ; c == - ( n1 a -- n1 a+1 )"}, /* dd C_1plus ; c == - ( n1 a -- n1 a+1 ) 9160 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 9168 */
+ {.type FromDictionary, {.p C_1minus}, .src = "dd C_1minus ; c == - ( a+1 n1 -- a+1 n1-1 )"}, /* dd C_1minus ; c == - ( a+1 n1 -- a+1 n1-1 ) 9176 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 9184 */
+ {.type Absolute, {.p -1}}, /* dd -1 ; ( a+1 n1-1 -- a+1 n1-1 -1 ) 9192 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( a+1 n1-1 -- a+1 n1-1 ) (R -- -1)"}, /* dd M_rpush ; ( a+1 n1-1 -- a+1 n1-1 ) (R -- -1) 9200 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 9208 */
+ {.type FromDictionary, {.p L_C_number_1}, .src = "dd L_C_number_1"}, /* dd L_C_number_1 9216 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap ; ( n1 a -- a n1)"}, /* dd M_xswap ; ( n1 a -- a n1) 9224 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 9232 */
+ {.type Absolute, {.p 1}}, /* dd 1 9240 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( a n1 1 -- a n1 ) (R -- 1)"}, /* dd M_rpush ; ( a n1 1 -- a n1 ) (R -- 1) 9248 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( a n1 -- a n1 n1 ) (R nr)"}, /* dd M_dup ; ( a n1 -- a n1 n1 ) (R nr) 9256 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( a n1 n1 -- a n1 ) (R nr -- nr n1)"}, /* dd M_rpush ; ( a n1 n1 -- a n1 ) (R nr -- nr n1) 9264 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 9272 */
+ {.type Absolute, {.p 0}}, /* dd 0 ; ( a n1 -- a n1 0) (R nr n1) 9280 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap ; ( a n1 0 -- a 0 n1) (R nr n1)"}, /* dd M_xswap ; ( a n1 0 -- a 0 n1) (R nr n1) 9288 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 9296 */
+ {.type Absolute, {.p 0}}, /* dd 0 ; ( a 0 n1 -- a 0 n1 0) (R nr n1) 9304 */
+ {.type FromDictionary, {.p M_doinit}, .src = "dd M_doinit ; ( a 0 n1 0 -- a 0 ) (R nr n1 -- nr n1 0 n1)"}, /* dd M_doinit ; ( a 0 n1 0 -- a 0 ) (R nr n1 -- nr n1 0 n1) 9312 */
+ {.type FromDictionary, {.p MV_Base}, .src = "dd MV_Base"}, /* dd MV_Base 9320 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch ; ( a 0 Base -- a 0 10 ) (R nr n1 -- nr n1 0 n1)"}, /* dd M_fetch ; ( a 0 Base -- a 0 10 ) (R nr n1 -- nr n1 0 n1) 9328 */
+ {.type FromDictionary, {.p M_multiply}, .src = "dd M_multiply ; ( a 0 10 -- a 0 ) (R nr n1 -- nr n1 0 n1)"}, /* dd M_multiply ; ( a 0 10 -- a 0 ) (R nr n1 -- nr n1 0 n1) 9336 */
+ {.type FromDictionary, {.p M_over}, .src = "dd M_over ; ( a 0 -- a 0 a) (R nr n1 -- nr n1 0 n1)"}, /* dd M_over ; ( a 0 -- a 0 a) (R nr n1 -- nr n1 0 n1) 9344 */
+ {.type FromDictionary, {.p M_i}, .src = "dd M_i ; ( a 0 a -- a 0 a n1) (R nr n1 -- nr n1 0 n1)"}, /* dd M_i ; ( a 0 a -- a 0 a n1) (R nr n1 -- nr n1 0 n1) 9352 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus ; ( a 0 a n1 -- a 0 a+n1) (R nr n1 -- nr n1 0 n1)"}, /* dd M_plus ; ( a 0 a n1 -- a 0 a+n1) (R nr n1 -- nr n1 0 n1) 9360 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch ; ( a 0 a+n1 -- a 0 c) (R nr n1 -- nr n1 0 n1)"}, /* dd M_cfetch ; ( a 0 a+n1 -- a 0 c) (R nr n1 -- nr n1 0 n1) 9368 */
+ {.type FromDictionary, {.p C_digit}, .src = "dd C_digit"}, /* dd C_digit 9376 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 9384 */
+ {.type FromDictionary, {.p L_C_number_3}, .src = "dd L_C_number_3"}, /* dd L_C_number_3 9392 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 9400 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 9408 */
+ {.type FromDictionary, {.p L_C_number_4}, .src = "dd L_C_number_4"}, /* dd L_C_number_4 9416 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 9424 */
+ {.type FromDictionary, {.p M_unloop}, .src = "dd M_unloop"}, /* dd M_unloop 9432 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 9440 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 9448 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 9456 */
+ {.type FromDictionary, {.p C_false}, .src = "dd C_false"}, /* dd C_false 9464 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9472 */
+ {.type FromDictionary, {.p M_doloop}, .src = "dd M_doloop"}, /* dd M_doloop 9480 */
+ {.type FromDictionary, {.p L_C_number_2}, .src = "dd L_C_number_2"}, /* dd L_C_number_2 9488 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 9496 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 9504 */
+ {.type FromDictionary, {.p C_nip}, .src = "dd C_nip"}, /* dd C_nip 9512 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 9520 */
+ {.type FromDictionary, {.p M_multiply}, .src = "dd M_multiply"}, /* dd M_multiply 9528 */
+ {.type FromDictionary, {.p C_true}, .src = "dd C_true"}, /* dd C_true 9536 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9544 */
+ {.type Header, {.hdr { 5, "abort", /* C_abort = 9560 */ colon }}}, /* CENTRY "abort" abort 5 h 9568 */
+ {.type FromDictionary, {.p MV_Abortvec}, .src = "dd MV_Abortvec"}, /* dd MV_Abortvec 9576 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 9584 */
+ {.type FromDictionary, {.p M_execute}, .src = "dd M_execute"}, /* dd M_execute 9592 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9600 */
+ {.type Header, {.hdr { 6, "source", /* C_source = 9616 */ colon }}}, /* CENTRY "source" source 6 h 9624 */
+ {.type FromDictionary, {.p MV_Sourcebuf}, .src = "dd MV_Sourcebuf"}, /* dd MV_Sourcebuf 9632 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 9640 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9648 */
+ {.type Header, {.hdr { 8, "bufferfd!", /* C_bufferfd = 9672 */ colon }}}, /* CENTRY "bufferfd!" bufferfd 8 ; ( n -- 'fd ) fd = Bufferfds n + h 9680 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 9688 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 9696 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 9704 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9712 */
+ {.type Header, {.hdr { 6, "Wordfd", /* C_Wordfd = 9728 */ colon }}}, /* CENTRY "Wordfd" Wordfd 6 ; ( -- 'fd ) h 9736 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 9744 */
+ {.type Absolute, {.p 0}}, /* dd 0 9752 */
+ {.type FromDictionary, {.p C_bufferfd}, .src = "dd C_bufferfd"}, /* dd C_bufferfd 9760 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9768 */
+ {.type Header, {.hdr { 6, "Linefd", /* C_Linefd = 9784 */ colon }}}, /* CENTRY "Linefd" Linefd 6 ; ( -- 'fd ) h 9792 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 9800 */
+ {.type Absolute, {.p 1}}, /* dd 1 9808 */
+ {.type FromDictionary, {.p C_bufferfd}, .src = "dd C_bufferfd"}, /* dd C_bufferfd 9816 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9824 */
+ {.type Header, {.hdr { 13, "Doublequotefd", /* C_Doublequotefd = 9848 */ colon }}}, /* CENTRY "Doublequotefd" Doublequotefd 13 ; ( -- 'fd ) h 9856 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 9864 */
+ {.type Absolute, {.p 2}}, /* dd 2 9872 */
+ {.type FromDictionary, {.p C_bufferfd}, .src = "dd C_bufferfd"}, /* dd C_bufferfd 9880 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9888 */
+ {.type Header, {.hdr { 12, "Closeparenfd", /* C_Closeparenfd = 9912 */ colon }}}, /* CENTRY "Closeparenfd" Closeparenfd 12 ; ( -- 'fd ) h 9920 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 9928 */
+ {.type Absolute, {.p 3}}, /* dd 3 9936 */
+ {.type FromDictionary, {.p C_bufferfd}, .src = "dd C_bufferfd"}, /* dd C_bufferfd 9944 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 9952 */
+ {.type Header, {.hdr { 15, "bufferfilename!", /* C_bufferfilename_store = 9976 */ colon }}}, /* CENTRY "bufferfilename!" bufferfilename_store 15 ; ( 'text index -- ) store label h 9984 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 9992 */
+ {.type FromDictionary, {.p MV_Bufferfilenames}, .src = "dd MV_Bufferfilenames"}, /* dd MV_Bufferfilenames 10000 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 10008 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 10016 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10024 */
+ {.type Header, {.hdr { 7, ">word", /* C_toword = 10040 */ colon }}}, /* CENTRY ">word" toword 7 ; ( 'Bufferfds -- 'Wordfd ) h 10048 */
+ {.type FromDictionary, {.p MC_WORDNUM}, .src = "dd MC_WORDNUM"}, /* dd MC_WORDNUM 10056 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 10064 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 10072 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10080 */
+ {.type Header, {.hdr { 7, "wordfd@", /* C_wordfd_fetch = 10096 */ colon }}}, /* CENTRY "wordfd@" wordfd_fetch 7 h 10104 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 10112 */
+ {.type FromDictionary, {.p C_toword}, .src = "dd C_toword"}, /* dd C_toword 10120 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 10128 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10136 */
+ {.type Header, {.hdr { 7, "wordfd!", /* C_wordfd_store = 10152 */ colon }}}, /* CENTRY "wordfd!" wordfd_store 7 h 10160 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 10168 */
+ {.type FromDictionary, {.p C_toword}, .src = "dd C_toword"}, /* dd C_toword 10176 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 10184 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10192 */
+ {.type Header, {.hdr { 13, "wordfilename@", /* C_wordfilename_fetch = 10216 */ colon }}}, /* CENTRY "wordfilename@" wordfilename_fetch 13 h 10224 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 10232 */
+ {.type FromDictionary, {.p C_toword}, .src = "dd C_toword"}, /* dd C_toword 10240 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 10248 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10256 */
+ {.type Header, {.hdr { 13, "wordfilename!", /* C_wordfilename_store = 10280 */ colon }}}, /* CENTRY "wordfilename!" wordfilename_store 13 h 10288 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 10296 */
+ {.type FromDictionary, {.p C_toword}, .src = "dd C_toword"}, /* dd C_toword 10304 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 10312 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10320 */
+ {.type Header, {.hdr { 7, ">line", /* C_toline = 10336 */ colon }}}, /* CENTRY ">line" toline 7 ; ( 'Bufferfds -- 'Wordfd ) h 10344 */
+ {.type FromDictionary, {.p MC_LINENUM}, .src = "dd MC_LINENUM"}, /* dd MC_LINENUM 10352 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 10360 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 10368 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10376 */
+ {.type Header, {.hdr { 7, "linefd@", /* C_linefd_fetch = 10392 */ colon }}}, /* CENTRY "linefd@" linefd_fetch 7 h 10400 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 10408 */
+ {.type FromDictionary, {.p C_toline}, .src = "dd C_toline"}, /* dd C_toline 10416 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 10424 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10432 */
+ {.type Header, {.hdr { 7, "linefd!", /* C_linefd_store = 10448 */ colon }}}, /* CENTRY "linefd!" linefd_store 7 h 10456 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 10464 */
+ {.type FromDictionary, {.p C_toline}, .src = "dd C_toline"}, /* dd C_toline 10472 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 10480 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10488 */
+ {.type Header, {.hdr { 13, "linefilename@", /* C_linefilename_fetch = 10512 */ colon }}}, /* CENTRY "linefilename@" linefilename_fetch 13 h 10520 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 10528 */
+ {.type FromDictionary, {.p C_toline}, .src = "dd C_toline"}, /* dd C_toline 10536 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 10544 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10552 */
+ {.type Header, {.hdr { 13, "linefilename!", /* C_linefilename_store = 10576 */ colon }}}, /* CENTRY "linefilename!" linefilename_store 13 h 10584 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 10592 */
+ {.type FromDictionary, {.p C_toline}, .src = "dd C_toline"}, /* dd C_toline 10600 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 10608 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10616 */
+ {.type Header, {.hdr { 12, ">doublequote", /* C_todoublequote = 10640 */ colon }}}, /* CENTRY ">doublequote" todoublequote 12 ; ( 'Bufferfds -- 'Doublequotefd ) h 10648 */
+ {.type FromDictionary, {.p MC_LINENUM}, .src = "dd MC_LINENUM"}, /* dd MC_LINENUM 10656 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 10664 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 10672 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10680 */
+ {.type Header, {.hdr { 14, "doublequotefd@", /* C_doublequotefd_fetch = 10704 */ colon }}}, /* CENTRY "doublequotefd@" doublequotefd_fetch 14 h 10712 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 10720 */
+ {.type FromDictionary, {.p C_todoublequote}, .src = "dd C_todoublequote"}, /* dd C_todoublequote 10728 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 10736 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10744 */
+ {.type Header, {.hdr { 14, "doublequotefd!", /* C_doublequotefd_store = 10768 */ colon }}}, /* CENTRY "doublequotefd!" doublequotefd_store 14 h 10776 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 10784 */
+ {.type FromDictionary, {.p C_todoublequote}, .src = "dd C_todoublequote"}, /* dd C_todoublequote 10792 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 10800 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10808 */
+ {.type Header, {.hdr { 20, "doublequotefilename@", /* C_doublequotefilename_fetch = 10840 */ colon }}}, /* CENTRY "doublequotefilename@" doublequotefilename_fetch 20 h 10848 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 10856 */
+ {.type FromDictionary, {.p C_todoublequote}, .src = "dd C_todoublequote"}, /* dd C_todoublequote 10864 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 10872 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10880 */
+ {.type Header, {.hdr { 20, "doublequotefilename!", /* C_doublequotefilename_store = 10912 */ colon }}}, /* CENTRY "doublequotefilename!" doublequotefilename_store 20 h 10920 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 10928 */
+ {.type FromDictionary, {.p C_todoublequote}, .src = "dd C_todoublequote"}, /* dd C_todoublequote 10936 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 10944 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 10952 */
+ {.type Header, {.hdr { 11, ">closeparen", /* C_tocloseparen = 10976 */ colon }}}, /* CENTRY ">closeparen" tocloseparen 11 ; ( 'Bufferfds -- 'Closeparenfd ) h 10984 */
+ {.type FromDictionary, {.p MC_LINENUM}, .src = "dd MC_LINENUM"}, /* dd MC_LINENUM 10992 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 11000 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 11008 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 11016 */
+ {.type Header, {.hdr { 13, "closeparenfd@", /* C_closeparenfd_fetch = 11040 */ colon }}}, /* CENTRY "closeparenfd@" closeparenfd_fetch 13 h 11048 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 11056 */
+ {.type FromDictionary, {.p C_tocloseparen}, .src = "dd C_tocloseparen"}, /* dd C_tocloseparen 11064 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 11072 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 11080 */
+ {.type Header, {.hdr { 13, "closeparenfd!", /* C_closeparenfd_store = 11104 */ colon }}}, /* CENTRY "closeparenfd!" closeparenfd_store 13 h 11112 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 11120 */
+ {.type FromDictionary, {.p C_tocloseparen}, .src = "dd C_tocloseparen"}, /* dd C_tocloseparen 11128 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 11136 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 11144 */
+ {.type Header, {.hdr { 19, "closeparenfilename@", /* C_closeparenfilename_fetch = 11176 */ colon }}}, /* CENTRY "closeparenfilename@" closeparenfilename_fetch 19 h 11184 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 11192 */
+ {.type FromDictionary, {.p C_tocloseparen}, .src = "dd C_tocloseparen"}, /* dd C_tocloseparen 11200 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 11208 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 11216 */
+ {.type Header, {.hdr { 19, "closeparenfilename!", /* C_closeparenfilename_store = 11248 */ colon }}}, /* CENTRY "closeparenfilename!" closeparenfilename_store 19 h 11256 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 11264 */
+ {.type FromDictionary, {.p C_tocloseparen}, .src = "dd C_tocloseparen"}, /* dd C_tocloseparen 11272 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 11280 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 11288 */
+/* ; stdinput : set all buffer fd's to -1, Infd = stdin *//* ; args : set all buffer fd's to -1, Infd = #p/<pid>/args *//* ; input@ : buffer fds and Infd -> stack *//* ; input! : stack -> buffer fds and Infd *//* ; -input : close all buffer fds and Infd, set buffer fds to -1 *//* ; buffer file names are setup in boot */ {.type Header, {.hdr { 8, "stdinput", /* C_stdinput = 11312 */ colon }}}, /* CENTRY "stdinput" stdinput 8 ; stream input from stdin into Text input buffer h 11320 */
+ {.type FromDictionary, {.p MC_STDIN}, .src = "dd MC_STDIN"}, /* dd MC_STDIN 11328 */
+ {.type FromDictionary, {.p MV_Infd}, .src = "dd MV_Infd"}, /* dd MV_Infd 11336 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 11344 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 11352 */
+ {.type FromDictionary, {.p MC_NBUFFERS}, .src = "dd MC_NBUFFERS"}, /* dd MC_NBUFFERS 11360 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11368 */
+ {.type Absolute, {.p 0}}, /* dd 0 11376 */
+ {.type FromDictionary, {.p M_doinit}, .src = "dd M_doinit"}, /* dd M_doinit 11384 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11392 */
+ {.type Absolute, {.p 1}}, /* dd 1 11400 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 11408 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 11416 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 11424 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11432 */
+ {.type Absolute, {.p -1}}, /* dd -1 11440 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 11448 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 11456 */
+ {.type FromDictionary, {.p M_doloop}, .src = "dd M_doloop"}, /* dd M_doloop 11464 */
+ {.type FromDictionary, {.p L_C_stdinput}, .src = "dd L_C_stdinput"}, /* dd L_C_stdinput 11472 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 11480 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 11488 */
+ {.type Header, {.hdr { 4, "args", /* C_args = 11504 */ colon }}}, /* CENTRY "args" args 4 ; stream input from #p/<pid>/args into Text input buffer h 11512 */
+ {.type FromDictionary, {.p MV_Argsfilename}, .src = "dd MV_Argsfilename ; ( 'args_filename_counted_string ) filled by the starter"}, /* dd MV_Argsfilename ; ( 'args_filename_counted_string ) filled by the starter 11520 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 11528 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11536 */
+ {.type Absolute, {.p 0}}, /* dd 0 11544 */
+ {.type FromDictionary, {.p M_equal}, .src = "dd M_equal"}, /* dd M_equal 11552 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 11560 */
+ {.type FromDictionary, {.p L_C_args_read}, .src = "dd L_C_args_read"}, /* dd L_C_args_read 11568 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 11576 */
+ {.type FromDictionary, {.p MV_Argsfilename}, .src = "dd MV_Argsfilename"}, /* dd MV_Argsfilename 11584 */
+ {.type FromDictionary, {.p C_count}, .src = "dd C_count"}, /* dd C_count 11592 */
+ {.type FromDictionary, {.p C_ro}, .src = "dd C_ro"}, /* dd C_ro 11600 */
+ {.type FromDictionary, {.p C_open_file}, .src = "dd C_open_file"}, /* dd C_open_file 11608 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 11616 */
+ {.type FromDictionary, {.p MV_Infd}, .src = "dd MV_Infd"}, /* dd MV_Infd 11624 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 11632 */
+ {.type FromDictionary, {.p C_interpret}, .src = "dd C_interpret"}, /* dd C_interpret 11640 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 11648 */
+ {.type Header, {.hdr { 4, "input@", /* C_input_fetch = 11664 */ colon }}}, /* CENTRY "input@" input_fetch 4 ; ( -- Bufferfds Infd #Buffers+1 ) save input stream onto the stack and replace the buffer fd's with -1 h 11672 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 11680 */
+ {.type FromDictionary, {.p MC_NBUFFERS}, .src = "dd MC_NBUFFERS"}, /* dd MC_NBUFFERS 11688 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11696 */
+ {.type Absolute, {.p 0}}, /* dd 0 11704 */
+ {.type FromDictionary, {.p M_doinit}, .src = "dd M_doinit"}, /* dd M_doinit 11712 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11720 */
+ {.type Absolute, {.p 1}}, /* dd 1 11728 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 11736 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 11744 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 11752 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 11760 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( 'Bufferfd 'Bufferfd )"}, /* dd M_dup ; ( 'Bufferfd 'Bufferfd ) 11768 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11776 */
+ {.type Absolute, {.p -1}}, /* dd -1 11784 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap ; ( 'Bufferfd -1 'Bufferfd )"}, /* dd M_xswap ; ( 'Bufferfd -1 'Bufferfd ) 11792 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store ; ( 'Bufferfd )"}, /* dd M_store ; ( 'Bufferfd ) 11800 */
+ {.type FromDictionary, {.p M_doloop}, .src = "dd M_doloop"}, /* dd M_doloop 11808 */
+ {.type FromDictionary, {.p L_C_input_fetch}, .src = "dd L_C_input_fetch"}, /* dd L_C_input_fetch 11816 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 11824 */
+ {.type FromDictionary, {.p MV_Infd}, .src = "dd MV_Infd"}, /* dd MV_Infd 11832 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 11840 */
+ {.type FromDictionary, {.p MC_NBUFFERS}, .src = "dd MC_NBUFFERS"}, /* dd MC_NBUFFERS 11848 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11856 */
+ {.type Absolute, {.p 1}}, /* dd 1 11864 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 11872 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 11880 */
+ {.type Header, {.hdr { 7, "input!", /* C_input_store = 11896 */ colon }}}, /* CENTRY "input!" input_store 7 ; ( <input>|empty -- ) ; restore input stream from the stack or stdinput h 11904 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; check if there is #Buffers+1 on the top of stack"}, /* dd M_dup ; check if there is #Buffers+1 on the top of stack 11912 */
+ {.type FromDictionary, {.p MC_NBUFFERS}, .src = "dd MC_NBUFFERS"}, /* dd MC_NBUFFERS 11920 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 11928 */
+ {.type Absolute, {.p 1}}, /* dd 1 11936 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 11944 */
+ {.type FromDictionary, {.p M_equal}, .src = "dd M_equal ; is the top of stack == #Buffers+1"}, /* dd M_equal ; is the top of stack == #Buffers+1 11952 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 11960 */
+ {.type FromDictionary, {.p L_C_input_store_1}, .src = "dd L_C_input_store_1 ; top of stack <> #Buffers+1, there is no input stream on the stack, use the default input"}, /* dd L_C_input_store_1 ; top of stack <> #Buffers+1, there is no input stream on the stack, use the default input 11968 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop ; drop the #Buffers+1 on the top of stack"}, /* dd M_drop ; drop the #Buffers+1 on the top of stack 11976 */
+ {.type FromDictionary, {.p MV_Infd}, .src = "dd MV_Infd"}, /* dd MV_Infd 11984 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 11992 */
+ {.type FromDictionary, {.p MC_NBUFFERS}, .src = "dd MC_NBUFFERS"}, /* dd MC_NBUFFERS 12000 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12008 */
+ {.type Absolute, {.p 0}}, /* dd 0 12016 */
+ {.type FromDictionary, {.p M_doinit}, .src = "dd M_doinit"}, /* dd M_doinit 12024 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 12032 */
+ {.type FromDictionary, {.p M_i}, .src = "dd M_i"}, /* dd M_i 12040 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 12048 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 12056 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 12064 */
+ {.type FromDictionary, {.p M_doloop}, .src = "dd M_doloop"}, /* dd M_doloop 12072 */
+ {.type FromDictionary, {.p L_C_input_store}, .src = "dd L_C_input_store"}, /* dd L_C_input_store 12080 */
+ {.type FromDictionary, {.p MV_Eof}, .src = "dd MV_Eof"}, /* dd MV_Eof 12088 */
+ {.type FromDictionary, {.p C_off}, .src = "dd C_off ; reset Eof back to 0"}, /* dd C_off ; reset Eof back to 0 12096 */
+ {.type FromDictionary, {.p C_true}, .src = "dd C_true ; ( true )"}, /* dd C_true ; ( true ) 12104 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 12112 */
+ {.type FromDictionary, {.p C_stdinput}, .src = "dd C_stdinput ; no input stream on the stack, use default input from now"}, /* dd C_stdinput ; no input stream on the stack, use default input from now 12120 */
+ {.type FromDictionary, {.p C_false}, .src = "dd C_false ; ( 0 )"}, /* dd C_false ; ( 0 ) 12128 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 12136 */
+/* ; closefds: close all buffer fds and Infd, set buffer fds and Infd to -1 */ {.type Header, {.hdr { 8, "-input", /* C_close_input = 12160 */ colon }}}, /* CENTRY "-input" close_input 8 ; ( <input>|empty -- ) ; restore input stream from the stack or stdinput h 12168 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 12176 */
+ {.type FromDictionary, {.p MC_NBUFFERS}, .src = "dd MC_NBUFFERS"}, /* dd MC_NBUFFERS 12184 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12192 */
+ {.type Absolute, {.p 0}}, /* dd 0 12200 */
+ {.type FromDictionary, {.p M_doinit}, .src = "dd M_doinit"}, /* dd M_doinit 12208 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12216 */
+ {.type Absolute, {.p 1}}, /* dd 1 12224 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 12232 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 12240 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( 'Bufferfd 'Bufferfd )"}, /* dd M_dup ; ( 'Bufferfd 'Bufferfd ) 12248 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch ; ( 'Bufferfd fd )"}, /* dd M_fetch ; ( 'Bufferfd fd ) 12256 */
+ {.type FromDictionary, {.p C_close_file}, .src = "dd C_close_file ; ( 'Bufferfd ioresult )"}, /* dd C_close_file ; ( 'Bufferfd ioresult ) 12264 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop ; ( 'Bufferfd )"}, /* dd M_drop ; ( 'Bufferfd ) 12272 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( 'Bufferfd 'Bufferfd )"}, /* dd M_dup ; ( 'Bufferfd 'Bufferfd ) 12280 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12288 */
+ {.type Absolute, {.p -1}}, /* dd -1 12296 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap ; ( 'Bufferfd -1 'Bufferfd )"}, /* dd M_xswap ; ( 'Bufferfd -1 'Bufferfd ) 12304 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store ; ( 'Bufferfd )"}, /* dd M_store ; ( 'Bufferfd ) 12312 */
+ {.type FromDictionary, {.p M_doloop}, .src = "dd M_doloop"}, /* dd M_doloop 12320 */
+ {.type FromDictionary, {.p L_C_close_input}, .src = "dd L_C_close_input"}, /* dd L_C_close_input 12328 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 12336 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12344 */
+ {.type Absolute, {.p -1}}, /* dd -1 12352 */
+ {.type FromDictionary, {.p MV_Infd}, .src = "dd MV_Infd ; ( -1 'Infd )"}, /* dd MV_Infd ; ( -1 'Infd ) 12360 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( -1 'Infd 'Infd )"}, /* dd M_dup ; ( -1 'Infd 'Infd ) 12368 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch ; ( -1 'Infd fd )"}, /* dd M_fetch ; ( -1 'Infd fd ) 12376 */
+ {.type FromDictionary, {.p C_close_file}, .src = "dd C_close_file ; ( -1 'Infd ioresult )"}, /* dd C_close_file ; ( -1 'Infd ioresult ) 12384 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop ; ( -1 'Infd )"}, /* dd M_drop ; ( -1 'Infd ) 12392 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 12400 */
+ {.type FromDictionary, {.p MV_Eof}, .src = "dd MV_Eof"}, /* dd MV_Eof 12408 */
+ {.type FromDictionary, {.p C_off}, .src = "dd C_off ; reset Eof back to 0"}, /* dd C_off ; reset Eof back to 0 12416 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 12424 */
+ {.type Header, {.hdr { 7, "-+input", /* C_restore_input = 12440 */ colon }}}, /* CENTRY "-+input" restore_input 7 ; ( <input> -- ) ; use the input stream on the stack or abort h 12448 */
+ {.type FromDictionary, {.p C_close_input}, .src = "dd C_close_input"}, /* dd C_close_input 12456 */
+ {.type FromDictionary, {.p C_input_store}, .src = "dd C_input_store"}, /* dd C_input_store 12464 */
+ {.type FromDictionary, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 12472 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 12480 */
+ {.type FromDictionary, {.p L_restore_input}, .src = "dd L_restore_input ; input stream restored"}, /* dd L_restore_input ; input stream restored 12488 */
+/* ; no input stream on the stack to restore, show error and abort */ {.type FromDictionary, {.p C_space}, .src = "dd C_space"}, /* dd C_space 12496 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12504 */
+ {.type FromDictionary, {.p L137}, .src = "dd L137"}, /* dd L137 12512 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12520 */
+ {.type Absolute, {.p 23}}, /* dd 23 12528 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 12536 */
+ {.type FromDictionary, {.p C_space}, .src = "dd C_space"}, /* dd C_space 12544 */
+ {.type FromDictionary, {.p C_depth}, .src = "dd C_depth"}, /* dd C_depth 12552 */
+ {.type FromDictionary, {.p C_dot}, .src = "dd C_dot"}, /* dd C_dot 12560 */
+ {.type FromDictionary, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 12568 */
+ {.type FromDictionary, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 12576 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 12584 */
+ {.type Header, {.hdr { 10, "buffername", /* C_buffername = 12608 */ colon }}}, /* CENTRY "buffername" buffername 10 ; ( index -- 'counted_string ) build the buffer fd's filename h 12616 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells ; ( index*cellsize ) number of bytes"}, /* dd C_cells ; ( index*cellsize ) number of bytes 12624 */
+ {.type FromDictionary, {.p MV_Bufferfilenames}, .src = "dd MV_Bufferfilenames"}, /* dd MV_Bufferfilenames 12632 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus ; ( index*cellsize+'Bufferfilenames ) address of the filename's counted string"}, /* dd M_plus ; ( index*cellsize+'Bufferfilenames ) address of the filename's counted string 12640 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch ; ( 'filename_counted_string )"}, /* dd M_fetch ; ( 'filename_counted_string ) 12648 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12656 */
+ {.type FromDictionary, {.p L120}, .src = "dd L120 ; address of the counted string 3#n/"}, /* dd L120 ; address of the counted string 3#n/ 12664 */
+ {.type FromDictionary, {.p C_pad}, .src = "dd C_pad"}, /* dd C_pad 12672 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12680 */
+ {.type Absolute, {.p 4}}, /* dd 4 12688 */
+ {.type FromDictionary, {.p M_cmove}, .src = "dd M_cmove ; pad has 3#n/"}, /* dd M_cmove ; pad has 3#n/ 12696 */
+ {.type FromDictionary, {.p C_pad}, .src = "dd C_pad"}, /* dd C_pad 12704 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 12712 */
+ {.type Absolute, {.p 4}}, /* dd 4 12720 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus ; ( 'filename_counted_string pad+4 )"}, /* dd M_plus ; ( 'filename_counted_string pad+4 ) 12728 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( 'filename_counted_string pad+4 ) (R pad+4 )"}, /* dd M_rpush ; ( 'filename_counted_string pad+4 ) (R pad+4 ) 12736 */
+ {.type FromDictionary, {.p MV_Infd}, .src = "dd MV_Infd"}, /* dd MV_Infd 12744 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 12752 */
+ {.type FromDictionary, {.p C_paren_dot_paren}, .src = "dd C_paren_dot_paren ; ( 'filename_counted_string pad+4 'text fd_text_count ) ( R pad+4 )"}, /* dd C_paren_dot_paren ; ( 'filename_counted_string pad+4 'text fd_text_count ) ( R pad+4 ) 12760 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 12768 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 12776 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 12784 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( 'filename_counted_string pad+4 'text fd_text_count ) ( R pad+4+fd_text_count )"}, /* dd M_rpush ; ( 'filename_counted_string pad+4 'text fd_text_count ) ( R pad+4+fd_text_count ) 12792 */
+ {.type FromDictionary, {.p M_cmove}, .src = "dd M_cmove ; now, pad has #n/<infd> ( 'filename_counted_string ) ( R pad+4+fd_text_count )"}, /* dd M_cmove ; now, pad has #n/<infd> ( 'filename_counted_string ) ( R pad+4+fd_text_count ) 12800 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop ; ( 'filename_counted_string pad+4+fd_text_count )"}, /* dd M_rpop ; ( 'filename_counted_string pad+4+fd_text_count ) 12808 */
+ {.type FromDictionary, {.p M_over}, .src = "dd M_over ; ( 'filename_counted_string pad+4+fd_text_count 'filename_counted_string )"}, /* dd M_over ; ( 'filename_counted_string pad+4+fd_text_count 'filename_counted_string ) 12816 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch ; ( 'filename_counted_string pad+4+fd_text_count filename_count )"}, /* dd M_cfetch ; ( 'filename_counted_string pad+4+fd_text_count filename_count ) 12824 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( 'filename_counted_string pad+4+fd_text_count ) (R filename_count )"}, /* dd M_rpush ; ( 'filename_counted_string pad+4+fd_text_count ) (R filename_count ) 12832 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 12840 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( 'filename_counted_string pad+4+fd_text_count ) (R filename_count pad+4+fd_text_count )"}, /* dd M_rpush ; ( 'filename_counted_string pad+4+fd_text_count ) (R filename_count pad+4+fd_text_count ) 12848 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap ; ( pad+4+fd_text_count 'filename_counted_string ) (R filename_count pad+4+fd_text_count )"}, /* dd M_xswap ; ( pad+4+fd_text_count 'filename_counted_string ) (R filename_count pad+4+fd_text_count ) 12856 */
+ {.type FromDictionary, {.p C_count}, .src = "dd C_count ; ( pad+4+fd_text_count 'filename count ) (R filename_count pad+4+fd_text_count )"}, /* dd C_count ; ( pad+4+fd_text_count 'filename count ) (R filename_count pad+4+fd_text_count ) 12864 */
+ {.type FromDictionary, {.p M_cmove}, .src = "dd M_cmove ; now, pad has the whole filename ( ) (R filename_count pad+4+fd_text_count )"}, /* dd M_cmove ; now, pad has the whole filename ( ) (R filename_count pad+4+fd_text_count ) 12872 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 12880 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 12888 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus ; ( pad+4+fd_text_count+filename_count )"}, /* dd M_plus ; ( pad+4+fd_text_count+filename_count ) 12896 */
+ {.type FromDictionary, {.p C_pad}, .src = "dd C_pad"}, /* dd C_pad 12904 */
+ {.type FromDictionary, {.p C_1plus}, .src = "dd C_1plus"}, /* dd C_1plus 12912 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus ; ( pad+4+fd_text_count+filename_count-pad-1 )"}, /* dd M_minus ; ( pad+4+fd_text_count+filename_count-pad-1 ) 12920 */
+ {.type FromDictionary, {.p C_pad}, .src = "dd C_pad"}, /* dd C_pad 12928 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store ; Now, pad has a proper counted string"}, /* dd M_store ; Now, pad has a proper counted string 12936 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 12944 */
+ {.type Header, {.hdr { 3, "get", /* C_get = 12960 */ colon }}}, /* CENTRY "get" get 3 ; ( index -- 'counted-string ) read from the indexed Fd in Bufferfds into Tib as a counted string h 12968 */
+ {.type FromDictionary, {.p MV_Eof}, .src = "dd MV_Eof"}, /* dd MV_Eof 12976 */
+ {.type FromDictionary, {.p C_off}, .src = "dd C_off ; clear EOF flag"}, /* dd C_off ; clear EOF flag 12984 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 12992 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells ; ( index index*cellsize ) number of bytes"}, /* dd C_cells ; ( index index*cellsize ) number of bytes 13000 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 13008 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus ; ( index index*cellsize+'Bufferfds ) address of the filename's counted string"}, /* dd M_plus ; ( index index*cellsize+'Bufferfds ) address of the filename's counted string 13016 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch ; ( index fd )"}, /* dd M_fetch ; ( index fd ) 13024 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( index fd fd )"}, /* dd M_dup ; ( index fd fd ) 13032 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13040 */
+ {.type Absolute, {.p -1}}, /* dd -1 13048 */
+ {.type FromDictionary, {.p M_equal}, .src = "dd M_equal"}, /* dd M_equal 13056 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump ; if fd == -1 ( index fd )"}, /* dd M_cjump ; if fd == -1 ( index fd ) 13064 */
+ {.type FromDictionary, {.p L_C_get}, .src = "dd L_C_get ; when not -1"}, /* dd L_C_get ; when not -1 13072 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop ; when fd == -1 ( index )"}, /* dd M_drop ; when fd == -1 ( index ) 13080 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 13088 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 13096 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( index index ) (R index )"}, /* dd M_rpush ; ( index index ) (R index ) 13104 */
+ {.type FromDictionary, {.p C_buffername}, .src = "dd C_buffername"}, /* dd C_buffername 13112 */
+ {.type FromDictionary, {.p C_count}, .src = "dd C_count ; ( index 'filename-counted-string -- 'text count )"}, /* dd C_count ; ( index 'filename-counted-string -- 'text count ) 13120 */
+ {.type FromDictionary, {.p C_ro}, .src = "dd C_ro"}, /* dd C_ro 13128 */
+ {.type FromDictionary, {.p C_open_file}, .src = "dd C_open_file ; ( index fd ioresult )"}, /* dd C_open_file ; ( index fd ioresult ) 13136 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 13144 */
+ {.type FromDictionary, {.p L_C_get_store}, .src = "dd L_C_get_store"}, /* dd L_C_get_store 13152 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop ; ( index ) (R index ) returned false, could not open-file. write error message"}, /* dd M_drop ; ( index ) (R index ) returned false, could not open-file. write error message 13160 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13168 */
+ {.type FromDictionary, {.p L140}, .src = "dd L140 ; open error"}, /* dd L140 ; open error 13176 */
+ {.type FromDictionary, {.p C_count}, .src = "dd C_count"}, /* dd C_count 13184 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 13192 */
+ {.type FromDictionary, {.p C_emit}, .src = "dd C_emit ; show the index"}, /* dd C_emit ; show the index 13200 */
+ {.type FromDictionary, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 13208 */
+ {.type FromDictionary, {.p C_abort}, .src = "dd C_abort ; abort on open error. How about terminate?"}, /* dd C_abort ; abort on open error. How about terminate? 13216 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( index fd fd )"}, /* dd M_dup ; ( index fd fd ) 13224 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop ; ( index fd fd index )"}, /* dd M_rpop ; ( index fd fd index ) 13232 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells ; ( index fd fd index*cellsize ) number of bytes"}, /* dd C_cells ; ( index fd fd index*cellsize ) number of bytes 13240 */
+ {.type FromDictionary, {.p MV_Bufferfds}, .src = "dd MV_Bufferfds"}, /* dd MV_Bufferfds 13248 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus ; ( index fd fd index*cellsize+'Bufferfds ) address of the filename's counted string"}, /* dd M_plus ; ( index fd fd index*cellsize+'Bufferfds ) address of the filename's counted string 13256 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store ; ( index fd )"}, /* dd M_store ; ( index fd ) 13264 */
+ {.type FromDictionary, {.p MV_Tib}, .src = "dd MV_Tib"}, /* dd MV_Tib 13272 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13280 */
+ {.type Absolute, {.p 1}}, /* dd 1 13288 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus ; Tib 1 +"}, /* dd M_plus ; Tib 1 + 13296 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13304 */
+ {.type Absolute, {.p 4095}}, /* dd 4095 ; ( index fd Tib+1 4095 ) 13312 */
+ {.type FromDictionary, {.p C_rot}, .src = "dd C_rot ; ( index Tib+1 4095 fd )"}, /* dd C_rot ; ( index Tib+1 4095 fd ) 13320 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 13328 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13336 */
+ {.type Absolute, {.p -1}}, /* dd -1 13344 */
+ {.type FromDictionary, {.p M_equal}, .src = "dd M_equal"}, /* dd M_equal 13352 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 13360 */
+ {.type FromDictionary, {.p L_C_get_1}, .src = "dd L_C_get_1"}, /* dd L_C_get_1 13368 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13376 */
+ {.type FromDictionary, {.p L141}, .src = "dd L141 ; read error"}, /* dd L141 ; read error 13384 */
+ {.type FromDictionary, {.p C_count}, .src = "dd C_count"}, /* dd C_count 13392 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 13400 */
+ {.type FromDictionary, {.p C_emit}, .src = "dd C_emit ; show the index"}, /* dd C_emit ; show the index 13408 */
+ {.type FromDictionary, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 13416 */
+ {.type FromDictionary, {.p C_abort}, .src = "dd C_abort ; abort on read error. How about terminate?"}, /* dd C_abort ; abort on read error. How about terminate? 13424 */
+ {.type FromDictionary, {.p C_nip}, .src = "dd C_nip ; ( read_count )"}, /* dd C_nip ; ( read_count ) 13432 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( read_count read_count )"}, /* dd M_dup ; ( read_count read_count ) 13440 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13448 */
+ {.type Absolute, {.p 0}}, /* dd 0 13456 */
+ {.type FromDictionary, {.p M_equal}, .src = "dd M_equal"}, /* dd M_equal 13464 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 13472 */
+ {.type FromDictionary, {.p L_C_get_2}, .src = "dd L_C_get_2"}, /* dd L_C_get_2 13480 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop ; ( ) read_count == 0"}, /* dd M_drop ; ( ) read_count == 0 13488 */
+ {.type FromDictionary, {.p MV_Eof}, .src = "dd MV_Eof"}, /* dd MV_Eof 13496 */
+ {.type FromDictionary, {.p C_on}, .src = "dd C_on ; end of file, qrestore_input"}, /* dd C_on ; end of file, qrestore_input 13504 */
+ {.type FromDictionary, {.p C_restore_input}, .src = "dd C_restore_input"}, /* dd C_restore_input 13512 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 13520 */
+ {.type FromDictionary, {.p MV_Tib}, .src = "dd MV_Tib ; ( read_count 'Tib ) Tib has the counted string read"}, /* dd MV_Tib ; ( read_count 'Tib ) Tib has the counted string read 13528 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 13536 */
+ {.type FromDictionary, {.p MV_Tib}, .src = "dd MV_Tib ; ( 'Tib )"}, /* dd MV_Tib ; ( 'Tib ) 13544 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 13552 */
+ {.type Header, {.hdr { 4, "word", /* C_word = 13568 */ colon }}}, /* CENTRY "word" word 4 ; ( c -- a ) read from #n/Infd/word into Tib h 13576 */
+ {.type FromDictionary, {.p MC_WORDNUM}, .src = "dd MC_WORDNUM"}, /* dd MC_WORDNUM 13584 */
+ {.type FromDictionary, {.p C_get}, .src = "dd C_get"}, /* dd C_get 13592 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 13600 */
+ {.type Header, {.hdr { 4, "line", /* C_line = 13616 */ colon }}}, /* CENTRY "line" line 4 ; ( c -- a ) read from #n/Infd/line h 13624 */
+ {.type FromDictionary, {.p MC_LINENUM}, .src = "dd MC_LINENUM"}, /* dd MC_LINENUM 13632 */
+ {.type FromDictionary, {.p C_get}, .src = "dd C_get"}, /* dd C_get 13640 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 13648 */
+ {.type Header, {.hdr { 11, "doublequote", /* C_doublequote = 13672 */ colon }}}, /* CENTRY "doublequote" doublequote 11 ; ( c -- a ) read from #n/Infd/doublequote h 13680 */
+ {.type FromDictionary, {.p MC_DOUBLEQUOTENUM}, .src = "dd MC_DOUBLEQUOTENUM"}, /* dd MC_DOUBLEQUOTENUM 13688 */
+ {.type FromDictionary, {.p C_get}, .src = "dd C_get"}, /* dd C_get 13696 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 13704 */
+ {.type Header, {.hdr { 10, "closeparen", /* C_closeparen = 13728 */ colon }}}, /* CENTRY "closeparen" closeparen 10 ; ( c -- a ) read from #n/Infd/closeparen h 13736 */
+ {.type FromDictionary, {.p MC_CLOSEPARENNUM}, .src = "dd MC_CLOSEPARENNUM"}, /* dd MC_CLOSEPARENNUM 13744 */
+ {.type FromDictionary, {.p C_get}, .src = "dd C_get"}, /* dd C_get 13752 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 13760 */
+ {.type Header, {.hdr { 8, "findname", /* C_findname = 13784 */ colon }}}, /* CENTRY "findname" findname 8 ; ( a1 -- a2 f ) ; loop through the dictionary names h 13792 */
+ {.type FromDictionary, {.p MV_Findadr}, .src = "dd MV_Findadr"}, /* dd MV_Findadr 13800 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 13808 */
+ {.type FromDictionary, {.p MV_Dtop}, .src = "dd MV_Dtop"}, /* dd MV_Dtop 13816 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch ; get latest dictionary link"}, /* dd M_fetch ; get latest dictionary link 13824 */
+ {.type FromDictionary, {.p C_qdup}, .src = "dd C_qdup"}, /* dd C_qdup 13832 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 13840 */
+ {.type FromDictionary, {.p L_C_findname_1}, .src = "dd L_C_findname_1 ; seached until the first dictionary entry get out"}, /* dd L_C_findname_1 ; seached until the first dictionary entry get out 13848 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( a -- a a )"}, /* dd M_dup ; ( a -- a a ) 13856 */
+ {.type FromDictionary, {.p C_cell_plus}, .src = "dd C_cell_plus ; ( a a -- a a+8) lenth + initial name address"}, /* dd C_cell_plus ; ( a a -- a a+8) lenth + initial name address 13864 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch ; ( a a+8 -- a immediate|hidden|len) length + initial name"}, /* dd M_cfetch ; ( a a+8 -- a immediate|hidden|len) length + initial name 13872 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13880 */
+ {.type Absolute, {.p 64}}, /* dd 64 ; check the reveal'ed flag 1=hidden, 0=reveal 13888 */
+ {.type FromDictionary, {.p M_binand}, .src = "dd M_binand ; if hidden, goto L_C_findname_3 else L_C_findname_2"}, /* dd M_binand ; if hidden, goto L_C_findname_3 else L_C_findname_2 13896 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 13904 */
+ {.type FromDictionary, {.p L_C_findname_2}, .src = "dd L_C_findname_2"}, /* dd L_C_findname_2 13912 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch ; smudge'd dictionary entry, get the previous entry"}, /* dd M_fetch ; smudge'd dictionary entry, get the previous entry 13920 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 13928 */
+ {.type FromDictionary, {.p L_C_findname_3}, .src = "dd L_C_findname_3"}, /* dd L_C_findname_3 13936 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( a1 -- a1 a1)"}, /* dd M_dup ; ( a1 -- a1 a1) 13944 */
+ {.type FromDictionary, {.p C_cell_plus}, .src = "dd C_cell_plus ; ( a1 a1 -- a1 a1+8)"}, /* dd C_cell_plus ; ( a1 a1 -- a1 a1+8) 13952 */
+ {.type FromDictionary, {.p C_count}, .src = "dd C_count ; ( a1 a1+8 -- a1 a1+8+1 n )"}, /* dd C_count ; ( a1 a1+8 -- a1 a1+8+1 n ) 13960 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 13968 */
+ {.type Absolute, {.p 63}}, /* dd 63 13976 */
+ {.type FromDictionary, {.p M_binand}, .src = "dd M_binand ; ( a1 a1+8+1 n 63 -- a1 a1+8+1 n&63=len )"}, /* dd M_binand ; ( a1 a1+8+1 n 63 -- a1 a1+8+1 n&63=len ) 13984 */
+ {.type FromDictionary, {.p MV_Findadr}, .src = "dd MV_Findadr"}, /* dd MV_Findadr 13992 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 14000 */
+ {.type FromDictionary, {.p C_count}, .src = "dd C_count ; ( a1 a1+8+1 len=n&63 a2 -- a1 a1+8+1 n&63 a2+1 n2 )"}, /* dd C_count ; ( a1 a1+8+1 len=n&63 a2 -- a1 a1+8+1 n&63 a2+1 n2 ) 14008 */
+ {.type FromDictionary, {.p C_compare}, .src = "dd C_compare ; ( a1 a1+8+1 len=n&63 a2+1 n2 -- a1 f ) compare dictionary entry with name"}, /* dd C_compare ; ( a1 a1+8+1 len=n&63 a2+1 n2 -- a1 f ) compare dictionary entry with name 14016 */
+ {.type FromDictionary, {.p C_0eq}, .src = "dd C_0eq ; found a match?"}, /* dd C_0eq ; found a match? 14024 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 14032 */
+ {.type FromDictionary, {.p L_C_findname_4}, .src = "dd L_C_findname_4 ; no match"}, /* dd L_C_findname_4 ; no match 14040 */
+ {.type FromDictionary, {.p C_cell_plus}, .src = "dd C_cell_plus ; match found"}, /* dd C_cell_plus ; match found 14048 */
+ {.type FromDictionary, {.p C_true}, .src = "dd C_true"}, /* dd C_true 14056 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14064 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 14072 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 14080 */
+ {.type FromDictionary, {.p L_C_findname}, .src = "dd L_C_findname"}, /* dd L_C_findname 14088 */
+ {.type FromDictionary, {.p MV_Findadr}, .src = "dd MV_Findadr"}, /* dd MV_Findadr 14096 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 14104 */
+ {.type FromDictionary, {.p C_false}, .src = "dd C_false"}, /* dd C_false 14112 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14120 */
+ {.type Header, {.hdr { 4, "find", /* C_find = 14136 */ colon }}}, /* CENTRY "find" find 4 ; ( a1 -- a2 f )? h 14144 */
+ {.type FromDictionary, {.p C_findname}, .src = "dd C_findname"}, /* dd C_findname 14152 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 14160 */
+ {.type FromDictionary, {.p L_C_find}, .src = "dd L_C_find"}, /* dd L_C_find 14168 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 14176 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 14184 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 14192 */
+ {.type FromDictionary, {.p M_over}, .src = "dd M_over"}, /* dd M_over 14200 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14208 */
+ {.type Absolute, {.p 63}}, /* dd 63 14216 */
+ {.type FromDictionary, {.p M_binand}, .src = "dd M_binand"}, /* dd M_binand 14224 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 14232 */
+ {.type FromDictionary, {.p C_1plus}, .src = "dd C_1plus"}, /* dd C_1plus 14240 */
+ {.type FromDictionary, {.p C_aligned}, .src = "dd C_aligned"}, /* dd C_aligned 14248 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 14256 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14264 */
+ {.type Absolute, {.p 128}}, /* dd 128 14272 */
+ {.type FromDictionary, {.p M_binand}, .src = "dd M_binand"}, /* dd M_binand 14280 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 14288 */
+ {.type FromDictionary, {.p L_C_find_1}, .src = "dd L_C_find_1"}, /* dd L_C_find_1 14296 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14304 */
+ {.type Absolute, {.p 1}}, /* dd 1 14312 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 14320 */
+ {.type FromDictionary, {.p L_C_find_2}, .src = "dd L_C_find_2"}, /* dd L_C_find_2 14328 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14336 */
+ {.type Absolute, {.p -1}}, /* dd -1 14344 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14352 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 14360 */
+ {.type FromDictionary, {.p L_C_find_3}, .src = "dd L_C_find_3"}, /* dd L_C_find_3 14368 */
+ {.type FromDictionary, {.p C_false}, .src = "dd C_false"}, /* dd C_false 14376 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14384 */
+ {.type Header, {.hdr { 1, "'", /* C_single_quote = 14400 */ colon }}}, /* CENTRY "'" single_quote 1 h 14408 */
+ {.type FromDictionary, {.p C_word}, .src = "dd C_word"}, /* dd C_word 14416 */
+ {.type FromDictionary, {.p C_find}, .src = "dd C_find"}, /* dd C_find 14424 */
+ {.type FromDictionary, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 14432 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 14440 */
+ {.type FromDictionary, {.p L_C_single_quote}, .src = "dd L_C_single_quote"}, /* dd L_C_single_quote 14448 */
+ {.type FromDictionary, {.p C_space}, .src = "dd C_space"}, /* dd C_space 14456 */
+ {.type FromDictionary, {.p C_count}, .src = "dd C_count"}, /* dd C_count 14464 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 14472 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14480 */
+ {.type FromDictionary, {.p L170}, .src = "dd L170"}, /* dd L170 14488 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14496 */
+ {.type Absolute, {.p 3}}, /* dd 3 14504 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 14512 */
+ {.type FromDictionary, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 14520 */
+ {.type FromDictionary, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 14528 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14536 */
+ {.type Header, {.hdr { 6, "?stack", /* C_qstack = 14552 */ colon }}}, /* CENTRY "?stack" qstack 6 h 14560 */
+ {.type FromDictionary, {.p M_stackptr}, .src = "dd M_stackptr"}, /* dd M_stackptr 14568 */
+ {.type FromDictionary, {.p MV_S0}, .src = "dd MV_S0"}, /* dd MV_S0 14576 */
+ {.type FromDictionary, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 14584 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 14592 */
+ {.type FromDictionary, {.p L_C_qstack}, .src = "dd L_C_qstack"}, /* dd L_C_qstack 14600 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14608 */
+ {.type FromDictionary, {.p L173}, .src = "dd L173"}, /* dd L173 14616 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14624 */
+ {.type Absolute, {.p 16}}, /* dd 16 14632 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 14640 */
+ {.type FromDictionary, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 14648 */
+ {.type FromDictionary, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 14656 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14664 */
+ {.type FromDictionary, {.p MC_STDOUT}, .src = "dd MC_STDOUT ; ( str -- str 1) ; debug code to show the word found"}, /* dd MC_STDOUT ; ( str -- str 1) ; debug code to show the word found 14672 */
+ {.type FromDictionary, {.p M_over}, .src = "dd M_over ; ( str 1 str )"}, /* dd M_over ; ( str 1 str ) 14680 */
+ {.type FromDictionary, {.p C_count}, .src = "dd C_count ; ( str 1 a n)"}, /* dd C_count ; ( str 1 a n) 14688 */
+ {.type FromDictionary, {.p M_syswrite}, .src = "dd M_syswrite"}, /* dd M_syswrite 14696 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop ; drop the return value of write"}, /* dd M_drop ; drop the return value of write 14704 */
+ {.type Header, {.hdr { 9, "interpret", /* C_interpret = 14728 */ colon }}}, /* CENTRY "interpret" interpret 9 ; there is stuff in TIB to be interpreted >In and >Limit are set h 14736 */
+ {.type FromDictionary, {.p C_word}, .src = "dd C_word ; ( bl -- a ) a = address of counted string"}, /* dd C_word ; ( bl -- a ) a = address of counted string 14744 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 14752 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 14760 */
+ {.type FromDictionary, {.p C_0neq}, .src = "dd C_0neq"}, /* dd C_0neq 14768 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 14776 */
+ {.type FromDictionary, {.p L_C_interpret_1}, .src = "dd L_C_interpret_1 ; count at a = 0, drop a and exit"}, /* dd L_C_interpret_1 ; count at a = 0, drop a and exit 14784 */
+ {.type FromDictionary, {.p C_find}, .src = "dd C_find ; ( a -- a1 f ) a = address of counted string"}, /* dd C_find ; ( a -- a1 f ) a = address of counted string 14792 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 14800 */
+ {.type FromDictionary, {.p L_C_interpret_2}, .src = "dd L_C_interpret_2"}, /* dd L_C_interpret_2 14808 */
+ {.type FromDictionary, {.p M_execute}, .src = "dd M_execute ; found in dictionary, execute"}, /* dd M_execute ; found in dictionary, execute 14816 */
+ {.type FromDictionary, {.p C_qstack}, .src = "dd C_qstack"}, /* dd C_qstack 14824 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 14832 */
+ {.type FromDictionary, {.p L_C_interpret_3}, .src = "dd L_C_interpret_3"}, /* dd L_C_interpret_3 14840 */
+ {.type FromDictionary, {.p C_count}, .src = "dd C_count"}, /* dd C_count 14848 */
+ {.type FromDictionary, {.p C_number}, .src = "dd C_number"}, /* dd C_number 14856 */
+ {.type FromDictionary, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 14864 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 14872 */
+ {.type FromDictionary, {.p L_C_interpret_4}, .src = "dd L_C_interpret_4"}, /* dd L_C_interpret_4 14880 */
+ {.type FromDictionary, {.p C_space}, .src = "dd C_space ; the word is neither in the dictionary nor a number"}, /* dd C_space ; the word is neither in the dictionary nor a number 14888 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type ; show the word"}, /* dd C_type ; show the word 14896 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14904 */
+ {.type FromDictionary, {.p L180}, .src = "dd L180 ; error I?"}, /* dd L180 ; error I? 14912 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 14920 */
+ {.type Absolute, {.p 3}}, /* dd 3 14928 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 14936 */
+ {.type FromDictionary, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 14944 */
+ {.type FromDictionary, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 14952 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 14960 */
+ {.type FromDictionary, {.p L_C_interpret}, .src = "dd L_C_interpret"}, /* dd L_C_interpret 14968 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop ; count at a = 0 ( a -- )"}, /* dd M_drop ; count at a = 0 ( a -- ) 14976 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 14984 */
+ {.type Header, {.hdr { 6, "create", /* C_create = 15000 */ colon }}}, /* CENTRY "create" create 6 ; compiles dictionary header until the pfa (link, len, name, cfa) h 15008 */
+ {.type FromDictionary, {.p C_align}, .src = "dd C_align ; sets Dp = aligned here"}, /* dd C_align ; sets Dp = aligned here 15016 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here ; ( -- here )"}, /* dd C_here ; ( -- here ) 15024 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( -- ) (R -- linkaddr )"}, /* dd M_rpush ; ( -- ) (R -- linkaddr ) 15032 */
+ {.type FromDictionary, {.p MV_Dtop}, .src = "dd MV_Dtop ; ( -- Dtop ) (R -- linkaddr )"}, /* dd MV_Dtop ; ( -- Dtop ) (R -- linkaddr ) 15040 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch ; ( Dtop -- dtop ) (R -- linkaddr )"}, /* dd M_fetch ; ( Dtop -- dtop ) (R -- linkaddr ) 15048 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma ; ( dtop -- ) (R -- linkaddr )"}, /* dd C_comma ; ( dtop -- ) (R -- linkaddr ) 15056 */
+ {.type FromDictionary, {.p C_word}, .src = "dd C_word ; get the word from the input stream ( c -- a ) skip any c. Placed the counted string in a (as in Wordbuf)"}, /* dd C_word ; get the word from the input stream ( c -- a ) skip any c. Placed the counted string in a (as in Wordbuf) 15064 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( a -- a a ) (R -- linkaddr )"}, /* dd M_dup ; ( a -- a a ) (R -- linkaddr ) 15072 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch ; ( a a -- a len ) (R -- linkaddr )"}, /* dd M_cfetch ; ( a a -- a len ) (R -- linkaddr ) 15080 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here ; ( a len -- a len here ) (R -- linkaddr )"}, /* dd C_here ; ( a len -- a len here ) (R -- linkaddr ) 15088 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap ; ( a len here -- a here len ) (R -- linkaddr )"}, /* dd M_xswap ; ( a len here -- a here len ) (R -- linkaddr ) 15096 */
+ {.type FromDictionary, {.p C_1plus}, .src = "dd C_1plus ; ( a here len -- a here len+1 ) (R -- linkaddr ) using len+1 to copy even the length byte"}, /* dd C_1plus ; ( a here len -- a here len+1 ) (R -- linkaddr ) using len+1 to copy even the length byte 15104 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( a here len+1 -- a here len+1 len+1 ) (R -- linkaddr )"}, /* dd M_dup ; ( a here len+1 -- a here len+1 len+1 ) (R -- linkaddr ) 15112 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( a here len+1 len+1 -- a here len+1 ) (R -- linkaddr len+1 )"}, /* dd M_rpush ; ( a here len+1 len+1 -- a here len+1 ) (R -- linkaddr len+1 ) 15120 */
+ {.type FromDictionary, {.p M_cmove}, .src = "dd M_cmove ; ( a here len+1 -- ) (R -- linkaddr len+1 )"}, /* dd M_cmove ; ( a here len+1 -- ) (R -- linkaddr len+1 ) 15128 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop ; ( -- len+1 ) (R -- linkaddr )"}, /* dd M_rpop ; ( -- len+1 ) (R -- linkaddr ) 15136 */
+ {.type FromDictionary, {.p C_allot}, .src = "dd C_allot ; ( -- ) (R -- linkaddr ) here = here+len+1"}, /* dd C_allot ; ( -- ) (R -- linkaddr ) here = here+len+1 15144 */
+ {.type FromDictionary, {.p C_align}, .src = "dd C_align ; sets Dp = aligned here"}, /* dd C_align ; sets Dp = aligned here 15152 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15160 */
+ {.type FromDictionary, {.p M_variable}, .src = "dd M_variable"}, /* dd M_variable 15168 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch ; ( -- variablecfa) (R -- linkaddr )"}, /* dd M_fetch ; ( -- variablecfa) (R -- linkaddr ) 15176 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma ; ( -- ) put the variablecfa into the cfa"}, /* dd C_comma ; ( -- ) put the variablecfa into the cfa 15184 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop ; ( -- linkaddr) (R -- )"}, /* dd M_rpop ; ( -- linkaddr) (R -- ) 15192 */
+ {.type FromDictionary, {.p MV_Dtop}, .src = "dd MV_Dtop"}, /* dd MV_Dtop 15200 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store ; Dtop = just created link address"}, /* dd M_store ; Dtop = just created link address 15208 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15216 */
+ {.type Header, {.hdr { 8, "variable", /* C_variable = 15240 */ colon }}}, /* CENTRY "variable" variable 8 ; compile to put the there then on the stack h 15248 */
+ {.type FromDictionary, {.p C_create}, .src = "dd C_create"}, /* dd C_create 15256 */
+ {.type FromDictionary, {.p C_there}, .src = "dd C_there"}, /* dd C_there 15264 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma ; put the next available variable location in pfa"}, /* dd C_comma ; put the next available variable location in pfa 15272 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15280 */
+ {.type Absolute, {.p 1}}, /* dd 1 15288 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 15296 */
+ {.type FromDictionary, {.p C_vallot}, .src = "dd C_vallot ; there = there+8, stored at Vp"}, /* dd C_vallot ; there = there+8, stored at Vp 15304 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15312 */
+ {.type Header, {.hdr { 8, "constant", /* C_constant = 15336 */ colon }}}, /* CENTRY "constant" constant 8 ; ( n -- ) do the same as variable but change the cfa to (constant) h 15344 */
+ {.type FromDictionary, {.p C_create}, .src = "dd C_create ; create dictionary header upto the cfa"}, /* dd C_create ; create dictionary header upto the cfa 15352 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15360 */
+ {.type FromDictionary, {.p M_constant}, .src = "dd M_constant"}, /* dd M_constant 15368 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch ; ( Contstantcfa -- (constant) )"}, /* dd M_fetch ; ( Contstantcfa -- (constant) ) 15376 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here ; ( (constant) -- (constant) here )"}, /* dd C_here ; ( (constant) -- (constant) here ) 15384 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15392 */
+ {.type Absolute, {.p 1}}, /* dd 1 15400 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells ; ( (constant) here -- (constant) here 8 )"}, /* dd C_cells ; ( (constant) here -- (constant) here 8 ) 15408 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus ; ( (constant) here 8 -- (constant) here-8 )"}, /* dd M_minus ; ( (constant) here 8 -- (constant) here-8 ) 15416 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store ; ( (constant) here-8 -- ) changed cfa from (variable) to (constant) "}, /* dd M_store ; ( (constant) here-8 -- ) changed cfa from (variable) to (constant) 15424 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma ; store n into the dictionary"}, /* dd C_comma ; store n into the dictionary 15432 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15440 */
+ {.type Header, {.hdr { 9, "immediate", /* C_immediate = 15464 */ colon }}}, /* CENTRY "immediate" immediate 9 h 15472 */
+ {.type FromDictionary, {.p MV_Dp}, .src = "dd MV_Dp"}, /* dd MV_Dp 15480 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 15488 */
+ {.type FromDictionary, {.p C_cell_plus}, .src = "dd C_cell_plus"}, /* dd C_cell_plus 15496 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 15504 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 15512 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15520 */
+ {.type Absolute, {.p 128}}, /* dd 128 15528 */
+ {.type FromDictionary, {.p M_binor}, .src = "dd M_binor"}, /* dd M_binor 15536 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 15544 */
+ {.type FromDictionary, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 15552 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15560 */
+ {.type Header, {.hdr { 4, ">cfa", /* C_tocfa = 15576 */ colon }}}, /* CENTRY ">cfa" tocfa 4 h 15584 */
+ {.type FromDictionary, {.p C_count}, .src = "dd C_count"}, /* dd C_count 15592 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15600 */
+ {.type Absolute, {.p 63}}, /* dd 63 15608 */
+ {.type FromDictionary, {.p M_binand}, .src = "dd M_binand"}, /* dd M_binand 15616 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 15624 */
+ {.type FromDictionary, {.p C_aligned}, .src = "dd C_aligned"}, /* dd C_aligned 15632 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15640 */
+ {.type Header, {.hdr { 7, "compile", /* C_compile = 15656 */ colon }}}, /* CENTRY "compile" compile 7 h 15664 */
+ {.type FromDictionary, {.p C_findname}, .src = "dd C_findname"}, /* dd C_findname 15672 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 15680 */
+ {.type FromDictionary, {.p L_C_compile}, .src = "dd L_C_compile"}, /* dd L_C_compile 15688 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 15696 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 15704 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15712 */
+ {.type Absolute, {.p 128}}, /* dd 128 15720 */
+ {.type FromDictionary, {.p M_binand}, .src = "dd M_binand"}, /* dd M_binand 15728 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 15736 */
+ {.type FromDictionary, {.p L_C_compile_1}, .src = "dd L_C_compile_1"}, /* dd L_C_compile_1 15744 */
+ {.type FromDictionary, {.p C_tocfa}, .src = "dd C_tocfa ; immediate"}, /* dd C_tocfa ; immediate 15752 */
+ {.type FromDictionary, {.p M_execute}, .src = "dd M_execute"}, /* dd M_execute 15760 */
+ {.type FromDictionary, {.p C_qstack}, .src = "dd C_qstack"}, /* dd C_qstack 15768 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 15776 */
+ {.type FromDictionary, {.p L_C_compile_2}, .src = "dd L_C_compile_2"}, /* dd L_C_compile_2 15784 */
+ {.type FromDictionary, {.p C_tocfa}, .src = "dd C_tocfa"}, /* dd C_tocfa 15792 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 15800 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 15808 */
+ {.type FromDictionary, {.p L_C_compile_3}, .src = "dd L_C_compile_3"}, /* dd L_C_compile_3 15816 */
+ {.type FromDictionary, {.p C_count}, .src = "dd C_count"}, /* dd C_count 15824 */
+ {.type FromDictionary, {.p C_number}, .src = "dd C_number"}, /* dd C_number 15832 */
+ {.type FromDictionary, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 15840 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 15848 */
+ {.type FromDictionary, {.p L_C_compile_4}, .src = "dd L_C_compile_4"}, /* dd L_C_compile_4 15856 */
+ {.type FromDictionary, {.p C_space}, .src = "dd C_space"}, /* dd C_space 15864 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 15872 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15880 */
+ {.type FromDictionary, {.p L_C_compile_5}, .src = "dd L_C_compile_5"}, /* dd L_C_compile_5 15888 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15896 */
+ {.type Absolute, {.p 3}}, /* dd 3 15904 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 15912 */
+ {.type FromDictionary, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 15920 */
+ {.type FromDictionary, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 15928 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 15936 */
+ {.type FromDictionary, {.p L_C_compile_6}, .src = "dd L_C_compile_6"}, /* dd L_C_compile_6 15944 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15952 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 15960 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 15968 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 15976 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 15984 */
+ {.type Header, {.hdr { 1, "]", /* C_close_bracket = 16000 */ colon }}}, /* CENTRY "]" close_bracket 1 h 16008 */
+ {.type FromDictionary, {.p MV_State}, .src = "dd MV_State"}, /* dd MV_State 16016 */
+ {.type FromDictionary, {.p C_on}, .src = "dd C_on"}, /* dd C_on 16024 */
+ {.type FromDictionary, {.p C_word}, .src = "dd C_word"}, /* dd C_word 16032 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 16040 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 16048 */
+ {.type FromDictionary, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 16056 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 16064 */
+ {.type FromDictionary, {.p L_C_close_bracket_1}, .src = "dd L_C_close_bracket_1"}, /* dd L_C_close_bracket_1 16072 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 16080 */
+ {.type FromDictionary, {.p C_word}, .src = "dd C_word"}, /* dd C_word 16088 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 16096 */
+ {.type FromDictionary, {.p L_C_close_bracket_2}, .src = "dd L_C_close_bracket_2"}, /* dd L_C_close_bracket_2 16104 */
+ {.type FromDictionary, {.p C_compile}, .src = "dd C_compile"}, /* dd C_compile 16112 */
+ {.type FromDictionary, {.p MV_State}, .src = "dd MV_State"}, /* dd MV_State 16120 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 16128 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 16136 */
+ {.type FromDictionary, {.p L_C_close_bracket_3}, .src = "dd L_C_close_bracket_3"}, /* dd L_C_close_bracket_3 16144 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 16152 */
+ {.type FromDictionary, {.p L_C_close_bracket}, .src = "dd L_C_close_bracket"}, /* dd L_C_close_bracket 16160 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16168 */
+ {.type IHeader, {.hdr { 1, "[", /* CI_open_bracket = 16184 */ colon }}}, /* CIENTRY "[" open_bracket 1 h 16192 */
+ {.type FromDictionary, {.p MV_State}, .src = "dd MV_State"}, /* dd MV_State 16200 */
+ {.type FromDictionary, {.p C_off}, .src = "dd C_off"}, /* dd C_off 16208 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16216 */
+ {.type Header, {.hdr { 6, "smudge", /* C_smudge = 16232 */ colon }}}, /* CENTRY "smudge" smudge 6 h 16240 */
+ {.type FromDictionary, {.p MV_Dp}, .src = "dd MV_Dp"}, /* dd MV_Dp 16248 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 16256 */
+ {.type FromDictionary, {.p C_cell_plus}, .src = "dd C_cell_plus"}, /* dd C_cell_plus 16264 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 16272 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 16280 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16288 */
+ {.type Absolute, {.p 64}}, /* dd 64 16296 */
+ {.type FromDictionary, {.p M_binor}, .src = "dd M_binor"}, /* dd M_binor 16304 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 16312 */
+ {.type FromDictionary, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 16320 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16328 */
+ {.type Header, {.hdr { 6, "reveal", /* C_reveal = 16344 */ colon }}}, /* CENTRY "reveal" reveal 6 h 16352 */
+ {.type FromDictionary, {.p MV_Dp}, .src = "dd MV_Dp"}, /* dd MV_Dp 16360 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 16368 */
+ {.type FromDictionary, {.p C_cell_plus}, .src = "dd C_cell_plus"}, /* dd C_cell_plus 16376 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 16384 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 16392 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16400 */
+ {.type Absolute, {.p 64}}, /* dd 64 16408 */
+ {.type FromDictionary, {.p C_invert}, .src = "dd C_invert"}, /* dd C_invert 16416 */
+ {.type FromDictionary, {.p M_binand}, .src = "dd M_binand"}, /* dd M_binand 16424 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 16432 */
+ {.type FromDictionary, {.p M_cstore}, .src = "dd M_cstore"}, /* dd M_cstore 16440 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16448 */
+ {.type Header, {.hdr { 1, ":", /* C_colon = 16464 */ colon }}}, /* CENTRY ":" colon 1 h 16472 */
+ {.type FromDictionary, {.p C_create}, .src = "dd C_create ; create a dictionary header with (variable) at cfa"}, /* dd C_create ; create a dictionary header with (variable) at cfa 16480 */
+ {.type FromDictionary, {.p C_smudge}, .src = "dd C_smudge"}, /* dd C_smudge 16488 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16496 */
+ {.type FromDictionary, {.p M_colon}, .src = "dd M_colon"}, /* dd M_colon 16504 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch ; ( Coloncfa -- (colon) ) fetches the cfa of M_colon"}, /* dd M_fetch ; ( Coloncfa -- (colon) ) fetches the cfa of M_colon 16512 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here ; ( (colon) -- (colon) here )"}, /* dd C_here ; ( (colon) -- (colon) here ) 16520 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16528 */
+ {.type Absolute, {.p 1}}, /* dd 1 16536 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 16544 */
+ {.type FromDictionary, {.p M_minus}, .src = "dd M_minus ; ( (colon) here -- (colon) here-8 )"}, /* dd M_minus ; ( (colon) here -- (colon) here-8 ) 16552 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store ; ( (colon) here-8 -- ) change the cfa from (variable) to colon"}, /* dd M_store ; ( (colon) here-8 -- ) change the cfa from (variable) to colon 16560 */
+ {.type FromDictionary, {.p C_close_bracket}, .src = "dd C_close_bracket"}, /* dd C_close_bracket 16568 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16576 */
+ {.type IHeader, {.hdr { 1, ";", /* CI_semicolon = 16592 */ colon }}}, /* CIENTRY ";" semicolon 1 h 16600 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16608 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16616 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16624 */
+ {.type FromDictionary, {.p MV_State}, .src = "dd MV_State"}, /* dd MV_State 16632 */
+ {.type FromDictionary, {.p C_off}, .src = "dd C_off"}, /* dd C_off 16640 */
+ {.type FromDictionary, {.p C_reveal}, .src = "dd C_reveal"}, /* dd C_reveal 16648 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16656 */
+ {.type IHeader, {.hdr { 7, "recurse", /* CI_recurse = 16672 */ colon }}}, /* CIENTRY "recurse" recurse 7 h 16680 */
+ {.type FromDictionary, {.p MV_Dp}, .src = "dd MV_Dp"}, /* dd MV_Dp 16688 */
+ {.type FromDictionary, {.p M_fetch}, .src = "dd M_fetch"}, /* dd M_fetch 16696 */
+ {.type FromDictionary, {.p C_cell_plus}, .src = "dd C_cell_plus"}, /* dd C_cell_plus 16704 */
+ {.type FromDictionary, {.p C_tocfa}, .src = "dd C_tocfa"}, /* dd C_tocfa 16712 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16720 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16728 */
+ {.type Header, {.hdr { 4, "char", /* C_char = 16744 */ colon }}}, /* CENTRY "char" char 4 ; ( -- c ) fetch the first character of the next word from input h 16752 */
+ {.type FromDictionary, {.p C_word}, .src = "dd C_word ; ( c -- a ) puts the address of the counted string from the input on the stack"}, /* dd C_word ; ( c -- a ) puts the address of the counted string from the input on the stack 16760 */
+ {.type FromDictionary, {.p C_1plus}, .src = "dd C_1plus ; skip the count"}, /* dd C_1plus ; skip the count 16768 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch ; fetch the first character"}, /* dd M_cfetch ; fetch the first character 16776 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16784 */
+ {.type Header, {.hdr { 7, "literal", /* C_literal = 16800 */ colon }}}, /* CENTRY "literal" literal 7 ; ( n -- ) adds (literal) n to the dictionary h 16808 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16816 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16824 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16832 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 16840 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 16848 */
+ {.type Header, {.hdr { 8, "sliteral", /* C_sliteral = 16872 */ colon }}}, /* CENTRY "sliteral" sliteral 8 ; ( -- ) adds (sliteral) a n to the dictionary h 16880 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 16888 */
+ {.type FromDictionary, {.p M_sliteral}, .src = "dd M_sliteral"}, /* dd M_sliteral 16896 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma ; adds (sliteral) to the dictionary"}, /* dd C_comma ; adds (sliteral) to the dictionary 16904 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here ; ( here )"}, /* dd C_here ; ( here ) 16912 */
+ {.type FromDictionary, {.p C_doublequote}, .src = "dd C_doublequote"}, /* dd C_doublequote 16920 */
+ {.type FromDictionary, {.p MV_Tib}, .src = "dd MV_Tib"}, /* dd MV_Tib 16928 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( here a -- here a a )"}, /* dd M_dup ; ( here a -- here a a ) 16936 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch ; ( here a a -- here a n )"}, /* dd M_cfetch ; ( here a a -- here a n ) 16944 */
+ {.type FromDictionary, {.p C_1plus}, .src = "dd C_1plus ; ( here a n -- here a n+1 ) n+1 as 1 for the count and n for the length of the string"}, /* dd C_1plus ; ( here a n -- here a n+1 ) n+1 as 1 for the count and n for the length of the string 16952 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( here a n+1 -- here a ) (R -- n+1)"}, /* dd M_rpush ; ( here a n+1 -- here a ) (R -- n+1) 16960 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap ; ( here a -- a here ) (R -- n+1)"}, /* dd M_xswap ; ( here a -- a here ) (R -- n+1) 16968 */
+ {.type FromDictionary, {.p M_rfetch}, .src = "dd M_rfetch ; ( a here -- a here n+1 ) (R -- n+1 )"}, /* dd M_rfetch ; ( a here -- a here n+1 ) (R -- n+1 ) 16976 */
+ {.type FromDictionary, {.p M_cmove}, .src = "dd M_cmove ; ( a here n+1 -- ) moves n+1 from a to here"}, /* dd M_cmove ; ( a here n+1 -- ) moves n+1 from a to here 16984 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop ; ( -- n+1 ) (R -- )"}, /* dd M_rpop ; ( -- n+1 ) (R -- ) 16992 */
+ {.type FromDictionary, {.p C_allot}, .src = "dd C_allot ; ( n+1 -- ) here = here+n+1"}, /* dd C_allot ; ( n+1 -- ) here = here+n+1 17000 */
+ {.type FromDictionary, {.p C_align}, .src = "dd C_align ; align here"}, /* dd C_align ; align here 17008 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17016 */
+ {.type Header, {.hdr { 6, "string", /* C_string = 17032 */ colon }}}, /* CENTRY "string" string 6 ; ( c -- ) h 17040 */
+ {.type FromDictionary, {.p C_word}, .src = "dd C_word"}, /* dd C_word 17048 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 17056 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 17064 */
+ {.type FromDictionary, {.p C_1plus}, .src = "dd C_1plus"}, /* dd C_1plus 17072 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 17080 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 17088 */
+ {.type FromDictionary, {.p M_rfetch}, .src = "dd M_rfetch"}, /* dd M_rfetch 17096 */
+ {.type FromDictionary, {.p M_cmove}, .src = "dd M_cmove"}, /* dd M_cmove 17104 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 17112 */
+ {.type FromDictionary, {.p C_allot}, .src = "dd C_allot"}, /* dd C_allot 17120 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17128 */
+ {.type IHeader, {.hdr { 6, "[char]", /* CI_char_brackets = 17144 */ colon }}}, /* CIENTRY "[char]" char_brackets 6 ; take the next character from the input stream during compilation h 17152 */
+ {.type FromDictionary, {.p C_word}, .src = "dd C_word"}, /* dd C_word 17160 */
+ {.type FromDictionary, {.p C_1plus}, .src = "dd C_1plus"}, /* dd C_1plus 17168 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 17176 */
+ {.type FromDictionary, {.p C_literal}, .src = "dd C_literal"}, /* dd C_literal 17184 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17192 */
+ {.type IHeader, {.hdr { 3, "[']", /* CI_quote_brackets = 17208 */ colon }}}, /* CIENTRY "[']" quote_brackets 3 ; take the address of next token from the input stream during compilation h 17216 */
+ {.type FromDictionary, {.p C_single_quote}, .src = "dd C_single_quote"}, /* dd C_single_quote 17224 */
+ {.type FromDictionary, {.p C_literal}, .src = "dd C_literal"}, /* dd C_literal 17232 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17240 */
+ {.type IHeader, {.hdr { 1, "(", /* CI_openparen = 17256 */ colon }}}, /* CIENTRY "(" openparen 1 ; ignore until ) from the input stream during compilation h 17264 */
+ {.type FromDictionary, {.p C_closeparen}, .src = "dd C_closeparen"}, /* dd C_closeparen 17272 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 17280 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17288 */
+/* ; if the line is longer than Tib, then skipping this line is not good enough. hence, throwing an error when >Limit == Tib length */ {.type IHeader, {.hdr { 1, "\\", /* CI_backslash = 17304 */ colon }}}, /* CIENTRY "\\" backslash 1 ; when there is no Acceptvec, find a newline in the buffer and skip until that h 17312 */
+ {.type FromDictionary, {.p C_line}, .src = "dd C_line"}, /* dd C_line 17320 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17328 */
+ {.type Header, {.hdr { 8, "(?abort)", /* C_qabort_parens = 17352 */ colon }}}, /* CENTRY "(?abort)" qabort_parens 8 h 17360 */
+ {.type FromDictionary, {.p MV_State}, .src = "dd MV_State"}, /* dd MV_State 17368 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 17376 */
+ {.type FromDictionary, {.p L_C_qabort_parens}, .src = "dd L_C_qabort_parens"}, /* dd L_C_qabort_parens 17384 */
+ {.type FromDictionary, {.p C_space}, .src = "dd C_space"}, /* dd C_space 17392 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 17400 */
+ {.type FromDictionary, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 17408 */
+ {.type FromDictionary, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 17416 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 17424 */
+ {.type FromDictionary, {.p L_C_qabort_parens_1}, .src = "dd L_C_qabort_parens_1"}, /* dd L_C_qabort_parens_1 17432 */
+ {.type FromDictionary, {.p C_2drop}, .src = "dd C_2drop"}, /* dd C_2drop 17440 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17448 */
+ {.type IHeader, {.hdr { 6, "abort\"", /* CI_abort_double_quote = 17464 */ colon }}}, /* CIENTRY "abort\"" abort_double_quote 6 h 17472 */
+ {.type FromDictionary, {.p C_sliteral}, .src = "dd C_sliteral"}, /* dd C_sliteral 17480 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17488 */
+ {.type FromDictionary, {.p C_qabort_parens}, .src = "dd C_qabort_parens"}, /* dd C_qabort_parens 17496 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 17504 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17512 */
+ {.type Header, {.hdr { 1, "\"", /* C_double_quote = 17528 */ colon }}}, /* CENTRY "\"" double_quote 1 ; ( | .. " -- 'text count ) stores counted string in the dictionary and also leaves the address and count of the string on the stack - to use strings at the interpreter prompt h 17536 */
+ {.type FromDictionary, {.p C_doublequote}, .src = "dd C_doublequote"}, /* dd C_doublequote 17544 */
+ {.type FromDictionary, {.p C_count}, .src = "dd C_count"}, /* dd C_count 17552 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 17560 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 17568 */
+ {.type FromDictionary, {.p M_rfetch}, .src = "dd M_rfetch"}, /* dd M_rfetch 17576 */
+ {.type FromDictionary, {.p M_cmove}, .src = "dd M_cmove"}, /* dd M_cmove 17584 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 17592 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 17600 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 17608 */
+ {.type FromDictionary, {.p C_allot}, .src = "dd C_allot"}, /* dd C_allot 17616 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17624 */
+ {.type Header, {.hdr { 2, "c\"", /* C_cdouble_quote = 17640 */ colon }}}, /* CENTRY "c\"" cdouble_quote 2 ; ( | ..." -- 'counted-string ) stores counted string in the dictionary and also leaves the address of the counted string on the stack. For use in interpretive mode. shouldn't this be using pad? h 17648 */
+ {.type FromDictionary, {.p C_doublequote}, .src = "dd C_doublequote ; ( \" -- a ) a = counted string address. a will be in Wordbuf"}, /* dd C_doublequote ; ( \" -- a ) a = counted string address. a will be in Wordbuf 17656 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( a -- a a)"}, /* dd M_dup ; ( a -- a a) 17664 */
+ {.type FromDictionary, {.p M_cfetch}, .src = "dd M_cfetch ; ( a a -- a n )"}, /* dd M_cfetch ; ( a a -- a n ) 17672 */
+ {.type FromDictionary, {.p C_1plus}, .src = "dd C_1plus ; ( a n -- a n+1 )"}, /* dd C_1plus ; ( a n -- a n+1 ) 17680 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( a n -- a ) (R -- n+1)"}, /* dd M_rpush ; ( a n -- a ) (R -- n+1) 17688 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here ; ( a -- a here ) (R -- n+1)"}, /* dd C_here ; ( a -- a here ) (R -- n+1) 17696 */
+ {.type FromDictionary, {.p M_rfetch}, .src = "dd M_rfetch ; ( a here -- a here n+1) (R -- n+1)"}, /* dd M_rfetch ; ( a here -- a here n+1) (R -- n+1) 17704 */
+ {.type FromDictionary, {.p M_cmove}, .src = "dd M_cmove ; move counted string from a to here"}, /* dd M_cmove ; move counted string from a to here 17712 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here ; ( -- here )"}, /* dd C_here ; ( -- here ) 17720 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop ; ( here -- here n+1 )(R -- )"}, /* dd M_rpop ; ( here -- here n+1 )(R -- ) 17728 */
+ {.type FromDictionary, {.p C_allot}, .src = "dd C_allot ; ( here n+1 -- here) here += n+1"}, /* dd C_allot ; ( here n+1 -- here) here += n+1 17736 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17744 */
+ {.type IHeader, {.hdr { 2, "s\"", /* CI_sdouble_quote = 17760 */ colon }}}, /* CIENTRY "s\"" sdouble_quote 2 ; ( | ..." -- 'text count ) add the string from the input stream to the dictionary as (sliteral) count string - at run-time puts the ( -- addr n) of the counted string on the stack. h 17768 */
+ {.type FromDictionary, {.p C_sliteral}, .src = "dd C_sliteral"}, /* dd C_sliteral 17776 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17784 */
+ {.type IHeader, {.hdr { 2, ".\"", /* CI_dotstr = 17800 */ colon }}}, /* CIENTRY ".\"" dotstr 2 ; ( | ..." -- ) do what s" does and then add a type word to the dictionary to print that string h 17808 */
+ {.type FromDictionary, {.p C_sliteral}, .src = "dd C_sliteral"}, /* dd C_sliteral 17816 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17824 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 17832 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 17840 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17848 */
+ {.type IHeader, {.hdr { 2, "if", /* CI_if = 17864 */ colon }}}, /* CIENTRY "if" if 2 h 17872 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17880 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 17888 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 17896 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 17904 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17912 */
+ {.type Absolute, {.p 0}}, /* dd 0 17920 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 17928 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 17936 */
+ {.type IHeader, {.hdr { 4, "else", /* CI_else = 17952 */ colon }}}, /* CIENTRY "else" else 4 h 17960 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 17968 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 17976 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 17984 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 17992 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 18000 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18008 */
+ {.type Absolute, {.p 0}}, /* dd 0 18016 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 18024 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 18032 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 18040 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 18048 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 18056 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18064 */
+ {.type IHeader, {.hdr { 4, "then", /* CI_then = 18080 */ colon }}}, /* CIENTRY "then" then 4 h 18088 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 18096 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 18104 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 18112 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18120 */
+ {.type IHeader, {.hdr { 5, "begin", /* CI_begin = 18136 */ colon }}}, /* CIENTRY "begin" begin 5 h 18144 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 18152 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18160 */
+ {.type IHeader, {.hdr { 5, "again", /* CI_again = 18176 */ colon }}}, /* CIENTRY "again" again 5 h 18184 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18192 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 18200 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 18208 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 18216 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18224 */
+ {.type IHeader, {.hdr { 5, "until", /* CI_until = 18240 */ colon }}}, /* CIENTRY "until" until 5 h 18248 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18256 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 18264 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 18272 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 18280 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18288 */
+ {.type IHeader, {.hdr { 5, "while", /* CI_while = 18304 */ colon }}}, /* CIENTRY "while" while 5 h 18312 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18320 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 18328 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 18336 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 18344 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18352 */
+ {.type Absolute, {.p 0}}, /* dd 0 18360 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 18368 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18376 */
+ {.type IHeader, {.hdr { 6, "repeat", /* CI_repeat = 18392 */ colon }}}, /* CIENTRY "repeat" repeat 6 h 18400 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18408 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 18416 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 18424 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 18432 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 18440 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 18448 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 18456 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 18464 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18472 */
+ {.type IHeader, {.hdr { 2, "do", /* CI_do = 18488 */ colon }}}, /* CIENTRY "do" do 2 h 18496 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18504 */
+ {.type FromDictionary, {.p M_doinit}, .src = "dd M_doinit ; compile this into the definition. Puts limit and index on the run stack at run time"}, /* dd M_doinit ; compile this into the definition. Puts limit and index on the run stack at run time 18512 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma ; puts (do) into the dictionary"}, /* dd C_comma ; puts (do) into the dictionary 18520 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18528 */
+ {.type Absolute, {.p 0}}, /* dd 0 ; ( -- 0 ) 18536 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here ; ( 0 -- 0 here1 )"}, /* dd C_here ; ( 0 -- 0 here1 ) 18544 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18552 */
+ {.type IHeader, {.hdr { 4, "loop", /* CI_loop = 18568 */ colon }}}, /* CIENTRY "loop" loop 4 ; ( 0 here1 -- ) h 18576 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18584 */
+ {.type FromDictionary, {.p M_doloop}, .src = "dd M_doloop ; ( 0 here1 -- 0 here1 (loop) )"}, /* dd M_doloop ; ( 0 here1 -- 0 here1 (loop) ) 18592 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma ; dictionary has (do) ... (loop) ( 0 here1 (loop) -- 0 here1 )"}, /* dd C_comma ; dictionary has (do) ... (loop) ( 0 here1 (loop) -- 0 here1 ) 18600 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma ; dictionary has (do) ... (loop) here1 ( 0 here1 -- 0 )"}, /* dd C_comma ; dictionary has (do) ... (loop) here1 ( 0 here1 -- 0 ) 18608 */
+ {.type FromDictionary, {.p C_qdup}, .src = "dd C_qdup"}, /* dd C_qdup 18616 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 18624 */
+ {.type FromDictionary, {.p L234}, .src = "dd L234"}, /* dd L234 18632 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 18640 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 18648 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 18656 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18664 */
+ {.type IHeader, {.hdr { 5, "+loop", /* CI_ploop = 18680 */ colon }}}, /* CIENTRY "+loop" ploop 5 h 18688 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18696 */
+ {.type FromDictionary, {.p M_doploop}, .src = "dd M_doploop"}, /* dd M_doploop 18704 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 18712 */
+ {.type FromDictionary, {.p C_comma}, .src = "dd C_comma"}, /* dd C_comma 18720 */
+ {.type FromDictionary, {.p C_qdup}, .src = "dd C_qdup"}, /* dd C_qdup 18728 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 18736 */
+ {.type FromDictionary, {.p L236}, .src = "dd L236"}, /* dd L236 18744 */
+ {.type FromDictionary, {.p C_here}, .src = "dd C_here"}, /* dd C_here 18752 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 18760 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 18768 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18776 */
+ {.type Header, {.hdr { 3, "w/o", /* C_wo = 18792 */ colon }}}, /* CENTRY "w/o" wo 3 h 18800 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18808 */
+ {.type Absolute, {.p 1}}, /* dd 1 18816 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18824 */
+ {.type Absolute, {.p 512}}, /* dd 512 18832 */
+ {.type FromDictionary, {.p M_binor}, .src = "dd M_binor"}, /* dd M_binor 18840 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18848 */
+ {.type Absolute, {.p 64}}, /* dd 64 18856 */
+ {.type FromDictionary, {.p M_binor}, .src = "dd M_binor"}, /* dd M_binor 18864 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18872 */
+ {.type Header, {.hdr { 3, "r/o", /* C_ro = 18888 */ colon }}}, /* CENTRY "r/o" ro 3 h 18896 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18904 */
+ {.type Absolute, {.p 0}}, /* dd 0 18912 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18920 */
+ {.type Header, {.hdr { 3, "r/w", /* C_rw = 18936 */ colon }}}, /* CENTRY "r/w" rw 3 h 18944 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 18952 */
+ {.type Absolute, {.p 2}}, /* dd 2 18960 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 18968 */
+ {.type Header, {.hdr { 7, "cstring", /* C_cstring = 18984 */ colon }}}, /* CENTRY "cstring" cstring 7 ; ( 'text count o -- o+'pad+1024 ) \ copy string to pad+o and add a null byte at the end h 18992 */
+ {.type FromDictionary, {.p C_pad}, .src = "dd C_pad ; ( 'text count o 'pad )"}, /* dd C_pad ; ( 'text count o 'pad ) 19000 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19008 */
+ {.type Absolute, {.p 1024}}, /* dd 1024 ; ( 'text count o 'pad 1024 ) 19016 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus ; ( 'text count o 'pad+1024 )"}, /* dd M_plus ; ( 'text count o 'pad+1024 ) 19024 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus ; ( 'text count o+'pad+1024 ) o=padoffset"}, /* dd M_plus ; ( 'text count o+'pad+1024 ) o=padoffset 19032 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 19040 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( 'text count o+'pad+1024 ) (R o+'pad+1024 )"}, /* dd M_rpush ; ( 'text count o+'pad+1024 ) (R o+'pad+1024 ) 19048 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap ; ( 'text o+'pad+1024 count ) (R o+'pad+1024 )"}, /* dd M_xswap ; ( 'text o+'pad+1024 count ) (R o+'pad+1024 ) 19056 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( 'text o+'pad+1024 count count ) (R o+'pad+1024 )"}, /* dd M_dup ; ( 'text o+'pad+1024 count count ) (R o+'pad+1024 ) 19064 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( 'text o+'pad+1024 count ) (R o+'pad+1024 count )"}, /* dd M_rpush ; ( 'text o+'pad+1024 count ) (R o+'pad+1024 count ) 19072 */
+ {.type FromDictionary, {.p M_cmove}, .src = "dd M_cmove ; moves the filename from 'text to o+'pad+1024"}, /* dd M_cmove ; moves the filename from 'text to o+'pad+1024 19080 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19088 */
+ {.type Absolute, {.p 0}}, /* dd 0 ; ( 0 ) (R o+'pad+1024 count ) 19096 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop ; ( 0 count ) (R o+'pad+1024 )"}, /* dd M_rpop ; ( 0 count ) (R o+'pad+1024 ) 19104 */
+ {.type FromDictionary, {.p M_rfetch}, .src = "dd M_rfetch ; ( 0 count o+'pad+1024 ) (R o+'pad+1024 )"}, /* dd M_rfetch ; ( 0 count o+'pad+1024 ) (R o+'pad+1024 ) 19112 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus ; ( 0 count+o+'pad+1024 ) (R o+'pad+1024 )"}, /* dd M_plus ; ( 0 count+o+'pad+1024 ) (R o+'pad+1024 ) 19120 */
+ {.type FromDictionary, {.p M_cstore}, .src = "dd M_cstore ; makes the filename to a null terminated string"}, /* dd M_cstore ; makes the filename to a null terminated string 19128 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop ; ( o+'pad+1024 )"}, /* dd M_rpop ; ( o+'pad+1024 ) 19136 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 19144 */
+ {.type Header, {.hdr { 8, "cstring0", /* C_cstring0 = 19168 */ colon }}}, /* CENTRY "cstring0" cstring0 8 ; ( 'text count -- 'text ) \ copy string to pad+1024 and add a null byte at the end h 19176 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19184 */
{.type Absolute, {.p 0}}, /* dd 0 19192 */
- {.type FromH0, {.p MV_Infd}, .src = "dd MV_Infd"}, /* dd MV_Infd 19200 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; stdin = 0"}, /* dd M_store ; stdin = 0 19208 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19216 */
- {.type Absolute, {.p 1}}, /* dd 1 19224 */
- {.type FromH0, {.p MV_Outfd}, .src = "dd MV_Outfd"}, /* dd MV_Outfd 19232 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; stdout = 1"}, /* dd M_store ; stdout = 1 19240 */
- {.type FromH0, {.p MV_State}, .src = "dd MV_State"}, /* dd MV_State 19248 */
- {.type FromH0, {.p C_off}, .src = "dd C_off ; off stores 0 at state"}, /* dd C_off ; off stores 0 at state 19256 */
- {.type FromH0, {.p C_decimal}, .src = "dd C_decimal ; decimal setting base = 0"}, /* dd C_decimal ; decimal setting base = 0 19264 */
- {.type FromH0, {.p C_quit}, .src = "dd C_quit ; quit"}, /* dd C_quit ; quit 19272 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 19280 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal ; test code"}, /* dd M_literal ; test code 19288 */
- {.type Absolute, {.p 66}}, /* dd 66 19296 */
- {.type FromH0, {.p M_Wordb}, .src = "dd M_Wordb"}, /* dd M_Wordb 19304 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 19312 */
- {.type FromH0, {.p MC_STDOUT}, .src = "dd MC_STDOUT"}, /* dd MC_STDOUT 19320 */
- {.type FromH0, {.p M_Wordb}, .src = "dd M_Wordb"}, /* dd M_Wordb 19328 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19336 */
- {.type Absolute, {.p 1}}, /* dd 1 19344 */
- {.type FromH0, {.p M_syswrite}, .src = "dd M_syswrite"}, /* dd M_syswrite 19352 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop ; drop the return value of write"}, /* dd M_drop ; drop the return value of write 19360 */
- {.type FromH0, {.p MC_STDIN}, .src = "dd MC_STDIN"}, /* dd MC_STDIN 19368 */
- {.type FromH0, {.p M_Wordb}, .src = "dd M_Wordb"}, /* dd M_Wordb 19376 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19384 */
- {.type Absolute, {.p 1}}, /* dd 1 19392 */
- {.type FromH0, {.p M_sysread}, .src = "dd M_sysread"}, /* dd M_sysread 19400 */
- {.type FromH0, {.p M_drop}, .src = "dd M_drop ; drop the return value of read"}, /* dd M_drop ; drop the return value of read 19408 */
- {.type Header, {.hdr { 7, "do-args", /* C_do_args = 19424 */ colon }}}, /* CENTRY "do-args" do_args 7 h 19432 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19440 */
- {.type Absolute, {.p 0}}, /* dd 0 19448 */
- {.type FromH0, {.p MV_Acceptvec}, .src = "dd MV_Acceptvec ; no more refills"}, /* dd MV_Acceptvec ; no more refills 19456 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; C_off ; Acceptvec == 0, reading from a buffer. no more refills."}, /* dd M_store ; C_off ; Acceptvec == 0, reading from a buffer. no more refills. 19464 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19472 */
- {.type Absolute, {.p 0}}, /* dd 0 19480 */
- {.type FromH0, {.p MV_toIn}, .src = "dd MV_toIn"}, /* dd MV_toIn 19488 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; >in = 0"}, /* dd M_store ; >in = 0 19496 */
- {.type FromH0, {.p M_Fthargs}, .src = "dd M_Fthargs ; ( a )"}, /* dd M_Fthargs ; ( a ) 19504 */
- {.type FromH0, {.p C_count}, .src = "dd C_count ; ( a+1 n )"}, /* dd C_count ; ( a+1 n ) 19512 */
- {.type FromH0, {.p MV_toLimit}, .src = "dd MV_toLimit"}, /* dd MV_toLimit 19520 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; ( a+1 ) >limit = n"}, /* dd M_store ; ( a+1 ) >limit = n 19528 */
- {.type FromH0, {.p MV_Sourcebuf}, .src = "dd MV_Sourcebuf"}, /* dd MV_Sourcebuf 19536 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; sourcebuf = a+1"}, /* dd M_store ; sourcebuf = a+1 19544 */
- {.type FromH0, {.p C_interpret}, .src = "dd C_interpret"}, /* dd C_interpret 19552 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 19560 */
- {.type Header, {.hdr { 4, "boot", /* C_boot = 19576 */ colon }}}, /* CENTRY "boot" boot 4 h 19584 */
- {.type FromH0, {.p M_reset}, .src = "dd M_reset ; initialize return stack"}, /* dd M_reset ; initialize return stack 19592 */
- {.type FromH0, {.p M_clear}, .src = "dd M_clear ; SP = sstack_end initialize data stack"}, /* dd M_clear ; SP = sstack_end initialize data stack 19600 */
- {.type FromH0, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19608 */
- {.type FromH0, {.p C_parenabort}, .src = "dd C_parenabort ; ( (abort) -- )"}, /* dd C_parenabort ; ( (abort) -- ) 19616 */
- {.type FromH0, {.p MV_Abortvec}, .src = "dd MV_Abortvec ; variable that puts (abort) code address on the stack"}, /* dd MV_Abortvec ; variable that puts (abort) code address on the stack 19624 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; variable abortvec = (abort) code address"}, /* dd M_store ; variable abortvec = (abort) code address 19632 */
- {.type FromH0, {.p M_Wordb}, .src = "dd M_Wordb ; variable puts address of wordbuffer on the top of stack"}, /* dd M_Wordb ; variable puts address of wordbuffer on the top of stack 19640 */
- {.type FromH0, {.p MV_Wordbuf}, .src = "dd MV_Wordbuf ; variable wordbuf"}, /* dd MV_Wordbuf ; variable wordbuf 19648 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; variable wordbuf = address of wordbuffer"}, /* dd M_store ; variable wordbuf = address of wordbuffer 19656 */
- {.type FromH0, {.p M_Dp}, .src = "dd M_Dp"}, /* dd M_Dp 19664 */
- {.type FromH0, {.p MV_H0}, .src = "dd MV_H0 ; H0 = here at startup"}, /* dd MV_H0 ; H0 = here at startup 19672 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 19680 */
- {.type FromH0, {.p MC_STDIN}, .src = "dd MC_STDIN"}, /* dd MC_STDIN 19688 */
- {.type FromH0, {.p MV_Infd}, .src = "dd MV_Infd"}, /* dd MV_Infd 19696 */
- {.type FromH0, {.p M_store}, .src = "dd M_store ; stdin = 0"}, /* dd M_store ; stdin = 0 19704 */
- {.type FromH0, {.p MC_STDOUT}, .src = "dd MC_STDOUT"}, /* dd MC_STDOUT 19712 */
- {.type FromH0, {.p MV_Outfd}, .src = "dd MV_Outfd"}, /* dd MV_Outfd 19720 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 19728 */
- {.type FromH0, {.p MC_STDERR}, .src = "dd MC_STDERR"}, /* dd MC_STDERR 19736 */
- {.type FromH0, {.p MV_Errfd}, .src = "dd MV_Errfd"}, /* dd MV_Errfd 19744 */
- {.type FromH0, {.p M_store}, .src = "dd M_store"}, /* dd M_store 19752 */
- {.type FromH0, {.p MV_State}, .src = "dd MV_State"}, /* dd MV_State 19760 */
- {.type FromH0, {.p C_off}, .src = "dd C_off ; off stores 0 at state"}, /* dd C_off ; off stores 0 at state 19768 */
- {.type FromH0, {.p C_decimal}, .src = "dd C_decimal ; decimal sets base = 10"}, /* dd C_decimal ; decimal sets base = 10 19776 */
- {.type FromH0, {.p C_default_input}, .src = "dd C_default_input ; read lines from stdin, if args do not set one up"}, /* dd C_default_input ; read lines from stdin, if args do not set one up 19784 */
- {.type FromH0, {.p M_Fthargs}, .src = "dd M_Fthargs"}, /* dd M_Fthargs 19792 */
- {.type FromH0, {.p M_cfetch}, .src = "dd M_cfetch"}, /* dd M_cfetch 19800 */
- {.type FromH0, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 19808 */
- {.type FromH0, {.p L260}, .src = "dd L260 ; fetched 0, no args, go to the interpreter loop"}, /* dd L260 ; fetched 0, no args, go to the interpreter loop 19816 */
- {.type FromH0, {.p C_do_args}, .src = "dd C_do_args ; process args"}, /* dd C_do_args ; process args 19824 */
-/* ; dd C_default_input ; do not do this as it will override any input streams set up by the args */ {.type FromH0, {.p C_quit}, .src = "dd C_quit ; interpreter loop when there are no args or fall through after processing args"}, /* dd C_quit ; interpreter loop when there are no args or fall through after processing args 19832 */
- {.type FromH0, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 19840 */
- {.type Chars, {.str "unable to restore input"}}, /* 19864 */
- {.type Chars, {.str " Q?"}}, /* 19868 */
- {.type Chars, {.str " stack underflow"}}, /* 19885 */
- {.type Chars, {.str " I?"}}, /* 19889 */
- {.type Chars, {.str " C?"}}, /* 19893 */
- {.type Chars, {.str "I/O error"}}, /* 19903 */
- {.type Chars, {.str "uninitialized execution vector"}}, /* 19934 */
- {.type Chars, {.str " ok"}}, /* 19938 */
- {.type Chars, {.str "input line is longer than 4096 bytes"}}, /* 19975 */
- {.type Chars, {.str "read error"}}, /* 19986 */
+ {.type FromDictionary, {.p C_cstring}, .src = "dd C_cstring"}, /* dd C_cstring 19200 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 19208 */
+ {.type Header, {.hdr { 8, "cstring1", /* C_cstring1 = 19232 */ colon }}}, /* CENTRY "cstring1" cstring1 8 ; ( 'text count -- 'text ) \ copy string to pad+1536 and add a null byte at the end h 19240 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19248 */
+ {.type Absolute, {.p 512}}, /* dd 512 19256 */
+ {.type FromDictionary, {.p C_cstring}, .src = "dd C_cstring"}, /* dd C_cstring 19264 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 19272 */
+ {.type Header, {.hdr { 9, "open-file", /* C_open_file = 19296 */ colon }}}, /* CENTRY "open-file" open_file 9 ; ( 'text count mode -- fd ioresult ) h 19304 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( 'text count ) (R mode)"}, /* dd M_rpush ; ( 'text count ) (R mode) 19312 */
+ {.type FromDictionary, {.p C_cstring0}, .src = "dd C_cstring0 ; ( 'padtext ) (R mode )"}, /* dd C_cstring0 ; ( 'padtext ) (R mode ) 19320 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop ; ( 'padtext mode ) (R )"}, /* dd M_rpop ; ( 'padtext mode ) (R ) 19328 */
+ {.type FromDictionary, {.p M_sysopen}, .src = "dd M_sysopen"}, /* dd M_sysopen 19336 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 19344 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19352 */
+ {.type Absolute, {.p -1}}, /* dd -1 19360 */
+ {.type FromDictionary, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 19368 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 19376 */
+ {.type Header, {.hdr { 10, "close-file", /* C_close_file = 19400 */ colon }}}, /* CENTRY "close-file" close_file 10 ; ( fd -- ioresult ) h 19408 */
+ {.type FromDictionary, {.p M_sysclose}, .src = "dd M_sysclose"}, /* dd M_sysclose 19416 */
+ {.type FromDictionary, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 19424 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 19432 */
+ {.type Header, {.hdr { 9, "read-file", /* C_read_file = 19456 */ colon }}}, /* CENTRY "read-file" read_file 9 ; ( 'text count fd -- count2 ioresult ) h 19464 */
+ {.type FromDictionary, {.p C_rot}, .src = "dd C_rot ; ( n fd a )"}, /* dd C_rot ; ( n fd a ) 19472 */
+ {.type FromDictionary, {.p C_rot}, .src = "dd C_rot ; ( fd a n )"}, /* dd C_rot ; ( fd a n ) 19480 */
+ {.type FromDictionary, {.p M_sysread}, .src = "dd M_sysread"}, /* dd M_sysread 19488 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 19496 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19504 */
+ {.type Absolute, {.p -1}}, /* dd -1 19512 */
+ {.type FromDictionary, {.p C_neq}, .src = "dd C_neq"}, /* dd C_neq 19520 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 19528 */
+ {.type Header, {.hdr { 10, "write-file", /* C_write_file = 19552 */ colon }}}, /* CENTRY "write-file" write_file 10 ; ( 'text count fd -- ioresult ) h 19560 */
+ {.type FromDictionary, {.p C_rot}, .src = "dd C_rot ; ( n fd a )"}, /* dd C_rot ; ( n fd a ) 19568 */
+ {.type FromDictionary, {.p C_rot}, .src = "dd C_rot ; ( fd a n )"}, /* dd C_rot ; ( fd a n ) 19576 */
+ {.type FromDictionary, {.p M_syswrite}, .src = "dd M_syswrite"}, /* dd M_syswrite 19584 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19592 */
+ {.type Absolute, {.p -1}}, /* dd -1 19600 */
+ {.type FromDictionary, {.p C_neq}, .src = "dd C_neq"}, /* dd C_neq 19608 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 19616 */
+ {.type Header, {.hdr { 15, "reposition-file", /* C_reposition_file = 19640 */ colon }}}, /* CENTRY "reposition-file" reposition_file 15 ; ( type n fd -- ioresult ) h 19648 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap ; ( type fd n )"}, /* dd M_xswap ; ( type fd n ) 19656 */
+ {.type FromDictionary, {.p C_rot}, .src = "dd C_rot ; ( fd n type )"}, /* dd C_rot ; ( fd n type ) 19664 */
+ {.type FromDictionary, {.p M_sysseek}, .src = "dd M_sysseek"}, /* dd M_sysseek 19672 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19680 */
+ {.type Absolute, {.p -1}}, /* dd -1 19688 */
+ {.type FromDictionary, {.p C_neq}, .src = "dd C_neq"}, /* dd C_neq 19696 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 19704 */
+ {.type Header, {.hdr { 7, "?fcheck", /* C_qfcheck = 19720 */ colon }}}, /* CENTRY "?fcheck" qfcheck 7 h 19728 */
+ {.type FromDictionary, {.p C_0eq}, .src = "dd C_0eq"}, /* dd C_0eq 19736 */
+ {.type FromDictionary, {.p M_cjump}, .src = "dd M_cjump"}, /* dd M_cjump 19744 */
+ {.type FromDictionary, {.p L246}, .src = "dd L246"}, /* dd L246 19752 */
+ {.type FromDictionary, {.p C_space}, .src = "dd C_space"}, /* dd C_space 19760 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19768 */
+ {.type FromDictionary, {.p L247}, .src = "dd L247"}, /* dd L247 19776 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19784 */
+ {.type Absolute, {.p 9}}, /* dd 9 19792 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 19800 */
+ {.type FromDictionary, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 19808 */
+ {.type FromDictionary, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 19816 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 19824 */
+ {.type Header, {.hdr { 11, "create-file", /* C_create_file = 19848 */ colon }}}, /* CENTRY "create-file" create_file 11 ; ( a n mode perm -- fd ioresult ) not part of the original ff. could move this to a forth file. h 19856 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( a n mode ) (R perm)"}, /* dd M_rpush ; ( a n mode ) (R perm) 19864 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( a n ) (R perm mode)"}, /* dd M_rpush ; ( a n ) (R perm mode) 19872 */
+ {.type FromDictionary, {.p C_pad}, .src = "dd C_pad ; ( a n padaddr)"}, /* dd C_pad ; ( a n padaddr) 19880 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19888 */
+ {.type Absolute, {.p 1024}}, /* dd 1024 ; ( a n padaddr 1024 ) 19896 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus ; ( a n padaddr+1024 )"}, /* dd M_plus ; ( a n padaddr+1024 ) 19904 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap ; ( a padaddr+1024 n )"}, /* dd M_xswap ; ( a padaddr+1024 n ) 19912 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup ; ( a padaddr+1024 n n )"}, /* dd M_dup ; ( a padaddr+1024 n n ) 19920 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush ; ( a padaddr+1024 n ) (R perm mode n )"}, /* dd M_rpush ; ( a padaddr+1024 n ) (R perm mode n ) 19928 */
+ {.type FromDictionary, {.p M_cmove}, .src = "dd M_cmove ; moves the filename from a to paddaddr+1024"}, /* dd M_cmove ; moves the filename from a to paddaddr+1024 19936 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19944 */
+ {.type Absolute, {.p 0}}, /* dd 0 ; ( 0 ) 19952 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop ; ( 0 n ) (R perm mode)"}, /* dd M_rpop ; ( 0 n ) (R perm mode) 19960 */
+ {.type FromDictionary, {.p C_pad}, .src = "dd C_pad ; ( 0 n padaddr)"}, /* dd C_pad ; ( 0 n padaddr) 19968 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus ; ( 0 padaddr+n )"}, /* dd M_plus ; ( 0 padaddr+n ) 19976 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 19984 */
+ {.type Absolute, {.p 1024}}, /* dd 1024 ; ( 0 padaddr+n 1024 ) 19992 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus ; ( 0 padaddr+n+1024 )"}, /* dd M_plus ; ( 0 padaddr+n+1024 ) 20000 */
+ {.type FromDictionary, {.p M_cstore}, .src = "dd M_cstore ; ( ) makes the filename to a null terminated string"}, /* dd M_cstore ; ( ) makes the filename to a null terminated string 20008 */
+ {.type FromDictionary, {.p C_pad}, .src = "dd C_pad"}, /* dd C_pad 20016 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 20024 */
+ {.type Absolute, {.p 1024}}, /* dd 1024 ; ( padaddr 1024 ) 20032 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus ; ( padaddr+1024 )"}, /* dd M_plus ; ( padaddr+1024 ) 20040 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop ; ( padaddr+1024 mode) (R perm )"}, /* dd M_rpop ; ( padaddr+1024 mode) (R perm ) 20048 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop ; ( padaddr+1024 mode perm ) (R )"}, /* dd M_rpop ; ( padaddr+1024 mode perm ) (R ) 20056 */
+ {.type FromDictionary, {.p M_syscreate}, .src = "dd M_syscreate"}, /* dd M_syscreate 20064 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 20072 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 20080 */
+ {.type Absolute, {.p -1}}, /* dd -1 20088 */
+ {.type FromDictionary, {.p M_greater}, .src = "dd M_greater"}, /* dd M_greater 20096 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 20104 */
+ {.type Header, {.hdr { 3, "bye", /* C_bye = 20120 */ colon }}}, /* CENTRY "bye" bye 3 h 20128 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 20136 */
+ {.type Absolute, {.p 0}}, /* dd 0 20144 */
+ {.type FromDictionary, {.p M_terminate}, .src = "dd M_terminate"}, /* dd M_terminate 20152 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 20160 */
+ {.type Header, {.hdr { 7, "include", /* C_include = 20176 */ colon }}}, /* CENTRY "include" include 7 ; this does not work h 20184 */
+ {.type FromDictionary, {.p C_word}, .src = "dd C_word"}, /* dd C_word 20192 */
+ {.type FromDictionary, {.p M_rpush}, .src = "dd M_rpush"}, /* dd M_rpush 20200 */
+ {.type FromDictionary, {.p C_input_fetch}, .src = "dd C_input_fetch ; save the old input onto the stack"}, /* dd C_input_fetch ; save the old input onto the stack 20208 */
+ {.type FromDictionary, {.p M_rpop}, .src = "dd M_rpop"}, /* dd M_rpop 20216 */
+ {.type FromDictionary, {.p C_count}, .src = "dd C_count"}, /* dd C_count 20224 */
+ {.type FromDictionary, {.p C_ro}, .src = "dd C_ro"}, /* dd C_ro 20232 */
+ {.type FromDictionary, {.p C_open_file}, .src = "dd C_open_file"}, /* dd C_open_file 20240 */
+ {.type FromDictionary, {.p C_qfcheck}, .src = "dd C_qfcheck"}, /* dd C_qfcheck 20248 */
+ {.type FromDictionary, {.p MV_Infd}, .src = "dd MV_Infd ; open the new file"}, /* dd MV_Infd ; open the new file 20256 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 20264 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 20272 */
+ {.type Header, {.hdr { 5, "crash", /* C_crash = 20288 */ colon }}}, /* CENTRY "crash" crash 5 h 20296 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 20304 */
+ {.type FromDictionary, {.p L251}, .src = "dd L251"}, /* dd L251 20312 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 20320 */
+ {.type Absolute, {.p 30}}, /* dd 30 20328 */
+ {.type FromDictionary, {.p C_type}, .src = "dd C_type"}, /* dd C_type 20336 */
+ {.type FromDictionary, {.p C_cr}, .src = "dd C_cr"}, /* dd C_cr 20344 */
+ {.type FromDictionary, {.p C_abort}, .src = "dd C_abort"}, /* dd C_abort 20352 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 20360 */
+ {.type Header, {.hdr { 4, "quit", /* C_quit = 20376 */ colon }}}, /* CENTRY "quit" quit 4 ; interpreter loop h 20384 */
+ {.type FromDictionary, {.p M_reset}, .src = "dd M_reset ; initialize return stack"}, /* dd M_reset ; initialize return stack 20392 */
+ {.type FromDictionary, {.p M_clear}, .src = "dd M_clear ; SP = sstack_end initialize data stack"}, /* dd M_clear ; SP = sstack_end initialize data stack 20400 */
+ {.type FromDictionary, {.p C_word}, .src = "dd C_word"}, /* dd C_word 20408 */
+/* ; dd MV_toLimit ; show the line read, for debugging *//* ; dd M_fetch *//* ; dd MV_Tib *//* ; dd MC_STDOUT *//* ; dd M_fswrite *//* ; dd M_drop ; drop the return value of write *//* ; dd C_cr *//* ; dd C_space */ {.type FromDictionary, {.p C_interpret}, .src = "dd C_interpret"}, /* dd C_interpret 20416 */
+ {.type FromDictionary, {.p M_jump}, .src = "dd M_jump"}, /* dd M_jump 20424 */
+ {.type FromDictionary, {.p L_C_quit}, .src = "dd L_C_quit"}, /* dd L_C_quit 20432 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon ; why is this needed?"}, /* dd M_exitcolon ; why is this needed? 20440 */
+ {.type Header, {.hdr { 7, "(abort)", /* C_parenabort = 20456 */ colon }}}, /* CENTRY "(abort)" parenabort 7 ; TODO correct below stack notations h 20464 */
+ {.type FromDictionary, {.p MV_State}, .src = "dd MV_State ; ( mv_State -- )"}, /* dd MV_State ; ( mv_State -- ) 20472 */
+ {.type FromDictionary, {.p C_off}, .src = "dd C_off ; off sets variable state = 0"}, /* dd C_off ; off sets variable state = 0 20480 */
+ {.type FromDictionary, {.p MC_STDIN}, .src = "dd MC_STDIN"}, /* dd MC_STDIN 20488 */
+ {.type FromDictionary, {.p MV_Infd}, .src = "dd MV_Infd"}, /* dd MV_Infd 20496 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 20504 */
+ {.type FromDictionary, {.p MC_STDOUT}, .src = "dd MC_STDOUT"}, /* dd MC_STDOUT 20512 */
+ {.type FromDictionary, {.p MV_Outfd}, .src = "dd MV_Outfd"}, /* dd MV_Outfd 20520 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 20528 */
+ {.type FromDictionary, {.p MC_STDERR}, .src = "dd MC_STDERR"}, /* dd MC_STDERR 20536 */
+ {.type FromDictionary, {.p MV_Errfd}, .src = "dd MV_Errfd"}, /* dd MV_Errfd 20544 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 20552 */
+ {.type FromDictionary, {.p C_stdinput}, .src = "dd C_stdinput"}, /* dd C_stdinput 20560 */
+ {.type FromDictionary, {.p C_quit}, .src = "dd C_quit ; quit resets stacks and is the interpreter loop"}, /* dd C_quit ; quit resets stacks and is the interpreter loop 20568 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon ; why is this needed? quit does not return unless it breaks"}, /* dd M_exitcolon ; why is this needed? quit does not return unless it breaks 20576 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal ; test code"}, /* dd M_literal ; test code 20584 */
+ {.type Absolute, {.p 66}}, /* dd 66 20592 */
+ {.type FromDictionary, {.p MV_Wordb}, .src = "dd MV_Wordb"}, /* dd MV_Wordb 20600 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 20608 */
+ {.type FromDictionary, {.p MC_STDOUT}, .src = "dd MC_STDOUT"}, /* dd MC_STDOUT 20616 */
+ {.type FromDictionary, {.p MV_Wordb}, .src = "dd MV_Wordb"}, /* dd MV_Wordb 20624 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 20632 */
+ {.type Absolute, {.p 1}}, /* dd 1 20640 */
+ {.type FromDictionary, {.p M_syswrite}, .src = "dd M_syswrite"}, /* dd M_syswrite 20648 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop ; drop the return value of write"}, /* dd M_drop ; drop the return value of write 20656 */
+ {.type FromDictionary, {.p MC_STDIN}, .src = "dd MC_STDIN"}, /* dd MC_STDIN 20664 */
+ {.type FromDictionary, {.p MV_Wordb}, .src = "dd MV_Wordb"}, /* dd MV_Wordb 20672 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 20680 */
+ {.type Absolute, {.p 1}}, /* dd 1 20688 */
+ {.type FromDictionary, {.p M_sysread}, .src = "dd M_sysread"}, /* dd M_sysread 20696 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop ; drop the return value of read"}, /* dd M_drop ; drop the return value of read 20704 */
+ {.type Header, {.hdr { 10, "initialize", /* C_initialize = 20728 */ colon }}}, /* CENTRY "initialize" initialize 10 ; initialize buffer file names, why not hard code this? h 20736 */
+ {.type FromDictionary, {.p MV_Bufferfilenames}, .src = "dd MV_Bufferfilenames"}, /* dd MV_Bufferfilenames 20744 */
+ {.type FromDictionary, {.p MC_NBUFFERS}, .src = "dd MC_NBUFFERS"}, /* dd MC_NBUFFERS 20752 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 20760 */
+ {.type Absolute, {.p 0}}, /* dd 0 20768 */
+ {.type FromDictionary, {.p M_doinit}, .src = "dd M_doinit"}, /* dd M_doinit 20776 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 20784 */
+ {.type Absolute, {.p 1}}, /* dd 1 20792 */
+ {.type FromDictionary, {.p C_cells}, .src = "dd C_cells"}, /* dd C_cells 20800 */
+ {.type FromDictionary, {.p M_plus}, .src = "dd M_plus"}, /* dd M_plus 20808 */
+ {.type FromDictionary, {.p M_dup}, .src = "dd M_dup"}, /* dd M_dup 20816 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 20824 */
+ {.type Absolute, {.p 0}}, /* dd 0 20832 */
+ {.type FromDictionary, {.p M_xswap}, .src = "dd M_xswap"}, /* dd M_xswap 20840 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 20848 */
+ {.type FromDictionary, {.p M_doloop}, .src = "dd M_doloop"}, /* dd M_doloop 20856 */
+ {.type FromDictionary, {.p L150}, .src = "dd L150"}, /* dd L150 20864 */
+ {.type FromDictionary, {.p M_drop}, .src = "dd M_drop"}, /* dd M_drop 20872 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 20880 */
+ {.type FromDictionary, {.p L121}, .src = "dd L121"}, /* dd L121 20888 */
+ {.type FromDictionary, {.p C_wordfilename_store}, .src = "dd C_wordfilename_store"}, /* dd C_wordfilename_store 20896 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 20904 */
+ {.type FromDictionary, {.p L122}, .src = "dd L122"}, /* dd L122 20912 */
+ {.type FromDictionary, {.p C_linefilename_store}, .src = "dd C_linefilename_store"}, /* dd C_linefilename_store 20920 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 20928 */
+ {.type FromDictionary, {.p L123}, .src = "dd L123"}, /* dd L123 20936 */
+ {.type FromDictionary, {.p C_doublequotefilename_store}, .src = "dd C_doublequotefilename_store"}, /* dd C_doublequotefilename_store 20944 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 20952 */
+ {.type FromDictionary, {.p L124}, .src = "dd L124"}, /* dd L124 20960 */
+ {.type FromDictionary, {.p C_closeparenfilename_store}, .src = "dd C_closeparenfilename_store"}, /* dd C_closeparenfilename_store 20968 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 20976 */
+ {.type Header, {.hdr { 4, "boot", /* C_boot = 20992 */ colon }}}, /* CENTRY "boot" boot 4 h 21000 */
+ {.type FromDictionary, {.p M_reset}, .src = "dd M_reset ; initialize return stack"}, /* dd M_reset ; initialize return stack 21008 */
+ {.type FromDictionary, {.p M_clear}, .src = "dd M_clear ; SP = sstack_end initialize data stack"}, /* dd M_clear ; SP = sstack_end initialize data stack 21016 */
+ {.type FromDictionary, {.p M_literal}, .src = "dd M_literal"}, /* dd M_literal 21024 */
+ {.type FromDictionary, {.p C_parenabort}, .src = "dd C_parenabort ; ( (abort) -- )"}, /* dd C_parenabort ; ( (abort) -- ) 21032 */
+ {.type FromDictionary, {.p MV_Abortvec}, .src = "dd MV_Abortvec ; variable that puts (abort) code address on the stack"}, /* dd MV_Abortvec ; variable that puts (abort) code address on the stack 21040 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store ; variable abortvec = (abort) code address"}, /* dd M_store ; variable abortvec = (abort) code address 21048 */
+ {.type FromDictionary, {.p MV_Wordb}, .src = "dd MV_Wordb ; variable puts address of wordbuffer on the top of stack"}, /* dd MV_Wordb ; variable puts address of wordbuffer on the top of stack 21056 */
+ {.type FromDictionary, {.p MV_Wordbuf}, .src = "dd MV_Wordbuf ; variable wordbuf"}, /* dd MV_Wordbuf ; variable wordbuf 21064 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store ; variable wordbuf = address of wordbuffer"}, /* dd M_store ; variable wordbuf = address of wordbuffer 21072 */
+ {.type FromDictionary, {.p MV_Dp}, .src = "dd MV_Dp"}, /* dd MV_Dp 21080 */
+ {.type FromDictionary, {.p MV_H0}, .src = "dd MV_H0 ; H0 = here at startup"}, /* dd MV_H0 ; H0 = here at startup 21088 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 21096 */
+ {.type FromDictionary, {.p MC_STDIN}, .src = "dd MC_STDIN"}, /* dd MC_STDIN 21104 */
+ {.type FromDictionary, {.p MV_Infd}, .src = "dd MV_Infd ; might be overwritten by args below"}, /* dd MV_Infd ; might be overwritten by args below 21112 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store ; stdin = 0"}, /* dd M_store ; stdin = 0 21120 */
+ {.type FromDictionary, {.p MC_STDOUT}, .src = "dd MC_STDOUT"}, /* dd MC_STDOUT 21128 */
+ {.type FromDictionary, {.p MV_Outfd}, .src = "dd MV_Outfd"}, /* dd MV_Outfd 21136 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 21144 */
+ {.type FromDictionary, {.p MC_STDERR}, .src = "dd MC_STDERR"}, /* dd MC_STDERR 21152 */
+ {.type FromDictionary, {.p MV_Errfd}, .src = "dd MV_Errfd"}, /* dd MV_Errfd 21160 */
+ {.type FromDictionary, {.p M_store}, .src = "dd M_store"}, /* dd M_store 21168 */
+ {.type FromDictionary, {.p MV_State}, .src = "dd MV_State"}, /* dd MV_State 21176 */
+ {.type FromDictionary, {.p C_off}, .src = "dd C_off ; off stores 0 at state"}, /* dd C_off ; off stores 0 at state 21184 */
+ {.type FromDictionary, {.p C_decimal}, .src = "dd C_decimal ; decimal sets base = 10"}, /* dd C_decimal ; decimal sets base = 10 21192 */
+ {.type FromDictionary, {.p C_initialize}, .src = "dd C_initialize ; sets up the buffer filenames"}, /* dd C_initialize ; sets up the buffer filenames 21200 */
+ {.type FromDictionary, {.p C_args}, .src = "dd C_args ; process args"}, /* dd C_args ; process args 21208 */
+ {.type FromDictionary, {.p C_close_input}, .src = "dd C_close_input ; if the args opened an input"}, /* dd C_close_input ; if the args opened an input 21216 */
+ {.type FromDictionary, {.p C_stdinput}, .src = "dd C_stdinput ; read lines from stdin, args can change it later"}, /* dd C_stdinput ; read lines from stdin, args can change it later 21224 */
+ {.type FromDictionary, {.p C_quit}, .src = "dd C_quit ; interpreter loop when there are no args or fall through after processing args"}, /* dd C_quit ; interpreter loop when there are no args or fall through after processing args 21232 */
+ {.type FromDictionary, {.p M_exitcolon}, .src = "dd M_exitcolon"}, /* dd M_exitcolon 21240 */
+ {.type Chars, {.str 6}}, /* 21240 */
+ {.type Chars, {.str "#c/pid"}}, /* 21247 */
+ {.type Chars, {.str 3}}, /* 21247 */
+ {.type Chars, {.str "#p/"}}, /* 21251 */
+ {.type Chars, {.str 5}}, /* 21251 */
+ {.type Chars, {.str "/args"}}, /* 21257 */
+ {.type Chars, {.str 3}}, /* 21257 */
+ {.type Chars, {.str "#n/"}}, /* 21261 */
+ {.type Chars, {.str 5}}, /* 21261 */
+ {.type Chars, {.str "/word"}}, /* 21267 */
+ {.type Chars, {.str 5}}, /* 21267 */
+ {.type Chars, {.str "/line"}}, /* 21273 */
+ {.type Chars, {.str 12}}, /* 21274 */
+ {.type Chars, {.str "/doublequote"}}, /* 21287 */
+ {.type Chars, {.str 11}}, /* 21288 */
+ {.type Chars, {.str "/closeparen"}}, /* 21300 */
+ {.type Chars, {.str "unable to restore input"}}, /* 21324 */
+ {.type Chars, {.str 17}}, /* 21325 */
+ {.type Chars, {.str "open file failed"}}, /* 21342 */
+ {.type Chars, {.str 17}}, /* 21343 */
+ {.type Chars, {.str "read file failed"}}, /* 21360 */
+ {.type Chars, {.str " Q?"}}, /* 21364 */
+ {.type Chars, {.str " stack underflow"}}, /* 21381 */
+ {.type Chars, {.str " I?"}}, /* 21385 */
+ {.type Chars, {.str " C?"}}, /* 21389 */
+ {.type Chars, {.str "I/O error"}}, /* 21399 */
+ {.type Chars, {.str "uninitialized execution vector"}}, /* 21430 */
+ {.type Chars, {.str " ok"}}, /* 21434 */
+ {.type Chars, {.str "input line is longer than 4096 bytes"}}, /* 21471 */
+ {.type Chars, {.str "read error"}}, /* 21482 */
};
--- a/os/pc64/forth.head.h
+++ b/os/pc64/forth.head.h
@@ -5,6 +5,7 @@
Header,
IHeader, /* Immediate dictionary definition */
Absolute,
+ FromDictionary,
FromH0,
FromV0,
Chars,
--- a/os/pc64/forth.s
+++ b/os/pc64/forth.s
@@ -26,8 +26,8 @@
RSP: R8 return stack pointer, grows towards lower memory (downwards)
IP: R9 interpretive pointer
W: R10 current word pointer (holds CFA). F83 uses SI (lodsl in NEXT). As C uses AX, not bothering with lodsl.
- UM: R11 register holding the start of this process's heap memory
- UME: R12 register holding the end of this process's heap memory -- TODO, use this
+ UP: R11 register holding the start of the memory for this process
+ UPE: R12 register holding the end of the memory for this process
CX, SI, DI, R13 temporary registers
coding standard
@@ -74,8 +74,8 @@
|
|
User dictionary upto n pages from the start
-UME: heap end
-UM: heap start
+UPE: memory end
+UP: memory start
forth constants
low memory
@@ -83,7 +83,6 @@
11:31 < joe9> In x86 you want to keep the code in a different section than variables -- why?
11:31 < joe9> in my port, I am keeping them together.
11:32 < joe9> it gets messy with different sections.
-
*/
#define TOP BX /* top of stack register */
@@ -91,8 +90,8 @@
#define RSP R8 /* return stack pointer, grows towards lower memory (downwards) */
#define IP R9 /* interpretive pointer */
#define W R10/* current word pointer (holds CFA). F83 uses SI (lodsl in NEXT). As C uses AX, not using lodsl */
-#define UM R11/* start of heap memory */
-#define UME R12/* end of heap memory */
+#define UP R11/* start of user proram memory */
+#define UPE R12/* end of user program memory */
#define PSTACK_SIZE BY2PG
#define RSTACK_SIZE BY2PG
@@ -114,17 +113,17 @@
TEXT forthmain(SB), 1, $-4 /* no stack storage required */
/* Argument has the start of heap */
- MOVQ RARG, UM /* start of heap memory */
- MOVQ 8(UM), UME /* HEAPEND populated by the caller */
+ MOVQ RARG, UP /* start of heap memory */
+ MOVQ 8(UP), UPE /* HEAPEND populated by the caller */
- MOVQ UM, RSP
+ MOVQ UP, RSP
ADDQ $RSTACK, RSP /* return stack pointer, reset */
- MOVQ UM, PSP
+ MOVQ UP, PSP
ADDQ $PSTACK, PSP /* parameter stack pointer - stack setup, clear */
/* execute boot */
- MOVQ UM, CX
+ MOVQ UP, CX
ADDQ $DTOP, CX /* address of last defined word (c_boot) is at DTOP */
MOVQ (CX), IP /* IP = address of c_boot */
ADDQ $24, IP /* to get to the parameter field address of boot word */
@@ -158,12 +157,12 @@
NEXT
TEXT reset(SB), 1, $-4
- MOVQ UM, RSP
+ MOVQ UP, RSP
ADDQ $RSTACK, RSP
NEXT
TEXT clear(SB), 1, $-4
- MOVQ UM, PSP
+ MOVQ UP, PSP
ADDQ $PSTACK, PSP
NEXT
@@ -208,10 +207,10 @@
NEXT
#define CHECKADDRESS \
- CMPQ TOP, UME; \
- JGT aboveume; /* a > UME */\
- CMPQ TOP, UM;\
- JLT belowum; /* a < UM */
+ CMPQ TOP, UPE; \
+ JGT aboveume; /* a > UPE */\
+ CMPQ TOP, UP;\
+ JLT belowum; /* a < UP */
TEXT execute(SB), 1, $-4 /* ( ... a -- ... ) */
CHECKADDRESS
@@ -582,55 +581,11 @@
/* pause -- no equivalent in 6a ? */
NEXT
-/* static locations */
-TEXT S0(SB), 1, $-4 /* S0 needs a calculation to come up with the value */
- PUSH(TOP)
- MOVQ UM, TOP
- ADDQ $PSTACK, TOP
- NEXT
-
-TEXT Wordb(SB), 1, $-4 /* WORDB location */
- PUSH(TOP)
- MOVQ UM, TOP
- ADDQ $WORDB, TOP
- NEXT
-
-TEXT Tib(SB), 1, $-4 /* TIB location */
- PUSH(TOP)
- MOVQ UM, TOP
- ADDQ $TIB, TOP
- NEXT
-
-TEXT Dp(SB), 1, $-4 /* S0 needs a calculation to come up with the value */
- PUSH(TOP)
- MOVQ UM, TOP
- ADDQ $HERE, TOP
- NEXT
-
-TEXT Dtop(SB), 1, $-4 /* S0 needs a calculation to come up with the value */
- PUSH(TOP)
- MOVQ UM, TOP
- ADDQ $DTOP, TOP
- NEXT
-
-/* Dp for the variable space */
-TEXT Vp(SB), 1, $-4 /* S0 needs a calculation to come up with the value */
- PUSH(TOP)
- MOVQ UM, TOP
- ADDQ $VHERE, TOP
- NEXT
-
-TEXT Fthargs(SB), 1, $-4
- PUSH(TOP)
- MOVQ UM, TOP
- ADDQ $FTHARGS, TOP
- NEXT
-
/*
* variables used by the core words. Using variable code word instead of known locations.
#define VARIABLE(name, location) TEXT name(SB), 1, $-4 ;\
PUSH(TOP); \
- MOVQ UM, TOP ;\
+ MOVQ UP, TOP ;\
ADDQ location, TOP ;\
NEXT;
VARIABLE(Tib, $TIB)
@@ -646,18 +601,18 @@
argument 1 in TOP = address
return value in TOP
-1 0 1
- if UM < address < UME
+ if UP < address < UPE
return 0 within range
- else if address < UM
- return -1 below UM
- else if UME < address
- return 1 above UM
+ else if address < UP
+ return -1 below UP
+ else if UPE < address
+ return 1 above UP
*/
TEXT inum(SB), 1, $-4
- CMPQ TOP, UME
- JGT aboveume /* a > UME */
- CMPQ TOP, UM
- JLT belowum /* a < UM */
+ CMPQ TOP, UPE
+ JGT aboveume /* a > UPE */
+ CMPQ TOP, UP
+ JLT belowum /* a < UP */
MOVQ $0, TOP /* could use XORQ TOP, TOP to zero too */
RET
belowum:
@@ -672,21 +627,21 @@
argument 2 = address
return value in TOP
-1 0 1
- if UM < address && address+n < UME
+ if UP < address && address+n < UPE
return 0 within range
- else if address < UM
- return -1 below UM
- else if UME < address+n
- return 1 above UM
+ else if address < UP
+ return -1 below UP
+ else if UPE < address+n
+ return 1 above UP
*/
TEXT isbufinum(SB), 1, $-4 /* is buffer in user memory? ( a n -- -1|0|1 ) */
CMPQ TOP, $0 /* negative n? */
JLT belowum /* TODO have an appropriate error message */
ADDQ (PSP), TOP /* TOP = a+n */
- CMPQ TOP, UME /* a+n, UME */
- JGT aboveume /* a+n > UME */
- CMPQ (PSP), UM /* a, UM */
- JLT belowum /* a < UM */
+ CMPQ TOP, UPE /* a+n, UPE */
+ JGT aboveume /* a+n > UPE */
+ CMPQ (PSP), UP /* a, UP */
+ JLT belowum /* a < UP */
ADDQ $8, PSP /* get rid of a from the stack */
MOVQ $0, TOP
RET
--- a/os/pc64/main.c
+++ b/os/pc64/main.c
@@ -286,7 +286,6 @@
init0(void)
{
/*char buf[2*KNAMELEN];*/
- char *args;
up->nerrlab = 0;
@@ -328,10 +327,10 @@
kopen("#c/cons", OWRITE);
kopen("#c/cons", OWRITE);
- args = "include init.f ";
- *((s8*)up->fmem + FTHARGS) = strlen(args);
- strncpy((s8*)up->fmem + FTHARGS+1, args, strlen(args));
- print("init0: args len %ld: %s\n", strlen(args), args);
+ /* the space at the end is needed to recognize init.f as a word */
+ up->args = "include init.f ";
+ up->nargs = strlen(up->args);
+ print("init0: args len %ld: %s\n", up->nargs, up->args);
goforth(up->fmem);
/* disinit("/osinit.dis"); */
/* disinit("/osinit.dis"); */
--- a/os/pc64/mem.h
+++ b/os/pc64/mem.h
@@ -223,11 +223,13 @@
#define RSTACK (HEAPSTART+(19*BY2PG)) /* upto (HEAPSTART+(18*BY2PG)), going down */
/* 256 allows these to be counted strings */
-#define FTHARGS (RSTACK+(BY2WD*0)) /* args size = 32*8 = 256 bytes, counted string */
-#define WORDB (RSTACK+(BY2WD*32)) /* word buffer = 32*8 = 256 */
-#define ERRSTR (RSTACK+(BY2WD*64)) /* errstr size = 32*8 = 256 bytes */
+#define WORDB (RSTACK+(BY2WD*0)) /* word buffer = 32*8 = 256 */
+#define ERRSTR (RSTACK+(BY2WD*32)) /* errstr size = 32*8 = 256 bytes */
+#define FTHPID (RSTACK+(BY2WD*64))
+#define FTHPARENTPID (RSTACK+(BY2WD*65))
+#define ARGSFILENAME (RSTACK+(BY2WD*66)) /* counted string, 18 bytes is enough, 64 bytes */
-#define FORTHVARS (RSTACK+(BY2WD*96)) /* magic word here? */
+#define FORTHVARS (RSTACK+(BY2WD*74)) /* magic word here? */
/* storage for saving Forth registers when calling C */
#define FORTHTOP (FORTHVARS+(BY2WD*0))
#define FORTHPSP (FORTHVARS+(BY2WD*1))
@@ -234,12 +236,12 @@
#define FORTHRSP (FORTHVARS+(BY2WD*2))
#define FORTHIP (FORTHVARS+(BY2WD*3))
#define FORTHW (FORTHVARS+(BY2WD*4))
-#define FORTHUM (FORTHVARS+(BY2WD*5))
-#define FORTHUME (FORTHVARS+(BY2WD*6))
+#define FORTHUP (FORTHVARS+(BY2WD*5))
+#define FORTHUPE (FORTHVARS+(BY2WD*6))
#define HERE (FORTHVARS+(BY2WD*7))
#define DTOP (FORTHVARS+(BY2WD*8))
-#define VHERE (FORTHVARS+(BY2WD*9)) /* store fmem+VHERE here at boot */
+#define THERE (FORTHVARS+(BY2WD*9)) /* store fmem+THERE here at boot */
#define FORTHEND (HEAPSTART+(22*BY2PG))
#define FORTHHEAPSIZE FORTHEND
--- a/os/pc64/mkdict.awk
+++ b/os/pc64/mkdict.awk
@@ -12,7 +12,7 @@
vh=0 # vhere = variable space pointer
nlabels=0
literal = "^[+-]?[0-9]+$"
- branchlabel = "^L[0-9]+:$"
+ branchlabel = "^L[0-9a-zA-Z_]+:$"
fentries = "Fentry fentries[] = {\n";
}
@@ -37,16 +37,25 @@
}
$1 == "MCENTRY" {
name = $2
- header($5, name, "MC_", $3, "constant")
+ header($4, name, "MC_", $3, "constant")
h+=8;
- fentries = fentries " {.type Absolute, {.p " $4"}}, /* " h " */\n"
+ fentries = fentries " {.type Absolute, {.p " $5"}}, /* " h " */\n"
}
+$1 == "MVDENTRY" {
+ name = $2
+ header($4, name, "MV_", $3, "variable")
+ h+=8; # for pfa
+ fentries = fentries " {.type FromH0, {.p " $5 " }}, /* " h " " vh " */\n"
+}
$1 == "MVENTRY" {
name = $2
- header($5, name, "MV_", $3, "variable")
+ header($4, name, "MV_", $3, "variable")
h+=8; # for pfa
fentries = fentries " {.type FromV0, {.p " vh " }}, /* " h " " vh " */\n"
- vh+=8;
+ if(NF >= 5 && $5 != ";")
+ vh+=$5*8;
+ else
+ vh+=8;
}
$1 == "CENTRY" {
name = $2
@@ -64,7 +73,7 @@
}
$1 == "dd" && $2 ~ "^[M_|C_|CI_|(MC_)|(MV_)|L]" {
h+=8
- fentries = fentries " {.type FromH0, {.p " $2 "}, .src = \"" $0 "\"}, /* " $0 " " h " */\n"
+ fentries = fentries " {.type FromDictionary, {.p " $2 "}, .src = \"" $0 "\"}, /* " $0 " " h " */\n"
}
$1 ~ branchlabel {
gsub(/:/,"", $1)
--- a/os/pc64/primitives-nasm.s
+++ b/os/pc64/primitives-nasm.s
@@ -48,6 +48,7 @@
MENTRY "(does)" dodoes 6
MENTRY "cas" cas 3
MENTRY "(deferred)" deferred 10
+MENTRY "s@" stackptr 2 ; puts PSP on stack. Not a variable hence lower case.
MENTRY "sysbind" sysbind 7
MENTRY "sysclose" sysclose 8
@@ -58,36 +59,50 @@
MENTRY "sysseek" sysseek 7
MENTRY "syswrite" syswrite 8
-MCENTRY "STDIN" STDIN 0 5 ; 3 constants from here CAPITALS
-MCENTRY "STDOUT" STDOUT 1 6
-MCENTRY "STDERR" STDERR 2 6
+MCENTRY "STDIN" STDIN 5 0 ; 3 constants from here CAPITALS
+MCENTRY "STDOUT" STDOUT 6 1
+MCENTRY "STDERR" STDERR 6 2
-MVENTRY "Iobuf" Iobuf 0 5 ; the values are not being used from the definition. All are initialized to 0.
-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 "Acceptvec" Acceptvec 0 9
-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 4
-MVENTRY "Outfd" Outfd 0 5
-MVENTRY "Errfd" Errfd 0 5
-MVENTRY "Eof" Eof 0 3
-MVENTRY "Ninputs" Ninputs 0 7
-MVENTRY "H0" H0 0 2 ; here at startup
+MCENTRY "WORD#" WORDNUM 5 0
+MCENTRY "LINE#" LINENUM 5 1
+MCENTRY "DOUBLEQUOTE#" DOUBLEQUOTENUM 12 2
+MCENTRY "CLOSEPAREN#" CLOSEPARENNUM 11 3
+MCENTRY "#BUFFERS" NBUFFERS 8 16
+; put address of the defined location on the top of stack
; cannot use H as it is nil in inferno, address where here (next available dictionary cell location) is stored
; here = Dp @
-MENTRY "Dp" Dp 2 ; here
-MENTRY "Dtop" Dtop 4 ; last defined header
-MENTRY "Vp" Vp 2 ; here of the variables space
-MENTRY "S0" S0 2
-MENTRY "s@" stackptr 2 ; puts PSP on stack. Not a variable hence lower case.
-MENTRY "Wordb" Wordb 5
-MENTRY "Tib" Tib 3
-MENTRY "Fthargs" Fthargs 7
+; these memory locations (HERE, DTOP, etc.) are populated with values by the forth initializer
+MVDENTRY "Dp" Dp 2 HERE ; here
+MVDENTRY "Dtop" Dtop 4 DTOP ; last defined header
+MVDENTRY "Vp" Vp 2 THERE ; here of the variables space
+MVDENTRY "Pid" Pid 3 FTHPID
+MVDENTRY "Parentpid" Parentpid 4 FTHPARENTPID
+; the below memory locations are left alone as zeros by the initializer
+MVDENTRY "S0" S0 2 PSTACK
+MVDENTRY "Wordb" Wordb 5 WORDB
+MVDENTRY "Tib" Tib 3 TIB
+MVDENTRY "Argsfilename" Argsfilename 12 ARGSFILENAME ; counted string populated by forth starter from params
+
+MVENTRY "Iobuf" Iobuf 5 ; the values are not being used from the definition. All are initialized to 0.
+MVENTRY "Sourcebuf" Sourcebuf 9 ; is there a need for this?
+MVENTRY "Wordbuf" Wordbuf 7 ; is there a need for this?
+MVENTRY ">In" toIn 3
+MVENTRY ">Limit" toLimit 6
+MVENTRY "Findadr" Findadr 7
+MVENTRY "Acceptvec" Acceptvec 9
+MVENTRY "Searchlen" Searchlen 9
+MVENTRY "Base" Base 4
+MVENTRY ">Num" toNum 4
+MVENTRY "State" State 5
+MVENTRY "Abortvec" Abortvec 8 ; not sure if these 3 can be constants instead?
+MVENTRY "Infd" Infd 4
+MVENTRY "Outfd" Outfd 5
+MVENTRY "Errfd" Errfd 5
+MVENTRY "Eof" Eof 3
+MVENTRY "Ninputs" Ninputs 7
+MVENTRY "H0" H0 2 ; here at startup
+
+MVENTRY "Bufferfds" Bufferfds 9 16
+MVENTRY "Bufferfilenames" Bufferfilenames 15 16 ; counted string labels of the searchers populated by boot
+
--- a/os/pc64/trap.c
+++ b/os/pc64/trap.c
@@ -121,7 +121,7 @@
dumprstack(intptr h, intptr rsp, intptr he)
{
intptr i;
- int l=0;
+ /* int l=0; */
print("Forth return stack h 0x%zx R8 RSP 0x%zx RSTACK 0x%zx he 0x%zx\n",
h, rsp, h+RSTACK, he);
@@ -128,12 +128,12 @@
if(he == 0 || h == 0 || rsp < h || rsp >= he || h+RSTACK < h || h+RSTACK >= he)
return;
for(i = h + RSTACK-8; i >= rsp; i-=8){
- print(" 0x%zx: 0x%zx", i, *(intptr*)i);
- l++;
+ print(" 0x%zx: 0x%zx 0x%zx %zd\n", i, *(intptr*)i, *(intptr*)i-h, *(intptr*)i-h);
+ /* l++;
if(l == 3){
l = 0;
print("\n");
- }
+ } */
}
print("\n");
}
@@ -181,6 +181,65 @@
return 0;
}
+/*
+ * dump registers
+ */
+void
+dumpforthregs(Ureg* ureg)
+{
+ if(up)
+ iprint("cpu%d: registers for %s %ud\n",
+ m->machno, up->text, up->pid);
+ else
+ iprint("cpu%d: registers for kernel\n", m->machno);
+
+ iprint(" AX %.16lluX BX TOP %.16lluX CX %.16lluX\n",
+ ureg->ax, ureg->bx, ureg->cx);
+ iprint(" DX PSP %.16lluX SI %.16lluX DI %.16lluX\n",
+ ureg->dx, ureg->si, ureg->di);
+ iprint(" BP %.16lluX R8 RSP %.16lluX\n",
+ ureg->bp, ureg->r8);
+ iprint(" R9 IP %.16lluX %.16lluX %.16llud\n",
+ ureg->r9, ureg->r9-ureg->r11, ureg->r9-ureg->r11);
+ iprint(" R10 W %.16lluX %.16lluX %.16llud\n",
+ ureg->r10, ureg->r10-ureg->r11, ureg->r10-ureg->r11);
+ iprint(" R11 UP %.16lluX R12 UPE %.16lluX\n",
+ ureg->r10, ureg->r11, ureg->r12);
+ iprint(" R13 %.16lluX R14 up %.16lluX R15 m %.16lluX\n",
+ ureg->r13, ureg->r14, ureg->r15);
+ iprint(" CS %.4lluX SS %.4lluX PC %.16lluX SP %.16lluX\n",
+ ureg->cs & 0xffff, ureg->ss & 0xffff, ureg->pc, ureg->sp);
+ iprint("TYPE %.2lluX ERROR %.4lluX FLAGS %.8lluX\n",
+ ureg->type & 0xff, ureg->error & 0xffff, ureg->flags & 0xffffffff);
+
+ /*
+ * Processor control registers.
+ * If machine check exception, time stamp counter, page size extensions
+ * or enhanced virtual 8086 mode extensions are supported, there is a
+ * CR4. If there is a CR4 and machine check extensions, read the machine
+ * check address and machine check type registers if RDMSR supported.
+ */
+ iprint(" CR0 %8.8llux CR2 %16.16llux CR3 %16.16llux",
+ getcr0(), getcr2(), getcr3());
+ if(m->cpuiddx & (Mce|Tsc|Pse|Vmex)){
+ iprint(" CR4 %16.16llux\n", getcr4());
+ if(ureg->type == 18)
+ dumpmcregs();
+ }
+ iprint(" ur %#p up %#p\n", ureg, up);
+
+ /* my stuff, not in 9front */
+ print("\n ur %lux up %lux ureg->bp & ~0xFFF %zx\n", ureg, up, ureg->bp & ~0xFFF);
+ if((ureg->bp & ~0xFFF) == FFSTART){
+ for(intptr *i = (intptr*)FFSTART; i<=(intptr*)ureg->bp; i++){
+ print("0x%p: 0x%zx\n", i, *i);
+ }
+ for(intptr *i = (intptr*)FFEND; i>=(intptr*)ureg->sp; i--){
+ print("0x%p: 0x%zx\n", i, *i);
+ }
+ }
+}
+
/* go to user space */
void
trap(Ureg *ureg)
@@ -192,6 +251,7 @@
if(irqhandled(ureg, vno) == 0 /* TODO && (!user || !usertrap(vno)) */){
dumpregs(ureg);
if(up->fmem != nil){
+ dumpforthregs(ureg);
dumprstack(ureg->r11, ureg->r8, ureg->r12);
dumppstack(ureg->r11, ureg->dx, ureg->r12);
}
@@ -230,7 +290,7 @@
ureg->dx, ureg->si, ureg->di);
iprint(" BP %.16lluX R8 RSP %.16lluX R9 IP %.16lluX\n",
ureg->bp, ureg->r8, ureg->r9);
- iprint(" R10 W %.16lluX R11 UM %.16lluX R12 UME %.16lluX\n",
+ iprint(" R10 W %.16lluX R11 UP %.16lluX R12 UPE %.16lluX\n",
ureg->r10, ureg->r11, ureg->r12);
iprint(" R13 %.16lluX R14 up %.16lluX R15 m %.16lluX\n",
ureg->r13, ureg->r14, ureg->r15);
--- a/os/pc64/words-nasm.s
+++ b/os/pc64/words-nasm.s
@@ -40,15 +40,18 @@
dd 3 ; (index << 2) -> (index << 3) for amd64
dd M_lshift
dd M_exitcolon
-CENTRY "cell+" C_cellplus 5
-dd M_literal
-dd 1
+CENTRY "cells+" C_cells_plus 6 ; ( n1 n2 -- n1+(n2*cellsize) )
dd C_cells
dd M_plus
dd M_exitcolon
+CENTRY "cell+" C_cell_plus 5
+dd M_literal
+dd 1
+dd C_cells_plus
+dd M_exitcolon
CENTRY "depth" C_depth 5
-dd M_S0
+dd MV_S0
dd M_stackptr
dd M_minus
dd M_literal
@@ -93,14 +96,15 @@
dd 0 ; ( n n n -- n n n 0 )
dd M_equal ; ( n n n 0 -- n n f )
dd M_cjump ; ( n n f -- n n )
-dd L20 ; when n != 0, go to L20
+dd L_C_qdup ; when n != 0, go to L20
dd M_drop ; when n == 0 ( n n -- n)
-L20: ; when n != 0 ( n n )
+L_C_qdup: ; when n != 0 ( n n )
dd M_exitcolon
+
CENTRY "pick" C_pick 4
dd C_qdup
dd M_cjump
-dd L22
+dd L_C_pick
dd M_literal
dd 1
dd M_plus
@@ -109,11 +113,12 @@
dd M_plus
dd M_fetch
dd M_jump
-dd L23
-L22:
+dd L_C_pick_1
+L_C_pick:
dd M_dup
-L23:
+L_C_pick_1:
dd M_exitcolon
+
CENTRY "tuck" C_tuck 4
dd M_dup
dd M_rpush
@@ -124,7 +129,8 @@
dd M_slashmod
dd C_nip
dd M_exitcolon
-CENTRY "+!" C_plusstore 2
+
+CENTRY "+!" C_plusstore 2 ; ( n 'a -- ) a@ = a@+n
dd M_dup
dd M_fetch
dd C_rot
@@ -132,6 +138,7 @@
dd M_xswap
dd M_store
dd M_exitcolon
+
CENTRY "invert" C_invert 6
dd M_literal
dd -1
@@ -191,54 +198,58 @@
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 L_C_max
dd M_drop
dd M_jump
-dd L41
-L40:
+dd L_C_max_1
+L_C_max:
dd C_nip
-L41:
+L_C_max_1:
dd M_exitcolon
+
CENTRY "min" C_min 3
dd C_2dup
dd M_less
dd M_cjump
-dd L43
+dd L_C_min
dd M_drop
dd M_jump
-dd L44
-L43:
+dd L_C_min_1
+L_C_min:
dd C_nip
-L44:
+L_C_min_1:
dd M_exitcolon
+
CENTRY "signum" C_signum 6
dd M_dup
dd C_0gt
dd M_cjump
-dd L46
+dd L_C_signum
dd M_drop
dd M_literal
dd 1
dd M_jump
-dd L47
-L46:
+dd L_C_signum_1
+L_C_signum:
dd C_0lt
dd M_cjump
-dd L48
+dd L_C_signum_2
dd M_literal
dd -1
dd M_jump
-dd L49
-L48:
+dd L_C_signum_3
+L_C_signum_2:
dd M_literal
dd 0
-L49:
-L47:
+L_C_signum_3:
+L_C_signum_1:
dd M_exitcolon
+
CENTRY "within" C_within 6
dd M_rpush
dd M_over
@@ -254,33 +265,11 @@
dd M_dup
dd C_0lt
dd M_cjump
-dd L52
+dd L_C_abs
dd C_negate
-L52:
+L_C_abs:
dd M_exitcolon
-CENTRY "key" C_key 3 ; ( -- c ) (G read a single character from the input onto the stack )
-dd MV_Infd
-dd M_fetch ; ( infd )
-dd MV_Iobuf ; variable iobuf to store the character read
-dd M_literal
-dd 1 ; ( infd Iobuf 1 )
-dd M_sysread ; ( infd Iobuf 1 -- 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
-L79:
-dd M_exitcolon
-
CENTRY "emit" C_emit 4 ; ( character -- )
dd MV_Iobuf ; variable iobuf address
dd M_cstore ; variable iobuf has character
@@ -316,23 +305,25 @@
dd M_exitcolon
CENTRY "emits" C_emits 5
-L85:
+L_C_emits:
dd C_qdup
dd M_cjump
-dd L86
+dd L_C_emits_1
dd M_over
dd C_emit
dd C_1minus
dd M_jump
-dd L85
-L86:
+dd L_C_emits
+L_C_emits_1:
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 ; ( 'counted-string -- 'text count ) a = address of counted string ( a - a+1 a[0])
dd C_1plus
dd M_dup
@@ -361,7 +352,7 @@
dd M_literal
dd 0 ; ( -- a1 a2 nmin 0 ) (R n1 n2 -- )
dd M_doinit ; ( -- a1 a2 ) (R n1 n2 0 nmin -- )
-L55:
+L_C_compare:
dd M_over
dd M_i
dd M_plus
@@ -374,14 +365,14 @@
dd C_signum
dd C_qdup
dd M_cjump
-dd L56 ; matches
+dd L_C_compare_1 ; matches
dd C_2nip ; does not match ( a1 a2 f -- f ) (R n1 n2 0 nmin -- )
dd M_unloop ; ( f -- f ) (R n1 n2 0 nmin -- n1 n2)
dd M_unloop ; ( f -- f ) (R n1 n2 -- )
dd M_exitcolon
-L56:
+L_C_compare_1:
dd M_doloop
-dd L55
+dd L_C_compare
dd C_2drop ; ( a1 a2 -- ) (R n1 n2 -- )
dd M_rpop
dd M_rpop ; ( n2 n1 -- ) (R -- )
@@ -393,7 +384,7 @@
dd M_literal
dd 0
dd M_doinit
-L58:
+L_C_erase:
dd M_literal
dd 0
dd M_over
@@ -400,15 +391,16 @@
dd M_cstore
dd C_1plus
dd M_doloop
-dd L58
+dd L_C_erase
dd M_drop
dd M_exitcolon
+
CENTRY "fill" C_fill 4
dd M_xswap
dd M_literal
dd 0
dd M_doinit
-L60:
+L_C_fill:
dd C_2dup
dd M_xswap
dd M_i
@@ -415,13 +407,15 @@
dd M_plus
dd M_cstore
dd M_doloop
-dd L60
+dd L_C_fill
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
@@ -435,7 +429,7 @@
dd M_literal
dd 0
dd M_doinit
-L64:
+L_C_search:
dd M_over
dd M_i
dd M_plus
@@ -448,7 +442,7 @@
dd C_compare
dd C_0eq
dd M_cjump
-dd L65
+dd L_C_search_1
dd M_drop
dd M_i
dd M_plus
@@ -459,45 +453,52 @@
dd M_minus
dd C_true
dd M_exitcolon
-L65:
+L_C_search_1:
dd M_doloop
-dd L64
+dd L_C_search
dd M_drop
dd M_rpop
dd C_false
dd M_exitcolon
+
CENTRY "here" C_here 4
-dd M_Dp
+dd MV_Dp
dd M_fetch
dd M_exitcolon
-CENTRY "vhere" C_vhere 4
-dd M_Vp
+
+CENTRY "there" C_there 5 ; variable here
+dd MV_Vp
dd M_fetch
dd M_exitcolon
+
CENTRY "," C_comma 1
dd C_here
dd M_store
dd M_literal
dd 8
-dd M_Dp
+dd MV_Dp
dd C_plusstore
dd M_exitcolon
+
CENTRY "c," C_c 2
dd C_here
dd M_cstore
dd M_literal
dd 1
-dd M_Dp
+dd MV_Dp
dd C_plusstore
dd M_exitcolon
+
CENTRY "allot" C_allot 5 ; ( n -- ) here = here+n
-dd M_Dp
+dd MV_Dp
dd C_plusstore
dd M_exitcolon
-CENTRY "vallot" C_vallot 6 ; allot on the variable space ( n -- ) vhere = vhere+n
-dd M_Vp
+
+CENTRY "vallot" C_vallot 6 ; allot on the variable space ( n -- ) there = there+n
+dd MV_Vp
dd C_plusstore
dd M_exitcolon
+
CENTRY "pad" C_pad 3
dd C_here
dd M_literal
@@ -507,11 +508,11 @@
CENTRY "align" C_align 5 ; ( -- ) align here to a cell boundary
dd C_here ; Dp @
dd C_aligned ; here is aligned to a multiple of 8
-dd M_Dp ; store the aligned here at Dp
+dd MV_Dp ; store the aligned here at Dp
dd M_store ; Dp contains aligned_here
dd M_exitcolon
CENTRY "unused" C_unused 6
-dd M_Dp
+dd MV_Dp
dd M_fetch
dd C_here
dd M_minus
@@ -524,6 +525,7 @@
dd MV_toNum
dd M_store
dd M_exitcolon
+
CENTRY "#" C_hash 1
dd MV_Base
dd M_fetch
@@ -534,7 +536,7 @@
dd 9
dd M_greater
dd M_cjump
-dd L92
+dd L_C_hash
dd M_literal
dd 97
dd M_plus
@@ -542,12 +544,12 @@
dd 10
dd M_minus
dd M_jump
-dd L93
-L92:
+dd L_C_hash_1
+L_C_hash:
dd M_literal
dd 48
dd M_plus
-L93:
+L_C_hash_1:
dd MV_toNum
dd M_fetch
dd C_1minus
@@ -556,16 +558,18 @@
dd M_store
dd M_cstore
dd M_exitcolon
+
CENTRY "#s" C_hashs 2
-L95:
+L_C_hashs:
dd C_hash
dd M_dup
dd M_cjump
-dd L96
+dd L_C_hashs_1
dd M_jump
-dd L95
-L96:
+dd L_C_hashs
+L_C_hashs_1:
dd M_exitcolon
+
CENTRY "#>" C_hashfrom 2
dd M_drop
dd MV_toNum
@@ -578,6 +582,7 @@
dd M_xswap
dd M_minus
dd M_exitcolon
+
CENTRY "hold" C_hold 4
dd MV_toNum
dd M_fetch
@@ -589,17 +594,18 @@
dd MV_toNum
dd M_store
dd M_exitcolon
+
CENTRY "sign" C_sign 4
dd C_0lt
dd M_cjump
-dd L100
+dd L_C_sign
dd M_literal
dd 45
dd C_hold
-L100:
+L_C_sign:
dd M_exitcolon
-CENTRY "." C_dot 1 ; print the top of stack ( n -- )
+CENTRY "(.)" C_paren_dot_paren 3 ; convert the top of stack to a string ( n1 -- 'text n2 )
dd M_dup ; ( n -- n n )
dd C_abs ; ( n n -- n u )
dd C_fromhash ; pad = h+256; >num = pad+1024
@@ -607,9 +613,14 @@
dd M_xswap ; ( n n2 -- n2 n )
dd C_sign ; ( n2 n -- n2 )
dd C_hashfrom ; ( u1 -- a n )
-dd C_type ; ( a n -- )
+dd M_exitcolon
+
+CENTRY "." C_dot 1 ; print the top of stack ( n -- )
+dd C_paren_dot_paren ; ( n1 -- 'text n2 )
+dd C_type
dd C_space
dd M_exitcolon
+
CENTRY ".r" C_dotr 2
dd M_rpush
dd M_dup
@@ -649,13 +660,13 @@
dd 91
dd C_within
dd M_cjump
-dd L106
+dd L_C_digit
dd M_literal
dd 55
dd M_minus
dd M_jump
-dd L107
-L106:
+dd L_C_digit_1
+L_C_digit:
dd M_dup
dd M_literal
dd 97
@@ -663,13 +674,13 @@
dd 123
dd C_within
dd M_cjump
-dd L108
+dd L_C_digit_2
dd M_literal
dd 87
dd M_minus
dd M_jump
-dd L109
-L108:
+dd L_C_digit_3
+L_C_digit_2:
dd M_dup
dd M_literal
dd 48
@@ -677,32 +688,32 @@
dd 58
dd C_within
dd M_cjump
-dd L110
+dd L_C_digit_4
dd M_literal
dd 48
dd M_minus
dd M_jump
-dd L111
-L110:
+dd L_C_digit_5
+L_C_digit_4:
dd M_drop
dd C_false
dd M_exitcolon
-L111:
-L109:
-L107:
+L_C_digit_5:
+L_C_digit_3:
+L_C_digit_1:
dd M_dup
dd MV_Base
dd M_fetch
dd M_less
dd M_cjump
-dd L112
+dd L_C_digit_6
dd C_true
dd M_jump
-dd L113
-L112:
+dd L_C_digit_7
+L_C_digit_6:
dd M_drop
dd C_false
-L113:
+L_C_digit_7:
dd M_exitcolon
CENTRY "number" C_number 6 ; ( a n1 -- n2 -1 | a n1 0 )
@@ -713,7 +724,7 @@
dd 45 ; ( n1 a c -- n1 a c - )
dd M_equal ; ( n1 a c -- n1 a f )
dd M_cjump ; ( n1 a c -- n1 a )
-dd L115 ; c != -
+dd L_C_number ; c != -
dd C_1plus ; c == - ( n1 a -- n1 a+1 )
dd M_xswap
dd C_1minus ; c == - ( a+1 n1 -- a+1 n1-1 )
@@ -721,13 +732,13 @@
dd -1 ; ( a+1 n1-1 -- a+1 n1-1 -1 )
dd M_rpush ; ( a+1 n1-1 -- a+1 n1-1 ) (R -- -1)
dd M_jump
-dd L116
-L115: ; c != -
+dd L_C_number_1
+L_C_number: ; c != -
dd M_xswap ; ( n1 a -- a n1)
dd M_literal
dd 1
dd M_rpush ; ( a n1 1 -- a n1 ) (R -- 1)
-L116: ; ( a n1 ) (R nr)
+L_C_number_1: ; ( a n1 ) (R nr)
dd M_dup ; ( a n1 -- a n1 n1 ) (R nr)
dd M_rpush ; ( a n1 n1 -- a n1 ) (R nr -- nr n1)
dd M_literal
@@ -736,7 +747,7 @@
dd M_literal
dd 0 ; ( a 0 n1 -- a 0 n1 0) (R nr n1)
dd M_doinit ; ( a 0 n1 0 -- a 0 ) (R nr n1 -- nr n1 0 n1)
-L117:
+L_C_number_2:
dd MV_Base
dd M_fetch ; ( a 0 Base -- a 0 10 ) (R nr n1 -- nr n1 0 n1)
dd M_multiply ; ( a 0 10 -- a 0 ) (R nr n1 -- nr n1 0 n1)
@@ -746,11 +757,11 @@
dd M_cfetch ; ( a 0 a+n1 -- a 0 c) (R nr n1 -- nr n1 0 n1)
dd C_digit
dd M_cjump
-dd L118
+dd L_C_number_3
dd M_plus
dd M_jump
-dd L119
-L118:
+dd L_C_number_4
+L_C_number_3:
dd M_drop
dd M_unloop
dd M_rpop
@@ -758,9 +769,9 @@
dd M_drop
dd C_false
dd M_exitcolon
-L119:
+L_C_number_4:
dd M_doloop
-dd L117
+dd L_C_number_2
dd M_rpop
dd M_drop
dd C_nip
@@ -779,90 +790,346 @@
dd M_fetch
dd M_exitcolon
-; current-input-char
-CENTRY "current-input" C_current_input 13 ; ( -- c ) read the next character from the location in Sourcebuf
-dd MV_toIn
+CENTRY "bufferfd!" C_bufferfd 8 ; ( n -- 'fd ) fd = Bufferfds n +
+dd MV_Bufferfds
+dd M_plus
dd M_fetch
-dd C_source
-dd M_plus ; Sourcebuf + >In
-dd M_cfetch
dd M_exitcolon
-CENTRY "save-input" C_save_input 10 ; ( -- infd >in >limit sourcebuf 'Acceptvec 5 ) save input stream onto the stack
-dd MV_Infd
+CENTRY "Wordfd" C_Wordfd 6 ; ( -- 'fd )
+dd M_literal
+dd 0
+dd C_bufferfd
+dd M_exitcolon
+
+CENTRY "Linefd" C_Linefd 6 ; ( -- 'fd )
+dd M_literal
+dd 1
+dd C_bufferfd
+dd M_exitcolon
+
+CENTRY "Doublequotefd" C_Doublequotefd 13 ; ( -- 'fd )
+dd M_literal
+dd 2
+dd C_bufferfd
+dd M_exitcolon
+
+CENTRY "Closeparenfd" C_Closeparenfd 12 ; ( -- 'fd )
+dd M_literal
+dd 3
+dd C_bufferfd
+dd M_exitcolon
+
+CENTRY "bufferfilename!" C_bufferfilename_store 15 ; ( 'text index -- ) store label
+dd C_cells
+dd MV_Bufferfilenames
+dd M_plus
+dd M_store
+dd M_exitcolon
+
+CENTRY ">word" C_toword 7 ; ( 'Bufferfds -- 'Wordfd )
+dd MC_WORDNUM
+dd C_cells
+dd M_plus
+dd M_exitcolon
+
+CENTRY "wordfd@" C_wordfd_fetch 7
+dd MV_Bufferfds
+dd C_toword
dd M_fetch
-dd MV_toIn
+dd M_exitcolon
+
+CENTRY "wordfd!" C_wordfd_store 7
+dd MV_Bufferfds
+dd C_toword
+dd M_store
+dd M_exitcolon
+
+CENTRY "wordfilename@" C_wordfilename_fetch 13
+dd MV_Bufferfds
+dd C_toword
dd M_fetch
-dd MV_toLimit
+dd M_exitcolon
+
+CENTRY "wordfilename!" C_wordfilename_store 13
+dd MV_Bufferfds
+dd C_toword
+dd M_store
+dd M_exitcolon
+
+CENTRY ">line" C_toline 7 ; ( 'Bufferfds -- 'Wordfd )
+dd MC_LINENUM
+dd C_cells
+dd M_plus
+dd M_exitcolon
+
+CENTRY "linefd@" C_linefd_fetch 7
+dd MV_Bufferfds
+dd C_toline
dd M_fetch
-dd MV_Sourcebuf
+dd M_exitcolon
+
+CENTRY "linefd!" C_linefd_store 7
+dd MV_Bufferfds
+dd C_toline
+dd M_store
+dd M_exitcolon
+
+CENTRY "linefilename@" C_linefilename_fetch 13
+dd MV_Bufferfds
+dd C_toline
dd M_fetch
-dd MV_Acceptvec
+dd M_exitcolon
+
+CENTRY "linefilename!" C_linefilename_store 13
+dd MV_Bufferfds
+dd C_toline
+dd M_store
+dd M_exitcolon
+
+CENTRY ">doublequote" C_todoublequote 12 ; ( 'Bufferfds -- 'Doublequotefd )
+dd MC_LINENUM
+dd C_cells
+dd M_plus
+dd M_exitcolon
+
+CENTRY "doublequotefd@" C_doublequotefd_fetch 14
+dd MV_Bufferfds
+dd C_todoublequote
dd M_fetch
-dd M_literal
-dd 5
dd M_exitcolon
-CENTRY "default-input" C_default_input 13 ; stream input from stdin into Text input buffer
+CENTRY "doublequotefd!" C_doublequotefd_store 14
+dd MV_Bufferfds
+dd C_todoublequote
+dd M_store
+dd M_exitcolon
+
+CENTRY "doublequotefilename@" C_doublequotefilename_fetch 20
+dd MV_Bufferfds
+dd C_todoublequote
+dd M_fetch
+dd M_exitcolon
+
+CENTRY "doublequotefilename!" C_doublequotefilename_store 20
+dd MV_Bufferfds
+dd C_todoublequote
+dd M_store
+dd M_exitcolon
+
+CENTRY ">closeparen" C_tocloseparen 11 ; ( 'Bufferfds -- 'Closeparenfd )
+dd MC_LINENUM
+dd C_cells
+dd M_plus
+dd M_exitcolon
+
+CENTRY "closeparenfd@" C_closeparenfd_fetch 13
+dd MV_Bufferfds
+dd C_tocloseparen
+dd M_fetch
+dd M_exitcolon
+
+CENTRY "closeparenfd!" C_closeparenfd_store 13
+dd MV_Bufferfds
+dd C_tocloseparen
+dd M_store
+dd M_exitcolon
+
+CENTRY "closeparenfilename@" C_closeparenfilename_fetch 19
+dd MV_Bufferfds
+dd C_tocloseparen
+dd M_fetch
+dd M_exitcolon
+
+CENTRY "closeparenfilename!" C_closeparenfilename_store 19
+dd MV_Bufferfds
+dd C_tocloseparen
+dd M_store
+dd M_exitcolon
+
+; stdinput : set all buffer fd's to -1, Infd = stdin
+; args : set all buffer fd's to -1, Infd = #p/<pid>/args
+; input@ : buffer fds and Infd -> stack
+; input! : stack -> buffer fds and Infd
+; -input : close all buffer fds and Infd, set buffer fds to -1
+; buffer file names are setup in boot
+
+CENTRY "stdinput" C_stdinput 8 ; stream input from stdin into Text input buffer
dd MC_STDIN
dd MV_Infd
dd M_store
-dd MV_toIn
-dd C_off
-dd MV_toLimit
-dd C_off
-dd M_Tib
-dd MV_Sourcebuf
-dd M_store
+
+dd MV_Bufferfds
+dd MC_NBUFFERS
dd M_literal
-dd C_accept_line ; could use C_accept_key too
-dd MV_Acceptvec
+dd 0
+dd M_doinit
+L_C_stdinput:
+
+dd M_literal
+dd 1
+dd C_cells
+dd M_plus
+dd M_dup
+dd M_literal
+dd -1
+dd M_xswap
dd M_store
-dd M_exitcolon
-CENTRY "restore-input" C_restore_input 13 ; ( <input>|empty -- f ) ; restore input stream from the stack or set the default-input as the input stream
-dd MV_Eof
-dd C_off ; reset Eof back to 0
+dd M_doloop
+dd L_C_stdinput
+dd M_drop
-dd C_depth
+dd M_exitcolon
+
+CENTRY "args" C_args 4 ; stream input from #p/<pid>/args into Text input buffer
+dd MV_Argsfilename ; ( 'args_filename_counted_string ) filled by the starter
+dd M_cfetch
dd M_literal
-dd 6 ; is the input stream on the stack, depth == 6?
+dd 0
dd M_equal
dd M_cjump
-dd L132 ; depth <> 6, there is no input stream on the stack, get out
+dd L_C_args_read
+dd M_exitcolon
-dd M_dup ; depth == 6, now check if there is a 5 on the top of stack
+L_C_args_read:
+dd MV_Argsfilename
+dd C_count
+dd C_ro
+dd C_open_file
+dd M_drop
+dd MV_Infd
+dd M_store
+
+dd C_interpret
+dd M_exitcolon
+
+CENTRY "input@" C_input_fetch 4 ; ( -- Bufferfds Infd #Buffers+1 ) save input stream onto the stack and replace the buffer fd's with -1
+dd MV_Bufferfds
+dd MC_NBUFFERS
dd M_literal
-dd 5 ; is 5 on the top of stack?
-dd M_equal
+dd 0
+dd M_doinit
+L_C_input_fetch:
+
+dd M_literal
+dd 1
+dd C_cells
+dd M_plus
+dd M_dup
+dd M_fetch
+
+dd M_dup ; ( 'Bufferfd 'Bufferfd )
+dd M_literal
+dd -1
+dd M_xswap ; ( 'Bufferfd -1 'Bufferfd )
+dd M_store ; ( 'Bufferfd )
+
+dd M_doloop
+dd L_C_input_fetch
+dd M_drop
+
+dd MV_Infd
+dd M_fetch
+
+dd MC_NBUFFERS
+dd M_literal
+dd 1
+dd M_plus
+
+dd M_exitcolon
+
+CENTRY "input!" C_input_store 7 ; ( <input>|empty -- ) ; restore input stream from the stack or stdinput
+dd M_dup ; check if there is #Buffers+1 on the top of stack
+
+dd MC_NBUFFERS
+dd M_literal
+dd 1
+dd M_plus
+dd M_equal ; is the top of stack == #Buffers+1
dd M_cjump
-dd L132 ; top of stack <> 5, there is no input stream on the stack, get out
+dd L_C_input_store_1 ; top of stack <> #Buffers+1, there is no input stream on the stack, use the default input
-; ( infd >in >limit sourcebuf 'accept 5 )
-dd M_drop ; ( infd >in >limit sourcebuf 'accept )
-dd MV_Acceptvec
-dd M_store
-dd MV_Sourcebuf
-dd M_store
-dd MV_toLimit
-dd M_store
-dd MV_toIn
-dd M_store
+dd M_drop ; drop the #Buffers+1 on the top of stack
+
dd MV_Infd
dd M_store
-dd C_true ; ( true )
+
+dd MC_NBUFFERS
+dd M_literal
+dd 0
+dd M_doinit
+L_C_input_store:
+
+dd MV_Bufferfds
+dd M_i
+dd C_cells
+dd M_plus
+dd M_store
+
+dd M_doloop
+dd L_C_input_store
+
+dd MV_Eof
+dd C_off ; reset Eof back to 0
+
+dd C_true ; ( true )
dd M_exitcolon
-L132: ; depth <> 6, there is no input stream on the stack, get out
-dd C_default_input ; no input stream on the stack, use default input from now
-dd C_false ; ( 0 )
+L_C_input_store_1: ; there is no input stream on the stack
+dd C_stdinput ; no input stream on the stack, use default input from now
+dd C_false ; ( 0 )
dd M_exitcolon
-CENTRY "?restore-input" C_qrestore_input 14 ; ( <input> -- ) ; use the input stream on the stack or abort
-dd C_restore_input
+; closefds: close all buffer fds and Infd, set buffer fds and Infd to -1
+CENTRY "-input" C_close_input 8 ; ( <input>|empty -- ) ; restore input stream from the stack or stdinput
+dd MV_Bufferfds
+dd MC_NBUFFERS
+dd M_literal
+dd 0
+dd M_doinit
+L_C_close_input:
+
+dd M_literal
+dd 1
+dd C_cells
+dd M_plus
+dd M_dup ; ( 'Bufferfd 'Bufferfd )
+dd M_fetch ; ( 'Bufferfd fd )
+dd C_close_file ; ( 'Bufferfd ioresult )
+dd M_drop ; ( 'Bufferfd )
+
+dd M_dup ; ( 'Bufferfd 'Bufferfd )
+dd M_literal
+dd -1
+dd M_xswap ; ( 'Bufferfd -1 'Bufferfd )
+dd M_store ; ( 'Bufferfd )
+
+dd M_doloop
+dd L_C_close_input
+dd M_drop
+
+dd M_literal
+dd -1
+dd MV_Infd ; ( -1 'Infd )
+dd M_dup ; ( -1 'Infd 'Infd )
+dd M_fetch ; ( -1 'Infd fd )
+dd C_close_file ; ( -1 'Infd ioresult )
+dd M_drop ; ( -1 'Infd )
+dd M_store
+
+dd MV_Eof
+dd C_off ; reset Eof back to 0
+
+dd M_exitcolon
+
+CENTRY "-+input" C_restore_input 7 ; ( <input> -- ) ; use the input stream on the stack or abort
+dd C_close_input
+
+dd C_input_store
dd C_0eq
dd M_cjump
-dd L136 ; input stream restored
+dd L_restore_input ; input stream restored
; no input stream on the stack to restore, show error and abort
dd C_space
@@ -876,260 +1143,196 @@
dd C_dot
dd C_cr
dd C_abort
-L136: ; input stream restored, get out
+L_restore_input: ; input stream restored, get out
dd M_exitcolon
-; next-input-char
-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
-L140:
-dd M_exitcolon
+CENTRY "buffername" C_buffername 10 ; ( index -- 'counted_string ) build the buffer fd's filename
+dd C_cells ; ( index*cellsize ) number of bytes
+dd MV_Bufferfilenames
+dd M_plus ; ( index*cellsize+'Bufferfilenames ) address of the filename's counted string
+dd M_fetch ; ( 'filename_counted_string )
-; replace current-input and next-input with an asm function that does cmove until it meets a certain character or limit?
-CENTRY "parse" C_parse 5 ; ( c -- a ) Place the counted string 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 ; ( Wordb+1 f&(c!=cinitial) )
-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 L120 ; address of the counted string 3#n/
+dd C_pad
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 4
+dd M_cmove ; pad has 3#n/
-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
-L146:
-dd M_rpop ; ( cinitial ) Sourcebuf+>In = location of first non-matching character
-dd C_parse
-dd M_exitcolon
-
-; accept is the Brdline of bio
-; if Acceptvec == 0, set Eof on and get out
-; else execute it
-CENTRY "accept" C_accept 6 ; ( a n -- n ) get line or n chars or EOF from input and store at a
-dd MV_Acceptvec
+dd C_pad
+dd M_literal
+dd 4
+dd M_plus ; ( 'filename_counted_string pad+4 )
+dd M_rpush ; ( 'filename_counted_string pad+4 ) (R pad+4 )
+dd MV_Infd
dd M_fetch
-dd C_qdup
-dd M_cjump
-dd L300 ; Acceptvec == 0, set Eof on and get out
-dd M_execute
+dd C_paren_dot_paren ; ( 'filename_counted_string pad+4 'text fd_text_count ) ( R pad+4 )
+
+dd M_dup
+dd M_rpop
+dd M_plus
+dd M_rpush ; ( 'filename_counted_string pad+4 'text fd_text_count ) ( R pad+4+fd_text_count )
+
+dd M_cmove ; now, pad has #n/<infd> ( 'filename_counted_string ) ( R pad+4+fd_text_count )
+
+dd M_rpop ; ( 'filename_counted_string pad+4+fd_text_count )
+dd M_over ; ( 'filename_counted_string pad+4+fd_text_count 'filename_counted_string )
+dd M_cfetch ; ( 'filename_counted_string pad+4+fd_text_count filename_count )
+dd M_rpush ; ( 'filename_counted_string pad+4+fd_text_count ) (R filename_count )
+dd M_dup
+dd M_rpush ; ( 'filename_counted_string pad+4+fd_text_count ) (R filename_count pad+4+fd_text_count )
+
+dd M_xswap ; ( pad+4+fd_text_count 'filename_counted_string ) (R filename_count pad+4+fd_text_count )
+dd C_count ; ( pad+4+fd_text_count 'filename count ) (R filename_count pad+4+fd_text_count )
+dd M_cmove ; now, pad has the whole filename ( ) (R filename_count pad+4+fd_text_count )
+
+dd M_rpop
+dd M_rpop
+dd M_plus ; ( pad+4+fd_text_count+filename_count )
+
+dd C_pad
+dd C_1plus
+dd M_minus ; ( pad+4+fd_text_count+filename_count-pad-1 )
+dd C_pad
+dd M_store ; Now, pad has a proper counted string
dd M_exitcolon
-L300: ; Acceptvec == 0, set Eof on and get out
-dd C_2drop ; ( )
-dd M_literal
-dd 0 ; ( 0 )
+
+CENTRY "get" C_get 3 ; ( index -- 'counted-string ) read from the indexed Fd in Bufferfds into Tib as a counted string
dd MV_Eof
-dd C_on
-dd M_exitcolon
+dd C_off ; clear EOF flag
-CENTRY "accept-line" C_accept_line 11 ; ( a n -- n1 ) get line or n chars or EOF from input and store at a using key
-dd MV_Infd
-dd M_fetch ; ( a n infd )
-dd C_read_file ; ( n ioresult )
-dd M_cjump
-dd L301 ; ioresult == false as n = -1
+dd M_dup
-dd M_dup ; ( n n )
-dd M_cjump
-dd L302 ; ( 0 )
+dd C_cells ; ( index index*cellsize ) number of bytes
+dd MV_Bufferfds
+dd M_plus ; ( index index*cellsize+'Bufferfds ) address of the filename's counted string
+dd M_fetch ; ( index fd )
-dd M_dup ; n > 0. if n == 4096, error out. ( n n )
+dd M_dup ; ( index fd fd )
dd M_literal
-dd 4096 ; ( n n 4096 )
-dd M_equal ; ( n n==4096 )
-dd M_cjump ; ( n )
-dd L303 ; n < 4096 ( n )
+dd -1
+dd M_equal
+dd M_cjump ; if fd == -1 ( index fd )
+dd L_C_get ; when not -1
-dd MV_Sourcebuf ; n == 4096 ( n )
-dd M_fetch ; ( n tib )
-dd M_xswap ; ( tib n )
-dd C_type ; show the long line and an error message
+dd M_drop ; when fd == -1 ( index )
+dd M_dup
+dd M_dup
+dd M_rpush ; ( index index ) (R index )
+dd C_buffername
+dd C_count ; ( index 'filename-counted-string -- 'text count )
+dd C_ro
+dd C_open_file ; ( index fd ioresult )
+dd M_cjump
+dd L_C_get_store
+
+dd M_drop ; ( index ) (R index ) returned false, could not open-file. write error message
dd M_literal
-dd L304
-dd M_literal
-dd 37
-dd C_type ; show the error message
+dd L140 ; open error
+dd C_count
+dd C_type
+dd C_emit ; show the index
dd C_cr
-dd C_abort
+dd C_abort ; abort on open error. How about terminate?
-L303: ; n < 4096 ( n )
-dd C_1minus ; n-- to avoid parsing the newline character
-dd M_exitcolon ; ( n ) n = number of bytes read
+L_C_get_store: ; ( index fd ) (R index ) store the opened fd
+dd M_dup ; ( index fd fd )
+dd M_rpop ; ( index fd fd index )
+dd C_cells ; ( index fd fd index*cellsize ) number of bytes
+dd MV_Bufferfds
+dd M_plus ; ( index fd fd index*cellsize+'Bufferfds ) address of the filename's counted string
+dd M_store ; ( index fd )
-L301: ; ioresult == false as n = -1, read error, TODO show the errstr
+L_C_get: ; ( index fd ) when fd != -1
+dd MV_Tib
dd M_literal
-dd L305
+dd 1
+dd M_plus ; Tib 1 +
dd M_literal
-dd 12
-dd C_type ; show the error message
-dd C_cr
-dd C_abort
+dd 4095 ; ( index fd Tib+1 4095 )
+dd C_rot ; ( index Tib+1 4095 fd )
+dd M_fetch
+dd read-file ; ( index read_count ioresult )
-L302: ; n == 0 ( 0 ) end of file
-dd MV_Eof ; n == 0, set Eof
-dd C_on ; EOF
-dd M_exitcolon ; ( 0 )
+dd M_literal
+dd -1
+dd M_equal
+dd M_cjump
+dd L_C_get_1
-; loops through 1 character at a time until a newline unlike accept-line which gets the line in one call.
-CENTRY "accept-key" C_accept_key 10 ; ( a n -- n ) get line or n chars or EOF from input and store at a using key
-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 L141 ; read error
+dd C_count
+dd C_type
+dd C_emit ; show the index
+dd C_cr
+dd C_abort ; abort on read error. How about terminate?
+
+L_C_get_1:
+dd C_nip ; ( read_count )
+dd M_dup ; ( read_count read_count )
dd M_literal
-dd -1 ; ( -- n c f c -1 )
-dd M_equal ; ( -- n c f1 f2 )
-dd M_binor ; ( -- n c f )
+dd 0
+dd M_equal
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 L_C_get_2
-CENTRY "query" C_query 5 ; read from input stream into the Text Input Buffer
+dd M_drop ; ( ) read_count == 0
dd MV_Eof
-dd C_off ; clear EOF flag
-dd M_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
-L153:
+dd C_on ; end of file, qrestore_input
+dd C_restore_input
dd M_exitcolon
-CENTRY "refill" C_refill 6 ; no more refills when there is no 'Acceptvec
-dd MV_Acceptvec
-dd M_fetch
-dd M_cjump
-dd L155
-dd C_false
+L_C_get_2: ; read_count > 0 ( read_count )
+dd MV_Tib ; ( read_count 'Tib ) Tib has the counted string read
+dd M_store
+
+dd MV_Tib ; ( 'Tib )
dd M_exitcolon
-L155:
-dd C_query
-dd C_true
+
+CENTRY "word" C_word 4 ; ( c -- a ) read from #n/Infd/word into Tib
+dd MC_WORDNUM
+dd C_get
dd M_exitcolon
+CENTRY "line" C_line 4 ; ( c -- a ) read from #n/Infd/line
+dd MC_LINENUM
+dd C_get
+dd M_exitcolon
+
+CENTRY "doublequote" C_doublequote 11 ; ( c -- a ) read from #n/Infd/doublequote
+dd MC_DOUBLEQUOTENUM
+dd C_get
+dd M_exitcolon
+
+CENTRY "closeparen" C_closeparen 10 ; ( c -- a ) read from #n/Infd/closeparen
+dd MC_CLOSEPARENNUM
+dd C_get
+dd M_exitcolon
+
CENTRY "findname" C_findname 8 ; ( a1 -- a2 f ) ; loop through the dictionary names
dd MV_Findadr
dd M_store
-dd M_Dtop
+dd MV_Dtop
dd M_fetch ; get latest dictionary link
-L158:
+L_C_findname:
dd C_qdup
dd M_cjump
-dd L159 ; seached until the first dictionary entry get out
+dd L_C_findname_1 ; seached until the first dictionary entry get out
dd M_dup ; ( a -- a a )
-dd C_cellplus ; ( a a -- a a+8) lenth + initial name address
+dd C_cell_plus ; ( a a -- a a+8) lenth + initial name address
dd M_cfetch ; ( a a+8 -- a immediate|hidden|len) length + initial name
dd M_literal
dd 64 ; check the reveal'ed flag 1=hidden, 0=reveal
-dd M_binand ; if hidden, goto L161 else L160
+dd M_binand ; if hidden, goto L_C_findname_3 else L_C_findname_2
dd M_cjump
-dd L160
+dd L_C_findname_2
dd M_fetch ; smudge'd dictionary entry, get the previous entry
dd M_jump
-dd L161
-L160: ; reveal'ed dictionary entry
+dd L_C_findname_3
+L_C_findname_2: ; reveal'ed dictionary entry
dd M_dup ; ( a1 -- a1 a1)
-dd C_cellplus ; ( a1 a1 -- a1 a1+8)
+dd C_cell_plus ; ( a1 a1 -- a1 a1+8)
dd C_count ; ( a1 a1+8 -- a1 a1+8+1 n )
dd M_literal
dd 63
@@ -1140,16 +1343,16 @@
dd C_compare ; ( a1 a1+8+1 len=n&63 a2+1 n2 -- a1 f ) compare dictionary entry with name
dd C_0eq ; found a match?
dd M_cjump
-dd L162 ; no match
-dd C_cellplus ; match found
+dd L_C_findname_4 ; no match
+dd C_cell_plus ; match found
dd C_true
dd M_exitcolon
-L162:
+L_C_findname_4:
dd M_fetch
-L161:
+L_C_findname_3:
dd M_jump
-dd L158
-L159:
+dd L_C_findname
+L_C_findname_1:
dd MV_Findadr
dd M_fetch
dd C_false
@@ -1158,7 +1361,7 @@
CENTRY "find" C_find 4 ; ( a1 -- a2 f )?
dd C_findname
dd M_cjump
-dd L164
+dd L_C_find
dd M_dup
dd M_cfetch
dd M_xswap
@@ -1174,30 +1377,29 @@
dd 128
dd M_binand
dd M_cjump
-dd L165
+dd L_C_find_1
dd M_literal
dd 1
dd M_jump
-dd L166
-L165:
+dd L_C_find_2
+L_C_find_1:
dd M_literal
dd -1
-L166:
+L_C_find_2:
dd M_exitcolon
dd M_jump
-dd L167
-L164:
+dd L_C_find_3
+L_C_find:
dd C_false
-L167:
+L_C_find_3:
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 L_C_single_quote
dd C_space
dd C_count
dd C_type
@@ -1208,15 +1410,15 @@
dd C_type
dd C_cr
dd C_abort
-L169:
+L_C_single_quote:
dd M_exitcolon
CENTRY "?stack" C_qstack 6
dd M_stackptr
-dd M_S0
+dd MV_S0
dd M_greater
dd M_cjump
-dd L172
+dd L_C_qstack
dd M_literal
dd L173
dd M_literal
@@ -1224,7 +1426,7 @@
dd C_type
dd C_cr
dd C_abort
-L172:
+L_C_qstack:
dd M_exitcolon
dd MC_STDOUT ; ( str -- str 1) ; debug code to show the word found
@@ -1235,29 +1437,28 @@
CENTRY "interpret" C_interpret 9 ; there is stuff in TIB to be interpreted >In and >Limit are set
-L175:
-dd C_bl
+L_C_interpret:
dd C_word ; ( bl -- a ) a = address of counted string
dd M_dup
dd M_cfetch
dd C_0neq
dd M_cjump
-dd L176 ; count at a = 0, drop a and exit
+dd L_C_interpret_1 ; count at a = 0, drop a and exit
dd C_find ; ( a -- a1 f ) a = address of counted string
dd M_cjump
-dd L177
+dd L_C_interpret_2
dd M_execute ; found in dictionary, execute
dd C_qstack
dd M_jump
-dd L178
-L177: ; not found in the dictionary, check for number?
+dd L_C_interpret_3
+L_C_interpret_2: ; not found in the dictionary, check for number?
dd C_count
dd C_number
dd C_0eq
dd M_cjump
-dd L179
+dd L_C_interpret_4
dd C_space ; the word is neither in the dictionary nor a number
dd C_type ; show the word
dd M_literal
@@ -1267,11 +1468,11 @@
dd C_type
dd C_cr
dd C_abort
-L179: ; is a number
-L178:
+L_C_interpret_4: ; is a number
+L_C_interpret_3:
dd M_jump
-dd L175
-L176:
+dd L_C_interpret
+L_C_interpret_1:
dd M_drop ; count at a = 0 ( a -- )
dd M_exitcolon
@@ -1279,10 +1480,9 @@
dd C_align ; sets Dp = aligned here
dd C_here ; ( -- here )
dd M_rpush ; ( -- ) (R -- linkaddr )
-dd M_Dtop ; ( -- Dtop ) (R -- linkaddr )
+dd MV_Dtop ; ( -- Dtop ) (R -- linkaddr )
dd M_fetch ; ( Dtop -- dtop ) (R -- linkaddr )
dd C_comma ; ( dtop -- ) (R -- linkaddr )
-dd C_bl
dd C_word ; get the word from the input stream ( c -- a ) skip any c. Placed the counted string in a (as in Wordbuf)
dd M_dup ; ( a -- a a ) (R -- linkaddr )
dd M_cfetch ; ( a a -- a len ) (R -- linkaddr )
@@ -1300,19 +1500,19 @@
dd M_fetch ; ( -- variablecfa) (R -- linkaddr )
dd C_comma ; ( -- ) put the variablecfa into the cfa
dd M_rpop ; ( -- linkaddr) (R -- )
-dd M_Dtop
+dd MV_Dtop
dd M_store ; Dtop = just created link address
dd M_exitcolon
-CENTRY "variable" C_variable 8 ; compile to put the vhere then on the stack
+CENTRY "variable" C_variable 8 ; compile to put the there then on the stack
dd C_create
-dd C_vhere
+dd C_there
dd C_comma ; put the next available variable location in pfa
dd M_literal
dd 1
dd C_cells
-dd C_vallot ; vhere = vhere+8, stored at Vp
+dd C_vallot ; there = there+8, stored at Vp
dd M_exitcolon
CENTRY "constant" C_constant 8 ; ( n -- ) do the same as variable but change the cfa to (constant)
@@ -1330,9 +1530,9 @@
dd M_exitcolon
CENTRY "immediate" C_immediate 9
-dd M_Dp
+dd MV_Dp
dd M_fetch
-dd C_cellplus
+dd C_cell_plus
dd M_dup
dd M_cfetch
dd M_literal
@@ -1349,10 +1549,11 @@
dd M_plus
dd C_aligned
dd M_exitcolon
+
CENTRY "compile" C_compile 7
dd C_findname
dd M_cjump
-dd L188
+dd L_C_compile
dd M_dup
dd M_cfetch
dd M_literal
@@ -1359,28 +1560,28 @@
dd 128
dd M_binand
dd M_cjump
-dd L189
+dd L_C_compile_1
dd C_tocfa ; immediate
dd M_execute
dd C_qstack
dd M_jump
-dd L190
-L189:
+dd L_C_compile_2
+L_C_compile_1:
dd C_tocfa
dd C_comma
-L190:
+L_C_compile_2:
dd M_jump
-dd L191
-L188:
+dd L_C_compile_3
+L_C_compile:
dd C_count
dd C_number
dd C_0eq
dd M_cjump
-dd L192
+dd L_C_compile_4
dd C_space
dd C_type
dd M_literal
-dd L193
+dd L_C_compile_5
dd M_literal
dd 3
dd C_type
@@ -1387,49 +1588,50 @@
dd C_cr
dd C_abort
dd M_jump
-dd L194
-L192:
+dd L_C_compile_6
+L_C_compile_4:
dd M_literal
dd M_literal
dd C_comma
dd C_comma
-L194:
-L191:
+L_C_compile_6:
+L_C_compile_3:
dd M_exitcolon
+
CENTRY "]" C_close_bracket 1
dd MV_State
dd C_on
-L196:
-dd C_bl
+L_C_close_bracket:
dd C_word
dd M_dup
dd M_cfetch
dd C_0eq
dd M_cjump
-dd L197
+dd L_C_close_bracket_1
dd M_drop
-dd C_refill ; no more refills when there is no Acceptvec. Is it a problem? did not dig through to figure out
+dd C_word
dd M_jump
-dd L198
-L197:
+dd L_C_close_bracket_2
+L_C_close_bracket_1:
dd C_compile
dd MV_State
dd M_fetch
-L198:
+L_C_close_bracket_2:
dd M_cjump
-dd L199
+dd L_C_close_bracket_3
dd M_jump
-dd L196
-L199:
+dd L_C_close_bracket
+L_C_close_bracket_3:
dd M_exitcolon
+
CIENTRY "[" CI_open_bracket 1
dd MV_State
dd C_off
dd M_exitcolon
CENTRY "smudge" C_smudge 6
-dd M_Dp
+dd MV_Dp
dd M_fetch
-dd C_cellplus
+dd C_cell_plus
dd M_dup
dd M_cfetch
dd M_literal
@@ -1439,9 +1641,9 @@
dd M_cstore
dd M_exitcolon
CENTRY "reveal" C_reveal 6
-dd M_Dp
+dd MV_Dp
dd M_fetch
-dd C_cellplus
+dd C_cell_plus
dd M_dup
dd M_cfetch
dd M_literal
@@ -1475,19 +1677,21 @@
dd C_off
dd C_reveal
dd M_exitcolon
+
CIENTRY "recurse" CI_recurse 7
-dd M_Dp
+dd MV_Dp
dd M_fetch
-dd C_cellplus
+dd C_cell_plus
dd C_tocfa
dd C_comma
dd M_exitcolon
+
CENTRY "char" C_char 4 ; ( -- c ) fetch the first character of the next word from input
-dd C_bl
dd C_word ; ( c -- a ) puts the address of the counted string from the input on the stack
dd C_1plus ; skip the count
dd M_cfetch ; fetch the first character
dd M_exitcolon
+
CENTRY "literal" C_literal 7 ; ( n -- ) adds (literal) n to the dictionary
dd M_literal
dd M_literal
@@ -1494,14 +1698,15 @@
dd C_comma
dd C_comma
dd M_exitcolon
+
CENTRY "sliteral" C_sliteral 8 ; ( -- ) adds (sliteral) a n to the dictionary
dd M_literal
dd M_sliteral
dd C_comma ; adds (sliteral) to the dictionary
-dd C_here ; ( -- here)
-dd M_literal
-dd 34 ; ascii value of "
-dd C_parse ; ( here \" -- here a ) \" = word delimiter. a = address of counted string (in Wordbuf).
+dd C_here ; ( here )
+
+dd C_doublequote
+dd MV_Tib
dd M_dup ; ( here a -- here a a )
dd M_cfetch ; ( here a a -- here a n )
dd C_1plus ; ( here a n -- here a n+1 ) n+1 as 1 for the count and n for the length of the string
@@ -1513,6 +1718,7 @@
dd C_allot ; ( n+1 -- ) here = here+n+1
dd C_align ; align here
dd M_exitcolon
+
CENTRY "string" C_string 6 ; ( c -- )
dd C_word
dd M_dup
@@ -1526,7 +1732,6 @@
dd C_allot
dd M_exitcolon
CIENTRY "[char]" CI_char_brackets 6 ; take the next character from the input stream during compilation
-dd C_bl
dd C_word
dd C_1plus
dd M_cfetch
@@ -1539,44 +1744,30 @@
dd M_exitcolon
CIENTRY "(" CI_openparen 1 ; ignore until ) from the input stream during compilation
-dd M_literal
-dd 41
-dd C_parse
+dd C_closeparen
dd M_drop
dd M_exitcolon
; if the line is longer than Tib, then skipping this line is not good enough. hence, throwing an error when >Limit == Tib length
CIENTRY "\\" CI_backslash 1 ; when there is no Acceptvec, find a newline in the buffer and skip until that
-dd MV_Acceptvec
-dd M_fetch
-dd M_cjump
-dd L214 ; there is no Acceptvec, we are processing a buffer
-dd MV_toLimit ; there is an Acceptvec, skip the rest of this line
-dd M_fetch
-dd MV_toIn
-dd M_store
+dd C_line
dd M_exitcolon
-L214:
-dd M_literal
-dd 10
-dd C_parse ; find the next 10 = LF character
-dd M_drop ; skip all characters not equal to 10
-dd M_exitcolon
CENTRY "(?abort)" C_qabort_parens 8
dd MV_State
dd M_cjump
-dd L217
+dd L_C_qabort_parens
dd C_space
dd C_type
dd C_cr
dd C_abort
dd M_jump
-dd L218
-L217:
+dd L_C_qabort_parens_1
+L_C_qabort_parens:
dd C_2drop
-L218:
+L_C_qabort_parens_1:
dd M_exitcolon
+
CIENTRY "abort\"" CI_abort_double_quote 6
dd C_sliteral
dd M_literal
@@ -1585,9 +1776,7 @@
dd M_exitcolon
CENTRY "\"" C_double_quote 1 ; ( | .. " -- 'text count ) stores counted string in the dictionary and also leaves the address and count of the string on the stack - to use strings at the interpreter prompt
-dd M_literal
-dd 34
-dd C_word
+dd C_doublequote
dd C_count
dd M_rpush
dd C_here
@@ -1600,9 +1789,7 @@
dd M_exitcolon
CENTRY "c\"" C_cdouble_quote 2 ; ( | ..." -- 'counted-string ) stores counted string in the dictionary and also leaves the address of the counted string on the stack. For use in interpretive mode. shouldn't this be using pad?
-dd M_literal
-dd 34 ; ( -- \" )
-dd C_word ; ( \" -- a ) a = counted string address. a will be in Wordbuf
+dd C_doublequote ; ( \" -- a ) a = counted string address. a will be in Wordbuf
dd M_dup ; ( a -- a a)
dd M_cfetch ; ( a a -- a n )
dd C_1plus ; ( a n -- a n+1 )
@@ -1868,32 +2055,19 @@
dd M_exitcolon
CENTRY "include" C_include 7 ; this does not work
-dd C_bl
dd C_word
dd M_rpush
-dd MV_Acceptvec
-dd M_fetch
-dd M_cjump
-dd L248 ; when Acceptvec == 0
-dd MV_toLimit ; include ends any further reading from the current input line
-dd M_fetch
-dd MV_toIn
-dd M_store
-L248: ; when Acceptvec == 0
-dd C_save_input
-dd C_default_input
-dd M_literal
-dd C_accept_key ; as C_accept_line will not get a line per read from non-cons files
-dd MV_Acceptvec
-dd M_store
+dd C_input_fetch ; save the old input onto the stack
+
dd M_rpop
dd C_count
dd C_ro
dd C_open_file
dd C_qfcheck
-dd MV_Infd
+dd MV_Infd ; open the new file
dd M_store
+
dd M_exitcolon
CENTRY "crash" C_crash 5
@@ -1909,12 +2083,12 @@
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
+L_C_quit:
+dd C_word
; dd MV_toLimit ; show the line read, for debugging
; dd M_fetch
-; dd M_Tib
+; dd MV_Tib
; dd MC_STDOUT
; dd M_fswrite
; dd M_drop ; drop the return value of write
@@ -1924,7 +2098,7 @@
dd C_interpret
dd M_jump
-dd L253
+dd L_C_quit
dd M_exitcolon ; why is this needed?
CENTRY "(abort)" C_parenabort 7 ; TODO correct below stack notations
@@ -1941,86 +2115,65 @@
dd MV_Errfd
dd M_store
-dd C_default_input
+dd C_stdinput
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_Dp ; 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_Fthargs ; 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 M_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 M_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
-
dd M_literal ; test code
dd 66
-dd M_Wordb
+dd MV_Wordb
dd M_store
dd MC_STDOUT
-dd M_Wordb
+dd MV_Wordb
dd M_literal
dd 1
dd M_syswrite
dd M_drop ; drop the return value of write
dd MC_STDIN
-dd M_Wordb
+dd MV_Wordb
dd M_literal
dd 1
dd M_sysread
dd M_drop ; drop the return value of read
-CENTRY "do-args" C_do_args 7
+CENTRY "initialize" C_initialize 10 ; initialize buffer file names, why not hard code this?
+dd MV_Bufferfilenames
+dd MC_NBUFFERS
dd M_literal
dd 0
-dd MV_Acceptvec ; no more refills
-dd M_store ; C_off ; Acceptvec == 0, reading from a buffer. no more refills.
+dd M_doinit
+L150:
dd M_literal
+dd 1
+dd C_cells
+dd M_plus
+dd M_dup
+dd M_literal
dd 0
-dd MV_toIn
-dd M_store ; >in = 0
+dd M_xswap
+dd M_store
-dd M_Fthargs ; ( a )
-dd C_count ; ( a+1 n )
-dd MV_toLimit
-dd M_store ; ( a+1 ) >limit = n
-dd MV_Sourcebuf
-dd M_store ; sourcebuf = a+1
+dd M_doloop
+dd L150
+dd M_drop
-dd C_interpret
+dd M_literal
+dd L121
+dd C_wordfilename_store
+
+dd M_literal
+dd L122
+dd C_linefilename_store
+
+dd M_literal
+dd L123
+dd C_doublequotefilename_store
+
+dd M_literal
+dd L124
+dd C_closeparenfilename_store
dd M_exitcolon
CENTRY "boot" C_boot 4
@@ -2032,16 +2185,16 @@
dd MV_Abortvec ; variable that puts (abort) code address on the stack
dd M_store ; variable abortvec = (abort) code address
-dd M_Wordb ; variable puts address of wordbuffer on the top of stack
+dd MV_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 M_Dp
+dd MV_Dp
dd MV_H0 ; H0 = here at startup
dd M_store
dd MC_STDIN
-dd MV_Infd
+dd MV_Infd ; might be overwritten by args below
dd M_store ; stdin = 0
dd MC_STDOUT
dd MV_Outfd
@@ -2054,20 +2207,46 @@
dd C_off ; off stores 0 at state
dd C_decimal ; decimal sets base = 10
-dd C_default_input ; read lines from stdin, if args do not set one up
-
-dd M_Fthargs
-dd M_cfetch
-dd M_cjump
-dd L260 ; fetched 0, no args, go to the interpreter loop
-dd C_do_args ; process args
-L260:
-; dd C_default_input ; do not do this as it will override any input streams set up by the args
+dd C_initialize ; sets up the buffer filenames
+dd C_args ; process args
+dd C_close_input ; if the args opened an input
+dd C_stdinput ; read lines from stdin, args can change it later
dd C_quit ; interpreter loop when there are no args or fall through after processing args
dd M_exitcolon
+L_pid_filename:
+db 6
+db "#c/pid"
+L_args_prefix:
+db 3
+db "#p/"
+L_args_suffix:
+db 5
+db "/args"
+L120:
+db 3
+db "#n/"
+L121:
+db 5
+db "/word"
+L122:
+db 5
+db "/line"
+L123:
+db 12
+db "/doublequote"
+L124:
+db 11
+db "/closeparen"
+
L137:
db "unable to restore input"
+L140:
+db 17
+db "open file failed"
+L141:
+db 17
+db "read file failed"
L170:
db " Q?"
L173:
@@ -2074,7 +2253,7 @@
db " stack underflow"
L180:
db " I?"
-L193:
+L_C_compile_5:
db " C?"
L247:
db "I/O error"
--- a/os/port/devforth.c
+++ b/os/port/devforth.c
@@ -68,7 +68,8 @@
s32 stdinfd, stdoutfd, stderrfd;
s32 *keepfds, *closefds;
s32 nkeepfds, nclosefds;
- char args[Argslen];
+ char *args;
+ int nargs; /* number of bytes in args */
};
int nforthprocs = 0;
@@ -189,13 +190,9 @@
}
}else if(cistrncmp("ARGS", s, 4) == 0){ // until the end or Argslen = 256 bytes
s += 4;
- for(i = 1; i < Argslen && *s != '\0'; i++){
- p.args[i] = *s;
- s++;
- }
- if(i >= Argslen)
- error(Ebadctl);
- p.args[0] = i-1; /* storing the count */
+ p.nargs = strlen(s);
+ p.args = malloc(p.nargs);
+ strncpy(p.args, s, p.nargs);
}else if(*s == ' ' || *s == ' ' || *s == '\r' || *s == '\n'){
/* would be nice to use isspace(*s) here */
s++;
@@ -215,7 +212,7 @@
" args %d: %s\n",
p.newenv, p.newfd, p.newns, p.shmem, p.nodevs,
p.stdinfd, p.stdoutfd, p.stderrfd,
- p.args[0], p.args[1]);
+ p.nargs, p.args);
if(p.nclosefds > 0){
print(" closefds ");
for(i = 0; i < p.nclosefds; i++){
@@ -240,13 +237,13 @@
{
intptr i;
Fentry *f;
- u8 *h, *dtop, *vh;
+ u8 *h, *dtop, *vh, nbytes;
int n;
Bhdr *b;
h = fmem+DICTIONARY;
dtop = nil;
- vh = fmem+VHERE+8;
+ vh = fmem+THERE+8;
DBG("loadforthdictionary fmem 0x%p h 0x%p dtop 0x%p vh 0x%p\n"
" (intptr*)(fmem + DTOP) 0x%p *(intptr*)(fmem + DTOP) 0x%zx\n"
" PSTACK 0x%p (intptr*)(fmem + PSTACK) 0x%p\n"
@@ -303,17 +300,21 @@
*(intptr*)h = f->p;
DBG(" 0x%p: 0x%zx 0x%zx\n", h, *(intptr*)h, f->p);
h += sizeof(intptr);
- }else if(f->type == FromH0){
+ }else if(f->type == FromDictionary){
*(intptr*)h = (intptr)fmem+DICTIONARY+f->p;
DBG(" 0x%p: 0x%zx 0x%p src %s\n", h, *(intptr*)h, fmem+DICTIONARY+f->p, f->src);
h += sizeof(intptr);
+ }else if(f->type == FromH0){
+ *(intptr*)h = (intptr)fmem+f->p;
+ DBG(" 0x%p: 0x%zx 0x%p src %s\n", h, *(intptr*)h, fmem+f->p, f->src);
+ h += sizeof(intptr);
}else if(f->type == FromV0){
- *(intptr*)h = (intptr)fmem+VHERE+8+f->p; /* pfa with the address where the value is */
- *(intptr*)vh = 0; /* actual value */
- DBG(" 0x%p: 0x%zx 0x%p\n", h, *(intptr*)h, (intptr)fmem+VHERE+8+f->p);
+ *(intptr*)h = (intptr)fmem+THERE+8+f->p; /* pfa with the address where the value is */
+ *(intptr*)vh = 0; /* actual value, not necessary as malloc zeroes it all */
+ DBG(" 0x%p: 0x%zx 0x%p\n", h, *(intptr*)h, (intptr)fmem+THERE+8+f->p);
DBG(" 0x%p: 0x%zx 0\n", vh, *(intptr*)vh);
h += sizeof(intptr); /* space for pfa with the variable address */
- vh += sizeof(intptr); /* space for the actual value */
+ vh = fmem+THERE+8+f->p; /* space for the actual value */
}else if(f->type == Chars){
strcpy((s8*)h, f->str);
h += strlen(f->str);
@@ -324,7 +325,13 @@
}
*(intptr*)(fmem + HERE) = (intptr)h;
*(intptr*)(fmem + DTOP) = (intptr)dtop;
- *(intptr*)(fmem + VHERE) = (intptr)vh;
+ *(intptr*)(fmem + THERE) = (intptr)vh;
+ *(intptr*)(fmem + FTHPID) = up->pid;
+ *(intptr*)(fmem + FTHPARENTPID) = up->parentpid;
+
+ nbytes = snprint((char*)fmem + ARGSFILENAME+1, 32, "#p/%d/args", up->pid);
+ *(u8*)(fmem + ARGSFILENAME) = nbytes;
+
print("loadforthdictionary fmem 0x%p h 0x%p dtop 0x%p vh 0x%p\n"
" (intptr*)(fmem + DTOP) 0x%p *(intptr*)(fmem + DTOP) 0x%zx\n"
" PSTACK 0x%p (intptr*)(fmem + PSTACK) 0x%p\n"
@@ -499,6 +506,9 @@
p->hang = 0;
p->kp = 0;
+ p->args = params->args;
+ p->nargs = params->nargs;
+
p->fmem = mallocalign(FORTHHEAPSIZE, BY2PG, 0, 0);
if(p->fmem == nil)
panic("newforthproc p->fmem == nil\n");
@@ -506,7 +516,6 @@
/* store the start address at that address too - magic check */
((intptr*)p->fmem)[0] = (intptr)p->fmem; /* heap start */
((intptr*)p->fmem)[1] = (intptr)p->fmem+FORTHHEAPSIZE-1; /* heap end */
- strncpy((s8*)p->fmem + FTHARGS, params->args, Argslen);
/* p->kpfun = func;
p->kparg = arg;