home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
MBUG
/
MBUG059.ARC
/
UPDATMAR.BAS
< prev
next >
Wrap
BASIC Source File
|
1979-12-31
|
9KB
|
259 lines
100 TITLE$ = "Update the Marriages File Program"
105 TITLE$ = TITLE$ + " ON DISPLAY"
110 VERSION$ = "Version 1.3"
115 COPY1$ = "Copyright (c) 1983, by:"
120 COPY2$ = "Melvin O. Duke"
125 PRICE$ = "$35"
130 ADDR1$ = "Melvin O. Duke"
135 ADDR2$ = "P. O. Box 20836"
140 ADDR3$ = "San Jose, CA 95160"
145 REM Dimension Statements go here
170 REM Produce the first screen
175 KEY OFF : CLS
180 REM Draw the outer double box
185 R1 = 1 : C1 = 1 : R2 = 24 : C2 = 79 : GOSUB 400
190 REM Find the title location
195 TITLE.POS = 40 - INT(LEN(TITLE$)/2)
200 REM Draw the title box
205 R1=3:C1=TITLE.POS-2:R2=6:C2=TITLE.POS+LEN(TITLE$)+1:GOSUB 600
210 REM Print the title
215 LOCATE 4,TITLE.POS : PRINT TITLE$
220 LOCATE 5,40-INT(LEN(VERSION$)/2) : PRINT VERSION$;
225 REM Draw the Contribution box
230 R1 = 8 : C1 = 19 : R2 = 17 : C2 = 62 : GOSUB 400
235 REM Request the Contribution
240 LOCATE 9,23 : PRINT "If you are using these programs, and"
245 LOCATE 10,21 : PRINT "finding them of value, your contribution"
250 LOCATE 11,23 : PRINT "("+PRICE$+" suggested) will be appreciated."
255 REM Draw the Mailing Label
260 R1 = 12 : C1 = 28 : R2 = 16 : C2 = 52 : GOSUB 600
265 REM Print the Name and Address
270 LOCATE 13,40-INT(LEN(ADDR1$)/2) : PRINT ADDR1$;
275 LOCATE 14,40-INT(LEN(ADDR2$)/2) : PRINT ADDR2$;
280 LOCATE 15,40-INT(LEN(ADDR3$)/2) : PRINT ADDR3$;
285 REM Draw the Copyright box
290 R1 = 19 : C1 = 27 : R2 = 22 : C2 = 53 : GOSUB 400
295 REM Print the Copyright
300 LOCATE 20,40-INT(LEN(COPY1$)/2) : PRINT COPY1$;
305 LOCATE 21,40-INT(LEN(COPY2$)/2) : PRINT COPY2$;
310 GOTO 740
400 REM subroutine to print a double box
410 FOR I = R1 + 1 TO R2 - 1
420 LOCATE I, C1 : PRINT CHR$(186);
430 LOCATE I, C2 : PRINT CHR$(186);
440 NEXT I
450 FOR J = C1 + 1 TO C2 - 1
460 LOCATE R1, J : PRINT CHR$(205);
470 LOCATE R2, J : PRINT CHR$(205);
480 NEXT J
490 LOCATE R1, C1 : PRINT CHR$(201);
500 LOCATE R1, C2 : PRINT CHR$(187);
510 LOCATE R2, C1 : PRINT CHR$(200);
520 LOCATE R2, C2 : PRINT CHR$(188);
530 RETURN
600 REM subroutine to print a single box
610 FOR I = R1 + 1 TO R2 - 1
620 LOCATE I, C1 : PRINT CHR$(179);
630 LOCATE I, C2 : PRINT CHR$(179);
640 NEXT I
650 FOR J = C1 + 1 TO C2 - 1
660 LOCATE R1, J : PRINT CHR$(196);
670 LOCATE R2, J : PRINT CHR$(196);
680 NEXT J
690 LOCATE R1, C1 : PRINT CHR$(218);
700 LOCATE R1, C2 : PRINT CHR$(191);
710 LOCATE R2, C1 : PRINT CHR$(192);
720 LOCATE R2, C2 : PRINT CHR$(217);
730 RETURN
740 REM ask user to press a key to continue
750 LOCATE 25,1
760 PRINT "Press any key to continue";
770 K$ = INKEY$ : IF K$ = "" THEN 770
780 CLS
840 CLS
1000 REM Update the Marriage File Program
1010 REM By: Melvin O. Duke. Updated 26 June, 1983.
1020 OPEN "a:marrfile" AS #2 LEN = 128
1030 FIELD 2, 5 AS M1$, 5 AS M2$, 5 AS M3$, 5 AS M4$, 11 AS M5$, 18 AS M6$, 16 AS M7$, 16 AS M8$, 45 AS M9$
1040 REM ask the user for input
1050 LOCATE 22,1
1060 PRINT SPACE$(79) : LOCATE 22,1
1070 INPUT "Enter Record Number of Marriage to Update"; REC.NO
1080 IF REC.NO = 0 THEN 2790
1090 IF REC.NO < 1 OR REC.NO > 200 THEN 1040
1100 GET #2, REC.NO
1110 REM Extract information from the file for use
1120 T1 = CVS(M1$)
1130 T2 = CVS(M2$)
1140 T3 = CVS(M3$)
1150 T4 = CVS(M4$)
1160 T5$ = M5$
1170 T6$ = M6$
1180 T7$ = M7$
1190 T8$ = M8$
1200 T9$ = M9$
1210 CLS
1220 R1 = 1 : C1 = 1 : R2 = 16 : C2 = 79 : GOSUB 400 'Double box
1230 R1 = 3 : C1 = 1 : R2 = 3 : C2 = 79 : GOSUB 1620 'Horizontal double
1240 R1 = 14 : C1 = 1 : R2 = 14 : C2 = 79 : GOSUB 1620 'Horizontal double
1250 LOCATE 2,33 : PRINT "Marriage Record"
1260 R1 = 3 : C1 = 40 : R2 = 14 : C2 = 40 : GOSUB 1760 'Vertical Double
1270 LOCATE 5,3 : PRINT "Marriage";
1280 LOCATE 6,3 : PRINT "Record-Number:";
1290 LOCATE 8,3 : PRINT "Husband's";
1300 LOCATE 9,3 : PRINT "Record-number:";
1310 LOCATE 11,3 : PRINT "Wife's";
1320 LOCATE 12,3 : PRINT "Record-number:";
1330 LOCATE 15,3 : PRINT "Comments:";
1340 LOCATE 5,42 : PRINT "Marriage Code:";
1350 LOCATE 7,42 : COLOR 1 : PRINT "Marriage Statistics:"; : COLOR 7
1360 LOCATE 9,42 : PRINT "Marr.-date:";
1370 LOCATE 10,42 : PRINT "Marr.-city:";
1380 LOCATE 11,42 : PRINT "Marr.-county:";
1390 LOCATE 12,42 : PRINT "State/Country:";
1400 GOSUB 1420 'To print the current information
1410 GOTO 1900 'For User Input
1420 REM Print the Information Currently Present
1430 LOCATE 6,18 : PRINT SPACE$(5);
1440 LOCATE 6,18 : PRINT T1;
1450 LOCATE 9,18 : PRINT SPACE$(5);
1460 LOCATE 9,18 : PRINT T2;
1470 LOCATE 12,18 : PRINT SPACE$(5);
1480 LOCATE 12,18 : PRINT T3;
1490 LOCATE 5,57 : PRINT SPACE$(5);
1500 LOCATE 5,57 : PRINT T4;
1510 LOCATE 9,57 : PRINT SPACE$(11);
1520 LOCATE 9,57 : PRINT T5$;
1530 LOCATE 10,57 : PRINT SPACE$(18);
1540 LOCATE 10,57 : PRINT T6$;
1550 LOCATE 11,57 : PRINT SPACE$(16);
1560 LOCATE 11,57 : PRINT T7$;
1570 LOCATE 12,57 : PRINT SPACE$(16);
1580 LOCATE 12,57 : PRINT T8$;
1590 LOCATE 15,20 : PRINT SPACE$(45);
1600 LOCATE 15,20 : PRINT T9$;
1610 RETURN
1620 REM Subroutine to draw a double horizontal line. Attach to double.
1630 FOR J = C1 + 1 TO C2 - 1
1640 LOCATE R1,J : PRINT CHR$(205);
1650 NEXT J
1660 LOCATE R1,C1 : PRINT CHR$(204);
1670 LOCATE R1,C2 : PRINT CHR$(185);
1680 RETURN
1690 REM Subroutine to draw a single horizontal line. Attach to double.
1700 FOR J = C1 + 1 TO C2 - 1
1710 LOCATE R1,J : PRINT CHR$(196);
1720 NEXT J
1730 LOCATE R1,C1 : PRINT CHR$(199);
1740 LOCATE R1,C2 : PRINT CHR$(182);
1750 RETURN
1760 REM Subroutine to draw a double vertical line. Attach to double.
1770 FOR I = R1 + 1 TO R2 - 1
1780 LOCATE I,C1 : PRINT CHR$(186);
1790 NEXT I
1800 LOCATE R1,C1 : PRINT CHR$(203);
1810 LOCATE R2,C1 : PRINT CHR$(202);
1820 RETURN
1830 REM Subroutine to draw a single vertical line. Attach to double.
1840 FOR I = R1 + 1 TO R2 - 1
1850 LOCATE I,C1 : PRINT CHR$(179);
1860 NEXT I
1870 LOCATE R1,C1 : PRINT CHR$(209);
1880 LOCATE R2,C1 : PRINT CHR$(207);
1890 RETURN
1900 REM Routines to Obtain information from the User
1910 LOCATE 21,1 : PRINT "'enter' to leave alone, '/ enter' to end record, or reply as shown"
1920 LOCATE 23,1
1930 INPUT "Enter the Record Number";REPLY$
1940 IF REPLY$ = "/" THEN 2560
1950 IF REPLY$ = "" THEN 1990
1960 IF ABS(VAL(REPLY$)) = ABS(T1) THEN 1970 ELSE 1980
1970 T1 = VAL(REPLY$)
1980 GOSUB 1420
1990 LOCATE 23,1 : PRINT SPACE$(79);
2000 LOCATE 23,1
2010 INPUT "Enter the Husband's Persons Record-Number";REPLY$
2020 IF REPLY$ = "/" THEN 2560
2030 IF REPLY$ = "" THEN 2060
2040 T2 = VAL(REPLY$)
2050 GOSUB 1420
2060 LOCATE 23,1 : PRINT SPACE$(79);
2070 LOCATE 23,1
2080 INPUT "Enter the Wife's Persons Record-Number";REPLY$
2090 IF REPLY$ = "/" THEN 2560
2100 IF REPLY$ = "" THEN 2130
2110 T3 = VAL(REPLY$)
2120 GOSUB 1420
2130 LOCATE 23,1 : PRINT SPACE$(79);
2140 LOCATE 23,1
2150 INPUT "Enter the Marriage Code";REPLY$
2160 IF REPLY$ = "/" THEN 2560
2170 IF REPLY$ = "" THEN 2200
2180 T4 = VAL(REPLY$)
2190 GOSUB 1420
2200 LOCATE 23,1 : PRINT SPACE$(79);
2210 LOCATE 23,1
2220 INPUT "Enter the Marriage-Date as: dd Mmm yyyy";REPLY$
2230 IF REPLY$ = "/" THEN 2560
2240 IF REPLY$ = "" THEN 2270
2250 T5$ = REPLY$
2260 GOSUB 1420
2270 LOCATE 23,1 : PRINT SPACE$(79);
2280 LOCATE 23,1
2290 INPUT "Enter the Marriage-city";REPLY$
2300 IF REPLY$ = "/" THEN 2560
2310 IF REPLY$ = "" THEN 2340
2320 T6$ = REPLY$
2330 GOSUB 1420
2340 LOCATE 23,1 : PRINT SPACE$(79);
2350 LOCATE 23,1
2360 INPUT "Enter the Marriage-county";REPLY$
2370 IF REPLY$ = "/" THEN 2560
2380 IF REPLY$ = "" THEN 2410
2390 T7$ = REPLY$
2400 GOSUB 1420
2410 LOCATE 23,1 : PRINT SPACE$(79);
2420 LOCATE 23,1
2430 INPUT "Enter the Marriage-State or Country:";REPLY$
2440 IF REPLY$ = "/" THEN 2560
2450 IF REPLY$ = "" THEN 2480
2460 T8$ = REPLY$
2470 GOSUB 1420
2480 LOCATE 23,1 : PRINT SPACE$(79);
2490 LOCATE 23,1
2500 INPUT "Enter any Comments";REPLY$
2510 IF REPLY$ = "/" THEN 2560
2520 IF REPLY$ = "" THEN 2550
2530 T9$ = REPLY$
2540 GOSUB 1420
2550 REM GOTO 9980
2560 REM
2570 LOCATE 21,1 : PRINT SPACE$(79);
2580 LOCATE 23,1 : PRINT SPACE$(79);
2590 LOCATE 23,1
2600 INPUT "Type 'save', 'more', or 'forget'";REPLY$
2610 IF REPLY$ = "more" THEN LOCATE 23,1 : PRINT SPACE$(79); : GOTO 1900
2620 IF REPLY$ = "forget" THEN CLS : GOTO 1040
2630 IF REPLY$ = "save" THEN LOCATE 21,1 : PRINT SPACE$(79); : GOTO 2660
2640 LOCATE 22,1 : PRINT "Error in reply";
2650 GOTO 2580
2660 REM Routine to SAVE the newly updated record
2670 LSET M1$ = MKS$(T1)
2680 LSET M2$ = MKS$(T2)
2690 LSET M3$ = MKS$(T3)
2700 LSET M4$ = MKS$(T4)
2710 LSET M5$ = T5$
2720 LSET M6$ = T6$
2730 LSET M7$ = T7$
2740 LSET M8$ = T8$
2750 LSET M9$ = T9$
2760 PUT #2, REC.NO
2770 CLS
2780 GOTO 1040
2790 CLOSE #2
2800 CLS : LOCATE 21,1
2810 PRINT "End of Program"
2820 END
ΘF±;╙s[≈≤û3└πï·ï╞≈ß≈╪·ï╫sN┴╙s∙├X
x╤Γ╤╙