Did some small tweaks on DEADFACE routine. (GOSUB 4000)
Though I haven't wrote any Game Logic yet. I did start working on the UI layout.
and put in a display at the very end to show that.
Code: Select all
10 CLS:PRINT:SCREEN $80
15 DIM EC%(15)
50 GOSUB 59000 : 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:GOSUB 60000
135 GOSUB 20100
140 GOSUB 4000
150 GOSUB 4200
155 GOSUB 59300
160 COLOR 1,6
161 LOCATE 6,14:PRINT " ";
162 LOCATE 7,14:PRINT " WORKING WORD HERE ";
163 LOCATE 8,14:PRINT " ";
165 DM$=" CLUE GOES HERE : ANY KEY TO END DEMO":GOSUB 20000
200 GOSUB 60000
205 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
REM DEADFACE
4000 P1=$24:P2=$FF:J=4:GOSUB 40200
4010 P1=$3B:P2=$FE:J=4:GOSUB 40200
4011 P1=$01:J=5:GOSUB 40200
4012 P1=$3A:J=3:GOSUB 40200
4013 P1=$15:J=5:GOSUB 40200
4014 P1=$3B:J=7:GOSUB 40200
4015 P1=$23:P2=$FF:J=8:GOSUB 40200
4016 P1=$B8:J=7:GOSUB 40200
4020 P1=$BF:GOSUB 40200
4030 P1=$C0:GOSUB 40200
4100 RETURN
REM EYE PULSING WHILE WAIT FOR KEY
4200 P2=$FE
4205 GET X$:IF X$<>"" THEN 4205
4210 GET X$
4215 IF X$<>"" THEN RETURN
4220 I=INT(RND(1)*15)+1
4225 P1 = EC%(I):J=INT(RND(1)*3)+2
4230 GOSUB 40200
4235 GOTO 4210
REM IY LOCATE Y LOCATION
REM IX LOCATE X LOCATION
REM ML MAX LENGTH OF STRING TO GET (1 TO 80)
REM IT TYPE OF INPUT 1=ALPHA ONLY, 2=NUMERIC(INCLUDE 1 AND ONLY 1 DECIMAL
REM POINT)
REM 3=ALPHANUMERIC, 4=LINE INPUT(CAN INCLUDE SPACE AND
REM TAB AND PUNCTUATION MARKS)
REM IS$ THE STRING TO RETURN
REM AC ADD CHAR 1=YES
REM ID DECIMAL DONE 1=YES
REM SPECIALIZED INPUT ROUTINE
4800 GET X$:IF X$<>"" THEN 4800 : REM FLUSH KEYBOARD BUFFER
4801 IS$="":ID=0: REM BEFORE INPUT BEGINS
4805 GOSUB 4920 : REM CLEAR THE INPUT AREA.
4810 GET X$:IF X$="" THEN 4810
4811 C=ASC(X$)
4815 IF WL=ML THEN
4820 AC=0
4830 IF (IT<>2 OR IT=3) AND C>=65 AND C<=90 THEN AC=1
4835 IF (IT=2 OR IT=4 OR IT=3) AND C>=48 AND C<=57 THEN AC=1
4840 IF (IT=2) AND C=46 AND ID=0 THEN AC=1:ID=1
4845 IF (IT=4) AND C=32 THEN AC = 1: REM ALLOW SPACES WHEN INPUTTING A LINE
4846 IF (IT=4) AND (C>=35 AND C<=47) THEN AC=1
4847 IF (IT=4) AND (C>=58 AND C<=63) THEN AC=1 : REM ALLOW PUNCS IN STRING.
4850 IF C=13 THEN RETURN
4855 IF AC=1 AND LEN(IS$)<ML THEN PRINT CHR$(C);:IS$=IS$+CHR$(C):GOTO 4810
4860 IF C<>20 THEN 4895
4861 IF LEN(IS$) = 0 THEN PRINT CHR$(7);
4865 IF LEN(IS$)=1 OR LEN(IS$)=0 THEN IS$="":GOSUB 4920:GOTO 4810
4870 I = LEN(IS$)-1
4871 IF RIGHT$(IS$,1)="." AND IT=2 THEN ID=0
4875 IS$=LEFT$(IS$,I)
4890 GOSUB 4920:PRINT IS$;:GOTO 4810
4895 PRINT CHR$(7);:GOTO 4810
4920 LOCATE IY,IX:FOR I = 1 TO ML+1:PRINT " ";:NEXT I
4921 LOCATE IY,IX
4925 RETURN
5000 DM$="DRAWING: 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$="DRAWING: 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$="DRAWING 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$="DRAWING 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
REM THE ROPE
8000 DM$="DRAWING: 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
REM THE FACE
9500 DM$="DRAWING: 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
9555 Q1=1:Q2=Q1:Q3=Q1:Q4=Q1
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 = $FF: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 = $FE:GOSUB 3000
9700 PSET CX+4,CY,$FF:GOSUB 9950:REM THE PUPILS OF HIS EYES
9710 CX = CX + 12:GOSUB 3000
9720 PSET CX+4,CY,$FF: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
REM THE TORSO
10000 DM$="DRAWING: 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
10436 PN$="P-1"
10440 CHAR 57,106,$10,PN$
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$="DRAWING: 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$="DRAWING: 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$="DRAWING: 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
REM THIS ROUTINE SAVES THE SCREEN TO "BG.DAT" FOR
REM SUBSEQUENT BVLOAD. TESTED AND WORKS
REM NOT CURRENTLY USED. VERY SLOW
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 DM$;
20020 RETURN
20100 LOCATE 30,2:PRINT " ";
20101 RETURN
39995 REM SET PALLETTE ENTRY P1 TO R%,G%,B%
40000 VPOKE 1,$FA00+(P1*2),(G%*16) + B%
40010 VPOKE 1,$FA00+((P1*2)+1),R%
40020 RETURN
40100 REM READ PALLETTE ENTRY AT P1
40100 REM RETURNED IN %R,%G,%B
40100 A1 = $FA00+(P1*2)
40105 R% = VPEEK(1,A1+1)
40110 GB%= VPEEK(1,A1)
40115 G% = GB%/16
40120 B% = GB% AND $0F
40125 RETURN
40199 FADE P2 FROM CURRENT COLOR TO P1 COLOR, J IS JIFFY DELAY
40200 GOSUB 40100
40205 P3=P1
40210 P1=P2
40215 GOSUB 40300
40220 P1=P3
40225 RETURN
40299 REM FADE P1 TO R%,G%,B%, J IS JIFFY DELAY
40300 DR%=R%:DG%=G%:DB%=B%
40305 GOSUB 40100
40310 RI=1:IF DR%<R% THEN RI=-1
40315 GI=1:IF DG%<G% THEN GI=-1
40320 BI=1:IF DB%<B% THEN BI=-1
40325 IF DR%<>R% THEN R%=R%+RI
40330 IF DG%<>G% THEN G%=G%+GI
40335 IF DB%<>B% THEN B%=B%+BI
40340 GOSUB 40000
40345 SLEEP J
40350 IF DR%=R% AND DG%=G% AND DB%=B% THEN 40360
40355 GOTO 40325
40360 RETURN
40499 REM SWAP PALLETTE COLORS AT P1 & P2
40500 A1 = $FA00+(P1*2)
40505 A2 = $FA00+(P2*2)
40510 B1 = VPEEK (1,A1)
40515 B2 = VPEEK (1,A1+1)
40520 B3 = VPEEK (1,A2)
40525 B4 = VPEEK (1,A2+1)
40530 VPOKE 1, A1, B3
40535 VPOKE 1, A1+1, B4
40450 VPOKE 1, A2, B1
40455 VPOKE 1, A2+1, B2
40560 RETURN
40999 REM COPY P1 PALLETTE ENTRY TO P2.. P1 IS LEFT UNCHANGED.
41000 VPOKE 1,$FA00+(P2*2), VPEEK(1, $FA00+(P1*2))
41010 VPOKE 1,$FA00+(P2*2)+1, VPEEK(1, $FA00+(P1*2)+1)
41020 RETURN
45000 RESTORE 50000
45010 REM LOOP THROUGH THE PALLETTE ADDRESS SPACE
45015 REM AND POKE THE VERA DEFAULT PALLETTE
45020 FOR PE = $FA00 TO $FBFE STEP 2
45025 READ R:READ GB
45030 VPOKE 1,PE,GB
45035 VPOKE 1,PE+1, R
45040 NEXT PE
45050 RETURN
49999 REM DEFAULT VERA PALLETTE AS DATA. FROM 0 TO 255 (2 BYTES EACH ENTRY)RGB
50000 DATA $00,$00,$0F,$FF,$08,$00,$0A,$FE,$0C,$4C,$00,$C5,$00,$0A,$0E,$E7,$0D
50005 DATA $85,$06,$40,$0F,$77,$03,$33,$07,$77,$0A,$F6,$00,$8F,$0B,$BB,$00,$00
50010 DATA $01,$11,$02,$22,$03,$33,$04,$44,$05,$55,$06,$66,$07,$77,$08,$88,$09
50015 DATA $99,$0A,$AA,$0B,$BB,$0C,$CC,$0D,$DD,$0E,$EE,$0F,$FF,$02,$11,$04,$33
50020 DATA $06,$44,$08,$66,$0A,$88,$0C,$99,$0F,$BB,$02,$11,$04,$22,$06,$33,$08
50025 DATA $44,$0A,$55,$0C,$66,$0F,$77,$02,$00,$04,$11,$06,$11,$08,$22,$0A,$22
50030 DATA $0C,$33,$0F,$33,$02,$00,$04,$00,$06,$00,$08,$00,$0A,$00,$0C,$00,$0F
50035 DATA $00,$02,$21,$04,$43,$06,$64,$08,$86,$0A,$A8,$0C,$C9,$0F,$EB,$02,$11
50040 DATA $04,$32,$06,$53,$08,$74,$0A,$95,$0C,$B6,$0F,$D7,$02,$10,$04,$31,$06
50045 DATA $51,$08,$62,$0A,$82,$0C,$A3,$0F,$C3,$02,$10,$04,$30,$06,$40,$08,$60
50050 DATA $0A,$80,$0C,$90,$0F,$B0,$01,$21,$03,$43,$05,$64,$07,$86,$09,$A8,$0B
50055 DATA $C9,$0D,$FB,$01,$21,$03,$42,$04,$63,$06,$84,$08,$A5,$09,$C6,$0B,$F7
50060 DATA $01,$20,$02,$41,$04,$61,$05,$82,$06,$A2,$08,$C3,$09,$F3,$01,$20,$02
50065 DATA $40,$03,$60,$04,$80,$05,$A0,$06,$C0,$07,$F0,$01,$21,$03,$43,$04,$65
50070 DATA $06,$86,$08,$A8,$09,$CA,$0B,$FC,$01,$21,$02,$42,$03,$64,$04,$85,$05
50075 DATA $A6,$06,$C8,$07,$F9,$00,$20,$01,$41,$01,$62,$02,$83,$02,$A4,$03,$C5
50080 DATA $03,$F6,$00,$20,$00,$41,$00,$61,$00,$82,$00,$A2,$00,$C3,$00,$F3,$01
50085 DATA $22,$03,$44,$04,$66,$06,$88,$08,$AA,$09,$CC,$0B,$FF,$01,$22,$02,$44
50090 DATA $03,$66,$04,$88,$05,$AA,$06,$CC,$07,$FF,$00,$22,$01,$44,$01,$66,$02
50095 DATA $88,$02,$AA,$03,$CC,$03,$FF,$00,$22,$00,$44,$00,$66,$00,$88,$00,$AA
50100 DATA $00,$CC,$00,$FF,$01,$12,$03,$34,$04,$56,$06,$68,$08,$8A,$09,$AC,$0B
50105 DATA $CF,$01,$12,$02,$24,$03,$46,$04,$58,$05,$6A,$06,$8C,$07,$9F,$00,$02
50110 DATA $01,$14,$01,$26,$02,$38,$02,$4A,$03,$5C,$03,$6F,$00,$02,$00,$14,$00
50115 DATA $16,$00,$28,$00,$2A,$00,$3C,$00,$3F,$01,$12,$03,$34,$05,$46,$07,$68
50120 DATA $09,$8A,$0B,$9C,$0D,$BF,$01,$12,$03,$24,$04,$36,$06,$48,$08,$5A,$09
50125 DATA $6C,$0B,$7F,$01,$02,$02,$14,$04,$16,$05,$28,$06,$2A,$08,$3C,$09,$3F
50130 DATA $01,$02,$02,$04,$03,$06,$04,$08,$05,$0A,$06,$0C,$07,$0F,$02,$12,$04
50135 DATA $34,$06,$46,$08,$68,$0A,$8A,$0C,$9C,$0F,$BE,$02,$11,$04,$23,$06,$35
50140 DATA $08,$47,$0A,$59,$0C,$6B,$0F,$7D,$02,$01,$04,$13,$06,$15,$08,$26,$0A
50145 DATA $28,$0C,$3A,$0F,$3C,$02,$01,$04,$03,$06,$04,$08,$06,$0A,$08,$0C,$09
50150 DATA $0F,$0B
58999 REM SETUP INITIAL VARIABLES
59000 XLIMIT=319:YLIMIT=239:PI=3.1416
59005 GOSUB 45000:REM SET VERA PALLETTE
59006 X=RND(-TI)
59007 POKE$30C,4:SYS$FF62: REM SET PRETTY FONT
59010 GOSUB 59300 : REM SET MY FONT COLORS.
REM BROKE OUT INTO SEPERATE GOSUB SO I CAN CALL IT
REM LATER SEPERATELY
59020 Q1=1:Q2=1:Q3=1:Q4=1: REM DRAW ALL CIRCLE QUARTERS TO START
59021 REM NECESSARY FOR CIRCLE ROUTINE AT GOSUB 3000
59030 MW = 15
59035 MC = 35 : REM MAX LENGTH OF WORD AND CLUE.
59040 EC%(1)=$2D
59045 FOR I = 2 TO 7:EC%(I)=$27+I:NEXT I
59046 EC%(8)=$F8
59050 FOR I = 8 TO 14:EC%(I)=$35+I:NEXT I
59055 EC%(15)=$14
59200 RETURN
REM SET MY PALLETTE COLORS I AM GOING TO ANIMATE LATER
59300 P1=$25:P2=$FF:GOSUB 41000 :REM COPY FLESH COLOR ALSO TO $FF
59305 P1=1:P2=$FE:GOSUB 41000 :REM COPY PURE WHITE ALSO TO $FE
59310 P1=$3B:P2=$FD:GOSUB 41000 :REM RED TO $FD
59400 RETURN
60000 GET X$:IF X$<>"" THEN 60000 : REM FLUSH THE KEYBOARD BUFFER
60010 GET X$:IF X$="" THEN 60010 : REM WAIT FOR KEYBOARD
60020 RETURN