Block 7000 ( post79.4th -- POST for the FORTH-79 Required Word Set on v4. ) ( Generated by v4/tools/mkpost.py from v3's POST cases: do not ) ( edit. docs/v4.0.0/NUCLEUS.md section 6. ) VARIABLE T# VARIABLE TPASS VARIABLE TFAIL VARIABLE TOPEN VARIABLE TBAD VARIABLE TWANT VARIABLE TLEN VARIABLE TSUM VARIABLE TDEP CREATE TBUF 64 ALLOT CREATE TSTK 16 ALLOT CREATE TNAME 8 ALLOT 0 T# ! 0 TPASS ! 0 TFAIL ! 0 TOPEN ! : TB ( -- baddr ) TBUF 4 * ; : TN ( -- baddr ) TNAME 4 * ; ( T-EMIT is given every character a case prints: the first 255 ) ( are kept, all are counted and summed. ) : T-EMIT ( c -- ) 255 AND DUP TSUM @ 31 * + 16777215 AND TSUM ! TLEN @ 255 < IF TB TLEN @ + C! ELSE DROP THEN 1 TLEN +! ; Block 7001 : T-CLEAR ( i*x -- ) BEGIN DEPTH WHILE DROP REPEAT ; : T. ( n -- ) 0 <# #S #> TYPE ; ( what a failing case printed, and the stack it left ) : T-SHOW ( -- ) ." out<" TB TLEN @ 255 MIN TYPE ." > stack<" TDEP @ BEGIN DUP WHILE 1- DUP TSTK + @ . REPEAT DROP ." >" ; ( the verdict on the case that is open, if one is ) : T-CLOSE ( -- ) TOPEN @ IF (CATCH) @ -1 = TWANT @ = 0= IF 1 TBAD ! THEN TBAD @ IF 1 TFAIL +! ." POST FAIL: " TN COUNT TYPE T-SHOW CR ELSE 1 TPASS +! THEN 0 TOPEN ! 0 (CATCH) ! THEN ; Block 7002 ( T{ name begin a case: clean stack, decimal, FORTH ) : T{ ( i*x -- ) T-CLOSE T-CLEAR DECIMAL [COMPILE] FORTH DEFINITIONS BL WORD COUNT 31 MIN DUP TN C! TN 1+ SWAP CMOVE 1 T# +! 1 TOPEN ! 0 TBAD ! 0 TWANT ! 0 TLEN ! 0 TSUM ! 0 TDEP ! 1 (CATCH) ! ; ( T| ... a line of the case, what it prints captured ) : T| ' T-EMIT (EMIT-HOOK) ! ; IMMEDIATE : T-END ( -- ) 0 (EMIT-HOOK) ! DECIMAL ; ( -> ... the case is over: set its stack aside, top first ) : -> ( i*x -- ) T-END 0 BEGIN DEPTH 1 > WHILE DUP 16 < IF SWAP OVER TSTK + ! ELSE SWAP DROP 1 TBAD ! THEN 1+ REPEAT 16 MIN TDEP ! ; Block 7003 ( ->ERR the case is over, and must have ended in an error ) : ->ERR ( i*x -- ) T-END -1 TWANT ! T-CLEAR ; ( ... }T the stack the case must have left, in order ) : }T ( i*x -- ) DEPTH TDEP @ = 0= IF 1 TBAD ! T-CLEAR EXIT THEN 0 BEGIN DEPTH 1 > WHILE SWAP OVER TSTK + @ = 0= IF 1 TBAD ! THEN 1+ REPEAT DROP ; ( n }TD only how many values the case must have left ) : }TD ( n -- ) TDEP @ = 0= IF 1 TBAD ! THEN ; ( len sum T= what the case must have printed ) : T= ( len sum -- ) TSUM @ = 0= IF 1 TBAD ! THEN TLEN @ = 0= IF 1 TBAD ! THEN ; Block 7004 ( the tally; a failure is an error, which ends the boot ) : T-REPORT ( -- ) T-CLOSE 0 (CATCH) ! DECIMAL ." PARITY:V4_POST tests=" T# @ T. ." pass=" TPASS @ T. ." fail=" TFAIL @ T. CR TFAIL @ IF -1 NODE-ERROR ! THEN ; Block 7005 T{ DUP.basic T| 5 DUP . . CR -> }T 5 16397428 T= T{ DUP.zero T| 0 DUP . . CR -> }T 5 11775018 T= T{ DUP.negative T| -42 DUP . . CR -> }T 9 15322016 T= T{ DUP.max_int T| 2147483647 DUP . . CR -> }T 23 2334858 T= T{ DUP.min_int T| -2147483648 DUP . . CR -> }T 25 386046 T= Block 7006 T{ DUP.empty_stack T| DUP ->ERR T{ DROP.basic T| 5 7 DROP . CR -> }T 3 51935 T= T{ DROP.zero T| 42 0 DROP . CR -> }T 4 1598184 T= T{ DROP.negative T| 10 -5 DROP . CR -> }T 4 1506889 T= T{ DROP.double_drop T| 1 2 3 DROP DROP . CR -> }T 3 48091 T= Block 7007 T{ DROP.triple_drop T| 1 2 3 4 DROP DROP DROP . CR -> }T 3 48091 T= T{ DROP.sequential T| 5 DROP 6 DROP 7 . CR -> }T 3 53857 T= T{ DROP.single_item T| 99 DROP DEPTH . CR -> }T 3 47130 T= T{ DROP.depth_change T| DEPTH 1 2 DROP DEPTH SWAP - . CR -> 0 }T 3 48091 T= T{ DROP.preserve_depth T| DEPTH 5 6 DROP DROP DEPTH = . CR -> }T 3 47130 T= Block 7008 T{ DROP.max_int T| 2147483647 DROP DEPTH . CR -> }T 3 47130 T= T{ DROP.min_int T| -2147483648 DROP DEPTH . CR -> }T 3 47130 T= T{ DROP.with_dup T| 5 DUP DROP . CR -> }T 3 51935 T= T{ DROP.with_swap T| 1 2 SWAP DROP . CR -> }T 3 49052 T= T{ DROP.complex T| 1 2 3 ROT DROP SWAP DROP . CR -> }T 3 50013 T= Block 7009 T{ DROP.empty_stack T| DROP ->ERR T{ SWAP.basic T| 5 7 SWAP . . CR -> }T 5 16399350 T= T{ SWAP.same_values T| 42 42 SWAP . . CR -> }T 7 15838026 T= T{ SWAP.zero_nonzero T| 0 99 SWAP . . CR -> }T 6 12996858 T= T{ SWAP.negative T| -5 10 SWAP . . CR -> }T 7 12792257 T= Block 7010 T{ SWAP.one_item T| 42 SWAP ->ERR T{ SWAP.empty_stack T| SWAP ->ERR T{ OVER.basic T| 5 7 OVER . . . CR -> }T 7 6011851 T= T{ OVER.zeros T| 0 0 OVER . . . CR -> }T 7 7986234 T= T{ OVER.mixed T| -1 42 OVER . . . CR -> }T 10 1455732 T= Block 7011 T{ OVER.one_item T| 42 OVER ->ERR T{ OVER.empty_stack T| OVER ->ERR T{ ROT.basic T| 1 2 3 ROT . . . CR -> }T 7 9069952 T= T{ ROT.zeros T| 0 0 0 ROT . . . CR -> }T 7 7986234 T= T{ ROT.mixed T| -1 0 1 ROT . . . CR -> }T 8 201263 T= Block 7012 T{ ROT.two_items T| 1 2 ROT ->ERR T{ ROT.one_item T| 42 ROT ->ERR T{ ROT.empty_stack T| ROT ->ERR T{ DEPTH.empty T| DEPTH . CR -> }T 3 47130 T= T{ DEPTH.one_item T| 42 DEPTH . CR -> 42 }T 3 48091 T= Block 7013 T{ DEPTH.multiple T| 1 2 3 DEPTH . CR -> 1 2 3 }T 3 50013 T= T{ PICK.pick_0 T| 1 2 3 0 PICK . CR ->ERR T{ PICK.pick_1 T| 1 2 3 1 PICK . CR -> 1 2 3 }T 3 50013 T= T{ PICK.pick_2 T| 1 2 3 2 PICK . CR -> 1 2 3 }T 3 49052 T= T{ ROLL.roll_1 T| 1 2 3 1 ROLL . . . CR -> }T 7 4767936 T= Block 7014 T{ ROLL.roll_2 T| 1 2 3 2 ROLL . . . CR -> }T 7 7380224 T= T{ ?DUP.nonzero T| 42 ?DUP . . CR -> }T 7 15838026 T= T{ ?DUP.negative T| -5 ?DUP . . CR -> }T 7 12677898 T= T{ ?DUP.zero T| 0 ?DUP DEPTH . CR -> 0 }T 3 48091 T= T{ ?DUP.empty_stack T| ?DUP ->ERR Block 7015 T{ >R.basic T| : RS1 42 >R R@ . R> . CR ; RS1 -> }T 7 15838026 T= T{ >R.zero T| : RS2 0 >R R@ . R> . CR ; RS2 -> }T 5 11775018 T= T{ >R.negative T| : RS3 -123 >R R@ . R> . CR ; RS3 -> }T 11 14101290 T= T{ >R.multiple T| : RS4 1 2 >R >R R@ . R> . R@ . R> . CR ; RS4 -> }T 9 12265744 T= T{ >R.empty_stack T| >R ->ERR Block 7016 T{ R>.basic T| : RS5 42 >R R> . CR ; RS5 -> }T 4 1598184 T= T{ R>.lifo_order T| : RS6 1 2 >R >R R> . R> . CR ; RS6 -> }T 5 12700461 T= T{ R>.empty_rstack T| R> ->ERR T{ R@.basic T| : RS7 42 >R R@ . R> DROP CR ; RS7 -> }T 4 1598184 T= T{ R@.non_destructive T| : RS8 99 >R R@ R@ = . R> DROP CR ; RS8 -> }T 4 1388686 T= Block 7017 T{ R@.empty_rstack T| R@ ->ERR T{ !.basic T| 42 HERE ! HERE @ . CR -> }T 4 1598184 T= T{ !.zero T| 0 HERE ! HERE @ . CR -> }T 3 47130 T= T{ !.negative T| -999 HERE ! HERE @ . CR -> }T 6 529078 T= T{ !.overwrite T| 111 HERE ! 222 HERE ! HERE @ . CR -> }T 5 14160220 T= Block 7018 T{ !.max_int T| 2147483647 HERE ! HERE @ . CR -> }T 12 4848918 T= T{ !.min_int T| -2147483648 HERE ! HERE @ . CR -> }T 13 5383556 T= T{ !.empty_stack T| ! ->ERR T{ !.one_item T| 42 ! ->ERR T{ @.after_store T| 123 HERE ! HERE @ . CR -> }T 5 13237660 T= Block 7019 T{ @.multiple_reads T| 456 HERE ! HERE @ HERE @ = . CR -> }T 4 1388686 T= T{ @.empty_stack T| @ ->ERR T{ C!.basic T| 65 HERE C! HERE C@ . CR -> }T 4 1660649 T= T{ C!.zero T| 0 HERE C! HERE C@ . CR -> }T 3 47130 T= T{ C!.high_byte T| 255 HERE C! HERE C@ . CR -> }T 5 14252476 T= Block 7020 T{ C!.truncation T| 256 HERE C! HERE C@ . CR -> }T 3 47130 T= T{ C@.after_cstore T| 97 HERE C! HERE C@ . CR -> }T 4 1751944 T= T{ C@.zero_byte T| 0 HERE C! HERE C@ . CR -> }T 3 47130 T= T{ ,.basic T| 42 , HERE 1 - @ . CR -> }T 4 1598184 T= T{ ,.negative T| -999 , HERE 1 - @ . CR -> }T 6 529078 T= Block 7021 T{ HERE.basic T| HERE HERE = . CR -> }T 4 1388686 T= T{ HERE.after_comma T| HERE 42 , HERE SWAP - 1 CELLS = 0 SWAP / -> 0 }T 0 0 T= T{ ALLOT.basic T| HERE 10 ALLOT HERE SWAP - . CR -> }T 4 1506889 T= T{ ALLOT.zero T| HERE 0 ALLOT HERE SWAP - . CR -> }T 3 47130 T= T{ ALLOT.negative T| HERE -4 ALLOT HERE SWAP - . CR -> }T 4 1391569 T= Block 7022 T{ PAD.basic T| PAD PAD = . CR -> }T 4 1388686 T= T{ PAD.different_from_here T| PAD HERE = . CR -> }T 3 47130 T= T{ +!.basic T| 10 HERE ! 5 HERE +! HERE @ . CR -> }T 4 1511694 T= T{ +!.by_zero T| 42 HERE ! 0 HERE +! HERE @ . CR -> }T 4 1598184 T= T{ +!.negative T| 10 HERE ! -3 HERE +! HERE @ . CR -> }T 3 53857 T= Block 7023 T{ +!.accumulate T| 0 HERE ! 1 HERE +! 2 HERE +! 3 HERE +! HERE @ . CR -> }T 3 52896 T= T{ +!.empty_stack T| +! ->ERR T{ FILL.basic T| HERE 8 65 FILL HERE C@ . HERE 1+ C@ . CR -> }T 7 14524330 T= T{ FILL.zero_n T| HERE 0 88 FILL -> }T 0 0 T= T{ FILL.zero_byte T| HERE 4 0 FILL HERE C@ . CR -> }T 3 47130 T= Block 7024 T{ FILL.empty_stack T| FILL ->ERR T{ MOVE.basic T| 65 HERE ! 66 HERE 1+ ! HERE HERE 16 + 2 MOVE HERE 16 + @ . T| HERE 17 + @ . CR -> }T 7 14525291 T= T{ MOVE.zero_n T| HERE HERE 8 + 0 MOVE -> }T 0 0 T= T{ MOVE.empty_stack T| MOVE ->ERR T{ +.basic T| 5 7 + . CR -> }T 4 1508811 T= Block 7025 T{ +.zero_add T| 42 0 + . CR -> }T 4 1598184 T= T{ +.negative T| -5 3 + . CR -> }T 4 1389647 T= T{ +.both_negative T| -5 -3 + . CR -> }T 4 1395413 T= T{ +.overflow T| 2147483647 1 + . CR -> }T 12 4849879 T= T{ +.underflow T| -2147483648 -1 + . CR -> }T 13 5384517 T= Block 7026 T{ +.empty_stack T| + ->ERR T{ +.one_item T| 42 + ->ERR T{ -.basic T| 10 3 - . CR -> }T 3 53857 T= T{ -.zero_sub T| 42 0 - . CR -> }T 4 1598184 T= T{ -.from_zero T| 0 5 - . CR -> }T 4 1392530 T= Block 7027 T{ -.negative T| 5 -3 - . CR -> }T 3 54818 T= T{ -.same_values T| 42 42 - . CR -> }T 3 47130 T= T{ -.overflow T| -2147483648 1 - . CR -> }T 13 5384517 T= T{ -.underflow T| 2147483647 -1 - . CR -> }T 12 4849879 T= T{ -.empty_stack T| - ->ERR Block 7028 T{ -.one_item T| 42 - ->ERR T{ *.basic T| 6 7 * . CR -> }T 4 1598184 T= T{ *.by_zero T| 42 0 * . CR -> }T 3 47130 T= T{ *.by_one T| 42 1 * . CR -> }T 4 1598184 T= T{ *.by_negative T| 6 -7 * . CR -> }T 5 9602197 T= Block 7029 T{ *.negative_negative T| -6 -7 * . CR -> }T 4 1598184 T= T{ *.large_numbers T| 32767 2 * . CR -> }T 7 273505 T= T{ *.overflow T| 65536 65536 * . CR -> }T 12 6984600 T= T{ *.empty_stack T| * ->ERR T{ *.one_item T| 42 * ->ERR Block 7030 T{ /.basic T| 15 3 / . CR -> }T 3 51935 T= T{ /.by_one T| 42 1 / . CR -> }T 4 1598184 T= T{ /.negative_dividend T| -15 3 / . CR -> }T 4 1392530 T= T{ /.negative_divisor T| 15 -3 / . CR -> }T 4 1392530 T= T{ /.both_negative T| -15 -3 / . CR -> }T 3 51935 T= Block 7031 T{ /.truncation T| 7 3 / . CR -> }T 3 49052 T= T{ /.by_zero T| 42 0 / ->ERR T{ /.empty_stack T| / ->ERR T{ /.one_item T| 42 / ->ERR T{ MOD.basic T| 17 5 MOD . CR -> }T 3 49052 T= Block 7032 T{ MOD.exact_division T| 15 3 MOD . CR -> }T 3 47130 T= T{ MOD.by_one T| 42 1 MOD . CR -> }T 3 47130 T= T{ MOD.negative_dividend T| -17 5 MOD . CR -> }T 4 1389647 T= T{ MOD.negative_divisor T| 17 -5 MOD . CR -> }T 3 49052 T= T{ MOD.small_by_large T| 3 7 MOD . CR -> }T 3 50013 T= Block 7033 T{ MOD.by_zero T| 42 0 MOD ->ERR T{ MOD.empty_stack T| MOD ->ERR T{ MOD.one_item T| 42 MOD ->ERR T{ /MOD.basic T| 17 5 /MOD . . CR -> }T 5 14547503 T= T{ /MOD.exact T| 15 3 /MOD . . CR -> }T 5 16392623 T= Block 7034 T{ /MOD.negative T| -17 5 /MOD . . CR -> }T 7 5748361 T= T{ /MOD.by_zero T| 42 0 /MOD ->ERR T{ /MOD.empty_stack T| /MOD ->ERR T{ /MOD.one_item T| 42 /MOD ->ERR T{ ABS.positive T| 42 ABS . CR -> }T 4 1598184 T= Block 7035 T{ ABS.negative T| -42 ABS . CR -> }T 4 1598184 T= T{ ABS.zero T| 0 ABS . CR -> }T 3 47130 T= T{ ABS.min_int T| -2147483648 ABS . CR -> }T 12 4849879 T= T{ ABS.empty_stack T| ABS ->ERR T{ NEGATE.positive T| 42 NEGATE . CR -> }T 5 9602197 T= Block 7036 T{ NEGATE.negative T| -42 NEGATE . CR -> }T 4 1598184 T= T{ NEGATE.zero T| 0 NEGATE . CR -> }T 3 47130 T= T{ NEGATE.min_int T| -2147483648 NEGATE . CR -> }T 12 4849879 T= T{ NEGATE.empty_stack T| NEGATE ->ERR T{ MIN.basic T| 5 3 MIN . CR -> }T 3 50013 T= Block 7037 T{ MIN.equal T| 42 42 MIN . CR -> }T 4 1598184 T= T{ MIN.negative T| -5 -3 MIN . CR -> }T 4 1392530 T= T{ MIN.mixed T| -1 1 MIN . CR -> }T 4 1388686 T= T{ MIN.one_item T| 42 MIN ->ERR T{ MIN.empty_stack T| MIN ->ERR Block 7038 T{ MAX.basic T| 5 3 MAX . CR -> }T 3 51935 T= T{ MAX.equal T| 42 42 MAX . CR -> }T 4 1598184 T= T{ MAX.negative T| -5 -3 MAX . CR -> }T 4 1390608 T= T{ MAX.mixed T| -1 1 MAX . CR -> }T 3 48091 T= T{ MAX.one_item T| 42 MAX ->ERR Block 7039 T{ MAX.empty_stack T| MAX ->ERR T{ 1+.basic T| 5 1+ . CR -> }T 3 52896 T= T{ 1+.zero T| 0 1+ . CR -> }T 3 48091 T= T{ 1+.negative T| -1 1+ . CR -> }T 3 47130 T= T{ 1+.chain T| 3 1+ 1+ 1+ . CR -> }T 3 52896 T= Block 7040 T{ 1+.overflow T| 2147483647 1+ . CR -> }T 12 4849879 T= T{ 1+.empty_stack T| 1+ ->ERR T{ 1-.basic T| 5 1- . CR -> }T 3 50974 T= T{ 1-.to_zero T| 1 1- . CR -> }T 3 47130 T= T{ 1-.to_negative T| 0 1- . CR -> }T 4 1388686 T= Block 7041 T{ 1-.chain T| 6 1- 1- 1- . CR -> }T 3 50013 T= T{ 1-.underflow T| -2147483648 1- . CR -> }T 13 5384517 T= T{ 1-.empty_stack T| 1- ->ERR T{ 2+.basic T| 5 2+ . CR -> }T 3 53857 T= T{ 2+.zero T| 0 2+ . CR -> }T 3 49052 T= Block 7042 T{ 2+.negative T| -3 2+ . CR -> }T 4 1388686 T= T{ 2+.empty_stack T| 2+ ->ERR T{ 2-.basic T| 7 2- . CR -> }T 3 51935 T= T{ 2-.zero T| 2 2- . CR -> }T 3 47130 T= T{ 2-.negative T| 0 2- . CR -> }T 4 1389647 T= Block 7043 T{ 2-.empty_stack T| 2- ->ERR T{ AND.both_true T| -1 -1 AND . CR -> }T 4 1388686 T= T{ AND.first_false T| 0 -1 AND . CR -> }T 3 47130 T= T{ AND.second_false T| -1 0 AND . CR -> }T 3 47130 T= T{ AND.both_false T| 0 0 AND . CR -> }T 3 47130 T= Block 7044 T{ AND.bitwise T| 85 51 AND . CR -> }T 4 1513616 T= T{ AND.empty_stack T| AND ->ERR T{ AND.one_item T| 42 AND ->ERR T{ OR.both_true T| -1 -1 OR . CR -> }T 4 1388686 T= T{ OR.first_false T| 0 -1 OR . CR -> }T 4 1388686 T= Block 7045 T{ OR.second_false T| -1 0 OR . CR -> }T 4 1388686 T= T{ OR.both_false T| 0 0 OR . CR -> }T 3 47130 T= T{ OR.bitwise T| 85 51 OR . CR -> }T 5 13213635 T= T{ OR.empty_stack T| OR ->ERR T{ OR.one_item T| 42 OR ->ERR Block 7046 T{ XOR.both_true T| -1 -1 XOR . CR -> }T 3 47130 T= T{ XOR.first_false T| 0 -1 XOR . CR -> }T 4 1388686 T= T{ XOR.second_false T| -1 0 XOR . CR -> }T 4 1388686 T= T{ XOR.both_false T| 0 0 XOR . CR -> }T 3 47130 T= T{ XOR.bitwise T| 85 51 XOR . CR -> }T 5 13177117 T= Block 7047 T{ XOR.empty_stack T| XOR ->ERR T{ XOR.one_item T| 42 XOR ->ERR T{ NOT.true T| -1 NOT . CR -> }T 3 47130 T= T{ NOT.false T| 0 NOT . CR -> }T 4 1388686 T= T{ NOT.positive T| 42 NOT . CR -> }T 3 47130 T= Block 7048 T{ NOT.negative T| -42 NOT . CR -> }T 3 47130 T= T{ NOT.empty_stack T| NOT ->ERR T{ =.equal T| 42 42 = . CR -> }T 4 1388686 T= T{ =.not_equal T| 42 43 = . CR -> }T 3 47130 T= T{ =.zero_equal T| 0 0 = . CR -> }T 4 1388686 T= Block 7049 T{ =.negative_equal T| -42 -42 = . CR -> }T 4 1388686 T= T{ =.negative_positive T| -42 42 = . CR -> }T 3 47130 T= T{ =.empty_stack T| = ->ERR T{ =.one_item T| 42 = ->ERR T{ <.less_than T| 5 7 < . CR -> }T 4 1388686 T= Block 7050 T{ <.greater_than T| 7 5 < . CR -> }T 3 47130 T= T{ <.equal T| 5 5 < . CR -> }T 3 47130 T= T{ <.negative_positive T| -5 5 < . CR -> }T 4 1388686 T= T{ <.negative_negative T| -7 -5 < . CR -> }T 4 1388686 T= T{ <.empty_stack T| < ->ERR Block 7051 T{ <.one_item T| 42 < ->ERR T{ >.greater_than T| 7 5 > . CR -> }T 4 1388686 T= T{ >.less_than T| 5 7 > . CR -> }T 3 47130 T= T{ >.equal T| 5 5 > . CR -> }T 3 47130 T= T{ >.positive_negative T| 5 -5 > . CR -> }T 4 1388686 T= Block 7052 T{ >.negative_negative T| -5 -7 > . CR -> }T 4 1388686 T= T{ >.empty_stack T| > ->ERR T{ >.one_item T| 42 > ->ERR T{ 0=.zero T| 0 0= . CR -> }T 4 1388686 T= T{ 0=.positive T| 42 0= . CR -> }T 3 47130 T= Block 7053 T{ 0=.negative T| -42 0= . CR -> }T 3 47130 T= T{ 0=.empty_stack T| 0= ->ERR T{ 0<.negative T| -42 0< . CR -> }T 4 1388686 T= T{ 0<.zero T| 0 0< . CR -> }T 3 47130 T= T{ 0<.positive T| 42 0< . CR -> }T 3 47130 T= Block 7054 T{ 0<.empty_stack T| 0< ->ERR T{ 0>.positive T| 42 0> . CR -> }T 4 1388686 T= T{ 0>.zero T| 0 0> . CR -> }T 3 47130 T= T{ 0>.negative T| -42 0> . CR -> }T 3 47130 T= T{ 0>.empty_stack T| 0> ->ERR Block 7055 T{ U<.less T| 3 5 U< . CR -> }T 4 1388686 T= T{ U<.equal T| 5 5 U< . CR -> }T 3 47130 T= T{ U<.greater T| 7 5 U< . CR -> }T 3 47130 T= T{ U<.zero_one T| 0 1 U< . CR -> }T 4 1388686 T= T{ U<.empty_stack T| U< ->ERR Block 7056 T{ */.basic T| 6 7 4 */ . CR -> }T 4 1506889 T= T{ */.exact_division T| 12 5 3 */ . CR -> }T 4 1536680 T= T{ */.zero_multiply T| 0 999 123 */ . CR -> }T 3 47130 T= T{ */.by_one T| 42 5 1 */ . CR -> }T 5 14128507 T= T{ */.truncation T| 7 3 2 */ . CR -> }T 4 1506889 T= Block 7057 T{ */.negative_multiply T| -6 7 4 */ . CR -> }T 5 9510902 T= T{ */.negative_divisor T| 6 7 -4 */ . CR -> }T 5 9510902 T= T{ */.div_by_zero T| 6 7 0 */ ->ERR T{ */.empty_stack T| */ ->ERR T{ */.two_items T| 1 2 */ ->ERR Block 7058 T{ */MOD.basic T| 17 3 5 */MOD . . CR -> }T 6 5318234 T= T{ */MOD.exact_division T| 15 4 3 */MOD . . CR -> }T 6 391992 T= T{ */MOD.zero_multiply T| 0 999 123 */MOD . . CR -> }T 5 11775018 T= T{ */MOD.by_one T| 42 5 1 */MOD . . CR -> }T 7 4765003 T= T{ */MOD.remainder T| 7 8 5 */MOD . . CR -> }T 6 6241755 T= Block 7059 T{ */MOD.negative T| -7 3 4 */MOD . . CR -> }T 7 12674054 T= T{ */MOD.div_by_zero T| 6 7 0 */MOD ->ERR T{ */MOD.empty_stack T| */MOD ->ERR T{ D+.basic T| 100 200 300 400 D+ . . CR -> }T 9 6378548 T= T{ D+.zero_add T| 42 99 0 0 D+ . . CR -> }T 7 6471656 T= Block 7060 T{ D+.negative T| -100 -200 50 75 D+ . . CR -> }T 10 13971193 T= T{ D+.carry T| 2147483647 0 1 0 D+ . . CR -> }T 14 4234951 T= T{ D+.both_negative T| -100 -200 -300 -400 D+ . . CR -> }T 11 5003369 T= T{ D+.three_items T| 1 2 3 D+ ->ERR T{ D+.empty_stack T| D+ ->ERR Block 7061 T{ DNEGATE.positive T| 100 200 DNEGATE . . CR -> }T 11 13922440 T= T{ DNEGATE.negative T| -100 -200 DNEGATE . . CR -> }T 9 14912460 T= T{ DNEGATE.zero T| 0 0 DNEGATE . . CR -> }T 5 11775018 T= T{ DNEGATE.max_positive T| 2147483647 0 DNEGATE . . CR -> }T 16 11447367 T= T{ DNEGATE.one_item T| 42 DNEGATE ->ERR Block 7062 T{ DNEGATE.empty_stack T| DNEGATE ->ERR T{ D<.less_than T| 100 200 300 400 D< . CR -> }T 4 1388686 T= T{ D<.greater_than T| 300 400 100 200 D< . CR -> }T 3 47130 T= T{ D<.equal T| 100 200 100 200 D< . CR -> }T 3 47130 T= T{ D<.negative_positive T| -100 -1 100 0 D< . CR -> }T 4 1388686 T= Block 7063 T{ D<.negative_negative T| -300 -1 -100 -1 D< . CR -> }T 4 1388686 T= T{ D<.high_word_diff T| 100 200 100 300 D< . CR -> }T 4 1388686 T= T{ D<.three_items T| 1 2 3 D< ->ERR T{ D<.empty_stack T| D< ->ERR T{ BASE.decimal T| DECIMAL 42 . CR -> }T 4 1598184 T= Block 7064 T{ BASE.hex T| HEX FF . CR -> }T 4 2153642 T= T{ BASE.octal T| OCTAL 52 . CR -> }T 4 1627975 T= T{ BASE.base_store T| 16 BASE ! 255 . CR -> }T 5 14252476 T= T{ BASE.base_fetch T| BASE @ . CR -> }T 4 1506889 T= T{ DECIMAL.from_hex T| HEX FF DECIMAL . CR -> }T 5 14252476 T= Block 7065 T{ DECIMAL.from_octal T| OCTAL 52 DECIMAL . CR -> }T 4 1598184 T= T{ DECIMAL.state_persist T| DECIMAL 42 . CR 42 . CR HEX 42 . CR -> }T 12 9440440 T= T{ <#.basic T| DECIMAL 42 S>D <# #S #> TYPE CR -> }T 3 51532 T= T{ <#.empty T| 0 0 <# #> TYPE CR -> }T 1 10 T= T{ <#.negative T| -42 DUP ABS 0 <# #S ROT SIGN #> TYPE CR -> }T 4 1392127 T= Block 7066 T{ #.single_digit T| 15 0 <# # #> TYPE CR -> }T 2 1653 T= T{ #.multiple T| 15 0 <# # # #> TYPE CR -> }T 3 48742 T= T{ #.zero_pad T| 5 0 <# # # #> TYPE CR -> }T 3 47781 T= T{ #S.basic T| 42 0 <# #S #> TYPE CR -> }T 3 51532 T= T{ #S.zero T| 0 0 <# #S #> TYPE CR -> }T 2 1498 T= Block 7067 T{ #S.large T| 1234567890 0 <# #S #> TYPE CR -> }T 11 7265487 T= T{ SIGN.negative T| -42 DUP ABS 0 <# #S ROT SIGN #> TYPE CR -> }T 4 1392127 T= T{ SIGN.positive T| 42 DUP ABS 0 <# #S ROT SIGN #> TYPE CR -> }T 3 51532 T= T{ SIGN.zero T| 0 DUP ABS 0 <# #S ROT SIGN #> TYPE CR -> }T 2 1498 T= T{ #>.normal T| 42 0 <# #S #> TYPE CR -> }T 3 51532 T= Block 7068 T{ #>.empty T| 0 0 <# #> TYPE CR -> }T 1 10 T= T{ #>.stack_effect T| 42 0 <# #S #> SWAP DROP . CR -> }T 3 49052 T= T{ HOLD.basic T| 42 0 <# 46 HOLD #S #> TYPE CR -> }T 4 1598618 T= T{ HOLD.overflow T| <# 257 HOLD #> ->ERR T{ COUNT.basic T| 4 PAD C! PAD COUNT . PAD - . CR -> }T 5 15470063 T= Block 7069 T{ COUNT.empty T| 0 PAD C! PAD COUNT . PAD - . CR -> }T 5 11775979 T= T{ COUNT.max_length T| 255 PAD C! PAD COUNT . PAD - . CR -> }T 7 6459661 T= T{ COUNT.string_bounds T| HERE COUNT SWAP 1- = . CR -> }T 3 47130 T= T{ COUNT.empty_stack T| COUNT ->ERR T{ -TRAILING.basic T| HERE S" Test " -TRAILING TYPE CR -> 1 }TD 6 6975864 T= Block 7070 T{ -TRAILING.all_spaces T| HERE S" " -TRAILING TYPE CR -> 1 }TD 1 10 T= T{ -TRAILING.no_spaces T| HERE S" Test" -TRAILING TYPE CR -> 1 }TD 5 13589912 T= T{ -TRAILING.empty T| HERE 0 -TRAILING TYPE CR -> }T 1 10 T= T{ CMOVE.basic T| 65 PAD C! 66 PAD 1+ C! PAD PAD 10 + 2 CMOVE PAD 10 + C@ . PAD T| 11 + C@ . CR -> }T 7 14525291 T= T{ CMOVE.empty T| HERE HERE 10 + 0 CMOVE -> }T 0 0 T= Block 7071 T{ CMOVE.overlap T| HERE DUP 1+ 5 CMOVE -> }T 0 0 T= T{ >IN.initial T| >IN @ . CR -> }T 3 55779 T= T{ >IN.advances T| : TWIN >IN @ >IN @ - . CR ; TWIN -> }T 3 47130 T= T{ ..positive T| 42 . CR -> }T 4 1598184 T= T{ ..negative T| -42 . CR -> }T 5 9602197 T= Block 7072 T{ ..zero T| 0 . CR -> }T 3 47130 T= T{ ..max_int T| 2147483647 . CR -> }T 12 4848918 T= T{ ..min_int T| -2147483648 . CR -> }T 13 5383556 T= T{ ..multiple T| 1 2 3 . . . CR -> }T 7 4767936 T= T{ ..empty_stack T| . ->ERR Block 7073 T{ CR.basic T| 42 . CR 43 . CR -> }T 8 16061841 T= T{ CR.multiple T| CR CR CR -> }T 3 9930 T= T{ CR.no_stack_effect T| DEPTH CR DEPTH = . CR -> }T 4 345040 T= T{ CR.after_output T| 1 2 3 . . . CR -> }T 7 4767936 T= T{ SPACE.basic T| 42 . SPACE 43 . CR -> }T 8 2824871 T= Block 7074 T{ SPACE.multiple T| SPACE SPACE SPACE -> }T 3 31776 T= T{ SPACE.no_stack_effect T| DEPTH SPACE DEPTH = . CR -> }T 4 1000442 T= T{ SPACE.with_text T| 65 EMIT SPACE 66 EMIT CR -> }T 4 1969223 T= T{ SPACES.zero T| 0 SPACES -> }T 0 0 T= T{ SPACES.one T| 1 SPACES -> }T 1 32 T= Block 7075 T{ SPACES.multiple T| 5 SPACES -> }T 5 13760544 T= T{ SPACES.large T| 20 SPACES -> }T 20 10692608 T= T{ SPACES.negative T| -5 SPACES -> }T 0 0 T= T{ SPACES.with_output T| 42 . 3 SPACES 43 . CR -> }T 10 11278119 T= T{ SPACES.empty_stack T| SPACES ->ERR Block 7076 T{ EMIT.letter_A T| 65 EMIT CR -> }T 2 2025 T= T{ EMIT.letter_Z T| 90 EMIT CR -> }T 2 2800 T= T{ EMIT.digit T| 48 EMIT CR -> }T 2 1498 T= T{ EMIT.space_char T| 32 EMIT CR -> }T 2 1002 T= T{ EMIT.newline T| 10 EMIT -> }T 1 10 T= Block 7077 T{ EMIT.high_ascii T| 127 EMIT CR -> }T 2 3947 T= T{ EMIT.truncation T| 321 EMIT CR -> }T 2 2025 T= T{ EMIT.negative T| -1 EMIT CR -> }T 2 7915 T= T{ EMIT.sequence T| 72 EMIT 73 EMIT 10 EMIT -> }T 3 71465 T= T{ EMIT.empty_stack T| EMIT ->ERR Block 7078 T{ TYPE.basic_string T| 72 PAD C! 105 PAD 1+ C! PAD 2 TYPE CR -> }T 3 72457 T= T{ TYPE.empty_string T| HERE 0 TYPE CR -> }T 1 10 T= T{ TYPE.single_char T| HERE 65 OVER C! 1 TYPE CR -> }T 2 2025 T= T{ TYPE.numbers T| 49 PAD C! 50 PAD 1+ C! PAD 2 TYPE CR -> }T 3 48649 T= T{ TYPE.zero_length T| PAD 0 TYPE -> }T 0 0 T= Block 7079 T{ TYPE.one_item T| PAD TYPE ->ERR T{ TYPE.empty_stack T| TYPE ->ERR T{ COUNT.basic~2 T| 4 PAD C! PAD COUNT . PAD - . CR -> }T 5 15470063 T= T{ COUNT.empty~2 T| 0 PAD C! PAD COUNT . PAD - . CR -> }T 5 11775979 T= T{ COUNT.max_length~2 T| 255 PAD C! PAD COUNT . PAD - . CR -> }T 7 6459661 T= Block 7080 T{ COUNT.zero_addr_plus_one T| HERE COUNT SWAP 1- = . CR -> }T 3 47130 T= T{ COUNT.empty_stack~2 T| COUNT ->ERR T{ WORD.empty_stack T| WORD ->ERR T{ BLOCK.basic T| 1 BLOCK DUP . CR -> 1 }TD T{ BLOCK.zero_block T| 0 BLOCK ->ERR Block 7081 T{ BLOCK.large_block T| 65536 BLOCK ->ERR T{ BLOCK.negative T| -1 BLOCK ->ERR T{ BLOCK.empty_stack T| BLOCK ->ERR T{ BUFFER.basic T| 1 BUFFER DUP . CR -> 1 }TD T{ BUFFER.zero_block T| 0 BUFFER ->ERR Block 7082 T{ BUFFER.flush_dirty T| 2 BLOCK 1+ 2 BUFFER -> 2 }TD 0 0 T= T{ BUFFER.empty_stack T| BUFFER ->ERR T{ UPDATE.basic T| 1 BLOCK UPDATE -> 1 }TD 0 0 T= T{ UPDATE.multiple T| 1 BLOCK UPDATE UPDATE -> 1 }TD 0 0 T= T{ UPDATE.no_block T| 0 SCR ! UPDATE -> }T 0 0 T= Block 7083 T{ SAVE-BUFFERS.basic T| SAVE-BUFFERS -> }T 0 0 T= T{ SAVE-BUFFERS.dirty_blocks T| 1 BLOCK UPDATE SAVE-BUFFERS -> 1 }TD 0 0 T= T{ SAVE-BUFFERS.no_dirty T| SAVE-BUFFERS -> }T 0 0 T= T{ EMPTY-BUFFERS.basic T| EMPTY-BUFFERS -> }T 0 0 T= T{ EMPTY-BUFFERS.after_use T| 1 BLOCK EMPTY-BUFFERS -> 1 }TD 0 0 T= Block 7084 T{ EMPTY-BUFFERS.dirty_blocks T| 1 BLOCK UPDATE EMPTY-BUFFERS -> 1 }TD 0 0 T= T{ LOAD.basic T| 1 LOAD -> }T 0 0 T= T{ LOAD.zero_block T| 0 LOAD ->ERR T{ LOAD.nonexistent T| 9999 LOAD ->ERR T{ LOAD.empty_stack T| LOAD ->ERR Block 7085 T{ LIST.basic T| 1 LIST -> 0 }TD T{ LIST.zero_block T| 0 LIST ->ERR T{ LIST.nonexistent T| 9999 LIST ->ERR T{ LIST.empty_stack T| LIST ->ERR T{ SCR.basic T| SCR @ . CR -> }T 3 48091 T= Block 7086 T{ SCR.after_list T| 1 LIST SCR @ . CR -> 0 }TD T{ SCR.after_load T| 1 LOAD SCR @ . CR -> }T 3 48091 T= T{ HERE.basic~2 T| HERE HERE = . CR -> }T 4 1388686 T= T{ HERE.after_comma~2 T| HERE 42 , HERE SWAP - 1 CELLS = 0 SWAP / -> 0 }T 0 0 T= T{ HERE.after_c_comma T| HERE 65 C, HERE SWAP - . CR -> }T 3 48091 T= Block 7087 T{ HERE.after_allot T| HERE 10 ALLOT HERE SWAP - . CR -> }T 4 1506889 T= T{ HERE.stability T| HERE DUP HERE = . CR -> 1 }TD 4 1388686 T= T{ ALLOT.basic~2 T| HERE 10 ALLOT HERE SWAP - . CR -> }T 4 1506889 T= T{ ALLOT.zero~2 T| HERE 0 ALLOT HERE SWAP - . CR -> }T 3 47130 T= T{ ALLOT.negative~2 T| HERE -4 ALLOT HERE SWAP - . CR -> }T 4 1391569 T= Block 7088 T{ ALLOT.large T| HERE 100 ALLOT HERE SWAP - . CR -> }T 5 13175195 T= T{ ALLOT.after_use T| ALIGN HERE 10 ALLOT 42 OVER ! @ . CR -> }T 4 1598184 T= T{ ALLOT.empty_stack T| ALLOT ->ERR T{ ,.basic~2 T| 42 , HERE 1 CELLS - @ . CR -> }T 4 1598184 T= T{ ,.negative~2 T| -999 , HERE 1 CELLS - @ . CR -> }T 6 529078 T= Block 7089 T{ ,.zero T| 0 , HERE 1 CELLS - @ . CR -> }T 3 47130 T= T{ ,.max_int T| 2147483647 , HERE 1 CELLS - @ . CR -> }T 12 4848918 T= T{ ,.min_int T| -2147483648 , HERE 1 CELLS - @ . CR -> }T 13 5383556 T= T{ ,.multiple T| 10 , 20 , HERE 1 CELLS - @ . HERE 1 CELLS - @ . CR -> }T 7 12227402 T= T{ ,.empty_stack T| , ->ERR Block 7090 T{ PAD.basic~2 T| PAD PAD = . CR -> }T 4 1388686 T= T{ PAD.different_from_here~2 T| PAD HERE = . CR -> }T 3 47130 T= T{ PAD.stability T| PAD DUP PAD = . CR -> 1 }TD 4 1388686 T= T{ CREATE.basic T| CREATE test1 42 , test1 @ . CR -> }T 4 1598184 T= T{ CREATE.empty_name T| CREATE ->ERR Block 7091 T{ CREATE.redefine_shadows T| CREATE T 1 , CREATE T 2 , T @ . CR -> }T 3 49052 T= T{ CREATE.duplicate T| CREATE test2 CREATE test2 -> }T 0 0 T= T{ CREATE.long_name T| CREATE abcdefghijklmnopqrstuvwxyz -> }T 0 0 T= T{ FORGET.basic T| CREATE temp1 FORGET temp1 -> }T 0 0 T= T{ IMMEDIATE.basic T| : test3 42 ; IMMEDIATE test3 . CR -> }T 4 1598184 T= Block 7092 T{ IMMEDIATE.already_immediate T| : test4 43 ; IMMEDIATE IMMEDIATE -> }T 0 0 T= T{ FIND.existing T| FIND DUP . CR -> 0 }TD T{ FIND.user_word T| : test5 44 ; FIND test5 . CR -> 0 }TD T{ FIND.nonexistent T| FIND nonexistent . CR -> }T 3 47130 T= T{ FIND.empty T| FIND -> 0 }T 0 0 T= Block 7093 T{ DEFINITIONS.basic T| FORTH DEFINITIONS -> }T 0 0 T= T{ DEFINITIONS.multiple T| FORTH DEFINITIONS DEFINITIONS -> }T 0 0 T= T{ VOCABULARY.basic T| VOCABULARY TEST-VOC1 TEST-VOC1 DEFINITIONS -> }T 0 0 T= T{ VOCABULARY.create_and_switch T| VOCABULARY MYVOC MYVOC DEFINITIONS CONTEXT @ . CR -> 0 }TD T{ VOCABULARY.word_isolation T| VOCABULARY ISOLATED ISOLATED DEFINITIONS : ISOWORD 99 ; FORTH T| DEFINITIONS -> }T 0 0 T= Block 7094 T{ VOCABULARY.cross_vocab_access T| VOCABULARY V1 V1 DEFINITIONS : V1WORD 11 ; FORTH V1WORD . CR ->ERR T{ VOCABULARY.multiple_vocabs T| VOCABULARY VA VOCABULARY VB VOCABULARY VC VA DEFINITIONS -> }T 0 0 T= T{ VOCABULARY.duplicate T| VOCABULARY TESTVOC VOCABULARY TESTVOC -> }T 0 0 T= T{ VOCABULARY.empty_name T| VOCABULARY ->ERR T{ FORTH.basic T| FORTH DEFINITIONS -> }T 0 0 T= Block 7095 T{ FORTH.persistence T| FORTH : TEST1 42 ; TEST1 . CR -> }T 4 1598184 T= T{ FORTH.from_other T| VOCABULARY OTHER-VOC OTHER-VOC FORTH -> }T 0 0 T= T{ DEFINITIONS.basic~2 T| FORTH DEFINITIONS -> }T 0 0 T= T{ DEFINITIONS.new_vocab T| VOCABULARY TEST-VOC6 TEST-VOC6 DEFINITIONS -> }T 0 0 T= T{ DEFINITIONS.word_creation T| VOCABULARY TEST-VOC7 TEST-VOC7 DEFINITIONS : TEST2 43 ; -> }T 0 0 T= Block 7096 T{ CONTEXT.basic T| CONTEXT @ . CR -> 0 }TD T{ CONTEXT.initial T| FORTH CONTEXT @ . CR -> 0 }TD T{ CURRENT.basic T| CURRENT @ . CR -> 0 }TD T{ CURRENT.after_def T| VOCABULARY TEST-VOC8 TEST-VOC8 DEFINITIONS CURRENT @ . CR -> 0 }TD T{ ABORT.basic T| ABORT -> }T 0 0 T= Block 7097 T{ ABORT.with_data T| 1 2 3 ABORT DEPTH . CR -> }T 0 0 T= T{ ABORT.in_definition_runtime T| : BAD-WORD ABORT ; 123 BAD-WORD DEPTH . CR -> }T 0 0 T= T{ :.basic T| : TEST1 42 ; TEST1 . CR -> }T 4 1598184 T= T{ :.empty_name T| : ->ERR T{ ;.alone T| ; ->ERR Block 7098 T{ ;.immediate T| : TEST4 42 ; IMMEDIATE TEST4 . CR -> }T 4 1598184 T= T{ CONSTANT.basic T| 42 CONSTANT MEANING MEANING . CR -> }T 4 1598184 T= T{ CONSTANT.zero T| 0 CONSTANT ZERO ZERO . CR -> }T 3 47130 T= T{ CONSTANT.negative T| -1 CONSTANT MINUS MINUS . CR -> }T 4 1388686 T= T{ CONSTANT.empty_stack T| CONSTANT ->ERR Block 7099 T{ VARIABLE.basic T| VARIABLE VAR1 42 VAR1 ! VAR1 @ . CR -> }T 4 1598184 T= T{ VARIABLE.multiple T| VARIABLE VAR2 VARIABLE VAR3 -> }T 0 0 T= T{ VARIABLE.store_fetch T| VARIABLE VAR4 -99 VAR4 ! VAR4 @ . CR -> }T 5 9757879 T= T{ CREATE.basic~2 T| CREATE OBJ1 -> }T 0 0 T= T{ CREATE.with_data T| CREATE OBJ2 42 , OBJ2 @ . CR -> }T 4 1598184 T= Block 7100 T{ CREATE.empty_name~2 T| CREATE ->ERR T{ DOES>.basic T| : CONST CREATE , DOES> @ ; 42 CONST MEANING MEANING . CR -> }T 4 1598184 T= T{ DOES>.multiple T| : ARRAY CREATE DOES> SWAP CELLS + ; CREATE ARR 10 CELLS ALLOT -> }T 0 0 T= T{ DOES>.outside T| DOES> ->ERR T{ [.basic T| : TEST5 [ 42 ] LITERAL ; TEST5 . CR -> }T 4 1598184 T= Block 7101 T{ [.outside T| [ -> }T 0 0 T= T{ ].nested T| : TEST6 [ ] 42 ; TEST6 . CR -> }T 4 1598184 T= T{ IF.true T| : TEST1 IF 42 ELSE 24 THEN ; -1 TEST1 . CR -> }T 4 1598184 T= T{ IF.false T| : TEST2 IF 42 ELSE 24 THEN ; 0 TEST2 . CR -> }T 4 1540524 T= T{ IF.nested T| : TEST3 IF IF 1 ELSE 2 THEN ELSE 3 THEN ; -1 -1 TEST3 . CR -> }T 3 48091 T= Block 7102 T{ IF.no_else T| : TEST4 IF 42 THEN ; -1 TEST4 . CR -> }T 4 1598184 T= T{ IF.empty_stack T| IF ->ERR T{ ELSE.alone T| ELSE ->ERR T{ THEN.alone T| THEN ->ERR T{ BEGIN.until T| : TEST5 0 BEGIN 1+ DUP 5 = UNTIL ; TEST5 . CR -> }T 3 51935 T= Block 7103 T{ BEGIN.while T| : TEST6 0 BEGIN DUP 5 < WHILE 1+ REPEAT ; TEST6 . CR -> }T 3 51935 T= T{ BEGIN.alone T| BEGIN ->ERR T{ UNTIL.basic T| : TEST8 BEGIN DUP 1- DUP 0= UNTIL ; 5 TEST8 . CR -> 5 4 3 2 1 }T 3 47130 T= T{ UNTIL.immediate T| : TEST9 BEGIN 1 UNTIL ; IMMEDIATE -> }T 0 0 T= T{ UNTIL.no_begin T| UNTIL ->ERR Block 7104 T{ WHILE.basic T| : TEST10 BEGIN DUP 5 < WHILE 1+ REPEAT ; 0 TEST10 . CR -> }T 3 51935 T= T{ WHILE.zero_times T| : TEST11 BEGIN DUP 0< WHILE 1+ REPEAT ; 0 TEST11 . CR -> }T 3 47130 T= T{ WHILE.no_begin T| WHILE ->ERR T{ REPEAT.basic T| : TEST12 BEGIN DUP 5 < WHILE 1+ REPEAT ; 0 TEST12 . CR -> }T 3 51935 T= T{ REPEAT.no_while T| REPEAT ->ERR Block 7105 T{ DO.basic T| : TEST13 5 0 DO I . LOOP ; TEST13 CR -> }T 11 12528484 T= T{ DO.negative T| : TEST14 -1 -5 DO I . LOOP ; TEST14 CR -> }T 13 11696776 T= T{ DO.empty T| : TEST15 0 0 DO LOOP ; -> }T 0 0 T= T{ DO.nested T| : TEST16 3 0 DO 3 0 DO J I + . LOOP LOOP ; TEST16 CR -> }T 19 14426156 T= T{ LOOP.basic T| : TEST20 5 0 DO I . LOOP ; TEST20 CR -> }T 11 12528484 T= Block 7106 T{ LOOP.no_do T| LOOP ->ERR T{ +LOOP.basic T| : TEST21 10 0 DO I . 2 +LOOP ; TEST21 CR -> }T 11 16410222 T= T{ +LOOP.negative T| : TEST22 0 10 DO I . -1 +LOOP ; TEST22 CR -> }T 24 15411990 T= T{ +LOOP.variable T| : TEST23 10 0 DO I . DUP +LOOP ; 3 TEST23 CR -> 3 }T 9 8104156 T= T{ I.basic T| : TI 4 0 DO I . LOOP CR ; TI -> }T 9 7781840 T= Block 7107 T{ I.single T| : TI1 1 0 DO I . LOOP CR ; TI1 -> }T 3 47130 T= T{ I.offset T| : TI2 5 3 DO I . LOOP CR ; TI2 -> }T 5 14549425 T= T{ I.in_expr T| : TI3 3 0 DO I 2 * . LOOP CR ; TI3 -> }T 7 9837120 T= T{ J.basic T| : TJ 2 0 DO 3 0 DO J . LOOP LOOP CR ; TJ -> }T 13 4074221 T= T{ J.paired T| : TJ2 2 0 DO 2 0 DO J I + . LOOP LOOP CR ; TJ2 -> }T 9 6857358 T= Block 7108 T{ EXIT.early_return T| : TEX 5 EXIT 99 ; TEX . CR -> }T 3 51935 T= T{ EXIT.cond_exit_pos T| : TEX2 DUP 0> IF EXIT THEN NEGATE ; 3 TEX2 . CR -> }T 3 50013 T= T{ EXIT.cond_exit_neg T| : TEX2 DUP 0> IF EXIT THEN NEGATE ; -4 TEX2 . CR -> }T 3 50974 T= T{ EXIT.no_skipped T| : TEX3 1 2 EXIT 3 ; TEX3 . . CR -> }T 5 13623021 T= T{ LEAVE.basic T| : TLV 0 5 0 DO I 3 = IF LEAVE THEN 1+ LOOP ; TLV . CR -> }T 3 50974 T= Block 7109 T{ LEAVE.at_start T| : TLV2 0 5 0 DO LEAVE 1+ LOOP ; TLV2 . CR -> }T 3 48091 T= T{ LEAVE.qdloop T| : TLV3 0 5 0 ?DO I 2 = IF LEAVE THEN 1+ LOOP ; TLV3 . CR -> }T 3 50013 T= T{ U*.small T| 3 4 U* . . CR -> }T 6 12751803 T= T{ U*.zero T| 0 5 U* . . CR -> }T 5 11775018 T= T{ U*.full T| -1 -1 U* 2+ . 1 = . CR -> }T 6 12631678 T= Block 7110 T{ U/MOD.small T| 7 0 2 U/MOD . . CR -> }T 5 14546542 T= T{ U/MOD.exact T| 12 0 4 U/MOD . . CR -> }T 5 14545581 T= T{ U/MOD.double T| 0 1 2 U/MOD 2* . . CR -> }T 5 11775018 T= T{ U/MOD.inverse T| -1 -1 U* -1 U/MOD 1+ . . CR -> }T 5 11775018 T= T{ U/MOD.carry T| -1 -2 -1 U/MOD 1+ . 2+ . CR -> }T 5 11775018 T= Block 7111 T{ U/MOD.by_zero T| 1 0 0 U/MOD ->ERR T{ ?.basic T| VARIABLE Q1 42 Q1 ! Q1 ? CR -> }T 4 1598184 T= T{ EXECUTE.found T| : E1 7 ; FIND E1 EXECUTE . CR -> }T 3 53857 T= T{ U..small T| 42 U. CR -> }T 4 1598184 T= T{ U..unsigned T| -1 U. CR -> }T 22 3892143 T= Block 7112 T{ CONVERT.digits T| : C1 0 0 BL WORD CONVERT DROP ; C1 123 . . CR -> }T 7 9448876 T= T{ '.found T| ' DUP 0= . CR -> }T 3 47130 T= T{ .".in_definition T| : Q3 ." hi there" ; Q3 CR -> }T 9 13319717 T= T{ LITERAL.basic T| : Q4 [ 5 ] LITERAL ; Q4 . CR -> }T 3 51935 T= T{ STATE.interpreting T| STATE @ . CR -> }T 3 47130 T= Block 7113 T{ STATE.compiling T| : Q5 STATE @ 0= . ; IMMEDIATE : Q6 Q5 ; CR -> }T 3 47130 T= T{ COMPILE.basic T| : Q7 COMPILE DUP ; IMMEDIATE : Q8 Q7 ; 3 Q8 . . CR -> }T 5 14548464 T= T{ [COMPILE].basic T| : Q9 [COMPILE] IF ; IMMEDIATE : Q10 Q9 1 ELSE 2 THEN ; 0 Q10 T| . -1 Q10 . CR -> }T 5 13623021 T= T{ (.comment T| 1 ( 2 ) 3 . . CR -> }T 5 14546542 T= T{ BLK.terminal T| BLK @ . CR -> }T 3 47130 T= Block 7114 T{ 79-STANDARD.present T| 79-STANDARD -> }T 0 0 T= T{ WORD.next_word T| : W1 BL WORD COUNT TYPE ; W1 HELLO -> }T 5 1515698 T= T{ WORD.delimiter T| : W2 44 WORD COUNT TYPE ; W2 A B, -> }T 3 63523 T= T{ WORD.count T| : W3 BL WORD C@ . ; W3 ABC -> }T 2 1613 T= T{ WORD.skips_leading T| : W4 BL WORD COUNT TYPE ; W4 X -> }T 1 88 T= Block 7115 T-REPORT FORGET T# DECIMAL