Page 5 of 18

Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Fri Jun 23, 2023 10:56 pm
by ahenry3068
LOL..... I get that...... The clouds are drawn independtly of where the Gallows is going to be.
If I wrote code to completly expose them it would interfere with other code.....

Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Fri Jun 23, 2023 10:58 pm
by ahenry3068
You have no reason to be impressed... per se......lol

I'm very impressed that you've done your own compiler for 8 bit platforms.

Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Fri Jun 23, 2023 11:00 pm
by ahenry3068
The clowd locations are determined in part by RND(1) so run the code a few times.

Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Fri Jun 23, 2023 11:10 pm
by desertfish
Ah, I didn't realize the cloud position is randomized. I just had bad luck with my run then.

Also I really do like what you're making here, it may be in another class as a programming language, but that doesn't matter. I enjoyed seeing it draw the image a lot. It has a lot of charm. (despite the gruesome subject lol)

Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Fri Jun 23, 2023 11:13 pm
by ahenry3068
I know its a gruesome subject. But It's cartoonish, so I think I'll avoid PTSD for the
users of this game.. :))

Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Fri Jun 23, 2023 11:17 pm
by ahenry3068
In the next 2 weeks I'm going to make it an actual game....

But I also have my CX16 hardware on the way, and I have kinda elaborate
plans for a transparent case with logos'....

Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Fri Jun 23, 2023 11:31 pm
by ahenry3068
What do you think about the "GRASS" ... ?

Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Mon Jun 26, 2023 6:46 pm
by kelli217
ahenry3068 wrote: Fri Jun 23, 2023 11:13 pm I know its a gruesome subject. But It's cartoonish, so I think I'll avoid PST for the
users of this game.. :))
Pacific Standard Time? ;)

No, I know you meant PTSD. :D

Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Mon Jun 26, 2023 10:55 pm
by ahenry3068
I've been doing a lot of late nights on this code... :)

I probably should promise myself not to Post anymore after the 3rd Cocktail :). :)

I did indeed mean PTSD and have made the appropriate Post edit. :)


BTW.. Got hardware today DEV0056

Re: NEW GAME IN BASIC... HANGMAN EARLY DAYS.

Posted: Fri Jun 30, 2023 11:46 pm
by ahenry3068
This version doesn't do much different. But I moved the variable initialization to a Subroutine
rather than do it in the beginning of the code. Added some messages.
Code has an unused GOSUB routine to save the screen. I plan future versions
of the program to BVLOAD the background instead of drawing it. (Its quicker).

I may make the Screen Save routine accessible in the Game via a "Secret" key stroke.
When I draw the clouds and Grass they are always Random. BVLOAD will not
make them Random.

I have run the "SCREEN SAVE ROUTINE" its very slow... Takes Minutes to save everything.
BVLOAD is quick and works but I lose the Randomness of the Clouds.
Working on a Compromise.... !!!


Cleaning up to Start Game Logic

Code: Select all

10 CLS:PRINT:SCREEN $80
50 GOSUB 30000 : REM INITIALIZE ALL VARIABLES. 


60  GOSUB 5000 : REM BACKGROUND
65  GOSUB 7000 : REM GALLOWS 
70  GOSUB 8000 : REM ROPE
80  GOSUB 9500 : REM THE GUYS HEAD
85  GOSUB 10000 : REM THE TORSO
90  GOSUB 11000 : REM THE LEFT ARM
100 GOSUB 12000 : REM THE RIGHT ARM
110 GOSUB 12500 : REM THE RIGHT LEG
120 GOSUB 12620 : REM THE LEFT LEG
130 DM$="AWAITING KEY":GOSUB 20000
190 GOSUB 35000 : REM WAIT FOR KEY AFTERWARDS DRAW DEADFACE...
191 GOSUB 20100 : REM ERASE MSG. 
195 GOSUB 4000:GOSUB 35000
200 SCREEN 0:END

2998 REM CIRCLE,ELLIPSE AND ARC SUBROUTINE
2999 REM SINE/COSINE ALGORITHM
3000 Q = 1 / RA
3010 IF FILL = 1 THEN Q = .2/RA
3030 FOR I = 0 TO PI / 2 STEP Q
3040    DY = SIN(I) * RA
3050    IF YS > 0 AND YS < 1 THEN DY = DY*YS
3060    DX = COS(I) * RA
3070    IF XS > 0 AND XS < 1 THEN DX = DX*XS
3080    ZX = INT(CX - DX)
3090    ZY = INT(CY - DY)
3100    AX = INT(CX + DX)
3110    AY = INT(CY + DY)
3115    IF FILL = 1 THEN 3220
3120    IF AX<0 OR AX > XLIMIT OR AY<0 OR AY > YLIMIT OR Q4 = 0 THEN 3140
3130    PSET AX, AY, CC
3140    IF ZX<0 OR ZX>XLIMIT OR AY < 0 OR AY > YLIMIT OR Q3 = 0 THEN 3160
3150    PSET ZX, AY, CC
3160    IF AX<0 OR AX > XLIMIT OR ZY<0 OR ZY > YLIMIT OR Q2 = 0 THEN 3180
3170    PSET AX, ZY, CC
3180    IF ZX<0 OR ZX > XLIMIT OR ZY<0 OR ZY > YLIMIT OR Q1 = 0 THEN 3300
3190    PSET ZX, ZY, CC
3200    GOTO 3300
3220    IF Q4<> 0 THEN LINE CX,CY,AX,AY,CC
3225    IF Q3<> 0 THEN LINE CX,CY,ZX,AY,CC
3230    IF Q2<> 0 THEN LINE CX,CY,AX,ZY,CC
3235    IF Q1<> 0 THEN LINE CX,CY,ZX,ZY,CC
3300 NEXT I
3310 RETURN

4000 REM DEADFACE
4005 RA = 20
4010 CX = 74:CY = 63
4015 RA = RA -1
4020 RA = RA -1:RA = RA -1:XSQUISH=.8:YS=0
4030 RA = 17 :CC = $24:FILL=1:CY = CY + 1
4031 GOSUB 3000:CC=$B8:GOSUB 3000:CC=$C0:GOSUB 3000
4035 RECT 62,54,85,73,CC
4040 XS = 1:YS = XS
4045 CY = CY - 6:CX = CX - 6:RA=4:CC = $33:GOSUB 3000
4050 GOSUB 9950:REM THE PUPILS OF HIS EYES
4055 CX = CX + 12:GOSUB 3000
4060 GOSUB 9950:CX = 74:CY = 63
4065 LINE CX-1,CY, CX - 2, CY + 6, $10
4070 LINE CX+1,CY, CX + 2, CY + 6, $10
4075 LINE CX,CY,CX -1, CY + 6, $23
4080 LINE CX,CY,CX + 1, CY + 6, $23
4085 LINE CX,CY+3,CX,CY+6,$22
4090 Q3=0:Q4=0:CC=$3B:CY = CY + 13:YS=.35:RA=6:FILL=0
4095 GOSUB 3000
4100 CY = CY + 1:CC=$31:GOSUB 3000
4105 CY = CY + 1:CC=$3B:GOSUB 3000
4110 Q3=1:Q4=1:YS=0: REM REMEMBER TO TURN CIRCLE FULLY ON !!!
4200 RETURN

5000 DM$="THE SKY":GOSUB 20000
5001 RECT 0,0, XLIMIT, YLIMIT, 14 : REM THE SKY
5010 CX = 5:CY=4:CC = $10:FILL = 0:XS=0:YS=0:RA = 33
5020 GOSUB 3000:RA=RA-.5:GOSUB 3000:RA=RA-.6:GOSUB 3000:RA = RA+1.2:GOSUB 3000

5029 DM$="THE SUN":GOSUB 20000
5030 CC = $07
5035 RECT 0,0,27,25,CC:RECT 0,26,22,29,CC
5036 RECT 0,30,19,31,CC:RECT 0,32,14,33,CC
5037 RECT 28,0,34,14,CC:RECT 28,14,31,20,CC
5045 FOR RA = 31 TO 29 STEP -.75:GOSUB 3000:NEXT RA:PSET CX,CY,$07
5046 REM BRUTE FORCE, RAYS FROM THE SUN...
5050 LINE 2,36,2,42,$07:LINE 6,36,6,43,$07
5051 LINE 9,36,10,42,$07:LINE 13,36,15,41,$07
5052 LINE 15,33,18,40,$07:LINE 18,33,21,39,$07
5053 LINE 20,31,24,38,$07:LINE 22,29,27,37,$07
5054 LINE 24,27,29,35,$07:LINE 27,25,32,32,$07
5055 LINE 30,23,35,29,$07:LINE 32,21,37,26,$07
5056 LINE 33,19,39,23,$07:LINE 35,17,41,20,$07
5057 LINE 36,15,42,17,$07:LINE 36,13,43,14,$07
5058 LINE 37,11,44,11,$07:LINE 37,8,44,8,$07
5060 LINE 37,5,45,5,$07:LINE 37,2,44,2,$07

5095 GOSUB 6500:GOSUB 6500:GOSUB 6500:GOSUB 6500 REM DRAW CLOUDS
5100 DM$="GRASS":GOSUB 20000
5110 RECT 0, 180, XLIMIT, YLIMIT, $85 : REM THE GRASS
5120 FOR Y = 161 TO 179
5130     LINE 0, Y, 40, 179, 105
5140 NEXT Y
5150 FOR Y = 180 TO 150 STEP -1
5160     LINE 288,179, XLIMIT, Y, 105
5170 NEXT Y
5171 COLOR 1
5180 GOSUB 6000:REM DRAW GRASS STUFF
5190 GOSUB 6000
5200 GOSUB 6000
5210 RETURN
6000 FOR I = 1 TO 35:REM RANDOM GRASS
6110     X1 = INT(RND(1)*310) + 5
6120     Y1 = INT(RND(1)*60) + 180:IF Y1 > YLIMIT THEN GOTO 6120
6130     X2 = INT(RND(1)*310) + 5:IF X2 = X1 THEN GOTO 6130
6140     Y2 = INT(RND(1)*60) + 180:IF Y2 = Y1 OR Y2 > YLIMIT THEN GOTO 6140
6145     IF X2 - X1 > 55 OR X1 - X2 > 55 THEN GOTO 6110
6146     IF Y2 - Y1 > 12 OR Y1 - Y2 > 15 THEN GOTO 6110
6150     REM GOSUB 6400:LINE X1,Y1,X2,Y2, GC
6155     PSET X1, Y1 - 1, 133:PSET X1 , Y1-1, 104:PSET X2, Y1 - 3,107
6160     GOSUB 6200:X1=X2:Y1=Y2:GOSUB 6200
6180 NEXT I
6185 FOR I = 1 TO 10:X1=INT(RND(1)*310)+5:Y1=INT(RND(1)*4)+180
6186 GOSUB 6200:NEXT I
6190 RETURN

6200 GOSUB 6400
6210 LINE X1,Y1,X1-4,Y1-5,GC:GOSUB 6400
6215 LINE X1,Y1,X1-3,Y1-3,GC:GOSUB 6400
6220 LINE X1,Y1,X1,Y1-5,GC:GOSUB 6400
6225 LINE X1,Y1,X1+3,Y1-3,GC:GOSUB 6400
6230 LINE X1,Y1,X1+4,Y1-5,GC
6235 RETURN
6400 GC=INT(RND(1)*24)+$60:RETURN

6500 REM SUPPOSED TO BE A CLOUD HERE
6501 Q1=1:Q2=1:Q3=1:Q4=1:FILL=1
6502 DM$="CLOUDS":GOSUB 20000
6540 H = INT(RND(1)*(165))+ 45
6541 HL = INT(RND(1)*30)+25
6545 V = INT(RND(1)*30) + 6
6550 VB = INT(RND(1)*11) + 7
6555 FOR Y = V TO V+VB STEP 3
6560     FOR X = H TO H + HL STEP 4
6580         RA = INT(RND(1)*5)+3
6585         CC = INT(RND(1)*4)+ $1C
6590         CX=X
6592         CY= INT(RND(1)*4) + (Y-4):IF (CY - RA) < 0 THEN 6580
6600         GOSUB 6800
6605     NEXT X
6610 NEXT Y
6615 RETURN

6800 REM MIDPOINT CIRCLE ALGORITHM
6801 REM FILLED
6805 T1=RA/16:XA=RA:YA=0
6810 LINE CX+(XA),CY+(YA),CX-(XA),CY+(YA),CC
6815 LINE CX+(YA),CY+(XA),CX-(YA),CY+(XA),CC
6820 LINE CX+(XA),CY-(YA),CX-(XA),CY-(YA),CC
6825 LINE CX+(YA),CY-(XA),CX-(YA),CY-(XA),CC
6830 YA=YA+1
6835 T1=T1+YA
6840 T2=T1-XA
6845 IF T2 >= 0 THEN T1=T2:XA=XA-1
6850 IF XA>=YA THEN 6810
6855 RETURN

7000 REM THE GALLOWS
7001 DM$="THE GALLOWS":GOSUB 20000
7010 FRAME 189,195,285,208,$10
7020 FRAME 188,194,285,211,$10
7021 LINE  189,210,285,210,$10
7022 PSET  189,209,$10
7023 PSET  284,206,$10
7024 PSET  284,209,$10
7030 FRAME 275,21,285,207,$10
7040 FRAME 276,22,284,205,$10
7050 FRAME 67,20,285,30,$10
7060 FRAME 68,21,284,29,$10
7070 RECT  71,30,79,33,$10
7080 RECT  190,196,283,209,$53
7090 RECT  277,23,283,209,$53
7100 RECT  69,22,283,28,83
7150 RETURN

8000 REM THE ROPE
8001 DM$="THE NOOSE":GOSUB 20000
8005 FILL = 0
8010 LINE 73,33,73,53,16
8020 LINE 77,33,77,53,16
8030 RECT 74,34,76,53,87
8040 FOR Y = 38 TO 53 STEP 3
8050     LINE 73, Y, 77, Y - 3, $10
8060 NEXT Y
8070 FRAME 71,53,80, 68, 16
8080 RECT 72,54,79,68,87
8090 FOR Y = 56 TO 68 STEP 4
8100     LINE 72,Y,79, Y-4, $10
8110 NEXT Y
8120 REM THE NOOSE
8130 RA = 24
8140 YS = .38

8150 CX = 75:CY = 79:CC = 16
8160 GOSUB 3000:RA=25:GOSUB 3000
8165 RA = 24:GOSUB 3000
8170 RA = 19:GOSUB 3000
8175 RA = 18:GOSUB 3000
8180 CC = 87
8190 FOR X = 20 TO 23 STEP .4
8200     RA = X:GOSUB 3000
8210 NEXT X
9000 YS=0:RETURN
REM END ROPE

9499 REM THE FACE
9500 DM$="A TROUBLED FACE":GOSUB 20000
9501 CX = 59:CY = 60:RA = 6:XS = .4:CC = $10
9505 Q1=1:Q2=0:Q3=1:Q4=0
9510 GOSUB 3000:RA = RA - 1:GOSUB 3000

9520 RA = RA - 1:FILL = 1:CC = $25:GOSUB 3000

9530 FILL=0:CX = 89:RA = 6:CC=$10
9531 Q1=0:Q2=1:Q3=0:Q4=1
9540 GOSUB 3000:RA = RA - 1:GOSUB 3000
9550 RA = RA - 1:FILL = 1:CC = $25:GOSUB 3000
9551 Q1=1:Q2=Q1:Q3=Q1:Q4=Q1

9555 REM DRAW HIS NECK
9560 LINE 67,76,67,84,$10
9570 LINE 66,76,66,84,$10
9580 LINE 67,87,67,90,$10:LINE 66,87,66,90,$10
9590 LINE 82,76,82,84,$10
9600 LINE 83,76,83,84,$10
9605 LINE 82,87,82,90,$10:LINE 83,87,83,90,$10
9610 RECT 68,76,81,84,$25
9620 RECT 68,89,81,90,$25
9621 REM END NECK

9630 RA = 20:XS = .8:FILL = 0
9640 CC = $10:CX = 74:CY = 63
9650 GOSUB 3000:RA = RA -1:GOSUB 3000
9660 RA = RA -1:GOSUB 3000:RA = RA -1:GOSUB 3000
9665 CY = CY - 1:GOSUB 3000:CY = CY -1:GOSUB 3000:CY=CY + 2
9670 RA = RA :CC = $25:FILL=1:CY = CY + 1:GOSUB 3000
9672 RECT 62,54,85,73,CC


9680 XS = 1:YS = XS
9690 CY = CY - 6:CX = CX - 6:RA=4:CC = $01:GOSUB 3000
9700 PSET CX+4,CY,$25:GOSUB 9950:REM THE PUPILS OF HIS EYESRU
9710 CX = CX + 12:GOSUB 3000
9720 PSET CX+4,CY,$25:GOSUB 9950:CX = 74:CY = 63
9730 LINE CX-1,CY, CX - 2, CY + 6, $10
9740 LINE CX+1,CY, CX + 2, CY + 6, $10
9750 LINE CX,CY,CX -1, CY + 6, $23
9760 LINE CX,CY,CX + 1, CY + 6, $23
9770 LINE CX,CY+3,CX,CY+6,$22
9780 Q3=0:Q4=0:CC=$10:CY = CY + 13:YS=.35:RA=6:FILL=0
9790 GOSUB 3000
9800 CY = CY + 1:CC=$31:GOSUB 3000
9805 CY = CY + 1:CC=$10:GOSUB 3000
9806 Q3=1:Q4=1:YS=0: REM REMEMBER TO TURN CIRCLE FULLY ON !!!
9810 RETURN
9949 REM THE PUPILS
9950 PSET CX,CY, $10:PSET CX -1,CY,$10
9955 PSET CX,CY -1,$10:PSET CX - 1, CY -1 ,$10
9960 RETURN
REM END FACE


9999 REM THE TORSO
10000 DM$="TORSO":GOSUB 20000
10001 LINE 82,90,105,93,$10
10005 LINE 83,91,105,94,$10

10010 LINE 68,90,42,93, $10
10015 LINE 69,91,42,94, $10

10020 LINE 67,90,74,105,$10
10025 LINE 83,90,74,105,$10

10026 REM THIS FOR LOOP FILLS IN THE NECKLINE
10030 FOR X = 81 TO 68 STEP -1
10035     LINE 75,103,X, 90, $25
10040 NEXT X

10053 LINE 74,105,72,110,$10
10054 LINE 72,110,72,141,$10

10055 LINE 72,141,53,144,$10
10060 LINE 53,144,53,108,$10

10065 RECT 71,140,54,103,$08
10066 LINE 54,141,68,141,$08
10067 LINE 54,142,62,142,$08
10068 LINE 54,143,56,143,$08
10069 PSET 65,91,$10
10070 LINE 72,102,72,108,$08
10071 LINE 73,104,73,106,$08

10072 PSET 74,109,$08

10073 RECT 47,107,68,94,$08
10074 RECT 69,96,69,99,$08
10076 RECT 42,107,48,95,$08
10077 LINE 56,93,67,93, $08:PSET 55,92,$10:PSET 64,91,$10
10078 LINE 65,92,67,92, $08
10079 RECT 68,100,71,102,$08
10080 LINE 70,98,70,100, $08

10090 RECT 73,110,91,140,$08
10095 RECT 75,105,91,109,$08

10120 RECT 88, 94, 101, 106, $08
10125 RECT 81, 95, 105, 106, $08
10130 LINE 80, 96, 80, 105, $08
10135 LINE 79,98,79,105, $08
10140 LINE 78,100,78,105,$08
10145 LINE 77,101,77,105,$08
10150 LINE 76,103,76,105,$08
10155 LINE 74,103,75,103, $10
10160 PSET 76,101,$10:PSET 73,101,$10:PSET 72,99,$10:PSET 71,97,$10
10165 PSET 70,95,$10:PSET 69,93,$10:PSET 81,92,$10:PSET 80,94,$10
10166 PSET 80,96,$10:PSET 78,97,$10:PSET 77,99,$10
10167 LINE 76,100,76,103,$10

10175 RECT 82, 94, 93, 93, $08
10180 LINE 83, 92, 86, 92, $08
10185 LINE 74, 107,74, 108,$08
10190 PSET 73,109,$10
10195 PSET 73,141,$10

10200 LINE 76,141,91,141,$08
10205 LINE 81,142,91,142,$08
10210 LINE 89,143,91,143,$08

10360 LINE 74,141,92,144,$10
10365 LINE 92,144,92,107,$10
12366 PSET 73,141,$10 : REM STRAY PIXEL AT WAISTLINE

REM SHIRT BUTTONS
10370 CC = 16:RA = 1
10375 CX = 76:FILL = 1
10385 FOR CY = 112 TO 142 STEP 8
10390     GOSUB 3000
10400 NEXT CY

REM POCKET AND PRISONER NUMBER
10410 LINE 58,108,68,108,$10
10415 LINE 58,108,58,116,$10
10420 LINE 68,108,68,116,$10
10425 Q1=0:Q2=0:Q3=1:Q4=1:RA=4.5:XSQUISH = 0:YSQUISH=.6
10430 CX = 63:CY=116:CC=$10:FILL=0
10435 GOSUB 3000
10440 CHAR 57,106,$10,"P-1"
10600 RETURN

10999 REM ARM ON THE RIGHT (LEFT ARM)
11000 Q1=0:Q2=1:Q3=0:Q4=0:FILL = 0
11005 DM$="LEFT ARM":GOSUB 20000
11010 XSQUISH = .52
11020 RA = 16:CC=$10
11030 CY = 116:CX = 92
11035 GOSUB 3000:RA=RA+.6
11040 GOSUB 3000
11060 RA=RA-1:GOSUB 3000
11090 XSQUISH=.28:CX = 106:CY = 105:FILL=0
11095 GOSUB 3000
11096 FOR L = 1 TO 3:RA=RA+.5:GOSUB 3000:NEXT L
11100 CC = $08:Q1=0:Q2=1:Q3=0:Q4=0
11105 FOR RA = 14 TO 12 STEP -.7
11110   GOSUB 3000:IF RA =12 THEN Q1=1
11115 NEXT RA
11116 RECT CX-1,CY-3,CX+1,CY-7,$08
11120 LINE 99,115,99,133,$10
11130 LINE 111,102,111,133,$10
11135 RECT 100,102,110,133,$08
11140 LINE 99,107,99,109,$08
11145 LINE 98,108,101,108,$08
11150 LINE 97,107,100,107,$08 :PSET 94,107,$0E
11155 LINE 99,134,111,134,$10

11159 REM (THE LEFT HAND)
11160 LINE 101,134,101,143,$10
11165 LINE 101,143,103,143,$10
11166 LINE 102,142,102,139,$25

11170 LINE 103,144,103,140,$10
11175 LINE 103,145,105,145,$10
11176 LINE 104,144,104,139,$25

11180 LINE 105,146,105,140,$10
11185 LINE 105,146,107,146,$10
11186 LINE 106,145,106,139,$25

11190 LINE 107,146,107,140,$10
11195 LINE 107,145,109,145,$10
11196 LINE 108,144,108,139,$25

11200 LINE 109,145,109,134,$10
11205 RECT 102,139,108,135,$25
11210 RETURN

11999 REM ARM ON THE LEFT (RIGHT ARM)
12000 Q1=1:Q2=0:Q3=0:Q4=0:FILL = 0
12010 XSQUISH = .52
12020 RA = 16:CC=$10
12030 CY = 118:CX = 54
12031 DM$="RIGHT ARM":GOSUB 20000
12035 GOSUB 3000:RA=RA+.6
12040 GOSUB 3000
12060 RA=RA-1:GOSUB 3000
12090  XSQUISH=.43:CX = 42:CY = 105:FILL=0

12095  GOSUB 3000
12096  FOR L = 1 TO 3:RA=RA+.3:GOSUB 3000:NEXT L
12100  CC = $08:Q1=1:Q2=0:Q3=0:Q4=0
12105  FOR RA = 14 TO 12 STEP -.7
12110   GOSUB 3000:IF RA =12 THEN Q1=1
12115  NEXT RA
12116  RECT CX-4,CY-8,CX+3,CY+6,$08
12117  RECT CX-4,CY-4,CX,CY+6,$08
12120  LINE 34,102,34,133,$10
12130  LINE 46,115,46,133,$10
12135  RECT 35,102,45,133,$08
12136  LINE 34,134,46,134,$10
12140  LINE 46,CY,46,CY+6,$08
12142  LINE 47,CY,47,CY+5,$08
12145  RECT 47,CY,49,CY+3,$08
12150  LINE 51,CY+4,52,CY+4,$0E
12155  PSET 48,CY+4, $08

12159 REM (THE LEFT HAND)
12160 LINE 44,134,44,143,$10
12165 LINE 44,143,42,143,$10
12166 LINE 43,142,43,139,$25

12170 LINE 42,140,42,145,$10
12175 LINE 42,145,40,145,$10
12176 LINE 41,144,41,139,$25

12180 LINE 40,146,40,140,$10
12185 LINE 40,146,38,146,$10
12186 LINE 39,145,39,139,$25

12190 LINE 38,146,38,140,$10
12195 LINE 38,145,36,145,$10
12196 LINE 37,144,37,139,$25

12200 LINE 36,145,36,134,$10
12205 RECT 43,139,37,135,$25
12210 RETURN

12499 REM RIGHT LEG
12500 Q1=1:Q2=0:Q3=0:Q4=0
12505 CC=$10:CX=74:CY=159:RA=8:XQUISH=.10
12506 DM$="RIGHT LEG":GOSUB 20000
12510 GOSUB 3000
12515 LINE 70,159,70,192,$10
12520 LINE 55,145,53,192,$10
12525 LINE 53,193,70,193,$10
12530 RECT 56,145,69,192,$46
12535 LINE 55,157,55,192,$46
12540 LINE 54,181,54,192,$46

12555 LINE 57,144,71,144,$46
12560 RECT 69,142,71,154,$46
12565 RECT 72,142,73,153,$46
12570 LINE 63,143,68,143,$46
12575 PSET 70,155,$46

12579 REM THE FOOT
12580 Q1=1:Q2=1:Q3=1:Q4=1:RA=20:XS=.35:CC=$10:FILL=1:CX=62:CY=208
12585 GOSUB 3000:RA=RA+1:FILL=0:CC=$12:GOSUB 3000:FILL=1
12590 XS=.38:CY=204:CC=$1C:RA=11:GOSUB 3000
12591 RA = RA + 1:CC=$12:FILL=0:GOSUB 3000
12595 LINE 57,193,57,202,$10
12600 LINE 66,193,66,202,$10
12605 RECT 58,194,65,200,$1C
12610 RETURN


12619 REM LEFT LEG
12620 Q1=0:Q2=1:Q3=0:Q4=0
12625 CC=$10:CX=74:CY=159:RA=8:XQUISH=.10
12626 DM$="LEFT LEG":GOSUB 20000
12630 GOSUB 3000
12635 LINE 77,157,77,192,$10
12640 LINE 90,145,92,192,$10
12645 LINE 77,193,92,193,$10
12650 RECT 78,145,89,192,$46
12655 LINE 90,157,90,192,$46
12660 LINE 91,181,91,192,$46

12665 LINE 74,144,88,144,$46
12670 RECT 76,143,79,154,$46
12675 RECT 74,142,76,153,$46
12680 LINE 74,143,82,143,$46
12685 LINE 77,154,77,156,$46

12689 REM THE FOOT
12690 Q1=1:Q2=1:Q3=1:Q4=1:RA=20:XS=.35:CC=$10:FILL=1
12695 CX=85:CY=208
12700 GOSUB 3000
12705 RA=RA+1:FILL=0:CC=$12:GOSUB 3000:FILL=1
12710 XS=.38:CY=204:CC=$1C:RA=11:GOSUB 3000
12715 RA = RA + 1:CC=$12:FILL=0:GOSUB 3000
12720 LINE 80,193,80,202,$10
12725 LINE 89,193,89,202,$10
12730 RECT 81,194,88,200,$1C
12740 RETURN

15000 OPEN 8,8,8,"BG.DAT,S,W"
15010 FOR P = 0 TO 65535
15020   PRINT#8,CHR$(VPEEK(0,P));
15021   PRINT ST,P
15030 NEXT P
15040 FOR P = 0 TO 11264
15050   PRINT#8,CHR$(VPEEK(1,P));
15051   PRINT ST,P,
15060 NEXT P
15070 CLOSE 8
15080 RETURN

20000 COLOR 1,0
20005 GOSUB 20100
20010 LOCATE 30,2:PRINT "DRAWING: ";DM$;
20020 RETURN

20100 LOCATE 30,2:PRINT "                                                  ";
20101 RETURN

29999 REM SETUP INITIAL VARIABLES   
30000 XLIMIT=319:YLIMIT=239
30010 PI=3.1416
30020 Q1=1:Q2=1:Q3=1:Q4=1: REM DRAW ALL CIRCLE QUARTERS TO START
30021                      REM NECESSARY FOR CIRCLE ROUTINE AT GOSUB 3000 
30030 MW = 12
30035 MC = 32   : REM MAX LENGTH OF WORD AND CLUE.   
30200 RETURN 

35000 GET X$:IF X$<>"" THEN 35000 : REM FLUSH THE KEYBOARD BUFFER
35010 GET X$:IF X$="" THEN 35010 : REM WAIT FOR KEYBOARD
35020 RETURN
Since there is hardware out there... Attaching the Tokenized Files. Just copy to SD card to run on Hardware