3 \ Turtle graphics package for hForth
\r
4 \ Words names are in Korean.
\r
6 \ HTURTLE.EXE
\93e HF86EXE.EXE
\9fi ¯¡¸bÐe Ò
\81 \94a·q ®
\85‡
\9d¡ Í¡¯a Ìa·©
\97i·i µ©
\9da‡
\r
7 \ e
\97e
\88õ·³
\93¡
\94a.
\r
13 \ BL PARSE MULTI.F INCLUDED
\r
14 \ BL PARSE HIOMULT2.F INCLUDED
\r
15 \ BL PARSE HTURTLE.F INCLUDED
\r
16 \ SAVE-SYSTEM-AS HTURTLE.EXE
\r
18 \ 1996. 2. 21. \ Wonyong Koh
\r
21 GET-ORDER GET-CURRENT
\r
22 Ðe
\8bi·³Â
\89\9db-WORDLIST GET-ORDER 1 + SET-ORDER
\r
28 0 , 286 , 572 , 857 , 1143 , 1428 , 1713 , 1997 , 2280 , 2563 ,
\r
29 2845 , 3126 , 3406 , 3686 , 3964 , 4240 , 4516 , 4790 , 5063 , 5334 ,
\r
30 5604 , 5872 , 6138 , 6402 , 6664 , 6924 , 7182 , 7438 , 7692 , 7943 ,
\r
31 8192 , 8438 , 8682 , 8923 , 9162 , 9397 , 9630 , 9860 , 10087 , 10311 ,
\r
32 10531 , 10749 , 10963 , 11174 , 11381 , 11585 , 11786 , 11982 , 12176 , 12365 ,
\r
33 12551 , 12733 , 12911 , 13085 , 13255 , 13421 , 13583 , 13741 , 13894 , 14044 ,
\r
34 14189 , 14330 , 14466 , 14598 , 14726 , 14849 , 14968 , 15082 , 15191 , 15296 ,
\r
35 15396 , 15491 , 15582 , 15668 , 15749 , 15826 , 15897 , 15964 , 16026 , 16083 ,
\r
36 16135 , 16182 , 16225 , 16262 , 16294 , 16322 , 16344 , 16362 , 16374 , 16382 ,
\r
37 16384 , 16382 , 16374 , 16362 , 16344 , 16322 , 16294 , 16262 , 16225 , 16182 ,
\r
38 16135 , 16083 , 16026 , 15964 , 15897 , 15826 , 15749 , 15668 , 15582 , 15491 ,
\r
39 15396 , 15296 , 15191 , 15082 , 14968 , 14849 , 14726 , 14598 , 14466 , 14330 ,
\r
40 14189 , 14044 , 13894 , 13741 , 13583 , 13421 , 13255 , 13085 , 12911 , 12733 ,
\r
41 12551 , 12365 , 12176 , 11982 , 11786 , 11585 , 11381 , 11174 , 10963 , 10749 ,
\r
42 10531 , 10311 , 10087 , 9860 , 9630 , 9397 , 9162 , 8923 , 8682 , 8438 ,
\r
43 8192 , 7943 , 7692 , 7438 , 7182 , 6924 , 6664 , 6402 , 6138 , 5872 ,
\r
44 5604 , 5334 , 5063 , 4790 , 4516 , 4240 , 3964 , 3686 , 3406 , 3126 ,
\r
45 2845 , 2563 , 2280 , 1997 , 1713 , 1428 , 1143 , 857 , 572 , 286 ,
\r
46 0 , -286 , -572 , -857 , -1143 , -1428 , -1713 , -1997 , -2280 , -2563 ,
\r
47 -2845 , -3126 , -3406 , -3686 , -3964 , -4240 , -4516 , -4790 , -5063 , -5334 ,
\r
48 -5604 , -5872 , -6138 , -6402 , -6664 , -6924 , -7182 , -7438 , -7692 , -7943 ,
\r
49 -8192 , -8438 , -8682 , -8923 , -9162 , -9397 , -9630 , -9860 , -10087 , -10311 ,
\r
50 -10531 , -10749 , -10963 , -11174 , -11381 , -11585 , -11786 , -11982 , -12176 , -12365 ,
\r
51 -12551 , -12733 , -12911 , -13085 , -13255 , -13421 , -13583 , -13741 , -13894 , -14044 ,
\r
52 -14189 , -14330 , -14466 , -14598 , -14726 , -14849 , -14968 , -15082 , -15191 , -15296 ,
\r
53 -15396 , -15491 , -15582 , -15668 , -15749 , -15826 , -15897 , -15964 , -16026 , -16083 ,
\r
54 -16135 , -16182 , -16225 , -16262 , -16294 , -16322 , -16344 , -16362 , -16374 , -16382 ,
\r
55 -16384 , -16382 , -16374 , -16362 , -16344 , -16322 , -16294 , -16262 , -16225 , -16182 ,
\r
56 -16135 , -16083 , -16026 , -15964 , -15897 , -15826 , -15749 , -15668 , -15582 , -15491 ,
\r
57 -15396 , -15296 , -15191 , -15082 , -14968 , -14849 , -14726 , -14598 , -14466 , -14330 ,
\r
58 -14189 , -14044 , -13894 , -13741 , -13583 , -13421 , -13255 , -13085 , -12911 , -12733 ,
\r
59 -12551 , -12365 , -12176 , -11982 , -11786 , -11585 , -11381 , -11174 , -10963 , -10749 ,
\r
60 -10531 , -10311 , -10087 , -9860 , -9630 , -9397 , -9162 , -8923 , -8682 , -8438 ,
\r
61 -8192 , -7943 , -7692 , -7438 , -7182 , -6924 , -6664 , -6402 , -6138 , -5872 ,
\r
62 -5604 , -5334 , -5063 , -4790 , -4516 , -4240 , -3964 , -3686 , -3406 , -3126 ,
\r
63 -2845 , -2563 , -2280 , -1997 , -1713 , -1428 , -1143 , -857 , -572 , -286 ,
\r
64 -0 , 286 , 572 , 857 , 1143 , 1428 , 1713 , 1997 , 2280 , 2563 ,
\r
65 2845 , 3126 , 3406 , 3686 , 3964 , 4240 , 4516 , 4790 , 5063 , 5334 ,
\r
66 5604 , 5872 , 6138 , 6402 , 6664 , 6924 , 7182 , 7438 , 7692 , 7943 ,
\r
67 8192 , 8438 , 8682 , 8923 , 9162 , 9397 , 9630 , 9860 , 10087 , 10311 ,
\r
68 10531 , 10749 , 10963 , 11174 , 11381 , 11585 , 11786 , 11982 , 12176 , 12365 ,
\r
69 12551 , 12733 , 12911 , 13085 , 13255 , 13421 , 13583 , 13741 , 13894 , 14044 ,
\r
70 14189 , 14330 , 14466 , 14598 , 14726 , 14849 , 14968 , 15082 , 15191 , 15296 ,
\r
71 15396 , 15491 , 15582 , 15668 , 15749 , 15826 , 15897 , 15964 , 16026 , 16083 ,
\r
72 16135 , 16182 , 16225 , 16262 , 16294 , 16322 , 16344 , 16362 , 16374 , 16382 ,
\r
73 16384 , 16382 , 16374 , 16362 , 16344 , 16322 , 16294 , 16262 , 16225 , 16182 ,
\r
74 16135 , 16083 , 16026 , 15964 , 15897 , 15826 , 15749 , 15668 , 15582 , 15491 ,
\r
75 15396 , 15296 , 15191 , 15082 , 14968 , 14849 , 14726 , 14598 , 14466 , 14330 ,
\r
76 14189 , 14044 , 13894 , 13741 , 13583 , 13421 , 13255 , 13085 , 12911 , 12733 ,
\r
77 12551 , 12365 , 12176 , 11982 , 11786 , 11585 , 11381 , 11174 , 10963 , 10749 ,
\r
78 10531 , 10311 , 10087 , 9860 , 9630 , 9397 , 9162 , 8923 , 8682 , 8438 ,
\r
79 8192 , 7943 , 7692 , 7438 , 7182 , 6924 , 6664 , 6402 , 6138 , 5872 ,
\r
80 5604 , 5334 , 5063 , 4790 , 4516 , 4240 , 3964 , 3686 , 3406 , 3126 ,
\r
81 2845 , 2563 , 2280 , 1997 , 1713 , 1428 , 1143 , 857 , 572 , 286 ,
\r
82 0 , -286 , -572 , -857 , -1143 , -1428 , -1713 , -1997 , -2280 , -2563 ,
\r
83 -2845 , -3126 , -3406 , -3686 , -3964 , -4240 , -4516 , -4790 , -5063 , -5334 ,
\r
84 -5604 , -5872 , -6138 , -6402 , -6664 , -6924 , -7182 , -7438 , -7692 , -7943 ,
\r
85 -8192 , -8438 , -8682 , -8923 , -9162 , -9397 , -9630 , -9860 , -10087 , -10311 ,
\r
86 -10531 , -10749 , -10963 , -11174 , -11381 , -11585 , -11786 , -11982 , -12176 , -12365 ,
\r
87 -12551 , -12733 , -12911 , -13085 , -13255 , -13421 , -13583 , -13741 , -13894 , -14044 ,
\r
88 -14189 , -14330 , -14466 , -14598 , -14726 , -14849 , -14968 , -15082 , -15191 , -15296 ,
\r
89 -15396 , -15491 , -15582 , -15668 , -15749 , -15826 , -15897 , -15964 , -16026 , -16083 ,
\r
90 -16135 , -16182 , -16225 , -16262 , -16294 , -16322 , -16344 , -16362 , -16374 , -16382 ,
\r
91 -16384 , -16382 , -16374 , -16362 , -16344 , -16322 , -16294 , -16262 , -16225 , -16182 ,
\r
92 -16135 , -16083 , -16026 , -15964 , -15897 , -15826 , -15749 , -15668 , -15582 , -15491 ,
\r
93 -15396 , -15296 , -15191 , -15082 , -14968 , -14849 , -14726 , -14598 , -14466 , -14330 ,
\r
94 -14189 , -14044 , -13894 , -13741 , -13583 , -13421 , -13255 , -13085 , -12911 , -12733 ,
\r
95 -12551 , -12365 , -12176 , -11982 , -11786 , -11585 , -11381 , -11174 , -10963 , -10749 ,
\r
96 -10531 , -10311 , -10087 , -9860 , -9630 , -9397 , -9162 , -8923 , -8682 , -8438 ,
\r
97 -8192 , -7943 , -7692 , -7438 , -7182 , -6924 , -6664 , -6402 , -6138 , -5872 ,
\r
98 -5604 , -5334 , -5063 , -4790 , -4516 , -4240 , -3964 , -3686 , -3406 , -3126 ,
\r
99 -2845 , -2563 , -2280 , -1997 , -1713 , -1428 , -1143 , -857 , -572 , -286 ,
\r
100 -0 , 286 , 572 , 857 , 1143 , 1428 , 1713 , 1997 , 2280 , 2563 ,
\r
101 2845 , 3126 , 3406 , 3686 , 3964 , 4240 , 4516 , 4790 , 5063 , 5334 ,
\r
102 5604 , 5872 , 6138 , 6402 , 6664 , 6924 , 7182 , 7438 , 7692 , 7943 ,
\r
103 8192 , 8438 , 8682 , 8923 , 9162 , 9397 , 9630 , 9860 , 10087 , 10311 ,
\r
104 10531 , 10749 , 10963 , 11174 , 11381 , 11585 , 11786 , 11982 , 12176 , 12365 ,
\r
105 12551 , 12733 , 12911 , 13085 , 13255 , 13421 , 13583 , 13741 , 13894 , 14044 ,
\r
106 14189 , 14330 , 14466 , 14598 , 14726 , 14849 , 14968 , 15082 , 15191 , 15296 ,
\r
107 15396 , 15491 , 15582 , 15668 , 15749 , 15826 , 15897 , 15964 , 16026 , 16083 ,
\r
108 16135 , 16182 , 16225 , 16262 , 16294 , 16322 , 16344 , 16362 , 16374 , 16382 ,
\r
111 \ : PLOT ( x y -- )
\r
112 \ Y>SEG SWAP 8 /MOD SWAP >R \ seg_addr x/8 R: x_mod_8
\r
113 \ 2DUP LC@ R> CHARS XMASK + C@ OR ROT ROT LC! ;
\r
115 CODE PLOT ( x y -- )
\r
117 Y>SegTable ) BX ADD,
\r
136 \ >R >R 2SWAP R> R> 2SWAP ;
\r
138 \ : LINE ( x1 y1 x2 y2--)
\r
139 \ 2OVER 2OVER ROT - ABS >R - ABS R> MAX 2 <
\r
140 \ IF 2DROP PLOT EXIT THEN
\r
141 \ 2OVER 2OVER ROT + 1+ 2/ >R + 1+ 2/ R>
\r
142 \ 2DUP 2ROT RECURSE RECURSE ;
\r
147 \ y changing faster than x
\r
148 CODE steep640 \ on entry, ax = delta x, bx = delta y, cx=x1, dx=y1
\r
149 BX BP MOV, \ for counter
\r
151 BX Delta/2 ) MOV, \ halfy
\r
152 BX BX XOR, \ clear for cmp
\r
158 Y>SegTable ) BX ADD,
\r
173 DX INC, \ y is always increasing
\r
174 MAX-Y 16* # DX CMP,
\r
178 Delta ) BX ADD, \ = bx + delta_y
\r
179 Delta/2 ) BX CMP, \ bx > halfy ?
\r
181 SI BX SUB, \ bx - delta_y
\r
182 DI CX ADD, \ inc or dec x
\r
183 MAX-X 8 * # CX SUB,
\r
185 MAX-X 8 * # CX ADD,
\r
187 MAX-X 8 * # CX ADD,
\r
197 \ on exit, cx=x1, dx=y1, ax=x2, bx=y2
\r
198 CODE line640 ( x1 y1 x2 y2 -- ) \ writes to screen directly
\r
202 SI PUSH, ( used to hold direction)
\r
203 BP PUSH, ( used as counter)
\r
204 \ see if we'll inc or dec x, y (draws in any direction)
\r
205 DX BX SUB, \ bx <- y2-y1 (delta y)
\r
207 BX DX ADD, \ dx <- y2
\r
208 BX NEG, \ abs(delta y)
\r
211 BX SI MOV, \ delta_y(BX) to SI
\r
212 CX AX SUB, \ x2 - x1 = delta_x
\r
213 1 # DI MOV, \ di to increment x
\r
215 -1 # DI MOV, \ di to decrement x
\r
216 AX NEG, \ abs(delta x)
\r
218 \ adjust x1(CX), y1(DX) in proper range
\r
223 MAX-X 8 * # BP MOV,
\r
233 MAX-Y 16* # BP MOV,
\r
240 AX Delta ) MOV, \ abs(delta x)
\r
241 BX AX CMP, \ delta_x - delta_y
\r
243 ' steep640 # JMP, \ y changes faster than x
\r
245 \ x changing faster than y
\r
246 AX BP MOV, \ for counter
\r
248 AX Delta/2 ) MOV, \ halfx
\r
249 BX BX XOR, \ clear for cmp
\r
255 Y>SegTable ) BX ADD,
\r
270 DI CX ADD, \ inc or dec x
\r
271 MAX-X 8 * # CX SUB,
\r
273 MAX-X 8 * # CX ADD,
\r
275 MAX-X 8 * # CX ADD,
\r
277 SI BX ADD, \ = bx + delta_y
\r
278 Delta/2 ) BX CMP, \ bx > halfx ?
\r
280 Delta ) BX SUB, \ bx - delta_x
\r
281 DX INC, \ y is always increasing
\r
282 MAX-Y 16* # DX CMP,
\r
294 \ y changing faster than x
\r
295 CODE xsteep640 \ on entry, ax = delta x, bx = delta y, cx=x1, dx=y1
\r
296 BX BP MOV, \ for counter
\r
298 BX Delta/2 ) MOV, \ halfy
\r
299 BX BX XOR, \ clear for cmp
\r
305 Y>SegTable ) BX ADD,
\r
320 DX INC, \ y is always increasing
\r
321 MAX-Y 16* # DX CMP,
\r
325 Delta ) BX ADD, \ = bx + delta_y
\r
326 Delta/2 ) BX CMP, \ bx > halfy ?
\r
328 SI BX SUB, \ bx - delta_y
\r
329 DI CX ADD, \ inc or dec x
\r
330 MAX-X 8 * # CX SUB,
\r
332 MAX-X 8 * # CX ADD,
\r
334 MAX-X 8 * # CX ADD,
\r
344 \ on exit, cx=x1, dx=y1, ax=x2, bx=y2
\r
345 CODE xline640 ( x1 y1 x2 y2 -- ) \ writes to screen directly
\r
349 SI PUSH, ( used to hold direction)
\r
350 BP PUSH, ( used as counter)
\r
351 \ see if we'll inc or dec x, y (draws in any direction)
\r
352 DX BX SUB, \ bx <- y2-y1 (delta y)
\r
354 BX DX ADD, \ dx <- y2
\r
355 BX NEG, \ abs(delta y)
\r
358 BX SI MOV, \ delta_y(BX) to SI
\r
359 CX AX SUB, \ x2 - x1 = delta_x
\r
360 1 # DI MOV, \ di to increment x
\r
362 -1 # DI MOV, \ di to decrement x
\r
363 AX NEG, \ abs(delta x)
\r
365 \ adjust x1(CX), y1(DX) in proper range
\r
366 MAX-X 8 * # CX SUB,
\r
368 MAX-X 8 * # CX ADD,
\r
370 MAX-X 8 * # CX ADD,
\r
372 MAX-Y 16* # DX SUB,
\r
374 MAX-Y 16* # DX ADD,
\r
376 MAX-Y 16* # DX ADD,
\r
378 AX Delta ) MOV, \ abs(delta x)
\r
379 BX AX CMP, \ delta_x - delta_y
\r
381 ' xsteep640 # JMP, \ y changes faster than x
\r
383 \ x changing faster than y
\r
384 AX BP MOV, \ for counter
\r
386 AX Delta/2 ) MOV, \ halfx
\r
387 BX BX XOR, \ clear for cmp
\r
393 Y>SegTable ) BX ADD,
\r
408 DI CX ADD, \ inc or dec x
\r
409 MAX-X 8 * # CX SUB,
\r
411 MAX-X 8 * # CX ADD,
\r
413 MAX-X 8 * # CX ADD,
\r
415 SI BX ADD, \ = bx + delta_y
\r
416 Delta/2 ) BX CMP, \ bx > halfx ?
\r
418 Delta ) BX SUB, \ bx - delta_x
\r
419 DX INC, \ y is always increasing
\r
420 MAX-Y 16* # DX CMP,
\r
434 0 VALUE
\90\81\9f¥¦
\95?
\r
436 MAX-X 8 * 2/ VALUE xOffset
\r
437 MAX-Y 16 * 2/ VALUE yOffset
\r
438 VARIABLE xCoord xOffset xCoord !
\r
439 VARIABLE yCoord yOffset yCoord !
\r
441 : ¦
\95\97i´á ( -- ) FALSE TO
\90\81\9f¥¦
\95? ;
\r
442 : ¦
\95\90\81\9da ( -- ) TRUE TO
\90\81\9f¥¦
\95? ;
\r
443 : º
\89ÑÁ¡e ( y -- ) MAX-Y SWAP - TO YTop ;
\r
444 : µ¥ÑÁ¡e ( -- ) PAGE ;
\r
446 CODE sin* (
\88á
\9f¡
\88b
\95¡ --
\88á
\9f¡*sin[
\88b
\95¡] )
\r
447 \ : sin* CELLS sin16384 + @ M* 16384 SM/REM NIP ;
\r
449 sin16384 [BX] BX MOV,
\r
461 CODE cos* (
\88á
\9f¡
\88b
\95¡ --
\88á
\9f¡*cos[
\88b
\95¡] )
\r
462 \ : cos* 90 + CELLS sin16384 + @ M* 16384 SM/REM NIP ;
\r
465 sin16384 [BX] BX MOV,
\r
477 :
\9d¡.
\8ba´á ( x y -- )
\r
478 scale / yOffset SWAP - \ x y1
\r
479 SWAP scale / xOffset + SWAP \ x1 y1
\r
480 \90\81\9f¥¦
\95? IF 2DUP xCoord @ yCoord @ line640 THEN
\r
481 yCoord ! xCoord ! ;
\r
483 :
\88á¦
\82¥¡µa ( -- )
\r
484 xCoord @ 8 ¤wз @ 270 + sin* +
\r
485 yCoord @ 8 ¤wз @ 270 + cos* -
\r
486 2DUP xCoord @ yCoord @ xline640 \ x1 y1
\r
487 xCoord @ 16 ¤wз @ sin* +
\r
488 yCoord @ 16 ¤wз @ cos* - \ x1 y1 x2 y2
\r
489 2SWAP 2OVER xline640 \ x2 y2
\r
490 xCoord @ 8 ¤wз @ 90 + sin* +
\r
491 yCoord @ 8 ¤wз @ 90 + cos* - \ x2 y2 x3 y3
\r
492 2SWAP 2OVER xline640 \ x3 y3
\r
493 xCoord @ yCoord @ xline640 ;
\r
495 : ÑÁ¡e»¡¶¡ ( -- ) YTop PAGE 0 OVER AT-XY TO YTop
\88á¦
\82¥¡µa ;
\r
498 :
\88{·e i ( xt 'name2' -- )
\r
499 DUP xt>name ?DUP 0= IF -12 THROW THEN
\r
500 SWAP head, linkLast
\r
502 040 AND IF IMMEDIATE THEN
\r
503 020 AND IF COMPILE-ONLY THEN ;
\r
506 ' IMMEDIATE
\88{·e i ¤a
\9d¡
\r
507 ' RECURSE
\88{·e i
\96A¦
\89\9cá
\r
509 ' ELSE
\88{·e i ´a
\93¡¡e
\r
510 ' THEN
\88{·e i
\9ca
\r
511 ' BEGIN
\88{·e i ·¡¹A¦
\81Èá
\r
512 ' UNTIL
\88{·e i
\8ca»¡
\r
513 ' WHILE
\88{·e i
\95·´e
\r
514 ' REPEAT
\88{·e i
\88á
\97sÐ
\81\r
516 ' LOOP
\88{·e i
\95©´a
\r
518 ' CONSTANT
\88{·e i
\8a\88·e
\88t
\r
519 ' VARIABLE
\88{·e i ¢
\81\9fe
\88t
\r
520 ' DUP
\88{·e i ¥A
\8da
\r
521 ' OVER
\88{·e i
\88å
\90á
\r
522 ' DROP
\88{·e i ¤á
\9da
\r
523 ' SWAP
\88{·e i ¤a
\8e¡
\r
524 ' ROT
\88{·e i
\95©
\9da
\r
525 ' >R
\88{·e i >
\96A
\r
526 ' R>
\88{·e i
\96A>
\r
527 ' R@
\88{·e i
\96A@
\r
528 ' AND
\88{·e i
\90{Ðq
\8dA
\r
529 ' OR
\88{·e i
\90{´a¶
\89\9cá
\r
530 ' XOR
\88{·e i
\90{
\98a
\9d¡
\r
531 ' MOD
\88{·e i
\90a ỡ
\r
532 ' CR
\88{·e i
\94a·qº
\89\r
533 ' WORDS
\88{·e i iÍa
\r
534 ' .S
\88{·e i .
\94ᣡ
\r
536 ' THEN
\88{·e i ENDIF
\r
538 ' BYE
\88{·e i
\8f{
\r
539 ' BYE
\88{·e i EXIT
\r
540 ' BYE
\88{·e i exit
\r
542 ¢
\81\9fe
\88t
\88a
\9d¡¶áá
\r
543 ¢
\81\9fe
\88t A
\9d¡¶áá
\r
545 : ¹A¸a
\9f¡
\9d¡ ( -- )
\r
554 ¦
\95\97i´á ¹A¸a
\9f¡
\9d¡ ÑÁ¡e»¡¶¡ ¦
\95\90\81\9da ;
\r
556 : ½¡
\88\85ÑÁ¡e ( -- ) 8 º
\89ÑÁ¡e ÑÁ¡e»¡¶¡ ;
\r
557 : µ¥ÑÁ¡e ( -- ) µ¥ÑÁ¡e ÑÁ¡e»¡¶¡ ;
\r
559 :
\95¡.µ¡
\9fe½¢ (
\88b
\95¡ -- )
\r
562 ¥A
\8da 0 < ¡e (
\88b
\95¡
\88a 0¥¡
\94a ¸b·a¡e)
\r
563 ·¡¹A¦
\81Èá 360 + ( 0 ·¡¬w·¡
\96I
\98\81\8ca»¡ 360·i
\94áÐq)
\r
565 ´a
\93¡¡e 360
\90a ỡ ( 0¥¡
\94a Ça¡e 360·a
\9d¡
\90a
\92\85 \90a ỡ
\9fi
\90q
\8b±)
\r
570 :
\95¡.¶E½¢ -1 *
\95¡.µ¡
\9fe½¢ ;
\r
572 : eÇq.
\88a ( dx dy -- )
\r
574 A
\9d¡¶áá @ + ( dx y+dy )
\r
575 ¥A
\8da A
\9d¡¶áá ! ( dx y+dy )
\r
576 ¤a
\8e¡
\88a
\9d¡¶áá @ + ( y+dy x+dx )
\r
577 ¥A
\8da
\88a
\9d¡¶áá ! ( y+dy x+dx )
\r
578 ¤a
\8e¡ ( x+dx y+dy )
\r
582 : ´|·a
\9d¡ ( l -- )
\r
584 ¤wз @ sin* ( l dx )
\r
586 ¤wз @ cos* ( dx dy )
\r
589 :
\96á
\9d¡ (
\88á
\9f¡ -- )
\r
592 : __µ¡
\9fe½¢.ÑÉ
\8d© (
\88á
\9f¡ ÒU®
\81 -- )
\r
593 0
\91 5
\95¡.µ¡
\9fe½¢ ¥A
\8da ´|·a
\9d¡ 5
\95¡.µ¡
\9fe½¢
\95©´a ¤á
\9da ;
\r
595 : µ¡
\9fe½¢.ÑÉ
\8d© ( ¤e»¡
\9fq
\88b
\95¡ -- )
\r
596 ¤a
\8e¡ 355 2034 */ (
\88b
\95¡
\88á
\9f¡ ) ( ÑÉ
\8d©·i 10
\95¡³¢
\90a
\92\81´á
\8ba
\9f± )
\r
597 ( 2*pi*r*
\88b
\95¡/360*10 = pi*r*
\88b
\95¡/18 )
\r
598 ( pi = 355/113 = 3.141593 )
\r
599 ¥A
\8da >
\96A (
\96A
\95©·¡
\94ᣡµA
\88á
\9f¡
\9fi
\88i¢
\81\9f¡)
\r
600 \88å
\90á 10 / (
\88b
\95¡
\88á
\9f¡ ÒU®
\81 )
\r
601 __µ¡
\9fe½¢.ÑÉ
\8d© (
\88b
\95¡ )
\r
602 10
\90a ỡ (
\88b
\95¡_
\90a ỡ )
\r
603 ¥A
\8da
\96A> (
\88b
\95¡_
\90a ỡ
\88b
\95¡_
\90a ỡ
\88á
\9f¡ )
\r
604 ( 10·a
\9d¡
\90a
\92\85 \90a ỡ
\88b
\95¡µA Ð
\81\94wÐa
\93e
\88á
\9f¡ eÇq ´|·a
\9d¡
\88q)
\r
605 * 10 / ´|·a
\9d¡ (
\88b
\95¡_
\90a ỡ )
\r
608 : µ¡
\9fe½¢.¶¥ ( ¤e»¡
\9fq -- ) 360 µ¡
\9fe½¢.ÑÉ
\8d© ;
\r
610 : __¶E½¢.ÑÉ
\8d© (
\88á
\9f¡ ÒU®
\81 -- )
\r
611 0
\91 5
\95¡.¶E½¢ ¥A
\8da ´|·a
\9d¡ 5
\95¡.¶E½¢
\95©´a ¤á
\9da ;
\r
613 : ¶E½¢.ÑÉ
\8d© ( ¤e»¡
\9fq
\88b
\95¡ -- )
\r
614 ¤a
\8e¡ 355 2034 */ (
\88b
\95¡
\88á
\9f¡ ) ( ÑÉ
\8d©·i 10
\95¡³¢
\90a
\92\81´á
\8ba
\9f± )
\r
615 ( 2*pi*r*
\88b
\95¡/360*10 = pi*r*
\88b
\95¡/18 )
\r
616 ¥A
\8da >
\96A (
\96A
\95©·¡
\94ᣡµA
\88á
\9f¡
\9fi
\88i¢
\81\9f¡)
\r
617 \88å
\90á 10 / (
\88b
\95¡
\88á
\9f¡ ÒU®
\81 )
\r
618 __¶E½¢.ÑÉ
\8d© (
\88b
\95¡ )
\r
619 10
\90a ỡ (
\88b
\95¡_
\90a ỡ )
\r
620 ¥A
\8da
\96A> (
\88b
\95¡_
\90a ỡ
\88b
\95¡_
\90a ỡ
\88á
\9f¡ )
\r
621 ( 10·a
\9d¡
\90a
\92\85 \90a ỡ
\88b
\95¡µA Ð
\81\94wÐa
\93e
\88á
\9f¡ eÇq ´|·a
\9d¡
\88q)
\r
622 * 10 / ´|·a
\9d¡ (
\88b
\95¡_
\90a ỡ )
\r
625 : ¶E½¢.¶¥ ( ¤e»¡
\9fq -- ) 360 ¶E½¢.ÑÉ
\8d© ;
\r
627 :
\91A¡¡ ( Ça
\8b¡ -- )
\r
628 4 0
\91 ¥A
\8da ´|·a
\9d¡ 90
\95¡.µ¡
\9fe½¢
\95©´a ¤á
\9da ;
\r
630 :
\89så
\91A¡¡ ( -- )
\r
631 100
\91A¡¡ 200
\91A¡¡ 300
\91A¡¡ 400
\91A¡¡ ;
\r
633 :
\94a·¡´a¡¥
\97a ( -- )
\r
635 4 0
\91 \89så
\91A¡¡ 90
\95¡.µ¡
\9fe½¢
\95©´a ;
\r
637 :
\8bµ¤i ( Ça
\8b¡ -- )
\r
638 ¥A
\8da ´|·a
\9d¡ ¥A
\8da
\91A¡¡
\96á
\9d¡ ;
\r
640 : µa¬õ
\8bµ¤i ( Ça
\8b¡ -- )
\r
641 6 0
\91 ¥A
\8da
\8bµ¤i 60
\95¡.µ¡
\9fe½¢
\95©´a ;
\r
643 : ¤a
\9cq
\88\81§¡ ( -- )
\r
644 100 µa¬õ
\8bµ¤i 400 µa¬õ
\8bµ¤i ;
\r
646 :
\8d¹·¼ ( Ça
\8b¡ -- )
\r
647 ¥A
\8da 90 µ¡
\9fe½¢.ÑÉ
\8d© 90
\95¡.µ¡
\9fe½¢
\r
648 90 µ¡
\9fe½¢.ÑÉ
\8d© 90
\95¡.µ¡
\9fe½¢ ;
\r
650 :
\8d¹ ( Ça
\8b¡ -- )
\r
651 8 0
\91 ¥A
\8da
\8d¹·¼ 45
\95¡.µ¡
\9fe½¢
\95©´a ¤á
\9da ;
\r
653 :
\94a
\9fe
\8d¹·¼ ( Ça
\8b¡ -- )
\r
654 ¥A
\8da 60 µ¡
\9fe½¢.ÑÉ
\8d© 120
\95¡.µ¡
\9fe½¢
\r
655 60 µ¡
\9fe½¢.ÑÉ
\8d© 120
\95¡.µ¡
\9fe½¢ ;
\r
657 :
\94a
\9fe
\8d¹ ( Ça
\8b¡ -- )
\r
658 6 0
\91 ¥A
\8da
\94a
\9fe
\8d¹·¼ 60
\95¡.µ¡
\9fe½¢
\95©´a ¤á
\9da ;
\r
660 : Ð
\95¬i ( Ça
\8b¡ -- )
\r
661 ¥A
\8da 90 ¶E½¢.ÑÉ
\8d© ¥A
\8da 90 µ¡
\9fe½¢.ÑÉ
\8d©
\r
662 ¥A
\8da 90 ¶E½¢.ÑÉ
\8d© 90 µ¡
\9fe½¢.ÑÉ
\8d© ;
\r
664 : Ð
\81 ( Ça
\8b¡ -- )
\r
665 9 0
\91 ¥A
\8da Ð
\95¬i 160
\95¡.µ¡
\9fe½¢
\95©´a ¤á
\9da ;
\r
667 :
\88bÑw ( Ça
\8b¡ ¡¡¬á
\9f¡®
\81 -- )
\r
668 360
\88å
\90á / ¤a
\8e¡ ( Ça
\8b¡
\95©_
\88b
\95¡ ¡¡¬á
\9f¡®
\81 )
\r
669 0
\91 \88å
\90á ´|·a
\9d¡ ¥A
\8da
\95¡.µ¡
\9fe½¢
\95©´a
\r
672 : ¥i ( ¥e·
\81_®
\81 ¡y¤å -- )
\r
673 \88å
\90á
\88å
\90á *
\r
674 0
\91 600 ´|·a
\9d¡
\88å
\90á
\88å
\90á 360 * ¤a
\8e¡ /
\95¡.µ¡
\9fe½¢
\95©´a
\r
677 :
\94a
\88bÑw ( Ça
\8b¡
\88b
\95¡ -- )
\r
678 ¤wз @ >
\96A (
\96A
\95©·¡
\94ᣡµA Àá·q ¤wз·i
\88i¢
\81\9f¡)
\r
680 \88å
\90á ´|·a
\9d¡ ¥A
\8da
\95¡.µ¡
\9fe½¢
\r
681 ¤wз @
\96A@ =
\8ca»¡ ( ¤wз·¡ Àá·q¤wз
\89Á
\88{´a»©
\98\81\8ca»¡
\96AÎ
\89·¡)
\r
682 ¤á
\9da ¤á
\9da
\96A> ¤á
\9da ; (
\88t
\94ᣡµÁ
\96A
\95©·¡
\94ᣡ
\9fi À÷¡ )
\r
684 :
\94a
\88bÑw¸a
\9cw5 5 0
\91 450 72
\94a
\88bÑw 72
\95¡.µ¡
\9fe½¢
\95©´a ;
\r
685 :
\94a
\88bÑw¸a
\9cw4 4 0
\91 700 135
\94a
\88bÑw 90
\95¡.µ¡
\9fe½¢
\95©´a ;
\r
686 :
\94a
\88bÑw¸a
\9cw12 12 0
\91 15
\95¡.µ¡
\9fe½¢ ¦
\95\97i´á 400 ´|·a
\9d¡ ¦
\95\90\81\9da
\r
687 200 135
\94a
\88bÑw 15
\95¡.µ¡
\9fe½¢
\95©´a ;
\r
689 :
\90a¢
\81 (
\88a»¡
\88b
\95¡
\88a»¡
\8b©·¡
\88a»¡Ã¡
\8b¡®
\81 -- )
\r
690 >
\96A (
\88a»¡Ã¡
\8b¡®
\81\9fi
\96A
\95©·¡
\94ᣡµA
\88i¢
\81\9f¡)
\r
691 \96A@ ¡e ( '
\96A@ 0 <> ¡e'
\89Á
\88{·q)
\r
693 ¥A
\8da 2 * ´|·a
\9d¡
\r
694 \88å
\90á
\88å
\90á
\96A@ 1 -
\96A¦
\89\9cá
\r
695 ¥A
\8da 2 *
\96á
\9d¡
\r
696 \88å
\90á 2 *
\95¡.µ¡
\9fe½¢
\r
698 \88å
\90á
\88å
\90á
\96A@ 1 -
\96A¦
\89\9cá
\r
700 ´a
\93¡¡e ¤á
\9da ¤á
\9da
\9ca
\r
703 ¢
\81\9fe
\88t §¡
\93iÇa
\8b¡ 20 §¡
\93iÇa
\8b¡ !
\r
705 ¥A
\8da 0 = ¡e §¡
\93iÇa
\8b¡ @ ´|·a
\9d¡
\r
706 ´a
\93¡¡e ¥A
\8da 0 > ¡e ¥A
\8da 1 -
\96A¦
\89\9cá (
\90a·¡-1 ¶w )
\r
708 1
\88å
\90á -
\96A¦
\89\9cá ( 1-
\90a·¡ ¶w )
\r
709 ´a
\93¡¡e -1
\88å
\90á -
\96A¦
\89\9cá ( -1-
\90a·¡ ¶w )
\r
711 1
\88å
\90á +
\96A¦
\89\9cá ( 1+
\90a·¡ ¶w )
\r
717 ." '
\93iÎ
\91'·a
\9d¡ ¼e
\88á¦
\82\8ba
\9f± Ïa
\9d¡
\8ba
\9c\91·i ¯¡¸bÐs
\93¡
\94a."
\94a·qº
\89 \94a·qº
\89\r
718 ." ¯¡Ç± i
\97i·i ¥¡
\9da¡e ' iÍa'
\9ca
\89¡ ᯡ
\89¡"
\94a·qº
\89\r
719 ." ¯¡Ç± i·i ´á
\98ý
\89A ³a
\93e»¡ ¥¡
\9da¡e '
\95¡¶
\91 i
\95¡¶
\91 i' Àá
\9cñ ᯡ
\89¡"
\94a·qº
\89\r
720 ." DOS
\9d¡
\95©´a
\88a
\9da¡e '
\8f{' ·¡
\9ca
\89¡ ᯳¯¡µ¡."
\94a·qº
\89\r
721 ."
\8ba
\9f±
\89Á
\8bi¸a
\9fi
\88{·¡ ¥¡
\9da¡e 'µ¥ÑÁ¡e'
\98a
\9d¡ ¥¡
\9da¡e '½¡
\88\85ÑÁ¡e'·¡
\9ca
\89¡ ᯳¯¡µ¡"
\r
724 300
\8d¹ 450
\8d¹ 600
\8d¹
\r
725 ¦
\95\97i´á 90
\95¡.¶E½¢ 2000 ´|·a
\9d¡ ¦
\95\90\81\9da
\r
726 900
\94a
\9fe
\8d¹ 700
\94a
\9fe
\8d¹ 500
\94a
\9fe
\8d¹
\r
727 ¦
\95\97i´á 4000
\96á
\9d¡ 90
\95¡.µ¡
\9fe½¢ ¦
\95\90\81\9da
\r
729 1
\8bi®A·³
\9db¬wÈ
\81 ! ; \ Ðe
\8bi·³
\9db
\r
735 GET-MODE TO OldMode# HGRAPHIC hi
\r
736 ." ·
\81\89e
\89Á ¹A´e
\89Á §¡Íw·i Ða·¡ÉI wykoh
\9d¡ ¥¡
\90\81 º
\81¯³¯¡µ¡." CR
\r
737 S" BLOCKS.BLK" MAPPED-TO-BLOCK
\r
740 ' TURTLE-hi TO 'boot
\r
742 (
\94a·q·i Àa
\9d\81\9d¡ ¯¡Åa¥¡¯³¯¡µ¡. )
\r
744 ( 400
\8bµ¤i 400 µa¬õ
\8bµ¤i ¤a
\9cq
\88\81§¡ )
\r
745 ( 400 3
\88bÑw 400 5
\88bÑw 400 7
\88bÑw )
\r
746 ( 5 2 ¥i 7 2 ¥i 7 3 ¥i 8 3 ¥i 9 2 ¥i 9 4 ¥i 10 3 ¥i 11 3 ¥i 11 5 ¥i )
\r
747 (
\94a
\88bÑw¸a
\9cw5 )
\r
748 (
\94a
\88bÑw¸a
\9cw5 )
\r
749 (
\94a
\88bÑw¸a
\9cw12 )
\r
750 ( 30 400 4
\90a¢
\81 )
\r
751 ( 20 250 5
\90a¢
\81 )
\r
752 ( 20 250 6
\90a¢
\81 )
\r
753 ( 50 §¡
\93iÇa
\8b¡ ! 9 ¶w )
\r
754 ( 20 §¡
\93iÇa
\8b¡ ! 12 ¶w )
\r
756 SET-CURRENT SET-ORDER
\r