DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦26d79e522⟧ TextFile

    Length: 3840 (0xf00)
    Types: TextFile
    Names: »hlvlamenvir«

Derivation

└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system
    └─⟦72244f0ef⟧ 
        └─⟦this⟧ »hlvlamenvir« 

TextFile

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◀