See all articles from Time Designs Magazine v3 n3
The following QL program was inspired by an article written by Tom Beatty in the February issue of Computer Shopper. Only the original program’s table format and wind chill factor equations are the same, the rest is a complete re-write in QL SuperBASIC. I think the function I used to format the right-justified columns should be of general interest to readers. The procedure “TABLE” outputs the chart to the screen (80 col. monitor) and “CHART” outputs to an Epson compatible, 80 col. printer.
WIND CHILL CHART
DIRECTIONS: (1) FIND TEMPERATURE ACROSS TOP ROW (°F)
(2) FIND WIND VELOCITY (MPH) DOWN LEFT COLUMN
(3) INTERSECT ROW AND COL FOR WIND CHILL (°F)
40 35 30 25 20 15 10 5 0 -5 -10 -15 -20 -25
4 40 35 30 25 20 15 10 5 0 -5 -10 -15 -20 -25
6 35 30 24 19 13 8 2 -3 -9 -14 -20 -25 -31 -36
8 31 25 20 14 8 2 -4 -10 -16 -21 -27 -33 -39 -45
10 28 22 16 10 4 -3 -9 -15 -21 -27 -33 -40 -46 -52
12 26 19 13 6 0 -7 -13 -19 -26 -32 -39 -45 -51 -58
14 23 17 10 3 -3 -10 -17 -23 -30 -36 -43 -50 -56 -63
16 21 15 8 1 -6 -13 -20 -26 -33 -40 -47 -54 -60 -67
18 20 13 6 0 -8 -15 -22 -29 -36 -43 -50 -57 -64 -71
20 18 11 4 -3 -10 -18 -25 -32 -39 -46 -53 -60 -67 -75
22 17 10 2 -5 -12 -19 -27 -34 -41 -48 -56 -63 -70 -78
24 16 8 1 -6 -14 -21 -29 -36 -43 -51 -58 -65 -73 -80
26 15 7 0 -8 -15 -23 -30 -38 -45 -53 -60 -68 -75 -83
28 14 6 0 -9 -17 -24 -32 -39 -47 -54 -62 -69 -77 -85
30 13 5 -2 -10 -18 -25 -33 -41 -48 -56 -64 -71 -79 -86
32 12 4 -3 -11 -19 -26 -34 -42 -49 -57 -65 -73 -80 -88
34 12 4 -4 -12 -20 -27 -35 -43 -51 -58 -66 -74 -82 -89
100 REMark *********************************************************
110 REMark ***** WIND CHILL CHART *****
120 REMark ***** T. BEATTY *****
130 REMark ***** *****
140 REMark *********************************************************
150 REMark ***** ADAPTED FOR SINCLAIR QL *****
160 REMark ***** BY GALE HENSLEE *****
170 REMark ***** AMARILLO, TX *****
180 REMark ***** JANUARY, 1987 *****
190 REMark *********************************************************
200 REMark MAIN PROGRAM
210 SETUP
220 TABLE
230 CHART
240 STOP
250 DEFine PROCedure SETUP
260 WINDOW #1,512,256,0,0:PAPER #1,0:INK #1,4:CLS #1
270 PRINT #1,"LOADING ARRAY - - - ":PRINT #1
280 DIM A(16,14):H1$="#####"
290 PRINT #1,"CALCULATING ROW: ";
300 FOR R=1 TO 16
310 PRINT #1,R;" ";
320 V=2*R+2
330 FOR C=0 TO 13
340 T=-5*C+40
350 A(R,C+1)=((10.45+(6.686112*SQRT(V))-(.447041*V))/22.034*(T-91.4))+91.4
360 NEXT C
370 NEXT R
380 PRINT #1," DONE."
390 PRINT #1:PRINT #1,"NOW PRINTING CHART - - -":CLS #1
400 END DEFine SETUP
410 DEFine PROCedure TABLE
420 F=1
430 AT 0,32:PRINT #F,"WIND CHILL CHART"
440 AT 3,9:PRINT #F,"DIRECTIONS: (1) FIND TEMPERATURE ACROSS TOP ROW (|F)"
450 AT 4,9:PRINT #F," (2) FIND WIND VELOCITY (MPH) DOWN LEFT COLUMN"
460 AT 5,9:PRINT #F," (3) INTERSECT ROW AND COL FOR WIND CHILL (|F)"
470 AT 7,0:PRINT #F," ";
480 OLD = 0
490 OLD1 = 5
500 TEMP1% = 10
510 FOR K=0 TO 13
520 TEMP%= -5*K+40
530 AT 7,TAB(TEMP%):PRINT #F,TEMP%;
540 NEXT K
550 OLD1 = 5
560 TEMP1% = 10
570 FOR R=1 TO 16
580 WIND% = 2*R+2
590 AT 7+R,3+(WIND% <10):PRINT #F,WIND%;
600 FOR C=1 TO 14
610 IF A(R,C)< 0 AND A(R,C) > -1.5 THEN GO TO 630
620 TEMP% = INT(A(R,C)+.5):GO TO 640
630 TEMP% = 0
640 AT 7+R,TAB(TEMP%):PRINT #F,TEMP%;
650 NEXT C
660 OLD1 = 5
670 TEMP1% = 10
680 NEXT R
690 END DEFine TABLE
700 DEFine FuNction TAB(TEMP)
710 OLD = OLD1 + 3 * (TEMP% >= 10) + 4 * ((TEMP% >=0) AND (TEMP% < 10)) + 3 * ((TEMP% > -10) AND (TEMP% < 0)) + 2 * (TEMP% <= -10)
720 OLD1 = OLD + 2 - ((TEMP% < 10) AND (TEMP% >= 0)) + (TEMP% <= -10)
730 TEMP1% = TEMP%
740 RETurn OLD
750 END DEFine
760 DEFine PROCedure L
770 WINDOW #1,512,208,0,0:CLS #1:CLS #0
780 LIST #1
790 END DEFine L
800 DEFine PROCedure CHART
810 F=5
820 OPEN #5,SER1
830 PRINT #F,TO 32;"WIND CHILL CHART";CHR$(10)
840 PRINT #F,TO 9;"DIRECTIONS: (1) FIND TEMPERATURE ACROSS TOP ROW (";CHR$(248);"F)"
850 PRINT #F,TO 9;" (2) FIND WIND VELOCITY (MPH) DOWN LEFT COLUMN"
860 PRINT #F,TO 9;" (3) INTERSECT ROW AND COL FOR WIND CHILL (";CHR$(248);"F)";CHR$(10)
870 PRINT #F," ";
880 OLD = 0
890 OLD1 = 5
900 TEMP1% = 10
910 FOR K=0 TO 13
920 TEMP%= -5*K+40
930 PRINT #F,TO TAB(TEMP%);TEMP%;
940 NEXT K
950 PRINT #F,CHR$(10)
960 OLD1 = 5
970 TEMP1% = 10
980 FOR R=1 TO 16
990 WIND% = 2*R+2
1000 PRINT #F,TO 3+(WIND% <10);WIND%;
1010 FOR C=1 TO 14
1020 IF A(R,C)< 0 AND A(R,C) > -1.5 THEN GO TO 1040
1030 TEMP% = INT(A(R,C)+.5):GO TO 1050
1040 TEMP% = 0
1050 PRINT #F,TO TAB(TEMP%);TEMP%;
1060 NEXT C
1070 OLD1 = 5
1080 TEMP1% = 10
1090 PRINT #F,CHR$(13)
1100 NEXT R
1110 FOR PLINE = 1 TO 8
1120 PRINT #F,CHR$(13)
1130 NEXT PLINE
1140 CLOSE #5
1150 END DEFine CHART
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.