<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Sample Programs</title><link>https://sourceforge.net/p/imeight/wiki/Sample%2520Programs/</link><description>Recent changes to Sample Programs</description><atom:link href="https://sourceforge.net/p/imeight/wiki/Sample%20Programs/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 29 Sep 2021 13:04:19 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/imeight/wiki/Sample%20Programs/feed" rel="self" type="application/rss+xml"/><item><title>Sample Programs modified by Csaba Skrabák</title><link>https://sourceforge.net/p/imeight/wiki/Sample%2520Programs/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v21
+++ v22
@@ -856,7 +856,7 @@
 @PUZZ
 DIM P$(SIZE, SIZE)
 FREE = SIZE*SIZE
-PRINT "*"
+PRINT "WORKING..."
 FOR W=1 TO WORDS
   @WORD
   W$=W$(W)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Csaba Skrabák</dc:creator><pubDate>Wed, 29 Sep 2021 13:04:19 -0000</pubDate><guid>https://sourceforge.net0e5295ce9e7179ebfdc52b9b70843096b26b06be</guid></item><item><title>Sample Programs modified by Csaba Skrabák</title><link>https://sourceforge.net/p/imeight/wiki/Sample%2520Programs/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v20
+++ v21
@@ -813,6 +813,7 @@
 ~~~

 #Word Puzzle Generator
+~~~
 PRINT "WORD PUZZLE GENERATOR"

 DIM DIR$(8)
@@ -901,3 +902,4 @@
 FOR W=1 TO WORDS
   PRINT W$(W) + ": " + KEY$(W)
 NEXT W
+~~~
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Csaba Skrabák</dc:creator><pubDate>Wed, 29 Sep 2021 12:30:39 -0000</pubDate><guid>https://sourceforge.net8081af3e23d89677d5402c3ce594c8d069ea21f3</guid></item><item><title>Sample Programs modified by Csaba Skrabák</title><link>https://sourceforge.net/p/imeight/wiki/Sample%2520Programs/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v19
+++ v20
@@ -811,3 +811,93 @@
 00000000000000000000000000000000
 00000000000000000000000000000000
 ~~~
+
+#Word Puzzle Generator
+PRINT "WORD PUZZLE GENERATOR"
+
+DIM DIR$(8)
+DIR$(0)="RIGHT"
+DIR$(1)="RIGHT DOWN"
+DIR$(2)="DOWN"
+DIR$(3)="LEFT DOWN"
+DIR$(4)="LEFT"
+DIR$(5)="LEFT UP"
+DIR$(6)="UP"
+DIR$(7)="RIGHT UP"
+
+DIM DX(8):DIM DY(8)
+DX(0)=1:DY(0)=0
+DX(1)=1:DY(1)=1
+DX(2)=0:DY(2)=1
+DX(3)=-1:DY(3)=1
+DX(4)=-1:DY(4)=0
+DX(5)=-1:DY(5)=-1
+DX(6)=0:DY(6)=-1
+DX(7)=1:DY(7)=-1
+
+DIM W$()
+WORDS = 0
+LONGEST = 0
+TOT = 0
+@INWD
+W = WORDS + 1
+INPUT "WORD " + W, W$(W)
+L = LEN(W$(W))
+TOT = TOT + L
+IF LONGEST &amp;lt; L THEN LONGEST=L
+IF L &amp;gt; 0 THEN WORDS = WORDS + 1:GOTO INWD
+DIM KEY$(WORDS)
+
+@INSZ
+INPUT "PUZZLE SIZE", SIZE
+IF SIZE &amp;lt; LONGEST OR SIZE*SIZE &amp;lt; TOT T.PRINT "TOO SMALL":G.INSZ
+
+@PUZZ
+DIM P$(SIZE, SIZE)
+FREE = SIZE*SIZE
+PRINT "*"
+FOR W=1 TO WORDS
+  @WORD
+  W$=W$(W)
+  L=LEN(W$)
+
+  @POS
+  IF TOT &amp;gt; FREE OR RND(SIZE*SIZE*5) = 0 THEN W=WORDS + 1:NEXT W:GOTO PUZZ
+  X=RND(SIZE)
+  Y=RND(SIZE)
+  DIR=RND(8)
+  DX=DX(DIR)
+  DY=DY(DIR)
+  IF X + (L - 1)*DX &amp;lt; 0 T.G.POS
+  IF X + (L - 1)*DX &amp;gt;= SIZE T.G.POS
+  IF Y + (L - 1)*DY &amp;lt; 0 T.G.POS
+  IF Y + (L - 1)*DY &amp;gt;= SIZE T.G.POS
+
+  KEY$(W) = "FROM ROW " + (Y + 1) + ", COL " + (X + 1) + " " + DIR$(DIR)
+
+  FOR LTR=1 TO L
+    LTR$=MID$(W$, LTR, 1)
+    IF INI(P$(X, Y))=0 THEN P$(X, Y)=LTR$:FREE = FREE - 1
+    IF P$(X, Y)&amp;lt;&amp;gt;LTR$ THEN LTR=L + 1:NEXT LTR:GOTO WORD
+    X=X + DX
+    Y=Y + DY
+  NEXT LTR
+
+  TOT = TOT - L
+NEXT W
+
+PRINT
+FOR Y=0 TO SIZE - 1
+  LINE$="  "
+  FOR X=0 TO SIZE - 1
+    IF INI(P$(X, Y))=0 THEN P$(X, Y)=CHR$(65 + RND(26))
+   LINE$=LINE$ + P$(X, Y)
+  NEXT X
+  PRINT LINE$
+NEXT Y
+
+PRINT
+
+FOR W=1 TO WORDS
+  PRINT W$(W) + ": " + KEY$(W)
+NEXT W
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Csaba Skrabák</dc:creator><pubDate>Wed, 29 Sep 2021 12:29:45 -0000</pubDate><guid>https://sourceforge.nete75c3c3a80c6baf92262d4d2a4c8c215ce7d4bfa</guid></item><item><title>Sample Programs modified by Csaba Skrabák</title><link>https://sourceforge.net/p/imeight/wiki/Sample%2520Programs/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v18
+++ v19
@@ -765,7 +765,7 @@
 FOR TY=12 TO -11 STEP -1:FOR TX=-12 TO 11
   SX=TX*COS(ANGLE)-TY*SIN(ANGLE)
   SY=TX*SIN(ANGLE)+TY*COS(ANGLE)
-  SI=INT(12+SX+24*INT(12-SY))
+  SI=INT(12.5+SX+24*INT(12.5-SY))
   IF SI MOD 2 = 0 THEN NIB(TI MOD 2)=INT(PEEK(SA+SI/2)/16)
   IF SI MOD 2 THEN NIB(TI MOD 2)=PEEK(SA+(SI-1)/2) AND 15
   IF SX&amp;lt;-12 OR SX&amp;gt;11 OR SY&amp;lt;-11 OR SY&amp;gt;12 THEN NIB(TI MOD 2)=0
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Csaba Skrabák</dc:creator><pubDate>Thu, 06 May 2021 09:11:51 -0000</pubDate><guid>https://sourceforge.net73aa2d93122618898b0b09211980efed562c62a2</guid></item><item><title>Sample Programs modified by Csaba Skrabák</title><link>https://sourceforge.net/p/imeight/wiki/Sample%2520Programs/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v17
+++ v18
@@ -790,7 +790,7 @@
 WORD$(WC)=MID$(LINE$, WS, I-WS):WC=WC+1:WS=I
 R.
 ~~~
-And copy the cursor design to 18432 (select and copy the code below &amp;gt; Design Util &amp;gt; on the Memory Map, select 1st slot on the 5th line &amp;gt; push MODE repeatedly until hex input appears &amp;gt; paste):
+And copy the cursor design to 18432 (select and copy the code below &amp;gt; Design Util &amp;gt; on the Memory Map, select 1st slot on the 5th line &amp;gt; push MODE repeatedly until hex input appears &amp;gt; select all hex &amp;gt; paste &amp;gt; PUT):
 ~~~
 00000000000000000000000000000000
 00000000000000000000000000000000
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Csaba Skrabák</dc:creator><pubDate>Tue, 04 May 2021 16:10:14 -0000</pubDate><guid>https://sourceforge.net80b1f18cfee7dc47d5731ade879e0eb0964c8039</guid></item><item><title>Sample Programs modified by Csaba Skrabák</title><link>https://sourceforge.net/p/imeight/wiki/Sample%2520Programs/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v16
+++ v17
@@ -775,7 +775,7 @@

 REM * TURTLE DISPLAY *
 @CURSOR 'TAKES X, Y, ANGLE
-SPRX(0)=X+180:SPRY(0)=Y-12:SPRDGN(0)=288*(64+INT(ANGLE/PI*32+.5))
+SPRX(0)=X+180:SPRY(0)=Y-12:SPRDGN(0)=288*(64+INT(ANGLE/PI*32+.5) MOD 64)
 R.

 REM * COMMAND LINE PARSING *
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Csaba Skrabák</dc:creator><pubDate>Tue, 04 May 2021 15:40:54 -0000</pubDate><guid>https://sourceforge.neta2a6521d5bb7ade676964db77d959595377d2a3f</guid></item><item><title>Sample Programs modified by Csaba Skrabák</title><link>https://sourceforge.net/p/imeight/wiki/Sample%2520Programs/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v15
+++ v16
@@ -790,7 +790,7 @@
 WORD$(WC)=MID$(LINE$, WS, I-WS):WC=WC+1:WS=I
 R.
 ~~~
-And copy the cursor design to 18432 (select and copy the code below &amp;gt; Design Util &amp;gt; push MODE repeatedly until hex input appears &amp;gt; paste):
+And copy the cursor design to 18432 (select and copy the code below &amp;gt; Design Util &amp;gt; on the Memory Map, select 1st slot on the 5th line &amp;gt; push MODE repeatedly until hex input appears &amp;gt; paste):
 ~~~
 00000000000000000000000000000000
 00000000000000000000000000000000
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Csaba Skrabák</dc:creator><pubDate>Tue, 04 May 2021 15:09:10 -0000</pubDate><guid>https://sourceforge.net80e197154774b087629b358f2c6c9d64351aa809</guid></item><item><title>Sample Programs modified by Csaba Skrabák</title><link>https://sourceforge.net/p/imeight/wiki/Sample%2520Programs/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v14
+++ v15
@@ -790,7 +790,7 @@
 WORD$(WC)=MID$(LINE$, WS, I-WS):WC=WC+1:WS=I
 R.
 ~~~
-And copy the cursor design to 18432:
+And copy the cursor design to 18432 (select and copy the code below &amp;gt; Design Util &amp;gt; push MODE repeatedly until hex input appears &amp;gt; paste):
 ~~~
 00000000000000000000000000000000
 00000000000000000000000000000000
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Csaba Skrabák</dc:creator><pubDate>Tue, 04 May 2021 15:07:31 -0000</pubDate><guid>https://sourceforge.netf3e0d51adb3827ea5730603ce1be7f1121b22bbd</guid></item><item><title>Sample Programs modified by Csaba Skrabák</title><link>https://sourceforge.net/p/imeight/wiki/Sample%2520Programs/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v13
+++ v14
@@ -790,3 +790,24 @@
 WORD$(WC)=MID$(LINE$, WS, I-WS):WC=WC+1:WS=I
 R.
 ~~~
+And copy the cursor design to 18432:
+~~~
+00000000000000000000000000000000
+00000000000000000000000000000000
+00000000000000000000000000000000
+00000000000000000000000000000ff7
+000000000000000000000f7ff7000000
+00000000000007f07ff7000000000000
+000000f7007ff70000000000000000f7
+00007ff7000000000000007f0000007f
+f70000000000000f700000007ff70000
+0000000f70000000007ff0000000000f
+700000007ff700000000007f0000007f
+f7000000000000f700007ff700000000
+000000f7007ff70000000000000007f0
+7ff700000000000000000f7ff7000000
+0000000000000ff70000000000000000
+00000000000000000000000000000000
+00000000000000000000000000000000
+00000000000000000000000000000000
+~~~
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Csaba Skrabák</dc:creator><pubDate>Tue, 04 May 2021 13:54:45 -0000</pubDate><guid>https://sourceforge.net1d1dd569b21f00e479dd56cce36c0c1cf6c85d81</guid></item><item><title>Sample Programs modified by Csaba Skrabák</title><link>https://sourceforge.net/p/imeight/wiki/Sample%2520Programs/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v12
+++ v13
@@ -660,3 +660,133 @@
 R.
 RUN
 ~~~
+#LOGO graphics
+~~~
+REM * PLACE TILES FOR PIXEL GRAPHICS *
+I=0
+FOR RO=0 TO 7
+  FOR CO=0 TO 7
+    TILE(RO, CO + 8) = 288*I
+    I=I+1
+N.:N.
+
+FOR RO=0 TO 26:TEXTLINE$(RO)="":N.
+CURSORY=23
+
+REM * PRECALC ROTATED CURSOR SPRITES *
+TA=18720
+FOR I=1 TO 63
+SA=18432:ANGLE=I*PI/32:GOSUB SPRROT:TA=TA+288
+N.
+
+REM * INITIALIZE TURTLE AND SCREEN *
+GOSUB WIPE
+GOSUB HOME
+GOSUB PD
+COLOR=$E
+GOSUB CURSOR
+
+REM * MAIN LOOP *
+@ASK
+INPUT "", LINE$
+GOSUB PARSE
+IF WORD$(1)="FD" OR WORD$(1)="FORWARD" THEN GOSUB FD
+IF WORD$(1)="BK" OR WORD$(1)="BACK" THEN GOSUB BK
+IF WORD$(1)="LT" OR WORD$(1)="LEFT" THEN GOSUB LT
+IF WORD$(1)="RT" OR WORD$(1)="RIGHT" THEN GOSUB RT
+IF WORD$(1)="HOME" THEN GOSUB HOME
+IF WORD$(1)="CS" OR WORD$(1)="CLEARSCREEN" THEN GOSUB HOME:GOSUB WIPE
+IF WORD$(1)="CLEAN" THEN GOSUB WIPE
+IF WORD$(1)="PC" OR WORD$(1)="COLOR" THEN GOSUB PC
+IF WORD$(1)="PU" OR WORD$(1)="PENUP" THEN GOSUB PU
+IF WORD$(1)="PD" OR WORD$(1)="PENDOWN" THEN GOSUB PD
+GOSUB CURSOR
+GOSUB CLEAN
+GOTO ASK
+
+REM * COMMAND IMPLEMENTATIONS *
+
+@FD:R=WORD$(2):IF DOWN THEN GOSUB LINE:R.
+X=X+R*COS(ANGLE)
+Y=Y+R*SIN(ANGLE)
+R.
+
+@BK:R=WORD$(2):IF DOWN THEN ANGLE=ANGLE+PI:GOSUB LINE:ANGLE=ANGLE-PI:R.
+X=X-R*COS(ANGLE)
+Y=Y-R*SIN(ANGLE)
+R.
+
+@LT:ANGLE=ANGLE-WORD$(2)*PI/180:R.
+@RT:ANGLE=ANGLE+WORD$(2)*PI/180:R.
+@HOME:X=96:Y=144:ANGLE=3*PI/2:R.
+
+@PU:DOWN=0:R.
+@PD:DOWN=1:R.
+
+@PC:COLOR=WORD$(2):R.
+
+@WIPE 'CS COMMAND
+FOR A=0 TO 18431:POKE A,0:N.A
+R.WIPE
+
+REM * GRAPHICS ROUTINES *
+@LINE 'TAKES X, Y, ANGLE, R, COLOR
+ON INT((ANGLE/PI*2)+.5) MOD 2 GOTO VLINE, HLINE
+
+@HLINE
+TX=X+R*COS(ANGLE)
+VX=SGN(COS(ANGLE))
+VY=SIN(ANGLE)
+@HLOOP
+GOSUB SETPIXEL
+IF X*VX&amp;gt;=TX*VX T.X=TX:R.LINE
+X=X+VX:Y=Y+VY
+GOTO HLOOP
+
+@VLINE
+TY=Y+R*SIN(ANGLE)
+VY=SGN(SIN(ANGLE))
+VX=COS(ANGLE)
+@VLOOP
+GOSUB SETPIXEL
+IF Y*VY&amp;gt;=TY*VY T.Y=TY:R.LINE
+X=X+VX:Y=Y+VY
+GOTO VLOOP
+
+@SETPIXEL 'TAKES X, Y, COLOR
+A=288*(8*INT(Y/24)+INT(X/24))+12*(INT(Y) MOD 24)+INT((INT(X) MOD 24)/2)
+IF INT(X) MOD 2 THEN POKE A, PEEK(A) AND %11110000 OR COLOR:RETURN
+POKE A, PEEK(A) AND %00001111 OR (16*COLOR):RETURN
+
+@CLEAN:FOR RO=0 TO 23:TEXTLINE$(RO)=LEFT$(TEXTLINE$(RO), 24):N.:R.
+
+@SPRROT 'TAKES SA (SOURCE ADDRESS), TA (TARGET ADDRESS), ANGLE
+TI=0:DIM NIB(2)
+FOR TY=12 TO -11 STEP -1:FOR TX=-12 TO 11
+  SX=TX*COS(ANGLE)-TY*SIN(ANGLE)
+  SY=TX*SIN(ANGLE)+TY*COS(ANGLE)
+  SI=INT(12+SX+24*INT(12-SY))
+  IF SI MOD 2 = 0 THEN NIB(TI MOD 2)=INT(PEEK(SA+SI/2)/16)
+  IF SI MOD 2 THEN NIB(TI MOD 2)=PEEK(SA+(SI-1)/2) AND 15
+  IF SX&amp;lt;-12 OR SX&amp;gt;11 OR SY&amp;lt;-11 OR SY&amp;gt;12 THEN NIB(TI MOD 2)=0
+  IF TI MOD 2 THEN POKE TA+(TI-1)/2,NIB(0)*16 OR NIB(1):DIM NIB()
+  TI = TI+1
+N.:N.:R.
+
+REM * TURTLE DISPLAY *
+@CURSOR 'TAKES X, Y, ANGLE
+SPRX(0)=X+180:SPRY(0)=Y-12:SPRDGN(0)=288*(64+INT(ANGLE/PI*32+.5))
+R.
+
+REM * COMMAND LINE PARSING *
+@PARSE 'TAKES LINE$
+DIM WORD$()
+WC=1:WS=1
+FOR I=1 TO LEN(LINE$)
+IF MID$(LINE$, I, 1)&amp;lt;&amp;gt;" " THEN N.:GOTO STOREWORD
+GOSUB STOREWORD:N.
+
+@STOREWORD
+WORD$(WC)=MID$(LINE$, WS, I-WS):WC=WC+1:WS=I
+R.
+~~~
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Csaba Skrabák</dc:creator><pubDate>Tue, 04 May 2021 13:52:31 -0000</pubDate><guid>https://sourceforge.net40c338365f7310b9bce7a506eb80bdb284d6f552</guid></item></channel></rss>