Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proof T4RUPT_PROGRAM #642 (pages 155-171) #836

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 29 additions & 28 deletions Luminary099/T4RUPT_PROGRAM.agc
Original file line number Diff line number Diff line change
Expand Up @@ -103,13 +103,13 @@ DSPSCAN INDEX DSPCNT
CCS DSPCNT # IF DSPTAB ENTRY +, SKIP
TCF DSPSCAN -2 # IF DSPCNT +, TRY AGAIN
TCF DSPLAY # IF DSPTAB ENTRY -, DISPLAY
TABLNTH OCT 12 # DEC 10, LENGTH OF DSPTAB
TABLNTH OCT 12 # DEC 10 LENGTH OF DSPTAB
CCS DSRUPTEM # IF DSRUPTEM=+0, 2ND PASS THRU DSPTAB
120MRUPT DEC 16372 # (DSPCNT = 0). +0 INTO NOUT.
TS NOUT
TC Q
TS DSRUPTEM # IF DSRUPTEM=-0, 1ST PASS THRU DSPTAB
CAF TABLNTH # (DSPCNT=0).+0 INTO DSRUPTEM. PASS AGAIN
CAF TABLNTH # (DSPCNT=0). +0 INTO DSRUPTEM. PASS AGAIN
TCF DSPSCAN -1

DSPLAY AD ONE
Expand Down Expand Up @@ -170,7 +170,7 @@ PROCEEDE CA IMODES33 # MONITOR FOR PROCEED BUTTON
2CADR PROCKEY

# Page 159
# JUMP TO APPROPRIATE ONCE-PER SECOND (0.96 SEC ACTUALLY) ACTIVITY
# JUMP TO APPROPRIATE ONCE-PER SECOND (.96 SEC ACTUALLY) ACTIVITY

T4JUMP INDEX RUPTREG1
TCF +1
Expand All @@ -192,7 +192,7 @@ T4JUMP INDEX RUPTREG1
NODSPOUT EXTEND
WRITE OUT0

CAF 120MRUPT #SET FOR NEXT CCRIVE
CAF 120MRUPT # SET FOR NEXT CDRIVE
TCF SETTIME4

QUIKDSP CAF BIT14
Expand Down Expand Up @@ -240,7 +240,7 @@ QUIKOFF EXTEND
# PROGRAM NAME: IMUMON

# FUNCTIONAL DESCRIPTION: THIS PROGRAM IS ENTERED EVERY 480 MS. IT DETECTS CHANGES OF THE IMU STATUS BITS IN
# CHANNEL 30 AND CALLS THE APPROPRIATE SUBROUTINES. THE BITS PROCESSED AND THEIR RELEVANT SUROUTINES ARE:
# CHANNEL 30 AND CALLS THE APPROPRIATE SUBROUTINES. THE BITS PROCESSED AND THEIR RELEVANT SUBROUTINES ARE:

# FUNCTION BIT SUBROUTINE CALLED
# -------- --- -----------------
Expand All @@ -258,10 +258,10 @@ QUIKOFF EXTEND

# JOBS OR TASKS INITIATED: NONE.

# SUBROUTINES CALLED: TLIM, TURNON, SETISSW, IMUCAGE, IMUOP.
# SUBROUTINES CALLED: TLIM, ITURNON SETISSW, IMUCAGE, IMUOP.

# ERASABELE INITIALIZATION:
# FRESH START OR RESTART WITH NO GROUPS ACTIVE: C((MODES30) = OCT 37411).
# FRESH START OR RESTART WITH NO GROUPS ACTIVE: C(IMODES30) = OCT 37411.
# RESTART WITH ACTIVE GROUPS: C(IMODES30) = (B(IMODES30)AND(OCT 00035)) PLUS OCT 37400.
# THIS LEAVES IMU FAIL BITS INTACT.

Expand All @@ -276,7 +276,7 @@ IMUMON CA IMODES30 # SEE IF THERE HAS BEEN A CHANGE IN THE
RXOR CHAN30
MASK 30RDMSK
EXTEND
BZF TNONTEST # NO CHANGE IN STATUS
BZF TNONTEST # NO CHANGE IN STATUS.

TS RUPTREG1 # SAVE BITS WHICH HAVE CHANGED.
LXCH IMODES30 # UPDATE IMODES30.
Expand Down Expand Up @@ -319,25 +319,25 @@ NXTIFAIL CCS RUPTREG2 # PROCESS ANY ADDITIONAL CHANGES.
# SO THAT AT THE END OF THE PROCESS THE GIMBAL LOCK MONITOR WILL FUNCTION PROPERLY.

# 2) ICDU INITIALIZATION: IN THIS CASE THE COMPUTER WAS PROBABLY TURNED ON WITH THE ISS IN OPERATE OR
# A FRESH START WAS DONE WIT THE ISS IN OPERATE. IN THIS CASE ONLY ISS OPERATE IS ON. THE ICDU'S ARE
# A FRESH START WAS DONE WITH THE ISS IN OPERATE. IN THIS CASE ONLY ISS OPERATE IS ON. THE ICDU'S ARE
# ZEROED SO THE GIMBAL LOCK MONITOR WILL FUNCTION. AN EXCEPTION IS IF THE ISS IS IN GIMBAL LOCK AFTER
# A RESTART, THE ICDU'S WILL NOT BE ZEROED.

# 3) RESTART WITH RESTARTABLE PROGRAM USING THE IMU: IN THIS CASE, NO INITIALIZATION TAKES PLACE SINCE
# IT IS ASSUMED THT THE USING PROGRAM DID THE INITIALIZATION AND THEREFORE T4RUPT SHOULD NOT INTERFERE.
# IT IS ASSUMED THAT THE USING PROGRAM DID THE INITIALIZATION AND THEREFORE T4RUPT SHOULD NOT INTERFERE.

# IMODES30 BIT 7 IS SET = 1 BY THE FIRST BIT (CHANNEL 30 BIT 14 OR 9) WHICH ARRIVES. FOLLOWING THIS, TNONTEST IS
# ENTERED, FINDS BIT 7 = 1 BUT BIT 8 = 0, SO IT SETS BIT 8 = 1 AND EXITS. THE NEXT TIME IT FINDS BIT 8 = 1 AND
# PROCEEDS, SETTING BITS 8 AND 7 = 0. AT PROCTNON, IF ISS TURN-ON REQUEST IS PRESENT, THE ISS IS CAGED (ZERO +
# COARSE). IF ISS OPERATE IS NOT PRESENT PROGRAM ALARM 00213 IS ISSUED. AT THE END OF A 90 SECOND CAGE, BIT 2
# OF IMODES30 IS TESTED. IF IT IS = 1, ISS TURN-ON WAS NOT PRESENT FOR THE ENTIRE 90 SECONDS. IN THAT CASE, IF
# THE ISS TURN-ON REQUEST IS PRESENT TEH 90 SECOD WAIT IS REPEATED. OTHERWISE NO ACTION OCURS UNLESS A PROGRAM
# WAS WAITING FOR THE INITIALIZATION IN WHIC CASE TH PROGRAM IS GIVEN AN IMUSTALL ERROR RETURN. IF THE DELAY
# THE ISS TURN-ON REQUEST IS PRESENT THE 90 SECOND WAIT IS REPEATED, OTHERWISE NO ACTION OCCURS UNLESS A PROGRAM
# WAS WAITING FOR THE INITIALIZATION IN WHICH CASE THE PROGRAM IS GIVEN AN IMUSTALL ERROR RETURN. IF THE DELAY
# WENT PROPERLY, THE ISS DELAY OUTBIT IS SENT AND THE ICDU'S ZEROED. A TASK IS INITIATED TO REMOVE THE PIPA FAIL
# INHIBIT BIT IN 10.24 SECONDS. IF A MISSION PROGRAM WAS WAITING IT IS INFORMED VIA ENDIMU.

# AT PROCTNON, IF ONLY ISS OPERATE IS PRESENT (OPONLY), THE CDU'S ARE ZEROED UNLESS THE PLATFORM IS IN COARSE
# ALIGN (= GIMBAL LOCK HERE) OR A MISSIN PROGRAM IS USING THE IMU (INUSEFLG = 1).
# ALIGN (= GIMBAL LOCK HERE) OR A MISSION PROGRAM IS USING THE IMU (IMUSEFLG = 1).

# CALLING SEQUENCE: T4RUPT EVERY 480 MILLISECONDS AFTER IMUMON.

Expand Down Expand Up @@ -386,7 +386,7 @@ PROCTNON CS BITS7&8
CCS A
TCF +3

TC ALARM # ALARM IF NOT
TC ALARM # ALARM IF NOT.
OCT 213

+3 TC CAGESUB
Expand All @@ -407,7 +407,7 @@ ENDTNON CS BIT2 # RESET TURN-ON REQUEST FAIL BIT.
EXTEND
BZF ENDTNON2

CAF BIT14 # IF IT WAS ON AND TURN-ON REQUEST NOW.
CAF BIT14 # IF IT WAS ON AND TURN-ON REQUEST NOW
# Page 165
MASK IMODES30 # PRESENT, RE-ENTER 90 SEC DELAY IN WL.
EXTEND
Expand Down Expand Up @@ -436,7 +436,7 @@ UNZ2 TC ZEROICDU
CAF BIT11 # WAIT 10 SECS FOR CTRS TO FIND GIMBALS
TC VARDELAY

ISSUP CS OCT54 # REMOVE CAGING, IMU FAIL INHIBIT BIT, AND
ISSUP CS OCT54 # REMOVE CAGING, IMU FAIL INHIBIT, AND
MASK IMODES30 # ICDUFAIL INHIBIT FLAGS.
TS IMODES30

Expand Down Expand Up @@ -468,26 +468,26 @@ ISSUP CS OCT54 # REMOVE CAGING, IMU FAIL INHIBIT BIT, AND

OPONLY CAF BIT4 # IF OPERATE ON ONLY, AND WE ARE IN COARSE
EXTEND # ALIGN, DON'T ZERO THE CDUS BECAUSE WE
RAND CHAN12 # MIGHT BE IN GIMBAL LOCK.
RAND CHAN12 # MIGHT BE IN GIMBAL LOCK
CCS A
TCF C33TEST

CAF IMUSEBIT # OTHERWISE, ZERO THE COUNTERS.
MASK FLAGWRD0 # UNLESS SOMEONE IS USING TH IMU.
MASK FLAGWRD0 # UNLESS SOMEONE IS USING THE IMU.
CCS A
TCF C33TEST

TC CAGESUB2 # SET TURNON FLAGS.

ISSZERO TC IBNKCALL # TURN OFF NO ATT LAMP.
CADR NOATTOFF # IMU CAGE OFF ENTRY.
ISSZERO TC IBNKCALL # TURN OFF NO ATT LAMP
CADR NOATTOFF # IMU CAGE OFF ENTRY

CAF BIT5 # ISS CDU ZERO
EXTEND
WOR CHAN12

TC ZEROICDU
CAF BIT6 # WAIT 300 MS. FOR AGS TO RECEIVE SIGNAL.
CAF BIT6 # WAIT 300 MS FOR AGS TO RECEIVE SIGNAL.
TC WAITLIST
EBANK= M11
2CADR UNZ2
Expand All @@ -499,7 +499,7 @@ ISSZERO TC IBNKCALL # TURN OFF NO ATT LAMP.
#
# FUNCTIONAL DESCRIPTION: THIS PROGRAM MONITORS THREE FLIP-FLOP INBITS OF CHANNEL 33 AND CALLS THE APPROPRIATE
# SUBROUTINE TO PROCESS A CHANGE. IT IS ANALOGOUS TO IMUMON, WHICH MONITORS CHANNEL 30, EXCEPT THAT IT READS
# CHANNEL 33 WITH A WAND INSTRUCTION BECAUSE A `WRITE' PULSE IS REQUIRED TO RESET THE FLIP-FLOPS. THE BITS
# CHANNEL 33 WITH A WAND INSTRUCTION BECAUSE A 'WRITE' PULSE IS REQUIRED TO RESET THE FLIP-FLOPS. THE BITS
# PROCESSED AND THE SUBROUTINES CALLED ARE:
# BIT FUNCTION SUBROUTINE
# --- -------- ----------
Expand Down Expand Up @@ -559,6 +559,7 @@ NXTIBT INCR RUPTREG1
MASK IMODES33
INDEX RUPTREG1
TC C33JMP

NXTFL33 CCS RUPTREG2 # PROCESS POSSIBLE ADDITIONAL CHANGES.
TCF NXTIBT -1

Expand All @@ -580,7 +581,7 @@ NXTFL33 CCS RUPTREG2 # PROCESS POSSIBLE ADDITIONAL CHANGES.
# 2) LAMPTEST BEFORE TURNING OFF GIMBAL LOCK LAMP.
#
# ERASABLE INITIALIZATION:
# 1) FRESH START OR RESTART WITH NO GROUPS ACTIVE: C(CDUZ) = 0, IMODES30 BIT 6 = 0, IMODES33 BIT 1 = 0.
# 1) FRESH START OR RESTART WITH NO GROUPS ACTIVE: C(CDUZ) = 0, IMODES30 BIT 6 = 0, IMODES33 BIT 1 = 0.
# 2) RESTART WTIH GROUPS ACTIVE: SAME AS FRESH START EXCEPT C(CDUZ) NOT CHANGED SO GIMBAL MONITOR
# PROCEEDS AS BEFORE.
#
Expand All @@ -598,7 +599,7 @@ GLOCKCHK AD -70DEGS
EXTEND
BZMF SETGLOCK -1 # NO LOCK.

AD -15DEGS # SEE IF ABS(MGA) GREATER THAN 85 DEGREES
AD -15DEGS # SEE IF ABS(MGA) GREATER THAN 85 DEGREES.
EXTEND
BZMF NOGIMRUN

Expand All @@ -611,7 +612,7 @@ GLOCKCHK AD -70DEGS
TC IBNKCALL
CADR SETCOARS

CAF SIX # ENABLE ISS ERROR COUNTERS IN 60 MS.
CAF SIX # ENABLE ISS ERROR COUNTERS IN 60 MS
TC WAITLIST
# Page 170
EBANK= CDUIND
Expand Down Expand Up @@ -659,13 +660,13 @@ GLAMPTST TC LAMPTEST # TURN OFF UNLESS LAMP TEST IN PROGRESS.
#
# CALLING SEQUENCE: CALLED BY IMUMON ON A CHANGE OF BIT 15 OF CHANNEL 30.
#
# JOBS OR TASKS INITIATED: NON.
# JOBS OR TASKS INITIATED: NONE.
#
# SUBROUTINES CALLED: LAMPTEST.
#
# ERASABLE INITIALIZATION: FRESH START AND RESTART TURN THE TEMP LAMP OFF.
#
# ALARMS: TEMP LAMP TURNED ON WHEN THE IMU TEMP GOES OUT OF LIMITS.
# ALARMS: TEMP LAMP TURNED ON WHEN IMU TEMP GOES OUT OF LIMITS.
#
# EXIT: NXTIFAIL.
#
Expand Down Expand Up @@ -1351,4 +1352,4 @@ GPMATRIX CAE CDUZ # SINGLE ENTRY POINT
TC RESUME

NORRGMON EQUALS DAPT4S
ENDDAPT4 EQUALS RESUME
ENDDAPT4 EQUALS RESUME