Error_Checking IDNT ; Title of Program Module SECTION Sect_Error_Checking,4,C ; Declare a noncommon code section. ; Align to Longwords. *************************************************************************** * * * Signal Finished Processing Rev. 9-NOV-1994 * * * *************************************************************************** *************************************************************************** * * * Error Checking Section. * * * * This routine will verify that the following is correct: * * * * From the Pilot COMINT Card: * * * * There are 4 Longwords of Trigger Tower data that are read at the * * very beginning of the Pilot COMINT PROM's and are read again at * * the very end of the PROM's. There are 4 HD Trigger Towers and 4 * * EM Trigger Towers (all near eta zero). Verify that the two reads * * of this data have the same values. * * * * From the Assistant COMINT Card: * * * * Verify that the Spec Trig's Fired List read near the begining of * * the COMINT PROM's matches the Spec Trig's Fired List read at the * * end of the COMINT PROM's. Note also that the main routine * * Spec-Trig_Fire_1 which makes the Trig list in location TrigsFired * * uses the 1st hardware copy of the Spec Trig's Fired information * * where as the Error Checking routine is using the 3rd hardware copy * * of the Spec Trig's Fired information. Thus this checks both that * * the hardware list of Spec Trig's Fired has not been overwritten and * * that the 1st and 3rd hardware copies of this list are the same. * * * * Verify that the Beam Crossing Number read near the begining of the * * COMINT PROM's is equal to the Beam Crossing Number read at the end * * of the COMNT PROM's. Make this test on the low order 16 bits of * * the Beam Crossing Numbers. * * * * Verify that the Current Beam Crossing Number is equal to 1 more * * than the Previous Beam Crossing Number. Make this test on the * * low order 32 bits of the Beam Crossing Numbers. * * * * Now make a number of tests on the Bunch Number: * * 1. Does the Current Beam Crossing Bunch Number read for Spec Trig's * * 0:15 equal that read for Spec Trig's 16:31 ? * * 2. Is one and only one Bunch_P% And-Or Input Term Set TRUE ? * * 3. Does the Current Beam Crossing Bunch Number equal 1 plus the * * Previous Beam Crossing Bunch Number (carry at 6). * * * * Now verify that the And-Or Terms (all 255) read out by the IMLRO * * for Spec Trig's 0:15 match those read from the IMLRO for Spec * * Trig's 16:31. * * * * * * Control of the Trouble Warning Bits * * none * * * * Control of the State Bits * * none * * * *************************************************************************** *************************************************************************** * * * This is the section to verify that the List of Spec Trig's Fired * * is still intacted when read at the very end of the COMINT PROM's. * * * * Build the List of Spec Trig's Fired based on the reads of the IMLRO * * hardware near the very end of the COMINT PROM's. Note that at the * * end of the COMINT PROM's they are reading the 3rd hardware copy of * * the Spec Trig's Fired. This list will be compared to the list built * * by the Spec_Trig_Fired routine which is based on IMLRO reads of the * * 1st hardware copy of Spec Trig's Fired near the very begining of the * * COMINT PROM's. * * * * Build a list of Specific Triggers that Fired for this event in D1. * * * * See the routine SPEC_TRIG_PROG_FIRE_1.SRC for full details. * * * * Recall how the Spec Trig's Fired information which is read near the * * very end of the COMINT PROM's is stored in VME memory. This is a * * read of the 3rd hardware copy of Spec Trig's Fired. * * * * VME 3 2 2 1 1 * * Addrs 1 4 3 6 5 8 7 0 Bits in a long word * * ----- - - - - - - - - * * --------------------------------- * * 302A50 | | | | | * * --------------------------------- * * 302A54 | | 2nd B | | 1st B | Bytes of Specific * * --------------------------------- Triggers Fired Data * * 302A58 | | 4th B | | 3rd B | in VME Memory. * * --------------------------------- * * 302A5C | | | | | * * --------------------------------- * * * *************************************************************************** ; Now build the List of Spec Trig's Fired ; using the data read from addresses ; 5417:5420 of March_1993_CBus_0.ASF Begin_Error_Checking: Move.L EC_SpTrgFr+4,D2 ; Get the Error Check Spec Trigs Fired Move.L D2,D1 ; 4th and 3rd bytes. LSR.L #8,D1 ; Move.B D2,D1 ; LSL.L #8,D1 ; Move.L EC_SpTrgFr,D2 ; Get the Error Check Swap D2 ; Spec Trigs Fired 2nd and 1st bytes. Move.B D2,D1 ; Swap D2 ; LSL.L #8,D1 ; Move.B D2,D1 ; D1 now has the List of Spec Trig's ; Fired based on data from COMINT ; PROM Addresses 5417:5420. These ; are a read of the 3rd hardware copy. Move.L TrgsFired,D0 ; Move the List of Spec Trig's Fired ; build from reads near the start ; of the COMINT PROM's into reg D0. ; This list is based on the 1st ; hardware copy of this information. IF.L D0 D1 THEN.S ; Test to see if the two versions of the ; Spec Trig's Fired List are equal. PEA.L SpTrgFrLs_Err ; If NOT then, send out JSR ChrWrtOut ; the message "TF". ENDI ; *************************************************************************** * * * This is the section that verifies that the Beam Crossing Number * * that is read at the very end of the COMINT PROM's is the same value * * as the Beam Crossing Number that is read early in the COMINT PROM's. * * The 2 low order bytes will be checked. This is good for a little * * over 200 msec. * * * *************************************************************************** CLR.L D0 ; CLR.L D1 ; Move.B DB_BX_Num_2B,D0 ; Get the 2nd byte of the Data ; Block Beam Crossing Number LSL.L #8,D0 ; and Shift it up 8 bits. Move.B DB_BX_Num_1B,D0 ; Get the 1st byte of the Data ; Block Beam Crossing Number Move.B EC_BX_Num_2B,D1 ; Get the 2nd byte of the Error ; Check Beam Crossing Number LSL.L #8,D1 ; and Shift it up 8 bits. Move.B EC_BX_Num_1B,D1 ; Get the 1st byte of the Error ; Check Beam Crossing Number IF.L D0 D1 THEN.S ; Test to see if the two versions of ; the Beam Crossing Number are equal. PEA.L BX_Num_Err ; If NOT then, send out the JSR ChrWRTOut ; message "BX". ENDI ; *************************************************************************** * * * Verify that the Current Beam Crossing Number is equal to 1 more * * than the Previous Beam Crossing Number. Make this test on the * * low order 32 bits of the Beam Crossing Numbers. * * * *************************************************************************** CLR.L D0 ; CLR.L D1 ; Move.B DB_BX_Num_4B,D0 ; 4th byte of the Current BX Num. LSL.L #8,D0 ; and Shift it up 8 bits. Move.B DB_BX_Num_3B,D0 ; 3rd byte of the Current BX Num. LSL.L #8,D0 ; and Shift it up 8 bits. Move.B DB_BX_Num_2B,D0 ; 2nd byte of the Current BX Num. LSL.L #8,D0 ; and Shift it up 8 bits. Move.B DB_BX_Num_1B,D0 ; 1st byte of the Current BX Num. Move.B Pr_BX_Num_4B,D1 ; 4th byte of the Previous BX Num. LSL.L #8,D1 ; and Shift it up 8 bits. Move.B Pr_BX_Num_3B,D1 ; 3rd byte of the Previous BX Num. LSL.L #8,D1 ; and Shift it up 8 bits. Move.B Pr_BX_Num_2B,D1 ; 2nd byte of the Previous BX Num. LSL.L #8,D1 ; and Shift it up 8 bits. Move.B Pr_BX_Num_1B,D1 ; 1st byte of the Previous BX Num. Add.L #1,D1 ; Add 1 to the Previous BX Number. IF.L D0 D1 THEN.S ; Test if the Current BX Num and 1 ; plus the Previous BX Num are PEA.L CP_BX_Err ; equal. If not then, send out JSR ChrWRTOut ; the message "CP". ENDI ; ************************************************************************* * * * Test data read by the Pilot COMINT. The first 10 PROM addresses * * and the last 10 PROM addresses read by the Pilot COMINT are error * * checking reads. For now 8 of these PROM locations are reads of * * Trigger Tower data from HD and EM towers near eta zero. Verify * * that the read of this data at the Beginning of the PROM's is the * * same as the read of this data at the end of the PROM's. * ************************************************************************* Move.L CT_EC_Read_1_B,D0 ; Move the 1st Beginning LW to D0. Move.L CT_EC_Read_1_E,D1 ; Move the 1st Ending LW to D1. IF.L D0 D1 THEN.S ; Test if the 1st Error Check Read at PEA.L Pilot_Data_Err ; the Beginning of the PROM's is JSR ChrWRTOut ; equal to the read at the End of JMP Bunch_No_Test ; the PROM's. If not then print a ENDI ; and jump to the Bunch Number Test. Move.L CT_EC_Read_2_B,D0 ; Move the 2nd Beginning LW to D0. Move.L CT_EC_Read_2_E,D1 ; Move the 2nd Ending LW to D1. IF.L D0 D1 THEN.S ; Test if the 2nd Error Check Read at PEA.L Pilot_Data_Err ; the Beginning of the PROM's is JSR ChrWRTOut ; equal to the read at the End of JMP Bunch_No_Test ; the PROM's. If not then print a ENDI ; and jump to the Bunch Number Test. Move.L CT_EC_Read_3_B,D0 ; Move the 3rd Beginning LW to D0. Move.L CT_EC_Read_3_E,D1 ; Move the 3rd Ending LW to D1. IF.L D0 D1 THEN.S ; Test if the 3rd Error Check Read at PEA.L Pilot_Data_Err ; the Beginning of the PROM's is JSR ChrWRTOut ; equal to the read at the End of JMP Bunch_No_Test ; the PROM's. If not then print a ENDI ; and jump to the Bunch Number Test. Move.L CT_EC_Read_4_B,D0 ; Move the 4th Beginning LW to D0. Move.L CT_EC_Read_4_E,D1 ; Move the 4th Ending LW to D1. IF.L D0 D1 THEN.S ; Test if the 4th Error Check Read at PEA.L Pilot_Data_Err ; the Beginning of the PROM's is JSR ChrWRTOut ; equal to the read at the End of JMP Bunch_No_Test ; the PROM's. If not then print a ENDI ; and jump to the Bunch Number Test. JMP Bunch_No_Test ; Jump to the beginning of the ; Bunch Number Test. ************************************************************************* * * * Check the Bunch Number: * * * * We deternime the Bunch Number by reading the And-Or Input Terms * * where the "Bunch_P%" terms are connected. These are * * * * Bunch_P% And-Or Input Term Number * * ---------- -------------------------- * * P1 96 * * P2 97 * * P3 98 * * P4 99 * * P5 100 * * P6 101 * * * * Note that And-Or Term 102 is Zero_Bias and Term 103 is Test_Event. * * * * And-Or Input Terms 103:96 used with Spec Trig's 0:15 are read as * * Note 967 Item Numbers 381. This comes from CBus=2, MBA=130, CA=50, * * FA=140. * * * * And-Or Input Terms 103:96 used with Spec Trig's 16:31 are read as * * Note 967 Item Numbers 413. This comes from CBus=2, MBA=66, CA=50, * * FA=140. * * * * We can read these And-Or Input Terms in 4 different places: * * * * COMINT MVME214 * * PROM VME Byte * * Beam Xing For Spec Trig's Adrs Address * * --------- --------------- ---- -------- * * Current Spec Trig 0:15 391 $320313 * * Current Spec Trig 16:31 423 $320353 * * Previous Spec Trig 0:15 923 $32073B * * Previous Spec Trig 16:31 955 $32077B * * * * Thus we can make a number of tests on the Bunch Number: * * * * 1. Does the Current Beam Crossing Bunch Number read for Spec Trig's * * 0:15 equal that read for Spec Trig's 16:31 ? * * * * 2. Is one and only one Bunch_P% And-Or Input Term Set TRUE ? * * * * 3. Does the Current Beam Crossing Bunch Number equal 1 plus the * * Previous Beam Crossing Bunch Number (carry at 6). * * * * 4. Optionally print the Current Beam Crossing Bunch Number. * * * ************************************************************************* Align 4 ; Align to LongWords. Bunch_No_Test: ; Beginning of the Bunch Number Test. Move.B $00320313,D0 ; Get the Current Bunch Number used AndI.L #$0000003F,D0 ; for Spec Trig's 15:0. Move.B $00320353,D1 ; Get the Current Bunch Number used AndI.L #$0000003F,D1 ; for Spec Trig's 31:16 IF.L D0 D1 THEN.S ; Do these two versions of the PEA.L BN_Read_Err ; Current Bunch Number match ? JSR ChrWRTOut ; If not print an error message. ENDI ; Move.B $0032073B,D1 ; Get the Previous Bunch Number AndI.L #$0000003F,D1 ; used for Spec Trigs 15:0 Clr.L D2 ; Clear this software flag. It will ; be set as soon as we find a valid ; Bunch Number. ; Test that Current Bunch Number = ; 1 + Previous Bunch Number. Set ; flag that we found a valid Current IF.L D0 #$00000001 THEN.S ; Is the Current Bunch Number IF.L D1 #$00000020 THEN.S ; P1 ? If not skip the rest. PEA.L M1_Error ; Then if the Previous Bunch JSR ChrWRTOut ; is not P6, Print an error ENDI ; message. Move.B #$0F,D2 ; Set "valid Bunch Nmbr" Flag. ;:* PEA.L Bunch_1_Msg ; Print message that this ;:* JSR ChrWRTOut ; is the P1 Bunch. ENDI ; IF.L D0 #$00000002 THEN.S ; Is the Current Bunch Number IF.L D1 #$00000001 THEN.S ; P2 ? If not skip the rest. PEA.L M2_Error ; Then if the Previous Bunch JSR ChrWRTOut ; is not P1, Print an error ENDI ; message. Move.B #$0F,D2 ; Set "valid Bunch Nmbr" Flag. ;:* PEA.L Bunch_2_Msg ; Print message that this ;:* JSR ChrWRTOut ; is the P2 Bunch. ENDI ; IF.L D0 #$00000004 THEN.S ; Is the Current Bunch Number IF.L D1 #$00000002 THEN.S ; P3 ? If not skip the rest. PEA.L M3_Error ; Then if the Previous Bunch JSR ChrWRTOut ; is not P2, Print an error ENDI ; message. Move.B #$0F,D2 ; Set "valid Bunch Nmbr" Flag. ;:* PEA.L Bunch_3_Msg ; Print message that this ;:* JSR ChrWRTOut ; is the P3 Bunch. ENDI ; IF.L D0 #$00000008 THEN.S ; Is the Current Bunch Number IF.L D1 #$00000004 THEN.S ; P4 ? If not skip the rest. PEA.L M4_Error ; Then if the Previous Bunch JSR ChrWRTOut ; is not P3, Print an error ENDI ; message. Move.B #$0F,D2 ; Set "valid Bunch Nmbr" Flag. ;:* PEA.L Bunch_4_Msg ; Print message that this ;:* JSR ChrWRTOut ; is the P4 Bunch. ENDI ; IF.L D0 #$00000010 THEN.S ; Is the Current Bunch Number IF.L D1 #$00000008 THEN.S ; P5 ? If not skip the rest. PEA.L M5_Error ; Then if the Previous Bunch JSR ChrWRTOut ; is not P4, Print an error ENDI ; message. Move.B #$0F,D2 ; Set "valid Bunch Nmbr" Flag. ;:* PEA.L Bunch_5_Msg ; Print message that this ;:* JSR ChrWRTOut ; is the P5 Bunch. ENDI ; IF.L D0 #$00000020 THEN.S ; Is the Current Bunch Number IF.L D1 #$00000010 THEN.S ; P6 ? If not skip the rest. PEA.L M6_Error ; Then if the Previous Bunch JSR ChrWRTOut ; is not P5, Print an error ENDI ; message. Move.B #$0F,D2 ; Set "valid Bunch Nmbr" Flag. ;:* PEA.L Bunch_6_Msg ; Print message that this ;:* JSR ChrWRTOut ; is the P6 Bunch. ENDI ; IF.B D2 #$0F THEN.S ; Has the D2 flag been set? PEA.L No_Valid_BN_Err ; If not then no valid JSR ChrWRTOut ; Bunch Number was found. ENDI ****************************************************************************** * * * Verify the AND-OR Terms that are Read from the two IMLRO's * * * * Now verify that the And-Or Terms (all 255) read out by the IMLRO * * for Spec Trig's 0:15 match those read from the IMLRO for Spec * * Trig's 16:31. * * * * The AND-OR Terms 0:127 are read from the upper pair of backplanes and * * the AND-OR Terms 128:255 are read from the lower pair of backplanes. * * * * The COMINT Data Block Builder PROM's contain the following information * * to read the Large Tile Trigger AND-OR Terms: * * * * * * Spec Trig's 0:15 D0 Note 967 Items 369:400 COMINT PROM Adrs 379:410 * * VME Byte Adrs * * MBA= 130 CA= 50 FA= 128 IMLRO And-Or Terms 0...7 3202FB * * MBA= 130 CA= 50 FA= 129 IMLRO And-Or Terms 8...15 3202F9 * * MBA= 130 CA= 50 FA= 130 IMLRO And-Or Terms 16...23 3202FF * * MBA= 130 CA= 50 FA= 131 IMLRO And-Or Terms 24...31 3202FD * * MBA= 130 CA= 50 FA= 132 IMLRO And-Or Terms 32...39 320303 * * MBA= 130 CA= 50 FA= 133 IMLRO And-Or Terms 40...47 320301 * * MBA= 130 CA= 50 FA= 134 IMLRO And-Or Terms 48...55 320307 * * MBA= 130 CA= 50 FA= 135 IMLRO And-Or Terms 56...63 320305 * * MBA= 130 CA= 50 FA= 136 IMLRO And-Or Terms 64...71 32030B * * MBA= 130 CA= 50 FA= 137 IMLRO And-Or Terms 72...79 320309 * * MBA= 130 CA= 50 FA= 138 IMLRO And-Or Terms 80...87 32030F * * MBA= 130 CA= 50 FA= 139 IMLRO And-Or Terms 88...95 32030D * * MBA= 130 CA= 50 FA= 140 IMLRO And-Or Terms 96...103 320313 * * MBA= 130 CA= 50 FA= 141 IMLRO And-Or Terms 104...111 320311 * * MBA= 130 CA= 50 FA= 142 IMLRO And-Or Terms 112...119 320317 * * MBA= 130 CA= 50 FA= 143 IMLRO And-Or Terms 120...127 320315 * * * * MBA= 129 CA= 50 FA= 128 IMLRO And-Or Terms 128...135 32031B * * MBA= 129 CA= 50 FA= 129 IMLRO And-Or Terms 136...143 320319 * * MBA= 129 CA= 50 FA= 130 IMLRO And-Or Terms 144...151 32031F * * MBA= 129 CA= 50 FA= 131 IMLRO And-Or Terms 152...159 32031D * * MBA= 129 CA= 50 FA= 132 IMLRO And-Or Terms 160...167 320323 * * MBA= 129 CA= 50 FA= 133 IMLRO And-Or Terms 168...175 320321 * * MBA= 129 CA= 50 FA= 134 IMLRO And-Or Terms 176...183 320327 * * MBA= 129 CA= 50 FA= 135 IMLRO And-Or Terms 184...191 320325 * * MBA= 129 CA= 50 FA= 136 IMLRO And-Or Terms 192...199 32032B * * MBA= 129 CA= 50 FA= 137 IMLRO And-Or Terms 200...207 320329 * * MBA= 129 CA= 50 FA= 138 IMLRO And-Or Terms 208...215 32032F * * MBA= 129 CA= 50 FA= 139 IMLRO And-Or Terms 216...223 32032D * * MBA= 129 CA= 50 FA= 140 IMLRO And-Or Terms 224...231 320333 * * MBA= 129 CA= 50 FA= 141 IMLRO And-Or Terms 232...239 320331 * * MBA= 129 CA= 50 FA= 142 IMLRO And-Or Terms 240...247 320337 * * MBA= 129 CA= 50 FA= 143 IMLRO And-Or Terms 248...255 320335 * * * * * * Spec Trig's 16:31 D0 Note 967 Items 401:432 COMINT PROM Adrs 411:442 * * VME Byte Adrs * * MBA= 66 CA= 50 FA= 128 IMLRO And-Or Terms 0...7 32033B * * MBA= 66 CA= 50 FA= 129 IMLRO And-Or Terms 8...15 320339 * * MBA= 66 CA= 50 FA= 130 IMLRO And-Or Terms 16...23 32033F * * MBA= 66 CA= 50 FA= 131 IMLRO And-Or Terms 24...31 32033D * * MBA= 66 CA= 50 FA= 132 IMLRO And-Or Terms 32...39 320343 * * MBA= 66 CA= 50 FA= 133 IMLRO And-Or Terms 40...47 320341 * * MBA= 66 CA= 50 FA= 134 IMLRO And-Or Terms 48...55 320347 * * MBA= 66 CA= 50 FA= 135 IMLRO And-Or Terms 56...63 320345 * * MBA= 66 CA= 50 FA= 136 IMLRO And-Or Terms 64...71 32034B * * MBA= 66 CA= 50 FA= 137 IMLRO And-Or Terms 72...79 320349 * * MBA= 66 CA= 50 FA= 138 IMLRO And-Or Terms 80...87 32034F * * MBA= 66 CA= 50 FA= 139 IMLRO And-Or Terms 88...95 32034D * * MBA= 66 CA= 50 FA= 140 IMLRO And-Or Terms 96...103 320353 * * MBA= 66 CA= 50 FA= 141 IMLRO And-Or Terms 104...111 320351 * * MBA= 66 CA= 50 FA= 142 IMLRO And-Or Terms 112...119 320357 * * MBA= 66 CA= 50 FA= 143 IMLRO And-Or Terms 120...127 320355 * * * * MBA= 65 CA= 50 FA= 128 IMLRO And-Or Terms 128...135 32035B * * MBA= 65 CA= 50 FA= 129 IMLRO And-Or Terms 136...143 320359 * * MBA= 65 CA= 50 FA= 130 IMLRO And-Or Terms 144...151 32035F * * MBA= 65 CA= 50 FA= 131 IMLRO And-Or Terms 152...159 32035D * * MBA= 65 CA= 50 FA= 132 IMLRO And-Or Terms 160...167 320363 * * MBA= 65 CA= 50 FA= 133 IMLRO And-Or Terms 168...175 320361 * * MBA= 65 CA= 50 FA= 134 IMLRO And-Or Terms 176...183 320367 * * MBA= 65 CA= 50 FA= 135 IMLRO And-Or Terms 184...191 320365 * * MBA= 65 CA= 50 FA= 136 IMLRO And-Or Terms 192...199 32036B * * MBA= 65 CA= 50 FA= 137 IMLRO And-Or Terms 200...207 320369 * * MBA= 65 CA= 50 FA= 138 IMLRO And-Or Terms 208...215 32036F * * MBA= 65 CA= 50 FA= 139 IMLRO And-Or Terms 216...223 32036D * * MBA= 65 CA= 50 FA= 140 IMLRO And-Or Terms 224...231 320373 * * MBA= 65 CA= 50 FA= 141 IMLRO And-Or Terms 232...239 320371 * * MBA= 65 CA= 50 FA= 142 IMLRO And-Or Terms 240...247 320377 * * MBA= 65 CA= 50 FA= 143 IMLRO And-Or Terms 248...255 320375 * * * ****************************************************************************** Clr.L D0 ; Clear the registers that will be Clr.L D1 ; used when testing the LT AND-OR Terms Move.B $003202FB,D0 ; Spec Trig 0:15 AND-OR Terms 0:7 Move.B $0032033B,D1 ; Spec Trig 16:31 AND-OR Terms 0:7 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT01_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T1 ". ENDI ; Move.B $003202F9,D0 ; Spec Trig 0:15 AND-OR Terms 8:15 Move.B $00320339,D1 ; Spec Trig 16:31 AND-OR Terms 8:15 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT02_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T2 ". ENDI ; Move.B $003202FF,D0 ; Spec Trig 0:15 AND-OR Terms 16:23 Move.B $0032033F,D1 ; Spec Trig 16:31 AND-OR Terms 16:23 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT03_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T3 ". ENDI ; Move.B $003202FD,D0 ; Spec Trig 0:15 AND-OR Terms 24:31 Move.B $0032033D,D1 ; Spec Trig 16:31 AND-OR Terms 24:31 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT04_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T4 ". ENDI ; Move.B $00320303,D0 ; Spec Trig 0:15 AND-OR Terms 32:39 Move.B $00320343,D1 ; Spec Trig 16:31 AND-OR Terms 32:39 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT05_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T5 ". ROR.L #4,D0 ; Get Bit 7:4 Move.L D0,-(A7) ; Push Reg D0 onto the stack. JSR BinASCII ; Print the 4 LSBits as a HEX digit. ROL.L #4,D0 ; Get Bit 3:0 Move.L D0,-(A7) ; Push Reg D0 onto the stack. JSR BinASCII ; Print the 4 LSBits as a HEX digit. ROR.L #4,D1 ; Get Bit 7:4 Move.L D1,-(A7) ; Push Reg D1 onto the stack. JSR BinASCII ; Print the 4 LSBits as a HEX digit. ROL.L #4,D1 ; Get Bit 3:0 Move.L D1,-(A7) ; Push Reg D1 onto the stack. JSR BinASCII ; Print the 4 LSBits as a HEX digit. ENDI ; Move.B $00320301,D0 ; Spec Trig 0:15 AND-OR Terms 40:47 Move.B $00320341,D1 ; Spec Trig 16:31 AND-OR Terms 40:47 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT06_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T6 ". ENDI ; Move.B $00320307,D0 ; Spec Trig 0:15 AND-OR Terms 48:55 Move.B $00320347,D1 ; Spec Trig 16:31 AND-OR Terms 48:55 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT07_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T7 ". ENDI ; Move.B $00320305,D0 ; Spec Trig 0:15 AND-OR Terms 56:63 Move.B $00320345,D1 ; Spec Trig 16:31 AND-OR Terms 56:63 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT08_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T8 ". ENDI ; Move.B $0032030B,D0 ; Spec Trig 0:15 AND-OR Terms 64:71 Move.B $0032034B,D1 ; Spec Trig 16:31 AND-OR Terms 64:71 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT09_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T09". ENDI ; Move.B $00320309,D0 ; Spec Trig 0:15 AND-OR Terms 72:79 Move.B $00320349,D1 ; Spec Trig 16:31 AND-OR Terms 72:79 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT10_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T10". ENDI ; Move.B $0032030F,D0 ; Spec Trig 0:15 AND-OR Terms 80:87 Move.B $0032034F,D1 ; Spec Trig 16:31 AND-OR Terms 80:87 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT11_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T11". ENDI ; Move.B $0032030D,D0 ; Spec Trig 0:15 AND-OR Terms 88:95 Move.B $0032034D,D1 ; Spec Trig 16:31 AND-OR Terms 88:95 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT12_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T12". ENDI ; Move.B $00320313,D0 ; Spec Trig 0:15 AND-OR Terms 96:103 Move.B $00320353,D1 ; Spec Trig 16:31 AND-OR Terms 96:103 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT13_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T13". ENDI ; Move.B $00320311,D0 ; Spec Trig 0:15 AND-OR Terms 104:111 Move.B $00320351,D1 ; Spec Trig 16:31 AND-OR Terms 104:111 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT14_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T14". ENDI ; Move.B $00320317,D0 ; Spec Trig 0:15 AND-OR Terms 112:119 Move.B $00320357,D1 ; Spec Trig 16:31 AND-OR Terms 112:119 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT15_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T15". ENDI ; Move.B $00320315,D0 ; Spec Trig 0:15 AND-OR Terms 120:127 Move.B $00320355,D1 ; Spec Trig 16:31 AND-OR Terms 120:127 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT16_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T16". ENDI ; Move.B $0032031B,D0 ; Spec Trig 0:15 AND-OR Terms 128:135 Move.B $0032035B,D1 ; Spec Trig 16:31 AND-OR Terms 128:135 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT17_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T17". ENDI ; Move.B $00320319,D0 ; Spec Trig 0:15 AND-OR Terms 136:143 Move.B $00320359,D1 ; Spec Trig 16:31 AND-OR Terms 135:143 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT18_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T18". ENDI ; Move.B $0032031F,D0 ; Spec Trig 0:15 AND-OR Terms 144:151 Move.B $0032035F,D1 ; Spec Trig 16:31 AND-OR Terms 144:151 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT19_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T19". ENDI ; Move.B $0032031D,D0 ; Spec Trig 0:15 AND-OR Terms 152:159 Move.B $0032035D,D1 ; Spec Trig 16:31 AND-OR Terms 152:159 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT20_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T20". ENDI ; Move.B $00320323,D0 ; Spec Trig 0:15 AND-OR Terms 160:167 Move.B $00320363,D1 ; Spec Trig 16:31 AND-OR Terms 160:167 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT21_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T21". ENDI ; Move.B $00320321,D0 ; Spec Trig 0:15 AND-OR Terms 168:175 Move.B $00320361,D1 ; Spec Trig 16:31 AND-OR Terms 168:175 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT22_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T22". ENDI ; Move.B $00320327,D0 ; Spec Trig 0:15 AND-OR Terms 176:183 Move.B $00320367,D1 ; Spec Trig 16:31 AND-OR Terms 176:183 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT23_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T23". ENDI ; Move.B $00320325,D0 ; Spec Trig 0:15 AND-OR Terms 184:191 Move.B $00320365,D1 ; Spec Trig 16:31 AND-OR Terms 184:191 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT24_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T24". ENDI ; Move.B $0032032B,D0 ; Spec Trig 0:15 AND-OR Terms 192:199 Move.B $0032036B,D1 ; Spec Trig 16:31 AND-OR Terms 192:199 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT25_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T25". ENDI ; Move.B $00320329,D0 ; Spec Trig 0:15 AND-OR Terms 200:207 Move.B $00320369,D1 ; Spec Trig 16:31 AND-OR Terms 200:207 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT26_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T26". ENDI ; Move.B $0032032F,D0 ; Spec Trig 0:15 AND-OR Terms 208:215 Move.B $0032036F,D1 ; Spec Trig 16:31 AND-OR Terms 208:215 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT27_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T27". ENDI ; Move.B $0032032D,D0 ; Spec Trig 0:15 AND-OR Terms 216:223 Move.B $0032036D,D1 ; Spec Trig 16:31 AND-OR Terms 216:223 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT28_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T28". ENDI ; Move.B $00320333,D0 ; Spec Trig 0:15 AND-OR Terms 224:231 Move.B $00320373,D1 ; Spec Trig 16:31 AND-OR Terms 224:231 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT29_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T29". ENDI ; Move.B $00320331,D0 ; Spec Trig 0:15 AND-OR Terms 232:239 Move.B $00320371,D1 ; Spec Trig 16:31 AND-OR Terms 232:239 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT30_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T30". ENDI ; Move.B $00320337,D0 ; Spec Trig 0:15 AND-OR Terms 240:247 Move.B $00320377,D1 ; Spec Trig 16:31 AND-OR Terms 240:247 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT31_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T31". ENDI ; Move.B $00320335,D0 ; Spec Trig 0:15 AND-OR Terms 248:255 Move.B $00320375,D1 ; Spec Trig 16:31 AND-OR Terms 248:255 IF.B D0 D1 THEN.S ; Do these two versions of the PEA.L AOT32_Read_Err ; AND-OR Terms match ? JSR ChrWRTOut ; If not print an error message "T32". ENDI ; RTS ; Return to the calling routine. ************************************************************************* * Define Constants: * * * * Data used to send messages to the VTC console terminal screen. * * * ************************************************************************* ALIGN 4 ; Align to Longword Address. BX_Num_Err DC.B 4,$0D,$0A,'BX' ; BX ---> Beam Crossing. ALIGN 4 ; Align to Longword Address. CP_BX_Err DC.B 4,$0D,$0A,'CP' ; CP ---> Current vs Previous. ALIGN 4 ; Align to Longword Address. SpTrgFrLs_Err DC.B 4,$0D,$0A,'TF' ; TF ---> spec Trigs Fired list. ALIGN 4 ; Align to Longword Address. Pilot_Data_Err DC.B 4,$0D,$0A,'PD' ; PD ---> Pilot comint Data. ALIGN 4 ; Align to Longword Address. BN_Read_Err DC.B 4,$0D,$0A,'BR' ; BR ---> Bunch Number Read Error ALIGN 4 ; Align to Longword Address. M1_Error DC.B 4,$0D,$0A,'M1' ; M1 ---> Error during Bunch 1 ALIGN 4 ; Align to Longword Address. M2_Error DC.B 4,$0D,$0A,'M2' ; M1 ---> Error during Bunch 2 ALIGN 4 ; Align to Longword Address. M3_Error DC.B 4,$0D,$0A,'M3' ; M1 ---> Error during Bunch 3 ALIGN 4 ; Align to Longword Address. M4_Error DC.B 4,$0D,$0A,'M4' ; M1 ---> Error during Bunch 4 ALIGN 4 ; Align to Longword Address. M5_Error DC.B 4,$0D,$0A,'M5' ; M1 ---> Error during Bunch 5 ALIGN 4 ; Align to Longword Address. M6_Error DC.B 4,$0D,$0A,'M6' ; M1 ---> Error during Bunch 6 ALIGN 4 ; Align to Longword Address. Bunch_1_Msg DC.B 4,$0D,$0A,'X1' ; X1 ---> Bunch 1 ALIGN 4 ; Align to Longword Address. Bunch_2_Msg DC.B 4,$0D,$0A,'X2' ; X1 ---> Bunch 2 ALIGN 4 ; Align to Longword Address. Bunch_3_Msg DC.B 4,$0D,$0A,'X3' ; X1 ---> Bunch 3 ALIGN 4 ; Align to Longword Address. Bunch_4_Msg DC.B 4,$0D,$0A,'X4' ; X1 ---> Bunch 4 ALIGN 4 ; Align to Longword Address. Bunch_5_Msg DC.B 4,$0D,$0A,'X5' ; X1 ---> Bunch 5 ALIGN 4 ; Align to Longword Address. Bunch_6_Msg DC.B 4,$0D,$0A,'X6' ; X1 ---> Bunch 6 ALIGN 4 ; Align to Longword Address. No_Valid_BN_Err DC.B 4,$0D,$0A,'NV' ; NV ---> No Valid Bunch Number. ALIGN 4 ; Align to Longword Address. AOT01_Read_Err DC.B 4,$0D,$0A,'T1' ; AND-OR Term error message #1. AOT02_Read_Err DC.B 4,$0D,$0A,'T2' ; AND-OR Term error message #2. AOT03_Read_Err DC.B 4,$0D,$0A,'T3' ; AND-OR Term error message #3. AOT04_Read_Err DC.B 4,$0D,$0A,'T4' ; AND-OR Term error message #4. AOT05_Read_Err DC.B 4,$0D,$0A,'T5' ; AND-OR Term error message #5. AOT06_Read_Err DC.B 4,$0D,$0A,'T6' ; AND-OR Term error message #6. AOT07_Read_Err DC.B 4,$0D,$0A,'T7' ; AND-OR Term error message #7. AOT08_Read_Err DC.B 4,$0D,$0A,'T8' ; AND-OR Term error message #8. AOT09_Read_Err DC.B 4,$0D,$0A,'T9' ; AND-OR Term error message #9. AOT10_Read_Err DC.B 4,$0D,$0A,'TA' ; AND-OR Term error message #10. AOT11_Read_Err DC.B 4,$0D,$0A,'TB' ; AND-OR Term error message #11. AOT12_Read_Err DC.B 4,$0D,$0A,'TC' ; AND-OR Term error message #12. AOT13_Read_Err DC.B 4,$0D,$0A,'TD' ; AND-OR Term error message #13. AOT14_Read_Err DC.B 4,$0D,$0A,'TE' ; AND-OR Term error message #14. AOT15_Read_Err DC.B 4,$0D,$0A,'TF' ; AND-OR Term error message #15. AOT16_Read_Err DC.B 4,$0D,$0A,'TG' ; AND-OR Term error message #16. AOT17_Read_Err DC.B 4,$0D,$0A,'TH' ; AND-OR Term error message #17. AOT18_Read_Err DC.B 4,$0D,$0A,'TI' ; AND-OR Term error message #18. AOT19_Read_Err DC.B 4,$0D,$0A,'TJ' ; AND-OR Term error message #19. AOT20_Read_Err DC.B 4,$0D,$0A,'TK' ; AND-OR Term error message #20. AOT21_Read_Err DC.B 4,$0D,$0A,'TL' ; AND-OR Term error message #21. AOT22_Read_Err DC.B 4,$0D,$0A,'TM' ; AND-OR Term error message #22. AOT23_Read_Err DC.B 4,$0D,$0A,'TN' ; AND-OR Term error message #23. AOT24_Read_Err DC.B 4,$0D,$0A,'TP' ; AND-OR Term error message #24. AOT25_Read_Err DC.B 4,$0D,$0A,'TQ' ; AND-OR Term error message #25. AOT26_Read_Err DC.B 4,$0D,$0A,'TR' ; AND-OR Term error message #26. AOT27_Read_Err DC.B 4,$0D,$0A,'TS' ; AND-OR Term error message #27. AOT28_Read_Err DC.B 4,$0D,$0A,'TT' ; AND-OR Term error message #28. AOT29_Read_Err DC.B 4,$0D,$0A,'TU' ; AND-OR Term error message #29. AOT30_Read_Err DC.B 4,$0D,$0A,'TV' ; AND-OR Term error message #30. AOT31_Read_Err DC.B 4,$0D,$0A,'TW' ; AND-OR Term error message #31. AOT32_Read_Err DC.B 4,$0D,$0A,'TX' ; AND-OR Term error message #32. ************************************************************************* * Define Constants: External References * * * ************************************************************************* XDEF Begin_Error_Checking ; Export this symbol ; to other modules. XREF TrgsFired ; Symbols referenced XREF EC_SpTrgFr ; in this program XREF EC_BX_Num_1B ; module but defined XREF EC_BX_Num_2B ; in another module XREF DB_BX_Num_1B ; Main_Symbols.Include XREF DB_BX_Num_2B XREF DB_BX_Num_3B XREF DB_BX_Num_4B XREF Pr_BX_Num_1B XREF Pr_BX_Num_2B XREF Pr_BX_Num_3B XREF Pr_BX_Num_4B XREF ChrWrtOut,BinASCII XREF CT_EC_Read_1_B,CT_EC_Read_1_E XREF CT_EC_Read_2_B,CT_EC_Read_2_E XREF CT_EC_Read_3_B,CT_EC_Read_3_E XREF CT_EC_Read_4_B,CT_EC_Read_4_E XREF CT_EC_Read_5_B,CT_EC_Read_5_E END