PCjs Machines

Home of the original IBM PC emulator for browsers.

Logo

PC-SIG Diskette Library (Disk #146)

[PCjs Machine "ibm5170"]

Waiting for machine "ibm5170" to load....

Information about “EASYRITE & LABELFILE”

Two very basic and effective programs from GINACO.  EasyRite is a
elementary text editor/word processor that is styled to make the
computer perform like a typewriter.  With its onscreen documentation
you can do most everything from the main menu.  The four modes of
EasyRite are (1) LOAD and then review a file; (2) CREATE a file; (3)
EDIT a file; and (4) PRINT a hard copy.  Several nice features that go
beyond the simple stuff, for instance, a new or edited EasyRite file
may be saved to any drive.

LablFile is a self-documented, highly flexible file-management and
label-print program which compliments EasyRite.  Both of the programs
are provided in expanded ASCII, BASIC and compiled form; also, both
can function on the PCjr.

How to Start: Read the TEXT.ONE, README and FACTS files for information
about the programs.  Both LablFile and EasyRite may be run from DOS by
typing LF or ER <ENTER>.

Suggested Registration:  $10.00

File Descriptions:

GLEDGER  DAT  General Ledger data
GENLEGER BAS  General Ledger BASIC program
README2       Intro to EASYWRITE, LABLFILE, and GENLEDGER
GL       EXE  Main General Ledger program
-------- ---  EasyRite
TEXT     ONE  Sample text file - information about EasyRite/LabelFile
FACTS         EasyRite instructions
EASYRITE BAS  Word processor source code
ER       EXE  Word processor program (compiled)
LABLFILE BAS  Source for Label/File program
LF       EXE  Label/File program (compiled)
-------- ---  LabelFile
TEXT     TWO  Sample text file - information about Blueberry from GINACO
README        Notes about using programs (short!)
File Descriptions:

EASYRITE.BAS

10 CLS:REM EASYRITE -- A FULLY FORMATED WORD/MEMO PROCESSING SYSTEM FOR THE IBM
30 REM VERSION 1.5 -- REVISED 05/10/84
40 REM WRITTEN BY BRUNO M. LARSEN, SUN CITY AZ FOR G I N A C O (C) 1984
50 REM =====  INITIALIZATION ROUTINE =====
60 CLEAR:SCREEN 0,0,0:COLOR 7,0:WIDTH 80:KEY OFF:FOR KK=1 TO 10:KEY KK,"":NEXT KK:DIM MM$(30),TT$(20),MN$(30):DIM A$(200),INPTR$(200),FIN$(200),FILE$(200),P1%(200):REM =====  BOX PARAMETER DEFINITION  =====
170 TLC$=CHR$(201):TLC2$=CHR$(218):TLC3$=CHR$(178):TRC$=CHR$(187):TRC2$=CHR$(191):TRC3$=CHR$(178):HL$=CHR$(205):HL2$=CHR$(196):HL3$=CHR$(178):BLC$=CHR$(200):BLC2$=CHR$(192):BLC3$=CHR$(178):BRC$=CHR$(188):BRC2$=CHR$(217):BRC3$=CHR$(178)
220 VL$=CHR$(186):VL2$=CHR$(179):VL3$=CHR$(178):PR$=" ###":PR2$=" ║###  \                                                                       \":FILLSTR2$="··································································░■■■ ║":DEF SEG:POKE 91,25
280 POKE 92,25:LOCATE 1,1,0,12,13:A$="":LN=0:NL=0:FIN$="":LC=0:INTPR$="":DEFINT A-Z:I=0:P=1:FINLEN=0:P=1:IN$="":ON ERROR GOTO 5010
430 CLS:KEY OFF:BB$=TIME$:REM =====  INITIAL MASTHEAD DISPLAY  =====
470 GOSUB 2470:COLOR 15,0:LOCATE 9,30:PRINT"EasyRite Processor - 1.5":LOCATE 11,40:PRINT"(c)":COLOR 7,0:LOCATE 15,30:PRINT"User Supported Software":LOCATE 16,30:PRINT"~~~~ ~~~~~~~~~ ~~~~~~~~":LOCATE 17,24:PRINT"Developed by G I N A C O  --  1984
530 LOCATE 18,23:PRINT"          Sun City, Arizona ":REM =====  DO YOU NEED INSTRUCTIONS QUERY  =====
550 COLOR 15:LOCATE 22,26,0:PRINT"DO YOU NEED INSTRUCTIONS? (Y/N)":COLOR 7,0:GOSUB 6590:IF YN=1 THEN 620
610 IF YN=2 THEN 3990
620 REM =====  FIRST PAGE OF INSTRUCTIONS  =====
630 CLS:KEY OFF:SCREEN 0,0,0:WIDTH 80:FOR KK!=1 TO 10:KEY KK!,"":NEXT:DEF SEG:POKE 91,25:POKE 92,25:KEY 6,CHR$(124):KEY 2,CHR$(127):GOSUB 2120:GOSUB 3090:FOR MM!=1 TO 4:LOCATE MM!,9:PRINT MM$(MM!)
790 MM$(2)="      E a s y R i t e:   A basic Word Processing System":MM$(3)="Developed and Compiled for use on the IBM-PC (DOS 1.1 or 2.0)":MM$(4)="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~":NEXT MM!
830 COLOR 15:LOCATE 5,9:PRINT"CAUTION:   Exit EasyRite through the CONTROL or PRINT Menu ONLY!";:LOCATE 6,10:PRINT"  Using Ctrl-Break will exit without CURSOR & SCROLL control
850 LOCATE 7,10:PRINT"  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";:COLOR 7,0
860 LOCATE 8,10:PRINT"  When prompted to ";:COLOR 15:PRINT"<PRESS>,";:COLOR 7:PRINT" the ";:COLOR 15:PRINT" ENTER (C/R) ";:COLOR 7:PRINT"key ";:COLOR 15:PRINT"IS NOT ";:COLOR 7:PRINT"used";
870 LOCATE 9,10:PRINT"    When prompted to ";:COLOR 15:PRINT"<ENTER>,";:COLOR 7:PRINT" the";:COLOR 15:PRINT" ENTER (C/R) ";:COLOR 7:PRINT"key ";:COLOR 15:PRINT"IS";:COLOR 7:PRINT" used!";:COLOR 7,0
880 LOCATE 10,10:PRINT"    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";:COLOR 7,0:LOCATE 11,10:PRINT"EasyRite is entirely MENU driven. In most cases, escape routes";
900 LOCATE 12,10:PRINT"are provided to permit the operator to return to the safety of";:LOCATE 13,10:PRINT"a MENU. An exception is the LOAD a file. Should you get to the";
920 LOCATE 14,10:PRINT"LOAD phase in error, <ENTER> a non-existent FILE NAME and then":LOCATE 15,10:PRINT"recover thru the ERROR routine. The FOUR operational phases of";
940 LOCATE 16,10:PRINT"EasyRite are:  (1)  LOAD and REVIEW an existing EasyRite FILE;";:LOCATE 17,10:PRINT"(2) CHANGE or CREATE a New EasyRite file; (3) EDIT an existing";
960 LOCATE 18,10:PRINT"or new EasyRite file.  A change may be temporary and displayed";:LOCATE 19,10:PRINT"using the REVIEW function.   Or, the file is saved permanently";
980 LOCATE 20,10:PRINT"with the SAVE fuction on any DRIVE. Phase (4) is the HARD COPY";:LOCATE 21,10:PRINT"or PRINT function. This provides a choice of three type styles";:LOCATE 23,10,0
1010 PRINT"<PRESS> F-6 TO CONTINUE.          <PRESS> F-2 FOR CONTROL MENU";
1020 IN$=INKEY$:IF IN$=""THEN 1020
1040 IF IN$=CHR$(124)THEN 1070
1050 IF IN$=CHR$(127)THEN 3990
1060 SOUND 600,4:GOTO 1020
1070 REM =====  SECOND PAGE OF INSTRUCTIONS =====
1080 CLS:KEY OFF:FOR NK!=1 TO 10:KEY NK!,"":NEXT:DEF SEG:POKE 91,25:POKE 92,25:KEY 6,CHR$(124):KEY 2,CHR$(127):GOSUB 2120:GOSUB 3090:LOCATE 2,10:PRINT"and pitches. More detailed instructions follow on this and the";
1160 LOCATE 3,10:PRINT"the following page.    When you LOAD an existing EasyRite file";:LOCATE 4,10:PRINT"you may REVIEW it immediately.   The FILE will be displayed in";:LOCATE 5,10:PRINT"up to 10 twenty-line pages.  You may move through the pages on";
1190 LOCATE 6,10:PRINT"prompt, by pressing the ENTER key.  At the FILE end, a CONTROL";:LOCATE 7,10:PRINT"MENU will appear.   The CHANGE option will permit you to WORD-";:LOCATE 8,10:PRINT"PROCESS a LOADED or entirely NEW document,  up to 200 lines in";
1220 LOCATE 9,10:PRINT"length,  using 20 line segments per page.  INPUT is protected.";:LOCATE 10,10:PRINT"Only specified ALPHA-NUMERIC entries are acceptable  All other";
1240 LOCATE 11,10:PRINT"key-strokes will be refused, announced with a REJECT TONE. The";:LOCATE 12,10:PRINT"The CURSOR and EDIT keys are inoperative. Typing errors may be";
1260 LOCATE 13,10:PRINT"corrected immediately -- before the ENTER key is pressed -- by";:LOCATE 14,10:PRINT"use of the BACK SPACE key,  as with many self-correcting type-";
1280 LOCATE 15,10:PRINT"writers. At the end of each 20-line page, you will be provided";:LOCATE 16,10:PRINT"an opportunity to correct errors - before the page is changed.";
1300 LOCATE 17,10:PRINT"The two correction modes will become evident quickly while you";:LOCATE 18,10:PRINT"progress through the program. When the CURSOR is at the begin-";
1320 LOCATE 19,10:PRINT"ning of a LINE in EITHER correction MODE, depressing the ENTER";:LOCATE 20,10:PRINT"key will RE-ENTER the existing line without change. You cannot";
1340 LOCATE 21,10:PRINT"EDIT just part of a line. You must completely re-enter a whole";:LOCATE 23,10:PRINT"<PRESS> F-6 TO CONTINUE.       <PRESS> F-2 TO GO BACK ONE PAGE";
1370 IN$=INKEY$:IF IN$=""THEN 1370
1390 IF IN$=CHR$(124)GOTO 1420
1400 IF IN$=CHR$(127)GOTO 620
1410 SOUND 600,4:GOTO 1370
1420 REM =====  THIRD PAGE OF INSTRUCTIONS  =====
1430 CLS:KEY OFF:FOR NK!=1 TO 10:KEY NK!,"":NEXT:DEF SEG:POKE 91,25:POKE 92,25:KEY 6,CHR$(124):KEY 2,CHR$(127):GOSUB 2120:GOSUB 3090:LOCATE 2,10:PRINT"line. To leave a line blank, simply press the <ENTER> key.";
1510 LOCATE 4,10:PRINT"EDIT:  This option will display a LOADED or CREATED file in the";:LOCATE 5,10:PRINT"EDIT mode. The CURSOR appears at the first position of the page";
1530 LOCATE 6,10:PRINT"where the EDITING starts.  Press ENTER to leave the line as is,";:LOCATE 7,10:PRINT"and move the CURSOR to the next line.   At the end of the page,";
1550 LOCATE 8,10:PRINT"you will have a chance to re-correct any line or lines.  If all";:LOCATE 9,10:PRINT"lines are OK, pressing ENTER will call up the next page.    You";
1570 LOCATE 10,10:PRINT"use 'END' or  'end' at the BEGINNING of any line to close out a";:LOCATE 11,10:PRINT"file.  The word END will not print.  You may REVIEW a NEW or an";
1590 LOCATE 12,10:PRINT"EDIT file immediately.    You need not SAVE a file to PRINT  or";:LOCATE 13,10:PRINT"REVIEW it.  Conventional FILE SPECIFICATION protocol is used in";
1610 LOCATE 14,10:PRINT"SAVING and LOADING all files.   The use of the DRIVE DESIGNATOR";:LOCATE 15,10:PRINT"(A: B: C: OR D:)  is recommended to prevent inadverdently going";
1630 LOCATE 16,10:PRINT"to an incorrect DRIVE.  The HARD COPY function offers you three";:LOCATE 17,10:PRINT"pitch and type styles (Two are EPSON CODED.)  Page numbering is";
1650 LOCATE 18,10:PRINT"automatic with 59 lines printed per page.  Text CENTERING is by";:LOCATE 19,10:PRINT"manual spacing.   RIGHT justification is accomplished manually.";
1670 LOCATE 20,10:PRINT"Entering TEXT in the shaded portions of the INPUT & EDIT format";:LOCATE 21,10:PRINT"will reduce the RIGHT margin with the standard ELITE print-out.";:LOCATE 23,10
1700 PRINT"<PRESS> F-6 TO CONTINUE.       <PRESS> F-2 TO GO BACK ONE PAGE";
1710 IN$=INKEY$:IF IN$=""THEN 1710
1730 IF IN$=CHR$(124)GOTO 1760
1740 IF IN$=CHR$(127)GOTO 1070
1750 SOUND 600,4:GOTO 1710
1760 KEY OFF:FOR NK!=1 TO 10:KEY NK!,"":NEXT:KEY 2,CHR$(127):GOTO 3990
1770 REM =====  PRINTER SELECT ROUTINE  =====
1780 CLS:GOSUB 2120:DEF SEG=&H40:A=PEEK(&H8):B=PEEK(&H9):C=PEEK(&HA):D=PEEK(&HB):POKE &H8,C:POKE &H9,D:POKE &HA,A:POKE &HB,B:IF PEEK(&H9)=3 THEN LPT$="1"ELSE LPT$="2
1900 LOCATE 5,30,0:PRINT"Primary Printer = LPT";LPT$+":";:LOCATE 8,24:PRINT"For Printer Test         <PRESS> 1":COLOR 15:LOCATE 10,11:PRINT"< Do not test printer if none installed at designated port! >":COLOR 7:LOCATE 12,24
1950 PRINT"Reset LPT1 OR LPT2       <PRESS> 2";:LOCATE 14,24,0:PRINT"To continue with program <PRESS> 3";" ";:GOSUB 3590:GOSUB 2330
2000 GOSUB 3730:LOCATE 21,68,0:LOW=49:HIGH=51:FINLEN=1:GOSUB 6240:IF INPTR$=CHR$(13)THEN BEEP:GOTO 2000
2070 ON VAL(INPTR$)GOTO 2080,1770,2100
2080 LPRINT TAB(10)"This is a Printer test":GOTO 1900
2100 RETURN
2110 REM =====  PROGRAM FOR BOX PRINTOUT SET 1 =======
2120 REM =====  PRINT BOX 1, SET 1 =====
2130 WW=76:TL=1:LL=24:LC=2:GOSUB 3170:RETURN
2190 REM =====  PRINT BOX 2, SET 1 =====
2200 WW=76:TL=18:LL=24:LC=2:GOSUB 3170:RETURN
2260 REM =====  PRINT BOX 2A, SET 1 =====
2270 WW=68:TL=4:LL=22:LC=6:GOSUB 3170:RETURN
2330 REM =====  PRINT BOX 3, SET 1 =====
2340 WW=23:TL=20:LL=22:LC=50:GOSUB 3170:RETURN
2400 REM =====  PRINT BOX 4, SET 1 =====
2410 WW=76:TL=1:LL=24:LC=2:GOSUB 3170:RETURN
2470 REM =====  PRINT BOX 5, SET 1 =====
2480 WW=30:TL=7:LL=13:LC=25:GOSUB 3170:RETURN
2540 REM =====  PROGRAM FOR BOX PRINTOUT SET 2 =======
2550 REM =====  PRINT BOX 1, SET 2 =====
2560 COLOR 7,0:WW=76:TL=1:LL=24:LC=2:GOSUB 3290:RETURN
2630 REM =====  PRINT BOX 2, SET 2 =====
2640 WW=76:TL=18:LL=24:LC=2:GOSUB 3290:RETURN
2700 REM =====  PRINT BOX 2A, SET 2 =====
2710 WW=76:TL=6:LL=19:LC=2:GOSUB 3290:RETURN
2770 REM =====  PRINT BOX 3, SET 2 =====
2780 WW=23:TL=20:LL=22:LC=50:GOSUB 3290:RETURN
2840 REM =====  PRINT BOX 4, SET 2 =====
2850 WW=76:TL=1:LL=24:LC=2:GOSUB 3290:RETURN
2910 REM =====  PRINT BOX 5, SET 2 =====
2920 WW=30:TL=7:LL=13:LC=25:GOSUB 3290:RETURN
2980 REM =====  PRINT MIDDLE BOX CONNECTING LINE VERT/HORZ #1 =====
2990 LOCATE 18,2,0:PRINT"╠";STRING$(76,"═");"╣";:RETURN
3020 REM =====  PRINT PAGE "CENTER LINE" MARKER ON INPUT FORM =====
3030 LOCATE 1,33:PRINT" Center ";:COLOR 15:LOCATE 1,41:PRINT CHR$(25);:COLOR 7,0:LOCATE 1,42:PRINT" Marker ";:RETURN
3050 REM =====  PRINT MIDDLE BOX CONNECTING LINE VERT/HORZ #2 =====
3060 LOCATE 22,1,0:PRINT"╠";STRING$(77,"═");"╣";:RETURN
3090 REM =====  PRINT MIDDLE BOX CONNECTING LINE VERT/HORZ #3 ====
3100 LOCATE 22,2,0:PRINT"╟";STRING$(76,"─");"╢";:RETURN
3130 REM =====  PRINT MIDDLE BOX CONNTECTING LINE VERT/HORZ #4 ====
3140 LOCATE 22,2,0:PRINT"├";STRING$(76,"─");"┤";:RETURN
3170 REM =====  BOX PRINT PRINT ROUTINE, VERSION #1 =====
3180 LOCATE TL,LC,0:PRINT TLC$;STRING$(WW,HL$);TRC$;:FOR BD=(TL+1)TO(LL-1):LOCATE BD,LC,0:PRINT VL$;:LOCATE BD,(LC+WW+1),0:PRINT VL$;:NEXT:LOCATE LL,LC,0:PRINT BLC$;STRING$(WW,HL$);BRC$;:RETURN
3290 REM =====  BOX PRINT PRINT ROUTINE, VERSION #2 =====
3300 LOCATE TL,LC,0:PRINT TLC2$;STRING$(WW,HL2$);TRC2$;:FOR BD=(TL+1)TO(LL-1):LOCATE BD,LC,0:PRINT VL2$;:LOCATE BD,(LC+WW+1),0:PRINT VL2$;:NEXT:LOCATE LL,LC,0:PRINT BLC2$;STRING$(WW,HL2$);BRC2$;:RETURN
3410 REM =====  CLEAR TOP BOX FORM =====
3420 FOR CS=2 TO 17:LOCATE TL,3,0:PRINT SPC(76):NEXT:RETURN
3470 REM =====  CLEAR UPPER 1/2 SCREEN FOR DIRECTORY  =====
3480 FOR CS=1 TO 17:LOCATE CS,1,0:PRINT SPC(79):NEXT:RETURN
3530 REM =====  CLEAR BOTTOM BOX FORM EXCEPT FOR INSERT  =====
3540 FOR CS=19 TO 23:LOCATE CS,3,0:PRINT SPC(47):NEXT:RETURN
3590 REM =====  CLEAR BOTTOM BOX INCLUDING INSERT  =====
3600 FOR CS=19 TO 23:LOCATE CS,3,0:PRINT SPC(75):NEXT:RETURN
3650 REM =====  CLEAR THE RESPONSE INPUT BOX  =====
3660 LOCATE 21,52,0:PRINT SPC(22);:RETURN
3690 REM =====  CLEAR THE RESPONSE LINE BEFORE INSERT BOX  =====
3700 LOCATE 21,10,0:PRINT SPC(40);:RETURN
3730 REM =====  CLEAR RESPONSE BOX AND SET "SELECT" ROUTINE  =====
3740 LOCATE 21,10,0:PRINT SPC(22);
3760 LOCATE 21,53:PRINT"SELECT               ║    ║":RETURN
3790 REM =====  CLEAR INPUT BOX LINE  =====
3800 LOCATE 21,52,0:PRINT SPC(21);:LOCATE 21,76:RETURN
3840 REM =====  CLEAR EasyRite INPUT FORM BOTTOM LINE =====
3850 LOCATE 23,3:PRINT SPC(75):RETURN
3870 REM =====  CLEAR EasyRite INPUT FORM FIRST HALF BOTTOM LINE =====
3880 LOCATE 23,3:PRINT SPC(37):RETURN
3900 REM =====  CLEAR EasyRite INPUT FORM LAST HALF BOTTOM LINE =====
3910 LOCATE 23,41:PRINT SPC(37):RETURN
3930 REM =====  CLEAR TOP FORM DOWN TO HORIZONTAL LINE  =====
3940 FOR CS=3 TO 17:LOCATE CS,3,0:PRINT SPC(75):NEXT:RETURN
3990 REM =====  QUERY & CLEAR SETUP FOR CONTROL MENU =====
4000 CLS:GOSUB 2260:COLOR 15:LOCATE 3,31,0,13,12:PRINT"<< CONTROL MENU >> ":COLOR 7,0:LOCATE 4,6:PRINT CHR$(201);STRING$(23,205);CHR$(209);STRING$(9,205);CHR$(203);STRING$(24,205);CHR$(209);STRING$(9,205);CHR$(187);:FOR LN=5 TO 6:LOCATE LN,6
4020 PRINT CHR$(186);STRING$(23,32);CHR$(179);STRING$(9,32);CHR$(186);STRING$(24,32);CHR$(179);STRING$(9,32);CHR$(186);:NEXT:LOCATE 7,6
4030 PRINT CHR$(199);STRING$(23,196);CHR$(197);STRING$(9,196);CHR$(215);STRING$(24,196);CHR$(197);STRING$(9,196);CHR$(182);:FOR LN=8 TO 9:LOCATE LN,6
4040 PRINT CHR$(186);STRING$(23,32);CHR$(179);STRING$(9,32);CHR$(186);STRING$(24,32);CHR$(179);STRING$(9,32);CHR$(186);:NEXT:LOCATE 10,6
4050 PRINT CHR$(199);STRING$(23,196);CHR$(197);STRING$(9,196);CHR$(215);STRING$(24,196);CHR$(197);STRING$(9,196);CHR$(182);:FOR LN=11 TO 12:LOCATE LN,6
4060 PRINT CHR$(186);STRING$(23,32);CHR$(179);STRING$(9,32);CHR$(186);STRING$(24,32);CHR$(179);STRING$(9,32);CHR$(186);:NEXT:LOCATE 13,6
4070 PRINT CHR$(199);STRING$(23,196);CHR$(197);STRING$(9,196);CHR$(215);STRING$(24,196);CHR$(197);STRING$(9,196);CHR$(182);:FOR LN=14 TO 15:LOCATE LN,6
4080 PRINT CHR$(186);STRING$(23,32);CHR$(179);STRING$(9,32);CHR$(186);STRING$(24,32);CHR$(179);STRING$(9,32);CHR$(186);:NEXT:LOCATE 16,6
4090 PRINT CHR$(199);STRING$(23,196);CHR$(197);STRING$(9,196);CHR$(215);STRING$(24,196);CHR$(197);STRING$(9,196);CHR$(182);:FOR LN=17 TO 18:LOCATE LN,6
4100 PRINT CHR$(186);STRING$(23,32);CHR$(179);STRING$(9,32);CHR$(186);STRING$(24,32);CHR$(179);STRING$(9,32);CHR$(186);:NEXT:LOCATE 19,6
4110 PRINT CHR$(199);STRING$(23,196);CHR$(197);STRING$(9,196);CHR$(215);STRING$(24,196);CHR$(197);STRING$(9,196);CHR$(182);:FOR LN=20 TO 21:LOCATE LN,6
4120 PRINT CHR$(186);STRING$(23,32);CHR$(179);STRING$(9,32);CHR$(186);STRING$(24,32);CHR$(179);STRING$(9,32);CHR$(186);:NEXT:LOCATE 22,6
4130 PRINT CHR$(200);STRING$(23,205);CHR$(207);STRING$(9,205);CHR$(202);STRING$(24,205);CHR$(207);STRING$(9,205);CHR$(188);:LOCATE 4,25:PRINT"  Select and <PRESS> a letter  ";:LOCATE 6,11:PRINT"F U N C T I O N";:COLOR 15:LOCATE 6,32:PRINT"<PRESS>";
4140 COLOR 7:LOCATE 6,46:PRINT"F U N C T I O N";:COLOR 15:LOCATE 6,67:PRINT"<PRESS>";:COLOR 7:LOCATE 9,11:PRINT"DISK Directory":LOCATE 9,35:PRINT"D":LOCATE 9,46:PRINT"LOAD File":LOCATE 9,70:PRINT"L";:LOCATE 12,11:PRINT"CHANGE File":LOCATE 12,35:PRINT"C
4150 LOCATE 12,46:PRINT"SAVE File":LOCATE 12,70:PRINT"S";:LOCATE 15,11:PRINT"REVIEW File":LOCATE 15,35:PRINT"R":LOCATE 15,46:PRINT"EDIT File":LOCATE 15,70:PRINT"E";:LOCATE 18,11:PRINT"TEST Printer":LOCATE 18,35:PRINT"T":LOCATE 18,46
4160 PRINT"PRINT Hard Copy":LOCATE 18,70:PRINT"P";:LOCATE 21,11:PRINT"QUIT Program":LOCATE 21,35:PRINT"Q":LOCATE 21,46:PRINT"ZAP (CLEAR) File":LOCATE 21,70:PRINT"Z";:LOCATE 23,25:COLOR 15:PRINT"To Review INSTRUCTIONS <PRESS> I":COLOR 7
4180 MZ$="":MZ$="DdLlCcSsRrEeTtPpQqZzIi":GOSUB 4830:GOSUB 6180:ON MS GOTO 4260,4260,5910,5910,4240,4240,9640,9640,9750,9750,4250,4250,4220,4220,11020,11020,13260,13260,6890,6890,620,620
4220 GOSUB 1770:GOTO 3990
4230 RETURN
4240 MSQ$="":MSQ$="ZEBRA":GOTO 6910
4250 MSQ$="":MSQ$="LION":GOTO 8060
4260 REM =====  DISK DIRECTORY REVIEW ROUTINE =====
4270 CLS:GOSUB 2330:GOSUB 2190:LOCATE 21,20,0:PRINT"What Drive (A,B,C,D)";:KEY OFF:MZ$="":MZ$="AaBbCcDd":GOSUB 3760:GOSUB 6180:LOCATE 21,65,0:PRINT IN$;:ON MS GOTO 4400,4400,4470,4470,4540,4540,4610,4610
4400 LOCATE 3,1:FILES"A:*.*":COLOR 0,7:LOCATE 2,32:PRINT" Drive A: ";:COLOR 7,0:GOTO 4670
4470 LOCATE 3,1:FILES"B:*.*":COLOR 0,7:LOCATE 2,32:PRINT" Drive B: ";:COLOR 7,0:GOTO 4670
4540 LOCATE 3,1:FILES"C:*.*":COLOR 0,7:LOCATE 2,32:PRINT" Drive C: ";:COLOR 7,0:GOTO 4670
4610 LOCATE 3,1:FILES"D:*.*":COLOR 0,7:LOCATE 2,32:PRINT" Drive D: ";:COLOR 7,0
4670 GOSUB 3590:GOSUB 2190:LOCATE 20,24:PRINT"Another Directory?      <PRESS 1>";:LOCATE 21,24:PRINT"Put File in EasyRite?   <PRESS 2>";:LOCATE 22,24:PRINT"Return to CONTROL Menu? <PRESS 3>";:LOCATE 21,65,0:FINLEN=1:LOW=49:HIGH=51:GOSUB 6240
4780 ON VAL(INPTR$)GOTO 4790,4820,4800
4790 GOTO 4260
4800 CLS:GOTO 3990
4820 FOR LC=19 TO 22:LOCATE LC,10:PRINT SPC(50):NEXT:GOTO 5930
4830 REM =====  ELAPSED TIME PRINTOUT ROUTINE =====
4840 N$=TIME$:DEF FNH(H$)=VAL(LEFT$(H$,2)):DEF FNM(M$)=VAL(MID$(M$,4,2)):DEF FNS(S$)=VAL(RIGHT$(S$,2)):TMH=(FNH(N$))-FNH(BB$):TMM=(FNM(N$)-FNM(BB$)):TMS=(FNS(N$)-FNS(BB$)):LOCATE 25,2:PRINT SPC(78);:KEY OFF:LOCATE 25,8:PRINT"Start Time ";BB$;
4960 LOCATE 25,30:PRINT"End Time ";N$;:LOCATE 25,50:PRINT"Elapsed Time "TMH CHR$(58)ABS(TMM)CHR$(58)(TMS);:RETURN
5010 REM =====  ERROR TRAP ROUTINE =====
5020 GOSUB 3690:LOCATE 25,2:PRINT SPC(78);:KEY OFF:LOCATE 25,28,0:COLOR 24,4:PRINT" ERROR ";:COLOR 7,0:PRINT" #";ERR;" IN LINE #";ERL;:FOR T=1 TO 1000:NEXT:IF ERR=53 THEN LOCATE 20,10:PRINT SPC(30),ELSE 5170
5140 LOCATE 20,10:PRINT"File not found   ";:PRINT" ** Load CORRECT Disk";
5170 IF ERR=54 THEN LOCATE 20,10:PRINT SPC(30),ELSE 5210
5180 LOCATE 20,10:PRINT"Bad file mode    ";:PRINT" ** Correct File Mode";
5210 IF ERR=55 THEN LOCATE 20,10:PRINT SPC(30),ELSE 5250
5220 LOCATE 20,10:PRINT"File already OPEN ";:PRINT" ** CLOSE and REOPEN";
5250 IF ERR=61 THEN LOCATE 20,10:PRINT SPC(30),ELSE 5290
5260 LOCATE 20,10:PRINT"Disk FULL         ";:PRINT" ** Install New Disk";
5290 IF ERR=70 THEN LOCATE 20,10:PRINT SPC(30),ELSE 5330
5300 LOCATE 20,10:PRINT"Disk WRITE PROTECT  ";:PRINT" ** Remove W/P Tab";
5330 IF ERR=71 THEN LOCATE 20,10:PRINT SPC(30),ELSE 5370
5340 LOCATE 20,10:PRINT"Disk NOT READY    ";:PRINT" ** CLOSE Drive Door";
5370 IF ERR=24 THEN LOCATE 20,10:PRINT SPC(30),ELSE 5410
5380 LOCATE 20,10:PRINT"Printer OFF-LINE ";:PRINT"  ** Set ON-LINE Mode";
5410 IF ERR=25 THEN LOCATE 20,10:PRINT SPC(30),ELSE 5450
5420 LOCATE 20,10:PRINT"Printer not ON    ";:PRINT" ** Check Printer ON";
5450 IF ERR=27 THEN LOCATE 20,10:PRINT SPC(30),ELSE 5540
5460 LOCATE 20,10:PRINT"OUT OF PAPER!     ";:PRINT" ** Check Paper Path";
5490 LOCATE 22,20:GOSUB 2330:GOSUB 3650:GOSUB 3690:RETURN
5540 GOSUB 5490:LOCATE 22,10,0:PRINT"Correct SYSTEM ERROR - <PRESS> ENTER";:LOCATE 22,10,0:GOSUB 6670:KEY ON:KEY OFF:COLOR 7,0:RESUME 3990
5630 REM =====  DATA SAVE ROUTINE TO DISK  =====
5640 CLS:GOSUB 2190:GOSUB 2330:LOCATE 21,27,0:COLOR 15:PRINT"What is FileName? ";:COLOR 7,0:GOSUB 3650:FINLEN=14:LOCATE 21,51:COLOR 15:PRINT"FileName ·|········.···";:COLOR 7,0:LOCATE 21,60,0:GOSUB 6400:FILESPEC$=FIN$:GOSUB 3690:OPEN "O",1,FILESPEC$
5820 WRITE#1,P:FOR I=1 TO P:WRITE#1,A$(I):IF(A$(I)="END"OR A$(I)="end")THEN P=I
5860 IF(A$(I)="END"OR A$(I)="end")THEN 5880
5870 NEXT
5880 CLOSE:GOSUB 4830:GOTO 9730
5910 REM =====  DISK READ ROUTINE FROM DISK  =====
5920 CLS
5930 FOR I=1 TO 60:A$(I)="":NEXT:GOSUB 2190:GOSUB 2330:LOCATE 21,27:COLOR 15:PRINT"What is FileName? ";:COLOR 7,0:GOSUB 3650:FINLEN=14:LOCATE 21,51:COLOR 15:PRINT"FileName ·|········.···";:COLOR 7,0:LOCATE 21,60,0:GOSUB 6400:FILESPEC$=FIN$:GOSUB 3690
6100 OPEN "I",1,FILESPEC$:INPUT#1,P:FOR I=1 TO P:INPUT#1,A$(I):IF(A$(I)="END"OR A$(I)="end")THEN P=I
6150 IF(A$(I)="END"OR A$(I)="END")THEN 6170
6160 NEXT
6170 CLOSE:GOTO 3990
6180 REM =====  INKEY$ RESPONSE FOR DIRECTORY SELECTION  =====
6190 IN$=INKEY$:IF IN$=""THEN 6180
6210 MS=INSTR(MZ$,IN$):IF MS=0 THEN SOUND 1000,4:GOTO 6180
6230 RETURN
6240 REM =====  INKEY$ ROUTINE FOR NUMBER RESPONSES =====
6250 FIN$="
6260 IF INKEY$><""THEN 6260
6270 INPTR$=INKEY$:IF INPTR$=""THEN 6270
6290 IF INPTR$=CHR$(13)THEN RETURN
6300 IF INPTR$<>CHR$(8)THEN 6350
6310 IF FIN$=""THEN SOUND 600,4:GOTO 6270
6320 PRINT CHR$(29);" ";CHR$(29);:FIN$=LEFT$((FIN$),LEN(FIN$)-1):GOTO 6270
6350 IF(ASC(INPTR$)<LOW OR ASC(INPTR$)>HIGH)THEN SOUND 400,4:GOTO 6270
6360 FIN$=FIN$+INPTR$:PRINT INPTR$;:IF LEN(FIN$)=FINLEN THEN RETURN
6390 GOTO 6270
6400 REM =====  INKEY$ ROUTINE FOR LETTER RESPONSES =====
6410 COLOR 7,0:FIN$="":IF FINLEN=0 THEN FINLEN=255
6440 IF INKEY$><""THEN 6440
6450 IF INKEY$=CHR$(127)THEN 3990
6460 INPTR$=INKEY$:IF INPTR$=""THEN 6460
6480 IF INPTR$=CHR$(13)THEN RETURN
6490 IF INPTR$<>CHR$(8)THEN 6540
6500 IF FIN$=""THEN SOUND 600,4:GOTO 6460
6510 PRINT CHR$(29);"·";CHR$(29);:FIN$=LEFT$((FIN$),LEN(FIN$)-1):GOTO 6460
6540 IF LEN(FIN$)=FINLEN THEN SOUND 600,4:GOTO 6460
6550 IF ASC(INPTR$)<31 OR ASC(INPTR$)>126 THEN SOUND 400,4:GOTO 6460
6560 PRINT INPTR$;:FIN$=FIN$+INPTR$:GOTO 6460
6590 REM =====  INKEY$ RESPONSE FOR YES/NO ROUTINE  =====
6600 IN$=INKEY$:IF IN$=""THEN 6590
6620 YN=0:IF(IN$="Y"OR IN$="y")THEN YN=1:RETURN
6640 IF(IN$="N"OR IN$="n")THEN YN=2:RETURN
6650 SOUND 400,4:GOTO 6590
6670 REM =====  INKEY$ CHECK FOR CARRIAGE RETURN INPUT  =====
6680 IF INKEY$><""GOTO 6670
6690 IN$=INKEY$:IF IN$=""THEN 6690
6710 IF IN$<>CHR$(13)THEN SOUND 400,4:GOTO 6690
6720 RETURN
6730 REM =====  PRINT IN EasyRite BOTTOM BOX END AND QUOTE INSTRUCTIONS =====
6740 GOSUB 3840:LOCATE 23,6,0:PRINT"Enter ";:COLOR 15:PRINT CHR$(34)"END"CHR$(34);:COLOR 7,0:PRINT" to close entries ";:LOCATE 23,41:PRINT"No ";:COLOR 15:PRINT"QUOTATION MARKS";:COLOR 7,0:PRINT" permitted in TEXT!";:RETURN
6790 REM =====  STRING INPUT CONTROL/DIRECTION SUBROUTINE  =====
6800 LOCATE LN,8,1:COLOR 15:PRINT A$(I);:COLOR 7,0:LOCATE LN,8,1,0,7:FINLEN=70:GOSUB 6400:IF FIN$=""THEN A$(I)=A$(I)ELSE A$(I)=FIN$
6840 LOCATE LN,8,0,13,12:COLOR 7,0:PRINT STRING$(70,"·");:LOCATE LN,8,0:PRINT A$(I);:IF(A$(I)="END"OR A$(I)="end")THEN P=I
6870 IF(A$(I)="END"OR A$(I)="end")THEN GOSUB 9010:GOTO 9640
6880 RETURN
6890 REM =====  ZAP (CLEAR) FILE TO CREATE NEW FILE =====
6900 FOR I=1 TO 200:A$(I)="":NEXT:GOSUB 13510:GOTO 3990
6910 REM =====  START OF LOADED FILE CHANGE ROUTINE, PAGE SELECTOR  =====
6920 CLS:GOSUB 2400:GOSUB 2470:LOCATE 9,27:PRINT"Change From Page 1 <PRESS 1>":LOCATE 11,27:PRINT"Change From Page ? <PRESS 2>":LOCATE 21,40,0:FINLEN=1:LOW=49:HIGH=50:GOSUB 6240:ON VAL(INPTR$)GOTO 7020,6980
6980 LOCATE 16,25:PRINT"Start at what Page? <ENTER> Pg #";:LOCATE 18,27:PRINT"<Select from Pages 2 thru 9>";:LOCATE 21,40,0:FINLEN=1:LOW=50:HIGH=57:GOSUB 6240:ON VAL(INPTR$)-1 GOTO 7130,7230,7330,7440,7540,7640,7750,7850
7020 REM =====  START OF LOADED FILE CHANGE ROUTINE, PAGE ONE  =====
7030 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=1 TO 20:LOCATE I+1,3:PRINT USING PR$;I;:LOCATE I+1,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I+1,8:PRINT A$(I);:NEXT:GOSUB 6730:P=200:I=1:PG#=0:PG#=1:LN=0:FOR I=1 TO 20:LN=I+1:GOSUB 6790
7110 IF LN=21 THEN I=20:GOSUB 9010:GOTO 7130
7120 NEXT
7130 REM =====  START OF SECOND CHANGE PAGE  =====
7140 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=21 TO 40:LOCATE I-19,3:PRINT USING PR$;I;:LOCATE I-19,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-19,8:PRINT A$(I);:NEXT:GOSUB 6730:P=200:I=20:PG#=0:PG#=2:LN=0:FOR I=21 TO 40:LN=I-19:GOSUB 6790
7210 IF LN=21 THEN I=40:GOSUB 9010:GOTO 7230
7220 NEXT
7230 REM =====  START OF THIRD CHANGE PAGE  =====
7240 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=41 TO 60:LOCATE I-39,3:PRINT USING PR$;I;:LOCATE I-39,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-39,8:PRINT A$(I);:NEXT:GOSUB 6730:P=200:I=40:PG#=0:PG#=3:LN=0:FOR I=41 TO 60:LN=I-39:GOSUB 6790
7310 IF LN=21 THEN I=60:GOSUB 9010:GOTO 7330
7320 NEXT
7330 REM =====  START OF FOURTH CHANGE PAGE  =====
7340 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=61 TO 80:LOCATE I-59,3:PRINT USING PR$;I;:LOCATE I-59,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-59,8:PRINT A$(I);:NEXT:GOSUB 6730:P=200:I=1:PG#=0:PG#=4:LN=0:FOR I=61 TO 80:LN=I-59:GOSUB 6790
7420 IF LN=21 THEN I=80:GOSUB 9010:GOTO 7440
7430 NEXT
7440 REM =====  START OF FIFTH CHANGE PAGE  =====
7450 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=81 TO 100:LOCATE I-79,3:PRINT USING PR$;I;:LOCATE I-79,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-79,8:PRINT A$(I);:NEXT:GOSUB 6730:P=200:I=20:PG#=0:PG#=5:LN=0:FOR I=81 TO 100:LN=I-79:GOSUB 6790
7520 IF LN=21 THEN I=100:GOSUB 9010:GOTO 7540
7530 NEXT
7540 REM =====  START OF SIXTH CHANGE PAGE  =====
7550 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=101 TO 120:LOCATE I-99,3:PRINT USING PR$;I;:LOCATE I-99,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-99,8:PRINT A$(I);:NEXT:GOSUB 6730:P=60:I=200:PG#=0:PG#=6:LN=0:FOR I=101 TO 120:LN=I-99:GOSUB 6790
7620 IF LN=21 THEN I=120:P=I:GOSUB 9010:GOTO 7640
7630 NEXT
7640 REM =====  START OF SEVENTH CHANGE PAGE  =====
7650 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=121 TO 140:LOCATE I-119,3:PRINT USING PR$;I;:LOCATE I-119,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-119,8:PRINT A$(I);:NEXT:GOSUB 6730:P=200:I=1:PG#=0:PG#=7:LN=0:FOR I=121 TO 140:LN=I-119:GOSUB 6790
7730 IF LN=21 THEN I=140:GOSUB 9010:GOTO 7750
7740 NEXT
7750 REM =====  START OF EIGTH CHANGE PAGE  =====
7760 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=141 TO 160:LOCATE I-139,3:PRINT USING PR$;I;:LOCATE I-139,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-139,8:PRINT A$(I);:NEXT:GOSUB 6730:P=200:I=20:PG#=0:PG#=8:LN=0:FOR I=141 TO 160:LN=I-139:GOSUB 6790
7830 IF LN=21 THEN I=140:GOSUB 9010:GOTO 7850
7840 NEXT
7850 REM =====  START OF NINTH CHANGE PAGE  =====
7860 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=161 TO 180:LOCATE I-159,3:PRINT USING PR$;I;:LOCATE I-159,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-159,8:PRINT A$(I);:NEXT:GOSUB 6730:P=200:I=160:PG#=0:PG#=9:LN=0:FOR I=161 TO 180:LN=I-159:GOSUB 6790
7930 IF LN=21 THEN I=180:GOSUB 9010:GOTO 7950
7940 NEXT
7950 REM =====  START OF TENTH CHANGE PAGE  =====
7960 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=181 TO 200:LOCATE I-179,3:PRINT USING PR$;I;:LOCATE I-179,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-179,8:PRINT A$(I);:NEXT:GOSUB 6730:P=200:I=1:PG#=0:PG#=10:LN=0:FOR I=181 TO P:LN=I-179:GOSUB 6790
8040 IF LN=21 THEN I=200:P=I:GOSUB 9010:GOTO 9640
8050 NEXT
8060 REM =====  START OF IN-MEMORY EDIT ROUTINE, PAGE SELECTOR  =====
8070 CLS:GOSUB 2400:GOSUB 2470:LOCATE 9,28:PRINT"Edit From Page 1 <PRESS 1>":LOCATE 11,28:PRINT"Edit from Page ? <PRESS 2>":LOCATE 21,40,0:FINLEN=1:LOW=49:HIGH=50:GOSUB 6240:ON VAL(INPTR$)GOTO 8170,8130
8130 LOCATE 16,25:PRINT"Start at what Page? <ENTER> Pg #";:LOCATE 18,27:PRINT"<Select from Pages 2 thru 9>";:LOCATE 21,40,0:FINLEN=1:LOW=50:HIGH=57:GOSUB 6240:ON VAL(INPTR$)-1 GOTO 8260,8340,8420,8510,8590,8670,8760,8840
8170 REM =====  START OF IN-MEMORY EDIT ROUTINE, PAGE ONE  =====
8180 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=1 TO 20:LOCATE I+1,3:PRINT USING PR$;I;:LOCATE I+1,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I+1,8:PRINT A$(I);:NEXT:P=200:I=1:PG#=0:PG#=1:LN=0:FOR I=1 TO 20:LN=I+1:IF LN=21 THEN I=20:GOSUB 9010:GOTO 8260
8250 NEXT
8260 REM =====  START OF SECOND EDIT PAGE  =====
8270 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=21 TO 40:LOCATE I-19,3:PRINT USING PR$;I;:LOCATE I-19,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-19,8:PRINT A$(I);:NEXT:P=200:I=20:PG#=0:PG#=2:LN=0:FOR I=21 TO 40:LN=I-19
8320 IF LN=21 THEN I=40:GOSUB 9010:GOTO 8340
8330 NEXT
8340 REM =====  START OF THIRD EDIT PAGE  =====
8350 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=41 TO 60:LOCATE I-39,3:PRINT USING PR$;I;:LOCATE I-39,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-39,8:PRINT A$(I);:NEXT:P=200:I=40:PG#=0:PG#=3:LN=0:FOR I=41 TO 60:LN=I-39
8400 IF LN=21 THEN I=60:GOSUB 9010:GOTO 8420
8410 NEXT
8420 REM =====  START OF FOURTH PAGE  =====
8430 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=61 TO 80:LOCATE I-59,3:PRINT USING PR$;I;:LOCATE I-59,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-59,8:PRINT A$(I);:NEXT:P=200:I=1:PG#=0:PG#=4:LN=0:FOR I=61 TO 80:LN=I-59
8490 IF LN=21 THEN I=80:GOSUB 9010:GOTO 8510
8500 NEXT
8510 REM =====  START OF FIFTH EDIT PAGE  =====
8520 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=81 TO 100:LOCATE I-79,3:PRINT USING PR$;I;:LOCATE I-79,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-79,8:PRINT A$(I);:NEXT:P=200:I=20:PG#=0:PG#=5:LN=0:FOR I=81 TO 100:LN=I-79
8570 IF LN=21 THEN I=100:GOSUB 9010:GOTO 8590
8580 NEXT
8590 REM =====  START OF SIXTH EDIT PAGE  =====
8600 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=101 TO 120:LOCATE I-99,3:PRINT USING PR$;I;:LOCATE I-99,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-99,8:PRINT A$(I);:NEXT:P=60:I=200:PG#=0:PG#=6:LN=0:FOR I=101 TO 120:LN=I-99
8650 IF LN=21 THEN I=120:P=I:GOSUB 9010:GOTO 8670
8660 NEXT
8670 REM =====  START OF SEVENTH EDIT PAGE  =====
8680 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=121 TO 140:LOCATE I-119,3:PRINT USING PR$;I;:LOCATE I-119,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-119,8:PRINT A$(I);:NEXT:P=200:I=1:PG#=0:PG#=7:LN=0:FOR I=121 TO 140:LN=I-119
8740 IF LN=21 THEN I=140:GOSUB 9010:GOTO 8760
8750 NEXT
8760 REM =====  START OF EIGTH EDIT PAGE  =====
8770 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=141 TO 160:LOCATE I-139,3:PRINT USING PR$;I;:LOCATE I-139,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-139,8:PRINT A$(I);:NEXT:P=200:I=20:PG#=0:PG#=8:LN=0:FOR I=141 TO 160:LN=I-139
8820 IF LN=21 THEN I=140:GOSUB 9010:GOTO 8840
8830 NEXT
8840 REM =====  START OF NINTH EDIT PAGE  =====
8850 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=161 TO 180:LOCATE I-159,3:PRINT USING PR$;I;:LOCATE I-159,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-159,8:PRINT A$(I);:NEXT:P=200:I=160:PG#=0:PG#=9:LN=0:FOR I=161 TO 180:LN=I-159
8900 IF LN=21 THEN I=180:GOSUB 9010:GOTO 8920
8910 NEXT
8920 REM =====  START OF TENTH PAGE  =====
8930 CLS:GOSUB 2840:GOSUB 3130:GOSUB 3020:FOR I=181 TO 200:LOCATE I-179,3:PRINT USING PR$;I;:LOCATE I-179,8:PRINT STRING$(66,"·");"░";"■■■";:LOCATE I-179,8:PRINT A$(I);:NEXT:P=200:I=1:PG#=0:PG#=10:LN=0:FOR I=181 TO P:LN=I-179
8990 IF LN=21 THEN I=200:P=I:GOSUB 9010:GOTO 9640
9000 NEXT
9010 REM =====  IS THIS CORRECT QUERY SUBROUTINE  =====
9020 GOSUB 3840:LOCATE 23,28,0:COLOR 15:PRINT"Is this PAGE correct <Y/N> ";:COLOR 7,0:GOSUB 6590:IF YN=1 AND MSQ$="ZEBRA"THEN GOSUB 9530:RETURN
9080 IF YN=1 AND MSQ$="LION"THEN GOSUB 9580:RETURN
9090 IF YN=2 THEN 9100
9100 GOSUB 3840:LOCATE 23,20:COLOR 15:PRINT"Re-enter what line? ";:COLOR 7,0:LOCATE 23,50:PRINT" Line # ";:IF PG#<5 THEN FINLEN=2
9180 IF PG#>5 THEN FINLEN=3
9190 LOW=48:HIGH=57:GOSUB 6240:GOSUB 3840:L=VAL(FIN$):IF PG#=1 AND L>20 THEN BEEP:GOTO 9010
9250 IF PG#=2 AND(L<21 OR L>40)THEN BEEP:GOTO 9010
9260 IF PG#=3 AND(L<41 OR L>60)THEN BEEP:GOTO 9010
9270 IF PG#=4 AND(L<61 OR L>80)THEN BEEP:GOTO 9010
9280 IF PG#=5 AND(L<81 OR L>100)THEN BEEP:GOTO 9010
9290 IF PG#=6 AND(L<101 OR L>120)THEN BEEP:GOTO 9010
9300 IF PG#=7 AND(L<121 OR L>140)THEN BEEP:GOTO 9010
9310 IF PG#=8 AND(L<141 OR L>160)THEN BEEP:GOTO 9010
9320 IF PG#=9 AND(L<161 OR L>180)THEN BEEP:GOTO 9010
9330 IF PG#=10 AND(L<181 OR L>200)THEN BEEP:GOTO 9010
9340 IF PG#=1 THEN NL=L
9350 IF PG#=2 THEN NL=L-20
9360 IF PG#=3 THEN NL=L-40
9370 IF PG#=4 THEN NL=L-60
9380 IF PG#=5 THEN NL=L-80
9390 IF PG#=6 THEN NL=L-100
9400 IF PG#=7 THEN NL=L-120
9410 IF PG#=8 THEN NL=L-140
9420 IF PG#=9 THEN NL=L-160
9430 IF PG#=10 THEN NL=L-180
9440 I=L:LOCATE 23,60:PRINT INPTR$;:LOCATE 23,60:PRINT L;:LOCATE NL+1,8,1:COLOR 15:PRINT A$(I);:COLOR 7,0:LOCATE NL+1,8,1,0,7:FINLEN=70:GOSUB 6400:IF FIN$=""THEN A$(I)=A$(I)ELSE A$(I)=FIN$
9500 LOCATE NL+1,8,0,13,12:COLOR 7,0:PRINT STRING$(70,"·");:LOCATE NL+1,8,0:PRINT A$(I);:GOTO 9010
9530 REM =====  QUERY ON NEXT PAGE OR QUIT INPUT =====
9540 GOSUB 3840:LOCATE 23,7,0:COLOR 15:PRINT"<PRESS 1> To Continue Processing";:LOCATE 23,46,0:PRINT"<PRESS 2> To Terminate Input";:COLOR 7:LOCATE 23,40,0:FINLEN=1:LOW=49:HIGH=50:GOSUB 6240:ON VAL(INPTR$)GOTO 9570,9630
9570 RETURN
9580 REM =====  QUERY ON NEXT PAGE OR QUIT EDIT =====
9590 GOSUB 3840:LOCATE 23,7,0:COLOR 15:PRINT"<PRESS 1> To Continue Editing";:LOCATE 23,46,0:PRINT"<PRESS 2> To Terminate Edit";:COLOR 7:LOCATE 23,40,0:FINLEN=1:LOW=49:HIGH=50:GOSUB 6240:ON VAL(INPTR$)GOTO 9570,9630
9620 RETURN
9630 GOTO 9640
9640 REM =====  SAVE TO DISK QUERY ROUTINE  =====
9650 CLS:GOSUB 2190:LOCATE 21,20:COLOR 15:PRINT"SAVE to DISK <Y/N> ";:COLOR 7,0:GOSUB 6590:IF YN=1 THEN 5630
9720 IF YN=2 THEN 9730
9730 REM =====  CHANCE TO REVIEW INPUT FILES  =====
9740 GOTO 3990
9750 REM =====  STARTING OUTPUT LOOP =====
9760 REM =====  DISPLAYS PAGE 1 - 1ST 20 LINES =====
9770 CLS:GOSUB 2840:GOSUB 3130:LOCATE 2,7,0:FOR I=1 TO 20:LOCATE,7:PRINT A$(I):NEXT:IF P-1=<20 THEN GOSUB 3840:GOTO 10950
9860 GOSUB 3840:LOCATE 23,30:PRINT"<PRESS> ENTER to Continue!";:GOSUB 6670:REM =====  DISPLAYS PAGE 2 - 2ND 20 LINES =====
9910 CLS:GOSUB 2840:GOSUB 3130:LOCATE 2,7,0:FOR I=21 TO 40:LOCATE,7:PRINT A$(I):NEXT:IF P-1=<40 THEN GOSUB 3840:GOTO 10950
9980 GOSUB 3840:LOCATE 23,30:PRINT"<PRESS> ENTER to Continue!";:GOSUB 6670:REM =====  DISPLAYS PAGE 3 - 3rd 20 LINES =====
10030 CLS:GOSUB 2840:GOSUB 3130:LOCATE 2,7,0:FOR I=41 TO 60:LOCATE,7:PRINT A$(I):NEXT:IF P-1=<60 THEN GOSUB 3840:GOTO 10950
10100 GOSUB 3840:LOCATE 23,30:PRINT"<PRESS> ENTER to Continue!";:GOSUB 6670:REM =====  DISPLAYS PAGE 4 - 4th 20 LINES =====
10150 CLS:GOSUB 2840:GOSUB 3130:LOCATE 2,7,0:FOR I=61 TO 80:LOCATE,7:PRINT A$(I):NEXT:IF P-1=<80 THEN GOSUB 3840:GOTO 10950
10220 GOSUB 3840:LOCATE 23,30:PRINT"<PRESS> ENTER to Continue!";:GOSUB 6670:REM =====  DISPLAYS PAGE 5 - 5th 20 LINES =====
10270 CLS:GOSUB 2840:GOSUB 3130:LOCATE 2,7,0:FOR I=81 TO 100:LOCATE,7:PRINT A$(I):NEXT:IF P-1=<100 THEN GOSUB 3840:GOTO 10950
10340 GOSUB 3840:LOCATE 23,30:PRINT"<PRESS> ENTER to Continue!";:GOSUB 6670:REM =====  DISPLAYS PAGE 6 - 6th 20 LINES =====
10390 CLS:GOSUB 2840:GOSUB 3130:LOCATE 2,7,0:FOR I=101 TO 120:LOCATE,7:PRINT A$(I):NEXT:IF P-1=<120 THEN GOSUB 3840:GOTO 10950
10460 GOSUB 3840:LOCATE 23,30:PRINT"<PRESS> ENTER to Continue!";:GOSUB 6670:REM =====  DISPLAYS PAGE 7 - 7th 20 LINES =====
10510 CLS:GOSUB 2840:GOSUB 3130:LOCATE 2,7,0:FOR I=121 TO 140:LOCATE,7:PRINT A$(I):NEXT:IF P-1=<140 THEN GOSUB 3840:GOTO 10950
10580 GOSUB 3840:LOCATE 23,30:PRINT"<PRESS> ENTER to Continue!";:GOSUB 6670:REM =====  DISPLAYS PAGE 8 - 8th 20 LINES =====
10630 CLS:GOSUB 2840:GOSUB 3130:LOCATE 2,7,0:FOR I=141 TO 160:LOCATE,7:PRINT A$(I):NEXT:IF P-1=<160 THEN GOSUB 3840:GOTO 10950
10700 GOSUB 3840:LOCATE 23,30:PRINT"<PRESS> ENTER to Continue!";:GOSUB 6670:REM =====  DISPLAYS PAGE 9 - 9th 20 LINES =====
10750 CLS:GOSUB 2840:GOSUB 3130:LOCATE 2,7,0:FOR I=161 TO 180:LOCATE,7:PRINT A$(I):NEXT:IF P-1=<180 THEN GOSUB 3840:GOTO 10950
10820 GOSUB 3840:LOCATE 23,30:PRINT"<PRESS> ENTER to Continue!";:GOSUB 6670:REM =====  DISPLAYS PAGE 10 - LAST 20 LINES =====
10870 CLS:GOSUB 2840:GOSUB 3130:LOCATE 2,7,0:FOR I=181 TO 200:LOCATE,7:PRINT A$(I):NEXT:IF P-1=<200 THEN GOSUB 3840:GOTO 10950
10940 GOSUB 3840
10950 LOCATE 23,10:PRINT"End of ";:COLOR 15:PRINT FILESPEC$;:COLOR 7,0:PRINT" File":LOCATE 23,45:PRINT"<PRESS> ANY KEY to Continue";
10990 RES$=INKEY$:IF RES$=""THEN 10990
11010 GOTO 3990
11020 REM =====  EasyRite HARD COPY OPTIONS =====
11030 CLS:GOSUB 2120:GOSUB 2980:LOCATE 3,27:PRINT"EasyRite HARD COPY SELECTOR";:LOCATE 4,27:COLOR 7,0:PRINT"═══════════════════════════";:LOCATE 5,34:PRINT"C H O I C E S":LOCATE 6,34:PRINT"═════════════";
11150 REM =====  MODIFIED PRINT OPTIONS INCLUDING DOUBLE SPACE =====
11160 LOCATE 8,23:PRINT"Standard ELITE (10 Char/Inch).....1";:LOCATE 9,23:PRINT"Emphasized ELITE (10 Char/Inch)...2";:LOCATE 10,23:PRINT"Emphasised ELITE (Double Space)...3";:LOCATE 11,23:PRINT"ITALICS Print.(EPSON CODE)........4";
11200 LOCATE 12,23:PRINT"COMPRESSED Print.(EPSON CODE).....5";:LOCATE 13,23:PRINT"Read DISK DIRECTORIES.............6";:LOCATE 14,23:PRINT"Reset Parallel Printer Port.......7";:LOCATE 15,23:PRINT"Return to CONTROL Menu............8";:LOCATE 16,23
11280 PRINT"QUIT the program..................9";:GOSUB 2330:LOCATE 21,20:PRINT"Select and <PRESS> a Number";
11320 GOSUB 3760:GOSUB 4830:FINLEN=1:LOW=49:HIGH=57:GOSUB 6240:IF INPTR$=CHR$(13)THEN SOUND 400,3:GOTO 11320
11390 ON VAL(INPTR$)GOTO 11410,11460,11510,11560,11610,4260,11400,3990,13260
11400 GOSUB 1770:GOTO 11020
11410 REM =====  STANDARD ELITE (10 PITCH) PRINT =====
11420 CLS:WIDTH"LPT1:",80:GOSUB 2700:GOSUB 11660:GOTO 12100
11460 REM =====  EMPHASIZED ELITE (10 PITCH) PRINT =====
11470 CLS:WIDTH"LPT1:",80:GOSUB 2700:GOSUB 11660:GOTO 12270
11510 REM =====  EMPHASIZED ELITE (DOUBLE SPACE) =====
11520 CLS:WIDTH"LPT1:",80:GOSUB 2700:GOSUB 11660:GOTO 12440
11560 REM =====  ALL LINES ITALICS =====
11570 CLS:WIDTH"LPT1:",132:GOSUB 2700:GOSUB 11660:GOTO 12610
11610 REM =====  ALL LINES COMPRESSED =====
11620 CLS:WIDTH"LPT1:",132:GOSUB 2700:GOSUB 11660:GOTO 12800
11660 REM =====  QUERY ON PRINTED PAGE NUMBERS =====
11670 LOCATE 10,23:PRINT"DO YOU WANT PRINTED PAGES NUMBERED":LOCATE 13,33:PRINT"<PRESS> Y or N":GOSUB 6590:IF YN=1 THEN LLN$="TRUE
11710 IF YN=1 THEN LLK$="PAGER":GOSUB 2700:GOTO 11840
11720 IF YN=2 THEN LLN$="FALSE
11730 GOSUB 2700:REM =====  QUERY ON GOING TO TOP OF FORM AFTER PRINTING =====
11750 FOR E=9 TO 15:LOCATE E,10:PRINT SPC(50):NEXT:LOCATE 10,13:PRINT"AFTER PRINTING, DO YOU WANT PAPER ADVANCED TO TOP OF FORM":LOCATE 13,33:PRINT"<PRESS> Y or N":GOSUB 6590:FOR E=9 TO 15:LOCATE E,10:PRINT SPC(60):NEXT:IF YN=1 THEN LLK$="PAGER
11810 IF YN=2 THEN LLK$="STOPPG
11820 CLS:GOSUB 2700:REM =====  LIST PRINT CHOICE MENU  =====
11840 FOR E=9 TO 15:LOCATE E,20:PRINT SPC(50):NEXT:LOCATE 6,33:PRINT"  R E A D Y  ";:LOCATE 7,33:PRINT"  ═════════  ";:LOCATE 9,25:COLOR 15:PRINT"Check Printer ON and SELECTED!";:COLOR 7,0:LOCATE 10,10:PRINT STRING$(50,32);:LOCATE 11,25
11940 PRINT"CHECK Paper: TOP of FORM (TOF)";:LOCATE 13,25:PRINT"  <PRESS> Space Bar:  PRINT";:LOCATE 15,25:PRINT"  <PRESS> Return:      MENU";
11990 RES$=INKEY$:IF RES$=""THEN 11990
12010 IF RES$=CHR$(32)THEN RETURN
12020 IF RES$=CHR$(13)THEN 11020
12030 REM =====  PRIMARY LINE COUNTER AND PAGE ADVANCE  =====
12040 IF LLN$="TRUE"AND LLK$="PAGER"THEN 12070
12050 IF LLN$="FALSE"AND LLK$="PAGER"THEN 12080
12060 IF LLN$="FALSE"AND LLK$="STOPPG"THEN 12090
12070 IF PL=>59 THEN LPRINT:LPRINT TAB(PTC)PN:PN=PN+1
12080 IF PL=>59 THEN LPRINT CHR$(12);:FOR LA=1 TO 5:LPRINT:NEXT:PL=5
12090 RETURN
12100 REM =====  STANDARD 10 PITCH ELITE PRINT =====
12110 PT=8:PTC=40:LPRINT CHR$(27)+"@";:PN=1:PL=0:FOR LA=1 TO 5:LPRINT:NEXT:WIDTH"LPT1:",80:PL=5:FOR I=1 TO P:IF A$(I)="END"OR A$(I)="end"THEN 12210
12180 LPRINT TAB(PT)A$(I):PL=PL+1:GOSUB 12030:NEXT
12210 IF LLN$="TRUE"THEN 12230
12220 IF LLN$="FALSE"THEN 12240
12230 FOR PA=1 TO 61-PL:LPRINT:NEXT:LPRINT TAB(PTC)PN;:LPRINT CHR$(12);:GOSUB 12980:GOTO 12100
12240 IF LLK$="STOPPG"THEN GOSUB 12980:GOTO 12100
12250 LPRINT CHR$(12);:GOSUB 12980:GOTO 12100
12270 REM =====  EMPHASIZED 10 PITCH PRINT =====
12280 PT=8:PTC=40:LPRINT CHR$(27)CHR$(64);CHR$(27)CHR$(69);:PN=1:PL=0:FOR LA=1 TO 5:LPRINT:NEXT:WIDTH"LPT1:",132:PL=5:FOR I=1 TO P:IF A$(I)="END"OR A$(I)="end"THEN 12380
12350 LPRINT TAB(PT)A$(I):PL=PL+1:GOSUB 12030:NEXT
12380 IF LLN$="TRUE"THEN 12400
12390 IF LLN$="FALSE"THEN 12410
12400 FOR PA=1 TO 61-PL:LPRINT:NEXT:LPRINT TAB(PTC)PN;:LPRINT CHR$(12);:GOSUB 12980:GOTO 12270
12410 IF LLK$="STOPPG"THEN GOSUB 12980:GOTO 12270
12420 LPRINT CHR$(12);:GOSUB 12980:GOTO 12270
12440 REM =====  STANDARD 10 PITCH ELITE/EMPHASIZED DOUBLE SPACE PRINT =====
12450 PT=8:PTC=40:LPRINT CHR$(27)CHR$(64);CHR$(27)CHR$(69);:PN=1:PL=0:FOR LA=1 TO 5:LPRINT:NEXT:WIDTH"LPT1:",80
12490 PL=5:FOR I=1 TO P:IF A$(I)="END"OR A$(I)="end"THEN 12550
12520 LPRINT TAB(PT)A$(I):LPRINT:PL=PL+2:GOSUB 12030:NEXT
12550 IF LLN$="TRUE"THEN 12570
12560 IF LLN$="FALSE"THEN 12580
12570 FOR PA=1 TO 61-PL:LPRINT:NEXT:LPRINT TAB(PTC)PN;:LPRINT CHR$(12);:GOSUB 12980:GOTO 12440
12580 IF LLK$="STOPPG"THEN GOSUB 12980:GOTO 12440
12590 LPRINT CHR$(12);:GOSUB 12980:GOTO 12440
12610 REM =====  STANDARD ITALICS/EMPHASISED PRINT (EPSON CODE) =====
12620 PT=8:PTC=40:LPRINT CHR$(27)+"@";:LPRINT CHR$(27)+"E";:LPRINT CHR$(27);CHR$(52):PN=1:PL=0:FOR LA=1 TO 5:LPRINT:NEXT:WIDTH"LPT1:",132:PL=5:FOR I=1 TO P:IF A$(I)="END"OR A$(I)="end"THEN 12740
12710 LPRINT TAB(PT)A$(I):PL=PL+1:GOSUB 12030:NEXT
12740 IF LLN$="TRUE"THEN 12760
12750 IF LLN$="FALSE"THEN 12770
12760 FOR PA=1 TO 61-PL:LPRINT:NEXT:LPRINT TAB(PTC)PN;:LPRINT CHR$(12);:GOSUB 12980:GOTO 12610
12770 IF LLK$="STOPPG"THEN GOSUB 12980:GOTO 12610
12780 LPRINT CHR$(12);:GOSUB 12980:GOTO 12610
12800 REM =====  COMPRESSED PRINT -16.5 Char/Inch (EPSON CODE) =====
12810 PT=35:PTC=65:LPRINT CHR$(27)+"@";:LPRINT CHR$(15);:PN=1:PL=0:FOR LA=1 TO 5:LPRINT:NEXT:WIDTH"LPT1:",132:PL=5:FOR I=1 TO P:IF A$(I)="END"OR A$(I)="end"THEN 12920
12890 LPRINT TAB(PT)A$(I):PL=PL+1:GOSUB 12030:NEXT
12920 IF LLN$="TRUE"THEN 12490
12930 IF LLN$="FALSE"THEN 12950
12940 FOR PA=1 TO 61-PL:LPRINT:NEXT:LPRINT TAB(PTC)PN;:LPRINT CHR$(12);:GOSUB 12980
12950 IF LLK$="STOPPG"THEN GOSUB 12980:GOTO 12800
12960 LPRINT CHR$(12);:GOSUB 12980:GOTO 12800
12980 REM =====  OPTION SUBROUTINE IN PRINT SEQUENCE  =====
12990 LPRINT CHR$(27)+"@";:CLS:GOSUB 2190:GOSUB 2330:LOCATE 20,13:PRINT"To REPRINT this Choice     <PRESS> 1";:LOCATE 21,13:PRINT"For a DIFFERENT Choice     <PRESS> 2";:LOCATE 22,13:PRINT"To CONTROL Menu            <PRESS> 3";
13090 GOSUB 3760:GOSUB 4830:FINLEN=1:LOW=49:HIGH=51:GOSUB 6240:NL=1:IF INPRT$=CHR$(13)THEN SOUND 400,3:GOTO 13090
13170 ON VAL(INPTR$)GOTO 13180,11020,3990
13180 RETURN
13190 END
13200 REM =====  QUIT PROGRAM & REINSTATE CURSOR CONTROL =====
13210 LOCATE,,,0,7:DEF SEG:POKE 91,1:POKE 92,25:CLS:END
13260 REM =====  FINAL SCREEN DISPLAY =====
13270 CLS:GOSUB 2120:GOSUB 2980:GOSUB 2330:GOSUB 3730:GOSUB 4830:LOCATE 6,19:COLOR 15:PRINT"Have you SAVED your OLD, NEW, or EDITED File?":LOCATE 8,19:PRINT"Your FILE will be erased from Memory on QUIT!":COLOR 7,0:LOCATE 11,19
13380 PRINT"    Return to CONTROL Menu    <PRESS>   1";:LOCATE 13,19:PRINT"    Run LablFile Program      <PRESS>   2";:LOCATE 15,19:PRINT"    Thanks!  Bye!      QUIT - <PRESS>   3";:LOCATE 21,65,0
13420 FINLEN=1:LOW=49:HIGH=51:GOSUB 6240:IF INTPRT$=CHR$(13)THEN SOUND 400,3:GOTO 13420
13470 ON VAL(INPTR$)GOTO 3990,13500,13200
13480 LOCATE,,,0,7:END
13500 RUN"LABLFILE
13510 REM =====  CLEAR FILE AND RETURN TO CONTROL MENU =====
13520 CLS:LOCATE 10,30:PRINT"FILE CLEARED":FOR TD=1 TO 1000:NEXT:RETURN
13570 END

FILES146.TXT

-------------------------------------------------------------------------
Disk No 146   EasyRite/LabelFile from GINACO                         v3.1
-------------------------------------------------------------------------
------------  EasyRite
ER       EXE  Word processor program (compiled)
DEMOFILE      Sample Word Processor file
EASYRITE BAS  Word processor source code
FACTS         EasyRite instructions
TEXT     ONE  Sample text file - information about EasyRite/LabelFile
TEXT     TWO  Sample text file - information about Blueberry from GINACO
------------  LabelFile
LF       EXE  Label/File program (compiled)
LABLFILE BAS  Source for Label/File program
README        Notes about using programs (short!)
GENLEGER BAS  Basic general ledger program
GL       EXE  A general ledger program
GLEGER   DAT  Data for general ledger
README2       Notes about EASYRITE and LABLFILE

PC-SIG
1030D E Duane Avenue
Sunnyvale Ca. 94086
(408) 730-9291
(c) Copyright 1986,87 PC-SIG

GENLEGER.BAS

60 ' ===== GENERAL ACCOUNTING JOURNAL ENTRY PROGRAM FOR PC/XT/AT (IBM)
70 ' ===== DEVELOPED BY BRUNO LARSEN, GINACO, NOVEMBER 1984
80 ' ===== MODIFIED AND UPDATED JANUARY, 1987.   COPYRIGHT 1987.
90 ' ===== SAVED AS GENLEGER.BAS  TEST FILE TO RETREIVE IS GLEGER.DAT
100 KEY OFF:FOR I=1 TO 10:KEY I,"":NEXT
110 CLS:LOCATE ,,0:WIDTH 80:CLEAR
120 GOTO 180
130 GOSUB 150
140 GOTO 470
150 CLS
160 RETURN
170 ' ===== WORKFILE TO ESTABLISH BASIC JOURNAL ENTRIES FOR BOOKEEPING SYSTEM
180 DEFDBL G,V,T:DEFSTR S:S=CHR$(219):DEFINT I,J:Q$=CHR$(34)
190 ON ERROR GOTO 8660
200 GOSUB 7490
210 GOSUB 240
220 FOR DL = 1 TO 3000:NEXT
230 GOTO 470
240 ' ===== INITIAL LOGO SCREEN BUILDUP
250 WIDTH 80:CLS:COLOR 15:LOCATE,,0
260 PRINT "        ╔═══════════════════════════════════════════════════════════════╗
270 PRINT "        ║                                                               ║
280 PRINT "        ║                                                               ║
290 PRINT "        ║        ▄▄▄▄▄  ▄▄▄▄ ▄▄   ▄ ▄    ▄▄▄▄ ▄▄▄▄▄  ▄▄▄▄ ▄▄▄▄▄         ║
300 PRINT "        ║        █  ▄█  █    ██▄  █ █    █    █  ▄█  █    █   █         ║
310 PRINT "        ║        █  ▄▄▄ █▀▀  █ ▀█▄█ █    █▀▀  █  ▄▄▄ █▀▀  █▀█▀▀         ║
320 PRINT "        ║        █▄▄▄█  █▄▄▄ █   ██ █▄▄▄ █▄▄▄ █▄▄▄█  █▄▄▄ █  ▀▄         ║
330 PRINT "        ║                                                               ║
340 PRINT "        ║        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         ║
350 PRINT "        ║           A Single-entry Expense, Income, & Check             ║
360 PRINT "        ║              Recording System with Multi-format               ║
370 PRINT "        ║                Display, Retrieval and Printout                ║
380 PRINT "        ║                                                               ║
390 PRINT "        ║                        Bruno M. Larsen                        ║
400 PRINT "        ║                                                               ║
410 PRINT "        ║      G I N A C O         Ver 8.715        (C) January 1987    ║
420 PRINT "        ║                                                               ║
430 PRINT "        ╠═══════════════════════════════════════════════════════════════╣
440 PRINT "        ║                      One Moment Please !                      ║
450 PRINT "        ╚═══════════════════════════════════════════════════════════════╝":COLOR 7
460 COLOR 7:RETURN
470 ' ===== START AND INITIALIZE MAIN PROGRAM
480 DIM A$(600),B$(600),C$(600),D$(600),E$(600),F$(600),G$(600),G(600)
490 A$(I)="":B$(I)="":C$(I)="":D$(I)="":E$(I)="":F$(I)="":G$(I)=""
500 I=1:J=0:N1=600:X=0:NF=0:D=0:CN=0:CLN=0
510 GOTO 1280
520 ' ===== DISPLAY MAIN PROGRAM MENU SCREEN BUILDUP
530 CLS:LOCATE ,,0
540 COLOR 15:CLS:LOCATE 3,25:PRINT "GENLEGER -- JOURNAL ENTRY PROGRAM ";
550 PRINT TAB(22)STRING$(39,CHR$(220));
560 PRINT TAB(22);S;TAB(60);S;
570 PRINT TAB(22);S;"   <1> Start New Journal Records";TAB(60);S;
580 PRINT TAB(22);S;"   <2> Load Records from Disk";TAB(60);S;
590 PRINT TAB(22);S;"   <3> Review File Records";TAB(60);S;
600 PRINT TAB(22);S;"   <4> Change Records in File";TAB(60);S;
610 PRINT TAB(22);S;"   <5> Add new records to file"TAB(60);S;
620 PRINT TAB(22);S;"   <6> Save Records on Disk";TAB(60);S;
630 PRINT TAB(22);S;"   <7> Display TOTALS To Date";TAB(60);S;
640 PRINT TAB(22);S;"   <8> PRINT Reports "TAB(60);S;
650 PRINT TAB(22);S;"   <9> FILES in Directory "TAB(60);S
660 PRINT TAB(22);S;"   <0> EXIT Program  "TAB(60);S;
670 PRINT TAB(22);S;TAB(60);S;
680 PRINT TAB(22);STRING$(39,CHR$(223));
690 PRINT:PRINT TAB(31);" <  Your choice  > ";
700 RETURN
710 ' ===== FULL YEAR PRINTOUTS --  SUB MENU SCREEN BUILDUP
720 GOSUB 7490
730 CLS:LOCATE 4,,0
740 COLOR 15:PRINT:PRINT:PRINT TAB(22)STRING$(39,220);
750 PRINT TAB(22);S;TAB(60);S;
760 PRINT TAB(22);S;"          FULL YEAR PRINTOUTS";TAB(60);S;
770 PRINT TAB(22);S;TAB(60);S;
780 PRINT TAB(22);S;"   <1>  Both Income and Expenses";TAB(60);S;
790 PRINT TAB(22);S;"   <2>  Income Only"TAB(60);S;
800 PRINT TAB(22);S;"   <3>  Expenses Only"TAB(60);S;
810 PRINT TAB(22);S;"   <4>  Expense By Code/Category"TAB(60);S;
820 PRINT TAB(22);S;"   <5>  Income By Code/Category"TAB(60);S;
830 PRINT TAB(22);S;"   <6>  Check Ledger to Date"TAB(60);S;
840 PRINT TAB(22);S;"   <7>  Printer Form Feed"TAB(60);S;
850 PRINT TAB(22);S;"   <8>  Monthly Report Menu"TAB(60);S;
860 PRINT TAB(22);S;"   <9>  Exit to Main Menu"TAB(60);S;
870 PRINT TAB(22);S;TAB(60);S;
880 PRINT TAB(22)STRING$(39,223);
890 PRINT:PRINT TAB(31);" < Your Choice > ";
900 LOCATE 20,20
910 RETURN
920 ' ===== MONTH PRINTOUTS  -- SUBMENU SCREEN BUILDUP
930 GOSUB 7490
940 CLS:LOCATE 4,,0
950 COLOR 15:PRINT:PRINT:PRINT TAB(22)STRING$(39,220);
960 PRINT TAB(22);S;TAB(60);S;
970 PRINT TAB(22);S;"          PRINTOUT BY MONTH";TAB(60);S;
980 PRINT TAB(22);S;TAB(60);S;
990 PRINT TAB(22);S;"   <1>  Both Income and Expenses";TAB(60);S;
1000 PRINT TAB(22);S;"   <2>  Income Only"TAB(60);S;
1010 PRINT TAB(22);S;"   <3>  Expenses Only"TAB(60);S;
1020 PRINT TAB(22);S;"   <4>  Expense By Code/Category"TAB(60);S;
1030 PRINT TAB(22);S;"   <5>  Income By Code/Category"TAB(60);S;
1040 PRINT TAB(22);S;"   <6>  Monthly Check Register";TAB(60);S;
1050 PRINT TAB(22);S;"   <7>  Printer Form Feed"TAB(60);S;
1060 PRINT TAB(22);S;"   <8>  Annual Report Menu"TAB(60);S;
1070 PRINT TAB(22);S;"   <9>  Exit to Main Menu"TAB(60);S;
1080 PRINT TAB(22);S;TAB(60);S;
1090 PRINT TAB(22)STRING$(39,223);
1100 PRINT:PRINT TAB(32);" < Your Choice > ";
1110 LOCATE 20,20
1120 RETURN
1130 ' ===== MAIN PRINT MENU SCREEN SETUP
1140 GOSUB 7490
1150 CLS:LOCATE 4,,0
1160 PRINT:PRINT:PRINT:PRINT TAB(22)STRING$(39,220)
1170 PRINT TAB(22);S;TAB(60);S
1180 PRINT TAB(22);S;"   <1> Full Year Printouts";TAB(60);S
1190 PRINT TAB(22);S;TAB(60);S
1200 PRINT TAB(22);S;"   <2> Printout by Month";TAB(60);S
1210 PRINT TAB(22);S;TAB(60);S
1220 PRINT TAB(22);S;"   <3> Exit to Main Menu";TAB(60);S
1230 PRINT TAB(22);S;TAB(60);S
1240 PRINT TAB(22)STRING$(39,223)
1250 PRINT TAB(31)" < Your Choice >"
1260 LOCATE 20,20
1270 RETURN
1280 ' ===== PROTECTED NUMBER SELECT ROUTINE,  MAIN MENU
1290 GOSUB 520
1300  WIDTH 80:LOCATE ,,0
1310  LOW=48
1320  HA=58
1330  FA=1
1340  GOSUB 8040
1350  WIDTH 80:COLOR 7:ON VAL(IA$)GOTO 1370,2720,3210,3370,3750,2970,3810,3970,7970,8320
1360  GOTO 8320
1370 ' ===== CHECK TO SEE IF RECORDS ARE ALREADY IN FILE
1380  IF A$(1)<>"" GOTO 1390 ELSE 1480
1390  CLS:LOCATE 4,10:COLOR 15:PRINT"CAUTION!  The FILE is not EMPTY. Use SELECTION 5 to Add records.":COLOR 7
1400  LOCATE 8,19:PRINT "Press 1 to Erase File and Start New File."
1410  LOCATE 10,19:PRINT" Press 2 to Return to Main Control Menu."
1420  LOW=49
1430  HA=50
1440  FA=1
1450  GOSUB 8040
1460  WIDTH 80:COLOR 7:ON VAL(IA$)GOTO 1470,1290
1470  FOR I=1 TO N1:A$(I)="":B$(I)="":C$(I)="":D$(I)="":E$(I)="":F$(I)="":NEXT
1480  I=1:N1=600
1490  CLS:GOSUB 1530
1500  FOR I=I TO N1:GOSUB 1750
1510 NEXT
1520 GOTO 1290
1530 ' ===== FORMAT FOR INITIAL DATA FILE INPUT ROUTINE
1540 WIDTH 80:LOCATE,,0
1550 COLOR 15:LOCATE 3,5:PRINT"Enter DATA in UPPER CASE only.  Wrong characters will be rejected by tone.":COLOR 7
1560 LOCATE 5,15:PRINT"DATE (MMM,DD): ":LOCATE 5,50:PRINT"■■■-■■
1570 LOCATE 7,15:PRINT"Check # or Income: ":LOCATE 7,50:PRINT"■■■■■■
1580 LOCATE 9,15:PRINT"DESCRIPTION: ":LOCATE 9,50:PRINT"■■■■■■■■■■■■■■■
1590 LOCATE 11,15:PRINT"TO/FROM: ":LOCATE 11,50:PRINT"■■■■■■■■■■■■■■■
1600 LOCATE 13,15:PRINT"ACCOUNT (CODE) #: ":LOCATE 13,50:PRINT"■■■■
1610 LOCATE 15,15:PRINT"I or E: ":LOCATE 15,50:PRINT"■
1620 LOCATE 17,15:PRINT"$ AMOUNT: ":LOCATE 17,50:PRINT"■■■■■■■■■■"
1630 LOCATE  22,1:PRINT WT$:LOCATE 23,1:PRINT WU$
1640 RETURN
1650 ' ===== OUTLINE FOR INITIAL DATA FILE INPUT ROUTINE
1660 LOCATE 5,15:PRINT"DATE (MMM,DD): ":LOCATE 5,70:PRINT SPC(8)
1670 LOCATE 7,15:PRINT"CHECK # or INCOME: ":LOCATE 7,70:PRINT SPC(8)
1680 LOCATE 9,15:PRINT"DESCRIPTION: ":LOCATE 9,70:PRINT SPC(8)
1690 LOCATE 11,15:PRINT"TO/FROM: ":LOCATE 11,70:PRINT SPC(8)
1700 LOCATE 13,15:PRINT"ACCOUNT (CODE) #: ":LOCATE 13,70:PRINT SPC(8)
1710 LOCATE 15,15:PRINT"I or E: ":LOCATE 15,70:PRINT SPC(8)
1720 LOCATE 17,15:PRINT"$ AMOUNT: ":LOCATE 17,70:PRINT SPC(10)
1730 LOCATE  22,1:PRINT WT$:LOCATE 23,1:PRINT WU$
1740 RETURN
1750 ' ===== RECORD 1: MONTH AND DAY
1760 LOCATE 5,4:PRINT I:LOCATE 5,47:PRINT"1.
1770 FA=6:LOW=32:HA=90
1780 COLOR 15:LOCATE 5,50:PRINT"■■■-■■":COLOR 7
1790 LOCATE 5,70:PRINT"<ENTER>
1800 LOCATE 5,50
1810 GOSUB 7240
1820 IF FIN$="" THEN A$(I)=A$(I) ELSE A$(I)=FIN$
1830 GOTO 1900
1840 IF A$(I)="END" THEN N1=I:GOTO 1280
1850 LOCATE 5,50
1860 COLOR 15:PRINT A$(I):COLOR 7
1870 LOCATE 24,2:PRINT SPC(6);:LOCATE 24,2:PRINT I;
1880 LOCATE 24,7:PRINT SPC(8);:LOCATE 24,7:PRINT A$(I);
1890 GOTO 1950
1900 ' ===== INITIAL FILE INPUT MONTH CAPITAL CHECK
1910 MN$=LEFT$(A$(I),3)
1920 IF(MN$="JAN")OR(MN$="FEB")OR(MN$="MAR")OR(MN$="APR")OR(MN$="MAY")OR(MN$="JUN")OR(MN$="JUL")OR(MN$="AUG")OR(MN$="SEP")OR(MN$="OCT")OR(MN$="NOV")OR(MN$="DEC")OR(MN$="END")THEN 1840 ELSE 1930
1930 SOUND 440,4:SOUND 600,4:SOUND 800,4:SOUND 600,4:SOUND 440,4:GOTO 1750
1940 RETURN
1950 ' ===== RECORD 2: CHECK NUMBER OR INCOME
1960 LOCATE 7,47:PRINT"2.
1970 FA=6:LOW=32:HA=90
1980 COLOR 15:LOCATE 7,50:PRINT"■■■■■■":COLOR 7
1990 LOCATE 7,70:PRINT"<ENTER>
2000 LOCATE 7,50
2010 GOSUB 7240
2020 IF FIN$="" THEN B$(I)=B$(I) ELSE B$(I)=FIN$
2030 LOCATE 7,50
2040 COLOR 15:PRINT B$(I):COLOR 7
2050 LOCATE  24,14:PRINT SPC(8);:LOCATE 24,15:PRINT B$(I);
2060 ' ===== RECORD 3: DESCRIPTION
2070 LOCATE 9,47:PRINT"3.
2080 FA=15:LOW=32:HA=90
2090 COLOR 15:LOCATE 9,50:PRINT"■■■■■■■■■■■■■■■":COLOR 7
2100 LOCATE 9,70:PRINT"<ENTER>
2110 LOCATE 9,50
2120 GOSUB 7240
2130 IF FIN$="" THEN C$(I)=C$(I) ELSE C$(I)=FIN$
2140 LOCATE 9,50
2150 COLOR 15:PRINT C$(I):COLOR 7
2160 LOCATE 24,22:PRINT SPC(12);:LOCATE 24,23:PRINT C$(I);
2170 ' ===== RECORD 4: TO/FROM
2180 LOCATE 11,47:PRINT"4.
2190 FA=15:LOW=32:HA=90
2200 COLOR 15:LOCATE 11,50:PRINT"■■■■■■■■■■■■■■■":COLOR 7
2210 LOCATE 11,70:PRINT"<ENTER>
2220 LOCATE 11,50
2230 GOSUB 7240
2240 IF FIN$="" THEN D$(I)=D$(I) ELSE D$(I)=FIN$
2250 LOCATE 11,50
2260 COLOR 15:PRINT D$(I):COLOR 7
2270 LOCATE 24,39:PRINT SPC(12);:LOCATE 24,40:PRINT D$(I);
2280 ' ===== RECORD 5" ACCOUNT OR CODE NUMBER
2290 LOCATE 13,47:PRINT"5.
2300 FA=4:LOW=48:HA=57
2310 COLOR 15:LOCATE 13,50:PRINT"■■■■":COLOR 7
2320 LOCATE 13,70:PRINT"<ENTER>
2330 LOCATE 13,50
2340 GOSUB 7240
2350 IF FIN$="" THEN E$(I)=E$(I) ELSE E$(I)=FIN$
2360 LOCATE 13,50
2370 COLOR 15:PRINT E$(I):COLOR 7
2380 LOCATE 24,56:PRINT SPC(6);:LOCATE 24,57:PRINT E$(I);
2390 ' ===== RECORD 6: EXPENSE OR INCOME (E/I)
2400 LOCATE 15,47:PRINT"6.
2410 FA=1:LOW=69:HA=78
2420 COLOR 15:LOCATE 15,50:PRINT"■":COLOR 7
2430 LOCATE 15,70:PRINT"<ENTER>
2440 LOCATE 15,50
2450 GOSUB 7240
2460 IF FIN$="" THEN F$(I)=F$(I) ELSE F$(I)=FIN$
2470 LOCATE 15,50
2480 COLOR 15:PRINT F$(I):COLOR 7
2490 LOCATE 24,64:PRINT SPC(5);:LOCATE 24,65:PRINT F$(I);
2500 ' ===== RECORD 7: $$ AMOUNT
2510 LOCATE 17,47:PRINT"7.
2520 FA=10:LOW=45:HA=57
2530 COLOR 15:LOCATE 17,50:PRINT"■■■■■■■■■■":COLOR 7
2540 LOCATE 17,70:PRINT"<ENTER>
2550 LOCATE 17,50
2560 GOSUB 7240
2570 IF FIN$="" THEN G$(I)=G$(I) ELSE G$(I)=FIN$
2580 LOCATE 17,50
2590 COLOR 15:PRINT USING "$##,###.##";VAL(G$(I)):COLOR 7
2600 LOCATE 24,67:PRINT SPC(12);:LOCATE 24,68:PRINT USING "$##,###.##";VAL(G$(I));
2610 ' ===== CORRECT QUESTION ON INITIAL INPUT
2620 COLOR 15:LOCATE 19,20:PRINT SPC(50):LOCATE 19,25:PRINT "Is this correct <Y or N>":COLOR 7
2630 GOSUB 8170
2640 IF YN=1 THEN 2690
2650 IF YN=2 THEN 2660
2660 GOSUB 1650:COLOR 15:LOCATE 19,20:PRINT SPC(50);
2670 COLOR 15:LOCATE 19,20:PRINT"Press <ENTER> if the ENTRY is CORRECT.":COLOR 7
2680 GOTO  1760
2690 GOSUB 1530:LOCATE 19,1:PRINT SPC(79);
2700 LOCATE 24,1:PRINT SPC(79);
2710 RETURN
2720 ' ===== LOAD RECORDS FROM DISK
2730 WIDTH 80:LOCATE,,0
2740 GOSUB 150
2750 GOSUB 7490
2760 COLOR 15:PRINT:PRINT:PRINT:PRINT TAB((80-LEN(WW$))*0.5);WW$
2770 PRINT:PRINT TAB((80-LEN(WD$))*0.5);WD$
2780 PRINT:PRINT TAB((80-LEN(WE$))*0.5);WE$
2790 PRINT:PRINT TAB((80-LEN(WF$))*0.5);WF$:COLOR 7
2800 ' ===== PROTECTED NUMBER SELECT ROUTINE, LOAD FROM DISK
2810 COLOR 15:LOW=49
2820 HA=50
2830 FA=1
2840 GOSUB 8040
2850 ON VAL(IA$)GOTO 2860,1280
2860 GOSUB 150:GOSUB 7490:PRINT:PRINT:PRINT:PRINT TAB((80-LEN(WH$))*0.5);WH$
2870 PRINT:PRINT TAB(38)" ";:INPUT FS$
2880 GOSUB 150:PRINT:PRINT:PRINT:PRINT TAB((80-LEN(WY$))*0.5);WY$:COLOR 7:FOR DL=1 TO 1000:NEXT
2890 ' ===== ACTUAL WRITE ROUTINE
2900 OPEN "I",1,FS$
2910 INPUT#1,N1
2920 FOR I=1 TO N1
2930 INPUT#1,A$(I),B$(I),C$(I),D$(I),E$(I),F$(I),G$(I)
2940 IF EOF(1)THEN CLOSE:GOTO 9000
2950 IF(A$(I)="end"OR A$(I)="END")THEN CLOSE
2960 NEXT
2970 ' ===== SAVE DATA FILE ON DISK
2980 GOSUB 150:GOSUB 7490
2990 IF A$(1)=""THEN 7190
3000 GOSUB 150:GOSUB 7490:PRINT:PRINT:PRINT:PRINT TAB((80-LEN(WW$))*0.5);WW$
3010 COLOR 15:PRINT:PRINT TAB((80-LEN(WC$))*0.5);WC$:PRINT
3020 PRINT TAB((80-LEN(WE$))*0.5);WE$:PRINT:PRINT TAB((80-LEN(WF$))*0.5);WF$
3030 ' ===== PROTECTED NUMBER SELECT ROUTINE, SAVE TO DISK
3040 LOW=48
3050 HA=58
3060 FA=1
3070 GOSUB 8040
3080 ON VAL(IA$)GOTO 3090,1290
3090 GOSUB 150:GOSUB 7490:PRINT:PRINT:PRINT TAB(30)" ";WH$:PRINT:PRINT TAB(38);:INPUT FS$:COLOR 7
3100 OPEN "O",1,FS$
3110 GOSUB 150:GOSUB 7490
3120 PRINT TAB((80-LEN(WB$)) *0.5);WB$
3130 WRITE#1,N1
3140 FOR I=1 TO N1:WRITE#1,A$(I),B$(I),C$(I),D$(I),E$(I),F$(I),G$(I)
3150 IF(A$(I)="END")OR(A$(I)="end")THEN CLOSE:GOTO 3180
3160 NEXT
3170 GOTO 1290
3180 GOSUB 150:GOSUB 7490
3190 PRINT:PRINT:PRINT:PRINT TAB((80-LEN(WZ$))*0.5);WZ$:FOR DL=1 TO 10000:NEXT
3200 GOTO 1290
3210 ' ===== REVIEW OLD FILES
3220 IF A$(1)=""THEN 7190
3230 GOSUB 7410
3240 NF=1
3250 FOR I=1 TO N1
3260 PRINT TAB(2);I;TAB(7);A$(I);TAB(15);B$(I);TAB(23);C$(I);TAB(40);D$(I);
3270 PRINT TAB(57);E$(I);TAB(65);F$(I);
3280 PRINT TAB(68);USING "$##,###.##";VAL(G$(I))
3290 NF=NF+1
3300 IF A$(I)="END"OR A$(I)="end"THEN 3350
3310 IF NF=20 THEN NF=1
3320 IF NF=1 THEN PRINT TAB((80-LEN(XC$))*0.5);WG$
3330 IF NF=1 THEN PRINT:GOSUB 8250:GOSUB 7410
3340 NEXT
3350 PRINT:PRINT TAB((80-LEN(XC$))*0.5);WG$
3360 GOSUB 8250:GOTO 1290
3370 ' ===== CHANGE A RECORD
3380 IF A$(1)=""THEN 7190
3390 GOSUB 150:GOSUB 7490
3400 COLOR 15:PRINT:PRINT TAB((80-LEN(XD$))*0.5)XD$
3410 PRINT:PRINT TAB(30)" ";:INPUT RN:COLOR 7
3420 IF RN > N1 THEN GOTO 3430 ELSE 3450
3430 SOUND 600,4:SOUND 800,4:SOUND 600,4
3440 PRINT TAB(21) "There are only ";N1;"records in the file.":GOTO 3400
3450 GOSUB 150:GOSUB 7410:GOSUB 3460:GOTO 3500
3460 COLOR 15:PRINT TAB(2);RN;TAB(7);A$(RN);TAB(15);B$(RN);TAB(23);C$(RN);TAB(40);D$(RN);
3470 PRINT TAB(57);E$(RN);TAB(65);F$(RN);
3480 PRINT TAB(68);USING "$##,###.##";VAL(G$(RN));
3490 RETURN
3500 PRINT:PRINT:PRINT TAB((80-LEN(XE$))*0.5);XE$
3510 PRINT
3520 PRINT:PRINT TAB((80-LEN(WE$))*0.5);WE$
3530 PRINT:PRINT TAB((80-LEN(WF$))*0.5);WF$
3540 PRINT:PRINT TAB((80-LEN(XC$))*0.5);XC$:COLOR 7
3550 ' ===== PROTECTED NUMBER SELECT ROUTINE,  CHANGE A RECORD
3560 LOW=49
3570 HA=51
3580 FA=1
3590 GOSUB 8040
3600 ON VAL(IA$)GOTO 3610,3730,3390
3610 CLS:GOSUB 1530
3620 LOCATE  22,1:PRINT WT$:LOCATE 23,1:PRINT WU$
3630 LOCATE 24,1:PRINT TAB(2);RN;TAB(7);A$(RN);TAB(15);B$(RN);TAB(23);C$(RN);
3640 PRINT TAB(40);D$(RN);TAB(58);E$(RN);TAB(65);F$(RN);TAB(68);USING"$##,###.##";VAL(G$(RN));
3650 LOCATE 5,4:PRINT RN:LOCATE 5,47:PRINT"1":LOCATE 5,50:PRINT A$(RN)
3660 LOCATE 7,47:PRINT "2.":LOCATE 7,50:PRINT B$(RN)
3670 LOCATE 9,47:PRINT "3.":LOCATE 9,50:PRINT C$(RN)
3680 LOCATE 11,47:PRINT "4.":LOCATE 11,50:PRINT D$(RN)
3690 LOCATE 13,47:PRINT "5.":LOCATE 13,50:PRINT E$(RN)
3700 LOCATE 15,47:PRINT "6.":LOCATE 15,50:PRINT F$(RN)
3710 LOCATE 17,47:PRINT "7.":LOCATE 17,50:PRINT USING "$##,###.##";VAL(G$(RN))
3720 I=RN:GOSUB 2610
3730 CLS:GOTO 1290
3740 END
3750 ' ===== ADD NEW RECORDS TO RECALLED FILE
3760 IF A$(N1-1)=""THEN 7190
3770 I=N1
3780 N1=600
3790 CLS:GOSUB 1530
3800 GOTO 1500
3810 ' ===== DISPLAY FILE TOTALS TO DATE
3820 GOSUB 150:GOSUB 7490
3830 IF A$(N1-1)=""THEN 7190
3840 G=0:TE=0:TI=0
3850 FOR I=1 TO N1:G(I)=VAL(G$(I)):IF F$(I)="I"THEN TI=TI+G(I)
3860 LOCATE 13,1:PRINT USING "$##,###.##";G(I)
3870 LOCATE 13,65:PRINT USING "$##,###.##";TI:NEXT
3880 ET=0:FOR I=1 TO N1:IF F$(I)="E"THEN TE=TE+G(I)
3890 LOCATE 14,1:PRINT USING "$##,###.##";G(I)
3900 LOCATE 14,65:PRINT USING "$##,###.##";TE:NEXT
3910 PL=0:PL=TI-TE
3920 LOCATE 4,20:PRINT "Total Income through   ";N1;"is: ";USING "$##,###.##";TI
3930 LOCATE 6,20:PRINT "Total Expense through  ";N1;"is: ";USING "$##,###.##";TE
3940 LOCATE 8,53:PRINT "~~~~~~~~~~~~
3950 LOCATE 10,20:PRINT "P or L Balance through ";N1;"is: ";USING "$##,###.##";PL:COLOR 7
3960 PRINT:LOCATE 18,29:PRINT WG$:GOSUB 8250:GOTO 1290
3970 ' ===== REPORT PRINT ROUTINES MAIN MENU EXECUTE
3980 LPRINT CHR$(27);CHR$(78);CHR$(10);
3990 COLOR 15:GOSUB 7490:LOCATE ,,0
4000 IF A$(N1-1)=""THEN 7190
4010 GOSUB 1130
4020 LOW=49
4030 HA=51
4040 FA=1
4050 GOSUB 8040
4060 LOCATE 20,20,0
4070 COLOR 7:ON VAL(IA$)GOTO 4080,4160,1290
4080 ' ===== FULL YEAR PRINTOUTS --  SUB MENU RESPONSES
4090 COLOR 15:GOSUB 710:LOCATE ,,0
4100 LOW=49
4110 HA=57
4120 FA=1
4130 GOSUB 8040
4140 LOCATE 20,20,0
4150 COLOR 7:ON VAL(IA$)GOTO 4240,4470,4640,4800,4980,6650,7160,4170,1290
4160 ' ===== MONTH PRINTOUTS  -- SUBMENU  RESPONSE
4170 COLOR 15:GOSUB 920:LOCATE ,,0
4180 LOW=49
4190 HA=57
4200 FA=1
4210 GOSUB 8040
4220 LOCATE 20,20,0
4230 COLOR 7:ON VAL(IA$)GOTO 5280,5550,5720,5890,6080,6820,7130,4090,1290
4240 ' ===== FULL YEAR PRINTOUT BOTH I & E
4250 I=1:LN=0:GOSUB 150:GOSUB 7490
4260 LPRINT TAB(((80-LEN(XF$))*0.5)-6);XF$;" ";RIGHT$(DATE$,4);
4270 LPRINT TAB(((80-LEN(XG$))*0.5)-5);XG$:LPRINT;
4280 LPRINT;:LPRINT;:LPRINT WT$;:LPRINT WU$;:LPRINT;:LN=5:I=1
4290 TE=0:TI=0:TI=0:PL=0:G=0
4300 FOR I=I TO N1:G(I)=VAL(G$(I))
4310 LPRINT TAB(2);I;TAB(7);A$(I);TAB(15);B$(I);TAB(23);C$(I);TAB(40);D$(I);
4320 LPRINT TAB(57);E$(I);TAB(65);F$(I);
4330 LPRINT TAB(68);USING "$##,###.##";G(I);
4340 LN=LN+1
4350 IF F$(I)="I"THEN TI=TI+G(I)
4360 IF F$(I)="E"THEN TE=TE+G(I)
4370 LOCATE 10,1:PRINT USING "$##,###.##";TI:LOCATE 10,65:PRINT USING "$##,###.##";G(I);
4380 LOCATE 12,1:PRINT USING "$##,###.##";TE:LOCATE 12,65:PRINT USING "$##,###.##";G(I);
4390 IF LN=>55 THEN LPRINT CHR$(12);:LPRINT WT$;:LPRINT WU$;:LPRINT;:LN=5
4400 NEXT
4410 PL=0:PL=TI-TE
4420 LPRINT:LPRINT TAB(20);"Total Income through   ";N1-1;"is: ";USING "$###,###.##";TI;
4430 LPRINT:LPRINT TAB(20);"Total Expense through  ";N1-1;"is: ";USING "$###,###.##";TE;
4440 LPRINT:LPRINT TAB(53);"~~~~~~~~~~~
4450 LPRINT TAB(20)"P or L Balance through ";N1-1;"is: ";USING "$###,###.##";PL
4460 LPRINT CHR$(12);:GOTO 4080
4470 ' ===== FULL YEAR PRINTOUT -- INCOME ONLY
4480 I=1:LN=0:G=0:GOSUB 150:GOSUB 7490
4490 LPRINT TAB(((80-LEN(XJ$))*0.5)-6);XJ$;" ";RIGHT$(DATE$,4)
4500 LPRINT TAB(((80-LEN(XK$))*0.5)-6);XK$:LPRINT
4510 LPRINT;:LPRINT;:LPRINT WT$;:LPRINT WU$:LPRINT;:LN=5:I=1:V=0
4520 FOR I=I TO N1:IF F$(I)="I"THEN 4530 ELSE 4600
4530 LPRINT TAB(2);I;TAB(7);A$(I);TAB(15);B$(I);TAB(23);C$(I);TAB(40);D$(I);
4540 LPRINT TAB(57);E$(I);TAB(65);F$(I);
4550 LPRINT TAB(68);USING "$##,###.##";G(I);
4560 LN=LN+1:V=V+G(I)
4570 LOCATE 13,1:PRINT USING "$##,###.##";G(I);
4580 LOCATE 13,65:PRINT USING "$##,###.##";V;
4590 IF LN=>55 THEN LPRINT CHR$(12);:LPRINT WT$;:LPRINT WU$;:LPRINT;:LN=5
4600 NEXT
4610 LPRINT TAB(67)"______________";:LPRINT TAB(68);USING "$##,###.##";V;
4620 LPRINT CHR$(12);
4630 GOTO 4080
4640 ' ===== FULL YEAR PRINTOUT BY EXPENSE ONLY
4650 I=1:LN=0:G=0:GOSUB 150:GOSUB 7490
4660 LPRINT TAB(((80-LEN(XH$))*0.5)-6);XH$;" ";RIGHT$(DATE$,4);
4670 LPRINT TAB(((80-LEN(XI$))*0.5)-7);XI$;
4680 LPRINT;:LPRINT;:LPRINT WT$;:LPRINT WU$:LPRINT;:LN=5:I=1:V=0
4690 FOR I=I TO N1:G(I)=VAL(G$(I)):IF F$(I)="E"THEN 4700 ELSE 4770
4700 LPRINT TAB(2);I;TAB(7);A$(I);TAB(15);B$(I);TAB(23);C$(I);TAB(40);D$(I);
4710 LPRINT TAB(57);E$(I);TAB(65);F$(I);
4720 LPRINT TAB(68);USING "$##,###.##";G(I);
4730 LN=LN+1:V=V+G(I)
4740 LOCATE 13,1:PRINT USING "$##,###.##";G(I);
4750 LOCATE 13,65:PRINT USING "$##,###.##";V;
4760 IF LN=>55 THEN LPRINT CHR$(12);:LPRINT WT$;:LPRINT WU$;:LPRINT;:LN=5
4770 NEXT
4780 LPRINT TAB(67)"______________";:LPRINT TAB(68);USING "$##,###.##";V;
4790 LPRINT CHR$(12);:GOTO 4080
4800 ' ===== FULL YEAR PRINTOUT BY EXPENSE CODE NUMBER
4810 I=1:LN=0:G=0:GOSUB 150:GOSUB 7490
4820 GOSUB 6410
4830 CN=0:GOSUB 7010
4840 IF CN=0 THEN 4080
4850 LPRINT TAB(((80-LEN(XR$))*0.5)-6);(XR$);" ";RIGHT$(DATE$,4);" # ";CN
4860 LPRINT TAB(((80-LEN(XS$))*0.5)-6);(XS$)
4870 LPRINT;:LPRINT;:LPRINT WT$;:LPRINT WU$:LPRINT;:LN=5:I=1:V=0
4880 FOR I=I TO N1:G(I)=VAL(G$(I)):IF VAL(E$(I))=CN AND F$(I)="E" THEN 4890 ELSE 4940
4890 LPRINT TAB(2);I;TAB(7);A$(I);TAB(15);B$(I);TAB(23);C$(I);TAB(40);D$(I);
4900 LPRINT TAB(57);E$(I);TAB(65);F$(I);
4910 LPRINT TAB(68);USING "$##,###.##";G(I);
4920 LN=LN+1:V=V+G(I)
4930 IF LN=>55 THEN LPRINT CHR$(12);:LPRINT WT$;:LPRINT WU$;:LPRINT;:LN=5
4940 NEXT
4950 LPRINT TAB(67)"______________";:LPRINT TAB(68);USING "$##,###.##";V;
4960 LPRINT;:LPRINT;
4970 GOTO 4080
4980 ' ===== FULL YEAR PRINTOUT BY INCOME CODE NUMBERR
4990 I=1:LN=0:G=0:GOSUB 150:GOSUB 7490
5000 GOSUB 6270
5010 CN=0:GOSUB 7010
5020 IF CN=0 GOTO 4080
5030 LPRINT TAB(((80-LEN(XV$))*0.5)-6);(XV$);" ";RIGHT$(DATE$,4);" # ";CN
5040 LPRINT TAB(((80-LEN(XW$))*0.5)-6);(XW$)
5050 LPRINT:LPRINT:LPRINT WT$;:LPRINT WU$:LPRINT;:LN=5:I=1:V=0
5060 FOR I=I TO N1:G(I)=VAL(G$(I)):IF VAL(E$(I))=CN AND F$(I)="I" THEN 5070 ELSE 5120
5070 LPRINT TAB(2);I;TAB(7);A$(I);TAB(15);B$(I);TAB(23);C$(I);TAB(40);D$(I);
5080 LPRINT TAB(57);E$(I);TAB(65);F$(I);
5090 LPRINT TAB(68);USING "$##,###.##";G(I);
5100 LN=LN+1:V=V+G(I)
5110 IF LN=>55 THEN LPRINT CHR$(12);:LPRINT WT$;:LPRINT WU$;:LPRINT;:LN=5
5120 NEXT
5130 LPRINT TAB(67)"______________";:LPRINT TAB(68);USING "$##,###.##";V
5140 LPRINT;:LPRINT;:LPRINT;
5150 GOTO 4080
5160 ' ===== ESTABLISH MONTH FOR REPORT
5170 I=1:CN=0:MN$="":LOCATE 2,25:PRINT SPC(35);
5180 CLS:COLOR 15:LOCATE 3,25:PRINT"WHAT MONTH (3 CAPITAL LETTERS): ";:COLOR 7
5190 LOCATE 5,28:PRINT" (ENTER ";CHR$(34);"END";CHR$(34);" FOR MENU.)"
5200 LOCATE 7,38
5210 FA=3:LOW=65:HA=90
5220 GOSUB 7240
5230 MN$=FIN$
5240 IF(MN$="JAN")OR(MN$="FEB")OR(MN$="MAR")OR(MN$="APR")OR(MN$="MAY")OR(MN$="JUN")OR(MN$="JUL")OR(MN$="AUG")OR(MN$="SEP")OR(MN$="OCT")OR(MN$="NOV")OR(MN$="DEC")OR(MN$="END")THEN 5250 ELSE 5270
5250 IF MN$="END" THEN MN$=""
5260 RETURN
5270 SOUND 440,4:SOUND 600,4:LOCATE 5,27:COLOR 31:PRINT"MONTH WAS SPELLED INCORRECTLY":COLOR 7:GOSUB 7460:GOSUB 8250:GOTO 5170
5280 ' ===== MONTH PRINTOUT, BOTH I & E
5290 GOSUB 150:GOSUB 7490
5300 I=1:LN=0:CN=0:G=0:MN$="":GOSUB 5160
5310 IF MN$="" THEN 4160
5320 LPRINT TAB(((80-LEN(XP$))*0.5)-6);XP$;" ";MN$;" ";RIGHT$(DATE$,4);
5330 LPRINT TAB(((80-LEN(XQ$))*0.5)-7);XQ$:LPRINT;
5340 LPRINT;:LPRINT;:LPRINT WT$;:LPRINT WU$;:LPRINT;:LN=5:I=1
5350 TI=0:TE=0:PL=0
5360 FOR I=I TO N1:G(I)=VAL(G$(I))
5370 IF LEFT$(A$(I),3)=MN$ THEN 5380 ELSE 5470
5380 LPRINT TAB(2);I;TAB(7);A$(I);TAB(15);B$(I);TAB(23);C$(I);TAB(40);D$(I);
5390 LPRINT TAB(57);E$(I);TAB(65);F$(I);
5400 LPRINT TAB(68);USING "$##,###.##";G(I);
5410 LN=LN+1
5420 IF LEFT$(A$(I),3)=MN$ AND F$(I)="I" THEN TI=TI+G(I)
5430 IF LEFT$(A$(I),3)=MN$ AND F$(I)="E" THEN TE=TE+G(I)
5440 IF LN=>55 THEN LPRINT CHR$(12);:LPRINT WT$;:LPRINT WU$;:LPRINT;:LN=5
5450 LOCATE 10,1:PRINT USING "$##,###.##";TI:LOCATE 10,65:PRINT USING "$##,###.##";G(I);
5460 LOCATE 12,1:PRINT USING "$##,###.##";TE:LOCATE 12,65:PRINT USING "$##,###.##";G(I);
5470 NEXT
5480 PL=0:PL=TI-TE
5490 LPRINT:LPRINT:LPRINT TAB(11);"Total Income for month through  ";N1-1;"is: ";USING "$##,###.##";TI;
5500 LPRINT:LPRINT TAB(11);"Total Expense for month through ";N1-1;"is: ";USING "$##,###.##";TE;
5510 LPRINT:LPRINT TAB(53);"~~~~~~~~~~~~~"
5520 LPRINT TAB(20)"P or L Balance through ";N1-1;"is: ";USING "$##,###.##";PL;
5530 LPRINT:LPRINT:LPRINT;
5540 GOTO 4160
5550 ' ===== MONTH PRINTOUT -- INCOME ONLY
5560 G=0:I=1:LN=0:GOSUB 150:GOSUB 7490
5570 COLOR 15:CN=0:GOSUB 5160
5580 IF MN$="" THEN 4160
5590 LPRINT TAB(((80-LEN(XN$))*0.5)-6);XN$;" ";MN$;" ";RIGHT$(DATE$,4);
5600 LPRINT TAB(((80-LEN(XO$))*0.5)-6);XO$;:LPRINT;
5610 LPRINT;:LPRINT;:LPRINT WT$;:LPRINT WU$;:LPRINT;:LN=5:I=1:V=0
5620 FOR I =I TO N1:IF LEFT$(A$(I),3)=MN$ AND F$(I)="I" THEN 5630 ELSE 5680
5630 G(I)=VAL(G$(I)):LPRINT TAB(2);I;TAB(7);A$(I);TAB(15);B$(I);TAB(23);C$(I);TAB(40);D$(I);
5640 LPRINT TAB(57);E$(I);TAB(65);F$(I);
5650 LPRINT TAB(68);USING "$##,###.##";G(I);
5660 LN=LN+1:V=V+G(I)
5670 IF LN=>55 THEN LPRINT CHR$(12);:LPRINT WT$;:LPRINT WU$;:LPRINT;:LN=5
5680 NEXT
5690 LPRINT TAB(67)"______________";:LPRINT TAB(68);USING "$##,###.##";V;
5700 LPRINT:LPRINT:LPRINT;
5710 GOTO 4160
5720 ' ===== MONTH PRINTOUT BY EXPENSE ONLY
5730 LN=0:G=0:GOSUB 150:GOSUB 7490
5740 COLOR 15:CN=0:MN$="":GOSUB 5160
5750 IF MN$="" THEN 4160
5760 LPRINT TAB(((80-LEN(XL$))*0.5)-6);XL$;" ";MN$;" ";RIGHT$(DATE$,4);
5770 LPRINT TAB(((80-LEN(XM$))*0.5)-6);XM$;
5780 LPRINT;:LPRINT;:LPRINT WT$;:LPRINT WU$:LPRINT;:LN=5:I=1:V=0
5790 FOR I=I TO N1:G(I)=VAL(G$(I)):IF LEFT$(A$(I),3)=MN$ AND F$(I)="E" THEN 5800 ELSE 5850
5800 LPRINT TAB(2);I;TAB(7);A$(I);TAB(15);B$(I);TAB(23);C$(I);TAB(40);D$(I);
5810 LPRINT TAB(57);E$(I);TAB(65);F$(I);
5820 LPRINT TAB(68);USING "$##,###.##";G(I);
5830 LN=LN+1:V=V+G(I)
5840 IF LN=>55 THEN LPRINT CHR$(12);:LPRINT WT$;:LPRINT WU$;:LPRINT;:LN=5
5850 NEXT
5860 LPRINT TAB(67)"______________";:LPRINT TAB(68);USING "$##,###.##";V
5870 LPRINT:LPRINT:LPRINT;
5880 GOTO 4160
5890 ' ===== MONTH PRINTOUT BY EXPENSE CODE NUMBER
5900 LN=0:G=0:GOSUB 150:GOSUB 7490
5910 CN=0:COLOR 15:GOSUB 5160
5920 IF MN$=""THEN 4160 ELSE 5930
5930 GOSUB 6480:GOSUB 7010:COLOR 7
5940 IF CN=0 THEN 4160 ELSE 5950
5950 LPRINT TAB(((80-LEN(XT$))*0.5)-6);(XT$);" ";MN$;" ";RIGHT$(DATE$,4);" # ";CN;
5960 LPRINT TAB(((80-LEN(XU$))*0.5)-6);(XU$);
5970 LPRINT:LPRINT:LPRINT WT$;:LPRINT WU$:LPRINT;:LN=5:I=1:V=0
5980 FOR I=I TO N1:G(I)=VAL(G$(I)):IF VAL(E$(I))=CN AND F$(I)="E" AND LEFT$(A$(I),3)=MN$ THEN 5990 ELSE 6040
5990 LPRINT TAB(2);I;TAB(7);A$(I);TAB(15);B$(I);TAB(23);C$(I);TAB(40);D$(I);
6000 LPRINT TAB(57);E$(I);TAB(65);F$(I);
6010 LPRINT TAB(68);USING "$##,###.##";G(I);
6020 LN=LN+1:V=V+G(I)
6030 IF LN=>55 THEN LPRINT CHR$(12);:LPRINT WT$;:LPRINT WU$;:LPRINT;:LN=5
6040 NEXT
6050 LPRINT TAB(67)"______________";:LPRINT TAB(68);USING "$##,###.##";V;
6060 LPRINT:LPRINT:LPRINT;
6070 GOTO 4160
6080 ' ===== MONTH PRINTOUT BY INCOME CODE NUMBER
6090 LN=0:G=0:GOSUB 150:GOSUB 7490
6100 CN=0:COLOR 15:GOSUB 5160
6110 IF MN$="" THEN 4160 ELSE 6120
6120 GOSUB 6340:GOSUB 7010:COLOR 7
6130 IF CN=0 THEN 4160 ELSE 6150
6140 LPRINT TAB(((80-LEN(ZR$))*0.5)-6);(ZR$);" ";MN$;" ";RIGHT$(DATE$,4);" #";CN;
6150 LPRINT TAB(((80-LEN(ZS$))*0.5)-6);(ZS$);
6160 LPRINT;:LPRINT;:LPRINT WT$;:LPRINT WU$:LPRINT;:LN=5:I=1:V=0
6170 FOR I=I TO N1:G(I)=VAL(G$(I)):IF VAL(E$(I))=CN AND F$(I)="I" AND LEFT$(A$(I),3)=MN$ THEN 6180 ELSE 6230
6180 LPRINT TAB(2);I;TAB(7);A$(I);TAB(15);B$(I);TAB(23);C$(I);TAB(40);D$(I);
6190 LPRINT TAB(57);E$(I);TAB(65);F$(I);
6200 LPRINT TAB(68);USING "$##,###.##";G(I);
6210 LN=LN+1:V=V+G(I)
6220 IF LN=>55 THEN LPRINT CHR$(12);:LPRINT WT$;:LPRINT WU$;:LPRINT;:LN=5
6230 NEXT
6240 LPRINT TAB(67)"_____________";:LPRINT TAB(68);USING "$##,###.##";V;
6250 LPRINT:LPRINT:LPRINT;
6260 GOTO 4160
6270 ' ===== INCOME CODES IN USE IN CURRENT FULL=YEAR FILE
6280 CLS:LOCATE 10,5:PRINT"The following INCOME-CODE numbers are used in ";FS$;
6290 I=1:PRINT:FOR I=I TO N1: IF LEFT$(F$(I),1)="I" THEN 6300 ELSE 6310
6300 PRINT VAL(E$(I));
6310 NEXT
6320 LOCATE 20,17:PRINT ZH$;
6330 RETURN
6340 ' ===== INCOME CODES IN USE IN CURRENT FILE FOR MONTH SELECTED
6350 I=1:LOCATE 10,5:PRINT"The following INCOME-CODE numbers are used in ";FS$;" for ";MN$
6360 PRINT:FOR I=I TO N1: IF LEFT$(F$(I),1)="I" AND LEFT$(A$(I),3)=MN$ THEN 6370 ELSE 6380
6370 PRINT VAL(E$(I));
6380 NEXT
6390 LOCATE 20,17:PRINT ZH$;
6400 RETURN
6410 ' ===== EXPENSE CODES IN USE IN CURRENT FULL-YEAR FILE
6420 CLS:LOCATE 10,7:PRINT"The following EXPENSE-CODE Numbers are used in ";FS$
6430 PRINT:FOR I=1 TO N1:IF LEFT$(F$(I),1)="E"THEN 6440 ELSE 6450
6440 PRINT VAL(E$(I));
6450 NEXT
6460 LOCATE 20,16:PRINT ZH$;
6470 RETURN
6480 ' ===== EXPENSE CODES IN USE IN CURRENT FILE FOR THE MONTH SELECTED
6490 I=1:CLS:LOCATE 10,7:PRINT"The following EXPENSE-CODE Numbers are used in ";FS$;" for ";MN$
6500 PRINT:FOR I=I TO N1:IF LEFT$(F$(I),1)="E" AND LEFT$(A$(I),3)=MN$ THEN 6510 ELSE 6520
6510 PRINT VAL(E$(I));
6520 NEXT
6530 LOCATE 20,17:PRINT ZH$;
6540 RETURN
6550 ' ===== ESTABLISH CHECK NUMBER FOR REGISTER REPORT
6560 CN=0:CLN=0
6570 CLS:COLOR 15:LOCATE 3,25:PRINT"STARTING CHECK NUMBER: ";:COLOR 7
6580 LOCATE 5,24:PRINT" (ENTER ";CHR$(34);"999";CHR$(34);" FOR MENU)"
6590 FA=4:LOW=48:HA=57
6600 LOCATE 7,34
6610 GOSUB 8040
6620 CLN=VAL(FIN$)
6630 IF CLN=999 THEN CLN=0
6640 RETURN
6650 ' ===== YEARLY CHECK REGISTER TO DATE FROM SPECIFIED NUMBER
6660 CLS:GOSUB 7490
6670 CN=0:CLN=0:LN=0:V=0:G(I)=0:GOSUB 6550
6680 IF CLN=0 THEN 4080 ELSE 6710
6690 LPRINT TAB(((80-LEN(XF$))*0.5)-6);(XZ$);RIGHT$(DATE$,4);" From Check # ";CLN;
6700 LPRINT TAB(((80-LEN(XF$))*0.5)-6);(ZA$);
6710 LPRINT:LPRINT:LPRINT;WT$:LPRINT WU$:LN=9:I=1:V=0
6720 FOR I=1 TO N1:G(I)=VAL(G$(I)):IF VAL(B$(I))>CLN THEN 6730 ELSE 6780
6730 LPRINT TAB(2);I;TAB(7);A$(I);TAB(15);B$(I);TAB(23);C$(I);TAB(40);D$(I);
6740 LPRINT TAB(57);E$(I);TAB(65);F$(I);
6750 LPRINT TAB(68);USING "$##,###.##";G(I);
6760 LN=LN+1:V=V+G(I)
6770 IF LN=>55 THEN LPRINT CHR$(12);:LPRINT WT$;:LPRINT WU$;:LPRINT;:LN=5
6780 NEXT
6790 LPRINT TAB(67);"______________";:LPRINT TAB(68);USING "$##,###.##";V;
6800 LPRINT CHR$(12);
6810 GOTO 4080
6820 ' ===== MONTHLY CHECK REGISTER TO DATE FROM SPECIFIED NUMBER
6830 CLS:GOSUB 7490
6840 CN=0:MN$="":GOSUB 5160
6850 IF MN$="" THEN 4160 ELSE 6860
6860 CN=0:CLN=0:LN=0:V=0:G(I)=0:GOSUB 6550
6870 IF CLN=0 THEN 4160 ELSE 6880
6880 LPRINT TAB(((80-LEN(ZB$))*0.5)-10);(ZB$);" ";MN$;" ";RIGHT$(DATE$,4);" From Check # ";CLN;
6890 LPRINT TAB(((80-LEN(ZC$))*0.5)-10);(ZC$);
6900 LPRINT:LPRINT:LPRINT;WT$;:LPRINT WU$;:LN=9:I=1:V=0
6910 FOR I=1 TO N1:G(I)=VAL(G$(I)):IF VAL(B$(I))>CLN AND LEFT$(A$(I),3)=MN$ THEN 6920 ELSE 6970
6920 LPRINT TAB(2);I;TAB(7);A$(I);TAB(15);B$(I);TAB(23);C$(I);TAB(40);D$(I);
6930 LPRINT TAB(57);E$(I);TAB(65);F$(I);
6940 LPRINT TAB(68);USING "$##,###.##";G(I);
6950 LN=LN+1:V=V+G(I)
6960 IF LN=>55 THEN LPRINT CHR$(12);:LPRINT WT$;:LPRINT WU$;:LPRINT;:LN=5
6970 NEXT
6980 LPRINT TAB(67)"______________";:LPRINT TAB(68);USING "$##,###.##";V;
6990 LPRINT:LPRINT:GOTO 4160
7000 END
7010 ' ===== ESTABLISH CATEGORY/CODE NUMBER FOR REPORT
7020 CN=0:WIDTH 80:LOCATE,,0
7030 COLOR 15:LOCATE 2,25:PRINT"WHAT CATEGORY/CODE NUMBER: ";:COLOR 7
7040 FA=4:LOW=48:HA=57
7050 LOCATE 4,26:PRINT" (ENTER ";CHR$(34);"999";CHR$(34);" FOR MENU)"
7060 LOCATE 6,37
7070 GOSUB 7240
7080 CN=VAL(FIN$)
7090 IF CN=999 THEN CN=0
7100 RETURN
7110 END
7120 ' ===== TOP OF FORM COMMANDS FOR PRINTOUTS
7130 LPRINT CHR$(12);
7140 GOTO 4160
7150 END
7160 LPRINT CHR$(12);
7170 GOTO 4080
7180 END
7190 ' ===== EMPTY FILE CHECK
7200 GOSUB 150:WIDTH 80:LOCATE,,0
7210 COLOR 15:LOCATE 10,30:PRINT"NO RECORDS IN FILE ":COLOR 7
7220 FOR I= 1 TO 2000:NEXT
7230 GOTO 1290
7240 ' ===== FULL NUMBER AND LETTER PROTECTED INPUT ROUTINE
7250 FIN$="
7260 IF FA=0 THEN FA=255
7270 IF INKEY$><""THEN 7270
7280 IA$=INKEY$
7290 IF IA$=""THEN 7280
7300 IF IA$=CHR$(13)THEN RETURN
7310 IF IA$<>CHR$(8)THEN 7360
7320 IF FIN$=""THEN SOUND 600,4:GOTO 7280
7330 PRINT CHR$(29);"■";CHR$(29);
7340 FIN$=LEFT$((FIN$),LEN(FIN$)-1)
7350 GOTO 7280
7360 IF LEN(FIN$)=FA THEN SOUND 600,4:GOTO 7280
7370 IF(ASC(IA$)<LOW OR ASC(IA$)>HA)THEN SOUND 400,4:GOTO 7280
7380 PRINT IA$;
7390 FIN$=FIN$+IA$
7400 GOTO 7280
7410 ' ===== HEADING ROUTINE FOR PRINTOUT
7420 GOSUB 150:WIDTH 80:LOCATE,,0
7430 PRINT WT$;
7440 PRINT WU$;
7450 RETURN
7460 ' ===== PRESS <ENTER> TO CONTINUE HEADING ROUTINE
7470 PRINT TAB(28);WG$;
7480 RETURN
7490 ' ===== PRINT AND LPRINT HEADING AND TEXT INITIALIZATION
7500 ESC$=CHR$(27)
7510 WW$="W A R N I N G
7520 WY$="L O A D I N G
7530 WZ$="LOADED TO EOF
7540 WA$="SAVED TO EOF
7550 WB$="S A V I N G
7560 WC$="THIS WILL WRITE OVER SAME FILE ON THE DISK
7570 WD$="THIS WILL REPLACE FILE IN MEMORY
7580 WE$="<PRESS 1> TO CONTINUE
7590 WF$="<PRESS 2> FOR MENU
7600 WH$="WHAT IS FILESPEC?
7610 WG$="Press <ENTER> TO CONTINUE
7620 ZH$="Type CATEGORY/CODE number, then <ENTER>.
7630 WT$=" REF#  DATE  CHECK #  DESCRIPTION      TO/FROM         CODE    E/I     AMOUNT
7640 WU$=" ~~~~  ~~~~  ~~~~~~~  ~~~~~~~~~~~      ~~~~~~~         ~~~~    ~~~     ~~~~~~
7650 XD$="Enter REF # of Record to Change
7660 XC$="<PRESS 3> Select another Record
7670 XE$="If this is the CORRECT RECORD, then CONTINUE
7680 XF$="FULL YEAR PRINTOUT EXPENSE AND INCOME: "
7690 XG$="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7700 XH$="FULL YEAR PRINTOUT EXPENSES ONLY: "
7710 XI$="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7720 XJ$="FULL YEAR PRINTOUT INCOME ONLY: "
7730 XK$="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7740 XL$="EXPENSE PRINTOUT FOR THE MONTH OF: "
7750 XM$="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7760 XN$="INCOME PRINTOUT FOR THE MONTH OF:"
7770 XO$="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
7780 XP$="INCOME AND EXPENSE PRINTOUT FOR MONTH OF: "
7790 XQ$="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7800 XR$="FULL-YEAR PRINTOUT BY EXPENSE-CODE NUMBER: "
7810 XS$="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7820 XV$="FULL-YEAR PRINTOUT BY INCOME-CODE NUMBER: "
7830 XW$="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7840 XT$="PRINTOUT BY EXPENSE-CODE NUMBER FOR MONTH: "
7850 XU$="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7860 XX$="PRINTOUT BY INCOME-CODE NUMBER FOR MONTH: "
7870 XY$="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "
7880 XZ$="ANNUAL CHECK REGISTER TO DATE: "
7890 ZA$="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7900 ZB$="CHECK REGISTER TO DATE FOR MONTH: "
7910 ZC$="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7920 ZD$="INCOME CODE NUMBER USED IN FILE TO DATE: "
7930 ZE$="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7940 ZF$="EXPENSE CODE NUMBER USED IN FILE TO DATE: "
7950 ZG$="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7960 RETURN
7970 ' ===== DIRECTORY CHECK ROUTINE
7980 CLS
7990 FILES
8000 PRINT:PRINT TAB(20);WG$;
8010 COLOR 15:GOSUB 8250:COLOR 7
8020 GOTO 1290
8030 END
8040 ' ===== INKEY$ ROUTINE FOR NUMBER RESPONSES
8050 FIN$="
8060 IF INKEY$><""THEN 8060
8070 IA$=INKEY$
8080 IF IA$=""THEN 8070
8090 IF IA$=CHR$(13)THEN RETURN
8100 IF(ASC(IA$)<LOW OR ASC(IA$)>HA)THEN SOUND 400,4:GOTO 8070
8110 FIN$=FIN$+IA$
8120 PRINT IA$;
8130 IF LEN(FIN$)=FA THEN RETURN
8140 GOTO 8070
8150 CLS
8160 RETURN
8170 ' ===== YES/NO PROTECTED RETURN ROUTINE
8180 IN$=INKEY$
8190 IF IN$=""THEN 8180
8200 YN=0
8210 IF(IN$="Y"OR IN$="y")THEN YN=1:RETURN
8220 IF(IN$="N"OR IN$="n")THEN YN=2:RETURN
8230 SOUND 400,4
8240 GOTO 8180
8250 ' ===== <ENTER> PROTECTED INPUT ROUTINE
8260 IF INKEY$><""GOTO 8260
8270 IN$=INKEY$
8280 IF IN$=""THEN 8270
8290 IF IN$<>CHR$(13)THEN SOUND 400,4:GOTO 8270
8300 RETURN
8310 GOTO 4080
8320 ' ===== LEAVE PROGRAM ROUTINE
8330 CLS
8340 LOCATE 15,20:PRINT"DO YOU WISH TO SAVE FILE (Y OR N)
8350 GOSUB 8170:COLOR 7
8360 IF YN=1 THEN 1300
8370 IF YN=2 THEN 8380
8380 GOTO 8390
8390 ' ===== TERMINATE PROGRAM AND SHOW SHAREWARE BOX
8400 GOSUB 8430
8410 FOR DL = 1 TO 3000:NEXT
8420 END
8430 CLS:COLOR 15
8440 PRINT "        ╔═══════════════════════════════════════════════════════════════╗
8450 PRINT "        ║                       THANKS FOR USING                        ║
8460 PRINT "        ║                       ~~~~~~ ~~~ ~~~~~                        ║
8470 PRINT "        ║        ▄▄▄▄▄  ▄▄▄▄ ▄▄   ▄ ▄    ▄▄▄▄ ▄▄▄▄▄  ▄▄▄▄ ▄▄▄▄▄         ║
8480 PRINT "        ║        █  ▄█  █    ██▄  █ █    █    █  ▄█  █    █   █         ║
8490 PRINT "        ║        █  ▄▄▄ █▀▀  █ ▀█▄█ █    █▀▀  █  ▄▄▄ █▀▀  █▀█▀▀         ║
8500 PRINT "        ║        █▄▄▄█  █▄▄▄ █   ██ █▄▄▄ █▄▄▄ █▄▄▄█  █▄▄▄ █  ▀▄         ║
8510 PRINT "        ║                                                               ║
8520 PRINT "        ║       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          ║
8530 PRINT "        ║           If you find it of value in your work or             ║
8540 PRINT "        ║              home a SHAREWARE donation of your                ║
8550 PRINT "        ║                choice would be appreciated !!!                ║
8560 PRINT "        ║                                                               ║
8570 PRINT "        ║                          G I N A C O                          ║
8580 PRINT "        ║                      10708 Santa Fe Drive                     ║
8590 PRINT "        ║                      Sun City   AZ  85351                     ║
8600 PRINT "        ║                         <602> 977-5511                        ║
8610 PRINT "        ╠═══════════════════════════════════════════════════════════════╣
8620 PRINT "        ║";:COLOR 31:PRINT"        Support SHAREWARE.   It increases your choice!";:COLOR 15:PRINT"         ║
8630 PRINT "        ╚═══════════════════════════════════════════════════════════════╝
8640 RETURN
8650 END
8660 ' ===== ERROR TRAP ROUTINE
8670 WIDTH 80:LOCATE,,0
8680 LOCATE 25,1:PRINT SPC(78);:KEY OFF:LOCATE 25,28:COLOR 31:PRINT" ERROR ";:COLOR 7:PRINT" #";ERR;" IN LINE #";ERL;:FOR DL=1 TO 1000:NEXT:IF ERR=53 THEN LOCATE 20,10:PRINT SPC(30),ELSE 8700
8690 LOCATE 20,10:PRINT"File not found   ";:PRINT" ** Check Path or Name";
8700 IF ERR=54 THEN LOCATE 20,10:PRINT SPC(30) ELSE 8720
8710 LOCATE 20,10:PRINT"Bad file mode    ";:PRINT" ** Correct File Mode";
8720 IF ERR=55 THEN LOCATE 20,10:PRINT SPC(30) ELSE 8740
8730 LOCATE 20,10:PRINT"File already OPEN ";:PRINT" ** CLOSE and REOPEN";
8740 IF ERR=61 THEN LOCATE 20,10:PRINT SPC(30) ELSE 8760
8750 LOCATE 20,10:PRINT"Disk FULL         ";:PRINT" ** Install New Disk";
8760 IF ERR=57 THEN LOCATE 20,10:PRINT SPC(30) ELSE 8780
8770 LOCATE 20,10:PRINT"Drive Door is Open";:PRINT" ** CLOSE Drive Door";
8780 IF ERR=71 THEN LOCATE 20,10:PRINT SPC(30) ELSE 8800
8790 LOCATE 20,10:PRINT"Disk NOT READY    ";:PRINT" ** CLOSE Drive Door";
8800 IF ERR=24 THEN LOCATE 20,10:PRINT SPC(30) ELSE 8820
8810 LOCATE 20,10:PRINT"Printer OFF-LINE ";:PRINT"  ** Press ON-LINE on";
8820 IF ERR=25 THEN LOCATE 20,10:PRINT SPC(30) ELSE 8840
8830 LOCATE 20,10:PRINT"Printer not ON    ";:PRINT" ** Check Printer ON";
8840 IF ERR=27 THEN LOCATE 20,10:PRINT SPC(30) ELSE 8870
8850 LOCATE 20,10:PRINT"OUT OF PAPER!     ";:PRINT" ** Check Paper Path";
8860 LOCATE 22,20:GOSUB 8900:GOSUB 8920:RETURN
8870 GOSUB 8860:LOCATE 22,10:PRINT"Correct SYSTEM ERROR - <PRESS> ENTER";:GOSUB 8250:LOCATE 22,10:COLOR 7:CLS:CLOSE:RESUME 1280
8880 ON ERROR GOTO 0
8890 END
8900 ' ===== CLEARS THE RESPONSE LINE BEFORE INSERT BOX
8910 WIDTH  80:LOCATE 21,10:PRINT SPC(39);:RETURN
8920 ' ===== CLEARS THE RESPONSE INPUT BOX
8930 WIDTH 80:LOCATE 21,52:PRINT SPC(22);:RETURN
8940 END
9000 ' ===== ANNOUNCE FILE LOADED ROUTINE
9010 CLS
9020 LOCATE 10,35:PRINT"FILE IS LOADED"
9030 PRINT:PRINT TAB(30);WG$;
9040 COLOR 15:GOSUB 8250:COLOR 7
9050 GOTO 1290
9060 END

LABLFILE.BAS

10 CLS:REM LABLFILE BY GINACO: BRUNO LARSEN, SUN CITY, ARIZONA
30 REM (C) 1984 BY BRUNO M. LARSEN, G I N A C O
40 CLS:KEY OFF:CLEAR:DIM MM$(30),TT$(20),USER$(50):DIM A$(200),B$(200),C$(200),D$(200),E$(200),F$(200),INPTR$(50),FIN$(50),AA$(200),FILE$(200),P1%(200):SCREEN 0,0,0:COLOR 7,0:WIDTH 80:FOR KK=1 TO 10:KEY KK,"":NEXT KK:GOSUB 170:GOTO 210
170 USER$(4)="NAME":USER$(6)="ADDRESS":USER$(8)="ADDRESS":USER$(10)="ADDRESS":USER$(12)="FILE DATA":USER$(14)="FILE DATA"
180 RETURN
210 LOCATE 2,2,0:PRINT"┌";STRING$(76,"─");"┐":PRINT" │                                                                            │":TT$(1)=" │        █         ██     █▀▀▀▀▀█ █      █▀▀▀▀    ô    █       █▀▀▀▀▀█       │
250 TT$(2)=" │        █        █  █    █     █ █      █        █    █       █             │":TT$(3)=" │        █       █▀▀▀▀█   █▀▀▀▀▀█ █      █▀▀▀     █    █       █▀▀▀▀         │
270 TT$(4)=" │        █      █      █  █     █ █      █        █    █       █             │":TT$(5)=" │        █▄▄▄█ █        █ █▄▄▄▄▄█ █▄▄▄▄█ █      ▄▄█▄▄  █▄▄▄▄▄█ █▄▄▄▄▄█       │":FOR PL=1 TO 5:PRINT TT$(PL):NEXT
320 PRINT" │                                                                            │":PRINT" │                User Supported Software   by   Bruno M. Larsen              │
340 PRINT" │                                                                            │":PRINT" │              (C) G I N A C O -- 1985         Ver 3.5 (PC-JR)               │
360 PRINT" │                                                                            │":PRINT" │                                                                            │":LOCATE 14,2:PRINT"└";STRING$(76,"─");"┘
400 REM ===== INPUT FROM USER ON LABEL SIZE AND LINES TO PRINT  =====
410 LOCATE 16,36:COLOR 15:PRINT"LABEL SIZE":COLOR 7,0:LOCATE 18,4,0:PRINT"<PRESS>";:COLOR 15:PRINT" 6 ";:COLOR 7:PRINT"FOR 1.0 INCH 6 LINE label":LOCATE 18,43,0:PRINT"<PRESS>";:COLOR 15:PRINT" 9 ";:COLOR 7:PRINT"FOR 1.5 INCH 9 LINE label
570 LZ$=INKEY$:IF LZ$=""THEN 570
590 IF VAL(LZ$)=6 THEN 610
600 IF VAL(LZ$)<>9 THEN BEEP:GOTO 570
610 LOCATE 20,19,0:PRINT"Select <PRESS> ";:COLOR 15:PRINT" 3, 4, 5,";:COLOR 7,0:PRINT" or ";:COLOR 15:PRINT" 6 ";:COLOR 7,0:PRINT" PRINTED LINES.
710 NRLB$=INKEY$:IF NRLB$=""THEN 710
730 IF VAL(NRLB$)<3 OR VAL(NRLB$)>6 THEN BEEP:BEEP:GOTO 710
740 REM ==== DO YOU NEED INSTRUCTIONS QUERY  =====
750 COLOR 15:LOCATE 24,25,0:PRINT"DO YOU NEED INSTRUCTIONS (Y/N)":COLOR 7,0
790 QQ$=INKEY$:LOCATE 23,20,0,8,7:IF QQ$=""THEN 790
820 IF QQ$="y"OR QQ$="Y"THEN 840
830 IF QQ$="n"OR QQ$="N"THEN 1400
840 CLS:KEY OFF:SCREEN 0,0,0:WIDTH 80:FOR KK=1 TO 10:KEY KK,"":NEXT:DEF SEG:POKE 91,25:POKE 92,25:KEY 6,CHR$(64):KEY 2,CHR$(35):FOR FB=2 TO 23:LOCATE FB,1:PRINT CHR$(186):LOCATE FB,79:PRINT CHR$(186):NEXT:LOCATE 1,1,0
1030 PRINT CHR$(201);STRING$(77,205);CHR$(187);:LOCATE 22,1,0:PRINT CHR$(204);STRING$(77,205);CHR$(185);:LOCATE 24,1,0:PRINT CHR$(200);STRING$(77,205);CHR$(188);:FOR MM=1 TO 20:LOCATE MM,9:PRINT MM$(MM)
1110 MM$(2)="CAUTION: Exit LABLFILE through the CONTROL or PRINT Menu ONLY!":MM$(3)="  Using Ctrl-Break will exit without cursor & scroll control":MM$(4)="  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1140 MM$(5)="   LABLFILE is a rapid-response, flexible file management pro-":MM$(6)="gram which can be used for many purposes. It's default config-":MM$(7)="ured with a three-line  label-print routine which can be modi-
1170 MM$(8)="fied on startup by responding to the label size and # of lines":MM$(9)="promts as desired.  These selections may be changed from Menus":MM$(10)="during program execution. INKEY$ response is used extensively.
1200 MM$(11)="Use <ENTER> key when instructed.  A <PRESS> PROMPT evokes auto-":MM$(12)="matic entry. When selecting files to print, <ENTER> 1st #, wait":MM$(13)="for a prompt and <ENTER> the last file # to print. For a single
1230 MM$(14)="file, enter the same # each time at the prompt.  Four different":MM$(15)="print styles are available with EPSON & IBM coded printers, and":MM$(16)="are selected from the PRINT Menu.   LABEL SIZE, number of lines
1260 MM$(17)="to be printed,  and file INPUT-HEADINGS may be modified during":MM$(18)="program execution from the CONTROL Menu and PRINT menus. Every":MM$(19)="effort has been made to provide <ESCAPE ROUTES> back to a MENU
1290 MM$(20)="for reselection during all program functions. G I N A C O-1985":NEXT MM:LOCATE 23,9,0:PRINT"<PRESS> F-6 TO CONTINUE.        <PRESS> F-2 TO RESET LABEL SIZE";
1330 IN$=INKEY$:IF IN$=""THEN 1330
1350 IF IN$=CHR$(64)THEN 1400
1360 IF IN$=CHR$(35)THEN 1380
1370 GOTO 1330
1380 CLS:GOSUB 2480:GOSUB 13900
1400 CLS:SCREEN 0,0,0:WIDTH 80:FOR NK=1 TO 10:KEY NK,"":NEXT:SCREEN 0,1,0,0:KEY OFF:DEF SEG:POKE 91,25:POKE 92,25:LOCATE 1,1,0,12,13:A$="":B$="":C$="":D$="":E$="":F$="":DEFINT A-Z:I=0:P=1:FINLEN=0:P=1:IN$="":ON ERROR GOTO 11890
1650 CLS:KEY OFF:BB$=TIME$:GOSUB 2480:GOTO 2010
1700 REM =====  PRINTER SELECT ROUTINE  =====
1710 CLS:GOSUB 2070:DEF SEG=&H40:A=PEEK(&H8):B=PEEK(&H9):C=PEEK(&HA):D=PEEK(&HB):POKE &H8,C:POKE &H9,D:POKE &HA,A:POKE &HB,B:IF PEEK(&H9)=3 THEN LPT$="1"ELSE LPT$="2
1830 LOCATE 7,30,0:PRINT"Primary Printer = LPT";LPT$+":";:LOCATE 9,24:PRINT"To continue with program <PRESS> 1";:LOCATE 11,24,0:PRINT"Reset LPT1 OR LPT2       <PRESS> 2";" ";:GOSUB 2790:GOSUB 2410:GOSUB 3110:LOCATE 21,68,0:LOW=49:HIGH=50:FINLEN=1
1960 GOSUB 3220:ON VAL(INPTR$)GOTO 2890,1700
1980 GOTO 2890
1990 GOSUB 3220:REM  ===== INITIAL FORMAT AND BOX MENU  =====
2010 CLS:GOSUB 2070:GOSUB 2850:GOSUB 2410:GOTO 5690
2060 REM =====  PROGRAM FOR BOX PRINTOUT =======
2070 REM =====  PRINT BOX 1 =====
2080 COLOR 7,0:WW=76:TL=1:LL=24:LC=2:GOSUB 2290:RETURN
2150 REM =====  PRINT BOX 2 =====
2160 WW=76:TL=18:LL=24:LC=2:GOSUB 2290:RETURN
2220 REM =====  PRINT BOX 2A =====
2230 WW=76:TL=14:LL=24:LC=2:GOSUB 2290:RETURN
2290 REM =====  ACTUAL PRINT ROUTINE =====
2300 LOCATE TL,LC,0:PRINT TLC$;STRING$(WW,HL$);TRC$;:FOR BD=(TL+1)TO(LL-1):LOCATE BD,LC,0:PRINT VL$;:LOCATE BD,(LC+WW+1),0:PRINT VL$;:NEXT:LOCATE LL,LC,0:PRINT BLC$;STRING$(WW,HL$);BRC$;:RETURN
2410 REM =====  PRINT BOX 3 =====
2420 WW=23:TL=20:LL=22:LC=50:GOSUB 2290:RETURN
2480 REM =====  INITIALIZATION ROUTINE =====
2490 TLC$=CHR$(201):TRC$=CHR$(187):HL$=CHR$(205):BLC$=CHR$(200):BRC$=CHR$(188):VL$=CHR$(186):PR$="###  \                                  \     \                     \
2560 M1ST$="A ══"+CHR$(16)+" Add  Records   C ══"+CHR$(16)+" Choose Printer   D ══"+CHR$(16)+" Disk Directories":M2ND$="E ══"+CHR$(16)+" Edit Records   L ══"+CHR$(16)+" Load Disk File   P ══"+CHR$(16)+" Print Label Menu
2580 M3RD$="Q ══"+CHR$(16)+" Quit Program   R ══"+CHR$(16)+" Review Records   S ══"+CHR$(16)+" Save (Disk File)":M4TH$="Z ══"+CHR$(16)+" Re-set Sizes   N ══"+CHR$(16)+" Rename Records   X ══"+CHR$(16)+" Empty:  ONE File":RETURN
2610 REM =====  CLEAR TOP BOX FORM  =====
2620 FOR CS=2 TO 17:LOCATE TL,3,0:PRINT SPC(76):NEXT:RETURN
2670 REM =====  CLEAR UPPER 1/2 SCREEN FOR DIRECTORY  =====
2680 FOR CS=1 TO 17:LOCATE CS,1,0:PRINT SPC(79):NEXT:RETURN
2730 REM =====  CLEAR BOTTOM BOX FORM EXCEPT FOR INSERT  =====
2740 FOR CS=19 TO 23:LOCATE CS,3,0:PRINT SPC(47):NEXT:RETURN
2790 REM =====  CLEAR BOTTOM BOX INCLUDING INSERT  =====
2800 FOR CS=19 TO 23:LOCATE CS,3,0:PRINT SPC(75):NEXT:RETURN
2850 REM =====  PRINT MIDDLE BOX CONNECTING LINE VERT/HORZ  =====
2860 LOCATE 18,2,0:PRINT"╠";STRING$(76,"═");"╣";:RETURN
2890 REM =====  QUERY CLEAR AND RETURN ROUTINE =====
2900 CLS:GOSUB 2220:GOSUB 13410:GOSUB 12510:ON MS GOTO 3700,3700,1700,1700,12840,12840,7160,7160,5010,5010,8840,8840,11650,11650,5290,5290,4740,4740,2950,2950,14430,14430,15190,15190
2950 GOSUB 13900:GOTO 2890
2960 REM =====  CLEARS TOP FORM DOWN TO HORIZONTAL LINE  =====
2970 FOR CS=3 TO 17:LOCATE CS,3,0:PRINT SPC(75):NEXT:RETURN
3020 REM =====  CLEARS THE RESPONSE INPUT BOX  =====
3030 LOCATE 21,52,0:PRINT SPC(22);:RETURN
3060 REM =====  CLEARS THE RESPONSE LINE BEFORE INSERT BOX  =====
3070 LOCATE 21,10,0:PRINT SPC(39);:RETURN
3100 REM =====  "SELECT" SUBROUTINE  =====
3110 LOCATE 21,51,0:PRINT SPC(22);:LOCATE 21,76:LOCATE 21,53:PRINT"SELECT               ║    ║":RETURN
3170 REM =====  CLEARS INPUT BOX LINE  =====
3180 LOCATE 21,52,0:PRINT SPC(21);:LOCATE 21,76:RETURN
3220 REM =====  INKEY$ ROUTINE FOR NUMBER RESPONSES =====
3230 FIN$="
3240 IF INKEY$><""THEN 3240
3250 INPTR$=INKEY$:IF INPTR$=""THEN 3250
3270 IF INPTR$=CHR$(13)THEN RETURN
3280 IF INPTR$<>CHR$(8)THEN 3330
3290 IF FIN$=""THEN SOUND 600,4:GOTO 3250
3300 PRINT CHR$(29);" ";CHR$(29);:FIN$=LEFT$((FIN$),LEN(FIN$)-1):GOTO 3250
3330 IF(ASC(INPTR$)<LOW OR ASC(INPTR$)>HIGH)THEN SOUND 400,4:GOTO 3250
3340 FIN$=FIN$+INPTR$:PRINT INPTR$;:IF LEN(FIN$)=FINLEN THEN RETURN
3370 GOTO 3250
3380 REM =====  YES OR NO INKEY$ RESPONSE ROUTINE  =====
3390 IN$=INKEY$:IF IN$=""THEN 3380
3410 YN=0:IF(IN$="Y"OR IN$="y")THEN YN=1:RETURN
3430 IF(IN$="N"OR IN$="n")THEN YN=2:RETURN
3440 SOUND 400,4:GOTO 3380
3460 REM =====  CHECK FOR CARRIAGE RETURN INPUT  =====
3470 IF INKEY$><""GOTO 3460
3480 IN$=INKEY$:IF IN$=""THEN 3480
3500 IF IN$<>CHR$(13)THEN SOUND 400,4:GOTO 3480
3510 RETURN
3520 REM =====  INPUT ROUTINE FOR LETTER RESPONSES =====
3530 COLOR 7,0:FIN$="":IF FINLEN=0 THEN FINLEN=255
3560 IF INKEY$><""THEN 3560
3570 INPTR$=INKEY$:IF INPTR$=""THEN 3570
3590 IF INPTR$=CHR$(13)THEN RETURN
3600 IF INPTR$<>CHR$(8)THEN 3650
3610 IF FIN$=""THEN SOUND 600,4:GOTO 3570
3620 PRINT CHR$(29);"■";CHR$(29);:FIN$=LEFT$((FIN$),LEN(FIN$)-1):GOTO 3570
3650 IF LEN(FIN$)=FINLEN THEN SOUND 600,4:GOTO 3570
3660 IF ASC(INPTR$)<31 OR ASC(INPTR$)>125 THEN SOUND 400,4:GOTO 3570
3670 PRINT INPTR$;:FIN$=FIN$+INPTR$:GOTO 3570
3700 REM =====  INITIAL FILE OR SINGLE LABEL INPUT PROGRAM  =====
3710 GOSUB 15210:CLS:GOSUB 2070:GOSUB 2850:GOSUB 2410:LOCATE 21,30,0:PRINT"Make DATA Entries ";:LOCATE 17,20:COLOR 15:PRINT"Do not use QUOTATION MARKS when entering data!";:COLOR 7,0:GOSUB 6630:IF P>=1 THEN P1=P:P=200
3840 FOR I=P1 TO P:GOSUB 7010:GOSUB 3020:LOCATE 21,52,0:PRINT"Record #:";:LOCATE 21,64,0:PRINT I;:LOCATE 4,30,1,0,7:FINLEN=41:GOSUB 3520:A$(I)=FIN$:LOCATE 4,30,0:PRINT A$(I);:IF(A$(I)="END"OR A$(I)="end")THEN P=I
3980 IF(A$(I)="END"OR A$(I)="end")THEN 4620
3990 LOCATE 6,30,1:FINLEN=41:GOSUB 3520:B$(I)=FIN$:LOCATE 6,30,0:PRINT B$(I);:LOCATE 8,30,1:FINLEN=41:GOSUB 3520:C$(I)=FIN$:LOCATE 8,30,0:PRINT C$(I):LOCATE 10,30,1:FINLEN=41:GOSUB 3520:D$(I)=FIN$:LOCATE 10,30,0:PRINT D$(I);:LOCATE 12,30,1:FINLEN=41
4190 GOSUB 3520:E$(I)=FIN$:LOCATE 12,30,0:PRINT E$(I);:LOCATE 14,30,1:FINLEN=41:GOSUB 3520:F$(I)=FIN$:LOCATE 14,30,0
4280 GOSUB 2730:LOCATE 21,20,0:COLOR 15:PRINT"Is this correct <Y/N> ";:COLOR 7,0:GOSUB 3380:IF YN=1 THEN 4540
4350 IF YN=2 THEN 4360
4360 GOSUB 2070:GOSUB 2850:GOSUB 3020:GOSUB 3060:LOCATE 21,18:COLOR 15:PRINT"Re-enter what line? ";:COLOR 7,0:LOCATE 21,55:PRINT" Line # ";:FINLEN=1:LOW=49:HIGH=54:GOSUB 3220:GOSUB 3020:LOCATE 21,62:PRINT VAL(INPTR$);
4530 ON VAL(INPTR$)GOTO 6010,6040,6070,6100,6130,6160
4540 GOSUB 2730:LOCATE 21,18:PRINT"ENTER ";:COLOR 15:PRINT CHR$(34)"END"CHR$(34);:COLOR 7,0:PRINT" To CLOSE entries ";:NEXT
4620 CLS:COLOR 7,0:GOSUB 2150:GOSUB 2410:LOCATE 21,20:COLOR 15:PRINT"SAVE to DISK <Y/N> ";:COLOR 7,0:GOSUB 3380:IF YN=1 THEN 4730
4720 IF YN=2 THEN 5270
4730 REM =====  DATA SAVE ROUTINE TO DISK  =====
4740 CLS
4750 GOSUB 2150:GOSUB 2410:LOCATE 21,27,0:COLOR 15:PRINT"What is FILE name? ";:COLOR 7,0:GOSUB 3170:FINLEN=14:LOCATE 21,52:COLOR 15:PRINT"DRIVE? ■:■■■■■■■■.■■■";:COLOR 7,0:LOCATE 21,59,0:GOSUB 3520:FILESPEC$=FIN$:GOSUB 3060:OPEN "O",1,FILESPEC$
4920 WRITE#1,P:FOR I=1 TO P:WRITE#1,A$(I),B$(I),C$(I),D$(I),E$(I),F$(I):IF(A$(I)="END"OR A$(I)="end")THEN P=I
4960 IF(A$(I)="END"OR A$(I)="end")THEN 4980
4970 NEXT
4980 CLOSE:GOSUB 12510:GOTO 5270
5010 REM =====  DISK DATA READ ROUTINE  =====
5015 CLS
5020 GOSUB 2150:GOSUB 2410:LOCATE 21,27:COLOR 15:PRINT"What is FILE name? ";:COLOR 7,0:GOSUB 3170:FINLEN=14:LOCATE 21,52:COLOR 15:PRINT"DRIVE? ■:■■■■■■■■.■■■";:COLOR 7,0:LOCATE 21,59,0:GOSUB 3520:FILESPEC$=FIN$:GOSUB 3060:OPEN "I",1,FILESPEC$
5200 INPUT#1,P:FOR I=1 TO P:INPUT#1,A$(I),B$(I),C$(I),D$(I),E$(I),F$(I):IF(A$(I)="END"OR A$(I)="end")THEN P=I
5240 IF(A$(I)="END"OR A$(I)="END")THEN 5260
5250 NEXT
5260 CLOSE
5270 REM =====  CHANCE TO REVIEW INPUT FILES  =====
5280 GOTO 2890
5290 REM =====  STARTING OUTPUT LOOP =====
5300 CLS:GOSUB 2070:GOSUB 2850:K=1:NR=13
5350 LOCATE 4,7:FOR I=K TO P:GOTO 5380
5380 LOCATE,7:PRINT SPC(70):LOCATE,7:PRINT USING PR$;I;A$(I);RIGHT$(E$(I),12):IF A$(I)="END"OR A$(I)="end"THEN 5510
5430 IF I=NR THEN 5450ELSE 5440
5440 NEXT
5450 GOSUB 2790:LOCATE 21,30:PRINT"<PRESS> ENTER to Continue!";:GOSUB 3460:IF I=P THEN 5510
5500 IF I<P THEN K=I+1:NR=NR+13:GOTO 5350
5510 GOSUB 2790:LOCATE 21,13:PRINT"Last Record in File";:LOCATE 21,45:PRINT"<PRESS> ANY KEY to Continue";
5560 RES$=INKEY$:IF RES$=""THEN 5560
5580 GOTO 2890
5590 PRINT"ADD RECORDS TO FILE  <PRESS> 3";:COLOR 7,0:LOCATE 21,50,0:GOSUB 3110:GOSUB 12510:FINLEN=1:LOW=49:HIGH=51:GOSUB 3220:ON VAL(INPTR$)GOTO 8830,7150,3700
5690 REM =====  PRINT IN INITIAL MENU SELECTION ITEMS  =====
5700 LOCATE 3,32:PRINT"LABEL/FILE PROGRAM";:LOCATE 4,32:PRINT"══════════════════";:LOCATE 6,35:PRINT"C H O I C E S";:LOCATE 7,35:PRINT"═════════════";:LOCATE 9,25:PRINT"Recall Disk FILE              1";:LOCATE 11,25
5810 PRINT"Open New FILE                 2";:LOCATE 13,25:PRINT"Make single label             3";:LOCATE 15,25:PRINT"CONTROL Menu                  4";:LOCATE 21,20:PRINT"Select & <PRESS> a Number";:GOSUB 3110:GOSUB 12510:FINLEN=1:LOW=49:HIGH=52
5930 GOSUB 3220:ON VAL(INPTR$)GOTO 5010,3700,3700,2890
5950 REM =====  INDIVIDUAL LINE CORRECTION ROUTINE  =====
5960 FOR I=4 TO 14 STEP 2:LOCATE I,28:PRINT"  ";STRING$(41,254);:NEXT:GOTO 6190
6010 LOCATE 4,28:PRINT"  ";STRING$(41,254);:GOTO 6190
6040 LOCATE 6,28:PRINT"  ";STRING$(41,254);:GOTO 6280
6070 LOCATE 8,28:PRINT"  ";STRING$(41,254);:GOTO 6350
6100 LOCATE 10,28:PRINT"  ";STRING$(41,254);:GOTO 6420
6130 LOCATE 12,28:PRINT"  ";STRING$(41,254);:GOTO 6490
6160 LOCATE 14,28:PRINT"  ";STRING$(41,254);:GOTO 6560
6190 LOCATE 4,30,1:FINLEN=41:GOSUB 3520:A$(I)=FIN$:LOCATE 4,30,0:PRINT A$(I);:GOTO 4280
6260 IF(A$(I)="END"OR A$(I)="end")THEN P=I
6270 IF(A$(I)="END"OR A$(I)="end")THEN 4620
6280 LOCATE 6,30,1:FINLEN=41:GOSUB 3520:B$(I)=FIN$:LOCATE 6,30,0:PRINT B$(I);:GOTO 4280
6350 LOCATE 8,30,1:FINLEN=41:GOSUB 3520:C$(I)=FIN$:LOCATE 8,30,0:PRINT C$(I);:GOTO 4280
6420 LOCATE 10,30,1:FINLEN=41:GOSUB 3520:D$(I)=FIN$:LOCATE 10,30,0:PRINT D$(I);:GOTO 4280
6490 LOCATE 12,30,1:FINLEN=41:GOSUB 3520:E$(I)=FIN$:LOCATE 12,30,0:PRINT E$(I);:GOTO 4280
6560 LOCATE 14,30,1:FINLEN=41:GOSUB 3520:F$(I)=FIN$:LOCATE 14,30,0:PRINT F$(I);:GOTO 4280
6630 REM =====  FILL IN LINE INPUT TITLE BLOCKS  =====
6640 LOCATE 4,14:PRINT USER$(4);:LOCATE,27:PRINT"1:";:LOCATE 5,14:PRINT STRING$(LEN(USER$(4)),"~");:LOCATE 6,14:PRINT USER$(6);:LOCATE,27:PRINT"2:";:LOCATE 7,14:PRINT STRING$(LEN(USER$(6)),"~");:LOCATE 8,14:PRINT USER$(8);:LOCATE,27:PRINT"3:";
6800 LOCATE 9,14:PRINT STRING$(LEN(USER$(8)),"~");:LOCATE 10,14:PRINT USER$(10);:LOCATE,27:PRINT"4:";:LOCATE 11,14:PRINT STRING$(LEN(USER$(10)),"~");:LOCATE 12,14:PRINT USER$(12);:LOCATE,27:PRINT"5:";:LOCATE 13,14:PRINT STRING$(LEN(USER$(12)),"~");
6940 LOCATE 14,14:PRINT USER$(14);:LOCATE,27:PRINT"6:";:LOCATE 15,14:PRINT STRING$(LEN(USER$(14)),"~");:RETURN
7010 REM =====  COLORS IN INPUT LINES  =====
7020 LOCATE 2,28:COLOR 31:PRINT"  "STRING$(15,32)CHR$(25);:COLOR 7,0:LOCATE 2,22:PRINT"MAX for EXPANDED PRINT";:LOCATE 2,47:PRINT"with 4 ½ inch labels":FOR Q=4 TO 14 STEP 2:LOCATE Q,30:PRINT STRING$(41,254);:NEXT:RETURN
7150 REM =====  EDIT INDIVIDUAL RECORDS ROUTINE =====
7160 Z=0:CLS:GOSUB 2150:GOSUB 2410:LOCATE 20,18:COLOR 15:PRINT"What RECORD NUMBER To edit ";:COLOR 7,0:LOCATE 22,18:PRINT"<ENTER> RECORD NUMBER ";:FINLEN=3:LOW=48:HIGH=57:GOSUB 2070:GOSUB 2410:GOSUB 3100:LOCATE 21,64,0:GOSUB 3220:Z=VAL(FIN$):GOSUB 12510
7360 IF P=0 THEN 12740
7370 IF(Z<1 OR Z>P)THEN 12740
7380 REM =====  DISPLAYING RECORDS TO BE EDITED =====
7390 ON Z GOSUB 2070:GOSUB 2850:GOSUB 2410:GOSUB 6630:GOSUB 7010:GOSUB 3020:LOCATE 21,53,0:PRINT"Record #: ";:LOCATE 21,64:PRINT Z;:LOCATE 4,30:PRINT A$(Z);:IF A$(1)="END"THEN P=Z:COLOR 7,0
7520 LOCATE 6,30:PRINT B$(Z);:LOCATE 8,30:PRINT C$(Z);:LOCATE 10,30:PRINT D$(Z);:LOCATE 12,30:PRINT E$(Z);:LOCATE 14,30:PRINT F$(Z);
7620 GOSUB 2730:COLOR 7,0:GOSUB 3060:COLOR 7,0:LOCATE 21,20:PRINT"Is this correct <Y/N> ";:COLOR 7,0:GOSUB 3380:IF YN=1 THEN 8730
7710 IF YN=2 THEN 7720
7720 COLOR 7,0:GOSUB 2730:GOSUB 3020:GOSUB 3060:LOCATE 21,18:COLOR 15:PRINT"Re-enter what LINE? ";:COLOR 7,0:LOCATE 21,55:PRINT" Line # ";:FINLEN=1:LOW=49:HIGH=54:GOSUB 3220:GOSUB 3020:LOCATE 21,55:PRINT" Line # ";:LOCATE 21,64:PRINT VAL(INPTR$);
7910 ON VAL(INPTR$)GOTO 7930,7980,8030,8080,8130,8180
7920 REM =====  INDIVIDUAL LINE ROUTINE FOR RECALLED RECORDS  =====
7930 COLOR 7,0:LOCATE 4,30,1,0,7:COLOR 0,7:PRINT A$(Z):GOTO 8280
7980 COLOR 7,0:LOCATE 6,30,1,0,7:COLOR 0,7:PRINT B$(Z):GOTO 8370
8030 COLOR 7,0:LOCATE 8,30,1,0,7:COLOR 0,7:PRINT C$(Z):GOTO 8440
8080 COLOR 7,0:LOCATE 10,30,1,0,7:COLOR 0,7:PRINT D$(Z):GOTO 8510
8130 COLOR 7,0:LOCATE 12,30,1,0,7:COLOR 0,7:PRINT E$(Z):GOTO 8580
8180 COLOR 7,0:LOCATE 14,30,1,0,7:COLOR 0,7:PRINT F$(Z):GOTO 8650
8230 COLOR 7,0:FOR Q=4 TO 14 STEP 2:LOCATE Q,30,1,0,7:PRINT STRING$(41,254);:NEXT
8280 LOCATE 4,30,1:FINLEN=41:GOSUB 3520:A$(Z)=FIN$:LOCATE 4,30,0:PRINT A$(Z);:GOTO 7620
8350 IF A$(Z)="END"OR A$(Z)="end"THEN P=Z
8360 IF A$(Z)="END"OR A$(Z)="end"THEN 8740
8370 LOCATE 6,30,1:FINLEN=41:GOSUB 3520:B$(Z)=FIN$:LOCATE 6,30,0:PRINT B$(Z);:GOTO 7620
8440 LOCATE 8,30,1:FINLEN=41:GOSUB 3520:C$(Z)=FIN$:LOCATE 8,30,0:PRINT C$(Z);:GOTO 7620
8510 LOCATE 10,30,1:FINLEN=41:GOSUB 3520:D$(Z)=FIN$:LOCATE 10,30,0:PRINT D$(Z);:GOTO 7620
8580 LOCATE 12,30,1:FINLEN=41:GOSUB 3520:E$(Z)=FIN$:LOCATE 12,30,0:PRINT E$(Z);:GOTO 7620
8650 LOCATE 14,30,1:FINLEN=41:GOSUB 3520:F$(Z)=FIN$:LOCATE 14,30,0:PRINT F$(Z);:COLOR 7,0:GOTO 7620
8730 REM =====  LOOK AT ANOTHER RECORD AFTER CORRECTION =====
8740 CLS:COLOR 7,0:GOSUB 2150:GOSUB 2410:LOCATE 21,18:COLOR 7,0:PRINT"Edit another RECORD <Y/N> ";:GOSUB 3380:ON YN GOTO 7150,4620
8830 REM =====  LABEL PRINT ROUTINES =====
8840 CLS:GOSUB 2070:GOSUB 2850:LOCATE 3,32:PRINT"LABEL/FILE PROGRAM";:LOCATE 4,32:COLOR 7,0:PRINT"══════════════════";:LOCATE 5,35:PRINT"C H O I C E S":LOCATE 6,35:PRINT"═════════════";:LOCATE 8,26:PRINT"1ST Line BOLD Print...........1";:LOCATE 9,26
8990 PRINT"All lines BOLD Print..........2";:LOCATE 10,26:PRINT"All Lines NORMAL 10 pitch.....3"
9000 LOCATE 11,26:PRINT"All lines CONDENSED Print.....4":LOCATE 12,26
9070 PRINT"Return to CONTROL Menu........5";:LOCATE 13,26:PRINT"Read DISK DIRECTORIES.........6";:LOCATE 14,26: PRINT"Reset LABEL SIZE..............7";:LOCATE 15,26:PRINT"QUIT the program..............8";:GOSUB 2410:LOCATE 21,20
9160 PRINT"<PRESS> a NUMBER SELECTION ";:GOSUB 3110:GOSUB 12510:FINLEN=1:LOW=49:HIGH=56:GOSUB 3220:ON VAL(INPTR$)GOTO 9250,9320,9460,9530,2890,12830,9240,11640
9240 GOSUB 13900:GOTO 8830
9250 REM =====  1ST LINE BOLD =====
9260 CLS:GOSUB 2070:GOSUB 2850:GOSUB 2410:GOSUB 9600:GOTO 10410
9320 REM =====  ALL LINES BOLD =====
9330 CLS:GOSUB 2070:GOSUB 2850:GOSUB 2410:GOSUB 9600:GOTO 10600
9390 REM =====  ALL LINES ITALICS =====
9400 CLS:GOSUB 2070:GOSUB 2850:GOSUB 2410:GOSUB 9600:GOTO 10770
9460 REM =====  10 PITCH (PICA) =====
9470 CLS:GOSUB 2070:GOSUB 2850:GOSUB 2410:GOSUB 9600:GOTO 10960
9530 REM =====  ALL LINES CONDENSED =====
9540 CLS:GOSUB 2070:GOSUB 2850:GOSUB 2410:GOSUB 9600:GOTO 11130
9600 REM =====  LIST PRINT CHOICE MENU  =====
9610 LOCATE 6,35:PRINT"C H O I C E S";:LOCATE 7,35:PRINT"═════════════";:LOCATE 9,25:PRINT"Check Printer ON and SELECTED.";:COLOR 7,0:LOCATE 10,25:PRINT"CHECK LABELS LOADED AND ALIGNED";:LOCATE 11,25:PRINT"<ENTER> record RANGE to print";:LOCATE 13,25
9730 PRINT"I.E. <ENTER> FIRST Record Number to Print";:LOCATE 14,31:PRINT"Then <ENTER> Last Record Number";:GOSUB 3060:LOCATE 21,20:PRINT"<ENTER> Record Print Range ";:LB=0:LE=0:GOSUB 3020:LOCATE 21,52:PRINT"First # ";:LOCATE 21,62:FINLEN=3:LOW=48
9870 HIGH=57:GOSUB 3220:LB=VAL(FIN$):LOCATE 21,61:PRINT LB;:FOR I=1 TO 500:NEXT:GOSUB 3020:LOCATE 21,52,0:PRINT"Last # ";:GOSUB 12510:FINLEN=3:LOW=48:HIGH=57:LOCATE 21,62,0:GOSUB 3220:LE=VAL(FIN$):IF LE=<P THEN 10090
10050 IF LE>P THEN LOCATE 21,52:COLOR 15:PRINT"NO SUCH FILE!";:LOCATE 21,10:PRINT SPC(30):LOCATE 21,20:PRINT"<PRESS> Any Key to Continue.":COLOR 7
10060 RES$=INKEY$:IF RES$=""THEN 10060
10080 GOTO 8830
10090 LOCATE 21,61:PRINT LE;:FOR TM=1 TO 500:NEXT TM:CLS:GOSUB 2070:GOSUB 2850:GOSUB 2410:LOCATE 6,35:PRINT"PRINT  LABELS";:LOCATE 7,35:PRINT"═════════════";:LOCATE 12,30:PRINT"How many of each labeL.    ";:LOCATE 21,16
10240 PRINT"Indicate & <ENTER> Quantity ";:REM =====  NUMBER OF EACH LABEL =====
10260 GOSUB 3020:LOCATE 21,52:PRINT"# of each  ";:NL=0:FINLEN=3:LOW=48:HIGH=57:GOSUB 3220:NL=VAL(FIN$):LOCATE 21,62:PRINT NL;:FOR I=1 TO 500:NEXT:GOSUB 12510:RETURN
10410 REM =====  1ST LINE ONLY SHADOW ON  IBM GRAPHICS PRINTER =====
10420 FOR N=LB TO LE:FOR M=1 TO NL:LPRINT CHR$(27);CHR$(69);:LPRINT A$(N):LPRINT CHR$(27);CHR$(70);:LPRINT B$(N):LPRINT C$(N):IF VAL(NRLB$)>3 THEN LPRINT D$(N)ELSE LPRINT"
10520 IF VAL(NRLB$)>4 THEN LPRINT E$(N)ELSE LPRINT"
10530 IF VAL(NRLB$)>5 THEN LPRINT F$(N)ELSE LPRINT"
10540 IF VAL(LZ$)=6 THEN 10560
10550 IF VAL(LZ$)=9 THEN LPRINT:LPRINT:LPRINT
10560 NEXT:NEXT:GOSUB 13690:GOTO 10420
10600 REM =====  ALL LINES BOLD PRINT ON IBM GRAPHICS PRINTER =====
10610 LPRINT CHR$(27)+"E";:FOR N=LB TO LE:FOR M=1 TO NL:LPRINT A$(N):LPRINT B$(N):LPRINT C$(N):IF VAL(NRLB$)>3 THEN LPRINT D$(N)ELSE LPRINT"
10690 IF VAL(NRLB$)>4 THEN LPRINT E$(N)ELSE LPRINT"
10700 IF VAL(NRLB$)>4 THEN LPRINT F$(N)ELSE LPRINT"
10710 IF VAL(LZ$)=6 THEN 10730
10720 IF VAL(LZ$)=9 THEN LPRINT:LPRINT:LPRINT
10730 NEXT:NEXT:GOSUB 13690:LPRINT CHR$(27);CHR$(70);:GOTO 10600
10770 REM =====  ALL LINES ITACICS/EMPHASIZED  =====
10780 LPRINT CHR$(27)+"@";:LPRINT CHR$(27)+CHR$(69);:LPRINT CHR$(27)+CHR$(52);:FOR N=LB TO LE:FOR M=1 TO NL:LPRINT A$(N):LPRINT B$(N):LPRINT C$(N):IF VAL(NRLB$)>3 THEN LPRINT D$(N)ELSE LPRINT"
10870 IF VAL(NRLB$)>4 THEN LPRINT E$(N)ELSE LPRINT"
10880 IF VAL(NRLB$)>5 THEN LPRINT F$(N)ELSE LPRINT"
10890 IF VAL(LZ$)=6 THEN 10910
10900 IF VAL(LZ$)=9 THEN LPRINT:LPRINT:LPRINT
10910 NEXT:NEXT:GOSUB 13690:GOTO 10770
10950 IF VAL(LZ$)=6 THEN 10910
10960 REM =====  10 PITCH (PICA) PRINT =====
10970 LPRINT CHR$(27);CHR$(70);
10975 LPRINT CHR$(18);:FOR N=LB TO LE:FOR M=1 TO NL:LPRINT A$(N):LPRINT B$(N):LPRINT C$(N):IF VAL(NRLB$)>3 THEN LPRINT D$(N)ELSE LPRINT"
11050 IF VAL(NRLB$)>4 THEN LPRINT E$(N)ELSE LPRINT"
11060 IF VAL(NRLB$)>5 THEN LPRINT F$(N)ELSE LPRINT"
11070 IF VAL(LZ$)=6 THEN 11090
11080 IF VAL(LZ$)=9 THEN LPRINT:LPRINT:LPRINT
11090 NEXT:NEXT:GOSUB 13690:GOTO 10960
11130 REM =====  ALL LINES CONDENSED =====
11140 FOR N=LB TO LE:FOR M=1 TO NL:LPRINT CHR$(15);A$(N):LPRINT B$(N):LPRINT C$(N):IF VAL(NRLB$)>3 THEN LPRINT D$(N)ELSE LPRINT"
11210 IF VAL(NRLB$)>4 THEN LPRINT E$(N)ELSE LPRINT"
11220 IF VAL(NRLB$)>5 THEN LPRINT F$(N)ELSE LPRINT"
11230 IF VAL(LZ$)=6 THEN 11240
11240 IF VAL(LZ$)=9 THEN LPRINT:LPRINT:LPRINT
11250 NEXT:NEXT:LPRINT CHR$(18);:GOSUB 13690:GOTO 11130
11300 REM =====  PRINT OUT FIRST LINE OF EACH RECORD  =====
11310 CLS:LOCATE 5,30:PRINT"EXTRACT FROM: ";FILESPEC$;:POKE 91,1:POKE 92,25:LOCATE 7,15:PRINT"FILE SUMMARY REPORT ";FILESPEC$;" AS OF ";DATE$;:PRINT:PRINT
11320 FOR FL=1 TO P:PRINT TAB(10);A$(FL):NEXT FL
11480 LPRINT TAB(10)"FILE SUMMARY REPORT ";FILESPEC$;"  AS OF   ";DATE$:LPRINT
11490 FOR FL=1 TO P:
11540 LPRINT TAB(8);;LEFT$(A$(FL),20);TAB(30)LEFT$(B$(FL),20):PN=PN+1:IF PN=55 THEN LPTINT CHR$(140):LPRINT STRING$(10,5):PN=5
11570 NEXT FL:GOSUB 12510
11590 LOCATE,,,0,7:DEF SEG:POKE 91,1:CLS:END
11640 REM =====  FINAL SCREEN DISPLAY =====
11650 CLS:GOSUB 2070:GOSUB 2850:GOSUB 2410:GOSUB 3100:GOSUB 12510:LOCATE 6,23:PRINT"Open New File                 <PRESS> 1"
11655 LOCATE 8,23:PRINT"Print first LINE & Summary    <PRESS> 2";:LOCATE 9,33:PRINT"<PAPER IN PRINTER>";:LOCATE 11,23:PRINT"Return to CONTROL Menu        <PRESS> 3";
11770 LOCATE 13,23:PRINT"Run EasyRite Word Processor   <PRESS> 4":LOCATE 15,23:PRINT"Thanks!  Bye!       To QUIT - <PRESS> 5";:LOCATE 21,65,0:FINLEN=1:LOW=49:HIGH=53:GOSUB 3220:ON VAL(INPTR$)GOTO 1400,11300,2890,15580,11590
11850 LOCATE,,,0,7:POKE 91,1:POKE 92,25:END
11890 REM =====  ERROR TRAP ROUTINE =====
11900 GOSUB 3060:LOCATE 25,2:PRINT SPC(78);:KEY OFF:LOCATE 25,28,0:COLOR 24,4:PRINT" ERROR ";:COLOR 7,0:PRINT" #";ERR;" IN LINE #";ERL;:FOR T=1 TO 1000:NEXT:IF ERR=53 THEN LOCATE 20,10:PRINT SPC(30),ELSE 12050
12020 LOCATE 20,10:PRINT"File not found   ";:PRINT" ** Load CORRECT Disk";
12050 IF ERR=54 THEN LOCATE 20,10:PRINT SPC(30),ELSE 12090
12060 LOCATE 20,10:PRINT"Bad file mode    ";:PRINT" ** Correct File Mode";
12090 IF ERR=55 THEN LOCATE 20,10:PRINT SPC(30),ELSE 12130
12100 LOCATE 20,10:PRINT"File already OPEN ";:PRINT" ** CLOSE and REOPEN";
12130 IF ERR=61 THEN LOCATE 20,10:PRINT SPC(30),ELSE 12170
12140 LOCATE 20,10:PRINT"Disk FULL         ";:PRINT" ** Install New Disk";
12170 IF ERR=70 THEN LOCATE 20,10:PRINT SPC(30),ELSE 12210
12180 LOCATE 20,10:PRINT"Disk WRITE PROTECT  ";:PRINT" ** Remove W/P Tab";
12210 IF ERR=71 THEN LOCATE 20,10:PRINT SPC(30),ELSE 12250
12220 LOCATE 20,10:PRINT"Disk NOT READY    ";:PRINT" ** CLOSE Drive Door";
12250 IF ERR=24 THEN LOCATE 20,10:PRINT SPC(30),ELSE 12290
12260 LOCATE 20,10:PRINT"Printer OFF-LINE ";:PRINT"  ** Set ON-LINE Mode";
12290 IF ERR=25 THEN LOCATE 20,10:PRINT SPC(30),ELSE 12330
12300 LOCATE 20,10:PRINT"Printer not ON    ";:PRINT" ** Check Printer ON";
12330 IF ERR=27 THEN LOCATE 20,10:PRINT SPC(30),ELSE 12420
12340 LOCATE 20,10:PRINT"OUT OF PAPER!     ";:PRINT" ** Check Paper Path";
12370 LOCATE 22,20:GOSUB 2410:GOSUB 3020:GOSUB 3060:RETURN
12420 GOSUB 12370:LOCATE 22,10,0:PRINT"Correct SYSTEM ERROR - <PRESS> ENTER";:LOCATE 22,10,0:GOSUB 3460:KEY ON:KEY OFF:COLOR 7,0:RESUME 2890
12510 REM =====  ELAPSED TIME PRINTOUT SUBROUTINE =====
12520 N$=TIME$:DEF FNH(H$)=VAL(LEFT$(H$,2)):DEF FNM(M$)=VAL(MID$(M$,4,2)):DEF FNS(S$)=VAL(RIGHT$(S$,2)):TMH=(FNH(N$))-FNH(BB$):TMM=(FNM(N$)-FNM(BB$)):TMS=(FNS(N$)-FNS(BB$)):LOCATE 25,2:PRINT SPC(78);:KEY OFF:LOCATE 25,5:PRINT"Start Time ";BB$;
12640 LOCATE 25,30:PRINT"End Time ";N$;:LOCATE 25,53:PRINT"Elapsed Time ";TMH;":";ABS(TMM);":";ABS(TMS);:RETURN
12690 CLS:LOCATE,,,0,7:POKE 91,1:POKE 92,25:END
12740 CLS:GOSUB 2070:LOCATE 10,22,0:PRINT"File Empty, or No Such Record in File!";:LOCATE 12,27,0:PRINT"<PRESS> Any Key to Continue";
12800 RES$=INKEY$:IF RES$=""THEN 12800
12820 GOTO 2890
12830 REM =====  DISK DIRECTORY REVIEW ROUTINE =====
12840 CLS:GOSUB 2410:GOSUB 2150:GOSUB 3020:LOCATE 21,20,0:PRINT"What Drive (A,B,C,D)";:KEY OFF:MZ$="":MZ$="AaBbCcDd":GOSUB 3110:GOSUB 13590:LOCATE 21,65,0:PRINT IN$;:ON MS GOTO 12980,12980,13050,13050,13120,13120,13190,13190
12980 LOCATE 3,1:FILES"A:*.*":COLOR 0,7:LOCATE 2,32:PRINT" Drive A: ";:COLOR 7,0:GOTO 13250
13050 LOCATE 3,1:FILES"B:*.*":COLOR 0,7:LOCATE 2,32:PRINT" Drive B: ";:COLOR 7,0:GOTO 13250
13120 LOCATE 3,1:FILES"C:*.*":COLOR 0,7:LOCATE 2,32:PRINT" Drive C: ";:COLOR 7,0:GOTO 13250
13190 LOCATE 3,1:FILES"D:*.*":COLOR 0,7:LOCATE 2,32:PRINT" Drive D: ";:COLOR 7,0
13250 GOSUB 2790:GOSUB 2150:LOCATE 20,24:PRINT"Another Directory?      <PRESS 1>";:LOCATE 21,24:PRINT"Put File into LablFile? <PRESS 2>";:LOCATE 22,24:PRINT"Return to CONTROL Menu? <PRESS 3>";:LOCATE 21,65,0:FINLEN=1:LOW=49:HIGH=51:GOSUB 3220
13360 ON VAL(INPTR$)GOTO 13370,13400,13380
13370 GOTO 12830
13380 CLS:GOTO 2890
13400 FOR LC=19 TO 22:LOCATE LC,10:PRINT SPC(50):NEXT:GOTO 5020
13410 REM =====  CONTROL MENU DISPLAY ROUTINE =====
13420 LOCATE 16,9,0:PRINT M1ST$;:LOCATE 18,9,0:PRINT M2ND$;:LOCATE 20,9,0:PRINT M3RD$;:LOCATE 22,9,0:PRINT M4TH$;:LOCATE 14,25:PRINT"  Select and <PRESS> a Letter  ";:LOCATE 15,27:PRINT STRING$(27,"~");:GOSUB 12510:MZ$="":MZ$="AaCcDdEeLlPpQqRrSsZzXxNn
13570 GOSUB 13590:RETURN
13590 REM =====  INKEY RESPONSE FOR DIRECTORY SELECTION  =====
13600 IN$=INKEY$:IF IN$=""THEN 13590
13620 MS=INSTR(MZ$,IN$):IF MS=0 THEN SOUND 1000,4:GOTO 13590
13640 RETURN
13650 LOCATE,,,0,7:POKE 91,1:POKE 92,25:END
13690 REM =====  OPTION SUBROUTINE IN PRINT SEQUENCE  =====
13700 LPRINT CHR$(27)+"@";:CLS:GOSUB 2150:GOSUB 2410:LOCATE 20,13:PRINT"To REPRINT this label/s    <PRESS> 1";:LOCATE 21,13:PRINT"To print DIFFERENT label/s <PRESS> 2";:LOCATE 22,13:PRINT"To CONTROL Menu            <PRESS> 3";:GOSUB 3110:GOSUB 12510
13820 FINLEN=1:LOW=49:HIGH=51:GOSUB 3220:NL=1:ON VAL(INPTR$)GOTO 13880,8830,2890
13880 RETURN
13890 END
13900 REM =====  IN PROGRAM  RESET OF LABEL SIZE  =====
13910 IF VAL(LZ$)=6 THEN SIZE$="1 INCH
13920 IF VAL(LZ$)=9 THEN SIZE$="1½ INCH
13930 CLS:GOSUB 2070:LOCATE 8,9:PRINT"PRINT ROUTINE CURENTLY SET FOR ";:COLOR 15:LOCATE 8,40:PRINT SIZE$:COLOR 7,0:LOCATE 8,47:PRINT" LABELS and ";:COLOR 15:PRINT;NRLB$;:COLOR 7,0:PRINT" PRINT LINES.":LZ$="":NRLB$="":LOCATE 12,25:COLOR 15:COLOR 7,0
14120 LOCATE 14,25,0:PRINT"<PRESS>";:COLOR 15:PRINT" 6 ";:COLOR 7:PRINT"FOR 1.0 INCH 6 LINE label":LOCATE 16,25,0:PRINT"<PRESS>";:COLOR 15:PRINT" 9 ";:COLOR 7:PRINT"FOR 1.5 INCH 9 LINE label
14240 LZ$=INKEY$:IF LZ$=""THEN 14240
14260 IF VAL(LZ$)=6 THEN 14280
14270 IF VAL(LZ$)<>9 THEN BEEP:GOTO 14240
14280 LOCATE 20,19,0:PRINT"Select <PRESS> ";:COLOR 15:PRINT" 3, 4, 5,";:COLOR 7,0:PRINT" or ";:COLOR 15:PRINT" 6 ";:COLOR 7,0:PRINT" PRINTED LINES.
14380 NRLB$=INKEY$:IF NRLB$=""THEN 14380
14400 IF VAL(NRLB$)<3 OR VAL(NRLB$)>6 THEN BEEP:BEEP:GOTO 14380
14410 RETURN
14420 END
14430 REM =====  EMPTY OUT A SINGLE RECORD/FILE  =====
14440 CLS:GOSUB 2150:GOSUB 2410:GOSUB 3100:LOCATE 21,10,0:PRINT"WHICH FILE DO YOU WISH TO EMPTY":FINLEN=3:LOW=48:HIGH=57:LOCATE 21,62,0:GOSUB 3220:GOSUB 3020:XR=VAL(FIN$):LOCATE 21,62,0:LOCATE 21,62,0:PRINT XR:IF XR<=P THEN 14690
14610 IF XR>P THEN GOSUB 3020:COLOR 15:LOCATE 21,52:PRINT"NO SUCH FILE!";:COLOR 7
14620 LOCATE 21,10,0:PRINT SPC(35):LOCATE 10,27:PRINT"<PRESS> Any Key to Continue.
14660 RES$=INKEY$:IF RES$=""THEN 14660
14680 GOTO 2890
14690 ON VAL(INPTR$)GOTO 14700
14700 GOSUB 2070:LOCATE 4,20:PRINT"FILE RECORD ";:COLOR 15:PRINT XR;:COLOR 7,0:PRINT" READS:":LOCATE 6,20:PRINT A$(XR):LOCATE 7,20:PRINT B$(XR):LOCATE 8,20:PRINT C$(XR):LOCATE 9,20:PRINT D$(XR):LOCATE 10,20:PRINT E$(XR):LOCATE 11,20:PRINT F$(XR):COLOR 15
14900 LOCATE 21,10:PRINT"DO YOU WANT TO EMPTY THIS FILE (Y/N)":COLOR 7:GOSUB 3380:IF YN=1 THEN 14960
14950 IF YN=2 THEN 2890
14960 LOCATE 21,10:PRINT SPC(40):A$(XR)="<<═ E M P T Y ═>>":B$(XR)="":C$(XR)="":D$(XR)="":E$(XR)="":F$(XR)="":LOCATE 13,20:PRINT"FILE RECORD ";:COLOR 15:PRINT XR;:COLOR 7,0:PRINT" HAS BEEN EMPTIED":LOCATE 15,20
15110 PRINT"YOU MAY REFILL THIS RECORD USING EDIT FUNCTION":LOCATE 21,10,0:PRINT SPC(30):LOCATE 21,20,0:PRINT"<PRESS> ANY KEY TO CONTINUE
15160 A$=INKEY$:IF A$=""THEN 15160
15180 GOTO 2890
15190 GOSUB 15210:GOTO 2890
15210 REM =====  OPTIONAL RESET OF INPUT HEADINGS  =====
15220 CLS:GOSUB 2070:GOSUB 2850:GOSUB 6630:LOCATE 21,18:PRINT"ARE THE CURRENT FILE HEADINGS SATISFACTORY  (Y/N)":GOSUB 3380:IF YN=1 THEN RETURN
15300 IF YN=2 THEN 15310
15310 LOCATE 21,10:PRINT SPC(60):LOCATE 21,18:PRINT"INPUT NEW HEADINGS (10 CHARACTERS MAX)"
15320 LOCATE 4,14,0
15330 FOR LINEIN%=4 TO 14 STEP 2
15340 LOCATE LINEIN%,50
15350 PRINT STRING$(10,254)
15360 NEXT
15370 FOR LINEOUT%=4 TO 14 STEP 2
15375 LOCATE LINEOUT%,50,1,0,7
15380 FINLEN%=10
15385 GOSUB 3520
15390 USER$(LINEOUT%)=FIN$
15400 LOCATE LINEOUT%,50,0
15410 PRINT USER$(UN%)
15420 NEXT
15440 REM ===== CHECK ON CORRECT INPUT =====
15450 LOCATE 21,4
15460 PRINT SPC(60)
15470 LOCATE 21,20,0
15480 PRINT"Are These Correct? <Y/N>"
15490 GOSUB 3380
15500 IF YN%=1 THEN RETURN
15510 IF YN%=2 THEN 15310
15520 END
15580 RUN"EASYRITE.BAS"

Directory of PC-SIG Library Disk #0146

 Volume in drive A has no label
 Directory of A:\

EASYRITE BAS     42795   2-15-87  12:01p
ER       EXE     74624   2-15-87  12:01p
FACTS             4096   2-15-87  12:01p
FILES146 TXT      1003   1-16-87   2:35p
GENLEGER BAS     30611   2-15-87  12:01p
GL       EXE     95478   2-15-87  12:01p
GLEGER   DAT      2489   2-15-87  12:01p
GO       BAT        79   1-16-87   2:33p
LABLFILE BAS     32190   2-15-87  12:01p
LF       EXE     67200   2-15-87  12:01p
README            1443   2-15-87  12:01p
README2           1730   2-15-87  12:01p
TEXT     ONE      1245   2-15-87  12:01p
TEXT     TWO      1041   2-15-87  12:01p
       14 file(s)     356024 bytes
                           0 bytes free