PCjs Machines

Home of the original IBM PC emulator for browsers.

Logo

PC-SIG Diskette Library (Disk #401)

[PCjs Machine "ibm5150"]

Waiting for machine "ibm5150" to load....

Information about “THE ADDRESS BOOK”

The Address Book is a user-friendly personal or business address book
program written in BASIC.  With it, you can create your own address
book file which can be edited, printed, searched, and sorted.  Mailing
labels can be routinely prepared.  Birthdays and other user-defined
notes may be kept.  WordStar and WordPerfect mailmerge files also can
be created.  Sub-directories of the main directory can be routinely
created.  Function keys are used extensively and a RAM-disk may be used
for more speed.

NOTE: This program is set up to run on PC-DOS; clear directions to move
to MS-DOS are enclosed. It has been updated recently to assure it will
run on compatibles as well as IBM systems.

System Requirements:  64K, one disk drive and monochrome display

How to Start: Read the README.DOC and MANUAL.DOC files before
starting. To run the BASIC programs follow the GETTING STARTED
instructions for your configuration.

Suggested Registration:  $25.00

File Descriptions:

AD       BAS  Abreviated ADSTART.BAS without starting graphics
AD       HLP  Text file used by program to provide online help
AD       BAT  Batch file for starting ADSTART.BAS
ADFILES  BAS  Creates all necessary data files
ADEDIT   BAS  Program to edit entries
ADDIR    BAS  ?? << doesn't load properly >>
ADDELETE BAS  Program to delete entries
ADTRANS  BAS  Program to transfer records
ADSTART  BAS  Set-up and start program - chains to ADMAIN.BAS
ADSORT   BAS  Program to sort base by criteria
ADSEARCH BAS  Program to search by criteria
ADRODX   BAS  Program to print Rolodex-type labels
ADREAD   BAS  Program to scan entries
ADPRTC   BAS  Supplemental printing program
ADPRTA   BAS  Supplemental printing program
ADPRT    BAS  Master printing program
ADPRINT  BAS  Program to set printer parameters
ADNOTE   BAS  Program to create notes to records
ADNAME   BAS  Determines name of sub-program to run
ADMAIN   BAS  Main address book program
ADMAIL   HLP  Help file used by ADMAIL.BAS
ADMAIL   BAS  Prints address labels
ADLIST   BAS  Prints address book
ADWP     BAS  Converts data files for WordPerfect mail-merge
MANUAL   DOC  Text file containing instructions and user manual
AUTOEXEC BAT  Auto-start batch file to run ADSTART.BAS
ADZIP    BAS  Prints labels by zip code
ADWS     BAS  Converts data files for WordStar mail-merge
TEMPOR   TEM  Temporary data file (used internally)
SAMPLES  NTE  Data file - note codes
SAMPLES  ISS  Sample configuration file
SAMPLES  DAT  Sample data file

AD.BAS

5 KEY OFF:FOR I= 1 TO 10:KEY I,"":NEXT
10 CLS:LOCATE  5,27:COLOR 0,7:PRINT SPACE$(26):LOCATE  6,27:PRINT SPACE$(26)
20 LOCATE  7,27:PRINT SPACE$(12);"THE";SPACE$(11)
30 LOCATE 8,27:PRINT SPACE$(7);"ADDRESS BOOK";SPACE$(7):LOCATE 9,27:PRINT SPACE$(26):LOCATE 10,27:PRINT SPACE$(26)
40 COLOR 15,0:LOCATE 13,26:PRINT "INTEGRATED SOFTWARE SYSTEMS ":LOCATE 15,31:PRINT "BALTIMORE MARYLAND":COLOR 7,0
50 LOCATE 18,18:PRINT " (C) Copyright 1983  E. L. Loh and R. L. Caret"
60 COLOR 15,0:COLOR 0,7:LOCATE 22,28:PRINT "PLEASE WAIT, LOADING"
70 LOCATE 25,10:COLOR 1,7,0:PRINT "INTEGRATED SOFTWARE SYSTEMS";SPACE$(15);"SERIAL NUMBER: ";SNN$:COLOR 7,0
80 RUN"ADMAIN.BAS"

ADDELETE.BAS

1 DEF SEG = &H40:POKE &H17, PEEK(&H17) AND 223:POKE &H17,0
5 ARR$=CHR$(17)+CHR$(196)+CHR$(217)
10 DIM DQ$(12):FOR I= 1 TO 12:READ DQ$(I):NEXT
20 DATA JANUARY, FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
21 O3$=CHR$(218)+CHR$(196)+CHR$(191):O4$=CHR$(179)+" "+CHR$(179):O5$=CHR$(192)+CHR$(196)+CHR$(217)
22 O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F3:DELETE menu"+O2$+"F7:NAMES"+O2$+"F8:NOTES"+O2$+"F9:SAVE/cont"
25 DIM W$(14),B$(14),V$(16),V1$(16),Z(3),W(13)
35 FOR I=1 TO 13:READ W(I):NEXT
45 DATA 2,1,12,3,4,5,6,7,10,11,8,9,13
50 REM         TEMPORARY FILE
55 OPEN "TEMPOR.TEM" FOR INPUT AS #1
56 INPUT #1, FILE$,FILM$,FIL$:CLOSE #1:DIM ZK(40)
60 OPEN FILM$ FOR INPUT AS #3
70 INPUT #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$
72 FOR I=1 TO 36:INPUT #3, ZK(I):NEXT:CLOSE #3
75 SDEL=0:DIM D$(NN),D(NN)
85 OPEN FILE$ AS #4 LEN = 356
90 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
110 REM
111 ON ERROR GOTO 800
118 GOTO 190
120 A$="EDIT":Y1=2:GOTO 125
121 A$="SORT":Y1=4:GOTO 125
122 A$="SEARCH":Y1=5:GOTO 125
123 A$="PRINT":Y1=6:GOTO 125
124 A$="MAIN":Y1=1
125 IF SDEL=1 THEN CLS:LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0:GOSUB 970:GOSUB 141
126 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 12,21:PRINT "PLEASE WAIT, LOADING ";A$;" ROUTINES"
127 A$="AD"+A$:RUN A$
136 CLS:COLOR 3,0,1:LOCATE  12,30:PRINT "QUIT?  <Y>es or <N>o?":COLOR 14,0:LOCATE 12,38:PRINT "Y":LOCATE 12,47:PRINT "N":COLOR 3,0
137 GOSUB 180
138 IF Y$="N" THEN 190
140 CLS:A$="d":GOSUB 970:LOCATE 12,30:PRINT "   GOODBYE   ":SYSTEM
141 GOSUB 5210
142 LOCATE 12,22:PRINT "Do you want to create a backup file?":LOCATE 14,33:PRINT " <Y>es or <N>o? " :COLOR 14,0:LOCATE 14,35:PRINT "Y":LOCATE 14,44:PRINT "N":COLOR 3,0
143 GOSUB 180
144 IF Y$="N" THEN CLS:RETURN ELSE GOSUB 970:CLOSE:CHAIN "ADFILES",10,ALL
170 A$="DELETE":Y1=3:GOSUB 141:RETURN 190
180 GOSUB 35040:DEF SEG=0: POKE 1050, PEEK(1052)
181 Y$=INKEY$:IF Y$="" THEN 181 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
182 IF Y$="N" OR Y$="Y" THEN RETURN ELSE 180
190 ON KEY(1) GOSUB 124:ON KEY(2) GOSUB 120:KEY(1) ON:KEY(2) ON:ON KEY(3) GOSUB 190:KEY(3) ON:ON KEY(4) GOSUB 121:KEY(4) ON:ON KEY(5) GOSUB 122:KEY(5) ON:ON KEY(6) GOSUB 123: KEY(6) ON:ON KEY(7) GOSUB 20000:KEY(7) ON
191 ON KEY(8) GOSUB 4000:KEY(8) ON:ON KEY(9) GOSUB 170:KEY(9) ON
210  X1$="DELETE ":X3$="FILE = ":X5$="FUNCTION = ":X4$=SPACE$(26):Q$=CHR$(27)
220 GOSUB 5210
230 GET #4,NN+1:K1=VAL(V$(16)):IFIRST=K1:IEND=VAL(V$(14))
280 GOSUB 5300
349 DEF SEG=0: POKE 1050, PEEK(1052)
350 Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 350 ELSE 353
353 IF LEN(Y$)=2 THEN 380
354 IF Y$="r" OR Y$="R" THEN 400
355 IF Y$="!" THEN S$="!":MX=NN:GOTO 382
360 IF Y$="S" OR Y$="s" THEN 600 ELSE GOSUB 35040:GOTO 349
380 IF ASC(RIGHT$(Y$,1))=68 THEN 30000
381 IF ASC(RIGHT$(Y$,1))=113 THEN 136 ELSE 190
382 GOSUB 5000:K=K1:II=1
383 GET #4,K
384 COLOR 14,0:LOCATE 3,16:PRINT II;SPACE$(4):LOCATE 5,5:AA$=SPACE$(50):FOR J=1 TO 7:PRINT AA$:NEXT :LOCATE 5,5:GOSUB 460
385 IF Y$="I" THEN K=VAL(V$(15)) ELSE 387
386 IF II=1  THEN II=NN:GOTO 383 ELSE II=II-1:GOTO 383
387 IF (Y$="N" OR Y$="n" OR Y$="Q")  THEN K=VAL(V$(14)) ELSE 389
388 IF II=NN THEN II=1:GOTO 383 ELSE II=II+1 :GOTO 383
389 IF Y$="G" THEN K=IFIRST:II=1:GOTO 383
390 IF Y$="=" THEN GOSUB 1100:GOTO 383
391 IF Y$="-" THEN GOSUB 1000:GOTO 385
392 IF Y$="+" THEN GOSUB 1000:GOTO 385
395 IF Y$="O" THEN GET #4,IFIRST:K=VAL(V$(15)):II=NN:GOTO 383
397 COLOR 3,0:GOTO 220
400 GOSUB 5200:LOCATE 1,1:PRINT "EDIT:  DELETE ...  ":LOCATE 5,28 :PRINT "ENTER:  ADDRESS  # & ";ARR$:
410 LOCATE 8,39:PRINT "OR":LOCATE 10,28:PRINT ARR$;"  return to DELETE menu"
411 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32:LOCATE 15,10:COLOR 14,0:INPUT "Address number ...",NUM:DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223:COLOR 3,0
415 IF NUM=0 OR NUM>NN THEN 220
420 IF NUM>NN THEN 390 ELSE GOSUB 5000
421 NZ=INT((NN/10)+0.5):FOR IZ=1 TO 10:IF NUM=<IZ*NZ THEN K=ZK(IZ+26):NZ=(IZ-1)*NZ:IZ=10
422 NEXT
423 IF NZ=0 THEN NZ=1
424 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
430 FOR I=NZ TO NUM:GET #4,K:K=VAL(V$(14)):NEXT
435 LOCATE 1,70:PRINT SPACE$(9)
440 A1$=MID$(V$(2),5,VAL(V$(2)))
450 LOCATE 3,16:PRINT NUM:PRINT:PRINT:I=NUM:GOSUB 460:GOTO 220
460 GOSUB 5400
470 IF Y$="-" OR Y$="+" THEN RETURN
510 GOSUB 35040:DEF SEG=0: POKE 1050, PEEK(1052)
520 Y$=INKEY$:IF Y$="" THEN 520
521 DEF SEG=&H40:POKE  &H17,0
522 IF LEN(Y$)=2 THEN Y$=RIGHT$(Y$,1)
525 IF Y$="Y" OR Y$="y" THEN 543
526 IF (Y$="N" OR Y$="n" OR Y$="Q") THEN :RETURN
527 IF S$<>"!" THEN 510 ELSE IF Y$="r" OR Y$="R" THEN RETURN 190
530 IF Y$="=" THEN COLOR 14,0:LOCATE 21,20:PRINT "Jump to (1 - ";NN;" ) ... ";ARR$; ELSE 532
531 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32:INPUT NUM:DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223:RETURN
532 IF Y$="G" THEN RETURN
533 IF Y$="O" THEN RETURN
534 IF Y$="I" AND I>0 THEN RETURN
535 IF Y$="-" THEN COLOR 14,0:LOCATE 23,20:PRINT "GO back #? ";ARR$;:GOTO 537
536 IF Y$="+" THEN COLOR 14,0:LOCATE 23,20:PRINT "GO forward #? ";ARR$; ELSE 510
537 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32
538 INPUT " ",NI:JJ=I:I=NI:NI=ABS(NI):COLOR 3,0
539 IF ABS(NI)>NN THEN LOCATE 23,20:GOSUB 35030:PRINT "OUTSIDE DATA RANGE.  1 TO";NN;:FOR K=1 TO 900:NEXT:LOCATE 23,10:PRINT SPACE$(68):I=JJ:GOTO 510
540 DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223:LOCATE 23,10:PRINT SPACE$(65):LOCATE 23,21:COLOR 0,7:PRINT "Hit <Scroll Lock> to stop at a RECORD.":COLOR 3,0:RETURN
543 LOCATE 22,10:COLOR 14,0:PRINT "PLEASE CONFIRM BY ENTERING <OK>. ":Y$=INPUT$(2):IF Y$="OK" OR Y$="ok" OR Y$="Ok" THEN 550 ELSE LOCATE 22,10:PRINT SPACE$(35):GOTO 520
550 SDEL=1:LOCATE 22,10:PRINT "PLEASE WAIT, DELETING . . . ";:GOSUB 5500
551 A=0:A$=MID$(V$(2),5,1):IF IEND=VAL(V$(16)) THEN IEND=VAL(V$(15))
552 IF VAL(V$(16))<>NN THEN 555 ELSE L1=VAL(V$(14)):L2=VAL(V$(15)):Z$(2)=V$(15):Z$(1)=V$(14)
553 IF IFIRST=VAL(V$(16)) THEN IFIRST =L1:GOTO 577 ELSE 577
555 Z(1)=VAL(V$(14)):Z(2)=VAL(V$(15)):Z(3)=VAL(V$(16)):Z$(1)=V$(14):Z$(2)=V$(15):Z$(3)=V$(16):IF IFIRST=Z(3) THEN IFIRST = Z(1):IEND=Z(2)
556 IF IEND = NN THEN IEND =Z(3)
558 GET #4,Z(2):LSET V$(14)=Z$(1):LSET V$(16)=V$(16):LSET V$(15)=V$(15):FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,Z(2):IF A$=MID$(V$(2),5,1) THEN A=1
560 GET #4,Z(1):LSET V$(15)=Z$(2):LSET V$(14)=V$(14):LSET V$(16)=V$(16):FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,Z(1):IF A=1 THEN 565
562 IF A$=MID$(V$(2),5,1) THEN ZK(QK-64)=Z(1):A=2
565 GET #4,NN:LSET V$(16)=Z$(3):LSET V$(14)=V$(14):LSET V$(15)=V$(15):FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:L1=VAL(V$(14)):L2=VAL(V$(15)):L3=VAL(V$(16)):PUT #4,Z(3)
567 IF A1<>0 THEN 570 ELSE QK1=ASC(MID$(V$(2),5,1)):IF NN=ZK(QK1-64) THEN ZK(QK1-64)=Z(3)
570 GET #4,L1:LSET V$(15)=Z$(3):LSET V$(14)=V$(14):LSET V$(16)=V$(16):FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,L1
575 GET #4,L2:LSET V$(14)=Z$(3):LSET V$(16)=V$(16):LSET V$(15)=V$(15):FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,L2:GOTO 580
577 GET #4,L1:LSET V$(15)=Z$(2):LSET V$(14)=V$(14):LSET V$(16)=V$(16):FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,L1
578 GET #4,L2:LSET V$(14)=Z$(1):LSET V$(16)=V$(16):LSET V$(15)=V$(15):FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,L2
580 NMID=INT(NN/2+0.5):GET #4,NN+1:LSET V$(14)=STR$(IEND):LSET V$(16)=STR$(IFIRST):LSET V$(15)=STR$(NMID):FOR J=3 TO 13:LSET V$(J)=V$(J):NEXT:LSET V$(1) = DATE$:LSET V$(2) = TIME$:PUT #4,NN
585 MX=MX-1:NN=NN-1:LOCATE 22,1:PRINT SPACE$(70)
590 IF S$<>"!" THEN RETURN ELSE K=VAL(Z$(1)):RETURN 383
600 GOSUB 5200
610 LOCATE 1,1:PRINT "EDIT:  DELETE ...  ":LOCATE 5,28 :PRINT "ENTER:  SURNAME & ";ARR$:LOCATE 6,15:PRINT  "(full name or any part starting from left most character)"
620 LOCATE 8,39:PRINT "OR":LOCATE 10,28:PRINT ARR$;"  return to DELETE menu":LOCATE 15,10:COLOR 14,0:INPUT "SURNAME ... ",S$
630 MS=0:MM=LEN(S$): IF MM = 0 THEN 210
635 GOSUB 5200:GOSUB 5000:QK=ASC(LEFT$(S$,1)):IF QK>90 OR QK<65 THEN 790 ELSE K=ZK(QK-64)
636 IF K=0 THEN 790
637 LOCATE 1,70:COLOR 16,7:PRINT "WORKING ":COLOR 3,0
640 FOR IK=1 TO NN:GET #4,K
650 IF S$<>MID$(V$(2),5,MM) THEN 665
655 LOCATE 1,70:PRINT SPACE$(9)
660 MS=1:LOCATE 3,16:PRINT IK:LOCATE 5,5:AA$=SPACE$(50):FOR J=1 TO 5:PRINT AA$:NEXT :LOCATE 5,5:GOSUB 460:GOTO 668
665 IF ASC(MID$(V$(2),5,1))<>QK THEN 780
668 K=VAL(V$(14))
670 NEXT
780 IF MS=1 THEN 210
790 LOCATE 22,23:PRINT "Name cannot be found.  Try again.":FOR I= 1 TO 500:NEXT I: GOTO 600
800 IF ERL =4010 THEN CLS:LOCATE 10,15:PRINT "File containing KEYS used in NOTES does not exist.":LOCATE 12,22:PRINT "Return to EDIT program to create file." :LOCATE 18,30:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030 ELSE 805
802 Y$=INKEY$:IF Y$="" THEN 802
803 RESUME 190
805 CLS:LOCATE 8,31: PRINT "ERROR ENCOUNTERED.":FOR I= 1 TO 300:NEXT
808 IF ERR = 61 THEN CLS:LOCATE 25,10:COLOR 1,7,0:PRINT "FILE = ";FILE$;SPACE$(10);"DISK FULL ":COLOR 7,1:LOCATE 1,1
810 IF ERR = 61 THEN LOCATE 10,35:PRINT "DISK FULL.":LOCATE 12,17:PRINT "LOAD FORMATTED DISK AND TYPE <CONT> AND RETURN.":COLOR 14,0:LOCATE 12,47:PRINT "CONT":BEEP:COLOR 3,0:STOP
820 IF ERR = 61 THEN RESUME 190
825 RESUME 190
970 Y$=LEFT$(A$,1)
972 OPEN FILM$ FOR OUTPUT AS #3
974 WRITE #3, Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$
975 FOR I=1 TO 36:WRITE #3, ZK(I):NEXT
978 CLOSE #3:RETURN
1000 IS=II:LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
1010 NII=ABS(NI):FOR NF = 1 TO NII
1015 DEF SEG=&H40:IF PEEK(&H17) AND 16 THEN 1070
1020 IF NI<0 OR Y$="-" THEN II=IS-NF:K=VAL(V$(15)):GET #4,K:GOTO 1025 ELSE K=VAL(V$(14)):GET #4,K:II=IS+NF
1025 IF II=<0 THEN II=NN+II
1026 IF II>NN THEN II=ABS(II-NN)
1030 COLOR 14,0:LOCATE 3,16:PRINT II;SPACE$(4):LOCATE 5,5:AA$=SPACE$(50):FOR J=1 TO 7:PRINT AA$:NEXT :LOCATE 5,5
1031 GOSUB 460:NEXT
1055 LOCATE 23,20:PRINT SPACE$(40)
1060 Y$="":LOCATE 1,70:PRINT SPACE$(9):GOTO 510
1070 LOCATE 23,20:PRINT SPACE$(40)
1080 Y$="":LOCATE 1,70:PRINT SPACE$(9):GOTO 510
1100 IF NUM=<0 OR NUM>NN THEN GOSUB 35040:LOCATE 21,20:PRINT "REENTER NUMBER BETWEEN 1 - ";NN;"  ";SPACE$(5) ELSE 1105
1103 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32:LOCATE 21,51:INPUT NUM:DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223
1105 IF NUM=<0 OR NUM>NN THEN 1100 ELSE LOCATE 21,20:PRINT SPACE$(50):LOCATE 22,20:PRINT SPACE$(58)
1110 IF ABS(NUM-II)<10 AND NUM-II<0 THEN NZ=II-1:K=VAL(V$(15)):GOTO 1190
1115 IF NUM-II<10 AND NUM-II >=0 THEN NZ=II+1:K=VAL(V$(14)):LOCATE 23,20:PRINT SPACE$(50):GOTO 1150
1120 NZ=INT((NN/10)+0.5):FOR IZ=1 TO 10:IF NUM=<IZ*NZ THEN K=ZK(IZ+26):NZ=(IZ-1)*NZ:IZ=10
1125 NEXT
1140 IF NZ=0 THEN NZ=1
1150 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
1160 FOR II=NZ TO NUM-1:GET #4,K:K=VAL(V$(14)):NEXT
1170 LOCATE 1,70:PRINT SPACE$(9)
1180 RETURN
1190 LOCATE 23,20:PRINT SPACE$(50)
1195 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
1200 FOR II=NZ TO NUM-1 STEP -1:GET #4,K:K=VAL(V$(15)):NEXT
1210 LOCATE 1,70:PRINT SPACE$(9):RETURN
4000 FILN$ =FIL$+".NTE"
4010 OPEN FILN$ FOR INPUT AS #2
4030 FOR I= 1 TO 20:INPUT #2, NKEY$(I),NOTE$(I):IF NKEY$(I)=CHR$(15) THEN 4035 ELSE NEXT
4035 NP=I-1:CLOSE #2
4040 GOSUB 5200
4050 LOCATE 1,1:PRINT "NOTES:  KEYS":LOCATE 1,30:COLOR 14,0:PRINT "KEYS       ";:COLOR 3,0:PRINT " DESCRIPTION":FOR I=1 TO NP:COLOR 14,0:LOCATE 4+I,30:PRINT NKEY$(I);:COLOR 3,0:LOCATE ,40:PRINT " = ";NOTE$(I):NEXT
4060 LOCATE 20,28:COLOR 14,0:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030
4065 Y$=INKEY$:IF Y$="" THEN 4065
4066 COLOR 3,0
4070 RETURN 190
5000 REM
5004 GOSUB 5200
5006 PRINT "EDIT:  DELETE ...":PRINT:PRINT TAB(5);"RECORD # "
5100 LOCATE 15,1:PRINT "OK TO DELETE?  <";:COLOR 14,0:PRINT "Y";:COLOR 3,0:PRINT ">es ":COLOR 3,0
5110 A=CSRLIN:IF S$="!" THEN LOCATE A,16:PRINT "<PgDn> or <N>o - next record.":LOCATE A,27:COLOR 14,0:PRINT "N" :LOCATE A,17:PRINT "PgDn" ELSE LOCATE A,16:PRINT "<N>o.":LOCATE A,17:COLOR 14,0:PRINT "N"
5120 IF S$<>"!" THEN RETURN ELSE COLOR 3,0:LOCATE A+1,16:PRINT "<PgUp> - previous record":LOCATE A+2,16:PRINT "<+> Scan forward ":COLOR 14,0:LOCATE A+1,17:PRINT "PgUp":LOCATE A+2,17:PRINT "+"
5125 COLOR 3,0:LOCATE A,54:PRINT "<Home> - First record.":LOCATE A,55:COLOR 14,0:PRINT "Home" :LOCATE A+1,54:COLOR 3,0:PRINT "<End> - Last record.":COLOR 14,0:LOCATE A+1,55:PRINT "End"
5126 COLOR 3,0:LOCATE A+2,54:PRINT "<-> Scan backward":LOCATE A+2,55:COLOR 14,0:PRINT "-":COLOR 3,0
5128 LOCATE A+3,16:PRINT "<=> Jump ":LOCATE A+3,17:COLOR 14,0:PRINT "=":COLOR 3,0
5130 LOCATE A+3,54:PRINT "<";:COLOR 14,0:PRINT "R";:COLOR 3,0:PRINT "> Return to Menu";:COLOR 14,0:PRINT "?":COLOR 3,0:RETURN ELSE RETURN
5200 CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;:COLOR 3,0:LOCATE 1,1:RETURN
5210 CLS:LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$;:COLOR 3,0:LOCATE 1,1:RETURN
5300 PRINT TAB(4);"EDIT - DELETE - MENU":PRINT:PRINT "CHOOSE ONE OF THE FOLLOWING:  "
5310 PRINT:COLOR 14,0
5320 PRINT "   ";CHR$(186);"     ";O3$:PRINT "   ";CHR$(186);"     ";O4$:PRINT "   ";CHR$(25);"     ";O5$:COLOR 3,0
5330 PRINT :PRINT TAB(4);"R)ecord number":PRINT TAB(4);"S)URNAME":PRINT TAB(4);"!)EXAMINE complete file"
5340 COLOR 14,0:LOCATE 9,4:PRINT "R":LOCATE 10,4:PRINT "S":LOCATE 11,4:PRINT "!
5350 COLOR 31,0:LOCATE 6,11:PRINT "?":COLOR 3,0
5355 LOCATE 17,40:PRINT " KEY F1 = Return to MAIN menu"
5360 LOCATE 18,40:COLOR 14,0:PRINT "     F3";:COLOR 3,0:PRINT " = Return to DELETE menu"
5370 LOCATE 19,40:PRINT "     F7 = List of names in Address Book"
5375 LOCATE 20,40:PRINT "     F8 = KEYS used in NOTES"
5380 LOCATE 21,40:PRINT "     F9 = Save/Continue"
5385 LOCATE 22,40:PRINT "    F10 = HELP"
5390 LOCATE 23,40:PRINT "ALT F10 = QUIT"
5395 LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date:  ";DATE$:LOCATE 3,62:PRINT "Time:  ":S$="":RETURN
5400 COLOR 11,0:LOCATE 5,1:PRINT SPACE$(60):LOCATE 5,1:PRINT TAB(10);MID$(V$(13),5,VAL(V$(13)));MID$(V$(1),5,VAL(V$(1)));" ";MID$(V$(2),5,VAL(V$(2)))
5410 LOCATE 6,1:FOR J= 3 TO 8:K=W(J)
5420 IF VAL(V$(K))=0 THEN 5425 ELSE PRINT TAB(10);MID$(V$(K),5,VAL(V$(K)));SPACE$(30)
5425 NEXT
5440 RETURN
5500 COLOR 14,0:PRINT MID$(V$(13),5,VAL(V$(13)));MID$(V$(1),5,VAL(V$(1)));" ";MID$(V$(2),5,VAL(V$(2))):RETURN
5510 FOR J= 3 TO 11:K=W(J):IF J>8 THEN JJ=J+2 ELSE JJ=J+1
5520 LOCATE JJ,15:PRINT D$(K);SPACE$(35-LEN(D$(K))):NEXT
5530 LOCATE 14,15:PRINT SPACE$(64):PRINT SPACE$(80):LOCATE 14,15:PRINT D$(9):RETURN
20000 GOSUB 970:A$="ADDELETE":CHAIN "ADNAME",20000,ALL
30000 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 1,1
30010 OPEN "AD.HLP" AS #2 LEN=78
30020 FIELD #2, 78 AS A$
30030 I=1:M=1
30040 GET #2,I
30090 IF LEFT$(A$,1) <> CHR$(15) THEN PRINT A$ :I=I+1:GOTO 30040 ELSE 30130
30130 LOCATE 24,27:COLOR 14,0:PRINT "HIT ANY KEY TO CONTINUE";:COLOR 3,0:GOSUB 35030
30140 Y$=INKEY$:IF Y$="" THEN 30140
30150 CLOSE #2:GOTO 190
35000 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
35010 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
35030 IF SND$="N" THEN RETURN ELSE SOUND 523.25,2:SOUND 30000,2:SOUND 523.25,2:RETURN
35040 IF SND$="N" THEN RETURN ELSE BEEP:RETURN

ADEDIT.BAS

10 DEF SEG = &H40:POKE &H17, PEEK(&H17) AND 223
100 ARR$=CHR$(17)+CHR$(196)+CHR$(217)
110 DIM D$(13),V$(16),Q$(13),B$(13),LS%(13),NOTE$(20),NKEY$(20),AZ$(3),AZ(3),W(13),D(16),V1$(16),Z(3),G$(6)
115 ST$="stopStopSTOP"
120 O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F2:EDIT menu"+O2$+"F7:NAMES"+O2$+"F8:NOTES"+O2$+"F9:SAVE/CONT":NKEY$(1)=""
130 FOR I=1 TO 13:READ Q$(I):NEXT:FOR I=1 TO 6:READ G$(I):NEXT
140 FOR I=1 TO 13:READ LS%(I):NEXT
150 FOR I=1 TO 13:READ W(I):NEXT
160 DATA "NAME - SURNAME: ","NAME - FIRST:   ","TITLE:          ","COMPANY:        ","STREET:         ","CITY:           ","STATE:          ","ZIPCODE:        ","     HOME:      ","   OFFICE:      ","BIRTHDAY:       ","NOTE:           ","TELEPHONE:"
165 DATA "Dr. ","Mr. ","Mrs. ","Ms. ","Miss ","Prof. "
170 DATA 15,15,30,30,30,15,2,10,12,12,8,60,12
180 DATA 2,1,12,3,4,5,6,7,10,11,8,9,13
190 ON ERROR GOTO 1940
200 REM
290 REM         TEMPORARY FILE
295 OPEN "TEMPOR.TEM" FOR INPUT AS #1
296 INPUT #1,  FILE$,FILM$,FIL$:CLOSE #1:DIM ZK(40)
300 OPEN FILM$ FOR INPUT AS #3
310 INPUT #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:FOR I= 1 TO 36:INPUT #3, ZK(I):NEXT:CLOSE #3:ZTEST=0
312 FOR I= 1 TO 26:ZTEST=ZK(I)+ZTEST:NEXT
315 OPEN FILE$ AS #4 LEN = 356
320 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
322 IF Y$="G" OR Y$="C" THEN NRED=999:YNEW=1:GOSUB 6000:GOTO 1320
325 KNN=NN+1:GET #4, NN+1:KSET=VAL(V$(16)):GET #4,KSET:KEND=VAL(V$(15))
340 NRED=999:GOSUB 6000:GOTO 960
350 GOSUB 5100:GOSUB 6000:GOTO 960
390 IF ADD=999 THEN NN=I-1 :ADD=0:ED$=" " ELSE 970
400 A$="DELETE":Y1=3:GOTO 425
405 A$="SORT":Y1=4:GOTO 425
410 A$="SEARCH":Y1=5:GOTO 425
415 A$="PRINT":Y1=6:GOTO 425
420 A$="MAIN":Y1=1
425 IF SNEW=1 THEN GOSUB 5100:GOSUB 450
430 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 12,21:PRINT "PLEASE WAIT, LOADING ";A$;" ROUTINES"
435 A$="AD"+A$:RUN A$
450 GOSUB 2190:GOTO 600
500 CLS:COLOR 3,0,1:LOCATE  12,30:PRINT "QUIT?  <Y>es or <N>o?":COLOR 14,0:LOCATE 12,38:PRINT "Y":LOCATE 12,47:PRINT "N":COLOR 3,0
505 GOSUB 560
510 IF Y$="N" THEN 350 ELSE A$="E":GOSUB 2190
520 CLS:LOCATE 12,30:PRINT "   GOODBYE   ":SYSTEM
550 GOSUB 5100:Y1=2:GOSUB 600:RETURN 350
560 GOSUB 35040:DEF SEG=0: POKE 1050, PEEK(1052)
561 Y$=INKEY$:IF Y$="" THEN 561 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
563 IF Y$="N" OR Y$="Y" THEN RETURN ELSE 560
600 GOSUB 630:ADD=0:ED$=""
601 COLOR 3,0,1:LOCATE 12,22:PRINT "Do you want to create a backup file?":LOCATE 14,33:PRINT "<Y>es or <N>o.":LOCATE 14,34:COLOR 14,0:PRINT "Y":LOCATE 14,43:PRINT "N":COLOR 3,0
603 GOSUB 560
604 IF Y$="N" THEN CLS:RETURN ELSE CLOSE:CHAIN "ADFILES",10,ALL
630 CLS:LOCATE 25,10:COLOR 1,10,1:PRINT X3$;FILE$;X4$;X5$;X1$;:COLOR 3,0:LOCATE 1,1:RETURN
690 COLOR 3,0,1:PRINT TAB(10);"EDIT MENU":PRINT:PRINT "CHOOSE ONE OF THE FOLLOWING:  "
700 PRINT:COLOR 14,0:A$=CHR$(218)+CHR$(196)+CHR$(191):B$=CHR$(179)+" "+CHR$(179):C$=CHR$(192)+CHR$(196)+CHR$(217)
710 PRINT "   ";CHR$(186);"     ";A$:PRINT "   ";CHR$(186);"     ";B$:PRINT "   ";CHR$(25);"     ";C$:COLOR 3,0
720 LOCATE 9,1:PRINT TAB(4);"U)PDATE file":PRINT TAB(4);"A)DD to file":PRINT TAB(4);"E)XAMINE and/or UPDATE NOTE keys"
722 COLOR 14,0:LOCATE 9,4:PRINT "U":LOCATE 10,4:PRINT "A":LOCATE 11,4:PRINT "E":COLOR 31,0:LOCATE 6,11:PRINT "?":LOCATE ,,0:COLOR 3,0
725 COLOR 3,0:LOCATE 17,40:PRINT "KEY  F1 = Return to Main menu"
726 COLOR 14,0:LOCATE 18,40:PRINT "     F2";:COLOR 3,0:PRINT " = Return to EDIT menu"
727 LOCATE 19,40:PRINT "     F7 = List of names in Address Book"
728 LOCATE 20,40:PRINT "     F8 = KEYS used in NOTES"
729 LOCATE 21,40:PRINT "     F9 = Save/continue"
730 LOCATE 22,40:PRINT "    F10 = HELP"
731 LOCATE 23,40:PRINT "Alt F10 = QUIT"
732 LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date:  ";DATE$:LOCATE 3,62:PRINT "Time:  ":RETURN
960 REM
965 IF ADD=999 THEN ADD=0:ED$=""
970  X1$="EDIT ":X3$="FILE = ":X5$="FUNCTION = ":X4$=SPACE$(30):Q$=CHR$(27)
980 GOSUB 630
990 GOSUB 690
1033 DEF SEG=0: POKE 1050, PEEK(1052)
1035 Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 1035 ELSE 1040
1040 IF LEN(Y$)=2 THEN 1055 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
1042 IF Y$="U" THEN 1090
1045 IF Y$="E" THEN 3000
1050 IF Y$="A" THEN 1320 ELSE GOSUB 35040:GOTO 1033
1055 IF ASC(RIGHT$(Y$,1))=68 THEN 30000
1060 IF ASC(RIGHT$(Y$,1))=113 THEN 500 ELSE 990
1090 ED$="CONT"
1100 MS=0:GOSUB 9000
1110 COLOR 3,0,1:LOCATE 1,1:PRINT "EDIT:  UPDATE ...  ":LOCATE 3,28 :COLOR 12,0:PRINT "ENTER:  SURNAME & ";ARR$:COLOR 3,0:LOCATE 5,13:PRINT  "(full name or any part starting from left most character)"
1115 LOCATE 4,18:PRINT "(Be sure the file has been sorted by SURNAME)"
1120 LOCATE 6,39:PRINT "OR":LOCATE 6,23:COLOR 12,0:PRINT "[!] & ";ARR$;" TO EXAMINE complete file":COLOR 3,0
1125 LOCATE 7,39:PRINT "OR":LOCATE 8,28:PRINT ARR$;"  return to EDIT menu"
1130 LOCATE 10,6:PRINT "If corrections are necessary, you must RENTER each entry completely!"
1140 LOCATE 12,10:PRINT "If you want to add to the notes, start the addition with [&]":LOCATE 13,10:PRINT "OR advance to the point where you want to insert or add using ";CHR$(26):LOCATE 14,10:PRINT "then type in new data."
1160 LOCATE 16,20:PRINT "The [@] character will erase the entry"
1170 COLOR 15,0:LOCATE 20,32: INPUT "SURNAME ... ",S$:MM=LEN(S$):IF MM=0 THEN 960
1180 IF NN=0 THEN 960:GOSUB 9000
1185 GOSUB 3500:GOSUB 5000
1186 GET #4,NN+1:K=VAL(V$(16)):K1=K:II=1:I1=0
1187 IF S$="!" THEN 1190 ELSE QK=ASC(LEFT$(S$,1)):IF QK>90 OR QK<65 THEN 1270 ELSE K=ZK(QK-64)
1188 IF K=0 THEN 1270
1190 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0:I1=I1+1:TEST=0:GET #4, K
1195 IF S$="!" THEN 1220
1200 IF S$<>MID$(V$(2),5,MM) THEN 1245
1220 LOCATE 1,70:PRINT SPACE$(9):GOSUB 2550
1225 MS=1:IF FRE(1)<800 THEN CHAIN "adedit.bas",1230,ALL
1227 IF Y$="r" OR Y$="R" THEN 960
1230 IF Y$="I" THEN K=VAL(V$(15)) ELSE 1233
1232 IF II=1  THEN II=NN:GOTO 1250 ELSE II=II-1:GOTO 1190
1233 IF (Y$="N" OR Y$="n" OR Y$="Q")  THEN K=VAL(V$(14)) ELSE 1235
1234 IF II=NN THEN II=1:GOTO 1250 ELSE II=II+1 :GOTO 1250
1235 IF Y$="G" THEN K=K1:II=1:GOTO 1190
1236 IF Y$="=" THEN GOSUB 1500:GOTO 1190
1238 IF Y$="-" THEN GOSUB 1400:GOTO 1225
1239 IF Y$="+" THEN GOSUB 1400:GOTO 1225
1240 IF Y$="O" THEN GET #4,K1:K=VAL(V$(15)):II=NN:GOTO 1190
1245 IF ZTEST=26 THEN K=VAL(V$(14)):GOTO 1255
1247 IF ASC(MID$(V$(2),5,1))<>QK THEN 1260 ELSE K=VAL(V$(14))
1250 IF S$="!" THEN 1190
1255 IF I1=NN THEN 1260 ELSE 1190
1260 IF MS=1 THEN 1280
1270 LOCATE 22,1:PRINT "Person is not in the address book. Try again.  Hit any key to continue."
1275 Y$=INKEY$:IF Y$="" THEN 1275 ELSE 1090
1280 CLS:LOCATE 12,25:PRINT "ANY MORE CHANGES?  <Y> or <N> ":COLOR 15,0:LOCATE 12,45:PRINT "Y":LOCATE 12,52:PRINT "N":COLOR 3,0:GOSUB 560
1285 IF Y$="N" THEN ED$="":GOTO 970
1290 IF Y$="Y" OR Y$="y" THEN 1090
1320 GOSUB 9000
1330 S$="":ED$="  ":ADD=999:I=NN+1:GOSUB 2780
1350 GOSUB 2230
1360 NN=I-1:ADD=0:GOSUB 5100:GOTO 970
1390 CLS
1400 IS=II:LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
1410 NII=ABS(NI):FOR NF = 1 TO NII
1415 DEF SEG=&H40:IF PEEK(&H17) AND 16 THEN 1470
1420 IF NI<0 OR Y$="-" THEN II=IS-NF:K=VAL(V$(15)):GET #4,K:GOTO 1425 ELSE K=VAL(V$(14)):GET #4,K:II=IS+NF
1425 IF II=<0 THEN II=NN+II
1426 IF II>NN THEN II=ABS(II-NN)
1430 GOSUB 2550:NEXT
1455 LOCATE 23,20:PRINT SPACE$(40)
1460 Y$="":LOCATE 1,70:PRINT SPACE$(9):GOTO 2635
1470 LOCATE 23,20:PRINT SPACE$(40)
1480 Y$="":LOCATE 1,70:PRINT SPACE$(9):GOTO 2635
1500 IF NUM=<0 OR NUM>NN THEN GOSUB 35040:LOCATE 23,20:PRINT "REENTER NUMBER BETWEEN 1 - ";NN;"  ";SPACE$(5):ELSE 1505
1501 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32:LOCATE 23,51:INPUT NUM:DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223
1505 IF NUM=<0 OR NUM>NN THEN 1500 ELSE LOCATE 23,20:PRINT SPACE$(50)
1510 IF ABS(NUM-II)<10 AND NUM-II<0 THEN NZ=II-1:K=VAL(V$(15)):GOTO 1590
1515 IF NUM-II<10 AND NUM-II >=0 THEN NZ=II+1:K=VAL(V$(14)):LOCATE 23,20:PRINT SPACE$(50):GOTO 1550
1517 K=ZK(27):NZ=INT((NN/10)+0.5):IF NN<10*NZ THEN NZ=INT(NN/10)
1520 FOR IZ=1 TO 10:IF NUM=<IZ*NZ THEN K=ZK(IZ+26):NZ=(IZ-1)*NZ:IZ=10
1525 NEXT
1540 IF K=ZK(27) AND NZ=INT(NN/10) THEN K=ZK(36):NZ=10*NZ
1550 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
1560 FOR II=NZ TO NUM-1 :GET #4,K:K=VAL(V$(14)):NEXT
1570 LOCATE 1,70:PRINT SPACE$(9)
1580 RETURN
1590 LOCATE 23,20:PRINT SPACE$(50)
1595 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
1600 FOR II=NZ TO NUM+1 STEP -1:GET #4,K:K=VAL(V$(15)):NEXT
1610 LOCATE 1,70:PRINT SPACE$(9):RETURN
1940 IF ERL=4010 THEN CLOSE #2: I=1:CLS:LOCATE 10,16:COLOR 14,0:PRINT "The file containing keys used in NOTES is empty":LOCATE 18,30:COLOR 0,7:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35010:COLOR 3,0 ELSE 1947
1941 Y$=INKEY$:IF Y$="" THEN 1941
1942 RESUME 350
1947 IF ERR = 61 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"DISK FULL ":COLOR 7,1:LOCATE 1,1
1950 IF ERR = 61 THEN LOCATE 10,1:PRINT "DISK FULL.  LOAD FORMATTED DISK AND TYPE <CONT> AND RETURN ":COLOR 15,0:LOCATE 10,43:PRINT "CONT":BEEP:COLOR 3,0:STOP
1960 IF ERR = 61 THEN GOTO 390
1965 IF NN=0 AND ERL=325 THEN CLS:COLOR 0,7:LOCATE 10,33:PRINT "FILE IS EMPTY!":LOCATE 12,28:PRINT "RETURNING TO MAIN MENU.":FOR I= 1 TO 200:NEXT:COLOR 3,0:RUN"ADMAIN.BAS"
1990 RESUME 350
2120 REM         TEMPORARY FILE
2130 REM
2190 Y$=LEFT$(A$,1)
2191 OPEN FILM$ FOR OUTPUT AS #3
2192 WRITE #3, Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$
2193 FOR I= 1 TO 36:WRITE#3, ZK(I):NEXT:CLOSE #3
2195 RETURN
2200 REM
2210 REM           INPUT DATA
2220 REM
2230 REM
2245 GOSUB 9000:IF RIGHT$(B$(1),1)<>"__" THEN GOSUB 2910
2260 REM
2265 COLOR 3,0,1:LOCATE 1,1:PRINT "ENTER RECORD # ";:COLOR 11,0:PRINT I
2270 COLOR 3,0:LOCATE 3,1:PRINT "GREETING: (1=Dr. 2=Mr. 3=Mrs. 4=Ms. 5=Miss 6=Prof. 7 = NEW; 8=None): ";:COLOR 2,0:PRINT B$(13):LOCATE 3,68:COLOR 10,0:INPUT NK$:IF NK$<>"" AND INSTR(1,ST$,NK$)<>0 THEN RETURN
2275 NK=VAL(NK$):IF NK=0 THEN A12$=B$(13): GOTO 2410 ELSE 2280
2280 IF NK<7 THEN A12$=G$(NK):GOTO 2420
2285 IF NK=8 THEN A12$="":GOTO 2420
2290 IF (NK<=10 OR NK>66) THEN 2400
2300 NK1=VAL(LEFT$(NK$,1)):NK2=VAL(RIGHT$(NK$,1)):A12$=G$(NK1)+"& "+G$(NK2):GOTO 2420
2400 COLOR 3,0:LOCATE 3,1:PRINT STRING$(80,32):PRINT STRING$(30,32)
2405 LOCATE 3,1: PRINT "GREETING:         ";:COLOR 10,0:PRINT B$(13):COLOR 3,0:LOCATE 3,18:J=13:K=3:GOSUB 10000:COLOR 3,0:IF LEN(C1$)=0 THEN A12$=B$(13) ELSE A12$=C1$+" "
2410 IF RIGHT$(A12$,2)="@ " OR LEFT$(A12$,1)="_" THEN A12$=""
2420 D$(13)=A12$:COLOR 3,0:LOCATE 3,1: PRINT "GREETING:";SPACE$(71):IF ED$="CONT" THEN COLOR 2,0 ELSE COLOR 10,0
2425 LOCATE 3,18:PRINT D$(13)
2430 FOR J= 1 TO 11:L=W(J)
2434 IF J<=8 THEN JJ=J+3 ELSE JJ=J+4
2435 IF L>=6 AND L<=11 THEN DEF SEG = &H40:POKE &H17,&H40
2440 COLOR 3,0:LOCATE JJ,1: PRINT Q$(J);"  ";:COLOR 2,0:PRINT B$(J):LOCATE JJ,18:K=JJ:GOSUB 10000:COLOR 3,0:IF LEN(C1$)=0 THEN D$(L)=B$(J) ELSE D$(L)=C1$
2445 IF L>=6 AND L<=10 THEN DEF SEG = &H40:POKE &H17,&H0
2450 IF RIGHT$(D$(L),1)="@" OR RIGHT$(D$(L),2)="__" THEN D$(L)=""
2455 IF D$(L)<>"" AND INSTR(1,ST$,D$(L))<>0 THEN RETURN
2456 IF J=8 THEN LOCATE JJ+1,1:PRINT Q$(13)
2457 IF LEFT$(D$(L),3)="MM-" THEN D$(L)=""
2460 NEXT
2470 TEST=1
2520 COLOR 3,0:LOCATE 16,1: PRINT Q$(12);"  ";:COLOR 2,0:PRINT B$(12):COLOR 11,0:LOCATE 16,18:K=16:GOSUB 10000:COLOR 3,0:IF LEN(C1$)=0 THEN D$(9)=B$(12) ELSE D$(9)=C1$
2525 M=LEN(D$(9)):M=M-1
2526 IF LEFT$(D$(9),1)="&" THEN D$(9)=B$(12)+" "+RIGHT$(D$(9),M)
2530 IF RIGHT$(D$(9),1)="@" OR RIGHT$(D$(9),2)="__" THEN D$(9)=""
2533 GOTO 2540
2535 FOR J=J1 TO 12:L=W(J):D$(L)=B$(J):NEXT
2540 TEST=1:GOSUB 3500:GOSUB 5000:II=I
2550 IF ED$<>"CONT" THEN NN=I
2560 COLOR 3,0:LOCATE 1,15:PRINT II;SPACE$(3):IF (ED$="CONT" AND TEST=0) THEN GOSUB 5400 ELSE GOSUB 5300
2570 IF Y$="+" OR Y$="-" THEN RETURN
2635 COLOR 3,0:DEF SEG=0: POKE 1050, PEEK(1052):GOSUB 35040
2636 Y$=INKEY$:IF Y$="" THEN 2636
2637 DEF SEG=&H40:POKE &H17, 0
2638 IF LEN(Y$)=2 THEN Y$=RIGHT$(Y$,1)
2639 IF Y$="Y" OR Y$="y" THEN I=II:GOTO 2660
2640 IF S$<>"!" THEN 2655 ELSE IF Y$="r" OR Y$="R" THEN 2700
2641 IF Y$="=" THEN COLOR 14,0:LOCATE 23,20:PRINT "Jump to (1 - ";NN;" ) ... ";ARR$; ELSE 2643
2642 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32:INPUT NUM:DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223:GOTO 2700
2643 IF Y$="G" THEN JJ=I:I=0:GOTO 2700
2644 IF Y$="O" THEN JJ=I:I=NN-1:GOTO 2700
2645 IF Y$="I" THEN JJ=I:I=I-2:GOTO 2700
2646 IF Y$="-" THEN COLOR 14,0:LOCATE 23,20:PRINT "GO back #? ";ARR$;:GOTO 2648
2647 IF Y$="+" THEN COLOR 14,0:LOCATE 23,20:PRINT "GO forward #? ";ARR$; ELSE 2652
2648 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32
2649 INPUT " ",NI:JJ=I:I=NI:NI=ABS(NI):COLOR 3,0
2650 IF ABS(NI)>NN THEN LOCATE 23,20:GOSUB 35030:PRINT "OUTSIDE DATA RANGE.  1 TO";NN;:FOR K=1 TO 900:NEXT:LOCATE 23,10:PRINT SPACE$(68):I=JJ:GOTO 2636
2651 DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223:LOCATE 23,10:PRINT SPACE$(65):LOCATE 23,21:COLOR 0,7:PRINT "Hit <Scroll Lock> to stop at a RECORD.":COLOR 3,0:GOTO 2700
2652 IF (Y$="N" OR Y$="n" OR Y$="Q")  THEN JJ=I:GOTO 2700 ELSE 2635
2655 IF Y$="N" OR Y$="n" THEN JJ=I:GOTO 2700 ELSE 2635
2660 IF ED$<>"CONT" OR TEST <>0 THEN FOR J= 1 TO 13:K=W(J):B$(J)=D$(K):NEXT:GOTO 2670
2665 FOR J = 1 TO 13:K=W(J):B$(J)=MID$(V$(K),5,VAL(V$(K))):NEXT
2670 GOSUB 9000:LOCATE 22,13
2680 PRINT "Enter corrections or ";ARR$;" if no corrections are necessary":IF ED$<>"CONT" THEN 2260 ELSE LOCATE 23,25:PRINT "Hit <End Key> to end correction"
2690 GOTO 2260
2700 IF (ED$="CONT" AND TEST=1) THEN Z(1)=VAL(V$(16)):Z(2)=VAL(V$(15)):Z(3)=VAL(V$(14)):GOSUB 5200:TEST=0
2710 IF RIGHT$(D$(8),2)="YY" THEN D$(8)=""
2740 IF ED$="CONT" THEN RETURN
2750 Z(1)=I:Z(2)=I-1:Z(3)=I+1:IF I=KNN THEN GOSUB 5500:GOTO 2755
2752 GOSUB 5200
2755 I=I+1:IF FRE(1)<1000 THEN CHAIN "adedit.bas",2775,ALL
2770 GOTO 2245
2775 GOSUB 6000:GOTO 1350
2780 GOSUB 2910
2790 PRINT "THE FILES ARE CURRENTLY SET UP TO RECEIVE AS FOLLOWS:  ":PRINT
2800 COLOR 14,0,1
2810 GOSUB 2850
2820 PRINT : PRINT "For GREETING you can combine TWO numbers (1-6).  EX: 23 = MR. and MRS.":PRINT TAB(14);"(Available:  any combination)
2825 PRINT :PRINT "Sort the Records by Surname after entering new records."
2830 PRINT:PRINT "To EXIT and RETURN to EDIT menu, Type `KEY F2' ":LOCATE ,29:COLOR 1,7,1:PRINT "HIT ANY KEY TO CONTINUE":COLOR 3,0:GOSUB 35040
2831 Y$=INKEY$:IF Y$="" THEN 2831 ELSE RETURN
2840 PRINT "RECORD #:  ";I
2850 PRINT "GREETING: (1=Dr. 2=Mr. 3=Mrs. 4=Ms. 5=Miss 6=Prof. 7=Your own 8=None):   ";B12$
2860 PRINT "NAME:           ";B12$;B$(1);" ";B$(2)
2870 FOR J= 3 TO 8:PRINT Q$(J);B$(J):NEXT
2880 PRINT Q$(13)
2890 FOR J= 9 TO 12:PRINT Q$(J);B$(J):NEXT
2900 RETURN
2910 FOR IL = 1 TO 13:B$(IL)=STRING$(LS%(IL),95):NEXT:B$(11)="MM-DD-YY":B12$=B$(7):B$(13)=B12$:RETURN
3000 IF SNEW=1 THEN GOSUB 5100:GOSUB 450:RUN"adnote" ELSE RUN "adnote"
3500 GOSUB 9000
3510 COLOR 3,0,1:PRINT "RECORD #:  ":PRINT:PRINT "NAME:          ":FOR J= 3 TO 8:PRINT Q$(J):NEXT:PRINT Q$(13):FOR J= 9 TO 12:PRINT Q$(J):NEXT:RETURN
3520 LOCATE 1,15:PRINT SPACE$(50)
3530 FOR J= 2 TO 13:LOCATE 1+J,15:PRINT SPACE$(50):NEXT:RETURN
4000 FILN$ =FIL$+".NTE"
4005 IF NKEY$(1)="" OR NKEY$(1)=CHR$(15) THEN 4010 ELSE 4035
4010 OPEN FILN$ FOR INPUT AS #2
4030 FOR I= 1 TO 20:INPUT #2, NKEY$(I),NOTE$(I):IF NKEY$(I)=CHR$(15) THEN 4035 ELSE NEXT
4035 NP=I-1:CLOSE #2:GOSUB 9000
4050 LOCATE 1,1:PRINT "NOTES:  KEYS":LOCATE 1,30:COLOR 14,0:PRINT "KEYS       ";:COLOR 3,0:PRINT " DESCRIPTION":FOR I=1 TO NP:COLOR 14,0:LOCATE 4+I,30:PRINT NKEY$(I);:COLOR 3,0:LOCATE ,40:PRINT " =  ";:COLOR 14,0:PRINT NOTE$(I):NEXT
4086 LOCATE 20,28:COLOR 0,7:PRINT "HIT ANY KEY TO CONTINUE":COLOR 3,0:GOSUB 35030
4087 Y$=INKEY$:IF Y$="" THEN 4087
4090 RETURN 350
5000 REM
5010 COLOR 3,0:LOCATE 18,1:PRINT "Corrections?  <Y>es.":COLOR 14,0:LOCATE 18,16:PRINT "Y":COLOR 3,0
5020 IF S$="!" THEN LOCATE 19,15:PRINT "<PgDn> or <N>o - next record.":LOCATE 19,26:COLOR 14,0:PRINT "N" :LOCATE 19,16:PRINT "PgDn" ELSE LOCATE 19,15:PRINT "<N>o.":LOCATE 19,16:COLOR 14,0:PRINT "N"
5030 IF S$<> "!" THEN RETURN ELSE COLOR 3,0:LOCATE 20,15:PRINT "<PgUp> - previous record":LOCATE 21,15:PRINT "<+> Scan forward ":COLOR 14,0:LOCATE 20,16:PRINT "PgUp":LOCATE 21,16:PRINT "+"
5035 LOCATE 19,50:COLOR 3,0:PRINT "<Home> - First record.":LOCATE 19,51:COLOR 14,0:PRINT "Home" :COLOR 3,0:LOCATE 20,50:PRINT "<End> - Last record.":LOCATE 20,51:COLOR 14,0:PRINT "End"
5036 COLOR 3,0:LOCATE 21,50:PRINT "<-> Scan backward":LOCATE 21,51:COLOR 14,0:PRINT "-":COLOR 3,0
5038 COLOR 3,0:LOCATE 22,15:PRINT "<=> Jump ":LOCATE 22,16:COLOR 14,0:PRINT "=":COLOR 3,0
5040 LOCATE 22,50:PRINT "<";:COLOR 14,0:PRINT "R";:COLOR 3,0:PRINT "> Return to Menu";:COLOR 14,0:PRINT "?":COLOR 3,0:RETURN
5100 IF YNEW=1 THEN KSET=1:KEND=NN:KNN=1:GOTO 5103
5102 IF NN<KNN THEN RETURN
5103 LOCATE 1,60:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
5104 IF I=NN THEN 5135
5105 GET #4,KSET:LSET V$(15)=STR$(NN):LSET V$(14)=V$(14):LSET V$(16)=V$(16)
5110 FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,KSET
5115 GET #4,KEND:LSET V$(14)=STR$(KNN):LSET V$(15)=V$(15):LSET V$(16)=V$(16)
5120 FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,KEND
5125 GET #4,NN:LSET V$(14)=STR$(KSET):LSET V$(15)=V$(15):LSET V$(16)=V$(16)
5130 FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,NN
5135 FOR J=3 TO 13:LSET V$(J)="":NEXT
5140 NMID=(INT(NN/2+0.5)):LSET V$(14)=STR$(NN):LSET V$(15)=STR$(NMID):LSET V$(16)=STR$(KSET)
5145 LSET V$(1)=DATE$:LSET V$(2)=TIME$
5150 PUT #4,NN+1:YNEW=0:KEND=NN:KNN=NN+1:RETURN
5200 FOR J= 1 TO 13:D(J)=LEN(D$(J)):V1$(J)=STR$(D(J)):IF D(J)<10 THEN V1$(J)=" "+V1$(J)
5210 NEXT
5215 A$="@":SNEW =1
5220 FOR J=1 TO 13:LSET V$(J)=V1$(J)+A$+D$(J):NEXT
5230 LSET V$(14)=STR$(Z(3)):LSET V$(15)=STR$(Z(2)):LSET V$(16)=STR$(Z(1))
5240 PUT #4,Z(1)
5245 RETURN
5300 COLOR 11,0:LOCATE 3,15:PRINT SPACE$(50):LOCATE 3,15:PRINT D$(13);D$(1);" ";D$(2)
5310 FOR J= 3 TO 11:K=W(J):IF J>8 THEN JJ=J+2 ELSE JJ=J+1
5320 LOCATE JJ,15:PRINT D$(K);SPACE$(35-LEN(D$(K))):NEXT
5330 LOCATE 14,15:PRINT SPACE$(64):PRINT SPACE$(80):LOCATE 14,15:PRINT D$(9):RETURN
5340 LOCATE 14,15:PRINT SPACE$(64):PRINT SPACE$(80):LOCATE 14,15:PRINT MID$(V$(9),5,VAL(V$(9))):RETURN
5400 COLOR 11,0:LOCATE 3,15:PRINT SPACE$(50):LOCATE 3,15:PRINT MID$(V$(13),5,VAL(V$(13)));MID$(V$(1),5,VAL(V$(1)));" ";MID$(V$(2),5,VAL(V$(2)))
5410 FOR J= 3 TO 11:K=W(J):IF J>8 THEN JJ=J+2 ELSE JJ=J+1
5420 LOCATE JJ,15:PRINT MID$(V$(K),5,VAL(V$(K)));SPACE$(30):NEXT
5440 LOCATE 14,15:PRINT SPACE$(64):PRINT SPACE$(80):LOCATE 14,15:PRINT MID$(V$(9),5,VAL(V$(9))):RETURN
5500 GET #4,KSET:LSET V$(15)=STR$(NN):LSET V$(14)=V$(14):LSET V$(16)=V$(16)
5510 FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,KSET
5520 FOR J= 1 TO 13:D(J)=LEN(D$(J)):V1$(J)=STR$(D(J)):IF D(J)<10 THEN V1$(J)=" "+V1$(J)
5525 NEXT
5530 A$="@":FOR J=1 TO 13:LSET V$(J)=V1$(J)+A$+D$(J):NEXT
5540 LSET V$(14)=STR$(Z(3)):LSET V$(15)=STR$(KEND):LSET V$(16)=STR$(Z(1))
5545 PUT #4,Z(1)
5550 SNEW=1:RETURN
6000 ON KEY(8) GOSUB 4000:KEY(8) ON:ON KEY(7) GOSUB 20000:KEY(7) ON:ON KEY(9) GOSUB 550:KEY(9) ON
6010 ON KEY(1) GOSUB 420:ON KEY(2) GOSUB 350:KEY(1) ON:KEY(2) ON:ON KEY(3) GOSUB 400:KEY(3) ON:ON KEY(4) GOSUB 405:KEY(4) ON:ON KEY(5) GOSUB 410:ON KEY(6) GOSUB 415:KEY(6) ON:KEY(5) ON
6020 RETURN
9000 CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;:COLOR 3,0:LOCATE 1,1:RETURN
10000 REM
10015 IF J=12 THEN 10030
10020 LOCATE K,18:COLOR 11,0:PRINT CHR$(34):LOCATE K,LS%(J)+19:PRINT CHR$(34):LOCATE K,19:GOTO 10035
10030 LOCATE K,18:COLOR 11,0:PRINT CHR$(34):LOCATE K+1,19:PRINT CHR$(34):LOCATE K,19
10035 IF ED$<>"CONT" THEN C$="":LSS%=LS%(J)+1:GOTO 10050
10040 C$=INKEY$:IF C$="" THEN 10040
10043 IF ASC(C$)=13 THEN C1$="":RETURN
10045 IF LEN(C$)=2 AND RIGHT$(C$,1)="O" THEN J1=J:RETURN 2535
10046 IF LEN(C$)=2 AND RIGHT$(C$,1)="M" THEN C$="":LOCATE K,19 ELSE IF LEN(C$)=2 THEN C$="":C1$="":RETURN ELSE PRINT C$;
10050 COLOR 10,0:LINE INPUT C1$:COLOR 11,0:IF LEN(C1$)>LS%(J) THEN GOSUB 10110:PRINT "Input exceeds ";LS%(J);" characters.  Enter [Y] to reenter OR ";ARR$;" to continue" ELSE GOTO 10080
10060 Y$=INKEY$:IF Y$="" THEN 10060
10070 IF Y$="y" OR Y$="Y" THEN LOCATE K+1,1:PRINT SPACE$(80):GOTO 10015
10075 LOCATE K+1,1:PRINT SPACE$(80)
10080 C1$=C$+C1$:RETURN
10110 FOR SD%=1 TO 3:SOUND 1000*SD%,1:NEXT:FOR SD%=3 TO 1 STEP -1:SOUND 1000*SD%,1:NEXT:RETURN
20000 GOSUB 2191:GOSUB 5100:N$=STR$(NN):A$="ADEDIT":CHAIN "ADNAME",20000,ALL
30000 CLS:LOCATE 25,25:COLOR 1,7,0:PRINT "INTEGRATED SOFTWARE SYSTEMS":COLOR 3,0:LOCATE 1,1
30010 OPEN "AD.HLP" AS #2 LEN=78
30020 FIELD #2, 78 AS A$
30030 I=1:M=1
30040 GET #2,I
30090 IF LEFT$(A$,1) <> CHR$(15) THEN PRINT A$ :I=I+1:GOTO 30040 ELSE 30130
30130 COLOR 0,7:LOCATE 24,27:PRINT "HIT ANY KEY TO CONTINUE";:COLOR 3,0:GOSUB 35030
30140 Y$=INKEY$:IF Y$="" THEN 30140
30150 CLOSE #2:GOTO 960
35000 IF SND$ ="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
35010 IF SND$ = "N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
35030 IF SND$ = "N" THEN RETURN ELSE SOUND 523.25,2:SOUND 30000,2:SOUND 523.25,2:RETURN
35040 IF SND$ = "N" THEN RETURN ELSE BEEP:RETURN

ADFILES.BAS

10 DIM U$(16):ON KEY(10) GOSUB 190:KEY(10) ON:ON ERROR GOTO 2000:GOTO 20
15 Y1=VAL(Y1$):ON KEY(10) GOSUB 190:KEY(10) ON:ON ERROR GOTO 2000
20 GOSUB 170:LOCATE 22,45:PRINT "KEY F10 to exit & ":COLOR 14,0:LOCATE 22,49:PRINT "F10":LOCATE 22,63:PRINT ARR$:COLOR 3,0
25 DEF SEG =&H40:POKE &H17,&H40
30 ZK(1)=1:ERASE ZK:CLOSE:DIM ZK(40):OPEN FILM$ FOR INPUT AS #3
35 INPUT #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:FOR I= 1 TO 36:INPUT #3, ZK(I):NEXT :CLOSE #3
37 LOCATE 10,29:PRINT "Enter complete FILESPEC":LOCATE 12,29:PRINT "[EXAMPLE:  B:ZIP-FIL]":LOCATE 14,30:PRINT "Default drive is ";F$:LOCATE 16,32:COLOR 14,0:GOSUB 180:PRINT "FILENAME ... ";
38 LOCATE 16,46:INPUT "",FILET$
40 DEF SEG =&H40:POKE &H17,&H40
41 IF FILET$="" THEN GOSUB 35020:GOTO 40
42 Z=INSTR(1,FILET$,":"):IF Z=0 THEN FILET$=F$+FILET$
45 Z =INSTR(1,FILET$,"."):IF Z=0 THEN 46 ELSE FILET$=LEFT$(FILET$,Z-1)
46 FILT$=FILET$:FILM2$=FILET$+".ISS":FILET$=FILET$+".DAT"
50 OPEN FILM2$ FOR INPUT AS #2
51 COLOR 11,0:LOCATE 18,25:PRINT "Confirm Overwrite of ";:COLOR 12,0:PRINT FILET$:COLOR 3,0:LOCATE 20,35:PRINT "<Y> or <N>":COLOR 14,0:LOCATE 20,36:PRINT "Y":LOCATE 20,43:PRINT "N":COLOR 3,0
52 GOSUB 35020
53 Y$=INKEY$:IF Y$="" THEN 53 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
54 IF Y$="Y" THEN 57
55 IF Y$="N" THEN 190 ELSE 52
57 GOSUB 170:COLOR 11,0:LOCATE 12,27:PRINT "Saving data in ";:COLOR 12,0:PRINT FILET$
58 LOCATE 20,35:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
60 CLOSE #2:OPEN FILM2$ FOR OUTPUT AS #1
65 WRITE #1,Y$,NRED,NN,FILET$,FILT$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:FOR I= 1 TO 36:WRITE #1, ZK(I):NEXT :CLOSE #1
70 OPEN FILET$ AS #1 LEN = 356
75 DEF SEG =&H40:POKE &H17,&H0
80 OPEN FILE$ AS #4 LEN = 356
85 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
90 FIELD #1, 19 AS U$(1), 19 AS U$(2), 18 AS U$(13), 34 AS U$(12), 34 AS U$(3), 34 AS U$(4), 19 AS U$(5), 14 AS U$(6), 16 AS U$(7), 12 AS U$(8), 84 AS U$(9), 19 AS U$(10), 19 AS U$(11), 5 AS U$(14), 5 AS U$(15), 5 AS U$(16)
100 FOR I=1 TO NN+1:GET #4,I:FOR J= 1 TO 16 :LSET U$(J)=V$(J):NEXT:PUT #1,I:NEXT
110 ERASE U$:CLOSE #1:COLOR 3,0
165 GOTO 190
170 CLS:X4$=SPACE$(15):LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;" WRITING ";:COLOR 3,0:LOCATE 1,1:RETURN
180 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
190 ON Y1 GOTO 240,200,250,210,220,230,260
200 RUN "ADEDIT.BAS"
210 RUN "ADSORT.BAS"
220 RUN "ADSEARCH.BAS"
230 RUN "ADPRINT.BAS"
240 RUN "ADMAIN.BAS"
250 RUN "ADDELETE.BAS"
260 RUN "ADMAIN.BAS"
2000 IF ERR = 61 THEN LOCATE 10,1:PRINT "DISK FULL.  LOAD FORMATTED DISK AND TYPE <CONT> AND RETURN ":COLOR 14,0:LOCATE 10,43:PRINT "CONT":BEEP:COLOR 3,0:STOP
2020 IF ERR = 61 THEN RESUME 190
2025 IF ERL =50 THEN RESUME 57
2030 RESUME 190
35020 IF SND$="N" THEN RETURN ELSE BEEP:RETURN

ADLIST.BAS

2 RUN "ADMAIN.BAS"
1300 COLOR 14,0:LOCATE 22,50:PRINT "KEY  F1";:COLOR 3,0:PRINT " = MAIN MENU":LOCATE 1,1:RETURN
1310 CLS:LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$:COLOR 3,0:LOCATE 1,1:RETURN
1315 LOCATE 25,10:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";SPACE$(15);"SERIAL NUMBER: ";SNN$;:COLOR 3,0:RETURN
1400 OPEN "TEMPOR.TEM" FOR INPUT AS #1
1410 INPUT #1, FILE$,FILM$,FIL$:CLOSE #1
1500 OPEN FILM$ FOR INPUT AS #3
1510 INPUT #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:CLOSE #3
1515 DIM V$(16),D$(NN+2),C(NN+2),V(2,NN)
1520 OPEN FILE$ AS #4 LEN = 356
1525 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
1530 GET #4,NN+1:K=VAL(V$(16)):IK=0
1535 IF IK=>NN THEN RETURN ELSE IK=IK+1:GET #4,K
1540 C(K)=VAL(V$(16)):V(1,K)=VAL(V$(1)):V(2,K)=VAL(V$(2)):D$(K)=MID$(V$(2),5,V(2,K))+MID$(V$(1),5,V(1,K)):
1545 K=VAL(V$(14)):GOTO 1535
1562 RETURN
4500 REM
4510 X1$="SELECT PRINTER":X3$="FILE = ":X5$="FUNCTION = ":X4$=SPACE$(10):Q$=CHR$(27)
4520 IF AX$="***" THEN T1$="    THE ISS PERSONAL ADDRESS BOOK"
4540 IF PT$="I" THEN OPEN "LPT1:" FOR OUTPUT AS #2:RETURN
4545 IF PT$="N" THEN OPEN "LPT2:" FOR OUTPUT AS #2:RETURN
4550 GOSUB 1310:GOSUB 1300:PRINT "PLEASE SELECT PRINTER:  " :PRINT
4570 COLOR 14,0:PRINT :PRINT "   ";CHR$(186);"     ";O$:PRINT "   ";CHR$(186);"     ";O1$:PRINT "   ";CHR$(25);"     ";O2$:COLOR 3,0
4580 PRINT :LOCATE  8,4:PRINT "I)BM Parallel Printer":LOCATE 9,4:PRINT "N)Serial Printer":COLOR 14,0:LOCATE 8,4:PRINT "I":LOCATE 9,4:PRINT "N"
4590 COLOR 31,0:LOCATE 5,11:PRINT "?":COLOR 3,0
4592 GOSUB 1300
4595 GOSUB 10020:DEF SEG=0: POKE 1050, PEEK(1052)
4600 PT$=INKEY$: IF PT$="" THEN 4600 ELSE PT$=CHR$(ASC(PT$) AND &HDF)
4610 IF PT$="N" THEN 4630
4620 IF PT$="I" THEN 4630 ELSE 4595
4630 IF PT$="I" THEN OPEN "LPT1:" FOR OUTPUT AS #2:GOTO 4635
4632 OPEN "LPT2:" FOR OUTPUT AS #2
4635 X1$="SELECT TITLE":GOSUB 1310
4640 PRINT "PLEASE CHOOSE THE HEADING FOR YOUR ADDRESS BOOK.":PRINT
4660 COLOR 14,0:PRINT :PRINT "   ";CHR$(186);"     ";O$:PRINT "   ";CHR$(186);"     ";O1$:PRINT "   ";CHR$(25);"     ";O2$:COLOR 3,0
4670 PRINT :LOCATE 8,4:PRINT "S)TORED title - ":LOCATE 8,20:COLOR 14,0:PRINT T1$:COLOR 3,0:LOCATE 9,4:PRINT "N)EW title"
4675 COLOR 14,0:LOCATE 8,4:PRINT "S":LOCATE 9,4:PRINT "N"
4680 COLOR 31,0:LOCATE 5,11:PRINT "?":COLOR 3,0
4682 GOSUB 1300
4685 GOSUB 10020:DEF SEG=0: POKE 1050, PEEK(1052)
4690 Y$=INKEY$: IF Y$="" THEN 4690
4700 IF Y$="N" OR Y$="n" THEN 4720
4710 IF Y$="S" OR Y$="s" THEN 4780 ELSE 4685
4720 GOSUB 1310
4730 PRINT "Please INPUT the TITLE of your ADDRESS BOOK (maximum length THIRTY-TWO (32)           characters long)":GOSUB 1300:GOSUB 10010:LOCATE 12,15:INPUT "TITLE ... ",T$:T1$=LEFT$(T$,32)
4780 X1$="PRINT PARAMETERS":GOSUB 1310
4790 PRINT "PLEASE SELECT PRINTER VARIABLES:  ":PRINT:GOSUB 1300
4800 LOCATE 4,2:PRINT "What is the length of your paper (in INCHES)?  ";:GOSUB 10010:INPUT " ",LP1
4810 LOCATE 6,2:PRINT "Do you want to be prompted when printing reaches the end of the page?":LOCATE 7,4: PRINT "ENTER <";:COLOR 14,0:PRINT "Y";:COLOR 3,0:PRINT ">es or <";:COLOR 14,0:PRINT "N";:COLOR 3,0:PRINT ">o."
4815 GOSUB 10020:DEF SEG=0: POKE 1050, PEEK(1052)
4820 LP$=INKEY$: IF LP$="" THEN 4820 ELSE LP$=CHR$(ASC(LP$) AND &HDF)
4822 IF LP$="Y" OR  LP$="N" THEN RETURN ELSE 4815
6000 DEF SEG=0: POKE 1050, PEEK(1052):LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date:  ";DATE$:LOCATE 3,62:PRINT "Time:  "
6010 Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 6010 ELSE RETURN
6040 DEF SEG=0: POKE 1050, PEEK(1052):LOCATE 19,29:PRINT "Date:  ";DATE$:LOCATE 20,29:PRINT "Time:  ":GOSUB 10000
6050 LOCATE ,,0:Y$=INKEY$:IF Y$="" THEN LOCATE 20,36:PRINT TIME$:GOTO 6050 ELSE RETURN
6085 DEF SEG=0: POKE 1050, PEEK(1052):LOCATE 20,29:PRINT "Date:  ";DATE$:LOCATE 21,29:PRINT "Time:  ";TIME$:RETURN
7000 ON ERROR GOTO 2:ON KEY(1) GOSUB 2:KEY(1) ON:CLS:GOSUB 1315:GOSUB 1300
7001 LOCATE 8,25:PRINT "Please Wait.  Reading Names."
7004 GOSUB 1400
7008 LOCATE 12,20:PRINT "Please Wait.  Sorting Names before printing.";
7010 G=NN
7020 WHILE G>1
7025 G=INT(G/2):MX=NN-G:PRINT " . ";:SOUND 523,1
7030 F=0
7035 FOR I=1 TO MX:P=I+G
7040 IF D$(I)<=D$(P) THEN 7050
7045 SWAP D$(P),D$(I):SWAP C(P),C(I):SWAP V(1,P),V(1,I):SWAP V(2,P),V(2,I):F=1
7050 NEXT
7055 IF F>0 THEN 7030
7060 WEND
7065 GOSUB 4500
7070 TN=LEN(T1$)
7080 TN=INT((70-TN)/2 +0.5)
7085 CLS:GOSUB 1315:COLOR 0,7:LOCATE 12,26:PRINT "Turn on printer and hit any key.":GOSUB 1300
7086 Y$=INKEY$:IF Y$="" THEN 7086
7087 LOCATE 12,26:PRINT SPACE$(40):LOCATE 12,31:COLOR 16,7:PRINT "WORKING":COLOR 3,0
7089 GOSUB 7500
7090 NM=INT(NN/2+0.5)
7092 MP1=LP1*6-9:K=1
7100 FOR I= 1 TO NM
7101 IF MP<MP1 THEN 7110 ELSE K=K+1
7102 IF LP$="N" OR LP$="n" THEN 7105 ELSE PRINT "Advance paper and hit any key to continue"
7103 Y$=INKEY$:IF Y$="" THEN 7103
7104 PRINT #2,  TAB(35);"-";K;" -":PRINT #2,:PRINT #2, :MP=6:GOTO 7110
7105 MP2=MP1-MP+12:FOR J= 1 TO MP2:PRINT #2,:NEXT J:PRINT #2, TAB(35);"- ";K;" -":PRINT #2,:PRINT #2,:MP=6
7110 A$=RIGHT$(D$(I),V(1,I))+" "+LEFT$(D$(I),V(2,I)):N1=LEN(A$):N1=35-N1
7111 IF I+NM>NN THEN V$(1)="":V$(2)=""
7112 IS$=STR$(I):IS1$=STR$(I+NM):IF I<=9 THEN IS$="  "+IS$
7113 IF I+1<=9 THEN IS1$=" "+IS1$
7114 IF I>9 AND I<100 THEN IS$=" "+IS$
7115 IF I+1>9 AND I<100 THEN IS1$=" "+IS1$
7120 IF I+NM<=NN THEN PRINT #2, TAB(3);IS$;".  ";A$;SPACE$(N1);IS1$;".  ";RIGHT$(D$(I+NM),V(1,I+NM));" ";LEFT$(D$(I+NM),V(2,I+NM)):MP=MP+1:GOTO 7130
7125 PRINT #2, TAB(3);IS$;".  ";A$
7130 NEXT I
7132 PRINT #2, CHR$(12)
7135 RUN "ADMAIN.BAS"
7500 IF AX$="***" THEN 7505
7501 DIM DQ$(12):FOR I= 1 TO 12:READ DQ$(I):NEXT
7502 DATA JANUARY, FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
7505 REM
7650 PRINT #2,
7660 PRINT #2, SPACE$(TN);T1$
7670 B=VAL(LEFT$(DATE$,2))
7680 PRINT #2,:PRINT #2, SPACE$(30);DQ$(B);" ";MID$(DATE$,4,2);", 19";RIGHT$(DATE$,2):PRINT #2,
7690 PRINT #2,
7700 MP =10
7710 RETURN
10000 IF SND$="N" THEN RETURN ELSE FOR A%=1 TO 3:SOUND 1000*A%,1:NEXT:FOR A%=3 TO 1 STEP -1:SOUND 1000*A%,1:NEXT:RETURN
10010 IF SND$="N" THEN RETURN ELSE FOR A%=1 TO 4:SOUND  500*A%,2:NEXT:RETURN
10020 IF SND$="N" THEN RETURN ELSE BEEP:RETURN

ADMAIL.BAS

100 CLEAR:ON ERROR GOTO 9000
126 GOSUB 3000:GOTO 200
130 CLS:GOSUB 140:LOCATE 12,20:PRINT  "PLEASE WAIT, RETURNING TO MAIN MENU":RUN"ADMAIN.BAS"
133 CLS:GOSUB 140:LOCATE 12,20:PRINT  "PLEASE WAIT, RETURNING TO PRINT MENU":RUN"ADPRT.BAS"
140 LOCATE 25,26:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS ";:COLOR 3,0:RETURN
155 CLS:COLOR 3,0:LOCATE  12,30:PRINT "QUIT?  <Y>es or <N>o?":COLOR 14,0:LOCATE 12,38:PRINT "Y":LOCATE 12,47:PRINT "N":COLOR 3,0
156 GOSUB 35020
157 Y$=INKEY$:IF Y$="" THEN 157 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
158 IF Y$="N" THEN 210
159 IF Y$="Y" THEN CLS:LOCATE 12,30:PRINT "GOODBYE":SYSTEM ELSE 156
160 REM
200 REM               PRINT
210 GOSUB 5010:Z$=""
220 X3$="FILE = ":X4$=SPACE$(15):X5$="FUNCTION = ":X1$="PRINT "
230 CLS:LOCATE 25,29:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 1,1
240 LOCATE 1,1:PRINT TAB(9);"MAILING LABEL MENU":PRINT:PRINT "CHOOSE ONE OF THE FOLLOWING:  "
250 PRINT:COLOR 14,0
260 PRINT "   ";CHR$(186);"     ";O5$:PRINT "   ";CHR$(186);"     ";O6$:PRINT "   ";CHR$(25);"     ";O7$:COLOR 3,0
270 PRINT:PRINT TAB(4);"1) ADDRESS labels ONE across"
275 PRINT TAB(4);"2) ADDRESS labels TWO across"
280 PRINT TAB(4);"3) ADDRESS labels ONE-SIX with variable dimensions"
320 COLOR 31,0:LOCATE 6,11:PRINT "?"
330 COLOR 14,0:LOCATE 9,4:PRINT "1":LOCATE 10,4:PRINT "2":LOCATE 11,4:PRINT "3"
361 COLOR 3,0:LOCATE 17,40:PRINT "KEY  F1 = Return to MAIN menu"
362 COLOR 14,0:LOCATE 18,40:PRINT "     F2";:COLOR 3,0:PRINT " = Return to PRINT-MAIL menu"
363 LOCATE 19,40:PRINT "     F6 = Return to PRINT menu"
364 LOCATE 20,40:PRINT "     F8 = KEYS used in NOTES"
365 LOCATE 21,40:PRINT "     F7 = List of names in Address Book"
366 LOCATE 22,40:PRINT "    F10 = HELP"
367 LOCATE 23,40:PRINT "ALT F10 = QUIT"
369 LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date:  ";DATE$:LOCATE 3,62:PRINT "Time:  "
370 DEF SEG=0: POKE 1050, PEEK(1052)
371 Y9$=INKEY$:IF Y9$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 371 ELSE 375
375 IF LEN(Y9$)=2 THEN 460
380 COLOR 3,0:LOCATE 6,11:PRINT Y9$
400 IF VAL(Y9$)<=3 AND VAL(Y9$)>0 THEN 840 ELSE GOSUB 35020 :GOTO 370
460 IF ASC(RIGHT$(Y9$,1))=68 THEN 30000
470 IF ASC(RIGHT$(Y9$,1))=113 THEN 155 ELSE 240
600 IF YS=1 THEN YS=0:GOSUB 5000:GOSUB 5010
605 LOCATE 20,25:COLOR 0,7:PRINT "TURN ON PRINTER AND HIT ANY KEY":COLOR 3,0:GOSUB 35010
610 Y$=INKEY$: IF Y$="" THEN 610
620 LOCATE 21,25:PRINT SPACE$(40):LOCATE 21,37:COLOR 16,7:PRINT "WORKING"
630 LOCATE 21,27:COLOR 14,0:PRINT "Hit <Esc> to stop printing":COLOR 3,0:RETURN
650 MAILFILE$=FIL$+".MAL":OPEN MAILFILE$ FOR INPUT AS #3:INPUT #3, WID,HT,NS:CLOSE #3:GOTO 660
655 IF Y9$="2" THEN WID=3.5:HT=0.937:NS=2 ELSE RETURN
660 IF Y9$="1" THEN NS=1 ELSE IF Y9$="2" THEN NS=2
665 LOCATE 8,28:COLOR 14,0:PRINT "Width of labels in inches:  ";WID
670 LOCATE 10,28:COLOR 14,0:PRINT "Height of labels in inches:  ";HT
675 LOCATE 12,28:COLOR 14,0:PRINT "Number of Labels across the page:  ";NS
680 RETURN 865
710 COLOR 11,0:LOCATE 16,21:PRINT "Do you want to save the label dimensions?" :COLOR 3,0:LOCATE 18,35:PRINT "[Y] or <N>":COLOR 14,0:LOCATE 18,36:PRINT "Y":LOCATE 18,43:PRINT "N":COLOR 3,0:GOSUB 35030
715 Y$=INKEY$:IF Y$="" THEN 715 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
720 IF Y$="N" THEN RETURN
730 MAILFILE$=FIL$+".MAL":OPEN MAILFILE$ FOR OUTPUT AS #3:PRINT #3, WID,HT,NS:CLOSE #3:RETURN
800 DEF SEG=0: POKE 1050, PEEK(1052)
810 Y$=INKEY$:IF Y$="" THEN 810 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
820 IF Y$<>"Y" THEN Y$="N"
830 RETURN
840 GOSUB 5000:LOCATE 1,1:PRINT TAB(4);"PRINT - MAILING LABEL"
845 COLOR 14,0:LOCATE 22,40:PRINT "KEY  F2";:COLOR 3,0:PRINT " = Return to PRINT-MAIL menu"
846 IF Z$="G" THEN 855 ELSE GOSUB 650
855 LOCATE 8,28:COLOR 14,0:PRINT "Width of labels in inches?  ";:COLOR 29,0:PRINT CHR$(178):LOCATE 8,56:COLOR 14,0:GOSUB 35030:INPUT "",WID
860 LOCATE 10,28:PRINT "Height of labels in inches?  ";:COLOR 29,0:PRINT CHR$(178):LOCATE 10,57:COLOR 14,0:GOSUB 35030:INPUT "",HT
861 IF Y9$="3" THEN LOCATE 12,28:PRINT "Number of Labels across the page?  ";:COLOR 29,0:PRINT CHR$(178):LOCATE 12,63:COLOR 14,0:GOSUB 35030:INPUT "",NS
865 COLOR 11,0:LOCATE 16,28:PRINT "Confirm Label Dimensions." :COLOR 3,0:LOCATE 18,35:PRINT "[Y] or <N>":COLOR 14,0:LOCATE 18,36:PRINT "Y":LOCATE 18,43:PRINT "N":COLOR 3,0:GOSUB 35030
866 Y$=INKEY$:IF Y$="" THEN 866 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
867 IF Y$="N" THEN CLS:Z$="G":GOTO 840 ELSE GOSUB 710
870 M5=INT((WID+0.1)*10+0.5):M3=M5-3:M2=M5-4:M6=M5-3:M1=INT(WID+0.5):M4=M5-1
880 HT=HT+1/16:HTL=INT(HT*6+0.5)
1000 GOSUB 5000:LOCATE 1,1:PRINT TAB(4);"PRINT - MAILING LABEL"
1005 COLOR 14,0:LOCATE 22,40:PRINT "KEY  F2";:COLOR 3,0:PRINT " = Return to PRINT-MAIL menu"
1010 LOCATE 12,20:COLOR 14,0:PRINT "Do you want to use the Courtesy Title?"
1020 LOCATE 14,33:COLOR 3,0:PRINT "<Y>es or [N]o?":LOCATE 14,34:COLOR 14,0:PRINT "Y":LOCATE 14,43:PRINT "N":COLOR 3,0:GOSUB 35030:GOSUB 800:T$=Y$
1040 IF HT<0.8750001 THEN TT$="N":GOTO 1070 ELSE LOCATE 12,20:COLOR 14,0:PRINT "Do you want to include the formal title?";SPACE$(10)
1050 GOSUB 35030:GOSUB 800:TT$=Y$
1070 LOCATE 12,20:COLOR 14,0:PRINT "Do you want to include the company name?";SPACE$(10)
1080 GOSUB 35030:GOSUB 800:TC$=Y$
1130 IF HT<1.1 THEN TS$="N":GOTO 1171 ELSE LOCATE 12,10:COLOR 14,0:PRINT "Do you want to print a special message before each address?"
1140 LOCATE 17,15:PRINT "Example:":LOCATE 17,25:PRINT "   MERRY CHRISTMAS  ":LOCATE 18,25:PRINT "John P. Public":LOCATE 19,25:PRINT "1000 Main Street":LOCATE 20,25:PRINT "Anywhere, MD  21210 ":COLOR 3,0:LOCATE 21,25:PRINT SPACE$(30)
1145 GOSUB 35030:GOSUB 800:TS$=Y$
1150 IF Y$="N" THEN 1540
1160 GOSUB 5000:LOCATE 1,1:PRINT TAB(4);"PRINT - MAILING LABEL"
1165 LOCATE 10,20:COLOR 14,0:PRINT "ENTER Message:  ":LOCATE 12,25:GOSUB 35000:LINE INPUT "? - ",TSP$
1170 ' IF (TS$="Y" AND TC$="Y" AND TT$="Y") OR Y9$="3" THEN 1171
1171 IF PT$="I" THEN 1172 ELSE 1540
1172 GOSUB 5000:LOCATE 1,1:PRINT TAB(4);"PRINT - MAILING LABEL"
1174 COLOR 14,0:LOCATE 22,40:PRINT "KEY  F2";:COLOR 3,0:PRINT " = Return to PRINT-MAIL menu"
1178 LOCATE 12,15:COLOR 14,0:PRINT "Do you want to changed to a condensed typestyle?"
1180 LOCATE 14,33:COLOR 3,0:PRINT "<Y>es or [N]o?":LOCATE 14,34:COLOR 14,0:PRINT "Y":LOCATE 14,43:PRINT "N":COLOR 3,0:GOSUB 35030:GOSUB 800:C$=Y$
1182 IF C$="Y" THEN     PRINT #5,  CHR$(15):     PRINT #5,  CHR$(27);CHR$(48):WIDTH #5,254:HTL=INT(HT*8+0.45)
1190 GOTO 1540
1200 GET #4,D%(LL)
1210 FOR J= 1 TO 7 :A(J,L)=VAL(V$(J)):NEXT
1220 A(8,L)=VAL(V$(13)):A(9,L)=VAL(V$(12)):A2=A(2,L)
1230 W$(6,L)=MID$(V$(5),5,A(5,L))+", "+MID$(V$(6),5,A(6,L))+"  "+MID$(V$(7),5,A(7,L))
1232 IF Y9$="3" THEN 1234 ELSE 1240
1234 IF LEN(W$(6,L))<=M4 THEN 1240 ELSE WL=LEN(W$(6,L))-M4
1236 W$(6,L)=MID$(V$(5),5,A(5,L)-WL)+", "+MID$(V$(6),5,A(6,L))+" "+MID$(V$(7),5,A(7,L)):A(5,L)=A(5,L)-WL-1
1240 A2=A(2,L):IF T$="N" THEN A9=M3-A(2,L):GOTO 1250 ELSE A9=M3-A(8,L)-A(2,L)
1250 IF A9=>A(1,L) THEN 1290
1260 A1=INSTR(1,MID$(V$(1),5,A(1,L))," "):IF A1<=0 THEN A$=MID$(V$(1),5,1)+".":A(1,L)=2:GOTO 1300
1270 IF A1<A9 THEN A$=MID$(V$(1),5,A1-1):A(1,L)=A1-1:GOTO 1300
1280 IF (A1<A(1,L) AND A1<A9) THEN A$=MID$(V$(1),5,1)+". "+MID$(V$(1),6+A1,1)+".":A(1,L)=5:GOTO 1300:ELSE A$=MID$(V$(1),5,1)+".":A(1,L)=2:GOTO 1300
1290 A$=MID$(V$(1),5,A(1,L))
1300 A(5,L)=M2-A(5,L)-A(6,L)-A(7,L):IF T$="N" THEN W$(1,L)=A$+" "+MID$(V$(2),5,A(2,L)):GOTO 1320
1310 W$(1,L)=MID$(V$(13),5,A(8,L))+A$+" "+MID$(V$(2),5,A(2,L))
1320 IF TT$="N" AND TC$="N" THEN W$(2,L)=MID$(V$(4),5,M3):W$(4,L)="":W$(5,L)="":W$(3,L)=W$(6,L):GOTO 1370
1330 IF A(9,L) = 0 AND A(3,L)=0 THEN W$(2,L)=MID$(V$(4),5,M3):W$(4,L)="":W$(5,L)="":W$(3,L)=W$(6,L):GOTO 1370
1340 IF A(9,L) = 0 AND A(3,L)<>0 THEN 1345 ELSE 1350
1345 IF TC$="Y" THEN W$(2,L)=MID$(V$(3),5,M3):W$(3,L)=MID$(V$(4),5,M3):W$(4,L)=W$(6,L):W$(5,L)="":GOTO 1370
1350 IF A(9,L) <> 0 AND A(3,L)<>0 THEN 1355 ELSE 1360
1355 IF TT$="Y" AND TC$="Y" THEN W$(2,L)=MID$(V$(12),5,M3):W$(3,L)=MID$(V$(3),5,M3):W$(4,L)=MID$(V$(4),5,M3):W$(5,L)=W$(6,L):GOTO 1370
1356 IF TT$="Y" AND TC$="N" THEN W$(2,L)=MID$(V$(12),5,M3):W$(3,L)=MID$(V$(4),5,M3):W$(4,L)=W$(6,L):W$(5,L)="":GOTO 1370
1357 IF TT$="N" AND TC$="Y" THEN W$(2,L)=MID$(V$(3),5,M3):W$(3,L)=MID$(V$(4),5,M3):W$(4,L)=W$(6,L):W$(5,L)="":GOTO 1370
1360 IF A(9,L) <>0 AND A(3,L)=0 THEN 1365 ELSE 1370
1365 IF TT$="Y" THEN W$(2,L)=MID$(V$(12),5,M3):W$(3,L)=MID$(V$(4),5,M3):W$(4,L)=W$(6,L):W$(5,L)="":GOTO 1370
1370 A(1,L)=M5-LEN(W$(1,L)):A(2,L)=M5-LEN(W$(2,L)):A(3,L)=M5-LEN(W$(3,L)):A(4,L)=M5-LEN(W$(4,L)):A(5,L)=M5-LEN(W$(5,L))
1400 RETURN
1410 IF TS$="Y" AND TSP$<>"" THEN W$(7,1)=LEFT$(TSP$,M3) ELSE W$(7,1)="":A7=M5:GOTO 1440
1430 A7=M5-LEN(W$(7,1))
1440 RETURN
1540 REM
1545 GOSUB 5000
1550 LOCATE 1,1:PRINT TAB(4);"PRINT - MAILING LABEL":PRINT:PRINT "CHOOSE ONE OF THE FOLLOWING:  "
1560 PRINT:COLOR 14,0
1570 PRINT "   ";CHR$(186);"     ";O5$:PRINT "   ";CHR$(186);"     ";O6$:PRINT "   ";CHR$(25);"     ";O7$:COLOR 3,0
1580 PRINT :PRINT TAB(4);"S)NAME":PRINT TAB(4);"N)OTE Code":PRINT TAB(4);"Z)IPCODE":COLOR 14,0
1590 LOCATE 9,4:PRINT "S":LOCATE 10,4:PRINT "N":LOCATE 11,4:PRINT "Z"
1600 COLOR 31,0:LOCATE 6,11:PRINT "?":COLOR 3,0
1602 COLOR 14,0:LOCATE 22,40:PRINT "KEY  F2";:COLOR 3,0:PRINT " = Return to PRINT-MAIL menu"
1605 DEF SEG=0: POKE 1050, PEEK(1052)
1610 Y$=INKEY$: IF Y$="" THEN 1610 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
1615 IF Y$="S" THEN YS=1:GOTO 40000
1620 IF Y$="N" THEN 1800
1630 IF Y$="Z" THEN 1660 ELSE GOSUB 35020:GOTO 1605
1660 GOSUB 5000
1670 PRINT "PRINT ... ZIPCODE":LOCATE 5,32:PRINT "ENTER:  ZIPCODE & ";ARR$:LOCATE 6,8:PRINT "(Any number of digits and always start from the left most digit)"
1680 LOCATE 7,39:PRINT "OR":LOCATE 8,32:PRINT "'!' to print all"
1690 LOCATE 9,39:PRINT "OR":LOCATE 10,28:PRINT ARR$;"  return to PRINT menu":LOCATE 15,25:COLOR 14,0:INPUT "ZIPCode ... ",Z$:KK=7:X2$=" ZIPCODE "
1700 GOTO 1840
1800 GOSUB 5000
1810 PRINT "PRINT ... NOTE (Code)":LOCATE 5,30:PRINT "ENTER:  NOTE (Code) & ";ARR$:LOCATE 6,4:PRINT "(Any number of characters and always start from the left most character)"
1820 LOCATE 7,39:PRINT "OR":LOCATE 8,32:PRINT "'!' to print all"
1830 LOCATE 9,39:PRINT "OR":LOCATE 10,28:PRINT ARR$;"  return to PRINT menu":LOCATE 15,25:COLOR 14,0:INPUT "NOTE (Code) ... ",Z$:KK=9:X2$=" NOTES"
1840 MM=LEN(Z$):IF MM=0 THEN 230
1841 LOCATE 22,37:COLOR 16,7:PRINT "WORKING":COLOR 3,0
1845 X3$="FILE = ":X4$=SPACE$(15):X5$="FUNCTION = ":X1$="PRINT "
1850 JJ=0:GET #4,NN+1:I=VAL(V$(16)):IK=0
1855 IF IK=NN THEN 1920 ELSE IK=IK+1
1860 GET #4,I
1870 IF Z$="!" THEN 1890
1880 IF Z$<>MID$(V$(KK),5,MM) THEN  1910
1890 JJ=JJ+1
1900 D%(JJ)=I
1910 I=VAL(V$(14)):GOTO 1855
1920 IF JJ=0 THEN 230
1930 IF Y9$="1" THEN 2300
1935 IF Y9$="2" THEN 2500
1940 REM
1960 GOSUB 600
1980 IF C$="Y" THEN 1982 ELSE 1983
1982 CMP=1.675:M1=INT(M1*CMP+0.5):M2=INT(M2*CMP+0.5):M3=INT(M3*CMP+0.5):M5=INT(M5*CMP+0.5):M4=M5-1:M6=M5
1983 I=1:GOSUB 1410
1985 FOR L=1 TO NS:LL=I+L-1
1990 GOSUB 1200
2000 IF I=JJ THEN 2105
2023 IF A(1,L)<=0 THEN A(1,L)=1
2025 IF LL>=JJ THEN 2105
2030 NEXT
2105 IF I<>NN THEN 2110 ELSE IF N1 =0 THEN 2110 ELSE 2170
2110 IF TS$="N" THEN     PRINT #5, :GOTO 2120
2111 FOR K=1 TO NS:    PRINT #5,  W$(7,1);SPACE$(A7);:NEXT
2112     PRINT #5,
2120 FOR K=1 TO 5:FOR K1=1 TO L-2
2122     PRINT #5,  W$(K,K1);SPACE$(A(K,K1));:W$(K,K1)="":NEXT
2123     PRINT #5,  W$(K,K1):NEXT
2125 FOR K=1 TO HTL-6:    PRINT #5, :NEXT
2140 IF I+NS-1=>JJ OR I=0 THEN 2170 ELSE I=I+NS
2142 Y$=INKEY$:IF Y$=CHR$(27) THEN GOSUB 3500
2145 IF FRE(1)>1100 THEN 1985
2150 CHAIN "ADMAIL.BAS",2155,ALL
2155 GOSUB 5010
2165 GOTO 1985
2170     PRINT #5, :    PRINT #5,  CHR$(18):    PRINT #5,  CHR$(27);CHR$(50):GOTO 100
2270     PRINT #5,  :    PRINT #5,  CHR$(18):GOTO 100
2300 REM
2310 GOSUB 600
2320 I=1
2325 GET #4,D%(I)
2330 FOR J= 1 TO 7 :B(J)=VAL(V$(J)):NEXT
2335 B(8)=VAL(V$(13)):B(9)=VAL(V$(12))
2338 IF T$="N" THEN A9=30-B(2):GOTO 2342
2340 A9=30-B(8)-B(2):B2=24-B(5)-B(6)
2342 IF A9<B(1) THEN B(1)=A9
2343 IF T$="N" THEN W1$(1)=MID$(V$(1),5,B(1))+" "+MID$(V$(2),5,B(2)):GOTO 2350
2345 W1$(1)=MID$(V$(13),5,B(8))+MID$(V$(1),5,B(1))+" "+MID$(V$(2),5,B(2))
2350 W1$(3)=MID$(V$(3),5,30):W1$(4)=MID$(V$(4),5,30):W1$(8)=MID$(V$(12),5,30)
2355 W1$(5)=MID$(V$(5),5,B(5))+", "+MID$(V$(6),5,B(6))+"    "+MID$(V$(7),5,B(7))
2362 L2=3
2364 IF TS$="Y" THEN     PRINT #5,  LEFT$(TSP$,30):L2=L2+1
2365     PRINT #5,  W1$(1):IF B(9)=0 THEN 2370
2366 IF TT$="N" THEN 2370 ELSE     PRINT #5,  W1$(8):L2=L2+1
2370 IF B(3)=0 THEN 2375
2373 IF TC$="N" THEN 2375 ELSE     PRINT #5,  W1$(3):L2=L2+1
2375     PRINT #5,  W1$(4):    PRINT #5,  W1$(5)
2390 FOR L1=1 TO HTL-L2:    PRINT #5, :NEXT
2400 IF I=>JJ THEN CLOSE #4:GOTO 100 ELSE I=I+1
2405 Y$=INKEY$:IF Y$=CHR$(27) THEN GOSUB 3500
2410 IF FRE(1)>1000 THEN 2325 ELSE SNN=I
2415 CHAIN "ADMAIL.BAS",2420,ALL
2420 GOSUB 5010
2435 GOTO 2325
2440 GOTO 100
2500 REM
2510 GOSUB 600
2515 IF HTL>7 THEN HTLL=HTL:HTL=HTL-1
2520 IF TS$<>"Y" THEN HTL=HTL+1
2525 GOSUB 1410
2530 FOR L=1 TO 2:LL=I+L-1
2540 GOSUB 1200
2700 IF I =JJ THEN 2880
2710 IF A(1,L)<=0 THEN A(1,L)=6
2730 NEXT
2740 IF I<>NN THEN 2750 ELSE IF N1 =0 THEN 2750 ELSE 2880
2750 IF HTLL>7 THEN     PRINT #5,
2760 IF TS$="Y" THEN     PRINT #5,  W$(7,1);SPACE$(A7);W$(7,1)
2770 FOR K= 1 TO 5:    PRINT #5,  W$(K,1);SPACE$(A(K,1));W$(K,2):NEXT
2800 FOR K=1 TO HTL-6:     PRINT #5,  :NEXT
2810 IF I+1=>JJ OR I=0 THEN 2860 ELSE I=I+2
2815 Y$=INKEY$:IF Y$=CHR$(27) THEN GOSUB 3500
2820 IF FRE(1)>1100 THEN 2530
2830 CHAIN "ADMAIL.BAS",2155,ALL
2840 GOSUB 5010
2850 GOTO 2530
2860 GOTO 100
2880     PRINT #5, :IF TS$="Y" THEN     PRINT #5,  W$(7,1)
2885     PRINT #5,  W$(1,1):    PRINT #5,  W$(2,1):    PRINT #5,  W$(3,1)
2900     PRINT #5,  W$(4,1):    PRINT #5,  W$(5,1)
2910 GOTO 100
3000 O5$=CHR$(218)+CHR$(196)+CHR$(191):O6$=CHR$(179)+" "+CHR$(179):O7$=CHR$(192)+CHR$(196)+CHR$(217)
3010 O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F2:PRINT-MAIL menu"+O2$+"F6:PRINT menu"+O2$+"F8:NAMES"+O2$+"F4:NOTES"
3020 DIM DQ$(12):FOR I= 1 TO 12:READ DQ$(I):NEXT
3025 DIM D$(13),Q$(13),B$(13),AZ$(3),AZ(3),D(16),LS%(20),W(20),ZK(50)
3030 DATA JANUARY, FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
3040 WIDTH "LPT1:",82
3050 OPEN "TEMPOR.TEM" FOR INPUT AS #1
3055 INPUT #1, FILE$,FILM$,FIL$:CLOSE #1
3056 OPEN FILM$ FOR INPUT AS #2
3060 INPUT #2,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:CLOSE #2
3065 DIM V$(16),D%(NN),W$(9,8),A(9,8),B(9),W1$(9)
3070 IF PT$="I" THEN OPEN "LPT1:" FOR OUTPUT AS #5:GOTO 3090
3080 OPEN "LPT2:" FOR OUTPUT AS #5
3090 OPEN FILE$ AS #4 LEN = 356
3100 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
3120 FILN$=FIL$+".NTE"
3200 DEF SEG = &H40:POKE &H17, PEEK(&H17) AND 223
3210 ARR$=CHR$(17)+CHR$(196)+CHR$(217)
3250 FOR I=1 TO 13:READ Q$(I):NEXT
3270 FOR I=1 TO 13:READ W(I):NEXT
3280 DATA "NAME - SURNAME: ","NAME - FIRST:   ","TITLE:          ","COMPANY:        ","STREET:         ","CITY:           ","STATE:          ","ZIPCODE:        ","     HOME:      ","   OFFICE:      ","BIRTHDAY:       ","NOTE:           ","TELEPHONE:"
3300 DATA 2,1,12,3,4,5,6,7,10,11,8,9,13
3310 RETURN
3500 LOCATE 21,25:COLOR 0,7:PRINT "Hit any key to continue PRINTING"
3510 LOCATE 23,26:COLOR 10,0:PRINT "Hit KEY F2 - Return to Menu.":COLOR 3,0:GOSUB 35010
3520 Y$=INKEY$: IF Y$="" THEN 3520
3530 RETURN
4000 REM
4010 OPEN FILN$ FOR INPUT AS #2
4030 FOR I= 1 TO 20:INPUT #2, NKEY$(I),NOTE$(I):IF NKEY$(I)=CHR$(15) THEN 4035 ELSE NEXT
4035 NP=I-1:CLOSE #2
4040 GOSUB 5000
4050 LOCATE 1,1:PRINT "NOTES:  KEYS":LOCATE 1,30:COLOR 14,0:PRINT "KEYS       ";:COLOR 3,0:PRINT " DESCRIPTION":FOR I=1 TO NP:COLOR 14,0:LOCATE 4+I,30:PRINT NKEY$(I);:COLOR 3,0:LOCATE ,40:PRINT " = ";NOTE$(I):NEXT
4060 LOCATE 20,28:COLOR 14,0:PRINT "HIT ANY KEY TO CONTINUE":COLOR 3,0
4065 Y$=INKEY$:IF Y$="" THEN 4065 ELSE 160
5000 CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;:COLOR 3,0:LOCATE 1,1:RETURN
5010 ON KEY(1) GOSUB 130:ON KEY(6) GOSUB 133:KEY(6) ON:KEY(1) ON:ON KEY(8) GOSUB 4000:KEY(8) ON:ON KEY(7) GOSUB 20000:KEY(7) ON:ON KEY(2) GOSUB 210:KEY(2) ON:RETURN
9000 IF ERL = 650 THEN EE=ERL:RESUME 655
9010 IF ERR = 27 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"PRINTER ERROR ";:COLOR 7,1:LOCATE 1,1
9030 IF ERR = 27 THEN PRINT "CHECK THE PRINTER":FOR I= 1 TO 500:NEXT I:RESUME 230
9040 IF ERR = 53 THEN CLS:LOCATE 10,15:PRINT "File containing KEYS used in NOTES does not exist.":LOCATE 12,22:PRINT "Return to EDIT program to create file." :LOCATE 18,25:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030:Y$=INPUT$(1):RESUME 160
9050 CLS:LOCATE 12,28:PRINT "ERROR ";ERR;" ENCOUNTERED":LOCATE 18,27:PRINT "HIT ANY KEY TO CONTINUE"
9060 Y$=INKEY$:IF Y$="" THEN 9060 ELSE RESUME 160
20000 N$=STR$(NN):A$="ADMAIL":CHAIN "ADNAME",20000,ALL
20210 Y$=INKEY$:IF Y$="" THEN 20210 ELSE GOSUB 5000:RETURN
30000 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 1,1
30010 OPEN "ADMAIL.HLP" AS #2 LEN=78
30020 FIELD #2, 78 AS A$
30030 I=1:M=1
30040 GET #2,I
30090 IF LEFT$(A$,1) <> CHR$(15) THEN PRINT A$ :I=I+1:GOTO 30040 ELSE 30130
30130 LOCATE 24,27:COLOR 14,0:PRINT "HIT ANY KEY TO CONTINUE";:COLOR 3,0:GOSUB 35030
30140 Y$=INKEY$:IF Y$="" THEN 30140
30150 CLOSE #2:GOTO 200
35000 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
35010 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
35020 IF SND$="N" THEN RETURN ELSE BEEP:RETURN
35030 IF SND$="N" THEN RETURN ELSE SOUND 750,2:SOUND 30000,2:SOUND 750,2:RETURN
40000 A$="ADMAIL.BAS":CHAIN "ADREAD.BAS",40000!,ALL

ADMAIN.BAS

1 '     ******************************************************************              *                                                                *
2 '     *                         ADDRESS BOOK                           *              *                                                                *
3 '     *                 INTEGRATED SOFTWARE SYSTEMS                    *              *                                                                *
4 '     *                      PHOENIX, MD  21131                        *              *                                                                *
5 '     *           (C) COPYRIGHT 1983  E. L. LOH AND R. L. CARET        *              *                                                                *
6 '     *                          Version 2.1                           *              *                                                                *
7 '     ******************************************************************
10 OPEN "TEMPOR.TEM" FOR INPUT AS #1:INPUT #1, FILE$,FILM$,FIL$:CLOSE #1
20 DIM D$(2),ZK(40):GOSUB 8000:GOSUB 8150:GOTO 540
200 SCREEN 0,0 :WIDTH 80:COLOR 3,0:DIM ZK(40):GOSUB 8100:GOSUB 8150
210 DIM DQ$(12):FOR I= 1 TO 12:READ DQ$(I):NEXT
220 DATA JANUARY, FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
240 T1$="The Address Book"
250 CLS:GOSUB 1315:NRED=0:LOCATE 1,1
300 F1$=F$+"*.DAT"
310 PRINT STRING$(75,157):PRINT "DIRECTORY:  FILES ON DRIVE ";:COLOR 12,0:PRINT F$;:COLOR 3,0:PRINT " ARE:":PRINT:IF FF$="Y" THEN 315 ELSE GOSUB 40000:GOTO 325
315 FILES F1$
325 PRINT :PRINT STRING$(75,157):GOTO 430
340 REM
350 LOCATE 5,1:PRINT "CHOOSE ONE OF THE FOLLOWING:  "
354 COLOR 14,0:PRINT :PRINT "   ";CHR$(186);"     ";O$:PRINT "   ";CHR$(186);"     ";O1$:PRINT "   ";CHR$(25);"     ";O2$:COLOR 3,0
356 PRINT:PRINT "   C)REATE New File"
357 PRINT "   L)OAD DATA DISK"
358 COLOR 14,0:LOCATE 11,4:PRINT "C":LOCATE 12,4:PRINT "L":COLOR 31,0:LOCATE 8,11:PRINT "?":COLOR 3,0
360 GOSUB 6000
362 COLOR 3,0:LOCATE 8,11:PRINT Y$
365 IF Y$="C" THEN 380
370 IF Y$="L" THEN 420 ELSE 350
380 LOCATE 17,1:INPUT "Enter FILE you would like to create ... " ,FIL$:IF LEN(FIL$)=0 THEN 380
385 S=INSTR(1,FIL$,":"):IF S=0 THEN FIL$=F$+FIL$
390 S=INSTR(1,FIL$,"."):IF S<>0 THEN FIL$=LEFT$(FIL$,S-1)
400 FILE$=FIL$+".DAT":FILM$=FIL$+".ISS"
405 IF Y$="C" THEN GOSUB 8200:YST=1:YC=1:GOSUB 8000:GOTO 740 ELSE 535
420 COLOR 3,0:LOCATE 17,1:PRINT STRING$(75,157)
425 DEF SEG=0: POKE 1050, PEEK(1052)
430 LOCATE ,,1:GOSUB 10010:COLOR 1,11:PRINT:PRINT "Enter FILE you would like to EXAMINE ... ";:COLOR 14,0:INPUT "  ",FIL$:COLOR 3,0
435 S=INSTR(1,FIL$,":"):IF S=0 THEN FIL$=F$+FIL$
440 S=INSTR(1,FIL$,"."):IF S<>0 THEN FIL$=LEFT$(FIL$,S-1)
450 FILE$=FIL$+".DAT":FILM$=FIL$+".ISS"
530 IF Y$="C" THEN 740
535 GOSUB 8200:YST=1:GOSUB 8000:
540 ON KEY(1) GOSUB 540:KEY(1) ON:DEF SEG = &H40:POKE &H17,&H0
542 ON KEY(7) GOSUB 1360:KEY(7) ON:ON KEY(9) GOSUB 9000:KEY(9) ON:ON KEY(8) GOSUB 891:KEY (8) ON
544 ON KEY(2) GOSUB 1120:KEY(2) ON:ON KEY(3) GOSUB 1170:KEY(3) ON:ON KEY(4) GOSUB 1220:KEY(4) ON:ON KEY(5) GOSUB 1180:ON KEY(6) GOSUB 1260:KEY(6) ON:KEY(5) ON
550 CLS:LOCATE 25,10:COLOR 1,7,1:PRINT " FILE = ";FILE$;SPACE$(10);"MAIN MENU";SPACE$(10);"(C) ISS, INC.";:COLOR 3,0
560 LOCATE 1,1:PRINT TAB(10);"MAIN MENU":PRINT:PRINT "CHOOSE ONE OF THE FOLLOWING:  "
580 COLOR 14,0:PRINT :PRINT "   ";CHR$(186);"     ";O$:PRINT "   ";CHR$(186);"     ";O1$:PRINT "   ";CHR$(25);"     ";O2$:COLOR 3,0
590 PRINT :PRINT "Key F1 Return to MAIN Menu"
600 PRINT "Key F2  or E)DIT/ADD address "
605 PRINT "Key F3  or D)ELETE address "
610 PRINT "Key F4  or B)SORT Address Book
620 PRINT "Key F5  or S)EARCH Address Book"
625 PRINT "Key F6  or P)RINT Address Book"
630 PRINT "Key F7  or L)IST of names in Address Book "
640 PRINT "Key F8  or X)EXAMINE another file"
650 PRINT "Key F9  or F)ILE save/continue "
660 PRINT "Key F10 or T)RANSFER Records "
662 PRINT "Alt  Key F10 or C)REATE NEW Address Book"
665 PRINT "Ctrl Key F10 or Q)UIT - EXIT Address Book "
666 PRINT "Shift Key F10 - Change Display ":COLOR 14,0
670 LOCATE 19,17:PRINT "C":LOCATE 10,12:PRINT "E":LOCATE 11,12:PRINT "D":LOCATE 12,12:PRINT "B":LOCATE 13,12:PRINT "S":LOCATE 14,12:PRINT "P":LOCATE 15,12:PRINT "L":LOCATE 16,12:PRINT "X":LOCATE 17,12:PRINT "F":LOCATE 20,17:PRINT "Q"
675 LOCATE 9,5:PRINT "F1":LOCATE 19,1:PRINT "Alt":LOCATE 19,10:PRINT "F10":LOCATE 20,1:PRINT "Ctrl":LOCATE 20,10:PRINT "F10":LOCATE 21,1:PRINT "Shift":LOCATE 21,11:PRINT "F10"
680 LOCATE 10,5:PRINT "F2":LOCATE 11,5:PRINT "F3":LOCATE 12,5:PRINT "F4":LOCATE 13,5:PRINT "F5":LOCATE 14,5:PRINT "F6":LOCATE 15,5:PRINT "F7":LOCATE 16,5:PRINT "F8":LOCATE 17,5:PRINT "F9":LOCATE 18,5:PRINT "F10":LOCATE 18,12:PRINT "T"
700 COLOR 31,0:LOCATE 6,11:PRINT "?":LOCATE ,,0:COLOR 3,0
705 COLOR 14,0:LOCATE 22,50:PRINT "KEY  F1";:COLOR 3,0:PRINT " = MAIN MENU"
710 GOSUB 6000
715 IF LEN(Y$)<>1 AND ASC(RIGHT$(Y1$,1))=113 THEN 740
720 IF Y$="C" THEN GOSUB 8200:YST=1:YC=1:GOSUB 8000:GOTO 740 ELSE 825
740 X1$="NEW FILE":X3$="FILE = ":X5$="FUNCTION = ":X4$=SPACE$(20):Q$=CHR$(27)
750 GOSUB 1310
760 LOCATE 8,25:PRINT "You are creating a NEW file!":LOCATE 10,20:PRINT "The file ";:COLOR 9,0:PRINT FILE$;:COLOR 3,0:PRINT " will be overwritten!"
765 LOCATE 12,21:PRINT "Please ENTER <G> to continue,":LOCATE 13,34:PRINT "<R> to Return to MENU":COLOR 14,0:LOCATE 12,35:PRINT "G":LOCATE 13,35:PRINT "R":COLOR 3,0
770 DEF SEG=0: POKE 1050, PEEK(1052):GOSUB 10020
775 Y$=INKEY$:IF Y$="" THEN 775 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
780 IF Y$="G" THEN I=1:NN=0:GOSUB 1120
790 IF Y$="R" THEN 540 ELSE 770
800 GOTO 740
810 IF Y$="G" THEN I=1:NN=0
820 IF Y$="G" THEN 1120
825 IF Y$="D" THEN 1170
826 IF LEN(Y1$)<>1 AND ASC(RIGHT$(Y1$,1))=113 THEN 740
827 IF ASC(RIGHT$(Y1$,1))=103 THEN GOSUB 900
828 IF ASC(RIGHT$(Y1$,1))=68 THEN 1195
829 IF RIGHT$(Y1$,1)="]" THEN  GOSUB 7500
830 IF Y$="E" THEN 1120
840 IF Y$="S" THEN 1180
845 IF Y$="L" THEN 1360
850 IF Y$="B" THEN 1220
860 IF Y$="F" THEN GOSUB 9000
870 IF Y$="P" THEN 1260
875 IF Y$="T" THEN 1195
880 IF Y$="X" THEN 891
890 IF Y$="Q" THEN GOSUB 900 ELSE GOSUB 10020:GOTO 710
891 CLS:LOCATE 25,20:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"FUNCTION = EXIT";:COLOR 3,0
892 LOCATE 12,12:PRINT "PLEASE CONFIRM BY ENTERING <";:COLOR 14,0:PRINT "YES";:COLOR 3,0:PRINT "> OR <";:COLOR 14,0:PRINT "NO";:COLOR 3,0:PRINT "> and ";:COLOR 14,0:PRINT ARR$;:GOSUB 10000:INPUT Y1$
893 IF INSTR("YESyesYes",Y1$) <>0 THEN CLEAR:CLOSE:DIM D$(2):KILL"TEMPOR.TEM":SNN$="0G110":GOTO 200 ELSE 550
900 CLS:LOCATE 25,20:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"FUNCTION = EXIT";:COLOR 3,0:LOCATE 10,5
911 LOCATE 12,12:PRINT "PLEASE CONFIRM BY ENTERING <";:COLOR 14,0:PRINT "YES";:COLOR 3,0:PRINT "> OR <";:COLOR 14,0:PRINT "NO";:COLOR 3,0:PRINT "> and ";:COLOR 14,0:PRINT ARR$;:COLOR 3,0:GOSUB 10000:INPUT " ",Y1$
920 IF INSTR("YESyesYes",Y1$) <>0 THEN 930 ELSE RETURN 540
930 CLS:LOCATE 1,1:PRINT "SIGNING OFF:  SELECT ..."
940 COLOR 14,0:PRINT :PRINT "   ";CHR$(186);"     ";O$:PRINT "   ";CHR$(186);"     ";O1$:PRINT "   ";CHR$(25);"     ";O2$:COLOR 3,0
950 PRINT:PRINT TAB(4);"E)XIT BASIC and Returns to DOS":PRINT TAB(4);"B)ACK to BASIC and CLEAR work area"
960 PRINT TAB(4);"R)ETURN to BASIC and prepare for another RUN":COLOR 14,0:LOCATE 7,4:PRINT "E":LOCATE 8,4:PRINT "B":LOCATE 9,4:PRINT "R":COLOR 31,0:LOCATE 4,11:PRINT "?":GOSUB 10010:COLOR 3,0
962 COLOR 14,0:LOCATE 22,50:PRINT "KEY  F1";:COLOR 3,0:PRINT " = MAIN MENU"
965 Y$=INKEY$:IF Y$="" THEN 965 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
970 IF Y$="E" THEN CLS:SYSTEM
980 IF Y$="B" THEN CLS:LOCATE 12,38:PRINT "BYE":LOCATE 1,1:NEW:END
990 IF Y$="R" THEN CLS:LOCATE 12,38:PRINT "BYE":LOCATE 1,1:LOAD "ADSTART.BAS":KEY ON:END ELSE 960
1000 GOTO 550
1010 CLOSE
1011 IF (YC=1 AND ERL=8010) THEN I=1:NN=0:SNN$="0G110":PT$="":LP$="":Z$="":LP$="":RESUME 1120
1015 IF (YST=1 AND ERR=53) THEN NN=0:SNN$="0G110":PT$="":LP$="":Z$="":LP$="":RESUME 540
1020 IF ERR = 53 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"FILE NOT FOUND";:COLOR 7,1:LOCATE 1,1
1030 IF ERR = 53 THEN PRINT "NO '....DAT' FILES ON ACTIVE DISK.":FOR I= 1 TO 500:NEXT I:RESUME 340
1040 IF ERR = 54 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"BAD FILE MODE ";:COLOR 7,1:LOCATE 1,1
1050 IF ERR = 54 THEN PRINT "FILE DOES NOT EXIST":FOR I= 1 TO 1000:NEXT I:RESUME 340
1060 IF ERR = 61 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"DISK FULL ";:COLOR 7,1:LOCATE 1,1
1070 IF ERR = 61 THEN PRINT "DISK FULL.  LOAD FORMATTED DISK AND 'CONTINUE' ":STOP
1080 IF ERR = 61 THEN RESUME 340
1090 CLS:LOCATE 12,28: PRINT "ERROR ";ERR;" ENCOUNTERED.":GOSUB 10010:FOR I= 1 TO 2000:NEXT I:GOTO 550
1100 RESUME 340
1120 REM
1130 IF YST=1 THEN GOSUB 1320
1140 IF (Y$="E" OR Y$="e") AND YST=1 THEN Y1=2:GOSUB 1440
1150 Z$="EDIT":GOSUB 9500
1160 RUN "ADEDIT.BAS"
1170 IF YST=1 THEN GOSUB 1320:Y1=3:GOSUB 1440
1175 Z$="DELETE" :GOSUB 9500
1177 RUN "ADDELETE.BAS"
1180 IF YST=1 THEN GOSUB 1320:Y1=5:GOSUB 1440
1185 Z$="SEARCH" :GOSUB 9500
1190 RUN "ADSEARCH.BAS"
1195 IF YST=1 THEN GOSUB 1320:Y1=5:GOSUB 1440
1200 Z$="TRANSFER":GOSUB 9500
1205 RUN "ADTRANS.BAS"
1220 IF YST=1 THEN GOSUB 1320:Y1=4:GOSUB 1440
1240 Z$="SORT" :GOSUB 9500
1250 RUN "ADSORT.BAS"
1260 REM
1275 Z$="PRINT"
1280 Y$="p"
1285 GOSUB 9500
1295 GOSUB 1320
1300 RUN "ADPRINT.BAS"
1310 CLS:LOCATE 25,5:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$;:COLOR 3,0:LOCATE 1,1:RETURN
1315 LOCATE 25,10:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";SPACE$(15);"SERIAL NUMBER: ";SNN$;:COLOR 3,0:RETURN
1320 IF Y$="g" OR Y$="G" THEN 1340
1330 REM         TEMPORARY FILE
1340 OPEN FILM$ FOR OUTPUT AS #3
1350 WRITE #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$
1355 FOR I=1 TO 36:WRITE #3, ZK(I):NEXT:CLOSE #3:RETURN
1360 GOSUB 1340:CLEAR:CHAIN "ADLIST.BAS",7000
1440 REM
1450 REM      FILES
1460 REM
1462 IF AX1$<>"**" THEN CLS:LOCATE 12,10: PRINT "Do you want to create a backup file?  <";:COLOR 14,0:PRINT "Y";:COLOR 3,0:PRINT ">es OR <";:COLOR 14,0:PRINT "N";:COLOR 3,0:PRINT ">o.":COLOR 3,0:GOSUB 10000
1464 Y$=INKEY$:IF Y$="" THEN 1464 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
1466 IF Y$="N" THEN RETURN
1468 IF Y$="Y" THEN DIM V$(16):Y2=1:CHAIN "ADFILES",10,ALL ELSE 1464
6000 DEF SEG=0: POKE 1050, PEEK(1052):LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date:  ";DATE$:LOCATE 3,62:PRINT "Time:  "
6010 Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 6010 ELSE Y1$=Y$:Y$=CHR$(ASC(Y$) AND &HDF):RETURN
6040 DEF SEG=0: POKE 1050, PEEK(1052):LOCATE 19,29:PRINT "Date:  ";DATE$:LOCATE 20,29:PRINT "Time:  ":GOSUB 10000
6050 LOCATE ,,0:Y$=INKEY$:IF Y$="" THEN LOCATE 20,36:PRINT TIME$:GOTO 6050 ELSE RETURN
6085 DEF SEG=0: POKE 1050, PEEK(1052):LOCATE 20,29:PRINT "Date:  ";DATE$:LOCATE 21,29:PRINT "Time:  ";TIME$:RETURN
7500 DEF SEG=&HB000
7505 POKE 0,&H33: MONO = (PEEK(0)=&H33)
7510 POKE 0,&H55: MONO = (PEEK(0)=&H55) AND MONO
7515 DEF SEG=&HB800
7520 POKE 0,&H33: COLR = (PEEK(0)=&H33):SNN$="OG110"
7525 POKE 0,&H55: COLR = (PEEK(0)=&H55) AND COLR
7530 IF MONO AND COLR THEN 7540
7535 IF MONO THEN RETURN 540
7536 IF COLR THEN RETURN 540
7540 DEF SEG = &H40:POKE &H17,&H40
7545 CLS:COLOR 3,0,1:LOCATE 12,23:PRINT "Please select which monitor to use.":LOCATE 14,28:PRINT "Color Monitor Enter <C>.":LOCATE 16,25:PRINT "Monochrome Display Enter <M>."
7550 COLOR 14,0:LOCATE 14,49:PRINT "C":LOCATE 16,51:PRINT "M":COLOR 3,0
7555 GOSUB 7605
7560 Y$=INKEY$:IF Y$="" THEN 7560 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
7565 IF Y$="C" THEN CO=999:GOTO 7590
7570 IF Y$="M" THEN 7575 ELSE 540
7575 DEF SEG=64:MT=(PEEK(16) AND 48):IF MT=32 THEN GOSUB 7610
7580 DEF SEG=0:Y=PEEK(&H410):POKE &H410,(Y OR &H30)
7585 LOCATE ,,,12,13:GOTO 7600
7590 DEF SEG=64:MT=(PEEK(16) AND 48):IF MT=48 THEN GOSUB 9500
7592 DEF SEG=0: Y=PEEK(&H410):POKE &H410, (Y AND &HCF) OR &H20
7595 LOCATE ,,,7,7:GOSUB 7610
7600 LOCATE 1,1,0:SCREEN 0:WIDTH 40:WIDTH 80:RETURN 540
7605 FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:SNN$="0G110":RETURN
7610 A=1:SCREEN 1
7615 FOR X=0 TO 320 STEP 16:LINE(160,100)-(X,0),A:NEXT
7620 FOR Y=0 TO 200 STEP 10:LINE(160,100)-(320,Y),A:NEXT
7625 FOR X=320 TO 0 STEP -16:LINE(160,100)-(X,199),A:NEXT
7630 FOR Y=200 TO 0 STEP -10:LINE(160,100)-(0,Y),A:NEXT
7635 LINE(110,80)-(210,120),1,BF:A=0
7640 FOR Y=0 TO 200 STEP 10:LINE(160,100)-(0,Y),A:NEXT
7641 FOR X=0 TO 320 STEP 16:LINE(160,100)-(X,199),A:NEXT
7642 FOR Y=200 TO 0 STEP -10:LINE(160,100)-(320,Y),A:NEXT
7645 FOR X=320 TO 0 STEP -16:LINE(160,100)-(X,0),A:NEXT
7650 LOCATE 13,18:PRINT "I  S  S"
7655 LOCATE 19,12:PRINT " THE ADDRESS BOOK"
7660 LOCATE 23,7:PRINT " INTEGRATED SOFTWARE SYSTEMS "
7665 LOCATE 1,1
7670 LOCATE 21,1:PRINT "(C) COPYRIGHT 1983, E. Loh and R. Caret"
7675 REM
7680 Q$="NM160,90 C0 NM160,90 C2"
7685 DRAW"BM50,3;XQ$;R30;XQ$;D8;XQ$;L10;XQ$;D36;XQ$;R10;XQ$;D8;XQ$;L30;XQ$;U8;XQ$;R10;XQ$;U36;XQ$;L10;XQ$;U8;XQ$;"
7690 DRAW"BM50,3 R30 D8 L10 D36 R10 D8 L30 U8 R10 U36 L10 U8 "
7695 DRAW"BM150,3;XQ$;R30;XQ$;D10;XQ$;L8;XQ$;U3;XQ$;L15;XQ$;D15;XQ$;R23;XQ$;D30;XQ$;L30;XQ$;U10;XQ$;R8;XQ$;D3;XQ$;R15;XQ$;U15;XQ$;L23;XQ$;U30;"
7700 DRAW"BM150,3 R30 D10 L8 U3 L15 D15 R23 D30 L30 U10 R8 D3 R15 U15 L23 U30;"
7705 DRAW"BM250,3;XQ$;R30;XQ$;D10;XQ$;L8;XQ$;U3;XQ$;L15;XQ$;D15;XQ$;R23;XQ$;D30;XQ$;L30;XQ$;U10;XQ$;R8;XQ$;D3;XQ$;R15;XQ$;U15;XQ$;L23;XQ$;U30;"
7710 DRAW"BM250,3 R30 D10 L8 U3 L15 D15 R23 D30 L30 U10 R8 D3 R15 U15 L23 U30;"
7715 SOUND 1024,4:DRAW"BM290,3 XQ$;BM +0,-1 L2 D8 R2 BM +7,-3;XQ$;D2 L4 U6 R4 D2;XQ$;BM +3,-3 R2 D8 L2;"
7717 DRAW"BM250,3 R30 D10 L8 U3 L15 D15 R23 D30 L30 U10 R8 D3 R15 U15 L23 U30;"
7720 DRAW"BM290,3 BM +0,-1 L2 D8 R2 BM +7,-3 D2 L4 U6 R4 D2 BM +3,-3 R2 D8 L2;":SOUND 32000,10:SOUND 1024,5
7722 PAINT (55,5),2:PAINT (155,5),2:PAINT (255,5),2:COLOR 1,2
7725 FOR I= 1 TO 1000:NEXT:RETURN
8000 REM         TEMPORARY FILE
8010 OPEN FILM$ FOR INPUT AS #3:IF YST=1 THEN 8030
8020 INPUT #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F2$
8025 FOR I=1 TO 36:INPUT #3, ZK(I):NEXT:CLOSE #3:GOTO 8050
8030 INPUT #3,Y$,NRED,NN,FIL1$,FIL2$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F2$
8035 FOR I=1 TO 36:INPUT #3, ZK(I):NEXT:CLOSE #3
8050 IF SMD$<>"" THEN SND$=SMD$
8060 RETURN
8100 DEF SEG = &H40:POKE &H17,&H40:LOCATE ,,0
8103 CLS:GOSUB 1315:COLOR 3,0,1:LOCATE 12,25:PRINT "Sound effects are normally on.":LOCATE 13,28:PRINT "To continue, enter <Y>.":LOCATE 14,22:PRINT "To disable sound effects, enter <N>."
8105 COLOR 14,0:LOCATE 13,48:PRINT "Y":LOCATE 14,55:PRINT "N":COLOR 3,0:GOSUB 10000
8110 SND$=INKEY$:IF SND$="" THEN 8110 ELSE SND$=CHR$(ASC(SND$) AND &HDF)
8115 IF SND$="N" OR SND$="Y" THEN 8120 ELSE BEEP:GOTO 8110
8120 LOCATE 14,22:PRINT SPACE$(38)
8130 LOCATE 12,15:PRINT "Enter the DISK drive where your records are stored."
8132 LOCATE 13,15:PRINT "DRIVE <A>, <B>, <C>, <D>, or <E define drive/path>":LOCATE 13,22:COLOR 14,0:PRINT "A":LOCATE 13,27:PRINT "B":LOCATE 13,32:PRINT "C":LOCATE 13,37:PRINT "D":LOCATE 13,45:PRINT "E":GOSUB 10000
8135 F$=INKEY$:IF F$="" THEN 8135
8140 IF INSTR("ABCDE",F$)<>0 THEN 8300 ELSE BEEP:GOTO 8135
8150 SMD$=SND$:ARR$=CHR$(17)+CHR$(196)+CHR$(217):O$=CHR$(218)+CHR$(196)+CHR$(191):O1$=CHR$(179)+" "+CHR$(179):O2$=CHR$(192)+CHR$(196)+CHR$(217):ON ERROR GOTO 1010
8200 OPEN "TEMPOR.TEM" FOR OUTPUT AS #1:WRITE #1, FILE$,FILM$,FIL$:CLOSE #1:RETURN
8300 SP$=SPACE$(70):IF F$="E" THEN 8305 ELSE F$=F$+":":RETURN
8305 FF$="Y":LOCATE 12,5:PRINT SP$:PRINT SP$:LOCATE 18,5:PRINT SP$
8310 LOCATE 12,31:PRINT "Enter:  <d:>\path\":LOCATE 14,38:INPUT F$
8320 COLOR 11,0:LOCATE 18,30:PRINT "Confirm:  [Y] OR <N>" :COLOR 14,0:LOCATE 18,41:PRINT "Y":LOCATE 18,48:PRINT "N":COLOR 3,0:GOSUB 10020
8330 Y$=INKEY$:IF Y$="" THEN 8330 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
8340 IF Y$="N" THEN BEEP:GOTO 8305
8350 IF RIGHT$(F$,1)="\" THEN RETURN ELSE F$=F$+"\":RETURN
9000 REM
9010 REM             WRAPING THINGS UP
9020 REM
9025 X3$="FILE = ":X4$=SPACE$(33):X1$="SAVING FILE"
9120 GOSUB 1310
9150 LOCATE  6,22:PRINT "Do you want to save the working data?":LOCATE 8,33:PRINT "<Y>es or <N>o?":COLOR 14,0:LOCATE 8,34:PRINT "Y":LOCATE 8,43:PRINT "N":COLOR 3,0
9155 GOSUB 10020
9160 Z$=INKEY$: IF Z$="" THEN 9160 ELSE Z$=CHR$(ASC(Z$) AND &HDF)
9170 IF Z$="N" THEN GOSUB 1310:RETURN 540
9180 IF Z$="Y" THEN GOSUB 1340:DIM V$(16):Y1=7:CHAIN "ADFILES",10,ALL ELSE 9155
9500 REM
9510 CLS:LOCATE  5,27:COLOR 0,7,1:PRINT SPACE$(26):LOCATE  6,27:PRINT SPACE$(26)
9520 LOCATE  7,27:PRINT SPACE$(11);:COLOR 14,9:PRINT " THE ";:COLOR 0,7:PRINT SPACE$(10)
9530 LOCATE 8,27:PRINT SPACE$(6);:COLOR 14,9:PRINT " ADDRESS BOOK ";:COLOR 0,7:PRINT SPACE$(6):LOCATE 9,27:PRINT SPACE$(26):LOCATE 10,27:PRINT SPACE$(26)
9540 IF Z$<>"" THEN 9600
9550 COLOR 4,0:LOCATE 13,26:PRINT "INTEGRATED SOFTWARE SYSTEMS ":LOCATE 15,31:PRINT "BALTIMORE MARYLAND":COLOR 3,0
9555 LOCATE 18,18:PRINT "(C) Copyright 1983  E. L. Loh and R. L. Caret"
9560 COLOR 3,0:LOCATE 18,18:PRINT "(C) Copyright 1983  E. L. Loh and R. L. Caret"
9565 IF MT=48 THEN RETURN
9570 COLOR 14,0:COLOR 0,7:LOCATE 23,28:PRINT "HIT ANY KEY TO CONTINUE":COLOR 14,0
9580 GOSUB 1315
9590 GOSUB 6040
9595 RETURN
9600 COLOR 14,0:LOCATE 15,26:PRINT "INTEGRATED SOFTWARE SYSTEMS ":COLOR 3,0
9610 LOCATE 18,18:PRINT "(C) Copyright 1983  E. L. Loh and R. L. Caret"
9615 GOSUB 6085
9620 IF Z$="" THEN 9630 ELSE LOCATE 23,22:COLOR 1,7:PRINT "PLEASE WAIT, LOADING ";Z$;" ROUTINES."
9630 GOSUB 1315
9640 RETURN
10000 IF SND$="N" THEN RETURN ELSE FOR A%=1 TO 3:SOUND 1000*A%,1:NEXT:FOR A%=3 TO 1 STEP -1:SOUND 1000*A%,1:NEXT:RETURN
10010 IF SND$="N" THEN RETURN ELSE FOR A%=1 TO 4:SOUND  500*A%,2:NEXT:RETURN
10020 IF SND$="N" THEN RETURN ELSE BEEP:RETURN
40000 DEF SEG: SUBRT$ = STRING$(160,32): SUBLC% = VARPTR(SUBRT$): ADLOC = PEEK(SUBLC% +1) +PEEK(SUBLC% +2)*256: BLOAD "ADDIR",ADLOC
40010 DIM FDAT$(111):NDAT=0
40020 FCB$=STRING$(33,32): DTA$=STRING$(33,32): FR$=STRING$(12,32): CT%=0: FOR I=0 TO 111:FDAT$(I)=FR$:NEXT
40030 ADLOC = PEEK(SUBLC% +1) +PEEK(SUBLC% +2)*256
40040 CALL ADLOC(F$,FCB$,DTA$,FDAT$(0),CT%)
40050 FOR I=0 TO CT%-1
40060 IF RIGHT$(FDAT$(I),3)="DAT" THEN NDAT=NDAT+1:PRINT LEFT$(FDAT$(I),8);SPC(2);
40070 NEXT
40080 RETURN

ADNAME.BAS

20 COLOR 7,0:RUN A$
30 COLOR 3,0:RUN "admain.bas"
3300 OPEN FILM$ FOR INPUT AS #3
3310 INPUT #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:CLOSE #3
3370 CLOSE:OPEN FILE$ AS #4 LEN = 356
3380 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
3510 IF A$="ADPRT" THEN B$="PRINT":KY=6
3515 IF A$="ADEDIT" THEN B$="EDIT":KY=2
3520 IF A$="ADWS" THEN B$="WordStar":KY=2
3525 IF A$="ADDELETE" THEN B$="DELETE":KY=3
3530 IF A$="ADWP" THEN B$="WordPerfect":KY=2
3535 IF A$="ADSORT" THEN B$="SORT":KY=4
3537 IF A$="ADSEARCH" THEN B$="SEARCH":KY=5
3538 IF A$="ADMAIL" THEN B$="MAILING LABEL":KY=2
3540 RETURN
5000 CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;:COLOR 7,0:LOCATE 1,1:RETURN
20000 CLOSE:GOSUB 3300:GOSUB 5000:COLOR 3,0,1
20005 ON KEY(KY) GOSUB 20:KEY(KY) ON:ON KEY(1) GOSUB 30:KEY(1) ON
20010 LOCATE 1,3:PRINT "ADDRESS #";SPACE$(8);"NAME":PRINT:COLOR 14,0
20015 GET #4,NN+1:K=VAL(V$(16))
20020 FOR I= 1 TO NN
20022 GET #4,K
20023 A=VAL(V$(1)):B=VAL(V$(2))
20030 M=M+1:PRINT TAB(5);I;SPACE$(10);MID$(V$(1),5,A);" ";MID$(V$(2),5,B)
20040 IF M<20 THEN 20080 ELSE M=0:GOSUB 20200
20060 IF I=> NN THEN 20
20070 LOCATE 1,3:PRINT "ADDRESS #";SPACE$(8);"NAME":PRINT:COLOR 14,0
20080 K=VAL(V$(14)):NEXT I
20090 COLOR 7,0
20100 IF M=0 THEN 20 ELSE GOSUB 20200:GOTO 20
20200 LOCATE 20,50:COLOR 10,0:PRINT " HIT ANY KEY TO CONTINUE ":LOCATE 21,55:PRINT " <Esc> to exit ":LOCATE 21,57:PRINT "Esc":COLOR 7,0:GOSUB 35030
20210 Y$=INKEY$:IF Y$="" THEN 20210
20220 IF Y$=CHR$(27) THEN 20 ELSE GOSUB 5000:RETURN
35030 IF SND$="N" THEN RETURN ELSE SOUND 750,2:SOUND 30000,2:SOUND 750,2:RETURN

ADNOTE.BAS

40 ARR$=CHR$(17)+CHR$(196)+CHR$(217)
50 ON ERROR GOTO 1940
100 DIM NKEY$(20),NOTE$(20)
120 O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F2:EDIT menu"+O2$+"F7:NAMES"+O2$+"F8:NOTES"+O2$+"F9:SAVE/CONT":NKEY$(1)=""
130 ON KEY(1) GOSUB 500:ON KEY(2) GOSUB 510:KEY(1) ON:KEY(2) ON:ON KEY(3) GOSUB 520:KEY(3) ON:ON KEY(4) GOSUB 530:KEY(4) ON:ON KEY(5) GOSUB 540:ON KEY(6) GOSUB 550:KEY(6) ON:KEY(5) ON:ON KEY(8) GOSUB 4000:KEY(8) ON
295 OPEN "TEMPOR.TEM" FOR INPUT AS #1
296 INPUT #1,  FILE$,FILM$,FIL$:CLOSE #1
300 OPEN FILM$ FOR INPUT AS #3
310 INPUT #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:CLOSE #3
320 GOTO 3000
500 A$="MAIN":Y1=1:GOTO 560
510 A$="EDIT":Y1=2:GOTO 560
520 A$="DELETE":Y1=3:GOTO 560
530 A$="SORT":Y1=4:GOTO 560
540 A$="SEARCH":Y1=5:GOTO 560
550 A$="PRINT":Y1=6:GOTO 560
560 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 12,21:PRINT "PLEASE WAIT, LOADING ";A$;" ROUTINES"
570 A$="AD"+A$:RUN A$
1940 IF ERR=53 THEN CLOSE #2: I=1:CLS:LOCATE 10,16:COLOR 15,0:PRINT "The file containing keys used in NOTES is empty":LOCATE 18,30:COLOR 0,7:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35010:COLOR 3,0 ELSE 1947
1941 Y$=INKEY$:IF Y$="" THEN 1941
1942 RESUME 3100
1947 IF ERR = 61 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"DISK FULL ":COLOR 3,1:LOCATE 1,1
1950 IF ERR = 61 THEN LOCATE 10,1:PRINT "DISK FULL.  LOAD FORMATTED DISK AND TYPE <CONT> AND RETURN ":COLOR 14,0:LOCATE 10,43:PRINT "CONT":BEEP:COLOR 3,0:STOP
1960 IF ERR = 61 THEN RESUME 3000
1990 RUN"adedit
3000 FILN$ =FIL$+".NTE":GOSUB 4000
3010 OPEN FILN$ FOR INPUT AS #2
3030 FOR I= 1 TO 20:INPUT #2, NKEY$(I),NOTE$(I):IF NKEY$(I)=CHR$(15) THEN 3045 ELSE NEXT
3042 IF I = 1 THEN CLOSE #2: GOTO 3100 ELSE 3045
3045 CLOSE #2:NP=I-1
3100 CLOSE #2:GOSUB 9000
3120 LOCATE 1,1:PRINT "EDIT ... NOTE KEYS ":PRINT :LOCATE 5,28 :PRINT "ENTER:  NOTE KEY & ";ARR$:LOCATE 6,16:PRINT  "exactly the way you want to appear in the NOTES"
3122 LOCATE 8,35:PRINT "TO DELETE ":LOCATE 10,28:PRINT "Enter <-> minus key and ";ARR$
3125 LOCATE 12,39:PRINT "OR":LOCATE 14,20:PRINT ARR$;"  Save NOTE KEYS and return to EDIT menu":LOCATE 18,10:COLOR 14,0:INPUT "NOTE KEY ... ",S$
3130 IF LEN(S$)=0  THEN 3200
3131 IF S$="-" THEN 3187
3132 FOR I=1 TO NP:IF S$=NKEY$(I) THEN 3170 ELSE NEXT
3135 GOSUB 9000
3140 LOCATE 5,10:NKEY$(NP+1)=S$:PRINT "INPUT KEY DESCRIPTION:  "
3150 LOCATE 8,12:COLOR 14,0:PRINT S$;" =   ";:INPUT NOTE$(NP+1):NP=NP+1:COLOR 7,0
3160 GOTO 3100
3170 GOSUB 9000
3180 LOCATE 4,10:PRINT "ORIGINAL:  ":LOCATE 6,12:COLOR 14,0:PRINT S$;" =  ";NOTE$(I):COLOR 4,0:LOCATE 10,10:PRINT "INPUT KEY DESCRIPTION:  <";ARR$;"> IF NO CHANGE":COLOR 14,0:LOCATE 12,12:PRINT S$;" = ";:INPUT AT$:IF LEN(AT$)=0 THEN 3100
3182 NOTE$(I)=AT$
3185 GOTO 3100
3187 GOSUB 9000
3188 LOCATE 5,10:PRINT "EDIT KEY ... DELETE:  "
3189 LOCATE 8,12:COLOR 14,0:PRINT "KEY$:  ";:INPUT "",TEY$:COLOR 3,0
3190 FOR I=1 TO NP:IF TEY$=NKEY$(I) THEN 3193 ELSE NEXT
3191 LOCATE 14,30:COLOR 14,0:PRINT "NOT IN FILE":COLOR 7,0
3192 FOR J= 1 TO 500:NEXT:GOTO 3100
3193 LOCATE 10,20:COLOR 15,0:PRINT TEY$;" =  ";NOTE$(I):LOCATE 12,22:PRINT "OK TO DELETE?"
3194 Y$=INKEY$:IF Y$="" THEN 3194 ELSE IF Y$="Y" OR Y$="y" THEN 3196
3195 IF Y$="N" OR Y$="n" THEN 3100 ELSE 3194
3196 FOR J=I TO NP-1:SWAP NKEY$(J),NKEY$(J+1):SWAP NOTE$(J),NOTE$(J+1):NEXT
3197 NP=NP-1:GOTO 3100
3200 OPEN FILN$ FOR OUTPUT AS #2
3210 FOR I= 1 TO NP:WRITE #2, NKEY$(I),NOTE$(I):NEXT
3215 WRITE #2, CHR$(15),CHR$(15)
3220 CLOSE #2:RUN"adedit"
4000 IF NKEY$(1)="" OR NKEY$(1)=CHR$(15) THEN 4010 ELSE 4036
4010 OPEN FILN$ FOR INPUT AS #2
4030 FOR I= 1 TO 20:INPUT #2, NKEY$(I),NOTE$(I):IF NKEY$(I)=CHR$(15) THEN 4035 ELSE NEXT
4035 NP=I-1
4036 CLOSE #2
4040 GOSUB 9000
4050 LOCATE 1,1:PRINT "NOTES:  KEYS":LOCATE 1,30:COLOR 14,0:PRINT "KEYS       ";:COLOR 3,0:PRINT " DESCRIPTION":FOR I=1 TO NP:COLOR 14,0:LOCATE 4+I,30:PRINT NKEY$(I);:COLOR 3,0:LOCATE ,40:PRINT " = ";NOTE$(I):NEXT
4070 OPEN FILN$ FOR OUTPUT AS #2
4075 COLOR 7,0:C1$=CHR$(34)
4080 FOR I= 1 TO NP:WRITE #2, NKEY$(I),NOTE$(I):NEXT
4085 WRITE #2, CHR$(15),CHR$(15)
4086 LOCATE 20,28:COLOR 0,7:PRINT "HIT ANY KEY TO CONTINUE":COLOR 3,0:GOSUB 35030
4087 Y$=INKEY$:IF Y$="" THEN 4087
4090 CLOSE #2:RETURN 3010
9000 CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;:COLOR 3,0:LOCATE 1,1:RETURN
35000 IF SND$ ="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
35010 IF SND$ = "N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
35030 IF SND$ = "N" THEN RETURN ELSE SOUND 523.25,2:SOUND 30000,2:SOUND 523.25,2:RETURN
35040 IF SND$ = "N" THEN RETURN ELSE BEEP:RETURN

ADPRINT.BAS

1 DIM ZK(40),D$(16),V$(16),V(16),V1$(16)
2 ARR$=CHR$(17)+CHR$(196)+CHR$(217)
5 OPEN "TEMPOR.TEM" FOR INPUT AS #1
6 INPUT #1, FILE$,FILM$,FIL$:CLOSE #1
10 OPEN FILM$ FOR INPUT AS #3
20 INPUT #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:FOR I= 1 TO 36:INPUT #3, ZK(I):NEXT:CLOSE #3
50 ON ERROR GOTO 200
55 ON KEY(1) GOSUB 150:KEY(1) ON
80 IF PT$="" THEN GOTO 1275
90 X1$="PRINT" :GOSUB 2000
95 GOSUB 3000
100 COLOR 3,0:LOCATE 12,16:PRINT "Do you want to change the printing parameters?"
105 LOCATE 14,33:PRINT "<Y>es or <N>o?":LOCATE 14,34:COLOR 14,0:PRINT "Y":LOCATE 14,43:PRINT "N":COLOR 3,0:GOSUB 10000:GOTO 110
107 GOSUB 10020:DEF SEG=0: POKE 1050, PEEK(1052)
110 Y$=INKEY$:IF Y$="" THEN 110 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
115 IF Y$="Y" THEN 1270
117 IF Y$="N" THEN 1285 ELSE GOSUB 10020:GOTO 107
150 RUN"ADMAIN
200 IF ERR = 53 THEN RESUME 1270
220 IF ERR = 61 THEN LOCATE 10,1:PRINT "DISK FULL.  LOAD FORMATTED DISK AND TYPE <CONT> AND RETURN ":COLOR 14,0:LOCATE 10,43:PRINT "CONT":BEEP:COLOR 3,0:STOP
230 RESUME 1270
1270 ON KEY(1) GOSUB 150:KEY(1) ON
1275 GOSUB 4500
1280 GOTO 95
1285 GOSUB 9500
1295 GOSUB 1320
1300 ERASE D$,V$,V,V1$:CHAIN "ADPRT.BAS",,ALL
1310 REM
1320 IF Y$="g" OR Y$="G" THEN 1340
1330 REM         TEMPORARY FILE
1340 OPEN FILM$ FOR OUTPUT AS #3
1350 WRITE #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:FOR I= 1 TO 36:WRITE #3, ZK(I):NEXT:CLOSE #3
1360 RETURN
2000 X1$="PRINT":X3$="FILE = ":X5$="FUNCTION = ":X4$=SPACE$(20):Q$=CHR$(27)
2010 CLS:LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$;:COLOR 3,0:LOCATE 1,1:RETURN
3000 CLS:GOSUB 2000:PRINT"PRINTING PARAMETERS "
3002 IF LP$="N" THEN SS$=" NO" ELSE SS$=" YES"
3003 IF PT$="I" THEN AP$=" YES" ELSE AP$=" NO"
3004 IF PT$="N" THEN AP1$=" YES" ELSE AP1$=" NO"
3010 LOCATE 5,15:PRINT "PARALLEL PRINTER - LPT1:  ............... ";:COLOR 14,0:PRINT AP$
3020 COLOR 3,0:LOCATE 6,15:PRINT "SERIAL INTERFACE PRINTER - LPT2:  ....... ";:COLOR 14,0:PRINT AP1$
3030 COLOR 3,0:LOCATE 7,15:PRINT "LENGTH OF PAPER ......................... ";:COLOR 14,0:PRINT LP1
3040 COLOR 3,0:LOCATE 8,15:PRINT "SINGLE SHEET ............................ ";:COLOR 14,0:PRINT SS$
3050 T1=LEN(T1$):T1=34-INT(T1/2):COLOR 3,0:LOCATE 10,T1:PRINT "TITLE:  ";:COLOR 14,0:PRINT T1$
3100 RETURN
4500 REM
4510 X1$="SELECT PRINTER"
4520 IF AX$="***" THEN T1$="THE ADDRESS BOOK"
4540 GOSUB 2000
4550 PRINT "PLEASE SELECT PRINTER:  " :PRINT
4560 PRINT:COLOR 14,0:A$=CHR$(218)+CHR$(196)+CHR$(191):B$=CHR$(179)+" "+CHR$(179):C$=CHR$(192)+CHR$(196)+CHR$(217)
4570 PRINT "   ";CHR$(186);"     ";A$:PRINT "   ";CHR$(186);"     ";B$:PRINT "   ";CHR$(25);"     ";C$:COLOR 3,0
4580 PRINT :LOCATE  8,4:PRINT "I)BM Parallel Printer":LOCATE 9,4:PRINT "N)Serial Printer":COLOR 14,0:LOCATE 8,4:PRINT "I":LOCATE 9,4:PRINT "N"
4590 COLOR 31,0:LOCATE 5,11:PRINT "?":COLOR 3,0
4592 COLOR 14,0:LOCATE 22,50:PRINT "KEY  F1";:COLOR 3,0:PRINT " = MAIN MENU "
4595 GOSUB 10020:DEF SEG=0: POKE 1050, PEEK(1052)
4600 PT$=INKEY$: IF PT$="" THEN 4600 ELSE PT$=CHR$(ASC(PT$) AND &HDF)
4610 IF PT$="N" THEN 4632
4620 IF PT$="I" THEN 4630 ELSE 4595
4630 CLOSE #5:OPEN "LPT1:" FOR OUTPUT AS #5:GOTO 4635
4632 CLOSE #5:OPEN "LPT2:" FOR OUTPUT AS #5
4635 CLS:LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$;:COLOR 3,0:LOCATE 1,1
4640 PRINT "PLEASE CHOOSE THE HEADING FOR YOUR ADDRESS BOOK.":PRINT
4650 PRINT:COLOR 14,0:A$=CHR$(218)+CHR$(196)+CHR$(191):B$=CHR$(179)+" "+CHR$(179):C$=CHR$(192)+CHR$(196)+CHR$(217)
4660 PRINT "   ";CHR$(186);"     ";A$:PRINT "   ";CHR$(186);"     ";B$:PRINT "   ";CHR$(25);"     ";C$:COLOR 3,0
4670 PRINT :LOCATE 8,4:PRINT "S)TORED title - ":LOCATE 8,20:COLOR 14,0:PRINT T1$:COLOR 3,0:LOCATE 9,4:PRINT "N)EW title"
4675 COLOR 14,0:LOCATE 8,4:PRINT "S":LOCATE 9,4:PRINT "N"
4680 COLOR 31,0:LOCATE 5,11:PRINT "?":COLOR 3,0
4682 COLOR 14,0:LOCATE 22,50:PRINT "KEY  F1";:COLOR 3,0:PRINT " = MAIN MENU"
4685 GOSUB 10020:DEF SEG=0: POKE 1050, PEEK(1052)
4690 Y$=INKEY$: IF Y$="" THEN 4690
4700 IF Y$="N" OR Y$="n" THEN 4720
4710 IF Y$="S" OR Y$="s" THEN 4740 ELSE 4685
4720 CLS:LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$;:COLOR 3,0:LOCATE 1,1
4730 PRINT "Please INPUT the TITLE of your ADDRESS BOOK (maximum length THIRTY-TWO (32)           characters long)":GOSUB 10010:LOCATE 12,15:COLOR 14,0:INPUT "TITLE ... ",T$:T1$=LEFT$(T$,32):COLOR 3,0
4740 TN=LEN(T1$)
4760 TN=INT((76-TN)/2 +0.5)
4780 CLS:LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$;:COLOR 3,0:LOCATE 1,1
4790 PRINT "PLEASE SELECT PRINTER VARIABLES:  ":PRINT
4800 LOCATE 4,22:PRINT "Length of your paper (in INCHES)?"
4805 LOCATE 6,30:PRINT "Default = 11 inches":
4806 LOCATE 8,25:PRINT "INPUT ";ARR$ ;" for Default value":LOCATE 8,31:COLOR 14,0:PRINT ARR$:GOSUB 10010
4807 LOCATE 10,32:COLOR 14,0:INPUT "LENGTH ... ",LP1
4808 IF LP1=0 THEN LP1=11
4810 COLOR 3,0:LOCATE 14,6:PRINT "Do you want to be prompted when printing reaches the end of the page?":LOCATE 16,30: PRINT "ENTER <";:COLOR 14,0:PRINT "Y";:COLOR 3,0:PRINT ">es or <";:COLOR 14,0:PRINT "N";:COLOR 3,0:PRINT ">o."
4815 GOSUB 10020:DEF SEG=0: POKE 1050, PEEK(1052)
4820 LP$=INKEY$: IF LP$="" THEN 4820 ELSE LP$=CHR$(ASC(LP$) AND &HDF)
4825 IF LP$="Y" OR LP$="N" THEN RETURN ELSE 4815
4830 RETURN
6000 DEF SEG=0: POKE 1050, PEEK(1052):LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date:  ";DATE$:LOCATE 3,62:PRINT "Time:  "
6010 Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 6010 ELSE RETURN
6040 DEF SEG=0: POKE 1050, PEEK(1052):LOCATE 19,29:PRINT "Date:  ";DATE$:LOCATE 20,29:PRINT "Time:  ":GOSUB 10000
6050 LOCATE ,,0:Y$=INKEY$:IF Y$="" THEN LOCATE 20,36:PRINT TIME$:GOTO 6050 ELSE RETURN
6085 DEF SEG=0: POKE 1050, PEEK(1052):LOCATE 20,29:PRINT "Date:  ";DATE$:LOCATE 21,29:PRINT "Time:  ";TIME$:RETURN
9500 REM
9610 CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";SPACE$(15);"SERIAL NUMBER: ";SNN$;:COLOR 3,0
9620 LOCATE 12,23:PRINT "PLEASE WAIT, LOADING PRINT ROUTINES"
9640 RETURN
10000 IF SND$="N" THEN RETURN ELSE FOR A%=1 TO 3:SOUND 1000*A%,1:NEXT:FOR A%=3 TO 1 STEP -1:SOUND 1000*A%,1:NEXT:RETURN
10010 IF SND$="N" THEN RETURN ELSE FOR A%=1 TO 4:SOUND  520*A%,2:NEXT:RETURN
10020 IF SND$="N" THEN RETURN ELSE BEEP:RETURN

ADPRT.BAS

10 CLEAR:ON ERROR GOTO 3940
30 GOSUB 3500:GOTO 130
70 CLS:COLOR 3,0:LOCATE  12,30:PRINT "QUIT?  <Y>es or <N>o?":COLOR 14,0:LOCATE 12,38:PRINT "Y":LOCATE 12,47:PRINT "N":COLOR 3,0
80 GOSUB 115
90 IF Y$="N" THEN 170
110 CLS:LOCATE 12,30:PRINT "GOODBYE":SYSTEM
115 GOSUB 35020:DEF SEG=0: POKE 1050, PEEK(1052)
116 Y$=INKEY$:IF Y$="" THEN 116 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
117 IF Y$="N" OR Y$="Y" THEN RETURN ELSE 115
120 REM
130 REM              PRINT
140 GOSUB 6000
170 CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";SPACE$(20);"PRINT ";:COLOR 3,0:LOCATE 1,1
180 LOCATE 1,1:PRINT TAB(9);"PRINT MENU":PRINT:PRINT "CHOOSE ONE OF THE FOLLOWING:  "
190 PRINT:COLOR 14,0:A$=CHR$(218)+CHR$(196)+CHR$(191):B$=CHR$(179)+" "+CHR$(179):C$=CHR$(192)+CHR$(196)+CHR$(217)
200 PRINT "   ";CHR$(186);"     ";A$:PRINT "   ";CHR$(186);"     ";B$:PRINT "   ";CHR$(25);"     ";C$:COLOR 3,0
210 PRINT:PRINT TAB(4);"A)DDRESSES and NAMES":PRINT TAB(4) "B)IRTHDAYS and NAMES"
220 PRINT TAB(4);"C)OMPLETE data (except NOTES)"
230 PRINT TAB(4);"M)AILING LABEL form":PRINT TAB(4);"N)OTES (Complete Data)"
240 PRINT TAB(4);"P)WordPerfect - MAIL MERGE "
241 PRINT TAB(4);"R)olodex labels"
242 PRINT TAB(4);"S)WordStar - MAIL MERGE "
245 PRINT TAB(4);"T)ELEPHONE numbers and NAMES "
250 PRINT TAB(4);"Z)IP CODE all Addresses within zone"
270 COLOR 14,0:LOCATE 9,4:PRINT "A":LOCATE 10,4:PRINT "B":LOCATE 11,4:PRINT "C"
280 LOCATE 12,4:PRINT "M":LOCATE 13,4:PRINT "N":LOCATE 14,4:PRINT "P":LOCATE 15,4:PRINT "R":LOCATE 16,4:PRINT "S":LOCATE 17,4:PRINT "T":LOCATE 18,4:PRINT "Z"
300 COLOR 31,0:LOCATE 6,11:PRINT "?"
310 COLOR 3,0:LOCATE 18,40:PRINT "KEY  F1 = Return to MAIN menu"
320 COLOR 14,0:LOCATE 19,40:PRINT "     F6";:COLOR 3,0:PRINT " = Return to PRINT menu"
330 LOCATE 20,40:PRINT "     F7 = List of names in Address Book"
340 LOCATE 21,40:PRINT "     F8 = KEYS used in NOTES"
345 LOCATE 22,40:PRINT "    F10 = HELP"
350 LOCATE 23,40:PRINT "Alt F10 = QUIT"
360 DEF SEG=0: POKE 1050, PEEK(1052):LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date:  ";DATE$:LOCATE 3,62:PRINT "Time:  "
370 GOSUB 5000
375 IF LEN(Y$)=2 THEN 455 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
380 COLOR 3,0:LOCATE 6,11:PRINT Y$
390 IF Y$="C" THEN RUN"ADPRTC
400 IF Y$="Z" THEN RUN"ADZIP
410 IF Y$="A" THEN RUN"ADPRTA
420 IF Y$="M" THEN RUN"ADMAIL
425 IF Y$="R" THEN RUN"ADRODX.BAS
430 IF Y$="P" THEN RUN"ADWP
435 IF Y$="S" THEN RUN"ADWS
440 IF Y$="B" THEN 2620
445 IF Y$="T" THEN 3020
450 IF Y$="N" THEN 2180 ELSE GOSUB 35020:GOTO 370
455 IF ASC(RIGHT$(Y$,1))=68 THEN 30000
460 IF ASC(RIGHT$(Y$,1))=113 THEN 70 ELSE 180
1950 REM
2110 PRINT #5,
2120 PRINT #5,  SPACE$(TN);T1$
2130 B=VAL(LEFT$(DATE$,2))
2140 PRINT #5, :PRINT #5,  SPACE$(30);DQ$(B);" ";MID$(DATE$,4,2);", 19";RIGHT$(DATE$,2):PRINT #5,
2150 PRINT #5,
2160 MP =10
2170 RETURN
2180 GOSUB 6000:GOSUB 5510
2186 PRINT "PRINT ... NOTES:" :LOCATE 5,28
2190 PRINT "ENTER:  NOTES & ";ARR$:LOCATE 6,17:PRINT "Any nmber of characters starting from the left)": LOCATE 8,30:PRINT "OR <!> to print all": LOCATE 9,39:PRINT "OR":LOCATE 10,28:PRINT ARR$;" RETURN to PRINT menu"
2200 LOCATE 15,10:PRINT:COLOR 14,0:INPUT "NOTES ... ",Z$:COLOR 3,0
2210 MM=LEN(Z$):IF MM=0 THEN 170
2220 GOSUB 4100
2260 GOSUB 5700
2290 REM
2350 PRINT #5,  :PRINT #5,
2360 PRINT #5,  "          NAME";SPACE$(36);"NOTES":PRINT #5, :PRINT #5,
2370 MP=MP+5
2380 MP1=LP1*6-9:K=1
2385 GET #4,NN+1:I=VAL(V$(16)):II=I:IK=0
2390 IF IK= NN THEN 170 ELSE IK=IK+1
2400 IF MP<MP1 THEN 2450 ELSE K=K+1
2410 IF LP$="N" OR LP$="n" THEN 2440 ELSE PRINT "Advance paper and hit any key to continue":GOSUB 35010
2420 Y$=INKEY$:IF Y$="" THEN 2420
2430 PRINT #5,   TAB(35);"-";K;" -":PRINT #5, :PRINT #5,  :MP=6:GOTO 2450
2440 GOSUB 5500
2450 GET #4,I
2460 IF Z$="!" THEN 2480
2470 IF Z$<>MID$(V$(9),5,MM) THEN 2595
2480 GOSUB 5520
2485 A(5)=34-A(5)-A(6)-A(7)
2570 PRINT #5,  W$(4);SPACE$(8);MID$(V$(9),5,40):MP=MP+1
2580 PRINT #5,  W$(5);SPACE$(A(5));RIGHT$(V$(9),40)
2583 IF VAL(V$(10))<>0 THEN PRINT #5,"Telephone -   Home:  ";MID$(V$(10),5,VAL(V$(10))):MP=MP+1
2585 IF VAL(V$(11))<>0 THEN PRINT #5,"Telephone - Office:  ";MID$(V$(11),5,VAL(V$(11))):MP=MP+1
2586 IF VAL(V$(8))=0 THEN 2590 ELSE B=VAL(MID$(V$(8),5,2)):W$(2)=" 19"+MID$(V$(8),11,2):Z9=VAL(MID$(V$(8),8,2))
2587 IF VAL(W$(2))=19 THEN W$(2)="" ELSE W$(2)=","+W$(2)
2588 PRINT #5,  "Birthday:  ";DQ$(B);STR$(Z9);W$(2):MP=MP+1
2590 PRINT #5,:PRINT #5,:MP=MP+4
2595 I=VAL(V$(14))
2600 IF FRE(1)>1000 THEN 2390 ELSE 2610
2605 GOTO 170
2610 CHAIN "ADPRT.BAS",2615,ALL
2615 GOSUB 6000:GOTO 2390
2620 GOSUB 6000
2630 X2$=" - BIRTHDAY":GOSUB 5600
2640 X2$=" - BIRTHDAY":LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$;X2$;:COLOR 3,0
2670 GOSUB 5700
2750 PRINT #5,  :PRINT #5,
2760 PRINT #5,  "          NAME";SPACE$(36);"BIRTHDAY":PRINT #5, :PRINT #5,
2770 MP=MP+5
2780 MP1=LP1*6-9:K=1
2790 GET #4,NN+1:I=VAL(V$(16)):IB=0:IK=0
2800 IF IK=NN THEN 3000 ELSE IK=IK+1
2805 GET #4,I
2810 A(1)=VAL(V$(1)):A(2)=VAL(V$(2)):A(3)=VAL(V$(13)):A(4)=VAL(V$(8))
2820 W$(1)=MID$(V$(13),5,A(3))+MID$(V$(1),5,A(1))+" "+MID$(V$(2),5,A(2))
2830 IF MP<MP1 THEN 2880 ELSE K=K+1
2840 IF LP$="N" OR LP$="n" THEN 2870 ELSE PRINT "Advance paper and hit any key to continue":GOSUB 35010
2850 Y$=INKEY$:IF Y$="" THEN 2850
2860 PRINT #5,   TAB(35);"-";K;" -":PRINT #5, :PRINT #5,  :MP=6:GOTO 2880
2870 GOSUB 5500
2880 A(1)=40-A(1)-A(2)-A(3)
2890 IF A(4)= 0 THEN IB=IB+1:GOTO 2940 ELSE 2900
2900 B=VAL(MID$(V$(8),5,2)):W$(2)=" 19"+MID$(V$(8),11,2):Z9=VAL(MID$(V$(8),8,2))
2910 IF VAL(W$(2))=19 THEN W$(2)="" ELSE W$(2)=","+W$(2)
2920 PRINT #5,  TAB(4);W$(1);SPACE$(A(1));DQ$(B);STR$(Z9);W$(2)
2930 MP=MP+1
2940 I= VAL(V$(14))
2950 IF FRE(1)>1500 THEN 2800
2960 CHAIN "ADPRT.BAS",2970,ALL
2970 GOSUB 6000
2990 GOTO 2800
3000 IF IB>0 THEN PRINT #5, :PRINT #5, TAB(4);"The ADDRESS BOOK contains additional ";IB;" names without birthday information.":PRINT #5, :PRINT #5,
3010 GOTO 170
3020 X2$=" - TELEPHONE":GOSUB 5600
3030 GOSUB 6000
3040 GOSUB 4100
3060 GOSUB 5700
3080 MP1=LP1*6-9:K=1
3140 MP=MP+5
3150 PRINT #5,  :PRINT #5,
3160 PRINT #5,  "          NAME";SPACE$(27);"  HOME  ";SPACE$(14);"OFFICE":PRINT #5, :PRINT #5,
3170 GET #4,NN+1:I=VAL(V$(16)):IN=0
3180 IF IN=NN THEN 3470 ELSE IN=IN+1
3185 GET #4,I
3190 A(1)=VAL(V$(1)):A(2)=VAL(V$(2)):A(3)=VAL(V$(13)):A(4)=VAL(V$(10)):A(5)=VAL(V$(11))
3200 W$(1)=MID$(V$(13),5,A(3))+MID$(V$(1),5,A(1))+" "+MID$(V$(2),5,A(2))
3210 W$(2)=MID$(V$(10),5,A(4))
3220 IF MP<MP1 THEN 3270 ELSE K=K+1
3230 IF LP$="N" OR LP$="n" THEN 3260 ELSE PRINT  "Advance paper and hit any key to continue":GOSUB 35010
3240 Y$=INKEY$: IF Y$="" THEN 3240
3250 PRINT #5,   TAB(35);"-";K;" -":PRINT #5, :PRINT #5,  :MP=6:GOTO 3270
3260 GOSUB 5500
3270 M1=33-A(1)-A(2)-A(3):M2=7
3280 IF A(4)=12 THEN 3330
3290 IF A(4)=0 THEN M1=12+M1
3300 IF A(4)=8 THEN M1=M1+4
3310 IF A(4)=10 THEN M1=M1+2
3320 IF A(4)=7 THEN M1=M1+5
3330 I$=STR$(IN):IF IN<10 THEN I$="  "+I$
3340 IF IN>9 AND IN<100 THEN I$=" "+I$
3350 IF A(5)=12 THEN 3390
3360 IF A(5)=10 THEN M2=M2+2
3370 IF A(5)=7 THEN M2=M2+5
3380 IF A(5)=8 THEN M2=M2+4
3390 PRINT #5,  TAB(4);I$;".  ";W$(1);SPACE$(M1);W$(2);SPACE$(M2);MID$(V$(11),5,A(5))
3400 MP=MP+1
3410 I= VAL(V$(14))
3420 IF FRE(1)>1000 THEN 3180
3430 CHAIN "ADPRT.BAS",3440,ALL
3440 GOSUB 6000
3460 GOTO 3180
3470 REM
3480 GOTO 170
3500 OPEN "TEMPOR.TEM" FOR INPUT AS #1
3505 INPUT #1, FILE$,FILM$,FIL$:CLOSE #1
3510 OPEN FILM$ FOR INPUT AS #2
3512 INPUT #2, Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:CLOSE #2
3515 IF PT$="I" THEN OPEN "LPT1:" FOR OUTPUT AS #5:GOTO 3520 ELSE OPEN "LPT2:" FOR OUTPUT AS #5
3520 DIM V$(16),W$(10),A(10),DQ$(12):FOR I= 1 TO 12:READ DQ$(I):NEXT
3530 DATA JANUARY, FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
3570 OPEN FILE$ AS #4 LEN = 356
3580 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
3700 ON ERROR GOTO 3940
3750 RETURN
3840 REM
3845 FILN$ =FIL$+".NTE"
3850 OPEN FILN$ FOR INPUT AS #2
3860 FOR I= 1 TO 20:INPUT #2, NKEY$(I),NOTE$(I):IF NKEY$(I)=CHR$(15) THEN 3870 ELSE NEXT
3870 NP=I-1:CLOSE #2
3880 GOSUB 5510
3890 PRINT "NOTES:  KEYS":LOCATE 1,30:COLOR 14,0:PRINT "KEYS       ";:COLOR 3,0:PRINT " DESCRIPTION":FOR I=1 TO NP:COLOR 14,0:LOCATE 4+I,30:PRINT NKEY$(I);:COLOR 3,0:LOCATE ,40:PRINT " = ";NOTE$(I):NEXT
3900 LOCATE 20,28:COLOR 14,0:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030
3910 Y$=INKEY$:IF Y$="" THEN 3910
3920 COLOR 3,0
3930 RETURN 140
3940 IF ERR = 27 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"PRINTER ERROR ":COLOR 7,1:LOCATE 1,1
3950 IF ERR = 27 THEN PRINT "CHECK THE PRINTER":FOR I= 1 TO 500:NEXT I:RESUME 170
3970 IF ERR =53 THEN CLS:LOCATE 10,15:PRINT "File containing KEYS used in NOTES does not exist.":LOCATE 12,22:PRINT "Return to EDIT program to create file." :LOCATE 18,30:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030:Y$=INPUT$(1):RESUME 140
3981 CLS:LOCATE 10,28:PRINT "ERROR ";ERR;" ENCOUNTERED":LOCATE 18,26:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030
3982 Y$=INKEY$:IF Y$="" THEN 3982
3985 RESUME 140
3990 GOSUB 5510:M=0
4000 A$="ADPRT":CHAIN "ADNAME",20000,ALL
4100 LOCATE 22,10:COLOR 16,7:PRINT "RUNNING":COLOR 3,0:RETURN
5000 Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 5000 ELSE RETURN
5200 A$="EDIT":Y1=1:GOTO 5250
5210 A$="DELETE":Y1=2:GOTO 5250
5220 A$="SORT":Y1=3:GOTO 5250
5230 A$="SEARCH":Y1=4:GOTO 5250
5240 A$="MAIN":Y1=5
5250 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 12,21:PRINT "PLEASE WAIT, LOADING ";A$;" ROUTINES"
5255 A$="AD"+A$:RUN A$
5500 PRINT #5, CHR$(12):PRINT #5,:PRINT #5, :PRINT #5,  TAB(35);"- ";K;" -":PRINT #5, :PRINT #5, :MP=5:RETURN
5510 CLS:LOCATE 25,1:COLOR 0,7,0:PRINT O1$;:COLOR 3,0:LOCATE 1,1:RETURN
5520 A(8)=VAL(V$(13))
5530 FOR J= 1 TO 7 :A(J)=VAL(V$(J)):NEXT
5540 W$(1)=MID$(V$(13),5,A(8))+MID$(V$(1),5,A(1))+" "+MID$(V$(2),5,A(2))
5550 W$(3)=RIGHT$(V$(3),30):W$(4)=RIGHT$(V$(4),30):W$(8)=RIGHT$(V$(12),30)
5560 W$(5)=MID$(V$(5),5,A(5))+", "+MID$(V$(6),5,A(6))+"  "+MID$(V$(7),5,A(7))
5570 PRINT #5,  W$(1)
5580 IF VAL(V$(12))<>0 THEN PRINT #5, W$(8):MP=MP+1
5590 IF A(3)<>0 THEN PRINT #5, W$(3):MP=MP+1:RETURN ELSE RETURN
5600 X3$="FILE = ":X4$=SPACE$(12):X5$="FUNCTION = ":X1$="PRINT "
5610 LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$;X2$;:COLOR 3,0:RETURN
5700 LOCATE 22,1:COLOR 0,7:PRINT "TURN ON PRINTER AND HIT ANY KEY":COLOR 3,0:GOSUB 35010
5710 GOSUB 5000
5720 LOCATE 22,1:PRINT SPACE$(40):LOCATE 22,10:COLOR 16,7:PRINT "WORKING":COLOR 3,0
5730 GOSUB 1950:RETURN
6000 ON KEY(8) GOSUB 3840:KEY(8) ON:ON KEY(7) GOSUB 3990:KEY(7) ON
6010 ON KEY(1) GOSUB 5240:ON KEY(2) GOSUB 5200:KEY(1) ON:KEY(2) ON:ON KEY(3) GOSUB 5210:KEY(3) ON:ON KEY(4) GOSUB 5220:KEY(4) ON:ON KEY(5) GOSUB 5230:ON KEY(6) GOSUB 130:KEY(6) ON:KEY(5) ON
6015 O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F6:PRINT menu"+O2$+"F7:NAMES"+O2$+"F8:NOTES":ARR$=CHR$(17)+CHR$(196)+CHR$(217)
6020 RETURN
30000 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 1,1
30010 OPEN "AD.HLP" AS #2 LEN=78
30020 FIELD #2, 78 AS A$
30030 I=1:M=1
30040 GET #2,I
30090 IF LEFT$(A$,1) <> CHR$(15) THEN PRINT A$ :I=I+1:GOTO 30040 ELSE 30130
30130 LOCATE 24,27:COLOR 0,7:PRINT "HIT ANY KEY TO CONTINUE";:COLOR 3,0:GOSUB 35030
30140 Y$=INKEY$:IF Y$="" THEN 30140
30150 CLOSE #2:GOTO 130
35000 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
35010 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
35020 IF SND$="N" THEN RETURN ELSE BEEP:RETURN
35030 IF SND$="N" THEN RETURN ELSE SOUND 750,2:SOUND 30000,2:SOUND 750,2:RETURN

ADPRTA.BAS

10 ON ERROR GOTO 3940
30 GOTO 1380
70 CLS:COLOR 3,0,1:LOCATE  12,30:PRINT "QUIT?  <Y>es or <N>o?":COLOR 14,0:LOCATE 12,38:PRINT "Y":LOCATE 12,47:PRINT "N":COLOR 3,0:GOSUB 35000
80 Y$=INKEY$:IF Y$="" THEN 80
90 IF Y$="n" OR Y$="N" THEN RUN"adprt"
100 IF Y$="y" OR Y$="Y" THEN 110 ELSE 70
110 CLS:LOCATE 12,30:PRINT "GOODBYE":SYSTEM
120 REM
130 REM              PRINT
140 GOSUB 6000
150 CLOSE
200 RUN"adprt
1020 LOCATE 12,15:COLOR 14,0:PRINT "Do you want to use the Title of Courtesy?"
1030 LOCATE 14,30:COLOR 3,0:PRINT "<Y>es or <N>o?":LOCATE 14,31:COLOR 14,0:PRINT "Y":LOCATE 14,40:PRINT "N":COLOR 3,0:GOSUB 35030
1040 T$=INKEY$:IF T$="" THEN 1040 ELSE T$=CHR$(ASC(T$) AND &HDF):RETURN
1380 GOSUB 3000
1390 CLS:GOSUB 6000:GOSUB 1020
1400 X3$="FILE = ":X4$=SPACE$(12):X5$="FUNCTION = ":X1$="PRINT "
1410 X2$=" - ADDRESS":LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$;X2$;:COLOR 3,0
1425 LOCATE 20,40:PRINT SPACE$(39):LOCATE 21,40:PRINT SPACE$(39):LOCATE 22,40:PRINT SPACE$(20):LOCATE 23,40:PRINT SPACE$(20)
1430 GOSUB 2400
1450 GOSUB 1950
1460 MP1=LP1*6-9:K=1
1470 GET #4,NN+1:I=VAL(V$(16)):IK=0
1480 FOR L=1 TO 2
1482 IF IK=NN THEN IK=NN+1:GOTO 1620 ELSE IK=IK+1
1484 GET #4,I
1486 FOR J= 1 TO 7 :A(J,L)=VAL(V$(J)):NEXT
1488 A(8,L)=VAL(V$(13)):A(9,L)=VAL(V$(12)):A2=A(2,L)
1490 W$(6,L)=MID$(V$(5),5,A(5,L))+", "+MID$(V$(6),5,A(6,L))+"  "+MID$(V$(7),5,A(7,L))
1492 IF T$="N" THEN A9=36-A(2,L):GOTO 1498
1494 A9=36-A(8,L)-A(2,L):IF A9<A(1,L) THEN A(1,L)=A9
1498 A(5,L)=36-A(5,L)-A(6,L)-A(7,L)
1500 IF T$="Y" THEN W$(1,L)=MID$(V$(13),5,A(8,L))+MID$(V$(1),5,A(1,L))+" "+MID$(V$(2),5,A(2,L)):GOTO 1504
1502 W$(1,L)=MID$(V$(1),5,A(1,L))+" "+MID$(V$(2),5,A(2,L))
1504 IF A(9,L) <> 0 THEN W$(2,L)=MID$(V$(12),5,30) :GOTO 1510
1506 IF A(9,L) = 0 AND A(3,L)=0 THEN W$(2,L)=MID$(V$(4),5,30):W$(4,L)="":W$(5,L)="":W$(3,L)=W$(6,L):A(2,L)=10:A(3,L)=A(5,L):A(4,L)=40:A(5,L)=40:GOTO 1514
1508 IF A(9,L) = 0 AND A(3,L)<>0 THEN W$(2,L)=MID$(V$(3),5,30):W$(3,L)=MID$(V$(4),5,30):W$(4,L)=W$(6,L):W$(5,L)="":A(2,L)=10:A(3,L)=A(2,L):A(4,L)=A(5,L):A(5,L)=40:GOTO 1514
1510 IF A(9,L) <> 0 AND A(3,L)<>0 THEN W$(3,L)=MID$(V$(3),5,30):W$(4,L)=MID$(V$(4),5,30):A(2,L)=10:W$(5,L)=W$(6,L):A(3,L)=10:A(4,L)=10:GOTO 1514
1512 IF A(9,L) <>0 AND A(3,L)=0 THEN W$(3,L)=MID$(V$(4),5,30):W$(4,L)=W$(6,L):W$(5,L)="":A(2,L)=10:A(3,L)=A(2,L):A(4,L)=A(5,L):A(5,L)=40:GOTO 1514
1514 IF T$="Y" THEN A(1,L)=32-A(1,L)-A2-A(8,L) ELSE A(1,L)=32-A(1,L)-A2
1518 IF A(1,L)<=0 THEN A(1,L)=3
1522 I=VAL(V$(14)):NEXT
1620 IF MP<MP1 THEN 1670 ELSE K=K+1
1630 IF LP$="N" OR LP$="n" THEN 1660 ELSE LOCATE 24,1:PRINT "Advance paper and hit any key to continue";:GOSUB 35010
1640 Y$=INKEY$:IF Y$="" THEN 1640 ELSE LOCATE 24,1:PRINT SPACE$(50);
1650 PRINT #5,   TAB(35);"-";K;" -":PRINT #5, :PRINT #5,  :MP=6:GOTO 1670
1660 PRINT #5, CHR$(12):PRINT #5,:PRINT #5,  TAB(35);"- ";K;" -":PRINT #5, :PRINT #5, :MP=5
1670 S=IK-1
1680 IF S<>NN THEN 1690 ELSE IF N1 =0 THEN 1690 ELSE 1880
1690 IS$=STR$(S):IS1$=STR$(S+1):IF S<=9 THEN IS$="  "+IS$
1700 IF S+1<=9 THEN IS1$="  "+IS1$
1710 IF S>9 AND S<100 THEN IS$=" "+IS$
1720 IF S+1>9 AND S<100 THEN IS1$=" "+IS1$
1725 IF IK=NN+1 THEN 1880
1730 PRINT #5,  TAB(1);IS$;".  ";W$(1,1);SPACE$(A(1,1));IS1$;".  ";W$(1,2)
1740 PRINT #5, TAB(8);W$(2,1);SPACE$(A(2,1));W$(2,2)
1750 PRINT #5, TAB(8);W$(3,1);SPACE$(A(3,1));W$(3,2)
1760 IF W$(4,1) ="" AND W$(4,2)=""THEN 1770 ELSE PRINT #5, TAB(8);W$(4,1);SPACE$(A(4,1));W$(4,2):MP=MP+1
1770 IF W$(5,1)="" AND W$(5,2)="" THEN 1780 ELSE PRINT #5, TAB(8);W$(5,1);SPACE$(A(5,1));W$(5,2):MP=MP+1
1780 MP=MP+5
1790 PRINT #5, :PRINT #5,
1792 Y$=INKEY$:IF Y$=CHR$(27) THEN GOSUB 2500
1800 IF IK=>NN THEN 1870
1810 IF FRE(1)>1000 THEN 1480
1820 CHAIN "adprta",1850,ALL
1850 GOTO 1480
1870 RUN"adprt
1880 PRINT #5,  TAB(1);IS$;".  ";W$(1,1):PRINT #5, TAB(8);W$(2,1)
1890 PRINT #5,  TAB(8);W$(3,1):PRINT #5, TAB(8);W$(4,1)
1900 PRINT #5,  TAB(8);W$(5,1)
1920 PRINT #5,  :PRINT #5,
1930 RUN"adprt
1950 REM
2110 PRINT #5,
2120 PRINT #5,  SPACE$(TN);T1$
2130 B=VAL(LEFT$(DATE$,2))
2140 PRINT #5, :PRINT #5,  SPACE$(30);DQ$(B);" ";MID$(DATE$,4,2);", 19";RIGHT$(DATE$,2):PRINT #5,
2150 PRINT #5,
2160 MP =10
2170 RETURN
2400 COLOR 0,7:LOCATE 21,1:PRINT "TURN ON PRINTER AND HIT ANY KEY":COLOR 3,0:GOSUB 35010
2410 GOSUB 5000
2420 LOCATE 21,1:PRINT SPACE$(40):LOCATE 21,10:COLOR 16,7:PRINT "WORKING":COLOR 3,0
2430 LOCATE 23,1:COLOR 10,0:PRINT "Hit <Esc> to stop printing.":COLOR 3,0
2440 RETURN
2500 COLOR 10,0:LOCATE 21,1:PRINT "Hit any key to continue PRINTING":GOSUB 35010
2510 LOCATE 23,1:COLOR 10,0:PRINT "Hit KEY F6 - Return to Menu.":COLOR 3,0
2520 GOSUB 5000:GOSUB 2420:RETURN
3000 O5$=CHR$(218)+CHR$(196)+CHR$(191):O6$=CHR$(179)+" "+CHR$(179):O7$=CHR$(192)+CHR$(196)+CHR$(217)
3010 O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F2:PRINT-MAIL menu"+O2$+"F6:PRINT menu"+O2$+"F8:NAMES"+O2$+"F4:NOTES"
3020 DIM DQ$(12):FOR I= 1 TO 12:READ DQ$(I):NEXT
3030 DATA JANUARY, FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
3040 WIDTH "LPT1:",82
3050 OPEN "TEMPOR.TEM" FOR INPUT AS #1
3055 INPUT #1, FILE$,FILM$,FIL$:CLOSE #1
3056 OPEN FILM$ FOR INPUT AS #2
3060 INPUT #2,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:CLOSE #2
3065 DIM V$(16),D%(NN),W$(9,2),A(9,2)
3070 IF PT$="I" THEN OPEN "LPT1:" FOR OUTPUT AS #5:GOTO 3090
3080 OPEN "LPT2:" FOR OUTPUT AS #5
3090 OPEN FILE$ AS #4 LEN = 356
3100 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
3120 FILN$=FIL$+".NTE"
3130 RETURN
3840 RUN"adprt.bas"
3940 IF ERR = 27 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"PRINTER ERROR ":COLOR 7,1:LOCATE 1,1
3950 IF ERR = 27 THEN PRINT "CHECK THE PRINTER":FOR I= 1 TO 500:NEXT I:RUN"adprt"
3970 IF ERR =53 THEN CLS:LOCATE 10,15:PRINT "File containing KEYS used in NOTES does not exist.":LOCATE 12,22:PRINT "Return to EDIT program to create file." :LOCATE 18,30:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030:Y$=INPUT$(1):RESUME 140
3981 CLS:LOCATE 10,28:PRINT "ERROR ";ERR;" ENCOUNTERED":LOCATE 18,26:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030
3982 Y$=INKEY$:IF Y$="" THEN 3982
3985 RESUME 140
5000 Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 5000 ELSE RETURN
5200 A$="EDIT":Y1=2:GOTO 5250
5205 A$="PRINT":Y1=6:GOTO 5250
5210 A$="DELETE":Y1=3:GOTO 5250
5220 A$="SORT":Y1=4:GOTO 5250
5230 A$="SEARCH":Y1=5:GOTO 5250
5240 A$="MAIN":Y1=1
5250 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 12,21:PRINT "PLEASE WAIT, LOADING ";A$;" ROUTINES"
5260 IF Y1=6 THEN RUN "ADPRT.BAS"
5270 A$="AD"+A$:RUN A$
6000 ON KEY(8) GOSUB 3840:KEY(8) ON:ON KEY(7) GOSUB 3840:KEY(7) ON
6010 ON KEY(1) GOSUB 5240:ON KEY(2) GOSUB 5200:KEY(1) ON:KEY(2) ON:ON KEY(3) GOSUB 5210:KEY(3) ON:ON KEY(4) GOSUB 5220:KEY(4) ON:ON KEY(5) GOSUB 5230:ON KEY(6) GOSUB 130:KEY(6) ON:KEY(5) ON
6020 RETURN
35000 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
35010 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
35030 IF SND$="N" THEN RETURN ELSE SOUND 750,2:SOUND 30000,2:SOUND 750,2:RETURN

ADPRTC.BAS

10 ON ERROR GOTO 3940
30 GOTO 480
70 CLS:COLOR 3,0,1:LOCATE  12,30:PRINT "QUIT?  <Y>es or <N>o?":COLOR 14,0:LOCATE 12,38:PRINT "Y":LOCATE 12,47:PRINT "N":COLOR 3,0:GOSUB 35000
80 Y$=INKEY$:IF Y$="" THEN 80
90 IF Y$="n" OR Y$="N" THEN RUN"adprt"
100 IF Y$="y" OR Y$="Y" THEN 110 ELSE 70
110 CLS:LOCATE 12,30:PRINT "GOODBYE":SYSTEM
120 REM
130 REM              PRINT
140 GOSUB 6000
200 RUN"adprt
480 GOSUB 3000:GOSUB 6000:CLS:GOSUB 1020
490 X3$="FILE = ":X4$=SPACE$(12):X5$="FUNCTION = ":X1$="PRINT "
500 X2$=" - COMPLETE FILE":LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$;X2$;:COLOR 3,0
515 LOCATE 20,40:PRINT SPACE$(39):LOCATE 21,40:PRINT SPACE$(39):LOCATE 22,40:PRINT SPACE$(20):LOCATE 23,40:PRINT SPACE$(20)
520 GOSUB 2400
540 GOSUB 1950
550 MP1=LP1*6-9:K=1
560 GET #4,NN+1:I=VAL(V$(16)):IK=0
565 M1=10:M2=36:M3=39:M4=39:M5=40
570 FOR L=1 TO 2
575 IF IK=NN THEN IK=NN+1:GOTO 700 ELSE IK=IK+1
580 GET #4,I
582 FOR J= 1 TO 7 :A(J,L)=VAL(V$(J)):NEXT
584 A(8,L)=VAL(V$(13)):A(9,L)=VAL(V$(12)):A2=A(2,L)
586 W$(6,L)=MID$(V$(5),5,A(5,L))+", "+MID$(V$(6),5,A(6,L))+"  "+MID$(V$(7),5,A(7,L))
588 A2=A(2,L):IF T$="N" THEN A9=M3-A(2,L):GOTO 590 ELSE A9=M3-A(8,L)-A(2,L)
590 IF A9=>A(1,L) THEN 598
592 A1=INSTR(1,MID$(V$(1),5,A(1,L))," "):IF A1<=0 THEN A$=MID$(V$(1),5,1)+".":A(1,L)=2:GOTO 600
594 IF A1<A9 THEN A$=MID$(V$(1),5,A1-1):A(1,L)=A1-1:GOTO 600
596 IF (A1<A(1,L) AND A1<A9) THEN A$=MID$(V$(1),5,1)+". "+MID$(V$(1),6+A1,1)+".":A(1,L)=5:GOTO 600:ELSE A$=MID$(V$(1),5,1)+".":A(1,L)=2:GOTO 600
598 A$=MID$(V$(1),5,A(1,L))
600 A(5,L)=M2-A(5,L)-A(6,L)-A(7,L):IF T$="N" THEN W$(1,L)=A$+" "+MID$(V$(2),5,A(2,L)):GOTO 606
602 W$(1,L)=MID$(V$(13),5,A(8,L))+A$+" "+MID$(V$(2),5,A(2,L))
606 IF A(9,L) = 0 AND A(3,L)=0 THEN W$(2,L)=MID$(V$(4),5,M3):W$(4,L)="":W$(5,L)="":W$(3,L)=W$(6,L):A(2,L)=M1:A(3,L)=A(5,L):A(4,L)=M5:A(5,L)=M5:GOTO 624
608 IF A(9,L) = 0 AND A(3,L)<>0 THEN 610 ELSE 612
610 W$(2,L)=MID$(V$(3),5,M3):W$(3,L)=MID$(V$(4),5,M3):W$(4,L)=W$(6,L):W$(5,L)="":A(2,L)=M1:A(3,L)=A(2,L):A(4,L)=A(5,L):A(5,L)=M5:GOTO 624
612 IF A(9,L) <> 0 AND A(3,L)<>0 THEN 614 ELSE 620
614 W$(2,L)=MID$(V$(12),5,M3):W$(3,L)=MID$(V$(3),5,M3):W$(4,L)=MID$(V$(4),5,M3):A(2,L)=M1:W$(5,L)=W$(6,L):A(3,L)=M1:A(4,L)=M1:GOTO 624
620 IF A(9,L) <>0 AND A(3,L)=0 THEN 622 ELSE 624
622 W$(2,L)=MID$(V$(12),5,M3):W$(3,L)=MID$(V$(4),5,M3):W$(4,L)=W$(6,L):W$(5,L)="":A(2,L)=M1:A(3,L)=A(2,L):A(4,L)=A(5,L):A(5,L)=M5:GOTO 624
624 IF T$="N" THEN A(1,L)=M4-A(1,L)-A2 ELSE A(1,L)=M4-A(1,L)-A2-A(8,L)
630 W$(10,L)=MID$(V$(10),5,12):W$(11,L)=MID$(V$(11),5,12):A(10,L)=16:A(11,L)=16
635 W$(8,L)=MID$(V$(8),5,VAL(V$(8))):A(8,L)=VAL(V$(8))
640 I=VAL(V$(14)):NEXT
700 IF MP<MP1-3 THEN 750 ELSE K=K+1
710 IF LP$="N" OR LP$="n" THEN 740 ELSE PRINT "Advance paper and hit any key to continue";:GOSUB 35010
720 Y$=INKEY$:IF Y$="" THEN 720 ELSE LOCATE 24,1:PRINT SPACE$(50);
730 PRINT #5,  TAB(35);"-";K;" -":PRINT #5, :PRINT #5,  :MP=6:GOTO 750
740 PRINT #5, CHR$(12):PRINT #5, :PRINT #5,  TAB(35);"- ";K;" -":PRINT #5, :PRINT #5, :MP=5
750 IF IK=NN+1 THEN 960
770 FOR J=1 TO 3:PRINT #5,  TAB(4);W$(J,1);SPACE$(A(J,1));W$(J,2):NEXT
775 IF W$(4,1)="" AND W$(4,2)="" THEN 780 ELSE PRINT #5,  TAB(4);W$(4,1);SPACE$(A(4,1));W$(4,2):MP=MP+1
780 IF W$(5,1)="" AND W$(5,2)="" THEN 820 ELSE PRINT #5,  TAB(4);W$(5,1);SPACE$(A(5,1));W$(5,2):MP=MP+1
820 PRINT #5,  TAB(4);"* TELEPHONE ";SPACE$(28);"* TELEPHONE"
830 PRINT #5,  TAB(9);"HOME:    ";W$(10,1);SPACE$(A(10,1));"   HOME:    ";W$(10,2)
840 PRINT #5,  TAB(9);"OFFICE:  ";W$(11,1);SPACE$(A(11,1));"   OFFICE:  ";W$(11,2)
850 MP=MP+8
860 IF A(8,1)=0 AND A(8,2)=0  THEN 870
865 IF A(8,1)=0 AND A(8,2)<>0 THEN PRINT #5, TAB(44);"* BIRTHDAY:  "W$(8,2):MP=MP+1:GOTO 870
866 IF A(8,1)<>=0 AND A(8,2)=0 THEN PRINT #5, TAB(4);"* BIRTHDAY:  "W$(8,1):MP=MP+1:GOTO 870
867 A(8,1)=27-A(8,1):PRINT #5,  TAB(4);"* BIRTHDAY:  ";W$(8,1);SPACE$(A(8,1));"* BIRTHDAY:  ";W$(8,2):MP=MP+1
870 PRINT #5, :PRINT #5,
875 Y$=INKEY$:IF Y$=CHR$(27) THEN GOSUB 2500
880 IF IK=>NN THEN 940
890 IF FRE(1)>1000! THEN 570
900 CHAIN "ADPRTC.BAS",920,ALL
920 GOSUB 6000
930 GOTO 570
940 CLOSE #4
950 RUN"adprt"
960 FOR J= 1 TO 5:PRINT #5,  TAB(4);W$(J,1):NEXT
990 PRINT #5,  TAB(6);"TELEPHONE ":PRINT #5,  TAB(9);"HOME:    ";W$(10,1):PRINT #5,  TAB(9);"OFFICE:  ";W$(11,1)
995 IF A(8,1)<>=0 THEN PRINT #5, TAB(4);"* BIRTHDAY:  "W$(8,1)
1000 PRINT #5,  :PRINT #5,
1010 RUN"adprt"
1020 LOCATE 12,15:COLOR 14,0:PRINT "Do you want to use the Title of Courtesy?"
1030 LOCATE 14,30:COLOR 3,0:PRINT "<Y>es or <N>o?":LOCATE 14,31:COLOR 14,0:PRINT "Y":LOCATE 14,40:PRINT "N":COLOR 3,0:GOSUB 35030
1040 T$=INKEY$:IF T$="" THEN 1040 ELSE T$=CHR$(ASC(T$) AND &HDF):RETURN
1950 REM
2110 PRINT #5,
2120 PRINT #5,  SPACE$(TN);T1$
2130 B=VAL(LEFT$(DATE$,2))
2140 PRINT #5, :PRINT #5,  SPACE$(30);DQ$(B);" ";MID$(DATE$,4,2);", 19";RIGHT$(DATE$,2):PRINT #5,
2150 PRINT #5,
2160 MP =10
2170 RETURN
2400 COLOR 0,7:LOCATE 21,1:PRINT "TURN ON PRINTER AND HIT ANY KEY":COLOR 3,0:GOSUB 35010
2410 GOSUB 5000
2420 LOCATE 21,1:PRINT SPACE$(40):LOCATE 21,10:COLOR 16,7:PRINT "WORKING":COLOR 3,0
2430 LOCATE 23,1:COLOR 10,0:PRINT "Hit <Esc> to stop printing.":COLOR 3,0
2440 RETURN
2500 COLOR 10,0:LOCATE 21,1:PRINT "Hit any key to continue PRINTING":GOSUB 35010
2510 LOCATE 23,1:COLOR 10,0:PRINT "Hit KEY F6 - Return to Menu.":COLOR 3,0
2520 GOSUB 5000:GOSUB 2420:RETURN
3000 O5$=CHR$(218)+CHR$(196)+CHR$(191):O6$=CHR$(179)+" "+CHR$(179):O7$=CHR$(192)+CHR$(196)+CHR$(217)
3010 O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F2:PRINT-MAIL menu"+O2$+"F6:PRINT menu"+O2$+"F8:NAMES"+O2$+"F4:NOTES"
3020 DIM DQ$(12):FOR I= 1 TO 12:READ DQ$(I):NEXT
3030 DATA JANUARY, FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
3040 WIDTH "LPT1:",82
3050 OPEN "TEMPOR.TEM" FOR INPUT AS #1
3055 INPUT #1, FILE$,FILM$,FIL$:CLOSE #1
3056 OPEN FILM$ FOR INPUT AS #2
3060 INPUT #2,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:CLOSE #2
3065 DIM V$(16),W$(13,2),A(13,2)
3070 IF PT$="I" THEN OPEN "LPT1:" FOR OUTPUT AS #5:GOTO 3090
3080 OPEN "LPT2:" FOR OUTPUT AS #5
3090 OPEN FILE$ AS #4 LEN = 356
3100 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
3120 FILN$=FIL$+".NTE"
3130 RETURN
3840 RUN"adprt.bas"
3940 IF ERR = 27 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"PRINTER ERROR ":COLOR 7,1:LOCATE 1,1
3950 IF ERR = 27 THEN PRINT "CHECK THE PRINTER":FOR I= 1 TO 500:NEXT I:RUN"adprt"
3970 IF ERR =53 THEN CLS:LOCATE 10,15:PRINT "File containing KEYS used in NOTES does not exist.":LOCATE 12,22:PRINT "Return to EDIT program to create file." :LOCATE 18,30:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030:Y$=INPUT$(1):RESUME 140
3981 CLS:LOCATE 10,28:PRINT "ERROR ";ERR;" ENCOUNTERED":LOCATE 18,26:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030
3982 Y$=INKEY$:IF Y$="" THEN 3982
3985 RESUME 140
5000 Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 5000 ELSE RETURN
5200 A$="EDIT":Y1=2:GOTO 5250
5205 A$="PRINT":Y1=6:GOTO 5250
5210 A$="DELETE":Y1=3:GOTO 5250
5220 A$="SORT":Y1=4:GOTO 5250
5230 A$="SEARCH":Y1=5:GOTO 5250
5240 A$="MAIN":Y1=1
5250 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS":;COLOR 3,0:LOCATE 12,21:PRINT "PLEASE WAIT, LOADING ";A$;" ROUTINES"
5260 IF Y1=6 THEN RUN "ADPRT.BAS"
5270 A$="AD"+A$:RUN A$
6000 ON KEY(8) GOSUB 3840:KEY(8) ON:ON KEY(7) GOSUB 3840:KEY(7) ON
6010 ON KEY(1) GOSUB 5240:ON KEY(2) GOSUB 5200:KEY(1) ON:KEY(2) ON:ON KEY(3) GOSUB 5210:KEY(3) ON:ON KEY(4) GOSUB 5220:KEY(4) ON:ON KEY(5) GOSUB 5230:ON KEY(6) GOSUB 130:KEY(6) ON:KEY(5) ON
6020 RETURN
9201 OSUB 3490
35000 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
35010 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
35030 IF SND$="N" THEN RETURN ELSE SOUND 750,2:SOUND 30000,2:SOUND 750,2:RETURN

ADREAD.BAS

1000 RUN A$
5000 CLS:LOCATE 25,1:COLOR 0,7,1:PRINT C$;:COLOR 3,0:LOCATE 1,1:RETURN
35020 IF SND$="N" THEN RETURN ELSE BEEP:RETURN
35030 IF SND$="N" THEN RETURN ELSE SOUND 750,2:SOUND 30000,2:SOUND 750,2:RETURN
40000 JJ=0:GNAME=0:ON KEY(2) GOSUB 1000:KEY(2) ON
40100 IF A$="ADMAIL.BAS" THEN B$="MAILING" :C$="F KEY:  F2 = MAILING labels menu":DG=1 ELSE B$="ROLODEX":C$="F KEY: F2 ROLODEX labels menu":DG=0
40120 DEF SEG=0: POKE 1050, PEEK(1052):GOTO 40140
40130 IF JJ=0 THEN 1000 ELSE CHAIN A$,1960,ALL
40140  X1$="PRINT - ROLODEX ":X3$="FILE = ":X5$="FUNCTION = ":X4$=SPACE$(30):Q$=CHR$(27)
40150 MS=0:GOSUB 5000
40160 COLOR 3,0,1:LOCATE 1,1:PRINT "PRINT ";B$ ;:PRINT " LABELS ... ":LOCATE 3,28 :COLOR 12,0:PRINT "ENTER:  SURNAME & ";ARR$:COLOR 3,0:LOCATE 5,13:PRINT  "(full name or any part starting from left most character)"
40170 LOCATE 4,18:PRINT "(Be sure the file has been sorted by SURNAME)"
40180 LOCATE 6,39:PRINT "OR":LOCATE 6,23:COLOR 12,0:PRINT "[!] & ";ARR$;" TO EXAMINE complete file":COLOR 3,0
40190 LOCATE 7,39:PRINT "OR":LOCATE 8,35:PRINT ARR$;"  EXIT"
40200 COLOR 15,0:LOCATE 20,32: INPUT "SURNAME ... ",S$:MM=LEN(S$):IF MM=0 THEN 40130
40210 IF NN=0 THEN 40130:GOSUB 5000
40220 GOSUB 41080:GOSUB 41120
40230 GET #4,NN+1:K=VAL(V$(16)):K1=K:II=1:I1=0
40240 IF S$="!" THEN 40260 ELSE QK=ASC(LEFT$(S$,1)):IF QK>90 OR QK<65 THEN 40460 ELSE K=ZK(QK-64)
40250 IF K=0 THEN 40460
40260 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0:I1=I1+1:TEST=0:GET #4, K
40270 IF S$="!" THEN 40290
40280 GNAME=1:IF S$<>MID$(V$(2),5,MM) THEN 40410
40290 LOCATE 1,70:PRINT SPACE$(9):GOSUB 40800
40300 MS=1:IF FRE(1)<800 THEN CHAIN "ADRODX.bas",1230,ALL
40310 IF Y$="S" OR Y$="s" THEN 40130
40320 IF Y$="I" THEN K=VAL(V$(15)) ELSE 40340
40330 IF II=1  THEN II=NN:GOTO 40430 ELSE II=II-1:GOTO 40260
40340 IF (Y$="N" OR Y$="n" OR Y$="Q")  THEN K=VAL(V$(14)) ELSE 40360
40350 IF II=NN THEN II=1:GOTO 40430 ELSE II=II+1 :GOTO 40430
40360 IF Y$="G" THEN K=K1:II=1:GOTO 40260
40370 IF Y$="=" THEN GOSUB 40630:GOTO 40260
40380 IF Y$="-" THEN GOSUB 40520:GOTO 40300
40390 IF Y$="+" THEN GOSUB 40520:GOTO 40300
40400 IF Y$="O" THEN GET #4,K1:K=VAL(V$(15)):II=NN:GOTO 40260
40410 IF ZTEST=26 THEN K=VAL(V$(14)):GOTO 40440
40420 IF ASC(MID$(V$(2),5,1))<>QK THEN 40450 ELSE K=VAL(V$(14))
40430 IF S$="!" THEN 40260
40440 IF I1=NN THEN 40450 ELSE 40260
40450 IF MS=1 THEN 40480
40460 LOCATE 22,1:PRINT "Person is not in the address book. Try again.  Hit any key to continue."
40470 Y$=INKEY$:IF Y$="" THEN 40470 ELSE 40150
40480 CLS:LOCATE 12,25:PRINT "ANY MORE CHANGES?  <Y> or <N> ":COLOR 15,0:LOCATE 12,45:PRINT "Y":LOCATE 12,52:PRINT "N":COLOR 3,0:GOSUB 40120
40490 IF Y$="N" THEN ED$="":GOTO 40140
40500 IF Y$="Y" OR Y$="y" THEN 40150
40510 CLS
40520 IS=II:LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
40530 NII=ABS(NI):FOR NF = 1 TO NII
40540 DEF SEG=&H40:IF PEEK(&H17) AND 16 THEN 40610
40550 IF NI<0 OR Y$="-" THEN II=IS-NF:K=VAL(V$(15)):GET #4,K:GOTO 40560 ELSE K=VAL(V$(14)):GET #4,K:II=IS+NF
40560 IF II=<0 THEN II=NN+II
40570 IF II>NN THEN II=ABS(II-NN)
40580 GOSUB 40800:NEXT
40590 LOCATE 23,20:PRINT SPACE$(40)
40600 Y$="":LOCATE 1,70:PRINT SPACE$(9):GOTO 40830
40610 LOCATE 23,20:PRINT SPACE$(40)
40620 Y$="":LOCATE 1,70:PRINT SPACE$(9):GOTO 40830
40630 IF NUM=<0 OR NUM>NN THEN GOSUB 35020:LOCATE 23,20:PRINT "REENTER NUMBER BETWEEN 1 - ";NN;"  ";SPACE$(5):ELSE 40650
40640 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32:LOCATE 23,51:INPUT NUM:DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223
40650 IF NUM=<0 OR NUM>NN THEN 40630 ELSE LOCATE 23,20:PRINT SPACE$(50)
40660 IF ABS(NUM-II)<10 AND NUM-II<0 THEN NZ=II-1:K=VAL(V$(15)):GOTO 40760
40670 IF NUM-II<10 AND NUM-II >=0 THEN NZ=II+1:K=VAL(V$(14)):LOCATE 23,20:PRINT SPACE$(50):GOTO 40720
40680 K=ZK(27):NZ=INT((NN/10)+0.5):IF NN<10*NZ THEN NZ=INT(NN/10)
40690 FOR IZ=1 TO 10:IF NUM=<IZ*NZ THEN K=ZK(IZ+26):NZ=(IZ-1)*NZ:IZ=10
40700 NEXT
40710 IF K=ZK(27) AND NZ=INT(NN/10) THEN K=ZK(36):NZ=10*NZ
40720 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
40730 FOR II=NZ TO NUM-1 :GET #4,K:K=VAL(V$(14)):NEXT
40740 LOCATE 1,70:PRINT SPACE$(9)
40750 RETURN
40760 LOCATE 23,20:PRINT SPACE$(50)
40770 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
40780 FOR II=NZ TO NUM+1 STEP -1:GET #4,K:K=VAL(V$(15)):NEXT
40790 LOCATE 1,70:PRINT SPACE$(9):RETURN
40800 REM
40810 COLOR 3,0:LOCATE 1,15:PRINT II;SPACE$(3):GOSUB 41250
40820 IF Y$="+" OR Y$="-" THEN RETURN
40830 COLOR 3,0:DEF SEG=0: POKE 1050, PEEK(1052):GOSUB 35020
40840 Y$=INKEY$:IF Y$="" THEN 40840
40850 DEF SEG=&H40:POKE &H17, 0
40860 IF LEN(Y$)=2 THEN Y$=RIGHT$(Y$,1)
40870 IF Y$="Y" OR Y$="y" THEN I=II:GOTO 41020
40880 IF S$<>"!" THEN 41010 ELSE IF Y$="s" OR Y$="S" THEN RETURN
40890 IF Y$="=" THEN COLOR 14,0:LOCATE 23,20:PRINT "Jump to (1 - ";NN;" ) ... ";ARR$; ELSE 40910
40900 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32:INPUT NUM:DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223:RETURN
40910 IF Y$="G" THEN JK=I:I=0:RETURN
40920 IF Y$="O" THEN JK=I:I=NN-1:RETURN
40930 IF Y$="I" THEN JK=I:I=I-2:RETURN
40940 IF Y$="-" THEN COLOR 14,0:LOCATE 23,20:PRINT "GO back #? ";ARR$;:GOTO 40960
40950 IF Y$="+" THEN COLOR 14,0:LOCATE 23,20:PRINT "GO forward #? ";ARR$; ELSE 41000
40960 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32
40970 INPUT " ",NI:JK=I:I=NI:NI=ABS(NI):COLOR 3,0
40980 IF ABS(NI)>NN THEN LOCATE 23,20:GOSUB 35030:PRINT "OUTSIDE DATA RANGE.  1 TO";NN;:FOR K=1 TO 900:NEXT:LOCATE 23,10:PRINT SPACE$(68):I=JK:GOTO 40840
40990 DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223:LOCATE 23,10:PRINT SPACE$(65):LOCATE 23,21:COLOR 0,7:PRINT "Hit <Scroll Lock> to stop at a RECORD.":COLOR 3,0:RETURN
41000 IF (Y$="N" OR Y$="n" OR Y$="Q")  THEN JK=I:RETURN ELSE 40830
41010 IF Y$="N" OR Y$="n" THEN JK=I:RETURN ELSE 40830
41020 JJ=JJ+1:D%(JJ)=VAL(V$(16)):IF GNAME=1 THEN I=K:RETURN ELSE K=VAL(V$(14)):IF I=NN THEN II=1 :RETURN 40260 ELSE II=1+II:RETURN 40260
41030 FOR J= 1 TO 13:K=W(J):B$(J)=D$(K):NEXT:GOTO 41040
41035 FOR J = 1 TO 13:K=W(J):B$(J)=MID$(V$(K),5,VAL(V$(K))):NEXT
41040 GOSUB 5000:LOCATE 22,13
41070 RETURN
41080 GOSUB 5000
41090 COLOR 3,0,1:PRINT "RECORD #:  ":PRINT:PRINT "NAME:          ":FOR J= 3 TO 8:PRINT Q$(J):NEXT:PRINT Q$(13):FOR J= 9 TO 12:PRINT Q$(J):NEXT:RETURN
41100 LOCATE 1,15:PRINT SPACE$(50)
41110 FOR J= 2 TO 13:LOCATE 1+J,15:PRINT SPACE$(50):NEXT:RETURN
41120 REM
41130 COLOR 3,0:LOCATE 18,1:PRINT "Print Label?  <Y>es.":COLOR 14,0:LOCATE 18,16:PRINT "Y":COLOR 3,0
41140 IF S$="!" THEN LOCATE 19,15:PRINT "<PgDn> or <N>o - next record.":LOCATE 19,26:COLOR 14,0:PRINT "N" :LOCATE 19,16:PRINT "PgDn" ELSE LOCATE 19,15:PRINT "<N>o.":LOCATE 19,16:COLOR 14,0:PRINT "N"
41150 IF S$<> "!" THEN RETURN ELSE COLOR 3,0:LOCATE 20,15:PRINT "<PgUp> - previous record":LOCATE 21,15:PRINT "<+> Scan forward ":COLOR 14,0:LOCATE 20,16:PRINT "PgUp":LOCATE 21,16:PRINT "+"
41160 LOCATE 19,50:COLOR 3,0:PRINT "<Home> - First record.":LOCATE 19,51:COLOR 14,0:PRINT "Home" :COLOR 3,0:LOCATE 20,50:PRINT "<End> - Last record.":LOCATE 20,51:COLOR 14,0:PRINT "End"
41170 COLOR 3,0:LOCATE 21,50:PRINT "<-> Scan backward":LOCATE 21,51:COLOR 14,0:PRINT "-":COLOR 3,0
41180 COLOR 3,0:LOCATE 22,15:PRINT "<=> Jump ":LOCATE 22,16:COLOR 14,0:PRINT "=":COLOR 3,0
41190 LOCATE 22,50:PRINT "<";:COLOR 14,0:PRINT "S";:COLOR 3,0:PRINT "> Start PRINTING";:COLOR 14,0:PRINT "?":COLOR 3,0:RETURN
41200 COLOR 11,0:LOCATE 3,15:PRINT SPACE$(50):LOCATE 3,15:PRINT D$(13);D$(1);" ";D$(2)
41210 FOR J= 3 TO 11:K=W(J):IF J>8 THEN JK=J+2 ELSE JK=J+1
41220 LOCATE JK,15:PRINT D$(K);SPACE$(35-LEN(D$(K))):NEXT
41230 LOCATE 14,15:PRINT SPACE$(64):PRINT SPACE$(80):LOCATE 14,15:PRINT D$(9):RETURN
41240 LOCATE 14,15:PRINT SPACE$(64):PRINT SPACE$(80):LOCATE 14,15:PRINT MID$(V$(9),5,VAL(V$(9))):RETURN
41250 COLOR 11,0:LOCATE 3,15:PRINT SPACE$(50):LOCATE 3,15:PRINT MID$(V$(13),5,VAL(V$(13)));MID$(V$(1),5,VAL(V$(1)));" ";MID$(V$(2),5,VAL(V$(2)))
41260 FOR J= 3 TO 11:K=W(J):IF J>8 THEN JK=J+2 ELSE JK=J+1
41270 LOCATE JK,15:PRINT MID$(V$(K),5,VAL(V$(K)));SPACE$(30):NEXT
41280 LOCATE 14,15:PRINT SPACE$(64):PRINT SPACE$(80):LOCATE 14,15:PRINT MID$(V$(9),5,VAL(V$(9))):RETURN

ADRODX.BAS

100 CLEAR:ON ERROR GOTO 9000
126 GOSUB 3000:GOTO 200
130 CLS:GOSUB 140:LOCATE 12,20:PRINT  "PLEASE WAIT, RETURNING TO MAIN MENU":RUN"ADMAIN.BAS"
133 CLS:GOSUB 140:LOCATE 12,20:PRINT  "PLEASE WAIT, RETURNING TO PRINT MENU":RUN"ADPRT.BAS"
140 LOCATE 25,26:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS ";:COLOR 3,0:RETURN
155 CLS:COLOR 3,0:LOCATE  12,30:PRINT "QUIT?  <Y>es or <N>o?":COLOR 14,0:LOCATE 12,38:PRINT "Y":LOCATE 12,47:PRINT "N":COLOR 3,0
156 GOSUB 35020
157 Y$=INKEY$:IF Y$="" THEN 157 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
158 IF Y$="N" THEN 210
159 IF Y$="Y" THEN CLS:LOCATE 12,30:PRINT "GOODBYE":SYSTEM ELSE 156
160 REM
200 REM               PRINT
210 GOSUB 5010:Z$=""
220 X3$="FILE = ":X4$=SPACE$(15):X5$="FUNCTION = ":X1$="PRINT "
230 CLS:LOCATE 25,29:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 1,1
240 LOCATE 7,19:PRINT "ROLODEX* ";
280 COLOR 14,0:PRINT "LABELS ";:COLOR 3,0:PRINT "with variable dimensions"
330 LOCATE 12,28:COLOR 0,7:PRINT "Hit any key to continue":
361 COLOR 3,0:LOCATE 17,40:PRINT "KEY  F1 = Return to MAIN menu"
362 COLOR 14,0:LOCATE 18,40:PRINT "     F2";:COLOR 3,0:PRINT " = Return to PRINT-ROLODEX* menu"
363 LOCATE 19,40:PRINT "     F6 = Return to PRINT menu"
364 LOCATE 20,40:PRINT "     F8 = KEYS used in NOTES"
365 LOCATE 21,40:PRINT "     F7 = List of names in Address Book"
366 LOCATE 22,40:PRINT "    F10 = HELP"
367 LOCATE 23,40:PRINT "ALT F10 = QUIT"
369 LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date:  ";DATE$:LOCATE 3,62:PRINT "Time:  "
370 DEF SEG=0: POKE 1050, PEEK(1052)
371 Y9$=INKEY$:IF Y9$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 371 ELSE 375
375 IF LEN(Y9$)=2 THEN 460
380 COLOR 3,0:LOCATE 6,11:Y9$="3":PRINT Y9$:GOTO 840
460 IF ASC(RIGHT$(Y9$,1))=68 THEN 30000
470 IF ASC(RIGHT$(Y9$,1))=113 THEN 155 ELSE 240
600 IF YS=1 THEN YS=0:GOSUB 5000:GOSUB 5010
605 LOCATE 20,25:COLOR 0,7:PRINT "TURN ON PRINTER AND HIT ANY KEY":COLOR 3,0:GOSUB 35010
610 Y$=INKEY$: IF Y$="" THEN 610 ELSE LOCATE 20,25:PRINT SPACE$(40)
620 LOCATE 21,25:PRINT SPACE$(40):LOCATE 21,37:COLOR 16,7:PRINT "WORKING"
630 LOCATE 21,27:COLOR 14,0:PRINT "Hit <Esc> to stop printing":COLOR 3,0:RETURN
650 RODXFILE$=FIL$+".RDX":OPEN RODXFILE$ FOR INPUT AS #3:INPUT #3, WID,HT,NS:CLOSE #3:GOTO 665
655 WID=4:HT=2.25:NS=1
665 LOCATE 8,28:COLOR 14,0:PRINT "Width of labels in inches:  ";WID
670 LOCATE 10,28:COLOR 14,0:PRINT "Height of labels in inches:  ";HT
675 LOCATE 12,28:COLOR 14,0:PRINT "Number of Labels across the page:  ";NS
680 RETURN 865
710 COLOR 11,0:LOCATE 16,21:PRINT "Do you want to save the label dimensions?" :COLOR 3,0:LOCATE 18,35:PRINT "[Y] or <N>":COLOR 14,0:LOCATE 18,36:PRINT "Y":LOCATE 18,43:PRINT "N":COLOR 3,0:GOSUB 35030
715 Y$=INKEY$:IF Y$="" THEN 715 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
720 IF Y$="N" THEN RETURN
730 RODXFILE$=FIL$+".RDX":OPEN RODXFILE$ FOR OUTPUT AS #3:PRINT #3, WID,HT,NS:CLOSE #3:RETURN
800 DEF SEG=0: POKE 1050, PEEK(1052)
810 Y$=INKEY$:IF Y$="" THEN 810 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
820 IF Y$<>"Y" THEN Y$="N"
830 RETURN
840 GOSUB 5000:LOCATE 1,1:PRINT TAB(4);"PRINT - ROLODEX LABEL"
845 COLOR 14,0:LOCATE 22,40:PRINT "KEY  F2";:COLOR 3,0:PRINT " = Return to PRINT-ROLODEX* menu"
846 IF Z$="G" THEN 855 ELSE GOSUB 650
855 LOCATE 8,28:COLOR 14,0:PRINT "Width of labels in inches?  ";:COLOR 29,0:PRINT CHR$(178):LOCATE 8,56:COLOR 14,0:GOSUB 35030:INPUT "",WID
860 LOCATE 10,28:PRINT "Height of labels in inches?  ";:COLOR 29,0:PRINT CHR$(178):LOCATE 10,57:COLOR 14,0:GOSUB 35030:INPUT "",HT
861 IF Y9$="3" THEN LOCATE 12,28:PRINT "Number of Labels across the page?  ";:COLOR 29,0:PRINT CHR$(178):LOCATE 12,63:COLOR 14,0:GOSUB 35030:INPUT "",NS
865 COLOR 11,0:LOCATE 16,28:PRINT "Confirm Label Dimensions." :COLOR 3,0:LOCATE 18,35:PRINT "[Y] or <N>":COLOR 14,0:LOCATE 18,36:PRINT "Y":LOCATE 18,43:PRINT "N":COLOR 3,0:GOSUB 35030
866 Y$=INKEY$:IF Y$="" THEN 866 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
867 IF Y$="N" THEN CLS:Z$="G":GOTO 840 ELSE GOSUB 710
870 M5=INT((WID+0.1)*10+0.5):M3=M5-3:M2=M5-4:M6=M5-3:M1=INT(WID+0.5):M4=M5-1
880 HT=HT+1/16:HTL=INT(HT*6+0.5)
1000 GOSUB 5000:LOCATE 1,1:PRINT TAB(4);"PRINT - ROLODEX* LABEL"
1005 COLOR 14,0:LOCATE 22,40:PRINT "KEY  F2";:COLOR 3,0:PRINT " = Return to PRINT-ROLODEX* menu"
1010 LOCATE 12,20:COLOR 14,0:PRINT "Do you want to use the Courtesy Title?"
1020 LOCATE 14,33:COLOR 3,0:PRINT "<Y>es or [N]o?":LOCATE 14,34:COLOR 14,0:PRINT "Y":LOCATE 14,43:PRINT "N":COLOR 3,0:GOSUB 35030:GOSUB 800:T$=Y$
1040 IF HT<0.8750001 THEN TT$="N":GOTO 1070 ELSE LOCATE 12,20:COLOR 14,0:PRINT "Do you want to include the formal title?";SPACE$(10)
1050 GOSUB 35030:GOSUB 800:TT$=Y$
1070 LOCATE 12,20:COLOR 14,0:PRINT "Do you want to include the company name?";SPACE$(10)
1080 GOSUB 35030:GOSUB 800:TC$=Y$
1090 LOCATE 12,20:COLOR 14,0:PRINT SPACE$(4);"Do you want to include any NOTES?";SPACE$(10)
1100 GOSUB 35030:GOSUB 800:TN$=Y$
1110 LOCATE 12,20:COLOR 14,0:PRINT SPACE$(4);"Do you want to include birthday?";SPACE$(10)
1120 GOSUB 35030:GOSUB 800:TD$=Y$
1130 IF TD$="N" AND TN$="N" THEN JN=7:GOTO 1171
1135 IF TD$="Y" AND TN$="Y" THEN JN=10:GOTO 1171
1140 IF TN$="Y" THEN JN=9:GOTO 1171 ELSE JN=8
1171 IF PT$="I" THEN 1172 ELSE 1540
1172 GOSUB 5000:LOCATE 1,1:PRINT TAB(4);"PRINT - ROLODEX* LABEL"
1174 COLOR 14,0:LOCATE 22,40:PRINT "KEY  F2";:COLOR 3,0:PRINT " = Return to PRINT-ROLODEX* menu"
1178 LOCATE 12,15:COLOR 14,0:PRINT "Do you want to changed to a condensed typestyle?"
1180 LOCATE 14,33:COLOR 3,0:PRINT "<Y>es or [N]o?":LOCATE 14,34:COLOR 14,0:PRINT "Y":LOCATE 14,43:PRINT "N":COLOR 3,0:GOSUB 35010:GOSUB 800:C$=Y$
1182 IF C$="Y" THEN    PRINT #5, CHR$(15):    PRINT #5, CHR$(27);CHR$(48):WIDTH #5,254:HTL=INT(HT*8+0.45)
1190 GOTO 1540
1200 GET #4,D%(LL)
1210 FOR J= 1 TO 7 :A(J,L)=VAL(V$(J)):NEXT
1220 A(8,L)=VAL(V$(13)):A(9,L)=VAL(V$(12)):A2=A(2,L)
1230 W$(6,L)=MID$(V$(5),5,A(5,L))+", "+MID$(V$(6),5,A(6,L))+"  "+MID$(V$(7),5,A(7,L))
1232 IF Y9$="3" THEN 1234 ELSE 1240
1234 IF LEN(W$(6,L))<=M4 THEN 1240 ELSE WL=LEN(W$(6,L))-M4
1236 W$(6,L)=MID$(V$(5),5,A(5,L)-WL)+", "+MID$(V$(6),5,A(6,L))+" "+MID$(V$(7),5,A(7,L)):A(5,L)=A(5,L)-WL-1
1240 A2=A(2,L):IF T$="N" THEN A9=M3-A(2,L):GOTO 1250 ELSE A9=M3-A(8,L)-A(2,L)
1250 IF A9=>A(1,L) THEN 1290
1260 A1=INSTR(1,MID$(V$(1),5,A(1,L))," "):IF A1<=0 THEN A$=MID$(V$(1),5,1)+".":A(1,L)=2:GOTO 1300
1270 IF A1<A9 THEN A$=MID$(V$(1),5,A1-1):A(1,L)=A1-1:GOTO 1300
1280 IF (A1<A(1,L) AND A1<A9) THEN A$=MID$(V$(1),5,1)+". "+MID$(V$(1),6+A1,1)+".":A(1,L)=5:GOTO 1300:ELSE A$=MID$(V$(1),5,1)+".":A(1,L)=2:GOTO 1300
1290 A$=MID$(V$(1),5,A(1,L))
1300 A(5,L)=M2-A(5,L)-A(6,L)-A(7,L):IF T$="N" THEN W$(1,L)=A$+" "+MID$(V$(2),5,A(2,L)):GOTO 1320
1310 W$(1,L)=MID$(V$(13),5,A(8,L))+A$+" "+MID$(V$(2),5,A(2,L))
1320 IF TT$="N" AND TC$="N" THEN W$(2,L)=MID$(V$(4),5,M3):W$(4,L)="":W$(5,L)="":W$(3,L)=W$(6,L):GOTO 1370
1330 IF A(9,L) = 0 AND A(3,L)=0 THEN W$(2,L)=MID$(V$(4),5,M3):W$(4,L)="":W$(5,L)="":W$(3,L)=W$(6,L):GOTO 1370
1340 IF A(9,L) = 0 AND A(3,L)<>0 THEN 1345 ELSE 1350
1345 IF TC$="Y" THEN W$(2,L)=MID$(V$(3),5,M3):W$(3,L)=MID$(V$(4),5,M3):W$(4,L)=W$(6,L):W$(5,L)="":GOTO 1370
1350 IF A(9,L) <> 0 AND A(3,L)<>0 THEN 1355 ELSE 1360
1355 IF TT$="Y" AND TC$="Y" THEN W$(2,L)=MID$(V$(12),5,M3):W$(3,L)=MID$(V$(3),5,M3):W$(4,L)=MID$(V$(4),5,M3):W$(5,L)=W$(6,L):GOTO 1370
1356 IF TT$="Y" AND TC$="N" THEN W$(2,L)=MID$(V$(12),5,M3):W$(3,L)=MID$(V$(4),5,M3):W$(4,L)=W$(6,L):W$(5,L)="":GOTO 1370
1357 IF TT$="N" AND TC$="Y" THEN W$(2,L)=MID$(V$(3),5,M3):W$(3,L)=MID$(V$(4),5,M3):W$(4,L)=W$(6,L):W$(5,L)="":GOTO 1370
1360 IF A(9,L) <>0 AND A(3,L)=0 THEN 1365 ELSE 1370
1365 IF TT$="Y" THEN W$(2,L)=MID$(V$(12),5,M3):W$(3,L)=MID$(V$(4),5,M3):W$(4,L)=W$(6,L):W$(5,L)="":GOTO 1370
1370 A(1,L)=M5-LEN(W$(1,L)):A(2,L)=M5-LEN(W$(2,L)):A(3,L)=M5-LEN(W$(3,L)):A(4,L)=M5-LEN(W$(4,L)):A(5,L)=M5-LEN(W$(5,L))
1375 IF VAL(V$(10))=0 AND VAL(V$(11))=0 THEN W$(6,L)="":A(6,L)=M5:W$(7,L)="":A(7,L)=M5:GOTO 1400
1380 IF VAL(V$(10))=0 THEN W$(6,L)="Office:  "+MID$(V$(11),5,VAL(V$(11))) :A(6,L)=M5-LEN(W$(6,L)):W$(7,L)="":A(7,L)=M5:GOTO 1400
1390 IF VAL(V$(11))=0 THEN W$(6,L)="Home:    "+MID$(V$(10),5,VAL(V$(10))) :A(6,L)=M5-LEN(W$(6,L)):W$(7,L)="":A(7,L)=M5:GOTO 1400
1396 W$(6,L)="Office:  "+MID$(V$(11),5,VAL(V$(11))):W$(7,L)="Home:    "+MID$(V$(10),5,VAL(V$(10))) :A(6,L)=M5-LEN(W$(6,L)):A(7,L)=M5-LEN(W$(7,L)):GOTO 1400
1400 IF TD$="N" AND TN$="N" THEN :RETURN
1405 IF TD$="Y" AND VAL(V$(8))>0 THEN W$(8,L)="DATE:  "+MID$(V$(8),5,9):A(8,L)=M5-LEN(W$(8,L)):KN=9  ELSE KN=8:W$(9,L)="":A(9,L)=M5
1410 IF TN$="Y" AND VAL(V$(9))>0 THEN MX=M5-10:W$(KN,L)="NOTE:  "+MID$(V$(9),5,MX):A(KN,L)=M5-LEN(W$(KN,L)) ELSE W$(9,L)="":A(9,L)=M5:GOTO 1415
1412 KN=KN+1:MX=MX+5:W$(KN,L)=" "+MID$(V$(9),MX,M2):A(KN,L)=M5-LEN(W$(KN,L))
1415 IF VAL(V$(8))=0 AND VAL(V$(9))=0 THEN A(8,L)=M5:A(9,L)=M5:W$(8,L)="":W$(9,L)="" :RETURN
1420 RETURN
1540 REM
1545 GOSUB 5000
1550 LOCATE 1,1:PRINT TAB(4);"PRINT - ROLODEX* LABEL":PRINT:PRINT "CHOOSE ONE OF THE FOLLOWING:  "
1560 PRINT:COLOR 14,0
1570 PRINT "   ";CHR$(186);"     ";O5$:PRINT "   ";CHR$(186);"     ";O6$:PRINT "   ";CHR$(25);"     ";O7$:COLOR 3,0
1580 PRINT :PRINT TAB(4);"S)NAME":PRINT TAB(4);"N)OTE Code":PRINT TAB(4);"Z)IPCODE":COLOR 14,0
1590 LOCATE 9,4:PRINT "S":LOCATE 10,4:PRINT "N":LOCATE 11,4:PRINT "Z"
1600 COLOR 31,0:LOCATE 6,11:PRINT "?":COLOR 3,0
1602 COLOR 14,0:LOCATE 22,40:PRINT "KEY  F2";:COLOR 3,0:PRINT " = Return to PRINT-ROLODEX* menu"
1605 DEF SEG=0: POKE 1050, PEEK(1052)
1610 Y$=INKEY$: IF Y$="" THEN 1610 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
1615 IF Y$="S" THEN YS=1:GOTO 40000
1620 IF Y$="N" THEN 1800
1630 IF Y$="Z" THEN 1660 ELSE GOSUB 35020:GOTO 1605
1660 GOSUB 5000
1670 PRINT "PRINT ... ZIPCODE":LOCATE 5,32:PRINT "ENTER:  ZIPCODE & ";ARR$:LOCATE 6,8:PRINT "(Any number of digits and always start from the left most digit)"
1680 LOCATE 7,39:PRINT "OR":LOCATE 8,32:PRINT "'!' to print all"
1690 LOCATE 9,39:PRINT "OR":LOCATE 10,28:PRINT ARR$;"  return to PRINT menu":LOCATE 15,25:COLOR 14,0:INPUT "ZIPCode ... ",Z$:KK=7:X2$=" ZIPCODE "
1700 GOTO 1840
1800 GOSUB 5000
1810 PRINT "PRINT ... NOTE (Code)":LOCATE 5,30:PRINT "ENTER:  NOTE (Code) & ";ARR$:LOCATE 6,4:PRINT "(Any number of characters and always start from the left most character)"
1820 LOCATE 7,39:PRINT "OR":LOCATE 8,32:PRINT "'!' to print all"
1830 LOCATE 9,39:PRINT "OR":LOCATE 10,28:PRINT ARR$;"  return to PRINT menu":LOCATE 15,25:COLOR 14,0:INPUT "NOTE (Code) ... ",Z$:KK=9:X2$=" NOTES"
1840 MM=LEN(Z$):IF MM=0 THEN 230
1841 LOCATE 22,37:COLOR 16,7:PRINT "WORKING":COLOR 3,0
1845 X3$="FILE = ":X4$=SPACE$(15):X5$="FUNCTION = ":X1$="PRINT "
1850 JJ=0:GET #4,NN+1:I=VAL(V$(16)):IK=0
1855 IF IK=NN THEN 1920 ELSE IK=IK+1
1860 GET #4,I
1870 IF Z$="!" THEN 1890
1880 IF Z$<>MID$(V$(KK),5,MM) THEN  1910
1890 JJ=JJ+1
1900 D%(JJ)=I
1910 I=VAL(V$(14)):GOTO 1855
1920 IF JJ=0 THEN 230
1940 REM
1960 GOSUB 600
1980 IF C$="Y" THEN 1982 ELSE 1983
1982 CMP=1.675:M1=INT(M1*CMP+0.5):M2=INT(M2*CMP+0.5):M3=INT(M3*CMP+0.5):M5=INT(M5*CMP+0.5):M4=M5-1:M6=M5
1983 I=1
1985 FOR L=1 TO NS:LL=I+L-1
1990 GOSUB 1200
2000 IF I=JJ THEN L=L+1:GOTO 2105
2023 IF A(1,L)<=0 THEN A(1,L)=1
2025 IF LL>=JJ THEN L=L+1:GOTO 2105
2030 NEXT
2105 IF I<=NN THEN 2115 ELSE IF N1 =0 THEN 2115 ELSE 2170
2115 REM
2120 FOR K=1 TO JN:FOR K1=1 TO L-2
2122     PRINT #5, W$(K,K1);SPACE$(A(K,K1));:W$(K,K1)="":NEXT
2123     PRINT #5, W$(K,K1):W$(K,K1)="":NEXT
2125 FOR K=1 TO HTL-JN: PRINT #5, :NEXT
2140 IF I+NS-1=>JJ OR I=0 THEN 2170 ELSE I=I+NS
2142 Y$=INKEY$:IF Y$=CHR$(27) THEN GOSUB 3500
2145 IF FRE(1)>1100 THEN 1985
2150 CHAIN "ADRODX.BAS",2155,ALL
2155 GOSUB 5010
2165 GOTO 1985
2170   PRINT #5, :    PRINT #5, CHR$(18):    PRINT #5, CHR$(27);CHR$(50):GOTO 100
2270     PRINT #5, :    PRINT #5, CHR$(18):GOTO 100
3000 O5$=CHR$(218)+CHR$(196)+CHR$(191):O6$=CHR$(179)+" "+CHR$(179):O7$=CHR$(192)+CHR$(196)+CHR$(217)
3010 O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F2:PRINT-ROLODEX* menu"+O2$+"F6:PRINT menu"+O2$+"F8:NAMES"+O2$+"F4:NOTES"
3020 DIM DQ$(12):FOR I= 1 TO 12:READ DQ$(I):NEXT
3025 DIM D$(13),Q$(13),B$(13),AZ$(3),AZ(3),D(16),LS%(20),W(20),ZK(50)
3030 DATA JANUARY, FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
3040 WIDTH "LPT1:",82
3050 OPEN "TEMPOR.TEM" FOR INPUT AS #1
3055 INPUT #1, FILE$,FILM$,FIL$:CLOSE #1
3056 OPEN FILM$ FOR INPUT AS #2
3060 INPUT #2,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:FOR I= 1 TO 36:INPUT #2, ZK(I):NEXT:CLOSE #2
3065 DIM V$(16),D%(NN),W$(10,8),A(10,8),B(10),W1$(10)
3070 IF PT$="I" THEN OPEN "LPT1:" FOR OUTPUT AS #5:GOTO 3090
3080 OPEN "LPT2:" FOR OUTPUT AS #5
3090 OPEN FILE$ AS #4 LEN = 356
3100 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
3120 FILN$=FIL$+".NTE"
3200 DEF SEG = &H40:POKE &H17, PEEK(&H17) AND 223
3210 ARR$=CHR$(17)+CHR$(196)+CHR$(217)
3250 FOR I=1 TO 13:READ Q$(I):NEXT
3270 FOR I=1 TO 13:READ W(I):NEXT
3280 DATA "NAME - SURNAME: ","NAME - FIRST:   ","TITLE:          ","COMPANY:        ","STREET:         ","CITY:           ","STATE:          ","ZIPCODE:        ","     HOME:      ","   OFFICE:      ","BIRTHDAY:       ","NOTE:           ","TELEPHONE:"
3300 DATA 2,1,12,3,4,5,6,7,10,11,8,9,13
3310 RETURN
3500 LOCATE 21,25:COLOR 0,7:PRINT "Hit any key to continue PRINTING"
3510 LOCATE 23,26:COLOR 10,0:PRINT "Hit KEY F2 - Return to Menu.":COLOR 3,0:GOSUB 35010
3520 Y$=INKEY$: IF Y$="" THEN 3520 ELSE GOSUB 620
3530 RETURN
4000 REM
4010 OPEN FILN$ FOR INPUT AS #2
4030 FOR I= 1 TO 20:INPUT #2, NKEY$(I),NOTE$(I):IF NKEY$(I)=CHR$(15) THEN 4035 ELSE NEXT
4035 NP=I-1:CLOSE #2
4040 GOSUB 5000
4050 LOCATE 1,1:PRINT "NOTES:  KEYS":LOCATE 1,30:COLOR 14,0:PRINT "KEYS       ";:COLOR 3,0:PRINT " DESCRIPTION":FOR I=1 TO NP:COLOR 14,0:LOCATE 4+I,30:PRINT NKEY$(I);:COLOR 3,0:LOCATE ,40:PRINT " = ";NOTE$(I):NEXT
4060 LOCATE 20,28:COLOR 14,0:PRINT "HIT ANY KEY TO CONTINUE":COLOR 3,0
4065 Y$=INKEY$:IF Y$="" THEN 4065 ELSE 160
5000 CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;:COLOR 3,0:LOCATE 1,1:RETURN
5010 ON KEY(1) GOSUB 130:ON KEY(6) GOSUB 133:KEY(6) ON:KEY(1) ON:ON KEY(8) GOSUB 4000:KEY(8) ON:ON KEY(7) GOSUB 20000:KEY(7) ON:ON KEY(2) GOSUB 210:KEY(2) ON:RETURN
9000 IF ERL = 650 THEN EE=ERL:RESUME 655
9010 IF ERR = 27 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"PRINTER ERROR ";:COLOR 7,1:LOCATE 1,1
9030 IF ERR = 27 THEN PRINT "CHECK THE PRINTER":FOR I= 1 TO 500:NEXT I:RESUME 230
9040 IF ERR = 53 THEN CLS:LOCATE 10,15:PRINT "File containing KEYS used in NOTES does not exist.":LOCATE 12,22:PRINT "Return to EDIT program to create file." :LOCATE 18,25:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030:Y$=INPUT$(1):RESUME 160
9050 CLS:LOCATE 12,28:PRINT "ERROR ";ERR;" ENCOUNTERED":LOCATE 18,27:PRINT "HIT ANY KEY TO CONTINUE"
9060 Y$=INKEY$:IF Y$="" THEN 9060 ELSE RESUME 160
20000 N$=STR$(NN):A$="ADRODX":CHAIN "ADNAME",20000,ALL
20210 Y$=INKEY$:IF Y$="" THEN 20210 ELSE GOSUB 5000:RETURN
30000 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 1,1
30010 OPEN "ADMAIL.HLP" AS #2 LEN=78
30020 FIELD #2, 78 AS A$
30030 I=1:M=1
30040 GET #2,I
30090 IF LEFT$(A$,1) <> CHR$(15) THEN PRINT A$ :I=I+1:GOTO 30040 ELSE 30130
30130 LOCATE 24,27:COLOR 14,0:PRINT "HIT ANY KEY TO CONTINUE";:COLOR 3,0:GOSUB 35030
30140 Y$=INKEY$:IF Y$="" THEN 30140
30150 CLOSE #2:GOTO 200
35000 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
35010 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
35020 IF SND$="N" THEN RETURN ELSE BEEP:RETURN
35030 IF SND$="N" THEN RETURN ELSE SOUND 750,2:SOUND 30000,2:SOUND 750,2:RETURN
40000 A$="ADRODX.BAS":CHAIN "ADREAD.BAS",40000!,ALL

ADSEARCH.BAS

5 ARR$=CHR$(17)+CHR$(196)+CHR$(217):C1$=CHR$(34)
20 DIM DQ$(12):FOR I= 1 TO 12:READ DQ$(I):NEXT
30 DATA JANUARY, FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
33 ON ERROR GOTO 35:GOTO 40
35 IF ERR = 53 THEN 36 ELSE 38
36 CLS:LOCATE 10,15:PRINT "File containing KEYS used in NOTES does not exist.":LOCATE 12,22:PRINT "Return to EDIT program to create file.":COLOR 0,7:LOCATE 18,28:PRINT "Hit any key to continue":COLOR 3,0:GOSUB 35030
37 Y$=INKEY$:IF Y$="" THEN 37 ELSE RESUME 160
38 CLS:LOCATE 10,30:PRINT "ERROR ENCOUNTERED":FOR I= 1 TO 300:NEXT:GOSUB 35030:RESUME 160
40 REM
50 REM         TEMPORARY FILE
55 OPEN "TEMPOR.TEM" FOR INPUT AS #1
56 INPUT #1, FILE$,FILM$,FIL$:CLOSE #1:DIM ZK(40):ZTEST=0
60 OPEN FILM$ FOR INPUT AS #3
70 INPUT #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$
72 FOR I=1 TO 36:INPUT #3, ZK(I):NEXT:CLOSE #3:FOR I= 1 TO 26:ZTEST=ZTEST+ZK(I):NEXT
97 DIM D%(NN),V$(16),D$(16)
105 OPEN FILE$ AS #4 LEN = 356
110 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
115 GET #4, NN+1:KSET=VAL(V$(16))
120 GOTO 160
130 A$="EDIT":Y1=1:GOTO 140
131 A$="DELETE":Y1=2:GOTO 140
132 A$="SORT":Y1=3:GOTO 140
133 A$="PRINT":Y1=4:GOTO 140
135 A$="MAIN":Y1=5
140 CLS:LOCATE 25,25:COLOR 1,3,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 12,21:PRINT "PLEASE WAIT, LOADING ";A$;" ROUTINES":GOSUB 5200
145 A$="AD"+A$:RUN A$
155 CLS:COLOR 3,0,1:LOCATE  12,30:PRINT "QUIT?  <Y>es or <N>o?":COLOR 14,0:LOCATE 12,38:PRINT "Y":LOCATE 12,47:PRINT "N":COLOR 3,0:GOSUB 35010
156 GOSUB 5151
157 IF Y$="N" THEN 160
159 CLS:LOCATE 12,30:PRINT "GOODBYE":SYSTEM
160 ON KEY(1) GOSUB 135:ON KEY(2) GOSUB 130:KEY(1) ON:KEY(2) ON:ON KEY(3) GOSUB 131:KEY(3) ON:ON KEY(4) GOSUB 132:KEY(4) ON:ON KEY(5) GOSUB 160:ON KEY(6) GOSUB 133:KEY(6) ON:KEY(5) ON
161 ON KEY(8) GOSUB 4000:KEY(8) ON:ON KEY(7) GOSUB 20000:KEY(7) ON:ON KEY(9) GOSUB 5000:KEY(9) ON
163 REM
165 REM                           SEARCH
170 REM
180 REM
190 X1$="SEARCH":X3$="FILE = ":X5$="FUNCTION = ":X4$=SPACE$(30)
200 FOR I= 1 TO NN:D%(I)=0:NEXT I
201 O3$=CHR$(218)+CHR$(196)+CHR$(191):O4$=CHR$(179)+" "+CHR$(179):O5$=CHR$(192)+CHR$(196)+CHR$(217)
215 O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F5:SEARCH menu"+O2$+"F7:NAMES"+O2$+"F8:NOTES"
220 CLS:LOCATE 25,10:COLOR 1,3,1:PRINT X3$;FILE$;X4$;X5$;X1$;:COLOR 3,0
230 LOCATE 1,1:PRINT TAB(8);"SEARCH MENU":PRINT:PRINT "CHOOSE ONE OF THE FOLLOWING:  "
240 PRINT:COLOR 14,0
250 PRINT "   ";CHR$(186);"     ";O3$:PRINT "   ";CHR$(186);"     ";O4$:PRINT "   ";CHR$(25);"     ";O5$:COLOR 3,0
260 PRINT :PRINT TAB(4);"B)IRTHDAY ":PRINT TAB(4);"F)IRST name":PRINT TAB(4);"S)NAME - surname"
270 PRINT TAB(4);"C)OMPANY ":PRINT TAB(4);"H)OME telephone number":PRINT TAB(4);"O)FFICE telephone number"
280 PRINT TAB(4);"N)OTES":PRINT TAB(4);"Z)IPCODE"
290 COLOR 14,0:LOCATE 9,4:PRINT "B":LOCATE 10,4:PRINT "F":LOCATE 11,4:PRINT "S":LOCATE 12,4:PRINT "C"
300 LOCATE 13,4:PRINT "H":LOCATE 14,4:PRINT "O":LOCATE 15,4:PRINT "N":LOCATE 16,4:PRINT "Z"
320 COLOR 31,0:LOCATE 6,11:PRINT "?"
330 COLOR 3,0:LOCATE 17,40:PRINT "KEY  F1 = Return to MAIN menu"
331 LOCATE 18,40:COLOR 14,0:PRINT "     F5";:COLOR 3,0:PRINT " = Return to SEARCH menu"
332 LOCATE 19,40:PRINT "     F7 = List of names in Address Book"
333 LOCATE 20,40:PRINT "     F8 = KEYS used in NOTES"
335 LOCATE 21,40:PRINT "    F10 = HELP"
336 LOCATE 22,40:PRINT "Alt F10 = QUIT"
337 DEF SEG=0: POKE 1050, PEEK(1052):LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date:  ";DATE$:LOCATE 3,62:PRINT "Time:  "
340 Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 340 ELSE 350
350 IF LEN(Y$)=2 THEN 435 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
360 IF Y$="F" THEN 590
370 IF Y$="S" THEN 640
380 IF Y$="C" THEN 690
390 IF Y$="H" THEN 740
400 IF Y$="O" THEN 790
410 IF Y$="N" THEN Y1$="N":GOTO 840
420 IF Y$="B" THEN 890
430 IF Y$="Z" THEN 932 ELSE GOSUB 35040:GOTO 337
435 IF ASC(RIGHT$(Y$,1))=68 THEN 30000
440 IF ASC(RIGHT$(Y$,1))=113 THEN 155 ELSE 230
590 GOSUB 6000
600 PRINT "SEARCH ... NAME ":PRINT :COLOR 12,0:LOCATE 5,28 :PRINT "ENTER:  FIRST name & ";ARR$:GOSUB 6010
610 INPUT "FIRST NAME ... ",S$
620 L=1:S1=6:GOSUB 940
630 GOTO 200
640 GOSUB 6000
650 PRINT "SEARCH ... SURNAME ":LOCATE 5,28 :COLOR 12,0:PRINT "ENTER:  SURNAME & ";ARR$:GOSUB 6010
660 INPUT "SURNAME ... ",S$
670 L=2:S1=1:GOSUB 940
680 GOTO 200
690 GOSUB 6000
700 PRINT "SEARCH ... COMPANY":LOCATE 5,28 :COLOR 12,0:PRINT "ENTER:  COMPANY NAME & ";ARR$:GOSUB 6010
710 INPUT "COMPANY ... ",S$
720 L=3:S1=2:GOSUB 940
730 GOTO 200
740 GOSUB 6000
750 PRINT "SEARCH ... HOME TELEPHONE NUMBER":GOSUB 6020
760 INPUT "HOME TELEPHONE NUMBER ... ",S$
770 L=10:S1=3:GOSUB 940
780 GOTO 200
790 GOSUB 6000
800 PRINT "SEARCH ... OFFICE TELEPHONE NUMBER":GOSUB 6020
810 INPUT "OFFICE TELEPHONE NUMBER ... ",S$
820 L=11:S1=4:GOSUB 940
830 GOTO 200
840 GOSUB 6000
850 PRINT "SEARCH ... NOTE ":LOCATE 5,33:COLOR 12,0:PRINT "ENTER:  NOTE 2 & ";ARR$:LOCATE 6,8:COLOR 3,0:PRINT "(Any number of characters and always start from the left most character)"
860 GOSUB 6015:INPUT "NOTE ... ",S$
870 L=9:S1=5:GOSUB 940
880 GOTO 200
890 GOSUB 6000
900 PRINT "SEARCH ... BIRTHDAYS":LOCATE 5,33:COLOR 12,0:PRINT "ENTER:  MONTH & ";ARR$:COLOR 3,0:LOCATE 6,17:PRINT "(EX: 01-Jan., 02-Feb., ... 11-Nov., and 12 Dec.)"
910 GOSUB 6015:INPUT "BIRTHDAY (MONTH) ... ",S$
920 L=8:S1=7:GOSUB 940
930 GOTO 200
932 GOSUB 6000
933 PRINT "SEARCH ... ZIPCODE":LOCATE 5,33:COLOR 12,0:PRINT "ENTER:  ZIPCODE ";ARR$
935 GOSUB 6015:INPUT "ZIPCODE ... ",S$
937 L=7:S1=8:GOSUB 940
939 GOTO 200
940 Y$=" "
950 MG=0:MM=LEN(S$):MS=0:IF MM=0 THEN RETURN
960 GOSUB 6000
965 GOSUB 6005
966 I=0:JJ=0:IF L=2 THEN QK=ASC(LEFT$(S$,1)) ELSE K=KSET:GOTO 970
968 IF QK>90 THEN 1350 ELSE K=ZK(QK-64)
969 IF ZTEST=26 THEN K=KSET
970 IF K=0 THEN 1350 ELSE GET #4,K:I=I+1
972 IF L<>2 THEN 980
973 IF (ZTEST<>26 AND QK<>ASC(MID$(V$(2),5,1))) THEN 1340
974 IF QK<>ASC(MID$(V$(2),5,1)) THEN 1330
980 ON S1 GOTO 990,990,1050,1050,990,990,990,1050
990 D$(L)=MID$(V$(L),5,VAL(V$(L))):IF S$<>LEFT$(D$(L),MM) THEN 1330 ELSE 1160
1050 D$(L)=MID$(V$(L),5,VAL(V$(L))):IF S$<>RIGHT$(D$(L),MM) AND S$<> LEFT$(D$(L),MM) THEN 1330 ELSE 1160
1110 D$(8)=MID$(V$(8),5,VAL(V$(8))):IF S$<>LEFT$(D$(8),2) THEN 1330
1120 MO=VAL(LEFT$(D$(8),2)):A$=MID$(V$(1),5,VAL(V$(1)))+" "+MID$(V$(2),5,VAL(V$(2))):NO=LEN(A$):NO=35-NO
1125 IF VAL(MID$(D$(8),7,2))<>0 THEN 1130 ELSE PRINT A$;SPACE$(NO);DQ$(MO);" ";MID$(D$(8),4,2):GOTO 1140
1130 PRINT A$;SPACE$(NO);DQ$(MO);" ";MID$(D$(8),4,2);", 19";MID$(D$(8),7,2)
1140 D%(I)=999:MG=1:GOTO 1330
1160 IF Y$="D" OR Y$="d" THEN 1260
1165 IF MS=0 THEN GOSUB 6000:GOSUB 6005
1170 COLOR 0,7:PRINT "ADDRESS #:  ";I:COLOR 3,0
1180 PRINT MID$(V$(13),5,VAL(V$(13)));MID$(V$(1),5,VAL(V$(1)));" ";MID$(V$(2),5,VAL(V$(2)))
1190 IF VAL(V$(12)) =0 THEN 1200 ELSE PRINT MID$(V$(12),5,VAL(V$(12)))
1200 IF VAL(V$(3)) =0 THEN 1210 ELSE PRINT MID$(V$(3),5,VAL(V$(3)))
1210 PRINT MID$(V$(4),5,VAL(V$(4))):PRINT MID$(V$(5),5,VAL(V$(5)));", ";MID$(V$(6),5,VAL(V$(6)));"  ";MID$(V$(7),5,VAL(V$(7)))
1220 PRINT "TELEPHONE - HOME:  ";MID$(V$(10),5,VAL(V$(10)))
1230 PRINT TAB(11);"OFFICE:  ";MID$(V$(11),5,VAL(V$(11)))
1240 IF LEN(V$(8))=0 THEN 1250 ELSE PRINT "BIRTHDAY: ";MID$(V$(8),5,VAL(V$(8)))
1250 IF VAL(V$(9))=0 THEN 1260 ELSE PRINT "NOTE:  ";MID$(V$(9),5,VAL(V$(9)))
1260 JJ=JJ+1:PRINT:D%(JJ)=K:IF Y$="D" OR Y$="d" THEN 1330
1270 MG=1:MS=MS+1:IF MS<2 THEN 1330
1280 GOSUB 6030
1300 IF Y$=CHR$(27) THEN RETURN
1320 MS=0
1330 IF I>=NN THEN 1335 ELSE K=VAL(V$(14)):GOTO 970
1335 LOCATE 1,70:PRINT SPACE$(9)
1340 IF MG<>0 THEN 1360
1350 LOCATE 1,70:PRINT SPACE$(9):PRINT:PRINT:PRINT "NOT in the address book. Try again.  Hit any key to continue.":PRINT:Y$=INPUT$(1):RETURN
1360 LOCATE 19,53:COLOR 0,7:PRINT "SEARCH COMPLETED.":COLOR 3,0:LOCATE 1,70:PRINT SPACE$(9)
1370 IF Y$="D" OR Y$="d" THEN 1430
1380 LOCATE 20,44:PRINT "DO you want a HARDCOPY printout of": LOCATE 21,46:PRINT "your SEARCH?  <Y>es or <N>o.":COLOR 14,0:LOCATE 21,61:PRINT "Y":LOCATE 21,70:PRINT "N":LOCATE 21,73:PRINT "?":COLOR 3,0:GOSUB 35000
1390 GOSUB 5151
1400 IF Y$="N" THEN RETURN ELSE GOSUB 6000
1430 PRINT "HARDCOPY ... ":LOCATE 8,20
1440 IF LEN(PT$)=0 THEN 1530
1445 IF PT$<>"" THEN 1530
1450 GOSUB 6000
1460 PRINT "PLEASE SELECT PRINTER:  " :PRINT
1470 PRINT:COLOR 14,0
1480 PRINT "   ";CHR$(186);"     ";O3$:PRINT "   ";CHR$(186);"     ";O4$:PRINT "   ";CHR$(25);"     ";O5$:COLOR 3,0
1490 PRINT :LOCATE  8,4:PRINT "I)BM Parallel Printer":LOCATE 9,4:PRINT "N)Serial Printer":COLOR 14,0:LOCATE 8,4:PRINT "I":LOCATE 9,4:PRINT "N"
1500 COLOR 31,0:LOCATE 5,11:PRINT "?":COLOR 3,0
1505 PT$=INKEY$:IF PT$="" THEN 1505 ELSE PT$=CHR$(ASC(PT$) AND &HDF)
1510 IF PT$="N" THEN 1530
1520 IF PT$="I" THEN 1530 ELSE 1490
1530 CLOSE #5:IF PT$="I" THEN OPEN "LPT1:" FOR OUTPUT AS #5:GOTO 1535
1531 CLOSE #5:OPEN "LPT2:" FOR OUTPUT AS #5
1535 GOSUB 6000
1540 LOCATE 1,1:PRINT TAB(2);"SEARCH - HARDCOPY - MENU":PRINT:PRINT "CHOOSE ONE OF THE FOLLOWING:  "
1550 PRINT:COLOR 14,0
1560 PRINT "   ";CHR$(186);"     ";O3$:PRINT "   ";CHR$(186);"     ";O4$:PRINT "   ";CHR$(25);"     ";O5$:COLOR 3,0
1570 PRINT:PRINT TAB(4);"A)DDRESS & NAME only":PRINT TAB(4);"N)AME, ADDRESS, and TELEPHONE":PRINT TAB(4);"C)OMPLETE dossier"
1580 COLOR 14,0:LOCATE 9,4:PRINT "A":LOCATE 10,4:PRINT "N":LOCATE 11,4:PRINT "C"
1590 P$=INKEY$: IF P$="" THEN 1590
1592 IF P$=CHR$(27) THEN 200
1595 P$=CHR$(ASC(P$) AND &HDF)
1600 COLOR 31,0:LOCATE 6,11:PRINT "?"
1610 COLOR 3,0:LOCATE 6,11:PRINT P$
1620 IF P$="N" THEN 1670
1630 IF P$="C" THEN 1670
1640 IF P$="A" THEN 1670 ELSE 1540
1670 LOCATE 18,25:COLOR 0,7:PRINT "TURN ON PRINTER AND HIT ANY KEY":COLOR 3,0
1680 Y$=INKEY$: IF Y$="" THEN 1680 ELSE LOCATE 18,25:PRINT SPACE$(40):LOCATE 18,35:COLOR 16,7:PRINT "WORKING":COLOR 3,0
1690 REM
1820 PRINT #5,:PRINT #5, "        (C) COPYRIGHT ISS, INC. 1983":PRINT #5,
1830 PRINT #5, SPACE$(30);"THE ADDRESS BOOK"
1840 B=VAL(LEFT$(DATE$,2))
1850 PRINT #5,:PRINT #5, SPACE$(30);DQ$(B);" ";MID$(DATE$,4,2);", 19";RIGHT$(DATE$,2):PRINT #5,:PRINT #5,
1860 FOR I= 1 TO JJ
1870 GET #4,D%(I)
1880 PRINT #5,MID$(V$(13),5,VAL(V$(13)));MID$(V$(1),5,VAL(V$(1)));" ";MID$(V$(2),5,VAL(V$(2)))
1890 IF VAL(V$(12))=0 THEN 1900 ELSE PRINT #5, MID$(V$(12),5,VAL(V$(12)))
1900 IF VAL(V$(3))=0 THEN 1910 ELSE PRINT #5, MID$(V$(3),5,VAL(V$(3)))
1910 PRINT #5, MID$(V$(4),5,VAL(V$(4))):PRINT #5, MID$(V$(5),5,VAL(V$(5)));", ";MID$(V$(6),5,VAL(V$(6)));"  ";MID$(V$(7),5,VAL(V$(7))):PRINT #5,
1920 IF P$="a" OR P$="A" THEN 1990
1930 PRINT #5, "TELEPHONE:  "
1940 PRINT #5, TAB( 7);"HOME:    ";MID$(V$(10),5,VAL(V$(10)))
1950 PRINT #5, TAB( 7);"OFFICE:  ";MID$(V$(11),5,VAL(V$(11))):PRINT #5,
1960 IF P$="N" OR P$="n" THEN 1990
1970 PRINT #5, "BIRTHDAY: ";MID$(V$(8),5,VAL(V$(8))):PRINT #5, "NOTES:     ";MID$(V$(9),5,VAL(V$(9)))
1980 PRINT #5,
1990 NEXT I
2000 RETURN
2140 OPEN "TEMPOR.TEM" FOR OUTPUT AS #3
2150 WRITE #3, Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SN$,TN,F$:CLOSE #3
4000 FILN$ =FIL$+".NTE"
4010 OPEN FILN$ FOR INPUT AS #2
4030 FOR I= 1 TO 20:INPUT #2, NKEY$(I),NOTE$(I):IF NKEY$(I)=CHR$(15) THEN 4035 ELSE NEXT
4035 NP=I-1:CLOSE #2
4040 GOSUB 6000
4050 PRINT "NOTES:  KEYS":LOCATE 1,30:COLOR 14,0:PRINT "KEYS       ";:COLOR 3,0:PRINT " DESCRIPTION":FOR I=1 TO NP:COLOR 14,0:LOCATE 4+I,30:PRINT NKEY$(I);:COLOR 3,0:LOCATE ,40:PRINT " = ";NOTE$(I):NEXT
4060 LOCATE 20,28:COLOR 14,0:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030
4065 Y$=INKEY$:IF Y$="" THEN 4065
4066 COLOR 3,0
4070 RETURN 160
5000 GOSUB 6000:A$="SEARCH":Y1=5
5001 COLOR 3,0:LOCATE 12,20:PRINT "Do you want to save the DATA?  <Y>es or <N>o.":COLOR 3,0:LOCATE 12,52:COLOR 14,0:PRINT "Y":LOCATE 12,61:PRINT "N":COLOR 3,0
5002 GOSUB 5150
5003 IF Y$="N" THEN CLS:RETURN 160 ELSE CLOSE:CHAIN "ADFILES",10,ALL
5150 GOSUB 35040:DEF SEG=0: POKE 1050, PEEK(1052)
5151 Y$=INKEY$:IF Y$="" THEN 5151 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
5152 IF Y$="N" OR Y$="Y" THEN RETURN ELSE 5150
5200 IF Y1=1 THEN Y$="B" ELSE Y$=LEFT$(A$,1)
5210 OPEN FILM$ FOR OUTPUT AS #3
5220 WRITE #3, Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$
5225 FOR I=1 TO 36:WRITE #3, ZK(I):NEXT:CLOSE #3:RETURN
6000 CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;:COLOR 3,0:LOCATE 1,1:RETURN
6005 LOCATE 1,70:COLOR 16,7:PRINT "WORKING":COLOR 3,0:RETURN
6010 COLOR 3,0:LOCATE 6,15:PRINT  "(full name or any part starting from left most character)"
6015 LOCATE 8,39:PRINT "OR":COLOR 12,0:LOCATE 10,28:PRINT ARR$;"  return to SEARCH menu":LOCATE 15,10:COLOR 14,0:RETURN
6020 COLOR 12,0:LOCATE 5,26:PRINT "ENTER:  TELEPHONE NUMBER & ";ARR$:COLOR 3,0:LOCATE 6,22:PRINT "(EX. 301-321-3137 OR 321-3137 OR 3137)"
6025 LOCATE 8,39:PRINT "OR":COLOR 12,0:LOCATE 10,29:PRINT ARR$;"  return to SEARCH menu":LOCATE 15,15:COLOR 14,0:RETURN
6030 LOCATE 1,70:PRINT SPACE$(9)
6040 LOCATE 11,47:PRINT "Hit <ESC> to end search."
6045 LOCATE 12,47:PRINT "Hit any key to Continue.":LOCATE 13,58:PRINT "OR":LOCATE 14,40:PRINT "<D> to give a Printout of Search ONLY.":COLOR 14,0:LOCATE 14,41:PRINT "D":LOCATE 14,77:PRINT "?":COLOR 3,0:GOSUB 35020
6050 Y$=INKEY$: IF Y$="" THEN 6050
6060 IF Y$="D" OR Y$="d" THEN LOCATE 20,55:COLOR 16,7:PRINT "SEARCHING" :COLOR 3,0
6070 LOCATE 1,70:COLOR 0,7:PRINT "WORKING":COLOR 3,0:RETURN
20000 A$="ADSEARCH":CHAIN "ADNAME",20000,ALL
30000 CLS:LOCATE 25,25:COLOR 1,3,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 1,1
30010 OPEN "AD.HLP" AS #2 LEN=78
30020 FIELD #2, 78 AS A$
30030 I=1:M=1
30040 GET #2,I
30090 IF LEFT$(A$,1) <> CHR$(15) THEN PRINT A$ :I=I+1:GOTO 30040 ELSE 30130
30130 LOCATE 24,27:COLOR 14,0:PRINT "HIT ANY KEY TO CONTINUE";:COLOR 3,0:GOSUB 35030
30140 Y$=INKEY$:IF Y$="" THEN 30140
30150 CLOSE #2:GOTO 180
35000 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
35010 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
35020 IF SND$="N" THEN RETURN ELSE SOUND 750,2:SOUND 30000,2:SOUND 750,2:RETURN
35030 IF SND$="N" THEN RETURN ELSE SOUND 523,2:SOUND 20000,3:SOUND 523,2:RETURN
35040 IF SND$="N" THEN RETURN ELSE BEEP:RETURN

ADSORT.BAS

10 DEFINT A-Z
20 ON ERROR GOTO 170
30 ARR$=CHR$(17)+CHR$(196)+CHR$(217):C1$=CHR$(34):T1$="    THE ISS PERSONAL ADDRESS BOOK"
35 O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F4: SORT menu"+O2$+"F7:NAMES"+O2$+"F8:NOTES"+O2$+"F9:SAVE/CONT"
40 DIM U$(16),DQ$(12),V$(16),V(16),V1$(16):FOR I= 1 TO 12:READ DQ$(I):NEXT
50 DATA JANUARY, FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
60 REM
70 REM         TEMPORARY FILE
75 OPEN "TEMPOR.TEM" FOR INPUT AS #1
76 INPUT #1, FILE$,FILM$,FIL$:CLOSE #1:DIM ZK(40)
80 OPEN FILM$ FOR INPUT AS #3
90 INPUT #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:FOR I= 1 TO 36:INPUT #3, ZK(I):NEXT:CLOSE #3
117 DIM D$(NN+2),D(NN),Z(NN+2),D1$(NN+2)
135 GOSUB 5200:GOTO 320
140 A$="EDIT":Y1$="2":GOTO 146
141 A$="DELETE":Y1$="3":GOTO 146
142 A$="SEARCH":Y1$="5":GOTO 146
143 A$="PRINT":Y1$="6":GOTO 146
144 A$="MAIN":Y1$="1"
146 CLS:GOSUB 255:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 12,21:PRINT "PLEASE WAIT, LOADING ";A$;" ROUTINES":GOSUB 1192
148 A$="AD"+A$:RUN A$
150 DEF SEG = 0:POKE 1050, PEEK(1052)
151 Y$=INKEY$:IF Y$="" THEN 151 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
152 IF Y$="N" OR Y$="Y" THEN CLS:RETURN ELSE GOSUB 35040:GOTO 150
161 CLS:COLOR 3,0,1:LOCATE  12,30:PRINT "QUIT?  <Y>es or <N>o?":COLOR 14,0:LOCATE 12,38:PRINT "Y":LOCATE 12,47:PRINT "N":COLOR 3,0:GOSUB 35030
162 GOSUB 150
163 IF Y$="N" THEN 320
165 CLS:A$="B":GOSUB 1192:LOCATE 12,30:PRINT "   GOODBYE  ":SYSTEM
170 IF ERL = 280 THEN RESUME 285
173 IF ERL=4010 THEN CLS:LOCATE 10,15:PRINT "File containing KEYS used in NOTES does not exist.":LOCATE 12,22:PRINT "Return to EDIT program to create file." :LOCATE 18,30:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030 ELSE 180
174 Y$=INKEY$:IF Y$="" THEN 174
175 RESUME 320
180 IF ERR = 61 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"DISK FULL ":COLOR 7,1:LOCATE 1,1
220 IF ERR = 61 THEN PRINT "DISK FULL.  LOAD FORMATTED DISK AND 'CONTINUE' ":STOP
230 IF ERR = 61 THEN RESUME 320
240 RESUME 320
255 IF YSAVE=0 THEN RETURN ELSE CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;
256 COLOR 3,0:LOCATE 12,20:PRINT "Do you want to save the DATA?  <Y>es or <N>o.":COLOR 3,0:LOCATE 12,52:COLOR 14,0:PRINT "Y":LOCATE 12,61:PRINT "N":COLOR 3,0:GOSUB 35030
257 GOSUB 150
258 IF Y$="N" THEN YSAVE=0:CLS:RETURN
260 CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;:COLOR 3,0
261 CLOSE:LOCATE 12,10:PRINT "Do you want to save the file under a different filename?":LOCATE 14,30:PRINT " <Y>es or <N>o? " :COLOR 14,0:LOCATE 14,32:PRINT "Y":LOCATE 14,41:PRINT "N":COLOR 3,0:GOSUB 35030
262 GOSUB 150:IF Y$="N" THEN 268
263 IF YSAVE=1 OR Y1$="4" THEN 270
264 Y1$="4":A$="SORT":CLOSE:CHAIN "ADFILES",15,ALL
268 CLS:LOCATE 12,20:PRINT "Saving data in ";FILE$:GOSUB 1155:CLS:RETURN
270 DEF SEG =&H40:POKE &H17,&H40
271 LOCATE 22,40:COLOR 14,0:PRINT "     F4";:COLOR 3,0:PRINT " = RETURN TO SORT MENU"
272 LOCATE 10,33:PRINT "Enter FILENAME":LOCATE 12,29:PRINT "[EXAMPLE:  B:ZIP-FIL]":LOCATE 14,30:PRINT "Default drive is ";F$:LOCATE 16,32:COLOR 14,0:GOSUB 35030:INPUT "FILENAME ... ",FILET$
274 Z=INSTR(1,FILET$,":"):IF Z=0 THEN FILET$=F$+FILET$
276 Z =INSTR(1,FILET$,"."):IF Z<>0 THEN FILT$=LEFT$(FILET$,Z-1) ELSE FILT$=FILET$
277 FILM2$=FILT$+".ISS":FILET$=FILT$+".DAT"
280 OPEN FILM2$ FOR INPUT AS #3
281 LOCATE 18,25:PRINT "Confirm Overwrite of ";:COLOR 9,7:PRINT FILET$:COLOR 12,0:LOCATE 19,35:PRINT "<Y> or <N>":COLOR 3,0
282 Y$=INKEY$:IF Y$="" THEN 282 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
283 IF Y$="N" THEN RETURN 320 ELSE IF Y$="Y" THEN 285 ELSE GOSUB 35040:GOTO 282
285 CLOSE #3:CLS:LOCATE 12,27:PRINT "Saving data in ";FILET$ :LOCATE 20,35:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
290 CLOSE:DEF SEG =&H40:POKE &H17,&H0:YNEW$="Y":OPEN FILET$ AS #1 LEN = 356:GOSUB 1200:CLS:RETURN
295 REM
300 REM                    SORT ROUTINE
310 REM
320 REM
325 X1$="SORT":X3$="FILE = ":X5$="FUNCTION = ":X4$=SPACE$(30):Q$=CHR$(27)
330 CLS:LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$;:COLOR 3,0:LOCATE 1,1
340 LOCATE 1,1:PRINT TAB(10);"SORT MENU":PRINT :PRINT "  INPUT:  ":LOCATE 10,1
370 COLOR 3,0:PRINT TAB(4);"0)NONE":PRINT TAB(4);"1)NAME":PRINT TAB(4);"2)CITY":PRINT TAB(4);"3)STATE":PRINT TAB(4);"4)ZIP CODE - numerical order":PRINT TAB(4);"5)BIRTHDAY - Chronological order"
375 PRINT TAB(4);"6)HOME Phone":PRINT TAB(4);"7)OFFICE Phone":PRINT TAB(4);"8)NOTE":PRINT TAB(4);"9)COMPANY"
380 COLOR 14,0:LOCATE 10,4:PRINT "0":LOCATE 11,4:PRINT "1":LOCATE 12,4:PRINT "2":LOCATE 13,4:PRINT "3":LOCATE 14,4:PRINT "4":LOCATE 15,4:PRINT "5":LOCATE 16,4:PRINT "6"
385 LOCATE 17,4:PRINT "7":LOCATE 18,4:PRINT "8":LOCATE 19,4:PRINT "9"
400 REM
401 COLOR 3,0:LOCATE 17,40:PRINT "KEY  F1 = Return to Main menu"
402 LOCATE 18,40:COLOR 14,0:PRINT "     F4";:COLOR 3,0:PRINT " = RETURN TO SORT MENU"
403 LOCATE 19,40:PRINT "     F7 = List of names in Address Book"
404 LOCATE 20,40:PRINT "     F8 = KEYS used in NOTES"
405 LOCATE 21,40:PRINT "     F9 = Save/continue"
406 LOCATE 22,40:PRINT "    F10 = HELP"
407 COLOR 3,0:LOCATE 23,40:PRINT "Alt F10 = QUIT"
408 LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date:  ";DATE$:LOCATE 3,62:PRINT "Time:  "
410 GOSUB 1500
460 REM  SORT
470 CLS:LOCATE 25,1:COLOR 0,7:PRINT O1$;:COLOR 3,0,1:LOCATE 1,1
475 LOCATE 12,24:PRINT "PLEASE WAIT, READING RECORDS ...";
480 GOSUB 2000
485 GET #4,NN+1:K=VAL(V$(16))
490 IF L2=0 THEN 515
492 IF L1<>2 THEN 505
495 FOR I= 1 TO NN:GET #4,I:D$(I)=MID$(V$(2),5,VAL(V$(2)))+MID$(V$(1),5,VAL(V$(1)))+MID$(V$(L2),5,VAL(V$(L2)))+V$(16):NEXT
500 GOTO 570
505 FOR I= 1 TO NN:GET #4,I:D$(I)=MID$(V$(L1),5,VAL(V$(L1)))+MID$(V$(L2),5,VAL(V$(L2)))+V$(16):NEXT
510 GOTO 570
515 IF L1<>2 THEN 525
516 FOR I= 1 TO NN:GET #4,I:D$(I)=MID$(V$(2),5,VAL(V$(2)))+MID$(V$(1),5,VAL(V$(1)))+V$(16):NEXT
520 GOTO 570
525 FOR I= 1 TO NN:GET #4,I:D$(I)=MID$(V$(L1),5,VAL(V$(L1)))+V$(16):NEXT
570 COLOR 3,0,1:LOCATE 12,20:PRINT SPACE$(40):LOCATE 12,15:PRINT "PLEASE WAIT, SORTING ... ";
575 GOSUB 2100
577 FOR I= 1 TO NN:Z(I)=VAL(RIGHT$(D$(I),5)):NEXT
578 GOSUB 1000
580 YS$="N"
590 CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;:COLOR 0,7
600 LOCATE 6,31: PRINT " FINISH SORTING ":COLOR 3,0:LOCATE 12,17:PRINT "Do you want to see the list of names in file?":LOCATE 14,33:PRINT "<Y>es or <N>o"
610 COLOR 14,0:LOCATE 14,34:PRINT "Y":LOCATE 14,43:PRINT "N":COLOR 31,0:LOCATE 16,39:PRINT "?":COLOR 3,0:GOSUB 35030
620 GOSUB 150
630 IF Y$="N" THEN 640
635 GOSUB 670
640 CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;
645 COLOR 3,0:LOCATE 12,14:PRINT "Do you want to save the sorted DATA?  <Y>es or <N>o.":COLOR 3,0:LOCATE 12,53:COLOR 14,0:PRINT "Y":LOCATE 12,62:PRINT "N":COLOR 3,0:GOSUB 35030
650 GOSUB 150
655 IF Y$="N" THEN 320 ELSE FOR I= 1 TO 9:KEY(I) OFF:NEXT :GOSUB 260
660 IF YNEW$="Y" THEN GOSUB 1310
665 GOTO 135
670 REM
680 IF L1<>2 THEN L3=L1 ELSE L3=L2
690 ON L3 GOTO 695,695,719,695,700,705,710,712,714,716,718
695 X$="":GOTO 720
700 X$=" CITY ":LN=5:LM=45:GOTO 720
705 X$=" STATE ":LN=6:LM=45:GOTO 720
710 X$=" ZIPCODE ":LN=7:LM=45:GOTO 720
712 X$=" BIRTHDAY ":LN=8:LM=45:GOTO 720
714 X$=" NOTE ":LN=9:LM=45:GOTO 720
716 X$=" HOME TELEPHONE ":LN=10:LM=45:GOTO 720
718 X$=" OFFICE TELEPHONE ":LN=11:LM=45:GOTO 720
719 X$=" COMPANY ":LN=3:LM=45:GOTO 720
720 GOSUB 900
730 FOR I= 1 TO NN:GET #4,Z(I)
735 Y$=INKEY$:IF Y$=CHR$(27) THEN RETURN
740 M=M+1
755 I$=STR$(I):IF I<10 THEN I$="  "+I$
756 IF I>9 AND I<100 THEN I$=" "+I$
760 IF L2=0 AND L1<2 THEN PRINT TAB(2);I$;SPACE$(10);MID$(V$(1),5,VAL(V$(1)));" ";MID$(V$(2),5,VAL(V$(2))):GOTO 770
765 PRINT I$;SPACE$(10);MID$(V$(1),5,VAL(V$(1)));" ";MID$(V$(2),5,VAL(V$(2)));:LOCATE ,LM:PRINT MID$(V$(LN),5,VAL(V$(LN)))
770 IF M<20 THEN 810 ELSE LOCATE 23,10:COLOR 10,0,1:PRINT "HIT ANY KEY TO CONTINUE or <Esc> to EXIT":LOCATE 23,38:COLOR 14,0,1:PRINT "Esc":COLOR 3,0:GOSUB 35030
780 Y$=INKEY$: IF Y$="" THEN 780
785 IF Y$=CHR$(27) THEN RETURN
790 GOSUB 900
810 NEXT I
820 IF M=0 THEN RETURN ELSE LOCATE 23,10:COLOR 10,0,1:PRINT "HIT ANY KEY TO CONTINUE";SPACE$(20):COLOR 3,0:GOSUB 35030:M=0
830 Y$=INKEY$: IF Y$="" THEN 830
840 RETURN
900 CLS:LOCATE 25,1:COLOR 0,7:PRINT O1$;:M=0
910 LOCATE 23,10:COLOR 10,0,1:PRINT SPACE$(23);"HIT <Esc> to EXIT":LOCATE 23,38:COLOR 14,0,1:PRINT "Esc":LOCATE 1,1
920 COLOR 14,0,1:PRINT " ADDRESS #":LOCATE 1,20:PRINT " NAME ":LOCATE 1,50:PRINT X$:COLOR 3,0:PRINT
930 RETURN
1000 IF L1<>2 THEN FOR I=1 TO 26:ZK(I)=1:NEXT ELSE 1003
1002 FOR I=27 TO 36:ZK(I)=0:NEXT:GOTO 1026
1003 FOR I=1 TO 36:ZK(I)=0:NEXT
1005 FOR I= NN TO 1 STEP -1
1007 IF D$(I)="" THEN 1018
1010 FOR J= 65 TO 90:IF ASC(LEFT$(D$(I),1))=J THEN JJ=J-64:ZK(JJ)=Z(I):J=90
1015 NEXT
1018 NEXT
1026 NZ=INT((NN/10)+0.5):IF NN<10*NZ THEN NZ=INT(NN/10)
1030 J=0:ZK(27)=Z(1):FOR I=28 TO 36:J=J+1:ZK(I)=Z(J*NZ):NEXT
1035 IF ZK(36)=0 THEN ZK(36)=Z(NN-5)
1040 RETURN
1120 REM         TEMPORARY FILE
1130 REM
1155 OPEN FILE$ AS #4 LEN = 356
1157 GOSUB 2010
1160 IF ASORT=1 THEN Z(0)=Z(NN):Z(NN+1)=Z(1) ELSE RETURN
1165 FOR I= 1 TO NN:GET #4, Z(I):IF (Z(I)=VAL(V$(16)) AND Z(I+1)=VAL(V$(14)) AND Z(I-1)=VAL(V$(15))) THEN 1167 ELSE LSET V$(16)=STR$(Z(I)):LSET V$(14) = STR$(Z(I+1)):LSET V$(15) = STR$(Z(I-1))
1166 FOR J= 1 TO 13 :LSET V$(J)=V$(J):NEXT:PUT #4, Z(I)
1167 NEXT
1168 KEND$=V$(16)
1170 FOR J=3 TO 13:LSET V$(J)="":NEXT:NMID=INT(NN/2+0.5)
1172 LSET V$(14)=KEND$:LSET V$(15)=STR$(Z(NMID)):LSET V$(16)=STR$(Z(1))
1174 LSET V$(1)=DATE$:LSET V$(2)=TIME$
1175 PUT #4,NN+1:CLOSE #4:COLOR 3,0:YSAVE=0:RETURN
1192 Y$=LEFT$(A$,1)
1193 CLOSE:OPEN FILM$ FOR OUTPUT AS #3
1194 WRITE #3, Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$
1195 FOR I=1 TO 36:WRITE #3, ZK(I):NEXT:CLOSE #3:RETURN
1200 OPEN FILE$ AS #4 LEN = 356
1210 GOSUB 2010
1220 FIELD #1, 19 AS U$(1), 19 AS U$(2), 18 AS U$(13), 34 AS U$(12), 34 AS U$(3), 34 AS U$(4), 19 AS U$(5), 14 AS U$(6), 16 AS U$(7), 12 AS U$(8), 84 AS U$(9), 19 AS U$(10), 19 AS U$(11), 5 AS U$(14), 5 AS U$(15), 5 AS U$(16)
1230 IF ASORT=1 THEN Z(0)=Z(NN):Z(NN+1)=Z(1) ELSE 1400
1240 FOR I= 1 TO NN:GET #4, Z(I):LSET U$(16)=STR$(Z(I)):LSET U$(14) = STR$(Z(I+1)):LSET U$(15) = STR$(Z(I-1))
1250 FOR J= 1 TO 13 :LSET U$(J)=V$(J):NEXT:PUT #1, Z(I)
1260 NEXT
1270 FOR J=3 TO 13:LSET U$(J)="":NEXT
1280 NMID=INT(NN/2+0.5):LSET U$(14)=STR$(NN):LSET U$(15)=STR$(Z(NMID)):LSET U$(16)=STR$(Z(1))
1290 LSET U$(1)=DATE$:LSET U$(2)=TIME$
1300 PUT #1,NN+1:CLOSE #4:CLOSE #1:COLOR 3,0:YSAVE=0:RETURN
1310 OPEN FILM2$ FOR OUTPUT AS #3
1320 WRITE #3, Y$,NRED,NN,FILET$,FILT$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$
1325 FOR I=1 TO 36:WRITE #3, ZK(I):NEXT:CLOSE #3:RETURN
1400 FOR I= 1 TO NN+1:GET #4,I:FOR J=1 TO 16:LSET U$(J)=V$(J):NEXT:PUT #1,I:NEXT
1410 CLOSE #4:CLOSE #1:COLOR 3,0:YSAVE=0:RETURN
1500 GOSUB 35010:LOCATE 5,5:COLOR 11,0:PRINT "Primary KEY?  ":GOSUB 1600:L1=VAL(Y$):IF L1= 0 THEN BEEP:GOTO 1500:
1510 LL=5:LM=20:GOSUB 1660:L1=L3
1550 GOSUB 35010:LOCATE 6,5:COLOR 11,0:PRINT "Secondary KEY?  ":GOSUB 1600
1560 LL=6:LM=21:GOSUB 1655:L2=L3
1570 GOSUB 35010:LOCATE 7,5:COLOR 14,0:PRINT "Please Confirm (Y/[N])?"
1590 DEF SEG=0: POKE 1050, PEEK(1052)
1595 Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 1595
1596 Y$=CHR$(ASC(Y$) AND &HDF):IF Y$="Y" THEN RETURN ELSE LOCATE 5,5:PRINT SPACE$(25):LOCATE 6,5:PRINT SPACE$(25):LOCATE 7,5:PRINT SPACE$(30):BEEP:GOTO 1500
1600 DEF SEG=0: POKE 1050, PEEK(1052)
1620 Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 1620 ELSE 1630
1630 IF LEN(Y$)=2 THEN 1700 ELSE L=VAL(Y$)
1645 IF ASC(Y$)<48 OR ASC(Y$)>57 THEN BEEP:GOTO 1600
1646 RETURN
1650 REM
1655 IF L= 0 THEN L3=0:LOCATE LL,LM:PRINT "":RETURN
1660 ON L GOTO 1661,1662,1663,1664,1665,1666,1667,1668,1669
1661 LOCATE LL,LM:PRINT "NAME":L3=2:RETURN
1662 LOCATE LL,LM:PRINT "CITY":L3=5:RETURN
1663 LOCATE LL,LM:PRINT "STATE":L3=6:RETURN
1664 LOCATE LL,LM:PRINT "ZIPCODE":L3=7:RETURN
1665 LOCATE LL,LM:PRINT "BIRTHDAY":L3=8:RETURN
1666 LOCATE LL,LM:PRINT "HOME PHONE":L3=10:RETURN
1667 LOCATE LL,LM:PRINT "OFFICE PHONE":L3=11:RETURN
1668 LOCATE LL,LM:PRINT "NOTES":L3=9:RETURN
1669 LOCATE LL,LM:PRINT "COMPANY":L3=3:RETURN
1700 IF ASC(RIGHT$(Y$,1))= 68 THEN 30000
1710 IF ASC(RIGHT$(Y$,1))=113 THEN 161 ELSE BEEP:GOTO 1600
2000 CLOSE :OPEN FILE$ AS #4 LEN = 356
2010 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
2020 RETURN
2100 REM
2200 REM
2210 G=NN
2220 WHILE G>1
2230 G=INT(G/2):MX=NN-G:PRINT " .";:SOUND 523,1
2240 F=0
2250 FOR I=1 TO MX:P=I+G
2270 IF D$(I)<=D$(P) THEN 2300
2280 SWAP D$(I),D$(P):F=1
2300 NEXT
2310 IF F>0 THEN 2240
2315 WEND
2320 YSAVE=1:ASORT=1:RETURN
4000 FILN$ =FIL$+".NTE"
4005 IF NKEY$(1)="" OR NKEY$(1)=CHR$(15) THEN 4010 ELSE 4036
4010 OPEN FILN$ FOR INPUT AS #2
4030 FOR I= 1 TO 20:INPUT #2, NKEY$(I),NOTE$(I):IF NKEY$(I)=CHR$(15) THEN 4035 ELSE NEXT
4035 CLOSE #2:NP=I-1
4036 O$=CHR$(219):O2$=CHR$(221):O1$="FUNCTION KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F4: SORT menu"+O2$+"F7:NAMES"+O2$+"F8:NOTES"+O2$+"F9:SAVE"
4040 CLS:LOCATE 25,1:COLOR 0,7:PRINT O1$;:COLOR 3,0
4050 LOCATE 1,1:PRINT "NOTES:  KEYS":LOCATE 1,30:COLOR 14,0:PRINT "KEYS       ";:COLOR 3,0:PRINT " DESCRIPTION":FOR I=1 TO NP:COLOR 14,0:LOCATE 4+I,30:PRINT NKEY$(I);:COLOR 3,0:LOCATE ,40:PRINT " = ";NOTE$(I):NEXT
4060 LOCATE 20,28:COLOR 14,0:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030
4065 Y$=INKEY$:IF Y$="" THEN 4065
4066 COLOR 3,0
4070 OPEN FILN$ FOR OUTPUT AS #2
4080 FOR I= 1 TO NP:WRITE #2,NKEY$(I),NOTE$(I):NEXT
4085 WRITE #2, CHR$(15),CHR$(15)
4090 CLOSE #2:RETURN 300
5000 Y1$="4":YSAVE=1:GOSUB 255
5040 RETURN 320
5200 ON KEY(8) GOSUB 4000:KEY(8) ON:ON KEY(7) GOSUB 20000:KEY(7) ON:ON KEY(9) GOSUB 5000:KEY(9) ON:CLOSE
5210 ON KEY(1) GOSUB 144:ON KEY(2) GOSUB 140:KEY(1) ON:KEY(2) ON:ON KEY(3) GOSUB 141:KEY(3) ON:ON KEY(4) GOSUB 320:KEY(4) ON:ON KEY(5) GOSUB 142:ON KEY(6) GOSUB 143:KEY(6) ON:KEY(5) ON
5220 RETURN
20000 N$=STR$(NN):A$="ADSORT":CHAIN "ADNAME",20000,ALL
30000 CLS:LOCATE 25,25:COLOR 1,7,0:PRINT "INTEGRATED SOFTWARE SYSTEMS":COLOR 3,0:LOCATE 1,1
30010 OPEN "AD.HLP" AS #2 LEN=78
30020 FIELD #2, 78 AS A$
30030 I=1:M=1
30040 GET #2,I
30090 IF LEFT$(A$,1) <> CHR$(15) THEN PRINT A$ :I=I+1:GOTO 30040 ELSE 30150
30150 LOCATE 24,27:COLOR 14,0:PRINT "HIT ANY KEY TO CONTINUE";:COLOR 3,0:GOSUB 35030
30160 Y$=INKEY$:IF Y$="" THEN 30160
30170 CLOSE #2:GOTO 300
35000 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
35010 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
35030 IF SND$="N" THEN RETURN ELSE SOUND 523.25,2:SOUND 30000,3:SOUND 523.25,2:RETURN
35040 IF SND$="N" THEN RETURN ELSE BEEP:RETURN

ADSTART.BAS

10 CLS:KEY OFF:FOR I= 1 TO 10:KEY I,"":NEXT:GOSUB 110
20 IF CO=999 THEN 25 ELSE FOR I= 1 TO 500:NEXT
25 GOSUB 1000
30 COLOR 7,0:CHAIN"ADMAIN.BAS",200,ALL
40 CLS:LOCATE  5,27:COLOR 0,7,1:PRINT SPACE$(26):LOCATE  6,27:PRINT SPACE$(26)
50 LOCATE  7,27:PRINT SPACE$(11);:COLOR 14,9:PRINT " THE ";:COLOR 0,7:PRINT SPACE$(10)
60 LOCATE 8,27:PRINT SPACE$(6);:COLOR 14,9:PRINT " ADDRESS BOOK ";:COLOR 0,7:PRINT SPACE$(6):LOCATE 9,27:PRINT SPACE$(26):LOCATE 10,27:PRINT SPACE$(26)
70 COLOR 4,0:LOCATE 13,26:PRINT "INTEGRATED SOFTWARE SYSTEMS ":LOCATE 15,31:PRINT "BALTIMORE MARYLAND":COLOR 3,0
80 LOCATE 18,18:PRINT " (C) Copyright 1983  E. L. Loh and R. L. Caret"
90 LOCATE 25,10:COLOR 1,3,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";SPACE$(15);"SERIAL NUMBER: ";SNN$;:COLOR 3,0:Y$=""
100 RETURN
110 DEF SEG=&HB000
120 POKE 0,&H33: MONO = (PEEK(0)=&H33)
130 POKE 0,&H55: MONO = (PEEK(0)=&H55) AND MONO
140 DEF SEG=&HB800
150 POKE 0,&H33: COLR = (PEEK(0)=&H33):SNN$="OG110"
160 POKE 0,&H55: COLR = (PEEK(0)=&H55) AND COLR
170 IF MONO AND COLR THEN 190
175 IF MONO THEN GOSUB 40:RETURN
180 IF COLR THEN GOSUB 340:RETURN
190 DEF SEG = &H40:POKE &H17,&H40
200 CLS:COLOR 3,0,1:LOCATE 12,23:PRINT "Please select which monitor to use.":LOCATE 14,28:PRINT "Color Monitor Enter <C>.":LOCATE 16,25:PRINT "Monochrome Display Enter <M>."
210 COLOR 14,0:LOCATE 14,49:PRINT "C":LOCATE 16,51:PRINT "M":COLOR 3,0
220 GOSUB 330
230 YS$=INKEY$:IF YS$="" THEN 230 ELSE YS$=CHR$(ASC(YS$) AND &HDF)
240 IF YS$="C" THEN 290
250 IF YS$="M" THEN 260 ELSE 220
260 DEF SEG=64:MT=(PEEK(16) AND 48):IF MT=32 THEN GOSUB 340
270 DEF SEG=0:Y=PEEK(&H410):POKE &H410,(Y OR &H30)
280 Y1=20:X1=30:LOCATE ,,,12,13:GOTO 320
290 DEF SEG=64:MT=(PEEK(16) AND 48):IF MT=48 THEN GOSUB 40
300 DEF SEG=0: Y=PEEK(&H410):POKE &H410, (Y AND &HCF) OR &H20
310 Y1=25:X1=12:LOCATE ,,,7,7:CO=999
320 LOCATE 1,1,0:SCREEN 0:WIDTH 40:WIDTH 80:IF YS$="M" THEN GOSUB 40:RETURN ELSE GOSUB 340:SCREEN 0:WIDTH 80:LOCATE 1,1:RETURN
330 FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:SNN$="0G110":RETURN
340 A=1:SCREEN 1
350 FOR X=0 TO 320 STEP 16:LINE(160,100)-(X,0),A:NEXT
360 FOR Y=0 TO 200 STEP 10:LINE(160,100)-(320,Y),A:NEXT
370 FOR X=320 TO 0 STEP -16:LINE(160,100)-(X,199),A:NEXT
380 FOR Y=200 TO 0 STEP -10:LINE(160,100)-(0,Y),A:NEXT
390 LINE(110,80)-(210,120),1,BF:A=0
400 FOR Y=0 TO 200 STEP 10:LINE(160,100)-(0,Y),A:NEXT
410 FOR X=0 TO 320 STEP 16:LINE(160,100)-(X,199),A:NEXT
420 FOR Y=200 TO 0 STEP -10:LINE(160,100)-(320,Y),A:NEXT
430 FOR X=320 TO 0 STEP -16:LINE(160,100)-(X,0),A:NEXT
440 LOCATE 13,18:PRINT "I  S  S"
450 LOCATE 19,12:PRINT " THE ADDRESS BOOK"
460 LOCATE 23,7:PRINT " INTEGRATED SOFTWARE SYSTEMS "
470 LOCATE 1,1
480 LOCATE 21,1:PRINT "(C)COPYRIGHT 1983 by E. Loh and R. Caret"
490 REM
500 Q$="NM160,90 C0 NM160,90 C2"
510 DRAW"BM50,3;XQ$;R30;XQ$;D8;XQ$;L10;XQ$;D36;XQ$;R10;XQ$;D8;XQ$;L30;XQ$;U8;XQ$;R10;XQ$;U36;XQ$;L10;XQ$;U8;XQ$;"
520 DRAW"BM50,3 R30 D8 L10 D36 R10 D8 L30 U8 R10 U36 L10 U8 "
530 DRAW"BM150,3;XQ$;R30;XQ$;D10;XQ$;L8;XQ$;U3;XQ$;L15;XQ$;D15;XQ$;R23;XQ$;D30;XQ$;L30;XQ$;U10;XQ$;R8;XQ$;D3;XQ$;R15;XQ$;U15;XQ$;L23;XQ$;U30;"
540 DRAW"BM150,3 R30 D10 L8 U3 L15 D15 R23 D30 L30 U10 R8 D3 R15 U15 L23 U30;"
550 DRAW"BM250,3;XQ$;R30;XQ$;D10;XQ$;L8;XQ$;U3;XQ$;L15;XQ$;D15;XQ$;R23;XQ$;D30;XQ$;L30;XQ$;U10;XQ$;R8;XQ$;D3;XQ$;R15;XQ$;U15;XQ$;L23;XQ$;U30;"
560 DRAW"BM250,3 R30 D10 L8 U3 L15 D15 R23 D30 L30 U10 R8 D3 R15 U15 L23 U30;"
570 SOUND 1024,4:DRAW"BM290,3 XQ$;BM +0,-1 L2 D8 R2 BM +7,-3;XQ$;D2 L4 U6 R4 D2;XQ$;BM +3,-3 R2 D8 L2;"
580 DRAW"BM250,3 R30 D10 L8 U3 L15 D15 R23 D30 L30 U10 R8 D3 R15 U15 L23 U30;"
590 DRAW"BM290,3 BM +0,-1 L2 D8 R2 BM +7,-3 D2 L4 U6 R4 D2 BM +3,-3 R2 D8 L2;":SOUND 32000,10:SOUND 1024,5
595 PAINT (55,5),2:PAINT (155,5),2:PAINT (255,5),2:COLOR 1,2
600 IF CO=999 THEN LOCATE 25,12:PRINT "PLEASE WAIT, LOADING ";:FOR I=1 TO 1000:NEXT
610 RETURN
1000 SCREEN 0:WIDTH 80:COLOR 0,11,1:CLS:LOCATE 4,1:PRINT TAB(30);"THE ADDRESS BOOK"
1010 PRINT
1020 PRINT TAB(5);"     The Address Book  is distributed as 'user-supported software.'"
1030 PRINT TAB(5);"You do not have to pay for it.   You can copy it, give it away,"
1040 PRINT TAB(5);"or do whatever else you wish with it except sell it.  You may not,"
1050 PRINT TAB(5);"however:"
1070 PRINT
1080 PRINT TAB(5);"	1.  Charge any price for the program or documentation. "
1090 PRINT TAB(5);"Non-profit organizations may charge a distribution fee of up to"
1100 PRINT TAB(5);"cover their overhead."
1110 PRINT
1120 PRINT TAB(5);"	2.  Modify the program or documentation in any way.  Both"
1130 PRINT TAB(5);"the program and documentation must be distributed together."
1140 PRINT
1150 PRINT TAB(5);" 	The Address Book is copyrighted and remains the property of"
1160 PRINT TAB(5);"the authors."
1170 PRINT
1175 GOSUB 1340:CLS:LOCATE 5,1
1180 PRINT TAB(10);"If you find that it is useful, you are invited to make a ";:COLOR 14,0:PRINT "$25":COLOR 0,11
1190 PRINT TAB(5);"donation to the authors.  The donation is voluntary and in no way"
1200 PRINT TAB(5);"should be considered as payment for software or services."
1210 PRINT
1220 PRINT TAB(5);"	The authors are:"
1230 PRINT TAB(5);"		                         Eddie L. Loh  and"
1240 PRINT TAB(5);"                                     Robert L. Caret"
1250 PRINT TAB(5);"   					 Integrated Software Systems"
1260 PRINT TAB(5);"					 POB 61"
1270 PRINT TAB(5);"					 Phoenix, MD. 21131"
1280 PRINT
1290 PRINT
1300 PRINT TAB(5);"	The authors may also be reached via MCI Mail (c/o RCaret)"
1310 PRINT TAB(5);"or CompuServe (72435,552/RCaret)."
1320 PRINT
1330 PRINT:COLOR 3,0
1340 LOCATE 24,27:COLOR O,7:PRINT "HIT ANY KEY TO CONTINUE";:COLOR 0,11:LOCATE 1,1
1350 A$=INKEY$:IF A$="" THEN 1350 ELSE RETURN

ADTRANS.BAS

10 DEF SEG = &H40:POKE &H17, PEEK(&H17) AND 223
100 ARR$=CHR$(17)+CHR$(196)+CHR$(217)
110 DIM D$(13),V$(16),Q$(13),NOTE$(20),NKEY$(20),AZ$(3),AZ(3),W(13),D(16),U$(16),Z(3),G$(6)
115 O3$=CHR$(218)+CHR$(196)+CHR$(191):O4$=CHR$(179)+" "+CHR$(179):O5$=CHR$(192)+CHR$(196)+CHR$(217)
120 O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F9:TRANSFER menu"+O2$+"F7:NAMES"+O2$+"F8:NOTES":NKEY$(1)=""
130 FOR I=1 TO 13:READ Q$(I):NEXT
150 FOR I=1 TO 13:READ W(I):NEXT
160 DATA "NAME - SURNAME: ","NAME - FIRST:   ","TITLE:          ","COMPANY:        ","STREET:         ","CITY:           ","STATE:          ","ZIPCODE:        ","     HOME:      ","   OFFICE:      ","BIRTHDAY:       ","NOTE:           ","TELEPHONE:"
180 DATA 2,1,12,3,4,5,6,7,10,11,8,9,13
190 ON ERROR GOTO 1940
200 REM
290 REM         TEMPORARY FILE
295 OPEN "TEMPOR.TEM" FOR INPUT AS #1
296 INPUT #1,  FILE$,FILM$,FIL$:CLOSE #1:DIM ZK(40),ZL(40)
300 OPEN FILM$ FOR INPUT AS #3:ZTEST=0
310 INPUT #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:FOR I= 1 TO 36:INPUT #3, ZK(I):NEXT:CLOSE #3
312 FOR I= 1 TO 26:ZTEST=ZTEST+ZK(I):NEXT
315 OPEN FILE$ AS #4 LEN = 356
320 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
325 GET #4,NN+1:K1=VAL(V$(16)):IFIRST=K1:IEND=VAL(V$(14))
330 GOSUB 6000
333 GOSUB 6100
335 IF INEW>1 THEN GET #1,INEW+1:ISET=VAL(U$(16)):GET #1,ISET:ISEND=VAL(U$(15)):INEW1=INEW
340 GOTO 960
350 GOSUB 5100:GOSUB 6000:GOTO 960
400 A$="DELETE":Y1=3:GOTO 425
402 A$="EDIT":Y1=2:GOTO 425
405 A$="SORT":Y1=4:GOTO 425
410 A$="SEARCH":Y1=5:GOTO 425
415 A$="PRINT":Y1=6:GOTO 425
420 A$="MAIN":Y1=1
425 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 12,21:PRINT "PLEASE WAIT, LOADING ";A$;" ROUTINES"
430 IF ISET<INEW THEN GOSUB 5100:GOSUB 6200
435 A$="AD"+A$:RUN A$
450 GOSUB 6200
500 CLS:COLOR 3,0:LOCATE  12,30:PRINT "QUIT?  <Y>es or <N>o?":COLOR 14,0:LOCATE 12,38:PRINT "Y":LOCATE 12,47:PRINT "N":COLOR 3,0
505 GOSUB 560
510 IF Y$="N" THEN 350 ELSE A$="E":GOSUB 2190
520 CLS:LOCATE 12,30:PRINT "   GOODBYE   ":SYSTEM
550 GOSUB 5100:Y1=2:RETURN 960
560 GOSUB 35040:DEF SEG=0: POKE 1050, PEEK(1052)
561 Y$=INKEY$:IF Y$="" THEN 561 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
563 IF Y$="N" OR Y$="Y" THEN RETURN ELSE 560
630 CLS:LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$;:COLOR 3,0:LOCATE 1,1:RETURN
690 PRINT TAB(10);"TRANSFER MENU":PRINT:PRINT "CHOOSE ONE OF THE FOLLOWING:  "
710 PRINT :COLOR 14,0:PRINT "   ";CHR$(186);"     ";O3$:PRINT "   ";CHR$(186);"     ";O4$:PRINT "   ";CHR$(25);"     ";O5$:COLOR 3,0
720 LOCATE 9,1:PRINT TAB(4);"M)anual selection":PRINT TAB(4);"N)otes":PRINT TAB(4);"Z)IPCODE":PRINT TAB(4);"L)IST of Transfered Records "
722 COLOR 14,0:LOCATE 9,4:PRINT "M":LOCATE 10,4:PRINT "N":LOCATE 11,4:PRINT "Z":LOCATE 12,4:PRINT "L":COLOR 31,0:LOCATE 6,11:PRINT "?":LOCATE ,,0:COLOR 3,0
725 COLOR 3,0:LOCATE 17,40:PRINT "KEY  F1 = Return to Main menu"
726 COLOR 14,0:LOCATE 18,40:PRINT "     F9";:COLOR 3,0:PRINT " = Return to TRANSFER menu"
727 LOCATE 19,40:PRINT "     F7 = List of names in Address Book"
728 LOCATE 20,40:PRINT "     F8 = KEYS used in NOTES"
729 LOCATE 21,40:PRINT "     F9 = Save/continue"
730 LOCATE 22,40:PRINT "    F10 = HELP"
731 LOCATE 23,40:PRINT "Alt F10 = QUIT"
732 LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date:  ";DATE$:LOCATE 3,62:PRINT "Time:  ":RETURN
960 REM
970  X1$="TRANSFER ":X3$="FILE = ":X5$="FUNCTION = ":X4$=SPACE$(30):Q$=CHR$(27)
980 GOSUB 630
990 GOSUB 690
1033 DEF SEG=0: POKE 1050, PEEK(1052)
1035 Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 1035 ELSE 1040
1040 IF LEN(Y$)=2 THEN 1055 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
1042 IF Y$="M" THEN 1090
1045 IF Y$="L" THEN 3300
1047 IF Y$="Z" THEN 3050
1050 IF Y$="N" THEN 3000 ELSE GOSUB 35040:GOTO 1033
1055 IF ASC(RIGHT$(Y$,1))=68 THEN 30000
1060 IF ASC(RIGHT$(Y$,1))=113 THEN 500 ELSE 990
1090 GOSUB 2200
1100 MS=0:GOSUB 9000
1110 LOCATE 1,1:PRINT "Manual Selection ...  ":LOCATE 3,28 :COLOR 12,0:PRINT "ENTER:  SURNAME & ";ARR$
1120 LOCATE 6,23:COLOR 12,0:PRINT "[!] & ";ARR$;" TO EXAMINE complete file":LOCATE 8,28:PRINT ARR$;"  return to EDIT menu":COLOR 3,0
1125 LOCATE 7,39:PRINT "OR":LOCATE 5,39:PRINT "OR":LOCATE 4,13:PRINT  "(full name or any part starting from left most character)"
1170 COLOR 14,0:LOCATE 20,32: INPUT "SURNAME ... ",S$:MM=LEN(S$):IF MM=0 THEN 960
1185 GOSUB 3500:GOSUB 5000
1186 GET #4,NN+1:K=VAL(V$(16)):K1=K:II=1:I1=0
1187 IF S$="!" THEN 1190 ELSE QK=ASC(LEFT$(S$,1)):IF QK>90 OR QK<65 THEN 1270 ELSE K=ZK(QK-64)
1188 IF K=0 THEN 1270
1190 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0:I1=I1+1:TEST=0:GET #4, K
1195 IF S$="!" THEN 1205
1200 IF S$<>MID$(V$(2),5,MM) THEN 1310
1205 LOCATE 1,70:PRINT SPACE$(9):COLOR 3,0:LOCATE 1,15:PRINT II;SPACE$(4):GOSUB 5400
1210 COLOR 3,0:DEF SEG=0: POKE 1050, PEEK(1052):GOSUB 35040
1215 Y$=INKEY$:IF Y$="" THEN 1215 ELSE DEF SEG=&H40:POKE &H17, 0
1220 IF Y$="Y" OR Y$="y" THEN I=II:K=VAL(V$(14)):GOSUB 2700:GOTO 1310
1225 IF LEN(Y$)=2 THEN Y$=RIGHT$(Y$,1)
1230 IF (Y$="N" OR Y$="n" OR Y$="Q")  THEN K=VAL(V$(14)) ELSE 1240
1235 IF II=NN THEN II=1:GOTO 1310 ELSE II=II+1 :GOTO 1310
1240 IF S$<>"!" THEN 1315 ELSE IF Y$="r" OR Y$="R" THEN 960
1245 IF Y$="=" THEN COLOR 14,0:LOCATE 23,20:PRINT "Jump to (1 - ";NN;" ) ... ";ARR$; ELSE 1255
1250 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32:INPUT NUM:DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223:GOSUB 1500:GOTO 1190
1255 IF Y$="-" THEN COLOR 14,0:LOCATE 23,20:PRINT "GO back #? ";ARR$;:GOTO 1265
1260 IF Y$="+" THEN COLOR 14,0:LOCATE 23,20:PRINT "GO forward #? ";ARR$; ELSE 1285
1265 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32
1270 INPUT " ",NI:JJ=I:I=NI:NI=ABS(NI):COLOR 3,0
1275 IF ABS(NI)>NN THEN LOCATE 23,20:GOSUB 35030:PRINT "OUTSIDE DATA RANGE.  1 TO";NN;:FOR K=1 TO 900:NEXT:LOCATE 23,10:PRINT SPACE$(68):I=JJ:GOTO 1255
1280 DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223:LOCATE 23,10:PRINT SPACE$(65):LOCATE 23,21:COLOR 0,7:PRINT "Hit <Scroll Lock> to stop at a RECORD.":COLOR 3,0:GOSUB 1400:GOTO 1210
1285 IF Y$="I" THEN K=VAL(V$(15)) ELSE 1295
1290 IF II=1  THEN II=NN:GOTO 1315 ELSE II=II-1:GOTO 1190
1295 IF Y$="G" THEN K=IFIRST:II=1:GOTO 1190
1305 IF Y$="O" THEN GET #4,IFIRST:K=VAL(V$(15)):II=NN:GOTO 1190
1310 IF S$="!" THEN 1190
1315 IF ZTEST=26 THEN K=VAL(V$(14)):GOTO 1320
1317 IF ASC(MID$(V$(2),5,1))<>QK THEN 1330 ELSE K=VAL(V$(14))
1320 MS=1:IF FRE(1)<800 THEN CHAIN "adedit.bas",1230,ALL
1325 IF I1=NN THEN 1330 ELSE 1190
1330 IF MS=1 THEN 1345
1335 LOCATE 22,1:PRINT "Person is not in the address book. Try again.  Hit any key to continue."
1340 Y$=INKEY$:IF Y$="" THEN 1340 ELSE 1090
1345 CLS:LOCATE 12,25:PRINT "ANY MORE SELECTIONS?  <Y> or <N> ":COLOR 14,0:LOCATE 12,48:PRINT "Y":LOCATE 12,55:PRINT "N":COLOR 3,0:GOSUB 560
1350 IF Y$="N" THEN ED$="":GOTO 970
1355 IF Y$="Y" OR Y$="y" THEN 1090
1400 IS=II:LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
1410 NII=ABS(NI):FOR NF = 1 TO NII
1415 DEF SEG=&H40:IF PEEK(&H17) AND 16 THEN 1470
1420 IF NI<0 OR Y$="-" THEN II=IS-NF:K=VAL(V$(15)):GET #4,K:GOTO 1425 ELSE K=VAL(V$(14)):GET #4,K:II=IS+NF
1425 IF II=<0 THEN II=NN+II
1426 IF II>NN THEN II=ABS(II-NN)
1430 COLOR 3,0:LOCATE 1,15:PRINT II;SPACE$(4):GOSUB 5400:NEXT
1455 LOCATE 23,20:PRINT SPACE$(40)
1460 Y$="":LOCATE 1,70:PRINT SPACE$(9):RETURN
1470 LOCATE 23,20:PRINT SPACE$(40)
1480 Y$="":LOCATE 1,70:PRINT SPACE$(9):RETURN
1500 IF NUM=<0 OR NUM>NN THEN GOSUB 35040:LOCATE 23,20:PRINT "REENTER NUMBER BETWEEN 1 - ";NN;"  ";SPACE$(5):ELSE 1505
1501 GOSUB 35030:DEF SEG =&H40:POKE &H17,PEEK(&H17) OR 32:LOCATE 23,51:INPUT NUM:DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223
1505 IF NUM=<0 OR NUM>NN THEN 1500 ELSE LOCATE 23,20:PRINT SPACE$(50)
1510 IF ABS(NUM-II)<10 AND NUM-II<0 THEN NZ=II-1:K=VAL(V$(15)):GOTO 1590
1515 IF NUM-II<10 AND NUM-II >=0 THEN NZ=II+1:K=VAL(V$(14)):LOCATE 23,20:PRINT SPACE$(50):GOTO 1550
1520 NZ=INT((NN/10)+0.5):FOR IZ=1 TO 10:IF NUM=<IZ*NZ THEN K=ZK(IZ+26):NZ=(IZ-1)*NZ:IZ=10
1525 NEXT
1540 IF NZ=0 THEN NZ=1
1550 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
1560 FOR II=NZ TO NUM-1 :GET #4,K:K=VAL(V$(14)):NEXT
1570 LOCATE 1,70:PRINT SPACE$(9)
1580 RETURN
1590 LOCATE 23,20:PRINT SPACE$(50)
1595 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
1600 FOR II=NZ TO NUM+1 STEP -1:GET #4,K:K=VAL(V$(15)):NEXT
1610 LOCATE 1,70:PRINT SPACE$(9):RETURN
1940 IF ERL=4010 THEN CLOSE #2: I=1:CLS:LOCATE 10,16:COLOR 14,0:PRINT "The file containing keys used in NOTES is empty":LOCATE 18,30:COLOR 0,7:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35010:COLOR 3,0 ELSE 1947
1941 Y$=INKEY$:IF Y$="" THEN 1941
1942 RESUME 350
1947 IF ERR = 61 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"DISK FULL ":COLOR 7,1:LOCATE 1,1
1950 IF ERR = 61 THEN LOCATE 10,1:PRINT "DISK FULL.  LOAD FORMATTED DISK AND TYPE <CONT> AND RETURN ":COLOR 14,0:LOCATE 10,43:PRINT "CONT":BEEP:COLOR 3,0:STOP
1960 IF ERR = 61 THEN RESUME 350
1970 IF ERL =6130 THEN INEW=0:PT2$=PT$:LP2=LP1:LP2$=LP$:T2$="The Address Book":TN2=TN:ISET=1:ISEND=1:RESUME 6160
1990 RESUME 350
2120 REM         TEMPORARY FILE
2130 REM
2190 Y$=LEFT$(A$,1)
2191 OPEN FILM$ FOR OUTPUT AS #3
2192 WRITE #3, Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$
2193 FOR I= 1 TO 36:WRITE#3, ZK(I):NEXT:CLOSE #3
2195 RETURN
2200 GOSUB 9000:PRINT TAB(10);"TRANSFER ... ":PRINT:PRINT "CHOOSE ONE OF THE FOLLOWING:  "
2210 PRINT :COLOR 14,0:PRINT "   ";CHR$(186);"     ";O3$:PRINT "   ";CHR$(186);"     ";O4$:PRINT "   ";CHR$(25);"     ";O5$:COLOR 3,0
2220 LOCATE 9,1:PRINT TAB(4);"C)opy Records to ";FILET$:PRINT TAB(4);"T)ransfer Records to ";FILET$;" and Delete from ";FILE$
2225 COLOR 14,0:LOCATE 9,4:PRINT "C":LOCATE 10,4:PRINT "T":COLOR 31,0:LOCATE 6,11:PRINT "?":LOCATE ,,0:COLOR 3,0
2230 DEF SEG=0: POKE 1050, PEEK(1052)
2235 YT$=INKEY$:IF YT$="" THEN 2235 ELSE YT$=CHR$(ASC(YT$) AND &HDF)
2240 IF YT$="C" OR YT$="T" THEN RETURN ELSE GOSUB 35040:GOTO 2230
2300 REM
2305 LOCATE 23,10:COLOR 14,0:PRINT "RECORD TRANSFERED.  TO DELETE RECORD, CONFIRM BY ENTERING <OK>. ":Y$=INPUT$(2):IF Y$="OK" OR Y$="ok" OR Y$="Ok" THEN 2310 ELSE LOCATE 23,10:PRINT SPACE$(69):RETURN
2310 LOCATE 23,10:PRINT "PLEASE WAIT, DELETING RECORD";SPACE$(40)
2315 IF IEND=VAL(V$(16)) THEN IEND=VAL(V$(15))
2320 IF VAL(V$(16))<>NN THEN 2330 ELSE L1=VAL(V$(14)):L2=VAL(V$(15)):Z$(2)=V$(15):Z$(1)=V$(14)
2325 IF IFIRST=VAL(V$(16)) THEN IFIRST =L1:GOTO 2365 ELSE 2365
2330 Z(1)=VAL(V$(14)):Z(2)=VAL(V$(15)):Z(3)=VAL(V$(16)):Z$(1)=V$(14):Z$(2)=V$(15):Z$(3)=V$(16):IF IFIRST=Z(3) THEN IFIRST = Z(1):IEND=Z(2)
2335 IF IEND = NN THEN IEND =Z(3)
2340 GET #4,Z(1):LSET V$(15)=Z$(2):LSET V$(14)=V$(14):LSET V$(16)=V$(16):FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,Z(1)
2345 GET #4,Z(2):LSET V$(14)=Z$(1):LSET V$(16)=V$(16):LSET V$(15)=V$(15):FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,Z(2)
2350 GET #4,NN:LSET V$(16)=Z$(3):LSET V$(14)=V$(14):LSET V$(15)=V$(15):FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:L1=VAL(V$(14)):L2=VAL(V$(15)):L3=VAL(V$(16)):PUT #4,Z(3)
2355 GET #4,L1:LSET V$(15)=Z$(3):LSET V$(14)=V$(14):LSET V$(16)=V$(16):FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,L1
2360 GET #4,L2:LSET V$(14)=Z$(3):LSET V$(16)=V$(16):LSET V$(15)=V$(15):FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,L2:GOTO 2375
2365 GET #4,L1:LSET V$(15)=Z$(2):LSET V$(14)=V$(14):LSET V$(16)=V$(16):FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,L1
2370 GET #4,L2:LSET V$(14)=Z$(1):LSET V$(16)=V$(16):LSET V$(15)=V$(15):FOR J=1 TO 13:LSET V$(J)=V$(J):NEXT:PUT #4,L2
2375 NMID=INT(NN/2+0.5):GET #4,NN+1:LSET V$(14)=STR$(IEND):LSET V$(16)=STR$(IFIRST):LSET V$(15)=STR$(NMID):FOR J=3 TO 13:LSET V$(J)=V$(J):NEXT:LSET V$(1) = DATE$:LSET V$(2) = TIME$:PUT #4,NN
2380 MX=MX-1:NN=NN-1
2385 IF Y$="N" OR Y$="Z" THEN RETURN ELSE LOCATE 23,10:PRINT SPACE$(69):RETURN
2700 INEW=INEW+1:FOR J= 1 TO 13:LSET U$(J)=V$(J):NEXT:LSET U$(14)=STR$(INEW+1):LSET U$(15)=STR$(INEW-1):LSET U$(16)=STR$(INEW):PUT #1,INEW
2710 IF YT$="T" THEN 2300 ELSE RETURN
3000 :GOSUB 2200:GOSUB 9000
3010 PRINT "Selection ... NOTES:" :LOCATE 5,28
3020 PRINT "ENTER:  NOTES & ";ARR$:LOCATE 6,17:PRINT "Any nmber of characters starting from the left)"
3030 LOCATE 15,10:COLOR 14,0:INPUT "NOTES ... ",Z$:KK=9:X2$="notes":COLOR 3,0:MM=LEN(Z$):GOTO 3100
3050 GOSUB 2200:GOSUB 9000:CLS:PRINT "PRINT ... ZIPCODE":LOCATE 5,32:PRINT "ENTER:  ZIPCODE & ";ARR$:LOCATE 6,8:PRINT "(Any number of digits and always start from the left most digit)"
3080 LOCATE 15,25:COLOR 14,0:INPUT "ZIPCode ... ",Z$:KK=7:X2$=" ZIPCODE "
3100 MM=LEN(Z$):IF MM=0 THEN 960
3110 GET #4,NN+1:I=VAL(V$(16)):II=I:IK=0:NSET=NN
3120 GET #4,NN+1:I=VAL(V$(16)):II=I:IK=0
3130 IM=2:GOSUB 9000:LOCATE 1,1:PRINT "RECORDS TRANSFERED to ";FILET$:IF YT$="T" THEN LOCATE 1,40:PRINT "RECORDS DELETED FROM ";FILE$
3131 COLOR 0,7:LOCATE 22,30:PRINT "   Hit <Esc> to Exit   ":COLOR 3,0
3135 IF IM=>20 THEN 3130
3140 IF IK= NSET THEN 3200 ELSE IK=IK+1
3150 GET #4,I
3151 IF MM<>0  THEN 3160 ELSE IF VAL(MID$(V$(1),5,2))<>0 THEN 3190
3153 IF VAL(V$(KK))=0 THEN 3165 ELSE 3190
3160 IF Z$<>MID$(V$(KK),5,MM) THEN 3190
3165 IM=IM+1:LOCATE IM,1:PRINT MID$(V$(1),5,VAL(V$(1)));" ";MID$(V$(2),5,VAL(V$(2)))
3170 INEW=INEW+1:FOR J= 1 TO 13:LSET U$(J)=V$(J):NEXT:LSET U$(14)=STR$(INEW+1):LSET U$(15)=STR$(INEW-1):LSET U$(16)=STR$(INEW):PUT #1,INEW
3180 I=VAL(V$(14)):IF YT$="T" THEN LOCATE IM,50:PRINT MID$(V$(1),5,VAL(V$(1)));" ";MID$(V$(2),5,VAL(V$(2))):IK=IK-2:GOSUB 2315
3182 Y$=INKEY$:IF Y$=CHR$(27) THEN 3200
3185 IF YT$="T" THEN 3135
3190 I=VAL(V$(14)):GOTO 3135
3200 COLOR 0,7:PRINT " RECORDS TRANSFERED ":GOSUB 35000
3210 COLOR 0,7:LOCATE 22,30:PRINT "Hit any key to continue":COLOR 3,0
3220 YY$=INKEY$:IF YY$="" THEN 3220 ELSE 960
3300 CLS:LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$;
3310 COLOR 0,7:LOCATE 23,29:PRINT "   Hit <Esc> to Exit   ":COLOR 3,0
3315 LOCATE 1,1:PRINT "TRANSFERED to ";:COLOR 1,7:PRINT FILET$:PRINT :PRINT :PRINT:COLOR 14,0
3320 FOR I=1 TO INEW STEP 2
3325 Y$=INKEY$:IF Y$=CHR$(27) THEN 3370
3330 GET #1,I:PRINT STR$(I);".  ";MID$(U$(1),5,VAL(U$(1)))+" "+MID$(U$(2),5,VAL(U$(2)));
3335 LOCATE ,40:GET #1,I+1:PRINT STR$(I+1);".  ";MID$(U$(1),5,VAL(U$(1)))+" "+MID$(U$(2),5,VAL(U$(2)))
3350 MN=MN+1:IF MN<21 THEN 3365 ELSE COLOR 0,7:LOCATE 23,29:PRINT " Hit any key to continue ":COLOR 3,0:MN=0
3360 Y$=INKEY$:IF Y$="" THEN 3360
3365 NEXT
3370 IF MN=0 THEN 960 ELSE COLOR 0,7:LOCATE 23,29:PRINT "Hit any key to continue":COLOR 3,0
3375 Y$=INKEY$:IF Y$="" THEN 3375
3380 GOTO 960
3500 GOSUB 9000
3510 PRINT "RECORD #:  ":PRINT:PRINT "NAME:          ":FOR J= 3 TO 8:PRINT Q$(J):NEXT:PRINT Q$(12):RETURN
3520 LOCATE 1,15:PRINT SPACE$(50)
3530 FOR J= 2 TO 9:LOCATE 1+J,15:PRINT SPACE$(50):NEXT:RETURN
4000 IF ISET<INEW THEN GOSUB 5100:GOSUB 6200
4005 FILN$ =FIL$+".NTE"
4010 OPEN FILN$ FOR INPUT AS #2
4030 FOR I= 1 TO 20:INPUT #2, NKEY$(I),NOTE$(I):IF NKEY$(I)=CHR$(15) THEN 4035 ELSE NEXT
4035 NP=I-1:CLOSE #2:GOSUB 9000
4050 LOCATE 1,1:PRINT "NOTES:  KEYS":LOCATE 1,30:COLOR 14,0:PRINT "KEYS       ";:COLOR 3,0:PRINT " DESCRIPTION":FOR I=1 TO NP:COLOR 14,0:LOCATE 4+I,30:PRINT NKEY$(I);:COLOR 3,0:LOCATE ,40:PRINT " = ";NOTE$(I):NEXT
4086 LOCATE 20,28:COLOR 0,7:PRINT "HIT ANY KEY TO CONTINUE":COLOR 3,0:GOSUB 35030
4087 Y$=INKEY$:IF Y$="" THEN 4087
4090 RETURN 350
5000 REM
5010 COLOR 3,0:LOCATE 18,1:PRINT "TRANSFER?     <Y>es.":COLOR 14,0:LOCATE 18,16:PRINT "Y":COLOR 3,0
5020 IF S$="!" THEN LOCATE 19,15:PRINT "<PgDn> or <N>o - next record.":LOCATE 19,26:COLOR 14,0:PRINT "N" :LOCATE 19,16:PRINT "PgDn" ELSE LOCATE 19,15:PRINT "<N>o.":LOCATE 19,16:COLOR 14,0:PRINT "N"
5030 IF S$<> "!" THEN RETURN ELSE COLOR 3,0:LOCATE 20,15:PRINT "<PgUp> - previous record":LOCATE 21,15:PRINT "<+> Scan forward ":COLOR 14,0:LOCATE 20,16:PRINT "PgUp":LOCATE 21,16:PRINT "+"
5035 LOCATE 19,50:COLOR 3,0:PRINT "<Home> - First record.":LOCATE 19,51:COLOR 14,0:PRINT "Home" :COLOR 3,0:LOCATE 20,50:PRINT "<End> - Last record.":LOCATE 20,51:COLOR 14,0:PRINT "End"
5036 COLOR 3,0:LOCATE 21,50:PRINT "<-> Scan backward":LOCATE 21,51:COLOR 14,0:PRINT "-":COLOR 3,0
5038 COLOR 3,0:LOCATE 22,15:PRINT "<=> Jump ":LOCATE 22,16:COLOR 14,0:PRINT "=":COLOR 3,0
5040 LOCATE 22,50:PRINT "<";:COLOR 14,0:PRINT "R";:COLOR 3,0:PRINT "> Return to Menu";:COLOR 14,0:PRINT "?":COLOR 3,0:RETURN
5100 IF ISET>=INEW THEN RETURN
5103 LOCATE 1,70:COLOR 16,7:PRINT " WORKING ":COLOR 3,0
5105 GET #1,ISET:LSET U$(15)=STR$(INEW):LSET U$(14)=U$(14):LSET U$(16)=U$(16)
5110 FOR J=1 TO 13:LSET U$(J)=U$(J):NEXT:PUT #1,ISET
5112 IF ISET=ISEND THEN 5125
5115 GET #1,ISEND:LSET U$(14)=STR$(INEW1+1):LSET U$(15)=U$(15):LSET U$(16)=U$(16)
5120 FOR J=1 TO 13:LSET U$(J)=U$(J):NEXT:PUT #1,ISEND
5125 GET #1,INEW:LSET U$(14)=STR$(ISET):LSET U$(15)=U$(15):LSET U$(16)=U$(16)
5130 FOR J=1 TO 13:LSET U$(J)=U$(J):NEXT:PUT #1,INEW
5135 FOR J=3 TO 13:LSET U$(J)="":NEXT
5140 NMID=(INT(INEW/2+0.5)):LSET U$(14)=STR$(INEW):LSET U$(15)=STR$(NMID):LSET U$(16)=STR$(ISET)
5145 LSET U$(1)=DATE$:LSET U$(2)=TIME$
5150 PUT #1,INEW+1:RETURN
5400 COLOR 14,0:LOCATE 3,15:PRINT SPACE$(50):LOCATE 3,15:PRINT MID$(V$(13),5,VAL(V$(13)));MID$(V$(1),5,VAL(V$(1)));" ";MID$(V$(2),5,VAL(V$(2)))
5410 FOR J= 3 TO 8:K=W(J):JJ=J+1:LOCATE JJ,15:PRINT MID$(V$(K),5,VAL(V$(K)));SPACE$(30):NEXT
5420 REM
5440 LOCATE 10,15:PRINT SPACE$(64):PRINT SPACE$(80):LOCATE 10,15:PRINT MID$(V$(9),5,VAL(V$(9))):RETURN
6000 ON KEY(8) GOSUB 4000:KEY(8) ON:ON KEY(7) GOSUB 20000:KEY(7) ON:ON KEY(9) GOSUB 960:KEY(9) ON
6010 ON KEY(1) GOSUB 420:ON KEY(2) GOSUB 402:KEY(1) ON:KEY(2) ON:ON KEY(3) GOSUB 400:KEY(3) ON:ON KEY(4) GOSUB 405:KEY(4) ON:ON KEY(5) GOSUB 410:ON KEY(6) GOSUB 415:KEY(6) ON:KEY(5) ON
6020 RETURN
6100 CLS:PRINT "TRANSFER RECORDS FROM ";:COLOR 1,3:PRINT FILE$;:COLOR 3,0:PRINT " TO . . . "
6101 DEF SEG =&H40:POKE &H17,&H40
6105 LOCATE 10,33:PRINT "Enter FILENAME":LOCATE 12,29:PRINT "[EXAMPLE:  B:ZIP-FIL]":LOCATE 14,30:PRINT "Default drive is ";F$:LOCATE 16,34:COLOR 14,0:GOSUB 35000:INPUT "FILENAME ... ",FILET$
6110 Z=INSTR(1,FILET$,":"):IF Z=0 THEN FILET$=F$+FILET$
6120 Z =INSTR(1,FILET$,"."):IF Z=0 THEN FILT$=FILET$:FILM2$=FILET$+".ISS":FILET$=FILET$+".DAT" ELSE FILM2$=LEFT$(FILET$,Z)+"ISS":FILT$=LEFT$(FILET$,Z-1)
6130 OPEN FILM2$ FOR INPUT AS #2
6135 COLOR 11,0:LOCATE 18,25:PRINT "Confirm Overwrite of ";:COLOR 12,0:PRINT FILET$:COLOR 3,0:LOCATE 20,35:PRINT "<Y> or <N>":COLOR 14,0:LOCATE 20,36:PRINT "Y":LOCATE 20,43:PRINT "N":COLOR 3,0
6140 Y$=INKEY$:IF Y$="" THEN 6140 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
6145 IF Y$="Y" THEN 6150 ELSE CLOSE #2:RETURN 333
6150 INPUT #2,Y$,NRED,INEW,FILET$,FILT$,PT2$,SNN$,LP2,LP2$,T2$,SND$,TN2,F2$:CLOSE #2
6160 OPEN FILET$ AS #1 LEN = 356
6165 DEF SEG =&H40:POKE &H17,&H0
6170 FIELD #1, 19 AS U$(1), 19 AS U$(2), 18 AS U$(13), 34 AS U$(12), 34 AS U$(3), 34 AS U$(4), 19 AS U$(5), 14 AS U$(6), 16 AS U$(7), 12 AS U$(8), 84 AS U$(9), 19 AS U$(10), 19 AS U$(11), 5 AS U$(14), 5 AS U$(15), 5 AS U$(16)
6180 RETURN
6200 CLOSE #2:OPEN FILM2$ FOR OUTPUT AS #2
6205 FOR I= 1 TO 36:ZL(I)=1:NEXT
6210 WRITE #2,Y$,NRED,INEW,FILET$,FILT$,PT2$,SNN$,LP2,LP2$,T2$,SND$,TN2,F$:FOR I= 1 TO 36:WRITE #2, ZL(I):NEXT :CLOSE #2
6220 OPEN FILM$ FOR OUTPUT AS #2
6230 WRITE #2,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:FOR I= 1 TO 36:WRITE #2, ZL(I):NEXT:CLOSE #2:RETURN
9000 CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;:COLOR 3,0:LOCATE 1,1:RETURN
10110 FOR SD%=1 TO 3:SOUND 1000*SD%,1:NEXT:FOR SD%=3 TO 1 STEP -1:SOUND 1000*SD%,1:NEXT:RETURN
20000 IF ISET<INEW THEN GOSUB 5100:GOSUB 6200
20010 KY=9:N$=STR$(NN):A$="ADTRANS":CHAIN "ADNAME",20000,ALL
30000 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 1,1
30005 IF ISET<INEW THEN GOSUB 5100:GOSUB 6200
30010 OPEN "AD.HLP" AS #2 LEN=78
30020 FIELD #2, 78 AS A$
30030 I=1:M=1
30040 GET #2,I
30090 IF LEFT$(A$,1) <> CHR$(15) THEN PRINT A$ :I=I+1:GOTO 30040 ELSE 30130
30130 COLOR 0,7:LOCATE 24,27:PRINT "HIT ANY KEY TO CONTINUE";:COLOR 3,0:GOSUB 35030
30140 Y$=INKEY$:IF Y$="" THEN 30140
30150 CLOSE #2:GOTO 960
35000 IF SND$ ="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
35010 IF SND$ = "N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
35030 IF SND$ = "N" THEN RETURN ELSE SOUND 523.25,2:SOUND 30000,2:SOUND 523.25,2:RETURN
35040 IF SND$ = "N" THEN RETURN ELSE BEEP:RETURN

ADWP.BAS

20 CLEAR:ON ERROR GOTO 9000:ARR$=CHR$(17)+CHR$(196)+CHR$(217)
50 DIM F(15),FA$(15),W$(15),F$(15)
126 GOSUB 3000:GOTO 160
130 CLS:GOSUB 140:LOCATE 12,20:PRINT  "PLEASE WAIT, RETURNING TO MAIN MENU":RUN"ADMAIN.BAS"
133 CLS:GOSUB 140:LOCATE 12,20:PRINT  "PLEASE WAIT, RETURNING TO PRINT MENU":RUN"ADPRT.BAS"
140 LOCATE 25,26:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS ";:COLOR 3,0:RETURN
155 CLS:COLOR 3,0:LOCATE  12,30:PRINT "QUIT?  <Y>es or <N>o?":COLOR 14,0:LOCATE 12,38:PRINT "Y":LOCATE 12,47:PRINT "N":COLOR 3,0
156 GOSUB 35020
157 Y$=INKEY$:IF Y$="" THEN 157 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
158 IF Y$="N" THEN 210
159 IF Y$="Y" THEN CLS:LOCATE 12,30:PRINT "GOODBYE":SYSTEM ELSE 156
160 O5$=CHR$(218)+CHR$(196)+CHR$(191):O6$=CHR$(179)+" "+CHR$(179):O7$=CHR$(192)+CHR$(196)+CHR$(217)
170 O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F2:WP ADDRESS menu"+O2$+"F6:PRINT menu"+O2$+"F8:NAMES"+O2$+"F4:NOTES"
200 REM              PRINT
210 GOSUB 5010
220 X3$="FILE = ":X4$=SPACE$(15):X5$="FUNCTION = ":X1$="PRINT "
230 CLS:LOCATE 25,29:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 1,1
240 COLOR 11,0:LOCATE 1,1:PRINT TAB(9);"* WordPerfect Mail Merge":
250 PRINT:COLOR 14,0
260 LOCATE 3,1:PRINT "Select DATA for FIELDS of information"
262 LOCATE 4,1:PRINT "KEY":COLOR 3,0:GOSUB 800
265 LOCATE 20,1:COLOR 0,7:PRINT "Hit any key to continue"
361 COLOR 3,0:LOCATE 15,40:PRINT "KEY  F1 = Return to MAIN menu"
362 COLOR 14,0:LOCATE 16,40:PRINT "     F2";:COLOR 3,0:PRINT " = Return to WP ADDRESS menu"
363 LOCATE 17,40:PRINT "     F6 = Return to PRINT menu"
364 LOCATE 18,40:PRINT "     F8 = KEYS used in NOTES"
365 LOCATE 19,40:PRINT "     F7 = List of names in Address Book"
366 LOCATE 20,40:PRINT "ALT F10 = QUIT"
367 GOSUB 840
369 LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date:  ";DATE$:LOCATE 3,62:PRINT "Time:  "
370 DEF SEG=0: POKE 1050, PEEK(1052)
371 Y9$=INKEY$:IF Y9$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 371 ELSE 375
375 IF LEN(Y9$)=2 THEN 460
380 GOTO 500
460 IF ASC(RIGHT$(Y9$,1))=68 THEN 30000
470 IF ASC(RIGHT$(Y9$,1))=113 THEN 155 ELSE 240
500 J=1
505 LOCATE 1,1:PRINT SPACE$(79):PRINT SPACE$(79):PRINT SPACE$(79):GOSUB 820:FOR I=1 TO 8:LOCATE 12+I,39:PRINT SPACE$(40):NEXT:LOCATE 20,1:PRINT SPACE$(40)
515 COLOR 10,0:LOCATE 3,27:PRINT "Select KEY for FIELD #:   ";:LOCATE 3,54:COLOR 14,0:PRINT J
517 LOCATE 4,1:PRINT "KEY":LOCATE 7,50:PRINT ARR$;" = EXIT"
518 COLOR 14,0:LOCATE 21,40:PRINT "KEY  F2 + ";ARR$;:COLOR 3,0:PRINT "  = Start Again  "
530 COLOR 10,0:LOCATE 17,5:PRINT "Select <KEY + ";ARR$;"> for FIELD ";:COLOR 14,0:PRINT "#";J;":  ";
531 INPUT " ",F$(J):IF LEN(F$(J))=0 THEN NJ=J-1:IF NJ=0 THEN GOSUB 35020:GOTO 500  ELSE GOTO 700
535 F$(J)=CHR$(ASC(F$(J)) AND &HDF):F(J)=ASC(F$(J))-64
540 IF (F(J)>8 OR F(J)<=0) THEN J=J-1:GOSUB 35030:GOTO 550
545 IF F(J)=7 THEN LOCATE 17,5:PRINT SPACE$(70):COLOR 10,0:LOCATE 17,5:PRINT "Input MESSAGE for FIELD #:  ";J:LOCATE 19,10:COLOR 14,0:LINE INPUT "ENTER:  ", FA$(J):LOCATE 17,5:PRINT SPACE$(74):LOCATE 19,10:PRINT SPACE$(70)
550 COLOR 3,0:J=J+1:LOCATE 17,40:PRINT SPACE$(7):LOCATE 3,54:COLOR 14,0:PRINT J:COLOR 3,0:GOTO 530
700 LOCATE 13,1:FOR I=1 TO 8:PRINT SPACE$(79):NEXT:GOSUB 830:LOCATE 3,53:PRINT SPACE$(10)
720 LOCATE 13,1:COLOR 14,0:FOR I= 1 TO NJ:PRINT "FIELD # ";I;" = ";F$(I);"  ";FA$(I):NEXT
725 PRINT :PRINT "ANY CORRECTIONS?  <Y>es or <N>o. "
740 Y$=INKEY$:IF Y$="" THEN 740 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
745 IF Y$= "Y" THEN 760
746 IF Y$="N" THEN 1540 ELSE GOSUB 35030:GOTO 740
760 J=1:IF NJ>=10 THEN CLS:GOSUB 820:GOSUB 800:GOSUB 840:GOTO 765
763 LOCATE 13,1:FOR I=1 TO 8:PRINT SPACE$(79):NEXT:PRINT SPACE$(35):PRINT SPACE$(35):COLOR 14,0:GOSUB 830
765 COLOR 10,0:LOCATE 3,27:PRINT "Select DATA for FIELD #:  "
767 LOCATE 7,50:COLOR 14,0:PRINT ARR$;" = no change"
770 FOR J= 1 TO NJ
771 COLOR 14,0:LOCATE 3,53:PRINT J:LOCATE 14,5:COLOR 10,0:PRINT "FIELD ";:COLOR 14,0:PRINT "# ";J;" = ";F$(J);"  ";FA$(J):COLOR 10,0:LOCATE 16,5:PRINT "NEW <KEY + ";ARR$;">:  ";:COLOR 14,0
772 INPUT " ", FF$:IF LEN(FF$)=0 THEN 780
773 FF$=CHR$(ASC(FF$) AND &HDF):FJ=ASC(FF$)-64
774 IF FJ>8 OR FJ<=0 THEN J=J-1:GOSUB 35030:GOTO 780
775 F$(J)=FF$
776 F(J)=FJ:IF F(J)=7 THEN LOCATE 17,5:PRINT "Input MESSAGE for FIELD #:  ";J:LOCATE 19,10:LINE INPUT "?", FA$(J)
778 IF F(J)<>7 THEN FA$(J)=""
780 LOCATE 16,20:PRINT SPACE$(8):COLOR 3,0:SP$=SPACE$(80):FOR K=1 TO 2:PRINT SP$:NEXT
785 NEXT
790 GOTO 700
800 COLOR 2,0:LOCATE 5,2:PRINT "A = First Name":LOCATE 6,2:PRINT "B = Last Name"
801 LOCATE 7,2:PRINT "C = Title of Courtesy & Last Name":LOCATE 8,2:PRINT "D = Title of Courtesy & Full Name"
802 LOCATE 9,2:PRINT "E = Title of Courtesy, Full Name, Street, City, State, Zipcode"
803 LOCATE 10,2:PRINT "F = Full Address, Title/Rank, and Company"
804 LOCATE 11,2:PRINT "G = Global Message (one line)":LOCATE 12,2:PRINT "H = Individual Message (one line)"
805 COLOR 10,0:LOCATE 5,2:PRINT "A":LOCATE 6,2:PRINT "B":LOCATE 7,2:PRINT "C":LOCATE 8,2:PRINT "D":LOCATE 9,2:PRINT "E":LOCATE 10,2:PRINT "F":LOCATE 11,2:PRINT "G":LOCATE 12,2:PRINT "H":RETURN
820 LOCATE 25,29:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";
830 COLOR 14,0:LOCATE 1,30:PRINT "* WordPerfect MAIL MERGE":RETURN
840 LOCATE 22,45:PRINT "* WordPerfect is a trademark of":LOCATE 23,47:PRINT "Satellite Software International.":RETURN
1540 REM
1545 GOSUB 5000
1550 GOSUB 830
1560 PRINT :PRINT " CHOOSE ONE OF THE FOLLOWING":PRINT :COLOR 14,0
1570 PRINT "   ";CHR$(186);"     ";O5$:PRINT "   ";CHR$(186);"     ";O6$:PRINT "   ";CHR$(25);"     ";O7$:COLOR 3,0
1580 PRINT :PRINT TAB(4);"N)OTE Code":PRINT TAB(4);"Z)IPCODE"
1590 COLOR 14,0:LOCATE 9,4:PRINT "N":LOCATE 10,4:PRINT "Z"
1600 COLOR 31,0:LOCATE 6,11:PRINT "?":COLOR 3,0
1602 COLOR 14,0:LOCATE 22,40:PRINT "KEY  F2";:COLOR 3,0:PRINT " = Return to WP ADDRESS LIST"
1605 DEF SEG=0: POKE 1050, PEEK(1052)
1610 Y$=INKEY$: IF Y$="" THEN 1610 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
1620 IF Y$="N" THEN 1800
1630 IF Y$="Z" THEN 1660 ELSE 1605
1660 GOSUB 5000
1670 PRINT "PRINT ... ZIPCODE":COLOR 12,0:LOCATE 5,32:PRINT "ENTER:  ZIPCODE & ";ARR$:LOCATE 6,8:COLOR 3,0:PRINT "Any number of digits and always start from the left most digit)"
1680 LOCATE 7,39:PRINT "OR":COLOR 12,0:LOCATE 8,32:PRINT "'!' to print all"
1690 COLOR 3,0:LOCATE 9,39:PRINT "OR":LOCATE 10,31:PRINT ARR$;"  return to MENU":LOCATE 15,25:COLOR 14,0:INPUT "ZIPCode ... ",Z$:KK=7:X2$=" ZIPCODE "
1700 GOTO 1840
1800 GOSUB 5000
1810 PRINT "PRINT ... NOTE (Code)":COLOR 12,0:LOCATE 5,30:PRINT "ENTER:  NOTE (Code) & ";ARR$:COLOR 3,0:LOCATE 6,4:PRINT "(Any number of characters and always start from the left most character)"
1820 LOCATE 7,39:PRINT "OR":COLOR 12,0:LOCATE 8,32:PRINT "<!> to print all"
1830 COLOR 3,0:LOCATE 9,39:PRINT "OR":LOCATE 10,31:PRINT ARR$;"  return to MENU":LOCATE 15,25:COLOR 14,0:INPUT "NOTE (Code) ... ",Z$:KK=9:X2$=" NOTES"
1840 MM=LEN(Z$):IF MM=0 THEN 1540
1845 X3$="FILE = ":X4$=SPACE$(15):X5$="FUNCTION = ":X1$="PRINT "
1850 CLS:LOCATE 6,15:COLOR 12,0:PRINT "Enter complete FILESPEC.DAT for WordPerfect Mail Merge":COLOR 3,0:LOCATE 8,39:PRINT "OR":COLOR 12,0:LOCATE 10,30:PRINT ARR$;" for default file":COLOR 3,0:LOCATE 12,27:PRINT "[EXAMPLE:  B:ZIP-FIL.WS]
1851 FWP$=FIL$+".WP":LOCATE 14,30:PRINT "Default = ";:COLOR 12,0:PRINT FWP$
1852 LOCATE 18,27:COLOR 14,0:GOSUB 35000:INPUT "FILESPEC.DAT ... ",FILET$
1853 IF LEN(FILET$)=0 THEN FILET$=FWP$
1854 OPEN FILET$ FOR INPUT AS #3:GOTO 2500
1856 CLOSE #3:OPEN FILET$ FOR OUTPUT AS #3
1857 GOSUB 5000
1858 LOCATE 12,36:COLOR 16,7:PRINT "WORKING":COLOR 14,0:LOCATE 20,22:PRINT "KEY F2";:COLOR 3,0:PRINT " = Return to WP ADDRESS menu"
1859 GET #4,NN+1:I=VAL(V$(16)):IK=0:GOSUB 5010
1860 IF IK<NN THEN IK=IK+1
1865 IF FRE(1)<800 THEN CHAIN "adwp",1870,ALL
1870 GET #4,I
1875 IF Z$="!" THEN 1982
1880 IF Z$<>MID$(V$(KK),5,MM) THEN  2230
1982 FM=1
1985 FOR K=1 TO NJ
1990 FOR J= 1 TO 7 :A(J)=VAL(V$(J)):NEXT
1995 A(8)=VAL(V$(13)):A(9)=VAL(V$(12))
1996 W$(1)=MID$(V$(1),5,A(1))+" ":W$(2)=MID$(V$(2),5,A(2)):W$(3)=MID$(V$(13),5,A(8))+W$(1)+W$(2):WN=INSTR(1,W$(1)," "):W$(4)=LEFT$(W$(1),WN-1)
1998 ON F(K) GOTO 2000,2010,2020,2030,2100,2035,2150,2160
2000 PRINT #3, W$(4);CHR$(18);CHR$(10);:GOTO 2200
2010 PRINT #3, W$(2);CHR$(18);CHR$(10);:GOTO 2200
2020 PRINT #3, MID$(V$(13),5,A(8))+W$(2);CHR$(18);CHR$(10);:GOTO 2200
2030 PRINT #3, W$(3);CHR$(18);CHR$(10);:GOTO 2200
2035 PRINT #3, W$(3);CHR$(10);
2040 IF A(9) <> 0 THEN PRINT #3, MID$(V$(12),5,A(9));CHR$(10);
2050 IF A(3) <> 0 THEN PRINT #3, MID$(V$(3),5,A(3));CHR$(10);
2060 PRINT #3, MID$(V$(4),5,A(4));CHR$(10);
2070 PRINT #3, MID$(V$(5),5,A(5))+", "+MID$(V$(6),5,A(6))+"  "+MID$(V$(7),5,A(7));CHR$(18);CHR$(10);:GOTO 2200
2100 PRINT #3, W$(3);CHR$(10);
2110 PRINT #3, MID$(V$(4),5,A(4));CHR$(10);
2120 PRINT #3, MID$(V$(5),5,A(5))+", "+MID$(V$(6),5,A(6))+"  "+MID$(V$(7),5,A(7));CHR$(18);CHR$(10);:GOTO 2200
2150 PRINT #3, FA$(K);CHR$(18);CHR$(10);:GOTO 2200
2160 IF FM=1 THEN GOSUB 5000 ELSE LOCATE 10,5:PRINT SPACE$(69)
2165 LOCATE 5,5:PRINT W$(3)
2170 LOCATE 10,5:PRINT "INPUT MESSAGE #";FM;" FOR ";W$(4);":  ";:INPUT " ",FIA$:FM=FM+1
2175 PRINT #3, FIA$;CHR$(18);CHR$(10);
2200 NEXT
2210 PRINT #3, CHR$(5);CHR$(10);
2230 IF IK>=NN THEN 2240 ELSE I=VAL(V$(14)):GOTO 1860
2240 CLOSE
2245 CLS:LOCATE 12,38:COLOR 16,7:PRINT " DONE ":COLOR 0,7:GOSUB 35000:
2246 LOCATE 20,29:PRINT "Hit any key to continue":COLOR 3,0
2247 Y$=INKEY$:IF Y$="" THEN 2247
2250 GOTO 200
2500 DEF SEG=0: POKE 1050, PEEK(1052)
2510 COLOR 11,0:LOCATE 18,25:PRINT "Confirm Overwrite of ";:COLOR 12,0:PRINT FILET$:COLOR 3,0:LOCATE 20,35:PRINT "<Y> or <N>":COLOR 14,0:LOCATE 20,36:PRINT "Y":LOCATE 20,43:PRINT "N":COLOR 3,0
2515 GOSUB 35020
2520 Y$=INKEY$:IF Y$="" THEN 2520 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
2530 IF Y$="Y" THEN 1856
2540 IF Y$="N" THEN CLOSE #3:GOTO 1850 ELSE 2515
3000 OPEN "TEMPOR.TEM" FOR INPUT AS #1
3005 INPUT #1, FILE$,FILM$,FIL$:CLOSE #1
3010 OPEN FILM$ FOR INPUT AS #2
3015 INPUT #2,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:CLOSE #2:CLOSE #5
3020 DIM DQ$(12),A(14),V$(16):FOR I= 1 TO 12:READ DQ$(I):NEXT
3030 DATA JANUARY, FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
3040 OPEN FILE$ AS #4 LEN = 356
3050 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
3060 IF PT$="I" THEN OPEN "LPT1:" FOR OUTPUT AS #5:GOTO 3080
3070 OPEN "LPT2:" FOR OUTPUT AS #5
3080 FILN$=FIL$+"NTE"
3090 RETURN
4000 REM
4010 OPEN FILN$ FOR INPUT AS #2
4030 FOR I= 1 TO 20:INPUT #2, NKEY$(I),NOTE$(I):IF NKEY$(I)=CHR$(15) THEN 4035 ELSE NEXT
4035 NP=I-1:CLOSE #2
4040 GOSUB 5000
4050 LOCATE 1,1:PRINT "NOTES:  KEYS":LOCATE 1,30:COLOR 14,0:PRINT "KEYS       ";:COLOR 3,0:PRINT " DESCRIPTION":FOR I=1 TO NP:COLOR 14,0:LOCATE 4+I,30:PRINT NKEY$(I);:COLOR 3,0:LOCATE ,40:PRINT " = ";NOTE$(I):NEXT
4060 LOCATE 20,28:COLOR 0,7:PRINT "HIT ANY KEY TO CONTINUE":COLOR 3,0
4065 Y$=INKEY$:IF Y$="" THEN 4065 ELSE RETURN 160
5000 CLS:LOCATE 25,1:COLOR 0,7:PRINT O1$;:COLOR 3,0:LOCATE 1,1:RETURN
5010 ON KEY(1) GOSUB 130:ON KEY(6) GOSUB 133:KEY(6) ON:KEY(1) ON:ON KEY(8) GOSUB 4000:KEY(8) ON:ON KEY(7) GOSUB 20000:KEY(7) ON:ON KEY(2) GOSUB 210:KEY(2) ON:RETURN
9000 IF ERL = 1854 THEN 1856
9010 IF ERR = 27 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"PRINTER ERROR ":COLOR 7,1:LOCATE 1,1
9030 IF ERR = 27 THEN PRINT "CHECK THE PRINTER":FOR I= 1 TO 500:NEXT I:RESUME 230
9040 IF ERR = 53 THEN CLS:LOCATE 10,15:PRINT "File containing KEYS used in NOTES does not exist.":LOCATE 12,22:PRINT "Return to EDIT program to create file." :LOCATE 18,30:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030:Y$=INPUT$(1):RESUME 160
9050 IF ERR = 61 THEN LOCATE 10,1:PRINT "DISK FULL.  LOAD FORMATTED DISK AND TYPE <CONT> AND RETURN ":COLOR 14,0:LOCATE 10,43:PRINT "CONT":BEEP:COLOR 3,0:STOP
9060 RESUME 160
20000 A$="ADWP":CHAIN "ADNAME",20000,ALL
20210 Y$=INKEY$:IF Y$="" THEN 20210 ELSE GOSUB 5000:RETURN
30000 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 1,1
30010 OPEN "ADMAIL.HLP" AS #2 LEN=78
30020 FIELD #2, 78 AS A$
30030 I=1:M=1
30040 GET #2,I
30090 IF LEFT$(A$,1) <> CHR$(15) THEN PRINT A$ :I=I+1:GOTO 30040 ELSE 30130
30130 LOCATE 24,27:COLOR 0,7:PRINT "HIT ANY KEY TO CONTINUE";:COLOR 3,0:GOSUB 35030
30140 Y$=INKEY$:IF Y$="" THEN 30140
30150 CLOSE #2:GOTO 200
35000 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
35010 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
35020 IF SND$="N" THEN RETURN ELSE BEEP:RETURN
35030 IF SND$="N" THEN RETURN ELSE SOUND 750,2:SOUND 30000,2:SOUND 750,2:RETURN

ADWS.BAS

20 ON ERROR GOTO 9000:ARR$=CHR$(17)+CHR$(196)+CHR$(217)
50 DIM F(20),FA$(20),W$(20),F$(20)
126 GOSUB 3000:GOTO 160
130 CLS:GOSUB 140:LOCATE 12,20:PRINT  "PLEASE WAIT, RETURNING TO MAIN MENU":RUN"ADMAIN.BAS"
133 CLS:GOSUB 140:LOCATE 12,20:PRINT  "PLEASE WAIT, RETURNING TO PRINT MENU":RUN"ADPRT.BAS"
140 LOCATE 25,26:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS ";:COLOR 3,0:RETURN
155 CLS:COLOR 3,0:LOCATE  12,30:PRINT "QUIT?  <Y>es or <N>o?":COLOR 14,0:LOCATE 12,38:PRINT "Y":LOCATE 12,47:PRINT "N":COLOR 3,0
156 GOSUB 35020
157 Y$=INKEY$:IF Y$="" THEN 157 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
158 IF Y$="N" THEN 210
159 IF Y$="Y" THEN CLS:LOCATE 12,30:PRINT "GOODBYE":SYSTEM ELSE 156
160 O5$=CHR$(218)+CHR$(196)+CHR$(191):O6$=CHR$(179)+" "+CHR$(179):O7$=CHR$(192)+CHR$(196)+CHR$(217)
170 O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F2:WS ADDRESS menu"+O2$+"F6:PRINT menu"+O2$+"F8:NAMES"+O2$+"F4:NOTES"
200 REM              PRINT
210 GOSUB 5010
220 X3$="FILE = ":X4$=SPACE$(15):X5$="FUNCTION = ":X1$="PRINT "
230 CLS:LOCATE 25,29:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 1,1
240 COLOR 10,0:LOCATE 1,1:PRINT TAB(9);"* WordStar MailMerge":
250 PRINT:COLOR 14,0
260 LOCATE 3,1:PRINT "Select DATA for <Variable Names>"
262 LOCATE 4,1:PRINT "KEY":COLOR 3,0:GOSUB 800
265 LOCATE 20,1:COLOR 0,7:PRINT "Hit any key to continue"
361 COLOR 3,0:LOCATE 15,40:PRINT "KEY  F1 = Return to MAIN menu"
362 COLOR 14,0:LOCATE 16,40:PRINT "     F2";:COLOR 3,0:PRINT " = Return to WS ADDRESS menu"
363 LOCATE 17,40:PRINT "     F6 = Return to PRINT menu"
364 LOCATE 18,40:PRINT "     F8 = KEYS used in NOTES"
365 LOCATE 19,40:PRINT "     F7 = List of names in Address Book"
366 LOCATE 20,40:PRINT "ALT F10 = QUIT"
367 GOSUB 840
369 LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date:  ";DATE$:LOCATE 3,62:PRINT "Time:  "
370 DEF SEG=0: POKE 1050, PEEK(1052)
371 Y9$=INKEY$:IF Y9$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 371 ELSE 375
375 IF LEN(Y9$)=2 THEN 460
380 GOTO 500
460 IF ASC(RIGHT$(Y9$,1))=68 THEN 30000
470 IF ASC(RIGHT$(Y9$,1))=113 THEN 155 ELSE 240
500 J=1
505 LOCATE 1,1:PRINT SPACE$(79):PRINT SPACE$(79):PRINT SPACE$(79):GOSUB 820:FOR I=1 TO 8:LOCATE 12+I,39:PRINT SPACE$(40):NEXT:LOCATE 20,1:PRINT SPACE$(40)
515 LOCATE 3,25:PRINT "Select KEY for Variable Name #:  ";:LOCATE 3,58:COLOR 10,0:PRINT J
517 COLOR 14,0:LOCATE 4,1:PRINT "KEY":LOCATE 11,36:PRINT ARR$;" = EXIT"
518 COLOR 14,0:LOCATE 22,40:PRINT "KEY  F2 + ";ARR$;:COLOR 3,0:PRINT "  = Start Again  "
519 GOSUB 840
530 COLOR 10,0:LOCATE 17,1:PRINT "Select <KEY + ";ARR$;"> for Variable Name ";:COLOR 14,0:PRINT "#";J;":  ";:COLOR 14,0
531 INPUT " ",F$(J):IF LEN(F$(J))=0 THEN NJ=J-1:IF NJ=0 THEN GOSUB 35020:GOTO 500  ELSE GOTO 700
535 F$(J)=CHR$(ASC(F$(J)) AND &HDF):F(J)=ASC(F$(J))-64
540 IF F(J)>10 OR F(J)<=0 THEN J=J-1:GOSUB 35030:GOTO 550
545 IF F(J)=9 THEN LOCATE 17,1:COLOR 10,0:PRINT "Input MESSAGE for Variable Name ";:COLOR 14,0:PRINT "#";J;":";SPACE$(20):LOCATE 19,10:LINE INPUT "ENTER:  ", FA$(J):LOCATE 17,1:PRINT SPACE$(80):LOCATE 19,10:PRINT SPACE$(70)
550 COLOR 3,0:J=J+1:LOCATE 17,45:PRINT SPACE$(7):LOCATE 3,58:COLOR 14,0:PRINT J:COLOR 3,0:GOTO 530
700 LOCATE 2,1:FOR I=1 TO 2:PRINT SPACE$(79):NEXT:GOSUB 830:LOCATE 10,1:FOR I=1 TO 12:PRINT SPACE$(79):NEXT
720 LOCATE 10,1:COLOR 14,0:FOR I= 1 TO NJ:PRINT "Variable Name # ";I;" = ";F$(I); "   ";FA$(I):NEXT
725 PRINT :PRINT "ANY CORRECTIONS?  <Y>es or <N>o. "
740 Y$=INKEY$:IF Y$="" THEN 740 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
745 IF Y$= "Y" THEN 760
746 IF Y$="N" THEN 1540 ELSE GOSUB 35030:GOTO 740
760 J=1:IF NJ>=11 THEN CLS:GOSUB 800:GOSUB 820:GOSUB 840:GOTO 765
763 LOCATE 2,1:FOR I=1 TO 2:PRINT SPACE$(79):NEXT:GOSUB 830:LOCATE 10,1:FOR I=1 TO 12:PRINT SPACE$(79):NEXT
765 LOCATE 3,25:PRINT "Select DATA for Variable Name  #:  "
767 LOCATE 12,32:COLOR 14,0:PRINT ARR$;" = no change"
768 LOCATE 22,40:PRINT "KEY  F2 + ";ARR$;:COLOR 3,0:PRINT "  = Start Again  "
770 FOR J= 1 TO NJ
771 COLOR 14,0:LOCATE 3,57:PRINT J:LOCATE 14,5:PRINT "FIELD # ";J;" = ";F$(J);"  ";FA$(J):LOCATE 16,5:PRINT "NEW <KEY + ";ARR$;">:  ";
772 INPUT " ", FF$:IF LEN(FF$)=0 THEN 780
773 F$(J)=CHR$(ASC(FF$) AND &HDF):FJ=ASC(F$(J))-64
774 IF FJ>10 OR FJ<=0 THEN J=J-1:GOSUB 35030:GOTO 780
776 F(J)=FJ:IF F(J)=9 THEN LOCATE 17,5:PRINT "Input MESSAGE for Variable Name #:  ";J:LOCATE 19,10:LINE INPUT "?", FA$(J)
778 IF F(J)<>9 THEN FA$(J)=""
780 LOCATE 16,20:PRINT SPACE$(8):COLOR 3,0:SP$=SPACE$(80):FOR K=1 TO 2:PRINT SP$:NEXT
785 NEXT
790 GOTO 700
800 COLOR 2,0:LOCATE 5,1:PRINT "A = First Name":LOCATE 5,40:PRINT "B = Last Name"
801 LOCATE 6,1:PRINT "C = Title of Courtesy & Last Name":LOCATE 6,40:PRINT "D = Title of Courtesy & Full Name"
802 LOCATE 7,1:PRINT "E = Title or Rank":LOCATE 7,40:PRINT "F = Company"
803 LOCATE 8,1:PRINT "G = Street Address":LOCATE 8,40:PRINT "H = City, State, Zipcode"
804 LOCATE 9,1:PRINT "I = Global Message (one line)":LOCATE 9,40:PRINT "J = IndiVidual Message (one line)":COLOR 10,0
805 LOCATE 5,1:PRINT "A":LOCATE 5,40:PRINT "B":LOCATE 6,1:PRINT "C":LOCATE 6,40:PRINT "D":LOCATE 7,1:PRINT "E":LOCATE 7,40:PRINT "F":LOCATE 8,1:PRINT "G":LOCATE 8,40:PRINT "H":LOCATE 9,1:PRINT "I":LOCATE 9,40:PRINT "J":COLOR 3,0:RETURN
820 LOCATE 25,29:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";
830 COLOR 14,0:LOCATE 1,30:PRINT "* WordStar MailMerge":COLOR 3,0:RETURN
840 LOCATE 23,5:PRINT "* WordStar and MailMerge are trademarks of MicroPro International Corp.":RETURN
1540 REM
1545 GOSUB 5000
1550 GOSUB 830
1560 PRINT :PRINT " CHOOSE ONE OF THE FOLLOWING":PRINT :COLOR 14,0
1570 PRINT "   ";CHR$(186);"     ";O5$:PRINT "   ";CHR$(186);"     ";O6$:PRINT "   ";CHR$(25);"     ";O7$:COLOR 3,0
1580 PRINT :PRINT TAB(4);"N)OTE Code":PRINT TAB(4);"Z)IPCODE"
1590 COLOR 14,0:LOCATE 9,4:PRINT "N":LOCATE 10,4:PRINT "Z"
1600 COLOR 31,0:LOCATE 6,11:PRINT "?":COLOR 3,0
1602 COLOR 14,0:LOCATE 22,40:PRINT "KEY  F2";:COLOR 3,0:PRINT " = Return to WS ADDRESS LIST"
1605 DEF SEG=0: POKE 1050, PEEK(1052)
1610 Y$=INKEY$: IF Y$="" THEN 1610 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
1620 IF Y$="N" THEN 1800
1630 IF Y$="Z" THEN 1660 ELSE 1605
1660 GOSUB 5000
1670 PRINT "PRINT ... ZIPCODE":COLOR 12,0:LOCATE 5,32:PRINT "ENTER:  ZIPCODE & ";ARR$:LOCATE 6,8:COLOR 3,0:PRINT "Any number of digits and always start from the left most digit)"
1680 LOCATE 7,39:PRINT "OR":COLOR 12,0:LOCATE 8,32:PRINT "'!' to print all"
1690 COLOR 3,0:LOCATE 9,39:PRINT "OR":LOCATE 10,31:PRINT ARR$;"  return to MENU":LOCATE 15,25:COLOR 14,0:INPUT "ZIPCode ... ",Z$:KK=7:X2$=" ZIPCODE "
1700 GOTO 1840
1800 GOSUB 5000
1810 PRINT "PRINT ... NOTE (Code)":COLOR 12,0:LOCATE 5,30:PRINT "ENTER:  NOTE (Code) & ";ARR$:COLOR 3,0:LOCATE 6,4:PRINT "(Any number of characters and always start from the left most character)"
1820 LOCATE 7,39:PRINT "OR":COLOR 12,0:LOCATE 8,32:PRINT "<!> to print all"
1830 COLOR 3,0:LOCATE 9,39:PRINT "OR":LOCATE 10,28:PRINT ARR$;"  return to MENU":LOCATE 15,25:COLOR 14,0:INPUT "NOTE (Code) ... ",Z$:KK=9:X2$=" NOTES"
1840 MM=LEN(Z$):IF MM=0 THEN 1540
1845 X3$="FILE = ":X4$=SPACE$(15):X5$="FUNCTION = ":X1$="PRINT "
1850 CLS:LOCATE 6,18:COLOR 12,0:PRINT "Enter complete FILESPEC.DAT for WordStar MailMerge":COLOR 3,0:LOCATE 8,39:PRINT "OR":COLOR 12,0:LOCATE 10,30:PRINT ARR$;" for default file":COLOR 3,0:LOCATE 12,27:PRINT "[EXAMPLE:  B:ZIP-FIL.WS]
1851 FWP$=FIL$+".WS":LOCATE 14,30:PRINT "Default = ";:COLOR 12,0:PRINT FWP$
1852 LOCATE 18,27:COLOR 14,0:GOSUB 35000:INPUT "FILESPEC.DAT ... ",FILET$
1853 IF LEN(FILET$)=0 THEN FILET$=FWP$
1854 OPEN FILET$ FOR INPUT AS #3:GOTO 2500
1856 CLOSE #3:OPEN FILET$ FOR OUTPUT AS #3
1857 GOSUB 5000
1858 LOCATE 12,36:COLOR 16,7:PRINT "WORKING":COLOR 14,0:LOCATE 20,22:PRINT "KEY F2";:COLOR 3,0:PRINT " = Return to WS ADDRESS menu"
1859 GET #4,NN+1:I=VAL(V$(16)):IK=0:GOSUB 5010
1860 IF IK<NN THEN IK=IK+1
1865 IF FRE(1)<1000! THEN CHAIN "adws",1870,ALL
1870 GET #4,I
1875 IF Z$="!" THEN 1982
1880 IF Z$<>MID$(V$(KK),5,MM) THEN  2230
1982 FM=1
1985 FOR K=1 TO NJ
1990 FOR J= 1 TO 7 :A(J)=VAL(V$(J)):NEXT
1995 A(8)=VAL(V$(13)):A(9)=VAL(V$(12))
1996 W$(1)=MID$(V$(1),5,A(1))+" ":W$(2)=MID$(V$(2),5,A(2)):W$(3)=MID$(V$(13),5,A(8))+W$(1)+W$(2):WN=INSTR(1,W$(1)," "):W$(4)=LEFT$(W$(1),WN-1)
1998 ON F(K) GOTO 2000,2010,2020,2030,2040,2050,2060,2070,2100,2110
2000 WRITE #3, W$(4):GOTO 2200
2010 WRITE #3, W$(2):GOTO 2200
2020 WRITE #3, MID$(V$(13),5,A(8))+W$(2):GOTO 2200
2030 WRITE #3, W$(3):GOTO 2200
2040 WRITE #3, MID$(V$(12),5,A(9)):GOTO 2200
2050 WRITE #3, MID$(V$(3),5,A(3)):GOTO 2200
2060 WRITE #3, MID$(V$(4),5,A(4)):GOTO 2200
2070 WRITE #3, MID$(V$(5),5,A(5))+", "+MID$(V$(6),5,A(6))+"  "+MID$(V$(7),5,A(7)):GOTO 2200
2100 WRITE #3, FA$(K):GOTO 2200
2110 IF FM=1 THEN GOSUB 5000 ELSE LOCATE 10,5:PRINT SPACE$(69)
2165 LOCATE 5,5:PRINT W$(3)
2170 LOCATE 10,5:PRINT "INPUT MESSAGE #";FM;" FOR ";W$(4);":  ";:INPUT " ",FIA$:FM=FM+1
2175 WRITE #3, FIA$
2200 NEXT
2210 PRINT #3,
2230 IF IK>=NN THEN 2245 ELSE I=VAL(V$(14)):GOTO 1860
2245 CLS:LOCATE 12,38:COLOR 16,7:PRINT " DONE ":COLOR 0,7:GOSUB 35000:
2246 LOCATE 20,29:PRINT "Hit any key to continue":COLOR 3,0
2247 Y$=INKEY$:IF Y$="" THEN 2247
2250 GOTO 200
2500 DEF SEG=0: POKE 1050, PEEK(1052)
2510 COLOR 11,0:LOCATE 18,25:PRINT "Confirm Overwrite of ";:COLOR 12,0:PRINT FILET$:COLOR 3,0:LOCATE 20,35:PRINT "<Y> or <N>":COLOR 14,0:LOCATE 20,36:PRINT "Y":LOCATE 20,43:PRINT "N":COLOR 3,0
2515 GOSUB 35020
2520 Y$=INKEY$:IF Y$="" THEN 2520 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
2530 IF Y$="Y" THEN 1856
2540 IF Y$="N" THEN CLOSE #3:GOTO 1850 ELSE 2515
3000 OPEN "TEMPOR.TEM" FOR INPUT AS #1
3005 INPUT #1, FILE$,FILM$,FIL$:CLOSE #1
3010 OPEN FILM$ FOR INPUT AS #2
3015 INPUT #2,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:CLOSE #2:CLOSE #5
3020 DIM DQ$(12),A(14),V$(16):FOR I= 1 TO 12:READ DQ$(I):NEXT
3030 DATA JANUARY, FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
3040 OPEN FILE$ AS #4 LEN = 356
3050 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
3060 IF PT$="I" THEN OPEN "LPT1:" FOR OUTPUT AS #5:GOTO 3080
3070 OPEN "LPT2:" FOR OUTPUT AS #5
3080 FILN$=FIL$+"NTE"
3090 RETURN
4000 REM
4010 OPEN FILN$ FOR INPUT AS #2
4030 FOR I= 1 TO 20:INPUT #2, NKEY$(I),NOTE$(I):IF NKEY$(I)=CHR$(15) THEN 4035 ELSE NEXT
4035 NP=I-1:CLOSE #2
4040 GOSUB 5000
4050 LOCATE 1,1:PRINT "NOTES:  KEYS":LOCATE 1,30:COLOR 14,0:PRINT "KEYS       ";:COLOR 3,0:PRINT " DESCRIPTION":FOR I=1 TO NP:COLOR 14,0:LOCATE 4+I,30:PRINT NKEY$(I);:COLOR 3,0:LOCATE ,40:PRINT " = ";NOTE$(I):NEXT
4060 LOCATE 20,28:COLOR 0,7:PRINT "HIT ANY KEY TO CONTINUE":COLOR 3,0
4065 Y$=INKEY$:IF Y$="" THEN 4065 ELSE RETURN 160
5000 CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;:COLOR 3,0:LOCATE 1,1:RETURN
5010 ON KEY(1) GOSUB 130:ON KEY(6) GOSUB 133:KEY(6) ON:KEY(1) ON:ON KEY(8) GOSUB 4000:KEY(8) ON:ON KEY(7) GOSUB 20000:KEY(7) ON:ON KEY(2) GOSUB 210:KEY(2) ON:RETURN
9000 IF ERL= 1854 THEN 1856
9010 IF ERR = 27 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"PRINTER ERROR ":COLOR 7,1:LOCATE 1,1
9030 IF ERR = 27 THEN PRINT "CHECK THE PRINTER":FOR I= 1 TO 500:NEXT I:RESUME 230
9040 IF ERR = 53 THEN CLS:LOCATE 10,15:PRINT "File containing KEYS used in NOTES does not exist.":LOCATE 12,22:PRINT "Return to EDIT program to create file." :LOCATE 18,30:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030:Y$=INPUT$(1):RESUME 160
9050 IF ERR = 61 THEN LOCATE 10,1:PRINT "DISK FULL.  LOAD FORMATTED DISK AND TYPE <CONT> AND RETURN ":COLOR 14,0:LOCATE 10,43:PRINT "CONT":BEEP:COLOR 3,0:STOP
9060 RESUME 160
20000 A$="ADWS":CHAIN "ADNAME",20000,ALL
20210 Y$=INKEY$:IF Y$="" THEN 20210 ELSE GOSUB 5000:RETURN
30000 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 1,1
30010 OPEN "ADMAIL.HLP" AS #2 LEN=78
30020 FIELD #2, 78 AS A$
30030 I=1:M=1
30040 GET #2,I
30090 IF LEFT$(A$,1) <> CHR$(15) THEN PRINT A$ :I=I+1:GOTO 30040 ELSE 30130
30130 LOCATE 24,27:COLOR 0,7:PRINT "HIT ANY KEY TO CONTINUE";:COLOR 3,0:GOSUB 35030
30140 Y$=INKEY$:IF Y$="" THEN 30140
30150 CLOSE #2:GOTO 200
35000 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
35010 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
35020 IF SND$="N" THEN RETURN ELSE BEEP:RETURN
35030 IF SND$="N" THEN RETURN ELSE SOUND 750,2:SOUND 30000,2:SOUND 750,2:RETURN

ADZIP.BAS

100 CLEAR:ON ERROR GOTO 9000
126 GOSUB 5010:GOSUB 3000:GOTO 1660
155 CLS:COLOR 3,0:LOCATE  12,30:PRINT "QUIT?  <Y>es or <N>o?":COLOR 14,0:LOCATE 12,38:PRINT "Y":LOCATE 12,47:PRINT "N":COLOR 3,0
156 GOSUB 35020
157 Y$=INKEY$:IF Y$="" THEN 157 ELSE Y$=CHR$(ASC(Y$) AND &HDF)
158 IF Y$="N" THEN 5025
159 IF Y$="Y" THEN CLS:LOCATE 12,30:PRINT "GOODBYE":SYSTEM ELSE 156
200 REM              PRINT
600 LOCATE 21,25:COLOR 0,7:PRINT "TURN ON PRINTER AND HIT ANY KEY":COLOR 3,0:GOSUB 35010
610 Y$=INKEY$: IF Y$="" THEN 610
620 LOCATE 21,25:PRINT SPACE$(40):LOCATE 21,37:COLOR 16,7:PRINT "WORKING"
630 LOCATE 21,23:COLOR 14,0:PRINT SPACE$(4);"Hit <Esc> to stop printing";SPACE$(10):COLOR 3,0:RETURN
1000 REM
1080 PRINT #5,
1085 PRINT #5,  SPACE$(TN);T1$
1090 B=VAL(LEFT$(DATE$,2))
1095 PRINT #5, :PRINT #5,  SPACE$(30);DQ$(B);" ";MID$(DATE$,4,2);", 19";RIGHT$(DATE$,2):PRINT #5,
1100 PRINT #5,
1105 MP =10
1110 RETURN
1660 IF AG=1 THEN 1690 ELSE GOSUB 5000
1670 PRINT "PRINT ... ZIPCODE":LOCATE 5,32:PRINT "ENTER:  ZIPCODE & ";ARR$:LOCATE 6,8:PRINT "(Any number of digits and always start from the left most digit)"
1680 LOCATE 7,39:PRINT "OR":LOCATE 8,32:PRINT "'!' to print all":GOTO 1710
1690 LOCATE 15,25:PRINT SPACE$(50):LOCATE 22,35:COLOR 0,7:PRINT "ENTER AGAIN":LOCATE 23,28:PRINT Z$;" not in ";FILE$:COLOR 3,0:AG=0
1710 LOCATE 15,25:COLOR 14,0:INPUT "ZIPCode ... ",Z$:KK=7:X2$=" ZIPCODE "
1840 MM=LEN(Z$):IF MM=0 THEN 5025
1841 LOCATE 22,35:PRINT SPACE$(15):LOCATE 23,28:PRINT SPACE$(30):LOCATE 22,37:COLOR 16,7:PRINT "WORKING":COLOR 3,0
1845 X3$="FILE = ":X4$=SPACE$(15):X5$="FUNCTION = ":X1$="PRINT "
1850 JJ=0:GET #4,NN+1:I=VAL(V$(16)):IK=0
1855 IF IK=NN THEN 1920 ELSE IK=IK+1
1860 GET #4,I
1870 IF Z$="!" THEN 1890
1875 GET #4,I
1880 IF Z$<>MID$(V$(KK),5,MM) THEN  1910
1890 JJ=JJ+1
1900 D%(JJ)=I
1910 IF IK>=NN THEN 1920 ELSE I=VAL(V$(14)):GOTO 1855
1920 IF JJ=0 THEN GOSUB 35020:AG=1:GOTO 1660 ELSE 2500
2000 COLOR 10,0:LOCATE 21,24:PRINT "Hit any key to continue PRINTING":GOSUB 35010
2010 LOCATE 23,26:COLOR 10,0:PRINT "Hit KEY F6 - Return to Menu.":COLOR 3,0
2020 Y$=INKEY$: IF Y$="" THEN 2020 ELSE GOSUB 630:LOCATE 23,26:PRINT SPACE$(35):RETURN
2500 REM
2510 GOSUB 600:GOSUB 1000
2515 MP1=LP1*6-9:K=1
2520 I=1
2530 FOR L=1 TO 2:LL=I+L-1
2540 GET #4,D%(LL)
2550 FOR J= 1 TO 7 :A(J,L)=VAL(V$(J)):NEXT
2560 A(8,L)=VAL(V$(13)):A(9,L)=VAL(V$(12)):A2=A(2,L)
2570 W$(6,L)=MID$(V$(5),5,A(5,L))+", "+MID$(V$(6),5,A(6,L))+"  "+MID$(V$(7),5,A(7,L))
2580 IF T$="N" THEN A9=39-A(2,L):GOTO 2600
2590 A9=39-A(8,L)-A(2,L)
2600 IF A9<A(1,L) THEN A(1,L)=A9
2610 A(5,L)=36-A(5,L)-A(6,L)-A(7,L)
2620 IF T$="N" THEN W$(1,L)=MID$(V$(1),5,A(1,L))+" "+MID$(V$(2),5,A(2,L)):GOTO 2640
2630 W$(1,L)=MID$(V$(13),5,A(8,L))+MID$(V$(1),5,A(1,L))+" "+MID$(V$(2),5,A(2,L))
2640 IF A(9,L) <> 0 THEN W$(2,L)=MID$(V$(12),5,30) :GOTO 2670
2650 IF A(9,L) = 0 AND A(3,L)=0 THEN W$(2,L)=MID$(V$(4),5,30):W$(4,L)="":W$(5,L)="":W$(3,L)=W$(6,L):A(2,L)=10:A(3,L)=A(5,L):A(4,L)=40:A(5,L)=40:GOTO 2690
2660 IF A(9,L) = 0 AND A(3,L)<>0 THEN W$(2,L)=MID$(V$(3),5,30):W$(3,L)=MID$(V$(4),5,30):W$(4,L)=W$(6,L):W$(5,L)="":A(2,L)=10:A(3,L)=A(2,L):A(4,L)=A(5,L):A(5,L)=40:GOTO 2690
2670 IF A(3,L)<>0 THEN W$(3,L)=MID$(V$(3),5,30):W$(4,L)=MID$(V$(4),5,30):A(2,L)=10:W$(5,L)=W$(6,L):A(3,L)=10:A(4,L)=10:GOTO 2690
2680 IF A(9,L) <>0 AND A(3,L)=0 THEN W$(3,L)=MID$(V$(4),5,30):W$(4,L)=W$(6,L):W$(5,L)="":A(2,L)=10:A(3,L)=A(2,L):A(4,L)=A(5,L):A(5,L)=40:GOTO 2690
2690 IF T$="N" THEN A(1,L)=39-A(1,L)-A2 ELSE A(1,L)=39-A(1,L)-A2-A(8,L)
2700 IF I =JJ THEN 2880
2710 IF A(1,L)<=0 THEN A(1,L)=10
2730 NEXT
2732 IF MP<MP1 THEN 2740 ELSE K=K+1
2733 IF LP$="N" OR LP$="n" THEN 2736 ELSE LOCATE 24,20:PRINT "Advance paper and hit any key to continue";:GOSUB 35010
2734 Y$=INKEY$:IF Y$="" THEN 2734 ELSE LOCATE 24,20:PRINT SPACE$(45);
2735 PRINT #5,   TAB(35);"-";K;" -":PRINT #5, :PRINT #5,  :MP=6:GOTO 2740
2736 PRINT #5, CHR$(12):PRINT #5,:PRINT #5,  TAB(35);"- ";K;" -":PRINT #5, :PRINT #5, :MP=5
2740 IF I<>NN THEN 2750 ELSE IF N1 =0 THEN 2750 ELSE 2880
2750 FOR K1= 1 TO 3:PRINT #5, TAB(3);W$(K1,1);SPACE$(A(K1,1));W$(K1,2):NEXT
2760 IF W$(4,1) ="" AND W$(4,2)=""THEN 2770 ELSE PRINT #5, TAB(3);W$(4,1);SPACE$(A(4,1));W$(4,2):MP=MP+1
2770 IF W$(5,1)="" AND W$(5,2)="" THEN 2780 ELSE PRINT #5, TAB(3);W$(5,1);SPACE$(A(5,1));W$(5,2):MP=MP+1
2780 MP=MP+5
2800 PRINT #5,:PRINT #5,
2805 Y$=INKEY$:IF Y$=CHR$(27) THEN GOSUB 2000
2810 IF I+1=>JJ OR I=0 THEN 2860 ELSE I=I+2
2820 IF FRE(1)>1100 THEN 2530
2830 CHAIN "ADMAIL.BAS",2530,ALL
2840 GOSUB 5010
2850 GOTO 2530
2860 CLOSE #4
2870 GOTO 5025
2880 FOR K1= 1 TO 5:PRINT #5, TAB(3);W$(K1,1):NEXT
2910 GOTO 5025
3000 O5$=CHR$(218)+CHR$(196)+CHR$(191):O6$=CHR$(179)+" "+CHR$(179):O7$=CHR$(192)+CHR$(196)+CHR$(217)
3010 O$=CHR$(219):O2$=CHR$(221):O1$="F KEYS:"+O$+O$+"F1:MAIN menu"+O2$+"F2:ZIPCODE"+O2$+"F6:PRINT menu"+O2$+"F8:NAMES"+O2$+"F4:NOTES"
3020 DIM DQ$(12):FOR I= 1 TO 12:READ DQ$(I):NEXT
3030 DATA JANUARY, FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
3040 WIDTH "LPT1:",82
3050 OPEN "TEMPOR.TEM" FOR INPUT AS #1
3055 INPUT #1, FILE$,FILM$,FIL$:CLOSE #1
3056 OPEN FILM$ FOR INPUT AS #2
3060 INPUT #2,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:CLOSE #2
3065 DIM V$(16),D%(NN),W$(9,3),A(9,3)
3070 IF PT$="I" THEN OPEN "LPT1:" FOR OUTPUT AS #5:GOTO 3090
3080 OPEN "LPT2:" FOR OUTPUT AS #5
3090 OPEN FILE$ AS #4 LEN = 356
3100 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16)
3120 FILN$=FIL$+".NTE"
3130 RETURN
4000 REM
4010 OPEN FILN$ FOR INPUT AS #2
4030 FOR I= 1 TO 20:INPUT #2, NKEY$(I),NOTE$(I):IF NKEY$(I)=CHR$(15) THEN 4035 ELSE NEXT
4035 NP=I-1:CLOSE#2
4040 GOSUB 5000
4050 LOCATE 1,1:PRINT "NOTES:  KEYS":LOCATE 1,30:COLOR 14,0:PRINT "KEYS       ";:COLOR 3,0:PRINT " DESCRIPTION":FOR I=1 TO NP:COLOR 14,0:LOCATE 4+I,30:PRINT NKEY$(I);:COLOR 3,0:LOCATE ,40:PRINT " = ";NOTE$(I):NEXT
4060 LOCATE 20,28:COLOR 14,0:PRINT "HIT ANY KEY TO CONTINUE":COLOR 3,0
4065 Y$=INKEY$:IF Y$="" THEN 4065 ELSE 5025
5000 CLS:LOCATE 25,1:COLOR 0,7,1:PRINT O1$;:COLOR 3,0:LOCATE 1,1:RETURN
5010 ON KEY(1) GOSUB 5070:ON KEY(2) GOSUB 5030:KEY(1) ON:KEY(2) ON:
5015 ON KEY(6) GOSUB 5025:KEY(6) ON:ON KEY(8) GOSUB 4000:KEY(8) ON:ON KEY(7) GOSUB 20000:KEY(7) ON:RETURN
5020 Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 5020 ELSE RETURN
5025 A$="PRINT":Y1=6:GOTO 5080
5030 GOTO 1660
5070 A$="MAIN":Y1=1
5080 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 12,21:PRINT "PLEASE WAIT, LOADING ";A$;" ROUTINES"
5085 IF Y1=6 THEN RUN "ADPRT.BAS"
5090 A$="AD"+A$:RUN A$
9000 IF ERR = 27 THEN CLS:LOCATE 25,10:COLOR 1,7,1:PRINT "FILE = ";FILE$;SPACE$(10);"PRINTER ERROR ":COLOR 7,1:LOCATE 1,1
9030 IF ERR = 27 THEN PRINT "CHECK THE PRINTER":FOR I= 1 TO 500:NEXT I:RESUME 5025
9040 IF ERR =53 THEN CLS:LOCATE 10,15:PRINT "File containing KEYS used in NOTES does not exist.":LOCATE 12,22:PRINT "Return to EDIT program to create file." :LOCATE 18,30:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030:Y$=INPUT$(1):RESUME 5025
9050 CLS:LOCATE 10,28:PRINT "ERROR ";ERR;" ENCOUNTERED":LOCATE 18,26:PRINT "HIT ANY KEY TO CONTINUE":GOSUB 35030
9060 Y$=INKEY$:IF Y$="" THEN 9060
9070 RESUME 5025
20000 A$="ADPRT":CHAIN "ADNAME",20000,ALL
20210 Y$=INKEY$:IF Y$="" THEN 20210 ELSE GOSUB 5000:RETURN
30000 CLS:LOCATE 25,25:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";:COLOR 3,0:LOCATE 1,1
30010 OPEN "AD.HLP" AS #2 LEN=78
30020 FIELD #2, 78 AS A$
30030 I=1:M=1
30040 GET #2,I
30090 IF LEFT$(A$,1) <> CHR$(15) THEN PRINT A$ :I=I+1:GOTO 30040 ELSE 30130
30130 LOCATE 24,27:COLOR 14,0:PRINT "HIT ANY KEY TO CONTINUE";:COLOR 3,0:GOSUB 35030
30140 Y$=INKEY$:IF Y$="" THEN 30140
30150 CLOSE #2:GOTO 200
35000 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 4:SOUND 500*SS%,2:NEXT:RETURN
35010 IF SND$="N" THEN RETURN ELSE FOR SS%=1 TO 3:SOUND 1000*SS%,1:NEXT:FOR SS%= 3 TO 1:SOUND 1000*SS%,1:NEXT:RETURN
35020 IF SND$="N" THEN RETURN ELSE BEEP:RETURN
35030 IF SND$="N" THEN RETURN ELSE SOUND 750,2:SOUND 30000,2:SOUND 750,2:RETURN

FILES401.TXT

------------------------------------------------------------------------
Disk No 401   THE ADDRESS BOOK                                       v1.1
------------------------------------------------------------------------
The Address Book is a user-friendly personal and/or business address
book program.  You can create your own address book file for up to 300
entries, which can be edited, printed, searched, and sorted.  Birthdays
and other user-defined notes may be kept.  WordStar and WordPerfect
mail-merge files can also be created.  Sub-directories of the main
directory can also be routinely created.  Function keys are used ex-
tensively and RAM-disk may be used for more speed.

AD       BAS  Abreviated ADSTART.BAS without starting graphics
AD       BAT  Batch file for starting ADSTART.BAS
AD       HLP  Text file used by program to provide online help
ADDELETE BAS  Program to delete entries
ADDIR    BAS  ?? << doesn't load properly >>
ADEDIT   BAS  Program to edit entries
ADFILES  BAS  Creates all necessary data files
ADLIST   BAS  Prints address book
ADMAIL   BAS  Prints address labels
ADMAIL   HLP  Help file used by ADMAIL.BAS
ADMAIN   BAS  Main address book program
ADNAME   BAS  Determines name of sub-program to run
ADNOTE   BAS  Program to create notes to records
ADPRINT  BAS  Program to set printer parameters
ADPRT    BAS  Master printing program
ADPRTA   BAS  Supplemental printing program
ADPRTC   BAS  Supplemental printing program
ADREAD   BAS  Program to scan entries
ADRODX   BAS  Program to print Rolodex-type labels
ADSEARCH BAS  Program to search by criteria
ADSORT   BAS  Program to sort base by criteria
ADSTART  BAS  Set-up and start program - chains to ADMAIN.BAS
ADTRANS  BAS  Program to transfer records
ADWP     BAS  Converts data files for WordPerfect mail-merge
ADWS     BAS  Converts data files for WordStar mail-merge
ADZIP    BAS  Prints labels by ZIP code
AUTOEXEC BAT  Auto-start batch file to run ADSTART.BAS
MANUAL   DOC  Text file containing instructions and user manual
SAMPLES  DAT  Sample data file
SAMPLES  ISS  Sample configuration file
SAMPLES  NTE  Data file - note codes
TEMPOR   TEM  Temporary data file (used internally)


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

Directory of PC-SIG Library Disk #0401

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

AD       BAS       494   7-02-83  12:49a
AD       BAT        29   7-09-83  12:47p
AD       HLP      1920   5-21-83  11:32p
ADDELETE BAS     11538   2-13-84   1:55a
ADDIR    BAS       167   1-22-84   1:57a
ADEDIT   BAS     15978   4-19-84  11:38a
ADFILES  BAS      2356   1-23-84   3:51a
ADLIST   BAS      4805   1-01-80  12:44a
ADMAIL   BAS     13779   6-17-84   7:16a
ADMAIL   HLP      1920   5-21-83  11:22p
ADMAIN   BAS     13846   1-01-80  12:11a
ADNAME   BAS      1362  10-30-83   9:47p
ADNOTE   BAS      3493   1-01-80   4:53a
ADPRINT  BAS      4584   1-01-80  12:09a
ADPRT    BAS      9084   6-12-84   9:42p
ADPRTA   BAS      5675   1-01-80  12:24a
ADPRTC   BAS      6392   1-01-80  12:20a
ADREAD   BAS      5781   1-01-80  12:30a
ADRODX   BAS     12360   7-02-84   5:09p
ADSEARCH BAS     10846   1-01-80   1:07a
ADSORT   BAS     11166   4-26-84   2:14a
ADSTART  BAS      4625   1-01-80  12:02a
ADTRANS  BAS     15584   1-19-84   5:02p
ADWP     BAS      9572  10-30-83   2:33a
ADWS     BAS      9344  10-30-83   2:33a
ADZIP    BAS      6265   1-01-80  12:39a
AUTOEXEC BAT        38   9-01-83  12:22p
FILES401 TXT      2329   1-29-87   4:08p
MANUAL   DOC     39552   8-05-84   5:01p
SAMPLES  DAT      9256   9-01-83   1:31a
SAMPLES  ISS       215   7-07-84   9:00p
SAMPLES  NTE        77   1-01-80  12:07a
TEMPOR   TEM        11   7-06-85   1:13p
       33 file(s)     234443 bytes
                       67584 bytes free