8-Bit Software Online Conversion
:2.$.WordPr+ - Listing
10MODE 3:MAR=0:A%=60:L1=0:@%=0
20DIML$(A%+1)
30L$=STRING$(64," "):L1$=L$:FORL=1TOA
%:L$(L)=L$:NEXT:L$(A%+1)=STRING$(64,"*")
40st=1:fin=18
50ONERRORGOTO1370
60VDU19,1,7,0,0,0
70PROCtemplate:PROCdisplay(3,st,fin):
PRINT TAB(30,22);"COMMAND ? ";
80*FX21,0
90Z=GET:PRINTCHR$(Z):IF Z>90 THEN Z=Z
-32
100IF Z=65 PROCamend
110IF Z=67 PROCclear
120IF Z=68 PROCdelete
130IF Z=73 PROCinsert
140IF Z=76 PROCload
150IF Z=80 PROCprint
160IF Z=83 PROCsave
170IF Z=84 PROCtype
180IF Z=86 PROCview
190IF Z=88 PROCcat
200GOTO 50
210DEFPROCcat
220*.
230PRINT"PRESS 0/2 FOR DRIVE & CATALOG
UE 0/2; SPACE TO RETURN ":PRINT
240A$=GET$
250IF A$="0" THEN *DR.0
260IF A$="2" THEN *DR.2
270IF A$="0" OR A$="2" THEN 220
280ENDPROC
290DEF PROCtype
300IF L1<18 THEN st=1 ELSE st=L1-16
310fin=st+17
320PROCtemplate:PROCdisplay(3,st,fin)
330PRINT TAB(20,22);"Type ZZZ to EXIT"
'TAB(20);"End line with SPACE to prevent
JUSTIFYING";
340PRINT TAB(5,L1-st+4);:PROCinputline
350IF RIGHT$(L$,3)="ZZZ" OR RIGHT$(L$,
3)="zzz" THEN ENDPROC
360IF L1>=A% VDU7:ENDPROC
370L1=L1+1:L$(L1)=L$
380GOTO 300
390ENDPROC
400DEFPROCtemplate
410CLS:PRINT" W O R D P R +
For information Load WPINFO"
420PRINTSTRING$(79,"=")
430RESTORE
440FORN=3TO20
450READW$
460PRINT TAB(69,N)"| "W$;
470NEXT
480DATAf1 Sscrpt,f2 Italic,f3 U/line,f
4 Expand,f5 Comp,f6 Bold,f7 NLQ,
490DATAA Amend,C Clear,D Delete,I Inse
rt,L Load,P Print,S Save,T Type,V View,X
Cat
500PRINTTAB(0,21);STRING$(79,"=")
510ENDPROC
520DEFPROCdisplay(tab,st,fin)
530FOR Q=st TO fin
540PRINTTAB(0,tab+Q-st);Q;TAB(3,VPOS);
"* ";L$(Q);
550NEXT
560ENDPROC
570DEFPROCclear
580VDU7,19,1,10,0,0,0
590INPUT TAB(27,23);"Are you SURE ? "Z
$:Z$=LEFT$(Z$,1)
600IF Z$<>"Y" AND Z$<>"y" GOTO 620
610FOR L=1 TO A%:L$(L)="":NEXT L:L1=0
620ENDPROC
630DEF PROCdelete
640VDU19,1,1,0,0,0
650INPUT TAB(25,23);"Line number ? "L
660IF L<1 OR L>L1 VDU7:GOTO 720
670IF L=L1 GOTO 690
680FOR Q=L TO L1-1:L$(Q)=L$(Q+1):NEXT
Q
690L$(L1)="":L1=L1-1
700IF L>8 THEN st=L-8 ELSE st=1
710IF st<A%-16 THEN fin=st+17 ELSE fin
=A%+1
720ENDPROC
730DEFPROCinsert
740VDU19,1,2,0,0,0:IF L1=A% VDU7:GOTO
830
750INPUT TAB(25,23);"Line number ? "L
760FOR Q=L1 TO L STEP -1:L$(Q+1)=L$(Q)
:NEXT Q
770L$(L)="":L1=L1+1
780IF L>8 THEN st=L-8 ELSE st=1
790IF st<A%-16 THEN fin=st+17 ELSE fin
=A%+1
800PROCtemplate:PROCdisplay(3,st,fin)
810PRINT TAB(5,L-st+3);:PROCinputline
820L$(L)=L$
830ENDPROC
840DEFPROCamend
850VDU19,1,5,0,0,0
860INPUTTAB(25,23);"Line number ? "L
870IF L<1 OR L>L1 VDU7:GOTO 980
880IF L<8 THEN st=1:tab=11-L
890IF L>=8 THEN st=L-7:tab=3
900fin=L
910PROCtemplate:PROCdisplay(tab,st,fin
)
920st=L+1:IF st<A%-5 THEN fin=st+6 ELS
E fin=A%+1
930PROCdisplay(14,st,fin)
940PRINT TAB(0,12);L;TAB(3,VPOS);"* ";
950PROCinputline:L$(L)=L$
960IF L>8 THEN st=L-8 ELSE st=1
970IF st<A%-16 THEN fin=st+17 ELSE fin
=A%+1
980ENDPROC
990DEF PROCsave
1000INPUTTAB(25,23);"FILENAME (7 letter
s max.) ? "F$
1010IF LEN(F$)>7 PRINT TAB(61,23);"
";:VDU7:GOTO 1000
1020X=OPENOUT F$
1030PRINT#X,L1
1040FOR L=1 TO L1:PRINT#X,L$(L):NEXT L
1050PTR#X=4400
1060CLOSE#X
1070ENDPROC
1080DEF PROCload
1090INPUT TAB(28,23);"FILENAME ? "F$:F$
=LEFT$(F$,7)
1100X=OPENIN F$
1110IF X=0 VDU7:INPUT TAB(20,24);"ERROR
*** File NOT FOUND. Press RETURN"Z1$
:GOTO 1160
1120FOR L=1 TO A%:L$(L)="":NEXT L
1130INPUT#X,L1
1140FOR L=1 TO L1:INPUT#X,L$(L):NEXT L
1150CLOSE#X
1160st=1:fin=18
1170ENDPROC
1180DEF PROCprint
1190INPUT TAB(0,22);"Just RETURN gives
immediate printout - 1 Copy; Left Margin
0; Not Justified."SPC(35)"How many Copi
es ? "C1
1200PRINTTAB(0,22);SPC(150)
1210IFC1=0 C1=1:M=0:MAR=0:GOTO1270
1220INPUT TAB(28,22);"Left Margin ? "MA
R
1230INPUT TAB(28,23);"Right Justified (
Y/N) ? "Z$
1240M=0:IF Z$<>"Y" AND Z$<>"y" GOTO 127
0
1250FOR L=1 TO L1:IF LEN(L$(L))>M M=LEN
(L$(L))
1260NEXT L
1270VDU2
1280FOR C=1 TO C1
1290IF L1=0 GOTO 1340
1300FOR L=1 TO L1
1310L$=L$(L):IF M>0 PROCjustify
1320PRINT SPC(MAR);L$
1330NEXT L
1340IF L1<A% FOR L=L1+1 TO A%:PRINT:NEX
T L
1350NEXT C
1360VDU3:ENDPROC
1370IF ERR=17 THEN PRINTTAB(0,24);STRIN
G$(79,"-"):PRINT"'GOTO 50' TO RESUME:":E
ND
1380VDU7:VDU19,1,11,0,0,0
1390INPUT TAB(25,23);"*** ERROR ***
Press RETURN"Z$
1400GOTO 50
1410DEF PROCview
1420INPUT TAB(27,23);"NUMBER of TOP LIN
E ? "st
1430IF st<1 OR st>A% VDU7:st=1
1440IF st<A%-16 THEN fin=st+17 ELSE fin
=A%+1
1450ENDPROC
1460DEF PROCinputline
1470L$=""
1480X$=GET$
1490IF X$=CHR$(9) THEN X$=" "
1500IF X$=CHR$(13) THEN ENDPROC
1510IF X$=CHR$(127) AND LEN(L$)>0 THEN
L$=LEFT$(L$,LEN(L$)-1):GOTO 1540
1520IF LEN(L$)>=64 THEN VDU7:GOTO 1480
1530L$=L$+X$
1540PRINTX$;
1550GOTO1480
1560DEF PROCjustify
1570X$=RIGHT$(L$,1):IF X$=" " GOTO 1700
1580F=0:N=0
1590FOR X=1 TO LEN(L$):L9=ASC(MID$(L$,X
,1))
1600IF L9<230 N=N+1
1610NEXTX
1620L1$="":X1$=""
1630FOR X=1 TO LEN(L$)
1640X$=MID$(L$,X,1)
1650IF ASC(X$)=234 X$=CHR$(233)
1660IF X$=" " AND X1$<>" " AND N<M L1$=
L1$+" ":N=N+1:F=1
1670L1$=L1$+X$:X1$=X$
1680NEXT X
1690L$=L1$:IF N<M AND F=1 GOTO 1620
1700ENDPROC
1710DEFPROCmargin
1720INPUT TAB(26,23);"Left Margin (prin
tout) ? "MAR:IF MAR>60 VDU7:MAR=0:GOTO50
1730ENDPROC