home *** CD-ROM | disk | FTP | other *** search
- 10 KEY OFF:CLS
- 20 SCREEN 0
- 30 WIDTH 40
- 40 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
- 50 PRINT"░┌───────────────────────────────────┐░"
- 60 PRINT"░│ │░"
- 70 PRINT"░│ 6017-A.BAS │░"
- 80 PRINT"░│ SPECIAL OCCASIONS │░"
- 90 PRINT"░│ │░"
- 100 PRINT"░│ │░"
- 110 PRINT"░│ BROUGHT TO YOU BY THE MEMBERS OF │░"
- 120 PRINT"░│ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ │░"
- 130 PRINT"░│ █ █ █ █ █ █ │░"
- 140 PRINT"░│ █ █▄▄▄█ █ █ █ │░"
- 150 PRINT"░│ █ █ █ █ █ │░"
- 160 PRINT"░│ ▄▄█▄▄ █ █▄▄▄▄ █▄▄▄█ │░"
- 170 PRINT"░│ │░"
- 180 PRINT"░│ International PC Owners │░"
- 190 PRINT"░│ │░"
- 200 PRINT"░│P.O. Box 10426, Pittsburgh PA 15234│░"
- 210 PRINT"░│ │░"
- 220 PRINT"░└───────────────────────────────────┘░"
- 230 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
- 240 PRINT
- 250 PRINT " PRESS ANY KEY TO CONTINUE
- 260 A$=INKEY$: IF A$="" THEN 260
- 270 WIDTH 80
- 280 CLS
- 1000 '**********************************
- 1010 '** **
- 1020 '** SPECIAL OCCASIONS **
- 1030 '** by PHIL MICHITSCH **
- 1040 '** **
- 1050 '** IBM 64K, 1 DISK DRIVE **
- 1060 '** PRINTER OPTIONAL **
- 1070 '** 40 COLUMN SCREEN **
- 1080 '** MONO OR COLOR **
- 1090 '** (USE MODE COMMAND **
- 1100 '** TO SWITCH BEFORE **
- 1110 '** RUNNING PROGRAM) **
- 1120 '** **
- 1130 '**********************************
- 1140 GOSUB 3740
- 1150 CLS:KEY OFF:S=0
- 1160 COLOR 7,0:WIDTH 40
- 1170 FOR J= 10 TO 32
- 1180 LOCATE 5,J,0:PRINT CHR$ (220)
- 1190 NEXT J
- 1200 FOR J= 10 TO 32
- 1210 LOCATE 9,J:PRINT CHR$ (223)
- 1220 NEXT J
- 1230 FOR J= 6 TO 8
- 1240 LOCATE J,10:PRINT CHR$ (219)
- 1250 NEXT J
- 1260 FOR J= 6 TO 8
- 1270 LOCATE J,32:PRINT CHR$ (219)
- 1280 NEXT J
- 1290 COLOR 0,7
- 1300 LOCATE 7,13
- 1310 PRINT "SPECIAL OCCASIONS"
- 1320 COLOR 7,0
- 1330 FOR J= 8 TO 34
- 1340 LOCATE 4,J:PRINT CHR$ (176)
- 1350 NEXT J
- 1360 FOR J= 8 TO 34
- 1370 LOCATE 10,J:PRINT CHR$ (176)
- 1380 NEXT J
- 1390 FOR J= 5 TO 9
- 1400 LOCATE J,8:PRINT CHR$ (176)
- 1410 NEXT J
- 1420 FOR J= 5 TO 9
- 1430 LOCATE J,34:PRINT CHR$ (176)
- 1440 NEXT J
- 1450 COLOR 9,0
- 1460 LOCATE 12,19:PRINT "MENU"
- 1470 COLOR 7,0
- 1480 LOCATE 14,13:PRINT "1) ADD OCCASION"
- 1490 LOCATE 16,13:PRINT "2) DELETE OCCASION"
- 1500 LOCATE 18,13:PRINT "3) DISPLAY LISTING
- 1510 BEEP
- 1520 LOCATE 21,7:PRINT "PLEASE CHOOSE ENTRY 1,2 OR 3"
- 1530 LET X$="0"
- 1540 X$=INKEY$
- 1550 IF X$>"0" THEN 1560 ELSE 1540
- 1560 IF X$="1" THEN 1680
- 1570 IF X$="2" THEN 2080
- 1580 IF X$="3" THEN 2550
- 1590 IF X$="0" THEN 1540
- 1600 COLOR 25,0
- 1610 LOCATE 23,12:PRINT "WRONG ENTRY - RETRY"
- 1620 COLOR 7,0
- 1630 FOR X= 1 TO 1700
- 1640 NEXT X
- 1650 LOCATE 23,12 :PRINT " "
- 1660 BEEP
- 1670 GOTO 1530
- 1680 GOSUB 3670
- 1690 REM ROUTINE TO ADD AND SORT NEW OCCASION
- 1700 COLOR 9,0: LOCATE 12,15
- 1710 PRINT "ADD OCCASION"
- 1720 COLOR 7,0:LOCATE 14,1
- 1730 BEEP
- 1740 INPUT "ENTER NAME OF CELEBRANT ",A$
- 1750 BEEP
- 1760 LOCATE 16,1,0:INPUT "ENTER MONTH OF OCCASION ",B$
- 1770 FOR Y=1 TO 12
- 1780 IF B$=Z$(Y) THEN 1900
- 1790 NEXT Y
- 1800 FOR X=1 TO 30
- 1810 LOCATE 18,14,0:PRINT "THE MONTH INPUT"
- 1820 LOCATE 19,9 :PRINT "IS INCORRECT,PLEASE RETRY
- 1830 LOCATE 20,11 :PRINT "(USE CAPITAL LETTERS)"
- 1840 NEXT X
- 1850 LOCATE 18,1:PRINT" "
- 1860 PRINT" "
- 1870 PRINT" "
- 1880 LOCATE 16,1,0:PRINT" "
- 1890 GOTO 1750
- 1900 LOCATE 18,1,0:INPUT "ENTER DAY OF MONTH (1-31) ",C
- 1910 IF C >31 OR C=0 GOTO 1930
- 1920 GOTO 1990
- 1930 FOR X= 1 TO 40:LOCATE 20,1
- 1940 PRINT "PLEASE USE A NUMBER BETWEEN 01-31"
- 1950 NEXT X
- 1960 LOCATE 20,1:PRINT" "
- 1970 LOCATE 18,1:PRINT" "
- 1980 GOTO 1900
- 1990 LOCATE 20,1,0:INPUT "PLEASE INPUT TYPE OF OCCASION ",D$
- 2000 LOCATE 22,1,0:PRINT "A FILE WITH THIS INFO IS NOW BEING CREATED"
- 2010 OPEN B$ FOR APPEND AS #1
- 2020 WRITE#1,A$,B$,C,D$
- 2030 FOR X=1 TO 1000
- 2040 NEXT X
- 2050 CLOSE 1
- 2060 GOSUB 3670
- 2070 GOTO 1150
- 2080 GOSUB 3670
- 2090 LOCATE 12,12:PRINT "PLEASE ENTER BELOW"
- 2100 LOCATE 14,10:PRINT "THE MONTH IN WHICH THE"
- 2110 LOCATE 16,11:PRINT "PERSON TO BE DELETED"
- 2120 LOCATE 18,16:PRINT "APPEARS IN"
- 2130 COLOR 0,7:BEEP
- 2140 LOCATE 20,13,1:PRINT " MONTH ";:COLOR 7,0
- 2150 INPUT " ",MONTH$
- 2160 FOR Y=1 TO 12
- 2170 IF MONTH$=Z$(Y) THEN 2240
- 2180 NEXT Y
- 2190 FOR X= 1 TO 60
- 2200 LOCATE 22,13,0:PRINT "WRONG INPUT,RETRY"
- 2210 NEXT X
- 2220 LOCATE 22,1,0:PRINT SPC(40)
- 2230 GOTO 2080
- 2240 OPEN MONTH$ FOR INPUT AS #1
- 2250 DIM F$(40),G$(40),H$(40),I$(40)
- 2260 FOR J=1 TO 40
- 2270 IF EOF(1) THEN 2300
- 2280 INPUT #1,F$(J),G$(J),H$(J),I$(J)
- 2290 NEXT J
- 2300 GOSUB 3670
- 2310 LOCATE 12,6,0:PRINT "THE FOLLOWING NAMES ARE LISTED"
- 2320 LOCATE 13,9,0:PRINT "UNDER THE MONTH ";MONTH$
- 2330 IF EOF(1) AND J=1 THEN 4070
- 2340 CLOSE 1:L=J-1:T=15
- 2350 FOR K=1 TO L
- 2360 LOCATE (T),12,0
- 2370 PRINT F$(K)
- 2380 T=T+1
- 2390 NEXT K
- 2400 LOCATE 22,3,0:PRINT "ENTER EXACTLY AS ABOVE,THE NAME OF"
- 2410 LOCATE 23,8,0:PRINT "THE PERSON TO BE DELETED"
- 2420 LOCATE 24,10,1
- 2430 INPUT;N$
- 2440 OPEN MONTH$ FOR INPUT AS #1
- 2450 OPEN "TEMPOCCA" FOR OUTPUT AS #2
- 2460 IF EOF (1) THEN 2510
- 2470 INPUT#1,FF$,GG$,HH$,II$
- 2480 IF FF$=N$ THEN 2460
- 2490 WRITE#2,FF$,GG$,HH$,II$
- 2500 GOTO 2460
- 2510 CLOSE
- 2520 KILL MONTH$
- 2530 NAME "TEMPOCCA" AS MONTH$
- 2540 GOTO 1150
- 2550 REM ROUTINE TO DISPLAY/PRINT ANY MONTH/MONTHS OCCASIONS
- 2560 GOSUB 3670
- 2570 ON ERROR GOTO 3810
- 2580 LOCATE 12,7,0 :PRINT "PLEASE ENTER BELOW, THE MONTH "
- 2590 LOCATE 14,7 :PRINT "YOU WOULD LIKE TO BE DISPLAYED"
- 2600 LOCATE 16,14,1 :BEEP :COLOR 0,7 :PRINT " MONTH ";:COLOR 7,0:
- 2610 INPUT " ",E$
- 2620 FOR Y=1 TO 12
- 2630 IF E$=Z$(Y) THEN 2760
- 2640 NEXT Y
- 2650 FOR X=1 TO 30
- 2660 LOCATE 18,14,0 :PRINT "THE MONTH INPUT"
- 2670 LOCATE 19,9 :PRINT "IS INCORRECT ,PLEASE RETRY"
- 2680 LOCATE 20,11 :PRINT "(USE CAPITAL LETTERS)
- 2690 NEXT X
- 2700 LOCATE 18,1 :PRINT " "
- 2710 PRINT " "
- 2720 PRINT " "
- 2730 LOCATE 16,1,0:PRINT" "
- 2740 GOTO 2600
- 2750 N=10
- 2760 LOCATE 19,7 :PRINT "A FILE CONTAINING ALL THE INFO"
- 2770 IF LEN (E$)=3 THEN N=12
- 2780 IF LEN (E$)=4 THEN N=12
- 2790 IF LEN (E$)=5 THEN N=12
- 2800 IF LEN (E$)=6 THEN N=11
- 2810 IF LEN (E$)=7 THEN N=10
- 2820 IF LEN (E$)=8 THEN N=10
- 2830 IF LEN (E$)=9 THEN N=10
- 2840 LOCATE 21,N :PRINT "FOR THE MONTH "; E$
- 2850 LOCATE 23,10 :PRINT "IS NOW BEING PROCESSED"
- 2860 FOR X= 1 TO 1500
- 2870 NEXT X
- 2880 OPEN E$ FOR INPUT AS #1
- 2890 DIM F$(40),G$(40),H$(40),I$(40)
- 2900 FOR J=1 TO 40
- 2910 IF EOF(1) THEN 2990
- 2920 INPUT #1,F$(J),G$(J),H$(J),I$(J)
- 2930 NEXT J
- 2940 LOCATE 25,17,0:COLOR 26,0:PRINT "YOU HAVE EXCEEDED THE LIMITATIONS OF THIS PROGRAM"
- 2950 COLOR 7,0 :
- 2960 FOR X= 1 TO 6000
- 2970 NEXT X
- 2980 GOTO 1150
- 2990 IF EOF(1) AND J=1 THEN 4070
- 3000 CLOSE 1
- 3010 GOSUB 3670
- 3020 L=J-1
- 3030 M=12
- 3040 IF LEN (E$)=3 THEN M=19
- 3050 IF LEN (E$)=4 THEN M=18
- 3060 IF LEN (E$)=5 THEN M=17
- 3070 IF LEN (E$)=6 THEN M=17
- 3080 IF LEN (E$)=7 THEN M=17
- 3090 IF LEN (E$)=8 THEN M=16
- 3100 IF LEN (E$)=9 THEN M=16
- 3110 LOCATE 12,M
- 3120 COLOR 0,7:PRINT " ";E$;" "
- 3130 LOCATE 14,6 : COLOR 9,0:PRINT "NAME";
- 3140 LOCATE 14,21:PRINT "DATE";
- 3150 LOCATE 14,30:PRINT "OCCASION"
- 3160 COLOR 7,0
- 3170 LOCATE 16,1
- 3180 IF L > 4 THEN S=1
- 3190 FOR K=1 TO L
- 3200 PRINT F$(K);
- 3210 PRINT TAB(22) H$(K);
- 3220 PRINT TAB(30) I$(K)
- 3230 IF S=0 THEN PRINT
- 3240 NEXT K
- 3250 LOCATE 25,1:COLOR 15,0
- 3260 PRINT "F1-PRINT REPORT F2-RETURN TO MENU";
- 3270 KEY(1)ON:KEY(2)ON
- 3280 T$=INKEY$
- 3290 ON KEY (1) GOSUB 3340
- 3300 ON KEY (2) GOSUB 3320
- 3310 GOTO 3280
- 3320 KEY (1) OFF:KEY (2) OFF
- 3330 GOTO 1150
- 3340 REM PRINT ROUTINE
- 3350 KEY (1) OFF:KEY (2) OFF
- 3360 ESC$=CHR$(27)
- 3370 FOR X=1 TO 10
- 3380 LPRINT
- 3390 NEXT X
- 3400 LPRINT ESC$"B"
- 3410 LPRINT ESC$"!"
- 3420 LPRINT ESC$"E":LPRINT ESC$"Y"
- 3430 LPRINT TAB(8) "***************************"
- 3440 LPRINT TAB(8) "* +++++++++++++++++++++++ *"
- 3450 LPRINT TAB(8) "* + + *"
- 3460 LPRINT TAB(8) "* + SPECIAL OCCASIONS + *"
- 3470 LPRINT TAB(8) "* + + *"
- 3480 LPRINT TAB(8) "* +++++++++++++++++++++++ *"
- 3490 LPRINT TAB(8) "***************************"
- 3500 LPRINT :LPRINT
- 3510 LPRINT TAB(18)ESC$"X";E$;ESC$"Y"
- 3520 LPRINT
- 3530 LPRINT SPC(4)ESC$"X";" NAME ";ESC$"Y";SPC(10)ESC$"X";" DATE ";ESC$"Y";" ";ESC$"X";" OCCASION ";ESC$"Y"
- 3540 LPRINT
- 3550 P=J-1
- 3560 LPRINT
- 3570 FOR X= 1 TO P
- 3580 Z=LEN(F$(X))
- 3590 Y=(22 - Z)
- 3600 LPRINT F$(X);SPC(Y)H$(X);SPC(6)I$(X)
- 3610 LPRINT
- 3620 NEXT X
- 3630 FOR X= 1 TO 10
- 3640 LPRINT
- 3650 NEXT X
- 3660 GOTO 3270
- 3670 REM SUBROUTINE TO CLEAR THE SCREEN BELOW PICTURE
- 3680 Y$=" "
- 3690 FOR N=12 TO 23
- 3700 LOCATE N,1,0:PRINT Y$
- 3710 NEXT N
- 3720 RETURN
- 3730 PRINT"ALRIGHT"
- 3740 REM ROUTINE TO ASSIGN ALL THE MONTHS A STRING VAR
- 3750 DIM Z$(12)
- 3760 FOR Y=1 TO 12
- 3770 READ Z$(Y)
- 3780 NEXT Y
- 3790 DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
- 3800 RETURN
- 3810 REM ERROR ROUTINE -TRIED TO OPEN FILE THAT WAS NON-EXISTANT
- 3820 IF ERR=27 THEN GOTO 3970
- 3830 IF ERR=53 THEN GOTO 3850
- 3840 RESUME NEXT
- 3850 GOSUB 3670
- 3860 LOCATE 13,5,0 :PRINT "THERE IS CURRENTLY NO INFORMATION "
- 3870 LOCATE 15,5,0 :PRINT "IN THE FILE FOR THE MONTH ";E$
- 3880 LOCATE 17,5,0 :PRINT "YOU CAN MAKE AN ADDITION TO THIS"
- 3890 LOCATE 19,7,0 :PRINT "FILE IF YOU LIKE BY ENTERING"
- 3900 LOCATE 21,8,0 :PRINT "THE #1 ON THE MENU SCREEN"
- 3910 OPEN E$ FOR APPEND AS #1
- 3920 CLOSE
- 3930 FOR X=1 TO 80
- 3940 NEXT X
- 3950 GOSUB 3670
- 3960 GOTO 1450
- 3970 GOSUB 3670
- 3980 LOCATE 13,5,0 :PRINT "THE CURRENT OPERATION CANNOT BE "
- 3990 LOCATE 15,5,0 :PRINT "COMPLETED BECAUSE THE PRINTER IS"
- 4000 LOCATE 17,13,0 :PRINT "NOT OPERATIONAL"
- 4010 LOCATE 19,5,0 :PRINT "PLEASE RETURN PRINTER TO ON-LINE"
- 4020 LOCATE 21,9,0 :PRINT "BEFORE HITTING F1 AGAIN"
- 4030 FOR X=1 TO 3000
- 4040 NEXT X
- 4050 CLOSE 1
- 4060 RESUME 3010
- 4070 GOSUB 3670
- 4080 LOCATE 17,8,0 :COLOR 15,0
- 4090 PRINT "THIS FILE IS CURRENTLY EMPTY "
- 4100 FOR X=1 TO 2000
- 4110 NEXT X
- 4120 GOSUB 3670
- 4130 CLOSE 1
- 4140 GOTO 1150
- 4150 END
-