PCjs Machines

Home of the original IBM PC emulator for browsers.

Logo

PC-SIG Diskette Library (Disk #321)

[PCjs Machine "ibm5170"]

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

Information about “HOME APPLICATIONS”

HOME APPLICATIONS has such a wide range of programs that almost
everyone will find something of interest.  You can track everything
from your biorhythm to hurricanes.  For gambling fans, there is a
lottery number-generating program as well as an NFL point spread
calculator.  Of special interest is the HOME APPLICATIONS program which
lets you keep a record of all your possessions.  This can be very useful
for insurance purposes.

File Descriptions:

$_EXCHNG BAS  International currency exchange program.
AC       C    Source code for area code finder program.
AC       EXE  Area code finder program.
ALARM    BAS  Program to set alarm clock on pc.
AVEGRATE BAS  Stock growth, rate and projections program.
BIORYTHM BAS  Program to determine biorythms.
BUZZWORD TXT  Data processing definitions.
CALENDAR BAS  Prints monthly calendars from 1583 to 4046.
CALL     BAS  Program to evaluate stock calls.
CAS-REEL BAS  Provides timing information for reel to cassette.
DEBBIE        Data for hurricane tracking program.
DECIDE   BAS  Decision making program.
DECISION BAS  Another decision making program.
FUNDANAL BAS  Fundamental analysis program.
GUITAR   BAS  Guitar tuning program.
HAIKU    BAS  Generates random haiku's.
HEATCALC BAS  Performs sense building energy load modeling.
HOME-INV BAS  Program for home inventory tracking.
HOME-INV DEBT  Data for HOME-INV.
HOME-INV DOC  Documentation for HOME-INV.
HURRICAN BAS  Hurricane tracking program.
INSAT    BAS  Calculates aiming angles for satellites.
IRA-CALC BAS  Individual retirement account calculation program.
JOBJAR   BAS  Job tasking program.
LAYAWAY  BAS  Layaway account management program.
LIFETIME BAS  Life expectancy determination program.
LOTTERY2 BAS  Lottery number choosing program.
NFL-PIX  BAS  NFL point spread calculation program.
OPTION   BAS  Option analysis program.
SOUNDEFF BAS  Sound effects generation program.
STAR     DEBT  Data for STAR.
STAR     BAS  Astronomical calendar program.
STARFIND BAS  Astrologic and astronomical calculator.
TEMPER   BAS  Temperature conversion program.
WNDCHIL  BAS  Wind chill calculation program.
ZELLER   BAS  Determines day of week from Zeller's Congruence.

BIORYTHM.BAS

5      REM * BIORHYTHM PROGRAM *
10 WIDTH "lpt1:",132
20      REM FROM INTERFACE AGE, AUGUST, 1976
30      REM EDITED & TESTED BY JIM PETERSEN ON 89/27/78
40      REM %% PROGRAM COMPUTES HOW CERTAIN PERSON WILL FEEL PHYSICALLY,
50      REM    EMOTIONALLY AND INTELLECTUALLY ON ANY DAY %%
60      DIM A(12),M$(12)
70      DATA 0,31,59,90,120,151,181,212,243,273,304,334
80      FOR I=1 TO 12:READ A(I):NEXT
90      PI=3.14159
100     CLS:REM Screen clear character
110     PRINT:PRINT
120     PRINT "This program will print out your personal BIO-RHYTHM"
130     PRINT "analysis for any number of days you select."
140     PRINT "Dates should be entered in numerical form with the"
150     PRINT "MONTH, DAY and YEAR separated by commas. I. E."
160     PRINT "July 4, 1976 would be entered as 7,4,76."
170     PRINT
180     INPUT "How many days do you want plotted";S
190     IF S<=0 THEN 180
200     PRINT "What is the date at which you would like the";S;"day"
210     INPUT "analysis to start";M,D,Y
220     S=S-1
230     M=INT(M):D=INT(D):Y=INT(Y)
240     INPUT "What is the date of your birth";MB,DB,YB
250     MB=INT(MB):DB=INT(DB):YB=INT(YB)
260     INPUT "What is your name";A$
280     INPUT "Do you want it on hard copy";HC$
290     IF HC$="Y" OR HC$="y" THEN P=-1
300     DEF FNI(X)=INT(20*SIN(2*PI*X/33)+0.5)
310     DEF FNE(X)=INT(20*SIN(2*PI*X/28)+0.5)
320     DEF FNP(X)=INT(20*SIN(2*PI*X/23)+0.5)
330     T=INT(D+365.25*Y+A(M)+0.01*M-0.03)
340     TB=INT(DB+365.25*YB+A(MB)+0.01*MB-0.03)
350     X=T-TB
360     V=INT((40-LEN(A$))/2)
370     RB=TB-1-INT((TB-1)/7)*7
380     DATA MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
390     FOR I=0 TO 6:READ DAY$(I):NEXT
400     DATA MON,TUE,WED,THU,FRI,SAT,SUN
410     FOR I=0 TO 6:READ D$(I):NEXT
420     DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST
430     PRINT:PRINT
440     DATA SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
450     FOR I=1 TO 12:READ M$(I):NEXT
455     IF P THEN LPRINT SPC(2):FOR I=1 TO V:LPRINT "*";:NEXT
460     PRINT SPC(2):FOR I=1 TO V:PRINT "*";:NEXT
470     COLOR 8,7:PRINT "BIO-RHYTHM ANALYSIS FOR ";A$;:COLOR 7,0
475     IF P THEN LPRINT "BIO-RHYTHM ANALYSIS FOR ";A$;
480     PRINT "*";:IF POS(0)<66 THEN 480
485     IF P THEN LPRINT "*************************";
490     PRINT:PRINT
495     IF P THEN LPRINT:LPRINT
500     R=T-1-INT((T-1)/7)*7
510     LE=21+LEN(DAY$(R))+LEN(M$(M))+LEN(STR$(D))+LEN(RIGHT$(STR$(Y),2))
520     V2=INT((64-LE)/2)
530     PRINT SPC(2):FOR I=1 TO V2:PRINT "*";:NEXT
535     IF P THEN LPRINT SPC(2):FOR I=1 TO V2:LPRINT "*";:NEXT
540     COLOR 8,7:PRINT "STARTING DATE: ";DAY$(R);", ";M$(M);STR$(D);", 19";
545     IF P THEN LPRINT "STARTING DATE: ";DAY$(R);", ";M$(M);STR$(D);", 19";
550     PRINT RIGHT$(STR$(Y),2);:COLOR 7,0
555     IF P THEN LPRINT RIGHT$(STR$(Y),2);
560     PRINT "*";:IF POS(0)<66 THEN 560
565     IF P THEN LPRINT "*****************";
570     PRINT:PRINT
575     IF P THEN LPRINT:LPRINT
580     LL=LEN(DAY$(RB))+LEN(M$(MB))+LEN(STR$(DB))+LEN(RIGHT$(STR$(YB),2))
590     LB=LL+18
600     VB=INT((64-LB)/2)
610     PRINT SPC(2):FOR I=1 TO VB:PRINT "*";:NEXT
615     IF P THEN LPRINT SPC(2):FOR I=1 TO VB:PRINT "*";:NEXT
620     COLOR 8,7:PRINT "BIRTH DATE: ";DAY$(RB);", ";M$(MB);STR$(DB);", 19";
625     IF P THEN LPRINT "*************** BIRTH DATE: ";DAY$(RB);", ";M$(MB);STR$(DB);", 19";
630     PRINT RIGHT$(STR$(YB),2);:COLOR 7,0
635     IF P THEN LPRINT RIGHT$(STR$(YB),2);
640     PRINT "*";:IF POS(0)<66 THEN 640
645     IF P THEN LPRINT "****************"
650     PRINT:PRINT:PRINT
655     IF P THEN LPRINT:LPRINT:LPRINT
660     PRINT TAB(20);"DOWN",TAB(39);"CRITICAL",TAB(62);"UP"
665     IF P THEN LPRINT TAB(20);"DOWN",TAB(39);"CRITICAL",TAB(62);"UP"
670     PRINT D$(R);D;M$(M);
675     IF P THEN LPRINT D$(R);D;M$(M);
680     F(0)=42:F$(0)="*"
690     F(1)=42+FNI(X):F$(1)="I"
700     F(2)=42+FNE(X):F$(2)="E"
710     F(3)=42+FNP(X):F$(3)="P"
720     FOR I=0 TO 2
730     FOR J=I+1 TO 3
740     IF F(I)<F(J) THEN 790
750     IF F(I)=F(J) THEN F(I)=0:F$(I)="":F$(J)="X":GOTO 790
760     Q=F(I):Q$=F$(I)
770     F(I)=F(J):F$(I)=F$(J)
780     F(J)=Q:F$(J)=Q$
790     NEXT J:NEXT I
800     FOR I=0 TO 3
810     PRINT TAB(F(I));F$(I);
815     IF P THEN LPRINT TAB(F(I));F$(I);
820     NEXT
830     PRINT:X=X+0.5:IF P THEN LPRINT
835     IF INT(X)<>X THEN 680
840     IF Z=S THEN 940
850     R=R+1:IF R=7 THEN R=0
860     D=D+1:IF M=4 OR M=6 OR M=9 OR M=11 THEN L=30:GOTO 900
870     IF M=2 AND Y/4=INT(Y/4) THEN L=29:GOTO 900
880     IF M=2 THEN L=28:GOTO 900
890     L=31
900     IF D>L THEN D=D-L:M=M+1:GOTO 920
910     PRINT D$(R);D;:IF P THEN LPRINT D$(R);D;:Z=Z+1:GOTO 680
920     IF M=13 THEN M=1:Z=Z+1:GOTO 670
930     Z=Z+1:IF D=1 THEN GOTO 670 ELSE GOTO 680
940     PRINT:PRINT
945     IF P THEN LPRINT:LPRINT
950     IF P THEN LPRINT CHR$(12)
960     INPUT "Do you want another Biorhythm";A$:IF LEFT$(A$,1)="Y" OR LEFT$(A$,1)="y" THEN CLEAR 2000:P=0:GOTO 60
970     END

CALENDAR.BAS

10 ' CALENDAR
20 ' Program by Marty Smith, 310 Cinnamon Oak Lane, Houston, TX 77079
30 ' (713) 464-6737 (home)  (713) 661-1241 (office)
40 ' SOURCE ST2259  COMPUSERVE 72155,1214
50 KEY OFF : CLS
60 PRINT "CALENDAR"
70 PRINT :PRINT "Can print monthly calendars from January, 1583 to December, 4046."
75 PRINT "The Gregorian calendar we use comes from Pope Gregory XIII."
76 PRINT "He made the day after October 4, 1582 into October 15, 1582."
77 PRINT "Years divisible by 100 are NOT leap years, unless they are divisible by 400."
80 PRINT :PRINT "Output to Screen, Printer or Disk."
90 PRINT "Most options will default to the last entered." : PRINT
100 DEFINT A-Z
110 TRUE=-1 : FALSE=0 : I=0 : J=0 : X=0 : Y=0 : Z=0 : IR=0 : RANGE=1
120 SYEAR=365 : LYEAR=366 : SORRY=FALSE : DAYS=0 : V$="|" : YEARONE=1980
125 STARTONE=2 : LEAP=TRUE : YEAR=0 : START=0 : WID=2 : HERE=0 : NOW=0 : MARG=8
130 FS$="calendar.dat" : TS$="" : I$="" : J$="" : K$="" : PGB=3 : BIG=FALSE
140 F1$="|------+------+------+------+------+------+------|"
142 F2$="|----------+----------+----------+----------+----------+----------+----------|"
144 F0$="|----+----+----+----+----+----+----|"
145 S1$="+------+------+------+------+------+------+------+"
146 S2$="+----------+----------+----------+----------+----------+----------+----------+"
147 S0$="+----+----+----+----+----+----+----+"
150 L1$="|      |      |      |      |      |      |      |"
152 L2$="|          |          |          |          |          |          |          |"
154 L0$="|    |    |    |    |    |    |    |"
160 D1$="| SUN  | MON  | TUES | WEDS | THUR | FRI  | SAT  |"
162 D2$="|  SUNDAY  |  MONDAY  |  TUESDAY | WEDNESDAY| THURSDAY |  FRIDAY  | SATURDAY |"
164 D0$="|SUN |MON |TUES|WEDS|THUR|FRI |SAT |"
170 N1$="      !" : Y1$="  ##  !"
172 N2$="          !" : Y2$="    ##    !"
174 N0$="    !" : Y0$=" ## !"
180 DIM MONTH(15),MONTH$(15),DAY$(7)
190 DATA 31,28,31,30,31,30,31,31,30,31,30,31
200 DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
220 FOR I=1 TO 12 : READ MONTH(I) : NEXT
230 FOR I=1 TO 12 : READ MONTH$(I) : NEXT
250 GOTO 1000
300 ' find days from jan 1 1980
305 YEARONE=1980 : STARTONE=2
310 IF YEAR < YEARONE THEN YEARONE=1583 : STARTONE=6 : IF YEAR < YEARONE THEN SORRY=TRUE : RETURN
312 IF (YEAR-YEARONE) > 2066 THEN SORRY=TRUE : PRINT "Algorithm starts to fall apart past 4046." : RETURN
320 IF YEAR = YEARONE THEN 400
330 FOR I=YEARONE TO YEAR-1
340    IF (I MOD 4) <> 0 THEN DAYS=DAYS+SYEAR : GOTO 390
350    IF (I MOD 400) = 0 THEN DAYS=DAYS+LYEAR : GOTO 390
360    IF (I MOD 100) = 0 THEN DAYS=DAYS+SYEAR : GOTO 390
370    DAYS=DAYS+LYEAR
390 DAYS=DAYS MOD 7 : NEXT
400 ' find days in current year
410 IF (YEAR MOD 4) <> 0 THEN LEAP=FALSE : GOTO 450
420 IF (YEAR MOD 400) = 0 THEN LEAP=TRUE : GOTO 450
430 IF (YEAR MOD 100) = 0 THEN LEAP=FALSE : GOTO 450
440 LEAP=TRUE
450 IF LEAP=TRUE THEN MONTH(2)=29 ELSE MONTH(2)=28
460 IF THEMONTH=1 THEN 500
470 FOR I=1 TO THEMONTH -1
480   DAYS=DAYS+MONTH(I)
490 NEXT
500 THEDAYS=MONTH(THEMONTH)
510 START=(DAYS + STARTONE) MOD 7
520 RETURN
600 ' make all caps
610 FOR I=1 TO LEN(CAP$) : IF MID$(CAP$,I,1)>="a" AND MID$(CAP$,I,1)<="z" THEN MID$(CAP$,I,1)=CHR$(ASC(MID$(CAP$,I,1))-32)
620 NEXT : RETURN
700 ' find month from string
710 CAP$=M$ : GOSUB 600 : M$=CAP$
720 X=FALSE
730 FOR I=1 TO 12
740    IF INSTR(MONTH$(I),M$) THEN THEMONTH=I : I=12 : X=TRUE
750 NEXT
760 IF X=FALSE THEN THEMONTH=FALSE
770 RETURN
800 ' make all lower
810 FOR I=1 TO LEN(CAP$) : IF MID$(CAP$,I,1)>="A" AND MID$(CAP$,I,1)<="Z" THEN MID$(CAP$,I,1)=CHR$(ASC(MID$(CAP$,I,1))+32)
820 NEXT : RETURN
1000 ' Make a calendar for a month
1010 PRINT : INPUT "Please enter the Month, or End.";M$
1015 IF LEFT$(M$,1)="E" OR LEFT$(M$,1)="e" THEN CLS : KEY ON : END
1020 INPUT "Please enter the Year";YEAR : IF YEAR=0 THEN KEY ON : END
1025 PRINT "Please enter width (1=36, 2=50, 3=78 characters) ";
1026 LOCATE ,,1:I$=INKEY$:IF I$="" THEN 1026 ELSE PRINT I$ :Y=VAL(I$)
1028 IF (Y>0 AND Y<4) THEN WID=Y
1030 THEMONTH=VAL(M$) : IF THEMONTH<0 THEN PRINT "Huh?" : GOTO 1000
1040 IF THEMONTH=0 THEN GOSUB 700
1050 IF THEMONTH=FALSE OR THEMONTH > 12 THEN PRINT "Can't figure what month, try again." : GOTO 1000
1060 DAYS=0 : SORRY=FALSE : GOSUB 300 : IF SORRY=TRUE THEN PRINT "Program limits are Jan, 1583 to December 4046." : GOTO 1000
1070 PRINT "<P>rinter, <D>isk, or <S>creen output? ";
1080 LOCATE ,,1: I$=INKEY$ : IF I$="" THEN 1080 ELSE PRINT I$
1090 CAP$=I$ : GOSUB 600 : I$=CAP$
1100 INPUT "Number of months to print";RANGE : IF RANGE < 1 THEN RANGE=1
1110 PRINT "BIG or little? BIG uses 4 lines per date, little uses 2. (B/L) ";
1120 LOCATE ,,1: J$=INKEY$ : IF J$="" THEN 1120 ELSE PRINT J$
1130 CAP$=J$ : GOSUB 600 : J$=CAP$
1140 IF J$="B" THEN BIG=TRUE ELSE BIG=FALSE
1150 IF I$="P" THEN INPUT "Printer margin";K$ : IF K$<>"" THEN MARG=VAL(K$)
1160 IF I$="P" THEN INPUT "Page break (defaults to 2 for BIG, 3 for little)";K$
1165 IF VAL(K$)<>0 THEN PGB=VAL(K$) ELSE IF BIG THEN PGB=2 ELSE PGB=3
1170 IF I$="D" THEN LINE INPUT "Filename for output. Data is appended to an existing file >";TS$ : IF TS$<>"" THEN FS$=TS$
1180 PRINT "Hit ESCape to stop."
2000 ' print a calendar
2010 IF WID=1 THEN D$=D0$:F$=F0$:N$=N0$:Y$=Y0$:L$=L0$:S$=S0$:Z=19
2020 IF WID=2 THEN D$=D1$:F$=F1$:N$=N1$:Y$=Y1$:L$=L1$:S$=S1$:Z=26
2030 IF WID=3 THEN D$=D2$:F$=F2$:N$=N2$:Y$=Y2$:L$=L2$:S$=S2$:Z=40
2040 IF I$="D" THEN OPEN FS$ FOR APPEND AS #1
2050 FOR IR=1 TO RANGE
2060   IF I$="P" THEN GOSUB 3000 ELSE IF I$="D" THEN GOSUB 4000 ELSE GOSUB 2110
2065   IF IR=RANGE THEN 2090
2070   THEMONTH=THEMONTH+1 : IF THEMONTH=13 THEN THEMONTH=1 : YEAR=YEAR+1
2080   DAYS=0 : GOSUB 300 : IF SORRY=TRUE THEN IR=RANGE
2085   IF I$="P" THEN IF (IR MOD PGB=0) THEN LPRINT CHR$(12);
2090 NEXT : IF I$="D" THEN CLOSE #1
2095 GOTO 1000
2100 ' screen output
2105 PRINT :PRINT
2110 X=(LEN(MONTH$(THEMONTH))+5)/2 : PRINT TAB(Z-X) MONTH$(THEMONTH);YEAR : PRINT
2120 PRINT D$ : PRINT F$ : IF BIG THEN PRINT L$
2130 NOW=1 : HERE=0
2140 PRINT V$;
2150 FOR I=0 TO 6
2160   IF I<START THEN PRINT USING N$; V$; ELSE PRINT USING Y$;NOW,V$; : NOW=NOW+1
2170 NEXT : PRINT : IF BIG THEN PRINT L$ : PRINT F$ ELSE PRINT F$
2180 HERE=THEDAYS-NOW : HERE=HERE\7
2190 FOR I=1 TO HERE : IF BIG THEN PRINT L$
2195 ESC$=INKEY$ : IF ESC$=CHR$(27) THEN IR=RANGE : GOTO 2310
2200 PRINT V$;
2210    FOR J=1 TO 7
2220    PRINT USING Y$;NOW,V$; : NOW=NOW+1
2230    NEXT : PRINT : IF BIG THEN PRINT L$ : PRINT F$ ELSE PRINT F$
2240 NEXT
2250 IF THEDAYS-NOW = -1 THEN 2310
2255 IF BIG THEN PRINT L$
2260 PRINT V$;
2270 FOR I=0 TO 6
2280    IF NOW>THEDAYS THEN PRINT USING N$;V$; ELSE PRINT USING Y$;NOW,V$; : NOW=NOW+1
2290 NEXT
2300 PRINT : IF BIG THEN PRINT L$ : PRINT S$ ELSE PRINT S$
2310 RETURN
3000 ' to printer
3010 WIDTH "lpt1:", 80+MARG
3020 PRINT "Printing ";MONTH$(THEMONTH);YEAR
3100 LPRINT :LPRINT
3110 X=(LEN(MONTH$(THEMONTH))+5)/2 : LPRINT TAB(Z-X+MARG) MONTH$(THEMONTH);YEAR : LPRINT
3120 LPRINT TAB(MARG)D$ : LPRINT TAB(MARG)F$ : IF BIG THEN LPRINT TAB(MARG)L$
3130 NOW=1 : HERE=0
3140 LPRINT TAB(MARG)V$;
3150 FOR I=0 TO 6
3160   IF I<START THEN LPRINT USING N$; V$; ELSE LPRINT USING Y$;NOW,V$; : NOW=NOW+1
3170 NEXT : LPRINT : IF BIG THEN LPRINT TAB(MARG)L$:LPRINT TAB(MARG)F$ ELSE LPRINT TAB(MARG)F$
3180 HERE=THEDAYS-NOW : HERE=HERE\7
3190 FOR I=1 TO HERE : IF BIG THEN LPRINT TAB(MARG)L$
3195 ESC$=INKEY$ : IF ESC$=CHR$(27) THEN IR=RANGE : GOTO 3310
3200 LPRINT TAB(MARG)V$;
3210    FOR J=1 TO 7
3220    LPRINT USING Y$;NOW,V$; : NOW=NOW+1
3230    NEXT : LPRINT : IF BIG THEN LPRINT TAB(MARG)L$:LPRINT TAB(MARG)F$ ELSE LPRINT TAB(MARG)F$
3240 NEXT
3250 IF THEDAYS-NOW = -1 THEN 3310
3255 IF BIG THEN LPRINT TAB(MARG)L$
3260 LPRINT TAB(MARG)V$;
3270 FOR I=0 TO 6
3280    IF NOW>THEDAYS THEN LPRINT USING N$;V$; ELSE LPRINT USING Y$;NOW,V$; : NOW=NOW+1
3290 NEXT
3300 LPRINT : IF BIG THEN LPRINT TAB(MARG)L$:LPRINT TAB(MARG)S$ ELSE LPRINT TAB(MARG)S$
3310 RETURN
4000 ' disk output
4010 ' OPEN FS$ FOR APPEND AS #1
4020 PRINT "Writing ";MONTH$(THEMONTH);YEAR
4100 PRINT #1,"" : PRINT #1,""
4110 X=(LEN(MONTH$(THEMONTH))+5)/2 : PRINT #1,SPACE$(Z-X);MONTH$(THEMONTH);YEAR : PRINT #1,""
4120 PRINT #1,D$ : PRINT #1,F$ : IF BIG THEN PRINT #1,L$
4130 NOW=1 : HERE=0
4140 PRINT #1,V$;
4150 FOR I=0 TO 6
4160   IF I<START THEN PRINT #1,USING N$; V$; ELSE PRINT #1,USING Y$;NOW,V$; : NOW=NOW+1
4170 NEXT : PRINT #1,"": IF BIG THEN PRINT #1,L$ :PRINT #1,F$ ELSE PRINT #1,F$
4180 HERE=THEDAYS-NOW : HERE=HERE\7
4190 FOR I=1 TO HERE : IF BIG THEN PRINT #1,L$
4195 ESC$=INKEY$ : IF ESC$=CHR$(27) THEN IR=RANGE : GOTO 4310
4200 PRINT #1,V$;
4210    FOR J=1 TO 7
4220    PRINT #1,USING Y$;NOW,V$; : NOW=NOW+1
4230    NEXT : PRINT #1,"": IF BIG THEN PRINT #1,L$:PRINT #1,F$ ELSE PRINT #1,F$
4240 NEXT
4250 IF THEDAYS-NOW = -1 THEN 4310
4255 IF BIG THEN PRINT #1,L$
4260 PRINT #1,V$;
4270 FOR I=0 TO 6
4280    IF NOW>THEDAYS THEN PRINT #1,USING N$;V$; ELSE PRINT #1,USING Y$;NOW,V$; : NOW=NOW+1
4290 NEXT
4300 PRINT #1,"": IF BIG THEN PRINT #1,L$:PRINT #1,S$ ELSE PRINT #1,S$
4310 ' CLOSE #1
4320 RETURN

CAS-REEL.BAS

10000 DEFINT N,M:COLOR 7,0:KEY OFF:SCREEN O,O,O:WIDTH 80:WIDTH "LPT1:",255
10100 CLS:PRINT "CAS-REEL.BAS  (C) 1983 by Michael Csontos, 3228 Livonia Ctr. Rd., Lima, NY 14485"
10200 PRINT "The purpose of this program is to provide timing information for transfers of   recorded material from reel-to-reel audio tape masters to compact-cassettes.":PRINT
10250 PRINT "With the screen display you may watch the footage information scroll by, press  <Ctrl>+<NumLock> to stop at the area of interest, then press <shift+<PrtSc> to  twice rapidly obtain a  hard copy.":PRINT
10300 PRINT "If you choose OUTPUT TO PRINTER you will get five pages of tables of footages vs number of cassettes.":PRINT
10400 PRINT "The motivation for writing this program was the frustration of repeatedly       mislaying calculator programs and handwritten tables of this information. In    debugging this program, enough tables were generated to place everywhere they"
10500 PRINT "might be sought.":PRINT
10600 INPUT "OUTPUT TO PRINTER (Y/N)";P$
10700 IF P$="Y" OR P$="y" THEN P=1:GOTO 10900
10800 IF P$="N" OR P$="n" THEN P=0 ELSE PRINT "PLEASE ANSWER y,Y OR N,n!":GOTO 10600
10900 IF P THEN LPRINT CHR$(27)CHR$(64)CHR$(15)CHR$(27)CHR$(68)CHR$(18)CHR$(36)CHR$(54)CHR$(72)CHR$(90)CHR$(108)CHR$(126)CHR$(0);
11000 FOR M=1 TO 5
11100 READ SPEED$,SPEED
11200 R=CSRLIN:C=POS(0):LOCATE 25,1:COLOR 0,7:
11300 PRINT "        TAPE SPEED " SPEED$ " INCHES PER SECOND           ";
11400 COLOR 7,0:LOCATE R,C
11500 IF P THEN LPRINT CHR$(14) "CONVERSION TABLE FOR REEL-TO-REEL TAPE TO CASSETTES"
11600 IF P THEN LPRINT CHR$(14) "REEL TAPE SPEED " SPEED$ " INCHES PER SECOND":LPRINT
11700 PRINT "LENGTH   TIME   "
11800 IF P THEN LPRINT "LENGTH"CHR$(9)"TIME"
11900 FOR N=100 TO 5000 STEP 100
12000 COLOR 15,0
12100 PRINT N "FEET";
12200 IF P THEN LPRINT N "FEET";
12300 TIM=((N*12)/(SPEED))/60
12400 PRINT INT(TIM) "MINUTES",;
12500 COLOR 7,0
12600 IF P THEN LPRINT CHR$(9) INT(TIM) "MINUTES";
12700 CAS=TIM/30
12800 PRINT INT(CAS) "C30 CASETTES",;
12900 IF P THEN LPRINT CHR$(9) INT(CAS) "C30 CASETTES";
13000 CAS=TIM/60
13100 PRINT INT(CAS) "C60 CASETTES",;
13200 IF P THEN LPRINT CHR$(9) INT(CAS) "C60 CASETTES";
13300 CAS=TIM/90
13400 PRINT INT(CAS) "C90 CASETTES",;
13500 IF P THEN LPRINT CHR$(9) INT(CAS) "C90 CASETTES";
13600 CAS=TIM/120
13700 PRINT INT(CAS) "C120 CASETTES",;
13800 IF P THEN LPRINT CHR$(9) INT(CAS) "C120 CASETTES";
13900 CAS=TIM/180
14000 PRINT INT(CAS) "C180 CASETTES":PRINT
14100 IF P THEN LPRINT CHR$(9) INT(CAS) "C180 CASETTES"
14200 NEXT N
14300 IF P THEN LPRINT CHR$(12);
14400 NEXT M
14500 KEY ON:END
14600 DATA "15/16",.9375,"1-7/8",1.875,"3-4/4",3.75,"7-1/2",7.5,"15",15
14700 '   SAVE"CAS-REEL",A

FILE0321.TXT

Disk No:  321
Program Title: HOME APPLICATIONS
PC-SIG version: 3

HOME APPLICATIONS has such a wide range of programs that almost everyone
will find something of interest.  You can track everything from your
biorhythm to hurricanes.

Of special interest is the HOME inventory program which lets you keep a
record of all your possessions.  This can be very useful for insurance
purposes.

WEATHER displays records stored in a weather database and to calculate
statistics from the database.  With this program you can make your own
weather reports.

Usage:  General Applications for the Home.

Special Requirements:  A version of BASIC is needed to run most of these
programs.

How to Start:  Type GO (press enter).  To load BASIC programs, refer to
your BASIC manual.

Suggested Registration:  None specified.

File Descriptions:

AC       EXE  Area Code Finder Program.
AC       C    Source code for Area Code finder program.
BIORYTHM BAS  Program to determine Biorythms.
CALENDAR BAS  Prints Monthly Calendars from 1583 to 4046.
CAS-REEL BAS  Provides timing information for reel to cassette.
GUITAR   BAS  Guitar Tuning Program.
HAIKU    BAS  Generates Random Haiku's.
HOME-INV BAS  Program for Home Inventory Tracking.
HOME-INV DAT  Data for HOME-INV.
HOME-INV DOC  Documentation for HOME-INV.
INSAT    BAS  Calculates Aiming Angles for Satellites.
SOUNDEFF BAS  Sound Effects Generation Program.
WEA0000  DAT  A weather database template.
WEA1984  DAT  A sample weather database.
WEA1985  DAT  A sample weather database.
WEA1986  DAT  A sample weather database.
WEA1987  DAT  A sample weather database.
WEA1988  DAT  A sample weather database.
WEA1989  DAT  A sample weather database.
WEATHER  ASC  A text file on weather measurement units.
WEATHER  DOC  The user's manual.
WEATHER  EXE  The weather records and statistics program.

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

GO.TXT

╔═════════════════════════════════════════════════════════════════════════╗
║               <<<<  Disk No 321  HOME APPLICATIONS  >>>>                ║
╠═════════════════════════════════════════════════════════════════════════╣
║ To start the weather program, type WEATHER (press enter)                ║
║                                                                         ║
║ To run AC, type: AC (press enter)                                       ║
║                                                                         ║
║ To run the programs written in BASIC, consult your BASIC language manual║
╚═════════════════════════════════════════════════════════════════════════╝

GUITAR.BAS

1 COLOR 7,0
2 'Program by Ed Cummins  Atlanta  IBM PC Club
3 'Released for Public Domain use
10 KEY OFF:CLS:X$=STRING$(80,45)
20 PRINT X$
30 P$="G U I T A R    T U N I N G   P R O G R A M "
40 LOCATE ,40-(LEN(P$)/2)
50 PRINT P$:PRINT:PRINT X$
60 PRINT
70 PRINT "String #","Note"
80 PRINT "--------","----"
100 GOSUB 10000
110 GOSUB 11000
120 GOSUB 12000
130 GOSUB 13000
140 GOSUB 14000
150 GOSUB 15000
160 LOCATE 25,1:PRINT" Select NUMBER of Desired String or press 'SPACE BAR' to stop";
162 S$=INPUT$(1):S=VAL(S$)
170 ON S GOTO 1000,2000,3000,4000,5000,6000
180 PLAY "o0c64":GOTO 160
1000 COLOR 31:GOSUB 10000
1004 PLAY "mlo2e64":S$=INKEY$:IF S$="" THEN 1004
1006 COLOR 7:GOSUB 10000
1010 S=VAL(S$):GOTO 170
2000 COLOR 31:GOSUB 11000
2004 PLAY "mlo1b64":S$=INKEY$:IF S$="" THEN 2004
2006 COLOR 7:GOSUB 11000
2010 S=VAL(S$):GOTO 170
3000 COLOR 31:GOSUB 12000
3004 PLAY "mlo1g64":S$=INKEY$:IF S$="" THEN 3004
3006 COLOR 7:GOSUB 12000
3010 S=VAL(S$):GOTO 170
4000 COLOR 31:GOSUB 13000
4004 PLAY "mlo1d64":S$=INKEY$:IF S$="" THEN 4004
4006 COLOR 7:GOSUB 13000
4010 S=VAL(S$):GOTO 170
5000 COLOR 31:GOSUB 14000
5004 PLAY "mlo0a64":S$=INKEY$:IF S$="" THEN 5004
5006 COLOR 7:GOSUB 14000
5010 S=VAL(S$):GOTO 170
6000 COLOR 31:GOSUB 15000
6004 PLAY "mlo0e64":S$=INKEY$:IF S$="" THEN 6004
6006 COLOR 7:GOSUB 15000
6010 S=VAL(S$):GOTO 170
10000 LOCATE 10,5:PRINT "1","E";:PRINT:RETURN
11000 LOCATE 12,5:PRINT "2","B";:PRINT:RETURN
12000 LOCATE 14,5:PRINT "3","G";:PRINT:RETURN
13000 LOCATE 16,5:PRINT "4","D";:PRINT:RETURN
14000 LOCATE 18,5:PRINT "5","A";:PRINT:RETURN
15000 LOCATE 20,5:PRINT "6","E";:PRINT:RETURN

HAIKU.BAS

10 ' Program by John Krutch
20 ' copied from "Experiments in Srtificial Intelligence for Small Computers"
30 ' copyright 1981 by John Krutch
40 ' published by Howard W. Sams & Co.
50 CLEAR 200
60 GOSUB 150
70 GOTO 90
80 GOSUB 240
90 GOSUB 300
100 IF RAN=1 THEN GOSUB 490
110 IF RAN=2 THEN GOSUB 710
120 IF RAN=3 THEN GOSUB 930
130 IF RAN=4 THEN GOSUB 1150
140 GOTO 80
150 '  INITIALIZATION
160 CLS
170 RANDOMIZE
180 ARTNMB=4
190 ADJNMB=50
200 NOUNNMB=50
210 VERBNMB=14
220 PREPNMB=6
230 RETURN
240 ' input
250 LIN$=""
260 RESTORE
270 A$=INKEY$:IF A$=CHR$(13) THEN 280 ELSE 270
280 CLS
290 RETURN
300 ' Determine Haiku pattern
310 RAN=INT(RND(1)*3)+1
320 RETURN
330 '   Check articles
340 FOR I=1 TO LEN(LIN$)-2
350 IF MID$(LIN$,I,3)=" A " THEN B$=MID$(LIN$,I+3,1):IF B$="A" OR B$="E" OR B$="I" OR B$="O" OR B$="U" THEN LIN$=LEFT$(LIN$,I+1)+"N"+MID$(LIN$,I+2)
360 NEXT I
370 FOR I=1 TO LEN(LIN$)-2
380 IF MID$(LIN$,I,4)=" AN " THEN B$=MID$(LIN$,I+4,1):IF B$="A" OR B$="E" OR B$="I" OR B$="O" OR B$="U" THEN 390:ELSE LIN$=LEFT$(LIN$,I+1)+MID$(LIN$,I+3)
390 NEXT I
400 RETURN
410 '    Choose words of poem
420 RAN=INT(RND(1)*(N-1))+P
430 FOR I=1 TO RAN
440 READ WRD$
450 NEXT I
460 LIN$=LIN$+" "+WRD$
470 RESTORE
480 RETURN
490 '   First haiku pattern
500 N=ARTNMB:P=0:GOSUB 410
510 N=ADJNMB:P=ARTNMB:GOSUB 410
520 N=NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 410
530 GOSUB 330
540 LIN$=LIN$+"..."
550 LOCATE 10,5:PRINT LIN$
560 LIN$=""
570 N=ARTNMB:P=0:GOSUB 410
580 N=NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 410
590 N=VERBNMB:P=ARTNMB+ADJNMB+NOUNNMB:GOSUB 410
600 N=PREPNMB:P=ARTNMB+ADJNMB+NOUNNMB+VERBNMB:GOSUB 410
610 N=ARTNMB:P=0:GOSUB 410
620 N=NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 410
630 GOSUB 330
640 LOCATE 11,5:PRINT LIN$
650 LIN$=""
660 N=ADJNMB:P=ARTNMB:GOSUB 410
670 GOSUB 410
680 N=NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 410
690 LOCATE 12,5:PRINT LIN$
700 RETURN
710 '    Second haiku pattern
720 N=NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 410
730 N=PREPNMB:P=ARTNMB+ADJNMB+NOUNNMB+VERBNMB:GOSUB 410
740 N=ARTNMB:P=0:GOSUB 410
750 N=NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 410
760 GOSUB 330
770 LIN$=LIN$+";"
780 LOCATE 11,5:PRINT LIN$
790 LIN$=""
800 N=ARTNMB:P=0:GOSUB 410
810 N=ADJNMB:P=ARTNMB:GOSUB 410
820 N=NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 410
830 N=PREPNMB:P=ARTNMB+ADJNMB+NOUNNMB+VERBNMB:GOSUB 410
840 N=ARTNMB:P=0:GOSUB 410
850 N=NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 410
860 GOSUB 330
870 LOCATE 12,5:PRINT LIN$
880 LIN$=""
890 N=ADJNMB:P=ARTNMB:GOSUB 410
900 N=NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 410
910 LOCATE 13,5:PRINT LIN$
920 RETURN
930 '   Third haiku pattern
940 N=ARTNMB:P=0:GOSUB 410
950 N=ADJNMB:P=ARTNMB:GOSUB 410
960 GOSUB 410
970 N=NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 410
980 GOSUB 330
990 LIN$=LIN$+";"
1000 LOCATE 11,5:PRINT LIN$
1010 LIN$=""
1020 N=PREPNMB:P=ARTNMB+ADJNMB+NOUNNMB+VERBNMB:GOSUB 410
1030 N=ARTNMB:P=0:GOSUB 410
1040 N=ADJNMB:P=ARTNMB:GOSUB 410
1050 N=NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 410
1060 GOSUB 330
1070 LOCATE 12,5:PRINT LIN$
1080 LIN$=""
1090 N=ARTNMB:P=0:GOSUB 410
1100 N=NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 410
1110 N=VERBNMB:P=ARTNMB+ADJNMB+NOUNNMB:GOSUB 410
1120 GOSUB 330
1130 LOCATE 13,5:PRINT LIN$
1140 RETURN
1150 '     Fourth haiku pattern
1160 N=ARTNMB:P=0:GOSUB 410
1170 N=ADJNMB:P=ARTNMB:GOSUB 410
1180 N=NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 410
1190 N=VERBNMB:P=ARTNMB+ADJNMB+NOUNNMB:GOSUB 410
1200 GOSUB 330
1210 LIN$=LIN$+";"
1220 LOCATE 11,5:PRINT LIN$
1230 LIN$=""
1240 N=ARTNMB:P=0:GOSUB 410
1250 N=ADJNMB:P=ARTNMB:GOSUB 410
1260 GOSUB 410
1270 N=NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 410
1280 GOSUB 330
1290 LOCATE 12,5:PRINT LIN$
1300 LIN$=""
1310 N=PREPNMB:P=ARTNMB+ADJNMB+NOUNNMB+VERBNMB:GOSUB 410
1320 N=ARTNMB:P=0:GOSUB 410
1330 N=ADJNMB:P=ARTNMB:GOSUB 410
1340 N=NOUNNMB:P=ARTNMB+ADJNMB:GOSUB 410
1350 GOSUB 330
1360 LOCATE 13,5:PRINT LIN$
1370 RETURN
1380 '    Program vocabulary
1390 '    A. Articles
1400 DATA A,THE,AN,THE
1410 '    B. ADJECTIVES
1420 DATA AUTUMN,HIDDEN,BITTER,MISTY,SILENT,EMPTY
1430 DATA DRY,DARK,SUMMER,ICY,DELICATE,QUIET
1440 DATA WHITE,COOL,SPRING,WINTER,DAPPLED
1450 DATA TWILIGHT,DAWN,CRIMSON,WISPY,AZURE
1460 DATA BLUE,BILLOWING,BROKEN,COLD,DAMP,FALLING
1470 DATA FROSTY,GREEN,LONG,LATE,LINGERING,LIMPID
1480 DATA LITTLE,MORNING,MUDDY,OLD,RED,ROUGH
1490 DATA STILL,SMALL,SPARKLING,THROBBING,VERMILLION
1500 DATA WANDERING,WITHERED,WILD,BLACK,YOUNG
1510 '    C. NOUNS
1520 DATA WATERFALL,RIVER,BREEZE,MOON
1530 DATA RAIN,WIND,SEA,MORNING,SNOW,LAKE,SUNSET
1540 DATA PINE,SHADOW,LEAF,DAWN,GLITTER,FOREST
1550 DATA HILL,CLOUD,MEADOW,SUN,GLADE,BIRD,BROOK
1560 DATA BUTTERFLY,BUSH,DEW,DUST,FIELD,FIR
1570 DATA FLOWER,FIREFLY,FEATHER,GRASS,HAZE,MOUNTAIN
1580 DATA NIGHT,POND,SHADE,SNOWFLAKE
1590 DATA SILENCE,SOUND,SKY,SHAPE,SURF,THUNDER
1600 DATA VIOLET,WATER,WILDFLOWER,WAVE
1610 '    D. VERBS
1620 DATA SHAKES,DRIFTS,HAS STOPPED,STRUGGLES
1630 DATA HAS FALLEN,HAS PASSED,SLEEPS,CREEPS
1640 DATA FLUTTERS,HAS RISEN,IS FALLING,IS TRICKLING
1650 DATA MURMURS,IS FLOATING
1660 '    E. PREPOSITIONS
1670 DATA ON,IN,OF,UNDER,OVER,NEAR

HOME-INV.BAS

10 'CLS:INPUT "CHANGE LINE 1020 TO YOUR NAME AND ADDRESS. THEN DELETE LINE 10. PRESS ENTER TO    CONTINUE",DUMMY$
20 '***********************************************************************
30 '***********************************************************************
40 '****                                                               ****
50 '****                    HOME INVENTORY PROGRAM                     ****
60 '****                             by                                ****
70 '****                        Brian Mann                             ****
80 '****                      (804) 320-4901                           ****
90 '****                                                               ****
100 '****    COPYRIGHT OCTOBER, 1982 BY BRIAN D. MANN                   ****
110 '****        FOR NONPROFIT DISTRIBUTION ONLY. ALL RIGHTS RESERVED.  ****
120 '****                                                               ****
130 '***********************************************************************
140 '***********************************************************************
150 DEF SEG=0 '------------------------------─────┐
160 K=PEEK(&H417) OR &H40 '                       │ SET CAPS
170 POKE &H417,K   '-------------------------─────┘
180 ROOM =0:SUB=0:SUBTTL=0:BUFFER=0
190 SIZE=100:DIM DES$(SIZE), NO(SIZE), DOL(SIZE), RM(SIZE)
200 KEY OFF:FOR I=1 TO 10: KEY I,"":NEXT
210 RESTORE 'sets data statements to reset
220 GOTO 900 'main menu
230 CLS'########################### PRINT INPUT SCREEN ROUTINE ##################
240 RESTORE
250 BUFFER=BUFFER+1
260 DATA 5,45,8,41,12,37,14,57,16,42,0,0
270 COLOR 15,0,0
280 LOCATE 2,28 :PRINT "HOME INVENTORY PROGRAM";
290 COLOR 7,0,0
300 LOCATE 5,10:PRINT "ENTER `S' TO SAVE, `M' FOR MENU==>  "
310 LOCATE 8,10 :PRINT "ENTER DESCRIPTION OF ITEM ===> ";
320 LOCATE 10,20: PRINT "^ stop description here";
330 LOCATE 12,10:PRINT "ENTER NUMBER OF ITEMS ===> 1";
340 LOCATE 14,10: PRINT "ENTER REPLACEMENT COST OF INDIVIDUAL ITEM ===> 1      (EXAMPLE: 875.67)";
350 LOCATE 16,10: PRINT "ENTER LOCATION OF ITEM(S) ===> ";ROOM
360 LOCATE 18,10: PRINT "1=LIVING ROOM, 2=KITCHEN/DINING ROOM, 3=DOWNSTAIRS BATH, 4=UPSTAIRS BATH,       5=BEDROOM, 6=STUDY, 7=ATTIC, 8=OUTSIDE"
370 LOCATE 23,5:PRINT "USE THE ENTER KEY TO MOVE FROM ONE FIELD TO ANOTHER."
380 LOCATE 24,5:PRINT "SAVE AN ENTRY ON THE SCREEN BEFORE GOING TO THE MENU.";
390 LOCATE 1,1:PRINT USING "BUFFER AT ## OF ###";BUFFER,SIZE;
400 GOTO 440
410 INPUT "",A$
420 IF R=5 AND A$="S" THEN COLOR 7,0,0: GOTO 490
430 IF R=5 AND A$="M" THEN COLOR 7,0,0: GOTO 800
440 READ R,C
450 COLOR 15,0,0
460 IF R=0 AND C=0 THEN RESTORE:READ R,C
470 LOCATE R,C
480 GOTO 410
490 '############################ BEGINNING OF READ SCREEN ROUTINE ###########
500 DESC$="":X$="" '            RESET VARIABLES
510 FLAG1=1 '                   RESET BUFFER DUMP VARIABLE
520 FOR I=41 TO 80
530 X=SCREEN(8,I) '             READ THE SCREEN AT 8,41-80 ONE CHAR AT A TIME
540 X$=CHR$(X)'                 CHANGE THE CHAR CODE TO A LETTER
550 DESC$=DESC$+X$'             BUILD THE WORD FROM THE CHARACTERS
560 NEXT'                       GO TO THE NEXT CHARACTER
570 FOR I=1 TO 20
580 X=SCREEN(9,I) '             READ THE SCREEN AT 9,1-20 ONE CHAR AT A TIME
590 X$=CHR$(X)'                 CHANGE THE CHAR CODE TO A LETTER
600 DESC$=DESC$+X$'             BUILD THE WORD FROM THE CHARACTERS
610 NEXT'                       GO TO THE NEXT CHARACTER
620 NUM$="":X$=""'              THE REST USE THE SAME LOGIC
630 FOR I=37 TO 40
640 X=SCREEN(12,I)
650 X$=CHR$(X)
660 NUM$=NUM$+X$
670 NEXT
680 NUM=VAL(NUM$)
690 DOLLAR$="":X$=""
700 FOR I=57 TO 63
710 X=SCREEN(14,I)
720 X$=CHR$(X)
730 DOLLAR$=DOLLAR$+X$
740 NEXT
750 DOLLAR=VAL(DOLLAR$)
760 ROOM=SCREEN(16,42)
770 ROOM=VAL(CHR$(ROOM))
780 DES$(BUFFER)=DESC$:NO(BUFFER)=NUM:DOL(BUFFER)=DOLLAR:RM(BUFFER)=ROOM' BUILD A BUFFER TO SAVE TIME IN ENTERING
790 IF BUFFER=SIZE THEN 800 ELSE 230' IS IT FULL?
800 IF FLAG1=0 THEN 900' HAS THE BUFFER BEEN DUMPED? 0 FOR YES, 1 FOR NO
810 WIDTH 40:LOCATE 12,10: PRINT "HOLD FOR DISK OPERATION"
820 OPEN "HOME-INV.DAT" FOR APPEND AS #1
830 IF A$="M" OR A$="m" THEN BUFFER = BUFFER - 1' MENU OPTION ADDS TO COUNTER WITHOUT ADDING TO ARRAY
840 FOR B=1 TO BUFFER
850 WRITE#1, DES$(B);NO(B),DOL(B),RM(B)
860 DES$(B)="":NO(B)=0:DOL(B)=0:RM(B)=0
870 NEXT
880 CLOSE:WIDTH 80: BUFFER=0: FLAG1=0' RESET
890 IF A$="S" OR A$="s" THEN 230 ELSE 900
900 REM -----------------MASTER MENU-----------------
910 WIDTH 80:CLS
920 BUFFER=0
930 COLOR 15,0,0
940 LOCATE 5,27: PRINT "HOME INVENTORY PROGRAM";
950 COLOR 7,0,0
960 LOCATE 6,37:PRINT "by"
970 LOCATE 7,31:PRINT "BRIAN D. MANN"
980 COLOR 15,0,0
990 LOCATE 10,32: PRINT "MASTER MENU";
1000 COLOR 7,0,0
1010 LOCATE 12,10: PRINT "DO YOU WISH TO ==>"
1020 LOCATE 14,20: PRINT "1. FILE AN ITEM IN THE INVENTORY.":LOCATE 16,20:PRINT "2. PRINT THE ITEMS ALREADY FILED.":LOCATE 18,20:PRINT "3. DELETE AN ENTRY"
1030 LOCATE 20,20: PRINT "4. EXIT THE PROGRAM"
1040 LOCATE 12,30: INPUT "",P
1050 IF P=1 THEN 230'      ENTRY PANEL
1060 IF P=2 THEN 1110'     PRINT ROUTINE
1070 IF P=3 THEN 1710'    DELETE ITEM
1080 IF P=4 THEN 1100'     EXIT
1090 BEEP: LOCATE 24,10: PRINT "YOU ENTERED ";P; "TRY AGAIN";:GOTO 1040
1100 CLS:END
1110 '########################### PRINT ROUTINE ################################
1120 CLS
1130 COLOR 15
1140 LOCATE 8,35: PRINT" PRINT ROUTINE"
1150 COLOR 7
1160 LOCATE 12,10: PRINT "DO YOU WISH TO ==>"
1170 LOCATE 14,20: PRINT "1. PRINT THE LISTED ITEMS TO THE SCREEN.":LOCATE 16,20:PRINT "2. PRINT THE LISTED ITEMS TO THE PRINTER.":LOCATE 18,20:PRINT "3. RETURN TO THE MASTER MENU."
1180 LOCATE 12,30: INPUT "",P1
1190 SUB=0
1200 IF P1=1 THEN 1240
1210 IF P1=2 THEN 1240
1220 IF P1=3 THEN 900
1230 BEEP: GOTO 1180
1240 CLS
1250 I1=0
1260 ON ERROR GOTO 1920
1270 OPEN "INVENTRY.DAT" FOR INPUT AS #1
1280 IF EOF(1) THEN CLOSE: GOTO 1650
1290 I1=I1+1
1300 INPUT#1,DESC$,NUM,DOLLAR,ROOM
1310 IF ROOM=1 THEN ROOM$="LIVING ROOM":GOTO 1400
1320 IF ROOM=2 THEN ROOM$="KITCHEN/DINING ROOM":GOTO 1400
1330 IF ROOM=3 THEN ROOM$="DOWNSTAIRS BATHROOM":GOTO 1400
1340 IF ROOM=4 THEN ROOM$="UPSTAIRS BATHROOM":GOTO 1400
1350 IF ROOM=5 THEN ROOM$="MASTER BEDROOM":GOTO 1400
1360 IF ROOM=6 THEN ROOM$="STUDY":GOTO 1400
1370 IF ROOM=7 THEN ROOM$="ATTIC":GOTO 1400
1380 IF ROOM=8 THEN ROOM$="OUTSIDE":GOTO 1400
1390 ROOM$="UNSPECIFIED"
1400 SUBTTL=NUM*DOLLAR
1410 SUB=SUB+SUBTTL'        KEEP UP WITH ACCUMULATED WORTH
1420 IF P1=2 THEN GOTO 1470
1430 PRINT USING "###  &  REPLACEMENT  COST=$####.##  NUM. OF ITEMS= ###  SUBTOTAL= ####.## LOCATION:&";I1;DESC$;DOLLAR;NUM;DOLLAR*NUM;ROOM$
1440 PRINT
1450 IF I1/7=INT(I1/7) THEN LOCATE 24,40:INPUT "PRESS ENTER TO CONTINUE";Z$
1460 GOTO 1280
1470 REM ############################# OUTPUT TO PRINTER  #####################
1480 CLS
1490 IF I1 <>1 THEN 1600
1500 INPUT "WHAT IS THE DATE (IN THE FORM 08/12/82) ==>";DAT$
1510 INPUT "SET THE TOP OF FORM ON THE PRINTER AND PRESS ENTER WHEN READY";Z$
1520 WIDTH "LPT1:",132
1530 LPRINT CHR$(27) "0":LPRINT CHR$(27) "C" CHR$(88)'SET 8LINES/INCH AND 88 LINE FORM  IT IS IMPORTANT THAT THIS IS DONE BEFORE ANYTHING IS PRINTED
1540 LPRINT CHR$(14);"              HOME INVENTORY"
1550 LPRINT "BRIAN  AND KAREN  MANN.  628 ELGIN TERRACE, RICHMOND, VA. 23225 (804) 320-4901"
1560 LPRINT "                                 AS OF ";DAT$;
1570 LPRINT CHR$(15)
1580 LPRINT SPC(72) "REPLACEMENT     NUMBER OF"
1590 LPRINT "ITEM" SPC(25) "DESCRIPTION" SPC(31)" COST (EACH)       ITEMS     SUBTOTAL     LOCATION"
1600 IF I1/80 <> INT(I1/80) THEN 1630 ELSE LPRINT CHR$(12)
1610 LPRINT SPC(72) "REPLACEMENT     NUMBER OF"
1620 LPRINT "ITEM" SPC(25) "DESCRIPTION" SPC(31)" COST (EACH)       ITEMS     SUBTOTAL     LOCATION"
1630 LPRINT USING "###     &      $####.##        ###       ####.##     &";I1;DESC$;DOLLAR;NUM;DOLLAR*NUM;ROOM$
1640 GOTO 1280
1650 ' ############################ EXIT ROUTINE ###########################
1660 IF P1=1 THEN PRINT USING "THE TOTAL WORTH OF THE FILED OBJECTS IS $#####.##";SUB:GOTO 1690
1670 IF P1=2 THEN LPRINT USING "THE TOTAL WORTH OF THE FILED OBJECTS IS $#####.##";SUB:
1680 IF P1=2 THEN LPRINT CHR$(12):LPRINT CHR(27) "@";
1690 INPUT "PRESS ENTER TO RETURN TO THE MENU";Z$
1700 GOTO 900
1710 ' ########################### DELETE ITEM ROUTINE ####################
1720 CLS
1730 LOCATE 2,2:PRINT "IT IS EASIER AND MORE FLEXIBLE TO DELETE ITEMS USING THE EDLIN PROGRAM SUPPLIED"
1740 LOCATE 3,2:PRINT "WITH IBM-DOS. EDIT THE `INVENTRY.DAT' FILE AND DELETE THE APPROPRIATE LINE.";
1750 LOCATE 8,35:COLOR 15:PRINT "DELETE ITEM":COLOR 7
1760 LOCATE 10,17:INPUT "ENTER THE ITEM NUMBER OF THE ITEM TO BE DELETED                                 ( OR `0' TO RETURN TO THE MENU)===> ",ITEM
1770 IF ITEM = 0 THEN 900
1780 COLOR 23: LOCATE 24,31:PRINT "HOLD FOR DISK OPERATION";:COLOR 7:LOCATE 1,1
1790 I=1
1800 ON ERROR GOTO 1920
1810 NAME "INVENTRY.DAT" AS "TEMP.DAT"
1820 OPEN "TEMP.DAT" FOR INPUT AS #1
1830 OPEN "INVENTRY.DAT" FOR APPEND AS #2
1840 IF EOF(1) THEN 1890
1850 INPUT#1, DESC$,NUM,DOLLAR,ROOM
1860 IF I <> ITEM THEN WRITE#2, DESC$,NUM,DOLLAR,ROOM   ELSE LOCATE 15,1:PRINT USING "ENTRY & DELETED";DESC$
1870 I=I+1
1880 GOTO 1840
1890 CLOSE
1900 KILL"TEMP.DAT"
1910 GOTO 900
1920 '######################## ERROR HANDLING ROUTINE #########################
1930 CLOSE:IF ERR=53 THEN 1960
1940 IF ERR=58 THEN 1980
1950 SOUND 100,20:PRINT USING "ERROR NUMBER ### IN LINE ##### . PRESS ENTER TO RETURN TO MAIN MENU.";ERR,ERL:INPUT Z1$: GOTO 900
1960 WIDTH 40: SOUND 100,20: LOCATE 12,10: PRINT "THERE IS NO INVENTRY.DAT ON THE DISK!!!":INPUT "PRESS ENTER TO RETURN TO THE MENU",Z1$
1970 WIDTH 80:GOTO 900
1980 SOUND 100,20:PRINT "FILE TEMP.DAT ALREADY EXISTS. "
1990 INPUT "DO YOU WISH IT DELETED (Y OR N) ";ANS$
2000 IF ANS$<>"Y" THEN GOTO 900
2010 KILL "TEMP.DAT"
2020 GOTO 1800

HOME-INV.DOC





                HOME INVENTORY PROGRAM

     This program allows you to keep a list of your possesions on your
computer. It is completely menu driven and used easy screen input for
data entry. It prints the inventory on an Epson MX-80 (or equivalent)
printer.















INSAT.BAS

11 '*    INTELSAT/BAS   Vers S1.0    8/27/84
12 '*    Sanyo BASIC conversion by Wayne Day
13 '*  This program is in the public domain, and may not be sold
14 '*
15 '*  This program calculates the aiming angles from any point in
16 '*  the northern hemisphere, for selected geostationary satellites.
17 '*  The satellites included in the data statements are those which
18 '*  would normally be viewable, and of interest to private
19 '*  TVRO earth station owners.
20 '*
21 '* The magnetic deviation is critical for accurate aiming.  If you
22 '* do not already know your magnetic deviation, contact the nearest
23 '* Federal Aviation Agency Flight Service Station, and they should
24 '* be able to give it to you quickly.
25 '*
26 '*
100 CLS
110 LOCATE 9 ,1
120 SYMBOL (90,20),"INTELSAT/BAS",4,4,2
130 PRINT"                     Satellite Aiming Chart"
140 PRINT
150 LINE INPUT"Location name: ";A$
160 INPUT"Magnetic Deviation";MD
170 PRINT
180 PRINT" Do you wish to input location data as decimal Degrees (i.e. 32.00)"
190 PRINT"  or as Degrees / Minutes / Seconds (i.e. 32 00' 00' ')"
200 PRINT"      (D)=Decimal      (M)=Minutes/Seconds"
210 AN$=INKEY$:IF AN$=""THEN 210
220 IF AN$="D" OR AN$="d" THEN 250
230 IF AN$="M" OR AN$="m" THEN 280
240 GOTO 210
250 PRINT:INPUT "  Latitude: ";LT:LA=LT:LT=LT*.01745
260 PRINT:INPUT " Longitude: ";LN
270 GOTO 400
280 PRINT:INPUT "  Latitude Degrees :";DG
290 INPUT "           Minutes :";MN
300 IF MN<0 OR MN>59 THEN BEEP:GOTO 290
310 INPUT "           Seconds :";SC
320 IF SC<0 OR SC>59 THEN BEEP:GOTO 310
330 LT=DG+(MN/60)+(SC/6000):LA=LT:LT=LT*.01745
340 PRINT:INPUT " Longitude Degrees:";DG
350 INPUT "           Minutes:";MN
360 IF MN<0 OR MN>59 THEN BEEP:GOTO 350
370 INPUT "           Seconds:";SC
380 IF SC<0 OR SC>59 THEN BEEP:GOTO 370
390 LN=DG+(MN/60)+(SC/6000)
400 PRINT:PRINT" Ouput to [S]creen    or    Screen and [P]rinter ?";
410 AN$=INKEY$: IF AN$="" THEN 410
420 IF AN$="P" OR AN$="p" THEN LP=1 ELSE LP=0
430 CLS:PRINT"              Satellite Aiming Chart for "A$
440 PRINT TAB(15)"Latitude: ";:PRINT USING "###.##";LA;:PRINT " Longitude: ";:PRINT USING "###.##";LN
450 PRINT STRING$(70,"-")
460 PRINT"Satellite"TAB(15)"Assigned" TAB(30)"Azimuth" TAB(45) "Azimuth" TAB(60) "Elevation"
470 PRINT TAB(16)"Orbit" TAB(31) "True" TAB(45)"Magnetic"
480 PRINT STRING$(70,"-")
490 IF LP=1 THEN GOSUB 720
500 RESTORE
510 READ P,S$: IF P=999 THEN 520 ELSE 560
520 PRINT"  Press <SPACE BAR> to END, any other key for another";
530 AN$=INKEY$:IF AN$="" THEN 530
540 IF AN$=" " THEN 550 ELSE CLS:IF LP=1 THEN LPRINT CHR$(12):GOTO 150
550 IF LP=1 THEN LPRINT CHR$(12):CLS:END ELSE CLS:END
560 L=LN-P:C1=L:L=L*.01745
570 F=COS(L)*COS(LT)
580 AZ=-ATN(F/SQR(-F*F+1))+3.1415/2
590 A1=(SIN(1.5705-AZ)-.1513)/COS(1.5705-AZ)
600 E=ATN(A1)
610 G=-(TAN(LT)/TAN(AZ)):E=E*57.3
620 C=-ATN(G/SQR(-G*G+1))+3.1415/2:C=C*57.3
630 IF C1<0 THEN C=360-C
640 AM=C-MD
650 PRINT S$;
660 PRINT TAB(17);:PRINT USING"###.#";P;
665 IF E<=0 THEN PRINT "      ***  Satellite Not Visible at this location     ***":GOTO 700
670 PRINT TAB(31);:PRINT USING"###.#";C;
680 PRINT TAB(46);:PRINT USING"###.#";AM;
690 PRINT TAB(62);:PRINT USING"###.#";E
700 IF LP=1 THEN GOSUB 800
710 GOTO 510
720 LPRINT TAB(15)"Satellite Aiming Chart for ";A$
730 LPRINT TAB(15)"Latitude ";:LPRINT USING "###.##";LA;:
740 LPRINT " Longitude ";:LPRINT USING "###.##";LN
750 LPRINT STRING$ (70,"-")
760 LPRINT "Satellite" TAB(15) "Assigned" TAB(30) "Azimuth" TAB(45) "Azimuth" TAB(60) "Elevation"
770 LPRINT TAB(16) "Orbit" TAB(31) "True" TAB(45) "Magnetic"
780 LPRINT STRING$(70,"-")
790 RETURN
800 LPRINT S$;
810 LPRINT TAB(17);:LPRINT USING "###.#";P;
815 IF E<=0 THEN LPRINT"    *** Satellite Not Visible at this Location ***":GOTO 850
820 LPRINT TAB(31);:LPRINT USING "###.#";C;
830 LPRINT TAB(46);:LPRINT USING "###.#";AM;
840 LPRINT TAB(62);:LPRINT USING "##.#";E
850 RETURN
860 DATA 350,ECS1,347,ECS2,338.3,GORIZONT 3,327,RADUGA I1
870 DATA 325,RADUGA 9,314,RADUGA 6,307,GORIZONT 5
880 DATA 383,INTELSAT V-F1,300,INTELSAT V-F7,298,INTELSAT V-F5
890 DATA 283,PALAPA A02,278,PALAPA A01,275,RADUGA 10
900 DATA 275,GORIZONT 6,270,GORIZONT 2,266,INSAT 1B
910 DATA 252,PALAPA B01,247,PALAPA B02,242,PALAPA B03
920 DATA 231,SAKURA CS2A,226,SAKURA CS2B,187,INTELSAT 4A-F6
930 DATA 34.5,INTELSAT V-F2,31,INTELSAT 4A-F1,27.4,INTELSAT V-F2/F3
940 DATA 18.5,INTELSAT V-F6,14.5,GORIZONT 4,14,GORIZONT 7
950 DATA 11.45,SYMPHONIE 1,11.33,SYMPHONIE 2,1.0,INTELSAT 4-F8/F4
960 DATA 999,END
970 'ELSAT V-F6,14.5,GORIZONT

SOUNDEFF.BAS

210 KEY OFF
220 WIDTH 80
230 SCREEN 0
240 COLOR 0,7
250 CLS:LOCATE ,,0,0,7
260 PI=3.14159
270 L$=STRING$(78,205)
280 PRINT CHR$(201)L$CHR$(187);
290 PRINT CHR$(186);:COLOR 0:PRINT TAB(29)"*** Sound effects ***";
300 COLOR 0:PRINT TAB(80)CHR$(186);
310 PRINT CHR$(204)L$CHR$(185);
320 FOR X=4 TO 19
330 PRINT CHR$(186)TAB(80)CHR$(186);
340 NEXT
350 PRINT CHR$(204)L$CHR$(185);
360 PRINT CHR$(186);:COLOR 0:PRINT TAB(7)"*** ENTER YOUR CHOICE ***";
365 PRINT TAB(35)"[[[ Press any key to select new sound ]]]";
370 COLOR 0:PRINT TAB(80)CHR$(186);
380 PRINT CHR$(200)L$CHR$(188);
390 COLOR 0
400 LOCATE 4,3:PRINT"A-Bat screeches";
410 LOCATE 5,3:PRINT"B-Bird call";
420 LOCATE 6,3:PRINT"C-Clock ticking";
430 LOCATE 7,3:PRINT"D-Conveyor moving";
440 LOCATE 8,3:PRINT"E-Crickets chirping";
450 LOCATE 9,3:PRINT"F-Doorbell buzzing";
460 LOCATE 10,3:PRINT"G-Explosion";
470 LOCATE 11,3:PRINT"H-Generator starting";
480 LOCATE 12,3:PRINT"I-Machine noise";
490 LOCATE 13,3:PRINT"J-Phaser fire"
500 LOCATE 14,3:PRINT"K-Phone call";
510 LOCATE 15,3:PRINT"L-Phone- tuned ring"
520 LOCATE 16,3:PRINT"M-Photon torpedo";
530 LOCATE 17,3:PRINT"N-Random sounds";
540 LOCATE 18,3:PRINT"O-Saucer(flying)";
550 LOCATE 19,3:PRINT"P-Siren"
560 LOCATE 3,40:COLOR 0:PRINT CHR$(203);
570 FOR X=4 TO 19:LOCATE X,40:PRINT CHR$(186);:NEXT
580 LOCATE 20,40:PRINT CHR$(202);
590 COLOR 0
600 LOCATE 4,42:PRINT"Q-Spigot dripping";
610 LOCATE 5,42:PRINT"R-Train passing";
620 LOCATE 6,42:PRINT"S-Whooping siren";
630 LOCATE 7,42:PRINT"T-Computer thinking";
640 LOCATE 19,42:PRINT"*-TO END";
650 AAA$=INKEY$
660 IF AAA$=""THEN 650 ELSE IF AAA$="*"THEN END ELSE AAA=ASC(AAA$):IF AAA>90 THEN AAA=AAA-32
670 IF AAA<65 OR AAA>90 THEN BEEP:GOTO 650 ELSE AAA=AAA-64
680 ON AAA GOSUB 1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100,1110,1120
685 IF AAA<13 THEN GOTO 700
690 ON AAA-13 GOSUB 1130,1140,1150,1160,1170,1180,1190
700 BEEP:GOTO 650
900 QUIT=0:V$=INKEY$
902 IF LEN(V$)=0 THEN RETURN
904 QUIT=1
905 RETURN
1000 REM BAT SCREECH
1001 FOR X=12000 TO 1400 STEP -100
1002 SOUND X,0.11
1003 NEXT
1004 GOSUB 900:IF QUIT=1 THEN RETURN
1005 GOTO 1001
1010 REM birdcall
1011 A=3500:B=3000
1012 SOUND A,0.9
1013 FOR X=1 TO 50:NEXT X
1014 SOUND B,0.9
1015 FOR X=1 TO 50:NEXT X
1016 SOUND 4000,0.9
1017 FOR X=1 TO 50:NEXT X
1018 GOSUB 900:IF QUIT=1 THEN RETURN
1019 GOTO 1012
1020 REM clock ticking
1021 SOUND 12500,0.35
1022 FOR X=1 TO 600:NEXT X
1023 GOSUB 900:IF QUIT=1 THEN RETURN
1024 GOTO 1020
1030 REM MOTORIZED CONVEYOR
1031 FOR X=37 TO 100
1032 SOUND X,0.05
1033 NEXT
1034 GOSUB 900:IF QUIT=1 THEN RETURN
1035 GOTO 1031
1040 REM CRICKETS
1041 FOR X=1 TO 10
1042 SOUND 1800,0.05
1043 NEXT
1044 SOUND 2000,0.02
1045 FOR X=1 TO 1800
1046 NEXT X
1047 GOSUB 900:IF QUIT=1 THEN RETURN
1048 GOTO 1041
1050 REM DOOR BUZZER
1051 FOR X=1 TO 20
1052 FOR A=5700 TO 16000 STEP 1500
1053 SOUND A,0.01
1054 NEXT
1055 NEXT X
1056 FOR TD=1 TO 1500:NEXT TD
1057 GOSUB 900:IF QUIT=1 THEN RETURN
1058 GOTO 1051
1060 FOR EX=1 TO 5
1061 FOR E=300 TO 1800 STEP 150
1062 SOUND E,0.1
1063 NEXT E
1064 NEXT EX
1065 GOSUB 900:IF QUIT=1 THEN RETURN
1066 GOTO 1060
1070 REM ELECTRICAL GENERATOR
1071 FOR X=37 TO 1000
1072 SOUND X,0.1:SOUND 2*X,0.1:SOUND 3*X,0.1
1073 GOSUB 900:IF QUIT=1 THEN RETURN
1074 NEXT
1075 FOR Y=1 TO 20
1076 SOUND X,0.1:SOUND 2*X,0.1:SOUND 3*X,0.1
1077 GOSUB 900:IF QUIT=1 THEN RETURN
1079 NEXT Y:RETURN
1080 REM MACHINERY
1081 FOR X=400 TO 100 STEP -10
1082 SOUND X,0.01
1083 SOUND X/2+37,0.01
1084 SOUND X/3+37,0.01
1085 NEXT
1086 GOSUB 900:IF QUIT=1 THEN RETURN
1087 GOTO 1081
1090 REM STAR TREK PHASER SOUND
1091 FOR X=300 TO 1800 STEP 100
1092 SOUND X,0.1
1093 NEXT
1094 GOSUB 900:IF QUIT=1 THEN RETURN
1095 GOTO 1091
1100 FOR A=0 TO 8:FOR X=1 TO 10*RND:SOUND 15000,1:FOR Y=1 TO 100:NEXT Y:NEXT X:FOR Z=1 TO 1000:NEXT Z:GOSUB 900:IF QUIT=1 THEN RETURN:NEXT A:FOR TD=1 TO 1500:NEXT TD:FOR B=0 TO 5:FOR X=1 TO 100:SOUND 500,0.04:NEXT X:FOR TD=1 TO 1500:NEXT TD:NEXT B:RETURN
1110 REM TUNED TELEPHONE RING
1111 REM LOW TONE=C HIGH TONE=E
1113 FOR X=1 TO 30
1114 SOUND 523.25,0.5
1115 SOUND 659.26,0.5
1116 NEXT
1117 FOR TD=1 TO 1500:NEXT TD
1118 GOSUB 900:IF QUIT=1 THEN RETURN
1119 GOTO 1113
1120 REM PHOTON TORPEDO FIRE
1121 FOR X=4000 TO 100 STEP -150
1122 SOUND X,0.01
1123 SOUND X/2+37,0.01
1124 SOUND X/3+37,0.01
1125 IF X<200 THEN SOUND 30000,0.1:RETURN
1126 NEXT
1130 REM RANDOMIZED SOUNDS AND DURATIONS
1131 FOR Y=37 TO 1000 STEP 100*RND
1132 X=RND*1
1133 SOUND Y,X
1134 NEXT
1135 FOR Y=1000 TO 37 STEP -100*RND
1136 SOUND Y,X
1137 NEXT
1138 GOSUB 900:IF QUIT=1 THEN RETURN
1139 GOTO 1131
1140 REM FLYING SAUCER SOUND
1141 FOR A=500 TO 1500 STEP 200
1142 SOUND A,0.5
1143 NEXT
1144 GOSUB 900:IF QUIT=1 THEN RETURN
1145 GOTO 1141
1150 REM siren
1151 FOR A=200 TO 1000:SOUND A,0.1
1153 NEXT
1154 SOUND A,15:GOSUB 900:IF QUIT=1 THEN RETURN
1155 FOR A=1000 TO 200 STEP -1:SOUND A,0.1
1157 NEXT
1158 GOSUB 900:IF QUIT=1 THEN RETURN
1159 GOTO 1151
1160 REM DRIPPING SPIGOT
1161 FOR X=1000 TO 1200 STEP 100
1162 SOUND X,0.15
1163 NEXT
1164 FOR TD=0 TO 2000:NEXT TD
1165 GOSUB 900:IF QUIT=1 THEN RETURN
1166 GOTO 1161
1170 REM TRAIN
1171 FOR X=1700 TO 37 STEP -4
1172 IF X=100 THEN SOUND 30000,0.05:RETURN
1173 SOUND X,0.01
1174 NEXT
1180 REM whooper siren
1181 FOR A=900 TO 1000
1182 SOUND A,0.089999999#
1183 NEXT
1184 GOSUB 900:IF QUIT=1 THEN RETURN
1185 GOTO 1181
1190 REM random electronic sounds
1192 SOUND (2000*RND)+37,0.5
1194 GOSUB 900:IF QUIT=1 THEN RETURN
1196 GOTO 1192

WEATHER.DOC

******************************************************************************
*                                                                            *
*                               USER'S MANUAL                                *
*                                    FOR                                     *
*                            THE WEATHER PROGRAM                             *
*                                                                            *
*                                Version 1.8                                 *
*                                                                            *
*                                                                            *
*              To Display Records Stored in a Weather Database               *
*            To Calculate Statistics Calculated from the Database            *
*                                                                            *
*                                                                            *
*         Copyright 1985-89 Martin E. Morrison.  All rights reserved.        *
*                 136 Loma Verde Drive, San Lorenzo, CA 94580                *
*                         Telephone:  (415) 276-8652                         *
*                          CompuServe ID:  70315,101                         *
*                                                                            *
*                           Public-Domain Software                           *
*                                                                            *
******************************************************************************


                                   The Files
                                   ---------

WEATHER consists of the following files:

     WEA0000.DAT   A weather database template
     WEA1984.DAT   A sample weather database
     WEA1985.DAT   A sample weather database
     WEA1986.DAT   A sample weather database
     WEA1987.DAT   A sample weather database
     WEA1988.DAT   A sample weather database
     WEA1989.DAT   A sample weather database
     WEATHER.ASC   A text file on weather measurement units
     WEATHER.DOC   This user's manual
     WEATHER.EXE   The Weather Program



                                 Using WEATHER
                                 -------------

WEATHER.EXE is the executable file that is run directly from the DOS prompt.
You should make sure that any annual weather datafiles you intend to use
(explained under "The Annual Weather Datafiles" below) are resident with
WEATHER.EXE on your current device and directory.

WEATHER first displays the Options Menu as follows:

     (1) Display or print weather records
     (2) Display or print weather statistics
     (3) Exit

IF YOU SELECT OPTION 1 OR 2, WEATHER first asks you to input the name of the
annual weather datafile to be used.  (As explained under "The Annual Weather
Datafiles" below, the weather data for each calendar year should be stored in
a separate file with a filename you designate.)  If you input a filename that
does not exist, WEATHER warns you with a beep and a "***FILE NOT FOUND***"
message and then return you to the Options Menu.  If you enter a carriage
return without inputting a filename, WEATHER returns you to the Options
Menu.

WEATHER then displays the "Reading records in from file [filename]" message
and displays the date of each record as it is read in, so that you can follow
the progress of reading in the records.  If you see any errors (e.g., dates in
the wrong format or extraneous characters) as the display increments or if you
receive an "Input past end" error message, check at the date where the error
occurred for typographical errors, particularly punctuation errors, in the
annual weather datafile you used.  If you receive an "Input past end" error
message after the last date, check the end of your datafile for the presence
of more than one carriage return (blank lines) after the last line of data.

WEATHER then prompts you for the following information:

     Input starting date (YY-MM-DD)
     Input ending date (YY-MM-DD)
     Input city location (10 letters maximum)
     Input state location (2-letter state code)
     Printout also (yes/NO)

Since WEATHER searches for the dates in ASCII order, you need enter only YY or
YY-MM, if you desire a year or year-month combination.  However, you must
enter leading zeros (e.g., 86-03-04).  If you enter a carriage return at the
"Input starting date" prompt, WEATHER returns to the Options Menu.  If you
enter a carriage return at the "Input ending date" prompt, WEATHER reprompts
for the starting date.  The printout default is "no" (display on monitor
screen only).

IF YOU SELECTED OPTION 1, WEATHER displays or prints the following fields
from the database for each record between the starting and ending dates:

     Date
     Low Temperature
     Time of Low Temperature
     High Temperature
     Time of High Temperature
     Atmospheric Pressure
     Rainfall

IF YOU SELECTED OPTION 2, WEATHER calculates and displays or prints the
following statistics from the database for the records between the starting
and ending dates.  The accuracy of the statistics is, of course, dependent
upon the completeness of the records entered into the database):

     Extreme Low Temperature (with date and time of day)
     Extreme High Temperature (with date and time of day)
     Extreme Low Pressure (with date)
     Extreme High Pressure (with date)
     Extreme High Rainfall (with date)
     Average Low Temperature (with average time of day)
     Average High Temperature (with average time of day)
     Average Atmospheric Pressure
     Average Rainfall
     Total Rainfall

IF YOU SELECT OPTION 3, WEATHER exits to DOS.

IF YOU SELECT ANY OTHER OPTION NUMBER, WEATHER warns you with a beep and an
"*** OPTION NUMBER INVALID ***" message and allows you to input another
option number.



                         The Annual Weather Datafiles
                         ----------------------------

The files named WEA19nn.DAT, consisting of the weather data for Hayward,
California, for each of the years indicated in the filename, are supplied as
samples to demonstrate the format for entering data into an annual weather
datafile to be used by WEATHER.  This file is a standard ASCII file that may
be listed using the DOS TYPE command.

Because of restrictions on string space imposed by the IBM BASIC Compiler, the
weather data for each calendar year should be stored in a separate file under
a name you designate for each (e.g., WEA1984.DAT).  It is possible to maintain
annual weather datafiles for more than one location; however, each location's
annual datafile must be maintained separately under a different filename, and
only one location's annual datafile may be used by WEATHER at a time.

First, inspect the sample file, which is an ASCII file, by using the DOS
TYPE command.  Then, observe WEATHER's operation by running it and inputting
WEA1984.DAT when prompted to input the name of the annual weather datafile to
be used.

As your annual weather datafiles must be ASCII files, you may enter them by
using EDLIN (the DOS line editor), WordStar's non-document mode, or any
other editor that produces an ASCII file consisting only of letters, numbers,
and punctuation.  You should particularly note the following requirements for
entering data:

     * You must enter each day's record serially, earliest date first, in
       exactly the same format as the sample file with respect to spacing,
       punctuation, etc.

     * You must enter the abbreviation "n/a" ("not available") when you are
       missing any value.  (WEATHER interprets the special case of a "not-
       available" Rainfall value as a "000.0" value.)

     * You must not enter extra spaces at the end of a line before the
       carriage return or enter extra carriage returns (blank lines) after the
       last line of data.

A template file (WEA0000.DAT) is provided for entering 366 days of weather
records into an annual weather datafile.  Use the DOS COPY command to create a
new year's annual weather datafile, e.g., COPY WEA0000.DAT WEA1980.DAT.
Values may then be entered into the pre-formatted fields.



                                 The Units Used
                                 --------------

WEATHER is programmed so that all data need to be stored, displayed, and
printed in SI (International System) Metric units, as recommended by the
International Standards Organization (ISO) and the American National Standards
Institute (ANSI) and as approved by U.S. National Weather Service.  Further
information on SI Metric units is provided in the WEATHER.ASC file.

The units are as follows:

     Dates:  YY-MM-DD format
     Times:  HH:MM format using a 24-hour clock
     Temperatures:  degrees Celsius (to one decimal place)
     Pressures:  kilopascals (to three decimal places)
     Rainfall:  millimetres (to one decimal place)

If your instruments do not give readings in SI Metric units, you must convert
your readings to SI Metric units before entering them into your annual weather
datafile.  The conversion formulae are as follows:

     Degrees Fahrenheit to Degrees Celsius:  (X-32)*5/9
     Millibars to Kilopascals:  X/10
     Inches of Mercury to Kilopascals:  X*3.386389
     Inches to Millimetres:  X*25.4

Two excellent instruments that do give readings in SI Metric units are
available through the Edmund Scientific Catalog, 101 East Gloucester Pike,
Barrington, NJ 08007.

     COMPUTEMP.  Monitors indoor and outdoor temperature and time of day.
     Records the day's high and low temperatures in degrees Celsius and the
     time they occurred.  Catalog No. H61,236.  $79.95.

     DESK BAROMETER.  Calibrated in millibars (hectopascals), which can easily
     be converted to kilopascals by dividing by 10.  Gilded case has a 100-mm
     silver dial with black numerals and gold set-band.  Catalog No. H41,951.
     $19.95.


                                  Bibliography
                                  ------------


                                Limited License
                                ---------------

This Limited License is granted to users of WEATHER to use this software on a
private, non-commercial basis and to make copies of this software and
distribute them to other users, on the following conditions:

(1) Copies are to comprise all files on the disk.  None of the individual
    files is to be used, copied, or distributed apart from the whole software
    package.

(2) No "disk fee" or other consideration is to be charged for copying or
distributing the software, except a small fee for shipping and materials.

(3) The notices displayed at program start-up are not to be bypassed, altered,
or removed.

(4) This software is not to be distributed in modified form or in connection
with any other product.

(5) Copies may be posted for access via telecommunications, but only on these
same conditions.

(6) The user accepts that this software package is furnished on an "as-is"
basis with no warranty of merchantibility or fitness for a particular purpose.

Any use, copying, or distribution of this software indicates the user's
acceptance of these terms and conditions.  This software may not be used,
copied, or distributed in any manner not provided for in this Limited License,
except with prior written authorization of the copyright owner.  Any violation
of one or more of these conditions is legally punishable as an infringement of
copyright.

PLEASE SHOW YOUR SUPPORT OF THE USER-SUPPORTED SOFTWARE CONCEPT BY ABIDING BY
THE TERMS OF THIS LIMITED LICENSE.


Directory of PC-SIG Library Disk #0321

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

WEA0000  DAT     17664   6-26-89  12:00p
AC       C       10847   4-26-87   8:48p
AC       EXE     13564   4-26-87   8:48p
WEA1984  DAT     17664   6-26-89  12:00p
WEA1985  DAT     17536   6-26-89  12:00p
WEA1986  DAT     17536   6-26-89  12:00p
WEA1987  DAT     17536   6-26-89  12:00p
WEA1988  DAT     17664   6-26-89  12:00p
WEA1989  DAT     17521   6-26-89  12:00p
WEATHER  ASC     59008   6-26-89  12:00p
WEATHER  DOC     12027   6-26-89  12:00p
WEATHER  EXE     57170   6-26-89  12:00p
FILE0321 TXT      1998   7-13-89   2:19p
GUITAR   BAS      1280   3-13-84   1:22a
HAIKU    BAS      4301   1-29-85   3:54p
BIORYTHM BAS      4224   3-05-83   1:40p
CALENDAR BAS      7571   7-10-83  10:52p
CAS-REEL BAS      2816   5-05-83   5:39p
HOME-INV BAS      8678  12-02-84   1:53p
HOME-INV DAT       578  12-02-84   1:50p
HOME-INV DOC       301   1-01-80  12:40a
INSAT    BAS      4613   8-28-84   8:42p
SOUNDEFF BAS      4096  10-08-83  11:36p
GO       BAT        38   6-10-87  12:19p
GO       TXT       694   7-13-89   2:32p
       25 file(s)     316925 bytes
                       30720 bytes free