100 IFLL=1THENRP=0:GOSUB1550:POKE53281,PEEK(51177):POKE53280,PEEK(51176):GOTO2230 110 IFLL=3THEN2230 120 REM--------------------------------- 130 REM L O D R A W 1991 BY ROBERT QUINN 140 REM--------------------------------- 150 POKE55,255:POKE56,95:CLR:GOSUB2720:GOTO190 160 IFF9<0THENIFF3=0THEN360 170 IFZW=0OR(F3<0ANDZW<0)THENGOSUB1200:GOTO190 180 DX=0:BB=ASC(B$):GOTO1030 190 DX=0:IFF6=0THENPOKEPP+VM,QR 200 JS=PEEK(56320):IFJS<127THENIFJS>118THENDX=PT(JS-119) 210 IFF6=0THENPOKEPP+VM,QR:POKEPP+VN,DQ:POKEPP+VN,DP 220 GETB$:IFB$>CHR$(48)ANDB$0THEN1610 330 IFDX>0THEN1230 340 IFF6=0THENPOKEPP+VN,DP:POKEPP+VN,DQ 350 IFB$=""THEN200 360 BB=ASC(B$):IFF9<0THEN1380 370 IFBB<96THEN620 380 IFF3=0THEN430 390 IFBB>132ANDBB<137THENRP=0:GOSUB1530:GOSUB2320:GOTO200 400 IFBB=140THENLL=2:B$="DISK SAVE CHAR ":A$="@":GOTO2030 410 IFBB=139THENLL=3:B$="DISK LOAD CHAR ":A$="@":GOTO2030 420 IFBB=196THENLL=8:B$="ERASE FILE":A$="":GOTO2030 430 IFBB=148THENZX=ZX-15-16*SGN(ZX-15):POKE53280,ZX 435 IFBB=131THENPOKE788,49:END 440 IFBB=137THENRP=ABS(F4):GOSUB1550:ZY=PEEK(51177):GOSUB2950:POKE53281,ZY 450 IFBB<>138THEN470 460 POKE51177,ZY:RP=ABS(F4):GOSUB1520:PRINTCHR$(147);:GOSUB1550:GOSUB2950 470 IFBB>148THENIFBB<156THENKQ=BB-140:GOSUB1210 480 IFBB=160THENQQ=QP 490 IFBB=129THENKQ=8:GOSUB1210 500 IFBB=147THENRP=0:GOSUB1530:PRINTCHR$(147);:GOSUB2950 510 IFBB=136THENIFF8=6THENZV=NOTZV 520 IFBB=136THENZV=NOTZV:SYS49677,32,24:PRINTGG$(ABS(ZV)+2);:F8=0 530 IFBB=140THENLL=0:B$="DISK SAVE VIDEO":A$="_":GOTO2030 540 IFBB=139THENLL=1:B$="DISK LOAD VIDEO":A$="_":GOTO2030 550 IFBB=135THENZZ=NOTZZ:SYS49677,23,24:PRINTGG$(ABS(ZZ)); 560 IFBB=141THENF8=6:SYS49677,32,24:PRINT"PAINT "; 570 IFBB=133THENZW=NOTZW:SYS49677,0,24:PRINTGG$(ABS(ZW)+4); 580 IFBB=134THENZR=NOTZR:SYS49677,7,24:PRINTGG$(ABS(ZR)+6); 590 IFBB>160THENIFBB<192THENQQ=BB-64-ZR*N9 600 IFBB>191THENQQ=BB-N9-ZR*N9 610 POKED6,33:POKED6,16:F3=0:GOTO1190 620 IFF3=0ORBB<>20THEN650 630 RP=0:POKE51177,ZY:GOSUB1530:GOSUB3200:GOSUB1570:ZY=PEEK(51177):POKE53281,ZY 640 F3=0:GOSUB2950:GOTO190 650 IFBB=20THENZY=ZY-15-16*SGN(ZY-15):POKE53281,ZY:GOSUB2940 660 IFBB=19THENF4=NOTF4:GOSUB2950 665 IFBB=3THENLL=-1:GOSUB6000 670 IFBB=13THENPOKEPP+VN,KP:POKEPP+VM,QP:PP=INT(PP/P1)*P1:DX=113:GOTO1510 680 IFBB61THEN750 730 SYS49677,0,23:PRINT"SCREEN CHARACTER CODE? ";:GOSUB3560:GOSUB2940 740 IFVAL(B$)<256THENQQ=VAL(B$) 750 IFBB=77THENMX=3030:GOSUB1700 760 IFBB=42THENDV=NOTDV:MX=3020:GOSUB1700:POKEVM+943,ABS(DV)+48 770 IFBB=66THENRP=0:GOSUB1530:GOSUB1840:GOTO1640 780 IFBB=57THEN1880 790 IFBB=67THENLL=0:GOSUB2410 800 IFBB=47ORBB=58ORBB=59ORBB=63THENF3=0:GOTO1060 810 IFBB=90THENLL=1:GOSUB2410 820 IFBB=83THENLL=2:GOSUB2410 830 IFBB=70THENLL=3:GOSUB2410 840 IFBB=88THENLL=4:GOSUB2410 850 IFBB=68THEN1930 860 IFBB=48THENF3=0:GOTO1140 870 IFBB=86THENLL=5:GOSUB2410 880 IFBB=71THENLL=6:GOSUB2410 890 IFBB=94THENGOSUB1570:QP=PEEK(PP+VM):KP=PEEK(PP+VN):GOSUB2950 900 IFBB=80THENF5=0:GOSUB2950 910 IFBB=81THENF5=1:GOSUB2950 920 IFBB=87THENF5=2:GOSUB2950 930 IFBB=69THENF5=3:GOSUB2950 940 IFBB=82THENF5=4:GOSUB2950 950 IFBB=84THENF5=5:GOSUB2950 960 IFBB=89THENF5=6:GOSUB2950 970 IFBB=85THENF5=7:GOSUB2950 980 IFBB=73THENF5=8:GOSUB2950 990 IFBB=79THENF5=9:GOSUB2950 1000 IFBB=65THENF9=NOTF9:QR=0:IFF9<0THENQR=31 1010 POKED6,33:POKED6,16:F3=0:GOTO1190 1020 IFZW=0THEN1050 1030 IFBB<64THEN1180 1040 QQ=BB-64-ZR*N9:GOTO1190 1050 IFBB=45THENQQ=93+ZZ-ZR*N9:GOTO1190 1060 IFBB=47THENDX=113:GOTO1310 1070 IFBB=58THENDX=107:GOTO1310 1080 IFBB=59THENDX=115:GOTO1310 1090 IFBB=63THENDX=114:GOTO1310 1100 IFBB=43THENQQ=91-ZZ*11-ZR*N9:GOTO1190 1110 IFBB=92THENQQ=105+ZZ-ZR*N9:GOTO1190 1120 IFBB=42THENQQ=67-ZZ*28-ZR*N9:GOTO1190 1130 IFBB=64THENQQ=122+ZZ*22-ZR*N9:GOTO1190 1140 IFBB=48THENF5=F5+10:F5=F5+40*(F5>39):GOSUB2950:GOTO1190 1150 IFBB=57THEN1880 1160 IFBB<64THEN1180 1170 IFZZ<0THENQQ=CZ(BB-64)-ZR*N9:GOTO1190 1180 QQ=BB-ZR*N9 1190 POKEVM+981,QQ:POKEVM+961,62+ABS(ZW)*N9:GOTO200 1200 KQ=ASC(B$)-49 1210 F3=0:POKE49651,KQ:SYS49650:SYS49677,16,23:PRINTF5CHR$(157)" " 1220 POKEVM+961,62+ABS(ZW)*N9:RETURN 1230 PY=PP:IFDX=114THENPP=PP-P1:IFPP<0THENPP=PP+P2 1240 IFDX=113THENPP=PP+P1:IFPP>=P2THENPP=PP-P2 1250 IFDX=107THENPP=PP-1:IF(PP+1)/P1=INT((PP+1)/P1)THENPP=PP+P1 1260 IFDX=115THENPP=PP+1:IFPP/P1=INT(PP/P1)THENPP=PP-P1 1270 QY=QP:KY=KP:QP=PEEK(PP+VM):KP=PEEK(PP+VN)AND15:SYS49677,2,23 1280 PRINTQP;CHR$(157)" ";:IFF8=6THENPOKEPY+VN,KQ:POKEPY+VM,QY:GOTO190 1290 IFZV<0THENPOKEPY+VN,KY:POKEPY+VM,QY:GOTO190 1300 POKEPY+VN,KQ:POKEPY+VM,FNFX(QQ):GOTO190 1310 RM=PP:RX=QP:RQ=KP:RP=RM+F5-1:IFF5=0THEN1350 1320 IFDX=113ORDX=114THENIFF5>24THENRP=RM+23 1330 FORR=RMTORP:PX=RM:GOSUB1650:POKEPX+VM,RX:POKEPX+VN,RQ:RX=QX:RQ=KX:RM=PX:NEXT 1340 DX=0:QP=P4:F3=0:GOTO1190 1350 RP=RM+38:IFDX=113ORDX=114THENRP=RM+23 1360 FORR=RMTORP:PX=RM:GOSUB1650:IFQX=P4THENR=RP 1370 POKEPX+VM,RX:POKEPX+VN,RQ:RX=QX:RQ=KX:RM=PX:NEXT:GOTO1340 1380 IF(BB>127ANDBB<142)OR(BB>146ANDBB<161)THEN380 1390 IFBB=19ORBB=20ORBB=13ORBB=3THEN620 1400 IFBB=P2THENPX=PX-P2 1670 IFDX=107THENPX=PX-1:IF(PX+1)/P1=INT((PX+1)/P1)THENPX=PX+P1 1680 IFDX=115THENPX=PX+1:IFPX/P1=INT(PX/P1)THENPX=PX-P1 1690 QX=PEEK(PX+VM):KX=PEEK(PX+VN)AND15:RETURN 1700 R=INT(MX/256):POKE904,R:POKE903,MX-R*256:SYS49700 1710 RM=PEEK(905)+PEEK(906)*256+5:GOSUB1730 1720 MX=3030:FORR=1TO222:NEXT:RETURN 1730 RX=1:FORR=923TOR+20:POKER+VN,1+RP*14:POKER+VM,0:NEXT 1740 FORR=VM+924TOR+18:POKER-1,PEEK(R):NEXT 1750 RQ=PEEK(RM):IFRQ=0THENRM=RM+6:GOTO1750 1760 GETB$:JS=PEEK(56320) 1770 IFB$=" "THENPOKER-1,P4:FORRQ=1TO222:NEXT:GOTO1750 1780 IFB$=CHR$(136)ORJS=111THENPOKER-1,P4:RETURN 1790 IFB$="X"THENIFRX=99THENRX=1:FORRQ=1TO99:NEXT:GOTO1750 1800 IFB$="X"THENIFRX=1THENRX=99:FORRQ=1TO99:NEXT:GOTO1750 1810 IFRQ>64THENRQ=RQ-64 1820 POKER,32:IFRQ=64THENPOKER-1,P4:RETURN 1830 POKER-1,RQ:FORRQ=1TORX:NEXT:RM=RM+1:GOTO1740 1840 IFF5<2THENRETURN 1850 PX=PP:DX=115:GOSUB1870:DX=114:GOSUB1870:DX=107:GOSUB1870:DX=113:GOSUB1870 1860 QP=QQ:KP=KQ:RETURN 1870 FORR=1TOF5-1:GOSUB1650:POKEPX+VN,KQ:POKEPX+VM,FNFX(QQ):NEXT:RETURN 1880 PX=PP:DX=115 1890 FORR=0TO3:IFR=2THENPX=PP:DX=113:GOSUB1650:DX=115 1900 GOSUB1650:QX=QQ+R:IFQX>255THENQX=QX-256 1910 POKEPX+VN,KQ:POKEPX+VM,QX:NEXT:DX=0:F3=0:GOTO1190 1920 : 1930 LL=9:B$="LOAD DIRECTORY ":GOTO2030 1940 : 1950 PRINTCHR$(147);:OPEN8,ABS(DV),0,"$":GET#8,A$,A$,A$,A$ 1960 GET#8,A$,B$:RM=ASC(A$+CHR$(0)):RX=ASC(B$+CHR$(0)) 1970 PRINTMID$(STR$(RM+RX*256),2)" "; 1980 GET#8,A$:RM=ASC(A$+CHR$(0)):IFRM<>0THENPRINTA$;:GOTO1980 1990 PRINT:GET#8,A$,A$:IFASC(A$+CHR$(0))<>0THEN1960 2000 CLOSE8:SYS49677,3,24:PRINT" PRESS SPACE BAR WHEN READY "; 2010 GETB$:IFB$=""THEN2010 2020 GOSUB1570:GOSUB2950:GOTO610 2030 GOSUB2950:SYS49677,0,24 2040 PRINT" "B$" * F7 KEY TO QUIT";:POKE51177,ZY:POKE51176,ZX 2050 POKEPP+VN,KP:POKEPP+VM,QP 2060 MX=RP:RP=0:GOSUB1530:RP=MX:IFLL=9THEN2140 2070 MX=2240:GOSUB1700:SYS49677,24,23:PRINTA$" ";:R=1:IFLL=8THENR=0 2080 GETB$:RM=LEN(A$):IFB$=CHR$(136)THENSYS49677,0,23:PRINT" ";:GOTO2230 2090 IFB$=CHR$(29)THENIFRM>RTHENA$=LEFT$(A$,RM-1):GOTO2130 2100 IFB$=CHR$(13)ANDRM>1THEN2140 2110 IFRM=16ORB$<" "ORB$>CHR$(95)OR(B$=" "ANDRM=R)ORB$=""THEN2080 2120 A$=A$+B$ 2130 SYS49677,24,23:PRINTA$" ";:GOTO2080 2140 MX=2250:GOSUB1700 2150 GETB$:IFB$=""THEN2150 2160 IFB$<>" "THEN2230 2170 IFLL=9THEN1950 2180 IFLL=8THENMX=2280:GOSUB1700:OPEN15,ABS(DV),15 2190 IFLL=8THENPRINT#15,"S0:"A$:CLOSE15:GOTO2230 2200 MX=2270:IFLL/2<>INT(LL/2)THENGOSUB1700:LOADA$,ABS(DV),1:GOTO2230 2210 MX=2260:GOSUB1700:RM=32768:RX=36864:IFLL=2THENRM=51200:RX=53248 2220 GOSUB1590 2230 GOSUB2950:GOTO610 2240 REMENTER FILE NAME & PRESS RETURN: @ 2250 REMINSERT DISK * PRESS SPACE BAR @ 2260 REMSAVING: @ 2270 REMLOADING: @ 2280 REMERASING @ 2290 R=INT(RM/256):POKE49725,RM-R*256:POKE49729,R 2300 R=INT((RX+1)/256):POKE49733,RX+1-R*256:POKE49737,R 2310 R=INT((RQ+1)/256):POKE49741,RQ+1-R*256:POKE49745,R:SYS49724:RETURN 2320 IFF5=0THEN2400 2330 R=0:RM=PP:RX=40:IFBB=133ORBB=134THENRX=-40 2340 RM=RM+RX:IFRM<0ORRM>919THEN2400 2350 IFBB=134ORBB=136THEN2380 2360 IFRM/P1=INT(RM/P1)THEN2400 2370 RM=RM-1:GOTO2390 2380 RM=RM+1:IFRM/P1=INT(RM/P1)THEN2400 2390 R=R+1:POKERM+VN,KQ:POKERM+VM,FNFX(QQ):IFRCMDRE"+CHR$(146) 2870 GG$(2)="7>DRAW ":GG$(3)=CHR$(18)+"7>KEEP"+CHR$(146)+" ":GG$(4)="1>GRAF" 2880 GG$(5)=CHR$(18)+"1>ALFA"+CHR$(146) 2890 GG$(6)="3>REVERSE OFF":GG$(7)=CHR$(18)+"3>REVERSE ON "+CHR$(146) 2900 GG$(8)="PAINT ":GG$(9)="PAINT " 2910 DIMBY(7):DIMBX(7) 2920 GOSUB3000:IFPEEK(828)=1ANDPEEK(829)=2ANDPEEK(830)=3THEN2940 2930 POKE828,1:POKE829,2:POKE830,3:RP=1:GOSUB1530:RP=2:GOSUB1530 2940 POKE51177,ZY:DQ=SGN(ZY):DP=0:IFDQ=0THENDP=1 2950 RP=0:PRINTCHR$(144);:IFZY<3ORZY=6ORZY=9ORZY=11THENPRINTCHR$(155);:RP=1 2960 SYS49650:SYS49677,16,23:PRINTF5CHR$(157)" ";:SYS49677,0,24 2970 PRINTGG$(ABS(ZW)+4)" "GG$(ABS(ZR)+6)" "GG$(ABS(ZZ))" "GG$(ABS(ZV)+2+F8); 2980 POKEVN+981,RP*15:POKEVM+981,QQ 2990 POKEVN+999,RP*15:POKEVM+999,ABS(F4)+48:RETURN 3000 POKE51200,0:POKE51201,0:POKE51206,0:POKE51207,0 3010 FORR=51202TO51205:POKER,255:NEXT:PRINTCHR$(146);:RETURN 3020 REMNEW DEVICE NUMBER@ 3030 REMWELCOME TO LODRAW * 3040 REM PRESS F7 KEY ANYTIME TO QUIT MESSAGES * HOLD DOWN SPACE BAR TO PAUSE 3050 REM SCROLLING OF A MESSAGE * USE JOYSTICK IN PORT 2@ 3060 DATA206,14,220,165,1,41,251,133,1,169,208,133,32,169,200,133,34,169,0,133 3070 DATA31,133,33,168,162,8,177,31,145,33,200,208,249,230,32,230,34,202,208 3080 DATA242,165,1,9,4,133,1,238,14,220,96 3090 DATA169,15,162,0,160,40,157,152,219,232,136,208,249,169,0,162,0,160,40 3100 DATA157,152,199,232,136,208,249,96 3110 DATA32,253,174,32,158,183,142,87,3,32,253,174,32,158,183,172,87,3,24 3120 DATA32,240,255,96 3130 DATA173,135,3,133,20,173,136,3,133,21,32,19,166,165,95,141,137,3,165,96 3140 DATA141,138,3,96 3150 : 3160 DATA169,0,133,95,169,0,133,96,169,0,133,90,169,0,133,91,169,0,133,88 3170 DATA169,0,133,89,32,191,163,96 3180 DATA100,112,127,124,108,113,123,101,116,98,117,97,118,103,106,121,111,107 3190 DATA114,110,99,120,126,115,125,119,109,102,104,92,105 3200 POKE51200,255:POKE51207,255:FORR=51201TO51206:POKER,129:NEXT 3210 XM=0:CY=0:POKE53281,0:POKE53280,14:PRINTCHR$(152);CHR$(147):WF=0 3220 WF=NOTWF:IFWF<0THENGOSUB3270:IFB$=CHR$(20)THENGOSUB3000:RETURN 3230 IFWF<>0THEN3260 3240 PB=180:QA=PEEK(PB+VM):ZP=0:HP=7:POKE50448,RX:IFXM=0THENPOKE2024,RX 3250 BB=-1:GOSUB4340:BB=0:GOSUB3440:SW=0 3260 FORR=1TO99:NEXT:GOTO3220 3270 PRINTCHR$(147);"VIEW CHARACTER: PRESS F7 KEY & CODE OR:-";:PRINT 3280 PRINTCHR$(158)"CHARACTER KEY ? ";CHR$(152); 3290 IFXM>0THENB$=STR$(XM):GOTO3330 3300 GETB$:IFB$=""THEN3300 3310 IFB$=CHR$(20)THENRETURN 3320 IFB$<>CHR$(136)THEN3360 3330 POKEVM+96,163:RY=PEEK(211):IFXM=0THENGOSUB3560 3340 RX=VAL(B$):IFRX>255THENXM=0:PRINTCHR$(146);:GOTO3270 3350 POKE211,RY:PRINT" ";:GOTO3410 3360 RX=ASC(B$):IF(RX>63ANDRX<96)OR(RX>159ANDRX<192)THENRX=RX-64:GOTO3400 3370 IFRX>191ANDRX<224THENRX=RX-N9:GOTO3400 3380 IFRX>31ANDRX<64THEN3400 3390 GOTO3300 3400 PRINTB$; 3410 PRINTCHR$(154)CHR$(146)" @@@@@@@@ ";CHR$(152);RX:PRINT 3420 BB=0:FORR=CA+RX*8TOR+7:BB=BB+1:PK=PEEK(R):PRINT"BYTE";BB;R;PK,:BY(BB-1)=PK 3430 GOSUB3660:NEXT:FORR=VMTOR+39:POKER,32:NEXT:RETURN 3440 IFCY<0THENSW=1:XM=0:GOTO3700 3450 PRINT:PRINTCHR$(158)"EDIT CHARACTER";RX;"?"CHR$(152):PRINT 3460 SW=2:GOSUB3560:SW=1 3470 IFA$=CHR$(136)THENFORR=1TO299:NEXT:GOTO3700 3480 IFA$=CHR$(20)ORXM<>0THENRETURN 3490 FORR=CA+RX*8TOR+7:BB=BB+1:PK=PEEK(R):PRINT"BYTE";BB;R;"?"; 3500 POKE211,PEEK(211)-1:IFSW=4THEN3530 3510 GOSUB3560:IFB$<>""ANDVAL(B$)<256THENPK=VAL(B$) 3520 IFA$=CHR$(136)THENSW=4 3530 POKER,PK:POKE211,RQ:PRINTPK;:IFPK<10THENPOKE211,PEEK(211)-1:PRINT" "; 3540 PRINT,:GOSUB3660:NEXT:FORR=1TO40:PRINT"-";:NEXT 3550 PRINT" PRESS /FIRE BUTTON OR OR ";:SW=2 3560 B$="":LL=0:RM=PEEK(214):RQ=PEEK(211) 3570 GETA$:IFSW>1THEN3600 3580 IFA$>"/"ANDA$<":"THENB$=B$+A$:LL=LEN(B$):POKE214,RM:POKE211,RQ:PRINTB$; 3590 IFLL=3THENPOKED6,33:POKED6,16 3600 IFA$=CHR$(13)ORLL=3ORA$=CHR$(20)THENXM=0:RETURN 3610 IFA$=CHR$(136)ORPEEK(56320)=111THENIFSW>0THENA$=CHR$(136):XM=0:RETURN 3620 IFSW<2THEN3570 3630 IFA$=CHR$(134)THENXM=RX+1:RETURN 3640 IFA$=CHR$(135)THENXM=RX-1:RETURN 3650 GOTO3570 3660 BP=N9:FORRP=1TO8:T=INT(PK/BP) 3670 IFT=1THENPRINTCHR$(64);:PK=PK-BP 3680 IFT=0THENPRINT" "; 3690 BP=BP/2:NEXT:PRINT:RETURN 3700 GOSUB4370 3710 JS=PEEK(56320):IFJS<127THENIFJS>118THENDX=PT(JS-119) 3720 GETB$:IFB$>"C"ANDB$<"M"THENDX=114 3730 IFB$=" "THENDX=113:JS=127 3740 IFB$=","THENDX=107 3750 IFB$="."THENDX=115 3760 IFB$="Y"THENIFRX<253THENQD=NOTQD:POKED6,33:POKED6,16:GOSUB4750 3770 IFQD=0THEN3810 3780 IFDX>0THENPOKEPB+VM,QA:GOSUB4830:DX=0 3790 IFB$=CHR$(13)ORJS=111THENGOSUB4980 3800 GOTO4010 3810 IFDX>0THENPOKEPB+VM,QA:GOSUB4050:DX=0:GOTO4010 3820 IFB$=CHR$(13)ORJS=111THENGOSUB4100 3830 IFB$="N"THENGOSUB4270:GOSUB4370 3840 IFB$="W"THENRY=0:KX=P4:GOSUB4240 3850 IFB$="Q"THENRY=1:KX=0:GOSUB4240 3860 IFB$="R"THENGOSUB4600 3870 IFB$="[210]"THENGOSUB4680 3880 IFB$="C"THENB$="":R=11:SYS49677,0,2:PRINT"CHARACTER CODE? ";:GOSUB4510 3890 IFB$="[195]"THENGOSUB4650 3900 IFB$="P"THENIFRX<253THENGOSUB5030 3910 IFB$="B"THENGOSUB4170 3920 IFB$="Z"THENGOSUB4200 3930 IFB$="A"THENBY(ZP)=0:QA=P4:GOSUB4260 3940 IFB$="S"THENBY(ZP)=255:QA=0:GOSUB4260 3950 IFB$="X"THENGOSUB4210 3960 IFB$="V"THENGOSUB4220 3970 IFB$="M"THENCY=NOTCY:POKED6,33:POKED6,16 3980 IFB$=CHR$(136)THENRETURN 3990 IFB$=CHR$(134)THENXM=RX+1:RETURN 4000 IFB$=CHR$(135)THENXM=RX-1:RETURN 4010 IFCX=0THENPOKEPB+VM,QA 4020 IFCX=3THENPOKEPB+VM,42 4030 CX=CX+1:IFCX=6THENCX=0 4040 GOTO3710 4050 IFDX=114THENPB=PB-P1:ZP=ZP-1:IFPB<180THENPB=PB+P3:ZP=7 4060 IFDX=113THENPB=PB+P1:ZP=ZP+1:IFPB>467THENPB=PB-P3:ZP=0 4070 IFDX=107THENPB=PB-1:HP=HP+1:IF(PB+1)/20=INT((PB+1)/20)THENPB=PB+8:HP=0 4080 IFDX=115THENPB=PB+1:HP=HP-1:IF(PB+12)/P1=INT((PB+12)/P1)THENPB=PB-8:HP=7 4090 QA=PEEK(PB+VM):POKEPB+VM,42:FORR=1TO99:NEXT:CX=0:RETURN 4100 IFQA=P4THENQA=0:BY(ZP)=BY(ZP)+(2^HP):GOTO4120 4110 IFQA=0THENQA=P4:BY(ZP)=BY(ZP)-(2^HP) 4120 B$=STR$(BY(ZP)):LL=LEN(B$):POKECA+RX*8+ZP,BY(ZP):POKE50448,RX 4130 FORR=1TOLL:A$=MID$(B$,R,1):PX=(ZP+4)*P1+13+R+VM:POKEPX,ASC(A$):NEXT 4140 IFLL<4THENPOKEPX+1,P4 4150 IFLL<3THENPOKEPX+2,P4 4160 FORR=1TO99:NEXT:CX=0:RETURN 4170 FORR=0TO3:PX=6-R+1:QX=BY(R):BY(R)=BY(PX):BY(PX)=QX:NEXT 4180 FORR=CA+RX*8TOR+7:POKER,BY(R-CA-RX*8):NEXT:GOSUB4330:RETURN 4190 : 4200 FORR=CA+RX*8TOR+7:POKER,0:BY(R-CA-RX*8)=0:NEXT:GOSUB4330:RETURN 4210 FORR=CA+RX*8TOR+7:POKER,255:BY(R-CA-RX*8)=255:NEXT:GOSUB4330:RETURN 4220 FORR=CA+RX*8TOR+7:BB=255-PEEK(R):POKER,BB:BY(R-CA-RX*8)=BB:NEXT:GOSUB4330 4230 RETURN 4240 QX=ZP:FORZP=0TO7:IFSGN((BY(ZP)AND(2^HP)))=RYTHENQA=KX:GOSUB4100 4250 PK=BY(ZP):SYS49677,20,ZP+4:GOSUB3660:NEXT:ZP=QX:QA=PEEK(PB+VM):RETURN 4260 GOSUB4120:PK=BY(ZP):SYS49677,20,ZP+4:GOSUB3660:B$="":RETURN 4270 KX=CA+RX*8:FORPX=0TO7:QX=0:FORR=7TO0STEP-1:BB=SGN(BY(PX)-2^R) 4280 IFBB>-1THENBY(PX)=BY(PX)-2^R:QX=QX+2^(7-R) 4290 NEXT:BY(PX)=QX:POKEKX+PX,BY(PX) 4300 SYS49677,14,PX+4:PK=BY(PX) 4310 PRINT" "CHR$(157)CHR$(157)CHR$(157)CHR$(157)PK, 4320 GOSUB3660:NEXT:QA=PEEK(PB+VM):POKEVM+97,RX:RETURN 4330 PRINTCHR$(147);:SYS49677,18,2:GOSUB3410:POKEVM+97,RX 4340 R=PEEK(2024) 4350 IFR<253THENPOKE50452,R:POKE50453,R+1:POKE50492,R+2:POKE50493,R+3 4360 QA=PEEK(PB+VM):IFBB<0THENRETURN 4370 SYS49677,10,0:PRINTCHR$(158)" EDIT QUADE" 4380 SYS49677,3,1:PRINT" OR FIRE BUTTON TO EDIT" 4390 SYS49677,0,12:PRINT"JOYSTICK TO MOVE OR:-" 4400 PRINT" MOVE LEFT MOVE RIGHT" 4410 PRINT" MOVE DOWN -> MOVE UP" 4420 PRINT" BLANK CHARACTER FILL CHARACTER" 4430 PRINT" BLANK ROW FILL ROW" 4440 PRINT" BLANK COLUMN FILL COLUMN" 4450 PRINT" COPY CHARACTER ROTATE CHAR." 4460 PRINT" REVERSE CHARACTER" 4470 PRINT" VERT. INVERSE HORIZ. INVERSE" 4480 PRINT" AUTO EDIT

QUADE EXPAND" 4490 PRINT" COPY QUADE":PRINT" ROTATE QUADE"CHR$(152) 4500 PRINT"PRESS OR OR TO QUIT EDIT";:RETURN 4510 GETA$:R=R+1:IFR=12THENR=0:FORLL=80+VNTOLL+15:POKELL,1:NEXT 4520 IFR=6THENFORLL=80+VNTOLL+15:POKELL,7:NEXT 4530 IFA$>"/"ANDA$<":"THENB$=B$+A$:SYS49677,16,2:PRINTB$; 4540 IFLEN(B$)=3ORA$=CHR$(13)THENPOKED6,33:POKED6,16:GOTO4570 4550 IFA$=CHR$(136)THENRETURN 4560 GOTO4510 4570 LL=VAL(B$):IFLL=0ORLL>255THENSYS49677,15,2:PRINT" ";:RETURN 4580 IFBB<0THENRETURN 4590 FORR=0TO7:POKECA+R+LL*8,PEEK(CA+R+RX*8):NEXT:B$="":RETURN 4600 RY=CA+RX*8:FORR=0TO7:BB=0:FORT=0TO7:IF(BY(T)AND(2^(7-R)))>0THENBB=BB+2^T 4610 NEXT:POKERY+R,BB:NEXT 4620 FORR=0TO7:BY(R)=PEEK(RY+R):SYS49677,14,R+4:PK=BY(R) 4630 PRINT" "CHR$(157)CHR$(157)CHR$(157)CHR$(157)PK, 4640 GOSUB3660:NEXT:QA=PEEK(PB+VM):POKEVM+97,RX:RETURN 4650 B$="":R=11:SYS49677,0,2:PRINT"CHARACTER CODE? "; 4660 BB=-1:LL=0:GOSUB4510:BB=0:IFLL=0ORLL>252OR(LL>=RXANDLL EDIT QUADE":RETURN 4720 RY=CA+KX*8:FORR=0TO7:BX(R)=PEEK(CA+R+RQ*8):POKERY+R,BX(R):NEXT 4730 FORR=0TO7:BB=0:FORT=0TO7:IF(BX(T)AND(2^(7-R)))>0THENBB=BB+2^T 4740 NEXT:POKERY+R,BB:NEXT:RETURN 4750 IFQD=0THENRX=PEEK(2025):PB=180:GOSUB4330:ZP=0:HP=7:RETURN 4760 PRINTCHR$(147);:FORR=10TO25:POKER+VN,6:POKER+VM,0:NEXT:RQ=CA+RX*8 4770 FORKX=0TO3:PX=10:IFKX<2THENPX=2 4780 QX=18:IFKX=0ORKX=2THENQX=10 4790 BB=0:FORR=RQTOR+7:SYS49677,QX,PX+BB:PK=PEEK(R):GOSUB3660:BB=BB+1:NEXT 4800 RQ=RQ+8:NEXT:BB=-1:PB=90:GOSUB4340:BB=0:ZP=0:HP=7:POKE2025,RX 4810 SYS49677,7,20:PRINT" TO QUIT QUADE EDIT" 4820 PRINT:PRINT" /FIRE BUTTON TO EDIT":RETURN 4830 IFDX<>114THEN4860 4840 PB=PB-P1:ZP=ZP-1:IFPB<90THENPB=PB+640:ZP=7:RX=RX+2:GOTO5010 4850 IFPB+P1>385THENIFPB<410THENZP=7:RX=RX-2:GOTO5010 4860 IFDX<>113THEN4890 4870 PB=PB+P1:ZP=ZP+1:IFPB>705THENPB=PB-640:ZP=0:RX=RX-2:GOTO5010 4880 IFPB-P1<386THENIFPB>385THENZP=0:RX=RX+2:GOTO5010 4890 IFDX<>107THEN4930 4900 PB=PB-1:HP=HP+1 4910 IF(PB-9)/40=INT((PB-9)/40)THENPB=PB+16:HP=0:RX=RX+1:GOTO5010 4920 IF(PB-17)/40=INT((PB-17)/40)THENHP=0:RX=RX-1:GOTO5010 4930 IFDX<>115THEN4970 4940 PB=PB+1:HP=HP-1 4950 IF(PB+14)/P1=INT((PB+14)/P1)THENPB=PB-16:HP=7:RX=RX-1:GOTO5010 4960 IF(PB+22)/P1=INT((PB+22)/P1)THENHP=7:RX=RX+1:GOTO5010 4970 QA=PEEK(PB+VM):POKEPB+VM,42:FORR=1TO99:NEXT:CX=0:RETURN 4980 IFQA=P4THENQA=0:BY(ZP)=BY(ZP)+(2^HP):GOTO5000 4990 IFQA=0THENQA=P4:BY(ZP)=BY(ZP)-(2^HP) 5000 POKECA+RX*8+ZP,BY(ZP):RETURN 5010 FORR=0TO7:BY(R)=PEEK(CA+R+RX*8):NEXT:GOTO4970 5020 : 5030 FORR=0TO31:POKER+VM,0:NEXT 5040 FORT=0TO7:FORR=0TO7:BB=2^RANDBY(T):IFBB=0THEN5090 5050 RQ=T*2+VM-8*(T>3):IFR>3THEN5080 5060 BB=2^(R*2)+2^(R*2+1):POKERQ+8,PEEK(RQ+8)ORBB:POKERQ+9,PEEK(RQ+9)ORBB 5070 GOTO5090 5080 BB=2^((R-4)*2)+2^((R-4)*2+1):POKERQ,PEEK(RQ)ORBB:POKERQ+1,PEEK(RQ+1)ORBB 5090 NEXT:NEXT:RY=CA+RX*8:GOSUB4700:RETURN 5100 RX=CA+QQ*8:FORR=CA+QP*8TOR+7:RM=PEEK(R):POKER,PEEK(RX):POKERX,RM:RX=RX+1 5110 NEXT:RETURN 6000 GETB$:IFB$=""THEN6000 6010 R=ASC(B$):IFR=95THENLL=99:GOTO6000 6020 IFLL=99THEN6350 6030 IFR=86THENLL=5 6040 IFR=71THENLL=6 6050 IFR=83THENLL=2 6060 IFR=90THENLL=1 6070 IFR=67THENLL=0 6080 IFR=70THENLL=3 6090 IFR=88THENLL=4 6100 IFR=94THENLL=10 6110 IFR=66THENLL=9 6120 IFR=65THENLL=8 6130 IFR=138THENLL=12 6140 IFR=137THENLL=13 6150 IFR=140THENLL=18 6160 IFR=139THENLL=19 6170 IFR=141THENLL=24 6180 IFR=19THENLL=14 6190 IFR=57THENLL=15 6200 IFR=48THENLL=16 6210 IFR=58THENLL=25 6220 IFR=59THENLL=26 6230 IFR=47THENLL=27 6240 IFR=63THENLL=28 6250 IFR=64THENLL=29 6260 IFR=68THENLL=22 6270 IFR=196THENLL=23 6280 IFR=72THENLL=17 6290 IFR=160THENLL=30 6300 IFR=20THENLL=31 6310 IFR=147THENLL=32 6320 IFR=61THENLL=33 6330 IFLL>-1THENMX=55100+LL*100:GOSUB1700 6340 RETURN 6350 LL=-1:IFR=20THENLL=11 6360 IFR=140THENLL=20 6370 IFR=139THENLL=21 6380 GOTO6330 55100 REMREPLACE ALL PAD CHARACTERS THAT MATCH CHARACTER UNDER PEN, WITH PEN 55110 REM CHARACTER@ 55200 REMREPLACE COLOR OF ALL PAD CHARACTERS THAT MATCH CHARACTER UNDER PEN, 55210 REM WITH PEN COLOR@ 55300 REMREPLACE COLOR OF ALL PAD CHARACTERS THAT MATCH BOTH CHARACTER AND 55310 REM COLOR UNDER PEN, WITH PEN COLOR@ 55400 REMREPLACE ALL PAD CHARACTERS THAT MATCH BOTH CHARACTER AND COLOR UNDER 55410 REM PEN, WITH PEN CHARACTER@ 55500 REMREPLACE ALL PAD CHARACTERS THAT MATCH THE NORMAL/REVERSE CHARACTER 55510 REM UNDER PEN, WITH THE REVERSE/NORMAL FORM OF THAT CHARACTER@ 55600 REMREPLACE EVERY NORMAL/REVERSE CHARACTER ON PAD (INCLUDING SPACES) WITH 55610 REM THE REVERSE/NORMAL FORM OF THAT CHARACTER@ 55700 REMREPLACE EVERY NORMAL/REVERSE CHARACTER ON PAD (EXCLUDING NORMAL SPACES) 55710 REM WITH THE REVERSE/NORMAL FORM OF THAT CHARACTER@ 55900 REMEDIT ON/OFF SWITCH: IN EDIT ON MODE, LODRAW CAN BE USED LIKE A TYPEWRIT 55910 REMER@ 56000 REMDRAWS A SQUARE FROM PEN WITH SIDE LENGTH EQUAL TO PROJECTION NUMBER@ 56100 REMUNDO: CHANGES MADE BY A PROJECTION, REPLACE, GET OR CLEAR PAD OPERATION 56110 REM CAN BE UNDONE, RESTORING YOUR ORIGINAL DESIGN@ 56200 REMCHARACTER EDITOR: FOR DESIGNING YOUR OWN CHARACTERS AND QUADES@ 56300 REMPUT: FOR STORING ON-SCREEN DESIGN, COLOR AND CHARACTER SET IN CURRENT 56310 REM USER BUFFER@ 56400 REMGET: FOR RETRIEVING DESIGN, COLOR AND CHARACTER SET FROM CURRENT 56410 REM USER BUFFER@ 56500 REMUSER BUFFER SWITCH: SWITCHES BETWEEN BUFFER 1 AND BUFFER 2, TO/FROM 56510 REM WHICH SCREEN/COLOR/CHARACTER SET CAN BE STORED/RETRIEVED@ 56600 REMQUADES: FOUR CHARACTERS WITH SUCCESSIVE SCREEN CHARACTER CODES ARE 56610 REM DRAWN IN A SQUARE TO RIGHT OF PEN * FIRST CHARACTER IS PEN CHARACTER@ 56700 REMADDS 10 TO THE PROJECTION NUMBER@ 56800 REMHIDE/SEE PEN SWITCH@ 56900 REMDISK SAVE SCREEN/COLOR/CHARACTER SET@ 57000 REMDISK LOAD SCREEN/COLOR/CHARACTER SET@ 57100 REMDISK SAVE CHARACTER SET@ 57200 REMDISK LOAD CHARACTER SET@ 57300 REMDISPLAY DISK DIRECTORY@ 57400 REMERASE FILE FROM DISK@ 57500 REMPAINT: PEN WILL PAINT CHARACTERS IT PASSES OVER WITH PEN COLOR * 57510 REM QUITS PAINT@ 57600 REMSHIFT ROW LEFT FROM PEN@ 57700 REMSHIFT ROW RIGHT FROM PEN@ 57800 REMSHIFT COLUMN DOWN FROM PEN@ 57900 REMSHIFT COLUMN UP FROM PEN@ 58000 REMSWAP: TRANSPOSES PEN CHARACTER WITH PAD CHARACTER UNDER PEN WITHOUT 58010 REM SWAPPING THEIR SCREEN CHARACTER CODES@ 58100 REMDEFINES PEN CHARACTER AS THE CHARACTER ON THE PAD UNDER THE PEN@ 58200 REMSWITCHES CHARACTER EDITOR ON/OFF@ 58300 REMCLEAR PAD: