Pre-launch Review
MYSUBS
Scanned pages: 999-1001
# Copyright: Public domain.# Filename: MYSUBS.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: 999-1001# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the# same name, using Comanche055 page images.# 2009-05-20 RSB Corrections: EBANK= changed from MPAC to KMPAC.## 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 999 BANK 20 SETLOC MYSUBS BANK
EBANK= KMPACSPCOS1 EQUALS SPCOSSPSIN1 EQUALS SPSINSPCOS2 EQUALS SPCOSSPSIN2 EQUALS SPSIN
COUNT 21/DAPMS
# ONE AND ONE HALF PRECISION MULTIPLICATION ROUTINE
SMALLMP TS KMPTEMP # A(X+Y) EXTEND MP KMPAC +1 TS KMPAC +1 # AY CAF ZERO XCH KMPAC EXTEND MP KMPTEMP # AX DAS KMPAC # AX+AY TC Q
# SUBROUTINE FOR DOUBLE PRECISION ADDITIONS OF ANGLES# A AND L CONTAIN A DP(1S) ANGLE SCALED BY 180 DEGS TO BE ADDED TO KMPAC.# RESULT IS PLACED IN KMPAC. TIMING = 6 MCT (22 MCT ON OVERFLOW)
DPADD DAS KMPAC EXTEND BZF TSK +1 # NO OVERFLOW CCS KMPAC TCF DPADD+ # + OVERFLOW TCF +2 TCF DPADD- # - OVERFLOW CCS KMPAC +1 TCF DPADD2+ # UPPER = 0, LOWER + TCF +2 COM # UPPER = 0, LOWER - AD POSMAX # LOWER = 0, A=0 TS KMPAC +1 # CAN NOT OVERFLOW CA POSMAX # UPPER WAS = 0TSK TS KMPAC TC Q
DPADD+ AD NEGMAX # KMPAC GREATER THAN 0 TCF TSK
# Page 1000DPADD- COM AD POSMAX # KMPAC LESS THAN 0 TCF TSK
DPADD2+ AD NEGMAX # CAN NOT OVERFLOW TS KMPAC +1 CA NEGMAX # UPPER WAS = 0 TCF TSK
# Page 1001 (empty page)