SUBROUTINE DRAW_GLOBAL_L15 C---------------------------------------------------------------------- C- C- Purpose and Methods : Draw the foreground of the Level 1.5 Framework C- display. C- C- Inputs : Common block input C- Outputs : Screen output C- Controls: none C- C- Created 5-MAY-1992 Philippe Laurens, Steven Klocek C- C---------------------------------------------------------------------- IMPLICIT NONE INCLUDE 'LV1_MPOOL.PARAMS' INCLUDE 'LV1_MPOOL_DERIVED.INC' INCLUDE 'LV1_MPOOL_FORMATTED.INC' INCLUDE 'LV1_MON_SCREEN.INC' INCLUDE 'LV1_MON_SCREEN_LAYOUT.PARAMS' C CHARACTER*132 BUFFER INTEGER COUNT C CALL RESET_LIST C C Draw top portion of screen C CALL PUT_STRING(G15_DATE_L, G15_DATE_C, CURRENT_TIME) C IF (GLOB_L15_DATA.L15_RUNNING .EQV. .TRUE.) THEN CALL PUT_STRING(G15_L15_SWITCH_L, G15_L15_SWITCH_C, & '( for L1.5 Display)') ELSE CALL PUT_STRING(G15_L15_SWITCH_L, G15_L15_SWITCH_C, & ' ') ENDIF C CALL BUILD_REAL_STRING(GLOB_TRANSFER_RATE, 2, & BUFFER(1:G15_GL_TRANS_W) ) CALL PUT_STRING(G15_GL_TRANS_L, G15_GL_TRANS_C, & BUFFER(1:G15_GL_TRANS_W)) C IF (INFO_FRESH .EQV. .TRUE.) THEN CALL PUT_STRING(G15_MONIT_STATUS_L, G15_MONIT_STATUS_DB_C, & 'Fresh') ELSE CALL PUT_STRING(G15_MONIT_STATUS_L, G15_MONIT_STATUS_DB_C, & 'Stale') ENDIF C IF (FRAMEWORK_RUNNING .EQV. .TRUE.) THEN CALL PUT_STRING(G15_MONIT_STATUS_L, G15_MONIT_STATUS_L1_C, & 'Running') ELSE CALL PUT_STRING(G15_MONIT_STATUS_L, G15_MONIT_STATUS_L1_C, & 'Paused ') ENDIF C CALL BUILD_REAL_STRING(LV1_TRIGGER_RATE, 2, & BUFFER(1:G15_L1_RATE_W)) CALL PUT_STRING(G15_L1_RATE_L, G15_L1_RATE_C, & BUFFER(1:G15_L1_RATE_W)) C CALL BUILD_REAL_STRING(LV0_TRIGGER_RATE, 2, & BUFFER(1:G15_L0_RATE_W)) CALL PUT_STRING(G15_L0_RATE_L, G15_L0_RATE_c, & BUFFER(1:G15_L0_RATE_W)) C C Pure Level 1 Rate C CALL BUILD_REAL_STRING(GLOB_L15_DATA.GLOB_PURE_L1_FIRE_HZ, & 1, BUFFER(1:G15_PUREL1_HZ_W) ) CALL PUT_STRING(G15_PUREL1_RATE_L, G15_PUREL1_HZ_C, & BUFFER(1:G15_PUREL1_HZ_W) ) C CALL BUILD_PERCENT_STRING(GLOB_L15_DATA.GLOB_PURE_L1_FIRE_PCT, & 1, BUFFER(1:G15_PUREL1_PCT_W) ) CALL PUT_STRING(G15_PUREL1_RATE_L, G15_PUREL1_PCT_C, & BUFFER(1:G15_PUREL1_PCT_W) ) C C Potential Rate into L 1.5 C CALL BUILD_REAL_STRING(GLOB_L15_DATA.GLOB_POTEN_L15_HZ, 1, & BUFFER(1:G15_POTENT_RATE_W) ) CALL PUT_STRING(G15_POTENT_RATE_L, G15_POTENT_RATE_C, & BUFFER(1:G15_POTENT_RATE_W) ) C C L1.5 input rate C CALL BUILD_REAL_STRING(GLOB_L15_DATA.GLOB_L15_INPUT_HZ, 1, & BUFFER(1:G15_L15_INPUT_HZ_W) ) CALL PUT_STRING(G15_L15_INPUT_L, G15_L15_INPUT_HZ_C, & BUFFER(1:G15_L15_INPUT_HZ_W) ) C CALL BUILD_PERCENT_STRING(GLOB_L15_DATA.GLOB_L15_INPUT_PCT, 1, & BUFFER(1:G15_L15_INPUT_PCT_W) ) CALL PUT_STRING(G15_L15_INPUT_L, G15_L15_INPUT_PCT_C, & BUFFER(1:G15_L15_INPUT_PCT_W) ) C C L1.5 skip rate C CALL BUILD_REAL_STRING(GLOB_L15_DATA.GLOB_L15_SKIP_HZ, 1, & BUFFER(1:G15_L15_SKIP_HZ_W) ) CALL PUT_STRING(G15_L15_SKIP_L, G15_L15_SKIP_HZ_C, & BUFFER(1:G15_L15_SKIP_HZ_W) ) C CALL BUILD_PERCENT_STRING(GLOB_L15_DATA.GLOB_L15_SKIP_PCT, 1, & BUFFER(1:G15_L15_SKIP_PCT_W) ) CALL PUT_STRING(G15_L15_SKIP_L, G15_L15_SKIP_PCT_C, & BUFFER(1:G15_L15_SKIP_PCT_W) ) C C L1.5 confirm rate C CALL BUILD_REAL_STRING(GLOB_L15_DATA.GLOB_L15_CONFIRM_HZ, 1, & BUFFER(1:G15_L15_CONF_HZ_W) ) CALL PUT_STRING(G15_L15_CONF_L, G15_L15_CONF_HZ_C, & BUFFER(1:G15_L15_CONF_HZ_W) ) C CALL BUILD_PERCENT_STRING(GLOB_L15_DATA.GLOB_L15_CONFIRM_PCT, 1, & BUFFER(1:G15_L15_CONF_PCT_W) ) CALL PUT_STRING(G15_L15_CONF_L, G15_L15_CONF_PCT_C, & BUFFER(1:G15_L15_CONF_PCT_W) ) C C L1.5 reject rate C CALL BUILD_REAL_STRING(GLOB_L15_DATA.GLOB_L15_REJECT_HZ, 1, & BUFFER(1:G15_L15_REJ_HZ_W) ) CALL PUT_STRING(G15_L15_REJ_L, G15_L15_REJ_HZ_C, & BUFFER(1:G15_L15_REJ_HZ_W) ) C CALL BUILD_PERCENT_STRING(GLOB_L15_DATA.GLOB_L15_REJECT_PCT, 1, & BUFFER(1:G15_L15_REJ_PCT_W) ) CALL PUT_STRING(G15_L15_REJ_L, G15_L15_REJ_PCT_C, & BUFFER(1:G15_L15_REJ_PCT_W) ) C C Dead beam crossing C CALL BUILD_PERCENT_STRING(GLOB_L15_DATA.GLOB_DEAD_BEAM_X_PCT, 1, & BUFFER(1:G15_DEAD_BEAMX_W) ) CALL PUT_STRING(G15_DEAD_BEAMX_L, G15_DEAD_BEAMX_C, & BUFFER(1:G15_DEAD_BEAMX_W) ) C C Timeout C CALL BUILD_PERCENT_STRING(GLOB_L15_DATA.GLOB_L15_TIMEOUT_PCT, 1, & BUFFER(1:G15_TIMEOUT_W) ) CALL PUT_STRING(G15_TIMEOUT_L, G15_TIMEOUT_C, & BUFFER(1:G15_TIMEOUT_W) ) C C Per Specific Trigger info C DO COUNT = TRG_NUM_MIN, TRG_NUM_MAX IF (TRIGGER_DATA(COUNT).ALLOCATED) THEN BUFFER = ' | | = | | ' & // ' | | | | |' C CALL INTTOSTR( COUNT, BUFFER(G15_ST_NUM_C:G15_ST_NUM_E), 1) C CALL BUILD_REAL_STRING( SPTRG_FIRE_RATE(COUNT), 2, & BUFFER(G15_ST_L1_HZ_C:G15_ST_L1_HZ_E)) C CALL BUILD_REAL_STRING( TRIGGER_DATA(COUNT).L15_INPUT_HZ, 2, & BUFFER(G15_ST_L15_INP_HZ_C:G15_ST_L15_INP_HZ_E) ) C CALL BUILD_PERCENT_STRING( TRIGGER_DATA(COUNT).L15_INPUT_PCT, & 1, BUFFER(G15_ST_L15_INP_PCT_C:G15_ST_L15_INP_PCT_E) ) C CALL BUILD_PERCENT_STRING( TRIGGER_DATA(COUNT).L15_SKIP_PCT, & 1, BUFFER(G15_ST_L15_SKIP_C:G15_ST_L15_SKIP_E) ) C CALL BUILD_REAL_STRING( TRIGGER_DATA(COUNT).L15_CONFIRM_HZ, & 2, BUFFER(G15_ST_L15_CONF_C:G15_ST_L15_CONF_E) ) C CALL BUILD_PERCENT_STRING( & TRIGGER_DATA(COUNT).ST_L15_REJECT_PCT, & 2, BUFFER(G15_ST_L15_REJ_C:G15_ST_L15_REJ_E) ) C CALL BUILD_PERCENT_STRING( TRIGGER_DATA(COUNT).L15_DEADX_PCT, & 2, BUFFER(G15_ST_DEADX_C:G15_ST_DEADX_E) ) C CALL BUILD_PERCENT_STRING( & TRIGGER_DATA(COUNT).L15_TIMEOUT_PCT, & 2, BUFFER(G15_ST_TIMOUT_PCT_C:G15_ST_TIMOUT_PCT_E) ) C CALL INTTOSTR( TRIGGER_DATA(COUNT).L15_TIMEOUT_CNT, & BUFFER(G15_ST_TIMOUT_CNT_C:G15_ST_TIMOUT_CNT_E), 1) C CALL INTTOSTR( TRIGGER_DATA(COUNT).NUM_L15_TERM, & BUFFER(G15_ST_TERM_C:G15_ST_TERM_E), 1) C IF (TRIGGER_DATA(COUNT).IS_L15 .EQV. .TRUE.) THEN BUFFER(G15_ST_ISL15_C:G15_ST_ISL15_E) = 'L1.5' ENDIF C IF (TRIGGER_DATA(COUNT).GLOBV_PROG .EQV. .TRUE.) THEN BUFFER(G15_ST_ISDSBL_C:G15_ST_ISDSBL_E) = 'Disbl' ENDIF C CALL PUT_STRING(PS_LIST, 0, BUFFER(1:G15_ST_ISDSBL_E)) C ENDIF C END DO C CALL PUT_LIST(G15_LIST_START_L, 1) C CALL MOVE_CURSOR_SAFE CALL FLUSH_SCREEN C---------------------------------------------------------------------- 999 RETURN END