|
|
DataMuseum.dkPresents historical artifacts from the history of: RC3500 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC3500 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3840 (0xf00)
Types: TextFileVerbose
Names: »hlvlamenvir«
└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system
└─⟦72244f0ef⟧
└─⟦this⟧ »hlvlamenvir«
lamenvir;
(*
environment for the x.21 lam - driver and corresponding
scanner process.
vers: 810407 hlv
*)
const
cycmax= 32; (* cyclic input buffer size *)
cyctop= cycmax+1;
firstline= 0;
lastline= 15;
scanpoolsize= 33; (* no of scanner event messages + 1 for chmsg copy *)
lammask= 0; (* reservechannel devicemask for lam, p.t. not used *)
doom= false;
(* delay timer interval 125 * (2 ^ 3) msec = 1000 msec *)
timeru3= 125;
timeru4= 3;
(* message function bits *)
finput= 1;
fecho= 2;
fcont= 4;
fatt= 8;
fxon= 16;
(* conversion classes *)
normal_conv= 128;
attention= 64;
termination= 32;
blind= 16;
noecho= 8;
erase_last= 4;
erase_all= 2;
mark= 1;
(* answer status *)
stat_ok= 0;
stat_notproc= 1;
stat_err= 2;
stat_ill= 3;
(* status modifications *)
stat_timeout= 0;
stat_echoerr= 8;
stat_att= 16;
stat_pty= 32;
stat_ovrun= 64;
stat_mark= 128;
stat_xoff= 256;
(* lam status bits *)
ls_error= 64;
ls_dcd= 32;
ls_rfs= 16;
ls_dsr= 8;
ls_pty= 4;
ls_stop= 2;
ls_ovrun= 1;
\f
type
(* coroutine states *)
rmodetype= (idle,input,input_echo,att,att_echo);
xmodetype= (xidle,output,output_last,output_finis,xecho);
(* buffer head format *)
bufhead= record
first,
last,
next: integer;
end;
(* device formats *)
lamstat= byte;
lamouttype=
packed record
char: byte;
?: 0..7;
line: 0..15;
?: 0..1;
end;
lamstattype=
packed record
?: byte;
stat: lamstat;
end;
lamintype=
packed record
char: byte;
?: 0..3;
error: boolean;
line: 0..15;
input: boolean;
end;
\f
(* line status descriptor *)
line_status_type=
packed record
?: 0..1;
line_speed: 0..3;
data_size: 0..3;
stop_bits: boolean;
pty_mode: 0..3;
not_mr,
rts,
dtr,
dcd,
rfs,
dsr,
b14,
scan: boolean;
end;
(* cyclic buffer entry type *)
cycinputtype=
packed record
char: byte;
stat: lamstat;
end;
convinteger= packed record
class,
char: byte;
end;
\f
(* line descriptor *)
linetype=
record
rmode: rmodetype;
rtimer,
rtimer1,
rtimer2,
rstat: integer;
rsem,
rattsem: semaphore;
linestatus: line_status_type;
cycfirst,
cyclast: integer;
cycbuf: array (0..cycmax) of cycinputtype;
convmode,
echo_count,
spec_echo_line,
spec_echo_next: integer;
res: convinteger;
xmode: xmodetype;
xtimer,
xtimer1: integer;
xsem,
xsemqueue: semaphore;
end;
linearraytype= array (firstline..lastline) of linetype;
linereftype=
record
rcurbuf,
convbuf: reference;
end;
\f
(* external procedures *)
procedure outword(w: lamouttype; var ch: reference);
external;
procedure sense(var si: lamstattype;
so: lamintype;
var ch: reference);
external;
function copychm(var twin, lam: reference): integer;
external;
procedure control(c: line_status_type; var ch: reference);
external;
procedure controlclr(c: integer; var ch: reference);
external;
procedure inword(var w: lamintype; var ch: reference);
external;
(* end of lam environment *)
.
«eof»