10 MODE 3:MAR=0:A%=60:L1=0:@%=0 20 DIML$(A%+1) 30 L$=STRING$(64," "):L1$=L$:FORL=1TOA%:L$(L)=L$:NEXT:L$(A%+1)=STRING$(64,"*") 40 st=1:fin=18 50 ONERRORGOTO1370 60 VDU19,1,7,0,0,0 70 PROCtemplate:PROCdisplay(3,st,fin):PRINT TAB(30,22);"COMMAND ? "; 80 *FX21,0 90 Z=GET:PRINTCHR$(Z):IF Z>90 THEN Z=Z-32 100 IF Z=65 PROCamend 110 IF Z=67 PROCclear 120 IF Z=68 PROCdelete 130 IF Z=73 PROCinsert 140 IF Z=76 PROCload 150 IF Z=80 PROCprint 160 IF Z=83 PROCsave 170 IF Z=84 PROCtype 180 IF Z=86 PROCview 190 IF Z=88 PROCcat 200 GOTO 50 210 DEFPROCcat 220 *. 230 PRINT"PRESS 0/2 FOR DRIVE & CATALOGUE 0/2; SPACE TO RETURN ":PRINT 240 A$=GET$ 250 IF A$="0" THEN *DR.0 260 IF A$="2" THEN *DR.2 270 IF A$="0" OR A$="2" THEN 220 280 ENDPROC 290 DEF PROCtype 300 IF L1<18 THEN st=1 ELSE st=L1-16 310 fin=st+17 320 PROCtemplate:PROCdisplay(3,st,fin) 330 PRINT TAB(20,22);"Type ZZZ to EXIT"'TAB(20);"End line with SPACE to prevent JUSTIFYING"; 340 PRINT TAB(5,L1-st+4);:PROCinputline 350 IF RIGHT$(L$,3)="ZZZ" OR RIGHT$(L$,3)="zzz" THEN ENDPROC 360 IF L1>=A% VDU7:ENDPROC 370 L1=L1+1:L$(L1)=L$ 380 GOTO 300 390 ENDPROC 400 DEFPROCtemplate 410 CLS:PRINT" W O R D P R + For information Load WPINFO" 420 PRINTSTRING$(79,"=") 430 RESTORE 440 FORN=3TO20 450 READW$ 460 PRINT TAB(69,N)"| "W$; 470 NEXT 480 DATAf1 Sscrpt,f2 Italic,f3 U/line,f4 Expand,f5 Comp,f6 Bold,f7 NLQ, 490 DATAA Amend,C Clear,D Delete,I Insert,L Load,P Print,S Save,T Type,V View,X Cat 500 PRINTTAB(0,21);STRING$(79,"=") 510 ENDPROC 520 DEFPROCdisplay(tab,st,fin) 530 FOR Q=st TO fin 540 PRINTTAB(0,tab+Q-st);Q;TAB(3,VPOS);"* ";L$(Q); 550 NEXT 560 ENDPROC 570 DEFPROCclear 580 VDU7,19,1,10,0,0,0 590 INPUT TAB(27,23);"Are you SURE ? "Z$:Z$=LEFT$(Z$,1) 600 IF Z$<>"Y" AND Z$<>"y" GOTO 620 610 FOR L=1 TO A%:L$(L)="":NEXT L:L1=0 620 ENDPROC 630 DEF PROCdelete 640 VDU19,1,1,0,0,0 650 INPUT TAB(25,23);"Line number ? "L 660 IF L<1 OR L>L1 VDU7:GOTO 720 670 IF L=L1 GOTO 690 680 FOR Q=L TO L1-1:L$(Q)=L$(Q+1):NEXT Q 690 L$(L1)="":L1=L1-1 700 IF L>8 THEN st=L-8 ELSE st=1 710 IF st8 THEN st=L-8 ELSE st=1 790 IF stL1 VDU7:GOTO 980 880 IF L<8 THEN st=1:tab=11-L 890 IF L>=8 THEN st=L-7:tab=3 900 fin=L 910 PROCtemplate:PROCdisplay(tab,st,fin) 920 st=L+1:IF st8 THEN st=L-8 ELSE st=1 970 IF st7 PRINT TAB(61,23);" ";:VDU7:GOTO 1000 1020 X=OPENOUT F$ 1030 PRINT#X,L1 1040 FOR L=1 TO L1:PRINT#X,L$(L):NEXT L 1050 PTR#X=4400 1060 CLOSE#X 1070 ENDPROC 1080 DEF PROCload 1090 INPUT TAB(28,23);"FILENAME ? "F$:F$=LEFT$(F$,7) 1100 X=OPENIN F$ 1110 IF X=0 VDU7:INPUT TAB(20,24);"ERROR *** File NOT FOUND. Press RETURN"Z1$:GOTO 1160 1120 FOR L=1 TO A%:L$(L)="":NEXT L 1130 INPUT#X,L1 1140 FOR L=1 TO L1:INPUT#X,L$(L):NEXT L 1150 CLOSE#X 1160 st=1:fin=18 1170 ENDPROC 1180 DEF PROCprint 1190 INPUT TAB(0,22);"Just RETURN gives immediate printout - 1 Copy; Left Margin 0; Not Justified."SPC(35)"How many Copies ? "C1 1200 PRINTTAB(0,22);SPC(150) 1210 IFC1=0 C1=1:M=0:MAR=0:GOTO1270 1220 INPUT TAB(28,22);"Left Margin ? "MAR 1230 INPUT TAB(28,23);"Right Justified (Y/N) ? "Z$ 1240 M=0:IF Z$<>"Y" AND Z$<>"y" GOTO 1270 1250 FOR L=1 TO L1:IF LEN(L$(L))>M M=LEN(L$(L)) 1260 NEXT L 1270 VDU2 1280 FOR C=1 TO C1 1290 IF L1=0 GOTO 1340 1300 FOR L=1 TO L1 1310 L$=L$(L):IF M>0 PROCjustify 1320 PRINT SPC(MAR);L$ 1330 NEXT L 1340 IF L1A% VDU7:st=1 1440 IF st0 THEN L$=LEFT$(L$,LEN(L$)-1):GOTO 1540 1520 IF LEN(L$)>=64 THEN VDU7:GOTO 1480 1530 L$=L$+X$ 1540 PRINTX$; 1550 GOTO1480 1560 DEF PROCjustify 1570 X$=RIGHT$(L$,1):IF X$=" " GOTO 1700 1580 F=0:N=0 1590 FOR X=1 TO LEN(L$):L9=ASC(MID$(L$,X,1)) 1600 IF L9<230 N=N+1 1610 NEXTX 1620 L1$="":X1$="" 1630 FOR X=1 TO LEN(L$) 1640 X$=MID$(L$,X,1) 1650 IF ASC(X$)=234 X$=CHR$(233) 1660 IF X$=" " AND X1$<>" " AND N60 VDU7:MAR=0:GOTO50 1730 ENDPROC