home *** CD-ROM | disk | FTP | other *** search
- 10 '*******************************************************************
- 20 '* RATE CHART BUILD PROGRAM *
- 30 '* RATE.BAS 8/24/82 *
- 40 '*******************************************************************
- 50 'RUN COMPILED
- 70 PRINT CHR$(7)
- 80 DIM NA$(15),KWR(15,18),RPK(15,18),FS(15,18)
- 90 ESC$=CHR$(27):HALF$=ESC$+CHR$(41):FULL$=ESC$+CHR$(40)
- 91 BLINK$=ESC$+CHR$(71)+CHR$(50):REVERSE$=ESC$+CHR$(71)+CHR$(52)
- 100 PRINT CHR$(26)
- 110 PRINT REVERSE$;TAB(30);"RATE SCHEDULES"
- 130 PRINT:PRINT TAB(20)"<L>";HALF$"IST SCHEDULES ON FILE";FULL$
- 140 PRINT:PRINT TAB(20)"<R>";HALF$;"EVIEW SCHEDULE";FULL$
- 150 PRINT:PRINT TAB(20)"<U>";HALF$;"PDATE SCHEDULE";FULL$
- 155 PRINT:PRINT TAB(20)"<A>";HALF$;"DD SCHEDULE";FULL$
- 160 PRINT:PRINT TAB(20)"<E>";HALF$;"XIT TO MENU";FULL$
- 170 PRINT:PRINT BLINK$;TAB(20)"ENTER YOUR SELECTION ";:AN$=INPUT$(1)
- 180 IF LEFT$(AN$,1)="L" THEN GOTO 240
- 190 IF LEFT$(AN$,1)="R" THEN GOTO 340
- 200 IF LEFT$(AN$,1)="E" THEN RESET:RUN"MENU
- 210 IF LEFT$(AN$,1)="U" THEN GOTO 666
- 211 IF LEFT$(AN$,1)="A" THEN GOTO 2100
- 220 GOTO 100
- 230 '************** START OF LIST *****************************
- 240 GOSUB 1200 'OPEN AND READ RATE.DAT FILE
- 250 PRINT CHR$(26)
- 260 PRINT REVERSE$;TAB(30)"ACTIVE SCHEDULES"
- 270 FOR X=1 TO 6
- 280 IF LEN (NA$(X))=0 GOTO 300
- 290 PRINT TAB(25);"Schedule ";NA$(X)
- 300 NEXT X
- 310 PRINT BLINK$;:INPUT"PRESS ENTER FOR MENU ";AN$
- 320 GOTO 100
- 330 '************************ START OF REVIEW *********************
- 340 PRINT CHR$(26)
- 341 PRINT REVERSE$;TAB(32)"SCHEDULE REVIEW"
- 345 GOSUB 1200
- 350 INPUT"ENTER SCHEDULE NUMBER YOU WISH TO REVIEW ";SCHEDULE$
- 360 PRINT CHR$(26)
- 370 PRINT REVERSE$; TAB(25)"REVIEWING SCHEDULE ";SCHEDULE$
- 380 PRINT STRING$(79,"-")
- 410 FOR X=1 TO 6
- 460 IF NA$(X)=SCHEDULE$ THEN CLOSE:GOTO 500
- 470 NEXT X
- 480 CLOSE
- 490 PRINT BLINK$;"SCHEDULE NOT ON FILE ";:INPUT"PRESS ENTER TO CONTINUE ";AN$:GOTO 100
- 500 XX%=1
- 510 IF NA$(X)="G" THEN GOTO 530
- 520 PRINT"KWH RANGE RATE/KWH FLAT SUM":GOTO 540
- 530 PRINT"THERM RANGE RATE/THERM FLAT SUM"
- 540 PRINT STRING$(50,"-")
- 550 PRINT " 0-"
- 560 C=7:R=6:GOSUB 660:PRINT AT$;KWR(X,XX%):C=12:GOSUB 660:PRINT AT$;"X"
- 570 C=14:GOSUB 660:PRINT AT$;RPK(X,XX%):C=28:GOSUB 660:PRINT AT$;"0":XX%=XX%+1
- 580 R=7:C=1:GOSUB 660:PRINT AT$ ;KWR(X,XX%-1)+1;"-":C=7:GOSUB 660:PRINT AT$;KWR(X,XX%):C=12:GOSUB 660:PRINT AT$;"X"
- 590 C=14:GOSUB 660:PRINT AT$;RPK(X,XX%):C=28:GOSUB 660:PRINT AT$;FS(X,XX%)
- 600 R=8:C=1:GOSUB 660:XX%=XX%+1
- 610 PRINT AT$;KWR(X,XX%);"-":C=7:GOSUB 660:PRINT AT$;"OVER":C=12:GOSUB 660
- 620 PRINT AT$;"X":C=14:GOSUB 660
- 630 PRINT AT$;RPK(X,XX%):C=28:GOSUB 660:PRINT AT$;FS(X,XX%)
- 640 PRINT:PRINT:INPUT"PRESS ENTER TO CONTINUE ";AN$:GOTO 100
- 650 STOP
- 660 RR=R+31:CC=31+C:AT$=CHR$(27)+"="+CHR$(RR)+CHR$(CC):RETURN
- 665 '************* UPDATE *****************************************
- 666 GOSUB 1200
- 670 PRINT CHR$(26)
- 680 INPUT"ENTER SCHEDULE NUMBER YOU WISH TO UPDATE ";SCHEDULE$:PRINT CHR$(26)
- 690 PRINT REVERSE$;TAB(25)"UPDATING SCHEDULE ";SCHEDULE$
- 700 PRINT STRING$(79,"-")
- 710 OPEN"O",2,"TEMP.DAT"
- 730 XX%=1
- 740 FOR X=1 TO 6
- 790 IF NA$(X)=SCHEDULE$ THEN MARKER%=X:GOTO 840
- 795 NEXT X
- 830 PRINT BLINK$;"SCHEDULE NOT ON FILE ";:INPUT"PRESS ENTER TO CONTINUE ";AN$:GOTO 100
- 840 XX%=1
- 850 IF LEFT$(NA$(X),1)="G" THEN GOTO 870
- 860 PRINT"KWH RANGE RATE/KWH FLAT SUM":GOTO 880
- 870 PRINT"THERM RANGE RATE/THERM FLAT SUM"
- 880 R=31:C=31
- 890 PRINT STRING$(50,"-")
- 900 PRINT " 0-"
- 910 C=7:R=6:GOSUB 660:PRINT AT$;KWR(X,XX%):C=12:GOSUB 660:PRINT AT$;"X"
- 920 C=14:GOSUB 660:PRINT AT$;RPK(X,XX%):C=28:GOSUB 660:PRINT AT$;"0":XX%=XX%+1
- 930 R=7:C=1:GOSUB 660:PRINT AT$ ;KWR(X,XX%-1)+1;"-":C=7:GOSUB 660:PRINT AT$;KWR(X,XX%):C=12:GOSUB 660:PRINT AT$;"X"
- 940 C=14:GOSUB 660:PRINT AT$;RPK(X,XX%):C=28:GOSUB 660:PRINT AT$;FS(X,XX%)
- 950 R=8:C=1:GOSUB 660:XX%=XX%+1
- 960 PRINT AT$;KWR(X,XX%-1)+1;"-":C=7:GOSUB 660:PRINT AT$;"OVER":C=12:GOSUB 660
- 970 PRINT AT$;"X":C=14:GOSUB 660
- 980 PRINT AT$;RPK(X,XX%):C=28:GOSUB 660:PRINT AT$;FS(X,XX%)
- 990 PRINT STRING$(40,"="):XX%=1
- 1000 PRINT " 0-"
- 1010 C=7:R=10:GOSUB 1190:PRINT AT$;:LINE INPUT AA$:KWR(X,XX%)=VAL(AA$):C=12:GOSUB 1190:PRINT AT$;"X"
- 1020 C=14:GOSUB 1190:PRINT AT$;:LINE INPUT A$:RPK(X,XX%)=VAL(A$)::C=28:GOSUB 1190:PRINT AT$;"0":XX%=XX%+1
- 1030 R=11:C=1:GOSUB 1190:PRINT AT$ ;KWR(X,XX%-1)+1;"-":C=7:GOSUB 1190:PRINT AT$;:LINE INPUT BB$:KWR(X,XX%)=VAL(BB$):C=12:GOSUB 1190:PRINT AT$;"X"
- 1040 C=14:GOSUB 1190:PRINT AT$;:LINE INPUT BB$:RPK(X,XX%)=VAL(BB$):C=28:GOSUB 1190:PRINT AT$;:LINE INPUT CC$:FS(X,XX%)=VAL(CC$)
- 1050 R=12:C=1:GOSUB 1190:XX%=XX%+1
- 1060 PRINT AT$;KWR(X,XX%-1)+1;"-":C=7:GOSUB 1190:PRINT AT$;"OVER":C=12:GOSUB 1190
- 1070 PRINT AT$;"X":C=14:GOSUB 1190:KWR(X,XX%)=KWR(X,XX%-1)+1
- 1080 PRINT AT$;:LINE INPUT C$:RPK(X,XX%)=VAL(C$):C=28:GOSUB 1190:PRINT AT$;:LINE INPUT Q$:FS(X,XX%)=VAL(Q$)
- 1081 FOR X=1 TO 6
- 1090 PRINT#2,NA$(X);",";
- 1100 XX%=1:FOR XY=1 TO 3:PRINT#2,KWR(X,XX%);",";RPK(X,XX%);",";FS(X,XX%):XX%=XX%+1:NEXT XY
- 1160 NEXT X
- 1170 CLOSE 2
- 1180 KILL"RATE.DAT":NAME "TEMP.DAT" AS "RATE.DAT":GOTO 90
- 1190 RR=R+31:CC=31+C:AT$=CHR$(27)+"="+CHR$(RR)+CHR$(CC):RETURN
- 1200 ' OPEN FILE FOR READ
- 1205 CLOSE
- 1210 OPEN"I",1,"RATE.DAT"
- 1211 FOR Z=1 TO 6
- 1230 INPUT#1,NA$(Z)
- 1240 XX=1:FOR Y=1 TO 3:INPUT#1,KWR(Z,XX),RPK(Z,XX),FS(Z,XX):XX=XX+1:NEXT Y
- 1250 NEXT Z
- 1255 CLOSE
- 1260 RETURN
- 1270 STOP
- 2000 IF ERR=62 GOTO 1170
- 2100 '**************** START OF ADD ROUTINE ***************************
- 2110 PRINT CHR$(26)
- 2120 INPUT"ENTER SCHEDULE NUMBER YOU WISH TO ADD ";SCHEDULE$:PRINT CHR$(26)
- 2130 PRINT REVERSE$;TAB(25)"ADDING SCHEDULE ";SCHEDULE$
- 2140 PRINT STRING$(79,"-")
- 2150 OPEN"O",2,"TEMP.DAT"
- 2160 GOSUB 1200
- 2180 FOR X=1 TO 6
- 2230 IF LEN(NA$(X))=0 THEN MARKER%=X:GOTO 2280
- 2240 NEXT X
- 2270 PRINT BLINK$;REVERSE$;"FILE IS NOW FULL";:INPUT"PRESS ENTER TO CONTINUE ";AN$:GOTO 100
- 2280 XX%=1:NA$(X)=SCHEDULE$
- 2290 IF LEFT$(NA$(X),1)="G" THEN GOTO 2310
- 2300 PRINT"KWH RANGE RATE/KWH FLAT SUM":GOTO 2320
- 2310 PRINT"THERM RANGE RATE/THERM FLAT SUM"
- 2320 R=31:C=31
- 2330 PRINT STRING$(50,"-")
- 2340 PRINT " 0-"
- 2350 C=7:R=6:GOSUB 660:PRINT AT$;KWR(X,XX%):C=12:GOSUB 660:PRINT AT$;"X"
- 2360 C=14:GOSUB 660:PRINT AT$;RPK(X,XX%):C=28:GOSUB 660:PRINT AT$;"0":XX%=XX%+1
- 2370 R=7:C=1:GOSUB 660:PRINT AT$ ;KWR(X,XX%-1)+1;"-":C=7:GOSUB 660:PRINT AT$;KWR(X,XX%):C=12:GOSUB 660:PRINT AT$;"X"
- 2380 C=14:GOSUB 660:PRINT AT$;RPK(X,XX%):C=28:GOSUB 660:PRINT AT$;FS(X,XX%)
- 2390 R=8:C=1:GOSUB 660:XX%=XX%+1
- 2400 PRINT AT$;KWR(X,XX%-1)+1;"-":C=7:GOSUB 660:PRINT AT$;"OVER":C=12:GOSUB 660
- 2410 PRINT AT$;"X":C=14:GOSUB 660
- 2420 PRINT AT$;RPK(X,XX%):C=28:GOSUB 660:PRINT AT$;FS(X,XX%)
- 2430 PRINT STRING$(40,"="):XX%=1
- 2440 PRINT " 0-"
- 2450 C=7:R=10:GOSUB 2640:PRINT AT$;:LINE INPUT AA$:KWR(X,XX%)=VAL(AA$):C=12:GOSUB 2640:PRINT AT$;"X"
- 2460 C=14:GOSUB 2640:PRINT AT$;:LINE INPUT A$:RPK(X,XX%)=VAL(A$)::C=28:GOSUB 2640:PRINT AT$;"0":FS(X,XX%)=0:XX%=XX%+1
- 2470 R=11:C=1:GOSUB 2640:PRINT AT$ ;KWR(X,XX%-1)+1;"-":C=7:GOSUB 2640:PRINT AT$;:LINE INPUT BB$:KWR(X,XX%)=VAL(BB$):C=12:GOSUB 2640:PRINT AT$;"X"
- 2480 C=14:GOSUB 2640:PRINT AT$;:LINE INPUT BB$:RPK(X,XX%)=VAL(BB$):C=28:GOSUB 2640:PRINT AT$;:LINE INPUT CC$:FS(X,XX%)=VAL(CC$)
- 2490 R=12:C=1:GOSUB 2640:XX%=XX%+1
- 2500 PRINT AT$;KWR(X,XX%-1)+1;"-":C=7:GOSUB 2640:PRINT AT$;"OVER":C=12:GOSUB 2640
- 2510 PRINT AT$;"X":C=14:GOSUB 2640
- 2515 KWR(X,XX%)=KWR(X,XX%-1)+1
- 2520 PRINT AT$;:LINE INPUT C$:RPK(X,XX%)=VAL(C$):C=28:GOSUB 2640:PRINT AT$;:LINE INPUT Q$:FS(X,XX%)=VAL(Q$)
- 2525 OPEN"O",2,"TEMP.DAT"
- 2526 FOR X=1 TO 6
- 2530 PRINT#2,NA$(X);",";
- 2540 XX%=1:FOR XY=1 TO 3:PRINT#2,KWR(X,XX%);",";RPK(X,XX%);",";FS(X,XX%):XX%=XX%+1:NEXT XY
- 2610 NEXT X
- 2620 CLOSE
- 2630 KILL"RATE.DAT":NAME "TEMP.DAT" AS "RATE.DAT":GOTO 90
- 2640 RR=R+31:CC=31+C:AT$=CHR$(27)+"="+CHR$(RR)+CHR$(CC):RETURN
- 2650 STOP
- 2660 IF ERR=62 GOTO 2620
- T" AS "RATE.DAT":GOTO 90
- 2640 RR=R+31:CC=31+C:AT$=CHR$(27)+"="+CHR$(RR)+CHR$(CC):RETURN
- 2650 STOP
- 2660 IF ERR=62 GOTO