Source Code
1 GOTO 100
2 IF A$="" THEN LET X=0
3 RETURN
4 LET Z$(J)=D$(J)
5 RETURN
6 LET Z$=B$
7 RETURN
8 LET A$=Z$
9 RETURN
10 LET W$=""
11 RETURN
100 DIM Z$(704)
110 LET A=1
120 LET X$=""
130 LET Z=0
200 GOSUB 8900
210 GOSUB X*30+1000
220 IF X=227 THEN STOP
230 IF X=216 AND Z=1 THEN LET Z=2
240 IF X=216 AND Z=0 THEN LET Z=1
250 IF X=226 THEN GOTO 730
490 IF Z<>1 AND X$>"" THEN LET Z$(A TO A+LEN X$-1)=X$
500 CLS
510 PRINT Z$
520 LET B=INT ((A-1)/32)
530 IF X<>119 THEN PRINT AT 21,0;CHR$ (B+28);",";CHR$ (A-B*32+27);" "
540 IF Z=1 THEN PRINT AT B,A-B*32-1;X$
550 IF Z=2 THEN LET Z=1
590 GOTO 200
730 PRINT AT 21,0;"INPUT PROGRAM NAME "
740 INPUT X$
750 SAVE X$
760 GOSUB 4538
770 GOTO 500
\n2890 LET X$=CHR$ X
\n2899 RETURN
\n4360 GOSUB 4470
\n4370 IF A>32 THEN LET A=A-32
\n4379 RETURN
\n4390 GOSUB 4470
\n4400 IF A+L<674 THEN LET A=A+32
\n4409 RETURN
\n4420 GOSUB 4470
\n4430 IF A>L THEN LET A=A-L
\n4439 RETURN
\n4450 GOSUB 4470
\n4460 IF A<706-2*L THEN LET A=A+L
\n4469 RETURN
\n4470 LET L=LEN X$
\n4475 IF L=0 OR Z=1 THEN LET L=1
\n4479 RETURN
\n4480 GOTO 8700
\n4510 LET Y$="0123456789ABCDEFGHIJKLMNOPQRSTUV"
\n4512 PRINT AT 0,0;Y$;AT 21,0;Y$
\n4514 FOR J=1 TO 21
\n4516 LET Y$=CHR$ (J+28)
\n4518 PRINT AT J,0;Y$;AT J,31;Y$
\n4520 NEXT J
\n4522 PRINT AT 21,0;"INPUT CO-ORDS "
\n4524 INPUT Y$
\n4526 IF Y$="" THEN RETURN
\n4528 LET A=(CODE Y$-28)*32+CODE Y$(2)-27
\n4529 RETURN
\n4538 LET X=119
\n4540 LET X$=""
\n4599 RETURN
\n4630 IF Z=1 THEN LET Z=0
\n7480 RETURN
\n7510 LET Y$=""
\n7512 FOR J=1 TO 704
\n7514 LET X=CODE Z$(J)
\n7516 IF X<128 THEN GOTO 7520
\n7518 IF X>127 THEN GOTO 7530
\n7520 LET Z$(J)=CHR$ (X+128)
\n7525 NEXT J
\n7529 GOTO 7536
\n7530 IF X=192 THEN LET X=267
\n7532 LET Z$(J)=CHR$ (X-128)
\n7535 NEXT J
\n7536 LET X=119
\n7539 RETURN
\n7540 PRINT AT 21,0;"MIX PRINT "
\n7542 GOSUB 8900
\n7544 IF X<38 OR X>60 THEN RETURN
\n7546 POKE 16529,X
\n7548 LET B=X
\n7550 GOSUB 2
\n7552 IF X=0 THEN GOTO 7565
\n7554 POKE 16563,X
\n7556 FOR J=1 TO 704
\n7558 IF Z$(J)=" " THEN GOSUB 4
\n7560 NEXT J
\n7562 GOTO 4538
\n7565 PRINT AT 21,0;CHR$ B;"$ NOT ALLOCATED "
\n7567 GOSUB 8900
\n7568 LET X=0
\n7569 RETURN
\n7570 GOSUB 7580
\n7572 FOR J=1 TO 704
\n7574 LET Z$(J)=CHR$ PEEK (32000+J)
\n7576 NEXT J
\n7579 RETURN
\n7580 IF PEEK 16388+256*PEEK 16389<>32000 THEN GOTO 7590
\n7589 RETURN
\n7590 PRINT AT 21,0;"RAMTOP <> 32000 "
\n7595 STOP
\n7600 GOSUB 7580
\n7602 FOR J=1 TO 704
\n7604 POKE 32000+J,CODE Z$(J)
\n7606 NEXT J
\n7609 RETURN
\n7630 PRINT AT 21,0;"INPUT GRAPHIC TO BE REPLACED "
\n7632 INPUT X$
\n7634 CLS
\n7636 PRINT Z$
\n7638 PRINT AT 21,0;"INPUT NEW GRAPHIC "
\n7640 INPUT Y$
\n7642 FOR J=1 TO 704
\n7644 IF Z$(J)=X$ THEN LET Z$(J)=Y$
\n7646 NEXT J
\n7649 GOTO 4538
\n7660 PRINT AT 21,0;"PRINT "
\n7662 GOSUB 8900
\n7664 IF X<38 OR X>60 THEN RETURN
\n7666 POKE 16529,X
\n7668 LET B=X
\n7670 GOSUB 2
\n7672 IF X=0 THEN GOTO 7565
\n7674 POKE 16583,X
\n7676 LET X=119
\n7679 GOTO 6
\n7690 LET B=A
\n7691 PRINT AT 21,0;"INPUT DIRECTION "
\n7692 LET X$=""
\n7694 GOSUB 8900
\n7696 IF X<112 OR X>115 THEN GOTO 8910
\n7700 LET A=100
\n7702 LET L=1
\n7704 GOSUB X*30+1000
\n7706 IF A=68 THEN LET Z$=Z$(33 TO )+Z$(1 TO 32)
\n7708 IF A=132 THEN LET Z$=Z$(673 TO )+Z$(1 TO 672)
\n7710 IF A=99 THEN LET Z$=Z$(2 TO )+Z$(1)
\n7712 IF A=101 THEN LET Z$=Z$(704)+Z$(1 TO 703)
\n7713 CLS
\n7714 PRINT Z$
\n7719 GOTO 7691
\n7720 LET X$="\' \ '\ .\. \: \ :\.:\:.\:'\':\.'\'.\##\@@\ '\' \. \ .\ :\: \:.\.:\':\:'\'.\.'\@@\##"
\n7721 LET Y$=""
\n7722 FOR B=0 TO 21
\n7723 FOR J=32 TO 1 STEP -1
\n7724 LET Y$=Y$+Z$(32*B+J)
\n7725 LET X=CODE Y$(LEN Y$)
\n7726 IF X>0 AND X<9 AND X<>3 OR X>128 AND X<137 AND X<>131 THEN GOSUB 7740
\n7727 NEXT J
\n7728 NEXT B
\n7729 LET Z$=Y$
\n7730 LET Y$=""
\n7731 LET X$=""
\n7732 LET X=119
\n7739 RETURN
\n7740 FOR K=15 TO 28
\n7741 IF Y$(LEN Y$)=X$(K) THEN GOTO 7745
\n7742 NEXT K
\n7744 RETURN
\n7745 LET Y$(LEN Y$)=X$(K-14)
\n7749 RETURN
\n7750 PRINT AT 21,0;"INPUT FILE NAME "
\n7752 GOSUB 8900
\n7754 IF X<38 OR X>60 THEN RETURN
\n7756 POKE 16529,X
\n7758 LET B=X
\n7760 GOSUB 2
\n7762 IF X=0 THEN GOTO 7770
\n7764 PRINT AT 21,0;"WARNING: ";CHR$ X;"$ IN USE "
\n7766 GOSUB 8900
\n7768 IF X<>B THEN RETURN
\n7770 POKE 16597,B
\n7772 LET X$=""
\n7774 LET X=119
\n7779 GOTO 8
\n7810 RETURN
\n7840 DIM Z$(704)
\n7849 GOTO 4540
\n7870 PRINT AT 21,0;"REFS TO BE CLEARED (OR ""ALL"")"
\n7872 INPUT X$
\n7874 IF X$="ALL" THEN LET X$="ABCDEFGHIJKLMNOPQRSTUVW"
\n7876 FOR J=1 TO LEN X$
\n7878 POKE 16614,CODE X$(J)
\n7880 GOSUB 10
\n7882 NEXT J
\n7889 GOTO 4540
\n8700 GOSUB 8900
\n8710 IF X=121 THEN RETURN
\n8720 IF X=116 THEN GOTO 8800
\n8730 IF X<64 THEN GOTO 8790
\n8740 LET X$="\' \ '\ .\. \: \..\''\ :% \.:\:.\:'\':\.'\'.\##\~~\,,\!!\;;\@@"+CHR$ 117+" AND THEN TO "+CHR$ 114+CHR$ 113+CHR$ 112+CHR$ 115+CHR$ 119+""" OR STEP <=<>>= STOP LPRINT SLOW FAST LLIST **"
\n8750 FOR J=22 TO 42
\n8760 IF X=CODE X$(J) THEN GOTO 8780
\n8770 NEXT J
\n8779 GOTO 4540
\n8780 LET X$=X$(J-21)
\n8785 LET X=0
\n8789 RETURN
\n8790 LET X$=CHR$ (X+128)
\n8799 RETURN
\n8800 INPUT X$
\n8809 RETURN
\n8900 PAUSE 40000
\n8901 POKE 16437,255
\n8902 LET X=CODE INKEY$
\n8909 RETURN
\n8910 LET A=B
\n8919 RETURN
\n9000 REM COPYRIGHT N.GODWIN 1982