This is the log book for the TRICS software ================================================================================ TRGBOOK:TRICS.LBK_V4 Archived Section Of TRICS V4.X notes for 15-FEB-1993 through 11-FEB-1993 ================================================================================ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30-AUG-1993 Philippe: MSU - create TABLE_LARGE_TILE.TYP definition of a Large Tile Record - modify MOD073_DEF_PHYSICS_TABLES.PAS include TABLE_LARGE_TILE.TYP add large tile record type and large tile pointer array. expand def_trgtwr_table to add definition of large tile data base. add variables first_lt_eta, last_lt_eta, first_lt_phi, last_lt_phi, derived from firstetamagn, lastetamagn, firstphival, lastphival, fill firstltrefset, lastltrefset - modify MOD095_INIT_LSM.PAS add initialization of LgTile Zeresp - modify MOD128_INIT_TRGTWR.PAS add init_all_LgTile, initialize_LgTile, and restore_lgTile - modify MOD226_COOR_CALTRG_EXECUTE.PAS to coor_init_trgtwr, add call to initialize_LgTile when the trigger tower range specified coresponds to a complete set of large tiles. - modify - modify ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 27-AUG-1993 Philippe: MSU Implement Large Tile Messages - modify MOD243_COOR_DISPATCH.PAS Add messages for large tiles REFSET LRG_TILE ST_VS_RS LRG_TILE - modify MOD226_COOR_CALTRG_EXECUTE.PAS add coor_st_vs_lt_rs add coor_refset_lgtile and function tower_range_ok_for_lgtile to check for tile boundaries - modify SITE_DEPENDENT.CST add first_lt_ref_set and last_lt_ref_set add eta_per_LT and phi_per_LT for the size of a large tile - modify TABLE_ENUM.TYP extend threshold_comparison_type (EMEt_cmp, TOTEt_cmp, LgTile_cmp ) extend threshold_reference_set_number to ref_7 - modify MOD118_HANDLE_JET_LIST.PAS modify prog_jet_list to write to the other jet list programming aoc for large tile - modify MOD073_DEF_PHYSICS_TABLES.PAS extend jet_list_progr to ref_7 - modify MOD125_INIT_SPTRG.PAS add initialization of specific trigger large tile jet list programming - modify MOD119_HANDLE_TRGTWR.PAS add Set_LgTile_Ref ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 11-MAY-1993 Philippe: MSU - create directories [.ITC] will have the ITC OLB [.ITC.INC] ELN ITC include files [.ITC.ELN] ELN ITC source code - modify DESCRIP.MMS Create symbols for ITC OLB, source code and inc directories Add a dependency of mpool_server.obj on ITC OLB Modify the epascal compile to quit pointing to TRGOLB:DEB_ELN_ITC.OLB, but to the new OLB instead, passed from the MMS file by a logical name ITC_OLB Remove library TRGOLB:MISC_UTIL from the epascal command - create [.ITC]DESCRIP.MMS Describe the new ITC source code and OLB including one macro and one message source file - modify MPOOL_SERVER_LINK.OPT replace the reference to TRGOLB:DEB_ELN_ITC.OLB, with logical name ITC_OLB created by DESCRIP.MMS - modify [.ITC.ELN]ELN_CONNECT.EPAS add status and error messages in the routine ignore_problem - modify TRICS_V40_LINK.OPT remove library TRGOLB:MISC_UTIL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4-5-MAY-1993 Philippe: MSU - modify MPOOL_SERVER.PAS copy version from DZero that has additional messages for what channel and request had ITC read or write problem. - update ITC from Stu Beta release which has fix to the recover connection update that deletes the port clear the truncated message flag that isn't used anywhere ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 7-APR-1993 Philippe: MSU - update the private copy of ELN ITC using the distributed D0$itc: ITC_CONFIG.INC Def_Number_of_Channels = 40; -- > 15 (up from 10) Def_Max_Message_Size = 256; -- > 11000 Def_Ring_Buff_Size = 1024; -- > 200 ELN_CONNECT.EPAS this includes an update by S.Fuess add my update described above ELN_SETUP_INIT.EPAS this includes an update by S.Snyder to change some defaults in ITC_Init - modify MOD041_HANDLE_MAIL.PAS change the "mailing to" message from trc_inf to trc_sys - modify MOD071_DEF_HARDWARE_TABLES.PAS modify the read/write mask of L1.5 Control MTG Channel 29 and 30 modify mtgbusy, comint busy stretch PAL is at FA 1, not 31. - modify MOD123_INIT_CBUS_CARDS.PAS Quit initializing L1.5 Control MTG Channel 29 Initialize L1.5 receiving MTG channels 1:19 Fix mtgbusy channel comint busy stretch PAL is at FA 1, not 31. - modify MOD501_HANDLE_DBLE_BUFF.PAS write screen message notifying of re-shynchronization AFTER doing it raise process priority (8 -> 7) - modify MOD404_HANDLE_MONIT_POOL.PAS When a data block cannot be forced, replace direct reset of COMINT with a call to an auxiliary command file. Not forgetting to lock the dispatcher semaphore to prevent mutual data corruption. - modify SITE_DEPENDENT.CST add a parameter reset_directives_file to hold the name of the file used to reset the comint card. update lastL15term is now 18 - modify MOD201_TST_INIT.PAS add around the init_auxi file during initialization by the test task code to lock the dispatcher semaphore to prevent mutual data corruption - modify INITIALIZE_TIME.PAS quit waiting for 15 seconds before starting executing clear the screen when starting remove the status arguments from calls to system services replaced by an exception handler that waits 10 seconds and retries ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6-APR-1993 Philippe: MSU investigate ITC infinite loop problem. - modify [TRG_LIB.ITC]ELNOLBS.COM to replace /debug with /debug=all recompile DEB_ELN_ITC.OLB and rename to TRGOLB: - modify [TRG_LIB.ITC.ELN]ELN_CONNECT.EPAS add a wait for one second time out before checking again when all the channels are in use. Send note to J.Featherly ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 26-MAR-1993 Philippe: MSU - measure time of /DEBUG/NOOPTIM /OPTIM/NODEBUG /OPTIM/DEBUG write strobe 10.2 us 7 us 7.2 us write direction 61 21 21.4 fa during read 32 21 26 fa during write 82 54 57 The length of the write strobe is very close to one WRITE_REGISTER instruction to the DRV11J Check Consistency: During a read register, there are 3 WRITE and READ to the DRV11J while the CBUS is activated and 3*7 = 21 us During a Write register, there are 8 WRITE and READ to the DRV11J while the CBUS is activated and 8*7 = 56 us ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3-MAR-1993 Philippe: MSU - modify MOD222_TREE_EXECUTE.PAS Modify syntax for TREE_CNT messages to require the keyword REF(n) Modify the display of IMLRO registers to show latest slice (+224) - modify MOD173_PARSE_DETAIL.PAS find_and_check_ranges do not return bad status, but only stops when encountering a keyword that is not SIGN_ETA, MAGN_ETA or PHI (it used to consider this a bad format) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25-FEB-1993 Philippe: MSU - modify MOD031_HANDLE_REMCONS.PAS Replace the call to stop_remcons when the remcons exits by explicit ELN_DISCON and DELETE name. This is because stop_remcons first signals the remcons process (i.e. itself in this case) and exits without completing the rest of stop_remcons (it did not call ELN_DISCON). Invert the order in REPEAT..UNTIL so that a first message is sent before the service starts. Replace the "UNTIL" checking on the redirect flag with an unconditional repeat. This way another process giving up on remcons and clearing the redirect flag does not cause the remote console to exit, but will allow the remcons to retry later. An error during message delivery to the remote terminal or a call to stop_remcons can still stop the remote console. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 24-FEB-1993 Philippe: MSU - modify MOD202_TST_MISC_UTIL.PAS check_dgt_result and examine_at_chtcr use examine_register instead of the local inline_examine_register remove examine_at_imlro, inline_examine_register (both moved to mod_handle_register) , and inline_update_register (wasn't used anyway) - modify MOD101_HANDLE_REGISTERS.PAS add examine_multi_byte derived from examine_at_imlro, with optional return value two_byte_value or three_byte_value copy the inline_examine_register while removing the argument tagext - modify MOD203_TST_CALTRG_RANDOM.PAS MOD204_TST_CHTCR_PROMS.PAS MOD206_TST_CTFE_PROMS.PAS update for change examine_at_imlro -> examine_multi_byte - note : there has been a confusion between tree offset and tree correction. This had no effect when they had the same value. But it was an error to use the tree offsets to figure the proper threshold count to load for a global energy. Luckily, Dzero has only been using TOT Et threshold for which tree offset and correction are identical. - modify SITE_DEPENDENT.CST add constant T3_offset_saved = 200 - modify MOD073_DEF_PHYSICS_TABLES.PAS add variable tree_correction - modify MOD095_INIT_LSM.PAS fill_tree_offset will fill both tree_offset and tree_correction - modify MOD105_HANDLE_CAT_CARDS.PAS update_cat3_correction argument renamed from TREE_OFFSET to CORRECTION - modify MOD130_INIT_THRESHOLDS.PAS rename load_tree_offsets to load_tree_corrections and use tree_correction variable instead of tree_offset - modify MOD201_TST_INIT.PAS MOD223_COOR_GLOBAL_EXECUTE.PAS TRICS_V40.PAS update for name change load_tree_offsets to load_tree_corrections - modify TABLE_CBUS_CARDS.TYP add imlro_caltrig_aux card record type for L0 fast Z and Mpt readout - modify MOD071_DEF_HARDWARE_TABLES.PAS add card imlro_ct_aux and define it ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 22-23-FEB-1993 Philippe: MSU - modify LOG_SERVER.PAS Modify exception handler to return to a label before the link gets closed Move the test for a DUPLICATE_NAME status from the exception_handler to after the OPEN statement with already existing status checking. - modify MOD031_HANDLE_REMCONS.PAS remcons can reset the redirect_console flag TRUE after one minute of inactivity if this flag is found FALSE. This probably was set FLASE by another subprocess that timed out its 1s wait for the remote console semaphores. - modify MOD095_INIT_LSM.PAS create routine sum_zeresp to sum the zero energy response of a subrange of towers for a particular lookup type. Use this routine in fill_tree_offset. - modify MOD202_TST_MISC_UTIL.PAS remove examine_cat_operand routine (going to mod_handle_cat_cards) remove load_cat2_threshold routine (going to mod_handle_cat_cards) remove read_cat2_threshold routine (going to mod_handle_cat_cards) rename examine_cat_operand examine_cat2_operand - modify MOD105_HANDLE_CAT_CARDS.PAS add examine_cat2_operand routine (from mod_tst_misc_util) remove unused argument status change register argument from pointer to register number create examine_cat3_operand doing all byte shuffling add load_cat2_threshold routine (from mod_tst_misc_util) add read_cat2_threshold routine (from mod_tst_misc_util) - modify MOD203_TST_CALTRG_RANDOM.PAS update source module of imported cat cards routines update name of examine_cat2_operand - modify MOD206_TST_CTFE_PROMS.PAS update source module of imported cat cards routines update name of examine_cat2_operand ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 19-FEB-1993 Philippe: MSU - modify MOD033_HANDLE_CONSOLE.PAS lock remcons areas when init_console creates them quit and call edebug if there is any problem with console/remcons AREAS add status to all wait and signal on remcons areas - modify MOD031_HANDLE_REMCONS.PAS add status to all wait and signal on remcons areas stop redirecting to remcons and call edebug on error with remcons areas - modify MOD404_HANDLE_MONIT_POOL.PAS add exception handler (this will also make the process exit when signaled) - modify MPOOL_SERVER.PAS wait 5mn before starting (keep off Nina's mon and trgmon... while booting) - modify MOD263_SOFT_CONN_DISPATCH.PAS call tree_disp for TREE, ENG_TREE and CNT_TREE messages - create MOD241_TREE_DISPATCH.PAS dispatch tree messages - create MOD222_TREE_EXECUTE.PAS tree_cat2, read a CAT2 operand tree_cat3, read a CAT3 operand tree_eng_twr, read a CTFE ADC byte tree_eng_fe, read the output of a CTFE at input of T1 CAT2 tree_eng_t1, read the output of a T1 at input of T2 CAT2 tree_eng_t2, read the output of a T2 at input of T3 CAT2 tree_eng_t3, read the output of a T3 at input of IMLRO tree_eng_TOT, read the output of a T4 at input of IMLRO tree_mispt, read the output of a FMLN at input of IMLRO tree_cnt_twr, read the output of a CTFE at input of CHTCR tree_cnt_t1, read the output of a T1 at input of T2 CAT2 tree_cnt_t2, read the output of a T2 at input of T3 CAT2 tree_cnt_t3 read the output of a T3 at input of IMLR ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 18-FEB-1993 Philippe: MSU - modify MOD012_COMMON_GLOBAL_FLAGS.PAS move variable console_synch here to be accessible by mod_handle_remcons also add to the record the redirect_console flag and the remcons_message so that all jobs can know when the remote console is active and can pass the message to be displayed - modify MOD031_HANDLE_REMCONS.PAS update variable declarations related to console_synch replace remcons_ready and send_remcons SEMAPHORE with AREAS of zero length and remove their create_semaphore (going to mod_handle_console) and remove their delete in stop_remcons - modify MOD033_HANDLE_CONSOLE.PAS remove console_synch now exported from mod_common_global_flags update variable decalrations related to console_synch find_console_lock now also connects to the remcons AREAS (of zero length) - modify MOD037_HANDLE_TRACING.PAS update variable decalrations related to console_synch - modify MOD038_HANDLE_READ_INPUT.PAS update variable decalrations related to console_synch - modify TRICS_V40.DAT experience difficulty halting log_server job, set all jobs to warm debug - modify LOG_SERVER.PAS MOD041_HANDLE_MAIL.PAS (MAIL_SERVER) MPOOL_SEVRER.PAS use the exception mailbox routines in the exception handlers (new for mail_server that didn't have one) add a flush_to_file process to all these jobs allow logfile record buffering, since the files will periodically be closed by flush_to_file ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 15-17-FEB-1993 Philippe: MSU - modify MOD031_HANDLE_REMCONS.PAS Move a label so that the flush to file process calls stop_remcons after a failure to connect to open a connection (ELN_ACCON) Move the call to SIGNAL to be first in stop_remcons (instead of first deleting the port) to prevent the process to start displaying an error message when the call to signal comes. - modify MOD037_HANDLE_TRACING.PAS flush-> logfile: Force exception tracing mode back to false earlier in order to prevent sending more messages to the mailbox via handle_trc_sys replace the DO loop servicing mailbox msg with an explicit increment and test structure, thus catching more messages recorded while the first messages are being serviced. It seems that the call to DISABLE_SWITCH is not sufficient to prevent other processes in their exception handler to execute (e.g. flush to file would get started after an initial exception handler decides to resignal -- but this is now prevented see below --- and before the following exception handler gets a chance to do its part, thus losing 1/2 the messages) Remove the disable_switch will also allow the remote console to keep servicing messages while the mailbox is being emptied, instead of timing out. Add another functionality to the flush to file process: recover from a locked console area. The process waits for the console area with a 5s timeout. If the wait was satisfied by timeout, record a message in the exception message, unlock the console and wait again. If the wait was satisfied because the console was lock-able, then signal it and go on with servicing the exception mailbox, etc.. - modify MOD033_HANDLE_CONSOLE.PAS Use a constant for the one second timeout waiting for the remote console Export the area obj console_obj use WAIT_ANY and SIGNAL instead of LOCK_AREA and UNLOCK_AREA to synchronize to the screen access. That is because the 2 methods cannot be mixed. Flush to file must use wait_any to be able to specify a timeout. My understanding of lock_area is that it is a faster method for using areas, it only calls wait_any and signal in case of contention, and uses increment/decrement of a counter when there is no contention. The disadvantage is that one cannot use a time out. - modify MOD119_HANDLE_TRGTWR.PAS MOD205_TST_CTFE_FEND.PAS do not reset the exception tracing mode back to FALSE when resignaling. - modify MOD141_HANDLE_BEGIN_END_RUN.PAS add a status to the SIGNAL and WAIT_ANY of the main process to avoid infinite loop in and out of the interrupt handler. - modify MOD263_SOFT_CONN_DISPATCH.PAS MOD265_SOFT_CONN_CHANNEL.PAS add a status to the SIGNAL and WAIT_ANY of the main process remove stop_remcons from the exc handler, do not drop the remcons - exercize all possible exception handlers with the use of signal_process - verify that the time stamps of the messages in the mailbox is more recent than the message announcing the servicing of the mailbox - test ability to recover from exception tracing flag being left set using edebug: create a remot console, halt the process, set a breakpoint in the remcons exception handler, let the process go, type in the remcons window, cause TRICS to display any random new message, step past the line setting the tracing exception flag, wait 3mn for flush->file to wake up and notice the problem - test ability to overrun the mailbox same method as above, but have trics generate many messages inbetween ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~