See also TYPE - to see the contents of a file.
=== 0^SHOW/MUF <prefix> [<hours>]^Show the likely propagation to a prefix
-This command allow you to estimate the likelyhood of you contacting
+This command allow you to estimate the likelihood of you contacting
a station with the prefix you have specified. The output assumes a modest
power of 20dBW and receiver sensitivity of -123dBm (about 0.15muV/10dB SINAD)
+The result predicts the most likely operating frequencies and signal
+levels for high frequency (shortwave) radio propagation paths on
+specified days of the year and hours of the day. It is most useful for
+paths between 250 km and 6000 km, but can be used with reduced accuracy
+for paths shorter or longer than this.
+
+The command uses a routine MINIMUF 3.5 developed by the U.S. Navy and
+used to predict the MUF given the predicted flux, day of the year,
+hour of the day and geographic coordinates of the transmitter and
+receiver. This routine is reasonably accurate for the purposes here,
+with a claimed RMS error of 3.8 MHz, but much smaller and less complex
+than the programs used by major shortwave broadcasting organizations,
+such as the Voice of America.
+
The command will display some header information detailing its
assumptions, together with the locations, latitude and longitudes and
bearings. It will then show UTC (UT), local time at the other end
}
$lat2 = $a->{lat};
$lon2 = $a->{long};
-($b2, $d) = DXBearing::bdist($lat1, $lon1, $lat2, $lon2);
-($b1, undef) = DXBearing::bdist($lat2, $lon2, $lat1, $lon1);
+($b1, $d) = DXBearing::bdist($lat1, $lon1, $lat2, $lon2);
+($b2, undef) = DXBearing::bdist($lat2, $lon2, $lat1, $lon1);
# convert stuff into radians
$lat1 *= $d2r;
if ($spos == @shistory - 1) {
# if we really are scrolling thru at the end of the history
- my $line = $shistory[-1];
+ my $line = $shistory[$spos];
$top->addstr("\n") if $spos > 0;
setattr($line);
$top->addstr($line);
# anywhere else
my ($i, $l);
my $p = $spos-1;
- for ($i = 0; $i <= $pagel && $p >= 0; ) {
+ for ($i = 0; $i < $pagel && $p >= 0; ) {
$l = measure($shistory[$p]);
$i += $l;
$p-- if $i < $pagel;
$top->move(0, 0);
$top->attrset(COLOR_PAIR(0)) if $has_colors;
$top->clrtobot();
- for ($i = 0; $i <= $pagel && $p < @shistory; $p++) {
+ for ($i = 0; $i < $pagel && $p < @shistory; $p++) {
my $line = $shistory[$p];
my $lines = measure($line);
last if $i + $lines > $pagel;
- $top->move($i, 0);
setattr($line);
- $top->addstr($line);
+ $top->addstr($i, 0, $line);
$top->attrset(COLOR_PAIR(0)) if $has_colors;
$i += $lines;
}
$spos = $p;
+ $spos = @shistory if $spos > @shistory;
}
- $top->refresh();
+ my $shl = @shistory;
+ my $add = "$call-$spos-$shl";
+ $scr->addstr(LINES()-4, 0, '-' x (COLS() - length $add));
+ $scr->addstr($add);
+ $scr->refresh();
+# $top->refresh();
}
# add a line to the end of the top screen
}
# add it to the monitor window
+ unless ($spos == @shistory) {
+ $spos = @shistory;
+ show_screen();
+ };
addtotop($inbuf) if $inbuf;
# send it to the cluster
$i += $l;
$spos++ if $i <= $pagel;
}
- $spos = @shistory if $spos > @shistory;
+ $spos = @shistory if $spos >= @shistory - 1;
show_screen();
} else {
beep();
}
} elsif ($r ge ' ' && $r le '~') {
# move the top screen back to the bottom if you type something
- if ($spos < @shistory - 1) {
+ if ($spos < @shistory) {
$spos = @shistory;
show_screen();
}