|
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: 9984 (0x2700) Types: TextFileVerbose Names: »bscenvir«
└─⟦041268bb6⟧ Bits:30003098 SW2001/2/3.02 RC3502 Operating System └─⟦6fc3bf78b⟧ └─⟦this⟧ »bscenvir«
bscenvir; (*--------------------------------------------------------------------- -- -- for BSC 3270 -- -- revisions: -- -- date init changes -- 84.01.07 hej first version -- 84.01.09 hej statleng, eventno -- 84.01.11 hej bsc_tap, pollpri, startlinetype -- 84.01.16 hej auto_ack in startline -- 84.01.18 hej some renumbering of firmware commands -- 84.01.19 hej non_polls in startline and senseline. -- 84.01.25 hej new states, uwack, eventformat. -- 84.02.16 hej senselineformat. -- 84.01.30 hej message values -- 84.03.08 hej event numbers. -- 84.04.04 jg TYPE bool08. -- 84.04.24 jg TYPE bool08.lcp_b -- 84.05.17 jg statusevent -- 84.06.05 hej statetype ( in_ttd) used, reset_ims210. -- 84.06.12 jg bool08.w_ack to r_buf. -- 84.06.19 hej urvi used. -- 84.06.20 jg bool08.w_act implemented. -- fw_ok and more states end_xx in use. -- 84.06.21 hej index in cnt corrected. -- 84.07.04 jg line- and cuevent -- max_userevent 8->10 -- bool08.host_line implemented -- 84.08.09 jg max_userevent = 20 -- 85.06.19 hej start asyncron included. -- 85.09.25 hej driverevent for master driver used. -- 85.10.25 hej max_cu_no and max_port_no used. -- 86.02.24 jg fw_commands continue, passivate and test_usart. -- 86.02.24 jg intrtype warning included. -- 86.03.06 hej function codes for soft reset in use. -- ------------------------------------------------------------------------*) \f const ncp_present = true; (* if true then use lcp *) bsc_class = 6; reset_ims210= 1; (* no test *) reset_imssoft= 3; (* soft reset *) extsize = 16*1024; def_buffer = 256; (* master default fw bufferlength *) fw_timeout = 9; (* firmware timeout in sec *) max_port_no = 7; (* must be n**2 - 1 *) max_cu_no = 31; (* must be n**2 - 1 *) statleng = 54; (* statleng bytes *) statlast = statleng-1; statsize = statleng div 2 + 3; driver_statleng = 36; driver_statlast = driver_statleng-1; bscheader_leng = 8; eventsize = 7; message = 7; (* in u2 *) queued_lcp = 6; \f (*-------------------------- driver messages ---------------*) start_line = 0; stop_line = 4; start_cu = 8; stop_cu = 12; sense_line = 16; sense_cu = 20; sense_dev = 24; return_line = 28; return_cu = 32; return_dev = 36; continue = 40; set_cu = 44; start_stat = 48; read_stat = 52; read_clear_stat = 56; start_formfree = 60; set_async = 64; passivfunc = 68; (* set line passiv *) continfunc = 72; (* set line continue *) testusartfunc = 76; (* perform test of usart *) softresetfunc = 80; (* perform soft reset *) testfunc = 4; (* for master supervisor *) pollfunc = 8; write_type = 2; read_type = 3; fwreset = 3; (* set in ready by firmware during hard reset *) \f tfinish = 0; (* firmware commands and answers *) teot = 1; tenq = 2; tnak = 3; rack0 = 4; rack1 = 5; wack = 6; wacks = 7; rvi = 8; ttd = 9; disc = 10; tpoll = 11; tselect = 12; sense = 13; sohx = 14; sohb = 15; stxx = 16; stxb = 17; dstxx = 18; dstxb = 19; tsoh = 20; tstx = 21; dstx = 22; noframe = 23; tetx = 24; tetb = 25; detx = 26; detb = 27; stx1_x = 28; stx1_b = 29; dstx1_x = 30; dstx1_b = 31; tracedata = 32; \f start_master = 33; (* firmware commands *) start_slave = 34; formatfree = 35; start_tracing= 36; stopline = 37; startcu = 38; stopcu = 39; priocu = 40; clear_stat= 41; stat_lcp = 42; begin_trace = 43; end_trace = 44; tracespeed = 45; asyncspeed = 46; cont_line = 47; passivate = 48; test_usart = 49; overload = 33; (* firmware answers *) syntax = 34; syntax_itb= 35; leng_err = 36; crc_err = 37; timerp = 38; timeri = 39; comm_err = 40; timers = 41; timer = 42; max_answer_no = 42; (* last answer *) ok = 0; (* results *) notproc= 1; size_error= 3; usart_error = 5; persistent= 8+3; (* error in reserve channel or reserve ext mem *) ignored= 9; error = 2; ille = 4; utimer = 8; ueot = 32; urvi = 64; unak = 96; uwack = 128; rwack = 8; rdata = 16; rsens = 24; eventok= 32; senseok= 40; shortok= 48; (* formatfree short block *) \f imsevent = 1; (* events *) modemevent = 2; timerevent = 3; blockevent = 4; nobufevent = 5; ttdevent = 6; sleepevent = 7; statusevent = 8; lineevent = 9; lineup = 0; linedown = 1; cuevent = 10; driverevent = 12; max_userevent = 20; recevent = max_userevent + 1; (* only for lcp events *) xmtevent = max_userevent + 2; firstcu = 0; (* index in cnt *) lastcu = -1; speed_h = -2; speed_l = -3; retrans = -25; retimer = -27; rerec = -29; renobuf = -31; rettd = -33; losts = -35; \f type linerange = 0..max_port_no ; (* line numbers *) curange = 0..max_cu_no; (* cu numbers *) intrtype = ( lineread, linewrite, fwread, fwwrite, startims, warning ); statetype = ( stopped, traces, idle, (* no protocol *) after_poll, after_ack, (* users poll *) after_eot, in_ttd, after_ttd, (* during data out *) in_data, after_data1, after_data0, (* ack1 or ack0 wanted *) after_enq1, after_enq0 , (* repeated ack wanted *) end_session, end_t, end_i, (* states after finish and eot *) end_p, end_a, end_e, end_tt, end_d, end_d1, end_d0, end_e1, end_e0, laststate ); answerarray = array ( 0..max_answer_no ) of byte; modiftype = array ( sense..tracedata ) of byte; word = record low, high : byte end; (* intel integer *) sempointer = ^semaphore; tap_pointer = record s, w : sempointer end; bsc_vector = array ( linerange ) of ^semaphore; bsc_tap = array ( linerange ) of tap_pointer; bool8 = packed record skip, (* true after wack *) chain, (* true after write modif 4 *) freeform, (* true after set format free *) evenblock, (* true after even block sent *) readtype, (* true after readtype command *) odd, (* true after ack1 sent *) etb_block, (* true after etb received *) ready (* false after receive buffer missing *) : boolean end; bool08 = packed record auto , (* true if auto ack *) ge_poll, (* true if generel poll *) ss_wait, (* true if status sense is waiting *) host_line, (* true if host is polling *) f_buf , (* true after first datablock *) r_buf , (* true when readbuffer *) lcp_b , (* true if lcp_buf from queue *) w_act (* true if writearea is active *) : boolean end; \f commandarea = record comm , answer , bufadr_l , bufadr_h , size_l , size_h , bytes_l , bytes_h, imscu , imsdev : byte end; line_des_area = record param : array ( lineread..linewrite ) of commandarea; modembits : byte; cu_info : byte; cnt : array ( -statlast..0 ) of byte; end; bscformat = record intr , reset , class , size_l , size_h , fvers , flevel : byte; spare : array ( 7..31 ) of byte; free_in , first_out : byte; service : array ( 0..15 ) of byte; imsline , ready : byte; sr_adr_l , (* addr in static ram for fwwrite and fwread *) sr_adr_h , sr_data : byte; debug_area: array ( 0..15) of byte; area : array ( linerange ) of line_des_area; end; \f driverhead = record first, last, next : integer end; header = record first, last , next : integer; cu , dev : byte end; startlinetype = record head : header; linesp_h , linesp_l : byte; i_size : integer; o_size_h, o_size_l: byte; retry_trans, retry_timer, retry_recev, retry_nobuf, retry_ttd : byte; non_polls : integer; auto_ack : boolean; end; device_ident = record cu : 0..31; dev: 0..63 end; device_type = (term, printer); \f senselinetype = record linesp_h , linesp_l , i_size_h , i_size_l , o_size_h , o_size_l : byte; retry_trans, retry_timer, retry_recev, retry_nobuf, retry_ttd : byte; non_polls : integer; auto_ack : boolean; status : byte; activ : set of 0..31; modemstate : byte; losts , not_readys , ufos : integer; end; senselineformat = record head : header; data : senselinetype; end; sensecutype = record head : header; pollprio : byte; end; speedbuftype = record head : header; mode_1, mode_2: byte end; eventformat = record head : driverhead; cu , dev , eventno , cause , extra : byte; lostevents : integer end; (*------------------- end of bscenvir ---------------------------*) . «eof»