.


1 1. : ." " ; : ." " ; : CR ." " ." ," CR 5 SPACES ." " ." . " ;

2. : -- ( n - n-10 ) -10 + ; : -- ( n - n-10 ) 10 - ;

3. , . , . ( ( ) . .)

2

1. DUP DUP: (1 2 -- 1 2 2 2) 2DUP: (1 2 -- 1 2 1 2)

2. : NIP ( b - b ) SWAP DROP ;

3. : TUCK ( - a b) SWAP OVER ;

4. : -ROT ( - cab) ROT ROT ;

5. SWAP 2SWAP SWAP

6. : 3DUP ( n1 n2 n3 - n1 n2 n3 n1 n2 n3) DUP 2OVER ROT ; 7. : 2-7 ( c a b - n) OVER + * + ;

8. : 2-8 ( a b - n) 2DUP - ROT ROT + / ;

9. : ( # - ) 12 /MOD . ." " . ." " ;

4

1. -1 0= NOT . -1 ok

0 0= NOT . 0 ok

200 0= NOT . -1 ok

2. .

3. ( 21 , :) : ( - ) 20 > IF ." " ELSE ." " THEN ;

4. : ( n) DUP 0= IF ." " ELSE DUP 0< IF ." " ELSE ." " THEN THEN DROP ; ( - - )

5. : <> ( n1 n2 - ?) = NOT ;

6. : XOR ( - ?) 2DUP NOT AND SWAP ROT NOT AND OR ;

7. : STARS ( n - ) ?DUP IF STARS THEN ;

8. : NEGATE ( n - -n) 0 SWAP - ; : ABS ( n - |n| ) DUP 0< IF NEGATE THEN ;

9. : /UP ( - ) /MOD SWAP IF 1+ THEN ;

10. : -ROT ( - c a b) ROT ROT ; : WITHIN ( n l h - ?) -ROT OVER > NOT -ROT > AND ; , , : : WITHIN ( n l h - ?) OVER - >R - R> U< ;

11. : ( - ) 2DUP = IF ." ! " 2DROP ELSE 2DUP < IF ." " ELSE ." " THEN DROP THEN ;

12. : . ( n - |n|) 0< IF ." " ABS THEN : ( n - ) DUP ABS 4 > IF ." " ELSE DUP . DUP 0= IF ." " ELSE DUP 1 = IF ." " ELSE DUP 2 = IF ." " ELSE DUP 3 = IF ." " ELSE ." " THEN THEN THEN THEN THEN DROP ;

13. , -ROT WITHIN : : 3DUP ( a b c - a b c a b c) DUP 2OVER ROT ; : ( -- -- -- | -- ) 3DUP OVER = -ROT = AND IF ." ! " 2DROP DROP ELSE 3DUP SWAP 1 + SWAP WITHIN IF ." " ELSE ." " THEN 2DROP THEN ;

5

1. -1 " " ; 1- , .

2. */ NEGATE

3. .

4. ) : 2 ( n1 n2 - n? n?) \ 2DUP > IF SWAP THEN ;

) : 3 ( n1 n2 n - n? n? n?) \ 2 >R 2 R> 2 ; ( ... ) : 4 \ 3 >R 3 R> 2 ; ... 2.)

) : ? ( - ) \ 3 22 > ROT 6 > ROT 19 >

AND AND IF ." " THEN ; ( .)

5. : ( n - ) CR 80 100 */ STARS ;

6. ) 0 32 - 10 18 */ . -17 ok

) 212 32 - 10 18 */ . 100 ok

) -32 32 - 10 18 */ . -35 ok

) 16 18 10 */ 32 + . 60 ok

) 233 273 - . -40 ok

7. : > ( - ) 32 - 10 18 */ ; : > ( - ) 18 10 */ 32 + ; : > ( - ) 273 - ; : > ( - ) 273 + ; : > ( - ) > > ; : > ( - ) > > ;

Block# 270 0 \ : 6 1 \ 1-6 2 : STARS ( n) 0 ?DO 42 EMIT LOOP ; 3 : ( - ) 0 DO CR DUP STARS LOOP DROP ; 4 : \STARS ( # - ) 0 DO CR I SPACES 10 STARS LOOP ; 5 : /STARS ( # - ) 6 1- 0 SWAP DO CR I SPACES 10 STARS -1 +LOOP ; 7 \ /STARS BEGIN ... UNTIL: 8 : A/STARS ( #) 9 BEGIN 1- CR DUP SPACES 10 STARS DUP 0= UNTIL DROP ; 10 11 \ : 12 : ( - ) 13 DO CR 9 I - SPACES I 2* 1+ STARS DUP +LOOP DROP ; 14 : ( #6 - ) 15 0 DO 1 10 0 -1 0 9 LOOP CR :

Block# 271 0 \ ; 6; 1 \ 7: 2 : THRU ( - ) 1+ SWAP DO I DUP . LOAD LOOP ; 3 \ 8 4 : R%, ( n1 % - n2) 10 */ 5 + 10 / ; 5 : ( - ) 6 OVER 2* SWAP ROT 21 1 DO 7 CR ." " I 2 .R 3 SPACES 8 2DUP R% + DUP ." " ? DUP 2OVER DROP > IF 10 CR CR ." " I . ." " LEAVE 11 THEN LOOP 2DROP DROP ; 12 \ 9 13 : ** (n1 n2 - n1 ---n2) 14 1 SWAP ?DUP IF 0 DO OVER * LOOP THEN SWAP DROP ; 15 \ .., ,

Block# 272 0 \ ; 7 1 \ 1: 2 : N-MAX 0 BEGIN 1+ DUP 0< UNTIL 1- . ; 3 ( , , 4 - , - 5 . 1- 6 .) 7 8 \ 2 (-): 9 : BYNARY 2 BASE ! ; 10 : ( # - -) 1 SWAP 0 ?DO 2* LOOP ; 11 : - ( 1 # - 2) OR ; 12 : - ( 1 # - 2) -1 XOR AND ; 13 : - ( # - ) AND ; 14 : - ( 1 # - 2) XOR ; 15 : ( (1 2 - 3 ) XOR ;

Block# 273 0 \ ; 7, 1 \ 3: 2 : ." " 7 EMIT ; 3 : 20000 0 DO LOOP ; 4 : 3 ; 5 6 \ 4: 7 : > -320 + 10 18 */ ; 8 : > 18 10 */ 320 + ; 9 : > -2732 + ; 10 : > 2732 + ; 11 : > > > ; 12 : > > > 5 13 \ 4: 14 : . ( d - ) DUP >R DABS 15 <# # 46 HOLD #S R> SIGN #> TYPE SPACE ;

Block# 274 0 \ ; 7, 1 \ 5: ( 17513; .) 2 : ( - dv) 3 DUP 7 * 20 + ROT 1 */ 5 M+ ; 4 : ?DMAX 0 BEGIN 1+ DUP 0 D< UNTIL 1- . ; 5 6 \ 6: 7 16- . 8 9 \ 7: 10 : BINARY 2 BASE ! ; 11 : 3- 12 17 0 DO CR ." " DECIMAL I 4 .R 8 SPACES 13 .' 16-" HEX I 3 .R 8 SPACES 14 ." " BINARY I S .R 8 SPACES 15 LOOP DECIMAL ;

Block# 275 0 \ 7, 1 \ 8: 2 ( 3.7 , 3 , , 4 37 , 5 . "." 6 ; 7 . , 8 ; - 9 37.) 10 ( 65536 , - 11 16 . 17- "1", 12 . 17- 13 . 14 "1". .) 15 ( 65538 , "2".)

Block# 276 0 \ ; 7, 1 \ 9: 2 ( , 3 . NUMBER 4 , 5 , .) 6 7 \ 10: 8 : . ( d - ) <# # # # # ASCII - HOLD # # # 9 OVER IF ASCII / HOLD #S THEN #> TYPE SPACE ; 10 11 12 13 14 15 Block# 277 0 \ ; 8 1 \ 1- 2 VARIABLE 0 ! 3 : - 1 +! ; 4 : - @ IF -1 +! ." " 5 ELSE ." ?" THEN ; 6 \ 1- 7 VARIABLE - 0 - ! 8 : - @ - +! 0 ! ; 9 \ 2: 10 : . BASE @ DUP DECIMAL . BASE ! ; 11 \ 3 ( - ): 12 : S>D ( - d) DUP 0< ; \ 13 : . ( d - ) TUCK DABS 14 <# DPL @ DUP -1 <> IF ?DO # LOOP ASCII . HOLD ELSE 15 DROP S>D THEN #S ROT SIGN #> TYPE SPACE ;

Block# 278 0 \ ; 8, 4 1 2 CREATE # 8 ALLOT \ 3 0 CONSTANT 2 CONSTANT 4 4 CONSTANT 6 CONSTANT 5 6 : ( - ) # + ; 7 8 23 . 9 15 ! 10 12 ! 11 0 I 12 13 \ , , : 14 \ ? 15 ok

15

Block# 279 0 \ ; 8, 5 1 2 CREATE ' 20 ALLOT ( 10 ) 3 : ( i - ) 2* ' + ; 4 : STARS ?DUP IF 0 DO 42 EMIT LOOP THEN ; 5 : - 10 0 DO 16 MOD I ! LOOP ; 6 7 : ( - ) 8 100 DO CR I 2 .R SPACE I @ STARS LOOP CR ; 9 10 - 11 12 13 14 15

Block# 280 0 \ ; 8, 6 1 1 CONSTANT 0 CONSTANT 2 2 CONSTANT 0 CONSTANT 3 4 CONSTANT 0 CONSTANT HE- 4 8 CONSTANT 0 CONSTANT HE- 5 VARIABLE 6 VARIABLE 7 : ( -- ) 8 >R OR OR OR R> ! ; 9 HE- HE- 10 11 12 13 14 15

Block# 281 0 \ ; 8, 6, 1 : . ( - ) AND IF ." " THEN ." " ; 2 : .- ( - ) 3 AND IF ." " ELSE ." " THEN ; 4 : . ( - ) 5 AND 0= IF ." " THEN ." " ; 6 : . ( - ) 7 AND 0= IF ." " THEN ." " ; 8 : ( - ) 9 @ DUP - DUP .- DUP . . ; 113 11 12 13 14 15

Block# 282 0 \ ; 3, 7 1 CREATE 9 ALLOT 2 : ( # - ) + ; 3 : 9 0 FILL ; 4 : ." | " ; 5 : CR 9 0 DO ASCII - EMIT LOOP CR ; 6 : . ( # - ) @ DUP 0= IF 2 SPACES ELSE 7 DUP 1 = IF ." X " ELSE ." 0 " THEN THEN DROP ; 8 : CR 9 0 DO I IF I 3 MOD 0= IF 9 ELSE THEN THEN I . LOOP CR QUIT ; 10 : ( # - ) 11 1- 0 MAX 8 MIN ! ; 12 : X! ( # - ) 1 SWAP ; 13 : 0! ( # - ) -1 SWAP ; 14

15 Block# 283 0 \ ; 9 1 2 \ 1: 3 VARIABLE ' 4 : ( n n - ) ' @ EXECUTE . : 5 : ['] + ' ! ; 6 : ['] * ' ! ; 7 8 \ 2: 9 \ , 1 \ HERE U. 11 \ , - 12 \ , COLD EMPTY. 13 14 15

Block # 284 0 \ ; 7, 1 2 \ 3: 3 \ , 4 \ PAD HERE - U. 5 6 \ 4: 7 \ ) . pfa. 8 \ ) 9 \ , , 10 , , 11 \ 12 13 14 15

Block # 285 0 \ ; 9, 1 \ 5, 1: 2 CREATE '- 12 ALLOT \ 6 3 : - ( i -- ) 0 5 MIN 2* '- + ; 4 5 : ." , . " ; 6 : 11 1 DO I . LOOP ; 7 : 10 5 ; \ . 6 6 : ; 9 10 ' 0 - ! ' 1 - ! 11 ' 2 - ! ' 3 - ! 12 ' 4 - ! ' 5 - ! 13 14 : - ( --) - @EXECUTE ; 15

Block # 286 0 \ ; 9, 1 \ 5, 2; 2 CREATE '- 12 ALLOT \ 6 3 : - ( i -- ) 0 M 5 MIN 2* '- + ; 4 5 : ." , . " ; 6 : 11 1 DO I . LOOP ; 7 : 13 5 5 \ . 6 8 : ; 9 10 : ( - ) 11 6 0 DO ['] I - ! LOOP 12 ['] 0 - ! ['] 1 - ! 13 ['] 2 - ! ; 14 15 : - ( - ) - @EXECUTE ;

Block # 287 0 \ ; 10 1 \ 1: 2 : ( i - ) 3 228 BLOCK + ; 4 : ( c1 2 - ) \ c1 2 5 1024 0 DO OVER I @ = IF DUP I ! 6 UPDATE THEN LOOP 2DROP ; 7 8 \ 2: 9 181 LOAD \ 10 \ ??? CONSTANT \ 11 : CR 16 CHOOSE 64 * BLOCK + 12 64 -TRAILING TYPE SPACE ; 13 \ "". 14 \ , 15 \

Block# 238 0 \ ; 10, 1 \ : 2 : /? ( - t=Y | f=) KEY DUP EMIT ASCII Y = ; 3 \ : 4 : /? ( - t=Y | f=) 5 KEY 95 AND DUP EMIT ASCII Y = ; 6 \ ; : 7 : /? ( - t=Y | f=N ) 8 BEGIN KEY 95 AND DUP ASCII Y = IF DROP TRUE EXIT ELSE 9 DUP ASCII N = IF 0= EXIT THEN THEN 10 DROP FALSE UNTIL ; 11 12 : /? ( - t=Y | f=N ) 13 BEGIN KEY 95 AND DUP ASCII Y = OVER ASCII N = OR NOT 14 WHILE DROP REPEAT ASCII Y = ; 15 Block# 289 0 \ ; * 10, 4 1 1 : LIT" 2 " ; 3 : . ( u - ) \ 0 11 4 8 * 1+ + 8 -TRAILING TYPE ; 5 : () ( - ) 6 1900 - 12 MOD 7 ." " . 8 ASCII . EMIT CR ; 9 350 351 THRU \ EXPECT# 10 : ( # - d ) 11 DUP 0 DO ASCII EMIT LOOP DUP 0 DO LOOP 12 PAD SWAP 2DUP 1+ BLANK EXPECT# DROP PAD 1- NUMBER : 13 : 14 CR ." ? " 4 15 CR DROP () ;

Block# 290 0 \ ; 10, 5 1 VARIABLE 2 : 0 ' ; 3 : \ 1, 2, 3, 4 \ ( - ) 5 @ 0 60 BLANK UPDATE 6 3 0 DO 7 ASCII , WORD COUNT @ I SWAP CMOVE UPDATE 8 LOOP 1 +! ; 9 \ , TEXT: 10 : \ 1, 2 3, 11 \ ( - ) 12 3 0 DO 13 ASCII , TEXT PAD @ I 28 CMOVE UPDATE 14 LOOP 1 +! ;

15 Block# 291 0 \ ; 10 1 \ 6 2 : > ( -- n n ) 3 0 0 ROT CONVERT ROT >R 0 SWAP CONVERT ROT >R 4 0 SWAP CONVERT 2DROP 1900 + R> R> 256 * + SWAP ; 5 : BL WORD > ; 6 7 \ 7 8 VARIABLE STUFF \ 9 300 STUFF \ 300 10 : ( i - ) 11 2* 1024 /MOD STUFF @ + BLOCK + UPDATE ; 12 \ : 13 : - 600 0 I I ! LOOP ; 14 : . 600 0 DO I . SPACE I ? LOOP ; 15

Block# 292 0 \ ; 10, 7, 1 2 \ : 3 : ( -- ) @ BLOCK UPDATE ; 4 \ , : 5 : ( i - ) 6 1+ 2* 1024 /MOD @ + BLOCK + UPDATE ; 7 8 : - 0 ! ; 9 - 10 : ( n - ) @ ! 1 +! ; 11 s ( n1 n2 - ) SWAP ; 12 13 : CR @ 0 ?DO I 8 OD 0= IF CR THEN 14 I @ 8 .R LOOP CR ; 15

Block# 293 0 \ ; 11 1 \ 1: 2 : ( n - ) CREATE , DOES> ( - ) @ LOAD ; 4 \ 2: 5 : . ( n - ) CREATE , 6 DOES> ( n -- ) @ BASE @ SWAP BASE ' SWAP . BASE ! ; 7 8 \ 3: 9 : ( a -- ) CREATE , 10 DOES> ( -- ) @ SWAP 0 ?DO DUP EXECUTE LOOP DROP ; 11 ' CR CRS 12 4 CRS 13 14 15

Block# 294 0 \ ; 11, 1 \ 4: 2 : TURNE [COMPILE] DO ; IMMEDIATE 3 : RETURNE [COMPILE] LOOP ; IMMEDIATE 4 : 10 0 TURNE I . RETURNE ; 5 6 \ 5: 7 : ( # - ) 8 >IN @ SWAP 0 DO DUP >IN ! INTERPRET LOOP DROP ; 9 10 11 12 13 14 15

Block# 295 0 \ ; 11, 6: 1 : STAR * 42 EMIT ; 2 : . ( b - ) \ 3 CR 8 0 DO DUP 128 AND IF STAR ELSE SPACE THEN 4 2* LOOP DROP ; 5 VARIABLE 6 : ( t=- - ) 7 1 AND @ 2* + ! ; 8 : > ( - b) 9 0 ! 8 OVER + SWAP DO I @ BL <> LOOP 10 @ ; 11 : - ( - b) 12 ASCII | WORD COUNT + 8 - > ; 13 : CREATE 8 0 DO - , . LOOP 14 DOES> 8 OVER + SWAP DO I @ . LOOP CR ; 15

Block# 296 0 .L XXX | 1 X | 2 X | 3 X | 4 X | 5 X | 6 X X| 7 XXXXXXXX| 8 . | 9 X X| 10 X X| 11 XXXXXX | 12 X X| 13 X X| 14 X X| 15 XXXXXXX|

Block# 297 0 \ ; 12, 1: 1 : ( - - ) 2 CREATE OVER , DUP , + ; 3 13 \ 4 16 5 12 6 24 7 12 8 CONSTANT / ( ) EXIT 9 . 10 "" , 11 . "" - 12 , , 13 . , "", - 14 15 /

Block# 296 0 \ ; 12, 2: 1 : ( ( -- ) 2 - IF 3 ELSE CR . . THEN ; 4 5 6 7 8 9 10 11 12 13 14 15

.