|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 6144 (0x1800) Types: TextFile Names: »netenvir2«
└─⟦2c55ea56f⟧ Bits:30001844 SW-save af projekt 1000, Alarm-system └─⟦6b41451d2⟧ └─⟦this⟧ »netenvir2«
<* lockheed network environment *> net_definitions; <* trimming params for network *> const min_xmit = 0; <* minimum value for transmission bytes *> no_of_levels = 5; <* max nuber of consecutive network nodes between term and 8000 *> size_request = 80; <* max number of chars in request *> size_reply =2000; <* max number of chars in reply *> <* global constants *> const doomsday = false; <* useful in: repeat ... until doomsday *> <* computer dependant parameters *> const no_of_fpa = 1; first_devno_fpa = 8; no_of_hdlc = 2; first_devno_hdlc = 16; no_of_gci = 1; first_devno_gci = 10; no_of_cons = 2; no_of_ontel = 4; first_devno_ontel = 12; no_of_bbm = 0; first_devno_bbm = 0-0-0; no_of_server = 1; <* program dependant parameters *> const fpa_name = 'fpadriver'; fpa_size = 512; fpa_prio = 0; inbufs_fpa = 2; outbufs_fpa = 5; hdlc_name = 'hdlcdriver'; hdlc_size = 512; hdlc_prio = 0; inbufs_hdlc = 3; outbufs_hdlc = 5; gci_name = 'gcidriver'; gci_size = 512; gci_prio = 0; inbufs_gci = 2; outbufs_gci = 2; cons_name = 'consdriver'; cons_size = 512; cons_prio = -3; inbufs_cons = 1; outbufs_cons = 0; ontel_name = 'onteldriver'; ontel_size = 512; ontel_prio = 0; inbufs_ontel = 1; outbufs_ontel = 0; bbm_name = 'bbmdriver'; bbm_size = 128; bbm_prio = -1; inbufs_bbm = 2; outbufs_bbm = 1; server_name = 'server'; server_size = 512; server_prio = -1; inbufs_server = 1; outbufs_server = 5; <* summarization of trimming-parameters *> type prockinds = (fpa_kind, hdlc_kind, gci_kind, cons_kind, ontel_kind, bbm_kind, server_kind); const max_process = no_of_fpa*2 + no_of_hdlc*2 + no_of_gci*2 + no_of_cons + no_of_ontel + no_of_bbm + no_of_server; max_ports = no_of_fpa + no_of_hdlc + no_of_gci + no_of_cons + no_of_ontel + no_of_bbm + no_of_server; max_port = no_of_fpa + no_of_hdlc + no_of_gci + no_of_bbm + no_of_server; max_sem = no_of_fpa*2 + no_of_hdlc*2 + no_of_gci*2 + no_of_cons*2 + no_of_ontel*2 + no_of_bbm + no_of_server*2; max_status = max_process; <* may also be smaller *> max_largepool = inbufs_fpa*no_of_fpa + inbufs_hdlc*no_of_hdlc + inbufs_gci*no_of_gci + inbufs_bbm*no_of_bbm + inbufs_server*no_of_server; max_smallpool = inbufs_cons*no_of_cons + inbufs_ontel*no_of_ontel; type ports_range = 1 .. max_ports; port_range = 1 .. max_port; <* definition of message types ( = u1 ) *> const input_msg = 1; output_msg = 2; <* definition of results ( = u2 ) *> const result_ok = 0; result_skip = 1; result_error = 2; result_answer = 7; <* definition of buffer kinds ( = u4 ) *> const rec_answer = 0; xmit_answer = 1; empty_buf = 2; full_buf = 3; <* definition of routing modes *> const reply = 1; next_request = 2; new_request = 3; inform = 4; <* definition of service kinds *> const serv_a = 1; serv_b = 2; serv_c = 3; max_serv = 3; das_search = serv_a; const max_dist = no_of_levels; top_dist = max_dist + 1; type routing_modes = reply .. inform; serv_range = 1 .. max_serv; dist_range = 0 .. max_dist; <* definition of routing description *> const addr_lower = 1; addr_upper = addr_lower - 1 + 2 * no_of_levels; type addr_range = addr_lower .. addr_upper; type port_defs = array (addr_range) of byte; const size_port_defs = (addr_upper - addr_lower + 1) * 1; type net_header = record routing_mode : byte; service_kind : byte; cur : byte; <* index of current port_def *> addr : port_defs; ? : byte; <* used for compatibility with opa-software *> end; const size_net_header = 3 + size_port_defs + 1; type single_capability = array (serv_range, dist_range) of byte; const size_single_cap = max_serv * (max_dist + 1) * 1; <* definition of databuf formats *> type stdpart = record first : integer; last : integer; next : integer; receiver : integer; header: net_header; end; const first_buffer = 8; size_stdpart = first_buffer + size_net_header; type request_buffer = record req_head : stdpart; req_buf : array (1..size_request) of char; end; type reply_buffer = record reply_head : stdpart; reply_buf : array (1..size_reply) of char; end; type cap_buffer = record cap_head : stdpart; cap : single_capability; end; const size_cap_buffer = size_stdpart + size_single_cap; <* definition of process-parameter types *> type proc_descrs = array (0..max_process) of record kind : prockinds; inc : 0..max_process; <* relative number within kind *> sem : 0..max_sem; <* index within 'sems' *> testval : integer; <* testpattern, 0==no test *> end; sem_arr = array (0..max_sem) of semaphore; <* general types *> type timetype = record hours : integer; seconds : integer; end; <* general procedure declarations *> procedure inword (var w: integer; var chm: reference); external; procedure outword (w: integer; var chm: reference); external; procedure controlclr (w: integer; var chm: reference); external; procedure control (w: integer; var chm: reference); external; procedure sense (var status: integer; w: integer; var chm: reference); external; procedure outwordclr (w: integer; var chm: reference); external; function timedout: boolean; external; <* override in/outwordblock by: in/outbyteblock *> (* procedure inwordblock = inbyteblock (var n: integer; f,l: integer; var m,d: reference); external; procedure outwordblock = outbyteblock(var n: integer; f,l: integer; var m,d: reference); external; *) procedure return_empty (var msg: reference; ok: boolean); external; procedure return_full (var msg: reference; ok: boolean); external; procedure outnl (var z: zone); external; procedure outtime (var z: zone; t: timetype); external; procedure print_msg (var z: zone; var msg: reference; text: alfa); external; <* end netenvir *> . ▶EOF◀