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

⟦e8771a730⟧ TextFile

    Length: 6912 (0x1b00)
    Types: TextFile
    Names: »bsclcpenv«

Derivation

└─⟦041268bb6⟧ Bits:30003098 SW2001/2/3.02 RC3502 Operating System
    └─⟦6fc3bf78b⟧ 
        └─⟦this⟧ »bsclcpenv« 

TextFile

bsclcpenv;
(*---------------------------------------------------------------
--
--                  bsc  lcp  environment
--
--  defines constants types and external procedures used
--  by bscmaster and bscslave drivers lcp.
--
-----------------------------------------------------------------
--
--   date      init       changes
--  ------------------------------------------------
--  84.02.01   jg         first edition
--  84.03.09   hej        fw_snoop_ev implemented.
--  84.03.19   hej        set_driv_mask implemented.
--  84.04.04    jg        line_surv_form changed.
--  84.04.13    jg        device status implemented.
--  84.04.16   hej        port,fwcom,param removed from lcp_formats.
--  84.05.24   hej        new lcp_operation no for driver events.
--  84.06.04   hej        new record for lcp reset of firmware.
--  84.06.12    jg        result lcp_timeout.
--  84.06.14   hej        sense_line_lcp_format changed.
--  84.06.20   hej        sp_status_12 called fwerror.
--  84.07.03    jg        sp_status_13 called not_defined.
--                        sp_status_14 called lcp_returned.
--                        sp_status_15 called lcp_forbidden.
--  84.10.16   hej        bool16 -> eventnomask with 32 booleans.
--  85.11.27   hej        emprocedures used.
--  86.07.21   hej        em-break used.
--
------------------------------------------------------------------
*)


const


(*  control modif values  *)
  
set_ev_mask    =  1;
reset_fw       =  2;
start_stat_lcp =  3;
init_trace     =  4;
stop_trace     =  5;
begin_trace_lcp=  6;
end_trace_lcp  =  7;
start_snoop    =  8;
stop_snoop     =  9;
start_isnoop   = 10;
stop_isnoop    = 11;
set_driv_mask  = 12;
\f


(*  sense modif values  *)
  
sense_ev_mask  =  1;
get_survey     =  2;
sense_all      =  3;
sense_line_lcp =  4;
sense_ram      =  5;
sense_st_ram   =  6;
line_survey    =  7;
device_status  =  8;
  
  
(*  answer streams  ( u4 )  *)
  
ncp_mess_str   = 1;
ncp_event_str  = 2;
lcp_conn_str   = 3;

lgt_set_ev_mask     =   4;
lgt_reset           =   3;
lgt_start_stat      =   3;
lgt_init_trace      =   3;
lgt_begin_trace     =   3;
lgt_end_trace       =   1;
lgt_setformat       =   4;
lgt_start_snoop     =   6;
lgt_start_isnoop    =   2;
lgt_sense_ev        =   2;
lgt_survey          =   8*8;
lgt_sense           =   8*26;
lgt_sense_line      =  39;
lgt_survey_sl       =   8;
lgt_line_survey     =   8;


\f



const

(*   event mask : messages, interrupts, driver_events, trace , ..    *)

m_snoop_ev = #h8000;
i_snoop_ev = #h4000;
fw_snoop_ev= #h2000;
driver_ev  = #h1000;
trace_ev   = #h0800;

 def_event_mask   = driver_ev;

 not_allowed      = sp_status_10;
lcp_timeout       = sp_status_11;
fwerror           = sp_status_12;
not_defined       = sp_status_13;
lcp_returned      = sp_status_14;
lcp_forbidden     = sp_status_15;

 def_trace_speed  =     7;   (*  1200 bps  *)
 def_trace_mode   =  #h79;   (*   for RC 822  even par  1 stop  *)

 tracedata_evno   =  11;
 driver_evno      =  101;
 read_to_fw       =   5;   (*  ev no 23  *)
 from_fw          =   6;   (*  ev no 27   *)
 write_to_fw      =   7;   (*  ev no 31  *)
 wr_from_fw       =   8;   (*  ev no 35  *)

\f


type            (*  lcp message formats   *)

sp_header = record
 first,last, next : integer;
 sp_head : sp_head_type
end;

lcp_set_ev_mask = record
 ? : sp_header;
 update_mask,
 new_mask    : integer
end;

lcp_reset = record          (*   for reset of firmware   *)
  f, l, n : integer;
  head    : sp_head_type;
  password: integer;
  func    : byte;           (*  reset value  *)
  data    : array ( 0..15) of byte
 end;

lcp_start_stat_format = record
 f,l,n  : integer;
 head   : sp_head_type;
 bscline,
 fcu    ,       (*   first cu  *)
 lcu    : byte  (*  last cu  *)
end;

init_trace_format = record
 f,l,n   : integer;
 head    : sp_head_type;
 trcline ,              (*  trace line  *)
 mode    ,              (*  mode reg 1 to 2651  *)
 speed   ,              (*  line speed code  0..15  -   50 .. 19200  *)
 newcom  : byte
end;
\f


begin_trace_format = record
 ? : sp_header;
 bscline ,
 trcline ,
 mask    : byte
end;
 
lcp_line_format = record
 ? : sp_header;
 bscline ,
 trcline ,
 new     : byte
end;


get_ev_format = record
 ? : sp_header;
 ev_mask : integer
end;

start_snoop_format = record
 ? : sp_header;
 sn_low ,
 sn_up  ,
 sn_c_m : integer
end;
\f


eventnomask = packed array ( 1..32 ) of boolean;

set_driv_format = record
 ? : sp_header;
 newmask : eventnomask;
 end;

surv = record
 st : statetype;
 mb : bool8;
 cus: set of 0..31;
 que: byte;          (*  queue = 2  pending = 1  *)
 try: byte;          (*  retry     *)
end;

survey_format = record
 ? : sp_header;
 data : array ( 0..7 ) of surv
end;

sense_format = record
 ? : sp_header;
 data : array ( 0..7 ) of senselinetype;
end;
  
surv_sl_form = record
? : sp_header;
data: array(0..7) of byte
end;
  
line_surv_form = record
? : sp_header;
ln,le,ls,lc,ccu,cdv: byte;
bx: packed record
b7,b6,b5,b4,b3,b2,b1,b0: boolean
end;
mo: bool08
end;
\f



sense_line_lcp_format = record
 ? : sp_header;
 bscline ,
 data_comm,
 un      : byte;
 data    : array ( 1..10 ) of integer;
 data_state : byte;
 data_d  : array ( 2..15 ) of byte;
 pend    ,
 qu      : byte;
end;

req_ram = record
 ? : sp_header;
 addr  : integer;
 bc    : byte;
end;

get_stat_format = record
 f,l,n  : integer;
 head   : sp_head_type;
 bscline : byte;
 data    : array ( 0..statlast ) of byte
end;


\f



(*----------------------------------------------------
--
--       procedures
--
------------------------------------------------------
*)


procedure note_msnoopev (          (*  make message snoop event   *)
var lcp_zone : em_zone_type;
var msg : reference;
low, up, cm : integer );
external;

procedure note_isnoopev (     (*   make interrupt event   *)
  var lcp_zone: em_zone_type;
  dir, line : byte;
  var ar  : line_des_area;
  cm      : integer );
external;

procedure note_tracedata (      (*  pack trace data as an lcp event   *)
  var lcp_zone: em_zone_type;
  line : byte;
  var ims  : bscformat );
external;

procedure note_driver_ev (   (*  pack user event as lcp event   *) 
  var lcp_zone: em_zone_type;
  line, cu, dev, no, cause, extra: byte );
external;

procedure em_break (      (*  disconnect lcp     *)
  var lcp_zone:  em_zone_type;
  cause       :  integer       );
external;

\f


(*---------------------------------------------------
--
--          end of   bsc   lcp  environment
--
-----------------------------------------------------
*)
.
▶EOF◀