100 D$="" 110 GOTO1610:REM GO COPY CHARS*********** 120 DIMA(7):A(7)=128:A(6)=64:A(5)=32:A(4)=16:A(3)=8:A(2)=4:A(1)=2:A(0)=1:P=42 130 PRINT"[147]":REM GET CHARACTER #******* 140 PRINTD$SPC(14)"PROMPT MODE":PRINT""RL"-"RH;"'Q' TO QUIT, OR 'H' FOR HELP" 150 INPUT"CHAR #";C$ 160 IFLEFT$(C$,1)="Q"THENGOSUB1750:GOTO140 170 IFLEFT$(C$,1)="H"THENGOSUB1940:GOTO140 180 C=VAL(C$) 190 IFCRHTHEN140 200 AD=12288+8*C 210 PRINTD$;SPC(14)" EDIT MODE[146]" 220 FORI=0TO9:POKE1024+4*40+16-I,160:NEXT 230 FORI=0TO9:POKE1024+13*40+16-I,160:NEXT 240 FORI=0TO9:POKE1024+(4+I)*40+16,160:NEXT 250 FORI=0TO9:POKE1024+(4+I)*40+7,160:NEXT 260 REM DECODE CHAR TO USE IN MATRIX**** 270 FORI=0TO7 280 X=PEEK(AD+I) 290 B(0)=((XAND1)=0)+1 300 B(1)=((XAND2)=0)+1 310 B(2)=((XAND4)=0)+1 320 B(3)=((XAND8)=0)+1 330 B(4)=((XAND16)=0)+1 340 B(5)=((XAND32)=0)+1 350 B(6)=((XAND64)=0)+1 360 B(7)=((XAND128)=0)+1 370 FOR J=7TO0STEP-1 380 V=32*(1-B(J))+42*B(J) 390 POKE1024+40*(I+5)+15-J,V 400 POKE55296+40*(I+5)+15-J,14 410 NEXT 420 NEXT 430 PRINTCHR$(142+128*(C>255))"":POKE1232+40*3+20,C+256*(C>255) 440 POKE55296+8*40+28,14 450 QN=0:QO=0:PF=0:REM GET COMMAND***** 460 P=PEEK(1232+QO):POKE1232+QO,P 470 GETM$:P=(POR128)-(PAND128):POKE1232+QO,P 480 P=(POR128)-(PAND128):POKE1232+QO,P:FORI=1TO50:NEXT:IFM$=""GOTO470 490 IFM$="[145]"THENQN=QO-40 500 IFM$=""THENQN=QO+40 510 IFM$=""THENQN=QO+1 520 IFM$="[157]"THENQN=QO-1 530 IFM$="[134]"THENGOTO140:REM F3 GET TO PROMPT 540 IFM$="[133]"THENGOSUB740:GOTO450:REM F1 COMPILE SHAPE 550 IFM$="[135]"THENGOSUB1070:GOTO140:REM F5 SAVE A FILE 560 IFM$="[139]"THENGOSUB860:GOTO140:REM LOAD A FILE 570 IFM$="[136]"THENGOSUB1270:GOTO140:REM F7 DATA STATEMENTS 580 IFM$="*"THENP=42:PF=1 590 IFM$=" "THENP=32:PF=1 600 IFM$=""THEN450 610 IFM$="[147]"THENGOSUB690:GOTO450 620 IFPEEK(197)=32ANDPEEK(653)=4THENGOSUB1510:GOTO450 630 IFM$="N"THENC=C+1:GOTO190 640 IFM$="P"THENC=C-1:GOTO190 650 IFPEEK(1232+QN)=160THEN460 660 IFPFTHENPOKE1232+QN,P:PF=0 670 QO=QN 680 GOTO460 690 FORI=0TO7:REM CLEAR CHAR BOX******* 700 FORJ=0TO7 710 POKE(1024+40*(I+5)+(15-J)),32 720 NEXT:NEXT 730 RETURN 740 REM COMPILE SHAPE****************** 750 FORI=0TO7 760 T=0 770 FORJ=0TO7 780 X=PEEK(1024+40*(I+5)+(15-J)) 790 IFX=32THEN810 800 T=T+A(J) 810 NEXT 820 POKEAD+I,T 830 NEXT 840 RETURN 850 REM LOAD FILE*********************** 860 PRINT"[147]LOAD FILE FROM T[146]APE OR D[146]ISK?"; 870 GETFD$ 880 IFFD$<>"D"ANDFD$<>"T"THEN870 890 IFFD$="D"THENFD=8:FW=3:FR$=",S,R":FW$=",S,W":FR=FW 900 IFFD$="T"THENFD=1:FW=1:FR$="":FW$="":FR=0 910 PRINT:INPUT"NAME OF FILE TO LOAD";NF$:GOTO930 920 GOTO1050 930 IFNF$=""THEN910 940 IFNF$="X"THENGOTO1050 950 OPEN1,FD,FR,NF$+FR$ 960 INPUT#1,RL:INPUT#1,RH 970 IFSTTHENGOSUB2170:CLOSE1:GOTO910 980 FORC=RLTORH 990 AD=12288+8*C 1000 FORI=ADTOAD+7 1010 INPUT#1,XX 1020 POKEI,XX 1030 NEXT 1040 NEXT:CLOSE1 1050 PRINT"[147]":POKE204,1:RETURN 1060 REM SAVE A FILE******************** 1070 PRINT"[147]SAVE FILE TO T[146]APE OR D[146]ISK?"; 1080 GETFD$ 1090 IFFD$<>"D"ANDFD$<>"T"THEN1080 1100 IFFD$="D"THENFD=8:FW=3:FR$=",S,R":FW$=",S,W":FR=FW 1110 IFFD$="T"THENFD=1:FW=1:FR$="":FW$="":FR=0 1120 PRINT:INPUT"FILENAME";NF$ 1130 IFNF$=""THEN1120 1140 IFNF$="X"THENPRINT"[147]":RETURN 1150 OPEN1,FD,FW,NF$+FW$ 1160 PRINT#1,RL:PRINT#1,RH 1170 IFSTTHENGOSUB2170:CLOSE1:GOTO1120 1180 FORC=RLTORH 1190 AD=12288+8*C 1200 FORI=ADTOAD+7 1210 XX=PEEK(I) 1220 PRINT#1,XX 1230 NEXT 1240 NEXT 1250 CLOSE1:PRINT"[147]":RETURN 1260 REM PRINT OUT DATA**************** 1270 PRINT"[147]OUTPUT TO S[146]CREEN OR P[146]RINTER?"; 1280 GETDV$ 1290 IF DV$<>"P"ANDDV$<>"S"THEN1280 1300 IFDV$="S"THENDV=3 1310 IFDV$="P"THENDV=4 1320 CO=C:PRINT"[147]PRESS ANY KEY TO STOP THE LISTING[146]":OPEN1,DV:CMD1 1330 FORI=1TO1000:NEXT 1340 FORC=RLTORH 1350 PRINT#1,"DATA";C; 1360 AD=12288+8*C 1370 FORI=ADTOAD+7 1380 XX=PEEK(I) 1390 PRINT#1,XX"[157],"; 1400 NEXT 1410 PRINT#1,"[157] " 1420 GETQ$:IFQ$<>""THEN1470 1430 NEXT 1440 PRINT"PRESS 'X' TO GET BACK TO PROMPT[146]" 1450 GETZ$:IFZ$<>""THENCLOSE1:PRINT"[147]":RETURN 1460 GOTO1450 1470 PRINT"PRESS 'C' TO CONTINUE -OR-":PRINT"PRESS 'X' TO GET BACK TO PROMPT" 1480 GETQ$:IFQ$="C"THEN1430 1490 IFQ$="X"THENCLOSE1:C=CO:PRINT"[147]":RETURN 1500 GOTO1480 1510 PRINT"":REM RVS CHARACTER******** 1520 FORI=0TO7 1530 T=0 1540 FORJ=0TO7 1550 X=PEEK(1024+40*(I+5)+(15-J)) 1560 IFX=32THENPOKE1024+40*(I+5)+(15-J),42:GOTO1580 1570 POKE1024+40*(I+5)+(15-J),32 1580 NEXT 1590 NEXT 1600 RETURN 1610 REM COPY CHARS********************* 1620 ML=12*4096:CK=0:RESTORE:FORI=MLTOML+46:READA:CK=CK+A:POKEI,A:NEXT 1630 IFCK<>7117THENPRINT"CHECKSUM ERROR[146]":STOP 1640 PRINT"[147]-IN THE PROCESS OF COPYING CHARACTER SET":PRINT"PLEASE WAIT." 1650 SYS(ML) 1660 FORXX=1TO1000:NEXT 1670 GOSUB1750:GOTO120 1680 DATA 120,169,51,133,1 1690 DATA 169,0,133,251,169,208,133,252 1700 DATA 169,0,133,253,169,48,133,254 1710 DATA 162,16,160,0,177,251,145,253 1720 DATA 200,192,0,208,247,230,252,230 1730 DATA 254,202,208,240 1740 DATA 169,55,133,1,88,96 1750 REM PICK CHARACTER SET************ 1760 POKE204,0:POKE53272,21:PRINT"[147] 1) UPPER CASE" 1770 PRINT" 2) LOWER CASE" 1780 PRINT" 3) GRAPHICS CHARS" 1790 PRINT" 4) REV UPPER CASE" 1800 PRINT" 5) REV GRAPHICS CHARS" 1810 PRINT" 6) REV LOWER CASE" 1820 PRINT"ENTER THE NUMBER OF YOUR CHOICE":PRINT"('X' TO EXIT)?"; 1830 GETR$:IFR$=""THEN1830 1840 IFR$="X"THENPRINT"[147]BYE NOW!!!":END 1850 R=VAL(R$) 1860 IFR<1ORR>6THENGOTO1830 1870 IFR=1THENRL=0:RH=63:GOTO1930 1880 IFR=2THENRL=256:RH=319:GOTO1930 1890 IFR=3THENRL=64:RH=127:GOTO1930 1900 IFR=4THENRL=128:RH=191:GOTO1930 1910 IFR=5THENRL=198:RH=255:GOTO1930 1920 IFR=6THENRL=385:RH=488:GOTO1930 1930 POKE204,1:POKE53272,29:PRINT"[147]":RETURN 1940 REM HELP************************** 1950 POKE53272,21 1960 PRINT"[147]THE FOLLOWING IS A LIST OF COMMANDS THATCAN BE CALLED WHILE"; 1970 PRINT" EDITING A CHARACTER:" 1980 PRINT"KEY ","FUNCTION" 1990 PRINT"[183][183][183] ","[183][183][183][183][183][183][183][183]" 2000 PRINT"F1[146]","COMPILE SHAPE" 2010 PRINT"F3[146]","RETURN TO PROMPT" 2020 PRINT"F5[146]","SAVE CHAR FILE" 2030 PRINT"F6[146]","LOAD CHAR FILE" 2040 PRINT"F7[146]","DATA FOR CHAR FILE" 2050 PRINT" *[146]","PUT STAR AT CURRENT LOCATION" 2060 PRINT"' '","PUT SPACE AT CURRENT LOCATION" 2070 PRINT"CLR[146]","CLEAR CHAR BOX" 2080 PRINT"HOME[146]","PLACE CURSOR IN UPPER LEFT HAND CORNER" 2090 PRINT"CTRL 9[146]","REVERSES CURRENT CHAR" 2100 PRINT" N[146]","GOES TO NEXT CHAR" 2110 PRINT" P[146]","GOES TO PREVIOUS CHAR" 2120 PRINT">>>>CURSOR KEYS MOVE CURSOR<<<<[146]" 2130 PRINT"PRESS 'X' TO GET BACK TO PROMPT" 2140 GETQ$ 2150 IFQ$="X"THENPRINT"[147]":POKE54272,29:RETURN 2160 GOTO2140 2170 REM ERROR CHECKING*************** 2180 IFFD=8THENGOTO2220 2190 PRINT"TAPE ERROR[146]" 2200 FORI=1TO1000:NEXT 2210 RETURN 2220 PRINT"DISK ERROR[146]" 2230 OPEN15,8,15:INPUT#15,A1$,B1$,C1$,D1$:PRINTA1$;B1$;C1$;D1$:CLOSE15 2240 OPEN15,8,15,"I0":CLOSE15 2250 FORI=1TO1000:NEXT 2260 RETURN