10 GRAPHICS 0:SETCOLOR 4,3,6:SETCOLOR 2,11,14:SETCOLOR 1,11,2:POKE 752,115 POKE 559,0:REM THIS LINE OPTIONAL20 POSITION 14,}6:PRINT "   "30 POSITION 14,7:PRINT " "40 POSITION 14,8:PRINT " "50 POSITION 14,9:PRINT " "6}0 POSITION 14,10:PRINT " "70 POSITION 14,11:PRINT "  "80 POSITION 14,12:PRINT "  "90 POSITION 14,13:}PRINT "  "100 POSITION 14,14:PRINT "  "110 POSITION 14,15:PRINT "  "120 POSITION 14,16:PRINT "}"130 PRINT " A PICTURE IS WORTH A THOUSAND WORDS"140 POKE 559,34150 GOTO 150 "120 POSITION 14,16:PRINT "U10 GRAPHICS 0:SETCOLOR 4,3,6:SETCOLOR 2,11,14:SETCOLOR 1,11,2:POKE 752,115 POKE 559,0:REM THIS LINE OPTIONAL20 FOR I=6 TO 1 }630 POSITION 14,I40 FOR H=1 TO 950 READ A60 PRINT CHR$(A);70 NEXT H80 NEXT I90 PRINT :PRINT " A PICTURE IS WORTH A  }THOUSAND WORDS"100 POKE 559,34110 GOTO 110200 DATA 32,8,10,32,32,32,8,10,32210 DATA 2,13,13,13,13,13,13,13,22220 DATA 2, }17,23,5,32,17,23,5,22230 DATA 2,1,19,4,32,1,19,4,22240 DATA 2,26,24,3,32,26,24,3,22250 DATA 2,32,32,32,32,8,32,32,22260 D }ATA 2,32,2,13,13,160,32,32,22270 DATA 2,32,2,32,32,160,32,32,22280 DATA 2,32,2,32,32,160,32,32,22290 DATA 2,32,2,14,14,160},32,32,22300 DATA 2,14,14,14,14,14,14,14,22,32,32,160,32,32,22280 DATA 2,32,2,32,32,160,32,32,22290 DATA 2,32,2,14,14,160-10 GRAPHICS 2+1620 X=030 FOR L=1 TO 5040 RC=INT(15*RND(0)):RS=(255*RND(0))50 SETCOLOR 0,RC,660 SOUND 0,RS,10,470 POSITI}ON 5,480 ? #6;"1"90 FOR W=1 TO 25:NEXT W100 X=X+1:IF X=4 THEN X=0110 NEXT L120 SOUND 0,0,0,0130 GRAPHICS 2+16140 PO}SITION 5,4150 ? #6;"1"160 FOR W=1 TO 500:NEXT W170 POSITION 2,7180 ? #6;"HIDDEN GRAPHICS!"190 GOTO 190CS 2+16140 POo10 X=0:Y=0:Z=6520 GRAPHICS 2+1630 FOR AZ=0 TO 2540 SOUND 0,255-AZ*10,AZ+8,850 COLOR Z60 PLOT X,Y:IF X=18 THEN X=0:Y=Y+1 }70 X=X+1:Z=Z+180 FOR W=1 TO 50:NEXT W90 NEXT AZ100 IF Z=91 THEN Z=193:X=0:Y=2:GOTO 30110 IF Z=219 THEN Z=225:X=0:Y=4:GOTO } 30120 IF Z=219 THEN Z=225:X=0:Y=6:GOTO 30130 FOR W=1 TO 500:NEXT W140 POSITION 2,9:? #6;"COLOR STATEMENT"150 POSITION 4, }10:? #6;"GRAPHICS!"160 GOTO 160=6:GOTO 30130 FOR W=1 TO 500:NEXT W140 POSITION 2,9:? #6;"COLOR STATEMENT"150 POSITION 4, !32000 REM * GR.0 SCREEN TO PRINTER *32001 REM 32002 REM "OPEN" CLEARS SCREEN32003 REM DO THIS EARLY IN PROGRAM32004 REM U}SE GOSUB 32010 FOR THIS32005 REM 32010 POKE 82,0:POKE 83,3932020 OPEN #5,4,0,"S:":OPEN #7,8,0,"P:"32030 RETURN 32031 REM} 32032 REM USE GOSUB 32040 TO LPRINT32033 REM TEXT FROM SCREEN32034 REM 32040 PRINT #7;CHR$(10)32050 FOR Y=0 TO 2332060} FOR X=0 TO 3932070 POSITION X,Y32080 GET #5,G32090 PUT #7,G32100 NEXT X32105 PRINT #732110 NEXT Y32120 POSITION 0,03}2130 RETURN 932070 POSITION X,Y32080 GET #5,G32090 PUT #7,G32100 NEXT X32105 PRINT #732110 NEXT Y32120 POSITION 0,03 10 GRAPHICS 1020 POKE 704,96:REM SETS BACKGROUND (COLOR 0, COLPM0) TO DARK PURPLE30 POKE 705,22:REM SETS COLOR 1, COLPM1 TO} YELLOW40 POKE 706,38:REM SETS COLOR 2, COLPM2 TO YELLOW ORANGE50 POKE 707,54:REM SETS COLOR 3, COLPM3 TO ORANGE60 POKE 70}8,70:REM SETS COLOR 4, COLPF0 TO RED70 POKE 709,86:REM SETS COLOR 5, COLPF1 TO PURPLE80 POKE 710,104:REM SETS COLOR 6, COLP}F2 TO BLUE90 POKE 711,120:REM SETS COLOR 7, COLPF3 TO BLUE GREEN100 POKE 712,180:REM SETS COLOR 8, COLPF4 TO GREEN110 FOR }I=1 TO 64:REM SETS UP VARIABLE FOR COLOR AND POSITION120 C=C*(C<8)+1:COLOR C:REM CHANGES COLOR VALUE130 PLOT I,I:REM START  }AT LEPT HAND CORNER140 DRAWTO I,191-I:REM DRAWTO BOTTOM LEFT CORNER150 DRAWTO 79-I,191-I:REM DR. BOTTOM RIGHT CORNER160 DR!}AWTO 79-I,I:REM DR. TOP RIGHT CORNER170 DRAWTO I,I:REM DR. TOP LEFT TO COMPLETE BORDER180 NEXT I190 Z=PEEK(712):REM SETS Z"} EQUAL TO THE VALUE IN THE LAST REGISTER200 POKE 712,PEEK(711):REM ROTATES VALUES FROM 711 TO 712210 POKE 711,PEEK(710):REM#} ROTATES VALUES FROM 710 TO 711220 POKE 711,PEEK(709):REM ROTATES VALUES FROM 709 TO 710230 POKE 709,PEEK(708):REM ROTATES $}VALUES FROM 708 TO 709240 POKE 708,PEEK(707):REM ROTATES VALUES FROM 707 TO 708250 POKE 707,PEEK(706):REM ROTATES VALUES FR%}OM 706 TO 707260 POKE 706,PEEK(705):REM ROTATES VALUES FROM 705 TO 706270 POKE 705,Z:REM ROTATES VALUES FROM 712 TO 705280&} FOR I=0 TO 15:NEXT I:REM SLOW DOWN ROTATION290 GOTO 190:REM START AGAIN0 POKE 705,Z:REM ROTATES VALUES FROM 712 TO 705280J5 REM GRAPHICS 11 DEMONSTRATION PAGE 510 A=1:R=26:REM SETS VARIABLES20 DIM X(360),Y(360):REM ALLOW STORAGE SPACE FOR X AND (}Y COORDINATES30 GRAPHICS 11:SETCOLOR 4,0,12:DEG :REM SETS GRAPHICS MODE, LUM OF COLORS AND DEGREE MODE FOR ELIPSE40 FOR I=0)} TO 15:REM COLOR AND POSITION VARIABLE50 COLOR I60 PLOT 31+I,0:DRAWTO 31+I,19170 PLOT 0,86+I:DRAWTO 79,86+I:REM DRAWS CROS*}S80 NEXT I90 FOR I=0 TO 360 STEP 2100 X(I)=R*COS(I)+34110 Y(I)=R*SIN(I)+95120 NEXT I:REM SETS X AND Y VALUES FOR PLOTTIN+}G ELIPSE130 FOR I=0 TO 360 STEP 2:REM CALLS ABOVE VALUES140 COLOR A150 PLOT X(I)+A,Y(I)+A:REM PLOT EACH COLORS' ELIPSE160,} NEXT I170 A=A+1:REM NEXT COLOR AND NEXT ELIPSE POSITION180 IF A=16 THEN 200:REM END IF ALL COLORS ARE USED190 GOTO 130:RE-}M DRAW NEXT ELIPSE200 GOTO 200 AND NEXT ELIPSE POSITION180 IF A=16 THEN 200:REM END IF ALL COLORS ARE USED190 GOTO 130:RE 10 R=16:X=0:C=1520 GRAPHICS 9:SETCOLOR 4,13,030 FOR I=130 TO 19140 COLOR C50 PLOT 0,I:DRAWTO 79,I60 X=X+1:IF X=4 THEN X=/}0:C=C-170 NEXT I80 FOR I=0 TO 79 STEP 890 COLOR 3:PLOT 59,130:DRAWTO I,191100 NEXT I110 COLOR 1:FOR I=0 TO 7:PLOT 2,164:0}DRAWTO 21,158+I:NEXT I120 COLOR 15:FOR I=0 TO 3:PLOT 21,140:DRAWTO 21+I,164-I*2:NEXT I130 COLOR 4:FOR I=0 TO 4:PLOT 20,140:1}DRAWTO 17+I,160+I:NEXT I140 FOR Z=1 TO 15150 FOR I=0 TO 360 STEP 6160 X=0.25*R*COS(I)+35170 Y=R*SIN(I)+50180 COLOR Z1902} PLOT X,Y200 PLOT X+10,Y+17210 PLOT X+30,Y-20220 PLOT X-2,Y+12230 PLOT X+21,Y+70240 NEXT I250 R=R-1260 NEXT Z270 FOR 3}I=2 TO 4:COLOR I:PLOT 46,72:DRAWTO 51+I,106280 PLOT 43,62:DRAWTO 39,50+I290 PLOT 47,62:DRAWTO 60+I,35300 NEXT I310 GOTO 34}10 TO 4:COLOR I:PLOT 46,72:DRAWTO 51+I,106280 PLOT 43,62:DRAWTO 39,50+I290 PLOT 47,62:DRAWTO 60+I,35300 NEXT I310 GOTO 3i~ m +'0@@@A0@@@[0@@@mAR@ 6}*AY*THIS LINE OPTIONAL"-@@"    #-@@#   (#-@@ 7}#   2#-@@ #   <#-@@#   F#-@@#     8}P#-@@#    Z#-@@#    d#-@@#    n#-@@ 9}#    x#-@@#  // ' A PICTURE IS WORTH A THOUSAND WORDSAY@4 A :}P D4:P007L1.BAS@#  // ' A PICTURE IS WORTH A THOUSAND WORDSAY@4 A  m +'0@@@A0@@@[0@@$<}@mAR@*AY*THIS LINE OPTIONAL-@@-@(-@@ $=}2"< >:,F P Z2 2 ' A PICTURE IS WORTH A THOUSAND WORDSdAY@4n A$>}32,8,10,32,32,32,8,10,322,13,13,13,13,13,13,13,222,17,23,5,32,17,23,5,222,1,19,4,32,1,19,4,222,26,24,$?}3,32,26,24,3,222,32,32,32,32,8,32,32,222,32,2,13,13,160,32,32,222,32,2,32,32,160,32,32,222,32,2,32,32$@},160,32,32,22"2,32,2,14,14,160,32,32,22,2,14,14,14,14,14,14,14,22 D4:P007L2.BAS0,32,32,222,32,2,32,32$a0#RR@@Q@@eA +@%@6--@@P(6(B}6-P:@$H:,,66-+AU$H:,,20@<2@@F-@@(C}P(@1Z-@@% d)6-%@"@)6-n x%%2(D}+@%@-@@(@1-@A -@@!!((E}@HIDDEN GRAPHICS! A D4:P016L1.BAS1-@A -@@!!((=/g|A '6-6-'6-@e+@%@,G}-@%(112AU&$@%@@2</ ,"@!6-/6-%@F,H}6-%@6-%@P-@@P Z d="@6-A'6-36-@= @0n,I}="A6-A%'6-36-@= @0x="A6-A%'6-36-@= @0,J}-@A 2-@@ 2(@COLOR STATEMENT,-@@,(@ GRAPHICS! A`,K} D4:P016L2.BAS-@@ 2(@COLOR STATEMENT,-@@,(@ GRAPHICS! A`, } * GR.0 SCREEN TO PRINTER *}}"OPEN" CLEARS SCREEN}DO THIS EARLY 0M}IN PROGRAM}USE GOSUB 32010 FOR THIS} }'@'@@9}C#@@S:C0N}@@P:}$} }USE GOSUB 32040 TO LPRINT!}TEXT FROM SCREEN"}(} @>:@,20O}}-@#<}-@9F} -P})@Z}*@d} i} @n} x}-0P}}$ D4:P019L1.BAS@9F} -P})@Z}*@d} i} @n} x}-0% +@HA@HSETS BACKGROUND (COLOR 0, COLPM0) TO DARK PURPL4R}E6A@"6SETS COLOR 1, COLPM1 TO YELLOW(=A@8=SETS COLOR 2, COLPM2 TO YELLOW ORANGE26A4S}@T6SETS COLOR 3, COLPM3 TO ORANGE<3A@p3SETS COLOR 4, COLPF0 TO REDF6A @6SETS 4T}COLOR 5, COLPF1 TO PURPLEP4AA4SETS COLOR 6, COLPF2 TO BLUEZ:AA :SETS COLOR 7, COLPF3 TO 4U}BLUE GREENd5AA5SETS COLOR 8, COLPF4 TO GREENnA-@@dASETS UP VARIABLE FOR COLOR AND POSIT4V}IONx76-$+ @,%@!7CHANGES COLOR VALUE% ,%START AT LEPT HAND CORNER-/A&-DRAWTO BOT4W}TOM LEFT CORNER3/@y&A&3DR. BOTTOM RIGHT CORNER(/@y&(DR. TOP RIGHT CORNER+ /+DR. TOP4X} LEFT TO COMPLETE BORDER C6-F:A,CSETS Z EQUAL TO THE VALUE IN THE LAST REGISTER9AF:A,94Y}ROTATES VALUES FROM 711 TO 7129AF:A,9ROTATES VALUES FROM 710 TO 7119AF:A ,9ROTATES VAL4Z}UES FROM 709 TO 7109A F:A,9ROTATES VALUES FROM 708 TO 7099AF:A,9ROTATES VALUES FROM 704[}7 TO 7089AF:A,9ROTATES VALUES FROM 706 TO 7079AF:A,9ROTATES VALUES FROM 705 TO 7064\}0A0ROTATES VALUES FROM 712 TO 7050-@ 0SLOW DOWN ROTATION" ASTART AGAIN4]} D4:P023L1.BASTATES VALUES FROM 712 TO 7050-@ 0SLOW DOWN ROTATION" ASTART AGAIN40ezXY@@&AiAviAb&&GRAPHICS 11 DEMONSTRATION PAGE 5 ,6-@6-@&8_},SETS VARIABLESI9A`,9A`,IALLOW STORAGE SPACE FOR X AND Y COORDINATESi +@'0@@8`}*iSETS GRAPHICS MODE, LUM OF COLORS AND DEGREE MODE FOR ELIPSE(5-@5COLOR AND POSITION VARIABLE8a}2<+,@1%+/@1%AF9,@%+/@y@%9DRAWS CROSSP Z-8b}A`@d68,-$E:,%@4n68,-$G:,%@x1 1SETS X AND Y VALUES FOR PLOTTING ELIPSE48c}-A`@4CALLS ABOVE VALUES.,8,%8,%.PLOT EACH COLORS' ELIPSE 76-%@78d}NEXT COLOR AND NEXT ELIPSE POSITION4"@A4END IF ALL COLORS ARE USED A0 DRAW NEXT ELIPSE 8e}A D4:P023L2.BASSITION4"@A4END IF ALL COLORS ARE USED A0 DRAW NEXT ELIPSE 87@@4h@@@QxGU '6-@6-'6-@' +@ '0@15 THEN C=B150 RESTORE :GOTO 50160 DATA 9,37,65SE.4,";B;",6";" Dk20 POKE 708,58:REM COLOR 130 POKE 709,206:REM COLOR 240 POKE 710,136:COLOR 350 B=C:POKE 712,B*16+67,65SE.4,";B;",6";" Hf10 GRAPHICS 3+1620 START=PEEK(560)+PEEK(561)*256+430 POKE START-1,7140 FOR R=2 TO 4:POKE START+R,7:NEXT R50 POKE START+21Lx},65:POKE START+22,PEEK(560):POKE START+23,PEEK(561)60 POKE 87,3:POKE 712,10:B=670 FOR A=1 TO 380 COLOR A90 FOR R=9 TO 18Ly}100 PLOT A+B,R:DRAWTO A+10+B,R110 NEXT R120 B=B+10130 NEXT A140 POKE 87,2:DIM BL$(3):BL$=" "150 POSITION 0,0:PRINT #6;Lz}" 708, 710,"160 POSITION 0,3:PRINT #6;"㮣"170 POSITION 5,3:PRINT #6;"ONE two "180 CL=3:S0=70:S1=150:S2=206:L{}S4=10190 GOSUB 270:GOSUB 300:GOSUB 330:GOSUB 340200 IF STRIG(0)=0 THEN CL=CL+1210 FOR W=1 TO 100:NEXT W220 IF CL=4 THEN CL|}L=0230 ST=STICK(0):IF ST<>15 THEN POKE 77,0240 ON CL+1 GOSUB 250,280,310,340:GOTO 200250 IF ST=14 THEN S0=S0+2:IF S0>255 TL}}HEN S0=0260 IF ST=13 THEN S0=S0-2:IF S0<0 THEN S0=254270 POSITION 5,1:GOSUB 370:POSITION 5,1:PRINT #6;S0:POKE 708,S0:RETURNL~} 280 IF ST=14 THEN S1=S1+2:IF S1>255 THEN S1=0290 IF ST=13 THEN S1=S1-2:IF S1<0 THEN S1=254300 POSITION 10,1:GOSUB 370:POSL}ITION 10,1:PRINT #6;S1:POKE 709,S1:RETURN 310 IF ST=14 THEN S2=S2+2:IF S2>255 THEN S2=0320 IF ST=13 THEN S2=S2-2:IF S2<0 THL}EN S2=254330 POSITION 16,1:GOSUB 370:POSITION 16,1:PRINT #6;S2:POKE 710,S2:RETURN 340 IF ST=14 THEN S4=S4+2:IF S4>255 THEN L}S4=0350 IF ST=13 THEN S4=S4-2:IF S4<0 THEN S4=254360 POSITION 0,1:GOSUB 370:POSITION 0,1:PRINT #6;S4:POKE 712,S4:RETURN 37L}0 PRINT #6;BL$:FOR W=1 TO 15:NEXT W:RETURN S4=254360 POSITION 0,1:GOSUB 370:POSITION 0,1:PRINT #6;S4:POKE 712,S4:RETURN 37L,30 REM C G Mś40 DIM MSS$(120)50 TRAP 100060 ? "W G M? 1 2";:INPUT A:IF A<>1 AND A<>2 THEN 60P}70 GOSUB 100:GRAPHICS A+1680 DL=PEEK(560)+256*PEEK(561)+690 FOR I=0 TO 6:POKE DL+I,133+A:NEXT I:GOTO 200100 REM M P} ś110 POKE 82,10:POKE 83,29:? 120 REM I ś130 ? :? "W ?":? "U AP}TARI . CAPITAL ."140 INPUT MSS$:RETURN 200 REM L DLI210 FOR I=0 TO 42:READ B:POKEP} 1553+I,B:NEXT I220 DATA 72,138,72,152,72,162,0,141,10,212230 DATA 189,1,6,188,9,6,141,24,208,140,25,208240 DATA 232,173,0P},6,201,1,144,3,141,10,212250 DATA 224,6,144,226,104,168,104,170,104,64300 REM L D V B˛310 FOR I=0 TOP} 73:READ C:POKE 1599+I,C:NEXT I:POKE 1596,0320 DATA 72,138,72,173,60,6,201,4,144,55,162,7330 DATA 173,8,6,141,61,6,173,9,6,P}141,62,6340 DATA 202,189,1,6,157,2,6350 DATA 224,0,208,245,173,61,6360 DATA 141,1,6,162,0,189,10,6,157,9,6,232,224,7,208,2P}45,173,62,6,141,16,6,169,0370 DATA 141,60,6,238,60,6,104,170,104,76,98,228400 REM C & # ś410 FOR I=0P} TO 7:POKE 1537+I,(8+I)*16+I*2:NEXT I420 FOR I=0 TO 7:POKE 1545+I,(1+I)*16+I*2:NEXT I430 POKE 1536,A490 POSITION 0,0:? #6;P}" "500 REM E DLI AND DVVBLK510 POKE 512,17:POKE 513,6520 POKE 548,63:POKE 549,6:POKE 54286,192600 POSITION 1,2:? #6;P}MSS$610 GOTO 6101000 TRAP 40000:GOTO 50 512,17:POKE 513,6520 POKE 548,63:POKE 549,6:POKE 54286,192600 POSITION 1,2:? #6;P*1 REM ***************************2 REM * *3 REM * MIXING COLORS TO MAKE *4 REM * AN ATARI RAIT}NBOW *5 REM * *6 REM ***************************9 REM 10 PRINT CHR$(125):GRAPHICS 2+16:BREAK=T}100015 REM MACHINE LANGUAGE TO BE RUN DURING VERTICAL BLANK INTERRUPT20 FOR I=0 TO 36:READ A:POKE 1536+I,A:NEXT I3T}0 DATA 173,39,6,141,49,6,173,40,6,141,50,6,173,51,6,73,1,141,5140 DATA 6,240,12,173,41,6,141,49,6,173,42,6,141,50,6,76,98,22T}845 REM FIND DISPLAY LIST IN RAM50 DLIST=PEEK(560)+256*PEEK(561)55 REM MODIFY MACHINE LANGUAGE PROGRAM BY POKEING IN ADDRET}SSES FROM DISPLAY LIST60 BYTE=DLIST+4:GOSUB BREAK:REM LOAD MEMORY SCAN LOW BYTE70 POKE 1540,LOW:POKE 1562,LOW80 POKE 1541T},HIGH:POKE 1563,HIGH90 BYTE=DLIST+5:GOSUB BREAK:REM LOAD MEMORY SCAN HIGH BYTE100 POKE 1546,LOW:POKE 1568,LOW110 POKE 1547T},HIGH:POKE 1569,HIGH120 BYTE=DLIST+20:GOSUB BREAK:REM NORMAL SCREEN RAM130 POKE 1576,HIGH:POKE 1575,LOW140 BYTE=DLIST-250:T}GOSUB BREAK:REM ALTERNATE SCREEN RAM150 POKE 1578,HIGH:POKE 1577,LOW155 REM MACHINE LANGUAGE PROGRAM TO INITIALIZE VERTICALT} BANK INTERRUPT160 FOR I=0 TO 10:READ A:POKE 1600+I,A:NEXT I170 DATA 104,162,6,160,0,169,7,32,92,228,96180 X=USR(1600)T}220 REM DRAW FIRST SCREEN230 BYTE=DLIST-250:GOSUB BREAK235 POKE 88,LOW:POKE 89,HIGH240 POSITION 0,4250 PRINT #6;"ATARi coT}TER Club"260 PRINT #6270 PRINT #6;" HARLott"280 BYTE=DLIST+20:GOSUB BREAK290 POKE 88,LOW:POKE 89,HIGH305 REM T}SETCOLORS AND DRAW SECOND SCREEN312 SETCOLOR 0,12,6313 SETCOLOR 1,4,6314 SETCOLOR 2,15,8315 SETCOLOR 3,8,6320 POSITION 0T},4330 PRINT #6;"Ati OTe L"340 PRINT #6350 PRINT #6;" Art"359 REM HOLD IMAGE ON SCREEN360 GOTO 360T}999 REM SUBROUTINE TO BREAK DOWN NUMBER INTO HIGH AND LOW BYTES1000 HIGH=INT(BYTE/256)1010 LOW=BYTE-HIGH*2561020 RETURN T|1 REM : DEMO OF XIO FILLING2 REM : SUPPRESS WINDOW IN GR.710 GRAPHICS 7+1615 REM : ESTABLISH 3 FILL COLORS20 FOR N=1 TO 3X} STEP 130 COLOR N35 REM : GENERATE FIGURE TO FILL40 X1=INT(RND(0)*80)50 Y1=INT(RND(0)*48)60 X2=X1+INT(RND(0)*80)70 Y2=YX}1+INT(RND(0)*48)80 IF X1=X2 OR Y1=Y2 THEN 4090 PLOT X2,Y2100 DRAWTO X2,Y1110 DRAWTO X1,Y1115 REM : FILL FIGURE120 POSITX}ION X1,Y2130 POKE 765,N140 XIO 18,#6,0,0,"S:"150 FOR W=1 TO 400:NEXT W155 REM : CHANGE COLOR FOR NEXT FIGURE160 NEXT N1X}65 REM : GENERATE NEW FIGURE170 GOTO 100,"S:"150 FOR W=1 TO 400:NEXT W155 REM : CHANGE COLOR FOR NEXT FIGURE160 NEXT N1X)1 REM : DEMO OF XIO FILLING #25 REM : SUPPRESS WINDOW IN GR.710 GRAPHICS 7+1611 REM :CHANGE BACKGROUND12 B=INT(RND(0)*16)\}13 SETCOLOR 4,B,215 REM : ESTABLISH 3 FILL COLORS20 N=INT(RND(0)*3+1)30 COLOR N35 REM : GENERATE FIGURE TO FILL40 X1=IN\}T(RND(0)*80)50 Y1=INT(RND(0)*48)60 X2=X1+INT(RND(0)*80)70 Y2=Y1+INT(RND(0)*48)80 IF X1=X2 OR Y1=Y2 THEN 4081 I=INT(RND(0\})*256)82 SOUND 1,I,10,484 SOUND 2,255-I,10,490 PLOT X2,Y2100 DRAWTO X2,Y1110 DRAWTO X1,Y1115 REM : FILL FIGURE120 POSI\}TION X1,Y2130 POKE 765,N140 XIO 18,#6,0,0,"S:"155 REM : CHANGE COLOR FOR NEXT FIGURE165 REM :GENERATE NEW FIGURE166 REM \}:CHANGE BACKGRD SO GOTO 12170 GOTO 12,0,0,"S:"155 REM : CHANGE COLOR FOR NEXT FIGURE165 REM :GENERATE NEW FIGURE166 REM \'  #jCOLDELA + +@6-@+AR@0@@`}0@@@(0@@@2<44 } COLOR  SETCOLOR &@P-@`}@`Z,@P/Ad n)6-%@"@)6-@x-@AP  @P`} D4:P032L1.BAS/Ad n)6-%@"@)6-@x-@AP  @P` 10COL@@@@e@  +@6-'0@@'COLOR d}1'0@@@'COLOR 2('0@@@'COLOR 32 6-0@@<-@d}@F " P-@Z,%@/%@6d   n-- %}SE.0,3,10 SE.1,12,14 SE.2,8d},8x,, $ COLOR 1 COLOR 2 COLOR 3> AP: SE.4,,6 NEW BACKGROUND COLOR>( 6-P:," d})!@(6-# @P 9,37,65 D4:P032L2.BAS,6 NEW BACKGROUND COLOR>( 6-P:," dJA@XCOLOR 1A ACOLOR 2(AA6@h}2% 6-%A$@%@ D4:P032L3.BASOR 1A ACOLOR 2(AA6@h;ySTARBLCSSSSS l} +@%@--6-F:A`,%F:Aa,$AV%@&@@q()-@@%l}%@) 2E%@!@e.%@"F:A`,E%@#F:Aa,<3@@'A@36l}-@F-@@PZ-@ @d ,%/%@%n x6-%@ ,l}@@";@,,6. 6-6 @ 708, 710,&-@& @l}㮣0-@@0 @ ONE two ?6-@6-@p'6-AP36-A?6-@+ Al}p A! A0+ A@&T:,"&6-%@-@A "@6-l}06-R:,@0@w9/%@APAAA@9 A5"@6l}-%@)!AU56-5"@6-&@) 56-ATM-@@ Ap1-@l}@> @JAM$5"@6-%@)!AU56-"5"@6-&@)l} 56-AT,M-@@ Ap1-@@> @JA M$65"@6-%@l})!AU56-@5"@6-&@) 56-ATJM-@@ Ap1-@@l}> @JAM$T5"@6-%@)!AU56-^5"@6-&@) l}56-AThM-@ Ap1-@> @JAM$r+ @$-@@l}( +$ D4:P032L4.BAS Ap1-@> @JAM$r+ @$-@@l  ;MSSDC G Mś(;A ,2 Ap}<E#(W G M? 1 2'E@*@@`F A+%@P--6-F:A`,%AV$F:p}Aa,%@Z5-@'%A3%+ 5 Ad44M śn*p}@@'@@)*(xI śY((W ?Y(9U ATARI p}. CAPITAL .  $L DLI--@B")AS%- ''72,138,72,152,72,162,0,141,p}10,212++189,1,6,188,9,6,141,24,208,140,25,208((232,173,0,6,201,1,144,3,141,10,212**224,6,144,226,104,168,104,170,p}104,64,$$L D V B˛6?-@s")A%- ?A@++72,138,72,173,p}60,6,201,4,144,55,162,7J''173,8,6,141,61,6,173,9,6,141,62,6T202,189,1,6,157,2,6^224,0,208,245,173,61,6hNN141,p}1,6,162,0,189,10,6,157,9,6,232,224,7,208,245,173,62,6,141,16,6,169,0r--141,60,6,238,60,6,104,170,104,76,98,228##C p} & # śE-@AA7%+@%,$@%$@E E-@AAEp}%+@%,$@%$@E A6$-$(@ E DLI AND DVVBLK'Ap}@'A@9AH@c'AI@9BBAX"-@@"(@b p}A B @P D4:P037L1.BASAI@9BBAX"-@@"(@b p4YOdBREADLISBYTLOHIGA@@B@B@AW!!*****************t}*********!!* *!!* MIXING COLORS TO MAKE *!!* AN ATARI RAINBOW *!!* t} *!!***************************  . >:A%,"+@%@.6-AHHMACHINE LANGUAGE t}O BE RUN DURING VERTICAL BLANK INTERRUPT--@6")A6%- >>173,39,6,141,49,6,173,40,t},141,50,6,173,51,6,73,1,141,51(<<6,240,12,173,41,6,141,49,6,173,42,6,141,50,6,76,98,228-FIND DISPLAY LIST IN RAM2%t}6-F:A`,%AV$F:Aa,7PPMODIFY MACHINE LANGUAGE PROGRAM BY POKEING IN ADDRESSES FROM DISPLAY LIST<16-%@t} 1LOAD MEMORY SCAN LOW BYTEFA@AbPAAAcZ26-%@ 2LOAD MEMORt} SCAN HIGH BYTEdAFAhnAGAix)6-%@  )NORMAL SCREEN RAMAvt}Au,6-&AP ,ALTERNATE SCREEN RAMAxAwGGMACHINE LANGUAGE PROGRAM TO INITIALt}ZE VERTICAL BANK INTERRUPT--@")A%- ((104,162,6,160,0,169,7,32,92,228,966-?:t}A,DRAW FIRST SCREEN6-&AP @@-@$$ @ATARi cot}TER Club @!! @ HARLott6-%@  "@@1&&SETCOLORS ANDt}DRAW SECOND SCREEN80@@90@@@:0@@@;0@@t}@@-@J$$ @Ati OTe LT @^!! @ ArtgHOLD t}IMAGE ON SCREENh A`==SUBROUTINE TO BREAK DOWN NUMBER INTO HIGH AND LOW BYTES6-P:'AV,6-&$AVt}$ D4:P041L1.BAS==SUBROUTINE TO BREAK DOWN NUMBER INTO HIGH AND LOW BYTES6-P:'AV,6-&$AVt  ;ZoXYXY: DEMO OF XIO FILLING: SUPPRESS WINDOW INx}GR.7 +@%@: ESTABLISH 3 FILL COLORS-@@@#: GENERATE FIGURE TO FILx}(6-P:H:,$@,26-P:H:,$@H,<6-%P:H:,$@,F6-%P:H:,$@H,Px}")"@@Z ,d /n /s: FILL FIGUREx -Ae++@@x}S:-@A $$: CHANGE COLOR FOR NEXT FIGURE : GENERATE NEW FIGURE @ D4x}:P044L1.BAS-@A $$: CHANGE COLOR FOR NEXT FIGURE : GENERATE NEW FIGURE @ D4x   D-XYXY: DEMO OF XIO FILLING #2: SUPPRE|}S WINDOW IN GR.7 +@%@ :CHANGE BACKGROUND 6-P:H:,$@, 0@@: EST|}BLISH 3 FILL COLORS%%6-P:H:,$@%@,#: GENERATE FIGURE TO FILL(6-P:H:,$@,|}6-P:H:,$@H,<6-%P:H:,$@,F6-%P:H:,$@H,P")"@@Q6-P:H:|},$AV,R2@@@T''2@AU&@@Z ,d /n /s: FILL |}FIGUREx -Ae++@@S:$$: CHANGE COLOR FOR NEXT FIGURE:GENERATE |}NEW FIGURE :CHANGE BACKGRD SO GOTO 12 @ D4:P044L2.BAS$: CHANGE COLOR FOR NEXT FIGURE:GENERATE |M10 CHBAS=5734420 CHSET=(PEEK(106)-8)*25630 FOR I=0 TO 102340 POKE CHSET+I,PEEK(CHBAS+I)50 NEXT I60 POKE 756,CHSET/25670} READ NCHR:REM NUMBER OF CHARACTERS TO BE CUSTOMIZED80 FOR I=1 TO NCHR90 READ RPLC:REM INTERNAL VALUE OF CHARACTER TO BE RE}PLACED100 FOR J=0 TO 7110 READ A120 POKE CHSET+8*RPLC+J,A130 NEXT J140 NEXT I150 REM LINE 170 IS OPTIONAL160 REM IT JU}ST DISPLAYS ALL THE CHARACTERS170 FOR I=0 TO 255:PRINT CHR$(27);CHR$(I);:NEXT I180 END 998 REM NUMBER OF CHARACTERS999 DA}TA 11000 DATA 32,0,1,126,164,36,36,36,36 TO 255:PRINT CHR$(27);CHR$(I);:NEXT I180 END 998 REM NUMBER OF CHARACTERS999 DA*10 GRAPHICS 420 SCR=PEEK(88)+256*PEEK(89)30 PRINT "}CHARACTER #? (0-127)";40 INPUT CHR50 IF CHR<0 OR CHR>127 THEN 3060 P}RINT #6;CHR$(125)70 FOR I=0 TO 780 POKE SCR+4+10*I,PEEK(57344+CHR*8+I)90 NEXT I100 GOTO 30 CHR<0 OR CHR>127 THEN 3060 P_5 CLR :? "}":OPEN #1,4,0,"K:":OPEN #6,4,0,"S:":SETCOLOR 2,9,2:SETCOLOR 4,9,2:POKE 752,110 DIM C$(1),STORE(8):N=020 GOSUB 60}0040 ? :? :? "PLUG JOYSTICK INTO JACK 1"50 ? "DRAW CHARACTER WITH JOYSTICK"60 ? "HOLD TRIGGER BUTTON TO ERASE":? :? 70 ? }:? :? " PLEASE WAIT . . ."90 CHBASE=(PEEK(106)-8)*256:CHORG=57344100 FOR I=0 TO 1023:POKE CHBASE+I,PEEK(CHORG+I):NEX}T I105 C$="&"110 CHADD=CHBASE+(ASC(C$)-32)*8120 POKE 756,CHBASE/256200 ? "}":POKE 752,1:GOSUB 6000205 FOR I=0 TO 7:STORE}(I)=0:NEXT I210 ? 220 ? " 87654321"230 ? " "240 ? " | | 1"250 ? " | | 2"260 ? " } | | 3 C = CLEAR CHAR"270 ? " | | 4 D = DEMO CHAR"280 ? " | | 5 P = PRINT DATA"290 ? " } | | 6 E = ENTER DATA"300 ? " | | 7"310 ? " | | 8"320 ? " "499 REM MAIN LOOP50}0 X=7:Y=6510 K=PEEK(764)512 IF STRIG(0)=0 THEN 700513 IF K=18 THEN 1000514 IF K=58 THEN 2000515 IF K=10 THEN 3000516 IF} K=42 THEN 5000518 POSITION X,Y:? " "520 FOR DELAY=1 TO 15:NEXT DELAY530 POSITION X,Y:? ""540 FOR DELAY=1 TO 15:NEXT DEL}AY550 ST=STICK(0)560 IF ST=15 THEN 510570 IF ST=6 OR ST=14 OR ST=10 THEN Y=Y-1580 IF ST=5 OR ST=9 OR ST=13 THEN Y=Y+1590} IF ST=5 OR ST=6 OR ST=7 THEN X=X+1600 IF ST=9 OR ST=10 OR ST=11 THEN X=X-1610 IF X>14 THEN X=14620 IF X<7 THEN X=7630 IF} Y>13 THEN Y=13640 IF Y<6 THEN Y=6650 GOTO 510700 POSITION X,Y:? ""710 FOR DELAY=1 TO 15:NEXT DELAY720 POSITION X,Y:? "} "730 FOR DELAY=1 TO 15:NEXT DELAY732 IF K=18 THEN 1000734 IF K=58 THEN 2000736 IF K=10 THEN 3000738 IF K=42 THEN 50007}40 GOTO 550999 REM CLEAR CHAR1000 POKE 764,2551010 GOTO 2001999 REM DEMO CHAR2000 BYTE=0:BIT=02005 GOSUB 40002006 REM }DETERMINE DATA VALUES2010 FOR Y=0 TO 72020 FOR X=7 TO 0 STEP -12030 LOCATE (X+7),(Y+6),PIX2035 POSITION (X+7),(Y+6):PUT #}6,PIX2040 IF PIX=160 THEN PIX=12050 IF PIX=32 THEN PIX=02060 IF X=7 THEN BIT=PIX2070 IF X=6 THEN BIT=PIX*22080 IF X=5 TH}EN BIT=PIX*42090 IF X=4 THEN BIT=PIX*82100 IF X=3 THEN BIT=PIX*162110 IF X=2 THEN BIT=PIX*322120 IF X=1 THEN BIT=PIX*642}130 IF X=0 THEN BIT=PIX*1282140 BYTE=BYTE+BIT2150 NEXT X2160 STORE(Y)=BYTE2165 BYTE=02170 NEXT Y2180 POSITION 2,16:? "D}ATA ";2190 FOR Y=0 TO 62200 STORE=STORE(Y)2210 ? STORE;",";2220 NEXT Y2230 STORE=STORE(7)2240 ? STORE;2242 FOR J=0 TO }7:STORE=STORE(J)2244 POKE CHADD+J,STORE:NEXT J2248 REM ALTER DISPLAY LIST2250 A=PEEK(560)+PEEK(561)*2562260 POKE A+25,6:P}OKE A+26,6:POKE A+27,7:POKE A+28,PEEK(A+29):POKE A+29,PEEK(A+30):POKE A+30,PEEK(A+31)2265 REM PRINT CHAR TO SCREEN2270 POSI }TION 2,18:? " GR 0: & & & & & & & & & & & & &";2280 POSITION 0,20:? #6;"GR 1: & & & & & & &";2290 POSITION 0,21:? #6;"GR } 2: & & & & & & &";2345 POKE 764,2552350 GOTO 5002999 REM PRINT DATA TO PRINTER3000 TRAP 31003005 POKE 559,03030 GOSUB }32003040 LPRINT "DATA ";S0;",";S1;",";S2;",";S3;",";S4;",";S5;",";S6;",";S73050 POKE 559,343060 POKE 764,2553070 GOTO 200 }3100 GOSUB 40003110 POKE 559,343120 POSITION 2,173130 ? " PRINTER NOT CONNECTED"3140 ? " - OR -"3150 ? " PRI }NTER TURNED OFF"3160 FOR DELAY=1 TO 400:NEXT DELAY3165 GOSUB 40003170 POKE 764,2553180 GOTO 2003200 S0=STORE(0):S1=STORE}(1):S2=STORE(2):S3=STORE(3):S4=STORE(4):S5=STORE(5):S6=STORE(6):S7=STORE(7)3210 RETURN 3999 REM CLEAR DATA SUB4000 POSITIO}N 2,164010 FOR Y=16 TO 194020 ? " "4030 NEXT Y4040 POSITION 0,20:? " } "4050 POSITION 0,21:? " "4200 RETURN 4999 REM ENTER DATA INTO PROGRAM5000 POKE 559,05010 GOSUB 3200}5020 GOSUB 52005030 ? 9000+N;" DATA ";S0;",";S1;",";S2;",";S3;",";S4;",";S5;",";S6;",";S75040 GOSUB 52105050 N=N+15060 PO}KE 764,2555070 POKE 559,345080 GOTO 2005200 ? CHR$(125):? :RETURN 5210 ? :? :? "CONT":POSITION 0,0:POKE 842,13:STOP 5220} POKE 842,12:? CHR$(125):? :RETURN 6000 ? " CHARACTER EDITOR"6010 ? " "6020 RETURN 5220y10 N=020 MEMTOP=PEEK(106)*25630 CHBASE=MEMTOP-204840 REM CLEAR MEMORY FOR NEW CHARACTER SET50 FOR I=CHBASE TO CHBASE+1024}60 POKE I,070 NEXT I80 REM POKE NEW CHARACTER SET INTO MEMORY90 READ A100 IF A=999 THEN 300:REM 999 IS END OF DATA FLAG}110 POKE CHBASE+N,A120 N=N+1130 GOTO 90190 REM DATA STATEMENTS FOR SPACE,6 CHARACTERS AND FLAG. FIRST CHARACTER MUST BE A }SPACE195 REM LINE 220 IS A SPACE TO SKIP THE QUOTATION MARKS200 DATA 0,0,0,0,0,0,0,0210 DATA 32,33,35,35,35,35,255,255220} DATA 0,0,0,0,0,0,0,0230 DATA 112,112,112,112,248,248,248,248240 DATA 248,252,254,254,86,6,255,255250 DATA 0,0,32,32,32,32},112,240260 DATA 41,38,32,32,32,32,32,32270 DATA 0,0,0,0,0,32,32,48280 DATA 999290 REM SET GRAPHICS MODE300 GRAPHICS 23}10 REM TELL COMPUTER WHERE TO FIND NEW CHARACTER SET320 POKE 756,CHBASE/256324 REM PRINT NEW CHARACTERS325 POSITION 9,733}0 ? #6;"'%"335 POSITION 9,8340 ? #6;"&#"345 POSITION 9,9350 ? #6;"!$"360 GOTO 360INT NEW CHARACTERS325 POSITION 9,733W10 CLR 20 REM N = NUMBER OF CHARACTERS IN CHNEW$ STRING30 N=31:CHORG=5734440 REM DEFINE STRING50 DIM CHNEW$(N)60 CHNEW$=}"!#$%&'()*+,-./;<=>?@BGHJKMNPQVW"70 REM FIND CHBASE80 CHBASE=(PEEK(106)-8)*25690 ? :? " PLEASE WAIT, 760 NUMBERS TO MOVE"}100 REM COPY STANDARD CHARACTER SET FROM CHORG TO CHBASE110 FOR I=0 TO 511120 POKE CHBASE+I,PEEK(CHORG+I)130 NEXT I140 R}EM READ AND POKE CUSTOM DATA INTO THE CHARACTERS IN STRING CHNEW$"150 FOR I=1 TO N160 CHADD=CHBASE+(ASC(CHNEW$(I))-32)*817 }0 FOR J=0 TO 7180 READ A190 POKE CHADD+J,A200 NEXT J210 NEXT I300 REM CUSTOM CHARACTER DATA301 DATA 0,0,0,128,0,0,0,03!}02 DATA 0,0,0,0,0,0,0,16303 DATA 0,0,0,0,1,0,0,0304 DATA 8,0,0,0,0,0,0,0305 DATA 0,0,0,0,0,0,31,127306 DATA 0,0,0,0,0,0,2"}55,255307 DATA 0,0,0,0,0,0,248,254308 DATA 0,0,0,0,7,15,31,31309 DATA 1,7,31,24,255,255,255,219310 DATA 255,231,255,0,255#},255,255,219311 DATA 128,224,248,24,255,255,255,219312 DATA 0,0,0,0,224,240,248,248313 DATA 31,31,15,7,1,1,3,2314 DATA 21$}9,255,255,255,127,16,32,64315 DATA 219,255,255,255,255,24,60,60316 DATA 219,255,255,255,254,8,4,2317 DATA 248,248,240,224,%}128,128,192,64318 DATA 6,5,6,12,127,0,0,0319 DATA 128,0,0,0,0,0,0,0320 DATA 60,126,126,126,60,60,60,60321 DATA 1,0,0,0,0,&}0,0,0322 DATA 96,160,96,48,254,0,0,0323 DATA 24,24,24,24,24,0,0,0324 DATA 128,192,240,240,248,252,254,255325 DATA 129,195'},231,255,255,255,255,255326 DATA 128,192,192,224,224,224,248,255327 DATA 1,3,7,31,63,63,127,255328 DATA 1,3,7,7,15,31,63,2(}55329 DATA 255,255,255,255,255,254,249,7330 DATA 252,251,247,207,191,127,255,255331 DATA 255,255,255,255,255,255,255,2554)}00 REM PUT PLAYFIELD ON SCREEN420 GRAPHICS 2:POKE 752,1500 REM TELL COMPUTER WHERE TO FIND NEW CHARACTER SET510 POKE 756,C*}HBASE/256530 SETCOLOR 0,3,6:SETCOLOR 1,8,6:SETCOLOR 2,1,10:SETCOLOR 3,0,10540 REM PLOT CHARACTERS USING COLOR DATA550 FOR +}ROW=0 TO 9560 FOR COLUMN=0 TO 19570 READ CHAR580 COLOR CHAR590 PLOT COLUMN,ROW600 NEXT COLUMN610 NEXT ROW620 REM PRINT,} STANDARD NUMBERS AND LETTERS IN TEXT WINDOW630 ? :? "FUEL:2568 STARDATE:174 ALTITUDE:390";640 REM BLINK ENGINE EXHAUST6-}50 FOR LUM=0 TO 8 STEP 2660 SETCOLOR 0,3,LUM670 NEXT LUM680 GOTO 650699 REM CHARACTER COLOR DATA700 DATA 0,129,0,0,0,0,1.}31,0,132,0,133,0,0,132,0,0,0,0,0,131701 DATA 0,0,0,133,0,0,0,0,6,7,8,0,129,0,0,129,0,133,0,0702 DATA 0,133,0,0,132,0,9,10,1/}1,11,11,12,13,129,0,0,131,0,129,0703 DATA 0,0,132,0,0,0,14,15,27,27,27,28,29,0,133,0,0,0,0,132704 DATA 202,133,0,132,0,133,0}30,31,64,64,64,98,103,0,129,0,206,202,132,0705 DATA 215,203,202,0,0,0,129,133,72,72,72,0,133,0,206,203,215,215,205,0706 DAT1}A 215,215,215,205,133,0,206,203,215,202,133,0,0,208,215,215,215,215,215,202707 DATA 215,215,209,214,215,215,215,215,215,215,2}215,209,214,215,215,215,215,215,215,215708 DATA 215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,3}215709 DATA 215,215,215,215,215,115,99,111,114,101,26,21,16,19,23,215,215,215,215,2155,215,215,215,215,215,215,215,215,215,W5 ? "What ANTIC mode do you want? (4 or 5"10 TRAP 10:INPUT M:IF M<4 OR M>5 THEN M=215 ? "Writing a display list in ANTIC "5};M:GOSUB 400020 END 4000 DL=PEEK(560)+256*PEEK(561):POKE DL+3,M+644005 FOR I=DL+6 TO DL+16+12*(M=4):POKE I,M:NEXT I:POKE I6},65:POKE I+1,0:POKE I+2,DL/256:RETURN +256*PEEK(561):POKE DL+3,M+644005 FOR I=DL+6 TO DL+16+12*(M=4):POKE I,M:NEXT I:POKE I'5 DIM CHSET$(20):CHSET$="D:CASTLE.SET":GOSUB 40006 END 4000 A=PEEK(106):TOP=A-8:CHBAS=TOP+4:DL=256*TOP:POKE 106,TOP:CH=CHBA8}S*256:GRAPHICS 0:? "Loading ";CHSET$4005 X=16:ICCOM=834:ICBADR=836:ICBLEN=840:SL=PEEK(88):SH=PEEK(89)4010 OPEN #1,4,0,CHSET9}$4015 POKE ICBADR+X+1,CHBAS:POKE ICBADR+X,0:POKE ICBLEN+X+1,4:POKE ICBLEN+X,04020 POKE ICCOM+X,7:I=USR(ADR("hhhLV"),X):CL:}OSE #1:? "What ANTIC mode do you want? (4 or 5)"4025 TRAP 4025:INPUT M:IF M<4 OR M>5 THEN 40254030 ? "Writing the display l;}ist for ANTIC ";M4035 FOR I=0 TO 2:POKE DL+I,112:NEXT I:POKE DL+3,M+64:POKE DL+4,SL:POKE DL+5,SH4040 FOR I=DL+6 TO DL+16+12<}*(M=4):POKE I,M:NEXT I:POKE I,65:POKE I+1,0:POKE I+2,DL/2564045 POKE 756,CHBAS:POKE 560,0:POKE 561,DL/256I=DL+6 TO DL+16+12k900 OPEN #1,8,0,"D1:CASTLE.SET"910 FOR I=1 TO 1024:READ N:PUT #1,N:NEXT I:CLOSE #1:? I:END 1000 DATA 0,0,0,0,0,0,0,01008 D>}ATA 255,84,84,84,84,84,84,681016 DATA 255,21,21,21,21,21,21,171024 DATA 191,191,186,255,171,171,171,2551032 DATA 0,25,0,0,?}0,0,0,01040 DATA 0,4,16,64,85,64,16,41048 DATA 1,3,1,3,1,3,1,31056 DATA 64,192,64,192,64,192,64,1921064 DATA 0,0,3,15,63,@}252,240,1921072 DATA 0,0,192,240,252,63,15,31080 DATA 255,3,3,3,3,3,3,31088 DATA 255,0,0,0,0,0,0,01096 DATA 0,0,0,0,68,32A},0,01104 DATA 250,250,255,255,175,175,170,2551112 DATA 0,8,17,0,0,0,0,01120 DATA 17,8,0,0,0,0,0,01128 DATA 252,63,15,3,0,B}0,0,01136 DATA 85,85,85,85,85,85,85,851144 DATA 255,255,3,3,12,240,0,01152 DATA 255,255,0,0,0,0,0,01160 DATA 255,255,192,C}192,48,15,0,01168 DATA 0,0,0,0,0,0,192,2401176 DATA 0,0,0,0,0,0,3,151184 DATA 3,3,3,12,12,240,0,01192 DATA 0,0,3,15,63,25D}2,243,1951200 DATA 63,252,240,192,0,0,0,01208 DATA 42,4,4,4,4,0,0,01216 DATA 255,192,192,192,192,192,192,1921224 DATA 0,0E},192,240,252,63,207,1951232 DATA 171,171,171,171,251,251,255,2551240 DATA 192,192,192,48,48,15,0,01248 DATA 255,255,255,25F}5,171,171,171,2551256 DATA 0,0,0,0,0,32,68,01264 DATA 186,186,186,255,171,171,171,2551272 DATA 186,255,171,255,186,255,171G},2551280 DATA 0,0,0,0,255,195,195,1951288 DATA 0,0,0,0,0,0,0,2551296 DATA 64,80,84,85,85,85,85,851304 DATA 3,3,3,3,3,3,3,H}2551312 DATA 192,192,192,192,192,192,192,1921320 DATA 3,3,3,3,3,3,3,31328 DATA 64,64,80,80,84,84,85,851336 DATA 255,255,2I}55,255,255,255,255,2551344 DATA 0,0,0,0,171,171,171,2551352 DATA 171,171,171,255,171,171,171,2551360 DATA 192,192,224,224,J}232,232,234,2551368 DATA 3,3,11,11,43,43,171,2551376 DATA 170,170,170,170,175,175,255,2551384 DATA 175,175,255,255,251,251K},171,2551392 DATA 0,0,0,0,1,5,21,851400 DATA 0,0,0,0,64,80,84,851408 DATA 192,192,192,192,192,192,192,2551416 DATA 87,23,L}87,3,3,3,3,31424 DATA 1,1,5,5,21,21,85,851432 DATA 0,0,0,255,186,255,171,2551440 DATA 1,5,21,85,85,85,85,851448 DATA 255,M}195,195,195,255,0,0,01456 DATA 213,212,213,192,192,192,192,1921464 DATA 255,195,195,195,255,195,195,1951472 DATA 171,171,4N}3,43,11,11,3,31480 DATA 11,11,11,15,3,3,3,31488 DATA 234,234,232,232,224,224,192,1921496 DATA 224,224,224,240,192,192,192,O}1921504 DATA 186,186,186,255,43,43,43,631512 DATA 85,20,16,4,1,17,68,161520 DATA 2,2,10,22,22,86,86,851528 DATA 252,236,1P}72,44,5,5,5,2451536 DATA 84,80,64,16,68,68,16,641544 DATA 4,4,21,20,85,85,84,801552 DATA 4,5,1,21,31,31,31,951560 DATA 0,Q}0,64,84,84,0,0,01568 DATA 0,0,1,21,21,0,0,01576 DATA 16,16,84,20,85,85,21,51584 DATA 0,3,3,15,61,4,17,321592 DATA 85,133,R}129,149,154,154,154,1541600 DATA 128,128,160,148,148,149,149,851608 DATA 85,16,4,1,17,68,16,641616 DATA 85,80,64,0,0,64,64S},161624 DATA 21,5,1,4,17,17,4,11632 DATA 64,240,176,188,95,68,81,661640 DATA 66,81,93,93,93,93,253,851648 DATA 85,85,85,8T}5,85,85,51,511656 DATA 32,17,29,29,29,29,31,211664 DATA 85,82,66,86,166,166,166,1661672 DATA 66,81,221,221,221,221,253,85U}1680 DATA 0,3,3,3,1,4,16,161688 DATA 63,59,58,56,80,80,80,951696 DATA 16,80,64,84,244,244,244,2451704 DATA 85,5,1,0,0,1,1,V}41712 DATA 64,240,176,176,80,68,65,651720 DATA 85,20,4,16,64,68,17,41728 DATA 84,68,84,16,16,20,16,201736 DATA 4,16,64,0,W}80,68,17,41744 DATA 255,195,255,12,12,252,60,2521752 DATA 5,7,12,48,63,53,53,631760 DATA 192,0,0,0,252,92,92,2521768 DATAX} 0,0,20,125,255,195,195,2551776 DATA 0,0,0,5,21,85,84,851784 DATA 0,0,5,16,64,64,80,51792 DATA 0,0,0,0,0,21,65,161800 DATY}A 0,0,80,4,1,1,5,801808 DATA 68,100,100,32,32,20,33,321816 DATA 0,0,0,0,64,21,85,811824 DATA 0,0,16,4,1,65,84,01832 DATA Z}16,16,16,68,68,65,17,811840 DATA 60,56,56,21,80,80,20,481848 DATA 16,16,16,20,17,17,64,691856 DATA 60,28,223,215,215,215,2[}15,2351864 DATA 48,48,240,240,252,255,252,651872 DATA 48,48,60,63,63,63,63,241880 DATA 48,60,60,204,204,204,204,681888 DA\}TA 48,236,239,16,100,100,85,481896 DATA 60,248,248,32,96,84,80,801904 DATA 16,4,0,85,5,0,4,161912 DATA 0,32,32,32,32,32,21]},321920 DATA 16,80,69,85,64,80,68,171928 DATA 60,40,40,21,84,84,84,481936 DATA 240,176,176,16,20,20,80,481944 DATA 0,0,0,^}0,1,84,85,691952 DATA 1,4,4,84,16,16,64,641960 DATA 0,4,1,1,81,85,69,211968 DATA 60,44,44,15,19,80,16,161976 DATA 4,20,68_},21,85,1,1,51984 DATA 250,250,186,255,171,171,171,2551992 DATA 186,186,186,255,232,232,232,2522000 DATA 0,0,0,0,0,100,0,0`}2008 DATA 255,60,60,255,60,48,48,02016 DATA 3,12,48,192,80,196,1,0,186,186,255,232,232,232,2522000 DATA 0,0,0,0,0,100,0,0D20 REM éԠ͠٠30 DIM A$(1),O$(1),CLEAR2$(1),ZERO$(1),CLEAR1$(1),CLEAR4$(1),FILE$(15),NAME$(15),A(7,8)b}40 GOTO 118050 SOUND 0,Y/2+100-X/4,10,4:FOR D=1 TO 8:NEXT D:SOUND 0,0,0,0:RETURN 60 REM ՠ70 GOSUB 110:POSITION 1,08c}0 ? "dit opy oad Set ub"90 ? "Color ,,or ave Set est"100 ? "mode * CHOOSE ONE *"d};:RETURN 110 CLEAR2$=ZERO$(1,120):RETURN 120 REM Π٠Π130 POKE 87,3:POKE 88,PEEK(DL+4):POKE 89,PEEK(e}DL+5):RETURN 140 POKE 82,1:POKE 87,0:POKE 88,HOME+100-INT((HOME+100)/256)*256:POKE 89,INT((HOME+100)/256):RETURN 150 POKE 8f}2,4:POKE 87,0:POKE 88,HOME+220-INT((HOME+220)/256)*256:POKE 89,INT((HOME+220)/256):RETURN 160 POKE 82,0:POKE 87,0:POKE 88,HOg}ME+380-INT((HOME+380)/256)*256:POKE 89,INT((HOME+380)/256):RETURN 170 POKE 82,0:POKE 87,0:POKE 88,HOME+460-INT((HOME+460)/25q}6BP007L1 LSTB P007L2 LSTBP016L1 LSTBP016L2 LSTBP019L1 LSTB P023L1 LSTB'P023L2 LSTB.P023L3 LSTB5P007L1 BASB;P007L2 BASBAP016L1 BASBFP016L2 BASBLP019L1 BASB QP023L1 BASB^P023L2 BASB fP023L3 BASBoP032L1 LSTBrP032L2 LSTBvP032L3 LSTB wP032L4 LSTB P037L1 LSTBP041L1 LSTBP044L1 LSTBP044L2 LSTBP032L1 BASBP032L2 BASBP032L3 BASBP032L4 BASB P037L1 BASBP041L1 BASBP044L1 BASBP044L2 BASBP052L1 LSTBP052L2 LSTB P061L1 LSTBP061L2 LSTBP061L3 LSTB4P071L1 LSTB7P072L1 LSTB$=P078L1 LSTBPaP084L1 LSTBP052L1 BASBP052L2 BASB$P061L1 BASB P061L2 BASBP061L3 BASBP071L1 BASB P072L1 BASBP078L1 BASB`2P084L1 BASB CASTLE SET6)*256:POKE 89,INT((HOME+460)/256):RETURN 180 GOSUB 160:POKE 766,1:POSITION 11,1:? CHR$(CHR):POSITION 18,1:? CHR$(CHR+128):Pr}OSITION 25,1190 FOR A=1 TO 5:? CHR$(CHR);:NEXT A:? :GOSUB 170:POSITION 11,1:? CHR$(CHR):POSITION 18,1:? CHR$(CHR+128)200 POs}SITION 25,1:FOR A=0 TO 5:? CHR$(CHR);:NEXT A:POKE 766,0:RETURN 210 REM ԠӠ220 GOSUB 130:F=X/4:G=(Y-20)/4:LOCATE 8t}+F,G+1,A:SOUND 0,20+G-F,10,2:COLOR C*(A=0):PLOT 8+F,G+1:PLOT 9+F,G+1230 IF C=1 THEN PLOT 28+F,G+1:COLOR 0:PLOT 27+F,G+1:A(G,u}F+1)=INT(2^(6-F)+0.1)240 IF C=2 THEN PLOT 27+F,G+1:COLOR 0:PLOT 28+F,G+1:A(G,F)=INT(2^(7-F)+0.1)250 IF C=3 THEN PLOT 27+F,Gv}+1:PLOT 28+F,G+1:A(G,F)=INT(2^(7-F)+0.1):A(G,F+1)=INT(2^(6-F)+0.1)260 IF A>0 THEN A(G,F)=0:A(G,F+1)=0270 A(G,8)=0:FOR D=0 Tw}O 7:A(G,8)=A(G,8)+A(G,D):NEXT D:POKE CHBASE+CHR*8+G,A(G,8)280 SOUND 0,0,0,0:GOSUB 140:RETURN 290 REM Ԡ300 GOSUB 110:Gx}OSUB 340310 POSITION 10,1:? "- Select character -";320 GET #3,CHR:GOSUB 360:GOSUB 140:RETURN 330 FOR A=0 TO 7:POKE CHBASE+y}CHR*8+A,0:NEXT A340 CLEAR1$=ZERO$(1,100)350 FOR A=0 TO 7:FOR B=0 TO 8:A(A,B)=0:NEXT B:NEXT A:RETURN 360 REM Ԡšz}Ҡ370 POSITION 6,0:? "Use joystick to move cursor.":POSITION 8,1:? "Press FIRE to plot point."380 POSITION 14,2:? "( for M{}ENU)";390 GOSUB 180400 GOSUB 130:IF CHR>127 THEN CHR=CHR-128410 IF CHR>127 THEN CHR=CHR-128420 IF CHR>31 AND CHR<96 THEN |}CHR=CHR-32:GOTO 440430 IF CHR<32 THEN CHR=CHR+64440 R=CHBASE+CHR*8:FOR A=0 TO 7:D=PEEK(R+A):B=A+1450 F=0:IF D>127 THEN D=D}}-128:F=F+1:COLOR 2:PLOT 27,B:PLOT 8,B:PLOT 9,B:A(A,0)=128:A(A,8)=A(A,8)+A(A,0)460 IF D>63 THEN D=D-64:F=F+1:COLOR 1:PLOT 28,~}B:PLOT 8,B:PLOT 9,B:A(A,1)=64:A(A,8)=A(A,8)+A(A,1)470 IF F>1 THEN COLOR 3:PLOT 27,B:PLOT 28,B:PLOT 8,B:PLOT 9,B480 F=0:IF D}>31 THEN D=D-32:F=F+1:COLOR 2:PLOT 29,B:PLOT 10,B:PLOT 11,B:A(A,2)=32:A(A,8)=A(A,8)+A(A,2)490 IF D>15 THEN D=D-16:F=F+1:COLO}R 1:PLOT 30,B:PLOT 10,B:PLOT 11,B:A(A,3)=16:A(A,8)=A(A,8)+A(A,3)500 IF F>1 THEN COLOR 3:PLOT 29,B:PLOT 30,B:PLOT 10,B:PLOT 1}1,B510 F=0:IF D>7 THEN D=D-8:F=F+1:COLOR 2:PLOT 31,B:PLOT 12,B:PLOT 13,B:A(A,4)=8:A(A,8)=A(A,8)+A(A,4)520 IF D>3 THEN D=D-4}:F=F+1:COLOR 1:PLOT 32,B:PLOT 12,B:PLOT 13,B:A(A,5)=4:A(A,8)=A(A,8)+A(A,5)530 IF F>1 THEN COLOR 3:PLOT 31,B:PLOT 32,B:PLOT 1}2,B:PLOT 13,B540 F=0:IF D>1 THEN D=D-2:F=F+1:COLOR 2:PLOT 33,B:PLOT 14,B:PLOT 15,B:A(A,6)=2:A(A,8)=A(A,8)+A(A,6)550 IF D>0 }THEN F=F+1:COLOR 1:PLOT 34,B:PLOT 14,B:PLOT 15,B:A(A,7)=1:A(A,8)=A(A,8)+A(A,7)560 IF F>1 THEN COLOR 3:PLOT 33,B:PLOT 34,B:PL}OT 14,B:PLOT 15,B570 NEXT A:GOSUB 140:RETURN 580 REM ԠӠ590 GOSUB 110:POSITION 5,0:? "Your typed characters"}:POSITION 7,1:? "will appear below. NORMAL"600 POSITION 2,2:? "- Press Π for menu -";610 D=1:POKE 764,255:CLEAR4}$=ZERO$:GOSUB 340:GOSUB 160:POKE 84,0:POKE 85,0:POKE 53259,1:A$=ZERO$(1,127)620 POKE 53251,36:A$(86,89)=""630 FOR D=0 T}O 5:POKE DL+D+23,4:NEXT D:POKE DL+29,65:POKE DL+30,PEEK(560):POKE DL+31,PEEK(561)640 A=PEEK(633):ON A<15 GOSUB 1500:IF PEEK(}764)=255 THEN 640650 IF PEEK(764)=39 OR PEEK(764)=103 THEN A=PEEK(84):B=PEEK(85):GOTO 710660 GET #3,CHR:IF CHR=155 THEN GOS}UB 340:CLEAR4$=ZERO$:A$=ZERO$(1,127):GOSUB 140:POKE 694,0:POKE 702,64:GOTO 750670 ? CHR$(CHR);:IF PEEK(84)<0 THEN POKE 84,5}675 IF PEEK(85)>38 THEN POKE 85,0680 IF PEEK(84)>5 THEN POKE 84,0690 POKE 53251,PEEK(85)*4+36:A=PEEK(84)*4+86:A$=ZERO$(1,12}7):A$(A,A+3)=""700 POKE 764,255:GOTO 640710 POKE 694,128*(PEEK(694)=0):POKE 53279,0:GOSUB 140720 IF PEEK(694)=128 THEN} POSITION 29,1:? "Š"730 IF PEEK(694)=0 THEN POSITION 29,1:? " NORMAL "740 POKE 764,255:GOSUB 160:POKE 84,A:POKE 85},B:GOTO 640750 GOSUB 760:GOSUB 140:POKE 53259,3:RETURN 760 POKE DL+23,4:POKE DL+24,4:POKE DL+25,5:POKE DL+26,5:POKE DL+27,6}5:POKE DL+28,PEEK(560):POKE DL+29,PEEK(561)770 RETURN 780 REM ĠҠԠ790 FILE$="load":GOSUB 800:TRAP 890:OPEN} #1,4,0,FILE$:POKE 850,7:GOSUB 870:RETURN 800 POKE 752,0:GOSUB 140:GOSUB 110:POSITION 2,0:? "Enter name to ";FILE$;". (1-8 c}haracters)"810 POSITION 16,1:INPUT NAME$:POKE 752,1:IF NAME$="" THEN POP :RETURN 811 FOR A=1 TO LEN(NAME$):IF NAME$(A,A)=":}" THEN NAME$=NAME$(A+1,LEN(NAME$)):POP :GOTO 811812 IF NAME$(A,A)="." THEN NAME$=NAME$(1,A-1):POP :GOTO 811813 IF ASC(NAME$}(A,A))<65 OR ASC(NAME$(A,A))>90 THEN POP :POP :RETURN 814 NEXT A820 FILE$="D:":REM * Cassette users should replace "D:" w}ith "C:". The remaining file name is irrelevant.830 FILE$(LEN(FILE$)+1)=NAME$:FILE$(LEN(FILE$)+1)=".SET"840 GOSUB 110:RE}TURN 850 REM ŠҠԠ860 FILE$="save":GOSUB 800:TRAP 890:OPEN #1,8,0,FILE$:POKE 850,11:GOSUB 870:RETURN 870 PO}KE 852,0:POKE 853,CHBASE/256:POKE 856,0:POKE 857,4:POKE 756,CHBASE/256:A=USR(1555)880 CLOSE #1:TRAP 32767:POKE 54286,192:POK}E 756,224:RETURN 890 GOSUB 110:POSITION 1,0:? CHR$(253);"An ERROR ";PEEK(195);" has occurred."900 IF PEEK(195)=165 THEN ? "}Improper file name - try again."910 IF PEEK(195)=170 THEN ? "File not found - try again."920 ? "Press any key to continue."};:GET #3,KEY:GOTO 880930 A=STICK(1):IF A<>15 THEN GOSUB 1500:REM ˠ940 A=STICK(0):B=STRIG(0)950 IF A=7 THEN X=X+8:}IF X>24 THEN X=0960 IF A=11 THEN X=X-8:IF X<0 THEN X=24970 IF A=14 THEN Y=Y-4:IF Y<20 THEN Y=48980 IF A=13 THEN Y=Y+4:IF Y}>48 THEN Y=20990 POKE 53251,X+56:A$=O$(81-Y,81-Y+128)1000 IF B=1 AND A<>15 THEN GOSUB 501010 IF PEEK(764)<>255 THEN GOSUB }10501020 IF PEEK(53279)=5 THEN FOR D=0 TO 3:POKE DL+D+19,4*(PEEK(DL+D+19)=2)+2*(PEEK(DL+D+19)=4):NEXT D1030 IF B=0 THEN GOS}UB 2101040 GOTO 9301050 REM Ġˠ1060 GOSUB 140:GET #3,KEY:IF KEY>127 THEN KEY=KEY-128:POKE 694,01070 A=KEY:A=}A+64*(A<32)-32*(A>95)1080 IF A=76 THEN GOSUB 780:GOSUB 601090 IF A=83 THEN GOSUB 850:GOSUB 601100 IF A=69 THEN GOSUB 2901}110 IF A=82 THEN GOSUB 3301115 IF A=67 THEN GOSUB 16301120 IF A=84 THEN GOSUB 580:GOSUB 601130 IF A=77 OR A=32 THEN GOSUB }601140 IF KEY=49 THEN C=11150 IF KEY=50 THEN C=21160 IF KEY=51 THEN C=31170 POKE 764,255:RETURN 1180 REM Ρ}1190 RAMTOP=PEEK(106)-12:POKE 89,RAMTOP:POKE 88,0:? CHR$(125):C=1:CHR=65:OPEN #3,4,0,"K:"1200 POKE 106,RAMTOP:CHBASE=(RAMT}OP+8)*256:PMBASE=(RAMTOP+4)*256:GRAPHICS 0:POKE 710,1761210 POKE 203,CHBASE/256:POSITION 9,3:? "Ǡ";:GOSU}B 3501220 FOR A=0 TO 24:READ B:POKE 1536+A,B:NEXT A:POKE 512,0:POKE 513,61230 VT=PEEK(134)+256*PEEK(135):AT=PEEK(140)+256*P}EEK(141)1240 X=CHBASE-AT:Y=57344-AT:GOSUB 1320:POKE VT+2,X2:POKE VT+3,X1:POKE VT+4,1:POKE VT+5,4:POKE VT+6,1:POKE VT+7,4126}0 POKE VT+10,Y2:POKE VT+11,Y1:POKE VT+12,1:POKE VT+13,4:POKE VT+14,1:POKE VT+15,4:A$=O$1270 X=PMBASE+896-AT:Y=PMBASE-AT:GOSU}B 1320:POKE VT+2,X2:POKE VT+3,X1:POKE VT+10,Y2:POKE VT+11,Y11280 X=PEEK(88)+256*PEEK(89)+100-AT:Y=RAMTOP*256-AT:GOSUB 1320:P}OKE VT+18,X2:POKE VT+19,X1:POKE VT+26,Y21290 POKE VT+27,Y1:X=PEEK(88)+256*PEEK(89)-AT:GOSUB 1320:POKE VT+34,X2:POKE VT+35,X1}1300 X=PEEK(88)+256*PEEK(89)+380-AT:GOSUB 1320:POKE VT+42,X2:POKE V7+43,X11310 FOR A=4 TO 44 STEP 8:FOR B=0 TO 3:READ D:POK}E VT+A+B,D:NEXT B:NEXT A:GOTO 13301320 X1=INT(X/256):X2=INT(X-(256*X1)):Y1=INT(Y/256):Y2=INT(Y-(256*Y1)):RETURN 1330 REM С}үŠӠ1340 POKE 54279,PMBASE/256:FOR D=0 TO 2:POKE 704+D,6:NEXT D:POKE 707,681350 FOR D=53248 TO 53255:REA}D X:POKE D,X:NEXT D:FOR D=53256 TO 53258:POKE D,1:NEXT D:POKE 53259,3:X=01360 FOR A=0 TO 256 STEP 128:FOR D=20 TO 52 STEP 4:}POKE PMBASE+512+A+D,21:NEXT D:NEXT A1370 FOR D=22 TO 50 STEP 4:POKE PMBASE+384+D,85:NEXT D:POKE 623,171380 Y=20:FOR D=0 TO }3:POKE PMBASE+D+Y+896,3:NEXT D:FOR D=0 TO 3:POKE PMBASE+D+80,3:NEXT D1390 REM Ƞ٠Π1400 GRAPHICS 0:POK}E 752,1:POKE 711,68:DL=PEEK(560)+256*PEEK(561):HOME=PEEK(DL+4)+256*PEEK(DL+5):POKE DL+3,721410 FOR D=0 TO 8:POKE DL+D+6,8:NE}XT D:POKE DL+18,144:GOSUB 760:POKE 54286,1921420 GOSUB 150:POSITION 4,0:POKE 766,1:FOR F=0 TO 3:FOR D=0 TO 31:? CHR$(D+32*F)};:NEXT D:? :NEXT F:POKE 766,01430 POKE 559,46:POKE 53277,3:GOSUB 390:GOSUB 140:GOSUB 60:GOTO 9301440 DATA 72,138,72,152,72,}165,203,141,10,212,141,9,212,104,168,104,170,104,64,104,162,16,76,86,2281450 DATA 128,0,128,0,128,1,128,1,120,0,120,0,160,0,}160,0,100,0,100,0,160,0,160,01460 DATA 149,161,173,56,83,91,99,1071500 B=STRIG(1)*4:D=PEEK(53279)=3:IF A=7 THEN A=121510 A}=A-10:IF A<0 THEN RETURN 1520 A=A+B:ON A GOTO 1530,1540,1550,1560,1570,1580,1590,1610:RETURN 1530 POKE 712,PEEK(712)-2+256*}(PEEK(712)<2):RETURN 1540 POKE 712,PEEK(712)+2-256*(PEEK(712)>252):RETURN 1550 POKE 710,PEEK(710)-2+256*(PEEK(710)<2):RETUR}N 1560 POKE 710,PEEK(710)+2-256*(PEEK(710)>252):RETURN 1570 POKE 709,PEEK(709)-2+256*(PEEK(709)<2):RETURN 1580 POKE 709,PE}EK(709)+2-256*(PEEK(709)>252):RETURN 1590 IF NOT D THEN POKE 708,PEEK(708)-2+256*(PEEK(708)<-2):RETURN 1600 POKE 711,PEEK(}711)-2+256*(PEEK(710)<2):RETURN 1610 IF NOT D THEN POKE 708,PEEK(708)+2-256*(PEEK(708)>252):RETURN 1620 POKE 711,PEEK(711)}+2-256*(PEEK(711)>252):RETURN 1630 GOSUB 110:GOSUB 340:POSITION 8,1:? "Select character to copy"1640 KEY=CHR:GET #3,CHR:GOS}UB 3901650 FOR A=0 TO 7:POKE CHBASE+KEY*8+A,PEEK(CHBASE+CHR*8+A):NEXT A:GOSUB 140:GOTO 70 copy"1640 KEY=CHR:GET #3,CHR:GOS[N3HCHBACHSENCHRPL 6-BsD$$6-+F:A,}&@,$AV-A#(%F:%,2 <AV'AVF/"/NUMBER OF CHARACTERS TO BE CU}STOMIZEDP-@Z4"4INTERNAL VALUE OF CHARACTER TO BE REPLACEDd-@n"x%@$%}  LINE 170 IS OPTIONAL))IT JUST DISPLAYS ALL THE CHARACTERS.-AU* >:@',>:,}. NUMBER OF CHARACTERS1 32,0,1,126,164,36,36,36,36 D4:P052L1.BASAU* >:@',>:,b  !SCCH +@%%6-F:@,%AV$F:@, }CHARACTER #? (0-127)}(2!! )!A'@0< @>:A%,F-@P00%@%@$F:BsD%}$@%,Z d @0 D4:P052L2.BAS>:A%,F-@P00%@%@$F:BsD%5EFCSTORECHBASCHORCHADDELASBYTBIPISTORSSSSSSSS@} } (},@@K:L@@S:f0@}@ @0@@ @AR@ ';@,9@,'6- A`('( ('}(PLUG JOYSTICK INTO JACK 12$$(DRAW CHARACTER WITH JOYSTICK<*$(HOLD TRIGGER BUTTON TO ERASE'(*(F'( ('( } PLEASE WAIT . . .Z0$6-+F:A,&@,$AV06-BsDd(-A#$%F:%,( i 6.&n 6}-%+@:,&@2,$@xAV'AV% (}AR@% A`*-@&68,-}* (( 87654321( ( | | 1( | | 2))(! | | 3 } C = CLEAR CHAR((( | | 4 D = DEMO CHAR))(! | | 5 P = PRINT DATA"))(! | | 6 E} = ENTER DATA,( | | 76( | | 8@( MAIN LOOP6-@6-@}6-F:Ad, T:,"A"@A"@XA "@A0}"@BAP -( -@@  -(-@@ &6-R:,0}"@A:1#"@)"@)"@16-&@D1#"@)"@ )"@16-%@N1#"@})"@)"@16-%@X1#"@ )"@)"@16-&@b!@6-@l @}6-@v!@6-@ @6-@ A -(-@@ } -( -@@ "@A"@XA "@A0"@B}AP APCLEAR CHARAdAU ADEMO CHAR6-6- A@}DETERMINE DATA VALUES-@ -@6@1+%@,+%@,*-+%}@,+%@,**@"A`6-@"@26- "@6-"@}6-$@ "@6-$@*"@6-$@4"@6-$@>"@6-$@2}H"@6-$@dR"6-$A(\ 6-%f p 68,-u6-z  -@}@ (DATA -@ 6-8, (, 6-8@,( -@ }6-8, % ALTER DISPLAY LIST%%6-F:A`,%F:Aa,$AV%@%@+%@&@}?%@'@X%@(F:%@),q%@)F:%@0,%@0F:%@1,PRINT CHAR TO SCREEN}>-@@>(# GR 0: & & & & & & & & & & & & &7-@ 7(@GR 1: & & & & & & &7-}@!7(@GR 2: & & & & & & &) AdAU. A PRINT DATA TO PRINTER A1 }AY A2 993DATA ,,,,,,, AY@4 AdAU} A A@& AY@40 -@@: ( PRINTER NOT CONNECTEDD ( - OR -N} ( PRINTER TURNED OFFX -@A ] A@b AdAUl A {6-8,!6-}8@,06-8@,?6-8@,N6-8@,]6-8@,l6-8@,{6-8@, $CLEAR DATA SUB}-@@-@@--(%  --@ -( } --@!-( h$ENTER DATA INTO PROGRAMAY A}2 ARDD(A% DATA ,,,,,,, AR6-%@A}dAUAY@4 AP(>:A%,($Z9( ((CONT$-6AB@9&}d(AB@"(>:A%,%(($p""( CHARACTER EDITORz""( $ D4:}P061L1.BAS@"(>:A%,%(($p""( CHARACTER EDITORz""( $ D4: 8MEMTOCHBAS 6-6-F:A,$AV6-&A H}(((CLEAR MEMORY FOR NEW CHARACTER SET2-%A$<F P((POKE NEW CHARACTER SET INTO MEMORYZ}"d1"A A1999 IS END OF DATA FLAGn %x6-%@ @VVDATA STATEMENTS FOR SPAC}E,6 CHARACTERS AND FLAG. FIRST CHARACTER MUST BE A SPACE55LINE 220 IS A SPACE TO SKIP THE QUOTATION MARKS0,0,0,0,0,}0,0,032,33,35,35,35,35,255,2550,0,0,0,0,0,0,0%%112,112,112,112,248,248,248,248""248,252,254,254,86,6,255,}2550,0,32,32,32,32,112,24041,38,32,32,32,32,32,320,0,0,0,0,32,32,48 999"SET GRAPHICS MODE, +@}633TELL COMPUTER WHERE TO FIND NEW CHARACTER SET@AV'AVDPRINT NEW CHARACTERSE-@ @}J(@'%O-@ @T(@&#Y-@ @ ^(@!$h A` D4:P}061L2.BAS'%O-@ @T(@&#Y-@ @ ^(@!$h A` D4:P *+A V CHORCHNEWCHBASCHADROCOLUMCHALU} //N = NUMBER OF CHARACTERS IN CHNEW$ STRING6-@16-BsD(DEFINE STRIN}G2 ;,<))6.!#$%&'()*+,-./;<=>?@BGHJKMNPQVWFFIND CHBASEP$$6-+F:A,&@,$AVZ-(-(" PLEASE }WAIT, 760 NUMBERS TO MOVEd66COPY STANDARD CHARACTER SET FROM CHORG TO CHBASEn-Ax%F:%, }EEREAD AND POKE CUSTOM DATA INTO THE CHARACTERS IN STRING CHNEW$"-@##6-%+@:7,,&@2,$@}-@" %  ,CUSTOM CHARACTER DATA-0,0,0,128,0,0,0,0.0,0,0,0,0,0,0,16/}0,0,0,0,1,0,0,008,0,0,0,0,0,0,010,0,0,0,0,0,31,12720,0,0,0,0,0,255,25530,0,0,0,0,0,248,25440,0,0},0,7,15,31,3151,7,31,24,255,255,255,2196##255,231,255,0,255,255,255,2197$$128,224,248,24,255,255,255,21980,0,}0,0,224,240,248,248931,31,15,7,1,1,3,2:""219,255,255,255,127,16,32,64;""219,255,255,255,255,24,60,60<219,255,}255,255,254,8,4,2=$$248,248,240,224,128,128,192,64>6,5,6,12,127,0,0,0?128,0,0,0,0,0,0,0@ 60,126,126,126,60,6}0,60,60A1,0,0,0,0,0,0,0B96,160,96,48,254,0,0,0C24,24,24,24,24,0,0,0D%%128,192,240,240,248,252,254,255E%%}129,195,231,255,255,255,255,255F%%128,192,192,224,224,224,248,255G1,3,7,31,63,63,127,255H1,3,7,7,15,31,63,255I}##255,255,255,255,255,254,249,7J%%252,251,247,207,191,127,255,255K%%255,255,255,255,255,255,255,255PUT PLAYFIELD} ON SCREEN +@AR@33TELL COMPUTER WHERE TO FIND NEW CHARACTER SETAV'AVk0}@@70@@@Q0@@@k0@@&&PLOT CHARACTERS USING }COLOR DATA&-@ 0-@:"DN ,X b l77PRINT STANDARD NUMBERS AND} LETTERS IN TEXT WINDOWv1(1(%FUEL:2568 STARDATE:174 ALTITUDE:390BLINK ENGINE EXHAUST-@@}0@  APCHARACTER COLOR DATA990,129,0,0,0,0,131,0,132,0,133,0,0,132,0,0,0,0,}0,131550,0,0,133,0,0,0,0,6,7,8,0,129,0,0,129,0,133,0,0==0,133,0,0,132,0,9,10,11,11,11,12,13,129,0,0,131,0,129,0::}0,0,132,0,0,0,14,15,27,27,27,28,29,0,133,0,0,0,0,132EE202,133,0,132,0,133,30,31,64,64,64,98,103,0,129,0,206,202,132,0F}F215,203,202,0,0,0,129,133,72,72,72,0,133,0,206,203,215,215,205,0OO215,215,215,205,133,0,206,203,215,202,133,0,0,208,215},215,215,215,215,202UU215,215,209,214,215,215,215,215,215,215,215,209,214,215,215,215,215,215,215,215UU215,215,215,21}5,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215OO215,215,215,215,215,115,99,111,114,101,26,21,16,19,23,}215,215,215,215,215 D4:P061L3.BAS,215,215,215,215,215,215OO215,215,215,215,215,115,99,111,114,101,26,21,16,19,23,)&mD--(%What ANTIC mode do you want? (4 or 5 3 @' @})!@36-@4*( Writing a display list in ANTIC 4 A@;%6-F:A`,%AV$F:Aa,;%@ }%@dr/-%@%@%@$+"@,59 E@eY%@o%@'AV }r$ D4:P071L1.BAS@%@%@$+"@,59 E@eY%@o%@'AV+,TOCHBADCCHSETICCOICBADICBLESS } -;@ ,#6. D:CASTLE.SET- A@o6-F:A, 6-&@ }.6-%@<6-AV$HAV6-$AV`+o(Loading Q6-@6-A4'6-A636-}A@B6-F:@,Q6-F:@, @@E%%@!%7%%@@}E%\%@'6-?:C:hhhLV,<,2@\(%What ANTIC mode do you want? (4 or 5)/ A@%/} @)!@A@%--(#Writing the display list for ANTIC [-@%%A) ?%@}%@dM%@[%@o/-%@%@%@$+"@,59 E@eY%@}o%@'AV5AV!A`5Aa'AV D4:P072L1.BAS@eY%@cA%..@@ D1:CASTLE.SET>-@A$"(*@, 7}@;(>0,0,0,0,0,0,0,0255,84,84,84,84,84,84,68255,21,21,21,21,21,21,17%%191,191,186,255,171,171},171,2550,25,0,0,0,0,0,00,4,16,64,85,64,16,41,3,1,3,1,3,1,3 !!64,192,64,192,64,192,64,192(0,0,3,15,}63,252,240,19200,0,192,240,252,63,15,38255,3,3,3,3,3,3,3@255,0,0,0,0,0,0,0H0,0,0,0,68,32,0,0P%%250,250},255,255,175,175,170,255X0,8,17,0,0,0,0,0`17,8,0,0,0,0,0,0h252,63,15,3,0,0,0,0p85,85,85,85,85,85,85,85x}255,255,3,3,12,240,0,0255,255,0,0,0,0,0,0255,255,192,192,48,15,0,00,0,0,0,0,0,192,2400,0,0,0,0,0,3},153,3,3,12,12,240,0,00,0,3,15,63,252,243,19563,252,240,192,0,0,0,042,4,4,4,4,0,0,0%%255,192,192,}192,192,192,192,192 0,0,192,240,252,63,207,195%%171,171,171,171,251,251,255,255192,192,192,48,48,15,0,0%%2}55,255,255,255,171,171,171,2550,0,0,0,0,32,68,0%%186,186,186,255,171,171,171,255%%186,255,171,255,186,255,171,2}550,0,0,0,255,195,195,1950,0,0,0,0,0,0,25564,80,84,85,85,85,85,853,3,3,3,3,3,3,255 %%192,192,192,1}92,192,192,192,192(3,3,3,3,3,3,3,3064,64,80,80,84,84,85,858%%255,255,255,255,255,255,255,255@0,0,0,0,171,17}1,171,255H%%171,171,171,255,171,171,171,255P%%192,192,224,224,232,232,234,255X3,3,11,11,43,43,171,255`%%170,170},170,170,175,175,255,255h%%175,175,255,255,251,251,171,255p0,0,0,0,1,5,21,85x0,0,0,0,64,80,84,85%%192,192,19 }2,192,192,192,192,25587,23,87,3,3,3,3,31,1,5,5,21,21,85,850,0,0,255,186,255,171,2551,5,21,85,85,85,85!},85255,195,195,195,255,0,0,0%%213,212,213,192,192,192,192,192%%255,195,195,195,255,195,195,195171,171,43,"}43,11,11,3,311,11,11,15,3,3,3,3%%234,234,232,232,224,224,192,192%%224,224,224,240,192,192,192,192!!186,186,#}186,255,43,43,43,6385,20,16,4,1,17,68,162,2,10,22,22,86,86,85252,236,172,44,5,5,5,24584,80,64,16,68,6$}8,16,644,4,21,20,85,85,84,804,5,1,21,31,31,31,950,0,64,84,84,0,0,0 0,0,1,21,21,0,0,0(16,16,84,20,%}85,85,21,500,3,3,15,61,4,17,328$$85,133,129,149,154,154,154,154@$$128,128,160,148,148,149,149,85H85,16,4,1,17&},68,16,64P85,80,64,0,0,64,64,16X21,5,1,4,17,17,4,1` 64,240,176,188,95,68,81,66h66,81,93,93,93,93,253,85p'}85,85,85,85,85,85,51,51x32,17,29,29,29,29,31,21!!85,82,66,86,166,166,166,166""66,81,221,221,221,221,253,85(}0,3,3,3,1,4,16,1663,59,58,56,80,80,80,95!!16,80,64,84,244,244,244,24585,5,1,0,0,1,1,4 64,240,176,176,)}80,68,65,6585,20,4,16,64,68,17,484,68,84,16,16,20,16,204,16,64,0,80,68,17,4""255,195,255,12,12,252,60,2*}525,7,12,48,63,53,53,63192,0,0,0,252,92,92,252 0,0,20,125,255,195,195,2550,0,0,5,21,85,84,850,0,+}5,16,64,64,80,50,0,0,0,0,21,65,160,0,80,4,1,1,5,8068,100,100,32,32,20,33,320,0,0,0,64,21,85,81 0,},0,16,4,1,65,84,0(16,16,16,68,68,65,17,81060,56,56,21,80,80,20,48816,16,16,20,17,17,64,69@##60,28,223,215,2-}15,215,215,235H""48,48,240,240,252,255,252,65P48,48,60,63,63,63,63,24X!!48,60,60,204,204,204,204,68`!!48,236,23.}9,16,100,100,85,48h60,248,248,32,96,84,80,80p16,4,0,85,5,0,4,16x0,32,32,32,32,32,21,3216,80,69,85,64,80,/}68,1760,40,40,21,84,84,84,48 240,176,176,16,20,20,80,480,0,0,0,1,84,85,691,4,4,84,16,16,64,640,40},1,1,81,85,69,2160,44,44,15,19,80,16,164,20,68,21,85,1,1,5%%250,250,186,255,171,171,171,255%%186,186,186,1}255,232,232,232,2520,0,0,0,0,100,0,0255,60,60,255,60,48,48,03,12,48,192,80,196,1,0 D4:P078L1.BAS86,z_``//AOCLEAR2ZEROCLEAR1CLEAR4FILENAMEADHOMCHCHBASKERAMTOPMBASVAXXYYV3}@ 4}$$é5}Ԡ͠٠pp;@,;@,;@,;@,;@,;@,;@,;@,9@6}<@,( A2v92'@%A&'@@@M-@@Q s27}v$< ՠF A-@P))(!dit opy oad Set ubZ**("Color ,,or 8} ave Set estd/,(#mode * CHOOSE ONE */$n6.7@<A ,$x!!Π٠9}ΠF@@,@F:%@,C@F:%@,F$~@@'@Z@:}%A&P:+%A,'AV,$AV{@P:+%A,'AV,~$~@@'@Z@;}%A &P:+%A ,'AV,$AV{@P:+%A ,'AV,~$~@'@Z@<}%A&P:+%A,'AV,$AV{@P:+%A,'AV,~$~@'@Z@=}%A`&P:+%A`,'AV,$AV{@P:+%A`,'AV,~$k A`Af@1-@@>}8(>:,J-@@Y(>:%A(,k-@%@j-@@(>:,# &(0 ApB-@@?}I(>:,[-@@j(>:%A(,J-@%@)-@1(>:,5 GAfJ$@}ԠӠ A06-'@36-+&@ ,'@K1@%%@q2@ %&@@A}$+",,@%%@,@ %%@u"@%,@(%%@/E,@'%%@B}u68<%@,-P:@#+@&,%?,m"@%,@'%%@/E,@(%%@m68:, F:@, 2@@*F:@,!@8*@*F:@,!@_}*@v(B2QF:@,$@%@6G6-F:@,$@%@^6.7@<A',v67<%@`},.AdAU A@F*AA($+F:A,",<B2yF A@8F:Aa},"A(*-@)@8( Š8F:A,"*-@)@8( NORMAL AAdAU b}A`+@7@A A@, A` A@)B2Y@,$%@#@+%@$@c}?%@%@S%@&@g%@'@e~%@(F:A`,%@)F:Aa,$ d}ҠԠ^6.load A" A?@@QAP@[ Ap^$ eARe} A@) A;-@e(Enter name to . (1-8 characters)*8-@@+AR@f}245'8$+D-@B:,!7<,4:76.7%@067B:,%@,.067B:,%@,..SETH A$Ri}ŠҠԠ\^6.save A" A?@@QAP@[ Ap^$fpARj})AS'AV;AVMAW@aAV'AVp6-?:AU,p?@ B'g*k}BBA<AVA$?$zT A-@T(>:AS, An ERROR F:A, has occurred.<l}F:A,"Ae<(Improper file name - try again.8F:A,"Ap8(File not found - try again.:#(Press am}ny key to continue.0)@: A56-R:@,@( A5ˠ!6-R:,!6-T:n},5"@6-%@)!@$56-5"@6-&@) 56-@$5"@o}6-&@) @ 56-@H5"@6-%@)!@H56-@ :B2Q%@V:6.7@p}&<@&%A(,#"@*@# @P"F:Ad,AU" APF:B2y,"@,-q}@|%%@@$+F:%%@,"@,%@$+F:%%@,"@, " A r} A 0Ġˠ$F A@)@&!A'46-&A(FA.7 6-76-%@d$s}+ @2,&@2$+!@,8#"@v A# @`B#"@ AP# @`L"@i At}V"@ A0["@g A0`#"@ A# @`j#"@w)"@2# @`tu}"@I6-@~"@P6-@"@Q6-@AdAU$Πv}}6-F:A,&@&@8@E(>:A%,Q6-@]6-@e}@@K:w}[A'6-+%@,$AV?6-+%@,$AVI+[AAvNA'AV)-@ @x}D(ǠN APQ-@$")A6%- ?AQA@y}G%6-F:A4,%AV$F:A5,G6-F:A@,%AV$F:AA, 6-&6-BsD&# A 1%@?%@z}S%@@g%@@{%@@%@@u%@%@3%@{}@G%@@[%@@o%@@u6.]6-%A&6-&% A 3%@|}A%@O%@]%@s/6-F:@,%AV$F:@,%A&?6-$AV&I A W%}}@e%@s%@& [%@'56-F:@,%AV$F:@,&? A M%@4[%@5~}U/6-F:@,%AV$F:@,%A&9 A G%@BU%@CS-@@D@3-}@7"A%%E I S A0(R6-P:'AV,)6-P:&+AV$,,:6-P:'AV,O6-P:&+AV$,,ƀ}R$2үŠӠ<UBBy'AV+-@?A%@C UA@hFgƁ}-B2HB2U"!% 9-B2VB2XE@I [B2Y@g6-P[-AVA(Ƃ};-@ @R@S%A%%@!W [ ZK-@"@P@5%A%@9 KAƃ}#@dm6-@ #-@;%%%A@? S-@i%%@@m nƄ} Ƞ٠Πx +AR@1A@hS6-F:A`,%AV$F:Aa,y6-F:%@ƅ},%AV$F:%@,%@@ra-@-%%@@1 E%@ADO A`Ɔ}aBBA AP-@1Af@E-@Y-@1k(>:%@2$,Ƈ}o r(v AfOAY@F'B2w@1 A; A@E @`O A 0__72,138,72,15ƈ}2,72,165,203,141,10,212,141,9,212,104,168,104,170,104,64,104,162,16,76,86,228MM128,0,128,0,128,1,128,1,120,0,120,0,160,0,Ɖ}160,0,100,0,100,0,160,0,160,0!!149,161,173,56,83,91,99,107I6-T:@,$@16-F:B2y,"@="@IƊ}6-@ 6-&@  $R 6-%OA0A@APA`ApAAAR$Ƌ}@=AF:A,&@%AV$+F:A, @,@$@=AF:A,%@&AV$+F:A,!AR,ƌ}@$@=AF:A,&@%AV$+F:A, @,@$@=AF:A,%@&AV$+F:A,!ARƍ},@$"@=A F:A ,&@%AV$+F:A , @,@$,@=A F:A ,%@&AV$+F:A ,!AƎ}R,@$6F(CAF:A,&@%AV$+F:A, 6@,F$@@=AF:A,&@%AV$+F:AƏ}, @,@$JE(BAF:A,%@&AV$+F:A,!AR,E$T@=AF:A,%@&AVƐ}$+F:A,!AR,@$^F A A@)-@@F(Select character to copyh 6-)@ AƑ}rP-@8%$@%F:%$@%,< F A@P @p D4:P084L1.BAS)@ AhTTTTTTD@U@@@@@??D ʓ}?UUUUUUUU 0 ??*?ë00ʔ} D@PTUUUUU@@PPTTUU ++ʕ}U@PTUWWUUUUUUUë++  ʖ}+++?UD VVU,TP@DD@UUTP_@TTTUU= UUUD@UP@@@ʗ}@_DQBBQ]]]]UUUUUUU33 URBVBQU?;:8PPP_P@TU@PDAAU@DTDT@PD ʘ}< 0?55?\\}UTU@@PAPPDdd ! @UQATDDAQ<88PP0@E<00A00<ʙ}????0<