\ Test application HanSoft & Partners - Internal use only 20 spaces ." How compatible is 4th with FORTH?" cr 22 spaces ." (c) 1982 by Ing W. Hofacker" cr 25 spaces ." (c) 1981 by FORTH Inc." cr cr \ Starting Forth page 130 ." 10 0 do i . loop => 0 .. 9" cr : t1 10 0 do i . loop cr cr ; t1 ." -243 -250 do i . loop => -250 .. -244" cr : t2 -243 -250 do i . loop cr cr ; t2 ." 7 multiplications => 7, 14 .. 70" cr : multiplications 11 1 do dup i * . loop drop cr ; 7 multiplications cr \ Starting Forth page 133 ." 50 0 do i . 5 +loop => 0, 5 .. 45" cr : t3 50 0 do i . 5 +loop cr cr ; t3 ." -10 0 do i . -1 +loop => 0 .. -10" cr : t4 -10 0 do i . -1 +loop cr cr ; t4 \ Starting Forth page 134 ." 32767 1 do i . i +loop => 1, 2, 4, 8 .. 16384" cr : t5 32767 1 do i . i +loop cr cr ; t5 \ Starting Forth page 135 ." 100 10 do i . -1 +loop => 10" cr : t6 100 10 do i . -1 +loop cr cr ; t6 ." More than doubled in 12 years" cr \ Starting Forth page 140 variable double : r% 50 */ 1+ 2/ ; : compound swap dup 2* double ! 21 1 do cr ." Year " i 2 .r space over over r% + dup ." balance " . dup double @ > if cr cr ." More than doubled in " i . ." years" cr leave then loop drop drop ; 1000 6 compound cr \ Starting Forth page 43 ." 5 ones and 2 quarters" cr : quarters 4 /mod . ." ones and " . ." quarters " cr ; 22 quarters : poem cr 11 1 do i . ." little " i 3 mod 0= if ." indians " cr then loop ." indian boys." cr ; \ Starting Forth page 132 poem cr variable 'aloha : hello ." Hello " ; : goodbye ." Goodbye " ; : aloha 'aloha @ execute ; : coming ' hello 'aloha ! ; : going ' goodbye 'aloha ! ; ." Hello Goodbye" cr coming aloha going aloha cr cr \ Starting Forth page 219 : soup ." soup " ; : dessert ." dessert " ; : chicken ." chicken " ; : rice ." rice " ; : entree chicken exit rice ; : dinner soup entree dessert ; ." soup chicken dessert" cr dinner cr cr \ Starting Forth page 230 \ Starting Forth page 201 create sizes 18 , 21 , 24 , 27 , 30 , 255 , : category 6 0 do dup sizes I + @c < if drop i leave then loop ; create "label" ," Reject" ," Small" ," Medium" ," Large" ," Extra large" ," Error" : index ( n -- addr ) + @c ; : label "label" index count type ; : eggsize category label ; ." Medium" cr 23 eggsize cr 9 string board \ Starting Forth page 214 : clear board 9 0 fill ; clear : sqr board + ; : bar ." | " ; : dashes cr 9 0 do ." -" loop cr ; : .box sqr c@ dup 0= if 2 spaces else dup 1 = if ." X " else ." O " then then drop ; : display cr 9 0 do I if I 3 mod 0= if dashes else bar then then I .box loop cr ; : play 1- 0 max 8 min sqr c! ; : x! 1 swap play display ; : o! 2 swap play display ; 4 x! 3 o! cr : ggd \ FORTH page 40 t/m 43 begin swap over mod dup 0= until drop . ; ." (27 21 => 3) " 27 21 ggd cr ." (625 6250 => 625) " 625 6250 ggd cr : fib 0 1 begin dup >r rot dup r> > while -rot dup rot + dup . repeat drop drop drop ; ." (20 fib => 1 2 3 5 8 13 21) " 20 fib cr cr variable lines : test mod 0= ; : pprint dup 5 .r lines @ dup 0= if cr drop 4 else 1- then lines ! ; : ptest dup 2/ 2 do dup i test if 0 leave then loop dup if pprint else drop then drop ; : prime cr 4 lines ! do i ptest loop cr ; ." All prime numbers from 1 to 199" cr 200 1 prime cr