WRDPRO.BAS
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 |
Status | Released |
Category | Tool |
Author | ~vidak |
Tags | Text based |
Download
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.