Proof FRESH_START_AND_RESTART #208 (#401)

* Proof FIXED_FIXED_CONSTANT_POOL (#207)

* wip(pp. 0181-0185): Proof FRESH_START_AND_RESTART #208

* done(pp. 0181-0210): Proof FRESH_START_AND_RESTART #208
This commit is contained in:
Glenn Dwiyatcita 2019-09-02 17:11:25 +02:00 committed by James Harris
parent 8bad6a00a1
commit 73de5c1b3a

View File

@ -35,102 +35,103 @@
# PROGRAM DESCRIPTION 8 APRIL, 1967 # PROGRAM DESCRIPTION 8 APRIL, 1967
# SUNDISK REV 120 # SUNDISK REV 120
# FUNCTIONAL DESCRIPTION # FUNCTIONAL DESCRIPTION
#
# SLAP1 MAN INITIATED FRESH START # SLAP1 MAN INITIATED FRESH START
# 1. EXECUTE STARTSUB # 1. EXECUTE STARTSUB
# 2. TURN OFF DSKY DISCRETE-LAMPS # 2. TURN OFF DSKY DISCRETE-LAMPS
# 3. CLEAR FAIL REGISTERS, SELF-CHECK ERROR COUNTER AND RESTART # 3. CLEAR FAIL REGISTERS,SELF-CHECK ERROR COUNTER AND RESTART
# COUNTER # COUNTER
# 4. EXECUTE DOFSTART # 4. EXECUTE DOFSTART
#
# DOFSTART MACHINE INITIATED FRESH START # DOFSTART MACHINE INITIATED FRESH START
#
# 1. CLEAR SELF-CHECK REGISTERS, MODE REGISTER AND CDUZ REGISTER # 1. CLEAR SELF-CHECK REGISTERS, MODE REGISTER AND CDUZ REGISTER
# 2. CLEAR PHASE TABLE # 2. CLEAR PHASE TABLE
# 3. INITIALIZE IMU FLAGS # 3. INITIALIZE IMU FLAGS
# 4. INITIALIZE FLAGWORDS # 4. INITIALIZE FLAGWORDS
# 5. TRANSFER CONTROL TO IDLE LOOP IN DUMMYJOB # 5. TRANSFER CONTROL TO IDLE LOOP IN DUMMYJOB
#
# GOPROG HARDWARE RESTART # GOPROG HARDWARE RESTART
#
# 0. EXECUTE STARTSUB # 0. EXECUTE STARTSUB
# 1. TRANSFER CONTROL TO DOFSTART IF ANY OF THE FOLLOWING CONDITIONS # 1. TRANSFER CONTROL TO DOFSTART IF ANY OF THE FOLLOWING CONDITIONS
# EXIST. # EXIST.
# A. RESTART OCCURRED DURING EXECUTION OF ERASCHK. # A. RESTART OCCURED DURING EXECUTION OF ERASCHK
# B. BOTH OSCILLATOR FAIL AND AGC WARNING ARE ON. # B. BOTH OSCILLATOR FAIL AND AGC WARNING ARE ON
# C. MARK REJECT AND EITHER NAV OR MAIN DSKY ERROR LIGHT RESET # C. MARK REJECT AND EITHER NAV OR MAIN DSKY ERROR LIGHT RESET
# ARE ON. # ARE ON.
# 2. SCHEDULE A T5RUPT PROGRAM FOR THE DAP # 2. SCHEDULE A T5RUPT PROGRAM FOR THE DAP
# 3. SET FLAGWRD5 BITS FOR INTWAKE ROUTINE # 3. SET FLAGWRD5 BITS FOR INTWAKE ROUTINE
# 4. EXTINGUISH ALL DSKY LAMPS, EXCEPT FOR PROGRAM ALARM, GIMBAL LOCK, AND # 4. EXTINGUISH ALL DSKY LAMPS, EXCEPT FOR PROGRAM ALARM,GIMBAL LOCK AND
# NO ATT # NO ATT
# 5. INITIALIZE IMU FLAGS # 5. INITIALIZE IMU FLAGS
# 6. IF ENGINE COMMAND IS ON (FLAGWRD5, BIT 7), SET ENGINE ON (CHANNEL # 6. IF ENGINE COMMAND IS ON (FLAGWRD5,BIT 7), SET ENGINE ON (CHAN-
# 11, BIT 13). # NEL 11, BIT 13)
# 7. TRANSFER CONTROL TO GOPROG3 # 7. TRANSFER CONTROL TO GOPROG3
#
# ENEMA SOFTWARE RESTART -- INITIATED BY MAJOR MODE CHANGE # ENEMA SOFTWARE RESTART INITIATED BY MAJOR MODE CHANGE
#
# 1. EXECUTE STARTSB2 # 1. EXECUTE STARTSB2
# 2. KILL PROGRAMS THAT WERE INTEGRATING OR WAITING FOR INTEGRATION # 2. KILL PROGRAMS THAT WERE INTEGRATING OR WAITING FOR INTEGRATION
# ROUTINE # ROUTINE
# 3. TRANSFER CONTROL TO GOPROG3 # 3. TRANSFER CONTROL TO GOPROG3
#
# GOPROG3 SUBROUTINE COMMON TO GOPROG AND ENEMA # GOPROG3 SUBROUTINE COMMON TO GOPROG AND ENEMA
#
# 1. TEST PHASE TABLES -- IF INCORRECT, DISPLAY ALARM 1107 AND # 1. TEST PHASE TABLES - IF INCORRECT, DISPLAY ALARM 1107 AND
# TRANSFER CONTROL TO DOFSTART # TRANSFER CONTROL TO DOFSTART
# 2. DISPLAY MAJOR MODE # 2. DISPLAY MAJOR MODE
# 3. IF ANY GROUPS WERE ACTIVE UPON RESTART, TRANSFER CONTROL TO THE # 3. IF ANY GROUPS WERE ACTIVE UPON RESTART,TRANSFER CONTROL TO THE
# Page 182 # Page 182
# RESTARTS SUBROUTINE TO RESCHEDULE PENDING TASKS, LONGCALLS, AND # RESTARTS SUBROUTINE TO RESCHEDULE PENDING TASKS, LONGCALLS, AND
# JOBS (P20 IS RESTARTED VIA FINDVAC) # JOBS (P20 IS RESTARTED VIA FINDVAC)
# 4. IF NO GROUPS WERE ACTIVE UPON RESTART, DISPLAY ALARM CODE # 4. IF NO GROUPS WERE ACTIVE UPON RESTART, DISPLAY ALARM CODE
# 1110 (RESTART WITH NO ACTIVE GROUPS) # 1110 (RESTART WITH NO ACTIVE GROUPS).
# 5. TRANSFER CONTROL TO IDLE LOOP IN DUMMYJOB # 5. TRANSFER CONTROL TO IDLE LOOP IN DUMMYJOB
#
# STARTSUB SUBROUTINE COMMON TO SLAP1 AND GOPROG # STARTSUB SUBROUTINE COMMON TO SLAP1 AND GOPROG
#
# 1. CLEAR OUTBIT CHANNELS 5 AND 6 # 1. CLEAR OUTBIT CHANNELS 5 AND 6
# 2. INITIALIZE TIME5, TIME4, TIME3 # 2. INITIALIZE TIME5,TIME4,TIME3
# 3. TRANSFER CONTROL TO STARTSB2 # 3. TRANSFER CONTROL TO STARTSB2
#
# STARTSB2 SUBROUTINE COMMON TO STARTSUB AND ENEMA # STARTSB2 SUBROUTINE COMMON TO STARTSUB AND ENEMA
#
# 1. INTIALIZE OUTBIT CHANNELS 11,12,13, AND 14 # 1. INTIALIZE OUTBIT CHANNELS 11,12,13, AND 14
# 2. REPLACE ALL TASKS ON WAITLIST WITH ENDTASK # 2. REPLACE ALL TASKS ON WAITLIST WITH ENDTASK
# 3. MAKE ALL EXECUTIVE REGISTERS AVAILABLE # 3. MAKE ALL EXECUTIVE REGISTERS AVAILABLE
# 4. MAKE ALL VAC AREAS AVAILABLE # 4. MAKE ALL VAC AREAS AVAILABLE
# 5. CLEAR DSKY REGISTERS # 5. CLEAR DSKY REGISTERS
# 6. ZERO NUMEROUS SWITCHES # 6. ZERO NUMEROUS SWITCHES
# 7. INITIALIZE OPTICS FLAGS # 7. INITIALIZE OPTICS FLAGS
# 8. INITIALIZE PIPA AND TELEMETRY FAIL FLAGS # 8. INITIALIZE PIPA AND TELEMETRY FAIL FLAGS
# 9. INITIALIZE DOWN TELEMETRY # 9. INITIALIZE DOWN TELEMETRY
#
# INPUT/OUTPUT INITIALIZATION # INPUT/OUTPUT INITIALIZATION
#
# A. CALLING SEQUENCE # A. CALLING SEQUENCE
#
# SLAP1 -- TC POSTJUMP OR VERB 36,ENTER # SLAP1 - TC POSTJUMP OR VERB 36,ENTER
# CADR SLAP1 # CADR SLAP1
#
# ENEMA -- TC POSTJUMP *** DO NOT CALL ENEMA WITHOUT *** # ENEMA - TC POSTJUMP *** DO NOT CALL ENEMA WITHOUT ***
# CADR ENEMA *** CONSULTING P00H PEOPLE *** # CADR ENEMA *** CONSULTING P00H PEOPLE ***
#
# B. OUTPUT # B. OUTPUT
#
# ERASABLE MEMORY INITIALIZATION # ERASABLE MEMORY INITIALIZATION
#
# PROGRAM ANALYSIS # PROGRAM ANALYSIS
#
# A. SUBROUTINES CALLED # A. SUBROUTINES CALLED
#
# MR.KLEAN,WAITLIST,DSPMM,ALARM,RESTARTS,FINDVAC # MR.KLEAN,WAITLIST,DSPMM,ALARM,RESTARTS,FINDVAC
#
# B. ALARMS # B. ALARMS
#
# 1107 PHASE TABLE ERROR # 1107 PHASE TABLE ERROR
# 1110 RESTART WITH NO ACTIVE GROUPS # 1110 RESTART WITH NO ACTIVE GROUPS
# Page 183 # Page 183
BANK 10 BANK 10
@ -258,7 +259,7 @@ DOFSTART CAF ZERO # DO A FRESH START.
DXCH STATE +10D DXCH STATE +10D
ENDRSTRT TC POSTJUMP ENDRSTRT TC POSTJUMP
CADR DUMMYJOB +2 # PICKS UP AT RELINT. (IN A SWITCHED BANK.) CADR DUMMYJOB +2 # DOES A RELINT. (IN A SWITCHED BANK.)
MR.KLEAN INHINT MR.KLEAN INHINT
EXTEND EXTEND
@ -295,8 +296,8 @@ GOPROG INCR REDOCTR # ADVANCE RESTART COUNTER.
TC BANKCALL # STORE ERASABLES FOR DEBUGGING PURPOSES. TC BANKCALL # STORE ERASABLES FOR DEBUGGING PURPOSES.
CADR VAC5STOR CADR VAC5STOR
CA BIT15 # TEST OSC FAIL BIT TO SEE IF WE HAVE CA BIT15 # TEST OSC FAIL BIT TO SEE IF WE HAVE
EXTEND # HAD A POWER TRANSIENT. IF SO, ATTEMPT EXTEND # HAD A POWER TRANSIENT. IF SO, ATTEMPT
WAND CHAN33 # A RESTART. IF NOT, CHECK THE PRESENT WAND CHAN33 # A RESTART. IF NOT, CHECK THE PRESENT
EXTEND # STATE OF AGC WARNING BIT. EXTEND # STATE OF AGC WARNING BIT.
BZF BUTTONS BZF BUTTONS
@ -308,40 +309,40 @@ GOPROG INCR REDOCTR # ADVANCE RESTART COUNTER.
BUTTONS TC LIGHTSET # MAKE FRESH START CHECKS BEFORE ERESTORE. BUTTONS TC LIGHTSET # MAKE FRESH START CHECKS BEFORE ERESTORE.
# ERASCHK TEMPORARILY STORES THE CONTENST OF TWO ERASABLE LOCATIONS, X # ERASCHK TEMPORARILY STORES THE CONTENTS OF TWO ERASABLE LOCATIONS, X
# AND X+1 INTO SKEEP5 AND SKEEP6. IT ALSO STORES X INTO SKEEP7 AND # AND X+1 INTO SKEEP5 AND SKEEP6. IT ALSO STORES X INTO SKEEP7 AND
# ERESTORE. IF ERASCHK IS INTERRUPTED BY A RESTART, C(ERESTORE) SHOULD # ERESTORE. IF ERASCHK IS INTERRUPTED BY A RESTART, C(ERESTORE) SHOULD
# EQUAL C(SKEEP7), AND SHOULD BE A + NUMBER LESS THAN 2000 OCT. OTHERWISE # EQUAL C(SKEEP7),AND SHOULD BE A + NUMBER LESS THAN 2000 OCT. OTHERWISE
# C(ERESTORE) SHOULD EQUAL +0. # C(ERESTORE) SHOULD EQUAL +0.
CAF HI5 CAF HI5
MASK ERESTORE MASK ERESTORE
EXTEND EXTEND
BZF +2 # IF ERESTORE NOT = +0 OR +N LESS THAN 2K, BZF +2 # IF ERESTORE NOT = +0 OR +N LESS THAN 2K,
TCF NONAVKEY +1 # DOUBT E MEMORY AND DO A FRESH START TCF NONAVKEY +1 # DOUBT E MEMORY AND DO A FRESH START.
CS ERESTORE CS ERESTORE
EXTEND EXTEND
BZF ELRSKIP -1 BZF ELRSKIP -1
AD SKEEP7 AD SKEEP7
EXTEND EXTEND
BZF +2 # = SKEEP7, RESTORE E MEMORY. BZF +2 # = SKEEP7, RESTORE E MEMORY.
TCF NONAVKEY +1 # NOT = SKEEP7, DOUBT E MEM, DO FRESH START TCF NONAVKEY +1 # NOT=SKEEP7, DOUBT EMEM, DO FRESH START
CA SKEEP4 CA SKEEP4
TS EBANK # EBANK OF E MEMORY THAT WAS UNDER TEST. TS EBANK # EBANK OF E MEMORY THAT WAS UNDER TEST.
EXTEND # (NOT DXCH SINCE THIS MIGHT HAPPEN AGAIN) EXTEND # (NOT DXCH SINCE THIS MIGHT HAPPEN AGAIN)
DCA SKEEP5 DCA SKEEP5
INDEX SKEEP7 INDEX SKEEP7
DXCH 0000 # E MEMORY RESTORED DXCH 0000 # E MEMORY RESTORED.
CA ZERO CA ZERO
TS ERESTORE TS ERESTORE
# Page 187 # Page 187
TC STARTSUB # DO INITIALIZATION AFTER ERASE RESTORE. TC STARTSUB # DO INITIALIZATION AFTER ERASE RESTORE.
ELRSKIP CA FLAGWRD6 # RESTART AUTOPILOTS ELRSKIP CA FLAGWRD6 # RESTART AUTOPILOTS
EXTEND EXTEND
MP BIT3 # BITS 15,14 00 T5IDLOC MP BIT3 # BITS 15,14 00 T5IDLOC
MASK SIX # 01 REDORCS MASK SIX # 01 REDORCS
EXTEND # 10 REDOTVC EXTEND # 10 REDOTVC
INDEX A # 11 REDOSAT INDEX A # 11 REDOSAT
DCA T5IDLER DCA T5IDLER
DXCH T5LOC DXCH T5LOC
@ -359,12 +360,12 @@ ELRSKIP CA FLAGWRD6 # RESTART AUTOPILOTS
AD IM33INIT AD IM33INIT
TS IMODES33 TS IMODES33
CA 9,6,4 # LEAVE PROG ALARM, GIMBAL LOCK, NO ATT CA 9,6,4 # LEAVE PROG ALARM,GIMBAL LOCK, NO ATT
MASK DSPTAB +11D # LAMPS INTACT ON HARDWARE RESTART MASK DSPTAB +11D # LAMPS INTACT ON HARDWARE RESTART
AD BIT15 AD BIT15
XCH DSPTAB +11D XCH DSPTAB +11D
MASK BIT4 # IF NO ATT LAMP WAS ON, LEAVE ISS IN MASK BIT4 # IF NO ATT LAMP WAS ON, LEAVE ISS IN
EXTEND # COARSE ALIGN EXTEND # COURSE ALIGN
BZF NOCOARSE BZF NOCOARSE
TC IBNKCALL # IF NO ATT LAMP ON, RETURN ISS TO TC IBNKCALL # IF NO ATT LAMP ON, RETURN ISS TO
CADR SETCOARS # COARSE ALIGN. CADR SETCOARS # COARSE ALIGN.
@ -402,7 +403,7 @@ ENEMA INHINT
BZMF GOPROG3 # NO BZMF GOPROG3 # NO
CAF .5SEC # YES, CALL TVCEXEC TASK WHICH WAS KILLED CAF .5SEC # YES, CALL TVCEXEC TASK WHICH WAS KILLED
TC WAITLIST # IN STARTSB2 TC WAITLIST # IN STARTSB2.
EBANK= BZERO EBANK= BZERO
2CADR TVCEXEC 2CADR TVCEXEC
@ -439,13 +440,13 @@ PCLOOP TS MPAC +5
CAF EBANK3 CAF EBANK3
TS EBANK TS EBANK
# Page 189 # Page 189
CAF NUMGRPS # SEE IF ANY GROUPS RUNNING CAF NUMGRPS # SEE IF ANY GROUPS RUNNING.
NXTRST TS MPAC +5 NXTRST TS MPAC +5
DOUBLE DOUBLE
INDEX A INDEX A
CCS PHASE1 CCS PHASE1
TCF PACTIVE # PNZ -- GROUP ACTIVE. TCF PACTIVE # PNZ - GROUP ACTIVE.
TCF PINACT # +0 -- GROUP NOT RUNNING. TCF PINACT # +0 - GROUP NOT RUNNING.
PACTIVE TS MPAC PACTIVE TS MPAC
INCR MPAC # ABS OF PHASE. INCR MPAC # ABS OF PHASE.
@ -466,12 +467,12 @@ PINACT CCS MPAC +5 # PROCESS ALL RESTART GROUPS.
PTBAD TC ALARM # SET ALARM TO SHOW PHASE TABLE FAILURE. PTBAD TC ALARM # SET ALARM TO SHOW PHASE TABLE FAILURE.
OCT 1107 OCT 1107
TCF DOFSTART # IN R21. TCF DOFSTART # IN R2).
# ********* ********* **********
# DO NOT USE GOPROG2 OR ENEMA WITHOUT CONSULTING P00H PEOPLE.
# ******** ****** ******
#
# DO NOT USE GOPROG2 OR ENEMA WITHOUT CONSULTING P00H PEOPLE
#
GOPROG2 EQUALS ENEMA GOPROG2 EQUALS ENEMA
OCT10000 = BIT13 OCT10000 = BIT13
OCT30000 = PRIO30 OCT30000 = PRIO30
@ -512,7 +513,7 @@ STARTSUB CAF LDNPHAS1 # SET POINTER SO NEXT 20MS DOWNRUPT WILL
TS TIME5 # 37774 TO TIME5. TS TIME5 # 37774 TO TIME5.
STARTSB2 CAF OCT77603 # TURN OFF UPLINK ACTY, TEMP CAUTION, KR, STARTSB2 CAF OCT77603 # TURN OFF UPLINK ACTY, TEMP CAUTION, KR,
EXTEND # FLASH, OP. ERROR, LEAVE OTHERS UNCHANGED. EXTEND # FLASH, OP. ERROR, LEAVE OTHERS UNCHANGED
WAND DSALMOUT WAND DSALMOUT
CAF OCT74777 # TURN OFF TEST ALARMS, STANDBY ENABLE. CAF OCT74777 # TURN OFF TEST ALARMS, STANDBY ENABLE.
@ -676,26 +677,31 @@ SWINIT OCT 0
OCT 0 OCT 0
OCT 0 OCT 0
# Page 194 # Page 194
# PROGRAM NAME GOTOP00H ASSEMBLY SUNDISK # PROGRAM NAME GOTOP00H ASSEMBLY SUNDISK
# LOG SECTION FRESH START AND RESTART # LOG SECTION FRESH START AND RESTART
#
# FUNCTIONAL DESCRIPTION # FUNCTIONAL DESCRIPTION
#
# 1. DISPLAY MAJOR MODE NUMBER 00 IN DSKY REGISTER R1 AND R3. FLASH V50N07 ON DSKY. (M M CHANGE REQUEST) # 1. DISPLAY MAJOR MODE NUMBER 00 IN DSKY REGISTER R1 AND R3. FLASH V50 N07 ON DSKY. (M M CHANGE REQUEST)
# 2. PERMIT A CURRENT PENDING REQUEST (FLASH ON DSKY) TO BE REPLACED (WITHOUT AN ABORT) BY THE MAJOR MODE # 2. PERMIT A CURRENT PENDING REQUEST (FLASH ON DSKY) TO BE REPLACED (WITHOUT AN ABORT) BY THE MAJOR MODE
# CHANGE REQUEST. # CHANGE REQUEST.
#
# INPUT/OUTPUT INFORMATION # INPUT/OUTPUT INFORMATION
#
# A. CALLING SEQUENCE TC GOTOP00H # A. CALLING SEQUENCE TC GOTOP00H
# B. ERASABLE INITIALIZATION NONE # B. ERASABLE INITIALIZATION NONE
# C. OUTPUT FLASH V 50 NOUN 07 ON DSKY
# D. DEBRIS L # C. OUTPUT FLASH VERB 50 NOUN 07 ON DSKY
#
# D. DEBRIS L
# PROGRAM ANALYSIS # PROGRAM ANALYSIS
#
# A. SUBROUTINES CALLED GOPERF3, LINUS # A. SUBROUTINES CALLED GOPERF3, LINUS
# B. NORMAL EXIT TCF ENDOFJOB
# B. NORMAL EXIT TCF ENDOFJOB
# C. ALARM AND ABORT EXITS NONE # C. ALARM AND ABORT EXITS NONE
BLOCK 02 BLOCK 02
@ -727,70 +733,70 @@ GOP00FIX TC INITSUB
V37N99 VN 3799 V37N99 VN 3799
# Page 196 # Page 196
# PROGRAM NAME V37 ASSEMBLY SUNDISK # PROGRAM NAME V37 ASSEMBLY SUNDISK
# # LOG SECTION FRESH START AND RESTART
# LOG SECTION FRESH START AND RESTART
#
# FUNCTIONAL DESCRIPTION # FUNCTIONAL DESCRIPTION
#
# 1. CHECK IF NEW PROGRAM ALLOWED. IF BIT 1 OF FLAGWRD2 (NODOFLAG) IS SET, AN ALARM 1520 IS CALLED. # 1. CHECK IF NEW PROGRAM ALLOWED. IF BIT 1 OF FLAGWRD2(NODOFLAG) ISSET, AN ALARM 1520 IS CALLED.
# 2. CHECK FOR VALIDITY OF PROGRAM SELECTED. IF AN INVALID PROGRAM IS SELECTED, THE OPERATOR ERROR LIGHT IS # 2. CHECK FOR VALIDITY OF PROGRAM SELECTED. IF AN INVALID PROGRAM IS SELECTED, THE OPERATOR ERROR LIGHT IS
# SET AND CURRENT ACTIVITY, IF ANY, CONTINUE. # SET AND CURRENT ACTIVITY, IF ANY, CONTINUES.
# 3. SERVICER IS TERMINATED IF IT HAS BEEN RUNNING. # 3. SERVICER IS TERMINATED IF IT HAS BEEN RUNNING.
# 4. INSTALL IS EXECUTED TO AVOID INTERRUPTING INTEGRATION. # 4. INSTALL IS EXECUTED TO AVOID INTERRUPTING INTEGRATION.
# 5. THE ENGINE IS TURNED OFF AND THE DAP IS INITIALIZED FOR COAST. # 5. THE ENGINE IS TURNED OFF AND THE DAP IS INITIALIZED FOR COAST.
# 6. TRACK, UPDATE, AND TARG1 FLAGS ARE SET TO ZERO. # 6. TRACK, UPDATE AND TARG1 FLAGS ARE SET TO ZERO.
# 7. DISPLAY SYSTEM IS RELEASED. # 7. DISPLAY SYSTEM IS RELEASED.
# 8. THE FOLLOWING ARE PERFORMED FOR EACH OF THE THREE CASES. # 8. THE FOLLOWING ARE PERFORMED FOR EACH OF THE THREE CASES.
# A. PROGRAM SELECTED IS P00. # A. PROGRAM SELECTED IS P00.
# 1. RENDEZVOUS FLAG IS RESET. (KILL P20) # 1. RENDEZVOUS FLAG IS RESET (KILL P20).
# 2. STATINT1 IS SCHEDULED BY SETTING RESTART GROUP 2. # 2. STATINT1 IS SCHEDULED BY SETTING RESTART GROUP 2.
# 3. MAJOR MODE 00 IS STORED IN THE MODE REGISTER (MODREG). # 3. MAJOR MODE 00 IS STORED IN THE MODE REGISTER(MODREG).
# 4. SUPERBANK 3 IS SELECTED. # 4. SUPERBANK 3 IS SELECTED.
# 5. NODOFLAG IS RESET. # 5. NODOFLAG IS RESET.
# 6. ALL RESTART GROUPS EXCEPT GROUP2 ARE CLEARED. CONTROL IS TRANSFERRED TO RESTART PROGRAM (GOPROG2) # 6. ALL RESTART GROUPS EXCEPT GROUP 2 ARE CLEARED. CONTROL ISTRANSFERRED TO RESTART PROGRAM (GOPROG2)
# WHICH CAUSES ALL CURRENT ACTIVITY TO BE DISCONTINUED AND A 9 MINUTE INTEGRATION CYCLE TO BE # WHICH CAUSES ALL CURRENT ACTIVITY TO BE DISCONTINUED AND A 9 MINUTE INTEGRATION CYCLE TO BE
# INITIATED. # INITIATED.
# B. PROGRAM SELECTES IS P20. # B. PROGRAM SELECTES IS P20.
# 1. IF THE CURRENT MAJOR MODE IS THE SAME AS THE SELECTED NEWPROGRAM. THE PROGRAM IS RE-INITIALIZED # 1. IF THE CURRENT MAJOR MODE IS THE SAME AS THE SELECTED NEWPROGRAM. THE PROGRAM IS RE-INITIALIZED
# VIA V37XEQ, ALL RESTART GROUPS, EXCEPT GROUP 4 ARE CLEARED. # VIA V37XEQ, ALL RESTART GROUPS, EXCEPT GROUP 4 ARE CLEARED.
# 2. IF THE CURRENT MAJOR MODE IS NOT EQUAL TO THE NEW REQUEST, A CHECK IS MADE TO SEE IF THE REQUEST- # 2. IF THE CURRENT MAJOR MODE IS NOT EQUAL TO THE NEW REQUEST, A CHECK IS MADE TO SEE IF THE REQUEST-
# ED MAJOR MODE HAS BEEN RUNNING THE BACKGROUND, # ED MAJOR MODE HAS BEEN RUNNING THE BACKGROUND,
# AND IF IT HAS, NO NEW PROGRAM IS SCHEDULED, THE EXISTING # AND IF IT HAS, NO NEW PROGRAM IS SCHEDULED, THE EXISTING
# P20 IS RESTARTED TO CONTINUE, AND ITS MAJORE MODE IS SET. # P20 IS RESTARTED TO CONTINUE, AND ITS MAJOR MODE IS SET.
# 3. CONTROL IS TRANSFERRED TO GOPROG2. # 3. CONTROL IS TRANSFERRED TO GOPROG2.
# C. PROGRAM SELECTED IS NEITHER P00 NOR P20 # C. PROGRAM SELECTED IS NEITHER P00 NOR P20
# 1. V37XEQ IS SCHEDULED (AS A JOB) BY SETTING RESTART GROUP 4 # 1. V37XEQ IS SCHEDULED (AS A JOB) BY SETTING RESTART GROUP 4
# 2. ALL CURRENT ACTIVITY EXCEPT RENDEZVOUS AND TRACKING IS DISCONTINUED BY CLEARING ALL RESTART # 2. ALL CURRENT ACTIVITY EXCEPT RENDEZVOUS AND TRACKING IS DISCONTINUED BY CLEARING ALL RESTART
# GROUPS. GROUP 2 IS CLEARED. IF THE RENDEZVOUS FLAG IS ON P20 IS RESTARTED IN GOPROG2 VIA REDOP20, # GROUPS. GROUP 2 IS CLEARED. IF THE RENDEZVOUS FLAG IS ON P20 IS RESTARTED IN GOPROG2 VIA REDOP20,
# TO CONTINUE. # TO CONTINUE.
#
# INPUT/OUTPUT INFORMATION # INPUT/OUTPUT INFORMATION
#
# A. CALLING SEQUENCE # A. CALLING SEQUENCE
# CONTROL IS DIRECTED TO V37 BY THE VERBFAN ROUTINE. # CONTROL IS DIRECTED TO V37 BY THE VERBFAN ROUTINE.
# VERBFAN GOES TO C(VERBTAB+C(VERBREG)). VERB 37 = MMCHANG. # VERBFAN GOES TO C(VERBTAB+C(VERBREG)). VERB 37 = MMCHANG.
# MMCHANG EXECUTES A TC POSTJUMP, CADR V37. # MMCHANG EXECUTES A TC POSTJUMP, CADR V37.
#
# B. ERASABLE INITIALIZATION NONE # B. ERASABLE INITIALIZATION NONE
#
# C. OUTPUT # C. OUTPUT
# MAJOR MODE CHANGE # MAJOR MODE CHANGE
# Page 197 # Page 197
# #
# D. DEBRIS # D. DEBRIS
# MMNUMBER, MPAC +1, MINDEX, BASETEMP +C(MINDEX), FLAGWRD0, FLAGWRD1, FLAGWRD2, MODREG, GOLOC -1, # MMNUMBER, MPAC +1, MINDEX, BASETEMP +C(MINDEX), FLAGWRD0, FLAGWRD1, FLAGWRD2, MODREG, GOLOC -1,
# GOLOC, GOLOC +1, GOLOC +2, BASETEMP, -PHASE2, PHASE2, -PHASE4 # GOLOC, GOLOC +1, GOLOC +2, BASETEMP, -PHASE2, PHASE2, -PHASE4
#
# PROGRAM ANALYSIS # PROGRAM ANALYSIS
#
# A. SUBROUTINES CALLED # A. SUBROUTINES CALLED
# ALARM, RELDSP, PINBRNCH, INTSTALL, ENGINOF2, ALLCOAST, V37KLEAN, GOPROG2, FALTON, FINDVAC, SUPERSW, # ALARM, RELDSP, PINBRNCH, INTSTALL, ENGINOF2, ALLCOAST, V37KLEAN, GOPROG2, FALTON, FINDVAC, SUPERSW,
# DSPMM # DSPMM
#
# B. NORMAL EXIT TC ENDOFJOB # B. NORMAL EXIT TC ENDOFJOB
#
# C. ALARMS 1520 (MAJOR MODE CHANGE NOT PERMITTED) # C. ALARMS 1520 (MAJOR MODE CHANGE NOT PERMITTED)
BLOCK 02 BLOCK 02
SETLOC FFTAG10 SETLOC FFTAG10
@ -870,7 +876,7 @@ V37BAD TC RELDSP # RELEASES DISPLAY FROM ASTRONAUT
TC POSTJUMP # BRING BACK LAST NORMAL DISPLAY IF THERE TC POSTJUMP # BRING BACK LAST NORMAL DISPLAY IF THERE
CADR PINBRNCH # WAS ONE. OY CADR PINBRNCH # WAS ONE. OY
CHECKTAB CA NOV37MM # THE NO. OF MM CHECKTAB CA NOV37MM # THE NO. OF MM
AGAINMM TS MPAC +1 AGAINMM TS MPAC +1
NDX MPAC +1 NDX MPAC +1
CA PREMM1 # OBTAIN WHICH MM THIS IS FOR CA PREMM1 # OBTAIN WHICH MM THIS IS FOR
@ -886,13 +892,13 @@ AGAINMM TS MPAC +1
CA MPAC +1 CA MPAC +1
TS MINDEX # SAVE INDEX FOR LATER TS MINDEX # SAVE INDEX FOR LATER
ISSERVON CS FLAGWRD7 # V37 FLAG SET -- I.E., IS SERVICER GOING ISSERVON CS FLAGWRD7 # V37 FLAG SET - I.E. IS SERVICER GOING
MASK V37FLBIT MASK V37FLBIT
CCS A CCS A
TCF CANV37 # NO TCF CANV37 # NO
INHINT INHINT
CS AVEGBIT # YES TURN OFF AVERAGE G FLAG AND WAIT CS AVEGBIT # YES TURN OFF AVERAGE G FLAG AND WAIT
MASK FLAGWRD1 # FOR SERVICER TO RETURN TO CANV37 MASK FLAGWRD1 # FOR SERVICER TO RETURN TO CANV37
TS FLAGWRD1 TS FLAGWRD1
@ -945,12 +951,13 @@ DUMMYAD EXIT
COUNT 04/P00 COUNT 04/P00
P00H TC RELDSP # RELEASE DISPLAY SYSTEM P00H TC RELDSP # RELEASE DISPLAY SYSTEM
CAF PRIO5 # SET VARIABLE RESTART REGISTER FOR P00. CAF PRIO5 # SET VARIABLE RESTART REGISTER FOR P00.
TS PHSPRDT2 TS PHSPRDT2
INHINT INHINT
CS NODOBIT # TURN OFF NODOFLAG. CS NODOBIT # TURN OFF NODOFLAG
MASK FLAGWRD2 MASK FLAGWRD2
TS FLAGWRD2 TS FLAGWRD2
@ -967,15 +974,15 @@ P00H TC RELDSP # RELEASE DISPLAY SYSTEM
COUNT 04/V37 COUNT 04/V37
SEUDOP00 TS DNLSTCOD # SET UP APPROPRIATE DOWNLIST CODE SEUDOP00 TS DNLSTCOD # SET UP APPROPRIATE DOWNLIST.
# (OLD ONE WILL BE FINISHED FIRST)
# (OLD ONE WILL BE FINISHED FIRST)
CS OCT01120 # TURN OFF TRACK, TARG1, UPDATE FLAGS CS OCT01120 # TURN OFF TRACK, TARG1, UPDATE FLAGS
TS EBANKTEM TS EBANKTEM
MASK FLAGWRD1 MASK FLAGWRD1
TS FLAGWRD1 TS FLAGWRD1
GROUPKIL TC IBNKCALL # KILL GROUPS 3,5,6 GROUPKIL TC IBNKCALL # KILL GROUPS 3(5,6
CADR V37KLEAN CADR V37KLEAN
CCS MMNUMBER # IS IT P00H CCS MMNUMBER # IS IT P00H
@ -1038,7 +1045,7 @@ NOUVEAU CAF RNDVZBIT
MASK FLAGWRD0 MASK FLAGWRD0
CCS A CCS A
TCF +3 TCF +3
TC DOWNFLAG # NO, RESET IMUINUSE FLAG TC DOWNFLAG # NO, RESET IMUSE FLAG.
ADRES IMUSE # BIT 8 FLAG 0 ADRES IMUSE # BIT 8 FLAG 0
+3 INDEX MINDEX +3 INDEX MINDEX
CAF DNLADMM1 # OBTAIN NEW DOWNLIST ADDRESS CAF DNLADMM1 # OBTAIN NEW DOWNLIST ADDRESS
@ -1046,22 +1053,22 @@ NOUVEAU CAF RNDVZBIT
INHINT INHINT
TCF SEUDOP00 TCF SEUDOP00
V37NONO TC FALTON # COME HERE IF MM REQUESTED DOESN'T EXIST V37NONO TC FALTON # COME HERE IF MM REQUESTED DOESNT EXIST
TCF V37BAD TCF V37BAD
OCT00010 EQUALS BIT4 OCT00010 EQUALS BIT4
V37XEQ INHINT V37XEQ INHINT
INDEX MINDEX INDEX MINDEX
CAF PREMM1 CAF PREMM1
TS MMTEMP # OBTAIN PRIORITY BITS 15-11 TS MMTEMP # OBTAIN PRIORITY BITS 15 - 11
TS CYR # SHIFT RIGHT TO BITS 14-10 TS CYR # SHIFT RIGHT TO BITS 14 - 10
CA CYR CA CYR
MASK PRIO37 MASK PRIO37
TS PHSPRDT4 # PRESET GROUP 4 RESTART PRIORITY TS PHSPRDT4 # PRESET GROUP4 RESTART PRIORITY
TS NEWPRIO # STORE PRIO FOR SPVAC TS NEWPRIO # STORE PRIO FOR SPVAC
CA MMTEMP # OBTAIN EBANK -- BITS 8, 9, 10 OF MMTEMP. CA MMTEMP # OBTAIN EBANK - BITS 8, 9, 10 OF MMTEMP.
EXTEND EXTEND
MP BIT8 MP BIT8
MASK LOW3 MASK LOW3
@ -1091,22 +1098,22 @@ INITSUB EXTEND
QXCH MPAC +1 QXCH MPAC +1
CAF EBANK6 # SET E6 FOR DEADBAND CODING CAF EBANK6 # SET E6 FOR DEADBAND CODING
TS EBANK # WILL BE RESET IN STARTSB2 TS EBANK # WILL BE RESET IN STARTSB2.
INHINT INHINT
TC STOPRATE TC STOPRATE
CA FLAGWRD9 # RESTORE DEADBAND CA FLAGWRD9 # RESTORE DEADBAND
MASK MAXDBBIT MASK MAXDBBIT
CCS A CCS A
TCF SETMAXER # MAX DE SELECTED TCF SETMAXER # MAX DB SELECTED
TC BANKCALL # MIN DE SELECTED TC BANKCALL # MIN DB SELECTED
CADR SETMINDB CADR SETMINDB
TCF RAKE TCF RAKE
SETMAXER TC BANKCALL SETMAXER TC BANKCALL
CADR SETMAXDB CADR SETMAXDB
RAKE CAF ELEVEN # THIS PART CLEARS FLAGWORD BITS. RAKE CAF ELEVEN # THIS PART CLEARS FLAGWORD BITS.
+1 TS MPAC # LOOP COMES HERE +1 TS MPAC # LOOP COMES HERE.
INDEX MPAC INDEX MPAC
CS FLAGTABL CS FLAGTABL
INDEX MPAC INDEX MPAC
@ -1114,7 +1121,7 @@ RAKE CAF ELEVEN # THIS PART CLEARS FLAGWORD BITS.
INDEX MPAC # PUT REVISED FLAGWORD BACK. INDEX MPAC # PUT REVISED FLAGWORD BACK.
TS FLAGWRD0 TS FLAGWRD0
CCS MPAC CCS MPAC
TCF RAKE +1 # GET THE NEXT FLAGWORD TCF RAKE +1 # GET THE NEXT FLAGWORD.
RELINT RELINT
TC UPFLAG # NOW SET IMPULSW TC UPFLAG # NOW SET IMPULSW
@ -1238,10 +1245,10 @@ RCSADDR4 2CADR RCSATT
# INTO THE TABLE WITH THE ENTRY FOR THE HIGHEST MAJOR MODE COMING FIRST, # INTO THE TABLE WITH THE ENTRY FOR THE HIGHEST MAJOR MODE COMING FIRST,
# Page 206 # Page 206
# TO THE LOWEST MAJOR MODE WHICH IS THE LAST ENTRY IN EACH TABLE. # TO THE LOWEST MAJOR MODE WHICH IS THE LAST ENTRY IN EACH TABLE.
#
# THE FCADRMM TABLE CONTAINS THE FCADR OF THE STARTING JOB OF # THE FCADRMM TABLE CONTAINS THE FCADR OF THE STARTING JOB OF
# THE MAJOR MODE. FOR EXAMPLE, # THE MAJOR MODE. FOR EXAMPLE,
#
# FCADRMM1 FCADR P79 # START OF P 79 # FCADRMM1 FCADR P79 # START OF P 79
# FCADR PROG18 # START OF P 18 # FCADR PROG18 # START OF P 18
# FCADR P01 # START OF P 01 # FCADR P01 # START OF P 01
@ -1281,29 +1288,29 @@ FCADRMM1 EQUALS
FCADR P06 FCADR P06
FCADR GTSCPSS1 # GYROCOMPASS STANDARD LEAD IN. FCADR GTSCPSS1 # GYROCOMPASS STANDARD LEAD IN.
# THE PREMM TABLE CONTAINS THE E-BANK, MAJOR MODE, AND PRIORITY # THE PREMM TABLE CONTAINS THE E-BANK,MAJOR MODE, AND PRIORITY
# INFORMATION, IT IS IN THE FOLLOWING FORM, # INFORMATION, IT IS IN THE FOLLOWING FORM,
#
# PPP PPE EEM MMM MMM # PPP PPE EEM MMM MMM
# #
# Page 207 # Page 207
# WHERE THE 7 M BITS CONTAIN THE MAJOR MODE NUMBER # WHERE THE 7 M BITS CONTAIN THE MAJOR MODE NUMBER
# 3 E BITS CONTAIN THE E-BANK NUMBER # 3 E BITS CONTAIN THE E-BANK NUMBER
# 5 P BITS CONTAIN THE PRIORITY AT WHICH THE JOB IS # 5 P BITS CONTAIN THE PRIORITY AT WHICH THE JOB IS
# TO BE STARTED # TO BE STARTED
#
# FOR EXAMPLE, # FOR EXAMPLE,
#
# PREMM1 OCT 67213 # PRIORITY 33 # PREMM1 OCT 67213 # PRIORITY 33
# # E-BANK 5 # # E-BANK 5
# # MAJOR MODE 11 # # MAJOR MODE 11
# OCT 25437 # PRIORITY 12 # OCT 25437 # PRIORITY 12
# # E-BANK 6 # # E-BANK 6
# # MAJOR MODE 31 # # MAJOR MODE 31
PREMM1 EQUALS PREMM1 EQUALS
OCT 27117 # MM 79 EBANK 4 PRIO 13 OCT 27117 # MM 79 EBANK 4 PRIO 13
OCT 27116 # MM 78 EBANK 4 PRIO 13 (original says PR23 13) OCT 27116 # MM 78 EBANK 4 PR23 13
OCT 27115 # MM 77 EBANK 4 PRIO 13 OCT 27115 # MM 77 EBANK 4 PRIO 13
OCT 27714 # MM 76 EBANK 4 PRIO 13 OCT 27714 # MM 76 EBANK 4 PRIO 13
OCT 27113 # MM 75 EBANK 4 PRIO 13 OCT 27113 # MM 75 EBANK 4 PRIO 13
@ -1365,8 +1372,9 @@ PREMM1 EQUALS
EBANK= TIME2SAV # EBANK SETTING REQUIRED BY MM 06 EBANK= TIME2SAV # EBANK SETTING REQUIRED BY MM 06
EBANK= QPLACE # EBANK SETTING REQUIRED BY MM 01 EBANK= QPLACE # EBANK SETTING REQUIRED BY MM 01
# NOTE: THE FOLLOWING CONSTANT IS THE NUMBER OF ENTRIES IN EACH OF
# ----- THE ABOVE LISTS-1 (I.E., THE NUMBER OF MAJOR MODES (EXCEPT P00) # NOTE, THE FOLLOWING CONSTANT IS THE NUMBER OF ENTRIES IN EACH OF
# ---- THE ABOVE LISTS-1(IE, THE NUMBER OF MAJOR MODES(EXCEPT P00)
# THAT CAN BE CALLED FROM THE KEYBOARD MINUS ONE) # THAT CAN BE CALLED FROM THE KEYBOARD MINUS ONE)
EPREMM1 EQUALS # END OF PREMM1 TABLE EPREMM1 EQUALS # END OF PREMM1 TABLE
@ -1375,7 +1383,8 @@ NO.MMS =MINUS EPREMM1 # THE "NOV37MM" CONSTANT AS ENTRIES ARE
SETLOC VERB37 # INSERTED(IN) OR DELETED(FROM) THE SETLOC VERB37 # INSERTED(IN) OR DELETED(FROM) THE
BANK # "PREMM1" TABLE. BANK # "PREMM1" TABLE.
NOV37MM ADRES NO.MMS -1 # ITEMS IN "PREMM1" TABLE - 1. *DON'T MOVE* NOV37MM ADRES NO.MMS -1 # ITEMS IN "PREMM1"TABLE - 1. *DON'T MOVE*
DNLADMM1 EQUALS DNLADMM1 EQUALS
ADRES RENDEZVU # P79 ADRES RENDEZVU # P79
@ -1412,7 +1421,6 @@ DNLADMM1 EQUALS
ADRES RENDEZVU # P17 ADRES RENDEZVU # P17
ADRES COSTALIN # P06 ADRES COSTALIN # P06
ADRES COSTALIN # P01 ADRES COSTALIN # P01
DNLADP00 = ZERO DNLADP00 = ZERO
COSTALIN = 0 COSTALIN = 0
ENTRYUPD = 1 ENTRYUPD = 1
@ -1420,11 +1428,9 @@ RENDEZVU = 2
POWERED = 3 POWERED = 3
P22DNLST = 4 P22DNLST = 4
# ORBITAL INTEGRATION CONSTANTS # ORBITAL INTEGRATION CONSTANTS
# THESE CONSTANTS ARE USED IN COMPUTING THE SETTING OF MIDFLAG. # THESE CONSTANTS ARE USED IN COMPUTING THE SETTING OF MIDFLAG.
RMM 2DEC 2538.09 E3 B-27 # 800 KM ABOVE LUNAR SURFACE RMM 2DEC 2538.09 E3 B-27 # 800 KM ABOVE LUNAR SURFACE
RME 2DEC 7178165 B-29 # 800 KM ABOVE EQ. RADIUS RME 2DEC 7178165 B-29 # 800 KM ABOVE EQ. RADIUS
@ -1467,8 +1473,8 @@ STATEND CLRGO
NODOFLAG NODOFLAG
ENDINT ENDINT
# THIS VINT IS CALLED BY MIDTOAV1 AND 2
# THISVINT IS CALLED BY MIDTOAV1 AND2
THISVINT SET RVQ THISVINT SET RVQ
VINTFLAG VINTFLAG