90 IF PEEK(64435) < >6 THEN 2760: REM CHECK FOR //e or //c
100 HOME : POKE 49153,0: POKE 49237,0: POKE 1024,123:F8 = PEEK(1024) < >123: POKE 49236,0: POKE 49152,0: IF F8 GOTO 2760: REM CHECK FOR 80 COLUMN CARD
110 REM INITIALIZE
120 LOMEM: 24576
130 D$ = CHR$(4)
140 DIM M$(12): FOR I = 1 TO 12: READ M$(I): NEXT : DATA "January","February","March","April","May","June","July","August","September","October","November","December"
150 DIM UN(60),BC(60),TC(60),CP(60),YR$(25):C = 4: REM UTILITY CATEGORIES
160 FOR I = 1 TO C: READ UT$(I): NEXT : DATA ELECTRICITY,GAS,OIL,WATER
170 REM TITLE PAGE
180 PRINT D$"PR#3": PRINT
190 REM CHECK FOR ACTIVE YEARS ON SYSTEM
200 EF = 1: PRINT D$"VERIFY YEARS"
210 PRINT D$"OPEN YEARS,L5": PRINT D$"READ YEARS,R0": INPUT YR: FOR I = 1 TO YR: PRINT D$"READ YEARS,R"I: INPUT YR$(I): NEXT : PRINT D$"CLOSE"
220 IF YR = 1 THEN 240
230 GOSUB 2600
240 IF PEEK(10) = 18 THEN YR$ = STR$( PEEK(11)) + STR$( PEEK(12)): GOTO 370
250 HOME : VTAB 3: PRINT "Current years on system:": PRINT
260 FOR I = 1 TO YR: PRINT YR$(I)" ";: REM 6 SPACES
270 NEXT : PRINT
280 VTAB 18: PRINT "Enter 'A' to add another year, 'D' to delete a year."
290 VTAB 20: HTAB 1: CALL -958: VTAB 20: PRINT : INPUT "With what year do you want to work? ";YR$
300 IF YR$ = "A" OR YR$ = "a" THEN HOME : GOTO 1960
310 IF YR$ = "D" OR YR$ = "d" THEN VTAB 12: PRINT CHR$(11): GOTO 2400
320 IF LEN(YR$) <4 THEN PRINT CHR$(7): GOTO 290
330 CK = 0: FOR I = 1 TO YR: IF YR$ = YR$(I) THEN CK = CK +1
340 NEXT
350 IF NOT CK THEN PRINT CHR$(7)"That year is not on the system! Press RETURN to resume.";: GET YN$: PRINT : GOTO 290
940 PRINT "You may change 'units', 'base cost', or 'total cost'. 'Cost/Unit' changes with modifications to 'units' and 'base cost'. '0' or RETURN to quit editing.": GOSUB 2250
950 PRINT : POKE 34,22
960 HOME : INPUT "#";SE$:SE = VAL(SE$): IF SE >36 THEN PRINT CHR$(7): GOTO 960
970 IF SE$ = CHR$(16) THEN POKE 34,19: HOME : GOSUB 1790: POKE -16368,0: GOTO 940
980 IF SE = 0 AND CK = 0 THEN 1180
990 IF SE = 0 THEN 1170
1000 CK = CK +1
1010 IF SE <4 THEN I = 1: GOTO 1060
1020 TE = SE:TE = TE/3:TE$ = STR$(TE):TE$ = RIGHT$(TE$,2)
1030 IF TE$ = "33" OR TE$ = "34" THEN I = INT(SE/3) +1:SE = 1: GOTO 1060
1040 IF TE$ = "67" THEN I = INT(SE/3) +1:SE = 2: GOTO 1060
1050 I = INT(SE/3):SE = 3
1060 IF SE <1 THEN 1130
1070 HOME : ON SE GOSUB 1080,1090,1100: GOTO 1130
1080 PRINT "Enter new 'unit' amount for ";M$(I)": ";: INPUT "";T$: GOSUB 1110:UN(I) = VAL(T$): RETURN
1090 PRINT "Enter new 'base cost' amount for ";M$(I)": ";: INPUT "";T$: GOSUB 1110:BC(I) = VAL(T$): RETURN
1100 PRINT "Enter new 'total cost' amount for ";M$(I)": ";: INPUT "";T$: GOSUB 1110:TC(I) = VAL(T$): RETURN
1110 IF T$ = "" THEN POP : RETURN
1120 RETURN
1130 IF SE <3 AND UN(I) < >0 THEN CP(I) = BC(I)/UN(I)
1140 VTAB I +4: PRINT CHR$(26): VTAB I +4:X = (3 *I) -3:CH = 1: GOSUB 750
1150 VTAB 18: PRINT CHR$(26): VTAB 18
1160 UN = 0:CP = 0:TC = 0:BC = 0: FOR I = 1 TO 12:UN = UN +UN(I):BC = BC +BC(I):TC = TC +TC(I): NEXT : GOSUB 870: GOTO 960
1170 PRINT D$"DELETE "UT$;YR$: PRINT D$"OPEN "UT$;YR$: PRINT D$"WRITE "UT$;YR$: FOR I = 1 TO 12: PRINT UN(I): PRINT BC(I): PRINT TC(I): NEXT : PRINT D$"CLOSE"
1180 FOR I = 1 TO 12:UN(I) = 0:BC(I) = 0:TC(I) = 0:CP(I) = 0: NEXT : TEXT : GOTO 380
1190 FOR I = 1 TO 4:U(I) = 0:T$(I) = "": NEXT : POKE 10,0: GOTO 220
1200 REM COMPARE YEARLY DATA
1210 HOME
1220 IF YR <2 THEN VTAB 12: PRINT CHR$(7)"Sorry, you must have at least two years of data on the system.": PRINT : INPUT "Press <Return> to resume.";YN$: GOTO 380
1250 VTAB 7: FOR I = 1 TO YR: PRINT YR$(I);" ";: NEXT : PRINT : PRINT : REM 6 SPACES
1260 PRINT "How many years do you wish to compare (up to ";(YR <5) *YR +(YR > = 5) *5;") ";: INPUT NU$:NU = VAL(NU$): IF NU <2 OR NU >5 OR NU >YR THEN PRINT CHR$(7): GOTO 1210
1270 PRINT : FOR I = 1 TO NU
1280 PRINT "Please enter year #";I;": ";: INPUT "";CY$(I):CK = 0
1290 FOR J = 1 TO YR: IF CY$(I) = YR$(J) THEN CK = 1:J = YR
1920 PRINT : PRINT D$;"PR#0": IF PEEK(48896) = 76 THEN PRINT D$;"PR#A$C307": RETURN
1930 FOR II = 0 TO 3: POKE 43603 +II,HK(II): NEXT : RETURN
1940 REM CREATE DATA FILE
1950 HOME : PRINT : VTAB 5: PRINT "There are no data files on this disk. Do you want to create one?";: INPUT "";YN$: IF LEFT$(YN$,1) = "n" OR LEFT$(YN$,1) = "N" THEN 470
1960 VTAB 7: INPUT "What year do you want to add? ";YR$: IF LEN(YR$) <2 OR LEN(YR$) >4 THEN PRINT CHR$(7): PRINT CHR$(26): PRINT : GOTO 1960
1970 IF LEN(YR$) <4 THEN YR$ = "19" +YR$
1980 IF YR = 0 THEN 2030
1990 FL = 0: FOR I = 1 TO YR
2000 IF YR$ = YR$(I) THEN FL = 1
2010 NEXT
2020 IF FL THEN PRINT : PRINT CHR$(7)"That year already exists.": PRINT : INPUT "Press RETURN to resume.";YN$:FL = 0: HOME : GOTO 1960
2690 IF ER = 6 AND EF = 1 THEN 1950: REM CREATE A FILE
2700 TEXT : HOME : VTAB 12
2710 IF ER = 255 AND LEN(YR$) <4 THEN 250
2720 IF ER = 255 THEN GOTO 380
2730 IF ER = 8 THEN HOME : VTAB 12: PRINT "A disk error has occurred. Please check drive door and disk. Press RETURN to retry.";: INPUT "";YN$: HOME : ON EF GOTO 200,2040,2140,2530
2740 IF ER = 22 THEN 250
2750 PRINT "An error has occurred in line ";EL;". The error code is ";ER;".": PRINT "Please refer to your manual.": END
2760 TEXT : HOME : VTAB 12: PRINT "SORRY, THIS PROGRAM WAS DESIGNED TO WORK ONLY ON AN APPLE //C OR 80-COL. //E.": END