Files
LithosAnanake/capsules/v4/post79.4th
T
rajamesandClaude Opus 5.5 5d6043e37e feat(v4.0.0): POST for FORTH-79, from v3's cases; not passing yet
capsules/v4/post79.4th: 537 of v3's POST cases for the FORTH-79 Required
Word Set, each carrying what the hosted v3 binary did with the same line
(error or not, the stack, the length and checksum of what it printed).
Written by v4/tools/mkpost.py.  The harness is FORTH-79 plus the two
nucleus hooks.  docs/v4.0.0/NUCLEUS.md section 6.

- NODE-ERROR has a FORTH name: how a definition in FORTH raises an error
- the boot passes POST only on seeing its tally line with fail=0
- POST is not in the boot yet (V4_POST_AT_BOOT=0); make -C v4 post runs it

Result: tests=537 pass=439 fail=98.  The 98 are not yet sorted into v4
defects and differences needing a ruling; v4/README.md has a first reading.

Verified: make -C v4 test passes; hosted-check passes on three ISAs; clean
qemu with STARFORTH_V4=1 on amd64, aarch64 and riscv64 reaches ok> with the
same hashes as hosted (logs/20261005-1601xx..1604xx).  Nothing was typed at
a bare-metal prompt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 16:04:48 -04:00

1788 lines
32 KiB
Forth

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 VARIABLE TBASE
CREATE TBUF 64 ALLOT CREATE TSTK 16 ALLOT CREATE TNAME 8 ALLOT
0 T# ! 0 TPASS ! 0 TFAIL ! 0 TOPEN ! 10 TBASE !
: 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 -- )
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) ! TBASE @ BASE !
THEN ;
Block 7002
( T{ name begin a case: clean stack, errors caught )
: T{ ( i*x -- ) T-CLOSE T-CLEAR
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) ! BASE @ TBASE ! 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 ! ;
( ->ERR the case is over, and must have ended in an error )
: ->ERR ( i*x -- ) T-END -1 TWANT ! T-CLEAR ;
Block 7003
( ... }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 ;
( len sum T= what the case must have printed )
: T= ( len sum -- ) TSUM @ = 0= IF 1 TBAD ! THEN
TLEN @ = 0= IF 1 TBAD ! THEN ;
( 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 7004
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 7005
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 7006
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 7007
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 7008
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 7009
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 7010
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 7011
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 7012
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
-> 1 2 3 }T 3 50013 T=
T{ PICK.pick_1
T| 1 2 3 1 PICK . CR
-> 1 2 3 }T 3 49052 T=
T{ PICK.pick_2
T| 1 2 3 2 PICK . CR
-> 1 2 3 }T 3 48091 T=
T{ ROLL.roll_1
T| 1 2 3 1 ROLL . . . CR
-> }T 7 9069952 T=
Block 7013
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 7014
T{ >R.basic
T| 42 >R R@ . R> . CR
-> }T 7 15838026 T=
T{ >R.zero
T| 0 >R R@ . R> . CR
-> }T 5 11775018 T=
T{ >R.negative
T| -123 >R R@ . R> . CR
-> }T 11 14101290 T=
T{ >R.multiple
T| 1 2 >R >R R@ . R> . R@ . R> . CR
-> }T 9 12265744 T=
T{ >R.empty_stack
T| >R
->ERR
Block 7015
T{ R>.basic
T| 42 >R R> . CR
-> }T 4 1598184 T=
T{ R>.lifo_order
T| 1 2 >R >R R> . R> . CR
-> }T 5 12700461 T=
T{ R>.empty_rstack
T| R>
->ERR
T{ R@.basic
T| 42 >R R@ . R> DROP CR
-> }T 4 1598184 T=
T{ R@.non_destructive
T| 99 >R R@ R@ = . R> DROP CR
-> }T 4 1388686 T=
Block 7016
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 7017
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 7018
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 7019
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 8 - @ . CR
-> }T 4 1598184 T=
T{ ,.negative
T| -999 , HERE 8 - @ . CR
-> }T 6 529078 T=
Block 7020
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 7021
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
->ERR
T{ +!.by_zero
T| 42 HERE ! 0 HERE +! HERE @ . CR
->ERR
T{ +!.negative
T| 10 HERE ! -3 HERE +! HERE @ . CR
->ERR
Block 7022
T{ +!.accumulate
T| 0 HERE ! 1 HERE +! 2 HERE +! 3 HERE +! HERE @ . CR
->ERR
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 7023
T{ FILL.empty_stack
T| FILL
->ERR
T{ MOVE.basic
T| HERE 65 OVER C! HERE 1+ 66 OVER C! HERE HERE 16 + 2 MOVE HERE
T| 16 + C@ . HERE 17 + C@ . CR
-> 302 303 }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 7024
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 7025
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 7026
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 7027
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 7028
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 7029
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 7030
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 7031
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 7032
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 7033
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 7034
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 7035
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 7036
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 7037
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 7038
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 7039
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 7040
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 7041
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 7042
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 7043
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 7044
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 7045
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 7046
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 7047
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 7048
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 7049
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 7050
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 7051
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 7052
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 7053
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 7054
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 7055
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 7056
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 7057
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 7058
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 7059
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 7060
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 7061
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 7062
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 7063
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 16131231 T=
T{ BASE.base_fetch
T| BASE @ . CR
-> }T 4 1510733 T=
T{ DECIMAL.from_hex
T| HEX FF DECIMAL . CR
-> }T 5 14252476 T=
Block 7064
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 22 14470350 T=
T{ <#.empty
T| 0 <# #> TYPE CR
-> 0 }T 1 10 T=
T{ <#.negative
T| -42 <# #S #> TYPE CR
-> }T 3 51532 T=
Block 7065
T{ #.single_digit
T| 15 <# # #> TYPE CR
-> }T 2 1653 T=
T{ #.multiple
T| 15 <# # # #> TYPE CR
-> }T 3 48742 T=
T{ #.zero_pad
T| 5 <# # 0 # #> TYPE CR
-> 0 }T 3 47781 T=
T{ #S.basic
T| 42 <# #S #> TYPE CR
-> }T 3 51532 T=
T{ #S.zero
T| 0 <# #S #> TYPE CR
-> }T 2 1498 T=
Block 7066
T{ #S.large
T| 1234567890 <# #S #> TYPE CR
-> }T 11 7265487 T=
T{ SIGN.negative
T| -42 ABS <# #S SIGN #> TYPE CR
-> 0 }T 3 51532 T=
T{ SIGN.positive
T| 42 <# #S SIGN #> TYPE CR
-> 0 }T 3 51532 T=
T{ SIGN.zero
T| 0 <# #S SIGN #> TYPE CR
-> 0 }T 2 1498 T=
T{ #>.normal
T| 42 <# #S #> TYPE CR
-> }T 3 51532 T=
Block 7067
T{ #>.empty
T| 0 <# #> TYPE CR
-> 0 }T 1 10 T=
T{ #>.stack_effect
T| 42 <# #S #> SWAP . . CR
-> }T 6 4087998 T=
T{ HOLD.basic
T| 42 <# 46 HOLD #S #> TYPE CR
-> }T 4 1598618 T=
T{ HOLD.overflow
T| <# 257 HOLD #>
->ERR
T{ COUNT.basic
T| HERE S" Test" DROP COUNT . . CR
-> 302 }T 8 8794556 T=
Block 7068
T{ COUNT.empty
T| HERE 0 OVER C! COUNT . . CR
-> }T 7 11241141 T=
T{ COUNT.max_length
T| HERE 255 OVER C! COUNT . . CR
-> }T 9 2533207 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
-> 307 }T 6 6975864 T=
Block 7069
T{ -TRAILING.all_spaces
T| HERE S" " -TRAILING TYPE CR
-> 315 }T 1 10 T=
T{ -TRAILING.no_spaces
T| HERE S" Test" -TRAILING TYPE CR
-> 320 }T 5 13589912 T=
T{ -TRAILING.empty
T| HERE 0 -TRAILING TYPE CR
-> }T 1 10 T=
T{ CMOVE.basic
T| HERE S" Test" DUP >R HERE 10 + SWAP CMOVE CR
-> 325 }T 1 10 T=
T{ CMOVE.empty
T| HERE HERE 10 + 0 CMOVE
-> }T 0 0 T=
Block 7070
T{ CMOVE.overlap
T| HERE DUP 1+ 5 CMOVE
-> }T 0 0 T=
T{ CMOVE.bounds
T| HERE PAD 1000 CMOVE
->ERR
T{ >IN.initial
T| >IN @ . CR
-> }T 11 6895390 T=
T{ >IN.advances
T| : TWIN >IN @ >IN @ - . CR ; TWIN
-> }T 3 47130 T=
T{ ..positive
T| 42 . CR
-> }T 4 1598184 T=
Block 7071
T{ ..negative
T| -42 . CR
-> }T 5 9602197 T=
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=
Block 7072
T{ ..empty_stack
T| .
->ERR
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=
Block 7073
T{ SPACE.basic
T| 42 . SPACE 43 . CR
-> }T 8 2824871 T=
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=
Block 7074
T{ SPACES.one
T| 1 SPACES
-> }T 1 32 T=
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=
Block 7075
T{ SPACES.empty_stack
T| SPACES
->ERR
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=
Block 7076
T{ EMIT.newline
T| 10 EMIT
-> }T 1 10 T=
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 1963 T=
T{ EMIT.sequence
T| 72 EMIT 73 EMIT 10 EMIT
-> }T 3 71465 T=
Block 7077
T{ EMIT.empty_stack
T| EMIT
->ERR
T{ TYPE.basic_string
T| HERE S" Hello" DUP >R HERE SWAP CMOVE HERE R> TYPE CR
-> 400 }T 6 10415512 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| HERE S" 12345" DUP >R HERE SWAP CMOVE HERE R> TYPE CR
-> 406 }T 6 7734839 T=
Block 7078
T{ TYPE.zero_length
T| PAD 0 TYPE
-> }T 0 0 T=
T{ TYPE.one_item
T| PAD TYPE
->ERR
T{ TYPE.empty_stack
T| TYPE
->ERR
T{ COUNT.basic~2
T| HERE S" Test" DROP C@ HERE 1+ SWAP COUNT . . CR
-> 412 418 }T 6 12963223 T=
T{ COUNT.empty~2
T| HERE 0 OVER C! COUNT . . CR
-> }T 7 12194453 T=
Block 7079
T{ COUNT.max_length~2
T| HERE 255 OVER C! COUNT . . CR
-> }T 9 3486519 T=
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_input
T| BL WORD COUNT . CR
-> 113 }T 3 47130 T=
T{ WORD.space_delim
T| 32 WORD DROP
-> }T 0 0 T=
Block 7080
T{ WORD.newline_delim
T| 10 WORD DROP
-> }T 0 0 T=
T{ WORD.tab_delim
T| 9 WORD DROP
-> }T 0 0 T=
T{ WORD.comma_delim
T| 44 WORD DROP
-> }T 0 0 T=
T{ WORD.skip_leading
T| BL WORD DROP
-> }T 0 0 T=
T{ WORD.single_char
T| BL WORD COUNT . CR
-> 113 }T 3 47130 T=
Block 7081
T{ WORD.long_word
T| BL WORD COUNT 0 > . CR
-> 113 }T 3 47130 T=
T{ WORD.zero_delim
T| 0 WORD DROP
-> }T 0 0 T=
T{ WORD.high_ascii
T| 127 WORD DROP
-> }T 0 0 T=
T{ WORD.count_format
T| BL WORD C@ . CR
-> }T 3 47130 T=
T{ WORD.count_value
T| BL WORD COUNT SWAP DROP . CR
-> }T 3 47130 T=
Block 7082
T{ WORD.empty_stack
T| WORD
->ERR
T{ WORD.multi_delim
T| BL WORD DROP BL WORD DROP
-> }T 0 0 T=
T{ BLOCK.basic
T| 1 BLOCK DUP . CR
-> 5238784 }T 9 11810843 T=
T{ BLOCK.zero_block
T| 0 BLOCK
->ERR
T{ BLOCK.large_block
T| 65536 BLOCK
->ERR
Block 7083
T{ BLOCK.negative
T| -1 BLOCK
->ERR
T{ BLOCK.empty_stack
T| BLOCK
->ERR
T{ BUFFER.basic
T| 1 BUFFER DUP . CR
-> 5238784 }T 9 11810843 T=
T{ BUFFER.zero_block
T| 0 BUFFER
->ERR
T{ BUFFER.flush_dirty
T| 2 BLOCK 1+ 2 BUFFER
-> 5239809 5239808 }T 0 0 T=
Block 7084
T{ BUFFER.empty_stack
T| BUFFER
->ERR
T{ UPDATE.basic
T| 1 BLOCK UPDATE
-> 5238784 }T 0 0 T=
T{ UPDATE.multiple
T| 1 BLOCK UPDATE UPDATE
-> 5238784 }T 0 0 T=
T{ UPDATE.no_block
T| 0 SCR ! UPDATE
->ERR
T{ SAVE-BUFFERS.basic
T| SAVE-BUFFERS
-> }T 0 0 T=
Block 7085
T{ SAVE-BUFFERS.dirty_blocks
T| 1 BLOCK UPDATE SAVE-BUFFERS
-> 5238784 }T 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
-> 5238784 }T 0 0 T=
T{ EMPTY-BUFFERS.dirty_blocks
T| 1 BLOCK UPDATE EMPTY-BUFFERS
-> 5238784 }T 0 0 T=
Block 7086
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
T{ LIST.basic
T| 1 LIST
-> }T 1114 997788 T=
Block 7087
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=
T{ SCR.after_list
T| 1 LIST SCR @ . CR
-> }T 1117 12700863 T=
Block 7088
T{ SCR.after_load
T| 1 LOAD SCR @ . CR
-> }T 0 0 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 /
->ERR
T{ HERE.after_c_comma
T| HERE 65 C, HERE SWAP - . CR
-> }T 3 48091 T=
T{ HERE.after_allot
T| HERE 10 ALLOT HERE SWAP - . CR
-> }T 4 1506889 T=
Block 7089
T{ HERE.stability
T| HERE DUP HERE = . CR
-> 443 }T 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=
T{ ALLOT.large
T| HERE 100 ALLOT HERE SWAP - . CR
-> }T 5 13175195 T=
Block 7090
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=
T{ ,.zero
T| 0 , HERE 1 CELLS - @ . CR
-> }T 3 47130 T=
Block 7091
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
T{ PAD.basic~2
T| PAD PAD = . CR
-> }T 4 1388686 T=
Block 7092
T{ PAD.different_from_here~2
T| PAD HERE = . CR
-> }T 3 47130 T=
T{ PAD.stability
T| PAD DUP PAD = . CR
-> 5242368 }T 4 1388686 T=
T{ PAD.usable
T| PAD 42 OVER ! @ . CR
-> }T 4 1598184 T=
T{ CREATE.basic
T| CREATE test1 42 , test1 @ . CR
-> }T 4 1598184 T=
T{ CREATE.empty_name
T| CREATE
->ERR
Block 7093
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 7094
T{ IMMEDIATE.already_immediate
T| : test4 43 ; IMMEDIATE IMMEDIATE
-> }T 0 0 T=
T{ FIND.existing
T| FIND DUP . CR
-> }T 11 15395591 T=
T{ FIND.user_word
T| : test5 44 ; FIND test5 . CR
-> }T 11 8385165 T=
T{ FIND.nonexistent
T| FIND nonexistent . CR
-> }T 3 47130 T=
T{ FIND.empty
T| FIND
->ERR
Block 7095
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
-> }T 11 11526440 T=
T{ VOCABULARY.word_isolation
T| VOCABULARY ISOLATED ISOLATED DEFINITIONS : ISOWORD 99 ; FORTH
T| DEFINITIONS
-> }T 0 0 T=
Block 7096
T{ VOCABULARY.cross_vocab_access
T| VOCABULARY V1 V1 DEFINITIONS : V1WORD 11 ; FORTH V1WORD . CR
-> }T 4 1507850 T=
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
->ERR
T{ VOCABULARY.empty_name
T| VOCABULARY
->ERR
T{ FORTH.basic
T| FORTH DEFINITIONS
-> }T 0 0 T=
Block 7097
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 7098
T{ CONTEXT.basic
T| CONTEXT @ . CR
-> }T 11 8729384 T=
T{ CONTEXT.initial
T| FORTH CONTEXT @ . CR
-> }T 11 2699444 T=
T{ CURRENT.basic
T| CURRENT @ . CR
-> }T 11 8729384 T=
T{ CURRENT.after_def
T| VOCABULARY TEST-VOC8 TEST-VOC8 DEFINITIONS CURRENT @ . CR
-> }T 11 14389674 T=
T{ ABORT.basic
T| ABORT
-> }T 0 0 T=
Block 7099
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 7100
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 7101
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 7102
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 7103
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
-> -1 }T 4 1598184 T=
T{ IF.false
T| : TEST2 IF 42 ELSE 24 THEN ; 0 TEST2 . CR
-> 0 }T 4 1599145 T=
T{ IF.nested
T| : TEST3 IF IF 1 ELSE 2 THEN ELSE 3 THEN ; -1 -1 TEST3 . CR
-> }T 3 48091 T=
Block 7104
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 7105
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 7106
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 7107
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 7108
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 7109
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 7110
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 50013 T=
Block 7111
T{ LEAVE.at_start
T| : TLV2 0 5 0 DO LEAVE 1+ LOOP ; TLV2 . CR
-> }T 3 47130 T=
T{ LEAVE.qdloop
T| : TLV3 0 5 0 ?DO I 2 = IF LEAVE THEN 1+ LOOP ; TLV3 . CR
-> }T 3 49052 T=
Block 7112
T-REPORT
FORGET T# DECIMAL