Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

SSL IMU_MODE_SWITCHING_ROUTINES.agc   Interaktion und
PortierbarkeitApollo

 

# Copyright: Public domain.
# Filename: IMU_MODE_SWITCHING_ROUTINES.agc
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
# It is part of the source code for the Command Module's (CM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <info@sandroid.org>.
# Website: www.ibiblio.org/apollo.
# Pages: 1420-1448
# Mod history: 2009-05-10 SN (Sergio Navarro).  Started adapting from
# the Colossus249/ file of the same name,
# using Comanche055 page images.
#
# 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 055 of AGC program Comanche by NASA
#    2021113-051.  10:28 APR. 1, 1969
#
#    This AGC program shall also be referred to as
#            Colossus 2A

# Page 1420
  BLOCK 02
  SETLOC FFTAG3
  BANK

  EBANK= COMMAND

# FIXED-FIXED ROUTINES.

  COUNT 02/IMODE

ZEROICDU CAF ZERO  # ZERO ICDU COUNTERS.
  TS CDUX
  TS CDUY
  TS CDUZ
  TC Q

SPSCODE  = BIT9

# Page 1421
# IMU ZEROING ROUTINE.

  BANK 11
  SETLOC MODESW
  BANK

  COUNT 07/IMODE

IMUZERO  INHINT   # ROUTINE TO ZERO ICDUS.
  CS DSPTAB +11D # DONT ZERO CDUS IS IMU IN GIMBAL LOCK AND
  MASK BITS4&6  # COARSE ALIGN (GIMBAL RUNAWAY PROTECTION)
  CCS A
  TCF IMUZEROA

  TC ALARM  # IF SO.
  OCT 00206

  TCF CAGETSTJ +4 # IMMEDIATE FAILURE.

IMUZEROA TC CAGETSTJ
# DO ALL THE WORK.
  CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
  MASK SUPER011 #  BIT5 FOR GROUND
  ADS IMODES33

  CS IMODES30 # INHIBIT ICDUFAIL AND IMUFAIL (IN CASE WE
  MASK BITS3&4  # JUST CAME OUT OF COARSE ALIGN).
  ADS IMODES30

  CS BITS4&6  # SEND ZERO ENCODE WITH COARSE AND ERROR
  EXTEND   # COUNTER DISABLED.
  WAND  CHAN12

  TC NOATTOFF # TURN OFF NO ATT LAMP.

  CAF BIT5
  EXTEND
  WOR CHAN12

  TC ZEROICDU
  CAF BIT6  # WAIT 320 MS TO GIVE AGS ADEQUATE TIME TO
  TC WAITLIST # RECEIVE ITS PULSE TRAIN.
  EBANK= CDUIND
  2CADR IMUZERO2

  CS IMODES30 # SEE IF IMU OPERATING AND ALARM IF NOT.
  MASK BIT9
  CCS A
  TCF MODEEXIT
# Page 1422
  TC ALARM
  OCT 210

MODEEXIT RELINT   # GENERAL MODE-SWITCHING EXIT.
  TCF SWRETURN

IMUZERO2 TC CAGETEST
  TC ZEROICDU # ZERO CDUX, CDUY, CDUZ

  CS BIT5  # REMOVE ZERO DISCRETE.
  EXTEND
  WAND CHAN12

  CAF BIT11  # WAIT 10 SECS FOR CTRS TO FIND GIMBALS
  TC VARDELAY

IMUZERO3 TC CAGETEST
  CS BITS3&4  # REMOVE IMUFAIL AND ICDUFAIL INHIBIT.
  MASK IMODES30
  TS IMODES30

  CS SUPER011 # ENABLE DAP AUTO AND HOLD MODES
  MASK IMODES33 # BIT5 FOR GROUND
  TS IMODES33

  TC IBNKCALL # SET ISS WARNING IF EITHER OF ABOVE ARE
  CADR SETISSW  # PRESENT.

  TCF ENDIMU

# Page 1423
# IMU COARSE ALIGN MODE.

IMUCOARS INHINT
  TC CAGETSTJ
  TC SETCOARS

  CAF SIX
  TC WAITLIST
  EBANK= CDUIND
  2CADR COARS

  TCF MODEEXIT

COARS  TC CAGETEST
  CAF BIT6  # ENABLE ALL THREE ISS CDU ERROR COUNTERS
  EXTEND
  WOR CHAN12

  CAF TWO  # SET CDU INDICATOR
COARS1  TS CDUIND

  INDEX CDUIND  # COMPUTE THETAD - THETAA IN 1:S
  CA THETAD  #  COMPLEMENT FORM
  EXTEND
  INDEX CDUIND
  MSU CDUX
  EXTEND
  MP BIT13  # SHIFT RIGHT 2
  XCH L  # ROUND
  DOUBLE
  TS ITEMP1
  TCF +2
  ADS L

  INDEX CDUIND  # DIFFERENCE TO BE COMPUTED
  LXCH COMMAND
  CCS CDUIND
  TC COARS1

  CAF TWO  # MINIMUM OF 4 MS WAIT
  TC  VARDELAY

# Page 1424
COARS2  TC CAGETEST # DONT CONTINUE IF CAGED.
  TS ITEMP1  # SET TO +0.
  CAF TWO  # SET CDU INDICATOR
 +3 TS CDUIND

  INDEX CDUIND
  CCS COMMAND  # NUMBER OF PULSES REQUIRED
  TC COMPOS  # GREATER THAN MAX ALLOWED
  TC NEXTCDU +1
  TC COMNEG
  TC NEXTCDU +1

COMPOS  AD -COMMAX  # COMMAX = MAX NUMBER OF PULSES ALLOWED
  EXTEND   #  MINUS ONE
  BZMF COMZERO
  INDEX CDUIND
  TS COMMAND  # REDUCE COMMAND BY MAX NUMBER OF PULSES
  CS -COMMAX- #  ALLOWED

NEXTCDU  INCR ITEMP1
  AD NEG0
  INDEX CDUIND
  TS CDUXCMD  # SET UP COMMAND REGISTER.

  CCS CDUIND
  TC COARS2 +3

  CCS ITEMP1  # SEE IF ANY PULSES TO GO OUT.
  TCF SENDPULS

  TC FIXDELAY # WAIT FOR GIMBALS TO SETTLE.
  DEC 150


  CAF TWO  # AT END OF COMMAND, CHECK TO SEE THAT
CHKCORS  TS ITEMP1  # GIMBALS ARE WITHIN 2 DEGREES OF THETAD.
  INDEX A
  CA CDUX
  EXTEND
  INDEX ITEMP1
  MSU THETAD
  CCS A
  TCF COARSERR
  TCF CORSCHK2
  TCF COARSERR

# Page 1425
CORSCHK2 CCS ITEMP1
  TCF CHKCORS
  TCF ENDIMU  # END OF COARSE ALIGNMENT.

COARSERR AD COARSTOL # 2 DEGREES.
  EXTEND
  BZMF CORSCHK2

  TC ALARM  # COARSE ALIGN ERROR.
  OCT 211

  TCF IMUBAD

COARSTOL DEC -.01111  # 2 DEGREES SCALED AT HALF-REVOLUTIONS


COMNEG  AD -COMMAX
  EXTEND
  BZMF COMZERO
  COM
  INDEX CDUIND
  TS COMMAND
  CA -COMMAX-
  TC NEXTCDU

COMZERO  CAF ZERO
  INDEX CDUIND
  XCH COMMAND
  TC NEXTCDU

SENDPULS CAF 13,14,15
  EXTEND
  WOR CHAN14
  CAF 600MS
  TCF COARS2 -1 # THEN TO VARDELAY


CA+ECE  CAF BIT6  # ENABLE ALL THREE ISS CDU ERROR COUNTERS
  EXTEND
  WOR CHAN12
  TC TASKOVER

# Page 1426
SETCOARS CAF BIT4  # BYPASS IF ALREADY IN COARSE ALIGN
  EXTEND
  RAND CHAN12
  CCS A
  TC Q

  CS BIT6  # CLEAR ISS ERROR COUNTERS
  EXTEND
  WAND CHAN12

  CS BIT10  # KNOCK DOWN GYRO ACTIVITY
  EXTEND
  WAND CHAN14
  CS ZERO
  TS GYROCMD

  CAF BIT4  # PUT ISS IN COARSE ALIGN
  EXTEND
  WOR CHAN12

  CS DSPTAB +11D # TURN ON NO ATT LAMP
  MASK OCT40010
  ADS DSPTAB +11D

  CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
  MASK BIT6
  ADS IMODES33

  CS IMODES30 # DISABLE IMUFAIL
  MASK BIT4
  ADS IMODES30

RNDREFDR CS BIT5  # KNOCK DOWN TRACK FLAG
  MASK FLAGWRD1
  TS FLAGWRD1

  CS BIT15  # KNOCK DOWN DRIFT FLAG
  MASK FLAGWRD2
  TS FLAGWRD2

  CS BIT13  # KNOCK DOWN REFSMMAT FLAG
  MASK FLAGWRD3
  TS FLAGWRD3

  TC Q

OCT40010 OCT 40010

# Page 1427
# IMU FINE ALIGN MODE SWITCH.

IMUFINE  INHINT
  TC CAGETSTJ # SEE IF IMU BEING CAGED.

  CS BITS4-5  # RESET ZERO AND COARSE
  EXTEND
  WAND CHAN12

  CS BIT6  # INSURE DAP AUTO AND HOLD MODES ENABLED
  MASK IMODES33
  TS IMODES33

  TC NOATTOFF

  CAF BIT10  # IMU FAIL WAS INHIBITED DURING THE
  TC WAITLIST # PRESUMABLY PRECEDING COARSE ALIGN.  LEAVE
  EBANK= CDUIND
  2CADR IFAILOK  # IT ON FOR THE FIRST 5 SECS OF FINE ALIGN

  CAF 2SECS
  TC WAITLIST
  EBANK= CDUIND
  2CADR IMUFINED

  TCF MODEEXIT

IMUFINED TC CAGETEST # SEE THAT NO ONE HAS CAGED THE IMU.
  TCF ENDIMU

# Page 1428
IFAILOK  TC CAGETSTQ # ENABLE IMU FIAL UNLESS IMU BEING CAGED.
  TCF TASKOVER # IT IS.

  CAF BIT4  # DONT RESET IMU FAIL INHIBIT IF SOMEONE
  EXTEND   # HAS GONE INTO COARSE ALIGN.
  RAND CHAN12
  CCS A
  TCF TASKOVER

  CS IMODES30 # RESET IMUFAIL.
  MASK BIT13
  ADS IMODES30
  CS BIT4
PFAILOK2 MASK IMODES30
  TS IMODES30
  TC IBNKCALL # THE ISS WARNING LIGHT MAY COME ON NOW
  CADR SETISSW  # THAT THE INHIBIT WAS BEEN REMOVED.
  TCF TASKOVER

PFAILOK  TC CAGETSTQ # ENABLE PIP FAIL PROG ALARM.
  TCF TASKOVER

  CS IMODES30 # RESET IMU AND PIPA FAIL BITS.
  MASK BIT10
  ADS IMODES30

  CS IMODES33
  MASK BIT13
  ADS IMODES33

  CS BIT5
  TCF PFAILOK2

NOATTOFF CS OCT40010 # SUBROUTINE TO TURN OFF NO ATT LAMP.
  MASK DSPTAB +11D
  AD BIT15
  TS DSPTAB +11D
  TC Q

# Page 1429
# ROUTINES TO INITIATE AND TERMINATE PROGRAM USE OF THE PIPAS.  NO IMUSTALL REQUIRED IN EITHER CASE.

PIPUSE  CS ZERO
  TS PIPAX
  TS PIPAY
  TS PIPAZ

PIPUSE1  TC CAGETSTQ # DO NOT ENABLE PIPA FAIL IF IMU IS CAGED
  TCF SWRETURN

  INHINT
  CS BIT1  # IF PIPA FAILS FROM NOW ON (UNTIL
  MASK IMODES30 # PIPFREE), LIGHT ISS WARNING.
  TS IMODES30

PIPFREE2 TC IBNKCALL # ISS WARNING MIGHT COME ON NOW.
  CADR SETISSW  # (OR GO OFF ON PIPFREE).

  TCF MODEEXIT

PIPFREE  INHINT   # PROGRAM DONE WITH PIPAS.  DONT LIGHT
  CS IMODES30 # ISS WARNING.
  MASK BIT1
  ADS IMODES30

  MASK BIT10  # IF PIP FAIL ON, DO PROG ALSRM AND RESET
  CCS A  # ISS WARNING.
  TCF MODEEXIT

  TC ALARM
  OCT 212

  INHINT

  TCF PIPFREE2

# Page 1430
#  THE FOLLOWING ROUTINE TORQUES THE IRIGS ACCORDING TO DOUBLE PRECISION INPUTS IN THE SIX REGISTERS
# BEGINNING AT THE ECADR ARRIVING IN A.  THE MINIMUM SIZE OF ANY PULSE TRAIN IS 16 PULSES (.25 CDU COUNTS).  THE
# UNSENT PORTION OF THE COMMAND IS LEFT INTACT IN THE INPUT COMMAND REGISTERS.

  EBANK= 1400  # VARIABLE, ACTUALLY.

IMUPULSE TS MPAC +5  # SAVE ARRIVING ECADR.
  TC CAGETSTJ # DONT PROCEED IF IMU BEING CAGED.

  CCS LGYRO  # SEE IF GYROS BUSY.
  TC GYROBUSY # SLEEP.

  TS MPAC +2
  CAF BIT6  # ENABLE THE POWER SUPPLY.
  EXTEND
  WOR CHAN14

  CAF FOUR
GWAKE2  TC WAITLIST # (IF A JOB WAS PUT TO SLEEP, THE POWER
  EBANK= CDUIND  # SUPPLY IS LEFT ON BY THE WAKING JOB).
  2CADR STRTGYRO

  CA MPAC +5  # SET UP EBANK, SAVING CALLER'S EBANK FOR
  XCH EBANK  # RESTORATION ON RETURN.
  XCH MPAC +5
  TS LGYRO  # RESERVES GYROS.
  MASK LOW8
  TS ITEMP1

  CAF TWO  # FORCE SIGN AGREEMENT ON INPUTS.
GYROAGRE TS MPAC +3
  DOUBLE
  AD ITEMP1
  TS MPAC +4
  EXTEND
  INDEX A
  DCA 1400
  DXCH MPAC
  TC TPAGREE
  DXCH MPAC
  INDEX MPAC +4
  DXCH 1400

  CCS MPAC +3
  TCF GYROAGRE

  CA MPAC +5  # RESTORE CALLER'S EBANK.
  TS EBANK
  TCF MODEEXIT

# Page 1431
# ROUTINES TO ALLOW TORQUING BY ONLY ONE JOB AT A TIME.

GYROBUSY EXTEND   # SAVE RETURN 2FCADR.
  DCA BUF2
  DXCH MPAC
REGSLEEP CAF LGWAKE
  TCF JOBSLEEP

GWAKE  CCS LGYRO  # WHEN AWAKENED, SEE IF GYROS STILL BUSY.
  TCF REGSLEEP # IF SO, SLEEP SOME MORE.

  TS MPAC +2
  EXTEND
  DCA MPAC
  DXCH BUF2  # RESTORE SWRETURN INFO.
  CAF ONE
  TCF GWAKE2

LGWAKE  CADR GWAKE

# Page 1432
# GYRO-TORQUING WAITLIST TASKS.

STRTGYRO CS GDESELCT # DE-SELECT LAST GYRO.
  EXTEND
  WAND CHAN14

  TC CAGETEST

STRTGYR2 CA LGYRO  # JUMP ON PHASE COUNTER IN BITS 13-14.
  EXTEND
  MP BIT4
  INDEX A
  TCF +1
  TC GSELECT  # =0.  DO Y GYRO.
  OCT 00202

  TC GSELECT  # =1.  DO Z GYRO.
  OCT 00302

  TC GSELECT -2 # =2.  DO X GYRO.
  OCT 00100

  CAF ZERO  # =3.  DONE
  TS LGYRO
  CAF LGWAKE  # WAKE A POSSIBLE SLEEPING JOB.
  TC JOBWAKE

NORESET  TCF IMUFINED # DO NOT RESET POWER SUPPLY
# Page 1433
 -2 CS FOUR  # SPECIAL ENTRY TO REGRESS LGYRO FOR X.
  ADS LGYRO

GSELECT  INDEX Q  # SELECT GYRO.
  CAF 0  # PACKED WORD CONTAINS GYRO SELECT BITS
  TS ITEMP4  # AND INCREMENT TO LGYRO.
  MASK SEVEN
  AD BIT13
  ADS LGYRO
  TS EBANK
  MASK LOW8
  TS ITEMP1

  CS SEVEN
  MASK ITEMP4
  TS ITEMP4

  EXTEND   # MOVE DP COMMAND TO RUPTREGS FOR TESTING.
  INDEX ITEMP1
  DCA 1400
  DXCH RUPTREG1

  CCS RUPTREG1
  TCF MAJ+
  TCF +2
  TCF MAJ-

  CCS RUPTREG2
  TCF MIN+
  TCF STRTGYR2
  TCF MIN-
  TCF STRTGYR2

# Page 1434
MIN+  AD -GYROMIN # SMALL POSITIVE COMMAND.  SEE IF AT LEAST
  EXTEND   # 16 GYRO PULSES.
  BZMF STRTGYR2

MAJ+  EXTEND   # DEFINITE POSITIVE OUTPUT.
  DCA GYROFRAC
  DAS RUPTREG1

  CA ITEMP4  # SELECT POSITIVE TORQUING FOR THIS GYRO.
  EXTEND
  WOR CHAN14

  CAF LOW7  # LEAVE NUMBER OF POSSIBLE 8192 AUGMENTS
  MASK RUPTREG2 # TO INITIAL COMMAND IN MAJOR PART OF LONG
  XCH RUPTREG2 # TERM STORAGE AND TRUNCATED FRACTION
GMERGE  EXTEND   # IN MINOR PART.  THE MAJOR PART WILL BE
  MP BIT8  # COUNTED DOWN TO ZERO IN THE COURSE OF
  TS ITEMP2  # PUTTING OUT THE ENTIRE COMMAND.
  CA RUPTREG1
  EXTEND
  MP BIT9
  TS RUPTREG1
  CA L
  EXTEND
  MP BIT14
  ADS ITEMP2  # INITIAL COMMAND.

  EXTEND   # SEE IF MORE THAN ONE PULSE TRAIN NEEDED
  DCA RUPTREG1 # (MORE THAN 16383 PULSES).
  AD MINUS1
  CCS A
  TCF LONGGYRO
-GYROMIN OCT -176  # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD
  TCF +4

  CAF BIT14
  ADS ITEMP2
  CAF ZERO

 +4 INDEX ITEMP1
  DXCH 1400
# Page 1435
  CA ITEMP2  # ENTIRE COMMAND.
LASTSEG  TS GYROCMD
  EXTEND
  MP BIT10  # WAITLIST DT
  AD THREE  # TRUNCATION AND PHASE UNCERTAINTIES.
  TC WAITLIST
  EBANK= CDUIND
  2CADR STRTGYRO

GYROEXIT CAF BIT10
  EXTEND
  WOR CHAN14
  TCF TASKOVER

LONGGYRO INDEX ITEMP1
  DXCH 1400  # INITIAL COMMAND OUT PLUS N AUGMENTS OF
  CAF BIT14  # 8192.  INITIAL COMMAND IS AT LEAST 8192.
  AD ITEMP2
  TS GYROCMD

AUG3  EXTEND   # GET WAITLIST DT TO TIME WHEN TRAIN IS
  MP BIT10  # ALMOST OUT.
  AD NEG3
  TC WAITLIST
  EBANK= CDUIND
  2CADR 8192AUG

  TCF GYROEXIT

8192AUG  TC CAGETEST

  CAF BIT4
  EXTEND
  RAND CHAN12
  CCS A
  TCF IMUBAD
  CA LGYRO  # ADD 8192 PULSES TO GYROCMD
  TS EBANK
  MASK LOW8
  TS ITEMP1

  INDEX ITEMP1  # SEE IF THIS IS THE LAST AUG.
  CCS 1400
  TCF AUG2  # MORE TO COME.

  CAF BIT14
  ADS GYROCMD
  TCF LASTSEG +1

# Page 1436
AUG2  INDEX ITEMP1
  TS 1400
  CAF BIT14
  ADS GYROCMD
  TCF AUG3  # COMPUTE DT.

# Page 1437
MIN-  AD -GYROMIN # POSSIBLE NEGATIVE OUTPUT.
  EXTEND
  BZMF STRTGYR2

MAJ-  EXTEND   # DEFINITE NEGATIVE OUTPUT.
  DCS GYROFRAC
  DAS RUPTREG1

  CA ITEMP4  # SELECT NEGATIVE TORQUING FOR THIS GYRO.
  AD BIT9
  EXTEND
  WOR CHAN14

  CS RUPTREG1 # SET UP RUPTREGS TO FALL INTO GMERGE.
  TS RUPTREG1 # ALL NUMBERS PUT INTO GYROCMD ARE
  CS RUPTREG2 # POSITIVE - BIT9 OF CHAN 14 DETERMINES
  MASK LOW7  # THE SIGN OF THE COMMAND.
  COM
  XCH RUPTREG2
  COM
  TCF GMERGE

GDESELCT OCT 1700  # TURN OFF SELECT AND ACTIVITY BITS.

GYROFRAC 2DEC .215 B-21

# Page 1438
# IMU MODE SWITCHING ROUTINES COME HERE WHEN ACTION COMPLETE.

ENDIMU  EXTEND   # MODE IS BAD IF CAGE HAS OCCURRED OR IF
  READ DSALMOUT # ISS WARNING IS ON.
  MASK BIT1
  CCS A
  TCF IMUBAD

IMUGOOD  TCF GOODEND  # WITH C(A) = 0.

IMUBAD  CAF ZERO
  TCF BADEND

CAGETEST CAF BIT6  # SUBROUTINE TO TERMINATE IMU MODE
  MASK IMODES30 # SWITCH IF IMU HAS BEEN CAGED.
  CCS A
  TCF IMUBAD  # DIRECTLY.
  TC Q  # WITH C(A) = +0.

CAGETSTQ CS IMODES30 # SKIP IF IMU NOT BEING CAGED.
  MASK BIT6
  CCS A
  INCR Q
  TC Q

CAGETSTJ CS IMODES30 # IF DURING MODE SWITCH INITIALIZATION.
  MASK BIT6  # IT IS FOUND THAT THE IMU IS BEING CAGED.
  CCS A  # SET IMUCADR TO -0 TO INDICATE OPERATION
  TC Q  # COMPLETE BUT FAILED.  RETURN IMMEDIATELY

  CS ZERO  # TO SWRETURN.
  TS IMUCADR
  TCF MODEEXIT

# Page 1439
#  GENERALIZED MODE SWITCHING TERMINATION.  ENTER AT GOODEND FOR SUCCESSFUL COMPLETION OF AN I/O OPERATION
# OR AT BADEND FOR AN UNSUCCESSFUL ONE.  C(A) OR ARRIVAL =0 FOR IMU, 1 FOR OPTICS.

BADEND  TS RUPTREG2 # DEVICE INDEX.
  CS ZERO  # FOR FAILURE.
  TCF GOODEND +2

GOODEND  TS RUPTREG2
  CS ONE  # FOR SUCCESS.

  TS RUPTREG3
  INDEX RUPTREG2 # SEE IF USING PROGRAM ASLEEP.
  CCS MODECADR
  TCF +2  # YES - WAKE IT UP.
  TCF ENDMODE  # IF 0, PROGRAM NOT IN YET.

  CAF ZERO  # WAKE SLEEPING PROGRAM.
  INDEX RUPTREG2
  XCH MODECADR
  TC JOBWAKE

  CS RUPTREG3 # ADVANCE LOC IF SUCCESSFUL.
  INDEX LOCCTR
  ADS LOC

  TCF TASKOVER

ENDMODE  CA RUPTREG3 # -0 INDICATES OPERATION COMPLETE BUT
  INDEX RUPTREG2 # UNSUCCESSFUL - -1 INDICATES COMPLETE AND
  TS MODECADR # SUCCESSFUL.
  TCF TASKOVER

# Page 1440
#  GENERAL STALLING ROUTINE.  USING PROGRAMS COME HERE TO WAIT FOR I/O COMPLETION.

# PROGRAM DESCRIPTION DATE- 21 FEB 1967
# LOG SECTION IMU MODE SWITCHING
# MOD BY- R.MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 82

# FUNCTIONAL DESCRIPTION-
# TO DELAY FURTHER EXECUTION OF THE CALLING ROUTINE UNTIL ITS SELECTED
# I/O FUNCTION IS COMPLETE.  THE FOLLOWING CHECKS ON THE CALLING ROUTINES
# MODECADR ARE MADE AND ACTED UPON.
# 1) +0 INDICATES INCOMPLETE I/O OPERATION.CALLING ROUTINE IS PUT TO
#    SLEEP.
# 2) -1 INDICATES COMPLETED I/O OPERATION.  STALL BYPASSES JOBSLEEP
#    CALL AND RETURNS TO CALLING ROUTINE AT L+3
# 3) -0 INDICATES COMPLETED I/O WITH FAILURE.  STALL CLEARS MODECADR
#    AND RETURNS TO CALLING ROUTINE AT L+2.
# 4) VALUE GREATER THAN 0 INDICATES TWO ROUTINES CALLING FOR USE OF
#    SAME DEVICE.  STALL EXITS TO ABORT WHICH EXECUTES A PROGRAM
#    RESTART WHICH IN TURN CLEARS ALL MODECADR REGISTERS.

# CALLING SEQUENCE-
# L  TC BANKCALL
# L+1 CADR (ONE OF 5 STALL ADDRESSES I.E. IMUSTALL,OPTSTALL,RADSTALL,
# AOTSTALL,OR ATTSTALL)

# NORMAL-EXIT MODE-
# TCF JOBSLEEP OR TCF MODEXIT

# ALARM OR ABORT EXIT MODE-
# TC ABORT

# OUTPUT-
# MODECADR= CADR  IF JOBSLEEP
# MODECADR=+0 IF I/O COMPLETE
# BUF2=L+3 IF I/O COMPLETE AND GOOD.
# BUF2=L+2 IF I/O COMPLETE BUT FAILED.

# ERASABLE INITIALIZATION-
# BUF2 CONTAINS RETURN ADDRESS PLUS 1,(L+2)
# BUF2+1 CONTAINS FBANK VALUE OF CALLING ROUTINE.
# MODECADR OF CALLING ROUTINE CONTAINS +0,-1,-0 OR CADR RETURN ADDRESS.
#
# DEBRIS-
# RUPTREG2 AND CALLING ROUTINE MODECADR.

AOTSTALL CAF ONE  # AOT.
  TC STALL

RADSTALL CAF TWO
  TCF STALL

# Page 1441
OPTSTALL EQUALS AOTSTALL

IMUSTALL CAF ZERO  # IMU.

STALL  INHINT
  TS RUPTREG2 # SAVE DEVICE INDEX.
  INDEX A  # SEE IF OPERATION COMPLETE.
  CCS MODECADR
  TCF MODABORT # ALLOWABLE STATES ARE +0, -1, AND -0.
  TCF MODESLP  # OPERATION INCOMPLETE.
  TCF MODEGOOD # COMPLETE AND GOOD IF = -1.

MG2  INDEX RUPTREG2 # COMPLETE FAILED IF -0.  RESET TO +0.
  TS MODECADR # RETURN TO CALLER.
  TCF MODEEXIT

MODEGOOD CCS A  # MAKE SURE INITIAL STATE -1.
  TCF MODABORT

  INCR BUF2  # IF SO, INCREMENT RETURN ADDRESS AND
  TCF MG2  # RETURN IMMEDIATELY, SETTIN CADR = +0.

MODESLP  TC MAKECADR # CALL FROM SWITCHABLE FIXED ONLY.
  INDEX RUPTREG2
  TS MODECADR
  TCF JOBSLEEP

MODABORT TC POODOO  # TWO PROGRAMS USING THE SAME DEVICE.
  OCT 1210

# Page 1442
# CONSTANTS FOR MODE SWITCHING ROUTINES

BITS3&4  = OCT14
BITS4&6  = OCT50
BITS4-5  EQUALS BITS4&5
IMUSEFLG EQUALS BIT8  # INTERPRETER SWITCH 7.
-COMMAX  DEC -191
-COMMAX- DEC -192
600MS  DEC 60
IMUFIN20 = IMUFINE
GOMANUR  CA ATTCADR  # IS KALCMANU FREE
  EXTEND
  BZF +3
  TC POODOO  # NO
  OCT 1210  # 2 TRYING TO USE SAME DEVICE

 +3 EXTEND
  DCA BUF2
  DXCH ATTCADR  # SAVE FINAL RETURN FOR KALCMAN3

  CA BBANK
  MASK SEVEN
  ADS ATTCADR +1

  CA PRIORITY
  MASK PRIO37
  TS ATTPRIO  # SAVE USERS PRIO

  CAF KALEBCON # SET EBANK FOR KALCMAN3
  TS EBANK
  TC POSTJUMP
  CADR KALCMAN3
KALEBCON ECADR BCDU

# Page 1443
# PROGRAM DESCRIPTION
# IMU STATUS CHECK ROUTINE R02 (SUBROUTINE UTILITY)
# MOD NO - 1
# MOD BY - N.BRODEUR
# FUNCTIONAL DESCRIPTION
#
# TO CHECK WHETHER IMU IS ON AND IF ON WHETHER IT IS ALIGNED TO AN
# ORIENTATION KNOWN BY THE CMC.  TO REQUEST SELECTION OF THE APPROPRIATE
# PROGRAM IF THE IMU IS OFF OR NOT ALIGNED TO AN ORIENTATION KNOWN BY THE
# CMC.  CALLED THROUGH BANKCALL
# CALLING SEQUENCE-
#
# L TC BANKCALL
# L+1 CADR R02BOTH
# SUBROUTINES CALLED
#
# VARALARM
# FLAGUP
# NORMAL EXIT MODES
#
# AT L+2 OF CALLING SEQUENCE
# ALARM OR ABORT EXIT MODES
# GOTOPOOH, WITH ALARM
# ERASABLE INITIALIZATION REQUIRED
#
# NONE
# DEBRIS
#
# CENTRALS-A,Q,L

  BANK 34
  SETLOC R02
  BANK
  COUNT 04/R02  # COUNT*

DEC51  DEC 51
R02BOTH  CAF BIT13
  MASK STATE +3 # REFSMFLG
  CCS A
  TC R02ZERO  # ZERO IMUS

  CA IMODES30
  MASK BIT9  # IS ISS INITIALIZED
  EXTEND
  BZF +2
  CS BIT4  # SEND IMU ALARM CODE 210
  AD OCT220  # SEND REFSMM ALARM
  TC VARALARM

  TC GOTOPOOH

# Page 1444
R02ZERO  TC UPFLAG
  ADRES IMUSE
  TCF SWRETURN
OCT220  OCT 220

# Page 1445
# PROGRAM DESCRIPTION P06 10FEB67

# TRANSFER THE ISS/CMC FROM THE OPERATE TO THE STANDBY CONDITION.

# THE NORMAL CONDITION OF READINESS OF THE GNCS WHEN NOT IN USE IS STANDBY.  IN THIS CONDITION THE IMU
# HEATER POWER IS ON.  THE IMU OPERATE POWER IS OFF.  THE COMPUTER POWER IS ON.  THE OPTICS POWER IS OFF.  THE
# CMC STANDBY ON THE MAIN AND LEB DISKYS IS ON.

# CALLING SEQUENCE:
# ASTRONAUT REQUEST THROUGH DSKY V37E 06E.

# SUBROUTINES CALLED:
# GOPERF1
# BANKCALL
# FLAGDOWN

# Page 1446
# PRESTAND PREPARES FOR STANDBY BY SNAPSHOTTING THE SCALER AND TIME1 TIME2
# THE LOW 5 BITS OF THE SCALER ARE INSPECTED TO INSURE COMPATABILITY
# BETWEEN THE SCALER READING AND THE TIME1 TIME2 READING.

  SETLOC P05P06
  BANK

  EBANK= TIME2SAV
  COUNT* $$/P06

P06  TC UPFLAG  # SET NODOV37 BIT
  ADRES NODOFLAG

PRESTAND INHINT
  EXTEND
  DCA TIME2  # SNAPSHOT TIME1TIME2
  DXCH TIME2SAV
  TC SCALPREP
  TC PRESTAND # T1,T2,SCALER NOT COMPATIBLE
  DXCH MPAC  # T1,T2 AND SCALER OK
  DXCH SCALSAVE # STORE SCALER
  INHINT
  TC BANKCALL
  CADR RNDREFDR # REFSMM, DRIFT, TRACK FLAGS DOWN

  TC DOWNFLAG
  ADRES IMUSE  # IMUSE DOWN
  TC DOWNFLAG
  ADRES RNDVZFLG # RNDVZFLG DOWN

  CAF BIT11
  EXTEND
  WOR CHAN13  # SET STANDBY ENABLE BIT

  TC PHASCHNG # SET RESTART TO POSTAND WHEN STANDBY
  OCT 07024  # RECOVERS
  OCT 20000
  EBANK= SCALSAVE
  2CADR POSTAND

  CAF OCT62
  TC BANKCALL
  CADR GOPERF1
  TCF -3
  TCF -4
  TCF -5

OCT62  EQUALS .5SEC  # DEC 50 = OCT 62

# THE LOW 5 BITS OF THE SCALER READS 10000 FOR THE FIRST INTERVAL AFTER A
# Page 1447.
# T1 INCREMENT.  IF SCALPREP DETECTS THIS INTERVAL THE T1,T2 AND SCALER
# DATA ARE NOT COMPATABLE AND RETURN IS TO L+1 FOR ANOTHER READING OF THE
# DATA.  OTHERWISE, THE RETURN IS TO L+2 TO PROCEED.  ROUTINE ALSO PREPARES
# THE SCALER READING FOR COMPUTATION OF THE INCREMENT TO UPDATE T1T2.  (THE
# 10 MS BIT (BIT 6) OF THE SCALER IS INCREMENTED 5 MS OUT OF PHASE FROM
# T1.) ADDITION OF 5 MS (BIT 5) TO THE SCALER READING HAS THE EFFECT OF
# ADJUSTING BIT 6 IN THE SCALER TO BE IN PHASE WITH BIT 1 OF T1.  THE LOW 5
# BITS OF THE SCALER READING ARE THEN SET TO ZERO, TO TRUNCATE THE SCALER
# DATA TO 10 MS.  RESULTS ARE STORED IN MPAC, +1.

SCALPREP EXTEND
  QXCH MPAC +2
  TC FINETIME +1
  RELINT
  DXCH MPAC
  CA BIT5  # ADD 5 MS TO THE SCALER READING.
  TS L
  CA ZERO
  DAS MPAC
  CS LOW5  # SET LOW 5 BITS OF (SCALER+5MS) TO ZERO
  MASK  MPAC +1  # AND STORE RESULTS IN MPAC,+1.
  XCH MPAC +1
  MASK LOW5  # TEST LOW 5 BITS OF SCALER FOR THE FIRST
     # INTERVAL AFTER THE T1 INCREMENT
     # (NOW = 00000, SINCE BIT 5 ADDED).
  CCS A  # IS IT 1ST INTERVAL AFTER T1 INCREMENT
  INCR MPAC +2  # NO
  TC MPAC +2  # YES

# POSTAND RECOVERS TIME AFTER STANDBY.THE SCALER IS SNAPSHOTTED AND THE
# TIME1 TIME2 COUNTER IS SET TO ZERO.  THE LOW 5 BITS OF THE SCALER ARE
# INSPECTED TO INSURE COMPATABILITY BETWEEN THE SCALER READING AND THE
# CLEARING OF THE TIME COUNTER.  IT THEN COMPUTES THE DIFFERENCE IN SCALER
# VALUES (IN DP) AND ADDS THIS TO THE PREVIOUSLY SNAPSHOTTED VALUES OF
# TIME1 TIME2 AND PLACES THIS NEW TIME INTO THE TIME1 TIME2 COUNTER.

  COUNT* $$/P05

POSTAND  CS BIT11  # RECOVER TIME AFTER STANDBY.
  EXTEND
  WAND CHAN13  # CLEAR STANDBY ENABLE BIT
  INHINT
  CA ZERO
  TS L
  DXCH TIME2  # CLEAR TIME1 TIME2
  TC SCALPREP # STORE SCALER IN MPAC, MPAC+1
  TC POSTAND +3 # T1,T2,SCALER NOT COMPATIBLE
  EXTEND   # T1,T2 AND SCALER OK
  DCS SCALSAVE
  DAS MPAC  # FORM DP DIFFERENCE OF POSTSTANDBY SCALER
# Page 1448
  CAF BIT10  # MINUS PRESTANDBY SCALER AND SHIFT RIGHT
  TC SHORTMP  # 5 TO ALIGN BITS WITH TIME1TIME2.
  CAF ZERO
  TS MPAC +2  # NEEDED FOR TP AGREE
  TC TPAGREE  # MAKE DP DIFF AGREE
  CCS MPAC
  TC POSTCOM  # IF DP DIFF NET +, NO SCALER OVERFLOW
  TC POSTCOM  # BETWEEN PRE AND POST STANDBY.
  TC +1  # IF DP DIFF NET -, SCALER OVERFLOWED.  ADD
  CAF BIT10  # BIT 10 TO HIGH DIFF TO CORRECT.
  ADS MPAC
POSTCOM  EXTEND   # C(MPAC,+1) IS MAGNITUDE OF DELTA SCALER.
  DCA TIME2SAV # PRE-STANDBY TIME1TIME2
  DAS MPAC
  TC TPAGREE  # FORCE SIGN AGREEMENT
  DXCH MPAC  # UPDATED VALUE FOR T1,T2.
  DAS TIME2  # LOAD UPDATED VALUE INTO T1,T2, WITH
  TC DOWNFLAG # CLEAR NODOFLAG
  ADRES NODOFLAG

  TC GOTOPOOH

Messung V0.5 in Prozent
C=62 H=100 G=83

¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.14Angebot  (Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-10-12) ¤

*Eine klare Vorstellung vom Zielzustand






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1128594
#Domains=1976912