10 GOSUB 770:GOSUB 690 20 x0=0:y0=40:xpos=30:ypos=55 30 DIM AX(64,16),t(64):PRINT CLS$;AOFF$;CUROFF$;BRIGHT$ 40 FOR z=1 TO 64:t(z)=0:NEXT z 50 FOR a=1 TO 64:FOR b=1 TO 16:AX(a,b)=0:NEXT b:NEXT a 60 GOSUB 620:GOTO 100 70 IF AX(a%,b%)=1 THEN GOTO 100 80 f%=0:y%=eray:FOR x%=erax-7 TO erax+7:CALL plot(x%,y%,f%):NEXT 90 x%=erax:FOR y%=eray-3 TO eray+3:CALL plot(x%,y%,f%):NEXT 100 f%=1:y%=ypos:FOR x%=xpos-7 TO xpos+7:CALL plot(x%,y%,f%):NEXT 110 x%=xpos:FOR y%=ypos-3 TO ypos+3:CALL PLOT(x%,y%,f%):NEXT 120 erax=xpos:eray=ypos 130 GOSUB 380 140 k$=UPPER$(INKEY$):IF kS="" THEN 130 150 INSTR("FESDA"+CHR$(6)+CHR$(1)+CHR$(31)+CHR$(30),k$) 160 IF k$="F" THEN GOTO 320 170 IF k$="E" THEN GOTO 310 180 IF k$="S" THEN GOTO 530 190 IF k$="D" THEN GOTO 580 200 IF k$="A" THEN GOTO 760 210 IF kS=CHR$(6) THEN xpos=xpos+20 220 IF k$=CHR$(1) THEN xpos=xpos-20 230 IF k$=CHR$(31) THEN ypos=ypos+10 240 IF k$=CHR$(30) THEN ypos=ypos-10 250 IF num=0 THEN PRINT BEEP$;:GOTO 130 260 IF xpos<30 THEN xpos=30 270 IF ypos<55 THEN ypos=55 280 IF xpos>650 THEN xpos=650 290 IF ypos>205 THEN ypos=205 300 GOTO 70 310 f%=0 320 GOTO 470 330 FOR x%=xpos-9 TO xpos+9:FOR y%=ypos-4 TO ypos+4:CALL plot(x%,y%,f%) 340 NEXT:NEXT 350 IF xpos<340 THEN xpos=xpos+20 360 IF xpos>340 THEN xpos=xpos-20 370 GOTO 100 380 IF ypos=65 OR ypos=85 THEN GOTO 430 390 IF ypos=105 OR ypos=125 THEN GOTO 430 400 IF ypos=145 OR ypos=165 THEN GOTO 430 410 IF ypos=185 OR ypos=205 THEN GOTO 430 420 a%=xpos/20-0.5:b%=ypos/20-1.75:c%=0.5:GOTO 440 430 a%=32+xpos/20-0.5:b%=8+ypos/20-2.25:c%=0.5:GOTO 450 440 FOR z=1 TO b%-1:c%=c%+c%:NEXT z 450 FOR s=1 TO b%-9:c%=c%+c%:NEXT 460 RETURN 470 IF f%=0 THEN GOTO 500 480 IF AX(a%,b%)=1 THEN GOTO 520 490 t(a%)=t(a%)+c%:AX(a%,b%)=1:GOTO 330 500 IF AX(a%,b%)=0 THEN GOTO 520 510 t(a%)=t(a%)-c%:AX(a%,b%)=0:GOTO 330 520 PRINT BEEPS:GOTO 130 530 LPRINT CHR$(27)+"@":bottom$=CHR$(27)+"L"+CHR$(32)+CHR$(0) 540 top$=bottom$ 550 FOR z%=33 TO 64:bottom$=bottom$+CHR$(t(z%)):NEXT z% 560 FOR z%=1 TO 32:top$=top$+CHR$(t(z%)):NEXT z% 570 LPRINT bottom$;CHR$(27)+"J"+CHR$(2)+CHR$(13);top$;:GOTO 130 580 LPRINT CHR$(15);"DATA ":FOR z=33 TO 64:LPRINT t(z);",";:NEXT 590 LPRINT CHR$(27)+CHR$(10) 600 LPRINT "DATA ":FOR z=1 TO 32:LPRINT t(z);",";:NEXT 610 LPRINT CHR$(18):GOTO 130 620 f%=1 630 FOR a=1 TO 17:y0=y0+10:y%=y0:FOR x%=20 TO 660:CALL plot(x%,y%,f%):NEXT x%:NEXT a 640 FOR b=1 TO 33:x0=x0+20:x%=x0:FOR y%=50 TO 210:CALL plot(x%,y%,f%):NEXT y%:NEXT b 650 PRINT FNat$(2,0);REVON$;" F - FILL " 660 PRINT FNat$(16,0);" E - ERASE ";FNat$(31,0);" S - PRINT SYMBOL " 670 PRINT FNat$(53,0);" D - PRINT DATA ";FNat$(73,0);" A - ABORT "; 680 a$=STRING$(90,95):PRINT FNat$(0,0);REVOFF$;a$;:RETURN 690 BEEP$=CHR$(7):AON$=CHR$(27)+CHR$(49) 700 AOFF$=CHR$(27)+CHR$(48):CURON$=CHR$(27)+"e":CUROFF$=CHR$(27)+"f" 710 DARK$=CHR$(27)+"b"+CHR$(0)+CHR$(27)+"c"+CHR$(0):REVON$=CHR$(27)+CHR$(112) 720 DEF FNat$(x,y)=CHR$(27)+"Y"+CHR$(32+y)+CHR$(32+x) 730 CLS$=CHR$(27)+"E"+CHR$(27)+"H" 740 BRIGHT$=CHR$(27)+"b"+"?"+CHR$(27)+"c"+CHR$(0) 750 REVOFF$=CHR$(27)+CHR$(113):RETURN 760 PRINT CLS$;AON$;CURON$;DARKS;REVOFF$;:END 770 MEMORY &HBFFF:plot=&HC000:A=PLOT 780 RESTORE 810 790 FOR F=0 TO 14:FOR G=0 TO 7:READ X$:X=VAL("&H"+X$):POKE A,X:A=A+1:NEXT:READ X$:NEXT 800 RETURN 810 DATA 0A,32,7C,C0,4E,23,46,21,250 820 DATA CF,02,A7,ED,42,D8,ED,43,4AF 830 DATA 78,C0,EB,5E,23,56,7A,A7,41B 840 DATA C0,93,3D,5F,ED,53,7A,C0,469 850 DATA F3,ED,73,7D,C0,31,9D,C0,51E 860 DATA 01,36,C0,CD,5A,FC,E9,00,403 870 DATA ED,7B,7D,C0,FB,C9,2A,7A,50D 880 DATA C0,29,11,00,B6,19,5E,23,24A 890 DATA 56,7B,E6,F8,CB,27,CB,12,47E 900 DATA 47,7B,E6,07,B0,5F,2A,78,360 910 DATA C0,45,7D,E6,F8,6F,EB,19,4D3 920 DATA 78,E6,07,3C,47,AF,37,1F,2ED 930 DATA 10,FD,47,3A,7C,C0,A7,20,391 940 DATA 05,78,2F,A6,77,C9,3D,78,347 950 DATA 20,03,B6,77,C9,AE,77,C9,407