A downloadable tool

WRDPRO:

Word Processing Text Editor Rev. 1.1

John W. Swain

SCIENTIFIC RESEARCH INC.

Brown, R.W. (1977) Basic software library. 7, professional programs Vol 7. Key Biscayne, Fla: Scientific Research Inst.

This program is designed to allow owners of micro-computers the capability of rearranging text material and then printing it out in a variety of formats. While this version is not quite as comprehensive as our WWP rev:30 program, it should easily run on most systems with disk extended Basic and 15K Bytes of free user memory for execution.

There are a few statements appearing in this program that may not be in the version of Basic you are using. The first is the Console statement, if your (/) Basic doesn't have this command then just remove it everywhere it appears in 1 the program, no other conversion is necessary. Line Input and Instr are two more statements that may not be in the version of Basic you are using. The Instr statement may be replaced by a conversion subroutine using the MID$ statement, if necessary. A typical conversion for the Instr statement would a be similar to the subroutine used on line 4075 on page 243 of Volume I. Here F1 is set equal to one (1) and the SST statement would be replaced by the MID$ statement; see appendix B, page 925: Volume V.

This program offers nine major modes of operation with a number of sub-mode operations. Individuals requiring a considerably more comprehensive version, should complete a copy of our software licensing agreement included at the end of this volume and return it with an order or contact us directly to obtain more details.

Following the source code listing for WRDPRO are a series of sample runs which illustrate the usefulness and versatility of the routines contained within this program. It should be noted that this version of WRDPRO rev:1 can only utilize text files that fit entirely into the working memory of the system being used. Therefore, if your Basic requires 20K and you only have 50K Bytes of total memory, then the largest text file you could build and use would only be 15K Bytes long; this would be equivalent to approximately four standard size, single spaced, typed pages of text. While this program does limit the size of your text files to the size of your working memory, it does not limit the number of files you may have, making it quite easy for you to have several files representing separate portions of the total text material.

*


*


*


*


*


*

*

*

*

REM WRD PROC    8/11/1977
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>: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 F8O 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 T1132 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 DR15 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

Published 11 hours ago
StatusReleased
CategoryTool
Author~vidak
TagsText based

Download

Download
wrdpro.bas 16 kB
Download
wrdpro-page-01.jpg 880 kB
Download
wrdpro-page-02.jpg 1.1 MB
Download
wrdpro-page-03.jpg 1.1 MB
Download
wrdpro-page-04.jpg 1.2 MB
Download
wrdpro-page-05.jpg 1.3 MB
Download
wrdpro-page-06.jpg 1.2 MB
Download
wrdpro-page-07.jpg 1.1 MB
Download
wrdpro-page-08.jpg 207 kB

Install instructions

Dartmouth BASIC.

Originally designed to run on a GE 635.

If you don't know what to do with this code email vidak@riseup.net

Leave a comment

Log in with itch.io to leave a comment.