home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 3
/
hamradioversion3.0examsandprograms1992.iso
/
control
/
net400-1
/
netlogin.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1989-07-13
|
6KB
|
244 lines
procedure clear_window(on : boolean);
begin
if (on) then
begin
brite_blanks;
auxcolor;
end
else
begin
norm_blanks;
normcolor;
end;
end;
procedure login;
var i : integer;
old_x, old_y : integer;
test_prefix : pre_str;
test_area : char;
test_suffix : post_str;
key : char;
procedure show_call(p : integer; brite : boolean);
begin
if NOT (p in [0..13]) then exit;
if brite = FALSE
then
auxcolor
else
brite_auxcolor;
gotoxy(x[p],y[p]);
case p of
0 : write(test_suffix:6);
1..13 : with net_list[call[p]]^ do
write(Trim(prefix) + area + suffix : 6) ;
end;
gotoxy(x[p],y[p]);
end;
procedure all_ready_logged;
begin
window(32,8,79,16);
textcolor(status_f);
textbackground(norm_b);
gotoxy(30,1);
write('ALREADY LOGGED',#7);
delay(500);
gotoxy(30,1);
ClrEol;
window(1,1,80,25);
end;
procedure new_call;
var test_prefix : string[3];
test_area : string[1];
begin
if (new_pntr = max_new) then
begin
window(32,8,79,16);
textcolor(status_f);
textbackground(status_b);
gotoxy(30,1); ClrEol; write('No NEW CALL memory left',#7);
normcolor;
window(1,1,80,25);
end
else
begin
window(32,8,79,16);
normcolor;
Set_Confirm_On;
test_prefix := ' ';
sayget(30,1,'Prefix ',test_prefix,_S,2,0);
picture('@!');
test_area := ' ';
sayget(30,2,'Area ',test_area,_S,1,0);
picture('9');
readgets;
Set_Confirm_Off;
if test_prefix = ' ' then
begin
gotoxy(30,1); ClrEol;
gotoxy(30,2); ClrEol;
window(1,1,80,25);
exit; { this call is rejected }
end;
gotoxy(30,1); ClrEol;
gotoxy(30,2); ClrEol;
if (new_there(test_prefix,test_area,test_suffix) = TRUE) then
begin
all_ready_logged;
exit;
end;
new_pntr := new_pntr + 1;
top_pntr := top_pntr + 1;
with checkins[top_pntr] do
begin
list_nbr := 1;
position := new_pntr;
hr_min := copy(SystemTime,1,5);
end;
with new_list[new_pntr]^ do
begin
prefix := test_prefix;
area := test_area;
suffix := test_suffix;
name := '';
net_nbr := ' ';
log_date := SystemDate;
xref := top_pntr;
with NBase do
begin
_PREFIX := prefix;
_AREA := area;
_SUFFIX := suffix;
_NAME := name;
_LOGDATE := SystemDate;
end;
APPEND;
recnbr := RecNo;
end;
gotoxy(1,1); InsLine;
write(Trim(test_prefix) + test_area + test_suffix:6);
if (max_new - new_pntr = 5) then
begin
textcolor(status_f);
textbackground(norm_b);
gotoxy(25,2); write('Only 5 more new logins');
gotoxy(25,3); write('allowed.');
end;
window(1,1,80,25);
display_checkin(top_pntr);
if top_pntr = 1 then top_of_roster;
update_flag := TRUE;
status;
end;
end;
procedure add_call;
begin
if net_list[call[call_count]]^.xref = 0
then
begin
top_pntr := top_pntr + 1;
with checkins[top_pntr] do
begin
list_nbr := 0;
position := call[call_count];
hr_min := copy(SystemTime,1,5);
net_list[position]^.xref := top_pntr;
window(32,8,79,16);
normcolor;
gotoxy(1,1); InsLine;
with net_list[position]^ do
begin
write((Trim(prefix) + area + suffix):6,' ',name:10);
if (net_nbr <> ' ') then
write(net_nbr:5);
end;
window(1,1,80,25);
end;
display_checkin(top_pntr);
if top_pntr = 1 then top_of_roster;
update_flag := TRUE;
status;
end
else
all_ready_logged;
end;
begin
old_x := WhereX; old_y := WhereY;
window(32,8,79,16);
normcolor;
ClrScr;
window(1,1,80,25);
repeat
test_suffix := ' ';
clear_window(true);
sayget(x[0],y[0],'',test_suffix,_S,3,0);
picture('@!');
readgets;
if (test_suffix <> ' ') then
begin
gotoxy(32,2);
textcolor(status_f);
textbackground(border_b);
write('NuCall');
find_call(test_suffix);
show_call(0,FALSE);
key := #0;
if multiple > 0
then
begin
for call_count := 1 to multiple do
show_call(call_count,FALSE);
gotoxy(x[first],y[first]);
call_count := first;
show_call(first,TRUE);
repeat
key := readkey;
if key = #0 then
begin
key := readkey;
case key of
#77 : { -> } begin
if call_count < multiple then
begin
show_call(call_count, FALSE);
call_count := call_count + 1;
show_call(call_count,TRUE);
end;
end;
#75 : { <- }
begin
if call_count > 0 then
begin
show_call(call_count,FALSE);
call_count := call_count - 1;
show_call(call_count,TRUE);
end;
end;
end;
key := #0;
end;
until (key in [#13,#27]);
end;
end;
if key <> #27 then
begin
if test_suffix > ' ' then
if (call_count = 0) OR (multiple = 0)
then new_call
else add_call;
end;
textcolor(border_f);
textbackground(border_b);
gotoxy(32,2);
write('SUFFIX');
until (test_suffix = ' ');
clear_window(false);
gotoxy(old_x,old_y);
end;