Last active
February 12, 2024 17:45
-
-
Save ColanderCombo/3b28cc7c934c801ee5b37db8152a01a6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| C RECONSTRUCTED CODE: This source code was reconstructed from historical | |
| C specifications and may not reflect the content of actual flight | |
| C software. | |
| C | |
| C IBM-79-SS-4095/p.39 | |
| C | |
| C*********************************************************************** | |
| C** ** | |
| C** | |
| C** 3.2 Operational Sequences | |
| C** 3.2.1 Orbit/Doors (OPS 2) Control Segment (SM2_OPS) ** | |
| C** ** | |
| C*********************************************************************** | |
| C | |
| C | |
| D INCLUDE TEMPLATE CZ1_COMMON /* System Servuces Common Compool */ | |
| D INCLUDE TEMPLATE DIS_PLAY /* UI external procedure used by */ | |
| /* the grammar macros (Display Pres- */ | |
| /* entation and Control) */ | |
| D INCLUDE TEMPLATE DNX_BMS /* Application_Moding_And_Sequencing */ | |
| D INCLUDE TEMPLATE SDA_DATA_ACQ /* Data Acquisition */ | |
| D INCLUDE TEMPLATE SPM_CONTROL /* Performance Monitor Control */ | |
| D INCLUDE TEMPLATE SSP_EXEC /* Special Processes Executive */ | |
| D INCLUDE TEMPLATE SAM_ITEM /* AM Item Processor */ | |
| D INCLUDE TEMPLATE SBD_ITEM /* PBD Item Processor */ | |
| D INCLUDE TEMPLATE S21_CLNUP /* OPS 2 Initialization/Cleanup */ | |
| D INCLUDE TEMPLATE SUL_UPLINK /* Uplink Processor */ | |
| D INCLUDE TEMPLATE REX_RMSEXEC /* RMS Executive */ | |
| D INCLUDE DAG#RAM /* Common grammar macro set. */ | |
| D INCLUDE DBG#RAM /* OPS Control Segment grammar macro set. */ | |
| D INCLUDE DDG#RAM /* Allows references to MCDs keyboard inputs. */ | |
| D INCLUDE OPSCMACS /* Contains FCOS OPS Cancel macros. */ | |
| D INCLUDE ZPRIOTIM /* Contains REPLACE names for baseline | |
| priorities, phasing and rates of | |
| scheduled processes (ref. SAM 10) */ | |
| SM2_OPS: PROGRAM; | |
| CALL S2I_CLNUP(1,D_DEU_NUMBER); | |
| SCHEDULE SDA_DATA_ACQ | |
| AT PHASE_SDA | |
| PRIORITY (PRIO_SDA) | |
| REPEAT EVERY TIME_SDA; | |
| SCHEDULE SPM_CONTROL | |
| PRIORITY (PRIO_SPM); | |
| SCHEDULE SSP_EXEC | |
| AT PHASE_SSP | |
| PRIORITY (PRIO_SSP) | |
| REPEAT EVERY TIME_SSP; | |
| SCHEDULE SUL_UPLINK | |
| PRIORITY (PRIO_SUL); | |
| OPS(2, NO_AUTO_ADVANCE); /* SM Orbit/Door OPS */ | |
| MODE(201, NO_AUTO_ADVANCE); /* Orbit Mode */ | |
| INIT_BLOCK(2010,NO_AUTO_ADVANCE) | |
| CALL S2I_CLNUP(2,D_DEU_NUMBER); | |
| DISPLAY(2011); /* Antenna Management */ | |
| IF KEY=ITEM_ENTRY THEN CALL SAM_ITEM(D_IND); | |
| MODE_CLEAN_UP(201); | |
| CALL S2I_CLNUP(3,D_DEU_NUMBER); | |
| MODE_END(201, CLEAN_UP_MODE); | |
| MODE(202, NO_AUTO_ADVANCE); /* PBD Operations Mode */ | |
| INIT_BLOCK(2020,NO_AUTO_ADVANCE) | |
| CALL S2I_CLNUP(4,D_DEU_NUMBER); | |
| DISPLAY(2021); /* PL Bay Doors */ | |
| IF KEY=ITEM_ENTRY THEN CALL SBD_ITEM(D_IND); | |
| MODE_CLEAN_UP(202); | |
| CALL S2I_CLNUP(4,D_DEU_NUMBER); | |
| MODE_END(202, CLEAN_UP_MODE); | |
| OPS_CLEAN_UP; | |
| CANCEL SDA_DATA_ACQ; | |
| CANCEL SSP_EXEC; | |
| CANCEL REX_RMSEXEC; | |
| CALL S2I_CLNUP(6,D_DEU_NUMBER); | |
| OPS_END(CLEAN_UP_OPS); | |
| CLOSE SM2_OPS; | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| C RECONSTRUCTED CODE: This source code was reconstructed from historical | |
| C specifications and may not reflect the content of actual flight | |
| C software. | |
| C | |
| C | |
| C IBM-79-SS-4095/p.206 | |
| C IBM-79-SS-4095/p.932 | |
| C | |
| C*********************************************************************** | |
| C** ** | |
| C** 3.2.1.20 Payload Bay Doors ** | |
| C** ** | |
| C*********************************************************************** | |
| C | |
| D INCLUDE TEMPLATE CSS_COT | |
| D INCLUDE TEMPLATE CSS_SPINB | |
| D INCLUDE TEMPLATE CSS_SPOB | |
| D INCLUDE TEMPLATE CSS_SP_CMT | |
| D INCLUDE TEMPLATE CSB_PBD_CMT | |
| D INCLUDE OPSTMACS | |
| D INCLUDE TEMPLATE SSO_SP_DATA_OUT | |
| C | |
| SSB_PL_BAY_DOORS: PROCEDURE; | |
| DECLARE SSB_CURRENT_LATCH_DOOR_POINTER INTEGER; | |
| C ITEM-Current Latch Groups/Door Pointer | |
| C DESC-A pointer to the latch group or door | |
| C currently being processed during an | |
| C auto sequence | |
| C ID-#189 | |
| DECLARE SSB_PREVIOUS_SWITCH_POS INTEGER; | |
| C ITEM-Previous Switch Position | |
| C DESC-An indicator used in Auto Mode processing | |
| C that indicates the position of the PBD | |
| C Control Switch during the previous | |
| C execution 1 = Opne, 2 = close, 0 = stop | |
| C ID-#190 | |
| DECLARE SSB_OPEN_CLOSE_FEEDBACK_INDIC BOOLEAN; | |
| C ITEM-Open/Close Feedback Indicator | |
| C DESC-An indicator that is set on when the | |
| C latch group or door that is currently | |
| C being processed becomes open or closed. | |
| C ID-#191 | |
| DECLARE SSB_SWITCH_OPEN_INDICATOR BOOLEAN; | |
| C ITEM-Switch Open Indicator | |
| C DESC-An intermediate value used in PBD switch | |
| C position determination that contains the | |
| C status of the PBD open feedback | |
| C discretes. | |
| C ID-#192 | |
| DECLARE SSB_SWITCH_CLOSE_INDICATOR BOOLEAN; | |
| C ITEM-Switch Close Indicator | |
| C DESC-An intermediate value used in PBD switch | |
| C position determination that contains the | |
| C status of the PBD close feedback | |
| C discretes. | |
| C ID-#193 | |
| DECLARE SSB_LATCH_DOOR_INPUT_PARM_1 BOOLEAN; | |
| C ITEM-Latch/Door Input Parameter 1 | |
| C DESC-An input parameter to PBD latch status | |
| C and PBD door status used as a common | |
| C input for each latch group and door | |
| C ID-#194 | |
| DECLARE SSB_LATCH_DOOR_INPUT_PARM_2 BOOLEAN; | |
| C ITEM-Latch/Door Input Parameter 2 | |
| C DESC-See above description for PARM 1. | |
| C ID-#195 | |
| DECLARE SSB_LATCH_DOOR_INPUT_PARM_3 BOOLEAN; | |
| C ITEM-Latch/Door Input Parameter 3 | |
| C DESC-See above description for PARM 1. | |
| C ID-#196 | |
| DECLARE SSB_LATCH_DOOR_INPUT_PARM_4 BOOLEAN; | |
| C ITEM-Latch/Door Input Parameter 4 | |
| C DESC-See above description for PARM 1. | |
| C ID-#197 | |
| DECLARE SSB_LATCH_COMPUTED_VALUE CHARACTER(2); | |
| C ITEM-Latch Computed Value | |
| C DESC-The output value resulting from a call | |
| C to PBD latch status that contains the | |
| C text for the status of the latch group | |
| C currently being processed. | |
| C ID-#198 | |
| DECLARE SSB_DOOR_COMPUTED_VALUE CHARACTER(3); | |
| C ITEM-Door Computed value | |
| C DESC-The output value resulting from a call | |
| C to PBD Door status that contains the | |
| C text for that status of the door | |
| C currently being processed. | |
| C ID-#199 | |
| DECLARE SSB_LATCH_DOOR_EXPIR_TIME SCALAR; | |
| C ITEM-Current Latch Groups/Door Exper. Time | |
| C DESC-Computed time that the latch group or | |
| C door currently being processed is assumed | |
| C to have failed to open or close if proper | |
| C feedback signals are not received. | |
| C ID-#200 | |
| DECLARE SSB_COMMANDS_ENABLED_ARRAY ARRAY(6,2) INTEGER; | |
| C ITEM-Commands Enabled Array | |
| C DESC-An array that contains the status of | |
| C commands enabled during an auto open | |
| C or close sequence. | |
| C ID-#201 | |
| DECLARE SSB_SSB_PBD_MORE_WORK_IND BOOLEAN; | |
| C ITEM-PBD More Work Indicator | |
| C DESC-An indicator used to alert auto sequence | |
| C processing as to whether additional work | |
| C can be done during this execution. | |
| C ID-#202 | |
| DECLARE SSB_TIMER_CONSTANTS_ARRY ARRAY(6) SCALAR | |
| CONSTANT(40, 40, 60, 126, 60, 126); | |
| C ITEM-Timer Constants Array | |
| C DESC-An array of values which represent each | |
| C latch group and door's maximum time | |
| C allowed to open or close during an | |
| C auto sequence. | |
| C ID-#203 | |
| DECLARE SSB_OPEN_CLOSE_COMPLETE INTEGER; | |
| C ITEM-OPEN/CLOSE Complete Ind. | |
| C DESC-An indicator Set to Indicate When The | |
| C Latch Groups And Doors Are Fully Closed | |
| C | |
| C 1 = Fully Open | |
| C 2 = Fully Closed | |
| C 3 = None Of The Above | |
| C ID-#205 | |
| DECLARE SSB_SSB_POWER_DISABLE_IND BOOLEAN; | |
| C ITEM-Power Disable Ind. | |
| C DESC-An Indicator Set When a Power Off Request | |
| C is Processed To Alert PBD Cyclic To Turn | |
| C Off the Reset Masks For The Power | |
| C Enable/Disable 'B' Commands On the Next | |
| C Execution. | |
| C ID-#206 | |
| C | |
| SSB_CONTROL_SWITCH_POSITION_DETERMINATION: | |
| PROCEDURE; | |
| REPLACE V72K3222Y BY "CSBB_PF01_INPUT_1$(8)"; | |
| REPLACE V72K3221Y BY "CSBB_PF01_INPUT_2$(8)"; | |
| REPLACE V72K3223Y BY "CSBB_PF02_INPUT_2$(8)"; | |
| REPLACE V72K3220Y BY "CSBB_PF02_INPUT_1$(8)"; | |
| REPLACE V72K3232Y BY "CSBB_PF01_INPUT_1$(9)"; | |
| REPLACE V72K3231Y BY "CSBB_PF01_INPUT_2$(9)"; | |
| REPLACE V72K3233Y BY "CSBB_PF02_INPUT_2$(9)"; | |
| REPLACE V72K3230Y BY "CSBB_PF02_INPUT_1$(9)"; | |
| SSB_SWITCH_OPEN_INDICATOR = ( | |
| (V72K3222Y AND V72K3221Y) | |
| OR (V72K3222Y AND V72K3223Y) | |
| OR (V72K3222Y AND V72K3220Y) | |
| OR (V72K3221Y AND V72K3220Y) | |
| OR (V72K3223Y AND V72K3220Y)) | |
| AND ( | |
| (NOT V72K3232Y AND NOT V72K3231Y) | |
| OR (NOT V72K3232Y AND NOT V72K3233Y) | |
| OR (NOT V72K3232Y AND NOT V72K3230Y) | |
| OR (NOT V72K3231Y AND NOT V72K3230Y) | |
| OR (NOT V72K3233Y AND NOT V72K3230Y) ); | |
| SSB_SWITCH_CLOSE_INDICATOR = ( | |
| (NOT V72K3222Y AND NOT V72K3221Y) | |
| OR (NOT V72K3222Y AND NOT V72K3223Y) | |
| OR (NOT V72K3222Y AND NOT V72K3220Y) | |
| OR (NOT V72K3221Y AND NOT V72K3220Y) | |
| OR (NOT V72K3223Y AND NOT V72K3220Y)) | |
| AND ( | |
| (V72K3232Y AND V72K3231Y) | |
| OR (V72K3232Y AND V72K3233Y) | |
| OR (V72K3232Y AND V72K3230Y) | |
| OR (V72K3231Y AND V72K3230Y) | |
| OR (V72K3233Y AND V72K3230Y) ); | |
| IF SSB_SWITCH_OPEN_INDICATOR = ON | |
| THEN | |
| DO; | |
| IF SSB_SWITCH_CLOSE_INDICATOR = ON | |
| THEN DO; | |
| CSBB_CONTROL_SWITCH_POS_INDIC = 0; /* Stop */ | |
| CSBB_PBD_SWITCH_IND_TEXT = 'FAIL'; | |
| END; ELSE DO; | |
| CSBB_CONTROL_SWITCH_POS_INDIC = 1; /* Open */ | |
| CSBB_PBD_SWITCH_IND_TEXT = 'OP '; | |
| END; | |
| END; | |
| ELSE IF SSB_SWITCH_CLOSE_INDICATOR = ON | |
| THEN DO; | |
| CSBB_CONTROL_SWITCH_POS_INDIC = 2; /* Close */ | |
| CSBB_PBD_SWITCH_IND_TEXT = 'CL '; | |
| END; ELSE DO; | |
| CSBB_CONTROL_SWITCH_POS_INDIC = 0; /* Stop */ | |
| CSBB_PBD_SWITCH_IND_TEXT = 'STOP'; | |
| END; | |
| IF CSBB_SWITCH_BYPASS_ITEM = ON | |
| THEN IF CSBB_PBD_STOP_ITEM = ON | |
| THEN CSBB_CONTROL_SWITCH_POS_INDIC = 0; /* Stop */ | |
| ELSE IF CSBB_PBD_OPEN_ITEM = ON | |
| THEN CSBB_CONTROL_SWITCH_POS_INDIC = 1; /* Open */ | |
| ELSE CSBB_CONTROL_SWITCH_POS_INDIC = 2; /* Close */ | |
| /* Check control switch feedback discretes for validity: */ | |
| IF (CSSV_INSTAT_D100300 = ON) OR | |
| (CSSV_INSTAT_D100600 = ON) OR | |
| (CSSV_INSTAT_D120300 = ON) OR | |
| (CSSV_INSTAT_D1206002 = ON) | |
| THEN CSBB_PBD_SW_OUT_STAT = ON; /* Invalid */ | |
| ELSE CSBB_PBD_SW_OUT_STAT = OFF; /* Valid */ | |
| CLOSE SSB_CONTROL_SWITCH_POSITION_DET; | |
| SSB_MODE_SELECTION: | |
| PROCEDURE; | |
| IF CSBB_AUTO_MODE_ITEM = ON | |
| THEN CALL SSB_AUTO_MODE_SELECT; | |
| ELSE IF CSBB_MANUAL_MODE_ITEMS != 0 | |
| THEN CALL SSB_MANUAL_MODE_SELECT; | |
| SSB_PREVIOUS_SWITCH_POS = 0; /* Stop Position */ | |
| CLOSE SSB_MODE_SELECTION; | |
| SSB_AUTO_MODE_SELECT: | |
| PROCEDURE; | |
| IF CSBB_AUTO_MODE_FLAG = ON | |
| THEN DO; | |
| IF SSB_CURRENT_LATCH_DOOR_POINTER != 0 | |
| AND SSB_PREVIOUS_SWITCH_POS != 0 /* Stop */ | |
| THEN DO; | |
| CALL SSB_DISABLE_UNVERIFIED_COMMANDS; | |
| END; | |
| END; ELSE DO; | |
| IF CSBB_MANUAL_MODE_FLAG = ON | |
| THEN DO; | |
| CALL SSB_DISABLE_COMMANDS; | |
| CSBB_MANUAL_MODE_FLAG = OFF; | |
| END; | |
| CSBB_AUTO_MODE_FLAG = ON; | |
| CSBB_OPEN_FAIL_INDICATOR = 0; | |
| CSBB_CLOSE_FAIL_INDICATOR = 0; | |
| CSBB_COMMON_PBD_FAIL_INDICATOR = OFF; | |
| SSB_CURRENT_LATCH_DOOR_POINTER = 0; | |
| CSBB_PBD_OUTPUT_INDICATOR = ON; | |
| END; | |
| CLOSE SSB_AUTO_MODE_SELECT; | |
| SSB_MANUAL_MODE_SELECT: | |
| PROCEDURE; | |
| IF CSBB_MANUAL_MODE_FLAG = ON | |
| THEN DO; | |
| IF SSB_PREVIOUS_SWITCH_POS != 0 /* Stop */ | |
| THEN DO; | |
| CALL SSB_DISABLE_COMMANDS; | |
| END; | |
| END; ELSE DO; | |
| IF CSBB_AUTO_MODE_FLAG = ON | |
| THEN DO; | |
| CALL SSB_DISABLE_COMMANDS; | |
| CSBB_AUTO_MODE_FLAG = OFF; | |
| END; | |
| CSBB_MANUAL_MODE_FLAG = ON; | |
| CSBB_OPEN_FAIL_INDICATOR = 0; | |
| CSBB_CLOSE_FAIL_INDICATOR = 0; | |
| CSBB_COMMON_PBD_FAIL_INDICATOR = OFF; | |
| CSBB_PBD_OUTPUT_INDICATOR = ON; | |
| END; | |
| CLOSE SSB_MANUAL_MODE_SELECT; | |
| SSB_DISABLE_UNVERIFIED_COMMANDS: | |
| PROCEDURE; | |
| IF SSB_PREVIOUS_SWITCH_POS = 1 /* Open */ | |
| THEN CALL SSB_DISABLE_UNVERIFIED_OPEN_COMMANDS; | |
| ELSE CALL SSB_DISABLE_UNVERIFIED_CLOSE_COMMANDS; | |
| SSB_COMMANDS_ENABLED_ARRAY$(SSB_CURRENT_LATCH_DOOR_POINTER,SSB_PREVIOUS_SWITCH_POS) = OFF; | |
| CSBB_PBD_OUTPUT_INDICATOR = ON; | |
| CLOSE SSB_DISABLE_UNVERIFIED_COMMANDS; | |
| SSB_DISABLE_UNVERIFIED_OPEN_COMMANDS: | |
| PROCEDURE; | |
| DO CASE SSB_CURRENT_LATCH_DOOR_POINTER; | |
| C 1: Centerline Latch Groups 5-8, 9-12 | |
| DO; | |
| IF (V37X3390Y AND V37X3391Y) = FALSE | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$(5) = OFF; /* 5-8 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(5) = OFF; /* 5-8 OPEN 2 */ | |
| END; | |
| IF (V37X3405Y AND V37X3406Y) = FALSE | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$(7) = OFF; /* 9-12 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(7) = OFF; /* 9-12 OPEN 2 */ | |
| END; | |
| END; | |
| C 2: Centerline Latch Groups 1-4, 13-16 | |
| DO; | |
| IF (V37X3380Y AND V37X3381Y) = FALSE | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$(3) = OFF; /* 1-4 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(3) = OFF; /* 1-4 OPEN 2 */ | |
| END; | |
| IF (V37X3415Y AND V37X3416Y) = FALSE | |
| THEN DO; | |
| CSBB_PF02_OUTPUT_2$(9) = OFF; /* 13-16 OPEN 1 */ | |
| CSBB_PF01_OUTPUT_2$(9) = OFF; /* 13-16 OPEN 2 */ | |
| END; | |
| END; | |
| C 3: Right FWD BHD Latch Group/Right AFT BHD Latch Group | |
| DO; | |
| IF (V37X3430Y AND V37X3431Y) = FALSE | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_1$(3) = OFF; /* RFWD BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_1$(3) = OFF; /* RFWD BHD OPEN 2 */ | |
| END; | |
| IF (V37X3450Y AND V37X3451Y) = FALSE | |
| THEN DO; | |
| CSBB_PF02_OUTPUT_1$(5) = OFF; /* RAFT BHD OPEN 1 */ | |
| CSBB_PF01_OUTPUT_1$(5) = OFF; /* RAFT BHD OPEN 2 */ | |
| END; | |
| END; | |
| C 4: PBD Right Door Panel | |
| DO; | |
| CSBB_PF01_OUTPUT_1$(1) = OFF; /* Right Door OPEN 1 */ | |
| CSBB_PF02_OUTPUT_1$(1) = OFF; /* Right Door OPEN 2 */ | |
| END; | |
| C 5: Left FWD BHD Latch Group/Left AFT PHD Latch Group | |
| DO; | |
| IF (V37X3320Y AND V37X3321Y) = FALSE | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_3$(3) = OFF; /* LFWD BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_3$(3) = OFF; /* LFWD BHD OPEN 2 */ | |
| END; | |
| IF (V37X3350Y AND V37X3351Y) = FALSE | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_3$(5) = OFF; /* LAFT BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_3$(5) = OFF; /* LAFT BHD OPEN 2 */ | |
| END; | |
| END; | |
| C 6: PBD Left Door Panel | |
| DO; | |
| CSBB_PF02_OUTPUT_3$(1) = OFF; /* Left Door OPEN 1 */ | |
| CSBB_PF01_OUTPUT_3$(1) = OFF; /* Left Door OPEN 2 */ | |
| END; | |
| END; | |
| CLOSE SSB_DISABLE_UNFERIFIED_OPEN_COMMANDS; | |
| SSB_DISABLE_UNVERIFIED_CLOSE_COMMANDS: | |
| PROCEDURE; | |
| DO CASE SSB_CURRENT_LATCH_DOOR_POINTER; | |
| C 1: Centerline Latch Groups 5-8, 9-12 | |
| DO; | |
| IF (V37X3395Y AND V37X3396Y) = FALSE | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$(6) = OFF; /* 5-8 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(6) = OFF; /* 5-8 CLOSE 2 */ | |
| END; | |
| IF (V37X3400Y AND V37X3401Y) = FALSE | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$(8) = OFF; /* 9-12 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(8) = OFF; /* 9-12 CLOSE 2 */ | |
| END; | |
| END; | |
| C 2: Centerline Latch Groups 1-4, 13-16 | |
| DO; | |
| IF (V37X3385Y AND V37X3386Y) = FALSE | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$(4) = OFF; /* 1-4 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(4) = OFF; /* 1-4 CLOSE 2 */ | |
| END; | |
| IF (V37X3410Y AND V37X3411Y) = FALSE | |
| THEN DO; | |
| CSBB_PF02_OUTPUT_2$(10) = OFF; /* 13-16 CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_2$(10) = OFF; /* 13-16 CLOSE 2 */ | |
| END; | |
| END; | |
| C 3: Right FWD BHD Latch Group/Right AFT BHD Latch Group | |
| DO; | |
| IF (V37X3440Y AND V37X3441Y) = FALSE | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_1$(4) = OFF; /* RFWD BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_1$(4) = OFF; /* RFWD BHD CLOSE 2 */ | |
| END; | |
| IF (V37X3460Y AND V37X3461Y) = FALSE | |
| THEN DO; | |
| CSBB_PF02_OUTPUT_1$(6) = OFF; /* RAFT BHD CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_1$(6) = OFF; /* RAFT BHD CLOSE 2 */ | |
| END; | |
| END; | |
| C 4: PBD Right Door Panel | |
| DO; | |
| CSBB_PF01_OUTPUT_1$(2) = OFF; /* Right Door CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_1$(2) = OFF; /* Right Door CLOSE 2 */ | |
| END; | |
| C 5: Left FWD BHD Latch Group/Left AFT PHD Latch Group | |
| DO; | |
| IF (V37X3330Y AND V37X3331Y) = FALSE | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_3$(4) = OFF; /* LFWD BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_3$(4) = OFF; /* LFWD BHD CLOSE 2 */ | |
| END; | |
| IF (V37X3360Y AND V37X3361Y) = FALSE | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_3$(6) = OFF; /* LAFT BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_3$(6) = OFF; /* LAFT BHD CLOSE 2 */ | |
| END; | |
| END; | |
| C 6: LBD Left Door Panel | |
| DO; | |
| CSBB_PF02_OUTPUT_3$(2) = OFF; /* Left Door CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_3$(2) = OFF; /* Left Door CLOSE 2 */ | |
| END; | |
| END; | |
| CLOSE SSB_DISABLE_UNFERIFIED_CLOSE_COMMANDS; | |
| SSB_DISABLE_COMMANDS: | |
| PROCEDURE; | |
| CSBB_PF01_OUTPUT_2$(5) = OFF; /* 5-8 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(5) = OFF; /* 5-8 OPEN 2 */ | |
| CSBB_PF01_OUTPUT_2$(7) = OFF; /* 9-12 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(7) = OFF; /* 9-12 OPEN 2 */ | |
| CSBB_PF01_OUTPUT_2$(3) = OFF; /* 1-4 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(3) = OFF; /* 1-4 OPEN 2 */ | |
| CSBB_PF02_OUTPUT_2$(9) = OFF; /* 13-16 OPEN 1 */ | |
| CSBB_PF01_OUTPUT_2$(9) = OFF; /* 13-16 OPEN 2 */ | |
| CSBB_PF01_OUTPUT_1$(3) = OFF; /* RFWD BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_1$(3) = OFF; /* RFWD BHD OPEN 2 */ | |
| CSBB_PF02_OUTPUT_1$(5) = OFF; /* RAFT BHD OPEN 1 */ | |
| CSBB_PF01_OUTPUT_1$(5) = OFF; /* RAFT BHD OPEN 2 */ | |
| CSBB_PF01_OUTPUT_1$(1) = OFF; /* Right Door OPEN 1 */ | |
| CSBB_PF02_OUTPUT_1$(1) = OFF; /* Right Door OPEN 2 */ | |
| CSBB_PF01_OUTPUT_3$(3) = OFF; /* LFWD BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_3$(3) = OFF; /* LFWD BHD OPEN 2 */ | |
| CSBB_PF01_OUTPUT_3$(5) = OFF; /* LAFT BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_3$(5) = OFF; /* LAFT BHD OPEN 2 */ | |
| CSBB_PF02_OUTPUT_3$(1) = OFF; /* Left Door OPEN 1 */ | |
| CSBB_PF01_OUTPUT_3$(1) = OFF; /* Left Door OPEN 2 */ | |
| CSBB_PF01_OUTPUT_2$(6) = OFF; /* 5-8 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(6) = OFF; /* 5-8 CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_2$(8) = OFF; /* 9-12 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(8) = OFF; /* 9-12 CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_2$(4) = OFF; /* 1-4 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(4) = OFF; /* 1-4 CLOSE 2 */ | |
| CSBB_PF02_OUTPUT_2$(10) = OFF; /* 13-16 CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_2$(10) = OFF; /* 13-16 CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_1$(4) = OFF; /* RFWD BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_1$(4) = OFF; /* RFWD BHD CLOSE 2 */ | |
| CSBB_PF02_OUTPUT_1$(6) = OFF; /* RAFT BHD CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_1$(6) = OFF; /* RAFT BHD CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_1$(2) = OFF; /* Right Door CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_1$(2) = OFF; /* Right Door CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_3$(4) = OFF; /* LFWD BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_3$(4) = OFF; /* LFWD BHD CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_3$(6) = OFF; /* LAFT BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_3$(6) = OFF; /* LAFT BHD CLOSE 2 */ | |
| CSBB_PF02_OUTPUT_3$(2) = OFF; /* Left Door CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_3$(2) = OFF; /* Left Door CLOSE 2 */ | |
| SSB_COMMANDS_ENABLED_ARRAY$(*,*) = 0; | |
| CSBB_PBD_OUTPUT_INDICATOR = ON; | |
| CLOSE SSB_DISABLE_COMMANDS; | |
| SSB_CRT_FEEDBACK_DISPLAY: | |
| PROCEDURE; | |
| CALL SSB_CENTERLINE_LATCH_FEEDBACK_DISPLAY; | |
| CALL SSB_RIGHT_BHD_LATCH_AND_DOOR_FEEDBACK_DISPLAY; | |
| CALL SSB_LEFT_BHD_LATCH_AND_DOOR_FEEDBACK_DISPLAY; | |
| CSBB_LATCH_DOOR_OUT_STAT = HEX'0000'; /* Valid */ | |
| /* If any input discrete parent word statuses are set, | |
| set appropriate output statuses: | |
| */ | |
| IF CSSV_SPINB_D100300 = ON | |
| THEN DO; | |
| /* PF01_INPUT_1: Right FWD/AFT, Right Door */ | |
| CSBB_LATCH_DOOR_OUT_STAT$(5 TO 7) = BIN'111'; /* Invalid */ | |
| END; | |
| IF CSSV_SPINB_D100600 = ON | |
| THEN DO; | |
| /* PF01_INPUT_2: Left FWD, Left Door */ | |
| CSBB_LATCH_DOOR_OUT_STAT$(8) = ON; /* Invalid */ | |
| CSBB_LATCH_DOOR_OUT_STAT$(10) = ON; /* Invalid */ | |
| END; | |
| IF CSSV_SPINB_D100900 = ON | |
| THEN DO; | |
| /* PF01_INPUT_3: Left FWD/AFT, Centerline */ | |
| CSBB_LATCH_DOOR_OUT_STAT$(1 TO 4) = BIN'1111'; /* Invalid */ | |
| CSBB_LATCH_DOOR_OUT_STAT$(8 TO 9) = BIN'11'; /* Invalid */ | |
| END; | |
| IF CSSV_SPINB_D120300 = ON | |
| THEN DO; | |
| /* PF02_INPUT_1: Right FWD/AFT, Right Door */ | |
| CSBB_LATCH_DOOR_OUT_STAT$(5 TO 7) = BIN'111'; /* Invalid */ | |
| END; | |
| IF CSSV_SPINB_D120600 = ON | |
| THEN DO; | |
| /* PF02_INPUT_2: Left FWD/AFT, Left Door*/ | |
| CSBB_LATCH_DOOR_OUT_STAT$(8 TO 10) = BIN'111'; /* Invalid */ | |
| END; | |
| IF CSSV_SPINB_D120900 = ON | |
| THEN DO; | |
| /* PF02_INPUT_3: Right FWD/AFT, Centerline*/ | |
| CSBB_LATCH_DOOR_OUT_STAT$(1 TO 4) = BIN'1111'; /* Invalid */ | |
| CSBB_LATCH_DOOR_OUT_STAT$(5 TO 6) = BIN'11'; /* Invalid */ | |
| END; | |
| CLOSE SSB_CRT_FEEDBACK_DISPLAY; | |
| SSB_CENTERLINE_LATCH_FEEDBACK_DISPLAY: | |
| PROCEDURE; | |
| CALL SSB_PBD_LATCH_STATUS(V37X3390Y, V37X3391Y, | |
| V37X3395Y, V37X3396Y) | |
| ASSIGN(SSB_C_LCH_5_8_TEXT); | |
| CALL SSB_PBD_LATCH_STATUS(V37X3405Y, V37X3406Y, | |
| V37X3400Y, V37X3401Y) | |
| ASSIGN(SSB_C_LCH_9_12_TEXT); | |
| CALL SSB_PBD_LATCH_STATUS(V37X3380Y, V37X3381Y, | |
| V37X3385Y, V37X3386Y) | |
| ASSIGN(SSB_C_LCH_1_4_TEXT); | |
| CALL SSB_PBD_LATCH_STATUS(V37X3415Y, V37X3416Y, | |
| V37X3410Y, V37X3411Y) | |
| ASSIGN(SSB_C_LCH_13_16_TEXT); | |
| CLOSE SSB_CENTERLINE_LATCH_FEEDBACK_DISPLAY; | |
| SSB_RIGHT_BHD_LATCH_AND_DOOR_FEEDBACK_DISPLAY: | |
| PROCEDURE; | |
| CALL SSB_PBD_LATCH_STATUS(V37X3430Y, V37X3431Y, | |
| V37X3440Y, V37X3441Y) | |
| ASSIGN(CSBB_R_FWD_BHD_TEXT); | |
| CALL SSB_PBD_LATCH_STATUS(V37X3450Y, V37X3451Y, | |
| V37X3460Y, V37X3461Y) | |
| ASSIGN(CSBB_R_AFT_BHD_TEXT); | |
| CALL SSB_PBD_DOOR_STATUS( | |
| (V37X3300Y AND V37X3301Y), | |
| (V37X3435Y AND V37X3436Y) | |
| OR (V37X3436 AND V37X3437Y) | |
| OR (V37X3435Y AND V37X3437Y), | |
| (V37X3455Y AND V37X3456Y) | |
| OR (V37X3456Y AND V37X3457Y) | |
| OR (V37X3455Y AND V37X3457Y), | |
| (V37X3302Y AND V37X3303Y)) | |
| ASSIGN(CSBB_R_DOOR_TEXT); | |
| CLOSE SSB_RIGHT_BHD_LATCH_AND_DOOR_FEEDBACK_DISPLAY; | |
| SSB_LEFT_BHD_LATCH_AND_DOOR_FEEDBACK_DISPLAY: | |
| PROCEDURE; | |
| CALL SSB_PBD_LATCH_STATUS(V37X3320Y, V37X3321Y, | |
| V37X3330Y, V37X3331Y) | |
| ASSIGN(CSBB_L_FWD_BHD_TEXT); | |
| CALL SSB_PBD_LATCH_STATUS(V37X3350Y, V37X3351Y, | |
| V37X3360Y, V37X3361Y) | |
| ASSIGN(CSBB_L_AFT_BHD_TEXT); | |
| CALL SSB_PBD_DOOR_STATUS( | |
| (V37X3305Y AND V37X3306Y), | |
| (V37X3325Y AND V37X3326Y) | |
| OR (V37X3326Y AND V37X3327Y) | |
| OR (V37X3325Y AND V37X3327Y), | |
| (V37X3355Y AND V37X3356Y) | |
| OR (V37X3356Y AND V37X3357Y) | |
| OR (V37X3355Y AND V37X3357Y), | |
| (V37X33027 AND V37X3308Y)) | |
| ASSIGN(CSBB_L_DOOR_TEXT); | |
| CLOSE SSB_LEFT_BHD_LATCH_AND_DOOR_FEEDBACK_DISPLAY; | |
| SSB_PBD_LATCH_STATUS: | |
| PROCEDURE(SSB_LATCH_DOOR_INPUT_PARM_1, | |
| SSB_LATCH_DOOR_INPUT_PARM_2, | |
| SSB_LATCH_DOOR_INPUT_PARM_3, | |
| SSB_LATCH_DOOR_INPUT_PARM_4) | |
| ASSIGN(SSB_LATCH_COMPUTED_VALUE); | |
| SSB_LATCH_COMPUTED_VALUE = '?'; | |
| IF SSB_LATCH_DOOR_INPUT_PARM_1 = ON | |
| THEN IF SSB_LATCH_DOOR_INPUT_PARM_2 = ON | |
| THEN IF (SSB_LATCH_DOOR_INPUT_PARM_3 = OFF) | |
| AND (SSB_LATCH_DOOR_INPUT_PARM_4 = OFF) | |
| THEN SSB_LATCH_COMPUTED_VALUE = 'OP'; | |
| ELSE IF (SSB_LATCH_DOOR_INPUT_PARM_3 = OFF) | |
| AND (SSB_LATCH_DOOR_INPUT_PARM_4 = OFF) | |
| THEN SSB_LATCH_COMPUTED_VALUE = ' '; | |
| ELSE IF SSB_LATCH_DOOR_INPUT_PARM_2 = ON | |
| THEN IF (SSB_LATCH_DOOR_INPUT_PARM_3 = OFF) | |
| AND (SSB_LATCH_DOOR_INPUT_PARM_4 = OFF) | |
| THEN SSB_LATCH_COMPUTED_VALUE = ' '; | |
| ELSE IF SSB_LATCH_DOOR_INPUT_PARM_3 = ON | |
| THEN DO; | |
| IF SSB_LATCH_DOOR_INPUT_PARM_4 = ON | |
| THEN SSB_LATCH_COMPUTED_VALUE = 'CL'; | |
| ELSE SSB_LATCH_COMPUTED_VALUE = ' '; | |
| END; ELSE SSB_LATCH_COMPUTED_VALUE = ' '; | |
| CLOSE SSB_PBD_LATCH_STATUS; | |
| SSB_PBD_DOOR_STATUS: | |
| PROCEDURE(SSB_LATCH_DOOR_INPUT_PARM_1, | |
| SSB_LATCH_DOOR_INPUT_PARM_2, | |
| SSB_LATCH_DOOR_INPUT_PARM_3, | |
| SSB_LATCH_DOOR_INPUT_PARM_4) | |
| ASSIGN(SSB_DOOR_COMPUTED_VALUE); | |
| SSB_DOOR_COMPUTED_VALUE = '? '; | |
| IF SSB_LATCH_DOOR_INPUT_PARM_1 = ON | |
| THEN IF (SSB_LATCH_DOOR_INPUT_PARM_2 = OFF) | |
| AND (SSB_LATCH_DOOR_INPUT_PARM_3 = OFF) | |
| AND (SSB_LATCH_DOOR_INPUT_PARM_4 = OFF) | |
| THEN SSB_DOOR_COMPUTED_VALUE = 'OP '; | |
| ELSE IF SSB_LATCH_DOOR_INPUT_PARM_2 = ON | |
| THEN IF SSB_LATCH_DOOR_INPUT_PARM_3 = ON | |
| THEN DO; | |
| IF SSB_LATCH_DOOR_INPUT_PARM_4 = ON | |
| THEN SSB_DOOR_COMPUTED_VALUE = 'CL '; | |
| ELSE SSB_DOOR_COMPUTED_VALUE = 'RDY'; | |
| END; ELSE IF SSB_LATCH_DOOR_INPUT_PARM_4 = OFF | |
| THEN SSB_DOOR_COMPUTED_VALUE = ' '; | |
| ELSE IF SSB_LATCH_DOOR_INPUT_PARM_4 = OFF | |
| THEN SSB_DOOR_COMPUTED_VALUE = ' '; | |
| CLOSE SSB_PBD_DOOR_STATUS; | |
| SSB_AUTO_OPEN_CLOSE_SEQUENCE: | |
| PROCEDURE; | |
| DO UNTIL SSB_PBD_MORE_WORK_IND = OFF; | |
| SSB_PBD_MORE_WORK_IND = OFF; | |
| IF CSBB_CONTROL_SWITCH_POS_INDIC = 1 /* Open Position */ | |
| THEN CALL SSB_OPEN_FEEDBACK; | |
| ELSE CALL SSB_CLOSE_FEEDBACK; | |
| IF SSB_OPEN_CLOSE_FEEDBACK_INDIC = ON | |
| THEN DO; | |
| IF CSBB_CONTROL_SWITCH_POS_INDIC = 1 /* Open Position */ | |
| THEN DO; | |
| IF SSB_CURRENT_LATCH_DOOR_POINTER = 6 | |
| C Is Auto Open Complete? | |
| THEN DO; | |
| CALL SSB_DISABLE_COMMANDS; | |
| CSBB_AUTO_MODE_FLAG = OFF; | |
| CSBB_AUTO_MODE_ITEM = OFF; | |
| CSBB_PBD_DISP_UPDATE_IND = ON; | |
| END; ELSE DO; | |
| SSB_CURRENT_LATCH_DOOR_POINTER = SSB_CURRENT_LATCH_DOOR_POINTER + 1; | |
| SSB_PBD_MORE_WORK_IND = ON; | |
| END; | |
| END; ELSE DO; | |
| IF SSB_CURRENT_LATCH_DOOR_POINTER = 1 | |
| C Is Auto Close Complete? | |
| THEN DO; | |
| CALL SSB_DISABLE_COMMANDS; | |
| CSBB_AUTO_MODE_FLAG = OFF; | |
| CSBB_AUTO_MODE_ITEM = OFF; | |
| CSBB_PBD_DISP_UPDATE_IND = ON; | |
| END; ELSE DO; | |
| SSB_CURRENT_LATCH_DOOR_POINTER = SSB_CURRENT_LATCH_DOOR_POINTER - 1; | |
| SSB_PBD_MORE_WORK_IND = ON; | |
| END; | |
| END; | |
| END; ELSE DO; | |
| C Check Commands Enabled Array: | |
| IF SSB_COMMANDS_ENABLED_ARRAY$(SSB_CURRENT_LATCH_DOOR_POINTER, | |
| CSBB_CONTROL_SWITCH_POS_INDIC) != ON | |
| THEN DO; | |
| IF CSBB_COMMON_PBD_FAIL_INDICATOR != ON | |
| THEN DO; | |
| CALL SSB_ENABLE_COMMANDS; | |
| SSB_LATCH_DOOR_EXPIR_TIME = | |
| CSSV_SP_CURRENT_TIME | |
| + SSB_TIMER_CONSTANTS_ARRAY$(SSB_CURRENT_LATCH_DOOR_POINTER); | |
| CSBB_PBD_OUTPUT_INDICATOR = ON; | |
| END; | |
| END; ELSE DO; | |
| IF CSSV_SP_CURRENT_TIME >= SSB_LATCH_DOOR_EXPIR_TIME | |
| C Is There a Fail Condition? | |
| THEN DO; | |
| IF CSBB_CONTROL_SWITCH_POS_INDIC = 1 /* Open Position */ | |
| THEN CALL SSB_SET_OPEN_FAIL_INDICATORS; | |
| ELSE CALL SSB_SET_CLOSE_FAIL_INDICATORS; | |
| CSBB_COMMON_PBD_FAIL_INDICATOR = ON; | |
| CALL SSB_DISABLE_UNVERIFIED_COMMANDS; | |
| END; | |
| END; | |
| END; | |
| END; | |
| CLOSE SSB_AUTO_OPEN_CLOSE_SEQUENCE; | |
| SSB_OPEN_FEEDBACK: | |
| PROCEDURE; | |
| IF SSB_CURRENT_LATCH_DOOR_POINTER = 0 | |
| THEN SSB_CURRENT_LATCH_DOOR_POINTER = 1; | |
| DO CASE SSB_CURRENT_LATCH_DOOR_POINTER; | |
| C 1: Centerline Latch Groups 5-8, 9-12 | |
| DO; | |
| SSB_OPEN_CLOSE_FEEDBACK_INDIC = | |
| (V373390Y AND V37X3391Y) | |
| AND (V373405Y AND V37X3406Y); | |
| END; | |
| C 2: Centerline Latch Groups 1-4, 13-16 | |
| DO; | |
| SSB_OPEN_CLOSE_FEEDBACK_INDIC = | |
| (V373380Y AND V37X3381Y) | |
| AND (V373415Y AND V37X3416Y); | |
| END; | |
| C 3: Right FWD BHD Latch Group; Right AFT BHD Latch Group | |
| DO; | |
| SSB_OPEN_CLOSE_FEEDBACK_INDIC = | |
| (V373430Y AND V37X3431Y) | |
| AND (V373450Y AND V37X3451Y); | |
| END; | |
| C 4: PBD Right Door Panel | |
| DO; | |
| SSB_OPEN_CLOSE_FEEDBACK_INDIC = | |
| (V373300Y AND V37X3301Y); | |
| END; | |
| C 5: :Left FWD BHD Latch Group; Left AFT BHD Latch Group | |
| DO; | |
| SSB_OPEN_CLOSE_FEEDBACK_INDIC = | |
| (V373320Y AND V37X3321Y) | |
| AND (V373350Y AND V37X3351Y); | |
| END; | |
| C 6: PBD Left Door Panel | |
| DO; | |
| SSB_OPEN_CLOSE_FEEDBACK_INDIC = | |
| (V373305Y AND V37X3306Y); | |
| END; | |
| END; | |
| CLOSE SSB_OPEN_FEEDBACK; | |
| SSB_CLOSE_FEEDBACK: | |
| PROCEDURE; | |
| IF SSB_CURRENT_LATCH_DOOR_POINTER = 0 | |
| THEN SSB_CURRENT_LATCH_DOOR_POINTER = 6; | |
| DO CASE SSB_CURRENT_LATCH_DOOR_POINTER; | |
| C 1: Centerline Latch Groups 5-8, 9-12 | |
| DO; | |
| SSB_OPEN_CLOSE_FEEDBACK_INDIC = | |
| (V373395Y AND V37X3396Y) | |
| AND (V373400Y AND V37X3401Y); | |
| END; | |
| C 2: Centerline Latch Groups 1-4, 13-16 | |
| DO; | |
| SSB_OPEN_CLOSE_FEEDBACK_INDIC = | |
| (V373385Y AND V37X3386Y) | |
| AND (V373410Y AND V37X3411Y); | |
| END; | |
| C 3: Right FWD BHD Latch Group; Right AFT BHD Latch Group | |
| DO; | |
| SSB_OPEN_CLOSE_FEEDBACK_INDIC = | |
| (V373440Y AND V37X3441Y) | |
| AND (V373460Y AND V37X3461Y); | |
| END; | |
| C 4: PBD Right Door Panel | |
| DO; | |
| SSB_OPEN_CLOSE_FEEDBACK_INDIC = | |
| ( (V373435Y AND V37X3436Y) | |
| OR (V373435Y AND V37X3437Y) | |
| OR (V373436Y AND V37X3437Y)) | |
| AND ( (V373455Y AND V37X3456Y) | |
| OR (V373455Y AND V37X3457Y) | |
| OR (V373456Y AND V37X3457Y)); | |
| END; | |
| C 5: :Left FWD BHD Latch Group; Left AFT BHD Latch Group | |
| DO; | |
| SSB_OPEN_CLOSE_FEEDBACK_INDIC = | |
| (V373330Y AND V37X3331Y) | |
| AND (V373360Y AND V37X3361Y); | |
| END; | |
| C 6: PBD Left Door Panel | |
| DO; | |
| SSB_OPEN_CLOSE_FEEDBACK_INDIC = | |
| ( (V373425Y AND V37X3426Y) | |
| OR (V373425Y AND V37X3427Y) | |
| OR (V373436Y AND V37X3437Y)) | |
| AND ( (V373355Y AND V37X3356Y) | |
| OR (V373355Y AND V37X3357Y) | |
| OR (V373356Y AND V37X3357Y)); | |
| END; | |
| END; | |
| IF SSB_OPEN_CLOSE_FEEDBACK_INDIC = ON | |
| AND (SSB_CURRENT_LATCH_DOOR_POINTER = 3 | |
| OR SSB_CURRENT_LATCH_DOOR_POINTER = 5) | |
| THEN CALL SSB_DOOR_FEEDBACK; | |
| CLOSE SSB_CLOSE_FEEDBACK; | |
| SSB_ENABLE_COMMANDS: | |
| PROCEDURE; | |
| DO CASE SSB_CURRENT_LATCH_DOOR_POINTER; | |
| C 1: Centerline Latch Groups 5-8, 9-12 | |
| DO; | |
| IF CSBB_CONTROL_SWITCH_POS_INDIC = 1 /* Open */ | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$(6) = OFF; /* 5-8 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(6) = OFF; /* 5-8 CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_2$(8) = OFF; /* 9-12 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(8) = OFF; /* 9-12 CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_2$(5) = ON; /* 5-8 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(5) = ON; /* 5-8 OPEN 2 */ | |
| CSBB_PF01_OUTPUT_2$(7) = ON; /* 9-12 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(7) = ON; /* 9-12 OPEN 2 */ | |
| END; ELSE DO; | |
| CSBB_PF01_OUTPUT_2$(5) = OFF; /* 5-8 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(5) = OFF; /* 5-8 OPEN 2 */ | |
| CSBB_PF01_OUTPUT_2$(7) = OFF; /* 9-12 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(7) = OFF; /* 9-12 OPEN 2 */ | |
| CSBB_PF01_OUTPUT_2$(6) = ON; /* 5-8 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(6) = ON; /* 5-8 CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_2$(8) = ON; /* 9-12 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(8) = ON; /* 9-12 CLOSE 2 */ | |
| END; | |
| END; | |
| C 2: Centerline Latch Groups 1-4, 13-16 | |
| DO; | |
| IF CSBB_CONTROL_SWITCH_POS_INDIC = 1 /* Open */ | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$( 4) = OFF; /* 1-4 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$( 4) = OFF; /* 1-4 CLOSE 2 */ | |
| CSBB_PF02_OUTPUT_2$(10) = OFF; /* 13-16 CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_2$(10) = OFF; /* 13-16 CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_2$(3) = ON; /* 1-4 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(3) = ON; /* 1-4 OPEN 2 */ | |
| CSBB_PF02_OUTPUT_2$(9) = ON; /* 13-16 OPEN 1 */ | |
| CSBB_PF01_OUTPUT_2$(9) = ON; /* 13-16 OPEN 2 */ | |
| END; ELSE DO; | |
| CSBB_PF01_OUTPUT_2$(3) = OFF; /* 1-4 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(3) = OFF; /* 1-4 OPEN 2 */ | |
| CSBB_PF02_OUTPUT_2$(9) = OFF; /* 13-16 OPEN 1 */ | |
| CSBB_PF01_OUTPUT_2$(9) = OFF; /* 13-16 OPEN 2 */ | |
| CSBB_PF01_OUTPUT_2$( 4) = ON; /* 1-4 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$( 4) = ON; /* 1-4 CLOSE 2 */ | |
| CSBB_PF02_OUTPUT_2$(10) = ON; /* 13-16 CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_2$(10) = ON; /* 13-16 CLOSE 2 */ | |
| END; | |
| END; | |
| C 3: Right FWD BHD Latch Group; Right AFT BHD Latch Group | |
| DO; | |
| IF CSBB_CONTROL_SWITCH_POS_INDIC = 1 /* Open */ | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_1$(4) = OFF; /* RFWD BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_1$(4) = OFF; /* RFWD BHD CLOSE 2 */ | |
| CSBB_PF02_OUTPUT_1$(6) = OFF; /* RAFT BHD CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_1$(6) = OFF; /* RAFT BHD CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_1$(3) = ON; /* RFWD BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_1$(3) = ON; /* RFWD BHD OPEN 2 */ | |
| CSBB_PF02_OUTPUT_1$(5) = ON; /* RAFT BHD OPEN 1 */ | |
| CSBB_PF01_OUTPUT_1$(5) = ON; /* RAFT BHD OPEN 2 */ | |
| END; ELSE DO; | |
| CSBB_PF01_OUTPUT_1$(3) = OFF; /* RFWD BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_1$(3) = OFF; /* RFWD BHD OPEN 2 */ | |
| CSBB_PF02_OUTPUT_1$(5) = OFF; /* RAFT BHD OPEN 1 */ | |
| CSBB_PF01_OUTPUT_1$(5) = OFF; /* RAFT BHD OPEN 2 */ | |
| CSBB_PF01_OUTPUT_1$(4) = ON; /* RFWD BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_1$(4) = ON; /* RFWD BHD CLOSE 2 */ | |
| CSBB_PF02_OUTPUT_1$(6) = ON; /* RAFT BHD CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_1$(6) = ON; /* RAFT BHD CLOSE 2 */ | |
| END; | |
| END; | |
| C 4: PBD Right Door Panel | |
| DO; | |
| IF CSBB_CONTROL_SWITCH_POS_INDIC = 1 /* Open */ | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_1$(2) = OFF; /* Right Door CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_1$(2) = OFF; /* Right Door CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_1$(1) = ON; /* Right Door OPEN 1 */ | |
| CSBB_PF02_OUTPUT_1$(1) = ON; /* Right Door OPEN 2 */ | |
| END; ELSE DO; | |
| CSBB_PF01_OUTPUT_1$(1) = OFF; /* Right Door OPEN 1 */ | |
| CSBB_PF02_OUTPUT_1$(1) = OFF; /* Right Door OPEN 2 */ | |
| CSBB_PF01_OUTPUT_1$(2) = ON; /* Right Door CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_1$(2) = ON; /* Right Door CLOSE 2 */ | |
| END; | |
| END; | |
| C 5: :Left FWD BHD Latch Group; Left AFT BHD Latch Group | |
| DO; | |
| IF CSBB_CONTROL_SWITCH_POS_INDIC = 1 /* Open */ | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_3$(4) = OFF; /* LFWD BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_3$(4) = OFF; /* LFWD BHD CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_3$(6) = OFF; /* LAFT BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_3$(6) = OFF; /* LAFT BHD CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_3$(3) = ON; /* LFWD BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_3$(3) = ON; /* LFWD BHD OPEN 2 */ | |
| CSBB_PF01_OUTPUT_3$(5) = ON; /* LAFT BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_3$(5) = ON; /* LAFT BHD OPEN 2 */ | |
| END; ELSE DO; | |
| CSBB_PF01_OUTPUT_3$(3) = OFF; /* LFWD BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_3$(3) = OFF; /* LFWD BHD OPEN 2 */ | |
| CSBB_PF01_OUTPUT_3$(5) = OFF; /* LAFT BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_3$(5) = OFF; /* LAFT BHD OPEN 2 */ | |
| CSBB_PF01_OUTPUT_3$(4) = ON; /* LFWD BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_3$(4) = ON; /* LFWD BHD CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_3$(6) = ON; /* LAFT BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_3$(6) = ON; /* LAFT BHD CLOSE 2 */ | |
| END; | |
| END; | |
| C 6: PBD Left Door Panel | |
| DO; | |
| IF CSBB_CONTROL_SWITCH_POS_INDIC = 1 /* Open */ | |
| THEN DO; | |
| CSBB_PF02_OUTPUT_3$(2) = OFF; /* Left Door CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_3$(2) = OFF; /* Left Door CLOSE 2 */ | |
| CSBB_PF02_OUTPUT_3$(1) = ON; /* Left Door OPEN 1 */ | |
| CSBB_PF01_OUTPUT_3$(1) = ON; /* Left Door OPEN 2 */ | |
| END; ELSE DO; | |
| CSBB_PF02_OUTPUT_3$(1) = OFF; /* Left Door OPEN 1 */ | |
| CSBB_PF01_OUTPUT_3$(1) = OFF; /* Left Door OPEN 2 */ | |
| CSBB_PF02_OUTPUT_3$(2) = ON; /* Left Door CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_3$(2) = ON; /* Left Door CLOSE 2 */ | |
| END; | |
| END; | |
| END; | |
| IF CSBB_CONTROL_SWITCH_POS_INDIC = 1 /* Open */ | |
| THEN DO; | |
| SSB_COMMANDS_ENABLED_ARRAY$(SSB_CURRENT_LATCH_DOOR_POINTER,1) = ON; | |
| SSB_COMMANDS_ENABLED_ARRAY$(SSB_CURRENT_LATCH_DOOR_POINTER,2) = OFF; | |
| END; ELSE DO; | |
| SSB_COMMANDS_ENABLED_ARRAY$(SSB_CURRENT_LATCH_DOOR_POINTER,1) = OFF; | |
| SSB_COMMANDS_ENABLED_ARRAY$(SSB_CURRENT_LATCH_DOOR_POINTER,2) = ON; | |
| END; | |
| CLOSE SSB_ENABLE_COMMAND; | |
| SSB_SET_OPEN_FAIL_INDICATORS: | |
| PROCEDURE; | |
| DO CASE SSB_CURRENT_LATCH_DOOR_POINTER; | |
| C 1: Centerline Latch Groups 5-8, 9-12 | |
| DO; | |
| IF (V37X3390Y AND V37X3391Y) = FALSE | |
| THEN CSBB_OPEN_FAIL_INDICATOR$(1) = ON; | |
| IF (V37X3405Y AND V37X3406Y) = FALSE | |
| THEN CSBB_OPEN_FAIL_INDICATOR$(2) = ON; | |
| END; | |
| C 2: Centerline Latch Groups 1-4, 13-16 | |
| DO; | |
| IF (V37X3380Y AND V37X3381Y) = FALSE | |
| THEN CSBB_OPEN_FAIL_INDICATOR$(3) = ON; | |
| IF (V37X3415Y AND V37X3416Y) = FALSE | |
| THEN CSBB_OPEN_FAIL_INDICATOR$(4) = ON; | |
| END; | |
| C 3: Right FWD BHD Latch Group; Right AFT BHD Latch Group | |
| DO; | |
| IF (V37X3430Y AND V37X3431Y) = FALSE | |
| THEN CSBB_OPEN_FAIL_INDICATOR$(5) = ON; | |
| IF (V37X3450Y AND V37X3451Y) = FALSE | |
| THEN CSBB_OPEN_FAIL_INDICATOR$(6) = ON; | |
| END; | |
| C 4: PBD Right Door Panel | |
| DO; | |
| CSBB_OPEN_FAIL_INDICATOR$(7) = ON; | |
| END; | |
| C 5: :Left FWD BHD Latch Group; Left AFT BHD Latch Group | |
| DO; | |
| IF (V37X3320Y AND V37X3321Y) = FALSE | |
| THEN CSBB_OPEN_FAIL_INDICATOR$(8) = ON; | |
| IF (V37X3350Y AND V37X3351Y) = FALSE | |
| THEN CSBB_OPEN_FAIL_INDICATOR$(9) = ON; | |
| END; | |
| C 6: PBD Left Door Panel | |
| DO; | |
| CSBB_OPEN_FAIL_INDICATOR$(10) = ON; | |
| END; | |
| END; | |
| CLOSE SSB_SET_OPEN_FAIL_INDICATORS; | |
| SSB_SET_CLOSE_FAIL_INDICATORS: | |
| PROCEDURE; | |
| DO CASE SSB_CURRENT_LATCH_DOOR_POINTER; | |
| C 1: Centerline Latch Groups 5-8, 9-12 | |
| DO; | |
| IF (V37X3390Y AND V37X3391Y) = FALSE | |
| THEN DO; | |
| CSBB_CLOSE_FAIL_INDICATOR$(1) = ON; | |
| END; | |
| IF (V37X3405Y AND V37X3406Y) = FALSE | |
| THEN DO; | |
| CSBB_CLOSE_FAIL_INDICATOR$(2) = ON; | |
| END; | |
| END; | |
| C 2: Centerline Latch Groups 1-4, 13-16 | |
| DO; | |
| IF (V37X3380Y AND V37X3381Y) = FALSE | |
| THEN DO; | |
| CSBB_CLOSE_FAIL_INDICATOR$(3) = ON; | |
| END; | |
| IF (V37X3415Y AND V37X3416Y) = FALSE | |
| THEN DO; | |
| CSBB_CLOSE_FAIL_INDICATOR$(4) = ON; | |
| END; | |
| END; | |
| C 3: Right FWD BHD Latch Group; Right AFT BHD Latch Group | |
| DO; | |
| IF (V37X3430Y AND V37X3431Y) = FALSE | |
| THEN DO; | |
| CSBB_CLOSE_FAIL_INDICATOR$(5) = ON; | |
| END; | |
| IF (V37X3450Y AND V37X3451Y) = FALSE | |
| THEN DO; | |
| CSBB_CLOSE_FAIL_INDICATOR$(6) = ON; | |
| END; | |
| END; | |
| C 4: PBD Right Door Panel | |
| DO; | |
| CSBB_CLOSE_FAIL_INDICATOR$(7) = ON; | |
| END; | |
| C 5: :Left FWD BHD Latch Group; Left AFT BHD Latch Group | |
| DO; | |
| IF (V37X3320Y AND V37X3321Y) = FALSE | |
| THEN DO; | |
| CSBB_CLOSE_FAIL_INDICATOR$(8) = ON; | |
| END; | |
| IF (V37X3350Y AND V37X3351Y) = FALSE | |
| THEN DO; | |
| CSBB_CLOSE_FAIL_INDICATOR$(9) = ON; | |
| END; | |
| END; | |
| C 6: PBD Left Door Panel | |
| DO; | |
| CSBB_CLOSE_FAIL_INDICATOR$(10) = ON; | |
| END; | |
| END; | |
| CLOSE SSB_SET_CLOSE_FAIL_INDICATORS; | |
| SSB_MANUAL_SEQUENCE: | |
| PROCEDURE; | |
| IF CSBB_CONTROL_SWITCH_POS_INDIC = 1 /* Open Position */ | |
| THEN CALL SSB_MANUAL_OPEN; | |
| ELSE CALL SSB_MANUAL_CLOSE; | |
| SSB_PREVIOUS_SWITCH_POS = CSBB_CONTROL_SWITCH_POS_INDIC; | |
| CSBB_PBD_OUTPUT_INDICATOR = ON; | |
| CLOSE SSB_MANUAL_SEQUENCE; | |
| SSB_MANUAL_OPEN: | |
| PROCEDURE; | |
| IF CSBB_MANUAL_MODE_ITEMS$(4) = ON | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$(6) = OFF; /* 5-8 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(6) = OFF; /* 5-8 CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_2$(5) = ON; /* 5-8 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(5) = ON; /* 5-8 OPEN 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(5) = ON | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$(8) = OFF; /* 9-12 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(8) = OFF; /* 9-12 CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_2$(7) = ON; /* 9-12 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(7) = ON; /* 9-12 OPEN 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(6) = ON | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$(4) = OFF; /* 1-4 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(4) = OFF; /* 1-4 CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_2$(3) = ON; /* 1-4 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(3) = ON; /* 1-4 OPEN 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(7) = ON | |
| THEN DO; | |
| CSBB_PF02_OUTPUT_2$(10) = OFF; /* 13-16 CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_2$(10) = OFF; /* 13-16 CLOSE 2 */ | |
| CSBB_PF02_OUTPUT_2$(9) = ON; /* 13-16 OPEN 1 */ | |
| CSBB_PF01_OUTPUT_2$(9) = ON; /* 13-16 OPEN 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(8) = ON | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_1$(4) = OFF; /* RFWD BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_1$(4) = OFF; /* RFWD BHD CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_1$(3) = OFF; /* RFWD BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_1$(3) = OFF; /* RFWD BHD OPEN 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(9) = ON | |
| THEN DO; | |
| CSBB_PF02_OUTPUT_1$(6) = OFF; /* RAFT BHD CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_1$(6) = OFF; /* RAFT BHD CLOSE 2 */ | |
| CSBB_PF02_OUTPUT_1$(5) = ON; /* RAFT BHD OPEN 1 */ | |
| CSBB_PF01_OUTPUT_1$(5) = ON; /* RAFT BHD OPEN 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(10) = ON | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_1$(2) = OFF; /* Right Door CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_1$(2) = OFF; /* Right Door CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_1$(1) = ON; /* Right Door OPEN 1 */ | |
| CSBB_PF02_OUTPUT_1$(1) = ON; /* Right Door OPEN 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(11) = ON | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_3$(3) = OFF; /* LFWD BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_3$(3) = OFF; /* LFWD BHD OPEN 2 */ | |
| CSBB_PF01_OUTPUT_3$(4) = ON; /* LFWD BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_3$(4) = ON; /* LFWD BHD CLOSE 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(12) = ON | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_3$(4) = OFF; /* LFWD BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_3$(4) = OFF; /* LFWD BHD CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_3$(5) = ON; /* LAFT BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_3$(5) = ON; /* LAFT BHD OPEN 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(13) = ON | |
| THEN DO; | |
| CSBB_PF02_OUTPUT_3$(2) = OFF; /* Left Door CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_3$(2) = OFF; /* Left Door CLOSE 2 */ | |
| CSBB_PF02_OUTPUT_3$(1) = ON; /* Left Door OPEN 1 */ | |
| CSBB_PF01_OUTPUT_3$(1) = ON; /* Left Door OPEN 2 */ | |
| END; | |
| CLOSE SSB_MANUAL_OPEN; | |
| SSB_MANUAL_CLOSE: | |
| PROCEDURE; | |
| IF CSBB_MANUAL_MODE_ITEMS$(4) = ON | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$(5) = OFF; /* 5-8 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(5) = OFF; /* 5-8 OPEN 2 */ | |
| CSBB_PF01_OUTPUT_2$(6) = ON; /* 5-8 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(6) = ON; /* 5-8 CLOSE 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(5) = ON | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$(7) = OFF; /* 9-12 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(7) = OFF; /* 9-12 OPEN 2 */ | |
| CSBB_PF01_OUTPUT_2$(8) = ON; /* 9-12 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(8) = ON; /* 9-12 CLOSE 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(6) = ON | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$(3) = OFF; /* 1-4 OPEN 1 */ | |
| CSBB_PF02_OUTPUT_2$(3) = OFF; /* 1-4 OPEN 2 */ | |
| CSBB_PF01_OUTPUT_2$(4) = ON; /* 1-4 CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_2$(4) = ON; /* 1-4 CLOSE 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(7) = ON | |
| THEN DO; | |
| CSBB_PF02_OUTPUT_2$(9) = OFF; /* 13-16 OPEN 1 */ | |
| CSBB_PF01_OUTPUT_2$(9) = OFF; /* 13-16 OPEN 2 */ | |
| CSBB_PF02_OUTPUT_2$(10) = ON; /* 13-16 CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_2$(10) = ON; /* 13-16 CLOSE 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(8) = ON | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_1$(3) = OFF; /* RFWD BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_1$(3) = OFF; /* RFWD BHD OPEN 2 */ | |
| CSBB_PF01_OUTPUT_1$(4) = ON; /* RFWD BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_1$(4) = ON; /* RFWD BHD CLOSE 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(9) = ON | |
| THEN DO; | |
| CSBB_PF02_OUTPUT_1$(5) = OFF; /* RAFT BHD OPEN 1 */ | |
| CSBB_PF01_OUTPUT_1$(5) = OFF; /* RAFT BHD OPEN 2 */ | |
| CSBB_PF02_OUTPUT_1$(6) = ON; /* RAFT BHD CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_1$(6) = ON; /* RAFT BHD CLOSE 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(10) = ON | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_1$(1) = OFF; /* Right Door OPEN 1 */ | |
| CSBB_PF02_OUTPUT_1$(1) = OFF; /* Right Door OPEN 2 */ | |
| CSBB_PF01_OUTPUT_1$(2) = ON; /* Right Door CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_1$(2) = ON; /* Right Door CLOSE 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(11) = ON | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_3$(4) = OFF; /* LFWD BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_3$(4) = OFF; /* LFWD BHD CLOSE 2 */ | |
| CSBB_PF01_OUTPUT_3$(3) = ON; /* LFWD BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_3$(3) = ON; /* LFWD BHD OPEN 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(12) = ON | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_3$(5) = OFF; /* LAFT BHD OPEN 1 */ | |
| CSBB_PF02_OUTPUT_3$(5) = OFF; /* LAFT BHD OPEN 2 */ | |
| CSBB_PF01_OUTPUT_3$(4) = ON; /* LFWD BHD CLOSE 1 */ | |
| CSBB_PF02_OUTPUT_3$(4) = ON; /* LFWD BHD CLOSE 2 */ | |
| END; | |
| IF CSBB_MANUAL_MODE_ITEMS$(13) = ON | |
| THEN DO; | |
| CSBB_PF02_OUTPUT_3$(1) = OFF; /* Left Door OPEN 1 */ | |
| CSBB_PF01_OUTPUT_3$(1) = OFF; /* Left Door OPEN 2 */ | |
| CSBB_PF02_OUTPUT_3$(2) = ON; /* Left Door CLOSE 1 */ | |
| CSBB_PF01_OUTPUT_3$(2) = ON; /* Left Door CLOSE 2 */ | |
| END; | |
| CLOSE SSB_MANUAL_CLOSE; | |
| SSB_DOOR_FEEDBACK: | |
| PROCEDURE; | |
| IF SSB_CURRENT_LATCH_DOOR_POINTER = 3 | |
| THEN DO; | |
| SSB_OPEN_CLOSE_FEEDBACK_INDIC = (V37X3302Y AND V37X3303Y); | |
| END; ELSE DO; | |
| SSB_OPEN_CLOSE_FEEDBACK_INDIC = (V37X3307Y AND V37X3308Y); | |
| END; | |
| IF SSB_OPEN_CLOSE_FEEDBACK_INDIC = OFF | |
| THEN DO; | |
| CSBB_COMMON_PBD_FAIL_INDICATOR = ON; | |
| IF SSB_CURRENT_LATCH_DOOR_POINTER = 3 | |
| THEN DO; | |
| CSBB_CLOSE_FAIL_INDICATOR$(7) = ON; | |
| END; ELSE DO; | |
| CSBB_CLOSE_FAIL_INDICATOR$(10) = ON; | |
| END; | |
| SSB_CURRENT_LATCH_DOOR_POINTER = | |
| SSB_CURRENT_LATCH_DOOR_POINTER + 1; | |
| CALL SSB_DISABLE_UNVERIFIED_COMMANDS; | |
| END; | |
| CLOSE SSB_DOOR_FEEDBACK; | |
| SSB_PBD_TALKBACK: | |
| PROCEDURE; | |
| SSB_OPEN_CLOSE_COMPLETE = 3; /* None of The Above */ | |
| IF CSBB_C_LCH_5_8_TEXT = 'OP' | |
| AND CSBB_C_LCH_9_12_TEXT = 'OP' | |
| AND CSBB_C_LCH_1_4_TEXT = 'OP' | |
| AND CSBB_C_LCH_13_16_TEXT = 'OP' | |
| AND CSBB_R_FWD_BHD_TEXT = 'OP' | |
| AND CSBB_R_AFT_BHD_TEXT = 'OP' | |
| AND CSBB_L_FWD_BHD_TEXT = 'OP' | |
| AND CSBB_L_AFT_BHD_TEXT = 'OP' | |
| AND CSBB_R_DOOR_TEXT = 'OP' | |
| AND CSBB_L_DOOR_TEXT = 'OP' | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$(1) = ON; | |
| CSBB_PF02_OUTPUT_2$(1) = ON; | |
| IF SSB_OPEN_CLOSE_COMPLETE != 1 | |
| THEN DO; | |
| CSBB_PBD_OUTPUT_INDICATOR = ON; | |
| END; | |
| SSB_OPEN_CLOSE_COMPLETE = 1; /* Fully Open */ | |
| END; ELSE DO; | |
| IF CSBB_C_LCH_5_8_TEXT = 'CL' | |
| AND CSBB_C_LCH_9_12_TEXT = 'CL' | |
| AND CSBB_C_LCH_1_4_TEXT = 'CL' | |
| AND CSBB_C_LCH_13_16_TEXT = 'CL' | |
| AND CSBB_R_FWD_BHD_TEXT = 'CL' | |
| AND CSBB_R_AFT_BHD_TEXT = 'CL' | |
| AND CSBB_L_FWD_BHD_TEXT = 'CL' | |
| AND CSBB_L_AFT_BHD_TEXT = 'CL' | |
| AND CSBB_R_DOOR_TEXT = 'CL' | |
| AND CSBB_L_DOOR_TEXT = 'CL' | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_2$(2) = ON; | |
| CSBB_PF02_OUTPUT_2$(2) = ON; | |
| IF SSB_OPEN_CLOSE_COMPLETE != 2 | |
| THEN DO; | |
| CSBB_PBD_OUTPUT_INDICATOR = ON; | |
| END; | |
| SSB_OPEN_CLOSE_COMPLETE = 2; /* Fully Closed */ | |
| END; ELSE DO; | |
| IF SSB_OPEN_CLOSE_COMPLETE != 0 | |
| THEN DO; | |
| CSBB_PBD_OUTPUT_INDICATOR = ON; | |
| END; | |
| END; | |
| END; | |
| CLOSE SSB_PBD_TALKBACK; | |
| SSB_POWER_ON_OFF_PROCESSING: | |
| PROCEDURE; | |
| IF SSB_POWER_DISABLE_IND = ON | |
| THEN DO; | |
| /* XXX set bit masks for 'B' */ | |
| SSB_POWER_DISABLE_IND = OFF; | |
| CSBB_PBD_OUTPUT_INDICATOR = ON; | |
| END; | |
| IF CSBB_POWER_ON_OFF_FLAG = ON | |
| THEN DO; | |
| /* XXX set bit masks for 'B' */ | |
| CSBB_POWER_ON_OFF_FLAG = OFF; | |
| CSBB_PBD_OUTPUT_INDICATOR = ON; | |
| IF CSBB_POWER_ON_OFF_ITEM$(1) | |
| THEN DO; | |
| CSBB_PF01_OUTPUT_1$(7) = ON;/*Power On/Off Cmd 1A*/ | |
| CSBB_PF02_OUTPUT_1$(7) = ON;/*Power On/Off Cmd 2A*/ | |
| CSBB_PF01_OUTPUT_1$(8) = ON;/*Power On/Off Cmd 3A*/ | |
| CSBB_PF01_OUTPUT_1$(9) = ON;/*Power On/Off Cmd 4A*/ | |
| CSBB_PF02_OUTPUT_3$(8) = ON;/*Power On/Off Cmd 5A*/ | |
| CSBB_PF02_OUTPUT_1$(9) = ON;/*Power On/Off Cmd 6A*/ | |
| CSBB_PF01_OUTPUT_4$(8) = ON;/*Power On/Off Cmd 1B*/ | |
| CSBB_PF02_OUTPUT_3$(7) = ON;/*Power On/Off Cmd 2B*/ | |
| CSBB_PF01_OUTPUT_3$(8) = ON;/*Power On/Off Cmd 3B*/ | |
| CSBB_PF01_OUTPUT_3$(9) = ON;/*Power On/Off Cmd 4B*/ | |
| CSBB_PF02_OUTPUT_3$(8) = ON;/*Power On/Off Cmd 5B*/ | |
| CSBB_PF02_OUTPUT_4$(2) = ON;/*Power On/Off Cmd 6B*/ | |
| END; ELSE DO; | |
| CSBB_PF01_OUTPUT_1$(7) = OFF;/*Power On/Off Cmd 1A*/ | |
| CSBB_PF02_OUTPUT_1$(7) = OFF;/*Power On/Off Cmd 2A*/ | |
| CSBB_PF01_OUTPUT_1$(8) = OFF;/*Power On/Off Cmd 3A*/ | |
| CSBB_PF01_OUTPUT_1$(9) = OFF;/*Power On/Off Cmd 4A*/ | |
| CSBB_PF02_OUTPUT_3$(8) = OFF;/*Power On/Off Cmd 5A*/ | |
| CSBB_PF02_OUTPUT_1$(9) = OFF;/*Power On/Off Cmd 6A*/ | |
| CSBB_PF01_OUTPUT_4$(8) = OFF;/*Power On/Off Cmd 1B*/ | |
| CSBB_PF02_OUTPUT_3$(7) = OFF;/*Power On/Off Cmd 2B*/ | |
| CSBB_PF01_OUTPUT_3$(8) = OFF;/*Power On/Off Cmd 3B*/ | |
| CSBB_PF01_OUTPUT_3$(9) = OFF;/*Power On/Off Cmd 4B*/ | |
| CSBB_PF02_OUTPUT_3$(8) = OFF;/*Power On/Off Cmd 5B*/ | |
| CSBB_PF02_OUTPUT_4$(2) = OFF;/*Power On/Off Cmd 6B*/ | |
| SSB_POWER_DISABLE_IND = ON; | |
| END; | |
| END; | |
| CLOSE SSB_POWER_ON_OFF_PROCESSING; | |
| C | |
| C --- ENTRY | |
| C | |
| CALL SSB_POWER_ON_OFF_PROCESSING; | |
| /* Move valid switch position feedback parameters to save area */ | |
| IF CSSV_INSTAT_D100300 = TRUE THEN | |
| CSBB_PF01_INPUT_1 = CSSV_SPINB_D100300; | |
| IF CSSV_INSTAT_D100600 = TRUE THEN | |
| CSBB_PF01_INPUT_2 = CSSV_SPINB_D100600; | |
| IF CSSV_INSTAT_D120300 = TRUE THEN | |
| CSBB_PF02_INPUT_1 = CSSV_SPINB_D120300; | |
| IF CSSV_INSTAT_D120600 = TRUE THEN | |
| CSBB_PF02_INPUT_2 = CSSV_SPINB_D120600; | |
| CALL SSB_CONTROL_SWITCH_POSITION_DETERMINATION; | |
| IF CSBB_CONTROL_SWITCH_POS_INDIC != SSB_PREVIOUS_SWITCH_POS | |
| OR CSSB_FULL_EX_FLAG = ON | |
| THEN DO; | |
| /* move remainder of valid feedback parameters to save area */ | |
| IF CSSV_INSTAT_D120900 = TRUE THEN | |
| CSBB_PF02_INPUT_3 = CSSV_SPINB_D120900; | |
| IF CSSV_INSTAT_D120900 = TRUE THEN | |
| CSBB_PF02_INPUT_3 = CSSV_SPINB_D120900; | |
| CALL SSB_CRT_FEEDBACK_DISPLAY; | |
| CALL SSB_PBD_TALKBACK; | |
| IF CSBB_CONTROL_SWITCH_POS_INDIC = 0 /* Stop Position */ | |
| THEN DO; | |
| RESET CZ1E_OPS_MODE_INHIBIT$(3); | |
| CALL SBB_MODE_SELECTION; | |
| END; ELSE DO; | |
| SET CZ1E_OPS_MODE_INHIBIT$(3); | |
| IF (CSBB_AUTO_MODE_FLAG = ON) AND (CSBB_AUTO_MODE_ITEM = ON) | |
| THEN DO; | |
| SSB_PREVIOUS_SWITCH_POS = CSBB_CONTROL_SWITCH_POS_INDIC; | |
| CALL SSB_AUTO_OPEN_CLOSE_SEQUENCE; | |
| END; ELSE DO; | |
| IF (CSBB_MANUAL_MODE_FLAG = ON) AND (CSBB_MANUAL_MODE_ITEMS != 0) | |
| THEN DO; | |
| CALL SSB_MANUAL_SELECT; | |
| END; ELSE DO; | |
| CALL SSB_MODE_SELECTION; | |
| END; | |
| END; | |
| END; | |
| CSSB_FULL_EX_FLAG = OFF; | |
| END; | |
| IF CSBB_PBD_OUTPUT_INDICATOR = ON | |
| THEN DO; | |
| CALL SSO_SP_DATA_OUT; | |
| CSBB_PBD_OUTPUT_INDICATOR = OFF; | |
| END; | |
| CLOSE SSB_PL_BAY_DOORS; | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| C RECONSTRUCTED CODE: This source code was reconstructed from historical | |
| C specifications and may not reflect the content of actual flight | |
| C software. | |
| C | |
| C | |
| C IBM-79-SS-4095/p.130 | |
| C | |
| C*********************************************************************** | |
| C** ** | |
| C** 3.2 Operational Sequences ** | |
| C** 3.2.1 Orbit/Doors (OPS 2) Control Segment (SM2_OPS) ** | |
| C** 3.2.1.9 Special Processes Executive (SSP_EXEC) ** | |
| C** ** | |
| C*********************************************************************** | |
| C | |
| D INCLUDE TEMPLATE SSD_SP_DATA_ACQ /* SP Data Acquisition */ | |
| D INCLUDE TEMPLATE SSO_SP_DATA_OUT /* SP Data Out */ | |
| D INCLUDE TEMPLATE SSA_APU_FUEL_QTY /* APU Fuel Quantity */ | |
| D INCLUDE TEMPLATE SSF_FUEL_CELL /* Fuel Cell Comp */ | |
| D INCLUDE TEMPLATE SSH_HYD_H20_QTY /* Hydraulic Water Boiler Quantity */ | |
| D INCLUDE TEMPLATE SSN_O2N2_QTY /* O2/N2 Quantity */ | |
| D INCLUDE TEMPLATE SSW_H20_PUMP_P /* H2O Pump Delta Pressure */ | |
| D INCLUDE TEMPLATE SSR_REC_TAPE /* Recorder Position Tape */ | |
| D INCLUDE TEMPLATE SSC_FUEL_CELL_PURGE /* FUel Cell Purge */ | |
| D INCLUDE TEMPLATE SST_HYD_FLD_TEMP /* Hydraulic Fluid On-Orbit Temperature */ | |
| D INCLUDE TEMPLATE SSB_PL_BAY_DOORS /* Payload Bay Doors */ | |
| D INCLUDE TEMPLATE SSS_STAND_H20_COOL /* Standby Water Coolant Loop */ | |
| D INCLUDE TEMPLATE SSM_ANT_MGMT /* Antenna Management */ | |
| D INCLUDE TEMPLATE CSS_SP_CMT /* Special PRocesses CMT */ | |
| D INCLUDE TEMPLATE CGE_DISPATCHER /* Contains Code for hybrid dispatcher */ | |
| D INCLUDE TEMPLATE SHD_HYB_DISPATCH /* SM hybrid dispatch table */ | |
| D INCLUDE GEDISP /* Contains integer values used by | |
| hybrid dispatcher to index | |
| through Dispatch Table. */ | |
| D INCLUDE TEMPLATE CSZ_ICC_CMT /* ICC Input Buffers and Communica - | |
| tions Table. */ | |
| D INCLUDE DIM_ICC_COLLECTOR /* UI ICC Collector Routines */ | |
| C | |
| SSP_EXEC: PROGRAM; | |
| DECLARE NEGMAX INTEGER CONSTANT(-32768); | |
| C FSSR- | |
| C DESC-Used as a method to multipy frequency | |
| C by -1 and store into phase. | |
| C | |
| DECLARE CGEV_PS INTEGER INITIAL(0); | |
| DECLARE CGEV_FREQ INTEGER INITIAL(0); | |
| DECLARE I INTEGER INITIAL(1); | |
| NAME(SHD_HYB_DISPATCH) = NAME(SHD_HYB_DISPATCH_TBL$I); | |
| DISPATCHER: DO WHILE TRUE; | |
| CGEV_PS = CGE_PS - 1; | |
| IF CGEV_PS <= 0 THEN DO; | |
| IF CGEV_FREQ <= 0 THEN DO; | |
| IF CGEV_FREQ = 0 THEN DO; | |
| CGEV_PS = 1; | |
| EXIT DISPATCHER; | |
| ELSE DO; | |
| CGEV_PS = CGEV_FREQ - NEGMAX; | |
| END; | |
| ELSE DO; | |
| CGE_PS = CGEV_FREQ; | |
| DO CASE SHD_HYB_DISPATCH.CASENO; | |
| C 1: | |
| DO | |
| CSSV_SP_CURRENT_TIME = CLOCKTIME; | |
| CALL SSD_SP_DATA_ACQ; | |
| END; | |
| C 2: | |
| CALL SSA_APU_FUEL_QTY; | |
| C 3: | |
| CALL SSF_FUEL_CELL; | |
| C 4: | |
| CALL SSC_FUEL_CELL_PURGE; | |
| C 5: | |
| CALL SSN_O2N2_QTY; | |
| C 6: | |
| CALL SSW_H2O_PUMP_P; | |
| C 7: | |
| CALL SST_HYD_FLD_TEMP; | |
| C 8: | |
| CALL SSR_REC_TAPE_POS; | |
| C 9: | |
| CALL SSH_HYD_H2O_QTY; | |
| C 10: | |
| CALL SSB_PL_BAY_DOORS; | |
| C 11: | |
| CALL SSS_STAND_H2O_COOL; | |
| C 12: | |
| CALL SSM_ANT_MGMT; | |
| C 13: | |
| CALL SSO_SP_DATA_OUT; | |
| C 14: | |
| CSSB_FULL_EX_FLAG = ON; | |
| END; | |
| END; | |
| END; | |
| I = I + 1; | |
| NAME(SHD_HYB_DISPATCH) = NAME(SHD_HYB_DISPATCH_TBL$I); | |
| END; | |
| CLOSE_SSP: CLOSE SSP_EXEC; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment