Module CheckIt { Locale 1033 'change decimal point char to dot. Form 80,50 ' set console to 80 characters by 50 lines \\ Function heading() get a positive double as degrees and return the compass index (1 for North) Function heading(d) { d1=d div 11.25 if d1 mod 3= 1 then d+=5.62 :d1=d div 11.25 =d1 mod 32 +1 } Dim wind$(1 to 32) wind$(1)="North", "North by east", "North-northeast", "Northeast by north", "Northeast" wind$(6)="Northeast by east", "East-northeast", "East by north", "East", "East by south", "East-southeast" wind$(12)="Southeast by east", "Southeast", "Southeast by south", "South-southeast", "South by east", "South" wind$(18)="South by west", "South-southwest", "Southwest by south", "Southwest", "Southwest by west", "West-southwest" wind$(24)="West by south", "West", "West by north", "West-northwest", "Northwest by west", "Northwest", "Northwest by north" wind$(31)="North-northwest", "North by west" oldvalue=-2 newvalue=2 Print " angle | box | compass point" Print "-------+-----+---------------------" For i=0 to 360 step 0.005 newvalue=heading(i) if (newvalue mod 3) =2 then i+=5.62: newvalue=heading(i) if oldvalue<>newvalue then Print format$("{0:2:-6}°| {1::-2} | {2}",i, newvalue, wind$(newvalue)) : oldvalue=newvalue : refresh Next i } CheckIt