Quelle IMU_COMPENSATION_PACKAGE.agc
Sprache: Apollo
# Copyright: Public domain. # Filename: IMU_COMPENSATION_PACKAGE.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: 297-306 # Mod history: 2009-05-08 RSB Adapted from the Colossus249/ file of the # same name, using Comanche055 page images/ # 2009-05-21 RSB In IRIGZ, PRIO17 corrected to PRIO21. # # 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 297 BANK7 SETLOC IMUCOMP BANK EBANK= NBDX
COUNT06/ICOMP
1/PIPA CAF LGCOMP # SAVE EBANK OF CALLING PROGRAM XCHEBANK TS MODE
CA NBDZ # (GYRO PULSES)/(CS) X 2(-5) TC DRIFTSUB # +(NBDZ)(DELTAT) (GYRO PULSES) X 2(+14)
# Page 301 CCS GCOMPSW # ARE GYRO COMMANDS GREATER THAN 2 PULSES TCF +2# YES TCF IRIG1 # NO
CAF PRIO21 # HIGHER THAN SERVICER-LESS THAN PRELAUNCH TC NOVAC EBANK= NBDX 2CADR1/GYRO
RELINT
IRIG1 CA MODE # SET EBANK FOR RETURN TSEBANK TCF SWRETURN
GCOMPSUB XCH MPAC # ADIA OR ADSRA COEFFICIENT ARRIVES IN A EXTEND# C(MPAC) = (PIPA PULSES) X 2(+14) MP MPAC # (GYRO PULSES)/(PIPA PULSE) X 2(-3) * DXCH VBUF # NOW = (GYRO PULSES) X 2(+11) *
CA MPAC +1# MINOR PART OF PIPA PULSES EXTEND MP MPAC # ADIA OR ADSRA TS L CAF ZERO DAS VBUF # NOW = (GYRO PULSES) X 2(+11) *
CA VBUF # PARTIAL RESULT - MAJOR EXTEND MP BIT12 # SCALE 2(+3) SHIFT RIGHT 3 * INDEX BUF # RESULT = (GYRO PULSES) X 2(+14) DAS GCOMP # HI(ADIA)(PIPAI) OR HI(ADSRA)(PIPAI)
CA VBUF +1# PARTIAL RESULT - MINOR EXTEND MP BIT12 # SCALE 2(+3) SHIFT RIGHT 3 * TS L CAF ZERO INDEX BUF # RESULT = (GYRO PULSES) X 2(+14) DAS GCOMP # (ADIA)(PIPAI) OR (ADSRA)(PIPAI)
TC Q
# Page 302
DRIFTSUB EXTEND QXCH BUF +1
EXTEND# C(A) = NBD (GYRO PULSES)/(CS) X 2(-5) MP1/PIPADT # (CS) X 2(+8) NO (GYRO PULSES) X 2(+3) LXCH MPAC +1# SAVE FOR FRACTIONAL COMPENSATION EXTEND MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11 INDEX BUF DAS GCOMP # HI(NBD)(DELTAT) (GYRO PULSES) X 2(+14)
CA MPAC +1# NOW MINOR PART EXTEND MP BIT4 # SCALE 2(+11) SHIFT RIGHT 11 TS L CAF ZERO INDEX BUF # ADD IN FRACTIONAL COMPENSATION DAS GCOMP # (NBD)(DELTAT) (GYRO PULSES) X 2(+14)
DRFTSUB2 CAF TWO # PIPAX, PIPAY, PIPAZ AD BUF XCH BUF INDEX A CCS GCOMP # ARE GYRO COMMANDS 1 PULSE OR GREATER TCF +2# YES TC BUF +1# NO
MASK NEGONE CCS A # ARE GYRO COMMANDS GREATER THAN 2 PULSES TS GCOMPSW # YES - SET GCOMPSW POSITIVE TC BUF +1# NO
INDEX BUF # SCALE GYRO COMMANDS FOR IMUPULSE CA GCOMP +1# FRACTIONAL PULSES EXTEND MP BIT8 # SHIFT RIGHT 7 INDEX BUF TS GCOMP +1# FRACTIONAL PULSES SCALED
CAF ZERO # SET GCOMP = 0 FOR DAS INSTRUCTION INDEX BUF XCH GCOMP # GYRO PULSES EXTEND MP BIT8 # SHIFT RIGHT 7 INDEX BUF DAS GCOMP # ADD THESE TO FRACTIONAL PULSES ABOVE
CCS BUF # PIPAZ, PIPAY, PIPAX AD NEG1 TCF1/GYRO +1
LGCOMP ECADR GCOMP # LESS THAN ZERO IMPOSSIBLE
CAF LGCOMP TC BANKCALL CADR IMUPULSE # CALL GYRO TORQUING ROUTINE TC BANKCALL CADR IMUSTALL # WAIT FOR PULSES TO GET OUT TCF ENDOFJOB # TEMPORARY
GCOMP1 CAF FOUR # PIPAZ, PIPAY, PIPAX TS BUF
INDEX BUF # RESCALE CA GCOMP +1 EXTEND MP BIT8 # SHIFT MINOR PART LEFT 7 - MAJOR PART = 0 INDEX BUF LXCH GCOMP +1# BITS 8-14 OF MINOR PART WERE = 0
CA TIME1 # (CS) X 2(+14) XCH1/PIPADT # PREVIOUS TIME RELINT
COM AD1/PIPADT
NBD2 CCS A # CALCULATE ELAPSED TIME AD ONE # NO TIME1 OVERFLOW TCF NBD3 # RESTORE TIME DIFFERENCE AND JUMP TCF +2# TIME1 OVERFLOW TCF ENDOFJOB # IF ELAPSED TIME = 0 (DIFFERENCE = -0)
COM # CALCULATE ABSOLUTE DIFFERENCE AD POSMAX
NBD3 EXTEND# C(A) = DELTAT (CS) X 2(+14) MP BIT10 # SHIFT RIGHT 5 DXCH VBUF EXTEND DCA VBUF DXCH MPAC # DELTAT NOW SCALED (CS) X 2(+19)
CAF ZERO TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS TS BUF # PIPAX, PIPAY, PIPAZ
CS NBDX # (GYRO PULSES)/(CS) X 2(-5) TC FBIASSUB # -(NBOX)(DELTAT) (GYRO PULSES) X 2(+14)
EXTEND
DCS VBUF DXCH MPAC # DELTAT SCALED (CS) X 2(+19) CA NBDY # (GYRO PULSES)/(CS) X 2(-5) TC FBIASSUB # -(NBDY)(DELTAT) (GYRO PULSES) X 2(+14)
EXTEND
DCS VBUF DXCH MPAC # DELTAT SCALED (CS) X 2(+19) CS NBDZ # (GYRO PULSES)/(CS) X 2(-5) TC FBIASSUB # +(NBDZ)(DELTAT) (GYRO PULSES) X 2(+14) # Page 305 CCS GCOMPSW # ARE GYRO COMMANDS GREATER THAN 2 PULSES TCF1/GYRO # YES TCF ENDOFJOB # NO
# Page 306
FBIASSUB XCH Q TS BUF +1
CA Q # NBD SCALED (GYRO PULSES)/(CS) X 2(-5) EXTEND MP MPAC # DELTAT SCALED (CS) X 2(+19) INDEX BUF DAS GCOMP # HI(NBD)(DELTAT) (GYRO PULSES) X 2(+14)
CA Q # NO FRACTIONAL PART EXTEND MP MPAC +1 TS L CAF ZERO INDEX BUF DAS GCOMP # (NBD)(DELTAT) (GYRO PULSES) X 2(+14)
CAF PRIO31 # 2 SECONDS SCALED (CS) X 2(+8) XCH1/PIPADT
COM AD PIPTIME1 +1# TIME AT PIPA1 =0 TCF NBD2
Messung V0.5 in Prozent
¤ 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.0.11Bemerkung:
(vorverarbeitet am 2026-10-12)
¤
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.