5 CLR :? "}":OPEN #1,4,0,"K:":OPEN #6,4,0,"S:":SETCOLOR 2,9,2:SETCOLOR 4,9,2:POKE 752,1›10 DIM C$(1),STORE(8):N=0›20 GOSUB 6000›40 ? :? :? "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=57344›100 FOR I=0 TO 1023:POKE CHBASE+I,PEEK(CHORG+I):NEXT I›105 C$="&"›110 CHADD=CHBASE+(ASC(C$)-32)*8›120 POKE 756,CHBASE/256›200 ? "}":POKE 752,1:GOSUB 6000›205 FOR I=0 TO 7:STORE(I)=0:NEXT I›210 ? ›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 LOOP›500 X=7:Y=6›510 K=PEEK(764)›512 IF STRIG(0)=0 THEN 700›513 IF K=18 THEN 1000›514 IF K=58 THEN 2000›515 IF K=10 THEN 3000›516 IF K=42 THEN 5000›518 POSITION X,Y:? " "›520 FOR DELAY=1 TO 15:NEXT DELAY›530 POSITION X,Y:? " "›540 FOR DELAY=1 TO 15:NEXT DELAY›550 ST=STICK(0)›560 IF ST=15 THEN 510›570 IF ST=6 OR ST=14 OR ST=10 THEN Y=Y-1›580 IF ST=5 OR ST=9 OR ST=13 THEN Y=Y+1›590 IF ST=5 OR ST=6 OR ST=7 THEN X=X+1›600 IF ST=9 OR ST=10 OR ST=11 THEN X=X-1›610 IF X>14 THEN X=14›620 IF X<7 THEN X=7›630 IF Y>13 THEN Y=13›640 IF Y<6 THEN Y=6›650 GOTO 510›700 POSITION X,Y:? " "›710 FOR DELAY=1 TO 15:NEXT DELAY›720 POSITION X,Y:? " "›730 FOR DELAY=1 TO 15:NEXT DELAY›732 IF K=18 THEN 1000›734 IF K=58 THEN 2000›736 IF K=10 THEN 3000›738 IF K=42 THEN 5000›740 GOTO 550›999 REM CLEAR CHAR›1000 POKE 764,255›1010 GOTO 200›1999 REM DEMO CHAR›2000 BYTE=0:BIT=0›2005 GOSUB 4000›2006 REM DETERMINE DATA VALUES›2010 FOR Y=0 TO 7›2020 FOR X=7 TO 0 STEP -1›2030 LOCATE (X+7),(Y+6),PIX›2035 POSITION (X+7),(Y+6):PUT #6,PIX›2040 IF PIX=160 THEN PIX=1›2050 IF PIX=32 THEN PIX=0›2060 IF X=7 THEN BIT=PIX›2070 IF X=6 THEN BIT=PIX*2›2080 IF X=5 THEN BIT=PIX*4›2090 IF X=4 THEN BIT=PIX*8›2100 IF X=3 THEN BIT=PIX*16›2110 IF X=2 THEN BIT=PIX*32›2120 IF X=1 THEN BIT=PIX*64›2130 IF X=0 THEN BIT=PIX*128›2140 BYTE=BYTE+BIT›2150 NEXT X›2160 STORE(Y)=BYTE›2165 BYTE=0›2170 NEXT Y›2180 POSITION 2,16:? "DATA ";›2190 FOR Y=0 TO 6›2200 STORE=STORE(Y)›2210 ? STORE;",";›2220 NEXT Y›2230 STORE=STORE(7)›2240 ? STORE;›2242 FOR J=0 TO 7:STORE=STORE(J)›2244 POKE CHADD+J,STORE:NEXT J›2248 REM ALTER DISPLAY LIST›2250 A=PEEK(560)+PEEK(561)*256›2260 POKE A+25,6:POKE 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 SCREEN›2270 POSITION 2,18:? " GR 0: & & & & & & & & & & & & &";›2280 POSITION 0,20:? #6;"GR 1: & & & & & & &";›2290 POSITION 0,21:? #6;"GR 2: & & & & & & &";›2345 POKE 764,255›2350 GOTO 500›2999 REM PRINT DATA TO PRINTER›3000 TRAP 3100›3005 POKE 559,0›3030 GOSUB 3200›3040 LPRINT "DATA ";S0;",";S1;",";S2;",";S3;",";S4;",";S5;",";S6;",";S7›3050 POKE 559,34›3060 POKE 764,255›3070 GOTO 200›3100 GOSUB 4000›3110 POKE 559,34›3120 POSITION 2,17›3130 ? " PRINTER NOT CONNECTED"›3140 ? " - OR -"›3150 ? " PRINTER TURNED OFF"›3160 FOR DELAY=1 TO 400:NEXT DELAY›3165 GOSUB 4000›3170 POKE 764,255›3180 GOTO 200›3200 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 SUB›4000 POSITION 2,16›4010 FOR Y=16 TO 19›4020 ? " "›4030 NEXT Y›4040 POSITION 0,20:? " "›4050 POSITION 0,21:? " "›4200 RETURN ›4999 REM ENTER DATA INTO PROGRAM›5000 POKE 559,0›5010 GOSUB 3200›5020 GOSUB 5200›5030 ? 9000+N;" DATA ";S0;",";S1;",";S2;",";S3;",";S4;",";S5;",";S6;",";S7›5040 GOSUB 5210›5050 N=N+1›5060 POKE 764,255›5070 POKE 559,34›5080 GOTO 200›5200 ? 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 ›