Electric Cost Analyzer

Date: 1983
Type: Cassette
Platform(s): TS 1000
Tags: Home

Electric Cost Analyzer is an interactive home electricity cost calculator that estimates monthly charges for up to 16 categories of household appliances, including air conditioners, refrigerators, water heaters, lights, and televisions. The program stores per-item costs in array C(16) and accumulates a running monthly total in T(1), with the electric rate entered in cents per kilowatt-hour stored in E(1). Each appliance category is handled by a dedicated subroutine called dynamically via GOSUB X*100, where X is the user-selected item number — an elegant dispatch technique that avoids a long IF/THEN chain. Default wattage assumptions are provided for each appliance type when the user enters zero, and the opening title screen uses block graphics to render a stylized electric meter displaying animated billing data.


Program Analysis

Program Structure

The program is organized into a main loop and a collection of numbered subroutines, each dedicated to a specific appliance category. Execution begins with an introductory title screen (line 7000), then an electricity rate entry routine (line 4000), followed by a screen display of all 16 appliance categories (line 2000). The main loop at lines 35–90 prompts the user to select an item number, dispatches to the appropriate handler, and updates the running total.

The subroutine layout by line range is:

Line RangeAppliance / Function
100–199Air conditioners
200–299Electric blanket / other items
300–399Dishwasher
400–499Clothes dryer
500–599Freezer
600–699Hair dryers
700–799Heaters
800–899Lights
900–999Microwave oven
1000–1099Oven (range/wall)
1100–1199Refrigerator
1200–1299Stereo system
1300–1399Stove burners
1400–1499Toaster oven
1500–1599Television sets
1600–1699Water heater
2000–3099Menu display and cost column print
4000–4099Electric rate entry
5000–5099Reprint quantity column
6000–6099Cost formatting and total accumulation
7000–8099Title screen with animated bill display
9000–9099Column position calculation for cost display

Key BASIC Idioms and Notable Techniques

The most technically interesting feature is the computed GOSUB at line 75: GOSUB X*100, where X is the user-selected item number (1–16). This dispatches directly to the correct appliance subroutine (e.g., item 3 calls line 300, item 11 calls line 1100) without any IF/THEN chain, keeping the main loop compact. Items 6, 7, and 8 use line numbers 600, 700, and 800 respectively, but items 9 onward use 900, 1000, 1100, and so on — the mapping is consistent across all 16 categories.

The column-alignment subroutine at lines 9000–9099 computes the screen column G for right-aligning a cost figure based on its magnitude:

  • Column 29 for values under $0.10
  • Column 28 for $0.10–$9.99
  • Column 27 for $10.00–$99.99
  • Column 26 for $100.00 and above

The same logic is repeated inline at lines 41–44 for the total cost display, a minor duplication that could have reused the subroutine.

The flag variable D$ is set to "1" at line 35 for normal entry or checked against "0" (user-entered default) inside each appliance subroutine. This single string variable gates whether the program asks for wattage input or substitutes a hard-coded default value, a simple but effective dual-mode input pattern.

The flag variable SK is set to 1 by the title screen routine (line 7001) and cleared to 0 at line 89 after the first item entry. Line 38 tests SK=1 to skip the cost update subroutine on the very first pass through the loop, preventing accumulation before any data is entered.

Appliance Cost Formulas

Each subroutine applies a domain-appropriate formula. Representative examples include:

  • Air conditioner (line 175): C(X) = TS * DM * E(1) * H * B / 34.12 — BTU rating divided by 34.12 converts BTU/hr to kilowatts; thermostat setting TS scales usage.
  • Freezer/refrigerator (lines 550, 1150): C(X) = W * E(1) * 24 * 30 for wattage-based entry; or a cubic-foot formula using constants 3500 (freezer) and 4000 (refrigerator) divided by 0.0497 and 12 for the size-based default mode.
  • Water heater (line 1640): W = (P * 20 * 7.48) * (TH - 55) / 3412 — assumes 20 gallons per person per day, 7.48 BTU/gallon-°F, baseline 55°F, and 3412 BTU/kWh conversion.
  • Television (line 1512): Diagonal size in inches multiplied by 5 gives an estimated wattage when no explicit value is entered.

Title Screen

The subroutine at lines 7000–8099 draws an elaborate title screen using block graphic characters to render a stylized electric meter with wire connections, meter face, and an animated electric bill table. Lines 7033–7065 simulate scrolling bill data by overprinting line 20 with successive meter readings and dollar amounts in a tight loop, giving a simple animation effect before clearing the screen. A short delay loop using FOR Q=1 TO 25: NEXT Q at lines 8090–8091 paces the transition to the main program.

Bugs and Anomalies

  • At line 73, the previous cost for item X is subtracted from the total before recalculation: T(1) = T(1) - C(X). However, T(1) is only accumulated inside subroutine 6000 (line 6018), which is skipped on the first pass (when SK=1). This means that if an item is re-entered on the first selection, the subtraction will produce a negative total momentarily, though it self-corrects on subsequent entries.
  • Line 6002 divides C(X) by 10 then by 100: C(X) = INT(C(X)/10)/100. This rounds to the nearest 10 cents rather than the nearest cent, which may cause minor display inaccuracies for small costs.
  • Line 1157 uses CHR$(156 + N) to label refrigerators by number. For N=1 this yields CHR$(157), which is a block graphic character rather than a numeral — a cosmetic quirk when displaying refrigerator number labels.
  • Items 1, 6, 7, 8, and 16 are excluded from the default-mode prompt at line 53, meaning those subroutines always operate in their own internal default/manual logic without the global D$ flag being set by the user at the menu level.

Content

Appears On

Related Products

Calculate the energy usage of appliances and electric devices. 16K.

Related Articles

Related Content

Image Gallery

Electric Cost Analyzer

Source Code

   1 GOSUB 7000
   2 DIM C(16)
   3 DIM A(8)
   4 DIM E(1)
   5 DIM T(1)
   6 REM REV 1
   7 GOSUB 4000
   8 CLS 
   9 GOTO 15
  10 GOSUB 7000
  25 GOSUB 2000
  31 GOSUB 5000
  35 LET D$="1"
  36 PRINT AT 20,0;"                                "
  37 PRINT AT 20,1;"ELECTRIC RATE= ";E(1)*100;" CENTS/KWH"
  38 IF SK=1 THEN GOTO 40
  39 GOSUB 6000
  40 IF T(1)<=0 THEN GOTO 47
  41 IF T(1)>0 THEN LET P=29
  42 IF T(1)>=.1 THEN LET P=28
  43 IF T(1)>=10 THEN LET P=27
  44 IF T(1)>=100 THEN LET P=26
  45 PRINT AT 19,P;INT (T(1)*100)/100
  46 GOTO 48
  47 PRINT AT 19,29;".00"
  48 PRINT AT 21,0;"% % % % % %E%N%T%E%R% %T%H%E% %I%T%E%M% %N%U%M%B%E%R% % % % % % "
  49 PRINT AT X+1,0;" "
  50 INPUT X
  51 IF X<1 OR X>16 THEN GOTO 50
  52 PRINT AT X+1,0;"%>"
  53 IF X=1 OR X=6 OR X=7 OR X=8 OR X=16 THEN GOTO 57
  54 PRINT AT 21,0;"% % % % % %E%N%T%E%R% %Z%E%R%O% %F%O%R% %D%E%F%A%U%L%T% % % % % "
  55 INPUT D$
  60 PRINT AT 20,0;"                                "
  73 LET T(1)=T(1)-C(X)
  74 LET C(X)=0
  75 GOSUB X*100
  76 PRINT AT 19,26;"        "
  85 PRINT AT 21,0;"                                "
  89 LET SK=0
  90 GOTO 35
 101 PRINT AT 21,0;"%E%N%T%E%R% %N%U%M%B%E%R% %O%F% %A%I%R% %C%O%N%D%I%T%I%O%N%E%R%S"
 102 INPUT A(1)
 103 PRINT AT 2,21;"    "
 104 PRINT AT 2,21;A(1);")"
 105 FOR N=1 TO A(1)
 115 PRINT AT 20,0;"% % % %E%N%T%E%R% %B%T%U% %P%E%R% %H%O%U%R% %R%A%T%I%N%G% % % % "
 116 PRINT AT 21,0;"  FOR AIR CONDITIONER NUMBER    "
 127 PRINT AT 21,29;N
 130 INPUT B
 135 PRINT AT 20,0;"% %E%N%T%E%R% %N%O%.% %D%A%Y%S% %U%S%E%D% %E%A%C%H% %M%O%N%T%H% "
 140 INPUT DM
 145 PRINT AT 20,0;"%E%N%T%E%R% %N%O%.% %O%F% %H%O%U%R%S% %U%S%E%D% %E%A%C%H% %D%A%Y"
 148 INPUT H
 150 PRINT AT 20,0;"%E%N%T%E%R% %N%O%R%M%A%L% %T%H%E%R%M%O%S%T%A%T% %S%E%T%T%I%N%G% "
 151 PRINT AT 21,0;"% % % % % % %Z%E%R%O%-%L%O%W% %T%O% %1%0%-%H%I%G%H% % % % % % % "
 152 INPUT TS
 153 IF TS>10 OR TS<0 THEN GOTO 152
 175 LET C(X)=C(X)+(TS*DM*E(1)*H*B/34.12)
 180 NEXT N
 181 IF A(1)=0 THEN LET C(X)=0
 199 RETURN 
 201 IF D$="0" THEN GOTO 203
 202 GOTO 207
 203 LET W=170
 204 PRINT AT 20,0;"170 WATTS ASSUMED/ ELEC. BLANKET"
 205 PRINT AT 21,0;"% %E%N%T%E%R% %N%O%.% %O%F% %E%L%E%C%T%R%I%C% %B%L%A%N%K%E%T%S% "
 206 GOTO 208
 207 PRINT AT 21,0;"% % %E%N%T%E%R% %N%U%M%B%E%R% %O%F% %O%T%H%E%R% %I%T%E%M%S% % % "
 208 INPUT A(2)
 209 PRINT AT 3,20;"    "
 210 PRINT AT 3,20;A(2);")"
 211 FOR N=1 TO A(2)
 213 PRINT AT 21,0;"       FOR ITEM NUMBER          "
 214 PRINT AT 21,23;N
 215 IF D$="0" THEN GOTO 230
 216 PRINT AT 20,0;"% % % % % % % % % %E%N%T%E%R% %W%A%T%T%A%G%E% % % % % % % % % % "
 220 INPUT W
 235 PRINT AT 20,0;"% %E%N%T%E%R% %N%O%.% %D%A%Y%S% %U%S%E%D% %E%A%C%H% %M%O%N%T%H% "
 240 INPUT DM
 245 PRINT AT 20,0;"%E%N%T%E%R% %N%O%.% %O%F% %H%O%U%R%S% %U%S%E%D% %E%A%C%H% %D%A%Y"
 248 INPUT H
 250 LET C(X)=C(X)+(DM*W*E(1)*H)
 280 NEXT N
 281 IF A(2)=0 THEN LET C(X)=0
 299 RETURN 
 306 IF D$="0" THEN GOTO 312
 307 PRINT AT 21,0;"% % % % % % %E%N%T%E%R% %W%A%T%T%A%G%E% %R%A%T%I%N%G% % % % % % "
 308 INPUT W
 309 IF W=0 THEN GOTO 399
 310 PRINT AT 20,10;W;" WATTS"
 311 GOTO 334
 312 PRINT AT 20,7;"750 WATTS ASSUMED"
 313 LET W=750
 335 PRINT AT 21,0;"% %E%N%T%E%R% %N%O%.% %T%I%M%E%S% %U%S%E%D% %E%A%C%H% %W%E%E%K% "
 340 INPUT TW
 345 PRINT AT 21,0;"% % %N%O%.% %O%F% %M%I%N%U%T%E%S% %F%O%R% %D%R%Y% %C%Y%C%L%E% % "
 348 INPUT M
 350 LET C(X)=TW*W*E(1)*M*52/720
 399 RETURN 
 406 IF D$="0" THEN GOTO 410
 407 PRINT AT 21,0;"% % % % % % %E%N%T%E%R% %W%A%T%T%A%G%E% %R%A%T%I%N%G% % % % % % "
 408 INPUT W
 409 GOTO 430
 410 PRINT AT 20,7;"5600 WATTS ASSUMED"
 411 LET W=5600
 412 GOTO 435
 430 PRINT AT 20,11;W;" WATTS"
 431 IF W=0 THEN GOTO 499
 435 PRINT AT 21,0;"% %E%N%T%E%R% %N%O%.% %T%I%M%E%S% %U%S%E%D% %E%A%C%H% %W%E%E%K% "
 440 INPUT TW
 445 PRINT AT 21,0;"% %E%N%T%E%R% %N%O%.% %M%I%N%U%T%E%S% %O%F% %D%R%Y% %C%Y%C%L%E% "
 448 INPUT M
 450 LET C(X)=TW*W*E(1)*M*52/720
 499 RETURN 
 505 IF D$="0" THEN GOTO 555
 516 PRINT AT 21,0;"% % % % %E%N%T%E%R% %W%A%T%T%A%G%E% %O%F% %F%R%E%E%Z%E%R% % % % "
 517 INPUT W
 550 LET C(X)=C(X)+(W*E(1)*24*30)
 551 GOTO 580
 555 PRINT AT 20,0;"% %E%N%T%E%R% %T%H%E% %S%I%Z%E% %O%F% %T%H%E% %F%R%E%E%Z%E%R% % "
 556 PRINT AT 21,0;"% % % % % % % % % %I%N% %C%U%B%I%C% %F%E%E%T% % % % % % % % % % "
 557 INPUT CF
 570 LET C(X)=C(X)+(3500*CF*E(1)/.0497/12)
 599 RETURN 
 601 PRINT AT 21,0;"% % %E%N%T%E%R% %N%U%M%B%E%R% %O%F% %H%A%I%R% %D%R%Y%E%R%S% % % "
 602 INPUT A(3)
 603 PRINT AT 7,16;"     "
 604 PRINT AT 7,16;A(3);")"
 610 FOR N=1 TO A(3)
 616 PRINT AT 20,0;"% % % % % % %E%N%T%E%R% %W%A%T%T%A%G%E% %R%A%T%I%N%G% % % % % % "
 617 PRINT AT 21,0;"    FOR HAIR DRYER NUMBER       "
 622 PRINT AT 21,26;N
 627 INPUT W
 645 PRINT AT 20,0;"% %E%N%T%E%R% %N%O%.% %T%I%M%E%S% %U%S%E%D% %E%A%C%H% %W%E%E%K% "
 646 INPUT TW
 647 PRINT AT 20,0;"%E%N%T%E%R% %N%O%.% %M%I%N%U%T%E%S% %U%S%E%D% %E%A%C%H% %T%I%M%E"
 648 INPUT M
 650 LET C(X)=C(X)+(W*E(1)*M*TW*52/720)
 680 NEXT N
 681 IF A(3)=0 THEN LET C(X)=0
 699 RETURN 
 701 PRINT AT 21,0;"% % % % %E%N%T%E%R% %N%U%M%B%E%R% %O%F% %H%E%A%T%E%R%S% % % % % "
 702 INPUT A(4)
 703 PRINT AT 8,12;"    "
 704 PRINT AT 8,12;A(4);")"
 710 FOR N=1 TO A(4)
 711 PRINT AT 21,0;"        HEATER NUMBER           "
 716 PRINT AT 21,22;N
 718 PRINT AT 20,0;"% % % % %E%N%T%E%R% %W%A%T%T%A%G%E% %R%A%T%I%N%G% %F%O%R% % % % "
 720 INPUT W
 721 PRINT AT 20,0;"                                "
 722 PRINT AT 20,11;W;" WATTS"
 730 PRINT AT 21,0;"% %E%N%T%E%R% %N%O%.% %D%A%Y%S% %U%S%E%D% %E%A%C%H% %M%O%N%T%H% "
 732 INPUT DM
 735 PRINT AT 21,0;"%E%N%T%E%R% %N%O%.% %O%F% %H%O%U%R%S% %U%S%E%D% %E%A%C%H% %D%A%Y"
 740 INPUT H
 752 PRINT AT 20,0;"% %E%N%T%E%R% %N%O%R%M%A%L% %T%H%E%R%M%O%S%T%A%T% %S%E%T%T%I%N%G"
 753 PRINT AT 21,0;"% % % % % % %Z%E%R%O%-%L%O%W% %T%O% %1%0%-%H%I%G%H% % % % % % % "
 754 INPUT TS
 755 IF TS>10 OR TS<0 THEN GOTO 754
 770 LET C(X)=C(X)+(TS*W*E(1)*H*DM/10)
 780 NEXT N
 781 IF A(4)=0 THEN LET C(X)=0
 799 RETURN 
 801 PRINT AT 21,0;"% % % % % %E%N%T%E%R% %N%U%M%B%E%R% %O%F% %L%I%G%H%T%S% % % % % "
 802 INPUT A(5)
 803 PRINT AT 9,12;"     "
 804 PRINT AT 9,12;A(5);")"
 810 FOR N=1 TO A(5)
 815 PRINT AT 20,0;"% % % %E%N%T%E%R% %W%A%T%T%A%G%E% %O%F% %B%U%L%B% %F%O%R% % % % "
 816 PRINT AT 21,0;"        LIGHT NUMBER            "
 819 PRINT AT 21,21;N
 820 INPUT W
 835 PRINT AT 20,0;"%E%N%T%E%R% %N%O%.% %O%F% %H%O%U%R%S% %U%S%E%D% %E%A%C%H% %D%A%Y"
 840 INPUT H
 850 LET C(X)=C(X)+(W*E(1)*H*30)
 880 NEXT N
 881 IF A(5)=0 THEN LET C(X)=0
 899 RETURN 
 902 IF D$="0" THEN GOTO 920
 910 PRINT AT 20,0;"% %E%N%T%E%R% %W%A%T%T%A%G%E%;% %O%V%E%N%S% %T%Y%P%I%C%A%L%L%Y% "
 911 PRINT AT 21,0;"% % % %V%A%R%Y% %F%R%O%M% %9%0% %T%O% %6%2%5% %W%A%T%T%S%.% % % "
 912 INPUT W
 913 IF W=0 THEN GOTO 999
 914 GOTO 925
 920 LET W=400
 925 PRINT AT 20,0;"% %E%N%T%E%R% %N%O%.% %D%A%Y%S% %U%S%E%D% %E%A%C%H% %M%O%N%T%H% "
 926 PRINT AT 21,0;"                                "
 927 PRINT AT 21,11;W;" WATTS"
 928 INPUT D
 935 PRINT AT 20,0;"%E%N%T%E%R% %N%O%.% %O%F% %H%O%U%R%S% %U%S%E%D% %E%A%C%H% %D%A%Y"
 940 INPUT H
 950 LET C(X)=W*E(1)*H*D
 999 RETURN 
 1001 PRINT AT 21,0;"% % % % % %E%N%T%E%R% %N%U%M%B%E%R% %O%F% %O%V%E%N%S% % % % % % "
 1002 INPUT A(8)
 1003 PRINT AT 11,10;"    "
 1004 PRINT AT 11,10;A(8);")"
 1007 PRINT AT 20,1;"OVEN NO."
 1008 FOR N=1 TO A(8)
 1009 PRINT AT 20,10;N;"/"
 1011 IF D$="0" THEN GOTO 1018
 1013 PRINT AT 20,13;"             "
 1014 PRINT AT 21,0;"% % % % % %E%N%T%E%R% %W%A%T%T%A%G%E% %O%F% %O%V%E%N% % % % % % "
 1015 INPUT W
 1016 PRINT AT 20,13;W;" WATTS  "
 1017 GOTO 1020
 1018 LET W=2400
 1019 PRINT AT 20,13;W;" WATTS ASSUMED"
 1020 PRINT AT 21,0;"% %E%N%T%E%R% %N%O%.% %T%I%M%E%S% %U%S%E%D% %E%A%C%H% %W%E%E%K% "
 1022 INPUT TW
 1035 PRINT AT 21,0;"%E%N%T%E%R% %N%O% %O%F% %H%O%U%R%S% %U%S%E%D% %E%A%C%H% %T%I%M%E"
 1040 INPUT H
 1050 LET C(X)=C(X)+(W*E(1)*H*TW*52/12)
 1060 NEXT N
 1081 IF A(8)=0 THEN LET C(X)=0
 1099 RETURN 
 1101 PRINT AT 21,0;"% %E%N%T%E%R% %N%U%M%B%E%R% %O%F% %R%E%F%R%I%G%E%R%A%T%O%R%S% % "
 1105 INPUT A(6)
 1108 PRINT AT 12,18;"    "
 1109 PRINT AT 12,18;A(6);")"
 1110 FOR N=1 TO A(6)
 1115 IF D$="0" THEN GOTO 1155
 1116 PRINT AT 20,0;"% % % % % % % % %E%N%T%E%R% %W%A%T%T%A%G%E% %O%F% % % % % % % % "
 1117 PRINT AT 21,0;"      REFRIGERATOR NUMBER       "
 1125 PRINT AT 21,26;N
 1140 INPUT W
 1150 LET C(X)=C(X)+(W*E(1)*24*30)
 1152 GOTO 1180
 1155 PRINT AT 20,0;"% %E%N%T%E%R% %T%H%E% %S%I%Z%E% %O%F% %R%E%F%R%I%G%E%R%A%T%O%R% "
 1156 PRINT AT 21,0;"% % % % % %N%U%M%B%E%R% % % %I%N% %C%U%B%I%C% %F%E%E%T% % % % % "
 1157 PRINT AT 21,12;CHR$ (156+N)
 1160 INPUT CF
 1170 LET C(X)=C(X)+(4000*CF*E(1)/.0497/12)
 1180 NEXT N
 1181 IF A(6)=0 THEN LET C(X)=0
 1199 RETURN 
 1206 IF D$="0" THEN GOTO 1219
 1210 PRINT AT 20,0;"% %E%N%T%E%R% %P%O%W%E%R% %C%O%N%S%U%M%P%T%I%O%N% %W%A%T%T%A%G%E"
 1211 PRINT AT 21,0;"%F%O%R% %A%L%L% %C%O%M%P%O%N%E%N%T%S% %I%N% %T%H%E% %S%Y%S%T%E%M"
 1212 INPUT W
 1213 PRINT AT 20,0;"                                "
 1214 PRINT AT 20,11;W;" WATTS"
 1215 IF W=0 THEN GOTO 1299
 1218 GOTO 1230
 1219 PRINT AT 20,7;"300 WATTS ASSUMED"
 1221 LET W=300
 1230 PRINT AT 21,0;"%E%N%T%E%R% %N%O%.% %O%F% %H%O%U%R%S% %U%S%E%D% %E%A%C%H% %D%A%Y"
 1240 INPUT H
 1250 LET C(X)=W*E(1)*H*30
 1299 RETURN 
 1301 PRINT AT 21,0;"% % %E%N%T%E%R% %N%U%M%B%E%R% %O%F% %B%U%R%N%E%R%S% %U%S%E%D% % "
 1302 INPUT BU
 1304 FOR N=1 TO BU
 1306 IF D$="0" THEN GOTO 1329
 1309 PRINT AT 20,4;"BURNER ";N
 1311 PRINT AT 21,0;"% % %E%N%T%E%R% %T%H%E% %W%A%T%T%A%G%E% %O%F% %B%U%R%N%E%R% % % "
 1314 INPUT W
 1318 PRINT AT 20,13;" = ";W;" WATTS "
 1328 GOTO 1335
 1329 LET W=1025
 1330 PRINT AT 20,0;"  BURNER( )= 1025 WATTS ASSUMED"
 1331 PRINT AT 20,9;N
 1335 PRINT AT 21,0;"%E%N%T%E%R% %N%O%.% %O%F% %H%O%U%R%S% %U%S%E%D% %E%A%C%H% %D%A%Y"
 1340 INPUT H
 1350 LET C(X)=C(X)+(W*E(1)*H*30)
 1360 NEXT N
 1399 RETURN 
 1406 IF D$="0" THEN GOTO 1420
 1410 PRINT AT 21,0;"% % % % % % % % % %E%N%T%E%R% %W%A%T%T%A%G%E% % % % % % % % % % "
 1411 INPUT W
 1412 IF W=0 THEN GOTO 1499
 1419 GOTO 1421
 1420 LET W=1500
 1421 PRINT AT 21,0;"% %E%N%T%E%R% %N%O%.% %D%A%Y%S% %U%S%E%D% %E%A%C%H% %M%O%N%T%H% "
 1422 PRINT AT 20,11;W;" WATTS"
 1423 INPUT D
 1435 PRINT AT 21,0;"%E%N%T%E%R% %N%O%.% %M%I%N%U%T%E%S% %U%S%E%D% %E%A%C%H% %T%I%M%E"
 1440 INPUT M
 1450 LET C(X)=W*E(1)*M*D/60
 1499 RETURN 
 1500 PRINT AT 21,0;"% % % % %E%N%T%E%R% %N%U%M%B%E%R% %O%F% %T%V% %S%E%T%S% % % % % "
 1501 INPUT A(7)
 1502 PRINT AT 16,16;"    "
 1503 PRINT AT 16,16;A(7);")"
 1504 FOR N=1 TO A(7)
 1505 PRINT AT 21,0;"      FOR TV SET NUMBER         "
 1506 PRINT AT 21,24;N
 1507 IF D$="0" THEN GOTO 1510
 1508 GOTO 1518
 1510 PRINT AT 20,0;"% %E%N%T%E%R% %D%I%A%G%O%N%A%L% %S%I%Z%E% %I%N% %I%N%C%H%E%S% % "
 1511 INPUT SZ
 1512 LET W=INT (SZ*5)
 1513 PRINT AT 21,0;"                                "
 1514 PRINT AT 21,8;W;" WATTS ASSUMED"
 1515 GOTO 1535
 1518 PRINT AT 20,0;"% % % % %E%N%T%E%R% %W%A%T%T%A%G%E% %R%A%T%I%N%G% %F%O%R%:% % % "
 1520 INPUT W
 1535 PRINT AT 20,0;"%E%N%T%E%R% %N%O%.% %O%F% %H%O%U%R%S% %U%S%E%D% %E%A%C%H% %D%A%Y"
 1540 INPUT H
 1550 LET C(X)=C(X)+(W*E(1)*H*30)
 1580 NEXT N
 1581 IF A(7)=0 THEN LET C(X)=0
 1599 RETURN 
 1610 PRINT AT 20,0;"% % %E%N%T%E%R% %T%H%E% %N%U%M%B%E%R% %O%F% %P%E%R%S%O%N%S% % % "
 1611 PRINT AT 21,0;"% % % %R%E%S%I%D%I%N%G% %I%N% %T%H%E% %H%O%U%S%E%H%O%L%D%.% % % "
 1612 INPUT P
 1613 IF P=0 THEN GOTO 1699
 1620 PRINT AT 20,0;"% %E%N%T%E%R% %W%A%T%E%R% %H%E%A%T%E%R% %T%H%E%R%M%O%S%T%A%T% % "
 1621 PRINT AT 21,0;"% %S%E%T%T%I%N%G% %I%N% %D%E%G%R%E%E%S% %F%A%H%R%E%N%H%E%I%T%.% "
 1622 INPUT TH
 1634 PRINT AT 21,0;"                                "
 1635 PRINT AT 20,0;" DAILY HOT WATER USAGE ASSUMED: "
 1636 PRINT AT 21,10;P*20;" GALLONS"
 1640 LET W=(P*20*7.48)*(TH-55)/3412
 1650 LET C(X)=1000*W*E(1)*30
 1660 FOR Q=1 TO 30
 1670 NEXT Q
 1699 RETURN 
 2010 PRINT AT 0,5;"ITEM (QUANTITY)";TAB 27;"COST"
 2011 PRINT AT 1,0;"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''"
 2015 PRINT AT 2,2;"1-AIR CONDITIONER";TAB 25;"$"
 2018 PRINT AT 3,2;"2-BLANKET/ OTHER";TAB 25;"$"
 2022 PRINT AT 4,2;"3-DISHWASHER";TAB 25;"$"
 2024 PRINT AT 5,2;"4-CLOTHES DRYER";TAB 25;"$"
 2025 PRINT AT 6,2;"5-FREEZER";TAB 25;"$"
 2026 PRINT AT 7,2;"6-HAIR DRYER";TAB 25;"$"
 2028 PRINT AT 8,2;"7-HEATER";TAB 25;"$"
 2032 PRINT AT 9,2;"8-LIGHTS";TAB 25;"$"
 2034 PRINT AT 10,2;"9-MICROWAVE OVEN";TAB 25;"$"
 2036 PRINT AT 11,1;"10-OVEN";TAB 25;"$"
 2038 PRINT AT 12,1;"11-REFRIGERATOR";TAB 25;"$"
 2040 PRINT AT 13,1;"12-STEREO";TAB 25;"$"
 2042 PRINT AT 14,1;"13-STOVE";TAB 25;"$"
 2044 PRINT AT 15,1;"14-TOASTER OVEN";TAB 25;"$"
 2048 PRINT AT 16,1;"15-TELEVISION";TAB 25;"$"
 2050 PRINT AT 17,1;"16-WATER HEATER";TAB 25;"$"
 2055 PRINT AT 18,0;"''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''"
 2058 PRINT AT 19,0;"MONTHLY ELECTRIC COST    $"
 3000 FOR X=1 TO 16
 3001 IF C(X)=0 THEN GOTO 3070
 3005 GOSUB 9000
 3050 PRINT AT X+1,G;C(X)
 3060 GOTO 3080
 3070 PRINT AT X+1,29;".00"
 3080 NEXT X
 3099 RETURN 
 4000 PRINT AT 2,0;"ENTER THE COST OF A KILO-WATT    HOUR (KWH) FOR YOUR AREA.                                      YOU CAN CALCULATE THIS VALUE     USING ONE OF YOUR RECENT        ELECTRIC BILLS AND THE          FOLLOWING EQUATION."
 4012 PRINT AT 12,12;"ELECTRIC BILL X 100"
 4013 PRINT AT 13,1;"COST/KWH= ---------------------"
 4014 PRINT AT 14,18;"KWH USED"
 4015 PRINT AT 17,0;"THIS VALUE SHOULD RANGE BETWEEN"
 4017 PRINT AT 18,1;"2 AND 15 CENTS."
 4019 PRINT AT 21,0;"% % % % % %E%N%T%E%R% %C%O%S%T%/%K%W%H% %(%C%E%N%T%S%)% % % % % "
 4020 INPUT EE
 4024 LET E(1)=EE/100
 4099 RETURN 
 5010 PRINT AT 2,20;"(";INT A(1);")"
 5011 PRINT AT 3,19;"(";INT A(2);")"
 5012 PRINT AT 7,15;"(";INT A(3);")"
 5016 PRINT AT 8,11;"(";INT A(4);")"
 5020 PRINT AT 9,11;"(";INT A(5);")"
 5021 PRINT AT 11,9;"(";INT A(8);")"
 5022 PRINT AT 12,17;"(";INT A(6);")"
 5025 PRINT AT 16,15;"(";INT A(7);")"
 5099 RETURN 
 6001 PRINT AT X+1,26;"      "
 6002 LET C(X)=INT (C(X)/10)/100
 6011 IF C(X)=0 THEN GOTO 6022
 6015 GOSUB 9000
 6018 LET T(1)=C(X)+T(1)
 6019 PRINT AT X+1,G;C(X)
 6020 GOTO 6025
 6022 PRINT AT X+1,29;".00"
 6099 RETURN 
 7000 SLOW 
 7001 LET SK=1
 7002 LET X=1
 7005 PRINT AT 11,5;"ELECTRIC COST ANALYZER"
 7006 PRINT AT 11,28;".....:"
 7007 PRINT AT 10,30;" :"
 7008 PRINT AT 9,30;" :"
 7009 PRINT AT 8,16;".............................."
 7010 PRINT AT 8,14;"@@@@"
 7011 PRINT AT 7,14;"@@@@"
 7015 PRINT AT 6,14;":  :"
 7016 PRINT AT 5,13;"'.::.'"
 7017 PRINT AT 4,12;" : <> : "
 7018 PRINT AT 3,12;" :    : "
 7019 PRINT AT 2,13;".'  '."
 7020 PRINT AT 1,14;"...."
 7021 PRINT AT 11,1;"......"
 7022 FOR N=12 TO 15
 7023 PRINT AT N,1;": "
 7024 NEXT N
 7025 PRINT AT 16,1;"''''''''''''''''''''''''''''''''''''''''"
 7026 PRINT AT 14,25;":''''''': ";TAB 53;"% % ,, :  . . : ";TAB 85;"% % ,, :  : : : ";TAB 117;"''''  :    : ";TAB 153;"''''''''' "
 7030 PRINT AT 18,6;"% %E%L%E%C%T%R%I%C% %C%O%M%P%A%N%Y% "
 7031 PRINT AT 19,0;".% %R%A%T%E% % %R%E%A%D%I%N%G%S% % % %K%W%H% % %A%M%O%U%N%T% ."
 7032 PRINT AT 20,0;".%  RS  4197  4197";TAB 19;"000";TAB 23;"$   .00% ."
 7033 FOR Q=1 TO 15
 7034 NEXT Q
 7035 PRINT AT 15,21;"    : .:% . : ";TAB 53;"'''''''':'% % : ";TAB 85;"    :  ''' : "
 7039 PRINT AT 4,4;"* * * *"
 7040 PRINT AT 3,19;"* * * *"
 7041 PRINT AT 20,13;"4320";TAB 19;"123";TAB 26;"4.86"
 7042 PRINT AT 5,11;"*";TAB 18;"*"
 7044 PRINT AT 20,13;"4443";TAB 19;"246";TAB 25;"15.23"
 7045 PRINT AT 6,10;"*";TAB 19;"*"
 7046 PRINT AT 20,13;"4566";TAB 19;"369";TAB 25;"33.72"
 7047 PRINT AT 7,9;"*";TAB 20;"*"
 7048 PRINT AT 20,13;"4689";TAB 19;"492";TAB 25;"58.54"
 7056 PRINT AT 8,8;"*"
 7057 PRINT AT 20,13;"4812";TAB 19;"615";TAB 25;"79.76"
 7058 PRINT AT 2,11;"*";TAB 18;"*"
 7059 PRINT AT 20,13;"4935";TAB 19;"738";TAB 25;"88.75"
 7060 PRINT AT 1,9;"*";TAB 20;"*"
 7061 PRINT AT 20,13;"5058";TAB 19;"861";TAB 25;"92.67"
 7064 PRINT AT 0,7;"*";TAB 22;"*"
 7065 PRINT AT 20,13;"5182";TAB 19;"985";TAB 23;"$100.00"
 8090 FOR Q=1 TO 25
 8091 NEXT Q
 8098 CLS 
 8099 RETURN 
 9014 IF C(X)>0 THEN LET G=29
 9015 IF C(X)>=.1 THEN LET G=28
 9017 IF C(X)>=10 THEN LET G=27
 9018 IF C(X)>=100 THEN LET G=26
 9099 RETURN 

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

People

No people associated with this content.

Scroll to Top