180 DEF FN Y(Y) = (150 -A2) *((HI -Y)/(HI -LO)) +A2: REM SCALE VALUE FOR PLOT VALUE
190 DEF FN X(A) = 7 *A +B: REM X COORD FOR PLOT
200 DEF FN W(W) = B +1 +W *((D -B)/(X -(X >1))): REM HORIZONTAL POINT FOR MONTH PLOTS
210 REM
220 REM HEADINGS,MENUS,ETC
230 REM
240 FOR I = 1 TO 13: READ M$(I),D$(I): NEXT : REM MONTHS AND DAYS
250 FOR I = 1 TO 9: READ RP$(I): NEXT : REM PLOT PARAMETER OPTIONS
260 FOR I = 1 TO 9: READ TIC%(I): NEXT : REM # OF SCALE DIVISIONS
270 REM READ IN BINARY FILES
280 POKE 960,1: ONERR GOTO 3960
290 PRINT D$BL$"CURSOR.BAR.III": REM A$0300
300 PRINT D$BL$"WEATHER.SHAPES": REM A$0800
310 POKE 232,3: POKE 233,8: REM SHAPES ADDRESS ($0803)
320 REM
330 REM ** CONFIGURE **
340 REM
350 F$ = "WS.CONFIG"
360 POKE 960,2: ONERR GOTO 4180
370 PRINT D$U$F$DV$
380 PRINT D$OP$F$
390 PRINT D$RD$F$
400 INPUT PT: INPUT GP: INPUT GP$: INPUT CL
410 PRINT D$CL$
420 POKE 216,0: POKE 960,0
430 GOTO 1130: REM MAIN MENU
440 REM
450 REM SUBROUTINES
460 REM
470 VTAB 21: PRINT L$;: VTAB 22: HTAB 1: INVERSE : PRINT "<-";: NORMAL : PRINT " ";: INVERSE : PRINT "->";: NORMAL : PRINT " TO SELECT ...<";: INVERSE : PRINT "RETURN";: NORMAL : PRINT "> TO EXECUTE": PRINT " UP OR DOWN ARROW KEYS MAY BE USED"
3910 DATA JAN,31,FEB,29,MAR,31,APR,30,MAY,31,JUN,30,JUL,31,AUG,31,SEP,30,OCT,31,NOV,30,DEC,31,QUIT,0: REM M$(),D$()
3920 DATA " HIGH TEMP."," LOW TEMP.","HI PRESSURE","LO PRESSURE"," % CLOUDY ","RAIN (IN.)","SNOW (IN.)","WIND SPEED"," QUIT"
3930 DATA 17,17,16,16,12,28,34,12,12
3940 REM ONERR ROUTINES
3950 REM
3960 IF PEEK(222) = 6 THEN TEXT : HOME : VTAB 10: PRINT "BINARY FILE NOT FOUND ON DISK...": PRINT : PRINT TAB( 10)"CANNOT CONTINUE": POKE 216,0: END : REM NO CURSOR OR SHAPE TABLE FILE
3970 REM
3980 REM ERROR HANDLING
3990 REM
4000 GOSUB 880: REM CLEAR ONERR
4010 IF ER = 6 THEN X$ = "NO DATA IN FILE " + LEFT$(F$,3) +"." + STR$(Y%):Y$ = "CREATE DATA IN 'WEATHER STATION' PROGRAM":F$ = "": GOTO 4060
4020 IF ER = 4 THEN X$ = "DISK WRITE PROTECTED":Y$ = "REMOVE WRITE-PROTECT TAB": GOTO 4060
4030 IF ER = 8 THEN X$ = "DISK I/O PROBLEM":Y$ = "CHECK DRIVE DOOR OR DISK POSITION":F$ = "": GOTO 4060
4040 IF ER = 9 THEN X$ = "THIS DISK IS FULL":Y$ = "INSERT OTHER DISK OR CHANGE DRIVES": GOTO 4060