The boot is now nucleus, forth79.4th, POST, prompt, on both products. - forth79.4th: U* and U/MOD, the capsule's first colon definitions. They are in the FORTH-79 Required Word Set and neither v3 nor v4 had them. - post79.4th: 550 cases, 126 of the 130 required words. 443 are v3's with v3's result. The rest follow three rulings (2026-10-05): address- dependent cases are checked for count, not value; where v3 departs from FORTH-79 the standard's result is expected; words v3 has no case for get cases written by hand. v4/tools/post79_rules.py holds each exception with its reason and docs/v4.0.0/POST79.md lists them all. - every case starts from an empty stack, DECIMAL and FORTH DEFINITIONS - the boot requires POST's tally line with fail=0 Verified: tests=550 pass=550 fail=0 and identical PARITY lines on hosted amd64, aarch64 and riscv64 (make -C v4 hosted-check) and on bare metal, clean qemu with STARFORTH_V4=1, on the same three (logs/20261005-1619xx, -1621xx, -1625xx). A U/MOD broken on purpose fails five cases and stops the boot. make -C v4 test passes. Not shown: all words but those two are still assembled, so POST has so far tested the assembled words. Nothing was typed at a bare-metal prompt. Open: PAD 42 OVER ! faults on v4 (D-1). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1835 lines
33 KiB
Forth
1835 lines
33 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
|
|
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
|