home *** CD-ROM | disk | FTP | other *** search
Wrap
10 REM *********************** 20 REM * ANALYZER * 30 REM * ENERGY SQUEEZER * 40 REM * BY VERN L. MASTEL * 50 REM * COPYRIGHT (C) 1988 * 60 REM * MICROSPARC, INC * 70 REM * CONCORD, MA 01742 * 80 REM *********************** 90 IF PEEK(6) <10 OR PEEK(6) >60 THEN HOME : PRINT "YOU MUST FIRST RUN THE PROGRAM": PRINT "START.ANALYSIS": END 100 A$ = "":IN$ = "":BI = 0:C = 0:I = 0:ESC$ = CHR$(27):RET$ = CHR$(13):DOT$ = ".": DIM PX(72),PY(72) 110 DIM B$(7,86): GOSUB 240:LINE$ = "=======================================": POKE 34,0: HOME : GOTO 270: REM 39 ='S 120 PRINT CHR$(7);: RETURN 130 PRINT " THE HEAT SAVINGS WOULD BE ";SAV;"%" 140 PRINT " THE ANNUAL COST SAVING COULD BE $"; VAL(AC$) *(SAV/100) 150 PRINT : HTAB 7: PRINT "*ENTER 'P' TO PRINT DATA*" 160 PRINT : HTAB 6: PRINT "OR PRESS RETURN TO CONTINUE"; 170 RETURN 180 PRINT " LOSS THROUGH WALLS...."; INT(WL);" BTU/HR" 190 PRINT " LOSS THROUGH CEILING.."; INT(RL);" BTU/HR" 200 PRINT " AIR LEAKAGE LOSSES...."; INT(DL);" BTU/HR" 210 PRINT " LOSS THROUGH WINDOWS.."; INT(GL);" BTU/HR" 220 RETURN 230 FOR Z = 1 TO (4 -C): PRINT " ";: NEXT : PRINT A$: RETURN 240 FOR X = 1 TO 86:B$(BI,X) = "": NEXT : RETURN 250 TN = INT(WL +RL +GL +DL): RETURN 260 VTAB PEEK(37): RETURN 270 M = PEEK(6): HOME : VTAB 3: HTAB 16: PRINT "*NOTE*": PRINT : HTAB 11: PRINT "ALL DIMENSIONS ARE" 280 PRINT : HTAB 10: PRINT "TO BE ENTERED IN FEET": PRINT : HTAB 7: PRINT "AND DECIMAL PARTS OF A FOOT" 290 PRINT : HTAB 14: PRINT "(E.G. 2.25)": PRINT : PRINT 300 PRINT : PRINT " ENTRIES ARE RESTRICTED TO FOUR DIGITS": PRINT : HTAB 9: PRINT "INCLUDING DECIMAL POINT": PRINT 310 PRINT : PRINT : PRINT " PRESS RETURN TO BEGIN ENTERING DATA";: GET A$ 320 HOME : REM BEGIN WORKSHEET 330 HTAB 9: PRINT "ENERGY ANALYSIS WORKSHEET": PRINT LINE$ 340 TEXT : POKE 34,2: HOME : PRINT :BI = 1: REM DOUBLE PANE 350 HTAB 8: PRINT "COMPUTE TOTAL DOUBLE-PANE": PRINT 360 HTAB 15: PRINT "WINDOW AREA": PRINT 370 HTAB 6: PRINT "PRESS RETURN TO CONTINUE OR": PRINT 380 HTAB 10: PRINT "ENTER 'B' TO BACK UP": PRINT 390 PRINT " ENTER '0' IF NO ENTRIES WILL BE MADE"; 400 GET A$: IF A$ = "0" THEN 750 410 IF A$ = "B" THEN PRINT : PRINT : INPUT "ARE YOU SURE (Y/N) ?";Y$: IF Y$ = "Y" THEN A$ = "6": POKE 34,0: HOME : PRINT CHR$(4)"RUN START.ANALYSIS" 420 IF A$ = "B" THEN 450 430 IF A$ = CHR$(13) THEN 450 440 GOSUB 120: GOTO 400 450 HOME : HTAB 10: PRINT "DOUBLE-PANE WINDOW AREA" 460 PRINT " # HT WIDTH # HT WIDTH # HT WIDTH": PRINT LINE$ 470 FOR X = 1 TO 23 STEP 2: PRINT INT((X +1)/2);")";: HTAB 4: PRINT B$(BI,X);: HTAB 9: PRINT B$(BI,X +1): NEXT : VTAB 6: FOR X = 25 TO 47 STEP 2: HTAB 14: PRINT INT((X +1)/2);")";: HTAB 17: PRINT B$(BI,X);: HTAB 22: PRINT B$(BI,X +1): NEXT 480 VTAB 6: FOR X = 49 TO 71 STEP 2: HTAB 27: PRINT INT((X +1)/2);")";: HTAB 30: PRINT B$(BI,X);: HTAB 35: PRINT B$(BI,X +1): NEXT 490 PRINT LINE$ 500 PRINT " 'ESC' TO BACK UP THROUGH DATA": PRINT 510 HTAB 9: PRINT "'RETURN' TO MOVE FORWARD ": PRINT 520 PRINT " 'A' TO ACCEPT DATA 'B' TO BACK UP" 530 FOR I = 1 TO 23 STEP 2:PX(I) = 4:PY(I) = INT(5 +(I +1)/2):PX(I +1) = 9:PY(I +1) = PY(I): NEXT I 540 FOR I = 25 TO 71 STEP 2:PX(I) = 17 +13 *(I >47):PY(I) = PY(I -24):PX(I +1) = 22 +13 *(I >48):PY(I +1) = PY(I): NEXT I 550 I = 1 560 HTAB PX(I): VTAB PY(I) 570 GOSUB 4760: REM GET NUMBER 580 ON FLAG GOTO 590,670,340,630 590 REM ESC 600 IF C >0 THEN GOSUB 230 610 IF I >1 THEN I = I -1: GOTO 560 620 I = 72: GOTO 560 630 REM CR 640 IF C >0 THEN GOSUB 230 650 IF I <72 THEN I = I +1: GOTO 560 660 I = 1: GOTO 560 670 TEXT : VTAB 19: HTAB 1: CALL -958 680 T = 0: FOR X = 1 TO 71 STEP 2:T = T + VAL(B$(BI,X)) * VAL(B$(BI,X +1)): NEXT X 690 T = ( INT(T *10))/10 700 HTAB 6: PRINT "THE TOTAL DOUBLE-PANE AREA IS": PRINT : HTAB 10: PRINT "==> ";T;" SQ FEET":DP = T 710 PRINT : PRINT "'RETURN' TO CONTINUE OR 'B' TO BACK UP"; 720 GET A$: IF A$ = "B" THEN GOTO 340 730 IF A$ = CHR$(13) THEN 750 740 GOSUB 120: GOTO 720 750 REM SINGLE PANE DATA 760 TEXT : POKE 34,2: HOME :BI = 2: PRINT : REM SINGLE PANE 770 HTAB 8: PRINT "COMPUTE TOTAL SINGLE-PANE": PRINT 780 HTAB 15: PRINT "WINDOW AREA": PRINT 790 HTAB 6: PRINT "PRESS RETURN TO CONTINUE OR": PRINT 800 HTAB 10: PRINT "ENTER 'B' TO BACK UP": PRINT 810 PRINT " ENTER '0' IF NO ENTRIES WILL BE MADE"; 820 GET A$: IF A$ = "0" THEN 1150 830 IF A$ = "B" THEN 340 840 IF A$ = CHR$(13) THEN 860 850 GOSUB 120: GOTO 820 860 HOME : HTAB 10: PRINT "SINGLE-PANE WINDOW AREA" 870 PRINT " # HT WIDTH # HT WIDTH # HT WIDTH": PRINT LINE$ 880 FOR X = 1 TO 23 STEP 2: PRINT INT((X +1)/2);")";: HTAB 4: PRINT B$(BI,X);: HTAB 9: PRINT B$(BI,X +1): NEXT : VTAB 6: FOR X = 25 TO 47 STEP 2: HTAB 14: PRINT INT((X +1)/2);")";: HTAB 17: PRINT B$(BI,X);: HTAB 22: PRINT B$(BI,X +1): NEXT 890 VTAB 6: FOR X = 49 TO 71 STEP 2: HTAB 27: PRINT INT((X +1)/2);")";: HTAB 30: PRINT B$(BI,X);: HTAB 35: PRINT B$(BI,X +1): NEXT 900 PRINT LINE$ 910 PRINT " 'ESC' TO BACK UP THROUGH THE DATA": PRINT 920 HTAB 9: PRINT "'RETURN' TO MOVE FORWARD ": PRINT 930 PRINT " 'A' TO ACCEPT DATA 'B' TO BACK UP" 940 FOR I = 1 TO 23 STEP 2:PX(I) = 4:PY(I) = INT(5 +(I +1)/2):PX(I +1) = 9:PY(I +1) = PY(I): NEXT I 950 FOR I = 25 TO 71 STEP 2:PX(I) = 17 +13 *(I >47):PY(I) = PY(I -24):PX(I +1) = 22 +13 *(I >48):PY(I +1) = PY(I): NEXT I:I = 1 960 HTAB PX(I): VTAB PY(I) 970 GOSUB 4760: REM READ NUMBER ROUTINE 980 ON FLAG GOTO 990,1070,760,1030 990 REM ESC HANDLER 1000 IF C >0 THEN GOSUB 230 1010 IF I >1 THEN I = I -1: GOTO 960 1020 I = 72: GOTO 960 1030 REM CR HANDLER 1040 IF C >0 THEN GOSUB 230 1050 IF I <72 THEN I = I +1: GOTO 960 1060 I = 1: GOTO 560 1070 TEXT : VTAB 19: HTAB 1: CALL -958 1080 T = 0: FOR X = 1 TO 71 STEP 2:T = T + VAL(B$(BI,X)) * VAL(B$(BI,X +1)): NEXT X 1090 T = ( INT(T *10))/10 1100 HTAB 6: PRINT "THE TOTAL SINGLE-PANE AREA IS": PRINT : HTAB 10: PRINT "==> ";T;" SQ FEET":SP = T 1110 PRINT : PRINT "'RETURN' TO CONTINUE OR 'B' TO BACK UP"; 1120 GET A$: IF A$ = "B" THEN 760 1130 IF A$ = CHR$(13) THEN 1150 1140 GOSUB 120: GOTO 1120 1150 REM 1160 TEXT : POKE 34,2: HOME : PRINT :BI = 3: REM RECTANGULAR WALL 1170 HTAB 8: PRINT "COMPUTE TOTAL RECTANGULAR": PRINT 1180 HTAB 15: PRINT "WALL AREA": PRINT 1190 HTAB 6: PRINT "PRESS RETURN TO CONTINUE OR": PRINT 1200 HTAB 10: PRINT "ENTER 'B' TO BACK UP": PRINT 1210 PRINT " ENTER '0' IF NO ENTRIES WILL BE MADE"; 1220 GET A$: IF A$ = "0" THEN 1540 1230 IF A$ = CHR$(13) THEN 1260 1240 IF A$ = "B" THEN 750 1250 GOSUB 120: GOTO 1220 1260 HOME : HTAB 10: PRINT "RECTANGULAR WALL AREA" 1270 PRINT " # HT WIDTH # HT WIDTH ": PRINT LINE$ 1280 FOR X = 1 TO 23 STEP 2: PRINT INT((X +1)/2);")";: HTAB 4: PRINT B$(BI,X);: HTAB 9: PRINT B$(BI,X +1): NEXT : VTAB 6: FOR X = 25 TO 47 STEP 2: HTAB 14: PRINT INT((X +1)/2);")";: HTAB 17: PRINT B$(BI,X);: HTAB 22: PRINT B$(BI,X +1): NEXT 1290 PRINT LINE$ 1300 PRINT " 'ESC' TO BACK UP THROUGH THE DATA": PRINT 1310 HTAB 9: PRINT "'RETURN' TO MOVE FORWARD ": PRINT 1320 PRINT " 'A' TO ACCEPT DATA 'B' TO BACK UP" 1330 FOR X = 1 TO 23 STEP 2:PX(X) = 4:PY(X) = 5 + INT((X +1)/2):PX(X +1) = 9:PY(X +1) = PY(X): NEXT : FOR X = 25 TO 47 STEP 2:PX(X) = 17:PY(X) = PY(X -24):PX(X +1) = 22:PY(X +1) = PY(X): NEXT 1340 I = 1 1350 HTAB PX(I): VTAB PY(I) 1360 GOSUB 4760: REM INPUT NUMBER 1370 ON FLAG GOTO 1380,1460,1160,1420 1380 REM ESC 1390 IF C >0 THEN GOSUB 230 1400 IF I >1 THEN I = I -1: GOTO 1350 1410 I = 48: GOTO 1350 1420 REM CR HANDLER 1430 IF C >0 THEN GOSUB 230 1440 IF I <48 THEN I = I +1: GOTO 1350 1450 I = 1: GOTO 1350 1460 TEXT : VTAB 19: HTAB 1: CALL -958 1470 T = 0: FOR X = 1 TO 47 STEP 2:T = T + VAL(B$(BI,X)) * VAL(B$(BI,X +1)): NEXT X 1480 T = ( INT(T *10))/10 1490 HTAB 7: PRINT "THE RECTANGULAR WALL AREA IS": PRINT : HTAB 10: PRINT "==> ";T;" SQ FEET":WA = T 1500 PRINT : PRINT "'RETURN' TO CONTINUE OR 'B' TO BACK UP"; 1510 GET A$: IF A$ = "B" THEN 1160 1520 IF A$ = CHR$(13) THEN 1540 1530 GOSUB 120: GOTO 1510 1540 REM 1550 TEXT : POKE 34,2: HOME :BI = 4: REM TRIANGULAR WALL 1560 PRINT : HTAB 6: PRINT "COMPUTE TRIANGULAR WALL AREA": PRINT 1570 HTAB 6: PRINT "PRESS RETURN TO CONTINUE OR": PRINT 1580 HTAB 10: PRINT "ENTER 'B' TO BACK UP": PRINT 1590 PRINT " ENTER '0' IF NO ENTRIES WILL BE MADE"; 1600 GET A$: IF A$ = "0" THEN 1910 1610 IF A$ = "B" THEN 1150 1620 IF A$ = CHR$(13) THEN 1640 1630 GOSUB 120: GOTO 1600 1640 HOME : HTAB 11: PRINT "TRIANGULAR WALL AREA" 1650 PRINT " # HT WIDTH # HT WIDTH ": PRINT LINE$ 1660 FOR X = 1 TO 23 STEP 2: PRINT INT((X +1)/2);")";: HTAB 4: PRINT B$(BI,X);: HTAB 9: PRINT B$(BI,X +1): NEXT : VTAB 6: FOR X = 25 TO 47 STEP 2: HTAB 14: PRINT INT((X +1)/2);")";: HTAB 17: PRINT B$(BI,X);: HTAB 22: PRINT B$(BI,X +1): NEXT 1670 PRINT LINE$ 1680 PRINT " 'ESC' TO BACK UP THROUGH THE DATA": PRINT 1690 HTAB 9: PRINT "'RETURN' TO MOVE FORWARD ": PRINT 1700 PRINT " 'A' TO ACCEPT DATA 'B' TO BACK UP" 1710 FOR X = 1 TO 23 STEP 2:PX(X) = 4:PY(X) = 5 + INT((X +1)/2):PX(X +1) = 9:PY(X +1) = PY(X): NEXT : FOR X = 25 TO 47 STEP 2:PX(X) = 17:PY(X) = PY(X -24):PX(X +1) = 22:PY(X +1) = PY(X): NEXT :I = 1 1720 HTAB PX(I): VTAB PY(I) 1730 GOSUB 4760: REM INPUT NUMBER 1740 ON FLAG GOTO 1750,1830,1550,1790 1750 REM ESC 1760 IF C >0 THEN GOSUB 230 1770 IF I >1 THEN I = I -1: GOTO 1720 1780 I = 48: GOTO 1720 1790 REM CR 1800 IF C >0 THEN GOSUB 230 1810 IF I <48 THEN I = I +1: GOTO 1720 1820 I = 1: GOTO 1720 1830 TEXT : VTAB 19: HTAB 1: CALL -958 1840 T = 0: FOR X = 1 TO 47 STEP 2:T = T + VAL(B$(BI,X)) * VAL(B$(BI,X +1)): NEXT X 1850 T = (( INT(T *10))/10)/2 1860 HTAB 8: PRINT "THE TRIANGULAR WALL AREA IS": PRINT : HTAB 10: PRINT "==> ";T;" SQ FEET":TP = T 1870 PRINT : PRINT "'RETURN' TO CONTINUE OR 'B' TO BACKUP"; 1880 GET A$: IF A$ = "B" THEN 1550 1890 IF A$ = CHR$(13) THEN 1910 1900 GOSUB 120: GOTO 1880 1910 REM 1920 TEXT : POKE 34,2: HOME :BI = 5: REM TRAPEZOIDAL WALL 1930 PRINT : HTAB 6: PRINT "COMPUTE TRAPEZOIDAL WALL AREA": PRINT 1940 HTAB 6: PRINT "PRESS RETURN TO CONTINUE OR": PRINT 1950 HTAB 10: PRINT "ENTER 'B' TO BACK UP": PRINT 1960 PRINT " ENTER '0' IF NO ENTRIES WILL BE MADE"; 1970 GET A$: IF A$ = "0" THEN 2280 1980 IF A$ = "B" THEN 1540 1990 IF A$ = CHR$(13) THEN 2010 2000 GOSUB 10: GOTO 1970 2010 HOME : HTAB 11: PRINT "TRAPEZOIDAL WALL AREA" 2020 PRINT " # BASE#1 BASE#2 AREA HEIGHT": PRINT LINE$ 2030 FOR X = 1 TO 34 STEP 3: PRINT INT((X +2)/3);")";: HTAB 7: PRINT B$(BI,X);: HTAB 17: PRINT B$(BI,X +1);: HTAB 27: PRINT B$(BI,X +2): NEXT 2040 PRINT LINE$ 2050 PRINT " 'ESC' TO BACK UP THROUGH THE DATA": PRINT 2060 HTAB 9: PRINT "'RETURN' TO MOVE FORWARD ": PRINT 2070 PRINT " 'A' TO ACCEPT DATA 'B' TO BACK UP" 2080 FOR X = 1 TO 34 STEP 3:PX(X) = 7:PY(X) = 5 + INT((X +2)/3):PX(X +1) = 17:PY(X +1) = PY(X):PX(X +2) = 27:PY(X +2) = PY(X): NEXT 2090 I = 1 2100 HTAB PX(I): VTAB PY(I) 2110 GOSUB 4760: REM INPUT ROUTINE 2120 ON FLAG GOTO 2130,2210,1920,2170 2130 REM ESC 2140 IF C >0 THEN GOSUB 230 2150 IF I >1 THEN I = I -1: GOTO 2100 2160 I = 36: GOTO 2100 2170 REM CR 2180 IF C >0 THEN GOSUB 230 2190 IF I <36 THEN I = I +1: GOTO 2100 2200 I = 1: GOTO 2100 2210 TEXT : VTAB 19: HTAB 1: CALL -958 2220 T = 0: FOR X = 1 TO 34 STEP 3:T = T +((( VAL(B$(BI,X)) + VAL(B$(BI,X +1))) * VAL(B$(BI,X +2)))/2): NEXT X 2230 HTAB 8: PRINT "THE TRAPEZIODAL WALL AREA IS": PRINT : HTAB 10: PRINT "==> ";T;" SQ FEET":TA = T 2240 PRINT : PRINT "'RETURN' TO CONTINUE OR 'B' TO BACKUP"; 2250 GET A$: IF A$ = "B" THEN 1920 2260 IF A$ = CHR$(13) THEN 2280 2270 GOSUB 120: GOTO 2250 2280 REM 2290 TEXT : POKE 34,2: HOME :BI = 6: REM CEILING AREAS 2300 PRINT : HTAB 10: PRINT "COMPUTE CEILING AREA": PRINT 2310 HTAB 6: PRINT "PRESS RETURN TO CONTINUE OR": PRINT 2320 HTAB 10: PRINT "ENTER 'B' TO BACK UP": PRINT 2330 PRINT " ENTER '0' IF NO ENTRIES WILL BE MADE"; 2340 GET A$: IF A$ = "0" THEN 2650 2350 IF A$ = CHR$(13) THEN 2380 2360 IF A$ = "B" THEN 1910 2370 GOSUB 120: GOTO 2340 2380 HOME : HTAB 8: PRINT "RECTANGULAR CEILING AREA" 2390 PRINT " # LEN WIDTH # LEN WIDTH ": PRINT LINE$ 2400 FOR X = 1 TO 23 STEP 2: PRINT INT((X +1)/2);")";: HTAB 4: PRINT B$(BI,X);: HTAB 9: PRINT B$(BI,X +1): NEXT : VTAB 6: FOR X = 25 TO 47 STEP 2: HTAB 14: PRINT INT((X +1)/2);")";: HTAB 17: PRINT B$(BI,X);: HTAB 22: PRINT B$(BI,X +1): NEXT 2410 PRINT LINE$ 2420 PRINT " 'ESC' TO BACK UP THROUGH THE DATA": PRINT 2430 HTAB 9: PRINT "'RETURN' TO MOVE FORWARD ": PRINT 2440 PRINT " 'A' TO ACCEPT DATA 'B' TO BACK UP" 2450 FOR X = 1 TO 23 STEP 2:PX(X) = 4:PY(X) = 5 + INT((X +1)/2):PX(X +1) = 9:PY(X +1) = PY(X): NEXT : FOR X = 25 TO 47 STEP 2:PX(X) = 17:PY(X) = PY(X -24):PX(X +1) = 22:PY(X +1) = PY(X): NEXT 2460 I = 1 2470 HTAB PX(I): VTAB PY(I) 2480 GOSUB 4760: REM INPUT ROUTINE 2490 ON FLAG GOTO 2500,2580,2290,2540 2500 REM ESC 2510 IF C >0 THEN GOSUB 230 2520 IF I >1 THEN I = I -1: GOTO 2470 2530 I = 48: GOTO 2470 2540 REM CR 2550 IF C >0 THEN GOSUB 230 2560 IF I <48 THEN I = I +1: GOTO 2470 2570 I = 1: GOTO 2470 2580 TEXT : VTAB 19: HTAB 1: CALL -958 2590 T = 0: FOR X = 1 TO 47 STEP 2:T = T + VAL(B$(BI,X)) * VAL(B$(BI,X +1)): NEXT X 2600 HTAB 3: PRINT "THE RECTANGULAR CEILING AREA IS": PRINT : HTAB 10: PRINT "==> ";T;" SQ FEET":RA = T 2610 PRINT : PRINT " 'RETURN' TO CONTINUE OR 'B' TO BACK UP"; 2620 GET A$: IF A$ = "B" THEN 2290 2630 IF A$ = CHR$(13) THEN 2650 2640 GOSUB 120: GOTO 2620 2650 REM 2660 TEXT : POKE 34,2: HOME :BI = 7: REM DOOR AREAS 2670 PRINT : HTAB 12: PRINT "COMPUTE DOOR AREA": PRINT 2680 HTAB 6: PRINT "PRESS RETURN TO CONTINUE OR": PRINT 2690 HTAB 10: PRINT "ENTER 'B' TO BACK UP": PRINT 2700 PRINT " ENTER '0' IF NO ENTRIES WILL BE MADE"; 2710 GET A$: IF A$ = "0" THEN 3020 2720 IF A$ = CHR$(13) THEN 2750 2730 IF A$ = "B" THEN 2280 2740 GOSUB 120: GOTO 2710 2750 HOME : HTAB 14: PRINT "DOOR AREA" 2760 PRINT " # HT WIDTH": PRINT LINE$ 2770 FOR X = 1 TO 23 STEP 2: PRINT INT((X +1)/2);")";: HTAB 4: PRINT B$(BI,X);: HTAB 9: PRINT B$(BI,X +1): NEXT 2780 PRINT LINE$ 2790 PRINT " 'ESC' TO BACK UP THROUGH THE DATA": PRINT 2800 HTAB 9: PRINT "'RETURN' TO MOVE FORWARD ": PRINT 2810 PRINT " 'A' TO ACCEPT DATA 'B' TO BACK UP" 2820 FOR X = 1 TO 23 STEP 2:PX(X) = 4:PY(X) = 5 + INT((X +1)/2):PX(1 +X) = 9:PY(X +1) = PY(X): NEXT 2830 I = 1 2840 HTAB PX(I): VTAB PY(I) 2850 GOSUB 4760: REM INPUT ROUTINE 2860 ON FLAG GOTO 2870,2950,2660,2910 2870 REM ESC 2880 IF C >0 THEN GOSUB 230 2890 IF I >1 THEN I = I -1: GOTO 2840 2900 I = 24: GOTO 2840 2910 REM CR 2920 IF C >0 THEN GOSUB 230 2930 IF I <24 THEN I = I +1: GOTO 2840 2940 I = 1: GOTO 2840 2950 TEXT : VTAB 19: HTAB 1: CALL -958 2960 T = 0: FOR X = 1 TO 23 STEP 2:T = T + VAL(B$(BI,X)) * VAL(B$(BI,X +1)): NEXT X 2970 HTAB 10: PRINT "THE DOOR AREA IS": PRINT : HTAB 10: PRINT "==> ";T;" SQ FEET":DA = T 2980 PRINT : PRINT "'RETURN' TO CONTINUE OR 'B' TO BACK UP"; 2990 GET A$: IF A$ = "B" THEN 2660 3000 IF A$ = CHR$(13) THEN 3020 3010 GOSUB 120: GOTO 2990 3020 REM 3030 TEXT : POKE 34,2: HOME :T = 0: REM OTHER CEILING AREA 3040 PRINT : HTAB 12: PRINT "OTHER CEILING AREA": PRINT 3050 HTAB 7: PRINT "RETURN ALONE CONTINUES OR": PRINT 3060 HTAB 10: PRINT "ENTER 'B' TO BACK UP": PRINT 3070 VTAB 14 3080 HTAB 7: PRINT "OTHER CEILING AREA ==> "; 3090 GOSUB 4760: REM INPUT NUMBER 3100 ON FLAG GOTO 3110,3110,2650,3120 3110 PRINT CHR$(7);: FOR I = 1 TO C: CALL -1008: NEXT : FOR I = 1 TO C: PRINT " ";: NEXT : GOTO 3030 3120 UC = VAL(IN$) 3130 TEXT : POKE 34,2: HOME :T = 0: REM OTHER WALL AREAS 3140 PRINT : HTAB 12: PRINT "OTHER WALL AREA": PRINT 3150 HTAB 7: PRINT "RETURN ALONE CONTINUES OR": PRINT 3160 HTAB 10: PRINT "ENTER 'B' TO BACK UP": PRINT 3170 VTAB 14 3180 HTAB 7: PRINT "OTHER WALL AREA ==> "; 3190 GOSUB 4760: REM INPUT ROUTINE 3200 ON FLAG GOTO 3210,3210,3030,3220 3210 PRINT CHR$(7);: FOR I = 1 TO C: CALL -1008: NEXT : FOR I = 1 TO C: PRINT " ";: NEXT : GOTO 3130 3220 UW = VAL(IN$) 3230 HOME :C = 0:IN$ = "": REM WALL INSULATION 3240 PRINT : HTAB 10: PRINT "ENTER 'B' TO BACK UP" 3250 PRINT : HTAB 11: PRINT ">WALL< INSULATION": PRINT 3260 PRINT " ENTER R-VALUE OF INSULATION==>"; 3270 GET A$: IF C = >2 THEN IF A$ < > CHR$(13) THEN 3270 3280 IF A$ = CHR$(13) AND IN$ = "" THEN GOSUB 120: GOTO 3270 3290 IF A$ = "B" THEN 3130 3300 IF A$ = CHR$(13) THEN PRINT A$;:WR = VAL(IN$): GOTO 3330 3310 IF A$ <"0" OR A$ >"9" THEN GOSUB 120: GOTO 3270 3320 PRINT A$;:IN$ = IN$ +A$:C = C +1: GOTO 3270 3330 PRINT :C = 0:IN$ = "" 3340 HTAB 9: PRINT ">CEILING< INSULATION": PRINT 3350 PRINT " ENTER R-VALUE OF INSULATION==>"; 3360 GET A$: IF C = >2 THEN IF A$ < > CHR$(13) THEN 3360 3370 IF A$ = "B" THEN 3230 3380 IF A$ = CHR$(13) AND IN$ = "" THEN GOSUB 120: GOTO 3360 3390 IF A$ = CHR$(13) THEN PRINT A$;:RR = VAL(IN$): GOTO 3420 3400 IF A$ <"0" OR A$ >"9" THEN GOSUB 120: GOTO 3360 3410 PRINT A$;:IN$ = IN$ +A$:C = C +1: GOTO 3360 3420 PRINT :C = 0:IN$ = "" 3430 PRINT " ENTER ANNUAL HEATING COST=>$"; 3440 GET A$: IF C = >5 THEN IF A$ < > CHR$(13) THEN 3440 3450 IF A$ = "B" THEN 3230 3460 IF A$ = CHR$(13) AND IN$ = "" THEN GOSUB 120: GOTO 3440 3470 IF A$ = CHR$(13) THEN PRINT A$;:AC$ = IN$:IN$ = "": GOTO 3500 3480 IF A$ <"0" OR A$ >"9" THEN GOSUB 120: GOTO 3440 3490 PRINT A$;:IN$ = IN$ +A$:C = C +1: GOTO 3440 3500 PRINT : HTAB 5: PRINT "THE WORKSHEET IS NOW COMPLETE!": PRINT : HTAB 8: PRINT "PRESS RETURN TO CONTINUE"; 3510 GET A$: IF A$ = "B" THEN 3230 3520 IF A$ = CHR$(13) THEN 3540 3530 GOSUB 120: GOTO 3510 3540 POKE 34,0:WA = WA +TA +TP +UW:WA = WA -(DP +SP):RA = RA +UC 3550 IF WA <10 OR RA <10 THEN GOSUB 120: GOSUB 120: PRINT : PRINT : PRINT "THE DATA AS ENTERED IS QUESTIONABLE!!!!": PRINT : HTAB 7: PRINT "PRESS ANY KEY TO CONTINUE";: GET A$ 3560 HOME : REM STD ANALYSIS VALUES 3570 HTAB 3: PRINT "****INSULATION ENERGY ANALYSIS****": PRINT : PRINT " HEAT LOSS OF EXISTING STRUCTURE": PRINT LINE$ 3580 WL = INT((1/(WR +2)) *WA *M) 3590 RL = INT((1/(RR +3)) *RA *M) 3600 GL = INT((.45 *DP *M) +(1.1 *SP *M)) 3610 DL = INT(.54 *(.8 *(DP +SP) +DA) *M) 3620 GOSUB 180 3630 TL = INT(WL +RL +GL +DL) 3640 PRINT LINE$: HTAB 4: PRINT "TOTAL HEAT LOSS.......";TL;" BTU/HR" 3650 PRINT LINE$: HTAB 15: PRINT ">OPTIONS<": PRINT 3660 PRINT " 1) ADD MORE WALL INSULATION": PRINT " 2) ADD MORE CEILING INSULATION": PRINT " 3) ADD STORM WINDOWS": PRINT " 4) WEATHERSTRIP AND CAULK": PRINT " 5) PERFORM ALL IMPROVEMENTS": PRINT " 6) QUIT 3670 PRINT : HTAB 7: PRINT "*ENTER 'P' TO PRINT DATA*": PRINT 3680 HTAB 8: PRINT "ENTER CHOICE===>"; 3690 GET A$: IF A$ = "P" THEN LM = 11:R1 = WR:R2 = RR: GOTO 4630 3700 IF A$ = "3" THEN 3770 3710 IF A$ = "1" THEN 3870 3720 IF A$ = "2" THEN 4050 3730 IF A$ = "4" THEN 4530 3740 IF A$ = "5" THEN 4240 3750 IF A$ = "6" THEN PRINT : INPUT "ARE YOU SURE?";A$: IF A$ = "Y" THEN END 3760 GOSUB 120: GOTO 3560 3770 HOME :GL = (.35 *DP *M) +(.45 *SP *M): REM NEW STORM WINDOWS 3780 HTAB 3: PRINT "****INSULATION ENERGY ANALYSIS****": PRINT : PRINT " HEAT LOSS WITH NEW STORM WINDOWS": PRINT LINE$ 3790 GOSUB 180: GOSUB 250 3800 PRINT LINE$: PRINT " ADJUSTED HEAT LOSS..";TN;" BTU/HR": PRINT LINE$: PRINT 3810 IF TL >0 THEN SAV = 100 - INT((TN/TL) *100): GOTO 3830 3820 SAV = 0 3830 GOSUB 130 3840 GET A$: IF A$ = CHR$(13) THEN 3560 3850 IF A$ = "P" THEN LM = 15:R1 = WR:R2 = RR: GOTO 4630 3860 GOSUB 120: GOTO 3840 3870 HOME : REM NEW WALL INSULATION 3880 PRINT LINE$: HTAB 6: PRINT "ADD MORE >WALL< INSULATION": PRINT 3890 IN$ = "":C = 0: PRINT "ENTER THE NEW R-VALUE OF THE INSULATION": PRINT : HTAB 13: PRINT "==>"; 3900 IF A$ = CHR$(13) AND IN$ = "" THEN GOSUB 120: GOTO 3910 3910 GET A$: IF C = >2 THEN IF A$ < > CHR$(13) THEN 3910 3920 IF A$ = CHR$(13) THEN PRINT A$;: GOTO 3950 3930 IF A$ <"0" OR A$ >"9" THEN GOSUB 120: GOTO 3910 3940 PRINT A$;:IN$ = IN$ +A$:C = C +1: GOTO 3910 3950 R = VAL(IN$):WL = INT((1/(R +2)) *WA *M) 3960 HOME : HTAB 3: PRINT "****INSULATION ENERGY ANALYSIS****": PRINT : PRINT " HEAT LOSS WITH MORE WALL INSULATION": PRINT LINE$ 3970 GOSUB 180: GOSUB 250 3980 PRINT LINE$: PRINT " ADJUSTED HEAT LOSS..";TN;" BTU/HR": PRINT LINE$: PRINT 3990 IF TL >0 THEN SAV = 100 - INT((TN/TL) *100): GOTO 4010 4000 SAV = 0 4010 GOSUB 130 4020 GET A$: IF A$ = CHR$(13) THEN 3560 4030 IF A$ = "P" THEN LM = 15:R1 = R: GOSUB 4630: VTAB 18: HTAB 33 4040 GOSUB 120: GOTO 4020 4050 HOME : REM NEW CEILING INSULATION 4060 PRINT LINE$: HTAB 5: PRINT "ADD MORE >CEILING< INSULATION" 4070 IN$ = "":C = 0: PRINT LINE$: PRINT "ENTER THE NEW R-VALUE OF THE INSULATION": PRINT : HTAB 13: PRINT "==>"; 4080 GET A$: IF C = >2 THEN IF A$ < > CHR$(13) THEN 4080 4090 IF A$ = CHR$(13) AND IN$ = "" THEN GOSUB 120: GOTO 4080 4100 IF A$ = CHR$(13) THEN PRINT A$;: GOTO 4130 4110 IF A$ <"0" OR A$ >"9" THEN GOSUB 120: GOTO 4080 4120 PRINT A$;:IN$ = IN$ +A$:C = C +1: GOTO 4080 4130 R = VAL(IN$):RL = INT((1/(R +2)) *RA *M) 4140 HOME : HTAB 3: PRINT "****INSULATION ENERGY ANALYSIS****": PRINT : PRINT "HEAT LOSS WITH MORE CEILING INSULATION": PRINT LINE$ 4150 GOSUB 180: GOSUB 250 4160 TN = WL +RL +GL +DL 4170 PRINT LINE$: PRINT " ADJUSTED HEAT LOSS..";TN;" BTU/HR": PRINT LINE$ 4180 IF TL >0 THEN SAV = 100 - INT((TN/TL) *100): PRINT : GOTO 4200 4190 SAV = 0: PRINT 4200 GOSUB 130 4210 GET A$: IF A$ = CHR$(13) THEN 3560 4220 IF A$ = "P" THEN LM = 15:R2 = R: GOSUB 4630: VTAB 18: HTAB 33 4230 GOSUB 120: GOTO 4210 4240 HOME : HTAB 10: PRINT "COMBINED INPROVEMENTS": PRINT LINE$: REM COMBINED SOLUTION 4250 IN$ = "":C = 0: HTAB 6: PRINT "ADD MORE >WALL< INSULATION": PRINT 4260 PRINT "ENTER THE NEW R-VALUE OF THE INSULATION": PRINT : HTAB 13: PRINT "==>"; 4270 GET A$: IF C = >2 THEN IF A$ < > CHR$(13) THEN 4270 4280 IF A$ = CHR$(13) AND IN$ = "" THEN GOSUB 120: GOTO 4270 4290 IF A$ = CHR$(13) THEN PRINT A$;: GOTO 4320 4300 IF A$ <"0" OR A$ >"9" THEN GOSUB 120: GOTO 4270 4310 PRINT A$;:IN$ = IN$ +A$:C = C +1: GOTO 4270 4320 IF IN$ >"44" THEN GOSUB 120:IN$ = "": GOTO 4270 4330 R3 = VAL(IN$):WL = INT((1/(R3 +2)) *WA *M) 4340 IN$ = "":C = 0: PRINT LINE$: PRINT "ADD MORE > CEILING < INSULATION ": PRINT 4350 PRINT "ENTER THE NEW R-VALUE OF THE INSULATION": PRINT : HTAB 13: PRINT "==>"; 4360 GET A$: IF C = >2 THEN IF A$ < > CHR$(13) THEN 4360 4370 IF A$ = CHR$(13) AND IN$ = "" THEN GOSUB 120: GOTO 4360 4380 IF A$ = CHR$(13) THEN PRINT A$;: GOTO 4420 4390 IF A$ <"0" OR A$ >"9" THEN GOSUB 120: GOTO 4360 4400 PRINT A$;:IN$ = IN$ +A$:C = C +1: GOTO 4360 4410 IF IN$ >"44" THEN GOSUB 120:IN$ = "": GOTO 4360 4420 R4 = VAL(IN$):RL = INT((1/(R4 +3)) *RA *M) 4430 GL = (.45 *(DP +SP) *M):DL = .18 *(.8 *(DP +SP) +DA) *M 4440 HOME : HTAB 3: PRINT "****INSULATION ENERGY ANALYSIS****": PRINT : PRINT " HEAT LOSS WITH COMBINED IMPROVEMENTS": PRINT LINE$ 4450 GOSUB 180: GOSUB 250 4460 PRINT LINE$: PRINT " ADJUSTED HEAT LOSS..";TN;" BTU/HR": PRINT LINE$ 4470 IF TL >0 THEN SAV = 100 - INT((TN/TL) *100): PRINT : GOTO 4490 4480 SAV = 0: PRINT 4490 GOSUB 130 4500 GET A$: IF A$ = CHR$(13) THEN 3560 4510 IF A$ = "P" THEN LM = 15:R1 = R3:R2 = R4: GOSUB 4630: VTAB 18: HTAB 33 4520 GOSUB 120: GOTO 4500 4530 HOME :DL = .30 *(.8 *(DP +SP) +DA) *M: REM CAULK AND WEATHERSTRIP 4540 HTAB 3: PRINT "****INSULATION ENERGY ANALYSIS****": PRINT : PRINT " HEAT LOSS WITH NEW WEATHERSTRIP": PRINT LINE$ 4550 GOSUB 180: GOSUB 250 4560 PRINT LINE$: PRINT " ADJUSTED HEAT LOSS..";TN;" BTU/HR": PRINT LINE$: PRINT 4570 IF TL >0 THEN SAV = 100 - INT((TN/TL) *100): GOTO 4590 4580 SAV = 0 4590 GOSUB 130 4600 GET A$: IF A$ = CHR$(13) THEN 3560 4610 IF A$ = "P" THEN LM = 15:R1 = WR:R2 = RR: GOSUB 4630: VTAB 18: HTAB 33 4620 GOSUB 120: GOTO 4600 4630 PRINT : PRINT CHR$(4)"PR#1" 4640 FOR V = 1 TO LM: VTAB V:P = PEEK(40) + PEEK(41) *256 4650 FOR H = 0 TO 39: PRINT CHR$( PEEK(P +H)); 4660 NEXT H: PRINT : NEXT V 4670 PRINT "TOTAL WINDOW AREA IS ";DP +SP;" SQUARE FEET" 4680 PRINT "TOTAL WALL AREA IS ";WA;" SQUARE FEET" 4690 PRINT "TOTAL CEILING AREA IS ";RA;" SQUARE FEET" 4700 PRINT "TOTAL DOOR AREA IS ";DA;" SQUARE FEET" 4710 PRINT "R VALUE OF WALL INSULATION IS ";R1 4720 PRINT "R VALUE OF CEILING INSULATION IS ";R2 4730 PRINT "ANNUAL HEATING COST IS $";AC$ 4740 PRINT LINE$: PRINT : PRINT 4750 PRINT CHR$(4)"PR#0":A$ = "": GOTO 3560 4760 REM INPUT NUMBER ROUTINE; THIS 4770 REM IS A LOOP THAT IS EXITED BY 4780 REM HITTING CR, ESC, A, OR B 4790 C = 0:IN$ = "":DOTTED = 0:PP = 0 4800 GET A$ 4810 FLAG = 1 *(A$ = ESC$) +2 *(A$ = "A") +3 *(A$ = "B") +4 *(A$ = RET$): IF (FLAG AND (C >0)) THEN B$(BI,I) = IN$ 4820 IF FLAG THEN RETURN 4830 IF A$ < > CHR$(8) THEN 4900 4840 IF C < = 0 THEN 4940 4850 CALL -1008: PRINT " ";: CALL -1008:C = C -1 4860 IF C >0 THEN IN$ = LEFT$(IN$,C) 4870 IF C = 0 THEN IN$ = "" 4880 IF C = PP -1 THEN DOTTED = 0 4890 GOTO 4800 4900 IF C > = 4 THEN 4940 4910 IF A$ > = "0" AND A$ < = "9" THEN IN$ = IN$ +A$:C = C +1: PRINT A$;: GOTO 4800 4920 IF DOTTED THEN GOTO 4940 4930 IF A$ = DOT$ THEN DOTTED = 1:IN$ = IN$ +DOT$: PRINT DOT$;:C = C +1:PP = C: GOTO 4800 4940 PRINT CHR$(7);: GOTO 4800