Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Asm/Apollo-11/Luminary099/     Datei vom 11.9.2026 mit Größe 27 kB image not shown  

Quelle  FRESH_START_AND_RESTART.agc   Sprache: Apollo

 

# Copyright: Public domain.
# Filename: FRESH_START_AND_RESTART.agc
# Purpose:  Part of the source code for Luminary 1A build 099.
# It is part of the source code for the Lunar Module's (LM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Hartmuth Gutsche <hgutsche@xplornet.com>.
# Website: www.ibiblio.org/apollo.
# Pages: 211-237
# Mod history: 2009-05-19 HG Transcribed from page images.
# 2010-12-31 JL Fixed page number comments.
# 2011-01-06 JL Fixed pseudo-label indentation.
# 2011-01-06 JL Added missing comment characters.
#
# This source code has been transcribed or otherwise adapted from
# digitized images of a hardcopy from the MIT Museum.  The digitization
# was performed by Paul Fjeld, and arranged for by Deborah Douglas of
# the Museum.  Many thanks to both.  The images (with suitable reduction
# in storage size and consequent reduction in image quality as well) are
# available online at www.ibiblio.org/apollo.  If for some reason you
# find that the images are illegible, contact me at info@sandroid.org
# about getting access to the (much) higher-quality images which Paul
# actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 001 of AGC program LMY99 by NASA 2021112-061
# 16:27 JULY 14, 1969

# Page 211
  BANK 10
  SETLOC FRANDRES
  BANK

  EBANK= LST1

  COUNT* $$/START # FRESH AND RESTART
SLAP1  INHINT   # FRESH START.  COMES HERE FROM PINBALL.
  TC STARTSUB # SUBROUTINE DOES MOST OF THE WORK

STARTSW  TCF SKIPSIM  # PATCH....TCF STARTSIM FOR SIMULATION
STARTSIM CAF BIT14
  TC FINDVAC
SIM2CADR OCT 77777  # PATCH 2CADR (AND EBANK DESIGNATION) OF
  OCT 77777  # SIMULATION START ADDRESS.

SKIPSIM  CA DSPTAB +11D # TURN OFF ALL DSPTAB +11D LAMPS
  MASK BITS4&6  # EXCEPT THE GIMBAL LOCK & NO ATT ONLY ON
  AD BIT15  # REQUESTED FRESH START.
  TS DSPTAB +11D

  # Filename# Purpose:  Part of the source code for Luminary 1A build 099.
  TS DUMPCNT  # DUMP FOR ONE PASS

  CA ZERO
  TS # Assembler# Contact: Ron Burkey <info@sandroid.org>.
  TS FAILREG
  TS es# Mod history:  2009-05-10 SN   (Sergio Navarro).  Started adapting
  TS FAILREG# name, using Luminary099 page images.
  TS REDOCTR

  CS PRIO12# digitized images of a hardcopy from the MIT Museum.  The digitization
  TS DSRUPTSW

# the Museum.  Many # in storage size and consequent reduction in image # available online at www.ibiblio.org/apollo.  If for some reason you
  EXTEND
  WRITE DSALMOUT
 # actually created.
  TS THRUST

DOFSTRT1## Assemble revision 001 of AGC program LMY99 by NASA 2021112-061
  TS RCSFLAGS  INITIALIZE ATTITUDE ERROR DISPLAYS.
 CAPRIO30
 TS  # SUPER BANK   DISPLAYSjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49

Z
    DAPINITIALIZATION
 NVSAVE
 EBANK
# Page 212
 TSC
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 PVALVEST 
 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*** MUST NOT  DOFSTART
   TC   ERRORS AND COMMANDED RATES.
  TS AGSWORD  # ALLOW AGS INITIALIZATION
  TS java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  EXTEND
  WRITE CHAN5  # TURN OFF RCS JETS.
  EXTEND
  WRITE CHAN6  # TURN OFF RCS JETS.
  EXTEND
  WRITE CHAN12
  EXTEND
  WRITE CHAN13
  EXTEND
  WRITE CHAN14
  CS DSPTAB +11D
  MASK BITS4&6
  CCS A
  TC +4
  CA BITS4&6
  EXTEND   # THE IMU WAS IN COARSE ALIGN IN GIMBAL
  WOR CHAN12  # LOCK, SO PUT IT BACK INTO COARSE ALIGN.
 +4  TC MR.KLEAN

  CS ZERO
  TS MODREG

  CAF IM30INIF # FRESH START IMU INITIALIZATION
  TS IMODES30

  CAF MAXDB
  TS DB
  CAF FOUR
  TS RATEINDX # INITIALZE KALCMANU RATE
  CA BOOLSTRT
  TS DAPBOOLS
  CAF EBANK6
  TS EBANK
  EBANK= HIASCENT

  CA STIKSTRT
  TS STIKSENS
  CA RATESTRT
  TS -RATEDB
  CAF FULLAPS  # INITIALIZE MAXIMUM ASCENT MASS FOR USE
  TS HIASCENT #   BY 1/ACCS UNTIL THE PAD LOAD IS DONE.
  CA 77001OCT #     LOAD DAP FILTER GAINS PAD LOAD.
# Page 213
  TS DKTRAP  #       TO BEST PRESENT ESTIMATE OF GOODIES
  TS LMTRAP  # .14 DEG
  CA 60DEC
  TS DKKAOSN
  TS LMKAOSN  # 6 SEC GAIN FOR ALPHA
  CA ZERO
  TS LMOMEGAN # UNITY GAIN
  CA TEN
  TS DKOMEGAN # 1 SEC GAIN FOR OMEGA
  CAF BIT8  # SET DOCKED DB TO 1.4 DEG.  MAY OVERWRITE
  TS DKDB  # WITH PAD LOAD.
  CAF IM33INIT
  AD BIT6  # KEEP BOTH DAP AND ERROR-NEEDLES DISPLAY
  TS IMODES33 # OFF UNTIL ICDU ZERO IS FINISHED.

  EXTEND   # INITIALIZE SWITCHES ONLY ON FRESH START.
  DCA SWINIT
  DXCH STATE
  CA SWINIT +2
  TS STATE +2
  CA REFSMBIT # DO NOT ALTER REFSMFLG ON FRESH START.
  MASK STATE +3
  AD SWINIT +3
  TS STATE +3
  EXTEND
  DCA SWINIT +4
  DXCH STATE +4
  EXTEND
  DCA SWINIT +6
  DXCH STATE +6
  CA SURFFBIT # DO NOT ALTER SURFFLAG ON FRESH START.
  AD CMOONBIT # CMOONFLG
  AD LMOONBIT # LMOONFLG
  MASK STATE +8D
  AD SWINIT +8D
  TS STATE +8D
  CA SWINIT +9D
  TS STATE +9D
  CA APSFLBIT # DO NOT ALTER APSFLAG ON FRESH START.
  MASK STATE +10D
  AD SWINIT +10D
  TS STATE +10D
  CAF SWINIT +11D
  TS STATE +11D

ENDRSTRT TC POSTJUMP # NOW IN ANOTHER BANK.
  CADR DUMMYJOB +2 # PICKS UP AT RELINT. (DON'T ZERO NEWJOB)

MR.KLEAN INHINT
# Page 214
  EXTEND
  DCA NEG0
  DXCH -PHASE2
P00KLEAN EXTEND
  DCA NEG0
  DXCH -PHASE4
V37KLEAN EXTEND
  DCA NEG0
  DXCH -PHASE1
  EXTEND
  DCA NEG0
  DXCH -PHASE3
  EXTEND
  DCA NEG0
  DXCH -PHASE5
  EXTEND
  DCA NEG0
  DXCH -PHASE6
  TC Q

# Page 215
# COMES HERE FROM LOCATION 4000, GOJAM, RESTART ANY PROGRAMS WHICH MAY HAVE BEEN RUNNING AT THE TIME.

  EBANK= LST1
GOPROG  INCR REDOCTR  # ADVANCE RESTART COUNTER.

  LXCH Q
  EXTEND
  ROR SUPERBNK
  DXCH RSBBQ
  CA DSPTAB +11D
  MASK BIT4
  EXTEND
  BZF +4
  AD BIT6  # SET ERROR COUNTER ENABLE
  EXTEND
  WOR CHAN12  # ISS WAS IN COARSE ALIGN SO GO BACK TO
BUTTONS  TC LIGHTSET

# ERASCHK TEMPORARILY STORES THE CONTENST OF TWO ERASABLE LOCATIONS, X
# 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
# EQUAL C(SKEEP7), AND SHOULD BE A + NUMBER LESS THAN 2000 OCT.  OTHERWISE
# C(ERESTORE) SHOULD EQUAL +0.

  CAF HI5
  MASK ERESTORE
  EXTEND
  BZF +2  # IF ERESTORE NOT = +0 OR +N LESS THAN 2K,
  TCF NONAVKEY +3 # DO FRESH START -- E MEMORY MIGHT BE BAD
  CS ERESTORE
  EXTEND
  BZF DORSTART # = +0 CONTINUE WITH RESTART.
  AD SKEEP7
  EXTEND
  BZF +2  # = SKEEP7, RESTORE E MEMORY.
  TCF NONAVKEY +3 # DO FRESH START -- E MEMORY MIGHT BE BAD
  CA SKEEP4
  TS EBANK  # EBANK OF E MEMORY THAT WAS UNDER TEST.
  EXTEND   # (NOT DXCH SINCE THIS MIGHT HAPPEN AGAIN)
  DCA SKEEP5
  INDEX SKEEP7
  DXCH 0000  # E MEMORY RESTORED
  CA ZERO
  TS ERESTORE
DORSTART TC STARTSUB # DO INITIALIZATION AFTER ERASE RESTORE.

SETINFL  CS INTFLBIT
  MASK FLGWRD10
  TS FLGWRD10
# Page 216
  CA 9,6,4  # LEAVE PROG ALARM, GIMBAL LOCK, NO ATT
  MASK DSPTAB +11D # LAMPS INTACT ON HARDWARE RESTART
  AD BIT15
  XCH DSPTAB +11D
  CAF IFAILINH # LEAVE IMU FAILURE INHIBITS INTACT ON
  MASK IMODES30 # HARDWARE RESTART, RESET ALL FAILURE
  AD IM30INIR # CODES.
  TS IMODES30

  CA AGSWORD  # BE SURE OF CORRECT DOWNLIST
  TS DNLSTCOD

  CA BIT4  # TURN ON THROTTLE COUNTER
  EXTEND
  WOR CHAN14  # TURN ON THRUST DRIVE
  CS FLAGWRD5
  MASK ENGONBIT
  CCS A
  TCF +5
  CAF BIT13
  EXTEND
  WOR DSALMOUT # TURN ENGINE ON
  TCF GOPROG3
 +5  CAF BIT14
  EXTEND
  WOR DSALMOUT # TURN ENGINE OFF
  TCF GOPROG3

ENEMA  INHINT
  TC STARTSB1
  TCF GOPROG2A
GOPROG2  TC STARTSB2
GOPROG2A TC LIGHTSET
  CS RSFLGBTS # CLEAR BITS 7 AND 14.
  MASK FLGWRD10
  TS FLGWRD10

GOPROG3  CAF NUMGRPS  # VERIFY PHASE TABLE AGREEMENTS
PCLOOP  TS MPAC +5
  DOUBLE
  EXTEND
  INDEX A
  DCA -PHASE1  # COMPLEMENT INTO A, DIRECT INTO L.
  EXTEND
  RXOR LCHAN  # RESULT MUST BE -0 FOR AGREEMENT.
  CCS A
  TCF PTBAD  # RESTART FAILURE.
  TCF PTBAD
  TCF PTBAD
# Page 217
  CCS MPAC +5  # PROCESS ALL RESTART GROUPS.
  TCF PCLOOP

  TS MPAC +6  # SET TO +0.
  TC MMDSPLAY # DISPLAY MAJOR MODE

  INHINT   # RELINT DONE IN MMDSPLAY

  CS DIDFLBIT # CLEAR DIDFLAG IN ORDER TO FORCE R10 TO
  MASK FLAGWRD1 # RE-INITIALIZE ITSELF IF IT HAD BEEN
  TS FLAGWRD1 # OPERATION AT THE TIME OF THE RESTART.

  CS RODFLBIT # CLEAR RODFLAG.  IF P66 IS IN OPERATION
  MASK FLAGWRD1 # IT WILL RE-INITIALIZE ITSELF AND
  TS FLAGWRD1 # CONTINUE.

  CS P21FLBIT # CLEAR P21 FLAG SO THAT P21 WILL COMPUTE
  MASK FLAGWRD0 # NEW BASE STATE VECTORS.
  TS FLAGWRD0

  CAF NUMGRPS  # SEE IF ANY GROUPS RUNNING.
NXTRST  TS MPAC +5
  DOUBLE
  INDEX A
  CCS PHASE1
  TCF PACTIVE  # PNZ -- GROUP ACTIVE.
  TCF PINACT  # +0 -- GROUP NOT RUNNING.

PACTIVE  TS MPAC
  INCR MPAC  # ABS OF PHASE.
  INCR MPAC +6  # INDICATE GROUP DEMANDS PRESENT.
  CA RACTCADR
  TC SWCALL  # MUST RETURN TO SWRETURN.

PINACT  CCS MPAC +5  # PROCESS ALL RESTART GROUPS.
  TCF NXTRST

  CCS MPAC +6  # NO, CHECK PHASE ACTIVITY FLAG
  TCF ENDRSTRT # PHASE ACTIVE
  CAF BIT15  # IS MODE -0
  MASK MODREG
  EXTEND
  BZF GOTOPOOH # NO
  TCF ENDRSTRT # YES
PTBAD  TC ALARM  # SET ALARM TO SHOW PHASE TABLE FAILURE.
  OCT 1107

  TCF DOFSTRT1
#******** ****** ******
# Page 218
# DO NOT USE GOPROG2 OR ENEMA WITHOUT CONSULTING POOH PEOPLE.

OCT10000 = BIT13
OCT30000 = PRIO30
OCT7777  OCT 7777
STIKSTRT DEC 0.825268 # 20 D/S MAXIMUM COMPANDED RATE
RATESTRT DEC -218
RACTCADR CADR RESTARTS
BOOLSTRT OCT 21312
77001OCT OCT 77001  # .14 DEG SCALED AT 4.5 DEG
60DEC  DEC 60
RSFLGBTS OCT 20100
MAXDB  OCTAL 03434  # 5 DEG ATTITUDE DEADBAND, SCALED AT 45.

LIGHTSET CAF BIT5  # CHECK FOR MARK REJECT AND ERROR RESET
  EXTEND
  RAND NAVKEYIN
  EXTEND
  BZF NONAVKEY # NO MARK REJECT
  EXTEND
  READ MNKEYIN  # CHECK IF KEYS 2M AND 5M ON
  AD -ELR  # MAIN DSKY KEYCODE (BITS 1-5)
  EXTEND
  BZF +2

NONAVKEY TC Q

  TC STARTSUB
  TCF DOFSTART
 +3  TC STARTSUB
  TCF DOFSTRT1 # DO FRESH START BUT DON'T TOUCH ENGINE

# Page 219
# INITIALIZATION COMMON TO BOTH FRESH START AND RESTART.

  EBANK= AOSQ
STARTSUB CAF LDNPHAS1 # SET POINTER SO NEXT 20MS DOWNRUPT WILL
  TS DNTMGOTO # CAUSE THE CURRENT DOWNLIST TO BE
     # INTERRUPTED AND START SENDING FROM THE
     # BEGINNING OF THE CURRENT DOWNLIST.
  CAF BIT6
  EXTEND
  RAND CHAN33
  AD RMODINIT
  TS RADMODES

STARTSB1 CAF POSMAX
  TS TIME3
  AD MINUS2
  TS TIME4
  AD NEGONE
  TS TIME5

  CAF EBANK6
  TS EBANK

  CS BIT13  # CAUSE DAPIDLER TO CALL 1/ACCS
  MASK RCSFLAGS
  TS RCSFLAGS # ZERO BIT 13
  CAF POSMAX  # DISABLE TIME6 CLOCK.  JUST IN CASE A T6
  TS T6NEXT  # RUPT IS ALREADY IN THE PRIORITY CHAIN,
  EXTEND   # ENSURE THAT ITS INPUTS WILL RENDER IT
  WAND CHAN13  # INEFFECTUAL.
  CAF ZERO
  TS NXT6ADR
  TS NEXTP

  CS ACCSOKAY
  MASK DAPBOOLS
  TS DAPBOOLS

  EXTEND   # SET T5RUPT FOR DAPIDLER PROGRAM.
  DCA IDLEADR
  DXCH T5ADR

STARTSB2 CAF OCT30001 # DURING SOFTWARE RESTART, DO NOT DISTURB
  EXTEND   # ENGINE ON, OFF AND ISS WARNING.
  WAND DSALMOUT

  CS READRBIT # CLEAR READRFLG FOR R29
  MASK FLAGWRD3
  TS FLAGWRD3
# Page 220

  CS FLAGWRD3 # DURING SOFTWARE RESTART, CLEAR TURNON,
  MASK NR29FBIT # REPOSITION, CDU ZERO AND REMODE BITS
  EXTEND   # IN RADMODES, SINCE TASKS ASSOCIATED
  BZF +2  # WITH THESE BITS HAVE BEEN KILLED
  CAF BIT10  # ALSO IF R29 HAD BEEN REQUESTED.
  AD OCT32001 # (NOR29FLG = 0) CLEAR BIT 10 RADMODES
  COM   # TO MAKE R29 FORGET IT HAD STARTED
  MASK RADMODES # DESIGNATING
  TS RADMODES
  CAF OCT27470 # DURING SOFTWARE RESTART, DO NOT DISTURB
  EXTEND   # IMU FLAGS.  (COARSE ALIGN ENABLE, ZERO
  WAND CHAN12  # IMU CDUS, ENABLE IMU COUNTER) AND GIMBAL
     # TRIM DRIVES.  LEAVE RR LOCKON ENABLE
     # ALONE.

  CS NORRMBIT # ENABLE R25.
  MASK FLAGWRD5
  TS FLAGWRD5

  CS R77FLBIT # CLEAR R77FLAG
  MASK FLAGWRD5
  TS FLAGWRD5
  CAF OCT74160 # DURING SOFTWARE RESTART, DO NOT DISTURB
  EXTEND   # TELEMETRY FLAGS, RESET TRAP FLAGS, AND
  WAND CHAN13  # ENABLE T6RUPT FLAG.

  CAF BIT12  # REENABLE RUPT10 (RUPT QUICKLY
  EXTEND   # RESUMES EXCEPT DURING P64)
  WOR CHAN13

  CAF BIT6  # DURING SOFTWARE RESTART, DO NOT DISTURB
  EXTEND   # GYRO ENABLE FLAG.
  WAND CHAN14

  EBANK= LST1
  CAF STARTEB
  TS EBANK  # SET FOR E3

  CAF NEG1/2  # INITIALIZE WAITLIST DELTA-TS.
  TS LST1 +7
  TS LST1 +6
  TS LST1 +5
  TS LST1 +4
  TS LST1 +3
  TS LST1 +2
  TS LST1 +1
  TS LST1

  CS ENDTASK
  TS LST2
# Page 221
  TS LST2 +2
  TS LST2 +4
  TS LST2 +6
  TS LST2 +8D
  TS LST2 +10D
  TS LST2 +12D
  TS LST2 +14D
  TS LST2 +16D
  CS ENDTASK +1
  TS LST2 +1
  TS LST2 +3
  TS LST2 +5
  TS LST2 +7
  TS LST2 +9D
  TS LST2 +11D
  TS LST2 +13D
  TS LST2 +15D
  TS LST2 +17D

  CS ZERO  # MAKE ALL EXECUTIVE REGISTER SETS
  TS PRIORITY # AVAILABLE.
  TS PRIORITY +12D
  TS PRIORITY +24D
  TS PRIORITY +36D
  TS PRIORITY +48D
  TS PRIORITY +60D
  TS PRIORITY +72D
  TS PRIORITY +84D

  TS DSRUPTSW
  TS NEWJOB  # SHOWS NO ACTIVE JOBS.

  CAF VAC1ADRC # MAKE ALL VAC AREAS AVAILABLE.
  TS VAC1USE
  AD LTHVACA
  TS VAC2USE
  AD LTHVACA
  TS VAC3USE
  AD LTHVACA
  TS VAC4USE
  AD LTHVACA
  TS VAC5USE

  CAF TEN
DSPOFF  TS MPAC  # R1, R2, R3
  CS BIT12
  INDEX MPAC
  TS DSPTAB
  CCS MPAC
  TCF DSPOFF

# Page 222
  TS DELAYLOC
  TS DELAYLOC +1
  TS DELAYLOC +2
  TS R1SAVE
  TS INLINK
  TS DSPCNT
  TS CADRSTOR
  TS REQRET
  TS CLPASS
  TS DSPLOCK
  TS MONSAVE  # KILL MONITOR
  TS MONSAVE1
  TS VERBREG
  TS NOUNREG
  TS DSPLIST
  TS MARKSTAT
  TS EXTVBACT # MAKE EXTENDED VERBS AVAILABLE
  TS IMUCADR
  TS OPTCADR
  TS RADCADR
  TS ATTCADR
  TS LGYRO
  TS FLAGWRD4 # KILL INTERFACE DISPLAYS
  CAF NOUTCON
  TS NOUT

  CS ONE
  TS SAMPLIM
  CAF BIT6
  MASK IMODES33 # LEAVE BIT 6 UNCHANGED
  AD IM33INIT # NO PIP OR TM FAILS.  BIT6=0 IN THIS WORD.
  TS IMODES33

  CAF LESCHK  # SELF CHECK GO-TO REGISTER.
  TS SELFRET

  CS VD1
  TS DSPCOUNT

  TC Q
  EBANK= AOSQ
IDLEADR  2CADR DAPIDLER

IFAILINH OCT 435
LDNPHAS1 GENADR DNPHASE1
LESCHK  GENADR SELFCHK
VAC1ADRC ADRES VAC1USE
OCT32001 OCT 32001
LTHVACA  DEC 44

# Page 223
OCT27470 OCT 27470
OCT74160 OCT 74160
OCT30001 OCT 30001
STARTEB  EQUALS EBANK3
NUMGRPS  EQUALS FIVE
-ELR  OCT -22  # -ERROR LIGHT RESET KEY CODE.
IM30INIF OCT 37411  # INHIBITS IMU FAIL FOR 5 SEC AND PIP ISSW
IM30INIR OCT 37000
IM33INIT = PRIO16  # NO PIP OR TM FAIL SIGNALS.
9,6,4  OCT 450
RMODINIT OCT 00102
SWINIT  OCT 0
  OCT 0
  OCT 0
  OCT 02000  # BIT 11 = NOR29FLG
  OCT 0
  OCT 0
  OCT 0
  OCT 00100

  OCT 0
  OCT 0
  OCT 0
  OCT 40000  # BIT 15 = LRBYPASS.

# Page 224
# PROGRAM NAME GOTOPOOH ASSEMBLY SUNDANCE
# LOG SECTION FRESH START AND RESTART
#
# FUNCTIONAL DESCRIPTION
#
# FLASH V 37 ON DSKY MM CHANGE REQUEST
#
# INPUT/OUTPUT INFORMATION
#
# A. CALLING SEQUENCE TC GOTOPOOH
# B. ERASABLE INITIALIZATION NONE
# C. OUTPUT FLASH V 37 ON DSKY
# D. DEBRIS L
#
# PROGRAM ANALYSIS
#
# A. SUBROUTINES CALLED PRIODSPR, LINUS
# B. NORMAL EXIT TCF ENDOFJOB
# C. ALARM AND ABORT EXITS NONE

  BLOCK 03
  SETLOC FFTAG5
  BANK

  COUNT* $$/P00
GOTOPOOH CAF OCT33   # 4.33 SPOT FOR GOP00FIX
  TS L
  COM
  DXCH -PHASE4

  TC POSTJUMP
  CADR GOP00FIX
OCT24  MM 20
OCT31  MM 25

  BANK 20
  SETLOC VERB37
  BANK

  COUNT* $$/P00   # VERB 37 AND P00 IN BANK 4.
GOP00FIX TC DOWNFLAG  # ALLOW X-AXIS OVERRIDE
  ADRES XOVINFLG

  TC DOWNFLAG  # INSURE THAT ULLAGE IS OFF
  ADRES ULLAGFLG
# Page 225
  TC CLEARMRK +2  # RELEASE MARK DISPLAY SYSTEM.
  CAF V37N99
  TC BANKCALL
  CADR GOFLASH
  TCF -3
  TCF -4
  TCF -5

V37N99  VN 3799

# Page 226
# PROGRAM NAME V37 ASSEMBLY SUNDANCE
#
# LOG SECTION FRESH START AND RESTART
#
# FUNCTIONAL DESCRIPTION
#
# 1. CHECK IF NEW PROGRAM ALLOWED.  IF BIT 1 OF FLAGWRD2 (NODOFLAG) IS SET, AN ALARM 1520 IS CALLED.
# 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.
# 3. SERVICER IS TERMINATED IF IT HAS BEEN RUNNING.
# 4. INSTALL IS EXECUTED TO AVOID INTERRUPTING INTEGRATION.
# 5. THE ENGINE IS TURNED OFF AND THE DAP IS INITIALIZED FOR COAST.
# 6. TRACK AND UPDATE FLAGS ARE SET TO ZERO.
# 7. DISPLAY SYSTEM IS RELEASED.
# 8. THE FOLLOWING ARE PERFORMED FOR EACH OF THE THREE CASES.
# A. PROGRAM SELECTED IS P00
# 1. RENDEZVOUS AND P25 FLAGS ARE RESET.  (KILL P20 AND P25)
# 2. STATINT1 IS SCHEDULED BY SETTING RESTART GROUP 2.
# 3. MAJOR MODE 00 IS STORED IN THE MODE REGISTER (MODREG).
# 4. SUPERBANK 3 IS SELECTED.
# 5. NODOFLAG IS RESET.
# 6. ALL RESTART GROUPS EXCEPT GROUP2 ARE CLEARED. CONTROL IS TRANSFERRED TO RESTART PROGRAM (GOPROG2)
#    WHICH CAUSES ALL CURRENT ACTIVITY TO BE DISCONTINUED AND A 9 MINUTE INTEGRATION CYCLE TO BE
#    INITIATED.
# B. PROGRAM SELECTES IS P20 OR P25.
# 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.
# 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,
#    AND IF IT HAS, NO NEW PROGRAM IS SCHEDULED, THE EXISTING
#    P20 OR P25 IS RESTARTED TO CONTINUE, AND ITS MM IS SET.
# 3. CONTROL IS TRANSFERRED TO GOPROG2.
# C. PROGRAM SELECTED IS NEITHER P00, P20, NOR P25
# 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
#    GROUPS.  IF THE RENDEZVOUS OR THE P25 FLAG IS ON, GROUP 2 IS NOT CLEARED, ALLOWING THESE PROGRAMS
#    TO CONTINUE.
#
# INPUT/OUTPUT INFORMATION
#
# A. CALLING SEQUENCE
# CONTROL IS DIRECTED TO V37 BY THE VERBFAN ROUTINE.
# VERBFAN GOES TO C(VERBTAB+C(VERBREG)). VERB 37 = MMCHANG.
# MMCHANG EXECUTES A `TC POSTJUMP', CADR V37.
#
# B. ERASABLE INITIALIZATION NONE
#
#  C. OUTPUT
# Page 227
# MAJOR MOD CHANGE
#
# D. DEBRIS
# MMNUMBER, MPAC +1, MINDEX, BASETEMP +C(MINDEX), FLAGWRD0, FLAGWRD1, FLAGWRD2, MODREG, GOLOC -1,
# GOLOC, GOLOC +1, GOLOC +2, BASETEMP, -PHASE2, PHASE2, -PHASE4
#
# PROGRAM ANALYSIS
#
# A. SUBROUTINES CALLED
# ALARM, RELDSP, PINBRNCH, INTSTALL, ENGINOF2, ALLCOAST, V37KLEAN, GOPROG2, FALTON, FINDVAC, SUPERSW,
# DSPMM
#
# B. NORMAL EXIT TC ENDOFJOB
#
# C. ALARMS 1520 (MAJOR MODE CHANGE NOT PERMITTED)

V37  TS MMNUMBER  # SAVE MAJOR MODE
  CAF PRIO30   # RESTART AT PINBALL PRIORITY
  TS RESTREG

  CA IMODES30  # IS IMU BEING INITIALIZED
  MASK BIT6
  CCS A
  TCF CANTROD

  CS MMNUMBER  # IS P70 REQUESTED?
  AD DEC70
  EXTEND
  BZF SETUP70   # YES
  AD ONE   # IS P71 REQUESTED?
  EXTEND
  BZF SETUP71   # YES

  CA MMNUMBER  # IS NEW REQUEST P00
  EXTEND
  BZF ISSERVON  # YES, CHECK SERVICER STATUS

  CS FLAGWRD2  # NO, IS NODO V37 FLAG SET
  MASK NODOBIT
  CCS A
  TCF CHECKTAB  # NO
CANTROD  TC ALARM
  OCT 1520

V37BAD  TC RELDSP   # RELEASES DISPLAY FROM ASTRONAUT

  TC POSTJUMP  # BRING BACK LAST NORMAL DISPLAY IF THERE
  CADR PINBRNCH  # WAS ONE.  OTHERWISE DO AN EOJ.

CHECKTAB CA NOV37MM   # INDEX FOR MM TABLES.

# Page 228
AGAINMM  TS MPAC +1
  NDX MPAC +1
  CA PREMM1   # OBTAIN WHICH MM THIS IS FOR
  MASK LOW7
  COM
  AD MMNUMBER
  CCS A
  CCS MPAC +1   # IF GR, SEE IF ANY MORE IN LIST
  TCF AGAINMM   # YES, GET NEXT ONE
  TCF V37NONO   # LAST TIME OR PASSED MM

  CA MPAC +1
  TS MINDEX   # SAVE INDEX FOR LATER

ISSERVON CS FLAGWRD7  # V37 FLAG SET -- I.E., IS SERVICER GOING
  MASK V37FLBIT
  CCS A
  TCF CANV37   # NO

  TC DOWNFLAG  # YES, TURN OFF THE AVERAGE FLAG AND
  ADRES AVEGFLAG  # WAIT FOR SERVICER TO RETURN TO CANV37

  CAF V37RETAD
  TS OUTROUTE

  TCF ENDOFJOB

V37RET  CS FLAGWRD0  # IS P20 OR P22 RUNNING?
  MASK RNDVZBIT
  CCS A
  TCF +2   # NO. CHECK FOR P25.
  TCF 2.7SPT   # YES. DO 2.7SPOT
  CS FLAGWRD0  # IS P25 RUNNING?
  MASK P25FLBIT
  CCS A
2.0SPT  CA OCT37667
2.11SPT  AD BIT5
2.7SPT  AD OCT40072
  TC PHSCHNGA

CANV37  CAF ZERO
  EXTEND
  WRITE SUPERBNK

  CAF R00AD
  TS TEMPFLSH

  TC PHASCHNG
  OCT 14

# Page 229

R00  TC INTPRET

  CALL    # WAIT FOR INTEGRATION TO FINISH
   INTSTALL
DUMMYAD  EXIT

  TC DOWNFLAG
  ADRES 3AXISFLG  # RESET 3-AXIT FLAG

  CAF LRBYBIT   # CLEAN UP THE R12 FLAGWORD.
  TS FLGWRD11

  TC DOWNFLAG  # INSURE THAT THE R04FLAG IS CLEAR.
  ADRES R04FLAG

  TC DOWNFLAG  # INSURE MUNFLAG IS CLEAR.
  ADRES MUNFLAG

  TC DOWNFLAG  # ALLOW X-AXIS OVERRIDE.
  ADRES XOVINFLG
  CCS MMNUMBER  # IS THIS A POOH REQUEST
  TCF NOUVEAU   # NO, PICK UP NEW PROGRAM

POOH  TC RELDSP   # RELEASE DISPLAY SYSTEM

  CAF PRIO5   # SET VARIABLE RESTART PRIORITY FOR
  TS PHSPRDT2  # P00 INTEGRATION.

  TC CLRADMOD  # CLRADMOD DOES AN INHINT.

  CS NODOBIT   # TURN OFF NODOFLAG.
  MASK FLAGWRD2
  TS FLAGWRD2

  CA FIVE   # SET RESTART FOR STATEINT1
  TS L
  COM
  DXCH -PHASE2

  CS OCT700   # TURN OFF P20, P25, IMU IN USE FLAG
  MASK FLAGWRD0
  TS FLAGWRD0  #  REMDFLG

  CAF DNLADP00

SEUDOP00 TS DNLSTCOD  # SET UP APPROPRIATE DOWNLIST CODE
  TS AGSWORD   #   (CURRENT LIST WILL BE COMPLETED BEFORE
      #     NEW ONE IS STARTED)
  TC IBNKCALL
  CADR ENGINOF1

# Page 230
  TC IBNKCALL  # INSURE ALLCOAST.
  CADR ALLCOAST  # DOES A RESTORDB.

  CS OCT120   # TURN OFF TRACK, UPDATE FLAGS
  TS EBANKTEM
  MASK FLAGWRD1
  TS FLAGWRD1

  TC IBNKCALL  # KILL GROUPS 1,3,5,6
  CADR V37KLEAN

  CCS MMNUMBER  # IS IT POOH
  TCF RENDV00   # NO
GOMOD  TC IBNKCALL  # REDUNDANT EXCEPT FOR GROUP 4
  CADR P00KLEAN

  CA MMNUMBER
  TS MODREG

GOGOPROG TC POSTJUMP
  CADR GOPROG2

RENDV00  CS MODREG   # IS CURRENT PROGRAM 22
  AD OCT26
  EXTEND
  BZF RESET22   # YES -- CLEAR RENDEZVOUS FLAG

  CS MMNUMBER  # IS NE PROGRAM P22
  AD OCT26
  EXTEND
  BZF RESET22

  AD NEG2   # IS NEW PROGRAM = P20 OR P25
  EXTEND
  BZF RENDN00   # YES
  AD FIVE   # 25
  EXTEND
  BZF RENDN00   # YES

  CA OCT500   # NO, IS EITHER P20 OR P25 RUNNING
  MASK FLAGWRD0
  CCS A
  TCF P00FIZZ   # YES, LEAVE GROUP 2 TO PICK UP P20 OR P25

RESET22  CS OCT700   # CLEAR RENDEZVOUS, P25
  MASK FLAGWRD0  # AND IMU IN USE FLAGS
  TS FLAGWRD0
  TC CLRADMOD
# Page 231

KILL2  EXTEND    # NO, KILL 2
  DCA NEG0
  DXCH -PHASE2

P00FIZZ  CAF V37QCAD   # RESTART POINT FOR V37XEQ
  TS TEMPFLSH

  TCF GOGOPROG

RENDN00  CS MODREG
  AD OCT24
  EXTEND
  BZF KILL2   # P20 OR P25 ON TOP OF P20 OR P25 --

  AD FIVE
  EXTEND
  BZF KILL2

  CA OCT500
  MASK FLAGWRD0
  AD MMNUMBER
  COM
  AD P20REG   # IS IT 20 AND IS RENDEZVOUS FLAG ON
  EXTEND
  BZF STATQUO   # YES
  AD OCT305   # IS IT 25 AND IS P25 BIT ON
  EXTEND
  BZF STATQUO   # YES, LEAVE AS IS
  TCF KILL2

STATQUO  CS FLAGWRD1  # SET TRACKFLAG
  MASK OCT120   # UPDATE FLAG
  ADS FLAGWRD1

  TCF GOMOD

NOUVEAU  CAF OCT500   # IS P20 OR P25 FLAG SET
  MASK FLAGWRD0
  CCS A
  TCF +3   # YES
  TC DOWNFLAG  # NO, RESET IMUINUSE FLAG
  ADRES IMUSE

  INDEX MINDEX
  CAF DNLADMM1  # OBTAIN APPROPIRATE DOWNLIST ADDRESS

  INHINT
  TCF SEUDOP00

V37NONO  TC FALTON   # COME HERE IF MM REQUESTED DOESN'T EXIST
# Page 232
  TCF V37BAD

OCT00010 EQUALS BIT4
OCT500  OCT 500   # BITS 7 AND 9
OCT305  OCT 305
OCT26  OCT 26
P20REG  OCT 124

V37XEQ  INHINT
  INDEX MINDEX
  CAF PREMM1   # OBTAIN PRIO, EBANK, AND MM
  TS MMTEMP
  TS CYR   # SHIFT RIGHT TO BITS 14-10

  CA CYR
  MASK PRIO37
  TS PHSPRDT4  # PRESET GROUP 4 RESTART PRIORITY
  TS NEWPRIO   # STORE PRIO FOR SPVAC

  CA MMTEMP   # OBTAIN EBANK -- BITS 8, 9, 10 OF MMTEMP.
  EXTEND
  MP BIT8
  MASK LOW3
  TS L

  INDEX MINDEX
  CAF FCADRMM1
  TS BASETEMP  # MAKE BBCON BY ADDING HI5 OR FCADR
  MASK HI5
  ADS L

  CA BASETEMP  # OBTAIN GENADR PORTION OF 2CADR.
  MASK LOW10
  AD BIT11

  TC SPVAC

V37XEQC  CA MMTEMP   # UPON RETURN FROM FINDVAC PLACE THE
  MASK LOW7   # NEW MM IN MODREG (THE LOW 7 BITS OF
  TC NEWMODEA  # PHSPRDT1)

  TC RELDSP   # RELEASE DISPLAY
  TC ENDOFJOB  # AND EXIT

NEG7  EQUALS OCT77770

MMTEMP  EQUALS PHSPRDT3
BASETEMP EQUALS TBASE4
V37QCAD  CADR V37XEQ +3
R00AD  CADR DUMMYAD

# Page 233
V37RETAD CADR V37RET
OCT37667 OCT 37667
OCT40072 OCT 40072
OCT700  OCT 700

SETUP71  CAF THREE
SETUP70  TS Q
  EXTEND
  DCA P70CADR
  AD Q
  DTCB

DEC70  DEC 70
  EBANK= R
P70CADR  2CADR P70

# FOR VERB 37 TWO TABLES ARE MAINTAINED.  EACH TABLE HAS AN ETRY FOR EACH
# MAJOR MODE THAT CAN BE STARTED FROM THE KEYBOARD.  THE ENTRIES ARE PUT
# INTO THE TABLE WITH THE ENTRY FOR THE HIGHEST MAJOR MODE COMING FIRST,
# 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 MAJOR MODE.  FOR EXAMPLE,
#
# FCADRMM1 FCADR P79 # START OF P 79
# FCADR PROG18 # START OF P 18
# FCADR P01 # START OF P 01
#
# NOTE: THE FIRST ENTRY MUST BE LABELED FCADRMM1.
# -----

FCADRMM1 FCADR P79
  FCADR P78
  FCADR P76
  FCADR P75
  FCADR P74
  FCADR P73
  FCADR P72
  FCADR LANDJUNK
  FCADR P63LM
  FCADR P57
  FCADR PROG52
  FCADR P51
  FCADR P47LM
  FCADR P42LM
  FCADR P41LM
  FCADR P40LM
  FCADR P39
  FCADR P38
# Page 234
  FCADR P35
  FCADR P34
  FCADR P33
  FCADR P32
  FCADR P31
  FCADR P30
  FCADR PROG25
  FCADR PROG22
  FCADR PROG21
  FCADR PROG20
  FCADR P12LM
  FCADR P06

# THE PREMM TABLE CONTAINS THE E-BANK, MAJOR MODE, AND PRIORITY
# INFORMATION, IT IS IN THE FOLLOWING FORM,
#
# PPP PPE EEM MMM MMM
#
# WHERE THE 7 M BITS CONTAIN THE MAJOR MODE NUMBER
# 3 E BITS CONTAIN THE E-BANK NUMBER
# 5 P BITS CONTAIN THE PRIORITY AT WHICH THE JOB IS
#     TO BE STARTED
#
# FOR EXAMPLE,
#
# PREMM1 OCT 67213 # PRIORITY 33
# # E-BANK 5
# # MAJOR MODE 11
# OCT 25437 # PRIORITY 12
# # E-BANK 6
# # MAJOR MODE 31
#
# NOTE: THE FIRST ENTRY MUST BE LABELED PREMM1

PREMM1  OCT 27717  # MM 79 EBANK 7 PRIO 13
  OCT 27716  # MM 78 EBANK 7 PRIO 13
  OCT 27714  # MM 76 EBANK 7 PRIO 13
  OCT 27713  # MM 75 EBANK 7 PRIO 13
  OCT 27712  # MM 74 EBANK 7 PRIO 13
  OCT 27711  # MM 73 EBANK 7 PRIO 13
  OCT 27710  # MM 72 EBANK 7 PRIO 13
  OCT 27704  # MM 68 EBANK 7 PRIO 13
  OCT 27677  # MM 63 EBANK 7 PRIO 13
  OCT 27271  # MM 57 EBANK 5 PRIO 13
  OCT 27264  # MM 52 EBANK 5 PRIO 13
  OCT 27263  # MM 51 EBANK 5 PRIO 13
  OCT 27657  # MM 47 EBANK 7 PRIO 13
  OCT 27652  # MM 42 EBANK 7 PRIO 13
  OCT 27651  # MM 41 EBANK 7 PRIO 13
  OCT 27650  # MM 40 EBANK 7 PRIO 13
  OCT 27647  # MM 39 EBANK 7 PRIO 13
  OCT 27646  # MM 38 EBANK 7 PRIO 13
# Page 235
  OCT 27643  # MM 35 EBANK 7 PRIO 13
  OCT 27642  # MM 34 EBANK 7 PRIO 13
  OCT 27641  # MM 33 EBANK 7 PRIO 13
  OCT 27640  # MM 32 EBANK 7 PRIO 13
  OCT 27637  #
  OCT 27636  # MM 30 EBANK 7 PRIO 13
  OCT 27631  # MM 25 EBANK 7 PRIO 13
  OCT 27626  # MM 22 EBANK 7 PRIO 13
  OCT 27625  # MM 21 EBANK 7 PRIO 13
  OCT 27624  # MM 20 EBANK 7 PRIO 13
  OCT 27614  # MM 12 EBANK 7 PRIO 13
  OCT 27006  # MM 06 EBANK 4 PRIO 13

# 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)
# THAT CAN BE CALLED FROM THE KEYBOARD MINUS ONE)

NOV37MM  DEC 29  # MM'S -1

DNLADMM1 ADRES RENDEZVU # P79
  ADRES RENDEZVU # P78
  ADRES RENDEZVU
  ADRES RENDEZVU # P75
  ADRES RENDEZVU # P74
  ADRES RENDEZVU # P73
  ADRES RENDEZVU # P72
  ADRES DESASCNT # P68
  ADRES DESASCNT # P63
  ADRES LUNRSALN # P57
  ADRES COSTALIN # P52
  ADRES COSTALIN # P51
  ADRES ORBMANUV # P47
  ADRES ORBMANUV # P42
  ADRES ORBMANUV # P41
  ADRES ORBMANUV # P40
  ADRES RENDEZVU # P39
  ADRES RENDEZVU # P38
  ADRES RENDEZVU # P35
  ADRES RENDEZVU # P34
  ADRES RENDEZVU # P33
  ADRES RENDEZVU # P32
  ADRES   RENDEZVU # P31LM
  ADRES RENDEZVU # P30
  ADRES RENDEZVU # P25
  ADRES LUNRSALN # P22
  ADRES RENDEZVU # P21
  ADRES RENDEZVU # P20
  ADRES DESASCNT # P12
  ADRES COSTALIN # P06
DNLADP00 = ZERO
COSTALIN = 0
# Page 236
AGSUPDAT = 1
RENDEZVU = 2
ORBMANUV = 3
DESASCNT = 4
LUNRSALN = 5

  BANK 13
  SETLOC INTINIT
  BANK

  COUNT* $$/INTIN

  EBANK= RRECTCSM

# THIS ROUTINE DOES THE P00 INTEGRATION

STATEUP  SET BOF  # EXTRAPOLATE CM STATE VECTOR
   VINTFLAG
   SURFFLAG # ALSO 6X6 W-MATRIX IF LM ON LUNAR
   DOINT  #  SURFACE AND W-MATRIX VALID
  BOF SET  # FOR RENDEZVOUS NAVIGATION.
   RENDWFLG
   DOINT
   DIM0FLAG
DOINT  CLEAR CALL
   PRECIFLG # ENGAGES 4-TIME STEP LOGIC IN INTEGRATION
   INTEGRV  # WHEN MODREG = 0

  BON DLOAD
   SURFFLAG
   NO-INT
   TETCSM
  STCALL TDEC1
   INTSTALL
  CLEAR CALL  # EXTRAPOLATE LM STATE VECTOR
   VINTFLAG
   SETIFLGS
  BOF   # ALSO 9X9 W-MATRIX IF W IS VALID
   RENDWFLG
   DOINT2
  SET SET
   DIM0FLAG
   D6OR9FLG
DOINT2  SET CALL
   PRECIFLG # DISENGAGE 4 TIME STEP LOGIC IN INTEG.
   INTEGRV
NO-INT  CLRGO
   NODOFLAG
   ENDINT
# Page 237
# THISVINT IS CALLED BY MIDTOAV1 AND 2

THISVINT CLEAR RVQ
   VINTFLAG



Messung V0.5 in Prozent
C=51 H=100 G=79

¤ Dauer der Verarbeitung: 0.130 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover


Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.