home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
basic
/
library
/
zbasic
/
pia
/
config.bas
< prev
next >
Wrap
BASIC Source File
|
1987-10-30
|
13KB
|
272 lines
100 DEFINT A,G,I,K,M,N,P,S,T,U,W: DEFDBL B,C,D,L,O
101 DEFSNG E,F,H,J,Q,R,V,X,Y,Z
105 REM $INCLUDE: 'COMMON.BAS'
110 REM $INCLUDE: 'GETSTRN.BAS'
500 REM Read historical amounts from OLDAWBI.DAT
505 OPEN "I",1,"OLDAWBI.DAT"
510 PRINT " Reading historical amounts from OLDAWBI.DAT"
515 INPUT #1,N4: CLOSE #1
600 REM Read titles of assumptions from TITLES.DAT
605 OPEN "I",1,"TITLES.DAT"
610 PRINT " Reading titles of assumptions from TITLES.DAT"
615 FOR I1=1 TO 4: INPUT #1,E$(I1): W$(I1)=E$(I1): NEXT I1
620 CLOSE #1
700 REM Set titles of built-in assumptions
702 E$(5)="No increase beyond"+STR$(1949+N4)+" average wage"
703 E$(6)="Current POMS calculation (4-percent nominal wage increases)"
705 E$(7)="Proposed POMS calculation (1-percent real wage increases)"
710 E$(8)="Other assumptions (input from keyboard)"
715 W$(5)="No increase beginning with"+STR$(1951+N4)+" benefit increase"
716 W$(6)="Current POMS calculation (no future benefit increases)"
720 W$(7)="Proposed POMS calculation (no future benefit increases)"
725 W$(8)=E$(8)
1000 REM Read configuration
1005 GOSUB 5000
1018 REM Print configuration menu
1020 GOSUB 2600: PRINT " ";: GOSUB 9870
1025 PRINT STRING$(22," ");"Review or update configuration";
1030 PRINT STRING$(23," "): GOSUB 2700
1040 GOSUB 9860
1050 PRINT " Enter choice for review or update of configuration"
1051 PRINT " 0 to skip review of configuration"
1052 PRINT " 1 to review configuration"
1053 PRINT " 2 to update configuration"
1055 PRINT " > ";: K8=VAL(FNGETSTRN$(1))
1060 IF K8<0 OR K8>2 THEN BEEP: GOTO 1040
1065 GOSUB 9850: ON K8+1 GOTO 2400,1100,1068
1068 REM print warning
1070 GOSUB 2600: PRINT " ";: GOSUB 9870
1071 PRINT STRING$(33," ");"Warning!";STRING$(34," "): GOSUB 2700
1073 GOSUB 9850: PRINT " You are about to change the ";
1074 PRINT "configuration data file for this program."
1075 PRINT " This means that you will permanently alter the ";
1076 PRINT "prompts that will"
1077 PRINT " appear on the screen when you run the program (until";
1078 PRINT " you change the"
1080 PRINT " configuration again).": PRINT
1081 PRINT " There are eight program variables to be configured. If";
1082 PRINT " you enter a"
1083 PRINT " 0 for a configuration, that variable will appear with a";
1084 PRINT " menu choice"
1085 PRINT " when you run the PIA program. If you enter a positive ";
1086 PRINT "value, that": PRINT " variable will automatically be ";
1087 PRINT " given that value, without any menu"
1088 PRINT " choice offered": PRINT
1089 PRINT " There are also two hardware configurations to be set: ";
1090 PRINT " one for your"
1091 PRINT " printer and one for your monitor.": PRINT
1092 GOSUB 9860: PRINT " Do you want to continue? (y or n) > ";
1093 C$=FNGETSTRN$(1): GOSUB 9850
1094 IF LEN(C$)<=0 THEN BEEP: GOTO 1092
1095 GOSUB 2800: IF C$<>"Y" AND C$<>"N" THEN BEEP: GOTO 1092
1096 IF C$<>"Y" THEN 2200
1100 REM Display sex of worker
1105 GOSUB 2600: PRINT " ";: GOSUB 9870
1110 PRINT STRING$(24," ");"Sex-of-worker configuration";
1115 PRINT STRING$(24," "): GOSUB 2700: GOSUB 9850
1125 PRINT " Current sex-of-worker configuration:"
1130 IF A6=0 THEN PRINT " 0 (menu choice offered)": GOTO 1140
1135 PRINT " ";A6;"for ";A$(A6);" worker"
1140 IF K8=1 THEN GOSUB 3000: GOTO 1200
1145 GOSUB 9860
1150 PRINT " Enter choice for sex-of-worker configuration:"
1155 PRINT " 0 to request prompt for sex of worker"
1160 FOR K2=1 TO 2: PRINT " ";K2;"for ";A$(K2);" worker": NEXT K2
1165 PRINT " > ";: A6=VAL(FNGETSTRN$(1)): GOSUB 9850
1170 IF A6<0 OR A6>2 THEN BEEP: GOTO 1145
1200 REM Display type of benefit
1205 GOSUB 2600: PRINT " ";: GOSUB 9870
1210 PRINT STRING$(23," ");"Type-of-benefit configuration";
1215 PRINT STRING$(23," "): GOSUB 2700: GOSUB 9850
1225 PRINT " Current type-of-benefit configuration:"
1230 IF A5=0 THEN PRINT " 0 (menu choice offered)": GOTO 1240
1235 PRINT " ";A5;"for ";P$(A5);" benefit"
1240 IF K8=1 THEN GOSUB 3000: GOTO 1300
1245 GOSUB 9860
1250 PRINT " Enter choice for type-of-benefit configuration:"
1255 PRINT " 0 to request prompt for type of benefit"
1260 FOR K2=1 TO 3: PRINT " ";K2;"for ";P$(K2);" benefit": NEXT K2
1265 PRINT " > ";: A5=VAL(FNGETSTRN$(1)): GOSUB 9850
1270 IF A5<0 OR A5>3 THEN BEEP: GOTO 1245
1300 REM Display type of earnings
1305 GOSUB 2600: PRINT " ";: GOSUB 9870
1310 PRINT STRING$(22," ");"Type-of-earnings configuration";
1315 PRINT STRING$(23," "): GOSUB 2700: GOSUB 9850
1325 PRINT " Current type-of-earnings configuration:"
1330 IF A3=0 THEN PRINT " 0 (menu choice offered)": GOTO 1340
1335 PRINT " ";A3;"for ";Q$(A3)
1340 IF K8=1 THEN GOSUB 3000: GOTO 1400
1345 GOSUB 9860
1350 PRINT " Enter choice for type-of-earnings configuration:"
1355 PRINT " 0 to request prompt for type of earnings"
1360 FOR K2=1 TO 4: PRINT " ";K2;"for ";Q$(K2): NEXT K2
1365 PRINT " > ";: A3=VAL(FNGETSTRN$(1)): GOSUB 9850
1370 IF A3<0 OR A3>4 THEN BEEP: GOTO 1345
1400 REM Display type of survivor
1405 GOSUB 2600: PRINT " ";: GOSUB 9870
1410 PRINT STRING$(22," ");"Type-of-survivor configuration";
1415 PRINT STRING$(23," "): GOSUB 2700: GOSUB 9850
1425 PRINT " Current type-of-survivor configuration:"
1430 IF A4=0 THEN PRINT " 0 (menu choice offered)": GOTO 1440
1435 PRINT " ";A4;"for ";N$(A4)
1440 IF K8=1 THEN GOSUB 3000: GOTO 1500
1445 GOSUB 9860
1450 PRINT " Enter choice for type-of-survivor configuration:"
1455 PRINT " 0 to request prompt for type of survivor"
1460 FOR K2=1 TO 3: PRINT " ";K2;"for ";N$(K2): NEXT K2
1465 PRINT " > ";: A4=VAL(FNGETSTRN$(1)): GOSUB 9850
1470 IF A4<0 OR A4>3 THEN BEEP: GOTO 1445
1500 REM Display disability code
1505 GOSUB 2600: PRINT " ";: GOSUB 9870
1510 PRINT STRING$(25," ");"Disability configuration";
1515 PRINT STRING$(26," "): GOSUB 2700: GOSUB 9850
1525 PRINT " Current disability configuration:"
1530 IF T9=0 THEN PRINT " 0 (menu choice offered)": GOTO 1540
1535 PRINT " ";T9;"for ";X$(T9)
1540 IF K8=1 THEN GOSUB 3000: GOTO 1600
1545 GOSUB 9860
1550 PRINT " Enter choice for disability configuration:"
1555 PRINT " 0 to request prompt for disability code"
1560 FOR K2=1 TO 2: PRINT " ";K2;"for ";X$(K2): NEXT K2
1565 PRINT " > ";: T9=VAL(FNGETSTRN$(1)): GOSUB 9850
1570 IF T9<0 OR T9>2 THEN BEEP: GOTO 1545
1600 REM Display benefit increase assumptions
1605 GOSUB 2600: PRINT " ";: GOSUB 9870
1610 PRINT STRING$(22," ");"Benefit-increase configuration";
1615 PRINT STRING$(23," "): GOSUB 2700: GOSUB 9850
1625 PRINT " Current benefit-increase-assumption configuration:"
1630 IF A1=0 THEN PRINT " 0 (menu choice offered)": GOTO 1640
1635 PRINT " ";A1;"for ";W$(A1)
1640 IF K8=1 THEN GOSUB 3000: GOTO 1700
1645 GOSUB 9860
1650 PRINT " Enter choice for benefit-increase configuration:"
1655 PRINT " 0 to request prompt for benefit increase assumptions"
1660 FOR K2=1 TO W3: PRINT " ";K2;"for ";W$(K2): NEXT K2
1665 PRINT " > ";: A1=VAL(FNGETSTRN$(1)): GOSUB 9850
1670 IF A1<0 OR A1>W3 THEN BEEP: GOTO 1645
1700 REM Display average wage increase assumptions
1705 GOSUB 2600: PRINT " ";: GOSUB 9870
1710 PRINT STRING$(20," ");"Average-wage-increase configuration";
1715 PRINT STRING$(20," "): GOSUB 2700: GOSUB 9850
1725 PRINT " Current average-wage-increase-assumption configuration:"
1730 IF T3=0 THEN PRINT " 0 (menu choice offered)": GOTO 1740
1735 PRINT " ";T3;"for ";E$(T3)
1740 IF K8=1 THEN GOSUB 3000: GOTO 1800
1745 GOSUB 9860
1750 PRINT " Enter choice for average-wage-increase configuration:"
1755 PRINT " 0 to request prompt for average wage assumptions"
1760 FOR K2=1 TO W3: PRINT " ";K2;"for ";E$(K2): NEXT K2
1765 PRINT " > ";: T3=VAL(FNGETSTRN$(1)): GOSUB 9850
1770 IF T3<0 OR T3>W3 THEN BEEP: GOTO 1745
1800 REM Display projected wage base trigger
1805 GOSUB 2600: PRINT " ";: GOSUB 9870
1810 PRINT STRING$(21," ");"Projected-wage-base configuration";
1815 PRINT STRING$(21," "): GOSUB 2700: GOSUB 9850
1825 PRINT " Current projected-wage-base-assumption configuration:"
1830 IF A2=0 THEN PRINT " 0 (menu choice offered)": GOTO 1840
1835 PRINT " ";A2;"for ";R$(A2)
1840 IF K8=1 THEN GOSUB 3000: GOTO 1900
1845 GOSUB 9860
1850 PRINT " Enter choice for projected-wage-base configuration:"
1855 PRINT " 0 to request prompt for projected wage bases"
1860 FOR K2=1 TO 2: PRINT " ";K2;"for ";R$(K2): NEXT K2
1865 PRINT " > ";: A2=VAL(FNGETSTRN$(1)): GOSUB 9850
1870 IF A2<0 OR A2>2 THEN BEEP: GOTO 1845
1900 REM Display printer configuration
1905 GOSUB 2600: PRINT " ";: GOSUB 9870
1910 PRINT STRING$(27," ");"Printer configuration";
1915 PRINT STRING$(27," "): GOSUB 2700: GOSUB 9850
1925 PRINT " Current printer configuration:"
1930 IF G8>0 THEN 1935
1931 PRINT " 0 for printing on continuous paper": GOTO 1940
1935 PRINT " 1 for printing on cut sheets (stops at each page)"
1940 IF K8=1 THEN GOSUB 3000: GOTO 2000
1945 GOSUB 9860
1950 PRINT " Enter choice for printer configuration:"
1955 PRINT " 0 for printing on continuous paper"
1960 PRINT " 1 for printing on cut sheets (stops at each page)"
1965 PRINT " > ";: G8=VAL(FNGETSTRN$(1)): GOSUB 9850
1970 IF G8<0 OR G8>1 THEN BEEP: GOTO 1945
2000 REM Display color configuration
2005 GOSUB 2600: PRINT " ";: GOSUB 9870
2010 PRINT STRING$(28," ");"Color configuration";
2015 PRINT STRING$(28," "): GOSUB 2700: GOSUB 9850
2025 PRINT " Current color configuration:"
2030 IF K5>0 THEN 2035
2031 PRINT " 0 for monochrome monitor": GOTO 2040
2035 PRINT " 1 for color monitor"
2040 IF K8=1 THEN GOSUB 3000: GOTO 2075
2045 GOSUB 9860
2050 PRINT " Enter choice for color configuration:"
2055 PRINT " 0 for monochrome monitor"
2060 PRINT " 1 for color monitor"
2065 PRINT " > ";: K5=VAL(FNGETSTRN$(1)): GOSUB 9850
2070 IF K5<0 OR K5>1 THEN BEEP: GOTO 2045
2075 ON K8 GOTO 2200,2100
2100 REM Save to disk
2105 GOSUB 2600: PRINT " ";: GOSUB 9870
2110 PRINT STRING$(31," ");"Save to disk";STRING$(32," ")
2115 GOSUB 2700
2120 GOSUB 9860: PRINT " Do you want to save the updated values";
2125 PRINT " to disk? (y or n) > ";: C$=FNGETSTRN$(1): GOSUB 9850
2126 IF LEN(C$)<=0 THEN BEEP: GOTO 2120
2130 GOSUB 2800: IF C$<>"Y" AND C$<>"N" THEN BEEP: GOTO 2120
2135 IF C$<>"Y" THEN 2200
2140 OPEN "O",1,"CONFIG.DAT"
2145 PRINT " Writing configuration to CONFIG.DAT"
2150 PRINT #1,A6: PRINT #1,A5: PRINT #1,A3: PRINT #1,A4: PRINT #1,T9
2155 PRINT #1,A1: PRINT #1,T3: PRINT #1,A2: PRINT #1,G8: PRINT #1,K5
2160 CLOSE #1
2165 REM Initialize colors
2170 GOSUB 5100
2200 REM Print exit menu
2205 GOSUB 2600: PRINT " ";: GOSUB 9870
2210 PRINT STRING$(29," ");"Program selection";STRING$(29," ")
2215 GOSUB 2700
2220 GOSUB 9860: PRINT " Enter desired program:"
2225 PRINT " 0 to calculate a PIA"
2230 PRINT " 1 to review or update historical values"
2235 PRINT " 2 to store social security office address"
2240 PRINT " > ";: K8=VAL(FNGETSTRN$(1))
2245 IF K8<0 OR K8>2 THEN BEEP: GOTO 2220
2250 CLS: GOSUB 9850: ON K8+1 GOTO 2400,2265,2255
2255 PRINT " Loading address program; please wait..."
2260 CHAIN "ADDRESS"
2265 PRINT " Loading data-update program; please wait..."
2270 CHAIN "OLDAWBI"
2400 PRINT " Loading PIA data-input program; please wait..."
2405 CHAIN "PIAIN"
2600 REM Subroutine to clear screen and draw 75 hyphens
2605 CLS: GOSUB 9860: PRINT " ";STRING$(75,"-"): RETURN
2700 REM Subroutine to draw 75 hyphens and skip two lines
2705 GOSUB 9860: PRINT " ";STRING$(75,"-"): PRINT: PRINT: RETURN
2800 REM Subroutine to convert response to one-letter uppercase
2805 I4=ASC(C$): IF I4>96 THEN C$=CHR$(I4-32) ELSE C$=CHR$(I4)
2810 RETURN
3000 REM Subroutine to get a RETURN
3005 GOSUB 9860: PRINT: PRINT " Press RETURN to continue"
3010 C$=INKEY$: IF LEN(C$)<1 THEN 3010
3015 IF ASC(C$)<>13 THEN BEEP: GOTO 3010
3020 RETURN
5000 REM Subroutine to get configuration
5004 ON ERROR GOTO 5030
5005 OPEN "I",1,"CONFIG.DAT": GOSUB 9850
5006 ON ERROR GOTO 0
5010 PRINT " Reading configuration from CONFIG.DAT"
5015 INPUT #1,A6: INPUT #1,A5: INPUT #1,A3: INPUT #1,A4: INPUT #1,T9
5020 INPUT #1,A1: INPUT #1,T3: INPUT #1,A2: INPUT #1,G8: INPUT #1,K5
5025 CLOSE #1: RETURN
5030 REM Handle file error
5035 BEEP: GOSUB 9840: K6=66
5040 PRINT " Configuration file does not exist."
5045 END
5100 REM Subroutine to initialize colors
5105 FOR I1=0 TO 8
5110 IF K5>0 THEN K(I1,2)=K(I1,0) ELSE K(I1,2)=7
5115 NEXT I1: RETURN
9800 REM 1-line subroutines
9813 REM For Macintosh, $INCLUDE "COLOR.MAC"
9814 REM $INCLUDE: 'COLOR.BAS'
9900 GOSUB 9860: CLS: END
9999 REM CONFIG.BAS - 10/30/87 - 03:45 PM