Jump to content

Program:Wrdpro.bas

From Philosophical Research
Revision as of 04:44, 19 July 2025 by Vidak (talk | contribs) (Created page with "<syntaxhighlight lang="bbcbasic"> REM WRD PROC 8/11/1977 REM THE PRINCIPAL DIFFERENCE BETWEEN THE INPUT AND LINE INPUT REM STATMENTS IS THAT LINE INPUT ACCEPTS SPECIAL CHARACTERS (SUCH AS REM COMMAS) WITHIN A STRING, WITHOUT REQUIRING DOUBLE QUOTATION MARKS, REM WHILE THE INPUT STATEMENTS REQUIRES DOUBLE QUOTATION MARKS. 100 PRINT CHR$(26);"WORD PROCESSING TEXT EDITOR REV. 1.1" 110 PRINT "UCC - COPYRIGHT 1977 BY SCIENTIFIC RESEARCH":PRINT:PRINT 120 REM WORD PROCESSI...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
REM WRD PROC    8/11/1977

REM THE PRINCIPAL DIFFERENCE BETWEEN THE INPUT AND LINE INPUT
REM STATMENTS IS THAT LINE INPUT ACCEPTS SPECIAL CHARACTERS (SUCH AS
REM COMMAS) WITHIN A STRING, WITHOUT REQUIRING DOUBLE QUOTATION MARKS,
REM WHILE THE INPUT STATEMENTS REQUIRES DOUBLE QUOTATION MARKS.

100 PRINT CHR$(26);"WORD PROCESSING TEXT EDITOR REV. 1.1"
110 PRINT "UCC - COPYRIGHT 1977 BY SCIENTIFIC RESEARCH":PRINT:PRINT
120 REM WORD PROCESSING TEXT EDITOR
130 REM WRITTEN BY JOHN W. SWAIN
140 REM COPYRIGHT BY SCIENTIFIC RESEARCH 1977
150 REM THE FOLLOWING VARIABLES CONTROL CONSOLE PORT ASSIGNMENTS
160 REM C1=CRT PORT ASSIGNMENT
170 REM P1=SWITCH SETTING FOR CRT PORT
180 REM C2=PRINTER PORT ASSIGNMENT
190 REM P2=SWITCH SETTING FOR PRINTER PORT
200 REM SET UP GLOBAL CONSTANTS AND EQUATES
210 DEFINT A-Z:CLEAR 3000:DEF FN Z$(Y$)=CHR$(ASC(Y$) AND 95)
220 LINE INPUT "ENTER TODAY`S DATE (MM/DD/YY OR SEPT. 26, 1977)? ";Z9$
230 PRINT CHR$(26)
240 ON ERROR GOTO 3420 'SET UP ERROR TRAPS
250 C1=18:P1=1
260 C2=16:P2=0
270 CLOSE:PRINT "WORD PROCESSING TEXT EDITOR REV. 1.1"
280 PRINT "UCC - COPYRIGHT 1977 BY SCIENTIFIC RESEARCH":PRINT:PRINT
290 PRINT "THE FOLLOWING FUNCTIONS AVAILABLE ARE:":PRINT
300 PRINT," 1 - BUILD THE TEXT OR LETTER"
310 PRINT," 2 - CREATE THE NAME AND ADDRESS FILE"
320 PRINT," 3 - EDIT THE NAME AND ADDRESS FILE"
330 PRINT," 4 - EDIT THE TEXT FILE (NOTE: PROGRAM EXITS AND YOU USE"
340 PRINT,"     THE EDITOR IN BASIC)"
350 PRINT," 5 - PRINT A COPY OF THE TEXT"
360 PRINT," 6 - PRINT A COPY OF THE LETTER WITHOUT THE NAME "
370 PRINT,"     AND ADDRESS FILE. SALUTATION ENTERED FOR EACH LETTER"
380 PRINT," 7 - PRINT LETTERS FROM NAME AND ADDRESS FILE"
390 PRINT," 8 - GLOBAL SEARCH AND REPLACE"
400 PRINT," 9 - PRINT MAILING LABELS"
410 PRINT,"10 - END"
420 PRINT:INPUT "WHICH WOULD YOU LIKE TO DO";F9;IF F9<1 OR F9>10 THEN 270
430 PRINT CHR$(26):0N F9 GOTO 470,760,1090,1560,1690,1940,2270,2750,3020
440 REM END ROUTINE
450 CLOSE:PRINT "EXITING TEXT EDITOR":CLEAR 200:END
460 REM TEXT CREATION ROUTINE
470 LN=1000:PRINT "TEXT CREATION ROUTINE FOR LETTERS AND COPY"
480 GOSUB 3390:IF Z=O THEN 480
490 PRINT "OUTPUT ";:GOSUB 3360:IF Z=O THEN 490
500 GOSUB 3220 'CHECK FOR EXISTING FILE
510 OPEN "O",1,FZ$,DR
520 GOSUB 3180 'SET UP HEADER OF FILE
530 PRINT:PRINT:PRINT "FILE HEADER LABEL = ";MID$(A$,INSTR(A$,"`"))
540 PRINT "===== BEGIN TEXT ENTRY ====="
550 PRINT:PRINT
560 LINE INPUT A$:IF A$="END" THEN 630
570 IF LEFT$(A$,1)="?" THEN 590
580 A1$=A$:A$=STR$(LN)+"` "+A$:PRINT #1,A$:LN=LN+10:GOTO 560
590 IF A$="?" THEN PRINT:PRINT A1$ GOTO 560
600 T=VAL<MID$CA$v2>>:IFT<10RT>132THENPRINT·TAB INCORRECT·:GOTO 560
610 T$="":FOR I=1 TO T:T$=T$+" ":NEXT
620 PRINT T$;:LINE INPUT A$:A$=T$+A$:GOTO 580
630 GOSUB 650:CONSOLE C1,P1:CLOSE:PRINT"EXITING CREATION ROUTINE"
640 GOTO 730
650 CLOSE:INPUT "DO YOU WANT A LISTING OF THE FILE";Z1$
660 IF LEFT$(Z1$,1)="N" THEN RETURN
670 OPEN "I",1,FZ$,DR:INPUT "DO YOU WANT LINE NUMBERS LISTED";Z1$
680 INPUT "HIT (CR) WHEN READY";ZZ$;CONSOLE C2, P2:PRINT
690 IF EOF(1) THEN RETURN
700 LINE INPUT #1,A$
710 IF LEFT$(Z1$,1)="Y" THEN PRINT A$ ELSE PRINT MID$(A$,INSTR(A$,"`")+1)
720 GOTO 690
730 PRINT "NUMBER OF RECORDS WRITTEN = ";(LN-1000)/10
740 GOTO 270
750 REM CREATE NAME AND ADDRESS FILE
760 LN=1000:PRINT "CREATION ROUTINE FOR NAME AND ADDRESS FILE"
770 GOSUB 3390:IF Z=0 THEN 770
780 PRINT "OUTPUT ";:GOSUB 3360:IF Z=0 THEN 780
790 GOSUB 3220 'CHECK FOR EXISTING FILE
800 OPEN "O",1,FZ$,DR
810 GOSUB 3180 'SET UP HEADER OF FILE
820 PRINT:PRINT:PRINT "FILE HEADER LABEL = ";MID$(A$,INSTR(A$,"`"))
830 GOSUB 840:GOTO 1010
840 PRINT "===== BEGIN TEXT ENTRY ====="
850 PRINT:PRINT
860 LINE INPUT A$:IF A$<>"END" THEN GOSUB 870:GOTO 860 ELSE RETURN
870 IF LEFT$(A$,1)="?" THEN 900
880 IF F>8 THEN GOSUB 1030:F=0:RETURN
890 A1$=A$:F=F+1:AT$(F)=A$:RETURN
900 IF A$="?" THEN PRINT:PRINT A1$:RETURN
910 A$=MID$(A$,2):GOSUB 920:GOT0 960
920 IF LEN(A$)<1 OR LEN(A$)>26 THEN 990
930 FOR I=1 TO LEN(A$):MID$(A$,I,1)=FNZ$(MID$(A$,I,1)):T$=MID$(A$,I,1)
940 IF T$=>"A" AND T$<="Z" THEN NEXT ELSE 990
950 RETURN
960 T$=A$:LINE INPUT "SALUTATION? ";A$;F=F+1:AT$(F)="?"+T$+"-"+A$
970 FOR I=1 TO F:PRINT #1,MID$(STR$(LN),2)+"` "+AT$(I):LN=LN+10:NEXT
980 F=O:PRINT:PRINT "===== NEXT ENTRY =====":RETURN
990 PRINT "GROUP CODES MUST CONSIST OF 1 TO 26 UPPER CASE LETTERS ONLY"
1000 LINE INPUT "PLEASE ENTER THE CORRECT GROUP CODE(S)? ";A$:GOTO 920
1010 GOSUB 650:CONSOLE C1,P1:CLOSE:PRINT "EXITING CREATION ROUTINE"
1020 GOT0 730
1030 PRINT CHR$(26):"THE LAST 10 LINES ENTERED:":PRINT
1040 FOR J=1 TO F:PRINT AT$(J):NEXT
1050 PRINT:PRINT "DON'T CONTAIN AN END OF ENTRY MARKER  (?)."
1060 PRINT "START THIS ENTRY OVER AT THE FIRST LINE"
1070 RETURN
1080 REM  NAME AND ADDRESS FILE EDITOR ROUTINE
1090 PRINT "EDITOR FOR NAME AND ADDRESS FILE":PRINT:PRINT
1100 GOSUB 3390:IF Z=0 THEN 1090
1110 PRINT "OUTPUT ";:GOSUB 3360:FP$=FZ$:IF Z=0 THEN 1110
1120 PRINT "INPUT ";:GOSUB 3360:LN=1000:IF Z=0 THEN 1120
1130 OPEN "I",2,FZ$,DR
1140 OPEN "O",1,"..XYZ..",DR
1150 GOSUB 3190:LINE INPUT #2,Z1$ 'WRITE UPDATED HEADER TO FILE
1160 PRINT CHR$(26):F=1:GOSUB 1460:IF F=0 THEN GOTO 1510
1170 PRINT "THIS SECTION OFFERS 6 MODES OF OPERATION.":PRINT
1180 PRINT,"1 - ADD A LINE AFTER LINE SPECIFIED"
1190 PRINT,"2 - DELETE LINE SPECIFIED"
1200 PRINT,"3 - REPLACE LINE SPECIFIED"
1210 PRINT,"4 - DELETE THIS ENTRY"
1220 PRINT,"5 - GET NEXT ENTRY"
1230 PRINT,"6 - END"
1240 PRINT:PRINT:PRINT TAB(12);"LINE NO.     CONTENTS":PRINT
1250 PRINT TAB(16);"1      ";AT$(1);SPC(4);"(GROUP CODES)"
1260 FOR J=2 TO F:PRINT TAB(15);J;SPC(5);AT$(J):NEXT:PRINT:PRINT
1270 INPUT "WHICH FUNCTION";F9:IF F9<1 OR F9>6 THEN 1170
1280 IF F9<4 THEN INPUT "LINE NUMBER";F8 ELSE 1300
1290 IF F8<1 OR (F8+1>10 AND F9=1) OR F8>F THEN 1280
1300 ON F9 GOTO 1380,1360,1340,1160,1330
1310 GOSUB 1440
1320 F=1:GOSUB 1460:IF F<1 THEN GOTO 1510 ELSE GOSUB 1440:GOTO 1320
1330 GOSUB 1440:GOTO 1160
1340 PRINT "REPLACEMENT LINE FOR";F8;"?";:LINE INPUT AT$(F8)
1350 IF F8<>1 THEN 1170 ELSE A$=AT$(1):GOSUB 920:AT$(1)=A$:GOTO 1170
1360 IF F8=>2 THEN F=F-1:FOR I=F8 TO F:AT$(I)=AT$(I+1):NEXT
1370 GOTO 1170
1380 IF F8<F THEN LINE INPUT "NEW LINE? ";A$:F=F+1:FOR I=F TO F8+1 STEP -1 ELSE 1170
1390 AT$(I)=AT$(I-1):NEXT:AT$(F8+1)=A$:GOTO 1170
1400 INPUT "DO YOU WISH TO ADD ANY ADDITIONAL ENTRIES";Z1$
1410 IF LEFT$(Z1$,1)="Y" THEN GOSUB 840
1420 CLOSE:IF FP$=FZ$ THEN KILL FZ$,DR
1430 NAME "..XYZ.." AS FP$,DR:FZ$=FP$:GOSUB 650:CONSOLE C1,P1:CLOSE:GOTO 270
1440 AT$(F)="?"+AT$(1)+"-"+AT$(F):FOR I=2 TO F
1450 PRINT #1,MID$(STR$(LN),2)+"` "+AT$(I):LN=LN+10:NEXT:RETURN
1460 IF EOF(2) THEN F=0:RETURN ELSE LINE INPUT #2,A$:A$=MID$(A$,INSTR(A$,"`")+2
1470 IF LEFT$(A$,1)="?" THEN F1=INSTR(A$,"-") ELSE 1500
1480 AT$(1)=MID$(A$,2,F1-2):F=F+1:AT$(F)=MID$(A$,F1+1)
1490 RETURN
1500 F=F+1:AT$(F)=A$:GOTO 1460
1510 INPUT "ARE THE CHANGES CORRECT";Z1$
1520 IF LEFT$(Z1$,1)="N" THEN PRINT "ABORTING JOB, NO FILES CHANGED"
1530 IF LEFT$(Z1$,1)="N" THEN CLOSE:GOTO 270
1540 GOTO 1400
1550 REM SET-UP FOR EDITING USING BASIC
1560 PRINT "EDITOR ROUTINE FOR TEXT FILES"
1570 PRINT "THIS SECTION WILL SET UP THE FILE FOR EDITING USING THE "
1580 PRINT "EDITOR WHICH IS BUILT INTO BASIC.":PRINT:PRINT
1590 Z=1:INPUT "FILE NAME TO EDIT";FZ$:GOSUB 3370:IF Z=0 THEN 1590
1600 Z=1:INPUT "DRIVE NUMBER";DR:GOSUB 3400:IF Z=0 THEN 1600
1610 INPUT "DO YOU WISH A LIST OF THE FILE BEFORE EDITING";Z1$
1620 IF LEFT$(Z1$,1)-"Y" THEN OPEN "I",1,FZ$,DR ELSE 1670
1630 INPUT "HIT (CR) WHEN READY";ZZ$:CONSOLE C2,P2
1640 IF EOF(1) THEN 1670
1650 LINE INPUT #1,A$:PRINT A$
1660 GOTO 1640
1670 CONSOLE C1,P1:LOAD FZ$,DR
1680 REM PRINT COPY OF TEXT
1690 PRINT "THIS SECTION PRINTS A COPY OF THE TEXT"
1700 GOSUB 3390:GOSUB 1880:GOSUB 1850:INPUT "NUMBER OF COPIES";NC
1710 INPUT "LINE UP PAPER AND HIT (CR) WHEN READY";ZZ$:CONSOLE C2,P2
1720 NT=LN:IF NC>O THEN GOSUB 1820:NC=NC-1:GOTO 1740
1730 CONSOLE C1,P1:PRINT "EXITING COPY PRINT-OUT":GOTO 270
1740 IF LEFT$(Z2$,1)="N" THEN IF NC<1 THEN 1720 ELSE CONSOLE C1,P1:GOTO 1710
1750 IF NT=0 THEN 1720 ELSE IF NT>O THEN PRINT:NT=NT-1:GOTO 1750
1760 NC=NC+1:CONSOLE C1,P1:PRINT:PRINT
1770 PRINT "YOUR DOCUMENT IS TOO LONG FOR THE FORM SIZE SELECTED."
1780 INPUT " DO YOU WANT TO CONTINUE PRINTING";ZZ$
1790 IF LEFT$(ZZ$,1)="Y" THEN GOSUB 1860:GOTO 1710
1800 INPUT "DO YOU WANT TO RESTART";ZZ$
1810 IF LEFT$(ZZ$,1)="Y" THEN 1700 ELSE 1730
1820 OPEN "I",1,FZ$,DR:GOSUB 1920
1830 IF EOF(1) THEN CLOSE 1:RETURN     
1840 LINE INPUT #1,A$:PRINT MID$(A$,INSTR(A$,"`")+2):NT=NT-1:GOTO 1830
1850 INPUT "CONTINUOUS FORMS";Z2$:IF LEFT$(Z2$,1)="N" THEN RETURN
1860 INPUT "NUMBER OF LINES PER PAGE";LN
1870 RETURN
1880 PRINT "INPUT TEXT ";:GOSUB 3360:IF Z=0 THEN 1880
1890 OPEN "I",1,FZ$,DR:GOSUB 1920:CLOSE 1
1900 PRINT MID$(A$,INSTR(A$,"`")+1):INPUT "IS THIS THE CORRECT FILE";Z1$
1910 IF LEFT$(Z1$,1)="N" THEN 1880 ELSE RETURN
1920 LINE INPUT #1,A$:IF LEN(A$)>O THEN RETURN ELSE 1920
1930 REM PRINT LETTERS WITH SALUTATION ENTER FROM KEYBOARD + ENV.
1940 PRINT "PRINT LETTERS WITHOUT NAME AND ADDRESS FILE.":PRINT:PRINT
1950 GOSUB 3390:GOSUB 1880
1960 GOSUB 2110:GOSUB 2250
1970 INPUT "LINE UP PAPER AND HIT (CR) WHEN READY";ZZ$:CONSOLE C2,P2
1980 PRINT TAB(T1);Z8$:PRINT:PRINT TE$:PRINT Z5$:PRINT:PRINT
1990 GOSUB 1820:CONSOLE C1,P1
2000 INPUT "DO YOU WANT TO PRINT AN ENVELOPE";ZZ$
2010 IF LEFT$(ZZ$,1)="Y" THEN GOSUB 2060
2020 INPUT "ANOJHER LETTER";ZZ$:IF LEFT$(ZZ$,1)="N" THEN 2100
2030 INPUT "SAME DOCUMENT";ZZ$:IF LEFT$(ZZ$,1)="N" THEN GOSUB 1880
2040 INPUT "SAME NAME AND ADDRESS";ZZ$:IF LEFT$(ZZ$,1)="N" THEN 1960
2050 GOTO 1970
2060 PRINT:INPUT "PLACE ENVELOPE IN PRINTER AND HIT (CR) WHEN READY";ZZ$
2070 CONSOLE C2,P2:PRINT TAB(35);:FOR I=1 TO LEN(TE$)-2
2080 PRINT MID$(TE$,I,1);:IF ASC(MID$(TE$,I))=10 THEN PRINT TAB(35);
2090 NEXT:FOR I=1 TO 5:PRINT:NEXT:CONSOLE C1,P1:RETURN
2100 PRINT "EXITING LETTER PRINTING ROUTINE":GOTO 270
2110 PRINT:PRINT
2120 PRINT "ENTER EACH LINE OF THE NAME AND ADDRESS AS IT WILL APPEAR ON"
2130 PRINT "THE LETTER. AFTER THE LAST LINE HAS BEEN ENTERED, TYPE A "
2140 PRINT "`?` AND HIT (CR).":TE$=""
2150 LINE INPUT A$:IF LEFT$(A$,1)="?" THEN 2180
2160 IF LEN(TE$+A$)>250 THEN PRINT "NAME/ADDRESS TOO LONG":GOTO 2110
2170 TE$=TE$+A$+CHR$(13)+CHR$(10):GOTO 2150
2180 IF LEN(TE$)<3 THEN PRINT "NAME AND ADDRESS TOO SHORT":GOTO 2110
2190 PRINT:PRINT:LINE INPUT "INPUT DATE (CR) USES DATE ENTERED? ";Z8$
2200 IF Z8$="" THEN Z8$=Z9$
2210 INPUT "NUMBER OF SPACES TO INDENT DATE  (CR) USES LAST ENTRY";Z7$
2220 IF Z7$="" THEN Z7$=Z6$ ELSE Z6$=Z7$:T1=VAL(Z7$)
2230 IF T1<O OR T1>132 THEN 2210
2240 RETURN
2250 LINE INPUT "SALUTATION? ";Z5$:RETURN
2260 REM PRINT LETTERS FROM NAME AND ADDRESS FILE
2270 PRINT "PRINT LETTERS FROM NAME AND ADDRESS FILE"
2280 GOSUB 3390  'GET DRIVE NUMBER
2290 GOSUB 1880:FX$=FZ$ 'GET TEXT NAME AND SAVE TEMP
2300 GOSUB 2690:FZ$=FX$ 'GET NAME AND ADDRESS AND RESTORE TEMP
2310 GOSUB 1850   'GET CONTINOUS FORMS ANSWERS
2320 GOSUB 2190   'GET DATE QUESTIONS
2330 GC$="":NC=O:LINE INPUT "GROUP CODES TO PRINT? ";A$:GOSUB 2610
2340 IF LEFT$(ZZ$,1)="N" THEN 2330
2350 INPUT "LINE UP PAPER AND HIT (CR) WHEN READY";ZZ$:CONSOLE C2,P2
2360 OPEN "I",2,FY$,DR:GOSUB 2730
2370 II=1:NT=LN:GOSUB 2530:IF II<1 THEN 2480 ELSE PRINT TAB(T1);Z8$
2380 PRINT:FOR I=2 TO II-1:PRINT TE$(I):NEXT:PRINT:PRINT TE$(II)
2390 PRINT:PRINT:NT=NT-(II+6)
2400 GOSUB 1820:NC=NC+1:IF LEFT$(Z2$,1)="N" THEN CONSOLE C1,P1:GOTO 2350
2410 IF NT=0 THEN 2370 ELSE IF NT>0 THEN PRINT:NT=NT-1:GOTO 2410
2420 NC=NC-1:CONSOLE C1,P1:PRINT:PRINT
2430 PRINT "YOUR DOCUMENT IS LONGER THAN THE FORM SIZE SELECTED."
2440 INPUT "DO YOU WANT TO CONTINUE PRINTING";ZZ$
2450 IF LEFT$(ZZ$,1)="Y" THEN GOSUB 1860:GOTO 2350
2460 INPUT "DO YOU WANT TO RESTART";ZZ$
2470 IF LEFT$(ZZ$,1)="Y" THEN CLOSE:GOTO 2290
2480 CONSOLE C1,P1:CLOSE:PRINT "ENDING LETTER PRINT OUT ROUTINE"
2490 PRINT "NUMBER OF LETTERS PRINTED = ";NC
2500 INPUT "DO YOU WISH TO PRINT MAILING LABELS";ZZ$
2510 IF LEFT$(ZZ$,1)="N" THEN 270
2520 CLOSE:GOTO 3070
2530 IF EOF(2) THEN II=0:RETURN ELSE LINE INPUT #2,A$
2540 A$=MID$(A$,INSTR(A$,"`")+2)
2550 IF LEFT$(A$,1)="?" THEN J=INSTR(A$,"-") ELSE 2600
2560 TE$(1)=MID$(A$,2,J-2):II=II+1:TE$(II)=MID$(A$,J+1)
2570 IF GC#="ALL" THEN RETURN
2580 FOR I=1 TO LEN(GC$):IF INSTR(TE$(1),MID$(GC$,I,1))>O THEN RETURN
2590 NEXT I:II=1:GOTO 2530
2600 II=II+1:TE$(II)=A$:GOTO 2530
2610 IF LEN(A$)<1 THEN ZZ$="N":RETURN
2620 IF A$="ALL" THEN PRINT "YOU HAVE SELECTED ALL OF THE FILE" ELSE 2640
2630 GC$="ALL":GOTO 2680
2640 PRINT:PRINT "YOU HAVE SELECTED THE FOLLOWING GROUP CODES:"
2650 PRINT:PRINT TAB(10):FOR I=1 TO LEN(A$):T$=MID$(A$,I,1)
2660 IF T$<"A" OR T$>"Z" THEN 2670 ELSE PRINT " ";T$;:GC$=GC$+T$
2670 NEXT
2680 PRINT:PRINT:INPUT "IS THIS CORRECT";ZZ$:RETURN
2690 PRINT "NAME/ADDRESS ";:GOSUB 3360:IF Z=0 THEN 2690
2700 FY$=FZ$:OPEN "I",2,FY$,DR:GOSUB 2730:CLOSE 2
2710 PRINT MID$(A$,INSTR(A$,"`")+1):INPUT "IS THIS THE CORRECT FILE";Z1$
2720 IF LEFT$(Z1$,1)="N" THEN 2690 ELSE RETURN
2730 LINE INPUT #2,A$:IF LEN(A$)>O THEN RETURN ELSE 2730
2740 REM GLOBAL SEARCH AND REPLACEMENT ROUTINE FOR WORD PROCESSOR
2750 PRINT "GLOBAL SEARCH AND REPLACE ROUTINE":PRINT
2760 PRINT "WHEN CHOOSING SEARCH STRING, BE SURE TO PICK ONE WHICH"
2770 PRINT "IS UNIQUE TO THE ITEM YOU WANT CHANGED OR YOU MAY CHANGE"
2780 PRINT "AN ITEM THAT YOU DIDN'T MEAN TO CHANGE."
2790 PRINT "THIS SECTION WILL PRINT OUT THE CHANGED REPORT AS IT MAKES"
2800 PRINT "THE CHANGES"
2810 GOSUB 3390:IF Z=0 THEN 2810
2820 PRINT "OUTPUT ";:GOSUB 3360:FP$=FZ$:IF Z=0 THEN 2820
2830 PRINT "INPUT ";:GOSUB 3360:LN=1000:IF Z=0 THEN 2830
2840 OPEN "I",2,FZ$,DR
2850 OPEN "O",1,"..XYZ..",DR
2860 GOSUB 3190:LINE INPUT #2,Z1$ 'WRITE UPDATED HEADER TO FILE
2870 LINE INPUT "SEARCH STRING? ";Z2$
2880 LINE INPUT "REPLACEMENT STRING? ";Z3$:PRINT:PRINT
2890 INPUT "READY PRINTER AND HIT (CR) TO CONTINUE";Z1$
2900 PRINT "A MOMENT PLEASE":NR=0:CONSOLE C2,P2
2910 IF EOF(2) THEN CLOSE:GOTO 2960
2920 LINE INPUT #2,A$:FOR I=1 TO LEN(A$):IF MID$(A$,I,LEN(Z2$))<>Z2$ THEN 2940
2930 B$=LEFT$(A$,I-1):C$=MID$(A$,I+LEN(Z2$)):A$=B$+Z3$+C$:NR=NR+1
2940 NEXT I
2950 PRINT #1,A$:PRINT A$:GOTO 2910
2960 CONSOLE C1,P1:PRINT "NUMBER OF RECORDS FOUND AND REPLACED = ";NR
2970 INPUT "ARE THE CHANGES CORRECT";Z1$
2980 IF LEFT$(Z1$,1)= "N" THEN PRINT "ABORTING JOB, NO FILES CHANGED":GOTO 270
2990 IF FP$=FZ$ THEN KILL FZ$,DR
3000 NAME "..XYZ.." AS FP$,DR:GOTO 270
3010 REM PRINT MAILING LABELS
3020 PRINT "PRINT MAILING LABELS"
3030 GOSUB 3390   'DRIVE NUMBER
3040 GOSUB 2690   'GET NAME AND ADDRESSS FILE NAME
3050 GC$="":LINE INPUT "GROUP CODES TO PRINT? ";A$:GOSUB 2610
3060 IF LEFT$(ZZ$,1)="N" THEN 3050
3070 INPUT "LINE UP LABELS AND HIT (CR) WHEN READY";ZZ$:CONSOLE C2,P2
3080 NC=O:PRINT
3090 FOR I=1 TO 8:FOR J=1 TO 20:PRINT "X";NEXT J:PRINT:NEXT I:CONSOLE C1,P1
3100 INPUT " IS THE LINE UP CORRECT";ZZ$:IF LEFT$(ZZ$,1)="N" THEN 3070
3110 CONSOLE C2,P2:PPEN "I",2,FY$,DR:GOSUB 2730
3120 II=11:GOSUB 2530:IF II<1 THEN 3160
3130 PRINT:FOR I=2 TO II-1:PRINT TE$(I):NEXT
3140 FOR I=II-1 TO 8:PRINT:NEXT
3150 NC=NC+1:GOTO 3120
3160 CONSOLE C1,P1:PRINT "END OF MAILING LABEL ROUTINE"
3170 PRINT "NUMBER OF LABELS PRINTED = ";NC:GOTO 270
3180 AS=STR$(LN)+"` "+"FILE NAME "+FZ$+" CREATION DATE: "+Z9$:GOTO 3210
3190 AS=STR$(LN)+"` "+"FILE NAME "+FP$+" REVISION OF: "+FZ$
3200 A$=A$+"  DATE REVISED:  "+Z9$:GOTO 3210
3210 PRINT #1,A$:LN=LN+10:RETURN
3220 OPEN "I",1,FZ$,DR:CLOSE:PRINT "FILE ALREADY EXISTS USING THAT NAME"
3230 GOSUB 3340
3240 INPUT "DO YOU WISH TO RENAME OR REPLACE THE EXISTING FILE";Z1$
3250 IF LEFT$(Z1$,1)="N" THEN PRINT "NEW OUTPUT ";:GOSUB 3360:IF Z=0 THEN 3250
3260 IF LEFT$(Z1$,1)="N" THEN RETURN
3270 INPUT "WHICH  (REN OR REP)";Z1$
3280 IF LEFT$(Z1$,3)<>"REN" THEN IF LEFT$(Z1$,3)<>"REP" THEN 3270
3290 IF LEFT$(Z1$,3)="REP" THEN RETURN
3300 PRINT "CHANGE NAME FROM ";FZ$;" TO";:INPUT FP$
3310 Z=1:GOSUB 3370:IF Z=0 THEN 3300
3320 NAME FZ$ AS FP$,DR
3330 RETURN
3340 PRINT "THE FILES AVAILABLE ON THIS DISC ARE:":PRINT:FILES DR:PRINT
3350 RETURN
3360 INPUT "FILE NAME";FZ$:Z=1
3370 IF LEN(FZ$)<1 OR LEN(FZ$)>8 THEN PRINT "ILLEGAL FILE NAME":Z=0
3380 RETURN
3390 INPUT "DRIVE NUMBER";DR:Z=1
3400 IF DR<O OR DR>15 THEN PRINT "ILLEGAL DRIVE NUMBER":Z=0
3410 RETURN
3420 IF ERR=56 THEN CLOSE:PRINT "MOUNTING DRIVE ";DR:MOUNT DR:RESUME
3430 IF ERR<>53 THEN 3540
3440 IF F9=1 THEN RESUME 510
3450 IF F9=4 THEN GOSUB 3340:RESUME 1590
3460 IF F9=8 THEN GOSUB 3340:CLOSE:RESUME 2830
3470 IF F9=3 THEN GOSUB 3340:CLOSE:RESUME 1120
3480 IF F9=2 THEN RESUME 800
3490 IF F9=5 THEN GOSUB 3340:CLOSE 1:RESUME 1700
3500 IF F9=6 THEN GOSUB 3340:CLOSE 1:RESUME 1950
3510 IF F9=7 AND ERL=1890 THEN GOSUB 3340:CLOSE 1:RESUME 2290
3520 IF F9=7 AND ERL=2700 THEN GOSUB 3340:CLOSE 2:RESUME 2300
3530 IF F9=10 AND ERL=2700 THEN GOSUB 3340:CLOSE 2:RESUME 3040
3540 IF ERR=58 THEN PRINT "OUTPUT FILE ALREADY EXISTS":GOSUB 3560:RESUME
3550 ON ERROR GOTO 0
3560 GOSUB 3340:INPUT "DO YOU WISH TO REPLACE THE FILE";Z2$
3570 IF LEFT$(Z2$,1)="Y" THEN KILL FP$,DR:RETURN
3580 LINE INPUT "NEW OUTPUT FILE NAME? ";FP$
3590 IF LEN(FP$)<1 OR LEN(FP$)>8 THEN PRINT "ILLEGAL FILE NAME":GOTO 3580
3600 RETURN