10 CLEAR:SYMBOL AFTER 124:st=HIMEM+1
20 BORDER 1 30 A=1:S=124:C=124 40 DIM G(8,8),H(8,8) 50 INK 0,0:INK 2,10 60 MODE 1 70 WINDOW#1,3,10,2,9 80 WINDOW#2,2,2,2,9 90 WINDOW#3,3,10,1,1 100 WINDOW#4,14,32,1,1 110 ORIGIN 225,304,225,238,304,319 120 PAPER 2:PEN 1:CLS 130 PEN#3,3 140 RESTORE:FOR N=11 TO 25 150 READ I,I$ 160 LOCATE I,N 170 PRINT I$ 180 NEXT 190 DATA 1,"ENTER : Store char",5,"N : New char" 200 DATA 3,"1-8 : Dot on/off",3,"9/0 : Cursor up/dn",5,"C : Clear grid",5,"E : Edit char",5,"V : Vert mirror",5,"H : Horiz mirror" 210 DATA 5,"R : Rotate left",5,"T : Rotate right",5,"I : Inverse",5,"Z : Nos. 124-189",5,"X : Nos. 190-255",3,"S/L : Save/load",5,"* : Reset chars" 220 GOSUB 1300 230 PAPER#1,0:CLS#1 240 PAPER#2,2:CLS#2 250 PAPER#3,1:CLS#3 260 PAPER#4,2:CLS#4 270 PRINT#3,"12345678"; 280 PEN#1,3 290 FOR N=1 TO 8 300 LOCATE#1,1,N 310 PRINT#1,"########"; 320 NEXT 330 PEN#2,1 340 LOCATE#2,1,A 350 PRINT#2,">"; 360 LOCATE 13,5:PRINT C 370 FOR GY=1 TO 8:FOR GX=1 TO 8:G(GX,GY)=0 380 NEXT:MOVE 0,GY*2-2:DRAWR 14,0,0:NEXT 390 A$=INKEY$:IF A$="" GOTO 390 400 IF A$>"0"AND A$<"9"THEN GOTO 600 410 IF INKEY(18)=0 THEN GOSUB 1170:GOSUB 1300 420 IF INKEY(62)=0 THEN GOTO 270 430 IF INKEY(46)=0 THEN GOSUB 640 440 IF INKEY(58)=0 THEN GOSUB 680 450 IF INKEY(55)=0 THEN GOSUB 800 460 IF INKEY(44)=0 THEN GOSUB 880 470 IF INKEY(50)=0 THEN GOSUB 960 480 IF INKEY(51)=0 THEN GOSUB 1040 490 IF INKEY(35)=0 THEN GOSUB 1120 500 IF INKEY(29)=32 THEN GOSUB 1250:IF F=1 THEN RUN 510 IF INKEY(71)=0 THEN S=124:GOSUB 1300 520 IF INKEY(63)=0 THEN S=190:GOSUB 1300 530 IF INKEY(60)=0 THEN GOSUB 1380:GOTO 60 540 IF INKEY(36)=0 THEN GOSUB 1420:GOTO 60 550 LOCATE#2,1,A:PRINT#2," "; 560 IF A$="9"AND A>1 THEN A=A-1 570 IF A$="0"AND A<8 THEN A=A+1 580 LOCATE#2,1,A:PRINT#2,">"; 590 GOTO 390 600 V=VAL(A$) 610 IF G(A,V)=0 THEN G(A,V)=1:PEN#1,1:LOCATE#1,V,A:PRINT#1,"#";:PLOT V*2-2,16-A*2,1:GOTO 630 620 G(A,V)=0:PEN#1,3:LOCATE#1,V,A:PRINT#1,"#";:PLOT V*2-2,16-A*2,0 630 GOTO 390 640 INPUT#4,"Character no.";C 650 IF C<124 OR C>255 THEN GOTO 640 660 CLS#4:LOCATE 13,5:PRINT C 670 RETURN 680 INPUT#4,"Character no.";D 690 IF D<124 OR D>255 THEN GOTO 680 700 CLS#4 710 PLOT 0,14,1 720 TAG:PRINT CHR$(D) 730 TAGOFF 740 FOR Y=1 TO 8:FOR X=1 TO 8 750 IF TEST(X*2-2,16-Y*2)=1 THEN P=1 ELSE P=3 760 PEN#1,P:LOCATE#1,X,Y:PRINT#1,"#"; 770 G(Y,X)=P+3*(P=3) 780 NEXT:NEXT 790 RETURN 800 FOR GY=1 TO 8:FOR GX=1 TO 8 810 H(GY,GX)=G(GY,GX):NEXT:NEXT 820 FOR GY=1 TO 8:FOR GX=1 TO 8 830 G(GY,GX)=H(GY,9-GX) 840 IF G(GY,GX)=1 THEN P=1 ELSE P=3 850 GOSUB 1460 860 NEXT:NEXT 870 RETURN 880 FOR GY=1 TO 8:FOR GX=1 TO 8 890 H(GY,GX)=G(GY,GX):NEXT:NEXT 900 FOR GY=1 TO 8:FOR GX=1 TO 8 910 G(GY,GX)=H(9-GY,GX) 920 IF G(GY,GX)=1 THEN P=1 ELSE P=3 930 GOSUB 1460 940 NEXT:NEXT 950 RETURN 960 FOR GY=1 TO 8:FOR GX=1 TO 8 970 H(GY,GX)=G(GY,GX):NEXT:NEXT 980 FOR GY=1 TO 8:FOR GX=1 TO 8 990 G(GY,GX)=H(GX,9-GY) 1000 IF G(GY,GX)=1 THEN P=1 ELSE P=3 1010 GOSUB 1460 1020 NEXT:NEXT 1030 RETURN 1040 FOR GY=1 TO 8:FOR GX=1 TO 8 1050 H(GY,GX)=G(GY,GX):NEXT:NEXT 1060 FOR GY=1 TO 8:FOR GX=1 TO 8 1070 G(GY,GX)=H(9-GX,GY) 1080 IF G(GY,GX)=1 THEN P=1 ELSE P=3 1090 GOSUB 1460 1100 NEXT:NEXT 1110 RETURN 1120 FOR GY=1 TO 8:FOR GX=1 TO 8 1130 IF G(GY,GX)=1 THEN G(GY,GX)=0:P=3:GOSUB 1460:GOTO 1150 1140 G(GY,GX)=1:P=1:GOSUB 1460 1150 NEXT:NEXT 1160 RETURN 1170 FOR GY=1 TO 8 1180 L=0 1190 FOR GX=1 TO 8 1200 IF G(GY,GX)=0 THEN GOTO 1220 1210 L=L+2^(8-GX) 1220 NEXT:L(GY)=L:NEXT 1230 SYMBOL C,L(1),L(2),L(3),L(4),L(5),L(6),L(7),L(8) 1240 RETURN 1250 PRINT#4,"Are you sure (Y/N)" 1260 A$=INKEY$:IF A$="" THEN GOTO 1260 1270 IF INKEY(43)=0 THEN F=1 ELSE F=0 1280 CLS#4 1290 RETURN 1300 S1=S 1310 FOR M=0 TO 2 1320 FOR N=3 TO 24 1330 LOCATE 22+M*6,N 1340 PRINT S1;CHR$(S1) 1350 S1=S1+1 1360 NEXT:NEXT 1370 RETURN 1380 CLS 1390 INPUT "FILE NAME";F$ 1400 SAVE F$,B,st,1056 1410 RETURN 1420 CLS 1430 INPUT "FILE NAME";F$ 1440 LOAD F$,st 1450 RETURN 1460 PEN#1,P 1470 LOCATE#1,GX,GY 1480 PRINT#1,"#";:PLOT GX*2-2,16-GY*2,P+3*(P=3) 1490 RETURN |