From dc4ea6735c464608d704fa183f3e3d08b013c42f Mon Sep 17 00:00:00 2001
From: chrislgarry <chrislgarry@gmail.com>
Date: Thu, 7 Jul 2016 04:47:26 -0400
Subject: [PATCH] Add remaining Apollo 11 source

---
 .DS_Store                                 |  Bin 0 -> 16388 bytes
 AGC_BLOCK_TWO_SELF-CHECK.s                |  518 +++
 AGC_BLOCK_TWO_SELF_CHECK.s                |  511 +++
 AGS_INITIALIZATION.s                      |  229 +
 ALARM_AND_ABORT.s                         |  231 +
 ANGLFIND.s                                |  634 +++
 AOSTASK_AND_AOSJOB.s                      | 1069 +++++
 AOTMARK.s                                 |  695 +++
 ASCENT_GUIDANCE.s                         |  647 +++
 ASSEMBLY_AND_OPERATION_INFORMATION.s      | 1041 +++++
 ATTITUDE_MANEUVER_ROUTINE.s               | 1027 +++++
 AUTOMATIC_MANEUVERS.s                     |  499 +++
 BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.s | 1059 +++++
 CM_BODY_ATTITUDE.s                        |    2 +-
 CM_ENTRY_DIGITAL_AUTOPILOT.s              | 1275 ++++++
 CONIC_SUBROUTINES.s                       | 1922 +++++++++
 CONTRACT_AND_APPROVALS.s                  |   73 +
 CONTROLLED_CONSTANTS.s                    |  558 +++
 CSM_GEOMETRY.s                            |  418 ++
 DAPIDLER_PROGRAM.s                        |  481 +++
 DAP_INTERFACE_SUBROUTINES.s               |  176 +
 DISPLAY_INTERFACE_ROUTINES.s              | 1485 +++++++
 DOWN-TELEMETRY_PROGRAM.s                  |  457 ++
 DOWNLINK_LISTS.s                          |  410 ++
 DOWN_TELEMETRY_PROGRAM.s                  |  455 ++
 ENTRY_LEXICON.s                           |  373 ++
 ERASABLE_ASSIGNMENTS.s                    | 3785 ++++++++++++++++
 EXECUTIVE.s                               |  497 +++
 EXTENDED_VERBS.s                          | 1336 ++++++
 FINDCDUW--GUIDAP_INTERFACE.s              |  743 ++++
 FIXED_FIXED_CONSTANT_POOL.s               |  262 ++
 FLAGWORD_ASSIGNMENTS.s                    | 1269 ++++++
 FP8.s                                     | 4768 ---------------------
 FRESH_START_AND_RESTART.s                 | 1474 +++++++
 GIMBAL_LOCK_AVOIDANCE.s                   |   99 +
 GROUND_TRACKING_DETERMINATION_PROGRAM.s   |  204 +
 HeaderTemplate.s                          |   28 +
 IMU_CALIBRATION_AND_ALIGNMENT.s           | 1399 ++++++
 IMU_COMPENSATION_PACKAGE.s                |  370 ++
 IMU_MODE_SWITCHING_ROUTINES.s             | 1068 +++++
 IMU_PERFORMANCE_TESTS_4.s                 |  362 ++
 IMU_PERFORMANCE_TEST_2.s                  |  421 ++
 INFLIGHT_ALIGNMENT_ROUTINES.s             |  304 ++
 INPUT_OUTPUT_CHANNEL_BIT_DESCRIPTIONS.s   |  224 +
 INTEGRATION_INITIALIZATION.s              | 1182 +++++
 INTER-BANK_COMMUNICATION.s                |  183 +
 INTERPRETER.s                             | 3059 +++++++++++++
 INTERPRETIVE_CONSTANT.s                   |   81 +
 INTERPRETIVE_CONSTANTS.s                  |   86 +
 INTERRUPT_LEAD_INS.s                      |  128 +
 JET_SELECTION_LOGIC.s                     |  932 ++++
 KALCMANU_STEERING.s                       |  265 ++
 KALMAN_FILTER.s                           |  101 +
 KEYRUPT_UPRUPT.s                          |  136 +
 LAMBERT_AIMPOINT_GUIDANCE.s               |  169 +
 LANDING_ANALOG_DISPLAYS.s                 |  536 +++
 LATITUDE_LONGITUDE_SUBROUTINES.s          |  318 ++
 LEM_GEOMETRY.s                            |  209 +
 LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.s |  211 +
 LUNAR_LANDING_GUIDANCE_EQUATIONS.s        |    4 +-
 LUNAR_LANDMARK_SELECTION_FOR_CM.s         |   34 +
 MAIN.s                                    |  168 +
 MEASUREMENT_INCORPORATION.s               |  503 +++
 MYSUBS.s                                  |   92 +
 ORBITAL_INTEGRATION.s                     |  949 ++++
 P-AXIS_RCS_AUTOPILOT.s                    | 1056 +++++
 P11.s                                     |  922 ++++
 P12.s                                     |  245 ++
 P20-P25.s                                 | 3529 +++++++++++++++
 P30-P37.s                                 |  630 +++
 P30_P37.s                                 |  193 +
 P32-P33_P72-P73.s                         | 1408 ++++++
 P32-P35_P72-P75.s                         | 1394 ++++++
 P34-35_P74-75.s                           | 1739 ++++++++
 P37_P70.s                                 | 1950 +++++++++
 P40-P47.s                                 | 2429 +++++++++++
 P51-P53.s                                 | 2213 ++++++++++
 P61-P67.s                                 | 1226 ++++++
 P70-P71.s                                 |  434 ++
 P76.s                                     |  162 +
 PHASE_TABLE_MAINTENANCE.s                 |  406 ++
 PINBALL_GAME_BUTTONS_AND_LIGHTS.s         | 3781 ++++++++++++++++
 PINBALL_NOUN_TABLES.s                     |  867 ++++
 PLANETARY_INERTIAL_ORIENTATION.s          |  390 ++
 POWERED_FLIGHT_SUBROUTINES.s              |  364 ++
 Q_R-AXIS_RCS_AUTOPILOT.s                  |  860 ++++
 R30.s                                     |  490 +++
 R31.s                                     |  290 ++
 R60_62.s                                  |  387 ++
 R63.s                                     |  156 +
 RADAR_LEADIN_ROUTINES.s                   |  103 +
 RCS-CSM_DAP_EXECUTIVE_PROGRAMS.s          |   85 +
 RCS-CSM_DIGITAL_AUTOPILOT.s               |  976 +++++
 RCS_FAILURE_MONITOR.s                     |  173 +
 REENTRY_CONTROL.s                         | 1609 +++++++
 RESTARTS_ROUTINE.s                        |  335 ++
 RESTART_TABLES.s                          |  558 +++
 RT8_OP_CODES.s                            |  355 ++
 RTB_OP_CODES.s                            |  236 +
 S-BAND_ANTENNA_FOR_CM.s                   |  129 +
 S-BAND_ANTENNA_FOR_LM.s                   |  201 +
 SERVICER.s                                | 1715 ++++++++
 SERVICER207.s                             |  804 ++++
 SERVICE_ROUTINES.s                        |  271 ++
 SINGLE_PRECISION_SUBROUTINES.s            |   74 +
 SPS_BACK-UP_RCS_CONTROL.s                 |  196 +
 STABLE_ORBIT.s                            |  428 ++
 STAR_TABLES.s                             |  193 +
 SXTMARK.s                                 |  702 +++
 SYSTEM_TEST_STANDARD_LEAD_INS.s           |  147 +
 T4RUPT_PROGRAM.s                          | 1467 +++++++
 T6-RUPT_PROGRAMS.s                        |  163 +
 TAGS_FOR_RELATIVE_SETLOC.s                |  436 ++
 THE_LUNAR_LANDING.s                       |  335 ++
 THROTTLE_CONTROL_ROUTINES.s               |  224 +
 TIME_OF_FREE_FALL.s                       |  710 +++
 TJET_LAW.s                                |  519 +++
 TPI_SEARCH.s                              |  557 +++
 TRIM_GIMBAL_CNTROL_SYSTEM.s               |  622 +++
 TVCDAPS.s                                 |  781 ++++
 TVCEXECUTIVE.s                            |  273 ++
 TVCINITIALIZE.s                           |  414 ++
 TVCMASSPROP.s                             |  239 ++
 TVCRESTARTS.s                             |  272 ++
 TVCROLLDAP.s                              |  617 +++
 TVCSTROKETEST.s                           |  261 ++
 UPDATE_PROGRAM.s                          |  554 +++
 WAITLIST.s                                |  550 +++
 128 files changed, 85238 insertions(+), 4771 deletions(-)
 create mode 100644 .DS_Store
 create mode 100644 AGC_BLOCK_TWO_SELF-CHECK.s
 create mode 100644 AGC_BLOCK_TWO_SELF_CHECK.s
 create mode 100644 AGS_INITIALIZATION.s
 create mode 100644 ALARM_AND_ABORT.s
 create mode 100644 ANGLFIND.s
 create mode 100644 AOSTASK_AND_AOSJOB.s
 create mode 100644 AOTMARK.s
 create mode 100644 ASCENT_GUIDANCE.s
 create mode 100644 ASSEMBLY_AND_OPERATION_INFORMATION.s
 create mode 100644 ATTITUDE_MANEUVER_ROUTINE.s
 create mode 100644 AUTOMATIC_MANEUVERS.s
 create mode 100644 BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.s
 create mode 100644 CM_ENTRY_DIGITAL_AUTOPILOT.s
 create mode 100644 CONIC_SUBROUTINES.s
 create mode 100644 CONTRACT_AND_APPROVALS.s
 create mode 100644 CONTROLLED_CONSTANTS.s
 create mode 100644 CSM_GEOMETRY.s
 create mode 100644 DAPIDLER_PROGRAM.s
 create mode 100644 DAP_INTERFACE_SUBROUTINES.s
 create mode 100644 DISPLAY_INTERFACE_ROUTINES.s
 create mode 100644 DOWN-TELEMETRY_PROGRAM.s
 create mode 100644 DOWNLINK_LISTS.s
 create mode 100644 DOWN_TELEMETRY_PROGRAM.s
 create mode 100644 ENTRY_LEXICON.s
 create mode 100644 ERASABLE_ASSIGNMENTS.s
 create mode 100644 EXECUTIVE.s
 create mode 100644 EXTENDED_VERBS.s
 create mode 100644 FINDCDUW--GUIDAP_INTERFACE.s
 create mode 100644 FIXED_FIXED_CONSTANT_POOL.s
 create mode 100644 FLAGWORD_ASSIGNMENTS.s
 delete mode 100644 FP8.s
 create mode 100644 FRESH_START_AND_RESTART.s
 create mode 100644 GIMBAL_LOCK_AVOIDANCE.s
 create mode 100644 GROUND_TRACKING_DETERMINATION_PROGRAM.s
 create mode 100644 HeaderTemplate.s
 create mode 100644 IMU_CALIBRATION_AND_ALIGNMENT.s
 create mode 100644 IMU_COMPENSATION_PACKAGE.s
 create mode 100644 IMU_MODE_SWITCHING_ROUTINES.s
 create mode 100644 IMU_PERFORMANCE_TESTS_4.s
 create mode 100644 IMU_PERFORMANCE_TEST_2.s
 create mode 100644 INFLIGHT_ALIGNMENT_ROUTINES.s
 create mode 100644 INPUT_OUTPUT_CHANNEL_BIT_DESCRIPTIONS.s
 create mode 100644 INTEGRATION_INITIALIZATION.s
 create mode 100644 INTER-BANK_COMMUNICATION.s
 create mode 100644 INTERPRETER.s
 create mode 100644 INTERPRETIVE_CONSTANT.s
 create mode 100644 INTERPRETIVE_CONSTANTS.s
 create mode 100644 INTERRUPT_LEAD_INS.s
 create mode 100644 JET_SELECTION_LOGIC.s
 create mode 100644 KALCMANU_STEERING.s
 create mode 100644 KALMAN_FILTER.s
 create mode 100644 KEYRUPT_UPRUPT.s
 create mode 100644 LAMBERT_AIMPOINT_GUIDANCE.s
 create mode 100644 LANDING_ANALOG_DISPLAYS.s
 create mode 100644 LATITUDE_LONGITUDE_SUBROUTINES.s
 create mode 100644 LEM_GEOMETRY.s
 create mode 100644 LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.s
 create mode 100644 LUNAR_LANDMARK_SELECTION_FOR_CM.s
 create mode 100644 MAIN.s
 create mode 100644 MEASUREMENT_INCORPORATION.s
 create mode 100644 MYSUBS.s
 create mode 100644 ORBITAL_INTEGRATION.s
 create mode 100644 P-AXIS_RCS_AUTOPILOT.s
 create mode 100644 P11.s
 create mode 100644 P12.s
 create mode 100644 P20-P25.s
 create mode 100644 P30-P37.s
 create mode 100644 P30_P37.s
 create mode 100644 P32-P33_P72-P73.s
 create mode 100644 P32-P35_P72-P75.s
 create mode 100644 P34-35_P74-75.s
 create mode 100644 P37_P70.s
 create mode 100644 P40-P47.s
 create mode 100644 P51-P53.s
 create mode 100644 P61-P67.s
 create mode 100644 P70-P71.s
 create mode 100644 P76.s
 create mode 100644 PHASE_TABLE_MAINTENANCE.s
 create mode 100644 PINBALL_GAME_BUTTONS_AND_LIGHTS.s
 create mode 100644 PINBALL_NOUN_TABLES.s
 create mode 100644 PLANETARY_INERTIAL_ORIENTATION.s
 create mode 100644 POWERED_FLIGHT_SUBROUTINES.s
 create mode 100644 Q_R-AXIS_RCS_AUTOPILOT.s
 create mode 100644 R30.s
 create mode 100644 R31.s
 create mode 100644 R60_62.s
 create mode 100644 R63.s
 create mode 100644 RADAR_LEADIN_ROUTINES.s
 create mode 100644 RCS-CSM_DAP_EXECUTIVE_PROGRAMS.s
 create mode 100644 RCS-CSM_DIGITAL_AUTOPILOT.s
 create mode 100644 RCS_FAILURE_MONITOR.s
 create mode 100644 REENTRY_CONTROL.s
 create mode 100644 RESTARTS_ROUTINE.s
 create mode 100644 RESTART_TABLES.s
 create mode 100644 RT8_OP_CODES.s
 create mode 100644 RTB_OP_CODES.s
 create mode 100644 S-BAND_ANTENNA_FOR_CM.s
 create mode 100644 S-BAND_ANTENNA_FOR_LM.s
 create mode 100644 SERVICER.s
 create mode 100644 SERVICER207.s
 create mode 100644 SERVICE_ROUTINES.s
 create mode 100644 SINGLE_PRECISION_SUBROUTINES.s
 create mode 100644 SPS_BACK-UP_RCS_CONTROL.s
 create mode 100644 STABLE_ORBIT.s
 create mode 100644 STAR_TABLES.s
 create mode 100644 SXTMARK.s
 create mode 100644 SYSTEM_TEST_STANDARD_LEAD_INS.s
 create mode 100644 T4RUPT_PROGRAM.s
 create mode 100644 T6-RUPT_PROGRAMS.s
 create mode 100644 TAGS_FOR_RELATIVE_SETLOC.s
 create mode 100644 THE_LUNAR_LANDING.s
 create mode 100644 THROTTLE_CONTROL_ROUTINES.s
 create mode 100644 TIME_OF_FREE_FALL.s
 create mode 100644 TJET_LAW.s
 create mode 100644 TPI_SEARCH.s
 create mode 100644 TRIM_GIMBAL_CNTROL_SYSTEM.s
 create mode 100644 TVCDAPS.s
 create mode 100644 TVCEXECUTIVE.s
 create mode 100644 TVCINITIALIZE.s
 create mode 100644 TVCMASSPROP.s
 create mode 100644 TVCRESTARTS.s
 create mode 100644 TVCROLLDAP.s
 create mode 100644 TVCSTROKETEST.s
 create mode 100644 UPDATE_PROGRAM.s
 create mode 100644 WAITLIST.s

diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..6a8b9b1351ac17b381400ace60b4a3dbe81c8f07
GIT binary patch
literal 16388
zcmeI3-*QyP5yoc$8yN{B1X$vah>TMyTrN50uefA|771&mRkRYuxlw{~#TTTUN+ngk
z3zvQbKY|~@kKl_u0FS^U_>O$P?sIfzRx_&=u1dLzUDfLB9-aQW=bP@Ho<2t*gx2!E
zpWO)IUI<}AZ;sPbI;}4YI({~(6V;2q^FHu8t}`vY|D*Q_$%oJl55h)hht05i;OgJr
ziDNQ}w`>m=!n*8^?cWRiuoF7^*$$61qSf$e_-puE`0CN~Z@+r_{M)CJ(vZV{LwM)q
zYkTRNzUci?*fN=A!|aAVNw>vJN1v9(&5nM0!tCoiY^~_nmBeaT(_i{|O|6%jhgbWW
z9tbUO(ZdklUE9Adgv-KqEj|v{X~vF!jTsm-FlJ!Pz+1=wYqwq#(OU0k#=pl5j2U?A
z86ZC_=*{tdb$sDROC9<}`OM!bq3xy56vdodsE+rm;|o9PFM73HR7V$WRa=afi|hPC
zb>02y_`;7a9$KbZIF)8LF1%W%UB?A|(W`ae4&z^A2F46z82F>k%^ujTZfbYBt9|L7
zcB5_WSi9P57IvjUyUq8WM7zyvLi7D*$E3Hzm%?G^$xeDlpV(*bNdx=pj?SZl^X!Q8
zJ6i3r6CGEjqZhs~#E$Kr9}2VHKeKb+mDSre3XsuVu)noEfPE?aN!D$LMOpPkvh2~f
z)z|R7I(zq?@zvFFCvPu1^~BzjLbw$^%U^8_{v0vrSKlaH4Hxm%r-Xf1*n9eYGcRLf
zjAhVpR~BX2HtXZ7FY4;HSZ?b`pQ2;mU=?QYltVaXgs1LBBfKU#7+tjA8^Qs7OUI5l
z@93;!KGx?wokz>6e$zu4GLMOl`HT)c<dLj(4{V#3k!CYNo~@AgG_JPry29BuOE+Za
zrfI;tv+U9@O3>ajS@@+t^lA8ec$RjUn2&HhV(*+uc;t9=JutmHI^UBudA-cRj}gj@
zq0r-EUU$Uv;jxbGF~<1;43CxABeJ&Oj|tASS#VD_FdKWC|DO0L$E+C1$S;p7k3UY%
zMO<7oU!+^-y*Q5a{x<c~7V1OUgYVPb%#MgzeIvwf2@#GG#PhO|4Ek99MelFK*u#4g
zoT&kvlAprS_Yp^D4#?e9)>#_DM=ZS{Y41LgKRl+1bMmWa{v&7Y#JbDE+0vW-YFoJL
z$}PL*OLguZAx4a=*y?E^Hc{bg*0Ss^<bCt2Uj{hy_!=>~CS&PIX@4SJbkw&sqO9kc
zpTtrhO6p6qyCX^T5=X?hj|C40&wI|E%YA(=WmY^W)-WTq+d_a}aMS#pwGw8gzKNJQ
zFUh-_qY_HN7UC?yxgwmlvN|(gM=80O3WQb3R}dm+N9TI-jI4dInBZQ}^=sy-WOuTF
zuYGYJJ&z=|5~O)UA~VzVckfSqal}YA4qrwbV&fytG4a&XUtxf;^PQEctDmfm#$t>#
zC8W<K$85sf7kN2jDVBR*65Q#)x9}ulZLJ^+FR?7VPyynjtjZe}xm1P^Ec^Oe26E%g
z`O(O?POnA0ObYq2P`suX;z^0rbR~7L0?BHHi$wlxB~O+kLwKG0DEwK><PpS3f^eon
zAm01>@wnQ`OXCfve~Lz3OXC5}sy=M=u{1LYXU=-J;x2DDBadb4k)sv)b@L>*B9Fkx
zV}u#YCCnGuYUGUa{`F}5Q}SA>F=C8WrIe$UK@z#lrf7U>%)nd1fSv&eR}?p^ihXJ)
zUnAG`c}MZo(~->HRkmTT#)?R7m5pjvmGDCpk)z>~?}y_m(<Qhcn7yp{2XpNqodmLW
zf^|+<ta#hD4mI`vvc}G?C_7Tyk;NmO5&};Mz!NsD<mJfOt%-;sM$)UYbzi(TPXqY*
z&-K^k0+!fLuqF*_glaL7V*Gv0fbS+*iFY*uGV!LJEsj4y`GcY0DXijM>-f}MvZG_)
z(#(v{n^$YBb*z=;-VdC87jZUk63FbxR(6Sd(u%f@zEkf}sj&_<eTnQS@Ye)+Rw&5y
z3=a*&#2|KIMa8ocv`@qYeF3^8>`9i5mHOPG;>p)}Ry-`GH&Is(urbmY@We#xdD%=w
zh5xQp^FZC%u$AWmmS06IU#)QBF2jo12-1=IC&qJ(eL>jXCxPE1_UaNVFI7m?9qjt3
zUu(akpX3$PW3#t3Z!j2JHy2^jO`&3EujDq@d#K`5I>h*~ClQm=lI+`@tO^O=qRyso
zlb;EBWg<Us(MVT>%;Mfcb?-fZBeItupRbUKcSea9j<A=*=MtQ&lBeSGzHi;_9keu!
z$ii$Gdp}3)T@p5(-c7{|h}hXMIGVkR%wu^>-yOdJCO(~D&g|Ps^|@)eyskqFV>KRQ
zyUuEC%&_<Lu!{b(`(55w<ZH+8MQqJUhDhk^?Ol7~fxU!h7nnms!6HVL;GH%b(td2#
z60%<+Ib)K{7^|U2kmu&*l6Lq=Fs|;ertIZ*<ppHTW`)YfMAkn1>iCZlQ}c#RubJ3p
z)viAe#yLLL)6bB-bb>r5G%AW!tDn5ja)dcBCSyx43(xm-YqGT2*)^Fi-SK6|Z`{VH
z7iC|(=Wgo0w${*|{&q+WAgjWOxrot^h3GNvJ=8iUuM3OXh#o(g4-eh2bIr;>QXJ!*
ziN+b#jbH1T%xC)jPa%J;-uXYmbDjB@KIeImpC%X|8VkF!?t$ivh~>UfY+19O@K@I8
zI*Rfd<i&}GE0G4WKh+RVe#Sbs^o_b2uPJm3jPLIwzJIrm%UuVrgZlD0)@Lf}n)T80
zF5JfGm-f-UdTXjRuM6Y8;*h&e3FhUIF{$lu7iJKCV@u&-(_)U<;rUr2V{onptEo~3
z#H)XaSpL}1x2!It%SL@ze}iSbgUXY>m3M~S&#9^DZqXt2>b9g2=3|XlO(SvQcf4wO
zU;mlirnA)eP~I2u_81#qtZRrx*^Bk;I>>n&`k~XwigOq)a}eX6iEybP>Nw9@g(tuB
zO~moVjC9?(9n8jgL~)oP;=T1aYkNwFg?S+lCzu~Zm`&H3RhoNuK075W@s(iB?sr>#
zcg+gh%rm)|>|E$o8-Fh&{<Nii<JY_-&syf;P89y&t6^96kg2nL8#l29GeYR7qHTEL
z-a!2=j{zq!#=NbX>>ttVQOpX(>g%&P;_eiFMtJ_690AY7Yh1k+=8)AVLA_@7GHcB~
z6hzj#_}mdI^hC$BbogDIk@gO(@`?N>l5g%_)GJwER(j8a`|VrGVqQ~|uUJROzDKay
z`2H#K$KNMf(L_bS9Kv=}ztt;AM^9YrMmcBL48(dq%Id+3xm#9uuF}}5?-3R6<l@`!
z##$yUF0j7n$I12cx}KZ>gJi<GTJQ`(KHD~*j;o9;GQ6I=9`SlgSlkQY*_I(3B{H+7
z&sQejwbz+3U0t#kz(s;KC(9Q#wqNmFOoDe(csKNu)o$beAsWA5U8pvQ&y(@hlfvc>
z^`af`<aO8x2c>vY2dP`dyW5(XiHXQEbRk6@Ta+R?6ARDT)i*0$w@i9THlur~^mGp6
zOmwFxcLq>~j5|R&Yqs2$?pvY8;M<bEWoL)cBnZyIQl)>$vrZG=4KR1R;`?@yZ^k?*
zbw_>!Q+G;CF}DY#?p9KFOS)`agSwU~3zvrZ>cp#PT=?pe?r>+hvpI~fzO1XMC8-9e
ztef3C*{qIO?m`di$}-*t^|1ZF(wtWf_jvxlQ~v+IH?A$lf@2284E**PXq{N;uPn>X
z>e>1O7W1tAg5H18n-|x;;DcWJoct4jz9;`Itnc@$>t6T~Y2-{y$N$qm0Aw@qc>RC<
T+NNW?{y!BD`sb0iW&Qsj?G{C(

literal 0
HcmV?d00001

diff --git a/AGC_BLOCK_TWO_SELF-CHECK.s b/AGC_BLOCK_TWO_SELF-CHECK.s
new file mode 100644
index 0000000..283661b
--- /dev/null
+++ b/AGC_BLOCK_TWO_SELF-CHECK.s
@@ -0,0 +1,518 @@
+# Copyright:	Public domain.
+# Filename:	AGC_BLOCK_TWO_SELF-CHECK.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:	1394-1403
+# 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 1394
+# PROGRAM DESCRIPTION				DATE:  20 DECEMBER 1967
+# PROGRAM NAME -- SELF-CHECK			LOG SECTION:  AGC BLOCK TWO SELF-CHECK
+# MOD NO -- 1					ASSEMBLY SUBROUTINE UTILITYM REV 25
+# MOD BY -- GAUNTT
+#
+# FUNCTIONAL DESCRIPTION
+#	PROGRAM HAS TWO MAIN PARTS.  THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS
+#	PART OF THE BACK-UP IDLE LOOP.  THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN
+# 	STARTING VERB.
+#
+#	THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS.
+#
+#	THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK, ONE AT A TIME.
+#
+#	IN ALL THERE ARE 7 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK.  MORE DETAIL DESCRIPTION MAY BE
+#	FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966, AND ADDENDA 2 AND 3.
+#
+#	THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27).  BELOW IS
+# 	A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN
+#	OCTAL, TO LOAD INTO SMODE.
+#		+-4		ERASABLE MEMORY
+#		+-5		FIXED MEMORY
+#		+-1,2,3,6,7,10	EVERYTHING IN OPTIONS 4 AND 5.
+#		-0		SAME AS +-10 UNTIL AN ERROR IS DETECTED.
+#		+0		NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP.
+#
+# WARNINGS
+#	USE OF E MEMORY RESERVED FOR SELF-CHECK (EVEN IN IDLE LOOP) AS TEMP STORAGE BY OTHER PROGRAMS IS DANGEROUS.
+#	SMODE SET GREATER THAN OCT 10 PUTS COMPUTER INTO BACKUP IDLE LOOP.
+#
+# CALLING SEQUENCE
+#	TO CALL SELF-CHECK KEY IN
+#		V 21 N 27 E	OPTION NUMBER E
+#	TO CALL SHOW-BANKSUM KEY IN
+#		V 91 E		DISPLAYS FIRST BANK
+#		V 33 E		PROCEED, DISPLAYS NEXT BANK
+#
+# EXIT MODES, NORMAL AND ALARM
+#	SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED.  IF SO + OPTION NUMBERS PUT
+#	COMPUTER INTO BACKUP IDLE LOOP, - OPTION NUMBERS RESTART THE OPTION.
+#
+#	THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED.
+#
+#	SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E).  THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP.
+#
+# OUTPUT
+# Page 1395
+#	SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND
+#	TURNS ON THE ALARM LIGHT.  THE OPERATOR MAY THEN DISPLAY THE THREE FAILREGS BY KEYING IN V 05 N 09 E.  FOR FURTHER
+# 	INFORMATION HE MAY KEY IN V 05 N 08 E, THE DSKY DISPLAY IN R1 WILL BE ADDRESS+1 OF WHERE THE ERROR WAS DETECTED,
+#	IN R2 THE BBCON OF SELF-CHECK, AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST MAN
+#	INITIATED FRESH START (SLAP1).
+#
+#	SHOW-BANKSUM STARTING WTIH BANK 0 DISPLAYS IN R1 THE BANK SUM (A +-NUMBER EQUAL TO THE BANK NUMBER), IN R2
+#	THE BANK NUMBER, AND IN R3 THE BUGGER WORD.
+#
+# ERASABLE INITIALIZATION REQUIRED
+#	ACCOMPLISHED BY FRESH START
+#		SMODE SET TO +0
+#
+# DEBRIS
+#	ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK.
+#	EXCEPTION IS A RESTART.  RESTART THAT OCCURS DURING ERASCHK RESTORES ERASABLE, UNLESS THERE IS EVIDENCE TO DOUBT
+#	E MEMORY, IN WHICH CASE PROGRAM THEN DOES A FRESH START (DOFSTART).
+
+		BANK	25
+		SETLOC	SELFCHEC
+		BANK
+
+		COUNT	43/SELF
+		
+SBIT1		EQUALS	BIT1
+SBIT2		EQUALS	BIT2
+SBIT3		EQUALS	BIT3
+SBIT4		EQUALS	BIT4
+SBIT5		EQUALS	BIT5
+SBIT6		EQUALS	BIT6
+SBIT7		EQUALS	BIT7
+SBIT8		EQUALS	BIT8
+SBIT9		EQUALS	BIT9
+SBIT10		EQUALS	BIT10
+SBIT11		EQUALS	BIT11
+SBIT12		EQUALS	BIT12
+SBIT13		EQUALS	BIT13
+SBIT14		EQUALS	BIT14
+SBIT15		EQUALS	BIT15
+
+S+ZERO		EQUALS	ZERO
+S+1		EQUALS	BIT1
+S+2		EQUALS	BIT2
+S+3		EQUALS	THREE
+S+4		EQUALS	FOUR
+S+5		EQUALS	FIVE
+# Page 1396
+S+6		EQUALS	SIX
+S+7		EQUALS	SEVEN
+S8BITS		EQUALS	LOW8		# 00377
+CNTRCON		=	OCT50		# USED IN CNTRCHK
+ERASCON1	OCTAL	00061		# USED IN ERASCHK
+ERASCON2	OCTAL	01373		# USED IN ERASCHK
+ERASCON6	=	OCT1400		# USED IN ERASCHK
+ERASCON3	OCTAL	01461		# USED IN ERASCHK
+ERASCON4	OCTAL	01773		# USED IN ERASCHK
+S10BITS		EQUALS	LOW10		# 01777, USED IN ERASCHK
+SBNK03		EQUALS	PRIO6		# 06000, USED IN ROPECHK
+-MAXADRS	=	HI5		# FOR ROPECHK
+SIXTY		OCTAL	00060
+SUPRCON		OCTAL	60017		# USED IN ROPECHK
+S13BITS		OCTAL	17777
+CONC+S1		OCTAL	25252		# USED IN CYCLSHFT
+CONC+S2		OCTAL	52400		# USED IN CYCLSHFT
+ERASCON5	OCTAL	76777
+S-7		=	OCT77770
+S-4		EQUALS	NEG4
+S-3		EQUALS	NEG3
+S-2		EQUALS	NEG2
+S-1		EQUALS	NEGONE
+S-ZERO		EQUALS	NEG0
+
+		EBANK=	LST1
+ADRS1		ADRES	SKEEP1
+SELFADRS	ADRES	SELFCHK		# SELFCHK RETURN ADDRESS.  SHOULD BE PUT
+					# IN SELFRET WHEN GOING FROM SELFCHK TO
+					# SHOWSUM AND PUT IN SKEEP1 WHEN GOING
+					# FROM SHOWSUM TO SELF-CHECK.
+
+PRERRORS	CA	ERESTORE	# IS IT NECESSARY TO RESTORE ERASABLE
+		EXTEND
+		BZF	ERRORS		# NO
+		EXTEND
+		DCA	SKEEP5
+		INDEX	SKEEP7
+		DXCH	0000		# RESTORE THE TWO ERASABLE REGISTERS
+		CA	S+ZERO
+		TS	ERESTORE
+ERRORS		INHINT
+		CA	Q
+		TS	SFAIL		# SAVE Q FOR FAILURE LOCATION
+		TS	ALMCADR		# FOR DISPLAY WITH BBANK AND ERCOUNT
+		INCR	ERCOUNT		# KEEP TRACK OF NUMBER OF MALFUNCTIONS.
+TCALARM2	TC	ALARM2
+		OCT	01102		# SELF-CHECK MALFUNCTION INDICATOR
+		CCS	SMODE
+SIDLOOP		CA	S+ZERO
+# Page 1397
+		TS	SMODE
+		TC	SELFCHK		# GO TO IDLE LOOP
+		TC	SFAIL		# CONTINUE WITH SELF-CHECK
+
+-1CHK		CCS	A
+		TCF	PRERRORS
+		TCF	PRERRORS
+		CCS	A
+		TCF	PRERRORS
+		TC	Q
+
+SMODECHK	EXTEND
+		QXCH	SKEEP1
+		TC	CHECKNJ		# CHECK FOR NEW JOB
+		CCS	SMODE
+		TC	SOPTIONS
+		TC	SMODECHK +2	# TO BACKUP IDLE LOOP
+		TC	SOPTIONS
+		INCR	SCOUNT
+		TC	SKEEP1		# CONTINUE WITH SELF-CHECK
+
+SOPTIONS	AD	S-7
+		EXTEND
+		BZMF	+2		# FOR OPTIONS BELOW NINE.
+BNKOPTN		TC	SIDLOOP		# ILLEGAL OPTION.  GO TO IDLE LOOP.
+		INCR	SCOUNT		# FOR OPTIONS BELOW NINE.
+		AD	S+7
+
+		INDEX	A
+		TC	SOPTION1
+SOPTION1	TC	SKEEP1		# WAS TC+TCF
+SOPTION2	TC	SKEEP1		# WAS IN:OUT1
+SOPTION3	TC	SKEEP1		# WAS COUNTCHK
+SOPTION4	TC	ERASCHK
+SOPTION5	TC	ROPECHK
+SOPTION6	TC	SKEEP1
+SOPTION7	TC	SKEEP1
+SOPTON10	TC	SKEEP1		# CONTINUE WITH SELF-CHECK
+
+CHECKNJ		EXTEND
+		QXCH	SELFRET		# SAVE RETURN ADDRESS WHILE TESTING NEWJOB
+		TC	POSTJUMP	# TO SEE IF ANY JOBS HAVE BECOME ACTIVE.
+		CADR	ADVAN
+
+SELFCHK		TC	SMODECHK	# ** CHARLEY, COME IN HERE
+
+# SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED.
+# SKEEP6 HOLDS B(X+1).
+# SKEEP5 HOLDS B(X).
+# SKEEP4 HOLDS C(EBANK) DURING ERASLOOP AND CHECKNJ
+# Page 1398
+# SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS).
+# SKEEP2 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH BANK NUMBERS IN EB.
+#
+# ERASCHK TAKES APPROXIMATELY 7 SECONDS.
+
+ERASCHK		CA	S+1
+		TS	SKEEP2
+0EBANK		CA	S+ZERO
+		TS	EBANK
+		CA	ERASCON3	# 01461
+		TS	SKEEP7		# STARTING ADDRESS
+		CA	S10BITS		# 01777
+		TS	SKEEP3		# LAST ADDRESS CHECKED
+		TC	ERASLOOP
+
+E134567B	CA	ERASCON6	# 01400
+		TS	SKEEP7		# STARTING ADDRESS
+		CA	S10BITS		# 01777
+		TS	SKEEP3		# LAST ADDRESS CHECKED
+		TC	ERASLOOP
+
+2EBANK		CA	ERASCON6	# 01400
+		TS	SKEEP7		# STARTING ADDRESS
+		CA	ERASCON4	# 01773
+		TS	SKEEP3		# LAST ADDRESS CHECKED
+		TC	ERASLOOP
+
+NOEBANK		TS	SKEEP2		# +0
+		CA	ERASCON1	# 00061
+		TS	SKEEP7		# STARTING ADDRESS
+		CA	ERASCON2	# 01373
+		TS	SKEEP3		# LAST ADDRESS CHECKED
+
+ERASLOOP	INHINT
+		CA	EBANK		# STORES C(EBANK)
+		TS	SKEEP4
+		EXTEND
+		NDX	SKEEP7
+		DCA	0000
+		DXCH	SKEEP5		# STORES C(X) AND C(X+1) IN SKEEP6 AND 5.
+		CA	SKEEP7
+		TS	ERESTORE	# IF RESTART, RESTORE C(X) AND C(X+1)
+		TS	L
+		INCR	L
+		NDX	A
+		DXCH	0000		# PUTS OWN ADDRESS IN X AND X +1
+		NDX	SKEEP7
+		CS	0001		# CS X+1
+		NDX	SKEEP7
+		AD	0000		# AD X
+		TC	-1CHK
+		CA	ERESTORE	# HAS ERASABLE BEEN RESTORED
+# Page 1399
+		EXTEND
+		BZF	ELOOPFIN	# YES, EXIT ERASLOOP.
+		EXTEND
+		NDX	SKEEP7
+		DCS	0000		# COMPLEMENT OF ADDRESS OF X AND X+1
+		NDX	SKEEP7
+		DXCH	0000		# PUT COMPLEMENT OF ADDRESS OF X AND X+1
+		NDX	SKEEP7
+		CS	0000		# CS X
+		NDX	SKEEP7
+		AD	0001		# AD X+1
+		TC	-1CHK
+		CA	ERESTORE	# HAS ERASABLE BEEN RESTORED
+		EXTEND
+		BZF	ELOOPFIN	# YES, EXIT ERASLOOP.
+		EXTEND
+		DCA	SKEEP5
+		NDX	SKEEP7
+		DXCH	0000		# PUT B(X) AND B(X+1) BACK INTO X AND X+1
+		CA	S+ZERO
+		TS	ERESTORE	# IF RESTART, DO NOT RESTORE C(X), C(X+1)
+ELOOPFIN	RELINT
+		TC	CHECKNJ		# CHECK FOR NEW JOB
+		CA	SKEEP4		# REPLACES B(EBANK)
+		TS	EBANK
+		INCR	SKEEP7
+		CS	SKEEP7
+		AD	SKEEP3
+		EXTEND
+		BZF	+2
+		TC	ERASLOOP	# GO TO NEXT ADDRESS IN SAME BANK
+		CCS	SKEEP2
+		TC	NOEBANK
+		INCR	SKEEP2		# PUT +1 IN SKEEP2.
+		CA	EBANK
+		AD	SBIT9
+		TS	EBANK
+		AD	ERASCON5	# 76777, CHECK FOR BANK E2
+		EXTEND
+		BZF	2EBANK
+		CCS	EBANK
+		TC	E134567B	# GO TO EBANKS 1,3,4,5,6, AND 7
+		CA	ERASCON6	# END OF ERASCHK
+		TS	EBANK
+
+# CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10.
+# INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS
+
+CNTRCHK		CA	CNTRCON		# 00050
+CNTRLOOP	TS	SKEEP2
+		AD	SBIT4		# +10 OCTAL
+		INDEX	A
+# Page 1400
+		CS	0000
+		CCS	SKEEP2
+		TC	CNTRLOOP
+
+# CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS
+
+CYCLSHFT	CA	CONC+S1		# 25252
+		TS	CYR		# C(CYR) = 12525
+		TS	CYL		# C(CYL) = 52524
+		TS	SR		# C(SR) = 12525
+		TS	EDOP		# C(EDOP) = 00125
+		AD	CYR		# 37777		C(CYR) = 45252
+		AD	CYL		# 00-12524	C(CYL) = 25251
+		AD	SR		# 00-25251	C(SR) = 05252
+		AD	EDOP		# 00-25376	C(EDOP) = +0
+		AD	CONC+S2		# C(CONC+S2) = 52400
+		TC	-1CHK
+		AD	CYR		# 45252
+		AD	CYL		# 72523
+		AD	SR		# 77775
+		AD	EDOP		# 77775
+		AD	S+1		# 77776
+		TC	-1CHK
+
+		INCR	SCOUNT +1
+		TC	SMODECHK
+
+# SKEEP1 HOLDS SUM
+# SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES
+# SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY
+# SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS)
+#			       (04000 TO 07777 IN FXFX BANKS)
+# SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY
+# SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER
+# SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS
+# SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION
+# SKEEP7 CONTROLS WHEN ROUTINE IS IN COMMON FIXED OR FIXED FIXED BANKS
+
+ROPECHK		CA	S-ZERO		# *
+		TS	SKEEP6		# * -0 FOR ROPECHK
+STSHOSUM	CA	S+ZERO		# * SHOULD BE ROPECHK
+
+		TS	SKEEP4		# BANK NUMBER
+		CA	S+1
+COMMFX		TS	SKEEP7
+		CA	S+ZERO
+		TS	SKEEP1
+		TS	SKEEP3
+		CA	S+1
+		TS	SKEEP5		# COUNTS DOWN 2 TC SELF WORDS
+COMADRS		CA	SKEEP4
+		TS	L		# TO SET SUPER BANK
+# Page 1401
+		MASK	HI5
+		AD	SKEEP3
+		TC	SUPDACAL	# SUPER DATA CALL
+		TC	ADSUM
+		AD	SBIT11		# 02000
+		TC	ADRSCHK
+
+FXFX		CS	A
+		TS	SKEEP7
+		EXTEND
+		BZF	+3
+		CA	SBIT12		# 04000, STARTING ADDRESS OF BANK 02
+		TC	+2
+		CA	SBNK03		# 06000, STARTING ADDRESS OF BANK 03
+		TS	SKEEP3
+		CA	S+ZERO
+		TS	SKEEP1
+		CA	S+1
+		TS	SKEEP5		# COUNTS DOWN 2 TC SELF WORDS
+FXADRS		INDEX	SKEEP3
+		CA	0000
+		TC	ADSUM
+		TC	ADRSCHK
+
+ADSUM		TS	SKEEP2
+		AD	SKEEP1
+		TS	SKEEP1
+		CAF	S+ZERO
+		AD	SKEEP1
+		TS	SKEEP1
+		CS	SKEEP2
+		AD	SKEEP3
+		TC	Q
+
+ADRSCHK		LXCH	A
+		CA	SKEEP3
+		MASK	LOW10		# RELATIVE ADDRESS
+		AD	-MAXADRS	# SUBTRACT MAX RELATIVE ADDRESS = 1777.
+		EXTEND
+		BZF	SOPTION		# CHECKSUM FINISHED IF LAST ADDRESS.
+		CCS	SKEEP5		# IS CHECKSUM FINISHED
+		TC	+3		# NO
+		TC	+2		# NO
+		TC	SOPTION		# GO TO ROPECHK SHOWSUM OPTION
+		CCS	L		# -0 MEANS A TC SELF WORD.
+		TC	CONTINU
+		TC	CONTINU
+		TC	CONTINU
+		CCS	SKEEP5
+		TC	CONTINU +1
+# Page 1402
+		CA	S-1
+		TC	CONTINU +1	# AD IN THE BUGGER WORD
+CONTINU		CA	S+1		# MAKE SURE TWO CONSECUTIVE TC SELF WORDS
+		TS	SKEEP5
+		CCS	SKEEP6		# *
+		CCS	NEWJOB		# * +1, SHOWSUM
+		TC	CHANG1		# *
+		TC	+2		# *
+		TC	CHECKNJ		# -0 IN SKEEP6 FOR ROPECHK
+
+ADRS+1		INCR	SKEEP3
+		CCS	SKEEP7
+		TC	COMADRS
+		TC	COMADRS
+		TC	FXADRS
+		TC	FXADRS
+
+NXTBNK		CS	SKEEP4
+		AD	LSTBNKCH	# LAST BANK TO BE CHECKED
+		EXTEND
+		BZF	ENDSUMS		# END OF SUMMING OF BANKS.
+		CA	SKEEP4
+		AD	SBIT11
+		TS	SKEEP4		# 37 TO 40 INCRMTS SKEEP4 BY END RND CARRY
+		TC	CHKSUPR
+17TO20		CA	SBIT15
+		ADS	SKEEP4		# SET FOR BANK 20
+		TC	GONXTBNK
+CHKSUPR		MASK	HI5
+		EXTEND
+		BZF	NXTSUPR		# INCREMENT SUPER BANK
+27TO30		AD	S13BITS
+		EXTEND
+		BZF	+2		# BANK SET FOR 30
+		TC	GONXTBNK
+		CA	SIXTY		# FIRST SUPER BANK
+		ADS	SKEEP4
+		TC	GONXTBNK
+NXTSUPR		AD	SUPRCON		# SET BNK 30 + INCR SUPR BNK AND CANCEL
+		ADS	SKEEP4		# ERC BIT OF THE 37 TO 40 ADVANCE.
+GONXTBNK	CCS	SKEEP7
+		TC	COMMFX
+		CA	S+1
+		TC	FXFX
+		CA	SBIT7		# HAS TO BE LARGER THAN NO OF FXSW BANKS.
+		TC	COMMFX
+
+SOPTION		CA	SKEEP4
+		MASK	HI5		# = BANK BITS
+		TC	LEFT5
+# Page 1403
+		TS	L		# BANK NUMBER BEFORE SUPER BANK
+		CA	SKEEP4
+		MASK	S8BITS		# = SUPER BANK BITS
+		EXTEND
+		BZF	SOPT		# BEFORE SUPER BANK
+		TS	SR		# SUPER BANK NECESSARY
+		CA	L
+		MASK	SEVEN
+		AD	SR
+		TS	L		# BANK NUMBER WITH SUPER BANK
+SOPT		CA	SKEEP6		# *
+		EXTEND			# *
+		BZF	+2		# * ON -0 CONTINUE WITH ROPE CHECK.
+		TC	SDISPLAY	# * ON +1 GO TO DISPLAY OF SUM.
+		CCS	SKEEP1		# FORCE SUM TO ABSOLUTE VALUE.
+		TC	+2
+		TC	+2
+		AD	S+1
+		TS	SKEEP1
+BNKCHK		CS	L		# = - BANK NUMBER
+		AD	SKEEP1
+		AD	S-1
+		TC	-1CHK		# CHECK SUM
+		TC	NXTBNK
+
+		EBANK=	NEWJOB
+LSTBNKCH	BBCON*			# * CONSTANT, LAST BANK.
+		SBANK=	LOWSUPER
+
+
diff --git a/AGC_BLOCK_TWO_SELF_CHECK.s b/AGC_BLOCK_TWO_SELF_CHECK.s
new file mode 100644
index 0000000..8ddcf42
--- /dev/null
+++ b/AGC_BLOCK_TWO_SELF_CHECK.s
@@ -0,0 +1,511 @@
+# Copyright:	Public domain.
+# Filename:	AGC_BLOCK_TWO_SELF_CHECK.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:	Onno Hommes <ohommes@cmu.edu>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	1284-1293
+# Mod history:	2009-05-27 OH	Transcribed from 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 001 of AGC program LMY99 by NASA 2021112-61
+#	16:27 JULY 14, 1969 
+
+# Page 1284
+# PROGRAM DESCRIPTION				DATE:  20 DECEMBER 1967
+# PROGRAM NAME -- SELF-CHECK			LOG SECTION:  AGC BLOCK TWO SELF-CHECK
+# MOD NO -- 1					ASSEMBLY SUBROUTINE UTILITYM REV 25
+# MOD BY -- GAUNTT
+#
+# FUNCTIONAL DESCRIPTION
+#	PROGRAM HAS TWO MAIN PARTS.  THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS
+#	PART OF THE BACK-UP IDLE LOOP.  THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN
+# 	STARTING VERB.
+#
+#	THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS.
+#
+#	THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK, ONE AT A TIME.
+#
+#	IN ALL THERE ARE 7 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK.  MORE DETAIL DESCRIPTION MAY BE
+#	FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966, AND ADDENDA 2 AND 3.
+#
+#	THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27).  BELOW IS
+# 	A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN
+#	OCTAL, TO LOAD INTO SMODE.
+#		+-4		ERASABLE MEMORY
+#		+-5		FIXED MEMORY
+#		+-1,2,3,6,7,10	EVERYTHING IN OPTIONS 4 AND 5.
+#		-0		SAME AS +-10 UNTIL AN ERROR IS DETECTED.
+#		+0		NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP.
+#
+# WARNINGS
+#	USE OF E MEMORY RESERVED FOR SELF-CHECK (EVEN IN IDLE LOOP) AS TEMP STORAGE BY OTHER PROGRAMS IS DANGEROUS.
+#	SMODE SET GREATER THAN OCT 10 PUTS COMPUTER INTO BACKUP IDLE LOOP.
+#
+# CALLING SEQUENCE
+#	TO CALL SELF-CHECK KEY IN
+#		V 21 N 27 E	OPTION NUMBER E
+#	TO CALL SHOW-BANKSUM KEY IN
+#		V 91 E		DISPLAYS FIRST BANK
+#		V 33 E		PROCEED, DISPLAYS NEXT BANK
+#
+# EXIT MODES, NORMAL AND ALARM
+#	SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED.  IF SO + OPTION NUMBERS PUT
+#	COMPUTER INTO BACKUP IDLE LOOP, - OPTIONS NUMBERS RESTART THE OPTION.
+#
+#	THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED.
+#
+#	SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E).  THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP.
+#
+# OUTPUT
+# Page 1285
+#	SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND
+#	TURNS ON THE ALARM LIGHT.  THE OPERATOR MAY THEN DISPLAY THE THREE FAILREGS BY KEYING IN V 05 N 09 E.  FOR FURTHER
+# 	INFORMATION HE MAY KEY IN V 05 N 08 E, THE DSKY DISPLAY IN R1 WILL BE ADDRESS+1 OF WHERE THE ERROR WAS DETECTED,
+#	IN R2 THE BBCON OF SELF-CHECK, AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST MAN
+#	INITIATED FRESH START (SLAP1).
+#
+#	SHOW-BANKSUM STARTING WTIH BANK 0 DISPLAYS IN R1 THE BANK SUM (A +-NUMBER EQUAL TO THE BANK NUMBER), IN R2
+#	THE BANK NUMBER, AND IN R3 THE BUGGER WORD.
+#
+# ERASABLE INITIALIZATION REQUIRED
+#	ACCOMPLISHED BY FRESH START
+#		SMODE SET TO +0
+#
+# DEBRIS
+#	ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK.
+#	EXCEPTION IS A RESTART.  RESTART THAT OCCURS DURING ERASCHK RESTORES ERASABLE, UNLESS THERE IS EVIDENCE TO DOUBT
+#	E MEMORY, IN WHICH CASE PROGRAM THEN DOES A FRESH START (DOFSTART).
+
+		BANK	25
+		SETLOC	SELFCHEC
+		BANK
+
+		COUNT*	$$/SELF
+SBIT1		EQUALS	BIT1
+SBIT2		EQUALS	BIT2
+SBIT3		EQUALS	BIT3
+SBIT4		EQUALS	BIT4
+SBIT5		EQUALS	BIT5
+SBIT6		EQUALS	BIT6
+SBIT7		EQUALS	BIT7
+SBIT8		EQUALS	BIT8
+SBIT9		EQUALS	BIT9
+SBIT10		EQUALS	BIT10
+SBIT11		EQUALS	BIT11
+SBIT12		EQUALS	BIT12
+SBIT13		EQUALS	BIT13
+SBIT14		EQUALS	BIT14
+SBIT15		EQUALS	BIT15
+
+S+ZERO		EQUALS	ZERO
+S+1		EQUALS	BIT1
+S+2		EQUALS	BIT2
+S+3		EQUALS	THREE
+S+4		EQUALS	FOUR
+S+5		EQUALS	FIVE
+S+6		EQUALS	SIX
+# Page 1286
+S+7		EQUALS	SEVEN
+S8BITS		EQUALS	LOW8		# 00377
+CNTRCON		=	OCT50		# USED IN CNTRCHK
+ERASCON1	OCTAL	00061		# USED IN ERASCHK
+ERASCON2	OCTAL	01373		# USED IN ERASCHK
+ERASCON6	=	OCT1400		# USED IN ERASCHK
+ERASCON3	OCTAL	01461		# USED IN ERASCHK
+ERASCON4	OCTAL	01773		# USED IN ERASCHK
+S10BITS		EQUALS	LOW10		# 01777, USED IN ERASCHK
+SBNK03		EQUALS	PRIO6		# 06000, USED IN ROPECHK
+-MAXADRS	=	HI5		# FOR ROPECHK
+SIXTY		OCTAL	00060
+SUPRCON		OCTAL	60017		# USED IN ROPECHK
+S13BITS		OCTAL	17777
+CONC+S1		OCTAL	25252		# USED IN CYCLSHFT
+CONC+S2		OCTAL	52400		# USED IN CYCLSHFT
+ERASCON5	OCTAL	76777
+S-7		=	OCT77770
+S-4		EQUALS	NEG4
+S-3		EQUALS	NEG3
+S-2		EQUALS	NEG2
+S-1		EQUALS	NEGONE
+S-ZERO		EQUALS	NEG0
+
+		EBANK=	LST1
+ADRS1		ADRES	SKEEP1
+SELFADRS	ADRES	SELFCHK		# SELFCHK RETURN ADDRESS.  SHOULD BE PUT
+					# IN SELFRET WHEN GOING FROM SELFCHK TO
+					# SHOWSUM AND PUT IN SKEEP1 WHEN GOING
+					# FROM SHOWSUM TO SELF-CHECK.
+
+PRERRORS	CA	ERESTORE	# IS IT NECESSARY TO RESTORE ERASABLE
+		EXTEND
+		BZF	ERRORS		# NO
+		EXTEND
+		DCA	SKEEP5
+		INDEX	SKEEP7
+		DXCH	0000		# RESTORE THE TWO ERASABLE REGISTERS
+		CA	S+ZERO
+		TS	ERESTORE
+ERRORS		INHINT
+		CA	Q
+		TS	SFAIL		# SAVE Q FOR FAILURE LOCATION
+		TS	ALMCADR		# FOR DISPLAY WITH BBANK AND ERCOUNT
+		INCR	ERCOUNT		# KEEP TRACK OF NUMBER OF MALFUNCTIONS.
+TCALARM2	TC	ALARM2
+		OCT	01102		# SELF-CHECK MALFUNCTION INDICATOR
+		CCS	SMODE
+SIDLOOP		CA	S+ZERO
+		TS	SMODE
+# Page 1287
+		TC	SELFCHK		# GO TO IDLE LOOP
+		TC	SFAIL		# CONTINUE WITH SELF-CHECK
+
+-1CHK		CCS	A
+		TCF	PRERRORS
+		TCF	PRERRORS
+		CCS	A
+		TCF	PRERRORS
+		TC	Q
+
+SMODECHK	EXTEND
+		QXCH	SKEEP1
+		TC	CHECKNJ		# CHECK FOR NEW JOB
+		CCS	SMODE
+		TC	SOPTIONS
+		TC	SMODECHK +2	# TO BACKUP IDLE LOOP
+		TC	SOPTIONS
+		INCR	SCOUNT
+		TC	SKEEP1		# CONTINUE WITH SELF-CHECK
+
+SOPTIONS	AD	S-7
+		EXTEND
+		BZMF	+2		# FOR OPTIONS BELOW NINE.
+BNKOPTN		TC	SIDLOOP		# ILLEGAL OPTION.  GO TO IDLE LOOP.
+		INCR	SCOUNT		# FOR OPTIONS BELOW NINE.
+		AD	S+7
+
+		INDEX	A
+		TC	SOPTION1
+SOPTION1	TC	SKEEP1		# WAS TC+TCF
+SOPTION2	TC	SKEEP1		# WAS IN:OUT1
+SOPTION3	TC	SKEEP1
+SOPTION4	TC	ERASCHK
+SOPTION5	TC	ROPECHK
+SOPTION6	TC	SKEEP1
+SOPTION7	TC	SKEEP1
+SOPTON10	TC	SKEEP1		# CONTINUE WITH SELF-CHECK
+
+CHECKNJ		EXTEND
+		QXCH	SELFRET		# SAVE RETURN ADDRESS WHILE TESTING NEWJOB
+		TC	POSTJUMP	# TO SEE IF ANY JOBS HAVE BECOME ACTIVE.
+		CADR	ADVAN
+
+SELFCHK		TC	SMODECHK	# ** CHARLEY, COME IN HERE
+
+# SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED.
+# SKEEP6 HOLDS B(X+1).
+# SKEEP5 HOLDS B(X).
+# SKEEP4 HOLDS C(EBANK) DURING ERASLOOP AND CHECKNJ
+# SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS).
+# Page 1288
+# SKEEP2 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH BANK NUMBERS IN EB.
+#
+# ERASCHK TAKES APPROXIMATELY 7 SECONDS.
+
+ERASCHK		CA	S+1
+		TS	SKEEP2
+0EBANK		CA	S+ZERO
+		TS	EBANK
+		CA	ERASCON3	# 01461
+		TS	SKEEP7		# STARTING ADDRESS
+		CA	S10BITS		# 01777
+		TS	SKEEP3		# LAST ADDRESS CHECKED
+		TC	ERASLOOP
+
+E134567B	CA	ERASCON6	# 01400
+		TS	SKEEP7		# STARTING ADDRESS
+		CA	S10BITS		# 01777
+		TS	SKEEP3		# LAST ADDRESS CHECKED
+		TC	ERASLOOP
+
+2EBANK		CA	ERASCON6	# 01400
+		TS	SKEEP7		# STARTING ADDRESS
+		CA	ERASCON4	# 01773
+		TS	SKEEP3		# LAST ADDRESS CHECKED
+		TC	ERASLOOP
+
+NOEBANK		TS	SKEEP2		# +0
+		CA	ERASCON1	# 00061
+		TS	SKEEP7		# STARTING ADDRESS
+		CA	ERASCON2	# 01373
+		TS	SKEEP3		# LAST ADDRESS CHECKED
+
+ERASLOOP	INHINT
+		CA	EBANK		# STORES C(EBANK)
+		TS	SKEEP4
+		EXTEND
+		NDX	SKEEP7
+		DCA	0000
+		DXCH	SKEEP5		# STORES C(X) AND C(X+1) IN SKEEP6 AND 5.
+		CA	SKEEP7
+		TS	ERESTORE	# IF RESTART, RESTORE C(X) AND C(X+1)
+		TS	L
+		INCR	L
+		NDX	A
+		DXCH	0000		# PUTS OWN ADDRESS IN X AND X +1
+		NDX	SKEEP7
+		CS	0001		# CS X+1
+		NDX	SKEEP7
+		AD	0000		# AD X
+		TC	-1CHK
+		CA	ERESTORE	# HAS ERASABLE BEEN RESTORED
+		EXTEND
+# Page 1289
+		BZF	ELOOPFIN	# YES, EXIT ERASLOOP.
+		EXTEND
+		NDX	SKEEP7
+		DCS	0000		# COMPLEMENT OF ADDRESS OF X AND X+1
+		NDX	SKEEP7
+		DXCH	0000		# PUT COMPLEMENT OF ADDRESS OF X AND X+1
+		NDX	SKEEP7
+		CS	0000		# CS X
+		NDX	SKEEP7
+		AD	0001		# AD X+1
+		TC	-1CHK
+		CA	ERESTORE	# HAS ERASABLE BEEN RESTORED
+		EXTEND
+		BZF	ELOOPFIN	# YES, EXIT ERASLOOP.
+		EXTEND
+		DCA	SKEEP5
+		NDX	SKEEP7
+		DXCH	0000		# PUT B(X) AND B(X+1) BACK INTO X AND X+1
+		CA	S+ZERO
+		TS	ERESTORE	# IF RESTART, DO NOT RESTORE C(X), C(X+1)
+ELOOPFIN	RELINT
+		TC	CHECKNJ		# CHECK FOR NEW JOB
+		CA	SKEEP4		# REPLACES B(EBANK)
+		TS	EBANK
+		INCR	SKEEP7
+		CS	SKEEP7
+		AD	SKEEP3
+		EXTEND
+		BZF	+2
+		TC	ERASLOOP	# GO TO NEXT ADDRESS IN SAME BANK
+		CCS	SKEEP2
+		TC	NOEBANK
+		INCR	SKEEP2		# PUT +1 IN SKEEP2.
+		CA	EBANK
+		AD	SBIT9
+		TS	EBANK
+		AD	ERASCON5	# 76777, CHECK FOR BANK E2
+		EXTEND
+		BZF	2EBANK
+		CCS	EBANK
+		TC	E134567B	# GO TO EBANKS 1,3,4,5,6, AND 7
+		CA	ERASCON6	# END OF ERASCHK
+		TS	EBANK
+
+# CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10.
+# INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS
+
+CNTRCHK		CA	CNTRCON		# 00050
+CNTRLOOP	TS	SKEEP2
+		AD	SBIT4		# +10 OCTAL
+		INDEX	A
+		CS	0000
+# Page 1290
+		CCS	SKEEP2
+		TC	CNTRLOOP
+
+# CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS
+
+CYCLSHFT	CA	CONC+S1		# 25252
+		TS	CYR		# C(CYR) = 12525
+		TS	CYL		# C(CYL) = 52524
+		TS	SR		# C(SR) = 12525
+		TS	EDOP		# C(EDOP) = 00125
+		AD	CYR		# 37777		C(CYR) = 45252
+		AD	CYL		# 00-12524	C(CYL) = 25251
+		AD	SR		# 00-25251	C(SR) = 05252
+		AD	EDOP		# 00-25376	C(EDOP) = +0
+		AD	CONC+S2		# C(CONC+S2) = 52400
+		TC	-1CHK
+		AD	CYR		# 45252
+		AD	CYL		# 72523
+		AD	SR		# 77775
+		AD	EDOP		# 77775
+		AD	S+1		# 77776
+		TC	-1CHK
+
+		INCR	SCOUNT +1
+		TC	SMODECHK
+
+# SKEEP1 HOLDS SUM
+# SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES
+# SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY
+# SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS)
+#			       (04000 TO 07777 IN FXFX BANKS)
+# SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY
+# SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER
+# SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS
+# SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION
+# SKEEP7 CONTROLS WHEN ROUTINE IS IN COMMON FIXED OR FIXED FIXED BANKS
+
+ROPECHK		CA	S-ZERO		# *
+		TS	SKEEP6		# * -0 FOR ROPECHK
+STSHOSUM	CA	S+ZERO		# * SHOULD BE ROPECHK
+
+		TS	SKEEP4		# BANK NUMBER
+		CA	S+1
+COMMFX		TS	SKEEP7
+		CA	S+ZERO
+		TS	SKEEP1
+		TS	SKEEP3
+		CA	S+1
+		TS	SKEEP5		# COUNTS DOWN 2 TC SELF WORDS
+COMADRS		CA	SKEEP4
+		TS	L		# TO SET SUPER BANK
+		MASK	HI5
+# Page 1291
+		AD	SKEEP3
+		TC	SUPDACAL	# SUPER DATA CALL
+		TC	ADSUM
+		AD	SBIT11		# 02000
+		TC	ADRSCHK
+
+FXFX		CS	A
+		TS	SKEEP7
+		EXTEND
+		BZF	+3
+		CA	SBIT12		# 04000, STARTING ADDRESS OF BANK 02
+		TC	+2
+		CA	SBNK03		# 06000, STARTING ADDRESS OF BANK 03
+		TS	SKEEP3
+		CA	S+ZERO
+		TS	SKEEP1
+		CA	S+1
+		TS	SKEEP5		# COUNTS DOWN 2 TC SELF WORDS
+FXADRS		INDEX	SKEEP3
+		CA	0000
+		TC	ADSUM
+		TC	ADRSCHK
+
+ADSUM		TS	SKEEP2
+		AD	SKEEP1
+		TS	SKEEP1
+		CAF	S+ZERO
+		AD	SKEEP1
+		TS	SKEEP1
+		CS	SKEEP2
+		AD	SKEEP3
+		TC	Q
+
+ADRSCHK		LXCH	A
+		CA	SKEEP3
+		MASK	LOW10		# RELATIVE ADDRESS
+		AD	-MAXADRS	# SUBTRACT MAX RELATIVE ADDRESS = 1777.
+		EXTEND
+		BZF	SOPTION		# CHECKSUM FINISHED IF LAST ADDRESS.
+		CCS	SKEEP5		# IS CHECKSUM FINISHED
+		TC	+3		# NO
+		TC	+2		# NO
+		TC	SOPTION		# GO TO ROPECHK SHOWSUM OPTION
+		CCS	L		# -0 MEANS A TC SELF WORD.
+		TC	CONTINU
+		TC	CONTINU
+		TC	CONTINU
+		CCS	SKEEP5
+		TC	CONTINU +1
+		CA	S-1
+# Page 1292
+		TC	CONTINU +1	# AD IN THE BUGGER WORD
+CONTINU		CA	S+1		# MAKE SURE TWO CONSECUTIVE TC SELF WORDS
+		TS	SKEEP5
+		CCS	SKEEP6		# *
+		CCS	NEWJOB		# * +1, SHOWSUM
+		TC	CHANG1		# *
+		TC	+2		# *
+		TC	CHECKNJ		# -0 IN SKEEP6 FOR ROPECHK
+
+ADRS+1		INCR	SKEEP3
+		CCS	SKEEP7
+		TC	COMADRS
+		TC	COMADRS
+		TC	FXADRS
+		TC	FXADRS
+
+NXTBNK		CS	SKEEP4
+		AD	LSTBNKCH	# LAST BANK TO BE CHECKED
+		EXTEND
+		BZF	ENDSUMS		# END OF SUMMING OF BANKS.
+		CA	SKEEP4
+		AD	SBIT11
+		TS	SKEEP4		# 37 TO 40 INCRMTS SKEEP4 BY END RND CARRY
+		TC	CHKSUPR
+17TO20		CA	SBIT15
+		ADS	SKEEP4		# SET FOR BANK 20
+		TC	GONXTBNK
+CHKSUPR		MASK	HI5
+		EXTEND
+		BZF	NXTSUPR		# INCREMENT SUPER BANK
+27TO30		AD	S13BITS
+		EXTEND
+		BZF	+2		# BANK SET FOR 30
+		TC	GONXTBNK
+		CA	SIXTY		# FIRST SUPER BANK
+		ADS	SKEEP4
+		TC	GONXTBNK
+NXTSUPR		AD	SUPRCON		# SET BNK 30 + INCR SUPR BNK AND CANCEL
+		ADS	SKEEP4		# ERC BIT OF TEH 37 TO 40 ADVANCE.
+GONXTBNK	CCS	SKEEP7
+		TC	COMMFX
+		CA	S+1
+		TC	FXFX
+		CA	SBIT7		# HAS TO BE LARGER THAN NO OF FXSW BANKS.
+		TC	COMMFX
+
+SOPTION		CA	SKEEP4
+		MASK	HI5		# = BANK BITS
+		TC	LEFT5
+		TS	L		# BANK NUMBER BEFORE SUPER BANK
+# Page 1293
+		CA	SKEEP4
+		MASK	S8BITS		# = SUPER BANK BITS
+		EXTEND
+		BZF	SOPT		# BEFORE SUPER BANK
+		TS	SR		# SUPER BANK NECESSARY
+		CA	L
+		MASK	SEVEN
+		AD	SR
+		TS	L		# BANK NUMBER WITH SUPER BANK
+SOPT		CA	SKEEP6		# *
+		EXTEND			# *
+		BZF	+2		# * ON -0 CONTINUE WITH ROPE CHECK.
+		TC	SDISPLAY	# * ON +1 GO TO DISPLAY OF SUM.
+		CCS	SKEEP1		# FORCE SUM TO ABSOLUTE VALUE.
+		TC	+2
+		TC	+2
+		AD	S+1
+		TS	SKEEP1
+BNKCHK		CS	L		# = - BANK NUMBER
+		AD	SKEEP1
+		AD	S-1
+		TC	-1CHK		# CHECK SUM
+		TC	NXTBNK
+
+		EBANK=	NEWJOB
+LSTBNKCH	BBCON*			# * CONSTANT, LAST BANK.
+
diff --git a/AGS_INITIALIZATION.s b/AGS_INITIALIZATION.s
new file mode 100644
index 0000000..8a507df
--- /dev/null
+++ b/AGS_INITIALIZATION.s
@@ -0,0 +1,229 @@
+# Copyright:	Public domain.
+# Filename:	AGS_INITIALIZATION.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:	206-210
+# Mod history:	2009-05-19 HG	Transcribed from 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 001 of AGC program LMY99 by NASA 2021112-61
+#	16:27 JULY 14, 1969 
+
+# Page 206
+
+# PROGRAM NAME:  AGS INITIALIZIZATION (R47)
+#
+# WRITTEN BY:  RHODE/KILROY/FOLLETT
+#
+# MOD NO.:	0
+# DATE:		23 MARCH 1967
+# MOD BY:	KILROY
+#
+# MOD NO.:	1
+# DATE:		28 OCTOBER 1967
+# MOD BY:	FOLLETT
+#
+# FUNCT. DESC.:	(1) TO PROVIDE THE AGS ABORT ELECTRONICS ASSEMBLY (AEA) WITH THE LEM AND CSM STATE VECTORS
+#		(POSITION,VELOCITY,TIME) IN LEM IMU COORDINATES BY MEANS OF THE LGC DIGITAL DOWNLINK.
+#
+#		(2) TO ZERO THE ICDU, LGC, AND AEA GIMBAL ANGLE COUNTER SIMULTANEOUSLY IN ORDER TO ESTABLISH A
+#		COMMON ZERO REFERENCE FOR THE MEASUREMENT OF GIMBAL (EULER) ANGLES WHICH DEFINE LEM ATTITUDE
+#
+#		(3) TO ESTABLISH THE GROUND ELAPSED TIME OF AEA CLOCK ZERO.  (IF AN AEA CLOCK ZERO IS
+#		REQUESTED DURING THIS PROGRAM
+#
+# LOG SECTION:	AGS INITIALIZATION
+#
+# CALLING SEQ:	PROGRAM IS ENTERED WHEN ASTRONAUT KEYS V47E ON DSKY.
+#		R47 MAY BE CALLED AT ANY TIME EXCEPT WHEN ANOTHER EXTENDED VERB IS IN PROGRESS
+#
+# SUBROUTINES
+# CALLED:
+#
+# NORMAL EXIT:	ENDEXT
+#
+# ALARM/ABORT:	ALARM -- BAD REFSMMAT -- CODE:220
+#		OPERATOR ERROR IF V47 SELECTED DURING ANOTHER EXTENDED VERB.
+#
+# ERASABLES
+# USED:		SAMPTIME	(2)	TIME OF :ENTER: KEYSTROKE
+#		AGSK		(2)	GROUND ELAPSED TIME OF THE AEA CLOCK :ZERO:
+#		AGSBUFF		(140)	CONTAINS AGS INITIALIZATION DATA (SEE :OUTPUT: BELOW)
+#		AGSWORD		(1)	PREVIOUS DOWNLIST SAVED HERE
+
+		EBANK=	AGSBUFF
+
+		BANK	40
+		SETLOC	R47
+		BANK
+
+		COUNT*	$$/R47
+
+AGSINIT		CAF	REFSMBIT
+		MASK	FLAGWRD3			# CHECK REFSMFLG.
+		CCS	A
+# Page 207
+		TC	REDSPTEM			# REFSMMAT IS OK
+		TC	ALARM				# REFSMMAT IS BAD
+		OCT	220
+		TC	ENDEXT
+
+NEWAGS		EXTEND
+		DCA	SAMPTIME			# TIME OF THE :ENTER: KEYSTROKE
+		DXCH	AGSK				# BECOMES NEW AEA CLOCK :ZERO:
+
+REDSPTEM	EXTEND
+		DCA	AGSK
+		DXCH	DSPTEMX
+AGSDISPK	CAF	V06N16
+		TC	BANKCALL			# R1 = 00XXX. HRS., R2 = 000XX MIN.,
+		CADR	GOMARKF				# R3 = 0XX.XX SEC.
+		TC	ENDEXT				# TERMINATE RETURN
+		TC	AGSVCALC			# PROCEED RETURN
+		CS	BIT6				# IS ENTER VIA A V32
+		AD	MPAC
+		EXTEND
+		BZF	NEWAGS				# YES, USE KEYSTROKE TIME FOR NEW AGSK
+
+		EXTEND					# NO, NEW AGSK LOADED VIA V25
+		DCA	DSPTEMX				# LOADED INTO DSPTEMX BY KEYING
+		TC	REDSPTEM -1			# V25E FOLLOWED BY HRS.,MINS.,SECS.
+							# DISPLAY THE NEW K.
+
+AGSVCALC	TC	INTPRET
+		SET
+			NODOFLAG			# DON'T ALLOW V37
+		SET	EXIT
+			XDSPFLAG
+
+		CAF	V06N16
+		TC	BANKCALL
+		CADR	EXDSPRET
+
+		TC	INTPRET				# EXTRAPOLATE LEM AND CSM STATE VECTORS
+		RTB					# TO THE PRESENT TIME
+			LOADTIME			# LOAD MPAC WITH TIME2,TIME1
+		STCALL	TDEC1				# CALCULATE LEM STATE VECTOR
+			LEMPREC
+		CALL					# CALL ROUTINE TO CONVERT TO SM COORDS AND
+			SCALEVEC			# PROVIDE PROPER SCALING
+		STODL	AGSBUFF				# (LEMPREC AND CSMPREC LEAVE TDEC1 IN TAT)
+			TAT				# TAT = TIME TO WHICH RATT1 AND VATT1 ARE
+		STCALL	TDEC1				# COMPUTED (CSEC SINCE CLOCK START B-28).
+			CSMPREC				# CALCULATE CSM STATE VECTOR FOR SAME TIME
+		CALL
+			SCALEVEC
+# Page 208
+		STODL	AGSBUFF +6
+			TAT
+		DSU	DDV				# CALCULATE AND STORE THE TIME
+			AGSK
+			TSCALE
+		STORE	AGSBUFF +12D
+		EXIT
+
+		CAF	LAGSLIST
+		TS	DNLSTCOD
+
+		CAF	20SEC				# DELAY FOR 20 SEC WHILE THE AGS
+		TC	BANKCALL			# DOWNLIST IS TRANSMITTED
+		CADR	DELAYJOB
+
+		CA	AGSWORD
+		TS	DNLSTCOD			# RETURN TO THE OLD DOWNLIST
+		CAF	IMUSEBIT
+		MASK	FLAGWRD0			# CHECK IMUSE FLAG.
+		CCS	A
+		TC	AGSEND				# IMU IS BEING USED -- DO NOT ZERO
+CKSTALL		CCS	IMUCADR				# CHECK FOR IMU USAGE WHICH AVOIDS THE
+		TCF	+3				# IMUSE BIT:  I.E., IMU COMPENSATION.
+		TCF	+6				# FREE.  GO AHEAD WITH THE IMU ZERO.
+		TCF	+1
+ +3		CAF	TEN				# WAIT .1 SEC AND TRY AGAIN.
+ 		TC	BANKCALL
+		CADR	DELAYJOB
+		TCF	CKSTALL
+
+ +6		TC	BANKCALL			# IMU IS NOT IN USE
+ 		CADR	IMUZERO				# SET IMU ZERO DISCRETE FOR 320 MSECS.
+		TC	BANKCALL			# WAIT 3 SEC FOR COUNTERS TO INCREMENT
+		CADR	IMUSTALL
+		TC	AGSEND
+AGSEND		TC	DOWNFLAG			# ALLOW V37
+		ADRES	NODOFLAG
+
+		CAF	V50N16
+		TC	BANKCALL
+		CADR	GOMARK3
+		TCF	ENDEXT
+		TCF	ENDEXT
+		TC	ENDEXT
+
+SCALEVEC	VLOAD	MXV
+			VATT1
+			REFSMMAT
+		VXSC	VSL2
+			VSCALE
+# Page 209
+		VAD	VAD				# THIS SECTION ROUNDS THE VECTOR, AND
+			AGSRND1				# CORRECTS FOR THE FACT THAT THE AGS
+			AGSRND2				# IS A 2'S COMPLEMENT MACHINE WHILE THE
+		RTB					# LGC IS A 1'S COMPLEMENT MACHINE.
+			VECSGNAG
+		STOVL	VATT1
+			RATT1
+		MXV	VXSC
+			REFSMMAT
+			RSCALE
+		VSL8	VAD				# AGAIN THIS SECTION ROUNDS.  TWO VECTORS
+			AGSRND1				# ARE ADDED TO DEFEAT ALSIGNAG IN THE
+		VAD	RTB				# CASE OF A HIGH-ORDER ZERO COUPLED WITH
+			AGSRND2				# A LOW ORDER NEGATIVE PART.
+			VECSGNAG
+		LXA,1
+			VATT1
+		SXA,1	LXA,1
+			MPAC +1
+			VATT1 +2
+		SXA,1	LXA,1
+			MPAC +4
+			VATT1 +4
+		SXA,1	RVQ
+			MPAC +6
+
+LAGSLIST	=	ONE
+V01N14		VN	0114
+V50N00A		VN	5000
+V00N25		EQUALS	OCT31
+V06N16		VN	0616
+V00N34		EQUALS	34DEC
+V50N16		VN	5016
+TSCALE		2DEC	100 B-10			# CSEC TO SEC SCALE FACTOR
+20SEC		DEC	2000
+RSCALE		2DEC	3.280839 B-3			# METERS TO FEET SCALE FACTOR
+VSCALE		2DEC	3.280839 E2 B-9			# METERS/CS TO FEET/SEC SCALE FACTOR
+AGSRND1		2OCT	0000060000
+		2OCT	0000060000
+		2OCT	0000060000
+AGSRND2		2OCT	0000037777
+		2OCT	0000037777
+S# Page 210
+		2OCT	0000037777
+
+		SBANK=	LOWSUPER			# FOR SUBSEQUENT LOW 2CADRS.
+
diff --git a/ALARM_AND_ABORT.s b/ALARM_AND_ABORT.s
new file mode 100644
index 0000000..bd483b2
--- /dev/null
+++ b/ALARM_AND_ABORT.s
@@ -0,0 +1,231 @@
+# Copyright:    Public domain.
+# Filename:     ALARM_AND_ABORT.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 1493-1496
+# Contact:      Ron Burkey <info@sandroid.org>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-07 RSB	Adapted from Colossus249 file of the same
+#				name, and page images. Corrected various 
+#				typos in the transcription of program 
+#				comments, and these should be back-ported  
+#				to Colossus249.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 1483
+# THE FOLLOWING SUBROUTINE MAY BE CALLED TO DISPLAY A NON-ABORTIVE ALARM CONDITION.  IT MAY BE CALLED
+# EITHER IN INTERRUPT OR UNDER EXECUTIVE CONTROL.
+#
+# THE CALLING SEQUENCE IS AS FOLLOWS:
+#		TC	ALARM
+#		OCT	NNNNN
+#					# (RETURNS HERE)
+
+		BLOCK	02
+		SETLOC	FFTAG7
+		BANK
+
+		EBANK=	FAILREG
+
+		COUNT	02/ALARM
+
+# ALARM TURNS ON THE PROGRAM ALARM LIGHT, BUT DOES NOT DISPLAY.
+
+ALARM		INHINT
+
+		CA	Q
+ALARM2		TS	ALMCADR
+		INDEX	Q
+		CA	0
+BORTENT		TS	L
+
+PRIOENT		CA	BBANK
+	+1	EXTEND
+		ROR	SUPERBNK	# ADD SUPER BITS.
+		TS	ALMCADR +1
+
+LARMENT		CA	Q		# STORE RETURN FOR ALARM
+		TS	ITEMP1
+
+		CA	LOC
+		TS	LOCALARM
+		CA	BANKSET
+		TS	BANKALRM
+
+CHKFAIL1	CCS	FAILREG		# IS ANYTHING IN FAILREG
+		TCF	CHKFAIL2	# YES TRY NEXT REG
+		LXCH	FAILREG
+		TCF	PROGLARM	# TURN ALARM LIGHT ON FOR FIRST ALARM
+
+CHKFAIL2	CCS	FAILREG +1
+		TCF	FAIL3
+		LXCH	FAILREG +1
+		TCF	MULTEXIT
+		
+FAIL3		CA	FAILREG +2
+# Page 1494
+		MASK	POSMAX
+		CCS	A
+		TCF	MULTFAIL
+		LXCH	FAILREG +2
+		TCF	MULTEXIT
+		
+PROGLARM	CS	DSPTAB +11D
+		MASK	OCT40400
+		ADS	DSPTAB +11D
+
+MULTEXIT	XCH	ITEMP1		# OBTAIN RETURN ADDRESS IN A
+		RELINT
+		INDEX	A
+		TC	1
+
+MULTFAIL	CA	L
+		AD	BIT15
+		TS	FAILREG +2
+		
+		TCF	MULTEXIT
+
+# PRIOLARM DISPLAYS V05N09 VIA PRIODSPR WITH 3 RETURNS TO THE USER FROM THE ASTRONAUT AT CALL LOC +1,+2,+3 AND
+# AN IMMEDIATE RETURN TO THE USER AT CALL LOC +4.  EXAMPLE FOLLOWS,
+#		CAF	OCTXX		# ALARM CODE
+#		TC	BANKCALL
+#		CADR	PRIOLARM
+#		...	...
+#		...	...
+#		...	...		# ASTRONAUT RETURN
+#		TC	PHASCHNG	# IMMEDIATE RETURN TO USER.  RESTART
+#		OCT	X.1		# PHASE CHANGE FOR PRIO DISPLAY
+
+		BANK	10
+		SETLOC	DISPLAYS
+		BANK
+
+		COUNT	10/DSPLA
+PRIOLARM	INHINT			# * * * KEEP IN DISPLAY ROUTINE'S BANK
+		TS	L		# SAVE ALARM CODE
+
+		CA	BUF2		# 2 CADR OF PRIOLARM USER
+		TS	ALMCADR
+		CA	BUF2 +1
+		TC	PRIOENT +1	# * LEAVE L ALONE
+-2SEC		DEC	-200		# *** DON'T MOVE
+		CAF	V05N09
+		TCF	PRIODSPR
+		
+# Page 1495		
+
+		BLOCK	02
+		SETLOC	FFTAG13
+		BANK
+
+		COUNT	02/ALARM
+		
+BAILOUT		INHINT
+		CA	Q
+		TS	ALMCADR
+		
+		TC	BANKCALL
+		CADR	VAC5STOR
+		
+		INDEX	ALMCADR
+		CAF	0
+		TC	BORTENT
+OCT40400	OCT	40400
+
+		INHINT
+WHIMPER		CA	TWO
+		AD	Z
+		TS	BRUPT
+		RESUME
+		TC	POSTJUMP	# RESUME SENDS CONTROL HERE
+		CADR	ENEMA
+		
+		SETLOC	FFTAG7
+		BANK
+		
+P00DOO		INHINT
+		CA	Q
+		TS	ALMCADR
+
+		TC	BANKCALL
+		CADR	VAC5STOR	# STORE ERASABLES FOR DEBUGGING PURPOSES.
+		
+		INDEX	ALMCADR
+		CAF	0
+ABORT2		TC	BORTENT
+OCT77770	OCT	77770		# DON'T MOVE
+		CA	V37FLBIT	# IS AVERAGE G ON
+		MASK	FLAGWRD7
+		CCS	A
+		TC	WHIMPER -1	# YES.  DON'T DO POODOO.  DO BAILOUT.
+
+		TC	DOWNFLAG
+		ADRES	STATEFLG
+		
+		TC	DOWNFLAG
+		
+# Page 1496
+		ADRES	REINTFLG
+		
+		TC	DOWNFLAG
+		ADRES	NODOFLAG
+		
+		TC	BANKCALL
+		CADR	MR.KLEAN
+		TC	WHIMPER
+		
+CCSHOLE		INHINT
+		CA	Q
+		TS	ALMCADR
+		TC	BANKCALL
+		CADR	VAC5STOR
+		CA	OCT1103
+		TC	ABORT2
+OCT1103		OCT	1103
+CURTAINS	INHINT
+		CA	Q
+		TC	ALARM2
+OCT217		OCT	00217
+		TC	ALMCADR		# RETURN TO USER
+
+DOALARM		EQUALS	ENDOFJOB
+
+# CALLING SEQUENCE FOR VARALARM
+#		CAF	(ALARM)
+#		TC	VARALARM
+# Page 1486
+
+# VARALARM TURNS ON PROGRAM ALARM LIGHT BUT DOES NOT DISPLAY
+
+VARALARM	INHINT
+
+		TS	L		# SAVE USER'S ALARM CODE
+
+		CA	Q		# SAVE USER'S Q
+		TS	ALMCADR
+
+		TC	PRIOENT
+OCT14		OCT	14		# DON'T MOVE
+
+		TC	ALMCADR		# RETURN TO USER
+
+ABORT		EQUALS	BAILOUT		# *** TEMPORARY UNTIL ABORT CALLS OUT
diff --git a/ANGLFIND.s b/ANGLFIND.s
new file mode 100644
index 0000000..0fe2281
--- /dev/null
+++ b/ANGLFIND.s
@@ -0,0 +1,634 @@
+# Copyright:	Public domain.
+# Filename:	ANGLFIND.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:	399-411
+# Mod history:	2009-05-09 RSB	Adapted from the Colossus249/ file 
+#				of the same name, using Comanche055 page 
+#				images.
+#		2009-05-22 RSB	In NOGOM2, TC ZEROEROR corrected to 
+#				CADR ZEROEROR.
+#
+# 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 399
+		BANK	15
+		SETLOC	KALCMON1
+		BANK
+		
+		EBANK=	BCDU
+		
+		COUNT	22/KALC
+		
+KALCMAN3	TC	INTPRET
+		RTB
+			READCDUK	# PICK UP CURRENT CDU ANGLES
+		STORE	BCDU		# STORE THE INITIAL S/C ANGLES
+		AXC,2	TLOAD		# COMPUTE THE TRANSFORMATION FROM
+			MIS		# INITIAL S/C AXES TO STABLE MEMBER AXES
+			BCDU		# (MIS)
+		CALL
+			CDUTODCM	
+		AXC,2	TLOAD		# COMPUTE THE TRANSFORMATION FROM
+			MFS		# FINAL S/C AXES TO STABLE MEMBER AXES
+			CPHI		# (MFS)
+		CALL
+			CDUTODCM
+SECAD		AXC,1	CALL		# MIS AND MFS ARRAYS CALCULATED		$2
+			MIS
+			TRANSPOS
+		VLOAD
+		STADR
+		STOVL	TMIS	+12D
+		STADR
+		STOVL	TMIS	+6
+		STADR
+		STORE	TMIS		# TMIS = TRANSPOSE(MIS) SCALED BY 2
+		AXC,1	AXC,2
+			TMIS
+			MFS
+		CALL
+			MXM3
+		VLOAD	STADR
+		STOVL	MFI	+12D
+		STADR
+		STOVL	MFI	+6
+		STADR
+		STORE	MFI		# MFI = TMIS MFS (SCALED BY 4)
+		SETPD	CALL		# TRANSPOSE MFI IN PD LIST
+			18D
+			TRNSPSPD
+		VLOAD	STADR
+		STOVL	TMFI	+12D
+		STADR
+		STOVL	TMFI	+6
+# Page 400
+		STADR
+		STORE	TMFI		# TMFI = TRANSPOSE (MFI) SCALED BY 4
+		
+# CALCULATE COFSKEW AND MFISYM
+
+		DLOAD	DSU
+			TMFI	+2
+			MFI	+2
+		PDDL	DSU		# CALCULATE COF SCALED BY 2/SIN(AM)
+			MFI	+4
+			TMFI	+4
+		PDDL	DSU
+			TMFI	+10D
+			MFI	+10D
+		VDEF
+		STORE	COFSKEW		# EQUALS MFISKEW
+		
+# CALCULATE AM AND PROCEED ACCORDING TO ITS MAGNITUDE
+
+		DLOAD	DAD
+			MFI
+			MFI	+16D
+		DSU	DAD
+			DP1/4TH
+			MFI	+8D
+		STORE	CAM		# CAM = (MFI0+MFI4+MFI8-1)/2 HALF-SCALE
+		ARCCOS
+		STORE	AM		# AM=ARCCOS(CAM)  (AM SCALED BY 2)
+		DSU	BPL
+			MINANG
+			CHECKMAX
+		EXIT			# MANEUVER LESS THAN 0.25 DEG
+		INHINT			# GO DIRECTLY INTO ATTITUDE HOLD
+		CS	ONE		# ABOUT COMMANDED ANGLES
+		TS	HOLDFLAG	# NOGO WILL STOP ANY RATE AND SET UP FOR A
+		TC	LOADCDUD	# GOOD RETURN
+		TCF	NOGO
+		
+CHECKMAX	DLOAD	DSU
+			AM
+			MAXANG
+		BPL	VLOAD
+			ALTCALC		# UNIT
+			COFSKEW		# COFSKEW
+		UNIT
+		STORE	COF		# COF IS THE MANEUVER AXIS
+		GOTO			# SEE IF MANEUVER GOES THRU GIMBAL LOCK
+			LOCSKIRT
+ALTCALC		VLOAD	VAD		# IF AM GREATER THAN 170 DEGREES
+			MFI
+# Page 401
+			TMFI
+		VSR1
+		STOVL	MFISYM
+			MFI	+6
+		VAD	VSR1
+			TMFI	+6
+		STOVL	MFISYM	+6
+			MFI	+12D
+		VAD	VSR1
+			TMFI	+12D
+		STORE	MFISYM	+12D	# MFISYM=(MFI+TMFI)/2	SCALED BY 4
+		
+# CALCULATE COF
+
+		DLOAD	SR1
+			CAM
+		PDDL	DSU		# PD0 CAM		 	       $4
+			DPHALF
+			CAM
+		BOVB	PDDL		# PD2 1 - CAM			       $2
+			SIGNMPAC
+			MFISYM	+16D
+		DSU	DDV
+			0
+			2
+		SQRT	PDDL		# COFZ = SQRT(MFISYM8-CAM)/(1-CAM)
+			MFISYM	+8D	#			  	 $ ROOT 2
+		DSU	DDV
+			0
+			2
+		SQRT	PDDL		# COFY = SQRT(MFISYM4-CAM)/(1-CAM) $ROOT2
+			MFISYM
+		DSU	DDV
+			0
+			2
+		SQRT	VDEF		# COFX = SQRT(MFISYM-CAM)/(1-CAM) $ROOT 2
+		UNIT
+		STORE	COF
+		
+# DETERMINE LARGEST COF AND ADJUST ACCORDINGLY
+
+COFMAXGO	DLOAD	DSU
+			COF
+			COF	+2
+		BMN	DLOAD		# COFY G COFX
+			COMP12
+			COF
+		DSU	BMN
+			COF	+4
+# Page 402
+			METHOD3		# COFZ G COFX OR COFY
+		GOTO
+			METHOD1		# COFX G COFY OR COFZ
+COMP12		DLOAD	DSU
+			COF	+2
+			COF	+4
+		BMN
+			METHOD3		# COFZ G COFY OR COFX
+			
+METHOD2		DLOAD	BPL		# COFY MAX
+			COFSKEW	+2	# UY
+			U2POS
+		VLOAD	VCOMP
+			COF
+		STORE	COF
+U2POS		DLOAD	BPL
+			MFISYM	+2	# UX UY
+			OKU21
+		DLOAD	DCOMP		# SIGN OF UX OPPOSITE TO UY
+			COF
+		STORE	COF
+OKU21		DLOAD	BPL
+			MFISYM	+10D	# UY UZ
+			LOCSKIRT
+		DLOAD	DCOMP		# SIGN OF UZ OPPOSITE TO UY
+			COF	+4
+		STORE	COF	+4
+		GOTO
+			LOCSKIRT
+METHOD1		DLOAD	BPL		# COFX MAX
+			COFSKEW		# UX
+			U1POS
+		VLOAD	VCOMP
+			COF
+		STORE	COF
+U1POS		DLOAD	BPL
+			MFISYM	+2	# UX UY
+			OKU12
+		DLOAD	DCOMP
+			COF	+2	# SIGN OF UY OPPOSITE TO UX
+		STORE	COF	+2
+OKU12		DLOAD	BPL
+			MFISYM	+4	# UX UZ
+			LOCSKIRT
+		DLOAD	DCOMP		# SIGN OF UZ OPPOSITE TO UY
+			COF	+4
+		STORE	COF	+4
+		GOTO
+			LOCSKIRT
+METHOD3		DLOAD	BPL		# COFZ MAX
+# Page 403
+			COFSKEW	+4	# UZ
+			U3POS
+		VLOAD	VCOMP
+			COF
+		STORE	COF
+U3POS		DLOAD	BPL
+			MFISYM	+4	# UX UZ
+			OKU31
+		DLOAD	DCOMP
+			COF		# SIGN OF UX OPPOSITE TO UZ
+		STORE	COF
+OKU31		DLOAD	BPL
+			MFISYM	+10D	# UY UZ
+			LOCSKIRT
+		DLOAD	DCOMP
+			COF	+2	# SIGN OF UY OPPOSITE TO UZ
+		STORE	COF	+2
+		GOTO
+			LOCSKIRT
+
+# Page 404
+# MATRIX OPERATIONS
+
+MXM3		SETPD			# MXM3 MULTIPLIES 2 3X3 MATRICES
+			0		# AND LEAVES RESULT IN PD LIST
+		DLOAD*	PDDL*		# ADDRESS OF 1ST MATRIX IN XR1
+			12D,2		# ADDRESS OF 2ND MATRIX IN XR2
+			6,2
+		PDDL*	VDEF		# DEFINE VECTOR M2(COL 1)
+			0,2
+		MXV*	PDDL*		# M1XM2(COL 1) IN PD
+			0,1
+			14D,2
+		PDDL*	PDDL*
+			8D,2
+			2,2
+		VDEF	MXV*		# DEFINE VECTOR M2(COL 2)
+			0,1
+		PDDL*	PDDL*		# M1XM2(COL2) IN PD
+			16D,2
+			10D,2
+		PDDL*	VDEF		# DEFINE VECTOR M2(COL 3)
+			4,2
+		MXV*	PUSH		# M1XM2(COL 3) IN PD
+			0,1
+		GOTO
+			TRNSPSPD	# REVERSE ROWS AND COLS IN PD AND
+
+# RETURN WITH M1XM2 IN PD LIST
+TRANSPOS	SETPD	VLOAD*		# TRANSPOS TRANSPOSES A 3X3 MATRIX
+			0		#	AND LEAVES RESULT IN PD LIST
+			0,1		# MATRIX ADDRESS IN XR1
+		PDVL*	PDVL*
+			6,1
+			12D,1
+		PUSH			# MATRIX IN PD
+TRNSPSPD	DLOAD	PDDL		# ENTER WITH MATRIX IN PD LIST
+			2
+			6
+		STODL	2
+		STADR
+		STODL	6
+			4
+		PDDL
+			12D
+		STODL	4
+		STADR
+		STODL	12D
+			10D
+		PDDL
+# Page 405
+			14D
+		STODL	10D
+		STADR
+		STORE	14D
+		RVQ			# RETURN WITH TRANSPOSED MATRIX IN PD LIST
+MINANG		DEC	.00069375
+MAXANG		DEC	.472222
+
+# GIMBAL LOCK CONSTANTS
+
+# D = MGA CORRESPONDING TO GIMBAL LOCK = 60 DEGREES
+# NGL = BUFFER ANGLE (TO AVOID DIVISIONS BY ZERO) = 2 DEGREES
+
+SD		DEC	.433015		# = SIN(D)				$2
+K3S1		DEC	.86603		# = SIN(D)				$2
+K4		DEC	-.25		# = -COS(D)				$2
+K4SQ		DEC	.125		# = COS(D)COS(D)			$2
+SNGLCD		DEC	.008725		# = SIN(NGL)COS(D)			$2
+CNGL		DEC	.499695		# = COS(NGL)				$2
+READCDUK	INHINT			# LOAD T(MPAC) WITH THE CURRENT CDU ANGLES
+		CA	CDUZ
+		TS	MPAC	+2
+		EXTEND
+		DCA	CDUX
+		RELINT
+		TCF	TLOAD	+6
+		BANK	16
+		SETLOC	KALCMON2
+		BANK
+		
+		COUNT*	$$/KALC
+		
+CDUTODCM	AXT,1	SSP		# SUBROUTINE TO COMPUTE DIRECTION COSINE
+		OCT	3		# MATRIX RELATING S/C AXES TO STARLE
+			S1		# MEMBER AXES FROM 3 CDU ANGLES IN T(MPAC)
+		OCT	1		# SET XR1, S1, AND PD FOR LOOP
+		STORE	7
+		SETPD
+			0
+LOOPSIN		SLOAD*	RTB
+			10D,1
+			CDULOGIC
+		STORE	10D		# LOAD PD WITH 0	SIN(PHI)
+		SIN	PDDL		#	       2	COS(PHI)
+			10D		#	       4	SIN(THETA)
+		COS	PUSH		#	       6	COS(THETA)
+		TIX,1	DLOAD		#	       8	SIN(PSI)
+			LOOPSIN		#	      10	COS(PSI)
+			6
+		DMP	SL1
+			10D
+# Page 406
+		STORE	0,2
+		DLOAD
+			4
+		DMP	PDDL
+			0		# (PD6 SIN(THETA)SIN(PHI))
+			6
+		DMP	DMP
+			8D
+			2
+		SL1	BDSU
+			12D
+		SL1
+		STORE	2,2
+		DLOAD
+			2
+		DMP	PDDL		# (PD7 COS(PHI)SIN(THETA)) SCALED 4
+			4
+			6
+		DMP	DMP
+			8D
+			0
+		SL1
+		DAD	SL1
+			14D
+		STORE	4,2
+		DLOAD
+			8D
+		STORE	6,2
+		DLOAD
+			10D
+		DMP	SL1
+			2
+		STORE	8D,2
+		DLOAD
+			10D
+		DMP	DCOMP
+			0
+		SL1
+		STORE	10D,2
+		DLOAD
+			4
+		DMP	DCOMP
+			10D
+		SL1
+		STORE	12D,2
+		DLOAD
+		DMP	SL1		# (PUSH UP 7)
+			8D
+		PDDL	DMP		# (PD7 COS(PHI)SIN(THETA)SIN(PSI)) SCALE 4
+			6
+# Page 407
+			0
+		DAD	SL1		# (PUSH UP 7)
+		STADR			# C7=COS(PHI)SIN(THETA)SIN(PSI)
+		STORE	14D,2
+		DLOAD
+		DMP	SL1		# (PUSH UP 6)
+			8D
+		PDDL	DMP		# (PD6 SIN(THETA)SIN(PHI)SIN(PSI)) SCALE 4
+			6
+			2
+		DSU	SL1		# (PUSH UP 6)
+		STADR
+		STORE	16D,2		# C8=-SIN(THETA)SIN(PHI)SIN(PSI)
+		RVQ			#    +COS(THETA)COS(PHI)
+ENDOCM		EQUALS
+
+		BANK	15
+		SETLOC	KALCMON1
+		BANK
+		
+# CALCULATION OF THE MATRIX DEL.......
+#
+#	*      *               __T           *
+#	DEL = (IDMATRIX)COS(A)+UU (1-COS(A))+UX SIN(A)		SCALED 1
+#
+#             _
+#	WHERE U IS A UNIT VECTOR (DP SCALED 2) ALONG THE AXIS OF ROTATION.
+#	A IS THE ANGLE OF ROTATION (DP SCALED 2).
+#					   _
+#	UPON ENTRY THE STARTING ADDRESS OF U IS COF, AND A IS IN MPAC.
+
+		COUNT	22/KALC
+		
+DELCOMP		SETPD	PUSH		# MPAC CONTAINS THE ANGLE A
+			0
+		SIN	PDDL		# PD0 = SIN(A)
+		COS	PUSH		# PD2 = COS(A)
+		SR2	PDDL		# PD2 = COS(A)				$8
+		BDSU	BOVB		# PD4 = 1-COS(A)			$2
+			DPHALF
+			SIGNMPAC
+			
+# COMPUTE THE DIAGONAL COMPONENTS OF DEL
+
+		PDDL
+			COF
+		DSQ	DMP
+			4
+		DAD	SL3
+# Page 408
+			2
+		BOVB
+			SIGNMPAC
+		STODL	DEL		# UX UX(U-COS(A)) +COS(A)		$1
+			COF	+2
+		DSQ	DMP
+			4
+		DAD	SL3
+			2
+		BOVB	
+			SIGNMPAC
+		STODL	DEL	+8D	# UY UY(1-COS(A)) +COS(A)		$1
+			COF	+4
+		DSQ	DMP
+			4
+		DAD	SL3
+			2
+		BOVB
+			SIGNMPAC
+		STORE	DEL	+16D	# UZ UZ(1-COS(A)) +COS(A)		$1
+		
+# COMPUTE THE OFF-DIAGONAL TERMS OF DEL
+
+		DLOAD	DMP
+			COF
+			COF	+2
+		DMP	SL1
+			4
+		PDDL	DMP		# D6	UX UY (1-COS A)			$ 4
+			COF	+4
+			0
+		PUSH	DAD		# D8	UZ SIN A			$ 4
+			6
+		SL2	BOVB
+			SIGNMPAC
+		STODL	DEL	+6
+		BDSU	SL2
+		BOVB
+			SIGNMPAC
+		STODL	DEL	+2
+			COF
+		DMP	DMP
+			COF	+4
+			4
+		SL1	PDDL		# D6	UX UZ (1-COS A)			$ 4
+			COF	+2
+		DMP	PUSH		# D8	UY SIN(A)
+			0
+		DAD	SL2
+			6
+# Page 409
+		BOVB
+			SIGNMPAC
+		STODL	DEL	+4	# UX UZ (1-COS(A))+UY SIN(A)
+		BDSU	SL2
+		BOVB
+			SIGNMPAC
+		STODL	DEL	+12D	# UX UZ (U-COS(A))-UY SIGN(A)
+			COF	+2
+		DMP	DMP
+			COF	+4
+			4
+		SL1	PDDL		# D6	UY UZ (1-COS(A))		$ 4
+			COF
+		DMP	PUSH		# D6	UX SIN(A)
+			0
+		DAD	SL2
+			6
+		BOVB
+			SIGNMPAC
+		STODL	DEL	+14D	# UY UZ(1-COS(A)) +UX SIN(A)
+		BDSU	SL2
+		BOVB	
+			SIGNMPAC
+		STORE	DEL	+10D	# UY UZ(1-COS(A)) -UX SIN(A)
+		RVQ
+		
+# DIRECTION COSINE MATRIX TO CDU ANGLE ROUTINE
+# X1 CONTAINS THE COMPLEMENT OF THE STARTING ADDRESS FOR MATRIX (SCALED 2)
+# LEAVES CDU ANGLES SCALED 2PI IN V(MPAC)
+# COS(MGA) WILL BE LEFT IN S1 (SCALED 1)
+#
+# THE DIRECTION COSINE MATRIX RELATING S/C AXES TO STABLE MEMBER AXES CAN BE WRITTEN AS ***
+#
+#	C =COS(THETA)COS(PSI)
+#	 0
+#
+#	C =-COS(THETA)SIN(PSI)COS(PHI)+SIN(THETA)SIN(PHI)
+#	 1
+#
+#	C =COS(THETA)SIN(PSI)SIN(PHI)+SIN(THETA)COS(PHI)
+#	 2
+#
+#	C =SIN(PSI)
+#	 3
+#
+#	C =COS(PSI)COS(PHI)
+#	 4
+#
+#	C =-COS(PSI)SIN(PHI)
+#	 5
+#
+#	C =-SIN(THETA)COS(PSI)
+#	 6
+#
+#	C =SIN(THETA)SIN(PSI)COS(PHI)+COS(THETA)SIN(PHI)
+#	 7
+# Page 410
+#	C =-SIN(THETA)SIN(PSI)SIN(PHI)+COS(THETA)COS(PHI)
+#	 8
+#
+#	WHERE	PHI = OGA
+#		THETA = IGA
+#		PSI = MGA
+
+DCMTOCDU	DLOAD*	ARCSIN
+			6,1
+		PUSH	COS		# PD +0		PSI
+		SL1	BOVB
+			SIGNMPAC
+		STORE	S1
+		DLOAD*	DCOMP
+			12D,1
+		DDV	ARCSIN
+			S1
+		PDDL*	BPL		# PD +2		THETA
+			0,1		# MUST CHECK THE SIGN OF COS(THETA)
+			OKTHETA		# TO DETERMINE THE PROPER QUADRANT
+		DLOAD	DCOMP
+		BPL	DAD
+			SUHALFA
+			DPHALF
+		GOTO
+			CALCPHI
+SUHALFA		DSU
+			DPHALF
+CALCPHI		PUSH
+OKTHETA		DLOAD*	DCOMP
+			10D,1
+		DDV	ARCSIN
+			S1
+		PDDL*	BPL		# PUSH DOWN PHI
+			8D,1
+			OKPHI
+		DLOAD	DCOMP		# PUSH UP PHI
+		BPL	DAD
+			SUHALFAP
+			DPHALF
+		GOTO
+			VECOFANG
+SUHALFAP	DSU	GOTO
+			DPHALF
+			VECOFANG
+OKPHI		DLOAD			# PUSH UP PHI
+VECOFANG	VDEF	RVQ
+
+# Page 411
+# ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS
+
+NOGOM2		INHINT			# THIS LOCATION ACCESSED BY A BZMF NOGO -2
+		TC	BANKCALL
+		CADR	ZEROERROR
+		
+NOGO		INHINT
+		TC	STOPRATE
+				
+					# TERMINATE MANEUVER
+		CAF	TWO		# NOTE: ALL RETURNS ARE NOW MADE VIA
+		TC	WAITLIST	# GOODEND
+		EBANK=	BCDU
+		2CADR	ENDMANU
+		
+		TCF	ENDOFJOB
+		
diff --git a/AOSTASK_AND_AOSJOB.s b/AOSTASK_AND_AOSJOB.s
new file mode 100644
index 0000000..59dcc97
--- /dev/null
+++ b/AOSTASK_AND_AOSJOB.s
@@ -0,0 +1,1069 @@
+# Copyright:	Public domain.
+# Filename:	AOSTASK_AND_AOSJOB.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	1485-1506
+# Mod history:	2009-05-27 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#		2009-06-05 RSB	Corrected a memory-bank error type.
+#		2009-06-07 RSB	Corrected a typo.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 1485
+# PROGRAM NAME:		1/ACCS
+# PROGRAM WRITTEN BY: 	BOB COVELLI AND MIKE HOUSTON
+# LAST MODIFICATION:	FEB. 14, 1969 BY G. KALAN
+#
+# PROGRAM DESCRIPTION:
+#	1/ACCS PROVIDES THE INTERFACE BETWEEN THE GUIDANCE PROGRAMS AND THE DIGITAL AUTOPILOT.  WHENEVER THERE IS A
+# 	CHANGE IN THE MASS OF THE VEHICLE, IN THE DEADBAND SELECTED, IN THE VEHICLE CONFIGURATION (ASCENT-DESCENT-
+#	DOCKED), AND DURING A FRESH START OR A RESTART, 1/ACCS IS CALLED TO COMMUNICATE THE DATA CHANGES TO THE DAP.
+#
+# 	THE INPUTS TO 1/ACCS ARE MASS, ACCELERATION (ABDELV), DEADBAND (DB), OFFSET ACCELERATIONS (AOSQ AND AOSR),
+# 	STAGE VERIFY BIT (CHAN30, BIT2), DOCKED BIT (DAPBOOLS, BIT13), DRIFT BIT (DAPBOOLS, BIT8), USEQRJTS (DAPBOOLS,
+# 	BIT14), AND SURFACE FLAG (FLAGWRDB, BIT8), AND CH5MASK.
+#
+#	1/ACCS COMPUTES THE JET ACCELERATIONS (1JACC, 1JACCQ, 1JACCR) AS FUNCTIONS OF MASS.  1JACCU AND 1JACCV ARE
+#	FORMED BY RESOLVING 1JACCQ AND 1JACCR.  IN THE DESCENT CASE, THE DESCENT ENGINE MOMENT ARM (L, PVT-CG) IS ALSO
+# 	COMPUTED AS A FUNCTION OF MASS.  THE RATE OF CHANGE OF ACCELERATION DUE TO ROTATION OF THE GIMBAL (ACCDOTQ,
+#	ACCDOTR) IS ALSO COMPUTED IN THE DESCENT CASE.
+#
+#	AFTER THE ABOVE COMPUTATIONS, THE PROGRAM 1/ACCONT COMPUTES THE RECIPROCAL NET ACCELERATIONS ABOUT THE P, U,
+# 	AND V AXES (2 JETS FOR P-AXIS, BOTH 1 AND 2 JETS FOR U AND V AXES), AND THE RECIPROCAL COAST ACCELERATIONS ABOUT
+# 	THE P, U, AND V AXES.  THE ACCELERATION FUNCTIONS (ACCFCTZ1 AND ACCFCTZ5) ARE ALSO COMPUTED FOR THESE AXES.  THE
+# 	FIRE AND COAST DEADBANDS AND AXISDIST ARE COMPUTED FOR EACH AXIS.  FLAT AND ZONE3LIM, THE WIDTH AND HEIGHT OF THE
+# 	MINIMUM IMPULSE ZONE, ARE COMPUTED.  1/ACCONT ALSO SETS ACCSWU AND ACCSWV, WHICH INDICATE WHEN 1 JET ACCELERATION
+#	IS NOT SUFFICIENT TO PRODUCE MINIMUM ACCELERATION.  AT THE COMPLETION OF 1/ACCS, THE ACCSOKAY BIT IS SET.
+#
+# SUBROUTINES CALLED:
+#	TIMEGMBL
+#	MAKECADR
+#	ROT45DEG
+#
+# CALLING SEQUENCE:
+#		TC	BANKCALL	# (1/ACCS MUST BE CALLED BY BANKCALL)
+#		CADR	1/ACCS
+#
+# NORMAL EXIT:	VIA BANKJUMP
+#
+# ALARM AND EXIT MODES:  NONE
+#
+# INPUT/OUTPUT:  SEE PROGRAM DESCRIPTION.
+#
+# DEBRIS:
+#	ALL OF THE EXECUTIVE TEMPORARY REGISTERS, EXCEPT FIXLOC AND OVFIND, AND THE CORE SET AREA FROM MPAC TO BANKSET.
+#
+# RESTRICTIONS:
+#	1/ACCS MUST BE CALLED BY BANKCALL
+#	EBANK IS SET TO 6, BUT NOT RESTORED.
+# Page 1486
+
+		BANK	20
+		SETLOC	DAPS3
+		BANK
+
+		COUNT*	$$/DAPAO
+
+		EBANK=	AOSQ
+
+# ENTRY IS THROUGH 1/ACCJOB OR 1/ACCSIT WHEN 1/ACCS IS TO BE DONE AS A SEPARATE NOVAC JOB.
+# IT IS POSSIBLE FOR MORE THAN ONE OF THESE JOBS TO BE SET UP CONCURRENTLY.  HOWEVER, SINCE THERE IS NO CHECK OF
+# NEWJOB, A SECOND MANIFESTATION CANNOT BE STARTED UNTIL THE FIRST IS COMPLETED.
+
+1/ACCSET	CAF	ZERO		# ENTRY FROM FRESH START/RESTART CODING.
+		TS	AOSQ		#	NULL THE OFFSET ESTIMATES FOR 1/ACCS.
+		TS	AOSR
+		TS	ALPHAQ		#	NULL THE OFFSET ESTIMATES FOR DOWNLIST
+		TS	ALPHAR
+
+1/ACCJOB	TC	BANKCALL	# 1/ACCS ASSUMES ENTRY VIA BANKCALL.
+		CADR	1/ACCS 	+2	# SKIP EBANK SETTING.
+
+		TC	ENDOFJOB
+
+1/ACCS		CA	EBANK6		# ***** EBANK SET BUT NOT RESTORED *****
+		TS	EBANK
+
+		TC	MAKECADR	# SAVE RETURN SO THAT BUF2 MAY BE USED
+		TS	ACCRETRN
+
+# DETERMINE MASS OF THE LEM.
+
+		CA	DAPBOOLS	# IS THE CSM DOCKED
+		MASK	CSMDOCKD
+		TS	DOCKTEMP	# STORE RECORD OF STATE IN TEMP (MPAC +3).
+		CCS	A
+		CS	CSMMASS		#	DOCKED:  LEMMAS = MASS - CSMMASS
+		AD	MASS		#	LEM ALONE:  LEMMASS = MASS
+		TS	LEMMASS
+
+# ON THE BASIS OF APSFLAG:
+#	SET THE P-AXIS RATE COMMAND LIMIT FOR 2-JET/2-JET CONTROL
+#	SET MPAC, WHICH INDICATES THE PROPER SET OF COEFFICIENTS FOR THE LEM-ALONE F(MASS) CALCULATIONS
+#	ENSURE THAT THE LEM MASS VALUE IS WITHIN THE ACCEPTABLE RANGE
+
+		INHINT
+		CAE	FLGWRD10	# DETERMINE WHETHER STAGED.
+		MASK	APSFLBIT
+		EXTEND
+		BZF	DPSFLITE
+# Page 1487
+		CS	POSMAX		# ASCENT (OR ON LUNAR SURFACE)
+		TS	-2JETLIM	# ALWAYS 2 JETS FOR P-AXIS RATE COMMAND
+		CAF	OCT14		# INITIALIZE INDEX AT 12.
+		TS	MPAC
+		CS	LEMMASS		# CHECK IF MASS TOO HIGH.  CATCH STAGING.
+		AD	HIASCENT
+		EXTEND
+		BZMF	MASSFIX
+		CS	LEMMASS		# CHECK IF MASS TOO LOW.  THIS LIMITS THE
+		AD	LOASCENT	#	DECREMENTING BY MASSMON.
+		EXTEND
+		BZMF	F(MASS)
+
+MASSFIX		ADS	LEMMASS		# STORE THE VIOLATED LIMIT AS LEMMASS.
+		ZL			#	ALSO CORRECT TOTAL MASS, ZEROING THE
+		CCS	DOCKTEMP	#	LOW-ORDER WORD.
+		CAE	CSMMASS		#		DOCKED:  MASS = LEMMASS + CSMMASS
+		AD	LEMMASS		#		LEM ALONE:  MASS = LEMMASS
+		DXCH	MASS
+		TCF	F(MASS)
+
+DPSFLITE	CS	BIT10		# FOUR JETS FOR P-AXIS RATE COMMAND ERRORS
+		TS	-2JETLIM	#	EXCEEDING 1.4 DEG/SEC (SCALED AT 45)
+		CAF	SIX		# INITIALIZE INDEX AT 6.
+		TS	MPAC
+		CS	LEMMASS		# CHECK IF MASS TOO HIGH.  SHOULD NEVER
+		AD	HIDESCNT	# 	OCCUR EXCEPT PERHAPS BEFORE THE PAD
+		EXTEND			#	LOAD IS DONE.
+		BZMF	MASSFIX
+		CS	LEMMASS		# CHECK IF MASS TOO LOW.  THIS LIMITS THE
+		AD	LODESCNT	#	DECREMENTING BY MASSMON.
+		AD	HIASCENT
+		EXTEND
+		BZMF	F(MASS)
+		TCF	MASSFIX
+
+# COMPUTATION OF FUNCTIONS OF MASS
+
+F(MASS)		RELINT
+		CCS	DOCKTEMP
+		TCF	DOCKED		# DOCKED:  USE SEPARATE COMPUTATION.
+		CA	TWO
+STCTR		TS	MPAC 	+1	# J=2,1,0 FOR 1JACCR,1JACCQ,1JACC
+
+		CS	TWO
+		ADS	MPAC		# JX=10,8,6 OR 4,2,0 TO INDEX COEFS.
+
+STCTR1		CAE	LEMMASS
+		INDEX	MPAC
+		AD	INERCONC
+		TS	MPAC 	+2	# MASS + C
+# Page 1488
+		EXTEND
+		INDEX	MPAC
+		DCA	INERCONA
+		EXTEND
+		DV	MPAC 	+2
+		INDEX	MPAC
+		AD	INERCONB
+		INDEX	MPAC 	+1	# 1JACC(J)=A(JX)/(MASS+C(JX) + B(JX)
+		TS	1JACC		# 1JACC(-1)=L,PVT-CG  SCALED AT 8 FEET
+
+		CCS	MPAC 	+1
+		TCF	STCTR
+		TCF	COMMEQS
+		TCF	LRESC
+
+# COEFFQ AND COEFFR ARE COMPUTED IN THIS SECTION.  THEY ARE USED TO RESOLVE Q-R COMPONENTS INTO NON-ORTHOGONAL
+# U AND V COMPONENTS (SEE ROT-TOUV SECTION).
+
+COMMEQS		CS	1JACCR
+		AD	1JACCQ
+		EXTEND
+		BZMF	BIGIQ
+		EXTEND			# EPSILON IS A MEASURE OF COUPLING AND IS
+		DV	1JACCQ		# DEFINED=1-IQ/IR FOR IR GREATER THAN IQ.
+		TS	EPSILON		# THE COMPUTED EXPRESSION IS EQUIVALENT
+		AD	-EPSMAX
+		EXTEND
+		BZMF	GOODEPS1
+		CS	-EPSMAX
+		TS	EPSILON		# EPSILON IS LIMITED TO A MAX. OF .42265
+GOODEPS1	CA	EPSILON
+		EXTEND
+		MP	0.35356
+		AD	.7071
+		TS	COEFFR		# IN THIS CASE WHERE IR IS GREATER THAN
+		CS	POSMAX		# IQ, COEFFQ=-.707(1+.5EPSILON)(1-EPSILON)
+		AD	EPSILON		# AND COEFFR=.707(1+.5EPSILON)
+		EXTEND
+		MP	COEFFR
+		TS	COEFFQ
+		TCF	JACCUV
+BIGIQ		EXTEND			# EPSILON IS DEFINED AS 1-IR/IQ FOR IQ
+		DV	1JACCR		# GREATER THAN IR.  -EPSILON IS COMPUTED
+		TS	-EPSILON	# RATHER THAN EPSILON FOR CONVENIENCE
+		CS	-EPSILON
+		AD	-EPSMAX
+		EXTEND
+		BZMF	GOODEPS2
+		CA	-EPSMAX
+		TS	-EPSILON	# EPSILON IS LIMITED TO A MAX. OF .42265
+# Page 1489
+GOODEPS2	CA	-EPSILON
+		EXTEND
+		MP	0.35356
+		AD	-.7071
+		TS	COEFFQ		# IN THIS CASE WHERE IQ IS GREATER THAN
+		CS	-EPSILON	# IR, COEFFQ=-.707(1+.5EPSILON) AND
+		AD	NEGMAX		# COEFFR=.707(1+.5EPSILON)(1-EPSILON)
+		EXTEND
+		MP	COEFFQ
+		TS	COEFFR
+JACCUV		CS	COEFFQ
+		EXTEND
+		MP	1JACCQ		# 1JACCQ IS SCALED AT PI/4
+		TS	1JACCU		# 1JACCU USED AS TEMPORARY STORAGE
+		CA	COEFFR
+		EXTEND
+		MP	1JACCR
+		AD	1JACCU
+		EXTEND
+		MP	BIT14		# SCALING CHANGED FROM PI/4 TO PI/2
+		TS	1JACCU
+		TS	1JACCV		# SCALED AT PI/2 RADIANS/SEC(2)
+		CCS	MPAC		# COMPUTE L,PVT-CG IF IN DESCENT
+		CAF	ZERO		# ZERO SWITCHES AND GO TO 1/ACCONT IN
+		TS	ALLOWGTS	#	ASCENT
+		TCF	1/ACCONT -1
+
+		CS	TWO
+		TS	MPAC
+		CS	ONE
+		TS	MPAC 	+1
+		TCF	STCTR1
+
+# THIS SECTION COMPUTES THE RATE OF CHANGE OF ACCELERATION DUE TO THE ROTATION OF THE GIMBALS.  THE EQUATION
+# IMPLEMENTED IN BOTH THE Y-X PLANE AND THE Z-X PLANE IS -- D(ALPHA)/DT = TL/I*D(DELTA)/DT, WEHRE
+#	T = ENGINE THRUST FORCE
+#	L = PIVIT TO CG DISTANCE OF ENGINE
+#	I = MOMENT OF INERTIA
+
+LRESC		CAE	ABDELV		# SCALED AT 2(13) CM/SEC(2)
+		EXTEND
+		MP	MASS		# SCALED AT B+16 KGS
+		TC	DVOVSUB		# GET QUOTIENT WITH OVERFLOW PROTECTION
+		ADRES	GFACTM
+
+# MASS IS DIVIDED BY ACCELERATION OF GRAVITY IN ORDER TO MATCH THE UNITS OF IXX,IYY,IZZ, WHICH ARE SLUG-FT(2).
+# THE RATIO OF ACCELERATION FROM PIPAS TO ACCELERATION OF GRAVITY IS THE SAME IN METRIC OR ENGINEERING UNITS, SO
+# THAT IS UNCONVERTED.  2.20462 CONVERTS KG. TO LB.  NOW T IN IN A SCALED AT 2(14).
+
+		EXTEND
+		MP	L,PVT-CG	# SCALED AT 8 FEET.
+# Page 1490		
+		INHINT
+		TS	MPAC
+		EXTEND
+		MP	1JACCR
+		TC	DVOVSUB		# GET QUOTIENT WITH OVERFLOW PROTECTION
+		ADRES	TORKJET1
+
+		TS	ACCDOTR		# SCALED AT PI/2(7)
+		CA	MPAC
+		EXTEND
+		MP	1JACCQ
+		TC	DVOVSUB		# GET QUOTIENT WITH OVERFLOW PROTECTION
+		ADRES	TORKJET1
+
+SPSCONT		TS	ACCDOTQ		# SCALED AT PI/2(7)
+		EXTEND
+		MP	DGBF		# .3ACCDOTQ SCALED AT PI/2(8)
+		TS	KQ
+		CAE	ACCDOTR		# .3ACCDOTR AT PI/2(8)
+		EXTEND
+		MP	DGBF
+		TS	KRDAP
+		EXTEND			# NOW COMPUTE QACCDOT, RACCDOT, THE SIGNED
+		READ	CHAN12		# JERK TERMS.  STORE CHANNEL 12. WITH GIMBAL
+		TS	MPAC 	+1	# DRIVE BITS 9 THROUGH 12 SET LOOP
+		CAF	BIT2		# INDEX TO COMPUTE RACCDOT, THEN QACCDOT.
+		TCF	LOOP3
+		CAF	ZERO		# ACCDOTQ AND ACCDOTR ARE NOT NEGATIVE,
+LOOP3		TS	MPAC		# BECAUSE THEY ARE MAGNITUDES
+		CA	MPAC 	+1
+		INDEX	MPAC		# MASK CHANNEL IMAGE FOR ANY GIMBAL MOTION
+		MASK	GIMBLBTS
+		EXTEND
+		BZF	ZACCDOT		# IF NONE, Q(R)ACCDOT IS ZERO.
+		CA	MPAC 	+1
+		INDEX	MPAC		# GIMBAL IS MOVING.  IS ROTATION POSITIVE.
+		MASK	GIMBLBTS +1
+		EXTEND
+		BZF	FRSTZERO	# IF NOT POSITIVE, BRANCH
+		INDEX	MPAC		# POSITIVE ROTATION, NEGATIVE Q(R)ACCDOT.
+		CS	ACCDOTQ
+		TCF	STACCDOT
+FRSTZERO	INDEX	MPAC		# NEGATIVE ROTATION, POSITIVE Q(R)ACCDOT.
+		CA	ACCDOTQ
+		TCF	STACCDOT
+ZACCDOT		CAF	ZERO
+STACCDOT	INDEX	MPAC
+		TS	QACCDOT		# STORE Q(R)ACCDOT.
+		CCS	MPAC
+		TCF	LOOP3 	-1	# NOW DO QACCDOT.
+# Page 1491
+		CS	DAPBOOLS	# IS GIMBAL USABLE?
+		MASK	USEQRJTS
+		EXTEND
+		BZF	DOWNGTS		# NO. BE SURE THE GIMBAL SWITCHES ARE DOWN
+		CS	T5ADR		# YES.  IS THE DAP RUNNINT?
+		AD	PAXISADR
+		EXTEND
+		BZF	+2
+		TCF	DOWNGTS		# NO. BE SURE THE GIMBAL SWITCHES ARE DOWN
+		CCS	INGTS		# YES.  IS GTS IN CONTROL?
+		TCF	DOCKTEST	# YES.  PROCEED WITH 1/ACCS.
+		TC	IBNKCALL	# NO. NULL OFFSET AND FIND ALLOWGTS
+		CADR	TIMEGMBL
+
+DOCKTEST	CCS	DOCKTEMP	# BYPASS 1/ACCONT WHEN DOCKED.
+		TCF	1/ACCRET
+		TCF	1/ACCONT
+
+# Page 1492
+# SUBROUTINE:	DVOVSUB
+# AUTHOR:	C. WORK, MOD 0, 12 JUNE 68
+# PURPOSE:	THIS SUBROUTINE PROVIDES A SINGLE-PRECISION MACHINE LANGUAGE DIVISION OPERATION WHICH RETURNS
+#		(1) THE QUOTIENT, IF THE DIVISION WAS NORMAL.
+#		(2) NEGMAX, IF THE QUOTIENT WAS IMPROPER AND NEGATIVE.
+#		(3) POSMAX, IF THE QUOTIENT WAS IMPROPER AND POSITIVE OR IF THERE WAS A ZERO DIVISOR.
+#		THE CALLING PROGRAM IS PRESUMED TO BE A JOB IN THE F BANK WHICH CONTAINS DVOVSUB.  E BANK MUST BE 6.
+#		THE DIVISOR FOR THIS ROUTINE MAY BE IN EITHER FIXED OR ERASABLE STORAGE.  SIGN AGREEMENT IS
+#		ASSUMED BETWEEN THE TWO HALVES OF THE DIVIDEND.  (THIS IS CERTAIN IF THE A AND L REGISTERS ARE THE
+#		RESULT OF A MULTIPLICATION OPERATION.)
+# CALL SEQUENCE:	L	TC	DVOVSUB
+#			L +1	ADRES	(DIVISOR)
+#			L +2	RETURN HERE, WITH RESULT IN A,L
+# INPUT:	DIVIDEND IN A,L (SIGN AGREEMENT ASSUMED), DIVISOR IN LOCATION DESIGNATED BY "ADRES".
+#		DIVISOR MAY BE IN THE DVOVSUB FBANK,FIXED-FIXED FBANK,EBANK 6, OR UNSWITCHED ERASABLE.
+# OUTPUT:	QUOTIENT AND REMAINDER, OR POSMAX (NEGMAX), WHICHEVER IS APPROPRIATE.
+# DEBRIS:	SCRATCHX,SCRATCHY,SCRATCHZ,A,L	(NOTE: SCRATCHX,Y,Z ARE EQUATED TO MPAC +4,+5, AND +6.)
+# ABORTS OR ALARMS:  NONE
+# EXITS:	TO THE CALL POINT +2.
+# SUBROUTINES CALLED:  NONE.
+
+DVOVSUB		TS	SCRATCHY	# SAVE UPPER HALF OF DIVIDEND
+		TS	SCRATCHX
+		INDEX	Q		# OBTAIN ADDRESS OF DIVISOR.
+		CA	0
+		INCR	Q		# STEP Q FOR PROPER RETURN SEQUENCE.
+		INDEX	A
+		CA	0		# PICK UP THE DIVISOR.
+		EXTEND			# RETURN POSMAX FOR A ZERO DIVISOR.
+		BZF	MAXPLUS
+
+		TS	SCRATCHZ	# STORE DIVISOR.
+
+		CCS	A		# GET ABS(DIVISOR) IN THE A REGISTER.
+		AD	BIT1
+		TCF	ZEROPLUS
+		AD	BIT1
+
+ZEROPLUS	XCH	SCRATCHY	# STORE ABS(DIVISOR).  PICK UP TOP HALF OF
+		EXTEND			# DIVIDENT.
+		BZMF	GOODNEG		# GET -ABS(DIVIDEND)
+# Page 1493
+		CS	A
+
+GOODNEG		AD	SCRATCHY	# ABS(DIVISOR) - ABS(DIVIDEND)
+		EXTEND
+		BZMF	MAKEMAX		# BRANCH IF DIVISION IS NOT PROPER.
+
+		CA	SCRATCHX	# RE-ESTABLISH THE DIVIDEND
+		EXTEND
+		DV	SCRATCHZ	# QUOTIENT IN THE A, REMAINDER IN L.
+		TC	Q		# RETURN TO CALLER.
+
+MAKEMAX		CCS	SCRATCHX	# DETERMINE THE SIGN OF THE QUOTIENT.
+		CCS	SCRATCHZ	# SCRATCHX AND SCRATCHZ ARE NON-ZERO.
+		TCF	MAXPLUS
+		CCS	SCRATCHZ
+		CAF	NEGMAX		# +,- OR -,+
+		TC	Q
+MAXPLUS		CAF	POSMAX		# -,- OR +,+
+		TC	Q
+
+# COEFFICIENTS FOR THE JET ACCELERATION CURVE FITS
+# THE CURVE FITS ARE OF THE FORM --
+#
+#	1JACC = A/(MASS + C) + B
+#
+# A IS SCALED AT PI/4 RAD/SEC**2 B+16KG, B IS SCALED AT PI/4 RAD/SEC**2, AND C IS SCALED AT B +16 KG.
+#
+# THE CURVE FIT FOR L,PVT-CG IS OF THE SAME FORM, EXCEPT THAT A IS SCALED AT 8 FT B+16 KG, B IS SCALED AT 8 FT,
+# AND C IS SCALED AT B+16 KG.
+
+		2DEC	+.0410511917	# L		A		DESCENT
+		
+INERCONA	2DEC	+.0059347674	# 1JACCP	A		DESCENT
+
+		2DEC	+.0014979264	# 1JACCQ	A		DESCENT
+		
+		2DEC	+.0010451889	# 1JACCR	A		DESCENT
+		
+		2DEC	+.0065443852	# 1JACCP	A		ASCENT
+		
+		2DEC	+.0035784354	# 1JACCQ	A		ASCENT
+		
+		2DEC	+.0056946631	# 1JACCR	A		ASCENT
+		
+		DEC	+.155044	# L		B		DESCENT
+		DEC	-.025233	# L		C		DESCENT
+# Page 1494
+INERCONB	DEC	+.002989	# 1JACCP	B		DESCENT
+INERCONC	DEC	+.008721	# 1JACCP	C		DESCENT
+		DEC	+.018791	# 1JACCQ	B		DESCENT
+		DEC	-.068163	# 1JACCQ	C		DESCENT
+		DEC	+.021345	# 1JACCR	B		DESCENT
+		DEC	-.066027	# 1JACCR	C		DESCENT
+
+		DEC	+.000032	# 1JACCP	B		ASCENT
+		DEC	-.006923	# 1JACCP	C		ASCENT
+		DEC	+.162862	# 1JACCQ	B		ASCENT
+		DEC	+.002588	# 1JACCQ	C		ASCENT
+		DEC	+.009312	# 1JACCR	B		ASCENT
+		DEC	-.023608	# 1JACCR	C		ASCENT
+
+GIMBLBTS	OCTAL	01400
+		OCTAL	01000
+		OCTAL	06000
+		OCTAL	04000
+DGBF		DEC	0.6		# .3 SCALED AT 1/2
+0.35356		DEC	0.35356		# .70711 SCALED AT 2
+GFACTM		OCT	337		# 979.24/2.20462 AT B+15
+.7071		DEC	.70711
+-.7071		DEC	-.70711
+-EPSMAX		DEC	-.42265
+
+# CSM-DOCKED INERTIA COMPUTATIONS
+
+DOCKED		CA	ONE		# COEFTR  = 1 FOR INERTIA COEFFICIENTS
+SPSLOOP1	TS	COEFCTR		#         = 7 FOR CG COEFFICIENTS
+		CA	ONE		# MASSCTR = 1 FOR CSM
+		TS	MASSCTR		#         = 0 FOR LEM
+
+		INDEX	COEFCTR
+		CA	COEFF 	-1	# COEFF -1 = C
+		EXTEND
+		MP	LEMMASS
+		EXTEND
+		MP	CSMMASS		# LET X = CSMMASS AND Y = LEMMASS
+
+		INDEX	COEFCTR
+		AD	COEFF		# COEFF = F
+		TS	MPAC		# MPAC = C X Y + F
+		TCF	+4
+
+SPSLOOP2	TS	MASSCTR		# LOOP TWICE THROUGH HERE TO OBTAIN
+		EXTEND			# MPAC = MPAC + (A X +D)X + (B Y +E)Y
+		DIM	COEFCTR		#		 LOOP #1     LOOP #2
+		INDEX	COEFCTR
+		CA	COEFF 	+2	# COEFF +2 = A OR B
+		EXTEND
+# Page 1495
+		INDEX	MASSCTR
+		MP	LEMMASS
+		INDEX	COEFCTR
+		AD	COEFF 	+4	# COEFF +4 = E OR D
+		EXTEND
+		INDEX	MASSCTR
+		MP	LEMMASS
+		ADS	MPAC
+
+		CCS	MASSCTR
+		TCF	SPSLOOP2
+		CCS	COEFCTR		# IF COEFCTR IS POS, EXIT FROM LOOP WITH
+		TCF	+7		# CG X DELDOT = MPAC X 4 PI RAD-CM/SEC
+TORQCONS	2DEC	0.51443 B-14	# CORRESPONDS TO 500 LB-FT
+
+		CA	MPAC
+		TS	MPAC 	+1	# INERTIA = (MPAC +1) X 2(38) KG-CM(2)
+		CA	SEVEN
+		TCF	SPSLOOP1
+
+		CA	1JACCCON	# 1JACC=1JACCCON/MASS
+		ZL
+		TC	DVOVSUB
+		ADRES	MASS
+		TS	1JACC		# SCALED AT PI/4
+
+		CA	POSMAX		# SET INVERSE JET ACCELERATIONS TO POSMAX,
+		TS	1/ANETP		# WHICH CORRESPONDS TO ACCEL. OF 1.4 D/SS.
+		TS	1/ANET2 +1
+		TS	1/ANET2 +2
+		TS	1/ANET2 +17D
+		TS	1/ANET2 +18D
+		EXTEND
+		DCA	TORQCONS
+		EXTEND
+		DV	MPAC 	+1
+		INHINT
+		TS	1JACCQ		# SCALED AT PI/4
+		TS	1JACCR
+
+		CA	-.7071
+		TS	COEFFQ		# COEFFQ AND COEFFR ARE CHOSEN TO MAKE U-
+		CA	.7071		# AND V-AXES ORTHOGONAL FOR DOCKED CASE
+		TS	COEFFR
+		CA	MASS		# SCALED AT 2(16) KG
+		EXTEND
+		MP	MPAC		# SCALED AT 4 PI RAD-CM/SEC
+		EXTEND
+		MP	ABDELV		# SCALED AT 2(13) CM/SEC(2)
+		TC	DVOVSUB		# GET QUOTIENT WITH OVERFLOW PROTECTION
+# Page 1496
+		ADRES	MPAC 	+1
+
+		TS	ACCDOTR
+		TCF	SPSCONT		# CONTINUE K, KSQ CALCULATIONS
+
+1JACCCON	OCT	00167		# SCALED AT PI/4X2(16) RAD/SEC(2)-KG
+
+#                                               2     2
+# COEFFICIENTS FOR CURVE FIT OF THE FORM Z = A X  +B Y  +C X Y +D X +E Y +F
+
+COEFF		DEC	.19518		# C  COEFFICIENT OF INERTIA
+		DEC	-.00529		# F             "
+		DEC	-.17670		# B             "
+		DEC	-.03709		# A             "
+		DEC	.06974		# E             "
+		DEC	.02569		# D             "
+
+		DEC	.20096		# C  COEFFICIENT OF CG
+		DEC	.13564		# F          "
+		DEC	.75704		# B          "
+		DEC	-.37142		# A          "
+		DEC	-.63117		# E          "
+		DEC	.41179		# D          "
+
+# ASSIGNMENT OF TEMPORARIES FOR 1/ACCS (EXCLUDING 1/ACCONT)
+# MPAC, MPAC +1, MPAC +2  USED EXPLICITLY
+COEFCTR 	EQUALS	MPAC 	+4
+MASSCTR		EQUALS	MPAC 	+5
+SCRATCHX	EQUALS	MPAC 	+4	# SCRATCH AREA FOR DVOVSUB ROUTINE.
+SCRATCHY	EQUALS	SCRATCHX +1
+SCRATCHZ	EQUALS	SCRATCHX +2
+
+DOCKTEMP	EQUALS	MPAC 	+3	# RECORD OF CSMDOCKED BIT OF DAPBOOLS
+EPSILON		EQUALS	MPAC 	+1
+-EPSILON	EQUALS	EPSILON
+-.1875		DEC	-.18750
+
+# Page 1497
+		BANK	20
+		SETLOC	DAPS3
+		BANK
+
+		EBANK=	AOSQ
+
+		COUNT*	$$/DAPAO
+
+	-1	TS	INGTS		# ZERO INGTS IN ASCENT
+1/ACCONT	CA	DB		# INITIALIZE DBVAL1,2,3
+		EXTEND
+		MP	BIT13
+		TS	L		# 0.25 DB
+		AD	A
+		TS	DBVAL3		# 0.50 DB
+		CS	DBVAL1
+		AD	L
+		TS	DBVAL2		# -.75 DB
+
+GETAOSUV	INHINT
+		CAE	AOSR		# COMPUTE ASOU AND AOSV BY ROTATING
+		TS	L		#	AOSQ AND AOSR.
+		CAE	AOSQ
+		TC	IBNKCALL
+		CADR	ROT-TOUV
+		DXCH	AOSU
+
+		RELINT
+		CA	DAPBOOLS
+		MASK	DRIFTBIT	# ZERO DURING ULLAGE AND POWERED FLIGHT.
+		CCS	A		# IF DRIFTING LIGHT,
+		CA	ONE		# 	SET DRIFTER TO 1
+		TS	DRIFTER		# SAVE TO TEST FOR DRIFTING FLIGHT LATER
+		AD	ALLOWGTS	# NON-ZERO IF DRIFT OR GTS NEAR
+		CCS	A
+		CA	FLATVAL		# DRIFTING FLIGHT, STORE .8 IN FLAT
+		TS	FLATEMP		# IN POWERED FLIGHT, STORE ZERO IN FLAT
+		EXTEND
+		BZF	DOPAXIS		# IF POWERED AND NO GTS, START P AXIS,
+		CCS	DRIFTER		# OTHERWISE SET ZONE3LIM
+		CA	ZONE3MAX	# 17.5 MS, SCALED AT 4 SECONDS.
+		TS	Z3TEM
+
+DOPAXIS		CA	1JACC		# 1JACC AT PI/4 = 2JACC AT PI/2 =
+					# ANET AT PI/2 = ANET/ACOAST AT 2(6).
+		AD	BIT9		# 1 + ANET/ACOAST AT 2(6)
+		TS	FUNTEM
+
+		CA	1JACC
+# Page 1498
+		TC	INVERT
+		INHINT			# P AXIS DATA MUST BE CONSISTENT
+		TS	1/ANETP		# SCALED AT 2(7)/PI.
+		TS	1/ANETP +1
+
+		CS	BIT9		# -1 AT 2(6)
+		EXTEND
+		MP	1/ANETP		# -1/ANET AT 2(13)/PI
+		EXTEND
+		DV	FUNTEM		# -1/(ANET + ANET**2/ACOAST) AT 2(7)/PI
+		TS	PACCFUN
+		TS	PACCFUN +1
+
+		CA	1/.03		# NO AOS FOR P AXIS, ACOAST = AMIN
+		TS	1/ACOSTP
+		TS	1/ACOSTP +1
+		RELINT
+
+		ZL
+		CCS	DRIFTER
+		DXCH	AOSU		# ZERO AOSU,V IF IN DRIFT, JUST TO BE SURE
+
+UAXIS		CA	ZERO		# DO U AXIS COMPUTATIONS
+		TS	UV		# ZERO FOR U AXIS, ONE FOR V AXIS.
+
+BOTHAXES	TS	SIGNAOS		# CODING COMMON TO U,V AXES
+		INDEX	UV
+		CCS	AOSU		# PICK UP ABS(AOSU OR AOSV)
+		AD	ONE		# RESTORE TO PROPER VALUE
+		TCF	+3		# AND LEAVE SIGNAOS AT ZERO
+		AD	ONE		# NEGATIVE, RESTORE TO PROPER VALUE
+		INCR	SIGNAOS		# AND SET SIGNAOS TO ONE TO SHOW AOS NEG
+		TS	ABSAOS		# SAVE ABS(AOS)
+		CS	SIGNAOS
+		TS	-SIGNAOS	# USED AS AN INDEX
+
+		CA	DBVAL1		# SET DB1, DB2 TO DBVAL1 (= DB)
+		TS	DBB1
+		TS	DBB2
+
+		CA	ABSAOS		# TEST MAGNITUDE OF ABS(AOS)
+		AD	-.03R/S2
+		EXTEND
+		BZMF	NOTMUCH		# ABS(AOS) LESS THAN AMIN
+BIGAOS		CCS	FLATEMP		# AGS(AOS) GREATER THAN AMIN
+		TCF	SKIPDB1		# I DRIFT OR GTS, DO NOT COMPUTE DB
+
+		CA	DBVAL1
+		INDEX	-SIGNAOS
+# Page 1499
+		ADS	DBB2		# DB2(1) = 2 DB
+		INDEX	SIGNAOS
+		TS	DBB4		# DB4(3) = 1 DB
+		CA	-.1875		# -.1875 PI/2 RAD/SEC(2) SCALED AT PI/2
+		AD	ABSAOS		# ABSAOS IS SCALED AT PI/2
+		EXTEND
+		BZMF	+3
+		CS	DBVAL3		# -.5 DB
+		TCF	DBONE
+		CS	ABSAOS
+		DOUBLE
+		DOUBLE
+		AD	BIT14
+		DOUBLE			# 1-8 ABSAOS.  (8 IS 16/PI SCALED AT 2/PI)
+		EXTEND
+		MP	DB
+DBONE		INDEX	SIGNAOS		# DB1(2)=(1-8 ABSAOS) DB.  IF ABSAOS IS
+		TS	DBB1		# GREATER THAN .1875 THEN DB1(2) = -.5 DB
+		CA	DBVAL2
+		INDEX	-SIGNAOS
+		TS	DBB3		# DB3(4) = -.75 DB
+
+SKIPDB1		CA	ABSAOS		# ABS(AOS) GREATER THAN AMIN, SO IT IS
+		EXTEND
+		MP	BIT12
+		AD	ABSAOS		# (9/8) ABSAOS.
+		TC	INVERT		# ALL RIGHT TO DIVIDE
+		INDEX	-SIGNAOS
+		TS	1/ACOSTT +1	# 1/ACOASTPOS(NET) = 1/ABS(AOS)
+		CA	1/.03
+		INDEX	SIGNAOS
+		TS	1/ACOSTT	# 1/ACOASTNEG(POS) = 1/AIN
+
+		CA	ABSAOS
+		AD	1JACCU
+		AD	1JACCU		# 2 JACC + ABS(AOS)
+		AD	BIT9		# MAXIMUM VALUE IN COMPUTATIONS
+		TS	A		# TEST FOR OVERFLOW
+		TCF	SKIPDB2		# NO OVERFLOW, DO NORMAL COMPUTATION
+
+		CA	ABSAOS		# RESCALE TO PI TO PREVENT OVERFLOW
+		EXTEND
+		MP	BIT14
+		AD	1JACCU		# 1 JACC AT PI/2 = 2JACC AT PI
+		TS	ANET		# ANETPOS(NEG) MAX SCALED AT PI =
+					# ANETPOS(NEG) MAX/ACOASTNEG(POS) AT 2(7)
+		AD	BIT8		# 1 + ANETPOS/ACOASTNEG AT 2(7)
+		XCH	ANET		# SAVE IN ANET, WHILE PICKING UP ANET
+		TC	INVERT
+		EXTEND
+# Page 1500
+		MP	BIT14		# SCALE 1/ANET AT 2(7)/PI
+		TS	1/ANET
+
+		CA	ACCHERE		# SET UP RETURN FROM COMPUTATION ROUTINE
+		TS	ARET
+		CS	BIT8		# -1 AT 2(7)
+		TCF	DOACCFUN	# FINISH ACCFUN COMPUTATION
+
+ACCHERE		TCF	ACCTHERE
+
+NOTMUCH		TS	L		# ABS(AOS) LESS THAN AMIN, SAVE IN L
+		CA	1/.03		# ACOASTPOS,NEG = AMIN
+		TS	1/ACOSTT
+		TS	1/ACOSTT +1
+
+		CCS	FLATEMP
+		TCF	SKIPDB2		# DO NOT COMPUTE DB IF DRIFT OR GTS
+
+		CA	.0125RS		# AMIN/2
+		AD	L		# L HAS ABS(AOS) - AMIN
+		EXTEND			# RESULT IS ABS(AOS)- AMIN/2
+		BZMF	NOAOS		# ABS(AOS) LESS THAN AMIN/2
+		
+SOMEAOS		CA	DBVAL3		# AMIN/2 LT ABS(AOS) LT AMIN
+		INDEX	-SIGNAOS
+		TS	DBB3		# DB3(4) = DB/2
+		AD	A
+		INDEX	SIGNAOS
+		TS	DBB4		# DB4(3) = DB
+		TCF	SKIPDB2
+
+NOAOS		CA	DBVAL1
+		TS	DBB3		# DB3,4 = DB
+		TS	DBB4
+
+SKIPDB2		CA	ABSAOS		# ANETPOS(NEG) MAX = 2 JACC + ABS(AOS)
+		AD	1JACCU
+		AD	1JACCU
+		TS	ANET		# CANNOT OVERFLOW HERE
+CL1/NET+	TC	DO1/NET+	# COMPUTE 1/ANET, ACCFUN
+
+ACCTHERE	INDEX	-SIGNAOS
+		TS	Z5TEM 	+2	# STORE ACCFUN IN TEMPORARY BUFFER
+		CA	1/ANET
+		INDEX	-SIGNAOS
+		TS	1/ATEM2 +2	# STORE 1/ANET IN TEMPORARY BUFFER
+
+		CA	ABSAOS		# SEE IF OVERFLOW IN MIN CASE
+		AD	1JACCU
+# Page 1501		
+		AD	BIT9		# MAXIMUM POSSIBLE VALUE
+		TS	A		# OVERFLOW POSSIBLE BUT REMOTE
+		TCF	+2
+		CA	POSMAX		# IF OVERFLOW, TRUNCATE TO PI/2
+		AD	-.03R/S2	# RESTORE TO CORRECT VALUE
+		TS	ANET
+		TC	DO1/NET+	# COMPUTE 1/ANET, ACCFUN
+
+		INDEX	-SIGNAOS	# STORE MIN VALUES JUST AS MAX VALUES
+		TS	Z5TEM
+		CA	1/ANET
+		INDEX	-SIGNAOS
+		TS	1/ATEM2
+
+		CS	ABSAOS		# NOW DO NEG(POS) CASES
+		AD	1JACCU
+		AD	1JACCU		# ANETNEG(POS) MAX
+		TC	1/ANET-		# COMPUTE 1/ANET, ACCFUN, AND ACCSW
+		INDEX	SIGNAOS		# STORE NEG(POS) VALUES JUST AS POS(NEG)
+		TS	Z1TEM 	+2
+		TS	L		# SAVE IN L FOR POSSIBLE FUTURE USE
+		CA	1/ANET
+		INDEX	SIGNAOS
+		TS	1/ATEM1 +2
+		CS	ABSAOS
+		AD	1JACCU		# 1/ANETNEG(POS) MIN
+		TS	ANET
+		AD	-.03R/S2	# TEST FOR AMIN
+		EXTEND			# IF ANET LESS THAN AMIN, STORE MAX JET
+		BZMF	FIXMIN		# VALUES FOR MIN JETS AND SET ACCSW
+
+		TC	1/NETMIN	# OTHERWISE DO MIN JET COMPUTATIONS
+STMIN-		INDEX	SIGNAOS		# STORE VALUES
+		TS	Z1TEM
+		CA	1/ANET
+		INDEX	SIGNAOS
+		TS	1/ATEM1
+
+		INDEX	UV
+		CA	+UMASK
+		MASK	CH5MASK		# TEST FOR +U (+V) JET FAILURES
+		EXTEND
+		BZF	FAIL-
+		CA	1/ATEM2		# REPLACE FUNCTION VALUES DEPENDING ON THE
+		TS	1/ATEM2 +2	# FAILED JET PAIR WITH CORRESPONDING ONE-
+		CA	Z5TEM		# JET (OR AMIN) FUNCTION VALUES
+		TS	Z5TEM 	+2
+FAIL-		INDEX	UV
+# Page 1502
+		CA	-UMASK
+		MASK	CH5MASK		# TEST FOR -U (-V) JET FAILURES
+		EXTEND
+		BZF	DBFUN
+		CA	1/ATEM1		# REPLACE FUNCTION VALUES DEPENDING ON THE
+		TS	1/ATEM1 +2	# FAILED JET PAIR WITH CORRESPONDING ONE-
+		CA	Z1TEM		# JET (OR AMIN) FUNCTION VALUES
+		TS	Z1TEM 	+2
+
+DBFUN		CS	DBB3		# COMPUTE AXISDIST
+		AD	DBB1
+		AD	FLATEMP
+		TS	AXDSTEM
+		CS	DBB4
+		AD	DBB2
+		AD	FLATEMP
+		TS	AXDSTEM +1
+
+		INHINT
+		CCS	UV		# TEST FOR U OR V AXIS
+		TCF	STORV		# V AXIS 	STORE V VALUES
+
+		CA	ACCSW		# U AXIS 	STORE U VALUES
+		TS	ACCSWU
+
+		CA	NINE		# TRANSFER 10 WORDS VIA GENTRAN
+		TC	GENTRAN +1
+		ADRES	1/ATEM1		# TEMPORARY BUFFER
+		ADRES	1/ANET1		# THE REAL PLACE
+
+		RELINT
+		DXCH	DBB1		# SAVE U DBS FOR LATER STORING
+		DXCH	UDB1
+		DXCH	DBB4
+		DXCH	UDB4
+
+		DXCH	AXDSTEM
+		DXCH	UAXDIST
+
+		CA	ONE		# NOW DO V AXIS
+		TS	UV
+		CA	ZERO
+		TCF	BOTHAXES	# AND DO IT AGAIN
+
+STORV		CA	ACCSW		# STORE V AXIS VALUES
+		TS	ACCSWV
+		CA	NINE
+		TC	GENTRAN +1
+# Page 1503		
+		ADRES 	1/ATEM1		# TEMPORARY BUFFER
+		ADRES	1/ANET1 +16D	# THE REAL PLACE
+
+					# NOW STORE DEADBANDS FOR ALL AXES
+		DXCH	FLATEMP		# FLAT AND ZONE3LIM
+		DXCH	FLAT
+
+		CA	DBVAL1		# COMPUTE P AXIS DEADBANDS
+		TS	PDB1
+		TS	PDB2
+		AD	FLAT
+		TS	PDB3
+		TS	PDB4
+		CA	ZERO
+		TS	PAXDIST
+		TS	PAXDIST +1
+
+		CCS	FLAT
+		TCF	DRFDB		# DRIFT OR GTS -- COMPUTE DBS
+
+		DXCH	UDB1		# STORE U DEADBANDS
+		DXCH	FIREDB		# CANNOT USE GENTRAN BECAUSE OF RELINT
+		DXCH	UDB4
+		DXCH	COASTDB
+		DXCH	UAXDIST
+		DXCH	AXISDIST
+		DXCH	DBB1		# STORE V AXIS DEADBANDS
+		DXCH	FIREDB 	+16D	# COULD USE GENTRAN IF DESIRED
+		DXCH	DBB4
+		DXCH	COASTDB +16D
+		DXCH	AXDSTEM
+		DXCH	AXISDIST +16D
+
+		TCF	1/ACCRET +1	# ALL DONE
+DRFDB		CA	DBVAL1		# DRIFT DEADBANDS
+		TS	FIREDB
+		TS	FIREDB 	+1
+		TS	FIREDB 	+16D
+		TS	FIREDB 	+17D
+		AD	FLAT
+		TS	COASTDB
+		TS	COASTDB +1
+		TS	COASTDB +16D
+		TS	COASTDB +17D
+		CA	ZERO
+		TS	AXISDIST
+		TS	AXISDIST +1
+		TS	AXISDIST +16D
+		TS	AXISDIST +17D
+
+# Page 1504
+1/ACCRET	INHINT
+		CS	DAPBOOLS	# SET BIT TO INDICATE DATA GOOD.
+		MASK	ACCSOKAY
+		ADS	DAPBOOLS
+		RELINT
+		CA	ACCRETRN
+		TC	BANKJUMP	# RETURN TO CALLER
+
+INVERT		TS	HOLD		# ROUTINE TO INVERT -INPUT AT PI/2
+		CA	BIT9		# 1 AT 2(6)
+		ZL			# ZERO L FOR ACCURACY AND TO PREVENT OVFLO
+		EXTEND
+		DV	HOLD
+		TC	Q		# RESULT AT 2(7)/PI
+
+DOWNGTS		CAF	ZERO		# ZERO SWITCHES WHEN USEQRJTS BIT IS UP
+		TS	ALLOWGTS	#	OR DAP IS OFF
+		TS	INGTS
+		TCF	DOCKTEST
+
+1/ANET-		ZL
+		LXCH	ACCSW		# ZERO ACCSW
+		TS	ANET		# SAVE ANET
+		AD	-.03R/S2	# TEST FOR MIN VALUE
+		EXTEND
+		BZMF	NETNEG		# ANET LESS THAN AMIN, SO FAKE IT
+1/NETMIN	CA	ANET
+		EXTEND
+		INDEX	-SIGNAOS
+		MP	1/ACOSTT +1	# ANETNEG(POS)/ACOASTPOS(NEG) AT 2(6)
+
+# THE FOLLOWING CODING IS VALID FOR BOTH POS OR NEG
+#	VALUES OF AOS
+
+DO1/NET+	AD	BIT9		# 1 + ANET/ACOAST AT 2(6)
+		XCH	ANET		# SAVE AND PICK UP ANET
+		EXTEND
+		QXCH	ARET		# SAVE RETURN
+		TC	INVERT
+		TS	1/ANET		# 1/ANET AT 2(7)/PI
+		CS	BIT9		# -1 AT 2(6)
+DOACCFUN	EXTEND
+		MP	1/ANET		# -1/ANET AT 2(13)/PI
+		EXTEND
+		DV	ANET		# ACCFUN AT 2(7)/PI
+		TC	ARET		# RETURN
+
+NETNEG		CS	-.03R/S2	# ANET LESS THAN AMIN -- SET EQUAL TO AMIN
+		TS	ANET
+# Page 1505		
+		TCF	1/NETMIN +1	# CONTINUE AS IF NOTHING HAPPENED.
+
+FIXMIN		CCS	SIGNAOS
+		CA	TWO		# IF AOS NEG, ACCSW = +1
+		AD	NEGONE		# IF AOS POS, ACCSW = -1
+		TS	ACCSW
+		AD	UV		# IF ACCSW = +1, TEST FOR +U (+V) JET FAIL
+		INDEX	A		# IF ACCSW = -1, TEST FOR -U (-V) JET FAIL
+		CA	-UMASK 	+1
+		MASK	CH5MASK
+		EXTEND
+		BZF	+4
+		CS	-.03R/S2	# JET FAILURE -- CANNOT USE 2-JET VALUES
+		TS	ANET		# ANET = AMIN
+		TCF	STMIN- 	-1	# CALCULATE FUNCTIONS USING AMIN
+		CA	L		# L HAS ACCFUN
+		TCF	STMIN-		# STORE MAX VALUES FOR MIN JETS
+
+# ERASABLE ASSIGNMENTS FOR 1/ACCONT
+
+1/ANETP		EQUALS	BLOCKTOP +2
+1/ACOSTP	EQUALS	BLOCKTOP +4
+PACCFUN		EQUALS	BLOCKTOP +8D
+PDB1		EQUALS	BLOCKTOP +10D
+PDB2		EQUALS	BLOCKTOP +11D
+PDB4		EQUALS	BLOCKTOP +12D
+PDB3		EQUALS	BLOCKTOP +13D
+PAXDIST		EQUALS	BLOCKTOP +14D
+
+ACCSW		EQUALS	VBUF		# EXECUTIVE TEMPORARIES
+					# CANNOT DO CCS NEWJOB DURING 1/ACCS
+1/ATEM1		EQUALS	ACCSW 	+1	# TEMP BUFFER FOR U AND V AXES
+1/ATEM2		EQUALS	1/ATEM1 +1
+1/ACOSTT	EQUALS	1/ATEM1 +4
+Z1TEM		EQUALS	1/ATEM1 +6
+Z5TEM		EQUALS	1/ATEM1 +7
+
+UDB1		EQUALS	1/ATEM1 +10D	# UAXIS DEADBAND BUFFER
+UDB2		EQUALS	1/ATEM1 +11D
+UDB4		EQUALS	1/ATEM1 +12D
+UDB3		EQUALS	1/ATEM1 +13D
+UAXDIST		EQUALS	1/ATEM1 +14D
+
+DBB1		EQUALS	1/ATEM1 +16D	# TEMP DEADBAND BUFFER, ALSO V AXIS
+DBB2		EQUALS	1/ATEM1 +17D
+DBB4		EQUALS	1/ATEM1 +18D
+DBB3		EQUALS	1/ATEM1 +19D
+AXDSTEM		EQUALS	1/ATEM1 +20D
+
+# Page 1506
+FLATEMP		EQUALS	1/ATEM1 +22D
+Z3TEM		EQUALS	1/ATEM1 +23D	# MUST FOLLOW FLATEMP
+
+DBVAL1		EQUALS	DB
+DBVAL2		EQUALS	INTB15+
+DBVAL3		EQUALS	INTB15+ +1
+
+DRIFTER		EQUALS	INTB15+ +2
+
+UV		EQUALS	MPAC
+ANET		EQUALS	MPAC 	+3
+FUNTEM		EQUALS	MPAC 	+3
+1/ANET		EQUALS	MPAC 	+4
+ARET		EQUALS	MPAC 	+5
+ABSAOS		EQUALS	MPAC 	+6
+SIGNAOS		EQUALS	MPAC 	+7
+-SIGNAOS	EQUALS	MPAC 	+8D
+HOLD		EQUALS	MPAC 	+9D
+ACCRETRN	EQUALS	FIXLOC 	-1
+
+ZONE3MAX	DEC	.004375		# 17.5 MS (35 MS FOR 1 JET) AT 4 SECONDS
+FLATVAL		DEC	.01778		# .8 AT PI/4 RAD
+-.03R/S2	OCT	77377		# -PI/2(7) AT PI/2
+
+.0125RS		EQUALS	BIT8		# PI/2(+8) AT PI/2
+1/.03		EQUALS	POSMAX		# 2(7)/PI AT 2(7)/PI
+
+PAXISADR	GENADR	PAXIS
+
+					# THE FOLLOWING 4 CONSTANTS ARE JET
+					# FAILURE MASKS AND ARE INDEXED
+-UMASK		OCT	00110		# -U
+		OCT	00022		# -V
++UMASK		OCT	00204		# +U
+		OCT	00041		# +V
+		
diff --git a/AOTMARK.s b/AOTMARK.s
new file mode 100644
index 0000000..141f069
--- /dev/null
+++ b/AOTMARK.s
@@ -0,0 +1,695 @@
+# Copyright:	Public domain.
+# Filename:	AOTMARK.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	244-261
+# Mod history:  2009-05-10 SN   (Sergio Navarro).  Started adapting
+#				from the Luminary131/ file of the same
+#				name, using Luminary099 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 001 of AGC program LMY99 by NASA 2021112-61
+#	16:27 JULY 14, 1969 
+
+# Page 244
+		BANK	12
+		SETLOC	AOTMARK1
+		BANK
+		
+		EBANK=	XYMARK
+		COUNT*	$$/MARK
+		
+AOTMARK		INHINT
+		CCS	MARKSTAT	# SEE IF AOTMARK BUSY
+		TC	+2		# MARK SYSTEM BUSY -- DO ALARM
+		TC	EXTVBCHK
+		TC	P00DOO
+		OCT	00105
+		
+EXTVBCHK	CAF	SIX		# SEE IF EXT. VERB WORKING
+		MASK	EXTVBACT
+		CCS	A
+		TCF	MKABORT		# YES -- ABORT
+		
+		CAF	BIT2		# NO -- DISALLOW SOME EXTENDED VERB ACTION
+		ADS	EXTVBACT	# BIT2 RESET IN ENDMARK
+MKVAC		CCS	VAC1USE		# LOOK FOR A VAC AREAD -- DO ABORT IF
+		TCF	MKVACFND	# NONE AVAILABLE
+		CCS	VAC2USE
+		TCF	MKVACFND
+		CCS	VAC3USE
+		TCF	MKVACFND
+		CCS	VAC4USE
+		TCF	MKVACFND
+		CCS	VAC5USE
+		TCF	MKVACFND
+		DXCH	BUF2
+		TC	BAILOUT1	# ALL VAC AREAS OCCUPIED -- ABORT.
+		OCT	01207
+		
+MKVACFND	AD	TWO
+		TS	MARKSTAT	# STORE VAC ADR IN LOW 9 OF MARKSTAT
+		
+		CAF	ZERO
+		INDEX	MARKSTAT
+		TS	0 -1		# ZERO IN VACUSE REG TO SHOW VAC OCCUPIED
+
+		CAF	PRIO15
+		TC	FINDVAC		# SET UP JOB FOR GETDAT
+		EBANK=	XYMARK
+		2CADR	GETDAT
+		
+		RELINT
+		TCF	SWRETURN
+# Page 245
+MKABORT		DXCH	BUF2
+		TC	BAILOUT1	# CONFLICT WITH EXTENDED VERB
+		OCT	01211
+		
+MKRELEAS	CAF	ZERO
+		XCH	MARKSTAT	# SET MARKSTAT TO ZERO
+		MASK	LOW9		# PICK UP VAC AREA AOR
+		CCS	A
+		INDEX	A
+		TS	0		# SHOW MKVAC AREA AVAILABLE
+		CAF	ONE
+		TC	IBNKCALL
+		CADR	GOODEND		# GO WAKE UP CALLING JOB
+		
+# Page 246
+KILLAOT		CAF	ZERO
+		TS	EXTVBACT	# TERMINATE AOTMARK -- ALLOW EXT VERB
+		TC	GOTOP00H
+GETDAT		CS	MARKSTAT	# SET BIT12 TO DISCOURAGE MARKRUPT
+		MASK	BIT12		#	BIT12 RESET AT GETMARK
+		ADS	MARKSTAT
+		
+		CAF	V01N71		# DISPLAY DETENT AND STAR CODE
+		TC	BANKCALL
+		CADR	GOMARKF
+		
+		TCF	KILLAOT		# V34 -- DOES GOTOP00H
+		TCF	DODAT		# V33 -- PROCEED -- USE THIS STAR FOR MARKS
+ENTERDAT	TCF	GETDAT		# ENTER -- REDISPLAY STAR CODE
+
+DODAT		CAF	HIGH9		# PICK DETENT CODE FROM BITS7-9 OF AOTCODE
+		MASK	AOTCODE		# AND SEE IF CODE 1 TO 6
+		EXTEND
+		MP	BIT9
+		TS	XYMARK		# STORE DETENT
+		
+		EXTEND
+		BZMF	GETDAT		# COAS CALIBRATION CODE - NO GOOD HERE
+		
+		AD	NEG7		# SEE IF DETENT 7 FOR COAS
+		EXTEND
+		BZF	CODE7
+		
+		TCF	CODE1TO6
+		
+CODE7		CAF	V06N87*		# CODE 7, COAS SIGHTING, GET OPTIC AXIS
+		TC	BANKCALL	# AZ AND EL OF SIGHTING DEVICE FROM ASTRO
+		CADR	GOMARKF
+		
+		TCF	KILLAOT		# V34 -- DOES GOTOP00H
+		TCF	+2		# PROCEED
+		TCF	CODE7		# ON ENTER, RECYCLE
+		EXTEND
+		DCA	AZ		# PICK UP AZ AND EL IN SP 25 COMP
+		INDEX	FIXLOC
+		DXCH	8D		# STORE IN 8D AND 9D OF LOCAL VAC
+		CAF	ZERO		# BACKUP SYSTEM TO BE USED
+		TCF	COASCODE	# ZERO APPARENT ROTATION
+		
+CODE1TO6	INDEX	XYMARK		# INDEX AOT POSITION BY DET CODE
+		CA	AOTEL -1
+		INDEX	FIXLOC
+		TS	9D		# STORE ELEVATION IN VAC+9D
+		
+		INDEX	XYMARK		# INDEX DET CODE 1,2 OR 3
+# Page 247
+		CA	AOTAZ -1
+		INDEX	FIXLOC
+		TS	8D		# STORE AZIMUTH IN VAC +8D
+		
+		CA	AOTAZ +1	# COMPENSATION FOR APPARENT ROTATION OF
+		EXTEND			# AOT FIELD OF VIEW IN LEFT AND RIGHT
+		INDEX	FIXLOC		# DETENTS IS STORED IN VAC +10D IN SP
+		MSU	8D		# PRECISION ONE'S COMPLEMENT
+COASCODE	INDEX	FIXLOC
+		TS	10D		# ROT ANGLE
+		
+		TC	INTPRET		# COMPUTE X AND Y PLANE VECTORS
+		
+# Page 248
+# THE OPTAXIS SOBROUTINE COMPUTES THE X AND Y MARK PLANE VECS AND
+# ROTATES THEM THRU THE APPARENT FIELD OF VIEW ROTATION UNIQUE TO AOT
+# OPTAXIS USES OANB TO COMPUTE THE OPTIC AXIS
+#
+#	INPUT --	AZIMUTH ANGLE IN SINGLE PREC AT CDU SCALE IN 8D OF JOB VAC
+#			ELEVATION ANGLE IN SINGLE PREC AT CDU SCALE IN 9D OF JOB VAC
+#			ROTATION ANGLE IN SINGLE PREC IS COMP SCALED BY PI IN 10D OF VAC
+#
+#	OUTPUT --	OPTIC AXIS VEC IN NG COORDS IN SCAXIS
+#			X-MARK PLANE 1/4VEC IN NB COORDS AT 18D OF JOB VAC
+#			Y-MARK PLANE 1/4VEC IN NB COORDS AT 12D OF JOB VAC
+
+OPTAXIS		CALL			# GO COMPUTE OA AN X AND Y PLANE VECS
+			OANB
+		SLOAD	SR1		# LOAD APP ROTATION IN ONES COMP
+			10D		# RESCALE BY 2PI
+		PUSH	SIN		# 1/2SIN(ROT) 0-1
+		PDDL	COS
+		PUSH	VXSC		# 1/2COS(ROT) 2-3
+			18D
+		PDDL	VXSC		# 1/4COS(ROT)UYP 4-9
+			0
+			24D		# 1/4SIN(ROT)UXP
+		BVSU	STADR		# UP 4-9
+		STODL	12D		# YPNB=1/4(COS(ROT)UYP-SIN(ROT)UXP)
+		VXSC	PDDL		# UP 2-3 UP 0-1 FOR EXCHANGE
+			24D		# 1/4COS(ROT)UXP 	PUSH 0-5
+		VXSC	VAD		# 1/4SIN(ROT)UYP
+			18D		# UP 0-5
+		STADR
+		STOVL	18D		# XPNB=1/4(COS(ROT)UXP+SIN(ROT)UYP)
+			LO6ZEROS	# INITIALIZE AVE STAR VEC ACCUMULATOR
+		STORE	STARAD +6
+		EXIT
+		TCF	GETMKS
+		
+# Page 249
+# THE OANB SUBROUTINE COMPUTES THE OPTIC AXIS OF THE SIGHTING INSTRUMENT
+# FROM AZIMUTH AND ELEVATION INPUT FROM THE ASTRONAUT.
+#
+#	INPUT --	AZIMUTH ANGLE IN SINGLE PREC 2'S COMP IN 8D OF JOB VAC
+#			ELEVATION ANGLE IN SINGLE PREC 2'S COMP IN 9D OF VAC
+#
+#	OUTPUT --	OPTIC AXIS IN NB COORDS. IN SCAXIS
+#			X-PLANE 1/2VEC IN NB COORDS AT 24D OF VAC
+#			Y-PLANE 1/2VEC IN NB COORDS AT 18D OF VAC
+
+		BANK	05
+		SETLOC	AOTMARK2
+		BANK
+		
+		COUNT*	$$/MARK
+		
+OANB		SETPD	STQ
+			0
+			GCTR		# STORE RETURN
+		SLOAD	RTB
+			9D		# PICK UP SP ELV
+			CDULOGIC
+		PUSH	COS
+		PDDL	SIN		# 1/2COS(ELV)	PD 0-1
+		STADR
+		STODL	SCAXIS		# OAX=1/2SIN(ELV)
+			8D
+		RTB
+			CDULOGIC
+		PUSH	COS
+		STORE	20D		# STORE UYP(Y) 	20-21
+		PDDL	SIN		# 1/2COS(AZ) 	PD 2-3
+		PUSH	DCOMP		# PUSH 1/2S IN (AZ)	4-5
+		STODL	22D		# STORE UYP(Z)	22-23
+			LO6ZEROS
+		STODL	18D		# STORE UYP(X)	18-19
+		DMP	SL1
+			0
+		STODL	SCAXIS +2	# OAY=1/2COS(ELV)SIN(AZ)
+		DMP	SL1		# UP	2-3
+		STADR			# UP	0-1
+		STOVL	SCAXIS +4	# OAZ=1/2COS(ELV)COS(AZ)
+			18D		# LOAD UYP VEC
+		VXV	UNIT
+			SCAXIS		# UXP VEC=UYP X OA
+		STORE	24D		# STORE UXP
+		GOTO
+			GCTR
+# Page 250
+# SURFSTAR COMPUTES A STAR VECTOR IN SM COORDINAGES FOR LUNAR
+# SURFACE ALIGNMENT AND EXITS TO AVEIT TO AVERAGE STAR VECTORS.
+# 
+#	GIVEN	X-MARK PLANE 1/4 VEC IN NB AT 18D OF LOCAL VAC
+#		Y-MARK PLANE 1/4 VEC IN NB AT 12D OF LOCAL VAC
+#		CURSOR SP 2COMP AT POSITION 1 OF INDEXED MARKVAC
+#		SPIRAL SP 2COMP AT POSITION 3 OF INDEXED MARKVAC
+#		CDUY,Z,X AT POSITIONS 0,2,4 OF INDEXED MARKVAC
+
+		BANK	15
+		SETLOC	P50S
+		BANK
+		COUNT*	$$/R59
+		
+SURFSTAR	VLOAD*
+			0,1		# PUT X-MARK CDUS IN CDUSPOT FOR TRG*NBSM
+		STORE	CDUSPOT
+		SLOAD*	RTB
+			1,1		# PICK UP YROT
+			CDULOGIC
+		STORE	24D		# STORE CURSOR FOR SPIRAL COMP (REVS)
+		BZE
+			YZCHK		# IF YROT ZERO -- SEE IF SROT ZERO
+JUSTZY		PUSH	COS
+		PDDL	SIN		# 1/2COS(YROT) 	0-1
+		VXSC	PDDL		# UP 0-1	1/8SIN(YROT)UXP	0-5
+			18D
+		VXSC	VSU		# UP 	0-5
+			12D		# UYP
+		UNIT	VXV
+			SCAXIS
+		UNIT	PUSH
+		SLOAD*	RTB
+			3,1		# PICK UP SPIRAL
+			CDULOGIC
+		STORE	26D		# STORE SPIRAL (REVS)
+		DSU	DAD
+			24D
+			ABOUTONE
+		DMP
+			DP1/12
+		STORE	26D		# SEP=(360 + SPIRAL -CURSOR)/12
+		SIN	VXSC		# UP	0-5
+		VSL1	PDDL		# 1/2SIN(SEP)(UPP X OA)	0-5
+			26D
+		COS	VXSC
+			SCAXIS
+		VSL1	VAD		# UP	0-5
+JUSTOA		UNIT	CALL
+			TRG*NBSM
+		STCALL	24D		# STAR VEC IN SM
+			AVEIT		# GO AVERAGE
+# Page 251
+ABOUTONE	2DEC	.99999999
+
+DP1/12		EQUALS	DEG30		# .08333333
+		BANK	7
+		SETLOC	AOTMARK1
+		BANK
+		COUNT*	$$/MARK
+YZCHK		SLOAD*	BZE		# YROT ZERO AND IF SROT ZERO FORCE STAR
+			3,1		# ALONG OPTIC AXIS
+			YSZERO
+		DLOAD	GOTO
+			24D
+			JUSTZY		# SROT NOT ZERO -- CONTINUE NORMALLY
+YSZERO		VLOAD	GOTO
+			SCAXIS
+			JUSTOA
+			
+# Page 252
+# THE GETMKS ROUTINE INITIALIZES THE SIGHTING MARK PROCEDURE
+
+GETMKS		CAF	ZERO		# INITIALIZE MARK ID REGISTER AND MARK CNT
+		TS	XYMARK
+		TS	MARKCNTR
+		CAF	LOW9		# ZERO BITS10 TO 15 RETAINING MKVAC ADR
+		MASK	MARKSTAT
+		TS	MARKSTAT
+		CAF	MKVB54*		# DISPLAY VB54 INITIALLY
+PASTIT		TC	BANKCALL
+		CADR	GOMARK4
+		
+		TCF	KILLAOT		# V34 -- DOES GOTOP00H
+		TCF	MARKCHEX	# VB33 -- PROCEED, GOT MARKS, COMPUTE LOS
+		TCF	GETDAT		# ENTER -- RECYCLE TO V01N71
+		
+MARKCHEX	CS	MARKSTAT	# SET BIT12 TO DISCOURAGE MARKRUPT
+		MASK	BIT12
+		ADS	MARKSTAT
+		MASK	LOW9
+		TS	XYMARK		# JAM MARK VAC ADR IN XYMARK FOR AVESTAR
+		CAF	ZERO
+		TS	MKDEX		# SET MKDEX ZERO FOR LOS VEC CNTR
+		CA	MARKSTAT
+		MASK	PRIO3		# SEE IF LAST MK PART COMPLETE
+		TS	L
+		CAF	PRIO3		# BITS10 AND 11
+		EXTEND
+		RXOR	LCHAN
+		EXTEND
+		BZF	AVESTAR		# LAST PAIR COMPLETE -- TO COMPUTE LOS
+CNTCHK		CCS	MARKCNTR	# NO PAIR SHOWING -- SEE IF PAIR IN HOLD
+		TCF	+2		# PAIR BURIED -- DECREMENT COUNTER
+		TCF	MKALARM		# NO PAIR -- ALARM
+		TS	MARKCNTR	# STORE DECREMENTED COUNTER
+		
+AVESTAR		CAF	BIT12		# INITIALIZE MKDEX FOR STAR LOS COUNTER
+		ADS	MKDEX		# MKDEX WAS INITIALIZED ZERO IN MARKCHEX
+		CS	MARKCNTR
+		EXTEND
+		MP	SIX		# GET C(L) = -6 MARKCNTR
+		CS	XYMARK
+		AD	L		# ADD -- MARK VAC ADR SET IN MARKCHEX
+		INDEX	FIXLOC
+		TS	X1		# JAM -- CDU ADR OF X-MARK IN X1
+		
+		CA	FIXLOC		# SET PD POINTER TO ZERO
+		TS	PUSHLOC
+		
+		TC	INTPRET
+# Page 253
+		BON	VLOAD*
+			SURFFLAG	# IF ON SURFACE COMPUTE VEC AT SURFSTAR
+			SURFSTAR
+			1,1		# PUT Y-MARK CDUS IN CDUSPOT FOR TRG*NBSM
+		STOVL	CDUSPOT
+			12D		# LOAD Y-PLANE VECTOR IN NG
+		CALL
+			TRG*NBSM	# CONVERT IT TO STABLE MEMBER
+		PUSH	VLOAD*
+			0,1		# PUT X-MARK CDUS IN CDUSPOT FOR TRG*NBSM
+		STOVL	CDUSPOT
+			18D		# LOAD X-PLANE VECTOR IN NB
+		CALL
+			TRG*NBSM	# CONVERT IT TO STABLE-MEMBER
+		VXV	UNIT		# UNIT(XPSM * YPSM)
+		STADR
+		STORE	24D
+		
+AVEIT		SLOAD	PDVL		# N(NUMBER OF VECS) IN 0-1
+			MKDEX
+			24D		# LOAD CURRENT VECTOR
+		VSR3	V/SC
+			0
+		STODL	24D		# VEC/N
+			0
+		DSU	DDV
+			DP1/8		# (N-1)/N
+		VXSC	VAD
+			STARAD +6	# ADD VEC TO PREVIOUSLY AVERAGED VECTOR
+			24D		# (N-1)/N AVESTVEC + VEC/N
+		STORE	STARAD +6	# AVERAGE STAR VECTOR
+		STORE	STARSAV2
+		EXIT
+		CCS	MARKCNTR	# SEE IF ANOTHER MARK PAIR IN MKVAC
+		TCF	AVESTAR -1	# THERE IS -- GO GET IT -- DECREMENT COUNTER
+ENDMARKS	CAF	FIVE		# NO MORE MARKS -- TERMINATE AOTMARK
+		INHINT
+		TC	WAITLIST
+		EBANK=	XYMARK
+		2CADR	MKRELEAS
+		
+		TC	ENDMARK
+		
+MKALARM		TC	ALARM		# NOT A PAIR TO PROCESS -- DO GETMKS
+		OCT	111
+		TCF	GETMKS
+		
+V01N71		VN	171
+V06N87*		VN	687
+
+# Page 254
+# MARKRUPT IS ENTERED FROM INTERRUPT LEAD-INS AND PROCESSES CHANNEL 16
+# CAUSED BY X,Y MARK OR MARK REJECT OR BY THE RATE OF DESCENT SWITCH
+
+MARKRUPT	TS	BANKRUPT
+		CA	CDUY		# STORE CDUS AND TIME NOW -- THEN SEE IF
+		TS	ITEMP3		# WE NEED THEM
+		CA	CDUZ
+		TS	ITEMP4
+		CA	CDUX
+		TS	ITEMP5
+		EXTEND
+		DCA	TIME2
+		DXCH	ITEMP1
+		XCH	Q
+		TS	QRUPT
+		
+		CAF	OCT34		# SEE IF X OR Y MARK OR MKREJECT
+		EXTEND
+		RAND	NAVKEYIN
+		CCS	A
+		TCF	+2		# ITS A LIVE ONE -- SEE IF ITS WANTED
+		TCF	SOMEKEY		# ITS SOME OTHER KEY
+		
+		CAF	BIT12		# ARE WE ASKING FOR A MARK
+		MASK	MARKSTAT
+		CCS	A
+		TC	RESUME		# DON'T WANT MARK OR MKREJECT -- DO NOTHING
+
+		CCS	MARKSTAT	# ARE MARKS BEING ACCEPTED
+		TCF	FINDKEY		# THEY ARE -- WHICH ONE IS IT
+		TC	ALARM		# MARKS NOT BEING ACCEPTED -- DO ALARM
+		OCT	112
+		TC	RESUME
+		
+FINDKEY		CAF	BIT5		# SEE IF MARK REJECT.
+		EXTEND
+		RAND	NAVKEYIN
+		CCS	A
+		TCF	MKREJ		# IT'S A MARK REJECT
+		
+		CAF	BIT4		# SEE IF Y MARK
+		EXTEND
+		RAND	NAVKEYIN
+		CCS	A
+		
+		TCF	YMKRUPT		# IT'S A Y MARK
+		
+		CAF	BIT3		# SEE IF X MARK
+		EXTEND
+		RAND	NAVKEYIN
+		
+# Page 255
+		CCS	A
+		TCF	XMKRUPT		# IT'S A X MARK
+		
+SOMEKEY		CAF	OCT140		# NOT MARK OR MKREJECT -- SEE IF DESCENT BITS
+		EXTEND
+		RAND	NAVKEYIN
+		EXTEND
+		BZF	+3		# IF NO BITS
+		
+		TC	POSTJUMP	# IF DESCENT BITS
+		CADR	DESCBITS
+		
+		TC	ALARM		# NO INBITS IN CHANNEL 16.
+		OCT	113
+		
+		TC	RESUME
+		
+XMKRUPT		CAF	ZERO
+		TS	RUPTREG1	# SET X MARK STORE INDEX TO ZERO
+		CAF	BIT10
+		TCF	+4
+YMKRUPT		CAF	ONE
+		TS	RUPTREG1	# SET Y MARK STORE INDEX TO ONE
+		CAF	BIT11
+		TS	XYMARK		# SET MARK IDENTIFICATION
+		
+		TC	MARKTYPE	# SEE IF SURFACE MARK
+		TCF	SURFSTOR	# SURFACE MARK -- JUST STORE CDUS
+		
+		CAF	BIT14		# GOT A MARK -- SEE IF MARK PARI MADE
+		MASK	MARKSTAT
+		EXTEND
+		BZF	VERIFYMK	# NOT A PAIR, NORMAL PROCEDURE
+		CS	MARKCNTR	# GO A PAIR, SEE IF ANOTHER CAN BE MADE
+		AD	FOUR		# IF SO, INCREMENT POINTER, CLEAR BITS 10,11
+		EXTEND
+		BZMF	5MKALARM	# HAVE FIVE MARK PAIRS -- DON'T ALLOW MARK
+		INCR	MARKCNTR	# OK FOR ANOTHER PAIR, INCR POINTER
+		CS	PRIO23		# CLEAR BITS 10,11,14 FOR NEXT PAIR
+		MASK	MARKSTAT
+		TS	MARKSTAT
+		
+VERIFYMK	CA	XYMARK
+		MASK	MARKSTAT
+		CCS	A
+		TCF	+2		# THIS MARK NOT DESIRED
+		TCF	VACSTOR		# MARK DESIRED -- STORE CDUS
+		TC	ALARM
+		OCT	114
+		TC	RESUME		# RESUME -- DISPLAY UNCHANGED -- WAIT FOR ACTION
+
+# Page 256
+5MKALARM	TC	ALARM		# ATTEMPTING TO MAKE MORE THAN 5 MK PAIRS
+		OCT	107
+		TC	MARKTYPE	# SEE IF SURFACE MARK
+		TCF	DSPV6N79	# IT IS
+		TC	RESUME		# DON'T CHANGE DISPLAY -- DO NOTHING
+		
+# Page 257
+MKREJ		TC	MARKTYPE	# SEE IF SURFACE
+		TCF	SURFREJ		# SURFACE -- JUST CHECK MARK COUNTER
+		
+		CAF	PRIO3		# INFLIGHT -- SEE IF MARKS MADE
+		MASK	MARKSTAT
+		CCS	A
+		TCF	REJECT		# MARKS MADE -- REJECT ONE
+REJALM		TC	ALARM		# NO MARK TO REJECT -- BAD PROCEDURE -- ALARM
+		OCT	115
+		TC	RESUME		# DESIRED ACTION DISPLAYED
+		
+REJECT		CS	PRIO30		# ZERO BIT14, SHOW REJ., SEE IF MARK SINCE
+		MASK	MARKSTAT	# LAST REJECT
+		AD	BIT13
+		XCH	MARKSTAT
+		MASK	BIT13
+		CCS	A
+		TCF	REJECT2		# ANOTHER REJECT SET BIT 10+11 TO ZERO
+		
+		CS	XYMARK		# MARK MADE SINCE REJECT -- REJECT MARK IN 1D
+RENEWMK		MASK	MARKSTAT
+		TS	MARKSTAT
+		TCF	REMARK		# GO REQUEST NEW MARK ACTION
+		
+REJECT2		CS	PRIO3		# ON SECOND REJECT -- DISPLAY VB53 AGAIN
+		TCF	RENEWMK
+		
+SURFREJ		CCS	MARKCNTR	# IF MARK DECREMENT COUNTER
+		TCF	+2
+		TCF	REJALM		# NO MARKS TO REJECT -- ALARM
+		TS	MARKCNTR
+		TC	RESUME
+
+# Page 258
+# MARKTYPE TESTS TO SEE IF LEM ON LUNAR SURFACE.  IF IT IS RETURN TO LOC+1
+
+MARKTYPE	CS	FLAGWRD8	# SURFFLAG ******** TEMPORARY ******
+		MASK	BIT8
+		CCS	A
+		INCR	Q		# IF SURFACE MARK RETURN TO LOC +1
+		TC	Q		# IF INFLIGHT MARK RETURN TO LOC +2
+		
+SURFSTOR	CAF	ZERO		# FOR SURFACE MARK ZERO MARK KIND INDEX
+		TS	RUPTREG1
+		
+		CS	MARKSTAT	# SET BITS10,11 TO SHOW SURFACE MARK
+		MASK	PRIO3		# FOR MARKCHEX
+		ADS	MARKSTAT
+		
+VACSTOR		CAF	LOW9
+		MASK	MARKSTAT	# STORE MARK VAC ADR IN RUPTREG2
+		TS	RUPTREG2
+		EXTEND
+		DCA	ITEMP1		# PICK UP MARKTIME
+		DXCH	TSIGHT		# STORE LAST MARK TIME
+		CA	MARKCNTR	# 6 X MARKCNTR FOR STORE INDEX
+		EXTEND
+		MP	SIX
+		XCH	L		# GET INDEX FROM LOW ORDER PART
+		AD	RUPTREG2	# SET CDU STORE INDEX TO MARKVAC
+		ADS	RUPTREG1	# INCREMENT VAC PICKUP BY MARK FOR FLIGHT
+		TS	MKDEX		# STORE HERE IN CASE OF SURFACE MARK
+		CA	ITEMP3
+		INDEX	RUPTREG1
+		TS	0		# STORE CDUY
+		CA	ITEMP4
+		INDEX	RUPTREG1
+		TS	2		# STORE CDUZ
+		CA	ITEMP5
+		INDEX	RUPTREG1
+		TS	4		# STORE CDUX
+		TC	MARKTYPE	# IF SURFACE MARK -- JUST DO SURFJOB
+		TCF	SURFJOB
+		
+		CAF	BIT13		# CLEAR BIT13 TO SHOW MARK MADE
+		AD	XYMARK		# SET MARK ID IN MARKSTAT
+		COM
+		MASK	MARKSTAT
+		AD	XYMARK
+		TS	MARKSTAT
+		MASK	PRIO3		# SEE IF X, Y MARK MADE
+		TS	L
+		
+# Page 259
+		CA	PRIO3
+		EXTEND
+		RXOR	LCHAN
+		CCS	A
+		TCF	REMARK		# NOT PAIR YET, DISPLAY MARK ACTION
+		CS	MARKSTAT	# MARK PAIR COMPLETE -- SET BIT14
+		MASK	BIT14
+		ADS	MARKSTAT
+		TCF	REMARK		# GO DISPLAY V54
+		
+# Page 260
+REMARK		CAF	PRIO3		# BITS 10 AND 11
+		MASK	MARKSTAT
+		EXTEND
+		MP	BIT6		# SHIFT MARK IDS TO BE 0 TO 3 FOR INDEX
+		TS	MKDEX		# STORE VERB INDEX
+SURFJOB		CAF	PRIO15
+		TC	NOVAC		# ENTER JOB TO CHANGE DISPLAY TO
+		EBANK=	XYMARK		# REQUEST NEXT ACTION
+		2CADR	CHANGEVB
+		
+		TC	RESUME
+		
+CHANGEVB	TC	MARKTYPE
+		TCF	DSPV6N79	# SURFACE -- DISPLAY V 06 N 79
+		INDEX	MKDEX		# INFLIGHT -- PICK UP MARK VB INDEX
+		CAF	MKVB54
+		TC	PASTIT		# PASTE UP NEXT MK VERB DISPLAY
+		
+# THE FOUR MKVBS ARE INDEXED -- THEIR ORDER CANNOT BE CHANGED
+
+MKVB54		VN	5471		# MAKE X OR Y MARK
+MKVB53		VN	5371		# MAKE Y MARK
+MKVB52		VN	5271		# MAKE X MARK
+MKVB54*		VN	5471		# MAKE X OR Y MARK
+DP1/8		2DEC	.125
+
+OCT34		OCT	34
+V06N71		VN	671
+V06N79*		VN	679
+
+# Page 261
+# ROUTINE TO REQUEST CURSOR AND SPIRAL MEASUREMENTS
+		COUNT*	$$/R59
+		
+DSPV6N79	CAF	V06N79*		# CURSOR -- SPIRAL DISPLAY
+		TC	BANKCALL
+		CADR	GOMARKF
+		
+		TCF	KILLAOT		# V34 -- DOES GOTOP00H
+		TCF	SURFEND		# V33 -- PROCEED, END MARKING
+		CAF	BIT6		# IF V32(OCT40) IN MPAC DO RECYCLE
+		MASK	MPAC		# OTHERWISE IT IS LOAD VB ENTER SO
+		CCS	A		# RE-DISPLAY V06N79
+		TCF	SURFAGAN	# VB32 -- RECYCLE
+		TCF	DSPV6N79	# ENTER
+		
+SURFEND		CS	BIT14		# SET BIT14 TO SHOW MARK END
+		MASK	MARKSTAT
+		AD	BIT14
+		TS	MARKSTAT
+		
+SURFAGAN	CA	CURSOR
+		INDEX	MKDEX		# HOLDS VAC AREA POINTER FOR SURF MARKING
+		TS	1		# STORE CURSOR SP 2COMP
+		CA	SPIRAL
+		INDEX	MKDEX
+		TS	3		# STORE SPIRAL
+		
+		CS	MARKSTAT	# IF BIT 14 SET -- END MARKING
+		MASK	BIT14
+		EXTEND
+		BZF	MARKCHEX
+		CA	MARKCNTR	# THIS IS RECYCLE -- SEE IF 5 MARKS ALREADY
+		AD	ONE
+		COM
+		AD	FIVE
+		EXTEND
+		BZMF	5MKALARM	# CAN'T RECYCLE -- TOO MANY MARKS -- ALARM
+		INCR	MARKCNTR	# OF FOR RECYCLE -- INCR COUNTER
+		TCF	GETMKS +3	# GO DISPLAY MARK VB
+		
diff --git a/ASCENT_GUIDANCE.s b/ASCENT_GUIDANCE.s
new file mode 100644
index 0000000..d59444b
--- /dev/null
+++ b/ASCENT_GUIDANCE.s
@@ -0,0 +1,647 @@
+# Copyright:	Public domain.
+# Filename:	ASCENT_GUIDNCE.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:	843-856
+# Mod history:	2009-05-23 HG	Transcribed from page images.
+#		2009-06-05 RSB	Fixed a couple of typos.
+#		2009-06-07 RSB	Corrected a typo.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 843
+		BANK	34
+		SETLOC	ASCFILT
+		BANK
+
+		EBANK=	DVCNTR
+
+		COUNT*	$$/ASENT
+
+ATMAG		TC	PHASCHNG
+		OCT	00035
+		TC	INTPRET
+		BON
+			FLRCS
+			ASCENT
+		DLOAD	DSU
+			ABDVCONV
+			MINABDV
+		BMN	CLEAR
+			ASCTERM4
+			SURFFLAG
+		CLEAR	SLOAD
+			RENDWFLG
+			BIT3H
+		DDV	EXIT
+			ABDVCONV
+		DXCH	MPAC
+		DXCH	1/DV3
+		DXCH	1/DV2
+		DXCH	1/DV1
+		DXCH	1/DV0
+		TC	INTPRET
+		DLOAD	DAD
+			1/DV0
+			1/DV1
+		DAD	DAD
+			1/DV2
+			1/DV3
+		DMP	DMP
+			VE
+			2SEC(9)
+		SL3	PDDL
+			TBUP
+		SR1	DAD
+		DSU
+			6SEC(18)
+		STODL	TBUP
+			VE
+		SR1	DDV
+			TBUP
+		STCALL	AT
+# Page 844
+			ASCENT
+BIT3H		OCT	4
+
+# Page 845
+		BANK	30
+		SETLOC	ASENT
+		BANK
+		COUNT*	$$/ASENT
+
+ASCENT		VLOAD	ABVAL
+			R
+		STOVL	/R/MAG
+			ZAXIS1
+		DOT	SL1
+			V		# Z.V = ZDOT*2(-8).
+		STOVL	ZDOT		# ZDOT*2(-7)
+			ZAXIS1
+		VXV	VSL1
+			UNIT/R/		# Z X UR = LAXIS*2(-2)
+		STORE	LAXIS		# LAXIS*2(-1)
+		DOT	SL1
+			V		# L.V = YDOT*2(-8).
+		STCALL	YDOT		# YDOT * 2(-7)
+			YCOMP
+		VLOAD
+			GDT1/2		# LOAD GDT1/2*2(-7) M/CS.
+		V/SC	DOT
+			2SEC(18)
+			UNIT/R/		# G.UR*2(9) = GR*2(9).
+		PDVL	VXV		# STORE IN PDL(0)
+			UNIT/R/		# LOAD UNIT/R/ *2(-1)
+			V		# UR*2(-1) X V*2(-7) = H/R*2(-8).
+		VSQ	DDV		# H(2)/R(2)*2(-16).
+			/R/MAG		# H(2)/R(3)*2(9).
+		SL1	DAD
+		STADR
+		STODL	GEFF		# GEFF*2(10)m/CS/CS.
+			ZDOTD
+		DSU
+			ZDOT
+		STORE	DZDOT		# DZDOT = (ZDOTD - ZDOT) * 2(7) M/CS.
+		VXSC	PDDL
+			ZAXIS1
+			YDOTD
+		DSU
+			YDOT
+		STORE	DYDOT		# DYDOT = (YDOTD - YDOT) *2(7) M/CS.
+		VXSC	PDDL
+			LAXIS
+			RDOTD
+# Page 846
+		DSU
+			RDOT
+		STORE	DRDOT		# DRDOT = (RDOTD - RDOT) * 2(7) M/CS.
+		VXSC	VAD
+			UNIT/R/
+		VAD	VSL1
+		STADR
+		STORE	VGVECT		# VG = (DRDOT)R + (DVDOT)L + (DZDOT)Z.
+		DLOAD	DMP		# LOAD TGO
+			TGO		# TGO GEFF
+			GEFF
+		VXSC	VSL1
+			UNIT/R/		# TGO GEFF UR
+		BVSU
+			VGVECT		# COMPENSATED FOR GEFF
+		STORE	VGVECT		# STORE FOR DOWNLINK
+		MXV	VSL1		# GET VGBODY FOR N85 DISPLAY
+			XNBPIP
+		STOVL	VGBODY
+			VGVECT
+		ABVAL	BOFF		# MAGNITUDE OF VGVECT
+			FLRCS		# IF FLRCS=0,D0 NORMAL GUIDANCE
+			MAINENG
+		DDV			# USE TGO=VG/AT WITH RCS
+			AT/RCS
+		STCALL	TGO		# THIS WILL BE USED ON NEXT CYCLE
+			ASCTERM2
+MAINENG		DDV	PUSH		# VG/VE IN PDL(0)		(2)
+			VE
+		DMP	BDSU		# 1 - KT VG/VE
+			KT1
+			NEARONE
+		DMP	DMP		# TBUP VG(1-KT VG/VE)/VE	(0)
+			TBUP		# 	= TGO
+		DSU			# COMPENSATE FOR TAILOFF
+			TTO
+		STORE	TGO
+		SR	DCOMP
+			11D
+		STODL	TTOGO		# TGO *2(-28) CS
+			TGO
+		BON	DSU
+			IDLEFLAG
+			T2TEST
+			4SEC(17)	# ( TGO - 4 )*2(-17) CS.
+		BMN
+			ENGOFF
+T2TEST		DLOAD
+			TGO
+		DSU	BMN		# IF TGO - T2 NEG., GO TO CMPONENT
+# Page 847
+			T2A
+			CMPONENT
+		DLOAD	DSU
+			TBUP
+			TGO
+		DDV	CALL		# 1- TGO/TBUP
+			TBUP
+			LOGSUB
+		SL	PUSH		# -L IN PDL(0)			(2)
+			5
+		BDDV	BDSU		# -TGO/L*2(-17)
+			TGO
+			TBUP		# TBUP + TGO/L = D12*2(-17)
+		PUSH	BON		# STORE IN PDL(2)		(4)
+			FLPC		# IF FLPC = 1, GO TO CONST
+			NORATES
+		DLOAD	DSU
+			TGO
+			T3
+		BPL	SET		# FLPC=1
+			RATES
+			FLPC
+NORATES		DLOAD
+			HI6ZEROS
+		STORE	PRATE		# B = 0
+		STORE	YRATE		# D = 0
+		GOTO
+			CONST		# GO TO CONST
+RATES		DLOAD	DSU
+			TGO
+			02D		# TGO - D12 = D21*2(-17)
+		PUSH	SL1		# IN PDL(4)			(6)
+		BDSU	SL3		# (1/2TGO - D21)*2(-13) = E * 2(-13)
+			TGO		#				(8)
+		PDDL	DMP		# IN PDL(6)
+			TGO
+			RDOT		# RDOT TGO * 2(-24)
+		DAD	DSU		# R + RDOT TGO
+			/R/MAG		# R + RDOT TGO - RCO
+			RCO		# MPAC = -DR *2(-24).
+		PDDL	DMP		# -DR IN PDL(8)			(10)
+			DRDOT
+			04D		# D21 DRDOT*2(-24)
+		DAD	SL2		# (D21 DRDOT-DR)*2(-22)		(8)
+		DDV	DDV
+			06D		# (D21 DRDOT-DR)/E*2(-9)
+			TGO
+		STORE	PRATE		# B * 2(8)
+		BMN	DLOAD		# B>0 NOT PERMITTED
+			CHKBMAG
+#Page 848
+			HI6ZEROS
+		STCALL	PRATE
+			PROK
+CHKBMAG		SR4	DDV		# B*2(4)
+			TBUP		# (B / TAU) * 2(21)
+		DSU	BPL
+			PRLIMIT		# ( B / TAU ) = 2(21) MAX.
+			PROK
+		DLOAD	DMP
+			PRLIMIT
+			TBUP		# B MAX. * 2(4)
+		SL4			# BMAX*2(8)
+		STORE	PRATE
+PROK		DLOAD
+			TGO
+		DMP	DAD		# YDOT TGO
+			YDOT
+			Y		# Y + YDOT TGO
+		DSU	PDDL		# Y + YDOT TGO - YCO
+			YCO		# MPAC = - DY*(-24.) IN PDL(8)	(10)
+			DYDOT
+		DMP	DAD		# D21 DYDOT - DY		(8)
+			04D
+		SL2	DDV		# (D21 DYDOT - DY)/E*2(-9)
+		DDV	SETPD		# (D21 DYDOT - DY)/E TGO*2(8)
+			TGO		#	= D*2(8)
+			04
+		STORE	YRATE
+CONST		DLOAD	DMP		# LOAD B*2(8)
+			PRATE		# B D12*2(-9)
+			02D
+		PDDL	DDV		# D12 B IN PDL(4)	(6)
+			DRDOT		# LOAD DRDOT*2(-7)
+			00D		# -DRDOT/L*2(-7)
+		SR2	DSU		# (-DRDOT/L-D12 B)=A*2(-9)	(4)
+		STADR
+		STODL	PCONS
+			YRATE		# D*2(8)
+		DMP	PDDL		# D12 D,EXCH WITH -L IN PDL(0)	(2,2)
+		BDDV	SR2		# -DYDOT/L*2(-9)
+			DYDOT
+		DSU			# (-DYDOT/L-D12 D)=C*2(-9)
+			00D
+		STORE	YCONS
+CMPONENT	SETPD	DLOAD
+			00D
+ 			100CS
+ 		DMP
+			PRATE		# B(T-T0)*2(-9)
+		DAD	DDV		# (A+B(T-T0))*2(-9)
+# Page 849
+			PCONS		# (A+B(T-T0))/TBUP*2(8)
+			TBUP
+		SL1	DSU
+			GEFF		# ATR*2(9)
+		STODL	ATR
+			100CS
+		DMP	DAD
+			YRATE
+			YCONS		# (C+D(T-T0))*2(-9)
+		DDV	SL1
+			TBUP
+		STORE	ATY		# ATY*2(9)
+		VXSC	PDDL		# ATY UY*2(8)		(6)
+			LAXIS
+			ATR
+		VXSC	VAD
+			UNIT/R/
+		VSL1	PUSH		# AH*2(9) IN PDL(0)	(6)
+		ABVAL	PDDL		# AH(2) IN PDL(34)
+			AT		# AHMAG IN PDL(6)	(8)
+		DSQ	DSU		# (AT(2)-AH(2))*2(18)
+			34D		# =ATP2*2(18)
+		PDDL	PUSH		#			(12)
+			AT
+		DSQ	DSU		# (AT(2)KR(2)-AH(2))*2(18)	(10)
+			34D		# =ATP3*2(18)
+		BMN	DLOAD		# IF ATP3 NEG,GO TO NO-ATP
+			NO-ATP		# LOAD ATP2, IF ATP3 POS
+			8D
+		SQRT	GOTO		# ATP*2(9)
+			AIMER
+NO-ATP		DLOAD	BDDV		# KR AT/AH = KH		(8)
+			6D
+		VXSC			# KH AG*2(9)
+			00D
+		STODL	00D		# STORE NEW AH IN PDL(0)
+			HI6ZEROS
+AIMER		SIGN
+			DZDOT
+		STORE	ATP
+		VXSC
+			ZAXIS1		# ATP ZAXIS *2(8).
+		VSL1	VAD		# AT*2(0)
+			00D
+		STORE	UNFC/2		# WILL BE OVERWRITTEN IF IN VERT. RISE.
+		SETPD	BON
+			00D
+			FLPI
+			P12RET
+		BON
+# Page 850
+			FLVR
+			CHECKALT
+MAINLINE	VLOAD	VCOMP
+			UNIT/R/
+		STODL	UNWC/2
+			TXO
+		DSU	BPL
+			PIPTIME
+			ASCTERM
+		BON
+			ROTFLAG
+			ANG1CHEK
+CLRXFLAG	CLEAR	CLEAR
+			NOR29FLG	# START r29 IN ASCENT PHASE.
+			XOVINFLG	# ALLOW X-AXIS OVERRIDE
+ASCTERM		EXIT
+		CA	FLAGWRD9
+		MASK	FLRCSBIT
+		CCS	A
+		TCF	ASCTERM3
+		TC	INTPRET
+		CALL
+			FINDCDUW -2
+ASCTERM1	EXIT
+ +1		CA	FLAGWRD9	# INSURE THAT THE NOUN 63 DISPLAY IS
+ 		MASK	FLRCSBIT	# BYPASSED IF WE ARE IN THE RCS TRIMMING
+		CCS	A		# MODE OF OPERATION
+		TCF	ASCTERM3
+		CA	FLAGWRD8	# BYPASS DISPLAYS IF ENGINE FAILURE IS
+		MASK	FLUNDBIT	# INDICATED.
+		CCS	A
+		TCF	ASCTERM3
+		CAF	V06N63*
+		TC	BANKCALL
+		CADR	GODSPR
+		TCF	ASCTERM3
+ASCTERM2	EXIT
+ASCTERM3	TCF	ENDOFJOB
+ASCTERM4	EXIT
+		INHINT
+		TC	IBNKCALL	# NO GUIDANCE THIS CYCLE -- HENCE ZERO
+		CADR	ZATTEROR	# THE DAP COMMANDED ERRORSss.
+		TCF	ASCTERM1 +1
+
+CHECKALT	DLOAD	DSU
+			/R/MAG
+			/LAND/
+		DSU	BMN		# IF H LT 25K CHECK Z AXIS ORIENTATION
+			25KFT
+			CHECKYAW
+# Page 851
+EXITVR		CLEAR	BON
+			FLVR
+			ROTFLAG
+			MAINLINE
+		DLOAD	DAD
+			PIPTIME
+			10SECS
+		STCALL	TXO
+			MAINLINE
+EXITVR1		CLRGO
+			ROTFLAG
+			EXITVR
+
+		SETLOC	ASENT1
+		BANK
+		COUNT*	$$/ASENT
+
+ANG1CHEK	VLOAD	DOT
+			UNFC/2
+			XNBPIP
+		DSU	BPL
+			COSTHET1
+			OFFROT
+		VLOAD	DOT
+			XNBPIP
+			UNIT/R/
+		DSU	BMN
+			COSTHET2
+			KEEPVR1
+OFFROT		CLRGO
+			ROTFLAG
+			CLRXFLAG
+
+		BANK	7
+		SETLOC	ASENT2
+		BANK
+		COUNT*	$$/ASENT
+
+SETXFLAG	=	CHECKYAW
+
+CHECKYAW	SET
+			XOVINFLG	# PROHIBIT X-AXIS OVERRRIDE
+		DLOAD	VXSC
+			ATY
+			LAXIS
+		PDDL	VXSC
+			ATP
+			ZAXIS1
+		VAD	UNIT
+		PUSH	DOT
+# Page 852
+			YNBPIP
+		ABS	DSU
+			SIN5DEG
+		BPL	DLOAD
+			KEEPVR
+			RDOT
+		DSU	BPL
+			40FPS
+			EXITVR1
+		GOTO
+			KEEPVR
+			
+		BANK	5
+		SETLOC	ASENT3
+		BANK
+		COUNT*	$$/ASENT
+
+SIN5DEG		2DEC	0.08716 B-2
+40FPS		2DEC	0.12192 B-7
+
+		BANK	14
+		SETLOC	ASENT4
+		BANK
+		COUNT*	$$/ASENT
+
+KEEPVR		VLOAD	STADR		# RECALL LOSVEC FROM PUSHLIST
+		STORE	UNWC/2
+KEEPVR1		VLOAD
+			UNIT/R/
+		STCALL	UNFC/2
+			ASCTERM
+
+ENGOFF		RTB
+			LOADTIME
+		DSU	DAD
+			PIPTIME
+			TTOGO
+		DCOMP	EXIT
+		TC	TPAGREE		# FORCH SIGN AGREEMENT ON MPAC, MPAC +1.
+		CAF	EBANK7
+		TS	EBANK
+		EBANK=	TGO
+		INHINT
+		CCS	MPAC +1
+		TCF	+3		# C(A) = DT - 1 BIT
+		TCF	+2		# C(A) = 0
+		CAF	ZERO		# C(A) = 0
+		AD	BIT1		# C(A) = 1 BIT OR DT.
+# Page 853
+		TS	ENGOFFDT
+		TC	TWIDDLE
+		ADRES	ENGOFF1
+		TC	PHASCHNG
+		OCT	47014
+		-GENADR	ENGOFFDT
+		EBANK=	TGO
+		2CADR	ENGOFF1
+
+		TC	INTPRET
+		SET	GOTO
+			IDLEFLAG	# DISABLE DELTA-V MONITOR
+			T2TEST
+
+ENGOFF1		TC	IBNKCALL	# SHUT OFF THE ENGINE.
+		CADR	ENGINOF2
+
+		CAF	PRIO17		# SET UP A JOB FOR THE ASCENT GUIDANCE
+		TC	FINDVAC		# POSTBURN LOGIC.
+		EBANK=	WHICH
+		2CADR	CUTOFF
+
+		TC	PHASCHNG
+		OCT 	07024
+		OCT	17000
+		EBANK=	TGO
+		2CADR	CUTOFF
+
+		TCF	TASKOVER
+
+CUTOFF		TC	UPFLAG		# SET FLRCS FLAG.
+		ADRES	FLRCS
+
+ -5		CAF	V16N63
+ 		TC	BANKCALL
+		CADR	GOFLASH
+		TCF	+3
+		TCF	CUTOFF1
+		TCF	-5
+
+ +3		TC	POSTJUMP
+ 		CADR	TERMASC
+
+CUTOFF1		INHINT
+		TC	IBNKCALL	# ZERO ATTITUDE ERRORS BEFORE REDUCINT DB.
+		CADR	ZATTEROR
+		TC	IBNKCALL
+		CADR	SETMINDB
+		TC	POSTJUMP
+		CADR	CUTOFF2
+# Page 854
+
+V16N63		VN	1663
+		BANK	30
+		SETLOC	ASENT5
+		BANK
+		COUNT*	$$/ASENT
+
+CUTOFF2		TC	PHASCHNG
+		OCT	04024
+
+		CAF	V16N85C
+		TC	BANKCALL
+		CADR	GOFLASH
+		TCF	TERMASC
+		TCF	+2		# PROCEED
+		TCF	CUTOFF2
+
+TERMASC		TC	PHASCHNG
+		OCT	04024
+
+		INHINT			# RESTORE DEADBAND DESIRED BY ASTRONAUT.
+		TC	IBNKCALL
+		CADR	RESTORDB
+		TC	DOWNFLAG	# DISALLOW ABORTS AT THIS TIME.
+		ADRES	LETABORT
+		TCF	GOTOP00H
+
+V16N85C		VN	1685
+
+		BANK 27
+		SETLOC	ASENT1
+		BANK
+		COUNT* $$/ASENT
+		
+YCOMP		VLOAD	DOT
+			UNIT/R/
+			QAXIS
+		SL2	DMP
+			RCO
+		STORE	Y
+		RVQ
+		
+		BANK	30
+		SETLOC	ASENT
+		BANK
+# Page 855
+100CS		EQUALS	2SEC(18)
+T2A		EQUALS	2SEC(17)
+4SEC(17)	2DEC	400 B-17
+2SEC(17)	2DEC	200 B-17
+T3		2DEC	1000 B-17
+6SEC(18)	2DEC	600 B-18
+BIT4H		OCT	10
+2SEC(9)		2DEC	200 B-9
+V06N63*		VN	0663
+V06N76		VN	0676
+V06N33A		VN	0633
+
+		BANK	33
+		SETLOC	ASENT6
+		BANK
+		COUNT*	$$/ASENT
+
+KT1		2DEC	0.5000
+PRLIMIT		2DEC	-.0639		# (B/TBUP)MIN=-.1FT.SEC(-3)
+MINABDV		2DEC	.0356 B-5	# 10 PERCENT BIGGER THAN GRAVITY
+1/DV0		=	MASS1
+
+# Page 856
+# THE LOGARITHM SUBROUTINE
+
+		BANK	24
+		SETLOC	FLOGSUB
+		BANK
+
+# INPUT ..... X IN MPAC
+# OUTPUT ..... -LOG(X) IN MPAC
+
+LOGSUB		NORM	BDSU
+			MPAC +6
+			NEARONE
+		EXIT
+		TC	POLY
+		DEC	6
+		2DEC	.0000000060
+		2DEC	-.0312514377
+		2DEC	-.0155686771
+		2DEC	-.0112502068
+		2DEC	-.0018545108
+		2DEC	-.0286607906
+		2DEC	.0385598563
+		2DEC	-.0419361902
+
+		CAF	ZERO
+		TS	MPAC +2
+		EXTEND
+		DCA	CLOG2/32
+		DXCH	MPAC
+		DXCH	BUF +1
+		CA	MPAC +6
+		TC	SHORTMP
+		DXCH	MPAC +1
+		DXCH	MPAC
+		DXCH	BUF +1
+		DAS	MPAC
+		TC	INTPRET
+		DCOMP	RVQ
+
+CLOG2/32	2DEC	.0216608494
+
diff --git a/ASSEMBLY_AND_OPERATION_INFORMATION.s b/ASSEMBLY_AND_OPERATION_INFORMATION.s
new file mode 100644
index 0000000..410935d
--- /dev/null
+++ b/ASSEMBLY_AND_OPERATION_INFORMATION.s
@@ -0,0 +1,1041 @@
+# Copyright:	Public domain.
+# Filename:	ASSEMBLY_AND_OPERATION_INFORMATION.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.
+# Mod history:	2009-05-05 RSB	Adapted 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 2
+
+# ASSEMBLY AND OPERATIONS INFORMATION
+# TAGS FOR RELATIVE SETLOC AND BLANK BANK CARDS
+# SUBROUTINE CALLS
+#	COMERASE
+#		ERASABLE ASSIGNMENTS
+#	COMAID
+#		INTERRUPT LEAD INS
+#		T4RUPT PROGRAM
+#		DOWNLINK LISTS
+#		FRESH START AND RESTART
+#		RESTART TABLES
+#		SXTMARK
+#		EXTENDED VERBS
+#		PINBALL NOUN TABLES
+#		CSM GEOMETRY
+#		IMU COMPENSATION PACKAGE
+#		PINBALL GAME BUTTONS AND LIGHTS
+#		R60,R62
+#		ANGLFIND
+#		GIMBAL LOCK AVOIDANCE
+#		KALCMANU STEERING
+#		SYSTEM TEST STANDARD LEAD INS
+#		IMU CALIBRATION AND ALIGNMENT
+#	COMEKISS
+#		GROUND TRACKING DETERMINATION PROGRAM -- P21
+#		P34-P35, P74-P75
+#		R31
+#		P76
+#		R30
+#		STABLE ORBIT -- P38-P39
+#	TROUBLE
+#		P11
+#		TP1 SEARCH
+#		P20-P25
+#		P30,P37
+#		P40-P47
+#		P51-P53
+#		LUNAR AND SOLAR EPHEMERIDES SUBROUTINES
+#		P61-P67
+#		SERVICER207
+#		ENTRY LEXICON
+#		REENTRY CONTROL
+#		CM BODY ATTITUDE
+#		P37,P70
+#		S-BAND ANTENNA FOR CM
+#		LUNAR LANDMARK SELECTION FOR CM
+#	TVCDAPS
+#		TVC INITIALIZE
+
+# Page 3
+
+#		TVC EXECUTIVE
+#		TVC MASSPROP
+#		TVC RESTARTS
+#		TVC DAPS
+#		TVC STROKE TEST
+#		TVC ROLLDAP
+#		MYSUBS
+#		RCS-CSM DIGITAL AUTOPILOT
+#		AUTOMATIC MANEUVERS
+#		RCS-CSM DAP EXECUTIVE PROGRAMS
+#		JET SELECTION LOGIC
+#		CM ENTRY DIGITAL AUTOPILOT
+#	CHIEFTAN
+#		DOWN-TELEMETRY PROGRAM
+#		INTER-BANK COMMUNICATION
+#		INTERPRETER
+#		FIXED-FIXED CONSTANT POOL
+#		INTERPRETIVE CONSTANTS
+#		SINGLE PRECISION SUBROUTINES
+#		EXECUTIVE
+#		WAITLIST
+#		LATITUDE LONGITUDE SUBROUTINES
+#		PLANETARY INERTIAL ORIENTATION
+#		MEASUREMENT INCORPORATION
+#		CONIC SUBROUTINES
+#		INTEGRATION INITIALIZATION
+#		ORBITAL INTEGRATION
+#		INFLIGHT ALIGNMENT ROUTINES
+#		POWERED FLIGHT SUBROUTINES
+#		TIME OF FREE FALL
+#		STAR TABLES
+#		AGC BLOCK TWO SELF-CHECK
+#		PHASE TABLE MAINTENANCE
+#		RESTARTS ROUTINE
+#		IMU MODE SWITCHING ROUTINES
+#		KEYRUPT, UPRUPT
+#		DISPLAY INTERFACE ROUTINES
+#		SERVICE ROUTINES
+#		ALARM AND ABORT
+#		UPDATE PROGRAM
+#		RTB OP CODES
+# SYMBOL TABLE LISTING
+# UNREFERANCES SYMBOL LISTING
+# ERASABLE & EQUALS CROSS-REFERENCE TABLE
+# SUMMARY OF SYMBOL TABLE LISTINGS
+# MEMORY TYPE & AVAILABILITY DISPLAY
+# COUNT TABLE
+# PARAGRAPHS GENERATED FOR THIS DISPLAY
+
+# Page 4
+
+# OCTAL LISTING
+# OCCUPIED LOCATIONS TABLE
+# SUBROS CALLED & PROGRAM STATUS
+
+# Page 5
+# VERB LIST FOR CSM
+
+# REGULAR VERBS
+
+# 00	NOT IN USE
+# 01	DISPLAY OCTAL COMP 1 IN R1
+# 02	DISPLAY OCTAL COMP 2 IN R1
+# 03	DISPLAY OCTAL COMP 3 IN R1
+# 04	DISPLAY OCTAL COMP 1,2 IN R1,R2
+# 05	DISPLAY OCTAL COMP 1,2,3 IN R1,R2,R3
+# 06	DISPLAY DECIMAL IN R1 OR R1,R2 OR R1,R2,R3
+# 07	DISPLAY DP DECIMAL IN R1,R2 (TEST ONLY)
+# 08
+# 09
+# 10
+# 11	MONITOR OCTAL COMP 1 IN R1
+# 12 	MONITOR OCTAL COMP 2 IN R1
+# 13	MONITOR OCTAL COMP 3 IN R1
+# 14	MONITOR OCTAL COMP 1,2, IN R1,R2
+# 15	MONITOR OCTAL COMP 1,2,3 IN R1,R2,R3
+# 16	MONITOR DECIMAL IN R1 OR R1,R2 OR R1,R2,R3
+# 17	MONITOR DP DECIMAL IN R1,R2 (TEST ONLY)
+# 18
+# 19
+# 20
+# 21	LOAD COMPONENT 1 INTO R1
+# 22	LOAD COMPONENT 2 INTO R2
+# 23	LOAD COMPONENT 3 INTO R3
+# 24	LOAD COMPONENT 1,2 INTO R1,R2
+# 25	LOAD COMPONENT 1,2,3 INTO R1,R2,R3
+# 26
+# 27	DISPLAY FIXED MEMORY
+# 28
+# 29
+# 30	REQUEST EXECUTIVE
+# 31	REQUEST WAITLIST
+# 32	RECYCLE PROGRAM
+# 33	PROCEED WITHOUT DSKY INPUTS
+# 34	TERMINATE FUNCTION
+# 35	TEST LIGHTS
+# 36	REQUEST FRESH START
+# 37	CHANGE PROGRAM (MAJOR MODE)
+# 38
+# 39
+
+# Page 6
+
+# EXTENDED VERBS
+
+# 40	ZERO CDU'S
+# 41	COARSE ALIGN CDU'S
+# 42	FINE ALIGN IMU'S
+# 43	LOAD IMU ATT ERROR METERS
+# 44	SET   SURFACE FLAG
+# 45	RESET SURFACE FLAG
+# 46	ESTABLISH G&C CONTROL
+# 47	MOVE LM STATE VECTOR INTO CM STATE VECTOR
+# 48	REQUEST DAP DATA LOAD ROUTINE (R03)
+# 49	REQUES CREW DEFINED MANEUVER ROUTINE (R62)
+# 50	PLEASE PERFORM
+# 51	PLEASE MARK
+# 52	MARK ON OFFSET LANDING SITE
+# 53	PLEASE PERFORM ALTERNATE LOS MARK
+# 54	REQUEST RENDEZVOUS BACKUP SIGHTING MARK ROUTIEN (R23)
+# 55	INCREMENT AGC TIME (DECIMAL)
+# 56	TERMINATE TRACKING (P20 & P25)
+# 57	REQUEST RENDEZVOUS SIGHTING MARK ROUTINE (R21)
+# 58	RESET STICK FLAG
+# 59	PLEASE CALIBRATE
+# 60	SET ASTRONAUT TOTAL ATTITUDE (N17) TO PRESENT ATTITUDE
+# 61	DISPLAY DAP ATTITUDE ERROR
+# 62	DISPLAY TOTAL ATTITUDE ERROR (W.R.T. N22 (THETAD))
+# 63	DISPLAY TOTAL ASTRONAUT ATTITUDE ERROR (W.R.T. N17 (CPHIX))
+# 64	REQUEST S-BAND ANTENNA ROUTINE
+# 65	OPTICAL VERIFICATION OF PRELAUNCH ALIGNMENT
+# 66	VEHICLES ARE ATTACHED.  MOVE THIS VEHICLE STATE TO OTHER VEHICLE.
+# 67
+# 68	CSM STROKE TEST ON
+# 69	CAUSE RESTART
+# 70	UPDATE LIFTOFF TIME
+# 71	UNIVERSAL UPDATE - BLOCK ADR
+# 72	UNIVERSAL UPDATE - SINGLE ADR
+# 73	UPDATE AGC TIME (OCTAL)
+# 74	INITIALIZE ERASABLE DUMP VIA DOWNLINK
+# 75	BACKUP LIFTOFF
+# 76	SET PREFERRED ATTITUDE FLAG
+# 77	RESET PREFERRED ATTITUDE FLAG
+# 78	UPDATE PRELAUNCH AZIMUTH
+# 79	REQUEST LUNAR LANDMARK SELECTION ROUTINE (R35)
+# 80	UPDATE LEM STATE VECTOR
+# 81	UPDATE CSM STATE VECTOR
+# 82	REQUEST ORBIT PARAM DISPLAY (R30)
+# 83	REQUEST REND  PARAM DISPLAY (R31)
+# 84	START TARGET DELTA V (R32)
+# 85	REQUEST RENDEZVOUS PARAMETER DISPLAY NO. 2 (R34)
+# 86	REJECT RENDEZVOUS BACKUP SIGHTING MARK
+# 87	SET VHF RANGE FLAG
+
+# Page 7
+
+# 88	RESET VHF RANGE FLAG
+# 89	REQUEST RENDEZVOUS FINAL ATTITUDE ROUTINE (R63)
+# 90	REQUEST RENDEZVOUS OUT OF PLANE DISPLAY ROUTINE (R36)
+# 91	DISPLAY BANK SUM
+# 92	OPERATE IMU PERFORMANCE TEST (P07)
+# 93	ENABLE W MATRIX INITIALIZATION
+# 94	PERFORM SYSLUNAR ATTITUDE MANEUVER (P23)
+# 95	NO UPDATE OF EITHER STATE VECTOR (P20 OR P22)
+# 96	TERMINATE INTEGRATION AND GO TO P00
+# 97	PERFORM ENGINE FAIL PROCEDURE
+# 98	ENABLE TRANSLUNAR INJECT
+# 99	PLEASE ENABLE ENGINE
+
+# Page 8
+# IN THE FOLLOWING NOUN LIST THE 'NO LOAD' RESTRICTION MEANS THE NOUN
+# CONTAINS AT LEAST ONE COMONENT WHICH CANNOT BE LOADED, I.E. OF
+# SCALE TYPE L (MIN/SEC) OR PP (2 INTEGERS).
+
+# IN THIS CASE VERBS 24 AND 25 ARE NOT ALLOWED, BUT VERBS 21, 22, OR 23
+# MAY BE USED TO LOAD ANY O FTHE NOUN'S COMPONENTS WHICH ARE NOT OF THE
+# ABOVE SCALE TYPES.
+
+# THE 'DEC ONLY' RESTRICTION MEANS ONLY DECIMAL OPERATION IS ALLOWED ON
+# EVERY COMPONENT IN THENOUN.  (NOT THAT 'NO LOAD' IMLIES 'DEC ONLY'.)
+
+# NORMAL NOUNS				   COMPONENTS	SCALE & DECIMAL POINT	RESTRICTION
+#
+# 00	NOT IN USE
+# 01	SPECIFY MACHINE ADDRESS (FRACTIONAL)	3COMP	.XXXXX FOR EACH
+# 02	SPECIFY MACHINE ADDRESS (WHOLE)		3COMP	XXXXX. FOR EACH
+# 03	SPECIFY MACHINE ADDRESS (DEGREES)	3COMP	XXX.XX DEG FOR EACH
+# 04	SPARE
+# 05	ANGULAR ERROR/DIFFERENCE		1COMP	XXX.XX DEG
+# 06	OPTION CODE				2COMP	OCTAL ONLY FOR EACH
+# LOADING NOUN 07 WILL SET OR RESET SELECTED BITS IN ANY ERASABLE REGISTER.
+# 07	ECADR OF WORD TO BE MODIFIED		3COMP	OCTAL ONLY FOR EACH
+#	ONES FOR BITS TO BE MODIFIED
+#	1 TO SET OR 0 TO RESET SELECTED BITS
+# 08	ALARM DATA				3COMP	OCTAL ONLY FOR EACH
+# 09	ALARM CODES				3COMP	OCTAL ONLY FOR EACH
+# 10	CHANNEL TO BE SPECIFIED			1COMP	OCTAL ONLY
+# 11	TIG OF CSI				3COMP	00XXX. HRS		DEC ONLY
+#							000XX. MIN		MUST LOAD 3 COMPS
+#							0XX.XX SEC
+# 12	OPTION CODE				2COMP	OCTAL ONLY FOR EACH
+#	(USED BY EXTENDED VERBS ONLY)
+# 13	TIG OF CDH				3COMP	00XXX. HRS		DEC ONLY
+#							000XX. MIN		MUST LOAD 3 COMPS
+#							0XX.XX SEC
+# 14	SPARE
+# 15	INCREMENT MACHINE ADDRESS		1COMP	OCTAL ONLY
+# 16	TIME OF EVENT				3COMP	00XXX. HRS		DEC ONLY
+#	(USED BY EXTENDED VERBS ONLY)			000XX. MIN		MUST LOAD 3 COMPS
+#							0XX.XX SEC
+# 17	ASTRONAUT TOTAL ATTITUDE		3COMP	XXX.XX DEG FOR EACH
+# 18	AUTO MANEUVER BALL ANGLES		3COMP	XXX.XX DEG FOR EACH
+# 19	BYPASS ATTITUDE TRIM MANEUVER		3COMP	XXX.XX DEG FOR EACH
+# 20	ICDU ANGLES				3COMP	XXX.XX DEG FOR EACH
+# 21	PIPAS					3COMP	XXXXX. PULSES FOR EACH
+# 22	NEW ICDU ANGLES				3COMP	XXX.XX DEG FOR EACH
+# 23	SPARE
+# 24	DELTA TIME FOR AGC CLOCK		3COMP	00XXX. HRS.		DEC ONLY
+#							000XX. MIN		MUST LOAD 3 COMPS
+#							0XX.XX SEC
+# 25	CHECKLIST				3COMP	XXXXX. FOR EACH
+#	(USED WITH PLEASE PERFORM ONLY)
+
+# Page 9
+
+# 26	PRIORITY/DELAY, ADRES, BBCON		3COMP	OCTAL ONLY FOR EACH
+# 27	SELF TEST ON/OFF SWITCH			1COMP	XXXXX.
+# 28	SPARE
+# 29	XSM LAUNCH AZIMUTH			1COMP	XXX.XX DEG		DEC ONLY
+
+# Page 10
+
+# 30	TARGET CODES				3COMP	XXXXX. FOR EACH
+# 31	TIME OF LANDING SITE			3COMP	00XXX. HRS		DEC ONLY
+#							000XX. MIN		MUST LOAD 3 COMPS
+# 							0XX.XX SEC
+# 32	TIME FROM PERIGEE			3COMP	00XXX. HRS		DEC ONLY
+#							000XX. MIN		MUST LOAD 3 COMPS
+#							0XX.XX SEC
+# 33	TIME OF IGNITION			3COMP	00XXX. HRS		DEC ONLY
+#							000XX. MIN		MUST LOAD 3 COMPS
+#							0XX.XX SEC
+# 34	TIME OF EVENT				3COMP	00XXX. HRS		DEC ONLY
+#							000XX. MIN		MUST LOAD 3 COMPS
+#							0XX.XX SEC
+# 35	TIME FROM EVENT				3COMP	00XXX. HRS		DEC ONLY
+#							000XX. MIN		MUST LOAD 3 COMPS
+#							0XX.XX SEC
+# 36	TIME OF AGC CLOCK			3COMP	00XXX. HRS		DEC ONLY
+#							000XX. MIN		MUST LOAD 3 COMPS
+#							0XX.XX SEC
+# 37	TIG OF TPI				3COMP	00XXX. HRS		DEC ONLY
+#							000XX. MIN		MUST LOAD 3 COMPS
+#							0XX.XX SEC
+# 38	TIME OF STATE VECTOR			3COMP	00XXX. HRS		DEC ONLY
+#							000XX. MIN		MUST LOAD 3 COMPS
+#							0XX.XX SEC
+# 39	DELTA TIME FOR TRANSFER			3COMP	00XXX. HRS		DEC ONLY
+#							000XX. MIN		MUST LOAD 3 COMPS
+#							0XX.XX SEC
+
+# Page 11
+
+# MIXED NOUNS				   COMPONENTS	SCALE & DECIMAL POINT	RESTRICTION
+#
+# 40	TIME FROM IGNITION/CUTOFF		3COMP	XXBXX  MIN/SEC		NO LOAD, DEC ONLY
+#	VG						XXXX.X FT/SEC
+#	DELTA V (ACCUMULATED)				XXXX.X FT/SEC
+# 41	TARGET	AZIMUTH				2COMP	XXX.XX DEG
+#		ELEVATION				XX.XXX DEG
+# 42	APOGEE					3COMP	XXXX.X NAUT MI		DEC ONLY
+#	PERIGEE						XXXX.X NAUT MI
+#	DELTA V (REQUIRED)				XXXX.X FT/SEC
+# 43	LATITUDE				3COMP	XXX.XX DEG		DEC ONLY
+#	LONGITUDE					XXX.XX DEG
+#	ALTITUDE					XXXX.X NAUT MI
+# 44	APOGEE					3COMP	XXXX.X NAUT MI		NO LOAD, DEC ONLY
+#	PERIGEE						XXXX.X NAUT MI
+#	TFF						XXBXX  MIN/SEC
+# 45	MARKS (VHF - OPTICS)			3COMP	+XXBXX			NO LOAD, DEC ONLY
+#	TFI OF NEXT BURN				XXBXX  MIN/SEC
+#	MGA						XXX.XX DEG
+# 46	AUTOPILOT CONFIGURATION			2COMP	OCTAL ONLY FOR EACH
+# 47	THIS VEHICLE WEIGHT			2COMP	XXXXX. LBS		DEC ONLY
+#	OTHER VEHICLE WEIGHT				XXXXX. LBS
+# 48	PITCH TRIM				2COMP	XXX.XX DEG		DEC ONLY
+#	YAW TRIM					XXX.XX DEG
+# 49	DELTA R					3COMP	XXXX.X NAUT MI		DEC ONLY
+#	DELTA V						XXXX.X FT/SEC
+#	VHF OR OPTICS CODE				XXXXX.
+# 50	SPLASH ERROR				3COMP	XXXX.X NAUT MI		NO LOAD, DEC ONLY
+#	PERIGEE						XXXX.X NAUT MI
+#	TFF						XXBXX  MIN/SEC
+# 51	S-BAND ANTENNA ANGLES	PITCH		2COMP	XXX.XX DEG		DEC ONLY
+#				YAW			XXX.XX DEG
+# 52	CENTRAL ANGLE OF ACTIVE VEHICLE		1COMP	XXX.XX DEG
+# 53	RANGE					3COMP	XXX.XX NAUT MI		DEC ONLY
+#	RANGE RATE					XXXX.X FT/SEC
+#	PHI						XXX.X DEG
+# 54	RANGE					3COMP	XXX.XX NAUT MI		DEC ONLY
+#	RANGE RATE					XXXX.X FT/SEC
+#	THETA						XXX.XX DEG
+# 55	PERIGEE CODE				3COMP	XXXXX.			DEC ONLY
+#	ELEVATION ANGLE					XXX.XX DEG
+#	CENTRAL ANGLE OF PASSIVE VEHICLE		XXX.XX DEG
+# 56	REENTRY ANGLE				2COMP	XXX.XX DEG		DEC ONLY
+#	DELTA V						XXXXX. FT/SEC
+# 57	DELTA R					1COMP	XXXX.X NAUT MI		DEC ONLY
+# 58	PERIGEE ALT (POST TPI)			3COMP	XXXX.X NAUT MI		DEC ONLY
+#	DELTA V TPI					XXXX.X FT/SEC
+#	DELTA V TPF					XXXX.X FT/SEC
+# 59	DELTA VELOCITY LOS			3COMP	XXXX.X FT/SEC FOR EACH	DEC ONLY
+# 60	GMAX					3COMP	XXX.XX G		DEC ONLY
+
+# Page 12
+
+#	VPRED						XXXXX. FT/SEC
+#	GAMMA EI					XXX.XX DEG
+# 61	IMPACT LATITUDE				3COMP	XXX.XX DEG		DEC ONLY
+#	IMPACT LONGITUDE				XXX.XX DEG
+#	HEADS UP/DOWN					+/- 00001
+# 62	INERTIAL VEL MAG (VI)			3COMP	XXXXX. FT/SEC		DEC ONLY
+#	ALT RATE CHANGE (HDOT)				XXXXX. FT/SEC
+#	ALT ABOVE PAD RADIUS (H)			XXXX.X NAUT MI
+# 63	RANGE 297,431 TO SPLASH (RTGO)		3COMP	XXXX.X NAUT MI		NO LOAD, DEC ONLY
+#	PREDICTED INERT VEL (VIO)			XXXXX. FT/SEC
+#	TIME FROM 297,431 (TFE)				XXBXX  MIN/SEC
+# 64	DRAG ACCELERATION			3COMP	XXX.XX G		DEC ONLY
+#	INERTIAL VELOCITY (VI)				XXXXX. FT/SEC
+#	RANGE TO SPLASH					XXXX.X NAUT MI
+# 65	SAMPLED AGC TIME			3COMP	00XXX. HRS		DEC ONLY
+#	(FETCHED IN INTERRUPT)				000XX. MIN
+#							0XX.XX SEC
+# 66	COMMAND BANK ANGLE (BETA)		3COMP	XXX.XX DEG		DEC ONLY
+#	CROSS RANGE ERROR				XXXX.X NAUT MI
+#	DOWN RANGE ERROR				XXXX.X NAUT MI
+# 67	RANGE TO TARGET				3COMP	XXXX.X NAUT MI		DEC ONLY
+#	PRESENT LATITUDE				XXX.XX DEG
+#	PRESENT LONGITUDE				XXX.XX DEG
+# 68	COMMAND BANK ANGLE (BETA)		3COMP	XXX.XX DEG		DEC ONLY
+#	INERTIAL VELOCITY (VI)				XXXXX. FT/SEC
+#	ALT RATE CHANGE (RDOT)				XXXXX. FT/SEC
+# 69	BETA					3COMP	XXX.XX DEG
+#	DL						XXX.XX G
+#	VL						XXXXX. FT/SEC
+# 70	STAR CODE				3COMP	OCTAL ONLY
+#	LANDMARK DATA					OCTAL ONLY
+#	HORIZON DATA					OCTAL ONLY
+# 71	STAR CODE				3COMP	OCTAL ONLY
+#	LANDMARK DATA					OCTAL ONLY
+#	HORIZON DATA					OCTAL ONLY
+# 72	DELT ANG				3COMP	XXX.XX DEG		DEC ONLY
+# 73	ALTITUDE				3COMP	XXXXXB. NAUT MI
+#	VELOCITY					XXXXX.  FT/SEC
+#	FLIGHT PATH ANGLE				XXX.XX  DEG
+# 74	COMMAND BANK ANGLE (BETA)		3COMP	XXX.XX DEG
+#	INERTIAL VELOCITY (VI)				XXXXX. FT/SEC
+#	DRAG ACCELERATION				XXX.XX G
+# 75	DELTA ALTITUDE CDH			3COMP	XXXX.X NAUT MI		NO LOAD, DEC ONLY
+#	DELTA TIME (CDH-CSI OR TPI-CDH)			XXBXX  MIN/SEC
+#	DELTA TIME (TPI-CDH OR TPI-NOMTPI)		XXBXX  MIN/SEC
+# 76	SPARE
+# 77	SPARE
+# 78	SPARE
+# 79	SPARE
+# 80	TIME FROM IGNITION/CUTOFF		3COMP	XXBXX  MIN/SEC		NO LOAD, DEC ONLY
+
+# Page 13
+
+#	VG						XXXXX. FT/SEC
+#	DELTA V (ACCUMULATED)				XXXXX. FT/SEC
+# 81	DELTA V (LV)				3COMP	XXXX.X FT/SEC FOR EACH	DEC ONLY
+# 82	DELTA V (LV)				3COMP	XXXX.X FT/SEC FOR EACH	DEC ONLY
+# 83	DELTA V (BODY)				3COMP	XXXX.X FT/SEC FOR EACH	DEC ONLY
+# 84	DELTA V (OTHER VEHICLE)			3COMP	XXXX.X FT/SEC FOR EACH	DEC ONLY
+# 85	VG (BODY)				3COMP	XXXX.X FT/SEC FOR EACH	DEC ONLY
+# 86	DELTA V (LV)				3COMP	XXXXX. FT/SEC FOR EACH	DEC ONLY
+# 87	MARK DATA	SHAFT			2COMP	XXX.XX DEG
+#			TRUNION				XX.XXX DEG
+# 88	HALF UNIT SUN OR PLANET VECTOR		3COMP	.XXXXX FOR EACH		DEC ONLY
+# 89	LANDMARK	LATITUDE		3COMP	XX.XXX DEG		DEC ONLY
+#			LONGITUDE/2			XX.XXX DEG
+#			ALTITUDE			XXX.XX NAUT MI
+# 90	Y					3COMP	XXX.XX NM		DEC ONLY
+#	Y DOT						XXXX.X FPS
+#	PSI						XXX.XX DEG
+# 91	OCDU ANGLES	SHAFT			2COMP	XXX.XX DEG
+#			TRUNION				XX.XXX DEG
+# 92	NEW OPTICS ANGLES	SHAFT		2COMP	XXX.XX DEG
+#				TRUNON			XX.XXX DEG
+# 93	DELTA GYRO ANGLES			3COMP	XX.XXX DEG FOR EACH
+# 94	NEW OPTICS ANGLES	SHAFT		2COMP	XXX.XX DEG
+#				TRUNION			XX.XXX DEG
+# 95	PREFERRED ATTITUDE ICDU ANGLES		3COMP	XXX.XX FOR EACH
+# 96	+X-AXIS ATTITUDE ICDU ANGLES		3COMP	XXX.XX DEG FOR EACH
+# 97	SYSTEM TEST INPUTS			3COMP	XXXXX. FOR EACH
+# 98	SYSTEM TEST RESULTS AND INPUTS		3COMP	XXXXX.
+#							.XXXXX
+#							XXXXX.
+# 99	RMS IN POSITION				3COMP	XXX.XX NAUT MI		DEC ONLY
+#	RMS IN VELOCITY					XXXX.X FT/SEC
+#	RMS OPTION					XXXXX.
+
+# Page 14
+
+# REGISTERS AND SCALING FOR NORMAL NOUNS
+#
+# NOUN	REGISTER		SCALE TYPE
+#
+# 00	NOT IN USE
+# 01	SPECIFY ADDRESS		H
+# 02	SPECIFY ADDRESS		C
+# 03	SPECIFY ADDRESS		D
+# 04	SPARE
+# 05		DSPTEM1		H
+# 06		OPTION1		A
+# 07		XREG		A
+# 08		ALMCADR		A
+# 09		FAILREG		A
+# 10	SPECIFY CHANNEL		A
+# 11		TCSI		K
+# 12		OPTIONX		A
+# 13		TCDH		K
+# 14	SPARE
+# 15	INCREMENT ADDRESS	A
+# 16		DSPTEMX		C
+# 17		CPHIX		D
+# 18		THETAD		D
+# 19		THETAD		D
+# 20		CDUX		D
+# 21		PIPAX		C
+# 22		THETAD		D
+# 23	SPARE
+# 24		DSPTEM2 +1	K
+# 25		DSPTEM1		C
+# 26		DSPTEM1		A
+# 27		SMODE		C
+# 28	SPARE
+# 29		DSPTEM1		D
+# 30		DSPTEM1		C
+# 31		DSPTEM1		K
+# 32		-TPER		K
+# 33		TIG		K
+# 34		DSPTEM1		K
+# 35		TTOGO		K
+# 36		TIME2		K
+# 37		TTP1		K
+# 38		TET		K
+# 39		T3TOT4		K
+
+# Page 15
+
+# REGISTERS AND SCALING FOR MIXED NOUNS
+#
+# NOUN	COMP	REGISTER	SCALE TYPE
+#
+# 40	1	TTOGO		L
+#	2	VGDISP		S
+#	3	DVTOTAL		S
+# 41	1	DSPTEM1		D
+#	2	DSPTEM1 +1	E
+# 42	1	HAPO		Q
+#	2	HPER		Q
+#	3	VGDISP		S
+# 43	1	LAT		H
+#	2	LONG		H
+#	3	ALT		Q
+# 44	1	HAPOX		Q
+#	2	HPERX		Q
+#	3	TFF		L
+# 45	1	VHFCNT		PP
+#	2	TTOGO		L
+#	3	+MGA		H
+# 46	1	DAPDATR1	A
+#	2	DAPDATR2	A
+# 47	1	CSMMASS		KK
+#	2	LEMMASS		KK
+# 48	1	PACTOFF		FF
+#	2	YACTOFF		FF
+# 49	1	N49DISP		Q
+#	2	N49DISP +2	S
+#	3	N49DISP +4	C
+# 50	1	RSP-RREC	LL
+#	2	HPERX		Q
+#	3	TFF		L
+# 51	1	RHOSB		H
+#	2	GAMMASB		H
+# 52	1	ACTCENT		H
+# 53	1	RANGE		JJ
+#	2	RRATE		S
+# 	3	RTHETA		H
+# 54	1	RANGE		JJ
+#	2	RRATE		S
+# 	3	RTHETA		H
+# 55	1	NN1		C
+# 	2	ELEV		H
+#	3	CENTANG		H
+# 56	1	RTEGAM2D	H
+#	2	RTEDVD		P
+# 57	1	DELTAR		Q
+# 58	1	POSTTPI		Q
+#	2	DELVTPI		S
+
+# Page 16
+
+#	3	DELVTPF		S
+# 59	1	DVLOS		S
+#	2	DVLOS +2	S
+#	3	DVLOS +4	S
+# 60	1	GMAX		T
+#	2	VPRED		P
+#	3	GAMMAEI		H
+# 61	1	LAT (SPL)	H
+#	2	LNG (SPL)	H
+#	3	HEADSUP		C
+# 62	1	VMAGI		P
+#	2	HDOT		P
+#	3	ALTI		Q
+# 63	1	RTGO		LL
+#	2	VIO		P
+#	3	TTE		L
+# 64	1	D		MM
+#	2	VMAGI		P
+#	3	RTGON64		LL
+# 65	1	SAMPTIME	K
+#	2	SAMPTIME	K
+#	3	SAMPTIME	K
+# 66	1	ROLLC		H
+#	2	XRNGERR		VV
+#	3	DNRNGERR	LL
+# 67	1	RTGON67		LL
+#	2	LAT		H
+#	3	LONG		H
+# 68	1	ROLLC		H
+#	2	VMAGI		P
+#	3	RDOT		UU
+# 69	1	ROLLC		H
+#	2	Q7		MM
+#	3	VL		UU
+# 70	1	STARCODE	A
+#	2	LANDMARK	A
+#	3	HORIZON		A
+# 71	1	STARCODE	A
+#	2	LANDMARK	A
+#	3	HORIZON		A
+# 72	1	THETZERO	H
+# 73	1	P21ALT		Q (MEMORY/100 TO DISPLAY TENS N.M.)
+#	2	P21VEL		P
+#	3	P21GAM		H
+# 74	1	ROLLC		H
+#	2	VMAGI		P
+#	3	D		MM
+# 75	1	DIFFALT		Q
+#	2	T1TOT2		L
+#	3	T2TOT3		L
+
+# Page 17
+
+# 76	SPARE
+# 77	SPARE
+# 78	SPARE
+# 79	SPARE
+# 80	1	TTOGO		L
+#	2	VGDISP		P
+#	3	DVTOTAL		P
+# 81	1	DELVLVC		S
+#	2	DELVLVC +2	S
+#	3	DELVLVC +4	S
+# 82	1	DELVLVC		S
+#	2	DELVLVC +2	S
+#	3	DELVLVC +4	S
+# 83	1	DELVIMU		S
+#	2	DELVIMU +2	S
+#	3	DELVIMU +4	S
+# 84	1	DELVOV		S
+#	2	DELVOV +2	S
+#	3	DELVOV +4	S
+# 85	1	VGBODY		S
+#	2	VGBODY +2	S
+#	3	VGBODY +4	S
+# 86	1	DELVLVC		P
+#	2	DELVLVC +2	P
+#	3	DELVLVC +4	P
+# 87	1	MRKBUF1 +3	D
+#	2	MRKBUF1 +5	J
+# 88	1	STARSAV		ZZ
+#	2	STARSAV +2	ZZ
+#	3	STARSAV +4	ZZ
+# 89	1	LANDLAT		G
+#	2	LANDLONG	G
+#	3	LANDALT		JJ
+# 90	1	RANGE		JJ
+#	2	RRATE		S
+#	3	RTHETA		H
+# 91	1	CDUS		D
+#	2	CDUT		J
+# 92	1	SAC		D
+#	2	PAC		J
+# 93	1	OGC		G
+#	2	OGC +2		G
+#	3	OGC +4		G
+# 94	1	MRKBUF1 +3	D
+#	2	MRKBUF1 +5	J
+# 95	1	PRAXIS		D
+#	2	PRAXIS +1	D
+#	3	PRAXIS +2	D
+# 96	1	CPHIX		D
+#	2	CPHIX +1	D
+
+# Page 18
+
+#	3	CPHIX +2	D
+# 97	1	DSPTEM1		C
+#	2	DSPTEM1 +1	C
+# 	3	DSPTEM1 +2	C
+# 98	1	DSPTEM2		C
+#	2	DSPTEM2 +1	B
+#	3	DSPTEM2 +2	C
+# 99	1	WWPOS		XX
+#	2	WWVEL		YY
+#	3	WWOPT		C
+
+# Page 19
+
+# NOUN SCALES AND FORMATS
+#
+# -SCALE TYPE-				PRECISION
+# UNITS			DECIMAL FORMAT		--	AGC FORMAT
+# ------------		--------------		--	----------
+#
+# -A-
+# OCTAL			XXXXX			SP	OCTAL
+#
+# -B-								 -14
+# FRACTIONAL		.XXXXX			SP	BIT 1 = 2    UNITS
+#			(MAX .99996)
+#
+# -C-
+# WHOLE			XXXXX.			SP	BIT 1 = 1 UNIT
+#			(MAX 16383.)
+#
+# -D-								     15
+# CDU DEGREES		XXX.XX DEGREES		SP	BIT 1 = 360/2   DEGREES
+#			(MAX 359.99)			(USES 15 BITS FOR MAGNI-
+#							TUDE AND 2'S COMP.)
+#
+# -E-								    14
+# ELEVATION DEGREES	XX.XXX DEGREES		SP	BIT 1 = 90/2   DEGREES
+#			(MAX 89.999)
+#
+# -F-								     14
+# DEGREES (180)		XXX.XX DEGREES		SP	BIT 1 = 180/2   DEGREES
+#			(MAX 179.99)
+#
+# -G-
+# DP DEGREES (90)	XX.XXX DEGREES		DP	BIT 1 OF LOW REGISTER =
+#							     28
+#							360/2   DEGREES
+#
+# -H-
+# DP DEGREES (360)	XXX.XX DEGREES		DP	BIT 1 OF LOW REGISTER =
+#			(MAX 359.99)			     28
+#							360/2   DEGREES
+#
+# -J-								    15
+# Y OPTICS DEGREES	XX.XXX DEGREES		SP	BIT 1 = 90/2   DEGREES
+#			(BIAS OF 19.775			(USES 15 BITS FOR MAGNI-
+#			DEGREES ADDED FOR		TUDE AND S'S COMP.)
+#			DISPLAY, SUBTRACTED
+#			FOR LOAD.)
+#			NOTE:  NEGATIVE NUM-
+#			BERS CANNOT BE 
+#			LOADED.
+#
+# -K-
+
+# Page 20
+
+# TIME (HR, MIN, SEC)	00XXX. HR		DP	BIT 1 OF LOW REGISTER =
+#			000XX. MIN			  -2
+#			0XX.XX SEC			10   SEC
+#			(DECIMAL ONLY.
+#			MAX MIN COMP = 59
+#			MAX SEC COMP = 59.99
+#			MAX CAPACITY = 745 HRS
+#					39 MINS
+#					14.55 SECS.
+#			WHEN LOADING, ALL 3
+#			COMPONENTS MUST BE
+#			SUPPLIED.)
+#
+# -L-
+# TIME (MIN/SEC)	XXBXX MIN/SEC		DP	BIT 1 OF LOW REGISTER =
+#			(B IS A BLANK			  -2
+#			POSITION, DECIMAL		10   SEC
+#			ONLY, DISPLAY OR 
+#			MONITOR ONLY.  CANNOT
+#			BE LOADED.
+#			MAX MIN COMP = 59
+#			MAX SEC COMP = 59
+#			VALUES GREATER THAN
+#			59 MIN 59 SEC
+#			ARE DISPLAYED AS
+#			59 MIN 59 SEC.)
+#
+# -M-								  -2
+# TIME (SEC)		XXX.XX SEC		SP	BIT 1 = 10   SEC
+#			(MAX 163.83)
+#
+# -N-
+# TIME (SEC) DP		XXX.XX SEC		DP	BIT 1 OF LOW REGISTER =
+#							  -2
+#							10   SEC
+#
+# -P-
+# VELOCITY 2		XXXXX. FEET/SEC		DP	BIT 1 OF HIGH REGISTER =
+#			(MAX 41994.)			 -7
+#							2   METERS/CENTI-SEC
+#
+# -Q-
+# POSITION 4		XXXX.XX NAUTICAL MILES	DP	BIT 1 OF LOW REGISTER =
+#							2 METERS.
+#
+# -S-
+# VELOCITY 3		XXXX.X FT/SEC		DP	BIT 1 OF HIGH REGISTER =
+#							 -7
+#							2   METERS/CENTI-SEC
+
+# Page 21
+
+# -T-								  -2
+# G			XXX.XX G		SP	BIT 1 = 10   G
+#			(MAX 163.83)
+#
+# -FF-
+# TRIM DEGREES		XXX.XX DEG.		SP	LOW ORDER BIT = 85.41 SEC
+#			(MAX 388.69)			OF ARC
+#
+# -GG-
+# INERTIA		XXXXXBB. SLUG FT SQ	SP	FRACTIONAL PART OF
+#			(MAX 07733BB.)			 20     2
+#							2   KG M
+#
+# -II-									    20
+# THRUST MOMENT		XXXXXBB. FT LBS		SP	FRACTIONAL PART OF 2
+#			(MAX 07733BB.)			NEWTON METER
+#
+# -JJ-
+# POSITION5		XXX.XX NAUT MI		DP	BIT 1 OF LOW REGISTER =
+#							2 METERS
+#
+# -KK-									    16
+# WEIGHT2		XXXXX. LBS		SP	FRACTIONAL PART OF 2   KG
+#
+# -LL-
+# POSITION6		XXXX.X NAUT MI		DP	BIT 1 OF LOW REG =
+#									    -28
+#							(6,373,338)(2(PI))x2
+#							-----------------------
+#								1852
+#							NAUT MI.
+#
+# -MM-
+# DRAG ACCELERATION	XXX.XX G		DP	BIT 1 OF LOW REGISTER =
+#			MAX (024.99)			    -28
+#							25x2    G
+#
+# -PP-
+# 2 INTEGERS		+XXBYY			DP	BIT 1 OF HIGH REGISTER =
+#			(B IS A BLANK				1 UNIT OF XX
+#			POSITION.  DECIMAL		BIT 1 OF LOW REGISTER =
+#			ONLY, DISPLAY, OR			1 UNIT OF YY
+#			MONITOR ONLY.  CANNOT		(EACH REGISTER MUST
+#			BE LOADED.)			LESS THAN 100.)
+#			(MAX 99B99)
+#
+# -UU-
+# VELOCITY/2VS		XXXXX. FEET/SEC		DP	FRACTIONAL PART OF 
+#			(MAX 51532.)			2VS FEET/SEC
+#							(VS = 25766.1973)
+
+# Page 22
+
+# -VV-
+# POSITION8		XXXX.X NAUT MI		DP	BIT 1 OF LOW REGISTER =
+#									 -28
+#							4 x 6,373,338 x 2
+#							--------------------
+#								1852
+#							NAUT MI.
+#
+# -XX-
+# POSITION 9		XXX.XX NAUT MI		DP	BIT 1 OF LOW REGISTER =
+#			(MAX 283.09)			 -9
+#							2   METERS.
+#
+# -YY-
+# VELOCITY 4		XXXX.X FEET/SEC		DP	FRACTIONAL PART OF
+#			(MAX 328.0)			METERS/CENTI-SEC
+#
+# -ZZ-
+# DP FRACTIONAL		.XXXXX			DP	BIT 1 OF HIGH REGISTER =
+#							 -14
+#							2    UNITS
+
+
+# THAT'S ALL ON THE NOUNS.
+
+# Page 23
+
+# ALARM CODES FOR 504
+
+# REPORT DEFICIENCIES TO JOHN SUTHERLAND:  MIT 617-864-6900 X1458
+
+# *9		*18						*60			*25  COLUMN
+#
+# CODE       *	TYPE						SET BY			ALARM ROUTINE
+#
+# 00110		NO MARK SINCE LAST MARK REJECT			SXTMARK			ALARM
+# 00112		MARK NOT BEING ACCEPTED				SXTMARK			ALARM
+# 00113		NO NBITS					SXTMARK			ALARM
+# 00114		MARK MADE BUT NOT DESIRED			SXTMARK			ALARM
+# 00115		OPTICS TORQUE REQUEST WITH SWITCH NOT AT	EXT VERB OPTICS CDU	ALARM
+# 			CGC
+# 00116		OPTICS SWITCH ALTERED BEFORE 15 SEC ZERO	T4RUPT			ALARM
+#			TIME ELAPSED.
+# 00117		OPTICS TORQUE REQUEST WITH OPTICS NOT		EXT VERB OPTICS CDU	ALARM
+#			AVAILABLE (OPTIND=-0)
+# 00120		OPTICS TORQUE REQUEST WITH OPTICS		T4RUPT			ALARM
+#			NOT ZEROED.
+# 00121		CDUS NO GOOD AT TIME OF MARK			SXTMARK			ALARM
+# 00122		MARKING NOT CALLED FOR				SXTMARK			ALARM
+# 00124		P17 TPI SEARCH - NO SAFE PERICTR HERE.		TPI SEARCH		ALARM
+# 00205		BAD PIPA READING				SERVICER		ALARM
+# 00206		ZERO ENCODE NOT ALLOWED WITH COARSE ALIGN	IMU MODE SWITCHING	ALARM
+# 			+ GIMBAL LOCK.
+# 00207		ISS TURNON REQUEST NOT PRESENT FOR 90 SEC	T4RUPT			ALARM
+# 00210		IMU NOT OPERATING				IMU MODE SWITCH,	ALARM, VARALARM
+#								IMU-2, R02, P51
+# 00211		COARSE ALIGN ERROR - DRIVE > 2 DEGREES		IMU MODE SWITCH		ALARM
+# 00212		PIPA FAIL BUT PIPA IS NOT BEING USED		IMU MODE SWITCH, T4RUPT	ALARM
+# 00213		IMU NOT OPERATING WITH TURN-ON REQUEST		T4RUPT			ALARM
+# 00214		PROGRAM USING IMU WHEN TURNED OFF		T4RUPT			ALARM
+# 00215		PREFERRED ORIENTATION NOT SPECIFIED		P52,P54			ALARM
+# 00217		BAD RETURN FROM STALL ROUTINES			CURTAINS		ALARM2
+# 00220		IMU NOT ALIGNED - NO REFSMMAT			R02,P51			VARALARM
+# 00401		DESIRED GIMBAL ANGLES YIELD GIMBAL LOCK		IMF ALIGN, IMU-2	ALARM
+# 00404		TARGET OUT OF VIEW - TRUN ANGLE > 90 DEG	R52			PRIOLARM
+# 00405		TWO STARS NOT AVAILABLE				P52,P54			ALARM
+# 00406		REND NAVIGATION NOT OPERATING			P21,R23			ALARM
+# 00407		AUTO OPTICS REQUEST TRUN ANGLE > 50 DEG.	R52			ALARM
+# 00421		W-MATRIX OVERFLOW				INTEGRV			ALARM
+# 00430	     *	INTEG. ABORT DUE TO SUBSURFACE S. V.		ALL CALLS TO INTEG	POODOO
+# 00600		IMAGINARY ROOTS ON FIRST ITERATION		P32, P72		VARALARM
+# 00601		PERIGEE ALTITUDE LT PMIN1			P32,P72			VARALARM
+# 00602		PERIGEE ALTITUDE LT PMIN2			P32,P72			VARALARM
+# 00603		CSI TO CDH TIME LT PMIN22			P32,P72,P33,P73		VARALARM
+# 00604		CDH TO TPI TIME LT PMIN23			P32,P72			VARALARM
+# 00605		NUMBER OF ITERATIONS EXCEEDS LOOP MAXIMUM	P32,P72,P37		VARALARM
+# 00606		DV EXCEEDS MAXIMUM				P32,P72			VARALARM
+# 00607	     *	NO SOLN FROM TIME-THETA OR TIME-RADIUS		TIMETHET,TIMERAD	POODOO
+
+# Page 24
+
+# 00610      *	LAMBDA LESS THAN UNITY				P37			POODOO
+# 00611		NO TIG FOR GIVEN ELEV ANGLE			P34,P74			VARALARM
+# 00612		STATE VECTOR IN WRONG SPHERE OF INFLUENCE	P37			VARALARM
+# 00613		REENTRY ANGLE OUT OF LIMITS			P37			VARALARM
+# 00777		PIPA FAIL CAUSED ISS WARNING.			T4RUPT			VARALARM
+# 01102		CMC SELF TEST ERROR							ALARM2
+# 01103      *	UNUSED CCS BRANCH EXECUTED			ABORT			ALARM2
+# 01104      *	DELAY ROUTINE BUSY				EXEC			BAILOUT
+# 01105		DOWNLINK TOO FAST				T4RUPT			ALARM
+# 01106		UPLINK TOO FAST					T4RUPT			ALARM
+# 01107		PHASE TABLE FAILURE.  ASSUME			RESATRT			ALARM
+#		ERASABLE MEMORY IS DESTROYED
+# 01201	     *	EXECUTIVE OVERFLOW - NO VAC AREAS		EXEC			BAILOUT
+# 01202	     *	EXECUTIVE OVERFLOW - NO CORE SETS		EXEC			BAILOUT
+# 01203      *	WAITLIST OVERFLOW - TOO MANY TASKS		WAITLIST		BAILOUT
+# 01204      *	NEGATIVE OR ZERO WAITLIST CALL			WAITLIST		POODOO
+# 01206      *	SECOND JOB ATTEMPTS TO GO TO SLEEP		PINBALL			P00DOO
+#			VIA KEYBOARD AND DISPLAY PROGRAM
+# 01207      *	NO VAC AREA FOR MARKS				SXTMARK			BAILOUT
+# 01210	     *	TWO PROGRAMS USING DEVICE AT SAME TIME		IMU MODE SWITCH		P00DOO
+# 01211      *	ILLEGAL INTERRUPT OF EXTENDED VERB		SXTMARK			BAILOUT
+# 01301		ARCSIN-ARCCOS ARGUMENT TOO LARGE		INTERPRETER		ALARM
+# 01302      *	SQRT CALLED WITH NEGATIVE ARGUMENT. ABORT.	INTERPRETER		P00DOO
+# 01407		VG INCREASING					S40.8			ALARM
+# 01426		IMU UNSATISFACTORY				P61,P62			ALARM
+# 01427		IMU REVERSED					P61,P62			ALARM
+# 01501	     *	KEYBOARD AND DISPLAY ALARM DURING		PINBALL			P00DOO
+#			INTERNAL USE (NVSUB). ABORT.
+# 01502	     *	ILLEGAL FLASHING DISPLAY			GOPLAY			P00DOO
+# 01520		V37 REQUEST NOT PERMITTED AT THIS TIME		V37			ALARM
+# 01521	     *	P01 ILLEGALLY SELECTED				P01, P07		POODOO
+# 01600		OVERFLOW IN DRIFT TEST				OPT PRE ALIGN CALIB	ALARM
+# 01601      *	BAD IMU TORQUE - ABORT.				OPT PRE ALIGN CALIB	ALARM
+# 01602		BAD OPTICS DURING VERIFICATION			OPTALGN CALIB (CSM)	ALARM
+# 01703		INSUF. TIME FOR INTEG., TIG WAS SLIPPED		R41			ALARM
+# 03777		ICDU FAIL CAUSED THE ISS WARNING		T4RUPT			VARALARM
+# 04777		ICDU, PIPA FAILS CAUSED THE ISS WARNING		T4RUPT			VARALARM
+# 07777		IMU FAIL CAUSED THE ISS WARNING			T4RUPT			VARALARM
+# 10777		IMU, PIPA FAILS CAUSED THE ISS WARNING		T4RUPT			VARALARM
+# 13777		IMU, ICDU FAILS CAUSED THE ISS WARNING		T4RUPT			VARALARM
+# 14777		IMU, ICDU, PIPA FAILS CAUSED THE ISS WARNING	T4RUPT			VARALARM
+#
+# 	     *	INDICATES ABORT TYPE. ALL OTHERS ARE NON-ABORTIVE
+
+# Page 25
+
+# CHECKLIST CODES FOR 504
+
+# PLEASE REPORT ANY DEFICIENCIES IN THIS LIST TO JOHN SUTHERLAND.
+
+# *9		*17		*26  COLUMN
+#
+# R1 CODE	   ACTION TO BE EFFECTED
+#
+# 00014		KEY IN		FINE ALIGNMENT OPTION
+# 00015		PERFORM		CELESTIAL BODY ACQUISITION
+# 00016		KEY IN		TERMINATE MARK SEQUENCE
+# 00041		SWITCH		CM/SM SEPARATION TO UP
+# 00062		SWITCH		AGC POWER DOWN
+# 00202		PERFORM		GNCS AUTOMATIC MANEUVER
+# 00203		SWITCH		TO CMC-AUTO
+# 00204		PERFORM		SPS GIMBAL TRIM
+# 00403		SWITCH		OPTICS TO MANUAL OR ZERO
+#
+#		SWITCH DENOTES CHANGE OF POSITION OF A CONSOLE SWITCH
+#		PERFORM DENOTES START OF END OF A TASK
+#		KEY IN DENOTES KEY IN OF DATA THRU THE DSKY
+
+# Page 26
+
+# OPTION CODES FOR 504
+
+# PLEASE REPORT ANY DEFICIENCIES IN THIS LIST TO JOHN SUTHERLAND.
+
+# THE SPECIFIED OPTION CODES WILL BE FLASHED IN COMPONENT R1 IN 
+# CONJUNCTION WITH VERB04NOUN06 TO REQUEST THE ASTRONAUT TO LOAD INTO
+# COMPONENT R2 THE OPTION HE DESIRES.
+
+# *9		*17				#52				#11		#25  COLUMNN
+#
+# OPTION	
+# CODE		PURPOSE				INPUT FOR COMPONENT 2		PROGRAM(S)	APPLICABILITY
+#
+# 00001		SPECIFY IMU ORIENTATION		1=PREF 2=NOM 3=REFSMMAT		P50'S		ALL
+# 00002		SPECIFY VEHICLE			1=THIS 2=OTHER			P21,R30		ALL
+# 00003		SPECIFY TRACKING ATTITUDE	1=PREFERRED 2=OTHER		R63		ALL
+# 00004		SPECIFY RADAR			1=RR 2=LR			R04		SUNDANCE + LUMINARY
+# 00005		SPECIFY SOR PHASE		1=FIRST 2=SECOND		P38		COLOSSUS + LUMINARY
+# 00006		SPECIFY RR COARSE ALIGN OPTION	1=LOCKON 2=CONTINUOUS DESIG.	V41N72		SUNDANCE + LUMINARY
+# 00007		SPECIFY PROPULSION SYSTEM	1=SPS 2=RCS			P37		COLOSSUS
+# 00010		SPECIFY ALIGNEMENT MODE		0=ANY TIME 1=REFSMMAT + G	P57		LUMINARY	
+#						2=TWO BODIES 3=ONE BODY + G
+# 00011		SPEC. SEPARATION MONITOR PHASE	1=DELTAV 2=STATE VECTOR UPDATE	P46		LUMINARY
+# 00012		SPECIFY CSM ORBIT OPTION	1=NO ORBIT CHANGE 2=CHANGE	P22		LUMINARY
+#						ORBIT TO PASS OVER LM
+
diff --git a/ATTITUDE_MANEUVER_ROUTINE.s b/ATTITUDE_MANEUVER_ROUTINE.s
new file mode 100644
index 0000000..ac4a0d2
--- /dev/null
+++ b/ATTITUDE_MANEUVER_ROUTINE.s
@@ -0,0 +1,1027 @@
+# Copyright:	Public domain.
+# Filename:	ATTITUDE_MANEUVER_ROUTINE.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	342-363
+# Mod history:	2009-05-16 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 342
+# BLOCK 2 LGC ATTITUDE MANEUVER ROUTINE -- KALCMANU
+#
+# MOD 2		DATE 5/1/67	BY DON KEENE
+#
+# PROGRAM DESCRIPTION
+#
+# KALCMANU IS A ROUTINE WHICH GENERATES COMMANDS FOR THE LM DAP TO CHANGE THE ATTITUDE OF THE SPACECRAFT
+# DURING FREE FALL.  IT IS DESIGNED TO MANEUVER THE SPACECRAFT FROM ITS INITIAL ORIENTATION TO SOME DESIRED
+# ORIENTATION SPECIFIED BY THE PROGRAM WHICH CALLS KALCMANU, AVOIDING GIMBAL LOCK IN THE PROCESS.  IN THE 
+# MOD 2 VERSION, THIS DESIRED ATTITUDE IS SPECIFIED BY A SET OF OF THREE COMMANDED CDU ANGLES STORES AS 2'S COMPLEMENT
+# SINGLE PRECISION ANGLES IN THE THREE CONSECUTIVE LOCATIONS, CPHI, CTHETA, CPSI, WHERE
+#
+#	CPHI = COMMANDED OUTER GIMBAL ANGLE
+# 	CTHETA = COMMANDED INNER GIMBAL ANGLE
+#	CPSI = COMMANDED MIDDLE GIMBAL ANGLE
+#
+# WHEN POINTING A SPACECRAFT AXIS (I.E., X, Y, Z, THE AOT, THRUST AXIS, ETC.) THE SUBROUTINE VECPOINT MAY BE
+# USED TO GENERATE THIS SET OF DESIRED CDU ANGLES (SEE DESCRIPTION IN R60).
+#
+# WITH THIS INFORMATION KALCMANU DETERMINES THE DIRECTION OF THE SINGLE EQUIVALEN ROTATION (COF ALSO U) AND THE
+# MAGNITUDE OF THE ROTATION (AM) TO BRING THE S/C FROM ITS INITIAL ORIENTATION TO ITS FINAL ORIENTATION.
+# THIS DIRECTION REMAINS FIXED BOTH IN INERTIAL COORDINATES AND IN COMMANDED S/C AXES THROUGHOUT THE 
+#                  _
+# MANEUVER.  ONCE COF AND AM HAVE BEEN DETERMINED, KALCMANU THEN EXAMINES THE MANEUVER TO SEE IF IT WILL BRING
+#				       _
+# THE S/C THROUGH GIMBAL LOCK.  IF SO, COF AND AM ARE READJUSTED SO THAT THE S/C WILL JUST SKIM THE GIMBAL
+# LOCK ZONE AND ALIGN THE X-AXIS.  IN GENERAL A FINAL YAW ABOUT X WILL BE NECESSARY TO COMPLETE THE MANEUVER.
+# NEEDLESS TO SAY, NEITHER THE INITIAL NOR THE FINAL ORIENTATION CAN BE IN GIMBAL LOCK.
+#
+# FOR PROPER ATTITUDE CONTROL THE DIGITAL AUTOPILOT MUST BE GIVEN AN ATTITUDE REFERENCE WHICH IT CAN TRACK.
+# KALCMANU DOES THIS BY GENERATING A REFERENCE OF DESIRED GIMBAL ANGLES (CDUXD, CDUYD, CDUZD) WHICH ARE UPDATED
+# EVERY ONE SECOND DURING THE MANEUVER.  TO ACHIEVE A SMOOTHER SEQUENCE OF COMMANDS BETWEEN SUCCESSIVE UPDATES,
+# THE PROGRAM ALSO GENERATES A SET OF INCREMENTAL CDU ANGLES (DELDCDU) TO BE ADDED TO CDU DESIRED BY THE DIGITAL
+# AUTOPILOT.  KALCMANU ALSO CALCULATES THE COMPONENT MANEUVER RATES (OMEGAPD, OMEGAQD, OMEGARD), WHICH CAN
+#				      _
+# BE DETERMINED SIMPLY BY MULTIPLYING COF BY SOME SCALAR (ARATE) CORRESPONDING TO THE DESIRED ROTATIONAL RATE.
+#
+# AUTOMATIC MANEUVERS ARE TIMED WTH THE HELP OF WAITLIST SO THAT AFTER A SPECIFIED INTERVAL THE Y AND Z
+# DESIRED RATES ARE SET TO ZERO AND THE DESIRED CDU ANGLES (CDUYD, CDUZD) ARE SET EQUAL TO THE FINAL DESIRED CDU
+# ANGLES (CTHETA, CPSI).  IF ANY YAW REMAINS DUE TO GIMBAL LOCK AVOIDANCE, THE FINAL YAW MANEUVER IS
+# CALCULATED AND THE DESIRED YAW RATE SET TO SOME FIXED VALUE (ROLLRATE = + OR - 2 DEGREES PER SEC).
+# IN THIS CASE ONLY AN INCREMENTAL CDUX ANGLE (DELFROLL) IS SUPPLIED TO THE DAP.  AT THE END OF THE YAW
+# MANEUVER OR IN THE EVENT THAT THERE WAS NO FINAL YAW, CDUXD IS SET EQUAL TO CPHI AND THE X-AXIS DESIRED
+# RATE SET TO ZERO.  THUS, UPON COMPLETION OF THE MANEUVER THE S/C WILL FINISH UP IN A LIMIT CYCLE ABOUT THE
+# DESIRED GIMBAL ANGLES.
+#
+# PROGRAM LOGIC FLOW
+#
+# KALCMANU IS CALLED AS A HIGH PRIORITY JOB WITH ENTRY POINTS AT KALCMAN3 AND VECPOINT.  IT FIRST PICKS
+# UP THE CURRENT CDU ANGLES TO BE USED AS THE BASIS FOR ALL COMPUTATIONS INVOLVING THE INITIAL S/C ORIENTATION.
+# Page 343
+# IT THEN DETERMINES THE DIRECTION COSINE MATRICES RELATING BOTH THE INITIAL AND FINAL S/C ORIENTATION TO STABLE
+#               *   *                                                                               *
+# MEMBER AXES (MIS,MFS).  IT ALSO COMPUTES THE MATRIX RELATING FINAL S/C AXES TO INITIAL S/C AXES (MFI).  THE
+# ANGLE OF ROTATION (AM) IS THEN EXTRACTED FROM THIS MATRIX, AND TEST ARE MADE TO DETERMINE IF
+#
+#	A)	AM LESS THAN .25 DEGREES (MINANG)
+#	B)	AM GREATER THAN 170 DEGREES (MAXANG)
+#
+# IF AM IS LESS THAN .25 DEGREES, NO COMPLICATED AUTOMATIC MANEUVERING IS NECESSARY.  THREFORE, WE CAN SIMPLY
+# SET CDU DESIRED EQUAL TO THE FINAL CDU DESIRED ANGLES AND TERMINATE THE JOB.
+#
+# IF AM IS GREATER THAN .25 DEGREES BUT LESS THAN 170 DEGREES THE AXES OF THE SINGLE EQUIVALENT ROTATION
+#   _                                                       *
+# (COF) IS EXTRACTED FROM THE SKEW SYMMETRIC COMPONENTS OF MFI.
+#                                                                                     *     *
+# IF AM GREATER THAN 170 DEGREES AN ALTERNATE METHOD EMPLOYING THE SYMMETRIC PART OF MFI (MFISYM) IS USED
+#               _
+# TO DETERMINE COF.
+#
+# THE PROGRAM THEN CHECKS TO SEE IF THE MANEUVER AS COMPUTED WILL BRING THE S/C THROUGH GIMBAL LOCK.  IF
+# SO, A NEW MANEUVER IS CALCULATED WHICH WILL JUST SKIM THE GIMBAL LOCK ZONE AND ALIGN THE S/C X-AXIS.  THIS
+# METHOD ASSURES THAT THE ADDITIONAL MANEUVERING TO AVOID GIMBAL LOCK WILL BE KEPT TO A MINIMUM.  SINCE A FINAL
+# P AXIS YAW WILL BE NECESSARY, A SWITCH IS RESET (STATE SWITCH 31) TO ALLOW FOR THE COMPUTATION OF THIS FINAL
+# YAW.
+#
+# AS STATED PREVIOUSLY, KALCMANU GENERATES A SEQUENCE OF DESIRED GIMBAL ANGLES WHICH ARE UPDATED EVERY 
+#                                                                                              _
+# SECOND.  THIS IS ACCOMPLISHED BY A SMALL ROTATION OF THE DESIRED S/C FRAME ABOUT THE VECTOR COF.  THE NEW
+# DESIRED REFERENCE MATRIX IS THEN,
+#	 *		 *	 *
+#	MIS	=	MIS	DEL
+#	   N+1		   N
+#        *
+# WHERE DEL IS THE MATRIX CORRESPONDING TO THIS SMALL ROTATION.  THE NEW CDU ANGLES CAN THEN BE EXTRACTED
+#       *
+# FROM MIS.
+#
+# AT THE BEGINNING OF THE MANEUVER THE AUTOPILOT DESIRED RATES (OMEGAPD, OMEGAQD, OMEGARD) AND THE 
+# MANEUVER TIMINGS ARE ESTABLISHED.  ON THE FIRST PASS AND ON ALL SUBSEQUENT UPDATES THE CDU DESIRED
+# ANGLES ARE LOADED WITH THE APPROPRIATE VALUES AND THE INCREMENTAL CDU ANGLES ARE COMPUTED.  THE AGC CLOCKS
+# (TIME1 AND TIME2) ARE THEN CHECKED TO SEE IF THE MANEUVER WILL TERMINATE BEFORE THE NEXT UPDATE.  IF
+# NOT, KALCMANU CALLS FOR ANOTHER UPDATE (RUN AS A JOB WITH PRIORITY TBD) IN ONE SECOND.  ANY DELAYS IN THIS
+# CALLING SEQUENCE ARE AUTOMATICALLY COMPENSATED IN CALLING FOR THE NEXT UPDATE.
+#
+# IF IT IS FOUND THAT THE MANEUVER IS TO TERMINATE BEFORE THE NEXT UPDATE A ROUTINE IS CALLED (AS A WAIT-
+# LIST TASK) TO STOP THE MANEUVER AT THE APPROPRIATE TIME AS EXPLAINED ABOVE.
+
+# Page 344
+# CALLING SEQUENCE
+#
+# IN ORDER TO PERFORM A KALCMANU SUPERVISED MANEUVER, THE COMMANDED GIMBAL ANGLES MUST BE PRECOMPUTED AND
+# STORED IN LOCATIONS CPHI, CTHETA, CPSI.  THE USER'S PROGRAM MUST THEN CLEAR STATE SWITCH NO 33 TO ALLOW THE 
+# ATTITUDE MANEUVER ROUTINE TO PERFORM ANY FINAL P-AXIS YAW INCURRED BY AVOIDING GIMBAL LOCK.  THE MANEUVER IS
+# THEN INITIATED BY ESTABLISHING THE FOLLOWING EXECUTIVE JOB
+#		       *
+#	CAF	PRIO XX
+#		     --
+#	INHINT
+#	TC	FINDVAC
+#	2CADR	KALCMAN3
+#	RELINT
+#
+# THE USER'S PROGRAM MAY EITHER CONTINUE OR WAIT FOR THE TERMINATION OF THE MANEUVER.  IF THE USER WISHES TO
+# WAIT, HE MAY PUT HIS JOB TO SLEEP WTH THE FOLLOWING INSTRUCTIONS:
+#
+#	L	TC	BANKCALL
+#	L+1	CADR	ATTSTALL
+#	L+2	(BAD RETURN)
+#	L+3	(GOOD RETURN)
+#
+# UPON COMPLETION OF THE MANEUVER, THE PROGRAM WILL BE AWAKENED AT L+3 IF THE MANEUVER WAS COMPLETED
+# SUCCESSFULLY, OR AT L+2 IF THE MANEUVER WAS ABORTED.  THIS ABORT WOULD OCCUR IF THE INITIAL OR FINAL ATTITUDE
+# WAS IN GIMBAL LOCK.
+#
+# *** NOTA BENE ***  IF IT IS ASSUMED THAT THE DESIRED MANEUVERING RATE (0.5, 2, 5, 10 DEG/SEC) HAS BEEN SELECTED BY
+# KEYBOARD ENTRY PRIOR TO THE EXECUTION OF KALCMANU.
+#
+# IT IS ALSO ASSUMED THAT THE AUTOPILOT IS IN THE AUTO MODE.  IF THE MODE SWITCH IS CHANGED DURING THE
+# MANEUVER, KALCMANU WILL TERMINATE VIA GOODEND WITHIN 1 SECOND SO THAT R60 MAY REQUEST A TRIM OF THE S/C ATTITUDE
+# SUBROUTINES.
+#
+# KALCMANU USES A NUMBER OF INTERPRETIVE SUBROUTINES WHICH MAY BE OF GENERAL INTEREST.  SINCE THESE ROUTINES
+# WERE PROGRAMMED EXCLUSIVELY FOR KALCMANU, THEY ARE NOT, AS YET, GENERALLY AVAILABLE FOR USE BY OTHER PROGRAMS.
+#
+# MXM3
+# ----
+#
+# THIS SUBROUTINE MULTIPLIES TWO 3X3 MATRICES AND LEAVES THE RESULT IN THE FIRST 18 LOCATIONS OF THE PUSH
+# DOWN LIST, I.E.,
+#			[ M     M     M  ]
+#			[  0     1     2 ]
+#	*		[                ]		*		*
+#	M	=	[ M     M     M  ]	=	M1	X	M2
+#			[  3     4     5 ]
+#			[                ]
+#			[ M     M     M  ]
+#			[  6     7     8 ]
+# Page 345
+#                                                                                  *
+# INDEX REGISTER X1 MUST BE LOADED WITH THE COMPLEMENT OF THE STARTING ADDRESS FOR M1, AND X2 MUST BE
+#                                                        *
+# LOADED WITH THE COMPLEMENT OF THE STARTING ADDRESS FOR M2.  THE ROUTINE USES THE FIRST 20 LOCATIONS OF THE PUSH
+# DOWN LIST.  THE FIRST ELEMENT OF THE MATRIX APPEARS IN PDO.  PUSH UP FOR M .
+#                                                                           8
+# TRANSPOS
+# --------
+#
+# THIS ROUTINE TRANSPOSES A 3X3 MATRIX AND LEAVES THE RESULT IN THE PUSH DOWN LIST, I.E.,
+# 
+#	*		* T
+#	M	=	M1
+#
+# INDEX REGISTER X1 MUST CONTAIN THE COMPLEMENT OF THE STARTING ADDRESS FOR M1.  PUSH UP FOR THE FIRST AND SUB-
+#                        *
+# SEQUENT COMPONENTS OF M.  THIS SUBROUTINE ALSO USES THE FIRST 20 LOCATIONS OF THE PUSH DOWN LIST.
+#
+# CDU TO DCM
+# ----------
+#
+# THIS SUBROUTINE CONVERTS THREE CDU ANGLES IN T(MPAC) TO A DIRECTION COSINE MATRIX (SCALED BY 2) RELATING
+# THE CORRESPONDING S/C ORIENTATIONS TO THE STABLE MEMBER FRAME.  THE FORMULAS FOR THIS CONVERSION ARE
+#
+#	M	=	COSY COSZ
+#	 0
+#
+#	M	=	-COSY SINZ COSX + SINY SINX
+#	 1
+#
+#	M	=	COSY SINZ SINX + SINY COSX
+#	 2
+#
+#	M	=	SINZ
+#	 3
+#
+#	M	=	COSZ COSX
+#	 4
+#
+#	M	=	-COSZ SINX
+#	 5
+#
+#	M	=	-SINY COSZ
+#	 6
+#	
+#	M	=	SINY SINZ COSX + COSY SINX
+#	 7
+# Page 346
+#	M	=	-SINY SINZ SINX + COSY COSX
+#	 8
+#
+# WHERE		X	=	OUTER GIMBAL ANGLE
+#		Y	=	INNER GIMBAL ANGLE
+#		Z	=	MIDDLE GIMBAL ANGLE
+#
+# THE INTERPRETATION OF THIS MATRIX IS AS FOLLOWS:
+#
+# IF A , A , A  REPRESENT THE COMPONENTS OF A VECTOR IN S/C AXES THEN THE COMPONENTS OF THE SAME VECTOR IN
+#     X   Y   Z
+# STABLE MEMBER AXES (B , B , B ) ARE
+#                      X   Y   Z
+#
+#	[ B  ]			[ A  ]
+#	[  X ]			[  X ]
+#	[    ]			[    ]
+#	[ B  ]		  *	[ A  ]
+#	[  Y ]	   =	  M	[  Y ]
+#	[    ]			[    ]
+#	[ B  ]			[ B  ]
+#	[  Z ]			[  Z ]
+#
+# THE SUBROUTINE WILL STORE THIS MATRIX IN SEQUENTIAL LOCATIONS OF ERASABLE MEMORY AS SPECIFIED BY THE CALLING
+#                                                                                                             *
+# PROGRAM.  TO DO THIS THE CALLING PROGRAM MUST FIRST LOAD X2 WITH THE COMPLEMENT OF THE STARTING ADDRESS FOR M.
+#
+# INTERNALLY, THE ROUTINE USES THE FIRST 16 LOCATIONS OF THE PUSH DOWN LIST, ALSO STEP REGISTER S1 AND INDEX
+# REGISTER X2.
+#
+# DCM TO CDU
+# ----------
+#								       *
+# THIS ROUTINE EXTRACTS THE CDU ANGLES FROM A DIRECTION COSINE MATRIX (M SCALED BY 2) RELATING S/C AXIS TO
+#                                                                                 *
+# STABLE MEMBER AXES.  X1 MUST CONTAIN THE COMPLEMENT OF THE STARTING ADDRESS FOR M.  THE SUBROUTINE LEAVES THE
+# CORRESPONDING GIMBAL ANGLES IN V(MPAC) AS DOUBLE PRECISION 1'S COMPLEMENT ANGLES ACALED BY 2PI.  THE FORMULAS
+# FOR THIS CONVERSION ARE
+#
+#	Z 	=	ARCSIN (M  )
+#			         3
+#
+#	Y	=	ARCSIN (-M /COSZ)
+#			          6
+#
+# IF M  IS NEGATIVE, Y IS REPLACED BY PI SGN Y - Y.
+#     0
+# Page 347
+#	X	=	ARCSIN (-M /COSZ)
+#			          5
+#
+# IF M  IS NEGATIVE, X IS REPLACED BY PI SGN X - X.
+#     4
+#
+# THIS ROUTINE DOES NOT SET THE PUSH DOWN POINTER, BUT USES THE NEXT 8 LOCATIONS OF THE PUSH DOWN LIST AND
+# RETURNS THE POINTER TO ITS ORIGINAL SETTING.  THIS PROCEDURE ALLOWS THE CALLER TO STORE THE MATRIX AT THE TOP OF
+# THE PUSH DOWN LIST.
+#
+# DELCOMP
+# -------
+#                                                     *
+# THIS ROUTINE COMPUTES THE DIRECTION COSINE MATRIX (DEL) RELATING ON
+#                                                                          _
+# IS ROTATED WITH RESPECT TO THE FIRST BY AN ANGLE, A, ABOUT A UNIT VECTOR U.  THE FORMULA FOR THIS MATRIX IS
+#
+#	 *		*	 _ _T              *
+#	DEL	=	I COSA + U U  (1 - COSA) + V  SINA
+#			                            X
+#
+# WHERE		*		[ 1    0    0 ]
+#		I	=	[ 0    1    0 ]
+#				[ 0    0    1 ]
+#
+#				[    2                             ]
+#				[  U           U  U          U  U  ]
+#				[   X           X  Y          X  Z ]
+#				[                                  ]
+#		_ _T		[                 2                ]
+#		U U	=	[ U  U          U            U  U  ]
+#				[  Y  X          Y            Y  Z ]
+#				[                                  ]
+#				[                               2  ]
+#				[ U  U         U  U           U    ]
+#				[  Z  X         Z  Y           Z   ]
+#
+#
+#				[   0		-U		 U  ]
+#				[		  Z		  Y ]
+#		*		[				    ]
+#		V	=	[  U		 0		-U  ]
+#		 X		[   Z                             X ]
+#				[				    ]
+#				[ -U		 U		 0  ]
+#				[   Y 		  X		    ]
+#
+# Page 348
+#	_
+#	U	=	UNIT ROTATION VECTOR RESOLVED INTO S/C AXES.
+#	A	=	ROTATION ANGLE
+#
+#                        *
+# THE INTERPRETATION OF DEL IS AS FOLLOWS:
+#
+# IF A , A , A  REPRESENT THE COMPONENTS OF A VECTOR IN THE ROTATED FRAME, THEN THE COMPONENTS OF THE SAME
+#     X   Y   Z
+# VECTOR IN THE ORIGINAL S/C AXES (B , B , B ) ARE
+#                                   X   Y   Z
+#
+#	[ B  ]			[ A  ]
+#	[  X ]			[  X ]
+#	[    ]			[    ]
+#	[ B  ]		  *	[ A  ]
+#	[  Y ]	   =	 DEL	[  Y ]
+#	[    ]			[    ]
+#	[ B  ]			[ B  ]
+#	[  Z ]			[  Z ]
+#
+# THE ROUTINE WILL STORE THIS MATRIX (SCALED UNITY) IN SEQUENTIAL LOCATIONS OF ERASABLE MEMORY BEGINNING WITH
+#                                                                                             _
+# THE LOCATION CALLED DEL.  IN ORDER TO USE THE ROUTINE, THE CALLING PROGRAM MUST FIRST STORE U (A HALF UNIT
+# DOUBLE PRECISION VECTOR) IN THE SET OF ERASABLE LOCATIONS BEGINNING WITH THE ADDRESS CALLED COF.  THE ANGLE, A,
+# MUST THEN BE LOADED INTO D(MPAC).
+# 
+# INTERNALLY, THE PROGRAM ALSO USES THE FIRST 10 LOCATIONS OF THE PUSH DOWN LIST.
+#
+# READCDUK
+# --------
+#
+# THIS BASIC LANGUAGE SUBROUTINE LOADS T(MPAC) WITH THE THREE CDU ANGLES.
+#
+# SIGNMPAC
+# --------
+#
+# THIS IS A BASIC LANGUAGE SUBROUTINE WHICH LIMITS THE MAGNITUDE OF D(MPAC) TO + OR - DPOSMAX ON OVERFLOW.
+#
+# PROGRAM STORAGE ALLOCATION
+#
+#	1)	FIXED MEMORY		1059 WORDS
+#	2)	ERASABLE MEMORY		  98
+#	3)	STATE SWITCHES		   3
+# Page 349
+#	4)	FLAGS			   1
+#
+# JOB PRIORITIES
+#
+#	1)	KALCMANU		TBD
+#	2)	ONE SECOND UPDATE	TBD
+#
+# SUMMARY OF STATE SWITCHES AND FLAGWORDS USED BY KALCMANU.
+#
+#	STATE		FLAGWRD 2	SETTING		MEANING
+#	SWITCH NO.	BIT NO.
+#
+#	  *
+#	31		14		0		MANEUVER WENT THROUGH GIMBAL LOCK
+#					1		MANEUVER DID NOT GO THROUGH GIMBAL LOCK
+#	  *
+#	32		13		0		CONTINUE UPDATE PROCESS
+#					1		START UPDATE PROCESS
+#
+#	33		12		0		PERFORM FINAL P AXIS YAW IF REQUIRED
+#					1		IGNORE ANY FINAL P-AXIS YAW
+#
+#	34		11		0		SIGNAL END OF KALCMANU
+#					1		KALCMANU IN PROCESS.	USER MUST SET SWITCH BEFORE INITIATING
+#
+#	* INTERNAL TO KALCMANU
+#
+# SUGGESTIONS FOR PROGRAM INTEGRATION
+#
+# THE FOLLOWING VARIABLES SHOULD BE ASSIGNED TO UNSWITCH ERASABLE:
+#
+#	CPHI
+#	CTHETA
+#	CPSI
+#	POINTVSM +5
+#	SCAXIS 	 +5
+#	DELDCDU
+#	DELDCDU1
+#	DELDCDU2
+#	RATEINDX
+#
+# THE FOLLOWING SUBROUTINES MAY BE PUT IN A DIFFERENT BANK
+#
+#	MXM3
+# Page 350
+#	TRANSPGS
+#	SIGNMPAC
+#	READCDUK
+#	CDUTODCM
+
+# Page 351
+		BANK	15
+		SETLOC	KALCMON1
+		BANK
+		
+		EBANK=	BCDU
+		
+# THE THREE DESIRED CDU ANGLES MUST BE STORED AS SINGLE PRECISION TWO'S COMPLEMENT ANGLES IN THE THREE SUCCESSIVE
+# LOCATIONS, CPHI, CTHETA, CPSI.
+
+		COUNT*	$$/KALC
+KALCMAN3	TC	INTPRET		# PICK UP THE CURRENT CDU ANGLES AND
+		RTB			#	COMPUTE THE MATRIX FROM INITIAL S/C
+			READCDUK	#	AXES TO FINAL S/C AXES.
+		STORE	BCDU		# STORE INITIAL S/C ANGLES
+		SLOAD	ABS		# CHECK THE MAGNITUDE OF THE DESIRED
+			CPSI		# MIDDLE GIMBAL ANGLE
+		DSU	BPL
+			LOCKANGL	# IF GREATER THAN 70 DEG ABORT MANEUVER
+			TOOBADF
+		AXC,2	TLOAD
+			MIS
+			BCDU
+		CALL			# COMPUTE THE TRANSFORMATION FROM INITIAL
+			CDUTODCM	# S/C AXES TO STABLE MEMBER AXES
+		AXC,2	TLOAD
+			MFS		# PREPARE TO CALCULATE ARRAY MFS
+			CPHI
+		CALL
+			CDUTODCM
+SECAD		AXC,1	CALL		# MIS AND MFS ARRAYS CALCULATED		$2
+			MIS
+			TRANSPOS
+		VLOAD	STADR
+		STOVL	TMIS +12D
+		STADR
+		STOVL	TMIS +6
+		STADR
+		STORE	TMIS		# TMIS = TRANSPOSE(MIS) SCALED BY 2
+		AXC,1	AXC,2
+			TMIS
+			MFS
+		CALL
+			MXM3
+		VLOAD	STADR
+		STOVL	MFI +12D
+		STADR
+		STOVL	MFI +6
+		STADR
+		STORE	MFI		# MFI = TMIS MFS (SCALED BY 4)
+		SETPD	CALL		# TRANSPOSE MFI IN PD LIST
+# Page 352
+			18D
+			TRNSPSPD
+		VLOAD	STADR
+		STOVL	TMFI 	+12D
+		STADR
+		STOVL	TMFI 	+6
+		STADR
+		STORE	TMFI		# TMFI = TRANSPOSE (MFI) SCALED BY 4
+		
+# CALCULATE COFSKEW AND MFISYM
+
+		DLOAD	DSU
+			TMFI 	+2
+			MFI 	+2
+		PDDL	DSU		# CALCULATE COF SCALED BY 2/SIN(AM)
+			MFI 	+4
+			TMFI 	+4
+		PDDL	DSU
+			TMFI 	+10D
+			MFI 	+10D
+		VDEF
+		STORE	COFSKEW		# EQUALS MFISKEW
+		
+# CALCULATE AM AND PROCEED ACCORDING TO ITS MAGNITUDE
+
+		DLOAD	DAD
+			MFI
+			MFI 	+16D
+		DSU	DAD
+			DP1/4TH
+			MFI 	+8D
+		STORE	CAM		# CAM = (MFI0+MFI4+MFI8-1)/2 HALF SCALE
+		ARCCOS
+		STORE	AM		# AM=ARCCOS(CAM)	(AM SCALED BY 2)
+		DSU	BPL
+			MINANG
+			CHECKMAX
+		TLOAD			# MANEUVER LESS THAN .25 DEGREES
+			CPHI		# GO DIRECTLY INTO ATTITUDE HOLD
+		STCALL	CDUXD		# ABOUT COMMANDED ANGLES
+			TOOBADI		# STOP RATE AND EXIT
+			
+CHECKMAX	DLOAD	DSU
+			AM
+			MAXANG
+		BPL	VLOAD
+			ALTCALC		# UNIT
+			COFSKEW		# COFSKEW
+		UNIT
+		STORE	COF		# COF IS THE MANEUVER AXIS
+# Page 353
+		GOTO			# SEE IF MANEUVER GOES THRU GIMBAL LOCK
+			LOCSKIRT
+ALTCALC		VLOAD	VAD		# IF AM GREATER THAN 170 DEGREES
+			MFI
+			TMFI
+		VSR1
+		STOVL	MFISYM
+			MFI 	+6
+		VAD	VSR1
+			TMFI 	+6
+		STOVL	MFISYM 	+6
+			MFI 	+12D
+		VAD	VSR1
+			TMFI 	+12D
+		STORE	MFISYM 	+12D	# MFISYM=(MFI+TMFI)/2	SCALED BY 4
+		
+# CALCULATE COF
+
+		DLOAD	SR1
+			CAM
+		PDDL	DSU		# PDO CAM				$4
+			DPHALF
+			CAM
+		BOVB	PDDL		# PS2 1 - CAM				$2
+			SIGNMPAC
+			MFISYM 	+16D
+		DSU	DDV
+			0
+			2
+		SQRT	PDDL		# COFZ = SQRT(MFISYM8-CAM)/(1-CAM)
+			MFISYM 	+8D	#				$ ROOT 2
+		DSU	DDV
+			0
+			2
+		SQRT	PDDL		# COFY = SQRT(MFISYM4-CAM)/(1-CAM)  $ROOT2
+			MFISYM
+		DSU	DDV
+			0
+			2
+		SQRT	VDEF		# COFX = SQRT(MFISYM-CAM)/(1-CAM)  $ROOT 2
+		UNIT
+		STORE	COF
+		
+# DETERMINE LARGEST COF AND ADJUST ACCORDINGLY
+
+COFMAXGO	DLOAD	DSU
+			COF
+			COF 	+2
+		BMN	DLOAD		# COFY G COFX
+# Page 354
+			COMP12
+			COF
+		DSU	BMN
+			COF 	+4
+			METHOD3		# COFZ G COFX OR COFY
+		GOTO
+			METHOD1		# COFX G COFY OR COFZ
+COMP12		DLOAD	DSU
+			COF 	+2
+			COF 	+4
+		BMN	
+			METHOD3		# COFZ G COFY OR COFX
+			
+METHOD2		DLOAD	BPL		# COFY MAX
+			COFSKEW +2	# UY
+			U2POS
+		VLOAD	VCOMP
+			COF
+		STORE	COF
+U2POS		DLOAD	BPL
+			MFISYM 	+2	# UX UY
+			OKU21
+		DLOAD	DCOMP		# SIGN OF UX OPPOSITE garbled
+			COF
+		STORE	COF
+OKU21		DLOAD	BPL
+			MFISYM +10D	# UY UZ
+			LOCSKIRT
+		DLOAD	DCOMP		# SIGN OF UZ OPPOSITE TO UY
+			COF 	+4
+		STORE	COF 	+4
+		GOTO
+			LOCSKIRT
+METHOD1		DLOAD	BPL		# COFX MAX
+			COFSKEW		# UX
+			U1POS
+		VLOAD	VCOMP
+			COF
+		STORE	COF
+U1POS		DLOAD	BPL
+			MFISYM 	+2	# UX UY
+			OKU12
+		DLOAD	DCOMP
+			COF 	+2	# SIGN OF UY OPPOSITE TO UX
+		STORE	COF 	+2
+OKU12		DLOAD	BPL
+			MFISYM 	+4	# UX UZ
+			LOCSKIRT
+		DLOAD	DCOMP		# SIGN OF UZ OPPOSITE TO UY
+			COF 	+4
+# Page 355
+		STORE	COF 	+4
+		GOTO
+			LOCSKIRT
+METHOD3		DLOAD	BPL		# COFZ MAX
+			COFSKEW +4	# UZ
+			U3POS
+		VLOAD	VCOMP
+			COF
+		STORE	COF
+U3POS		DLOAD	BPL
+			MFISYM 	+4	# UX UZ
+			OKU31
+		DLOAD	DCOMP
+			COF		# SIGN OF UX OPPOSITE TO UZ
+		STORE	COF
+OKU31		DLOAD	BPL
+			MFISYM 	+10D	# UY UZ
+			LOCSKIRT
+		DLOAD	DCOMP
+			COF 	+2	# SIGN OF UY OPPOSITE TO UZ
+		STORE	COF 	+2
+		GOTO
+			LOCSKIRT
+# Page 356
+# MATRIX OPERATIONS
+
+		BANK	13
+		SETLOC	KALCMON2
+		BANK
+		
+		EBANK=	BCDU
+		
+MXM3		SETPD	VLOAD*		# MXM3 MULTIPLIES 2 3X3 MATRICES
+			0		# AND LEAVES RESULT IN PD LIST
+			0,1		# AND MPAC
+		VXM*	PDVL*
+			0,2
+			6,1
+		VXM*	PDVL*
+			0,2
+			12D,1
+		VXM*	PUSH
+			0,2
+		RVQ
+		
+# RETURN WITH MIXM2 IN PD LIST
+
+TRANSPOS	SETPD	VLOAD*		# TRANSPOS TRANSPOSES A 3X3 MATRIX
+			0		# 	AND LEAVES RESULT IN PD LIST
+			0,1		# MATRIX ADDRESS IN XR1
+		PDVL*	PDVL*
+			6,1
+			12D,1
+		PUSH			# MATRIX IN PD
+TRNSPSPD	EXIT			# ENTER WITH MATRIX AT 0 IN PD LIST
+		INDEX	FIXLOC
+		DXCH	12
+		INDEX	FIXLOC
+		DXCH	16
+		INDEX	FIXLOC
+		DXCH	12
+		INDEX	FIXLOC
+		DXCH	14
+		INDEX	FIXLOC
+		DXCH	4
+		INDEX	FIXLOC
+		DXCH	14
+		INDEX	FIXLOC
+		DXCH	2
+		INDEX	FIXLOC
+		DXCH	6
+		INDEX	FIXLOC
+		DXCH	2
+# Page 357
+		TC	INTPRET
+		RVQ
+		
+		BANK	15
+		SETLOC	KALCMON1
+		BANK
+		
+		EBANK=	BCDU
+		
+MINANG		2DEC	0.00069375
+
+MAXANG		2DEC	0.472222222
+
+# GIMBAL LOCK CONSTANTS
+
+# D = MGA CORRESPONDING TO GIMBAL LOCK = 60 DEGREES
+#	NGL = BUFFER ANGLE (TO AVOID DIVISIONS BY ZERO) = 2 DEGREES
+
+SD		2DEC	.433015		# = SIN(D)			$2
+
+K3S1		2DEC	.86603		# = SIN(D)			$1
+
+K4		2DEC	-.25		# = -COS(D)			$2
+
+K4SQ		2DEC	.125		# = COS(D)COS(D)		$2
+
+SNGLCD		2DEC	.008725		# = SIN(NGL)COS(D)		$2
+
+CNGL		2DEC	.499695		# COS(NGL)			$2
+
+LOCKANGL	DEC	.388889		# = 70 DEGREES
+
+# INTERPRETIVE SUBROUTINE TO READ THE CDU ANGLES
+
+READCDUK	CA	CDUZ		# LOAD T(MPAC) WITH CDU ANGLES
+		TS	MPAC 	+2
+		EXTEND
+		DCA	CDUX		# AND CHANGE MODE TO TRIPLE PRECISION
+		TCF	TLOAD 	+6
+		
+CDUTODCM	AXT,1	SSP
+		OCT	3
+			S1
+		OCT	1		# SET XR1, S1, AND PD FOR LOOP
+		STORE	7
+		SETPD
+			0
+LOOPSIN		SLOAD*	RTB
+			10D,1
+			CDULOGIC
+# Page 358
+		STORE	10D		# LOAD PD WITH 	0 SIN(PHI)
+		SIN	PDDL		#		2 COS(PHI)
+			10D		#		4 SIN(THETA)
+		COS	PUSH		#		6 COS(THETA)
+		TIX,1	DLOAD		#		8 SIN(PSI)
+			LOOPSIN		#		10 COS(PSI)
+			6
+		DMP	SL1
+			10D
+		STORE	0,2		# C0 = COS(THETA)COS(PSI)
+		DLOAD	DMP
+			4
+			0
+		PDDL	DMP		# (PD6 SIN(THETA)SIN(PHI))
+			6
+			8D
+		DMP	SL1
+			2
+		BDSU	SL1
+			12D
+		STORE	2,2		# C1=-COS(THETA)SIN(PSI)COS(PHI)
+		DLOAD	DMP
+			2
+			4
+		PDDL	DMP		# (PD7 COS(PHI)SIN(THETA)) SCALED 4
+			6
+			8D
+		DMP	SL1
+			0
+		DAD	SL1
+			14D
+		STORE	4,2		# C2=COS(THETA)SIN(PSI)SIN(PHI)
+		DLOAD
+			8D
+		STORE	6,2		# C3=SIN(PSI)
+		DLOAD
+			10D
+		DMP	SL1
+			2
+		STORE	8D,2		# C4=COS(PSI)COS(PHI)
+		DLOAD	DMP
+			10D
+			0
+		DCOMP	SL1
+		STORE	10D,2		# C5=-COS(PSI)SIN(PHI)
+		DLOAD	DMP
+			4
+			10D
+		DCOMP	SL1
+		STORE	12D,2		# C6=-SIN(THETA)COS(PSI)
+# Page 359
+		DLOAD
+		DMP	SL1		# (PUSH UP 7)
+			8D
+		PDDL	DMP		# (PD7 COS(PHI)SIN(THETA)SIN(PSI)) SCALE 4
+			6
+			0
+		DAD	SL1		# (PUSH UP 7)
+		STADR			# C7=COS(PHI)SIN(THETA)SIN(PSI)
+		STORE	14D,2		# 	+COS(THETA)SIN(PHI)
+		DLOAD
+		DMP	SL1		# (PUSH UP 6)
+			8D
+		PDDL	DMP		# (PD6 SIN(THETA)SIN(PHI)SIN(PSI)) SCALE 4
+			6
+			2
+		DSU	SL1		# (PUSH UP 6)
+		STADR
+		STORE	16D,2		# C8=-SIN(THETA)SIN(PHI)SIN(PSI)
+		RVQ			# +COS(THETA)COS(PHI)
+		
+# CALCULATION OF THE MATRIX DEL......
+#
+#	 *         *           __T           *
+#	DEL = (IDMATRIX)COS(A)+UU (1-COS(A))+UX SIN(A)		SCALED 1
+#	      _
+#	WHERE U IS A UNIT VECTOR (DP SCALED 2) ALONG THE AXIS OF ROTATION.
+#	A IS THE ANGLE OF ROTATION (DP SCALED 2)
+#	                                    _
+#	UPON ENTRY, THE STARTING ADDRESS OF U IS COF, AND A IS IN MPAC
+
+DELCOMP		SETPD	PUSH		# MPAC CONTAINS THE ANGLE A
+ 			0
+		SIN	PDDL		# PD0 = SIN(A)
+		COS	PUSH		# PD2 = COS(A)
+		SR2	PDDL		# PD2 = COS(A)				$8
+		BDSU	BOVB
+			DPHALF
+			SIGNMPAC
+		PDDL			# PDA = 1-COS(A)
+		
+# COMPUTE THE DIAGONAL COMPONENTS OF DEL
+
+			COF
+		DSQ	DMP
+			4
+		DAD	SL3
+			2
+		BOVB
+			SIGNMPAC
+# Page 360
+		STODL	KEL		# UX UX(1-COS(A)) +COS(A)		$1
+			COF 	+2
+		DSQ	DMP
+			4
+		DAD	SL3
+			2
+		BOVB
+			SIGNMPAC
+		STODL	KEL 	+8D	# UY UY(1-COS(A)) +COS(A)		$1
+			COF 	+4
+		DSQ	DMP
+			4
+		DAD	SL3
+			2
+		BOVB	
+			SIGNMPAC
+		STORE	KEL 	+16D	# UZ UZ(1-COS(A)) +COS(A)		$1
+		
+# COMPUTE THE OFF DIAGONAL TERMS OF DEL
+
+		DLOAD	DMP
+			COF
+			COF	+2
+		DMP	SL1
+			4
+		PDDL	DMP		# D6	 UX UY (1-COS A)		$4
+			COF 	+4
+			0
+		PUSH	DAD		# D8 	UZ SIN A			$4
+			6
+		SL2	BOVB
+			SIGNMPAC
+		STODL	KEL 	+6
+		BDSU	SL2
+		BOVB
+			SIGNMPAC
+		STODL	KEL 	+2
+			COF
+		DMP	DMP
+			COF 	+4
+			4
+		SL1	PDDL		# D6 	UX UZ (1-COS A)			$4
+			COF 	+2
+		DMP	PUSH		# D8	UY SIN(A)
+			0
+		DAD	SL2
+			6
+		BOVB
+			SIGNMPAC
+		STODL	KEL 	+4	# UX UZ (1-COS(A))+UY SIN(A)
+# Page 361
+		BDSU	SL2
+		BOVB
+			SIGNMPAC
+		STODL	KEL	 +12D	# UX UZ (1-COS(A))-UY SIN(A)
+			COF 	+2
+		DMP	DMP
+			COF 	+4
+			4
+		SL1	PDDL		# D6	UY UZ (1-COS(A))		$ 4
+			COF
+		DMP	PUSH		# D8	UX SIN(A)
+			0
+		DAD	SL2
+			6
+		BOVB
+			SIGNMPAC
+		STODL	KEL 	+14D	# UY UZ(1-COS(A)) +UX SIN(A)
+		BDSU	SL2
+		BOVB
+			SIGNMPAC
+		STORE	KEL 	+10D	# UY UZ (1-COS(A)) -UX SIN(A)
+		RVQ
+		
+# DIRECTION COSINE MATRIX TO CDU ANGLE ROUTINE
+# X1 CONTAINS THE COMPLEMENT OF THE STARTING ADDRESS FOR MATRIX (SCALED 2).
+# LEAVE CDU ANGLES SCALED 2PI IN V(MPAC).
+# COS(MGA) WILL BE LEFT IN S1 (SCALED 1).
+#
+# THE DIRECTION COSINE MATRIX RELATING S/C AXES TO STABLE MEMBER AXES CAN BE WRITTEN AS:
+#
+#	C  = COS(THETA) COS(PSI
+#	 0
+#
+#	C  = -COS(THETA) SIN(PSI) COS(PHI) + SIN(THETA) SIN(PHI)
+#	 1
+#
+#	C  = COS(THETA) SIN(PSI) SIN(PHI) + SIN(THETA) COS(PHI)
+#	 2
+#
+#	C  = SIN(PSI)
+#	 3
+#
+#	C  = COS(PSI) COS(PHI)
+#	 4
+#
+#	C  = -COS(PSI) SIN(PHI)
+#	 5
+#
+#	C  = -SIN(THETA) COS(PSI)
+#	 6
+#
+#	C  = SIN(THETA) SIN(PSI) COS(PHI) + COS (THETA) SIN(PHI)
+#	 7
+#
+#	C  = -SIN(THETA) SIN(PSI) SIN(PHI) + COS(THETA)COS(PHI)
+#	 8
+# Page 362
+#
+# WHERE	PHI = OGA
+#	THETA = IGA
+#	PSI = MGA
+
+DCMTOCDU	DLOAD*	ARCSIN
+			6,1
+		PUSH	COS		# PD +0 	PSI
+		SL1	BOVB
+			SIGNMPAC
+		STORE	S1
+		DLOAD*	DCOMP
+			12D,1
+		DDV	ARCSIN
+			S1
+		PDDL*	BPL		# PD +2		THETA
+			0,1		# MUST CHECK THE SIGN OF COS(THETA)
+			OKTHETA		# TO DETERMINE THE PROPER QUADRANT.
+		DLOAD	DCOMP
+		BPL	DAD
+			SUHALFA
+			DPHALF
+		GOTO
+			CALCPHI
+SUHALFA		DSU
+			DPHALF
+CALCPHI		PUSH
+OKTHETA		DLOAD*	DCOMP
+			10D,1
+		DDV	ARCSIN
+			S1
+		PDDL*	BPL		# PUSH DOWN PHI
+			8D,1
+			OKPHI
+		DLOAD	DCOMP		# PUSH UP PHI
+		BPL	DAD
+			SUHALFAP
+			DPHALF
+		GOTO
+			VECOFANG
+SUHALFAP	DSU	GOTO
+			DPHALF
+			VECOFANG
+OKPHI		DLOAD			# PUSH UP PHI
+VECOFANG	VDEF	RVQ
+# Page 363
+# ROUTINES FOR TERMINATING THE AUTOMATIC MANEUVER AND RETURNING TO USER.
+
+TOOBADF		EXIT
+		TC	ALARM
+		OCT	00401
+		
+		TCF	NOGO		# DO NOT ZERO ATTITUDE ERRORS
+		
+		TC	BANKCALL
+		CADR	ZATTEROR	# ZERO ATTITUDE ERRORS
+		
+NOGO		TC	BANKCALL
+		CADR	STOPRATE	# STOP RATES
+		
+		CAF	TWO
+		INHINT			# ALL RETURNS ARE NOW MADE VIA GOODEND
+		TC	WAITLIST
+		EBANK=	BCDU
+		2CADR	GOODMANU
+		
+		TCF	ENDOFJOB
+		
+TOOBADI		EXIT
+		TCF	NOGO
+		
+
diff --git a/AUTOMATIC_MANEUVERS.s b/AUTOMATIC_MANEUVERS.s
new file mode 100644
index 0000000..3aff078
--- /dev/null
+++ b/AUTOMATIC_MANEUVERS.s
@@ -0,0 +1,499 @@
+# Copyright:	Public domain.
+# Filename:	AUTOMATIC_MANEUVERS.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:	1025-1036
+# Mod history:	2009-05-13 RSB	Adapted 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 1025
+		BANK	21
+		SETLOC	DAPS3
+		BANK
+		
+		COUNT	21/DAPAM
+		
+		EBANK=	KMPAC
+AHFNOROT	EXTEND
+		READ	CHAN31
+		MASK	BIT14
+		EXTEND
+		BZMF	FREECONT
+		CA	RCSFLAGS	# SEE IF RATE FILTER HAS BEEN INITIALIZED
+		MASK	BIT14
+		CCS	A		# IF SO, PROCEED WITH ATTITUDE CONTROL
+		TCF	REINIT		# IF NOT, RECYCLE TO INITIALIZE FILTER
+					# AUTOMATIC CONTROL YET
+		EXTEND
+		READ	CHAN31
+		MASK	BIT13
+		EXTEND
+		BZMF	HOLDFUNC
+		
+AUTOCONT	CA	HOLDFLAG	# IF HOLDFLAG IS +, GO TO GRABANG.
+		EXTEND			# OTHERWISE, GO TO ATTHOLD.
+		BZMF	ATTHOLD
+		TCF	GRABANG
+		
+# MINIMUM IMPULSE CONTROL
+
+FREECONT	CAF	ONE
+		TS	HOLDFLAG	# RESET HOLDFLAG
+					# INHIBIT AUTOMATIC STEERING
+		EXTEND
+		READ	CHAN32
+		TS	L
+		COM
+		MASK	MANROT
+		MASK	CHANTEMP
+		LXCH	CHANTEMP
+		TC	STICKCHK
+		INDEX	RMANNDX
+		CA	MINTAU		# MINTAU	+0
+		TS	TAU		#		+1	+14MS MINIMUM IMPULSE
+		INDEX	PMANNDX		#		+2	-14MS TIME
+		CA	MINTAU		#		+3	+0
+		TS	TAU1
+		INDEX	YMANNDX
+		CA	MINTAU
+# Page 1026
+		TS	TAU2
+		TCF	T6PROGM
+		
+MINTAU		DEC	0
+		DEC	23		# = 14MS
+		DEC	-23		# = -14MS
+		DEC	0
+		
+# Page 1027
+# CALCULATION OF ATTITUDE ERRORS:
+#	_    *     _      _          _
+#	AK = AMGB (CDUX - THETADX) + BIAS
+#
+# I.E.,	*AK *   * 1        SIN(PSI)        0	** CDUX - THETADX *    *BIAS *
+#	*   *   *                               **                *    *     *
+#	*AK1* = * 0   COS(PSI)COS(PHI)  SIN(PHI)** CDUY - THETADY *  + *BIAS1*
+#	*   *   *                               **                *    *     *
+#	*AK2*   * 0  -COS(PSI)SIN(PHI)  COS(PHI)** CDUZ - THETADZ *    *BIAS2*
+#
+# THE BIASES ARE ADDED ONLY WHILE PERFORMING AUTOMATIC MANEUVERS (ESP KALCMANU) TO PROVIDE ADDITIONAL LEAD
+# AND PREVENT OVERSHOOT WHEN STARTING AN AUTOMATIC MANEUVER.  NORMALLY THE REQUIRED LEAD IS ONLY 1-2 DEGREES.
+# BUT DURING HIGH RATE MANEUVERS IT CAN BE AS MUCH AS 7 DEGREES.  THE BIASES ARE COMPUTED BY KALCMANU AND REMAIN
+# FIXED UNTIL THE MANEUVER IS COMPLETED AT WHICH TIME THEY ARE RESET TO ZERO.
+
+ATTHOLD		CA	CDUX
+		EXTEND
+		MSU	THETADX
+		TS	ERRORX
+		CA	CDUY
+		EXTEND
+		MSU	THETADY
+		TS	T5TEMP
+		EXTEND
+		MP	AMGB1
+		ADS	ERRORX
+		CA	T5TEMP
+		EXTEND
+		MP	AMGB4
+		TS	ERRORY
+		CA	T5TEMP
+		EXTEND
+		MP	AMGB7
+		TS	ERRORZ
+		CA	CDUZ
+		EXTEND
+		MSU	THETADZ
+		TS	T5TEMP
+		EXTEND
+		MP	AMGB5
+		ADS	ERRORY
+		CA	T5TEMP
+		EXTEND
+		MP	AMGB8
+		ADS	ERRORZ
+		CS	HOLDFLAG
+		EXTEND
+# Page 1028
+		BZMF	JETS
+		CA	BIAS		# AD BIASES ONLY IF PERFORMING AUTOMATIC
+		ADS	ERRORX
+		CA	BIAS1
+		ADS	ERRORY
+		CA	BIAS2
+		ADS	ERRORZ
+		TCF	JETS
+		
+HOLDFUNC	CCS	HOLDFLAG
+		TCF	+3
+		TCF	ATTHOLD
+		TCF	+1
+GRABANG		CAF	ZERO		# ZERO WBODYS AND BIASES
+		TS	WBODY
+		TS	WBODY +1
+		TS	WBODY1
+		TS	WBODY1 +1
+		TS	WBODY2
+		TS	WBODY2 +1
+		TS	BIAS
+		TS	BIAS1
+		TS	BIAS2
+		
+		CA	RCSFLAGS
+		MASK	OCT16000
+		EXTEND			# IS RATE DAMPING COMPLETED
+		BZF	ENDDAMP		# IF SO, GO TO ENDDAMP
+		CAF	ZERO		# OTHERWISE, ZERO ERRORS
+		TS	ERRORX
+		TS	ERRORY
+		TS	ERRORZ
+		TCF	JETS
+		
+ENDDAMP		TS	HOLDFLAG	# SET HOLDFLAG +0
+		EXTEND
+		DCA	CDUX		# PICK UP CDU ANGLES FOR ATTITUDE HOLD
+		DXCH	THETADX		# REFERENCES
+		CA	CDUZ
+		TS	THETADZ
+		TCF	ATTHOLD
+
+# Page 1029
+# JET SWITCHING LOGIC AND CALCULATION OF REQUIRED ROTATION COMMANDS
+#
+# DETERMINE THE LOCATION OF THE RATE ERROR AND THE ATTITUDE ERROR RELATIVE TO THE SWITCHING LOGIC IN THE PHASE
+# PLANE.
+#
+# COMPUTE THE CHANGE IN RATE CORRESPONDING TO THE ATTITUDE ERROR NECESSARY TO DRIVE THE S/C INTO THE
+# APPROPRIATE DEADZONE.
+#
+#                                     .
+#   R22                          RATE . ERROR
+#        WL+H                         .
+# *********************************   .					***** SWITCH LINES ENCLOSING DEADZONES
+#   R23  WL                        *  .
+# ----------------------------------* .					----- DESIRED RATE LINES
+#   R23  WL-H       -                *.
+# ****************** -                .					R20, R21, R22, ETC REGIONS IN PHASE
+#                   * -               .* R18      R20       R21		PLANE FOF COMPUTING DESIRED RESPONSE
+#                    *                . *
+#                     *-              .  *
+#   R22             R24*-    R23      .   *
+#                       *             .    *
+#                        *            .     *
+#                         + -ADB      .      * AF              ATTITUDE
+#  ........................+--+---------------+--+........................
+#                           AF *      .     +ADB  +             ERROR
+#                               *     .            *
+#                                *    .            -*
+#                                 *   .             -*
+#                                  *  .              -*
+#                                   * .                *
+#                                    *.               - *
+#                                     .                - *****************
+#                                     .*-
+#                                     . * --------------------------------
+#                                     .
+#                                     .
+#			FIG. 1	PHASE PLANE SWITCHING LOGIC
+#
+# CONSTANTS FOR JET SWITCHING LOGIC
+
+WLH/SLOP	DEC	.00463		# = WL+H/SLOPE = .83333 DEG	$180
+WL-H/SLP	DEC	.00277		# = WL-H/SLOPE = .5 DEG		$180
+WLH		2DEC	.0011111111	# = WL+H = 0.5 DEG/SEC		$450
+
+WLMH		2DEC	.0006666666	# = WL-H = 0.3 DEG/SEC		$450
+
+WL		2DEC	.0008888888	# = WL   = 0.4 DEG/SEC		$450
+
+# Page 1030
+SLOPE2		DEC	.32		# = 0.8 DEG/SEC/DEG		$450/180
+JETS		CA	ADB
+		AD	FOUR		# AF = FLAT REGION = .044 DEG
+		TS	T5TEMP		# ADB+AF
+		CAF	TWO
+JLOOP		TS	SPNDX
+		DOUBLE
+		TS	DPNDX
+		EXTEND
+		INDEX	A
+		DCA	ADOT
+		DXCH	EDOT
+		CA	HOLDFLAG	# HOLDFLAG = +0 MEANS THAT DAP IS IN
+		EXTEND			# ATTITUDE HOLD AND RATE DAMPING IS OVER.
+		BZF	INHOLD		# IF THIS IS THE CASE, BYPASS ADDITION
+					# OF WBODY AND GO TO INHOLD
+		EXTEND
+		INDEX	DPNDX
+		DCS	WBODY
+		DAS	EDOT		# = ADOT-WBODY
+INHOLD		INDEX	SPNDX
+		CA	ERRORX
+		TS	AERR		# AERR = BIAS + AK
+		
+		CCS	EDOT
+		TCF	POSVEL
+		TCF	SIGNCK1
+		TCF	NEGVEL
+SIGNCK1		CCS	EDOT +1
+		TCF	POSVEL
+		TCF	POSVEL
+		TCF	NEGVEL
+		TCF	NEGVEL
+POSVEL		EXTEND
+		DCA	EDOT
+		DXCH	EDOTVEL
+		CA	T5TEMP
+		TS	ADBVEL		# +(ADB+AF)
+		CA	AERR
+		TS	AERRVEL
+		TC	J6.
+NEGVEL		EXTEND
+		DCS	EDOT
+		DXCH	EDOTVEL
+		CS	T5TEMP
+		TS	ADBVEL		# -(ADB+AF)
+		CS	AERR
+		TS	AERRVEL
+		
+J6.		EXTEND
+# Page 1031
+		SU	ADB
+		AD	WLH/SLOP
+		EXTEND
+		BZMF	J8
+		
+		CS	T5TEMP		# (ADB+AF)
+		AD	AERRVEL
+		EXTEND
+		BZMF	+2
+		TCF	J7
+		EXTEND
+		DCS	EDOTVEL
+		EXTEND
+		DV	SLOPE
+		EXTEND
+		SU	AERRVEL
+		AD	ADB
+		EXTEND
+		BZMF	J18
+		TCF	J23
+		
+J7		CS	WL-H/SLP
+		EXTEND
+		SU	T5TEMP		# (ADB+AF)
+		AD	AERRVEL
+		EXTEND
+		BZMF	J20
+		TCF	J21
+		
+J8		EXTEND
+		DCS	WLH
+		DXCH	WTEMP
+		EXTEND
+		DCA	EDOTVEL
+		DAS	WTEMP
+		CCS	WTEMP
+		TCF	J22
+		TCF	SIGNCK2
+		TCF	NJ22
+SIGNCK2		CCS	WTEMP +1
+		TCF	J22
+		TCF	J22
+		TCF	NJ22
+		
+NJ22		EXTEND
+		DCA	EDOTVEL
+		EXTEND
+		DV	SLOPE
+		AD	T5TEMP		# (ADB+AF)
+		AD	AERRVEL
+# Page 1032
+		CCS	A
+		TCF	J23
+		TCF	J23
+		TCF	+2
+		TCF	J23
+		
+		EXTEND
+		DCS	WLMH		# WL - H
+		DXCH	WTEMP
+		EXTEND
+		DCA	EDOTVEL
+		DAS	WTEMP
+		CCS	WTEMP
+		TCF	J23
+		TCF	SIGNCK3
+		TCF	NJ23
+SIGNCK3		CCS	WTEMP +1
+		TCF	J23
+		TCF	J23
+		TCF	NJ23
+		
+NJ23		CA	AERRVEL
+		AD	T5TEMP		# (ADB+AF)
+		AD	WL-H/SLP
+		CCS	A
+		TCF	J24
+		TCF	J24
+		TCF	J22
+		TCF	J22
+		
+J18		EXTEND
+		DCS	EDOT
+		DXCH	KMPAC
+		TCF	JTIME
+		
+J20		CS	AERR
+		AD	ADBVEL
+		EXTEND
+		MP	SLOPE2		# (HYSTERESIS SLOPE)
+		DXCH	KMPAC
+		EXTEND
+		DCS	EDOT
+		DAS	KMPAC
+		TCF	JTIME
+		
+J21		CCS	EDOT
+		TCF	JP
+		TCF	SIGNCK4
+		TCF	JN
+SIGNCK4		CCS	EDOT +1
+# Page 1033
+		TCF	JP
+		TCF	JP
+		TCF	JN
+JN		EXTEND
+		DCS	EDOT
+		DXCH	KMPAC
+		EXTEND
+		DCA	WL
+		DAS	KMPAC
+		TCF	JTIME
+		
+JP		EXTEND
+		DCS	EDOT
+		DXCH	KMPAC
+		EXTEND
+		DCS	WL
+		DAS	KMPAC
+		TCF	JTIME
+		
+J22		CCS	EDOT
+		TCF	JN
+		TCF	SIGNCK5
+		TCF	JP
+SIGNCK5		CCS	EDOT +1
+		TCF	JN
+		TCF	JN
+		TCF	JP
+		TCF	JP
+		
+J23		INDEX	SPNDX
+		CS	BIT13		# RESET RATE DAMPING FLAG
+		MASK	RCSFLAGS	# BIT13 FOR ROLL  (SPNDX = 0)
+		TS	RCSFLAGS	# BIT12 FOR PITCH (SPNDX = 1)
+					# BIT11 FOR YAW   (SPNDX = 2)
+					
+		INDEX	SPNDX
+		CAF	OCT01400	# IS THERE TO BE A FORCED FIRING ON THIS
+		MASK	RCSFLAGS	# AXIS
+		EXTEND
+		BZF	DOJET +2	# NO, GO TO DOJET +2 AND DO NOTHING
+		
+		TCF	J18		# YES, GO TO J18 AND FORCE A FIRING
+		
+J24		CS	AERR
+		EXTEND
+		SU	ADBVEL
+		EXTEND
+		MP	SLOPE2		# (HYSTERESIS SLOPE)
+		DXCH	KMPAC
+		EXTEND
+# Page 1034
+		DCS	EDOT
+		DAS	KMPAC
+		
+# Page 1035
+# COMPUTE THE JET ON TIME NECESSARY TO ACCOMPLISH THE DESIRED CHANGE IN RATE, I.E.,
+#
+#	     T  = J/M(DELTA W)
+#	      J
+#
+#	DELTA W = DESIRED CHANGE IN S/C ANGULAR RATE AS DETERMINED BY THE
+#		  SWITCHING LOGIC, AT THIS POINT STORED IN KMPAC.
+#
+#	    J/M = S/C INERTIA TO TORQUE RATIO SCALED BY
+#		  	(57.3/450)(B24/1600)(1/.8)
+#		  FOR 1 JET OPERATION  (M = 700 FT-LB).
+#		  I.E., J/M = J(SLUG-FTFT) x 0.00000085601606
+#
+#	          THE CORRESPONDING COMPUTER VARIABLES ESTABLISHED BY
+#		  KEYBOARD ENTRY ARE
+#			J/M  (ROLL)
+#			J/M1 (PITCH)
+#			J/M2 (YAW)
+#
+#	     T  = JET-ON TIME    SCALED 16384/1600 SEC
+#	      J
+#
+#	          THE COMPUTER VARIABLES ARE
+#			TAU  (ROLL)
+#			TAU1 (PITCH)
+#			TAU2 (YAW)
+
+JTIME		INDEX	SPNDX		# PICK UP S/C INERTIA/TORQUE RATIO
+		CA	J/M		# SCALED (57.3/450)(B24/1600)
+		TC	SMALLMP		# FOR 1-JET OPERATION
+		CA	BIT11
+		TC	SMALLMP
+		CCS	KMPAC
+		TCF	+4
+		TCF	TAUNORM
+		TCF	+4
+		TCF	TAUNORM
+		CA	POSMAX
+		TCF	DOJET
+		CA	NEGMAX
+		TCF	DOJET
+		
+TAUNORM		CA	KMPAC +1
+DOJET		INDEX	SPNDX
+		TS	TAU
+		CCS	SPNDX
+		TCF	JLOOP
+		TCF	T6PROG
+		
+# Page 1036
+ZEROCMDS	CAF	ZERO
+		TS	TAU
+		TS	TAU1
+		TS	TAU2
+T6PROG		EXTEND			# WHEN THE ROTATION COMMANDS (TAUS)
+		DCA	JETADDR		# HAVE BEEN DETERINED
+		DXCH	T5LOC		# RESET T5LOC FOR PHASE3
+		TCF	RESUME
+		
+		EBANK=	KMPAC
+JETADDR		2CADR	JETSLECT
+
diff --git a/BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.s b/BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.s
new file mode 100644
index 0000000..ac7c532
--- /dev/null
+++ b/BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.s
@@ -0,0 +1,1059 @@
+# Copyright:	Public domain.
+# Filename:	BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	731-751
+# Mod history:	2009-05-19 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#		2009-06-07 RSB	Corrected 3 typos.
+#		2009-07-23 RSB	Added Onno's notes on the naming
+#				of this function, which he got from
+#				Don Eyles.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 731
+## At the get-together of the AGC developers celebrating the 40th anniversary
+## of the first moonwalk, Don Eyles (one of the authors of this routine along
+## with Peter Adler) has related to us a little interesting history behind the
+## naming of the routine.<br>
+## <br>
+## It traces back to 1965 and the Los Angeles riots, and was inspired 
+## by disc jockey extraordinaire and radio station owner Magnificent Montague.
+## Magnificent Montague used the phrase "Burn, baby! BURN!" when spinning the 
+## hottest new records. Magnificent Montague was the charismatic voice of
+## soul music in Chicago, New York, and Los Angeles from the mid-1950s to 
+## the mid-1960s.
+# BURN, BABY, BURN -- MASTER IGNITION ROUTINE
+
+		BANK	36
+		SETLOC	P40S
+		BANK
+		EBANK=	WHICH
+		COUNT*	$$/P40
+
+# THE MASTER IGNITION ROUTINE IS DESIGNED FOR USE BY THE FOLLOWING LEM PROGRAMS:  P12, P40, P42, P61, P63.
+# IT PERFORMS ALL FUNCTIONS IMMEDIATELY ASSOCIATED WITH APS OR DPS IGNITION:  IN PARTICULAR, EVERYTHING LYING
+# BETWEEN THE PRE-IGNITION TIME CHECK -- ARE WE WITHIN 45 SECONDS OF TIG? -- AND TIG + 26 SECONDS, WHEN DPS
+# PROGRAMS THROTTLE UP.
+#
+# VARIATIONS AMONG PROGRAMS ARE ACCOMODATED BY MEANS OF TABLES CONTAINING CONSTANTS (FOR AVEGEXIT, FOR
+# WAITLIST, FOR PINBALL) AND TCF INSTRUCTIONS.  USERS PLACE THE ADRES OF THE HEAD OF THE APPROPRIATE TABLE
+# (OF P61TABLE FOR P61LM, FOR EXAMPLE) IN ERASABLE REGISTER `WHICH' (E4).  THE IGNITION ROUTINE THEN INDEXES BY
+# WHICH TO OBTAIN OR EXECUTE THE PROPER TABLE ENTRY.  THE IGNITION ROUTINE IS INITIATED BY A TCF BURNBABY,
+# THROUGH BANKJUMP IF NECESSARY.  THERE IS NO RETURN.
+#
+# THE MASTER IGNITION ROUTINE WAS CONCEIVED AND EXECUTED, AND (NOTA BENE) IS MAINTAINED BY ADLER AND EYLES.
+#
+# 		   HONI SOIT QUI MAL Y PENSE
+#
+#	***********************************************
+#		TABLES FOR THE IGNITION ROUTINE
+#	***********************************************
+#
+#			NOLI SE TANGERE
+
+P12TABLE	VN	0674		# (0)
+		TCF	ULLGNOT		# (1)
+		TCF	COMFAIL3	# (2)
+		TCF	GOCUTOFF	# (3)
+		TCF	TASKOVER	# (4)
+		TCF	P12SPOT		# (5)
+		DEC	0		# (6)	NO ULLAGE
+		EBANK=	WHICH
+		2CADR	SERVEXIT	# (7)
+
+		TCF	DISPCHNG	# (11)
+		TCF	WAITABIT	# (12)
+		TCF	P12IGN		# (13)
+
+P40TABLE	VN	0640		# (0)
+		TCF	ULLGNOT		# (1)
+		TCF	COMFAIL4	# (2)
+		TCF	GOPOST		# (3)
+		TCF	TASKOVER	# (4)
+		TCF	P40SPOT		# (5)
+# Page 732
+		DEC	2240		# (6)
+		EBANK=	OMEGAQ
+		2CADR	STEERING	# (7)
+
+		TCF	P40SJUNK	# (11)
+		TCF	WAITABIT	# (12)
+		TCF	P40IGN		# (13)
+		TCF	REP40ALM	# (14)
+
+P41TABLE	TCF	P41SPOT		# (5)
+		DEC	-1		# (6)
+		EBANK=	OMEGAQ
+		2CADR	CALCN85		# (7)
+
+		TCF	COMMON		# (11)
+		TCF	TIGTASK		# (12)
+
+P42TABLE	VN	0640		# (0)
+		TCF	WANTAPS		# (1)
+		TCF	COMFAIL4	# (2)
+		TCF	GOPOST		# (3)
+		TCF	TASKOVER	# (4)
+		TCF	P42SPOT		# (5)
+		DEC	2640		# (6)
+		EBANK=	OMEGAQ
+		2CADR	STEERING	# (7)
+
+		TCF	P40SJUNK	# (11)
+		TCF	WAITABIT	# (12)
+		TCF	P42IGN		# (13)
+		TCF	P42STAGE	# (14)
+
+P63TABLE	VN	0662		# (0)
+		TCF	ULLGNOT		# (1)
+		TCF	COMFAIL3	# (2)
+		TCF	V99RECYC	# (3)
+		TCF	TASKOVER	# (4)
+		TCF	P63SPOT		# (5)
+		DEC	2240		# (6)
+		EBANK=	WHICH
+		2CADR	SERVEXIT	# (7)
+
+		TCF	DISPCHNG	# (11)
+		TCF	WAITABIT	# (12)
+# Page 733
+		TCF	P63IGN		# (13)
+
+ABRTABLE	VN	0663		# (0)
+		TCF	ULLGNOT		# (1)
+		TCF	COMFAIL3	# (2)
+		TCF	GOCUTOFF	# (3)
+		TCF	TASKOVER	# (4)
+		NOOP			# (5)
+		NOOP			# (6)
+		NOOP			# (7)
+		NOOP
+		TCF	DISPCHNG	# (11)
+		TCF	WAITABIT	# (12)
+		TCF	ABRTIGN		# (13)
+
+#	*********************************
+#	GENERAL PURPOSE IGNITION ROUTINES
+#	*********************************
+
+BURNBABY	TC	PHASCHNG	# GROUP 4 RESTARTS HERE
+		OCT	04024
+
+		CAF	ZERO		# EXTIRPATE JUNK LEFT IN DVTOTAL
+		TS	DVTOTAL
+		TS	DVTOTAL +1
+
+		TC	BANKCALL	# P40AUTO MUST BE BANKCALLED EVEN FROM ITS
+		CADR	P40AUTO		# OWN BANK TO SET UP RETURN PROPERLY
+
+B*RNB*B*	EXTEND
+		DCA	TIG		# STORE NOMINAL TIG FOR OBLATENESS COMP.
+		DXCH	GOBLTIME	# AND FOR P70 OR P71.
+
+		INHINT
+		TC	IBNKCALL
+		CADR	ENGINOF3
+		RELINT
+
+		INDEX	WHICH
+		TCF	5
+
+P42SPOT		=	P40SPOT		# (5)
+P12SPOT		=	P40SPOT		# (5)
+P63SPOT		=	P41SPOT		# (5)	IN P63 CLOKTASK ALREADY GOING
+P40SPOT		CS	CNTDNDEX	# (5)
+# Page 734
+		TC	BANKCALL	# MUST BE BANKCALLED FOR GENERALIZED
+		CADR	STCLOK2		# 	RETURN
+P41SPOT		TC	INTPRET		# (5)
+		DLOAD	DSU
+			TIG
+			D29.9SEC
+		STCALL	TDEC1
+			INITCDUW
+		BOFF	CALL
+			MUNFLAG
+			GOMIDAV
+			CSMPREC
+		VLOAD	MXV
+			VATT1
+			REFSMMAT
+		VSR1
+		STOVL	V(CSM)		# CSM VELOCITY -- M/CS*2(7)
+			RATT1
+		VSL4	MXV
+			REFSMMAT
+		STCALL	R(CSM)		# CSM POSITION -- M*2(24)
+			MUNGRAV
+		STODL	G(CSM)		# CSM GRAVITY VEC. -- M/CS*2(7)
+			TAT
+		STORE	TDEC1		# RELOAD TDEC1 FOR MIDTOAV.
+GOMIDAV		CALRB
+			MIDTOAV1
+		TCF	CALLT-35	# MADE IT IN TIME.
+
+		EXTEND			# TIG WAS SLIPPED, SO RESET TIG TO 29.9
+		DCA	PIPTIME1	# SECONDS AFTER THE TIME TO WHICH WE DID
+		DXCH	TIG		# INTEGRATE.
+		EXTEND
+		DCA	D29.9SEC
+		DAS	TIG
+
+CALLT-35	DXCH	MPAC
+		DXCH	SAVET-30	# DELTA-T UNTIL TIG-30
+		EXTEND
+		DCS	5SECDP
+		DAS	SAVET-30	# DELTA-T UNTIL TIG-35
+		EXTEND
+		DCA	SAVET-30
+		TC	LONGCALL
+		EBANK=	TTOGO
+		2CADR	TIG-35
+
+		TC	PHASCHNG
+		OCT	20254		# 4.25SPOT FOR TIG-35 RESTART.
+# Page 735
+		TC	CHECKMM
+		DEC	63
+		TCF	ENDOFJOB	# NOT P63
+		CS	CNTDNDEX	# P63 CAN START DISPLAYING NOW.
+		TS	DISPDEX
+		TC	INTPRET
+		VLOAD	ABVAL
+			VN1
+		STORE	ABVEL		# INITIALIZE ABVEL FOR P63 DISPLAY
+		EXIT
+		TCF	ENDOFJOB
+
+#	********************************
+
+TIG-35		CAF	5SEC
+		TC	TWIDDLE
+		ADRES	TIG-30
+
+		TC	PHASCHNG
+		OCT	40154		# 4.15SPOT FOR TIG-30 RESTART
+
+		CS	BLANKDEX	# BLANK DSKY FOR 5 SECONDS
+		TS	DISPDEX
+
+		INDEX	WHICH
+		CS	6		# CHECK ULLAGE TIME.
+		EXTEND
+		BZMF	TASKOVER
+		CAF	4.9SEC		# SET UP TASK TO RESTORE DISPLAY AT TIG-30
+		TC	TWIDDLE
+		ADRES	TIG-30.1
+
+		CAF	PRIO17		# A NEGATIVE ULLAGE TIME INDICATES P41, IN
+		TC	NOVAC		# WHICH CASE WE HAVE TO SET UP A JOB TO
+		EBANK=	TTOGO		# BLANK THE DSKY FOR FIVE SECONDS, SINCE
+		2CADR	P41BLANK	# CLOKJOB IS NOT RUNNING DURING P41.
+
+		TCF	TASKOVER
+
+P41BLANK	TC	BANKCALL	# BLANK DSKY.
+		CADR	CLEANDSP
+		TCF	ENDOFJOB
+
+TIG-30.1	CAF	PRIO17		# SET UP JOB TO RESTORE DISPLAY AT TIG-30
+		TC	NOVAC
+		EBANK=	TTOGO
+		2CADR	TIG-30A
+
+		TCF	TASKOVER
+# Page 736
+TIG-30A		CAF	V16N85B
+		TC	BANKCALL	# RESTORE DISPLAY.
+		CADR	REGODSP		# REGODSP DOES A TCF ENDOFJOB
+
+#	********************************
+
+TIG-30		CAF	S24.9SEC
+		TC	TWIDDLE
+		ADRES	TIG-5
+
+		CS	CNTDNDEX	# START UP CLOKTASK AGAIN
+		TS	DISPDEX
+
+		INDEX	WHICH		# PICK UP APPROPRIATE ULLAGE -- ON TIME
+		CA	6		# Was CAF --- RSB 2009.
+		EXTEND
+		BZMF	ULLGNOT		# DON'T SET UP ULLAGE IF DT IS NEG OR ZERO
+		TS	SAVET-30	# SAVE DELTA-T FOR RESTART
+		TC	TWIDDLE
+		ADRES	ULLGTASK
+
+		CA	THREE		# RESTART PROTECT ULLGTASK (1.3SPOT)
+		TS	L
+		CS	THREE
+		DXCH	-PHASE1
+		CS	TIME1
+		TS	TBASE1
+
+		INDEX	WHICH
+		TCF	1
+
+WANTAPS		CS	FLGWRD10	# (1) FOR P42 ENSURE APSFLAG IS SET.  IF IT
+		MASK	APSFLBIT	# WASN'T SET, DAP WILL BE INITIALIZED TO
+		ADS	FLGWRD10	# ASCENT VALUES BY 1/ACCS IN 2 SECONDS.
+
+ULLGNOT		EXTEND			# (1)
+		INDEX	WHICH
+		DCA	7		# LOAD AVEGEXIT WITH APPROPRIATE 2CADR
+		DXCH	AVEGEXIT
+
+		CAF	TWO		# 4.2SPOT RESTARTS IMMEDIATELY AT REDO4.2
+		TS	L
+		CS	TWO		# AND ALSO AT TIG-5 AT THE CORRECT TIME.
+		DXCH	-PHASE4
+
+		CS	TIME1
+		TS	TBASE4		# SET TBASE4 FOR TIG-5 RESTART
+
+REDO2.17	EXTEND
+# Page 737
+		DCA	NEG0		# CLEAR OUT GROUP 2 SO LAMBERT CAN START
+		DXCH	-PHASE2		# IF NEEDED.
+
+REDO4.2		CCS	PHASE5		# IF SERVICER GOING?
+		TCF	TASKOVER	# YES, DON'T START IT UP AGAIN.
+
+		TC	POSTJUMP
+		CADR	PREREAD		# PREREAD END THIS TASK
+
+# 	*********************************
+
+ULLGTASK	TC	ONULLAGE	# THIS COMES AT TIG-7.5 OR TIG-3.5
+		TC	PHASCHNG
+		OCT	1
+		TCF	TASKOVER
+
+# 	*********************************
+
+TIG-5		EXTEND
+		DCA	NEG0		# INSURE THAT GROUP 3 IS INACTIVE.
+		DXCH	-PHASE3
+
+		CAF	5SEC
+		TC	TWIDDLE
+		ADRES	TIG-0
+
+		TC	DOWNFLAG	# RESET IGNFLAG AND ASINFLAG
+		ADRES	IGNFLAG		# 	FOR LIGHT-UP LOGIC.
+		TC	DOWNFLAG
+		ADRES	ASTNFLAG
+		
+		INDEX	WHICH
+		TCF	11
+
+P40SJUNK	CCS	PHASE3		# (11) P40 AND P42.  S40.13 IN PROGRESS?
+		TCF	DISPCHNG	# YES
+
+		CAF	PRIO20
+		TC	FINDVAC
+		EBANK=	TTOGO
+		2CADR	S40.13
+
+		TC	PHASCHNG	# 3.5SPOT FOR S40.13
+		OCT	00053
+DISPCHNG	CS	VB99DEX		# (11)
+		TS	DISPDEX
+
+# Page 738		
+COMMON		TC	PHASCHNG	# RESTART TIG-0 (4.7SPOT)
+		OCT	40074
+		TCF	TASKOVER
+
+# 	*********************************
+
+TIG-0		CS	FLAGWRD7	# SET IGNFLAG SINCE TIG HAS ARRIVED
+		MASK	IGNFLBIT
+		ADS	FLAGWRD7
+
+		TC	CHECKMM		# IN P63 CASE, THROTTLE-UP IS ZOOMTIME
+		DEC	63		# AFTER NOMINAL IGNITION, NOT ACTUAL
+		TCF	IGNYET?
+		CA	ZOOMTIME
+		TC	WAITLIST
+		EBANK=	DVCNTR
+		2CADR	P63ZOOM
+
+		TC	2PHSCHNG
+		OCT	40033
+
+		OCT	05014
+		OCT	77777
+
+IGNYET?		CAF	ASTNBIT		# CHECK ASTNFLAG:  HAS ASTRONAUT RESPONDED
+		MASK	FLAGWRD7	# TO OUR ENGINE ENABLE REQUEST?
+		EXTEND
+		INDEX	WHICH
+		BZF	12		# BRANCH IF HE HAS NOT RESPONDED YET
+
+IGNITION	CS	FLAGWRD5	# INSURE ENGONFLG IS SET.
+		MASK	ENGONBIT
+		ADS	FLAGWRD5
+		CS	PRIO30		# TURN ON THE ENGINE.
+		EXTEND
+		RAND	DSALMOUT
+		AD	BIT13
+		EXTEND
+		WRITE	DSALMOUT
+		EXTEND			# SET TEVENT FOR DOWNLINK
+		DCA	TIME2
+		DXCH	TEVENT
+
+		EXTEND			# UPDATE TIG USING TGO FROM S40.13
+		DCA	TGO
+		DXCH	TIG
+		EXTEND
+		DCA	TIME2
+		DAS	TIG
+
+# Page 739
+		CS	FLUNDBIT	# PERMIT GUIDANCE LOOP DISPLAYS
+		MASK	FLAGWRD8
+		TS	FLAGWRD8
+
+		INDEX	WHICH
+		TCF	13
+
+P63IGN		EXTEND			# (13)	INITIATE BURN DISPLAYS
+		DCA	DSP2CADR
+		DXCH	AVGEXIT
+
+		CA	Z		# ASSASSINATE CLOKTASK
+		TS	DISPDEX
+
+		CS	FLAGWRD9	# SET FLAG FOR P70-P71
+		MASK	LETABBIT
+		ADS	FLAGWRD9
+		
+		CS	FLAGWRD7	# SET SWANDISP TO ENABLE R10.
+		MASK	SWANDBIT
+		ADS	FLAGWRD7
+		
+		CS	PULSES		# MAKE SURE DAP IS NOT IN MINIMUM-IMPULSE
+		MASK	DAPBOOLS	# MODE, IN CASE OF SWITCH TO P66
+		TS	DAPBOOLS
+
+		EXTEND			# INITIALIZE TIG FOR P70 AND P71.
+		DCA	TIME2
+		DXCH	TIG
+
+		CAF	ZERO		# INITIALIZE WCHPHASE, AND FLPASS0
+		TS	WCHPHASE
+		TS	WCHPHOLD	# ALSO WHCPHOLD
+		CA	TWO
+		TS	FLPASS0
+
+		TCF	P42IGN
+P40IGN		CS	FLAGWRD5	# (13)
+		MASK	NOTHRBIT
+		EXTEND
+		BZF	P42IGN
+		CA	ZOOMTIME
+		TC	WAITLIST
+		EBANK=	DVCNTR
+		2CADR	P40ZOOM
+
+P63IGN1		TC	2PHSCHNG
+		OCT	40033		# 3.3SPOT FOR ZOOM RESTART.
+		OCT	05014		# TYPE C RESTARTS HERE IMMEDIATELY
+		OCT	77777
+
+# Page 740
+		TCF	P42IGN
+P12IGN		CAF	EBANK6
+		TS	EBANK
+		EBANK=	AOSQ
+
+		CA	IGNAOSQ		# INITIALIZE DAP BIAS ACCELERATION
+		TS	AOSQ		# ESTIMATES AT P12 IGNITION.
+		CA	IGNAOSR
+		TS	AOSR
+
+		CAF	EBANK7
+		TS	EBANK
+		EBANK=	DVCNTR
+
+ABRTIGN		CA	Z		# (13) KILL CLOKTASK
+		TS	DISPDEX
+
+		EXTEND			# CONNECT ASCENT GYIDANCE TO SERVICER.
+		DCA	ATMAGADR
+		DXCH	AVGEXIT
+
+		CS	FLAGWRD7	# ENABLE R10.
+		MASK	SWANDBIT
+		ADS	FLAGWRD7
+
+P42IGN		CS	DRIFTBIT	# ENSURE THAT POWERED-FLIGHT SWITCHING
+		MASK	DAPBOOLS	# CURVES ARE USED.
+		TS	DAPBOOLS
+		CAF	IMPULBIT	# EXAMINE IMPULSE SWITCH
+		MASK	FLAGWRD2
+		CCS	A
+		TCF	IMPLBURN
+
+DVMONCON	TC	DOWNFLAG
+		ADRES	IGNFLAG		# CONNECT DVMON
+		TC	DOWNFLAG
+		ADRES	ASTNFLAG
+		TC	DOWNFLAG
+		ADRES	IDLEFLAG
+
+		TC	PHASCHNG
+		OCT	40054
+
+		TC	FIXDELAY	# TURN ULLAGE OFF HALF A SECOND AFTER
+		DEC	50		# LIGHT UP.
+
+ULLAGOFF	TC	NOULLAGE
+
+WAITABIT	EXTEND			# KILL GROUP 4
+		DCA	NEG0
+# Page 741
+		DXCH	-PHASE4
+
+		TCF	TASKOVER
+
+TIGTASK		TC	POSTJUMP	# (12)
+		CADR	TIGTASK1
+
+#	********************************
+
+		BANK	31
+		SETLOC	P40S3
+		BANK
+		COUNT*	$$/P40
+
+TIGTASK1	CAF	PRIO16
+		TC	NOVAC
+		EBANK=	TRKMKCNT
+		2CADR	TIGNOW
+
+		TC	PHASCHNG
+		OCT	6		# KILL GROUP 6
+
+		TCF	TASKOVER
+
+#	********************************
+
+P63ZOOM		EXTEND
+		DCA	LUNLANAD
+		DXCH	AVEGEXIT
+
+		TC	IBNKCALL
+		CADR	FLATOUT
+		TCF	P40ZOOMA
+
+P40ZOOM		CAF	BIT13
+		TS	THRUST
+		CAF	BIT4
+
+		EXTEND
+		WOR	CHAN14
+
+P40ZOOMA	TC	PHASCHNG
+		OCT	3
+		TCF	TASKOVER
+
+		EBANK=	DVCNTR
+LUNLANAD	2CADR	LUNLAND
+
+# Page 742
+ZOOM		=	P40ZOOMA
+		BANK	36
+		SETLOC	P40S
+		BANK
+		COUNT*	$$/P40
+
+#	********************************
+
+COMFAIL		TC	UPFLAG		# (15)
+		ADRES	IDLEFLAG
+		TC	UPFLAG		# SET FLAG TO SUPRESS CONFLICTING DISPLAY
+		ADRES	FLUNDISP
+		CAF	FOUR		# RESET DVMON
+		TS	DVCNTR
+		CCS	PHASE6		# CLOCKTASK ACTIVE?
+		TCF	+3		# YES
+		TC	BANKCALL	# OTHERWISE, START IT UP
+		CADR	STCLOK1
+ 	+3	CS	VB97DEX
+ 		TS	DISPDEX
+		TC	PHASCHNG	# TURN OFF GROUP 4.
+		OCT	00004
+		TCF	ENDOFJOB
+
+COMFAIL1	INDEX	WHICH
+		TCF	2
+
+COMFAIL3	CA	Z		# (15)	KILL CLOKTASK USING Z
+		TCF	+2
+
+COMFAIL4	CS	CNTDNDEX
+		TS	DISPDEX
+
+		TC	DOWNFLAG	# RECONNECT DV MONITOR
+		ADRES	IDLEFLAG
+		TC	DOWNFLAG	# PERMIT GUIDANCE LOOP DISPLAYS
+		ADRES	FLUNDISP
+		TCF	ENDOFJOB
+
+COMFAIL2	TC	PHASCHNG	# KILL ZOOM RESTART PROTECTION
+		OCT	00003
+
+		INHINT
+		TC	KILLTASK	# KILL ZOOM IN CASE IT'S STILL TO COME
+		CADR	ZOOM
+		TC	IBNKCALL	# COMMAND ENGINE OFF
+		CADR	ENGINOF4
+		TC	UPFLAG		# SET THE DRIFT BIT FOR THE DAP.
+		ADRES	DRIFTDFL
+# Page 743
+		TC	INVFLAG		# USE OTHER RCS SYSTEM
+		ADRES	AORBTFLG
+		TC	UPFLAG		# TURN ON ULLAGE
+		ADRES	ULLAGFLG
+		CAF	BIT1
+		INHINT
+		TC	TWIDDLE
+		ADRES	TIG-5
+		TCF	ENDOFJOB
+
+#	***********************************
+#	SUBROUTINES OF THE IGNITION ROUTINE
+#	***********************************
+
+INVFLAG		CA	Q
+		TC	DEBIT
+		COM
+		EXTEND
+		RXOR	LCHAN
+		TCF	COMFLAG
+
+#	***********************************
+
+NOULLAGE	CS	ULLAGER		# MUST BE CALLED IN A TASK OR UNDER INHINT
+		MASK	DAPBOOLS
+		TS	DAPBOOLS
+		TC	Q
+
+#	***********************************
+
+ONULLAGE	CS	DAPBOOLS	# TURN ON ULLAGE.  MUST BE CALLED IN
+		MASK	ULLAGER		# A TASK OR WHILE INHINTED.
+		ADS	DAPBOOLS
+		TC	Q
+
+# 	***********************************
+
+STCLOK1		CA	ZERO		# THIS ROUTINE STARTS THE COUNT-DOWN
+STCLOK2		TS	DISPDEX		# (CLOKTASK AND CLOKJOB).  SETTING
+STCLOK3		TC	MAKECADR	# SETTING DISPDEX POSITIVE KILLS IT.
+		TS	TBASE4		# RETURN SAVE (NOT FOR RESTARTS).
+		EXTEND
+		DCA	TIG
+		DXCH	MPAC
+		EXTEND
+		DCS	TIME2
+# Page 744		
+		DAS	MPAC		# HAVE TIG -- TIME2, UNDOUBTEDLY A + NUMBER
+		TC	TPAGREE		# POSITIVE, SINCE WE PASSED THE
+		CAF	1SEC		# 45 SECOND CHECK.
+		TS	Q
+		DXCH	MPAC
+		MASK	LOW5		# RESTRICT MAGNITUDE OF NUMBER IN A
+		EXTEND
+		DV	Q
+		CA	L		# GET REMAINDER
+		AD	TWO
+		INHINT
+		TC	TWIDDLE
+		ADRES	CLOKTASK
+		TC	2PHSCHNG
+		OCT	40036		# 6.3SPOT FOR CLOKTASK
+		OCT	05024
+		OCT	13000
+
+		CA	TBASE4
+		TC	BANKJUMP
+
+CLOKTASK	CS	TIME1		# SET TBASE6 FOR GROUP 6 RESTART
+		TS	TBASE6
+
+		CCS	DISPDEX
+		TCF	KILLCLOK
+		NOOP
+		CAF	PRIO27
+		TC	NOVAC
+		EBANK=	TTOGO
+		2CADR	CLOKJOB
+
+		TC	FIXDELAY	# WAIT A SECOND BEFORE STARTING OVER
+		DEC	100
+		TCF	CLOKTASK
+
+KILLCLOK	EXTEND			# KILL RESTART
+		DCA	NEG0
+		DXCH	-PHASE6
+		TCF	TASKOVER
+
+CLOKJOB		EXTEND
+		DCS	TIG
+		DXCH	TTOGO
+		EXTEND
+# Page 745		
+		DCA	TIME2
+		DAS	TTOGO
+		INHINT
+		CCS	DISPDEX		# IF DISPDEX HAS BEEN SET POSITIVE BY A
+		TCF	ENDOFJOB	# TASK OR A HIGHER PRIORITY JOB SINCE THE
+		TCF	ENDOFJOB	# LAST CLOKTASK, AVOID USING IT AS AN
+		COM			# INDEX.
+		RELINT			# ***** DISPDEX MUST NEVER B -0 *****
+		INDEX	A
+		TCF	DISPNOT -1	# (-1 DUE TO EFFECT OF CCS)
+
+VB97DEX		=	OCT35		# NEGATIVE OF THIS IS PROPER FOR DISPDEX
+
+ 	-35	CS	ZERO		# INDICATE VERB 97 PASTE
+ 		TS	NVWORD1
+		CA	NVWORD 	+2	# NVWORD+2 CONTAINS V06 & APPROPRIATE NOUN
+		TC	BANKCALL
+		CADR	CLOCPLAY
+		TCF	STOPCLOK	# TERMINATE CLOKTASK ON THE WAY TO P00H
+		TCF	COMFAIL1
+		TCF	COMFAIL2
+
+					# THIS DISPLAY IS CALLED VIA ASTNCLOK
+ 	-25	CAF	V06N61		# IT IS PRIMARILY USED BY THE CREW IN P63
+ 		TC	BANKCALL	# TO RESET HIS EVENT TIMER TO AGREE WITH
+		CADR	REFLASH		# TIG.
+		TCF	STOPCLOK
+		TCF	ASTNRETN
+		TCF	-6
+
+CNTDNDEX	=	LOW4		# OCT17:  NEGATIVE PROPER FOR DISPDEX
+
+ 	-17	INDEX	WHICH		# THIS DISPLAY COMES UP AT ONE SECOND
+		# Was CAF --- RSB 2009
+ 		CA	0		# INTERVALS.  IT IS NORMALLY OPERATED
+		TC	BANKCALL	# BETWEEN TIG-30 SECONDS AND TIG-5 SECONDS
+		CADR	REGODSP		# REGODSP DOES ITS OWN TCF ENDOFJOB
+
+VB99DEX		=	ELEVEN		# OCT13:  NEGATIVE PROPER FOR DISPDEX
+
+V99RECYC	EQUALS
+
+ 	-13	CS	BIT9		# INDICATE VERB 99 PASTE
+ 		TS	NVWORD1
+		INDEX	WHICH		# THIS IS THE "PLEASE ENABLE ENGINE"
+		# Was CAF --- RSB 2004
+		CA	0		# DISPLAY; IT IS INITIATED AT TIG-5 SEC.
+		TC	BANKCALL	# THE DISPLAY IS A V99NXX, WHERE XX IS
+		CADR	CLOCPLAY	# NOUN THAT HAD PREVIOUSLY BEEN DISPLAYED
+		TCF	STOPCLOK	# TERMINATE GOTOP00H TURNS OFF ULLAGE.
+		TCF	*PROCEED
+		TCF	*ENTER
+
+# Page 746
+BLANKDEX	=	TWO		# NEGATIVE OF THIS IS PROPER FOR DISPDEX
+
+	-2	TC	BANKCALL	# BLANK DSKY.  THE DSKY IS BLANKED FOR
+ 		CADR	CLEANDSP	# 5 SECONDS AT TIG-35 TO INDICATE THAT
+DISPNOT		TCF	ENDOFJOB	# AVERAGE G IS STARTING.
+
+STOPCLOK	TC	NULLCLOK	# STOP CLOKTASK & TURN OFF ULLAGE ON THE
+		TCF	GOTOP00H	# WAY TO P00 (GOTOP00H RELINTS)
+
+NULLCLOK	INHINT
+		EXTEND
+		QXCH	P40/RET
+		TC	NOULLAGE	# TURN OFF ULLAGE ...
+		TC	KILLTASK	#	DON'T LET IT COME ON, EITHER ...
+		CADR	ULLGTASK
+		TC	PHASCHNG	#		NOT EVEN IF THERE'S A RESTART.
+		OCT	1
+		CA	Z		# KILL CLOKTASK
+		TS	DISPDEX
+		TC	P40/RET
+
+ASTNRETN	TC	PHASCHNG
+		OCT	04024
+		CAF	ZERO		# STOP DISPLAYING BUT KEEP RUNNING
+		TS	DISPDEX
+		CAF	PRIO13
+		TC	FINDVAC
+		EBANK=	STARIND
+		2CADR	ASTNRET
+
+		TCF	ENDOFJOB
+
+*PROCEED	TC	UPFLAG
+		ADRES	ASTNFLAG
+
+		TCF	IGNITE
+
+*ENTER		INHINT
+		INDEX	WHICH
+		TCF	3
+
+GOPOST		CAF	PRIO12		# (3) MUST BE LOWER PRIORITY THAN CLOKJOB
+		TC	FINDVAC
+		EBANK=	TTOGO
+		2CADR	POSTBURN
+
+# Page 747
+		INHINT			# SET UP THE DAP FOR COASTING FLIGHT.
+		TC	IBNKCALL
+		CADR	ALLCOAST
+		TC	NULLCLOK
+		TC	PHASCHNG	# 4.13 RESTART FOR POSTBURN
+		OCT	00134
+
+		TCF	ENDOFJOB
+
+GOCUTOFF	CAF	PRIO17		# (3)
+		TC	FINDVAC
+		EBANK=	TGO
+		2CADR	CUTOFF
+
+		TC	DOWNFLAG
+		ADRES	FLUNDISP
+
+		INHINT			# SET UP THE DAP FOR COASTING FLIGHT.
+		TC	IBNKCALL
+		CADR	ALLCOAST
+		TC	NULLCLOK
+		TC	PHASCHNG
+		OCT	07024
+		OCT	17000
+		EBANK=	TGO
+		2CADR	CUTOFF
+
+		TCF	ENDOFJOB
+
+IGNITE		CS	FLAGWRD7	# (2)
+		MASK	IGNFLBIT
+		CCS	A
+		TCF	IGNITE1
+		CAF	BIT1
+		INHINT
+		TC	TWIDDLE
+		ADRES	IGNITION
+
+		CAF	OCT23		# IMMEDIATE RESTART AT IGNITION
+		TS	L
+		COM
+		DXCH	-PHASE4
+
+IGNITE1		CS	CNTDNDEX	# RESTORE OLD DISPLAY.
+		TS	DISPDEX
+
+		TCF	ENDOFJOB
+
+# Page 748
+#	********************************
+
+P40ALM		TC	ALARM		# PROGRAM SELECTION NOT CONSISTENT WITH
+		OCT	1706		# VEHICLE CONFIGURATION
+
+REP40ALM	CAF	V05N09		# (14)
+		TC	BANKCALL
+		CADR	GOFLASH
+
+		TCF	GOTOP00H	# V34E 		TERMINATE
+		TCF	+2		# PROCEED 	CHECK FOR P42
+		TCF	REP40ALM	# V32E		REDISPLAY ALARM
+
+		INDEX	WHICH		# FOR P42, ALLOW CREW TO PRECEED EVEN
+		TCF	14		# THOUGH VEHICLE IS UNSTAGED.
+
+#	********************************
+
+		BANK	31
+		SETLOC	P40S2
+		BANK
+
+		COUNT*	$$/P40
+
+P40AUTO		TC	MAKECADR	# HELLO THERE.
+		TS	TEMPR60		# FOR GENERALIZED RETURN TO OTHER BANKS.
+P40A/P		TC	BANKCALL	# SUBROUTINE TO CHECK PGNCS CONTROL
+		CADR	G+N,AUTO	# AND AUTO STABILIZATION MODES
+		CCS	A		# +0 INDICATES IN PGNCS, IN AUTO
+		TCF	TURNITON	# + INDICATES NOT IN PGNCS AND/OR AUTO
+		CAF	APSFLBIT	# ARE WE ON THE DESCENT STAGE?
+		MASK	FLGWRD10
+		CCS	A
+		TCF	GOBACK		# RETURN
+		CAF	BIT5		# YES, CHECK FOR AUTO-THROTTLE MODE
+		EXTEND
+		RAND	CHAN30
+		EXTEND
+		BZF	GOBACK		# IN AUTO-THROTTLE MODE -- RETURN
+TURNITON	CAF	P40A/PMD	# DISPLAYS V50N25 R1=203 PLEASE PERFORM
+		TC	BANKCALL	# CHECKLIST 203 TURN ON PGNCS ETC.
+		CADR	GOPERF1
+		TCF	GOTOP00H	# V34E TERMINATE
+		TCF	P40A/P		# RECYCLE
+GOBACK		CA	TEMPR60
+		TC	BANKJUMP	# GOODBYE.  COME AGAIN SOON.
+
+P40A/PMD	OCT	00203
+
+# Page 749
+		BANK	36
+		SETLOC	P40S
+		BANK
+
+		COUNT*	$$/P40
+
+#	**********************************
+#	CONSTANTS FOR THE IGNITION ROUTINE
+#	**********************************
+
+SERVCADR	=	P63TABLE +7
+
+P40ADRES	ADRES	P40TABLE
+
+P41ADRES	ADRES	P41TABLE -5
+
+P42ADRES	ADRES	P42TABLE
+
+		EBANK=	DVCNTR
+DSP2CADR	2CADR	P63DISPS -2
+
+		EBANK=	DVCNTR
+ATMAGADR	2CADR	ATMAG
+
+?		=	GOTOP00H
+
+D29.9SEC	2DEC	2990
+
+S24.9SEC	DEC	2490
+
+4.9SEC		DEC	490
+
+OCT20		=	BIT5
+
+V06N61		VN	0661
+
+# Page 750
+# KILLTASK
+# MOD NO:  NEW PROGRAM
+# MOD BY:  COVELLI
+#
+# FUNCTIONAL DESCRIPTION:
+#
+#	KILLTASK IS USED TO REMOVE A TASK FROM THE WAITLIST BY SUBSTITUTING A NULL TASK CALLED `NULLTASK' (OF COURSE),
+#	WHICH MERELY DOES A TC TASKOVER.  IF THE SAME TASK IS SCHEDULED MORE THAN ONCE, ONLY THE ONE WHICH WILL OCCUR
+#	FIRST IS REMOVED.  IF THE TASK IS NOT SCHEDULED, KILLTASK TAKES NO ACTION AND RETURNS WITH NO ALARM.  KILLTASK
+#	LEAVES INTERRUPTS INHIBITED SO CALLER MUST RELINT
+#
+# CALLING SEQUENCE
+#	L	TC	KILLTASK	# IN FIXED-FIXED
+#	L+1	CADR	????????	# CADR (NOT 2CADR) OF TASK TO BE REMOVED.
+#	L+2	(RELINT)		# RETURN
+#
+# EXIT MODE:  AT L+2 OF CALLING SEQUENCE.
+#
+# ERASABLE INITIALIZATION:  NONE.
+#
+# OUTPUT:  2CADR OF NULLTASK IN LST2
+#
+# DEBRIS:  ITEMP1 - ITEMP4, A, L, Q.
+
+		EBANK=	LST2
+		BLOCK	3		# KILLTASK MUST BE IN FIXED-FIXED.
+		SETLOC	FFTAG6
+		BANK
+		COUNT*	$$/KILL
+KILLTASK	CA	KILLBB
+		INHINT
+		LXCH	A
+		INDEX	Q
+		CA	0		# GET CADR.
+		LXCH	BBANK
+		TCF	KILLTSK2	# CONTINUE IN SWITCHED FIXED.
+
+		EBANK=	LST2
+KILLBB		BBCON	KILLTSK2
+
+		BANK	27
+
+		SETLOC	P40S1
+		BANK
+		COUNT*	$$/KILL
+
+KILLTSK2	LXCH	ITEMP2		# SAVE CALLER'S BBANK
+# Page 751
+		INCR	Q
+		EXTEND
+		QXCH	ITEMP1		# RETURN 2ADR IN ITEMP1,ITEMP2
+
+		TS	ITEMP3		# CADR IS IN A
+		MASK	LOW10
+		AD	BIT11
+		TS	ITEMP4		# GENADR OF TASK
+
+		CS	LOW10
+		MASK	ITEMP3
+		TS	ITEMP3		# FBANK OF TASK
+
+		ZL
+ADRSCAN		INDEX	L
+		CS	LST2
+		AD	ITEMP4		# COMPARE GENADRS
+		EXTEND
+		BZF	TSTFBANK	# IF THEY MATCH, COMPARE FBANKS
+LETITLIV	CS	LSTLIM
+		AD	L
+		EXTEND			# ARE WE DONE?
+		BZF	DEAD		# YES -- DONE, SO RETURN
+		INCR	L
+		INCR	L
+		TCF	ADRSCAN		# CONTINUE LOOP.
+
+DEAD		DXCH	ITEMP1
+		DTCB
+
+TSTFBANK	CS	LOW10
+		INDEX	L
+		MASK	LST2 	+1	# COMPARE FBANKS ONLY.
+		EXTEND
+		SU	ITEMP3
+		EXTEND
+		BZF	KILLDEAD	# MATCH -- KILL IT.
+		TCF	LETITLIV	# NO MATCH -- CONTINUE.
+
+KILLDEAD	CA	TCTSKOVR
+		INDEX	L
+		TS	LST2		# REMOVE TASK BY INSERTING TASKOVER
+		TCF	DEAD
+
+LSTLIM		EQUALS	BIT5		# DEC 16
diff --git a/CM_BODY_ATTITUDE.s b/CM_BODY_ATTITUDE.s
index 5839f61..048a601 100644
--- a/CM_BODY_ATTITUDE.s
+++ b/CM_BODY_ATTITUDE.s
@@ -1,5 +1,5 @@
 # Copyright:    Public domain.
-# Filename:     CM_BODY_ATTITUDE.s
+# Filename:     CM_BODY_ATTITUDE.agc
 # Purpose:      Part of the source code for Comanche, build 055. It
 #               is part of the source code for the Command Module's
 #               (CM) Apollo Guidance Computer (AGC), Apollo 11.
diff --git a/CM_ENTRY_DIGITAL_AUTOPILOT.s b/CM_ENTRY_DIGITAL_AUTOPILOT.s
new file mode 100644
index 0000000..96ecd42
--- /dev/null
+++ b/CM_ENTRY_DIGITAL_AUTOPILOT.s
@@ -0,0 +1,1275 @@
+# Copyright:	Public domain.
+# Filename:	CM_ENTRY_DIGITAL_AUTOPILOT.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:	1063-1092
+# Mod history:	2009-05-13 RSB	Adapted from the Colossus249/ file of the
+#				same name, using Comanche055 page images.
+#		2009-05-20 RSB	Corrections: Removed an extraneous label 
+#				EXDAPIN, added a missing instruction in 
+#				COMPAT.
+#
+# 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 1063
+# SUBROUTINE TO READ GIMBAL ANGLES AND FORM DIFFERENCES.  GIMBAL ANGLES ARE SAVED IN 2'S COMPLEMENT, BUT THE
+# DIFFERENECES ARE IN 1'S COMP.  ENTER AND READ ANGLES EACH .1 SEC.
+#
+#	CM/DSTBY = 1 FOR DAP OPERATION
+#	CM/DSTBY = 0 TO TERMINATE DAP OPERATION
+
+		BANK	15
+		
+		SETLOC	ETRYDAP
+		BANK
+		
+		COUNT	15/DAPEN
+		
+		EBANK=	AOG
+		
+READGYMB	CA	TEN		# KEEP RESTART DT GOING RELATIVE TO
+		ADS	CM/GYMDT	# PIPTIME.  (GROUP 6)
+		
+					# IF A RESTART OCCURS, SKIP PRESENT CYCLE.  THE
+					# PHASCHNG PROTECTION IS IN CM/DAPIC.
+					
+		CA	BIT6		# CHECK FOR FINE ALIGN MODE OF CDU.
+		MASK	IMODES33	# (PROTECT AOG/PIP ETC AS WELL AS
+		EXTEND			# GIMBAL DIFFERENCES)
+		BZF	READGYM1	# OK
+		
+		CS	BIT1		# NOT IN FINE ALIGN, SO IDLE
+		MASK	CM/FLAGS	# SET GYMDIFSW = 0
+		TS	CM/FLAGS
+		TC	FLUSHJET	# QUENCH JETS, SINCE MAY BE A WHILE.
+		TC	CM/GYMIC +2
+		
+READGYM1	CA	CDUX
+		XCH	AOG
+		EXTEND
+		MSU	AOG		# -DELAOG=AOG(N-1) - AOG(N)
+		TS	-DELAOG
+		
+		CA	CDUY
+		XCH	AIG
+		EXTEND
+		MSU	AIG
+		TS	-DELAIG
+		
+		CA	CDUZ
+		XCH	AMG
+		EXTEND
+		MSU	AMG
+		TS	-DELAMG
+
+# Page 1064
+DOBRATE?	CS	CM/FLAGS	# CM/DSTBY=103D BIT2  GYMDIFSW=104D BIT1
+		MASK	THREE
+		INDEX	A
+		TC	+1
+		TC	DOBRATE		# OK, GO ON
+		TC	CM/GYMIC	# DON'T CALC BODYRATE ON FIRST PASS.
+		NOOP
+		TC	FLUSHJET	# TURN OFF ALL JETS
+		
+		TC	PHASCHNG
+		OCT	00006		# DEACTIVATE DAP GROUP 6.
+		
+		TC	TASKOVER
+		
+DOBRATE		CA	ONE		# DO BODYRATE
+DOBRATE1	TS	JETEM		# SKIP BODYRATE
+
+		CA	TEN		# KEEP CDU READ GOING.
+		TC	WAITLIST
+		EBANK=	AOG
+		2CADR	READGYMB
+		
+					# DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
+					
+		CCS	JETEM
+		TC	BODYRATE
+		TC	TASKOVER	# SKIP CALC ON INITIAL PASS.  (PASSES)
+		
+CM/GYMIC	ADS	CM/FLAGS	# GYMDIFSW:  C(A)=1, KNOW BIT IS 0
+		CAF	ZERO
+		TS	JETAG
+		TS	OLDELP
+		TS	OLDELQ
+		TS	OLDELR
+		TS	GAMDOT		# NO GYM DIF, PROB NO GAM DIF.
+		TC	DOBRATE1
+		
+# Page 1065
+# COME HERE TO CORRECT FOR OVERFLOW IN ANGULAR CALCULATIONS
+
+ANGOVCOR	TS	L		# THIS COSTS 2 MCT TO USE.
+		TC	Q		# NO OVFL
+		INDEX	A
+		CAF	LIMITS
+		ADS	L
+		TC	Q
+		
+		BLOCK	3
+		
+		COUNT	03/DAPEN
+		
+FLUSHJET	CA	7		# COME HERE TO TURN OFF ALL JETS.
+		EXTEND
+		WRITE	ROLLJETS	# ZERO CHANNEL 6
+		EXTEND
+		WRITE	PYJETS		# ZERO CHANNEL 5
+		TC	Q
+		
+		BANK	15
+		
+		COUNT	15/DAPEN
+		
+		SETLOC	ETRYDAP
+		BANK
+		
+RATEAVG		COM			# SUBROUTINE TO ESTIMATE RATES IN PRESENCE
+		AD	JETEM		# OF CONSTANT ACCELERATION.
+		EXTEND
+		MP	HALF		# DELV (EST) = DELV +(DELV-OLDELV)/2
+		AD	JETEM
+		TC	Q
+		
+# Page 1066
+# THESE ARE CALLED FOR THE VARIOUS INITIALIZATIONS NEEDED.
+
+		BANK	20
+		SETLOC	DAPS1
+		BANK
+		
+		COUNT	20/DAPEN
+		EBANK=	AOG
+		
+CM/DAPON	CA	EBAOG
+		TS	EBANK
+		
+		TC	DOWNFLAG	# RESET DAPBIT1.  T5 RESTART IDENTIFIER.
+		ADRES	DAPBIT1		# BIT 15 FLAG 6		CMFLAGS.
+		TC	DOWNFLAG	# RESET DAPBIT2
+		ADRES	DAPBIT2		# BIT 14 FLAG 6
+		EXTEND
+		DCA	T5IDLER1	# DISABLE RCS CALCULATION
+		DXCH	T5LOC
+		EXTEND
+		DCA	T5IDLER1	# DISABLE RCS JET CALLS
+		DXCH	T6LOC
+		
+		TC	FLUSHJET	# JETS DEPARTED ON SM. ZERO JET BITS.
+		
+		CS	13,14,15
+		MASK	DAPDATR1	# SET CONFIG BITS=0 FOR ENTRY
+		TS	DAPDATR1
+		TC	+4
+		
+NOTYET		CA	.5SEC
+		TC	BANKCALL
+		CADR	DELAYJOB	# (DELAYJOB DOES INHINT)
+	+4	CA	BIT11		# GAMDIFSW = 94D BIT11, INITLY=0
+		MASK	CM/FLAGS	# IF ZERO, WAIT UNTIL CM/POSE UPDATE.
+		EXTEND
+		BZF	NOTYET
+		
+		CS	ONE		# ACTIVATE CM/DAP
+		TS	RCSFLAGS	# USE BIT3 TO INITIALIZE NEEDLER ON
+					# NEXT PASS.
+		TS	P63FLAG		# SO WAKEP62 WILL NOT BE INITIATED UNTIL
+					# HEADSUP IS SET IN P62.
+					
+					# FLAG TO PREVENT MULTIPLE CALLS TO WAKEP62
+					
+		CA	7
+		TS	JETAG
+		TS	PAXERR1		# KEEP NEEDLES ZERO UNTIL DAP UPDATE
+					# IN CASE CMDAPMOD IS NOT +1.
+# Page 1067
+		INHINT
+		EXTEND
+		DCA	ALFA/180	# DO ATTITUDE HOLD UNTIL KEYBOARD
+		DXCH	ALFACOM		# ESTABLISHES HEADSUP.
+		CA	ROLL/180
+		TS	ROLLHOLD	# FOR ATTITUDE HOLD IN MODE +1.
+		EXTEND
+		MP	HALF
+		TS	ROLLC		# NOT INTERESTED IN LO WORD.
+		
+		CS	CM/FLAGS
+		MASK	BIT12		# CMDAPARM =93D BIT12  INITLY=0
+		ADS	CM/FLAGS	# SET BIT TO 1.
+		
+		CS	FLAGWRD2	# SET  NODOFLAG  TO PREVENT FURTHER
+		MASK	BIT1		# V 37 ENTRIES.
+		ADS	FLAGWRD2
+		
+		RELINT
+		
+		TC	POSTJUMP
+		CADR	P62.1
+		
+# Page 1068
+# INITIALIZE CM/DAP.  WAITLIST CALL FOR READGYMB.  SET SWITCH CM/DSTBY =1
+# SO READACCS WILL ENTER A WTLST CALL FOR  SETJTAG .
+#  CMDAPARM  = 0, SO ONLY BODY RATE AND ATTITUDE CALCULATIONS ARE DONE.
+# SET AVEGEXIT TO CONTINUE AT CM/POSE
+
+CM/DAPIC	CA	EBAOG
+		TS	EBANK
+		
+		INHINT
+CM/DAP2C	CS	PIPTIME +1
+					# PRIO OF P62 L PRIO AVG.:PIPTM=PIPTM1.
+		TS	JETEM
+		
+		CA	POS1/2
+		AD	POS1/2
+		AD	TIME1		# OVFL GUARANTEED
+		ADS	JETEM		# C(A) = DELTA TIME SINCE PIPUP
+		
+		CS	FIVE
+		AD	JETEM
+		CCS	A
+		AD	-CDUT+1
+		TCF	-2
+		NOOP
+		AD	ONE		# SEND NO ZERO TO WTLST
+		TS	CM/GYMDT	# FOR RESTART
+		TC	WAITLIST
+		EBANK=	AOG
+		2CADR	READGYMB
+		
+		CS	CM/SWIC1	# GAMDIFSW, GYMDIFSW, CM/DSTBY
+		MASK	CM/FLAGS	# DAPARM, .05GSW, LATSW, ENTRYDSP
+		AD	CM/SWIC2	# SET CM/DSTBY, LATSW
+					# DISABLE ENTRY DISPLAY, SINCE DES. GIMB.
+					# CALC.  (P62.3) GOES TO ENDEXIT
+		TS	CM/FLAGS
+		
+		CA	7
+		TS	BETA/180	# NECESSARY:  NO OVFL CORRECTIO
+		CA	ONE		# INITIALIZE THE TM OF BODY RATES VIA
+		TS	SW/NDX		# UPBUFF.
+		
+		TC	2PHSCHNG	# DOES INHINT/RELINT
+		OCT	40116		# SAVE TBASE6
+		OCT	05024
+		OCT	13000
+		
+		TC	POSTJUMP
+# Page 1069
+		CADR	P62.2
+		
+CM/SWIC1	OCT	16017
+CM/SWIC2	=	TEN		# 00012: CM/DSTBY, LATSW
+-CDUT+1		OCT	77766
+		EBANK=	T5LOC
+T5IDLER1	2CADR	T5IDLOC
+
+# Page 1070
+# THIS SECTION CALCULATES THE ANGULAR BODY RATES EACH .1 SEC.  THE ANGULAR RATES ARE THOSE ALONG THE BODY AXES
+# XB, YB, ZB, AND ARE NORMALLY DESIGNATED P, Q, R.	REQIREMENT:  TEMPORARILY ERASE.  JETEM, JETEM +1
+#
+# SINCE RESTARTS ZERO THE JET OUTPUT CHANNELS, NO ATTEMPT IS MADE TO RESTART THE ENTRY DAPS.  THAT IS,
+# THE 0.1 SEC DAPS WILL MISS A CYCLE, AND WILL PICK UP AT THE NEXT 0.1 SEC UPDATE.  MOST OF THE TIME THE 2 SEC
+# ROLL SYSTEM WILL MISS ONLY 0.1 SEC OF CONTROL.  HOWEVER, IF THE RESTART OCCURS AFTER THE SECTION TIMETST HAS
+# STARTED, THEN THE ROLL SYSTEM WILL MISS ONE CYCLE.
+# THIS IS NECESSARY UNDER THE GROUND-RULE THAT NO JET COMMANDS SHALL BE LESS THAN 14 MS.
+
+		EBANK=	AOG
+		BANK	15
+		SETLOC	ETRYDAP
+		BANK
+		
+		COUNT	15/DAPEN
+		
+BODYRATE	CA	AMG		# THESE ARE 2'S COMPL NOS, BUT USE ANYWAY.
+		TC	SPCOS
+		TS	COSM
+		
+		CA	AOG		# C(AOG) = AOG/180
+		TC	SPSIN		# SINO
+		TS	SINO		# SINO = SIN(AOG)
+		
+		EXTEND
+		MP	COSM
+		TS	SINOCOSM	# SO CM
+		
+		CA	AOG
+		TC	SPCOS		# COSO
+		TS	COSO
+		
+		EXTEND
+		MP	COSM
+		TS	COSOCOSM	# CO CM
+		
+# PITCHDOT:  Q TCDU/180 = IDOT TCDU/180 COSO COSM + MDOT TCDU/180 SINO
+
+		CS	-DELAMG
+		EXTEND
+		MP	SINO
+		DXCH	JETEM		# 2 LOCS
+		CS	-DELAIG
+		EXTEND
+		MP	COSOCOSM
+		DAS	JETEM
+		CA	JETEM
+		XCH	OLDELQ
+		TC	RATEAVG
+		TS	QREL		# PITCHDOT = Q TCDU/180
+		
+# Page 1071
+# YAWDOT:  R TCDU/180 = -IDOT TCDU/180 COSM SINO + MDOT TCDU/180 COSO
+
+		CS	-DELAMG
+		EXTEND
+		MP	COSO
+		DXCH	JETEM
+		CA	-DELAIG
+		EXTEND
+		MP	SINOCOSM
+		DAS	JETEM
+		CA	JETEM
+		XCH	OLDELR
+		TC	RATEAVG
+		TS	RREL		# YAWDOT = R TCDU/180
+		
+# ROLLDOT:  P TCDU/180 = ODOT TCDU/180 + IDOT TCDU/180 SINM
+
+		CA	AMG
+		TC	SPSIN
+		TS	SINM
+		
+		EXTEND
+		MP	-DELAIG
+		TS	JETEM
+		CA	ZERO
+		DDOUBL			# ROUND L INTO A
+		AD	-DELAOG
+		AD	JETEM
+		CS	A
+		TS	JETEM
+		XCH	OLDELP
+		TC	RATEAVG
+		TS	PREL		# ROLLDOT = P TCDU/180
+		
+					# IF GAMDOT < 0.5 DEG/SEC, THEN GAMDOT =0
+					
+		CCS	GAMDOT
+		TC	+2
+		TC	NOGAMDUT
+		CS	ROLL/180
+		TC	SPSIN
+		EXTEND
+		MP	GAMDOT
+		TS	JETEM +1	# -SR GAMDOT
+		EXTEND
+		MP	SINTRIM		# SIN(-20)	(FOR NOMINAL L/D = .3)
+		ADS	PREL		# PREL TCDU/180=(P-SALF SR GAMDOT)TCDU/180
+		
+		CA	ROLL/180
+		TC	SPCOS
+# Page 1072
+		COM
+		EXTEND
+		MP	GAMDOT
+		ADS	QREL		# QREL TCDU/180=(Q-CR GAMDOT) TCDU/180
+		
+		CS	JETEM +1	# B( ) = -SR GAMDOT
+		EXTEND
+		MP	COSTRIM		# COS(-20)	(FOR NOMINAL L/D = .3)
+		ADS	RREL		# RREL TCDU/180=(R+CALF SR GAMDOT)TCDU/180
+		
+NOGAMDUT	CA	BIT12		# CMDAPARM = 93D BIT 12
+		MASK	CM/FLAGS
+		EXTEND
+STBYDUMP	BZF	TASKOVER	# DAP NOT ARMED.
+
+		CA	POSMAX		# PICK UP AT ATTRATES IN 10 MS OR SO.
+		TS	TIME5
+		
+		EXTEND
+		DCA	ATDOTCAD
+		DXCH	T5LOC
+					# DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
+					
+		TC	TASKOVER
+		
+		EBANK=	AOG
+ATDOTCAD	2CADR	ATTRATES
+
+# Page 1073
+# CALCULATE BODY ATTITUDE RATES AND INTEGRATE TO OBTAIN ATTITUDE ANGLES.
+#
+#	CB PHIDOT TCDU/180 = (CA PREL + SA RREL) TCDU/180
+#	BETADOT TCDU/180 = (-SA PREL + CA RREL) TCDU/180
+#	ALFADOT TCDU = (QREL + SB PHIDOT) TCDU/180
+
+ATTRATES	LXCH	BANKRUPT	# CONTINUE HERE VIA T5
+		EXTEND			# TASK MAY BE SKIPPED AT RESTART.
+		QXCH	QRUPT
+		CA	SR
+		DOUBLE
+		TS	CM/SAVE
+					# DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
+					
+		CA	QREL
+		AD	ALFA/180
+		TC	ANGOVCOR
+		TS	ALFA/180
+		TC	SPCOS
+		TS	CALFA		# CALFA
+		TS	PHIDOT
+		
+		EXTEND
+		MP	PREL
+		XCH	PHIDOT		# CA PREL
+		EXTEND
+		MP	RREL		# CA RREL
+		TS	BETADOT
+		
+		CA	ALFA/180
+		TC	SPSIN
+		TS	SALFA		# SIN(ALFA)
+		
+		EXTEND
+		MP	RREL		# SA RREL
+		ADS	PHIDOT		# CB PHIDOT, SAVED.
+		
+		CS	SALFA
+		EXTEND
+		MP	PREL
+		ADS	BETADOT		# SAVE BETADOT TCDU/180
+		ADS	BETA/180	# BETA DONE.
+		
+		TC	SPSIN
+		EXTEND
+		MP	PHIDOT		# NEGLECT CB IN CB PHIDOT
+		AD	ALFA/180
+		TC	ANGOVCOR
+		TS	ALFA/180	# ALFA DONE.
+# Page 1074
+		COM
+		AD	ALFACOM
+		TC	ANGOVCOR	# JUST IN CASE ...
+		TS	AK1
+		TS	QAXERR		# FOR PITCH FDAI AND EDIT.
+		
+		CA	PHIDOT		# PHIDOT TCDU/180, NEGLECTING CB
+		AD	ROLL/180
+		TC	ANGOVCOR
+		TS	ROLLTM		# ROLL/180 FOR TM.
+		TS	ROLL/180	# ROLL DONE.
+		
+# START YAW AUTOPILOT HERE.  RATE DAMPING WITH ENFORCED COORDINATED ROLL MANEUVER.
+
+		CS	BETA/180	# IF IN ATM, SAVE 'RAXERR' FOR TM DNLST.
+		AD	BETACOM
+		TS	RAXERR		# IF OUTSIDE ATM, USE TM REGISTER 'RAXERR'
+					# AS A TEMPORARY.  (DAP OPERATION IS IN INTERRUPT, SO
+					# IS OK.)  FINAL C(RAXERR) AT END OF DAP CYCLE WILL
+					# BE R-AXIS ERROR.
+					
+		CA	BIT3		# .05GSW = 102D BIT3	SW=0, LESS .05G
+		MASK	CM/FLAGS	# SWITCH =1, GREATER THAN .05 G
+		EXTEND
+		BZF	EXDAP		# IF G LESS THAN .05
+		CS	ONE		# IF G GEQ  THAN .05
+		TS	CMDAPMOD	# SAVE -1 FOR USE IN CM/RCS
+		
+		TS	AK1		# TO ZERO PITCH AND YAW FDAI NEEDLES
+		TS	AK2		# IN ATM.  (MODE =-1)
+		
+		CS	PREL		# YAW ERROR = RREL - PREL TAN(ALFA)
+		EXTEND
+		MP	SINTRIM		# LET SIN(-20) BE APPROX FOR TAN(-20)
+		AD	RREL
+		TC	2D/SDZ		# GO TEST DZ.  GET TAG: +0 IF IN DZ
+		INDEX	A		# +/- 1 IF NOT
+		CAF	YJETCODE
+		
+		TS	JETEM
+		
+# START PITCH AUTOPILOT HERE.  RATE DAMPING ONLY.
+
+		CA	QREL
+		TC	2D/SDZ
+EXDAPIN		INDEX	A		# COME HERE FROM EX ATM DAP
+		CAF	P/RJCODE
+		ADS	JETEM		# COMBINE ALL NEW BITS.
+		
+		EXTEND			# DOES NOT REQUIRE SAVING OLD CODES.
+# Page 1075		
+		WRITE	PYJETS		# SET PYCHAN TO DESIRED BIT CONFIG.
+		
+		CCS	JETAG
+		TC	CM/RCS
+		TC	CM/FDAI
+		TC	CM/FDAIR -1 	# (JETAG=-1 EQUIVALENT TO CMDAPMOD=+1)
+
+# Page 1076
+# DEAD ZONE LOGIC USED BY ENTRY DIGITAL AUTOPILOTS.
+
+3DDZ		CCS	A		# YAWLIM=1.0-3/180=16384-273=16111
+		AD	YAWLIM
+		TCF	DZCOM
+		AD	YAWLIM
+		TCF	DZNOCOM
+		
+					# BIASED DZ FOR EXT ATM DAP.
+BIASEDZ		TS	JETEM2		# SAVE RATE/180.  ERROR/180 IS IN L.
+		CCS	A		# START ERROR DZ.
+		CS	CM/BIAS		# = .6/180
+		TCF	+2
+		CA	CM/BIAS
+		AD	L		# BIAS THE ERROR.
+		LXCH	Q		# SAVE CALLER'S RETURN ADDRES.
+		TC	3DDZ		# GO GENERATE THE ERROR BIT.
+		DXCH	L		# BIT TO L, RESTORE CALLER'S Q.
+4D/SDZ		CCS	JETEM2		# CAME HERE IN EXT ATM.  C(L) = ERROR BIT
+		AD	4D/SLIM		# IF RATE GEQ 4D/S, SET L=0 AND TAKE
+		TCF	+2		# JET BITS ACCORDING TO SGN OF RATE.
+		AD	4D/SLIM
+		TS	A
+		TCF	+2		# RATE OK. CONTINUE
+		ZL			# RATE GEQ 4 D/S.  OVER RIDE ERROR BIT
+		XCH	JETEM2		# AND CONTINUE TO GET SIGN.
+		
+2D/SDZ		CCS	A		# COME HERE TO TEST IF A WITHIN 2DEG/S DZ
+		AD	YDOTLIM		# 1.0 - YDOT DZ		(OR PDOT)
+		TCF	+3
+		AD	YDOTLIM		# YDOT DZ = 2 DEG/SEC
+DZCOM		COM
+DZNOCOM		TS	JETEM +1	# GENERATE TAG, SET C(A)= -+1 OUTSIDE DZ
+		CA	ZERO		# SET C(A) = +0 INSIDE
+		TC	Q
+		
+# Page 1077
+# EXTRA ATMOSPHERIC DIGITAL AUTOPILOT
+#
+# 1.	IF ABS(CALF) -C(45) POS, USE			IF CALFA POS, CMDAPMOD= +0
+#	BETA:	YAW ERROR = SGN(CALF) (BETACOM -BETA)	IF CALFA NEG, CMDAPMOD= -0
+#		     RATE = BETADOT			IF CMDAPMOD = -0, RATE = RREL
+#		   R-AXIS = CONTROL
+#
+#	ROLL:  ROLL ERROR = SGN(CALF) (ROLLC - ROLL)	IF CMDAPMOD = -0, RATE DAMP ONLY.
+#		     RATE = PREL
+#		   P-AXIS = CONTROL
+#
+# 2.	IF C(45) GEQ CALFA GEQ -C(45), USE		CMDAPMOD = +1
+#	BETA:  ROLL ERROR = SGN(-SALF) (BETACOM -BETA)
+#		     RATE = BETADOT
+#		   P-AXIS = CONTROL
+#
+#	ROLL:	YAW ERROR = SGN(SALF) (ROLLC - ROLL)	RATE DAMP ONLY.
+#		     RATE = RREL
+#		   R-AXIS = CONTROL
+#
+# 3.	FOR ALL CASES, USE
+#	ALFA: PITCH ERROR = (ALFACOM - ALFA)
+#		     RATE = QREL
+#		   Q-AXIS = CONTROL
+
+EXDAP		TS	CMDAPMOD	# +0 FOR NOW
+		CCS	CALFA
+		AD	C45LIM		# =1.0-COS(45)
+		TCF	+2
+		AD	C45LIM
+		TS	A
+		TCF	EXDAP2		# HERE IF ABS(CALFA) L COS(45)
+		
+		CCS	CALFA		# |CALFA| > 0.707
+		TCF	+1		# CONTINUE IF POS; GO TO EXDAP4 IF NEG.
+
+		CCS	P63FLAG		# VALID VALUES ARE:  -1, +1, +0.
+		TC	EXDAP4
+		TC	+2
+		TC	EXDAP4
+		TC	PHASCHNG	# SINGLE PASS THROUGH HERE.
+		OCT	40334
+		CS	ONE
+		TS	P63FLAG		# SET FLAG TO ASSURE SINGLE PASS.
+		CA	NSEC
+		TC	WAITLIST
+		EBANK=	AOG
+		2CADR	WAKEP62		# CALL TO TERMINATE P62 IN N SEC.
+# Page 1078		
+					# 65 DEG/ 3DEG/SEC = 21 SEC NOMINAL
+					# TRANSIT TIME FROM ALFA=45 TO ALFA TRIM.
+					
+EXDAP4		CCS	JETAG		# ROLLJET INTERFACE TEST BETWEEN .1 SEC
+		TCF	EXDAP3		# DAP AND THE 2 SEC CM/RCS DAP
+		TCF	EXDAP3
+		CA	ZERO
+		EXTEND			# TURN OFF ROLL JETS IF ON AND WAIT
+		WRITE	ROLLJETS	# UNTIL START OF 2 SEC CM/RCS CYCLE
+		TS	JETAG		# RESTORE PROPER VALUE +0
+		
+					# ROLL FDAI WILL BE IN ERROR UNTIL NEXT CM/RCS CALL.
+EXDAP3		CCS	CALFA		# HERE IF ABS(CALFA) GEQ COS(45)
+		CA	RAXERR		# C()= BETACOM - BETA/180
+		TCF	EXDAP1
+		CS	ZERO
+		TS	CMDAPMOD	# FOR CM/RCS
+		CS	RAXERR		# COMPLEMENT OF YAW ERROR.
+EXDAP1		TS	RAXERR		# FOR YAW FDAI
+		TS	AK2		# WANT RAXERR FOR TM.
+		TS	L
+		CCS	CMDAPMOD	# COORDINATE BETA CONTROL.
+		TC	+3		# C(CMDAPMOD) CAN BE +1, +0, OR -0.
+		CA	ONE		# USE BETADOT TO COORD IN MODE +0
+		INDEX	A		# OTHERWISE USE RREL.
+		CA	RREL
+		TC	BIASEDZ		# GO TEST DZ  +0 IF IN DX, +-1 OTHERWISE
+					# IF GEQ 4D/S, SET ERROR BIT IN L=0
+		EXTEND
+		ROR	LCHAN		# L HAS BETA BIT
+		INDEX	A
+		CAF	YJETCODE
+		TS	JETEM
+		
+		CA	QAXERR		# ALFA ERROR.
+		TS	L
+		CA	QREL		# FOR ALPHADOT USE QREL
+		TC	BIASEDZ
+		EXTEND
+		ROR	LCHAN
+		TCF	EXDAPIN		# CONTINUE ON IN DAP
+		
+EXDAP2		INCR	CMDAPMOD	# SET CMDAPMOD TO +1
+
+		CS	ONE		# INDICATE CHANGE FROM .1 SEC UPDATE TO
+		TS	JETAG		# TO 2 SEC FOR ROLL JETS.  (IF CMDAPMOD
+					# =0 AND JETAG =-1, QUENCHES JETS IF ON)
+					
+		CCS	P63FLAG		# IF FLAG WAS +1, SET =0.
+		TS	P63FLAG
+# Page 1079		
+		NOOP
+		
+		CCS	SALFA		# BETA CONTROL WITH P JETS
+		CS	RAXERR		# B()= BETACOM - BETA/180
+		TCF	+2
+		CA	RAXERR
+		TS	PAXERR1		# TEMP SAVE.  ERROR/180
+		EXTEND
+		MP	HALF		# CM/FDAI EXPECTS ERROR/360.
+		XCH	PAXERR1		# ERROR/360 FOR FDAI, GET ERROR/180.
+		TS	L
+		CCS	SALFA
+		CS	BETADOT		# USE BETADOT TO COORD IN MODE +1
+		TC	+2
+		CA	BETADOT
+		TC	BIASEDZ
+		EXTEND
+		ROR	LCHAN
+		INDEX	A
+		CAF	P/RJCODE	# GET ROLL CODE
+		EXTEND			# ROLL CONTROL WITH YAW JETS.
+		WRITE	ROLLJETS	# WE'LL SKIP REGULAR ROLL SYST
+		
+		CA	ROLLHOLD	# ROLL/180 AT CM/DAPON TIME.
+		EXTEND
+		MSU	ROLL/180	# 1'S COMPL, BUT SO WHAT'S A BIT?
+		TS	L		# FORCE A LIMIT CYCLE IN YAW RATE.
+		CCS	SALFA
+		CA	L		# TO REMOVE ITS BIASING EFFECT ON M DOT.
+		TC	EXDAP1
+		CS	L
+		TC	EXDAP1
+		
+NSEC		DEC	2100		# 65 DEG/ 3 DEG/SEC
+					# IF NSEC IS CHANGED, REMEMBER TO CHANGE 4.33SPOT.
+4D/SLIM		DEC	16348		# 1.0 -4/180 D/S = 4/1800 EXP 14
+YDOTLIM		DEC	16366		# =1.0 - YDOT DZ= 16384 -18
+					# YDOT DZ = YDOT TCDU/180 = 2/1800 EXP 14
+					
+CM/BIAS		DEC	55		# =.6/180 B14 = 55
+YAWLIM		DEC	16055		# YAWLIM=1.0-3.6/180=16384-329=16055
+C45LIM		DEC	.29289		# =1.0-COS(45)
+
+SINTRIM		DEC	-.34202		# SIN(-20)	(FOR NOMINAL L/D = .3)
+COSTRIM		DEC	.93969		# COS(-20)	(FOR NOMINAL L/D = .3)
+
+# TO MAKE DAP INSENSITIVE TO PITCH ERRORS DUE TO ACCUMULATED NAV ERRORS, USE NOMINAL VALUE (-20 DEG) FOR TRIM ALFA
+# USED DURING ATMOSPHERIC COORDINATION.  OUTSIDE ATMOSPHERE, NAV ERRORS WILL BE SLIGHT, BUT ALFA CAN DIFFER GREATLY
+# FROM TRIM, SO USE ON-BOARD ESTIMATES.
+
+# Page 1080
+# JET CODE TABLES FOLLOW
+
+		OCTAL	00120		# POS Y
+YJETCODE	OCTAL	00000		# RCS JET BITS
+		OCTAL	00240		# NEG Y
+		OCTAL	00005		# POS R JET BITS	ALSO POS P JET BITS
+P/RJCODE	OCTAL	00000	
+		OCTAL	00012		# NEG R			ALSO NEG P
+		
+# Page 1081
+# RCS		THIS SECTION IS ENTERED EACH 2 SEC BY WAITLIST CALL FOLLOWING A DELAY OF 1.2 SEC AFTER PIPUP.
+# THE TASK  SETJTAG  SETS A FLAG IN  JETAG  TO SIGNIFY THAT ROLL UPDATE IS DUE.  IN ROUGHLY 5 CS  BPDYRATE  WILL BE
+# EXECUTED AND JETAG WILL CAUSE  CM/RCS  TO ACT ON ROLLC IMMEDIATELY THEREAFTER.  THE
+# TASK SAVES THE CALL TIME SO THAT CM/RCS CAN DETERMINE HOW MUCH OF THE 2 SEC INTERVAL REMAINS BEFORE THE
+# NEXT UPDATE.
+
+SETJTAG		CS	TIME1		# SAVE NOMINAL UPDATE TIME FOR SYNCH
+		TS	TUSED
+					# THE 5 CS APPEARS IN TIMETST.
+		CA	ONE		# RATHER THAN INCR, FOR SAFETY
+		TS	JETAG		# SET JETAG=1 TO CAUSE CM/RCS TO BE
+		TC	PHASCHNG
+		OCT	00001
+		
+		TC	TASKOVER	# EXECUTED AFTER NEXT BODYRATE UPDATE
+		
+# PREDICTIVE ROLL SYSTEM	ENTRY STEERING PROVIDES ROLL COMMAND IN LOC ROLLC.  THE FOLLOWING CALCULATES THE
+# TRAJECTORY TO THE ORIGIN IN PHASE PLANE (X,V).  PROGRAM ENTERS JET ON AND OFF CALLS INTO WTLST TO PRODUCE
+# THE DESIRED TRAJECTORY.  ONLY THOSE CALLS WHICH CAN BE EXECUTED WITHIN THE INTERVAL  T  (2 SEC) ARE ENTERED IN
+# WTLST, THE REMAINDER ARE RECONSIDERED AT NEXT UPDATE.
+
+HALFPR		EQUALS	NEG1/2 +1
+
+					# CLEAR JETAG BEFORE TIMETST.  SET TO +0 TO SHOW
+					# ROLL DAP CALLED.  IN EVENT OF RESTART, BODYRATE
+					# MAY MISS A CYCLE.  CM/RCS WILL MISS A CYCLE ONLY
+					# IF A RESTART OCCURS AFTER TIMETST COMMENCES.
+					
+CM/RCS		CS	ONE
+		TS	JNDX		# SET NDX FOR POS ROLL, AND CHANGE LATER
+		
+		CS	2T/TCDU		# ROLLDOT = DELAOG + DELAIG SINM =DELR
+		EXTEND
+		MP	PREL		# DELR/180 = RDOT TCDU/180 = RDOT/1800
+		AD	L		# -2 RDOT T/180 IN L
+		TS	-VT/180		# SAVE -2VT/180 HERE
+		
+		CS	ROLL/180
+		TS	SR		# SAVE (-R/180) /2
+		
+		CS	CM/FLAGS
+		MASK	BIT4		# LATSW = 101D BIT4
+		EXTEND			# ROLL OVER TOP $
+		BZF	GETLCX		# NO, TAKE SHORTEST PATH
+		ADS	CM/FLAGS	# YES, ENFORCE ROLL OVER TOP.. (BIT =0)
+		CA	ROLLC		# (ROLLC/180) /2
+		AD	SR		# -(R/180) /2
+		XCH	LCX/360		# DIFFERENT X REQD HERE.  DISCONT AT 180.
+		TCF	COMPAT		# POSSIBLE OVFL ABOVE.
+		
+# Page 1082
+GETLCX		CA	POS1/2		# FORM RCOM/360
+		DOUBLE
+		AD	ROLLC
+		XCH	LCX/360		# IGNORE POSSIBLE OVFL.
+		
+		CA	SR		# FORM -R/360
+		AD	NEG1/2
+		AD	NEG1/2		# IGNORE OVFL
+		XCH	LCX/360		# -R/360
+		ADS	LCX/360		# LCX/360 = RCOM/360 - R/360  RANGE (-1,1)
+		
+# DOES SGN(-VT) (VT/180) (VT/180) (180/(4 A1 TT COSALFA)) + X/360 + SGN(X) / 2	  OVFL ?
+
+		CCS	-VT/180		# TAKE SHORTEST ANGULAR PATH
+		AD	ONE		# (BASED ON SINGLE JET ACCELERATION)
+		TCF	+2
+		AD	ONE
+		EXTEND
+		MP	-VT/180		# C(-VT/180) = -2 VT/180
+		EXTEND
+		MP	1/16A1		# = 180/(16 A1 TT)
+		EXTEND
+		DV	CALFA
+		TS	L
+		CCS	LCX/360
+		CAF	POS1/2
+		TCF	+2
+		CS	POS1/2
+		AD	LCX/360		# IS LCX/360 LESS THAN 180 DEGS  $
+		AD	L
+		TS	L
+		TCF	COMPAT		# YES, GO ON.
+TRTAGXPI	INDEX	A		# NO, SHIFT X BY - SGN(X) 2 PI
+		CS	HALFPR		# +A YIELDS -1/2
+		DOUBLE
+		ADS	LCX/360
+		
+COMPAT		CA	LCX/360		# CORRECT FOR ASSUMED COORD TURN.
+		EXTEND
+		MP	CALFA		# COS ALFA
+		TS	LCX/360		# SCALED LCX OK HERE.
+		
+		CCS	CMDAPMOD	# FOUR POSSIBILITIES HERE
+		TC	DZCALL1		# EXIT, SETTING JETAG=0. (C(A)=0)
+					# ALL 3 AXES ALREADY DONE.
+		TC	+1		# G LESS THAN .05.  CA POS. CONTINUE
+		CA	LCX/360		# G GEQ .05.  CONTINUE IN CM/RCS
+		TS	LCX/360		# CMDAPMOD=-0.  DAMPING ONLY. SET LCX=0
+		TS	ERRORZ		# INITIAL ROLL ERROR (UNREFLECTED) FOR TM.
+		TS	PAXERR1		# SAVE LCX FOR FDAI AND EDIT.  (/360)
+# Page 1083
+		CA	-VT/180		# GET - 2 VT/180
+		TS	SR
+		CA	SR		# GET -VT/180, LEAVE -VT/360 IN SR FOR DZ
+		TS	-VT/180E	#			DIAGNOSTIC ****
+		XCH	-VT/180		# NOW CONTENTS OF -VT/180 AS LABELED
+		EXTEND
+		MP	-VT/180		# B(A) = -ZVT/180
+		EXTEND
+		MP	180/8ATT
+		TS	VSQ/4API
+		
+# IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 -.5 BUFLIM/360  POS?
+
+WHICHALF	DOUBLE			# FOR SECOND BURN, A1
+		COM
+		AD	BUFLIM		# =BUFLIM/(2 360)
+		TS	L
+		CCS	-VT/180
+		CS	L
+		TCF	+2
+		CA	L
+		AD	LCX/360
+		AD	BUFLIM
+		EXTEND
+		BZMF	REFLECT		# POINT (X,V) IN LHP.
+		
+# IS SGN(VT) ( (180/4A1 TT) VT/180 VT/180 - .5 BUFLIM/360 ) -X/360 + .5 BUFLIM/360  NEG?
+
+		COM
+		AD	BUFLIM
+		AD	BUFLIM
+		EXTEND
+		BZMF	DZ1		# POINT (X,V) IN RHP
+		
+# IS POINT WITHIN VELOCITY DZ?
+
+		CS	VSQMIN		# IS VSQ/4API - (VSQ/4API) MIN NEG?
+		AD	VSQ/4API
+		EXTEND
+		BZMF	DZCALL		# YES.
+		
+# POINT IS IN BUFFER ZONE.  THRUST TO X AXIS.
+
+		CS	JNDX
+		TS	JNDX1
+		TC	OVRLINE1
+		
+REFLECT		CS	-VT/180		# RELFECT LHP INTO RHP REL TO TERM CONTR
+		TS	-VT/180
+		TS	SR		# -VT/360 SAVED FOR DZ.
+# Page 1084
+		CS	LCX/360
+		TS	LCX/360
+		CS	JNDX
+		TS	JNDX
+		
+# IS VSQ/4API - (VSQ/4API) MIN NEG?
+
+DZ1		CS	VSQMIN		# IS VSQ/4API - (VSQ/4API) MIN NEG  $
+		AD	VSQ/4API
+		EXTEND
+		BZMF	DZ2		# YES, GO TEST FURTHER.
+		TCF	MAXVTEST	# NO
+		
+# IS X/360 - XMIN/360 -VT/360 NEG?
+
+DZ2		CS	XMIN/360	# XMIN/360 = 4/360
+		AD	LCX/360
+		AD	SR		# C(SR) = -VT/360
+		EXTEND			# IS X/360 - XMIN/360 -VT/360 NEG  $
+		BZMF	DZCALL		# YES, IN DZ.  EXIT SETTING JETAG=0.
+		
+# IS XD/360 - VM/360K - XS/360 POS?
+
+MAXVTEST	CS	JNDX
+		TS	JNDX1		# NOW CAN SET JNDX1 FOR TON2 JETS.
+		CS	XS/360		# XS/360 = (XMIN -YMIN/K) /360
+		AD	VSQ/4API
+		AD	LCX/360
+		TS	XD/360		# XD/360= X/360 +VSQ/4API   X INTERCEPT
+					# BUT C(XD/360) = (XD - XS) /360
+		AD	-VM/360K	# X INTERCEPT FOR MAX V (VM)
+		COM
+		EXTEND
+		BZMF	MAXVTIM1	# YES, THRUST TO VM
+		CA	XD/360
+		EXTEND
+		MP	KTRCS
+		DDOUBL			# GO SAVE PREDICTED DRIFTING VELOCITY.
+		
+		TC	GETON1		# INSURE THAT Q IS POS AS TAG.
+MAXVTIM1	EXTEND
+		ZQ			# SET +Q AS TAG
+		CS	-VMT/180
+GETON1		TS	VDT/180		# VDT/180 OR VMT/180
+		AD	-VT/180
+		DOUBLE
+		EXTEND
+		MP	180/8ATT
+		TS	TON1		# TON1 / 4T
+# Page 1085
+		EXTEND
+		BZMF	OVRLINE
+		TC	GETON2		# RESET Q POS IF CAME FROM MAXVTIM1
+		
+OVRLINE		CCS	Q
+		TCF	OVRLINE1
+MAXVTIM2	CA	JNDX1		# ABOVE VM, SO THRUST DOWN
+		TS	JNDX
+		CS	TON1
+		TCF	OVRLINE2 +1
+		
+OVRLINE1	CS	-VT/180		# DRIFT AT V
+		TS	VDT/180
+OVRLINE2	CA	ZERO
+		TS	TON1
+GETON2		CA	VDT/180		# VDT/180, OR VMT/180 OR VT/180
+		DOUBLE
+		EXTEND
+		MP	180/8ATT
+		DOUBLE			# FOR SECOND BURN, A1
+		TS	TON2		# = TON2 / 4T
+		
+		COM
+		EXTEND
+		BZMF	GETOFF
+		TS	TON2
+		CA	JNDX
+		TS	JNDX1
+		
+GETOFF		CS	TON2		# TON2 / 4T
+		EXTEND
+		MP	VDT/180		# VDT/180, OR VT/180, OR VMT/180.
+		TS	XD/360		# USE AS TEMP
+		CS	VDT/180
+		EXTEND
+		BZF	TOFFOVFL	# OMIT THE DIVIDE IF DEN = 0.
+		AD	-VT/180
+		EXTEND
+		MP	TON1		# TON1 /4T
+		AD	XD/360		# TEMP = -VDT/180 / 2 TON2
+		AD	LCX/360
+		ZL
+		XCH	L		# TEST THE DIVIDE
+		EXTEND
+		DV	VDT/180
+		EXTEND
+		BZF	GETOFF2		# DIVIDE OK
+		
+TOFFOVFL	CA	2JETT		# OVFL, USE  2T  FOR CONVENIENCE.
+		TCF	TIMSCAL
+
+# Page 1086
+GETOFF2		XCH	L		# GET NUMERATOR.
+		EXTEND
+		DV	VDT/180		# C(A) = TOFF / 2T
+		EXTEND
+		MP	2JETT
+TIMSCAL		TS	TOFF		# IN CS
+
+		CAF	4JETT
+		EXTEND
+		MP	TON1		# C(TON1) = TON1 / 4T
+		TS	TON1		# IN CS
+		
+		CAF	4JETT
+		EXTEND
+		MP	TON2		# C(TON2) = TON2 / 4T
+		TS	TON2		# IN CS
+		
+		CA	ZERO		# CANNOT REDO AFTER TIMETST.  TUSED GONE
+		TS	JETAG		# SET +0 TO SHOW ROLL DAP CALLED.
+		
+					# CAUSE THE TM OF BODY RATES VIA UPBUFF TO BE
+					# INITIALIZED.  ALSO CAUSE NEEDLES TO BE DONE ON EXIT
+					# AND ON ALTERNATE PASSES THROUGH CM/DUMPR.
+					
+		CA	ONE
+		TS	SW/NDX
+
+# Page 1087
+# TIMETEST SECTION FOR RCS
+#
+# ENTER WITH THREE TIME INTERVALS AND THE CORRESPONDING JET CODE INDEXES IN ERASABLE LOCS TON1, TOFF, TON2, JNDX
+# JNDX1.  SECTION PROCESSES TIME INTERVALS FOR WTLST CALLS AND ASSURES THAT WTLST CALLS ARE MADE ONLY
+# (1) FOR POS INTERVALS GREATER THAN A SPECIFIED MINIMUM (HERE CHOSEN AS 2 CS) AND
+# (2) FOR THE INTERVALS THAT WILL BE EXECUTED WITHIN THE TIME REMAINING IN THE SAMPLE INTERVAL T (2 SEC).
+# TIMETST ESTABLISHES 6 LOCS CONTAINING JET CODES AND CORRESPONDING TIME INTERVALS.  THUS:  TON1, T1BITS,
+# TOFF, TBITS, TON2, T2BITS.  OF THESE THE FIRST 2 LOCS ARE TEMPORARY, FOR IMMEDIATE ACTION, IN GENERAL.
+# SECTION JETCALL BELOW PROCESSES THIS LIST.
+
+TIMETST		CA	TIME1		# CORRECT FOR POSSIBLE TIME1 OVFL.
+		AD	POS1/2
+		AD	POS1/2		# OVFL GUARANTEED.
+		ADS	TUSED		# B(TUSED) =-TUSED =-OLTIME1
+		
+		CA	-T-3		# =-T +2 -5 (SEE SETJTAG)
+					# THE +2 REQUIRED FOR PROPER BRANCH.
+		ADS	TUSED		# TUSED = TIME(K)-TIME(K-1)-T+2
+		
+		CS	TWO		# USE 2 SINCE TIME3 UNCERTAIN TO 1
+		AD	TON1
+		EXTEND
+		BZMF	TIMETST1
+		INDEX	JNDX
+		CAF	P/RJCODE
+		TS	T1BITS
+		
+		CA	TON1
+		ADS	TUSED
+		EXTEND
+		BZMF	TOFFTEST
+		CA	ZERO
+		TCF	TIMETST3
+TIMETST1	CS	ONE
+		TS	TON1
+TOFFTEST	CS	TWO
+		AD	TOFF
+		EXTEND
+		BZMF	TIMETST2
+		CA	TOFF
+		ADS	TUSED
+		EXTEND
+		BZMF	TON2TEST
+		CA	ZERO
+		TCF	TIMETST4
+TIMETST2	CS	ONE
+		TS	TOFF
+TON2TEST	CS	TWO
+		AD	TON2
+		EXTEND
+		BZMF	TIMETST5
+# Page 1088
+		INDEX	JNDX1
+		CAF	P/RJCODE
+		TS	T2BITS
+		CA	TON2
+		ADS	TUSED
+		EXTEND
+		BZMF	JETCALL1
+		CA	ZERO
+		TCF	TIMETST5 +1
+TIMETST3	TS	TON1
+		CS	ONE
+TIMETST4	TS	TOFF
+TIMETST5	CS	ONE
+		TS	TON2
+		
+# SECTION  JETCALL  EXAMINES CONTENTS OF JET TIMES IN LIST, ESTABLISHES WTLST ENTRIES, AND EXECUTES CORRESPONDING
+# JET CODES.  A POSITIVE NZ NUMBER IN A TIME REGISTER INDICATES THAT A WTLST CALL IS TO BE MADE, AND ITS JET BITS
+# EXECUTED.  A +0 INDICATES THAT THE TIME INTERVAL DOES NOT APPLY, BUT THE CORRESPOINDING JET BITS ARE TO BE
+# EXECUTED.  A NEG NUMBER INDICATES THAT THE TIME INTERVAL HAS BEEN PROCESSED.  IN EVENT OF +0 OR -1, THE 
+# SUBSEQUENT TIME REGISTER IS EXAMINED FOR POSSIBLE ACTION.  THUS JET BITS TO BE EXECUTED MAY COME FROM MORE
+# THAN ONE REGISTER.
+
+JETCALL1	CA	ZERO
+		TS	OUTTAG
+		TS	NUJET
+		TS	TBITS
+		DXCH	TON1
+		CCS	A
+		TCF	JETCALL2	# CALL WTLST
+JETCALL3	LXCH	NUJET		# WTLST ENTRIES COME HERE FROM JETCALL
+		CS	ONE
+		DXCH	TOFF
+		CCS	A
+		TCF	JETCALL2	# CALL WTLST
+		LXCH	NUJET
+		CS	ONE
+		DXCH	TON2
+		CCS	A
+		TCF	JETCALL2	# CALL WTLST
+		LXCH	NUJET
+		TC	JETACTN		# C(A) = +0
+JETCALL2	XCH	L		# SAVE JET BITS FOR AFTER WTLST CALL
+		ADS	NUJET
+		XCH	L
+		AD	ONE		# RESTORE FOR CCS
+		TC	WAITLIST
+		EBANK=	AOG
+		2CADR	JETCALL
+		
+JETACTN		CA	NUJET		# COME HERE WHEN DESIRED JET CODE IS KNOWN
+# Page 1089
+		EXTEND			# NO NEED TO SAVE OLD CODES
+		WRITE	ROLLJETS	# SET RCHAN TO NEW BIT CONFIG.
+		
+		CCS	OUTTAG
+		TC	TASKOVER
+ROLLDUMP	TC	CM/FDAIR
+
+					# EDIT DUMP AT ABOVE LOCATION.
+					
+# WAITLIST ENTRIES COME HERE.
+
+JETCALL		CAF	BIT2		# CM/DSTBY =103D BIT2
+		TS	OUTTAG		# SIGNIFY WTLST ENTRY
+		MASK	CM/FLAGS	# IS SYSTEM DISABLED  $
+		EXTEND
+		BZF	JETACTN +1	# YES, QUENCH ROLL JETS, IF ON AND EXIT.
+		ZL			# NO, CONTINUE.
+		TCF	JETCALL3	# C(A) POS, C(L) = +0
+		
+# DEAD ZONE ENTRIES COME HERE.
+
+DZCALL		CS	CMDAPMOD	# POSSIBLE VALUES OF CMDAPMOD: -1, +0, -0.
+		MASK	BIT1
+		TS	L		# C(L)=0 FOR -0: C(L)=1 FOR -1 OR +0.
+		INDEX	A		# ERASABLE ORDER:  ROLLTM, ROLLC, ROLLC +1.
+		CA	ROLLTM		# GET ROLL/180 OR ROLLC (/360).
+		INDEX	L
+		TS	A		# IF C(L)=1, STORE 'ROLLC' IN 'L'.
+		AD	L		# (BOTH MUST BE SCALED DEG/180)
+		TC	ANGOVCOR	# C(A)=ROLL/180 OR 2 ROLLC.
+		TS	ROLLHOLD	# IF CMDAPMOD =-0, SAVE ROLL ANGLE.
+					#	OTHERWISE, SAVE ROLL COMMAND.
+					
+		CA	ZERO		# COME HERE IF IN DZ, AND CANCEL JETS.
+		EXTEND			# INHINT NOT NEEDED HERE.
+		WRITE	ROLLJETS	# TURN OFF ALL ROLL JETS.
+		TS	VDT/180		# SET =0 TO SHOW IN DEAD ZONE.
+DZCALL1		TS	JETAG		# COME HERE WITH C(A)=0.
+		TC	ROLLDUMP
+
+# Page 1090
+# CM ENTRY FDAI DISPLAY
+#
+# CALCULATE BY INTEGRATION THE ROLL ERROR BETWEEN THE 2 SEC CM/RCS UPDATES.  DISPLAY ATTITUDE ERRORS AS FOLLOWS:
+#	ATM DAP:	DISPLAY ONLY ROLL ATTITUDE ERROR.
+#	EXT ATM DAP:	PRESENT 3 ATTITUDE ERRORS RELATIVE TO THE APPROPRIATE BODY AXES EACH .1 SEC.
+#				ROLL	ROLLC-ROLL
+#				PITCH	ALFAC-ALFA
+#				YAW	BETAC-BETA
+#
+# DURING ENTRY, THE FDAI NEEDLES HAVE FULL SCALE OF 67.5 DEG IN ROLL AND 16.875 DEG IN PITCH AND YAW.
+# THE SUBROUTINE  NEEDLER  EXPECTS (ANGLE/180) AND SCALES TO 16.875 DEG FULL SCALE.
+
+					# COME HERE EACH .1 SEC.  (CMDAPMOD=+1 COMES BELOW)
+CM/FDAI		CS	PHIDOT		# INTEGRATE ROLL ERROR 'TWEEN 2SEC UPDATES
+		EXTEND
+		MP	CALFA		# FOR ASSUMED COORDINATION.
+		EXTEND
+		MP	HALF
+		ADS	PAXERR1		# ROLL ERROR/360.  OVFL OK.
+		
+					# EDIT DUMP AT ABOVE LOCATION.
+CM/FDAIR	CA	HALF
+		EXTEND
+		MP	PAXERR1		# FULL SCALE FOR FDAI (ROLL) IS 67.5 D
+		TS	PAXERR		# .25 (ROLL ERROR/180) FOR FDAI NEEDLE.
+		
+					# PROGRAM TO FILE BODY RATES FOR TM ON ONE PASS AND
+					# TO UPDATE THE NEEDLE DISPLAY ON THE NEXT.
+					# SYNCHRONIZATION WITH CM/RCS IS USED SO THAT THE TM
+					# IS DONE WITH THE ROLL SYSTEM AND NEEDLES START ON
+					# THE SUBSEQUENT PASS.
+					
+CM/DUMPR	CS	SW/NDX		# COMBINED ALTERNATION SWITCH AND FILE
+		TS	SW/NDX
+		EXTEND			# INDEX
+		BZMF	CMTMFILE	# FILE STARTS WITH SW/NDX +1 AND GOES TO
+					# ENDBUF.			
+					# INDEX IS POS FOR NEEDLES.
+		
+		TC	IBNKCALL
+		CADR	NEEDLER
+		
+		TC	CM/END
+		
+					# INDEX IS NEG FOR TM FILE
+					
+CMTMFILE	AD	THREE
+		EXTEND
+		BZMF	SAVENDX
+
+# Page 1091
+		CA	TIME1		# INITIALIZE THE TM LIST IN UPBUFF.
+		TS	CMTMTIME
+		CS	THIRTEEN	# INITIALIZE COUNTER
+SAVENDX		TS	SW/NDX		# A NEGATIVE NUMBER.
+		EXTEND
+		DCA	PREL
+		INDEX	SW/NDX
+		DXCH	ENDBUF -1
+		CA	RREL
+		INDEX	SW/NDX
+		TS	ENDBUF +1
+		
+CM/END		CA	CM/SAVE
+		TS	SR
+					# DOES NOT PROTECT TEMK, SQ IN SPSIN/COS
+					
+		EXTEND
+		DCA	T5IDLER2
+		DXCH	T5LOC
+		TC	RESUME
+		
+		EBANK=	T5LOC
+T5IDLER2	2CADR	T5IDLOC
+
+					# DEFINE THE FOLLOWING 17D REGISTERS IN UPBUFF TO BE
+					# USED TO TELEMETER CM VEHICLE BODY RATE INFORMATION.
+					# THE INFORMATION IS FILED EACH 0.2 SEC, GIVING 15D
+					# DATA POINTS EACH 1 SEC.  TM LIST IS READ TWICE
+					# EACH 2 SECONDS.
+					#
+					# THE SEQUENCE IS:	SP TIME		INITIAL TIME
+					#			SWITCH		ALSO INDEX.
+					#			P		ROLL RATE
+					#			Q		PITCH RATE
+					#			R		YAW RATE
+					#			ETC.
+					
+#CMTMTIME	=	UPBUFF
+#SW/NDX		=	UPBUFF +1
+#ENDBUF		=	UPBUFF +16D
+
+# Page 1092
+# SPACER
+#
+# CONSTANTS USED IN THE ROLL CONTROL SYSTEM:	
+# CONSTANTS ARE THE FOLLOWING:  A = 9.1 DEG/SECSQ, VM = 20 DEG/SEC, T = 2 SEC, TCDU = .1 SEC,
+# XMIN = 4 DEG, VMIN = 2 DEG/SEC, K = .25, A1 = 4.55 DEG/SECSQ, VI = 1 DEG/SEC, INTERCEPT WITH DZ SIDE
+# XBUF = 4DEG
+
+-T-3		DEC	-203		# CS
+VSQMIN		DEC	.61050061 E-3	# VSQ MIN/4 A PI = 4/(4 (9.1) 180)
+2T/TCDU		=	OCT50		# T/TCDU EXP-14	   TCDU = .1SEC
+180/8ATT	DEC	.61813187	# 180/(8 (9.1) 4)=(180/ATT)	EXP -3
+-VMT/180	=	-VM/360K	# = 20 (2) / 180
+2JETT		=	4SECS		# CS		2 (2) 100	INTEGER
+4JETT		DEC	800		# CS		4 (2) 100	INTEGER
+XMIN/360	DEC	182		# XMIN/360 = 4/ 360  EXP 14  = 182 INTEGER
+-VM/360K	DEC	-.22222222	# =-20/( 360 (.25))
+1/16A1		=	180/8ATT
+					# 1/16A1   = 180/(16 A1 TT)
+					#          = 180/(16 4.55 4)
+XS/360		DEC	91		# = (XMIN +VI (T-1/K))/360 = 2/360 EXP 14
+BUFLIM		=	XS/360		# 4/(2 360)
+
+KTRCS		=	HALF		#    KT = (.25) 2 = .5
+
+# *** END OF TVCDAPS .011 ***
+
diff --git a/CONIC_SUBROUTINES.s b/CONIC_SUBROUTINES.s
new file mode 100644
index 0000000..9bd7ac8
--- /dev/null
+++ b/CONIC_SUBROUTINES.s
@@ -0,0 +1,1922 @@
+# Copyright:	Public domain.
+# Filename:	CONIC_SUBROUTINES.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:	1262-1308
+# Mod history:	2009-05-08 RSB	Adapted from the Colossus249/ file of the
+#				same name, using Comanche055 page images.
+#		2009-05-20 RSB	Corrected:  Fixed four interpreter 
+#				instructions.
+#
+# 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 1262
+# PROGRAM DESCRIPTION -- ENTIRE CONIC SUBROUTINE LOG SECTION	DATE -- 1 SEPTEMBER 1967
+# MOD NO. -- 0							LOG SECTION -- CONIC SUBROUTINES
+# MOD BY KRAUSE							ASSEMBLY -- COLOSSUS REVISION 88
+#
+# FUNCTIONAL DESCRIPTION --
+#	THE FOLLOWING SET OF SUBROUTINES SOLVE VARIOUS PROBLEMS INVOLVING THE TRAJECTORY PRODUCED BY A CENTRAL
+# 	INVERSE-SQUARE FORCE ACTING ON A POINT MASS, AS OUTLINED IN THE CMC AND LGC LUNAR LANDING MISSION GSOP, SECTION
+#	5.5.1.2.  A GENERAL USAGE POINT-OF-VIEW WAS TAKEN IN FORMULATING, MECHANIZING, AND SCALING THE SUBROUTINES,
+#	RATHER THAN OPTIMIZING EACH FOR A PARTICULAR USE.  THEREFORE, MULTIPLE USAGE CAN BE MADE OF THE SUBROUTINES
+#	INVOLVING ANY REALISTIC SET OF CONSTRAINTS.  IT SHOULD BE NOTED THAT ONLY ONE SET OF CODING IS USED, WHETHER THE
+#	EARTH, MOON, OR ANY OTHER CELESTIAL BODY IS SPECIFIED AS THE CENTRAL BODY OF THE PROBLEM, PROVIDED ONE OBSERVES
+#	THE INHERENT SCALE CHANGE REQUIRED IN POSITION, VELOCITY, MU, AND TIME, AS OUTLINES IN MISSION PROGRAMMING
+#	DEFINITION MEMO NO. 10.  THIS CAN BE ACCOMPLISHED BY SIMPLY ADDING TO THE MUTABLE AND INITIALIZING THE SUBROUTINES
+#	APPROPRIATELY.
+#
+#	DUE TO THE UNIFORMITY OF THE EQUATIONS INVOLVED, CODING WAS MINIMIZED BY TREATING INDIVIDUAL EQUATIONS AND
+#	BLOCKS OF EQUATIONS AS SUBROUTINES OF LOWER RANK WHENEVER POSSIBLE.  AS A RESULT, THREE BY-PRODUCTS SUBROUTINES,
+# 	DIRECTLY USABLE AS INDEPENDENT SUBROUTINES, WERE GENERATED.
+#
+# RESTRICTIONS --
+#	THE ONLY LIMITATION IN THE SCOPE OF THE PROBLEM WHICH CAN BE SOLVED BY A PARTICULAR SUBROUTINE IS THE SCALING
+#	LIMIT OF EACH PARAMETER AS SPECIFIED IN THE GSOP.  THESE SCALING LIMITS WERE CHOSEN SO THAT ALL FEASIBLE TRAJECTORIES
+#	COULD BE HANDLED.
+#
+#	SINCE THE SUBROUTINES (EXCEPT KEPLER) USE COMMON SUBROUTINES OF LOWER RANK WHICH USE ERASABLE OTHER THAN
+#	THE PUSHLIST (DUE TO ITS LIMITED SIZE) AND COMMON INTERPRETIVE SWITCHES, THE CONIC SUBROUTINES CANNOT BE ALLOWED
+#	TO INTERRUPT EACH OTHER.  IT IS UP TO THE USER TO GUARANTEE THIS CONDITION.
+
+# Page 1263
+# PROGRAM DESCRIPTION -- KEPLER SUBROUTINE			DATE -- 11 OCTOBER 1967
+# MOD NO. -- 1							LOG SECTION -- CONIC SUBROUTINES
+# MOD BY KRAUSE							ASSEMBLY -- COLOSSUS 103 AND SUNDANCE 222
+# MOD NO. -- 2 (AUGUST 1968) BY ROBERTSON: TO PERMIT BACKDATING BY MORE THAN ONE ORBITAL PERIOD.
+# MOD NO. -- 3 (DEC 1968) BY ROBERTSON: SUPPRESSION OF X-MODULO-ING
+# MOD NO. -- 4 (JAN 1969) BY ROBERTSON: CLEAR OVFIND AT KEPLER ENTRY
+#
+# FUNCTIONAL DESCRIPTION --
+#	THIS SUBROUTINE, GIVEN AN INITIAL STATE VECTOR AND THE DESIRED TRANSFER TIME THROUGH WHICH THE STATE IS TO
+#	BE UPDATED ALONG A CONIC TRAJECTORY, COMPUTES THE NEW, UPDATED STATE VECTOR.  THE TRAJECTORY MAY BE ANY CONIC
+#	SECTION -- CIRCULAR, ELLIPTIC, PARABOLIC, HYPERPOLIC, OR RECTILINEAR WITH RESPECT TO THE EARTH OR THE MOON. THE
+#	USE OF THE SUBROUTINE CAN BE EXTENDED USING OTHER PRIMARY BODIES BY SIMPLE ADDITIONS TO THE MUTABLE WITHOUT
+#	INTRODUCING ANY CODING CHANGES, ACCEPTING THE INHERENT SCALE FACTOR CHANGES IN POSITION AND VELOCITY.  AN ITERATION
+#	TECHNIQUE IS UTILIZED IN THE COMPUTATION.
+#
+#	IF A NEGATIVE TIME-OF-FLIGHT IS INPUT, THE PROGRAM WILL SOLVE FOR THE STATE WHICH WOULD BE PRODUCED BY
+#	EXTRAPOLATING THE POSITION BACKWARD IN TIME.
+#
+#	IF THE ABSOLUTE VALUE DESIRED TRANSFER TIME EXCEEDS THE ORBITAL PERIOD, THE SUBROUTINE, THROUGH A 
+# 	MODULAR TECHNIQUE, WILL COMPUTE THE STATE CORRESPONDING TO THE DESIRED TIME AS USUAL.
+#
+# THE RESTRICTIONS ARE --
+#	1.	(PREVIOUS RESTRICTION ON THE NEGATIVE DESIRED TRANSFER TIME IS NOW DELETED.)
+#	2.	THE PARAMETERS IN THE PROBLEM CANNOT EXCEED THEIR SCALING LIMITS AS SPECIFIED IN THE GSOP.  IF
+#		ANY OF THESE LIMITS ARE EXCEEDED, THE RESULTING SOLUTION WILL BE MEANINGLESS.
+#
+# 	THE NUMBER OF ITERATIONS AND, THEREFORE, THE COMPUTATION SPEED IS DEPENDENT ON THE ACCURACY OF THE
+# 	GUESS, XKFPNEW.  THE AGC COMPUTATION TIME IS APPROXIMATELY .061 SECONDS FOR INITIALIZATION, .065 SECONDS FOR THE
+# 	FINAL COMPUTATIONS, PLUS .083 SECONDS FOR EACH ITERATION.
+#
+# REFERENCES --
+#	R-479, MISSION PROGRAMMING DEFINITION MEMO NO. 10, LUNAR LANDING MISSION GSOP, SECTION 5.5, SGA
+#	MEMO 67-4.
+#
+# INPUT -- ERASABLE INITIALIZATION REQUIRED
+#			 SCALE FACTOR
+#	VARIABLE	IN POWERS OF 2		DESCRIPTION AND REMARKS
+#	--------	--------------		-----------------------
+#	RRECT		+29 FOR EARTH		DP INITIAL POSITION VECTOR IN METERS
+#			+27 FOR MOON
+# Page 1264
+#	VRECT		+7 FOR EARTH		DP INITIAL VELOCITY VECTOR IN METERS/CENTISECOND
+#			+5 FOR MOON
+#	X1 (38D)	NONE			INDEX REGISTER SET TO -2D OR -10D ACCORDING TO WHETHER THE EARTH OR MOON,
+#							RESPECTIVELY, IS THE CENTRAL BODY
+#	TAU		+28			DESIRED TRANSFER TIME IN CENTISECONDS (DP)
+#							MAY BE POS OR NEG AND ABSOLUTE VALUE MAY BE GREATER OR LESS THAN ONE ORBITAL PERIOD.
+#	XKEPNEW		+17 FOR EARTH		DP GUESS OF ROOT X OF KEPLERS EQN IN SQRT(METERS).SIGN SHOULD AGREE WTIH THAT OF TAU.
+#			+16 FOR MOON			AND ABS VALUE SHOULD BE LESS THAN THAT CORRESPONDING TO A PERIOD, VIZ, 2PI SQRT(SEMI-
+#							MAJOR AXIS), FOR SPEED OF CONVERGENCE, BUT IF EITHER CONDITION FAILS, XKEPNEW IS RESET
+#							BY KEPLER TO A POOR BUT VALID GUESS.
+#	TC		+28			DP PREV. VALUE OF TIME IN CENTISECS. MUST BE LESS THAN ONE ORBITAL PERIOD.
+#	XPREV		+17 FOR EARTH		PRVIOUS VALUE OF X IN SQRT(METERS).  MUST BE LESS THAN AN X CORRESPONDING TO ONE
+#			+16 FOR MOON			ORBITAL PERIOD, VIZ, 2PI SQRT(SEMI-MAJOR AXIS)
+#
+# SUBROUTINES CALLED --
+#	DELTIME
+#
+# CALLING SEQUENCE AND NORMAL EXIT MODES --
+#	KEPRTN-2	GOTO			# MUST BE IN INTERPRETIVE MODE BUT OVFIND ARBITRARY.
+#	KEPRTN-1		KEPLER		# RETURNS WITH XPREV IN MPAC.  PL IS AT 0.
+#	KEPRTN		...			# CONTINUE
+#
+#	KEPLER MUST NOT BE CALLED DIRECTLY SINCE AN INTERRUPTION OF IT WOULD DESTROY THE ERASABLES IT NEEDS TO COMPLETE
+#	THE INTERRUPTED JOB.  THEREFORE THE USER MUST CALL CSMCONIC OR LEMCONIC WHICH GUARANTEES NO INTERRUPTS AND WHICH
+#	ALSO CALLS KEPPREP TO COMPUTE A GUESS OF XKEPNEW.
+#
+# ABORT EXIT MODE --
+#	NONE
+#
+# OUTPUT --
+#			 SCALE FACTOR
+#	VARIABLE	IN POWERS OF 2		DESCRIPTION AND REMARKS
+#	--------	--------------		-----------------------
+#	RCV		+29 FOR EARTH		DP TERMINAL POSITION VECTOR IN METERS
+#			+27 FOR MOON
+#	VCV		+7 FOR EARTH		DP TERMINAL VELOCITY VECTOR IN METERS/CENTISEC
+#			+5 FOR MOON
+#	TC		+28			DP TRANSFER TIME IN CENTISECS TO WHICH KEPLER CONVERGED.  ALWAYS LESS THAN ONE PERIOD.
+#	XPREV		+17 FOR EARTH		DP VALUE OF X IN SQRT(METERS) TO WHICH KEPLER CONVERGED. ALWAYS LESS THAN THE X
+#			+16 FOR MOON			CORRESPONDING TO ONE PERIOD.
+# Page 1265
+#	FOR OTHER OUTPUT WHICH MAY BE OF USE, SEE DEBRIS.
+#
+# DEBRIS --
+#	PARAMETERS WHICH MAY BE OF USE --
+#			 SCALE FACTOR
+#	VARIABLE	IN POWERS OF 2		DESCRIPTION AND REMARKS
+#	--------	--------------		-----------------------
+#	URRECT		+1			DP UNIT VECTOR OF INITIAL POSITION
+#	R1		+29 FOR EARTH		DP MAGNITUDE OF INITIAL POSITION IN METERS
+#			+27 FOR MOON
+# 	ALPHA		-22 FOR EARTH		DP INVERSE OF SEMI-MAJOR AXIS IN 1/METERS
+#			-20 FOR MOON
+#	TMODULO		+28			DP INTEGRAL NUMBER OF PERIODS IN CENTISECS, WHICH WAS SUBTRACTED FROM TAU. TO PRODUCE A
+#							TAU. OF LESS THAN ONE PERIOD.
+#
+# PARAMETERS OF NO USE --
+#	DP PARAMETERS -- FPSILENT, DELX, DELT, RCNORM, XMODULO, PLUS PUSHLIST REGISTERS 0 THROUGH 39D.
+
+# Page 1266
+# PROGRAM DESCRIPTION -- LAMBERT SUBROUTINE			DATE -- 1 SEPTEMBER 1967
+# MOD NO. -- 0							LOG SECTION -- CONIC SUBROUTINES
+# MOD BY KRAUSE							ASSEMBLY -- COLOSSUS REVISION 88
+#
+# FUNCTIONAL DESCRIPTION --
+#	THIS SUBROUTINE CALCULATES THE INITIAL VELOCITY REQUIRED TO TRANSFER A POINT-MASS ALONG A CONIC TRAJECTORY
+#	FROM AN INITIAL POSITION TO A TERMINAL POSITION IN A PRESCRIBED TIME INTERVAL.  THE RESULTING TRAJECTORY MAY BE
+#	A SECTION OF A CIRCLE, ELLIPSE, PARABOLA, OR HYPERBOLA WITH RESPECT TO THE EARTH OR THE MOON.  THE USE OF THE
+#	SUBROUTINE CAN BE EXTENDED USING OTHER PRIMARY BODIES BY SIMPLE ADDITIONS TO THE MUTABLE WITHOUT INTRODUCING ANY
+#	CODING CHANGES, ACCEPTING THE INHERENT SCALE FACTOR CHANGES IN POSITION AND VELOCITY.  AN ITERATION TECHNIQUE IS
+#	UTILIZED IN THE COMPUTATION.
+#
+# THE RESTRICTIONS ARE: --
+#	1. RECTILINEAR TRAJECTORIES CANNOT BE COMPUTED.
+#	2. AN ACCURACY DEGRADATION OCCURS AS THE COSINE OF THE TRUE ANOMALY DIFFERENCE APPROACHES +1.0.
+#	3. THE ANGLE BETWEEN ANY POSITION VECTOR AND ITS VELOCITY VECTOR MUST BE GREATER THAN 1 DEGREE 47.5 MINUTES
+#	   AND LESS THAN 178 DEGREES 12.5 MINUTES.
+#	4. NEGATIVE TRANSFER TIME IS AMBIGUOUS AND WILL RESULT IN NO SOLUTION.
+#	5. THE PARAMETERS IN THE PROBLEM MUST NOT EXCEED THEIR SCALING LIMITS SPECIFIED IN THE GSOP.  IF THE
+#	   LIMITS ARE EXCEEDED, THE RESULTING SOLUTION WILL BE MEANINGLESS.
+#
+#	THE NUMBER OF ITERATIONS AND, THEREFORE, THE COMPUTATION'S SPEED IS DEPENDENT ON THE ACCURACY OF THE FIRST
+#	GUESS OF THE INDEPENDENT VARIABLE, COGA.  THE AGC COMPUTATION TIME IS APPROXIMATELY
+#	.105 SECONDS FOR INITIALIZATION, .069 SECONDS FOR FINAL COMPUTATIONS, PLUS .205 SECONDS FOR EACH ITERATION.
+#
+# REFERENCES --
+#	R-479, MISSION PROGRAMMING DEFINITION MEMO NO. 10, LUNAR LANDING MISSION GSOP -- SECTION 5.5, SGA MEMO 67-8,
+#	SGA MEMO 67-4.
+#
+# INPUT -- ERASABLE INITIALIZATION REQUIRED
+#			 SCALE FACTOR
+#	VARIABLE	IN POWERS OF 2		DESCRIPTION AND REMARKS
+#	--------	--------------		-----------------------
+#	R1VEC		+29 FOR EARTH		DP INITIAL POSITION VECTOR IN METERS
+#			+27 FOR MOON
+#	R2VEC		+29 FOR EARTH		DP TARGET OR TERMINAL POSITION VECTOR IN METERS
+#			+27 FOR MOON
+#	TDESIRED	+28			DP DESIRED TRANSFER TIME IN CENTISECONDS
+#	X1 (38D)	NONE			INDEX REGISTER SET TO -2D OR -10D ACCORDING TO WHETHER THE EARTH OR MOON,
+#							RESPECTIVELY, IS THE CENTRAL BODY
+#	GEOMSGN		NONE			SP +.5 IF DESIRED TRANSFER ANGLE IS LESS THAN 180 DEGREES, -.5 IF GREATER THAN 180 DEG.
+#	GUESSW		NONE			AN INTERPRETER SWITCH TO BE SET IF NO GUESS OF COGA IS AVAILABLE, CLEAR IF A GUESS OF
+# Page 1267
+#							COGA IS TO BE USED BY LAMBERT
+#	COGA		+5			DP GUESS OF COTANGENT OF FLIGHT PATH ANGLE (MEASURED FROM VERTICAL).  THIS WILL BE
+#						IGNORED IF GUESSW IS SET.
+#	NORMSW		NONE			AN INTERPRETER SWITCH TO BE SET IF UN IS TO BE AN INPUT TO THE SUBROUTINE, CLEAR IF
+#							LAMBERT IS TO COMPUTE ITS OWN NORMAL (UN).
+#	UN		+1			DP UNIT NORMAL TO THE DESIRED ORBIT PLANE IN THE DIRECTION OF THE RESULTING ANGULAR
+#							MOMENTUM VECTOR.  THIS WILL BE IGNORED IF NORMSW IS CLEAR.
+#	VTARGTAG	NONE			A S.P. TAG TO BE SET TO ZERO IF LAMBERT IS TO COMUTE THE VELOCITY OF R2VEC AS WELL AS
+#							AT R1VEC.
+#
+# SUBROUTINES CALLED --
+#	GEOM, GETX, DELTIME, ITERATOR, LAMENTER (PART OF NEWSTATE)
+#
+# CALLING SEQUENCE AND NORMAL EXIT MODES --
+#	L 	CALL			# MUST BE IN INTERPRETIVE MODE BUT OVFIND ARBITRARY.
+#	L+1		LAMBERT		# RETURNS WITH PL AT 0 AND WITH VVEC IN MPAC IF VTARGTAG WAS WAS NON-ZERO OR VTARGET
+#					# 	IN MPAC IF VTARGTAG WAS ZERO
+#	L+2	BON			# CONTINUE IF SOLNSW CLEAR SINCE SOLUTION IS ACCEPTABLE
+#	L+3		SOLNSW
+#	L+4		LAMABORT
+#
+#	IF A LAMBER RESULT IS TO BE A FIRST GUESS FOR THE NEXT LAMBERT CALCULATION, COGA MUST BE PRESERVED AND
+#	GUESSW MUST BE CLEAR FOR EACH SUCCEEDING LAMBERT CALL.
+#
+# ABORT EXIT MODES --
+#	IF SOLNSW WAS SET UPON EXITING, EITHER LAMBERT WAS ASKED TO COMPUTE A TRANSFER TOO NEAR 0 OR 360 DEG, OR T
+#	WAS TOO SMALL TO PRODUCE A REALISTIC TRANSFER BETWEEN R1VEC AND R2FEC.  IN EITHER CASE THE FIX MUST BE MADE
+#	ACCORDING TO THE NEEDS OF THE PARTICULAR USER.  THE ABORT EXIT MODE MAY BE CODED AS ...
+#	LAMBERT		DLOAD	ABS		# A MEASURE OF THE PROXIMITY TO 0 OR
+#				1-CHTH		# 360 DEGREES.
+#			DSU	BWM
+#				ONEBIT
+#				CHANGER2	# CHANGE R2VEC DIRECTION SLIGHTLY.
+#			DLOAD	DAD
+#				TDESIRED
+#				SOMETIME
+#			STCALL	TDESIRED	# INCRESE TDESIRED
+#				LAMBERT
+#
+# OUTPUT --
+#			 SCALE FACTOR
+#	VARIABLE	IN POWERS OF 2		DESCRIPTION AND REMARKS
+# Page 1268
+#	--------	--------------		-----------------------
+#	VVEC		+7 FOR EARTH		DP INITIAL VELOCITY VECTOR IN METERS/CENTISECOND REQUIRED TO SATISFY THE BOUNDARY VALUE
+#			+5 FOR MOON			PROBLEM.
+#	VTARGET		+7 FOR EARTH		DP RESULTANT VELOCITY VECTOR AT R2VEC IN METERS/CENTISECOND.
+#			+5 FOR MOON
+#	SOLNSW		NONE			INTERPRETER SWITCH WHICH IS SET IF THE SUBROUTINE CANNOT SOLVE THE PROBLEM, CLEAR IF THE
+#							SOLUTION EXISTS.
+#
+#	FOR OTHER OUTPUT WHICH MAY BE OF USE, SEE DEBRIS.
+#
+# DEBRIS --
+#	PARAMETERS WHICH MAY BE OF USE --
+#			 SCALE FACTOR
+#	VARIABLE	IN POWERS OF 2		DESCRIPTION AND REMARKS
+#	--------	--------------		-----------------------
+#	SNTH		+1			DP SIN OF ANGLE BETWEEN R1VEC AND R2VEC
+#	CSTH		+1			DP COSINE OF ANGLE
+#	1-CSTH		+2			DP 1-CSTH
+#	COGA		+5			DP COTAN OF INITIAL REQUIRED FLIGHT PATH ANGLE MEASURED FROM VERTICAL
+#	P		+4			DP RATIO OF SEMILATUS RECTUM TO INITIAL RADIUS
+#	R1A		+6			DP RATIO OF INITIAL RADIUS TO SEMI-MAJOR AXIS
+#	R1 (32D)	+29 FOR EARTH		DP INITIAL RADIUS IN METERS
+#			+27 FOR MOON
+#	UR1		+1			DP UNIT VECTOR OF R1VEC
+#	U2		+1			DP UNIT VECTOR OF R2VEC
+#
+#	PARAMETERS OF NO USE --
+#		DP PARAMETERS -- EPSILONL, CSTH-RHO, TPREV, TERRLAMB, R2, RTNLAMB (SP), PLUS PUSHLIST REGISTER 0 THROUGH 41D
+#		ADDITIONAL INTERPRETIVE SWITCHES USED -- INFINFLG, 360SW, SLOPESW, ORDERSW
+
+# Page 1269
+# PROGRAM DESCRIPTION -- TIME-THETA SUBROUTINE			DATE -- 1 SEPTEMBER 1967
+# MOD NO. -- 0							LOG SECTION -- CONIC SUBROUTINES
+# MOD BY KRAUSE							ASSEMBLY -- COLOSSUS REVISION 88
+#
+# FUNCTIONAL DESCRIPTION --
+#	THIS SUBROUTINE, GIVEN AN INITIAL STATE VECTOR AND A DESIRED TRUE-ANOMALY-DIFFERENCE THROUGH WHICH THE
+#	STATE IS TO BE UPDATED ALONG A CONIC TRAJECTORY, CALCULATES THE CORRESPONDING TIME-OF-FLIGHT AND, IN ADDITION,
+#	PROVIDES THE OPTION OF COMUTING THE NEW UPDATED STATE VECTOR.  THE RESULTING TRAJECTORY MAY BE A SECTION OF A
+#	CIRCLE, ELLIPSE, PARABOLA, OR HYPERBOLA WITH RESPECT TO THE EARTH OR THE MOON.  THE USE OF THE SUBROUTINE CAN BE
+# 	EXTENDED USING OTHER PRIMARY BODIES BY SIMPLE ADDITIONS TO THE MUTABLE WTIHOUT INTRODUCING ANY CODING CHANGES,
+#	ACCEPTING THE INHERENT SCALE FACTOR CHANGES IN POSITION AND VELOCITY.
+#
+# THE RESTRICTIONS ARE --
+#	1. THE ANGLE BETWEEN ANY POSITION VECTOR AND ITS VELOCITY VECTOR MUST BE GREATER THAN 1 DEGREE 47.5 MINUTES
+#	   AND LESS THAN 178 DEGREES 12.5 MINUTES.
+#	2. THE PARAMETERS IN THE PROBLEM MUST NOT EXCEED THEIR SCALING LIMITS SPECIFIED IN THE GSCP.  IF THE LIMITS
+#	   ARE EXCEEDED, THE RESULTING SOLUTION WILL BE MEANINGLESS.
+#
+#	THE AGC COMPUTATION TIME IS APPROXIMATELY .292 SECONDS.
+#
+# REFERENCES --
+#	R-479, MISSION PROGRAMMING DEFINITION MEMO NO. 10, LUNAR LANDING MISSION GSOP-SECTION 5.5, SGA MEMO 67-8.
+#
+# INPUT -- ERASABLE INITIALIZATION REQUIRED
+#			 SCALE FACTOR
+#	VARIABLE	IN POWERS OF 2		DESCRIPTION AND REMARKS
+#	--------	--------------		-----------------------
+#	RVEC		+29 FOR EARTH		DP INITIAL POSITION VECTOR IN METERS
+#			+27 FOR MOON
+#	VVEC		+7 FOR EARTH		DP INITIAL VELOCITY VECTOR IN METERS/CENTISECOND
+#			+5 FOR MOON
+#	SNTH		+1		`	DP SINE OF THE TRUE-ANOMALY-DIFFERENCE THROUGH WHICH THE STATE IS TO BE UPDATED
+#	CSTH		+1			DP COSINE OF THE ANGLE
+#	RVSW		NONE			AN INTERPRETIVE SWITCH TO BE SET IF ONLY TIME IS TO BE AN OUTPUT, CLEAR IF THE NEW STATE
+#							IS TO BE COMPUTED ALSO.
+#	X1 (38D)	NONE			INDEX REGISTER TO BE SET TO -2D OR -10D ACCORDING TO WHETHER THE EARTH OR MOON,
+#							RESPECTIVELY, IS THE CENTRAL BODY.
+#
+# SUBROUTINES CALLED --
+# Page 1270
+#	PARAM, GEOM, GETX, DELTIME, NEWSTATE
+#
+# CALLING SEQUENCE AND NORMAL EXIT MODES --
+#	IF ONLY TIME IS DESIRED AS OUTPUT --
+#	L	SET	CALL		# MUST BE IN INTERPRETIVE MODE BUT OVFIND ARBITRARY.
+#	L+1		RVSW
+#	L+2		TIMETHET	# RETURN WITH PL AT 0 AND T IN MPAC
+#	L+3	...			# CONTINUE
+#
+#	IF THE UPDATE STATE VECTOR IS DESIRED AS WELL --
+#	L	CLEAR	CALL		# MUST BE IN INTERPRETIVE MODE BUT OVFIND ARBITRARY.
+#	L+1		RVSW
+#	L+2		TIMETHET	# RETURNS WITH PL AT 6.  THE INITIAL POSITION VECTOR IS IN 0D OF THE PUSHLIST AND
+#					# THE INITIAL VELOCITY VECTOR IN MPAC.
+#	L+3	STOVL	NEWVVEC
+#	L+4	STADR
+#	L+5	STORE	NEWRVEC		# NEWVVEC AND NEWRVEC ARE SYMBOLIC REPRESENTATIONS OF THE USER'S LOCATIONS.
+#	L+6	...			# CONTINUE.
+#
+# ABORT EXIT MODES --
+#	IF COGAFLAG AND/OR INFINFLG IS SET AT THE EXIT TO TIME-THETA, TIME-THETA WILL TRANSFER TO P00DOO WITH
+#	AN ALARM CODE (ORIGINALLY 00607), AND NOT RETURN TO THE CALLING PROGRAM.  (PCR 692 AND 721).
+#
+# OUTPUT --
+#			 SCALE FACTOR
+#	VARIABLE	IN POWERS OF 2		DESCRIPTION AND REMARKS
+#	--------	--------------		-----------------------
+#	T(30D)		+28			DP TRANSFER TIME IN CENTISECONDS
+#	INFINFLG	NONE			AN INTERPRETIVE SWITCH WHICH IS SET IF THE TRANSFER ANGLE REQUIRES CLOSURE THROUGH
+#							INFINITY (NO SOLUTION), CLEAR IF A PHYSICAL SOLUTION IS POSSIBLE.
+#	COGAFLAG	NONE			AN INTERPRETIVE SWITCH WHICH IS SET IF RESTRICTION 1 HAS BEEN VIOLATED (NO SOLUTION),
+#							CLEAR IF NOT.
+#
+#	IN ADDITION, IF RVSW IS CLEAR, THE FOLLOWING ARE OUTPUT --
+#	MPAC - 		+7 FOR EARTH		DP TERMINAL VELOCITY VECTOR IN METERS/CENTISEC.
+#	   MPAC+5	+5 FOR MOON
+#	0D - 5D		+29 FOR EARTH		DP TERMINAL POSITION VECTOR IN METERS (PL AT 6D)
+#			+27 FOR MOON
+#
+#	FOR OTHER OUTPUT WHICH MAY BE OF USE, SEE DEBRIS.
+# Page 1271
+#
+# DEBRIS --
+#	PARAMETERS WHICH MAY BE OF USE --
+#			 SCALE FACTOR
+#	VARIABLE	IN POWERS OF 2		DESCRIPTION AND REMARKS
+#	--------	--------------		-----------------------
+#	R1 (32D)	+29 FOR EARTH		DP MAGNITUDE OF INITIAL POSITION VECTOR, RVEC, IN METERS
+#			+27 FOR MOON
+#	R1A		+6			DP RATIO OF R1 TO SEMI-MAJOR AXIS (NEG. FOR HYPERBOLIC TRAJECTORIES)
+#	P		+4			DP RATIO OF SEMILATUS RECTUM TO R1
+#	COGA		+5			DP COTAN OF ANGLE BETWEEN RVEC AND VVEC
+#	UR1		+1			DP UNIT VECTOR OF RVEC
+#	U2		+1			DP UNIT VECTOR OF VVEC
+#	UN		+1			DP UNIT VECTOR OF UR1*U2
+#
+# PARAMETERS OF NO USE --
+#	SP PARAMETERS -- RTNTT, GEOMSGN, RTNPRM, MAGVEC2=R2 (DP), PLUS PUSHLIST LOCATIONS 0-11D, 14D-21D, 24D-39D, 41D
+#	ADDITIONAL INTERPRETIVE SWITCHES USED -- NORMSW, 360SW
+
+# Page 1272
+# PROGRAM DESCRIPTION -- TIME-RADIUS SUBROUTINE		DATE -- 11 OCTOBER 1967
+# MOD NO. -1						LOG SECTION -- CONIC SUBROUTINES
+# MOD BY KRAUSE						ASSEMBLY -- COLOSSUS REVISION 88
+#
+# FUNCTIONAL DESCRIPTION --
+#	THIS SUBROUTINE, GIVEN AN INITIAL STATE VECTOR AND A DESIRED RADIUS TO WHICH THE
+#	STATE IS TO BE UPDATED ALONG A CONIC TRAJECTORY, CALCULATES THE CORRESPONDING TIME-OF-FLIGHT AND, IN ADDITION,
+#	PROVIDES THE OPTION OF COMPUTING THE NEW UPDATED STATE VECTOR.  THE RESULTING TRAJECTORY MAY BE A SECTION OF A
+#	CIRCLE, ELLIPSE, PARABOLA, OR HYPERBOLA WITH RESPECT TO THE EARTH OR THE MOON.  THE USE OF THE SUBROUTINE CAN BE
+#	EXTENDED USING OTHER PRIMARY BODIES BY SIMMPE ADDITIONS TO THE MUTABLE WITHOUT INTRODUCING ANY CODING CHANGES,
+#	ACCEPTING THE INHERENT SCALE FACTOR CHANGES IN POSITION AND VELOCITY.
+#
+#	IF THE DESIRED RADIUS IS BEYOND THE RADIUS OF APOCENTER OF THE CONIC OR BELOW THE RADIUS OF PERICENTER,
+#	APSESW WILL BE SET AND THE SUBROUTINE WILL RETURN THE APOCENTER OR PERICENTER SOLUTION, RESPECTIVELY.
+#
+# THE RESTRICTIONS ARE --
+#	1. THE ANGLE BETWEEN ANY POSITION VECTOR AND ITS VELOCITY VECTOR MUST BE GREATER THAN 1 DEGREE 47.5 MINUTES
+#	   AND LESS THAN 178 DEGREES 12.5 MINUTES.
+#	2. THE PARAMETERS IN THE PROBLEM MUST NOT EXCEED THEIR SCALING LIMITS SPECIFIED IN THE GSOP.  IF THE LIMITS
+#	   EXCEEDED, THE RESULTING SOLUTION WILL BE MEANINGLESS.
+#	3. AN ACCURACY DEGRADATION OCCURS AS THE SENSITIVITIES OF TIME AND UPDATED STATE VECTOR TO CHANGES IN
+#	   RDESIRED INCREASE.  THIS WILL OCCUR NEAR EITHER APSIS OF THE CONIC AND WHEN THE CONIC IS NEARLY CIRCULAR.  IN
+#	   PARTICULAR, IF THE CONIC IS AN EXACT CIRCLE, THE PROBLEM IS UNDEFINED AND THE SUBROUTINE WILL ABORT.
+#
+#	THE AGC COMPUTATION TIME IS APPROXIMATELY .363 SECONDS.
+#
+# REFERENCES --
+#	R-479, MISSION PROGRAMMING DEFINITION MEMO NO. 10, LUNAR LANDING MISSION GSOP-SECTION 5.5, SGA MEMO 67-8.
+#
+# INPUT -- ERASABLE INITIALIZATION REQUIRED.
+#			 SCALE FACTOR
+#	VARIABLE	IN POWERS OF 2		DESCRIPTION AND REMARKS
+#	--------	--------------		-----------------------
+#	RVEC		+29 FOR EARTH		DP INITIAL POSITION VECTOR IN METERS
+#			+27 FOR MOON
+#	VVEC		+7 FOR EARTH		DP INITIAL VELOCITY VECTOR IN METERS/CENTISECOND
+#			+5 FOR MOON
+#	RDESIRED	+29 FOR EARTH		DP TERMINAL RADIAL DISTANCE ON CONIC TRAJECTORY FOR WHICH TRANSFER TIME IS TO BE
+#			+27 FOR MOON			COMPUTED
+#	SGNRDOT		NONE			SP TAG SET TO +.5 OR -.5 ACCORDING TO WHETHER THE RADIAL VELOCITY AT RDESIRED IS TO BE
+#							POSITIVE OR NEGATIVE, RESPECTIVELY.   THIS TAG REDUCES THE DOUBLE-VALUED PROBLEM TO A
+# Page 1273
+#							SINGLE-VALUED PROBLEM.
+#	X1 (38D)	NONE			INDEX REGISTER TO BE SET TO -2D OR -10D ACCORDING TO WHETHER THE EARTH OR MOON,
+#							RESPECTIVELY, IS THE CENTRAL BODY.
+#	RVSW		NONE			AN INTERPRETIVE SWITCH TO BE SET IF ONLY TIME IS TO BE AN OUTPUT, CLEAR IF THE NEW STATE
+#							IS TO BE COMPUTED ALSO.
+#
+# SUBROUTINES CALLED --
+#	PARAM, GEOM, GETX, DELTIME, NEWSTATE
+#
+# CALLING SEQUENCE AND NORMAL EXIT MODES --
+#	IF ONLY TIME IS DESIRED AS OUTPUT --
+#	L	SET	CALL		# MUST BE IN INTERPRETIVE MODE BUT OVFIND ARBITRARY.
+#	L+1		RVSW
+#	L+2		TIMERAD		# RETURN WITH PL AT 0 AND T IN MPAC
+#	L+3	...			# CONTINUE
+#
+#	IF THE UPDATE STATE VECTOR IS DESIRED AS WELL --
+#	L	CLEAR	CALL		# MUST BE IN INTERPRETIVE MODE BUT OVFIND ARBITRARY.
+#	L+1		RVSW
+#	L+2		TIMERAD		# RETURNS WITH PL AT 6.  THE INITIAL POSITION VECTOR IS IN 0D OF THE PUSHLIST AND
+#					# THE INITIAL VELOCITY VECTOR IN MPAC.
+#	L+3	STOVL	NEWVVEC
+#	L+4	STADR
+#	L+5	STORE	NEWRVEC		# NEWVVEC AND NEWRVEC ARE SYMBOLIC REPRESENTATIONS OF THE USER'S LOCATIONS.
+#	L+6	...			# CONTINUE
+#
+# ABORT EXIT MODES --
+#	IF SOLNSW AND/OR COGAFLAG AND/OR INFINFLG IS SET AT THE EXIT TO TIME-RADIUS, TIME-RADIUS WILL TRANSFER
+#	TO P00DOO WITH AN ALARM CODE (ORIGINALLY 00607), AND NOT RETURN TO THE CALLING PROGRAM.  (PCR 692 & 721).
+#
+# OUTPUT --
+#			 SCALE FACTOR
+#	VARIABLE	IN POWERS OF 2		DESCRIPTION AND REMARKS
+#	--------	--------------		-----------------------
+#	T (30D)		+28			DP TRANSFER TIME IN CENTISECONDS.
+#	INFINFLG	NONE			AN INTERPRETIVE SWITCH WHICH IS SET IF RDESIRED AND SGNRDOT REQUIRE CLOSURE THROUGH
+#							INFINITY (NO SOLUTION), CLEAR IF A PHYSICAL SOLUTION IS POSSIBLE.
+#	COGAFLAG	NONE			AN INTERPRETIVE SWITCH WHICH IS SET IF RESTRICTION 1 HAS BEEN VIOLATED (NO SOLUTION),
+#							CLEAR IF NOT.
+#	APSESW		NONE			AN INTERPRETIVE SWITCH WHICH IS SET IF RDESIRED WAS GREATER THAN RADIUS OF APOCENTER OR
+# Page 1274
+#							LESS THAN RADIUS OF PERICENTER.  THE APOCENTER OR PERICENTER SOLUTION, RESPECTIVELY,
+#							WILL THEN BE RETURNED.  THE SWITCH IS CLEAR IF RDESIRED WAS BETWEEN PERICENTER AND
+#							APOCENTER.
+#	SOLNSW		NONE			AN INTERPRETIVE SWITCH WHICH IS SET IF THE CONIC IS SO CLOSE TO A CIRCLE THAT THE TERMIN
+#							POINT IS AMBIGUOUS, VIOLATING RESTRICTION 3.  IF ECCENTRICITY IS GREATER THAN 2-TO-THE-
+#							MINUS-18, THE SWITCH IS CLEAR.
+#
+#	IN ADDITION, IF RVSW IS CLEAR, THE FOLLOWING ARE OUTPUT --
+#	MPAC - 		+7 FOR EARTH		DP TERMINAL VELOCITY VECTOR IN METERS/CENTISEC.
+#	   MPAC+5	+5 FOR MOON
+#	0D - 5D		+29 FOR EARTH		DP TERMINAL POSITION VECTOR IN METERS (PL AT 6D)
+#			+27 FOR MOON
+#
+#	FOR OTHER OUTPUT WHICH MAY BE OF USE, SEE DEBRIS.
+#
+# DEBRIS --
+#	PARAMETERS WHICH MAY BE OF USE --
+#			 SCALE FACTOR
+#	VARIABLE	IN POWERS OF 2		DESCRIPTION AND REMARKS
+#	--------	--------------		-----------------------
+#	R1 (32D)	+29 FOR EARTH		DP MAGNITUDE OF INITIAL POSITION VECTOR, RVEC, IN METERS
+#			+27 FOR MOON
+#	R1A		+6			DP RATIO OF R1 TO SEMI-MAJOR AXIS (NEG. FOR HYPERBOLIC TRAJECTORIES)
+#	P		+4			DP RATIO OF SEMILATUS RECTUM TO R1
+#	COGA		+5			DP COTAN OF ANGLE BETWEEN RVEC AND VVEC
+#	UR1		+1			DP UNIT VECTOR OF RVEC
+#	U2		+1			DP UNIT VECTOR OF VVEC
+#	UN		+1			DP UNIT VECTOR OF UR1*U2
+#	CSTH		+1			DP COSINE OF TRUE ANOMALY DIFFERENCE BETWEEN RVEC AND RDESIRED.
+#	SNTH		+1			DP SINE OF TRUE ANOMALY DIFFERENCE.
+#
+# 	PARAMETERS OF NO USE --
+#		SP PARAMETERS -- RTNTT, GEOMSGN, RTNPRM, MAGVEC2*R2 (DP), PLUS PUSHLIST LOCATIONS 0-11D, 14D-21D, 24D-39D, 41D
+#		ADDITIONAL INTERPRETIVE SWITCHES USED -- NORMSW, 360SW
+#
+
+# Page 1275
+# PROGRAM DESCRIPTION -- APSIDES SUBROUTINE		DATE -- 1 SEPTEMBER 1967
+# MOD NO. -- 0						LOG SECTION -- CONIC SUBROUTINES
+# MOD BY KRAUSE						ASSEMBLY -- COLOSSUS REVISION 88
+#
+# FUNCTIONAL DESCRIPTION --
+#	THIS SUBROUTINE, GIVEN AN INITIAL STATE VECTOR, CALCULATES THE RADIUS OF PERICENTER AND OF APOCENTER AND THE
+#	ECCENTRICITY OF THE RESULTING CONIC TRAJECTORY, WHICH MAY BE A STRAIGHT LINE,
+#	CIRCLE, ELLIPSE, PARABOLA, OR HYPERBOLA WITH RESPECT TO THE EARTH OR THE MOON.  THE USE OF THE SUBROUTINE CAN
+#	BE EXTENDED USING OTHER PRIMARY BODIES BY SIMPLE ADDITIONS TO THE MUTABLE WITHOUT INTRODUCING ANY CODING CHANGES,
+#	ACCEPTING THE INHERENT SCALE FACTOR CHANGES IN POSITION AND VELOCITY.
+#
+# THE RESTRICTIONS ARE --
+#	1. IF APOCENTER IS BEYOND THE SCALING OF POSITION, THE SCALE FACTOR LIMIT (536,870,910 METERS WITH RESPECT
+#	   TO THE EARTH OR 134,217,727.5 METERS WITH RESPECT TO THE MOON) WILL BE RETURNED.
+#	2. THE PARAMETERS IN THE PROBLEM MUST NOT EXCEED THEIR SCALING LIMITS SPECIFIED IN THE GSOP.  IF THE LIMITS
+#	   ARE EXCEEDED, THE RESULTING SOLUTION WILL BE MEANINGLESS.
+#
+#	THE AGC COMPUTATION TIME IS APPROXIMATELY .103 SECONDS.
+#
+# REFERENCES --
+#	MISSION PROGRAMMING DEFINITION MEMO NO. 10, LUNAR LANDING MISSION GSOP-SECTION 5.5.
+#
+# INPUT -- ERASABLE INITIALIZATION REQUIRED
+#			 SCALE FACTOR
+#	VARIABLE	IN POWERS OF 2		DESCRIPTION AND REMARKS
+#	--------	--------------		-----------------------
+#	RVEC		+29 FOR EARTH		DP INITIAL POSITION VECTOR IN METERS
+#			+27 FOR MOON
+#	VVEC		+7 FOR EARTH		DP INITIAL VELOCITY VECTOR IN METERS/CENTISECOND
+#			+5 FOR MOON
+#	X1 (38D)	NONE			INDEX REGISTER TO BE SET TO -2D OR -10D ACCORDING TO WHETHER THE EARTH OR MOON,
+#							RESPECTIVELY, IS THE CENTRAL BODY.
+#
+# SUBROUTINES CALLED --
+#	PARAM, GEOM
+#
+# CALLING SEQUENCE AND NORMAL EXIT MODES --
+# Page 1276
+#	IF ONLY TIME IS DESIRED AS OUTPUT --
+#	L	CALL			# MUST BE IN INTERPRETIVE MODE BUT OVFIND ARBITRARY.
+#	L+1		APSIDES		# RETURNS WITH PL AT 0, RADIUS OF APOCENTER IN MPAC AND RADIUS OF PERICENTER IN 0D
+#	L+2	STODL	APOAPSE
+#	L+3		0D
+#	L+4	STORE	PERIAPSE	# APOAPSE AND PERIAPSE ARE SYMBOLIC REPRESENTATIONS OF THE USER'S LOCATIONS
+#	L+5	...			# CONTINUE
+#
+# OUTPUT --
+#			 SCALE FACTOR
+#	VARIABLE	IN POWERS OF 2		DESCRIPTION AND REMARKS
+#	--------	--------------		-----------------------
+#	MPAC		+29 FOR EARTH		DP RADIUS OF APOCENTER IN METERS
+#			+27 FOR MOON
+#	0D-1D		+29 FOR EARTH		DP RADIUS OF PERICENTER IN METERS
+#			+27 FOR MOON
+#	ECC		+3			DP ECCENTRICITY OF CONIC TRAJECTORY
+#
+#	FOR OTHER OUTPUT WHICH MAY BE OF USE, SEE DEBRIS.
+#
+# DEBRIS --
+#	PARAMETERS WHICH MAY BE OF USE --
+#			 SCALE FACTOR
+#	VARIABLE	IN POWERS OF 2		DESCRIPTION AND REMARKS
+#	--------	--------------		-----------------------
+#	R1 (32D)	+29 FOR EARTH		DP MAGNITUDE OF INITIAL POSITION VECTOR, RVEC, IN METERS
+#			+27 FOR MOON
+#	R1A		+6			DP RATIO OF R1 TO SEMI-MAJOR AXIS (NEG. FOR HYPERBOLIC TRAJECTORIES)
+#	P		+4			DP RATIO OF SEMILATUS RECTUM TO R1
+#	COGA		+5			DP COTAN OF ANGLE BETWEEN RVEC AND VVEC
+#	UR1		+1			DP UNIT VECTOR OF RVEC
+#	U2		+1			DP UNIT VECTOR OF VVEC
+#	UN		+1			DP UNIT VECTOR OF UR1*U2
+#	MAGVEC2		+7 FOR EARTH		DP MAGNITUDE OF VVEC
+#			+5 FOR MOON
+#
+#	PARAMETERS OF NO USE --
+#		SP PARAMETERS -- RTNAPSE, GOMSGN, RTNPRM, PLUS PUSHLIST LOCATIONS 0-5, 10D-11D, 14D-21D, 31D-38D.
+#		ADDITIONAL INTERPRETIVE SWITCHES USED -- NORMSW
+
+		SETLOC	CONICS
+# Page 1277
+		BANK
+
+		COUNT	12/CONIC
+		
+		EBANK=	UR1
+KEPLERN		SETPD	BOV
+			0
+			+1
+		VLOAD*
+			MUTABLE,1
+		STOVL	14D
+			RRECT
+		UNIT	SSP
+			ITERCTR
+			20D
+		STODL	URRECT
+			36D
+		STOVL	R1
+			RRECT
+		DOT	SL1R
+			VRECT
+		DMP	SL1R
+			1/ROOTMU	# 1/ROOTMU (-17 OR -14)
+		STOVL	KEPC1		# C1=R.V/ROOTMU (+17 OR +16)
+		
+			VRECT
+		VSQ	DMPR
+			1/MU		# 1/MU (-34 OR -28)
+		DMP	SL3
+			R1
+		DSU	ROUND
+			D1/64
+		STORE	KEPC2		# C2=RV.V/MU -1 (+6)
+
+		BDSU	SR1R
+			D1/64
+		DDV
+			R1
+		STORE	ALPHA		# ALPHA=(1-C2)/R1 (-22 OR -20)
+
+		BPL	DLOAD		# MAXIMUM X DEPENDS ON TYPE OF CONIC
+			1REV
+			-50SC		# -50SC (+12)
+		DDV	BOV
+			ALPHA
+			STOREMAX
+		SQRT	GOTO
+			STOREMAX
+# Page 1278
+1REV		SQRT	BDDV
+			2PISC		# 2PISC (+6)
+		BOV
+			STOREMAX
+STOREMAX	STORE	XMAX
+		DMP	PDDL	
+			1/ROOTMU
+			ALPHA
+		NORM	PDDL	
+			X1
+		SL*	DDV	
+			0 	-6,1
+		BOV	BMN
+			MODDONE
+			MODDONE		# MPAC=PERIOD
+PERIODCH	PDDL	ABS		# 0D=PERIOD
+			TAU.			
+		DSU	BMN
+			0D
+			MODDONE
+		SIGN
+			TAU.
+		STODL	TAU.
+		GOTO	
+			PERIODCH
+MODDONE		SETPD	DLOAD
+			0
+			XKEPNEW
+		STORE	X
+		SIGN	BZE
+			TAU.
+			BADX
+		BMN	ABS
+			BADX
+		DSU	BPL
+			XMAX
+			BADX
+STORBNDS	DLOAD	BPL
+			TAU.
+			STOREMIN
+		DLOAD	DCOMP
+			XMAX
+		STODL	XMIN
+			KEPZERO
+		STCALL	XMAX
+			DXCOMP
+STOREMIN	DLOAD
+			KEPZERO
+		STORE	XMIN			
+DXCOMP		DLOAD	DMPR
+# Page 1279
+			TAU.
+			BEE22
+		ABS
+		STODL	EPSILONT
+			XPREV
+XDIFF		BDSU
+			X
+		STORE	DELX
+
+KEPLOOP		DLOAD	DSQ
+			X		# X=XKEP
+		NORM	PUSH		# 0D=XSQ (+34 OR +32 -N1)	PL AT 2
+			X1
+		DMP	SRR*
+			ALPHA
+			0 	-6,1
+		STCALL	XI		# XI=ALPHA XSQ (+6)
+			DELTIME
+		BOV	BDSU
+			TIMEOVFL	# UNLIKELY
+			TAU.
+		STORE	DELT		# DELT=DELINDEP
+		ABS	BDSU
+			EPSILONT
+		BPL	DLOAD
+			KEPCONVG
+			T
+		DSU	NORM
+			TC
+			X1
+		PDDL	NORM
+			DELX
+			X2
+		XSU,1	DMP
+			X2
+			DELT
+		SLR*	DDV
+			1,1
+		SR1	PUSH		# 0D=TRIAL DELX		PL AT 2
+		BPL	DLOAD
+			POSDELX
+			X
+		STORE	XMAX		# MOVE MAX BOUND IN
+		BDSU	DSU		#			PL AT 0
+			XMIN
+		BOV	BPL
+			NDXCHNGE
+			NDXCHNGE
+		DLOAD	GOTO
+# Page 1280		
+			0D
+			NEWDELX
+
+NDXCHNGE	DLOAD	DSU
+			XMIN
+			X
+		DMPR	GOTO		# TO FORCE MPAC +2 TO ZERO
+			DP9/10
+			NEWDELX
+
+POSDELX		DLOAD
+			X
+		STORE	XMIN		# MOVE MIN BOUND IN
+		BDSU	DSU		#			PL AT 0
+			XMAX
+		BOV	BMN
+			PDXCHNGE
+			PDXCHNGE
+		DLOAD
+			0D
+NEWDELX		STORE	DELX
+		BZE	DAD
+			KEPCONVG
+			X
+		STODL	X
+			T
+		STORE	TC
+BRNCHCTR	RTB	BHIZ
+			CHECKCTR
+			KEPCONVG
+		GOTO
+			KEPLOOP		# ITERATE
+
+PDXCHNGE	DLOAD	DSU
+			XMAX
+			X
+		DMPR	GOTO		# TO FORCE MPAC +2 TO ZERO
+			DP9/10
+			NEWDELX
+
+BADX		DLOAD	SR1
+			XMAX
+		SIGN	
+			TAU.
+		STCALL	X
+			STORBNDS
+# Page 1281			
+TIMEOVFL	DLOAD	BMN		# X WAS TOO BIG
+			X
+			NEGTOVFL
+		STORE	XMAX
+CMNTOVFL	DLOAD	SR1
+			DELX
+		STORE	DELX
+		BZE	BDSU
+			KEPRTN
+			X
+		STODL	X
+			TC
+		STCALL	T
+			BRNCHCTR
+NEGTOVFL	STCALL	XMIN
+			CMNTOVFL
+KEPCONVG	DLOAD	SR4R
+			R1
+		DSU	VXSC
+			XSQC(XI)
+			URRECT
+		VSL1	PDDL		# 0D=(R1-XSQC(XI))URRECT (+33 OR +31)
+			X
+		DSQ	NORM
+			X1
+		DMPR	DMPR
+			1/ROOTMU
+			X
+		DMP	SRR*
+			S(XI)
+			0 	-7,1
+		BDSU
+			T
+		SL1	VXSC
+			VRECT
+		VSL1	VAD
+		VSL4
+		STORE	RCV		# RCV (+29 OR +27)
+
+		ABVAL	NORM
+			X2
+		STODL	RCNORM
+			XI
+		DMPR	DSU
+			S(XI)
+			D1/128
+		DMP	SL1R
+			ROOTMU
+		DMP	SLR*
+# Page 1282
+			X
+			0 	-3,2
+		DDV	VXSC
+			RCNORM
+			URRECT
+		VSL1	PDDL		# 0D=URRECT(XI S(XI)-1)X ROOTMU/RCV (+15
+			XSQC(XI)	# OR +13)			PL AT 6
+		SLR*	DDV
+			0 	-4,2
+			RCNORM
+		BDSU	VXSC
+			D1/256
+			VRECT
+		VAD	VSL8
+		STADR			#				PL AT 0
+		STODL	VCV		# VCV (+7 OR +5)
+			T
+		STODL	TC
+			X
+		STCALL	XPREV
+			KEPRTN
+
+# Page 1283
+DELTIME		EXIT			# MPAC=XI (+6), 0D=XSQ (+34 OR +32 -N1)
+		TC	POLY
+		DEC	8
+		2DEC	.083333334
+		
+		2DEC	-.266666684
+		
+		2DEC	.406349155
+		
+		2DEC	-.361198675
+		
+		2DEC	.210153242
+		
+		2DEC	-.086221951
+		
+		2DEC	.026268812
+		
+		2DEC	-.006163316
+		
+		2DEC	.001177342
+		
+		2DEC	-.000199055
+		
+		TC	INTPRET
+		STODL	S(XI)
+			XI
+		EXIT
+		TC	POLY
+		DEC	8
+		2DEC	.031250001
+		
+		2DEC	-.166666719
+		
+		2DEC	.355555413
+		
+		2DEC	-.406347410
+		
+		2DEC	.288962094
+		
+		2DEC	-.140117894
+		
+		2DEC	.049247387
+		
+		2DEC	-.013081923
+		
+		2DEC	.002806389
+		
+		2DEC	-.000529414
+		
+		TC	INTPRET
+# Page 1284
+		DMP	SRR*		#				PL AT 0
+			0D
+			0 	-5,1
+		STORE	XSQC(XI)	# XSQC(XI) (+33 OR +31)
+		DMP	SL1
+			KEPC1
+		RTB	PDDL		# XCH WITH PL. 0D=C1 XSQ C(XI) (+49 OR +46)
+			TPMODE		#				PL AT 0,3
+		DMP	SRR*
+			S(XI)
+			0 	-5,1
+		DMP	SL1
+			KEPC2
+		RTB	PDDL		# 3D=C2 XSQ S(XI) (+35 OR +33) 	PL AT 6
+			TPMODE
+			R1
+		SR	TAD		#				PL AT 3
+			6
+		NORM	DMP		# TO PRESERVE SIGNIF.
+			X1
+			X
+		SR*	TAD		# X(C2 XSQ S(XI) +R1) (+49 OR +46)  PL AT 0
+			0 	-3,1
+		SL4R	DMPR
+			1/ROOTMU
+		STORE	T
+		RVQ
+
+# Page 1285
+ITERATOR	BONCLR	DLOAD
+			SLOPESW
+			FIRSTIME
+			DEP
+		DSU	NORM
+			DEPREV
+			X1
+		PDDL	NORM
+			DELINDEP
+			X2
+		XSU,1	DMP
+			X2
+			DELDEP
+		SLR*	DDV		#				PL UP 2
+			1,1
+		SR1	BOFF
+			ORDERSW
+			SGNCHECK
+		ABS	SIGN		# IN CASE 2ND DERIV. CHANGED SIGN, MUST
+			DELDEP		# DISREGARD IT TO FIND MIN.
+
+SGNCHECK	PUSH	BPL		# TRIAL DELINDEP		PL DOWN 2
+			POSDEL
+		DLOAD	BON
+			INDEP
+			ORDERSW
+			MINCHECK
+		STORE	MAX		# IF NOT 2ND ORDER, CAN MOVE MAX BOUND IN.
+
+MINCHECK	BDSU	DSU
+			MIN
+		BOV	BPL
+			MODNGDEL
+			MODNGDEL
+		GOTO
+			DELOK
+
+MODNGDEL	DLOAD	DSU		# TRIAL DELINDEP WOULD EXCEED MIN BOUND
+			MIN
+			INDEP
+		DMP	GOTO
+			DP9/10
+			NEWDEL
+
+FIRSTIME	DLOAD	DMP
+			MIN
+			TWEEKIT		# DLOAD TWEEKIT(40D) SENSITIVE TO CHANGE.
+		PDDL	DMP		# S2(41D) SHOULDN'T CONTAIN HI ORDER ONES
+# Page 1286
+			MAX
+			TWEEKIT
+		DSU
+		SIGN	GOTO
+			DELDEP
+			SGNCHECK
+
+POSDEL		DLOAD	BON
+			INDEP
+			ORDERSW
+			MAXCHECK
+		STORE	MIN		# IF NOT 2ND ORDER, CAN MOVE MIN BOUND IN.
+
+MAXCHECK	BDSU	DSU
+			MAX
+		BOV	BMN
+			MODPSDEL
+			MODPSDEL
+DELOK		DLOAD
+			0D
+NEWDEL		STORE	DELINDEP
+		RVQ
+
+MODPSDEL	DLOAD	DSU
+			MAX
+			INDEP
+		DMP	GOTO
+			DP9/10
+			NEWDEL
+
+CHECKCTR	CS	ONE
+		INDEX	FIXLOC
+		AD	ITERCTR
+		INDEX	FIXLOC
+		TS	ITERCTR
+		TS	MPAC
+		TC	DANZIG
+
+# Page 1287
+NEWSTATE	DLOAD	SR4R
+			R1
+		DSU	VXSC
+			XSQC(XI)
+			UR1
+		VSL1	PDDL		# 0D=(R1-XSQC(XI))UR1 (+33 OR 31) PL AT 6
+			X
+		DSQ	NORM
+			X1
+		DMPR	DMPR
+			1/ROOTMU
+			X
+		DMP	SRR*
+			S(XI)
+			0 	-7,1
+		BDSU
+			T
+		SL1	VXSC
+			VVEC
+		VSL1	VAD		#				PL AT 0
+		VSL4	PUSH
+		ABVAL
+LAMENTER	NORM
+			X1
+		STODL	R2
+			XI
+		DMP	DSU
+			S(XI)
+			D1/128
+		DMP	SL1R
+			ROOTMU
+		DMP	SLR*
+			X
+			0 -3,1
+		DDV	VXSC
+			R2
+			UR1
+		VSL1	PDDL		# 6D=V2VEC PART (+15 OR 13)	PL AT 12
+			XSQC(XI)
+		SLR*	DDV
+			0 -4,1
+			R2
+		BDSU
+			D1/256
+		VXSC	VAD
+			VVEC		#				PL AT 6
+		VSL8	RVQ
+
+# Page 1288
+		SETLOC	CONICS1
+		BANK
+
+		COUNT	04/CONIC
+# DO NOT DISTURB THE ORDER OF THESE CDS, OVERLAYS HAVE BEEN MADE.
+BEE17		DEC	0		# KEEP WITH D1/8 2DEC 1.0B-17 (0000004000)
+D1/8		2DEC	1.0 B-3
+
+D1/128		2DEC	1.0 B-7
+
+D1/64		2DEC	1.0 B-6
+
+D1/4		2DEC	1.0 B-2
+
+D1/16		2DEC	1.0 B-4
+
+D1/32		2DEC	1.0 B-5
+
+D1/1024		2DEC	1.0 B-10
+
+D1/256		2DEC	1.0 B-8
+
+DP9/10		2DEC	.9
+
+KEPZERO		EQUALS	LO6ZEROS
+-50SC		2DEC	-50.0 B-12
+
+2PISC		2DEC	6.28318530 B-6
+
+BEE19		EQUALS	D1/32 -1	# 2DEC 1.0 B-19 (00000 01000)
+BEE22		EQUALS	D1/256 -1	# 2DEC 1.0 B-22 (00000 00100)
+ONEBIT		2DEC	1.0 B-28
+
+COGUPLIM	2DEC	.999511597
+
+COGLOLIM	2DEC	-.999511597
+
+# Page 1289
+		SETLOC	CONICS
+		BANK
+
+		COUNT	12/CONIC
+		
+TIMETHET	STQ	SETPD		#				PL AT 0
+			RTNTT
+			0
+		BOV
+			+1
+		VLOAD	PDVL		# SETUP FOR PARAM CALL		PL AT 6
+			RVEC
+			VVEC
+		CALL
+			PARAM
+		BOV	CALL
+			COGAOVFL	#				PL AT 0
+			GETX
+COMMNOUT	DLOAD	BON
+			XI
+			INFINFLG
+			ABTCONIC
+		CLEAR	CALL
+			COGAFLAG
+			DELTIME
+		BON	CALL
+			RVSW
+			RTNTT
+			NEWSTATE
+		GOTO
+			RTNTT
+
+COGAOVFL	SETGO
+			COGAFLAG
+			ABTCONIC
+		BANK	4
+		SETLOC	CONICS1
+		BANK
+		COUNT*	$$/CONIC
+PARAM		STQ	CLEAR		# MPAC=V1VEC, 0D=R1VEC		PL AT 6
+			RTNPRM
+			NORMSW
+		CLEAR
+			COGAFLAG
+		SSP	CALL
+			GEOMSGN
+			37777		# GAMMA ALWAYS LESS THAN 180DEG
+			GEOM		# MPAC=SNGA (+1), 0D=CSGA (+1)	PL AT 2
+		STODL	36D		# 36D=SIN GAMMA (+1)		PL AT 0
+# Page 1290		
+		SR	DDV
+			5
+			
+			36D
+		STOVL*	COGA
+			MUTABLE,1
+		STODL	1/MU
+			MAGVEC2
+		DSQ	NORM
+			X1
+		DMPR	DMP
+			1/MU
+			R1
+		SRR*
+			0 	-3,1
+		PUSH	BDSU		# 0D=R1 V1SQ/MU (+6)		PL AT 2
+			D1/32
+		STODL	R1A		# R1A (+6)			PL AT 0
+
+		DMP	NORM
+			36D
+			X1
+		DMP	SR*
+			36D
+			0 	-4,1
+		STCALL	P		# P (+4)
+			RTNPRM
+
+# Page 1291
+GEOM		UNIT			# MPAC=V2VEC, 0D=R1VEC		PL AT 6
+		STODL	U2		# U2 (+1)
+			36D
+		STOVL	MAGVEC2		#				PL AT 0
+		UNIT
+		STORE	UR1		# UR1 (+1)
+		DOT	SL1
+			U2
+		PDDL			# 0D=CSTH (+1)			PL AT 2
+			36D
+		STOVL	R1		# R1 (+29 OR +27)
+			UR1
+		VXV	VSL1
+			U2
+		BON	SIGN
+			NORMSW
+			HAVENORM
+			GEOMSGN
+		UNIT	BOV
+			COLINEAR
+UNITNORM	STODL	UN		# UN (+1)
+			36D
+		SIGN	RVQ		# MPAC=SNTH (+1), 34D=SNTH.SNTH (+2)
+			GEOMSGN
+
+COLINEAR	VSR1	GOTO
+			UNITNORM
+
+HAVENORM	ABVAL	SIGN
+			GEOMSGN
+		RVQ			# MPAC=SNTH (+1), 34D=SNTH.SNTH (+2)
+
+# Page 1292
+		BANK	12
+		SETLOC	CONICS
+		BANK
+
+		COUNT	12/CONIC
+		
+GETX		AXT,2	SSP		# ASSUMES P (+4) IN MPAC
+			3
+			S2
+			1
+		CLEAR
+			360SW
+		SQRT	PDDL		# 0D=SQRT(P)			PL AT 2
+			CSTH
+		SR1	BDSU
+			D1/4
+		PDDL	SRR		#				PL AT 4D
+			SNTH
+			6
+		DDV			#				PL AT 2
+		BOV
+			360CHECK
+		DSU	DMP
+			COGA		#				PL AT 0
+		SL2R	BOV
+			360CHECK
+WLOOP		PUSH	DSQ		# 0D=W (+5)			PL AT 2
+		TLOAD	PDDL		# 2D=WSQ (+10)			PL AT 5
+			MPAC
+			R1A
+		SR4	TAD		#				PL AT 2
+		BMN	SQRT
+			INFINITY
+		ROUND	DAD		#				PL AT 0D
+		BOV	TIX,2
+			RESETX2
+			WLOOP
+
+		BDDV	BOV
+			D1/128
+			INFINITY
+POLYCOEF	BMN	PUSH		# 0D=1/W (+2) OR 16/W (+6)	PL AT 2
+			INFINITY
+		DSQ
+		NORM	DMP
+			X1
+			R1A
+		SRR*	EXIT
+			0 	-10D,1
+# Page 1293
+		TC	POLY
+		DEC	5
+		2DEC	.5
+		
+		2DEC	-.166666770
+		
+		2DEC	.100000392
+		
+		2DEC	-.071401086
+		
+		2DEC	.055503292
+		
+		2DEC	-.047264098
+		
+		2DEC	.040694204
+
+		TC	INTPRET
+		DMP	SL1R		#				PL AT 0D
+		PUSH	BON
+			360SW
+			TRUE360X
+XCOMMON		DSQ	NORM
+			X1
+		DMP	SRR*
+			R1A
+			0 	-12D,1
+		STODL	XI		# XI (+6)
+		
+			R1
+		SR1	SQRT
+		ROUND	DMP
+		SL4R			#				PL AT 0
+		STORE	X		# X (+17 OR +16)
+
+		DSQ	NORM
+			X1
+		PDDL	DMP		# 0D=XSQ (+34 OR +32 -N1)	PL AT 2
+			P
+			R1
+		SL3	SQRT
+		DMP	SL3R
+			COGA
+		STODL	KEPC1
+			R1A
+		BDSU	CLEAR
+			D1/64
+			INFINFLG
+		STORE	KEPC2
+# Page 1294
+		RVQ
+
+RESETX2		AXT,2
+			3
+
+360CHECK	SETPD	BPL
+			0D
+			INVRSEQN
+		SET
+			360SW
+
+INVRSEQN	DLOAD	SQRT
+			P
+		PDDL	DMP		# 0D=SQRT(P) (+2)		PL AT 2
+			SNTH
+			COGA
+		SL1	PDDL		# 2D=SNTH COGA (+5)		PL AT 4
+			CSTH
+		SR4	DAD
+			D1/32
+		DSU	DMP		#				PL AT 2,0
+		NORM	BDDV
+			X1
+			SNTH
+		SLR*	ABS		# NOTE: NEAR 360 CASE TREATED DIFFERENTLY
+			0 	-5,1
+		PUSH	DSQ		# 0D=1/W (-1)			PL AT 2
+		STODL	34D
+			D1/16
+1/WLOOP		PUSH	DSQ		# 2D=G (+4)			PL AT 4
+		RTB	PDDL		#				PL AT 7
+			TPMODE
+			R1A
+		DMP	SR4
+			34D
+		TAD
+		BMN	SQRT		#				PL AT 4
+			INFINITY
+		DAD			#				PL AT 2
+		TIX,2	NORM
+			1/WLOOP
+			X1
+		BDDV
+		SLR*	GOTO		#				PL AT 0
+			0 	-7,1
+			POLYCOEF
+
+# Page 1295
+TRUE360X	DLOAD	BMN
+			R1A
+			INFINITY
+		SQRT	NORM
+			X1
+		BDDV	SL*
+			2PISC
+			0 	-3,1
+		DSU	PUSH		# 0D=2PI/SQRT(R1A) -X		PL AT 0,2
+		GOTO
+			XCOMMON
+INFINITY	SETPD	BOV		# NO SOLUTION EXISTS SINCE CLOSURE THROUGH
+			0		# INFINITY IS REQUIRED
+			OVFLCLR
+OVFLCLR		SET	RVQ
+			INFINFLG
+
+# Page 1296
+LAMBERT		STQ	SETPD
+			RTNLAMB
+			0D
+		BOV
+			+1
+		SSP	VLOAD*
+			ITERCTR
+			20D
+			MUTABLE,1
+		STODL	1/MU
+			TDESIRED
+		DMPR
+			BEE19
+		STORE	EPSILONL
+		SET	VLOAD
+			SLOPESW
+			R1VEC
+		PDVL	CALL		# 0D=R1VEC (+29 OR +27)		PL AT 6
+			R2VEC		# MPAC=R2VEC (+29 OR +27)
+			GEOM
+		STODL	SNTH		# 0D=CSTH (+1)			PL AT 2
+			MAGVEC2
+		NORM	PDDL		#				PL AT 4
+			X1
+			R1
+		SR1	DDV		#				PL AT 2
+		SL*	PDDL		# DXCH WITH 0D, 0D=R1/R2 (+7)	PL AT 0,2
+			0 	-6,1
+		STADR
+		STORE	CSTH		# CSTH (+1)
+		SR1	BDSU
+			D1/4
+		STORE	1-CSTH		# 1-CSTH (+2)
+
+		ROUND	BZE
+			360LAMB
+		NORM	PDDL		#				PL AT 4
+			X1
+			0D
+		SR1	DDV		#				PL AT 2
+		SL*	SQRT
+			0 	-3,1
+		PDDL	SR		# 2D=SQRT(2R1/R2(1-CSTH)) (+5) 	PL AT 4
+			SNTH
+			6
+		DDV	DAD		#				PL AT 2
+			1-CSTH
+		STADR
+		STORE	COGAMAX
+		BOV	BMN		# IF OVFL, COGAMAX=COGUPLIM
+# Page 1297
+			UPLIM		# IF NEG, USE EVEN IF LT COGLOLIM, SINCE
+			MAXCOGA		# 	THIS WOULD BE RESET IN LAMBLOOP
+		DSU	BMN		# IF COGAMAX GT COGUPLIM, COGAMAX=COGUPLIM
+			COGUPLIM
+			MAXCOGA		# OTHERWISE OK, SO GO TO MAXCOGA
+UPLIM		DLOAD
+			COGUPLIM	# COGUPLIM=.999511597 = MAX VALUE OF COGA
+		STORE	COGAMAX		#	NOT CAUSING OVFL IN R1A CALCULATION
+MAXCOGA		DLOAD
+			CSTH
+		SR	DSU		#				PL AT 0
+			6
+		STADR
+		STODL	CSTH-RHO
+			GEOMSGN
+		BMN	DLOAD
+			LOLIM
+			CSTH-RHO
+		SL1	DDV
+			SNTH
+		BOV
+			LOLIM
+MINCOGA		STORE	COGAMIN		# COGAMIN (+5)
+		BON	SSP
+			GUESSW
+			NOGUESS
+			TWEEKIT
+			00001
+		DLOAD
+			COGA
+
+LAMBLOOP	DMP
+			SNTH
+		SR1	DSU
+			CSTH-RHO
+		NORM	PDDL		# 0D=SNTH COGA-(CSTH-RHO) (+7+C(XI)) PL=2
+			X1
+			1-CSTH
+		SL*	DDV		# 1-CSTH (+2)			PL AT 0
+			0 -9D,1
+		BMN	BZE
+			NEGP
+			NEGP
+		STODL	P		# P=(1-CSTH)/(SNTH COGA-(CSTH-RHO)) (+4)
+			COGA
+		DSQ	DAD
+			D1/1024
+		NORM	DMP
+			X1
+# Page 1298
+			P
+		SR*	BDSU
+			0 	-8D,1
+			D1/32
+		STODL	R1A		# R1A=2-P(1+COGA COGA) (+6)
+		
+			P
+		BOV	CALL
+			HIENERGY
+			GETX
+		DLOAD
+			T
+		STODL	TPREV
+			XI
+		BON	CALL
+			INFINFLG
+			NEGP		# HAVE EXCEEDED THEORETICAL BOUNDS
+			DELTIME
+		BOV	BDSU
+			BIGTIME
+			TDESIRED
+		STORE	TERRLAMB
+		ABS	BDSU
+			EPSILONL
+		BPL	RTB
+			INITV
+			CHECKCTR
+		BHIZ	CALL
+			SUFFCHEK
+			ITERATOR
+		DLOAD	BZE
+			MPAC
+			SUFFCHEK
+		DAD
+			COGA
+		STCALL	COGA
+			LAMBLOOP
+
+NEGP		DLOAD	BPL		# IMPOSSIBLE TRAJECTORY DUE TO INACCURATE
+			DCOGA		# BOUND CALCULATION.  TRY NEW COGA.
+			LOENERGY
+
+HIENERGY	SETPD	DLOAD		# HIGH ENERGY TRAJECTORY RESULTED.
+			0
+			COGA		# IN OVFL OF P OR R1A, OR XI EXCEEDING 50.
+		STORE	COGAMIN		# THIS IS THE NEW BOUND.
+COMMONLM	DLOAD	SR1
+			DCOGA
+# Page 1299
+		STORE	DCOGA		# USE DCOGA/2 AS DECREMENT
+		BZE	BDSU
+			SUFFCHEK
+			COGA
+		STCALL 	COGA
+			LAMBLOOP
+
+BIGTIME		DLOAD
+			TPREV
+		STORE	T
+
+LOENERGY	SETPD	DLOAD		# LOW ENERGY TRAJECTORY RESULTED
+			0
+			COGA		# IN OVERFLOW OF TIME.
+		STCALL	COGAMAX		# THIS IS THE NEW BOUND.
+			COMMONLM
+
+SUFFCHEK	DLOAD	ABS
+			TERRLAMB
+		PDDL	DMP
+			TDESIRED	#				PL AT 2D
+			D1/4
+		DAD	DSU		#				PL AT 0D
+			ONEBIT
+		BPL	SETGO
+			INITV
+			SOLNSW
+			RTNLAMB
+			
+360LAMB		SETPD	SETGO		# LAMBERT CANNOT HANDLE CSTH=1
+			0
+			SOLNSW
+			RTNLAMB
+
+NOGUESS		SSP	DLOAD
+			TWEEKIT
+			20000
+			COGAMIN
+		SR1	PDDL		#				PL AT 2
+			COGAMAX
+		SR1	DAD
+		STADR			#				PL AT 0
+		STORE	COGA
+		STCALL	DCOGA
+			LAMBLOOP
+# Page 1300
+LOLIM		DLOAD	GOTO
+			COGLOLIM	# COGLOLIM=-.999511597
+			MINCOGA
+			
+INITV		DLOAD	NORM
+			R1
+			X1
+		PDDL	SR1		#				PL AT 2
+			P
+		DDV			#				PL AT 0
+		SL*	SQRT
+			0 	-4,1
+		DMP	SL1
+			ROOTMU
+		PUSH	DMP		# 0D=VTAN (+7)			PL AT 2
+			COGA
+		SL	VXSC
+			5
+			UR1
+		PDDL			# XCH WITH 0D			PL AT 0,6
+		VXSC	VSL1
+			UN
+		VXV	VAD
+			UR1		#				PL AT 0
+		VSL1	CLEAR
+			SOLNSW
+		STORE	VVEC
+		SLOAD	BZE
+			VTARGTAG
+			TARGETV
+		GOTO
+			RTNLAMB
+
+TARGETV		DLOAD	CALL
+			MAGVEC2
+			LAMENTER
+		STCALL	VTARGET
+			RTNLAMB
+
+# Page 1301
+TIMERAD		STQ	SETPD		#				PL AT 0
+			RTNTR
+			0
+		BOV	
+			+1
+		VLOAD	PDVL		#				PL AT 6
+			RVEC
+			VVEC
+		CALL
+			PARAM
+		BOV	DLOAD
+			COGAOVFL	#				PL AT 0
+			D1/32
+		DSU	DMP
+			R1A
+			P
+		SQRT	DMP
+			COGA
+		SL4	VXSC
+			U2
+		PDDL	DSU		#				PL AT 6
+			D1/64
+			R1A
+		VXSC	VSU		#				PL AT 0
+			UR1
+		VSL4	UNIT
+		BOV
+			CIRCULAR
+		PDDL	NORM		# 0D=UNIT(ECC) (+3)		PL AT 6
+			RDESIRED	# 35D=ECC (+3)
+			X1
+		PDDL	DMP		#				PL AT 8
+			R1
+			P
+		SL*	DDV		#				PL AT 6
+			0,1
+		DSU	DDV
+			D1/16
+			36D		# 36D=ECC (+3)
+		STORE	COSF
+		BOV	DSQ
+			BADR2
+		BDSU	BMN
+			D1/4
+			BADR2
+		SQRT	SIGN
+			SGNRDOT
+		CLEAR	
+			APSESW
+
+# Page 1302
+TERMNVEC	VXSC	VSL1
+			UN
+		VXV	PDVL		# VXCH WITH 0D		PL AT 0,6
+			0D
+		VXSC	VAD		#			PL AT 0
+			COSF
+		VSL1	PUSH		# 0D=U2			PL AT 6
+
+		DOT	DDV		# LIMITS RESULT TO POSMAX OR NEGMAX
+			UR1
+			DP1/4
+		SR1	BOV		# SCALE BACK DOWN TO NORMAL
+			+1		# CLEAR OVFIND IF SET
+		STOVL	CSTH		# CSTH (+1)
+			UR1
+		VXV	VSL1
+		DOT	SL1
+			UN
+		STODL	SNTH		# SNTH (+1)
+			P
+		CALL
+			GETX
+		CLRGO
+			SOLNSW
+			COMMNOUT
+
+CIRCULAR	SETPD	SETGO
+			0
+			SOLNSW
+			ABTCONIC
+
+BADR2		DLOAD	SIGN
+			LODPHALF
+			COSF
+		STODL	COSF
+			KEPZERO
+		SETGO
+			APSESW
+			TERMNVEC
+
+# Page 1303
+APSIDES		STQ	SETPD		#			PL AT 0
+			RTNAPSE
+			0D
+		BOV
+			+1
+		VLOAD	PDVL		#			PL AT 6
+			RVEC
+			VVEC
+		CALL
+			PARAM
+		BOV			#			PL AT 0
+			GETECC
+GETECC		DMP	SL4
+			R1A
+		BDSU	SQRT
+			D1/64
+		STORE	ECC
+		DAD	PDDL		#			PL AT 2
+			D1/8
+			R1
+		DMP	SL1
+			P
+		DDV			#			PL AT 0
+		PDDL	NORM		# 0D=RP (+29 OR +27)	PL AT 2
+			R1A
+			X1
+		PDDL	SL*		#			PL AT 4
+			R1
+			0 	-5,1
+		DDV	DSU		#			PL AT 2,0
+		BOV	BMN
+			INFINAPO
+			INFINAPO
+		GOTO
+			RTNAPSE
+INFINAPO	DLOAD	GOTO		# RETURNS WITH APOAPSIS IN MPAC, PERIAPSIS
+			LDPOSMAX
+			RTNAPSE		# THAT PL IS AT 0.
+
+# Page 1304
+ABTCONIC	EXIT
+		TC	P00DOO
+		OCT	00607
+
+# Page 1305
+		SETLOC	CONICS1
+		BANK
+		
+		COUNT	04/CONIC
+		
+MUTABLE		2DEC*	3.986032 E10 B-36*	# MUE
+
+		2DEC*	.25087606 E-10 B+34*	# 1/MUE
+		
+		2DEC*	1.99650495 E5 B-18*	# SQRT(MUE)
+		
+		2DEC*	.50087529 E-5 B+17*	# 1/SQRT(MUE)
+		
+		2DEC	4.902778 E8 B-30	# MUM
+		
+		2DEC	.203966 E-8 B+28	# 1/MUM
+		
+		2DEC*	2.21422176 E4 B-15*	# SQRT(MUM)
+		
+		2DEC*	.45162595 E-4 B+14*	# 1/SQRT(MUM)
+
+LDPOSMAX	EQUALS 	LODPMAX			# DPPOSMAX IN LOW MEMORY.
+
+# ERASABLE ASSIGNEMENTS
+
+# KEPLER SUBROUTINE
+
+# INPUT --
+# RRECT		ERASE 	+5
+# VRECT		ERASE	+5
+# TAU.		ERASE	+1
+# XKEP		ERASE	+1
+# TC		ERASE	+1
+# XPREV		ERASE	+1
+1/MU		EQUALS	14D
+ROOTMU		EQUALS	16D
+1/ROOTMU	EQUALS	18D
+
+# OUTPUT --
+# RCV		ERASE	+5
+# VCV		ERASE	+5
+# RC		ERASE	+1
+# XPREV		ERASE	+1
+
+# DEBRIS --
+ALPHA		EQUALS	8D
+XMAX		EQUALS	10D
+# Page 1306
+XMIN		EQUALS	12D
+X		EQUALS	20D
+XI		EQUALS	24D
+S(XI)		EQUALS	26D
+XSQC(XI)	EQUALS	28D
+T		EQUALS	30D
+R1		EQUALS	32D
+KEPC1		EQUALS	34D
+KEPC2		EQUALS	36D
+
+# DELX		ERASE	+1
+# DELT		ERASE	+1
+# URRECT	ERASE	+5
+# RCNORM	ERASE	+1
+# XPREV		EQUALS	XKEP
+
+
+# LAMBERT SUBROUTINE
+#
+# INPUT --
+# R1VEC 	ERASE	+5
+# R2VEC		ERASE 	+5
+# TDESIRED	ERASE	+1
+# GEOMSGN	ERASE	+0
+# GUESSW			# 0 IF COGA GUESS AVIABLE, 1 IF NOT
+# COGA		ERASE	+1	# INPUT ONLY IF GUESS IS ZERO.
+# NORMSW			# 0 IF UN TO BE COMPUTED, 1 IF UN INPUT
+# UN		ERASE	+5	# ONLY USED IF NORMSW IS 1
+# VTARGTAG	ERASE	+0
+# TWEEKIT	EQUALS	40D	# ONLY USED IF GUESSW IS 0
+
+# OUTPUT --
+# VTARGET	ERASE	+5	# AVAILABLE ONLY IF VTARGTAG IS ZERO.
+# V1VEC		EQUALS	MPAC
+
+# DEBRIS --
+# RTNLAMB	ERASE	+0
+# U2		ERASE	+5
+# MAGVEC2	ERASE	+1
+# UR1		ERASE	+5
+# R1		EQUALS	31D
+# UN		ERASE	+5
+# SNTH		ERASE	+1
+# CSTH		ERASE	+1
+# 1-CSTH	ERASE	+1
+# CSTH-RHO	ERASE	+1
+
+COGAMAX		EQUALS	14D	# CLOBBERS 1/MU
+COGAMIN		EQUALS	8D
+DCOGA		EQUALS	12D
+
+# TWEEKIT	EQUALS	40D
+# P		ERASE	+1
+# Page 1307
+# COGA		ERASE	+1
+# R1A		ERASE	+1
+# X		EQUALS	20D
+# XSQ		EQUALS	22D
+# XI		EQUALS	24D
+# S(XI)		EQUALS	26D
+# XSQC(XI)	EQUALS	28D
+# T		EQUALS	30D
+# KEPC1		EQUALS	34D
+# KEPC2		EQUALS	36D
+# SLOPSW
+# SOLNSW
+
+# OTHERS --
+# RVEC		EQUALS	R1VEC
+# VVEC		ERASE	+5
+# COGAFLAG
+# RVSW
+# INFINFLG
+# APSESW
+# 360SW
+# RTNTT		EQUALS	RTNLAMB
+# ECC		ERASE	+1
+# RTNTR		EQUALS	RTNLAMB
+# RTNAPSE	EQUALS	RTNLAMB
+# R2		EQUALS	MAGVEC2
+
+COSF		EQUALS	24D
+
+# RTNPRM	ERASE	+0
+# SCNRDOT	ERASE	+0
+# RDESIRED	ERASE	+1
+
+
+# ITERATOR SUBROUTINE
+
+# ORDERSW
+MAX		EQUALS	14D		# CLOBBERS 1/MU
+MIN		EQUALS	8D
+
+# INDEP		ERASE	+1
+
+DELINDEP	EQUALS	12D
+ITERCTR		EQUALS	22D
+DEP		EQUALS	30D
+
+# DELDEP	ERASE	+1
+# DEPREV	ERASE	+1
+
+TWEEKIT		EQUALS	40D
+
+
+# MORE KEPLER
+
+# EPSILONT	ERASE	+1
+
+# Page 1308
+# MORE LAMBERT
+
+# TERRLAMB	EQUALS	DELDEP
+# TPREV		EQUALS	DEPREV
+
+# EPSILONL	EQUALS	EPSILONT +2	# DOUBLE PRECISION WORD
+
+
diff --git a/CONTRACT_AND_APPROVALS.s b/CONTRACT_AND_APPROVALS.s
new file mode 100644
index 0000000..c3096b7
--- /dev/null
+++ b/CONTRACT_AND_APPROVALS.s
@@ -0,0 +1,73 @@
+# Copyright:	Public domain.
+# Filename:	CONTRACT_AND_APPROVALS.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.
+# Mod history:	2009-05-06 RSB	Transcribed from 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  
+
+# Page 1
+
+#************************************************************************
+#									*
+#		THIS AGC PROGRAM SHALL ALSO BE REFERRED TO AS:		*
+#									*
+#									*
+#				COLOSSUS 2A				*
+#									*
+#									*
+#	THIS PROGRAM IS INTENDED FOR USE IN THE CM AS SPECIFIED		*
+#	IN REPORT R-577.  THIS PROGRAM WAS PREPARED UNDER DSR		*
+#	PROJECT 55-23870, SPONSORED BY THE MANNED SPACECRAFT		*
+#	CENTER OF THE NATIONAL AERONAUTICS AND SPACE			*
+#	ADMINISTRATION THROUGH CONTRACT NAS 9-4065 WITH THE		*
+#	INSTRUMENTATION LABORATORY, MASSACHUSETTS INSTITUTE OF		*
+#	TECHNOLOGY, CAMBRIDGE, MASS.					*
+#									*
+#************************************************************************
+
+
+#	SUBMITTED:	MARGARET H. HAMILTON		DATE:	28 MAR 69
+#		M.H.HAMILTON, COLOSSUS PROGRAMMING LEADER
+#		APOLLO GUIDANCE AND NAVIGATION
+
+#	APPROVED:	DANIEL J. LICKLY		DATE:	28 MAR 69
+#		D.J.LICKLY, DIRECTOR, MISSION PROGRAM DEVELOPMENT
+#		APOLLO GUIDANCE AND NAVIGATION PROGRAM
+
+#	APPROVED:	FRED H. MARTIN			DATE:	28 MAR 69
+#		FRED H. MARTIN, COLOSSUS PROJECT MANAGER
+#		APOLLO GUIDANCE AND NAVIGATION PROGRAM
+
+#	APPROVED:	NORMAN E. SEARS			DATE:	28 MAR 69
+#		N.E. SEARS, DIRECTOR, MISSION DEVELOPMENT
+#		APOLLO GUIDANCE AND NAVIGATION PROGRAM
+
+#	APPROVED:	RICHARD H. BATTIN		DATE:	28 MAR 69
+#		R.H. BATTIN, DIRECTOR, MISSION DEVELOPMENT
+#		APOLLO GUIDANCE AND NAVIGATION PROGRAM
+
+#	APPROVED:	DAVID G. HOAG			DATE:	28 MAR 69
+#		D.G. HOAG, DIRECTOR
+#		APOLLO GUIDANCE AND NAVIGATION PROGRAM
+
+#	APPROVED:	RALPH R. RAGAN			DATE:	28 MAR 69
+#		R.R. RAGAN, DEPUTY DIRECTOR
+#		INSTRUMENTATION LABORATORY
+
diff --git a/CONTROLLED_CONSTANTS.s b/CONTROLLED_CONSTANTS.s
new file mode 100644
index 0000000..c39fe07
--- /dev/null
+++ b/CONTROLLED_CONSTANTS.s
@@ -0,0 +1,558 @@
+# Copyright:	Public domain.
+# Filename:	CONTROLLED_CONSTANTS.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:	Jim Lawton <jim.lawton@gmail.com>
+# Website:	www.ibiblio.org/apollo.
+# Pages:	038-053
+# Mod history:	2009-05-16	JVL	Transcribed from 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 001 of AGC program LMY99 by NASA 2021112-061
+#    16:27 JULY 14, 1969
+
+# Page 38
+# DPS AND APS ENGINE PARAMETERS
+
+		SETLOC	P40S
+		BANK
+		COUNT*	$$/P40
+		
+# *** THE ORDER OF THE FOLLOWING SIX CONSTANTS MUST NOT BE CHANGED ***
+
+FDPS		2DEC	4.3670 B-7		# 9817.5 LBS FORCE IN NEWTONS
+MDOTDPS		2DEC	0.1480 B-3		# 32.62 LBS/SEC IN KGS/CS
+DTDECAY		2DEC	-38
+FAPS		2DEC	1.5569 B-7		# 3500 LBS FORCE IN NEWTONS
+MDOTAPS		2DEC	0.05135 B-3		# 11.32 LBS/SEC IN KGS/CS
+ATDECAY		2DEC	-10
+
+# ********************************************************************
+
+FRCS4		2DEC	0.17792 B-7		# 400 LBS FORCE IN NEWTONS
+FRCS2		2DEC	0.08896 B-7		# 200 LBS FORCE IN NEWTONS
+
+		SETLOC	P40S1
+		BANK
+		COUNT*	$$/P40
+		
+# *** APS IMPULSE DATA FOR P42 ***************************************
+
+K1VAL		2DEC	124.55 B-23		# 2800 LB-SEC
+K2VAL		2DEC	31.138 B-24		# 700 LB-SEC
+K3VAL		2DEC	1.5569 B-10		# FAPS (3500 LBS THRUST)
+
+# ********************************************************************
+
+S40.136		2DEC	.4671 B-9		# .4671 M NEWTONS (DPS)
+S40.136_	2DEC	.4671 B+1		# S40.136 SHIFTED LEFT 10.
+
+		SETLOC	ASENT1
+		BANK
+		COUNT*	$$/P70
+
+(1/DV)A		2DEC	15.20 B-7		# 2 SECONDS WORTH OF INITIAL ASCENT
+# Page 39
+						# STAGE ACCELERATION -- INVERTED (M/CS)
+						# 1) PREDICATED ON A LIFTOFF MASS OF
+						#    4869.9 KG (SNA-8-D-027 7/11/68)
+						# 2) PREDICATED ON A CONTRIBUTION TO VEH-
+						#    ICLE ACCELERATION FROM RCS THRUSTERS
+						#    EQUIV. TO 1 JET ON CONTINUOUSLY.
+
+K(1/DV)		2DEC	436.70 B-9		# DPS ENGINE THRUST IN NEWTONS / 100 CS.
+
+(AT)A		2DEC	3.2883 E-4 B9		# INITIAL ASC. STG. ACCELERATION ** M/CS.					
+						# ASSUMPTIONS SAME AS FOR (1/DV)A.
+(TBUP)A		2DEC	91902 B-17		# ESTIMATED BURN-UP TIME OF THE ASCENT STG.
+						# ASSUMPTIONS SAME AS FOR (1/DV)A WITH THE
+						# ADDITIONAL ASSUMPTION THAT NET MASS-FLOW
+						# RATE = 5.299 KG/SEC = 5.135 (APS) +
+						# .164 (1 RCS JET).
+		SETLOC	ASENT
+		BANK
+		COUNT*	$$/ASENT
+AT/RCS		2DEC	.0000785 B+10		# 4 JETS IN A DRY LEM
+
+		SETLOC	SERVICES
+		BANK
+		COUNT*	$$/SERV
+		
+# *** THE ORDER OF THE FOLLOWING TWO CONSTANTS MUST NOT BE CHANGED *******
+
+APSVEX		DEC	-3030 E-2 B-5		# 9942 FT/SEC IN M/CS.
+DPSVEX		DEC*	-2.95588868 E+1 B-05*	# VE (DPS) +2.95588868E+ 3
+
+# ************************************************************************
+
+		SETLOC	F2DPS*31
+		BANK
+		COUNT*	$$/F2DPS
+		
+TRIMACCL	2DEC*	+3.50132708 E-5 B+08*	# A (T) +3.50132708E- 1
+
+# Page 40
+# THROTTLING AND THRUST DETECTION PARAMETERS
+
+		SETLOC	P40S
+		BANK
+		COUNT*	$$/P40
+		
+THRESH1		DEC	24
+THRESH3		DEC	12
+HIRTHROT	=	BIT13
+
+		SETLOC	FFTAG5
+		BANK
+		COUNT*	$$/P40
+		
+THRESH2		DEC	308
+
+		SETLOC	FTHROT
+		BANK
+		COUNT*	$$/THROT
+		
+FMAXODD		DEC	+3841			# FSAT 		+4.81454413 E+4
+FMAXPOS		DEC	+3467			# FMAX 		+4.34546769 E+4
+THROTLAG	DEC	+20			# TAU (TH)	+1.99999999 E-1
+SCALEFAC	2DEC*	+7.97959872 E+2 B-16*	# BITPERF 	+7.97959872 E-2
+
+		SETLOC	F2DPS*32
+		BANK
+		COUNT*	$$/F2DPS
+		
+DPSTHRSH	DEC	36			# (THRESH1 + THRESH3 FOR P63)
+
+# Page 41
+# LM HARDWARE-RELATED PARAMETERS
+
+		SETLOC	RADARUPT
+		BANK
+		COUNT*	$$/RRUPT
+		
+LVELBIAS	DEC	-12288			# LANDING RADAR BIAS FOR 153.6 KC.
+RDOTBIAS	2DEC	17000			# BIAS COUNT FOR RR RANGE RATE.
+
+		SETLOC	LRS22
+		BANK
+		COUNT*	$$/LRS22
+		
+RDOTCONV	2DEC	-.0019135344 B7		# CONVERTS RR RDOT READING TO M/CS AT 2(7)
+RANGCONV	2DEC	2.859024 B-3		# CONVERTS RR RANGE READING TO M. AT 2(-29
+
+		SETLOC	SERVICES
+		BANK
+		COUNT*	$$/SERV
+		
+HBEAMANT	2DEC	-.4687018041		# RANGE BEAM IN LR ANTENNA COORDINATES.
+		2DEC	0
+		2DEC	-.1741224271
+		
+HSCAL		2DEC	-.3288792		# SCALES 1.079 FT/BIT TO 2(22)M.
+
+# ***** THE SEQUENCE OF THE FOLLOWING CONSTANTS MUST BE PRESERVED *********
+
+VZSCAL		2DEC	+.5410829105		# SCALES .8668 FT/SEC/BIT TO 2(18) M/CS.
+VYSCAL		2DEC	+.7565672446		# SCALES 1.212 FT/SEC/BIT TO 2(18) M/CS.
+VXSCAL		2DEC	-.4020043770		# SCALES -.644 FT/SEC/BIT TO 2(18) M/CS.
+
+# *************************************************************************
+
+KPIP		DEC	.0512			# SCALES DELV TO UNITS OF 2(5) M/CS.
+KPIP1		2DEC	.0128			# SCALES DELV TO UNITS OF 2(7) M/CS.
+KPIP2		2DEC	.0064			# SCALES DELV TO UNITS OF 2(8) M/CS.
+
+# Page 42
+ALTCONV		2DEC	1.399078846 B-4		# CONVERTS M*2(-24) TO BIT UNITS *2(-28).
+ARCONV1		2DEC	656.167979 B-10		# CONV. ALTRATE COMP. TO BIT UNITS<
+
+		SETLOC	R10
+		BANK
+		COUNT*	$$/R10
+		
+ARCONV		OCT	24402			# 656.1679798B-10 CONV ALTRATE TO BIT UNIT
+ARTOA		DEC	.1066098 B-1		# .25/2.345 B-1 4X/SEC CYCLE RATE.
+ARTOA2		DEC	.0021322 B8		# (.5)/(2.345)(100)
+VELCONV		OCT	22316			# 588.914 B-10 CONV VEL. TO BIT UNITS.
+KPIP1(5)	DEC	.0512			# SCALES DELV TO M/CS*2(-5).
+MAXVBITS	OCT	00547			# MAX. DISPLAYED VELOCITY 199.9989 FT/SEC.
+
+		SETLOC	DAPS3
+		BANK
+		COUNT*	$$/DAPAO
+		
+TORKJET1	DEC	.03757			# 550 / .2 SCALED AT (+16) 64 / 180
+
+# Page 43
+# PARAMETERS RELATING TO MASS, INERTIA, AND VEHICLE DIMENSIONS
+
+		SETLOC	FRANDRES
+		BANK
+		COUNT*	$$/START
+		
+FULLAPS		DEC	5050 B-16		# NOMINAL FULL ASCENT MASS -- 2(16) KG.
+
+		SETLOC	LOADDAP1
+		BANK
+		COUNT*	$$/R03
+		
+MINLMD		DEC	-2850 B-16		# MIN. DESCENT STAGE MASS -- 2(16) KG.
+MINMINLM	DEC	-2200 B-16		# MIN ASCENT STAGE MASS -- 2(16) KG.
+MINCSM		=	BIT11			# MIN CSM MASS (OK FOR 1/ACCS) = 9050 LB
+
+		SETLOC	DAPS3
+		BANK
+		COUNT*	$$/DAPAD
+		
+LOASCENT	DEC	2200 B-16		# MIN ASCENT LEM MASS -- 2(16) KG.
+HIDESCNT	DEC	15300 B-16		# MAX DESCENT LEM MASS -- 2(16) KG.
+LODESCNT	DEC	1750 B-16		# MIN DESCENT STAGE (ALONE) -- 2(16) KG.
+
+# Page 44
+# PHYSICAL CONSTANTS ( TIME - INVARIANT )
+
+		SETLOC	IMU2
+		BANK
+		COUNT*	$$/P07
+		
+OMEG/MS		2DEC	.24339048
+
+		SETLOC	R30LOC
+		BANK
+		COUNT*	$$/R30
+
+# *** THE ORDER OF THE FOLLOWING TWO CONSTANTS MUST BE PRESERVED ***********
+
+1/RTMUM		2DEC*	.45162595 E-4 B14*
+1/RTMUE		2DEC*	.50087529 E-5 B17*
+
+# **************************************************************************
+
+		SETLOC	P40S1
+		BANK
+		COUNT*	$$/S40.9
+		
+EARTHMU		2DEC*	-3.986032 E10 B-36*	# M(3)/CS(2)
+
+		SETLOC	ASENT1
+		BANK
+		COUNT*	$$/P12
+		
+MUM(-37)	2DEC*	4.9027780 E8 B-37*
+MOONRATE	2DEC*	.26616994890062991 E-7 B+19*	# RAD/CS.
+
+		SETLOC	SERVICES
+		BANK
+		COUNT*	$$/SERV
+		
+# *** THE ORDER OF THE FOLLOWING TWO CONSTANTS MUST BE PRESERVED ***********
+
+-MUDT		2DEC*	-7.9720645 E+12 B-44*
+-MUDT1		2DEC*	-9.8055560 E+10 B-44*
+
+# **************************************************************************
+
+-MUDTMUN	2DEC*	-9.8055560 E+10 B-38*
+RESQ		2DEC*	40.6809913 E12 B-58*
+
+# Page 45
+20J		2DEC	3.24692010 E-2
+2J		2DEC	3.24692010 E-3
+
+		SETLOC	P50S1
+		BANK
+		COUNT*	$$/LOSAM
+		
+RSUBEM		2DEC	384402000 B-29
+RSUBM		2DEC	1738090 B-29
+RSUBE		2DEC	6378166 B-29
+ROE		2DEC	.00257125
+
+		SETLOC	CONICS1
+		BANK
+		COUNT*	$$/LT-LG
+		
+ERAD		2DEC	6373338 B-29		# PAD RADIUS
+504RM		2DEC	1738090 B-29		# METERS B-29 (EQUATORIAL MOON RADIUS)
+
+		SETLOC	CONICS1
+		BANK
+		COUNT*	$$/CONIC
+		
+# *** THE ORDER OF THE FOLLOWING CONSTANTS MUST BE PRESERVED **************
+
+MUTABLE		2DEC*	3.986032 E10 B-36*	# MUE
+		2DEC*	.25087606 E-10 B+34*	# 1/MUE
+		2DEC*	1.99650495 E5 B-18*	# SQRT(MUE)
+		2DEC*	.50087529 E-5 B+17*	# 1/SQRT(MUE)
+		2DEC*	4.902778 E8 B-30*	# MUM
+		2DEC*	.203966 E-8 B+28*	# 1/MUM
+		2DEC*	2.21422176 E4 B-15*	# SQRT(MUM)
+		2DEC*	.45162595 E-4 B+14*	# 1/SQRT(MUM)
+		
+# *************************************************************************
+
+# Page 46
+		SETLOC	INTINIT
+		BANK
+		COUNT*	$$/INTIN
+		
+OMEGMOON	2DEC*	2.66169947 E-8 B+23*
+
+		SETLOC	ORBITAL2
+		BANK
+		COUNT*	$$/ORBIT
+		
+# *** THE ORDER OF THE FOLLOWING CONSTANTS MUST NOT BE CHANGED ************
+
+		2DEC*	1.32715445 E16 B-54*
+MUM		2DEC*	4.9027780 E8 B-30*
+MUEARTH		2DEC*	3.986032 E10 B-36*
+		2DEC 	0
+J4REQ/J3	2DEC*	.4991607391 E7 B-26*
+		2DEC	-176236.02 B-25
+2J3RE/J2	2DEC*	-.1355426363 E5 B-27*
+		2DEC*	.3067493316 E18 B-60*
+J2REQSQ		2DEC*	1.75501139 E21 B-72*
+3J22R2MU	2DEC*	9.20479048 E16 B-58*
+
+# *************************************************************************
+
+		SETLOC	TOF-FF1
+		BANK
+		COUNT*	$$/TFF
+		
+1/RTMU		2DEC*	.5005750271 E-5 B17*	# MODIFIED EARTH MU
+
+		SETLOC	SBAND
+		BANK
+		COUNT*	$$/R05
+		
+REMDIST		2DEC	384402000 B-29		# MEAN DISTANCE BETWEEN EARTH AND MOON.
+
+# Page 47
+# PHYSICAL CONSTANTS (TIME - VARIANT)
+
+		SETLOC	STARTAB
+		BANK
+		COUNT*	$$/STARS
+		
+		2DEC	+.8342971408 B-1	# STAR 37	X
+		2DEC	-.2392481515 B-1	# STAR 37	Y
+		2DEC	-.4966976975 B-1	# STAR 37	Z
+		
+		2DEC	+.8139832631 B-1	# STAR 36	X
+		2DEC	-.5557243189 B-1	# STAR 36	Y
+		2DEC	+.1691204557 B-1	# STAR 36	Z
+		
+		2DEC	+.4541086270 B-1	# STAR 35	X
+		2DEC	-.5392368197 B-1	# STAR 35	Y
+		2DEC	+.7092312789 B-1	# STAR 35	Z
+		
+		2DEC	+.3201817378 B-1	# STAR 34	X
+		2DEC	-.4436021946 B-1	# STAR 34	Y
+		2DEC	-.8370786986 B-1	# STAR 34	Z
+		
+		2DEC	+.5520184464 B-1	# STAR 33	X
+		2DEC	-.7933187400 B-1	# STAR 33 	Y
+		2DEC	-.2567508745 B-1	# STAR 33	Z
+		
+		2DEC	+.4537196908 B-1	# STAR 32	X
+		2DEC	-.8779508801 B-1	# STAR 32	Y
+		2DEC	+.1527766153 B-1	# STAR 32	Z
+		
+		2DEC	+.2069525789 B-1	# STAR 31	X
+		2DEC	-.8719885748 B-1	# STAR 31	Y
+		2DEC	-.4436288486 B-1	# STAR 31	Z
+		
+		2DEC	+.1217293692 B-1	# STAR 30	X
+		2DEC	-.7702732847 B-1	# STAR 30 	Y
+# Page 48
+		2DEC	+.6259880410 B-1	# STAR 30	Z
+		
+		2DEC	-.1124304773 B-1	# STAR 29	X
+		2DEC	-.9694934200 B-1	# STAR 29	Y
+		2DEC	+.2178116072 B-1	# STAR 29	Z
+		
+		2DEC	-.1146237858 B-1	# STAR 28	X
+		2DEC	-.3399692557 B-1	# STAR 28 	Y
+		2DEC	-.9334250333 B-1	# STAR 28	Z
+		
+		2DEC	-.3516499609 B-1	# STAR 27	X
+		2DEC	-.8240752703 B-1	# STAR 27	Y
+		2DEC	-.4441196390 B-1	# STAR 27	Z
+		
+		2DEC	-.5326876930 B-1	# STAR 26	X
+		2DEC	-.7160644554 B-1	# STAR 26	Y
+		2DEC	+.4511047742 B-1	# STAR 26	Z
+		
+		2DEC	-.7861763936 B-1	# STAR 25	X
+		2DEC	-.5217996305 B-1	# STAR 25	Y
+		2DEC	+.3311371675 B-1	# STAR 25	Z
+		
+		2DEC	-.6898393233 B-1	# STAR 24	X
+		2DEC	-.4182330640 B-1	# STAR 24	Y
+		2DEC	-.5909338474 B-1	# STAR 24	Z
+		
+		2DEC	-.5812035376 B-1	# STAR 23	X
+		2DEC	-.2909171294 B-1	# STAR 23	Y
+		2DEC	+.7599800468 B-1	# STAR 23 	Z
+		
+		2DEC	-.9170097662 B-1	# STAR 22	X
+		2DEC	-.3502146628 B-1	# STAR 22	Y
+		2DEC	-.1908999176 B-1	# STAR 22	Z
+		
+# Page 49
+		2DEC	-.4523440203 B-1	# STAR 21	X
+		2DEC	-.0493710140 B-1	# STAR 21	Y
+		2DEC	-.8904759346 B-1	# STAR 21	Z
+		
+		2DEC	-.9525211695 B-1	# STAR 20	X
+		2DEC	-.0593434796 B-1	# STAR 20	Y
+		2DEC	-.2986331746 B-1	# STAR 20	Z
+		
+		2DEC	-.9656605484 B-1	# STAR 19	X
+		2DEC	+.0525933156 B-1	# STAR 19	Y
+		2DEC	+.2544280809 B-1	# STAR 19	Z
+		
+		2DEC	-.8608205219 B-1	# STAR 18	X
+		2DEC	+.4636213989 B-1	# STAR 18	Y
+		2DEC	+.2098647835 B-1	# STAR 18	Z
+		
+		2DEC	-.7742591356 B-1	# STAR 17	X
+		2DEC	+.6152504197 B-1	# STAR 17	Y
+		2DEC	-.1482892839 B-1	# STAR 17	Z
+		
+		2DEC	-.4657947941 B-1	# STAR 16	X
+		2DEC	+.4774785033 B-1	# STAR 16	Y
+		2DEC	+.7450164351 B-1	# STAR 16	Z
+		
+		2DEC	-.3612508532 B-1	# STAR 15	X
+		2DEC	+.5747270840 B-1	# STAR 15	Y
+		2DEC	-.7342932655 B-1	# STAR 15	Z
+		
+		2DEC	-.4118589524 B-1	# STAR 14 	X
+		2DEC	+.9065485360 B-1	# STAR 14	Y
+		2DEC	+.0924226975 B-1	# STAR 14	Z
+		
+		2DEC	-.1820751783 B-1	# STAR 13	X
+# Page 50
+		2DEC	+.9404899869 B-1	# STAR 13	Y
+		2DEC	-.2869271926 B-1	# STAR 13	Z
+		
+		2DEC	-.0614937230 B-1	# STAR 12 	X
+		2DEC	+.6031563286 B-1	# STAR 12	Y
+		2DEC	-.7952489957 B-1	# STAR 12	Z
+		
+		2DEC	+.1371725575 B-1	# STAR 11	X
+		2DEC	+.6813721061 B-1	# STAR 11	Y
+		2DEC	+.7189685267 B-1	# STAR 11	Z
+		
+		2DEC	+.2011399589 B-1	# STAR 10	X
+		2DEC	+.9690337941 B-1	# STAR 10	Y
+		2DEC	-.1432348512 B-1	# STAR 10	Z
+		
+		2DEC	+.3507315038 B-1	# STAR 9	X
+		2DEC	+.8926333307 B-1	# STAR 9	Y
+		2DEC	+.2831839492 B-1	# STAR 9	Z
+		
+		2DEC	+.4105636020 B-1	# STAR 8	X
+		2DEC	+.4988110001 B-1	# STAR 8	Y
+		2DEC	+.7632988371 B-1	# STAR 8	Z
+		
+		2DEC 	+.7032235469 B-1	# STAR 7	X
+		2DEC	+.7075846047 B-1	# STAR 7	Y
+		2DEC	+.0692868685 B-1	# STAR 7	Z
+		
+		2DEC	+.5450107404 B-1	# STAR 6	X
+		2DEC	+.5314955466 B-1	# STAR 6	Y
+		2DEC	-.6484410356 B-1	# STAR 6	Z
+		
+		2DEC	+.0130968840 B-1	# STAR 5	X
+		2DEC	+.0078062795 B-1	# STAR 5	Y
+# Page 51
+		2DEC	+.9998837600 B-1	# STAR 5	Z
+		
+		2DEC	+.4917678276 B-1	# STAR 4	X
+		2DEC	+.2204887125 B-1	# STAR 4	Y
+		2DEC	-.8423473935 B-1	# STAR 4 	Z
+		
+		2DEC	+.4775639450 B-1	# STAR 3	X
+		2DEC	+.1166004340 B-1	# STAR 3	Y
+		2DEC	+.8708254803 B-1	# STAR 3 	Z
+		
+		2DEC	+.9342640400 B-1	# STAR 2	X
+		2DEC	+.1735073142 B-1	# STAR 2	Y
+		2DEC	-.3115219339 B-1	# STAR 2	Z
+		
+		2DEC	+.8748658918 B-1	# STAR 1	X
+		2DEC	+.0260879174 B-1	# STAR 1	Y
+		2DEC	+.4836621670 B-1	# STAR 1	Z
+		
+CATLOG		DEC	6970
+		
+# *******************************************************************************
+
+		SETLOC	EPHEM1
+		BANK
+		COUNT*	$$/EPHEM
+		
+KONMAT		2DEC	1.0 B-1			# ********************
+		2DEC	0			#		     *
+		2DEC	0			#		     *
+		2DEC	0			#		     *
+		2DEC	.91745 B-1		# K1 COS(OBL)	     *
+		2DEC	-.03571 B-1		# K2 SIN(OBL)SIN(IM) *
+		2DEC	0			#		     *
+		2DEC	.39784 B-1		# K3 SIN(OBL)	     *
+# Page 52
+		2DEC	.082354 B-1		# K4 COS(OBL)SIN(IM) *
+CSTODAY		2DEC	8640000 B-33		# 		     * NOTE:          *
+RCB-13		OCT	00002			#		     * TABLES CONTAIN *
+		OCT	00000			#		     * CONSTANTS FOR  *
+RATESP		2DEC	.03660098 B+4		# LOMR		     * 1969 - 1970    *
+		2DEC	.00273779 B+4		# LOSR
+		2DEC	-.00014719 B+4		# LONR
+		2DEC	.815282336		# LOMO
+		2DEC	.274674910		# LOSO
+		2DEC	.986209499		# LONO
+VAL67		2DEC*	.01726666666 B+1*	# AMOD
+		2DEC	.530784445		# AARG
+		2DEC	.036291712 B+1		# 1/27
+		2DEC	.003505277 B+1		# BMOD
+		2DEC	.585365625 		# BARG
+		2DEC	.03125 B+1		# 1/32
+		2DEC	.005325277 B+1		# CMOD
+		2DEC	-.01106341036		# CARG
+		2DEC	.002737925 B+1		# 1/365
+		
+# ********************************************************************************
+
+		SETLOC	PLANTIN2
+		BANK
+		COUNT*	$$/LUROT
+		
+COSI		2DEC	.99964173 B-1		# COS (5521.5 SEC.) B-1
+SINI		2DEC	.02676579 B-1		# SIN (5521.5 SEC.) B-1
+NODDOT		2DEC	-.457335121 E-2		# REV/CSEC B+28 = -1.07047011 E-8 RAD/SEC
+FDOT		2DEC	.570863327		# REV/CSEC B+27 =  2.67240410 E-6 RAD/SEC
+# Page 53
+BDOT		2DEC	-3.07500686 E-8		# REV/CSEC B+28 = -7.19757301 E-14 RAD/SEC
+NODIO		2DEC	.986209434		# REVS B-D	= 6.19653663041 RAD
+FSUBO		2DEC	.829090536		# REVS B-D	= 5.20932947829 RAD
+BSUBO		2DEC	.0651201393		# REVS B-D	= 0.40916190299 RAD
+WEARTH		2DEC	.973561595		# REV/CSEC B+23	= 7.29211494 E-5 RAD/SEC
+
diff --git a/CSM_GEOMETRY.s b/CSM_GEOMETRY.s
new file mode 100644
index 0000000..b845bb5
--- /dev/null
+++ b/CSM_GEOMETRY.s
@@ -0,0 +1,418 @@
+# Copyright:	Public domain.
+# Filename:	CSM_GEOMETRY.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:	285-296
+# Mod history:	2009-05-08 RSB	Adapted 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 285
+		BANK	22
+		SETLOC	COMGEOM1
+		BANK
+		
+# THIS ROUTINE TAKES THE SHAFT AND TRUNNION ANGLES AS READ BY THE CM OPTICAL SYSTEM AND CONVERTS THEM INTO A UNIT
+# VECTOR REFERENCED TO THE NAVIGATION BASE COORDINATE SYSTEM AND COINCIDENT WTIH THE SEXTANT LINE OF SIGHT.
+#
+# THE INPUTS ARE:  1) THE SEXTAND SHAFT AND TRUNNION ANGLES ARE STORED SP IN LOCATIONS 3 AND 5 RESPECTIVELY OF THE
+# MARK VAC AREA.  2) THE COMPLEMENT OF THE BASE ADDRESS OF THE MARK VAC AREA IS STORED SP AT LOCATION X1 OF YOUR
+# JOB VAC AREA.
+#
+# THE OUTPUT IS A HALF-UNIT VECTOR IN NAVIGATION BASE COORDINATES AND STORED AT LOCATION 32D OF THE VAC AREA. THE
+# OUTPUT IS ALSO AVAILABLE AT MPAC.
+
+		COUNT	23/GEOM
+		
+SXTNB		SLOAD*	RTB		# PUSHDOWN 00,02,04,(17D-19D),32D-36D
+			5,1		# TRUNNION = TA
+			CDULOGIC
+		RTB	PUSH
+			SXTLOGIC
+		SIN	SL1
+		PUSH	SLOAD*		# PD2 = SIN(TA)
+			3,1		# SHAFT = SA
+		RTB	PUSH		# PD4 = SA
+			CDULOGIC
+			
+		COS	DMP
+			2
+		STODL	STARM		# COS(SA)SIN(TA)
+		
+		SIN	DMP
+		STADR
+		STODL	STARM	+2	# SIN(SA)SIN(TA)
+		
+		COS
+		STOVL	STARM	+4
+			STARM		# STARM = 32D
+		MXV	VSL1
+			NB1NB2
+		STORE	32D
+		RVQ
+		
+SXTLOGIC	CAF	10DEGS-		# CORRECT FOR 19.775 DEGREE OFFSET
+		ADS	MPAC
+		CAF	QUARTER
+		TC	SHORTMP
+		TC	DANZIG
+
+# Page 286
+# CALCSXA COMPUTES THE SEXTANT SHAFT AND TRUNNION ANGLES REQUIRED TO POSITION THE OPTICS SUCH THAT A STAR LINE-
+# OF-SIGHT LIES ALONG THE STAR VECTOR.  THE ROUTINE TAKES THE GIVEN STAR VECTOR AND EXPRESSES IT AS A VECTOR REF-
+# ERENECED TO THE OPTICS COORDINATE SYSTEM.  IN ADDITION IT SETS UP THREE UNIT VECTORS DEFINING THE X, Y, AND Z AXES
+# REFERENCED TO THE OPTICS COORDINATE SYSTEM.
+#
+# THE INPUTS ARE:  1) THE STAR VECTOR REFERRED TO THE PRESENT STABLE MEMMBER COORDINATES STORED AT STAR.  2) SAME ANGLE
+# INPUT AS *SMNB*, I.E., SINES AND COSINES OF THE CDU ANGLES, IN THE ORDER Y Z X, AT SINCDU AND COSCDU.  A CALL
+# TO CDUTRIG WILL PROVIDE THIS INPUT.
+#
+# THE OUTPUT ARE THE SEXTANT SHAFT AND TRUNNION ANGLES STORED DP AT SAC AND PAC RESPECTIVELY.  (LOW ORDER PART
+# EQUAL TO ZERO).
+
+CALCSXA		ITA	VLOAD		# PUSHDOWN 00-26D, 28D, 30D, 32D-36D
+			28D
+			STAR
+		CALL
+			*SMNB*
+		MXV	VSL1
+			NB2NB1
+		STOVL	STAR
+			HIUNITX
+		STOVL	XNB1
+			HIUNITY
+		STOVL	YNB1
+			HIUNITZ
+		STCALL	ZNB1
+			SXTANG1
+
+# Page 287
+# SXTANG COMPUTES THE SEXTANT SHAFT AND TRUNNION ANGLES REQUIRED TO POSITION THE OPTICS SUCH THAT A STAR LINE-OF-
+# SIGHT LIES ALONG THE STAR VECTOR.
+#
+# THE INPUTS ARE:  1) THE STAR VECTOR REFERRED TO ANY COORDINATE SYSTEM STORED AT STAR.  2) THE NAVIGATION BASE
+# COORDINATES REFERRED TO THE SAME COORDINATE SYSTEM.  THESE THREE HALF-UNIT VECTORS ARE STROED AT XNB, YNB,AND
+# ZNB.
+#
+# THE OUTPUTS ARE THE SEXTANT SHAFT AND TRUNNION ANGLES STORED DP AT SAC AND PAC RESPECTIVELY.  (LOW ORDER PART
+# EQUAL TO ZERO).
+
+SXTANG		ITA	RTB		# PUSHDOWN 16D,18D,22D-26D,28D
+			28D
+			TRANSP1		# EREF WRT NB2
+		VLOAD	MXV
+			XNB
+			NB2NB1
+		VSL1
+		STOVL	XNB1
+			YNB
+		MXV	VSL1
+			NB2NB1
+		STOVL	YNB1
+			ZNB
+		MXV	VSL1
+			NB2NB1
+		STORE	ZNB1
+		
+		RTB	RTB
+			TRANSP1
+			TRANSP2
+			
+SXTANG1		VLOAD	VXV
+			ZNB1
+			STAR
+		BOV
+			+1
+		UNIT	BOV
+			ZNB=S1
+		STORE	PDA		# PDA = UNIT(ZNB X S)
+		
+		DOT	DCOMP
+			XNB1
+		STOVL	SINTH		# SIN(SA) = PDA . -XNB
+			PDA
+			
+		DOT
+			YNB1
+		STCALL	COSTH		# COS(SA) = PDA . YNB
+			ARCTRIG
+# Page 288
+		RTB
+			1STO2S
+		STOVL	SAC
+			STAR
+		BOV
+			+1
+		DOT	SL1
+			ZNB1
+		ACOS
+		BMN	SL2
+			SXTALARM	# TRUNNION ANGLE NEGATIVE
+		BOV	DSU
+			SXTALARM	# TRUNNION ANGLE GREATER THAN 90 DEGREES
+			20DEG-
+		RTB
+			1STO2S
+		STORE	PAC		# FOR FLIGHT USE, CULTFLAG IS ON IF
+		CLRGO			# TRUNION IS GREATER THAN 90 DEG
+			CULTFLAG
+			28D
+SXTALARM	SETGO			# ALARM HAS BEEN REMOVED FROM THIS
+			CULTFLAG
+			28D		# SUBROUTINE, ALARM WILL BE SET BY MPI
+ZNB=S1		DLOAD
+			270DEG
+		STODL	SAC
+			20DEGS-
+		STORE	PAC
+		CLRGO	
+			CULTFLAG
+			28D
+
+# Page 289
+# THESE TWO ROUTINES COMPUTE THE ACTUAL STATE VECTOR FOR LM, CSM BY ADDING
+# THE CONIC R,V AND THE DEVIATIONS R,V.  THE STATE VECTORS ARE CONVERTED TO
+# METERS B-29 AND METERS/CSEC B-7 AND STORED APPROPRIATELY IN RN,VN OR
+# R-OTHER, V-OTHER FOR DOWNLINK.  THE ROUTINES NAMES ARE SWITCHED IN THE
+# OTHER VEHICLES COMPUTER.
+#
+# INPUT
+#	STATE VECTOR IN TEMPORARY STORAGE AREA
+#	IF STATE VECTOR IS SCALED POS B27 AND VEL B5
+#		SET X2 TO +2
+#	IF STATE VECTOR IS SCALED POS B29 AND VEL B7
+#		SET X2 TO 0
+#
+# OUTPUT
+#	R(T) IN RN, V(T) IN VN, T IN PIPTIME
+#		OR
+#	R(T) IN R-OTHER, V(T) IN V-OTHER	(T IS DEFINED BY T-OTHER)
+
+		BANK	23
+		SETLOC	COMGEOM2
+		BANK
+		COUNT	10/GEOM
+SVDWN1		BOF	RVQ			# SW=1=AVETOMID DOING W-MATRIX INTEG
+			AVEMIDSW
+			+1
+		VLOAD	VSL*
+			TDELTAV
+			0	-7,2
+		VAD	VSL*
+			RCV
+			0,2
+		STOVL	RN
+			TNUV
+		VSL*	VAD
+			0	-4,2
+			VCV
+		VSL*	
+			0,2
+		STODL	VN
+			TET
+		STORE	PIPTIME
+		RVQ
+		
+SVDWN2		VLOAD	VSL*
+			TDELTAV
+			0	-7,2
+		VAD	VSL*
+			RCV
+# Page 290
+			0,2
+		STOVL	R-OTHER
+			TNUV
+		VSL*	VAD
+			0	-4,2
+			VCV
+		VSL*
+			0,2
+		STORE	V-OTHER
+		RVQ
+
+# Page 291
+# SUBROUTINE TO COMPUTE THE NATURAL LOG OF C(MPAC, MPAC +1).
+#
+#	ENTRY:	CALL
+#			LOG
+#
+# SUBROUTINE RETURNS WITH -LOG IN DP MPAC.
+#
+# EBANK IS ARBITRARY.
+
+		BANK	14
+		SETLOC	POWFLIT2
+		BANK
+		COUNT	23/GEOM
+		
+LOG		NORM	BDSU		# GENERATES LOG BY SHIFTING ARG
+			MPAC	+3	# UNTIL IT LIES BETWEEN .5 AND 1.
+			NEARLY1		# THE LOG OF THIS PART IS FOUND AND THE
+		EXIT			# LOG OF THE SHIFTED PART IS COMPUTED
+		TC	POLY		# AND ADDED IN.  SHIFT COUNT STORED
+		DEC	2		# (N-1, SUPPLIED BY SMERZH)
+		2DEC	0		# IN MPAC +3.
+		2DEC	.031335467
+		2DEC	.0130145859
+		2DEC	.0215738898
+		
+		CAF	ZERO
+		TS	MPAC	+2
+		EXTEND
+		DCA	CLOG2/32
+		DXCH	MPAC
+		DXCH	MPAC	+3
+		COM			# LOAD POSITIVE SHIFT COUNT IN A.
+		TC	SHORTMP		# MULTIPLY BY SHIFT COUNT.
+		
+		DXCH	MPAC	+1
+		DXCH	MPAC
+		DXCH	MPAC	+3
+		DAS	MPAC
+		TC	INTPRET		# RESULT IN MPAC, MPAC +1
+		
+		RVQ
+		
+NEARLY1		2DEC	.999999999
+
+# Page 292
+CLOG2/32	2DEC	.0216608494
+
+# Page 293
+# SUBROUTINE NAME:  EARTH ROTATOR	(EARROT1 OR EARROT2)		DATE:  15 FEB 67
+# MOD NO:  N +1								LOG SECTION:  POWERED FLIGHT SUBROS
+# MOD BY:  ENTRY GROUP (BAIRNSFATHER)
+#
+# FUNCTIONAL DESCRIPTION:  THIS ROUTINE PROJECTS THE INITIAL EARTH TARGET VECTOR RTINIT AHEAD THROUGH
+#	THE ESTIMATED TIME OF FLIGHT.  INITIAL CALL RESOLVES THE INITIAL TARGET VECTOR RTINIT INTO EASTERLY
+#	AND NORMAL COMPONENTS RTEAST AND RTNORM.  INITIAL AND SUBSEQUENT CALLS ROTATE THIS VECTOR
+#	ABOUT THE (FULL) UNIT POLAR AXIS UNITW THROUGH THE ANGLE  WIE DTEAROT  TO OBTAIN THE ROTATED
+#	TARGET VECTOR RT.  ALL VECTORS EXCEPT UNITW ARE HALF UNIT.
+#	THE EQUATIONS ARE:
+#		_    _        _                      _
+#		RT = RTINIT + RTNORM (COS(WT) - 1) + RTEAST SIN(WT)
+#
+#	WHERE	WT = WIE DTEAROT
+#
+#		RTINIT = INITIAL TARGET VECTOR
+#		_        _       _
+#		RTEAST = UNITW * RTINIT
+#		_        _        _
+#		RTNORM = RTEAST * UNITW
+#
+#	FOR CONTINUOUS UPDATING, ONLY ONE ENTRY TO EARROT1 IS REQUIRED, WITH SUBSEQUENT ENTRIES AT EARROT2.
+#	
+# CALLING SEQUENCE:	FIRST CALL			SUBSEQUENT CALL
+#			STCALL	DTEAROT			STCALL	DTEAROT
+#				EARROT1				EARROT2
+#			C(MPAC) UNSPECIFIED		C(MPAC) = DTEAROT
+#	PUSHLOC = PDL+0, ARBITRARY.  6 LOCATIONS USED.
+#
+# SUBROUTINES USED:  NONE
+#
+# NORMAL EXIT MODES:  RVQ
+#
+# ALARMS:  NONE
+#
+# OUTPUT:	RTEAST	(-1)		.5 UNIT VECTOR EAST, COMPNT OF RTINIT	LEFT BY FIRST CALL
+#		RTNORM	(-1)		.5 UNIT VECTOR NORML, COMPNT OF RTINIT	LEFT BY FIRST CALL
+#		RT	(-1)		.5 UNIT TARGET VECTOR, ROTATED		LEFT BY ALL CALLS
+#		DTEAROT	(-28) CS	MAY BE CHANGED BY EARROT2, IF OVER 1 DAY
+#
+# ERASABLE INITIALIZATION REQUIRED:
+#		UNITW	(0)		UNIT POLAR VECTOR			PAD LOADED
+#		RTINIT	(-1)		.5 UNIT INITIAL TARGET VECTOR		LEFT BY ENTRY
+#		DTEAROT	(-28) CS	TIME OF FLIGHT				LEFT BY CALLER
+#
+# DEBRIS:  QPRET, PDL+0 ... PDL+5
+# Page 294
+		EBANK=	RTINIT
+		
+EARROT1		VLOAD	VXV
+			UNITW		# FULL UNIT VECTOR
+			RTINIT		# .5 UNIT
+		STORE	RTEAST		# .5 UNIT
+		
+		VXV
+			UNITW		# FULL UNIT
+		STODL	RTNORM		# .5 UNIT
+			DTEAROT		# (-28) CS
+			
+EARROT2		BOVB	DDV
+			TCDANZIG	# RESET OVFIND, IF ON
+			1/WIE
+		BOV	PUSH
+			OVERADAY
+		COS	DSU
+			HIDPHALF
+		VXSC	PDDL		# XCH W PUSH LIST
+			RTNORM		# .5 UNIT
+		SIN	VXSC
+			RTEAST		# .5 UNIT
+		VAD	VSL1
+		VAD	UNIT		# INSURE THAT RT IS "UNIT".
+			RTINIT		# .5 UNIT
+		STORE	RT		# .5 UNIT TARGET VECTOR
+		
+		RVQ
+		
+OVERADAY	DLOAD	SIGN
+			1/WIE
+			DTEAROT
+		BDSU
+			DTEAROT
+		STORE	DTEAROT
+		
+		GOTO
+			EARROT2
+			
+#WIE		2DEC	.1901487997
+1/WIE		2DEC	8616410
+NB2NB1		2DEC	+.8431756920 B-1
+		2DEC	0
+		2DEC	-.5376381241 B-1
+# Page 295
+ZERINFLT	2DEC	0
+HALFNFLT	2DEC	.5
+		2DEC	0
+		2DEC	+.5376381241 B-1
+		2DEC	0
+		2DEC	+.8431756920 B-1
+NB1NB2		2DEC	+.8431756920 B-1
+		2DEC	0
+		2DEC	+.5376381241 B-1
+		2DEC	0
+		2DEC	.5
+		2DEC	0
+		2DEC	-.5376381241 B-1
+		2DEC	0
+		2DEC	+.8431756920 B-1
+# Page 296
+10DEGS-		DEC	3600
+270DEG		OCT	60000		# SHAFT 270 DEGREES	25 COMP.
+		OCT	00000
+20DEGS-		DEC	-07199
+		DEC	-00000
+20DEG-		DEC	03600
+		DEC	00000
+		
diff --git a/DAPIDLER_PROGRAM.s b/DAPIDLER_PROGRAM.s
new file mode 100644
index 0000000..fb42a73
--- /dev/null
+++ b/DAPIDLER_PROGRAM.s
@@ -0,0 +1,481 @@
+# Copyright:	Public domain.
+# Filename:	DAPIDLER_PROGRAM.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	1410-1420
+# Mod history:  2009-05-10 SN   (Sergio Navarro).  Started adapting
+#				from the Luminary131/ file of the same
+#				name, using Luminary099 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 001 of AGC program LMY99 by NASA 2021112-61
+#	16:27 JULY 14, 1969 
+
+# Page 1410
+# THE DAPIDLER PROGRAM IS STARTED BY FRESH START AND RESTART.  THE DAPIDLER PROGRAM IS DONE 10 TIMES
+# PER SECOND UNTIL THE ASTRONAUT DESIRES THE DAP TO WAKE UP, AND THE IMU AND CDUS ARE READY FOR USE BY THE DAP.
+# THE NECESSARY INITIALIZATION OF THE DAP IS DONE BY THE DAPIDLER PROGRAM.
+
+		BANK	16
+		SETLOC	DAPS1
+		BANK
+
+		EBANK=	AOSQ
+
+		COUNT*	$$/DAPID
+
+CHEKBITS	EXTEND
+		READ	CHAN31		# IF BOTH BIT13 AND BIT14 ARE ONE, THEN
+		COM			# THE MODE SELECT SWITCH IS IN THE OFF
+		MASK	BIT13-14	# POSITION, AND SO THE DAP SHOULD BE OFF,
+		EXTEND			# WITH NO ATTITUDE ERROR DISPLAY.
+		BZF	MOREIDLE
+
+		CS	IMODES33
+		MASK	BIT6
+		CCS	A
+		TCF	JUMPDSP
+		CS	RCSFLAGS	# IMU NOT USABLE.  SET UP INITIALIZATION
+		MASK	BIT3		# FLAG FOR ATT ERROR DISPLAY ROUTINE.
+		ADS	RCSFLAGS
+		TCF	SHUTDOWN
+
+CHEKMORE	CAF	BIT10		# BIT 10 OF 30 IS PGNCS CONTROL OF S/C
+		EXTEND
+		RAND	CHAN30		# BITS IN 30 ARE INVERTED
+		CCS	A
+		TCF	MOREIDLE
+
+		RETURN
+
+# Page 1411
+# DAPIDLER ENTRY.
+
+DAPIDLER	LXCH	BANKRUPT	# INTERRUPT LEAD INS (CONTINUED)
+		EXTEND
+		QXCH	QRUPT
+
+		CA	RCSFLAGS
+		MASK	BIT13
+		CCS	A		# CHECK IF 1/ACCJOB HAS BEEN SET UP SINCE
+		TCF	CHECKUP		# THE LAST FRESH START OR RESTART.
+		CA	BIT13
+		ADS	RCSFLAGS	# BIT 13 IS 1.
+		CAF	PRIO27
+		TC	NOVAC		# SET UP JOB TO DO A LITTLE INITIALIZATION
+		EBANK=	AOSQ		#	AND EXECUTE 1/ACCS.
+		2CADR	1/ACCSET	# (WILL BRANCH TO MOREIDLE ON ACCSOKAY)
+
+CHECKUP		TC	CHEKBITS	# CHECK TO SEE IF LM DAP IS TO GO ON AND
+					#	DO ERROR DISPLAY.
+
+		CAE	DAPBOOLS	# IF 1/ACCS HAS NOT BEEN COMPLETED, IDLE.
+		MASK	ACCSOKAY	#	NOTE:	ONLY FRESH START AND RESTART
+		EXTEND			#		KNOCK THIS BIT DOWN.
+		BZF	MOREIDLE
+
+STARTDAP	TC	IBNKCALL	# ZERO ATTITUDE ERROR AND DESIRED RATES.
+		FCADR	ZATTEROR
+		CAF	ZERO		# ************ INITIALIZE: *************
+		TS	TJP
+		TS	TJU
+		TS	TJV
+		TS	OMEGAP		# RATES IN BODY (PILOT) COORDINATES.
+		TS	OMEGAQ
+		TS	OMEGAR
+		TS	TRAPEDP
+		TS	TRAPEDQ
+		TS	TRAPEDR
+		TS	AOSQ		# OFFSET ACCELERATION ESTIMATES.
+		TS	AOSQ +1
+		TS	AOSR
+		TS	AOSR +1
+		TS	ALPHAQ		# COPIES OF OFFSET ESTIMATES FOR DOWNLIST.
+		TS	ALPHAR
+		TS	NEGUQ
+		TS	NEGUR
+		TS	AOSQTERM	# QRAXIS RATE DERIVATION TERMS AND KALMAN
+		TS	AOSRTERM	# FILTER INITIALIZATION TERMS.
+		TS	QACCDOT		# DESCENT ACCELERATION DERIVATIVE EST.
+		TS	RACCDOT
+# Page 1412
+		TS	ALLOWGTS	# AOSTASK FLAG FOR QRAXIS RCS CONTROL USE.
+		TS	COTROLER	# DO TRYGTS ON FIRST PASS (WILL GO TO RCS)
+		TS	INGTS		# RECOGNIZE FIRST GTS PASS AS SUCH.
+		TS	QGIMTIMR	# STOP GIMBAL DRIVES.  (PROBABLY WOULD BE
+		TS	RGIMTIMR	#	GOOD ENOUGH JUST TO INACTIVATE TIMERS)
+		TS	OLDPMIN		# MINIMUM IMPULSE MODE ERASABLES
+		TS	OLDQRMIN
+		TS	PJETCTR		# INITIALIZE DOCKED JET INHIBITION
+		TS	UJETCTR		# COUNTERS
+		TS	VJETCTR
+CALLGMBL	EQUALS	BIT5		# RCSFLAGS INITIALIZATION.
+		CS	MANFLAG
+		MASK	RCSFLAGS	# NEGUQ(R) HAVE BEEN GENERATED.
+		TS	RCSFLAGS
+
+# SET UP "OLD" MEASURED CDU ANGLES:
+
+		EXTEND
+		DCA	CDUX		# OLDXFORP AND OLDYFORP
+		DXCH	OLDXFORP
+		CA	CDUZ
+		TS	OLDZFORQ
+		CS	RCSFLAGS
+		MASK	BIT12
+		ADS	RCSFLAGS	# BIT 12 SET TO 1.
+		CA	FOUR
+		TS	SKIPU
+		TS	SKIPV
+		CA	POSMAX
+		TS	TIME6
+		TS	T6NEXT
+		TS	T6FURTHA
+		CA	ZERO
+		TS	T6NEXT +1
+		TS	T6FURTHA +1
+		TS	NXT6ADR
+		TS	NEXTP
+		TS	NEXTU
+		TS	NEXTV
+		CS	TEN
+		TS	DAPZRUPT	# JASK NOT IN PROGRESS, INITIALIZE NEG.
+		CA	TWO
+		TS	NPTRAPS
+		TS	NQTRAPS
+		TS	NRTRAPS
+		EXTEND
+		DCA	PAXADIDL
+		DXCH	T5ADR
+SETTIME5	CAF	MS100
+		TS	TIME5
+# Page 1413
+		TCF	RESUME
+		EBANK=	AOSQ
+IDLERADR	2CADR	DAPIDLER
+
+MOREIDLE	TC	IBNKCALL	# CALCULATE Q,R-AXES ATTITUDE ERRORS.
+		CADR	QERRCALC
+
+		TC	IBNKCALL
+		CADR	CALCPERR	# CALCULATE P AXIS ATTITUDE ERRORS.
+
+SHUTDOWN	EXTEND
+		DCA	IDLERADR
+		DXCH	T5ADR
+
+		CAF	ZERO		# KILL ANY POSSIBLE JET REQUESTS
+		TS	NEXTP
+		TS	NEXTU
+		TS	NEXTV
+		EXTEND			# COMMAND JETS OFF.
+		WRITE	CHAN5
+		EXTEND
+		WRITE	CHAN6
+		CS	BGIM23		# TURN TRIM GIMBAL OFF
+		EXTEND
+		WAND	CHAN12
+		TCF	SETTIME5	# RETURN IN 100 MSEC.
+
+MANFLAG		OCT	03021
+BGIM23		OCTAL	07400
+		EBANK=	OMEGAP
+PAXADIDL	2CADR	PAXIS
+
+MS100		=	OCT37766
+COSMG		=	ITEMP1
+JUMPDSP		EXTEND			# TRANSFER TO BANK 20
+		DCA	DSPCADR		# FOR ATTITUDE ERROR DISPLAYS
+		DTCB
+
+		EBANK=	AK
+DSPCADR		2CADR	ALTDSPLY
+
+# Page 1414
+		BANK	20
+		SETLOC	DAPS3
+		BANK
+		COUNT*	$$/NEEDL
+
+# PROGRAM:	ALTDSPLY
+# MOD 0.	6 DEC 1967
+# AUTHOR:	CRAIG WORK, DON KEENE, MIT IL
+# MOD 3 BY DON KEENE AUG 1, 1968 -- MOVED PROGRAM TO BANK 20
+#
+# PROGRAM DESCRIPTION:
+#	ALTDSPLY REVERSES THE DSPLYALT BIT OF RCSFLAGS EACH TIME IT IS CALLED, WHICH IS PRESUMABLY EVERY 100 MS.
+# 	IF THE REVERSED BIT IS ONE, NEEDLER IS CALLED TO DISPLAY ATTITUDE ERRORS.  IF THE BIT IS ZERO, THE ATTITUDE ERR-
+#	ORS ARE CALCULATED AS 1) DAP FOLLOWING ERRORS, IF NEEDLFLG = 0, AND 2) TOTAL ATTITUDE ERRORS FOR NEEDLFLG = 1.
+#
+#
+# WARNING:	ALTDSPLY MAY ONLY BE CALLED WITH INTERRUPT INHIBITED
+#
+# WARNING:	EBANK MUST BE SET TO 6 WHEN USING THIS ROUTINE.
+#
+# INPUT:	RCSFLAGS AND	1) IF NEEDLFLG = 0, INPUT PERROR, QERROR, RERROR.
+#				2) IF NEEDLFLG = 1, INPUT CPHI,CTHETA,CPSI,CDUX,CDUY,CDUZ,M11,M21,M32,M22,M32.  (GPMATRIX)
+#
+#
+# OUTPUTS:	RCSFLAGS WITH DSPLYALT REVERSED, AK, AK1, AK2, + NEEDLER OUTPUTS.
+#
+# ENTRY:	TCF	ALTDSPLY
+#
+# EXIT:		TCF	CHEKMORE
+#
+# ALARM OR ABORT EXITS:	NONE
+#
+# SUBPROGRAMS CALLED:  NEEDLER, OVERSUB2
+#
+# DEBRIS:	A, L, AND NEEDLER DEBRIS.
+
+ALTDSPLY	CA	RCSFLAGS	# INVERT THE DISPLAY ALTERNATION BIT.
+		TS	L
+		CA	DSPLYALT
+		EXTEND
+		RXOR	LCHAN
+		TS	RCSFLAGS
+
+		MASK	DSPLYALT
+		CCS	A		# IS ALTERNATION FLAG ZERO?
+		TCF	NEEDLER
+
+		CAE	FLAGWRD0	# NEEDLFLG WILL INDICATE TOTAL OR DAP AT-
+# Page 1415
+		MASK	NEEDLBIT	# TITUDE ERROR DISPLAY REQUEST.
+		CCS	A
+		TCF	DSPLYTOT	# TOTAL ERROR IS NEEDED IN AK, AK +1, AK +2
+
+		CS	QERROR		# YES.  DISPLAY ATT ERRORS ON THE -BALL.
+		TS	AK +1		# ERROR COMPLEMENTS ARE INPUT TO NEEDLER.
+		CS	RERROR
+		TS	AK +2
+		CS	PERROR
+		XCH	AK
+
+		TCF	RETNMORE	# DISPLAY THESE THE NEXT TIME THROUGH
+
+# CALCULATE GIMBAL ANGLE TOTAL ERRORS, RESOLVE INTO PILOT AXES, STORE TOTAL ERRORS FOR NEEDLER.  Q-AXIS FIRST.
+
+DSPLYTOT	EXTEND
+		QXCH	ITEMP1		# SAVE Q FOR CHEKBITS RETURN.
+
+		CA	CTHETA		# DESIRED ATTITUDE, Y-AXIS, 2'S COMP.
+		EXTEND			# SUBTRACT CURRENT ATTITUDE.
+		MSU	CDUY		# DIFFERENCE SCALED AT PI, 1'S COMP.
+		TS	AK		# SAVE FOR R-ERROR CALCULATION.
+		EXTEND
+		MP	M21		# (CTHETA-CDUY)*M21 SCALED AT PI RADIANS.
+		XCH	AK +1		# STORE FIRST TERM OF Q ERROR.
+		CA	CPSI		# DESIRED ATTITUDE, Z-AXIS, 2'S COMP.
+		EXTEND			# SUBTRACT CURRENT ATTITUDE.
+		MSU	CDUZ		# DIFFERENCE SCALED AT PI, 1'S COMP.
+		TS	AK +2		# SAVE Z-AXIS TERM FOR R ERROR CALCULATION
+		EXTEND
+		MP	M22		# (CPSI-CDUZ)*M22, SCALED AT PI RADIANS.
+		AD	AK +1		# Q ERROR COMPLETE	   , AT PI RAD.
+		TC	OVERSUB2	# PIN NEEDLES IN CASE OF OVERFLOW
+		TS	AK +1
+
+# R ERROR CALCULATION NEXT.
+
+		CA	AK		# Y-AXIS DIFFERENCE STORED BY Q-AXIS CALC.
+		EXTEND
+		MP	M31		# (CTHETA-CDUY)*M31, SCALED AT PI RADIANS.
+		XCH	AK +2		# FIRST TERM OF R ERROR.
+					# Z-AXIS DIFFERENCE, STORED BY A CALC. IS
+		EXTEND			# RECOVERED BY THE EXCHANGE.
+		MP	M32		# (CPSI-CDUZ)*M32, SCALED AT PI RADIANS.
+		AD	AK +2		# R ERROR COMPLETE	   , AT PI RAD.
+		TC	OVERSUB2	# PIN NEEDLES IN CASE OF OVERFLOW.
+		TS	AK +2
+
+# NOW CALCULATE P ERROR.  (NOTE THAT M13 = 1, SCALED AT 1, SO THE MULTIPLICATION IS BY-PASSED.)
+# Page 1416
+		CA	AK		# Y-AXIS DIFFERENCE STORED BY Q AXIS CALC.
+		EXTEND
+		MP	M11		# (CTHETA-CDUY)*M11 SCALED AT PI RADIANS.
+		XCH	AK		# FIRST TERM OF P ERROR IN AK, AT PI RAD.
+		CAE	CPHI		# DESIRED ATTITUDE, X-AXIS, 2'S COMP.
+		EXTEND			# SUBTRACT CURRENT X ATTITUDE.
+		MSU	CDUX		# X-AXIS DIFFERENCE, 1'S COMP, AT PI RAD.
+
+# M13 = 1, SO BYPASS THE MULTIPLICATION.
+#		EXTEND
+#		MP	M13		# (CPHI-CDUX)*M13 SCALED AT PI RADIANS.
+
+		AD	AK		# P ERROR COMPLETE	, SCALED AT PI RAD
+		TC	OVERSUB2	# PIN NEEDLES IN CASE OF OVERFLOW.
+		TS	AK
+
+		EXTEND
+		QXCH	ITEMP1		# RESTORE Q FOR CHEKBITS RETURN.
+
+		TCF	RETNMORE	# DISPLAY THESE THE NEXT TIME THROUGH
+
+# Page 1417
+# FDAI ATTITUDE ERROR DISPLAY SUBROUTINE
+#
+# PROGRAM DESCRIPTION:		D. KEENE	5/24/67
+# MOD 1 BY CRAIG WORK, 12 DEC 67
+# MOD 2 BY CRAIG WORK, 6 APRIL 68, CONVERTS ATTITUDE ERROR DISPLAY SCALING FROM 16 7/8 DEG. TO 42 3/16 DEGREES.
+#
+# THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS)
+# IN THE CDUS.  CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT
+# OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES
+# THE DACS.
+#
+# CALLING SEQUENCE:
+#	DURING THE INITIALIZATION SECTION OF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE
+#	TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM:
+#		CS	RCSFLAGS	# IN EBANK6
+#		MASK	BIT3
+#		ADS	RCSFLAGS
+#	THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANSFERRED TO THE FOLLOWING LOCATIONS IN EBANK6:
+#		AK	SCALED 180 DEGREES	NOTE:	THESE LOCATIONS ARE SUBJECT
+#		AK1	SCALED 180 DEGREES		TO CHANGE
+#		AK2	SCALED 180 DEGREES
+#	FULL SCALED DEFLECTION OF THE NEEDLES CORRESPONDS TO 5 1/16 DEGREES, WHILE 384 BITS IN THE IMU ERROR COUNTER
+#	CORRESPONDS TO 42 3/16 DEGREES.  (DAC MAXIMUM CAPACITY IS 384 BITS.)  46 BITS EFFECTIVELY PIN THE NEEDLES.
+#
+#	A CALL TO NEEDLER WILL THE UPDATE THE DISPLAY:
+#		INHINT
+#		TC	IBNKCALL	# NOTE:  EBANK SHOULD BE SET TO E6
+#		CADR	NEEDLER
+#		RELINT
+#	THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED.  AT LEAST 3 PASSES THRU THE PROGRAM ARE
+#	REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS.
+#	NOTE:  EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50 MS. TO ASSURE PROPER RELAY SEQUENCING.
+#
+# ERASABLES USED:
+#	AK		CDUXCMD
+#	AK1		CDUYCMD
+#	AK2		CDUZCMD
+#	EDRIVEX		A,L,Q
+#	EDRIVEY		T5TEMP
+#	EDRIVEZ		DINDX
+# Page 1418
+#
+# SWITCHES:		RCSFLAGS  BITS 3,2
+#
+# I/O CHANNELS:		CHAN12	BIT 4 (COARSE ALIGN -- READ ONLY)
+#			CHAN12	BIT 6 (IMU ERROR COUNTER ENABLE)
+#			CHAN14	BIT 13,14,15 (DAC ACTIVITY)
+#
+# SIGN CONVENTION:	AK = THETAC - THETA
+#			WHERE	THETAC = COMMAND ANGLE
+#				THETA = PRESENT ANGLE
+
+NEEDLER		CA	RCSFLAGS
+		MASK	SIX
+		EXTEND
+		BZF	NEEDLES3
+		MASK	BIT3
+		EXTEND
+		BZF	NEEDLER2	# BIT3 = 0, BIT2 = 1
+
+		CS	BIT6		# FIRST PASS BIT3 = 1
+		EXTEND			# DISABLE IMU ERROR COUNTER TO ZERO DACS
+		WAND	CHAN12		# MUST WAIT AT LEAST 60 MS BEFORE
+NEEDLE11	CS	ZERO		# ENABLING COUNTERS.
+		TS	AK		# ZERO THE INPUTS ON FIRST PASS
+		TS	AK1
+		TS	AK2
+		TS	EDRIVEX		# ZERO THE DISPLAY REGISTERS
+		TS	EDRIVEY
+		TS	EDRIVEZ
+		TS	CDUXCMD		# ZERO THE OUT COUNTERS
+		TS	CDUYCMD
+		TS	CDUZCMD
+		CS	SIX		# RESET RCSFLAGS FOR PASS2
+		MASK	RCSFLAGS
+		AD	BIT2
+		TS	RCSFLAGS
+		TCF	RETNMORE
+
+NEEDLER2	CAF	BIT6		# ENABLE IMU ERROR COUNTERS
+		EXTEND
+		WOR	CHAN12
+		CS	SIX		# RESET RCSFLAGS TO DISPLAY ATTITUDE
+		MASK	RCSFLAGS	# ERRORS.  WAIT AT LEAST 4 MS FOR
+		TS	RCSFLAGS	# RELAY CLOSURE.
+		TCF	RETNMORE
+
+NEEDLES3	CAF	BIT6		# CHECK TO SEE IF IMU ERROR COUNTER
+		EXTEND			# IS ENABLED
+		RAND	CHAN12
+# Page 1419
+		CCS	A		# IF NOT, RE-INITIALIZE NEEDLER.
+		TCF	NEEDLES
+
+		CS	RCSFLAGS	# SET UP INITIALIZATION FLAG IN RCSFLAGS.
+		MASK	BIT3
+		ADS	RCSFLAGS
+		TCF	RETNMORE
+
+NEEDLES		CAF	TWO
+DACLOOP		TS	DINDX
+		CS	ONETENTH	# RESCALE INPUTS TO + OR - 1800 DEGREES.
+		EXTEND
+		INDEX	DINDX
+		MP	AK
+		TS	L
+		CCS	A
+		CA	DACLIMIT
+		TCF	+2
+		CS	DACLIMIT
+		AD	L
+		TS	T5TEMP		# OVFLO CHK
+		TCF	+4
+		INDEX	A		# ON OVERFLOW LIMIT OUTPUT TO +-384
+		CAF	DACLIMIT
+		TS	L
+		INDEX	DINDX
+		CS	EDRIVEX		# CURRENT VALUE OF DAC
+		AD	L
+		INDEX	DINDX
+		ADS	CDUXCMD
+		INDEX	DINDX
+		LXCH	EDRIVEX
+		CCS	DINDX
+		TCF	DACLOOP
+		CAF	13,14,15
+		EXTEND
+		WOR	CHAN14		# SET DAC ACTIVITY BITS
+		TCF	RETNMORE
+
+		DEC	-384
+DACLIMIT	DEC	16000
+		DEC	384
+
+ONETENTH	OCT	03146		# DECIMAL +0.1, SCALED AT 1.
+DSPLYALT	EQUALS	BIT4		# 100 MS ALTERNATION BIT IN RCSFLAGS
+
+OVERSUB2	TS	7		# RETURNS A UNCHANGED OR LIMITED TO
+		TC	Q		# POSMAX OR NEGMAX IF A HAS OVERFLOW
+		INDEX	A
+# Page 1420
+		CS	LIMITS		# DUPLICATE CODING IN BANK 16
+		TC	Q
+
+RETNMORE	EXTEND			# RETURN TO CHEKMORE
+		DCA	MORECADR
+		DTCB
+
+		EBANK=	AOSQ
+MORECADR	2CADR	CHEKMORE
+
diff --git a/DAP_INTERFACE_SUBROUTINES.s b/DAP_INTERFACE_SUBROUTINES.s
new file mode 100644
index 0000000..689e466
--- /dev/null
+++ b/DAP_INTERFACE_SUBROUTINES.s
@@ -0,0 +1,176 @@
+# Copyright:	Public domain.
+# Filename:	DAP_INTERFACE_SUBROUTINES.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	1406-1409
+# Mod history:  2009-05-10 SN   (Sergio Navarro).  Started adapting
+#				from the Luminary131/ file of the same
+#				name, using Luminary099 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 001 of AGC program LMY99 by NASA 2021112-61
+#	16:27 JULY 14, 1969 
+
+# Page 1406
+		BANK	20
+		SETLOC	DAPS3
+		BANK
+
+		EBANK=	CDUXD
+		COUNT*	$$/DAPIF
+
+# MOD 0		DATE	11/15/66	BY GEORGE W. CHERRY
+# MOD 1			 1/23/67	MODIFICATION BY PETER ADLER
+#
+# FUNCTIONAL DESCRIPTION
+#	HEREIN IS A COLLECTION OF SUBROUTINES WHICH ALLOW MISSION CONTROL PROGRAMS TO CONTROL THE MODE
+#	AND INTERFACE WITH THE DAP.
+#
+# CALLING SEQUENCES
+#	IN INTERRUPT OR WITH INTERRUPT INHIBITED
+#		TC	IBNKCALL
+#		FCADR	ROUTINE
+#	IN A JOB WITHOUT INTERRUPT INHIBITED
+#		INHINT
+#		TC	IBNKCALL
+#		FCADR	ROUTINE
+#		RELINT
+#
+# OUTPUT
+#	SEE INDIVIDUAL ROUTINES BELOW
+#
+# DEBRIS
+#	A, L, AND SOMETIMES MDUETEMP			ODE	NOT IN PULSES MODE
+
+# Page 1407
+# SUBROUTINE NAMES:
+#	SETMAXDB, SETMINDB, RESTORDB, PFLITEDB
+# MODIFIED:	30 JANUARY 1968 BY P. S. WEISSMAN TO CREATE RESTORDB.
+# MODIFIED:	1 MARCH 1968 BY P. S. WEISSMAN TO SAVE EBANK AND CREATE PFLITEDB
+#
+# FUNCTIONAL DESCRIPTION:
+#	SETMAXDB -- SET DEADBAND TO 5.0 DEGREES
+#	SETMINDB -- SET DEADBAND TO 0.3 DEGREE
+#	RESTORDB -- SET DEADBAND TO MAX OR MIN ACCORDING TO SETTINGS OF DBSELECT BIT OF DAPBOOLS
+#	PFLITEDB -- SET DEADBAND TO 1.0 DEGREE AND ZERO THE COMMANDED ATTITUDE CHANGE AND COMMANDED RATE
+#
+#	ALL ENTRIES SET UP A NOVAC JOB TO DO 1/ACCS SO THAT THE TJETLAW SWITCH CURVES ARE POSITIONED TO
+#	REFLECT TEH NEW DEADBAND.  IT SHOULD BE NOTED THAT THE DEADBAND REFERS TO THE ATTITUDE IN THE P-, U-, AND V-AXES.
+#
+# SUBROUTINE CALLED:	NOVAC
+#
+# CALLING SEQUENCE:	SAME AS ABOVE
+#			OR	TC RESTORDB +1    FROM ALLCOAST
+#
+# DEBRIS:		A, L, Q, RUPTREG1, (ITEMPS IN NOVAC)
+
+RESTORDB	CAE	DAPBOOLS	# DETERMINE CREW-SELECTED DEADBAND.
+		MASK	DBSELECT
+		EXTEND
+		BZF	SETMINDB
+
+SETMAXDB	CAF	WIDEDB		# SET 5 DEGREE DEADBAND.
+	+1	TS	DB
+
+		EXTEND			# SET UP JOB TO RE-POSITION SWITCH CURVES.
+		QXCH	RUPTREG1
+CALLACCS	CAF	PRIO27
+		TC	NOVAC
+		EBANK=	AOSQ
+		2CADR	1/ACCJOB
+
+		TC	RUPTREG1	# RETURN TO CALLER.
+
+SETMINDB	CAF	NARROWDB	# SET 0.3 DEGREE DEADBAND.
+		TCF	SETMAXDB +1
+
+PFLITEDB	EXTEND			# THE RETURN FROM CALLACCS IS TO RUPTREG1.
+		QXCH	RUPTREG1
+		TC	ZATTEROR	# ZERO THE ERRORS AND COMMANDED RATES.
+		CAF	POWERDB		# SET DB TO 1.0 DEG.
+		TS	DB
+		TCF	CALLACCS	# SET UP 1/ACCS AND RETURN TO CALLER.
+NARROWDB	OCTAL	00155		# 0.3 DEGREE SCALED AT 45.
+# Page 1408
+WIDEDB		OCTAL	03434		# 5.0 DEGREES SCALED AT 45.
+POWERDB		DEC	.02222		# 1.0 DEGREE SCALED AT 45.
+
+ZATTEROR	CAF	EBANK6
+		XCH	EBANK
+		TS	L		# SAVE CALLERS EBANK IN L.
+		CAE	CDUX
+		TS	CDUXD
+		CAE	CDUY
+		TS	CDUYD
+		CAE	CDUZ
+		TS	CDUZD
+		TCF	STOPRATE +3
+
+STOPRATE	CAF	EBANK6
+		XCH	EBANK
+		TS	L		# SAVE CALLERS EBANK IN L.
+	+3	CAF	ZERO
+		TS	OMEGAPD
+		TS	OMEGAQD
+		TS	OMEGARD
+		TS	DELCDUX
+		TS	DELCDUY
+		TS	DELCDUZ
+		TS	DELPEROR
+		TS	DELQEROR
+		TS	DELREROR
+		LXCH	EBANK		# RESTORE CALLERS EBANK.
+		TC	Q
+
+# SUBROUTINE NAME:	ALLCOAST
+# WILL BE CALLED BY FRESH STARTS AND ENGINE OFF ROUTINES.
+#
+# CALLING SEQUENCE:	(SAME AS ABOVE)
+#
+# EXIT:			RETURN TO Q.
+#
+# SUBROUTINES CALLED:	STOPRATE, RESTORDB, NOVAC
+#
+# ZERO:			(FOR ALL AXES) AOS, ALPHA, AOSTERM, OMEGAD, DELCDU, DELEROR
+#
+# OUTPUT:		DRIFTBIT/DAPBOOLS, OE, JOB TO DO 1/ACCS
+#
+# DEBRIS:		A, L, Q, RUPTREG1, RUPTREG2, (ITEMPS IN NOVAC)
+
+ALLCOAST	EXTEND			# SAVE Q FOR RETURN
+		QXCH	RUPTREG2
+# Page 1409
+		TC	STOPRATE	# CLEAR RATE INTERFACE.  RETURN WITH A=0
+		LXCH	EBANK		# AND L=EBANK6.  SAVE CALLER'S EBANK.
+		TS	AOSQ
+		TS	AOSQ +1
+		TS	AOSR
+		TS	AOSR +1
+		TS	ALPHAQ		# FOR DOWNLIST.
+		TS	ALPHAR
+		TS	AOSQTERM
+		TS	AOSRTERM
+		LXCH	EBANK		# RESTORE EBANK (EBANK6 NO LONGER NEEDED)
+
+		CS	DAPBOOLS	# SET UP DRIFTBIT
+		MASK	DRIFTBIT
+		ADS	DAPBOOLS
+		TC	RESTORDB +1	# RESTORE DEADBANK TO CREW-SELECTED VALUE.
+
+		TC	RUPTREG2	# RETURN.
+
diff --git a/DISPLAY_INTERFACE_ROUTINES.s b/DISPLAY_INTERFACE_ROUTINES.s
new file mode 100644
index 0000000..8eb4aba
--- /dev/null
+++ b/DISPLAY_INTERFACE_ROUTINES.s
@@ -0,0 +1,1485 @@
+# Copyright:    Public domain.
+# Filename:     DISPLAY_INTERFACE_ROUTINES.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 1452-1484
+# Contact:      Ron Burkey <info@sandroid.org>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-07 RSB	Adapted from Colossus249 file of the same
+#				name, and page images. Corrected various 
+#				typos in the transcription of program 
+#				comments, and these should be back-ported  
+#				to Colossus249.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 1452
+# DISPLAYS CAN BE CLASSIFIED INTO THE FOLLOWING CATEGORIES --
+#	1.  PRIORITY DISPLAYS -- DISPLAYS WHICH TAKE PRIORITY OVER ALL OTHER DISPLAYS.  USUALLY THESE DISPLAYS ARE SENT
+#	    OUT UNDER CRITICAL ALARM CONDITIONS.
+#	2.  EXTENDED VERB DISPLAYS -- ALL EXTENDED VERBS AND MARK ROUTINES SHOULD USE EXTENDED VERB (MARK) DISPLAYS.
+#	3.  NORMAL DISPLAYS -- ALL MISSION PROGRAM DISPLAYS WHICH INTERFACE WITH THE ASTRONAUT DURING THE NORMAL
+#	    SEQUENCE OF EVENTS.
+#	4.  MISC. DISPLAYS -- ALL DISPLAYS NOT HANDLED BY THE DISPLAY INTERFACE ROUTINES.  THESE INCLUDE SUCH DISPLAYS AS
+#	    MM DISPLAYS AND SPECIAL PURPOSE DISPLAYS HANDLED BY PINBALL.
+#	5.  ASTRONAUT INITIATED DISPLAYS -- ALL DISPLAYS INITIATED EXTERNALLY.
+#
+# THE FOLLOWING TERMS ARE USED TO DESCRIBE THE STATUS OF DISPLAYS --
+#	1.  ACTIVE -- THE DISPLAY WHICH IS (1) BEING DISPLAYED TO THE ASTRONAUT AND WAITING FOR A RESPONSE OR
+#	    (2) WAITING FIRST IN LINE FOR THE ASTRONAUT TO FINISH USING THE DSKY OR (3) BEING DISPLAYED ON THE DSKY
+#	    BUT NOT WAITING FOR A RESPONSE.
+#	2.  INACTIVE -- A DISPLAY WHICH HAS (1) BEEN ACTIVE BUT WAS INTERRUPTED BY A DISPLAY OF HIGHER PRIORITY,
+#	    (2) BEEN PUT INTO THE WAITING LIST AT TIME IT WAS REQUESTED DUE TO THE FACT A HIGHER PRIORITY DISPLAY
+#	    WAS ALREADY DOING, (3) BEEN INTERRUPTED BY THE ASTRONAUT (CALLED A PINBRANCH CONDITION, SINCE THIS TYPE
+#	    OF INACTIVE DISPLAY IS USUALLY REACTIVATED ONLY BY PINBALL) OR (4) A DISPLAY WHICH HAS FINISHED BUT STILL
+#	    HAS INFO SAVED FOR RESTART PURPOSES.
+#
+# DISPLAY PRIORITIES WORK AS FOLLOWS --
+#	INTERRUPTS --
+#		1.  THE ASTRONAUT CAN INTERRUPT ANY DISPLAY WITH AN EXTERNAL DISPLAY REQUEST.
+#		2.  INTERNAL DISPLAYS CAN NOT BE SENT OUT WHEN THE ASTRONAUT IS USING THE DSKY.
+#		3.  PRIORITY DISPLAYS INTERRUPT ALL OTHER TYPES OF INTERNAL DISPLAYS.  A PRIORITY DISPLAY INTERRUPTING ANOTHER
+#		    PRIORITY DISPLAY WILL CAUSE AN ABORT UNLESS BIT14 IS SET FOR THE LINUS ROUTINE.
+#		4.  A MARK DISPLAY INTERRUPTS ANY NORMAL DISPLAY.
+#		5.  A MARK THAT INTERRUPTS A MARK COMPLETELY REPLACES IT.
+#
+# 	ORDER OF WAITING DISPLAYS --
+#		1.  ASTRONAUT
+#		2.  PRIORITY
+#		3.  INTERRUPTED MARK
+#		4.  INTERRUPTED NORMAL
+#		5.  MARK TO BE REQUESTED (SEE DESCRIPTION OF ENDMARK)
+#		6.  MARK WAITING
+#		7.  NORMAL WAITING
+#
+# Page 1453
+# THE DISPLAY ROUTINES ARE INTENDED TO SERVE AS AN INTERFACE BETWEEN THE USER AND PINBALL.  THE
+# FOLLOWING STATEMENTS CAN BE MADE ABOUT NORMAL DISPLAYS AND PRIORITY DISPLAYS (A DESCRIPTION OF MARK ROUTINES
+# WILL FOLLOW LATER):
+#	1.  ALL ROUTINES THAT END IN R HAVE AN IMMEDIATE RETURN TO THE USER.  FOR ALL FLASHING DISPLAYS THIS RETURN
+#	    IS TO THE USER'S CALL CADR +4.  FOR THE ONLY NON-FLASHING IMMEDIATE RETURN DISPLAY (GODSPR) THIS RETURN
+#	    IS TO THE USER'S CALLING LOC +1.
+#	2.  ALL ROUTINES NOT ENDING IN R DO NOT DO AN IMMEDIATE RETURN TO THE USER.
+#	3.  ALL ROUTINES THAT END IN R START A SEPARATE JOB (MAKEPLAY) WITH USER'S JOB PRIORITY.
+#	4.  ALL ROUTIENS NOT ENDING IN R BRANCH DIRECTLY TO MAKEPLAY WHICH MAKES THESE DISPLAYS A PART OF THE
+#	    USER'S JOB.
+#	5.  ALL DISPLAY ROUTIENS ARE CALLED VIA BANKCALL.
+#	6.  TO RESTART A DISPLAY THE USER WILL GENERALLY USE A PHASE OF ONE WITH DESIRED RESTART GROUP (SEE
+#	    DESCRIPTION OF RESTARTS).
+#	7.  ALL FLASHING DISPLAYS HAVE 3 RETURNS TO THE USER FROM ASTRONAUT RESPOSES.  A TERMINATE (V34) BRANCHES
+#	    TO THE USER'S CALL CADR +1.  A PROCEED (V33) BRANCHES TO THE USER'S CALL CADR +2.  AN ENTER OR RECYCLE
+#	    (V32) BRANCHES TO THE USER'S CALL CADR +3.
+#	8.  ALL ROUTINES MUST BE USED UNDER EXECUTIVE CONTROL
+#
+# A DESCRIPTION OF EACH ROUTINE WITH AN EXAMPLE FOLLOWS:
+
+#	GODSP IS USED TO DISPLAY A VERB NOUN ARRIVING IN A.  NO RETURN IS MADE TO THE USER.
+#		1.  GODSP IS NOT RESTARTABLE
+#		2.  A VERB PASTE WITH GODSP ALWAYS TURNS ON THE FLASH.
+#				CAF	VXXNYY
+#				TC	BANKCALL
+#				CADR	GODSP
+#			VXXNYY	OCT	OXXYY
+
+#	GODSPR IS THE SAME AS GODSP ONLY RETURN IS TO THE USER.
+#				CAF	VXXNYY
+#				TC	BANKCALL
+#				CADR	GODSPR
+#				...	...		# IMMEDIATE RETURN OF GODSPR
+
+#	GOFLASH DISPLAYS A FLASHING VERB NOUN WITH NO IMMEDIATE RETURN TO THE USER.  3 RETURNS ARE POSSIBLE FORM
+#	THE ASTRONAUT (SEE NO. 7 ABOVE).
+#				CAF	VXXNYY		# VXX NYY WILL BE A FLASHING VERB NOUN.
+#				TC	BANKCALL
+#				CADR	GOFLASH
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER OR RECYCLE RETURN
+
+#	GOPERF1 IS ENTERED WITH DESIRED CHECKLIST VALUE IN A.  GOPERF1 WILL DISPLAY THIS VALUE IN R1 BY MEANS OF A
+# Page 1454
+# 	V01 N25.  A FLASHING PLEASE PERFORM ON CHECKLIST (V50 N25) IS THEN DISPLAYED.  NO IMMEDIATE RETURN IS MADE TO
+# 	USER (SEE NO. 7 ABOVE).
+#	GOPERF1 BLANKS REGISTERS R2 AND R3
+#				CAF	OCTXX		# CODE FOR CHECKLIST VALUE XX
+#				TC	BANKCALL
+#				CADR	GOPERF1
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER RETURN
+#	GOPERF2 IS ENTERED WITH A VARIABLE NOUN AND V01 (V00 FOR N10 OR N11) IN A.  GOPERF2 WILL FIRST DISPLAY THE
+# 	REQUESTED NOUN BY MEANS OF A V01NYY OR A V00NYY.  PLEASE PERFORM ON NOUN (V50 NYY) THEN BECOMES A FLASHING
+#	DISPLAY.  NO IMMEDIATE RETURN IS MADE TO THE USER (SEE NO. 7 ABOVE).
+#	GOPERF2 DOES NOT BLANK ANY REGISTERS
+#				CAF	VXXNYY		# VARIABLE NOUN YY. XX=0 OR 01.
+#				TC	BANKCALL
+#				CADR	GOPERF2
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER RETURN
+#	GOPERF3 IS USED FOR A PLEASE PERFORM ON A PROGRAM NUMBER.  THE DESIRED PROGRAM NO. IS ENTERED IN A.  GOPERF3
+#	DISPLAYS THE NO. BY MEANS OF A V06 N07 FOLLOWED BY A FLASHING V50 N07 FOR A PLEASE PERFORM.  NO IMMEDIATE RETURN
+#	IS MADE TO THE USER (SEE NO. 7 ABOVE).
+#	GOPERF3 BLANKS REGISTERS R2 AND R3
+#				CAF	DECXX		# REQUEST PERFORM ON PXX
+#				TC	BANKCALL
+#				CADR	GOPERF3
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER RETURN
+
+#	GOPERF4 IS USED FOR A PLEASE PERFORM ON AN OPTION.  THE DESIRED OPTION IS ENTERED IN A AND STORED IN OPTION1.
+#	GOPERF4 DISPLAYS R1 AND R2 BY MEANS OF A V04N06 FOLLOWED BY A FLASHING V50N06 FOR A PLEASE PERFORM.  NO
+#	IMMEDIATE RETURN IS MADE TO THE USER (SEE NO. 7 ABOVE).
+#				CAF	OCTXX		# REQUEST PERFORM ON OPTION XX
+#				TC	BANKCALL
+#				CADR	GOPERF4
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER RETURN
+#	GOPERF4 BLANKS REGISTER R3.
+#
+# Page 1455
+#	GODSPRET IS USED TO DISPLAY A VERB NOUN ARRIVING IN A WITH A RETURN TO THE USER AFTER THE DISPLAY HAS BEEN SENT
+#	OUT.
+#				CAF	VXXXNYY
+#				TC	BANKCALL
+#				CADR	GODSPRET
+#				...	...		# RETURN TO USER.
+
+#	REGODSP IS USED TO DISPLAY A VERB NOUN ARRIVING IN A.  REGODSP IS THE SAME AS GODSP ONLY REGODSP REPLACES AND
+# 	ACTIVE NORMAL DISPLAY IF ONE WAS ACTIVE.
+#				CAF	VXXNYY
+#				TC	BANKCALL
+#				CADR	REGODSP
+
+#	REFLASH IS THE SAME AS GOFLASH ONLY REFLASH REPLACES ANY ACTIVE NORMAL DISPLAY IF ONE WAS ACTIVE.
+#				CAF	VXXNYY		# VXX NYY WILL BE A FLASHING VERB NOUN
+#				TC	BANKCALL
+#				CADR	REFLASH
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER RETURN
+
+# 	GOFLASHR IF SAME AS GOFLASH ONLY AN IMMEDIATE RETURN IS MADE TO THE USER'S CALL CADR +4.
+#				CAF	VXXNYY
+#				TC	BANKCALL
+#				CADR	GOFLASHR
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER OR RECYCLE RETURN
+#				...	...		# IMMEDIATE RETURN FROM GOFLASHR
+
+#	GOPERF1R IS THE SAME AS GOPERF1 ONLY GOPERF1R HAS AN IMMEDIATE RETURN TO USER'S CALL CADR +4.
+#	GOPERF1R BLANKS REGISTERS R2 AND R3
+#				CAF	OCTXX		# CODE FOR CHECKLIST VALUE XX.
+#				TC	BANKCALL
+#				CADR	GOPERF1R
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER RETURN
+#				...	...		# IMMEDIATE RETURN FROM GOPERF1R
+
+#	GOPERF2R IS THE SAME AS GOPERF2 ONLY AN IMMEDIATE RETURN IS MADE TO USER'S CALL CADR +4.
+# Page 1456
+#	GOPERF2R DOES NOT BLANK ANY REGISTERS
+#				CAF	VXXXNYY		# VARIABLE NOUN YY REQUESTED.  XX=00 OR 01
+#				TC	BANKCALL
+#				CADR	GOPERF2R
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER RETURN
+#				...	...		# IMMEDIATE RETURN HERE FROM GOPERF2R
+
+# 	GOPERF3R IS THE SAME AS GOPERF3 ONLY AN IMMEDIATE RETURN IS MADE TO USER'S CALL CADR +4.
+#	GOPERF3R BLANKS REGISTERS R2 AND R3
+#				CAF	PROGXX		# PERFORM PROGRAM XX
+#				TC	BANKCALL
+#				CADR	GOPERF3R
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER RETURN
+#				...	...		# GOPERF3R IMMEDIATELY RETURNS HERE
+
+#	GOPERF4R IS THE SAME AS GOPERF4 ONLY AN IMMEDIATE RETURN IS MADE TO USER'S CALL CADR +4.
+#				CAF	OCTXX		# REQUEST PERFORM ON OPTIONXX
+#				TC	BANKCALL
+#				CADR	GOPERF4R
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER RETURN
+#				...	...		# IMMEDIATE RETURN TO USER
+#	GOPERF4R BLANKS REGISTER R3.
+#
+#	REFLASHR IS THE SAME AS REFLASH ONLY AN IMMEDIATE RETURN IS MADE TO THE USER'S CALL CADR +4.
+#				CAF	VXXNYY		# VXX NYY WILL BE A FLASHING VERB NOUN
+#				TC	BANKCALL
+#				CADR	REFLASHR
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER RETURN
+#				...	...		# IMMEDIATE RETURN TO USER
+
+#	REGODSPR IS THE SAME AS REGODSP ONLY A RETURN (IMMEDIATE) IS MADE TO THE USER.
+# Page 1457
+#				CAF	VXXNYY
+#				TC	BANKCALL
+#				CADR	REGODSPR
+#				...	...		# IMMEDIATE RETURN TO USER
+
+# Page 1458
+#	GOMARK IS USED TO DISPLAY A MARK VERB NOUN ARRIVING IN A.  NO RETURN IS MADE TO THE USER.
+#	GOXDSP = GOMARK
+#				CAF	VXXNYY		# VXXNYY CONTAINS VERB AND NOUN
+#				TC	BANKCALL
+#				CADR	GOMARK		# OTHER EXTENDED VERBS USE CADR GOXDSP
+
+#	GOMARKR IS THE SAME AS GOMARK ONLY RETURN IS TO THE USER.
+#	GOXDSPR = GOMARKR
+#				CAF	VXXNYY
+#				TC	BANKCALL
+#				CADR	GOMARKR		# OTHER EXTENDED VERBS USE CADR GOXDSPR
+#				...	...		# IMMEDIATE RETURN OF GOMARKR
+
+#	GOMARKF DISPLAYS A FLASHING MARK VERB NOUN WITH NO IMMEDIATE RETURN TO THE USER.  3 RETURNS ARE POSSIBLE FORM
+#	THE ASTRONAUT (SEE NO. 7 ABOVE).
+#	GOXDSPF = GOMARKF
+#				CAF	VXXNYY		# VXXNYY WILL BE A FLASHING MARK VERB NOUN
+#				TC	BANKCALL
+#				CADR	GOMARKFR	# OTHER EXTENDED VERBS USE CADR GOXDSPFR
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER OR RECYCLE RETURN
+#				...	...		# IMMEDIATE RETURN TO THE USER
+
+#	GOMARKFR IS THE SAME AS GOMARKF ONLY AN IMMEDIATE RETURN IS MADE TO THE USER CALL CADR +4.
+#	GOXDSPFR = GOMARKFR
+#				CAF	VXXNYY		# FLASHING MARK VERB NOUN
+#				TCF	BANKCALL
+#				CADR	GOMARKFR	# OTHER EXTENDED VERBS USE CADR GOXDSPFR
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER OR RECYCLE RETURN
+#				
+#				...	...		# IMMEDIATE RETURN TO THE USER
+
+#	GOMARK1 IS USED FOR A PLEASE PERFORM ON A MARK REQUEST WITH ONLY 1 ASTRONAUT RETURN TO THE USER.  NO IMMEDIATE
+#	RETURN IS MADE.  THE DESIRED MARK PLEASE PERFORM VERB AND DESIRED NOUN IS ENTERED IN A.  GOMARK1 DISPLAYS R1, R2, R
+#	MEANS OF A V05NYY FOLLOWED BY A FLASHING V5XNYY FOR A PLEASE PERFORM.  THE ASTRONAUT WILL RESPOND WITH A MARK
+#	OR MARK REJECT OR AN ENTER.  THE ENTER IS THE ONLY ASTRONAUT RESPONSE THAT WILL COME BACK TO THE USER.
+#				CAF	V5XNYY		# X=1,2,3,4	YY=NOUN
+#				TC	BANKCALL
+# Page 1459
+#				CADR	GOMARK1
+#				...	...		# ENTER RETURN
+
+#	*** IF BLANKING DESIRED ON NON-R ROUTINES, NOTIFY DISPLAYER.
+#
+#	GOMARK1R IS THE SAME AS A GOMARK1 ONLY AN IMMEDIATE RETURN IS MADE TO THE USER'S CALL CADR +2.
+#				CAF	V5XNYY		# X=1,2,3,4	YY=NOUN
+#				TC	BANKCALL
+#				CADR	GOMARK1R
+#				...	...		# ASTRONAUT ENTER RETURN
+#				...	...		# IMMEDIATE RETURN TO USER
+
+#	GOMARK2 IS THE SAME AS GOMARK1 ONLY 3 RETURNS ARE MADE TO THE USER FROM THE ASTRONAUT.
+#				CAF	V5XNYY		# X=1,2,3,4	YY=NOUN
+#				TC	BANKCALL
+#				CADR	GOMARK2
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER RETURN
+
+#	GOMARK2R IS THE SAME AS GOMARK1R ONLY 3 ASTRONAUT RETURNS ARE MADE TO THE USER.
+#				CAF	V5XNYY		# X=0,1,2,3,4	YY=NOUN
+#				TCF	BANKCALL
+#				CADR	GOMARK24
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER RETURN
+#				...	...		# IMMEDIATE RETURN TO THE USER.
+
+#	GOMARK3 IS USED FOR A PLEASE PERFORM ON A MARK REQUEST WITH A 3 COMP. DEC DISPLAY.  THE DESIRED MARK PLEASE
+#	PERFORM VERB AND NOUN ARE ENTERED IN A.  GOMARK3 DISPLAYS R1, R2, R3 BY MEANS OF A V06NYY FOLLOWED BY A FLASHING
+#	V5XNYY FOR A PLEASE PERFORM.  GOMARK3 HAS 3 ASTRONAUT RETURNS TO THE USER WITH NO IMMEDIATE RETURN.
+#				CAF	V5XNYY		# X=1,2,3,4	YY=NOUN
+#				TC	BANKCALL
+#				CADR	GOMARK3
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER RETURN
+
+#	GOMARK4 IS THE SAME AS GOMARK3 ONLY R2 AND R3 ARE BLANKED AND R1 IS DISPLAYED IN OCTAL.
+#				CAF	V5XNYY		# X=1,2,3,4	YY=NOUN
+#				TC	BANKCALL
+#				CADR	GOMARK4
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+# Page 1460
+#			...	...			# ENTER RETURN
+#	EXDSPRET IS USED TO DISPLAY A VERB NOUN ARRIVING IN A WITH A RETURN MADE TO THE USER AFTER THE DISPLAY HAS BEEN
+#	SENT OUT.
+#				CAF	VXNYY
+#				TC	BANKCALL
+#				CADR	EXDSPRET
+#				...	...		# RETURN TO USER
+
+#	KLEENEX CLEANS OUT ALL MARK DISPLAYS (ACTIVE AND INACTIVE). A RETURN IS MADE TO THE USER AFTER THE MARK DISPLAYS
+#	HAVE BEEN CLEANED OUT.
+#				TC	BANKCALL
+#				CADR	KLEENEX
+#				...	...		# RETURN TO USER
+
+#	MARKBRAN IS A SPECIAL PURPOSE ROUTINE USED FOR SAVING JOB VAC AREAS (SEE DESCRIPTION OF MARKBRAN BELOW).
+#				TC	BANKCALL
+#				CADR	MARKBRAN
+#				...	...		# BAD RETURN IF MARK DISPLAY NOT ACTIVE
+#							# (GOOD RETURN TO IMMEDIATE RETURN LOC OF
+#							# LAST FLASHING MARK R ROUTINE)
+
+#	PINBRNCH REESTABLISHES THE LAST ACTIVE FLASHING DISPLAY.  IF THERE IS NO ACTIVE FLASHING DISPLAY, THE DSKY IS
+#	BLANKED AND CONTROL IS SENT TO ENDOFJOB.
+#				TC	POSTJUMP
+#				CADR	PINBRNCH
+
+#	PRIODSP IS USED AS A PRIORITY DISPLAY.  IT WILL DISPLAY A GOFLASH TYPE DISPLAY WITH THREE POSSIBLE RETURNS FROM
+#	THE ASTRONAUT (SEE NO. 7 ABOVE).
+#
+#	THE MAIN PURPOSE OF PRIODSP IS TO REPLACE THE PRESENT DISPLAY WITH A DISPLAY OF HIGHER PRIORITY AND TO
+#	PROVIDE A MEANS FOR RESTORING THE OLD DISPLAY WHEN THE PRIORITY DISPLAY
+# 	IS RESPONDED TO BY THE ASTRONAUT.
+#
+#	THE FORMER DISPLAY IS RESTORED BY AN AUTOMATIC BRANCH TO WAKE UP THE DISPLAY THAT WAS INTERRUPTED BY THE
+#	PRIO DISPLAY
+#				CAF	VXXNYY		# VXXNYY WILL BE A FLASHING VERB NOUN
+#				TC	BANKCALL
+#				CADR	PRIODSP
+#				...	...		# TERMINATE RETURN
+#				...	...		# PROCEED RETURN
+# Page 1461
+#				...	...		# ENTER OR RECYCLE RETURN
+
+#	PRIODSPR IS THE SAME AS PRIODSP ONLY AN IMMEDIATE RETURN IS MADE TO THE USER'S CALL CADR +4.
+#				CAF	VXXNYY		# VXXNYY WILL BE A FLASHING VERB NOUN
+#				TC	BANKCALL
+#				CADR	PRIODSPR
+#				...	...		# TERMINATE ACTION
+#				...	...		# PROCEED RETURN
+#				...	...		# ENTER OR RECYCLE RETURN
+#				...	...		# IMMEDIATE RETURN
+
+#	PRIOLARM DOES A V05N09 PRIODSPR.
+#
+#	CLEANDSP CLEANS OUT ALL NORMAL DISPLAYS (ACTIVE AND INACTIVE).  A RETURN IS MADE TO THE USER AFTER NORMAL
+#	DISPLAYS ARE CLEANED OUT.
+#				TC	BANKCALL
+#				CADR	CLEANDSP
+#				...	...		# RETURN TO USER
+# Page 1462
+#
+# GENERAL INFORMATION
+# -------------------
+#
+# ALARM OR ABORT EXIT MODE --
+#	PRIOBORT	TC	ABORT
+#			OCT	1502
+#
+#	PRIOBORT IS BRANCHED TO WHEN (1) A NORMAL DISPLAY IS REQUESTED AND ANOTHER NORMAL DISPLAY IS ALREADY ACTIVE
+#	(REFLASH AND REGODSP ARE EXCEPTIONS) OR (2) A PRIORITY DISPLAY IS REQUESTED WHEN ANOTHER PRIORITY DISPLAY IS
+#	ALREADY ACTIVE (A PRIORITY WITH LINUS BIT14 IS AN EXCEPTION).
+#
+# ERASABLE INITIALIZATION REQUIRED --
+#	ACCOMPLISHED BY FRESH START --	1.  FLAGWRD4 (USED EXCLUSIVELY BY DISPLAY INTERFACE ROUTINES)
+#					2.  NVSAVE = NORMAL VERB AND NOUN REGISTER.
+#					3.  EBANKTEM = NORMAL INACTIVE FLAGWORD (ALSO CONTAINS NORMALS EBANK).
+#					5.  R1SAVE = MARKBRAN CONTROL WORD
+#					4.  RESTREG = PRIORITY 30 AND SUPERBANK 3.
+#
+# OUTPUT --
+#	NVWORD = PRIO VERB AND NOUN
+#	NVWORD +1 (MARKNV) = MARK VERB AND NOUN
+#	NVWORD +2 (NVSAVE) = NORMAL VERB AND NOUN
+#	DSPFLG (EBANKSAV) = PRIO FLAGWORD (INCLUDING EBANK)
+#	DSPFLG +1 (MARKEBAN) = MARK FLAGWORD (INCLUDING EBANK)
+#	DSPFLG +2 (EBANKTEM) = NORMAL FLAGWORD (INCLUDING EBANK)
+#	CADRFLSH = PRIO USER'S CALL CADR +1 LOCATION
+#	CADRFLSH +1 (MARKFLSH) = MARK USER'S CALL CADR +1 LOCATION
+#	CADRFLSH +2 (TEMPFLSH) = NORMAL USER'S CALL CADR +1 LOCATION
+#	PRIOTIME = TIME EACH PRIO REQUEST FIRST SENT OUT
+#	OPTION1 = DESIRED OPTION FROM GOPERF4
+#	FLAGWRD4 = BIT INFO FOR CONTROL OF ALL DISPLAY ROUTINES
+#	DSPTEM1 = R1 INFO FOR ASTRONAUT FROM PERFORM DISPLAYS (NORMAL)
+#
+# SUBROUTINES USED -- NVSUB, FLAGUP, FLAGDOWN, ENDOFJOB, BLANKSUB, ABORT, JOBWAKE, JOBSLEEP, FINDVAC, PRIOCHNG,
+#	JAMTERM, NVSUBUSY, FLASHON, ENDIDLE, CHANG1, BANKJUMP, MAKECADR, NOVAC
+#
+# DEBRIS -- (STORED INTO)
+#	TEMPORARY TEMPORARIES -- A, Q, L, MPAC +2, MPAC +3, MPAC +4, MPAC +5, MPAC +6, RUPREG2, RUPTREG3, CYL,
+#		EBANK, RUPTREG4, LOC, BANKSET, MODE, MPAC, MPAC +1, FACEREG
+#	ERASABLES (SHARED AND USED WITH OTHER PROGRAMS) -- CADRSTOR, DSPLIST, LOC, DSPTEM1, OPTION1
+#	ERASABLES (USED ONLY BY DISPLAY ROUTINES) -- NVWORD,+1,+2, DSPFLAG,+1,+2, CADRFLSH,+1,+2, PRIOTIME, FLAGWRD4,
+# Page 1463
+#		R1SAVE, MARK2PAC
+#
+# DEBRIS -- (USED BUT NOT STORED INTO) -- NOUNREG, VERBREG, LOCCTR, MONSAVE1
+#
+# FLAGWORD DESCRIPTIONS --
+#	FLAGWRD4 -- SEE DESCRIPTION UNDER LOG SECTION ERASABLE ASSIGNMENTS
+#
+#	DSPFLG, DSPFLG+1, DSPFLG+2
+#	--------------------------
+#	BITS 1	BLANK R1
+#	     2	BLANK R2
+#	     3	BLANK R3
+#	     4	FLASHING DISPLAY REQUESTED
+#	     5	PERFORM DISPLAY REQUESTED
+#	     6	-----			EXDSPRET		GODSPRET
+#	     7	PRIO DISPLAY		-----			-----
+#	     8	-----			DEC MARK PERFORM	-----
+#	     9	EBANK
+#	    10	EBANK
+#	    11	EBANK
+#	    12	-----			-----			V99PASTE
+#	    13	2ND PART OF PERFORM
+#	    14	REFLASH OR REDO		-----			REFLASH OR REDO
+#	    15	-----			MARK REQUEST		-----
+#
+# RESTARTING DISPLAYS --
+#
+# RULES FOR THE DSKY OPERATOR --
+#	1.  PROCEED AND TERMINATE SERVE AS RESPONSES TO REQUESTS FOR OPERATOR RESPONSE (FLASHING Y/N).  AS LONG
+#	    AS THERE IS ANY REQUEST AWAITING OPERATOR RESPONSE, ANY USE OF PROCEED OR TERMINATE WILL SERVE AS
+#	    RESPONSES TO THAT REQUEST.  CARE SHOULD BE EXERCISED IN ATTEMPTING TO KILL AN OPERATOR INITIATED MONITOR
+#	    WITH PROCEED AND TERMINATE FOR THIS REASON.
+#	2.  THE ASTRONAUT MUST RESPOND TO A PRIORITY DISPLAY NO SOONER THAN 2 SECONDS FROM THE TIME THE
+#	    PROGRAM SENT OUT THE REQUEST FOR OPERATOR RESPONSE (THE ASTRONAUT WOULD SEE THIS DISPLAY FOR LESS TIME
+#	    DUE TO TIME IT TAKES TO GET DISPLAY SENT OUT.)  IF THE ASTRONAUT RESPONDS TOO SOON, THE PRIORITY DISPLAY
+#	    IS SENT OUT AGAIN -- AND AGAIN UNTIL AN ACCUMULATED 2 SECS FROM THE TIME THE FIRST PRIORITY DISPLAY
+#	    OUT.  THE SAME 2 SEC. DELAY WILL OCCUR AT 163.84 SECS OR IN ANY MULTIPLE OF THAT TIME DUE TO PROGRAM
+#	    CONSIDERATION.
+#	3.  KEY RELEASE BUTTON --
+#	    A)  IF THE KEY RELEASE LIGHT IS ON, IT SIMPLY RELEASES THE KEYBOARD AND DISPLAY FOR INTERNAL USE.
+#	    B)  IF THE KEY RELEASE LIGHT IS OFF, AND IF SOME REQUEST FOR OPERATOR RESPONSE (FLASHING V/N) IS STILL
+#	        AWAITING RESPONSE THEN IT RE-ESTABLISHES THE DISPLAYS THAT ORIGINALLY REQUESTED RESPONSE.
+#	    IF AN OPERATOR WANTS THEREFORE TO RE-ESTABLISH BUT CONDITION (A) IS ENCOUNTERED, A SECOND DEPRESSION OF
+#	    KEY RELEASE BUTTON MAY BE NECESSARY.
+#	4.  IT IS IMPORTANT TO ANSWER ALL REQUESTS FOR OPERATOR RESPONSE.
+#	5.  IT IS ALWAYS GOOD PRACTICE TO TERMINATE AN EXTENDED VERB BEFORE ASKING FOR ANOTHER ONE OR THE SAME ONE
+#	    OVER AGAIN.
+#
+# SPECIAL CONSIDERATONS --
+# Page 1464
+#	1.  MPAC +2 SAVED ONLY IN MARK DISPLAYS
+#	2.  GODSP(R), REGODSP(R), GOMARK(R) ALWAYS TURN ON THE FLASH IF ENTERED WITH A PASTE VERB REQUEST.
+#	3.  ALL NORMAL DISPLAYS ARE RESTARTABLE EXCEPT GODSP(R), REGODSP(R)
+#	4.  ALL EXTENDED VERBS WITH DISPLAYS SHOULD START WITH A TC TESTXACT AND FINISH WITH A TC ENDEXT.
+#	5.  GODSP(R) AND REGODSP(R) MUST BE IN THE SAME EBANK AND SUPERBANK AS THE LAST NORMAL DISPLAY RESTARTED
+#	    BY A .1 RESTART PHASE CHANGE.
+#	6.  IN ORDER TO SET UP A NON DISPLAY .1 RESTART POINT, THE USER MUST MAKE CERTAIN THAT RESTREG CONTAINS THE
+#	    CORRECT PRIORITY AND SUPERBANK AND THAT EBANKTEM CONTAINS THE CO
+#	7.  IF CLEANDSP IS RESTARTED VIA A .1 PHASE CHANGE, CAF ZERO SHOULD BE EXECUTED BEFORE THE TC BANKCALL.
+
+# Page 1465
+# CALLING SEQUENCE FOR BLANKING
+#		CAF	BITX		# X=1,2,3 BLANK R1,R2,R3 RESPECTIVELY
+#		TC	BLANKET
+#		...	...		# RETURN TO USER HERE
+# IN ORDER TO USE BLANKET CORRECTLY, THE USER MUST USE A DISPLAY ROUTINE THAT ENDS IN R FIRST FOLLOWED BY THE CALL
+# TO BLANKET AT THE IMMEDIATE RETURN LOC.
+		BLOCK	02
+		SETLOC	FFTAG4
+		BANK
+
+		COUNT	02/DSPLA
+		
+BLANKET		TS	MPAC +6
+		CS	PLAYTEM4
+		MASK	MPAC +6
+		INDEX	MPAC +5
+		ADS	PLAYTEM4
+
+		TC	Q
+
+ENDMARK		TC	POSTJUMP
+		CADR	MARKEND
+
+CLEARMRK	CAF	ZERO
+		TS	EXTVBACT
+
+		INHINT
+		CS	BIT1
+		MASK	FLAGWRD4
+		TS	FLAGWRD4
+
+		RELINT
+		TC	Q
+
+# *** ALL EXTENDED VERB ROUTINES THAT HAVE AT LEAST ONE FLASHING DISPLAY MUST TCF ENDMARK OR TCF ENDEXT WHEN
+# FINISHED.
+
+		BANK	10
+		SETLOC	DISPLAYS
+		BANK
+
+		COUNT	10/DSPLA
+
+# NTERONLY IS USED TO DIFFERENTIATE THE MARK ROUTINE WITH ONLY ONE RETURN TO THE USER FROM THE MARKING ROUTINE WITH
+# 3 RETURNS TO THE USER.  THIS ROUTINE IS ONLY USED BY GOMARK1 AND GOMARK1R.
+
+MARKEND		TC	CLEARMRK
+		TCF	MARKOVER
+
+# Page 1466
+GOMARK		TS	PLAYTEM1	# ENTRANCE FOR MARK GODSP
+
+GOMARS		CAF	BIT15		# BIT15 SET FOR ALL MARK REQUESTS
+		TCF	GOFLASH2
+
+KLEENEX		CAF	ZERO		# CLEAN OUT EXTENDED VERBS
+GOMARKF		TS	PLAYTEM1	# ENTRANCE FOR MARK GOFLASH
+
+		CAF	MARKFMSK	# MARK, FLASH
+		TCF	GOFLASH2
+
+GOMARK2		TS	PLAYTEM1	# MARK GOPERFS-3 AST. RETURNS
+MARKFORM	CAF	MPERFMSK	# MARK, PERFORM, FLASH
+		TCF	GOFLASH2
+
+GOMARK3		TS	PLAYTEM1	# USED FOR 3COMP DECIMAL PERFORM
+		CAF	MARK3MSK
+		TCF	GOFLASH2
+
+GOMARK4		TS	PLAYTEM1
+		CAF	MARK4MSK	# MARK,PERFORM,FLASH,BLANK
+		TCF	GOFLASH2
+
+GOMARKR		TS	PLAYTEM1	# ENTRANCE FOR MARK GODSPR
+
+		CAF	BIT15
+		TCF	GODSPR2
+
+GOMARKFR	TS	PLAYTEM1	# ENTRANCE FOR MARK GOFLASHR
+
+		CAF	MARKFMSK
+		TCF	GODSPRS
+
+GOMARK2R	TS	PLAYTEM1	# MARK GOPERFS-3 AST. RETS+ IMMEDIATE RET.
+		CAF	MPERFMSK	# MARK, PERFORM, FLASH
+		TCF	GODSPRS
+
+GOMARK3R	TS	PLAYTEM1
+		CAF	MARK3MSK
+		TCF	GODSPRS
+
+MAKEMARK	CAF	ONE
+		TC	COPIES
+
+		CA	FLAGWRD4	# IS NORM OR PRIO BUSY OR WAITING
+		MASK	OCT34300
+		CCS	A
+		TCF	CHKPRIO
+
+		CA	FLAGWRD4	# IS MARK SLEEPING DUE TO ASTRO BUSY?
+# Page 1467
+		MASK	BIT9
+
+		EXTEND
+		BZF	MARKPLAY	# NO
+
+		TCF	ENDOFJOB
+
+MARKPLAY	INHINT
+		CS	FIVE		# RESET MARK OVER NORM, SET MARK
+		MASK	FLAGWRD4
+		AD	ONE
+		TS	FLAGWRD4
+		RELINT
+
+GOGOMARK	CS	MARKFLAG	# PERFORM
+		MASK	BIT5
+		CCS	A
+		TCF	MARKCOP
+		CS	MARKNV
+		TS	MARKNV
+
+MARKCOP		CAF	ONE		# MARK INDEX
+		TCF	PRIOPLAY
+
+COPYTOGO	CA	MPAC2SAV
+		TS	MPAC +2
+
+COPYPACS	INDEX	COPINDEX
+		CAF	PRIOOCT
+		TS	GENMASK
+
+		INDEX	COPINDEX
+		CA	EBANKSAV	# Was CAF --- RSB 2004.
+		TS	TEMPOR2		# ACTIVE EBANK AND FLAG
+
+		TS	EBANK
+
+		TC	Q
+
+# PINCHEK CHECKS TO SEE IF THE CURRENT MARK REQUEST IS MADE BY THE ASTRONAUT WHILE INTERUPTING A GOPLAY DISPLAY
+# (A NORMAL OR A PRIO).  IF THE ASTRONAUT TRIES TO MARK DURING A PRIO, THE CHECK FAIL LIGHT GOES ON AND THE MARK
+# REQUEST IS ENDED.  IF HE TRIES TO MARK DURING A NORM, THE MARK IS ALLOWED.  IN THIS CASE THE NORM IS PUT TO SLEEP
+# UNTIL ALL MARKING IS FINISHED.
+#
+# IF THE MARK REQUEST COMES FROM THE PROGRAM DURING A TIME THE ASTRONAUT IS NOT INTERRUPTING A NORMAL OR A
+# PRIO, THE MARK REQUEST IS PUT TO SLEEP UNTIL THE PRESENT ACTIVE DISPLAY IS RESPONDED TO BY THE ASTRONAUT.
+
+CHKPRIO		CA	FLAGWRD4	# MARK ATTEMPT DURING PRIO
+		MASK	OCT24100
+		CCS	A
+		TCF	MARSLEEP
+
+# Page 1468
+		CS	FLAGWRD4
+		MASK	BIT3		# SET MARK OVER NORM
+		INHINT
+		ADS	FLAGWRD4
+
+		TCF	SETNORM
+
+MARKPERF	CA	MARKNV
+		MASK	VERBMASK
+		TCF	NV50DSP
+
+GODSP		TS	PLAYTEM1
+
+GODSP2		CAF	ZERO
+		TCF	GOFLASH2
+
+GODSPRET	TS	PLAYTEM1	# ENTRANCE FOR A GODSP WITH A PASTE
+
+		CAF	BIT6		# SET BIT6 TO GO BACK TO USER AFTER NVSUB
+		TCF	GOFLASH2
+
+GODSPR		TS	PLAYTEM1
+
+GODSPR1		CAF	ZERO
+GODSPR2		TS	PLAYTEM4
+
+		CAF	ZERO		# * DON'T MOVE
+		TCF	GODSPRS1
+
+# CLEANDSP IS USED FOR CLEARING OUT A NORMAL DISPLAY THAT IS PRESENTLY ACTIVE OR A NORMAL DISPLAY THAT IS
+# SET UP TO BE STARTED OR RESTARTED.
+#
+# NORMALLY THE USER WILL NOT NEED TO USE THIS ROUTINE SINCE A NEW NORMAL DISPLAY AUTOMATICALLY CLEARS OUT AN
+# OLD DISPLAY.
+#
+# CALLING SEQUENCE FOR CLEANDSP --
+#
+#		TC	BANKCALL
+#		CADR	CLEANDSP
+
+CLEANDSP	CAF	ZERO
+REFLASH		TS	PLAYTEM1
+
+		CAF	REDOMASK	# FLASH AND PERMIT
+		TCF	GOFLASH2
+
+REGODSP		TS	PLAYTEM1
+
+		CAF	BIT14
+		TCF	GOFLASH2
+
+# Page 1469
+
+REGODSPR	TS	PLAYTEM1
+		CAF	BIT14
+		TCF	GODSPR2
+
+CLOCPLAY	TS	PLAYTEM1
+		CAF	CLOCKCON
+		TCF	GOFLASH2
+GOFLASH		TS	PLAYTEM1
+
+		CAF	BIT4		# LEAVE ONLY FLASH BIT SET
+GOFLASH2	TS	PLAYTEM4
+
+		TC	SAVELOCS
+
+		RELINT
+
+		TCF	MAKEPLAY	# BRANCH DIRECT WITH NO SEPARATE JOB CALL
+
+PRIODSPR	TS	PLAYTEM1
+
+		CAF	BITS7+4
+		TCF	GODSPRS
+
+PRIODSP		TS	PLAYTEM1
+
+SETPRIO		CAF	BITS7+4
+		TCF	GOFLASH2
+
+MAKEPRIO	CAF	ZERO
+		TS	COPINDEX
+
+		TC	LINUSCHR
+		TCF	HIPRIO		# LINUS RETURN
+		CA	FLAGWRD4
+		MASK	OCT20100	# IS PRIO IN ENDIDLE OR BUSY
+		CCS	A
+		TCF	PRIOBORT	# YES, ABORT
+
+HIPRIO		CA	FLAGWRD4	# MARK ACTIVE
+		MASK	OCT40400
+		EXTEND
+		BZF	ASKIFNRM	# NO
+
+SETMARK		CAF	ZERO
+		TCF	JOBXCHS
+
+ASKIFNRM	CA	FLAGWRD4	# NORMAL ACTIVE
+		MASK	OCT10200	# BITS 13+8
+		EXTEND
+# Page 1470
+		BZF	OKTOCOPY	# NO
+
+SETNORM		CAF	ONE
+		TCF	JOBXCHS
+
+OKTOCOPY	TC	COPYNORM
+		TC	WITCHONE
+
+		TC	JOBWAKE
+
+		TC	XCHTOEND
+
+REDOPRIO	CA	TIME1		# SAVE TIME PRIODSP SENT OUT
+		TS	PRIOTIME
+
+KEEPPRIO	CAF	ZERO		# START UP PRIO DISPLAY
+		TCF	PRIOPLAY
+
+MAKEPLAY	CA	PRIORITY	# SAVE USER'S PRIORITY
+		MASK	PRIO37
+		TS	USERPRIO
+
+		CAF	PRIO33		# RAISE PRIORITY FOR FAST JOBS AFTER WAKE
+		TC	PRIOCHNG
+
+		CA	PLAYTEM4	# IS IT MARK OR PRIO OR NORM
+		MASK	BITS15+7
+		CCS	A
+		TCF	MAKEPRIO	# ITS PRIO
+		TCF	IFLEGAL
+		TCF	MAKEMARK	# ITS MARK
+
+IFLEGAL		CAF	TWO
+		TS	COPINDEX
+
+		TC	LINUSCHR
+
+		TCF	OKTOPLAY	# LINUS RETURN
+		CS	EBANKTEM
+		MASK	BIT4
+		CCS	A
+		TCF	OKTOPLAY	# NO
+
+		CA	FLAGWRD4	# WAS NORM ASLEEP
+		MASK	NBUSMASK	# ARE ANY NORMS ASLEEP
+		EXTEND
+		BZF	OKTOPLAY	# NO
+
+PRIOBORT	TC	P00DOO
+		OCT	1502
+# Page 1471		
+
+OKTOPLAY	TC	COPIES2
+
+		CA	USERPRIO
+		EXTEND
+		ROR	SUPERBNK
+		TS	RESTREG
+
+		CA	FLAGWRD4	# PRIO OR MARK GOING
+		MASK	PMMASK
+		CCS	A
+		TCF	GOSLEEPS	# MARK GOING
+
+		TCF	+2
+		TCF	GOSLEEPS
+
+# COULD PUT NORM BUSY CHECK HERE TO SAVE TIME
+
+		TC	WITCHONE	# IS IT NVSUB BUSY, ENDIDLE OR NOONE
+		TC	JOBWAKE
+
+		TC	XCHTOEND
+
+PLAYJUM1	CAF	TWO
+PRIOPLAY	TS	COPINDEX
+
+		TCF	GOPLAY
+
+EXDSPRET	TS	PLAYTEM1
+
+		CAF	BIT15+6
+		TCF	GOFLASH2
+
+GOPERF1		TS	NORMTEM1	# STORE DESIRED CHECKLIST VALUE
+		CAF	V01N25		# USED TO DISPLAY CHECKLIST VALUE IN R1
+
+GOPERFS		TS	PLAYTEM1
+
+		CAF	PERFMASK	# LEAVE ONLY FLASH, PERFORM, BLANKING
+		TCF	GOFLASH2
+
+GOPERF2		TS	PLAYTEM1	# DESIRED VERB-NOUN TO DISPLAY R1,R2,R3
+
+		CAF	PERF2MSK
+		TCF	GOFLASH2
+
+GOPERF4		TC	PURRS4
+
+		TCF	GOFLASH2
+
+GOFLASHR	TS	PLAYTEM1
+# Page 1472
+		CAF	BIT4		# LEAVE ONLY FLASH BIT SET
+GODSPRS		TS	PLAYTEM4
+
+		CAF	THREE
+
+GODSPRS1	INHINT			# IMMEDIATE RETURN IS CALL CADR +4
+		TS	RUPTREG3
+
+		CA	PRIORITY	# MAKE DISPLAY ONE HIGHER THAN USER
+		MASK	PRIO37
+		TS	NEWPRIO
+
+		CA	PLAYTEM4	# IS THIS A FLASHING R DISPLAY
+		MASK	BIT4
+		CCS	A
+		TCF	VACDSP		# YES, MAKE DSPLAY JOB A VAC
+		CA	NEWPRIO		# NO, MAKE DSPLAY JOB A NOVAC
+		TC	NOVAC
+		EBANK=	WHOCARES
+		2CADR	MAKEPLAY
+
+		TCF	BOTHJOBS
+
+VACDSP		CA	BBANK
+		EXTEND
+		ROR	SUPERBNK
+		TS	L
+		CAF	MAKEGEN
+		TC	SPVAC
+
+BOTHJOBS	TC	SAVELOCS	# COPY TEMPS INTO PERMANENT REGISTERS
+
+		EXTEND			# SAVE NVWORD AND USER'S MPAC +2
+		DCA	MPAC +1
+		INDEX	LOCCTR
+		DXCH	MPAC +1
+
+		EXTEND			# SAVE USER'S CADR, FLAGS AND EBANK
+		DCA	MPAC +3
+		INDEX 	LOCCTR
+		DXCH	MPAC +3
+
+		CA	LOCCTR
+		TS	MPAC +5
+		TC	SAVELOCR
+		RELINT
+		TCF	BANKJUMP	# CALL CADR +4
+
+# Page 1473
+GOPERF1R	TS	NORMTEM1	# DESIRED CHECKLIST VALUE
+
+		CAF	V01N25		# DISPLAYS CHECKLIST VALUE IN R1
+
+GOPERFRS	TS	PLAYTEM1
+
+		CAF	PERFMASK	# LEAVE ONLY FLASH, PERFORM, BLANKING
+		TCF	GODSPRS
+
+GOPERF2R	TS	PLAYTEM1	# DESIRED VERB-NOUN TO DISPLAY R1,R2,R3
+
+		CAF	PERF2MSK
+		TCF	GODSPRS
+
+GOPERF4R	TC	PURRS4
+
+		TCF	GODSPRS
+
+PURRS4		TS	OPTION1		# DESIRED OPTION CODE
+
+		CAF	V04N06
+		TS	PLAYTEM1
+
+		CAF	PERF4MSK	# FLASH, PERFORM AND EBANK R3
+		TC	Q
+
+SAVELOCS	INHINT
+
+		CS	OCT3400		# EBANK BITS
+		MASK	PLAYTEM4
+		AD	EBANK
+		TS	PLAYTEM4
+
+SAVELOCR	LXCH	Q
+
+		TC	MAKECADR
+		TS	PLAYTEM3
+
+		AD	RUPTREG3	# NOT USED FOR NON R ROUTINES
+		TC	L
+
+COPYNORM	CAF	ZERO
+COPIES		TS	COPINDEX
+COPIES2		INHINT
+		CA	PLAYTEM4	# FLAGWORD
+
+		INDEX	COPINDEX
+		TS	EBANKSAV	# EQUIV TO DSPFLG
+		MASK	CADRMASK	# FLASH AND GODSPRET
+		EXTEND
+# Page 1474		
+		BZF	SKIPADD
+
+		CA	PLAYTEM3
+		INDEX	COPINDEX
+		TS	CADRFLSH
+
+SKIPADD		CA	PLAYTEM1	# VERB NOUN
+		INDEX	COPINDEX
+		TS	NVWORD
+
+		TCF	RELINTQ
+
+GOSLEEPS	INDEX	COPINDEX
+		CA	PRIOOCT
+		MASK	WAITMASK
+		TC	UPENT2
+WAITMASK	OCT	3004
+		CS	ONE
+		AD	COPINDEX
+		TS	FACEREG
+
+XCHSLEEP	INDEX	FACEREG
+		CAF	WAKECADR
+		INHINT
+		TC	JOBWAKE		# FIND CADR IN JOB AREA
+
+		TC	XCHTOEND	# CAUSES AWAKENED JOB TO GO TO ENDOFJOB
+
+		INDEX	FACEREG		# REPLACE SAME CADR BUT NEW JOB AREA
+		CAF	WAKECADR
+		TCF	JOBSLEEP
+
+JOBXCHS		TS	FACEREG		# CONTROLS TYPE OF DISPLAY PUT TO SLEEP
+		TC	WITCHONE
+		TC	JOBWAKE
+		CA	FACEREG
+		INDEX	LOCCTR
+		TS	FACEREG
+
+		CAF	XCHQADD
+		TC	XCHNYLOC
+
+		INDEX	FACEREG
+		CA	MARKOCT
+		MASK	IDLESLEP
+
+		TC	DOWNENT2
+IDLEMASK	OCT	74004		# * DON'T MOVE
+		INDEX	FACEREG		# BIT SHOWS PRIO INTERRUPTED NORM OR MARK
+		CA	BIT5		# BIT5 FOR MARK, BIT4 FOR NORMAL
+# Page 1475
+		AD	FOUR
+		TC	UPENT2		# FLAG ROUTINE DOES RELINT
+XCHQADD		GENADR	XCHSLEEP	# * DON'T MOVE
+		CA	FLAGWRD4
+		MASK	BIT3		# MARK OVER NORM?
+		CCS	A
+GENMARK		TC	MARKPLAY	# USED AS GENADR FOR JOBWAKE
+		TCF	OKTOCOPY
+
+MARKWAKE	CAF	ZERO
+WAKEPLAY	TS	TEMPOR2
+
+		INDEX	TEMPOR2
+		CA	BITS5+11
+		AD	FOUR
+		TC	DOWNENT2
+MARKFMSK	OCT	40010		# *** DON'T MOVE
+
+		INDEX	TEMPOR2
+		CAF	WAKECADR
+		INHINT
+		TC	JOBWAKE
+
+		TCF	ENDRET
+
+# ALL .1 RESTARTS BRANCH DIRECTLY TO INITDSP.  NORMAL DISPLAYS ARE THE ONLY DISPLAYS ALLOWED TO USE .1 RESTARTS
+# INITDSP FIRST RESTORES THE EBANK AND THE SUPERBANK TO THE MOST RECENT NORMAL EBANK AND SUPERBANK.
+#
+# IF THE MOST RECENT NORMAL DISPLAY REQUEST WAS NOT FINISHED, CONTROL IS SENT BACK TO THE LAST NORMAL USER.
+# OTHERWISE THE NORMAL DISPLAY SET UP IN THE NORMAL DISPLAY REGS IS STARTED UP IMMEDIATELY.
+
+INITDSP		CA	EBANKTEM	# RESTORE MOST RECENT NORMAL EBANK
+		TS	EBANK
+
+		CA	RESTREG		# SUPERBANK AND JOB PRIORITY
+		TC	SUPERSW		# RESTORE SUPERBANK
+
+		MASK	PRIO37
+		TC	PRIOCHNG
+
+		CS	THREE
+		AD	TEMPFLSH
+		TCF	BANKJUMP
+
+PINBRNCH	RELINT			# FOR GOPIN USERS
+		CA	MARK2PAC	# NEEDED TO SAVE MPAC +2 FOR MARK USERS
+		TS	MPAC +2		# ONLY
+
+		CA	FLAGWRD4	# PINBRANCH CONDITION
+		MASK	PINMASK
+		CCS	A
+# Page 1476
+		TCF	+3
+		TCF	ERASER		# ** NOTHING IN ENDIDLE
+		TCF	MARKPLAY
+
+NORMBNCH	TC	UPFLAG		# SET PINBRANCH BIT
+		ADRES	PINBRFLG
+
+		CAF	BIT14		# PRIO INTERRUPTED
+		MASK	FLAGWRD4
+		CCS	A
+		TCF	KEEPPRIO
+
+		TCF	PLAYJUM1
+
+NVDSP		TC	COPYPACS
+
+		CA	TEMPOR2		# SET UP BLANK BITS FOR NVMONOPT IN CASE
+		MASK	SEVEN		# USER REQUESTS BLANKING MONITOR
+		TS	L
+
+		CS	BIT13
+		INDEX	COPINDEX
+		MASK	DSPFLG
+		INDEX	COPINDEX
+		TS	DSPFLG
+
+		MASK	BIT8		# BIT8 SET IF DEC MARK PERFORM DISPLAY
+		TS	TEM1
+
+		CA	MPAC +2
+		TS	MPAC2SAV
+
+		TS	MARK2PAC	# * FOR DISK ONLY *
+		INDEX	COPINDEX
+		CCS	NVWORD
+		TCF	NVDSP1
+		TCF	CLEANEND
+		CS	MARKNV
+		TS	MARKNV		# IN CASE MARKPLAY AWAKENED AFTER SLEEPING
+		MASK	LOW7
+		AD	V05N00M1
+		AD	TEM1
+NVDSP1		AD	ONE
+NV50DSP		TC	NVMONOPT
+		TCF	REST		# IF BUSY
+
+		TC	FLASHOFF	# IN CASE OF EXTENDED VERB NON-FLASH
+
+		TC	COPYTOGO	# MPACS DESTROYED BY NVSUB
+		TC	DOWNFLAG	# UNSET SLEEPING BITS
+		ADRES	MRKNVFLG
+# Page 1477
+		TC	DOWNFLAG
+		ADRES	NRMNVFLG
+		TC	DOWNFLAG
+		ADRES	PRONVFLG
+BLANKCHK	CA	TEMPOR2		# BLANK BITS 1,2,3 IF SET
+		TC	BLANKSUB
+		TCF	NVDSP
+PERFCHEK	CAF	BIT5		# BIT 5 FOR PERFORM
+		MASK	TEMPOR2
+		CCS	A		# IS THIS A GOPERF DISPLAY
+		TCF	1STOR2ND	# YES
+
+GOANIDLE	CAF	BIT4
+		MASK	TEMPOR2
+		CCS	A
+		TCF	FLASHSUB	# IT IS
+
+		CS	TEMPOR2		# IS THIS A GODSPRET
+		MASK	BIT6
+		CCS	A
+		TCF	ISITN00
+
+		INDEX	COPINDEX
+		CA	CADRFLSH
+		TS	MPAC +3
+		TCF	ENDIT
+
+ISITN00		INDEX	COPINDEX	# IS THIS A PASTE
+		CA	NVWORD
+		MASK	LOW7		# CHECK MADE FOR PINBRNCH AND PRIO ON MARK
+		EXTEND
+		BZF	FLASHSUB	# YES, ASSUME PASTE ALWAYS ON FLASH
+
+		TCF	ENDOFJOB	# NOT FLASH, NOT GOPERF, THEREFORE EXIT
+
+1STOR2ND	CA	TEMPOR2
+		MASK	BIT13
+		CCS	A
+		TCF	GOANIDLE	# SECOND
+
+		CA	BIT13
+		INDEX	COPINDEX
+		ADS	DSPFLG
+
+		ZL
+		EXTEND			# IS IT MARK
+		BZMF	MARKPERF	# YES
+		MASK	BIT12
+		EXTEND
+# Page 1478
+		BZF	V50PASTE
+		CS	NVWORD1		# NVOWRD1= -0 IS V97.  NVWORD1= -400 IS V99
+		AD	V97N00
+		TCF	NV50DSP
+V50PASTE	CAF	V50N00
+		TCF	NV50DSP		# DISPLAY SECOND PART OF GOPERF
+
+WITCHONE	CS	BIT5		# TURN OFF KEY RELEASE LIGHT
+		EXTEND
+		WAND	DSALMOUT
+
+		CA	FLAGWRD4
+		MASK	NVBUSMSK	# IS IT NVSUB ALEEP
+		CCS	A
+		CAF	ONE
+		TS	L
+		CAF	ZERO
+		INDEX	L
+		XCH	CADRSTOR
+
+		INHINT
+		TC	Q
+
+XCHTOEND	CAF	ENDINST		# TC ENDOFJOB REPLACES GENADR IN LOC FOR
+XCHNYLOC	XCH	LOCCTR		# WAS THIS ADDRESS SLEEPING
+		EXTEND
+		BZMF	RELINTQ		# NO
+		XCH	LOCCTR		# YES
+		INDEX	LOCCTR
+		TS	LOC
+
+RELINTQ		RELINT
+		TC	Q		# BACK TO USER
+
+CLEANEND	CAF	PRIO32		# ONE LOWER THAN DISPLAYS SLEEPING
+		TC	FINDVAC
+		EBANK=	NVSAVE
+		2CADR	JAMTERM
+
+		TCF	FLASHSUB +1
+
+ISITPRIO	CA	FLAGWRD4
+		MASK	ITISMASK	# IS PINBRFLG, MARKIDFLG SET
+		EXTEND
+		BZF	PRIOBORT
+		TCF	ENDOFJOB
+REST		CCS	CADRSTOR	# IS SOMEONE IN ENDIDLE
+		TCF	ENDOFJOB	# YES
+# Page 1479
+		TCF	RESTSLEP
+
+		TCF	ENDOFJOB
+
+RESTSLEP	CA	GENMASK		# SET NVSLEEP BITS
+		MASK	ASTROMSK
+		TC	UPENT2
+OCT24100	OCT	24100		# *** DON'T MOVE
+
+		INDEX	COPINDEX
+		CAF	NVCADR
+		TC	NVSUBUSY	# BUSY OR ABORT IF ILLEGAL
+
+FLASHSUB	TC	FLASHON
+
+		CA	COPINDEX	# COPINDEX DESTROYED BY ENDIDLE
+		TS	COPMPAC
+
+		CA	GENMASK
+		MASK	IDLEMASK
+		TC	UPENT2
+ITISMASK	OCT	40040		# *** ENDIDLE ALLOW *** DON'T MOVE
+
+		CA	R1SAVE		# IS THIS A REPEAT AND RETURN DISPLAY
+		INDEX	COPINDEX
+		MASK	BIT3
+		CCS	A
+		TCF	UNSETR1		# YES
+
+		CCS	CADRSTOR	# SEE IF SOMEONE ALREADY IN ENDIDLE
+		TCF	ISITPRIO
+		TCF	+2
+		TCF	ISITPRIO
+
+		TC	ENDIDLE
+IDLERET1	TCF	TERMATE
+
+		TCF	PROCEED		# ENDIDLE RETURNS HERE ON PROCEED
+
+		CS	LOWLOAD
+		AD	MPAC		# VERBREG
+		EXTEND
+		DIM	A
+		EXTEND
+		BZF	LOADITIS	# V21 OR V22 OR V23 ON DSKY
+
+OKTOENT		CAF	TWO
+ENDOUT		TS	OUTHERE
+		CA	FLAGWRD4	# CHECK NATURE OF ENDIDLE RETURN
+		MASK	OCT60000
+# Page 1480
+		CCS	A
+		TCF	TIMECHEK	# PRIO ENDIDLE RETURN
+		TCF	NORMRET		# NORMAL ENDIDLE RETURN
+		TCF	MARKRET		# MARK ENDIDLE RETURN
+
+TIMECHEK	CS	TIME1
+		AD	PRIOTIME
+		CCS	A
+		COM
+		AD	OCT37776
+		AD	ONE
+		AD	-2SEC
+		EXTEND
+		BZMF	KEEPPRIO
+
+		TCF	NORMRET
+
+NORMWAKE	CAF	ONE
+		TCF	WAKEPLAY
+
+ENDRET		CCS	OUTHERE
+		AD	ONE
+		TCF	+2		# NORMAL ENDIDLE EXIT
+		TCF	ENDOFJOB
+		INDEX	COPMPAC
+		AD	CADRFLSH
+		TS	MPAC +3
+
+		CA	GENMASK		# REMOVE ENDIDLE AND PINBRANCH BITS
+		MASK	PINIDMSK
+		TC	DOWNENT2
+PINIDMSK	OCT	74044		# *** DON'T MOVE
+
+		CS	THREE		# BLANK EVERYTHING EXCEPT MM
+		TC	NVSUB
+		TCF	+1
+
+ENDIT		CA	USERPRIO	# RETURN TO USER'S PRIORITY
+		MASK	PRIO37
+		TC	PRIOCHNG
+		CA	MPAC +3
+		TCF	BANKJUMP
+
+UNSETR1		INDEX	COPINDEX	# RESET REPEAT AND RETURN REQUEST
+		CS	BIT3
+		MASK	R1SAVE
+		TS	R1SAVE
+		CAF	ZERO		# *** 205 ONLY MARKBRAN USERS IN
+		TC	SUPERSW		# SUPERBANK 0
+# Page 1481
+
+	-1	CAF	THREE		# RETURN TO USER'S IMMEDIATE RETURN LOC
+IMMEDRET	INDEX	COPINDEX
+		AD	CADRFLSH
+		TCF	BANKJUMP
+
+TERMATE		CAF	ZERO		# ASTRONAUT TERMINATE (V34) RETURNS TO
+		TCF	ENDOUT
+
+LINUSCHR	CS	PLAYTEM4	# IS THIS A LINUS
+		MASK	BIT14
+		CCS	A
+		TCF	Q+1		# NO
+		CS	PLAYTEM3	# YES, IS IT ALREADY IN ENDIDLE
+		INDEX	COPINDEX
+		AD	CADRFLSH
+		EXTEND
+		BZF	+2		# YES
+
+		TC	Q		# NO
+		CCS	DSPLOCK		# IS THE ASTRONAUT BUSY
+		TC	ENDOFJOB	# END THE NEW DISPLAY, IT'S ALREADY ACTIVE
+		TC	Q
+
+# MORE LOGIC COULD BE INCORPORATED HERE TO MAKE SURE A RECYCLE IS A RECYCLE AND CONVERSELY THAT A LOAD IS A LOAD
+
+PROCEED		CAF	ONE		# ASTRONAUT PROCEED (V33) RETURNS
+		TCF	ENDOUT
+
+# LASTPLAY CHECKS TO SEE IF (1) THE LAST NORMAL DISPLAY WAS EITHER INTERRUPTED BY A PRIO OR A MARK (MARK
+# COULD ONLY HAPPEN DURING PINBRANCH) OR IF (2) THE LAST NORMAL DISPLAY WAS REQUESTED WHILE A HIGHER PRIORITY
+# DISPLAY WAS GOING, RESULTING IN THE NORMAL BEING PUT TO SLEEP.
+#
+# IF EITHER OF THE ABOVE 2 CONDITIONS EXISTS, THE NORMAL DISPLAY IS AWAKENED TO GO TO PLAYJUM1 WHICH STARTS
+# UP THE MOST RECENT VALID NORMAL DISPLAY.  IF THESE 2 CONDITIONS DO NOT EXIST, CONTROL GOES TO PLAYJUM1 WHICH IS
+# STARTED IMMEDIATELY WITH THE ASSUMPTION THAT THE MOST RECENT NORMAL DISPLAY IS ALREADY IN ENDIDLE (DURING A
+# PINBRNCH) OR THAT A RESTART HAS OCCURRED AND THE DISPLAY CAN BE STARTED AS A .1 RESTART.
+
+MARKRET		CS	SIX
+		MASK	FLAGWRD4
+		INHINT			# *** MAY MOVE DISPLAY FLAGWORD OUT OF
+		TS	FLAGWRD4
+
+		RELINT			# INHINT REALM
+		TCF	ENDRET
+
+MARKOVER	CAF	MINUS1		# RUPTREG2 IS - MEANS ENDOFJOB TO ENDRET
+		TS	OUTHERE
+		CA	FLAGWRD4	# IS ENDIDFLG SET
+		MASK	PRIO30		# IS NORMAL OR PRIO IN ENDIDLE
+		CCS	A
+# Page 1482		
+		TCF	NORMBNCH
+
+NORMRET		CA	FLAGWRD4	# IS MARK SLEEPING
+		MASK	BITS5+11	# OR WAITING
+		CCS	A
+		TCF	MARKWAKE
+
+		CA	FLAGWRD4	# NO
+		MASK	BITS4+10	# IS NORMAL INTERRUPTED OR WAITING
+		CCS	A
+		TCF	NORMWAKE	# YES
+
+		CA	EBANKTEM	# NO, WAS IT A FLASH REQUEST
+		MASK	OCT50		# OR A GODSPRET
+		CCS	A
+		TCF	ENDRET		# YES
+		CA	NVSAVE
+		EXTEND
+		BZF	ENDRET
+
+		CAF	PRIO15
+		INHINT
+		TC	NOVAC
+		EBANK=	NVWORD
+		2CADR	PLAYJUM1
+
+		TCF	ENDRET
+
+MARSLEEP	CA	FLAGWRD4	# IS MARK ALREADY ON
+		MASK	BITS5+11
+		CCS	A
+		TCF	ENDOFJOB	# YES
+		TCF	GOSLEEPS
+
+LOADITIS	INDEX	COPMPAC
+		CA	NVWORD
+		MASK	LOW7
+		COM
+		AD	MPAC +1		# NOUNREG
+		EXTEND
+		BZF	OKTOENT		# NO, THEN LOAD IS VALID
+		TCF	PINBRNCH	# YES, ACCEPT LOAD BUT ASK FOR LAST AGAIN
+
+ERASER		CS	THREE		# BLANK EVERYTHING EXCEPT MM
+		TC	NVSUB
+		TCF	ENDOFJOB
+		TCF	ENDOFJOB
+
+PERFMASK	OCT	0036		# FLASH, PERFORM, BLANK R2 AND R3
+# Page 1483
+V01N25		VN	00125
+V06N07		VN	00607		# GOPERF3 VN DISPLAY BEFORE V50
+V50N00		VN	5000
+PERF2MSK	OCT	00030		# FLASH, PERFORM
+V04N06		VN	00406
+PERF4MSK	OCT	14		# FLASH, BLANK R3
+GOAGIN		EQUALS	PINBRNCH
+REDOMASK	OCT	20010		# BITS 4 AND 14
+MARK3MSK	OCT	40230		# MARK, DECIMAL NOUN, PERFORM, FLASH
+MARK4MSK	OCT	40036		# MARK, PERFORM, FLASH, BLANK 2 AND 3
+NVCADR		CADR	REDOPRIO
+WAKECADR	CADR	MARKPLAY
+		CADR	PLAYJUM1
+
+OCT3400		OCT	3400		# EBANK MASK
+NBUSMASK	OCT	11210
+PMMASK		OCT	66521
+VERBMASK	=	MID7		# (OCT 37600)
+V05N00M1	OCT	1177		# V05 MINUS ONE
+GOXDSP		EQUALS	GOMARK
+GOXDSPR		EQUALS	GOMARKR
+GOXDSPF		EQUALS	GOMARKF
+GOXDSPFR	EQUALS	GOMARKFR
+ENDEXT		EQUALS	ENDMARK
+MPAC2SAV	EQUALS	BANKSET
+NVBUSMSK	OCT	700
+ASTROMSK	OCT	704
+MPERFMSK	OCT	40030		# BIT 15,5,4 FOR MARK,PERFORM,FLASH
+OCT34300	OCT	34300
+BITS15+7	OCT	40100
+BITS7+4		OCT	110
+DSPFLG		EQUALS	EBANKSAV
+MARKFLAG	EQUALS	MARKEBAN
+SAVEFLAG	EQUALS	EBANKTEM
+BITS5+11	OCT	2020		# * DON'T MOVE
+BITS4+10	OCT	1010		# * DON'T MOVE
+LOWLOAD		DEC	22
+BUSYMASK	OCT	77730
+CADRMASK	OCT	50
+PINMASK		EQUALS	13,14,15
+GOPLAY		EQUALS	NVDSP
+PRIOSAVE	EQUALS	R1SAVE
+COPMPAC		EQUALS	MPAC +3
+TEMPOR2		EQUALS	MPAC +4
+OUTHERE		EQUALS	MPAC +5
+COPINDEX	EQUALS	LOC
+USERPRIO	EQUALS	MODE
+GENMASK		EQUALS	MPAC +6
+PRIOOCT		OCT	20144		# PRIO
+MARKOCT		OCT	42424		# MARK
+# Page 1484
+		OCT	11254		# NORM
+
+IDLESLEP	OCT	74704
+OCT67777	OCT	67777
+LINUS		EQUALS	BLANKET
+FACEREG		EQUALS	MPAC
+PLAYTEM1	EQUALS	MPAC +1
+PLAYTEM3	EQUALS	MPAC +3
+PLAYTEM4	EQUALS	MPAC +4
+OCT40420	OCT	40420
+MAKEGEN		GENADR	MAKEPLAY
+OCT10200	OCT	10200
+V97N00		VN	09700		# PASTE FOR V97 OR V99
+OCT20100	OCT	20100
+CLOCKCON	OCT	24030
+
+
diff --git a/DOWN-TELEMETRY_PROGRAM.s b/DOWN-TELEMETRY_PROGRAM.s
new file mode 100644
index 0000000..f6c6027
--- /dev/null
+++ b/DOWN-TELEMETRY_PROGRAM.s
@@ -0,0 +1,457 @@
+# Copyright:    Public domain.
+# Filename:     DOWN-TELEMETRY_PROGRAM.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 1093-1102
+# Contact:      Ron Burkey <info@sandroid.org>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-08 RSB	Adapted from Colossus249/ file of same name
+#				and page images. Corrected various typos
+#				in the transcription of program comments,
+#				and these should be back-ported to 
+#				Colossus249.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 1093
+# PROGRAM NAME -- DOWN TELEMETRY PROGRAM
+# MOD NO. -- 0		TO COMPLETELY REWRITE THE DOWN TELEMETRY PROGRAM AND DOWNLINK ERASABLE DUMP PROGRAM FOR THE
+#			PURPOSE OF SAVING APPROXIMATELY 150 WORDS OF CORE STORAGE.
+#			THIS CHANGE REQUIRES AN ENTIRELY NEW METHOD OF SPECIFYING DOWNLINK LISTS.  REFER TO DOWNLINK
+#			LISTS LOG SECTION FOR MORE DETAILS.  HOWEVER THIS CHANGES WILL NOT AFFECT THE GROUND PROCESSING
+#			OF DOWN TELEMETRY DATA.
+# MOD BY -- KILROY, SMITH, DEWITT
+# DATE -- 02 OCT 67
+# AUTHORS -- KILROY, SMITH, DWWITT, DEWOLF, FAGIN
+# LOG SECTION -- DOWN-TELEMETRY PROGRAM
+#
+# FUNCTIONAL DESCRIPTION -- THIS ROUTINE IS INITIATED BY TELEMETRY END
+#	PULSE FROM THE DOWNLINK TELEMETRY CONVERTER.  THIS PULSE OCCURS
+#	AT 50 TIMES PER SEC (EVERY 20 MS) THEREFORE DODOWNTM IS
+#	EXECUTED AT THESE RATES.  THIS ROUTINE SELECTS THE APPROPRIATE
+#	AGC DATA TO BE TRANSMITTED DOWNLINK AND LOADS IT INTO OUTPUT
+#	CHANNELS 34 AND 35.  THE INFORMATION IS THEN GATED OUT FROM THE
+#	LGC IN SERIAL FASHION.
+#
+#	THIS PROGRAM IS CODED FOR A 2 SECOND DOWNLIST.  SINCE DOWNRUPTS
+#	OCCUR EVERY 20 MS AND 2 AGC COMPUTER WORDS CAN BE PLACED IN
+#	CHANNELS 34 AND 35 DURING EACH DOWNRUPT THE PROGRAM IS CAPABLE
+# 	OF SENDING 200 AGC WORDS EVERY 2 SECONDS.
+#
+# CALLING SEQUENCE -- NONE
+#	PROGRAM IS ENTERED VIA TCF DODOWNTM WHICH IS EXECUTED AS A
+#	RESULT OF A DOWNRUPT.  CONTROL IS RETURNED VIA TCF RESUME WHICH
+#	IN EFFECT IS A RESUME.
+#
+# SUBROUTINES CALLED -- NONE
+#
+# NORMAL EXIT MODE -- TCF RESUME
+#
+# ALARM OR ABORT EXIT MODE -- NONE
+#
+# RESTART PROTECTION:
+#	ON A FRESH START AND RESTART THE `STARTSUB' SUBROUTINE WILL INITIALIZE THE DOWNLIST POINTER (ACTUALLY
+#	DNTMGOTO) TO THE BEGINNING OF THE CURRENT DOWNLIST (I.E., CURRENT CONTENTS OF DNLSTADR).  THIS HAS THE
+#	EFFECT OF IGNORING THE REMAINDER OF THE DOWNLIST WHICH THE DOWN-TELEMETRY PROGRAM WAS WORKING ON WHEN
+#	THE RESTART (OR FRESH START) OCCURRED AND RESUME DOWN TELEMETRY FROM THE BEGINNING OF THE CURRENT
+#	DOWNLIST.
+#
+#	ALSO OF INTEREST IS THE FACT THAT ON A RESTART THE AGC WILL ZERO DOWNLINK CHANNELS 13, 34 AND 35.
+#
+# DOWNLINK LIST SELECTION:
+#	THE APPROPRIATE DOWNLINK LISTS ARE SELECTED BY THE FOLLOWING:
+#	1.	FRESH START
+#	2.	V37EXXE WHERE XX = THE MAJOR MODE BEING SELECTED.
+#	3.	UPDATE PROGRAM (P27)
+#	4.	NON-V37 SELECTABLE TYPE PROGRAMS (E.G., AGS INITIALIZATION (SUNDANCE, LUMINARY) AND P61-P62
+#		TRANSITIONS (COLOSSUS) ETC.).
+#
+# DOWNLINK LIST RULES AND LIMITATIONS:
+#	READ SECTION(S) WHICH FOLLOW `DEBRIS' WRITEUP.
+#
+# OUTPUT -- EVERY 2 SECONDS 100 DOUBLE PRECISION WORDS (I.E., 200 LGC
+#	COMPUTER WORDS) ARE TRANSMITTED VIA DOWNLINK.
+#
+# ERASABLE INITIALIZATION REQUIRED -- NONE
+#	`DNTMGOTO' AND `DNLSTADR' ARE INITIALIZED BY THE FRESH START PROGRAM.
+#
+# DEBRIS (ERASABLE LOCATIONS DESTROYED BY THIS PROGRAM) --
+#	LDATALST, DNTMBUFF TO DNTMBUFF +21D, TMINDEX, DNQ.
+# Page 1094
+# (No source on this page of the original assembly listing.)
+
+# Page 1095
+# DODOWNTM IS ENTERED EVERY 20 MS BY AN INTERRUPT TRIGGERED BY THE
+# RECEIPT OF AN ENDPULSE FROM THE SPACECRAFT TELEMETRY PROGRAMMER.
+#
+# NOTES REGARDING DOWNLINK LISTS ASSOCIATED WITH THIS PROGRAM:
+# 1.	DOWNLISTS.  DOWNLISTS MUST BE COMPILED IN THE SAME BANK AS THE
+#	DOWN-TELEMETRY PROGRAM.  THIS IS DONE FOR EASE OF CODING, FASTER
+#	EXECUTION.
+# 2.	EACH DOWNLINK LIST CONSISTES OF A CONTROL LIST AND A NUMBER OF
+#	SUBLISTS.
+# 3.	A SUBLIST REFERS TO A SNAPSHOT OR DATA COMMON TO THE SAME OR OTHER
+#	DOWNLINK LISTS.  ANY SUBLIST CONTAINING COMMON DATA NEEDS TO BE
+#	CODED ONLY ONCE FOR THE APPLICABLE DOWNLINK LISTS.
+# 4.	SNAPSHOT SUBLISTS REFER SPECIFICALLY TO HOMOGENEOUS DATA WHICH MUST BE
+#	SAVED IN A BUFFER DURING ONE DOWNRUPT.
+# 5.	THE 1DNADR FOR THE 1ST WORD OF SNAPSHOT DATA IS FOUND AT THE END
+#	OF EACH SNAPSHOT SUBLIST, SINCE THE PROGRAM CODING SENDS THIS DP WORD
+#	IMMEDIATELY AFTER STORING THE OTHERS IN THE SNAPSHOT BUFFER.
+# 6.	ALL LISTS ARE COMBINATIONS OF CODED ERASABLE ADDRESS CONSTANTS
+#	CREATED FOR THE DOWNLIST PROGRAM.
+#	A.	1DNADR			1-WORD DOWNLIST ADDRESS.
+#		SAME AS ECADR, BUT USED WHEN THE WORD ADDRESSED IS THE LEFT
+#		HALF OF A DOUBLE-PRECISION WORD FOR DOWN TELEMETRY.
+#	B.	2DNADR - 6DNADR		N-WORD DOWNLIST ADDRESS, N = 2 - 6.
+#		SAME AS 1DNADR, BUT WTIH THE 4 UNUSED BITS OF THE ECADR FORMAT
+#		FILLED IN WITH 0001-0101.  USED TO POINT TO A LIST OF N DOUBLE-
+#		PRECISION WORDS, STORED CONSECUTIVELY, FOR DOWN TELEMETRY.
+#	C.	DNCHAN			DOWNLIST CHANNEL ADDRESS.
+#		SAME AS 1DNADR, BUT WITH PREFIX BITS 0111.  USED TO POINT TO
+#		A PAIR OF CHANNELS FOR DOWN TELEMETRY.
+#	D.	DNPTR			DOWN-TELEMETRY SUBLIST POINTER.
+#		SAME AS CAF BUT TAGGES AS A CONSTANT.  USED IN CONTROL LIST TO POINT TO A SUBLIST.
+#		CAUTION --- A DNPTR CANNOT BE USED IN A SUBLIST.
+# 7.	THE WORD ORDER CODE IS SET TO ZERO AT THE BEGINNING OF EACH DOWNLIST (I.E., CONTROL LIST) AND WHEN
+#	A `1DNADR TIME2' IS DETECTED IN THE CONTROL LIST (ONLY).
+# 8.	IN THE SNAPSHOT SUBLIST ONLY, THE DNADR'S CANNOT POINT TO THE FIRST WORD OF ANY EBANK.
+#
+# DOWNLIST LIST RESTRICTIONS:
+# (THE FOLLOWING POINTS MAY BE LISTED ELSEWHERE BUT ARE LISTED HERE SO IT IS CLEAR THAT THESE THINGS CANNOT BE
+# DONE)
+# 1.	SNAPSHOT DOWNLIST:
+#	(A) CANNOT CONTAIN THE FOLLOWING ECADRS (I.E., 1DNADR'S): Q, 400, 1000, 1400, 2000, 2400, 3000, 3400.
+#	(B) CAN CONTAIN ONLY 1DNADR'S
+# 2.	ALL DOWNLINKED DATA (EXCEPT CHANNELS) IS PICKED UP BY A DCA SO DOWNLINK LISTS CANNOT CONTAIN THE
+#	EQUIVALENT OF THE FOLLOWING ECADRS (I.E., IDNADRS): 377, 777, 1377, 1777, 2377, 2777, 3377, 3777.
+# 	(NOTE: TE TERM `EQUIVALENT' MEANT THAT THE IDNADR TO 6DNADR WILL BE PROCESSED LIKE 1 TO 6 ECADRS)
+# 3.	CONTROL LISTS AND SUBLISTS CANNOT HAVE ENTRIES = OCTAL 00000 OR OCTAL 77777
+# Page 1096
+# 4.	THE `1DNADR TIME2' WHICH WILL CAUSE THE DOWNLINT PROGRAM TO SET THE WORDER CODE TO 3 MUST APPEAR IN THE
+#	CONTROL SECTION OF THE DOWNLIST.
+# 5.	`DNCHAN 0' CANNOT BE USED.
+# 6.	`DNPTR 0' CANNOT BE USED.
+# 7.	DNPTR CANNOT APPEAR IN A SUBLIST.
+#
+# EBANK SETTINGS
+#	IN THE PROCESS OF SETTING THE EBANK (WHEN PICKING UP DOWNLINK DATA) THE DOWN TELEMETRY PROGRAM PUTS
+#	`GARBAGE' INTO BITS15-12 OF EBANK.  HUGH BLAIR-SMITH WARNS US THAT BITS15-12 OF EBANK MAY BECOME
+#	SIGNIFICANT SOMEDAY IN THE FUTURE.  IF/WHEN THAT HAPPENS, THE PROGRAM SHOULD INSURE (BY MASKING ETC.)
+#	THAT BITS 15-12 OF EBANK ARE ZERO.
+#
+# INITIALIZATION REQUIRED -- TO INTERRUPT CURRENT LIST AND START A NEW ONE.
+#	1. ADRES OF DOWNLINK LIST INTO DNLSTADR
+#	2. NEGONE INTO SUBLIST
+#	3. NEGONE INTO DNECADR
+
+		BANK	22
+		SETLOC	DOWNTELM
+		BANK
+
+		EBANK=	DNTMBUFF
+		
+		COUNT	05/DPROG
+		
+DODOWNTM	TS	BANKRUPT
+		EXTEND
+		QXCH	QRUPT		# SAVE Q
+		CA	BIT7		# SET WORD ORDER CODE TO 1.  EXCEPTION: AT
+		EXTEND			# THE BEGINNING OF EACH LIST THE WORD
+		WOR	CHAN13		# CODE WILL BE SET BACK TO 0.
+		TC	DNTMGOTO	# GOTO APPROPRIATE PHASE OF PROGRAM
+
+DNPHASE1	CA	NEGONE		# INITIALIZE ALL CONTROL WORDS
+		TS	SUBLIST		# WORDS TO MINUS ONE
+		TS	DNECADR
+		CA	LDNPHAS2	# SET DNTMGOTO = 0 ALL SUSEQUENT DOWRUPTS
+		TS	DNTMGOTO	# GO TO DNPHASE2
+		TCF	NEWLIST
+DNPHASE2	CCS	DNECADR		# SENDING OF DATA IN PROGRESS
+DODNADR		TC	FETCH2WD	# YES -- THEN FETCH THE NEXT 2 SP WORDS
+MINTIME2	-1DNADR	TIME2		# NEGATIVE OF TIME2 1DNADR
+		TCF	+1		# (ECADR OF 3776 + 74001 = 77777)
+
+		CCS	SUBLIST		# IS THE SUBLIST IN CONTROL
+# Page 1097
+		TCF	NEXTINSL	# YES
+DNADRDCR	OCT	74001		# DNADR COUNT AND ECADR DECREMENTER
+
+CHKLIST		CA	CTLIST
+		EXTEND
+		BZMF	NEWLIST		# IT WILL BE NEGATIVE AT END OF LIST
+		TCF	NEXTINCL
+NEWLIST		INDEX	DNLSTCOD
+		CA	DNTABLE		# INITIALIZE CTLIST WITH
+		TS	CTLIST		#	STARTING ADDRESS OF NEW LIST
+		CS	DNLSTCOD
+		TCF	SENDID +3
+NEXTINCL	INDEX	CTLIST
+		CA	0
+		CCS	A
+		INCR	CTLIST		# SET POINTER TO PICK UP NEXT CTLIST WORD
+		TCF	+4		# ON NEXT ENTRY TO PROG.  (A SHOULD NOT =0)
+		XCH	CTLIST		# SET CTLIST TO NEGATIVE AND PLACE(CODING)
+		COM			# UNCOMPLEMENTED DNADR INTO A.    (FOR LA)
+		XCH	CTLIST		#                                 (ST IN )
+	+4	INCR	A		#                                 (CTLIST)
+ 		TS	DNECADR		# SAVE DNADR
+		AD	MINTIME2	# TEST FOR TIME2 (NEG. OF ECADR)
+		CCS	A
+		TCF	SETWO +1	# DON'T SET WORD ORDER CODE
+MINB1314	OCT	47777		# MINUS BIT 13 AND 14 (CAN'T GET HERE)
+		TCF	SETWO +1	# DON'T SET WORD ORDER CODE
+SETWO		TC	WOZERO		# GO SET WORD ORDER CODE TO ZERO.
+ 	+1	CA	DNECADR		# RELOAD A WITH THE DNADR.
+ 	+2	AD	MINB1314	# IS THIS A REGULAR DNADR?
+ 		EXTEND
+		BZMF	FETCH2WD	# YES.  (A MUST NEVER BE ZERO)
+		AD	MINB12		# NO.  IS IT A POINTER (DNPTR) OR A
+		EXTEND			#	CHANNEL(DNCHAN)
+		BZMF	DODNPTR		# IT'S A POINTER.  (A MUST NEVER BE ZERO)
+
+DODNCHAN	TC	6		# (EXECUTED AS EXTEND)  IT'S A CHANNEL
+		INDEX	DNECADR
+		INDEX	0 -4000		# (EXECUTED AS READ)
+		TS	L
+		TC	6		# (EXECUTED AS EXTEND)
+		INDEX	DNECADR
+		INDEX	0 -4001		# (EXECUTED AS READ)
+		TS	DNECADR		# SET DNECADR
+		CA	NEGONE		#	TO MINUS
+		XCH	DNECADR		#		WHILE PRESERVING A.
+		TCF	DNTMEXIT	# GO SEND CHANNELS
+
+WOZERO		CS	BIT7
+		EXTEND
+# Page 1098
+		WAND	CHAN13		# SET WORD ORDER CODE TO ZERO
+		TC	Q		# RETURN TO CALLER
+
+DODNPTR		INDEX	DNECADR		# DNECADR CONTAINS ADRES OF SUBLIST
+		0	0		# CLEAR AND ADD LIST ENTRY INTO A.
+		CCS	A		# IS THIS A SNAPSHOT SUBLIST
+		CA	DNECADR		# NO, IT IS A REGULAR SUBLIST.
+		TCF	DOSUBLST	# A MUST NOT BE ZERO.
+
+		XCH	DNECADR		# YES.  IT IS A SNAPSHOT SUBLIST.
+		TS	SUBLIST		# C(DNECADR) INTO SUBLIST
+		CAF	ZERO		#	A    INTO     A
+		XCH	TMINDEX		# (NOTE:  TMINDEX = DNECADR)
+
+# THE FOLLOWING CODING (FROM SNAPLOOP TO SNAPEND) IS FOR THE PURPOSE OF TAKING A SNAPSHOT OF 12 DP REGISTERS.
+# THIS IS DONE BY SAVING 11 DP REGISTERS IN DNTMBUFF AND SENDING THE FIRST DP WORD IMMEDIATELY.
+# THE SNAPSHOT PROCESSING IS THE MOST TIME CONSUMING AND THEREFORE THE CODING AND LIST STRUCTURE WERE DESIGNED
+# TO MINIMIZE TIME.  THE TIME OPTIMIZATION RESULTS IN RULES UNIQUE TO THE SNAPSHOT PORTION OF THE DOWNLIST.
+# THESE RULES ARE ......
+#	1.	ONLY 1DNADR'S CAN APPEAR IN THE SNAPSHOT SUBLIST
+#	2.	THE 1DNADR'S CANNOT REFER TO THE FIRST LOCATION IN ANY BANK.
+
+SNAPLOOP	TS	EBANK		# SET EBANK
+		MASK	LOW8		# ISOLATE RELATIVE ADDRESS
+		EXTEND
+		INDEX	A
+		EBANK=	1401
+		DCA	1401		# PICK UP 2 SNAPSHOT WORDS.
+		EBANK=	DNTMBUFF
+		INDEX	TMINDEX
+		DXCH	DNTMBUFF	# STORE 2 SNAPSHOT WORDS IN BUFFER
+		INCR	TMINDEX		# SET BUFFER INDEX FOR NEXT 2 WORDS.
+		INCR	TMINDEX
+SNAPAGN		INCR	SUBLIST		# SET POINTER TO NEXT 2 WORDS OF SNAPSHOT
+		INDEX	SUBLIST
+		0	0		# = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
+		CCS	A		# TEST FOR LAST TWO WORDS OF SNAPSHOT.
+		TCF	SNAPLOOP	# NOT LAST TWO.
+LDNPHAS2	GENADR	DNPHASE2
+		TS	SUBLIST		# YES, LAST.  SAVE A.
+		CA	NEGONE		# SET DNECADR AND
+		TS	DNECADR		#	SUBLIST POINTERS
+		XCH	SUBLIST		#		TO NEGATIVE VALUES
+		TS	EBANK
+		MASK	LOW8
+		EXTEND
+		INDEX	A
+		EBANK=	1401
+# Page 1099
+		DCA	1401		# PICK UP FIRST 2 WORDS OF SNAPSHOT.
+		EBANK=	DNTMBUFF
+SNAPEND		TCF	DNTMEXIT	# NOW GO SEND THEM.
+
+FETCH2WD	CA	DNECADR
+		TS	EBANK		# SET EBANK
+		MASK	LOW8		# ISOLATE RELATIVE ADDRESS
+		TS	L
+		CA	DNADRDCR	# DECREMENT COUNT AND ECADR
+		ADS	DNECADR
+		EXTEND
+		INDEX	L
+		EBANK=	1400
+		DCA	1400		# PICK UP 2 DATA WORDS
+		EBANK=	DNTMBUFF
+		TCF	DNTMEXIT	# NOW GO SEND THEM.
+
+DOSUBLST	TS	SUBLIST		# SET SUBLIST POINTER
+NEXTINSL	INDEX	SUBLIST
+		0	0		# = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
+		CCS	A		# IS IT THE END OF THE SUBLIST
+		INCR	SUBLIST		# NO --
+		TCF	+4
+		TS	SUBLIST		# SAVE A.
+		CA	NEGONE		# SET SUBLIST TO MINUS
+		XCH	SUBLIST		# RETRIEVE A.
+	+4	INCR	A
+ 		TS	DNECADR		# SAVE DNADR
+		TCF	SETWO +2	# GO USE COMMON CODING (PROBLEMS WOULD
+					# OCCUR IF THE PROGRAM ENCOUNTERED A
+					# DNPTR NOW)
+
+DNTMEXIT	EXTEND			# DOWN-TELEMETRY EXIT
+		WRITE	DNTM1		# TO SEND A + L TO CHANNELS 34 + 35
+		CA	L		# RESPECTIVELY
+TMEXITL		EXTEND
+		WRITE	DNTM2
+TMRESUME	TCF	RESUME		# EXIT TELEMTRY PROGRAM VIA RESUME.
+
+MINB12		EQUALS	-1/8
+DNECADR		EQUALS	TMINDEX
+CTLIST		EQUALS	LDATALST
+SUBLIST		EQUALS 	DNQ
+
+# Page 1100
+# SUBROUTINE NAME -- DNDUMP
+#
+# FUNCTIONAL DESCRIPTION -- TO SEND (DUMP) ALL 8 BANKS OF ERASABLE STORAGE TWICE.  BANKS ARE SENT ONE AT A TIME
+#	EACH BANK IS PRECEDED BY AN ID WORD, SYNCH BITS, ECADR AND TIME1 FOLLOWED BY THE 256D WORDS OF EACH
+#	EBANK.  EBANKS ARE DUMPED IN ORDER (I.E., EBANK 0 FIRST, THEN EBANK1 ETC.)
+#
+# CALLING SEQUENCE -- THE GROUND OR ASTRONAUT BY KEYING V74E CAN INITIALIZE THE DUMP.
+#	AFTER KEYING IN V74E THE CURRENT DOWNLIST WILL BE IMMEDIATELY TERMINATED AND THE DOWNLINK ERASABLE DUMP
+#	WILL BEGIN.
+#
+#	ONCE INITITIATED THE DOWNLINK ERASABLE DUMP CAN BE TERMINATED (AND INTERRUPTED DOWNLIST REINSTATED) ONLY
+#	BY THE FOLLOWING:
+#
+#	1.	A FRESH START
+#	2.	COMPLETION OF ALL DOWNLINK DUMPS REQUESTED (ACCORDING TO BITS SET IN DUMPCNT).  NOTE THAT DUMPCNT
+#		CAN BE ALTERED BY A V21N01.
+#	3.	AND INVOLUNTARILY BY A RESTART.
+#
+# NORMAL EXIT MODE -- TCF DNPHASE1
+#
+# ALARM OR ABORT MODE -- NONE
+#
+# *SUBROUTINES CALLED -- NONE
+#
+# ERASABLE INITIALIZATION REQUIRED --
+#	DUMPCNT	OCT 20000	IF 4 COMPLETE ERASABLE DUMPS ARE DESIRED
+#	DUMPCNT OCT 10000	IF 2 COMPLETE ERASABLE DUMPS ARE DESIRED
+#	DUMPCNT	OCT 04000	IF 1 COMPLETE ERASABLE DUMP  IS  DESIRED
+#
+# DEBRIS -- DUMPLOC, DUMPSW, DNTMGOTO, EBANK, AND CENTRAL REGISTERS
+#
+# TIMING --	TIME (IN SECS) = ((NO.DUMPS)*(NO.EBANKS)*(WDSPEREBANK + NO.IDWDS)) / NO.WDSPERSEC
+#		TIME (IN SECS) =  (   4    )*(    8    )*(    256     +     4   )  /     100
+#	   THUS TIME (IN SECS TO SEND DUMP OF ERASABLE 4 TIMES VIA DOWNLINK) = 83.2 SECONDS
+#
+# STRUCTURE OF ONE EBANK AS IT IS SENT BY DOWNLINK PROGRAM --
+#	(REMINDER -- THIS ONLY DESCRIBES ONE OF THE 8 EBANKS X 4 (DUMPS) = 32 EBANKS WHICH WILL BE SENT BY DNDUMP)
+#
+#	DOWNLIST				W
+#	  WORD	TAKEN FROM CONTENTS OF	EXAMPLE	O	COMMENTS
+#	    1	ERASID			 0177X	0	DOWNLIST I.D. FOR DOWNLINK ERASABLE DUMP (X=7 CSM, 6 LM)
+#	    2	LOWIDCOD		 77340 	1	DOWNLINK SYNCH BITS.  (SAME ONE USED IN ALL OTHER DOWNLISTS)
+#	    3	DUMPLOC			 13400	1	(SEE NOTES ON DUMPLOC) 1 = 3RD ERAS DUMP, 3400=ECADR OF 5TH WD
+#	    4	TIME1			 14120	1	TIME IN CENTISECONDS
+#	    5	FIRST WORD OF EBANK X	 03400	1	IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1400 (ECADR 3400)
+#	    6	2ND   WORD OF EBANK X	 00142	1	IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1401 (ECADR 3401)
+#	    7.  3RD   WORD OF EBANK X	 00142	1	IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1402 (ECADR 3402)
+#	    .
+#	    .
+#	    .
+#	 260D	256TH WORD OF EBANK X	 03777	1	IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1777 (ECADR 3777)
+#
+# NOTE --	DUMPLOC CONTAINS THE COUNTER AND ECADR FOR EACH WORD BEING SENT.
+#		THE BIT STRUCTURE OF DUMPLOC IS FOLLOW --
+#						X = NOT USED
+#		X ABC EEE RRRRRRRR	      ABC = ERASABLE DUMP COUNTER (I.E. ABC = 0,1,2, OR 3 WHICH MEANS THAT
+#						    COMPLETE ERASABLE DUMP NUMBER 1,2,3, OR 4 RESPECTIVELY IS IN PROGRESS)
+#					      EEE = EBANK BITS
+#					 RRRRRRRR = RELATIVE ADDRESS WITHIN AN EBANK
+
+# Page 1101
+DNDUMPI		CA	ZERO		# INITIALIZE DOWNLINK
+		TS	DUMPLOC		# ERASABLE DUMP
+	+2	TC	SENDID		# GO SEND ID AND SYNCH BITS
+		CA	LDNDUMP1	# SET DNTMGOTO
+		TS	DNTMGOTO	# TO LOCATION FOR NEXT PASS
+		CA	TIME1		# PLACE TIME1
+		XCH	L		# INTO L
+		CA	DUMPLOC		# AND ECADR OF THIS EBANK INTO A
+		TCF	DNTMEXIT	# SEND DUMPLOC AND TIME1
+
+LDNDUMP		ADRES	DNDUMP
+LDNDUMP1	ADRES	DNDUMP1
+
+DNDUMP		CA	TWO		# INCREMENT ECADR IN DUMPLOC
+		ADS	DUMPLOC		# TO NEXT DP WORD TO BE
+		MASK	LOW8		# DUMPED AND SAVE IT.
+		CCS	A		# IS THIS THE BEGINNING OF A NEW EBANK
+		TCF	DNDUMP2		# NO -- THEN CONTINUE DUMPING
+		CA	DUMPLOC		# YES -- IS THIS THE END OF THE
+		MASK	DUMPCNT		# N-TH(N = 1 TO 4) COMPLETE ERASABLE
+		MASK	PRIO34		# DUMP(BIT14 FOR 4, BIT13 FOR 2 OR BIT12
+		CCS	A		# FOR 1 COMPLETE ERASABLE DUMP(S)).
+		TCF	DNPHASE1	# YES -- SEND DOWNLIST AGAIN
+					# AGAIN
+		TCF	DNDUMPI +2	# NO -- GO BACK AND INITIALZE NEXT BANK
+		
+DNDUMP1		CA	LDNDUMP		# SET DNTMGOTO
+		TS	DNTMGOTO	# FOR WORDS 3 TO 256D OF CURRENT EBANK
+
+DNDUMP2		CA	DUMPLOC
+		TS	EBANK		# SET EBANK
+		MASK	LOW8		# ISOLATE RELATIVE ADDRESS.
+		TS	Q		# (NOTE: MASK INSTRUCTION IS USED TO PICK
+		CA	NEG0		# UP ERASABLE REGISTERS TO THAT EDITING
+		TS	L		# REGISTERS 20-23 WILL NOT BE ALTERED.)
+		INDEX	Q
+		EBANK=	1400		# PICK UP LOW ORDER REGISTER OF PAIR
+		MASK	1401		# OF ERASABLE REGISTERS.
+		XCH	L
+		INDEX	Q		# PICK UP HIGH ORDER REGISTER OF PAIR
+		MASK	1400		# OF ERASABLE REGISTERS.
+		EBANK=	DNTMBUFF
+		TCF	DNTMEXIT	# GO SEND THEM
+
+SENDID		EXTEND			# ** ENTRANCE USED BY ERASABLE DUMP PROG. **
+		QXCH	DNTMGOTO	# SET DNTMGOTO SO NEXT TIME PROG WILL GO
+		CAF	ERASID		# TO LOCATION FOLLOWING `TC SENDID'
+
+		TS	L		# ** ENTRANCE USED BY REGULAR DOWNLINK PG **
+# Page 1102
+		TC	WOZERO		# GO SET WORD ORDER CODE TO ZERO
+		CAF	LOWIDCOD	# PLACE SPECIAL ID CODE INTO L
+		XCH	L		# AND ID BACK INTO A
+		TCF	DNTMEXIT	# SEND DOWNLIST ID CODE(S).
+
+
+
diff --git a/DOWNLINK_LISTS.s b/DOWNLINK_LISTS.s
new file mode 100644
index 0000000..e772786
--- /dev/null
+++ b/DOWNLINK_LISTS.s
@@ -0,0 +1,410 @@
+# Copyright:	Public domain.
+# Filename:	DOWNLINK_LISTS.agc
+# Purpose:	Part of the source code for Comanche, build 055. It
+#		is part of the source code for the Command Module's
+#		(CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:	yaYUL
+# Reference:	pp. 170-180
+# Contact:	Ron Burkey <info@sandroid.org>,
+#  		Fabrizio Bernardini <fabrizio@spacecraft.it>
+# Website:	http://www.ibiblio.org/apollo.
+# Mod history:	10/05/09 FB	Transcription of Batch FB-1 Assignment.
+#
+# The contents of the "Comanche055" files, in general, are transcribed
+# from scanned documents.
+#
+#	Assemble revision 055 of AGC program Comanche by NASA
+#	2021113-051.  April 1, 1969.
+#
+#	This AGC program shall also be referred to as Colossus 2A
+#
+#	Prepared by
+#			Massachussets Institute of Technology
+#			75 Cambridge Parkway
+#			Cambridge, Massachusetts
+#
+#	under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 170
+		BANK	22
+		SETLOC	DOWNTELM
+		BANK
+
+		EBANK=	DNTMBUFF
+
+# SPECIAL DOWNLINK OP CODES
+#	OP CODE		ADDRESS (EXAMPLE)	SENDS...		BIT 15		BITS 14-12	BITS 11-0
+#	-------		-----------------	--------		------		----------	---------
+#	1DNADR		TIME2			(2 AGC WDS)		0		0		ECADR
+#	2DNADR		TEPHEM			(4 AGC WDS)		0		1		ECADR
+#	3DNADR		VGBODY			(6 AGC WDS)		0		2		ECADR
+#	4DNADR		STATE			(8 AGC WDS)		0		3		ECADR
+#	5DNADR		UPBUFF			(10 AGC WDS)		0		4		ECADR
+#	6DNADR		DSPTAB			(12 AGC WDS)		0		5		ECADR
+#	DNCHAN		30			CHANNELS		0		7		CHANNEL
+#													ADDRESS
+#	DNPTR		NEXTLIST		POINTS TO NEXT		0		6		ADRES
+#						LIST
+#
+# DOWNLIST FORMAT DEFINITIONS AND RULES --
+# 1. END OF A LIST = -XDNADR (X = 1 TO 6), -DNPTR, OR -DNCHAN.
+# 2. SNAPSHOT SUBLIST = LIST WHICH STARTS WITH A -1DNADR.
+# 3. SNAPSHOT SUBLIST CAN ONLY CONTAIN 1DNADRS.
+# 4. TIME2 1DNADR MUST BE LOCATED IN THE CONTROL LIST OF A DOWNLIST.
+# 5. ERASABLE DOWN TELEMETRY WORDS SHOULD BE GROUPED IN SEQUENTIAL
+#    LOCATIONS AS MUCH AS POSSIBLE TO SAVE STORAGE USED BY DOWNLINK LISTS.
+# 6. THE DOWNLINK LISTS (INCLUDING SUBLISTS) ARE ORGANIZED SUCH THAT THE ITEMS LISTED FIRST (IN FRONT OF FBANK) ARE
+#    SENT FIRST.  EXCEPTION--- SNAPSHOT SUBLISTS.  IN THE SNAPSHOT SUBLISTS THE DATA REPRESENTED BY THE FIRST
+#    11 1DNADRS IS PRESERVED (IN ORDER) IN DNTMBUFF AND SENT BY THE NEXT 11 DOWNRUPTS.  THE DATA REPRESENTED BY THE
+#    LIST IS SENT IMMEDIATELY.
+
+		COUNT	05/DLIST
+ERASZERO	EQUALS	7
+SPARE		EQUALS	ERASZERO			# USE SPARE TO INDICATE AVAILABLE SPACE
+LOWIDCOD	OCT	77340				# LOW ID CODE
+
+NOMDNLST	EQUALS	CMCSTADL			# FRESH START AND POST P27 DOWNLIST
+UPDNLIST	EQUALS	CMENTRDL			# UPDATE PROGRAM (P27) DOWNLIST
+
+# Page 171
+# CSM POWERED FLIGHT DOWNLIST
+#
+# --------------------- CONTROL LIST -------------------------
+
+CMPOWEDL	EQUALS
+		DNPTR	CMPOWE01			# COLLECT SNAPSHOT
+		6DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMPOWE02			# COLLECT SECOND SNAPSHOT
+		4DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMPOWE03			# COMMON DATA
+		1DNADR	TIG				# TIG,+1
+		1DNADR	DELLT4				# DELLT4,+1
+		3DNADR	RTARG				# RTARG,+1,+2,...+5
+		1DNADR	TGO				# TGO,+1
+		1DNADR	PIPTIME1			# PIPTIME1,+1
+		3DNADR	DELV				# DELV,+1,...,+4,+5
+		1DNADR	PACTOFF				# PACTOFF,YACTOFF
+		1DNADR	PCMD				# PCMD,YCMD
+		1DNADR	CSTEER				# CSTEER,+1
+		3DNADR	DELVEET1			# CSI DELTA VELOCITY COMPONENTS   (31-33)
+		6DNADR	REFSMMAT			# REFSMMAT,+1,...+10,+11
+		DNPTR	CMPOWE04			# COMMON DATA
+		1DNADR	TIME2				# TIME2,TIME1
+		DNPTR	CMPOWE05			# COMMON DATA
+		6DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMPOWE02			# COLLECT SNAPSHOT
+		4DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMPOWE03			#
+		DNPTR	CMPOWE06			# COMMON DATA
+		1DNADR	ELEV				# ELEV,+1
+		1DNADR	CENTANG				# CENTANG,+1
+		1DNADR	DELTAR				# DELTAR,+1
+		1DNADR	STATE	+10D			# FLAGWORDS 10 AND 11
+		1DNADR	TEVENT				# TEVENT,+1
+		1DNADR	PCMD				# PCMD,YCMD
+		1DNADR	OPTMODES			# OPTMODES,HOLDFLAG
+		DNPTR	CMPOWE07			# COMMON DATA
+		3DNADR	VGTIG				# VGTIG,+1,...,+4,+5
+		-3DNADR DELVEET2			# CDH DELTA VELOCITY COMPONENTS   (98-100)
+
+# --------------------- SUB LISTS ---------------------------
+
+CMPOWE01	-1DNADR	RN	+2			# RN +2,+3			SNAPSHOT DATA
+		1DNADR	RN	+4			# RN +4,+5
+		1DNADR	VN				# VN, +1
+		1DNADR	VN	+2			# VN +2,+3
+		1DNADR	VN	+4			# VN +4,+5
+		1DNADR	PIPTIME				# PIPTIME, +1
+		-1DNADR	RN				# RN, +1
+
+CMPOWE02	-1DNADR	CDUZ				# CDUZ,CDUT			SNAPSHOT DATA
+# Page 172
+		1DNADR	ADOT				# ADOT,+1/OGARATE,+1
+		1DNADR	ADOT	+2			# ADOT+2,+3/OMEGAB+2,+3
+		1DNADR	ADOT	+4			# ADOT+4,+5/OMEGAB+4,+5
+		-1DNADR	CDUX				# CDUX,CDUY
+
+CMPOWE03	2DNADR	AK				# AK,AK1,AK2,RCSFLAGS		COMMON DATA
+		-2DNADR	THETADX				# THETADX,THETADY,THETADZ,GARBAGE
+
+CMPOWE04	5DNADR	STATE				# FLAGWRD0 THRU FLAGWRD9	COMMON DATA
+		-6DNADR	DSPTAB				# DISPLAY TABLES
+
+CMPOWE05	-1DNADR	R-OTHER	+2			# R-OTHER+2,+3			SNAPSHOT DATA
+		1DNADR	R-OTHER	+4			# R-OTHER+4,+5
+		1DNADR	V-OTHER				# V-OTHER,+1
+		1DNADR	V-OTHER	+2			# V-OTHER+2,+3
+		1DNADR	V-OTHER	+4			# V-OTHER+4,+5
+		1DNADR	T-OTHER				# T-OTHER,+1
+		-1DNADR	R-OTHER				# R-OTHER,+1
+
+CMPOWE06	1DNADR	RSBBQ				# RSBBQ,+1			COMMON DATA
+		3DNADR	CADRFLSH			# CADRFLSH,+1,+2,FAILREG,+1,+2
+		-2DNADR	CDUS				# CDUS,PIPAX,PIPAY,PIPAZ
+
+CMPOWE07	1DNADR	LEMMASS				# LEMMASS,CSMMASS		COMMON DATA
+		1DNADR	DAPDATR1			# DAPDATR1,DAPDATR2
+		2DNADR	ERRORX				# ERRORX,ERRORY,ERRORZ,GARBAGE
+		3DNADR	WBODY				# WBODY,...+5/OMEGAC,...+5
+		2DNADR	REDOCTR				# REDOCTR,THETAD,+1,+2
+		1DNADR	IMODES30			# IMODES30,IMODES33
+		DNCHAN	11				# CHANNELS 11,12
+		DNCHAN	13				# CHANNELS 13,14
+		DNCHAN	30				# CHANNELS 30,31
+		-DNCHAN	32				# CHANNELS 32,33
+
+# -----------------------------------------------------------
+# Page 173
+# CSM COAST AND ALIGNMENT DOWNLIST
+
+# --------------------- CONTROL LIST ------------------------
+
+CMCSTADL	EQUALS					# SEND ID BY SPECIAL CODING
+		DNPTR	CMCSTA01			# COLLECT SNAPSHOT
+		6DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMCSTA02			# COLLECT SECOND SNAPSHOT
+		4DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMCSTA03			# COMMON DATA
+		1DNADR	TIG				# TIG,+1
+		1DNADR	BESTI				# BESTI,BESTJ
+		4DNADR	MARKDOWN			# MARKDOWN,+1,...+5,+6,GARBAGE
+		4DNADR	MARK2DWN			# MARK2DWN,+1,...+5,+6
+		2DNADR	HAPOX				# APOGEE AND PERIGEE FROM R30   (28-29)
+		1DNADR	PACTOFF				# PACTOFF, YACTOFF                 (30)
+		3DNADR	VGTIG				# VGTIG,...+5
+		6DNADR	REFSMMAT			# REFSMMAT,+1,...+10,+11
+		DNPTR	CMCSTA04			# COMMON DATA
+		1DNADR	TIME2				# TIME2,TIME1
+		DNPTR	CMCSTA05			# COLLECT SNAPSHOT
+		6DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMCSTA02			# COLLECT SNAPSHOT
+		4DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMCSTA03			# COMMON DATA
+		DNPTR	CMCSTA06			# COMMON DATA
+		3DNADR	OGC				# OGC,+1,IGC,+1,MGC,+1
+		1DNADR	STATE	+10D			# FLAGWRDS 10 AND 11
+		1DNADR	TEVENT				# TEVENT,+1
+		1DNADR	LAUNCHAZ			# LAUNCHAZ,+1
+		1DNADR	OPTMODES			# OPTMODES,HOLDFLAG
+		DNPTR	CMCSTA07			# COMMON DATA
+		-6DNADR	DSPTAB				# DISPLAY TABLES
+
+# --------------------- SUB LISTS ---------------------------
+
+CMCSTA01	EQUALS	CMPOWE01			# COMMON DOWNLIST DATA
+
+CMCSTA02	EQUALS	CMPOWE02			# COMMON DOWNLIST DATA
+
+CMCSTA03	EQUALS	CMPOWE03			# COMMON DOWNLIST DATA
+
+CMCSTA04	EQUALS	CMPOWE04			# COMMON DOWNLIST DATA
+
+CMCSTA05	EQUALS	CMPOWE05			# COMMON DOWNLIST DATA
+
+CMCSTA06	EQUALS	CMPOWE06			# COMMON DOWNLIST DATA
+
+CMCSTA07	EQUALS	CMPOWE07			# COMMON DOWNLIST DATA
+
+# Page 174
+# -----------------------------------------------------------
+# Page 175
+# CSM RENDEZVOUS AND PRETHRUST LIST
+
+# --------------------- CONTROL LIST ------------------------
+
+CMRENDDL	EQUALS					# SEND ID BY SPECIAL CODING
+		DNPTR	CMREND01			# COLLECT SNAPSHOT
+		6DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMREND02			# COLLECT SECOND SNAPSHOT
+		4DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMREND03			# COMMON DATA
+		1DNADR	TIG				# TIG,+1
+		1DNADR	DELLT4				# DELLT4,+1
+		3DNADR	RTARG				# RTARG,+1,...+4,+5
+		1DNADR	VHFTIME				# VHFTIME,+1
+		4DNADR	MARKDOWN			# MARKTIME(DP),YCDU,SCDU,ZCDU,TCDU,XCDU,RM
+		1DNADR	VHFCNT				# VHFCNT,+1
+		1DNADR	TTPI				# TTPI,+1
+		1DNADR	ECSTEER				# ECSTEER,+1
+		1DNADR	DELVTPF				# DELVTPF,+1
+		2DNADR TCDH				# CDH AND CSI TIME                      (32-33)
+		1DNADR	TPASS4				# TPASS4,+1
+		3DNADR	DELVSLV				# DELVSLV,+1...+4,+5
+		2DNADR	RANGE				# RANGE,+1,RRATE,+1
+		DNPTR	CMREND04			# COMMON DATA
+		1DNADR	TIME2				# TIME2,TIME1
+		DNPTR	CMREND05			# COLLECT SNAPSHOT
+		6DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMREND02			# COLLECT SNAPSHOT
+		4DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMREND03			# COMMON DATA
+		DNPTR	CMREND06			# COMMON DATA
+		1DNADR	DIFFALT				# CDH DELTA ALTITUDE
+		1DNADR	CENTANG				# CENTANG,+1
+		1DNADR	DELTAR				# DELTAR,+1
+		3DNADR	DELVEET3			# DELVEET3,+1,...,+4,+5
+		1DNADR	OPTMODES			# OPTMODES,HOLDFLAG
+		DNPTR	CMREND07			# COMMON DATA
+		1DNADR	RTHETA				# RTHETA,+1
+		2DNADR	LAT(SPL)			# LAT(SPL),LNG(SPL),+1
+		2DNADR	VPRED				# VPRED,+1,GAMMAEI,+1
+		-1DNADR	STATE	+10D			# FLAGWRDS 10 AND 11
+
+# --------------------- SUB LISTS ----------------------------
+
+CMREND01	EQUALS	CMPOWE01			# COMMON DOWNLIST DATA
+
+CMREND02	EQUALS	CMPOWE02			# COMMON DOWNLIST DATA
+
+CMREND03	EQUALS	CMPOWE03			# COMMON DOWNLIST DATA
+
+CMREND04	EQUALS	CMPOWE04			# COMMON DOWNLIST DATA
+# Page 176
+CMREND05	EQUALS	CMPOWE05			# COMMON DOWNLIST DATA
+
+CMREND06	EQUALS	CMPOWE06			# COMMON DOWNLIST DATA
+
+CMREND07	EQUALS	CMPOWE07			# COMMON DOWNLIST DATA
+
+# ------------------------------------------------------------
+
+# Page 177
+# CSM ENTRY AND UPDATE DOWNLIST
+# --------------------- CONTROL LIST -------------------------
+
+CMENTRDL	EQUALS					# SEND ID BY SPECIAL CODING
+		DNPTR	CMENTR01			# COLLECT SNAPSHOT
+		6DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMENTR02			# COLLECT SNAPSHOT
+		4DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMENTR03			# COMMON DATA
+		2DNADR	CMDAPMOD			# CMDAPMOD,PREL,QREL,RREL
+		1DNADR	L/D1				# L/D1,+1
+		6DNADR	UPBUFF				# UPBUFF,+1,...+10,+11
+		4DNADR	UPBUFF	+12D			# UPBUFF+12,13,...+18,+19D
+		2DNADR	COMPNUMB			# COMPNUMB,UPOLDMOD,UPVERB,UPCOUNT
+		1DNADR	PAXERR1				# PAXERR1,ROLLTM
+		3DNADR	LATANG				# LATANG,+1,RDOT,+1,THETAH,+1
+		2DNADR	LAT(SPL)			# LAT(SPL),+1,LNG(SPL),+1
+		1DNADR	ALFA/180			# ALFA/180,BETA/180
+		DNPTR	CMENTR04			# COMMON DATA
+		1DNADR	TIME2				# TIME2,TIME1
+		DNPTR	CMENTR05			# COLLECT SNAPSHOT
+		6DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMENTR02			# COLLECT SNAPSHOT
+		4DNADR	DNTMBUFF			# SENT SNAPSHOT
+		2DNADR	AK				# AK,AK1,AK2,RCSFLAGS
+		3DNADR	ERRORX				# ERRORX/Y/Z,THETADX/Y/Z
+		2DNADR	CMDAPMOD			# CMDAPMOD,PREL,QREL,RREL
+		6DNADR	UPBUFF				# UPBUFF+0,+1,...+10,+11D
+		4DNADR	UPBUFF	+12D			# UPBUFF+12,+13,...+18,+19D
+		1DNADR	LEMMASS				# LEMMASS,CSMMASS
+		1DNADR	DAPDATR1			# DAPDATR1,DAPDATR2
+		1DNADR	ROLLTM				# ROLLTM,ROLLC
+		1DNADR	OPTMODES			# OPTMODES,HOLDFLAG
+		3DNADR	WBODY				# WBODY,...+5/OMEGAC,...+5
+		2DNADR	REDOCTR				# REDOCTR,THETAD+0,+1,+2
+		1DNADR	IMODES30			# IMODES30,IMODES33
+		DNCHAN	11				# CHANNELS 11,12
+		DNCHAN	13				# CHANNELS 13,14
+		DNCHAN	30				# CHANNELS 30,31
+		DNCHAN	32				# CHANNELS 32,33
+		1DNADR	RSBBQ				# RSBBQ,+1
+		3DNADR	CADRFLSH			# CADRFLSH,+1,+2,FAILREG,+1,+2
+		1DNADR	STATE	+10D			# FLAGWRDS 10 AND 11
+		-1DNADR	GAMMAEI				# GAMMAEI,+1
+
+# --------------------- SUB LISTS ----------------------------
+
+CMENTR01	EQUALS	CMPOWE01			# COMMON DOWNLIST DATA
+# Page 178
+CMENTR02	EQUALS	CMPOWE02			# COMMON DOWNLIST DATA
+
+CMENTR03	EQUALS	CMPOWE03			# COMMON DOWNLIST DATA
+
+CMENTR04	EQUALS	CMPOWE04			# COMMON DOWNLIST DATA
+
+CMENTR05	-1DNADR	DELV				# DELV,+1			SNAPSHOT DATA
+		1DNADR	DELV	+2			# DELV+2,+3
+		1DNADR	DELV	+4			# DELV+4,+5
+		1DNADR	TTE				# TTE,+1
+		1DNADR	VIO				# VIO,+1
+		1DNADR	VPRED				# VPRED,+1
+		-1DNADR	PIPTIME1			# PIPTIME1,+1
+
+CMENTR07	EQUALS	CMPOWE07			# COMMON DOWNLIST DATA
+
+# -------------------------------------------------------------
+
+# Page 179
+# --------------------- CONTROL LIST --------------------------
+
+CMPG22DL	EQUALS					# SEND ID BY SPECIAL CODING
+		DNPTR	CMPG2201			# COLLECT SNAPSHOT
+		6DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMPG2202			# COLLECT SNAPSHOT
+		4DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMPG2203			# COMMON DATA
+		6DNADR	SVMRKDAT			# LANDING SITE MARK DATA
+		6DNADR	SVMRKDAT +12D			# SVMRKDAT+0,...+34
+		6DNADR	SVMRKDAT +24D			# LANDING SITE MARK DATA
+		1DNADR	LANDMARK			# LANDMARK,GARBAGE
+		1DNADR	SPARE
+		1DNADR	SPARE
+		1DNADR	SPARE
+		DNPTR	CMPG2204			# COMMON DATA
+		1DNADR	TIME2				# TIME2,TIME1
+		DNPTR	CMPG2205			# COLLECT SNAPSHOT
+		2DNADR	DNTMBUFF			# SEND SNAPSHOT
+		1DNADR	SPARE
+		1DNADR	SPARE
+		1DNADR	SPARE
+		1DNADR	SPARE
+		DNPTR	CMPG2202			# COLLECT SNAPSHOT
+		4DNADR	DNTMBUFF			# SEND SNAPSHOT
+		DNPTR	CMPG2203			# COMMON DATA
+		DNPTR	CMPG2206			# COMMON DATA
+		1DNADR	8NN				# 8NN,GARBAGE
+		1DNADR	STATE	+10D			# FLAGWRDS 10 AND 11
+		3DNADR	RLS				# RLS,+1,...+4,+5
+		1DNADR	SPARE
+		1DNADR	OPTMODES			# OPTMODES,HOLDFLAG
+		DNPTR	CMPG2207			# COMMON DATA
+		1DNADR	SPARE
+		1DNADR	SPARE
+		1DNADR	SPARE
+		1DNADR	SPARE
+		1DNADR	SPARE
+		-1DNADR	SPARE
+
+# --------------------- SUB LISTS --------------------------
+
+CMPG2201	EQUALS	CMPOWE01			# COMMON DOWNLIST DATA
+
+CMPG2202	EQUALS	CMPOWE02			# COMMON DOWNLIST DATA
+
+CMPG2203	EQUALS	CMPOWE03			# COMMON DOWNLIST DATA
+# Page 180
+CMPG2204	EQUALS	CMPOWE04			# COMMON DOWNLIST DATA
+
+CMPG2205	-1DNADR	LONG				# LONG,+1			SNAPSHOT DATA
+		1DNADR	ALT				# ALT,+1
+		-1DNADR	LAT				# LAT,+1
+
+CMPG2206	EQUALS	CMPOWE06			# COMMON DOWNLIST DATA
+
+CMPG2207	EQUALS	CMPOWE07			# COMMON DOWNLIST DATA
+
+# -----------------------------------------------------------
+
+DNTABLE		GENADR	CMCSTADL
+		GENADR	CMENTRDL
+		GENADR	CMRENDDL
+		GENADR	CMPOWEDL
+		GENADR	CMPG22DL
+
+# -----------------------------------------------------------
+
diff --git a/DOWN_TELEMETRY_PROGRAM.s b/DOWN_TELEMETRY_PROGRAM.s
new file mode 100644
index 0000000..1a72d0a
--- /dev/null
+++ b/DOWN_TELEMETRY_PROGRAM.s
@@ -0,0 +1,455 @@
+# Copyright:	Public domain.
+# Filename:	DOWN_TELEMETRY_PROGRAM.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	988-997
+# Mod history:	2009-05-24 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 988
+# PROGRAM NAME -- DOWN TELEMETRY PROGRAM
+# MOD NO. -- 0		TO COMPLETELY REWRITE THE DOWN TELEMETRY PROGRAM AND DOWNLINK ERASABLE DUMP PROGRAM FOR THE
+#			PURPOSE OF SAVING APPROXIMATELY 150 WORDS OF CORE STORAGE.
+#			THIS CHANGE REQUIRES AN ENTIRELY NEW METHOD OF SPECIFYING DOWNLINK LISTS.  REFER TO DOWNLINK
+#			LISTS LOG SECTION FOR MORE DETAILS.  HOWEVER THIS CHANGE WILL NOT AFFECT THE GROUND PROCESSING
+#			OF DOWN TELEMETRY DATA.
+# MOD BY -- KILROY, SMITH, DEWITT
+# DATE -- 02 OCT 67
+# AUTHORS -- KILROY, SMITH, DWWITT, DEWOLF, FAGIN
+# LOG SECTION -- DOWN-TELEMETRY PROGRAM
+#
+# FUNCTIONAL DESCRIPTION -- THIS ROUTINE IS INITIATED BY TELEMETRY END
+#	PULSE FROM THE DOWNLINK TELEMETRY CONVERTER.  THIS PULSE OCCURS
+#	AT 50 TIMES PER SEC (EVERY 20 MS) THEREFORE DODOWNTM IS
+#	EXECUTED AT THESE RATES.  THIS ROUTINE SELECTS THE APPROPRIATE
+#	AGC DATA TO BE TRANSMITTED DOWNLINK AND LOADS IT INTO OUTPUT
+#	CHANNELS 34 AND 35.  THE INFORMATION IS THEN GATED OUT FROM THE
+#	LGC IN SERIAL FASHION.
+#
+#	THIS PROGRAM IS CODED FOR A 2 SECOND DOWNLIST.  SINCE DOWNRUPTS
+#	OCCUR EVERY 20 MS AND 2 AGC COMPUTER WORDS CAN BE PLACED IN
+#	CHANNELS 34 AND 35 DURING EACH DOWNRUPT THE PROGRAM IS CAPABLE
+# 	OF SENDING 200 AGC WORDS EVERY 2 SECONDS.
+#
+# CALLING SEQUENCE -- NONE
+#	PROGRAM IS ENTERED VIA TCF DODOWNTM WHICH IS EXECUTED AS A
+#	RESULT OF A DOWNRUPT.  CONTROL IS RETURNED VIA TCF RESUME WHICH
+#	IN EFFECT IS A RESUME.
+#
+# SUBROUTINES CALLED -- NONE
+#
+# NORMAL EXIT MODE -- TCF RESUME
+#
+# ALARM OR ABORT EXIT MODE -- NONE
+#
+# RESTART PROTECTION:
+#	ON A FRESH START AND RESTART THE `STARTSUB' SUBROUTINE WILL INITIALIZE THE DOWNLIST POINTER (ACTUALLY
+#	DNTMGOTO) TO THE BEGINNING OF THE CURRENT DOWNLIST (I.E., CURRENT CONTENTS OF DNLSTADR).  THIS HAS THE
+#	EFFECT OF IGNORING THE REMAINDER OF THE DOWNLIST WHICH THE DOWN-TELEMETRY PROGRAM WAS WORKING ON WHEN
+#	THE RESTART (OR FRESH START) OCCURRED AND RESUME DOWN TELEMETRY FROM THE BEGINNING OF THE CURRENT
+#	DOWNLIST.
+#
+#	ALSO OF INTEREST IS THE FACT THAT ON A RESTART THE AGC WILL ZERO DOWNLINK CHANNELS 13, 34 AND 35.
+#
+# DOWNLINK LIST SELECTION:
+#	THE APPROPRIATE DOWNLINK LISTS ARE SELECTED BY THE FOLLOWING:
+#	1.	FRESH START
+#	2.	V37EXXE WHERE XX = THE MAJOR MODE BEING SELECTED.
+#	3.	UPDATE PROGRAM (P27)
+#	4.	NON-V37 SELECTABLE TYPE PROGRAMS (E.G., AGS INITIALIZATION (SUNDANCE, LUMINARY) AND P61-P62
+#		TRANSITION (COLOSSUS) ETC.).
+#
+# DOWNLINK LIST RULES AND LIMITATIONS:
+#	READ SECTION(S) WHICH FOLLOW `DEBRIS' WRITEUP.
+#
+# OUTPUT -- EVERY 2 SECONDS 100 DOUBLE PRECISION WORDS (I.E., 200 LGC
+#	COMPUTER WORDS) ARE TRANSMITTED VIA DOWNLINK.
+#
+# ERASABLE INITIALIZATION REQUIRED -- NONE
+#	`DNTMGOTO' AND `DNLSTADR' ARE INITIALIZED BY THE FRESH START PROGRAM.
+#
+# DEBRIS (ERASABLE LOCATIONS DESTROYED BY THIS PROGRAM) --
+#	LDATALST, DNTMBUFF TO DNTMBUFF +21D, TMINDEX, DNQ.
+# Page 989 (empty page)
+# Page 990
+# DODOWNTM IS ENTERED EVERY 20 MS BY AN INTERRUPT TRIGGERED BY THE
+# RECEIPT OF AN ENDPULSE FROM THE SPACECRAFT TELEMETRY PROGRAMMER.
+#
+# NOTES REGARDING DOWNLINK LISTS ASSOCIATED WITH THIS PROGRAM:
+# 1.	DOWNLISTS.  DOWNLISTS MUST BE COMPILED IN THE SAME BANK AS THE
+#	DOWN-TELEMETRY PROGRAM.  THIS IS DONE FOR EASE OF CODING, FASTER
+#	EXECUTION.
+# 2.	EACH DOWNLINK LIST CONSISTS OF A CONTROL LIST AND A NUMBER OF
+#	SUBLISTS.
+# 3.	A SUBLIST REFERS TO A SNAPSHOT OR DATA COMMON TO THE SAME OR OTHER
+#	DOWNLINK LISTS.  ANY SUBLIST CONTAINING COMMON DATA NEEDS TO BE
+#	CODED ONLY ONCE FOR THE APPLICABLE DOWNLINK LISTS.
+# 4.	SNAPSHOT SUBLISTS REFER SPECIFICALLY TO HOMOGENEOUS DATA WHICH MUST BE
+#	SAVED IN A BUFFER DURING ONE DOWNRUPT.
+# 5.	THE 1DNADR FOR THE 1ST WORD OF SNAPSHOT DATA IS FOUND AT THE END
+#	OF EACH SNAPSHOT SUBLIST, SINCE THE PROGRAM CODING SENDS THIS DP WORD
+#	IMMEDIATELY AFTER STORING THE OTHERS IN THE SNAPSHOT BUFFER.
+# 6.	ALL LISTS ARE COMBINATIONS OF CODED ERASABLE ADDRESS CONSTANTS
+#	CREATED FOR THE DOWNLIST PROGRAM.
+#	A.	1DNADR			1-WORD DOWNLIST ADDRESS.
+#		SAME AS ECADR, BUT USED WHEN THE WORD ADDRESSED IS THE LEFT
+#		HALF OF A DOUBLE-PRECISION WORD FOR DOWN TELEMETRY.
+#	B.	2DNADR - 6DNADR		N-WORD DOWNLIST ADDRESS, N = 2 - 6.
+#		SAME AS 1DNADR, BUT WTIH THE 4 UNUSED BITS OF THE ECADR FORMAT
+#		FILLED IN WITH 0001-0101.  USED TO POINT TO A LIST OF N DOUBLE-
+#		PRECISION WORDS, STORED CONSECUTIVELY, FOR DOWN TELEMETRY.
+#	C.	DNCHAN			DOWNLIST CHANNEL ADDRESS.
+#		SAME AS 1DNADR, BUT WITH PREFIX BITS 0111.  USED TO POINT TO
+#		A PAIR OF CHANNELS FOR DOWN TELEMETRY.
+#	D.	DNPTR			DOWN-TELEMETRY SUBLIST POINTER.
+#		SAME AS CAF BUT TAGGED AS A CONSTANT.  USED IN CONTROL LIST TO POINT TO A SUBLIST.
+#		CAUTION --- A DNPTR CANNOT BE USED IN A SUBLIST.
+# 7.	THE WORD ORDER CODE IS SET TO ZERO AT THE BEGINNING OF EACH DOWNLIST (I.E., CONTROL LIST) AND WHEN
+#	A `1DNADR TIME2' IS DETECTED IN THE CONTROL LIST (ONLY).
+# 8.	IN THE SNAPSHOT SUBLIST ONLY, THE DNADR'S CANNOT POINT TO THE FIRST WORD OF ANY EBANK.
+#
+# DOWNLIST LIST RESTRICTIONS:
+# (THE FOLLOWING POINTS MAY BE LISTED ELSEWHERE BUT ARE LISTED HERE SO IT IS CLEAR THAT THESE THINGS CANNOT BE
+# DONE)
+# 1.	SNAPSHOT DOWNLIST:
+#	(A) CANNOT CONTAIN THE FOLLOWING ECADRS (I.E., 1DNADR'S): Q, 400, 1000, 1400, 2000, 2400, 3000, 3400.
+#	(B) CAN CONTAIN ONLY 1DNADR'S
+# 2.	ALL DOWNLINKED DATA (EXCEPT CHANNELS) IS PICKED UP BY A DCA SO DOWNLINK LISTS CANNOT CONTAIN THE
+#	EQUIVALENT OF THE FOLLOWING ECADRS (I.E., 1DNADRS): 377, 777, 1377, 1777, 2377, 2777, 3377, 3777.
+# 	(NOTE: THE TERM `EQUIVALENT' MEANT THAT THE 1DNADR TO 6DNADR WILL BE PROCESSED LIKE 1 TO 6 ECADRS)
+# 3.	CONTROL LISTS AND SUBLISTS CANNOT HAVE ENTRIES = OCTAL 00000 OR OCTAL 77777
+# Page 991
+# 4.	THE `1DNADR TIME2' WHICH WILL CAUSE THE DOWNLINK PROGRAM TO SET THE WORDER CODE TO 3 MUST APPEAR IN THE
+#	CONTROL SECTION OF THE DOWNLIST.
+# 5.	`DNCHAN 0' CANNOT BE USED.
+# 6.	`DNPTR 0' CANNOT BE USED.
+# 7.	DNPTR CANNOT APPEAR IN A SUBLIST.
+#
+# EBANK SETTINGS
+#	IN THE PROCESS OF SETTING THE EBANK (WHEN PICKING UP DOWNLINK DATA) THE DOWN TELEMETRY PROGRAM PUTS
+#	`GARBAGE' INTO BITS15-12 OF EBANK.  HUGH BLAIR-SMITH WARNS US THAT BITS15-12 OF EBANK MAY BECOME
+#	SIGNIFICANT SOMEDAY IN THE FUTURE.  IF/WHEN THAT HAPPENS, THE PROGRAM SHOULD INSURE (BY MASKING ETC.)
+#	THAT BITS 15-12 OF EBANK ARE ZERO.
+#
+# INITIALIZATION REQUIRED -- TO INTERRUPT CURRENT LIST AND START A NEW ONE.
+#	1. ADRES OF DOWNLINK LIST INTO DNLSTADR
+#	2. NEGONE INTO SUBLIST
+#	3. NEGONE INTO DNECADR
+
+		BANK	22
+		SETLOC	DOWNTELM
+		BANK
+
+		EBANK=	DNTMBUFF
+		
+		COUNT*	$$/DPROG
+DODOWNTM	TS	BANKRUPT
+		EXTEND
+		QXCH	QRUPT		# SAVE Q
+		TCF	WOTEST
+WO1		EXTEND			# SET WORD ORDER BIT TO 1 ONLY IF IT
+		WOR	CHAN13		# ALREADY ISN'T
+		TC	DNTMGOTO	# GOTO APPROPRIATE PHASE OF PROGRAM
+
+DNPHASE1	CA	NEGONE		# INITIALIZE ALL CONTROL WORDS
+		TS	SUBLIST		# WORDS TO MINUS ONE
+		TS	DNECADR
+		CA	LDNPHAS2	# SET DNTMGOTO = 0 ALL SUSEQUENT DOWRUPTS
+		TS	DNTMGOTO	# GO TO DNPHASE2
+		TCF	NEWLIST
+DNPHASE2	CCS	DNECADR		# SENDING OF DATA IN PROGRESS
+DODNADR		TC	FETCH2WD	# YES -- THEN FETCH THE NEXT 2 SP WORDS
+MINTIME2	-1DNADR	TIME2		# NEGATIVE OF TIME2 1DNADR
+		TCF	+1		# (ECADR OF 3776 + 74001 = 77777)
+
+		CCS	SUBLIST		# IS THE SUBLIST IN CONTROL
+		TCF	NEXTINSL	# YES
+# Page 992		
+DNADRDCR	OCT	74001		# DNADR COUNT AND ECADR DECREMENTER
+
+CHKLIST		CA	CTLIST
+		EXTEND
+		BZMF	NEWLIST		# IT WILL BE NEGATIVE AT END OF LIST
+		TCF	NEXTINCL
+NEWLIST		INDEX	DNLSTCOD
+		CA	DNTABLE		# INITIALIZE CTLIST WITH
+		TS	CTLIST		#	STARTING ADDRESS OF NEW LIST
+		CS	DNLSTCOD
+		TCF	SENDID 	+3
+NEXTINCL	INDEX	CTLIST
+		CA	0
+		CCS	A
+		INCR	CTLIST		# SET POINTER TO PICK UP NEXT CTLIST WORD
+		TCF	+4		# ON NEXT ENTRY TO PROG.  (A SHOULD NOT =0)
+		XCH	CTLIST		# SET CTLIST TO NEGATIVE AND PLACE(CODING)
+		COM			# UNCOMPLEMENTED DNADR INTO A.    (FOR LA)
+		XCH	CTLIST		#                                 (ST IN )
+	+4	INCR	A		#                                 (CTLIST)
+ 		TS	DNECADR		# SAVE DNADR
+		AD	MINTIME2	# TEST FOR TIME2 (NEG. OF ECADR)
+		CCS	A
+		TCF	SETWO	+1	# DON'T SET WORD ORDER CODE
+MINB1314	OCT	47777		# MINUS BIT 13 AND 14 (CAN'T GET HERE)
+		TCF	SETWO 	+1	# DON'T SET WORD ORDER CODE
+SETWO		TC	WOZERO		# GO SET WORD ORDER CODE TO ZERO.
+	+1	CA	DNECADR		# RELOAD A WITH THE DNADR.
+	+2	AD	MINB1314	# IS THIS A REGULAR DNADR?
+ 		EXTEND
+		BZMF	FETCH2WD	# YES.  (A MUST NEVER BE ZERO)
+		AD	MINB12		# NO.  IS IT A POINTER (DNPTR) OR A
+		EXTEND			#	CHANNEL(DNCHAN)
+		BZMF	DODNPTR		# IT'S A POINTER.  (A MUST NEVER BE ZERO)
+
+DODNCHAN	TC	6		# (EXECUTED AS EXTEND)  IT'S A CHANNEL
+		INDEX	DNECADR
+		INDEX	0 	-4000	# (EXECUTED AS READ)
+		TS	L
+		TC	6		# (EXECUTED AS EXTEND)
+		INDEX	DNECADR
+		INDEX	0 	-4001	# (EXECUTED AS READ)
+		TS	DNECADR		# SET DNECADR
+		CA	NEGONE		#	TO MINUS
+		XCH	DNECADR		#		WHILE PRESERVING A.
+		TCF	DNTMEXIT	# GO SEND CHANNELS
+
+WOZERO		CS	BIT7
+		EXTEND
+		WAND	CHAN13		# SET WORD ORDER CODE TO ZERO
+# Page 993		
+		TC	Q		# RETURN TO CALLER
+
+DODNPTR		INDEX	DNECADR		# DNECADR CONTAINS ADRES OF SUBLIST
+		0	0		# CLEAR AND ADD LIST ENTRY INTO A.
+		CCS	A		# IS THIS A SNAPSHOT SUBLIST
+		CA	DNECADR		# NO, IT IS A REGULAR SUBLIST.
+		TCF	DOSUBLST	# A MUST NOT BE ZERO.
+
+		XCH	DNECADR		# YES.  IT IS A SNAPSHOT SUBLIST.
+		TS	SUBLIST		# C(DNECADR) INTO SUBLIST
+		CAF	ZERO		#	A    INTO     A
+		XCH	TMINDEX		# (NOTE:  TMINDEX = DNECADR)
+
+# THE FOLLOWING CODING (FROM SNAPLOOP TO SNAPEND) IS FOR THE PURPOSE OF TAKING A SNAPSHOT OF 12 DP REGISTERS.
+# THIS IS DONE BY SAVING 11 DP REGISTERS IN DNTMBUFF AND SENDING THE FIRST DP WORD IMMEDIATELY.
+# THE SNAPSHOT PROCESSING IS THE MOST TIME CONSUMING AND THEREFORE THE CODING AND LIST STRUCTURE WERE DESIGNED
+# TO MINIMIZE TIME.  THE TIME OPTIMIZATION RESULTS IN RULES UNIQUE TO THE SNAPSHOT PORTION OF THE DOWNLIST.
+# THESE RULES ARE ......
+#	1.	ONLY 1DNADR'S CAN APPEAR IN THE SNAPSHOT SUBLIST
+#	2.	THE 1DNADR'S CANNOT REFER TO THE FIRST LOCATION IN ANY BANK.
+
+SNAPLOOP	TS	EBANK		# SET EBANK
+		MASK	LOW8		# ISOLATE RELATIVE ADDRESS
+		EXTEND
+		INDEX	A
+		EBANK=	1401
+		DCA	1401		# PICK UP 2 SNAPSHOT WORDS.
+		EBANK=	DNTMBUFF
+		INDEX	TMINDEX
+		DXCH	DNTMBUFF	# STORE 2 SNAPSHOT WORDS IN BUFFER
+		INCR	TMINDEX		# SET BUFFER INDEX FOR NEXT 2 WORDS.
+		INCR	TMINDEX
+SNAPAGN		INCR	SUBLIST		# SET POINTER TO NEXT 2 WORDS OF SNAPSHOT
+		INDEX	SUBLIST
+		0	0		# = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
+		CCS	A		# TEST FOR LAST TWO WORDS OF SNAPSHOT.
+		TCF	SNAPLOOP	# NOT LAST TWO.
+LDNPHAS2	GENADR	DNPHASE2
+		TS	SUBLIST		# YES, LAST.  SAVE A.
+		CA	NEGONE		# SET DNECADR AND
+		TS	DNECADR		#	SUBLIST POINTERS
+		XCH	SUBLIST		#		TO NEGATIVE VALUES
+		TS	EBANK
+		MASK	LOW8
+		EXTEND
+		INDEX	A
+		EBANK=	1401
+		DCA	1401		# PICK UP FIRST 2 WORDS OF SNAPSHOT.
+# Page 994
+		EBANK=	DNTMBUFF
+SNAPEND		TCF	DNTMEXIT	# NOW TO SEND THEM.
+
+FETCH2WD	CA	DNECADR
+		TS	EBANK		# SET EBANK
+		MASK	LOW8		# ISOLATE RELATIVE ADDRESS
+		TS	L
+		CA	DNADRDCR	# DECREMENT COUNT AND ECADR
+		ADS	DNECADR
+		EXTEND
+		INDEX	L
+		EBANK=	1400
+		DCA	1400		# PICK UP 2 DATA WORDS
+		EBANK=	DNTMBUFF
+		TCF	DNTMEXIT	# NOW GO SEND THEM.
+
+DOSUBLST	TS	SUBLIST		# SET SUBLIST POINTER
+NEXTINSL	INDEX	SUBLIST
+		0	0		# = CA SSSS (SSSS = NEXT ENTRY IN SUBLIST)
+		CCS	A		# IS IT THE END OF THE SUBLIST
+		INCR	SUBLIST		# NO --
+		TCF	+4
+		TS	SUBLIST		# SAVE A.
+		CA	NEGONE		# SET SUBLIST TO MINUS
+		XCH	SUBLIST		# RETRIEVE A.
+	+4	INCR	A
+ 		TS	DNECADR		# SAVE DNADR
+		TCF	SETWO +2	# GO USE COMMON CODING (PROLEMS WOULD
+					# OCCUR IF THE PROGRAM ENCOUNTERED A
+					# DNPTR NOW)
+
+DNTMEXIT	EXTEND			# DOWN-TELEMETRY EXIT
+		WRITE	DNTM1		# TO SEND A + L TO CHANNELS 34 + 35
+		CA	L		# RESPECTIVELY
+TMEXITL		EXTEND
+		WRITE	DNTM2
+TMRESUME	TCF	RESUME		# EXIT TELEMTRY PROGRAM VIA RESUME.
+
+MINB12		EQUALS	-1/8
+DNECADR		EQUALS	TMINDEX
+CTLIST		EQUALS	LDATALST
+SUBLIST		EQUALS 	DNQ
+
+# Page 995
+# SUBROUTINE NAME -- DNDUMP
+#
+# FUNCTIONAL DESCRIPTION -- TO SEND (DUMP) ALL ERASABLE STORAGE 'N' TIMES. (N=1 TO 4).  BANKS ARE SENT ONE AT A TIME
+#	EACH BANK IS PRECEDED BY AN ID WORD, SYNCH BITS, ECADR AND TIME1 FOLLOWED BY THE 256D WORDS OF EACH
+#	EBANK.  EBANKS ARE DUMPED IN ORDER (I.E., EBANK 0 FIRST, THEN EBANK1 ETC.)
+#
+# CALLING SEQUENCE -- THE GROUND OR ASTRONAUT BY KEYING V74E CAN INITIALIZE THE DUMP.
+#	AFTER KEYING IN V74E THE CURRENT DOWNLIST WILL BE IMMEDIATELY TERMINATED AND THE DOWNLINK ERASABLE DUMP
+#	WILL BEGIN.
+#
+#	ONCE INITITIATED THE DOWNLINK ERASABLE DUMP CAN BE TERMINATED (AND INTERRUPTED DOWNLIST REINSTATED) ONLY
+#	BY THE FOLLOWING:
+#
+#	1.	A FRESH START
+#	2.	COMPLETION OF ALL DOWNLINK DUMPS REQUESTED (ACCORDING TO BITS SET IN DUMPCNT).  NOTE THAT DUMPCNT
+#		CAN BE ALTERED BY A V21N01.
+#	3.	AND INVOLUNTARILY BY A RESTART.
+#
+# NORMAL EXIT MODE -- TCF DNPHASE1
+#
+# ALARM OR ABORT MODE -- NONE
+#
+# *SUBROUTINES CALLED -- NONE
+#
+# ERASABLE INITIALIZATION REQUIRED --
+#	DUMPCNT		OCT 20000	IF 4 COMPLETE ERASABLE DUMPS ARE DESIRED
+#	DUMPCNT		OCT 10000	IF 2 COMPLETE ERASABLE DUMPS ARE DESIRED
+#	DUMPCNT		OCT 04000	IF 1 COMPLETE ERASABLE DUMP  IS  DESIRED
+#
+# DEBRIS -- DUMPLOC, DUMPSW, DNTMGOTO, EBANK, AND CENTRAL REGISTERS
+#
+# TIMING --	TIME (IN SECS) = ((NO.DUMPS)*(NO.EBANKS)*(WDSPEREBANK + NO.IDWDS)) / NO.WDSPERSEC
+#		TIME (IN SECS) =  (   4    )*(    8    )*(    256     +     4   )  /     100
+#		THUS TIME (IN SECS TO SEND DUMP OF ERASABLE 4 TIMES VIA DOWNLINK) = 83.2 SECONDS
+#
+# STRUCTURE OF ONE EBANK AS IT IS SENT BY DOWNLINK PROGRAM --
+#	(REMINDER -- THIS ONLY DESCRIBES ONE OF THE 8 EBANKS X 4 (DUMPS) = 32 EBANKS WHICH WILL BE SENT BY DNDUMP)
+#
+#	DOWNLIST				W
+#	  WORD	TAKEN FROM CONTENTS OF	EXAMPLE	O	COMMENTS
+#	    1	ERASID			 0177X	0	DOWNLIST I.D. FOR DOWNLINK ERASABLE DUMP (X=7 CSM, 6 LM)
+#	    2	LOWIDCOD		 77340 	1	DOWNLINK SYNCH BITS.  (SAME ONE USED IN ALL OTHER DOWNLISTS)
+#	    3	DUMPLOC			 13400	1	(SEE NOTES ON DUMPLOC) 1 = 3RD ERAS DUMP, 3400=ECADR OF 5TH WD
+#	    4	TIME1			 14120	1	TIME IN CENTISECONDS
+#	    5	FIRST WORD OF EBANK X	 03400	1	IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1400 (ECADR 3400)
+#	    6	2ND   WORD OF EBANK X	 00142	1	IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1401 (ECADR 3401)
+#	    7   3RD   WORD OF EBANK X	 00142	1	IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1402 (ECADR 3402)
+#	    .
+#	    .
+#	    .
+#	 260D	256TH WORD OF EBANK X	 03777	1	IN THIS EXAMPLE THIS WORD = CONTENTS OF E7,1777 (ECADR 3777)
+#
+# NOTE --	DUMPLOC CONTAINS THE COUNTER AND ECADR FOR EACH WORD BEING SENT.
+#		THE BIT STRUCTURE OF DUMPLOC IS FOLLOW --
+#						X = NOT USED
+#		X ABC EEE RRRRRRRR	      ABC = ERASABLE DUMP COUNTER (I.E. ABC = 0,1,2, OR 3 WHICH MEANS THAT
+#						    COMPLETE ERASABLE DUMP NUMBER 1,2,3, OR 4 RESPECTIVELY IS IN PROGRESS)
+#					      EEE = EBANK BITS
+#					 RRRRRRRR = RELATIVE ADDRESS WITHIN AN EBANK
+
+# Page 996
+DNDUMPI		CA	ZERO		# INITIALIZE DOWNLINK
+		TS	DUMPLOC		# ERASABLE DUMP
+	+2	TC	SENDID		# GO SEND ID AND SYNCH BITS
+		CA	LDNDUMP1	# SET DNTMGOTO
+		TS	DNTMGOTO	# TO LOCATION FOR NEXT PASS
+		CA	TIME1		# PLACE TIME1
+		XCH	L		# INTO L
+		CA	DUMPLOC		# AND ECADR OF THIS EBANK INTO A
+		TCF	DNTMEXIT	# SEND DUMPLOC AND TIME1
+
+LDNDUMP		ADRES	DNDUMP
+LDNDUMP1	ADRES	DNDUMP1
+
+DNDUMP		CA	TWO		# INCREMENT ECADR IN DUMPLOC
+		ADS	DUMPLOC		# TO NEXT DP WORD TO BE
+		MASK	LOW8		# DUMPED AND SAVE IT.
+		CCS	A		# IS THIS THE BEGINNING OF A NEW EBANK
+		TCF	DNDUMP2		# NO -- THEN CONTINUE DUMPING
+		CA	DUMPLOC		# YES -- IS THIS THE END OF THE
+		MASK	DUMPCNT		# N TH (N = 1 TO 4) COMPLETE ERASABLE
+		MASK	PRIO34		# DUMP (BIT14 FOR 4, BIT13 FOR 2 OR BIT12
+		CCS	A		# FOR 1 COMPLETE ERASABLE DUMP(S)).
+		TCF	DNPHASE1	# YES -- START SENDING INTERRUPTED DOWNLIST
+					# AGAIN
+		TCF	DNDUMPI	+2	# NO -- GO BACK AND INITIALIZE NEXT BANK
+		
+DNDUMP1		CA	LDNDUMP		# SET DNTMGOTO
+		TS	DNTMGOTO	# FOR WORDS 3 TO 256D OF CURRENT EBANK
+
+DNDUMP2		CA	DUMPLOC
+		TS	EBANK		# SET EBANK
+		MASK	LOW8		# ISOLATE RELATIVE ADDRESS.
+		TS	Q		# (NOTE: MASK INSTRUCTION IS USED TO PICK
+		CA	NEG0		# UP ERASABLE REGISTERS SO THAT EDITING
+		TS	L		# REGISTERS 20-23 WILL NOT BE ALTERED.)
+		INDEX	Q
+		EBANK=	1400		# PICK UP LOW ORDER REGISTER OF PAIR
+		MASK	1401		# OF ERASABLE REGISTERS.
+		XCH	L
+		INDEX	Q		# PICK UP HIGH ORDER REGISTER OF PAIR
+		MASK	1400		# OF ERASABLE REGISTERS.
+		EBANK=	DNTMBUFF
+		TCF	DNTMEXIT	# GO SEND THEM
+
+SENDID		EXTEND			# ** ENTRANCE USED BY ERASABLE DUMP PROG. **
+		QXCH	DNTMGOTO	# SET DNTMGOTO SO NEXT TIME PROG WILL GO
+		CAF	ERASID		# TO LOCATION FOLLOWING `TC SENDID'
+
+		TS	L		# ** ENTRANCE USED BY REGULAR DOWNLINK PG **
+# Page 997		
+		TC	WOZERO		# GO SET WORD ORDER CODE TO ZERO
+		CAF	LOWIDCOD	# PLACE SPECIAL ID CODE INTO L
+		XCH	L		# AND ID BACK INTO A
+		TCF	DNTMEXIT	# SEND DOWNLIST ID CODE(S).
+
+WOTEST		CA	BIT7		# AT THE BEGINNING OF THE LIST THE WORD
+		EXTEND			# ORDER BIT WILL BE SET BACK TO ZERO
+		RAND	CHAN13
+		CCS	A
+		TC	DNTMGOTO
+		CA	BIT7
+		TCF	WO1
+		
diff --git a/ENTRY_LEXICON.s b/ENTRY_LEXICON.s
new file mode 100644
index 0000000..a692067
--- /dev/null
+++ b/ENTRY_LEXICON.s
@@ -0,0 +1,373 @@
+# Copyright:    Public domain.
+# Filename:     ENTRY_LEXICON.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 837-843
+# Contact:      Ron Burkey <info@sandroid.org>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-12 RSB	Adapted from Colossus249 file of the same
+#				name and Comanche 055 page images.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 837
+# VARIABLE	DESCRIPTION				MAXIMUM VALUE *		COMPUTER NAME
+# --------	-----------				---------------		-------------
+# _
+# URT0		INITIAL TARGET VECTOR			2 (UNIT VECTOR)		= RTINIT
+# _
+# UZ		UNIT VECTOR NORTH			1			= UNITW
+# _
+# V		VELOCITY VECTOR				2 VSAT			= VEL
+# _
+# R		POSITION VECTOR				2 EXP 29 METERS		= RN
+# _
+# VI 		INERTIAL VELOCITY			128 M/CENTISEC		= VN
+# _
+# RTE		VECTOR EAST AT INITIAL TARGET		2			= RTEAST
+# _
+# UTR		NORMAL TO RTE AND UZ			2			= RTNORM
+# _
+# URT		TARGET VECTOR				2			= RT
+# _
+# UNI		UNIT NORMAL TO TRAJECTORY PLANE		2	
+# _
+# DELV		INTEGRATED ACCEL. FROM PIPAS		5.85 16384 CM/S
+# _
+# G		GRAVITY VECTOR				128 M/CENTISEC		= GDT/2
+#
+# A0		INITIAL DRAG FOR UPCONTRL		805 FPSS		FPSS=FT/SEC/SEC
+#
+# AHOOKDV	TERM IN GAMMAL CALC. = AHOOK DVL	16
+#
+# A1		DRAG VALUE IN FACTOR CALCULATION	805 FPSS
+#
+# ALP		CONST FOR UPCONTRL			1
+#
+# ASKEP		KEPLER RANGE				21600 NM		NM = NAUTICAL MILE
+#
+# ASP1		FINAL PHASE RANGE			21600 NM
+#
+# ASPUP		UP-RANGE				21600 NM
+#
+# ASP3		GAMMA CORRECTION			21600 NM
+#
+# ASPDWN	RANGE DOWN TO PULL-UP			21600 NM
+#
+# ASP		PREDICTED RANGE				21600 NM		NOT STORED
+#
+# COSG		COSINE(GAMMAL)				2			= COSG/2
+#
+# C/D0		RECIPROCAL DRAG, -4/D0 B-8		64/FPSS
+#
+# D		TOTAL ACCELERATION			805 FPSS
+#
+# D0		CONTROLLED CONSTANT D			805 FPSS
+#
+# DHOOK		TERM IN GAMMAL COMPUTATION		805 FPSS
+#
+# DIFF		THETNM-ASP (RANGE DIFFERENCE)		21600 NM
+#
+# DIFFOLD	PREVIOUS VALUE OF DIFF			21600 NM
+#
+# DLEWD		CHANGE IN LEWD				1
+#
+# DR		REFERENCE DRAG FOR DOWNCONTROL		805 FPSS		NOT STORED
+#
+# DREFR		REFERENCE DRAG				805 FPSS		NOT STORED
+#
+# DVL		VS1-VL					2 VSAT
+#
+# E		ECCENTRICITY				4			NOT STORED
+#
+# F1		DRANGE/D DRAG	(FINAL PHASE)		2700/805		= FX +5
+#
+# F2		DRANGE/D RDOT	(FINAL PHASE)		2700/2VS NM/FPS		= FX +4
+# Page 838
+#
+# F3		DRANGE/D (L/D)				2700 NM			= FX
+#
+# FACT1		CONST FOR UPCONTRL			805 FPSS
+#
+# FACT2		CONST FOR UPCONTRL			1/805 FPSS
+#
+# FACTOR	USED IN UPCONTRL			1			* MAXIMUM VALUE DENOTES UNSCALED
+#										  VARIABLE VALUE WHEN SCALED
+# GAMMAL	FLIGHT PATH ANGLE AT VL			1 RADIAN		  VARIABLE HAS MAXIMUM VALUE OF ONE.
+#
+# GAMMAL1	SIMPLE FORM OF GAMMAL			1 RADIAN
+# Page 839
+#
+# HEADSUP	INDICATOR FOR INITIAL ROLL		1
+#
+# KA		DRAG TO LIFT UP IF DOWN			805 FPSS		= KAT
+#
+# KLAT		LATERAL SWITCH GAIN			1			(NOM = .0125)
+#
+# K2ROLL	INDICATOR FOR ROLL SWITCH		
+#
+# LAD		MAX L/D (MIN ACTUAL VEHICLE L/D)	1
+#
+# LADPAD	NOMINAL VEHICLE L/D, SP PAD LOAD	1			(NOM = 0.3)
+#
+# LATANG	LATERAL RANGE				4 RADIANS
+#
+# LEQ		EXCESS C.F. OVER GRAV=(VSQ-1)GS		128.8 FPSS
+#
+# LEWD		UPCONTROL REFERENCE L/D			1
+#
+# LOD		FINAL PHASE L/D				1			(NOM = 0.18)
+#
+# LODPAD	FINAL PHASE L/D, SP PAD LOAD		1
+#
+# L/D		DESIRED LIFT TO DRAG RATIO		1
+#		(VERTICAL PLANE)
+# 
+# L/D1		TEMP STORAGE FOR L/D IN LATERAL		1
+#
+# L/DCMINR	LAD COS(15DEG)				1			(NOM = 0.2895)
+#
+# PREDANGLE	PREDICTED RANGE	(FINAL PHASE)		2700 NM			= PREDANG
+#
+# Q2		FINAL PHASE RANGE -23500 Q3		21600 NM
+#		Q2 = FCN(LAD)
+#
+# Q7		MINIMUM DRAG FOR UPCONTROL		805FPSS
+#
+# RDOT		ALTITUDE RATE				2 VSAT
+#
+# RDOTREF	REFERENCE RDOT FOR UPCONTROL		2 VSAT
+#
+# RDTR		REFERENCE RDOT FOR DOWNCONT		2 VSAT			NOT SAVED
+#
+# ROLLC		ROLL COMMAND				1 REVOLUTION
+#
+# RTOGO		RANGE TO GO (FINAL PHASE)		2700 NM			= FX +2
+#
+# SL		SINE OF LATITUDE			1			NOT SAVED
+#
+# T		TIME					B 28 CENTISEC		= TIME2,TIME1
+#
+# THETA		DESIRED RANGE (RADIANS)			2 PI RADIANS		= THETAH
+#
+# THETNM	DESIRED RANGE (NM)			21600 NM		NON EXISTENT
+#
+# V		VELOCITY MAGNITUDE			2 VSAT
+# 
+# V1		INITIAL VELOCITY FOR UPCONTROL		2 VSAT
+#
+# VL		EXIT VELOCITY FOR UPCONTROL		2 VSAT
+#
+# VREF		REFERENCE VELOCITY FOR UPCONTROL	2 VSAT
+#
+# VS1		VSAT OR V1, WHICHEVER IS SMALLER	2 VSAT
+#		  2     2
+# VBARS		VL /VSAT				4
+#					   2     2
+# VSQ		NORMALIZED VEL. SQUARED = V /VSAT	4			= VSQUARE
+#
+# WT		EARTH RATE TIMES TIME			1 REVOLUTION		NOT SAVED
+#
+# X		INTERMEDIATE VARIABLE IN G-LIMITER	2 VSAT	 		NOT SAVED
+#
+# Y		LATERAL MISS LIMIT			4 RADIANS		NOT SAVED
+
+# Page 840
+# EXTRA COMPUTER ERASABLE LOCATIONS NOT SHOWN ON FLOW CHARTS
+# ----------------------------------------------------------
+#
+# VARIABLE	DESCRIPTION				MAXIMUM VALUE
+# --------	-----------				-------------
+#
+# GOTOADDR	ADDRESS SELECTED BY SEQUENCER
+#
+# XPIPBUF	BUFFER TO STORE X PIPA COUNTS
+#
+# YPIPBUF	BUFFER TO STORE Y PIPA COUNTS
+#
+# ZPIPBUF	BUFFER TO STORE Z PIPA COUNTS
+#
+# PIPCTR	COUNTS PASSES THRU PIPA READ ROUTINE
+#
+# JJ		INDEX IN FINAL PHASE TABLE LOOK-UP
+#
+# MM		INDEX IN FINAL PHASE TABLE LOOK-U
+#
+# GRAD		INTERPOLATION FACTOR IN FINAL PHASE
+#
+# FX		DRANGE/D L/D = F3			2700 NM
+#
+# FX +1		AREF					805 FPSS
+#
+# FX +2		RTOGO					2700 NM
+#
+# FX +3		RDOTREF					VSAT/4
+#
+# FX +4		DRANGE/D RDOT = F2			21600/2VS NM/FPS
+#
+# FX +5		DRANGE/D DRAG = F1			2700/805 NM/FPSS
+#
+# TEM1B		TEMPORARY LOCATION
+#
+# TIME/RTO	TIME OF INITIAL TARGET RTINIT		B 28 CENTISEC
+#
+# DTEAROT	EST TIME BETWEEN RTINIT AND RT		B 28 CENTISEC
+# _
+# UNITV		UNIT V VECTOR				2
+# _
+# UNITR		UNIT R VECTOR				2
+#  _
+# -VREL		NEGATIVE VELOCITY REL TO ATMOSP		2 VSAT
+
+# COMPUTER SWITCHES					INITIAL STATE		CM/FLAGS = STATE +6
+# -----------------					-------------		-------------------
+#
+# ENTRYDSP	DO ENTRY DISPLAY, IF SET		NON-BRANCH (1)		92D, BIT 13
+# GONEPAST	INDICATES OVERSHOOT OF TARGET		NON-BRANCH (0)		95D, BIT 10
+# RELVELSW	RELATIVE VELOCITY SWITCH		NON-BRANCH (0)		96D, BIT 9
+# EGSW		FINAL PHASE SWITCH			NON-BRANCH (0)		97D, BIT 8
+# FIRSTPAS	INITIAL PASS THRU HUNTEST		NON-BRANCH (0)		98D, BIT 7
+# HIND		INDICATES ITERATION IN HUNTEST		NON-BRANCH (0)		99D, BIT 6
+# INRLSW	INDICATES INIT ROLL ATTITUDE SET	NON-BRANCH (0)		100D, BIT 5
+# LATSW		INHIBIT DOWNLIFT SWITCH IF NOT SET	    BRANCH (1)		101D, BIT 4
+# .05GSW	INDICATES DRAG EXCEEDS .05 GS		    BRANCH (0)		102D, BIT 3
+#
+# GONEBY	INDICATES GONE PAST TARGET (SET)	SELF-INITIALIZING	112D, BIT 8
+
+# Page 841
+# CONSTANTS AND GAINS							VALUE
+# -------------------							-----
+#
+# C1		FACTOR IN ALP COMPUTATION				1.25
+# C16		CONSTD GAIN ON DRAG					.01
+# C17		CONSTD GAIN ON RDOT					.001
+# C18		BIAS VEL. FOR FINAL PHASE START				500	FPS
+# C20		MAX DRAG FOR DOWN-LIFT					175	FPSS
+# CHOOK		FACTOR IN AHOOK COMPUTATION				.25
+# CH1		FACTOR IN GAMMAL COMPUTATION				1.0
+# COS15		COS( 15 DEG )						.965
+# DLEWD0	INITIAL VARIATION IN LEWD				-.05
+# D2		DRAG TO CHANGE LEWD					175	FPSS
+# DT		COMPUTATION CYCLE TIME INTERVAL				2	SEC.
+# GMAX		MAXIMUM ACCELERATION					257.6	FPSS	(8 G'S)
+# KA1		FACTOR IN KA CALC					1.3	GS
+# KA2		FACTOR IN KA CALC					.2 	GS
+# KA3		FACTOR IN D0 CALC					90 FPSS
+# KA4		FACTOR IN D0 CALC					40 FPSS
+# KB1		OPTIMIZED UPCONTROL GAIN				3.4
+# KB2		OPTIMIZED UPCONTROL GAIN				.0034
+# KDMIN		INCREMENT ON Q7 TO DETECT END OF KEPLER PHASE		.5	FPSS
+# KTETA		TIME OF FLIGHT CONSTANT					1000
+# KLAT1		FACTOR IN KLAT CALC					1/24
+# K44		GAIN USED IN INITIAL ROLL SECTION			19749550 FPS
+# LATBIAS	LATERAL SWITCH BIAS TERM				.41252961 NM
+# LEWD1		NOMINAL UPCONTROL L/D					.15
+# POINT1	FACTOR TO REDUCE UPCONTROL GAIN				.1
+# Q2		FINAL PHASE RANGE - 23500 Q3				-1002	NM
+# Q3		FINAL PHASE DRANGE/D V					.07	NM/FPS
+# Q5		FINAL PHASE DRANGE/D GAMMA				7050	NM/RAD
+# Q6		FINAL PHASE INITIAL FLIGHT PATH ANGLE			.0349	RAD
+# Q7F		MIN DRAG FOR UPCONTROL					6	FPSS
+# Q7MIN		IN VALUE FOR Q7 IN FACTOR CALCULATION			40	FPSS
+# Q19		FACTOR IN GAMMAL1 CALCULATION				.5
+# Q21		FACTOR IN Q2 CALCULATION				1000	NM
+# Q22		FACTOR IN Q2 CALCULATION				-1302	NM
+# VFINAL1	VELOCITY TO START FINAL PHASE ON INITIAL ENTRY		27000	FPS
+# VFINAL	FACTOR IN INITIAL UP-DOWN CALC				26600	FPS
+# VLMIN		MINIMUM VL						18000	FPS
+# VMIN		VELOCITY TO SWITCH TO RELATIVE VEL			VSAT/2
+# VRCONTRL	RDOT TO START INTO HUNTEST				700	FPS
+#		VRCONT=COMPUTER NAME
+# 25NM		TOLERANCE TO STOP RANGE ITERATION			25	NM
+# VQUIT		VELOCITY TO STOP STEERING				1000	FPS
+
+# Page 842
+# CONVERSION FACTORS AND SCALING CONSTANTS
+# ----------------------------------------
+#
+# ATK	ANGLE IN RAD TO NM						3437.7468	NM/RAD
+# G5	NOMINAL G VALUE FOR SCALING					32.2		FPSS
+# H5	ATMOSPHERE SCALE HEIGHT						28500		FT
+# J	GRAVITY HARMONIC COEFFICIENT					.00162346	
+# KWE	EQUATORIAL EARTH RATE						1546.10168	FPS
+# MUE	EARTH GRAVITATIONAL CONSTANT					3.986032233 E14	CUBIC M/ SEC SEC
+# RE	EARTH RADIUS							21202900	FT
+# REQ	EARTH EQUATORIAL RADIUS						20925738.2	FT
+# VSAT	SATELLITE VELOCITY AT RE					25766.1973	FPS
+# WIE	EARTH RATE							.0000729211505	RAD/SEC
+ 
+#		(END GSOP AS-278, VOL 1, FIG. 5.6-3 CONSTANTS, GAINS, ETC.)
+
+# DISPLAY QUANTITIES
+# ------------------
+#
+# (SEE SECTION 4 OF THE GSOP FOR SIGN CONVENTIONS.)
+#
+# VARIABLE	DESCRIPTION				MAXIMUM VALUE
+# --------	-----------				-------------
+#
+# QMAX		PREDICTED MAXIMUM ENTRY ACCEL		163.84 GS	N 60
+# VPRED		PREDICTED VELOCITY AT ALTITUDE		128 M/CENTISEC	N 60
+# 		400K FT ABOVE FISCHER RADIUS.
+# GAMMAEI	PREDICTED GAMMA AT ALTITUDE		1 REVOLUTION	N 60
+#		400K FT ABOVE FISCHER RADIUS
+# D		DRAG ACCELERATION			805 FPSS	N 64
+# VMAGI		INERTIAL VELOCITY MAGNITUDE		128 M/CENTISEC	N 64, N 68
+# THETAH	DESIRED RANGE ANGLE NM			1 REVOLUTION	N 64, N 67
+# LAT		PRESENT LATITUDE			1 REVOLUTION	N 67
+# LONG		PRESENT LONGITUDE			1 REVOLUTION	N 67
+# RTOGO		RANGE ANGLE TO SPLASH FROM		1 REVOLUTION	N 67
+# 		EMSALT FT ABOVE FISCHER RADIUS (IN NM)	
+# VIO		PREDICTED VELOCITY AT ALTITUDE		128 M/CENTISEC	N 63
+#		EMSALT FT ABOVE FISCHER RADIUS.
+# TTE		TIME OF FREE FALL TO ALT		B 28 CENTISEC	N 63
+# 		EMSALT FT ABOVE FISCHER RADIUS
+# ROLLC		ROLL COMMAND				1 REVOLUTION	N 68, N 68, N 69
+# LATANG	CROSS-RANGE ERROR (XRNGERR)		4 RADIANS	N 66
+# DNRNGERR	DOWN RANGE ERROR			1 REVOLUTION	N 66
+#		(PREDANG - THETAH IN NM)
+# HDOT		ALTITUDE RATE				128 M/CENTISEC	N 68
+# QT		MINIMUM DRAG FOR UPCONTROL		805 FPSS	N 69
+# VL		EXIT VELOCITY FOR UP-CONTROL		2 VSAT		N 69
+
+# Page 843
+# BODY ATTITUDE QUANTITIES (CM/POSE)
+# ----------------------------------
+#
+# VARIABLE	DECRIPTION				MAXIMUM VALUE
+# --------	----------				-------------
+#  _
+# -VREL		NEGATIVE VELOCITY REL TO ATMOS.		2 VSAT
+# _
+# OLDUYA	USED FOR UYA BELOW 1000 FPS		2
+# _
+# UXA/2		UNIT VECTOR TRIAD			2
+# _
+# UYA/2			BASED ON			2
+# _
+# UZA/2				THE TRAJECTORY		2
+# _
+# UBX/2		UNIT VECTOR				2
+# _
+# UBY/2			BODY TRIAD			2
+# _
+# UBZ/2				FOR CM.			2
+
diff --git a/ERASABLE_ASSIGNMENTS.s b/ERASABLE_ASSIGNMENTS.s
new file mode 100644
index 0000000..7388dc0
--- /dev/null
+++ b/ERASABLE_ASSIGNMENTS.s
@@ -0,0 +1,3785 @@
+# Copyright:	Public domain.
+# Filename:	ERASABLE_ASSIGNMENTS.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.
+# Mod history:	2009-05-06 RSB	Started adapting from the Colossus249/ file 
+#				of the same name, using Comanche055 page 
+#				images. Only through page 51 so far.
+#		2009-05-07 RSB	Through page 92 so far.
+#		2009-05-07 RSB	(Again!) First draft completed.
+#		2009-05-20 RSB	Fixed some bugs uncovered in trial assemblies:
+#				EMDOT, STATEXIT, VGDISP, DVPREV, POSTCDH,
+#				RETROFLG not defined correctly, changed the
+#				typing of labels 9X9LOC1 and 9X9LOC2, 
+#				R32FLBIT -> R31FLBIT.
+#		2009-05-21 RSB	Corrected definition of DELBRTMP, which 
+#				chained to quite a lot of off-by-one errors.
+#				Changed a +8 to a +8D.
+#
+# 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 37
+# CONVENTIONS AND NOTATIONS UTILIZED FOR ERASABLE ASSIGNMENTS.
+
+#	EQUALS	IS USED IN TWO WAYS.  IT IS OFTEN USED TO CHAIN A GROUP
+#		OF ASSIGNMENTS SO THAT THE GROUP MAY BE MOVED WITH THE
+#		CHANGING OF ONLY ONE CARD.  EXAMPLE:
+#
+#			X	EQUALS	START
+#			Y	EQUALS	X	+SIZE.X
+#			Z	EQUALS	Y	+SIZE.Y
+#
+#		(X, Y, AND Z ARE CONSECUTIVE AND BEGIN AT START.
+#		SIZE.X AND SIZE.Y ARE THE RESPECTIVE SIZES OF X AND Y.
+#		USUALLY NUMERIC, IE. 1, 2, 6, 18D, ETC.)
+
+#	EQUALS	OFTEN IMPLIES THE SHARING OF REGISTERS (DIFFERENT NAMES
+#		AND DIFFERENT DATA).  EXAMPLE:
+#
+#			X	EQUALS	Y
+
+#	=	MEANS THAT MULTIPLE NAMES HAVE BEEN GIVEN TO THE SAME DATA.
+#		(THIS IS LOGICAL EQUIVALENCE, NOT SHARING.)  EXAMPLE:
+#
+#			X	=	Y
+
+#	THE SIE AND UTILIZATION OF AN ERASABLE ARE OFTEN INCLUDED IN
+#	THE COMMENTS IN THE FOLLOWING FORM:  M(SIZE)N.
+#
+#		M	REFERS TO THE MOBILITY OF THE ASSIGNMENT.
+#			B	MEANS THAT THE SYMBOL IS REFERENCED BY BASIC
+#				INSTRUCTIONS AND THUS IS E-BANK SENSITIVE.
+#			I	MEANS THAT THE SYMBOL IS REFERENCED ONLY BY
+#				INTERPRETIVE INSTRUCTIONS, AND IS THUS E-BANK
+#				INSENSITIVE AND MAY APPEAR IN ANY E-BANK.
+#
+#		SIZE	IS THE NUMBER OF REGISTERS INCLUDED BY THE SYMBOL.
+#
+#		N	INDICATES THE NATURE OF PERMANENCE OF THE CONTENTS.
+#			PL	MEANS THAT THE CONTENTS ARE PAD LOADED.
+#			DSP	MEANS THAT THE REGISTER IS USED FOR A DISPLAY.
+#			PRM	MEANS THAT THE REGISTER IS PERMANENT.  IE., IT
+#				IS USED DURING THE ENTIRE MISSION FOR ONE
+#				PURPOSE AND CANNOT BE SHARED.
+#			TMP	MEANS THAT THE REGISTER IS USED TEMPORARILY OR
+#				IS A SCRATCH REGISTER FOR THE ROUTINE TO WHICH
+#				IT IS ASSIGNED.  THAT IS, IT NEED NOT BE SET
+#				PRIOR TO INVOCATION OF THE ROUTINE NOR DOES IT
+#				CONTAIN USEFUL OUTPUT TO ANOTHER ROUTINE.  THUS
+# Page 38
+#				IT MAY BE SHARED WITHANY OTHER ROUTINE WHICH
+#				IS NOT ACTIVE IN PARALLEL
+#			IN	MEANS INPUT TO THE ROUTINE AND IT IS PROBABLY
+#				TEMPORARY FOR A HIGHER-LEVEL ROUTINE/PROGRAM.
+#			OUT	MEANS OUTPUT FROM THE ROUTINE, PROBABLY
+#				TEMPORARY FOR A HIGHER-LEVEL ROUTINE/PROGRAM.
+
+# Page 39
+
+# SPECIAL REGISTERS.
+
+A		EQUALS	0
+L		EQUALS	1		# L AND Q ARE BOTH CHANNELS AND REGISTERS
+Q		EQUALS	2
+EBANK		EQUALS	3
+FBANK		EQUALS	4
+Z		EQUALS	5		# ADJACENT TO FBANK AND BBANK FOR DXCH Z
+BBANK		EQUALS	6		# (DTCB) AND DXCH FBANK (DTCF).
+					# REGISTER 7 IS A ZERO-SOURCE, USED BY ZL.
+					
+ARUPT		EQUALS	10		# INTERRUPT STORAGE
+LRUPT		EQUALS	11
+QRUPT		EQUALS	12
+SAMPTIME	EQUALS	13		# SAMPLED TIME 1 & 2.
+ZRUPT		EQUALS	15		# (13 AND 14 ARE SPARES.)
+BANKRUPT	EQUALS	16		# USUALLY HOLDS FBANK OR BBANK.
+BRUPT		EQUALS	17		# RESUME ADDRESS AS WELL.
+
+CYR		EQUALS	20
+SR		EQUALS	21
+CYL		EQUALS	22
+EDOP		EQUALS	23		# EDITS INTERPRETIVE OPERATION CODE PAIRS.
+
+TIME2		EQUALS	24
+TIME1		EQUALS	25
+TIME3		EQUALS	26
+TIME4		EQUALS	27
+TIME5		EQUALS	30
+TIME6		EQUALS	31
+CDUX		EQUALS	32
+CDUY		EQUALS	33
+CDUZ		EQUALS	34
+CDUT		EQUALS	35		# OPTICS TRUNNION CDU (WAS OPTY).
+OPTY		=	CDUT
+CDUS		EQUALS	36		# OPTICS SHAFT CDU (WAS OPTX).
+OPTX		=	CDUS
+PIPAX		EQUALS	37
+PIPAY		EQUALS	40
+PIPAZ		EQUALS	41
+BMAGX		EQUALS	42
+BMAGY		EQUALS	43
+BMAGZ		EQUALS	44
+INLINK		EQUALS	45
+RNRAD		EQUALS	46
+GYROCTR		EQUALS	47
+GYROCMD		EQUALS	47
+CDUXCMD		EQUALS	50
+CDUYCMD		EQUALS	51
+
+# Page 40
+
+CDUZCMD		EQUALS	52
+CDUTCMD		EQUALS	53		# OPTICS TRUNNION COMMAND (WAS OPTYCMD)
+OPTYCMD		=	CDUTCMD
+TVCYAW		EQUALS	CDUTCMD		# SPS YAW COMMAND IN TVC MODE
+CDUSCMD		EQUALS	54		# OPTICS SHAFT COMMAND (WAS OPTXCMD).
+TVCPITCH	EQUALS	CDUSCMD		# SPS PITCH COMMAND IN TVC MODE
+OPTXCMD		=	CDUSCMD
+EMSD		EQUALS	55
+THRUST		EQUALS	55
+LEMONM		EQUALS	56
+LOCALARM	EQUALS	57
+BANKALRM	EQUALS	60
+
+# INTERPRETIVE REGISTERS ADDRESSED RELATIVE TO VAC AREA.
+
+LVSQUARE	EQUALS	34D		# SQUARE OF VECTOR INPUT TO ABVAL AND UNIT
+LV		EQUALS	36D		# LENGTH OF VECTOR INPUT TO UNIT.
+X1		EQUALS	38D		# INTERPRETIVE SPECIAL REGISTER RELATIVE
+X2		EQUALS	39D		# TO THE WORK AREA.
+S1		EQUALS	40D
+S2		EQUALS	41D
+QPRET		EQUALS	42D
+
+# Page 41
+
+# INPUT/OUTPUT CHANNELS
+
+# *** CHANNEL ZERO IS TO BE USED IN AN INDEXED OPERATION ONLY. ***
+LCHAN		EQUALS	L
+QCHAN		EQUALS	Q
+HISCALAR	EQUALS	3
+LOSCALAR	EQUALS	4
+PYJETS		EQUALS	5
+ROLLJETS	EQUALS	6
+SUPERBNK	EQUALS	7
+OUT0		EQUALS	10
+DSALMOUT	EQUALS	11
+CHAN12		EQUALS	12
+CHAN13		EQUALS	13
+CHAN14		EQUALS	14
+MNKEYIN		EQUALS	15
+NAVKEYIN	EQUALS	16
+CHAN30		EQUALS	30
+CHAN31		EQUALS	31
+CHAN32		EQUALS	32
+CHAN33		EQUALS	33
+DNTM1		EQUALS	34
+DNTM2		EQUALS	35
+
+# END OF CHANNEL ASSIGNMENTS
+
+# Page 42
+
+# FLAGWORDS
+#
+# FLAGWRD0	STATE +0	(000-014)
+# FLAGWRD1	STATE +1	(015-029)
+# FLAGWRD2	STATE +2	(030-044)
+# FLAGWRD3	STATE +3	(045-059)
+# FLAGWRD4	STATE +4	(060-074)
+# FLAGWRD5	STATE +5	(075-089)
+# FLAGWRD6	STATE +6	(090-104)
+# FLAGWRD7	STATE +7	(105-119)
+# FLAGWRD8	STATE +8D	(120-134)
+# FLAGWRD9	STATE +9D	(135-149)
+
+#	SORTED LIST OF
+#	INTERPRETIVE SWITCH BIT ASSIGNMENTS
+
+# INTERPRETIVE SWITCH BIT ASSIGNMENTS
+#
+# FLAGWORD	DEC NUM		BIT & FLAG	EQUIVALENT FLAGWORDS
+#
+# 22DSPFLG	032D		BIT 13 FLAG 2
+# 360SW		134D		BIT 1 FLAG 8
+# 3AXISFLG	084D		BIT 6 FLAG 5
+# ADVTRK	125D		BIT 10 FLAG 8
+# AMOONFLG	13D		BIT 2 FLAG 0
+# APSESW	130D		BIT 5 FLAG 8
+# ASTNFLAG	108D		BIT 12 FLAG 7
+# ATTCHFLG	118D		BIT 2 FLAG 7
+# AVEGFLAG	029D		BIT 1 FLAG 1
+# AVEMIDSW	149D		BIT 1 FLAG 9
+# AVFLAG	040D		BIT 5 FLAG 2
+# CALCMAN2	043D		BIT 2 FLAG 2
+# CMDAPARM	093D		BIT 12 FLAG 6
+# CMOONFLG	123D		BIT 12 FLAG 8
+# CM/DSTBY	103D		BIT 2 FLAG 6
+# COGAFLAG	131D		BIT 4 FLAG 8
+# COMPUTER	082D		BIT 8 FLAG 5
+# CPHIFLAG	000D		BIT 15 FLAG 0
+# CULTFLAG	053D		BIT 7 FLAG 3
+# D6OR9FLG	058D		BIT 2 FLAG 3
+# DAPBIT1	090D		BIT 15 FLAG 6
+# DAPBIT2	091D		BIT 14 FLAG 6
+# DIM0FLAG	059D		BIT 1 FLAG 3
+# DMENFLAG	081D		BIT 9 FLAG 5
+# DRIFTFLG	030D		BIT 15 FLAG 2
+# DSKYFLAG	075D		BIT 15 FLAG 5
+# EGSW		097D		BIT 8 FLAG 6	KNOTNFLG R57FLAG
+
+# Page 43
+
+# ENG1FLAG	018D		BIT 12 FLAG 1
+# ENG2FLAG	019D		BIT 11 FLAG 1
+# ENGONFLG	083D		BIT 7 FLAG 5
+# ERADFLAG	017D		BIT 13 FLAG 1
+# ETPIFLAG	038D		BIT 7 FLAG 2	FIRSTFLG OPTNSW
+# F2RTE		010D		BIT 5 FLAG 0
+# FINALFLG	039D		BIT 6 FLAG 2
+# FIRSTFLG	038D		BIT 7 FLAG 2	ETPIFLAG OPTNSW
+# FREEFLAG	012D		BIT 3 FLAG 0
+# GAMDIFSW	094D		BIT 11 FLAG 6
+# GLOKFAIL	046D		BIT 14 FLAG 3
+# GONEBY	112D		BIT 8 FLAG 7
+# GONEPAST	095D		BIT 10 FLAG 6
+# GRRBKFLG	085D		BIT 5 FLAG 5
+# GUESSW	028D		BIT 2 FLAG 1
+# GYMDIFSW	104D		BIT 1 FLAG 6
+# .05GSW	102D		BIT 3 FLAG 6
+# HIND		099D		BIT 6 FLAG 6
+# IDLEFAIL	024D		BIT 6 FLAG 1
+# IDLEFLAG	113D		BIT 7 FLAG 7
+# IGNFLAG	107D		BIT 13 FLAG 7
+# IMPULSW	036D		BIT 9 FLAG 2
+# IMUSE		007D		BIT 8 FLAG 0
+# INCORFLG	079D		BIT 11 FLAG 5
+# INFINFLG	128D		BIT 7 FLAG 8
+# INRLSW	100D		BIT 5 FLAG 6
+# INTFLAG	151D		BIT 14 FLAG 10
+# INTYPFLG	056D		BIT 4 FLAG 3
+# ITSWICH	106D		BIT 14 FLAG 7
+# KFLAG		014D		BIT 1 FLAG 0
+# KNOWNFLG	097D		BIT 8 FLAG 6	EGSW R57FLAG
+# LATSW		101D		BIT 4 FLAG 6
+# LMOONFLG	124D		BIT 11 FLAG 8
+# LUNAFLAG	048D		BIT 12 FLAG 3
+# MAXDBFLG	138D		BIT 12 FLAG 9
+# MGLVFLAG	088D		BIT 2 FLAG 5
+# MID1FLAG	147D		BIT 3 FLAG 9
+# MIDAVFLG	148D		BIT 2 FLAG 9
+# MIDFLAG	002D		BIT 13 FLAG 0
+# MKOVFLAG	072D		BIT 3 FLAG 4
+# MOONFLAG	003D		BIT 12 FLAG 0
+# MRKIDFLG	060D		BIT 15 FLAG 4
+# MRKNVFLG	066D		BIT 9 FLAG 4
+# MRUPTFLG	070D		BIT 5 FLAG 4
+# MWAITFLG	064D		BIT 11 FLAG 4
+# N22ORN17	144D		BIT 6 FLAG 9
+# NEEDLFLG	006D		BIT 9 FLAG 0
+# NEWIFLG	122D		BIT 13 FLAG 8
+# NJETSFLG	015D		BIT 15 FLAG 1
+# NODOFLAG	044D		BIT 1 FLAG 2
+
+# Page 44
+
+# NODOP01	018D		BIT 12 FLAG 1
+# NORFHOR	004D		BIT 11 FLAG 0
+# NORMSW	110D		BIT 10 FLAG 7
+# NOSWITCH	098D		BIT 7 FLAG 6
+# NRMIDFLG	062D		BIT 13 FLAG 4
+# NRMNVFLG	067D		BIT 8 FLAG 4
+# NRUPTFLG	071D		BIT 4 FLAG 4
+# NWAITFLG	065D		BIT 10 FLAG 4
+# OPTNSW	038D		BIT 7 FLAG 2	ETPIFLAG FIRSTFLG
+# ORBWFLAG	054D		BIT 6 FLAG 3
+# ORDERSW	129D		BIT 6 FLAG 8
+# P21FLAG	033D		BIT 12 FLAG 2
+# P22MKFLG	049D		BIT 11 FLAG 3
+# P39/79SW	126D		BIT 9 FLAG 8
+# PDSPFLAG	063D		BIT 12 FLAG 4
+# PFRATFLG	041D		BIT 4 FLAG 2
+# PINBRFLG	069D		BIT 6 FLAG 4
+# PRECIFLG	052D		BIT 8 FLAG 3
+# PRFTRKAT	060D		BIT 10 FLAG 5
+# PRIODFLG	061D		BIT 14 FLAG 4
+# PRONVFLG	068D		BIT 7 FLAG 4
+# QUITFLAG	145D		BIT 5 FLAG 9
+# R21MARK	031D		BIT 14 FLAG 2
+# R22CAFLG	143D		BIT 7 FLAG 9
+# R23FLG	021D		BIT 9 FLAG 1
+# R31FLAG	146D		BIT 4 FLAG 9
+# R53FLAG	009D		BIT 6 FLAG 0
+# R57FLAG	097D		BIT 8 FLAG 6	KNOWNFLG EGSW
+# R60FLAG	086D		BIT 4 FLAG 5
+# REFSMFLG	047D		BIT 13 FLAG 3
+# REINTFLG	158D		BIT 7 FLAG 10
+# RELVELSW	096D		BIT 9 FLAG 6
+# RENDWFLG	089D		BIT 1 FLAG 5
+# RNDVZFLG	008D		BIT 7 FLAG 0
+# RPQFLAG	120D		BIT 15 FLAG 6
+# RVSW		111D		BIT 9 FLAG 7
+# SAVECFLG	140D		BIT 10 FLAG 9
+# SKIPVHF	035D		BIT 10 FLAG 2
+# SLOPESW	027D		BIT 3 FLAG 1
+# SOLNSW	087D		BIT 3 FLAG 5
+# SOURCFLG	142D		BIT 8 FLAG 9
+# STATEFLG	055D		BIT 5 FLAG 3
+# STEERSW	034D		BIT 11 FLAG 2
+# STIKFLAG	016D		BIT 14 FLAG 1
+# STRULLSW	092D		BIT 13 FLAG 6
+# SURFFLAG	127D		BIT 8 FLAG 8
+# SWTOVER	135D		BIT 15 FLAG 9
+# TARG1FLG	020D		BIT 10 FLAG 1
+
+# Page 45
+
+# TARG2FLG	021D		BIT 9 FLAG 1
+# TERMIFLG	105D		BIT 15 FLAG 7
+# TFFSW		119D		BIT 1 FLAG 7
+# TIMRFLAG	109D		BIT 11 FLAG 7
+# TRACKFLG	025D		BIT 5 FLAG 1
+# TRM03FLG	026D		BIT 4 FLAG 1
+# TRUNFLAG	011D		BIT 4 FLAG 0
+# UPDATFLG	023D		BIT 7 FLAG 1
+# UPLOCKFL	116D		BIT 4 FLAG 7
+# V37FLAG	114D		BIT 6 FLAG 7
+# V59FLAG	078D		BIT 12 FLAG 5
+# V67FLAG	136D		BIT 14 FLAG 9
+# V82EMFLG	137D		BIT 13 FLAG 9
+# V94FLAG	139D		BIT 11 FLAG 9
+# V96ONFLG	132D		BIT 3 FLAG 8
+# VEHUPFLG	022D		BIT 8 FLAG 1
+# VERIFLAG	117D		BIT 3 FLAG 7
+# VFLAG		050D		BIT 10 FLAG 3
+# VHFRFLAG	141D		BIT 9 FLAG 9
+# VINTFLAG	057D		BIT 3 FLAG 3
+# XDELVFLG	037D		BIT 8 FLAG 2
+# XDSPFLAG	074D		BIT 1 FLAG 4
+
+# Page 46
+
+# INTERPRETIVE SWITCH BIT ASSIGNMENTS
+FLAGWRD0	=	STATE +0	# (000-014)
+					# (SET)			(RESET)
+# BIT 15 FLAG 0
+CPHIFLAG	=	000D		# OUTPUT OF CALCGA IS	OUTPUT OF CALCGA IS
+					# CPHIX			THETAD
+CPHIBIT		=	BIT15
+
+# BIT 14 FLAG 0
+JSWITCH		=	001D		# INTEGRATION OF W	INTEGRATION OF STATE
+					# MATRIX		VECTOR
+JSWCHBIT	=	BIT14
+
+# BIT 13 FLAG 0
+MIDFLAG		=	002D		# INTEGRATION WITH	INTEGRATION WITHOUT
+					# SOLAR PERTURBATIONS	SOLAR PERTURBATIONS
+					
+MIDFLBIT	=	BIT13
+
+# BIT 12 FLAG 0
+MOONFLAG	=	003D		# MOON IS SPHERE OF 	EARTH IS SPHERE OF
+					# INFLUENCE		INFLUENCE
+					
+MOONBIT		=	BIT12
+
+# BIT 11 FLAG 0
+NORFHOR		=	004D		# FAR HORIZON		NEAR HORIZON
+
+NORFBIT		=	BIT11
+
+# BIT 10 FLAG 0
+ZMEASURE	=	005D		# MEASUREMENT PLANET	MEASUREMENT PLANET
+					# AND PRIMARY PLANET	AND PRIMARY PLANET
+					# DIFFERENT		SAME
+					
+ZMEASBIT	=	BIT10
+
+# BIT 9 FLAG 0
+NEEDLFLG	=	006D		# TOTAL ATTITUDE	A/P FOLLOWING ERROR
+					# ERROR DISPLAYED	DISPLAYED
+					
+NEEDLBIT	=	BIT9
+
+# BIT 8 FLAG 0
+IMUSE		=	007D		# IMU IN USE		IMU NOT IN USE
+
+# Page 47
+
+IMUSEBIT	=	BIT8
+
+# BIT 7 FLAG 0
+RNDVZFLG	=	008D		# P20 RUNNING		P20 NOT RUNNING
+
+RNDVZBIT	=	BIT7
+
+# BIT 6 FLAG 0
+R53FLAG		=	009D		# V51 INITIATED		V51 NOT INITIATED
+
+R53FLBIT	= 	BIT8
+
+# BIT 5 FLAG 0
+F2RTE		=	010D		# IN TIME CRITICAL	NOT IN TIME CRITICAL
+					# MODE			MODE
+
+F2RTEBIT	=	BIT5
+
+# BIT 4 FLAG 0
+TRUNFLAG	=	011D		# DRIVING OF TRUNNION	DRIVING OF TRUNNION
+					# ALLOWED		NOT ALLOWED
+					
+TRUNBIT		=	BIT4
+
+# BIT 3 FLAG 0
+FREEFLAG	=	012D		# (TEMPORARY FLAG USED IN MANY ROUTINES)
+
+FREEFBIT	=	BIT3
+
+# BIT 2 FLAG 0
+AMOONFLG	=	13D		# STATE VECTOR IN	STATE VECTOR IN
+AMOONBIT	=	BIT2		# LUNAR SPHERE AT	EARTH SPHERE AT
+					# MIDTOAVE		MIDTOAVE
+		
+# BIT 1 FLAG 0
+KFLAG		=	014D		# SEARCH SECTOR MORE	SEARCH SECTOR LESS
+					# THAN 180 DEGREES	THAN 180 DEGREES
+					
+KBIT		=	BIT1
+
+FLAGWRD1	=	STATE +1	# (015-029)
+					# (SET)			(RESET)
+
+# BIT 15 FLAG 1
+NJETSFLG	=	015D		# TWO JET RCS BURN	FOUR JET RCS BURN
+
+NJETSBIT	=	BIT15
+
+# Page 48
+
+# BIT 14 FLAG 1
+STIKFLAG	=	016D		# RHC CONTROL		CMC CONTROL
+STIKBIT		=	BIT14
+
+# BIT 13 FLAG 1
+ERADFLAG	=	017D		# EARTH, COMPUTE	EARTH, USED FIXED
+					#   FISCHER ELLIPSOID	  RADIUS
+					#   RADIUS
+					# MOON, USE FIXED	MOON, USE RLS FOR
+					#   RADIUS		  LUNAR RADIUS
+					
+ERADFBIT	=	BIT13
+
+# BIT 12 FLAG 1
+NODOP01		=	018D		# P01 NOT ALLOWED	P01 ALLOWD
+NOP01BIT	=	BIT12
+			
+# BIT 11 FLAG 1
+ENG2FLAG	=	019D		# RCS BURN		SPS BURN
+
+ENG2BIT		=	BIT11
+
+# BIT 10 FLAG 1
+TARG1FLG	=	020D		# SIGHTING LEM		NOT SIGHTING LEM
+
+TARG1BIT	=	BIT10
+
+# BIT 9 FLAG 1
+TARG2FLG	= 	021D		# SIGHTING LANDMARK	SIGHTING STAR
+
+TARG2BIT	= 	BIT9
+
+# BIT 9 FLAG 1
+R23FLG		=	021D		# R23 MARKING
+
+R23BIT		=	BIT9
+
+# BIT 8 FLAG 1
+VEHUPFLG	=	022D		# CSM STATE VECTOR	LEM STATE VECTOR
+					# BEING UPDATED		BEING UPDATED
+					
+VEHUPBIT	=	BIT8
+
+# BIT 7 FLAG 1
+UPDATFLG	=	023D		# UPDATING BY MARKS	UPDATING BY MARKS
+					# ALLOWED		NOT ALLOWED
+# Page 49
+						
+UPDATBIT	=	BIT7
+
+# BIT 6 FLAG 1
+IDLEFAIL	=	024D		# INHIBIT R41		ENABLE R41 (ENGFAIL)
+
+IDLEBIT		=	BIT6
+
+# BIT 5 FLAG 1
+TRACKFLG	=	025D		# TRACKING ALLOWED	TRACKING NOT ALLOWED
+
+TRACKBIT	=	BIT5
+
+# BIT 4 FLAG 1
+TRM03FLG	=	026D		# REQUEST TO		NO REQUEST TO
+					# TERMINATE P03 HAS	TERMINATE P03 HAS
+					# BEEN ENTERED		BEEN ENTERED
+					
+TRM03BIT	=	BIT4
+
+# BIT 3 FLAG 1
+SLOPESW		= 	027D		# ITERATE WITH BIAS	ITERATE WITH REGULA
+					# METHOD IN ITERATOR	FALSI METHOD IN 
+					#			ITERATOR
+					
+SLOPEBIT	=	BIT3
+
+# BIT 2 FLAG 1
+GUESSW		=	028D		# NO STARTING VALUE	STARTING VALUE FOR
+					# FOR ITERATION		ITERATION EXISTS
+					
+GUESSBIT	=	BIT2
+
+# BIT 1 FLAG 1
+AVEGFLAG	=	029D		# AVERAGEG (SERVICER)	AVERAGEG (SERVICER)
+					# TO CONTINUE		TO CEASE
+					
+AVEGBIT		=	BIT1
+
+FLAGWRD2	=	STATE +2	# (030-044)
+
+					# (SET)			(RESET)
+
+# BIT 15 FLAG 2
+DRIFTFLG	=	030D		# T3RUPT CALLS GYRO	T3RUPT DOES NO GYRO
+					# COMPENSATION		COMPENSATION
+					
+DRFTBIT		=	BIT15
+
+# Page 50
+
+# BIT 14 FLAG 2
+R21MARK		=	031D		# OPTION ONE FOR	OPTION TWO FOR 
+					# MARKRUPT		MARKRUPT
+
+R21BIT		=	BIT14
+
+# BIT 13 FLAG 2
+22DSPFLG	=	032D		# DISPLAY DR,DV		DO NOT DISPLAY DR,DV
+
+22DSPBIT	=	BIT13
+
+# BIT 12 FLAG 2
+P21FLAG		=	033D		# SUCCEEDING PASS	1ST PASS THRU P21,
+					# THRU P21, USE BASE	CALCULATE BASE
+P21BIT		=	BIT12		# VECTOR FOR CALC.	VECTOR
+
+STEERSW		=	034D		# STEERING TO BE DONE	STEERING OMITTED
+
+STEERBIT	=	BIT11
+
+# BIT 10 FLAG 2
+SKIPVHF		=	035D		# DISREGARD RADAR	RADAR READ TO
+					# READ BECAUSE OF	PROCEED NORMALLY
+SKIPVBIT	=	BIT10		# SFTWRE OR HDWRE
+					# RESTART
+
+# BIT 9 FLAG 2
+IMPULSW		=	036D		# MINIMUM IMPULSE	STEERING BURN (NO
+					# BURN (CUTOFF TIME	CUTOFF TIME YET
+					# SPECIFIED)		AVAILABLE)
+					
+IMPULBIT	=	BIT9
+
+# BIT 8 FLAG 2
+XDELVFLG	=	037D		# EXTERNAL DELTAV VG	LAMBERT (AIMPOINT)
+					# COMPUTATION		VG COMPUTATION
+
+XDELVBIT	=	BIT8
+
+# BIT 7 FLAG 2
+ETPIFLAG	=	038D		# ELEVATION ANGLE	TPI TIME SUPPLIED
+					# SUPPLIED FOR P34,74	FOR P34,74
+
+# BIT 7 FLAG 2
+FIRSTFLG	=	ETPIFLAG	# FIRST PASS		SUCCEEDING PASS THRU
+					# THRU S40.9		S40.9
+					
+FIRSTBIT	=	BIT7
+
+# BIT 7 FLAG 2
+# Page 51
+OPTNSW		=	ETPIFLAG	# SOI PHASE P38/P78	SOR PHASE OF P38/P78
+
+FINALBIT	=	BIT6
+
+# BIT 6 FLAG 2
+FINALFLG	=	039D		# LAST PASS THROUGH	INTERIM PASS THROUGH
+					# RENDEZVOUS PROGRAM	RENDEZVOUS PROGRAM
+					# COMPUTATIONS		COMPUTATIONS
+					
+AVFLBIT		=	BIT5
+
+# BIT 5 FLAG 2
+AVFLAG		=	040D		# LEM IS ACTIVE		CSM IS ACTIVE
+					# VEHICLE		VEHICLE
+					
+# BIT 4 FLAG 2
+PFRATFLG	=	041D		# PREFERRED ATTITUDE	PREFERRED ATTITUDE
+					# COMPUTED		NOT COMPUTED
+					
+PFRATBIT	=	BIT4
+
+# BIT 3 FLAG 2
+		=	042D	
+					
+# BIT 2 FLAG 2
+CALCMAN2	=	043D		# PERFORM MANEUVER	BYPASS STARTING
+					# STARTING PROCEDURE	PROCEDURE
+					
+CALC2BIT	=	BIT2
+
+# BIT 1 FLAG 2
+NODOFLAG	=	044D		# V37 NOT PERMITTED 	V37 PERMITTED
+
+NODOBIT		=	BIT1
+
+FLAGWRD3	=	STATE +3	# (045-059)
+					# (SET)			(RESET)
+					
+# BIT 15 FLAG 3
+		=	045D
+		
+# BIT 14 FLAG 3
+GLOKFAIL	=	046D		# GIMBAL LOCK HAS	NOT IN GIMBAL LOCK
+					# OCCURRED
+					
+GLOKFBIT	=	BIT14
+
+# Page 52
+
+# BIT 13 FLAG 3
+REFSMFLG	=	047D		# REFSMMAT GOOD		REFSMMAT NO GOOD
+
+REFSMBIT	=	BIT13
+
+# BIT 12 FLAG 3
+LUNAFLAG	=	048D		# LUNAR LAT-LONG	EARTH LAT-LONG
+
+LUNABIT		=	BIT12
+
+# BIT 11 FLAG 3
+P22MKFLG	=	049D		# P22 DOWNLINKED MARK	P22 DOWNLINK MARK
+					# DATA WAS JUST TAKEN	DATA NOT JUST TAKEN
+					
+P22MKBIT	=	BIT11
+
+# BIT 10 FLAG 3
+VFLAG		=	050D		# LESS THAN TWO STARS	TWO STARS IN FIELD
+					# IN FIELD OF VIEW	OF VIEW
+					
+VFLAGBIT	=	BIT10
+
+# BIT 9 FLAG 3
+		=	051D
+		
+# BIT 8 FLAG 3
+PRECIFLG	=	052D		# CSMPREC OR LEMPREC	INTEGRV
+					# OR INTEGRVS CALLED	CALLED
+					
+PRECIBIT	=	BIT8
+
+# BIT 7 FLAG 3
+CULTFLAG	=	053D		# STAR OCCULTED		STAR NOT OCCULTED
+
+CULTBIT		=	BIT7
+
+# BIT 6 FLAG 3
+ORBWFLAG	=	054D		# W MATRIX VALID FOR	W MATRIX INVALID FOR
+					# ORBITAL NAVIGATION	ORBITAL NAVIGATION
+			
+ORBWFBIT	=	BIT6
+
+# BIT 5 FLAG 3
+STATEFLG	=	055D		# PERMANENT STATE	PERMANENT STATE
+					# VECTOR UPDATED	VECTOR NOT UPDATED
+					
+STATEBIT	=	BIT5
+
+# BIT 4 FLAG 3
+INTYPFLG	=	056D		# CONIC INTEGRATION	ENCKE INTEGRATION
+# Page 53
+INTYBIT		=	BIT4
+
+# BIT 3 FLAG 3
+VINTFLAG	=	057D		# CSM STATE VECTOR	LEM STATE VECTOR
+					# BEING INTEGRATED	BEING INTEGRATED
+					
+VINTFBIT	=	BIT3
+
+# BIT 2 FLAG 3
+D6OR9FLG	=	058D		# DIMENSION OF W IS 9	DIMENSION OF W IS 6
+					# FOR INTEGRATION	FOR INTEGRATION
+					
+D6OR9BIT	=	BIT2
+
+# BIT 1 FLAG 3
+DIM0FLAG	=	059D		# W MATRIX IS TO BE	W MATRIX IS NOT TO
+					# USED			BE USED
+					
+FLAGWRD4	=	STATE +4	# (060-074)
+					# (SET)			(RESET)
+					
+DIM0BIT		=	BIT1
+
+# BIT 15 FLAG 4
+MRKIDFLG	=	060D		# MARK DISPLAY IN 	NO MARK DISPLAY IN
+					# ENDIDLE		ENDIDLE
+					
+MRKIDBIT	=	BIT15
+
+# BIT 14 FLAG 4
+PRIODFLG	=	061D		# PRIORITY DISPLAY IN	NO PRIORITY DISPLAY
+					# ENDIDLE		IN ENDIDLE
+					
+PRIODBIT	=	BIT14
+
+# BIT 13 FLAG 4
+NRMIDFLG	=	062D		# NORMAL DISPLAY IN	NO NORMAL DISPLAY
+					# ENDIDLE		IN ENDIDLE
+					
+NRMIDBIT	=	BIT13
+
+# BIT 12 FLAG 4
+PDSPFLAG	=	063D		# CAN'T INTERRUPT	SEE M. HAMILTON
+					# PRIORITY DISPLAY
+					
+PDSPFBIT	=	BIT12
+
+# BIT 11 FLAG 4
+MWAITFLG	=	064D		# HIGHER PRIORITY	NO HIGHER PRIORITY
+# Page 54
+					# DISPLAY OPERATING	DISPLAY OPERATING
+					# WHEN MARK DISPLAY	WHEN MARK DISPLAY
+					# INITIATED		INITIATED
+MWAITBIT	=	BIT11
+
+# BIT 10 FLAG 4
+NWAITFLG	=	065D		# HIGHER PRIORITY	NO HIGHER PRIORITY
+					# DISPLAY OPERATING	DISPLAY OPERATING
+					# WHEN NORMAL		WHEN NORMAL DISPLAY
+					# DISPLAY INITIATED	INITIATED
+					
+NWAITBIT	=	BIT10
+
+# BIT 9 FLAG 4
+MRKNVFLG	=	066D		# ASTRONAUT USING	ASTRONAUT NOT USING
+					# KEYBOARD WHEN MARK	KEYBOARD WHEN MARK
+					# DISPLAY INITIATED	DISPLAY INITIATED
+					
+MRKNVBIT	=	BIT9
+
+# BIT 8 FLAG 4
+NRMNVFLG	=	067D		# ASTRONAUT USING	ASTRONAUT NOT USING
+					# KEYBOARD WHEN		KEYBOARD WHEN
+					# NORMAL DISPLAY	NORMAL DISPLAY
+					# INITIATED		INITIATED
+					
+NRMNVBIT	=	BIT8
+
+# BIT 7 FLAG 4
+PRONVFLG	=	068D		# ASTRONAUT USING	ASTRONAUT NOT USING
+					# KEYBOARD WHEN		KEYBOARD WHEN
+					# PRIORITY DISPLAY	PRIORITY DISPLAY
+					# INITIATED		INITIATED
+					
+PRONVBIT	=	BIT7
+
+# BIT 6 FLAG 4
+PINBRFLG	=	069D		# ASTRONAUT HAS		ASTRONAUT HAS NOT
+					# INTERFERED WITH	INTERFERED WITH
+					# EXISTING DISPLAY	EXISTING DISPLAY
+					
+PINBRBIT	=	BIT6
+
+# BIT 5 FLAG 4
+MRUPTFLG	=	070D		# MARK DISPLAY		MARK DISPLAY NOT
+					# INTERRUPTED BY	INTERRUPTED BY
+					# PRIORITY DISPLAY	PRIORITY DISPLAY
+					
+MRUPTBIT	=	BIT5
+# Page 55
+
+# BIT 4 FLAG 4
+NRUPTFLG	=	071D		# NORMAL DISPLAY	NORMAL DISPLAY NOT
+					# INTERRUPTED BY	INTERRUPTED BY
+					# PRIORITY OR MARK	PRIORITY OR MARK
+					# DISPLAY		DISPLAY
+					
+NRUPTBIT	=	BIT4
+
+# BIT 3 FLAG 4
+MKOVFLAG	=	072D		# MARK DISPLAY OVER	NO MARK DISPLAY OVER
+					# NORMAL		NORMAL
+					
+MKOVBIT		=	BIT3
+
+# BIT 2 FLAG 4				# DISPLAY BIT
+		=	073D		# CLEARED AT INTERVALS
+
+# BIT 1 FLAG 4
+XDSPFLAG	=	074D		# MARK DISPLAY NOT TO	NO SPECIAL MARK
+					# BE INTERRUPTED	INFORMATION
+					
+XDSPBIT		=	BIT1
+
+FLAGWRD5	=	STATE +5	# (075-099)
+					# (SET)			(RESET)
+					
+# BIT 15 FLAG 5
+DSKYFLAG	=	075D		# DISPLAYS SENT TO	NO DISPLAYS TO DSKY
+					# DSKY				
+DSKYBIT		=	BIT15
+
+# BIT 14 FLAG 5
+RETROFLG	=	076D		# P37 PREMANEUVER	ORBIT NOT RETROGRADE
+RETROBIT	=	BIT14		# ORBIT IS RETROGRADE
+
+# BIT 13 FLAG 5
+SLOWFLG		=	077D		# P37 TRANSEARTH	SLOW DOWN IS NOT
+SLOWBIT		=	BIT13		# COAST SLOW DOWN	DESIRED
+					# IS DESIRED
+					
+# BIT 12 FLAG 5
+V59FLAG		=	078D		# CALIBRATING FOR	NORMAL MARKING FOR
+					# P23			P23
+					
+V59FLBIT	=	BIT12
+
+# BIT 11 FLAG 5
+# Page 56
+INCORFLG	=	079D		# FIRST INCORPORATION	SECOND INCORPORATION
+
+INCORBIT	=	BIT11
+
+# BIT 10 FLAG 5
+RNGSCFLG	=	080D		# ANOTHER TAG FOR PRFTRKAT
+
+# BIT 10 FLAG 5
+PRFTRKAT	=	RNGSCFLG	# PREF TRACK ATT	+K AXIS TRACK ATT
+
+PRFTRBIT	=	BIT10
+
+# BIT 9 FLAG 5
+DMENFLG		=	081D		# DIMENSION OF W IS 9	DIMENSION OF W IS 6
+					# FOR INCORPORATION	FOR INCORPORATION
+					
+DMENFBIT	=	BIT9
+
+# BIT 8 FLAG 5
+COMPUTER	=	082D		# COMPUTER IS CMC	COMPUTER IS LGC
+
+COMPTBIT	=	BIT8
+
+# BIT 7 FLAG 5
+ENGONFLG	=	083D		# ENGINE TURNED ON	ENGINE TURNED OFF
+
+ENGONBIT	=	BIT7
+
+# BIT 6 FLAG 5
+3AXISFLG	=	084D		# MANEUVER SPECIFIED	MANEUVER SPECIFIED
+					# BY THREE AXES		BY ONE AXIS
+					
+3AXISBIT	=	BIT6
+
+# BIT 5 FLAG 5
+GRRBKFLG	=	085D		# BACKUP GRR RECEIVED	BACKUP GRR NOT
+					#			RECEIVED
+					
+GRRBKBIT	=	BIT5
+
+# BIT 4 FLAG 5
+R60FLAG		=	086D		# R61 MUST USE R60	NORMAL R61
+
+R60FLBIT	=	BIT4
+
+# BIT 3 FLAG 5
+SOLNSW		=	087D		# LAMBERT DOES NOT	LAMBERT CONVERGES OR
+# Page 57
+					# CONVERGE, OR TIME-	TIME-RADIUS NON
+					# RADIUS NEARLY CIRC.	CIRCULAR.
+SOLNSBIT	=	BIT3
+
+# BIT 2 FLAG 5
+MGLVFLAG	=	088D		# LOCAL VERTICAL	MIDDLE GIMBAL ANGLE
+					# COORDINATES 		COMPUTED
+					# COMPUTED
+					
+MGLVFBIT	=	BIT2
+
+# BIT 1 FLAG 5
+RENDWFLG	=	089D		# W MATRIX VALID	W MATRIX INVALID
+					# FOR RENDEZVOUS	FOR RENDEZVOUS
+					# NAVIGATION		NAVIGATION
+					
+RENDWBIT	=	BIT1
+
+FLAGWRD6	=	STATE +6	# (090-104)
+					# (SET)			(RESET)
+					
+# BIT 15 FLAG 6
+DAPBIT1		=	090D		# 1 SATURN 1 TVC	0 RCS	0 NO
+				
+DAP1BIT		=	BIT15
+
+# BIT 14 FLAG 6
+DAPBIT2		=	091D		# 1 A/P    0 A/P	1 A/P	0 A/P
+
+DAP2BIT		=	BIT14
+
+# BIT 13 FLAG 6
+STRULLSW	=	092D		# DO STEERULL		DO ULAGEOFF ONLY
+
+STRULBIT	=	BIT13
+
+# BIT 13 FLAG 6
+ENTRYDSP	=	STRULLSW	# DO ENTRY DISPLAY	OMIT ENTRY DISPLAY
+					# VIA ENTRYVN.
+					
+ENDSPBIT	=	BIT13
+
+# BIT 12 FLAG 6
+CMDAPARM	=	093D		# ALLOW ENTRY FIRINGS	INHIBIT ENTRY FIRING
+					# AND CALCULATIONS	AND CONTROL FUNCTION
+# Page 58					
+CMDARMBIT	=	BIT12
+
+# BIT 11 FLAG 6
+GAMDIFSW	=	094D		# CALCULATE GAMDOT	GAMDOT NOT TO BE
+					#			CALCULATED
+
+GMDIFBIT	=	BIT11
+
+# BIT 10 FLAG 6
+GONEPAST	=	095D		# LATERAL CONTROL	LATERAL CONTROL
+					# CALCULATIONS TO BE	CALCULATIONS TO BE
+					# OMITTED		DONE
+					
+GONEBIT		=	BIT10
+
+# BIT 9 FLAG 6
+RELVELSW	=	096D		# TARGETING USES	TARGETING USES
+					# EARTH-RELATIVE	INERTIAL VELOCITY
+					# VELOCITY.
+					
+RELVBIT		=	BIT9
+
+# BIT 8 FLAG 6
+EGSW		=	097D		# IN FINAL PHASE	NOT IN FINAL PHASE
+
+EGFLGBIT	=	BIT8
+
+# BIT 8 FLAG 6
+KNOWNFLG	=	EGSW		# LANDMARK KNOWN	LANDMARK UNKNOWN
+
+KNOWNBIT	=	BIT8
+
+# BIT 8 FLAG 6
+R57FLAG		=	KNOWNFLG	# DO NOT DO R57		DO R57, TRUNION
+					# TRUNION BIAS HAS	BIAS NEEDED
+					# BEEN OBTAINED.
+					
+R57BIT		=	BIT8
+
+# BIT 7 FLAG 6
+NOSWITCH	=	098D		# LATERAL ROLL		LATERAL ROLL MANEUVER
+					# MANEUVER INHIBITED	PERMITTED IN ENTRY
+					# IN ENTRY
+					
+NOSWBIT		=	BIT7
+
+# BIT 6 FLAG 6
+HIND		=	099D		# ITERATING HUNTEST	ITERATING OF HUNTEST
+					# CALCULATIONS TO BE	CALCULATIONS TO BE
+					# DONE AFTER RANGE	OMITTED AFTER RANGE
+					# PREDICTION		PREDICTION
+# Page 59
+					
+HINDBIT		= 	BIT6
+
+# BIT 5 FLAG 6
+INRLSW		=	100D		# INITIAL ROLL		INITIAL ROLL
+					# V(LV)			V(LV)
+					
+INRLBIT		=	BIT5
+
+					# ATTITUDE NOT HELD	ATTITUDE HELD
+
+# BIT 4 FLAG 6
+LATSW		=	101D		# DOWNLIFT NOT		DOWNLIFT INHIBITED
+					# INHIBITED
+					
+LATSWBIT	=	BIT4
+
+# BIT 3 FLAG 6
+.05GSW		=	102D		# DRAG OVER .05G	DRAG LESS THAN .05G
+
+.05GBIT		=	BIT3
+
+# BIT 3 FLAG 6
+		=	102D
+					
+# BIT 2 FLAG 6
+CM/DSTBY	=	103D		# ENTRY DAP ACTIVATED	ENTRY DAP NOT
+					#			ACTIVATED
+					
+CM/DSBIT	=	BIT2
+
+# BIT 1 FLAG 6
+GYMDIFSW	=	104D		# CDU DIFFERENCES AND 	CDU DIFFERENCES AND
+					# BODY RATES COMPUTED	BODY RATES NOT 
+					#			COMPUTED
+					
+GYMDIBIT	=	BIT1
+
+FLAGWRD7	=	STATE +7	# (105-119)
+					# (SET)			(RESET)
+					
+# BIT 15 FLAG 7
+TERMIFLG	=	105D		# TERMINATE R52		DO NOT TERMINATE R52
+					
+TERMIBIT	=	BIT15
+
+# BIT 14 FLAG 7
+ITSWICH		=	106D		# ACCEPT NEXT LAMBERT	TEST LAMBERT ANSWER
+					# TPI SEARCH SOLUTION	AGAINST LIMITS
+# Page 60
+					
+ITSWBIT		=	BIT14
+
+# BIT 13 FLAG 7
+IGNFLAG		=	107D		# TIG HAS ARRIVED	TIG HAS NOT ARRIVED
+
+IGNFLBIT	=	BIT13
+
+# BIT 12 FLAG 7
+ASTNFLAG	=	108D		# ASTRONAUT HAS		ASTRONAUT HAS NOT
+					# OKAYED IGNITION	OKAYED IGNITION
+					
+ASTNBIT		=	BIT12
+
+# BIT 11 FLAG 7
+TIMRFLAG	=	109D		# CLOKTASK OPERATING	CLOKTASK INOPERATIVE
+
+TIMRBIT		=	BIT11
+
+# BIT 10 FLAG 7
+NORMSW		=	110D		# UNIT NORMAL INPUT	LAMBERT COMPUTE ITS
+					# TO LAMBERT.		OWN UNIT NORMAL.
+					
+NORMSBIT	=	BIT10
+
+# BIT 9 FLAG 7
+RVSW		=	111D		# DO NOT COMPUTE FINAL	COMPUTE FINAL STATE
+					# STATE VECTOR IN	VECTOR IN TIME-THETA
+					# TIME-THETA
+
+RVSWBIT		=	BIT9
+
+# BIT 8 FLAG 7
+GONEBY		=	112D		# PASSED TARGET		APPROACHING TARGET
+
+GONBYBIT	=	BIT8
+
+# BIT 7 FLAG 7
+		=	113D
+
+# BIT 6 FLAG 7
+V37FLAG		=	114D		# AVERAGEG (SERVICER)	AVERAGEG (SERVICER)
+					# RUNNING		OFF
+
+V37FLBIT	=	BIT6
+
+# BIT 5 FLAG 7
+		=	115D
+# Page 61
+		=	BIT5
+			
+# BIT 4 FLAG 7
+UPLOCKFL	=	116D		# K-KBAR-K FAIL		NO K-KBAR-K FAIL
+
+UPLOCBIT	=	BIT4
+
+# BIT 3 FLAG 7
+VERIFLAG	=	117D		# CHANGED WHEN V33E OCCURS AT END OF P27
+
+VERIFBIT	=	BIT3
+
+# BIT 2 FLAG 7
+ATTCHFLG	=	118D		# LM,CM ATTACHED	LM,CM NOT ATTACHED
+
+ATTCHBIT	=	BIT2
+
+# BIT 1 FLAG 7
+TFFSW		=	119D		# CALCULATE TPERIGEE	CALCULATE TFF
+
+TFFSWBIT	=	BIT1
+
+FLAGWRD8	=	STATE +8D	# (120-134)
+					# (SET)			(RESET)
+					
+# BIT 15 FLAG 8
+RPQFLAG		=	120D		# RPQ NOT COMPUTED	RPQ COMPUTED
+
+RPQFLBIT	=	BIT15
+
+# BIT 14 FLAG 8
+		=	121D
+		
+# BIT 13 FLAG 8
+NEWIFLG		=	122D		# FIRST PASS THROUGH	SUCCEEDING ITERATION
+					# INTEGRATION		OF INTEGRATION
+					
+NEWIBIT		=	BIT13
+
+# BIT 12 FLAG 8
+CMOONFLG	=	123D		# PERMANENT CSM STATE	PERMANENT CSM STATE
+					# IN LUNAR SPHERE	IN EARTH SPHERE
+					
+CMOONBIT	=	BIT12
+
+# BIT 11 FLAG 8
+LMOONFLG	=	124D		# PERMANENT LM STATE	PERMANENT LM STATE
+					# IN LUNAR SPHERE	IN EARTH SPHERE
+					
+LMOONBIT	=	BIT11
+
+# Page 62
+
+# BIT 10 FLAG 8
+ADVTRK		=	125D		# ADVANCE GROUND TRACK	NOT ADVANCED
+					# SIGHTING WANTED	GROUND TRACK
+
+ADVTKBIT	=	BIT10
+
+# BIT 9 FLAG 8
+P39/79SW	=	126D		# P39/79 OPERATING	P38/78 OPERATING
+
+P39SWBIT	=	BIT9
+
+# BIT 8 FLAG 8
+SURFFLAG	=	127D		# LM ON LUNAR SURFACE	LM NOT ON LUNAR 
+					#			SURFACE
+					
+SURFFBIT	=	BIT8
+
+# BIT 7 FLAG 8
+INFINFLG	=	128D		# NO CONIC SOLUTION	CONIC SOLUTION
+					# (CLOSURE THROUGH	EXISTS.
+					# INFINITY REQUIRED).
+					
+INFINBIT	=	BIT7
+
+# BIT 6 FLAG 8
+ORDERSW		=	129D		# ITERATOR USES 2ND	ITERATOR USES 1ST
+					# ORDER MINIMUM MODE	ORDER STANDARD MODE
+					
+ORDERBIT	=	BIT6
+
+# BIT 5 FLAG 8
+APSESW		=	130D		# RDESIRED OUTSIDE	RDESIRED INSIDE
+					# PERICENTER-APOCENTER	PERICENTER-APOCENTER
+					# RANGE IN TIME-RAD	RANGE IN TIME-RADIUS
+					
+APSESBIT	=	BIT5
+
+# BIT 4 FLAG 8
+COGAFLAG	=	131D		# NO CONIC SOLUTION 	CONIC SOLUTION
+					# TOO CLOSE TO		EXISTS (COGA DOES
+					# RECTILINEAR (COGA	NOT OVERFLOW).
+					# OVERFLOWS).
+COGAFBIT	=	BIT4
+
+# Page 63
+
+# BIT 3 FLAG 8
+V96ONFLG	=	132D		# P00 INTEGRATION HAS	P00 INTEGRATION IS
+					# BEEN INHIBITED BY	PROCEEDING REGULARLY
+					# V96
+		
+# BIT 2 FLAG 8
+		=	133D
+		
+# BIT 1 FLAG 8
+360SW		=	134D		# TRANSFER ANGLE NEAR	TRANSFER ANGLE NOT
+					# 360 DEGREES		NEAR 360 DEGREES
+					
+360SWBIT	=	BIT1
+
+FLAGWRD9	=	STATE +9D	# (135-149)
+					# (SET)			(RESET)
+					
+# BIT 15 FLAG 9
+SWTOVER		=	135D		# SWITCHOVER HAS	NO SWITCHOVER YET
+					# OCCURRED.
+					
+SWTOVBIT	=	BIT15
+
+# BIT 14 FLAG 9
+		=	136D
+					
+V67FLBIT	=	BIT14
+
+# BIT 13 FLAG 9
+V82EMFLG	=	137D		# MOON VICINITY		EARTH VICINITY
+
+V82EMBIT	=	BIT13
+
+# BIT 12 FLAG 9
+MAXDBFLG	=	138D		# MAX DB SELECTED	MIN DB SELECTED
+
+MAXDBBIT	=	BIT12
+
+# BIT 11 FLAG 9
+V94FLAG		=	139D		# V94 ALLOWED DURING	V94 NOT ALLOWED
+					# P23
+					
+V94FLBIT	=	BIT11
+
+# BIT 10 FLAG 9
+SAVECFLG	=	140D		# P23 DISPLAY AND	P23 DISPLAY AND
+					# DATA STORAGE AFTER	DATA STORAGE BEFORE
+# Page 64
+					# MARK IS DONE		MARK IS DONE
+					
+SAVECBIT	=	BIT10
+
+# BIT 9 FLAG 9
+VHFRFLAG	=	141D		# ALLOW R22 TO 		STOP ACCEPTANCE
+					# ACCEPT RANGE		OF RANGE DATA
+					# DATA
+					
+VHFRBIT		=	BIT9
+
+# BIT 8 FLAG 9
+SOURCFLG	=	142D		# SOURCE OF INPUT	SOURCE OF INPUT
+					# DATA IS FROM		DATA IS FROM
+					# VHF RADAR		OPTICS MARK
+					
+SOURCBIT	=	BIT8
+
+# BIT 7 FLAG 9
+R22CAFLG	=	143D		# R-22 CALCULATIONS	R-22 CALCULATIONS
+					# ARE GOING ON		ARE NOT GOING ON
+					
+R22CABIT	=	BIT7
+
+# BIT 6 FLAG 9
+N22ORN17	=	144D		# COMPUTE TOTAL		COMPUTE TOTAL
+					# ATTITUDE ERRORS	ATTITUDE ERRORS
+					# W.R.T. N22 (V62)	W.R.T. N17 (V63)
+					
+N2217BIT	=	BIT6
+
+# BIT 5 FLAG 9
+QUITFLAG	=	145D		# TERMINATE AND EXIT	CONTINUE INTEGRATION
+QUITBIT		=	BIT5		# FROM INTEGRATION
+
+# BIT 4 FLAG 9
+R31FLAG		=	146D		# R31 SELECTED (V63)	R34 SELECTED (V65)
+
+R31FLBIT	=	BIT4
+
+# BIT 3 FLAG 9
+MID1FLAG	=	147D		# INTEGRATE TO TDEC	INTEGRATE TO THE
+					#			THEN-PRESENT TIME
+					
+MID1FBIT	=	BIT3
+
+# BIT 2 FLAG 9
+MIDAVFLG	=	148D		# INTEGRATION ENTERED	INTEGRATION WAS
+					# FROM ONE OF MIDTOAV	NOT ENTERED VIA
+					# PORTALS		MIDTOAV
+# Page 65
+					
+MIDAVBIT	=	BIT2
+
+# BIT 1 FLAG 9
+AVEMIDSW	=	149D		# AVETOMID CALLING	NO AVETOMID W INTEGER
+					# FOR W MATRIX INTEGR	ALLOW SET UP RN,VN,
+					# DON'T WRITE OVER RN,	PIPTIME
+					# VN,PIPTIME
+					
+AVEMDBIT	=	BIT1
+
+FLGWRD10	=	STATE	+10D	# (150-164)
+					# (SET)			(RESET)
+					
+RASFLAG		=	STATE	+10D
+
+# BIT 15 FLAG 10
+		=	150D
+		
+# BIT 14 FLAG 10
+INTFLAG		=	151D		# INTEGRATION IN	INTEGRATION NOT IN
+					# PROGRESS		PROGRESS
+					
+INTFLBIT	=	BIT14
+
+# BIT 13 FLAG 10
+		=	152D
+		
+# BIT 12 FLAG 10
+		=	153D
+		
+# BIT 11 FLAG 10
+		=	154D
+		
+# BIT 10 FLAG 10
+		=	155D
+		
+# BIT 9 FLAG 10
+		=	156D
+		
+# BIT 8 FLAG 10
+		=	157D
+# Page 66
+		
+# BIT 7 FLAG 10
+REINTFLG	=	158D		# INTEGRATION ROUTINE	INTEGRATION ROUTINE
+					# TO BE RESTARTED	NOT TO BE RESTARTED
+REINTBIT	=	BIT7
+					
+# BIT 6 FLAG 10
+		=	159D
+		
+# BIT 5 FLAG 10
+		=	160D
+		
+# BIT 4 FLAG 10
+		=	161D
+		
+# BIT 3 FLAG 10
+		=	162D
+		
+# BIT 2 FLAG 10
+		=	163D
+		
+# BIT 1 FLAG 10
+		=	164D
+		
+FLGWRD11	=	STATE	+11D	# (165-179)
+					# (SET)			(RESET)
+					
+# BIT 15 FLAG 11
+S32.1F1		=	165D		# DELTAN AT CSI TIME	DVT1 LESS THAN MAX
+S32BIT1		=	BIT15		# ONE EXCEEDS MAX
+		
+# BIT 14 FLAG 11
+S32.1F2		=	166D		# FIRST PASS OF 	REITERATION OF
+S32BIT2		=	BIT14		# NEWTON INTEGRATION	NEWTON
+		
+# BIT 13 FLAG 11
+S32.1F3A	=	167D		# BIT 13 AND BIT 12 FUNCTION AS AN ORDERED
+S32BIT3A	=	BIT13		# PAIR (13,12) INDICATING THE POSSIBLE OC-
+					# CURRENCE OF 2NEWTON ITERATIONS FOR S32.1
+# BIT 12 FLAG 11			# IN THE PROGRAM IN THE FOLLOWING ORDER:
+S32.1F3B	=	168D		# (0,1) (I.E. BIT 13 RESET, BIT 12 SET)
+# Page 67
+S3229T3B	=	BIT12		#      = FIRST NEWTON ITERATION BEING DONE
+					# (0,0)= FIRST PASS OF 2ND NEWTON ITER.
+					# (1,1)= 50 FPS STAGE OF 2ND NEWT ITER.
+					# (1,0)= REMAINDER OF 2ND NEWT ITER.
+		
+# BIT 11 FLAG 11
+		=	169D
+		
+# BIT 10 FLAG 11
+		=	170D
+		
+# BIT 9 FLAG 11
+		=	171D
+		
+# BIT 8 FLAG 11
+		=	172D
+		
+# BIT 7 FLAG 11
+		=	173D
+		
+# BIT 6 FLAG 11
+		=	174D
+		
+# BIT 5 FLAG 11
+		=	175D
+		
+# BIT 4 FLAG 11
+		=	176D
+		
+# BIT 3 FLAG 11
+		=	177D
+		
+# BIT 2 FLAG 11
+		=	178D
+		
+# BIT 1 FLAG 11
+		=	179D
+		
+# Page 68
+# GENERAL ERASABLE ASSIGNMENTS
+
+		SETLOC	61
+# INTERRUPT TEMPORARY STORAGE POOL.	(11D)
+
+# (ITEMP1 THROUGH RUPTREG4)		
+
+# ANY OF THESE MAY BE USED AS TEMPORARIES DURING INTERRUPT OR WITH INTERRUPT INHIBITED. THE ITEMP SERIES
+# IS USED DURING CALLS TO THE EXECUTIVE AND WAITLIST -- THE RUPTREGS ARE NOT.
+
+ITEMP1		ERASE
+WAITEXIT	EQUALS	ITEMP1
+EXECTEM1	EQUALS	ITEMP1
+
+ITEMP2		ERASE
+WAITBANK	EQUALS	ITEMP2
+EXECTEM2	EQUALS	ITEMP2
+
+ITEMP3		ERASE
+RUPTSTOR	EQUALS	ITEMP3
+WAITADR		EQUALS	ITEMP3
+NEWPRIO		EQUALS	ITEMP3
+
+ITEMP4		ERASE
+LOCCTR		EQUALS	ITEMP4
+WAITTEMP	EQUALS	ITEMP4
+
+ITEMP5		ERASE
+NEWLOC		EQUALS	ITEMP5
+
+ITEMP6		ERASE
+NEWLOC+1	EQUALS	ITEMP6		# DP ADDRESS.
+
+		SETLOC	67
+NEWJOB		ERASE			# MUST BE AT LOC 67 DUE TO WIRING.
+
+RUPTREG1	ERASE
+RUPTREG2	ERASE
+RUPTREG3	ERASE
+RUPTREG4	ERASE
+KEYTEMP1	EQUALS	RUPTREG4
+DSRUPTEM	EQUALS	RUPTREG4
+
+# FLAGWORD RESERVATIONS.		(12D)
+
+STATE		ERASE	+11D
+
+# PAD LOAD FOR DAPS
+EMDOT		ERASE			# I(1)PL (SPS FLOW RATE, SC AT B+3 KG/CS)
+
+# Page 69
+
+# EXIT FOR V83
+STATEXIT	ERASE			# I(1) STQ ADDRESS FOR STATEXIT
+
+# UNUSED ERASABLES ********(2)
+ERASFILL	ERASE	+1
+
+# EXEC TEMPORARIES WHICH MAY BE USED BETWEEN CCS NEWJOBS 
+# (INTB15+ THROUGH RUPTMXTM)		(32D)
+INTB15+		ERASE			# REFLECTS 15TH BIT OF INDEXABLE ADDRESSES
+DSEXIT		EQUALS	INTB15+		# RETURN FOR DSPIN
+EXITEM		EQUALS	INTB15+		# RETURN FOR SCALE FACTOR ROUTINE SELECT
+BLANKRET	EQUALS	INTB15+		# RETURN FOR 2BLANK
+
+INTBIT15	ERASE			# SIMILAR TO ABOVE.
+WRDRET		EQUALS	INTBIT15	# RETURN FOR 5BLANK.
+WDRET		EQUALS	INTBIT15	# RETURN FOR DSPWD
+DECRET		EQUALS	INTBIT15	# RETURN FOR PUTCOM(DEC LOAD)
+21/22REG	EQUALS	INTBIT15	# TEMP FOR CHARIN
+
+# THE REGISTERS BETWEEN ADDRWD AND PRIORITY MUST STAY IN THE FOLLOWING ORDER FOR INTERPRETIVE TRACE.
+
+ADDRWD		ERASE			# 12 BIT INTERPRETIVE OPERAND SUB-ADDRESS.
+POLISH		ERASE			# HOLDS CADR MADE FROM POLISH ADDRESSE.
+UPDATRET	EQUALS	POLISH		# RETURN FOR UPDATNN, UPDATVB
+CHAR		EQUALS	POLISH		# TEMP FOR CHARIN
+ERCNT		EQUALS	POLISH		# COUNTER FOR ERROR LIGHT RESET
+DECOUNT		EQUALS	POLISH		# COUNTER FOR SCALING AND DISPLAY (DEC)
+
+FIXLOC		ERASE			# WORK AREA ADDRESS
+OVFIND		ERASE			# SET NON-ZERO ON OVERFLOW.
+
+VBUF		ERASE	+5		# TEMPORARY STORAGE USED FOR VECTORS.
+SGNON		EQUALS	VBUF		# TEMP FOR +,- ON
+NOUNTEM		EQUALS	VBUF		# COUNTER FOR MIXNOUN FETCH
+DISTEM		EQUALS	VBUF		# COUNTER FOR OCTAL DISPLAY VERB
+DECTEM		EQUALS	VBUF		# COUNTER FOR FETCH (DEC DISPLAY VERBS)
+
+SGNOFF		EQUALS	VBUF +1		# TEMP FOR +,- ON
+NVTEMP		EQUALS	VBUF +1		# TEMP FOR NVSUB
+SFTEMP1		EQUALS	VBUF +1		# STORAGE FOR SF CONST HI PART (=SFTEMP2-1)
+HITEMIN		EQUALS	VBUF +1		# TEMP FOR LOAD OF HRS,MIN,SEC
+					# MUST = LOTEMIN-1.
+
+CODE		EQUALS	VBUF +2		# FOR DSPIN
+SFTEMP2		EQUALS	VBUF +2		# STORAGE FOR SF CONST LO PART (=SFTEMP1+1)
+LOTEMIN		EQUALS	VBUF +2		# TEMP FOR LOAD OF HRS,MIN,SEC
+# Page 70
+					# 	MUST = HITEMIN+1
+MIXTEMP		EQUALS	VBUF +3		# FOR MIXNOUN DATA
+SIGNRET		EQUALS	VBUF +3		# RETURN FOR +,- ON
+
+# ALSO MIXTEMP+1 = VBUF+4, MIXTEMP+2 = VBUF+5
+
+BUF		ERASE	+2		# TEMPORARY SCALAR STORAGE
+BUF2		ERASE	+1
+INDEXLOC	EQUALS	BUF		# CONTAINS ADDRESS OF SPECIFIED INDEX.
+SWWORD		EQUALS	BUF		# ADDRESS OF SWITCH WORD
+SWBIT		EQUALS	BUF +1		# SWITCH BIT WITHIN THE SWITCH WORD
+MPTEMP		ERASE			# TEMPORARY USED IN MULTIPLY AND SHIFT
+DMPNTEMP	EQUALS	MPTEMP		# DMPSUB TEMPORARY
+DOTINC		ERASE			# COMPONENT INCREMENT FOR DOT SUBROUTINE
+DVSIGN		EQUALS	DOTINC		# DETERMINES SIGN OF DDV RESULT
+ESCAPE		EQUALS	DOTINC		# USED IN ARCSIN/ARCCOS.
+ENTRET		EQUALS	DOTINC		# EXIT FROM ENTER
+
+DOTRET		ERASE			# RETURN FROM DOT SUBROUTINE
+DVNORMCT	EQUALS	DOTRET		# DIVIDENT NORMALIZATION COUNT IN DDV.
+ESCAPE2		EQUALS	DOTRET		# ALTERNATE ARCSIN/ARCCOS SWITCH
+WDCNT		EQUALS	DOTRET		# CHAR COUNTER FOR DSPWD
+INREL		EQUALS	DOTRET		# INPUT BUFFER SELECTIOR ( X,Y,Z, REG )
+
+MATINC		ERASE			# VECTOR INCREMENT IN MXV AND VXM
+MAXDVSW		EQUALS	MATINC		# +0 IF DP QUOTIENT IS NEAR ONE -- ELSE -1.
+POLYCNT		EQUALS	MATINC		# POLYNOMIAL LOOP COUNTER
+DSPMMTEM	EQUALS	MATINC		# DSPCOUNT SAVE FOR DSPMM
+MIXBR		EQUALS	MATINC		# INDICATOR FOR MIXED OR NORMAL NOUN
+
+TEM1		ERASE			# EXEC TEMP
+POLYRET		EQUALS	TEM1
+DSREL		EQUALS	TEM1		# REL ADDRESS FOR DSPIN
+
+TEM2		ERASE			# EXEC TEMP
+DSMAG		EQUALS	TEM2		# MAGNITUDE STORE FOR DSPIN
+IDADDTEM	EQUALS	TEM2		# MIXNOUN INDIRECT ADDRESS STORAGE
+
+TEM3		ERASE			# EXEC TEMP
+COUNT		EQUALS	TEM3		# FOR DSPIN
+
+TEM4		ERASE			# EXEC TEMP
+LSTPTR		EQUALS	TEM4		# LIST POINTER FOR GRABUSY
+RELRET		EQUALS	TEM4		# RETURN FOR RELDSP
+FREERET		EQUALS	TEM4		# RETURN FOR FREEDSP
+DSPWDRET	EQUALS	TEM4		# RETURN FOR DSPSIGN
+SEPSCRET	EQUALS	TEM4		# RETURN FOR SEPSEC
+SEPMNRET	EQUALS	TEM4		# RETURN FOR SEPMIN
+
+TEM5		ERASE			# EXEC TEMP
+# Page 71
+NOUNADD		EQUALS	TEM5		# TEMP STORAGE FOR NOUN ADDRESS
+
+NNADTEM		ERASE			# TEMP FOR NOUN ADDRESS TABLE ENTRY
+NNTYPTEM	ERASE			# TEMP FOR NOUN TYPE TABLE ENTRY
+IDAD1TEM	ERASE			# TEMP FOR INDIR ADDRESS TABLE ENTRY (MIXNN)
+					# MUST = IDAD2TEM-1, = IDAD3TEM-2
+IDAD2TEM	ERASE			# TEMP FOR INDIR ADDRESS TABLE ENTRY (MIXNN)
+					# MUST = IDAD1TEM+1, IDAD3TEM-1.
+IDAD3TEM	ERASE			# TEMP FOR INDIR ADDRESS TABLE ENTRY (MIXNN)
+					# MUST = IDAD1TEM+2, IDAD2TEM+1.
+RUTMXTEM	ERASE			# TEMP FOR SF ROUT TABLE ENTRY (MIXNN ONLY)
+
+# AX*SR*T STORAGE.			(6D)
+DEXDEX		EQUALS	TEM2		# B(1)TMP
+DEX1		EQUALS	TEM3		# B(1)TMP
+DEX2		EQUALS	TEM4		# B(1)TMP
+RTNSAVER	EQUALS	TEM5		# B(1)TMP
+TERM1TMP	EQUALS	BUF2		# B(2)TMP
+
+DEXI		=	DEX1
+
+# Page 72
+# DYNAMICALLY ALLOCATED CORE SETS FOR JOBS	(84D)
+
+MPAC		ERASE	+6		# MULTI-PURPOSE ACCUMULATOR.
+MODE		ERASE			# +1 FOR TP, +0 FOR DP, OR -1 FOR VECTOR.
+LOC		ERASE			# LOCATION ASSOCIATED WITH JOB.
+BANKSET		ERASE			# USUALLY CONTAINS BBANK SETTING.
+PUSHLOC		ERASE			# WORD OF PACKED INTERPRETIVE PARAMETERS.
+PRIORITY	ERASE			# PRIORITY OF PRESENT JOB AND WORK AREA.
+
+		ERASE	+71D		# SEVEN SETS OF 12 REGISTERS EACH
+		
+# SPECIAL DOWNLINK BUFFER. -- OVERLAYED BY P27 STORAGE --
+
+# P27 (UPDATE PROGRAM) STORAGE. -- OVERLAYS SPEC DNLNK BUFF -- (24D)		
+
+COMPNUMB	ERASE	+23D		# B(1)TMP NUMBER OF ITEMS TO BE UPLINKED.
+UPOLDMOD	EQUALS	COMPNUMB +1	# B(1)TMP HOLDS INTERRUPTED PROGRAM NUMBER
+UPVERB		EQUALS	UPOLDMOD +1	# B(1)TMP VERB NUMBER
+UPCOUNT		EQUALS	UPVERB +1	# B(1)TMP UPBUFF INDEX
+UPBUFF		EQUALS	UPCOUNT +1	# B(20D)
+
+# MORE P27 STORAGE.			(2D)
+
+UPTEMP		ERASE			# B(1)TMP SCRATCH
+UPVERBSV	ERASE			# B(1)TMP
+INTWAK1Q	EQUALS	UPTEMP		# (06D)
+# (20 REGISTERS OF ENTRY DOWNLINK WILL GO HERE.)
+
+# THE FOLLOWING ARE INDEXED FOR TM. IN ENTRY DAP.
+
+CMTMTIME	=	UPBUFF		# B(1) (VEHICLE BODY RATE INFO IS
+SW/NDX		=	CMTMTIME +1	# B(1)  TELEMETERED EACH 0.2 SEC. DURING
+ENDBUF		=	CMTMTIME +16D	# B(1)  ENTRY.)
+
+V1		=	ENDBUF +1	# I(2) REENTRY, P64-P65
+A0		=	V1 +2		# I(2) REENTRY, P64-P65
+					# HI-ORDER WORD ONLY ON DNLNK.
+					
+# ALIGNMENT STORAGE.			(5D)
+# (CANNOT SHARE WITH PRECISION INTEGRATION OR KEPLER STORAGE.)
+
+QMAJ		EQUALS	COMPNUMB	# B(1)TMP
+MARKINDX	EQUALS	QMAJ	+1	# B(1)TMP
+BESTI		EQUALS	MARKINDX +1	# I(1)TMP
+BESTJ		EQUALS	BESTI	+1	# I(1)TMP
+STARIND		EQUALS	BESTJ	+1	# I(1)TMP
+
+# Page 73
+# ALIGNMENT/S40.2,3 COMMON STORAGE.	(18D)
+
+XSMD		EQUALS	UPBUFF	+2	# I(6)TMP
+YSMD		EQUALS	XSMD	+6	# I(6)TMP
+ZSMD		EQUALS	YSMD	+6	# I(6)TMP
+
+XSCREF		=	XSMD		# SPACE CRAFT AXES IN REF COORDS.
+YSCREF		=	YSMD
+ZSCREF		=	ZSMD
+ZPRIME		=	22D
+PDA		=	22D
+COSTH		=	16D
+SINTH		=	18D
+THETA		=	20D
+STARM		=	32D
+
+# DOWNLINK STORAGE			(18D)
+
+DNLSTADR	EQUALS	DNLSTCOD	# CONTENTS NO LONGER AN ADDR BUT A CODE
+
+DNLSTCOD	ERASE			# B(1)PRM ID CODE OF DOWNLIST
+DUMPCNT		ERASE			# B(1)PRM
+LDATALST	ERASE			# B(1)
+DNTMGOTO	ERASE			# B(1)
+TMINDEX		ERASE			# B(1)
+DUMPLOC		EQUALS	TMINDEX		# CONTAINS ECADR OF AGC DP WORD BEING DUMPED
+					# AND COUNT OF COMPLETE DUMPS ALREADY
+					# SENT.
+DNQ		ERASE			# B(1)
+DNTMBUFF	ERASE	+11D		# B(12)PRM DOWNLINK SNAPSHOT BUFFER
+
+# OPTICS MARKING, UNSHARED.		(8D)
+
+MKNDX		ERASE
+MKT2T1		ERASE	+1
+MKCDUY		ERASE
+MKCDUS		ERASE
+MKCDUZ		ERASE
+MKCDUT		ERASE
+MKCDUX		ERASE
+
+# FOR EXCLUSIVE USE OF SYS TEST STANDARD LEAD INS	(2)
+EBUF2		ERASE	+1		# B(2) UNSHARED
+
+# Page 74
+# UNSWITCHED FOR DISPLAY INTERFACE ROUTINES.	(10D)
+
+RESTREG		ERASE			# B(1)PRM FOR DISPLAY RESTARTS.
+NVWORD		ERASE
+MARKNV		ERASE
+NVSAVE		ERASE
+# (RETAIN THE ORDER OF CADRFLSH TO FAILREG +2 FOR DOWNLINK PURPOSES)
+CADRFLSH	ERASE			# B(1)TMP
+CADRMARK	ERASE			# B(1)TMP
+TEMPFLSH	ERASE			# B(1)TMP
+FAILREG		ERASE	+2		# B(3)PRM 3 ALARM CODE REGISTERS
+
+		SETLOC	400
+
+# VAC AREAS. -- BE CAREFUL OF PLACEMENT --	(220D)
+
+VAC1USE		ERASE			# B(1)PRM
+VAC1		ERASE	+42D		# B(43)PRM
+VAC2USE		ERASE			# B(1)PRM
+VAC2		ERASE	+42D		# B(43)PRM
+VAC3USE		ERASE			# B(1)PRM
+VAC3		ERASE	+42D		# B(43)PRM
+VAC4USE		ERASE			# B(1)PRM
+VAC4		ERASE	+42D		# B(43)PRM
+VAC5USE		ERASE			# B(1)PRM
+VAC5		ERASE	+42D		# B(43)PRM
+
+# WAITLIST REPEAT FLAG.			(1D)
+RUPTAGN		ERASE			# B(1)PRM
+KEYTEMP2	=	RUPTAGN
+
+# STARALIGN ERASABLES.				(13D)
+
+STARCODE	ERASE			# B(1)DSP NOUN 70 FOR P22,51 AND R52,53
+STARALGN	ERASE	+11D
+SINCDU		=	STARALGN
+COSCDU		=	STARALGN +6
+
+SINCDUX		=	SINCDU +4
+SINCDUY		=	SINCDU
+SINCDUZ		=	SINCDU +2
+COSCDUX		=	COSCDU +4
+COSCDUY		=	COSCDU
+COSCDUZ		=	COSCDU +2
+
+# PHASE TABLE AND RESTART COUNTERS		(12D)
+# Page 75 
+
+-PHASE1		ERASE			# B(1)PRM
+PHASE1		ERASE			# B(1)PRM
+-PHASE2		ERASE			# B(1)PRM
+PHASE2		ERASE			# B(1)PRM
+-PHASE3		ERASE			# B(1)PRM
+PHASE3		ERASE			# B(1)PRM
+-PHASE4		ERASE			# B(1)PRM
+PHASE4		ERASE			# B(1)PRM
+-PHASE5		ERASE			# B(1)PRM
+PHASE5		ERASE			# B(1)PRM
+-PHASE6		ERASE			# B(1)PRM
+PHASE6		ERASE			# B(1)PRM
+
+# A**SR*T STORAGE			(6D)
+
+CDUSPOT		ERASE	+5		# B(6)
+
+CDUSPOTY	=	CDUSPOT
+CDUSPOTZ	=	CDUSPOT +2
+CDUSPOTX	=	CDUSPOT +4
+
+# VERB 37 STORAGE			(2D)
+
+MINDEX		ERASE			# B(1)TMP INDEX FOR MAJOR MODE
+MMNUMBER	ERASE			# B(1)TMP MAJOR MODE REQUESTED BY V37
+
+# PINBALL INTERRUPT ACTION		(1D)
+
+DSPCNT		ERASE			# B(1)PRM COUNTER FOR DSPOUT
+
+# PINBALL EXECUTIVE ACTION		(44D)
+
+DSPCOUNT	ERASE			# DISPLAY POSITION INDICATOR
+DECBRNCH	ERASE			# +DEC, -DEC, OCT INDICATOR
+VERBREG		ERASE			# VERB CODE
+NOUNREG		ERASE			# NOUN CODE
+XREG		ERASE			# R1 INPUT BUFFER
+YREG		ERASE			# R2 INPUT BUFFER
+ZREG		ERASE			# R3 INPUT BUFFER
+XREGLP		ERASE			# LO PART OF XREG (FOR DEC CONV ONLY)
+YREGLP		ERASE			# LO PART OF YREG (FOR DEC CONV ONLY)
+HITEMOUT	=	YREGLP		# TEMP FOR DISPLAY OF HRS,MIN,SEC
+					# 	MUST = LOTEMOUT-1.
+ZREGLP		ERASE			# LO PART OF ZREG (FOR DEC CONV ONLY)
+LOTEMOUT	=	ZREGLP		# TEMP FOR DISPLAY OF HRS,MIN,SEC
+					# 	MUST = HITEMOUT+1
+# Page 76
+MODREG		ERASE			# MODE CODE
+DSPLOCK		ERASE			# KEYBOARD/SUBROUTINE CALL INTERLOCK
+REQRET		ERASE			# RETURN REGISTER FOR LOAD
+LOADSTAT	ERASE			# STATUS INDICATOR FOR LOADTST
+CLPASS		ERASE			# PASS INDICATOR FOR CLEAR
+NOUT		ERASE			# ACTIVITY COUNTER FOR DSPTAB
+NOUNCADR	ERASE			# MACHINE CADR FOR NOUN
+MONSAVE		ERASE			# N/V CODE FOR MONITOR. (= MONSAVE1-1)
+MONSAVE1	ERASE			# NOUNCADR FOR MONITOR (MATBS) = MONSAVE+1
+MONSAVE2	ERASE			# B(1)PRM NVMONOPT OPTIONS
+DSPTAB		ERASE	+11D		# 0-100, DISPLAY PANEL BUFF.  11D, C/S LTS.
+NVQTEM		ERASE			# NVSUB STORAGE FOR CALLING ADDRESS
+					# MUST = NVBNKTEM-1.
+NVBNKTEM	ERASE			# NVSUB STORAGE FOR CALLING BANK
+					# MUST = NVQTEM+1
+VERBSAVE	ERASE			# NEEDED FOR RECYCLE
+CADRSTOR	ERASE			# ENDIDLE STORAGE
+DSPLIST		ERASE			# WAITING REG FOR DSP SYST INTERNAL USE
+EXTVBACT	ERASE			# EXTENDED VERB ACTIVITY INTERLOCK
+DSPTEM1		ERASE	+2		# BUFFER STORAGE AREA 1 (MOSTLY FOR TIME)
+DSPTEM2		ERASE	+2		# BUFFER STORAGE AREA 2 (MOSTLY FOR DEG)
+
+DSPTEMX		EQUALS	DSPTEM2 +1	# B(2) S-S DISPLAY BUFFER FOR EXT. VERBS
+NORMTEM1	EQUALS	DSPTEM1		# B(3)DSP NORMAL DISPLAY REGISTERS.
+
+# DISPLAY FOR EXTENDED VERBS		(2D)
+
+OPTIONX		EQUALS	DSPTEMX		# B(2) EXTENDED VERB OPTION CODE  N12(V82)
+
+# TBASE'S AND PHSPRDT'S.		(12D)
+
+TBASE1		ERASE			# B(1)PRM
+PHSPRDT1	ERASE			# B(1)PRM
+TBASE2		ERASE			# B(1)PRM
+PHSPRDT2	ERASE			# B(1)PRM
+TBASE3		ERASE			# B(1)PRM
+PHSPRDT3	ERASE			# B(1)PRM
+TBASE4		ERASE			# B(1)PRM
+PHSPRDT4	ERASE			# B(1)PRM
+TBASE5		ERASE			# B(1)PRM
+PHSPRDT5	ERASE			# B(1)PRM
+TBASE6		ERASE			# B(1)PRM
+PHSPRDT6	ERASE			# B(1)PRM
+
+# UNSWITCHED FOR DISPLAY INTERFACE ROUTINES.	(5D)
+# Page 77
+EBANKSAV	ERASE
+MARKEBAN	ERASE
+EBANKTEM	ERASE
+MARK2PAC	ERASE
+R1SAVE		ERASE
+
+# IMU COMPENSATION UNSWITCHED ERASABLE.	(1D)
+
+1/PIPADT	ERASE			# B(1)PRM
+OLDBT1		=	1/PIPADT
+
+# SINGLE PRECISION SUBROUTINE TEMPORARIES	(3D)
+					# SPSIN, SPCOS, SPROOT VARIABLES.
+					# DO NOT SHARE.  THESE ARE USED BY DAPS IN INTERRUPT
+					# AND CURRENTLY ARE NOT PROTECTED.  IF OTHER USERS
+					# MATERIALIZE, THEN THIS CAN BE CHANGED.
+
+HALFY		ERASE
+ROOTRET		ERASE
+SQRARG		ERASE
+TEMK		EQUALS	HALFY
+SQ		EQUALS	ROOTRET
+
+# Page 78
+# UNSWITCHED FOR ORBIT INTEGRATION	(21D)
+
+TDEC		ERASE	+20D		# I(2)
+COLREG		EQUALS	TDEC +2		# I(1)
+LAT		EQUALS	COLREG +1	# I(2)DSP NOUN 43,67 FOR P20,22,51 R52,53.
+LANDLAT		=	LAT		#	  NOUN 89    FOR P22.
+LONG		EQUALS	LAT +2		# I(2)DSP NOUN 43,67 FOR P20,22,51 R52,53
+ALT		EQUALS	LONG +2		# I(2)DSP NOUN 43    FOR P20,22,51 R52,53.
+YV		EQUALS	ALT +2		# I(6)
+ZV		EQUALS	YV +6		# I(6)
+
+# MARK STORAGE.				(2)
+
+VHFCNT		ERASE			# B(1)PRM NO. OF VHF MARKS (P20 (R22)).
+TRKMKCNT	ERASE			# B(1)PRM NO. OF VHF MARKS (P20 (R22)).
+
+MARKCTR		=	TRKMKCNT	# B(1) MARK COUNTER USED BY R32
+
+# MISCELLANEOUS UNSWITCHED.		(16D)
+
+IRETURN1	ERASE			# B(1) RET ADDR USED BY MIDTOAV1 AND 2
+					# CALLED BY P40,P41,P42, P61,P62
+RATEINDX	ERASE			#  (1) USED BY KALCMANU
+OPTION1		ERASE			# B(1) NOUN 06 USES THIS.
+OPTION2		ERASE			# B(1) NOUN 06 USES THIS.
+LONGCADR	ERASE 	+1		# B(2) LONGCALL REGISTER.
+LONGBASE	ERASE 	+1		# B(2) LONGCALL REGISTER.
+LONGTIME	ERASE 	+1		# B(2) LONGCALL REGISTER.
+DELAYLOC	ERASE 	+3
+NVWORD1		ERASE			# B(1)
+TEMPR60		ERASE			# B(1)
+PRIOTIME	ERASE			# B(1)
+P30/RET		EQUALS	IRETURN1
+
+# MISC. INCLUDING RESTART COUNTER, GIMBAL ANGLE SAVE AND
+# STANDBY VERB ERASABLES.  REDOCTR BEFORE THETAD (DWNLNK)	(16D)
+
+TIME2SAV	ERASE	+1		# B(2)TMP
+SCALSAVE	ERASE	+1		# B(2)TMP
+REDOCTR		ERASE			# B(1)PRM CONTAINS NUMBER OF RESTARTS
+THETAD		ERASE	+2		# B(3)PRM DESIRED GIM ANGLES FOR MANEUVER
+CPHI		=	THETAD		#	(OUTER)
+CTHETA		=	THETAD +1	#	(INNER)
+CPSI		=	THETAD +2	#	(MIDDLE)
+# Page 79
+# ENTRY VARIABLES SHARED FOR TM.
+RDOTREF		=	THETAD		# I(2)	P65
+VREF		=	RDOTREF +2	# I(2)	P65	HI-ORDER WORD ONLY DNLNK'D
+DESOPTT		ERASE			# B(1)DSP NOUN 92 FOR P20,22,52, R52.
+DESOPTS		ERASE			# B(1)DSP NOUN 92 FOR P20,22,52, R52.
+
+DELV		ERASE	+5		# I(6)
+DELVX		=	DELV
+DELVY		=	DELV	+2
+DELVZ		=	DELV	+4
+
+# P20, CONICS	(SHARING WITH TIME 2 SAV AND SCAL SAV ONLY)	(3D)
+POINTEX		EQUALS	TIME2SAV	# I(1) POINT AXS EXIT
+VHFTIME		EQUALS	POINTEX	+1	# I(2) DOWNLINK OF VHF RANGE TIME +1M
+
+# PERM STATE VECTORS FOR BOOST AND DOWNLINK -- WHOLE MISSION --	(14D)
+
+RN		ERASE	+5		# B(6)PRM
+VN		ERASE	+5		# B(6)PRM
+PIPTIME		ERASE	+1		# B(2)PRM (MUST BE FOLLOWED BY GDT/2)
+
+# SERVICER STORAGE.				(45D)
+
+# (SERVICER STORAGE AND P11 STORAGE IN UNSWITCHED SHOULD NOT
+# OVERLAY EACH OTHER AND THE TOTAL ERASABLE REQUIRED SHOULD NOT
+# EXCEED THE ERASABLE STORAGE REQUIRED BY RENDEZVOUS GUIDANCE.)
+
+GDT/2		EQUALS	PIPTIME	+2	# B(6)TMP	** MUST FOLLOW PIPTIME **
+GOBL/2		EQUALS	GDT/2	+6	# B(6)TMP
+AVEGEXIT	EQUALS	GOBL/2	+6	# B(2)TMP
+AVGEXIT		=	AVEGEXIT
+TEMX		EQUALS	AVEGEXIT +2	# B(1)TMP
+TEMY		EQUALS	TEMX +1		# B(1)TMP
+TEMZ		EQUALS	TEMY +1		# B(1)TMP
+PIPCTR		EQUALS	TEMZ +1		# B(1)TMP
+PIPAGE		EQUALS	PIPCTR +1	# B(1)TMP
+RN1		EQUALS	PIPAGE +1	# B(6)TMP
+VN1		EQUALS	RN1 +6		# B(6)TMP
+PIPTIME1	EQUALS	VN1 +6		# B(2)TMP
+GDT1/2		EQUALS	PIPTIME1 +2	# B(6)TMP
+GOBL1/2		EQUALS	GDT1/2 +6	# B(6)TMP
+
+# Page 80
+# ENTRY STORAGE				(1D)
+ENTRYVN		EQUALS	GOBL1/2 +6	# B(1)TMP VN CODE FOR ENTRY DISPLAYS P60'S.
+
+# P11 STORAGE.				(9D)
+PADLONG		EQUALS	ENTRYVN		# (2)PL	LONGITUDE OF LAUNCH PAD.
+LIFTTEMP	EQUALS	PADLONG +2	# (2)TMP
+TEPHEM1		EQUALS	LIFTTEMP +2	# (3)TMP
+PGNCSALT	EQUALS	TEPHEM1 +3	# (2)PL	ALTITUDE
+
+# RENDEZVOUS NAVIGATION STORAGE.  (SEE COMMENT IN SERVICER STORAGE)	(58D)
+CSMPOS		ERASE	+57D		# I(6)TMP
+LEMPOS		EQUALS	CSMPOS	+6	# I(6)TMP
+RCL		EQUALS	LEMPOS	+6	# I(2)TMP
+MARKTIME	EQUALS	RCL	+2	# B(2)TMP
+VTEMP		EQUALS	MARKTIME +2	# B(6)TMP
+UM		EQUALS	VTEMP	+6	# I(6)TMP
+MARKDATA	EQUALS	UM	+6	# B(2)TMP
+USTAR		EQUALS	MARKDATA +2	# I(6)TMP
+WIXA		EQUALS	USTAR	+6	# B(1)TMP
+WIXB		EQUALS	WIXA	+1	# B(1)TMP
+ZIXA		EQUALS	WIXB	+1	# B(1)TMP
+ZIXB		EQUALS	ZIXA	+1	# B(1)TMP
+DELTAX		EQUALS	ZIXB	+1	# I(18)TMP
+
+VHFRANGE	EQUALS	DELTAX		# (2)
+UCL		EQUALS	DELTAX	+12D	# (6)	LM-CSM LINE OF SIGHT 1/2 UNIT V
+
+# **** CONICSEX (MEAS INC) ****
+TRIPA		EQUALS	DELTAX
+TEMPVAR		EQUALS	DELTAX	+3
+
+TEMPOR1		ERASE	+1		# B(2)TMP
+
+# T4RUPT ERASABLE			(6D)
+
+DSRUPTSW	ERASE
+OPTIND		ERASE
+LGYRO		ERASE
+COMMANDO	ERASE	+1
+
+# Page 81
+ZONE		ERASE			# B(1)PRM USED IN SHAFT STOP MONITOR
+LASTYCMD	=	OPTY		# DUMMY TO MAKE RR BENCH TEST ASSEMBLE
+LASTXCMD	=	OPTY		# DUMMY TO MAKE RR BENCH TEST ASSEMBLE
+
+# UNSWITCHED DAP ERASABLE.		(4D)
+T6LOC		ERASE
+T6ADR		ERASE
+T5LOC		ERASE	+1
+
+# MODE SWITCHING ERASABLE		(14D)
+SWSAMPLE	ERASE			# B(1)PRM
+DESOPMOD	ERASE			# B(1)PRM
+WTOPTION	ERASE			# B(1)PRM
+ZOPTCNT		ERASE			# B(1)PRM
+IMODES30	ERASE			# B(1)PRM
+IMODES33	ERASE			# B(1)PRM
+MODECADR	ERASE	+2		# B(3)TMP
+IMUCADR		=	MODECADR
+OPTCADR		=	MODECADR +1
+RADCADR		=	MODECADR +2
+ATTCADR		ERASE	+2		# B(3)PRM
+ATTPRIO		=	ATTCADR +2
+MARKSTAT	ERASE			# B(1)PRM
+OPTMODES	ERASE			# B(1)PRM
+
+# RCSDAP ERASABLE			(1D)
+HOLDFLAG	ERASE			# B(1)PRM
+
+# CRS61.1 STORAGE.  -- USED IN R63 (VERB 89) --	(5D)
+CPHIX		ERASE	+2		# B(3)DSP NOUN 95 CALCULATED BY CRS61.1
+
+TEVENT		ERASE	+1		# B(2) TIME OF EVENT FOR DOWNLIST
+TLIFTOFF	=	TEVENT
+
+# Page 82
+# P34-P35 STORAGE			(1D)
+NORMEX		ERASE
+
+# SELF-CHECK ASSIGNMENTS		(17D)
+
+SELFERAS	ERASE 	1357 - 1377	# *** MUST NOT BE MOVED *** #
+SFAIL		EQUALS	SELFERAS	# B(1)
+ERESTORE	EQUALS	SFAIL +1	# B(1)
+SELFRET		EQUALS	ERESTORE +1	# B(1) RETURN
+SMODE		EQUALS	SELFRET +1	# B(1)
+ALMCADR		EQUALS	SMODE +1	# B(2) ALARM ABORD USER'S 2CADR
+ERCOUNT		EQUALS	ALMCADR +2	# B(1)
+SCOUNT		EQUALS	ERCOUNT +1	# B(3)
+SKEEP1		EQUALS	SCOUNT +3	# B(1)
+SKEEP2		EQUALS	SKEEP1 +1	# B(1)
+SKEEP3		EQUALS	SKEEP2 +1	# B(1)
+SKEEP4		EQUALS	SKEEP3 +1	# B(1)
+SKEEP5		EQUALS	SKEEP4 +1	# B(1)
+SKEEP6		EQUALS	SKEEP5 +1	# B(1)
+SKEEP7		EQUALS	SKEEP6 +1	# B(1)
+
+# USED BY P30 ROUTINES TO WRITE ONLY NEVER READ IN COLOSSUS
+
+DISPDEX		EQUALS	A
+
+# ERASABLE FOR SXTMARK CDU CHECK DELAY.  -- PAD LOADED --	(1D)
+
+CDUCHKWD	ERASE			# B(1)PL
+
+# R57 STORAGE. -- MUST BE UNSHARED EXCEPT IN BOOST OR ENTRY --	(1D)
+
+TRUNBIAS	ERASE			# B(1)PRM RESULT OF R57 CALIBR OF TRUNION
+
+# KEPLER STORAGE				(6D)
+
+XMODULO		ERASE	+1		# I(2) GREATER 2PI KEPLER
+TMODULO		ERASE	+1		# I(2) GREATER 2 KEPLER
+EPSILONT	ERASE	+1		# I(2)TMP
+
+# Page 83
+# P37	** RETURN TO EARTH (PAD LOAD ****	(2D)
+
+RTED1		ERASE	+1		# I(2)PL VGAMMA POLY COEF		B-3
+
+# P40	*** STEERING ROUTINE *** PAD LOAD	(1D)
+
+DVTHRESH	ERASE			# I(1)PL DELTA VTHRESHOLD FOR LOW THRUST
+					#        ROUTINE			B-2
+					
+# P23	*** PAD LOAD ****		(2D)
+
+HORIZALT	ERASE	+1		# I(2)PL HORIZON ALTITUDE	     M B-29
+
+# P20	ALTERNATE LOS VARIANCE	PAD LOAD ****	(1D)
+									  -16
+ALTVAR		ERASE			# I(2)PL MILLARD, SQUARED SCALED 2
+END-UE		EQUALS	SELFERAS +16D	# LAST USED UNSWITCHED ERASABLE
+
+# Page 84
+# EBANK-3 ASSIGNMENTS
+
+		SETLOC	1400
+
+# WAITLIST TASK LISTS.			(26D)
+
+LST1		ERASE	+7		# B(8D)PRM DELTA T'S.
+LST2		ERASE	+17D		# B(18D)PRM TASK 2CADR ADDRESSES.
+
+# RESTART STORAGE.			(2D)
+
+RSBBQ		ERASE	+1		# B(2)PRM SAVE BB AND Q FOR RESTARTS
+
+# MORE LONGCALL STORAGE.  (MUST BE IN LST1'S BANK.	(2D)
+
+LONGEXIT	ERASE	+1		# B(2)TMP MAY BE SELDOM OVERLAYED
+
+# PHASE-CHANGE LISTS PART II.		(12D)
+
+
+PHSNAME1	ERASE			# B(1)PRM
+PHSBB1		ERASE			# B(1)PRM
+PHSNAME2	ERASE			# B(1)PRM
+PHSBB2		ERASE			# B(1)PRM
+PHSNAME3	ERASE			# B(1)PRM
+PHSBB3		ERASE			# B(1)PRM
+PHSNAME4	ERASE			# B(1)PRM
+PHSBB4		ERASE			# B(1)PRM
+PHSNAME5	ERASE			# B(1)PRM
+PHSBB5		ERASE			# B(1)PRM
+PHSNAME6	ERASE			# B(1)PRM
+PHSBB6		ERASE			# B(1)PRM
+
+# IMU COMPENSATION PARAMETERS		(22D)
+
+PBIASX		ERASE			# B(1)	PIPA BIAS, PIPA SCALE FACTOR TERMS
+PIPABIAS	=	PBIASX		#	INTERMIXED.
+PIPASCFX	ERASE
+PIPASCF		=	PIPASCFX
+PBIASY		ERASE
+PIPASCFY	ERASE
+PBIASZ		ERASE
+PIPASCFZ	ERASE
+
+NBDX		ERASE			# GYRO BIAS DRIFT
+GBIASX		=	NBDX
+NBDY		ERASE
+# Page 84
+NBDZ		ERASE
+
+ADIAX		ERASE			# ACCELERATION SENSITIVE DRIFT ALONG THE
+ADIAY		ERASE			# INPUT AXIS
+ADIAZ		ERASE
+
+ADSRAX		ERASE			# ACCELERATION SENSITIVE DRIFT ALONG THE
+ADSRAY		ERASE			# SPIN REFERENCE AXIS
+ADSRAZ		ERASE
+
+GCOMP		ERASE	+5		# CONTAINS COMPENSATING TORQUES
+
+GCOMPSW		ERASE
+COMMAND		EQUALS	GCOMP
+CDUIND		EQUALS	GCOMP	+3
+
+# STATE VECTORS FOR ORBIT INTEGRATION.	(44D)
+
+#		(DIFEQCNT THUR XKEP MUST BE IN THE SAME
+#		EBANK AS RRECTCSM, RRECTLEM ETC
+#		BECAUSE THE COPY CYCLES (ATOPCSM,
+#		PTOACSM ETC) ARE EXECUTED IN BASIC.
+#		ALL OTHER REFERENCES TO THIS GROUP
+#		ARE BY INTERPRETIVE INSTRUCTIONS.)
+#
+
+DIFEQCNT	ERASE	+43D		# B(1)TMP
+# (UPSVFLAG...XKEP MUST BE KEPT IN ORDER).
+
+UPSVFLAG	EQUALS	DIFEQCNT +1	# B(1)PRM UPDATE FLAG
+RRECT		EQUALS	UPSVFLAG +1	# B(6)TMP POS AT RECT		KM*2(-14)
+VRECT		EQUALS	RRECT 	+6	# B(6)TMP VEL AT RECT		KM(-1/2)*2(6)
+TET		EQUALS	VRECT 	+6	# B(2)TMP TIME OF STATE VECT	CSPCS*2(-28)
+TDELTAV		EQUALS	TET 	+2	# B(6)TMP POSITION DEVIATION	KM*2(14)
+TNUV		EQUALS	TDELTAV +6	# B(6)TMP VEL DEVIATION		KM(-1/2)*2(14)
+RCV		EQUALS	TNUV 	+6	# B(6)TMP CONIC POSITION	KM*2(-14)
+VCV		EQUALS	RCV 	+6	# B(6)TMP CONIC VELOCITY	KM(-1/2)*2(6)
+TC		EQUALS	VCV 	+6	# B(2)TMP TIME SINCE RECITIFICATION
+XKEP		EQUALS	TC 	+2	# B(2)TMP ROOT OF KEPLER EQ	KM(1/2)*2(-10)
+
+# **** TEMP -- IN VAC AREA ****
+RRECT1		EQUALS	18D
+VRECT1		EQUALS	24D
+TET1		EQUALS	30D
+
+# PERMANENT STATE VECTORS AND TIMES.	(101D)
+
+# (DO NOT OVERLAY WITH ANYTHING AFTER BOOST)
+
+# Page 86
+# (RRECTCSM...XKEPCSM MUST BE KEPT IN THIS ORDER)
+
+RRECTCSM	ERASE	+5		# B(6)PRM CSM VARIABLES
+RRECTHIS	=	RRECTCSM
+VRECTCSM	ERASE	+5		# B(6)PRM
+TETCSM		ERASE	+1		# B(2)PRM
+TETTHIS		=	TETCSM
+DELTACSM	ERASE	+5		# B(6)PRM
+NUVCSM		ERASE	+5		# B(6)PRM
+RCVCSM		ERASE	+5		# B(6)PRM
+VCVCSM		ERASE	+5		# B(6)PRM
+TCCSM		ERASE	+1		# B(2)PRM
+XKEPCSM		ERASE	+1		# B(2)PRM
+
+# (RRECTLEM...XKEPLEM MUST BE KEPT IN THIS ORDER)
+
+RRECTLEM	ERASE	+5		# B(6)PRM LEM VARIABLES
+RRECTOTH	=	RRECTLEM
+VRECTLEM	ERASE	+5		# B(6)PRM
+TETLEM		ERASE	+1		# B(2)PRM
+TETOTHER	=	TETLEM
+DELTALEM	ERASE	+5		# B(6)PRM
+NUVLEM		ERASE	+5		# B(6)PRM
+RCVLEM		ERASE	+5		# B(6)PRM
+VCVLEM		ERASE	+5		# B(6)PRM
+TCLEM		ERASE	+1		# B(2)PRM
+XKEPLEM		ERASE	+1		# B(2)PRM
+
+X789		ERASE	+5
+TEPHEM		ERASE	+2
+AZO		ERASE	+1
+UNITW		ERASE	+5
+-AYO		EQUALS	UNITW		# (2)
+AXO		EQUALS	UNITW +2	# (2)
+
+# STATE VECTORS FOR DOWNLINK		(12D)
+
+R-OTHER		ERASE	+5		# B(6)PRM POS VECT (OTHER VECH) FOR DNLINK
+V-OTHER		ERASE	+5		# B(6)PRM VEL VECT (OTHER VECH) FOR DNLINK
+
+T-OTHER		=	TETLEM		# 	      TIME (OTHER VECH) FOR DNLINK
+
+# REFSMMAT.				(18D)
+
+REFSMMAT	ERASE	+17D		# I(18D)PRM
+
+# Page 87
+# AVERAGEG INTEGRATOR STORAGE.		(8D)
+UNITR		ERASE	+5
+RMAG		ERASE	+1
+
+# P40 PAD LOADS				(6D)
+EK1VAL		ERASE	+1		# I(2)PL 1-SEC SPS IMPULSE NEWTSEC/100/B23
+EK2VAL		ERASE	+1		# I(2)PL  B+23 NEWTON-SEC/E+2
+EK3VAL		ERASE			# I(1)PL  B+09 NEWTONS/E+4
+FANG		ERASE			# I(1)PL SPS THRUST USED BY IMPULSIVE BURN
+
+# **********LUNAR MODULE CHANGE  ***********
+E3J22R2M	EQUALS	FANG	+2
+E32C31RM	EQUALS	E3J22R2M +1
+
+# **** CONICSEX (PLANETARY INERT. ORIEN.) ****
+TIMSUBO		EQUALS	TEPHEM		# CSEC B-14 (TRIPLE PREC)
+END-E3		EQUALS	E32C31RM	# NEXT UNUSED E3 ADDRESS
+
+# Page 88
+# EBANK-4 ASSIGNMENTS
+
+		SETLOC	2000
+		
+# P20 STORAGE.  -- PAD LOADED --	(4D)
+
+WRENDPOS	ERASE			# B(1)PL	M B-14
+WRENDVEL	ERASE			# B(1)PL	M/CSECB0
+RMAX		ERASE			# B(1)PL	METERS*2(-19)
+VMAX		ERASE			# B(1)PL	M/CSEC*2(-7)
+
+# P22 STORAGE.  -- PAD LOADED --	(5D)
+WORBPOS		ERASE			# B(1)PL	M B-14
+WORBVEL		ERASE			# B(1)PL	M/CSECB0
+S22WSUBL	ERASE			# B(1)PL	M B-14
+RPVAR		ERASE	+1		# B(2)PL
+
+# CONISEX STORAGE.  -- PAD LOADED --	(6D)
+
+504LM		ERASE	+5		# I(6) MOON LIBRATION VECTOR
+
+# ENTRY STORAGE	    -- PAD LOADED --	(2D)
+EMSALT		ERASE	+1		# I(2)PL
+
+# P35 CONSTANTS.    -- PAD LOADED --	(4D)
+ATIGINC		ERASE	+1		# B(2)PL
+PTIGINC		ERASE	+1		# B(2)PL
+
+# LUNAR LANDING SIGHT DATA.  -- PAD LOADED --	(6D)
+# (USED BY INTEGRATION INITIALIZATION, LAT-LONG SUBROUTINES, P30'S)
+
+RLS		ERASE	+5		# I(6) LANDING SIGHT VECTOR
+
+# CONISEX (LUNAR AND SOLAR EPHEM) STORAGE.  -- PAD LOADED --	(77D)
+TIMEMO		ERASE	+76D
+VECOEM		EQUALS	TIMEMO 	+3
+RESO		EQUALS	VECOEM 	+60D
+# Page 89
+VESO		EQUALS	RESO 	+6
+OMEGAES		EQUALS	VESO 	+6
+
+# INTEGRATION STORAGE.			(95D)
+
+PBODY		ERASE			# I(1)
+ALPHAV		EQUALS	PBODY 	+1	# I(6)TMP
+BETAV		EQUALS	ALPHAV 	+6	# I(6)TMP
+PHIV		EQUALS	BETAV 	+6	# I(6)TMP
+PSIV		EQUALS	PHIV 	+6	# I(6)TMP
+FV		EQUALS	PSIV 	+6	# I(6)TMP
+BETAM		EQUALS	FV 	+6	# I(6)TMP
+H		EQUALS	BETAM 	+2	# I(2)TMP
+GMODE		EQUALS	H 	+2		# I(1)TMP
+IRETURN		EQUALS	GMODE 	+1	# I(1)TMP
+NORMGAM		EQUALS	IRETURN +1	# I(1)TMP
+VECTAB		EQUALS	NORMGAM +1	# I(36)TMP
+RPQV		EQUALS	VECTAB 	+36D	#  (6)TMP VECTOR PRIMARY TO SECONDARY BODY
+ORIGEX		EQUALS	RPQV	+6	# B(1)TMP QSAVE FOR COORD. SWITCH ROUTINE
+KEPRTN		EQUALS	ORIGEX		# 	  QSAVE FOR KEPLER
+RQVV		EQUALS	ORIGEX 	+1	#  (6)    SEC. BODY TO VEH.VETOR (USED P23)
+RPSV		EQUALS	RQVV 	+6		#  (6)TMP SUN TO PRIMARY BODY VECTOR
+XKEPNEW		EQUALS	RPSV 	+6		#  (2)TMP ROOT OF KEPLER'S EQU FOR TIME TAU
+
+# THESE PROBABLY CAN SHARE INTEGRATION VARIABLES	(9D)
+
+VACX		EQUALS	VECTAB 	+6	# I(2)TMP
+VACY		EQUALS	VACX 	+2	# I(2)TMP
+VACZ		EQUALS	VACY 	+2	# I(2)TMP
+
+ERADM		EQUALS	VECTAB	+18D	# I(2)TMP
+INCORPEX	EQUALS	ERADM	+2	# I(1)TMP
+
+# R31 (V83) STORAGE. -- SHARES WITH INTEGRATION STORAGE --	(24D)
+
+BASEOTP		EQUALS	VECTAB +6	# I(6) BASE POS VECTOR OTHER VEH
+BASEOTV		EQUALS	VECTAB +18D	# I(6) BASE VEL VECTOR OTHER VEH
+BASETHP		EQUALS	VECTAB +30D	# I(6) BASE POS VECTOR THIS VEH
+BASETHV		EQUALS	RPQV		# I(6) BASE VEL VECTOR THIS VEH
+
+# CONIC INTEGRATION STORAGE. -- MAY NOT SHARE WITH SERVICER --	(6D)
+ALPHAM		EQUALS	XKEPNEW	+2	# I(2)TMP
+TAU.		EQUALS	ALPHAM 	+2	# I(2)TMP
+DT/2		EQUALS	TAU.	+2	# I(2)TMP
+
+# Page 90
+
+# P21, R61 STORAGE.			(2D)
+P21TIME		EQUALS	DT/2	+2	# B(2)TMP
+
+# INTEGRATION STORAGE			(1D)
+EGRESS		EQUALS	P21TIME	+2	# I(1)TMP SAVES RETURNS.
+
+# VERB 83 STORAGE.			(20D)
+
+RANGE		EQUALS	EGRESS 	+1	# I(2)DSP NOUN 54 DISTANCE TO OPTICAL SUBJ
+RRATE		EQUALS	RANGE	+2	# I(2)DSP NOUN 54 RATE OF APPROACH
+RTHETA		EQUALS	RRATE 	+2	# I(2)DSP NOUN 54.
+RONE		EQUALS	RTHETA 	+2	# I(6)TMP VECTOR STORAGE.  (SCRATCH)
+VONE		EQUALS	RONE 	+6	# I(6)TMP VECTOR STORAGE.  (SCRATCH)
+BASETIME	EQUALS	VONE	+6	# I(2)    BASE TIME ASSOC WITH BASE VECS
+
+# S-BAND ANTENNA GIMBAL ANGLES.  DISPLAYED BY R05 (V64).	(4D)
+#			(OPERATES DURING P00 ONLY)
+RHOSB		EQUALS	RANGE		# B(2)DSP NOUN 51. PITCH ANGLE
+GAMMASB		EQUALS	RHOSB	+2	# B(2)DSP NOUN 51. YAWANGLE
+
+# R36 SCRATCHPAD STORAGE		(13D)
+RPASS36		EQUALS	RONE		# I(6) S-S
+UNP36		EQUALS	RPASS36 +6	# I(6) S-S
+OPTIONY		EQUALS	UNP36	+6	# I(1)TMP VEHICLE CODE
+
+# EXTENDED VERB 82 STORAGE.		(6D)
+
+HPERMIN		EQUALS	RANGE		# I(2) SET TO 300KFT OR 35KFT FOR SR30.1
+RPADTEM		EQUALS	HPERMIN +2	# I(2) PAD OR LANDING RADIUS FOR SR30.1
+TSTART82	EQUALS	RPADTEM +2	# I(2) TEMP TIME STORAGE VOR V82.
+
+# MORE VERB 82 NOT SHARING WITH VERB 83	(9D)
+V82FLAGS	EQUALS	VONE	+6	#  (1) FOR V 82 BITS
+TFF		EQUALS	V82FLAGS +1	# I(2)DSP NOUN 50,44
+-TPER		EQUALS	TFF	+2	# I(2)DSP NOUN 32
+THETA(1)	EQUALS	-TPER	+2	# I(2)TMP SET AT END OF V82
+# Page 91
+RSP-RREC	EQUALS	AOPTIME		# DSP NOUN 50 FOR V82 DURING P00 AND P11
+
+# REENTRY CONICS			(6D)
+URONE		EQUALS	V82FLAGS	# I(6) SAVE ACTUAL FOR CALCULATIONS
+
+# V82 DISPLAY				(4D)
+HAPOX		EQUALS	THETA(1) +2	# I(2)DSP NOUN 44
+HPERX		EQUALS	HAPOX	+2	# I(2)DSP NOUN 44
+
+# P22 DISPLAY REGISTERS			(06D)
+AOPTIME		EQUALS	HPERX	+2	# I(2)TMP FOR SR52.1.ADVTRACK
+LANDLONG	EQUALS	AOPTIME	+2	# I(2)DSP NOUN 89 FOR P22
+LANDALT		EQUALS	LANDLONG +2	# I(2)DSP NOUN 89 FOR P22
+
+# S34/35.5,P34-P35 STORAGE.		(6D)
+KT		EQUALS	LANDALT	+2	# B(2)
+VERBNOUN	EQUALS	KT	+2	# B(1)TMP
+QSAVED		EQUALS	VERBNOUN +1	# B(1)TMP HOLDS RETURN
+RTRN		EQUALS	QSAVED	+1	# B(1) RETURN
+SUBEXIT		EQUALS	RTRN	+1	# B(1)TMP
+					# RGEXIT CAN'T SHARE WITH HPER,HAPO
+RGEXIT		EQUALS	SUBEXIT		# I(1)TMP Q SAVE MODE 1 AND 2 TO RTRN MAIN
+					
+# P30 DISPLAY				(4D)
+HAPO		EQUALS	KT		# I(2)DSP NOUN 42, FOR P30.
+HPER		EQUALS	HAPO	+2	# I(2)DSP NOUN 42, FOR P30.
+
+# SOME P34 STORAGE.	(OVERLAYS P35.1 STORAGE)	(2D)
+NOMTPI		EQUALS	KT		# I(2)TMP NOMINAL TPI TIME FOR RECYCLE.
+
+# THE FOLLOWING ARE ERASABLES USED BY THE SYSTEM TESTS.  205 USES TRANSM1.  G'S ARE NOT USED IN 205 NOR ARE THEY
+# WHILE 504 USES TRANSM1 AND ALFDK.
+# Page 92
+# RSB 2009.  The definition of TRANSM1 was previously just "TRANSM1 EQUALS 2000", 
+# this messes up the label typing system in yaYUL.
+		SETLOC	2000
+TRANSM1		EQUALS			# (18) INITIALIZATION FOR IMU TESTS
+ALFDK		=	TRANSM1 +18D	# (144) ERASABLE LOAD IN 504
+
+# END OF PERF. TEST ERASABLE IN BANK 4
+
+# *-*-* V82 *-*-*			(6D)
+
+VONE'		EQUALS	RGEXIT	+1	# I(6)TMP NORMAL VELOCITY VONE/ SQ RT MU
+
+# PAD LOAD INTEGRATION ERROR INCLUDED IN VARIANCE BY P20	(1D)
+
+INTVAR		EQUALS	VONE'	+6	# I(1)PL	SQUARE OF EXPECTED INTEGRATION
+					#		POSITION EXTRAPOLATION ERROR.
+					#		SCALED METERS(2) 2(15)
+END-E4		EQUALS	INTVAR		# LAST USED ERASABLE IN E4.
+
+# Page 93
+# EBANK-5 ASSIGNMENTS
+
+		SETLOC	2400
+		
+# *-*-*-*- OVERLAY 1 IN EBANK 5 -*-*-*-*
+
+# W-MATRIX STORAGE.			(162D)
+
+# RSB 2009.  The following 3 lines have been replaced to be consistent with yaYUL's
+# label-typing system.  They *were* "W EQUALS 2400", "9X9LOC1 EQUALS 2444", 
+# "9X9LOC2 EQUALS 2532".
+W		EQUALS			# B(162)
+9X9LOC1		EQUALS	W	+44
+9X9LOC2		EQUALS	9X9LOC1	+66
+
+EMATRIX		=	W	+120D	# B(42) USED TO CONVERT W TO 6X6
+END-W		EQUALS	W 	+162D	# **NEXT AVAILABLE LOC AFTER W MATRIX**
+
+# AUTO-OPTICS STORAGE -R52-
+
+# DO NOT MOVE FROM E5,1554.  A DELICATE BALANCE EXISTS BETWEEN THIS AND P03
+XNB1		EQUALS	W	+108D	# B(6D)TMP
+YNB1		EQUALS	XNB1	+6	# B(6)TMP
+ZNB1		EQUALS	YNB1	+6	# B(6)TMP
+SAVQR52		EQUALS	ZNB1	+6	# I(2)TMP
+PLANVEC		EQUALS	SAVQR52	+2	# B(6) S-S SIGHTING VECTOR IN REF. COOR.
+TSIGHT		EQUALS	PLANVEC	+6	# B(2) S-S TIME OF SIGHTING
+
+# RENDEZVOUS -P34-35			(26D)
+DVLOS		EQUALS	TSIGHT	+2	# I(6) S-S DELTA VELOCITY, LOS COORD-DISPLAY
+DELTAR		EQUALS	DVLOS		# I(2)
+TINTSOI		EQUALS	DELTAR		# I(2) INTERCEPT TIME FOR SOI MANEUVER
+DELTTIME	EQUALS	DVLOS	+2	# I(2)
+TARGTIME	EQUALS	DVLOS	+4	# I(2)
+UNRM		EQUALS	DVLOS	+6	# I(6) S-S
+ULOS		EQUALS	UNRM	+6	# I(6) S-S UNIT LINE OF SIGHT VECTOR
+ACTCENT		EQUALS	ULOS	+6	# I(2) S-S CENTRAL ANGLE BETWEEN ACTIVE
+					#      VEH AT TPI IGNITION TIME AND
+					#      TARGET VECTOR.
+DELVTPI		EQUALS	ACTCENT	+2	# I(2) NOUN 58 FOR P34
+DELVTPF		EQUALS	DELVTPI	+2	# I(2) NOUN 58,59 FOR P34,35
+POSTTPI		EQUALS	DELVTPF	+2	# I(2) NOUN 58 FOR P34.
+TDEC2		EQUALS	DELVTPI		#  (2)
+
+# ALIGNMENT				(12D)
+# Page 94
+STARSAV1	EQUALS	DVLOS		# I(6)TMP RESTART STAR SAVE.
+STARSAV2	EQUALS	STARSAV1 +6	# I(6)TMP RESTART STAR SAVE.
+US		=	STARSAV2	# 	  (CISLUNAR TAG FOR STARSAV2).
+
+# TPI SEARCH				(26D)
+IT		EQUALS	DVLOS		#  (6)
+THETZERO	EQUALS	IT	+6	#  (2)
+TFI		EQUALS	THETZERO +2	#  (2)
+DELVEE		EQUALS	TFI	+2	#  (2)
+HP		EQUALS	DELVEE	+2	#  (2)
+TFO		EQUALS	HP	+2	#  (2)
+HPO		EQUALS	TFO	+2	#  (2)
+DELVEO		EQUALS	HPO	+2	#  (2)
+MAGVTPI		EQUALS	DELVEO	+2	# I(2)TMP MAG OF DELTAVTPI OR VMID
+RELDELV		EQUALS	MAGVTPI	+2	# I(2)TMP MAG OF DELTAVTPF
+T3TOT4		EQUALS	RELDELV	+2	# I(2)DSP NOUN 39 FOR P34,35.  TPI TO TINT
+					# (CANNOT SHARE WITH RETURN TO EARTH)
+# Page 95
+# ALIGNMENT/SYSTEST/CALCSMSC/CRS61.1 COMMON STORAGE	(36D)
+# (CALCSMSC IS A SUBSET OF S41.1 AT LEAST)
+# (CRS61.1 IS A SUBSET OF P20)
+
+XSM		EQUALS	END-W	+23D	# B(6)
+YSM		EQUALS	XSM	+6	# B(6)TMP
+ZSM		EQUALS	YSM	+6	# B(6)TMP
+
+XDC		EQUALS	ZSM	+6	# B(6)TMP
+YDC		EQUALS	XDC	+6	# B(6)TMP
+ZDC		EQUALS	YDC	+6	# B(6)TMP
+
+XNB		=	XDC
+YNB		=	YDC
+ZNB		=	ZDC
+
+# OVERLAYS WITHIN ALIGNMENT/SYSTEST/CALCSMSC COMMON STORAGE
+
+-COSB		EQUALS	XSM 	+2	# (2)TMP
+SINB		EQUALS	-COSB 	+2	# (2)TMP
+
+# ALIGNMENT/SYSTEST COMMON STORAGE	(18D)
+
+STARAD		EQUALS	ZDC 	+6	# I(18D)TMP
+
+# ALIGNMENT/SYSTEST/AUTO OPTICS COMMON STORAGE.	(17D)
+
+OGC		EQUALS	STARAD 	+18D	# I(2)TMP
+IGC		EQUALS	OGC	+2	# I(2)TMP
+MGC		EQUALS	IGC 	+2	# I(2)TMP
+STAR		EQUALS	MGC 	+2	# I(6)TMP
+SAC		EQUALS	STAR 	+6	# I(2)TMP
+PAC		EQUALS	SAC 	+2	# I(2)TMP
+QMIN		EQUALS	PAC 	+2	# B(1)TMP
+
+# **** COLP50'S ****			(1D)
+CULTRIX		EQUALS	VEARTH		# VEARTH, VSUN, VMOON
+
+# OVERLAYS WITHIN ALIGNMENT/SYSTEST COMMON STORAGE	(24D)
+
+VEARTH		EQUALS	STARAD		# (6)TMP
+VSUN		EQUALS	VEARTH 	+6	# (6)TMP
+VMOON		EQUALS	VSUN 	+6	# (6)TMP
+SAX		EQUALS	VMOON 	+6	# (6)TMP
+
+# Page 96
+# *-*-*-*- OVERLAY NUMBER 2 IN EBANK 5 -*-*-*-*
+
+# CONICS ROUTINE STORAGE.			(87D)
+
+DELX		EQUALS	END-W		# I(2)TMP
+DELT		EQUALS	DELX 	+2	# I(2)TMP
+URRECT		EQUALS	DELT 	+2	# I(6)TMP
+RCNORM		EQUALS	URRECT 	+6	# I(2)TMP
+XPREV		EQUALS	XKEP		# I(2)TMP
+R1VEC		EQUALS	RCNORM 	+2	# I(6)TMP
+R2VEC		EQUALS	R1VEC 	+6	# I(6)TMP
+TDESIRED	EQUALS	R2VEC 	+6	# I(2)TMP
+GEOMSGN		EQUALS	TDESIRED +2	# I(1)TMP
+UN		EQUALS	GEOMSGN +1	# I(6)TMP
+VTARGTAG	EQUALS	UN 	+6	# I(1)TMP
+VTARGET		EQUALS	VTARGTAG +1	# I(6)TMP
+RTNLAMB		EQUALS	VTARGET +6	# I(1)TMP
+U2		EQUALS	RTNLAMB +1	# I(6)TMP
+MAGVEC2		EQUALS	U2 	+6	# I(2)TMP
+UR1		EQUALS	MAGVEC2 +2	# I(6)TMP
+SNTH		EQUALS	UR1 	+6	# I(2)TMP
+CSTH		EQUALS	SNTH 	+2	# I(2)TMP
+1-CSTH		EQUALS	CSTH 	+2	# I(2)TMP
+CSTH-RHO	EQUALS	1-CSTH 	+2	# I(2)TMP
+P		EQUALS 	CSTH-RHO +2	# I(2)TMP
+R1A		EQUALS 	P 	+2	# I(2)TMP
+RVEC		EQUALS	R1VEC		# I(6)TMP
+VVEC		EQUALS	R1A 	+2	# I(6)TMP
+RTNTT		EQUALS	RTNLAMB		# I(1)TMP
+ECC		EQUALS	VVEC 	+6	# I(2)TMP
+RTNTR		EQUALS	RTNLAMB		# I(1)TMP
+RTNAPSE		EQUALS	RTNLAMB		# I(1)TMP
+R2		EQUALS	MAGVEC2		# I(2)TMP
+RTNPRM		EQUALS	ECC 	+2	# I(1)TMP
+SGNRDOT		EQUALS	RTNPRM +1	# I(1)TMP
+RDESIRED	EQUALS	SGNRDOT +1	# I(2)TMP
+DELDEP		EQUALS	RDESIRED +2	# I(2)TMP
+DEPREV		EQUALS	DELDEP 	+2	# I(2)TMP
+TERRLAMB	EQUALS	DELDEP		# I(2)TMP
+TPREV		EQUALS	DEPREV		# I(2)TMP
+
+# Page 97
+# *-*-*-*- OVERLAY NUMBER 3 IN EBANK 5 -*-*-*-*
+
+# MEASUREMENT INCORPORATION STORAGE.	(66D)
+# (CALLED BY P20, P22, P23)
+
+OMEGAM1		EQUALS	END-W		# I(6)TMP
+OMEGAM2		EQUALS	OMEGAM1	+6	# I(6)TMP
+OMEGAM3		EQUALS	OMEGAM2 +6	# I(6)TMP
+HOLDW		EQUALS	OMEGAM3 +6	# I(18)TMP
+TDPOS		EQUALS	HOLDW 	+18D	# I(6)TMP
+TDVEL		EQUALS	TDPOS 	+6	# I(6)TMP
+
+ZI		EQUALS	TDVEL	+6	# I(18)
+
+# P22-P23 STORAGE.			(8D)
+
+22SUBSCL	EQUALS	ZI 	+18D	# DE OF ABCDE LANDMARK ID NO.
+CXOFF		EQUALS	22SUBSCL +1	# B OF ABCDE OFFSET INDICATOR
+8KK		EQUALS	CXOFF 	+1	# B(1)TMP INDEX OF PRESENT MARK
+8NN		EQUALS	8KK 	+1	# B(1)TMP 
+S22LOC		EQUALS	8NN 	+1	# I(1)TMP MARK DATA LOC
+LANDMARK	EQUALS	S22LOC +1	# B(1)DSP NOUN 70 FOR P22,51, R52,53
+HORIZON		EQUALS	LANDMARK +1	# B(1)DSP NOUN 70 FOR P22,51, R52,53
+IDOFLMK		EQUALS	HORIZON +1	# B(1)
+
+# ******P23***				(1D)
+TRUNION		EQUALS	IDOFLMK +1	# B(1)	
+
+# Page 98
+
+# *-*-*-*- OVERLAY NUMBER 0 IN EBANK 5 -*-*-*-*
+
+# SYSTEM TEST STORAGE.				(174)
+
+AZIMUTH		ERASE	+1
+LATITUDE	ERASE	+1
+
+TRUNA		EQUALS	DESOPTT
+SHAFTA		EQUALS	DESOPTS
+
+ERVECTOR	ERASE	+5
+LENGTHOT	ERASE
+LOSVEC		ERASE	+5
+
+SXTOPTN		=	LOSVEC
+NDXCTR		ERASE
+PIPINDEX	ERASE
+POSITON		ERASE
+QPLAC		ERASE
+QPLACE		ERASE
+QPLACES		ERASE
+RUN		ERASE
+STOREPL		ERASE
+SOUTHDR		ERASE
+TARG1/2		=	SOUTHDR
+TAZEL1		ERASE	+5
+TEMPTIME	ERASE	+1
+TMARK		ERASE	+1
+GENPL		ERASE	+134D
+CDUTIMEI	=	GENPL
+CDUTIMEF	=	GENPL +2
+IMU/OPT		=	GENPL +4
+CDUREADF	=	GENPL +5
+CDUREADI	=	GENPL +6
+CDULIMIT	=	GENPL +7
+
+TEMPADD		=	GENPL +4
+TEMP		=	GENPL +5
+NOBITS		=	GENPL +6
+CHAN		=	GENPL +7
+
+LOS1		=	GENPL +8D
+LOS2		=	GENPL +14D
+
+CALCDIR		EQUALS	GENPL +20D
+CDUFLAG		EQUALS	GENPL +21D
+GYTOBETQ	EQUALS	GENPL +22D
+OPTNREG		EQUALS	GENPL +23D
+SAVE		EQUALS	GENPL +24D	# THREE CONSEC LOC
+SFCONST1	EQUALS	GENPL +27D
+# Page 99
+TIMER		EQUALS	GENPL 	+28D
+
+DATAPL		EQUALS	GENPL 	+30D
+RDSP		EQUALS	GENPL		# FIX LATER	POSSIBLY KEEP1
+MASKREG		EQUALS	GENPL 	+64D
+CDUNDX		EQUALS	GENPL 	+66D
+RESULTCT	EQUALS	GENPL 	+67D
+COUNTPL		EQUALS	GENPL 	+70D
+
+CDUANG		EQUALS	GENPL 	+71D
+AINLA		=	GENPL		# OPTIMUM CALIB. AND ALIGNMENT
+WANGO		EQUALS	AINLA	
+WANGI		EQUALS	AINLA 	+2D
+WANGT		EQUALS	AINLA 	+4D
+TORQNDX		=	WANGT
+DRIFTT		EQUALS	AINLA 	+6D
+ALX1S		EQUALS	AINLA 	+8D
+CMPX1		EQUALS	AINLA 	+9D
+ALK		EQUALS	AINLA 	+10D
+VLAUNS		EQUALS	AINLA 	+22D
+THETAX		=	ALK 	+2
+WPLATO		EQUALS	AINLA 	+24D
+INTY		EQUALS	AINLA 	+28D
+THETAN		=	THETAX 	+6
+ANGZ		EQUALS	AINLA 	+30D
+INTZ		EQUALS	AINLA 	+32D
+ANGY		EQUALS	AINLA 	+34D
+ANGX		EQUALS	AINLA 	+36D
+DRIFTO		EQUALS	AINLA 	+38D
+DRIFTI		EQUALS	AINLA 	+40D
+VLAUN		EQUALS	AINLA 	+44D
+FILDELV		=	THETAN 	+6
+ACCWD		EQUALS	AINLA 	+46D
+INTVEC		=	FILDELV +2
+POSNV		EQUALS	AINLA 	+52D
+DPIPAY		EQUALS	AINLA 	+54D
+DPIPAZ		EQUALS	AINLA 	+58D
+ALTIM		EQUALS	AINLA 	+60D
+ALTIMS		EQUALS	AINLA 	+61D
+ALDK		EQUALS	AINLA 	+62D
+DELM		EQUALS	AINLA 	+76D
+WPLATI		EQUALS	AINLA 	+84D
+RESTARPT	=	AINLA 	+91D
+GEOSAVED	=	AINLA 	+117D
+PREMTRXC	=	AINLA 	+118D
+LAUNCHAZ	=	AINLA 	+119D
+NEWAZMTH	=	AINLA 	+121D
+OLDAZMTH	=	AINLA 	+123D
+# Page 100
+TOLDAZMT	=	AINLA 	+125D
+GEOCOMPS	=	AINLA 	+127D
+1SECXT		=	AINLA 	+128D
+GTSXTLST	=	AINLA 	+129D
+ERECTIME	=	AINLA 	+130D
+ERCOMP		=	AINLA 	+131D
+ZERONDX		=	AINLA 	+137D
+GTSOPNDZ	=	ZERONDX
+
+# THE FOLLOWING TAGS ARE USED BY THE 504 IMU CALIBRATION AND ALIGNMENT PROGRAM ONLY.
+
+THETAX1		EQUALS	ALK	+2
+THETAN1		EQUALS	THETAX1	+6
+FILDELV1	EQUALS	THETAN1	+6
+INTVEC1		EQUALS	FILDELV1 +2
+GEOSAVE1	EQUALS	AINLA	+117D
+PREMTRX1	EQUALS	AINLA	+118D
+LUNCHAZ1	EQUALS	AINLA	+119D
+NEWAZ1		EQUALS	LUNCHAZ1 +2
+OLDAZ1		EQUALS	LUNCHAZ1 +4
+TOLDAZ1		EQUALS	LUNCHAZ1 +6
+GEOCOMP1	EQUALS	AINLA	+127D
+1SECXT1		EQUALS	AINLA	+128D
+GTSWTLT1	EQUALS	AINLA	+129D
+ERECTIM1	EQUALS	AINLA	+130D
+ERCOMP1		EQUALS	AINLA	+131D	# I(6)
+ZERONDX1	EQUALS	AINLA	+137D
+PERFDLAY	EQUALS	AINLA	+138D	# B(2)..........
+
+# END OF 504 + ALIGN ERASE.
+
+# Page 101
+
+# *-*-*-*-  OVERLAY 4 IN EBANK 5  -*-*-*-*
+#
+# P32 --- P33				(26D)
+UP1		EQUALS	DVLOS		# I(6)
+VPASS2		EQUALS	UP1	+6	# I(6)
+RPASS2		EQUALS	VPASS2	+6	# I(6)
+DIFFALT		EQUALS	RPASS2	+6	# I(2)
+TCDH		EQUALS	DIFFALT	+2	# I(2)
+TCSI		EQUALS	TCDH	+2	# I(2)
+TTPIO		EQUALS	TCSI	+2	# I(2)
+
+# P32,P33 STORAGE OVERLAYING 9X9 W-MATRIX LOCATIONS	(26D)
+DELVEET1	EQUALS	9X9LOC1		# I(6) DELV FOR CSI
+RACT2		EQUALS	DELVEET1 +6	# I(6) POS. ACTIVE VEH. AT CDH TIME
+VACT2		EQUALS	9X9LOC2		# I(6) VEL. ACTIVE VEH. AT CDH TIME
+RACT1		EQUALS	VACT2	+6	# I(6) POS. ACTIVE VEH. AT CSI TIME
+T1TOT2		EQUALS	RACT1	+6	# I(2) TCDH - TCSI
+END-E5		EQUALS	QMIN		# LAST USED E5 ADDRESS
+
+# Page 102
+
+# EBANK-6 ASSIGNMENTS.
+
+		SETLOC	3000
+# P23	PAD LOADS ***			(2D).
+WMIDPOS		ERASE			# I(1)PL INITIAL VALUES FOR W-MATRIX IN
+WMIDVEL		ERASE			# I(1)PL CISLUNAR (P23) NAVIGATION
+
+# R22	PAD LOADS			(5D).
+RVAR		ERASE	+1		# I(2)PL VHF RADAR
+RVARMIN		ERASE	+2		# I(3)PL VHF RADAR
+
+# ***** PAD LOADED ENTRY DAP STEERING VARIABLES *****	(3D)
+LADPAD		ERASE			# I(1)PL FOR ENTRY. HOLDS CM NOMINAL L/D
+LODPAD		ERASE			# I(1)PL FOR ENTRY. HOLDS CM NOMINAL LOD
+ALFAPAD		ERASE			# B(1)PL ALFA TRIM / 180
+
+# ***** PAD LOADED TVC DAP VARIABLES ****************	(26D)
+ETDECAY		ERASE			# I(1)PL
+ESTROKER	ERASE			# B(1)PL
+EKPRIME		ERASE	+1		# B(2)PL
+EKTLX/I		ERASE	+2		# B(3)PL
+EREPFRAC	ERASE	+1		# B(2)PL
+PACTOFF		ERASE			# B(1)PL, DSP N48 R01 = PTRIM, R02 = YTRIM
+YACTOFF		ERASE			# B(1)PL, CONSECUTIVE WITH PACTOFF
+HBN10		ERASE			# B(1)
+HBN11/2		ERASE			# B(1)
+HBN12		ERASE			# B(1)
+HBD11/2		ERASE			# B(1)
+HBD12		ERASE			# B(1)
+HBN20		ERASE			# B(1)
+HBN21/2		ERASE			# B(1)
+HBN22		ERASE			# B(1)
+HBD21/2		ERASE			# B(1)
+HBD22		ERASE			# B(1)
+HBN30		ERASE			# B(1)
+HBN31/2		ERASE			# B(1)
+HBN32		ERASE			# B(1)
+#Page 103
+HBD31/2		ERASE			# B(1)
+HBD32		ERASE			# B(1)
+
+# **** EXCLUSIVE TVC DAP VARIABLES. *****************	(5D)
+V97VCNTR	ERASE			# B(1)
+TEMPDAP		ERASE	+1		# B(2)
+MRKRTMP		=	TEMPDAP		#	((B(1)))
+CNTR		ERASE			# B(1)
+OGAD		ERASE			# B(1)
+
+# **** EXCLUSIVE RCS DAP VARIABLES ******************	(13D)
+RWORD1		ERASE	+12D		# B(1)
+RWORD2		EQUALS	RWORD1	+1	# B(1)
+PWORD1		EQUALS	RWORD2	+1	# B(1)
+PWORD2		EQUALS	PWORD1	+1	# B(1)
+YWORD1		EQUALS	PWORD2	+1	# B(1)
+YWORD2		EQUALS	YWORD1	+1	# B(1)
+BLAST		EQUALS	YWORD2	+1	# B(2)
+BLAST1		EQUALS	BLAST	+2	# B(2)
+BLAST2		EQUALS	BLAST1	+2	# B(2)
+T5PHASE		EQUALS	BLAST2	+2	# B(1)
+
+# **** RCS/TVC DAP COMMON STORAGE. ******************	(16D)
+DAPDATR1	ERASE			# B(1)DSP NOUN 46(R1)
+DAPDATR2	ERASE			# B(1)DSP NOUN 46(R2)
+
+IXX		ERASE			# B(1) CONSECUTIVE WITH IAVG, IAVG/TLX FOR
+IAVG		ERASE			# B(1)				  MASSPROP
+IAVG/TLX	ERASE			# B(1)
+
+LEMMASS		ERASE			# B(1)DSP NOUN 47 (R2)
+CSMMASS		ERASE			# B(1)DSP NOUN 47 (R1)
+WEIGHT/G	ERASE			# B(1)
+MASS		=	WEIGHT/G
+
+AK		ERASE
+AK1		ERASE
+AK2		ERASE
+
+RCSFLAGS	ERASE			# B(1) CONSECUTIVE WITH AK2 DOWNLINK
+T5TEMP		ERASE			# B(1)
+EDRIVEX		ERASE
+EDRIVEY		ERASE
+# Page 104
+EDRIVEZ		ERASE
+
+# INTEMP THRU INTEMP+14D ARE RESERVED FOR OVERLAYED TVC/RCS INTERUP TRUE TEMPORARIES
+INTTEMP		ERASE	+14D		# (15)
+
+# TVC/RCS THRU TVCRCS +11D RESERVED FOR DOWNLINKED VARIABLES
+TVCRCS		ERASE	+11D		# (12)
+					# RCS (WBODYS,ADOTS)
+					# TVC(OMEGACS,OMEGABS)
+					
+# TVC DAP TEMPORARY VARIABLES*********************************
+
+# TVC DAP INTERRUPT TRUE TEMPORARIES**************************
+
+PHI333		EQUALS	INTTEMP		# B(1) TEMPORARY REGISTER
+PSI333		EQUALS	PHI333 	+1	# B(1) COUNTING REGISTER
+TEMP333		EQUALS	PSI333 	+1	# B(1) COUNTING REGISTER
+VARST0		EQUALS	TEMP333 +1	# B(8) BREAKPOINTS AND SLOPES
+VARST5		=	VARST0 	+5
+LASTMASP	EQUALS	VARST0 	+9D	# LAST VARST0 WORD
+TVCTMP1		EQUALS	LASTMASP +1	# B(1)
+
+# *******REGULAR TVC TEMPORARIES*************
+
+# TVC ZEROING STARTS HERE
+
+OMEGAC		EQUALS	TVCRCS		# I(6)
+OMEGAXC		=	OMEGAC
+OMEGAYC		= 	OMEGAC 	+2
+OMEGAZC		=	OMEGAC 	+4
+
+OMEGAB		EQUALS	TVCRCS 	+6	# B(6)
+OMEGAXB		=	OMEGAB
+OMEGAYB		=	OMEGAB 	+2
+OMEGAZB		=	OMEGAB 	+4
+
+PTMP1		EQUALS	OMEGAC	+12D	# B(2)
+PTMP2		EQUALS	PTMP1	+2	# B(2)
+PTMP3		EQUALS	PTMP2	+2	# B(2)
+PTMP4		EQUALS	PTMP3	+2	# B(2)
+PTMP5		EQUALS	PTMP4	+2	# B(2)
+# Page 105
+PTMP6		EQUALS	PTMP5	+2	# B(2)
+
+YTMP1		EQUALS	PTMP6	+2	# B(2)
+YTMP2		EQUALS	YTMP1	+2	# B(2)
+YTMP3		EQUALS	YTMP2	+2	# B(2)
+YTMP4		EQUALS	YTMP3	+2	# B(2)
+YTMP5		EQUALS	YTMP4	+2	# B(2)
+YTMP6		EQUALS	YTMP5	+2	# B(2)
+
+ROLLFIRE	EQUALS	YTMP6	+2	# B(1)
+ROLLWORD	EQUALS	ROLLFIRE +1	# B(1)
+TEMREG		EQUALS	ROLLWORD +1	# B(1)
+
+STROKER		EQUALS	TEMREG	+1	# B(1)
+
+PERRB		EQUALS	STROKER +1	# B(2)
+YERRB		EQUALS	PERRB	+2	# B(2)
+
+DELPBAR		EQUALS	YERRB	+2	# B(2)
+DELYBAR		EQUALS	DELPBAR	+2	# B(2)
+
+PDELOFF		EQUALS	DELYBAR	+2	# B(2)
+YDELOFF		EQUALS	PDELOFF	+2	# B(2)
+
+# TVC ZEROING LOOP ENDS HERE
+TTMP1		EQUALS	YDELOFF	+2	# B(2)
+TTMP2		EQUALS	TTMP1	+2	# B(2)
+DAP1		EQUALS	TTMP2	+2	# B(2)
+DAP2		EQUALS	DAP1	+2	# B(2)
+DAP3		EQUALS	DAP2	+2	# B(2)
+
+PCMD		EQUALS	DAP3	+2	# B(1)
+YCMD		EQUALS	PCMD	+1	# B(1), CONSECUTIVE WITH PCMD
+T5TVCDT		EQUALS	YCMD	+1	# B(1)
+MDT		EQUALS	T5TVCDT	+1	# I(6)
+KPRIMEDT	EQUALS	MDT	+6	# I(2)
+KTLX/I		EQUALS	KPRIMEDT +2	# B(1)
+TENMDOT		EQUALS	KTLX/I	+1	# B(1)
+1/CONACC	EQUALS	TENMDOT	+1	# B(1)
+VARK		EQUALS	1/CONACC +1	# B(1)
+REPFRAC		EQUALS	VARK	+1	# B(1)
+VCNTR		EQUALS	REPFRAC	+1	# B(1)
+TVCPHASE	EQUALS	VCNTR	+1	# B(1)
+PCDUYPST	EQUALS	TVCPHASE +1	# B(1)
+PCDUZPST	EQUALS	PCDUYPST +1	# B(1)
+MCDUYDOT	EQUALS	PCDUZPST +1	# B(1)
+MCDUZDOT	EQUALS	MCDUYDOT +1	# B(1)
+# Page 106
+TVCEXPHS	EQUALS	MCDUZDOT +1	# B(1)
+MASSTMP		EQUALS	TVCEXPHS +1	# B(1)	PROTECT
+VCNTRTMP	EQUALS	MASSTMP	+1	# B(1)	  *PROTECT***
+
+# STROKE TEST VARIABLES
+STRKTIME	EQUALS	VCNTRTMP +1	# B(1)
+CADDY		EQUALS	STRKTIME +1	# B(1)
+N		EQUALS	CADDY	+1	# B(1)
+BUNKER		EQUALS	N	+1	# B(1)
+REVS		EQUALS	BUNKER	+1	# B(1)
+CARD		EQUALS	REVS	+1	# B(1)
+
+# TVC ROLL DAP VARIABLES
+OGANOW		EQUALS	CARD	+1	# B(1)
+OGAPAST		EQUALS	OGANOW	+1	# B(1)
+OGA		EQUALS	OGAPAST	+1	# B(1)TMP
+OGAERR		=	OGA		# (ROLL DAP USES OGA, MEANS OGAERROR)
+DELOGART	EQUALS	OGA	+1	# B(1)TMP
+SGNRT		EQUALS	DELOGART +1	# SIGN OF CGA RATE
+DELOGA		EQUALS	SGNRT	+1	# USED IN ROLL LOGIC
+I		EQUALS	DELOGA	+1	# USED IN ROLL LOGIC
+IOGARATE	EQUALS	I	+1	# USED IN ROLL LOGIC
+
+# TVC DAP RESTART TEMPORARIES.
+PACTTMP		EQUALS	IOGARATE +1	# B(2)
+YACTTMP		EQUALS	PACTTMP	+2	# B(2)
+CNTRTMP		EQUALS	YACTTMP	+2	# B(1)
+STRKTTMP	EQUALS	CNTRTMP	+1	# B(1)
+DELBRTMP	EQUALS	STRKTTMP +1	# B(2)
+ERRBTMP		EQUALS	DELBRTMP +2	# B(2)
+CMDTMP		EQUALS	ERRBTMP	+2	# B(2)
+
+TMP1		EQUALS	CMDTMP	+2	# B(2)
+TMP2		EQUALS	TMP1	+2	# B(2)
+TMP3		EQUALS	TMP2	+2	# B(2)
+TMP4		EQUALS	TMP3	+2	# B(2)
+TMP5		EQUALS	TMP4	+2	# B(2)
+TMP6		EQUALS	TMP5	+2	# B(2)
+
+# TVC DAP FILTER COEFFICIENTS TEMPORARIES
+COEFFADR	EQUALS	TMP6	+2	# B(1)
+N10		EQUALS	COEFFADR +1	# I(15)
+# Page 107
+
+# OVERLAYS WITHIN TVC DAP
+
+OGARATE		=	OMEGAB		# B(2)
+
+PHASETMP	=	TTMP1		# B(1) RESTART FOR CSM/LM V46 SWITCH-OVER
+RTRNLOC		=	TTMP2		# B(1) RESTART FOR CSM/LM V46 SWITCH-OVER
+BZERO		=	ERRBTMP
+CZERO		=	ERRBTMP
+JZERO		=	CMDTMP
+YZERO		=	CMDTMP
+
+# 540.9 STORAGE .............
+
+NBRCYCLS	EQUALS	N10	+15D	# B(1) COUNTER FOR P40,41 STEERING
+NBRCYCLP	EQUALS	NBRCYCLS +1	# B(1) MAINTAIN ORDER
+DELVSUM		EQUALS	NBRCYCLP +1	# I(6) P40,P41
+DELVSUMP	EQUALS	DELVSUM	+6	# I(6) P40,P41
+
+# Page 108
+# **** RCS DAP TEMPORARY VARIABLES. ********************	(95D)
+
+# ** RCS INTERRUPT TRUE TEMPS ***************	(15D)
+SPNDX		EQUALS	INTTEMP		# B(1)
+DPNDX		EQUALS	SPNDX	+1	# B(1)TMP
+KMPAC		EQUALS	DPNDX	+1	# B(2)TMP
+KMPTEMP		EQUALS	KMPAC	+2	# B(1)TMP
+
+XNDX1		EQUALS	KMPTEMP	+1	# B(1)TMP XNDX1 THRU NYJETS ARE OVERLAYED
+XNDX2		EQUALS	XNDX1	+1	# B(1)TMP BY OTHER DAP ERASABLES SO
+YNDX		EQUALS	XNDX2	+1	# B(1)TMP SHOULD ALWAYS BE DEFINED IN
+ZNDX		EQUALS	YNDX	+1	# B(1)TMP A BLOCK
+RINDEX		EQUALS	ZNDX	+1	# B(1)TMP
+PINDEX		EQUALS	RINDEX	+1	# B(1)TMP
+YINDEX		EQUALS	PINDEX	+1	# B(1)TMP
+NRJETS		EQUALS	YINDEX	+1	# B(1)TMP
+NPJETS		EQUALS	NRJETS	+1	# B(1)TMP
+NYJETS		EQUALS	NPJETS	+1	# B(1)TMP
+
+WTEMP		EQUALS	XNDX1		# B(2)TMP WTEMP THRU DELTEMPZ OVERLAY
+DELTEMPX	EQUALS	WTEMP	+2	# B(2)TMP XNDX1 THRU NRJETS AND EDOT THRU
+DELTEMPY	EQUALS	DELTEMPX +2	# B(2)TMP ADBVEL
+DELTEMPZ	EQUALS	DELTEMPY +2	# B(2)TMP
+
+EDOT		EQUALS	YNDX		# B(2)TMP EDOT THRU ADBVEL OVERLAY
+AERR		EQUALS	EDOT	+2	# B(1)TMP YNDX THRU NPJETS AND DELTEMPX
+EDOTVEL		EQUALS	AERR	+1	# B(2)TMP THRU DELTEMPZ
+AERRVEL		EQUALS	EDOTVEL	+2	# B(1)TMP
+ADBVEL		EQUALS	AERRVEL	+1	# B(1)TMP
+
+# *** REGULAR RCS TEMPS *********************	(   ).
+
+# *** RCS ZEROING LOOP STARTS HERE **********	(37)
+WBODY		EQUALS	TVCRCS		# B(2)TMP
+WBODY1		EQUALS	WBODY	+2	# B(2)TMP
+WBODY2		EQUALS	WBODY	+4	# B(2)TMP
+ADOT		EQUALS	WBODY2	+2	# B(2)TMP
+ADOT1		EQUALS	ADOT	+2	# B(2)TMP
+ADOT2		EQUALS	ADOT1	+2	# B(2)TMP
+
+MERRORX		EQUALS	ADOT2	+2	#  (2)
+MERRORY		EQUALS	MERRORX	+2	#  (2)
+MERRORZ		EQUALS	MERRORY	+2	#  (2)
+DFT		EQUALS	MERRORZ	+2	# B(1)TMP
+DFT1		EQUALS	DFT	+1	# B(1)TMP
+DFT2		EQUALS	DFT1	+1	# B(1)TMP
+DRHO		EQUALS	DFT2	+1	# B(2)TMP
+DRHO1		EQUALS	DRHO	+2	# B(2)TMP
+# Page 109
+DRHO2		EQUALS	DRHO1	+2	# B(2)TMP
+ATTSEC		EQUALS	DRHO2	+2	# B(1)TMP
+TAU		EQUALS	ATTSEC	+1	# B(1)TMP
+TAU1		EQUALS	TAU	+1	# B(1)TMP
+TAU2		EQUALS	TAU1	+1	# B(1)TMP
+BIAS		EQUALS	TAU2	+1	# B(1)TMP
+BIAS1		EQUALS	BIAS	+1	# B(1)TMP
+BIAS2		EQUALS	BIAS1	+1	# B(1)TMP
+ERRORX		EQUALS	BIAS2	+1	# B(1)TMP
+ERRORY		EQUALS	ERRORX	+1	# B(1)TMP
+ERRORZ		EQUALS	ERRORY	+1	# B(1)TMP
+
+# RCS ZERO LOOP ENDS HERE
+#	MORE RCS			(69D)
+THETADX		EQUALS	ERRORZ	+1	# B(1)TMP MUST BE CONSECUTIVE WITH ERRORZ
+THETADY		EQUALS	THETADX	+1	# B(1)TMP
+THETADZ		EQUALS	THETADY	+1	# B(1)TMP
+
+DELCDUX		EQUALS	THETADZ	+1	# B(2)TMP
+DELCDUY		EQUALS	DELCDUX	+2	# B(2)TMP
+DELCDUZ		EQUALS	DELCDUY	+2	# B(2)TMP
+
+DCDU		EQUALS	DELCDUZ	+2	# B(6)TMP USED DURING P20
+DTHETASM	EQUALS	DCDU	+6	# B(6)TMP STEER LOW OUTPUT.
+
+ATTKALMN	EQUALS	DTHETASM +6	# B(1)TMP
+KMJ		EQUALS	ATTKALMN +1	# B(1)TMP
+KMJ1		EQUALS	KMJ	+1	# B(1)TMP
+KMJ2		EQUALS	KMJ1	+1	# B(1)TMP
+J/M		EQUALS	KMJ2	+1	# B(1)TMP
+J/M1		EQUALS	J/M	+1	# B(1)TMP
+J/M2		EQUALS	J/M1	+1	# B(1)TMP
+RACFAIL		EQUALS	J/M2	+1	# B(1)TMP
+RBDFAIL		EQUALS	RACFAIL	+1	# B(1)TMP
+ACORBD		EQUALS	RBDFAIL	+1	# B(1)TMP
+XTRANS		EQUALS	ACORBD	+1	# B(1)TMP
+CH31TEMP	EQUALS	XTRANS	+1	# B(1)TMP
+CHANTEMP	EQUALS	CH31TEMP +1	# B(1)TMP
+T5TIME		EQUALS	CHANTEMP +1	# B(1)TMP
+RHO		EQUALS	T5TIME	+1	# B(1)TMP
+RHO1		EQUALS	RHO	+1	# B(1)TMP
+RHO2		EQUALS	RHO1	+1	# B(1)TMP
+AMGB1		EQUALS	RHO2	+1	# B(1)TMP
+AMGB4		EQUALS	AMGB1	+1	# B(1)TMP
+# Page 110
+AMGB5		EQUALS	AMGB4	+1	# B(1)TMP
+AMGB7		EQUALS	AMGB5	+1	# B(1)TMP
+AMGB8		EQUALS	AMGB7	+1	# B(1)TMP
+CAPSI		EQUALS	AMGB8	+1	# B(1)TMP
+CDUXD		EQUALS	CAPSI	+1	# B(2)TMP
+CDUYD		EQUALS	CDUXD	+2	# B(2)TMP
+CDUZD		EQUALS	CDUYD	+2	# B(2)TMP
+SLOPE		EQUALS	CDUZD	+2	# B(1)TMP
+ADB		EQUALS	SLOPE	+1	# B(1)TMP
+RMANNDX		EQUALS	ADB	+1	# B(1)TMP
+PMANNDX		EQUALS	RMANNDX	+1	# B(1)TMP
+YMANNDX		EQUALS	PMANNDX	+1	# B(1)TMP MUST BE LAST VARIABLE IN RCS
+
+# Page 111
+# ********** ENTRY DAP TEMPORARY VARIABLES. *********************	(69D)
+
+# ANGLE REGISTERS FOR ENTRY DAPS
+AOG		EQUALS	BCDU		# 1P
+AIG		EQUALS	AOG	+1	# 1P
+AMG		EQUALS	AIG	+1	# 1P
+ROLL/180	EQUALS	AMG	+1	# 1P
+ALFA/180	EQUALS	ROLL/180 +1	# 1P
+BETA/180	EQUALS	ALFA/180 +1	# 1P
+AOG/PIP		EQUALS	BETA/180 +1	# 1P
+AIG/PIP		EQUALS	AOG/PIP	+1	# 1P
+AMG/PIP		EQUALS	AIG/PIP	+1	# 1P
+ROLL/PIP	EQUALS	AMG/PIP	+1	# 1P
+ALFA/PIP	EQUALS	ROLL/PIP +1	# 1P
+BETA/PIP	EQUALS	ALFA/PIP +1	# 1P
+
+# GYMBAL DIFFERENCES OVER INTERNAL TCDU = .1 SEC.
+-DELAOG		EQUALS	BETA/PIP +1	# 1P
+-DELAIG		EQUALS	-DELAOG	+1	# 1P
+-DELAMG		EQUALS	-DELAIG	+1	# 1P
+
+# ESTIMATED BODY RATES
+CMDAPMOD	EQUALS	-DELAMG	+1	# 1P GOES BEFORE PREL FOR TM.
+
+PREL		EQUALS	CMDAPMOD +1	# 1P P TCDU/180		(ROLLDOT)
+QREL		EQUALS	PREL	+1	# 1P Q TCDU/180		(PITCHDOT)
+RREL		EQUALS	QREL	+1	# 1P R TCDU/180		(YAWDOT)
+
+BETADOT		EQUALS	RREL	+1	# 1P MUST FOLLOW RREL. BETADOT TCDU/180
+PHIDOT		EQUALS	BETADOT	+1	# 1P
+
+# OLD (UNAVERAGED) BODY RATE MEASURE
+OLDELP		EQUALS	PHIDOT	+1	# 1P
+OLDELQ		EQUALS	OLDELP	+1	# 1P
+OLDELR		EQUALS	OLDELQ	+1	# 1P
+
+JETAG		EQUALS	OLDELR	+1	# 1P
+TUSED		EQUALS	JETAG	+1	# 1P ELAPSED TIME SINCE NOMINAL UPDATE.
+
+# FOLLOWING 3 SP WORDS IN DOWNLINK.  ROLLTM SENT EACH 1 SEC.
+PAXERR1		EQUALS	TUSED	+1	# 1P INTEGRATED ROLL ERROR/360.
+ROLLTM		EQUALS	PAXERR1	+1	# 1P ROLL/180 FOR TM.
+ROLLC		EQUALS	ROLLTM	+1	# 2P ROLLCOM/360 FROM ENTRY (FOR TM)
+					# KEEP ROLLC & ROLLHOLD ADJACENT FOR TP
+# Page 112
+ROLLHOLD	EQUALS	ROLLC	+2	# 1P FOR ATTITUDE HOLD IN CMDAPMOD = +1
+
+# ENTRY DAP QUANTITIES THAT SHARE WITH RCS DAP.
+ALFACOM		EQUALS	DCDU		# 1P KEEP ADJACENT TO BETACOM. <<
+BETACOM		EQUALS	ALFACOM +1	# 1P
+
+# JET LIST.  DT, JETBITS IN THIS ORDER.
+TOFF		EQUALS	BETACOM +1	# 1P DP PAIR
+TBITS		EQUALS	TOFF	+1	# 1P
+TON2		EQUALS	TBITS	+1	# 1P DP PAIR
+T2BITS		EQUALS	TON2	+1	# 1P
+
+# MISCELLANEOUS PERMANENT ERASABLE.
+OUTTAG		EQUALS	T2BITS	+1	# 1P
+NUJET		EQUALS	OUTTAG	+1	# 1P
+
+# MORE ENTRY DAP QUANTITIES THAT DO NOT SHARE WITH RCS DAP.
+JETEM		EQUALS	ROLLHOLD +1	# 2P THIS DP USED IN RATEAVG
+GAMA		EQUALS	JETEM	+2	# 1P
+GAMDOT		EQUALS	GAMA	+1	# 1P
+POSEXIT		EQUALS	GAMDOT	+1	# 1P
+CM/GYMDT	EQUALS	POSEXIT	+1	# 1P
+HEADSUP		EQUALS	CM/GYMDT +1	# 1P DSP NOUN 61 FOR P62,63,64,67.
+P63FLAG		EQUALS	HEADSUP	+1	# 1P INTERLOCK FOR WAKEP62
+
+					#>> SHARE BELOW WITH RCS RUPT TEMPS (< 15D) <<<
+CALFA		EQUALS	SPNDX		# 1P
+SALFA		EQUALS	CALFA	+1	# 1P
+
+SINM		EQUALS	SALFA	+1	# 1P
+COSM		EQUALS	SINM	+1	# 1P
+SINO		EQUALS	COSM	+1	# 1P
+COSO		EQUALS	SINO	+1	# 1P
+SINOCOSM	EQUALS	COSO	+1	# 1P
+COSOCOSM	EQUALS	SINOCOSM +1	# 1P
+					#>> SHARE ABOVE WITH RCS RUPT TEMPS <<<
+
+# THE FOLLOWING FEW REGISTERS USED ONCE EACH 2 SEC
+-VT/180		EQUALS	NUJET	+1	# 1P
+LCX/360		EQUALS	-VT/180	+1	# 1P
+XD/360		EQUALS	LCX/360	+1	# 1P
+VSQ/4API	EQUALS	XD/360	+1	# 1P
+JNDX		EQUALS	VSQ/4API +1	# 1P
+JNDX1		EQUALS	JNDX	+1	# 1P
+# Page 113
+TON1		EQUALS	JNDX1	+1	# 1P DP PAIR
+T1BITS		EQUALS	TON1	+1	# 1P
+
+# MISCELLANEOUS REGISTERS USED EACH UPDATE.
+CM/SAVE		EQUALS	T1BITS	+1	# 1P
+JETEM2		EQUALS	CM/SAVE	+1	# 1P TEMPORARY STORAGE
+
+# DAP QUANTITIES SHARED WITH RCS DAP FOR TM & FLIGHT RECORDER.
+VDT/180		=	ERRORX		# 1P (EDIT)
+-VT/180E	=	ERRORY		# 1P (EDIT)
+
+PAXERR		EQUALS	AK		# 1P ROLL ERROR FOR NEEDLES
+QAXERR		=	THETADX		# 1P SINCE AK1 IS ZEROED IN ATM DAP.
+RAXERR		=	QAXERR	+1	# 1P SINCE AK2 IS ZEROED IN TM DAP.
+
+# *** COLMANU (R60,R62) ****
+VECQTEMP	EQUALS	COFSKEW
+
+# Page 114
+# ******** KALCMANU VARIABLES. (71D) *******************************
+BCDU		EQUALS	YMANNDX	+1	# B(3)TMP
+KSPNDX		EQUALS	BCDU	+3	# B(1)TMP
+KDPNDX		EQUALS	KSPNDX	+1	# B(1)TMP
+
+TMIS		EQUALS	KDPNDX	+1	# I(18) MUST BE IN THE SAME BANK AS RCS DAP
+COFSKEW		EQUALS	TMIS	+18D	# I(6) MUST BE IN THE SAME BANK AS RCS DAP
+CAM		EQUALS	COFSKEW	+6	# I(2) MUST BE IN THE SAME BANK AS RCS DAP
+
+MIS		EQUALS	CAM	+2	# I(18)	(THE REST MAY GO ANYWHERE)
+COF		EQUALS	MIS	+18D	# I(6)TMP
+SCAXIS		EQUALS	COF	+6	# I(6)TMP
+POINTVSM	EQUALS	SCAXIS	+6	# I(6)TMP
+AM		EQUALS	POINTVSM +6	# I(2)TMP
+RAD		EQUALS	AM	+2	# I(2)TMP
+
+# FIRST-ORDER OVERLAYS IN KALCMANU
+KV1		EQUALS	TMIS		# I(6)TMP
+MFISYM		EQUALS	TMIS		# I   TMP
+TMFI		EQUALS	TMIS		# I   TMP
+NCDU		EQUALS	TMIS		# B   TMP
+NEXTIME		EQUALS	TMIS	+3	# B   TMP
+TTEMP		EQUALS	TMIS	+4	# B   TMP
+KV2		EQUALS	TMIS	+6	# I(6)TMP
+BIASTEMP	EQUALS	TMIS	+6	# B   TMP
+KV3		EQUALS	TMIS	+12D	# I(6)TMP
+CGF		EQUALS	TMIS	+12D	# I   TMP
+
+BRATE		EQUALS	COFSKEW		# B   TMP
+TM		EQUALS	CAM		# B   TMP
+
+# SECOND-ORDER OVERLAYS IN KALCMANU
+P21		EQUALS	KV1		# I(2)TMP
+D21		EQUALS	KV1	+2	# I(2)TMP
+G21		EQUALS	KV1	+4	# I(2)TMP
+
+# SATURN BOOST STORAGE.  SAVE TILL RCS DAP OPERATION.	(17D)
+POLYNUM		EQUALS	BCDU		# B(15) PAD LOADED
+POLYLOC		=	POLYNUM	+10D
+SATRLRT		EQUALS	POLYNUM	+15D	# B(2)  PAD LOADED
+
+# MORE P11 STORAGE --PAD LOADED--	(2D)
+# Page 115
+# (NOTE:  THIS PAD LOAD WILL NOT BE PRESERVED THROUGHOUT THE MISSION AS IT SHARES STORAGE WITH KALCMANU,
+# ENTRY DAP AND TVC DAP)
+RPSTART 	EQUALS	SATRLRT	+2	# B(1) PITCH ROLL START TIME
+POLYSTOP	EQUALS	RPSTART	+1	# B(1) POLYCUT OFF MINUS RPSTART SEC
+
+# STORAGE FOR VHHDOT AND ATTDSP
+BODY3		EQUALS	POLYSTOP +1	# B(1)OUT
+BODY2		EQUALS	BODY3	+1	# B(1)OUT
+BODY1		EQUALS	BODY2	+1	# B(1)OUT
+SPOLYARG	EQUALS	BODY1	+1	# B(1)TMP ARGUMENT FOR POLLY
+
+OLDBODY1	=	EDRIVEX		# 1 PULSE = 0.0432 DEGREES
+OLDBODY2	=	EDRIVEY
+OLDBODY3	=	EDRIVEZ
+
+# STORAGE FOR S11.1
+VDISP		EQUALS	SPOLYARG +1	# I(2)OUT	2(7) M/CS
+HDISP		EQUALS	VDISP	+2	# I(2)OUT	2(29) M
+HDOTDISP	EQUALS	HDISP	+2	# I(2)OUT	2(7) M/CS
+BOOSTEMP	EQUALS	HDOTDISP +2	# B(3)TEMP
+
+# P11 SATURN I/F			(9D)
+SATRATE		EQUALS	BOOSTEMP +3	# B(4)PL MANEUVER RATES FOR SATURN STICK
+SATSW		EQUALS	SATRATE	+4	# B(1)TEM STATUS SW FOR BOOST TAKEOVER
+BIASAK		EQUALS	SATSW	+1	# B(3)TEM STOR AKBIAS FOR BOOST TAKEOVER
+SATSCALE	EQUALS	BIASAK	+3	# B(1) SCALE FACTOR FOR SATURN STEERING
+
+# P21 STORAGE.				(1D)
+GENRET		EQUALS	RAD	+2	# B(1)TMP
+
+# R61CSM STORAGE.			(1D)
+SAVBNK		EQUALS	GENRET	+1	# B(1) S-S SAVE EBANK FOR R61 SUBROUTINE
+
+# CRS61.1 STORAGE FOR AUTOPILOT BANK.	(3D)
+SAVEDCDU	EQUALS	SAVBNK	+1	# B(3)TMP
+
+# R61 STORAGE.				(1D)
+# Page 116
+R61CNTR		EQUALS	SAVEDCDU +3	#  (1)TMP
+
+# ENTRY RESTART PROTECTION STORAGE.  --KEEP TEMPS IN ORDER--	(12D)
+TEMPROLL	EQUALS	GENRET		# B(1)TMP COPY CYCLE REGISTER
+TEMPALFA	EQUALS	TEMPROLL +1	# B(1)TMP COPY CYCLE REGISTER
+TEMPBETA	EQUALS	TEMPALFA +1	# B(1)TMP COPY CYCLE REGISTER
+60GENRET	EQUALS	TEMPBETA +1	# B(1)TMP QSAVE FOR S61.1 AND ENTRY.
+S61DT		EQUALS	60GENRET +1	# B(1)TMP VARIABLE DT FOR S61.1 RESTART.
+
+# ENTRY TM SHARING FOR ACCELERATION PROFILE.
+XPIPBUF		EQUALS	ADOT		# B(1) PIPA BUFFER FOR TM DURING ENTRY.
+YPIPBUF		EQUALS	XPIPBUF	+1	# B(1) PIPS FILED HERE EACH .5 SEC APPEAR
+ZPIPBUF		EQUALS	YPIPBUF	+1	# B(1) ON DOWNLIST ONCE PER SECOND DURING
+XOLDBUF		EQUALS	ZPIPBUF +1	# B(1) ENTRY AFTER RCS DAP HAS BEEN DIS-
+YOLDBUF		EQUALS	XOLDBUF +1	# B(1) ABLED.  NEWEST PIP VALUE REPLACES
+ZOLDBUF		EQUALS	YOLDBUF	+1	# B(1) PIPBUF, WHICH IS MOVED INTO OLDBUF.
+
+# REENTRY VARIABLES SHARED WITH RCS DAP FOR TM & FLIGHT RECORDER.
+Q7		=	THETADZ		# I(2) HI-WORD ONLY ON DNLIST.
+ASPS(TM)	=	WBODY		# I(6)DWN
+					#	ASKEP, ASP1, ASPUP, ASPDN, ASP3, ASP3+1
+
+# P37 PAD LOADS				(1)
+P37RANGE	EQUALS	R61CNTR	+1	# I(1)PL	*****		
+
+END-E6		=	P37RANGE +1	# FIRST UNUSED ERASABLE LOCATION IN E6
+
+# Page 117
+# EBANK-7 ASSIGNMENTS
+
+		SETLOC	3400
+
+# *-*-*-*- OVERLAY NUMBER 0 IN EBANK 7 -*-*-*-*
+
+# EXTERNAL DELTA-V UPDATE.		(21D)
+# (MUST BE IN ORDER FOR UPDATE PROGRAM.  ALSO ENTRY PROGRAM PICK UP 'LAT(SPL' WITH A VLOAD.)
+
+LAT(SPL)	ERASE	+20D		# I(2)DSP NOUN 61 FOR P62,63,64,67
+LNG(SPL)	EQUALS	LAT(SPL) +2	# I(2)DSP NOUN 61 FOR P62,63,64,67
+
+DELVSLV		EQUALS	LNG(SPL) +2	# I(6)TMP DELTA VEL VECT, LOC VER COORDS
+TIG		EQUALS	DELVSLV	+6	# B(2)DSP NOUN 33 FOR X-V84(R32),P30,40.
+RTARG		EQUALS	TIG	+2	# I(6)IN DESIRED VEHICLE RADIUS VECTOR
+DELLT4		EQUALS	RTARG	+6	# I(2)IN TIME DIFFERENCE FOR INITVEL
+ECSTEER		EQUALS	DELLT4	+2	# I(1)PL FOR P40'S
+DELVLVC		=	DELVSLV
+END-DELV	ERASE			# *NEXT AVAIL LOC AFTER UNSHARED E7*
+
+# SERVICER STORAGE.			(13D)
+DVTOTAL		EQUALS	END-DELV	# B(2)DSP NOUN 40,99 FOR P30,34,35,40
+TGO		EQUALS	DVTOTAL	+2	# B(2)
+DVCNTR		EQUALS	TGO	+2	# B(1)TMP
+DELVREF		EQUALS	DVCNTR	+1	# I(6)TMP
+
+NOMTIG		EQUALS	END-KALC	# I(2) (CANNOT SHARE WITH KALCMANU
+					#       OR DELVREF)
+END-SVCR	EQUALS	NOMTIG	+2	# ***NEXT AVAILABLE AFTER SERVICER
+
+# ALIGNMENT STORAGE.			(25D)
+XSCD		EQUALS	END-SVCR	# I(6)TMP
+YSCD		EQUALS	XSCD	+6	# I(6)TMP
+ZSCD		EQUALS	YSCD	+6	# I(6)TMP
+VEL/C		EQUALS	ZSCD	+6	# I(6)TMP
+R53EXIT		EQUALS	VEL/C	+6	# I(1)TMP
+
+# ALIGNMENT MARKDATA (DOWNLINK) *******	(7D)
+MARK2DWN	EQUALS	R53EXIT	+1	#  (7) USED BY ALIGNMENT P50'S
+
+# Page 118
+# *-*-*-*- OVERLAY NUMBER 1 IN EBANK 7 -*-*-*-*
+
+# REENTRY ERASABLES.			(206D)
+RTINIT		EQUALS	END-SVCR	# 6P
+RTEAST		EQUALS	RTINIT	+6	# 6P
+RTNORM		EQUALS	RTEAST	+6	# 6P
+RT		EQUALS	RTNORM	+6	# 6P
+UNI		EQUALS	RT	+6	# 6P
+UNITV		EQUALS	UNI	+6	# 6P
+VEL		EQUALS	UNITV	+6	# 6P
+
+TIME/RTO	EQUALS	VEL	+6	# 2P TIME OF INITIAL TARGET, RTO.
+-VREL		EQUALS	TIME/RTO +2	# 6P
+OLDUYA		EQUALS	-VREL 	+6	# 6P USED BY CM/POSE	(ENTRY DAP)
+UXA/2		EQUALS	OLDUYA	+6	# 6P USED BY CM/POSE	(ENTRY DAP) -UVA
+URH		=	UXA/2		#	P67 DISPLAY NOUN
+UYA/2		EQUALS	UXA/2	+6	# 6P USED BY CM/POSE	(ENTRY DAP) UYA
+UZA/2		EQUALS 	UYA/2	+6	# 6P USED BY CM/POSE	(ENTRY DAP) UNA
+UBX/2		EQUALS	UZA/2	+6	# 6P USED BY CM/POSE	(ENTRY DAP)
+UBY/2		EQUALS	UBX/2	+6	# 6P USED BY CM/POSE	(ENTRY DAP)
+UBZ/2		EQUALS	UBY/2	+6	# 6P USED BY CM/POSE	(ENTRY DAP)
+
+DTEAROT		EQUALS	UBZ/2	+6	# 2P
+DIFF		EQUALS	DTEAROT	+2	# 2P
+DIFFOLD		EQUALS	DIFF	+2	# 2P
+FACTOR		EQUALS	DIFFOLD	+2	# 2P
+FACT1		EQUALS	FACTOR	+2	# 2P
+FACT2		EQUALS	FACT1	+2	# 2P
+#Q7		=	THETAD2		# 2P SHARED FOR TM.  P64-P66
+VSQUARE		EQUALS	FACT2	+2	# 2P
+LAD		EQUALS	VSQUARE	+2	# 2P
+LOD		EQUALS	LAD	+2	# 2P
+L/DCMINR	EQUALS	LOD	+2	# 2P
+KLAT		EQUALS	L/DCMINR +2	# 2P
+L/D		EQUALS	KLAT	+2	# 2P
+L/D1		EQUALS	L/D	+2	# 2P
+LEWD		=	VIO		# 2P SHARED FOR TM.  P64-P65
+D		EQUALS	L/D1	+2	# 2P DSP NOUN 64,66,68 FOR P63,64,67
+#V1		=	ENDBUF	+1	# 2P SHARED FOR TM. P64-P65
+DLEWD		EQUALS	D	+2	# 2P
+K2ROLL		EQUALS	DLEWD	+2	# 2P
+GOTOADDR	EQUALS	K2ROLL	+2	# 1P
+TEM1B		EQUALS	GOTOADDR +1	# 2P
+MM		EQUALS	TEM1B	+2	# 2P
+GRAD		EQUALS	MM	+1	# 2P
+FX		EQUALS	GRAD	+1	# 1P OVERWRITES NEXT 5 LOCS IN P67
+LEQ		EQUALS	FX	+1	# 2P
+DHOOK		EQUALS	LEQ	+2	# 2P
+AHOOKDV		EQUALS	DHOOK	+2	# 2P
+# Page 119
+DVL		EQUALS	AHOOKDV	+2	# 2P
+#A0		=	ENDBUF	+3	# 2P SHARED FOR TM. (HI-WD) P84-P85
+A1		EQUALS	DVL	+2	# 2P
+VBARS		EQUALS	A1	+2	# 2P
+COSG/2		EQUALS	VBARS	+2	# 2P
+#GAMMAL		=	GAMMAEI		# 2P SHARED FOR TM.  P64
+GAMMAL1		=	22D		# 2P
+VS1		EQUALS	COSG/2	+2	# 2P
+VL		=	VPRED		# 2P SHARED FOR TM.  P64-P65
+V		EQUALS	VS1	+2	# 2P
+#VREF		=	THETAD	+2	# 2P SHARED FOR TM.  P65
+LATANG		EQUALS	V	+2	# 2P ADJACENT FOR TM.
+RDOT		EQUALS	LATANG	+2	# 2P ADJACENT FOR TM.
+THETAH		EQUALS	RDOT	+2	# 2P DSP NOUN 64,67 FOR P63,64,67
+#RDOTREF	=	THETAD		# 2P SHARED FOR TM.  P65
+ALP		EQUALS	THETAH	+2	# 2P
+
+ASKEP		=	ASPS		# 2P)		     THESE ARE STORED IN
+ASP1		=	ASPS	+1	# 2P)		     SEQUENCE, OVERLAPPING
+ASPUP		=	ASPS	+2	# 2P)>HI-WD OF EACH< HI-WORD ONLY APPEARING
+ASPDWN		=	ASPS	+3	# 2P)		     ON DOWNLIST, EXCEPT 
+ASP3		=	ASPS	+4	# 2P)		     ASP3 IS COMPLETE.
+
+C/D0		EQUALS	ALP	+2	# 2P	-1/D0
+D0		EQUALS	C/D0	+2	# I(2)	CONSTANT DRAG
+Q2		EQUALS	D0	+2	# 2P
+
+# ROLLC IS LOCATED IN EBANK= AOG TO AID ENTRY DAP.
+RTGO		EQUALS	Q2	+2	# 2P DSP NOUN 66 FOR P64,P67
+DNRNGERR	EQUALS	RTGO	+2	# 2P DSP NOUN 66 FOR P64,67
+XRNGERR		=	LATANG		#	FOR DISKY DISPLAY
+KAT		EQUALS	DNRNGERR +2	# 2P
+GMAX		EQUALS	KAT	+2	# 1P DSP NOUN 60 FOR P61,62,63
+					# GMAX IS LOADED IN DOUBLE PRECISION.
+L/DCALC		=	TTE		# 2P CALCULATED L/D FOR TM: P64-P67.
+GAMMAL		=	GAMMAEI		# 2P SHARED FOR TM.  P64.
+PREDANG		=	GAMMAEI		#	FOR TM IN P67.
+JJ		=	PREDANG	+1	#	FOR TM IN P67.
+VMAGI		EQUALS	GMAX	+1	# 2P DSP NOUN 62,64,66 FOR P11,63,64.
+VIO		EQUALS	VMAGI	+2	# 2P DSP NOUN 63 FOR P61.
+TTE		EQUALS	VIO	+2	# 2P DSP NOUN 63 FOR P61.
+ASPS		EQUALS	TTE	+2	# I(2) HI-WORD ONLY ON DNLIST FOR TEMP
+TTE1		EQUALS	ASPS	+2	# I(2)TMP HOLDS UNDECREMENTED TTE VALUE
+
+# **** P6O'S ****
+RTGON64		EQUALS	RTGO		# RANGE ERRORS NEGATIVE IF FALLS SHORT
+# Page 120
+RTGON67		EQUALS	RTGO		# DSP NOUN 67
+
+# REENTRY, RETURN TO EARTH COMMON DISPLAY	(4D)
+VPRED		EQUALS	BETA12	+2	# DSP NOUN 60 FOR P61,62,63
+GAMMAEI		EQUALS	VPRED	+2	# DSP NOUN 60 FOR P61,62,63
+
+# DISPLAY REGISTER FOR VG		(2D)
+VGDISP		EQUALS	GAMMAEI	+2	# B(2)DSP N.40,42,99 FOR P30,34,35,37,40,
+					#	    41 VG DISPLAY
+
+# SOME P11 DISPLAY REGISTERS		(6D)
+ALTI		EQUALS	TTE1	+2	# 2P DSP NOUN 62 FOR P11.
+HDOT		EQUALS	ALTI	+2	# 2P DSP NOUN 62 FOR P11.
+
+# Page 121
+# *-*-*-*- OVERLAY NUMBER 2 IN EBANK 7 -*-*-*-*
+
+# KALCMANU STORAGE.				(18D)
+MFS		EQUALS	END-DELV	# I(18)
+MFI		EQUALS	MFS		# I    TMP
+DEL		EQUALS	MFS		# I    TMP
+END-KALC	EQUALS	MFS	+18D	# **NEXT AVAIL LOC AFTER KALCMANU**
+
+# MEASUREMENT INCORPORATION STORAGE (R22) STORAGE.	(56D)
+
+TX789		EQUALS	END-KALC	# I(6)TMP
+GAMMA		EQUALS	TX789 	+6	# I(3)TMP
+OMEGA		EQUALS	GAMMA 	+2	# I(18)TMP
+BVECTOR		EQUALS	OMEGA 	+18D	# I(18)TMP
+DELTAQ		EQUALS	BVECTOR +18D	# I(2)TMP
+VARIANCE	EQUALS	DELTAQ 	+2	# I(3)TMP
+RCLP		EQUALS	VARIANCE +3	# I(6)TMP
+GRP2SVQ		EQUALS	RCLP 	+6	# I(1)TMP QSAVE FOR RESTARTS
+
+# P20, P22, P23 DSP NOUN		(5D)
+N49DISP		EQUALS	BVECTOR		# B(5)TMP
+
+# S22.1 STORAGE.			(36D)
+SVMRKDAT	EQUALS	GRP2SVQ	+1	# I(36)TMP 5 SETS OF MARK DATA +PAD OF ONE
+
+# **** CISLUNAR NAV.  ERAS.  (P20'S) ****	(45D)
+TRUNX		EQUALS	SVMRKDAT +36D
+DATATEST	EQUALS	TRUNX		#  (1)
+UBAR0		EQUALS	TRUNX	+1
+UBAR1		EQUALS	UBAR0	+6
+UBAR2		EQUALS	UBAR1	+6
+RZC		EQUALS	UBAR2	+6
+VZC		EQUALS	RZC	+6
+UCLSTAR		EQUALS	VZC	+6
+USSTAR		EQUALS	UCLSTAR	+6
+SRRETURN	EQUALS	USSTAR	+6
+
+# Page 122
+# *-*-*-*- OVERLAY NUMBER 3 IN EBANK 7 -*-*-*-*
+
+# RENDEZVOUS GUIDANCE STORAGE. -- P32 ... P35 --	(8D)
+DELTEEO		EQUALS	END-KALC	# I(2) S-S BACK VALUES OF DELTA TIME
+DELEL		EQUALS	DELTEEO	+2	# I(2) S-S
+SECMAX		EQUALS	DELEL	+2	# I(2) S-S MAX STOP SIZE FOR ROUTINE
+XXXALT		EQUALS	SECMAX	+2	# I(2)
+
+# S40.9 STORAGE				(16D)
+VG		EQUALS	XXXALT	+2	# I(6)TMP
+VRPREV		EQUALS	VG	+6	# I(6)
+TNIT		EQUALS	VRPREV	+6	# I(2)
+TNITPREV	EQUALS	TNIT	+2	# I(2)
+
+# S40.2,3 STORAGE.			(1D)
+AXISCODE	EQUALS	TNITPREV +2	# I(1)IN
+
+# P30'S-P17 COMMON STORAGE.		(24D)
+RACT3		EQUALS	GRP2SVQ	+1	# I(6)TMP POSITION OF ACTIE AT TPI TIME.
+VACT3		EQUALS	RACT3	+6	# I(6)TMP VELOCITY OF ACTIVE AT TPI TIME.
+RPASS3		EQUALS	VACT3	+6	# I(6)TMP POSITION OF PASSIVE AT TPI TIME.
+VPASS3		EQUALS	RPASS3	+6	# I(6)TMP VELOCITY OF PASSIVE AT TPI TIME.
+
+# P76, N84 DISPLAY			(6D)
+DELVOV		EQUALS	RACT3		# I(6)DSP NOUN 84 FOR X-V84, P34-35
+
+# INITVEL/MIDGIM STORAGE.		(34D)
+#	(CALLED BY S34.1,2, S35.1,2, AND S40.9)
+#	(CALLS LAMBERT, CONIC SUBROUTINES)
+RINIT		EQUALS	VPASS3	+6	# I(6)IN ACTIVE VEHICLE RADIUS VECTOR
+VINIT		EQUALS	RINIT	+6	# I(6)IN ACTIVE VEHICLE VELOCITY VECTOR
+RTARG1		EQUALS	VINIT	+6	# I(6)TMP SHIFTED RTARG
+VIPRIME		EQUALS	RTARG1	+6	# I(6)OUT NEW VEL REQ AT INITIAL RADIUS
+VTPRIME		EQUALS	VIPRIME	+6	# I(6)OUT TOTAL VELOCITY AT DESIRED RADIUS
++MGA		EQUALS	VTPRIME	+6	# I(2)DSP NOUN 45 FOR P30,34,35.  +MID GIM.
+COZY4		EQUALS	+MGA	+2	# I(2)TMP COSINE OF ANGLE WHEN ROT STARTS
+
+# THE FOLLOWING OVERLAYS MEASUREMENT INCORP AND CANNOT SHARE WITH TPI
+# Page 123
+INTIME		EQUALS	AXISCODE +3
+ITCTR		EQUALS	INTIME	+2	# I(1)TMP ITERATION COUNTER
+END-IN/M	EQUALS	COZY4	+2	# ** NEXT AVAIL LOC AFTER INITVEL/MIDGIM **
+
+# P34 AND P33 STORAGE.  (OVERLAYS INITVEL/MIDGIM)	(24D)
+VAPREC		EQUALS	RINIT		# I(6) S-S PREC VEC FOR NOM TPI TIME (ACT V)
+RAPREC		EQUALS	VINIT		# I(6) S-S PREC VEC FOR NOM TPI TIME (ACT V)
+VPPREC		EQUALS	VIPRIME		# I(6) S-S PREC VEC FOR NOM TPI TIME (PASS)
+RPPREC		EQUALS	VTPRIME		# I(6) S-S PREC VEC FOR NOM TPI TIME (PASS)
+
+# P30, P40 INTERFACE.			(20D)
+RTIG		EQUALS	END-IN/M	# I(6)TMP
+VTIG		EQUALS	RTIG	+6	# I(6)TMP
+DELVSIN		EQUALS	VTIG	+6	# I(6)TMP
+DELVEET3	EQUALS	DELVSIN		#     TMP DELTA VEL VECT INERTIAL COORDS.
+VGTEMP		EQUALS	DELVEET3
+DELVSAB		EQUALS	DELVSIN	+6	# I(2)TMP
+
+# P35-P40 INTERFACE STORAGE.  (OVERLAYS P30-P40 I/F STORAGE)	(12D)
+RPASS4		EQUALS	RTIG		# I(6)TMP POSITION OF PASSIVE AT INTERCEPT
+VPASS4		EQUALS	RPASS4	+6	# I(6)TMP VELOCITY OF PASSIVE AT INTERCEPT
+
+# TPI SEARCH (P17)			(6D)
+E2		EQUALS	VPASS4	+6	# I(6)TMP
+
+# P30-P40 COMMON STORAGE.		(3D)
+TPASS4		EQUALS	DELVSAB	+2	# I(2)TMP
+TINT		=	TPASS4		# I(2)
+QTEMP		EQUALS	TPASS4	+2	# I(1)TMP
+
+# P30-P40 STORAGE.			(4D)
+TTOGO		EQUALS	QTEMP	+1	# B(2)DSP NOUN 35,40,45,59,99
+					#	  FOR P30,34,35,40,41,47, R30.
+TTPI		EQUALS	TTOGO	+2	# B(2)DSP NOUN 37 FOR P34 TPI TIME, CSECS.
+# Page 124
+END-P30S	EQUALS	TTPI	+2	# ** NEXT AVAIL LOC AFTER P30-40 STORAGE. **
+
+# P40 STORAGE.				(8D)
+VGBODY		EQUALS	END-P30S	# B(6)DSP NOUN 85 FOR P40,41,42 VG-SC COOR
+DELVCTL		=	VGBODY
+P40TMP		EQUALS	VGBODY	+6	# B(2)TMP
+
+# P47 STORAGE.
+DV47TEMP	EQUALS	VG
+DELVIMU		EQUALS	P40TMP	+2	# I(6)DSP NOUN 83 FOR P47 DELTAV(IMU).
+
+# S40.1 STORAGE.			(23D)
+CSTEER		EQUALS	DELVIMU	+6	# I(2)IN
+BDT		EQUALS	CSTEER	+2	# I(6)IN
+UT		EQUALS	BDT	+6	# I(6)OUT THRUST DIRECTION
+VGTIG		EQUALS	UT	+6	# I(6)OUT
+VGPREV		=	VGTIG
+F		EQUALS	VGTIG	+6	# I(2)OUT S40.3 NEEDS THIS
+
+QTEMP1		EQUALS	F	+2	# I(1)TMP HOLDS RETURN
+
+# R41					(2D)
+T-TO-ADD	EQUALS	QTEMP1	+1	# I(1D) FOR MIDTOAVE
+
+# Page 125
+# *-*-*-*- OVERLAY NUMBER 4 IN EBANK 7 -*-*-*-*
+
+# S35.1 STORAGE.			(2D)
+TSTRT		EQUALS	END-P30S	# I(2)IN MIDCOURSE START TIME
+
+# S34.1 STORAGE.  (OVERLAYS S35.1 STORAGE)	(1)
+TITER		EQUALS	TSTRT		# I(1)TMP ITERATION COUNTER
+
+# (P30-31 Q-SAVES)			(1)
+P30/31RT	EQUALS	TITER		# B(1) RETURN POINT
+
+# P22 STORAGE.				(6D)
+S22WUNL		EQUALS	TSTRT	+2	# 1	WUNL W8 UNKNOWN INIT VALUE.
+S22TOFF		EQUALS	S22WUNL	+1	# 2	T SUB OFF
+S22TPRIM	EQUALS	S22TOFF	+2	# 2	SAVE TF
+S22EORM		EQUALS	S22TPRIM +2	# 0 = EARTH -- NON-ZERO = MOON
+
+# DOWNLINK ERASABLES FOR P22, P20 MARK DATA.	(8D)
+MARKDOWN	EQUALS	S22EORM	+1	# B(1)
+RM		EQUALS	S22RTNEX	# DOWNLINK OF VHF RANGE
+
+# S22.1					(1D)
+S22RTNEX	EQUALS	MARKDOWN +7	# B(1)
+
+# P22 STORAGE				(6D)
+STARSAV3	EQUALS	S22RTNEX +1	# I(6)TMP
+
+# CRS61.1 STORAGE.  --A SUBSET OF P20--	(14D)
+Q611		EQUALS	RM	+1	# I(1)TMP QSAVE
+Q6111		EQUALS	Q611	+1	# I(1)TMP QSAVE
+SAVEPOS		EQUALS	Q6111	+1	# I(6)TMP LEM POSITION VECTOR
+# Page 126
+SAVEVEL		EQUALS	SAVEPOS	+6	# I(6)TMP LEM VELOCITY VECTOR
+
+# ATTITUDE MANEUVER -- CALLED BY P20,R61,R63,CRS61.1	(3D)
+PRAXIS		EQUALS	SAVEVEL	+6	# B(3) S-S DISP RES FOR PREF AXIS N95.
+
+# MARK ROUTINE (R21) STORAGE.  -- IS SUBSET OF R22 --	(14D)
+MRKBUF1		EQUALS	PRAXIS	+3	# B(7)TMP R21 MARK BUFFER.
+MRKBUF2		EQUALS	MRKBUF1	+7	# B(7)TMP R21 MARK BUFFER.
+
+# MORE CONICS STORAGE.			(4)
+COGA		EQUALS	3774		# I(2) COTAN OF INITIAL FLIGHT PATH ANGLE
+INDEP		EQUALS	COGA		# I(1) USED BY SUBROUTINE 'ITERATOR'
+EPSILONL	EQUALS	COGA	+2	# I(2)TMP
+
+# RENDEZVOUS GUIDANCE STORAGE.  -- P32...P35 --	(10D)
+ELEV		EQUALS	MRKBUF2	+7	# I(2)TMP
+RTX1		EQUALS	ELEV	+2	#  (1)
+RTX2		EQUALS	RTX1	+1	#  (1)
+RTMU		EQUALS	RTX2	+1	#  (2)
+RTSR1/MU	EQUALS	RTMU	+2	#  (2)
+CENTANG		EQUALS	RTSR1/MU +2	# I(2) S-S CENTRAL ANGLE COVERED (TPI-TFF)
+
+# TPI SEARCH (S17.1, S17.2) P17 STORAGE.(10D)
+DELTEE		EQUALS	MRKBUF2	+7	# I(2)
+XRS		EQUALS	DELTEE	+2	# I(2)
+THETL		EQUALS	XRS	+2	# I(2)
+TF		EQUALS	THETL	+2	# I(2)
+DELHITE		EQUALS	TF	+2	#  (2)
+
+# Page 127
+# *-*-*-*- OVERLAY NUMBER 5 IN EBANK 7 -*-*-*-*
+
+# P17,P34				(2D)
+NN1		=	NN		# I(2)DSP NOUN 55,R1
+
+# ********* THE FOLLOWING ARE FOR FLIGHT 504 ONLY *************
+
+# RETURN-TO-EARTH STORAGE.		(93D)
+RTEDVD		EQUALS	END-IN/M	# I(2)IN DELTA VELOCITY DESIRED		M/CS B7
+RTEGAM2D	EQUALS	RTEDVD	+2	# I(2)IN REENTRY ANGLE DESIRED		REVS B0
+RCON		EQUALS	RTEGAM2D +2	# I(2)TMP CONIC R2 RADIUS		M B29
+R(T1)/		EQUALS	RCON	+2	# I(6)TMP POSITION VECTOR AT TIG	M B29/B27
+R(T1)		EQUALS	R(T1)/	+6	# I(2)TMP MAGNITUDE OF R(T1)/		M B29/B27
+DT21PR		EQUALS	R(T1)	+2	# I(2)TMP PREVIOUS DT21			CS B30
+MAMAX1		EQUALS	DT21PR	+2	# I(2)TMP MAJ AXIS LOW BOUND LMT	M B30
+MAMAX2		EQUALS	MAMAX1	+2	# I(2)TMP MAJ AXIS UP BOUND LMT		M B30
+R(T2)/		EQUALS	MAMAX2	+2	# I(6)TMP FINAL POSITION VECTOR		M B29/B27
+RD		EQUALS	R(T2)/	+6	# I(2)TMP FINAL R DESIRED		M B29/B27
+DRCON		EQUALS	RD	+2	# I(2)TMP RCON SLOPE ITERATOR		M B29/B27
+RPRE'		EQUALS	DRCON	+2	# I(2)TMP PREVIOUS RPRE			M B29/B27
+V(T1)/		EQUALS	RPRE'	+2	# I(6)TMP VEL VECTOR AT TIG		M/CS B7/B5
+V2(T1)/		EQUALS	V(T1)/	+6	# I(6)TMP POST IMP VEL AT TIG		M/CS B7/B5
+DV		EQUALS	V2(T1)/	+6	# I(2)TMP DELTA VELOCITY AT TIG		M/CS B7/B5
+V(T2)/		EQUALS	DV	+2	# I(6)TMP FINAL VELOCITY VECTOR		M/CS B7/B5
+T1		EQUALS	V(T2)/	+6	# I(2)TMP INITIAL VECTOR TIME		CS B28
+PCON		EQUALS	T1	+2	# I(2)TMP SEMI-LATUS RECTUM		M B29
+X(T1)		EQUALS	PCON	+2	# I(2)TMP COTANGENT GAMMA1		B5
+T12		EQUALS	X(T1)	+2	# I(2)TMP INIT TO FINAL POSIT TIME	CS B28
+DELTAT		EQUALS	T12	+2	# I(2)TMP DELTA T IN SAVE PERILUNE	CS B28
+NN1A		EQUALS	DELTAT	+2	# I(2)TMP ITERATION COUNTER 1
+NN2		EQUALS	NN1A	+2	# I(2)TMP ITERATION COUNTER 2
+RTENCKEX	EQUALS	NN2	+2	# I(1)TMP RTENCK RETURN ADDRESS
+CONICX1		EQUALS	RTENCKEX +1	# I(1)TMP CONICS MU TABLE INDEX
+T2		EQUALS	CONICX1	+1	# I(2)TMP FINAL TIME			CS B28
+UR1/		EQUALS	T2	+2	# I(6)TMP UNIT R(T1)/			B1
+UV1/		EQUALS	UR1/	+6	# I(6)TMP UNIT V(T1)/			B1
+BETA1		EQUALS	UV1/	+6	# I(2)TMP 1+X(T2)**2			B1
+P(T1)		EQUALS	BETA1	+2	# I(1)TMP PRIMARY BODY STATE TIME 1	B14
+CFPA		EQUALS	P(T1)	+1	# I(2)TMP COSINE FLIGHT PATH ANGLE	B1
+PHI2		EQUALS	CFPA	+2	# I(2)TMP PERI OR APO INDICATOR		B2
+SPRTEX		EQUALS	PHI2	+2	# I(1)TMP ROUTINE RETURN ADDRESS
+VNSTORE		EQUALS	SPRTEX	+1	# I(1)TMP VERBNOUN STORAGE
+BETA12		EQUALS	VNSTORE	+1	# I(2)TMP SIGN FOR TIMERAD
+
+# OVERLAYS WITHIN RETURN-TO-EARTH STORAGE.
+# Page 128
+RPRE		EQUALS	24D		# I(2)TMP COMPUTED PREC RADIUS		M B29/B27
+P/RPRE		EQUALS	26D		# I(2)TMP P/R				B4
+R/APRE		EQUALS	28D		# I(2)TMP R/A				B6
+X(T2)PRE	EQUALS	T12		# I(2)TMP PREC COTAN GAMMA2		B0
+X(T2)		EQUALS	DELTAT		# I(2)TMP COTAN GAMMA2			B0
+UH/		EQUALS	UV1/		# I(2)TMP UNIT HORIZONTAL VECTOR.	B1
+SPRTETIG	EQUALS	TIG		# I(2)IN TIME OF IGNITION		CS B28
+
+# Page 129
+# *-*-*-*- OVERLAY 6 IN EBANK 7 -*-*-*-*
+# P32,P33
+
+# THE FOLLOWING OVERLAY MEAS. INCORP. ARE AND IN USE ONLY WHEN (32D)
+POSTCSI		EQUALS	VG		# I(2)
+DELVCSI		EQUALS	POSTCSI	+2	# I(2)
+DELDV		EQUALS	DELVCSI	+2	# I(2)
+GAMPREV		EQUALS	DELDV	+2	# I(2)
+DVPREV		EQUALS	GAMPREV +2	# I(2)
+POSTCDH		EQUALS	DVPREV	+2	# I(2)
+HAFPA1		EQUALS	POSTCDH
+VACT4		EQUALS	POSTCDH	+2	# I(6)
+RDOTV		EQUALS	VACT4	+6	# I(2)
+VACT1		EQUALS	RDOTV	+2	# I(6)
+VPASS1		EQUALS	VACT1	+6	# I(6) VEL. PASSIVE VEH. AT CSI TIME
+
+UNVEC		EQUALS	VACT3
+
+T2TOT3		EQUALS	TPASS4		# I(2) TPI - TCDH
+
+CSIALRM		EQUALS	TITER		# I(2) ALARM INDEX
+
+DELVEET2	EQUALS	S22WUNL		# I(6) VACT3 - VACT2 = DVCDH REF. COORD.
+
+# ADDITIONAL CSI - CDH STORAGE.		(10D)
+RPASS1		EQUALS	CENTANG	+2	# I(6) POS. PASSIVE VEH. AT CSI TIME.
+LOOPCT		EQUALS	RPASS1	+6	# I(2) ITERATION COUNTER
+NN		EQUALS	LOOPCT	+2	# I(2)
+
+# P21 STORAGE				(19D)
+P21ORIG		EQUALS	TRUNX		# I(1)
+P21BASER	EQUALS	P21ORIG	+1	# I(6)
+P21BASEV	EQUALS	P21BASER +6	# I(6)
+P21ALT		EQUALS	P21BASEV +6	# I(2) NOUN 73 R1 ALTITUDE
+P21VEL		EQUALS	P21ALT	+2	# I(2) NOUN 73 R2 VELOCITY
+P21GAM		EQUALS	P21VEL	+2	# I(2) NOUN 73 R3 FLIGHT PATH ANGLE
+
+# The following two statements had been just "WHOCARES = 3777".---RSB 2009
+		SETLOC	3777
+WHOCARES	EQUALS			# A DUMMY FOR E-BANK INSENSITIVE 2CADRS.
+END-E7		EQUALS	WHOCARES	# ***** LAST LOCATION IN E7
+
+# Page 130 ... is empty.
+
diff --git a/EXECUTIVE.s b/EXECUTIVE.s
new file mode 100644
index 0000000..7548f2c
--- /dev/null
+++ b/EXECUTIVE.s
@@ -0,0 +1,497 @@
+# Copyright:	Public domain.
+# Filename:	EXECUTIVE.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:	1208-1220
+# Mod history:	2009-05-14 RSB	Adapted 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 1208
+		BLOCK	02
+
+# TO ENTER A JOB REQUEST REQUIRING NO VAC AREA:
+
+		COUNT	02/EXEC
+		
+NOVAC		INHINT
+		AD	FAKEPRET	# LOC(MPAC +6) - LOC(QPRET)
+		TS	NEWPRIO		# PRIORITY OF NEW JOB + NOVAC C(FIXLOC)
+
+		EXTEND
+		INDEX	Q		# Q WILL BE UNDISTURBED THROUGHOUT.
+		DCA	0		# 2CADR OF JOB ENTERED.
+		DXCH	NEWLOC
+		CAF	EXECBANK
+		XCH	FBANK
+		TS	EXECTEM1
+		TCF	NOVAC2		# ENTER EXECUTIVE BANK.
+
+# TO ENTER A JOB REQUEST REQUIREING A VAC AREA -- E.G., ALL (PARTIALLY) INTERPRETIVE JOBS.
+
+FINDVAC		INHINT
+		TS	NEWPRIO
+		EXTEND
+		INDEX	Q
+		DCA	0
+SPVACIN		DXCH	NEWLOC
+		CAF	EXECBANK
+		XCH	FBANK
+		TCF	FINDVAC2	# OFF TO EXECUTIVE SWITCHED-BANK.
+
+# TO ENTER A FINDVAC WITH THE PRIORITY IN NEWPRIO TO THE 2CADR ARRIVING IN A AND L:
+# USERS OF SPVAC MUST INHINT BEFORE STORING IN NEWPRIO.
+
+SPVAC		XCH	Q
+		AD	NEG2
+		XCH	Q
+		TCF	SPVACIN
+
+# TO SUSPEND A BASIC JOB SO A HIGHER PRIORITY JOB MAY BE SERVICED:
+
+CHANG1		LXCH	Q
+		CAF	EXECBANK
+		XCH	BBANK
+		TCF	CHANJOB
+
+# TO SUSPEND AN INTERPRETIVE JOB:
+
+CHANG2		CS	LOC		# NEGATIVE LOC SHOWS JOB = INTERPRETIVE.
+# ITRACE (4) REFERS TO "CHANG2"
+# Page 1209
+		TS	L
+	+2	CAF	EXECBANK
+ 		TS	BBANK
+		TCF	CHANJOB -1
+
+# Page 1210
+# TO VOLUNTARILY SUSPEND A JOB UNTIL THE COMPLETION OF SOME ANTICIPATED EVENT (I/O EVENT ETC.):
+
+JOBSLEEP	TS	LOC
+		CAF	EXECBANK
+		TS	FBANK
+		TCF	JOBSLP1
+
+# TO AWAKEN A JOB PUT TO SLEEP IN THE ABOVE FASHION:
+
+JOBWAKE		INHINT
+		TS	NEWLOC
+		CS	TWO		# EXIT IS VIA FINDVAC/NOVAC PROCEDURES.
+		ADS	Q
+		CAF	EXECBANK
+		XCH	FBANK
+		TCF	JOBWAKE2
+
+# TO CHANGE THE PRIORITY OF A JOB CURRENTLY UNDER EXECUTION:
+
+PRIOCHNG	INHINT			# NEW PRIORITY ARRIVES IN A.  RETURNS TO
+		TS	NEWPRIO		# CALLER AS SOON AS NEW JOB PRIORITY IS
+		CAF	EXECBANK	# HIGHEST.  PREPARE FOR POSSIBLE BASIC-
+		XCH	BBANK		# STYLE CHANGE-JOB.
+		TS	BANKSET
+		CA	Q
+		TCF	PRIOCH2
+
+# TO REMOVE A JOB FROM EXECUTIVE CONSIDERATIONS:
+
+ENDOFJOB	CAF	EXECBANK
+		TS	FBANK
+		TCF	ENDJOB1
+
+ENDFIND		CA	EXECTEM1	# RETURN TO CALLER AFTER JOB ENTRY
+		TS	FBANK		# COMPLETE.
+		TCF	Q+2
+EXECBANK	CADR	FINDVAC2
+
+FAKEPRET	ADRES	MPAC -36D	# LOC(MPAC +6) - LOC(QPRET)
+
+# Page 1211
+# LOCATE AN AVAILABLE VAC AREA
+
+		BANK	01
+		COUNT	01/EXEC
+		
+FINDVAC2	TS	EXECTEM1	# (SAVE CALLER'S BANK FIRST.)
+		CCS	VAC1USE
+		TCF	VACFOUND
+		CCS	VAC2USE
+		TCF	VACFOUND
+		CCS	VAC3USE
+		TCF	VACFOUND
+		CCS	VAC4USE
+		TCF	VACFOUND
+		CCS	VAC5USE
+		TCF	VACFOUND
+		TC	BAILOUT
+		OCT	1201		# NO VAC AREAS.
+
+VACFOUND	AD	TWO		# RESERVE THIS VAC AREA BY STORING A ZERO
+		ZL			# IN ITS VAC USE REGISTER AND STORE THE
+		INDEX	A		# ADDRESS OF THE FIRST WORD OF IT IN THE
+		LXCH	0 	-1	# LOW NINE BITS OF THE PRIORITY WORD.
+		ADS	NEWPRIO
+
+NOVAC2		CAF	ZERO		# NOVAC ENTERS HERE.  FIND A CORE SET.
+		TS	LOCCTR
+		CAF	NO.CORES	# SEVEN SETS OF ELEVEN REGISTERS EACH.
+NOVAC3		TS	EXECTEM2
+		INDEX	LOCCTR
+		CCS	PRIORITY	# EACH PRIORITY REGISTER CONTAINS -0 IF
+		TCF	NEXTCORE	# THE CORESPONDING CORE SET IS AVAILABLE.
+NO.CORES	DEC	6
+		TCF	NEXTCORE	# AN ACTIVE JOB HAS A POSITIVE PRIORITY
+					# BUT A DORMANT JOB'S PRIORITY IS NEGATIVE
+
+# Page 1212
+CORFOUND	CA	NEWPRIO		# SET THE PRIORITY OF THIS JOB IN THE CORE
+		INDEX	LOCCTR		# SET'S PRIORITY REGISTER AND SET THE
+		TS	PRIORITY	# JOB'S PUSH-DOWN POINTER AT THE BEGINNING
+		MASK	LOW9		# OF THE WORK AREA AND OVERFLOW INDICATOR.
+		INDEX	LOCCTR
+		TS	PUSHLOC		# OFF TO PREPARE FOR INTERPRETIVE PROGRAMS.
+
+		CCS	LOCCTR		# IF CORE SET ZERO IS BEING LOADED, SET UP
+		TCF	SETLOC		# OVFIND AND FIXLOC IMMEDIATELY.
+		TS	OVFIND
+		CA	PUSHLOC
+		TS	FIXLOC
+
+SPECTEST	CCS	NEWJOB		# SEE IF ANY ACTIVE JOBS WAITING (RARE).
+		TCF	SETLOC		# MUST BE AWAKENED OUT UNCHANGED JOB.
+		TC	CCSHOLE
+		TC	CCSHOLE
+		TS	NEWJOB		# +0 SHOWS ACTIVE JOB ALREADY SET.
+		DXCH	NEWLOC
+		DXCH	LOC
+		TCF	ENDFIND
+
+SETLOC		DXCH	NEWLOC		# SET UP THE LOCATION REGISTERS FOR THIS
+		INDEX	LOCCTR
+		DXCH	LOC
+		INDEX	NEWJOB		# THIS INDEX INSTRUCTION INSURES THAT THE
+		CS	PRIORITY	# HIGHEST ACTIVE PRIORITY WILL BE COMPARED
+		AD	NEWPRIO		# WITH THE NEW PRIORITY TO SEE IF NEWJOB
+		EXTEND			# SHOULD BE SET TO SIGNAL A SWITCH.
+		BZMF	ENDFIND
+		CA	LOCCTR		# LOCCTR IS LEFT SET AT THIS CORE SET IF
+		TS	NEWJOB		# THE CALLER WANTS TO LOAD ANY MPAC
+		TCF	ENDFIND		# REGISTERS, ETC.
+
+NEXTCORE	CAF	COREINC
+		ADS	LOCCTR
+		CCS	EXECTEM2
+		TCF	NOVAC3
+		TC	BAILOUT		# NO CORE SETS.
+		OCT	1202
+# Page 1213
+# THE FOLLOWING ROUTINE SWAPS CORE SET 0 WITH THAT WHOSE RELATIVE ADDRESS IS IN NEWJOB.
+
+	-2	LXCH	LOC
+	-1	CAE	BANKSET		# BANKSET, NOT BBANK, HAS RIGHT CONTENTS.
+CHANJOB		INHINT
+		EXTEND
+		ROR	SUPERBNK	# PICK UP CURRENT SBANK FOR BBCON
+		XCH	L		# LOC IN A AND BBCON IN L.
+	+4	INDEX	NEWJOB		# SWAP LOC AND BANKSET.
+		DXCH	LOC
+		DXCH	LOC
+
+		CAE	BANKSET
+		EXTEND
+		WRITE	SUPERBNK	# SET SBANK FOR NEW JOB.
+		DXCH	MPAC		# SWAP MULTI-PURPOSE ACCUMULATOR AREAS.
+		INDEX	NEWJOB
+		DXCH	MPAC
+		DXCH	MPAC
+		DXCH	MPAC +2
+		INDEX	NEWJOB
+		DXCH	MPAC +2
+		DXCH	MPAC +2
+		DXCH	MPAC +4
+		INDEX	NEWJOB
+		DXCH	MPAC +4
+		DXCH	MPAC +4
+		DXCH	MPAC +6
+		INDEX	NEWJOB
+		DXCH	MPAC +6
+		DXCH	MPAC +6
+
+		CAF	ZERO
+		XCH	OVFIND		# MAKE PUSHLOC NEGATIVE IF OVFIND NZ.
+		EXTEND
+		BZF	+3
+		CS	PUSHLOC
+		TS	PUSHLOC
+
+		DXCH	PUSHLOC
+		INDEX	NEWJOB
+		DXCH	PUSHLOC
+		DXCH	PUSHLOC		# SWAPS PUSHLOC AND PRIORITY.
+		CAF	LOW9		# SET FIXLOC TO BASE OF VAC AREA.
+		MASK	PRIORITY
+		TS	FIXLOC
+
+		CCS	PUSHLOC		# SET OVERFLOW INDICATOR ACCORDING TO
+		CAF	ZERO
+		TCF	ENDPRCHG -1
+
+# Page 1214
+		CS	PUSHLOC
+		TS	PUSHLOC
+		CAF	ONE
+		XCH	OVFIND
+		TS	NEWJOB
+
+ENDPRCHG	RELINT
+		DXCH	LOC		# BASIC JOBS HAVE POSITIVE ADDRESSES, SO
+		EXTEND			# DISPATCH WITH A DTCB.
+		BZMF	+2		# IF INTERPRETIVE, SET UP EBANK, ETC.
+		DTCB
+# Page 1215
+		COM			# EPILOGUE TO JOB CHANGE FOR INTERPRETIVE
+		AD	ONE
+		TS	LOC		# RESUME
+		TCF	INTRSM
+
+# COMPLETE JOBSLEEP PREPARATIONS.
+
+JOBSLP1		INHINT
+		CS	PRIORITY	# NNZ PRIORITY SHOWS JOB ASLEEP.
+		TS	PRIORITY
+		CAF	LOW7
+		MASK	BBANK
+		EXTEND
+		ROR	SUPERBNK	# SAVE OLD SUPERBANK VALUE.
+		TS	BANKSET
+		CS	ZERO
+JOBSLP2		TS	BUF 	+1	# HOLDS -- HIGHEST PRIORITY.
+		TCF	EJSCAN		# SCAN FOR HIGHEST PRIORITY ALA ENDOFJOB.
+
+NUCHANG2	INHINT			# QUICK... DON'T LET NEWJOB CHANGE TO +0.
+		CCS	NEWJOB
+		TCF		+3	# NEWJOB STILL PNZ
+		RELINT			# NEW JOB HAS CHANGED TO +0.  WAKE UP JOB
+		TCF	ADVAN 	+2	# VIA NUDIRECT.  (VERY RARE CASE.)
+
+		CAF	TWO
+		EXTEND
+		WOR	DSALMOUT	# TURN ON ACTIVITY LIGHT
+		DXCH	LOC		# AND SAVE ADDRESS INFO FOR BENEFIT OF
+		TCF	CHANJOB +4	# 	POSSIBLE SLEEPING JOB.
+
+# Page 1216
+# TO WAKE UP A JOB, EACH CORE SET IS FOUND TO LOCATE ALL JOBS WHICH ARE ASLEEP.  IF THE FCADR IN THE
+# LOC REGISTER OF ANY SUCH JOB MATCHES THAT SUPPLIED BY THE CALLER, THAT JOB IS AWAKENED.  IF NO JOB IS FOUND,
+# LOCCTR IS SET TO -1 AND NO FURTHER ACTION TAKES PLACE.
+
+JOBWAKE2	TS	EXECTEM1
+		CAF	ZERO		# BEGIN CORE SET SCAN
+		TS	LOCCTR
+		CAF	NO.CORES
+JOBWAKE4	TS	EXECTEM2
+		INDEX	LOCCTR
+		CCS	PRIORITY
+		TCF	JOBWAKE3	# ACTIVE JOB -- CHECK NEXT CORE SET.
+COREINC		DEC	12		# 12 REGISTERS PER CORE SET.
+		TCF	WAKETEST	# SLEEPING JOB -- SEE IF CADR MATCHES.
+
+JOBWAKE3	CAF	COREINC
+		ADS	LOCCTR
+		CCS	EXECTEM2
+		TCF	JOBWAKE4
+		CS	ONE		# EXIT IF SLEEPIG JOB NOT FOUND.
+		TS	LOCCTR
+		TCF	ENDFIND
+
+WAKETEST	CS	NEWLOC
+		INDEX	LOCCTR
+		AD	LOC
+		EXTEND
+		BZF	+2		# IF MATCH.
+		TCF 	JOBWAKE3	# EXAMINE NEXT CORE SET IF NO MATCH.
+
+		INDEX	LOCCTR		# RE-COMPLEMENT PRIORITY TO SHOW JOB AWAKE
+		CS	PRIORITY
+		TS	NEWPRIO
+		INDEX	LOCCTR
+		TS	PRIORITY
+
+		CS	FBANKMSK	# MASK UP THE 2CADR OF THE WAKE ADDRESS
+		MASK	NEWLOC		# USING THE CADR IN NEWLOC AND THE EBANK
+		AD	2K		# HALF OF BBANK SAVED IN BANKSET.
+		XCH	NEWLOC
+		MASK	FBANKMSK
+		INDEX	LOCCTR
+		AD	BANKSET
+		TS	NEWLOC +1
+
+		CCS	LOCCTR		# SPECIAL TREATMENT IF THIS JOB WAS
+		TCF	SETLOC		# ALREADY IN THE RUN (0) POSITION.
+		TCF	SPECTEST
+
+# Page 1217
+# PRIORITY CHANGE.  CHANGE THE CONTENTS OF PRIORITY AND SCAN FOR THE JOB OF HIGHEST PRIORITY.
+
+PRIOCH2		TS	LOC
+		CAF	ZERO		# SET FLAG TO TELL ENDJOB SCANNER IF THIS
+		TS	BUF		# JOB IS STILL HIGHEST PRIORITY.
+		CAF	LOW9
+		MASK	PRIORITY
+		AD	NEWPRIO
+		TS	PRIORITY
+		COM
+		TCF	JOBSLP2		# AND TO EJSCAN.
+
+# Page 1218
+# RELEASE THIS CORE SET AND VAC AREA AND SCAN FOR THE JOB OF HIGHEST ACTIVE PRIORITY.
+
+ENDJOB1		INHINT
+		CS	ZERO
+		TS	BUF +1
+		XCH	PRIORITY
+		MASK	LOW9
+		TS	L
+
+		CS	FAKEPRET
+		AD	L
+
+		EXTEND
+		BZMF	EJSCAN		# NOVAC ENDOFJOB
+
+		CCS	L
+		INDEX	A
+		TS	0
+
+EJSCAN		CCS	PRIORITY +12D
+		TC	EJ1
+		TC	CCSHOLE
+		TCF	+1
+
+		CCS	PRIORITY +24D	# EXAMINE EACH PRIORITY REGISTER TO FIND
+		TC	EJ1		# THE JOB OF HIGHEST ACTIVE PRIORITY.
+		TC	CCSHOLE
+		TCF	+1
+
+		CCS	PRIORITY +36D
+		TC	EJ1
+-CCSPR		-CCS	PRIORITY
+		TCF	+1
+
+		CCS	PRIORITY +48D
+		TC	EJ1
+		TC	CCSHOLE
+		TCF	+1
+
+		CCS	PRIORITY +60D
+		TC	EJ1
+		TC	CCSHOLE
+		TCF	+1
+
+		CCS	PRIORITY +72D
+		TC	EJ1
+		TC	CCSHOLE
+		TCF	+1
+
+# Page 1219
+# EVALUATE THE RESULTS OF THE SCAN.
+
+		CCS	BUF 	+1	# SEE IF THERE ARE ANY ACTIVE JOBS WAITING
+		TC	CCSHOLE
+		TC	CCSHOLE
+
+		TCF	+2
+		TCF	DUMMYJOB
+		CCS	BUF		# BUF IS ZERO IS THIS IS A PRIOCHNG AND
+		TCF	+2		# CHANGED PRIORITY IS STILL HIGHEST.
+		TCF	ENDPRCHG -1
+
+		INDEX	A		# OTHERWISE, SET NEWJOB TO THE RELATIVE
+		# Was CAF --- RSB 2004
+		CA	0 	-1	# ADDRESS OF THE NEW JOB'S CORE SET.
+		AD	-CCSPR
+		TS	NEWJOB
+		TCF	CHANJOB -2
+
+EJ1		TS	BUF 	+2
+		AD	BUF 	+1	# - OLD HIGH PRIORITY.
+		CCS	A
+		CS	BUF 	+2
+		TCF	EJ2		# NEW HIGH PRIORITY.
+		NOOP
+		INDEX	Q
+		TC	2		# PROCEED WITH SEARCH.
+
+EJ2		TS	BUF 	+1
+		EXTEND
+		QXCH	BUF		# FOR LOCATING CCS PRIORITY + X INSTR.
+		INDEX	BUF
+		TC	2
+
+# Page 1220
+# IDLING AND COMPUTER ACTIVITY (GREEN) LIGHT MAINTENANCE. THE IDLING ROUTIEN IS NOT A JOB IN ITSELF,
+# BUT RATHER A SUBROUTINE OF THE EXECUTIVE.
+
+		EBANK=	SELFRET		# SELF-CHECK STORAGE IN EBANK.
+
+DUMMYJOB	CS	ZERO		# SET NEWJOB TO -0 FOR IDLING.
+		TS	NEWJOB
+		RELINT
+		CS	TWO		# TURN OFF THE ACTIVITY LIGHT.
+		EXTEND
+		WAND	DSALMOUT
+ADVAN		CCS	NEWJOB		# IS THE NEWJOB ACTIVE?
+		TCF	NUCHANG2	# YES... ONE REQUIRING A CHANGE JOB.
+		CAF	TWO		# NEW JOB ALREADY IN POSITION FOR
+		TCF	NUDIRECT	# EXECUTION
+
+		CA	SELFRET
+		TS	L		# PUT RETURN ADDRESS IN L.
+		CAF	SELFBANK
+		TCF	SUPDXCHZ +1	# AND DISPATCH JOB.
+
+		EBANK=	SELFRET
+SELFBANK	BBCON	SELFCHK
+
+NUDIRECT	EXTEND			# TURN THE GREEN LIGHT BACK ON.
+		WOR	DSALMOUT
+		DXCH	LOC		# JOBS STARTED IN THIS FASHION MUST BE
+		TCF	SUPDXCHZ
+
+		BLOCK	2		# IN FIXED-FIXED SO OTHERS MAY USE.
+
+		COUNT	02/EXEC
+
+# SUPDXCHZ -- ROUTINE TO TRANSFER TO SUPERBANK.
+# CALLING SEQUENCE:
+#		TCF	SUPDXCHZ	# WITH 2CADR OF DESIRED LOCATION IN A + l.
+
+SUPDXCHZ	XCH	L		# BASIC.
+	+1	EXTEND
+		WRITE	SUPERBNK
+		TS	BBANK
+		TC	L
+
+NEG100		OCT	77677
+
+
+
diff --git a/EXTENDED_VERBS.s b/EXTENDED_VERBS.s
new file mode 100644
index 0000000..aa44901
--- /dev/null
+++ b/EXTENDED_VERBS.s
@@ -0,0 +1,1336 @@
+# Copyright:	Public domain.
+# Filename:	EXTENDED_VERBS.agc
+# Purpose:	Part of the source code for Comanche, build 055. It
+#		is part of the source code for the Command Module's
+#		(CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:	yaYUL
+# Reference:	pp. 236-267
+# Contact:	Ron Burkey <info@sandroid.org>,
+#  		Fabrizio Bernardini <fabrizio@spacecraft.it>
+# Website:	http://www.ibiblio.org/apollo.
+# Mod history:	2009-05-18 FB	Transcription Batch 3 Assignment.
+#		2009-05-20 RSB	Corrections:  POODOO -> P00DOO,
+#				GOTOPOOH -> GOTOP00H, added a couple of 
+#				missing instructions in Verb 96.
+#		2009-05-23 RSB	In SYSTEST, corrected TC FLAGWRD1 to 
+#				CA FLAGWRD1.  Added a variety of SBANK=
+#				statements prior to 2CADRs.  One day I'll
+#				have to figure out what yaYUL is doing 
+#				wrong with those ....
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#	Assemble revision 055 of AGC program Comanche by NASA
+#	2021113-051.  April 1, 1969.  
+#
+#	This AGC program shall also be referred to as Colossus 2A
+#
+#	Prepared by
+#			Massachussets Institute of Technology
+#			75 Cambridge Parkway
+#			Cambridge, Massachusetts
+#
+#	under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 236
+		BANK	7
+		SETLOC	EXTVERBS
+		BANK
+		
+		EBANK=	OGC
+		
+		COUNT*	$$/EXTVB
+		
+# FAN-OUT
+
+GOEXTVB		INDEX	MPAC		# VERB-40 IS IN MPAC
+		TC	LST2FAN		# FAN AS BEFROE.
+		
+LST2FAN		TC	VBZERO		# VB40 ZERO (USED WITH NOUN 20 ONLY)
+		TC	VBCOARK		# VB41 COARSE ALIGN (USED WITH NOUN 20 OR
+					#				91 ONLY)
+		TC	IMUFINEK	# VB42 FINE ALIGN IMU
+		TC	IMUATTCK	# VB43 LOAD IMU ATTITUDE ERROR METERS.
+		TC	SETSURF		# VB44 SET SURFACE FLAG
+		TC	RESTSRF		# VB45 RESET SURFACE FLAG
+		TC	STABLISH	# VB46 ESTABLISH G+C CONTROL
+		TC	LMTOCMSV	# VB47 MOVE LM STATE VECTOR INTO CM
+		TC	DAPDISP		# VB48 LOAD A/P DATA
+		TCF	CREWMANU	# VB49 START AUTOMATIC ATTITUDE MANEUVER
+		TC	GOLOADLV	# VB50 PLEASE PERFORM
+		TC	GOLOADLV	# VB51 PLEASE MARK
+		TC	V52		# VB52 SET OFFSET NO. FOR P22
+		TC	GOLOADLV	# VB53 PLEASE PERFORM COAS MARK
+		TC	GOTOR23		# VB54 PLEASE MARK (R-21 BACKUP)
+		TC	ALINTIME	# VB55 ALIGN TIME
+		TC	TRACKTRM	# VB56 TERMINATE TRACKING (P20 + P25)
+		TC	GOTOR21		# VB57 START R21 REND TRACK SIGHT MARK ROUT
+		TC	ENATMA		# VB58 ENABLE AUTOMATIC ATTITUDE MANEUVER
+		TC	GOLOADLV	# VB59 PLEASE CALIBRATE
+		TC	V60		# VB60 SET CPHIX (N17) EQUAL TO CDU
+		TC	V61		# VB61 SELECT MODE I
+		TC	V62		# VB62 SELECT MODE II, ERROR WRT N22
+		TC	V63		# VB63 SELECT MODE III, ERROR WRT N17
+		TC	VB64		# VB64 CALCULATE, DISPLAY S-BAND ANT ANGLES
+		TC	CKOPTVB		# V 65 E OPTICAL VERIFICATION FOR PRELAUNC
+		TC	ATTACHED	# VB66 ATTACHED. MOVE THIS TO OTHER STATE
+		TC	V67		# VB67 W MATRIX MONITOR
+		TC	STROKON		# VB68 CSM STROKE TEST ON.
+VERB69		TC	VERB69		# VB69 CAUSE RESTART
+		TC	V70UPDAT	# VB70 UPDATE LIFTOFF TIME.
+		TC	V71UPDAT	# VB71 UNIVERSAL UPDATE -- BLOCK ADDRESS
+		TC	V72UPDAT	# VB72 UNIVERSAL UPDATE -- SINGLE ADDRESS
+		TC	V73UPDAT	# VB73 UPDATE AGC TIME (OCTAL)
+		TC	DNEDUMP		# VB74 INITIALIZE DOWN-TELEMETRY PROGRAM
+					#	FOR ERASABLE DUMP.
+		TC	LFTFLGON	# VB75 SET LIFTOFF FLAG.
+# Page 237
+		TC	SETPRFLG	# VB76 SET PREFERRED ATTITUDE FLAG
+		TC	RESETPRF	# VB77 RESET PREFERRED ATT. FLAG
+		TC	CHAZFOGC	# CHANGE GYROCOMPASS LAUNCH AZIMUTH V78
+		TC	ALM/END		# V79 SPARE
+		TC	LEMVEC		# VB80 UPDATE LEM STATE VECTOR
+		TC	CSMVEC		# VB81 UPDATE CSM STATE VECTOR
+		TC	V82PERF		# VB82 REQUEST ORBIT PARAM DISPLAY (R30)
+		TC	V83PERF		# VB83 RANGE, RANGE RATE, +X AXIS  (R31)
+		TC	ALM/END		# V84  SPARE
+		TC	V85PERF		# VB85 RANGE, RANGE RATE, SLOS	   (R32)
+		TC	V86PERF		# VB86 BACKUP MARK REJECT
+		TC	SETVHFLG	# VB87 SET VHF RANGE FLAG
+		TC	RESETVHF	# VB88 RESET VHF RANGE FLAG
+		TC	V89PERF		# V89-ALIGN X OR PRF CSM AXIS TO LOS (R63)
+		TC	V90PERF		# VB90-OUT OF PLAN PARAMETERS 	   (R36)
+		TC	GOSHOSUM	# VB91 TEMP FOR HYBRID AND STG.
+		TC	SYSTEST		# VB92 OPERATE IMU PERFORMANCE TEST
+		TC	WMATRXNG	# VB93 CLEAR RENDWFLG
+		TC	VERB94		# VB94 DO R64
+		TC	ALM/END		# VB95 SPARE
+		TCF	VERB96		# VB96 SET QUITFLAG TO STOP INTEGRATION
+		TC	GOLOADLV	# VB97 PLEASE PERFORM ENGINE-FAIL (R41)
+		TC	ALM/END		# VB98 SPARE
+		TC	GOLOADLV	# VB99 PLEASE ENABLE ENGINE
+		
+# END OF EXTENDED VERB FAN
+
+TESTXACT	CCS	EXTVBACT
+		TC	ALM/END		# YES, TURN ON OPERATOR ERROR LIGHT
+		CA	FLAGWRD4	# ARE PRIOS USING DSKY
+		MASK	OC24100
+		CCS	A
+		TC	ALM/END		
+		
+		CAF	OCT24		# SET BITS 3 AND 5
+SETXTACT	TS	EXTVBACT	# NO. SET FLAG TO SHOW EXT VERB DISPLAY
+					# SYSTEM BUSY
+					
+		CA	Q
+		TS	MPAC +1
+		
+		CS	TWO		# BLANK EVERYTHING EXCEPT MM AND VERB
+		TC	NVSUB
+		TC	+1
+		TC	MPAC +1
+		
+XACTALM		TC	FALTON		# TURN ON OPERATOR ERROR LIGHT.
+		TC	ENDEXT		# RELEASE MARK AND EXT. VERB DISPLAY SYS.
+# Page 238
+TERMEXTV 	EQUALS 	ENDEXT
+ENDEXTVB	EQUALS	ENDEXT
+
+XACT0		CAF	ZERO		# RELEASE MARK AND EXT. VERB DISPLAY SYS.
+		TC	SETXTACT
+
+ALM/END		TC	FALTON		# TURN ON OPERATOR ERROR LIGHT
+GOPIN		TC	POSTJUMP
+		CADR	PINBRNCH
+		
+OC24100		OCT	24100
+
+# Page 239
+# VBZERO	VERB 40		DESCRIPTION
+#
+#	1. 	REQUIRE NOUN 20 (ICDU ANGLES) 
+#	2.	REQUIRE AVAILABILITY OF EXT VERB DISPLAY SYSTEM
+#	3.	IF EITHER OF ABOVE CONDITIONS NOT PRESENT, TURN ON OPERATOR ERROR LIGHT AND GO TO PINBRNCH.
+#	4.	SET EXT VERB DISPLAY ACTIVE FLAG.
+#	5.	EXECUTE IMUZERO (ZERO IMU CDU ANGLES).
+#	6.	EXECUTE IMUSTALL (ALLOW TIME FOR DATA TRANSFER).
+#	7.	RELEASE EXT. VERB DISPLAY SYSTEM.
+
+VBZERO		TC	OP/INERT
+		TC	IMUZEROK	# RETURN HERE IF NOUN = ICDU(20)
+		TC	ALM/END		# RETURN HERE IF NOUN = OCDU(91)
+					#	(NOT IN USE YET)
+					
+IMUZEROK	TC	CKMODCAD	# KEYBOARD REQUEST FOR ISS CDUZERO
+		TC	BANKCALL
+		CADR	IMUZERO
+		
+		TC	BANKCALL	# STALL
+		CADR	IMUSTALL
+		TC	+1
+		
+		TC	GOPIN		
+		
+OP/INERT	CS	OCT24
+		AD	NOUNREG
+		EXTEND
+		BZF	XACT0Q		# IF = 20.
+		
+		INCR	Q
+		AD	OPIMDIFF	# -71
+		EXTEND
+		BZF	XACT0Q
+		
+		TC	ALM/END		# ILLEGAL.
+		
+OPIMDIFF	DEC	-71
+
+# Page 240
+# VBCOARK	VERB 41		DESCRIPTION
+#	COARSE ALIGN IMU OR RADAR
+#
+#	1.	REQUIRE NOUN 20 OR NOUN 91 OR TURN ON OPERATOR ERROR.
+#	2.	REQUIRE EXT VERB DISPLAY SYS AVAILABLE OR TURN ON OPERATOR ERROR LIGHT AND GO TO PINBRNCH.
+#
+#	CASE 1	NOUN 20	(ICDU ANGLES)
+#	3.	SET EXT VERB DISPLAY ACTIVE FLAG.
+#	4.	DISPLAY FLASHING V25,N22 (LOAD NEW ICDU ANGLES).
+#		RESPONSES
+#		A.	TERMINATE
+#			1.	RELEASE EXT VERB DISPLAY SYSTEM.
+#		B.	PROCEED
+#			1.	DISPLAY FLASHING V25,N23 (LOAD DELTA ICDU ANGLES).
+#				RESPONSES:
+#				A.	TERMINATE
+#					1.	RELEASE EXT VERB DISPLAY SYSTEM.
+#				B.	PROCEED
+#					1.	EXECUTE ICORK2.
+#				C.	ENTER
+#					1.	INCREMENT CDU ANGLES
+#					2.	EXECUTE ICORK2
+#		C.	ENTER
+#			1.	EXECUTE ICORK2
+# ICORK2
+#	1.	RE-DISPLAY VERB 41.
+#	2.	EXECUTE IMUCCARS (IMU COARSE ALIGN).
+#	3.	EXECUTE IMUSTALL (ALLOW TIME FOR DATA TRANSFER).
+#	4.	RELEASE EXT VERB DISPLAY SYSTEM.
+#
+#	CASE 2	NOUN 91	(OCDU ANGLES)
+#	5.	(REQUIRE OPTICS SWITCH TO BE AT COMUTER OR TURN ON OPERATOR ERROR AND ALARM 115) AND (REQUIRE
+#		OPTICS AVAILABLE AND DISPLAY FLASHING V24,N92....LOAD NEW OPTICS ANGLES....OR TURN ON ALARM 117
+#		AND RELEASE EXT VERB DISPLAY SYSTEM).
+#	6.	RESPONSES TO V29,N92
+#		A.	TERMINATE
+#			RELEASE EXT VERB DISPLAY SYS.
+#		B.	PROCEED OR ENTER
+#			RE-DISPLAY VERB 41,	SET SWITCH TO INDICATE COURSE ALIGN OPTICS WORKING.
+#			RELEASE EXT VERB DISPLAY SYSTEM.
+
+VBCOARK		TC	OP/INERT
+		TC	IMUCOARK		# RETURN HERE IF NOUN = ICDU (20)
+		TC	OPTCOARK		# RETURN HERE IF NOUN = OCDU (91)
+		
+# RETURNS TO L+1 IF NOUN 20 -- TO L+2 IF NOUN 91.
+
+IMUCOARK	TC	CKMODCAD		# COARSE ALIGN FROM KEYBOARD
+		TC	TESTXACT	
+		CAF	VNLODCDU		# CALL FOR THETAD LOAD
+		TC	BANKCALL
+		CADR	GOXDSPF
+		TC	TERMEXTV
+		TCF	+1
+# Page 241
+		
+ICORK2		CAF	IMUCOARV		# RE-DISPLAY COARSE ALIGN VERB.
+		TC	BANKCALL
+		CADR	EXDSPRET
+		
+		TC	BANKCALL		# CALL MODE SWITCHING PROG
+		CADR	IMUCOARS
+		
+		TC	BANKCALL		# STALL
+		CADR	IMUSTALL
+		TC	ENDEXTVB
+		TC	ENDEXTVB
+		
+VNLODCDU	VN	2522
+IMUCOARV	VN	4100
+
+# Page 242
+# TEMPORARY ROUTINE TO RUN THE OPTICS CDUS FROM THE KEYBOARD
+
+OPTCOARK	CA	OPTCADR
+		TC	CKMODCAD +1
+		TC	TESTXACT
+		CAF	EBANK5
+		TS	EBANK
+		
+		CCS	SWSAMPLE		# SEE IF SWITCH AT COMPUTER
+		TC	+5			# SWITCH AT COMPUTER
+		TC	+1			# NOT ON COMPUTER
+		TC	FALTON			# TURN ON OPERATOR ERR
+		TC	ALARM			# AND ALARM
+		OCT	00115
+		
+		CCS	OPTIND			# SEE IF OPTICS AVAILABLE
+		TC	OPTC1			# IN USE
+		TC	OPTC1			# IN USE
+		TC	OPTC1			# IN USE
+		
+		TC	ALARM			# OPTICS RESERVED (OPTIND=-0)
+		OCT	00117
+		TC	ENDEXT
+		
+OPTC1		CAF	VNLD0CDU		# VERB-NOUN TO LOAD OPTICS CDUS
+		TC	BANKCALL
+		CADR	GOXDSPF
+		TC	TERMEXTV
+		TC	+1			# PROCEED
+		
+		CA	SAC
+		TS	DESOPTS
+		CA	PAC
+		TS	DESOPTT
+		CAF	OPTCOARV		# RE-DISPLAY OUR OWN VERB
+		TC	BANKCALL
+		CADR	EXDSPRET
+		
+		CAF	ONE
+		TS	OPTIND			# SET COARS WORKING
+		
+		TC	ENDEXTVB
+		TC	ENDEXTVB
+		
+VNLD0CDU	VN	2492
+OPTCOARV	EQUALS	IMUCOARV		# DIFFERENT NOUNS.
+
+# Page 243
+# IMUFINEK	VERB 42		DESCRIPTION
+#	FINE ALIGN IMU
+#
+#	1.	REQUIRE EXT VERB DISPLAY AVAILABLE AND SET BUSY FLAG OR TURN ON OPER ERROR AND GO TO PINBRNCH.
+#	2.	DISPLAY FLASHING V25,N93....LOAD DELTA GYRO ANGLES....
+#		RESPONSES
+#		A.	TERMINATE
+#			1.	RELEASE EXT VERB DISPLAY SYSTEM.
+#		B.	PROCEED OR ENTER
+#			1.	RE-DISPLAY VERB 42
+#			2.	EXECUTE IMUFINE (IMU FIVE ALIGN MODE SWITCHING).
+#			3.	EXECUTE IMUSTALL (ALLOW FOR DATA TRANSFER)
+#				A.	FAILED
+#					1. 	RELEASE EXT VERB DISPLAY SYSTEM.
+#				B.	GOOD
+#					1.	EXECUTE IMUPULSE (TORQUE IRIGS).
+#					2.	EXECUTE IMUSTALL AND RELEASE EXT VERB DISPLAY SYSTEM.
+
+IMUFINEK	TC	CKMODCAD		# FINE ALIGN WITH GYRO TORQUING.
+		TC	TESTXACT
+		CAF	VNLODGYR		# CALL FOR LOAD OF GYRO COMMANDS
+		TC	BANKCALL
+		CADR	GOXDSPF
+		TC	TERMEXTV
+		TC	+1			# PROCEED WITHOUT A LOAD
+		
+		CAF	IMUFINEV		# RE-DISPLAY OUR OWN VERB
+		TC	BANKCALL
+		CADR	EXDSPRET
+		
+		TC	BANKCALL		# CALL MODE SWITCH PROG
+		CADR	IMUFINE
+		
+		TC	BANKCALL		# HIBERNATION
+		CADR	IMUSTALL
+		TC	ENDEXTVB
+		
+FINEK2		CAF	LGYROBIN		# PINBALL LEFT COMMANDS IN OGC REGISTERS
+		TC	BANKCALL
+		CADR	IMUPULSE
+		
+		TC	BANKCALL		# WAIT FOR PULSES TO GET OUT.
+		CADR	IMUSTALL
+		TC	ENDEXTVB
+		TC	ENDEXTVB
+		
+LGYROBIN	ECADR	OGC
+VNLODGYR	VN	2593
+IMUFINEV	VN	4200			# FINE ALIGN VERB
+
+CKMODCAD	CA	MODECADR
+# Page 244
+		EXTEND
+		BZF	TCQ
+		TC	ALM/END			# SOMEBODY IS USING MODECADR SO EXIT
+
+# GOLOADLV	VERB 50		DESCRIPTION
+#	AND OTHER PLEASE
+#	DO SOMETHING VERBS
+#
+# PLEASE PERFORM, MARK, CALIBRATE, ETC.
+#
+#	1.	PRESSING ENTER ON DSKY INDICATES REQUESTED ACTION HAS BEEN PERFORMED, AND THE PROGRAM DOES THE
+#		SAME RECALL AS A COMPLETED LOAD.
+#	2.	THE EXECUTION OF A VERB 33 (PROCEED WITHOUT DATA) INDICATES THE REQUESTED ACTION IS NOT DESIRED.
+
+GOLOADLV	TC	FLASHOFF
+		CAF	PINSUPBT
+		EXTEND
+		WRITE	SUPERBNK	# TURN ON FE7
+		TC	POSTJUMP
+		SBANK=	PINSUPER
+		CADR	LOADLV1
+
+# V60	VERB 60
+V60		EXTEND			# SET ASTRONAUT TOTAL ATTITUDE (N17) EQUAL
+		DCA	CDUX		# TO PRESENT ATTITUDE
+		DXCH	CPHIX
+		CA	CDUZ
+		TS	CPHIX	+2
+		TC	GOPIN
+		
+# V61	VERB 61
+V61		TC	DOWNFLAG	# SET NEEDLFLG TO 0 (FLAGWRD0,BIT9), PHASE
+		ADRES	NEEDLFLG	# PLANE A/P FOLLOWING ERROR DISPLAYED
+		TC	GOPIN
+		
+# V62	VERB 62
+V62		TC	UPFLAG		# SET NEEDLFLG TO 1 (FLAGWRD0,BIT9),
+		ADRES	NEEDLFLG	# TOTAL ATTITUDE ERROR DISPLAYED
+		
+		TC	UPFLAG		# SET N22ORN17 TO 1 (FLAGWRD9,BIT6),
+		ADRES	N22ORN17	# COMPUTE TOTAL ATTITUDE ERROR WRT N22
+		TC	GOPIN
+		
+# V63	VERB 63
+V63		TC	UPFLAG		# SET NEEDLFLG TO 1 (FLAGWRD0,BIT9),
+		ADRES	NEEDLFLG	# TOTAL ATTITUDE ERROR DISPLAYED
+		
+		TC	DOWNFLAG	# SET N22ORN17 TO 0 (FLAGWRD9,BIT6),
+# Page 245
+		ADRES	N22ORN17	# COMPUTE TOAL ASTRONAUT ATTITUDE ERROR
+		TC	GOPIN
+		
+# Page 246					
+# ALINTIME	VERB 55		DESCRIPTION
+#
+#	1.	SET EXT VERB DISPLAY BUSY FLAG.
+#	2.	DISPLAY FLASHING V25,N24 (LOAD DELTA TIME FOR AGC CLOCK.
+#	3.	REQUIRE EXECUTION OF VERB 23.
+#	4.	ADD DELTA TIME, RECEIVED FROM INPUT REGISTER, TO THE COMPUTER TIME.
+#	5.	RELEASE EXT VERB DISPLAY SYSTEM.
+
+		COUNT	04/R33
+
+ALINTIME	TC	TESTXACT
+
+		CAF	VNLODDT
+		TC	BANKCALL
+		CADR	GOMARKF
+		TC	ENDEXT		# TERMINATE
+		TC	ENDEXT		# PROCEED
+		CS	DEC23		# DATA IN OR RESEQUENCE (UNLIKELY)
+		AD	MPAC		# RECALL LEFT VERB IN MPAC
+		EXTEND
+		BZF	UPDATIME	# GO AHEAD WITH UPDATE ONLY IF RECALL
+		TC	ENDEXT		#	WITH V23 (DATA IN).
+		
+UPDATIME	INHINT			# DELTA TIME IS IN DSPTEM1, +1.
+		CAF	ZERO
+		TS	MPAC +2		# NEEDED FOR TP AGREE
+		TS	L		# ZERO T1 + 2 WHILE ALIGNING.
+		DXCH	TIME2
+		DXCH	MPAC
+		DXCH	DSPTEM2 +1	# INCREMENT
+		DAS	MPAC
+		
+		TC	TPAGREE		# FORCE SIGN AGREEMENT.
+		DXCH	MPAC		# NEW CLOCK.
+		DAS	TIME2
+		RELINT
+UPDTMEND	TC	ENDEXT
+DEC23		DEC	23		# V 23
+
+VNLODDT		VN	2524		# V25N24 FOR LOAD DELTA TIME
+
+# Page 247
+# SYSTEST	VERB 92		DESCRIPTION
+#	OPERATE SELECTED SYSTEM TEST.
+#
+#	1.	REQUIRE P00 OR P00- OR TURN ON OPERATOR ERROR.
+#	2.	TURN OFF DAP IF IT IS ON.
+#	3.	DISPLAY FLASHING V21,N01 (LOAD TEST NUMBER 1 THRU 17).
+#	4.	UPON ENTRY OF TEST NUMBER, SCHEDULE TSELECT WITH PRIORITY 20.
+#
+# 	TSELECT
+#	1.	IF LOADED TEST NUMBER IS VALID, GO TO THAT TEST ROUTINE, OTHERWISE TURN ON OPERATOR ERROR AND
+#		REPEAT LOAD REQUEST DISPLAY.  (NO. 3 ABOVE)
+
+		EBANK=	QPLACE
+		
+		COUNT	04/EXTVB
+		
+SYSTEST		TC	CHKP00H	
+		CA	FLAGWRD1	# IS NODOP01 FLAGBIT ON? (SET BY P11)
+		MASK	NOP01BIT
+		EXTEND
+		BZF	V92CONT		# IF IT'S NOT YET SET, CONTINUE
+		TC	P00DOO		# IT'S ON. SEND NODO ALARM FOR P07
+		OCT	1521
+V92CONT		TC	EXDAPOFF	# TURN DAP OFF IF IT'S ON
+		CAF	PRIO20
+		TC	FINDVAC
+		EBANK=	QPLACE
+		SBANK=	IMUSUPER
+		2CADR	REDO
+		
+		TC	GOPIN
+
+# REDO AND TSELECT ARE NOW IN SYSTEM TEST.		
+		
+		COUNT*	$$/EXTVB	
+# CKOPTVB	VERB 65		DESCRIPTION
+#	OPTICAL VERIFICATION FOR PRELAUNCH.
+#	1.	SCHEDULE GCOMPVER, OPTICAL VERIFICATION SUBPROGRAM, WITH PRIORITY 17.
+
+CKOPTVB		TC	CHECKMM
+		MM	02		# I WONDER IF PRELAUNCH IS RUNNING
+		TC	ALM/END		# NOT RUNNING OPERATOR ERROR
+		INHINT
+		CAF	PRIO16		# PRELAUNCH OPTICAL VERIFICATION
+		TC	FINDVAC
+		EBANK=	QPLACE
+		2CADR	COMPVER		# STANDARD LEADIN TO GCOMPVER.
+		
+		TC	GOPIN
+		
+# Page 248
+# V 78 ....	TO CHANGE GYROCOMPASS AZIMUTH
+
+CHAZFOGC	TC	CHECKMM		# IS IT PRELAUNCH
+		MM	02
+		TC	ALM/END		# NO -- OPERATOR ERROR
+
+		CAF	PRIO16		# PRELAUNCH AZIMUTH CHANGE
+		TC	FINDVAC
+		EBANK=	XSM
+		2CADR	AZMTHCG1
+		
+		TC	PHASCHNG
+		OCT	00174
+		TC	GOPIN
+# Page 249
+# IMUATTCK	VERB 43		DESCRIPTION
+#	LOAD IMU ATTITUDE ERROR METERS
+#
+#	1.	REQUIRE PROGRAM 00 ACTIVE, COARSE ALIGN ENABLE BIT OFF AND ZERO ICDU BIT OFF.
+#	2.	IF GUID REF RELEASE OR LIFTOFF HAS OCCURRED REQUIRE EXT VERB DISPLAY AVAILABLE AND SET BUSY
+#		FLAG, OTHERWISE ALLOW CURRENT EXT VERB DISPLAY TO BE OVER-RIDDEN.
+#	3.	REMOVE COARSE ALIGN ENABLE AND IMU ERROR COUNTER ENABLE.
+#	4.	DISPLAY FLASHING V25,N22 (LOAD NEW ICDU ANGLES).
+#	5.	UPON PROCEED OR ENTER RESPONSE, INITIALIZE CURRENT DAC AND COMMAND VALUES, ENABLE ERROR COUNTERS
+#		TRANSFER LOADED VALUES TO REGISTERS, AND SEND COMMANDS.
+#	6.	IF BUSY FLAG SET, RESET IT TO RELEASE EXT VERB DISPLAY.
+
+IMUATTCK	TC	CHKP00H		
+
+		CAF	OCTAL30		# SEE IF IMU ZERO AND IMU COARSE ARE ON
+		EXTEND		
+		RAND	CHAN12
+		CCS	A
+		TCF	ALM/END		# NOT ALLOWED IF IMU COARSE OR IMU ZERO ON
+		
+		TC	CKLFTBTS	# IS IT BEFORE OR AFTER LIFTOFF
+		TC	TESTXACT	# AFTER
+		CS	OCT50		# REMOVE COARSE AND ECTR ENABLE
+		EXTEND	
+		WAND	CHAN12
+		
+		CAF	VNLODCDU
+		TC	BANKCALL
+		CADR	GOXDSPF
+		TCF	TRMATTCK
+		TC	+1
+		CAF	EBANK6
+		TS	EBANK		# SET E6 FOR NEEDLES.
+		
+		EBANK=	AK
+		
+		TC	BANKCALL	# INITIALIZE CURRENT DAC AND
+		CADR	NEEDLE11	# COMMAND VALUES.
+		
+		TC	BANKCALL	# ENABLE ERROR COUNTERS.
+		CADR	NEEDLER2
+		
+		CAF	TWO		# 4 MS MIN.
+		TC	WAITLIST
+		EBANK=	AK
+		2CADR	ATTCK1
+		
+TRMATTCK	TC	CKLFTBTS	# IS IT BEFORE OR AFTER LIFTOFF
+		TCF	ENDEXT		# AFTER
+		TC	GOPIN
+# Page 250
+ATTCK1		EXTEND			# TRANSFER LOADED VALUES TO DESIRED REQS.
+		DCA	THETAD
+		DXCH	AK
+		CAE	THETAD	+2
+		TS	AK	+2
+		
+		TC	IBNKCALL	# SENDS COMMANDS LIMITED TO +,- 384 PULSES
+		CADR	NEEDLES		# AND LEAVES ERROR COUNTERS ENABLED.
+		
+		TC	TASKOVER
+		
+CKLFTBTS	CAF	GRRBKBIT	# HAS LIFTOFF OCCURRED
+		MASK	FLAGWRD5
+		CCS	A
+		TC	Q		# YES
+		CAF	BIT5
+		EXTEND
+		RAND	CHAN30
+		CCS	A
+		TCF	Q+1
+XACT0Q		TC	Q		# YES
+
+OCTAL30		OCT	30
+VB64		TC	CHKP00H		# DEMAND PROGRAM 00.
+		TC	TESTXACT	# IF DISPLAY SYS. NOT BUSY, MAKE IT BUSY.
+		INHINT
+		CAF	PRIO4
+		TC	FINDVAC
+		EBANK=	RHOSB
+		2CADR	SBANDANT	# CALC.,DISPLAY S-BAND ANTENNA ANGLES.
+		
+		TC	ENDOFJOB
+		
+# ENATMA	VERB 58		DESCRIPTION
+#	ENABLE AUTOMATIC ATTITUDE MANEUVER
+#
+# VERB58 RESETS STIKFLAG TO ENABLE R61 TO PERFORM AUTOMATIC TRACKING MANEUVERS, AFTER INTERRUPTS BY THE RHC 
+# ACTIVITY.
+
+ENATMA		TC	DOWNFLAG	# RESET STIKFLAG.
+		ADRES	STIKFLAG	# BIT 14 FLAG 1
+		TC	GOPIN
+		
+# Page 251
+# STROKON	VERB 68		DESCRIPTION
+#	STROKE TEST SETUP/ENABLE
+#	1.	SET EXT VERB DISPLAY BUSY FLAG
+#	2.	SCHEDULE STRKTST1 WITH PRIORITY 30.
+#	3.	RELEASE EXT VERB DISPLAY.
+
+		EBANK=	T5TVCDT
+STROKON		CS	FLAGWRD6	# V68	PERMITTED ONLY DURING TVC
+		MASK	OCT60000
+		EXTEND
+		BZMF	ALM/END		# NOT TVC....FLASH OP ERROR LIGHT
+		CAF	PRIO30		# JOB REQUEST, TO SET UP STROKE TEST,
+		TC	NOVAC		#	INCLUDING INITIALIZATIONS
+		SBANK=	PINSUPER	# Added RSB 2009.
+		EBANK=	STROKER
+		2CADR	STRKTSTI
+		
+		TC	GOPIN
+		
+# STABLISH	VERB 46		DESCRIPTION
+#	ESTABLISH G AND N AUTOPILOT CONTROL
+#	1.	SETS UP EITHER RCS, ENTRY, OR SATURN
+#	2.	IF TVC IS ON, SETS UP CSM/LM SWITCH-OVER
+#			FROM HIGH BW TO LOW BW
+
+
+STABLISH	CAF	EBANK6		# V46 - SET EBANK TO E6
+		TS	EBANK
+
+		CS	FLAGWRD6	# TEST FOR TVC
+		MASK	OCT60000	
+		EXTEND
+		BZMF	+8
+
+		CAE	DAPDATR1	# TET FOR CSM/LM
+		MASK	BIT14
+		EXTEND
+		BZMF	+3
+
+		TC	POSTJUMP	# CSM/LM, SO PERFORM HB TO LB SWITCH-OVER
+		CADR	PRESWTCH
+
++3		TC	ALM/END
+
++8		TC	POSTJUMP	# SET UP RCS, ENTRY, OR SATURN-STICK DAP
+		CADR	DAPFIG
+# Page 252
+# CREMANU	VERB 49		DESCRIPTION
+#	START AUTOMATIC ATTITUDE MANEUVER
+#
+#	1.	REQUIRE PROGRAM 00 ACTIVE.
+#	2.	SET EXT VERB DISPLAY BUSY FLAG.
+#	3.	SCHEDULE R62DISP WITH PRIORITY 10.
+#	4.	RELEASE EXT VERB DISPLAY.
+#
+#	R62DISP
+#	1.	DISPLAY FLASHING V06,N22 (DECIMAL DISPLAY NEW ICDU ANGLES).  UPON IMMEDIATE RETURN, SET-UP GROUP
+#		4 FOR RESTART OF DISPLAY SEQUENCE.
+#		RESPONSES
+#		A.	TERMINATE
+#			1.	GOTOP00H
+#		B.	PROCEED
+#			1.	SET 3AXISFLG TO INDICATE MANEUVER IS SPECIFIED BY 3 AXIS.
+#			2.	EXECUTE R60CSM (ATTITUDE MANEUVER).
+#			3.	ZERO GROUP 4 (END R62).
+#		C.	ENTER
+#			1.	REPEAT FLASHING V06,N22.
+
+CREWMANU	TC	CHKP00H		# DEMAND P00
+	
+		TC	TESTXACT
+		
+		CAF	PRIO10
+		TC	FINDVAC
+		EBANK=	CPHI
+		2CADR	R62DISP
+		
+		TC	ENDOFJOB
+		
+# Page 253
+# DAPDISP	VERB 48		DESCRIPTION
+#	LOAD AUTOPILOT DATA (ROUTINE R03)
+#
+#	0.	CHECKFAIL AND RETURN IF TVC.
+#	1.	REQUIRE EXT VERB DISPLAY AVAILABLE AND SET BUSY FLAG.
+#	2.	LOWER PRIORITY TO 10.
+#	3.	DISPLAY FLASHING V04,N46 (DISPLAY AUTOPILOT CONFIGURATION).
+#	4.	UPON PROCEED RESPONSE, EXECUTE S41.2.
+#	5.	DISPLAY FLASHING V06,N47 (DISPLAY CSM WGT., LEM WGT.)
+#	6.	UPON PROCEED RESPONSE EXECUTE S40.14.
+#	7.	DISPLAY FLASHING V06,N48 (DISPLAY PITCH TRIM, YAW TRIM)
+#	8.	UPON PROCEED RESPONSE, RELEASE EXTENDED VERB DISPLAY SYSTEM.
+
+		COUNT*	$$/EXTVB
+		
+DAPDISP		CS	FLAGWRD6
+		MASK	OCT60000
+		EXTEND
+		BZMF	+2		# TVC = 10, CS YIELDS 01, BZMF TO CONTINUE
+		TC	ALM/END		# RETURN IF TVC
+		
+		TC	TESTXACT
+		TC	BANKCALL
+		CADR	DAPDISP1
+		BANK	42
+		SETLOC	EXTVBS
+		BANK
+		COUNT	24/R03
+		
+DAPDISP1	CAF	EBANK6
+		TS	EBANK
+		
+		CAF	PRIO10
+		TC	PRIOCHNG
+		
+DONOUN46	CAF	V04N46		#	R1		R2
+		TC	BANKCALL	#	DAPDATR1	DAPDATR2
+		CADR	GOXDSPF		# GOXDSP ROUTINES USED FOR EXTENDED VERBS.
+		
+		TC	ENDEXT		# EXT. VBS GO TO ENDEXT, NOT ENDOFJOB.
+		TC	+2
+		TC	DONOUN46
+		
+		CA	DAPDATR1
+		MASK	BIT4
+		CCS	A
+		TCF	MAXIN
+		TC	DOWNFLAG
+		ADRES	MAXDBFLG
+MAXOUT		TC	BANKCALL
+		CADR	S41.2
+		
+DONOUN47	CAF	V06N47		#	R1		R2		R3
+# Page 254
+		TC	BANKCALL	#	CSM WGT.	LEM WGT.	BLANK
+		CADR	GOXDSPF
+		
+		TC	ENDEXT
+		TC	+2
+		TC	DONOUN47
+		CAE	DAPDATR1	# DO MASS PROPERTIES CALCULATION ONLY IF
+		MASK	PRIO30		# CONFIG = 1(CSM), 2 (CSM/LM), 6(CSM/LMA)
+		EXTEND
+		BZF	DONOUN48	# SKIP IF 0,4
+		COM
+		MASK	PRIO30
+		EXTEND
+		BZF	DONOUN48	# SKIP IF 3,7
+		INHINT
+		TC	IBNKCALL
+		CADR	MASSPROP	# UPDATE IXX, IAVG, IAVG/TLX
+		
+		RELINT
+		TC	BANKCALL
+		CADR	S40.14		# COMPUTE RCS DAP STUFF
+		
+DONOUN48	CAF	V0648		#	R1		R2		R3
+		TC	BANKCALL	#	PTRIM		YTRIM		BLANK
+		CADR	GOXDSPF
+		
+		TC	ENDEXT
+		TC	ENDEXT
+		TC	DONOUN48
+		
+MAXIN		TC	UPFLAG
+		ADRES	MAXDBFLG
+		TC	MAXOUT
+		
+V0648		VN	0648
+V06N47		VN	0647
+V04N46		VN	0446
+		BANK	43
+		SETLOC	EXTVERBS
+		BANK
+		
+		COUNT*	$$/EXTVB
+
+# V82PERF	VERB82		DESCRIPTION
+#	REQUEST ORBIT PARAMETERS DISPLAY (R30)
+#
+#	1.	IF AVERAGE G IS OFF:
+#			FLASH DISPLAY V04N06.  R2 INDICATES WHICH SHIP'S STATE VECTOR IS
+#			 TO BE UPDATED.  INITIAL CHOICE IS THIS SHIP (R2=1).  ASTRONAUT
+#			 CAN CHANGE TO OTHER SHIP BY V22EXE, WHERE X NOT EQ I.
+#			SELECTED STATE VECTOR UPDATED BY THISPREC (OTHPREC).
+#			CALLS SR30.1 (WHICH CALLS TFFCONMU + TFFRP/RA) TO CALCULATE
+# Page 255
+#			 RPER (PERIGEE RADIUS), RAP0 (APOGEE RADIUS), HPER (PERIGEE
+#			 HEIGHT ABOVE LAUNCH PAD OR LUNAR LANDING SITE), HAPO (APOGEE
+#			 HEIGHT AS ABOVE), TPER (TIME TO PERIGEE), TFF (TIME TO 
+#			 INTERSECT 300 KFT ABOVE PAD OR 35KFT ABOVE LANDING SITE).
+#			FLASH MONITOR V16N44 (HAPO, HPER, TFF).  TFF IS -59M59S IF IT WAS
+#			 NOT COMPUTABLE, OTHERWISE IT INCREMENTS ONCE PER SECOND.
+#			 ASTRONAUT HAS OPTION TO MONITOR TPER BY KEYING IN N 32 E.
+#			 DISPLAY IS IN HMS, IS NEGATIVE (AS WAS TFF), AND INCREMENTS
+#			 ONCE PER SECOND ONLY IF TFF DISPLAY WAS -59M59S.
+#
+#	2.	IF AVERAGE G IS ON:
+#			CALLS SR30.1 APPROX EVERY TWO SECS.  STATE VECTOR IS ALWAYS
+#			 FOR THIS VEHICLE.  V82 DOES NOT DISTURB STATE VECTOR.  RESULTS
+#			 OF SR30.1 ARE RAPO, RPER, HAPO, HPER, TPER, TFF.
+#			FLASH MONITOR V16N44 (HAPO, HPER, TFF).
+#			 IF MODE IS P11, THEN CALL DELRSPL SO ASTRONAUT CAN MONITOR
+#			 RESULTS BY N50E.  SPLASH COMPUTATION DONE ONCE PER TWO SECS.
+#
+# ADDENDUM:	HAPO AND HPER SHOULD BE CHANGED TO READ HAPOX AND HPERX IN THE
+#		ABOVE REMARKS.
+
+V82PERF		TC	TESTXACT
+
+		CAF	PRIO7	
+		TC	PRIOCHNG
+		TC	POSTJUMP
+		CADR	V82CALL		# ***** V82CALL MUST NOT BE A FINDVAC JOB.
+		
+# VB83PERF	VERB 83		DESCRIPTION
+#	REQUEST RENDEZVOUS PARAMETER DISPLAY (R31)
+#
+#	1.	SET EXT VERB DISPLAY BUSY FLAG.
+#	2.	SCHEDULE V83CALL WITH PRIORITY 10.
+#		A.	DISPLAY
+#			R1	RANGE
+#			R2	RANGE RATE
+#			R3	THETA
+
+V83PERF		TC	TESTXACT
+		INHINT
+		CS	FLAGWRD9	# SET R31 FLAG-BIT 4 FLAGWRD9
+		MASK	R31FLBIT
+		ADS	FLAGWRD9
+		CAF	PRIO5
+		TC	NOVAC
+		SBANK=	LOWSUPER	# Added by RSB 2009
+		EBANK=	SUBEXIT
+		2CADR	R31CALL
+		
+		TC	ENDOFJOB
+
+# Page 256
+V85PERF		TC	TESTXACT
+		INHINT
+		CS	R31FLBIT	# RESET R31 FLAG TO INDICATE R34
+		MASK	FLAGWRD9
+		TS	FLAGWRD9
+		TC	V83PERF	+5
+# Page 257
+#	GOTOR21		VERB 57
+#	GOTOR23-	VERB 54		DESCRIPTION
+# SET UP MARKING FOR R22 (REND TRACK DATA PROC)
+# 1.	SET EXT VERB DISPLAY BUSY FLAG
+# 2.	IF REND (P20 RUNNING) + TRACK (TRACKING ALLOWED) FLAGS ARE SET,
+#	SCHEDULE R21 OR R23 WITH PRIORITY 16, OTHERWISE TURN ON ALARM 406
+# 3.	RELEASE EXT VERB DISPLAY SYSTEM
+
+GOTOR21		TC	DOWNFLAG	# CLEAR R23FLG
+		ADRES	R23FLG		# BIT 9 FLAG 1
+		TC	+3
+GOTOR23		TC	UPFLAG		# SET R23FLG
+		ADRES	R23FLG		# BIT 9 FLAG 1
+		TC	TESTXACT
+		CA	FLAGWRD0	# VB 57	UNACCEPTABLE UNLESS BOTH
+		MASK	RNDVZBIT	#	RENDEZVOUS AND TRACK FLAGS ON
+		EXTEND
+		BZF	R22ALARM
+		
+		CA	FLAGWRD1
+		MASK	TRACKBIT
+		EXTEND
+		BZF	R22ALARM
+		
+		CA	FLAGWRD1	# TEST R23FLG
+		MASK	R23BIT
+		EXTEND
+		BZF	REGR21		# R21
+		CAF	PRIO16
+		TC	NOVAC
+		EBANK=	MRKBUF1
+		2CADR	R23CSM
+		
+		TC	ENDOFJOB
+REGR21		CAF	PRIO16
+		TC	NOVAC
+		EBANK=	MRKBUF1
+		2CADR	R21CSM
+		
+		TC	ENDOFJOB
+R22ALARM	TC	ALARM		# VERB 57 WAS SELECTED AND NEITHER REND
+		OCT	00406		#	NOR TRACK FLAG WERE ON.
+		TC	ENDEXT
+		
+# Page 258
+# VERB 86	DESCRIPTION
+#	V86 IS TO R23 AS MARK REJECT IS TO R21
+#	V86 IS THE MARK REJECT FOR R23 (THE BACKUP MARKING ROUTINE)
+
+		EBANK=	MRKBUF1
+V86PERF		CAF	EBANK7		# BACKUP MARK REJECT (R23)
+		XCH	EBANK
+		CA	NEGONE
+		TS	MRKBUF1
+		TC	GOPIN
+		
+# Page 259
+# TRACKTRM	VERB 56		DESCRIPTION
+#	TERMINATE TRACKING (P20)
+#	1.	KNOCK DOWN RENDEZVOUS, TRACK, AND UPDATE FLAGS.
+#	2.	REQUIRE P20 NOT RUNNING ALONE OR GO TO GOTOP00H (REQUEST PROGRAM 00).
+#	3.	REQUIRE R22 RUNNING OR GO TO PINBRNCH.
+#	4.	IF INTEGRATION RUNNING, STALL UNTIL IT IS COMPLETED, THEN ZERO GROUPS 2 AND 3 TO KILL R21 + R22
+#	3.	KNOCK DOWN RENDEZFOUS, R22, R21, TRACK, UPDATE, AND TARG1 FLAGS.
+#	4.	GO TO ENEMA (SOFTWARE RESTART).
+#	REFERENCE
+#		P20	RENDEZVOUS	NAVIGATION
+#		R21	RENDEZVOUS	TRACKING SIGHTING MARK.
+#		R22	RENDEZVOUS	TRACKING DATA PROCESSING.
+
+TRACKTRM	CA	RNDVZBIT	# IS REND FLAG ON
+		MASK	FLAGWRD0
+		EXTEND
+		BZF	GOPIN		# NO
+		
+		TC	DOWNFLAG
+		ADRES	RNDVZFLG
+		
+		CA	TRACKBIT	# IS TRACK FLAG ON
+		MASK	FLAGWRD1
+		EXTEND
+		BZF	GOPIN		# NO
+		
+		TC	DOWNFLAG
+		ADRES	TRACKFLG
+		
+		TC	DOWNFLAG
+		ADRES	UPDATFLG
+		
+		TC	DOWNFLAG
+		ADRES	IMUSE
+		
+		CAF	EBANK6
+		TS	EBANK
+		
+		INHINT
+		TC	STOPRATE
+		
+		CAF	NEGONE
+		TS	OPTIND
+		
+		TC	INTPRET
+		CALL
+			INTSTALL	# DON'T INTERRUPT INTEGRATION
+		EXIT
+
+		TC	2PHSCHNG
+# Page 260
+		OCT	2		# KILL GROUP 2 TO HALT P20 ACTIVITY
+		OCT	1		# ALSO KILL GROUP 1
+		
+CLEANOUT 	INHINT
+		TC	POSTJUMP
+		CADR	ENEMA		# CAUSE RESTART
+		
+# LEMVEC	VERB 80		DESCRIPTION
+#	UPDATE LEM STATE VECTOR
+#		RESET VEHUPFLG TO 0
+
+LEMVEC		TC	DOWNFLAG
+		ADRES	VEHUPFLG	# VEHUPFLG DOWN INDICATES LEM
+		
+		TCF	GOPIN
+		
+# CSMVEC	VERB 81		DESCRIPTION
+#	UPDATE CSM STATE VECTOR
+#		SET VEHUPFLG TO 1
+
+CSMVEC		TC	UPFLAG
+		ADRES	VEHUPFLG	# VEHUPFLG UP INDICATES CM
+		
+		TCF	GOPIN
+		
+# DNEDUMP	VERB 74		DESCRIPTION
+#	INITIALZE DOWN-TELEMETRY PROGRAM FOR ERASABLE MEMORY DUMP.
+#
+#	1.	SET EXT VERB DISPLAY BUSY FLAG.
+#	2.	REPLACE CURRENT DOWNLIST WITH ERASABLE MEMORY.
+#	3.	RELEASE EXT VERB DISPLAY.
+
+		EBANK=	10
+DNEDUMP		CAF	LDNDUMPI
+		TS	DNTMGOTO
+		TC	GOPIN
+
+V74		EQUALS	DNEDUMP
+LDNDUMPI	REMADR	DNDUMPI
+
+# LFTFLGON	VERB 75		DESCRIPTION
+#	SET LIFT-OFF FLAG
+#	1.	SETUP GRRBKFLG, GUIDANCE REFERENCE RELEASE BACK-UP FLAG.
+#	2.	RETURN VIA PINBRNCH
+
+LFTFLGON	TC	UPFLAG		# VB 75 -- SET LIFTOFF FLAG BIT
+		ADRES	GRRBKFLG	# BIT 5 FLAG 5
+		TC	GOPIN
+		
+# Page 261
+CHKP00H		CA	MODREG
+		EXTEND
+		BZF	TCQ
+		TCF	ALM/END
+		
+EXDAPOFF	EXTEND
+		DCA	IDLECADR	# SET T5 TO IDLE.
+		DXCH	T5LOC
+		CS	OCT60000
+		MASK	FLAGWRD6	# RESET DAPBITS 1 AND 2.
+		TS	FLAGWRD6
+		TC	Q
+		
+		SBANK=	PINSUPER	# Added RSB 2009
+		EBANK=	PACTOFF
+IDLECADR	2CADR	T5IDLOC
+
+# Page 262
+# VERB 89	DESCRIPTION	RENDEZVOUS FINAL ATTITUDE ROUTINE (R63)
+# 
+# CALLED BY VERB 89 ENTER DURING P00.  PRIO 10 IS USED.  CALCULATES AND
+# DISPLAYS FINAL GIMBAL ANGLES TO POINT CSM +X AXIS OR PREFERRED AXIS
+# (UNIT(Z)COS55 DEG + UNIT(X)SIN55 DEG) AT LM.
+#
+# 1. KEY IN V 89 E ONLY IF IN PROG 00.  IF NOT IN P00, OPERATOR ERROR AND
+# EXIT R63, OTHERWISE CONTINUE.
+#
+# 2. IF IN P00, DO IMU STATUS CHECK ROUTINE (R02BOTH).  IF IMU ON AND ITS
+# ORIENTATION KNOWN TO CGC, CONTINUE.
+#
+# 3. FLASH DISPLAY V 04 N 06.  R2 INDICATES WHICH SPACECRAFT AXIS IS TO
+# BE POINTED AT LM.  INITIAL CHOICE IS PREFERRED AXIS (R2=1).
+# ASTRONAUT CAN CHANGE TO (+X) AXIS (R2 NOT = 1) BY V 22 E 2 E.  CONTINUE
+# AFTER KEYING IN PROCEED.
+#
+# 4. SET PREFERRED ATTITUDE FLAG ACCORDING TO OPTION DESIRED.  SET FLAG
+# FOR PREFERRED AXIS.  RESET FLAG FOR X AXIS.
+#
+# 5. CURRENT TIME IS STORED AND R63COMP IS CALLED
+#
+#	R63COMP JOB:
+#
+#		UPDATES CSM AND LM STATE VECTORS USING CONIC EQUATIONS.
+#
+#		CALCULATES BOTH PREFERRED AND X AXIS TRACKING ATT FROM CSM TO LM.
+#
+#		DESIRED GIMBAL ANGLES AS INDICATED BY PREFERRED ATTITUDE FLAG
+#		ARE STORED FOR LATER R60CSM CALL.
+#
+# 6.  FLASH DISPLAY V 06 N18 AND AWAIT RESPONSE.
+#
+# 7.  RECYCLE:  RETURN TO STEP 5.
+#     TERMINATE:  EXIT R63 ROUTINE
+#     PROCEED:  RESET 3AXISFLG AND CALL R60CSM FOR ATTITUDE MANEUVER.
+
+V89PERF		TC	CHKP00H		# DEMAND P00
+		TC	TESTXACT
+		INHINT
+		CAF	PRIO10
+		TC	FINDVAC
+		SBANK=	LOWSUPER	# Added by RSB 2009.
+		EBANK=	P21TIME
+		2CADR	V89CALL
+		
+		TCF	ENDOFJOB
+		
+WMATRXNG	TC	DOWNFLAG	# RESET RENDWFLAG
+		ADRES	RENDWFLG		
+# Page 263
+		
+		TC	DOWNFLAG	# RESET ORBWFLAG
+		ADRES	ORBWFLAG
+		TC	GOPIN
+		
+GOSHOSUM	EQUALS	SHOWSUM
+
+SHOWSUM		TC	CHKP00H
+		TC	TESTXACT	# *
+		CAF	S+1		# *
+		TS	SKEEP6		# * SHOWSUM OPTION
+		CAF	S+ZERO		# *
+		TS	SMODE		# * TURN OFF SELF-CHECK
+		CA	SELFADRS	# *
+		TS	SELFRET		# *
+		TC	STSHOSUM	# * ENTER ROPECHK
+
+SDISPLAY	LXCH	SKEEP2		# * BNK NO FOR DSP
+		LXCH	SKEEP3		# * BUGGER WORD FOR DSP
+NOKILL		CA	ADRS1		# *
+		TS	MPAC	+2	# *
+		CA	VNCON		# * 0501
+		TC	BANKCALL	# *
+		CADR	GOXDSPF		# *
+		TC	+3		# *
+		TC	NXTBNK		# *
+		TC	NOKILL		# *
+		CA	SELFADRS
+		TS	SKEEP1
+		
+		TC	ENDEXT		# *
+
+VNCON		VN	501		# *
+
+ENDSUMS		CA	SKEEP6		# *
+		EXTEND			# *
+		BZF	SELFCHK		# * ROPECHK, START SELFCHK AGAIN.
+		TC	STSHOSUM	# * START SHOWSUM AGAIN.
+	
+		
+# VB 76 --- SET PREFERRED ATTITUDE FLAG --- DRIVE TO PREFERRED.
+
+SETPRFLG	TC	UPFLAG
+		ADRES	PRFTRKAT	# BIT 10 FLAG 5
+		TC	GOPIN
+		
+# VB 77 --- RESET PREFERRED ATTITUDE FLAG --- DRIVE TO +X-AXIS ATT.
+
+RESETPRF	TC	DOWNFLAG
+		ADRES	PRFTRKAT	# BIT 10 FLAG 5
+		TC	GOPIN
+		
+# Page 264
+# VB 87 --- SET VHF RANGE FLAG --- ALLOWS R22 TO ACCEPT RANGE DATA.
+
+SETVHFLG	TC	INTPRET
+		SET	EXIT
+			VHFRFLAG
+		TC	GOPIN
+		
+# VB 88 --- RESET VHF RANGE FLAG --- STOPS ACCEPTANCE OF RANGE DATA.
+
+RESETVHF	TC	INTPRET
+		CLEAR	EXIT
+			VHFRFLAG
+		TC	TRFAILOF	# TRACKER FAIL LIGHT
+		
+		TC	GOPIN
+		
+# VERB 66.	VEHICLES ARE ATTACHED. --- MOVE THIS VEHICLE STATE VECTOR TO
+#		OTHER VEHICLE STATE VECTOR.
+
+# USE SUBROUTINE GENTRAN.
+		
+		EBANK=	RRECTHIS
+ATTACHED	CAF	PRIO10
+		TC	FINDVAC
+		EBANK=	RRECTHIS
+		2CADR	ATTACHIT
+		
+		TC	ENDOFJOB
+		
+ATTACHIT	TC	INTPRET
+		CALL
+			INTSTALL
+		SET	BON
+			MOONOTH
+			MOONTHIS
+			+3
+		CLEAR
+			MOONOTH
+		EXIT
+		CAF	OCT51
+		TC	GENTRAN
+		ADRES	RRECTHIS	# OUR STATE VECTOR INTO OTHER VIA GENTRAN
+		ADRES	RRECTOTH
+		
+TACHEXIT	RELINT
+		TC	INTPRET
+		CALL			# UPDATE RN, VN, R-OTHER, V-OTHER
+			PTOACSM
+# Page 265
+		LXA,2	CALL
+			PBODY
+			SVDWN1
+		CALL
+			SVDWN2
+		EXIT
+		
+		CAF	TCPINAD
+		INDEX	FIXLOC
+		TS	QPRET
+		TC	POSTJUMP
+		CADR	INTWAKE
+		
+TCPIN		RTB
+			PINBRNCH
+			
+OCT51		OCT	51
+TCPINAD		CADR	TCPIN
+
+# VERB 47.  MOVE LM STATE VECTOR INTO CSM STATE VECTOR
+
+LMTOCMSV	CAF	PRIO10
+		TC	FINDVAC
+		EBANK=	RRECTHIS
+		2CADR	LMTOCM
+		
+		TC	ENDOFJOB
+		
+LMTOCM		TC	INTPRET
+		CALL
+			INTSTALL
+		SET	BON
+			MOONTHIS
+			MOONOTH
+			+3
+		CLEAR
+			MOONTHIS
+		EXIT
+		
+		CAF	OCT51
+		TC	GENTRAN
+		ADRES	RRECTOTH	# LM STATE VECTOR INTO CM VIA GENTRAN
+		ADRES	RRECTHIS
+		
+		TCF	TACHEXIT
+		
+# VERB 94 --- DO R64 VIA ENEMA TO PICK UP IN P23.
+
+VERB94		CAF	V94FLBIT
+		MASK	FLAGWRD9	# IS V94FLAG SET
+# Page 266
+		EXTEND
+		BZF	ALM/END		# NO --- OPERATOR ERROR
+		
+		TC	DOWNFLAG
+		ADRES	V94FLAG
+		
+		TC	CHECKMM		# IS IT P23
+		MM	23
+		TC	ALM/END		# NO -- OPERATOR ERROR
+		TC	PHASCHNG
+		OCT	112		# SET GROUP 2 TO DO R64
+		
+		TC	CLEANOUT	# CAUSE RESTART
+		
+# V90PERF	VERB 90		DESCRIPTION
+#	REQUEST RENDEZVOUS OUT-OF-PLANE DISPLAY (R36)
+#
+#	1.	SET EXT VERB DISPLAY BUSY FLAG.
+#	2.	SCHEDULE R36 CALL WITH PRIORITY 10
+#		A.	DISPLAY
+#			TIME OF EVENT -- HOURS, MINUTES, SECONDS
+#			Y 	OUT-OF-PLANE POSITION -- NAUTICAL MILES
+#			YDOT	OUT-OF-PLANE VELOCITY -- FEET/SECOND
+#			PSI	ANGLE BTW LINE OF SIGHT AND FORWARD
+#				DIRECTION VECTOR IN HORIZONTAL PLANE -- DEGREES
+
+V90PERF		TC	TESTXACT
+		CAF	PRIO7		# R36,V90
+		TC	FINDVAC
+		SBANK=	PINSUPER	# Added RSB 2009
+		EBANK=	RPASS36
+		2CADR	R36
+		
+		TCF	ENDOFJOB
+		
+# VERB 96  SET QUITFLAG TO STOP INTEGRATION
+
+VERB96		TC	UPFLAG		# QUITFLAG WILL CAUSE INTEGRATION TO EXIT
+		ADRES	QUITFLAG	# 	AT NEXT TIMESTEP
+		
+		TC	UPFLAG
+		ADRES	V96ONFLG
+		CAF	ZERO
+		TC	POSTJUMP
+		CADR	V37		# GO TO P00
+		
+		EBANK=	LANDMARK
+V52		TC	CHECKMM		# IS P22 OPERATING
+		MM	22
+		TC	ALM/END		# NO
+		CAF	LANDBANK
+		TS	EBANK
+		
+# Page 267
+		CS	PRIO7		# YES	SET BITS 12,11,10 OF LANDMARK =
+		MASK	LANDMARK	#	BITS 14,13,12 OF MARKSTAT AFTER
+		TS	LANDMARK	#	SUBT. THEM FROM 5 TO GET OFFSET
+		CA	MARKSTAT	#	MARK NO.
+		TS	SR
+		CA	SR
+		CA	SR
+		MASK	PRIO7
+		CS	A
+		AD	PRIO5
+		ADS	LANDMARK
+		TC	GOPIN
+LANDBANK	ECADR	LANDMARK
+
+# VERB 67  ASTRONAUT DISPLAY OF W MATRIX
+
+V67		TC	TESTXACT
+		CAF	PRIO5
+		TC	FINDVAC
+		EBANK=	W
+		2CADR	V67CALL
+		
+		TC	ENDOFJOB
+		
+# VB 44. SET SURFACE FLAG.
+
+SETSURF		TC	UPFLAG
+		ADRES	SURFFLAG
+		TCF	GOPIN
+		
+# VB 45. RESET SURFACE FLAG
+
+RESTSRF		TC	DOWNFLAG
+		ADRES	SURFFLAG
+		TCF	GOPIN
diff --git a/FINDCDUW--GUIDAP_INTERFACE.s b/FINDCDUW--GUIDAP_INTERFACE.s
new file mode 100644
index 0000000..637f04e
--- /dev/null
+++ b/FINDCDUW--GUIDAP_INTERFACE.s
@@ -0,0 +1,743 @@
+# Copyright:	Public domain.
+# Filename:	FINDCDUW--GUIDAP_INTERFACE.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:	908-925
+# Mod history:	2009-05-28 HG	Transcribed from 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 001 of AGC program LMY99 by NASA 2021112-61
+#	16:27 JULY 14, 1969 
+
+# Page 908
+# PROGRAM NAME:  FINDCDUW
+# MOD NUMBER:  1	68-07-15
+# MOD AUTHOR:  KLUMPP
+#
+# OBJECTS OF MOD:	1.	TO SUPPLY COMMANDED GIMBAL ANGLES FOR NOUN 22.
+#			2.	TO MAINTAIN CORRECT AND CURRENT THRUST
+#				DIRECTION DATA IN ALL MODES.  THIS IS DONE BY
+#				FETCHING FOR THE THRUST DIRECTION FILTER THE
+#				CDUD'S IN PNGCS-AUTO, THE CDU'S IN ALL OTHER
+#				MODES.
+#			3.	TO SUBSTITUDE A STOPRATE FOR THE NORMAL
+#				AUTOPILOT COMMANDS WHENEVER
+#				1) NOT IN PNGCS-AUTO, OR
+#				2) ENGINE IS OFF.
+#
+# FUNCTIONAL DESCRIPTION:
+#
+# FINDCDUW PROVIDES THE INTERFACES BETWEEN THE VARIOUS POWERED FLITE GUIDANCE PROGRAMS
+# AND THE DIGITAL AUTOPILOT.  THE INPUTS TO FINDCDUW ARE THE THRUST COMMAND VECTOR
+# AND THE WINDOW COMMAND VECTOR, AND THE OUTPUTS ARE THE GIMBAL ANGLE
+# INCRMENTS, THE COMMANDED ATTITUDE ANGLE RATES, AND THE COMMANDED
+# ATTITUDE LAG ANGLES (WHICH ACCOUNT FOR THE ANGLES BY WHICH THE BODY WILL
+# LAG BEHIND A RAMP COMMAND IN ATTITUDE ANGLE DUE TO THE FINITE ANGULAR
+# ACCELERATIONS AVAILABLE).
+#
+# FINDCDUW ALIGNS THE ESTIMATED THRUST VECTOR FROM THE THRUST DIRECTION
+# FILTER WITH THE THRUST COMMAND VECTOR, AND, WHEN XDVINHIB SET,
+# ALIGNS THE +Z HALF OF THE LM ZX PLANE WITH THE WINDOW COMMAND VECTOR.
+#
+# Page 909
+# SPECIFICATIONS:
+#
+# INITIALIZATION:	A SINGLE INTERPRETIVE CALL TO INITCDUW IS REQUIRED
+#			BEFORE EACH GUIDED MANEUVER USING FINDCDUW.
+#
+# CALL:			INTERPRETIVE CALL TO FINDCDUW WITH THE THRUST COMMAND
+#			VECTOR IN MPAC.  INTERPRETIVE CALL TO FINDCDUW -2 WITH
+#			THE THRUST COMMAND VECTOR IN UNFC/2 AND NOT IN MPAC.
+#
+# RETURNS:		NORMAL INTERPRETIVE IN ALL CASES
+#			1.	NORMALLY ALL AUTOPILOT CMDS ARE ISSUED.
+#			2.	IF NOT PNGCS AUTO, DO STOPRATE AND RETURN
+#				WITHOUT ISSUING AUTOPILOT CMDS.
+#			3.	IF ENGINE OFF, DO STOPRATE AND RETURN WITHOUT
+#				ISSUING AUTOPILOT CMDS.
+#
+# ALARMS:		00401	IF INPUTS DETERMINE AN ATTITUDE IN GIMBAL LOCK.
+#				FINDCDUW DRIVES CDUXD AND CDUYD TO THE RQD VALUES,
+#				BUT DRIVES CDUZD ONLY TO THE GIMBAL LOCK CONE.
+#
+#			00402	IF UNFC/2 OR UNWC/2 PRODUCE OVERFLOW WHEN
+#				UNITIZED USING NORMUNIT.  FINDCDUW ISSUES
+#				STOPRATE AS ONLY INPUT TO AUTOPILOT.
+#
+# INPUTS:		UNFC/2		THRUST COMMAND VECTOR, NEED NOT BE SEMI-UNIT.
+#			UNWC/2		WINDOW COMMAND VECTOR, NEED NOT BE SEMI-UNIT.
+#			OGABIAS		POSSIBLE BIAS FOR OUTER GIMBAL ANGLE (ZEROED IN INITCDUW), UNITS OF PI.
+#			XOVINHIB	FLAG DENOTING X AXIS OVERRIDE INHIBITED.
+#			CSMDOCKD	FLAG DENOTING CSM DOCKED.
+#			STEERSW		FLAG DENOTING INSUFF THRUST FOR THRUST DIR FLTR.
+#
+# OUTPUTS:		DELCDUX,Y,Z
+#			OMEGAPD,+1,+2
+#			DELPEROR,+1,+2
+#			CPHI,+1,+2 FOR NOUN22
+#
+# DEBRIS:		FINDCDUW DESTROYS SINCDUX,Y,Z AND COSCDUX,Y,Z BY
+#			WRITING INTO THESE LOCATIONS THE SINES AND COSINES
+#			OF THE CDUD'S IN PNGCS-AUTO, OF THE CDU'S OTHERWISE.
+
+# Page 910
+# INITIALIZATION FOR FINDCDUW
+
+		BANK	30
+		SETLOC	FCDUW
+		BANK
+
+		EBANK=	ECDUW
+		COUNT*	$$/FCDUW
+
+INITCDUW	VLOAD
+			UNITX
+		STORE	UNFV/2
+		STORE	UNWC/2
+		RVQ
+
+# FINDCDUW PRELIMINARIES
+
+		VLOAD			# FINDCDUW -2:  ENTRY WHEN UNFC/2 PRE-STORD
+			UNFC/2		# INPUT VECTORS NEED NOT BE SEMI-UNIT
+FINDCDUW	BOV	SETPD		# FINDCDUW: ENTRY WHEN UNFC/2 IN MPAC
+			FINDCDUW	# INTERPRETER NOW INITIALIZED
+			22		# LOCS 0 THRU 21 FOR DIRECTION COSINE MAT
+		STQ	EXIT
+			QCDUWUSR	# SAVE RETURN ADDRESS
+
+# MORE HAUSKEEPING
+		CA	ECDUWL
+		XCH	EBANK		# SET EBANK
+		TS	ECDUWUSR	# SAVE USER'S EBANK
+
+		CA	DAPBOOLS
+		MASK	CSMDOCKD	# CSMDOCKD MUST NOT BE BIT15
+		CCS	A
+		CA	ONE		# INDEX IF CSM DOCKED
+		TS	NDXCDUW
+
+		CA	XOVINHIB	# XOVINHIB MUST NOT BE BIT15
+		TS	FLPAUTNO	# SET TO POS-NON-ZERO FLAG PNGCS AUTO NOT
+
+		MASK	DAPBOOLS
+		TS	FLAGOODW	# FLAG0ODW = ANY PNZ NUMBER IF XOV INHIBTD
+
+# Page 911
+# FETCH BASIC DATA
+		INHINT			# RELINT AT PAUTNO (TC INTPRET)
+
+		CA	CDUX		# FETCH CDUX,CDUY,CDUZ IN ALL CASES, BUT
+		TS	CDUSPOTX	#	REPLACE BELOW IF PNGCS AUTO
+		CA	CDUY
+		TS	CDUSPOTY
+		CA	CDUZ
+		TS	CDUSPOTZ
+
+		CA	BIT10		# PNGCS CONTROL BIT
+		EXTEND
+		RAND	CHAN30
+		CCS	A
+		TCF	PAUTNO		# NOT PNGCS (BITS INVERTED)
+
+		CA	BIT14		# AUTO MODE BIT
+		EXTEND
+		RAND	CHAN31
+		CCS	A
+		TCF	PAUTNO		# NOT AUTO (BITS INVERTED)
+
+		TS	FLPAUTNO	# RESET FLAG PNGCS AUTO NOT
+
+		CA	CDUXD		# PNGCS AUTO:  FETCH CDUXD,CDUYD,CDUZD
+		TS	CDUSPOTX
+		CA	CDUYD
+		TS	CDUSPOTY
+		CA	CDUZD
+		TS	CDUSPOTZ
+
+# Page 912
+# FETCH INPUTS
+PAUTNO		TC	INTPRET		# ENTERING THRUST CMD STILL IN MPAC
+		RTB
+			NORMUNIT
+		STOVL	UNX/2		# SEMI-UNIT THRUST CMD AS INITIAL UNX/2
+			UNWC/2
+		RTB	RTB
+			NORMUNIT
+			QUICTRIG	# ALWAYS RQD TO OBTAIN TRIGS OF CDUD'S
+		STOVL	UNZ/2		# SEMI-UNIT WINDOW CMD AS INITIAL UNZ/2
+			DELV
+		BOVB	UNIT
+			NOATTCNT	# AT LEAST ONE ENTERING CMD VCT ZERO
+		BOV	CALL
+			AFTRFLTR	# IF UNIT DELV OVERFLOWS SKIP FILTER
+			*SMNB*		# YIELDS UNIT(DELV) IN VEH COORDS FOR FLTR
+
+# THRUST DIRECTION FILTER
+
+		EXIT
+
+		CA	UNFVY/2		# FOR RESTARTS, UNFV/2 ALWAYS INTACT, MPAC
+		LXCH	MPAC	+3	# 	RENEWD AFTER RETURN FROM CALLER,
+		TC	FLTRSUB		#	TWO FILTER UPDATES MAY BE DONE.
+		TS	UNFVY/2		# UNFV/2 NEED NOT BE EXACTLY SEMI-UNIT.
+
+		CA	UNFVZ/2
+		LXCH	MPAC +5
+		TC	FLTRSUB
+		TS	UNFVZ/2
+
+		TC	INTPRET		# COMPLETES FILTER
+
+# Page 913
+# FIND A SUITABLE WINDOW POINTING VECTOR
+
+AFTRFLTR	SLOAD	BHIZ		# IF XOV NOT INHIBITED, GO FETCH ZNB
+			FLAGOODW
+			FETCHZNB
+		VLOAD	CALL
+			UNZ/2
+			UNWCTEST
+
+FETCHZNB	VLOAD
+			ZNBPIP
+		STCALL	UNZ/2
+			UNWCTEST
+
+		VLOAD	VCOMP		# Z AND -X CAN'T BOTH PARALLEL UNFC/2
+			XNBPIP
+		STORE	UNZ/2
+
+# COMPUTE THE REQUIRED DIRECTION COSINE MATRIX
+
+DCMCL		VLOAD	VXV
+			UNZ/2
+			UNX/2
+		UNIT	PUSH		# UNY/2 FIRST ITERATION
+		VXV	VSL1
+			UNX/2
+		STORE	UNZ/2		# -UNZ/2 FIRST ITERATION
+		VXSC	PDVL		# EXCHANGE -UNFVZ/2 UNZ/2 FOR UNY/2
+			UNFVZ/2		# MUST BE SMALL
+		VXSC	BVSU		# YIELDS -UNFVY/2 UNY/2-UNFVZ/2 UNZ/2
+			UNFVY/2		# MUST BE SMALL
+		VSL1	VAD
+			UNX/2
+		UNIT			# TOTALLY ELIMINATES THRUST POINTING ERROR
+		STORE	UNX/2		# UNX/2
+		VXV	VSL1
+			UNZ/2		# -UNZ/2 WAS STORED HERE REMEMBER
+		STORE	UNY/2		# UNY/2
+		VCOMP	VXV
+			UNX/2
+		VSL1
+		STORE	UNZ/2		# UNZ/2
+
+# Page 914
+# COMPUTES THE REQUIRED GIMBAL ANGLES
+
+		CALL
+			NB2CDUSP	# YIELDS THE RQD GIMBAL ANGLES, 2'S, PI
+		EXIT
+
+# LIMIT THE MIDDLE GIMBAL ANGLE & COMPUTE THE UNLIMITED GIMBAL ANGLE CHGS
+
+		CA	MPAC +2		# LIMIT THE MGA
+		TS	L		# CAN'T LXCH:  NEED UNLIMITED MGA FOR ALARM
+		CA	CDUZDLIM
+		TC	LIMITSUB	# YIELDS LIMITED MGA.  1 BIT ERROR POSSIBLE
+		XCH	MPAC +2		# 	BECAUSE USING 2'S COMP.  WHO CARES?
+		EXTEND
+		MSU	MPAC +2		# THIS BETTER YIELD ZERO
+		EXTEND
+		BZF	+2
+		TCF	ALARMMGA
+
+MGARET		INHINT			# RELINT AT TC INTPRET AFTER TCQCDUW
+
+		ZL
+		CA	TWO
+DELGMBLP	TS	TEM2
+
+		CA	L		# TO PREVENT FALSE STARTS ABOUT X, ZERO
+		EXTEND			#	FLAGOODW IF DELGMBZ OR Y TOO BIG.
+		SQUARE
+		AD	HI5		# WITHIN 1 BIT OF -(45 DEG SQUARED)
+		EXTEND
+		BZMF	+3
+		CA	ZERO
+		TS	FLAGOODW
+
+		INDEX	TEM2
+		CA	MPAC
+		INDEX	TEM2
+		TS	CPHI		# OUTPUTS TO NOUN22
+		EXTEND
+		INDEX	TEM2
+		MSU	CDUXD		# NO MATTER THAT THESE SLIGHLTY DIFFERENT
+		COM			# FROM WHEN WE INITIALLY FETCHED THEM
+		INDEX	TEM2
+		TS	-DELGMB		# -UNLIMITED GIMBAL ANGLE CHGS, 1'S, PI
+		TS	L		# FOR PRECEDING TEST ON NEXT LOOP PASS
+		CCS	TEM2
+		TCF	DELGMBLP
+
+# Page 915
+# BRANCHES TO NOATTCNT
+		CCS	FLPAUTNO
+		TCF	NOATTCNT +2	# NO PNGCS AUTO
+
+		CA	FLAGWRD5
+		MASK	ENGONBIT
+		EXTEND
+		BZF	NOATTCNT +2	# ENGINE NOT ON
+
+# Page 916
+# LIMIT THE ATTITUDE ANGLE CHANGES
+#
+# THIS SECTION LIMITS THE ATTITUDE ANGLE CHANGES ABOUT A SET OF ORTHOGONAL VEHICLE AXES X,YPRIME,ZPRIME,
+# THESE AXES COINCIDE WITH THE COMMANDED VEHICLE AXES IF AND ONLY IF CDUXD IS ZERO.  THE PRIME SYSTEM IS
+# THE COMMANDED VEHICLE SYSTEM ROTATED ABOUT THE X AXIS TO BRING THE Z AXIS INTO ALIGNMENT WITH THE MIDDLE GIMBAL
+# AXIS.  ATTITUDE ANGLE CHANGES IN THE PRIME SYSTEM ARE RELATED TO SMALL GIMBAL ANGLE CHANGES BY:
+#
+#	[   -DELATTX    ]   [ 1     SIN(CDUZD)     0 ] [ -DELGMBX ]
+#	[               ]   [                        ] [          ]
+#	[ -DELATTYPRIME ] = [ 0     COS(CDUZD)     0 ] [ -DELGMBY ]
+#	[               ]   [                        ] [          ]
+#	[ -DELATTZPRIME ]   [ 0         0          1 ] [ -DELGMBZ ]
+
+		LXCH	-DELGMB +2	# SAME AS -DELATTZPRIME UNLIMITED
+		INDEX	NDXCDUW
+		CA	DAZMAX
+		TC	LIMITSUB
+		TS	-DELGMB +2	# -DELGMBZ
+
+		CA	-DELGMB +1
+		EXTEND
+		MP	COSCDUZ		# YIELDS -DELATTYPRIME/2 UNLIMITED
+		TS	L
+		INDEX	NDXCDUW
+		CA	DAY/2MAX
+		TC	LIMITSUB
+		EXTEND
+		DV	COSCDUZ
+		XCH	-DELGMB +1	# -DELGMBY, FETCHING UNLIMITED VALUE
+
+		EXTEND
+		MP	SINCDUZ
+		DDOUBL
+		COM
+		EXTEND			# YIELDS +DELATTX UNLIMITD, MAG < 180 DEG.
+		MSU	-DELGMB		#	BASED ON UNLIMITED DELGMBV.
+		TS	L		#	ONE BIT ERROR IF OPERANDS IN MSU
+		INDEX	NDXCDUW		#	OF MIXED SIGNS.  WHO CARES?
+		CA	DAXMAX
+		TC	LIMITSUB
+		TS	-DELGMB		# SAVE LIMITED +DELATTX
+		CCS	FLAGOODW
+		CS	-DELGMB		# FETCH IT BACK CHGING SIGN IF WINDOW GOOD
+		TS	-DELGMB		# OTHERWISE USE ZERO FOR -DELATTX
+		CS	-DELGMB +1
+		EXTEND
+		MP	SINCDUZ
+		DDOUBL			# YIELDS -CNTRIB TO -DELATTX FROM -DELGMBY
+		ADS	-DELGMB		# -DELGMBX.  NO OVERFLOW SINCE LIMITED TO
+					# 20DEG(1+SIN(70DEG)/COS(70DEG)) < 180DEG
+
+# Page 917
+# COMPUTE COMMANDED ATTITUDE RATES
+#
+#	[ OMEGAPD ]   [ -2         -4 SINCDUZ              +0    ] [ -DELGMBZ ]
+#	[         ]   [                                          ] [          ]
+#	[ OMEGAQD ] = [ +0     -8 COSCDUZ COSCDUX     -4 SINCDUX ] [ -DELGMBY ]
+#	[         ]   [                                          ] [          ]
+#	[ OMEGARD ]   [ +0     +8 COSCDUZ SINCDUX     -4 COSCDUX ] [ -DELGMBZ ]
+#
+# ATTITUDE ANGLE RATES IN UNITS OF PI/4 RAD/SEC = K TRIG FCNS IN UNITS OF 2 X GIMBAL ANGLE RATES IN UNITS OF
+# PI/2 RAD/SEC.  THE CONSTANTS ARE BASED ON DELGMB BEING THE GIMBAL ANGLE CHANGES IN UNITS OF PI RADIANS,
+# AND 2 SECONDS BEING THE COMPUTATION PERIOD (THE PERIOD BETWEEN SUCCESSIVE PASSES THRU FINDCDUW).
+
+		CS	-DELGMB
+		TS	OMEGAPD
+		CS	-DELGMB +1
+		EXTEND
+		MP	SINCDUZ
+		DDOUBL
+		ADS	OMEGAPD
+		ADS	OMEGAPD
+
+		CS	-DELGMB +1
+		EXTEND
+		MP	COSCDUX
+		DDOUBL
+		EXTEND
+		MP	COSCDUZ
+		TS	OMEGAQD
+		CS	-DELGMB +2
+		EXTEND
+		MP	SINCDUX
+		ADS	OMEGAQD
+		ADS	OMEGAQD
+		ADS	OMEGAQD
+
+		CA	-DELGMB +1
+		EXTEND
+		MP	SINCDUX
+		DDOUBL
+		EXTEND
+		MP	COSCDUZ
+		TS	OMEGARD
+		CS	-DELGMB +2
+		EXTEND
+		MP	COSCDUX
+		ADS	OMEGARD
+		ADS	OMEGARD
+		ADS	OMEGARD
+
+# Page 918
+# FINAL TRANSFER
+
+		CA	TWO
+CDUWXFR		TS	TEM2
+		INDEX	TEM2
+		CA	-DELGMB
+		EXTEND
+		MP	DT/DELT		# RATIO OF DAP INTERVAL TO CDUW INTERVAL
+		TC	ONESTO2S
+		INDEX	TEM2
+		TS	DELCDUX		# ANGLE INTERFACE
+
+		INDEX	TEM2
+		CCS	OMEGAPD
+		AD	ONE
+		TCF	+2
+		AD	ONE
+		EXTEND			# WE NOW HAVE ABS(OMEGAPD,QD,RD)
+		INDEX	TEM2
+		MP	OMEGAPD
+		EXTEND
+		MP	BIT11		# 1/16
+		EXTEND
+		INDEX	TEM2		#                  2
+		DV	1JACC		# UNITS PI/4 RAD/SEC
+		TS	L
+		CA	DELERLIM
+		TC	LIMITSUB
+		INDEX	TEM2
+		TS	DELPEROR	# LAG ANGLE = OMEGA ABS(OMEGA)/2 ACCEL
+		CCS	TEM2
+		TCF	CDUWXFR
+
+# HAUSKEEPING AND RETURN
+
+TCQCDUW		CA	ECDUWUSR
+		TS	EBANK		# RETURN USER'S EBANK
+
+		TC	INTPRET
+		SETPD	GOTO
+			0
+			QCDUWUSR	# NORMAL AND ABNORMAL RETURN TO USER
+
+# Page 919
+# THRUST VECTOR FILTER SUBROUTINE
+
+FLTRSUB		EXTEND
+		QXCH	TEM2
+		TS	TEM3		# SAVE ORIGINAL OFFSET
+		COM			# ONE MCT, NO WDS, CAN BE SAVED IF NEG OF
+		AD	L		#	ORIG OFFSET ARRIVES IN A, BUT IT'S
+		EXTEND			# 	NOT WORTH THE INCREASED OBSCURITY.
+		INDEX	NDXCDUW
+		MP	GAINFLTR
+		TS	L		# INCR TO OFFSET, UNLIMITED
+		CA	DUNFVLIM	# SAME LIMIT FOR Y AND Z
+		TC	LIMITSUB	# YIELDS INCR TO OFFSET, LIMITED
+		AD	TEM3		# ORIGINAL OFFSET
+		TS	L		# TOTAL OFFSET, UNLIMITED
+		CA	UNFVLIM		# SAME LIMIT FOR Y AND Z
+		TC	LIMITSUB	# YIELDS TOTAL OFFSET, LIMITED
+		TC	TEM2
+
+# SUBR TO TEST THE ANGLE BETWEEN THE PROPOSED WINDOW AND THRUST CMD VCTS
+
+UNWCTEST 	DOT	DSQ
+			UNX/2
+		DSU	BMN
+			DOTSWFMX
+			DCMCL
+		SSP	RVQ		# RVQ FOR ALT CHOICE IF DOT MAGN TOO LARGE
+			FLAGOODW	# 	ZEROING WINDOW GOOD FLAG
+			0
+
+# Page 920
+# NB2CDUSP RETURNS THE 2'S COMPLEMENT, PI, SP CDU ANGLES X,Y,Z IN MPAC,+1,+2 GIVEN THE MATRIX WHOSE ROW VECTORS
+# ARE THE SEMI-UNIT NAV BASE VECTORS X,Y,X EXPRESSED IN STABLE MEMBER COORDINATES, LOCATED AT 0 IN THE PUSH LIST.
+# NB2CDUSP USES THE ARCTRGSP WHICH HAS A MAXIMUM ERROR OF +-4 BITS.
+
+NB2CDUSP	DLOAD	DSQ
+			2
+		BDSU	BPL
+			DP1/4TH
+			+3
+		DLOAD
+			ZEROVECS	# IN CASE SIN WAS SLIGHTLY > 1/2
+		SQRT	EXIT		# YIELDS COS(CDUZ) IN UNITS OF 2
+
+		EXTEND
+		DCA	MPAC
+		DDOUBL
+		TS	TEM5
+		TCF	+3
+		CA	POSMAX		# OVERFLOW.  FETCH POSMAX, MPAC ALWAYS POS
+		TS	TEM5		# COS(CDUZ) IN TEM5, UNITS 1
+
+		INDEX	FIXLOC
+		CA	2
+		LXCH	MPAC
+		TC	ARCTRGSP
+		TS	MPAC +2		# CDUZ
+
+		CA	ZERO
+		TC	DVBYCOSM
+		CA	FOUR
+		TC	DVBYCOSM
+		CS	TEM1
+		TC	ARCTRGSP
+		TS	MPAC +1		# CDUY
+
+		CA	BIT4
+		TC	DVBYCOSM
+		CA	16OCT
+		TC	DVBYCOSM
+		CS	TEM1
+		TC	ARCTRGSP
+		TS	MPAC		# CDUX
+
+		TC	INTPRET
+		RVQ
+
+16OCT		OCT	16
+
+# Page 921
+# THE ELEMENTS OF THE NAV BASE MATRIX WHICH WE MUST DIVIDE BY COS(MGA)
+# ALREADY CONTAIN COS(MGA)/2 AS A FACTOR. THEREFORE THE QUOTIENT SHOULD
+# ORDINARILY NEVER EXCEED 1/2 IN MAGNITUDE.  BUT IF THE MGA IS NEAR PI/2
+# THEN COS(MGA) IS NEAR ZERO, AND THERE MAY BE SOME CHAFF IN THE OTHER
+# ELEMENTS OF THE MATRIX WHICH WOULD PRODUCE CHAOS UNDER DIVISION.
+# BEFORE DIVIDING WE MAKE SURE COS(MGA) IS AT LEAST ONE BIT LARGER
+# THAN THE MAGNITUDE OF THE HIGH ORDER PART OF THE OPERAND.
+#
+# IF ONE OR MORE DIVIDES CANNOT BE PERFORMED, THIS MEANS THAT THE
+# REQUIRED MGA IS VERY NEARLY +-PI/2 AND THEREFORE THE OTHER GIMBAL
+# ANGLES ARE INDETERMINATE.  THE INNER AND OUTER GIMBAL ANGLES RETURNED
+# IN THIS CASE WILL BE RANDOM MULTIPLES OF PI/2.
+
+DVBYCOSM	AD	FIXLOC
+		TS	ADDRWD		# ADRES OF OPERAND
+
+		INDEX	ADDRWD		# FETCH NEG ABS OF OPERAND, AD TEM5, AND
+		CA	0		#	SKIP DIVIDE IF RESULT NEG OR ZERO
+		EXTEND
+		BZMF	+2
+		COM
+		AD	TEM5		# C(A) ZERO OR NEG, C(TEM5) ZERO OR POS
+		EXTEND
+		BZMF	TSL&TCQ		# DIFFERENCE ALWAYS SMALL IF BRANCH
+
+		EXTEND			# TEM5 EXCEEDS ABS HIGH ORDER PART OF
+		INDEX	ADDRWD		#	OPERAND BY AT LEAST ONE BIT.
+		DCA	0		#	THEREFORE IT EXCEEDS THE DP OPERAND
+		EXTEND			# 	AND DIVISION WILL ALWAYS SUCCEED.
+		DV	TEM5
+TSL&TCQ		TS	L
+		LXCH	TEM1
+		TC	Q
+
+# Page 922
+# ARCTRGSP RETURNS THE 2'S COMPLEMENT, PI, SP ANGLE IN THE A REGISTER GIVEN ITS SINE IN A AND ITS COSINE IN L IN
+# UNITS OF 2.  THE RESULT IS AN UNAMBIGUOUS ANGLE ANYWHERE IN THE CIRCLE, WITH A MAXIMUM ERROR OF +-4 BITS.
+# THE ERROR IS PRODUCED BY THE SUBROUTINE SPARCSIN WHICH IS USED ONLY IN THE REGION +-45 DEGREES.
+
+ARCTRGSP	EXTEND
+		BZF	SINZERO		# TO AVOID DIVIDING BY ZERO
+
+		EXTEND
+		QXCH	TEM4
+		TS	TEM2
+		CA	L
+		TS	TEM3
+		CA	ZERO
+		EXTEND
+		DV	TEM2
+		EXTEND
+		BZF	USECOS
+
+		CCS	TEM3		# SIN IS SMALLER OR EQUAL
+		CA	ZERO
+		TCF	+4
+		CS	TEM2		# IF COS NEG, REVERSE SIGN OF SIN,
+		TS	TEM2		#	ANGLE = PI-ARCSIN(SIN)
+		CA	NEGMAX		# PICK UP PI, 2'S COMPLEMENT
+		TS	TEM3		# WE NO LONGER NEED COS
+		CA	TEM2
+		TC	SPARCSIN -1
+		TC	ONESTO2S
+		EXTEND
+		MSU	TEM3
+1TO2&TCQ	TC	ONESTO2S
+		TC	TEM4
+
+USECOS		CS	TEM3		# COS IS SMALLER
+		TC	SPARCSIN -1	# ANGLE = SIGN(SIN)(FI/2-ARCSIN(COS))
+		AD	HALF
+		TS	TEM3		# WE NO LONGER NEED COS
+		CCS	TEM2
+		CA	TEM3
+		TCF	1TO2&TCQ
+		CS	TEM3
+		TCF	1TO2&TCQ
+
+SINZERO		CCS	L
+		CA	ZERO
+		TC	Q
+		CA	NEGMAX		# PI, 2'S COMP
+		TC	Q
+
+# Page 923
+# SPARCSIN TAKES AN ARGUMENT SCALED UNITY IN A AND RETURNS AN ANGLE SCALED
+# 180 DEGREES IN A.  IT HAS BEEN UNIT TESTED IN THE REGION +-.94 (+-70
+# DEGREES) AND THE MAXIMUM ERROR IS +-5 BITS WITH AN AVERAGE TIME OF
+# 450 MICROSECONDS.  SPARCSIN -1 TAKES THE ARGUMENT SCALED TWO.  (BOB CRISP)
+
+		DOUBLE
+SPARCSIN	TS	SR
+		TCF	+4
+		INDEX	A
+		CS	LIMITS
+		TS	SR
+		EXTEND
+		MP	A
+		TS	TEM1
+		EXTEND
+		MP	DPL9
+		AD	DPL7
+		EXTEND
+		MP	TEM1
+		AD	DPL5
+		EXTEND
+		MP	TEM1
+		AD	DPL3
+		EXTEND
+		MP	TEM1
+		AD	DPL1
+		EXTEND
+		MP	SR
+		TC	Q
+DPL1		DEC	10502
+DPL3		DEC	432
+DPL5		DEC	7300
+DPL7		DEC	-11803
+DPL9		DEC	8397
+
+# Page 924
+# LIMITSUB LIMITS THE MAGNITUDE OF THE POSITIVE OR NEGATIVE VARIABLE
+# ARRIVING IN L TO THE POSITIVE LIMIT ARRIVING IN A.
+# THE SIGNED LIMITED VARIABLE IS RETURNED IN A.
+#
+# VERSION COUTESY HUGH BLAIR-SMITH
+
+LIMITSUB	TS	TEM1
+		CA	ZERO
+		EXTEND
+		DV	TEM1
+		CCS	A
+		LXCH	TEM1
+		TCF	+2
+		TCF	+3
+		CA	L
+		TC	Q
+		CS	TEM1
+		TC	Q
+
+# SUBROUTINE TO CONVERT 1'S COMP SP TO 2'S COMP
+
+ONESTO2S	CCS	A
+		AD	ONE
+		TC	Q
+		CS	A
+		TC	Q
+
+# NO ATTITUDE CONTROL
+
+NOATTCNT	TC	ALARM
+		OCT	00402		# NO ATTITUDE CONTROL
+
+ +2		INHINT			# COME HERE FOR NOATTCNT WITHOUT ALARM
+ 		TC	IBNKCALL	# RELINT AT TC INTPRET AFTER TCQCDUW
+		FCADR	STOPRATE
+		TCF	TCQCDUW		# RETURN TO USER SKIPPING AUTOPILOT CMDS
+
+# MIDDLE GIMBAL ANGLE ALARM
+
+ALARMMGA	TC	ALARM
+		OCT	00401
+		TCF	MGARET
+
+# Page 925
+#******************************************************************
+# CONSTANTS
+#******************************************************************
+
+# ADDRESS CONSTANTS
+
+ECDUWL		ECADR	ECDUW
+
+# THRUST DIRECTION FILTER CONSTANTS
+
+GAINFLTR	DEC	.2		# GAIN FILTER SANS CSM
+		DEC	.1		# GAIN FILTER WITH CSM
+
+DUNFVLIM	DEC	.007 B-1	# 7 MR MAX CHG IN F DIR IN VEH IN 2 SECS.
+					# THIS DOES NOT ALLOW FOR S/C ROT RATE.
+
+UNFVLIM		DEC	.129 B-1	# 129 MR MAX THRUST OFFSET.  105 MR TRAVEL
+					# +10MR DEFL+5MR MECH MOUNT+9MR ABLATION.
+
+# CONSTANT RELATED TO GIMBAL ANGLE COMPUTATIONS
+
+DOTSWFMX	DEC	.93302 B-4	# LIM COLNRTY OF UNWC/2 & UNFC/2 TO 85 DEG
+					# LOWER PART COMES FROM NEXT CONSTANT
+
+DAXMAX		DEC	.11111111111	# DELATTX LIM TO 20 DEG IN 2 SECS, 1'S, PI
+		DEC	.0111111111	# 2 DEG WHEN CSM DOCKED
+
+DAY/2MAX	DEC	.05555555555	# LIKEWISE FOR DELATTY
+		DEC	.0055555555
+
+DAZMAX		=	DAXMAX		# LIKEWISE FOR DELATTZ
+
+CDUZDLIM	DEC	.3888888888	# 70 DEG LIMIT FOR MGA, 1'S, PI
+
+# CONSTANTS FOR DATA TRANSFER
+
+DT/DELT		DEC	.05		# .1 SEC/2 SEC WHICH IS THE AUTOPILOT
+					# CONTROL SAMPLE PERIOD/COMPUTATION PERIOD
+
+DELERLIM	=	DAY/2MAX	# 	0 DEG LIMIT FOR LAG ANGLES, 1'S, PI
+
+# *** END OF FLY	.132 ***
diff --git a/FIXED_FIXED_CONSTANT_POOL.s b/FIXED_FIXED_CONSTANT_POOL.s
new file mode 100644
index 0000000..d8c439c
--- /dev/null
+++ b/FIXED_FIXED_CONSTANT_POOL.s
@@ -0,0 +1,262 @@
+# Copyright:	Public domain.
+# Filename:	FIXED_FIXED_CONSTANT_POOL.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:	1200-1204
+# Mod history:	2009-05-13 RSB	Adapted 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 1200
+		BLOCK	02
+		COUNT	02/FCONS
+
+# THE FOLLOWING TABLE OF 18 VALUES IS INDEXED.  DO NOT INSERT OR REMOVE ANY QUANTITIES
+
+DPOSMAX		OCT	37777		# MUST PRECED POSMAX
+POSMAX		OCT	37777
+
+LIMITS		=	NEG1/2
+
+NEG1/2		OCT	-20000		# USED BY SIN ROUTINE (MUST BE TWO 
+					# LOCATIONS IN FRONT OF BIT14)
+					
+# BIT TABLE					
+					
+BIT15		OCT	40000
+BIT14		OCT	20000
+BIT13		OCT	10000
+BIT12		OCT	04000
+BIT11		OCT	02000
+BIT10		OCT	01000
+BIT9		OCT	00400
+BIT8		OCT	00200
+BIT7		OCT	00100
+BIT6		OCT	00040
+BIT5		OCT	00020
+BIT4		OCT	00010
+BIT3		OCT	00004
+BIT2		OCT	00002
+BIT1		OCT	00001
+
+# DO NOT DESTROY THIS COMBINATION, SINCE IT IS USED IN DOUBLE PRECISION INSTRUCTIONS.
+NEG0		OCT	-0		# MUST PRECEDE ZERO
+ZERO		OCT	0		# MUST FOLLOW NEG0
+# BIT1		OCT	00001
+# NO.WDS	OCT	2		# INTERPRETER
+# OCTAL3	OCT	3		# INTERPRETER
+# R3D1		OCT	4		# PINBALL
+FIVE		OCT	5
+# REVCNT	OCT	6		# INTERPRETER
+SEVEN		OCT	7
+# BIT4		OCT	00010
+# R2D1		OCT	11		# PINBALL
+OCT11		=	R2D1		# P20S
+# BINCON	DEC	10		# PINBALL		(OCTAL 12)
+ELEVEN		DEC	11
+# OCT14		OCT	14		# ALARM AND ABORT (FILLER)
+OCT15		OCT	15
+# R1D1		OCT	16		# PINBALL
+# Page 1201
+LOW4		OCT	17
+# BIT5		OCT	00020
+# ND1		OCT	21		# PINBALL
+# VD1		OCT	23		# PINBALL
+# OCT24		OCT	24		# SERVICE ROUTINES
+# MD1		OCT	25		# PINBALL
+BITS4&5		OCT	30
+# OCT31		OCT	31		# SERVICE ROUTINES
+CALLCODE	OCT	00032
+# LOW5		OCT	37		# PINBALL
+# 33DEC		DEC	33		# PINBALL		(OCTAL 41)
+# 34DEC		DEC	34		# PINBALL		(OCTAL 42)
+TBUILDFX	DEC	37		# BUILDUP FOR CONVENIENCE IN DAPTESTING
+TDECAYFX	DEC	38		# CONVENIENCE FOR DAPTESTING
+# BIT6		OCT	00040
+OCT50		OCT	50
+DEC45		DEC	45
+SUPER011	OCT	60		# BITS FOR SUPERBNK SETTING 011.
+.5SEC		DEC	50
+# BIT7		OCT	00100
+
+SUPER100	=	BIT7		# BITS FOR SUPERBNK SETTING 100
+					# (LAST 4K OF ROPE)
+SUPER101	OCT	120		# BITS FOR SUPERBNK SETTING 101
+# OCT121	OCT	121		# SERVICE ROUTINES
+					# (FIRST 8K OF ACM)
+SUPER110	OCT	140		# BITS FOR SUPERBNK SETTING 110.
+					# (LAST BK OF ACM)
+1SEC		DEC	100
+# LOW7		OCT	177		# INTERPRETER
+# BIT8		OCT	00200
+# OT215		OCT	215		# ALARM AND ABORT
+# 8,5		OCT	00220		# P20-P25 SUNDANCE
+2SECS		DEC	200
+# LOW8		OCT	377		# PINBALL
+# BIT9		OCT	00400
+GN/CCODE	OCT	00401		# SET S/C CONTROL SWITCH TO G/N
+3SECS		DEC	300
+4SECS		DEC	400
+LOW9		OCT	777
+# BIT10		OCT	01000
+# 5.5DEGS	DEC	.03056		# P20-P25 SUNDANCE 	(OCTAL 00765)
+# OCT1103	OCT	1103		# ALARM AND ABORT
+C5/2		DEC	.0363551	#		   	(OCTAL 01124)
+V05N09		VN	0509		# (SAME AS OCTAL 1211)
+OCT1400		OCT	01400
+V06N22		VN	0622
+# MID5		OCT	1740		# PINBALL
+BITS2-10	OCT	1776
+LOW10		OCT	1777
+# Page 1202
+# BIT11		OCT	02000
+# 2K+3		OCT	2003		# PINBALL
+LOW7+2K		OCT	2177		# OP CODE MASK + BANK 1 FBANK SETTING
+EBANK5		OCT	02400
+PRIO3		OCT	03000
+EBANK7		OCT	03400
+# LOW11		OCT	3777		# PINBALL
+# BIT12		OCT	04000
+# RELTAB	OCT	04025		# T4RUPT
+PRIO5		OCT	05000
+PRIO6		OCT	06000
+PRIO7		OCT	07000
+
+# BIT13		OCT	10000
+#		OCT	10003		# T4RUPT	RELTAB +1D
+# 13,7,2	OCT	10102		# P20-P25 SUNDANCE
+PRIO11		OCT	11000
+# PRIO12	OCT	12000		# BANKCALL
+PRIO13		OCT	13000
+PRIO14		OCT	14000
+#		OCT	14031		# T4RUPT	RELTAB +2D
+PRIO15		OCT	15000
+PRIO16		OCT	16000
+# 85DEGS	DEC	.45556		# P20-P25 SUNDANCE	(OCTAL 16450)
+PRIO17		OCT	17000
+OCT17770	OCT	17770
+# BIT14		OCT	20000
+#		OCT	20033		# T4RUPT	RELTAB +3D
+PRIO21		OCT	21000
+		BLOCK	03
+		COUNT	03/FCONS
+		
+PRIO22		OCT	22000		# SERVICE ROUTINES
+PRIO23		OCT	23000
+PRIO24		OCT	24000
+# 5/8+1		OCT	24001		# SINGLE PRECISION SUBROUTINES
+#		OCT	24017		# T4RUPT	RELTAB +4D
+PRIO25		OCT	25000
+PRIO26		OCT	26000
+PRIO27		OCT	27000
+# CHRPRIO	OCT	30000		# PINBALL
+#		OCT	30036		# T4RUPT	RELTAB +5D
+PRIO31		OCT	31000
+C1/2		DEC	.7853134	#			(OCTAL 31103)
+PRIO32		OCT	32000
+PRIO33		OCT	33000
+PRIO34		OCT	34000
+#		OCT	34034		# T4RUPT	RELTAB +6D		
+PRIO35		OCT	35000
+PRIO36		OCT	36000
+# Page 1203
+PRIO37		OCT	37000
+63/64+1		OCT	37401
+# MID7		OCT	37600		# PINBALL
+OCT37766	OCT	37766
+OCT37774	OCT	37774
+OCT37776	OCT	37776
+# DPOSMAX	OCT	37777
+# BIT15		OCT	40000
+# OCT40001	OCT	40001		# INTERPRETER (CS 1 INSTRUCTION)
+DLOADCOD	OCT	40014
+DLOAD*		OCT	40015
+#		OCT	40023		# T4RUPT	RELTAB +7D
+BIT15+6		OCT	40040
+OCT40200	OCT	40200
+#		OCT	44035		# T4RUPT	RELTAB +8D
+#		OCT	50037		# T4RUPT	RELTAB +9D
+#		OCT	54000		# T4RUPT	RELTAB +10D
+-BIT14		OCT	57777
+# RELTAB11	OCT	60000		# T4RUPT
+C3/2		DEC	-.3216147	#			(OCTAL 65552)
+13,14,15	OCT	70000
+-1/8		OCT	73777
+HIGH4		OCT	74000
+-ENDERAS	DEC	-2001		#			(OCTAL 74056)
+# HI5		OCT	76000		# PINBALL
+HIGH9		OCT	77700
+# -ENDVAC	DEC	-45		# INTERPRETER		(OCTAL 77722)
+# -OCT10	OCT	-10		#			(OCTAL 77767)
+# NEG4		DEC	-4		#			(OCTAL 77773)
+NEG3		DEC	-3
+NEG2		OCT	77775
+NEGONE		DEC	-1
+
+# Page 1204
+
+# DEFINED BY EQUALS
+
+# IT WOULD BE TO THE USERS ADVANTAGE TO OCCASIONALLY CHECK ANY OF THESE SYMBOLS IN ORDER TO PREVENT ANY
+# ACCIDENTAL DEFINITION CHANGES.
+
+MINUS1		=	NEG1
+NEG1		=	NEGONE
+ONE		=	BIT1
+TWO		=	BIT2
+THREE		=	OCTAL3
+LOW2		=	THREE
+FOUR		=	BIT3
+SIX		=	REVCNT
+LOW3		=	SEVEN
+EIGHT		=	BIT4
+NINE		=	R2D1
+TEN		=	BINCON
+NOUTCON		=	ELEVEN
+OCT23		=	VD1
+OCT25		=	MD1
+PRIO1		=	BIT10
+EBANK3		=	OCT1400
+PRIO2		=	BIT11
+OCT120		=	SUPER101
+OCT140		=	SUPER110
+2K		=	BIT11
+EBANK4		=	BIT11
+PRIO4		=	BIT12
+EBANK6		=	PRIO3
+QUARTER		=	BIT13
+PRIO10		=	BIT13
+OCT10001	=	CCSL
+POS1/2		=	HALF
+PRIO20		=	BIT14
+HALF		=	BIT14
+PRIO30		=	CHRPRIO
+BIT13-14	=	PRIO30		# INTERPRETER USES IN PROCESSING STORECODE
+OCT30002	=	TLOAD +1
+B12T14		=	PRIO34
+NEGMAX		=	BIT15
+VLOADCOD	=	BIT15
+VLOAD*		=	OCT40001
+OCT60000	=	RELTAB11
+BANKMASK	=	HI5
+
diff --git a/FLAGWORD_ASSIGNMENTS.s b/FLAGWORD_ASSIGNMENTS.s
new file mode 100644
index 0000000..787b568
--- /dev/null
+++ b/FLAGWORD_ASSIGNMENTS.s
@@ -0,0 +1,1269 @@
+# Copyright:	Public domain.
+# Filename:	FLAGWORD_ASSIGNMENTS.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:	Onno Hommes <ohommes@cmu.edu>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	0061-0089
+# Mod history:	2009-05-15 OH	Transcribed from page images.
+#		2009-05-17 RSB	Extended to (blank) p. 89.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+
+# Page 61
+# FLAGWORDS 0-11	ARE DOWNLINKED AND CAN BE SET AND CLEARED BY UP-FLAG AND DOWN-FLAG INSTRUCTIONS IN THE
+#			INTERPRETER.  THESE WERE PREVIOUSLY LISTED UNDER "INTERPRETIVE SWITCH BIT ASSIGNMENTS" IN
+#			THE ERASABLE LOG SECTION.  FLAGWORDS 12 & 13 WERE PREVIOUSLY RADMODES AND DAPBOOLS AND
+#			ARE STILL DOWNLINKED UNDER THOSE NAMES.
+
+# 		ALPHABETICAL LIST OF FLAGWORDS
+
+#
+# FLAGWORD	DEC. NUMBER	BIT AND FLAG		BIT NAME
+
+# ACCOKFLG	207		BIT  3 FLAG 13		ACCSOKAY
+# ACC4-2FL	199		BIT 11 FLAG 13		ACC4OR2X
+# ACMODFLG	032		BIT 13 FLAG  2		ACMODBIT
+# ALTSCALE	186		BIT  9 FLAG 12		ALTSCBIT
+# ANTENFLG	183		BIT 12 FLAG 12		ANTENBIT
+# AORBSFLG	205		BIT  5 FLAG 13		AORBSYST
+# AORBTFLG	200		BIT 10 FLAG 13		AORBTRAN
+# APSESW	130		BIT  5 FLAG  8		APSESBIT
+# APSFLAG	152		BIT 13 FLAG 10		APSFLBIT
+# ASTNFLAG	108		BIT 12 FLAG  7		ASTNBIT
+# ATTFLAG	104		BIT  1 FLAG  6		ATTFLBIT
+# AUTOMODE	193		BIT  2 FLAG 12		AUTOMBIT
+# AUTR1FLG	209		BIT  1 FLAG 13		AUTRATE1
+# AUTR2FLG	208		BIT  2 FLAG 13		AUTRATE2
+# AUXFLAG	103		BIT  2 FLAG  6		AUXFLBIT
+# AVEGFLAG	115		BIT  5 FLAG  7		AVEGFBIT
+# AVEMIDSW	149		BIT  1 FLAG  9		AVEMDBIT
+# AVFLAG	040		BIT  5 FLAG  2		AVFLBIT
+# CALCMAN2	043		BIT  2 FLAG  2		CALC2BIT
+# CALCMAN3	042		BIT  3 FLAG  2		CALC3BIT
+# CDESFLAG	180		BIT 15 FLAG 12		CDESBIT
+# CMOONFLG	123		BIT 12 FLAG  8		CMOONBIT
+# COGAFLAG	131		BIT  4 FLAG  8		COGAFBIT
+# CSMDKFLG	197		BIT 13 FLAG 13		CSMDOCKD
+# CULTFLAG	053		BIT  7 FLAG  3		CULTBIT
+# DAPBOOLS			FLGWRD13
+# DBSELFLG	206		BIT  4 FLAG 13		DBSELECT
+# DESIGFLG	185		BIT 10 FLAG 12		DESIGBIT
+# DIDFLAG	016		BIT 14 FLAG		DIDFLBIT
+# DIMOFLAG	059		BIT  1 FLAG  3		DIMOBIT
+# DMENFLG	081		BIT  9 FLAG  5		DMENFBIT
+# DRIFTDFL	202		BIT  8 FLAG 13		DRIFTBIT
+# DRIFTFLG	030		BIT 15 FLAG  2		DRFTBIT
+# DSKYFLAG	075		BIT 15 FLAG  5		DSKYFBIT
+# Page 62
+# D6OR9FLG	058		BIT  2 FLAG  3		D6OR9BIT
+# ENGONFLG	083		BIT  7 FLAG  5		ENGONBIT
+# ERADFLAG	017		BIT 13 FLAG  1		ERADFBIT
+# ETPIFLAG	038		BIT  7 FLAG  2		ETPIBIT		EQUIVALENT FLAG NAME: DPTNSW
+# FINALFLG	039		BIT  6 FLAG  2		FINALBIT
+# FLAGWRD0	(000-014)	(STATE +0)
+# FLAGWRD1	(015-029)	(STATE +1)
+# FLAGWRD2	(030-044)	(STATE +2)
+# FLAGWRD3	(045-059)	(STATE +3)
+# FLAGWRD4	(060-074)	(STATE +4)
+# FLAGWRD5	(075-089)	(STATE +5)
+# FLAGWRD6	(090-104)	(STATE +6)
+# FLAGWRD7	(105-119)	(STATE +7)
+# FLAGWRD8	(120-134)	(STATE +8D)
+# FLAGWRD9	(135-149)	(STATE +9D)
+# FLAP		142		BIT  8 FLAG  9		FLAPBIT
+# FLGWRD10	(150-164)	(STATE +10D)
+# FLGWRD11	(165-179)	(STATE +11D)
+# FLGWRD12	(180-194)	(STATE +12D)
+# FLGWRD13	(195-209)	(STATE +13D)
+# FLPC		138		BIT 12 FLAG  9		FLPCBIT
+# FLPI		139		BIT 11 FLAG  9		FLPIBIT
+# FLRCS		149		BIT 10 FLAG  9		FLRCSBIT
+# FLUNDISP	125		BIT 10 FLAG  8		FLUNDBIT
+# FLVR		136		BIT 14 FLAG  9		FLVRBIT
+# FREEFLAG	012		BIT  3 FLAG  0		FREEFBIT
+# FSPASFLG	005		BIT 10 FLAG  0		FSPASBIT
+# GLOKFAIL	046		BIT 14 FLAG  3		GLOKFBIT
+# GMBDRVSW	095		BIT 10 FLAG  6		GMBDRBIT
+# GUESSW	028		BIT  2 FLAG  1		GUESSBIT
+# HFLSHFLG	179		BIT  1 FLAG 11		HFLSHBIT
+# IDLEFLAG	113		BIT  7 FLAG  7		IDLEFBIT
+# IGNFLAG	107		BIT 13 FLAG  7		IGNFLBIT
+# IMPULSW	036		BIT  9 FLAG  2		IMPULBIT
+# IMUSE		007		BIT  8 FLAG  0		IMUSEBIT
+# INFINFLG	128		BIT  7 FLAG  8		INFINBIT
+# INITALGN	133		BIT  2 FLAG  8		INITABIT
+# INTFLAG	151		BIT 14 FLAG 10		INTFLBIT
+# INTYPFLG	056		BIT  4 FLAG  3		INTYPBIT
+# ITSWICH	105		BIT 15 FLAG  7		ITSWBIT
+# JSWITCH	001		BIT 14 FLAG  0		JSWCHBIT
+# LETABORT	141		BIT  9 FLAG  9		LETABBIT
+# LMOONFLG	124		BIT 11 FLAG  8		LMOONBIT
+# LOKONSW	010		BIT  5 FLAG  0		LOKONBIT
+# LOSCMFLG	033		BIT 12 FLAG  2		LOSCMBIT
+# LRALTFLG	190		BIT  5 FLAG 12		LRALTBIT
+# LRBYPASS	165		BIT 15 FLAG 11		LRBYBIT
+# LRINH		172		BIT  8 FLAG 11		LRINHBIT
+# LRPOSFLG	189		BIT  6 FLAG 12		LRPOSBIT
+# LRVELFLG	187		BIT  8 FLAG 12		LRVELBIT
+# Page63
+# LUNAFLAG	048		BIT 12 FLAG  3		LUNABIT
+# MANUFLAG	106		BIT 14 FLAG  7		MANUFBIT
+# MGLVFLAG	088		BIT  2 FLAG  5		MGLVFBIT
+# MIDAVFLG	148		BIT  2 FLAG  9		MIDAVBIT
+# MIDFLAG	002		BIT 13 FLAG  0		MIDFLBIT
+# MID1FLAG	147		BIT  3 FLAG  9		MID1BIT
+# MKOVFLAG	072		BIT  3 FLAG  4		MKOVBIT
+# MOONFLAG	003		BIT 12 FLAG  0		MOONBIT
+# MRKIDFLG	060		BIT 15 FLAG  4		MRKIDBIT
+# MRKNVFLG	066		BIT  9 FLAG  4		MRKNVBIT
+# MRUPTFLG	070		BIT  5 FLAG  4		MRUPTBIT
+# MUNFLAG	097		BIT  8 FLAG  6		MUNFLBIT
+# MWAITFLG	064		BIT 11 FLAG  4		MWAITBIT
+# NEEDLFLG	011		BIT  4 FLAG  0		NEEDLBIT
+# NEWIFLG	122		BIT 13 FLAG  8		NEWIBIT
+# NJETSFLG	015		BIT 15 FLAG		NJETSBIT
+# NODOFLAG	044		BIT  1 FLAG  2		NODOBIT
+# NOLRREAD	170		BIT 10 FLAG 11		NOLRRBIT
+# NORMSW	110		BIT 10 FLAG  7		NORMSBIT
+# NORRMON	086		BIT  4 FLAG  5		NORRMBIT
+# NOR29FLG	049		BIT 11 FLAG  3		NR29FBIT
+# NOTHROTL	078		BIT 12 FLAG  5		NOTHRBIT
+# NOUPFLAG	024		BIT  6 FLAG  1		NOUPFBIT
+# NRMNVFLG	067		BIT  8 FLAG  4		NRMNVBIT
+# NRMIDFLG	062		BIT 13 FLAG  4		NRMIDBIT
+# NRUPTFLG	071		BIT  4 FLAG  4		NRUPTBIT
+# NTARGFLG	102		BIT  3 FLAG  6		NTARGBIT
+# NWAITFLG	065		BIT 10 FLAG  4		NWAITBIT
+# OLDESFLG	014		BIT  1 FLAG  0		OLDESBIT
+# OPTNSW	038		BIT  7 FLAG  2		OPTNBIT		EQUIVALENT FLAG NAME: ETPIFLAG
+# ORBWFLAG	054		BIT  6 FLAG  3		ORBWFBIT
+# ORDERSW	129		BIT  6 FLAG  8		ORDERBIT
+# OURRCFLG	198		BIT 12 FLAG 13		OURRCBIT
+# PDSPFLAG	063		BIT 12 FLAG  4		PDSPFBIT
+# PFRATFLG	041		BIT  4 FLAG  2		PFRATBIT
+# PINBRFLG	069		BIT  6 FLAG  4		PINBRBIT
+# PRECIFLG	052		BIT  8 FLAG  3		PRECIBIT
+# PRIODFLG	061		BIT 14 FLAG  1		PRIODBIT
+# PRONVFLG	068		BIT  7 FLAG  4		PRONVBIT
+# PSTHIGAT	169		BIT 11 FLAG 11		PSTHIBIT
+# PULSEFLG	195		BIT 15 FLAG 13		PULSES
+# P21FLAG	004		BIT 11 FLAG  0		P21FLBIT
+# P25FLAG	006		BIT  9 FLAG  0		P25FLBIT
+# P39/79SW	126		BIT  9 FLAG  8		P39SWBIT
+# QUITFLAG	145		BIT 5 FLAG 9		QUITBIT
+# RADMODES			FLGWRD12
+# RASFLAG			FLGWRD10
+# RCDUFAIL	188		BIT  7 FLAG 12		RCDUFBIT
+# RCDU0FLG	182		BIT 13 FLAG 12		RCDU0BIT
+# READLR	174		BIT  6 FLAG 11		READLBIT
+# Page 64
+# READRFLG	051		BIT  9 FLAG  3		READRBIT	EQUIVALENT FLAG NAME FOR R04FLAG
+# READVEL	175		BIT  5 FLAG 11		READVBIT
+# REDFLAG	099		BIT  6 FLAG  6		REDFLBIT
+# REFSMFLG	047		BIT 13 FLAG  3		REFSMBIT
+# REINTFLG	158		BIT  7 FLAG 10		REINTBIT
+# REMODFLG	181		BIT 14 FLAG 12		REMODBIT
+# RENDWFLG	089		BIT  1 FLAG  5		RENDWBIT
+# REPOSMON	184		BIT 11 FLAG 12		REPOSBIT
+# RHCSCFLG	203		BIT  7 FLAG 13		RHCSCALE
+# RNDVZFLG	008		BIT  7 FLAG  0		RNDVZBIT
+# RNGEDATA	176		BIT  4 FLAG 11		RNGEDBIT
+# RNGSCFLG	080		BIT 10 FLAG  5		RNGSCBIT
+# RODFLAG	018		BIT 12 FLAG  1		RODFLBIT
+# ROTFLAG	144		BIT  6 FLAG  9		ROTFLBIT
+# RPQFLAG	120		BIT 15 FLAG  8		RPQFLBIT
+# RRDATAFL	191		BIT  4 FLAG 12		RRDATABT
+# RRNBSW	009		BIT  6 FLAG  0		RRNBBIT
+# RRRSFLAG	192		BIT  3 FLAG 12		RRRSBIT
+# RVSW		111		BIT  9 FLAG  7		RVSWBIT
+# R04FLAG	051		BIT  9 FLAG  3		R04FLBIT	EQUIVALENT FLAG NAME:  READRFLG
+# R10FLAG	013		BIT  2 FLAG  0		R10FLBIT
+# R61FLAG	020		BIT 10 FLAG  1		R61FLBIT
+# R77FLAG	079		BIT 11 FLAG  5		R77FLBIT
+# SCALBAD	177		BIT  3 FLAG 11		SCABBIT
+# SLOPESW	027		BIT  3 FLAG  1		SLOPEBIT
+# SNUFFER	077		BIT 13 FLAG  5		SNUFFBIT
+# SOLNSW	087		BIT  3 FLAG  5		SOLNSBIT
+# SRCHOPTN	031		BIT 14 FLAG  2		SRCHOBIT
+# STATEFLG	055		BIT  5 FLAG  3		STATEBIT
+# STEERSW	034		BIT 11 FLAG  2		STEERBIT
+# SURFFLAG	127		BIT  8 FLAG  8		SURFFBIT
+# SWANDISP	109		BIT 11 FLAG  7		SWANDBIT
+# S32.1F1	090		BIT 15 FLAG  6		S32BIT1
+# S32.1F2	091		BIT 14 FLAG  6		S32BIT2
+# S32.1F3A	092		BIT 13 FLAG  6		S32BIT3A
+# S32.1F3B	093		BIT 12 FLAG  6		S32BIT3B
+# TFFSW		119		BIT  1 FLAG  7		TFFSWBIT
+# TRACKFLG	025		BIT  5 FLAG  1		TRACKBIT
+# TURNONFL	194		BIT  1 FLAG 12		TURNONBT
+# ULLAGFLG	204		BIT  6 FLAG 13		ULLAGER
+# UPDATFLG	023		BIT  7 FLAG  1		UPDATBIT
+# UPLOCKFL	116		BIT  4 FLAG 7		UPLOCBIT
+# USEQRFLG	196		BIT 14 FLAG 13		USEQRJTS
+# VEHUPFLG	022		BIT  8 FLAG  1		VEHUPBIT
+# VELDATA	173		BIT  7 FLAG 11		VELDABIT
+# VERIFLAG	117		BIT  3 FLAG  7		VERIFBIT
+# VFLAG		050		BIT 10 FLAG  3		VFLAGBIT
+# VFLSHFLG	178		BIT  2 FLAG 11		VFLSHBIT
+# VINTFLAG	057		BIT  3 FLAG  3		VINTFBIT
+# VXINH		168		BIT 12 FLAG 11		VXINHBIT
+# Page 65
+# V37FLAG	114		BIT  6 FLAG  7		V37FLBIT
+# V67FLAG	112		BIT  8 FLAG  7		V67FLBIT
+# V82EMFLG	118		BIT  2 FLAG  7		V82EMBIT
+# XDELVFLG	037		BIT  8 FLAG  2		XDELVBIT
+# XDSPFLAG	074		BIT  1 FLAG  4		XDSPBIT
+# XORFLG	171		BIT  9 FLAG 11		XORFLBIT
+# XOVINFLG	201		BIT  9 FLAG 13		XOVINHIB
+# 3AXISFLG	084		BIT  6 FLAG  5		3AXISBIT
+# 360SW		134		BIT  1 FLAG  8		360SWBIT
+
+# ASSIGNMENT AND DESCRIPTION OF FLAGWORDS
+
+FLAGWRD0	=	STATE +0		# (000-014)
+
+						#  	(SET)			(RESET)
+
+# BIT 15 FLAG 0	(S)
+		=	000D
+		=	BIT15
+						
+# BIT 14 FLAG 0	(S)
+JSWITCH		=	001D			# 	INTEGRATION OF W	INTEGRATION OF STATE
+JSWCHBIT	=	BIT14			#	MATRIX			VECTOR
+
+# BIT 13 FLAG 0	(S)
+MIDFLAG		=	002D			# 	INTEGRATION WITH	INTEGRATION WITHOUT
+						# 	SECONDARY BODY AND	SOLAR PERTURBATIONS
+MIDFLBIT	=	BIT13			# 	SOLAR PERTURBATIONS
+
+# BIT 12 FLAG 0	(L)
+MOONFLAG	=	003D			# 	MOON IS SPHERE OF	EARTH IS SPHERE OF
+MOONBIT		=	BIT12			#	INFLUENCE		INFLUENCE
+
+# BIT 11 FLAG 0
+P21FLAG		=	004D			#	USE BASE VECTORS	1ST PASS -- CALC-
+P21FLBIT	=	BIT11			#	ALREADY CALCULATED	ULATE BASE VECTORS
+
+# BIT 10 FLAG 0
+FSPASFLG	=	005D			#	FIRST PASS THROUGH	NOT FIRST PASS THRU
+FSPASBIT	=	BIT10			#	REPOSITION ROUTINE	REPOSITION ROUTINE
+
+# Page 66
+# BIT 9 FLAG 0	(S)
+P25FLAG		=	006D			# 	P25 OPERATING		P25 NOT OPERATING
+P25FLBIT	=	BIT9
+
+# BIT 8 FLAG 0	(S)
+IMUSE		=	007D			# 	IMU IN USE		IMU NOT IN USE
+IMUSEBIT	=	BIT8
+
+# BIT 7 FLAG 0	(S)
+RNDVZFLG	=	008D			#	P20 RUNNING (RADAR	P20 NOT RUNNING
+RNDVZBIT	=	BIT7			# 	IN USE)
+
+# BIT 6 FLAG 0	(S)
+RRNBSW		=	009D			#	RADAR TARGET IN		RADAR TARGET IN
+RRNBBIT		=	BIT6			# 	NB COORDINATES		SM COORDINATES
+
+# BIT 5 FLAG 0	(S)
+LOKONSW		=	010D			# 	RADAR LOCK-ON		RADAR LOCK-ON NOT
+LOKONBIT	=	BIT5			# 	DESIRED			DESIRED
+
+# BIT 4 FLAG 0	(S)
+NEEDLFLG	=	011D			# 	TOTAL ATTITUDE		A/P FOLLOWING
+NEEDLBIT	=	BIT4			# 	ERROR DISPLAYED		ERROR DISPLAYED
+
+# BIT 3 FLAG 0
+FREEFLAG	=	012D			# (USED BY P51-53 TEMP IN MANY DIFFERENT
+						# ROUTINES & BY LUNAR + SOLAR EPHEMERIDES)
+FREEFBIT	=	BIT3
+
+# BIT 2 FLAG 0
+R10FLAG		=	013D			# 	R10 OUTPUTS DATA TO 	BESIDES OUTPUT WHEN
+R10FLBIT	=	BIT2			# 	ALTITUDE & ALTITUDE 	SET, R10 ALSO OUTPUT
+						# 	RATE METERS ONLY	TO FORWARD & LATERAL
+						#				VELOCITY CROSSPOINTER
+
+# BIT 1 FLAG 0	(L)
+OLDESFLG	=	014D			# 	R29 GYRO CMD LOOP	R29 GYRO CMD LOOP
+OLDESBIT	=	BIT1			# 	REQUESTED		NOT REQUESTED
+
+
+FLAGWRD1	=	STATE +1		# (015-029)
+
+# Page 67
+						#	(SET)			(RESET)
+						
+# BIT 15 FLAG 1	(S)
+NJETSFLG	=	015D			#	TWO JET RCS BURN	FOUR JET RCS BURN
+NJETSBIT	=	BIT15
+
+# BIT 14 FLAG 1	(L)
+DIDFLAG		= 	016D			#	INERTIAL DATA IS	PERFORM DATA DISPLAY
+DIDFLBIT	=	BIT14			#	AVAILABLE		INITIALIZATION FUNCS
+
+# BIT 13 FLAG 1	(S)
+ERADFLAG	=	017D			#	COMPUTE REARTH		USE CONSTANT REARTH
+ERADFBIT	=	BIT13			#	FISCHER ELLIPSOID	PAD RADIUS
+
+# BIT 12 FLAG 1
+RODFLAG		=	018D			#	IF IN P66, NORMAL	IF IN P66, RE-INIT-
+RODFLBIT	=	BIT12			#	OPERATION CONTINUES.	IALIZATION IS PER-
+						#	RESTART CLEARS FLAG	FORMED AND FLAG IS
+
+# BIT 11 FLAG 1
+		=	019D
+		=	BIT11
+		
+# BIT 10 FLAG 1	(L)
+R61FLAG		=	020D			#	RUN R61 LEM		RUN R65 LEM
+R61FLBIT	=	BIT10
+
+# BIT 9 FLAG 1
+		=	021D
+		=	BIT9
+		
+# BIT 8 FLAG 1	(S)
+VEHUPFLG	=	022D			#	CSM STATE-VECTOR	LEM STATE VECTOR
+VEHUPBIT	=	BIT8			#	BEING UPDATED		BEING UPDATED
+
+# BIT 7 FLAG 1	(S)
+UPDATFLG	=	023D			#	UPDATING BY MARKS	UPDATING BY MARKS
+UPDATBIT	=	BIT7			#	ALLOWED			NOT ALLOWED
+
+# BIT 6 FLAG 1	(S)
+NOUPFLAG	=	024D			#	NEITHER CSM		EITHER STATE
+						#	NOR LM STATE VECTOR	VECTOR MAY BE
+NOUPFBIT	=	BIT6			#	MAY BE UPDATED		UPDATED
+
+# Page 68
+# BIT 5 FLAG 1	(S)
+TRACKFLG	=	025D			#	TRACKING ALLOWED	TRACKING NOT ALLOWED
+TRACKBIT	=	BIT5
+
+# BIT 4 FLAG 1	
+		=	026D
+		=	BIT4
+		
+# BIT 3 FLAG 1	(S)
+SLOPESW		=	027D			#	ITERATE WITH BIAS	ITERATE WITH REGULAR
+						#	METHOD IN ITERATOR	FALSI METHOD IN
+SLOPEBIT	=	BIT3			#				ITERATOR
+
+# BIT 2 FLAG 1	(S)
+GUESSW		=	028D			#	NO STARTING VALUE	STARTING VALUE FOR
+GUESSBIT	=	BIT2			#	FOR ITERATION		ITERATION EXISTS
+
+# BIT 1 FLAG 1	
+		=	029D
+		=	BIT1			# OH 2009-05-15 Scan does not have this line
+		
+FLAGWRD2	=	STATE +2		# (030-044)
+
+						#	(SET)			(RESET)
+						
+# BIT 15 FLAG 2	(S)
+DRIFTFLG	=	030D			#	T3RUPT CALLS GYRO	T3RUPT DOES NO GYRO
+DRFTBIT		=	BIT15			#	COMPENSATION		COMPENSATION
+
+# BIT 14 FLAG 2	(S)
+SRCHOPTN	=	031D			#	RADAR IN AUTOMATIC	RADAR NOT IN AUTO-
+SRCHOBIT	=	BIT14			#	SEARCH OPTION (R24)	MATIC SEARCH OPTION
+
+# BIT 13 FLAG 2	(S)
+ACMODFLG	=	032D			#	MANUAL ACQUISITION	AUTO ACQUISITION
+ACMODBIT	=	BIT13			#	BY RENDEZVOUS RADAR	BY RENDEZVOUS RADAR
+
+# BIT 12 FLAG 2 (S)
+LOSCMFLG	=	033D			#	LINE OF SIGHT BEING	LINE OF SIGHT NOT
+						#	COMPUTED (R21)		BEING COMPUTED
+LOSCMBIT	=	BIT12
+
+# Page 69
+# BIT 11 FLAG 2 (S)
+STEERSW		=	034D			#	SUFFICIENT THRUST	INSUFFICIENT THRUST
+STEERBIT	=	BIT11			#	IS PRESENT		IS PRESENT
+
+# BIT 10 FLAG 2 (S)
+		=	035D			# OH 2009-05-15 These two line don't appear in scan
+		=	BIT10
+		
+# BIT 9 FLAG 2 (S)
+IMPULSW		=	036D			#	MINIMUM IMPULSE		STEERING BURN (NO
+						#	BURN (CUTOFF TIME	CUTOFF TIME YET
+IMPULBIT	=	BIT9			#	SPECIFIED)		AVAILABLE)
+
+# BIT 8 FLAG 2 (S)
+XDELVFLG	=	037D			#	EXTERNAL DELTAV VG	LAMBERT (AIMPOINT)
+XDELVBIT	=	BIT8			#	COMPUTATION		VG COMPUTATION
+
+# BIT 7 FLAG 2 (S)
+ETPIFLAG	=	038D			#	ELEVATION ANGLE		TPI TIME SUPPLIED
+						#	SUPPLIED FOR		FOR P34,74 TO COMPUTE
+ETPIBIT		=	BIT7			#	P34,74			ELEVATION
+
+# BIT 7 FLAG 2 (L)
+OPTNSW		=	ETPIFLAG		#	SOI PHASE OF P38/78	SOR PHASE OF P38/78
+OPTNBIT		=	BIT7
+
+# BIT 6 FLAG 2 (S)
+FINALFLG	=	039D			#	LAST PASS THROUGH	INTERIM PASS THROUGH
+						#	RENDEZVOUS PROGRAM	RENDEZVOUS PROGRAM
+FINALBIT	=	BIT6			#	COMPUTATIONS		COMPUTATIONS
+
+# BIT 5 FLAG 2 (S)
+AVFLAG		=	040D			#	LEM IS ACTIVE		CSM IS ACTIVE
+AVFLBIT		=	BIT5			#	VEHICLE			VEHICLE
+
+# BIT 4 FLAG 2 (S)
+PFRATFLG	=	041D			#	PREFERRED ATTITUDE	PREFERRED ATTITUDE
+PFRATBIT	=	BIT4			#	COMPUTED		NOT COMPUTED
+
+# BIT 3 FLAG 2 (S)
+
+# Page 70
+CALCMAN3	=	042D			#	NO FINAL ROLL		FINAL ROLL IS
+CALC3BIT	=	BIT3			#				NECESSARY
+
+# BIT 2 FLAG 2 (S)
+CALCMAN2	=	043D			#	PERFORM MANEUVER	BYPASS STARTING
+CALC2BIT	=	BIT2			#	STARTING PROCEDURE	PROCEDURE
+
+# BIT 1 FLAG 2 (S)
+NODOFLAG	=	044D			#	V37 NOT PERMITTED	V37 PERMITTED
+NODOBIT		=	BIT1
+
+FLAGWRD3	=	STATE +3		# (045-059)
+
+						#	(SET)			(RESET)
+			
+# BIT 15 FLAG 3			
+		=	045D			#
+		=	BIT15			# OH 2009-05-15 This line is not in scans
+
+# BIT 14 FLAG 3	(S)
+GLOKFAIL	=	046D			#	GIMBAL LOCK HAS		NOT IN GIMBAL LOCK
+GLOKFBIT	=	BIT14			#	OCCURRED
+
+# BIT 13 FLAG 3	*** PROTECTED FROM FRESH START ***
+REFSMFLG	=	047D			#	REFSMMAT GOOD		REFSMMAT NO GOOD
+REFSMBIT	=	BIT13
+
+# BIT 12 FLAG 3	(S)
+LUNAFLAG	=	048D			#	LUNAR LAT-LONG		EARTH LAT-LONG
+LUNABIT		=	BIT12
+
+# BIT 11 FLAG 3	(L)
+NOR29FLG	=	049D			#	R29 NOT ALLOWED		R29 ALLOWED (RR DES-
+NR29FBIT	=	BIT11			#				IGNATED POWERED FLT)
+
+# BIT 10 FLAG 3	(S)
+VFLAG		=	050D			#	LESS THAN TWO STARS	TWO STARS IN FIELD
+VFLAGBIT	=	BIT10			#	IN FIELD OF VIEW	OF VIEW
+
+# BIT 9 FLAG 3	(S)
+R04FLAG		=	051D			#	ALARM 521		ALARM 521 ALLOWED
+						#	SUPPRESSED
+# Page 71
+R04FLBIT	=	BIT9
+
+# BIT 9 FLAG 3	(L)
+READRFLG	=	R04FLAG			#	READING RR DATA		NOT READING RR DATA
+READRBIT	=	BIT9			#	PURSUANT TO R29		PURSUANT TO R29
+
+# BIT 8 FLAG 3	(S)
+PRECIFLG	=	052D			#	NORMAL INTEGRATION	ENGAGES 4-TIME STEP
+						#	IN P00			(P00) LOGIC IN INTE-
+PRECIBIT	=	BIT8			#				GRATION
+		
+# BIT 7 FLAG 3	(S)
+CULTFLAG	=	053D			#	STAR OCCULTED		STAR NOT OCCULTED
+CULTBIT		=	BIT7
+
+# BIT 6 FLAG 3	(S)
+ORBWFLAG	=	054D			#	W MATRIX VALID FOR	W MATRIX INVALID FOR
+ORBWFBIT	=	BIT6			#	ORBITAL NAVIGATION	ORBITAL NAVIGATION
+
+# BIT 5 FLAG 3	(S)
+STATEFLG	=	055D			#	PERMANENT STATE		PERMANENT STATE
+STATEBIT	=	BIT5			#	VECTOR UPDATED		VECTOR NOT UPDATED
+
+# BIT 4 FLAG 3	(S)
+INTYPFLG	=	056D			#	CONIC INTEGRATION	ENCKE INTEGRATION
+INTYPBIT	=	BIT4
+
+# BIT 3 FLAG 3	(S)
+VINTFLAG	=	057D			#	CSM STATE VECTOR	LEM STATE VECTOR
+VINTFBIT	=	BIT3			#	BEING INTEGRATED	BEING INTEGRATED
+
+# BIT 2 FLAG 3 (S)
+D6OR9FLG	= 	058D			#	DIMENSION OF W IS 9	DIMENSION OF W IS 6
+D6OR9BIT	=	BIT2			#	FOR INTEGRATION		FOR INTEGRATION
+
+# BIT 1 FLAG 3	(S)
+DIM0FLAG	=	059D			#	W MATRIX IS TO BE	W MATRIX IS NOT TO
+DIM0BIT		=	BIT1			#	USED			USED
+
+FLAGWRD4	=	STATE +4		# (060-074)
+
+# Page 72
+						#	(SET)			(RESET)
+						
+# BIT 15 FLAG 4	(S)
+MRKIDFLG	=	060D			#	MARK DISPLAY IN 	NO MARK DISPLAY IN
+MRKIDBIT	=	BIT15			#	ENDIDLE			ENDIDLE
+
+# BIT 14 FLAG 4	(S)
+PRIODFLG	=	061D			#	PRIORITY DISPLAY IN	NO PRIORITY DISPLAY
+PRIODBIT	=	BIT14			#	ENDIDLE			IN ENDIDLE
+
+# BIT 13 FLAG 4	(S)
+NRMIDFLG	=	062D			#	NORMAL DISPLAY IN	NO NORMAL DISPLAY
+NRMIDBIT	=	BIT13			#	ENDIDLE			IN ENDIDLE
+
+# BIT 12 FLAG 4 (S)
+PDSPFLAG	=	063D			#	P20 SETS SO AS TO	LEAVE AS NORMAL DISP
+						#	TURN A NORMAL DIS-
+PDSPFBIT	=	BIT12			#	PLAY INTO A PRIORITY
+						#	DISPLAY IN R60
+						
+# BIT 11 FLAG 4 (S)
+MWAITFLG	=	064D			#	HIGHER PRIORITY		NO HIGHER PRIORITY
+						#	DISPLAY OPERATING	DISPLAY OPERATING
+MWAITBIT	=	BIT11			#	WHEN MARK		WHEN MARK DISPLAY
+						#	DISPLAY INITIATED	INITIATED
+
+# BIT 10 FLAG 4 (S)
+NWAITFLG	=	065D			#	HIGHER PRIORITY		NO HIGHER PRIORITY
+						#	DISPLAY OPERATING	DISPLAY OPERATING
+NWAITBIT	=	BIT10			#	WHEN NORMAL		WHEN NORMAL DISPLAY
+						#	DISPLAY INITIATED	INITIATED
+						
+# BIT 9 FLAG 4	(S)
+MRKNVFLG	=	066D			#	ASTRONAUT USING		ASTRONAUT NOT USING
+						#	KEYBOARD WHEN MARK	KEYBOARD WHEN MARK
+MRKNVBIT	=	BIT9			#	DISPLAY INITIATED	DISPLAY INITIATED
+
+# BIT 8 FLAG 4	(S)
+NRMNVFLG	=	067D			#	ASTRONAUT USING		ASTRONAUT NOT USING
+						#	KEYBOARD WHEN		KEYBOARD WHEN
+NRMNVBIT	=	BIT8			#	NORMAL DISPLAY		NORMAL DISPLAY
+						#	INITIATED		INITIATED
+						
+# BIT 7 FLAG 4	(S)
+PRONVFLG	=	068D			#	ASTRONAUT USING		ASTRONAUT NOT USING
+
+# Page 73
+						#	KEYBOARD WHEN		KEYBOARD WHEN
+PRONVBIT	=	BIT7			#	PRIORITY DISPLAY	PRIORITY DISPLAY
+						#	INITIATED		INITIATED
+						
+# BIT 6 FLAG 4	(S)
+PINBRFLG	=	069D			#	ASTRONAUT HAS		ASTRONAUT HAS NOT
+						#	INTERFERED WITH		INTERFERED WITH
+PINBRBIT	=	BIT6			#	EXISTING DISPLAY	EXISTING DISPLAY
+
+# BIT 5 FLAG 4	(S)
+MRUPTFLG	=	070D			#	MARK DISPLAY		MARK DISPLAY NOT
+						#	INTERRUPTED BY		INTERRUPTED BY
+MRUPTBIT	=	BIT5			#	PRIORITY DISPLAY	PRIORITY DISPLAY
+
+# BIT 4 FLAG 4	(S)
+NRUPTFLG	=	071D			#	NORMAL DISPLAY		NORMAL DISPLAY NOT
+						#	INTERRUPTED BY		INTERRUPTED BY
+NRUPTBIT	=	BIT4			#	PRIORITY OR MARK	PRIORITY OR MARK
+						#	DISPLAY			DISPLAY
+						
+# BIT 3 FLAG 4	(S)
+MKOVFLAG	=	072D			#	MARK DISPLAY OVER	NO MARK DISPLAY OVER
+MKOVBIT		=	BIT3			#	NORMAL			NORMAL
+
+# BIT 2 FLAG 4
+		=	073D
+		=	BIT2			# OH 2009-05-15 Not in scan.
+		
+		
+# BIT 1 FLAG 4	(S)
+XDSPFLAG	=	074D			#	MARK DISPLAY NOT	NO SPECIAL MARK
+XDSPBIT		=	BIT1			#	TO BE INTERRUPTED	INFORMATION
+
+FLAGWRD5	=	STATE +5		# (075-089)
+
+						#	(SET)			(RESET)
+						
+# BIT 15 FLAG 5	(S)
+DSKYFLAG	=	075D			#	DISPLAYS SENT TO	NO DISPLAYS TO DSKY
+DSKYFBIT	=	BIT15			#	DSKY
+
+# BIT 14 FLAG 5
+		=	076D
+		=	BIT14
+		
+# Page 74
+# BIT 13 FLAG 5	(S,L)
+SNUFFER		=	077D			#	U,V JETS DISABLED	U,V JETS ENABLED
+						#	DURING DPS		DURING DPS
+SNUFFBIT	=	BIT13			#	BURNS (V65)		BURNS (V75)
+
+# BIT 12 FLAG 5	(S)
+NOTHROTL	=	078D			#	INHIBIT FULL		PERMIT FULL THROTTLE
+NOTHRBIT	=	BIT12			#	THROTTLE
+
+# BIT 11 FLAG 5	(S,L)
+R77FLAG		=	079D			#	R77 IS ON,		R77 IS NOT ON.
+						#	SUPPRESS ALL RADAR
+						#	ALARMS AND TRACKER
+R77FLBIT	=	BIT11			#	FAILS
+
+# BIT 10 FLAG 5	(S)
+RNGSCFLG	=	080D			#	SCALE CHANGE HAS	NO SCALE CHANGE HAS
+						#	OCCURRED DURING		OCCURRED DURING
+RNGSCBIT	=	BIT10			#	RR READING		RR READING
+
+# BIT 9 FLAG 5	(S)
+DMENFLG		=	081D			#	DIMENSION OF W IS 9	DIMENSION OF W IS 6
+DMENFBIT	=	BIT9			#	FOR INCORPORATION	FOR INCORPORATION
+
+# BIT 8 FLAG 5	(S)
+		=	082D
+		=	BIT8
+
+# BIT 7 FLAG 5	(S)
+ENGONFLG	=	083D			#	ENGINE TURNED ON	ENGINE TURNED OFF
+ENGONBIT	=	BIT7			#	
+
+# BIT 6 FLAG 5	(S)
+3AXISFLG	=	084D			#	MANEUVER SPECIFIED	MANEUVER SPECIFIED
+						#	BY THREE AXES		BY ONE AXIS; R60
+3AXISBIT	=	BIT6			#				CALLS VECPOINT.
+
+# BIT 5 FLAG 5
+		=	085D
+		=	BIT5			# OH 2009-05-15 Not in scan
+
+# BIT 4 FLAG 5	(S)
+
+# Page 75
+NORRMON		=	086D			#	BYPASS RR GIMBAL	PERFORM
+NORRMBIT	=	BIT4			#	MONITOR			RR GIMBAL MONITOR
+
+# BIT 3 FLAG 5	(S)
+SOLNSW		=	087D			#	LAMBERT DOES NOT	LAMBERT CONVERGES OR
+						#	CONVERGE, OR TIME-RAD	TIME-RADIUS NON-
+SOLNSBIT	=	BIT3			#	NEARLY CIRCULAR		CIRCULAR
+
+# BIT 2 FLAG 5	(S)
+MGLVFLAG	=	088D			#	LOCAL VERTICAL		MIDDLE GIMBAL ANGLE
+						#	COORDINATES		COMPUTED
+MGLVFBIT	=	BIT2			#	COMPUTED
+
+# BIT 1 FLAG 5	(S)
+RENDWFLG	=	089D			#	W MATRIX VALID		W MATRIX INVALID
+						#	FOR RENDEZVOUS		FOR RENDEZVOUS
+RENDWBIT	=	BIT1			#	NAVIGATION		NAVIGATION
+
+
+FLAGWRD6	=	STATE +6		# (090-104)
+
+						#	(SET)			(RESET)
+
+# BIT 15 FLAG 6	(S)
+S32.1F1		=	090D			#	DELTA V AT CSI TIME	DVT1 LESS THAN MAX
+S32BIT1		=	BIT15			#	ONE EXEEDS MAX
+
+# BIT 14 FLAG 6	(S)
+S32.1F2		=	091D			#	FIRST PASS OF		REITERATION OF
+S32BIT2		=	BIT14			#	NEWTON ITERATION	NEWTON
+
+# BIT 13 FLAG 6	(S)
+S32.1F3A	=	092D			# BIT 13 AND BIT 12 FUNCTION AS AN ORDERED
+S32BIT3A	=	BIT13			# PAIR (13,12) INDICATING THE POSSIBLE OC-
+						# CURRENCE OF 2 NEWTON ITERATIONS FOR S32.1
+						# IN THE PROGRAM IN THE FOLLOWING ORDER:
+# BIT 12 FLAG 6	(S)				# (0,1) (I.E. BIT 13 RESET, BIT 12 SET)
+S32.1F3B	=	093D			#      = FIRST NEWTON ITERATION BEING DONE
+S32BIT3B	=	BIT12			# (0,0)= FIRST PASS OF SECOND NEWTON ITERATION
+						# (1,1)= 50 FT/SEC STAGE OF SECOND NEWTON ITERATION
+						# (1,0)= REMAINDER OF SECOND NEWTON ITERATION
+# BIT 11 FLAG 6	(S)						
+		=	094D			#	
+		=	BIT11			#	
+# Page 76
+# BIT 10 FLAG 6	(S)
+GMBDRVSW	=	095D			#	TRIMGIMB OVER		TRIMGIMB NOT OVER
+GMBDRBIT	=	BIT10			#	
+
+# BIT 9 FLAG 6
+		=	096D			#
+		=	BIT9			#	
+
+# BIT 8 FLAG 6	(S)
+MUNFLAG		=	097D			#	SERVICER CALLS		SERVICER CALLS
+MUNFLBIT	=	BIT8			#	MUNRVG			CALCRVG
+
+# BIT 7 FLAG 6	(L)
+		=	098D			#	
+		=	BIT7			#	
+
+# BIT 6 FLAG 6	(L)
+REDFLAG		=	099D			#	LANDING SITE		LANDING SITE
+						#	REDESIGNATION		REDESIGNATION NOT
+REDFLBIT	=	BIT6			#	PERMITTED		PERMITTED
+
+# BIT 5 FLAG 6
+		=	100D			#	
+		=	BIT5			# OH 2009-05-15 Not in scan
+		
+# BIT 4 FLAG 6
+		=	101D			#
+		=	BIT4			# OH 2009-05-15 Not in scan	
+
+# BIT 3 FLAG 6	(S)
+NTARGFLG	=	102D			#	ASTRONAUT DID		ASTRONAUT DID NOT
+						#	OVERWRITE DELTA		OVERWRITE DELTA
+NTARGBIT	=	BIT3			#	VELOCITY AT TPI		VELOCITY
+						#	OR TPM (P34,35)
+
+# BIT 2 FLAG 6
+AUXFLAG		=	103D			#	PROVIDING IDLEFLAG	SERVICER WILL SKIP
+AUXFLBIT	=	BIT2			#	IS NOT SET, SERV-	DVMON ON ITS NEXT
+						#	ICER WILL EXERCISE	PASS EVEN IF THE
+						#	DVMON ON ITS NEXT	IDLEFLAG IS NOT SET.
+						#	PASS.			IT WILL THEN SET
+						#				AUXFLAG.
+
+# BIT 1 FLAG 6	(L)
+ATTFLAG		=	104D			#	LEM ATTITUDE EXISTS	NO LEM ATTITUDE
+						#	IN MOON-FIXED		AVAILABLE IN MOON-
+
+# Page 77
+ATTFLBIT	=	BIT1			#	COORDINATES		FIXED COORDINATES
+
+FLAGWRD7	=	STATE +7		# (105-119)
+
+						#	(SET)			(RESET)
+
+# BIT 15 FLAG 7	(S)
+ITSWICH		=	105D			#	R34;TPI TIME TO BE	TPI HAS BEEN
+ITSWBIT		=	BIT15			#	COMPUTED		COMPUTED
+
+# BIT 14 FLAG 7	(S)
+MANUFLAG	=	106D			#	ATTITUDE MANEUVER	NO ATTITUDE MANEUVER
+						#	GOING DURING RR		DURING RR SEARCH
+MANUFBIT	=	BIT14			#	SEARCH
+
+# BIT 13 FLAG 7	(S)
+IGNFLAG		=	107D			#	TIG HAS ARRIVED		TIG HAS NOT ARRIVED
+IGNFLBIT	=	BIT13			#	
+
+# BIT 12 FLAG 7	(S)
+ASTNFLAG	=	108D			#	ASTRONAUT HAS		ASTRONAUT HAS NOT
+ASTNBIT		=	BIT12			#	OKAYED IGNITION		OKAYED IGNITION
+
+# BIT 11 FLAG 7	(L)
+SWANDISP	=	109D			#	LANDING ANALOG		LANDING ANALOG
+SWANDBIT	=	BIT11			#	DISPLAYS ENABLED	DISPLAYS SUPPRESSED
+
+# BIT 10 FLAG 7	(S)
+NORMSW		=	110D			#	UNIT NORMAL INPUT	LAMBERT COMPUTES ITS
+NORMSBIT	=	BIT10			#	TO LAMBERT		OWN UNIT NORMAL
+
+# BIT 9 FLAG 7	(S)
+RVSW		=	111D			#	DO NOT COMPUTE		COMPUTE FINAL STATE
+						#	FINAL STATE VECTOR	VECTOR IN TIME-THETA
+RVSWBIT		=	BIT9			#	IN TIME-DELTA	
+
+# BIT 8 FLAG 7	(S)
+V67FLAG		=	112D			#	ASTRONAUT OVERWRITE	ASTRONAUT DOES NOT
+						#	W-MATRIX INITIAL	OVERWRITE W-MATRIX
+V67FLBIT	=	BIT8			#	VALUES			INITIAL VALUES
+
+# Page 78
+# BIT 7 FLAG 7	(S)
+IDLEFLAG	=	113D			#	NO DV MONITOR		CONNECT DV MONITOR
+IDLEFBIT	=	BIT7			#	
+
+# BIT 6 FLAG 7	(S)
+V37FLAG		=	114D			#	AVERAGEG (SERVICER)	AVERAGEG (SERVICER)
+V37FLBIT	=	BIT6			#	RUNNING			OFF
+
+# BIT 5 FLAG 7	(S)
+AVEGFLAG	=	115D			#	AVERAGEG (SERVICER)	AVERAGEG (SERVICER)
+AVEGFBIT	=	BIT5			#	DESIRED			NOT DESIRED
+
+# BIT 4 FLAG 7	(S)
+UPLOCKFL	=	116D			#	K-KBAR-K FAIL		NO K-KBAR-K FAIL
+UPLOCBIT	=	BIT4			#	
+
+# BIT 3 FLAG 7	(S)
+VERIFLAG	=	117D			# CHANGED WHEN V33E OCCURS AT END OF P27
+VERIFBIT	=	BIT3			#	
+
+# BIT 2 FLAG 7	(L,C)
+V82EMFLG	=	118D			#	MOON VICINITY		EARTH VICINITY
+V82EMBIT	=	BIT2			#	
+
+# BIT 1 FLAG 7	(S)
+TFFSW		=	119D			#	CALCULATE TPERIGEE	CALCULATE TFF
+TFFSWBIT	=	BIT1			#	
+
+
+FLAGWRD8	=	STATE +8D		# (120-134)
+
+						#	(SET)			(RESET)
+
+# BIT 15 FLAG 8	(S)
+RPQFLAG		=	120D			#	RPQ NOT COMPUTED	RPQ COMPUTED
+						#	(RPQ = VECTOR BE-
+RPQFLBIT	=	BIT15			#	TWEEN SECONDARY BODY
+						#	AND PRIMARY BODY)
+
+# BIT 14 FLAG 8
+		=	121D			#	
+		=	BIT14			#	
+
+# Page 79
+# BIT 13 FLAG 8	(S)
+NEWIFLG		=	122D			#	FIRST PASS THROUGH	SUCCEEDING ITERATION
+NEWIBIT		=	BIT13			#	INTEGRATION		OF INTEGRATION
+
+# BIT 12 FLAG 8	*** PROTECTED FROM FRESH START ***
+CMOONFLG	=	123D			#	PERMANENT CSM STATE	PERMANENT CSM STATE
+CMOONBIT	=	BIT12			#	IN LUNAR SPHERE		IN EARTH SPHERE
+
+# BIT 11 FLAG 8	*** PROTECTED FROM FRESH START ***
+LMOONFLG	=	124D			#	PERMANENT LM STATE	PERMANENT LM STATE
+LMOONBIT	=	BIT11			#	IN LUNAR SPHERE		IN EARTH SPHERE
+
+# BIT 10 FLAG 8	(L)
+FLUNDISP	=	125D			#	CURRENT GUIDANCE	CURRENT GUIDANCE
+FLUNDBIT	=	BIT10			#	DISPLAYS INHIBITED	DISPLAYS PERMITTED
+
+# BIT 9 FLAG 8	(L)
+P39/79SW	=	126D			#	P39/79 OPERATING	P38/78 OPERATING
+P39SWBIT	=	BIT9			#	
+
+# BIT 8 FLAG 8	*** PROTECTED FROM FRESH START ***
+SURFFLAG	=	127D			#	LM ON LUNAR SURFACE	LM NOT ON LUNAR 
+SURFFBIT	=	BIT8			#				SURFACE
+
+# BIT 7 FLAG 8	(S)
+INFINFLG	=	128D			#	NO CONIC SOLUTION	CONIC SOLUTION
+						#	(CLOSURE THROUGH	EXISTS
+INFINBIT	=	BIT7			#	INFINITY REQUIRED)
+
+# BIT 6 FLAG 8	(S)
+ORDERSW		=	129D			#	ITERATOR USES 2ND	ITERATOR USES 1ST
+ORDERBIT	=	BIT6			#	ORDER MINIMUM MODE	ORDER STANDARD MODE
+
+# BIT 5 FLAG 8	(S)
+APSESW		=	130D			#	RDESIRED OUTSIDE	RDESIRED INSIDE
+						#	PERICENTER-APOCENTER	PERICENTER-APOCENTER
+APSESBIT	=	BIT5			#	RANGE IN TIME-RADIUS	RANGE IN TIME-RADIUS
+
+# BIT 4 FLAG 8	(S)
+COGAFLAG	=	131D			#	NO CONIC SOLUTION --	CONIC SOLUTION
+						#	TOO CLOSE TO RECTI-	EXISTS (COGA DOES NOT
+
+# Page 80
+COGAFBIT	=	BIT4			#	LINEAR (COGA OVERFLWS)	OVERFLOW)
+
+# BIT 3 FLAG 8	(S)
+		=	132D			#
+		=	BIT3			# OH 2009-05-15 Line not in scan
+
+# BIT 2 FLAG 8	(L)
+INITALGN	=	133D			#	INITIAL PASS THRU	SECOND PASS THRU P57
+INITABIT	=	BIT2			#	P57			(CHECK RESET-MILLARD)
+
+# BIT 1 FLAG 8	(S)
+360SW		=	134D			#	TRANSFER ANGLE NEAR	TRANSFER ANGLE NOT
+360SWBIT	=	BIT1			#	360 DEGREES		NEAR 360 DEGREES
+
+
+FLAGWRD9	=	STATE +9D		# (135-149)
+
+						#	(SET)			(RESET)
+
+# BIT 15 FLAG 9
+		=	135D			#	
+		=	BIT15			#	
+
+# BIT 14 FLAG 9	(L)
+FLVR		=	136D			#	VERTICAL RISE		NON-VERTICAL RISE
+FLVRBIT		=	BIT14			#	(ASCENT GUIDANCE)
+
+# BIT 13 FLAG 9
+		=	137D			#
+		=	BIT13			# OH 2009-05-15 Line not in scan
+
+# BIT 12 FLAG 9	(L)
+FLPC		=	138D			#	NO POSITION CONTROL	POSITION CONTROL
+FLPCBIT		=	BIT12			#	(ASCENT GUIDANCE)
+
+# BIT 11 FLAG 9	(L)
+FLPI		=	139D			#	PRE-IGNITION PHASE	REGULAR GUIDANCE
+FLPIBIT		=	BIT11			#	(ASCENT GUIDANCE)
+
+# BIT 10 FLAG 9	(L)
+FLRCS		=	140D			#	RCS INJECTION MODE	MAIN ENGINE MODE
+FLRCSBIT	=	BIT10			#	(ASCENT GUIDANCE)
+
+# BIT 9 FLAG 9	(L)
+
+# Page 81	
+LETABORT	=	141D			#	ABORT PROGRAMS		ABORT PROGRAMS
+LETABBIT	=	BIT9			#	ARE ENABLED		ARE NOT ENABLED
+
+# BIT 8 FLAG 9	(L)
+FLAP		=	142D			#	APS CONTINUED ABORT	APS ABORT IS NOT A
+						#	AFTER DPS STAGING	CONTINUATION
+FLAPBIT		=	BIT8			#	(ASCENT GUIDANCE)
+
+# BIT 7 FLAG 9	(L)
+		=	143D
+		=	BIT7			# OH 2009-05-15 Line not in scan
+						
+
+# BIT 6 FLAG 9	(L)
+ROTFLAG		=	144D			#	P70 AND P71 WILL	P70 AND P71 WILL NOT
+ROTFLBIT	=	BIT6			#	FORCE VEHICLE		FORCE VEHICLE
+						#	ROTATION IN THE		ROTATION IN THE 
+						#	PREFERRED DIRECTION	PREFERRED DIRECTION
+
+# BIT 5 FLAG 9	(S)
+QUITFLAG	=	145D			#	DISCONTINUE INTEGR.	CONTINUE INTEGRATION
+QUITBIT		=	BIT5			#	
+
+# BIT 4 FLAG 9
+		=	146D			#	
+		=	BIT4			#	
+
+# BIT 3 FLAG 9	(L)
+MID1FLAG	=	147D			#	INTEGRAT TO TDEC	INTEGRATE TO THE 
+MID1FBIT	=	BIT3			#				THEN-PRESENT TIME
+
+# BIT 2 FLAG 9	(L)
+MIDAVFLG	=	148D			#	INTEGRATION ENTERED	INTEGRATION WAS
+						#	FROM ONE OF MIDTOAV	NOT ENTERED VIA
+MIDAVBIT	=	BIT2			#	PORTALS			MIDTOAV
+
+# BIT 1 FLAG 9	(S)
+AVEMIDSW	=	149D			#	AVETOMID CALLING	NO AVETOMID W INTEGR
+						#	FOR W.MATRIX INTEGR	ALLOW SET UP RM, VN
+AVEMDBIT	=	BIT1			#	DON'T WRITE OVER RN, 	PIPTIME
+						#	VN,PIPTIME
+
+
+RASFLAG		EQUALS	FLGWRD10		# WAS ONLY AN INSTALL-ERASTALL FLAG
+
+# Page 82
+FLGWRD10	=	STATE +10D		# (150-164)
+
+						#	(SET)			(RESET)
+
+# BIT 15 FLAG 10 (S)
+		=	150D			#	
+		=	BIT15			# OH 2009-05-15 Line not in scan
+
+# BIT 14 FLAG 10 (L,C)
+INTFLAG		=	151D			#	INTEGRATION IN		INTEGRATION NOT IN
+INTFLBIT	=	BIT14			#	PROGRESS		PROGRESS
+
+# BIT 13 FLAG 10 (S,L)
+APSFLAG		=	152D			#	ASCENT STAGE		DESCENT STAGE	
+APSFLBIT	=	BIT13			#	 *** PROTECTED FROM FRESH START ***
+
+# BIT 12 FLAG 10
+		=	153D			#	
+		=	BIT12			# OH 2009-05-15 Line not in scan	
+
+# BIT 11 FLAG 10
+		=	154D			#	
+		=	BIT11			# OH 2009-05-15 Line not in scan	
+
+# BIT 10 FLAG 10
+		=	155D			#	
+		=	BIT10			# OH 2009-05-15 Line not in scan	
+
+# BIT 9 FLAG 10
+		=	156D			#	
+		=	BIT9			# OH 2009-05-15 Line not in scan	
+
+# BIT 8 FLAG 10
+		=	157D			#	
+		=	BIT8			# OH 2009-05-15 Line not in scan	
+
+# BIT 7 FLAG 10 (L,C)
+REINTFLG	=	158D			#	INTEGRATION ROUTINE	INTEGRATION ROUTINE	
+REINTBIT	=	BIT7			#	TO BE RESTARTED		NOT TO BE RESTARTED
+
+# BIT 6 FLAG 10
+		=	159D			#	
+		=	BIT6			# OH 2009-05-15 Line not in scan	
+
+# BIT 5 FLAG 10
+		=	160D			#	
+		=	BIT5			# OH 2009-05-15 Line not in scan	
+
+# Page 83
+# BIT 4 FLAG 10
+		=	161D			#	
+		=	BIT4			# OH 2009-05-15 Line not in scan	
+
+# BIT 3 FLAG 10
+		=	162D			#
+		=	BIT3			# OH 2009-05-15 Line not in scan	
+
+# BIT 2 FLAG 10
+		=	163D			#	
+		=	BIT2			# OH 2009-05-15 Line not in scan	
+
+# BIT 1 FLAG 10
+		=	164D			#	
+		=	BIT1			# OH 2009-05-15 Line not in scan	
+
+
+
+FLGWRD11	=	STATE +11D		# (165-179)
+
+						#	(SET)			(RESET)
+
+# BIT 15 FLAG 11 (L)(R12)
+LRBYPASS	=	165D			#	BYPASS ALL LANDING	DO NOT BYPASS LR
+LRBYBIT		=	BIT15			#	RADAR UPDATES		UPDATES
+
+# BIT 14 FLAG 11 
+		=	166D			#	
+		=	BIT14			#	
+
+# BIT 13 FLAG 11 
+		=	167D			#	
+		=	BIT13			#	
+
+# BIT 12 FLAG 11 (L)(R12)
+VXINH		=	168D			#	IF Z VELOCITY DATA	UPDATE X AXIS
+						#	UNREASONABLE,		VELOCITY
+VXINHBIT	=	BIT12			#	BYPASS X VELOCITY
+						#	UPDATE ON NEXT PASS
+
+# BIT 11 FLAG 11 (L)(R12)
+PSTHIGAT	=	169D			#	PAST HIGATE		PREHIGATE
+PSTHIBIT	=	BIT11			#	
+
+# BIT 10 FLAG 11 (L)(R12)
+
+# Page 84
+NOLRREAD	=	170D			#	LANDING RADAR		LR NOT REPOSITIONING
+						#	REPOSITIONING;
+NOLRRBIT	=	BIT10			#	BYPASS UPDATE
+
+# BIT 9 FLAG 11 (L)(R12)
+XORFLG		=	171D			#	BELOW LIMIT		ABOVE LIMIT DO
+						#	INHIBIT X AXIS		NOT INHIBIT
+XORFLBIT	=	BIT9			#	OVERRIDE
+
+# BIT 8 FLAG 11
+LRINH		=	172D			#	LANDING RADAR UP-	LR UPDATES INHIBITED
+LRINHBIT	=	BIT8			#	DATES PERMITTED		BY ASTRONAUT
+						#	BY ASTRONAUT
+
+# BIT 7 FLAG 11	(L)(R12)
+VELDATA		=	173D			#	LR VELOCITY		LR VELOCITY MEASURE
+VELDABIT	=	BIT7			#	MEASUREMENT MADE	NOT MADE
+
+# BIT 6 FLAG 11	(L)(R12)
+READLR		=	174D			#	OK TO READ LR		DO NOT READ LR RANGE
+READLBIT	=	BIT6			#	RANGE DATA		DATA
+
+# BIT 5 FLAG 11	(L)(R12)
+READVEL		=	175D			#	OK TO READ LR		DO NOT READ LR
+READVBIT	=	BIT5			#	VELOCITY DATA		VELOCITY DATA
+
+# BIT 4 FLAG 11	(L)(R12)
+RNGEDATA	=	176D			#	LR ALTITUDE		LR ALTITUDE MEASURE
+RNGEDBIT	=	BIT4			#	MEASUREMENT MADE	NOT MADE
+
+# BIT 3 FLAG 11
+SCALBAD		=	177D			#	LR LOW SCALE DISP-	LS SCALE DISCRETE
+SCABBIT		=	BIT3			#	CRETE NOT PRESENT	APPEARS OK
+						# 	WHEN IT SHOULD
+
+# BIT 2 FLAG 11	(L)(R12)
+VFLSHFLG	=	178D			#	LR VELOCITY FAIL	LR VEL FAIL LAMP
+						#	LAMP SHOULD BE		SHOULDN'T FLASH
+VFLSHBIT	=	BIT2			#	FLASHING
+
+# BIT 1 FLAG 11	(L)(R12)
+# Page 85
+HFLSHFLG	=	179D			#	LR ALTITUDE FAIL	LR ALTITUDE FAIL	
+HFLSHBIT	=	BIT1			#	LAMP SHOULD BE		LAMP SHOULD NOT BE
+						#	FLASHING		FLASHING
+
+RADMODES	EQUALS	FLGWRD12		# RADAR FLAG WORD
+
+FLGWRD12	=	STATE +12D		# (180-194)		WAS RADMODES
+
+						#	(SET)			(RESET)
+
+# BIT 15 FLAG 12 
+CDESFLAG	=	180D			#	CONTINUOUS DESIG-	LGC CHECKS FOR LOCK-
+CDESBIT		=	BIT15			#	NATE, LGC COMMANDS	ON WHEN ANTENNA
+						#	RR REGARDLESS OF	BEING DESIGNATED
+						#	LOCK-ON
+
+# BIT 14 FLAG 12
+REMODFLG	=	181D			#	CHANGE IN ANTENNA	NO REMODE REQUESTED
+REMODBIT	=	BIT14			#	MODE BEEN REQUESTED	OR OCCURRING
+						#	I.E., REMODE
+
+# BIT 13 FLAG 12
+RCDU0FLG	=	182D			#	RR CDU'S BEING		RR CDU'S NOT BEING
+RCDU0BIT	=	BIT13			#	ZEROED			ZEROED
+
+# BIT 12 FLAG 12
+ANTENFLG	=	183D			#	RR ANTENNA MODE IS	RR ANTENNA IN MODE 1
+ANTENBIT	=	BIT12			#	MODE 2
+
+# BIT 11 FLAG 12
+REPOSMON	=	184D			#	REPOSITION MONITOR.	NO REPOSITION TAKING
+REPOSBIT	=	BIT11			#	RR REPOSITION IS	PLACE
+						#	TAKING PLACE
+
+# BIT 10 FLAG 12 
+DESIGFLG	=	185D			#	RR DESIGNATE		RR DESIGNATE NOT
+DESIGBIT	=	BIT10			#	REQUESTED OR IN		REQUESTED OR IN
+						#	PROGRESS		PROGRESS
+
+# BIT 9 FLAG 12 
+ALTSCALE	=	186D			#	LR ALTITUDE READING	LR ALTITUDE READING
+ALTSCBIT	=	BIT9			#	IS ON HIGH SCALE	IS ON LOW SCALE
+
+# Page 86
+# BIT 8 FLAG 12
+LRVELFLG	=	187D			#	LR VELOCITY DATA	NO LR VELOCITY DATA
+LRVELBIT	=	BIT8			#	FAIL			FAIL
+
+# BIT 7 FLAG 12
+RCDUFAIL	=	188D			#	RR CDU FAIL HAS		RR CDU FAIL OCCURRED
+RCDUFBIT	=	BIT7			#	NOT OCCURRED
+
+# BIT 6 FLAG 12
+LRPOSFLG	=	189D			#	LANDING RADAR		LR POSITION 1
+LRPOSBIT	=	BIT6			#	POSITION 2
+
+# BIT 5 FLAG 12
+LRALTFLG	=	190D			#	LR ALTITUDE DATA	NO LR ALTITUDE DATA
+LRALTBIT	=	BIT5			#	FAIL.  COULD NOT BE	FAIL
+						#	READ SUCCESSFULLY.
+
+# BIT 4 FLAG 12
+RRDATAFL	=	191D			#	RR DATA FAIL.		NO RR DATA FAIL
+RRDATABT	=	BIT4			#	DATA COULD NOT BE
+						# 	READ SUCCESSFULLY
+
+# BIT 3 FLAG 12
+RRRSFLAG	=	192D			#	RR RANGE READING	RR RANGE READING ON
+RRRSBIT		=	BIT3			#	ON THE HIGH SCALE	THE LOW SCALE
+
+# BIT 2 FLAG 12
+AUTOMODE	=	193D			#	RR NOT IN AUTO MODE.	RR IN AUTO MODE
+AUTOMBIT	=	BIT2			#	AUTO MODE DISCRETE
+						#	IS NOT PRESENT
+
+# BIT 1 FLAG 12
+TURNONFL	=	194D			#	RR TURN-ON SEQUENCE	NO RR TURN-ON
+TURNONBT	=	BIT1			#	IN PROGRESS.  (ZERO	SEQUENCE IN PROGRESS
+						#	CDU'S, FIX ANTENNA
+						#	MODE)
+
+DAPBOOLS	EQUALS	FLGWRD13		# DIGITAL AUTOPILOT FLAGWORD
+
+# Page 87
+FLGWRD13	=	STATE +13D		# (195-209)	WAS DAPBOOLS
+
+						#	(SET)			(RESET)
+
+# BIT 15 FLAG 13
+PULSEFLG	=	195D			#	MINIMUM IMPUSE		NOT IN MINIMUM
+PULSES		=	BIT15			#	COMMAND MODE IN		IMPULSE COMMAND MODE
+						#	"ATT HOLD" (V76)	(V77)
+
+# BIT 14 FLAG 13
+USEQRFLG	=	196D			#	GIMBAL UNUSABLE.	TRIM GIMBAL MAY BE
+USEQRJTS	=	BIT14			#	USE JETS ONLY.		USED.
+
+# BIT 13 FLAG 13
+CSMDKFLG	=	197D			#	CSM DOCKED.  USE	CSM NOT DOCKED TO LM
+CSMDOCKD	=	BIT13			#	BACKUP DAP
+
+# BIT 12 FLAG 13
+OURRCFLG	=	198D			#	CURRENT DAP PASS	CURRENT DAP PASS IS
+OURRCBIT	=	BIT12			#	IS RATE COMMAND		NOT RATE COMMAND
+
+# BIT 11 FLAG 13
+ACC4-2FL	=	199D			#	4 JET X-AXIS TRANS-	2 JET X-AXIS TRANS-
+ACC4OR2X	=	BIT11			#	LATION REQUESTED	LATION REQUESTED
+
+# BIT 10 FLAG 13
+AORBTFLG	=	200D			#	B SYSTEM FOR X-		A SYSTEM FOR X-
+AORBTRAN	=	BIT10			#	TRANSLATION		TRANSLATION PREFER'D
+
+# BIT 9 FLAG 13
+XOVINFLG	=	201D			#	X-AXIS OVERRIDE		X-AXIS OVERRIDE OKAY
+XOVINHIB	=	BIT9			#	LOCKED OUT
+
+# BIT 8 FLAG 13
+DRIFTDFL	=	202D			#	ASSUME 0 OFFSET		USE OFFSET ACCELERA-
+DRIFTBIT	=	BIT8			#	DRIFTING FLIGHT		ION ESTIMATE
+
+# BIT 7 FLAG 13
+RHCSCFLG	=	203D			#	NORMAL RHC SCALING	FINE RHC SCALING
+RHCSCALE	=	BIT7			#	REQUESTED		REQUESTED
+
+# Page 88
+# BIT 6 FLAG 13
+ULLAGFLG	=	204D			#	ULLAGE REQUEST BY	NO INTERNAL ULLAGE
+ULLAGER		=	BIT6			#	MISSION PROGRAM		REQUEST
+
+# BIT 5 FLAG 13
+AORBSFLG	=	205D			#	P-AXIS COUPLES 7.15	P-AXIS COUPLES 4.12
+AORBSYST	=	BIT5			#	AND 8.16 PREFERRED	AND 3.11 PREFERRED
+
+# BIT 4 FLAG 13
+DBSELFLG	=	206D			#	MAX DB SELECTED		MIN DB SELECTED BY
+DBSELECT	=	BIT4			#	BY CREW	(5 DEG)		CREW (0.3 DEG)
+
+# BIT 3 FLAG 13
+ACCOKFLG	=	207D			#	CONTROL AUTHORITY	RESTART OR FRESH ST.
+ACCSOKAY	=	BIT3			#	VALUES FROM 1/ACCS	SINCE LAST 1/ACCS;
+						#	USABLE			OUTPUTS SUSPECT.
+
+# BIT 2 FLAG 13
+AUTR2FLG	=	208D			# THESE FLAGS ARE USED TOGETHER TO INDICATE
+AUTRATE2	=	BIT2			# ASTRONAUT-CHOSEN KALCMANU MANEUVER RATES
+						# (0,0)=(BIT2,BIT1)=	0.2 DEG/SEC
+# BIT 1 FLAG 13					# (0,1)= 		0.5 DEG/SEC
+AUTR1FLG	=	209D			# (1,0)=		2.0 DEG/SEC
+AUTRATE1	=	BIT1			# (1,1)=	       10.0 DEG/SEC
+
+# Page 89 (nothing on this page)
+
diff --git a/FP8.s b/FP8.s
deleted file mode 100644
index c7ef351..0000000
--- a/FP8.s
+++ /dev/null
@@ -1,4768 +0,0 @@
-# Copyright:	Public domain.
-# Filename:	FP8.s
-# Purpose:	This is the Apollo lunar module's firmware for the 
-#		Abort Guidance System (AGS).  This is Flight Program 8.
-# Assembler:	yaLEMAP
-# Contact:	Ron Burkey <info@sandroid.org>.
-# Website:	www.ibiblio.org/apollo/yaAGS.html
-# Reference:	http://www.ibiblio.org/apollo/Pultorak_files/FP8Listing.pdf.
-# Mod history:	2005-01-15 RSB	Began.
-#		2005-01-17 RSB	Data entry complete, but not debugged.
-#		2005-01-18 RSB	As of yesterday, this assembled with
-#				86 fatal errors.  These have all been
-#				repaired.  Lots of other stuff fixed too.
-#				I know know that the addresses and 
-#				opcodes at the ends of each page are 
-#				correct.  However, the checksums are
-#				still wrong, so the next step is to
-#				proceed with a binary comparison.
-#		2005-01-18 RSB	Fully debugged and ready to go.
-#				It has been completely proofed against
-#				the binary in the scanned assembly
-#				listing, and the checksums are correct.
-#				(Of course, it could always use more 
-#				proofing if somebody wanted to do it.
-#				Particularly the program comments.)
-#		2005-05-14 RSB	Corrected website reference above.
-#		2005-06-12 RSB	Fixed comments on p. 117.
-#
-# The contents have been taken (by means of manual data entry) from 
-# an assembly listing of Flight Program 8 scanned by John Pultorak from
-# a physical copy preserved by supplied by Davis Peticolas.  (The WWW link
-# for the scan is referenced above.)
-#
-# This file contains the entire source code for FP8.  I have not split the
-# source code into many smaller chunks as has been done for AGC source code.
-# The page references are to the scanned PDF of the assembly listing, but 
-# the page markings on the physical copy match the PDF pages.  In addition 
-# to the comments containing the page references, I've also added some 
-# blank lines for readability.  So don't expect the line number in the 
-# scanned version to match the line numbers in an assembly listing created
-# by processing this source file with the yaLEMAP cross-assembler.
-
-# Page 1
-# FLIGHT PROGRAM 8 -- LM AGS FP8 S03 4039 -- 12/18/70
-#     LM ABORT ELECTRONICS ASSEMBLY
-#
-#		SCRATCH PAD STORAGE
-	ORG	0000
-TS0	DEC	0
-TS1	DEC	0
-TS2	DEC	0
-TS3	DEC	0
-TS4	DEC	0
-TS5	DEC	0
-TS6	DEC	0
-TS7	DEC	0
-TS10	DEC	0
-TS11	DEC	0
-TS12	DEC	0
-TS13	DEC	0
-TS14	DEC	0
-TS15	DEC	0
-TS16	DEC	0
-TS17	DEC	0
-SREX3	DEC	0
-SREX2	DEC	0
-SREX1	DEC	0
-SREX	DEC	0
-TVARBR	DEC	0		# TEMP STORE FOR CK SUM.
-	TRA	RETURN		# SERV ROUT, STARTUP
-#
-#		TAPE LOAD STARTUP CHECKSUM
-#
-SF	OUT	6402		# DEDA INPUT SCALE FACTOR
-OCTF	INP	2040		# DEDA OCTAL INPUT
-#
-#		THE NEXT 16 LOCATIONS ARE SHARED
-#		WITH A RR FILTER TEMPORARY MATRIX
-#
-U2X	ALS	1		# B1	UNIT RADIAL VECTOR TO
-U2Y	TMI	*+2		# B1	TRIAL RENDEZ PT.
-U2Z	TRA	*-3		# B1
-
-# Page 2
-D11	EQU	U2X		# 	RADAR TEMP. MATRIX (16 LOC)
-VFX	EQU	U2X		# 	BRAKING VEL VECTOR AT 13.
-C2	DLY	*+1		# B1	RENDEZ ANGLE SINE
-V1X	OUT	7012		# B1	HORIZ UNIT VECTOR
-V1Y	INP	6200
-V1Z	CLZ	SUM
-DLSC	CLA	V2Z		#	DOWNLINK SHIFT COUNTER
-W1X	STO	TVARBR		# B1	U1 X V1
-D31	EQU	W1X
-W1Y	CLZ	WRDCNT
-W1Z	TSQ	TVARBR
-SI	ADZ	SUM		# B0 	E(SIN(E0))
-RD2DOT	STO	SUM		# B7	DESIRED RADIAL ACCEL
-YD2DOT	CLA	TVARBR		# B7	DESIRED OUT-OF-PLANE ACCEL
-TSEX	SUB	CLAFR		#	EXIT FROM NORTON
-SIDELL	TMI	U1X		# B1	SIN DELTA L
-V6X	CLZ	SUM 		# B13	TEMP STORAGE FOR TPI QUANT
-V6Y	TMI	*+3
-V6Z	SUB	1B17
-DQSX	EQU	V6X		# 	ACCUM VEL IN XDV
-CODELL	TMI	EXIT40		# B1	COS DELTA L
-WCX	CLA	10B4		# B1	UNIT VECTOR NORMAL
-WCY	STO	S12		# 	TO CSM ORBIT
-WCZ 	OUT	6410
-TMPBR	TRA	SINITC		#	TEMP BRANCH STORE
-U1X	CLZ	WRDCNT		# B1	LEM UNIT RAD VECTGOR
-U1Y	ADD	1B17
-U1Z	STO	WRDCNT
-BRANCH	SUB	1B11		#	GUIDANCE BRANCH
-V2X	TMI	W1Z		# B1	HORZ UNIT VECTOR AT
-V2Y	DLY	W1Y		#	RENDEZ POINT
-V2Z	CLA	0206
-VGX	EQU	V2X		#	VEL TO GAIN VECTOR AT L3
-#
-#	END OF TAPE LOAD CHECKSUM PROGRAM
-#
-AT	DEC	0B7
-
-# Page 3
-EX	DEC	0B2		#	ATTITUDE ERRORS.
-EY	DEC	0
-EZ	DEC	0
-X3	DEC	0B0		#	XFR ORB PARAM.
-TR3	EQU	X3		#	ADDRESS OF RESULT FOR MXM
-DVXM1	DEC	0B1		#	BODY DELTA VS
-DVYM1	DEC	0		# 	PREVIOUS CYCLE.
-DVZM1	DEC	0
-NI	DEC	0B-9		#	PREDICTION ANGULAR FREQUENCY
-NE	EQU	NI		# 	CSM PRED. ANGULAR FREQ.
-TR8	EQU	NI		#	RADAR TEMP.
-VD2X	DEC	0B2		# 	DELTA V EXP LS
-VD2Y	DEC	0
-VD2Z	DEC	0
-CI	DEC	0B0		#	E(COS(E0))
-TR1	EQU	CI		# 	ADDR. OF 1ST MATRIX FOR MXM
-DRX	DEC	0B14		#	LRM POS REMAINDERS
-DRY	DEC	0
-DRZ	DEC	0
-THEP	DEC	0		#	PGNS THETA IN COUNTS.
-DIGX	DEC	0B7		# 	PREDICTED CHANGE IN
-DIGY	DEC	0		#	INTEGRATED GRAVITY.
-DIGZ	DEC	0
-PSIP	DEC	0		#	PGNS PSI IN COUNTS.
-GXDT	DEC	0B7		#	GRAVITY TIMES MAJOR
-GYDT	DEC	0
-GZDT	DEC	0
-PHIP	DEC	0		#	PGNS PHI IN COUNTS.
-DVSX	DEC	0
-DVSY	DEC	0
-DVSZ	DEC	0
-SIGA	DEC	0B1		# 	SIN FDAI GAMMA.
-RRX	DEC	0B23		# 	COMPUTED LM-CSM RANGE
-RRY	DEC	0
-RRZ	DEC	0
-COGA	DEC	0B1		#	COS FDAI GAMMA.
-A11	DEC	1.0B1		#	XB DIRECTION COSINES.
-
-# Page 4
-A12	DEC	0
-A13	DEC	0
-TS8	DEC	0
-A31	DEC	0		#	ZB DIRECTION COSINES
-A32	DEC	0
-A33	DEC	1.0B1
-SUM	DEC	0		# 	RUNNING MEMORY SUM
-A21	DEC	0		#	YB DIRECTION COSINES
-A22	DEC	1.0B1
-A23	DEC	0
-X4	DEC	0B0		#	XFR ORB PARAM.
-VHSQ	EQU	X4		# 0B26	VH SQUARED
-TR2	EQU	X4		#	ADDR. OF 2ND MATRIX FOR MXM
-E1	DEC	0		#	-6 OR -9 XB NORM ERROR
-E3	DEC	0		#	ZB NORMALITY ERROR.
-E13	DEC	0		#	XB,ZB ORTHOG ERROR.
-DEL10	DEC	0		#	TPI LOGIC FLAG
-DA11	DEC	0B-5		#	DIR COSINE REMAINDERS
-DA12	DEC	0
-DA13	DEC	0
-WRDCNT	DEC	0		#	CKSUM WORD COUNT
-DA31	DEC	0
-DA32	DEC	0
-DA33	DEC	0
-DEL44	DEC	0		#	RADAR CODE WORD RESET FLAG
-A11D	DEC	0B1		#	XD DIRECTION COSINES.
-A12D	DEC	0
-A13D	DEC	0
-	DEC	0		#	** UNUSED -- INDEXED BY A11D **
-A31D	DEC	0B1		#	ZD DIRECTION COSINES.
-A32D	DEC	0
-A33D	DEC	0
-MU17	DEC	0B3		#	RADAR FILTER ENTRY COUNTER
-P	DEC	0B23		#	TRIAL SEMI-PARAMETER
-ALPHA	DEC	0B23		#	XFR ORBIT SEMI-MAJOR AXIS
-Q1	DEC	0B23		#	XFR ORBIT PERILUNE
-ESQ	EQU	Q1
-
-# Page 5
-AI	DEC	0B23		#	PRED. SEMI-MAJOR AXIS
-AE	EQU	AI		#	CSM PRED. SEMI-MAJOR AXIS
-R5X	DEC	0B23		#	LM PRED POS AHEAD TDEL
-R5Y	DEC	0
-R5Z	DEC	0
-AL	DEC	0B23		#	LM PRED. SEMI-MAJOR AXIS
-REX	DEC	0B23		#	CSM EPOCH POSITION
-REY	DEC	0
-REZ	DEC	0
-RT	DEC	0B23		#	CSM PRED POS. MAG.
-R0X	DEC	0B23		#	PRED EPOCH POS VECTOR
-R0Y	DEC	0
-#	SEE REAR OF LISTING FOR CHECKSUM
-#	Note that the CHECKSUM pseudo-op is not defined in the AGS
-#	programmer's manual.  I have decided for the purposes of 
-#	implementing yaLEMAT that the following syntax will be
-#	used.  It means that the cross-assembler will compute a
-#	checksum of the address range 0207-1004 (octal), and will
-#	store it right here.
-	CHECKSUM RANGE 0207-1004
-R0Z	DEFINE	0206
-R0	DEC	0B23		# 	PRED EPOCH POS. MAG.
-C11	EQU	P		#	RADAR TEMP. MATRIX
-C12	EQU	ALPHA
-C13	EQU	Q1
-C14	EQU	AI
-C21	EQU	R5X
-C22	EQU	R5Y
-C23	EQU	R5Z
-C24	EQU	AL
-C31	EQU	REX
-C32	EQU	REY
-C33	EQU	REZ
-C34	EQU	RT
-C41	EQU	R0X
-C42	EQU	R0Y
-C43	EQU	R0Z
-C44	EQU	R0
-R	DEC	0B23		#	LM POS MAGNITUDE
-Y	DEC	0B23		#	OUT OF PLANE POSITION
-PP	DEC	0B23		#	P PRIME/EXIT FOR MXM
-POUTFS	DEC	7.684096E4B23	#	MAX P DISPLAYABLE
-POUT	DEC	0		#	DISPLAY POSITION.
-
-# Page 6
-DPOUT	DEC	0		# 	DISPLAY POSITION INCREMENT.
-2K3	DEC	1048576.B23	#	QL SET ON O.F.
-2K14	DEC	5.E4B23		#	INITIAL P PERTURBATION
-RIX	DEC	0B23		#	ELLIPSE PRED POS OUTPUT
-RIY	DEC	0
-RIZ	DEC	0
-DELR1	EQU	RIX		#	MEASURED MINUS COMPUTED RANGE
-DELR3	EQU	RIY		# B23
-DELR2	EQU	RIZ
-25J	DEC	0B23		#	DEDA ALTITUDE UPDATE
-7J	DEC	6042736B23	#	TERM IN AL(O.I.)
-8J	DEC	2940243B23	#	TERM IN AL(O.I) LOWER LIMIT
-10J	DEC	6046910B23	#	RETARGET VALUE FOR 7J
-4K5	DEC	5735200B23	#	NOMINAL BURNOUT ALTITUDE
-2K19	DEC	5.E5B23		#	DELTA P LIMITER
-5J	DEC	5.697785E6B23	#	LANDING SITE RADIUS
-16J	DEC	60000B23	#	ORBIT INSERTION ALTITUDE
-21J	DEC	25000B23	#	PITCH STEERING ALT THRESHOLD
-RRSX	DEC	0B23		#	CALCULATED RANGE AT TIME
-RRSY	DEC	0		#	OF RADAR RANGE MEASUREMENT.
-RRSZ	DEC	0
-6K11	DEC	0.318310B0	#	1/PI
-#
-#	INITIALIZE DATA FROM DOWNLINK ADDRESSES
-#		LOCATIONS 0240-0257 USED
-1J1	DEC	0B23		#	LM EPHEMERIS POS
-1J2	DEC	0
-1J3	DEC	0
-	DEC	0
-2J1	DEC	0		# 	CSM EPHEMERIS POS
-2J2	DEC	0
-2J3	DEC	0
-	DEC	0
-	DEC	0
-	DEC	0
-	DEC	0
-	DEC	0
-	
-# Page 7
-1J7	DEC	0B18		#	LM EPOCH TIME
-1J7LS	DEC	0B1
-	DEC	0
-	DEC	0
-THETAR	EQU	2J3+4		#	RADAR ANTENNA TRUNNION ANGLE
-BETAR	EQU	2J3+5		#	RADAR ANTENNA SHAFT ANGLE
-RM	EQU	1J7		#	RADAR RAW RANGE INPUT
-RMDOT	EQU	1J7+1		# 	RADAR RANGE RATE INPUT
-DEL46	EQU	1J7+2		#	RADAR COMPOSITE WORD
-1J4	DEC	0B13		#	LM EPHEMERIS VEL
-1J5	DEC	0
-1J6	DEC	0
-VPY	DEC	0B13		#	OUT-OF-PLANE VELOCITY
-2J4	DEC	0		#	CSM EPHEMERIS VEL
-2J5	DEC	0
-2J6	DEC	0
-5K18	DEC	-.1B-2		#	RD3DOT LOWER LIMIT
-VY0	DEC	0B13		#	LM OUT-OF-PLANE VEL
-VY0FS	DEC	200B13		#	MAX VY0 DISPLAYABLE
-2J7	DEC	0		#	CSM EPOCH TIME
-2J7LS	DEC	0
-7K1	DEC	30B18		#	TIG TIME BIAS
-1J	DEC	0B18		#	NOMINAL TPI TIME (CSI)
-6K5	DEC	-.73B0		#	Y-POSITION FILTER WEIGHT
-XI	DEC	0B3		#	Z-AXIS/LOCAL HORIZ ANGLE
-A31BD	DEC	0B1		#	UNIT VECTOR (LM-CSM)
-A32BD	DEC	0
-A33BD	DEC	0
-TLOS	DEC	0B3		#	DXFR LOS COMPUTED
-THETAF	EQU	TLOS		#	LM-CSM CENTRAL ANG AT CSI/CDH
-3K4	DEC	.17365B1	#	CENTRAL ANGLE LIMIT ON TPI
-12J	DEC	-.299904B3	#	PHASE ANGLE LIMIT FOR RETARGET
-4J	DEC	0B13		#	TIME OF NODE PRIOR TO RENDEZ
-6J	DEC	2580.0B13	#	DESIRED TRANSFER TIME
-TDEL	DEC	0B13		#	TIME TIL NEXT MANEUVER
-TR	DEC	0B13		#	TIME TIL RENDEZVOUS
-3J	DEC	0B13		#	TARGET OFFSET TIME
-
-# Page 8
-6K12	DEC	9.38B4		#	RAW RADAR AT 18 TO FT. AT 22
-DELRP	DEC	0B23		#	DIFF. ALT. AT TIG(CSI-CDH)
-QA	DEC	0B23		#	LM APOFOCUS ALTITUDE
-18J	DEC	0B22		#	MEASURED RADAR RANGE
-RR	DEC	0B22		#	COMPUTED RANGE
-READP	DEC	0
-ENTERP	DEC	0
-HOLDP	DEC	0
-CLEARP	DEC	0
-HMF	DEC	0
-#		START OF TELEMETRY LIST
-RMF	DEC	0		#	READOUT MODE FLAG
-DD	DEC	0		#	DEDA DATA
-CMF	DEC	0		#	CLEAR MODE FLAG
-A11T	DEC	1.B1		#	TM DIR COSINES
-A12T	DEC	0
-A13T	DEC	0
-ADST	DEC	0		#	DEDA ADDRESS
-A31T	DEC	0
-A32T	DEC	0
-A33T	DEC	1.B1
-H	DEC	0B23		#	ALTITUDE
-RX	DEC	0B23		#	LM POSITION
-RY	DEC	0
-RZ	DEC	0
-QL	DEC	0B23		#	PRESENT LM PERICYNTHION
-EONS10	EQU	QL		#	ENG ON+S10 FOR TM
-RCX	DEC	0B23		#	CSM PRESENT POSITION
-RCY	DEC	0
-RCZ	DEC	0
-RF	DEC	0B23		#	PREDICTED BURNOUT ALT.
-DVX	DEC	0B1		#	BODY DELTA VS
-DVY	DEC	0		#	THIS CYCLE.
-DVZ	DEC	0
-TA2	DEC	0B1		#	ABS TIME LS.
-DAX	DEC	0B-6		#	DELTA ALPHAS
-DAY	DEC	0
-
-# Page 9
-DAZ	DEC	0
-TBO	DEC	0B9		# 	TIME TO BURNOUT.
-VX	DEC	0B13		#	LM VELOCITY
-VY	DEC 	0
-VZ	DEC 	0
-MU8S12	DEC	0		#	MU8/S12
-VCX	DEC	0B13		#	CSM PRESENT VELOCITY
-VCY	DEC	0
-VCZ	DEC	0
-HDOT	DEC	0B13		#	ALTITUDE RATE
-VG	DEC	0B13		#	VELOCITY TO GAIN
-VF	DEC	0B13		#	TRANSFER BRAKING VELOCITY
-TA0	DEC	0B18		#	TIME FROM CSI TO CDH
-TIG	DEC	0B18		#	ABSOLUTE TIME OF MANEUVER
-A11BD	DEC	0B1		#	CMD XB POINTING DIR
-A12BD	DEC	0
-A13BD	DEC	0
-TA1	DEC	0B18		#	ABS TIME MS.
-S0	DEC	0		#	AGS FUNCTION SELECTOR
-DISC1C	DEC	0		#	DISCRETE WD 1-TRUE STATE
-Q1DEDA	DEC	8388500B23	#	TRANS ORBIT PERICYN ALT
-DELH	EQU	Q1DEDA		#	DIFF. ALT. AFTER CDH(CSI-CDH)
-QLTELE	DEC	0B23		#	QL FOR TELE AND DEDA
-VD1X	DEC	0B13		#	40MS VEL ACCUMULATION
-VD1Y	DEC	0
-VD1Z	DEC	0
-#		END OF TELEMETRY LIST
-DEL6	DEC	0		#	CALIBRATE I.C. FLAG
-S10	DEC	0		#	GUIDANCE MODE SELECTOR
-S11	DEC	0		#	AUTO RADAR SWITCH
-S12	DEC	0		#	TEST STATUS
-S13	DEC	0		#	STORE LUNAR AZIMUTH
-S14	DEC	0		#	NAVIGATION INITIALIZE
-S15	DEC	0		# 	RADAR GIMBAL NULL
-RDOTS	EQU	S15		#	R. R. STORED AT RADAR INPUT
-S16	DEC	0		#	CDH APSIDAL SELECTION
-S17	DEC	0		#	RADAR FILTER INIT. SWITCH
-
-# Page 10
-VEX	DEC	0B13		#	CSM EPOCH VEL
-VEY	DEC	0
-VEZ	DEC	0
-RFDOT	DEC	0B13		#	DESIRED ALT RATE
-V0X	DEC	0B13		#	PRED EPOCH VEL VECTOR
-V0Y	DEC	0
-V0Z	DEC	0
-I	EQU	V0X		# 	MXM INDEX
-J	EQU	V0Y		#	MXM INDEX
-K	EQU	V0Z		#	MXM INDEX
-VH	DEC	0B13		#	LM HORIZONTAL VEL
-#		VIX,VIY,VIZ ARE SHARED WITH RR FILTER
-VIX	DEC	0B13		#	ELLIPSE PRED VEL OUTPUT
-VIY	DEC	0
-VIZ	DEC	0
-V	DEC	0B13		#	LM TOTAL VELOCITY
-TP	DEC	0B13		#	TRIAL XFR ORB. TIME.
-T	DEC	0B13		#	TIME TO RENDEZ.
-RB	EQU	T		#	RF SAVED FOR ORBIT INSERT.
-TB	DEC	0B13		#	TA-TE.
-PDOTM1	DEC	0B13		#	DISPLAY POS RATE(-1)
-RRDOT	DEC	0B13		#	RANGE RATE
-1000D	DEC	1000B17		#	RANGE MARK COUNTER INCREMENT
-TI	DEC	0B13		#	PREDICTION TIME/RR FILTER TEMP
-DPDOUT	DEC	0B13		#	DISPLAY POS RATE INCREMENT
-PDOUT	DEC	0B13		#	DSP POS RATE CONV TO FPS AT 13
-TCSM	DEC	0B13		#	CSM PERIOD (SEC)
-4K25	DEC	3.402B13	#	ENG CUTOFF COMP
-2K18	DEC	15.B13		#	PARTIAL DERIV PROTECTOR.
-28J1	DEC	0B13		#	DELTA V DOWNRANGE
-28J2	DEC	0B13		#	DELTA V CROSSRANGE
-28J3	DEC	0B13		#	DELTA V RADIAL
-2K20	DEC	2.B13		#	CONVERGENCE CHECK.
-4K26	DEC	70.0B13		#	VG THRESHOLD
-DDF	DEC	0		#	DEDA DATA RECEIVED FLAG
-6K4	DEC	.1E3B10		#	INITIAL VALUE OF P33 AND P44
-6K2	DEC	.1E9B30		#	INIT VALUE OF P11,P22
-
-# Page 11
-V5X	DEC	0B13		#	TPI-PREDICTED V AT TPI TIME
-V5Y	DEC	0
-V5Z	DEC	0
-TR4	EQU	V5X		#	NO. OF COL IN MATRIX A
-TR6	EQU	V5Y		#	NO. OF ROWS IN MATRIX B
-TR5	EQU	V5Z		#	NO. OF ROWS IN MATRIX A
-VHA	DEC	0B13
-22J	DEC	50B13		#	PITCH STEERING ALT RATE THRESH
-23J	DEC	19.5B13		#	RFDOT LOWER LIMIT
-5K26	DEC	15B13		#	PSEUDO ATT HOLD IN STEER
-PART	DEC	0B14		#	PARTIAL DERIVATIVE
-VDX	DEC	0B13		#	VD1 AT NAV UPDATE
-VDY	DEC	0
-VDZ	DEC	0
-4K27	DEC	-8000.0B13	#	OVERFLOW PROTECTION FOR VD1X
-VSMGX	DEC	0B13		#	VD1 CUTOFF
-VSMGY	DEC	0
-VSMGZ	DEC	0
-RADOT	DEC	0B13		#	PRED. RDOT AT TIG
-DELVGX	DEC	0B13		#	THRUST VEL TO GAIN
-DELVGY	DEC	0
-DELVGZ	DEC	0
-17J	DEC	0B13		#	RANGE RATE INPUT
-RD3DOT	DEC	0B-2		#	DESIRED RADIAL JERK
-YD3DOT	DEC	0B-2		#	DESIRED OUT-OF-PLANE JERK
-4K12	DEC	5B7		#	ACCEL THRESH IN O.I. STEER
-S507	DEC	0B3		#	ACQ STEER SEL OF PT DIR
-DAXREM	DEC	0B-13		#	INCRE. GYRO INPUT REMAINDERS
-DAYREM	DEC	0
-DAZREM 	DEC	0
-C1 	DEC	0B1		#	RENDEZ ANGLE COSINE.
-WBX	DEC	0B1		#	UNIT VECTOR FOR
-WBY	DEC	0		#	GUIDANCE STEERING
-WBZ	DEC	0
-6K14	DEC	-15768B14	#	RADAR RANGE RATE NULL
-TE1	DEC	0B18		#	CSM EPOCH TIME MS.
-TL1	DEC	0B18		#	LEM EPOCH TIME MS.
-
-# Page 12
-6K6	DEC	-.001B-8	#	Y-VELOCITY FILTER WEIGHT
-5K20	DEC	0B-2		#	RD3DOT LOWER LIMIT
-TE2	DEC	0		#	CSM EPOCH TIME LS.
-TL2	DEC	0		#	LEM EPOCH TIME LS.
-2K11	DEC	6000B13		#	VF IF OVERFLOW
-4K6	DEC	80.B13		#	RFDOT UPPER LIMIT
-DAXA	DEC	0B-6		#	ALIGN INCREMENTS
-DAYA	DEC	0
-DAZA	DEC	0
-DISC1	DEC	0		#	DISCRETE WORD
-1K18	DEC	.003125B-8	#	ACCEL SCALE FACTOR
-1K20	DEC	.003125B-8
-1K22	DEC	.003125B-8
-1K14	DEC	0B-14		#	X-AXIS MASS UNBAL COMP
-1K19	DEC	0B1		#	ACCEL BIAS
-1K21	DEC	0B1		#	COMPENSATION
-1K23	DEC	0B1
-DSPSC	DEC	0		#	DISPLAY SHIFT COUNTER
-1K1	DEC	0B-13		#	GYRO BIAS
-1K6	DEC	0		#	COMPENSATIONS
-1K11	DEC	0
-DDEL	DEC	0B0		#	LUNAR ALIGN CORRECTION
-1K3	DEC	0B-7		#	GYRO SCALE FACTOR
-1K8	DEC	0		#	COMPENSATIONS
-1K13	DEC	0
-HRF	DEC	0		#	HIGH RATE FLAG
-A31S	DEC	0B1		#	RADAR NULL DIR COS
-A32S	DEC	0
-A33S	DEC	0
-4K4	DEC	.004B-7		#	FACTOR IN RFDOT(OI)
-5K14	DEC	0B-2		#	RD3DOT UPPER LIMIT
-5K16	DEC	.01B-2		#	YD3DOT UPPER LIMIT
-DLWN	DEC	0		#	DOWNLINK WORD COUNTER
-DEL32	DEC	0		#	DOWNLINK INITIALIZE FLAG
-6K8	DEC	.22B10		#	RANGE RATE ERROR VARIANCE
-#					(ADDR OF 6K8 MUST END IN 4)
-6K9	DEC	.3029E-4B-4	#	VARIANCE OF RADAR ANGULAR ERROR
-
-# Page 13
-6K10	DEC	.625E7B28	#	RANGE ERROR VARIANCE
-DSPF1	DEC	0		#	DISPLAY FLAG1.
-ID1F	DEC	0		#	DOWNLINK ID RECEIVED
-DEL31	DEC	0		#	DOWNLINK INPUT COMPLETE
-FLAGT	DEC	0		#	MEMORY TEST
-FLAG1	DEC	0		#	20MS BRANCH CONTROL
-DEL2	OCT	0		#	STAGED FLAG.
-DEL5	OCT	0		#	ATTHLD LOCK FLAG.
-PI	DEC	3.14159266B3
-6K13	DEC	-1.59286B1	#	RADAR RANGE RATE TO FPS AT 13
-DVGXX	DEC	0B13		#	VEL TO GAIN IN EXT DELTA V
-DVGXY	DEC	0
-DVGXZ	DEC	0
-DEL20	DEC	0		#	LOGIC FLAG FOR ENG CONTROL
-DEL21	OCT	0		#	LUNAR SURFACE FLAG.
-2J	DEC	1.9970B7	#	COTAN OF DESIRED LOS AT TPI
-DEL42	OCT	0		#	LUNAR ALINE COMPLETE FLAG
-DEL45	EQU	DEL42		#	RR RANGE/RANGE RT. UPDATE FLAG
-K55	OCT	377777		#	S.F. FOR HDOT DISPLAY
-MU3	DEC	0		#	P-ITER COUNTER.
-RD3DTL	EQU	MU3		#	RD3DOT LOWER LIMIT
-5K17	DEC	-.01B-2		#	YD3DOT LOWER LIMIT
-MU6	DEC	0		#	STAGING COUNTER
-1K37	DEC	15.B17		#	ACCEL CAL DURATION
-MU8	DEC	0		#	ULLAGE COUNTER
-MU10	DEC	0		#	GYRO CALIBRATE DURATION
-1K9	DEC	5.0B17		#	ULLAGE COUNTER LIMIT
-1K30	DEC	150.B17		#	GYRO CALIBRATE DURATION
-2K17	DEC	5.B17		#	NO OF P-ITERATIONS-3
-MU19	DEC	0		#	MARK COUNTER
-4K23	DEC	62.0B17		#	STAGING TIME DELAY
-S623	DEC	0B3		#	EX SELECTION IN G. S
-1K4	DEC	.1B0		#	DISPLAY INTERPOLATION
-1K24	DEC	.87E-3B1	#	SINGULARITY THRESHOLD
-1K26	DEC	-.142857E3B8	#	NEG INV OF ALIGN GAIN CONSTANT
-1K27	DEC	.435E-1B-4	#	ALIGN CONSTANT
-1K28	DEC	107.78396B7	#	ALIGN CONSTANT
-
-# Page 14
-1K29	DEC	.001B-4		#	LUN ALIGN STOP CRITERION
-1K33	DEC	.08B-3		#	CALIBRATE GAIN
-1K34	DEC	.00002B-15	#	CALIBRATE GAIN
-1K35	DEC	.25B7		#	ACCEL BIAS THRESHOLD
-1K36	DEC	-.66667E-3B0	#	ACCEL CAL GAIN
-2K1	DEC	.173189E15B48	#	GRAVITY CONST (LUNAR)
-2K2	DEC	.57740387E-14B-47 #	1/2K1
-6J1	DEC	.3358E-8B-14	#	LUNAR ROT RATE ABOUT X-REF
-6J2	DEC	-.53039E-7B-14	#	LUNAR ROT RATE ABOUT Y-REF
-6J3	DEC	.3052E-8B-14	#	LUNAR ROT RATE ABOUT Z-REF
-B13SF	DEC	.10416666B0	#	.01 MIN TO SEC AT 13
-SDVX	DEC	0B1		#	DV SUM FOR ACCEL CAL
-SDVY	DEC	0		#	(ADDR OF SDVX MUST END IN 4)
-SDVZ	DEC	0
-MU7	DEC	0B17		#	CALIBRATION COUNTER
-7K2	DEC	2B17		#	NOISEIN P-MATRIX DIAGONALS
-B13VSF	DEC	.625B0		#	.1 FPS TO FPS AT 13
-B3SF	DEC	.34971155B0	#	.01 DEG TO RAD AT 3
-B23RSF	DEC	.10533045B0	#	.1 NMI TO FT AT 23
-4K2	DEC	-.50204E-4B-12	#	FACTOR IN TB COMP
-4K3	DEC	.16803E-8B-25	#	FACTOR IN TB COMP
-B22RSF	DEC	.5266522B0	#	.01 NMI TO FT AT 22
-BACCSF	DEC	0.762939B0	#	.001 FT/SEC2 TO FPS/20MS AT 1
-4K34	DEC	1.B7		#	AT LOWER LIMIT
-4K35	DEC	.1B7		#	ULLAGE THRESHOLD
-4K10	DEC	-317438.91B20	#	TERM IN AL(O.I.)
-SUMLIM	DEC	0		#	LAST CELL FOR CHECKSUM
-WORDS	DEC	28
-B18SF	DEC	.333333B0	#	.1 MIN TO SEC AT 18
-4K21	DEC	.26179938B2	#	SC FACTOR FOR ATT ERR OUTPUT
-M25B16	DEC	-25.B16		#	CYCLE COUNT TO SECONDS
-DTB	DEC	1.25B1		#	1 SEC + DEDA TIME BIAS
-ID	DEC	0		# 	CURRENT DOWNLIST ID CODE
-DLWNL	STO	1J1+15		#	END OF DOWNLINK BUFFER
-11J	DEC	-624599.84B20	#	RETARGET VALUE FOR 4K10
-2K4	DEC	-.173189E15B48	#	(-2.)(2K1) B49
-KDT	DEC	1.B1		#	DELTA T/2 AT 1
-
-# Page 15
-BM13SF	DEC	.96049535B0	#	.01 DEG/HR TO RAD/20MS AT -13
-B23SF	DEC	.64B0		#	100 FT TO FT AT 23
-#		THE FOLLOWING 16 PARAMETERS HAVE
-#		VARIABLE SCALING.  INITIAL SCALING IS INDICATED.
-P11	DEC	.1E9B30		#	VARIANCE OF X-POS ERROR
-P12	DEC	0B30		# 	COVARIANCE OF X AND Y POS ERROR
-P13	DEC	0B20		#	COVAR OF X-POS AND X-VEL ERROR
-P14	DEC	0B20		#	COVAR OF X-POS AND Z-VEL ERROR
-P21	DEC	0B30		#	COVAR OF X AND Z POS ERROR
-P22	DEC	.1E9B30		#	VARIANCE OF Z-POS ERROR
-P23	DEC	0B20		#	COVAR OF Z-POS AND X-VEL ERROR
-P24	DEC	0B20		#	COVAR OF Z-POS AND Z-VEL ERROR
-P31	DEC	0B20		#	COVAR OF X-POS AND X-VEL ERROR
-P32	DEC	0B20		#	COVAR OF Z-POS AND X-VEL ERROR
-P33	DEC	.1E3B10		#	VARIANCE OF X-VEL ERROR
-P34	DEC	0B10		#	COVAR OF X-VEL AND Z-VEL ERROR
-P41	DEC	0B20		#	COVAR OF X-POS AND Z-VEL ERROR
-P42	DEC	0B20		#	COVAR OF Z-POS AND Z-VEL ERROR
-P43	DEC	0B10		#	COVAR OF X-VEL AND Z-VEL ERROR
-P44	DEC	.1E3B10		#	VARIANCE OF Z-VEL ERROR
-VRSH	STQ	SREX2
-	LRS	0
-	TRA	SREX2
-TMID	DEC	0		#	TELEMETRY ID
-SFLO	OCT	000026
-PMAXP	OCT	377777		#	COUNTS AT 17
-ORBRET	TRA	DX10P		#	RETURN FROM NORTON IN O.I.
-DEDASC	DEC	0		#	DEDA SHIFT COUNTER
-#
-#
-EX36P	STQ	DEL10
-#		SAVE QUANTITIES FOR LATER USE IN
-#		T/B COMPUTATIONS
-	STO	V6Z
-	CLA	TS12
-	STO	V6X
-	CLA	TS13
-	
-# Page 16
-	STO	V6Y
-	CLA	TI
-	SUB	4J
-	TRA	DXFR14-2
-RREX	CLA	TS0		# VARIABLE ADDRESS LOAD, MULTIPLY
-RREX1	MPY	TS0		# AND STORE FOR MATRIX MULTIPLY
-	DVP	1B3		# ROUTINE (MXM) -- PERFORMS
-	ADZ	TR8		# C(I,J)=C(I,J)+A(K,I)*B(J,K)
-RREX2	STO	TS0
-	STO	TR8		# C(I,J)=C(I,J)+A(K,I)*B(J,K)
-	CLA	RREX
-	ADD	TR4		# INCREMENT CLA
-	STO	RREX
-	CLA	RREX1
-	ADD	1B17		# INCREMENTY MPY
-	STO	RREX1
-	AXT	2,1		# INCREMENT AND TEST INDEXES
-	CLA	I,1
-	ADD	1B17
-	STO	I,1
-	SUB	TR4,1
-	TMI	R1+1
-	TIX	*-5,1
-	CLA	TR6		# REARRANGE DIMENSIONS AND
-	STO	TR4		# ADDRESSES ON EXIT TO SAVE
-	CLA	TR3		# STEPS IN FILTER
-	STO	TR1
-	AXT	7,1
-	TRA	PP		# EXIT MXM
-DIAK1	OCT	377363		# TEST FOR DEDA ENTRY INTO 415
-DIAK2	OCT	377401		# TEST FOR DEDA ENTRY INTO 377
-6K8S	DEC	.22B10		# WORKING VALUE OF 6K8
-#				  (ADDR OF 6K8S MUST END IN 4)
-6K9S	DEC	.3029E-4B-4	# WORKING VALUE OF 6K9
-6K10S	DEC	.625E7B28	# WORKING VALUE OF 6K10
-6K6S	DEC	0		# WORKING VALUE OF 6K6
-#
-
-# Page 17
-#
-	ORG	1000
-CLADD	DEC	0		# PICKUP DEDA DATA
-	TRA	ROR
-RND	STQ	SREX		# DIRECTION COSINE ROUND
-	ADD	1B9
-	LRS	9
-	TRA	SREX
-TMCLA	CLA	0324		# CLA FOR TELEM
-TCLTH	CLA	1005
-DLSTO	STO	1J1-1
-IC1BR	TRA	IC1		# IC1 TRA.
-BR1	TRA	NAV1P
-DEDABR	TRA	DEDAE		# DEDA BRANCH TRA.
-BR50	TRA	EXEC2		# BRANCH 50 TRA.
-#
-#		HARDWIRE ESCAPE POINTS
-#
-EXIT1	TRA	EX1+1
-EXIT2	TRA	UBCOMP
-EXIT3	TRA	ADDMS
-EXIT4	TRA	EX4+1
-EXIT5	TRA	PGNSDE
-EXIT6	TRA	TME
-EXIT7	TRA	PGNSD1+5
-EXIT8	TRA	EX8+1
-EXIT9	TRA	TVTG
-EXIT10	TSQ	SOFT1
-EXIT11	TSQ	SOFT1		# ASCENT ENG ON
-EXIT12	TRA	AHE1
-EXIT13	TRA	EROUT+1
-EXIT14	TSQ	SOFT2
-EXIT15	TRA	LUNAL1		# GAIN CHANGE
-EXIT16	TRA	EX16+1
-EXIT17	TRA	FDAI1
-EXIT18	TRA	NOC
-EXIT19	TRA	DELAY
-
-# Page 18
-EXIT20	TRA	DLDC
-EXIT21	TRA	TIMEA
-EXIT22	TRA	IDLE-1
-O25C	OCT	377747		# TEST FOR TM RESET
-EXIT23	CLZ	VD1X
-	CLZ	VD1Y
-	CLZ	VD1Z
-	TRA	NAV3
-EXIT24	TRA	NAV2
-EXIT25	TRA	NAV3
-SINITC	CLA	4K27
-	STO	VD1X
-	STO	VDX
-	TRA	EXEC1+7
-EXIT26	TRA	XDVS
-EXIT27	TRA	EX27+1
-EXIT28	TRA	EX28+1
-STGCTR	CLZ	MU6		# STAGING DELAY COUNTER
-	ADD	1B17
-	STO	MU6
-	TRA	AHE
-EXIT29	TRA	EX29+1
-CLATAB	CLA	SFTAB-1		# CLA FOR DEDA SF TABLE
-EXIT30	TRA	EX30+1
-EXIT31	TRA	ALTUP
-EXIT32	TRA	LMORB2
-EXIT33	TRA	EX33P
-EXIT34	TRA	EX34P
-EXIT35	TRA	EX35
-EXIT36	TSQ	EX36P
-EXIT37	TRA	EX35+1
-EXIT38	TRA	Q5
-EXIT39	TRA	EXECM
-EXIT40	CLZ	S0		# SOFT INITIALIZE
-	CLZ	DEL5
-	CLZ	FLAGT
-	AXT	7,1		# ZERO S SWITCHES
-
-# Page 19
-	CLZ	S10,1
-	TIX	*-1,1
-	TRA	SINITC		# CONTINUE INITIALIZE
-EXIT41	TRA	DSP1
-EXIT42	TRA	DSP2CP
-EXIT43	ADD	O25C		# CHECK FOR TM RESET
-	ABS
-	TMI	TMIE1		# -- RESET TM AT 25 CYCLE
-	TRA	EXEC1+4		# NOT 25TH CYCLE
-IDAI	OCT	077776		# AGS INITIALIZE DOWNLIST ID
-IDRP	OCT	077775		# REND./PRETHRUST DOWNLIST ID
-EXIT44	TRA	EX44+1
-EXIT45	TRA	EX45+1
-EXIT46	TRA	EX46+1
-EXIT47	TRA	DEXIT
-EXIT48	TRA	CLEARM+1
-EXIT49	TRA	SFTEST
-EXIT50	TRA	EX50+1
-EXIT51	TSQ	DIAT
-EXIT52	TRA	EXEC+1
-EXIT53	TRA	EXEC+1
-DLWNLC	STO	1J1+15		# DLWNL PROTECTION
-ADDMS	AXT	2,1
-	CLA	TS10,1
-	ABS
-	ADD	MS
-	TIX	*-3,1
-	TRA	EX3+1
-EX34P	CLZ	DEL10
-	TMI	EX33PP+1
-	TRA	EX34+1
-THEF	CLA	RF
-	LRS	1		# B24
-	ADZ	TS3
-	LDQ	TS4
-	STO	TS4		# =RF+RX B24
-	STQ	TS3		# =RZ B24
-	
-# Page 20
-	TSQ	ARCTAE
-	STO	TS0		# THETAF B8
-	SUB	PI
-	TMI	*+2
-	SUB	2PIB3
-	ADD	PI
-	STO	THETAF		# THETAF B3
-	CLA	TS0		# B3
-	SUB	2PIB3
-	MPY	M1B1		# B4
-	DVP	NI
-	ADD	TI		# B13
-	TRA	DXFR14-2
-TMIE1	TSQ	TMIE2		# INITIALIZE TELEMETRY
-	CLA	S12
-	ADD	MU8
-	STO	MU8S12		# SAVE MU8/S12 FOR TM
-	SUB	3B3		# TEST FOR SELF TEST FAILURE
-	TMI	*+2
-	OUT	6410		# SET FAILURE INDICATOR
-	TRA	DELAY		# END MAJOR CYCLE
-#
-# 	DEDA SCALE FACTOR LOCATOR TABLE
-#	SCALE FACTORS MUST REMAIN AT LOCS IN COMMENTS
-#	FORMAT OF TABLE IS, BIT 0=1 TABLE EXCEEDED,
-#	BITS 1-9 LAST ADDRESS OF DEDA SCALE FACTOR REGION
-#	BIT 10=1 FOR OCTAL REGION, BITS 11-17 ADDRESS OF
-#	SCALE FACTOR RELATIVE TO LOCATION 636
-SFTAB	OCT	075200		# OCT LOC 026-172,OCT
-	OCT	125441		# OCT LOC 173-253,DEC,SF AT 677
-	OCT	127427		# OCT LOC 254-257,DEC,SF AT 665
-	OCT	134413		# OCT LOC 260-271,DEC,SF AT 651
-	OCT	137027		# OCT LOC 272-276,DEC,SF AT 665
-	OCT	142414		# OCT LOC 277-305,DEC,SF AT 652
-	OCT	145405		# OCT LOC 306-313,DEC,SF AT 643
-	OCT	146415		# OCT LOC 314-315,DEC,SF AT 653
-	OCT	147420		# OCT LOC 316-317,DEC,SF AT 656
-	
-# Page 21
-	OCT	157415		# OCT LOC 320-337,DEC,SF AT 653
-	OCT	164441		# OCT LOC 340-351,DEC,SF AT 677
-	OCT	174413		# OCT LOC 352-371,DEC,SF AT 651
-	OCT	177427		# OCT LOC 372-377,DEC,SF AT 665
-	OCT	200600		# OCT LOC 400-401,OCT
-	OCT	202415		# OCT LOC 402-405,DEC,SF AT 653
-	OCT	207600		# OCT LOC 406-417,OCT
-	OCT	241413		# OCT LOC 420-503,DEC,SF AT 651
-	OCT	257600		# OCT LOC 504-537,OCT
-	OCT	261421		# OCT LOC 540-543,DEC,SF AT 657
-	OCT	263040		# OCT LOC 544-546,DEC,SF AT 676
-	OCT	305600		# OCT LOC 547-613,OCT
-	OCT	311067		# OCT LOC 614-622,DEC,SF AT 725
-	OCT	342200		# OCT LOC 623-704,OCT
-#	THE ABOVE 23-PLACE TABLE MUST BE FOLLOWED 
-#	BY A WORD WITH BIT 0 SET
-#
-#	ORBIT ALIGN COMPUTATIONS
-#
-ORBLIN	AXT	6,1
-	CLZ	A11,1
-	CLZ	DA11,1		# ZERO REMAINDERS
-	TIX	*-2,1
-	CLA	1B1
-	STO	A11
-	STO	A33
-	TRA	COA21-2
-#
-#	MASS UNBALANCE COMPENSATION
-#
-UBCOMP	MPR	1K14		# (DVX)(1K14)	1+(-14)=-13
-	ADZ	DAXREM
-	STO	DAXREM
-#
-#		20MS MODE CHECK.
-#
-MODCK	CLA	S0		# CHECK FOR ALIGNMENT
-
-# Page 22
-	SUB	3B3		# SUBMODES
-	TMI	GYCOM-2		# -- IS INERT REF
-	SUB	1B3
-	TMI	ZNOC		# IMU ALIGN
-	SUB	1B3
-	TMI	GYCOM-2		# -- IS LUNAR ALIGN
-	SUB	1B3
-	TMI	ORBLIN		# ORBIT ALIGN
-	AXT	2,1		# CALIBRATE MODE
-CALIB1	CLA	DEL21
-	TMI	*+5		# -- LM IS ON LUNAR SURFACE
-	CLZ	SDVX,1		# SUM BODY AXIS VEL
-	ADD	DVX,1		# INCREMENTS SINCE START OF ACC.
-	STO	SDVX,1		# BIAS CALCULATIONS
-	TRA	CALIB2
-	CLA	A11,1		# LUNAR CAL., COMPENSATE COMP.
-	MPR	6J1,1		# OF VEH ROT. FOR LUNAR ROTATION
-	ADZ	DAXREM		# 1+(-14)=-13
-	STO	DAXREM		# A11 DOT 6J1
-	CLA	A21,1
-	MPR	6J1,1
-	ADZ	DAYREM
-	STO	DAYREM		# A21 DOT 6J1
-	CLA	A31,1
-	MPR	6J1,1
-	ADZ	DAZREM
-	STO	DAZREM		# A31 DOT 6J1
-CALIB2	TIX	CALIB1,1
-	TRA	GYCOM-2
-#
-#		DEDA MODE SELECTION
-#
-DEDAE	CLZ	CLEARP
-	TMI	CLEARM		# SET CLEAR
-	CLA	CMF
-	TMI	RPT		# CLEAR MODE
-	CLA	RMF
-	
-# Page 23
-	TMI	HET		# READOUT IN PROGRESS
-	CLA	HMF
-	TMI	RRT		# HOLD IN PROGRESS
-DEXIT	AXT	3,1		# NORMAL EXIT
-	TRA	*+4
-CLEARM	STO	CMF
-	INP	DEDA
-	AXT	5,1		# CLEAR EXIT
-	CLZ	READP,1		# RESET FLAGS
-	TIX	*-1,1
-	CLZ	TMPBR		# SET BRANCH FOR NEXT
-	STO 	BRANCH		# GUIDANCE CYCLE
-	CLA	1B11		# INITIALIZE COUNTER
-	STO	DEDASC
-	TRA	DSP1		# TO DISPLAY
-RPT	CLZ	READP		# TEST FOR
-	TMI	RME		# READOUT MODE
-	CLZ	ENTERP		# OR ENTER MODE
-	TMI	RME+1		# ENTRY.
-	TRA	DEXIT		# EXIT
-HET	CLZ	HOLDP		# READOUT TEST FOR
-	TMI	*+2		# HOLD COMMANDED
-	TRA	ADOUT		# TO OUTPUT ROUTINE
-	STO	HMF		# SET HOLD MODE
-	CLZ	RMF
-	TRA	DEXIT
-#
-# 	DEDA SCALE FACTOR SELECTION
-#
-SFTEST	SUB	SFLO
-	TMI	CLEARM+1	# -- IF OCT LOC BELOW 0026
-	CLA	CLATAB		# INITIALIZE FIRST TABLE VALUE
-	STO	VRSH+1		# STORE CLA INSTRUCTION
-	CLA	VRSH+1		# INCREMENT CLA INSTRUCTION
-	ADD	1B17		# ADDRESS
-	STO	VRSH+1
-	TSQ	VRSH
-	
-# Page 24
-	TMI	CLEARM+1	# -- IF OCT LOC ABOVE 704
-	LRS	8		# EXAMINE BITS 1-9 OF VALUE
-	SUB	ADST		# -- IF OCT LOC ABOVE VALUE,
-	TMI	*-7		# CHECK NEXT VALUE IN TABLE
-	LLS	18		# RECOVER BITS 10-17 OF THIS VAL
-	TMI	NOTDD		# -- IF OCT REGION, NO SF REQ
-	LRS	10		# SCALE BITS 11-17 OF VAL
-	ADD	TBRAKE		# CONSTRUCT INSTRUCTION TO OBTAIN
-	STO	VRSH+1		# SCALE FACTOR FOR THIS REGION
-	TSQ	VRSH		# OBTAIN SF FOR THIS REGION
-	STO	SF		# SET SCALE FACTOR
-	TRA	DDIN		# TO INPUT ROUTINE
-DIAT	AXT	1,1		# IMMEDIATE ACTION TEST
-	CLA	ADST		# IMMED. ACTION IF
-	ADD	DIAK1,1		# ACCUMULATOR = 400000
-	ABS
-	TMI	*+4
-	TIX	DIAT+1,1
-	STQ	DDF
-	TRA	DEXIT
-	TIX	ATI,1
-	LDQ	*-2		# SET RETURN TO DEXIT
-	AXT	2,1
-	CLA	RRX,1		# SAVE RANGE FOR FILTER
-	STO	RRSX,1
-	CLA	A31,1		# STORE DIRECTION COSINES
-	STO	A31S,1
-	TIX	*-4,1
-	CLA	RRDOT
-	STO	RDOTS
-	TRA	EXIT
-#
-#		DOWNLINK FORMATTING
-#
-DLDC	AXT	2,1
-	CLZ	0244,1		# LEM VEL
-	STO	1J4,1
-	
-# Page 25
-	CLZ	0250,1		# CSM POS
-	STO	2J1,1
-	CLZ	0254,1		# CSM VEL
-	STO	2J4,1
-	TIX	DLDC+1,1
-	CLZ	0247
-	LRS	14
-	ADZ	0243
-	STO	1J7
-	STQ	1J7LS
-	STO	2J7
-	STQ	2J7LS
-	TSQ	CSMPV
-	TRA	IC1+3
-#
-#		DELTA V ACCUMULATION AND THRUST VEL TO GAIN.
-#
-TVTG	AXT	2,1
-	CLA	DVX,1		# 1
-	LRS	1		# TO 2
-	ADZ	VD2X,1
-	STO	VD2X,1
-	CLA	DVXM1,1
-	LRS	1		# TO 2
-	ADZ	VD2X,1
-	STO	VD2X,1
-	LRS	11		# TO 13
-	STO	TS1
-	ALS	11
-	COM
-	ADZ	VD2X,1
-	STO	VD2X,1		# REMAINDER AT 2
-	CLA	VD1X,1		# DV EXPENDED MS.
-	ADZ	TS1
-	STO	VD1X,1		# VD1 AT 13
-	COM
-	ADD	VSMGX,1		# VSMG-VD1
-	
-# Page 26
-	STO	DELVGX,1	# THRUST VEL TO GAIN
-	CLZ	EX,1
-	TIX	TVTG+1,1
-	TRA	EX9+1
-#
-#	SOFT 40MS COMPUTATIONS
-#
-SOFT1	CLA	S0		# TEST MODE
-	SUB	3B3
-	STO	TS1		# SAVE
-	TMI	IR		# -- IS INTERT. REF.
-ZERR	CLA	ZERO
-	OUT	6007		# ZERO ATTITUDE ERRORS
-	CLZ	DEL5		# RESET ATT HOLD INIT FLAG
-	CLZ	TS1
-	TMI	ENCOM1		# -- IS INERTIAL REF
-	SUB	1B3
-	TMI	SOFT3
-	SUB	1B3
-	TMI	LUNAL
-SOFT3	OUT	7040		# RESET ENG ON
-	OUT	6420		# SET ENG OFF
-	CLA	ZERO		# SET ENG TM FLAG PLUS
-	ADD	S10
-	STO	EONS10	
-	TRA	FDAI		# TO ATTITUDE DISPLAY
-ENCOM1	CLA	DISC1		# FOLLUP ENG. COMMANDS
-	LLS	5
-	TMI	*+4		# -- DESCENT ENG ON
-	LLS	1
-	TMI	*+2		# -- ASCENT ENG ON
-	TRA	SOFT3		# ENG OFF
-	OUT	7020		# RESET ENG OFF
-	OUT	6440		# SET ENG ON
-	CLA	MS		# SET ENG TM FLAG NG
-	TRA	SOFT3+3
-IR	CLA	S11		# TEST FOR AUTO RADAR DATA
-
-# Page 27
-	ALS	3
-	TMI	RADCK
-	STO	DEL44		# SET/RESET CODE WORD FLAG
-IR4	CLA	DISC1
-	ALS	3
-	TMI	IR1		# -- IS FOLLOWUP
-	ALS	1
-	TMI	IR2		# -- IS AUTOMATIC
-	STQ	DEL20
-	TRA	AHE		# TO ATT HOLD
-IR1	CLA	DISC1C
-	ALS	4
-	TMI	ZERR		# PLUS IS AUTOMATIC
-	CLZ	DEL5
-	STQ	DEL20
-	TRA	MODE
-RSTE	CLA	S623
-	ALS	3
-	TMI	*+3
-	CLA	WCX,1
-	TRA	*+2
-	CLA	WBX,1
-	MPR	A31,1
-	COM
-	ADZ	EX
-	STO	EX
-	TIX	RSTE,1
-RST1	TRA	RST
-IR2	ALS	4
-	TMI	IR3		# -- IS ABORT STAGE
-	CLA	DEL21		# IF ON LUNAR SURFACE
-	TMI	ZERR		# OUTPUT ZERO ATT ERRORS
-	CLA	DISC1
-	ALS	7
-	TMI	MODE		# -- IS ABORT
-	TSQ	IR1+4
-IR3	CLA	DEL21
-
-# Page 28
-	TMI	AHE
-	CLA	DISC1C
-	ALS	6
-	TMI	MODE
-	CLA	MU6
-	SUB	4K23
-	TMI	STGCTR		# STAGING ATT HOLD
-MODE	CLA	S0		# TEST STEERING MODE
-	SUB	1B3
-	TMI	AHE		# ATT HOLD
-	AXT	2,1
-	SUB	1B3
-	TMI	RSTE		# RENDEZVOUS STEERING
-	CLZ	DEL5		# ACQUISITION STEERING
-MODE1	CLA	WCX,1
-	MPR	A11,1
-	ADZ	EZ
-	STO	EZ
-	CLA	S507		# ORIENT LM Z-BODY ASIX
-	SUB	1B3		# IN DESIRED THRUST DIR.
-	TMI	*+3		# OR ESTIMATED CSM DIR.
-	CLA	A11BD,1
-	STO	A31BD,1
-	CLA	A31BD,1
-	MPR	A11,1		# XB
-	ADZ	EY
-	STO	EY
-	CLA	A31BD,1		# ZBD
-	MPR	A21,1		# YB
-	COM
-	ADZ	EX
-	STO	EX
-	TIX	MODE1,1
-	TRA	EROUT
-SOFT2	CLZ	DEL20		# FIRST TIME FOLLOW
-	TMI	ENCOM1		# PREVIOUS ENGINE STATE
-	CLA	S0		# IF NOT GUIDANCE STEERING
-	
-# Page 29
-	ALS	3		# TURN ENGINE OFF
-	TMI	*+2
-	TRA	SOFT3
-	CLA	MU8		# TEST FOR ULLAGE
-	SUB	1K9
-	TMI 	SOFT3
-	CLA 	4K25		# TEST CEL TO BE
-	SUB	DELVGX		# GAINED GREATER THAN
-	TMI	ENCOM1+6	# SHUTDOWN THRESHOLD
-	CLA	4K26
-	SUB	VG
-	TMI	ENCOM1+6
-	CLZ	S0		# SET ATT HOLD
-	TRA	SOFT3
-RADCK	STQ	DEL32		# REINITIALIZE DOWNLINK
-	CLA	IDRP		# SET DOWNLIST ID TO REND/PRETHRJ
-	STO	ID
-	CLA	DEL46		# IS CODE WORD RESET
-	ALS	1
-	ABS
-	TMI	IR+3
-	ADD	1B12		# IS CODE WORD SET
-	ABS
-	TMI	*+2		# YES IF NEGATIVE
-	TRA	IR4
-	CLZ	DEL44		# HAS CODE WORD BEEN RESET
-	TMI	*+2		# PRIOR TO BEING SET
-	TRA	IR4		# NO
-	TOV	*+1
-	AXT	1,1		# IF SHAFT OR TRUNNION
-	CLA	THETAR,1	# ANGLE IS GREATER
-	ALS	4		# THAN 11.2 DEG, THEN 
-	TOV	IR4		# DO NOT PROCESS
-	TIX	*-3,1
-	CLZ	DEL45		# ALTERNATE RANGE, RATE
-	TMI	IR6
-	STQ	DEL45
-	
-# Page 30
-	CLZ	RM		# RANGE ENTRY
-	LRS	18
-	CLZ	DEL46		# TEST FOR HIGH SCALING
-	TMI	*+2
-	LRS	3		# LOW SCALE
-	LLS	17
-	MPR	6K12		# COUNTS TO FEET AT 22
-	STO	18J
-	TRA	*+5
-IR6	CLZ	RMDOT		# RANGE RATE ENTRY
-	SUB	6K14		# NULL AT 17000
-	DVP	6K13		# COUNTS TO FT/SEC AT B13
-	STO	17J
-	TSQ	DIAT+10		# SAVE REL RNG VECT, REL VEL
-	AXT	2,1
-IR5	CLA	A21,1		# B1, ADJUST Z BODY FOR SHAFT
-	MPR	THETAR		# B1+B0=B1, AND TRUNNION ANGLES
-	DVP	6K11		# B1-B0=B1
-	STO	A31S,1		# B1
-	CLA	A11,1		# B1
-	MPR	BETAR		# B1+B0=B1
-	DVP	6K11		# B1-B0=B1
-	SUZ	A31S,1		# B1
-	ADD	A31,1
-	STO	TS14,1		# XB*BETAR/6K11-YB*THETAR/6K11+ZB
-	TIX	IR5,1
-	TSQ	NORMV
-	AXT	2,1
-	CLZ	TS10,1		# MOVE NORMALIZED DIRECTION
-	STO	A31S,1		# INTO ZB*
-	TIX	*-2,1
-	TRA	4711		# EXIT TO DEDA DISCRETE SAMPLING
-LUNAL1	CLZ	DAYA		# CHANGE GAIN
-	LRS	2		# 1/4
-	STO	DAYA
-	CLZ	DAZA
-	LRS	2
-	
-# Page 31
-	STO	DAZA
-	TRA	SOFT3
-#
-#		START OF NAVIGATION
-#
-NAV1P	CLA	DEL21
-	TMI	NAV1		# -- IS ON LUNAR SURFACE
-	CLA	VD1X		# COMPUTE THRUST ACCEL
-	SUB	VDX		# 13
-	ALS	5		# 1/2(VD1-VD) AT 7
-	TRA	5166		# TO HARD NAV
-XDVS	AXT	2,1
-	CLA	DVSX,1
-	ADD	1B12
-	LRS	6
-	ADZ	DQSX,1
-	STO	DQSX,1
-	CLA	VD1X,1
-	STO	VDX,1
-	TIX	XDVS+1,1
-	TRA	NAV4
-ALTUP	TSQ	EXEC
-#
-	AXT	2,1
-	CLA	REX,1		# SAVE REX FROM FILTER
-	STO	VIX,1		# SCRATCH MATRIX C AREA
-	CLA	25J		# ALTITUDE ENTRY TEST
-	SUB	1B17
-	TMI	FLTR		# IF NO 25J ENTRY
-	CLA	25J
-	ADD	5J
-	STO	R		# R=5J+25J
-	MPY	U1X,1
-	LLS	1
-	STO	RX,1		# NEW R COMPONENTS
-#
-# 	RANGE AND RANGE RATE COMPUTATIONS
-
-# Page 32
-#
-FLTR	CLA	RCX,1		# RELATIVE RANGE
-	SUB	RX,1
-	STO	RRX,1
-	STO	TS4,1
-	TIX	ALTUP+2,1
-	CLZ	25J
-	TSQ	DPVMAG		# DP COMP OF RR MAG
-	ALS	1
-	STO	RR		# B22 RANGE VECTOR MAG
-	CLA	2K1		# 48
-	LRS	5		# 53
-	DVP	R		# 30
-	DVP	R		# 7
-	DVP	R		# -16
-DAD	STO	D11		# 2K1/R**3 B-16
-	AXT	7,1
-	CLZ	C11,1		# ZERO PHI,M
-	CLZ	C31,1
-	TIX	*-2,1
-	CLZ	RRDOT		# ZEROED FOR SUM
-	AXT	2,1
-FLTRA	CLA	RRX,1
-	DVP	RR
-	STO	A31BD,1		# B1 UNIT POINTING VECTOR
-	CLA	VCX,1		# B13
-	SUB	VX,1
-	STO	TS4,1		# B13 RANGE RATE CSM-LM
-	MPR	A31BD,1
-	ALS	1
-	ADZ	RRDOT
-	STO	RRDOT
-	CLA	U1X,1
-	MPR	U1X,1		# B2
-	MPR	3B3
-	SUB	1B5
-	MPR	D11
-	
-# Page 33
-	STO	C31,1		# ADT,JDT AT B-7
-	CLA	4B17
-	STO	TR4,1		# SET UP DIMENSION FOR MXM
-	TIX	FLTRA,1
-	LDQ	1B3		# COMMON SETUP OF PHI AND M
-	STQ	C11
-	STQ	C22
-	STQ	C44
-	CLA	PAD		# COMMON ADDR SETUP FOR
-	STO	TR1		# PHI*P*PHI(T) AND M*P*M(T)
-	CLA	CAD
-	STO	TR2
-	CLA	DEL21		# BYPASS FILTER IF ON SURFACE TO
-	TMI	FLTRX		# AVOID CONFLICT WITH D44, SIDELL
-#
-PUPDAT	CLZ	MU17		# ZERO MU17 IF FILTER TIME
-	ADD	1B3
-	TMI	FLTRTM
-	STO	MU17
-FLTRD	CLA	17J
-	ABS
-	SUB	1B17
-	TMI	FLTRH		# NO RATE CHECK RANGE
-RATE	CLZ	17J
-	SUB	RDOTS
-	STO	DELR1		# B13
-	AXT	2,1
-FLTRE	CLA	RRDOT		# B13
-	MPR	A31BD,1		# B14
-	DVP	M1B1
-	ADD	TS4,1		# B13
-	MPY	1B2		# SCALE AT B15
-	DVP	RR		# B22
-	STO	C11,1		# M11 AT B-7
-	CLA	A31BD,1		# B1
-	LRS	2
-	STO	C12,1		# M14 AT B3
-	
-# Page 34
-	TIX	FLTRE,1
-	LDQ	C13
-	CLA	C12
-	STQ	C12		# M12 AT B-7
-	STO	C13		# M13 AT B3
-	CLZ	C22		# M22 (M21,M23,M24 ALREADY ZERO)
-	CLA	6K8S		# B10
-	STO	18J		# N11,(N12=C42=0,N22=C44=1B3)
-	CLA	1B17
-	TRA	FLTRJ
-#
-#
-FLTRH	ADD	18J		# CHECK RANGE
-	TMI	FLTRX
-RANGE	AXT	2,1
-FLTRI	CLA	A31S,1		# ZB B1
-	MPR	18J		# B22
-	SUB	RRSX,1
-	STO	DELR1,1		# B23
-	CLA	RRX,1
-	MPR	RRX,1		# B46
-	MPY	6K9S		# B42
-	LLS	12		# B30
-	STO	TS0,1		# B30
-	CLA	A31BD,1		# B1
-	MPR	A31BD,1		# B2
-	MPR	6K10S
-	STO	TS4,1
-	TIX	FLTRI,1
-	ADZ	TS2
-	STO	18J		# N11 AT B30
-	CLA	RRZ
-	MPY	TS0
-	DVP	RRX		# B30
-	STO	C42		# -N12
-	CLZ	TS0
-	ADZ	TS6
-	
-# Page 35
-	STO	C44		# N22
-#				  M IS ALREADY SET UP IN C11-C24
-	CLA	6K5		# B0
-	MPR	DELR3		# B 23
-	ADD	RY		# Y=Y+6K5*DELR3 B23
-	STO	RY
-	CLA	6K6S		# B-8
-	MPY	DELR3		# B15
-	LLS	2		# B13
-	ADD	VY
-	STO	VY		# VY=VY+6K6*DELR3
-	CLA	6K6
-	STO	6K6S		# RESTORE GAIN AFTER 1ST PASS
-	CLA	1000D
-FLTRJ	ADZ	MU19		# INCREMENT MARK COUNTER
-	STO	MU19
-	CLA	2B17		# DIMENSION FOR MXM (OTHER DIM.
-	STO	TR6		# AND ADDR. ALREADY SET UP)
-	CLA	DAD
-	TSQ	MXM		# RETURN WITH D=P(T)*M(T)
-	CLA	C31AD
-	TSQ	MXM		# RETURN WITH Q IN C32-C34
-	CLZ	C42
-	SUB	C32
-	STO	C32		# QP12=QP21= -(Q12+N12)
-	STO	C33
-	MPY	C32
-	LLS	3		# (QP12)**2 AT B57(ZERO FOR RATE)
-D31AD	STO	D31
-	CLA	C31
-	ADZ	18J
-	LRS	17
-	CLA	C34
-	ADZ	C44
-C31AD	STO	C31		# QP11=Q22+N22
-	STQ	C34		# QP22=Q11+N11
-	MPY	C34
-	
-# Page 36
-	LLS	3		# QP11*QP22 AT B57(B10 FOR RATE)
-	SUB	D31
-CAD	STO	C11		# DETERMINANT OF (Q+N) MATRIX
-	CLA	DAD
-	STO	TR2
-	CLA	2B17
-	STO	TR5
-	CLA	4B17
-	STO	TR6
-	CLA	D31AD
-	TSQ	MXM		# RETURN WITH B(T)*C11 IN D31-D44
-	CLA	DELR1		# SETUP FOR TRICKY INDEXING
-	STO	C14
-	CLA	DELR2
-	STO	C24
-#		INDEX IS LOADED IN MXM
-	CLA	D31,1		# AT B57,B47 (B20,B10 FOR RATE)
-	MPY	1B3
-	DVP	C11
-	STO	D31,1		# B(T) AT B3,B-7(B13,B3 FOR RATE)
-	MPY	C14,1		# B(I,1)*DELR1 OR B(I,2)*DELR2
-	LLS	3		# TO B23 OR B13
-	ADZ	C41,1		# LAST 4 TIMES THRU WILL ADD TO
-	STO	C41,1		# VALUES COMPUTED 1ST 4 TIMES
-	TIX	*-8,1
-	CLA	RX
-	SUZ	C41		# B(1,1)*DELR1+B(1,2)*DELR2
-	STO	RX
-	CLA	RZ
-	SUZ	C42		# B(2,1)*DELR1+B(2,2)*DELR2
-	STO	RZ
-	CLA	VX
-	SUZ	C43		# B(3,1)*DELR1+B(3,2)*DELR2
-	STO	VX
-	CLA	VZ
-	SUZ	C44		# B(4,1)*DELR1+B(4,2)*DELR2
-	STO	VZ
-	
-# Page 37
-	CLA	CAD
-	TSQ	MXM		# RETURN WITH B*M*P IN C11-C44
-# 		INDEX IS LOADED IN MXM
-	CLA	P11,1		# P=P-B*M*P
-	SUZ	C11,1
-	STO	P11,1
-	CLA	P31,1
-	SUZ	C31,1
-	STO	P31,1
-	TIX	*-6,1
-	TRA	FLTRX
-FLTRTM	CLA	C33		# FINISH SETUP OF PHI
-	STO	C42		# JDT
-	STQ	C33		# 1B3
-	CLA	U1X
-	MPR	U1Z
-	MPR 	3B3		# B5
-	MPZ	D11
-	STO	C32		# CDT AT B-7
-	STO	C41
-	CLA	1B9		# DT AT B13
-	STO	C13
-	STO	C24		# NOW HAVE PHI IN C11-C44
-	CLA	DAD
-	TSQ	MXM		# RETURN WITH D = P(T)*PHI(T)
-	CLA	PAD
-	TSQ	MXM		# RETURN WITH P=D(T)*PHI(T), OR
-#			 	  P(NEW = PHI*P(OLD)*PHI(T)
-	CLA	P11		# ADD STATE NOISE TO DIAGONALS
-	ADD	7K2
-	STO	P11
-	CLA	P22
-	ADD	7K2
-	STO	P22
-	CLA	P33
-	ADD	7K2
-	STO	P33
-	
-# Page 38
-	CLA	P44
-	ADD	7K2
-	STO	P44
-	TSQ	EXEC
-	TOV	*+1		# RESET OVERFLOW
-	CLA	SICO2+1		# ALS 2
-	TSQ	STEST		# TEST FOR SCALING TOO LOW
-	CLA	CDCC+2		# LRS 1
-	TOV	RSHFT		# NEED RIGHT SHIFT IF OVERFLOW
-	CLA	LRI+2		# ALS 3
-	TSQ	STEST		# SEE IF SCALING DOWN IS POSSIBLE
-	CLA	GYCOM+2		# ALS 1
-RSHFT	STO	VRSH+1
-	AXT	2,1
-	CLA	6K8S,1
-	TSQ	VRSH
-	TOV	RVSAR		# BYPASS RESCALING IF OVERFLOW IN
-#			   	  EITHER 2ND STEST OR ALS 1 6K10,
-	STO	6K8S,1		# OTHERWISE SHIFT LEFT OR RIGHT 1
-	TIX	*-4,1		# 6K8,6K9,6K10 AND P MATRIX
-	AXT	7,1
-	CLA	P11,1
-	TSQ	VRSH
-	STO	P11,1
-	CLA	P31,1
-	TSQ	VRSH
-	STO	P31,1
-	TIX	*-6,1
-RVSAR	CLZ	S17		# IS FILTER INIT. REQUESTED
-	ALS	3
-	TMI	PINIT
-	TRA	FLTRX
-PINIT	AXT	7,1		# INITIALIZE P MATRIX AND FILTER
-	CLZ	P11,1		# CONSTANTS
-	CLZ	P31,1
-	CLA	6K8,1
-	STO	6K8S,1		# THIS ALSO ZEROES 6K6S
-	
-# Page 39
-	TIX	PINIT+1,1
-	CLA	6K2
-PAD	STO	P11
-	STO	P22
-	CLA	6K4
-	STO	P33
-	STO	P44
-	CLZ	MU19		# CLEAR MARK COUNTER
-	CLZ	DEL45		# MAKE RANGE THE FIRST UPDATE
-FLTRX	TSQ	EXEC
-	TRA	LMORB
-#
-#		MATRIX MULTIPLY SUBROUTINE
-#		PERFORMS C = A(T)*B(T) WHERE (T) INDICATES THE
-#		TRANSPOSE OPERATION, EITHER WITH TR1 = ST0 A11
-#		WHERE A11=ADDRESS OF 1ST ELEMENT OF A, TR2 = STO
-#		B11, A = STO C11, TR4 = NO. OF COLUMNS IN A,
-#		TR5 = NO. OF ROWS IN A, TR6 = NO. OF ROWS IN B,
-#		THE RESULT MATRIX C WILL HAVE TR4 ROWS AND TR6
-#		COLUMNS, ALL MATRICES ARE ASSUMED TO BE STORED
-#		BY ROWS IN SEQUENTIAL LOCATIONS BEGINNING WITH
-#		A11, A12, ..., A21, A22, ..., ETC.
-MXM	STQ	PP		# SAVE RETURN ADDRESS
-	STO	TR3		# STORE ST0 C11 IN TR3
-	SUB	1B17
-	STO	RREX2		# VARIABLE MATRIX ELEMENT STORE
-	CLZ	I
-R3	CLA	TR2
-	SUB	1B4		# FORM MPY FROM STO
-	STO	RREX1		# VARIABLE MULTIPLY
-	CLZ	J
-	CLA	DLSC		# (D24)
-	STO	TI		# TEMP. STORAGE TO SAVE D24
-	TSQ	EXEC
-	CLA	TI
-	STO	DLSC		# RESTORE D24
-R2	CLA	TR1
-
-# Page 40
-	ADD	I
-	ADD	STOCOM		# FORM CLA FROM STO
-	STO	RREX		# VARIABLE CLA
-	CLA	RREX2
-	ADD	1B17		# INCREMENT STO INSTRUCTION
-	STO	RREX2
-	CLZ	K
-	CLZ	TR8		# TEMP. SUM
-R1	TRA	RREX
-	TIX	*+2,1
-	TRA	R3
-	TIX	R1,1
-	TRA	R2
-#		TEST FOR VARIABLE SCALING OF FILTER
-STEST	STO	VRSH+1
-	STQ	SREX3
-	CLA	RR		# B22
-	MPR	RR		# 22+22=44
-	MPY	6K9S
-	LLS	10
-	TSQ	VRSH
-	AXT	7,1
-	CLA	P11,1
-	TSQ	VRSH
-	CLA	P31,1
-	TSQ	VRSH
-	TIX	*-4,1
-	TRA	SREX3
-LMORB2	SUB	5J		# QL-5J AT B23
-	STO	QLTELE		# PERIC. ALT
-	CLZ	TS7		# = VH SQ AT B26
-	STO	VHSQ		# SAVE FOR ORB INS
-	TSQ	EXEC
-#
-ORBLM	AXT	2,1
-	CLA	VIX,1		# RESTORE REX INTO FILTER
-	STO	REX,1		# SCRATCH MATRIX C AREA
-	
-# Page 41
-	CLA	RX,1
-	STO	R0X,1
-	CLA	VX,1
-	STO	V0X,1
-	TIX	ORBLM+1,1
-	TSQ	ORBPM		# COMPUTE LM ORBIT PARAMETERS
-	CLA	AI
-	SUB	5J
-	ALS	1		# MPY BY 2
-	SUB	QLTELE
-	STO	QA		# LM APOFOCUS ALT. AT B23
-	TSQ	EXEC
-#
-#
-	CLZ	Y
-	CLZ	VY0
-	AXT	2,1
-KINGK	CLA	RX,1
-	STO	RIX,1		# SAVE R FOR ORBIT INS.
-	MPR	WCX,1
-	ALS	1
-	ADZ	Y
-	STO	Y		# Y=(WCX)DOT(RX)
-	CLA	VX,1
-	STO	VIX,1		# SAVE V FOR ORBIT INS.
-	MPR	WCX,1
-	ALS	1
-	ADZ	VY0
-	STO	VY0		# VY0=(WCX)DOT(VX)
-	CLA	WCX,1		# SET UP FOR CROSS
-	COM			# PRODUCT SUBROUTINE
-	STO	TS10,1		# WC X U1 = U1 X -WC
-	CLA	U1X,1
-	STO	TS4,1
-	TIX	KINGK,1
-	TSQ	CRSPRD
-	TSQ	NORMV		# V1 VECTOR TO TSB
-	
-# Page 42
-	TSQ	CRSPRD
-	CLZ	TS3
-	CLZ	TS4
-	AXT	2,1
-	CLZ	TS10,1
-	STO	V1X,1		# V1 AT 1
-	MPR	A31,1
-	ADD	TS4		# TS4 = V1 DOT ZB AT B2
-	STO	TS4
-	CLZ	TS14,1
-	ALS	1
-	STO	W1X,1
-	CLA	A31,1
-	MPR	U1X,1
-	ADD	TS3
-	STO	TS3		# TS3 = U1 DOT ZB AT B2
-	TIX	*-12,1
-	TSQ	ARCTAE
-	STO	XI
-	TSQ	EXEC		# END OF LEM ORB PAR BRANCH
-#
-#	GUIDANCE MODE CHECK
-#
-GM	CLA	S10
-	ADD	5B3
-	ABS
-	TMI	DXFR1		# TPI SEARCH
-	ADD	1B2
-	TMI	*+5
-	CLZ	TDEL		# TDEL=0
-	CLA	ORBRET		# =TRA DX10P
-	STO	TSEX		# SET UP RETURN FROM NORTON
-	TRA	NORTON+5
-#		CSI,CDH,TPI EXECUTE, OR EXT DV
-	CLA	TIG		# COMPUTE TDEL FOR
-	SUB	TA1		# CSI, CDH, OR TPI(S10=4)
-	ALS	5
-	
-# Page 43
-	STO	TDEL
-DXFR1	CLA	TDEL
-	LRS	5
-	ADD	TA1
-	STO	TIG
-	CLZ	TDEL		# TDEL = OR GTR 0 AFTER TR CALC
-	TMI	*+2
-	STO	TDEL
-	ADD	6J
-	STO	TR		# TIME UNTIL RENDEZVOUS (TPI)
-	CLA	TDEL
-DXFR10	TSQ	NORTON
-DX10P	STO	RF		# PRED. BURNOUT ALTITUDE
-	ADD	2K14
-	STO	P
-	CLZ	RADOT
-	CLZ	VPY
-DXFRR5	CLZ	RIX,1		# R5 STORE
-	STO	R5X,1
-	CLZ	VIX,1
-	STO	TS14,1
-	STO	V5X,1		# V5 STORE
-	MPR	WCX,1
-	ALS	1		# TO 13
-	ADZ	VPY		# VPY = V5 DOT WC
-	STO	VPY
-	CLZ	TS10,1
-	STO	U1X,1		# U1 STORE
-	MPR	V5X,1		# RADOT = R5 DOT U1
-	ALS	1		# TO 13
-	ADZ	RADOT
-	STO	RADOT
-	CLA	REX,1		# CSM POS AND VEL FOR
-	STO	R0X,1		# ELLIPSE PREDICTOR
-	CLA	VEX,1		# AND ORBIT PARAMETERS
-	STO	V0X,1
-	TIX	DXFRR5,1
-	
-# Page 44
-	TSQ	NORMV
-	CLA	TS13
-	STO	VHA
-	TSQ	EXEC
-ORBIT3	TSQ	ORBPM		# CSM ORBIT PARAMETERS
-	CLA	TB
-	SUB	TCSM
-	ADD	TDEL		# +TIME INC. TO DXFR
-	TMI	*+2
-	SUB	TCSM
-	TSQ	NORTON
-DXFR13	CLZ	TS3
-	CLA	RIX,1
-	SUB	R5X,1
-	STO	VIX,1		# RC-R5
-	CLA	WCX,1
-	STO	TS4,1
-	CLA	U1X,1
-	STO	TS10,1
-	MPR	VIX,1		# U1 DOT (RC-R5)
-	ADZ	TS3		# SCALE BOTH RX AND RZ
-	STO	TS3		# AT 24 FOR ARCTAE
-	TIX	DXFR13+1,1
-	TSQ	CRSPRD
-	TSQ	NORMV
-	CLZ	TS4
-VRUP1	AXT	2,1
-	CLA	TS10,1
-	STO	V1X,1		# V1,NORM XPROD OF WC AND U1
-	MPR	VIX,1
-	ADZ	TS4
-	STO	TS4		# RZ AT 24
-	TIX	VRUP1+1,1
-	CLA	1B1
-	SUB	S10
-	TMI	XDV-1		# EXT DELTA V
-	ADD	6B3
-	
-# Page 45
-	TMI	THEF		# O.I., CSI, CDH
-	CLZ	28J1		# COMPUE TPI VELOCITY
-	CLZ	28J2		# IN LOCAL VERTICAL COORD.
-	CLZ	28J3
-	AXT	2,1
-DXFRA	CLA	V1X,1		# B1
-	MPR	VGX,1		# B1+B13=B14
-	ALS	1		# B13
-	ADZ	28J1
-	STO	28J1
-	CLA	W1X,1		# B1
-	MPY	VGX,1		# B1+B13=B14
-	DVP	M1B1		# B13
-	ADZ	28J2
-	STO	28J2
-	CLA	U1X,1		# B1
-	MPY	VGX,1		# B1+B13=B14
-	DVP	M1B1		# B13
-	ADZ	28J3
-	STO	28J3
-	TIX	DXFRA,1
-	TSQ	ARCTAE		# TLOS=ARCTAN(RX,RZ)
-	STO	TLOS		# LINE OF SIGHT (DEDA)
-	CLA	TR
-	SUB	TDEL
-	STO	T
-	CLA	TB
-	SUB	TCSM
-	ADD	TR		# TIME INC. TPI TO REND.
-	SUB	3J		# TARGET OFFSET
-	STO	TI
-	TSQ	EXEC
-DXFR14	CLA	S10
-	COM
-	TMI	CSMT1		# TO ELLIPX
-#
-#		ORBIT INSERTION SECTION
-
-# Page 46
-#
-	SUB	VY0		# S10 EQUALS 0, ORBIT INSERTION
-	MPR	VY0
-	ADD	VHSQ		# VH SQ
-	TSQ	SQRTE
-	STO	VHA		# B13
-	CLA	4K5		# COMPUTE DESIRED BURNOUT
-	SUB	RB		# ALTITUDE RATE
-	MPY	4K4
-	LLS	3
-	STO	RFDOT
-	SUB	4K6		# LIMIT RFDOT BETWEEN
-	TMI	*+3		# 23J AND 4K6
-	CLA	4K6
-	TRA	*+5
-	CLA	23J
-	SUB	RFDOT
-	TMI 	*+3
-	CLA	23J
-	STO	RFDOT
-	CLA	DISC1		# IS ABORT OR ABORT STATE YES
-	ALS	7
-	TMI	*+3		# -- ABORT YES
-	ADD	M1B1
-	TMI	ORBI2		# -- ABORT STATE NO
-	CLA	THETAF
-	SUB	12J
-	TMI	*+5		# -- CENTRAL ANGLE LESS THAN LIMIT
-	CLA	10J		# SET NEW SLOPE AND OFFSET
-	STO	7J		# VALUES FOR AL WHEN ABORT OR
-	CLA	11J		# ABORT STAGE YES AND THE
-	STO	4K10		# CENTRAL ANGLE LARGE
-	CLA	1B1		# STOP PASSES OF NEW SLOPE/OFFSET
-	STO	12J		# EQUALS 4 RAD AT B3
-ORBI2	CLA	THETAF		# CALCULATE AL
-	MPY	4K10
-	ADD	7J
-	
-# Page 47
-	STO	AL
-	CLA	RB
-	STO	RF
-	LRS	1		# CHECK FOR LOW LIMIT OF AL
-	ADD	8J
-	SUB	AL
-	TMI	CDH3+1
-	ADD	AL
-	TRA	CDH3		# AL LOW LIMIT BJ+RB/2
-#
-#		TERMINAL FOR CSI, CDH, EXT DV
-	TSQ	EXEC	
-XDV	CLA	TIG		# TEST FOR ULLAGE TIME
-	SUB	7K1
-	SUB	TA1		# IF TIME FOR ULLAGE, THEN
-	TMI	XDV2		# FREEZE COORDINATE FRAME
-XDV1	AXT	2,1
-	CLA	28J3		# RADIAL COMPONENT
-	MPR	U1X,1		# 13+1=14
-	STO	DQSX,1
-	CLA	28J2		# CROSSRANGE COMPONENT
-	MPR	W1X,1
-	ADZ	DQSX,1
-	STO	DQSX,1
-	CLA	28J1		# DOWNRANGE COMPONENT
-	MPR	V1X,1
-	SUZ	DQSX,1
-	ALS	1		# TO 13
-	STO	DVGXX,1		# VELOCITY TO GAIN
-	TIX	XDV1+1,1
-XDV2	AXT	2,1		# LOAD NDX FOR STEER/XDV
-	CLA	S10		# O.I. EXIT TO STEERING
-	SUB	1B3
-	TMI	STEER4+1	# GO TO STEERING
-XDV3	CLA	DVGXX,1		# INITIAL VG
-	SUB	DQSX,1		# ACCUMULATED DELTA V
-	STO	TS4,1
-	
-# Page 48
-	STO	VGX,1		# B13
-	TIX	XDV3,1
-	TSQ	DPVMAG
-	STO	VG		# VEL TO GAIN MAGNITUDE
-	TRA	Q7		# GO TO STEERING
-#
-Q5	CLA	RFDOT		# GUIDANCE LAW
-	STO	TS4		# SET FOR INDEXING
-	CLZ	TS5
-	CLA	RADOT
-	STO	TS10
-	CLA	VY0
-	STO	TS11
-	AXT	1,1
-	TOV	*+1
-	CLA	RD3DOT,1	# -2
-	MPR	TBO		# 9-2=7
-	LRS	1		# TO 8
-	STO	TS1		# 1/2 AT 7
-	CLA	TS4,1		# RFDOT OR ZERO
-	SUB	TS10,1		# RDOT OR VY0
-	STO	TS2
-	MPY	1B3		# B16
-	DVP	TBO		# 16-9=7
-	SUZ	TS1		# R OR YD2DOT
-	STO	TS0		# TEST FOR OVERFLOW
-	CLZ	TS2		# SIGN IF OVERFLOW
-	TSQ	OVFLT
-	STO	RD2DOT,1
-	CLA	SIXTH		# -2
-	MPR 	RD3DOT,1	# -4
-	MPR	TBO		# 5
-	LRS	1		# TO 6
-	ADD	RD2DOT,1	# +1/2 2DOT AT 6
-	MPR 	TBO		# 15
-	ALS	1		# TO 14
-	STO	TS1
-	
-# Page 49
-	CLA	TS10,1
-	LRS	1		# TO 14
-	ADZ	TS1
-	MPR	TBO		# 23
-	ADD	R,1
-	STO	TS14,1		# RF OR YF
-	TIX	Q5+8,1
-	STO	RF		# 23
-	STO	RB		# SAVE RF FOR ORBIT INSERT.
-	SUB	5J		# -LUNAR RADIUS
-	SUB	16J		# BURNOUT ALT ERROR
-	STO 	TS14
-	LDQ	5K20
-	CLA	4K12
-	SUB	AT
-	TMI	*+3		# IF AT GT 4K12
-	CLA	DEL2	
-	TMI	*+2		# IF AT LE 4K12 AND DEL2=1
-	LDQ	5K18
-	STQ	RD3DTL		# RD3DOT LOWER LIMIT
-	CLA	TBO
-	MPR	TBO
-	MPR	TBO		# TB CUBED
-	STO	TS1		# 27
-	AXT	1,1
-GDLAW3	TOV	*+1
-	CLA	TS14,1		# BURNOUT ERROR
-	MPY	12B4		# 27
-	LLS	2		# TO 25
-	DVP	TS1		# -2
-	ADZ	RD3DOT,1	# DESIRED ACCEL RATE
-	STO	TS0		# TEST FOR OVERFLOW
-	CLA	TS14,1
-	TSQ	OVFLT
-	STO	RD3DOT,1
-	TMI	*+5
-	SUB	5K14,1		# UPPER LIMIT TEST
-	
-# Page 50
-	TMI	*+5
-	CLA	5K14,1		# SET AT UPPER LIMIT
-	TRA	LL3DOT+1
-	SUB	RD3DTL,1	# LOWER LIMIT TEST
-	TMI	LL3DOT
-GDLAW4	TIX	GDLAW3,1
-	CLA	2K1		# 48
-	MPY	1B1		# B49
-	DVP	R		# 49-23-26
-	SUZ	VHSQ		# VH SQ
-	MPY	1B4		# B30
-	DVP	R		# -ORBITAL RAD ACCEL AT 7
-	ADZ	RD2DOT
-	STO	RD2DOT		# CMD RAD ACCEL AT 7
-	TSQ	EXEC
-#
-#		STEERING EQUATIONS.
-#
-STEER	CLA	21J
-	SUB	H
-	TMI	STEER1
-	CLA	22J
-	SUB	HDOT
-	TMI	STEER1
-	CLA	1B3		# =1024B13	COMMAND X-AXIS VERT
-	STO	VG
-	CLA	PMAX		# PSIP=1
-	TRA	*+9
-STEER1	AXT	1,1
-	TOV	*+1
-	CLA	RD2DOT,1	# PSIP AND PSIY COMPS
-	LDQ	ZERO
-	DVP	AT		# PSIP OR Y AT ZERO
-	STO	TS0		# TEST FOR OVERFLOW
-	CLA	RD2DOT,1	# SIGN IF OVERFLOW
-	TSQ	OVFLT
-	STO	TS10,1		# PSIP OR PSIY AT 0
-	
-# Page 51
-	TIX	STEER1+1,1
-	MPR	TS10
-	COM
-	ADD	PMAX
-	STO	TS14		# 1-(PSIP)SQ
-	TSQ	SQRTE
-	STO	TS15
-	CLA	TS11
-	ABS
-	SUB	TS15
-	TMI	STEER3
-	CLA	TS11
-	TMI	*+3
-	CLA	TS15
-	TRA	*+3
-	CLA	TS15
-	COM
-	STO	TS11
-STEER3	CLA	TS11
-	MPR	TS11
-	COM
-	ADZ	TS14
-	TSQ	SQRTE
-	STO	TS12
-STEER4	TRA	XDV1		# COMPUTE DELTA V IN LOCAL VERT.
-	CLA	TS10
-	MPR	U1X,1
-	STO	TS1
-	CLA	28J1
-OUT1	TMI	OUT		# IF 28J1 NEGATIVE
-	CLA	TS12
-	MPR	V1X,1
-	ADZ	TS1
-	STO	TS1
-	CLA	TS11
-	MPR	W1X,1
-	ADZ	TS1
-	
-# Page 52
-	MPY	VG
-	LLS	1		# TO 13
-	STO	VGX,1		# VELOCITY YET TO BE GAINED
-	TIX	STEER4+1,1
-Q7	AXT	2,1		# COMPUTE VELOCITY TO BE
-	CLA	VDX,1		# GAINED COMPONENTS
-	STO	VSMGX,1
-	TIX	*-2,1
-	AXT	2,1
-	CLA	VGX,1
-	MPY	A11,1
-	LLS	1		# TO 13
-	ADZ	VSMGX		# X-COMP OF TOTAL V TO BE GAINED
-	STO	VSMGX
-	CLA	VGX,1
-	MPY	A21,1
-	LLS	1		# TO 13
-	ADZ	VSMGY
-	STO	VSMGY		# Y-COMP OF TOTAL V TO BE GAINED
-	CLA	VGX,1
-	MPY	A31,1
-	LLS	1		# TO 13
-	ADZ	VSMGZ
-	STO	VSMGZ		# Z-COMP OF TOTAL V TO BE GAINED
-	CLA	MU8		# TEST IF ENG ON
-	SUB	1B17
-	TMI	*+4		# -- ENG OFF
-	CLA	VG
-	SUB	5K26
-	TMI	*+5
-	CLA	VGX,1
-	MPY	1B1		# B14
-	DVP	VG		# RESULT AT B1
-	STO	A11BD,1
-	TIX	Q7+5,1
-	TSQ	EXEC
-IDLE	TRA	TEST
-
-# Page 53
-OUT	CLA	TS12
-	COM
-	TRA	OUT1+2
-OVFLT	TOV	*+3
-	CLA	TS0
-	TRA	EXIT		# EXIT WITH COMPUTED VALUE
-	TMI	*+3
-	CLA	PMAX		# POSITIVE LIMIT
-	TRA	*+2
-	CLA	NMAX
-	TRA	EXIT
-#
-#		DISPLAY ROUTINE SOFT PORTION.
-#
-DSP1	TOV	*+1		# CL. O.F.
-	CLZ	DSPF1		# H,HDOT MODE.
-	TMI	*+2		# -- IS INITIALIZE
-	TRA	DSPLY		# TO COUNTER CHECK. (HARD)
-	CLA	H
-	STO	POUT
-	CLA	HDOT
-#		Q REGISTER DOES NOT NEED TO BE ZERO
-#		SINCE DVP K55 IS AT WORST A LEFT
-#		SHIFT OF 2 AND THE ALT RATE REGISTER
-#		IS ONLY 15 BITS LONG
-	DVP	K55
-	TRA	DSPLY1
-DSP2CP	CLA	VY0		# OUT-OF-CSM PLANE VEL.
-	LRS	17		# SET SIGN OF Q AND USE
-	LLS	17		#	UP TIME
-	STQ	TS10		# SAVE SIGN
-	ABS
-	DVP	VY0FS		# =FULL-SCALE VALUE(200 FPS)
-	TOV	*+2
-	TRA	*+2
-	CLA	PMAX
-	ADZ	TS10		# VY0 IN SIGN-MAGNITUDE
-	
-# Page 54
-	TRA	DSPLY3-1	# TO OUTPUT,(HARD)
-#
-#		EXECUTIVE PART 2. (BRANCH 50)
-#		START EXEC2
-#
-EXEC7	CLA	IDRP
-	SUB	ID		# TEST FOR AGS INITIALIZE ID
-	TMI	EXECM2
-EXEC2	CLA	BR1		# SET NAV BRANCH
-	STO	BRANCH
-	CLZ	DDF		# DEDA DATA FLAG.
-	TMI	NEWDD
-EXECM	CLZ	DEL31		# TEST FOR DOWNLINK DATA
-	TMI	EXEC7
-EXECM1	CLA	S0
-	SUB	3B3
-	TMI	EXECA		# S0-3(--IS INER. REF)
-	SUB	1B3		
-	TMI	EXEC6		# S0-4(--IS IMU ALIGN)
-	SUB	1B3
-	TMI	TMIE1		# RESET TM
-	SUB	1B3
-	TMI	EXECA		# S0-6(--IS ORB ALIGN)
-	ADD	7B3		# S0+1
-	TMI	INCMU7		# S0=7
-CAL	CLA	DEL21		# CALIBRATE MODE
-	TMI	*+2
-	TSQ	EADICS		# IMU DIR COSINES
-	TSQ	ATTERR		# COMPUTE ATTITUDE ERRORS
-	AXT	2,1
-	CLA	1K33		# -3
-	MPY	EX,1		# 2
-	LLS	12		# -3+2-12=-13
-	ADZ	DAXREM,1
-	STO	DAXREM,1	# -13
-	CLA	1K34		# -15
-	MPR	EX,1		# 2
-	
-# Page 55
-	ADZ	1K1,1
-	STO	1K1,1		# GYRO BIAS AT -13
-	TIX	*-9,1
-INCMU7	CLZ	MU7		# INCR. COUNTER
-	ADD	1B17
-	STO	MU7
-	SUB	1K37		# ACCEL. CAL. DURATION
-	ABS
-	COM
-	TMI	*+7		# + IS TIME FOR ACCEL CAL
-	AXT	2,1
-	CLZ	SDVX,1
-	MPR	1K36
-	ADZ	1K19,1
-	STO	1K19,1		# NEW BIAS CORRECTION
-	TIX	*-4,1
-	CLA	MU7
-	SUB	1K30
-	TMI	EXECA
-	CLZ	S0		# CAL COMPLETE, SET ATT HOLD
-EXECA	CLZ	DAXA		# ZERO ALIGNMENT INCREMENTS
-	CLZ	DAYA
-	CLZ	DAZA
-	TRA	TMIE1		# RESET TM
-NEWDD	CLA	STOCOM		# EQU TO STORE
-	ADD	ADST		# DEDA ADDRESS
-	STO	VRSH+1		# SET UP STORE INSTRUCTION
-	CLA	DD		# DEDA DATA
-	TSQ	VRSH		# STORE DATA
-	CLA	BR1		# PROTECT BRANCH FROM DEDA
-	STO	BRANCH
-	CLA	DLWNLC		# PROTECT DLWNL
-	STO 	DLWNL		# FROM DEDA ENTRY
-	CLA	ADST
-	SUB	1B9		# S0 ADDRESS
-	TMI	EXECM
-	SUB	1B17
-	
-# Page 56
-	TMI	EXEC3		# NEW WD IS S0
-	SUB	10B17
-	TMI	EXECM		# NEW WD BTWN S0PS13
-	SUB	1B17
-	TMI	LUNAZ		# NEW WD IS S13
-	SUB	1B17
-	TMI	*+2		# NEW WD IS S14
-	TRA	EXECM
-	CLA	S14		# NEW WD IS S14
-	SUB	2B3
-	STO	DEL32		# ENABLE DL IF S14=1
-	TMI	EXECM2+2
-	COM
-	TMI	EXECM1		# -- S14=3
-EXECM2	CLA	IC1BR		# SET IC1 BRANCH
-	STO	BRANCH
-	CLA	IDAI		# AGS INITIALIZE ID
-	STO	ID
-	TRA	EXECM1
-EXEC3	CLA	S0
-	ADD	1B3		# NEG IF S0=7
-	TMI	MABEE
-	SUB	7B3
-	TMI	EXECA
-	CLA	DEL21		# CALIBRATE I.C.
-	TMI	MABEE
-	CLA	3B3		# IMU ALINE FOR 2SECS.
-	STO	S0
-	STQ	DEL6
-MABEE	AXT	6,1
-	CLZ	SDVX,1		# ZERO MU7 AND DV SJMS
-	CLA	A11,1
-	STO	A11D,1
-	TIX	*-3,1
-	TRA	EXECA
-EXEC6	CLZ	DEL6		# IMU ALINE.
-	TMI	*+2		# -- IS CALIBRATE
-	
-# Page 57
-	TRA	*+2
-	CLA	6B3
-	STO	S0
-	TRA	TMIE1		# RESET TM
-FDAI1	CLA	A21
-	MPR	COGA
-	STO	TS1
-	CLA	A23
-	MPR	SIGA
-	TRA	EX17+6
-LL3DOT	CLA	RD3DTL,1
-	STO	RD3DOT,1
-	TRA	GDLAW4
-NORTON	STO	TI
-	STQ	TSEX		# SUBR TO GO TO EXEC.
-	TSQ	EXEC
-	TSQ	ELPRD		# ELPR AND COMPT
-	TSQ	EXEC		# LENGTH OF VECTOR
-	AXT	2,1		# RIX
-	CLA	RIX,1
-	STO	TS14,1
-	TIX	*-2,1
-	TSQ	NORMV
-	AXT	2,1
-	CLA	TS13		# LENGTH OF RI
-	TRA	TSEX
-RRT	CLZ	READP		# TEST FOR EXIT
-	STO	RMF		# FROM HOLD
-	TMI	ADOUT		# TO READ OUT
-	TRA	DEXIT		# EXIT
-EX33P	CLA	S10
-	SUB	3B3
-	TMI	CSICDH
-	CLA	3K4
-	SUB	C2
-	TMI	EX33+1
-	CLZ	DEL10
-	
-# Page 58
-	TMI	EX33PP
-EX35	CLA	2K11
-	STO	VF
-	CLZ	Q1
-	SUB	5J
-	STO	Q1DEDA
-	TRA	Q7		# GO TO STEERING
-EX33PP	CLZ	4J
-#		RESTORE SAVED QUANTITIES FO T/B COMPUTATIONS
-#		IN HARD MEMORY.
-	CLZ	V6X
-	STO	TS12
-	CLZ	V6Y
-	STO	TS13
-	CLZ	V6Z
-	STO	TS14
-	TRA	EX36+1
-CSICDH	TSQ	EXEC
-	CLA	RT
-	SUB	RF
-	STO	DELH
-	STO	DELRP		# LITTLE DELTA R AT 23
-	CLZ	RFDOT
-	AXT	2,1
-	CLA	VIX,1
-	MPR	U2X,1
-	ALS	1
-	ADZ	RFDOT
-	STO	RFDOT		# RFDOT = U2 DOT VT B13
-	TIX	*-5,1
-	CLA	S10
-	ADD	6B3
-	TMI	CDH		# S10 = 2
-CSI	CLA	S16
-	MPY	3PID4		# A=3/4(PI)(S16) AT B6
-	STO	TS1
-	DVP	AE
-	
-# Page 59
-	MPR	DELH
-	STO	TS2		# A(DELH/AE) B6
-	CLA	TS1
-	MPR	1B1
-	STO	TS5		# A AT B7
-	CLA	1J
-	SUB	TIG
-	ALS	3
-	MPR	NE		# NE(1J-TIG) AT B6
-	ADD	TS2
-	MPR	6B3		# =1.5B1  3/2(NE)(1J-TIG)+
-#				          3/2(A)(DELH/AE)
-	SUB	TS5
-	ADD	2J
-	STO	TS7		# B AT AB7
-	CLA	RADOT
-	SUB	RFDOT
-	MPY	1B4
-	DVP	VHA		# 4(RADOT-REDOT)/VHA  B6
-	SUB	TS2
-	STO	TS10
-	CLA	THETAF
-	LRS	3
-	ADD	TS10
-	MPY	1B1		# ACC = C  AT B7
-	DVP	TS7		# C/B B0
-	STO	TS11
-	MPR	AE
-	STO	DELH		# DELH  B23
-	CLA	TS11		# C/B = DELH/AE  B0
-	MPR	TS1		# A(DELH/AE)  B6
-	ADD	TS2
-	STO	TS1
-	CLA	PI
-	MPR	S16
-	SUB	TS1
-	MPY	1B3		# TO B9
-	
-# Page 60
-	DVP	NE
-	STO	TA0
-	CLA	RADOT
-	STO	RFDOT
-CDH2	CLA	DELRP		# LITTLE DELTA R
-	ADD	DELH
-	MPR	M1B1		# -.5B0 = -1B1
-	ADD	AE
-CDH3	STO	AL
-	CLA	AL		# CALCULATE 28J1
-	SUB	RF
-	ADD	AL
-	MPY	2K1
-	LRS	1
-	DVP	RF
-	LDQ	ZERO
-	DVP	AL
-	TSQ	SQRTE
-	SUB	VHA
-	STO	28J1		# 28J1 = VHF - VHA
-	TSQ	EXEC
-	CLA	RADOT
-	SUB	RFDOT
-	STO	28J3
-	STO	TS4+1
-	CLA	S10
-	COM
-	TMI	XDV
-	CLA	28J1
-	STO	TS4
-	CLA	VY0
-	STO	TS4+2
-	TSQ	DPVMAG
-	STO	VG
-	TRA	GDLAW
-CDH	CLZ	TA0
-	ADD	TIG
-	
-# Page 61
-	STO	TIG		# TIG = TIG + TAO
-	TRA	CDH2
-#	SEE REAR OF LISTING FOR CHECKSUM
-#	START OF HARDWIRED MEMORY 
-#		CONSTANTS
-#
-	CHECKSUM RANGE 1005-3776
-	ORG	4000
-7B17	DEC	7.B17		# CONSTANTS FOR NORMALIZE
-6B17	DEC	6.B17
-5B17	DEC	5.B17
-4B17	DEC	4.B17
-3B17	DEC	3.B17
-2B17	DEC	2.B17
-1B17	DEC	1.B17
-ZERO	DEC	0
-2B3	EQU	1B2
-5B3	EQU	10B4
-6B3	EQU	12B4
-1B4	DEC	1.B4
-1B5	DEC	1.B5
-1B6	DEC	1.B6
-1B9	DEC	1.B9
-1B11	DEC	1.B11
-1B12	DEC	1.B12
-1B13	DEC	1.B13
-1B14	DEC	1.B14
-8B17	EQU	1B14
-SIXTH	OCT	252525
-2PIB3	DEC	6.2831853B3
-1K25	EQU	2PIB3
-3PID4	DEC	2.3561945B3
-PID2	DEC	1.57079633B3
-PID4	DEC	.78539816B3
-K173	DEC	-.18488E-3B-6
-K172	DEC	.83119E-2B-4
-K171	DEC	-.16665554B-2
-
-# Page 62
-K170	OCT	377777		# 1B0
-PMAX	EQU	K170
-K183	DEC	-.0389929B-3
-K182	DEC	.1462766B-1
-K181	DEC	-.3211819B1
-K180	DEC	.999215B2
-SHDUM	LRS	0
-MS	OCT	400000
-NMAX	OCT	400001
-49B17	DEC	49.B17
-10B17	DEC	10.B17
-BCDL	DEC	100000.B17
-TRNSFR	TRA	EROUT		# EXIT FROM ATT ERROR COMPS
-BACK	TRA	RETURN
-TMOUT	OUT	6100
-CLAFR	CLA	4000
-CLATEN	EQU	SICO2		# CLA 0,1
-TRACOM	EQU	MS		# LOOKS LIKE TRA 0
-STOCOM	EQU	1B2		# LOOKS LIKE STO 0
-DUMCLA	EQU	1B1		# LOOKS LIKE CLA 0
-#
-# **	20 MILLISECOND COMPUTATIONS
-#
-DELAY	DLY	*+1
-	INP	2001		# INPUT PGNS ANGLES
-	STO	THEP
-	INP	2002
-	STO	PHIP
-	INP	2004
-	STO	PSIP
-	INP	6010		# INPUT GYRO DATA
-	STO	DAX
-	INP	6002
-	STO	DAY
-	INP	6004
-	STO	DAZ
-	INP	6020		# INPUT ACCELEROMETER DATA
-	
-# Page 63
-1B2	STO	TS0		# VALUE USED AS CONSTANT
-	INP	6040
-	STO	TS1
-	INP	6100
-	STO	TS2
-EX1	TRA	EXIT1
-#	PROCESS ACCELEROMETER INPUTS
-	AXT	2,1
-DVS	CLZ	DVX,1		# SAVE PREVIOUS VALUE
-	STO	DVXM1,1
-	CLZ	TS0,1
-	SUB	1K7		# 11
-	ALS	1
-	MPR	1K18,1		# SCALE FACTOR
-	ALS	1		# SCALE AT 1
-	ADD	1K19,1		# BIAS COMPENSATION
-	STO	DVX,1		# AT 1
-	TIX	DVS,1
-	TRA	EXIT2		# TO MODE CHECK.
-# 	PROCESS GYRO INPUTS
-	AXT	2,1
-	TOV	*+1		# RESET
-GYCOM	CLZ	DAX,1	
-	SUB	1K7	
-	ALS	1		# RADIANS AT -6
-	STO	DAX,1
-	MPR	1K3,1		# SCALE FACTOR COMP
-	ADD	1K1,1		# AT -13
-	ADZ	DAXREM,1
-	STO	DAXREM,1
-	ADD	1B4		# ROUND
-	LRS	14		# TO +1
-	ALS	7		# TO -6, QUANTIZED AT -16
-	STO	TS6
-	ALS	7
-M1B1	COM			# INSTRUCTION LOOKS LIKE -1B1
-	ADZ	DAXREM,1
-	
-# Page 64
-	STO	DAXREM,1
-	CLZ	TS6
-	ADZ	DAX,1
-	ADD	DAXA,1
-	STO	DAX,1		# -6
-	ALS	3		# TO -9
-	STO	TS10,1
-	ABS
-	ADD	1B6		# TEST FOR POSSIBLE OVERFL
-	TIX	GYCOM,1
-EX3	TRA	EXIT3
-	TOV	HRC
-	CLZ	HRF
-	TMI	LRI
-#	COMPUTE DIRECTION COSINE CHANGE
-CDCC	CLA	TS10		# DAX AT -6 OR -9
-	MPY	TS11		# DAY
-	LRS	1		# 1/2DAX(DAY) AT -12 OR -18
-	TSQ	RND
-	ADD	TS12		# DAZ
-	STO 	TS1
-	CLA	TS10
-	MPY	TS12
-	LRS	1		# 1/2DAX(DAZ) AT -12 OR -18
-	TSQ	RND
-	SUZ	E13
-	STO	TS7
-	SUB	TS11
-	STO	TS2
-	CLA	TS11
-	MPR	TS11
-	LRS	1
-	STO	TS8
-	CLA	TS12
-	MPR	TS12
-	LRS	1		# 1/2DAZ(DAZ) AT -12 OR -18
-	ADD	TS8
-	
-# Page 65
-	TSQ	RND
-	COM
-	ADZ	E1		# NORMALITY CONSTRAINT
-	STO	TS3
-	CLZ	TS7
-	ADD	TS11
-	STO	TS4
-	CLA	TS11
-	MPY	TS12
-	LRS	1		# 1/2DAY(DAZ) AT -12 OR -18
-	TSQ	RND
-	SUB	TS10
-	STO	TS5
-	CLA	TS10
-	MPR	TS10
-	LRS	1		# 1/2DAX(DAX) AT -12 OR -18
-	ADZ	TS8
-	TSQ	RND
-	COM
-	ADZ	E3
-	STO	TS6
-EX4	TRA	EXIT4
-	AXT	2,1		# COMPUTE EQUATIONS
-DICOS	CLA	TS1
-	MPR	A21,1		# 1
-	ADZ	DA11,1
-	STO	DA11,1		# -5 OR -8
-	CLA	TS2
-	MPR	A31,1
-	ADZ	DA11,1
-	STO	DA11,1		# -5 OR -8
-	CLA	TS3
-	MPR	A11,1
-	ADZ	DA11,1
-	STO	DA11,1		# -5 OR -8
-	CLA	TS4		# ROW 3
-	MPR	A11,1
-	
-# Page 66
-	ADZ	DA31,1
-	STO	DA31,1
-	CLA	TS5
-	MPR	A21,1
-	ADZ	DA31,1
-	STO	DA31,1
-	CLA	TS6
-	MPR	A31,1
-	ADZ	DA31,1
-	STO	DA31,1
-	TIX	DICOS,1
-# 	INTEGRATE DIRECTION COSINES
-	AXT	6,1
-INTAS	CLA	HRF
-	TMI	HRINT		# -5 OR -8 TEST
-	CLA	DA11,1
-RND1	ADD	1B9		# ROUND
-SHFT1	LRS	9		# TO 1
-	STO	TS1
-	ALS	9
-	COM
-	ADZ	DA11,1
-	STO	DA11,1		# SAVE REMAINDER
-	CLZ	A11,1
-	ADZ	TS1
-	STO	A11,1
-	TIX	INTAS,1
-	TSQ	EXIT5		# DOWNLINK INPUT
-	TSQ	EXIT6		# TELEMETRY OUTPUT
-#	COMPUTE ROW 2
-COA21	CLA	A12
-	MPR	A33		# 2
-	STO	TS1
-	CLA	A13
-	MPR	A32
-	SUZ	TS1
-	ALS	1		# TO 1
-	
-# Page 67
-	STO	A21		# A21
-	CLA	A13
-	MPR	A31
-	STO	TS1
-	CLA	A11
-	MPR	A33
-	SUZ	TS1
-	ALS	1
-	STO	A22		# A22
-	CLA	A11
-	MPR	A32
-	STO	TS1
-	CLA	A12
-	MPR	A31
-	SUZ	TS1
-	ALS	1
-	STO	A23		# A23,DIR COS UPDATE COMPLETE
-EX8	TRA	EXIT8
-#	VELOCITY RESOLUTION
-DVINT	AXT	2,1		# RESOLVE BODY DVS TO
-	CLA	A11,1		# INERTIAL FRAME AND
-	MPR	DVX		# ACCUMULATE.
-	STO	TS1		# 2
-	CLA	A21,1
-	MPR	DVY
-	ADZ	TS1
-	STO	TS1
-	CLA	A31,1
-	MPR	DVZ
-	ADZ	TS1		# 2
-	ADD	1B13		# ROUND
-	LRS	5
-	ADZ	DVSX,1
-	STO	DVSX,1		# 7
-	TIX	DVINT+1,1
-	TSQ	EXIT5		# DOWNLINK INPUT
-	TSQ	EXIT6		# TELEMETRY OUTPUT
-	
-# Page 68
-#
-	CLZ	FLAG1
-	TMI	BRANCH		# -- IS GUID/NAV CYCLE.
-	CLA	MS
-	STO	FLAG1
-EX9	TRA	EXIT9
-#
-#	HARDWIRED 40 MS COMPUTATIONS
-#	DISCRETE INPUT AND STAGING RECOGNITION COMPS.
-#
-	INP	DISC1I		# INPUT DISCRETE WD 1
-	STO	DISC1C
-	ADD	1B17		# OBTAIN TWO'S COMP OF INPUT WD
-	COM
-	STO	DISC1
-	CLA	DEL2		# TEST FOR STAGING
-	TMI	EXIT10		# -- IS STAGED
-	CLA	DISC1C		# TEST FOR ASCENT ENG ON
-	ALS	6
-	TMI	EXIT10		# -- IS OFF.
-	CLZ	DEL21		# RESET LUNAR SURFACE FLAG
-	CLA	MS
-	STO	DEL2		# SET STAGED FLAG
-	TRA	EXIT11
-#
-#	DIRECTION COSINE LOGIC
-LRI	AXT	6,1
-	CLZ	DA11,1		# REMAINDERS
-	ALS	3		# TO -8
-	STO	DA11,1
-	TIX	*-3,1
-	CLA	RND1
-	STO	RND+1
-	CLA	SHFT1
-	STO	RND+2
-	TRA	CDCC
-#
-
-# Page 69
-HRC	CLA	HRF
-	TMI	HRC1
-	CLA	RND2		# SET UP FOR HIGH RATE
-	STO	RND+1
-	CLA	SHFT2
-	STO	RND+2
-	STO	HRF
-	AXT	6,1
-	CLZ	DA11,1
-	LRS	3		# TO -5
-	STO	DA11,1
-	TIX	*-3,1
-HRC1	AXT	2,1
-	CLA	DAX,1
-	STO	TS10,1		# AT -6
-	CLZ	E1,1
-	LRS	3		# TO -6
-	STO	E1,1
-	TIX	*-5,1
-	TRA	CDCC
-#
-HRINT	CLA	DA11,1
-RND2	ADD	1B12		# ROUND
-SHFT2	LRS	6		# TO 1
-	STO	TS1
-	ALS	6
-	TRA	INTAS+7
-#
-#		ATTITUDE HOLD. (40 MS)
-AHE	CLA	DEL5		# ATTITUDE HOLD ENTRY
-	TMI	AHE1		# IF MINUS -- DRIVE TO REF COSINES
-	CLA	MS		# FIRST CYCLE IN
-	STO	DEL5		# ATTITUDE HOLD
-	AXT	6,1		# SET DESIRED ATTITUDE
-	CLA	A11,1
-	STO	A11D,1
-	TIX	*-2,1
-	
-#
-# Page 70
-	TSQ	EXIT12		# TO ACQUISITION RESET.
-AHE1	LDQ	TRNSFR		# TRA EROUT INTO Q
-ATTERR	STQ	SREX		# ENTER HERE FROM CALIBRATE
-	AXT	2,1		# COMPUTE EX
-	CLA	A31D,1
-	MPR	A21,1		# 1+1=+2
-	COM
-	ADZ	EX
-	STO	EX		# +2
-	TIX	*-5,1
-EYEZ	AXT	2,1		# COMPUTE EY AND EZ
-	CLA	A11D,1
-	MPR	A21,1		# 1+1=+2
-	ADZ	EZ
-	STO	EZ
-	CLA	A11D,1
-	MPR	A31,1		# 1+1=+2
-	COM
-	ADZ	EY
-	STO	EY
-	TIX	*-9,1
-	TRA	SREX
-#
-# 	LIMIT AND OUTPUT ATTITUDE ERRORS
-EROUT	TRA	EXIT13
-	AXT	2,1
-	CLZ	EX,1
-	LDQ	MS
-	TMI	*+2
-	TRA	*+2
-	STQ	EX,1
-	ABS
-	SUB	4K21		# +2
-	TMI	*+3		# LESS THAN MAX
-	CLA	PMAX		# SET MAX OUTPUT
-	TRA	*+3
-	ADD	4K21
-	
-# Page 71
-	DVP	4K21		# SCALE FACTOR
-	ADZ	EX,1
-	STO	EX,1
-	TIX	EROUT+2,1
-	OUT	EXO		# AT 0
-	CLA	EY
-	OUT	EYO		# AT 0
-	CLA	EZ
-	OUT	EZO		# AT 0
-	TRA	EXIT14
-#
-# 	RENDEZVOUS STEERING
-RST	CLZ	DEL5		# CLEAR ATT HLD 1ST CYCLE FLAG
-	AXT	2,1
-	CLA	A11BD,1
-	STO	A11D,1
-	TIX	*-2,1
-	CLA	TRNSFR		# TRA EROUT INTO SREX
-	STO	SREX
-	TRA	EYEZ
-#
-#	LUNAR ALIGN COMPS
-LUNAL	CLA	A31
-	MPR	A31
-	COM
-	ADD	1B2
-	TSQ	SQRTE
-	STO	TS1
-	CLA	SIDELL		# COMPUTE COS DEL A
-	MPR	DDEL
-	ADD	CODELL
-	MPY	TS1		# A32D AT 2
-	LLS	1
-	MPR	A22
-	STO	TS2
-	CLA	CODELL		# COMPUTE SIN DEL A
-	MPR	DDEL
-	
-# Page 72
-	COM
-	ADD	SIDELL
-	MPY	TS1		# A33D AT 2
-	LLS	1
-	MPR	A23
-	ADZ	TS2
-	STO	TS2
-	CLA	A31
-	MPR	A21
-	ADZ	TS2
-	LDQ	ZERO
-	DVP	1K26
-	STO	DAXA		# -6
-	CLA	A31
-	LDQ	ZERO
-	DVP	1K28		# 1-7=-6
-	STO	TS1
-	CLA	DVZ
-	ADD	DVZM1
-	MPY	1K27		# 1-4=-3
-	LLS	3		# TO -6
-	SUZ	TS1
-	STO	DAYA
-	CLA	DVY
-	ADD	DVYM1
-	MPY	1K27		# 1-4=-3
-	LLS	3		# TO -6
-	STO	TS1
-	CLA	A21
-	LDQ	ZERO
-	DVP	1K28
-	SUZ	TS1
-	STO	DAZA
-	AXT	2,1
-	CLA	DAXA,1
-	ABS
-	LRS	2		# TO -4
-	
-# Page 73
-	ADZ	TS2
-	STO	TS2
-	TIX	*-5,1
-	SUB	1K29		# TEST FOR LUNAR ALIGN COMPLETE
-	STO	DEL42		# DEL42 NEG IS LUNAL COMPLETE
-	TRA	EXIT15
-#
-#	FDAI COMPUTATIONS
-FDAI	CLA	A32		# TOTAL ATTITUDE
-	COM			# -A32
-	TSQ	FDAIL		# LIMIT ROUTINE
-	OUT	SIBEO		# SIN BETA AT 0
-	CLA	A33
-	MPR	A33
-	STO	TS1
-	CLA	A31
-	MPR	A31
-	ADZ	TS1
-	TSQ	SQRTE
-	STO	TS2		# COS BETA
-	TSQ	FDAIL
-	OUT	COBEO
-EX16	TRA	EXIT16
-	CLA	TS2
-	SUB	1K24
-	TMI	EXIT17		# USE OLD VALUE OF SIGA AND COGA
-	LDQ	ZERO
-	CLA	A31
-	LRS	1
-	DVP	TS2
-	STO	SIGA
-	TSQ	FDAIL
-	OUT	SIGAO
-	LDQ	ZERO
-	CLA	A33
-	LRS	1
-	DVP	TS2
-	
-# Page 74
-	STO	COGA
-	TSQ	FDAIL
-	OUT	COGAO
-EX17	TRA	EXIT17
-#		THE NEXT 5 CELLS ARE BYPASSED AND
-#		RE-WRITTEN IN SOFT MEMORY
-	CLA	A23		# GAMMA OUTPUT
-	MPR	SIGA
-	STO	TS1
-	CLA	A21
-	MPR	COGA
-	SUZ	TS1
-	ALS	1
-	TSQ	FDAIL
-	OUT	SIALO
-	CLA	A13
-	MPR	SIGA
-	STO	TS1
-	CLA	A11
-	MPR	COGA
-	SUZ	TS1
-	ALS	1
-	TSQ	FDAIL
-	OUT	COALO
-#
-#	DEDA DISCRETE SAMPLING
-#
-	INP	DISC2I
-	ADD	1B17
-	COM
-	ALS	1		# IS TAPE LOAD REQUESTED
-	TMI	GSESR		# IF MINUS -- TRANSFER TO GSE SERV
-	ALS	3
-	AXT	3,1
-	TMI	SPULSE
-	ALS	1
-	TIX	*-2,1
-	
-# Page 75
-	TRA	SPULSE+1
-#
-#		FDAI LIMITING SUBROUTINE
-FDAIL	STQ	SREX
-	LDQ	MS
-	TMI	*+2
-	LDQ	ZERO
-	STQ	TS1		# SET SIGN
-	ABS
-	ADD	1B11		# ROUND
-	ALS	1
-	TMI	*+2		# -- SET MAX VALUE
-	TRA	*+2
-	CLA	PMAX
-	ADZ	TS1
-	TRA	SREX
-#
-SPULSE	STO	READP,1		# SET DEDA FLAG
-	TRA	EXIT18
-#
-#	COMPUTE NORMALITY AND ORTHOGONALITY CONSTRAINTS
-NOC	AXT	2,1
-	CLA	A11,1
-	MPR	A11,1
-	ADZ	E1
-	STO	E1		# AT 2
-	CLA	A31,1
-	MPR	A31,1
-	ADZ	E3		# AT 2
-	STO	E3
-	CLA	A11,1
-	MPR	A31,1
-	ADZ	E13
-	STO	E13		# AT 2
-	TIX	NOC+1,1
-	ALS	10		# DIV BY 2, SCALE AT -9
-	STO	E13
-	
-# Page 76
-	AXT	1,1
-	CLA	1B2
-	SUZ	E1,1		# 1-E
-	ALS	10		# TO -9
-	STO	E1,1
-	TIX	*-4,1
-	TRA	EXIT19
-#
-#	EULER ANGLE DIRECTION COSINES SUBROUTINE
-EADICS	STQ	SREX1
-	CLA	THEP
-	MPR	2PIB3		# RADIANS AT 3
-	TSQ	SICOE
-	CLZ	TS1
-	STO	TS5
-12B4	CLZ	TS0		# VALUE USED AS CONSTANT
-	STO	TS6
-	CLA	PSIP
-	MPR	2PIB3
-	TSQ	SICOE
-	CLZ	TS1
-	STO	A12D		# 1
-	CLZ	TS0
-	STO	TS7
-	CLA	PHIP
-	MPR	2PIB3
-	TSQ	SICOE		# INPUTS COMPLETE
-	CLA	TS7
-	MPR	TS6
-	ALS	1
-	STO	A11D		# 1
-	CLA	TS7
-	MPR	TS5
-	ALS	1
-	COM
-	STO	A13D		# 1
-	CLA	TS1
-	
-# Page 77
-	MPR	A12D
-	ALS	1
-	STO	TS3
-	MPR	TS6
-	STO	TS4
-1B1	CLA	TS0		# COSINE PHI
-	MPR	TS5
-	ADZ	TS4
-	ALS	1
-	STO	A31D		# 1
-	CLZ	TS1
-	MPZ	TS7
-	ALS	1
-	COM
-	STO	A32D		# 1
-	CLZ	TS3
-	MPZ	TS5
-	STO	TS4
-	CLZ	TS0
-	MPZ	TS6
-	SUZ	TS4
-	ALS	1
-	STO	A33D		# DI-COS COMPLETE
-	TRA	SREX1		# EXIT
-#
-#	IMU ALIGN COMPUTATIONS
-ZNOC	CLZ	E1
-	CLZ	E3
-	CLZ	E13
-IMUDC	TSQ	EADICS
-	AXT	6,1
-	CLA	A11D,1		# REPLACE DIR COSINES
-	STO	A11,1		# WITH IMU DIR COSINES.
-	CLZ	DA11,1		# ZERO REMAINDERS
-	TIX	*-3,1
-	TRA	COA21-2
-#
-
-# Page 78
-#		INITIALIZE BRANCHES.
-#
-IC1	CLZ	S14
-	SUB	2B3
-	TMI	EXIT20		# TO DL FORMATTIG
-	AXT	2,1		# LEM POS AND VEL DATA
-	CLZ	1J1,1		# LEM POS
-	STO	R0X,1
-	CLZ	1J4,1		# LEM VEL
-	STO	V0X,1
-	TIX	*-4,1
-	CLZ	1J7		# EPOCH TIME MS
-	STO	TL1
-	CLZ	1J7LS		# EPOCH TIME LS
-	STO	TL2
-	TSQ	ORBPM
-	CLZ	DSPSC		# CLEAR DISPLAY COUNTER
-	TSQ	EXIT21
-#
-IC2	AXT	1,1
-	TSQ	DPTSB		# COMPUTE DBL PREC TA - TL
-	CLA	DEL21
-	TMI	RVCOMP
-	TSQ	ELPRD		# TRNSFR TO ELLIPSE PRED
-	AXT	2,1
-	CLZ	RIX,1
-	STO	RX,1
-	CLZ	VIX,1
-	STO	VX,1
-	TIX	*-4,1
-	TRA	*+9
-RVCOMP	AXT	2,1
-	CLZ	V0X,1
-	STO	VX,1
-	MPY	TI		# 13+13=26
-	LLS	3
-	ADZ	R0X,1
-	
-# Page 79
-	STO	RX,1		# AT 23
-	TIX	*-6,1
-	TSQ	EXEC		# IC3 NEXT
-#
-IC3	TSQ	GRAV		# TO GRAVITY
-	AXT	2,1
-	CLZ	DVSX,1
-	CLZ	DRX,1
-	CLA	GXDT,1
-	STO	DIGX,1
-	TIX	*-4,1
-	TRA	EXIT22
-#
-#		CSM DL OR DEDA INPUTS TO EPOCH CELLS.
-CSMPV	AXT	2,1
-	CLZ	2J1,1		# CSM POS
-	STO	REX,1
-	CLZ	2J4,1		# CSM VEL
-	STO	VEX,1
-	TIX	*-4,1
-	CLZ	2J7		# CSM EPOCH MS
-	STO	TE1
-	CLZ	2J7LS		# CSM EPOCH LS
-	STO	TE2
-	CLZ	TB
-	TRA	EXIT
-#
-#		NEXT 5 INSTRUCTIONS BYPASSED
-#
-NAV	CLA	DEL21
-	TMI	NAV1		# -- IS ON LUNAR SURFACE
-	CLA	0464
-	SUB	VDX
-	ALS	6
-#
-#		HARDWIRED NAVIGATION
-#
-
-# Page 80
-	STO	AT		# 1/2(VD1-VD) AT 7
-	SUB	4K35		# ULLAGE THRESHOLD
-	TMI	NAV2-2		# AT-4K35
-	CLZ	MU8		# INCR ULLAGE COUNTER.
-	ADD	1B17
-	STO	MU8
-	TRA	EXIT24
-NAV1	CLZ	DIGX		# LUNAR SURFACE NAV.
-	CLZ	DIGY
-	CLZ	DIGZ
-	CLA	1K9		# ULLAGE COUNT LIMIT
-	STO	MU8
-	TRA	EXIT23
-	CLZ	MU8		# RESET ULLAGE COUNTER.
-	TRA	EXIT24
-NAV2	CLZ	TS1		# ACCEL DRIFT TEST.
-	AXT	2,1
-	CLA	DVSX,1
-	ABS
-	ADZ	TS1
-	STO	TS1
-	TIX	*-4,1
-	SUB	1K35
-	TMI	EXIT25		# COAST PHASE
-	TRA	EXIT26
-NAV3	CLZ	DVSX
-	CLZ	DVSY
-	CLZ	DVSZ
-	TRA	EXIT26
-NAV4	AXT	2,1		# VEL AND POS UPDATE.
-	CLZ	DVSX,1		# SENSED VEL AT 7
-	ADZ	DIGX,1		# PREDICTED INTG GRAVITY.
-	STO	DIGX,1		# 7
-	ADD	1B12		# ROUND
-	LRS	6
-	STO	TS2		# DV AT 13
-	ADD	VX,1
-	
-# Page 81
-	STO	TS1		# NEW V AT 13
-	MPR	KDT		# DT/2 AT 1.
-	STO	TS4
-	CLZ	VX,1		# V(N-1)
-	MPR	KDT
-	ADZ	TS4
-	ADZ	DRX,1
-	STO	DRX,1		# 14
-	ADD	1B9		# ROUND
-	LRS	9
-	STO	TS3		# DR AT 23
-	ADZ	RX,1
-	STO	RX,1		# NEW R AT 23
-	CLZ	TS2		# DV AT 13
-	ALS	6
-	COM
-	ADZ	DIGX,1
-	STO	DIGX,1		# VEL REMAINDER AT 7
-	CLZ	TS3		# DR AT 23
-	ALS	9
-	COM
-	ADZ	DRX,1
-	STO	DRX,1		# POS REMAINDER AT 14
-	CLZ	TS1
-	STO	VX,1		# NEW V AT 13
-	TIX	NAV4+1,1
-	TSQ	GRAV		# TO GRAVITY COMP.
-EX28	TRA	EXIT28
-	CLA	4K34		# LIMIT AT.
-	SUB	AT
-	TMI	*+3
-	CLA	4K34
-	STO	AT
-	CLA	MS		# SET IC DISPLAY.
-	STO	DSPF1
-	TSQ	TIMEA		# TO TA UPDATE
-#
-
-# Page 82
-#		CSM ORBIT PARAMETERS
-#
-ORBPAR	CLA	S14
-	SUB	3B3
-	TMI	*+4
-	CLZ	S14
-	TSQ	CSMPV
-EX29	TRA	EXIT29
-	AXT	2,1
-	CLA	REX,1
-	STO	TS4,1
-	STO	R0X,1
-	CLA	VEX,1
-	STO	TS10,1
-	STO	V0X,1
-	TIX	*-6,1
-	TSQ	CRSPRD
-	TSQ	NORMV
-	AXT	2,1
-	CLZ	TS10,1
-	STO	WCX,1
-	TIX	*-2,1
-	TSQ	ORBPM		# COMPUTE CSM ORB PARAMS FROM EPD
-	CLA	2PIB3
-	LDQ	ZERO
-	LRS	1
-	DVP	NI		# 4-(-9)=13
-	STO	TCSM
-EX30	TRA	EXIT30
-	CLA	TB
-	SUB	TCSM
-	TMI	BR2EX
-	CLA	TCSM
-	LDQ	ZERO
-	LRS	5		# TO +18
-	STQ	TS1
-	ADZ	TE1
-	
-# Page 83
-	STO	TE1
-	CLZ	TS1
-	ADZ	TE2
-	STO	TE2
-	TMI	*+2		# OVERFLOW
-	TRA	BR2EX
-	SUB	MS
-	STO	TE2
-	CLZ	TE1
-	ADD	1B17
-	STO	TE1
-BR2EX	TSQ	EXEC
-#
-#		CSM PRESENT POS AND VEL.
-#
-	AXT	0,1
-	TSQ	DPTSB		# COMPUTE DBL PREC TA-TE
-	STO	TB		# +13
-	TSQ	ELPRD		# TRANSFER TO ELLIPSE PRED
-	AXT	2,1
-	CLZ	RIX,1
-	STO	RCX,1		# 23
-	CLZ	VIX,1
-	STO	VCX,1		# 13
-	TIX	*-4,1
-	TSQ	EXEC
-#
-	AXT	2,1
-	CLA	VX,1		# COMPUTE MAGNITUDE OF VEL VECTOR
-	STO	TS4,1
-	TIX	*-2,1
-	TSQ	DPVMAG
-	STO	V		# 13
-	TRA	EXIT31
-#
-#		GRAVITY AND H, HDOT COMPUTATIONS.
-#
-
-# Page 84
-GRAV	STQ	SREX3
-	AXT	2,1
-	CLA	RX,1
-	STO	TS14,1
-	TIX	*-2,1
-	TSQ	NORMV		# COMPUTE U1 AND R.
-	CLZ	TS13
-	STO	R		# 23
-	SUB	5J		# MEAN LUNAR RADIUS
-	STO	H		# ALTITUDE AT 23
-EX27	TRA	EXIT27
-	CLA	2K4
-	LDQ	ZERO
-	LRS	3		# 52
-	DVP	TS17		# R SQ AT 46
-	STO	TS7		# -GRAV VECT MAG AT 6
-	AXT	2,1
-GRAV1	CLZ	GXDT,1
-	STO	TS0		# G(N-1)DT
-	CLZ	TS10,1		# UNIT VECTOR FR NORMV
-	STO	U1X,1		# 1
-	MPR	TS7		# -MUDT/(R SQ) AT 6
-	STO	GXDT,1		# 7
-7B3	SUZ	TS0		# G(N-1)DT
-	LRS	1
-	ADD	GXDT,1		# PREDICTED INTG GRAV IN A
-	ADZ	DIGX,1		# VEL REMAINDER
-	STO	DIGX,1		# INTG GRAV+VEL REM AT
-	CLA	VX,1		# 13
-	MPR	U1X,1		# FORM V DOT U1.
-	ADZ	TS13
-	STO	TS13
-	TIX	GRAV1,1
-	ALS	1
-	STO	HDOT		# ALT RATE AT 13.
-	TRA	SREX3
-#
-
-# Page 85
-#		LEM ORBIT PARAMETERS.
-#
-LMORB	CLA	HDOT		# B13
-	MPY	HDOT
-	STO	TS14
-	STQ	TS15
-	CLA	V		# 13
-	MPR	V
-	SUB	TS14
-	STO	TS7		# VH SQ AT 26
-	TSQ	SQRTE
-	STO	VH		# 13
-	TOV	*+1		# CL. O.F.
-	CLA	R		# 23
-	MPR	R
-	MPR	2K2
-	MPY	TS7		# 46-47+26=25
-	LLS	2
-	STO	TS10		# PL AT 23
-	LRS	1
-	STO	TS11		# SAVE PL AT 24
-	STQ	TS12
-	DVP	R
-	SUB	1B1
-	ALS	4		# -3
-	STO	TS0
-	MPZ	TS0
-	STO	TS13		# (PL/R-1) SQ AT -6.
-	CLZ	TS14		# HDOT SQ AT 26
-	LDQ	TS15
-	LLS	8		# 1B
-	MPR	2K2
-	MPR	TS10		# PL
-	ADZ	TS13		# EL SQ IN A AT -6.
-	TOV	LMORB1+2
-	TSQ	SQRTE
-	LRS	4		# EL AT 1
-	
-# Page 86
-	ADD	1B1
-	STO	TS1		# 1+EL AT 1.
-	CLZ	TS11		# OL AT 24
-	LDQ	TS12
-	DVP	TS1
-LMORB1	STO	QL		# LM PERICYNTHION AT 23
-	TRA	EXIT32
-	CLA	2K3		# SET QL=CONST
-	TRA	LMORB1
-#
-#		CSM PREDICTION.
-#
-CSMT1	TSQ	ELPRD		# TO ELLIPSE PREDICTOR.
-	TSQ	EXEC
-#
-#		TRANSFER ORBIT VECTORS.
-#
-	AXT	2,1
-	CLA	RIX,1		# CSM PRED POS
-	STO	TS14,1
-	TIX	*-2,1
-	TSQ	NORMV		# NORMALIZE RT
-	CLZ	TS13
-	STO	RT		# 23
-	AXT	2,1
-XORBV1	CLA	TS10,1		# C1X=BX
-	STO	U2X,1
-	CLA	U1X,1
-	STO	TS4,1
-	MPR	U2X,1
-	ADZ	TS13
-	STO	TS13
-	TIX	XORBV1,1
-	ALS	1
-	STO	C1		# U1 DOT U2 AT 1.
-	MPR	C1
-	COM
-	
-# Page 87
-	ADD	1B2
-	TSQ	SQRTE
-	STO	C2		# 1
-EX33	TRA	EXIT33
-	TSQ	CRSPRD		# U1XU2 AT 2.
-	CLA	TS14+1
-	MPY	WCY
-	TMI	*+2		# -- IS REND ANG GREAT 180.
-	TRA	*+4
-	CLZ	C2
-	COM
-	STO	C2
-	AXT	2,1		# NORMALIZE W1 AND
-XORBV2	CLZ	TS14,1
-	LDQ	ZERO
-	DVP	C2
-	STO	W1X,1		# 1
-	CLA	U1X,1
-	MPR	C1
-	STO	TS1
-	CLA	U2X,1		# 1
-	LRS	1
-	SUZ	TS1
-	LDQ	ZERO
-	DVP	C2
-	STO	V1X,1		# 1
-	CLA	U1X,1		# 1
-	LRS	1
-	STO	TS1		# 2
-	CLA	U2X,1
-	MPR	C1
-	SUZ	TS1
-	LDQ	ZERO
-	DVP	C2
-	STO	V2X,1		# 1
-	TIX	XORBV2,1
-	CLZ	MU3		# P-ITERATION INDEX.
-	
-# Page 88
-	TSQ	EXEC
-#
-#		P-ITERATOR
-#
-EX34	TRA	EXIT34
-	TOV	*+1		# CL. O.F.
-	CLA	P		# ITERATION P AT 23
-	SUB	RF
-	LDQ	ZERO
-	DVP	RF
-	STO	TS11		# X1 AT 0.
-	MPY	TS11
-	LLS	2
-	STO	TS1		# X1 SQ. AT -2
-	CLA	P
-	SUB	RT
-	LDQ	ZERO
-	DVP	RT
-	STO	TS12		# X2 AT .0
-	MPR	C1
-	STO	TS2		# 1
-	CLA	TS11		# X1
-	LRS	1
-	SUZ	TS2
-	LDQ	ZERO
-	DVP	C2
-	STO	X4		# AT 0.
-	CLA	TS12		# X2
-	LRS	1
-	STO	TS2		# 1
-	CLA	TS11		# X1
-	MPR	C1
-	SUZ	TS2
-	LDQ	ZERO
-	DVP	C2		# 1
-	STO	X3		# AT 0.
-	MPY	X3
-	
-# Page 89
-	LLS	2
-	ADZ	TS1		# -2
-	TOV	EXIT35		# O.F. IF E TOO LARGE.
-	STO	ESQ		# E SQ AT -2.
-	LRS	2
-	STO	TS13		# E SQ AT 0.
-	COM
-	ADD	PMAX
-	STO	TS14		# (1-E SQ) AT 0.
-	TSQ	SQRTE
-	STO	TS15		# ROOT(1-E SQ) AT 0.
-	CLA	X4
-	SUB	X3
-	LRS	1		# 1
-	ADD	C2
-	MPR	TS15
-	STO	TS3		# SIN(DELTA E) AT 1.
-	CLA	X3
-	MPR	X4
-	COM
-	ADZ	TS13
-	LRS	1		# 1
-	STO	TS13 		# E SQ-X3(X4) AT 1.
-	CLZ	TS11
-	ADZ	TS12		# X1+X2
-	LRS	1		# 1
-	ADZ	TS13
-	ADD	C1
-	STO	TS4		# COS(DELTA E) AT 1.
-	TSQ	ARCTAE
-	STO	TS16		# DELTA E AT 3.
-	CLA	RT
-	MPR	X4
-	STO	TS1		# 23
-	CLA	RF
-	MPR	X3
-	SUZ	TS1
-	
-# Page 90
-	MPY	TS15
-	LRS	3		# 26
-	DVP	P
-	ADZ	TS16
-	STO	TS16		# DELTAE + X7-X8 AT 3.
-	CLA	P
-	LDQ	ZERO
-	DVP	TS14		# 1-E SQ
-	STO	ALPHA		# 23
-	MPR	2K2		# 1/2K1 AT -47
-	TSQ	SQRTE		# (-47+23)/2=-12
-	MPR	ALPHA		# 1/N AT 11 IN A.
-	MPZ	TS16		# 11+3=14
-	ALS	1		# NEW TP AT 13.
-	SUB	TP
-	STO	TS2		# DELTA TP
-	ADZ	TP
-	STO	TP		# 13
-	CLA	T
-	SUB	TP
-	STO	TS0		# T-TP
-	CLZ	MU3		# INCREMENT ITER COUNTER.
-	ADD	1B17
-	STO	MU3
-	SUB	2B17		# ITERATION SCHEME.
-	TMI	PITER2		# -- IS MU3=1.
-	SUB	1B17
-	TMI	PITER1		# -- IS MU3=2.
-	SUB	2K17		# MU3-NO. ITERATIONS IN A.
-	TMI	*+6		# -- IS NOT DONE.
-	CLZ	TS0		# DONE. T-TP
-	ABS
-	SUB	2K20
-	TMI	PITER3+5	# -- IS CONVERGED.
-	TRA	EXIT35
-	CLA	TS2		# DELTA TP.
-	ABS
-	
-# Page 91
-	SUB	2K18
-	TMI	DELP		# -- IS SKIP PARTIAL
-PITER1	CLA	P		# COMPUTE PARTIAL T.
-	SUZ	PP
-	STO	TS1		# 23
-	LDQ	ZERO
-	LRS	4		# 27
-	TOV	*+1		# CL. O.F.
-	TRA	*+2
-	DLY	INIT		# TO TURN ON SEQUENCE
-	DVP	TS2		# 27-13=14
-	TOV	*+2
-	TRA	*+7
-	CLZ	TS1		# DET SIGN OF PART
-	MPY	TS2		# NUM X DENOM
-	TMI	*+3
-	CLA	PMAX
-	TRA	*+2
-	CLA	NMAX
-	STO	PART		# PARTIAL T AT 14
-DELP	CLZ	TS0		# T-TP
-	MPY	PART
-	LLS	4		# 13+14-4=23
-	STO	TS3		# DELTA P
-	ABS
-	SUB	2K19
-	TMI	PITER3
-	CLZ	TS3
-	TMI	*+5
-	CLA	2K19
-	TRA	*+5
-PITER2	CLA	2K14
-	TRA	*+2
-	CLA	2K19
-	COM
-	STO	TS3		# DELTA P
-PITER3	CLZ	P
-
-# Page 92
-	STO	PP
-	ADZ	TS3
-	STO	P		# NEW P
-	TRA	EXEC+1
-	TSQ	EXEC
-#
-#		IMPULSE AND BRAKING VELOCITIES
-#
-TBRAKE	CLA	2K1		# 48
-	LDQ	ZERO
-	LRS	1
-	DVP	P		# 49-23=26
-	TSQ	SQRTE
-	STO	TS1		# ROOT(MU/P) AT 13
-	MPZ	X3
-	STO	RFDOT		# 13
-	CLA	TS1
-	MPZ	X4
-	STO	TS13		# 13
-	CLZ	TS1
-	MPY	P
-	STO	TS1		# ROOT(PXMU) AT 36
-	STQ	TS2
-	DVP	RF
-	STO	TS12		# 13
-	CLZ	TS1
-	LDQ	TS2
-	DVP	RT
-	STO	TS14		# 13
-EX36	TRA	EXIT36
-	TOV	*+1		# CL. O.F.
-	AXT	2,1
-IMPBK1	CLA	TS13		# ROOT(MU/P)X(X4) AT 13
-	MPZ	U2X,1		# 1
-	STO	TS7
-	CLA	TS14		# ROOT(PXMU)/RT AT 13
-	MPZ	V2X,1		# 1
-	
-# Page 93
-	ADZ	TS7
-	ALS	1		# 13
-	SUB	VIX,1
-	STO	VFX,1		# -BRAKING VEL AT 13
-	CLA	RFDOT		# 13
-	MPR	U1X,1		# 1
-	STO	TS7
-	CLA	TS12		# ROOT(PXMU)/RF AT 13
-	MPR	V1X,1		# 1
-	ADZ	TS7
-	ALS	1		# 13
-	SUB	V5X,1
-	STO	VGX,1		# VEL TO GAIN AT 13
-	STO	TS4,1
-	TIX	IMPBK1,1
-	TOV	EXIT35		# CHECK VG OR VF D.F.
-	TSQ 	DPVMAG
-	STO	VG		# 13
-	CLZ	ESQ		# E SQ ER P ITER AT -2.
-	TSQ	SQRTE
-	LRS	1		# E AT 0.
-	COM	
-	ADD	PMAX		# 1-E AT 0.
-	MPR	ALPHA
-	STO	Q1		# Q OF TRANS ORB AT 23
-	TSQ	EXEC
-# 		COMPLETE VF ON FOLLOWING CYCLE.
-	AXT	2,1
-	CLA	VFX,1		# 13
-	STO	TS4,1
-	TIX	*-2,1
-	TSQ	DPVMAG
-	TRA	EXIT37		# VF IN A AT 8.
-#
-#		GUIDANCE LAW COMPUTATIONS.
-#
-GDLAW	TOV	*+1		# TIME TO BURN COMP.
-
-# Page 94
-	CLA	VG		# 13
-	MPR	4K3		# AT -25
-	ADD	4K2		# AT -12
-	MPR	VG
-	ADD	1B1
-	MPY	VG
-	LRS	2		# 16
-	DVP	AT		# 16-7=9
-	TOV	*+2
-	TRA	*+2
-	CLA	PMAX
-	STO	TBO		# TIME TO BURN AT 9.
-	TRA	EXIT38
-#
-#	COMPUTE LUNAR AZIMUTH
-#
-LUNAZ	CLA	A31
-	MPR	A31		# +2
-	COM
-	ADD	1B2
-	TSQ	SQRTE
-	STO	TS1		# +1
-	LDQ	ZERO
-	CLA	A32
-	LRS	1		# TO 2
-	DVP	TS1
-	STO	CODELL
-	LDQ	ZERO
-	CLA	A33
-	LRS	1		# TO 2
-	DVP	TS1
-	STO	SIDELL		# AT 1
-	CLA	MS
-	STO	DEL21
-	TRA	EXIT39
-#
-# 	POWER ON INITIALIZATION
-
-# Page 95
-#
-INIT	OUT	3050		# RESET CARRY INHIBIT
-	INP	6200
-	INP	DEDA
-	OUT	7057		# RESET DISCRETES
-	CLA	BACK
-	STO	TVARBR+1
-	CLA	CLAFR		# PRIME HARDWIRED CORES
-	STO	TVARBR
-	TSQ	TVARBR
-	CLA	TVARBR
-	SUB	CLATEN
-	TMI	*-3
-	OUT	7010		# RESET FAILURE INDICATOR
-#	GSF SERVICE ROUTINE
-GSESR	INP	2040
-	ALS	1
-	TMI	EXIT40		# INITIALIZE
-	INP	6200
-	ADD	1B5
-	STO	TS7
-	ADD	STOCOM		# SET UP VARIABLE STORE
-	STO	TVARBR
-WRDLP	OUT	6402		# SET GSE 5
-	INP	2040
-	ALS	1
-	TMI	*+2
-	TRA	*-3
-	OUT	7012		# RESET GSE 5 AND FAIL INDIC.
-	INP	2040
-	ALS	1
-	TMI	*-3		# WAIT FOR NEXT WORD
-	ALS	1
-	TMI	*+5
-	CLZ	TS7		# END OF BLOCK
-	ADD	TRACOM
-	STO	TVARBR
-	
-# Page 96
-	TRA	TVARBR
-	INP	6200		# INPUT WORD AND STORE
-	TSQ	TVARBR
-	TRA	WRDLP
-RETURN	STO	TS0		# INCREMENT OF VARIABLE
-	CLZ	TVARBR
-	ADD	1B17
-	STO	TVARBR
-	CLZ	TS0
-	TRA	EXIT
-#
-#		TIME UPDATE AND EXECUTIVE PART 1.
-#
-TIMEA	CLZ	TA1		# UPDATE ABS TIME.
-	ADD	1B17		# EQU TO 2 SECS.
-	STO	TA1
-	CLA	1B11		# I.C. DEDA COUNTER
-	STO 	DEDASC
-EXEC	STQ	BRANCH		# SET NEXT BRANCH.
-	CLZ	DEDASC
-	ALS	1
-	TMI	*+3		# -- IS TIME TO DEDA.
-	STO	DEDASC
-	TRA	EXIT41
-	CLZ	BRANCH		# SAVE BRANCH IN
-	STO	TMPBR		# TEMPORARY BRANCH
-	CLA	DEDABR		# DEDA START
-	STO	BRANCH
-	TRA	EXIT41		# TO SOFT DISPLAY
-#
-#		DISPLAY SUBROUTINE
-#
-DSPLY	CLZ	DSPSC
-	ALS	1
-	TOV	*+2		# O.F. IS TIME TO DISPLAY
-	TRA	DSPLY4	
-	CLZ	PDOUT		# INCREMENT DISPLAY VARIABLES.
-	
-# Page 97
-	ADD	DPDOUT
-	STO	PDOUT		# 13
-	CLZ	POUT
-	ADD	DPOUT
-	TRA	DSPLY2-5
-DSPLY1	STO	PDOUT		# I.C. DISPLAY COMPS.
-	SUZ	PDOTM1
-	MPR	1K4		# .1
-	STO	DPDOUT		# DELTA PDOT AT 13.
-	CLA	PDOUT		# 13
-	STO	PDOTM1
-	MPY	1K4		# .1
-	LRS	9		# 0.2 PDOT AT 23.
-	DVP	POUTFS		# =76840 FT B28
-	STO	DPOUT		# DELTA P AT DISPLAY SCALE.
-	CLA	POUT		# 23
-	LDQ	ZERO
-	DVP	POUTFS		# =76840 FT B23
-	TOV	*+2
-	TRA	*+3
-	CLZ	DPOUT
-	CLA	PMAX
-	STO	POUT		# OUTPUT P AT DISPLAY SCALE.
-DSPLY2	CLA	PDOUT		# DISPLAY POSITION RATE.
-	ABS
-	STO	TS10
-	CLA	PDOUT
-	TMI	*+3
-	CLA	MS		# 1 IS +
-	TRA	*+2
-	CLA	ZERO		# 0 IS -
-	ADZ	TS10		# SIGN MAGNITUDE.
-	OUT	3040		# RESET
-	OUT	2440		# SELECT ALT RATE.
-	OUT	6010		# OUTPUT ALT RATE.
-	TRA	EXIT42		# COMPUTE VY0 FOR OUTPUT
-	OUT	6020		# OUTPUT SAME.
-	
-# Page 98
-DSPLY3	CLA	POUT		# DISPLAY POSITION
-	TMI	*+2
-	TRA	*+2
-	CLA	ZERO		# ALT NEG.
-	ALS	1		# SIGN BIT USED
-	OUT	3040		# RESET
-	OUT	2420		# SELECT ALT.
-	OUT	6010		# OUTPUT ALT.
-	CLA	1B5
-DSPLY4	STO	DSPSC		# RESET COUNTER.
-#
-#	CYCLE COUNTING
-#
-EXEC1	CLZ	MU10		# UPDATE MINOR CYCLE COUNT.
-	ADD	1B17
-	STO	MU10
-	TRA	EXIT43
-	CLA	MU10		# CHECK FOR END.
-	SUB	49B17
-	TMI	DELAY		# -- IS NOT END.
-	CLZ	MU10
-	CLA	BR50		# BR50 START.
-	STO	BRANCH
-	TRA	DELAY
-#
-#		CROSS PRODUCT SUBROUTINE.  AXB=C.
-#
-CRSPRD	STQ	SREX
-	CLA	TS4+2		# AZ
-	MPR	TS10+1		# BY
-	STO	TS7
-	CLA	TS4+1		# AY
-	MPR	TS10+2		# BZ
-	SUZ	TS7
-	STO	TS14		# CX
-	CLA	TS4		# AX
-	MPR	TS10+2		# BZ
-	
-# Page 99
-	STO	TS7
-	CLA	TS4+2		# AZ
-	MPR	TS10
-	SUZ	TS7
-	STO	TS14+1		# CY
-	CLA	TS4+1		# AY
-	MPR	TS10		# BX
-	STO	TS7
-	CLA	TS4		# AX
-	MPR	TS10+1		# BY
-	SUZ	TS7
-	STO	TS14+2		# CZ
-	TRA	SREX
-#
-#		NORMALIZE VECTOR SUBROUTINE.
-#
-NORMV	STQ	SREX2
-	CLZ	TS17
-	AXT	2,1
-	CLA	TS14,1		# INPUT VECTOR
-	MPR	TS14,1
-	ADZ	TS17
-	STO	TS17
-	TIX	*-4,1
-	TSQ	SQRTE
-	STO	TS13
-	AXT	2,1
-	CLA	TS14,1
-	LDQ	ZERO
-	LRS	1
-	DVP	TS13
-	STO	TS10,1		# UNIT VECTOR AT 1.
-	TIX	*-5,1
-	TRA	SREX2
-#
-#		ORBIT PARAMETERS FROM EPOCH SUBROUTINE
-#
-
-# Page 100
-ORBPM	STQ	SREX2
-	CLZ	TS11
-	CLZ	TS12
-	CLZ	TS13
-	TOV	*+1
-	AXT	2,1
-ORBPM1	CLA	R0X,1		# 23
-	MPR	V0X,1		# 13
-	ADZ	TS13
-	STO	TS13		# R0 DOT V0 AT 36
-	CLA	V0X,1
-	MPR	V0X,1
-	ADZ	TS12
-	STO	TS12		# V0 DOT V0 AT 26
-	CLA	R0X,1
-	MPR	R0X,1
-	ADZ	TS11
-	STO	TS11		# R0 DOT R0 AT 46
-	TIX	ORBPM1,1
-EX44	TRA	EXIT44
-	TSQ	SQRTE
-	STO	R0		# 23
-	MPY 	TS12		# 23+26=49
-	TOV	*+1
-	DVP	2K1		# 48
-	COM
-	ADD	PMAX		# 2B1
-	STO	TS1
-	CLA	R0
-	LDQ	ZERO
-	LRS	1
-	DVP	TS1
-EX45	TRA	EXIT45
-	STO	AI		# ALPHA I AT 23
-	CLA	2K1
-	LDQ	ZERO
-	LRS	1		# 49
-	
-# Page 101
-	DVP	AI		# 49-23=26
-	TSQ	SQRTE
-	STO	TS1		# ROOT(MU/ALPHA) AT 15
-	LDQ	ZERO
-	LRS	1
-	DVP	AI
-	STO	NI		# ANG FREQ AT -9.
-	CLA	AI
-	SUB	R0
-	LDQ	ZERO
-	DVP	AI
-	STO	CI		# 0
-	CLA	AI
-	MPZ	TS1
-	STO	TS1		# ROOT(ALPHA X MU) AT 36
-	CLZ	TS13
-	LDQ 	ZERO
-	DVP	TS1
-	STO	SI		# 0
-	TRA	SREX2
-#
-#		ELLIPSE PREDICTOR SUBROUTINE.
-#
-ELPRD	STQ	SREX2
-	CLZ	TS7		# ITERATION COUNTER.
-	CLA	TI		# 13
-	MPR	NI		# AT -9.
-	ALS	1
-	STO	TS10		# DEL M AT 3.
-ELPRD1	STO	TS11		# DEL E AT 3.
-	TSQ	SICOE
-	CLA	TS0
-	MPR	CI		# AT 0.
-	STO	TS13		# 1
-	CLA	TS1		# 1
-	MPR	SI		# 0+1=1
-	SUZ	TS13
-	
-# Page 102
-	ADD	1B1
-	STO	TS12		# X12 AT 1.
-	CLZ	TS7
-	SUB	2B17		# 2 ITERATIONS.
-	TMI	ELPRD3		# -- IS NOT DONE.
-	CLA	CI		# 0
-	LRS	1		# 1
-	COM
-	ADD	TS0
-	MPY	AI		# 23+1=24
-	DVP	R0		# 23
-	STO	TS3		# F AT 1.
-	CLZ	TS10		# 3
-	SUZ	TS11
-	ALS	2		# 1
-	ADD	TS1
-	LDQ 	ZERO
-	LRS	1
-	DVP	NI		# AT -9.
-	STO	TS7		# G AT 11.
-	CLA	R0
-	MPR	TS12
-	STO	TS14		# 24
-	CLA	AI
-	MPR	NI
-	MPY	TS1		# 23-9+1=15
-	DVP	TS14
-	COM	
-	STO	TS13		# F DOT AT -9.
-	CLA	TS12		# X12
-	SUB	1B1
-	ADZ	TS0
-	LDQ	ZERO
-	LRS	1		# 2
-	DVP	TS12
-	STO	TS17		# G DOT AT 1.
-	AXT	2,1
-	
-# Page 103
-ELPRD2	CLA	R0X,1		# 23
-	MPR	TS3		# 1
-	STO	TS2		# 24
-	CLA	V0X,1		# 13
-	MPR	TS7		# 11+13=24
-	ADZ	TS2
-	ALS	1		# 23
-	STO	RIX,1		# PRED POS AT 23
-	CLA	R0X,1		# 23
-	MPR	TS13		# -9
-	STO	TS2		# 14
-	CLA	V0X,1		# 13
-	MPR	TS17		# 1
-	ADZ	TS2
-	ALS	1
-	STO	VIX,1		# PRED VEL AT 13
-	TIX	ELPRD2,1
-	TRA	SREX2
-ELPRD3	ADD	3B17
-	STO	TS7
-	CLA	TS10		# 3
-	SUB	TS11
-	ALS	2
-	STO	TS13		# DEL(M)-DEL(E) AT 1.
-	CLA	TS0		# 1
-	LRS	1		# 2
-	SUB	1B2
-	MPR	SI		# 0+2=2
-	ALS	1
-	STO	TS14		# 1
-	CLA	TS1
-	MPR	CI		# 0+1=1
-	ADZ	TS14		
-	ADZ	TS13		# X11 IN A AT 1.
-	LDQ	ZERO
-	LRS	3		# 4
-	DVP	TS12		# DEL E CORRECTION AT 3.
-	
-# Page 104
-	ADZ	TS11		# DEL 3
-	TRA	ELPRD1
-#
-#		DOUBLE PRECISION SQUARE SUBROUTINE
-#
-DPSQ	STQ	SREX
-	CLZ	TS1		# A SQ MS
-	CLZ	TS2		# A SQ LS
-	AXT	2,1
-DPSQ1	CLA	TS4,1
-	MPY	TS4,1
-	ADZ	TS1
-	TMI	DPSQ3		# CHECK FOR O.F.
-	STO	TS1
-	STQ	TS3
-	CLZ	TS2
-	ADZ	TS3
-	STO	TS2
-	TMI	*+2		# CHECK FOR O.F.
-	TRA	DPSQ2
-	SUB	MS
-	STO	TS2
-	CLZ	TS1
-	ADD	1B17
-	TMI	DPSQ3		# CHECK FOR O.F.
-	STO	TS1
-DPSQ2	TIX	DPSQ1,1
-	TRA	SREX
-DPSQ3	CLA	PMAX		# O.F. DETECTED.
-	STO	TS1
-	TRA	SREX
-#
-#		NORMALIZE SUBROUTINE.
-#
-NORM	STQ	SREX1
-	TOV	*+1		# CLEAR O.F.
-	LDQ	TS2		# A SQ LS
-	
-# Page 105
-	AXT	7,1		# 8 SHIFTS(16 PLACES) POSSIBLE
-	CLA	TS1		# A SQ MS
-	LLS	2
-	TOV	NORM1
-	STO	TS1		# NORMALIZED A.
-	TIX	*-4,1
-	CLA	8B17
-	ADD	SHDUM		# LRS 0
-	TRA	SREX1
-NORM1	CLA	7B17,1
-	TRA	*-3
-#
-#		DOUBLE PRECISION VECTOR MAGNITUDE
-#
-DPVMAG	STQ	SREX2		# SAVE RET ADDRS.
-	TSQ	DPSQ		# TO DOUB PREC SQ.
-	TSQ	NORM		# TO NORMALIZE.
-	STO	SREX3		# LRS(I/2)
-	CLZ	TS1		# NORMALIZED SQ.
-	TSQ	SQRTE
-	TRA	SREX3		# RE-NORMALIZE A-REG.
-#
-#		DOUBLE PRECISION TIME SUBTRACT
-#
-DPTSB	STQ	SREX
-	CLA	TA1		# ABS TIME MS AT 18.
-	SUB	TE1,1		# EPOCH TIME MS AT 18.
-	ALS	5		# 13
-	STO	TS1
-	CLA	TE2,1		# EPOCH TIME LS AT 1.
-	LRS	12		# 13
-	STO	TS2
-	CLA	TA2		# ABS TIME LS AT 1.
-	LRS	12		# 13
-	SUZ	TS2
-	ADZ	TS1
-	STO	TI		# TIME DIFF AT 13.
-	
-# Page 106
-	TRA	SREX
-#
-EXIT	STQ	SREX2
-	TRA	SREX2
-#
-#		SINE-COSINE SUBROUTINE ENTER WITH ANGLE IN
-#		RADIANS AT B3 IN ACC AND RETURN IN Q
-#
-	ADD	2PIB3
-SICOE	TMI	*-1		# SET PLUS
-	STQ	SREX
-	STO	TS1
-	SUB	2PIB3		# SET BETWEEN 0-2PI
-	TMI	*+2
-	STO	TS1
-	CLA	PID2		# PI/2
-	SUB	TS1
-	STO	TS0		# PI/2-ALPHA
-	TMI	SICO1		# -- IS GREATER THAN 90
-	AXT	1,1
-SICO2	CLA	TS0,1
-	ALS	2		# TO 1
-	STO	TS0,1
-	MPR	TS0,1
-	STO	TS2		# ALPHA SQUARED AT 2
-	MPR	K173		# 2-6=-4
-	ADD	K172
-	MPR	TS2		# -2
-	ADD	K171
-	MPR	TS2		# 0
-	ADD	K170
-	MPR	TS0,1		# 1
-	STO	TS0,1
-	TIX	SICO2,1
-	TRA	SREX		# EXIT
-SICO1	ADD	PID2
-	STO	TS1		# PI-ALPHA
-	
-# Page 107
-	TMI	*+2		# -- IS GREATER THAN 180
-	TRA	SICO2-1
-	ADD	PID2
-	COM
-	STO	TS0		# ALPHA-3PI/2
-	TMI	SICO2-1		# -- IS BETWEEN 180 AND 270
-	SUB	PID2
-	STO	TS1		# ALPHA-2PI
-	TRA	SICO2-1
-#
-#		ARCTANGENT SUBROUTINE ENTER WITH SINE AND 
-#		COSINE AT 1 IN TS3 AND TS4
-#
-ARCTAE	STQ	SREX		# SET EXIT
-	CLA	TS3
-	ABS
-	STO	TS1
-	CLA	TS4
-	TOV	*+1
-	ABS
-	ADD	TS1		# KCOS+KSIN
-	TOV	*+3		# O.F. CHECK.
-	CLA	TS4
-	TRA	*+7
-	CLZ	TS1		# O.F. RE-SCALE.
-	LRS	1
-	STO	TS1		# ABS SIN.
-	CLZ	TS4
-	LRS	1
-	STO	TS4		# COS
-	TMI	ARCTA2		# -- IS 2ND OR 3RD QUAD
-	ADD	TS1
-	STO	TS2
-	CLA	PID4
-	STO	TS5		# 1/4 PI
-	CLA	TS1
-	SUB	TS4		# SIN-COS
-	
-# Page 108
-ARCTA1	LDQ	ZERO
-	LRS	1
-	DVP	TS2
-	STO	TS6		# =X AT 1
-	MPY	TS6
-	STO	TS7		# X SQUARED AT 2
-	MPR	K183		# -1
-	ADD	K182
-	MPY	TS7		# 1
-	ADD	K181
-	MPY	TS7		# 3
-	LLS	1		# 2
-	ADD	K180
-	MPR	TS6		# 3
-	ADD	TS5
-	STO	TS1
-	CLA	TS3
-	TMI	*+3
-	CLA	TS1
-	TRA	SREX		# EXIT
-	CLA	2PIB3		# PHI GREATER THAN 180
-	SUB	TS1
-	TRA	SREX
-ARCTA2	CLA	3PID4
-	STO	TS5		# 3/4 PI
-	CLA	TS4
-	SUB	TS1
-	STO	TS2
-	CLA	TS1
-	ADD	TS4
-	TRA	ARCTA1
-#
-#		SQUARE ROOT SUBROUTINE ENTER WITH
-#		SQUARE IN ACC AND RETURN IN Q
-#
-SQRTE	STQ	SREX
-	STO	TS1
-	
-# Page 109
-	COM			# TEST FOR ZERO OR NEG
-	TMI	*+3
-	CLA	ZERO		# SET ROOT EQUAL ZERO
-	TRA	SREX
-	CLZ	TS2		# SET TS2=0
-	TSQ	NORM		# TO NORMALIZE
-	STO	SREX1		# SAVE SHIFT
-	CLA	TS1
-	LRS	1		# .5SQ
-	STO	TS8
-	STQ	TS1
-	LRS	2		# .125SQ
-	ADD	TS8		# .625SQ
-	ADD	KSR		# .375+.625SQ=RN-1
-	AXT	1,1		# 2 ITERATIONS
-SQRT1	STO	TS2	
-	LRS	1		# .5 RN-1
-	STO	TS0
-KSR	LDQ	TS1		# KSR=.375+DELTA
-	CLA	TS8
-	DVP	TS2
-	ADZ	TS0		# .5SQ/RN-1+.5RN-1=RN
-	TIX	SQRT1,1
-	TRA	SREX1		# TO SHIFT
-#
-#		ANGLE BETWEEN VECTORS SUBROUTINE.
-#
-ABVEC	STQ	SREX1
-	CLA	TS10		# BX
-	MPR	TS4+2		# AZ
-	LRS	1
-	STO	TS2
-	CLA	TS4		# AX
-	MPR	TS10+2		# BZ
-	LRS	1
-	SUZ	TS2
-	STO	TS3		# SIN THETA
-	
-# Page 110
-	CLA	TS4		# AX
-	MPR	TS10		# BX
-	LRS	1
-	STO	TS2
-	CLA	TS4+2		# AZ
-	MPR	TS10+2		# BZ
-	LRS	1
-	ADZ	TS2
-	STO	TS4		# COS THETA
-	TSQ	ARCTAE
-	TRA	SREX1		# THETA IN A AT 3.
-#
-#	DEDA PROCESSING ENTRY
-#
-ADOUT	CLA	ADST		# OUTPUT ADDRESS
-	ADD	DUMCLA
-	STO	CLADD		# SET CLA OF DATA
-	LRS	9
-	AXT	2,1
-	LLS	3		# 3 BITS PER PASS
-	OUT	DEDA
-	OUT	SHOUT		# SET SHIFT OUT
-	ALS	18		# TIME DELAY
-	TIX	*-4,1
-	TRA	CLADD		# GET DATA
-ROR	STO	DD
-	TMI	SNS		# TEST SIGN
-	CLA	ZERO		# POSITIVE
-	
-SOUT	OUT	DEDA		# OUTPUT SIGN
-	OUT	SHOUT
-	CLA	OCTF		# OCTAL OR DECIMAL OUTPUT
-	TMI	OCTO
-EX46	TRA	EXIT46
-	CLA	DD		# DECIMAL OUTPUT
-	MPR	SF		# SCALE FACTOR
-	ABS			# MAGNITUDE
-	AXT	4,1		# OUTPUT 5 DIGITS
-	
-# Page 111
-	TOV	*+1
-	LDQ	ZERO
-	DVP	BCDL		# DIVIDE BY 100K
-	STQ	TS1
-	CLZ	TS1		# UNROUNDED QUOTIENT
-	ADD	1B17		# ROUND UP
-	TOV	MAX		# TEST FOR TOO LARGE
-DOUT	MPY	10B17		# EXTRACT DIGIT
-	OUT	DEDA		# OUTPUT
-	OUT	SHOUT
-	STQ	TS1		# REMAINDER
-	CLZ	TS1
-	TIX	*-5,1
-	TRA	EXIT47
-OCTO	LDQ	DD		# OCTAL OUTPUT
-	AXT	4,1		# OUTPUT 5 OCTAL DIGITS
-	LLS	3		# EXTRACT DIGIT
-	OUT	DEDA		# OUTPUT
-	OUT	SHOUT
-	ALS	18		# TIME DELAY
-	TIX	*-4,1
-	TRA	EXIT47
-RME	STO	RMF		# READOUT ENTRY
-	OUT	SHIN		# ENTER ENTRY	SET SHIFT IN
-	CLZ	CMF		# RESET CLEAR MODE
-	CLZ	OCTF		# OCTAL FLAG
-	CLZ	DD		# CLEAR DEDA DATA
-	CLA	ZERO
-	AXT	2,1		# INPUT 3 DIGIT ADDRESS
-	ALS	3
-	STO	ADST
-	INP	DEDA		# INPUT DIGIT
-	OUT	SHIN		# SET SHIFT IN
-	LRS	13
-	SUB	8B17		# TEST FOR ERROR
-	TMI	*+2
-	TRA	EXIT48		# ERROR EXIT
-	
-# Page 112
-	ADD	8B17
-	ADZ	ADST		# ASSEMBLE ADDRESS
-	TIX	*-10,1
-	STO	ADST
-	INP	DEDA
-	OUT	SHIN
-	ALS	4
-	STO	TS2		# SIGN
-	CLA	ADST
-	TRA	EXIT49		# SCALE FACTOR SELECT
-NOTDD	CLA	MS		# SET OCTAL FLAG
-	STO	OCTF
-	CLA	RMF		# EXIT IF READOUT
-	TMI	EXIT47
-	AXT	4,1		# INPUT 5 OCTAL DIGITS
-	INP	DEDA
-	OUT	SHIN
-	LRS	14
-	ADZ	DD		# ASSEMBLE WORD
-	LLS	3
-	STO	DD
-	TIX	*-6,1
-	ADZ	TS2		# ADD SIGN
-	TRA	STDD
-DDIN	CLA	RMF		# DECIMAL DATA
-	TMI	EXIT47		# EXIT IF READOUT
-	AXT	4,1		# READ 5 DIGITS
-	TRA	*+5
-	OUT	SHIN
-	MPY	10B4		# MULTIPLY BY 10
-	LLS	4		# SCALE
-	STO	DD
-	INP	DEDA
-	LRS	13
-	ADZ	DD		# ASSEMBLE WORD
-	TIX	*-7,1
-EX50	TRA	EXIT50
-
-# Page 113
-	DVP	SF		# SCALE FACTOR
-STDD	STO	DD
-	CLZ	TS2
-	TMI	*+2		# COMPLEMENT IF MINUS
-	TRA	EXIT51		# IMMEDIATE ACTION TEST
-	CLZ	DD		# COMPLEMENT
-	COM
-	TRA	STDD
-SNS	CLA	1B17		# PICK UP NEGATIVE SIGN
-	TRA	SOUT
-MAX	CLA	PMAX		# GET MAXIMUM NUMBER
-	TRA	DOUT
-#
-#	ABSOLUTE TIME INITIALIZE
-#
-ATI	CLA	MU10		# CYCLE COUNT
-	LDQ	ZERO
-	DVP	M25B16		# MINUS SEC AT 1
-	ADD	DTB		# 1+TIME BIAS
-	ADD	1B1		# +1 SEC
-	STO	TA2		# 2+BIAS-CYCLE COUNT
-	CLA	DD		# INPUT TIME
-	SUB	1B17		# T-2 SEC
-	STO	TA1		# MOST SIG ABS TIME
-	TRA	EXIT47
-#
-#	AGS TELEMETRY OUTPUT
-#
-TME	STQ	SREX
-	INP	DISC1I
-	ALS	2		# TEST FOR STOP
-	TMI	SREX		# EXIT IF NOT
-	CLZ	TMID
-	ADD	1B17		# INCREMENT IDENT NUMBER
-	STO	TMID
-	ADD	TMCLA		# SET UP TO GET WORD
-	STO	SREX-2
-	
-# Page 114
-	SUB	TMCLA		# GET ID
-	ALS	12
-	OUT	TMIDO		# OUTPUT IDENTIFICATION
-	CLA	TMOUT		# OUTPUT INSTRUCTION
-	STO	SREX-1
-	TRA	SREX-2
-#
-#	TELEMETRY INITIALIZE
-#
-TMIE2	CLZ	TMID		# RESET TO FIRST WORD
-	AXT	2,1
-	CLA	A11,1		# SAVE DIRECTION COSINES
-	STO	A11T,1		# FOR TELEMETRY
-	CLA	A31,1
-	STO	A31T,1
-	TIX	*-4,1
-	TRA	EXIT
-#
-#	PGNS DOWNLINK INPUT
-#
-PGNSDE	STQ	SREX
-	CLA	DEL32		# DOWNLINK INITIALIZE FLAG
-	TMI	*+2
-	TRA	SREX		# EXIT
-	INP	DISC1I
-	ALS	1		# TEST FOR STOP
-	TMI	SREX		# PULSE RECEIVED
-	INP	DLREG		# INPUT WORD
-	LRS	2		# DISCARD UNWANTED BITS
-	STO	TS12		# SAVE INPUT
-	CLA	ID1F		# TEST FOR PRIOR ID
-	TMI	PGNSD1		# NUMBER 1 FOUND
-	CLZ	TS12		# TEST IF CURRENT
-	TMI	SREX		# WORD IS AN ID
-	SUB	ID		# TEST FOR PROPER ID
-	ABS
-	COM
-	
-# Page 115
-	TMI	SREX
-	CLA	K173		# IS IDAI OR IDRP
-	STO	ID1F		# SET FLAG
-	CLZ	DLWN		# ZERO WORD NUMBER
-PBNSD2	CLA	1B5
-	STO	DLSC		# SET SHIFT COUNT
-	TRA	SREX		# EXIT
-PGNSD1	TRA	EXIT7
-	CLZ	DLSC
-	ALS	1		# TEST FOR ID
-	TMI	PBNSD2		# WORD EXPECTED
-	STO	DLSC
-	CLZ	DLWN
-	ADD	1B17		# INCREMENT WORD NUMBER
-	STO	DLWN
-	ADD	DLSTO		# FORM STORE COMMAND
-	STO	SREX-1
-	SUB	DLWNL		# TEST FOR LAST WORD
-	TMI	*+4
-	CLZ	ID1F		# RESET ID1 FLAG
-	CLZ	DEL32		# RESET INITIALIZE FLAG
-	STO	DEL31		# SET DATA RECEIVED FLAG
-	CLZ	TS12
-	ALS	3
-	TRA	SREX-1
-#
-# 	SELF-TEST ROUTINE
-TEST	CLA	FLAGT
-	TMI	CKSUM
-	CLA	S12
-	SUB	1B3
-	TMI	*+4
-	SUB	1B2
-	TMI	*+3		# -- IS LESS THAN 3
-	TRA	EXIT52
-	OUT	7010
-#	LOGIC TEST
-
-# Page 116
-	TOV	*+1		# ACCUM.   Q REG.   OPER.
-	LDQ	K170		#          377777   377777
-	CLA	SIXTH		# 252525   377777   252525
-	ALS	1		# 525252
-1K7	STQ	TS0
-	TSQ	OVFLW		# TEST FOR OVERFLOW
-	LRS	17		# 777777   525252
-10B4	SUB	TS0		# 400000   525252   377777
-	STQ	TS0
-	TOV	ERROR		# TEST RESET OF OVERFLOW
-	COM			# 400000
-	TMI	*+2
-	TRA	ERROR
-3B3	LDQ	TS0		# 400000   525252   525252
-	LLS	17		# 125252   000000
-	STQ	TS1
-	TSQ	OVFLW
-	SUB	TS1		# 125252            000000
-	SUB	TS0		# 400000            525252
-	ALS	1		# 000000
-	TSQ	OVFLW
-	LDQ	4B17		# 000000   000004   000004
-	LLS	31		# 200000   000000
-	TOV	ERROR		# NO OVERFLOW
-	LDQ	MS		# 200000   400000   400000
-	STQ	TS1
-	LRS	16		# 000001   000000
-	ADD	TS1		# 400001   000000   400000
-	STQ	TS2
-	ADD	TS2
-	TMI	*+2
-	TRA	ERROR
-	ADD	K170		# 000000   000000   377777
-	TMI	ERROR
-	TOV	ERROR
-	COM			# 000000
-	TSQ	ACCUM		# 777777
-	
-# Page 117
-	COM			# 000001
-	ABS			# 000001
-	AXT	7,1
-	STO	TS0,1		# STORE 8 NUMBERS IN
-	SUB	1B17		# SEQUENCE
-	TIX	*-2,1
-	CLA	1B17		# 000001            000001
-	# 2005-06-12 RSB.  In the comment field, the OPER
-	# entry was incorrectly shown as 777776.  Since 
-	# CLZ clears the operand, this is impossible.
-	CLZ	TS4		# 777776            000000
-	ALS	15		# 600000
-	TOV	ERROR
-	# 2005-06-12 RSB.  Same, but was 777777.
-	MPZ	TS5		# 000001   200000   000000
-	# 2005-06-12 RSB.  Same, but was 000001.
-	SUZ	TS7		# 000000   200000   000000
-	LLS	3		# 000004   000000
-	# 2005-06-12 RSB.  Same, but was 777774.
-	ADZ	TS2		# 000000   000000   000000
-	AXT	3,1
-	ADD	TS4,1
-	TIX	*-1,1
-	AXT	7,1
-	AXT	0,1
-	# 2005-06-12 RSB.  Same, but was 777775.
-	SUZ	TS3,1		# 000003   000000   000000
-	TIX	ERROR,1
-	AXT	2,1
-	# 2005-06-12 RSB.  Same, but was 777773.
-	ADZ	TS1		# 777776   000000   000000
-	TIX	*+1,1
-	TIX	*+1,1
-	# 2005-06-12 RSB.  Same, but was 777772.
-	SUZ	TS0,1		# 000004   000000   000000
-	AXT	3,1
-	ADZ	TS0,1
-	TIX	*-1,1
-	ADD	MS		# 400004            400000
-	ABS			# 377774
-	ADD	K170		# 777773            377777
-	TSQ	OVFLW
-	ABS			# 000005
-	LLS	0
-	SUB	5B17		# 000000            000005
-	TSQ	ACCUM		# 777777
-	
-# Page 118
-	CLA	TS0		# 000000            000000
-	TRA	*+3
-	TSQ	ACCUM		# 777777
-	TRA	*+2
-	TRA	*-2
-	STO	TS0
-	ADD	1B17		# 000000            000001
-	CLA	TS0		# 777777            777777
-	SUB	TS0		# 000000            777777
-	TSQ	ACCUM		# 777777
-	ALS	16		# 600000
-	MPY	TS0		# 000000   200000   777777
-	STQ	TS1
-	ADD	TS1		# 200000   200000   200000
-	SUB	1B1		# 000000   200000   200000
-	ADD	SIXTH		# 252525   200000   252525
-	MPR	3B17		# 000002   377777   000003
-	ADD	TS0		# 000001   377777   777777
-	DVP	2B17		# 377777   377777   000002
-	TOV	ERROR
-	STQ	TS2
-	SUB	K170		# 000000   377777   377777
-	SUB	K170		# 400001   377777   377777
-	ADD	TS2		# 000000   377777   377777
-	ADD	SIXTH		# 252525   377777   252525
-	SUB	5B17		# 252520   377777   000005
-	MPR	SIXTH		# 161612   161620   252525
-	STQ	TS2
-	SUB	TS2		# 777772   161620   161620
-	LRS	17		# 777777   777772
-	DVP	4B17		# 777777   777776   000004
-	STQ	TS2
-	ADD	TS2		# 777775   777776   777776
-	ADD	3B17		# 000000   777776   000003
-	SUB	SIXTH		# 525253   777776   252525
-	STO	TS3	
-	MPR	TS3		# 161616   307071   525253
-	
-# Page 119
-	DVP	TS3		# 525251   525251   525253
-	MPY	SIXTH		# 616160   743435   252525
-	DVP	SIXTH		# 525251   525251   252525
-	ADD	2B17		# 525253   525251   000002
-	ADD	TS3		# 252526            525253
-	TSQ	OVFLW
-	SUB	TS3		# 525253            525253
-	TSQ	OVFLW
-	SUB	SIXTH		# 252526            252525
-	TSQ	OVFLW
-	COM
-	ADD	SIXTH		# 777777            252525
-	LDQ	TS6		# 777777   000000   000000
-	ADD	TS0		# 777776   000000   777777
-	LRS	2		# 777777   600000
-1B3	DVP	TS0		# 200000   177777   777777
-	STQ	TS0
-	TSQ	OVFLW
-	SUB	TS0		# 000001            177777
-	SUB	1B17		# 000000            000001
-	TSQ	ACCUM		# 777777
-	CLA	3B17
-	DVP	2B17
-	TSQ	OVFLW		# END OF LOGIC TEST
-SETFG	CLA	MS
-	STO	FLAGT		# SET TEST FLAG
-	CLZ	SUM
-	CLA	TCLTH		# INITIALIZE MEMORY
-	STO	TVARBR		# TEST
-	CLA	CLATEN
-	STO	SUMLIM
-	TRA	EXIT52
-#	MEMORY CHECKSUM ROUTINE
-CKSUM	TSQ	MEMSUM		# PERFORM SUMMATION
-	CLZ	SUM		# TEST SUM
-	TMI	*+3
-	SUB	1B17
-	
-# Page 120
-	TMI	COREX
-	CLA	S12		# INCORRECT SUM
-	SUB	3B3		# SET TEST WORD BITS
-	TMI	*+4		# AND TEST MODE FAILURE
-	CLA	7B3		# INDICATOR
-	STO	S12
-	TRA	*+3
-	CLA	1B1
-	OUT	6410
-	STO	S12
-	CLZ	FLAGT		# RESET FLAG
-	TRA	EXIT52
-COREX	CLA	S12		# CORRECT SUM
-	SUB	1B17
-	TMI	*+2
-	TRA	*-5
-	CLA	1B3
-	TRA	COREX-3
-MEMSUM	STQ	SREX		# MEMORY SUMMATION SUBRT.
-	CLZ	WRDCNT
-	TSQ	TVARBR
-	ADZ	SUM		# FORM SUM
-	STO	SUM
-	CLA	TVARBR
-	SUB	SUMLIM		# TEST FOR LIMIT 
-	TMI	*+2
-	TRA	SREX
-	CLZ	WRDCNT
-	ADD	1B17
-	STO	WRDCNT		# INCREMENT WORD COUNTER
-	SUB	WORDS
-	TMI	MEMSUM+2
-	TRA	EXIT53
-ACCUM	TMI	ERROR		# SUBROUTINE TO TEST FOR
-	SUB	1B17
-	TMI	EXIT
-ERROR	CLA	3B3
-
-# Page 121
-	STO	S12
-	TRA	SETFG
-OVFLW	TOV	EXIT		# OVERFLOW TEST
-	TRA	ERROR
-#
-#		INPUT-OUTPUT ADDRESSES
-#
-	CHECKSUM RANGE 4000-7776
-DLREG	DEFINE	6200		
-DISC1I	DEFINE	2020		# DISCRETE INPUT WORD 1
-DISC2I	DEFINE	2040		# DISCRETE INPUT WORD 2
-DEDA	DEFINE	2200
-SIALO	DEFINE	2001		# DEFINE OUTPUT REGISTERS
-COALO	DEFINE	2002		# FOR FDAI ANGLES
-SIBEO	DEFINE	2004
-COBEO	DEFINE	2010
-SIGAO	DEFINE	2020
-COGAO	DEFINE	2040
-EXO	DEFINE	6001		# DEFINE THE ATT ERROR
-EYO	DEFINE	6002		# OUTPUT REGISTERS
-EZO	DEFINE	6004
-TMIDO	DEFINE	6200
-SHOUT	DEFINE	2600
-SHIN	DEFINE	2500
-	END
-	
diff --git a/FRESH_START_AND_RESTART.s b/FRESH_START_AND_RESTART.s
new file mode 100644
index 0000000..d0be47d
--- /dev/null
+++ b/FRESH_START_AND_RESTART.s
@@ -0,0 +1,1474 @@
+# Copyright:	Public domain.
+# Filename:	FRESH_START_AND_RESTART.agc
+# Purpose:	Part of the source code for Comanche, build 055. It
+#		is part of the source code for the Command Module's
+#		(CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:	yaYUL
+# Reference:	pp. 181-210
+# Contact:	Ron Burkey <info@sandroid.org>,
+#  		Fabrizio Bernardini <fabrizio@spacecraft.it>
+# Website:	http://www.ibiblio.org/apollo.
+# Mod history:	2009-05-16 FB	Transcription Batch 2 Assignment.
+#		2009-05-20 RSB	Removed an extraneous "TC STARTSUB".
+#		2009-05-21 RSB	Changed a "TC BANKCALL" to "TC STOPRATE"
+#				in INITSUB.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#	Assemble revision 055 of AGC program Comanche by NASA
+#	2021113-051.  April 1, 1969.  
+#
+#	This AGC program shall also be referred to as Colossus 2A
+#
+#	Prepared by
+#			Massachussets Institute of Technology
+#			75 Cambridge Parkway
+#			Cambridge, Massachusetts
+#
+#	under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 181
+# PROGRAM DESCRIPTION						8 APRIL, 1967
+#								SUNDISK REV 120
+# FUNCTIONAL DESCRIPTION
+#
+# SLAP1		MAN INITIATED FRESH START
+#	1.	EXECUTE STARTSUB
+#	2.	TURN OFF DSKY DISCRETE-LAMPS
+#	3.	CLEAR FAIL REGISTERS, SELF-CHECK ERROR COUNTER AND RESTART
+#		COUNTER
+#	4.	EXECUTE DOFSTART
+#
+# DOFSTART	MACHINE INITIATED FRESH START
+#
+#	1.	CLEAR SELF-CHECK REGISTERS, MODE REGISTER AND CDUZ REGISTER
+#	2.	CLEAR PHASE TABLE
+#	3.	INITIALIZE IMU FLAGS
+#	4.	INITIALIZE FLAGWORDS
+#	5.	TRANSFER CONTROL TO IDLE LOOP IN DUMMYJOB
+#
+# GOPROG	HARDWARE RESTART
+#
+#	0.	EXECUTE STARTSUB
+#	1.	TRANSFER CONTROL TO DOFSTART IF ANY OF THE FOLLOWING CONDITIONS
+#		EXIST.
+#		A.	RESTART OCCURRED DURING EXECUTION OF ERASCHK.
+#		B.	BOTH OSCILLATOR FAIL AND AGC WARNING ARE ON.
+#		C.	MARK REJECT AND EITHER NAV OR MAIN DSKY ERROR LIGHT RESET
+#			ARE ON.
+#	2.	SCHEDULE A T5RUPT PROGRAM FOR THE DAP
+#	3.	SET FLAGWRD5 BITS FOR INTWAKE ROUTINE
+#	4.	EXTINGUISH ALL DSKY LAMPS, EXCEPT FOR PROGRAM ALARM, GIMBAL LOCK, AND
+#		NO ATT
+#	5.	INITIALIZE IMU FLAGS
+#	6.	IF ENGINE COMMAND IS ON (FLAGWRD5, BIT 7), SET ENGINE ON (CHANNEL
+#		11, BIT 13).
+#	7.	TRANSFER CONTROL TO GOPROG3
+#
+# ENEMA		SOFTWARE RESTART -- INITIATED BY MAJOR MODE CHANGE
+#
+#	1.	EXECUTE STARTSB2
+#	2.	KILL PROGRAMS THAT WERE INTEGRATING OR WAITING FOR INTEGRATION
+#		ROUTINE
+#	3.	TRANSFER CONTROL TO GOPROG3
+#
+# GOPROG3	SUBROUTINE COMMON TO GOPROG AND ENEMA
+#
+#	1.	TEST PHASE TABLES -- IF INCORRECT, DISPLAY ALARM 1107 AND
+#		TRANSFER CONTROL TO DOFSTART
+#	2.	DISPLAY MAJOR MODE
+#	3.  	IF ANY GROUPS WERE ACTIVE UPON RESTART, TRANSFER CONTROL TO THE
+# Page 182
+#		RESTARTS SUBROUTINE TO RESCHEDULE PENDING TASKS, LONGCALLS, AND
+#		JOBS (P20 IS RESTARTED VIA FINDVAC)
+#	4.	IF NO GROUPS WERE ACTIVE UPON RESTART, DISPLAY ALARM CODE
+#		1110 (RESTART WITH NO ACTIVE GROUPS)
+#	5.	TRANSFER CONTROL TO IDLE LOOP IN DUMMYJOB
+#
+# STARTSUB	SUBROUTINE COMMON TO SLAP1 AND GOPROG
+#
+#	1.	CLEAR OUTBIT CHANNELS 5 AND 6
+#	2.	INITIALIZE TIME5, TIME4, TIME3
+#	3.	TRANSFER CONTROL TO STARTSB2
+#
+# STARTSB2	SUBROUTINE COMMON TO STARTSUB AND ENEMA
+#
+#	1.	INTIALIZE OUTBIT CHANNELS 11,12,13, AND 14
+#	2.	REPLACE ALL TASKS ON WAITLIST WITH ENDTASK
+#	3.	MAKE ALL EXECUTEVE REGISTERS AVAILABLE
+#	4.	MAKE ALL VAC AREAS AVAILABLE
+#	5.	CLEAR DSKY REGISTERS
+#	6.	ZERO NUMEROUS SWITCHES
+#	7.	INITIALIZE OPTICS FLAGS
+#	8.	INITIALIZE PIPA AND TELEMETRY FAIL FLAGS
+#	9.	INITIALIZE DOWN TELEMETRY
+#
+# INPUT/OUTPUT INITIALIZATION
+#
+#	A.	CALLING SEQUENCE
+#
+#		SLAP1 --	TC POSTJUMP	OR	VERB 36,ENTER
+#				CADR SLAP1
+#
+#		ENEMA --	TC POSTJUMP	*** DO NOT CALL ENEMA WITHOUT ***
+#				CADR ENEMA	***  CONSULTING P00H PEOPLE   ***
+#
+#	B.	OUTPUT
+#
+#		ERASABLE MEMORY INITIALIZATION
+#
+# PROGRAM ANALYSIS
+#
+#	A.	SUBROUTINES CALLED
+#
+#		MR.KLEAN,WAITLIST,DSPMM,ALARM,RESTARTS,FINDVAC
+#
+#	B.	ALARMS
+#
+#		1107	PHASE TABLE ERROR
+#		1110	RESTART WTIH NO ACTIVE GROUPS
+
+# Page 183
+		BANK	10
+		SETLOC	FRANDRES
+		BANK
+		
+		EBANK=	LST1
+		
+		COUNT	05/START	
+
+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
+		MASK	BITS4&6	
+		AD	BIT15	
+		TS	DSPTAB +11D	# REQUESTED FRESH START.
+		
+		CA	ZERO		# SAME STORY ON ZEROING FAILREG.
+		TS	ERCOUNT
+		TS	FAILREG
+		TS	FAILREG +1
+		TS	FAILREG +2
+		TS	REDOCTR
+		
+		CS	PRIO12
+		TS	DSRUPTSW
+		
+DOFSTART	CAF	ZERO		# DO A FRESH START.
+		TS	ERESTORE	# ***** MUST NOT BE REMOVED FROM DOFSTART
+		TS	SMODE		# ***** MUST NOT BE REMOVED FROM DOFSTART
+		TS	UPSVFLAG	# UPDATE STATE VECTOR REQUEST FLAGWORD
+		EXTEND
+		WRITE	CHAN5		# TURN OFF RCS JETS
+		EXTEND
+		WRITE	CHAN6		# TURN OFF RCS JETS
+		EXTEND
+		WRITE	DSALMOUT	# ZERO CHANNEL 11
+		EXTEND
+		WRITE	CHAN12		# ZERO CHANNEL 12
+		EXTEND
+		WRITE	CHAN13		# ZERO CHANNEL 13
+		EXTEND
+		WRITE	CHAN14		# ZERO CHANNEL 14
+		TS	WTOPTION
+		TS	DNLSTCOD
+# Page 184
+		TS	NVSAVE
+		TS	EBANKTEM
+		TS	RATEINDX
+		TS	TRKMKCNT
+		TS	VHFCNT
+		TS	EXTVBACT
+
+		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.
+		TC	MR.KLEAN
+
+		CS	ZERO
+		TS	MODREG
+		
+		CAF	PRIO30
+		TS	RESTREG
+		
+		CAF	IM30INIF	# FRESH START IMU INITIALIZATION.
+		TS	IMODES30
+		
+		CAF	NEGONE
+		TS	OPTIND		# KILL COARSE OPTICS
+		
+		CAF	OPTINITF
+		TS	OPTMODES
+		
+		CAF	IM33INIT
+		TS	IMODES33
+		
+		EXTEND			# LET T5 IDLE.
+		DCA	T5IDLER
+		DXCH	T5LOC
+				
+		CA	SWINIT
+		TS	STATE
+
+		CA	FLAGWRD1
+		MASK	NOP01BIT	# LEAVE NODOP01 FLAG UNTOUCHED
+		AD	SWINIT +1
+		TS	FLAGWRD1
+
+		CA 	SWINIT +2
+		TS	STATE +2
+
+		CA	FLAGWRD3
+# Page 185
+		MASK	BIT13		# REFSMMAT FLAG
+		AD	SWINIT +3
+		TS	FLAGWRD3
+
+		EXTEND
+		DCA	SWINIT +4
+		DXCH	STATE +4
+		EXTEND
+		DCA	SWINIT +6
+		DXCH	STATE +6
+		CA	FLAGWRD8
+		MASK	OCT6200		# CMOONFLG, LMOONFLG, AND SUFFLAG
+		AD	SWINIT	+8D
+		TS	FLAGWRD8
+
+		CA	SWINIT +9D
+		TS	STATE +9D
+
+		EXTEND
+		DCA	SWINIT +10D
+		DXCH	STATE +10D
+		
+ENDRSTRT	TC	POSTJUMP
+		CADR	DUMMYJOB +2	# PICKS UP AT RELINT.	(IN A SWITCHED BANK.)
+		
+MR.KLEAN	INHINT
+		EXTEND
+		DCA	NEG0
+		DXCH	-PHASE2
+P00KLEAN	EXTEND
+		DCA	NEG0
+		DXCH	-PHASE4
+		EXTEND
+		DCA	NEG0
+		DXCH	-PHASE1
+V37KLEAN	EXTEND
+		DCA	NEG0
+		DXCH	-PHASE3
+		EXTEND
+		DCA	NEG0
+		DXCH	-PHASE5
+		EXTEND
+		DCA	NEG0
+		DXCH	-PHASE6
+		TC	Q
+		
+OCT6200	OCT	6200
+
+# Page 186
+# COMES HERE FROM LOCATION 4000, GOJAM, RESTART ANY PROGRAMS WHICH MAY HAVE BEEN RUNNING AT THE TIME.
+
+GOPROG		INCR	REDOCTR		# ADVANCE RESTART COUNTER.
+
+		LXCH	Q
+		EXTEND
+		ROR	SUPERBNK
+		DXCH	RSBBQ
+		TC	BANKCALL	# STORE ERASABLES FOR DEBUGGING PURPOSES.
+		CADR	VAC5STOR
+		CA	BIT15		# TEST OSC FAIL BIT TO SEE IF WE HAVE
+		EXTEND			# HAD A POWER TRANSIENT. IF SO, ATTEMPT
+		WAND	CHAN33		# A RESTART. IF NOT, CHECK THE PRESENT
+		EXTEND			# STATE OF AGC WARNING BIT.
+		BZF	BUTTONS
+
+		CA	BIT14		# IF AGC WARNING ON (BIT = 0), DO A 
+		EXTEND			# FRESH START ON THE ASSUMPTION THAT 
+		RAND	CHAN33		# WE ARE IN A RESTART LOOP.
+		EXTEND
+		BZF	NONAVKEY +1
+		
+BUTTONS		TC	LIGHTSET	# MAKE FRESH START CHECKS BEFORE ERESTORE.
+
+# 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 +1	# DOUBT E MEMORY AND DO A FRESH START
+		CS	ERESTORE
+		EXTEND
+		BZF	ELRSKIP -1
+		AD	SKEEP7
+		EXTEND
+		BZF	+2		# = SKEEP7, RESTORE E MEMORY.
+		TCF	NONAVKEY +1	# NOT = SKEEP7, DOUBT E MEM, DO FRESH START
+		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
+# Page 187
+		TC	STARTSUB	# DO INITIALIZATION AFTER ERASE RESTORE.
+ELRSKIP		CA	FLAGWRD6	# RESTART AUTOPILOTS
+		EXTEND
+		MP	BIT3		# BITS 15,14	00	T5IDLOC
+		MASK	SIX		#		01	REDORCS
+		EXTEND			#		10	REDOTVC
+		INDEX	A		#		11	REDOSAT
+		DCA	T5IDLER
+		DXCH	T5LOC
+
+		CS	INTFLBIT
+		MASK	RASFLAG
+		TS	RASFLAG
+		
+		CA	OPTMODES
+		MASK	OPTINITR
+		AD	BIT7
+		TS	OPTMODES
+		
+		CAF	BIT6
+		MASK	IMODES33
+		AD	IM33INIT
+		TS	IMODES33
+
+		CA	9,6,4		# LEAVE PROG ALARM, GIMBAL LOCK, NO ATT
+		MASK	DSPTAB +11D	# LAMPS INTACT ON HARDWARE RESTART
+		AD	BIT15
+		XCH	DSPTAB +11D
+		MASK	BIT4		# IF NO ATT LAMP WAS ON, LEAVE ISS IN
+		EXTEND			# COARSE ALIGN
+		BZF	NOCOARSE
+		TC	IBNKCALL	# IF NO ATT LAMP ON, RETURN ISS TO
+		CADR	SETCOARS	#	COARSE ALIGN.
+		
+		CAF	SIX
+		TC	WAITLIST
+		EBANK=	CDUIND
+		2CADR	CA+ECE
+		
+NOCOARSE	CAF	IFAILINH	# LEAVE FAILURE INHIBITS INTACT ON
+		MASK	IMODES30	#	HARDWARE RESTART.  RESET ALL
+		AD	IM30INIR	#	FAILURE CODES.
+		TS	IMODES30
+		
+		CS	FLAGWRD5
+		MASK	ENGONBIT
+		CCS	A
+		TCF	GOPROG3
+		CAF	BIT13
+		EXTEND
+# Page 188
+		WOR	DSALMOUT	# TURN ENGINE ON
+		TCF	GOPROG3
+
+ENEMA		INHINT
+		TC	LIGHTSET	# EXIT TO DOFSTART IF ERROR RESET AND
+		TC	STARTSB2	# MARK REJECT DEPRESSED SIMULTANEOUSLY
+		CS	INTMASK		# RESET INTEGRATION BITS
+		MASK	RASFLAG
+		TS	RASFLAG
+		
+		CS	FLAGWRD6	# IS TVC ON
+		MASK	OCT60000
+		EXTEND
+		BZMF	GOPROG3		# NO
+		
+		CAF	.5SEC		# YES, CALL TVCEXEC TASK WHICH WAS KILLED
+		TC	WAITLIST	# 	IN STARTSB2
+		EBANK=	BZERO
+		2CADR	TVCEXEC
+		
+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
+
+		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
+		
+		CAE	FLAGWRD6	# IS RCS DAP RUNNING (BITS 15 14 OF
+		MASK	OCT60000	# FLAGWORD6 = 01)
+		EXTEND			# YES, DO STOPRATE
+		BZMF	NXTRST -1	# NO, SKIP TO NXTRST -1
+		CAF	EBANK6		# STOPRATE IS DONE IN EBANK 6
+		TS	EBANK
+		TC	STOPRATE	# ZERO DELCDUS, WBODYS, AND BIASES THUS
+					# STOPPING AUTOMATIC MANEUVERING
+
+		CAF	EBANK3
+		TS	EBANK
+# Page 189
+		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	GOTOP00H	# NO
+		TCF	ENDRSTRT	# YES
+PTBAD		TC	ALARM		# SET ALARM TO SHOW PHASE TABLE FAILURE.
+		OCT	1107
+		
+		TCF	DOFSTART	# IN R21.
+
+# ********* ********* **********
+
+# DO NOT USE GOPROG2 OR ENEMA WITHOUT CONSULTING P00H PEOPLE.
+
+GOPROG2		EQUALS	ENEMA
+OCT10000	=	BIT13
+OCT30000	=	PRIO30
+OCT7777		OCT	7777
+RACTCADR	CADR	RESTARTS
+
+LIGHTSET	CAF	BIT7		# DOFSTART IF MARK REJECT AND EITHER
+		EXTEND			# ERROR LIGHT RESET BUTTONS ARE DEPRESSED
+		RAND	NAVKEYIN
+		EXTEND
+		BZF	NONAVKEY	# NO MARK REJECT
+		CAF	OCT37
+		EXTEND
+		RAND	NAVKEYIN	# NAV DSKY KEYCODES,MARK,MARK REJECT
+		AD	-ELR
+		EXTEND
+		BZF	NONAVKEY +1
+		EXTEND
+# Page 190
+		READ	MNKEYIN		# MAIN DSKY KEYCODES
+		AD	-ELR
+		EXTEND
+		BZF	+2
+
+NONAVKEY	TC	Q
+
+		TC	STARTSUB
+		TCF	DOFSTART
+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	POSMAX
+		TS	TIME3		# 37777 TO TIME3.
+		AD	MINUS2
+		TS	TIME4		# 37775 TO TIME4.
+		AD	NEGONE
+		TS	TIME5		# 37774 TO TIME5.
+
+STARTSB2	CAF	OCT77603	# TURN OFF UPLINK ACTY, TEMP CAUTION, KR,
+		EXTEND			# FLASH, OP. ERROR, LEAVE OTHERS UNCHANGED.
+		WAND	DSALMOUT
+
+		CAF	OCT74777	# TURN OFF TEST ALARMS, STANDBY ENABLE.
+		EXTEND
+		WAND	CHAN13
+		CS	PRIO25		# CLEAR R21MARK, P21FLAG, AND SKIPVHF BIT.
+		MASK	FLAGWRD2
+		AD	SKIPVBIT	# NOW SET SKIPVHF FLAG.
+		TS	FLAGWRD2
+		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
+		TS	LST2 +2
+		TS	LST2 +4
+# Page 191
+		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	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		# BLANK DSKY REGISTERS (PROGRAM,VERB,NOUN,
+					# R1,R2,R3)
+DSPOFF		TS	MPAC	
+		CS	BIT12
+		INDEX	MPAC
+		TS	DSPTAB
+		CCS	MPAC
+		TCF	DSPOFF
+		
+		TS	DELAYLOC
+# Page 192
+		TS	DELAYLOC +1
+		TS	DELAYLOC +2
+		TS	DELAYLOC +3
+		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	IMUCADR
+		TS	OPTCADR
+		TS	RADCADR
+		TS	ATTCADR
+		TS	LGYRO
+		TS	FLAGWRD4	# KILL INTERFACE DISPLAYS
+		CAF	NOUTCON
+		TS	NOUT
+		
+		CAF	BIT14
+		MASK	EXTVBACT
+		TS	EXTVBACT
+		CAF	LESCHK		# SELF CHECK GO-TO REGISTER.
+		TS	SELFRET
+		
+		CS	VD1
+		TS	DSPCOUNT
+		
+		TC	Q
+		
+T5IDLOC		CA	L		# T5RUPT COMES HERE EVERY 163.84 SECS
+		TCF	NOQRSM	+1	# WHEN NOBODY IS USING IT.
+		
+		EBANK=	OGANOW
+T5IDLER		2CADR	T5IDLOC
+
+		EBANK=	OGANOW
+		2CADR	REDORCS
+		
+		EBANK=	OGANOW
+		2CADR	REDOTVC
+		
+		EBANK=	OGANOW
+		2CADR	REDOSAT
+# Page 193
+		
+IFAILINH	OCT	435
+LDNPHAS1	GENADR	DNPHASE1
+LESCHK		GENADR	SELFCHK
+VAC1ADRC	ADRES	VAC1USE
+LTHVACA		DEC	44
+
+INTMASK		OCT	20100
+OCT77603	OCT	77603
+OCT74777	OCT	74777
+STARTEB		ECADR	LST1
+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
+OPTINITF	OCT	130
+OPTINITR	OCT	430
+SWINIT		OCT	0
+		OCT	0
+		OCT	0
+		OCT	0
+		
+		OCT	0
+		OCT	00200
+		OCT	0
+		OCT	0
+		OCT	0
+		OCT	0
+		OCT	0
+		OCT	0
+# Page 194
+# PROGRAM NAME		GOTOP00H		ASSEMBLY SUNDISK
+# LOG SECTION		FRESH START AND RESTART
+#
+# FUNCTIONAL DESCRIPTION
+#
+#	1.	DISPLAY MAJOR MODE NUMBER 00 IN DSKY REGISTER R1 AND R3.  FLASH V50N07 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
+#		CHANGE REQUEST.
+#
+# INPUT/OUTPUT INFORMATION
+#
+#	A. CALLING SEQUENCE			TC GOTOP00H
+#	B. ERASABLE INITIALIZATION		NONE
+#	C. OUTPUT 				FLASH V 50 NOUN 07 ON DSKY
+#	D. DEBRIS				L
+#
+# PROGRAM ANALYSIS
+#
+#	A. SUBROUTINES CALLED			GOPERF3, LINUS
+#	B. NORMAL EXIT				TCF ENDOFJOB
+#	C. ALARM AND ABORT EXITS		NONE
+
+		BLOCK	02
+		SETLOC	FFTAG10
+		BANK
+		
+		COUNT	02/P00
+		
+GOTOP00H	TC	PHASCHNG		# RESTART GOTOP00H
+		OCT	14
+		
+		TC	POSTJUMP
+		CADR	GOP00FIX
+		BANK	10
+		SETLOC	VERB37
+		BANK
+		
+		COUNT	04/P00
+		
+GOP00FIX	TC	INITSUB
+		TC	CLEARMRK +2
+		CAF	V37N99
+		TC	BANKCALL
+		CADR	GOFLASH
+		TCF	-3
+# Page 195
+		TCF	-4
+		TCF	-5
+V37N99		VN	3799
+
+# Page 196
+# PROGRAM NAME		V37			ASSEMBLY SUNDISK
+#
+# 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, UPDATE, AND TARG1 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 FLAG IS RESET.  (KILL P20)
+#			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.
+#			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 IS RESTARTED TO CONTINUE, AND ITS MAJORE MODE IS SET.
+#			3. CONTROL IS TRANSFERRED TO GOPROG2.
+#		C. PROGRAM SELECTED IS NEITHER P00 NOR P20
+#			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. GROUP 2 IS CLEARED. IF THE RENDEZVOUS FLAG IS ON P20 IS RESTARTED IN GOPROG2 VIA REDOP20,
+#			   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
+#		MAJOR MODE CHANGE
+# Page 197
+#
+#	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)
+
+		BLOCK	02
+		SETLOC	FFTAG10
+		BANK
+		
+		COUNT	02/V37
+		
+OCT24		MM	20
+OCT31		MM	25
+		BANK	27
+		SETLOC	VERB37
+		BANK
+		
+		COUNT	04/V37
+
+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	CANTR00
+		
+		CAF	BIT13			# IS ENGINE ON
+		EXTEND
+		RAND	DSALMOUT
+		CCS	A
+		TCF	R00TOP00		# YES, SET UP FOR P00
+		
+		CS	FLAGWRD6		# NO, IS TVC DAP ON
+		MASK	OCT60000
+		EXTEND
+		BZMF	ISITP00			# NO, CONTINUE WITH R00
+		
+R00TOP00	INHINT
+		CAF	EBANK6
+# Page 198
+		TS	EBANK
+		EBANK=	DAPDATR1
+		CAE	CSMMASS
+		TS	MASSTMP
+		TC	IBNKCALL
+		CADR	SPSOFF
+		TC	IBNKCALL
+		CADR	MASSPROP
+		CAF	3.1SEC
+		TC	IBNKCALL
+		CADR	RCSDAPON +1
+		
+		TC	IBNKCALL
+		CADR	TVCZAP			# DISABLE TVC
+		CAF	ZERO
+		TS	MMNUMBER
+		RELINT
+		CAF	FIVE
+		TC	BANKCALL
+		CADR	DELAYJOB
+		CAF	ZERO
+		EXTEND
+		WRITE	5
+		EXTEND
+		WRITE	6
+ISITP00		CA	MMNUMBER
+		EXTEND
+		BZF	ISSERVON		# YES, CHECK SERVICER STATUS
+		
+		CS	FLAGWRD2		# NO, IS NODO V37 FLAG SET
+		MASK	NODOBIT
+		CCS	A
+		TCF	CHECKTAB		# NO
+CANTR00		TC	ALARM
+		OCT	1520
+		
+V37BAD		TC	RELDSP			# RELEASES DISPLAY FROM ASTRONAUT
+
+		TC	POSTJUMP		# BRING BACK LAST NORMAL DISPLAY IF THERE
+		CADR	PINBRNCH		# WAS ONE.  OY
+		
+CHECKTAB	CA	NOV37MM			# THE NO. OF MM
+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
+# Page 199
+		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
+
+		INHINT
+		CS	AVEGBIT			# YES TURN OFF AVERAGE G FLAG AND WAIT
+		MASK	FLAGWRD1		# FOR SERVICER TO RETURN TO CANV37
+		TS	FLAGWRD1
+		
+		TCF	ENDOFJOB
+		
+CANV37		CAF	R00AD
+		TS	TEMPFLSH
+		
+		TC	PHASCHNG
+		OCT	14
+		
+ROC		TC	INTPRET
+
+		CALL				# WAIT FOR INTEGRATION TO FINISH
+			INTSTALL
+DUMMYAD		EXIT
+
+		CS	OCT1400			# CLEAR CAUTION RESET
+		EXTEND				#   AND TEST CONNECTOR OUTBIT
+		WAND	11
+
+		CAF	OCT44571		# CLEAR ENABLE OPTICS ERROR COUNTER, STAR
+		EXTEND				# TRAKERS ON BIT, TVC ENABLE, ZERO OPTICS,
+		WAND	12			# DISENGAGE OPTICS DAP, SIVB IN J SEQUENCE
+						# START, AND SIVB CUTOFF BIT.
+
+		CS	OCT600			# CLEAR UNUSED BITS
+		EXTEND
+		WAND	13
+
+		TC	INITSUB
+
+		TC	CLEARMRK
+
+		TC	DOWNFLAG
+		ADRES	STIKFLAG
+		
+# Page 200
+		TC	BANKCALL
+		CADR	UPACTOFF		# TURN OFF UPLINK ACTIV LIGHT
+		
+		TC	DOWNFLAG
+		ADRES	VHFRFLAG
+		TC	DOWNFLAG
+		ADRES	R21MARK
+		
+		CCS	MMNUMBER		# IS THIS A P00H REQUEST
+		TCF	NOUVEAU			# NO, PICK UP NEW PROGRAM
+		
+		COUNT	04/P00
+		
+P00H		TC	RELDSP			# RELEASE DISPLAY SYSTEM
+		CAF	PRIO5			# SET VARIABLE RESTART REGISTER FOR P00.
+		TS	PHSPRDT2	
+		
+		INHINT
+		
+		CS	NODOBIT			# TURN OFF NODOFLAG.
+		MASK	FLAGWRD2
+		TS	FLAGWRD2
+		
+		CA	FIVE			# SET 2.5 RESTART FOR STATEINT1
+		TS	L
+		COM
+		DXCH	-PHASE2
+		
+		CS	BIT7-8			# RESET IMUSE + KILL P20 BY TURNING OFF
+		MASK	FLAGWRD0
+		TS	FLAGWRD0		#			 RENDFLG
+		
+		CAF	DNLADP00
+
+		COUNT	04/V37
+
+SEUDOP00	TS	DNLSTCOD		# SET UP APPROPRIATE DOWNLIST CODE
+						# (OLD ONE WILL BE FINISHED FIRST)
+
+		CS	OCT01120		# TURN OFF TRACK, TARG1, UPDATE FLAGS
+		TS	EBANKTEM
+		MASK	FLAGWRD1
+		TS	FLAGWRD1
+		
+GROUPKIL	TC	IBNKCALL		# KILL GROUPS 3,5,6
+		CADR	V37KLEAN
+
+		CCS	MMNUMBER		# IS IT P00H
+		TCF	RENDV00			# NO
+# Page 201
+		TC	IBNKCALL
+		CADR	P00KLEAN		# REDUNDANT EXCEPT FOR GROUP 4.
+		
+GOMOD		CA	MMNUMBER
+		TS	MODREG
+		
+GOGOPROG	TC	POSTJUMP
+		CADR	GOPROG2
+		
+RENDV00		CS	MMNUMBER		# IS NEW PROG = 20
+		AD	OCT24			# 20
+		EXTEND
+		BZF	RENDN00			# YES
+		TCF	P00FIZZ
+RENDN00		CS	MMNUMBER
+		AD	MODREG
+		EXTEND
+		BZF	KILL20	
+		
+		CA	FLAGWRD0		# IS RENDZVOO FLAG SET
+		MASK	RNDVZBIT
+		CCS	A
+		TCF	STATQUO
+
+P00FIZZ		CAF	RNDVZBIT
+		MASK	FLAGWRD0
+		CCS	A
+		TCF	REV37
+KILL20		EXTEND				# NO, KILL GROUPS 1 + 2
+		DCA	NEG0
+		DXCH	-PHASE1
+		
+		EXTEND
+		DCA	NEG0
+		DXCH	-PHASE2
+		
+REV37		CAF	V37QCAD			# SET RESTART POINT
+		TS	TEMPFLSH
+		
+		TCF	GOGOPROG
+		
+		
+STATQUO		CS	FLAGWRD1		# SET TRACKFLAG AND UPDATE FLAG
+		MASK	OCT120	
+		ADS	FLAGWRD1
+		
+		EXTEND				# KILL GROUP 4
+		DCA	NEG0
+		DXCH	-PHASE4
+
+# Page 202
+		TCF	GOMOD
+
+NOUVEAU		CAF	RNDVZBIT	
+		MASK	FLAGWRD0
+		CCS	A
+		TCF	+3		
+		TC	DOWNFLAG		# NO, RESET IMUINUSE FLAG
+		ADRES	IMUSE			# BIT 8 FLAG 0
+	+3	INDEX	MINDEX
+		CAF	DNLADMM1		# OBTAIN NEW DOWNLIST ADDRESS
+
+		INHINT
+		TCF	SEUDOP00
+		
+V37NONO		TC	FALTON			# COME HERE IF MM REQUESTED DOESN'T EXIST
+		TCF	V37BAD
+		
+OCT00010	EQUALS	BIT4
+V37XEQ		INHINT
+		INDEX	MINDEX
+		CAF	PREMM1		
+		TS	MMTEMP			# OBTAIN PRIORITY BITS 15-11
+		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
+		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		# PHSBRDT1)
+
+# Page 203
+# FOR SUNDISK ONLY
+		TC	RELDSP			# RELEASE DISPLAY
+		TC	ENDOFJOB		# AND EXIT
+		
+INITSUB		EXTEND
+		QXCH	MPAC	+1
+		
+		CAF	EBANK6			# SET E6 FOR DEADBAND CODING
+		TS	EBANK			# WILL BE RESET IN STARTSB2
+		INHINT
+		TC	STOPRATE
+		
+		CA	FLAGWRD9		# RESTORE DEADBAND
+		MASK	MAXDBBIT
+		CCS	A
+		TCF	SETMAXER		# MAX DE SELECTED
+		TC	BANKCALL		# MIN DE SELECTED
+		CADR	SETMINDB
+		TCF	RAKE
+SETMAXER	TC	BANKCALL
+		CADR	SETMAXDB
+		
+RAKE		CAF	ELEVEN			# THIS PART CLEARS FLAGWORD BITS.
+	+1	TS	MPAC			# LOOP COMES HERE
+		INDEX	MPAC
+		CS	FLAGTABL
+		INDEX	MPAC
+		MASK	FLAGWRD0
+		INDEX	MPAC			# PUT REVISED FLAGWORD BACK.
+		TS	FLAGWRD0
+		CCS	MPAC
+		TCF	RAKE	+1		# GET THE NEXT FLAGWORD
+		RELINT
+		
+		TC	UPFLAG			# NOW SET IMPULSW
+		ADRES	IMPULSW
+		
+		CA	NEGONE
+		TS	OPTIND
+		TC	MPAC	+1		# RETURN FROM INITSUB
+		
+FLAGTABL	OCT	0
+		OCT	00040			# IDLEFAIL
+		OCT	06000			# P21FLAG, STEERSW
+		OCT	0
+		OCT	0
+		OCT	04140			# V59FLAG, ENGONFLG, 3AXISFLG
+		OCT	10000			# STRULLSW
+		OCT	16000			
+		OCT	0
+# Page 204
+		OCT	42000			# SWTOVER, V94FLAG
+		OCT	0
+		OCT	0
+		
+		SETLOC	VAC5LOC
+		BANK
+VAC5STOR	CA	ZERO			# INITIALIZE INDEX REGISTERS
+		TS	ITEMP1
+		TS	ITEMP2
+
+V5LOOP1		EXTEND				# LOOP TO STORE LOCS, BANKSETS, AND PRIOS.
+		INDEX	ITEMP1
+		DCA	LOC
+		INDEX	ITEMP2
+		DXCH	VAC5
+
+		INDEX	ITEMP1
+		CA	PRIORITY
+		INDEX	ITEMP2
+		TS	VAC5 +2
+
+		CS	ITEMP2			# HAVE WE STORED THEM ALL?
+		AD	EIGHTEEN
+		EXTEND
+		BZF	V5OUT1			# YES, GET PHASE INFORMATION.
+
+		CA	TWELVE			# NO, INCREMENT INDEXES AND LOOP.
+		ADS	ITEMP1
+		CA	THREE
+		ADS	ITEMP2
+		TCF	V5LOOP1
+
+		EBANK=	PHSNAME1
+V5OUT1		CA	EBANK3			# PHSNAME REGISTERS ARE IN EBANK3.
+		TS	EBANK
+
+		CA	ELEVEN			# GET PHASE 2CADRS.
+		TC	GENTRAN
+		ADRES	PHSNAME1
+		ADRES	VAC5 +21D
+
+		CA	ZERO			# NOW INITIALIZE INDEXES AGAIN.
+		TS	ITEMP1
+		TS	ITEMP2
+
+V5LOOP2		INDEX	ITEMP1			# LOOP TO GET PHASE TABLES.
+		CA	PHASE1
+		INDEX	ITEMP2
+		TS	VAC5 +33D
+
+# Page 205
+		CS	ITEMP2			# DO WE HAVE THEM ALL?
+		AD	FIVE
+		EXTEND
+		BZF	V5OUT2			# YES, GO FINISH UP.
+
+		CA	TWO			# NO, INCREMENT INDEXES AND LOOP.
+		ADS	ITEMP1
+		INCR	ITEMP2
+		TCF	V5LOOP2
+
+V5OUT2		CA	MPAC +3
+		TS	VAC5 +39D
+
+		EXTEND
+		DCA	NEWLOC
+		DXCH	VAC5 +40D
+
+		CA	NEWJOB
+		TS	VAC5 +22D
+		
+		CA	NEWPRIO
+		TS	VAC5 +26D
+
+		TC	SWRETURN
+
+EIGHTEEN	OCT	22
+		SETLOC	VERB37
+		BANK
+
+NEG7		EQUALS	OCT77770
+
+OCT44571	OCT	44571			# CONSTANTS TO CLEAR CHANNEL BITS IN V37
+OCT600		OCT	600
+		EBANK=	PACTOFF
+P00DAPAD	2CADR	T5IDLOC
+
+MMTEMP		EQUALS	PHSPRDT3
+BASETEMP	EQUALS	TBASE4
+BIT7-8		OCT	300
+OCT01120	OCT	01120
+
+V37QCAD		CADR	V37XEQ +3
+R00AD		CADR	DUMMYAD
+		EBANK=	DAPDATR1
+RCSADDR4	2CADR	RCSATT
+
+3.1SEC		OCT	37312			# 2.5 + 0.6 SEC
+
+# 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,
+# Page 206
+# 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
+
+FCADRMM1	EQUALS
+		FCADR	P79
+		FCADR	P78
+		FCADR	P77
+		FCADR	P76
+		FCADR	P75
+		FCADR	P74
+		FCADR	P73
+		FCADR	P72
+		FCADR	P62
+		FCADR	P61
+		FCADR	P54
+		FCADR	P53
+		FCADR	PROG52
+		FCADR	P51
+		FCADR	P47CSM
+		FCADR	P41CSM
+		FCADR	P40CSM
+		FCADR	P39
+		FCADR	P38
+		FCADR	P37
+		FCADR	P35
+		FCADR	P34
+		FCADR	P33
+		FCADR	P32
+		FCADR	P31
+		FCADR	P30
+		FCADR	P23
+		FCADR	PROG22
+		FCADR	PROG21
+		FCADR	PROG20
+		FCADR	P17
+		FCADR	P06
+		FCADR	GTSCPSS1			# GYROCOMPASS STANDARD LEAD IN.
+
+# THE PREMM TABLE CONTAINS THE E-BANK, MAJOR MODE, AND PRIORITY
+# INFORMATION, IT IS IN THE FOLLOWING FORM,
+#
+#	PPP PPE EEM MMM MMM
+#
+# Page 207
+#	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
+
+PREMM1		EQUALS
+		OCT	27117		# MM 79		EBANK 4		PRIO 13
+		OCT	27116		# MM 78		EBANK 4		PRIO 13 (original says PR23 13)
+		OCT	27115		# MM 77		EBANK 4		PRIO 13
+		OCT	27714		# MM 76		EBANK 4		PRIO 13
+		OCT	27113		# MM 75		EBANK 4		PRIO 13
+		OCT	27112		# MM 74		EBANK 4		PRIO 13
+		OCT	27111		# MM 73		EBANK 4		PRIO 13
+		OCT	27110		# MM 72		EBANK 4		PRIO 13
+		OCT	27476		# MM 62		EBANK 6		PRIO 13
+		OCT	27475		# MM 61		EBANK 6		PRIO 13
+		OCT	27266		# MM 54		EBANK 5		PRIO 13
+		OCT	27265		# MM 53		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	27451		# MM 41		EBANK 6		PRIO 13
+		OCT	27450		# MM 40		EBANK 6		PRIO 13
+		OCT	27047		# MM 39		EBANK 4		PRIO 13
+		OCT	27046		# MM 38		EBANK 4		PRIO 13
+		OCT	27645		# MM 37		EBANK 7		PRIO 13
+		OCT	27043		# MM 35		EBANK 4		PRIO 13
+		OCT	27042		# MM 34		EBANK 4		PRIO 13
+		OCT	27041		# MM 33		EBANK 4		PRIO 13
+		OCT	27040		# MM 32		EBANK 4		PRIO 13
+		OCT	27637		# MM 31		EBANK 7		PRIO 13
+		OCT	27636		# MM 30		EBANK 7		PRIO 13
+		OCT	27227		# MM 23		EBANK 5		PRIO 13
+		OCT	27226		# MM 22		EBANK 5		PRIO 13
+		OCT	27025		# MM 21		EBANK 4		PRIO 13
+		OCT	27424		# MM 20		EBANK 6		PRIO 13
+		OCT	27021		# MM 17		EBANK 6		PRIO 13
+		OCT	27006		# MM 06		EBANK 4		PRIO 13
+		OCT	41201		# MM 01		EBANK 5		PRIO 20
+		
+# Page 208
+# THE FOLLOWING LIST IS FOR THE PURPOSE OF VERIFYING THAT THE EBA
+
+		EBANK=	TIG		# EBANK SETTING REQUIRED BY MM 76
+		EBANK=	KT		# EBANK SETTING REQUIRED BY MM 75
+		EBANK=	SUBEXIT		# EBANK SETTING REQUIRED BY MM 74
+		EBANK=	SUBEXIT		# EBANK SETTING REQUIRED BY MM 73
+		EBANK=	SUBEXIT		# EBANK SETTING REQUIRED BY MM 72
+		EBANK=	AOG		# EBANK SETTING REQUIRED BY MM 62
+		EBANK=	AOG		# EBANK SETTING REQUIRED BY MM 61
+		EBANK=	BESTI		# EBANK SETTING REQUIRED BY MM 54
+		EBANK=	STARIND		# EBANK SETTING REQUIRED BY MM 53
+		EBANK=	BESTI		# EBANK SETTING REQUIRED BY MM 52
+		EBANK=	STARIND		# EBANK SETTING REQUIRED BY MM 51
+		EBANK=	P40TMP		# EBANK SETTING REQUIRED BY MM 47
+		EBANK=	DAPDATR1	# EBANK SETTING REQUIRED BY MM 41
+		EBANK=	KMPAC		# EBANK SETTING REQUIRED BY MM 40
+		EBANK=	KT		# EBANK SETTING REQUIRED BY MM 35
+		EBANK=	SUBEXIT		# EBANK SETTING REQUIRED BY MM 34
+		EBANK=	SUBEXIT		# EBANK SETTING REQUIRED BY MM 33
+		EBANK=	SUBEXIT		# EBANK SETTING REQUIRED BY MM 32
+		EBANK=	+MGA		# EBANK SETTING REQUIRED BY MM 30
+		EBANK=	LANDMARK	# EBANK SETTING REQUIRED BY MM 23
+		EBANK=	MARKINDX	# EBANK SETTING REQUIRED BY MM 22
+		EBANK=	WHOCARES	# EBANK SETTING REQUIRED BY MM 21
+		EBANK=	ESTROKER	# EBANK SETTING REQUIRED BY MM 20
+		EBANK=	TIME2SAV	# EBANK SETTING REQUIRED BY MM 06
+		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)
+#		THAT CAN BE CALLED FROM THE KEYBOARD MINUS ONE)
+
+EPREMM1		EQUALS			# END OF PREMM1 TABLE
+		SETLOC	PREMM1		# THIS CODING WILL AUTOMATICALLY CHANGE
+NO.MMS		=MINUS	EPREMM1		# THE "NOV37MM" CONSTANT AS ENTRIES ARE
+		SETLOC	VERB37		# INSERTED(IN) OR DELETED(FROM) THE
+		BANK			# "PREMM1" TABLE.
+
+NOV37MM		ADRES	NO.MMS	-1	# ITEMS IN "PREMM1" TABLE - 1.  *DON'T MOVE*
+
+DNLADMM1	EQUALS
+		ADRES	RENDEZVU	# P79
+		ADRES	RENDEZVU	# P78
+		ADRES	RENDEZVU	# P77
+		ADRES	RENDEZVU	# P76
+		ADRES	RENDEZVU	# P75
+		ADRES	RENDEZVU	# P74
+		ADRES	RENDEZVU	# P73
+# Page 209
+		ADRES	RENDEZVU	# P72
+		ADRES	ENTRYUPD	# P62
+		ADRES	POWERED		# P61
+		ADRES	COSTALIN
+		ADRES	COSTALIN
+		ADRES	COSTALIN	# P52
+		ADRES	COSTALIN	# P51
+		ADRES	POWERED		# P47
+		ADRES	POWERED		# P41
+		ADRES	POWERED		# P40
+		ADRES	RENDEZVU	# P39
+		ADRES	RENDEZVU	# P38
+		ADRES	RENDEZVU	# P37
+		ADRES	RENDEZVU	# P35
+		ADRES	RENDEZVU	# P34
+		ADRES	RENDEZVU	# P33
+		ADRES	RENDEZVU	# P32
+		ADRES	RENDEZVU
+		ADRES	RENDEZVU	# P30
+		ADRES	RENDEZVU	# P23
+		ADRES	P22DNLST	# P22
+		ADRES	RENDEZVU	# P21
+		ADRES	RENDEZVU	# P20
+		ADRES	RENDEZVU	# P17
+		ADRES	COSTALIN	# P06
+		ADRES	COSTALIN	# P01
+
+DNLADP00	=	ZERO
+COSTALIN	=	0
+ENTRYUPD	=	1
+RENDEZVU	=	2
+POWERED		=	3
+
+P22DNLST	=	4
+
+# ORBITAL INTEGRATION CONSTANTS
+
+# THESE CONSTANTS ARE USED IN COMPUTING THE SETTING OF MIDFLAG.
+
+RMM		2DEC	2538.09 E3 B-27	# 800 KM ABOVE LUNAR SURFACE
+
+RME		2DEC	7178165 B-29	# 800 KM ABOVE EQ. RADIUS
+
+		BANK	13
+		SETLOC	INTINIT
+		BANK
+		
+		COUNT*	$$/INTIN
+		
+		EBANK=	RRECTCSM
+		
+STATEUP		SET	BOF		# EXTRAPOLATE CM STATE VECTOR
+			VINTFLAG
+# Page 210
+			ORBWFLAG	# ALSO 6X6 W-MATRIX IF VALID
+			+3		# 	FOR ORBITAL NAVIGATION
+		SET	
+			DIM0FLAG
+		CLEAR	CALL
+			PRECIFLG
+			INTEGRV	
+		BON	DLOAD
+			SURFFLAG
+			STATEND
+			TETCSM
+		STCALL	TDEC1
+			INTSTALL
+		CLEAR	CALL		# EXTRAPOLATE LM STATE VECTOR
+			VINTFLAG
+			SETIFLGS	# 	AND 6X6 W-MATRIX IF VALID
+		BOF	SET	
+			RENDWFLG	#	FOR RENDEZVOUS NAVIGATION
+			+2
+			DIM0FLAG
+		SET	CALL
+			PRECIFLG
+			INTEGRV
+STATEND		CLRGO
+			NODOFLAG
+			ENDINT
+			
+# THIS VINT IS CALLED BY MIDTOAV1 AND 2
+			
+THISVINT	SET	RVQ
+			VINTFLAG
+			
diff --git a/GIMBAL_LOCK_AVOIDANCE.s b/GIMBAL_LOCK_AVOIDANCE.s
new file mode 100644
index 0000000..779d4c7
--- /dev/null
+++ b/GIMBAL_LOCK_AVOIDANCE.s
@@ -0,0 +1,99 @@
+# Copyright:	Public domain.
+# Filename:	GIMBAL_LOCK_AVOIDANCE.agc
+# Purpose:	Part of the source code for Comanche, build 055.
+#		It is part of the source code for the Command Module's (CM)
+#		Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:	yaYUL
+# Reference:	pp. 412-413
+# Contact:	Onno Hommes <ohommes@cmu.edu>.
+# Website:	www.ibiblio.org/apollo.
+# Mod history:	05/07/09 OH	Transcription Batch 1 Assignment 
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#	Assemble revision 055 of AGC program Comanche by NASA
+#	2021113-051.  April 1, 1969.  
+#
+#	This AGC program shall also be referred to as Colossus 2A
+#
+#	Prepared by
+#			Massachussets Institute of Technology
+#			75 Cambridge Parkway
+#			Cambridge, Massachusetts
+#
+#	under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further information.
+# Please report any errors to info@sandroid.org.
+
+
+# Page 412
+		BANK	15		
+		SETLOC	KALCMON1
+		BANK
+		
+		EBANK=	BCDU
+		
+# DETECTING GIMBAL LOCK
+LOCSKIRT	EQUALS	WCALC
+WCALC		LXC,1	DLOAD*
+			RATEINDX
+			ARATE,1	
+		SR4	CALL		# COMPUTE THE INCREMENTAL ROTATION MATRIX
+			DELCOMP		# DEL CORRESPONDING TO A 1 SEC ROTATION
+					# ABOUT COF
+		DLOAD*	VXSC
+			ARATE,1
+			COF
+		MXV
+			QUADROT
+		STODL	BRATE	
+			AM
+		DMP	DDV*
+			ANGLTIME
+			ARATE,1
+		SR
+			5
+		STOVL	TM
+			BRATE
+		VXSC
+			BIASCALE
+		STORE	BIASTEMP	# ATTITUDE ERROR BIAS TO PREVENT OVERSHOOT
+					# IN SYSTEM
+		SETGO			# STATE SWITCH CALCMAN2 (43D)
+			CALCMAN2	# 0(OFF) = BYPASS STARTING PROCEDURE
+			NEWANGL +1	# 1(ON) = START MANEUVER
+			
+			
+ARATE		2DEC	.0022222222	# = .05 DEG/SEC
+
+		2DEC	.0088888889	# = .2 DEG/SEC
+		
+		2DEC	.0222222222	# = .5 DEG/SEC
+		
+		2DEC	.0888888889	# = 2 DEG/SEC                $22.5 DEG/SEC
+		
+ANGLTIME	2DEC	.000190735	# = 100B - 19
+
+					# MANEUVER ANGLE TO MANEUVER TIME
+QUADROT		2DEC	.1		# ROTATION MATRIX FROM S/C AXES TO CONTROL
+
+# Page 413
+		2DEC	0		# AXES (X ROT = -7.25 DEG)
+		
+		2DEC	0
+		
+		2DEC	0
+		
+		2DEC	.099200		# =(.1)COS7.25
+		
+		2DEC	-.012620	# =-(.1)SIN7.25
+		
+		2DEC	0
+		
+		2DEC	.012620		# (.1)SIN7.25
+		
+		2DEC	.099200		# (.1)COS7.25
+		
+BIASCALE	2DEC	.0002543132	# = (450/180)(1/0.6)(1/16384)
diff --git a/GROUND_TRACKING_DETERMINATION_PROGRAM.s b/GROUND_TRACKING_DETERMINATION_PROGRAM.s
new file mode 100644
index 0000000..bc624d7
--- /dev/null
+++ b/GROUND_TRACKING_DETERMINATION_PROGRAM.s
@@ -0,0 +1,204 @@
+# Copyright:	Public domain.
+# Filename:	GROUND_TRACKING_DETERMINATION_PROGRAM.agc
+# Purpose:	Part of the source code for Comanche, build 055.
+#		It is part of the source code for the Command Module's (CM)
+#		Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:	yaYUL
+# Reference:	pp. 456-459
+# Contact:	Onno Hommes <ohommes@cmu.edu>.
+# Website:	www.ibiblio.org/apollo.
+# Mod history:	2009-05-07 OH	Transcription Batch 1 Assignment 
+#		2009-05-20 RSB	Corrected a couple of DIMOFLAG to DIM0FLAG.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#	Assemble revision 055 of AGC program Comanche by NASA
+#	2021113-051.  April 1, 1969.  
+#
+#	This AGC program shall also be referred to as Colossus 2A
+#
+#	Prepared by
+#			Massachussets Institute of Technology
+#			75 Cambridge Parkway
+#			Cambridge, Massachusetts
+#
+#	under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further information.
+# Please report any errors to info@sandroid.org.
+
+# Page 456
+# GROUND TRACKING DETERMINATION PROGRAM -- P21
+#
+# PROGRAM DESCRIPTION
+#	MOD NO -- 1
+#	MOD BY -- N. M. NEVILLE
+#
+# FUNCTIONAL DESCRIPTION --
+#	TO PROVIDE THE ASTRONAUT DETAILS OF THE LM OR CSM GROUND TRACK WITHOUT
+#	THE NEED FOR GROUND COMMUNICATION (REQUESTED BY DSKY).
+#
+# CALLING SEQUENCE --
+#	ASTRONAUT REQUEST THROUGH DSKY V37E21E
+#
+# SUBROUTINES CALLED --
+#	GOPERF4
+#	GOFLASH
+#	THISPREC
+#	OTHPREC
+#	LAT-LONG
+#
+# NORMAL EXIT MODES --
+#	ASTRONAUT REQUEST THROUGH DSKY TO TERMINATE PROGRAM V34E
+#
+# ALARM OR ABORT EXIT MODES --
+#	NONE
+#
+# OUTPUT --
+#	OCTAL DISPLAY OF OPTION CODE AND VEHICLE WHOSE GROUND TRACK IS TO BE
+#	COMPUTED
+#		OPTION CODE	00002
+#		THIS		00001
+#		OTHER		00002
+#	DECIMAL DISPLAY OF TIME TO BE INTEGRATED TO HOURS , MINUTES , SECONDS
+#	DECIMAL DISPLAY OF LAT,LONG,ALT
+#
+# ERASABLE INITIALIZATION REQUIRED
+#	AX0	 2DEC	4.652459653 E-5   RADIANS       "68-69 CONSTANTS"
+#	-AY0	 2DEC	2.147535898 E-5   RADIANS
+#	AZ0	 2DEC	.7753206164	  REVOLUTIONS
+# 	FOR LUNAR ORBITS 504LM VECTOR IS NEEDED
+#	504LM	 2DEC	-2.700340600 E-5  RADIANS
+#	504LM _2 2DEC	-7.514128400 E-4  RADIANS
+#	504LM _4 2DEC	_2.553198641 E-4  RADIANS
+#
+#	NONE
+#
+# DEBRIS
+
+# Page 457
+#	CENTRALS -- A,Q,L
+#	OTHER -- THOSE USED BY THE ABOVE LISTED SUBROUTINES
+#	SEE LEMPREC, LAT-LONG
+
+		SBANK=	LOWSUPER	# FOR LOW 2CADR'S.
+
+		BANK	33
+		SETLOC	P20S
+		BANK
+
+		EBANK=	P21TIME
+		COUNT	24/P21
+		
+PROG21		CAF	ONE
+		TS	OPTION2		# ASSUMED VEHICLE IS LM, R2 = 00001
+		CAF	BIT2		#  OPTION 2
+		TC	BANKCALL
+		CADR	GOPERF4
+		TC	GOTOP00H	# TERMINATE
+		TC	+2		# PROCEED VALUE OF ASSUMED VEHICLE OK
+		TC	-5		# R2 LOADED THROUGH DSKY
+P21PROG1	CAF	V6N34		# LOAD DESIRED TIME OF LAT-LONG.
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H	# TERM
+		TC	+2		# PROCEED VALUES OK
+		TC	-5		# TIME LOADED THROUGH DSKY
+		TC	INTPRET
+		DLOAD	
+			DSPTEM1
+		STCALL	TDEC1		# INTEG TO TIME SPECIFIED IN TDEC
+			INTSTALL
+		BON	SET
+			P21FLAG
+			P21CONT		# ON...RECYCLE USING BASE VECTOR
+			VINTFLAG	# OFF..1ST PASS CALC BASE VECTOR
+		SLOAD	SR1
+			OPTION2
+		BHIZ	CLEAR
+			+2		# ZERO..THIS VEHICLE (CM)
+			VINTFLAG	# ONE...OTHER VEHICLE(LM)
+		CLEAR	CLEAR
+			DIM0FLAG
+			INTYPFLG	# PRECISION
+		CALL
+			INTEGRV		# CALCULATE
+		GOTO			# .AND
+			P21VSAVE	# ..SAVE BASE VECTOR
+P21CONT		VLOAD			# RECYCLE..INTEG FROM BASE VECTOR			
+			P21BASER
+# Page 458		
+		STOVL	RCV		# ..POS
+			P21BASEV
+		STODL	VCV		# ..VEL
+			P21TIME
+		STORE	TET		# ..TIME
+		CLEAR	CLEAR
+			DIM0FLAG
+			MOONFLAG
+		SLOAD	BZE
+			P21ORIG
+			+3		# ZERO = EARTH
+		SET			# ...2 = MOON
+			MOONFLAG
+		CALL
+			INTEGRVS
+P21VSAVE	DLOAD			# SAVE CURRENT BASE VECTOR
+			TAT
+		STOVL	P21TIME		# ..TIME
+			RATT1
+		STOVL	P21BASER	# ..POS B-29 OR B-27
+			VATT1
+		STORE	P21BASEV	# ..VEL B-7  OR B-5
+		ABVAL	SL*
+			0,2
+		STOVL	P21VEL		# /VEL/ FOR N73 DSP
+			RATT
+		UNIT	DOT
+			VATT		# U(R).(V)
+		DDV	ASIN		# U(R).U(V)
+			P21VEL
+		STORE	P21GAM		# SIN-1 U(R).U(V), -90 TO +90
+		SXA,2	SET
+			P21ORIG		# 0 = EARTH  2 = MOON
+			P21FLAG
+P21DSP		CLEAR	SLOAD		# GENERATE DISPLAY DATA
+			LUNAFLAG
+			X2
+		BZE	SET
+			+2		# 0 = EARTH
+			LUNAFLAG
+		VLOAD
+			RATT
+		STODL	ALPHAV
+			TAT
+		CLEAR	CALL
+			ERADFLAG
+			LAT-LONG
+		DMP			# MPAC = ALT, METERS B-29
+			K.01
+		STORE	P21ALT		# ALT/100 FOR N73 DSP
+# Page 459		
+		EXIT
+		CAF	V06N43		# DISPLAY LAT,LONG,ALT
+		TC	BANKCALL	# LAT,LONG = REVS B0 BOTH EARTH/MOON
+		CADR	GOFLASH		# ALT = METERS B-29  BOTH EARTH/MOON
+		TC	GOTOP00H	# TERM
+		TC	GOTOP00H
+		TC	INTPRET		# V32E RECYCLE
+		DLOAD	DAD
+			P21TIME
+			600SEC		# 600 SECONDS OR 10 MIN
+		STORE	DSPTEM1
+		RTB	
+			P21PROG1
+	
+600SEC		2DEC	60000		# 10 MIN
+
+P21ONENN	OCT	00001		# NEEDED TO DETERMINE VEHICLE
+		OCT	00000		# TO BE INTEGRATED
+V06N43		VN	00643
+V6N34		VN	00634
+K.01		2DEC	.01
+
diff --git a/HeaderTemplate.s b/HeaderTemplate.s
new file mode 100644
index 0000000..493c932
--- /dev/null
+++ b/HeaderTemplate.s
@@ -0,0 +1,28 @@
+# Copyright:	Public domain.
+# Filename:	XXXXXXXX.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	XXXX-XXXX
+# Mod history:	2009-05-XX XXX	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
diff --git a/IMU_CALIBRATION_AND_ALIGNMENT.s b/IMU_CALIBRATION_AND_ALIGNMENT.s
new file mode 100644
index 0000000..7a49ef3
--- /dev/null
+++ b/IMU_CALIBRATION_AND_ALIGNMENT.s
@@ -0,0 +1,1399 @@
+# Copyright:	Public domain.
+# Filename:	IMU_CALIBRATION_AND_ALIGNMENT.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 423-455
+# Contact:      Onno Hommes <ohommes@cmu.edu>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-10 OH	Batch 1 Assignment Comanche Transcription
+#		2009-05-20 RSB	Corrections: P00D00H -> P00DOOH, definition
+#				of 25DECML fixed.
+#		2009-05-23 RSB	At SPECSTS, corrected to PRIO22.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 423
+# NAME --	IMU PERFORMANCE TESTS 2
+#
+# DATE --	MARCH 20, 1967
+#
+# BY --		SYSTEM TEST GROUP 864-6900 EXT. 1274
+#
+# MODNO. --	ZERO
+#
+# FUNCTIONAL DESCRIPTION
+#
+# POSITIONING ROUTINES FOR THE IMU PERFORMANCE TESTS AS WELL AS SOME OF
+# THE TESTS THEMSELVES.  FOR A DESCRIPTION OF THESE SUBROUTINES AND THE
+# OPERATING PROCEDURES (TYPICALLY) SEE STG MEMO 685. THEORETICAL REF. E-1973
+
+		BANK	33
+		SETLOC	IMUCAL
+		BANK
+		
+		EBANK=	POSITON
+IMUTEST		CA	ZERO
+		TS	DRIFTT
+		TS	GEOCOMP1
+		CAF	TESTTIME
+		TS	LENGTHOT
+		TC	COAALIGN		# TAKE CARE OF DRIFT FLAG
+		CAF	1SECX
+		TS	1SECXT1
+		
+		CA	OC14400
+		TS	1/PIPADT			
+GUESS		TC	INTPRET			# CALCULATE -COS LATITUDE AND SIN LATITUDE
+		CALL	
+			LATAZCHK
+		COS	DCOMP
+		SL1
+		STODL	WANGI
+			LATITUDE
+		SIN	SL1
+		STORE	WANGO
+		EXIT
+GEOIMUTT	TC	BANKCALL		# GYROCOMPASS COMES IN HERE
+		CADR	IMUZERO
+		TC	IMUSTLLG
+IMUBACK		CA	ZERO
+		TS	NDXCTR
+		TS	TORQNDX
+		TS	TORQNDX	+1
+NBPOSPL		CA	DEC17
+		TS	ZERONDX1
+		CA	XNBADR
+# Page 424
+		TC	ZEROING
+		CA	HALF
+		TS	XNB
+		TC	INTPRET
+		DLOAD	SIN
+			AZIMUTH
+		STORE	YNB	+2
+		STODL	ZNB	+4
+			AZIMUTH
+		COS
+		STORE	YNB	+4
+		DCOMP
+		STORE	ZNB	+2
+		EXIT
+		TC	CHECKMM
+		MM	03			# SEE IF IN OPTICAL VERIFICATION
+		TCF	+2			# NO
+		TCF	SETNBPOS +1		# YES
+		TC	INTPRET
+		CALL
+			CALCGA
+		EXIT
+		TC	BANKCALL
+		CADR	IMUCOARS
+		CAF	GLOKFBIT		# IF GLOKFAIL SET, GIMBAL LOCK
+		MASK	FLAGWRD3
+		EXTEND
+		BZF	+2
+		INCR	NDXCTR			# +1 IF IN GIMBAL LOCK, OTHERWISE 0
+		TC	DOWNFLAG		# RESET GIMBAL LOCK FLAG
+		ADRES	GLOKFAIL		# BIT 14 FLAG 3
+		TC	IMUSTLLG
+		CCS	NDXCTR			# IF ONE GO AND DO A PIPA TEST ONLY
+		TC	PIPACHK			# ALIGN AND MEARSUE VERTICAL PIPA RATE
+		TC	BANKCALL
+		CADR	IMUFINE
+		TC	IMUSTLLG
+		EXTEND
+		DCA	PERFDLAY
+		TC	LONGCALL
+		SBANK=	LOWSUPER		# RSB 2004, OH 2009: Ask Ron 
+		EBANK=	POSITON
+		2CADR	GOESTIMS
+		
+		CA	ESTICADR
+		TC	JOBSLEEP
+GOESTIMS	CA	ESTICADR
+		TC	JOBWAKE
+		TC	TASKOVER
+ESTICADR	CADR	ESTIMS
+# Page 425
+TORQUE		CA	ZERO
+		TS	DSPTEM2
+		CA	DRIFTI
+		TS	DSPTEM2	+1
+		INDEX	POSITON
+		TS	SOUTHDR	-1
+		TC	SHOW
+		
+PIPACHK		INDEX	NDXCTR		# PIPA TEST
+		TC	+1
+		TC	EARTHR*
+		CA	DEC57	
+		TS	LENGTHOT
+		CA	ONE
+		TS	RESULTCT
+		CA	ZERO
+		INDEX	PIPINDEX
+		TS	PIPAX
+		TS	DATAPL
+		TS	DATAPL +4
+		TC	CHECKG		# PIP PULSE CATCHING ROUTINE
+		INHINT
+		CAF	TWO
+		TC	TWIDDLE
+		EBANK=	XSM
+		ADRES	PIPATASK
+		TC	ENDOFJOB
+PIPATASK	EXTEND
+		DIM	LENGTHOT
+		CA	LENGTHOT
+		EXTEND
+		BZMF	STARTPIP
+		CAF	BIT10
+		TC	TWIDDLE
+		EBANK=	XSM
+		ADRES	PIPATASK
+STARTPIP	CAF	PRIO20
+		TC	FINDVAC
+		EBANK=	XSM
+		2CADR	PIPJOBB
+		
+		TC	TASKOVER
+		
+PIPJOBB		INDEX	NDXCTR
+		TC	+1
+		TC	EARTHR*
+		CA	LENGTHOT
+		EXTEND
+		BZMF	+2
+		TC	ENDOFJOB
+		CA	FIVE
+# Page 426
+		TS	RESULTCT
+		TC	CHECKG
+		EXTEND
+		DCS	DATAPL
+		DAS	DATAPL 	+4
+		
+		TC	INTPRET
+		DLOAD	DSU
+			DATAPL	+6
+			DATAPL 	+2
+		BPL	CALL
+			AINGOTN
+			OVERFFIX
+AINGOTN		PDDL	DDV
+			DATAPL 	+4
+		SL4	DMPR
+			DEC585		# DEC585 HAS BEEN REDEVINED FOR LEM
+		RTB
+			SGNAGREE
+		STORE	DSPTEM2
+		EXIT
+		CCS	NDXCTR
+		TC	COAALIGN	# TAKE PLATFORM OUT OF GIMBAL LOCK
+		TC	SHOW
+VERTDRFT	CA	3990DEC		# ABOUT 1 HOUR VERTICAL DRIFT TEST
+		TS	LENGTHOT
+		INDEX	POSITON
+		CS	SOUTHDR -2
+		TS	DRIFTT
+		CA	XSM	+4	# 0 IF POSN 4
+		EXTEND
+		BZF	PON2
+PON4		CS	BIT5		# OFFSET PLATFORM
+		ADS	ERCOMP1	+2
+		CA	BIT5
+		ADS	ERCOMP1
+		TCF	PONG
+PON2		CS	BIT5	
+		ADS	ERCOMP1 +2
+		CA	BIT5
+		ADS	ERCOMP1 +4
+PONG		TC	EARTHR*
+		CA	ZERO		# ALLOW ONLY SOUTH GYRO EARTH RATE COMPENS
+		TS	ERVECTOR
+		TS	ERVECTOR +1
+GUESS1		CAF	POSMAX
+		TS	TORQNDX
+		TS	TORQNDX +1
+		CA	CDUX
+		TS	LOSVEC
+# Page 427
+		TC	ESTIMS
+VALMIS		CA	DRIFTO
+		TS	DSPTEM2 +1
+		CA	ZERO
+		TS	DSPTEM2
+		TC	SHOW
+		
+ENDTEST1	TC	DOWNFLAG	# IMU NOT IN USE
+		ADRES	IMUSE		# BIT 8 FLAG 0
+		CS	ZERO
+		TC	NEWMODEX +3
+		TC	BANKCALL
+		CADR	MKRELEAS
+		TC	ENDEXT
+# Page 428
+		
+OVERFFIX	DAD	DAD
+			DPPOSMAX
+			ONEDPP
+		RVQ
+		
+COAALIGN	EXTEND			# COARSE ALIGN SUBROUTINE
+		QXCH	QPLACE
+		CA	ZERO
+		TS	THETAD
+		TS	THETAD +1
+		TS	THETAD +2
+		TC	BANKCALL
+		CADR	IMUCOARS
+		TC	BANKCALL
+		CADR	IMUSTALL
+		TC	SOMERR2
+		TC	QPLACE
+
+IMUSTLLG	EXTEND
+		QXCH	QPLACE
+		TC	COAALIGN +10
+		
+CHECKG		EXTEND			# PIP PULSE CATCHING ROUTINE
+		QXCH	QPLACE
+		TC	+6
+CHECKG1		RELINT
+		CA	NEWJOB
+		EXTEND
+		BZMF	+6
+		TC	CHANG1
+		INHINT
+		INDEX	PIPINDEX
+		CS	PIPAX
+		TS	ZERONDX
+		INHINT
+		INDEX	PIPINDEX
+		CA	PIPAX
+		AD	ZERONDX
+		EXTEND
+		BZF	CHECKG1
+		INDEX	PIPINDEX
+		CA	PIPAX
+		INDEX	RESULTCT
+		TS	DATAPL
+		TC	FINETIME
+		INDEX	RESULTCT
+		TS	DATAPL +1
+# Page 429
+		INDEX	RESULTCT
+		LXCH	DATAPL +2
+		RELINT
+ENDCHKG		TC	QPLACE
+
+ZEROING		TS	L
+		TCF	+2
+ZEROING1	TS	ZERONDX1
+		CAF	ZERO
+		INDEX	L
+		TS	0
+		INCR	L
+		CCS	ZERONDX1
+		TCF	ZEROING1
+		TC	Q
+
+# Page 430
+		SETLOC	IMUCAL3
+		BANK
+ERTHRVSE	DLOAD	PDDL
+			SCHZEROS	# PD24 = (SIN  (missing)  -COS (missing) 0)(OMEG/MS)
+			LATITUDE
+		COS	DCOMP
+		PDDL	SIN
+			LATITUDE
+		VDEF	VXSC
+			OMEG/MS
+		STORE	ERVECTOR
+		RTB
+			LOADTIME
+		STOVL	TMARK
+			SCHZEROS
+		STORE	ERCOMP1
+		RVQ
+		SETLOC	IMUCAL
+		BANK
+EARTHR		ITA	RTB		# CALCULATES AND COMPENSATES EARTH RATE
+			S2
+			LOADTIME
+		STORE	TEMPTIME
+		DSU	BPL
+			TMARK
+			ERTHR
+		CALL
+			OVERFFIX
+ERTHR		SL	VXSC
+			9D
+			ERVECTOR
+		MXV	VAD
+			XSM
+			ERCOMP1
+		STODL	ERCOMP1
+			TEMPTIME
+		STORE	TMARK
+		AXT,1	RTB
+		ECADR	ERCOMP1
+			PULSEIMU
+		GOTO
+			S2
+			
+EARTHR*		EXTEND
+		QXCH	QPLACES
+		TC	INTPRET
+		CALL
+			EARTHR
+PROUT		EXIT
+		TC	IMUSTLLG
+		TC	QPLACES
+# Page 431
+		
+SHOW		EXTEND
+		QXCH	QPLACE
+SHOW1		CA	POSITON
+		TS	DSPTEM2 +2
+		CA	VB06N98
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	ENDTEST1	# V34
+		TC	QPLACE		# V33
+		TCF	SHOW1
+		
+OC14400		OCT	14400
+3990DEC		=	OMEG/MS
+VB06N98		VN	0698
+TESTTIME	OCT	01602
+DEC17		=	ND1
+OGCPL		ECADR	OGC
+1SECX		=	1SEC
+DEC57		=	VD1
+XNBADR		GENADR	XNB
+XSMADR		GENADR	XSM
+OMEG/MS		2DEC	.24339048
+
+P11OUT		TC	BANKCALL
+		CADR	MATRXJOB	# RETURN TO P11
+		
+		COUNT	02/COMST
+
+		BLOCK	2
+FINETIME	INHINT			# RETURNS WITH INTERRUPT INHIBITED
+		EXTEND
+		READ	LOSCALAR
+		TS	L
+		EXTEND
+		RXOR	LOSCALAR
+		EXTEND
+		BZF	+4
+		EXTEND
+		READ	LOSCALAR
+		TS	L
+	+4	CS	POSMAX
+		AD	L
+		EXTEND
+		BZF	FINETIME +1
+		EXTEND
+		READ	HISCALAR
+		TC Q
+		
+# Page 432
+# PROGRAM NAME:  OPTIMUM PRELAUNCH ALIGNMENT CALIBRATION
+# DATE:  NOVEMBER 2 1966
+# BY:  GEORGE SCHMIDT IL 7-146 EXT. 126
+# MOD NO 3
+#
+# FUNCTIONAL DESCRIPTION
+#
+# THIS SECTON CONSISTS OF PRELAUNCH ALIGNMENT AND GYRO DRIFT TESTS
+# INTEGRATED TOGETHER TO SAVE WORDS.  COMPASS IS COMPLETELY RESTART
+# PROOFED EXCEPT FOR THE FIRST 30 SECONDS OR SO.  PERFORMANCE TESTS OF
+# THE IRIGS IS RESTART PROOFED ENOUGH TO GIVE 75 PERCENT CONFIDENCE THAT
+# IF A RESTART OCCURS THE DATA WILL STILL BE GOOD.  GOOD PRACTICE TO RECYCL
+# WHEN A RESTART OCCURS UNLESS IT HAPPENS NEAR THE END OF A TEST -- THEN WAIT
+# FOR THE DATA TO FLASH.
+#
+# A RESTART IN GYROCOMPASS DURING GYRO TORQUING CAUSES PULSES TO BE LOST.
+# THE PRELAUNCH ALIGNMENT TECHNIQUE IS BASICALLY THE SAME AS IN BLOCK 1
+# EXCEPT THAT IT HAS BEEN SIMPLIFIED IN THE SENSE THAT SMALL ANGLE APPROX.
+# HAVE BEEN USED.  THE DRIFT TESTS USE A UNIQUE IMPLEMENTATION OF THE 
+# OPTIMUM STATISTICAL FILTER.  FOR A DESCRIPTION SEE E-1973.  BOTH OF THESE
+# ROUTINES USE STANDARD SYSTEM TEST LEADIN PROCEDURES.  THE INITIALIZATION
+# PROCEDURE THE DRIFT TESTS IS IN THE JDC'S.  THE INITIALIZATION METHOD
+# FOR GYROCOMPASS IS AN ERAS LOAD THEN A MISSION PHASE CALL.
+# THE COMPASS ALIGNS TO Z DOWN, X DOWNRANGE, HAS THE CAPABILITY
+# CHANGE AZIMUTH WHILE RUNNING, IS COMPENSATED FOR
+# COMPONENT ERRORS, IS CAPABLE OF OPTICAL VERIFICATION (CSM ONLY).
+#
+# COMPASS ERASABLE LOAD REQUIRED
+#
+#	1.	LAUNCHAZ-DP AZIMUTH IN REV FROM NORTH OF XSM DESIRED	(NOM=.2)
+#	2.	LATITUDE-DP-OF LAUNCH PAD
+#	3.	AZIMUTH-DP-OF ZNB OF VEHICLE
+#	4.	IMU COMPENSATION PARAMETERS
+#	5.	AZ AND ELEVATION OF TARGETS 1,2		****OPTIONAL****
+#
+# TO PERFORM AS PART OF COMPASS
+#
+#	1.	OPTICAL VERIFICATION: V 65 E
+#	2.	AXIMUTH CHANGE: V 78 E
+#
+# SUBROUTINES CALLED
+#
+# DURING OPTICAL VERIFICATION (CSM ONLY) ESSENTIALLY ALL OF INFLIGHT ALIGN
+# IS CALLED IN ONE WAY OR ANOTHER.  SEE THE LISTING.
+#
+# NORMAL EXIT
+#
+# DRIFT TESTS.  LENGTHOT GOES TO ZERO-RETURN TO IMU PERF TEST2 CONTROL
+# GYROCOMPASS-MANY, SEE THE LISTING.
+#
+# ALARMS
+#
+# 1600	OVERFLOW IN DRIFT TEST
+# Page 433
+# 1601	BAD IMU TORQUE ABORT
+# 1602	BAD OPTICS DURING VERIFICATION-RETURN TO COMPASS	CSM ONLY
+#
+# OUTPUT
+#
+# DRIFT TESTS:  FLASHING DISPLAYS OF RESULTS-CONTROLLED IN IMU PERF TESTS 2
+# COMPASS-PROGRAM MODE LIGHTS TELL YOU WHAT PHAS OF PROGRAM YOU ARE IN
+#	01	INITIALIZING THE PLATFORM POSITION AND ERASABLE
+#	02	GYROCOMPASSING
+#	03	DOING OPTICAL VERIFICATION (CSM)
+#
+# DEBRIS
+#
+# ALL CENTRALS, ALL OF EBANK XSM
+
+# Page 434
+# MOST OF THE ROUTINES COMMON TO ALIGNMENT AND CALIBRATION APPEAR
+# ON THE NEXT FEW PAGES.
+
+		COUNT	33/P02
+		
+		EBANK=	XSM
+		BANK	33
+		SETLOC	IMUCAL
+		BANK
+
+ESTIMS		TC	2PHSCHNG	# COMES HERE FROM IMU2
+		OCT	00075
+		OCT	00004		# TURN OFF GROUP 4 IF ON
+RSTGTS1		INHINT			# COMES HERE PHASE1 RESTART
+		CA	TIME1
+		TS	GTSWTLT1
+		CAF	ZERO		# ZERO THE PIPAS
+		TS	PIPAX
+		TS	PIPAY
+		TS	PIPAZ
+		RELINT
+		CA	77DECML		# ZERO ALL NECESSARY LOCATIONS
+		TS	ZERONDX1
+		CA	ALXXXZ
+		TC	ZEROING
+		TC	INTPRET
+		SLOAD
+			SCHZEROS
+		STOVL	GCOMPSW -1
+			INTVAL +2	# LOAD SOME INITIAL DRIFT GAINS
+		STOVL	ALX1S
+			SCHZEROS
+		STORE	GCOMP
+		STORE	DELVX		# GCOMPZER SUBROUTINE NO LONGER NEEDED
+		EXIT
+		
+		CCS	GEOCOMP1	# NON ZERO IF COMPASS.
+		TC	+2
+		TC	SLEEPIE	+1
+		TC	INTPRET
+		CALL
+			ERTHRVSE
+		EXIT
+		CA	LENGTHOT	# TIMES FIVE IS THE NUM OF SEC ERECTING
+		TS	ERECTIME
+		
+		TC	NEWMODEX
+		MM	02
+		TC	BANKCALL	# SET UP PIPA FAIL TO CAUSE ISS ALARM
+# Page 435		
+		CADR	PIPUSE		# COMPASS NEVER TURNS THIS OFF
+		TC	ANNNNNN		# END OF FIRST TIME THROUGH
+
+# Page 436
+# COMES HERE AT THE END OF EVERY ITERATION THROUGH DRIFT TEST OR COMPASS
+
+# SET UP WAITLIST SECTION
+SLEEPIE		TS	LENGTHOT	# TEST NOT OVER-DECREMENT LENGHOT
+		TC	PHASCHNG	# CHANGE PHASE
+		OCT	00135
+		CCS	TORQNDX		# ARE WE DOING VERTDRIFT
+		TC	EARTHR*		# TRUE TORQUE SOUTH GYRO
+WTLISTNT	TC	CHKCOMED	# SEE IF COMPASS OVER
+		TC	SETGWLST
+		TC	ENDOFJOB
+		
+SETGWLST	EXTEND
+		QXCH	MPAC		# CALLED EVERY WAITLIST OR AZIMUTH CHANGE
+		INHINT
+		CS	TIME1
+		AD	GTSWTLT1
+		EXTEND
+		BZMF	+2
+		AD	NEGMAX		# 10 MS ERROR OK
+		AD	1SECXT1		# 1 SEC FOR CALIBRATION, .5 SEC IN COMPASS
+		EXTEND
+		BZMF	RIGHTGTS
+WTGTSMPL	TC	TWIDDLE
+		EBANK=	ALTIM
+		ADRES	ALLOOP
+		TC	MPAC
+RIGHTGTS	CAF	FOUR		# SET UP NEXT WAITLIST-ALLOW SOME TIME
+		TC	WTGTSMPL	# END OF WAITLIST SECTION
+		
+# STORE AND LOAD DATA SECTIONS FOR RESTART PROOFING
+
+25DECML		EQUALS	OCT31
+STOREDTA	CAF	25DECML
+		TS	MPAC
+		INDEX	MPAC
+		CAE	THETAX1
+		INDEX	MPAC
+		TS	RESTARPT
+		CCS	MPAC
+		TCF	STOREDTA +1
+		TC	Q
+
+LOADSTDT	CAF	25DECML
+		TS	MPAC
+		INDEX	MPAC
+		CA	RESTARPT
+		INDEX	MPAC
+
+# Page 437
+		TS	THETAX1
+		CCS	MPAC
+		TCF	LOADSTDT +1
+		TC	Q
+		
+# COMES HERE EVERY ITERATION BY A WAITLIST CALL SET IN SLEEPIE
+		
+ALLOOP		CA	TIME1
+		TS	GTSWTLT1	# STORE TIME TO SET UP NEXT WAITLIST.
+ALLOOP3		CA	ALTIM
+		TS	GEOSAVE1
+		TC	PHASCHNG
+		OCT	00115
+ALLOOP1		CAE	GEOSAVE1
+		TS	ALTIM
+		CCS	A
+		CA	A		# SHOULD NEVER HIT THIS LOCATION
+		TS	ALTIMS
+		CS	A
+		TS	ALTIM
+		CAF	ZERO
+		XCH	PIPAX
+		TS	DELVX
+		CAF	ZERO
+		XCH	PIPAY
+		TS	DELVY
+		CAF	ZERO
+		XCH	PIPAZ
+		TS	DELVZ
+		CAF	19DECML		# 23 OCT
+		TC	NEWPHASE
+		OCT	00005
+SPECSTS		CAF	PRIO22
+		TC	FINDVAC
+		EBANK=	GEOSAVE1
+		2CADR	ALFLT		# START THE JOB
+		
+		TC	TASKOVER
+		
+# Page 438
+# THIS IS PART OF THE JOB DONE EVERY ITERATION
+
+ALFLT		TC	STOREDTA	# STORE DATA IN CASE OF RESTART IN JOB
+		TC	PHASCHNG	# THIS IS THE JOB DONE EVERY ITERATION
+		OCT	00215
+		TCF	+2
+ALFLT1		TC	LOADSTDT	# COMES HERE ON RESTART
+
+		CCS	GEOCOMP1
+		TC	+2
+		TC	NORMLOP
+		TC	CHKCOMED	# SEE IF PRELAUNCH OVER
+		TC	BANKCALL	# COMPENSATION IF IN COMPASS
+		CADR	1/PIPA
+NORMLOP		TC	INTPRET
+		DLOAD
+			INTVAL
+		STOVL	S1
+			DELVX
+		VXM	VSL1
+			XSM
+		DLOAD	DCOMP
+			MPAC +3
+		STODL	DPIPAY
+			MPAC +5
+		STORE	DPIPAZ
+		
+		SETPD	AXT,1
+			0
+			8D
+		SLOAD	DCOMP
+			GEOCOMP1
+		BMN	
+			ALWAYSG		# DO A QUICK COMPASS
+
+# Page 439
+# NOW WE HAVE JUST THE CALIBRATION PARTS OF THE PROGRAM-NEXT PAGES
+
+		COUNT	33/COMST
+		
+ALCGKK		SLOAD	BMN
+			ALTIMS
+			ALFLT3		# NO NEW GAINS NEEDED
+ALKCG		AXT,2	LXA,1		# LOADS SLOPES AND TIME CONSTANTS AT RQST
+			12D
+			ALX1S
+ALKCG2		DLOAD*	INCR,1
+			ALFDK +144D,1
+		DEC	-2
+		STORE	ALDK +10D,2
+		TIX,2	SXA,1
+			ALKCG2
+			ALX1S
+			
+ALFLT3		AXT,1			# MEASUREMENT INCORPORATION ROUTINES
+			8D		# AND GAIN UPDATES
+DELMLP		DLOAD*	DMP
+			DPIPAY +8D,1
+			PIPASC
+		SLR	BDSU*
+			9D
+			INTY +8D,1
+		STORE	INTY +8D,1
+		PDDL	DMP*
+			VELSC
+			VLAUN +8D,1
+		SL2R
+		DSU	STADR
+		STORE	DELM +8D,1
+		STORE	DELM +10D,1
+		TIX,1	AXT,2
+			DELMLP
+			4
+ALILP		DLOAD*	DMPR*
+			ALK +4,2
+			ALDK +4,2
+		STORE	ALK +4,2
+		TIX,2	AXT,2
+			ALILP
+			8D
+ALKLP		LXC,1	SXA,1
+			CMPX1
+			CMPX1
+		DLOAD*	DMPR*
+			ALK +1,1
+			DELM +8D,2
+# Page 440
+		DAD*
+			INTY +8D,2
+		STORE	INTY +8D,2
+		DLOAD*	DAD*
+			ALK +12D,2
+			ALDK +12D,2
+		STORE	ALK +12D,2
+		DMPR*	DAD*
+			DELM +8D,2
+			INTY +16D,2
+		STORE	INTY +16D,2
+		DLOAD*	DMP*
+			ALSK +1,1
+			DELM +8D,2
+		SL1R	DAD*
+			VLAUN +8D,2
+		STORE	VLAUN +8D,2
+		TIX,2	AXT,1
+			ALKLP
+			8D
+			
+LOOSE		DLOAD*	PDDL*		# EXTRAPOLATE SWAY VARIABLES
+			ACCWD +8D,1
+			VLAUN +8D,1
+		PDDL*	VDEF
+			POSNV +8D,1
+		MXV	VSL1
+			TRANSM1
+		DLOAD
+			MPAC
+		STORE	POSNV +8D,1
+		DLOAD
+			MPAC +3
+		STORE	VLAUN +8D,1
+		DLOAD
+			MPAC +5
+		STORE	ACCWD +8D,1
+		TIX,1
+			LOOSE
+			
+		AXT,2	AXT,1		# EVALUATE SINES AND COSINES
+			6
+			2
+BOOP		DLOAD*	DMPR
+			ANGX +2,1
+			GEORGEJ
+		SR2R
+		PUSH	SIN
+# Page 441
+		SL3R	XAD,1
+			X1
+		STORE	16D,2
+		DLOAD
+		COS
+		STORE	22D,2		# COSINES
+		TIX,2
+			BOOP
+			
+PERFERAS	EXIT
+		CA	EBANK7
+		EBANK=	LAT(SPL)
+		TS	EBANK
+		TC	LAT(SPL)	# GOTO ERASABLE ONLY TO RETURN
+		
+# CAUTION
+#
+# THE ERASABLE PROGRAM THAT DOES THE CALCULATIONS MUST BE LOADED
+# BEFORE ANY ATTEMPT IS MAKE TO RUN THE IMU PERFORMANCE TEST
+
+		EBANK=	LENGTHOT
+ONCEMORE	CCS	LENGTHOT
+		TC	SLEEPIE		# TEST NOT OVER SET UP NEXT WAITLIST
+		CCS	TORQNDX
+		TCF	+2
+		TC	SETUPER1
+		CA	CDUX
+		TS	LOSVEC +1	# FOR TROUBLESHOOTING POSNS 2$4 VD
+SETUPER1	TC	INTPRET		# DRIFT TEST OVER
+		DLOAD	PDDL		# ANGLES FROM DRIFT TEST ONLY
+			ANGZ
+			ANGY
+		PDDL	VDEF
+			ANGX
+		VCOMP	VXSC
+			GEORGEJ
+		MXV	VSR1
+			XSM
+		STORE	OGC
+		EXIT
+		
+TORQINCH	TC	PHASCHNG
+		OCT	00005		
+		CA	OGCPL
+		TC	BANKCALL
+		CADR	IMUPULSE
+		TC	IMUSTLLG
+		CCS	TORQNDX		# + IF IN VERTICAL DRIFT TEST
+		TC	VALMIS		# VERT DRIFT TEST OVER
+		TC	INTPRET
+# Page 442
+		CALL			# SET UP ERATE FOR PIP TEST OR COMPASS
+			ERTHRVSE
+		EXIT
+		TC	TORQUE		# GO TO IMU2 FOR A PIPA TEST AND DISPLAY
+		
+SOMEERRR	TC	ALARM
+		OCT	1600
+		TC	+3
+SOMERR2		TC	ALARM
+		OCT	1601		
+		TC	PHASCHNG
+		OCT	00005
+		TC	ENDTEST1
+		
+# THE FAMOUS MAGIC NUMBERS OF SCHMIDT ARE NOW PART OF AN ERASABLE LOAD		
+		
+DEC585		OCT	02222		# 1170 B+14 ORDER IS NOW IMPORTANT
+SCHZEROS	2DEC	.00000000
+		2DEC	.00000000
+		OCT	00000
+ONEDPP		OCT	00000
+		OCT	00001		# ABOVE ORDER IS IMPORTANT
+		
+INTVAL		OCT	4
+		OCT	2
+		DEC	144
+		DEC	-1
+SOUPLY		2DEC	.93505870	# INITIAL GAINS FOR PIP OUTPUTS
+		2DEC	.26266423	# INITIAL GAINS/4 FOR ERECTION ANGLES
+		
+77DECML		DEC	77
+ALXXXZ		GENADR	ALX1S -1
+
+# GYROCOMPASS PORTIONS FINISH THIS LOG SECTION
+
+		COUNT	33/P01
+		
+# INITIALIZATION SECTION
+
+GTSCPSS		CA	FLAGWRD1	# CALLED BY V37
+		MASK	NOP01BIT
+# Page 443
+		EXTEND
+		BZF	GTSCPSSA
+		TC	P00DOO
+		OCT	1521		# NODO ALARM FOR P01 - P11 ALREADY DONE
+		
+GTSCPSSA	CAF	ONE
+		TS	GEOCOMP1	# THIS IS THE LEAD IN FOR COMPASS
+		CA	1/PIPAGT
+		TS	1/PIPADT
+NXXTENN		CA	BIT8
+		TS	LENGTHOT
+		CAF	1/2SECX		# COMPASS IS A .5 SEC LOOP
+		TS	1SECXT1
+		CAF	ONE
+		TS	PREMTRX1
+		TS	PERFDLAY +1
+		CAF	ZERO
+		TS	PERFDLAY
+		EXTEND
+		DCA	LUNCHAZ1
+		DXCH	NEWAZ1
+		EXTEND
+		DCA	LUNCHAZ1
+		DXCH	OLDAZMTH
+SETUPGC		CA	DEC17
+		TS	ZERONDX1
+		CA	XSMADR
+		TC	ZEROING
+		TC	POSN17C
+		TC	GEOIMUTT	# GO TO IMU2 FOR FURTHER INITIALIZATION
+		
+		
+POSN17C		EXTEND			# COMPASS POSITION Z DOWN, X DOWNRANGE
+		QXCH	QPLACE		# FROM NORTH IN REVOLUTIONS + CLOCKWISE
+		CS	HALF		# ALL THIS TO INITIALIZE MATRIX
+		TS	ZSM
+		TC	INTPRET
+		DLOAD	PUSH
+			NEWAZ1
+		SIN
+		STORE	XSM	+4
+		STODL	YSM	+2
+		COS
+		STORE	YSM	+4
+		DCOMP
+		STORE	XSM	+2
+		EXIT
+		TC	QPLACE
+		
+# Page 444
+# JOB DONE EVERY ITERATION THROUGH COMPASS PROGRAM.  SET BY TASK ALLOOP
+
+		COUNT	33/P02
+		
+ALWAYSG		DLOAD*	DSU*		# COMPASS AND ERECT
+			DPIPAY +8D,1
+			FILDELV1 +8D,1
+		DMPR	DAD*
+			GEOCONS1
+			FILDELV1 +8D,1
+		STORE	FILDELV1 +8D,1
+		DAD*
+			INTVEC1 +8D,1
+		STORE	INTVEC1 +8D,1
+		DMPR	DAD*
+			GEOCONS2
+			FILDELV1 +8D,1
+		DMPR	PUSH
+			GEOCONS5
+		TIX,1	SLOAD
+			ALWAYSG
+			ERECTIM1
+		BZE	DLOAD
+			COMPGS
+			THETAN1 +2
+		DSU	STADR
+		STODL	THETAN1 +2	# ERECTION ONLY.
+		BDSU
+			THETAN1 +4
+		STORE	THETAN1 +4
+		GOTO
+			ADDINDRF
+COMPGS		DLOAD	DAD		# COMPASS
+			THETAN1
+			FILDELV1
+		STODL	THETAN1
+			FILDELV1
+		DMPR	BDSU
+			GEOCONS3
+			THETAN1 +4
+		STODL	THETAN1 +4
+			FILDELV1 +4
+		DMPR	BDSU
+			GEOCONS3
+			THETAN1 +2
+		PDDL	DMPR
+			INTVEC1 +4
+			GEOCONS4
+		BDSU	STADR
+		STORE	THETAN1 +2
+# Page 445		
+ADDINDRF	EXIT
+
+
+ENDGTSAL	CCS	LENGTHOT	# IS 5 SEC OVER-THE TIME TO TORQ PLATFORM
+		TC	SLEEPIE		# NO-SET UP NEXT WAITLIST CALL FOR .5 SEC
+		TC	CHKCOMED
+		CCS	LGYRO		# YES BUT ARE GYROS BUSY
+		TCF	SLEEPIE +1	# BUSY-GET THEM .5 SECONDS FROM NOW
+		
+LASTGTS		TC	INTPRET
+		VLOAD
+			ERCOMP1
+		STODL	THETAX1
+			TMARK
+		STORE	ALK
+		EXIT			# PREVIOUS SECTION WAS FOR RESTARTS
+		
+RESTAIER	TC	PHASCHNG
+		OCT	00275
+		TC	INTPRET		# ADD COMPASS COMMANDS INTO ERATE
+		VLOAD	MXV
+			THETAN1
+			XSM
+		VSL1	VAD
+			THETAX1
+		STODL	ERCOMP1
+			ALK
+		STORE	TMARK
+		EXIT
+		TC	EARTHR*		# TORQUE IT ALL IN
+		CAE	ERECTIM1
+		TS	GEOSAVE1
+		TC	PHASCHNG
+		OCT	00155
+RESTEST1	TC	INTPRET
+		VLOAD
+			SCHZEROS
+		STORE	THETAN1
+		EXIT
+		CCS	PREMTRXC
+		TC	NOCHORLD
+		TC	PHASCHNG
+		OCT	00255
+RESTEST3	TC	INTPRET
+		DLOAD
+			LAUNCHAZ
+		DSU	BZE
+			OLDAZMTH
+			NOAZCHGE
+		STORE	0D
+# Page 446
+		SLOAD	DAD
+			ONEDPP +1
+			PREMTRXC	# DOES NOT CHANGE LAUNCHAZ
+		STODL	PREMTRXC
+			LAUNCHAZ
+		STODL	NEWAZMTH
+			0D
+ADERCOMP	STORE	ERCOMP +4
+		EXIT
+		TC	POSN17C
+		TC	PHASCHNG
+		OCT	00335
+RESCHNG		EXTEND
+		DCA	NEWAZMTH
+		DXCH	OLDAZMTH
+		CA	BIT7		# SPEND 320 SEC ERECTING
+		TS	LENGTHOT
+		TC	PHASCHNG
+		OCT	00075
+SPITGYRO	CA	ERCOMPPL
+		TC	BANKCALL
+		CADR	IMUPULSE
+		TC	BANKCALL
+		CADR	IMUSTALL
+		TC	SOMERR2
+		TC	ESTIMS		# RE-INITIALIZE
+		
+		
+NOAZCHGE	EXIT
+		CA	ONE
+		TS	PREMTRXC
+NOCHORLD	CCS	GEOSAVE1
+		TS	ERECTIM1	# COUNTS DOWN FOR ERECTION.
+		
+ANNNNNN		CAF	NINE
+		TS	LENGTHOT
+		TC	SLEEPIE +1
+		
+		
+CHKCOMED	INHINT
+		CS 	MODREG		# CHECK FOR MM 07 FIRST
+		AD 	SEVEN
+		EXTEND
+		BZF 	GOBKCALB	# IF MM 07 RETURN TO PERF TEST
+		CS	ZERO
+		EXTEND
+		RXOR	CHAN30		# READ AND INVERT BITS IN CHANNEL 30
+		MASK	BIT5		# LIFTOFF BIT
+		CCS	A
+		TCF	PRELTERM	# LIFTOFF HAS OCCURRED
+		
+# Page 447
+		CA	GRRBKBIT	# CHECK FOR BACKUP LIFTOFF
+		MASK	FLAGWRD5	# BIT5 FLAGWRD5
+		CCS	A
+		TCF	PRELTERM	# BACKUP RECEIVED
+		
+		RELINT
+GOBKCALB	TC	Q
+
+PRELTERM	CA	PRIO22		# PRELAUNCH DONE -- SET UP P11
+		TC	PRIOCHNG	# INCREASE PRIORITY HIGHER THAN SERVICER
+		INHINT
+		TC	POSTJUMP
+		CADR	P11
+		
+		
+ERCOMPPL	ECADR	ERCOMP
+
+GEOCONS5	EQUALS	HIDPHALF
+1/PIPAGT	OCT	06200
+17DECML		=	ND1		# OCT 21
+19DECML		=	VD1		# OCT 23
+1/2SECX		=	.5SEC
+
+
+# Page 448
+GEOSTRT4	EQUALS	ENDOFJOB
+
+# Page 449
+# OPTICAL VERIFICATION ROUTINES FOR GYROCOMPASS
+
+		COUNT	33/P03
+		
+GCOMPVER	TC	PHASCHNG	# OPTICAL VERIFICATION ROUTINE
+		OCT	00154
+		TC	NEWMODEX	# ENTERED BY VERB 65 ENTER
+		MM	03
+SETNBPOS	TC	NBPOSPL
+		TC	BANKCALL
+		CADR	MKRELEAS
+OPTDATA		CAF	BIT1		# CALLS FOR AZIMUTH AND ELEVATION OF TARGET
+		ZL			# 1, THEN TARGET 2
+		LXCH	RUN		# AZIMUTH CLOCKWISE FROM NORTH TO TARGET
+		TS	DSPTEM1 +2	# ELEVATION MEASURED FROM HORIZONTAL
+		EXTEND
+		INDEX	RUN
+		DCA	TAZEL1
+		DXCH	DSPTEM1
+		CAF	V05N30E
+		TC	BANKCALL
+		CADR	GODSPRET
+		CAF	VN0641
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GCOMP5
+		TC	+3
+		TC	-8D
+VN0641		VN	0641
+		DXCH	DSPTEM1		# TAZEL1 TARGET 1 AZIMUTH
+		INDEX	RUN
+		DXCH	TAZEL1		# TAZEL1 +2 TARGET 2 AZIMUTH
+		CCS	RUN
+		TCF	+4
+		CAF	TWO
+		TS	L
+		TCF	OPTDATA +2	# MPAC	1ST PASS=0   2ND PASS=2
+		
+		TC	CONTIN33
+		
+V05N30E		VN	0530
+
+		TC	INTPRET		# UNDYNAMIC ASSEMBLER
+TAR/EREF	AXT,1	AXT,2		# TARGET VECTOR
+			2		# SIN(EL)   -COS(AZ)COS(EL)   SIN(AZ)COS(EL)
+			12D
+		SSP	SETPD
+			S2
+			6
+# Page 450
+			0
+TAR1		SLOAD*	SR2		# X1=2 X2=12 S2=6 X1=0 X2=6 S2=6
+			TAZEL1 +3,1	
+		STORE	0		# PD00 ELEVATION PD00
+		SIN
+		STORE	18D,2		# PD06 *** SIN(EL) ***PD12
+		DLOAD
+			0
+		COS	PUSH		# PD00 COS(EL) PD00
+		SLOAD*	RTB
+			TAZEL1 +2,1
+			CDULOGIC
+		STORE	2		# PD02 AZIMUTH PD02
+		SIN	DMP
+			0
+		SL1
+		STORE	22D,2		# PD10 *** SIN(AZ)COS(EL) ***PD16
+		DLOAD	COS
+			2
+		DMP	SL1
+		DCOMP	AXT,1
+			0
+		STORE	20D,2		# PD08 *** -COS(AZ)COS(EL) ***PD14
+		TIX,2	RVQ
+			TAR1
+			
+			
+		BANK	33
+		SETLOC	IMUCAL
+		BANK
+		COUNT*	$$/P03
+		
+CONTIN33	CA	ONE
+		TS	STARCODE
+		CA	ZERO
+		TC	TARGDRVE
+		TC	INTPRET
+		CALL
+			TAR/EREF
+NEXTBNKS	VLOAD	MXV
+			6D
+			XSM
+		VSL1	
+		STOVL	STARAD
+			12D
+		MXV	VSL1
+			XSM
+		STCALL	STARAD +6
+			LITTLSUB
+		STORE	LOSVEC
+# Page 451
+		EXIT
+		TC	BANKCALL
+		CADR	MKRELEAS
+		
+		
+NEXBNKSS	CAF	TWO
+		TS	STARCODE
+		CAF	SIX
+		TC	TARGDRVE
+		TC	INTPRET
+		CALL
+			LITTLSUB
+		STOVL	12D
+			LOSVEC
+		STCALL	06D
+			AXISGEN
+		CALL
+			CALCGTA
+		EXIT
+GCOMP4		CAF	V06N93S
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GCOMP5
+		TCF	+2
+		TCF	GCOMP4
+		TC	INTPRET
+		VLOAD	VAD
+			OGC
+			ERCOMP1
+		STORE	ERCOMP1
+		EXIT
+GCOMP5		TC	BANKCALL
+		CADR	MKRELEAS
+		TC	DOWNFLAG
+		ADRES	TRM03FLG
+		
+		TC	NEWMODEX
+		MM	02
+		TC	PHASCHNG
+		OCT	00004
+		TC	ENDOFJOB
+V06N93S		VN	0693
+GTSOPTCS	TC	ALARM
+GTSOPTSS	OCT	01602
+		TC	GCOMP5
+		
+		
+		BANK	34
+		SETLOC	IMUCAL1
+		BANK
+# Page 452
+
+		COUNT	34/COMST
+		
+LATAZCHK	DLOAD	SL2		# CALLS FOR AZIMUTH AND LATITUDE
+			LATITUDE
+		STODL	DSPTEM1 +1
+			AZIMUTH
+		RTB	EXIT
+			1STO2S
+		XCH	MPAC
+		TS	DSPTEM1
+		TC	BANKCALL
+		CADR	CLEANDSP
+		CAF	VNG0641
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	+2		# NOT ALLOWED
+		TC	+2
+		TC	-5
+		TC	INTPRET
+		SLOAD	RTB
+			DSPTEM1
+			CDULOGIC
+		STORE	AZIMUTH
+		SLOAD	SR2
+			DSPTEM1 +1
+		STORE	LATITUDE
+		RVQ
+VNG0641		VN	0641
+		BANK	33
+		SETLOC	IMUCAL
+		BANK
+		
+		
+		COUNT*	$$/P03
+TARGDRVE	EXTEND
+		QXCH	QPLAC
+		TS	TARG1/2
+		TC	INTPRET
+		CALL
+			TAR/EREF
+		LXC,1	VLOAD*
+			TARG1/2
+			6D,1
+		STCALL	STAR
+			SXTANG
+		EXIT
+		CA	SAC
+		TS	DESOPTS
+
+# Page 453
+		CA	PAC
+		TS	DESOPTT
+RETARG		CAF	ZERO
+		TS	OPTIND
+		CAF	ONE
+		TC	BANKCALL
+		CADR	SXTMARK
+		TC	BANKCALL
+		CADR	OPTSTALL
+		TC	GTSOPTCS
+		CAE	FLAGWRD1
+		MASK	TRM03BIT
+		CCS	A
+		TC	GCOMP5
+		
+		INDEX	MARKSTAT
+		CA	QPRET
+		EXTEND
+		BZF	RETARG1
+		TC	QPLAC
+		
+		
+RETARG1		CA	ZERO		# RELEASE PREVIOUSLY GRABBED VAC AREA
+		XCH	MARKSTAT
+		CCS	A
+		INDEX	A
+		TS	A
+		TCF	RETARG		# GO DO SXTMARK AGAIN
+		BANK	33
+		SETLOC	IMUCAL
+		BANK
+		COUNT*	$$/P03
+PIPASC		2DEC	.76376833
+
+VELSC		2DEC	-.52223476
+
+ALSK		2DEC	.17329931
+
+		2DEC	-.00835370
+		
+GEORGEJ		2DEC	.63661977
+
+GEOCONS1	2DEC	.1
+
+GEOCONS2	2DEC	.005
+
+GEOCONS3	2DEC	.062
+
+GEOCONS4	2DEC	.0003
+
+# Page 454
+
+		COUNT	33/P02
+LITTLSUB	STQ
+			QPLAC
+		LXC,1	VLOAD*
+			MARKSTAT
+			2,1
+		STCALL	CDUSPOT
+			SXTNB
+		CALL
+			TRG*NBSM
+		GOTO
+			QPLAC
+			
+			
+		EXIT
+AZMTHCG1	TC	INTPRET
+		DLOAD	RTB
+			NEWAZMTH
+			1STO2S
+		EXIT
+		XCH	MPAC
+		TS	DSPTEM1
+		TC	BANKCALL
+		CADR	CLEANDSP
+		CAF	VN0629
+		TC	BANKCALL
+		CADR	GOFLASH
+		TCF	+2
+		TCF	+2
+		TCF	-5
+		TC	INTPRET
+		SLOAD	RTB
+			DSPTEM1
+			CDULOGIC
+		STORE	LAUNCHAZ
+		EXIT
+		CA	ZERO
+		TS	PREMTRXC
+		TC	PHASCHNG
+		OCT	00004
+		TC	POSTJUMP
+		CADR	PINBRNCH
+	
+VN0629		VN	0629
+
+# Page 455
+# *** END OF COMAID .029 ***
+
diff --git a/IMU_COMPENSATION_PACKAGE.s b/IMU_COMPENSATION_PACKAGE.s
new file mode 100644
index 0000000..7242ecd
--- /dev/null
+++ b/IMU_COMPENSATION_PACKAGE.s
@@ -0,0 +1,370 @@
+# 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
+		BANK	7
+		SETLOC	IMUCOMP
+		BANK	
+		EBANK=	NBDX
+		
+		COUNT	06/ICOMP
+		
+1/PIPA		CAF	LGCOMP		# SAVE EBANK OF CALLING PROGRAM
+		XCH	EBANK
+		TS	MODE
+		
+		CCS	GCOMPSW		# BYPASS IF GCOMPSW NEGATIVE
+		TCF	+3
+		TCF	+2
+		TCF	IRIG1		# RETURN
+		
+		INHINT			# ASSURE COMPLETE COMPENSATION OF DELV'S
+					# FOR DOWNLINK.
+		
+1/PIPA1		CAF	FOUR		# PIPAZ, PIPAY, PIPAX
+		TS	BUF +2
+		
+		INDEX	BUF +2
+		CA	PIPASCF		# (P.P.M.) X 2(-9)
+		EXTEND
+		INDEX	BUF +2
+		MP	DELVX		# (PP) X 2(+14) NOW (PIPA PULSES) X 2(+5)
+		TS	Q		# SAVE MAJOR PART
+		
+		CA	L		# MINOR PART
+		EXTEND
+		MP	BIT6		# SCALE 2(+9)	SHIFT RIGHT 9	
+		INDEX 	BUF +2
+		TS	DELVX +1	# FRACTIONAL PIPA PULSES SCALED 2(+14)
+		
+		CA	Q		# MAJOR PART
+		EXTEND
+		MP	BIT6		# SCALE 2(+9)	SHIFT RIGHT 9
+		INDEX	BUF +2	
+		DAS	DELVX		# (PIPAI) + (PIPAI)(SF)
+		
+		INDEX	BUF +2
+		CS	PIPABIAS	# (PIPA PULSES)/(CS) X 2(-8)			*
+		EXTEND
+		MP	1/PIPADT	# (CS) X 2(+8) NOW (PIPA PULSES) X 2(+0)	*
+		EXTEND
+		MP	BIT1		# SCALE 2(+14) SHIFT RIGHT 14			*
+		INDEX	BUF +2
+		DAS	DELVX		# (PIPAI) + (PIPAI)(SFE) - (BIAS)(DELTAT)
+		
+		CCS	BUF +2		# PIPAZ, PIPAY, PIPAX
+# Page 298
+		AD	NEG1
+		TCF	1/PIPA1 +1
+		NOOP			# LESS THAN ZERO IMPOSSIBLE
+		RELINT
+# Page 299
+
+IRIGCOMP	TS	GCOMPSW		# INDICATE COMMANDS 2 PULSES OR LESS.
+		TS	BUF		# INDEX COUNTER.  IRIGX, IRIGY, IRIGZ.
+		
+IRIGX		EXTEND	
+		DCS	DELVX		# (PIPA PULSES) X 2(+14)
+		DXCH	MPAC
+		CA	ADIAX		# (GYRO PULSES)/(PIPA PULSE) X 2(-3)		*
+		TC	GCOMPSUB	# -(ADIAX)(PIPAX)	(GYRO PULSES) X 2(+14)
+		
+		EXTEND			# 
+		DCS	DELVY		# 	(PIPA PULSES) X 2(+14)
+		DXCH	MPAC		# 
+		CS	ADSRAX		# 	(GYRO PULSES)/(PIPA PULSE) X 2(-3)	*
+		TC	GCOMPSUB	# 	-(ADSRAX)(PIPAY)	(GYRO PULSES) X 2(+14)
+
+#		EXTEND			# ***
+#		DCS	DELVY		# ***	(PIPA PULSES) X 2(+14)
+#		DXCH	MPAC		# ***
+#		CA	ADOAX		# ***	(GYRO PULSES)/(PIPA PULSE) X 2(-3)	*
+#		TC	GCOMPSUB	# ***	-(ADOAX)(PIPAZ)		(GYRO PULSES) X 2(+14)
+
+		CS	NBDX		# 	(GYRO PULSES)/(CS) X 2(-3)
+		TC	DRIFTSUB	#	-(NBDX)(DELTAT)	(GYRO PULSES) X 2(+14)
+
+IRIGY		EXTEND
+		DCS	DELVY		# (PIPA PULSES) X 2(+14)
+		DXCH	MPAC
+		CA	ADIAY		# (GYRO PULSES)/(PIPA PULSE) X 2(-3)		*
+		TC	GCOMPSUB	# -(ADIAY)(PIPAY)	(GYRO PULSES) X 2(+14)
+
+		EXTEND
+		DCS	DELVZ		# (PIPA PULSES) X 2(+14)
+		DXCH	MPAC
+		CS	ADSRAY		# (GYRO PULSES)/(PIPA PULSE) X 2(-3)		*
+		TC	GCOMPSUB	# +(ADSRAY)(PIPAZ)	(GYRO PULSES) X 2(+14)
+
+#		EXTEND			# ***
+#		DCS	DELVX		# ***	(PIPA PULSES) X 2(+14)
+#		DXCH	MPAC		# ***
+#		CA	ADOAY		# ***	(GYRO PULSES)/(PIPA PULS) X 2(-3)	*
+#		TC	GCOMPSUB	# ***	-(ADOAY)(/PIPAX)	(GYRO PULSES) X 2(+14)
+
+		CS	NBDY		# 	(GYRO PULSES)/(CS) X 2(-5)
+		TC	DRIFTSUB	#	-(NBDY)(DELTAT)	(GYRO PULSES) X 2(+14)
+
+IRIGZ		EXTEND
+		DCS	DELVY		# (PIPA PULSES) X 2(-14)
+		DXCH	MPAC
+		CA	ADSRAZ		# (GYRO PULSES)/(PIPA PULSE) X 2(-3)		*
+# Page 300
+		TC	GCOMPSUB	# -(ADSRAZ)(PIPAY)	(GYRO PULSES) X 2(+14)
+		
+		EXTEND
+		DCS	DELVZ		# (PIPA PULSES) X 2(+14)
+		DXCH	MPAC
+		CA	ADIAZ		# (GYRO PULSES)/(PIPA PULSE) X 2(-3)		*
+		TC	GCOMPSUB	# -(ADIAZ)(PIPAZ)	(GYRO PULSES) X 2(+14)
+		
+#		EXTEND			# ***
+#		DCS	DELVX		# ***	(PIPA PULSE) X 2(+14)
+#		DXCH	MPAC		# ***
+#		CS	ADOAZ		# ***	(GYRO PULSES)/(PIPA PULSE) X 2(-3)	*
+#		TC	GCOMPSUB	# ***	+(ADOAZ)(PIPAX)	(GYRO PULSES) X 2(+14)
+
+		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	
+		
+		CA	PRIO21		# HIGHER THAN SERVICER -- LESS THAN PRELAUNCH
+		TC	NOVAC	
+		EBANK=	NBDX
+		2CADR	1/GYRO
+		
+		RELINT
+IRIG1		CA	MODE		# SET EBANK FOR RETURN
+		TS	EBANK
+		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)
+		MP	1/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
+		
+# Page 303
+1/GYRO		CAF	FOUR		# PIPAZ, PIPAY, PIPAX
+		TS	BUF
+		
+		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
+		TCF	1/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
+		
+		CCS	BUF		# PIPAZ, PIPAY, PIPAX
+		AD	NEG1
+		TCF	GCOMP1 +1
+		
+V06N30S		VN	0630
+		TCF	ENDOFJOB
+
+# Page 304		
+NBDONLY		CCS	GCOMPSW		# BYPASS IF GCOMPSW NEGATIVE
+		TCF	+3
+		TCF	+2
+		TCF	ENDOFJOB
+
+		INHINT
+		CCS	FLAGWRD2	# PREREAD T3RUPT MAY COINCIDE
+		TCF	ENDOFJOB
+		TCF	ENDOFJOB
+		TCF	+1
+		
+		CA	TIME1		# (CS) X 2(+14)
+		XCH	1/PIPADT	# PREVIOUS TIME
+		RELINT
+		COM
+		AD	1/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		# INDEX X, Y, Z.
+		
+		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
+		TCF	1/GYRO		# YES
+		TCF	ENDOFJOB	# NO
+
+# Page 303
+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)
+		
+		TCF	DRFTSUB2	# CHECK MAGNITUDE OF COMPENSATION
+		
+LASTBIAS	TC	BANKCALL
+		CADR	PIPUSE
+		
+		CCS	GCOMPSW		# BYPASS IF GCOMPSW NEGATIVE
+		TCF	+3
+		TCF	+2
+		TCF	ENDOFJOB
+		
+		CAF	PRIO31		# 2 SECONDS SCALED (CS) X 2(+8)
+		XCH	1/PIPADT
+		COM
+		AD	PIPTIME1 +1	# TIME AT PIPA1 =0
+		TCF	NBD2
+		
diff --git a/IMU_MODE_SWITCHING_ROUTINES.s b/IMU_MODE_SWITCHING_ROUTINES.s
new file mode 100644
index 0000000..f10df43
--- /dev/null
+++ b/IMU_MODE_SWITCHING_ROUTINES.s
@@ -0,0 +1,1068 @@
+# 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	# DON'T 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	# DON'T 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 FAIL UNLESS IMU BEING CAGED.
+		TCF	TASKOVER	# IT IS.
+
+		CAF	BIT4		# DON'T 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.  DON'T LIGHT
+		CS	IMODES30	# ISS WARNING.
+		MASK	BIT1
+		ADS	IMODES30
+
+		MASK	BIT10		# IF PIP FAIL ON, DO PROG ALARM 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 AT TEH INPUT COMMAND REGISTERS.
+
+		EBANK=	1400		# VARIABLE, ACTUALLY.
+
+IMUPULSE	TS	MPAC +5		# SAVE ARRIVING ECADR.
+		TC	CAGETSTJ	# DON'T 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 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
+#	MODEECADR 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	P00DOO		# 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	P00DOO		# 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 USER'S 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
+#	GOTOP00H, 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	GOTOP00H
+
+# Page 1444
+R02ZERO		TC	UPFLAG
+		ADRES	IMUSE
+		TCF	SWRETURN
+OCT220		OCT	220
+
+# Page 1445
+# PROGRAM DESCRIPTION:	P06 		10 FEB 67
+#
+# 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 COMPATIBILITY
+# 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 TIME1 TIME2
+		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 COMPATIBLE 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 COMPATIBILITY 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 POST-STANDBY SCALER
+# Page 1448
+		CAF	BIT10		# MINUS PRE-STANDBY SCALER AND SHIFT RIGHT
+		TC	SHORTMP		# 5 TO ALIGN BITS WITH TIME1 TIME2.
+		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 TIME1 TIME2
+		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	GOTOP00H
+		
+
+
diff --git a/IMU_PERFORMANCE_TESTS_4.s b/IMU_PERFORMANCE_TESTS_4.s
new file mode 100644
index 0000000..ebb7849
--- /dev/null
+++ b/IMU_PERFORMANCE_TESTS_4.s
@@ -0,0 +1,362 @@
+# Copyright:	Public domain.
+# Filename:	IMU_PERFORMANCE_TESTS_4.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	382-389
+# Mod history:	2009-05-17 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 382
+# PROGRAM --	IMU PERFORMANCE TESTS 4
+# DATE --	NOV 15, 1966
+# BY --		GEORGE SCHMIDT IL7-146 EXT 1126
+# MOD NO-ZERO
+#
+# FUNCITONAL DESCRIPTION
+#
+# THIS SECTION CONSISTS OF THE FILTER FOR THE GYRO DRIFT TESTS.  NO COMPASS
+# IS DONE IN LEM.  FOR A DESCRIPTION OF THE FILTER SEE E-1973.  THIS
+# SECTION IS ENTERED FROM IMU 2.  IT RETURNS THERE AT END OF TEST.
+#
+# EARTHR,OGC ZERO,ERTHRVSE
+#
+# NORMAL EXIT
+#
+# LENGTHOT GOES TO ZERO -- RETURN TO IMU PERF TESTS 2 CONTROL
+#
+# ALARMS
+#
+# 1600	OVERFLOW IN DRIFT TEST
+# 1601	BAD IMU MODING IN ANY ROUTINE THAT USES IMUSTALL
+#	OUTPUT
+#
+# FLASHING DISPLAY OF RESULTS -- CONTROLLED IN IMU PERF TESTS 2
+#
+# DEBRIS
+#
+# ALL CENTRALS -- ALL OF EBANK XSM
+
+# Page 383
+		BANK	33
+		SETLOC	IMU4
+		BANK
+		COUNT*	$$/P07
+		
+		EBANK=	XSM
+		
+ESTIMS		INHINT
+		CAE	1SECXT
+		TC	TWIDDLE
+		EBANK=	XSM
+		ADRES	ALLOOP
+		CAF	ZERO		# ZERO THE PIPAS
+		TS	PIPAX
+		TS	PIPAY
+		TS	PIPAZ
+		RELINT
+		CA	77DECML
+		TS	ZERONDX
+		CA	ALXXXZ
+		TC	ZEROING
+		TC	INTPRET
+		SLOAD
+			SCHZEROS
+		STOVL	GCOMPSW -1
+			INTVAL 	+2
+		STOVL	ALX1S
+			SCHZEROS
+		STORE	DELVX
+		STORE	GCOMP
+		SLOAD
+			TORQNDX
+		DCOMP	BMN
+			VERTSKIP
+		CALL	
+			ERTHRVSE
+VERTSKIP	EXIT
+		TC	SLEEPIE +1
+		
+# Page 384
+ALLOOP		CA	OVFLOWCK
+		EXTEND
+		BZF	+2
+		TC	TASKOVER
+		CCS	ALTIM
+		CA	A		# SHOULD NEVER HIT THIS LOCATION
+		TS	ALTIMS
+		CS	A
+		TS	ALTIM
+		CS	ONE
+		AD	GEOCOMPS
+		EXTEND
+		BZF	+4
+		CA	LENGTHOT
+		EXTEND
+		BZMF	+5
+		CAE	1SECXT
+		TC	TWIDDLE
+		EBANK=	XSM
+		ADRES	ALLOOP
+		CAF	ZERO
+		XCH	PIPAX
+		TS	DELVX
+		CAF	ZERO
+		XCH	PIPAY
+		TS	DELVY
+		CAF	ZERO
+		XCH	PIPAZ
+		TS	DELVZ
+SPECSTS		CAF	PRIO20
+		TC	FINDVAC
+		EBANK=	XSM
+		2CADR	ALFLT		# START THE JOB
+		
+		TC	TASKOVER
+		
+# Page 385
+ALFLT		CCS	GEOCOMPS
+		TC	+2
+		TC	NORMLOP
+		TC	BANKCALL
+		CADR	1/PIPA
+NORMLOP		TC	INTPRET
+		DLOAD
+			INTVAL
+		STOVL	S1
+			DELVX
+		VXM	VSL1
+			XSM
+		DLOAD	DCOMP
+			MPAC +3
+		STODL	DPIPAY
+			MPAC +5
+		STORE	DPIPAZ
+		
+		SETPD	AXT,1
+			0
+			8D
+		SLOAD	DCOMP
+			GEOCOMPS
+		BMN	
+			PERFERAS
+ALCGKK		SLOAD	BMN
+			ALTIMS
+			ALFLT3
+ALKCG		AXT,2	LXA,1		# LOADS SLOPES AND TIME CONSTANTS AT RQST
+			12D
+			ALX1S
+ALKCG2		DLOAD*	INCR,1
+			ALFDK 	+144D,1
+		DEC	-2
+		STORE	ALDK 	+10D,2
+		TIX,2	SXA,1
+			ALKCG2
+			ALX1S
+			
+ALFLT3		AXT,1
+			8D
+DELMLP		DLOAD*	DMP
+			DPIPAY 	+8D,1
+			PIPASC
+		SLR	BDSU*
+			9D
+			INTY	+8D,1
+		STORE	INTY 	+8D,1
+		PDDL	DMP*
+			VELSC
+# Page 386
+			VLAUN 	+8D,1
+		SL2R
+		DSU	STADR
+		STORE	DELM 	+8D,1
+		STORE	DELM 	+10D,1
+		TIX,1	AXT,2
+			DELMLP
+			4
+ALILP		DLOAD*	DMPR*
+			ALK 	+4,2
+			ALDK 	+4,2
+		STORE	ALK 	+4,2
+		TIX,2	AXT,2
+			ALILP
+			8D
+ALKLP		LXC,1	SXA,1
+			CMPX1
+			CMPX1
+		DLOAD*	DMPR*
+			ALK 	+1,1
+			DELM 	+8D,2
+		DAD*
+			INTY 	+8D,2
+		STORE	INTY 	+8D,2
+		DLOAD*	DAD*
+			ALK 	+12D,2
+			ALDK 	+12D,2
+		STORE	ALK 	+12D,2
+		DMPR*	DAD*
+			DELM 	+8D,2
+			INTY 	+16D,2
+		STORE	INTY 	+16D,2
+		DLOAD*	DMP*
+			ALSK 	+1,1
+			DELM 	+8D,2
+		SL1R	DAD*
+			VLAUN 	+8D,2
+		STORE	VLAUN 	+8D,2
+		TIX,2	AXT,1
+			ALKLP
+			8D
+			
+LOOSE		DLOAD*	PDDL*
+			ACCWD 	+8D,1
+			VLAUN 	+8D,1
+		PDDL*	VDEF
+			POSNV 	+8D,1
+		MXV	VSL1
+			TRANSM1
+# Page 387
+		DLOAD
+			MPAC
+		STORE	POSNV	 +8D,1
+		DLOAD
+			MPAC	 +3
+		STORE	VLAUN 	+8D,1
+		DLOAD
+			MPAC	+5
+		STORE	ACCWD 	+8D,1
+		TIX,1
+			LOOSE
+			
+		AXT,2	AXT,1		# EVALUATE SINES AND COSINES
+			6
+			2
+BOOP		DLOAD*	DMPR
+			ANGX 	+2,1
+			GEORGEJ
+		SR2R
+		PUSH	SIN
+		SL3R	XAD,1
+			X1
+		STORE	16D,2
+		DLOAD
+		COS
+		STORE	22D,2		# COSINES
+		TIX,2
+			BOOP
+			
+PERFERAS	EXIT
+		CA	EBANK7
+		TS	EBANK
+		EBANK=	ATIGINC
+		TC	ATIGINC		# GOTO ERASABLE TO CALCULATE ONLY TO RETN
+		
+# 			     CAUTION
+#
+# THE ERASABLE PROGRAM THAT DOES THE CALCULATIONS MUST BE LOADED
+# BEFORE ANY ATTEMPT IS MAKE TO RUN THE IMU PERFORMANCE TEST
+
+		EBANK=	AZIMUTH
+		CCS	LENGTHOT
+		TC	SLEEPIE
+		CCS	TORQNDX
+		TCF	+2
+		TC	SETUPER1
+		CA	CDUX
+		TS	LOSVEC	 +1	# FOR TROUBLESHOOTING VD POSNS 2$4
+		
+# Page 388
+SETUPER1	TC	INTPRET
+		DLOAD	PDDL		# ANGLES FROM DRIFT TEST ONLY
+			ANGZ
+			ANGY
+		PDDL	VDEF
+			ANGX
+		VCOMP	VXSC
+			GEORGEJ
+		MXV	VSR1
+			XSM
+		STORE	OGC
+		EXIT
+		
+		CA	OGCPL
+		TC	BANKCALL
+		CADR	IMUPULSE
+		TC	IMUSLLLG
+GEOSTRT4	CCS	TORQNDX		# ONLY POSITIVE IF IN VERTICAL DRIFT TEST
+		TC	VALMIS
+		TC	INTPRET
+		CALL
+			ERTHRVSE
+		EXIT
+		TC	TORQUE
+		
+SLEEPIE		TS	LENGTHOT	# TEST NOT OVER-DECREMENT LENGTHOT
+		CCS	TORQNDX		# ARE WE DOING VERTDRIFT
+		TC	EARTHR*
+		TC	ENDOFJOB
+		
+SOMEERRR	CA	EBANK5
+		TS	EBANK
+		CA	ONE
+		TS	OVFLOWCK	# STOP ALLOOP FROM CALLING ITSELF
+		TC	ALARM
+		OCT	1600
+		TC	ENDTEST1
+SOMERR2		CAF	OCT1601
+		TC	VARALARM
+		TC	DOWNFLAG
+		ADRES	IMUSE
+		TC	ENDOFJOB
+		
+OCT1601		OCT	01601
+DEC585		OCT	06200		# 3200 B+14 ORDER IS IMPORTANT
+SCHZEROS	2DEC	.00000000
+# Page 389
+		2DEC	.00000000
+		
+		OCT	00000
+ONEDPP		OCT	00000		# ORDER IS IMPORTANT
+		OCT	00001
+		
+INTVAL		OCT	4
+		OCT	2
+		DEC	144
+		DEC	-1
+SOUPLY		2DEC	.93505870	# INITIAL GAINS FOR PIP OUTPUTS
+
+		2DEC	.26266423	# INITIAL GAINS/4 FOR ERECTION ANGLES
+		
+77DECML		DEC	77
+ALXXXZ		GENADR	ALX1S 	-1
+PIPASC		2DEC	.13055869
+
+VELSC		2DEC	-.52223476	# 512/980.402
+
+ALSK		2DEC	.17329931	# SSWAY VEL GAIN X 980.402/4096
+
+		2DEC	-.00835370	# SSWAY ACCEL GAIN X 980.402/4096
+		
+GEORGEJ		2DEC	.63661977
+
+GEORGEK		2DEC	.59737013
+
diff --git a/IMU_PERFORMANCE_TEST_2.s b/IMU_PERFORMANCE_TEST_2.s
new file mode 100644
index 0000000..3f5262b
--- /dev/null
+++ b/IMU_PERFORMANCE_TEST_2.s
@@ -0,0 +1,421 @@
+# Copyright:	Public domain.
+# Filename:	IMU_PERFORMANCE_TEST_2.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	373-381
+# Mod history:	2009-05-17 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 373
+# NAME --	IMU PERFORMANCE TESTS 2
+#
+# DATE --	MARCH 20, 1967
+#
+# BY --		SYSTEM TEST GROUP 864-6900 EXT. 1274
+#
+# MODNO. --	ZERO
+#
+# FUNCTIONAL DESCRIPTION
+#
+# POSITIONING ROUTINES FOR THE IMU PERFORMANCE TESTS AS WELL AS SOME OF
+# THE TESTS THEMSELVES.  FOR A DESCRIPTION OF THESE SUBROUTINES AND THE
+# OPERATING PROCEDURES (TYPICALLY) SEE STG MEMO 685.  THEORETICAL REF. E-1973
+
+		BANK	33
+		SETLOC	IMU2
+		BANK
+		EBANK=	POSITON
+		COUNT*	$$/P07
+		
+REDO		TC	NEWMODEX
+		MM	07
+		
+GEOIMUTT	TC	IMUZERR
+IMUBACK		CA	ZERO
+		TS	NDXCTR
+		TS	TORQNDX
+		TS	TORQNDX +1
+		TS	OVFLOWCK
+NBPOSPL		CA	DEC17
+		TS	ZERONDX
+		CA	XNBADR
+		TC	ZEROING
+		CA	HALF
+		TS	XNB
+GUESS		TC	INTPRET
+LATAZCHK	DLOAD	SL2
+			LATITUDE
+		STODL	DSPTEM1 +1
+			AZIMUTH
+		RTB	EXIT
+			1STO2S
+		XCH	MPAC
+		TS	DSPTEM1
+		CAF	VN0641
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	ENDTEST1
+		TC	+2
+		TC	-5
+# Page 374
+		TC	INTPRET
+		SLOAD	RTB
+			DSPTEM1
+			CDULOGIC
+		STORE	AZIMUTH
+		SLOAD	SR2
+			DSPTEM1 +1
+		STORE	LATITUDE
+		COS	DCOMP
+		SL1
+		STODL	WANGI
+			LATITUDE
+		SIN	SL1
+		STODL	WANGO
+			AZIMUTH
+		PUSH	SIN
+		STORE	YNB 	+2
+		STODL	ZNB 	+4
+		COS
+		STORE	YNB	+4
+		DCOMP
+POSGMBL		STCALL	ZNB 	+2
+			CALCGA
+		EXIT
+		TC	BANKCALL
+		CADR	IMUCOARS
+		CAF	BIT14		# IF BIT14 SET, GIMBAL LOCK
+		MASK	FLAGWRD3
+		EXTEND
+		BZF	+2
+		INCR	NDXCTR		# +1 IF IN GIMBAL LOCK, OTHERWISE 0
+		TC	DOWNFLAG
+		ADRES	GLOKFAIL	# RESET GIMBAL LOCK FLAG
+		TC	IMUSLLLG
+		CCS	NDXCTR		# IF ONE GO AND DO A PIPA TEST ONLY
+		TC	PIPACHK		# ALIGN AND MEASURE VERTICAL PIPA RATE
+		TC	FINIMUDD
+		EXTEND
+		DCA	PERFDLAY
+		TC	LONGCALL	# DELAY WHILE SUSPENSION STABILIZES
+		EBANK=	POSITON
+		2CADR	GOESTIMS
+		
+		CA	ESTICADR
+		TC	JOBSLEEP
+GOESTIMS	CA	ESTICADR
+		TC	JOBWAKE
+		TC	TASKOVER
+ESTICADR	CADR	ESTIMS
+TORQUE		CA	ZERO
+# Page 375
+		TS	DSPTEM2
+		CA	DRIFTI
+		TS	DSPTEM2 +1
+		INDEX	POSITON
+		TS	SOUTHDR -1
+		TC	SHOW
+		
+PIPACHK		INDEX	NDXCTR		# PIPA TEST
+		TC	+1
+		TC	EARTHR*
+		CA	DEC17		# ALLOW PIP COUNTER TO OVERFLOW 17 TIMES
+		TS	DATAPL	+4	# IN THE ALLOTTED TIME INTERVAL
+		CA	DEC58
+		TS	LENGTHOT
+		CA	ONE
+		TS	RESULTCT
+		CA	ZERO
+		INDEX	PIPINDEX
+		TS	PIPAX
+		TS	DATAPL
+		TC	CHECKG
+		INHINT
+		CAF	TWO
+		TC	TWIDDLE
+		EBANK=	XSM
+		ADRES	PIPATASK
+		TC	ENDOFJOB
+		
+PIPATASK	EXTEND
+		DIM	LENGTHOT
+		CA	LENGTHOT
+		EXTEND
+		BZMF	STARTPIP
+		CAF	BIT10
+		TC	TWIDDLE
+		EBANK=	XSM
+		ADRES	PIPATASK
+STARTPIP	CAF	PRIO20
+		TC	FINDVAC
+		EBANK=	XSM
+		2CADR	PIPJOBB
+		
+		TC	TASKOVER
+		
+PIPJOBB		INDEX	NDXCTR
+		TC	+1
+		TC	EARTHR*
+		CA	LENGTHOT
+# Page 376
+		EXTEND
+		BZMF	+2
+		TC	ENDOFJOB
+		
+		CA	FIVE
+		TS	RESULTCT
+		TC	CHECKG
+		CCS	DATAPL 	+1
+		TC	+4
+		TC	CCSHOLE
+		CS	DATAPL	+4
+		TS	DATAPL	+4
+		EXTEND
+		DCS	DATAPL
+		DAS	DATAPL 	+4
+		
+		TC	INTPRET
+		DLOAD	DSU
+			DATAPL	+6
+			DATAPL 	+2
+		BPL	CALL
+			AINGOTN
+			OVERFFIX
+AINGOTN		PDDL	DDV
+			DATAPL 	+4
+		DMPR	RTB
+			DEC585		# DEC585 HAS BEEN REDEFINED FOR LEM
+			SGNAGREE
+		STORE	DSPTEM2
+		EXIT
+		CCS	NDXCTR
+		TC	COAALIGN	# TAKE PLATFORM OUT OF GIMBAL LOCK
+		TC	SHOW
+VERTDRFT	CA	3990DEC		# ABOUT 1 HOUR VERTICAL DRIFT TEST
+		TS	LENGTHOT
+		INDEX	POSITON
+		CS	SOUTHDR -2
+		TS	DRIFTT
+		CCS	PIPINDEX	# OFFSET PLATFORM TO MISS PIP DEAD-ZONES
+		TCF	PON4		# Z-UP IN POS 4
+PON2		CS	BIT5		# X-UP
+		ADS	ERCOMP 	+2
+		CA	BIT5
+		ADS	ERCOMP 	+4
+		TCF	PON
+PON4		CS	BIT5
+		ADS	ERCOMP	+2
+		CA	BIT5
+		ADS	ERCOMP
+PON		TC	EARTHR*
+# Page 377
+		CA	ZERO		# ALLOW ONLY SOUTH GYRO EARTH RATE COMPENS
+		TS	ERVECTOR
+		TS	ERVECTOR +1
+GUESS1		CAF	POSMAX
+		TS	TORQNDX
+		TS	TORQNDX +1
+		CA	CDUX
+		TS	LOSVEC
+		TC	ESTIMS
+VALMIS		CA	DRIFTO
+		TS	DSPTEM2 +1
+		CA	ZERO
+		TS	DSPTEM2
+		TC	SHOW
+		
+ENDTEST1	TC	DOWNFLAG
+		ADRES	IMUSE
+		CS	ZERO
+		TC	NEWMODEA
+		TC	ENDEXT
+		
+# Page 378
+OVERFFIX	DAD	DAD
+			DPPOSMAX
+			ONEDPP
+		RVQ
+		
+COAALIGN	EXTEND			# COARSE ALIGN SUBROUTINE
+		QXCH	ZERONDX
+		CA	ZERO
+		TS	THETAD
+		TS	THETAD +1
+		TS	THETAD +2
+		TC	BANKCALL
+		CADR	IMUCOARS
+ALIGNCOA	TC	BANKCALL
+		CADR	IMUSTALL
+		TC	SOMERR2
+		TC	ZERONDX
+
+IMUSLLLG	EXTEND
+		QXCH	ZERONDX
+		TC	ALIGNCOA
+		
+FINIMUDD	EXTEND
+		QXCH	ZERONDX
+		TC	BANKCALL
+		CADR	IMUFINE
+		TC	ALIGNCOA
+		
+IMUZERR		EXTEND
+		QXCH	ZERONDX
+		TC	BANKCALL
+		CADR	IMUZERO
+		TC	ALIGNCOA
+		
+CHECKG		EXTEND			# PIP PULSE CATCHING ROUTINE
+		QXCH	QPLACE
+		TC	+6
+CHECKG1		RELINT
+		CA	NEWJOB
+		EXTEND
+		BZMF	+6
+		TC	CHANG1
+		INHINT
+		INDEX	PIPINDEX
+		CS	PIPAX
+		TS	ZERONDX
+		INHINT
+# Page 379
+		INDEX	PIPINDEX
+		CA	PIPAX
+		AD	ZERONDX
+		EXTEND
+		BZF	CHECKG1
+		INDEX	PIPINDEX
+		CA	PIPAX
+		INDEX	RESULTCT
+		TS	DATAPL
+		TC	FINETIME
+		INDEX	RESULTCT
+		TS	DATAPL +1
+		INDEX	RESULTCT
+		LXCH	DATAPL +2
+		RELINT
+ENDCHKG		TC	QPLACE
+
+ZEROING		TS	L
+		TCF	+2
+ZEROING1	TS	ZERONDX
+		CAF	ZERO
+		INDEX	L
+		TS	0
+		INCR	L
+		CCS	ZERONDX
+		TCF	ZEROING1
+		TC	Q
+
+# Page 380
+ERTHRVSE	DLOAD	PDDL
+			SCHZEROS	# PD24 = (SIN             -COS     0)(OMEG/MS)
+			LATITUDE
+		COS	DCOMP
+		PDDL	SIN
+			LATITUDE
+		VDEF	VXSC
+			OMEG/MS
+		STORE	ERVECTOR
+		RTB
+			LOADTIME
+		STOVL	TMARK
+			SCHZEROS
+		STORE	ERCOMP
+		RVQ
+		
+EARTHR		ITA	RTB
+			S2
+			LOADTIME
+		STORE	TEMPTIME
+		DSU	BPL
+			TMARK
+			ERTHR
+		CALL
+			OVERFFIX
+ERTHR		SL	VXSC
+			9D
+			ERVECTOR
+		MXV	VAD
+			XSM
+			ERCOMP
+		STODL	ERCOMP
+			TEMPTIME
+		STORE	TMARK
+		AXT,1	RTB
+		ECADR	ERCOMP
+			PULSEIMU
+		GOTO
+			S2
+			
+EARTHR*		EXTEND
+		QXCH	QPLACES
+		TC	INTPRET
+		CALL
+			EARTHR
+		EXIT
+		TC	IMUSLLLG
+		TC	QPLACES
+		
+SHOW		EXTEND
+# Page 381
+		QXCH	QPLACE
+SHOW1		CA	POSITON
+		TS	DSPTEM2 +2
+		CA	VB06N98
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	ENDTEST1	# V34
+		TC	QPLACE		# V33
+		TCF	SHOW1
+		
+3990DEC		DEC	3990
+VB06N98		VN	0698
+VN0641		VN	0641
+DEC17		=	ND1
+DEC58		DEC	58
+OGCPL		ECADR	OGC
+1SECX		=	1SEC
+XNBADR		GENADR	XNB
+XSMADR		GENADR	XSM
+		BLOCK	2
+		COUNT*	$$/P07
+FINETIME	INHINT			# RETURNS WITH INTERRUPT INHIBITED
+		EXTEND
+		READ	LOSCALAR
+		TS	L
+		EXTEND
+		RXOR	LOSCALAR
+		EXTEND
+		BZF	+4
+		EXTEND
+		READ	LOSCALAR
+		TS	L
+	+4	CS	POSMAX
+		AD	L
+		EXTEND
+		BZF	FINETIME +1
+		EXTEND
+		READ	HISCALAR
+		TC Q
+		
diff --git a/INFLIGHT_ALIGNMENT_ROUTINES.s b/INFLIGHT_ALIGNMENT_ROUTINES.s
new file mode 100644
index 0000000..55c0730
--- /dev/null
+++ b/INFLIGHT_ALIGNMENT_ROUTINES.s
@@ -0,0 +1,304 @@
+# Copyright:	Public domain.
+# Filename:	INFLIGHT_ALIGNMENT_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:	1355-1364
+# Mod history:	2009-05-14 RSB	Adapted 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 1355
+		BANK	22
+		SETLOC	INFLIGHT
+		BANK
+
+		EBANK=	XSM
+
+# CALCGTA COMPUTES THE GYRO TORQUE ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION.
+#
+# THE INPUT IS THE DESIRED STABLE MEMBER COORDINATES REFERRED TO PRESENT STABLE MEMBER COORDINATES.  THE THREE
+# HALF-UNIT VECTORS ARE STORED AT XDC, YDC, AND ZDC.
+#
+# THE OUTPUTS ARE THE THREE GYRO TORQUE ANGLES TO BE APPLIED TO THE Y, Z, AND X GYROS AND ARE STORED DP AT IGC,
+# MGC, AND OGC RESPECTIVELY.
+
+		COUNT	23/INFLT
+		
+CALCGTA		ITA	DLOAD		# PUSHDOWN 00-03, 16D-27D, 34D-37D
+			S2		# XDC = (XD1 XD2 XD3)
+			XDC		# YDC = (YD1 YD2 YD3)
+		PDDL	PDDL		# ZDC = (ZD1 ZD2 ZD3)
+			HI6ZEROS
+			XDC 	+4
+		DCOMP	VDEF
+		UNIT
+		STODL	ZPRIME		# ZP = UNIT(-XD3 0 XD1) = (ZP1 ZP2 ZP3)
+			ZPRIME
+
+		SR1
+		STODL	SINTH		# SIN(IGC) = ZP1
+			ZPRIME 	+4
+		SR1
+		STCALL	COSTH		# COS(IGC) = ZP3
+			ARCTRIG
+
+		STODL	IGC		# Y GYRO TORQUING ANGLE   FRACTION OF REV.
+			XDC 	+2
+		SR1
+		STODL	SINTH		# SIN(MGC) = XD2
+			ZPRIME
+
+		DMP	PDDL
+			XDC 	+4	# PD00 = (ZP1)(XD3)
+			ZPRIME 	+4
+
+		DMP	DSU
+			XDC		# MPAC = (ZP3)(XD1)
+		STADR
+		STCALL	COSTH		# COS(MGC) = MPAC - PD00
+			ARCTRIG
+# Page 1356
+		STOVL	MGC		# Z GYRO TORQUING ANGLE   FRACTION OF REV.
+			ZPRIME
+		DOT
+			ZDC
+		STOVL	COSTH		# COS(OGC) = ZP . ZDC
+			ZPRIME
+		DOT
+			YDC
+		STCALL	SINTH		# SIN(OGC) = ZP . YDC
+			ARCTRIG
+
+		STCALL	OGC		# X GYRO TORQUING ANGLE   FRACTION OF REV.
+			S2
+
+# Page 1357
+# ARCTRIG COMPUTES AN ANGLE GIVEN THE SINE AND COSINE OF THIS ANGLE.
+#
+# THE INPUTS ARE SIN/4 AND COS/4 STORED DP AT SINTH AND COSTH.
+#
+# THE OUTPUT IS THE CALCULATED ANGLE BETWEEN +.5 AND -.5 REVOLUTIONS AND STORED AT THETA.  THE OUTPUT IS ALSO
+# AVAILABLE AT MPAC.
+
+ARCTRIG		DLOAD	ABS		# PUSHDOWN  16D-21D
+			SINTH
+		DSU	BMN
+			QTSN45		# ABS(SIN/4) - SIN(45)/4
+			TRIG1		# IF (-45,45) OR (135,-135)
+
+		DLOAD	SL1		# (45,135) OR (-135,-45)
+			COSTH
+		ACOS	SIGN
+			SINTH
+		STORE	THETA		# X = ARCCOS(COS) WITH SIGN(SIN)
+		RVQ
+
+TRIG1		DLOAD	SL1		# (-45,45) OR (135,-135)
+			SINTH
+		ASIN
+		STODL	THETA		# X = ARCSIN(SIN) WITH SIGN(SIN)
+			COSTH
+		BMN
+			TRIG2		# IF (135,-135)
+
+		DLOAD	RVQ
+			THETA		# X = ARCSIN(SIN)   (-45,45)
+
+TRIG2		DLOAD	SIGN		# (135,-135)
+			HIDPHALF
+			SINTH
+		DSU
+			THETA
+		STORE	THETA		# X = .5 WITH SIGN(SIN) - ARCSIN(SIN)
+		RVQ			#	(+) - (+) OR (-) - (-)
+
+# Page 1358
+# SMNB, NBSM, AND AXISROT, WHICH USED TO APPEAR HERE, HAVE BEEN
+# COMBINED IN A ROUTINE CALLED AX*SR*T, WHICH APPEARS AMONG THE POWERED
+# FLIGHT SUBROUTINES.
+
+# Page 1359
+# CALCGA COMPUTES THE CDU DRIVING ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION.
+#
+# THE INPUTS ARE  1) THE NAVIGATION BASE COORDINATES REFERRED TO ANY COORDINATE SYSTEM.  THE THREE HALF-UNIT
+# VECTORS ARE STORED AT XNB, YNB, AND ZNB.  2) THE DESIRED STABLE MEMBER COORDINATES REFERRED TO THE SAME
+# COORDINATE SYSTEM ARE STORED AT XSM, YSM, AND ZSM.
+#
+# THE OUTPUTS ARE THE THREE CDU DRIVING ANGLES AND ARE STORED SP AT THETAD, THETAD +1, AND THETAD +2.
+
+CALCGA		SETPD			# PUSHDOWN 00-05, 16D-21D, 34D-37D
+			0
+		VLOAD	VXV
+			XNB		# XNB = OGA (OUTER GIMBAL AXIS)
+			YSM		# YSM = IGA (INNER GIMBAL AXIS)
+		UNIT	PUSH		# PD0 = UNIT(OGA X IGA) = MGA
+
+		DOT	ITA
+			ZNB
+			S2
+		STOVL	COSTH		# COS(OG) = MGA . ZNB
+			0
+		DOT
+			YNB
+		STCALL	SINTH		# SIN(OG) = MGA . YNB
+			ARCTRIG
+		STOVL	OGC
+			0
+
+		VXV	DOT		# PROVISION FOR MG ANGLE OF 90 DEGREES
+			XNB
+			YSM
+		SL1
+		STOVL	COSTH		# COS(MG) = IGA . (MGA X OGA)
+			YSM
+		DOT
+			XNB
+		STCALL	SINTH		# SIN(MG) = IGA . OGA
+			ARCTRIG
+		STORE	MGC
+
+		ABS	DSU
+			.166...
+		BPL
+			GIMLOCK1	# IF ANGLE GREATER THAN 60 DEGREES
+
+CALCGA1		VLOAD	DOT
+			ZSM
+			0
+		STOVL	COSTH		# COS(IG) = ZSM . MGA
+			XSM
+# Page 1360
+		DOT	STADR
+		STCALL	SINTH		# SIN(IG) = XSM . MGA
+			ARCTRIG
+
+		STOVL	IGC
+			OGC
+		RTB	BONCLR
+			V1STO2S
+			CPHIFLAG
+			S2
+		STCALL	THETAD
+			S2
+
+GIMLOCK1	EXIT
+		TC	ALARM
+		OCT	00401
+		TC	UPFLAG		# GIMBAL LOCK HAS OCCURRED
+		ADRES	GLOKFAIL
+
+		TC	INTPRET
+		GOTO
+			CALCGA1
+
+# Page 1361
+# AXISGEN COMPUTES THE COORDINATES OF ONE COORDINATE SYSTEM REFERRED TO ANOTHER COORDINATE SYSTEM.
+#
+# THE INPUTS ARE  1) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM A STORED AT STARAD.  2) THE STAR2 VECTOR
+# REFERRED TO COORDINATE SYSTEM A STORED AT STARAD +6.  3) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM B STORED
+# AT LOCATION 6 OF THE VAC AREA.  4) THE STAR2 VECTOR REFERRED TO COORDINATE SYSTEM B STORED AT LOCATION 12D OF
+# THE VAC AREA.
+#
+# THE OUTPUT DEFINES COORDINATE SYSTEM A REFERRED TO COORDINATE SYSTEM B.  THE THREE HALF-UNIT VECTORS ARE STORED
+# AT LOCATIONS XDC, XDC +6, XDC +12D, AND STARAD, STARAD +6, STARAD +12D.
+
+AXISGEN		AXT,1	SSP		# PUSHDOWN 00-30D, 34D-37D
+			STARAD 	+6
+			S1
+			STARAD 	-6
+
+		SETPD
+			0
+AXISGEN1	VLOAD*	VXV*		# 06D	UA = S1
+			STARAD 	+12D,1	#	STARAD +00D	UB = S1
+			STARAD 	+18D,1
+		UNIT			# 12D	VA = UNIT(S1 X S2)
+		STORE	STARAD 	+18D,1	#	STARAD +06D	VB = UNIT(S1 X S2)
+		VLOAD*
+			STARAD 	+12D,1
+
+		VXV*	VSL1
+			STARAD 	+18D,1	# 18D	WA = UA X VA
+		STORE	STARAD 	+24D,1	#	STARAD +12D	WB = UB X VB
+
+		TIX,1
+			AXISGEN1
+
+		AXC,1	SXA,1
+			6
+			30D
+
+		AXT,1	SSP
+			18D
+			S1
+			6
+
+		AXT,2	SSP
+			6
+			S2
+			2
+
+AXISGEN2	XCHX,1	VLOAD*
+			30D		# X1=-6 X2=+6	X1=-6 X2=+4	X1=-6 X2=+2
+			0,1
+
+# Page 1362
+		VXSC*	PDVL*		# J=(UA)(UB1)	J=(UA)(UB2)	J=(UA)(UB3)
+			STARAD 	+6,2
+			6,1
+		VXSC*
+			STARAD 	+12D,2
+		STOVL*	24D		# K=(VA)(VB1)	J=(VA)(VB2)	J=(VA)(VB3)
+			12D,1
+
+		VXSC*	VAD
+			STARAD 	+18D,2	# L=(WA)(WB1)	J=(WA)(WB2)	J=(WA)(WB3)
+		VAD	VSL1
+			24D
+		XCHX,1	UNIT
+			30D
+		STORE	XDC 	+18D,1	# XDC = L+J+K	YDC = L+J+K	ZDC = L+J+K
+
+		TIX,1
+			AXISGEN3
+
+AXISGEN3	TIX,2
+			AXISGEN2
+
+		VLOAD
+			XDC
+		STOVL	STARAD
+			YDC
+		STOVL	STARAD 	+6
+			ZDC
+		STORE	STARAD 	+12D
+
+		RVQ
+
+# Page 1363
+QTSN45		2DEC	.1768
+.166...		2DEC	.1666666667
+
+# Page 1364 (empty page)
+
+
diff --git a/INPUT_OUTPUT_CHANNEL_BIT_DESCRIPTIONS.s b/INPUT_OUTPUT_CHANNEL_BIT_DESCRIPTIONS.s
new file mode 100644
index 0000000..a838518
--- /dev/null
+++ b/INPUT_OUTPUT_CHANNEL_BIT_DESCRIPTIONS.s
@@ -0,0 +1,224 @@
+# Copyright:	Public domain.
+# Filename:	INPUT_OUTPUT_CHANNEL_BIT_DESCRIPTIONS.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:	Onno Hommes <ohommes@cmu.edu>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	0054-0060
+# Mod history:	2009-05-14 OH	Transcribed from 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 001 of AGC program LMY99 by NASA 2021112-61
+#	16:27 JULY 14, 1969 
+
+# Page 54
+
+# *** CHANNEL DESCRIPTION WORDS ARE ALLOCATED IN ERASABLE ASSIGNMENTS ***
+
+# CHANNEL 1	IDENTICAL TO COMPUTER REGISTER L (0001)
+
+# CHANNEL 2	IDENTICAL TO COMPUTER REGISTER Q (0002)
+
+# CHANNEL 3	HISCALAR: INPUT CHANNEL; MOST SIGNIFICANT 14 BITS FROM 33 STAGE BINARY COUNTER. SCALE
+#		FACTOR IS B23 IN CSEC, SO MAX VALUE ABOUT 23.3 HOURS AND LEAST SIGNIFICANT BIT 5.12 SECS.
+
+# CHANNEL 4	LOSCALAR: INPUT CHANNEL; NEXT MOST SIGNIFICANT 14 BITS FROM THE 33 STAGE BINARY COUNTER
+#		ASSOCIATED WITH CHANNEL 3. SCALE FACTOR IS B9 IN CSEC. SO MAX VAL IS 5.12 SEC AND LEAST
+#		SIGNIFICANT BIT IS 1/3200 SEC. SCALE FACTOR OF D.P. WORD WITH CHANNEL 3 IS B23 CSEC.
+
+# CHANNEL 5	PYJETS:  OUTPUT CHANNEL; PITCH RCS JET CONTROL.  (REACTION CONTROL SYSTEM) USES BITS 1-8.
+
+# CHANNEL 6	ROLLJETS: OUTPUT CHANNEL; ROLL RCS JET CONTROL.  (REACTION CONTROL SYSTEM) USES BIT 1-8.
+
+# CHANNEL 7	SUPERBNK: OUTPUT CHANNEL; NOT RESET BY RESTART; FIXED EXTENSION BITS USED TO SELECT THE
+#		APPROPRIATE FIXED MEMORY BANK IF FBANK IS 30 OCTAL OR MORE.  USES BITS 5-7.
+
+# CHANNEL 10	OUT0: OUTPUT CHANNEL; REGISTER USED TO TRANSMIT LATCHING-RELAY DRIVING INFORMATION FOR
+#		THE DISPLAY SYSTEM.  BITS 15-12 ARE SET TO THE ROW NUMBER (1-14 OCTAL) OF THE RELAY TO BE
+#		CHANGED AND BITS 11-1 CONTAIN THE REQUIRED SETTINGS FOR THE RELAYS IN THE ROW.
+
+# CHANNEL 11	DSALMOUT: OUTPUT CHANNEL; REGISTER WHOSE BITS ARE USED FOR ENGINE ON-OFF CONTROL AND TO
+#		DRIVE INDIVIDUAL INDICATORS OF THE DISPLAY SYSTEM.  BITS 1-7 ARE A RELAYS.
+#
+#		BIT 1		ISS WARNING
+#		BIT 2		LIGHT COMPUTER ACTIVITY LAMP
+#		BIT 3		LIGHT UPLINK ACTIVITY LAMP
+#		BIT 4		LIGHT TEMP CAUTION LAMP
+#		BIT 5		LIGHT KEYBOARD RELEASE LAMP
+#		BIT 6		FLASH VERB AND NOUN LAMPS
+#		BIT 7		LIGHT OPERATOR ERROR LAMP
+# Page 55
+#		BIT 8		SPARE
+#		BIT 9		TEST CONNECTOR OUTBIT
+#		BIT 10		CAUTION RESET
+#		BIT 11		SPARE
+#		BIT 12		SPARE
+#		BIT 13		ENGINE ON
+#		BIT 14		ENGINE OFF
+#		BIT 15		SPARE
+
+# CHANNEL 12	CHAN12: OUTPUT CHANNEL; BITS USED TO DRIVE NAVIGATION AND SPACECRAFT HARDWARE.
+#
+#		BIT 1		ZERO RR CDU; CDU'S GIVE RRADAR INFORMATION FOR LM
+#		BIT 2		ENABLE CDU RADAR ERROR COUNTERS
+#		BIT 3		NOT USED
+#		BIT 4		COARSE ALIGN ENABLE OF IMU
+#		BIT 5		ZERO IMU CDU'S
+#		BIT 6		ENABLE IMU ERROR COUNTER, CDU ERROR COUNTER.
+#		BIT 7		SPARE
+#		BIT 8		DISPLAY INERTIAL DATA
+#		BIT 9		-PITCH GIMBAL TRIM (BELL MOTION) DESCENT ENGINE
+#		BIT 10		+PITCH GIMBAL TRIM (BELL MOTION) DESCENT ENGINE
+#		BIT 11		-ROLL GIMBAL TRIM (BELL MOTION) DESCENT ENGINE
+#		BIT 12		+ROLL GIMBAL TRIM (BELL MOTION) DESCENT ENGINE
+#		BIT 13		LR POSITION 2 COMMAND
+#		BIT 14		ENABLE RENDEZVOUS RADAR LOCK-ON; AUTO ANGLE TRACK'G
+#		BIT 15		ISS TURN ON DELAY COMPLETE
+
+# Page 56
+# CHANNEL 13	CHAN13: OUTPUT CHANNEL.
+#
+#		BIT 1		RADAR C		PROPER SETTING OF THE A,B,C MATRIX
+#		BIT 2		RADAR B		SELECTS CERTAIN RADAR
+#		BIT 3		RADAR A		PARAMETERS TO BE READ.
+#		BIT 4		RADAR ACTIVITY
+#		BIT 5		NOT USED (CONNECTS AN ALTERNATE INPUT TO UPLINK)
+#		BIT 6		BLOCK INPUTS TO UPLINK CELL
+#		BIT 7		DOWNLINK TELEMETRY WORD ORDER CODE BIT
+#		BIT 8		RHC COUNTER ENABLE (READ HAND CONTROLLER ANGLES)
+#		BIT 9		START RHC READ INTO COUNTERS IS BIT 8 SET
+#		BIT 10		TEST ALARMS, TEST DSKY LIGHTS
+#		BIT 11		ENABLE STANDBY
+#		BIT 12		RESET TRAP 31-A		ALWAYS APPEAR TO BE SET TO 0
+#		BIT 13		RESET TRAP 31-B		ALWAYS APPEAR TO BE SET TO 0
+#		BIT 14		RESET TRAP 32		ALWAYS APPEAR TO BE SET TO 0
+#		BIT 15		ENABLE T6 RUPT
+
+# CHANNEL 14	CHAN14: OUTPUT CHANNEL; USED TO CONTROL COMPUTER COUNTER CELLS (CDU, GYRO, SPACECRAFT FUNC).
+#
+#		BIT 1		OUTLINK ACTIVITY (NOT USED)
+#		BIT 2		ALTITUDE RATE OR ALTITUDE SELECTOR
+#		BIT 3		ALTITUDE METER ACTIVITY
+#		BIT 4		THRUST DRIVE ACTIVITY FOR DESCENT ENGINE
+#		BIT 5		SPARE
+#		BIT 6		GYRO ENABLE POWER FOR PULSES
+#		BIT 7		GYRO SELECT B		PAIR OF BITS IDENTIFIES AXIS OF
+#		BIT 8		GYRO SELECT A		GYRO SYSTEM TO BE TORQUED.
+#		BIT 9		GYRO TORQUING COMMAND IN NEGATIVE DIRECTION.
+# Page 57
+#		BIT 10		GYRO ACTIVITY
+#		BIT 11		DRIVE CDU S
+#		BIT 12		DRIVE CDU T
+#		BIT 13		DRIVE CDU Z
+#		BIT 14		DRIVE CDU Y
+#		BIT 15		DRIVE CDU X
+
+# CHANNEL 15	MNKEYIN: INPUT CHANNEL; KEY CODE INPUT FROM KEYBOARD OF DSKY, SENSED BY PROGRAM WHEN
+#		PROGRAM INTERRUPT #5 IS RECEIVED.  USED BITS 5-1
+
+# CHANNEL 16	NAVKEYIN: INPUT CHANNEL; OPTICS MARK INFORMATION AND NAVIGATION PANEL DSKY (CM) OR THRUST
+#		CONTROL (LM) SENSED BY PROGRAM THEN PROGRAM INTERRUPT #6 IS RECEIVED.  USES BITS 3-7 ONLY.
+#
+#		BIT 1		NOT ASSIGNED
+#		BIT 2		NOT ASSIGNED
+#		BIT 3		OPTICS X-AXIS MARK SIGNAL FOR ALIGN OPTICAL TSCOPE
+#		BIT 4		OPTICS Y-AXIS MARK SIGNAL FOR AOT
+#		BIT 5		OPTICS MARK REJECT SIGNAL
+#		BIT 6		DESCENT+ ; CREW DESIRED SLOWING RATE OF DESCENT
+#		BIT 7		DESCENT- ; CREW DESIRED SPEEDING UP RATE OF D'CENT
+
+# NOTE: ALL BITS IN CHANNELS 30-33 ARE INVERTED AS SENSED BY THE PROGRAM, SO THAT A VALUE OF ZERO MEANS
+# THAT THE INDICATED SIGNAL IS PRESENT.
+
+# CHANNEL 30	INPUT CHANNEL
+#
+#		BIT 1		ABORT WITH DESCENT STAGE
+#		BIT 2		UNUSED
+#		BIT 3		ENGINE ARMED SIGNAL
+#		BIT 4		ABORT WITH ASCENT ENGINE STAGE
+#		BIT 5		AUTO THROTTLE; COMPUTER CONTROL OF DESCENT ENGINE
+# Page 58
+#		BIT 6		DISPLAY INERTIAL DATA
+#		BIT 7		RR CDU FAIL
+#		BIT 8		SPARE
+#		BIT 9		IMU OPERATE WITH NO MALFUNCTION
+#		BIT 10		LM COMPUTER (NOT AGS) HAS CONTROL OF LM.
+#		BIT 11		IMU CAGE COMMAND TO DRIVE IMU GIMBAL ANGLES TO 0.
+#		BIT 12		IMU CDU FAIL (MALFUNCTION OF IMU CDU,S)
+#		BIT 13		IMU FAIL (MALFUCTION OF IMU STABILIZATION LOOPS)
+#		BIT 14		ISS TURN ON REQUESTED
+#		BIT 15		TEMPERATURE OF STABLE MEMBER WITHIN DESIGN LIMITS
+
+# CHANNEL 31	INPUT CHANNEL; BITS ASSOCIATED WITH THE ATTITUDE CONTROLLER, TRANSLATIONAL CONTROLLER,
+#		AND SPACECRAFT ATTITUDE CONTROL; USED BY RCS DAP.
+#
+#		BIT 1		ROTATION (BY RHC) COMMANDED IN POSITIVE PITCH DIRECTION; MUST BE IN MINIMUM IMPULSE MODE.
+#				ALSO POSITIVE ELEVATION CHANGE FOR LANDING POINT DESIGNATOR
+#		BIT 2		AS BIT 1 EXCEPT NEGATIVE PITCH AND ELEVATION.
+#		BIT 3		ROTATION (BY RHC) COMMANDED IN POSITIVE YAW DIRECTION; MUST BE IN MINIMUM IMPULSE MODE.
+#		BIT 4		AS BIT 3 EXCEPT NEGATIVE YAW
+#		BIT 5		ROTATION (BY RHC) COMMANDED IN POSITIVE ROLL DIRECTION; MUST BE IN MINIMUM IMPULSE MODE.
+#				ALSO POSITIVE AZIMUTH CHANGE FOR LANDING POINT DESIGNATOR.
+#		BIT 6		AS BIT 5 EXCEPT NEGATIVE ROLL AND AZIMUTH
+#		BIT 7		TRANSLATION IN +X DIRECTION COMMANDED BY THC
+#		BIT 8		TRANSLATION IN -X DIRECTION COMMANDED BY THC
+#		BIT 9		TRANSLATION IN +Y DIRECTION COMMANDED BY THC
+#		BIT 10		TRANSLATION IN -Y DIRECTION COMMANDED BY THC
+#		BIT 11		TRANSLATION IN +Z DIRECTION COMMANDED BY THC
+#		BIT 12		TRANSLATION IN -Z DIRECTION COMMANDED BY THC
+# Page 59
+#		BIT 13		ATTITUDE HOLD MODE ON SCS MODE CONTROL SWITCH
+#		BIT 14		AUTO STABILIZATION OF ATTITUDE ON SCS MODE SWITCH
+#		BIT 15		ATTITUDE CONTROL OUT OF DETENT (RHC NOT IN NEUTRAL)
+
+# CHANNEL 32	INPUT CHANNEL.
+#
+#		BIT 1		THRUSTERS 2 & 4 DISABLED BY CREW
+#		BIT 2		THRUSTERS 5 & 8 DISABLED BY CREW
+#		BIT 3		THRUSTERS 1 & 3 DISABLED BY CREW
+#		BIT 4		THRUSTERS 6 & 7 DISABLED BY CREW
+#		BIT 5		THRUSTERS 14 & 16 DISABLED BY CREW
+#		BIT 6		THRUSTERS 13 & 15 DISABLED BY CREW
+#		BIT 7		THRUSTERS 9 & 12 DISABLED BY CREW
+#		BIT 8		THRUSTERS 10 & 11 DISABLED BY CREW
+#		BIT 9		DESCENT ENGINE DISABLED BY CREW
+#		BIT 10		APPARENT DESCENT ENGINE GIMBAL FAILURE
+#		BIT 14		INDICATES PROCEED KEY IS DEPRESSED
+
+# CHANNEL 33	CHAN33: INPUT CHANNEL; FOR HARDWARE STATUS AND COMMAND INFORMATION.  BITS 15-11 ARE FLIP-
+#		FLOP BITS RESET BY A CHANNEL "WRITE" COMMAND THAT ARE RESET BY A RESTART & BY T4RUPT LOOP.
+#
+#		BIT 1		SPARE
+#		BIT 2		RR AUTO-POWER ON
+#		BIT 3		RR RANGE LOW SCALE
+#		BIT 4		RR DATA GOOD
+#		BIT 5		LR RANGE DATA GOOD
+#		BIT 6		LR POS1
+#		BIT 7		LR POS2
+# Page 60
+#		BIT 8		LR VEL DATA GOOD
+#		BIT 9		LR RANGE LOW SCALE
+#		BIT 10		BLOCK UPLINK INPUT
+#		BIT 11		UPLINK TOO FAST
+#		BIT 12		DOWNLINK TOO FAST
+#		BIT 13		PIPA FAIL
+#		BIT 14		WARNING OF REPEATED ALARMS: RESTART, COUNTER FAIL, VOLTAGE FAIL, AND SCALAR DOUBLE.
+#		BIT 15		LGC OSCILLATOR STOPPED
+
+# CHANNEL 34	DNT M1: OUTPUT CHANNEL; DOWNLINK 1: FIRST OF TWO WORDS SERIALIZATION.
+# CHANNEL 35	DNT M2: OUTPUT CHANNEL; DOWNLINK 2: SECOND OF TWO WORDS SERIALIZATION.
+
+
diff --git a/INTEGRATION_INITIALIZATION.s b/INTEGRATION_INITIALIZATION.s
new file mode 100644
index 0000000..6e120ec
--- /dev/null
+++ b/INTEGRATION_INITIALIZATION.s
@@ -0,0 +1,1182 @@
+# Copyright:	Public domain.
+# Filename:	INTEGRATION_INITIALIZATION.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:	1309-1333
+# Mod history:	2009-05-15 RSB	Adapted from the Colossus249/ file of the
+#				same name, using Comanche055 page images.
+#		2009-05-20 RSB	Corrections:  fixed an interpreter instruction,
+#				fixed a SETLOC.
+#		2009-05-23 RSB	In SETCOAST, corrected MOONTHIS to AMOONFLG.
+#
+# 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 1309
+# 1.0 INTRODUCTION
+# ----------------
+#
+# FROM A USER'S POINT OF VIEW, ORBITAL INTEGRATION IS ESSENTIALLY THE SAME AS THE 278 INTEGRATION
+# PROGRAM.  THE SAME ENTRANCES TO THE PROGRAM WILL BE MAINTAINED, THE SAME STALLING ROUTINE WILL BE USED AND
+# OUTPUT WILL STILL BE VIA THE PUSHLIST.  THE PRIMARY DIFFERENCES TO A USER INVOLVE THE ADDED CAPABILITY OF
+# TERMINATING INTEGRATION AT A SPECIFIC FINAL RADIUS AND THE DIFFERENCE IN STATE VECTOR SCALING INSIDE AND OUTSIDE
+# THE LUNAR SPHERE OF INFLUENCE.
+#
+# IN ORDER TO MAKE THE CSM(LEM)PREC AND CSM(LEM)CONIC ENTRANCES SIMILAR TO FLIGHT 278, THE INTEGRATION PROGRAM
+# WILL ITSELF SET THE FINAL RADIUS (RFINAL) TO 0 SO THAT REACHING THE DESIRED TIME ONLY WILL TERMINATE
+# INTEGRATION.  THE DP REGISTER RFINAL MUST BE SET BY USERS OF INTEGRVS AND INTEGRV, AND MUST BE DONE AFTER THE
+# CALL TC INTSTALL.
+#
+# WHEN THE LM IS ON THE LUNAR SURFACE (INDICATED BY LUNAR SURFACE FLAG SET) CALLS TO LEMCONIC, LEMPREC, AND
+# INTEGRV WITH VINFLAG = 0 WILL RESULT IN THE USE OF THE PLANETARY INERTIAL ORIENTATION SUBROUTINES TO PROVIDE
+# BOTH THE LM'S POSITION AND VELOCITY IN THE REFERENCE COORDINATE SYSTEM.
+# THE PROGRAM WILL PROVIDE OUTPUT AS IF INTEGRATION WAS USED.  THAT IS, THE PUSHLIST WILL BE SET AS NOTED BELOW AND
+# THE PERMANENT STATE VECTOR UPDATED WHEN SPECIFIED BY AN INTEGRV CALL.
+#
+# USERS OF INTEGRVS DESIRING INTEGRATION (INTYPFLG = 0) SHOULD NOTE THAT THE OBLATENESS PERTURBATION COMPUTATION
+# IN LUNAR ORBIT IS TIME DEPENDENT.  THEREFORE, THE USER SHOULD SUPPLY AN INITIAL STATE VECTOR VALID AT SOME REAL
+# TIME AND THE DESIRED TIME (TDEC1) ALSO AT SOME REAL TIME.  FOR CONIC "INTEGRATION" THE USER MAY STILL USE ZERO
+# AS THE INITIAL TIME AND DELTA TIME AS THE DESIRED TIME.
+#
+# 2.0 CENTRAL DESCRIPTION
+# -----------------------
+#
+# THE INTEGRATION PROGRAM OPERATES AS A CLOSED INTERPRETIVE SUBROUTINE AND PERFORMS THESE FUNCTIONS --
+#	1) INTEGRATES (PRECISION OR CONIC) EITHER CSM OR LM STATE VECTOR
+#	2) INTEGRATES THE W-MATRIX
+#	3) PERMANENT OR TEMPORARY UPDATE OF THE STATE VECTOR
+#
+# THERE ARE SIX ENTRANCES TO THE INTEGRATION PROGRAM.  FOUR OF THESE (CSMPREC, LEMPREC, CSMCONIC, LEMCONIC) SET
+# ALL THE FLAGS REQUIRED IN THE INTEGRATION PROGRAM ITSELF TO CAUSE THE PRECISION OR CONIC INTEGRATION (KEPLER) OF
+# THE LM OR CSM STATE VECTOR, AS THE NAMES SUGGEST.  ONE ENTRANCE (INTEGRVS) PERMITS THE CALLING PROGRAM TO
+# PROVIDE A STATE VECTOR TO BE INTEGRATED.  THE CALLING PROGRAM MUST SET THE FLAGS INDICATING (1) PRECISION OR
+# CONIC INTEGRATION, (2) IN OR OUT OF LUNAR SPHERE, (3) MIDCOURSE OR NOT, AND THE INTEGRATION PROGRAM COMPLETES
+# THE FLAG SETTING TO BYPASS W-MATRIX INTEGRATION.  THE LAST ENTRANCE (INTEGRV, USED IN GENERAL BY THE
+# NAVIGATION PROGRAMS) PERMITS THE CALLER TO SET FIVE FLAGS (NOT MOONFLAG OR MIDFLAG) BUT NOT TO INPUT A STATE
+# VECTOR.  ANY PROGRAM WHICH CALLS INTEGRVS OR INTEGRV MUST CALL INTSTALL BEFORE IT SETS THE INTEGRATION FLAGS
+# AND/OR STATE VECTOR.
+#
+# THREE SETS OF 42 REGISTERS AND 2 FLAGS ARE USED FOR THE STATE VECTORS.  TWO SETS, WHICH MAY NOT BE OVERLAYED, ARE
+# USED FOR THE PERMANENT STATE VECTORS FOR THE CSM AND LM.  THE THIRD SET, WHICH MAY BE OVERLAYED WHEN INTEGRATION
+# IS NOT BEING DONE, IS USED IN THE COMPUTATIONS.
+#
+# THE PERMANENT STATE VECTORS WILL BE PERIODICALLY UPDATED SO THAT THE VECTORS WILL NOT BE OLDER THAN 4 TIMESTEPS.
+# THE PERMANENT STATE VECTORS WILL ALSO BE UPDATED WHENEVER THE W-MATRIX IS INTEGRATED OR WHEN A CALLER OF INTEGRV
+# SETS STATEFLG (THE NAVIGATION PROGRAMS P20, P22.)
+#
+# Page 1310
+# APPENDIX B OF THE USERS' GUIDE LISTS THE STATE VECTOR QUANTITIES.
+#
+# 2.1 RESTARTS
+#
+# PHASE CHANGES WILL BE MADE IN THE INTEGRATION PROGRAM ONLY FOR THE INTEGRV ENTRANCE (I.E., WHEN THE W-MATRIX IS
+# INTEGRATED OR PERMANENT STATE VECTOR IS UPDATED.)  THE GROUP NUMBER USED WILL BE THAT FOR THE P20-25 PROGRAMS
+# (I.E., GROUP2) WINCE THE INTEGRV ENTRANCE WILL ONLY BE USED BY THESE PROGRAMS.  IF A RESTART OCCURS DURING AN
+# INTEGRATION OF THE STATE VECTOR ONLY, THE RECOVERY WILL BE TO THE LAST PHASE IN THE CALLING PROGRAM.  CALLING
+# PROGRAMS WHICH USE THE INTEGRV OR INTEGRVS ENTRANCE OF INTEGRATION WHOULD ENSURE THAT IF PHASE CHANGING IS DONE
+# THAT IT IS PRIOR TO SETTING THE INTEGRATION INPUTS IN THE PUSHLIST.
+# THIS IS BECAUSE THE PUSHLIST IS LOST DURING A RESTART.
+#
+# 2.2 SCALING
+#
+# THE INTEGRATION ROUTIEN WILL MAINTAIN THE PERMANENT MEMORY STATE VECTORS IN THE SCALING AND UNITS DEFINED IN
+# APPENDIX B OF THE USERS' GUIDE.  THE SCALING OF THE OUTPUT POSITION VECTOR DEPENDS ON THE ORIGIN OF THE COORDINATE
+# SYSTEM AT THE DESIRED INTEGRATION TIME.  THE COORDINATE SYSTEM TRANSFORMATION WILL BE DONE AUTOMATICALLY ON
+# MULTIPLE TIMESTEP ENCKE INTEGRATION ONLY.  THUS IT IS POSSIBLE TO HAVE OUTPUT FROM SUCCESSIVE INTEGRATIONS IN
+# DIFFERENT SCALING.
+# HOWEVER, RATT, VATT WILL ALWAYS BE SCALED THE SAME.
+#
+# 3.0 INPUT/OUTPUT
+# ----------------
+#
+# PROGRAM INPUTS ARE THE FLAGS DESCRIBED IN APPENDIX A AND THE PERMANENT STATE VECTOR QUANTITIES DESCRIBED IN
+# APPENDIX B OF THE USERS' GUIDE, PLUS THE DESIRED TIME TO INTEGRATE TO IN TDEC1 (A PUSH LIST LOCATION).
+# FOR INTEGRVS, THE RCV,VCV,TET OR THE TEMPORARY STATE VECTOR MUST BE SET, PLUS MOONFLAG AND MIDFLAG
+#
+# FOR SIMULATION THE FOLLOWING QUANTITIES MUST BE PRESET ---
+#										EARTH	MOON
+#										 29	 27
+#	RRECTCSM(LEM) 		RECTIFIED POSITION VECTOR	METERS		2	2
+#
+#										 7	 5
+#	VRECTCSM(LEM)		RECTIFIED VELOCITY VECTOR	M/CSEC		2	2
+#
+#										 28	 28
+#	TETCSM(LEM)		TIME STATE VECTOR IS VALID	CSEC		2	2
+#				CUSTOMARILY 0, BUT NOTE LUNAR
+#				ORBIT DEPENDENCE ON REAL TIME.
+#
+#										 22	 18
+#	DELTAVCSM(LEM)		POSITION DEVIATION		METERS		2	2
+#				0 IF TCCSM(LEM) = 0
+#
+#										 3	 -1
+#	NUVCSM(LEM)		VELOCITY DEVIATION		M/CSEC		2	2
+#				0 IF TCCSM(LEM) = 0
+# Page 1311
+#										 29	 27
+#	RCVSM(LEM)		CONIC POSITION			METERS		2	2
+#				EQUALS RRECTCSM(LEM) IF
+#				TCCSM(LEM) = 0
+#
+#										 7	 5
+#	VCVCSM(LEM)		CONIC VELOCITY			M/CSEC		2	2
+#				EQUALS VRECTCSM(LEM) IF
+#				TCCSM(LEM) = 0
+#
+#										 28	 28
+#	TCCSM(LEM)		TIME SINCE RECTIFICATION	CSECS		2	2
+#				CUSTOMARILY 0
+#
+#								 1/2		 17	 16
+#	XKEPCSM(LEM)		RDOT OF KEPLER'S EQUATION	M		2	2
+#				0 IF TCCSM(LEM) = 0
+#
+#	CMOONFLG		PERMANENT FLAGS CORRESPONDING			0	0
+#	CMIDFLAG		TO MOONFLAG AND MIDFLAG				0,1	0,1
+#	LMOONFLG		C = CSM, L = LM					0	0
+#	LMIDFLG									0,1	0,1
+#
+#	SURFFLAG		LUNAR SURFACE FLAG				0,1	0,1
+#
+# IN ADDITION, IF (L)CMIDFLAG IS SET, THE INITIAL INPUT VALUES FOR LUNAR
+# SOLAR EPHEMERIDES SUBROUTINE AND PLANETARY INERTIAL ORIENTATION SUB-
+# ROUTINE MUST BE PRESET.
+#
+# OUTPUT
+#	AFTER EVERY CALL TO INTEGRATION
+#									EARTH	MOON
+#									 29	 29
+#	0D	RATT	POSITION			METERS		2	2
+#
+#									 7	 7
+#	6D	VATT	VELOCITY			M/CSEC		2	2
+#
+#									 28	 28
+#	12D	TAT	TIME						2	2
+#
+#									 29	 27
+#	14D	RATT1	POSITION			METERS		2	2
+#
+#									 7 	 5
+#	20D	VATT1	VELOCITY			M/CSEC		2	2
+#
+#						 	 3   2		 36	 30
+#	26D	MU(P)	MU				M /CS		2	2
+#
+#	X1		MUTABLE ENTRY					-2	-10D
+#
+#	X2		COORDINT
+#	X2		COORDINATE SYSTEM ORIGIN			0	2
+#			(THIS, NOT MOONFLAG, SHOULD BE
+# Page 1312
+#			USED TO DETERMINE ORIGIN.)
+#
+# IN ADDITION TO THE ABOVE, THE PERMANENT STATE VECTOR IS UPDATED WHENEVER
+# STATEFLG WAS SET AND WHENEVER A W-MATRIX IS TO BE INTEGRATED.  THE PUSH
+# COUNTER IS SET TO 0 AND OVERFLOW IS CLEARED BEFORE RETURNING TO THE
+# CALLING PROGRAM.
+#
+# 4.0 CALLING SEQUENCES AND SAMPLE CODE
+# -------------------------------------
+#
+#	A) PRECISION ORBITAL INTEGRATION.  CSMPREC, LEMPREC ENTRANCES
+#		L-X	STORE TIME TO 96T5791T5 T 95 PUS L9ST (T4531)
+#		L	CALL
+#		L+1		CSMPREC (OR LEMPREC)
+#		L+2	RETURN
+#	   INPUT							   28
+#		TDEC1 (PD 32D) TIME TO INTEGRATE TO...CENTISECONDS SCALED 2
+#	   OUTPUT
+#		THE DATA LISTED IN SECTION 3.2 PLUS
+#		RQVV	POSITION VECTOR OF VEHICLE WITH RESPECT TO SECONDARY
+#		BODY... METERS B-29 ONLY IF MIDFLAG = DIM0FLAG = 1
+#	B) CONIC INTEGRATION.  CSMCONIC, LEMCONIC ENTRANCES
+#		L-X	STORE TIME IN PUSH LIST (TDEC1)
+#		L	CALL
+#		L+1		CSMCONIC (OR LEMCONIC)
+#	   INPUT/OUTPUT
+#		SAME AS PRECISION INTEGRATION, EXCEPT RQVV NOT SET
+#	C) INTEGRATE GIVEN STATE VECTOR.  INTEGRVS ENTRANCE
+#		CALL
+#				INTSTALL
+#		VLOAD
+#				POSITION VECTOR
+#		STOVL		RCV
+#				VELOCITY VECTOR
+#		STODL		VCV
+#				TIME STATE VECTOR VALID
+#		STODL		TET
+#				FINAL RADIUS
+#		STORE		RFINAL
+#		SET(CLEAR)	SET(CLEAR)
+#				INTYPFLAG
+#				MOONFLAG
+#		SET(CLEAR)	DLOAD
+#				DESIRED TIME
+#		STCALL		TDEC1
+#				INTEGRVS
+#	  INPUT
+#		RCV	POSITION VECTOR			METERS
+#		VCV	VELOCITY VECTOR			M/CSEC
+#		TET	TIME OF STATE VECTOR (MAY = 0)	CSEC B-28
+# Page 1313
+#		TDEC1	TIME TO INTEGRATE TO		CSEC B-28 (PD 32D)
+#			(MAY BE INCREMENT IF TET=0)
+#	  OUTPUT
+#		SAME AS FOR PRECISION OR CONIC INTEGRATION,
+#		DEPENDING ON INTYPFLG.
+#	D) INTEGRATE STATE VECTOR.  INTGRV ENTRANCE
+#		L-X	STORE TIME IN PUSH LIST (TDEC1) (MAY BE DONE AFTER CALL TO INTSTALL)
+#		L-8	CALL
+#		L-7
+#		L-6	SET(CLEAR)	SET(CLEAR)
+#		L-5			VINTFLAG	1=CSM, 0=LM
+#		L-4			INTYPFLAG	1=CONIC, 0=PRECISION
+#		L-3	SET(CLEAR)	SET(CLEAR)
+#		L-2			DIM0FLAG	1=W-MATRIX, 0=NO W-MATRIX
+#		L-1			D6OR9FLG	1=9X9, 0=6X6
+#		L	SET		DLOAD
+#		L+1			STATEFLG	DESIRE PERMANENT UPDATE
+#		L+2			FINAL RAD.	OF STATE VECTOR
+#		L+3	STCALL		RFINAL
+#		L+4			INTEGRV
+#		L	CALL				NORMAL USE -- WILL UPDATE STATE
+#		L+1			INTEGRV		VECTOR IF DIM0FLAG=1. (STATEFLG IS
+#		L+2	RETURN				ALWAYS RESET IN INTEGRATION AFTER
+#							IT USED.)
+#	  INPUT
+#		TDEC1 (PD 32D) TIME TO INTEGRATE TO 	CSEC B-28
+#	  OUTPUT
+#		SAME AS FOR PRECISION OR CONIC INTEGRATION
+#	  THE PROGRAM WILL SET MOONFLAG, MIDFLAG DEPENDING ON
+#	  THE PERMANENT STATE VECTOR REPRESENTATION.
+
+		BANK	11
+		SETLOC	INTINIT
+		BANK
+		EBANK=	RRECTCSM
+		COUNT	13/INTIN
+		
+STATEINT	TC	PHASCHNG
+		OCT	00052
+		CAF	PRIO5
+		TC	FINDVAC
+		EBANK=	RRECTCSM
+		2CADR	STATINT1
+
+		TC	TASKOVER
+STATINT1	TC	INTPRET
+		BON	RTB
+			QUITFLAG
+			NOINT		# NO STATEINT IF V96
+			LOADTIME
+# Page 1314
+		STORE	TDEC1
+		CLEAR	CALL
+			V96ONFLG
+			INTSTALL
+		SET	CALL
+			NODOFLAG
+			SETIFLGS
+		GOTO
+			STATEUP
+600SECS		2DEC	60000
+
+ENDINT		CLEAR	EXIT
+			STATEFLG
+		TC	PHASCHNG
+		OCT	20032
+		EXTEND
+		DCA	600SECS
+		TC	LONGCALL
+		EBANK=	RRECTHIS
+		2CADR	STATEINT
+
+		TC	ENDOFJOB
+SETIFLGS	SET	CLEAR
+			STATEFLG
+			INTYPFLG
+		CLEAR	CLEAR
+			DIM0FLAG
+			D6OR9FLG
+		RVQ
+NOINT		EXIT
+		TC	PHASCHNG
+		OCT	2
+
+		TC	DOWNFLAG
+		ADRES	QUITFLAG
+		
+		TC	ENDOFJOB
+
+# ATOPCSM TRANSFERS RRECT TO RRECT +41 TO RRECTCSM TO RRECTCSM +41
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		ATOPCSM
+#
+# NORMAL EXIT AT L+2
+
+ATOPCSM		STQ	RTB
+			S2
+			MOVEACSM
+		SET	CALL
+# Page 1315		
+			CMOONFLG
+			SVDWN1
+		BON	CLRGO
+			MOONFLAG
+			S2
+			CMOONFLG
+			S2
+MOVEACSM	TC	SETBANK
+		TS	DIFEQCNT	# INITIALIZE INDEX
+		INDEX	DIFEQCNT
+		CA	RRECT
+		INDEX	DIFEQCNT
+		TS	RRECTCSM
+		CCS	DIFEQCNT	# IS TRANSFER COMPLETE
+		TCF	MOVEACSM +1	# NO-LOOP
+		TC	DANZIG		# COMPLETE -- RETURN
+
+# PTOACSM TRANSFERS RRECTCSM TO RRECTCSM +41 TO RRECT TO RRECT +41
+#
+# CALLING SEQUENCE
+#	L	CALL
+#			PTOACSM
+#
+# NORMAL EXIT AT L+2
+
+PTOACSM		RTB	BON
+			MOVEPCSM
+			CMOONFLG
+			SETMOON
+CLRMOON		CLEAR	SSP
+			MOONFLAG
+			PBODY
+			0
+		RVQ
+SETMOON		SET	SSP
+			MOONFLAG
+			PBODY
+			2
+		RVQ
+MOVEPCSM	TC	SETBANK
+		TS	DIFEQCNT
+		INDEX	DIFEQCNT
+		CA	RRECTCSM
+		INDEX	DIFEQCNT
+		TS	RRECT
+		CCS	DIFEQCNT
+		TCF	MOVEPCSM +1
+		TC	DANZIG
+
+# Page 1316
+# ATOPLEM TRANSFERS RRECT TO RRECT +41 TO RRECTLEM TO RRECTLEM +41
+ATOPLEM		STQ	RTB
+			S2
+			MOVEALEM
+		SET	CALL
+			LMOONFLG
+			SVDWN2
+		BON	CLRGO
+			MOONFLAG
+			S2
+			LMOONFLG
+			S2
+MOVEALEM	TC	SETBANK
+		TS	DIFEQCNT
+		INDEX	DIFEQCNT
+		CA	RRECT
+		INDEX	DIFEQCNT
+		TS	RRECTLEM
+		CCS	DIFEQCNT
+		TCF	MOVEALEM +1
+		TC	DANZIG
+
+# PTOALEM TRANSFERS RRECTLEM TO RRECTLEM +41 TO RRECT TO RRECT +41
+
+PTOALEM		BON	RTB
+			SURFFLAG
+			USEPIOS
+			MOVEPLEM
+		BON	GOTO
+			LMOONFLG
+			SETMOON
+			CLRMOON
+MOVEPLEM	TC	SETBANK
+		TS	DIFEQCNT
+		INDEX	DIFEQCNT
+		CA	RRECTLEM
+		INDEX	DIFEQCNT
+		TS	RRECT
+		CCS	DIFEQCNT
+		TCF	MOVEPLEM +1
+		TC	DANZIG
+
+USEPIOS		SETPD	VLOAD
+			0
+			RLS
+		PDDL	PUSH
+			TDEC1
+# Page 1317			
+		STODL	TET
+			5/8
+		CALL
+			RP-TO-R
+		STOVL	RCV
+			ZUNIT
+		STODL	0D
+			TET
+		STODL	6D
+			5/8
+		SET	CALL		# NEEDED FOR SETTING X1 ON EXIT
+			MOONFLAG
+			RP-TO-R
+		VXV	VXSC
+			RCV
+			OMEGMOON
+		STOVL	VCV
+			ZEROVEC
+		STORE	TDELTAV
+		AXT,2	SXA,2
+			2
+			PBODY
+		STCALL	TNUV
+			A-PCHK
+OMEGMOON	2DEC*	2.66169947 E-8 B+23*
+			
+SETBANK		CAF	INTBANK
+		TS	BBANK
+		CAF	FORTYONE
+		TC	Q
+		EBANK=	RRECTCSM
+INTBANK		BBCON	INTEGRV
+
+# SPECIAL PURPOSE ENTRIES TO ORBITAL INTEGRATION.  THESE ROUTINES PROVIDE ENTRANCES TO INTEGRATION WITH
+# APPROPRIATE SWITCHES SET OR CLEARED FOR THE DESIRED INTEGRATION.
+#
+# CSMPREC AND LEMPREC PERFORM ORBIT INTEGRATION BY THE ENCKE METHOD TO THE TIME INDICATED IN TDEC1.
+# ACCELERATIONS DUE TO OBLATENESS ARE INCLUDED.  NO W-MATRIX INT. IS DONE.
+# THE PERMANENT STATE VECTOR IS NOT UPDATED.
+# CSMCONIC AND LEMCONIC PERFORM ORBIT INTEG. BY KEPLER'S METHOD TO THE TIME INDICATED IN TDEC1.
+# NO DISTURBING ACCELERATIONS ARE INCLUDED.  IN THE PROGRAM FLOW THE GIVEN
+# STATE VECTOR IS RECTIFIED BEFORE SOLUTION OF KEPLER'S EQUATION.
+#
+# THE ROUTINES ASSUME THAT THE CSM (LEM) STATE VECTOR IN P-MEM IS VALID.
+# SWITCHES SET PRIOR TO ENTRY TO THE MAIN INTEG. PROG ARE AS FOLLOWS:
+#			CSMPREC		CSMCONIC	LEMPREC		LEMCONIC
+#	VINTFLAG	SET		SET		CLEAR		CLEAR
+#	INTYPFLG	CLEAR		SET		CLEAR		SET
+#	DIM0FLAG	CLEAR		CLEAR		CLEAR		CLEAR
+# Page 1318
+#
+# CALLING SEQUENCE
+#	L-X	STORE	TDEC1
+#	L	CALL			(STCALL TDEC1)
+#	L+1		CSMPREC		(CSMCONIC, LEMPREC, LEMCONIC)
+#
+# NORMAL EXIT TO L+2
+#
+# SUBROUTINES CALLED
+#	INTEGRV1
+#	PRECOUT FOR CSMPREC AND LEMPREC
+#	CONICOUT FOR CSMCONIC AND LEMCONIC
+#
+# OUTPUT -- SEE PAGE 2 OF THIS LOG SECTION
+#
+# INPUT
+#	TDEC1		TIME TO INTEGRATE TO.  CSECS B-28
+
+CSMPREC		STQ	CALL
+			X1
+			INTSTALL
+		SXA,1	SET
+			IRETURN
+			VINTFLAG
+
+IFLAGP		SET	CLEAR
+			PRECIFLG
+			DIM0FLAG
+		CLRGO
+			INTYPFLG
+			INTEGRV1
+LEMPREC		STQ	CALL
+			X1
+			INTSTALL
+		SXA,1	CLRGO
+			IRETURN
+			VINTFLAG
+			IFLAGP
+
+CSMCONIC	STQ	CALL
+			X1
+			INTSTALL
+		SXA,1	SET
+			IRETURN
+			VINTFLAG
+IFLAGC		CLEAR	SETGO
+			DIM0FLAG
+			INTYPFLG
+			INTEGRV1
+LEMCONIC	STQ	CALL
+			X1
+# Page 1319
+			INTSTALL
+		SXA,1	CLRGO
+			IRETURN
+			VINTFLAG
+			IFLAGC
+
+INTEGRVS	SET	SSP
+			PRECIFLG
+			PBODY
+			0
+		BOF	SSP
+			MOONFLAG
+			+3
+			PBODY
+			2
+		STQ	VLOAD
+			IRETURN
+			ZEROVEC
+		STORE	TDELTAV
+		STCALL	TNUV
+			RECTIFY
+		CLEAR	SET
+			DIM0FLAG
+			NEWIFLG
+		SETGO
+			RPQFLAG
+			ALOADED
+
+# INTEGRV IS AN ENTRY TO ORBIT INTEGRATION WHICH PERMITS THE CALLER,
+# NORMALLY THE NAVIGATION PROGRAM, TO SET THE INTEG. FLAGS.  THE ROUTINE
+# IS ENTERED AT INTEGRV1 BY CSMPREC ET. AL. AND AT ALOADED BY INTEGRVS.
+# THE ROUTINE SETS UP A-MEMORY IF ENTERED AT INTEGRV,1 AND SETS THE INTEG.
+# PROGRAM FOR PRECISION OR CONIC.
+#
+# THE CALLER MUST FIRST CALL INTSTALL TO CHECK IF INTEG. IS IN USE BEFORE
+# SETTING ANY FLAGS.
+#
+# THE FLAGS WHICH SHOULD BE SET OR CLEARED ARE
+#	VINTFLAG	(IGNORED WHEN ENTERED FROM INTEGRVS)
+#	INTYPFLG
+#	DIM0FLAG
+#	D6OR9FLG
+#
+# CALLING SEQUENCE
+#	L-X	CALL
+#	L-Y		INTSTALL
+#	L-1	SET OR CLEAR ALL FOUR FLAGS.  ALSO CAN SET STATEFLG IF DESIRED
+#		AND DIM0FLAG IS CLEAR.
+#	L	CALL
+#	L+1		INTEGRV
+#
+# INITIALIZATION
+#	FLAGS AS ABOVE
+#	STORE TIME TO INTEGRATE TO IN TDEC1
+#
+# Page 1320
+# OUTPUT
+#	RATT	AS
+#	VATT	      DEFINED
+#	TAT			BEFORE
+
+INTEGRV		STQ
+			IRETURN
+INTEGRV1	SET	SET
+			RPQFLAG
+			NEWIFLG
+INTEGRV2	SSP
+			QPRET
+			ALOADED
+		BON	GOTO
+			VINTFLAG
+			PTOACSM
+			PTOALEM
+		SETLOC	INTINIT1
+		BANK
+ALOADED		DLOAD
+			TDEC1
+		STORE	TDEC
+		BOFF	GOTO
+			INTYPFLG
+			TESTLOOP
+			RVCON
+		SETLOC	INTINIT
+		BANK
+A-PCHK		BOF	CALL
+			MIDFLAG
+			ANDOUT		# DON'T MAKE ORIGIN CHANGE CHECK
+			CHKSWTCH
+		BPL	CALL
+			ANDOUT		# NO ORIGIN CHANGE
+			ORIGCHNG	# MAKE THE SWITCH
+ANDOUT		BOFCLR	EXIT
+			STATEFLG
+			RECTOUT
+		TC	PHASCHNG
+		OCT	04022
+		TC	UPFLAG		# PHASE CHANGE HAS OCCURRED BETWEEN
+		ADRES	REINTFLG	# INTSTALL AND INTWAKE
+		TC	INTPRET
+		SSP
+			QPRET
+			PHEXIT
+		BON	GOTO
+			VINTFLAG
+			ATOPCSM
+# Page 1321			
+			ATOPLEM
+PHEXIT		CALL
+			GRP2PC
+RECTOUT		SETPD	CALL
+			0
+			RECTIFY
+		VLOAD	VSL*
+			RRECT
+			0,2
+		PDVL	VSL*		# RATT TO PD0
+			VRECT
+			0,2
+		PDDL	PDVL		# VATT TO PD6	TAT TO PD12
+			TET
+			RRECT
+		PDVL	PDDL*
+			VRECT
+			MUEARTH,2
+		PUSH	AXT,1
+		DEC	-10
+		BON	AXT,1
+			MOONFLAG
+			+2
+		DEC	-2
+INTEXIT		SETPD	BOV
+			0
+			+1
+		CLEAR
+			MIDAVFLG
+		CLEAR	CLEAR
+			AVEMIDSW	# ALLOW UPDATE OF DOWNLINK STATE VECTOR
+			PRECIFLG
+		SLOAD	EXIT
+			IRETURN
+		CA	MPAC
+		INDEX	FIXLOC
+		TS	QPRET
+		TC	INTWAKE
+
+# RVCON SETS UP ORBIT INTEGRATION TO DO A CONIC SOLUTION FOR POSITION AND
+# VELOCITY FOR THE INTERVAL (TET-TDEC)
+
+RVCON		DLOAD	DSU
+			TDEC
+			TET
+		STCALL	TAU.
+			RECTIFY
+		CALL
+			KEPPREP
+		DLOAD	DAD
+			TC
+# Page 1322
+			TET
+		STCALL	TET
+			RECTOUT
+
+# Page 1323
+TESTLOOP	BOF	CLRGO
+			QUITFLAG
+			+3
+			STATEFLG
+			INTEXIT		# STOP INTEGRATION
+	+3	SETPD	LXA,2
+			10D
+			PBODY
+		VLOAD	ABVAL
+			RCV
+		PUSH	CLEAR		# RC TO 10D
+			MIDFLAG
+		DSU*	BMN		# MIDFLAG=0 IF R G.T. RMP
+			RME,2
+			+3
+		SET
+			MIDFLAG
+NORFINAL	DLOAD	DMP
+			10D
+			34D
+		SR1R	DDV*
+			MUEARTH,2
+		SQRT	DMP
+			.3D
+		SR3	SR4		# DT IS TRUNCATED TO A MULTIPLE
+		DLOAD	SL
+			MPAC
+			15D		#	OF 128 CSECS.
+		PUSH	BOV
+			MAXDT
+		BDSU	BMN
+			DT/2MAX
+			MAXDT
+DT/2COMP	DLOAD	DSU
+			TDEC
+			TET
+		RTB	SL
+			SGNAGREE
+			8D
+		STORE	DT/2		# B-19
+		BOV	ABS
+			GETMAXDT
+		DSU	BMN		# IS TIME TO INTEG. TO GR THAN MAXTIME
+			12D
+			P00HCHK
+USEMAXDT	DLOAD	SIGN
+			12D
+			DT/2
+# Page 1324
+		STCALL	DT/2
+			P00HCHK
+MAXDT		DLOAD	PDDL		# EXCHANGE DT/2MAX WITH COMPUTED MAX.
+			DT/2MAX
+		GOTO
+			DT/2COMP
+GETMAXDT	RTB
+			SIGNMPAC
+		STCALL	DT/2
+			USEMAXDT
+P00HCHK		DLOAD	ABS
+			DT/2
+		DSU	BMN
+			DT/2MIN
+			A-PCHK
+		SLOAD	BHIZ
+			MODREG
+			+3
+		GOTO
+			TIMESTEP
+		BON			# WAS THIS CALL VIA CSM(LEM)PREC
+			PRECIFLG
+			TIMESTEP	# YES
+		DLOAD	DSU
+			DT/2
+			12D
+		BMN	BOFCLR
+			A-PCHK
+			NEWIFLG
+			TIMESTEP
+		DLOAD	DSU
+			TDEC
+			TET
+		BMN			# NO BACKWARD INTEGRATION
+			INTEXIT
+		PDDL	SR4
+			DT/2		# IS 4(DT) LS (TDEC - TET)
+		SR2R	BDSU
+		BMN	GOTO
+			INTEXIT
+			TIMESTEP
+DT/2MIN		2DEC	3 B-20
+
+DT/2MAX		2DEC	4000 E2 B-20
+
+INTSTALL	EXIT
+		CAF	ZERO
+ALLSTALL	TS	L
+		CA	RASFLAG
+		INDEX	L
+# Page 1325
+		MASK	INTBITAB	# IS THIS STALL AREA FREE
+		EXTEND
+		BZF	OKTOGRAB	# YES
+		INDEX	L
+		CAF	WAKESTAL
+		TC	JOBSLEEP
+INTWAKE0	EXIT
+		TCF	INTWAKE1
+
+INTWAKE		CS	RASFLAG		# IS THIS INTSTALLED ROUTINE TO BE
+		MASK	REINTBIT	#	RESTARTED
+		CCS	A
+		TC	INTWAKE1	# NO
+
+		INDEX	FIXLOC
+		CA	QPRET
+		TS	TBASE2		# YES, DON'T RESTART WITH SOMEONE ELSE'S Q
+
+		TC	PHASCHNG
+		OCT	04022
+
+		CA	TBASE2
+		INDEX	FIXLOC
+		TS	QPRET
+
+		CAF	REINTBIT
+		MASK	RASFLAG
+		EXTEND
+		BZF	GOBAC		# DON'T INTWAKE IF WE CAME HERE VIA RESTART
+
+INTWAKE1	CAF	ZERO
+WAKE		TS	STALTEM		# INDEX OF ANY STALL USER
+WAKE1		INDEX	STALTEM
+		CAF	WAKESTAL
+		INHINT
+		TC	JOBWAKE
+		CCS	LOCCTR
+		TCF	WAKE1		# MAY BE MORE TO WAKE UP
+FORTYONE	DEC	41
+		INDEX	STALTEM
+		CS	INTBITAB
+		MASK	RASFLAG
+		TS	RASFLAG		# RELEASE STALL AREA
+		RELINT
+		TCF	GOBAC
+OKTOGRAB	INDEX	L		# NO, WAIT UNTIL AVAILABLE
+		CAF	INTFLBIT
+		ADS	RASFLAG
+GOBAC		TC	INTPRET
+		RVQ
+# Page 1326
+ERASTAL1	EXIT
+		CAF	ONE
+		TCF	ALLSTALL
+ERASTAL2	EXIT
+		CAF	TWO
+		TCF	ALLSTALL
+ERASWAK1	CAF	ONE
+		TCF	WAKE
+ERASWAK2	CAF	TWO
+		TCF	WAKE
+WAKESTAL	CADR	INTSTALL +1
+		CADR	ERASTAL1 +1
+		CADR	ERASTAL2 +1
+STALTEM		EQUALS	MPAC
+INTBITAB	OCT	20100
+		OCT	10040
+		OCT	04020
+
+# Page 1327
+# AVETOMID
+#
+# THIS ROUTINE PERFORMS THE TRANSITION FROM A THRUSTING PHASE TO THE COAST
+# PHASE BY INITIALIZING THIS VEHICLE'S PERMANENT STATE VECTOR WITH THE
+# VALUES LEFT BY THE AVERAGEG ROUTINE IN RN,VN,PIPTIME.
+#
+# BEFORE THIS IS DONE THE W-MATRIX, IF IT'S VALID (OR WFLAG OR RENDWFLT IS
+# SET) IS INTEGRATED FORWARD TO PIPTIME WITH THE PRE-THRUST STATE VECTOR.
+#
+# IN ADDITION, THE OTHER VEHICLE IS INTEGRATED (PERMANENT) TO PIPTIME.
+#
+# FINALLY TRKMKCNT IS ZEROED.
+
+		SETLOC	INTINIT2
+		BANK
+
+		COUNT*	$$/INTIN
+AVETOMID	STQ	BON
+			EGRESS
+			RENDWFLG
+			INT/W		# W-MATRIX VALID, GO INTEGRATE IT
+		BON
+			ORBWFLAG
+			INT/W		# W-MATRIX VALID, GO INTEGRATE IT.
+
+SETCOAST	AXT,2	CALL		# NOW MOVE PROPERLY SCALED RN,UN AS WELL AS
+			2		# PIPTIME TO INTEGRATION ERASABLES.
+			INTSTALL
+		BON	AXT,2
+			AMOONFLG
+			+2
+			0
+		VLOAD	VSR*
+			RN
+			0,2
+		STORE	RRECT
+		STODL	RCV
+			PIPTIME
+		STOVL	TET
+			VN
+		VSR*	CALL
+			0,2
+			MINIRECT	# FINISH SETTING UP STATE VECTOR
+		RTB	SSP
+			MOVATHIS	# PUT TEMP STATE VECTOR INTO PERMANENT
+			TRKMKCNT
+			0
+		SET	BON
+			CMOONFLG
+# Page 1328
+			AMOONFLG
+			+3
+		CLEAR
+			CMOONFLG
+		
+		BON	DLOAD		# NOW DO LM
+			SURFFLAG
+			FAZAB5		# NO COASTING LM
+			PIPTIME
+		STCALL	TDEC1
+			SETIFLGS
+		CLEAR	CALL
+			VINTFLAG
+			INTEGRV
+		GOTO
+			EGRESS
+INT/W		DLOAD	CALL
+			PIPTIME		# INTEGRATE W THRU BURN
+			INTSTALL
+		SET	SET
+			DIM0FLAG	# DO W-MATRIX
+			AVEMIDSW	# SO WON'T CLOBBER RN,VN,PIPTIME
+		CLEAR	SET
+			D6OR9FLG
+			VINTFLAG
+		STCALL	TDEC1
+			INTEGRV
+		GOTO
+			SETCOAST
+
+# Page 1329
+# MIDTOAV1
+#
+# THIS ROUTINE INTEGRATES (PRECISION) TO THE TIME SPECIFIED IN TDEC1.
+# IF, AT THE END OF AN INTEGRATION TIME STEP, CURRENT TIME PLUS A DELTA
+# TIME (SEE TIMEDELT.....BASED ON THE COMPUTATION TIME FOR ONE TIME STEP)
+# IS GREATER THAN THE DESIRED TIME, ALARM 1703 IS SET AND THE INTEGRATION
+# IS DONE TO THE CURRENT TIME.
+# RETURN IS IN BASIC TO THE RETURN ADDRESS PLUS ONE.
+#
+# IF THE INTEGRATION IS FINISHED TO THE DESIRED TIME, RETURN IS IN BASIC
+# TO THE RETURN ADDRESS.
+#
+# IN EITHER CASE, BEFORE RETURNING, THE EXTRAPOLATED STATE VECTOR IS TRANSFERRED
+# FROM R,VATT TO R,VN1 -- PIPTIME1 IS SET TO THE FINISHING INTEGRATION
+# TIME AND MPAC IS SET TO THE DELTA TIME --
+#			TAT MINUS CURRENT TIME
+
+# MIDTOAV2
+#
+# THIS ROUTINE INTEGRATES THIS VEHICLE'S STATE VECTOR TO THE CURRENT TIME PLUS
+# INCREMENTS OF TIMEDELT SUCH THAT THE DIFFERENCE BETWEEN CURRENT TIME
+# AND THE STATE VECTOR TIME AT THE END OF THE LAST STEP IS AT LEAST 5.6
+# SECS.
+# NO INPUTS ARE REQUIRED OF THE CALLER.  RETURN IS IN BASIC TO THE RETURN
+# ADDRESS WITH THE ABOVE TRANSFERS TO R,VN1 -- PIPTIME1 -- AND MPAC DONE
+
+		SETLOC	INTINIT
+		BANK
+		EBANK=	IRETURN1
+MIDTOAV2	STQ	CALL
+			IRETURN1
+			INTSTALL
+		DLOAD	CLEAR
+			TIMEDELT
+			MID1FLAG
+		STCALL	T-TO-ADD
+			ENTMID2
+
+MIDTOAV1	STQ	CALL
+			IRETURN1
+			INTSTALL
+		SET	RTB
+			MID1FLAG
+			LOADTIME
+		DAD	BDSU		# INITIAL CHECK, IS TDEC1 IN THE FUTURE
+			TIMEDELT
+			TDEC1
+		BPL	CALL
+			ENTMID1
+# Page 1330
+			NOTIME		# NO, SET ALARM, SWITCH TO MIDTOAV2
+
+ENTMID2		RTB	DAD
+			LOADTIME
+			T-TO-ADD
+		STORE	TDEC1
+
+ENTMID1		CLEAR	CALL
+			DIM0FLAG	# NO W-MATRIX
+			THISVINT
+		CLEAR	SET
+			INTYPFLG
+			MIDAVFLG	# LET INTEG. KNOW THE CALL IS FOR MIDTOAV.
+		CALL
+			INTEGRV		# GO INTEGRATE
+		SXA,2	SXA,1
+			RTX2
+			RTX1
+		CLEAR	SLOAD
+			AMOONFLG
+			RTX2
+		BZE	SET
+			+2
+			AMOONFLG
+		VLOAD	
+			RATT
+		STOVL	RN1
+			VATT
+		STODL	VN1
+			TAT
+		STORE	PIPTIME1
+		EXIT
+
+		INHINT
+		EXTEND
+		DCS	TIME2
+		DAS	MPAC
+		TC	TPAGREE
+
+		CA	IRETURN1
+		TC	BANKJUMP
+CKMID2		BOF	RTB
+			MID1FLAG
+			MID2
+			LOADTIME
+		DAD	BDSU
+			TIMEDELT
+			TDEC
+		BPL	CALL
+			TESTLOOP	# YES
+# Page 1331			
+			NOTIME
+
+TIMEINC		RTB	DAD
+			LOADTIME
+			T-TO-ADD
+		STCALL	TDEC
+			TESTLOOP
+
+MID2		DLOAD	DSU
+			TDEC
+			TET
+		ABS	DSU
+			3CSECS
+		BPL
+			TIMEINC
+			
+		RTB	BDSU		# SEE IF 5.6 SECS. AVAILABLE TO CALLER
+			LOADTIME
+			TET
+		DSU	BPL
+			5.6SECS
+			A-PCHK		# YES. GET OUT.
+			
+		DLOAD	DAD		# NO. ADD TIMEDELT TO T-TO-ADD AND TRY
+			T-TO-ADD	# AGAIN.
+			TIMEDELT
+		STCALL	T-TO-ADD
+			TIMEINC
+NOTIME		CLEAR	EXIT		# TOO LATE
+			MID1FLAG
+		INCR	IRETURN1	# SET ERROR EXIT (CALLOC +2)
+		TC	ALARM		# INSUFFICIENT TIME FOR INTEGRATION --
+		OCT	1703		#	TIG WILL BE SLIPPED...
+		TC	INTPRET
+		DLOAD
+			TIMEDELT
+		STORE	T-TO-ADD
+		RVQ
+
+3CSECS		2DEC	3
+
+TIMEDELT	2DEC	1250
+
+5.6SECS		2DEC	560
+
+		BANK	27
+		SETLOC	UPDATE2
+		BANK
+		EBANK=	INTWAKUQ
+
+# Page 1332
+		COUNT*	$$/INTIN
+
+INTWAKUQ	=	INTWAK1Q	# TEMPORARY UNTIL NAME OF INTWAK1Q IS CHNG
+
+INTWAKEU	RELINT
+		EXTEND
+		QXCH	INTWAKUQ	# SAVE Q FOR RETURN
+
+		TC	INTPRET
+
+		SLOAD	BZE		# IS THIS A CSM/LEM STATE VECTOR UPDATE
+			UPSVFLAG	# REQUEST.  IF NOT GO TO INTWAKUP.
+			INTWAKUP
+
+		VLOAD			# MOVE PRECT(6) AND VRECT(6) INTO
+			RRECT		#	RCV(6) AND VCV(6) RESPECTIVELY.
+		STOVL	RCV
+			VRECT		# NOW GO TO `RECTIFY +13D' TO
+		CALL			# STORE VRECT INTO VCV AND ZERO OUT
+			RECTIFY +13D	# TDELTAV(6),TNUV(6),TC(2), AND XKEP(2)
+		SLOAD	ABS		# COMPARE ABSOLUTE VALUE OF `UPSVFLAG'
+			UPSVFLAG	# TO `UPDATE MOON STATE VECTOR CODE'
+		DSU	BZE		# TO DETERMINE WHETHER THE STATE VECTOR TO
+			UPMNSVCD	# BE UPDATED IS IN THE EARTH OR LUNAR
+			INTWAKEM	# SPHERE OF INFLUENCE........
+		AXT,2	CLRGO		# EARTH SPHERE OF INFLUENCE.
+		DEC	0
+			MOONFLAG
+			INTWAKEC
+INTWAKEM	AXT,2	SET		# LUNAR SPHERE OF INFLUENCE.
+		DEC	2
+			MOONFLAG
+INTWAKEC	SLOAD	BMN		# COMMON CODING AFTER X2 INITIALIZED AND
+					# MOONFLAG SET (OR CLEARED).
+			UPSVFLAG	# IS THIS A REQUEST FOR A LEM OR CSM
+			INTWAKLM	# 	STATE VECTOR UPDATE......
+		CALL			# UPDATE CSM STATE VECTOR
+			ATOPCSM
+
+		CLEAR	GOTO
+			ORBWFLAG
+			INTWAKEX
+
+INTWAKLM	CALL			# UPDATE LM STATE VECTOR
+			ATOPLEM
+
+INTWAKEX	CLEAR
+			RENDWFLG
+
+INTWAKUP	SSP	CALL		# REMOVE `UPDATE STATE VECTOR INDICATOR'
+# Page 1333
+			UPSVFLAG
+			0
+			INTWAKE0	# RELEASE `GRAB' OF ORBIT INTEG.
+		EXIT
+
+		TC	PHASCHNG
+		OCT	04026
+		TC	INTWAKUQ
+
+UPMNSVCD	OCT	2
+		OCT	0
+
+GRP2PC		STQ	EXIT
+			GRP2SVQ
+		TC	PHASCHNG
+		OCT	04022
+		TC	INTPRET
+		GOTO
+			GRP2SVQ
+
+
+
diff --git a/INTER-BANK_COMMUNICATION.s b/INTER-BANK_COMMUNICATION.s
new file mode 100644
index 0000000..f79019c
--- /dev/null
+++ b/INTER-BANK_COMMUNICATION.s
@@ -0,0 +1,183 @@
+# Copyright:    Public domain.
+# Filename:     INTER-BANK_COMMUNICATION.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 1103-1106
+# Contact:      Ron Burkey <info@sandroid.org>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-08 RSB	Adapted from Colossus249/ file of same name
+#				and page images. Corrected various typos
+#				in the transcription of program comments,
+#				and these should be back-ported to 
+#				Colossus249.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 1103
+# THE FOLLOWING ROUTINE CAN BE USED TO CALL A SUBROUTINE IN ANOTHER BANK. IN THE BANKCALL VERSION, THE
+# CADR OF THE SUBROUTINE IMMEDIATELY FOLLOWS THE TC BANKCALL INSTRUCTION, WITH C(A) AND C(L) PRESERVED.
+
+		BLOCK	02
+		COUNT	02/BANK
+		
+BANKCALL	DXCH	BUF2		# SAVE INCOMING A,L.
+		INDEX	Q		# PICK UP CADR.
+		CA	0
+		INCR	Q		# SO WE RETURN TO THE LOC. AFTER THE CADR.
+
+# SWCALL IS  IDENTICAL TO BANKCALL, EXCEPT THAT THE CADR ARRIVES IN A.
+
+SWCALL		TS	L
+		LXCH	FBANK		# SWITCH BANKS, SAVING RETURN.
+		MASK	LOW10		# GET SUB-ADDRESS OF CADR.
+		XCH	Q		# A,L NOW CONTAINS DP RETURN.
+		DXCH	BUF2		# RESTORING INPUTS IF THIS IS A BANKCALL.
+		INDEX	Q
+		TC	10000		# SETTING Q TO SWRETURN
+
+SWRETURN	XCH	BUF2 +1		# COMES HERE TO RETURN TO CALLER. C(A,L)
+		XCH	FBANK		# ARE PRESERVED FOR RETURN.
+		XCH	BUF2 +1
+		TC	BUF2
+
+# THE FOLLOWING ROUTINE CAN BE USED AS A UNILATERAL JUMP WITH C(A,L) PRESERVED AND THE CADR IMMEDIATELY
+# FOLLOWING THE TC POSTJUMP INSTRUCTION.
+
+POSTJUMP	XCH	Q		# SAVE INCOMING C(A).
+		INDEX	A		# GET CADR.
+		CA	0
+
+# BANKJUMP IS THE SAME AS POSTJUMP, EXCEPT THAT THE CADR ARRIVES IN A.
+
+BANKJUMP	TS	FBANK
+		MASK	LOW10
+		XCH	Q		# RESTORING INPUT C(A) IF THIS WAS A
+Q+10000		INDEX	Q		# POSTJUMP.
+PRIO12		TCF	10000		# PRIO12 = TCF	10000 = 12000
+
+# Page 1104
+# THE FOLLOWING ROUTINE GETS THE RETURN CADR SAVED BY SWCALL OR BANKCALL AND LEAVES IT IN A.
+
+MAKECADR	CAF	LOW10
+		MASK	BUF2
+		AD	BUF2 +1
+		TC	Q
+
+SUPDACAL	TS	MPTEMP
+		XCH	FBANK		# SET FBANK FOR DATA.
+		EXTEND
+		ROR	SUPERBNK	# SAVE FBANK IN BITS 15-11, AND
+		XCH	MPTEMP		# SUPERBANK IN BITS 7-5.
+		MASK	LOW10
+		XCH	L		# SAVE REL. ADR. IN BANK, FETCH SUPERBITS
+		INHINT			# BECAUSE RUPT DOES NOT SAVE SUPERBANK.
+		EXTEND
+		WRITE	SUPERBNK	# SET SUPERBANK FOR DATA.
+		INDEX	L
+		CA	10000		# PINBALL (FIX MEM DISP) PREVENTS DCA HERE
+		XCH	MPTEMP		# SAVE 1ST WD, FETCH OLD FBANK AND SBANK.
+		EXTEND
+		WRITE	SUPERBNK	# RESTORE SUPERBANK.
+		RELINT
+		TS	FBANK		# RESTORE FBANK.
+		CA	MPTEMP		# RECOVER FIRST WORD OF DATA.
+		RETURN			# 24 WDS. DATACALL 516 MU, SUPDACAL 432 MU
+
+# Page 1105
+# THE FOLLOWING ROUTINES ARE IDENTICAL TO BANKCALL AND SWCALL EXCEPT THAT THEY ARE USED IN INTERRUPT.
+
+IBNKCALL	DXCH	RUPTREG3	# USES RUPTREG3,4 FOR DP RETURN ADDRESS.
+		INDEX	Q
+		# Was CAF --- RSB 2009
+		CA	0
+		INCR	Q
+
+ISWCALL		TS	L
+		LXCH	FBANK
+		MASK	LOW10
+		XCH	Q
+		DXCH	RUPTREG3
+		INDEX	Q
+		TC	10000
+
+ISWRETRN	XCH	RUPTREG4
+		XCH	FBANK
+		XCH	RUPTREG4
+		TC	RUPTREG3
+
+# 2. USPRCADR ACCESSES INTERPRETIVE CODING IN OTHER THAN THE USER'S FBANK.  THE CALLING SEQUENCE IS AS FOLLOWS:
+#	L	TC	USPRCADR
+#	L+1	CADR	INTPRETX	# INTPRETX IS THE INTERPRETIVE CODING
+#					# RETURN IS TO L+2
+
+USPRCADR	TS	LOC		# SAVE A
+		CA	BIT8
+		TS	EDOP		# EXIT INSTRUCTION TO EDOP
+		CA	BBANK
+		TS	BANKSET		# USER'S BBANK TO BANKSET
+		INDEX	Q
+		CA	0
+		TS	FBANK		# INTERPRETIVE BANK TO FBANK
+		MASK	LOW10		# YIELDS INTERPRETIVE RELATIVE ADDRESS
+		XCH	Q		# INTERPRETIVE ADDRESS TO Q, FETCHING L+1
+		XCH	LOC		# L+1 TO LOC, RETRIEVING ORIGINAL A
+		TCF	Q+10000
+
+# Page 1106
+# THERE ARE FOUR POSSIBLE SETTINGS FOR CHANNEL 07.  (CHANNEL 07 CONTAINS SUPERBANK SETTING.)
+#
+#					PSEUDO-FIXED	 OCTAL PSEUDO
+# SUPERBANK	SETTING	S-REG. VALUE	BANK NUMBERS	   ADDRESSES
+# ---------	-------	------------	------------ 	   ---------
+# SUPERBANK 3	  OXX	 2000 - 3777	   30 - 37	 70000 - 107777		(WHERE XX CAN BE ANYTHING AND
+#										WILL USUALLY BE SEEN AS 11)
+# SUPERBANK 4	  100	 2000 - 3777	   40 - 47	110000 - 127777		(AS FAR AS IT CAN BE SEEN,
+#										ONLY BANKS 40-43 WILL EVER BE
+#										AND ARE PRESENTLY AVAILABLE)
+# SUPERBANK 5	  101	 2000 - 3777	   50 - 57	130000 - 147777		(PRESENTLY NOT AVAILABLE TO
+#										THE USER)
+# SUPERBANK 6	  110	 2000 - 3777	   60 - 67	150000 - 167777		(PRESENTLY NOT AVAILABLE TO
+#										THE USER)
+# *** THIS ROUTINE MAY BE CALLED BY ANY PROGRAM LOCATED IN BANKS 00 - 27.  I.E., NO PROGRAM LIVING IN ANY
+# SUPERBANK SHOULD USE SUPERSW. ***
+#
+# SUPERSW MAY BE CALLED IN THIS FASHION:
+#	CAF	ABBCON		WHERE -- ABBCON  BBCON  SOMETHING --
+#	TCR	SUPERSW		(THE SUPERBNK BITS ARE IN THE BBCON)
+#	...	  ...
+#	 .	   .
+#	 .	   .
+# OR IN THIS FASHION:
+#	CAF	SUPERSET	WHERE SUPERSET IS ONE OF THE FOUR AVAILABLE
+#	TCR	SUPERSW		SUPERBANK BIT CONSTANTS:
+#	...	  ...			SUPER011 OCTAL  60
+#	 .	   .			SUPER100 OCTAL 100
+#	 .	   .			SUPER101 OCTAL 120
+#					SUPER110 OCTAL 140
+
+SUPERSW		EXTEND
+		WRITE	SUPERBNK	# WRITE BITS 7-6-5 OF THE ACCUMULATOR INTO
+					# CHANNEL 07
+		TC	Q		# TC TO INSTRUCTION FOLLOWING
+					# 	TC SUPERSW
+		
+
+
diff --git a/INTERPRETER.s b/INTERPRETER.s
new file mode 100644
index 0000000..20f716e
--- /dev/null
+++ b/INTERPRETER.s
@@ -0,0 +1,3059 @@
+# Copyright:	Public domain.
+# Filename:	INTERPRETER.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:	1107-1199
+# Mod history:	2009-05-08 RSB	Adapted from the Luminary131/ file of the
+#				same name, using Comanche055 page images. 
+#		2009-05-20 RSB	Corrections:  P00D00 -> P00DOO, fixed a 
+#				"Page N" reference.
+#		2009-05-21 RSB	Corrected definition of 5B10, which overflowed
+#				integer arithmetic.
+#
+# 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 1107
+# SECTION 1:  DISPATCHER
+#
+# ENTRY TO THE INTERPRETER.  INTPRET SETS LOC TO THE FIRST INSTRUCTION, BANKSET TO THE BBANK OF THE
+# OBJECT INTERPRETIVE PROGRAM, AND INTBIT15 TO THE BIT15 CONTENTS OF FBANK.  INTERPRETIVE PROGRAMS MAY BE IN
+# VIRTUALLY ALL BANKS PRESENT UNDER ANY SUPER-BANK SETTING, WITH THE RESTRICTION THAT PROGRAMS IN HIGH BANKS
+# (BIT15 OF FBANK = 1) DO NOT REFER TO LOWBANKS, AND VICE-VERSA.  THE INTERPRETER DOES NOT SWITCH SUPERBANKS.
+# E-BANK SWITCHING OCCURS WHENEVER GENERAL ERASABLE (100-3777) IS ADDRESSED.
+
+		BLOCK	03
+		
+		COUNT*	$$/INTER
+INTPRET		RELINT
+		EXTEND				# SET LOC TO THE WORD FOLLOWING THE TC.
+		QXCH	LOC
+	+2	CA	BBANK			# INTERPRETIVE BRANCHES FINISH HERE.
+		TS	BANKSET
+		MASK	BIT15			# GET 15TH BIT FOR INDEXABLE ADDRESSES.
+		TS	INTBIT15
+
+		TS	EDOP			# MAKE SURE NO INSTRUCTIONS LEFT OVER
+
+		TCF	NEWOPS			# PICK UP OP CODE PAIR AND BEGIN.
+
+INTRSM		LXCH	BBANK			# RESUME SUSPENDED INTERPRETIVE JOB
+		TCF	INTPRET +3
+
+# DLOAD LOADS MPAC, MPAC +1, LEAVING ZERO IN MPAC +2.
+
+DLOAD		EXTEND
+		INDEX	ADDRWD
+		DCA	0			# LOAD DP C(C(ADDRWD)) INT MPAC,MPAC +1
+SLOAD2		DXCH	MPAC
+		CAF	ZERO			# ZERO MPAC +2
+
+# Page 1108
+# AT THE END OF MOST INSTRUCTIONS, CONTROL IS GIVEN TO DANZIG TO DISPATCH THE NEXT OPERATION.
+
+		TS	MPAC +2			# AND DECLARE DP MODE
+
+NEWMODE		TS	MODE			# PROLOGUE FOR MODE-CHANGING INSTRUCTIONS.
+
+DANZIG		CA	BANKSET			# SET BBANK BEFORE TESTING NEWJOB SO THAT
+		TS 	BBANK			# IT MAY BE SAVED DIRECTLY BY CHANJOB.
+
+NOIBNKSW	CCS	EDOP			# SEE IF AN ORDER CODE IS LEFT OVER FROM
+		TCF	OPJUMP			# THE LAST PAIR RETRIEVED.  IF SO, EXECUTE.
+						# EDOP IS SET TO ZERO ON ITS RE-EDITIING.
+
+		CCS	NEWJOB			# SEE IF A JOB OF HIGHER PRIORITY IS
+		TCF	CHANG2			# PRESENT, AND IF SO, CHANGE JOBS.
+
+		INCR	LOC			# ADVANCE THE LOCATION COUNTER.
+
+# ITRACE (1) REFERS TO "NEWOPS"
+NEWOPS		INDEX	LOC			# ENTRY TO BEGIN BY PICKING OP CODE PAIR.
+		CA	0			# MAY BE AN OPCODE PAIR OR A STORE CODE.
+		CCS	A			# TEST SIGN AND GET DABS(A).
+		TCF	DOSTORE			# PROCESS STORE CODE.
+
+LOW7		OCT	177
+
+		TS	EDOP			# OP CODE PAIR.  LEAVE THE OTHER IN EDOP
+		MASK	LOW7			# WHERE CCS EDOP WILL HONOR IT NEXT.
+
+OPJUMP		TS	CYR			# LOWWD ENTERS HERE IF A RIGHT-HAND OP
+		CCS	CYR			# CODE IS TO BE PROCESSED.  TEST PREFICES.
+		TCF	OPJUMP2			# TEST SECOND PREFIX BIT.
+
+		TCF	EXIT			# +0 OP CODE IS EXIT
+
+# Page 1109
+# PROCESS ADDRESSES WHICH MAY BE DIRECT, INDEXED, OR REFERENCE THE PUSHDOWN LIST.
+
+ADDRESS		MASK	BIT1			# SEE IF ADDRESS IS INDEXED.  CYR CONTAINED
+		CCS	A			# 400XX, SO BIT 1 IS NOW AS IT WAS IN CYR.
+		TCF	INDEX			# FORM INDEXED ADDRESS.
+
+DIRADRES	INDEX	LOC			# LOOK AHEAD TO NEXT WORD TO SEE IF
+OCT40001	CS	1			# ADDRESS IS GIVEN.
+		CCS	A
+		TCF	PUSHUP			# IF NOT.
+
+NEG4		DEC	-4
+
+		INCR	LOC			# IF SO, TO SHOW WE PICKED UP A WORD.
+		TS	ADDRWD
+
+# Page 1110
+# FINAL DIGESTION OF DIRECT ADDRESSES OF OP CODES WITH 01 PREFIX IS DONE HERE.   IN EACH CASE, THE
+# REQUIRED 12-BIT SUB-ADDRESS IS LEFT IN ADDRWD, WITH ANY REQUIRED E OR F BANK SWITCHING DONE.  ADDRESSES LESS
+# THAN 45D ARE TAKEN TO BE RELATIVE TO THE WORK AREA.  THE OP CODE IS NOW IN BITS 1-5 OF CYR WITH BIT 14 = 1.
+
+		AD	-ENDVAC			# SEE IF ADDRESS RELATIVE TO WORK AREA.
+		CCS	A
+		AD	-ENDERAS		# IF NOT, SEE IF IN GENERAL ERASABLE.
+		TCF	IERASTST
+		
+NETZERO		CA	FIXLOC			# IF SO, LEAVE THE MODIFIED ADDRESS IN
+		ADS	ADDRWD			# ADDRWD AND DISPATCH.
+ITR15		INDEX	CYR			# THIS INDEX MAKES THE NEXT INSTRUCTION
+		7	INDJUMP -1		# TCF INDJUMP + OP, EDITING CYR.
+		
+IERASTST	EXTEND
+		BZMF	GEADDR			# GO PROCESS GENERAL-ERASABLE ADDRESS.
+		
+		MASK	LOW10			# FIXED BANK ADDRESS. RESTORE AND ADD B15.
+		AD	LOW10			# SWITCH BANKS AND LEAVE SUBADDRESS IN
+		XCH	ADDRWD			# ADDRWD FOR OPERAND RETRIEVAL. (THIS
+		AD	INTBIT15		# METHOD PRECLUDES USE OF THE LAST
+		TS	FBANK			# LOCATION IN EACH FBANK.)
+ITR12		INDEX	CYR
+		7	INDJUMP -1
+		
+GEADDR		MASK	LOW8
+		AD	OCT1400
+		XCH	ADDRWD
+		TS	EBANK
+ITR10		INDEX	CYR
+		7	INDJUMP -1
+
+# Page 1111
+# THE FOLLOWING ROUTINE PROCESSES INTERPRETIVE INDEXED ADDRESSES.  AN INTERPRETER INDEX REGISTER MAY
+# CONTAIN THE ADDRESS OF ANY ERASABLE REGISTER (0-42 BEING RELATIVE TO THE VAC AREA) OR ANY INTERPRETIVE PROGRAM
+# BANK, OR ANY INTEGER IN THAT RANGE.
+
+DODLOAD*	CAF	DLOAD*			# STODL* COMES HERE TO PROCESS LOAD ADR.
+		TS	CYR			# (STOVL* ENTERS HERE).
+		
+INDEX		CA	FIXLOC			# SET UP INDEX LOCATION.
+		TS	INDEXLOC
+		INCR	LOC			# (ADDRESS ALWAYS GIVEN).
+		INDEX	LOC
+		CS	0
+		CCS	A			# INDEX 2 IF ADDRESS STORED COMPLEMENTED.
+		INCR	INDEXLOC
+		NOOP
+		
+		TS 	ADDRWD			# 14 BIT ADDRESS TO ADDRWD.
+		MASK	HIGH4			# IF ADDRESS GREATER THAN 2K, ADD INTBIT15
+		EXTEND
+		BZF 	INDEX2
+		CA	INTBIT15
+		ADS	ADDRWD
+
+INDEX2		INDEX	INDEXLOC
+		CS	X1
+		ADS	ADDRWD			# DO AUGMENT, IGNORING AND CORRECTING OVF.
+		
+		MASK	HIGH9			# SEE IF ADDRESS IS IN WORK AREA.
+		EXTEND
+		BZF	INDWORK
+		MASK	HIGH4			# SEE IF IN FIXED BANK.
+		EXTEND
+		BZF	INDERASE
+
+		CA	ADDRWD			# IN FIXED -- SWITCH BANKS AND CREATE
+		TS	FBANK			# SUB-ADDRESS
+		MASK	LOW10
+		AD	2K
+		TS	ADDRWD
+ITR11		INDEX	CYR
+		3	INDJUMP -1
+		
+INDWORK		CA	FIXLOC			# MAKE ADDRWD RELATIVE TO WORK AREA.
+		TCF	ITR13 -1
+
+INDERASE	CA	OCT1400
+		XCH	ADDRWD
+		TS	EBANK
+		MASK	LOW8
+	-1	ADS	ADDRWD
+# Page 1112
+ITR13		INDEX	CYR
+		3	INDJUMP -1
+		
+# Page 1113
+# PUSH-UP ROUTINES.  WHEN NO OPERAND ADDRESS IS GIVEN, THE APPROPRIATE OPERAND IS TAKEN FROM THE PUSH-DOWN
+# LIST.  IN MOST CASES THE MODE OF THE RESULT (VECTOR OR SCALAR) OF THE LAST ARTGHMETIC OPERATION PERFORMED
+# IS THE SAME AS THE TYPE OF OPERAND DESIRED (ALL ADD/SUBTRACT ETC.).  EXCEPTIONS TO THIS GENERAL RULE ARE LISTED
+# BELOW (NOTE THAT IN EVERY CASE THE MODE REGISTER IS LEFT INTACT):
+#
+#	1.	VXSC AND V/SC WANT THE OPPOSITE TYPE OF OPERAND, E.G., IF THE LAST OPERATION YIELDED A VECTOR
+#		RESULT, VXSC WANTS A SCALAR.
+#
+#	2.	THE LOAD CODES SHOULD LOAD THE ACCUMULATOR INDEPENDENT OF THE RESULT OF THE LAST OPERATION.  THIS
+#		INCLUDES VLOAD, DLOAD, TLOAD, PDDL, AND PDVL (NO PUSHUP WITH SLOAD).
+#
+#	3.	SOME ARITHMETIC OPERATIONS REQUIRE A STANDARD TYPE OF OPERAND REGARDLESS OF THE PREVIOUS OPERATION.
+#		THIS INCLUDES SIGN WANTING DP AND TAD REQUIRING TP.
+
+PUSHUP		CAF	OCT23		# IF THE LOW 5 BITS OF CYR ARE LESS THAN
+		MASK	CYR		# 20, THIS OP REQUIRES SPECIAL ATTENTION.
+		AD	-OCT10		# (NO -0).
+		CCS	A
+		TCF	REGUP		# FOR ALL CODES GREATEER THAN OCT 7.
+		
+-OCT10		OCT	-10
+
+		AD	NEG4		# WE NOW HAVE 7 -- OP CODE (MOD4).  SEE IF
+		CCS	A		# THE OP CODE (MOD4) IS THREE (REVERSE).
+		INDEX	A		# NO -- THE MODE IS DEFINITE.  PICK UP THE
+		CS	NO.WDS
+		TCF	REGUP +2
+		
+		INDEX	MODE		# FOR VXSC AND V/SC WE WANT THE REQUIRED
+		CS	REVCNT		# PUSHLOC DECREMENT WITHOUT CHANGING THE
+		TCF	REGUP +2	# MODE AT THE IS TIME.
+
+REGUP		INDEX	MODE		# MOST ALL OP CODES PUSHUP HERE.
+		CS	NO.WDS
+	+2	ADS	PUSHLOC
+ 		TS	ADDRWD
+ITR14		INDEX	CYR
+		7	INDJUMP -1	# (THE INDEX MAKES THIS A TCF.)
+
+		OCT	2		# REVERSE PUSHUP DECREMENT. VECTOR TAKES 2
+REVCNT		OCT	6		# WORDS, SCALAR TAKES 6.
+		OCT	6
+NO.WDS		OCT	2		# CONVENTIONAL DECREMENT IS 6 WORDS VECTOR
+OCTAL3		OCT	3		# 2 IN DP, AND 3 IN TP.
+		OCT	6
+
+# Page 1114
+# TEST THE SECOND PREFIX BIT TO SEE IF THIS IS A MISCELLANEOUS OR A UNARY/SHORT SHIFT OPERATION.
+
+OPJUMP2		CCS	CYR		# TEST SECOND PREFIX BIT.
+		TCF	OPJUMP3		# TEST THIRD BIT TO SEE IF UNARY OR SHIFT
+		
+-ENDVAC		DEC	-45
+
+# THE FOLLOWING ROUTINE PROCESSES ADDRESSES OF SUFFIX CLASS 10.  THEY ARE BASICALLY WORK AREA ADDRESSES
+# IN THE RANGE 0-52, ERASABLE ECADR CONSTANTS FROM 100-3777, AND FCADRS ABOVE THAT.  ALL 15 BITS ARE AVAILABLE
+# IN CONTRAST TO SUFFIX 1, IN WHICH ONLY THE LOW ORDER 14 ARE AVAILABLE.
+
+15BITADR	INCR	LOC		# (ENTRY HERE FROM STCALL).
+		INDEX	LOC		# PICK UP ADDRESS WORD.
+		CA	0
+		TS	POLISH		# WE MAY NEED A SUBADDRESS LATER.
+		
+		CAF	LOW7+2K		# THESE INSTRUCTIONS ARE IN BANK 1.
+		TS	FBANK
+		MASK	CYR
+ITR7		INDEX	A
+		TCF 	MISCJUMP
+		
+# Page 1115
+# COMPLETE THE DISPATCHING OF UNARY AND SHORT SHIFT OPERATIONS.
+
+OPJUMP3		TS	FBANK		# CALL IN BANK 0 (BIT5S 11-15 OF A ARE 0.)
+
+		CCS	CYR		# TEST THIRD PREFIX BIT.
+		INDEX	A		# THE DECREMENTED UNARY CODE IS IN BITS
+		TCF	UNAJUMP		# 1-4 OF A (ZERO, EXIT, HAS BEEN DETECTED)
+		
+		CCS	MODE		# IT'S A SHORT SHIFT CODE.  SEE IF PRESENT
+		TCF	SHORTT		# SCALAR OR VECTOR.
+		TCF	SHORTT
+		TCF	SHORTV		# CALLS THE APPROPRIATE ROUTINE.
+		
+FBANKMSK	EQUALS	BANKMASK
+LVBUF		ADRES	VBUF
+
+# Page 1116
+# THE FOLLOWING IS THE JUMP TABLE FOR OP CODES WHICH MAY HAVE INDEXABLE ADDRESSES OR MAY PUSH UP.
+
+INDJUMP		TCF	VLOAD		# 00 -- LOAD MPAC WITH A VECTOR.
+		TCF	TAD		# 01 -- TRIPLE PRECISION ADD TO MPAC.
+		TCF	SIGN		# 02 -- COMPLEMENT MPAC (V OR SC) IF X NEG.
+		TCF	VXSC		# 03 -- VECTOR TIMES SCALAR.
+		TCF	CGOTO		# 04 -- COMPUTED GO TO.
+		TCF	TLOAD		# 05 -- LOAD MPAC WITH TRIPLE PRECISION.
+		TCF	DLOAD		# 06 -- LOAD MPAC WITH A DP SCALAR.
+		TCF	V/SC		# 07 -- VECTOR DIVIDED BY A SCALAR.
+		
+		TCF	SLOAD		# 10 -- LOAD MPAC IN SINGLE PRECISION.
+		TCF	SSP		# 11 -- SET SINGLE PRECISION INTO X.
+		TCF	PDDL		# 12 -- PUSH DOWN MPAC AND RE-LOAD IN DP.
+		TCF	MXV		# 13 -- MATRIX POST-MULTIPLIED BY VECTOR.
+		TCF	PDVL		# 14 -- PUSH DOWN AND VECTORLOAD.
+		TCF	CCALL		# 15 -- COMPUTED CALL.
+		TCF	VXM		# 16 -- MATRIX PRE-MULTIPLIED BY VECTOR.
+		TCF	TSLC		# 17 -- NORMALIZE MPAC (SCALAR ONLY).
+		
+		TCF	DMPR		# 20 -- DP MULTIPLY AND ROUND.
+		TCF	DDV		# 21 -- DP DIVIDE BY.
+		TCF	BDDV		# 22 -- DP DIVIDE INTO.
+		TCF	GSHIFT		# 23 -- GENERAL SHIFT INSTRUCTION
+		TCF	VAD		# 24 -- VECTOR ADD.
+		TCF	VSU		# 25 -- VECTOR SUBTRACT.
+		TCF	BVSU		# 26 -- VECTOR SUBTRACT FROM.
+		TCF	DOT		# 27 -- VECTOR DOT PRODUCT.
+		
+		TCF	VXV		# 30 -- VECTOR CROSS PRODUCT.
+		TCF	VPROJ		# 31 -- VECTOR PROJECTION.
+		TCF	DSU		# 32 -- DP SUBTRACT.
+		TCF	BDSU		# 33 -- DP SUBTRACT FROM.
+		TCF	DAD		# 34 -- DP ADD.
+		TCF	+0		# 35 -- AVAILABLE
+		TCF	DMP1		# 36 -- DP MULTIPLY.
+		TCF	SETPD		# 37 -- SET PUSH DOWN POINTER (DIRECT ONLY)
+		
+# CODES 10 AND 14 MUST NOT PUSH UP. CODE 04 MAY BE USED FOR VECTOR DECLARE BEFORE PUSHUP IF DESIRED.
+
+# Page 1117
+# THE FOLLOWING JUMP TABLE APPLIES TO INDEX, BRANCH, AND MISCELLANEOUS INSTRUCTIONS.
+
+MISCJUMP	TCF	AXT		# 00 -- ADDRESS TO INDEX TRUE.
+		TCF	AXC		# 01 -- ADDRESS TO INDEX COMPLEMENTED.
+		TCF	LXA		# 02 -- LOAD INDEX FROM ERASABLE.
+		TCF	LXC		# 03 -- LOAD INDEX FROM COMPLEMENT OF ERAS.
+		TCF	SXA		# 04 -- STORE INDEX IN ERASABLE.
+		TCF	XCHX		# 05 -- EXCHANGE INDEX WITH ERASABLE.
+		TCF	INCR		# 06 -- INCREMENT INDEX REGISTER.
+		TCF	TIX		# 07 -- TRANSFER ON INDEX.
+		
+		TCF	XAD		# 10 -- INDEX REGISTER ADD FROM ERASABLE.
+		TCF	XSU		# 11 -- INDEX SUBTRACT FROM ERASABLE.
+		TCF	BZE/GOTO	# 12 -- BRANCH ZERO AND GOTO
+		TCF	BPL/BMN		# 13 -- BRANCH PLUS AND BRANCH MINUS.
+		TCF	RTB/BHIZ	# 14 -- RETURN TO BASIC AND BRANCH HI ZERO.
+		TCF	CALL/ITA	# 15 -- CALL AND STORE QPRET.
+		TCF	SW/		# 16 -- SWITCH INSTRUCTIONS AND AVAILABLE.
+		TCF	BOV(B)		# 17 -- BRANCH ON OVERFLOW TO BASIC OR INT.
+
+# Page 1118
+# THE FOLLOWING JUMP TABLE APPLIES TO UNARY INSTRUCTIONS
+		COUNT*	$$/INTER
+		BANK	0		# 00 -- EXIT -- DETECTED EARLIER.
+UNAJUMP		TCF	SQRT		# 01 -- SQUARE ROOT.
+		TCF	SINE		# 02 -- SIN.
+		TCF	COSINE		# 03 -- COS.
+		TCF	ARCSIN		# 04 -- ARC SIN.
+		TCF	ARCCOS		# 05 -- ARC COS.
+		TCF	DSQ		# 06 -- DP SQUARE.
+		TCF	ROUND		# 07 -- ROUND TO DP.
+		
+		TCF	COMP		# 10 -- COMPLEMENT VECTOR OR SCALAR
+		TCF	VDEF		# 11 -- VECTOR DEFINE.
+		TCF	UNIT		# 12 -- UNIT VECTOR.
+		TCF	ABVALABS	# 13 -- LENGTH OF VECTOR OR MAG OF SCALAR.
+		TCF	VSQ		# 14 -- SQUARE OF LENGTH OF VECTOR.
+		TCF	STADR		# 15 -- PUSH UP ON STORE CODE.
+		TCF	RVQ		# 16 -- RETURN VIA QPRET.
+		TCF	PUSH		# 17 -- PUSH MPAC DOWN.
+		
+# Page 1119
+# SECTION 2	LOAD AND STORE PACKAGE.
+#
+# A SET OF EIGHT STORE CODES IS PROVIDED AS THE PRIMARY METHOD OF STORING THE MULTI-PURPOSE
+# ACCUMULATOR (MPAC).  IF IN THE DANZIG SECTION LOC REFERS TO AN ALGEBRAICALLY POSITIVE WORD, IT IS TAKEN AS A 
+# STORE CODE WITH A CORRESPONDING ERASABLE ADDRESS.  MOST OF THESE CODES ARE TWO ADDRESS, SPECIFYING THAT THE WORD
+# FOLLOWING THE STORE CODE IS TO BE USED AS AN ADDRESS FROM WHICH TO RE-LOAD MPAC.  FOUR OPTIONS ARE AVAILABLE:
+#
+#	1. STORE	STORE MPAC.  THE E ADDRESS MAY BE INDEXED.
+#	2. STODL	STORE MPAC AND RE-LOAD IT IN DP WITH THE NEXT ADDRESS (THE LOAD MAY BE INDEXED).
+#	3. STOVL	STORE MPAC AND RE-LOAD A VECTOR (AS ABOVE).
+#	4. STCALL	STORE AND DO A CALL (BOTH ADDRESSES MUST BE DIRECT HERE).
+#
+# STODL AND STOVL WILL TAKE FROM THE PUSH-DOWN LIST IF NO LOAD ADDRESS IS GIVEN.
+
+		BLOCK	3
+		
+		COUNT	03/INTER
+		
+STADR		CA	BANKSET		# THE STADR CODE (PUSHUP UP ON STORE
+		TS	FBANK		# ADDRESS) ENTERS HERE.
+		INCR	LOC
+ITR1		INDEX	LOC		# THE STORECODE WAS STORED COMPLEMENTED TO
+		CS	0		# MAKE IT LOOK LIKE AN OPCODE PAIR.
+		AD	NEGONE		# (YUL CAN'T REMOVE 1 BECAUSE OF EARLY CCS)
+		
+DOSTORE		TS	ADDRWD	
+		MASK 	LOW11		# ENTRY FROM DISPATCHER.  SAVE THE ARASABLE
+		XCH	ADDRWD		# ADDRESS AND JUMP ON THE STORE CODE NO.
+		MASK	B12T14
+		EXTEND
+		MP	BIT5		# EACH TRANSFER VECTOR ENTRY IS TWO WORDS.
+ITR0		INDEX	A
+		TCF	STORJUMP
+		
+# Page 1120
+# STORE CODE JUMP TABLE.  CALLS THE APPROPRIATE STORING ROUTINE AND EXITS TO DANZIG OR TO ADDRESS WITH
+# A SUPPLIED OPERATION CODE.
+#
+# STORE STORE,1 AND STORE,2 RETURN TO DANZIG, THUS RESETTING THE EBANK TO ITS STATE AT INTPRET.
+
+STORJUMP	TC	STORE		# STORE.
+		TCF	DANZIG		# PICK UP NEW OP CODE(S).
+		TC	STORE,1
+		TCF	DANZIG
+		TC	STORE,2
+		TCF	DANZIG
+		
+		TC	STORE		# STODL.
+		TCF	DODLOAD
+		
+		TC	STORE		# STODL WITH INDEXED LOAD ADDRESS.
+		TCF	DODLOAD*
+		
+		TC	STORE		# STOVL.
+		TCF	DOVLOAD
+		
+		TC	STORE		# STOVL WITH INDEXED LOAD ADDRESS.
+		TCF	DOVLOAD*
+		TC	STORE		# STOTC.
+		CAF	CALLCODE
+		TS	CYR
+		TCF	15BITADR	# GET A 15 BIT ADDRESS.
+		
+# Page 1121
+# STORE CODE ADDRESS PROCESSOR.
+
+STORE,1		INDEX	FIXLOC
+		CS	X1
+		TCF	PRESTORE
+		
+STORE,2		INDEX	FIXLOC
+		CS	X2
+PRESTORE	ADS	ADDRWD		# RESULTANT ADDRESS IS IN ERASABLE.
+
+STORE		CS	ADDRWD
+		AD	DEC45
+		CCS	A		# DOES THE ADDRESS POINT TO THE WORK AREA?
+		CA	FIXLOC		# YES.
+		TCF	AHEAD5
+		CA	OCT1400		# NO.  SET EBANK & MAKE UP SUBADDRESS.
+		XCH	ADDRWD
+		TS	EBANK
+		MASK	LOW8
+AHEAD5		ADS	ADDRWD
+
+# Page 1122
+# STORING ROUTINES.  STORE DP, TP, OR VECTOR AS INDICATED BY MODE.
+
+STARTSTO	EXTEND			# MPAC,+1 MUST BE STORED IN ANY EVENT.
+# ITRACE (5) REFERS TO "STARTSTO".
+		DCA	MPAC
+		INDEX	ADDRWD
+		DXCH	0
+		
+		CCS	MODE
+		TCF	TSTORE
+		TC	Q
+		
+VSTORE		EXTEND
+		DCA	MPAC +3
+		INDEX 	ADDRWD
+		DXCH	2
+		
+		EXTEND
+		DCA	MPAC +5
+		INDEX	ADDRWD
+		DXCH	4
+		TC	Q
+		
+TSTORE		CA	MPAC +2
+		INDEX	ADDRWD
+		TS	2
+		TC	Q
+		
+# Page 1123
+# ROUTINES TO BEGIN PROCESSING OF THE SECOND ADDRESS ASSOCIATED WITH ALL STORE-TYPE CODES EXCEPT STORE
+# ITSELF.
+
+DODLOAD		CAF	DLOADCOD
+		TS	CYR
+		TCF	DIRADRES	# GO GET A DIRECT ADDRESS.
+
+DOVLOAD		CAF	VLOADCOD
+		TS	CYR
+		TCF	DIRADRES
+
+DOVLOAD*	CAF	VLOAD*
+		TCF	DODLOAD* +1	# PROLOGUE TO INDEX ROUTINE.
+
+# Page 1124
+# THE FOLLOWING LOAD INSTRUCTIONS ARE PROVIDED FOR LOADING THE MULTI-PURPOSE ACCUMULATOR MPAC.
+
+TLOAD		INDEX 	ADDRWD
+		CA	2		# LOAD A TRIPLE PRECISION ARGUMENT INTO
+		TS	MPAC +2		# THE FIRST THREE MPAC REGISTERS, WITH THE
+		EXTEND			# CONTENTS OF THE OTHER FOUR IRRELEVANT.
+		INDEX	ADDRWD
+		DCA	0
+		DXCH	MPAC
+TMODE		CAF	ONE
+		TCF	NEWMODE		# DECLEARE TRIPLE PRECISION MODE.
+		
+SLOAD		ZL			# LOAD A SINGLE PRECISION NUMBER INTO
+		INDEX	ADDRWD		# MPAC, SETTING MPAC+1,2 TO ZERO.  THE
+		CA	0		# CONTENTS OF THE REMAINING MPAC REGISTERS
+		TCF	SLOAD2		# ARE IRRELEVANT.
+
+VLOAD		EXTEND			# LOAD A DOUBLE PRECISION VECTOR INTO
+		INDEX	ADDRWD		# MPAC,+1, MPAC+3,4, AND MPAC+5,6.  THE
+		DCA	0		# CONTENTS OF MPAC +2 ARE IRRELEVANT.
+		DXCH	MPAC
+		
+ENDVLOAD	EXTEND			# PDVL COMES HERE TO FINISH UP FOR DP, TP.
+		INDEX	ADDRWD
+		DCA	2
+		DXCH	MPAC +3
+		
+	+4	EXTEND			# TPDVL FINISHES HERE.
+		INDEX	ADDRWD
+		DCA	4
+		DXCH	MPAC +5
+
+VMODE		CS	ONE		# DECLARE VECTOR MODE.
+		TCF	NEWMODE
+
+# Page 1125
+# THE FOLLOWING INSTRUCTIONS ARE PROVIDED FOR STORING OPERANDS IN THE PUSHDOWN LIST:
+#	1.	PUSH		PUSHDOWN AND NO LOAD.
+#	2.	PDDL		PUSHDOWN AND DOUBLE PRECISION LOAD.
+#	3.	PDVL		PUSHDOWN AND VECTOR LOAD.
+
+PDDL		EXTEND
+		INDEX	ADDRWD		# LOAD MPAC,+1, PUSHING THE FORMER
+		DCA	0		# CONTENTS DOWN.
+		DXCH	MPAC
+		INDEX	PUSHLOC
+		DXCH	0
+
+		INDEX	MODE		# ADVANCE THE PUSHDOWN POINTER APPRO-
+		CAF	NO.WDS		# PRIATELY.
+		ADS	PUSHLOC
+
+		CCS	MODE
+		TCF	ENDTPUSH
+		TCF	ENDDPUSH
+
+		TS	MODE		# NOW DP.
+ENDVPUSH	TS	MPAC +2
+		DXCH	MPAC +3		# PUSH DOWN THE REST OF THE VECTOR HERE.
+		INDEX	PUSHLOC
+		DXCH	0 -4
+
+		DXCH	MPAC +5
+		INDEX	PUSHLOC
+		DXCH	0 -2
+
+		TCF	DANZIG
+
+ENDDPUSH	TS	MPAC +2		# SET MPAC +2 TO ZERO AND EXIT ON DP.
+		TCF	DANZIG
+
+ENDTPUSH	TS	MODE
+		XCH	MPAC +2		# ON TRIPLE, SET MPAC +2 TO ZERO, PUSHING
+	+2	INDEX	PUSHLOC		# DOWN THE OLD CONTENTS
+ 		TS	0 -1
+		TCF	DANZIG
+
+# Page 1126
+# PDVL -- PUSHDOWN AND VECTOR LOAD
+
+PDVL		EXTEND			# RELOAD MPAC AND PUSH DOWN ITS CONTENTS.
+		INDEX	ADDRWD
+		DCA	0
+		DXCH	MPAC
+		INDEX	PUSHLOC
+		DXCH	0
+		
+		INDEX	MODE		# ADVANCE THE PUSHDOWN POINTER.
+		CAF	NO.WDS
+		ADS	PUSHLOC
+
+		CCS	MODE		# TEST PAST MODE.
+		TCF	TPDVL
+		TCF	ENDVLOAD	# JUST LOAD LAST FOUR REGISTERS ON DP.
+
+VPDVL		EXTEND			# PUSHDOWN AND RE-LOAD LAST TWO COMPONENTS
+		INDEX	ADDRWD
+		DCA	2
+		DXCH	MPAC +3
+		INDEX	PUSHLOC
+		DXCH	0 -4
+		
+		EXTEND
+		INDEX 	ADDRWD
+		DCA	4
+		DXCH	MPAC +5
+		INDEX	PUSHLOC
+		DXCH	0 -2
+		
+		TCF	DANZIG
+		
+TPDVL		EXTEND			# ON TP, WE MUST LOAD THE Y COMPONENT
+		INDEX	ADDRWD		# BEFORE STORING MPAC +2 IN CASE THIS IS A
+		DCA	2		# PUSHUP.
+		DXCH	MPAC +3
+		
+		CA	MPAC +2
+		INDEX	PUSHLOC		# IN DP.
+		TS	0 -1
+		TCF	ENDVLOAD +4
+		
+# SSP (STORE SINGLE PRECISION) IS EXECUTED HERE.
+
+SSP		INCR	LOC		# PICK UP THE WORD FOLLOWING THE GIVEN
+		INDEX	LOC		# ADDRESS AND STORE IT AT X.
+		CA	0
+STORE1		INDEX	ADDRWD		# SOME INDEX AND MISCELLANEOUS OPS END
+		TS	0		# HERE.
+# Page 1127
+		TCF	DANZIG
+		
+# Page 1128
+# SEQUENCE CHANGING AND SUBROUTINE CALLING OPTIONS.
+#
+# THE FOLLOWING OPERATIONS ARE AVAILABLE FOR SEQUENCING CHANGING, BRANCHING, AND CALLING SUBROUTINES:
+#	1.	GOTO		GO TO.
+#	2.	CALL		CALL SUBROUTINE SETTING QPRET.
+#	3.	CGOTO		COMPUTED GO TO.
+#	4.	CCALL		COMPUTED CALL.
+#	7.	BPL		BRANCH IF MPAC POSITIVE OR ZERO.
+#	8.	BZE		BRANCH IF MPAC ZERO.
+#	9.	BMN		BRANCH IF MPAC NEGATIVE NON-ZERO.
+
+CCALL		INCR	LOC		# MAINTAIN LOC FOR QPRET COMPUTATION
+		INDEX	LOC
+		# Was CAF --- RSB 2009.
+		CA	0		# GET BASE ADDRESS OF CADR LIST.
+		INDEX	ADDRWD
+		AD	0		# ADD INCREMENT.
+		TS	FBANK		# SELECT DESIRED CADR.
+		MASK	LOW10
+		INDEX	A
+		CAF	10000
+		TS	POLISH
+
+CALL		CA	BANKSET		# FOR ANY OF THE CALL OPTIONS, MAKE UP THE
+		MASK	BANKMASK	# ADDRESS OF THE NEXT OP-CODE PAIR/STORE
+		AD	BANKMASK	# CODE AND LEAVE IT IN QPRET.  NOTE THAT
+		AD	LOC		# BANKMASK = -(2000 - 1).
+		INDEX	FIXLOC
+		TS	QPRET
+		
+GOTO		CA	POLISH		# BASIC BRANCHING SEQUENCE.
+	+1	MASK 	HIGH4
+		EXTEND
+		BZF	GOTOERS		# SEE IF ADDRESS POINTS TO FIXED OR ERAS.
+	+4	CA	BANKSET		# SET EBANK PART OF BBANK.  NEXT, SET UP
+		TS	BBANK		# FBANK.  THE COMBINATION IS PICKED UP &
+		CA	POLISH		# PUT INTO BANKSET AT INTPRET +2.
+		TS	FBANK
+		MASK 	LOW10
+		AD	2K
+		TS	LOC
+		TCF	INTPRET +3
+		
+		EBANK=	1400		# SO YUL DOESN'T CUSS THE "CA 1400" BELOW.
+		
+GOTOERS		CA	POLISH		# THE GIVEN ADDRESS IS IN ERASABLE -- SEE
+		AD	-ENDVAC		# IF RELATIVE TO THE WORK ARA.
+		CCS	A
+		CA	POLISH		# GENERAL ERASABLE.
+		TCF	GOTOGE
+
+# Page 1129
+		CA	FIXLOC		# WORK AREA.
+		AD	POLISH
+		INDEX	A		# USE THE GIVEN ADDRESS AS THE ADDRESS OF
+		CA	0		# THE BRANCH ADDRESS.
+		TS	POLISH
+		TCF	GOTO +1		# ALLOWS ARBITRARY INDIRECTNESS LEVELS.
+		
+GOTOGE		TS	EBANK
+		MASK	LOW8
+		INDEX	A		# USE THE GIVEN ADDRESS AS THE ADDRESS OF
+		CA	1400		# THE BRANCH ADDRESS.
+		TS	POLISH
+		TCF	GOTO +1
+		
+CGOTO		INDEX	LOC		# COMPUTED GO TO.  PICK UP ADDRESS OF CADR
+		CA	1		# LIST
+		INDEX	ADDRWD		# ADD MODIFIER.
+		AD	0
+		TS	FBANK		# SELECT GOTO ADDRESS
+		MASK	LOW10
+		INDEX	A
+		CA	10000
+		TS	POLISH
+		TCF	GOTO +1		# WITH ADDRESS IN A.
+		
+SWBRANCH	CA	BANKSET		# SWITCH INSTRUCTIONS WHICH ELECT TO
+		TS	FBANK		# BRANCH COME HERE TO DO SO.
+		INDEX	LOC
+		CA	1
+		TS	POLISH
+		TCF	GOTO +1
+		
+# Page 1130
+# TRIPLE PRECISION BRANCHING ROUTINE.  IF CALLING TC IS AT L, RETURN IS AS FOLLOWS:
+#	L+1	IF MPAC IS GREATER THAN ZERO.
+#	L+2	IF MPAC IS EQUAL TO +0 OR -0.
+#	L+3	IF MPAC IS LESS THAN ZERO.
+
+BRANCH		CCS	MPAC
+		TC	Q
+		TCF	+2		# ON ZERO.
+		TCF	NEG
+		
+		CCS	MPAC +1
+		TC	Q
+		TCF	+2
+		TCF	NEG
+		
+		CCS	MPAC +2
+		TC	Q
+		TCF	+2
+		TCF	NEG
+		
+Q+1		INDEX	Q
+		TC	1
+		
+NEG		INDEX	Q		# IF FIRST NON-ZERO REGISTER WAS NEGATIVE.
+		TC	2
+		
+Q+2		=	NEG
+
+# ITRACE (3) REFERS TO "EXIT".
+
+EXIT		CA	BANKSET		# RESTORE USER'S BANK SETTING, AND LEAVE
+		TS	BBANK		# INTERPRETIVE MODE.
+		INDEX	LOC
+		TC	1
+
+# Page 1131
+# SECTION 3 -- ADD/SUBTRACT PACKAGE.
+#
+# THE FOLLOWING OPERATIONS ARE PROVIDED FOR ADDING TO AND SUBTRACTING FROM THE MULTI-PURPOSE ACCUMULATOR
+# MPAC:
+#	1.	DAD	DOUBLE PRECISION ADD.
+#	2.	DSU	DOUBLE PRECISION SUBTRACT.
+#	3.	BDSU	DOUBLE PRECISION SUBTRACT FROM.
+#	4.	TAD	TRIPLE PRECISION ADD.
+#	5.	VAD	VECTOR ADD.
+#	6.	VSU	VECTOR SUBTRACT.
+#	7.	BVSU	VECTOR SUBTRACT FROM.
+# THE INTERPRETIVE OVERFLOW INDICATOR OVFIND IS SET NON-ZERO IF OVERFLOW OCCURS IN ANY OF THE ABOVE.
+
+VSU		CAF	BIT15		# CHANGES 0 TO DCS.
+		TCF	+2
+		
+VAD		CAF	PRIO30		# CHANGES 0 TO DCA.
+		ADS	ADDRWD
+		EXTEND
+		INDEX	ADDRWD
+		READ	HISCALAR	# DCA 2 OR DCS 2
+		DAS 	MPAC +3
+		EXTEND			# CHECK OVERFLOW.
+		BZF	+2
+		TC	OVERFLWY
+		
+		EXTEND
+		INDEX	ADDRWD
+		READ	CHAN5		# DCA 4 OR DCS 4
+		DAS	MPAC +5
+		EXTEND
+		BZF	+2
+		TC	OVERFLWZ
+		
+		EXTEND
+		INDEX	ADDRWD
+		READ	LCHAN		# DCA 0 OR DCS 0
+		TCF	ENDVXV
+
+DAD		EXTEND
+		INDEX 	ADDRWD
+		DCA	0
+ENDVXV		DAS	MPAC		# VXV FINISHES HERE.
+		EXTEND
+		BZF	DANZIG
+		
+# Page 1132
+SETOVF		TC	OVERFLOW
+		TCF	DANZIG
+		
+# Page 1133
+DSU		EXTEND
+		INDEX	ADDRWD
+		DCS	0
+		TCF	ENDVXV
+
+OVERFLWZ	TS	L		# ENTRY FOR THIRD COMPONENT.
+		CAF	FIVE
+		TCF	+3
+		
+OVERFLWY	TS	L		# ENTRY FOR SECOND COMPONENT.
+		CAF	THREE
+		XCH	L
+		
+OVERFLOW	INDEX	A		# ENTRY FOR 1ST COMP OR DP (L=0).
+		CS	LIMITS		# PICK UP POSMAX OR NEGMAX.
+		TS	BUF
+		EXTEND
+		AUG	A
+		INDEX	L
+		ADS	MPAC +1
+		TS	7
+		CAF	ZERO
+		AD	BUF
+		INDEX	L
+		ADS	MPAC
+		TS	7
+		TC	Q		# NO OVERFLOW EXIT.
+		TCF	SETOVF2		# SET OVFIND AND EXIT.
+		
+BVSU		EXTEND
+		INDEX	ADDRWD
+		DCA	2
+		DXCH	MPAC +3
+		EXTEND
+		DCOM	
+		DAS	MPAC +3
+		EXTEND
+		BZF	+2
+		TC	OVERFLWY
+		
+		EXTEND
+		INDEX	ADDRWD
+		DCA	4
+		DXCH	MPAC +5
+		EXTEND
+		DCOM
+		DAS	MPAC +5
+		EXTEND
+		BZF	+2
+		TC	OVERFLWZ
+		
+# Page 1134
+BDSU		EXTEND
+		INDEX	ADDRWD
+		DCA	0
+		DXCH	MPAC
+		EXTEND
+		DCOM
+		TCF	ENDVXV
+		
+# Page 1135
+# TRIPLE PRECISION ADD ROUTINE.
+
+TAD		EXTEND
+		INDEX	ADDRWD
+		DCA	1		# ADD MINOR PARTS FIRST.
+		DAS	MPAC +1
+		INDEX	ADDRWD
+		AD	0
+		AD	MPAC
+		TS	MPAC
+		TCF	DANZIG
+		
+		TCF	SETOVF		# SET OVFIND IF SUCH OCCURS.
+		
+# Page 1136
+# ARITHMETIC SUBROUTINES REQUIRED IN FIXED-FIXED.
+#	1.  DMPSUB	DOUBLE PRECISION MULTIPLY, MULTIPLY THE CONTENTS OF MPAC,+1 BY THE DP WORD WHOSE ADDRESS
+#			IS IN ADDRWD AND LEAVE A TRIPLE-PRECISION RESULT IN MPAC.
+#	2.  ROUNDSUB	ROUND THE TRIPLE PRECISION CONTENTS OF MPAC TO DOUBLE PRECISION.
+#	3.  DOTSUB	TAKE THE DOT PRODUCT OF THE VECTOR IN MPAC AND THE VECTOR WHOSE ADDRESS IS IN ADDRWD
+#			AND LEAVE THE TRIPLE PRECISION RESULT IN MPAC.
+#	4.  POLY	USING THE CONTENTS OF MPAC AS A DP ARGUMENT, EVALUATE THE POLYNOMIAL WHOSE DEGREE AND
+#			COEFFICIENTS IMMEDIATELY FOLLOW THE TC POLY INSTRUCTION (SEE ROUTINE FOR DETAILS).
+
+DMP		INDEX	Q		# BASIC SUBROUTINE FOR USE BY PINBALL, ETC
+		# Was CAF --- RSB 2009.
+		CA	0
+		INCR	Q
+	-1	TS	ADDRWD		# (PROLOGUE FOR SETTING ADDRWD.)
+
+DMPSUB		INDEX	ADDRWD		# GET MINOR PART OF OPERAND AT C(ADDRWD).
+		CA	1
+		TS	MPAC +2		# THIS WORKS FOR SQUARING MPAC AS WELL.
+		CAF	ZERO		# SET MPAC +1 TO ZERO SO WE CAN ACCUMULATE
+		XCH	MPAC +1		# THE PARTIAL PRODUCTS WITH DAS
+		TS	MPTEMP		# INSTRUCTIONS.
+		EXTEND
+		MP	MPAC +2		# MINOR OF MPAC X MINOR OF C(ADDRWD).
+
+		XCH	MPAC +2		# DISCARD MINOR PART OF ABOVE RESULT AND
+		EXTEND			# FORM MAJOR OF MPAC X MINOR OF C(ADDRWD).
+		MP	MPAC
+		DAS	MPAC +1		# GUARANTEED NO OVERFLOW.
+		
+		INDEX	ADDRWD		# GET MAJOR PART OF ARGUMENT AT C(ADDRWD).
+		CA	0
+		XCH	MPTEMP		# SAVE AND BRING OUT MINOR OF MPAC.
+DMPSUB2		EXTEND	
+		MP	MPTEMP		# MAJOR OF C(ADDRWD) X MINOR OF MPAC.
+		DAS	MPAC +1		# ACCUMULATE, SETTING A TO NET OVERFLOW.
+
+		XCH	MPAC		# SETTING MPAC TO 0 OR +-1.
+		EXTEND
+		MP	MPTEMP		# MAJOR OF MPAC X MAJOR OF C(ADDRWD).
+		DAS	MPAC		# GUARANTEED NO OVERFLOW.
+		TC	Q		# 49 MCT = .573 MS. INCLUDING RETURN.
+		
+# Page 1137
+# ROUND MPAC TO DOUBLE PRECISION, SETTING OVFIND ON THE RARE EVENT OF OVERFLOW.
+
+ROUNDSUB	CAF	ZERO		# SET MPAC +2 = 0 FOR SCALARS AND CHANGE
+	+1	TS	MODE		# MODE TO DP.
+
+VROUND		XCH	MPAC +2		# BUT WE NEEDN'T TAKE THE TIME FOR VECTORS.
+		DOUBLE
+		TS	L
+		TC	Q
+
+		AD	MPAC +1		# ADD ROUDING BIT IF MPAC +2 WAS GREATER
+		TS	MPAC +1		# THAN .5 IN MAGNITUDE.
+		TC	Q
+
+		AD	MPAC		# PROPAGATE INTERFLOW.
+		TS	MPAC
+		TC	Q
+
+SETOVF2		TS	OVFIND		# (RARE).
+		TC	Q
+
+# Page 1138
+# THE DOT PRODUCT SUBROUTINE USUALLY FORMS THE DOT PRODUCT OF THE VECTOR IN MPAC WITH A STANDARD SIX
+# REGISTER VECTOR WHOSE ADDRESS IS IN ADDRWD.  IN THIS CASE C(DOTINC) ARE SET TO 2. VXM, HOWEVER, SETS C(DOTINC) TO
+# 6 SO THAT DOTSUB DOTS MPAC WITH A COLUMN VECTOR OF THE MATRIX IN QUESTION IN THIS CASE.
+
+PREDOT		CAF	TWO		# PROLOGUE TO SET DOTINC TO 2.
+		TS	DOTINC
+
+DOTSUB		EXTEND
+		QXCH	DOTRET		# SAVE RETURN
+		TC	DMPSUB		# DOT X COMPONENTS.
+		DXCH	MPAC +3		# POSITION Y COMPONENT OF MPAC FOR
+		DXCH	MPAC		# MULTIPLICATION WHILE SAVING RESULT IN
+		DXCH	BUF		# THREE WORD BUFFER, BUF.
+		CA	MPAC +2
+		TS	BUF +2
+
+		CA	DOTINC		# ADVANCE ADDRWD TO Y COMPONENT OF
+		ADS	ADDRWD		# OTHER ARGUMENT.
+		TC	DMPSUB
+		DXCH	MPAC +1		# ACCUMULATE PARTIAL PRODUCTS.
+		DAS	BUF +1
+		AD	MPAC
+		AD	BUF
+		TS	BUF
+		TCF	+2
+		TS	OVFIND		# IF OVERFLOW OCCURS.
+		
+		DXCH	MPAC +5		# MULTIPLY Z COMPONENTS.
+		DXCH	MPAC
+		CA	DOTINC
+		ADS	ADDRWD
+		TC	DMPSUB
+ENDDOT		DXCH	BUF +1		# LEAVE FINAL ACCUMULATION IN MPAC.
+		DAS	MPAC +1
+		AD	MPAC
+		AD	BUF
+		TS	MPAC
+		TC	DOTRET
+
+		TC	OVERFLOW	# ON OVERFLOW HERE.
+		TC	DOTRET
+
+# Page 1139
+# DOUBLE PRECISION POLYNOMIAL EVALUATOR
+#	                          N        N-1
+#	THIS ROUTINE EVALUATES A X  + A   X    + ... + A  X + A  LEAVING THE DP RESULT IN MPAC ON EXIT.
+#	                        N      N-1              1      0
+#
+# THE ROUTINE HAS TWO ENTRIES
+#
+#	1	ENTRY THRU POWRSERS.  THE COEFFICIENTS MAY BE EITHER IN FIXED OR ERASABLE E.  THE CALL IS BY
+#		TC POWRSERS, AND THE RETURN IS TO LOC(TC POWRSERS)+1.  THE ENTERING DATA MUST BE AS FOLLOWS:
+#			A	SP	LOC-3		ADDRESS FOR REFERENCING COEF TABLE
+#			L	SP	N-1		N IS THE DEGREE OF THE POWER SERIES
+#			MPAC	DP	X		ARGUMENT
+#			LOC-2N	DP	A(0)
+#				...
+#			LOC	DP	A(N)
+#
+#	2.	ENTRY THRU POLY.  THE CALL TO POLY AND THE ENTERING DATA MUST BE AS FOLLOWS
+#			MPAC		DP		X		ARGUMENT
+#			LOC		TC		POLY
+#			LOC+1		DP		A(0)
+#					...
+#			LOC+2N+2	DP		A(N)		RETURN IS TO LOC+2N+4
+
+POWRSERS	EXTEND
+		QXCH	POLYRET		# RETURN ADDRESS
+		TS	POLISH		# POWER SERIES ADDRESS
+		LXCH	POLYCNT		# N-1 TO COUNTER
+		TCF	POLYCOM		# SKIP SET UP BY POLY
+
+POLY		INDEX	Q
+		# Was CAF --- RSB 2009.
+		CA	0
+		TS	POLYCNT		# N-1 TO COUNTER
+		DOUBLE
+		AD	Q
+		TS	POLISH		# L(A(N))-3 TO POLISH
+		AD	FIVE
+		TS	POLYRET		# STORE RETURN ADDRESS
+
+POLYCOM		CAF	LVBUF		# INCOMING X WILL BE MOVED TO VBUF, SO
+		TS	ADDRWD		# SET ADDRWD SO DMPSUB WILL MPY BY VBUF.
+		
+		EXTEND
+		INDEX	POLISH
+		DCA	3
+		
+# Page 1140
+		DXCH	MPAC		# LOAD A(N) INTO MPAC
+		DXCH	VBUF		# SAVING X IN VBUF
+		TCF	POLY2
+		
+POLYLOOP	TS	POLYCNT		# SAVE DECREMENTD LOOP COUNTER
+		CS	TWO
+		ADS	POLISH		# REGRESS COEFFICIENT POINTER
+		
+POLY2		TC	DMPSUB		# MULTIPLY BY X
+		EXTEND
+		INDEX	POLISH
+		DCA	1		# ADD IN NEXT COEFFICIENT
+		DAS	MPAC		# USER'S RESPONSIBILITY TO ASSURE NO OVFLOW
+		
+		CCS	POLYCNT
+		TCF	POLYLOOP
+		TC	POLYRET		# RETURN CALLER
+		
+# Page 1141
+# MISCELLANEOUS MULTI-PRECISION ROUTINES REQUIRED IN FIXED-FIXED BUT NOT USED BY THE INTERPRETER.
+
+DPAGREE		CAF	ZERO		# DOUBLE PRECISION ENTRY --
+		TS	MPAC +2		# ZERO LOW-ORDER WORD
+
+TPAGREE		LXCH	Q		# FORCE SIGN AGREEMENT AMONG THE TRIPLE
+		TC	BRANCH		# PRECISION CONTENTS OF MPAC.  RETURNING
+		TCF	ARG+		# WITH SIGNUM OF THE INPUT IN A.
+		TCF	ARGZERO
+
+		CS	POSMAX		# IF NEGATIVE.
+		TCF	+2
+
+ARG+		CAF	POSMAX
+		TS	Q
+		EXTEND
+		AUG	A		# FORMS +-1.0.
+		AD	MPAC +2
+		TS	MPAC +2
+		CAF	ZERO
+		AD	Q
+		AD	MPAC +1
+		TS	MPAC +1
+		CAF	ZERO
+		AD	Q		# Q STILL HAS POSMAX OR NEGMAX IN IT.
+		AD	MPAC
+ARGZERO2	TS	MPAC		# ALWAYS SKIPPING UNLESS ARGZERO.
+		TS	MPAC +1
+		TC	L		# RETURN VIA L.
+
+ARGZERO		TS	MPAC +2		# SET ALL THREE MPAC REGISTERS TO ZERO.
+		TCF	ARGZERO2
+
+# SHORTMP MULTIPLIES THE TP CONTENTS OF MPAC BY THE SINGLE PRECISION NUMBER ARRIVING IN A.
+
+SHORTMP		TS	MPTEMP
+		EXTEND
+		MP	MPAC +2
+		TS	MPAC +2
+SHORTMP2	CAF	ZERO		# SO SUBSEQUENT DAS WILL WORK.
+		XCH	MPAC +1
+		TCF	DMPSUB2
+
+# Page 1142
+# DMPNSUB MULTIPLIES THE DP FRACTION ARRIVING IN MPAC BY THE SP
+# INTEGER ARRIVING IN A.  THE DP PRODUCT DEPARTS BOTH IN MPAC AND IN
+# A AND L.  NOTE THAT DMPNSUB NORMALLY INCREASES THE MAGNITUDE OF THE
+# CONTENTS OF MPAC.  THE CUSTOMER MUST INSURE THAT B(A) X B(MPAC,MPAC+1)
+# AND B(A) X B(MPAC) ARE LESS THAN 1 IN MAGNITUDE, WHERE B, AS IS OBVIOUS,
+# INDICATES THE ARRIVING CONTENTS.
+
+DMPNSUB		TS	DMPNTEMP
+		EXTEND
+		MP	MPAC +1
+		DXCH	MPAC		# LOW PRODUCT TO MPAC, HIGH FACTOR TO A
+		EXTEND
+		MP	DMPNTEMP
+		CA	L
+		ADS	MPAC		# COMPLETING THE PRODUCT IN MPAC
+		EXTEND
+		DCA	MPAC		# BRINGING THE PRODUCT INTO A AND L
+		TC	Q
+
+# Page 1143
+# MISCELLANEOUS VECTOR OPERATIONS.  INCLUDED HERE ARE THE FOLLOWING.
+#	1.	DOT	DP VECTOR DOT PRODUCT.
+#	2.	VXV	DP VECTOR CROSS PRODUCT.
+#	3.	VXSC	DP VECTOR TIMES SCALAR.
+#	4.	V/SC	DP VECTOR DIVIDED BY SCALAR.
+#	5.	VPROJ	DP VECTOR PROJECTION.  ( (MPAC.X)MPAC ).
+#	6.	VXM	DP VECTOR POST-MULTIPLIED BY MATRIX.
+#	7.	MXV	DP VECTOR PRE-MULTIPLIED BY MATRIX.
+
+DOT		TC	PREDOT		# DO THE DOT PRODUCT AND EXIT, CHANGING
+DMODE		CAF	ZERO		# THE MODE TO DP SCALAR.
+		TCF	NEWMODE
+
+MXV		CAF	TWO		# SET UP MATINC AND DOTINC FOR ROW
+		TS	MATINC		# VECTORS.
+		TCF	VXM/MXV		# GO TO COMMON PORTION.
+
+VXM		CS	TEN		# SET MATINC AND DOTINC TO REFER TO MATRIX
+		TS	MATINC		# AS THREE COLUMN VECTORS.
+		CAF	SIX
+
+# Page 1144
+# COMMON PORTION OF MXV AND VXM.
+
+VXM/MXV		TS	DOTINC
+
+# ITRACE (2) REFERS TO "VXM/MXV".
+
+		TC	MPACVBUF	# SAVE VECTOR IN MPAC FOR FURTHER USE.
+
+		TC	DOTSUB		# GO DOT TO GET X COMPONENT OF ANSWER.
+		EXTEND
+		DCA	VBUF		# MOVE MPAC VECTOR BACK INTO MPAC, SAVING
+		DXCH	MPAC		# NEW X COMPONENT IN BUF2.
+		DXCH	BUF2
+		EXTEND
+		DCA	VBUF +2
+		DXCH	MPAC +3
+		EXTEND
+		DCA	VBUF +4
+		DXCH	MPAC +5
+		CA	MATINC		# INITIALIZE ADDRWD FOR NEXT DOT PRODUCT.
+		ADS	ADDRWD		# FORMS HAS ADDRESS OF NEXT COLUMN(ROW).
+
+		TC	DOTSUB
+		DXCH	VBUF		# MORE GIVEN VECTOR BACK TO MPAC, SAVING Y
+		DXCH	MPAC		# COMPONENT OF ANSWER IN VBUF +2.
+		DXCH	VBUF +2
+		DXCH	MPAC +3
+		DXCH	VBUF +4
+		DXCH	MPAC +5
+		CA	MATINC		# FORM ADDRESS OF LAST COLUMN OR ROW.
+		ADS	ADDRWD
+
+		TC	DOTSUB
+		DXCH	BUF2		# ANSWER NOW COMPLETE. PUT COMPONENTS INTO
+		DXCH	MPAC		# PROPER MPAC REGISTERS.
+		DXCH	MPAC +5
+		DXCH	VBUF +2
+		DXCH	MPAC +3
+		TCF	DANZIG		# EXIT.
+
+# Page 1145
+# VXSC -- VECTOR TIMES SCALAR.
+
+VXSC		CCS	MODE		# TEST PRESENT MODE.
+		TCF	DVXSC		# SEPARATE ROUTINE WHEN SCALAR IS IN MPAC.
+		TCF	DVXSC
+
+VVXSC		TC	DMPSUB		# COMPUTE X COMPONENT
+		TC	VROUND		# AND ROUND IT.
+		DXCH	MPAC +3		# PUT Y COMPONENT INTO MPAC SAVING MPAC IN
+		DXCH	MPAC		# MPAC +3.
+		DXCH	MPAC +3
+
+		TC	DMPSUB		# DO SAME FOR Y AND Z COMPONENTS.
+		TC	VROUND
+		DXCH	MPAC +5
+		DXCH	MPAC
+		DXCH	MPAC +5
+
+		TC	DMPSUB
+		TC	VROUND
+VROTATEX	DXCH	MPAC		# EXIT USED TO RESTORE MPAC AFTER THIS
+		DXCH	MPAC +5		# TYPE OF ROTATION.  CALLED BY VECTOR SHIFT
+		DXCH	MPAC +3		# RIGHT, V/SC, ETC.
+		DXCH	MPAC
+		TCF	DANZIG
+
+# Page 1146
+# DP VECTOR PROJECTION ROUTINE.
+
+VPROJ		TC	PREDOT		# (MPAC.X)MPAC IS COMPUTED AND LEFT IN
+		CS	FOUR		# MPAC.  DO DOT AND FALL INTO DVXSC.
+		ADS	ADDRWD
+
+# VXSC WHEN SCALAR ARRIVES IN MPAC AND VECTOR IS AT X.
+
+DVXSC		EXTEND			# SAVE SCALAR IN MPAC +3 AND GET X
+		DCA	MPAC		# COMPONENT OF ANWER.
+		DXCH	MPAC +3
+		TC	DMPSUB
+		TC	VROUND
+
+		CAF	TWO		# ADVANCE ADDRWD TO Y COMPONENT OF X.
+		ADS	ADDRWD
+		EXTEND
+		DCA	MPAC +3		# PUT SCALAR BACK INTO MPAC AND SAVE
+		DXCH	MPAC		# X RESULT IN MPAC +5.
+		DXCH	MPAC +5
+		TC	DMPSUB
+		TC	VROUND
+
+		CAF	TWO
+		ADS	ADDRWD		# TO Z COMPONENT.
+		DXCH	MPAC +3		# BRING SCALAR BACK, PUTTING Y RESULT IN
+		DXCH	MPAC		# THE PROPER PLACE.
+		DXCH	MPAC +3
+		TC	DMPSUB
+		TC	VROUND
+
+		DXCH	MPAC		# PUT Z COMPONENT IN PROPER PLACE, ALSO
+		DXCH	MPAC +5		# POSITIONING X.
+		DXCH	MPAC
+
+		TCF	VMODE		# MODE HAS CHANGED TO VECTOR.
+
+# Page 1147
+# VECTOR CROSS PRODUCT ROUTINE CALCULATES (X M -X M ,X M -X M ,X M -X M ) WHERE M IS THE VECTOR IN
+#                                           3 2  2 3  1 3  3 1  2 1  1 2
+# MPAC AND X THE VECTOR AT THE GIVEN ADDRESS.
+
+VXV		EXTEND
+		DCA	MPAC +5		# FORM UP M3X1, LEAVING M1 IN VBUF.
+		DXCH	MPAC
+		DXCH	VBUF
+		TC	DMPSUB		# BY X1.
+
+		EXTEND
+		DCS	MPAC +3		# CALCULATE -X1M2, SAVING X1M3 IN VBUF +2.
+		DXCH	MPAC
+		DXCH	VBUF +2
+		TC	DMPSUB
+
+		CAF	TWO		# ADVANCE ADDRWD TO X2.
+		ADS	ADDRWD
+		EXTEND
+		DCS	MPAC +5		# PREPARE TO GET -X2M3, SAVING -X1M2 IN
+		DXCH	MPAC		# MPAC +5.
+		DXCH	MPAC +5
+		TC	DMPSUB
+
+		EXTEND
+		DCA	VBUF		# GET X2M1, SAVING -X2M3 IN VBUF +4.
+		DXCH	MPAC
+		DXCH	VBUF +4
+		TC	DMPSUB
+
+		CAF	TWO		# ADVANCE ADDRWD TO X3.
+		ADS	ADDRWD
+		EXTEND
+		DCS	VBUF		# GET -X3M1, ADDING X2M1 TO MPAC +5 TO
+		DXCH	MPAC		# COMPLETE THE Z COMPONENT OF THE ANSWER.
+		DAS	MPAC +5
+
+		EXTEND
+		BZF	 +2
+		TC	OVERFLWZ
+
+		TC	DMPSUB
+		DXCH	VBUF +2		# MOVE X1M3 TO MPAC +3 SETTING UP FOR X3M2
+		DXCH	MPAC +3		# AND ADD -X3M1 TO MPAC +3 TO COMPLETE THE
+		DXCH	MPAC		# Y COMPONENT OF THE RESULT.
+		DAS	MPAC +3
+
+		EXTEND
+		BZF	+2
+# Page 1148
+		TC OVERFLWY
+
+		TC	DMPSUB
+		DXCH	VBUF +4		# GO ADD -X2M3 TO X3M2 TO COMPLETE THE X
+		TCF	ENDVXV		# COMPONENT (TAIL END OF DAD).
+
+# THE MPACVBUF SUBROUTINE SAVES THE VECTOR IN MPAC IN VBUF WITHOUT CLOBBERING MPAC.
+
+MPACVBUF	EXTEND			# CALLED BY MXV, VXM, AND UNIT.
+		DCA	MPAC
+		DXCH	VBUF
+		EXTEND
+		DCA	MPAC +3
+		DXCH	VBUF +2
+		EXTEND
+		DCA	MPAC +5
+		DXCH	VBUF +4
+		TC	Q		# RETURN TO CALLER.
+
+# DOUBLE PRECISION SIGN AGREE ROUTINE.  ARRIVE WITH INPUT IN A+L.  OUTPUT IS IN A + L.
+
+ALSIGNAG	CCS	A		# TEST UPPER PART.
+		TCF	UPPOS		# IT IS POSITIVE
+		TC	Q		# ZERO
+		TCF	UPNEG		# NEGATIVE
+		TC	Q		# ZERO
+
+UPPOS		XCH	L		# SAVE DECREMENTED UPPER PART.
+		AD	HALF
+		AD	HALF
+		TS	A		# SKIPS ON OVERFLOW
+		TCF	+2
+		INCR	L		# RESTORE UPPER TO ORIGINAL VALUE
+		XCH	L		# SWAP A + L BANCK.
+		TC	Q
+
+UPNEG		XCH	L		# SAVE COMPLEMENTED + DECREMENTED UPPER PT
+		AD	NEGMAX
+		AD	NEGONE
+		TS	A
+		TCF	+2		# DON'T INCREMENT IF NO OVERFLOW.
+		INCR	L
+		XCH	L
+		COM			# MAKE NEGATIVE AGAIN.
+		TC	Q
+
+# Page 1149
+# INTERPRETIVE INSTRUCTIONS WHOSE EXECUTION CONSISTS OF PRINCIPALLY CALLING SUBROUTINES.
+
+DMP1		TC	DMPSUB		# DMP INSTRUCTIONS
+		TCF	DANZIG
+
+DMPR		TC	DMPSUB
+		TC	ROUNDSUB +1	# (C(A) = +0).
+		TCF	DANZIG
+
+DDV		EXTEND
+		INDEX	ADDRWD		# MOVE DIVIDENT INTO BUF.
+		DCA	0
+		TCF	BDDV +4
+
+BDDV		EXTEND			# MOVE DIVISOR INTO MPAC SAVING MPAC, THE
+		INDEX	ADDRWD		# DIVIDEND, IN BUF.
+		DCA	0
+		DXCH	MPAC
+	+4	DXCH	BUF
+ 		CAF	ZERO		# DIVIDE ROUTINES IN BANK 0.
+		TS	FBANK
+		TCF	DDV/BDDV
+
+SETPD		CA	ADDRWD		# MUST SET TO WORK AREA, OR EBANK TROUBLE.
+		TS	PUSHLOC
+		TCF	NOIBNKSW	# NO FBANK SWITCH REQUIRED.
+
+TSLC		CAF	ZERO		# SHIFTING ROUTINES LOCATED IN BANK 00.
+		TS	FBANK
+		TCF	TSLC2
+
+GSHIFT		CAF	LOW7		# USED AS MASK AT GENSHIFT. THIS PROCESSES
+		TS	FBANK		# ANY SHIFT INSTRUCTION (EXCEPT TSLC) WITH
+		TCF	GENSHIFT	# AN ADDRESS (ROUTINES IN BANK 0).
+
+# Page 1150
+# THE FOLLOWING IS THE PROLOGUE TO V/SC.  IF THE PRESENT MODE IS VECTOR, IT SAVES THE SCALAR AT X IN BUF
+# AND CALLS THE V/SC ROUTINE IN BANK 0.  IF THE PRESENT MODE IS SCALAR, IT MOVES THE VECTOR AT X INTO MPAC, SAVING
+# THE SCALAR IN MPAC IN BUF BEFORE CALLING THE V/SC ROUTINE IN BANK 0.
+
+V/SC		CCS	MODE
+		TCF	DV/SC		# MOVE VECTOR INTO MPAC.
+		TCF	DV/SC
+
+VV/SC		EXTEND
+		INDEX	ADDRWD
+		DCA	0
+V/SC1		DXCH	BUF		# IN BOTH CASES, VECTOR IS NOW IN MPAC AND
+		CAF	ZERO		# SCALAR IN BUF.
+		TS	FBANK
+		TCF	V/SC2
+
+DV/SC		EXTEND
+		INDEX	ADDRWD
+		DCA	2
+		DXCH	MPAC +3
+		EXTEND
+		INDEX	ADDRWD
+		DCA	4
+		DXCH	MPAC +5
+
+		CS	ONE		# CHANGE MODE TO VECTOR.
+		TS	MODE
+
+		EXTEND
+		INDEX	ADDRWD
+		DCA	0
+		DXCH	MPAC
+		TCF	V/SC1
+
+# Page 1151
+# SIGN AND COMPLEMENT INSTRUCTIONS.
+
+SIGN		INDEX 	ADDRWD		# CALL COMP INSTRUCTION IF WORD AT X IS
+		CCS	0		# NEGATIVE NON-ZERO.
+		TCF	DANZIG
+		TCF	+2
+		TCF	COMP		# DO THE COMPLEMENT.
+
+		INDEX	ADDRWD
+CCSL		CCS	1
+		TCF	DANZIG
+		TCF	DANZIG
+		TCF	COMP
+		TCF	DANZIG
+COMP		EXTEND			# COMPLEMENT DP MPAC IN EVERY CASE.
+		DCS	MPAC
+		DXCH	MPAC
+
+		CCS	MODE		# EITHER COMPLEMENT MPAC +3 OR THE REST OF
+		TCF	DCOMP		# THE VECTOR ACCUMULATOR.
+		TCF	DCOMP
+
+		EXTEND			# VECTOR COMPLEMENT.
+		DCS	MPAC +3
+		DXCH	MPAC +3
+		EXTEND
+		DCS	MPAC +5
+		DXCH	MPAC +5
+		TCF	DANZIG
+
+DCOMP		CS	MPAC +2
+		TS	MPAC +2
+		TCF	DANZIG
+
+# Page 1152
+# THE FOLLOWING SHORT SHIFT CODES REQUIRE NO ADDRESS WORD:
+#	1.	SR1 TO SR4	SCALAR SHIFT RIGHT.
+#	2.	SR1R TO SR4R	SCALAR SHIFT RIGHT AND ROUND.
+#	3.	SL1 TO SL4	SCALAR SHIFT LEFT.
+#	4.	SL1R TO SL4R	SCALAR SHIFT LEFT AND ROUND.
+#	5.	VSR1 TO VSR8	VECTOR SHIFT RIGHT (ALWAYS ROUNDS).
+#	6.	VSL1 TO VSL8	VECTOR SHIFT LEFT (NEVER ROUNDS).
+# THE FOLLOWING CODES REQUIRE AN ADDRESS WHICH MAY BE INDEXED:*
+#	1.	SR		SCALAR SHIFT RIGHT.
+#	2.	SRR		SCALAR SHIFT RIGHT AND ROUND.
+#	3.	SL		SCALAR SHIFT LEFT.
+#	4.	SLR		SCALAR SHIFT LEFT AND ROUND.
+#	5.	VSR		VECTOR SHIFT RIGHT.
+#	6.	VSL		VECTOR SHIFT LEFT.
+# * IF THE ADDRESS IS INDEXED, AND THE INDEX MODIFICATION RESULTS IN A NEGATIVE SHIFT COUNT, A SHIFT OF THE
+# ABSOLUTE VALUE OF THE COUNT IS DONE IN THE OPPOSITE DIRECTION.
+
+		BANK	00
+
+		COUNT	00/INTER
+		
+SHORTT		CAF	SIX		# SCALAR SHORT SHIFTS COME HERE.  THE SHIFT
+		MASK	CYR		# COUNT-1 IS NOW IN BITS 2-3 OF CYR.  THE
+		TS	SR		# ROUNDING BIT IS IN BIT1 AT THIS POINT.
+
+		CCS	CYR		# SEE IF RIGHT OR LEFT SHIFT DESIRED.
+		TCF	TSSL		# SHIFT LEFT.
+
+SRDDV		DEC	20		# MPTEMP SETTING FOR SR BEFORE DDV.
+
+TSSR		INDEX	SR		# GET SHIFTING BIT.
+		CAF	BIT14
+		TS	MPTEMP
+
+		CCS	CYR		# SEE IF A ROUND IS DESIRED.
+RIGHTR		TC	MPACSRND	# YES -- SHIFT RIGHT AND ROUND.
+		TCF	NEWMODE		# SET MODE TO DP (C(A) = 0).
+MPACSHR		CA	MPTEMP		# DO A TRIPLE PRECISION SHIFT RIGHT.
+		EXTEND
+		MP	MPAC +2
+	+3	TS	MPAC +2		# (EXIT FROM SQRT AND ABVAL).
+		CA	MPTEMP
+		EXTEND
+# Page 1153
+		MP	MPAC		# SHIFT MAJOR PART INTO A,L AND PLACE IN
+		DXCH	MPAC		# MPAC,+1.
+		CA	MPTEMP
+		EXTEND
+		MP	L		# ORIGINAL C(MPAC +1).
+		DAS	MPAC +1		# GUARANTEED NO OVERFLOW.
+		TCF	DANZIG
+
+# MPAC SHIFT RIGHT AND ROUND SUBROUTINES
+
+MPACSRND	CA	MPAC +2		# WE HAVE TO DO ALL THREE MULTIPLIES SINCE
+		EXTEND			# MPAC +1 AND MPAC +2 MIGHT HAVE SIGN
+		MP	MPTEMP		# DISAGREEMENT WITH A SHIFT RIGHT OF L.
+		XCH	MPAC +1
+		EXTEND
+		MP	MPTEMP
+		XCH	MPAC +1		# TRIAL MINOR PART.
+		AD	L
+
+VSHR2		DOUBLE			# (FINISH VECTOR COMPONENT SHIFT RIGHT
+		TS	MPAC +2		# AND ROUND.)
+		TCF	+2
+		ADS	MPAC +1		# GUARANTEED NO OVERFLOW.
+
+		CAF	ZERO
+		TS	MPAC +2
+		XCH	MPAC		# SETTING TO ZERO SO FOLLOWING DAS WORKS.
+		EXTEND
+		MP	MPTEMP
+		DAS	MPAC		# AGAIN NO OVERFLOW.
+		TC	Q
+
+VSHRRND		CA	MPTEMP		# ENTRY TO SHIFT RIGHT AND ROUND MPAC WHEN
+		EXTEND			# MPAC CONTAINS A VECTOR COMPONENT.
+		MP	MPAC +1
+		TS	MPAC +1
+		XCH	L
+		TCF	VSHR2		# GO ADD ONE IF NECESSARY AND FINISH.
+
+# Page 1154
+# ROUTINE FOR SHORT SCALAR SHIFT LEFT (AND MAYBE ROUND).
+
+TSSL		CA	SR		# GET SHIFT COUNT FOR SR.
+	+1	TS	MPTEMP
+
+	+2	EXTEND			# ENTRY HERE FROM SL FOR SCALARS.
+ 		DCA	MPAC +1		# SHIFTING LEFT ONE PLACE AT A TIME IS
+		DAS	MPAC +1		# FASTER THAN DOING THE WHOLE SHIFT WITH
+		AD	MPAC		# MULTIPLIES ASSUMING THAT FREQUENCY OF
+		AD	MPAC		# SHIFT COUNTS GOES DOWN RAPIDLY AS A
+		TS	MPAC		# FUNCTION OF THEIR MAGNITUDE.
+		TCF 	+2
+		TS	OVFIND		# OVERFLOW.  (LEAVES OVERFLOW-CORRECTED
+					# RESULT ANYWAY).
+		CCS	MPTEMP		# LOOP ON DECREMENTED SHIFT COUNT.
+		TCF	TSSL +1
+
+		CCS	CYR		# SEE IF ROUND WANTED.
+ROUND		TC	ROUNDSUB	# YES -- ROUND AND EXIT.
+		TCF	DANZIG		# SL LEAVES A ZERO IN CYR FOR NO ROUND.
+		TCF	DANZIG		# NO -- EXIT IMMEDIATELY
+
+# Page 1155
+# VECTOR SHIFTING ROUTINES.
+
+SHORTV		CAF	LOW3		# SAVE 3 BIT SHIFT COUNT -- 1 WITHOUT
+		MASK	CYR		# EDITING CYR.
+		TS	MPTEMP
+		CCS	CYR		# SEE IF LEFT OR RIGHT SHIFT.
+		TCF	VSSL		# VECTOR SHIFT LEFT.
+OCT176		OCT	176		# USED IN PROCESSED SHIFTS WITH - COUNT.
+
+VSSR		INDEX	MPTEMP		# (ENTRY FROM SR).  PICK UP SHIFTING BIT.
+		CAF	BIT14		# MPTEMP CONTAINS THE SHIFT COUNT - 1.
+		TS	MPTEMP
+		TC	VSHRRND		# SHIFT X COMPONENT.
+
+		DXCH	MPAC		# SWAP X AND Y COMPONENTS.
+		DXCH	MPAC +3
+		DXCH	MPAC
+		TC	VSHRRND		# SHIFT Y COMPONENT.
+
+		DXCH	MPAC		# SWAP Y AND Z COMPONENTS.
+		DXCH	MPAC +5
+		DXCH	MPAC
+		TC	VSHRRND		# SHIFT Z COMPONENT.
+
+		TCF	VROTATEX	# RESTORE COMPONENTS TO PROPER PLACES.
+
+# Page 1156
+# VECTOR SHIFT LEFT -- DONE ONE PLACE AT A TIME.
+
+	-1	TS	MPTEMP		# SHIFTING LOOP.
+
+VSSL		EXTEND
+		DCA	MPAC
+		DAS	MPAC
+		EXTEND
+		BZF	+2
+		TC	OVERFLOW
+
+		EXTEND
+		DCA	MPAC +3
+		DAS	MPAC +3
+		EXTEND
+		BZF	+2
+		TC	OVERFLWY
+
+		EXTEND
+		DCA	MPAC +5
+		DAS	MPAC +5
+		EXTEND
+		BZF	+2
+		TC	OVERFLWZ
+
+		CCS	MPTEMP		# LOOP ON DECREMENTED SHIFT COUNTER.
+		TCF	VSSL -1
+		TCF	DANZIG		# EXIT.
+
+# Page 1157
+# TSLC -- TRIPLE SHIFT LEFT AND COUNT.  SHIFTS MPAC LEFT UNTIL GREATER THAN .5 IN MAGNITUDE, LEAVING
+# THE COMPLEMENT OF THE NUMBER OF SHIFTS REQUIRED IN X.
+
+TSLC2		TS	MPTEMP		# START BY ZEROING SHIFT COUNT (IN A NOW).
+		TC	BRANCH		# EXIT WITH NO SHIFTING IF ARGUMENT ZERO.
+		TCF	+2
+		TCF	ENDTSLC		# STORES ZERO SHIFT COUNT IN THIS CASE.
+
+		TC	TPAGREE		# MAY CAUSE UPSHIFT OF ONE EXTRA PLACE.
+
+		CA	MPAC		# BEGIN NORMALIZATION LOOP.
+		TCF	TSLCTEST
+
+TSLCLOOP	INCR	MPTEMP		# INCREMENT SHIFT COUNTER.
+		EXTEND
+		DCA	MPAC +1
+		DAS	MPAC +1
+		AD	MPAC
+		ADS	MPAC
+TSLCTEST	DOUBLE			# SEE IF (ANOTHER) SHIFT IS REQUIRED
+		OVSK
+		TCF	TSLCLOOP	# YES -- INCREMENT COUNT AND SHIFT AGAIN.
+
+ENDTSLC		CS	MPTEMP
+		TCF	STORE1		# STORE SHIFT COUNT AND RETURN TO DANZIG.
+
+# Page 1158
+# THE FOLLOWING ROUTINE PROCESSES THE GENERAL SHIFT INSTRUCTIONS SR, SRR, SL, AND SLR.
+# THE GIVEN ADDRESS IS DECODED AS FOLLOWS:
+#	BITS 1-7	SHIFT COUNT (SUBADDRESS) LESS THAN 125 DECIMAL.
+#	BIT 8		PSEUDO SIGN BIT (DETECTS CHANGE IN SIGN IN INDEXED SHIFTS).
+#	BIT 9		0 FOR LEFT SHIFT, AND 1 FOR RIGHT SHIFT.
+#	BIT 10		1 FOR TERMINAL ROUND ON SCALAR SHIFTS, 0 OTHERWISE
+#	BITS 11-13	0.
+#	BIT 14		1.
+#	BIT 15		0.
+# THE ABOVE ENCODING IS DONE BY THE YUL SYSTEM.
+
+GENSHIFT	MASK	ADDRWD		# GET SHIFT COUNT, TESTING FOR ZERO.
+		CCS	A		# (ARRIVES WITH C(A) = LOW7).
+		TCF	GENSHFT2	# IF NON-ZERO, PROCEED WITH DECREMENTED CT
+
+		CAF	BIT10		# ZERO SHIFT COUNT.  NO SHIFTS NEEDED BUT
+		MASK	ADDRWD		# WE MIGHT HAVE TO ROUND MPAC ON SLR AND
+		CCS	A		# SRR (SCALAR ONLY).
+		TC	ROUNDSUB
+		TCF	DANZIG
+
+GENSHFT2	TS	MPTEMP		# DECREMENTED SHIFT COUNT TO MPTEMP.
+		CAF	BIT8		# TEST MEANING OF LOW SEVEN BIT COUNT IN
+		EXTEND			# MPTEMP NOW.
+		MP	ADDRWD
+		MASK	LOW2		# JUMPS ON SHIFT DIRECTION (BIT8) AND
+		INDEX	A
+		TCF	+1		# ORIGINAL SHIFT DIRECTION (BIT 9)
+		TCF	RIGHT-		# NEGATIVE SHIFT COUNT FOR SL OR SLR.
+		TCF	LEFT		# SL OR SLR.
+		TCF	LEFT-		# NEGATIVE SHIFT COUNT WITH SR OR SRR.
+
+# Page 1159
+# GENERAL SHIFT RIGHT
+
+RIGHT		CCS	MODE		# SET IF VECTOR OR SCALAR.
+		TCF	GENSCR
+		TCF	GENSCR
+
+		CA	MPTEMP		# SEE IF SHIFT COUNT LESS THAN 14D.
+VRIGHT2		AD	NEG12
+		EXTEND
+		BZMF	VSSR		# IF SO, BRANCH AND SHIFT IMMEDIATELY.
+
+		AD	NEGONE		# IF NOT, REDUCE MPTEMP BY A TOTAL OF 14.
+		TS	MPTEMP		# AND DO A SHIFT RIGHT AND ROUND BY 14.
+		CAF	ZERO		# THE ROUND AT THIS STAGE MAY INTRODUCE A
+		TS	L		# ONE BIT ERROR IN A SHIFT RIGHT 15D.
+		XCH	MPAC
+		XCH	MPAC +1
+		TC	SETROUND	# X COMPONENT NOW SHIFTED, SO MAKE UP THE
+		DAS	MPAC		# ROUNDING QUANTITY (0 IN A AND 0 OR +-1
+					# IN L).
+		XCH	MPAC +3		# REPEAT THE ABOVE PROCESS FOR Y AND Z/
+		XCH	MPAC +4
+		TC	SETROUND
+		DAS	MPAC +3		# NO OVERFLOW ON THESE ADDS.
+
+		XCH	MPAC +5
+		XCH	MPAC +6
+		TC	SETROUND
+		DAS	MPAC +5
+
+		CCS	MPTEMP		# SEE IF DONE, DOING FINAL DECREMENT.
+		TS	MPTEMP
+		TCF	VRIGHT2
+BIASLO		DEC	.2974 B-1	# SQRT CONSTANT
+
+		TCF	DANZIG
+
+SETROUND	DOUBLE			# MAKES UP ROUNDING QUANTITY FROM ARRIVING
+		TS	MPAC +2		# C(A).  L IS ZERO INITIALLY.
+		CAF	ZERO
+		XCH	L
+		TC	Q		# RETURN AND DO THE DAS, RESETTING L TO 0.
+
+# Page 1160
+# PROCESS SR AND SRR FOR SCALARS.
+
+GENSCR		CA	MPTEMP		# SEE IF THE ORIGINAL SHIFT COUNT WAS LESS
+	+1	AD	NEG12		# THAN 14D.
+		EXTEND
+		BZMF	DOSSHFT		# DO THE SHIFT IMMEDIATELY IF SO.
+
+	+4	AD	NEGONE		# IF NOT, DECREMENT SHIFT COUNT BY 14D AND
+		TS	MPTEMP		# SHIFT MPAC RIGHT 14 PLACES.
+		CAF	ZERO
+		XCH	MPAC
+		XCH	MPAC +1
+		TS	MPAC +2
+		CCS	MPTEMP		# SEE IF FINISHED, DO FINAL DECREMENT.
+		TS	MPTEMP
+		TC	GENSCR +1
+SLOPEHI		DEC	.5884		# SQRT CONSTANT.
+		CAF	BIT10		# FINISHED WITH SHIFT.  SEE IF ROUND
+		MASK	ADDRWD		# WANTED.
+		CCS	A
+		TC	ROUNDSUB
+		TCF	DANZIG		# DO SO AND/OR EXIT.
+
+DOSSHFT		INDEX	MPTEMP		# PICK UP SHIFTING BIT.
+		CAF	BIT14
+		TS	MPTEMP
+		CAF	BIT10		# SEE IF TERMINAL ROUND DESIRED.
+		MASK	ADDRWD
+		CCS	A
+		TCF	RIGHTR		# YES.
+		TCF	MPACSHR		# JUST SHIFT RIGHT.
+
+# Page 1161
+# PROCESS THE RIGHT- (SL(R) WITH A NEGATIVE COUNT), LEFT-, AND LEFT OPTIONS.
+
+RIGHT-		CS	MPTEMP		# GET ABSOLUTE VALUE - 1 OF SHIFT COUNT
+		AD	OCT176		# UNDERSTANDING THAT BIT8 (PSEUDO-SIGN)
+		TS	MPTEMP		# WAS 1 INITIALLY.
+		TCF	RIGHT		# DO NORMAL SHIFT RIGHT.
+
+LEFT-		CS	OCT176		# SAME PROLOGUE TO LEFT FOR INDEXED RIGHT
+		AD	MPTEMP		# SHIFT WHOSE NET SHIFT COUNT IS NEGATIVE
+		COM
+		TS	MPTEMP
+
+LEFT		CCS	MODE		# SINCE LEFT SHIFTING IS DONE ONE PLACE AT
+		TCF	GENSCL		# A TIME, NO COMPARISON WITH 14 NEED BE
+		TCF	GENSCL		# DONE.  FOR SCALARS, SEE IF TERMINAL ROUND
+		TCF	VSSL		# DESIRED.  FOR VECTORS, SHIFT IMMEDIATELY.
+
+GENSCL		CS	ADDRWD		# PUT ROUNDING BIT (BIT 10 OF ADDRWD) INTO
+		EXTEND			# BIT 15 OF CYR WHERE THE ROUNDING BIT OF
+		MP	BIT6		# A SHORT SHIFT LEFT WOULD BE
+		TS	CYR
+		TCF	TSSL +2		# DO THE SHIFT.
+
+# Page 1162
+# SCALAR DIVISION INSTRUCTIONS, DDV AND BDDV, ARE EXECUTED HERE.  AT THIS POINT, THE DIVIDEND IS IN MPAC
+# AND THE DIVISOR IS IN BUF.
+
+DDV/BDDV	CS	ONE		# INITIALIZATION
+		TS	DVSIGN		# +-1 FOR POSITIVE QUOTIENT -- -0 FOR NEG.
+		TS	DVNORMCT	# DIVIDENT NORMALIZATION COUNT.
+		TS	MAXDVSW		# NEAR-ONE DIVIDE FLAG.
+
+		CCS	BUF		# FORCE BUF POSITIVE WITH THE MAJOR PART
+		TCF	BUFPOS		# NON-ZERO.
+		TCF	+2
+		TCF	BUFNEG
+
+BUFZERO		TS	MPAC +2		# ZERO THIS.
+		TC	TPAGREE		# FORCE SIGN AGREEMENT BEFORE OVERFLOW
+
+		CCS	MPAC		# TEST TO SEE IF MPAC NON-ZERO.  (TOO BIG)
+		TCF	OVF+		# MAJOR PART OF DIVIDEND IS POSITIVE NON-0
+		TCF	+2
+		TCF	OVF+ -1		# MAJOR PART OF DIVIDEND IS NEG. NON-ZERO
+
+		XCH	BUF +1		# SHIFT DIVIDENT AND DIVISOR LEFT 14
+		XCH	BUF
+		XCH	MPAC +1
+		XCH	MPAC
+		CCS	BUF		# TRY AGAIN ON FORMER MINOR PART.
+		TCF	BUF+
+		TCF	+2		# OVERFLOW ON ZERO DIVISOR.
+		TCF	BUF-
+
+		CS	MPAC		# SIGN OF MPAC DETERMINES SIGN OF RESULT.
+SGNDVOVF	EXTEND
+		BZMF	+2
+		INCR	DVSIGN		# NEGMAX IN MPAC PERHAPS.
+DVOVF		CAF	POSMAX		# ON DIVISION OVERFLOW OF ANY SORT, SET
+		TS	MPAC		# SET DP MPAC TO +-POSMAX.
+		TC	FINALDV +3
+		CAF	ONE		# SET OVEFLOW INDICATOR AND EXIT.
+		TS	OVFIND
+		TC	DANZIG
+
+	-1	INCR	DVSIGN
+OVF+		CS	BUF +1		# LOAD LOWER ORDER PART OF DIVISOR.
+		TCF	SGNDVOVF	# GET SIGN OF RESULT.
+
+BUF-		EXTEND			# IF BUF IS NEGATIVE, COMPLEMENT IT AND
+		DCS	BUF		# MAINTAIN DVSIGN FOR FINAL QUOTIENT SIGN.
+		DXCH	BUF
+		INCR	DVSIGN		# NOW -0.
+
+# Page 1163
+BUF+		CCS	MPAC		# FORCE MPAC POSITIVE, CHECKING FOR ZERO
+		TCF	MPAC+		# DIVIDEND IN THE PROCESS.
+		TCF	+2
+		TCF	MPAC-
+		CCS	MPAC +1
+		TCF	MPAC+
+		TCF	DANZIG		# EXIT IMMEDIATELY ON ZERO DIVIDEND.
+		TCF	MPAC-
+		TCF	DANZIG
+
+MPAC-		EXTEND			# FORCE MPAC POSITIVE AS BUF IN BUF-.
+		DCS	MPAC
+		DXCH	MPAC
+		INCR	DVSIGN		# NOW +1 OR -0.
+
+# Page 1164
+MPAC+		CS	MPAC		# CHECK FOR DIVISION OVERFLOW.  IF THE
+		AD	NEGONE		# MAJOR PART OF THE DIVIDEND IS LESS THAN
+		AD	BUF		# THE MAJOR PART OF THE DIVISOR BY AT
+		CCS	A		# LEAST TWO, WE CAN PROCEED IMMEDIATELY
+		TCF	DVNORM		# WITHOUT NORMALIZATION PRODUCING A DVMAX.
+-1/2+2		OCT	60001		# USED IN SQRTSUB.
+
+		TCF	+1		# IF THE ABOVE DOES NOT HOLD, FORCE SIGN
+		CAF	HALF		# AGREEMENT IN NUMERATOR AND DENOMINATOR
+		DOUBLE			# TO FACILITATE OVERFLOW AND NEAR-ONE
+		AD	MPAC +1		# CHECKING.
+		TS	MPAC +1
+		CAF	ZERO
+		AD	POSMAX
+		ADS	MPAC
+
+		CAF	HALF		# SAME FOR BUF.
+		DOUBLE
+		AD	BUF +1
+		TS	BUF +1
+		CAF	ZERO
+		AD	POSMAX
+		ADS	BUF
+
+		CS	MPAC		# CHECK MAGNITUDE OF SIGN-CORRECTED
+		AD	BUF		# OPERANDS.
+		CCS	A
+		TCF	DVNORM		# DIVIDE OK -- WILL NOT BECOME MAXOV CASE.
+LBUF2		ADRES 	BUF2
+		TCF	DVOVF		# DIVISOR NOT LESS THAN DIVIDEND -- OVF.
+
+		TS	MAXDVSW		# IF THE MAJOR PARTS OF THE DIVIDEND AND
+		CS	MPAC +1		# DIVISOR ARE EQUAL, A SPECIAL APPROXIMA-
+		AD	BUF +1		# TION IS USED (PROVIDED THE DIVISION IS
+		EXTEND			# POSSIBLE, OF COURSE).
+		BZMF	DVOVF
+		TCF	DVNORM		# IF NO OVERFLOW.
+
+# Page 1165
+BUFNORM		EXTEND			# ADD -1 TO AUGMENT SHIFT COUNT AND SHIFT
+		AUG	DVNORMCT	# LEFT ONE PLACE.
+		EXTEND
+		DCA	BUF
+		DAS	BUF
+
+DVNORM		CA	BUF		# SEE IF DIVISOR NORMALIZED YET.
+		DOUBLE
+		OVSK
+		TCF	BUFNORM		# NO -- SHIFT LEFT ONE AND TRY AGAIN.
+
+		DXCH	MPAC		# CALL DIVIDEND NORMALIZATION SEQUENCE
+		INDEX	DVNORMCT	# PRIOR TO DOING THE DIVIDE.
+		TC	MAXTEST
+
+		TS	MPAC +2		# RETURNS WITH DIVISION DONE AND C(A) = 0.
+		TCF	DANZIG
+
+BUFPOS		CCS	A
+		TCF	BUF+		# TO BUF+ IF BUF IS GREATER THAN +1.
+
+		CS	BUF +1		# IF BUF IS +1, FORCING SIGN AGREEMENT
+		EXTEND			# MAY CAUSE BUF TO BECOME ZERO.
+		BZMF	BUF+		# BRANCH IF SIGNS AGREE.
+
+		CA	HALF		# SIGNS DISAGREE.  FORCE AGREEMENT.
+	+6	DOUBLE
+		ADS	BUF +1
+		CA	ZERO
+		TS	BUF
+		TCF	BUFZERO
+
+BUFNEG		CCS	A
+		TCF	BUF-		# TO BUF- IF BUF IS LESS THAN -1.
+
+		CA	BUF +1		# IF BUF IS -1, FORCING SIGN AGREEMENT
+		EXTEND			# MAY CAUSE BUF TO BECOME ZERO.
+		BZMF	BUF-		# BRANCH IF SIGNS AGREE.
+
+		CS	HALF		# SIGNS DISAGREE.  FORCE AGREEMENT.
+		TCF	BUFPOS +6
+
+# Page 1166
+# THE FOLLOWING ARE PROLOGUES TO SHIFT THE DIVIDEND ARRIVING IN A AND L BEFORE THE DIVIDE.
+
+	-21D	LXCH	SR		# SPECIAL PROLOGUE FOR UNIT WHEN THE
+		EXTEND			# LENGTH OF THE ARGUMENT WAS NOT LESS THAN
+		MP	HALF		# .5.  IN THIS CASE, EACH COMPONENT MUST BE
+		XCH	L		# SHIFTED RIGHT ONE TO PRODUCE A HALF-UNIT
+		AD	SR		# VECTOR.
+		XCH	L
+		TCF	GENDDV +1	# WITH DP DIVIDEND IN A,L.
+
+		DDOUBL			# PROLOGUE WHICH NORMALIZES THE DIVIDEND
+		DDOUBL			# WHEN IT IS KNOWN THAT NO DIVISION
+		DDOUBL			# OVEFLOW WILL OCCUR.
+		DDOUBL
+		DDOUBL
+		DDOUBL
+		DDOUBL
+		DDOUBL
+		DDOUBL
+		DDOUBL
+		DDOUBL
+		DDOUBL
+		DDOUBL
+		DXCH	MPAC
+
+MAXTEST		CCS	MAXDVSW		# 0 IF MAJORS MIGHT BE =, -1 OTHERWISE.
+BIASHI		DEC	.4192 B-1	# SQRT CONSTANTS.
+
+		TCF	MAXDV		# CHECK TO SEE IF THAY ARE NOW EQUAL.
+
+# Page 1167
+# THE FOLLOWING IS A GENERAL PURPOSE DOUBLE PRECISION DIVISION ROUTINE.  IT DIVIDES MPAC BY BUF AND LEAVES
+# THE RESULT IN MPAC.  THE FOLLOWING CONDITIONS MUST BE SATISFIED:
+#
+#	1.	THE DIVISOR (BUF) MUST BE POSITIVE AND NOT LESS THAN .5.
+#
+#	2.	THE DIVIDEND (MPAC) MUST BE POSITIVE WITH THE MAJOR PART OF MPAC STRICTLY LESS THAN THAT OF BUF
+#		(A SPECIAL APPROXIMATION, MAXDV, IS USED WHEN THE MAJOR PARTS ARE EQUAL).
+#
+# UNDERSTANDING THAT A/B = Q + S(R/B) WHERE S = 2(-14) AND Q AND R ARE QUOTIENT AND REMAINDER, RESPEC-
+# TIVELY, THE FOLLOWING APPROXIMATION IS OBTAINED BY MULTIPLYING ABOVE AND BELOW BY C - SD AND NEGLECTING TERMS OF
+# ORDER S-SQUARED (POSSIBLY INTRODUCING ERROR INTO THE LOW TWO BITS OF THE RESULT).  SIGN AGREEMENT IS UNNECESSARY.
+#
+#	A + SB .      (R - CD)                                             A + SB
+#	------ = Q + S(------) WHERE Q AND R ARE QUOTIENT AND REMAINDER OF ------ RESPECTIVELY.
+#	C + SD        (  C   }                                                C
+
+GENDDV		DXCH	MPAC		# WE NEED A AND B ONLY FOR FIRST DV.
+	+1	EXTEND			# (SPECIAL UNIT PROLOGUE ENTERS HERE).
+		DV	BUF		# A NOW CONTAINS Q AND L, R.
+		DXCH	MPAC
+
+		CS	MPAC		# FORM DIVIDEND FOR MINOR PART OF RESULT.
+		EXTEND
+		MP	BUF +1
+		AD	MPAC +1		# OVERFLOW AT THIS POINT IS POSITIVE SINCE
+		OVSK			# R IS POSITIVE IN EVERY CASE.
+		TCF	+5
+
+		EXTEND			# OVERFLOW CAN BE REMOVED BY SUBTRACTING C
+		SU	BUF		# (BUF) ONCE SINCE R IS ALWAYS LESS THAN C
+		INCR	MPAC		# IN THIS CASE.  INCR COMPENSATES SUBTRACT.
+		TCF	+DOWN		# (SINCE C(A) IS STILL POSITIVE).
+
+	+5	EXTEND			# C(A) CAN BE MADE LESS THAN C IN MAGNI-
+		BZMF	-UP		# TUDE BY DIMINISHING IT BY C (SINCE C IS
+					# NOT LESS THAN .5) UNLESS C(A) = 0.
+
+# Page 1168
++DOWN		EXTEND
+		SU	BUF		# IF POSITIVE, REDUCE ONLY IF NECESSARY
+		EXTEND			# SINCE THE COMPENSATING INCR MIGHT CAUSE
+		BZF	+3		# OVERFLOW.
+		EXTEND			# DON'T SUBTRACT UNLESS RESULT IS POSITIVE
+		BZMF	ENDMAXDV	# OR ZERO.
+
+	+3	INCR	MPAC		# KEEP SUBTRACT HERE AND COMPENSATE.
+		TCF	FINALDV
+
+-UP		EXTEND			# IF ZERO, SET MINOR PART OF RESULT TO
+		BZF	FINALDV +3	# ZERO.
+
+		EXTEND			# IF NEGATIVE, ADD C TO A, SUBTRACTING ONE
+		DIM	MPAC		# TO COMPENSATE.  DIM IS OK HERE SINCE THE
+ENDMAXDV	AD	BUF		# MAJOR PART NEVER GOES NEGATIVE.
+
+# Page 1169
+FINALDV		ZL			# DO DV TO OBTAIN MINOR PART OF RESULT.
+		EXTEND
+		DV	BUF
+	+3	TS	MPAC +1
+
+		CCS	DVSIGN		# LEAVE RESULT POSITIVE UNLESS C(DVSIGN).
+		TC	Q
+		TC	Q
+		TC	Q
+
+		EXTEND
+		DCS	MPAC
+		DXCH	MPAC
+		CAF	ZERO		# SO WE ALWAYS RETURN WITH C(A) = 0.
+		TC	Q
+
+# Page 1170
+# IF THE MAJOR PARTS OF THE DIVISOR AND DIVIDEND ARE EQUAL, BUT THE MINOR PARTS ARE SUCH THAT THE
+# DIVIDEND IS STRICTLY LESS THAN THE DIVISOR IN MAGNITUDE, THE FOLLOWING APPROXIMATION IS USED.  THE ASSUMPTIONS
+# ARE THE SAME AS THE GENERAL ROUTINE WITH THE ADDITION THAT SIGN AGREEMENT IS NECESSARY (B, C, & D POSITIVE).
+#
+#	C + SB .          (C + B - D)
+#	------ = 37777 + S(---------)
+#	C + SD            (    C    )
+#
+# THE DIVISION MAY BE PERFORMED IMMEDIATELY SINCE B IS STRICTLY LESS THAN D AND C IS NOT LESS THAN .5.
+
+MAXDV		CS	MPAC		# SEE IF MAXDV CASE STILL HOLDS AFTER
+		AD	BUF		# NORMALIZATION.
+		EXTEND
+		BZF	+2
+		TCF	GENDDV		# MPAC NOW LESS THAN BUFF -- DIVIDE AS USUAL.
+
+	+2	CAF	POSMAX		# SET MAJOR PART OF RESULT.
+		TS	MPAC
+
+		CS	BUF +1		# FORM DIVIDEND OF MINOR PART OF RESULT.
+		AD	MPAC +1
+		TCF	ENDMAXDV	# GO ADD C AND DO DIVIDE, ATTACHING SIGN
+					# BEFORE EXITING.
+
+# Page 1171
+# VECTOR DIVIDED BY SCALAR, V/SC, IS EXECUTED HERE.  THE VECTOR IS NOW IN MPAC WITH SCALAR IN BUF.
+
+V/SC2		CS	ONE		# INITIALIZE DIVIDEND NORMALIZATION COUNT
+		TS	DVNORMCT	# AND DIVISION SIGN REGISTER.
+		TS	VBUF +5
+
+		TC	VECAGREE	# FORCE SIGN AGREEMENT IN VECTOR
+
+		DXCH	BUF
+		TC	ALSIGNAG	# SIGN AGREE BUF
+		DXCH	BUF
+		CCS	BUF		# FORCE DIVISOR POSITIVE WITH MAJOR PART
+		TCF	/BUF+		# NON-ZERO (IF POSSIBLE).
+		TCF	+2
+		TCF	/BUF-
+
+		XCH	BUF +1		# SHIFT VECTOR AND SCALAR LEFT 14.
+		XCH	BUF
+		XCH	MPAC +1
+		XCH	MPAC
+		EXTEND			# CHECK FOR OVERFLOW IN EACH CASE.
+		BZF	+2
+		TCF	DVOVF
+
+		XCH	MPAC +4
+		XCH	MPAC +3
+		EXTEND
+		BZF	+2
+		TCF	DVOVF
+
+		XCH	MPAC +6
+		XCH	MPAC +5
+		EXTEND
+		BZF	+2
+		TCF	DVOVF
+
+		CCS	BUF
+		TCF	/BUF+
+		TCF	DVOVF		# ZERO DIVISOR - OVERFLOW.
+		TCF	/BUF-
+		TCF	DVOVF
+
+/BUF-		EXTEND			# ON NEGATIVE, COMPLEMENT BUF AND MAINTAIN
+		DCS	BUF		# DVSIGN IN VBUF +5.
+		DXCH	BUF
+		INCR	VBUF +5
+
+# Page 1172
+/BUF+		EXTEND
+		DCA	BUF		# LEAVE ABS(ORIG DIVISOR) IN BUF2
+		DXCH	BUF2		# FOR OVERFLOW TESTING
+		TCF	/NORM		# NORMALIZE DIVISOR IN BUF.
+
+/NORM2		EXTEND			# IF LESS THAN .5, AUGMENT DVNORMCT AND
+		AUG	DVNORMCT	# DOUBLE DIVISOR.
+		EXTEND
+		DCA	BUF
+		DAS	BUF
+
+/NORM		CA	BUF		# SEE IF DIVISOR NORMALIZED.
+		DOUBLE
+		OVSK
+		TCF	/NORM2		# DOUBLE AND TRY AGAIN IF NOT.
+
+		TC	V/SCDV		# DO X COMPONENT DIVIDE.
+		DXCH	MPAC +3		# SUPPLY ARGUMENTS IN USUAL SEQUENCE.
+		DXCH	MPAC
+		DXCH	MPAC +3
+
+		TC	V/SCDV		# Y COMPONENT.
+		DXCH	MPAC +5
+		DXCH	MPAC
+		DXCH	MPAC +5
+
+		TC	V/SCDV		# Z COMPONENT.
+		TCF	VROTATEX	# GO RE-ARRANGE COMPONENTS BEFORE EXIT.
+
+# Page 1173
+# SUBROUTINE USED BY V/SC TO DIVIDE VECTOR COMPONENT IN MPAC,+1 BY THE SCALAR GIVEN IN BUF.
+
+V/SCDV		CA	VBUF +5		# REFLECTS SIGN OF SCALAR.
+		TS	DVSIGN
+
+		CCS	MPAC		# FORCE MPAC POSITIVE, EXITING ON ZERO.
+		TCF	/MPAC+
+		TCF	+2
+		TCF	/MPAC-
+
+		CCS	MPAC +1
+		TCF	/MPAC+
+		TC	Q
+		TCF	/MPAC-
+		TC	Q
+
+/MPAC-		EXTEND			# USUAL COMPLEMENTING AND SETTING OF SIGN.
+		DCS	MPAC
+		DXCH	MPAC
+		INCR	DVSIGN
+
+/MPAC+		CS	ONE		# INITIALIZE NEAR-ONE SWITCH.
+		TS	MAXDVSW
+
+		CS	MPAC		# CHECK POSSIBLE OVERFLOW.
+		AD	BUF2		# UNNORMALIZED INPUT DIVISOR.
+		CCS	A
+		TCF	DDVCALL		# NOT NEAR-ONE
+		TCF	+2		# +0 IS JUST POSSIBLE
+		TCF	DVOVF		# NO HOPE
+		TS	MAXDVSW		# SIGNAL POSSIBLE NEAR-ONE CASE
+		CS	MPAC +1		# SEE IF DIVISION CAN BE DONE
+		AD	BUF2 +1
+		EXTEND
+		BZMF	DVOVF
+
+DDVCALL		DXCH	MPAC		# CALL PRE-DIVIDE NORMALIZATION.
+		INDEX	DVNORMCT
+		TCF	MAXTEST
+
+# Page 1174
+SLOPELO		DEC	.8324
+
+VECAGREE	XCH	Q		# SAVE Q IN A
+		DXCH	MPAC
+		TC	ALSIGNAG	# SIGNAGREE MPAC
+		DXCH	MPAC
+		DXCH	MPAC +3
+		TC	ALSIGNAG	# SIGN AGREE MPAC +3
+		DXCH	MPAC +3
+		DXCH	MPAC +5
+		TC	ALSIGNAG	# SIGNAGREE MPAC +5
+		DXCH	MPAC +5
+		TC	A
+
+# Page 1175
+# THE FOLLOWING ROUTINE EXECUTES THE UNIT INSTRUCTION, WHICH TAKES THE UNIT OF THE VECTOR IN MPAC.
+
+UNIT		TC	VECAGREE	# FORCE SIGN AGREEMENT IN VECTOR
+		TC	MPACVBUF	# SAVE ARGUMENT IN VBUF
+		CAF	ZERO		# MUST SENSE OVERFLOW IN FOLLOWING DOT.
+		XCH	OVFIND
+		TS	TEM1
+		TC	VSQSUB		# DOT MPAC WITH ITSELF.
+		CA	TEM1
+		XCH	OVFIND
+		EXTEND
+		BZF	+2
+		TCF	DVOVF
+		EXTEND
+		DCA	MPAC		# LEAVE THE SQUARE OF THE LENGTH OF THE
+		INDEX	FIXLOC		# ARGUMENT IN LVSQUARE.
+		DXCH	LVSQUARE
+
+		TC	SQRTSUB		# GO TAKE THE NORMALIZED SQUARE ROOT.
+
+		CCS	MPAC		# CHECK FOR UNIT OVERFLOW.
+		TCF	+5		# MPAC IS NOT LESS THAN .5 UNLESS
+		TS	L
+		INDEX	FIXLOC
+		DXCH	LV
+		TCF	DVOVF		# INPUT TO SQRTSUB WAS 0.
+
+		CS	FOURTEEN	# SEE IF THE INPUT WAS SO SMALL THAT THE
+		AD	MPTEMP		# FIRST TWO REGISTERS OF THE SQUARE WERE 0
+		CCS	A
+		COM			# IF SO, SAVE THE NEGATIVE OF THE SHIFT
+		TCF	SMALL		# COUNT -15D.
+
+		TCF	LARGE		# (THIS IS USUALLY THE CASE.)
+
+		CS	THIRTEEN	# IF THE SHIFT COUNT WAS EXACTLY 14, SET
+		TS	MPTEMP		# THE PRE-DIVIDE NORM COUNT TO -13D.
+
+		CA	MPAC		# SHIFT THE LENGTH RIGHT 14 BEFORE STORING
+SMALL2		TS	L		# (SMALL EXITS TO THIS POINT).
+		CAF	ZERO
+		TCF	LARGE2		# GO TO STORE LENGTH AND PROCEED.
+
+LARGE		CCS	MPTEMP		# MOST ALL CASES COME HERE.
+		TCF	LARGE3		# SEE IF NO NORMALIZATION WAS REQUIRED BY
+		CS	SRDDV		# SQRT, AND IF SO, SET UP FOR A SHIFT
+		TS	MPTEMP		# RIGHT 1 BEFORE DIVIDING TO PRODUCE
+		EXTEND			# THE DESIRED HALF UNIT VECTOR.
+		DCA	MPAC
+# Page 1176
+		TCF	LARGE2
+
+# Page 1177
+LARGE3		COM			# LEAVE NEGATIVE OF SHIFT COUNT-1 FOR
+		TS	MPTEMP		# PREDIVIDE LEFT SHIFT.
+
+		COM			# PICK UP REQUIRED SHIFTING BIT TO UNNORM-
+		INDEX	A		# ALIZE THE SQRT RESULT.
+		CAF	BIT14
+		TS	BUF
+		EXTEND
+		MP	MPAC +1
+		XCH	BUF
+		EXTEND			# (UNNORMALIZE THE SQRT FOR LV).
+		MP	MPAC
+		XCH	L
+		AD	BUF
+		XCH	L
+
+LARGE2		INDEX	FIXLOC
+		DXCH	LV		# LENGTH NOW STORED IN WORK AREA.
+
+		CS	ONE
+		TS	MAXDVSW		# NO MAXDV CASES IN UNIT.
+
+		DXCH	VBUF		# PREPARE X COMPONENT FOR DIVIDE, SETTING
+		DXCH	MPAC		# LENGTH OF VECTOR AS DIVISOR IN BUF.
+		DXCH	BUF
+		TC	UNITDV
+
+		DXCH	VBUF +2		# DO Y AND Z IN USUAL FASHION SO WE CAN
+		DXCH	MPAC		# EXIT THROUGH VROTATEX.
+		DXCH	MPAC +3
+		TC	UNITDV
+
+		DXCH	VBUF +4
+		DXCH	MPAC
+		DXCH	MPAC +5
+		TC	UNITDV
+		TCF	VROTATEX	# AND EXIT.
+
+# Page 1178
+# IF THE LENGTH OF THE ARGUMENT VECTOR WAS LESS THAN 2(-28), EACH COMPONENT MUST BE SHIFTED LEFT AT LEAST
+# 14 PLACES BEFORE TEH DIVIDE, NOTE THAT IN THIS CASE, THE MAJOR PART OF EACH COMPONENT IS ZERO.
+
+SMALL		TS	MPTEMP		# NEGATIVE OF PRE-DIVIDE SHIFT COUNT.
+
+		CAF	ZERO		# SHIFT EACH COMPONENT LEFT 14.
+		XCH	VBUF +1
+		XCH	VBUF
+		XCH	VBUF +3
+		XCH	VBUF +2
+		XCH	VBUF +5
+		XCH	VBUF +4
+
+		CS	MPTEMP
+		INDEX	A
+		CAF	BIT14
+		EXTEND
+		MP	MPAC
+		TCF	SMALL2
+
+THIRTEEN	=	OCT15
+FOURTEEN	=	OCT16
+OCT16		=	R1D1
+
+# Page 1179
+# THE FOLLOWING ROUTINE SETS UP THE CALL TO THE DIVIDE ROUTINES.
+
+UNITDV		CCS	MPAC		# FORCE MPAC POSITIVE IF POSSIBLE, SETTING
+		TCF	UMPAC+		# DVSIGN ACCORDING TO THE SIGN OF MPAC
+		TCF	+2		# SINCE THE DIVISOR IS ALWAYS POSITIVE
+		TCF	UMPAC-		# HERE.
+
+		CCS	MPAC +1
+		TCF	UMPAC+
+		TC	Q		# EXIT IMMEDIATELY ON ZERO.
+		TCF	UMPAC-
+		TC	Q
+
+UMPAC-		CS	ZERO		# IF NEGATIVE, SET -0 IN DVSIGN FOR FINAL
+		TS	DVSIGN		# COMPLEMENT.
+		EXTEND
+		DCS	MPAC		# PICK UP ABSOLUTE VALUE OF ARG AND JUMP.
+		INDEX	MPTEMP
+		TCF	MAXTEST -1
+
+UMPAC+		TS	DVSIGN		# SET DVSIGN FOR POSITIVE QUOTIENT.
+		DXCH	MPAC
+		INDEX	MPTEMP
+		TCF	MAXTEST -1
+
+# Page 1180
+# MISCELLANEOUS UNARY OPERATIONS.
+
+DSQ		TC	DSQSUB		# SQUARE THE DP CONTENTS OF MPAC.
+		TCF	DANZIG
+
+ABVALABS	CCS	MODE		# ABVAL OR ABS INSTRUCTION.
+		TCF	ABS		# DO ABS ON SCALAR.
+		TCF	ABS
+
+ABVAL		TC	VSQSUB		# DOT MPAC WITH ITSELF.
+		LXCH	MODE		# MODE IS NOW DP (L ZERO AFTER DAS).
+
+		EXTEND			# STORE SQUARE OF LENGTH IN WORK AREA.
+		DCA	MPAC
+		INDEX	FIXLOC
+		DXCH	LVSQUARE
+
+# Page 1181
+# PROGRAM DESCRIPTION -- SUBROUTINE SQRT
+#
+# FUNCTIONAL DESCRIPTION -- DOUBLE PRECISION SQUARE ROOT ROUTINE
+#	THIS PROGRAM TAKES THE SQUARE ROOT OF THE 27 OR 28 MOST SIGNIFICANT BITS IN THE TRIPLE PRECISION SET OF
+#	NUMBERS -- MPAC, MPAC+1, AND MPAC+2.  THE ROOT IS RETURNED DOUBLE PRECISION IN MPAC AND MPAC+1.
+#
+# WARNING -- THIS SUBROUTINE USES A TRIPLE PRECISION INPUT.  THE PROGRAMMER MUST ASSURE THE CONTENTS OF MPAC+2
+#	ESPECIALLY IF THE CONTENTS OF MPAC IS SMALL OR ZERO.  FOR DETAILS SEE STG MEMO NO.949.
+#
+# CALLING SEQUENCE -- IN INTERPRETIVE MODE, I.E., FOLLOWING `TC INTPRET', `SQRT', NO ADDRESS IS ALLOWED.
+#	INPUT SCALING: THE BINARY POINT IS ASSUMED TO THE RIGHT OF BIT 15.  THE ANSWER IS RETURNED WITH THE SAME SCALING.
+#
+# SUBROUTINES -- GENSCR, MPACSHR, SQRTSUB, ABORT
+#
+# ABORT EXIT MODE -- ABORTS ON NEGATIVE INPUT -1.2X10E-4 (77775 OCTAL) OR LESS.
+#	DISPLAYS ERROR CODE 1302
+#		TC	ABORT
+#		OCT	1302
+#
+# DEBRIS -- LOCATIONS BUF, MPTEMP, ADDRWD ARE USED
+
+SQRT		TC	SQRTSUB		# TAKE THE SQUARE ROOT OF MPAC.
+		CCS	MPTEMP		# RETURNED NORMALIZED SQUARE ROOT.  SEE IF
+		TCF	+2		# ANY UN-NORMALIZATION REQUIRED AND EXIT
+		TCF	DANZIG		# IF NOT.
+
+		AD	NEG12		# A RIGHT SHIFT OF MORE THAN 13 COULD BE
+		EXTEND			# REQUIRED IF INPUT WAS ZERO IN MPAC,+1.
+		BZMF	SQRTSHFT	# GOES HERE IN MOST CASES.
+		ZL			# IF A LONG SHIFT IS REQUIRED, GO TO
+		LXCH	ADDRWD		# GENERAL RIGHT SHIFT ROUTINES.
+		TCF	GENSCR +4	# ADDRWD WAS ZERO TO PREVENT ROUND.
+
+SQRTSHFT	INDEX	MPTEMP		# SELECT SHIFTING BIT AND EXIT THROUGH
+		CAF	BIT15		# SHIFT ROUTINES.
+		TS	MPTEMP
+		CAF	ZERO		# TO ZERO MPAC +2 IN THE PROCESS.
+		TCF	MPACSHR +3
+
+ABS		TC	BRANCH		# TEST SIGN OF MPAC AND COMPLEMENT IF
+		TCF	DANZIG
+		TCF	DANZIG
+		TCF	COMP
+
+# Page 1182
+VDEF		CS	FOUR		# VECTOR DEFINE -- ESSENTIALLY TREATS
+		ADS	PUSHLOC		# SCALAR IN MPAC AS X COMPONENT, PUSHES UP
+		EXTEND			# FOR Y AND THEN AGAIN FOR Z.
+		INDEX	A
+		DCA	2
+		DXCH	MPAC +3
+		EXTEND
+		INDEX	PUSHLOC
+		DCA	0
+		DXCH	MPAC +5
+		TCF	VMODE		# MODE IS NON VECTOR.
+
+VSQ		TC	VSQSUB		# DOT MPAC WITH ITSELF.
+		TCF	DMODE		# MODE IS NOW DP.
+
+PUSH		EXTEND			# PUSH DOWN MPAC LEAVING IT LOADED.
+		DCA	MPAC
+		INDEX	PUSHLOC		# PUSH DOWN FIRST TWO REGISTERS IN EACH
+		DXCH	0
+
+		INDEX	MODE		# INCREMENT PUSHDOWN POINTER.
+		CAF	NO.WDS
+		ADS	PUSHLOC
+
+		CCS	MODE
+		TCF	TPUSH		# PUSH DOWN MPAC +2.
+		TCF	DANZIG		# DONE FOR DP.
+
+		EXTEND			# ON VECTOR, PUSH DOWN Y AND Z COMPONENTS.
+		DCA	MPAC +3
+		INDEX	PUSHLOC
+		DXCH	0 -4
+		EXTEND
+		DCA	MPAC +5
+		INDEX	PUSHLOC
+		DXCH	0 -2
+		TCF	DANZIG
+
+TPUSH		CA	MPAC +2
+		TCF	ENDTPUSH +2
+
+RVQ		INDEX	FIXLOC		# RVQ -- RETURN IVA QPRET.
+		CA	QPRET
+		TS	POLISH
+		TCF	GOTO +4		# (ASSUME QPRET POINTS TO FIXED ONLY.)
+
+# Page 1183
+# THE FOLLOWING SUBROUTINES ARE USED IN SQUARING MPAC, IN BOTH THE SCALAR AND VECTOR SENSE.  THEY ARE
+# SPECIAL CASES OF DMPSUB AND DOTSUB, PUT IN TO SAVE SOME TIME.
+
+DSQSUB		CA	MPAC +1		# SQUARES THE SCALAR CONTENTS OF MPAC.
+		EXTEND
+		SQUARE
+		TS	MPAC +2
+		CAF	ZERO		# FORM 2(CROSS TERM).
+		XCH	MPAC +1
+		EXTEND
+		MP	MPAC
+		DDOUBL			# AND MAYBE OVEFLOW.
+		DAS	MPAC +1		# AND SET A TO NET OVERFLOW.
+		XCH	MPAC
+		EXTEND
+		SQUARE
+		DAS	MPAC
+		TC	Q
+
+VSQSUB		EXTEND			# DOTS THE VECTOR IN MPAC WITH ITSELF.
+		QXCH	DOTRET
+		TC	DSQSUB		# SQUARE THE X COMPONENT.
+		DXCH	MPAC +3
+		DXCH	MPAC
+		DXCH	BUF		# SO WE CAN END IN DOTSUB.
+		CA	MPAC +2
+		TS	BUF +2
+
+		TC	DSQSUB		# SQUARE Y COMPONENT.
+		DXCH	MPAC +1
+		DAS	BUF +1
+		AD	MPAC
+		AD	BUF
+		TS	BUF
+		TCF	+2
+		TS	OVFIND		# IF OVERFLOW.
+
+		DXCH	MPAC +5
+		DXCH	MPAC
+		TC	DSQSUB		# SQUARE Z COMPONENT.
+		TCF	ENDDOT		# END AS IN DOTSUB.
+
+# Page 1184
+# DOUBLE PRECISION SQUARE ROOT ROUTINE.  TAKE THE SQUARE ROOT OF THE TRIPLE PRECISION (MPAC +2 USED ONLY
+# IN NORMALIZATION) CONTENTS OF MPAC AND LEAVE THE NORMALIZED RESULT IN MPAC (C(MPAC) GREATER THAN OR EQUAL TO
+# .5).  THE RIGHT SHIFT COUNT (TC UNNORMALIZE) IS LEFT IN MPTEMP.
+
+SQRTSUB		CAF	ZERO		# START BY ZEROING RIGHT SHIFT COUNT.
+		TS	MPTEMP
+
+		CCS	MPAC		# CHECK FOR POSITIVE ARGUMENT, SHIFTING
+		TCF	SMPAC+		# FIRST SIGNIFICANT MPAC REGISTER INTO
+		TCF	+2		# MPAC ITSELF.
+		TCF	SQRTNEG		# SEE IF MAG OF ARGUMENT LESS THAN 10(-4).
+
+		XCH	MPAC +2		# MPAC IS ZERO -- SHIFT LEFT 14.
+		XCH	MPAC +1
+		TS	MPAC
+		CAF	SEVEN		# AUGMENT RIGHT SHIFT COUNTER.
+		TS	MPTEMP
+
+		CCS	MPAC		# SEE IF MPAC NOW PNZ.
+		TCF	SMPAC+
+		TCF	+2
+		TCF	ZEROANS		# NEGATIVE BUT LESS THAN 10(-4) IN MAG.
+
+		XCH	MPAC +1		# XERO -- SHIFT LEFT 14 AGAIN.
+		TS	MPAC
+		CAF	SEVEN		# AUGMENT RIGHT SHIFT COUNTER.
+		ADS	MPTEMP
+
+		CCS	MPAC
+		TCF	SMPAC+
+		TC	Q		# SQRT(0) = 0.
+		TCF	ZEROANS
+		TCF	FIXROOT		# DO NOT LEAVE SQRTSUB WITH -0 IN MPAC.
+
+SQRTNEG		CCS	A		# ARGUMENT IS NEGATIVE, BUT SEE IF SIGN-
+		TCF	SQRTABRT	# CORRECTED ARGUMENT IS LESS THAN 10(-4)
+
+		CCS	MPAC +1		# IN MAGNITUDE.  IF SO, CALL ANSWER ZERO.
+ZEROANS		CAF	ZERO		# FORCE ANSWER TO ZERO HERE.
+		TCF	FIXROOT
+		TCF	SQRTABRT
+		TCF	FIXROOT
+
+SQRTABRT	TC	P00DOO
+		OCT	1302
+
+# Page 1185
+SMPAC+		AD	-1/2+2		# SEE IF ARGUMENT GREATER THAN OR EQUAL TO
+		EXTEND			# .5.
+		BZMF	SRTEST		# IF SO, SEE IF LESS THAN .25.
+
+		DXCH	MPAC		# WE WILL TAKE THE SQUARE ROOT OF MPAC/2.
+		LXCH	SR		# SHIFT RIGHT 1 AND GO TO THE SQRT ROUTINE
+		EXTEND
+		MP	HALF
+		DXCH	MPAC
+		XCH	SR
+		ADS	MPAC +1		# GUARANTEED NO OVERFLOW.
+
+ARGHI		CAF	SLOPEHI		# ARGUMENT BETWEEN .25 AND .5, GET A
+		EXTEND			# LINEAR APPROXIMATION FOR THIS RANGE.
+		MP	MPAC
+		AD	BIASHI		# X0/2 = (MPAC/2)(SLOPHI) + BIASHI/2.
+
+	+4	TS	BUF		# X0/2 (ARGLO ENTERS HERE).
+		CA	MPAC		# SINGLE-PRECISION THROUGHOUT.
+		ZL
+		EXTEND
+		DV	BUF		# (MPAC/2)/(X0/2)
+		EXTEND
+		MP	HALF
+		ADS	BUF		# X1 = X0/2 + .5(MPAX/2)/(X0/2)
+
+		EXTEND
+		MP	HALF		# FORM UP X1/2.
+		DXCH	MPAC		# SAVE AND BRING OUT ARGUMENT.
+		EXTEND			# TAKE DP QUOTIENT WITH X1.
+		DV	BUF
+		TS	BUF +1		# SAVE MAJOR PART OF QUOTIENT.
+		CAF	ZERO		# FORM MINOR PART OF QUOTIENT USING
+		XCH	L		# (REMAINDER,0).
+		EXTEND
+		DV	BUF
+		TS	L		# IN PREPARATION FOR DAS.
+		CA	BUF +1
+		DAS	MPAC		# X2 = X1/2 + (MPAC/2)X1
+
+		EXTEND			# OVERFLOWS IF ARG. NEAR POSMAX.
+		BZF	TCQBNK00
+		CAF	POSMAX
+FIXROOT		TS	MPAC
+		TS	MPAC +1
+TCQBNK00	TC	Q		# RETURN TO CALLER TO UNNORMALIZE, ETC.
+
+# Page 1186
+SRTEST		AD	QUARTER		# ARGUMENT WAS LESS THAN .5, SEE IF LESS
+		EXTEND			# THAN .25.
+		BZMF	SQRTNORM	# IF SO, BEGIN NORMALIZATION.
+
+		DXCH	MPAC		# IF BETWEEN .5 AND .25, SHIFT RIGHT 1 AND
+		LXCH	SR		# START AT ARGLO.
+		EXTEND
+		MP	HALF
+		DXCH	MPAC
+		XCH	SR
+		ADS	MPAC +1		# NO OVERFLOW.
+
+ARGLO		CAF	SLOPELO		# (NORMALIZED) ARGUMENT BETWEEN .125 AND
+		EXTEND			# .25
+		MP	MPAC
+		AD	BIASLO
+		TCF	ARGHI +4	# BEGIN SQUARE ROOT.
+
+SQRTNM2		EXTEND			# SHIFT LEFT 2 AND INCREMENT RIGHT SHIFT
+		DCA	MPAC +1		# COUNT (FOR TERMINAL UNNORMALIZATION).
+		DAS	MPAC +1
+		AD	MPAC
+		ADS	MPAC		# (NO OVERFLOW).
+
+SQRTNORM	INCR	MPTEMP		# FIRST TIME THROUGH, JUST SHIFT LEFT 1
+		EXTEND			# (PUTS IN EFFECTIVE RIGHT SHIFT SINCE
+		DCA	MPAC +1		# WE WANT MPAC/2).
+		DAS	MPAC +1
+		AD	MPAC
+		ADS	MPAC		# (AGAIN NO OVERFLOW).
+		DOUBLE
+		TS	CYL
+
+NORMTEST	CCS	CYL		# SEE IF ARGUMENT NOW NORMALIZED AT
+		CCS	CYL		# GREATER THAN .125.
+		TCF	SQRTNM2		# NO -- SHIFT LEFT 2 MORE AND TRY AGAIN.
+		TCF	ARGHI		# YES -- NOW BETWEEN .5 AND .25.
+		TCF	ARGLO		# ARGUMENT NOW BETWEEN .25 AND .125.
+
+# Page 1187
+# TRIGONOMETRIC FUNCTION PACKAGE.
+#	THE FOLLOWING TRIGONOMETRIC FUNCTIONS ARE AVAIALABLE AS INTERPRETIVE OPERATIONS:
+#	1.	SIN		COMPUTES (1/2)SINE(2 PI MPAC).
+#	2.	COS		COMPUTES (1/2)COSINE(2 PI MPAC).
+#	3.	ASIN		COMPUTES (1/2PI)ARCSINE(2 MPAC).
+#	4.	ACOS		COMPUTES (1/2PI)ARCCOSINE(2 MPAC).
+#
+# SIN-ASIN AND COS-ACOS ARE MUTUALLY INVERSE, I.E., SIN(ASIN(X)) = X.
+
+COSINE		TC	BRANCH		# FINDS COSINE USING THE IDENTITY
+		TCF	+3		# COS(X) = SIN(PI/2 - ABS(X)).
+		TCF	PRESINE
+		TCF	PRESINE
+
+	+3	EXTEND
+		DCS	MPAC
+		DXCH	MPAC
+
+PRESINE		CAF	QUARTER		# PI/2 SCALED.
+		ADS	MPAC
+
+SINE		DXCH	MPAC		# DOUBLE ARGUMENT.
+		DDOUBL
+		OVSK			# SEE IF OVERFLOW PRESENT.
+		TCF	+3		# IF NOT, ARGUMENT OK AS IS.
+
+		EXTEND			# IF SO, WE LOST (OR GAINED) PI, SO
+		DCOM			# COMPLEMENT MPAC USING THE IDENTITY
+					# SIN(X-(+)PI) = SIN(-X).
+	+3	DXCH	MPAC
+		CA	MPAC		# SEE IF ARGUMENT GREATER THAN .5 IN
+		DOUBLE			# MAGNITUDE.  IF SO, REDUCE IT TO LESS THAN
+		TS	L		# .5 (+-PI/2 SCALED) AS FOLLOWS:
+		TCF	SN1
+
+		INDEX	A		# IF POSITIVE, FORM PI - X, IF NEGATIVE
+		CAF	NEG1/2 +1	# USE -PI -X.
+		DOUBLE
+		EXTEND
+		SU	MPAC		# GUARANTEED NO OVERFLOW.
+		TS	MPAC
+		CS	MPAC +1
+		TS	MPAC +1
+
+# Page 1188
+SN1		EXTEND			# SET UP TO EVALUATE HASTINGS POLYNOMIAL
+		DCA	MPAC
+		DXCH	BUF2
+		TC	DSQSUB		# SQUARE MPAC.
+
+		TC	POLY		# EVALUATE FOURTH ORDER POLYNOMIAL.
+		DEC	3
+		2DEC	+.3926990796
+		2DEC	-.6459637111
+		2DEC	+.318758717
+		2DEC	-.074780249
+		2DEC	+.009694988
+
+		CAF	LBUF2		# MULTIPLY BY ARGUMENT AND SHIFT LEFT 2.
+		TC	DMPSUB -1
+
+		EXTEND
+		DCA	MPAC +1
+		DAS	MPAC +1
+		AD	MPAC
+		ADS	MPAC		# NEITHER SHIFT OVERFLOWS.
+		EXTEND
+		DCA	MPAC +1
+		DAS	MPAC +1
+		AD	MPAC
+		ADS	MPAC
+		TCF	DANZIG
+
+# Page 1189
+# ARCSIN/ARCCOS ROUTINE.
+
+ARCSIN		CAF	LASINEX		# COMPUTE ARCSIN BY USING THE IDENTITY
+		TCF	+2		# ARCSIN(X) = PI/2 - ARCCOS(X).
+
+ARCCOS		CAF	LDANZIG		# (EXITS IMMEDIATELY).
+		TS	ESCAPE
+		TC	BRANCH		# TEST SIGN OF INPUT.
+		TCF	ACOSST		# START IMMEDIATELY IF POSITIVE.
+		TCF	ACOSZERO	# ARCCOS(0) = PI/2 = .25.
+		EXTEND			# IF NEGATIVE, USE THE IDENTITY
+		DCS	MPAC		# ARCCOS(X) = PI - ARCCOS(-X), FORCING
+		DXCH	MPAC		# ARGUMENT POSITIVE.
+		CAF	TCSUBTR		# SET EXIT TO DO ABOVE BEFROE
+		XCH	ESCAPE		# ARCSIN/ARCCOS CONSIDERATIONS.
+		TS	ESCAPE2
+
+ACOSST		CS	HALF		# TEST MAGNITUDE OF INPUT.
+		AD	MPAC
+		CCS	A
+		TCF	ACOSOVF		# THIS IS PROBABLY AN OVERFLOW CASE.
+
+LASINEX		TCF	ASINEX
+
+		TCF	ACOSST2		# NO OVERFLOW -- PROCEED.
+
+		CCS	MPAC +1		# IF MAJOR PART IS .5, CALL ANSWER 0
+		CAF	ZERO		# UNLESS MINOR PART NEGATIVE.
+		TCF	ACOS=0
+
+		TCF	ACOSST2
+
+ACOS=0		TS	MPAC +1
+		TS	MPAC
+		TC	ESCAPE
+
+ACOSST2		EXTEND			# NOW THAT ARGUMENT IS IN PROPER RANGE,
+		DCS	MPAC		# BEGIN COMPUTATION.  USE HASTINGS
+		AD	HALF		# APPROXIMATION ARCCOS(X) = SQRT(1-X)P(X)
+		DXCH	MPAC		# IN A SCALED VERSION WHERE P(X) IS A
+		DXCH	BUF2		# SEVENTH ORDER POLYNOMIAL.
+
+		TC	SQRTSUB		# RETURNS WITH NORMALIZED SQUARE ROOT.
+
+		CCS	MPTEMP		# SEE IF UN-NORMALIZATION REQUIRED.
+		TCF	ACOSSHR
+
+# Page 1190
+ACOS3		DXCH	MPAC		# SET UP FOR POLYNOMIAL EVALUATION.
+		DXCH	BUF2
+		DXCH	MPAC
+
+		TC	POLY
+		DEC	6
+		2DEC	+.353553385	# COEFFICIENTS ARE C 2(+I)/PISQRT(2) WHERE
+		2DEC*	-.0483017006 B+1*	# I
+		2DEC*	+.0200273085 B+2*	# WEHRE C STANDS FOR ORIGINAL COEFFS.
+		2DEC*	-.0112931863 B+3*
+		2DEC*	+.00695311612 B+4*
+		2DEC*	-.00384617957 B+5*
+		2DEC*	+.001501297736 B+6*
+		2DEC*	-.000284160334 B+7*
+
+		CAF	LBUF2		# DO FINAL MULTIPLY AND GO TO ANY
+		TC	DMPSUB -1	# EPILOGUE SEQUENCES.
+		TC	ESCAPE
+
+SUBTR		EXTEND			# EPILOGUE FOR NEGATIVE INPUTS TO ARCCOS.
+		DCS	MPAC
+		AD	HALF		# FORMS PI - ARCCOS(-X) = ARCCOS(X).
+		DXCH	MPAC
+		TC	ESCAPE2		# GO TO POSSIBLE ARCSIN EPILOGUE.
+
+ASINEX		EXTEND
+		DCS	MPAC		# ARCSIN EPILOGUE -- GET ARCSIN(X)
+		AD	QUARTER		# = PI/2 - ARCCOS(X).
+		DXCH	MPAC
+LDANZIG		TCF	DANZIG
+
+# Page 1191
+ACOSSHR		INDEX	A		# THE SHIFT RIGHT IS LESS THAN 14 SINCE
+		CAF	BIT14		# THE INPUT WAS NON-ZERO DP.
+		TS	MPTEMP
+		TC	VSHRRND		# DP SHIFT RIGHT AND ROUND.
+		TCF	ACOS3		# PROCEED.
+
+ACOSOVF		EXTEND			# IF MAJOR PART WAS ONLY 1 MORE THAN .5,
+		BZF	ACOS=0		# CALL ANSWER ZERO.
+
+ACOSABRT	TC	ALARM		# IF OVERFLOW, CALL ANSWER ZERO BUT
+		OCT	1301		# SOUND AN ALARM.
+
+		CAF	ZERO
+		TCF	ACOS=0
+
+ACOSZERO	CAF	QUARTER		# ACOS(0) = PI/2.
+		TCF	ACOS=0 +1	# SET MPAC AND EXIT VIA ESCAPE.
+
+NEG12		DEC	-12
+TCSUBTR		TCF	SUBTR
+
+# Page 1192
+# THE FOLLOWING INSTRUCTIONS ARE AVAILABLE FOR SETTING, MODIFYING, AND BRANCHING ON INDEX REGISTERS:
+#	1.	AXT	ADDRESS TO INDEX TRUE.
+#	2.	AXC	ADDRESS TO INDEX COMPLEMENTED.
+#	3.	LXA	LOAD INDEX FROM ERASABLE.
+#	4.	LXC	LOAD INDEX COMPLEMENTED FROM ERASABLE.
+#	5.	SXA	STORE INDEX IN ERASABLE.
+#	6.	XCHX	EXCHANGE INDEX REGISTER WITH ERASABLE.
+#	7.	INCR	INCREMENT INDEX REGISTER.
+#	8.	XAD	ERASABLE ERASABLE ADD TO INDEX REGISTER.
+#	9.	XSU	ERASABLE SUBTRACT FROM INDEX REGISTER.
+#	10.	TIX	BRANCH ON INDEX REGISTER AND DECREMENT.
+
+		BANK	01
+
+		COUNT	01/INTER
+		
+AXT		TC	TAGSUB		# SELECT APPROPRIATE INDEX REGISTER.
+		CA	POLISH
+XSTORE		INDEX	INDEXLOC	# CONTAINS C(FIXLOC) OR C(FIXLOC)+1
+		TS	X1
+		TCF	DANZIG
+
+AXC		TC	TAGSUB
+		CS	POLISH
+		TC	XSTORE
+
+LXA		TC	15ADRERS	# LOAD INDEX REGISTER FROM ERASABLE.
+		INDEX	POLISH
+		CA	0
+		TCF	XSTORE
+
+LXC		TC	15ADRERS	# LOAD NDX REG FROM ERASABLE COMPLEMENTED.
+		INDEX	POLISH
+		CS	0
+		TCF	XSTORE
+
+SXA		TC	15ADRERS	# STORE INDEX REGISTER IN ERASABLE.
+		INDEX	INDEXLOC
+		CA	X1
+MSTORE1		INDEX	POLISH
+		TS	0
+		TCF	DANZIG
+
+# Page 1193
+XCHX		TC	15ADRERS	# EXCHANGE INDEX REGISTER WITH ERASABLE.
+		INDEX	POLISH
+		CA	0
+		INDEX	INDEXLOC
+		XCH	X1
+		TCF	MSTORE1
+
+XAD		TC	15ADRERS	# ADD ERASABLE TO INDEX REGISTER.
+		INDEX	POLISH
+		CA	0
+XAD2		INDEX	INDEXLOC
+		ADS	X1		# IGNORING OVERFLOWS.
+		TCF	DANZIG
+
+INCR		TC	TAGSUB		# INCREMENT INDEX REGISTER.
+		CA	POLISH
+		TCF	XAD2
+
+XSU		TC	15ADRERS	# SUBTRACT ERASABLE FROM INDEX REGISTER.
+		INDEX	POLISH
+		CS	0
+		TCF	XAD2
+
+TIX		TC	TAGSUB		# BRANCH AND DECREMENT ON INDEX.
+		INDEX	INDEXLOC
+		CS	S1
+		INDEX	INDEXLOC
+		AD	X1
+		EXTEND			# NO OPERATION IF DECREMENTED INDEX IS
+		BZMF	DANZIG		# NEGATIVE OR ZERO.
+
+DOTIXBR		INDEX	INDEXLOC
+		XCH	X1		# IGNORING OVERFLOWS.
+
+		TCF	GOTO		# DO THE BRANCH USING THE CADR IN POLISH.
+
+# Page 1194
+# SUBROUTINE TO CONVERT AN ERASABLE ADDRESS (11 BITS) TO AN EBANK SETTING AND SUBADDRESS.
+
+15ADRERS	CS	POLISH
+		AD	DEC45
+		CCS	A		# DOES THE ADDRESS POINT TO THE WORK AREA?
+		CA	FIXLOC		# YES.  ADD FIXLOC.  EBANK OK AS IS.
+		TCF	+5
+
+		CA	OCT1400		# NO. SET EBANK & MAKE UP SUBADDRESS.
+		XCH	POLISH
+		TS	EBANK
+		MASK	LOW8
+	+5	ADS	POLISH		# FALL INTO TAGSUB, AND RETURN VIA Q.
+
+# SUBROUTINE WHICH SETS THE ADDRESS OF THE SPECIFIED INDEX IN INDEXLOC.  (ACTUALLY, THE ADDRESS -38D.)
+
+TAGSUB		CA	FIXLOC
+		TS	INDEXLOC
+
+		CCS	CYR		# BIT 15 SPECIFIES INDEX.
+		INCR	INDEXLOC	# 0 MEANS USE X2.
+		TC	Q
+		TC	Q		# 1 FOR X1.
+
+# Page 1195
+# MISCELLANEOUS OPERATION CODES WITH DIRECT ADDRESSES.  INCLUDED HERE ARE:
+#	1.	ITA	STORE CPRET (RETURN ADDRESS) IN ERASABLE.
+#	2.	CALL	CALL A SUBROUTINE, LEAVING RETURN IN QPRET.
+#	3.	RTB	RETURN TO BASIC LANGUAGE AT THE GIVEN ADDRESS.
+#	4.	BHIZ	BRANCH IF THE HIGHORDER OF MPAC IS ZERO (SINGLE PRECISION).
+#	5.	BOV	BRANCH ON OVERFLOW.
+#	6.	GOTO	SIMPLE SEQUENCE CHANGE.
+
+RTB/BHIZ	CCS	CYR
+RTB		CA	POLISH
+		TC	SWCALL 	-1	# SO A "TC Q" FROM ROUTINE LEADS TO DANZIG
+
+BHIZ		CCS	MPAC
+		TCF	DANZIG
+		TCF	GOTO
+		TCF	DANZIG
+		TCF	GOTO
+
+BOV(B)		CCS	OVFIND		# BRANCH ON OVERFLOW TO BASIC OR INTERP.
+		TCF	+2
+		TCF	DANZIG
+		TS	OVFIND
+		CCS	CYR
+		TCF	RTB		# IF BASIC.
+B5TOBB		OCT	360
+		TCF	GOTO
+
+# Page 1196
+BZE/GOTO	CCS	CYR		# SEE WHICH OP-CODE IS DESIRED.
+		TC	BRANCH		# DO BZE.
+		TCF	DANZIG
+		TCF	GOTO		# DO GOTO.
+		TCF	DANZIG
+
+BPL/BMN		CCS	CYR
+		TCF	BPL
+5B10		#DEC	5 	B+10	# SHIFTS OP CODE IN SWITCH INSTRUCTION ADR
+		DEC	5	B-4	# RSB 2009
+
+		TC	BRANCH		# DO BMN
+		TCF	DANZIG
+		TCF	DANZIG
+		TCF	GOTO		# ONLY IF NNZ.
+
+BPL		TC	BRANCH
+		TCF	GOTO		# IF POSITIVE OR ZERO.
+		TCF	GOTO
+		TCF	DANZIG
+
+CALL/ITA	CCS	CYR
+		TCF	CALL
+
+		TC	CCSHOLE
+		TC	15ADRERS	# STORE QPRET.  (TAGSUB AFTER 15ADRERS IS
+		INDEX	FIXLOC		# SLOW IN THIS CASE, BUT SAVES STORAGE.)
+		CA	QPRET
+		TCF	MSTORE1
+
+# Page 1197
+# THE FOLLOWING OPERATIONS ARE AVAILABLE FOR ALTERING AND TESTING INTERPRETATIVE SWITCHES:
+#	00	BONSET		SET A SWITCH AND DO A GOTO IF IT WAS ON.
+#	01	SETGO		SET A SWITCH AND DO A GOTO.
+#	02	BOFSET		SET A SWITCH AND DOA GOTO IF IT WAS OFF
+#	03	SET		SET A SWITCH.
+#	04	BONINV		INVERT A SWITCH AND BRANCH IF IT WAS ON.
+#	05	INVGO		INVERT A SWITCH AND DO A GOTO.
+#	06	BOFINV		INVERT A SWITCH AND BRANCH IF IT WAS OFF
+#	07	INVERT		INVERT A SWITCH.
+#	10	BONCLR		CLEAR A SWITCH AND BRANCH IF IT WAS ON.
+#	11	CLRGO		CLEAR A SWITCH AND DO A GOTO.
+#	12	BOFCLR		CLEAR A SWITCH AND BRANCH IF IT WAS OFF.
+#	13	CLEAR		CLEAR A SWITCH.
+#	14	BON		BRANCH IF A SWITCH WAS ON.
+#	16	BOFF		BRANCH IF A SWITCH WAS OFF.
+# THE ADDRESS SUPPLIED WITH THE SWITCH INSTRUCTION IS INTERPRETED AS FOLLOWS:
+#	BITS 1-4	SWITCH BIT NUMBER (1-15).
+#	BITS 5-8	SWITCH OPERATION NUMBER
+#	BITS 9-		SWITCH WORD NUMBER (UP TO 64 SWITCH WORDS).
+# THE ADDRESS ITSELF IS MADE UP BY THE YUL SYSTEM ASSEMBLER.  THE BRANCH INSTRUCTIONS REQUIRE TWO
+# ADDRESSES, THE SECOND TAKEN AS THE DIRECT (OR INDIRECT IF IN ERASABLE) ADDRESS OF THE BRANCH.
+
+SWITCHES	CAF	LOW4		# LEAVE THE SWITCH BIT IN SWBIT.
+		MASK	POLISH
+		INDEX	A
+		CAF	BIT15		# (NUMBER FROM LEFT TO RIGHT.)
+		TS	SWBIT
+
+		CAF	BIT7		# LEAVE THE SWITCH NUMBER IN SWWORD.
+		EXTEND
+		MP	POLISH
+		TS	SWWORD
+
+		INHINT			# DURING SWITCH CHANGE SO RUPT CAN USE TOO
+		INDEX	A		# LEAVE THE SWITCH WORD ITSELF IN L.
+		CA	STATE
+		TS	Q		# Q WILL BE USED AS A CHANNEL.
+# Page 1198
+		CAF	BIT11
+		EXTEND			# DISPATCH SWITCH BIT OPERATION AS IN BITS
+		MP	POLISH		# 7-8 OF POLISH.
+		MASK	B3TOB4		# GETS 4X2-BIT CODE.
+		INDEX	A
+		TCF	+1
+
+	+1	CA	SWBIT		# 00 -- SET SWITCH IN QUESTION.
+		EXTEND
+		ROR	QCHAN
+		TCF	SWSTORE
+
+	+5	CA	SWBIT		# 01 -- INVERT SWITCH.
+		EXTEND
+		RXOR	QCHAN
+		TCF	SWSTORE
+
+	+9D	CS	SWBIT		# 10 -- CLEAR.
+		MASK	Q
+SWSTORE		INDEX	SWWORD
+		TS	STATE		# NEW SWITCH WORD.
+
+# Page 1199
+	+13D	RELINT			# 11 -- NOOP.
+		CAF	BIT13
+		EXTEND			# DISPATCH SEQUENCE CHANGING OR BRANCING
+		MP	POLISH		# CODE.
+		MASK	B3TOB4
+		INDEX	A
+		TCF	+1		# ORIGINALLY STORED IN BITS 5-6
+
+	+1	CS	Q		# 00 -- BRANCH IF ON.
+TEST		MASK	SWBIT
+		CCS	A
+		TCF	SWSKIP
+
+	+5	TCF	SWBRANCH	# 01 -- GO TO.
+
+		TCF	SWSKIP		# HERE ONLY ON BIT 15.
+
+		TC	CCSHOLE
+		TC	CCSHOLE
+
+	+9D	CA	Q		# 10 -- BRANCH IF OFF.
+		TCF	TEST
+
+B3TOB4		OCT	0014
+SWSKIP		INCR	LOC
+
+SW/		EQUALS	SWITCHES
+
+	+13D	TCF	DANZIG		# 11 -- NOOP.
+ 
diff --git a/INTERPRETIVE_CONSTANT.s b/INTERPRETIVE_CONSTANT.s
new file mode 100644
index 0000000..cbe7035
--- /dev/null
+++ b/INTERPRETIVE_CONSTANT.s
@@ -0,0 +1,81 @@
+# Copyright:	Public domain.
+# Filename:	INTERPRETIVE_CONSTANT.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	1100-1101
+# Mod history:	2009-05-25 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 1100
+		SETLOC	INTPRET1
+		BANK
+
+		COUNT*	$$/ICONS
+DP1/4TH		2DEC	.25
+
+UNITZ		2DEC	0
+
+UNITY		2DEC	0
+
+UNITX		2DEC	.5
+
+ZEROVECS	2DEC	0
+
+		2DEC	0
+		
+		2DEC	0
+
+DPHALF		=	UNITX
+DPPOSMAX	OCT	37777
+		OCT	37777
+
+# Page 1101
+# INTERPRETIVE CONSTANTS IN THE OTHER HALF-MEMORY
+
+		SETLOC	INTPRET2
+		BANK
+
+		COUNT*	$$/ICONS
+ZUNIT		2DEC	0
+
+YUNIT		2DEC	0
+
+XUNIT		2DEC	.5
+
+ZEROVEC		2DEC	0
+
+		2DEC	0
+		
+		2DEC	0
+		
+		OCT	77777		# -0, -6, -12 MUST REMAIN IN THIS ORDER
+DFC-6		DEC	-6
+DFC-12		DEC	-12
+LODPMAX		2OCT	3777737777	# THESE TWO CONSTANTS MUST REMAIN
+
+LODPMAX1	2OCT	3777737777	# ADJACENT AND THE SAME FOR INTEGRATION
+
+ZERODP		=	ZEROVEC
+HALFDP		=	XUNIT
+
+
diff --git a/INTERPRETIVE_CONSTANTS.s b/INTERPRETIVE_CONSTANTS.s
new file mode 100644
index 0000000..2533abe
--- /dev/null
+++ b/INTERPRETIVE_CONSTANTS.s
@@ -0,0 +1,86 @@
+# Copyright:	Public domain.
+# Filename:	INTERPRETIVE_CONSTANTS.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:	1205-1206
+# Mod history:	2009-05-13 RSB	Adapted 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 1205
+		SETLOC	INTPRET1
+		BANK
+
+		COUNT	23/ICONS
+		
+DP1/4TH		2DEC	.25
+
+UNITZ		2DEC	0
+
+UNITY		2DEC	0
+
+UNITX		2DEC	.5
+
+ZEROVECS	2DEC	0
+
+		2DEC	0
+		
+		2DEC	0
+
+DPHALF		=	UNITX
+DPPOSMAX	OCT	37777
+		OCT	37777
+
+# Page 1206
+# INTERPRETIVE CONSTANTS IN THE OTHER HALF-MEMORY
+
+		SETLOC	INTPRET2
+		BANK
+
+		COUNT	14/ICONS
+		
+ZUNIT		2DEC	0
+
+YUNIT		2DEC	0
+
+XUNIT		2DEC	.5
+
+ZEROVEC		2DEC	0
+
+		2DEC	0
+		
+		2DEC	0
+
+		OCT	77777		# -0, -6, -12 MUST REMAIN IN THIS ORDER
+DEC-6		DEC	-6
+DEC-12		DEC	-12
+LODPMAX		2OCT	3777737777	# THESE TWO CONSTANTS MUST REMAIN
+
+LODPMAX1	2OCT	3777737777	# ADJACENT AND THE SAME FOR INTEGRATION
+
+ZERODP		=	ZEROVEC
+HALFDP		=	XUNIT
+
+
+
+
diff --git a/INTERRUPT_LEAD_INS.s b/INTERRUPT_LEAD_INS.s
new file mode 100644
index 0000000..c36ad41
--- /dev/null
+++ b/INTERRUPT_LEAD_INS.s
@@ -0,0 +1,128 @@
+# Copyright:	Public domain.
+# Filename:	INTERRUPT_LEAD_INS.agc
+# Purpose:	Part of the source code for Comanche, build 055.
+#		It is part of the source code for the Command Module's (CM)
+#		Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:	yaYUL
+# Reference:	pp. 131-132
+# Contact:	Ron Burkey <info@sandroid.org>,
+#  		Fabrizio Bernardini <fabrizio@spacecraft.it>
+# Website:	http://www.ibiblio.org/apollo.
+# Mod history:	09/05/09 FB	Transcription of Batch FB-1 Assignment.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#	Assemble revision 055 of AGC program Comanche by NASA
+#	2021113-051.  April 1, 1969.  
+#
+#	This AGC program shall also be referred to as Colossus 2A
+#
+#	Prepared by
+#			Massachussets Institute of Technology
+#			75 Cambridge Parkway
+#			Cambridge, Massachusetts
+#
+#	under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 131
+		SETLOC	4000 
+		
+		COUNT	02/RUPTS
+		
+		INHINT			# GO
+		CAF	GOBB
+		XCH	BBANK
+		TCF	GOPROG
+		
+		DXCH	ARUPT		# T6RUPT
+		EXTEND
+		DCA	T6LOC
+		DTCB
+		
+		DXCH	ARUPT		# T5RUPT
+		CS	TIME5
+		AD	.5SEC
+		TCF	T5RUPT
+		
+		DXCH	ARUPT		# T3RUPT
+		CAF	T3RPTBB
+		XCH	BBANK
+		TCF	T3RUPT
+		
+		DXCH	ARUPT		# T4RUPT
+		CAF	T4RPTBB
+		XCH	BBANK
+		TCF	T4RUPT
+		
+		DXCH	ARUPT		# KEYRUPT1
+		CAF	KEYRPTBB
+		XCH	BBANK
+		TCF	KEYRUPT1
+		
+		DXCH	ARUPT		# KEYRUPT2
+		CAF	MKRUPTBB
+		XCH	BBANK
+		TCF	MARKRUPT
+		
+		DXCH	ARUPT		# UPRUPT
+		CAF	UPRPTBB
+		XCH	BBANK
+		TCF	UPRUPT
+		
+		DXCH	ARUPT		# DOWNRUPT
+		CAF	DWNRPTBB
+		XCH	BBANK
+		TCF	DODOWNTM
+		
+		DXCH	ARUPT		# RADAR RUPT
+# Page 132
+		CAF	RDRPTBB
+		XCH	BBANK
+		TCF	VHFREAD
+		
+		DXCH	ARUPT		# HAND CONTROL RUPT
+		CAF	HCRUPTBB
+		XCH	BBANK
+		TCF	RESUME +3	# NOT USED
+		
+		EBANK=	LST1		# RESTART USES E0,E3
+GOBB		BBCON	GOPROG
+
+		EBANK=	LST1
+T3RPTBB		BBCON	T3RUPT
+
+		EBANK=	KEYTEMP1
+KEYRPTBB	BBCON	KEYRUPT1
+
+		EBANK=	MRKBUF1
+MKRUPTBB	BBCON	MARKRUPT
+
+UPRPTBB		=	KEYRPTBB
+
+		EBANK=	DNTMBUFF
+DWNRPTBB	BBCON	DODOWNTM
+
+		EBANK=	DATATEST
+RDRPTBB		BBCON	VHFREAD
+
+		EBANK=	TIME1
+HCRUPTBB	BBCON	RESUME		# NOT USED
+
+		EBANK=	DSRUPTSW
+T4RPTBB		BBCON	T4RUPT
+
+		EBANK=	TIME1
+T5RPTBB		BBCON	T5RUPT
+
+T5RUPT		EXTEND
+		BZMF	NOQBRSM
+		EXTEND
+		DCA	T5LOC
+		DTCB
+		
+		
+
diff --git a/JET_SELECTION_LOGIC.s b/JET_SELECTION_LOGIC.s
new file mode 100644
index 0000000..f59608f
--- /dev/null
+++ b/JET_SELECTION_LOGIC.s
@@ -0,0 +1,932 @@
+# Copyright:	Public domain.
+# Filename:	JET_SELECTION_LOGIC.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:	1039-1062
+# Mod history:	2009-05-13 RSB	Adapted 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 1039
+		BANK	21
+		SETLOC	DAPS4
+		BANK
+		
+		COUNT	17/DAPJS
+		
+		EBANK=	KMPAC
+		
+# EXAMINE CHANNEL 31 FOR TRANSLATION COMMANDS
+
+JETSLECT	LXCH	BANKRUPT
+		CAF	DELTATT3	# = 60 MS  RESET TO EXECUTIVE PHASE1
+		AD	T5TIME
+		TS	TIME5
+		TCF	+3
+		CAF	DELATT20	# = 20 MS  TO ASSURE A T5RUPT
+		TS	TIME5
+		CAF	=14MS		# RESET T6 TO INITIALIZE THE JET CHANNELS
+		TS	TIME6		# IN 14 MS
+		CAF	NEGMAX
+		EXTEND
+		WOR	CHAN13
+		EXTEND
+		QXCH	QRUPT
+		CAF	XLNMASK		# = 7700 OCT
+		EXTEND			# EXAMINE THE TRANSLATION
+		RXOR	CHAN31		# HAND CONTROLLER
+		MASK	XLNMASK
+		EXTEND
+		BZF	NOXLNCMD
+		TS	T5TEMP
+		EXTEND
+		MP	BIT9
+		MASK	THREE
+		TS	XNDX1		# AC QUAD  X-TRANSLATION INDEX
+		TS	XNDX2		# BD QUAD  X-TRANSLATION INDEX
+		CA	T5TEMP
+		EXTEND			# 1 = + XLN
+		MP	BIT7		# 2 = - XLN
+		MASK	THREE		# 3 = NO XLN
+		TS	YNDX		# Y-TRANSLATION INDEX
+		
+		CA	T5TEMP
+		EXTEND
+		MP	BIT5
+		MASK	THREE
+		TS	ZNDX		# Z-TRANSLATION INDEX
+		
+		CA	DAPDATR1	# SET ATTKALMN TO PICK UP FILTER GAINS FOR
+		MASK	BIT14		# TRANSLATIONS.
+		EXTEND			# CHECK DAPDATR1 BIT 14 FOR LEM ATTACHED.
+# Page 1040
+		BZF	NOLEM
+		CS	THREE		# IF LEM IS ON, SET ATTKALMN = -3
+		TCF	+2
+NOLEM		CS	TWO		# IF LEM IS OFF, SET ATTKALMN = -2.
+		TS	ATTKALMN
+		CCS	XTRANS		# (+, -1, 0)
+		TS	XNDX1		# USING BD-X  ZERO XNDX1
+		TCF	PWORD
+		TS	XNDX2		# USING AC-X  ZERO XNDX2
+		TCF	PWORD
+XLNMASK		OCT	7700
+
+DELTATT3	DEC	16378		# = 60 MS
+DELATT20	DEC	16382		# = 20 MS
+
+NOXLNCMD	TS	XNDX1		# ZERO ALL REQUESTS FOR TRANSLATION
+		TS	XNDX2
+		TS	YNDX
+		TS	ZNDX
+		
+# PITCH COMMANDS  TIMING(NO X-TRANS, NO QUAD FAILS) 32MCT
+
+PWORD		CCS	TAU1		# CHECK FOR PITCH COMMANDS
+		CAF	ONE
+		TCF	+2		#  0 = NO PITCH
+		CAF	TWO		# +1 =  + PITCH
+		TS	PINDEX		# +2 =  - PITCH
+		
+		CCS	RACFAIL		# FLAG FOR REAL AC QUAD FAILURES
+		TCF	AFAILP
+		TCF	TABPCOM		# 0 = NO REAL AC FAILURES
+		TCF	CFAILP		# + = A QUAD FAILED
+		TCF	TABPCOM		# - = C QUAD FAILED
+					# IF FAILURES ARE PRESENT IGNORE
+					# X-TRANSLATIONS ON THIS AXIS
+					
+AFAILP		CAF	NINE		# IF FAILURE IS PRESENT 1JET OPERATION
+		TCF	TABPCOM +2	# IS ASSUMED.  IGNORE X-TRANSLATION
+CFAILP		CAF	TWELVE
+		TCF	TABPCOM +2
+		
+XLNNDX		DEC	0		# INDICES FOR TRANSLATION COMMANDS
+		DEC	3		# FOR USE IN TABLE LOOK UP
+		DEC	6
+		DEC	0
+		
+TWELVE		=	OCT14
+
+# TABLE LOOK UP FOR PITCH COMMANDS WITH AND WITHOUT X-TRANSLATION AND AC QUAD FAILURES PRESENT.
+# BITS 9, 10 CONTAIN THE NUMBER OF PITCH JETS USED TO PERFORM THE PITCH ROTATION
+# Page 1041
+
+TABPCOM		INDEX	XNDX1
+		CA	XLNNDX
+		AD	PINDEX
+		INDEX	A
+		CA	PYTABLE
+		MASK	PJETS		# =1417 OCT
+		TS	PWORD1
+		EXTEND
+		MP	BIT7
+		TS	NPJETS		# = NO. OF PITCH JETS
+		
+# YAW JET COMMANDS  TIMING(N X-TRANS, NO QUAD FAILURES)  32MCT
+
+YWORD		CCS	TAU2		# CHECK FOR YAW COMMANDS
+		CAF	ONE
+		TCF	+2
+		CAF	TWO
+		TS	YINDEX		# YAW ROTATION INDEX
+		
+		CCS	RBDFAIL		# FLAG FOR B OR D QUAD FAILURES
+		TCF	BFAILY		# 0 = NO BD FAILURE
+		TCF	TABYCOM		# + - B QUAD FAILED
+		TCF	DFAILY		# - = D QUAD FAILED
+		TCF	TABYCOM
+		
+BFAILY		CAF	NINE
+		TCF	TABYCOM +2
+DFAILY		CAF	TWELVE
+		TCF	TABYCOM +2
+		
+# Page 1042
+# TABLE FOR PITCH(YAW) COMMANDS
+# BITS 4,3,2,1 = PITCH, X-TRANSLATION JETS SELECTED
+# BITS    10,9 = NO. PITCH JETS USED TO PERFORM ROTATION
+# BITS 8,7,6,5 = YAW, X-TRANSLATION JETS SELECTED
+# BITS 12,11:  NO. YAW JETS USED TO PERFORM ROTATION
+
+					# ROT	TRANS	QUAD	BIAS
+PYTABLE		OCT	0		# 0	0		0
+		OCT	5125		# +	0		0
+		OCT	5252		# -	0		0
+		OCT	0231		# 0	+		3
+		OCT	2421		# +	+		3
+		OCT	2610		# -	+		3
+		OCT	0146		# 0	-		6
+		OCT	2504		# + 	-		6
+		OCT	2442		# -	-		6
+		OCT	0		# 0		A(B)	9
+		OCT	2421		# +		A(B)	9
+		OCT	2442		# -		A(B)	9
+		OCT	0		# 0		C(D)	12
+		OCT	2504		# +		C(D)	12
+		OCT	2610		# -		C(D)	12
+		
+# MASKS FOR PITCH AND YAW COMMANDS
+
+PJETS		OCT	1417
+YJETS		OCT	6360
+
+# TABLE LOOK UP FOR YAW COMMANDS WITH AND WITHOUT X-TRANSLATION AND AC QUAD FAILURES PRESENT
+# BITS 11, 12 CONTAIN THE NUMBER OF YAW JETS USED TO PERFORM THE YAW ROTATION
+
+TABYCOM		INDEX	XNDX2
+		CA	XLNNDX
+		AD	YINDEX
+		INDEX	A
+		CA	PYTABLE
+		MASK	YJETS		# = 6360 OCT
+		TS	YWORD1
+		EXTEND
+		MP	BIT5
+		TS	NYJETS		# NO. OF YAW JETS USED TO PERFORM ROTATION
+
+# Page 1043
+# ROLL COMMANDS  TIMING(NO Y,Z TRANS, NO QUAD FAILS)  45MCT
+
+RWORD		CCS	TAU		# CHECK FOR ROLL COMMANDS
+		CAF	ONE
+		TCF	+2
+		CAF	TWO
+		TS	RINDEX
+		
+		CCS	ACORBD		# FLAG FOR AC OR BD QUAD SELECTION FOR
+		TCF	BDROLL		# ROLL COMMANDS
+		TCF	BDROLL		# +, +0 = BD ROLL
+		TCF	+1		# -, -0 = AC ROLL
+		
+ACROLL		CCS	RACFAIL		# CHECK FOR REAL FAILURES
+		TCF	RAFAIL		# ON AC QUADS
+		TCF	RXLNS
+		TCF	RCFAIL
+		TCF	RXLNS
+		
+RAFAIL		CAF	NINE		# QUAD FAILURE WILL GET
+		TCF	TABRCOM		# 1-JET OPERATION
+RCFAIL		CAF	TWELVE
+		TCF	TABRCOM
+		
+XLN1NDX		DEC	0
+		DEC	1		# INDICES FOR TRANSLATION
+		DEC	2
+		DEC	0
+		
+# TABLE LOOK UP FOR AC-ROLL COMMANDS WITH AND WITHOUT Y-TRANSLATION AND ACQUAD FAILURES PRESENT
+# BITS 9,10,11 CONTAIN THE MAGNITUDE AND DIRECTION OF THE ROLL
+
+RXLNS		INDEX	YNDX		# NO AC QUAD FAILURES
+		CA	XLNNDX		# INCLUDE +,-,0, Y-TRANSLATION
+TABRCOM		AD	RINDEX
+		INDEX	A
+		CA	RTABLE
+		MASK	ACRJETS		# = 3760 OCT
+		TS	RWORD1
+		
+# CHECK FOR Z-TRANSLATIONS ON BD
+
+BDZCHECK	CA	ZNDX
+		EXTEND
+		BZMF	NOBDZ		# NO Z-TRANSLATION
+		
+# Page 1044
+# TABLE LOOK UP FOR BD Z-TRANSLATION WITH AND WITHOUT REAL BD QUAD FAILURES.  Z-TRANSLATION WILL BE POSS-
+# IBLE AS LONG AS ROLL COMMANDS CAN BE SATISFIED WITH THE AC ROLL JETS.  CRITERION:  IF THE RESULTANT NET ROLL
+# COMMANDS = 0 (WITH Z-TRANSLATION) AND IF TAU = 0, THEN INCLUDE THE BD Z-TRANSLATION COMMANDS.  IF THE RESULTANT
+# ROLL COMMAND = 0, AND IF TAU NZ, THEN IGNORE THE BD Z-TRANSLATION
+
+		CCS	RBDFAIL
+		CAF	THREE
+		TCF	+2
+		CAF	SIX
+		INDEX	ZNDX
+		AD	XLN1NDX
+		INDEX	A
+		CA	YZTABLE
+		MASK	BDZJETS		# = 3417 OCT
+		AD	RWORD1		# ADD TO ROLL COMMANDS
+		TS	T5TEMP		# IF POSSIBLE.  MUST CHECK TAU FIRST
+		
+		EXTEND
+		MP	BIT7		# DETERMINE THE NET ROLL COMMAND WITH
+		AD	=-4		# Z-TRANSLATION ADDED ON
+		TS	NRJETS		# NET NO. OF +,- ROLL JETS ON
+		EXTEND
+		BZF	TAUCHECK
+		
+ACRBDZ		CA	T5TEMP		# Z-TRANSLATION ACCEPTED EVEN THO WE MAY
+		TS	RWORD1		# HAVE INTRODUCED AN UNDESIRABLE ROLL
+		TCF	ROLLTIME	# BRANCH TO JET ON-TIME CALCULATIONS
+		
+TAUCHECK	CCS	TAU
+		TCF	NOBDZ
+		TCF	ACRBDZ
+		TCF	NOBDZ
+		TCF	ACRBDZ
+		
+NOBDZ		CA	RWORD1		# Z-TRANSLATION NOT ACCEPTED
+		EXTEND
+		MP	BIT7
+		AD	=-2
+		TS	NRJETS
+		TCF	ROLLTIME	# BRANCH TO JET ON-TIME CALCULATION
+		
+# Page 1045
+# BD QUAD SELECTION FOR ROLL COMMANDS
+
+BDROLL		CCS	RBDFAIL
+		TCF	RBFAIL
+		TCF	RZXLNS
+		TCF	RDFAIL
+		TCF	RZXLNS
+RBFAIL		CAF	NINE
+		TCF	TABRZCMD
+RDFAIL		CAF	TWELVE
+		TCF	TABRZCMD
+		
+RZXLNS		INDEX	ZNDX		# NO BD FAILURES
+		CA	XLNNDX		# +,-,0 Z-TRANSLATION PRESENT
+TABRZCMD	AD	RINDEX
+		INDEX	A
+		CA	RTABLE
+		MASK	BDRJETS		# = 34017 OCT
+		TS	RWORD1
+		
+ACYCHECK	CA	YNDX		# ANY Y-TRANSLATION
+		EXTEND
+		BZF	NOACY		# NO Y-TRANSLATION
+		CCS	RACFAIL
+		CAF	THREE
+		TCF	+2
+		CAF	SIX
+		INDEX	YNDX
+		AD	XLN1NDX
+		INDEX	A
+		CA	YZTABLE
+		MASK	ACYJETS		# = 34360 OCT
+		AD	RWORD1
+		TS	T5TEMP
+		EXTEND			# FOR EXPLANATION SEE CODING ON RTABLE
+		MP	BIT4
+		AD	=-4
+		TS	NRJETS		# NO. OF NET ROLL JETS
+		EXTEND
+		BZF	TAUCHCK		# IF NRJETS = 0
+		
+BDRACZ		CA	T5TEMP		# Y-TRANSLATION ACCEPTED
+		TS	RWORD1
+		TCF	ROLLTIME	# BRANCH TO JET ON-TIME CALCULATIONS
+		
+TAUCHCK		CCS	TAU
+		TCF	NOACY
+		TCF	BDRACZ
+		TCF	NOACY
+		TCF	BDRACZ
+		
+# Page 1046
+NOACY		CA	RWORD1		# Y-TRANSLATION NOT ACCEPTED
+		EXTEND
+		MP	BIT4
+		AD	=-2
+		TS	NRJETS
+		TCF	ROLLTIME
+		
+# Page 1047
+# 				TABLE FOR ROLL, Y AND Z-TRANSLATION COMMANDS
+#
+# EITHER AC OR BD ROLL MAY BE SELECTED.  IF AC ROLL IS SELECTED, Y-TRANSLATIONS MAY BE SATISFIED SIMULTANEOUSLY
+# PROVIDED THAT THERE ARE NO AC QUAD FAILURES.  IF THERE ARE AC FAILURES, Y-TRANSLATION COMMANDS WILL BE IGNORED,
+# IN WHICH CASE THE ASTRONAUT SHOULD SWITCH TO BD ROLL.
+#
+# IF BDROLL IS SELECTED, Z-TRANSLATIONS MAY BE SATISFIED SIMULTANEOUSLY PROVIDED THAT THERE ARE NO BD QUAD
+# FAILURES.  IF THERE ARE BD FAILURES, Z-TRANSLATION COMMANDS WILL BE IGNORED, IN WHICH CASE THE ASTRONAUT SHOULD
+# SWITCH TO AC ROLL.
+#
+# NOTE THAT IF ONE QUAD FAILS (E.G. B FAILED), Z-TRANSLATION IS STILL POSSIBLE AND THAT THE UNDESIREABLE ROLL
+# INTRODUCED BY THIS TRANSLATION WILL BE COMPENSATED BY THE TWO AC ROLL JETS ACTUATED BY THE AUTOPILOT LOGIC.
+#
+# 					   WORD MAKE UP....RTABLE
+#
+# TWO WORDS, CORRESPONDING TO AC OR BD ROLL SELECTION, HAVE BEEN COMBINED INTO ONE TABLE.  THE WORD CORRESPONDING
+# TO AC ROLL HAS THE FOLLOWING INTERPRETATION:
+#
+#	BITS 9,10,11 ARE CODED TO GIVE THE NET ROLL TORQUE FOR THE WORD SELECTED.  THE CODING IS:
+#
+#		BIT NO. 11  10   9		NO. OF ROLL JETS
+#
+#			 0   0   0			-2
+#			 0   0   1			-1
+#			 0   1   0			 0
+#			 0   1   1			+1
+#			 1   0   0			+2
+#
+# THIS WORD MAY THEN BE ADDED TO THE WORD SELECTED FROM THE YZ-TRANSLATION TABLE, WHICH HAS THE SAME TYPE OF
+# CODING AS ABOVE, AND THE NET ROLL DETERMINED BY SHIFTING THE RESULTANT WORD RIGHT 8 PLACES AND SUBTRACTING FOUR.
+#
+# THE WORD CORRESPONDING TO THE BD ROLL HAS A SIMILAR INTEPRETATION, EXCEPT THAT BITS 12, 13, 14 ARE CODED
+# (AS ABOVE) TO GIVE THE NET ROLL TORQUE.
+
+					# ROLL 		TRANS		QUADFAIL	BIAS
+					
+RTABLE		OCT	11000		#   0						  0
+		OCT	22125		#   +						  0
+		OCT	00252		#   -						  0
+		OCT	11231		#   0		+Y(+Z)				  3
+		OCT	15421		#   +		+Y(+Z)				  3
+		OCT	04610		#   -		+Y(+Z)				  3
+		OCT	11146		#   0		-Y(-Z)				  6
+		OCT	15504		#   +		-Y(-Z)				  6
+		OCT	04442		#   -		-Y(-Z)				  6
+		OCT	11000		#   0				  A(B)		  9
+		OCT	15504		#   +				  A(B)		  9
+		OCT	04610		#   -				  A(B)		  9
+		OCT	11000		#   0				  C(D)		 12
+		OCT	15421		#   +				  C(D)           12
+		OCT	04442		#   -				  C(D)		 12
+
+# Page 1048
+# RTABLE MASKS:
+
+ACRJETS		OCT	03760
+BDRJETS		OCT	34017
+
+# Page 1049
+#					 Y, Z TRANSLATION TABLE
+#
+# ONCE AC OR BD ROLL IS SELECTED THE QUAD PAIR WHICH IS NOT BEING USED TO SATISFY THE ROLL COMMANDS MAY BE
+# USED TO SATISFY THE REMAINING TRANSLATION COMMANDS.  HOWEVER, WE MUST MAKE SURE THAT ROLL COMMANDS ARE SATISFIED
+# WHEN THEY OCCUR.  THEREFORE, THE Y-Z TRANSLATIONS FROM THIS TABLE WILL BE IGNORED IF THE NET ROLL TORQUE OF THE
+# COMBINED WORD IS ZERO AND THE ROLL COMMANDS ARE NON-ZERO.  THIS SITUATION WOULD OCCUR, FOR EXAMPLE, IF WE EN-
+# COUNTER SIMULTANEOUS +R +Y -Z COMMANDS AND A QUAD D FAILURE WHILE USING AC FOR ROLL.
+#
+# TO FACILITATE THE LOGIC, THE Y-Z TRANSLATION TABLE HAS BEEN CODED IN A MANNER SIMILAR TO THE ROLL TABLE
+# ABOVE.
+#
+# BITS 9,10,11 ARE CODED TO GIVE THE NET ROLL TORQUE INCURRED BY Z-TRANSLATIONS.  THE WORD SELECTED CAN THEN BE
+# ADDED TO THE AC-ROLL WORD AND THE RESULTANT ROLL TORQUE DETERMINED FROM THE COMBINED WORD.  SIMILARLY BITS
+# 12,13,14 ARE CODED TO GIVE THE NET ROLL TORQUE INCURRED BY Y-TRANSLATIONS WHEN BD-ROLL IS SELECTED.
+
+					# TRANSLATION	QUADFAIL	BIAS
+					#
+YZTABLE		OCT	11000		# 	0			0
+		OCT	11231		#    +Z(+Y)			0
+		OCT	11146		#    -Z(-Y)			0
+		OCT	11000		#	0	  B(A)		3
+		OCT	04610		#    +Z(+Y)	  B(A)		3
+		OCT	15504		#    -Z(-Y)	  B(A)		3
+		OCT	11000		#  	0	  D(C)		6
+		OCT	15421		#    +Z(+Y)	  D(C)		6
+		OCT	04442		#    -Z(-Y)	  D(C)		6
+		
+# YZ-TABLE MASKS:
+
+BDZJETS		OCT	03417
+ACYJETS		OCT	34360
+
+# ADDITIONAL CONSTANTS
+
+=-2		=	NEG2
+=-4		=	NEG4
+
+# Page 1050
+# 					CALCULATION OF JET ON-TIMES
+#
+# THE ROTATION COMMANDS (TAU'S), WHICH WERE DETERMINED FROM THE JET SWITCHING LOGIC ON THE BASIS OF SINGLE JET
+# OPERATION, MUST NOW BE UPDATED BY THE ACTUAL NUMBER OF JETS TO BE USED IN SATISFYING THESE COMMANDS.  TAU MUST
+# ALSO BE DECREMENTED ACCORDING TO THE EXPECTED TORQUE GENERATED BY THE NEW COMMANDS ACTING OVER THE NEXT T5 
+# INTERVAL.
+#
+# IN ORDER TO MAINTAIN ACCURATE KNOWLEDGE OF VEHICLE ANGULAR RATES, WE MUST ALSO PROVIDE EXPECTED FIRING TIMES
+# (DFT'S, ALSO IN TERMS OF 1-JET OPERATION) FOR THE RATE FILTER.
+#
+# NOTE THAT TRANSLATIONS CAN PRODUCE ROTATIONS EVEN THOUGH NO ROTATIONS WERE CALLED FOR.  NEVERTHELESS, WE MUST
+# UPDATE DFT.
+#
+# WHEN THE ROTATIONS HAVE FINISHED, WE MUST PROVIDE CHANNEL INFORMATION TO THE T6 PROGRAM TO CONTINUE ON WITH
+# THE TRANSLATIONS.  THIS WILL BE DONE IN THE NEXT SECTION.  HOWEVER, TO INSURE THAT JETS ARE NOT FIRED FOR LESS
+# THAN A MINIMUM IMPULSE (14MS), ALL JET CHANNEL COMMANDS WILL BE HELD FIXED FROM THE START OF THE T5 PROGRAM FOR
+# AT LEAST 14MS UNTIL THE INITIALIZATION OF NEW COMMANDS.  MOREOVER, A 14MS ON-TIME WILL BE ADDED TO ANY ROTATIONAL
+# COMMANDS GENERATED BY THE MANUAL CONTROLS OR THE JET SWITCHING LOGIC, AND ALL TRANSLATION COMMANDS WILL BE
+# ACTIVE FOR AT LEAST ONE CYCLE OF THE T5 PROGRAM (.1SEC)
+
+# PITCH JET ON-TIME CALCULATION
+
+PITCHTIM	CCS	TAU1
+		TCF	PTAUPOS
+		TCF	+2
+		TCF	PTAUNEG
+		TS	DFT1		# NO PITCH ROTATION
+		TCF	PBYPASS		# COMMANDS
+		
+PTAUNEG		CS	NPJETS
+		TS	NPJETS
+PTAUPOS		CA	TAU1
+		EXTEND
+		INDEX	NPJETS
+		MP	NJET
+		TS	BLAST1
+		AD	=-.1SEC
+		EXTEND
+		BZMF	AD14MSP
+		INDEX	NPJETS
+		CA	DFTMAX		# THE PITCH ON-TIME IS GREATER THAN .1 SEC
+		TS	DFT1
+		COM
+		ADS	TAU1		# UPDATE TAU1
+		CAF	=+.1SEC		# LIMIT THE LENGTH OF PITCH ROTATION
+		TS	BLAST1		# COMMANDS TO 0.1 SEC SO THAT ONLY
+		TCF	ASMBLWP		# X-TRANSLATIONS WILL CONTINUE ON SWITCH
+					# OVER TO TVC
+AD14MSP		CS	BLAST1		# SEE IF JET ON TIME IS LESS THAN
+		AD	=14MS		# MINIMUM IMPULSE TIME
+		EXTEND
+		BZMF	PBLASTOK	# IF SO LIMIT MINIMUM ON TIME TO 14 MS
+		CAF	=14MS
+# Page 1051
+		TS	BLAST1
+PBLASTOK	CA	BLAST1
+		EXTEND			# THE PITCH COMMANDS WILL BE COMPLETED
+		MP	NPJETS		# WITHIN THE TS-CYCLE TIME
+		LXCH	DFT1		# FOR USE IN UPDATING RATE FILTER
+		TS	TAU1		# ZERO TAU1 (ACC CONTAINS ZERO)
+		TCF	ASMBLWP
+		
+# Page 1052
+# YAW JET ON-TIME CALCULATION
+
+YAWTIME		CCS	TAU2
+		TCF	YTAUPOS
+		TCF	+2
+		TCF	YTAUNEG
+		TS	DFT2		# NO YAW ROTATION COMMANDS
+		TCF	YBYPASS
+		
+YTAUNEG		CS	NYJETS
+		TS	NYJETS
+YTAUPOS		CA	TAU2
+		EXTEND
+		INDEX	NYJETS
+		MP	NJET
+		TS	BLAST2
+		AD	=-.1SEC
+		EXTEND
+		BZMF	AD14MSY
+		INDEX	NYJETS
+		CA	DFTMAX		# YAW COMMANDS WILL LAST LONGER THAN .1SEC
+		TS	DFT2
+		COM
+		ADS	TAU2		# DECREMENT TAU2
+		CAF	=+.1SEC		# LIMIT THE LENGTH OF YAW ROTATION COMMAND
+		TS	BLAST2		# TO 0.1 SEC SO THAT ONLY X-TRANSLATION
+		TCF	ASMBLWY		# WILL CONTINUE ON SWITCH OVER TO TVC
+		
+AD14MSY		CS	BLAST2		# SEE IF JET ON-TIME LESS THAN
+		AD	=14MS		# MINIMUM IMPULSE TIME
+		EXTEND
+		BZMF	YBLASTOK	# IF SO, LIMIT MINIMUM ON-TIME TO 14 MS
+		CAF	=14MS
+		TS	BLAST2
+YBLASTOK	CA	BLAST2		# YAW COMMANDS WILL BE COMPLETED WITHIN
+		EXTEND			# THE T5CYCLE TIME
+		MP	NYJETS
+		LXCH	DFT2
+		TS	TAU2		# ZERO TAU2
+		TCF	ASMBLWY
+		
+# Page 1053
+# ROLL ON-TIME CALCULATION:
+
+ROLLTIME	CCS	TAU
+		TCF	RBLAST
+		TCF	+2
+		TCF	RBLAST
+		INDEX	NRJETS
+		CA	DFTMAX		# UPDATE DFT EVEN THO NO ROLL COMMANDS ARE
+		TS	DFT		# PRESENT
+		TCF	RBYPASS
+		
+		DEC	-480		# =-.3SEC
+		DEC	-320		# =-.2SEC
+=-.1SEC		DEC	-160		# =-.1SEC
+DFTMAX		DEC	0		# 0
+=+.1SEC		DEC	160		# =+.1SEC
+		DEC	320		# =+.2SEC
+		DEC	480		# =+.3SEC
+=14MS		DEC	23		# =14MS
+
+RBLAST		CA	TAU
+		EXTEND
+		INDEX	NRJETS
+		MP	NJET
+		TS	BLAST		# BLAST IS AN INTERMEDIATE VARIABLE
+					# USED IN DETERMINING THE JET ON-TIMES
+		AD	=-.1SEC
+		EXTEND
+		BZMF	AD14MSR
+		INDEX	NRJETS		# THE ROLL ROTATION WILL LAST LONGER
+		CA	DFTMAX		# THAN THE T5 CYCLE TIME
+		TS	DFT
+		COM
+		ADS	TAU
+		CAF	=+.1SEC		# LIMIT THE LENGTH OF ROLL ROTATION
+		TS	BLAST		# COMMANDS TO 0.1 SEC SO THAT ONLY Y-Z
+		TCF	ASMBLWR		# TRANSLATION COMMANDS CONTINUE
+		
+AD14MSR		CS	BLAST		# SEE IF THE JET ON-TIME LESS THAN
+		AD	=14MS		# MINIMUM IMPULSE TIME
+		EXTEND
+		BZMF	RBLASTOK
+		CAF	=14MS		# IF SO, LIMIT MINIMUM ON-TIME TO 14 MS
+		TS	BLAST
+RBLASTOK	CA	BLAST
+		EXTEND
+		MP	NRJETS
+		LXCH	DFT
+		TS	TAU		# ZERO TAU
+		TCF	ASMBLWR
+		
+# Page 1054
+		DEC	-.333333	# = -1/3
+		DEC	-.500000	# = -1.2
+		DEC	-.999999	# = -1 (NEGMAX)
+NJET		DEC	0
+		DEC	.999999		# = +1 (POSMAX)
+		DEC	.500000		# = +1/2
+		DEC	.333333		# = +1/3
+		
+# Page 1055
+# WHEN THE ROTATION COMMANDS ARE COMPLETED, IT IS NECESSARY TO REPLACE THESE COMMANDS BY NEW COMMANDS WHICH
+# CONTINUE ON WITH THE TRANSLATIONS IF ANY ARE PRESENT.
+#
+# IN THIS SECTION THESE NEW COMMANDS ARE GENERATED AND STORED FOR REPLACEMENT OF THE CHANNEL COMMANDS WHEN THE
+# CORRESPONDING ROTATIONS ARE COMPLETED.
+#
+# GENERATION OF THE SECOND PITCH(X-TRANS) WORD...PWORD2
+
+ASMBLWP		CCS	RACFAIL
+		TCF	FPX2		# IF FAILURE ON AC IGNORE X-TRANSLATION
+		TCF	+2
+		TCF	FPX2
+		INDEX	XNDX1
+		CA	XLNNDX
+		INDEX	A
+FPX2		CA	PYTABLE
+		MASK	PJETS
+		TS	PWORD2
+		TCF	YAWTIME
+		
+PBYPASS		CA	PWORD1		# THE T6 PROGRAM WILL LOAD PWORD2
+		TS	PWORD2		# UPON ENTRY
+		CAF	ZERO
+		TS	BLAST1		# THERE IS NO PWORD2
+		TCF	YAWTIME
+		
+# Page 1056
+# GENERATION OF THE SECOND ROLL (Y,Z) WORD (RWORD2)
+
+ASMBLWR		CCS	YNDX		# CHECK FOR Y-TRANS
+		TCF	ACBD2Y
+NO2Y		CAF	ZERO
+		TS	RWORD2
+		CCS	ZNDX		# CHECK FOR Z-TRANS
+		TCF	ACBD2Z
+NO2Z		CAF	ZERO
+		ADS	RWORD2
+		TCF	PITCHTIM	# RWORD2 ASSEMBLED
+		
+ACBD2Y		CCS	ACORBD
+		TCF	AC2Y		# CAN DO Y-TRANS
+		TCF	AC2Y
+		TCF	+1		# USING AC FOR ROLL
+		CCS	RACFAIL
+		TCF	NO2Y		# USING AC AND AC HAS FAILED
+		TCF	+2
+		TCF	NO2Y		# DITTO
+		
+		INDEX	YNDX		# NO FAILURES, CAN DO Y
+		CA	XLNNDX
+		INDEX	A
+		CA	RTABLE
+		MASK	ACRJETS
+		TCF	NO2Y 	+1
+		
+AC2Y		CCS	RACFAIL
+		CAF	THREE
+		TCF	+2
+		CAF	SIX
+		INDEX	YNDX
+		AD	XLN1NDX
+		INDEX	A
+		CA	YZTABLE
+		MASK	ACYJETS
+		TS	RWORD2
+		EXTEND
+		MP	BIT4
+		AD	=-2
+		TS	NRJETS
+		CS	BLAST
+		AD	=+.1SEC
+		EXTEND
+		MP	NRJETS
+		CA	L
+		ADS	DFT
+		TCF	NO2Y 	+2
+# Page 1057
+ACBD2Z		CCS	ACORBD
+		TCF	BDF2Z		# USING BD-ROLL
+		TCF	BDF2Z		# MUST CHECK FOR BD FAILURES
+		TCF	+1
+		CCS	RBDFAIL		# USING AC FOR ROLL, CAN DO Z-TRANS
+		CAF	THREE
+		TCF	+2
+		CAF	SIX
+		INDEX	ZNDX
+		AD	XLN1NDX
+		INDEX	A
+		CA	YZTABLE
+		MASK	BDZJETS
+		ADS	RWORD2
+		EXTEND
+		MP	BIT7
+		AD	=-2
+		TS	NRJETS
+		CS	BLAST
+		AD	=+.1SEC
+		EXTEND
+		MP	NRJETS
+		CA	L
+		ADS	DFT
+		TCF	PITCHTIM
+		
+BDF2Z		CCS	RBDFAIL
+		TCF	NO2Z		# USING BD-ROLL AND BD HAS FAILED
+		TCF	+2
+		TCF	NO2Z		# DITTO
+		INDEX	ZNDX
+		CA	XLNNDX
+		INDEX	A
+		CA	RTABLE
+		MASK	BDRJETS
+		TCF	NO2Z +1
+		
+RBYPASS		CA	RWORD1
+		TS	RWORD2
+		CAF	ZERO
+		TS	BLAST
+		TCF	PITCHTIM
+	
+# Page 1058	
+# GENERATION OF THE SECOND YAW (X-TRANS) WORD...YWORD2
+
+ASMBLWY		CCS	RBDFAIL
+		TCF	FYX2		# IF FAILURE ON BD IGNORE X-TRANSLATION
+		TCF	+2
+		TCF	FYX2
+		INDEX	XNDX2
+		CA	XLNNDX
+		INDEX	A
+FYX2		CA	PYTABLE
+		MASK	YJETS
+		TS	YWORD2
+		TCF	T6SETUP
+		
+YBYPASS		CA	YWORD1
+		TS	YWORD2
+		CAF	ZERO
+		TS	BLAST2
+
+# Page 1059
+#					SORT THE JET ON-TIMES
+#
+# AT THIS POINT ALL THE CHANNEL COMMANDS AND JET ON-TIMES HAVE BEEN DETERMINED.  IN SUMMARY THESE ARE:
+#
+#	RWORD1
+#	RWORD2		BLAST
+#
+#	PWORD1
+#	PWORD2		BLAST1
+#
+#	YWORD1
+#	YWORD2		BLAST2
+#
+# IN THIS SECTION THE JET ON-TIMES ARE SORTED AND THE SEQUENCE OF T6 INTERRUPTS IS DETERMINED.  TO FACILITATE
+# THE SORTING PROCESS AND THE T6 PROGRAM, THE VARIABLES BLAST, BLAST1, BLAST2, ARE RESERVED AS DOUBLE PRECISION
+# WORDS.  THE LOWER PART OF THESE WORDS CONTAIN A BRANCH INDEX ASSOCIATED WITH THE ROTATION AXIS OF THE HIGHER
+# ORDER WORD.
+
+T6SETUP		CAF	ZERO		# BRANCH INDEX FOR ROLL
+		TS	BLAST +1
+		CAF	FOUR		# BRANCH INDEX FOR PITCH
+		TS	BLAST1 +1
+		CAF	ELEVEN		# BRANCH INDEX FOR YAW
+		TS	BLAST2 +1
+		
+		CS	BLAST
+		AD	BLAST1
+		EXTEND
+		BZMF	DXCHT12		# T1 OR T2
+CHECKT23	CS	BLAST1
+		AD	BLAST2
+		EXTEND
+		BZMF	DXCHT23
+CALCDT6		CS	BLAST1
+		ADS	BLAST2
+		CS	BLAST
+		ADS	BLAST1		# END OF SORTING PROCEDURE
+		EXTEND			# RESET T5LOC TO BEGIN PHASE1
+		DCA	RCS2CADR
+		DXCH	T5LOC
+ENDJETS		CS	BIT1		# RESET BIT1 FOR INITIALIZATION OF
+		MASK	RCSFLAGS	# T6 PROGRAM
+		TS	RCSFLAGS
+		CS	ZERO		# RESET T5PHASE FOR PHASE1
+		TS	T5PHASE
+		TCF	RESUME		# RESUME INTERRUPTED PROGRAM
+		
+		EBANK=	KMPAC
+RCS2CADR	2CADR	RCSATT
+
+# Page 1060
+DXCHT12		DXCH	BLAST
+		DXCH	BLAST1
+		DXCH	BLAST
+		TCF	CHECKT23
+		
+DXCHT23		DXCH	BLAST1
+		DXCH	BLAST2
+		DXCH	BLAST1
+		CS	BLAST
+		AD	BLAST1
+		EXTEND
+		BZMF	+2
+		TCF	CALCDT6
+		DXCH	BLAST
+		DXCH	BLAST1
+		DXCH	BLAST
+		TCF	CALCDT6
+		
+# Page 1061
+# T6 PROGRAM AND CHANNEL SETUP
+
+		BANK	21
+		SETLOC	DAPS5
+		BANK
+		
+T6START		LXCH	BANKRUPT
+		EXTEND
+		QXCH	QRUPT
+		CCS	TIME6		# CHECK TO SEE IF TIME6 WAS RESET
+		TCF	RESUME		# AFTER T6RUPT OCCURRED (IN T5RUPT)
+		TCF	+2		# IF SO WAIT FOR NEXT T6RUPT BEFORE
+		TCF	RESUME		# TAKING ACTION
+		
+		CS	RCSFLAGS
+		MASK	BIT1		# IF BIT1 IS 0 RESET TO 1
+		EXTEND			# AND INITIALIZE CHANNEL
+		BZF	T6RUPTOR
+		ADS	RCSFLAGS
+		CA	RWORD1
+		EXTEND			# INITIALIZE CHANNELS 5,6 WITH WORD1
+		WRITE	CHAN6
+		CA	PWORD1
+		AD	YWORD1
+		EXTEND
+		WRITE	CHAN5
+		
+T6RUPTOR	CCS	BLAST
+		TCF	ZBLAST		# ZERO BLAST1
+		TCF	REPLACE		# REPLACE WORD1
+		TCF	+2
+		TCF	REPLACE
+T6L1		CCS	BLAST1
+		TCF	ZBLAST1
+		TCF	REPLACE1
+		TCF	+2
+		TCF	REPLACE1
+T6L2		CCS	BLAST2
+		TCF	ZBLAST2
+		TCF	REPLACE2
+		TCF	RESUME
+		TCF	REPLACE2
+		
+REPLACE		INDEX	BLAST +1
+		TC	REPLACER
+		CS	ONE
+		TS	BLAST
+		TCF	T6L1
+		
+REPLACE1	INDEX	BLAST1 +1
+# Page 1062
+		TC	REPLACER
+		CS	ONE
+		TS	BLAST1
+		TCF	T6L2
+		
+REPLACE2	INDEX	BLAST2 +1
+		TC	REPLACER
+		CS	ONE
+		TS	BLAST2
+		TCF	RESUME
+		
+REPLACER	CA	RWORD2		# INITIALIZE CHANNELS 5,6 WITH WORD2
+		EXTEND
+		WRITE	CHAN6
+		TC	Q
+		
+REPLACEP	CA	YJETS
+		EXTEND
+		RAND	CHAN5
+		AD	PWORD2
+		EXTEND
+		WRITE	CHAN5
+		TC	Q
+		
+REPLACEY	CA	PJETS
+		EXTEND
+		RAND	CHAN5
+		AD	YWORD2
+		EXTEND
+		WRITE	CHAN5
+		TC	Q
+
+ZBLAST		CAF	ZERO
+		XCH	BLAST
+		TCF	ENABT6
+ZBLAST1		CAF	ZERO
+		XCH	BLAST1
+		TCF	ENABT6
+ZBLAST2		CAF	ZERO
+		XCH	BLAST2
+ENABT6		TS	TIME6
+		CAF	NEGMAX
+		EXTEND
+		WOR	CHAN13		# ENABLE T6RUPT
+		TCF	RESUME
+		
+# END OF T6 INTERRUPT
+
+ENDSLECT	EQUALS
+
diff --git a/KALCMANU_STEERING.s b/KALCMANU_STEERING.s
new file mode 100644
index 0000000..2156c78
--- /dev/null
+++ b/KALCMANU_STEERING.s
@@ -0,0 +1,265 @@
+# Copyright:	Public domain.
+# Filename:	KALCMANU_STEERING.agc
+# Purpose:	Part of the source code for Comanche, build 055.
+#		It is part of the source code for the Command Module's (CM)
+#		Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:	yaYUL
+# Reference:	pp. 414-419
+# Contact:	Onno Hommes <ohommes@cmu.edu>.
+# Website:	www.ibiblio.org/apollo.
+# Mod history:	05/07/09 OH	Transcription Batch 1 Assignment 
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#	Assemble revision 055 of AGC program Comanche by NASA
+#	2021113-051.  April 1, 1969.  
+#
+#	This AGC program shall also be referred to as Colossus 2A
+#
+#	Prepared by
+#			Massachussets Institute of Technology
+#			75 Cambridge Parkway
+#			Cambridge, Massachusetts
+#
+#	under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further information.
+# Please report any errors to info@sandroid.org.
+
+# Page 414
+# GENERATION OF STEERING COMMANDS FOR DIGITAL AUTOPILOT FREE FALL MANEUVERS
+#
+# NEW COMMANDS WILL BE GENERATED EVERY ONE SECOND DURING THE MANEUVER
+
+		BANK	15
+		
+		SETLOC	KALCMON1
+		BANK
+		
+		EBANK=	BCDU
+		
+		COUNT	22/KALC
+		
+NEWDELHI	CS	HOLDFLAG	# SEE IF MANEUVER HAS BEEN INTERRUPTED
+		EXTEND			# BY ASTRONAUT.
+		BZMF	NOGO	-2	# IF SO, TERMINATE KALCMANU
+NEWANGL		TC	INTPRET
+		AXC,1	AXC,2
+			MIS		# COMPUTE THE NEW MATRIX FROM S/C TO
+			DEL		# STABLE MEMBER AXES
+		CALL
+			MXM3
+		VLOAD	STADR
+		STOVL	MIS +12D	# CALCULATE NEW DESIRED CDU ANGLES
+		STADR
+		STOVL	MIS +6D
+		STADR
+		STORE	MIS
+		AXC,1	CALL
+			MIS
+			DCMTOCDU	# PICK UP THE NEW CDU ANGLES FROM MATRIX
+		RTB	
+			V1STO2S
+		STORE	NCDU		# NEW CDU ANGLES
+		BONCLR	EXIT
+			CALCMAN2
+			MANUSTAT	# TO START MANEUVER
+		CAF	TWO		# 	   +0 OTHERWISE
+INCRDCDU	TS	KSPNDX
+		DOUBLE
+		TS	KDPNDX
+		INDEX	KSPNDX
+		CA	NCDU		# NEW DESIRED CDU ANGLES
+		EXTEND
+		INDEX	KSPNDX
+		MSU	BCDU		# INITIAL S/C ANGLE OR PREVIOUS DESIRED
+		EXTEND			# CDU ANGLES
+		MP	QUADROT
+		INDEX	KDPNDX
+		DXCH	DELCDUX		# ANGEL INCREMENTS TO BE ADDED TO
+# Page 415
+		INDEX	KSPNDX		# DCDU EVERY TENTH SEC
+		CA	NCDU		# BY LEM DAP
+		INDEX	KSPNDX
+		XCH	BCDU
+		INDEX	KDPNDX
+		TS	CDUXD
+		CCS	KSPNDX
+		TCF	INCRDCDU	# LOOP FOR THREE AXES
+		
+		RELINT		
+# COMPARE PRESENT TIME WTIH TIME TO TERMINATE MANEUVER
+
+TMANUCHK	TC	TIMECHK
+		TC	POSTJUMP
+		CADR	CONTMANU
+		
+		CAF	ONE		
+MANUSTAL	TC	WAITLIST
+		EBANK=	BCDU
+		2CADR	MANUSTOP
+		
+		RELINT
+		TCF	ENDOFJOB
+		
+		
+TIMECHK		EXTEND
+		DCS	TIME2
+		DXCH	TTEMP
+		EXTEND
+		DCA	TM
+		DAS	TTEMP
+		CCS	TTEMP
+		TC	Q
+		TCF	+2
+		TCF	2NDRETRN
+		CCS	TTEMP +1
+		TC	Q
+		TCF	MANUOFF
+		COM
+MANUOFF		AD	1SEC
+		EXTEND
+		BZMF	2NDRETRN
+		INCR	Q
+2NDRETRN	INCR	Q
+		INCR	Q
+		TC	Q
+
+		SETLOC	MANUSTUF
+		BANK
+# Page 416
+MANUSTAT	EXIT			# INITIALIZATION ROUTINE
+		EXTEND			# FOR AUTOMATIC MANEUVERS
+		DCA	TIME2
+		DAS	TM		# TM+T0    MANEUVER COMPLETION TIME
+		CS	1SEC
+		TS	L
+		CS	ZERO
+		DAS	TM		# (TM+T0)-1
+		INHINT
+		CS	ONE		# ENABLE AUTOPILOT TO PERFORM
+		TS	HOLDFLAG	# AUTOMATIC MANEUVERS
+		CS	RATEINDX	# SEE IF MANEUVERING AT HIGH RATE
+		AD	SIX
+		EXTEND
+		BZMF	HIGHGAIN
+		TCF	+4
+HIGHGAIN	CS	RCSFLAGS	# IF SO, SET HIGH RATE FLAG (BIT 15 OF
+		MASK	BIT15		# RCSFLAGS)
+		ADS	RCSFLAGS
+		DXCH	BRATE		# X-AXIS MANEUVER RATE
+		DXCH	WBODY
+		DXCH	BRATE +2	# Y-AXIS MANEUVER RATE
+		DXCH	WBODY1
+		DXCH	BRATE +4	# Z-AXIS MANEUVER RATE
+		DXCH	WBODY2
+		CA	BIASTEMP +1	# INSERT ATTITUDE ERROR BIASES
+		TS	BIAS		# INTO AUTOPILOT
+		CA	BIASTEMP +3
+		TS	BIAS1
+		CA	BIASTEMP +5
+		TS	BIAS2
+		CA	TIME1
+		AD	1SEC
+		XCH	NEXTIME
+		TC	POSTJUMP
+		CADR	INCRDCDU -1
+				
+CONTMANU	INHINT			# CONTINUE WITH UPDATE PROCESS
+		CS	TIME1		
+		AD	NEXTIME
+		CCS	A
+		AD	ONE
+		TCF	MANUCALL
+		AD	NEGMAX
+		COM
+MANUCALL	TC	WAITLIST
+		EBANK=	BCDU
+		2CADR	UPDTCALL
+		
+		RELINT
+# Page 417
+		CAF	1SEC		# INCREMENT TIME FOR NEXT UPDATE
+		ADS	NEXTIME
+		TCF	ENDOFJOB
+
+
+UPDTCALL	CAF	PRIO26		# CALL FOR UPDATE
+		TC	FINDVAC		# OF STEERING COMMANDS
+		EBANK=	BCDU
+		2CADR	NEWDELHI
+
+		TC	TASKOVER
+		
+# Page 418
+# ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS
+
+		SETLOC	KALCMON3
+		BANK
+	
+MANUSTOP	TC	STOPYZ
+		TC	IBNKCALL
+		CADR	LOADYZ
+
+ENDROLL		CA	CPHI
+		TS	CDUXD		# SET CDUXD TO THE COMMANDED OUTER GIMBAL
+		TC	STOPRATE
+ENDMANU		CA	ATTPRIO		# RESTORE USERS PRIO
+		TS	NEWPRIO
+		
+		CA	ZERO		# ZERO ATTCADR
+		DXCH	ATTCADR
+		
+		TC	SPVAC		# RETURN TO USER OF GOMANUR
+		
+		TC	TASKOVER
+		
+		SETLOC	STOPRAT
+		BANK
+STOPRATE	CAF	ZERO
+		TS	DELCDUX
+		TS	DELCDUX	+1	# ZERO ROLL INCREMENTAL ANGLES
+		TS	WBODY		# RATE
+		TS	WBODY +1
+		TS	BIAS		# BIAS
+		
+		CS	BIT15		# MAKE SURE HIGH RATE FLAG (BIT 15 OF
+		MASK	RCSFLAGS	# RCSFLAGS) IS RESET.
+		TS	RCSFLAGS
+		
+STOPYZ		CAF	ZERO
+		TS	DELCDUY		# ZERO PITCH, YAW
+		TS	DELCDUY	+1	# INCREMENTAL ANGLES
+		TS	DELCDUZ
+		TS	DELCDUZ	+1
+		TS	WBODY1		# RATES
+		TS	WBODY1 +1
+		TS	WBODY2
+		TS	WBODY2 +1
+		TS	BIAS1		# BIASES
+		TS	BIAS2
+		TC	Q
+		
+		SETLOC MANUSTUF
+		BANK
+
+# Page 419
+ZEROERROR	CA	CDUX		# PICK UP CDU ANGLES AND STORE IN
+		TS	CDUXD		# CDU DESIRED
+		CA	CDUY
+		TS	CDUYD
+		CA	CDUZ
+		TS	CDUZD
+		TC	Q
+
+		SETLOC	KALCMON1
+		BANK
+		
+LOADCDUD	CA	CPHI		# STORE TERMINAL ANGLES INTO
+		TS	CDUXD		# COMMAND ANGLES
+LOADYZ		CA	CTHETA
+		TS	CDUYD
+		CA	CPSI
+		TS	CDUZD
+		TC	Q
diff --git a/KALMAN_FILTER.s b/KALMAN_FILTER.s
new file mode 100644
index 0000000..0b9cac8
--- /dev/null
+++ b/KALMAN_FILTER.s
@@ -0,0 +1,101 @@
+# Copyright:	Public domain.
+# Filename:	KALMAN_FILTER.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	1470-1471
+# Mod history:	2009-05-27 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 1470
+		EBANK=	NO.UJETS
+		BANK	16
+		SETLOC	DAPS1
+		BANK
+
+		COUNT*	$$/DAP
+
+RATELOOP	CA	TWO
+		TS	DAPTEMP6
+		DOUBLE
+		TS	Q
+		INDEX	DAPTEMP6
+		CCS	TJP
+		TCF	+2
+		TCF	LOOPRATE
+		AD	-100MST6
+		EXTEND
+		BZMF	SMALLTJU
+		INDEX	DAPTEMP6
+		CCS	TJP
+		CA	-100MST6
+		TCF	+2
+		CS	-100MST6
+		INDEX	DAPTEMP6
+		ADS	TJP
+		INDEX	DAPTEMP6
+		CCS	TJP
+		CS	-100MS		# 0.1 AT 1
+		TCF	+2
+		CA	-100MS
+LOOPRATE	EXTEND
+		INDEX	DAPTEMP6
+		MP	NO.PJETS
+		CA	L
+		INDEX	DAPTEMP6
+		TS	DAPTEMP1	# SIGNED TORQUE AT 1 JET-SEC FOR FILTER
+		EXTEND
+		MP	BIT10		# RESCALE TO 32; ONE BIT ABOUT 2 JET-MSEC
+		EXTEND
+		BZMF	NEGTORK
+STORTORK	INDEX	Q		# INCREMENT DOWNLIST REGISTER.
+		ADS	DOWNTORK	#	NOTE:  NOT INITIALIZED; OVERFLOWS.
+
+		CCS	DAPTEMP6
+		TCF	RATELOOP +1
+		TCF	ROTORQUE
+SMALLTJU	CA	ZERO
+		INDEX	DAPTEMP6
+		XCH	TJP
+		EXTEND
+# Page 1471
+		MP	ELEVEN		# 10.24 PLUS
+		CA	L
+		TCF	LOOPRATE
+ROTORQUE	CA	DAPTEMP2
+		AD	DAPTEMP3
+		EXTEND
+		MP	1JACCR
+		TS	JETRATER
+		CS	DAPTEMP3
+		AD	DAPTEMP2
+		EXTEND
+		MP	1JACCQ
+		TS	JETRATEQ
+		TCF	BACKP
+-100MST6	DEC	-160
+
+NEGTORK		COM
+		INCR	Q
+		TCF	STORTORK
+		
+
diff --git a/KEYRUPT_UPRUPT.s b/KEYRUPT_UPRUPT.s
new file mode 100644
index 0000000..cfa480d
--- /dev/null
+++ b/KEYRUPT_UPRUPT.s
@@ -0,0 +1,136 @@
+# Copyright:    Public domain.
+# Filename:     KEYRUPT_UPRUPT.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 1449-1451
+# Contact:      Ron Burkey <info@sandroid.org>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-07 RSB	Adapted from Colossus249 file of the same
+#				name, and page images. Corrected various 
+#				typos in the transcription of program 
+#				comments, and these should be back-ported  
+#				to Colossus249.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 1449
+		BANK	14
+		SETLOC	KEYRUPT
+		BANK
+		COUNT*	$$/KEYUP
+
+KEYRUPT1	TS	BANKRUPT
+		XCH	Q
+		TS	QRUPT
+		TC	LODSAMPT	# TIME IS SNATCHED IN RUPT FOR NOUN 65.
+		CAF	LOW5
+		EXTEND
+		RAND	MNKEYIN		# CHECK IF KEYS 5M-1M ON
+KEYCOM		TS	RUPTREG4
+		CS	FLAGWRD5
+		MASK	BIT15
+		ADS	FLAGWRD5
+
+ACCEPTUP	CAF	CHRPRIO		# (NOTE: RUPTREG4 = KEYTEMP1)
+		TC	NOVAC
+		EBANK=	DSPCOUNT
+		2CADR	CHARIN
+
+		CA	RUPTREG4
+		INDEX	LOCCTR
+		TS	MPAC		# LEAVE 5 BIT KEY CODE IN MPAC FOR CHARIN
+		TC	RESUME
+
+# Page 1450
+# UPRUPT PROGRAM
+
+UPRUPT		TS	BANKRUPT
+		XCH	Q
+		TS	QRUPT
+		TC	LODSAMPT	# TIME IS SNATCHED IN RUPT FOR NOUN 65.
+		CAF	ZERO
+		XCH	INLINK
+		TS	KEYTEMP1
+		CAF	BIT3		# TURN ON UPACT LIGHT
+		EXTEND			# (BIT 3 OF CHANNEL 11)
+		WOR	DSALMOUT
+UPRPT1		CAF	LOW5		# TEST FOR TRIPLE CHAR REDUNDANCY
+		MASK	KEYTEMP1	# LOW5 OF WORD
+		XCH	KEYTEMP1	# LOW5 INTO KEYTEMP1
+		EXTEND
+		MP	BIT10		# SHIFT RIGHT 5
+		TS	KEYTEMP2
+		MASK	LOW5		# MID 5
+		AD	HI10
+		TC	UPTEST
+		CAF	BIT10
+		EXTEND
+		MP	KEYTEMP2	# SHIFT RIGHT 5
+		MASK	LOW5		# HIGH 5
+		COM
+		TC	UPTEST
+
+UPOK		CS	ELRCODE		# CODE IS GOOD.  IF CODE = `ERROR RESET',
+		AD	KEYTEMP1	# CLEAR UPLOCKFL (SET BIT4 OF FLAGWRD7 = 0)
+		EXTEND			# IF CODE DOES NOT = `ERROR RESET', ACCEPT
+		BZF	CLUPLOCK	# CODE ONLY IF UPLOCKFL IS CLEAR (=0).
+
+		CAF	BIT4		# TEST UPLOCKFL FOR 0 OR 1
+		MASK	FLAGWRD7
+		CCS	A
+		TC	RESUME		# UPLOCKFL = 1
+		TC	ACCEPTUP	# UPLOCKFL = 0
+
+CLUPLOCK	CS	BIT4		# CLEAR UPLOCKFL (I.E., SET BIT 4 OF
+		MASK	FLAGWRD7	# FLAGWRD7 = 0)
+		TS	FLAGWRD7
+		TC	ACCEPTUP
+
+					# CODE IS BAD
+TMFAIL2		CS	FLAGWRD7	# LOCK OUT FURTHER UPLINK ACTIVITY
+		MASK	BIT4		# (BY SETTING UPLOCKFL = 1) UNTIL
+		ADS	FLAGWRD7	# `ERROR RESET' IS SENT VIA UPLINK.
+		TC	RESUME
+UPTEST		AD	KEYTEMP1
+# Page 1451
+		CCS	A
+		TC	TMFAIL2
+HI10		OCT	77740
+		TC	TMFAIL2
+		TC	Q
+
+ELRCODE		OCT	22
+
+# `UPLINK ACTIVITY LIGHT' IS TURNED OFF BY .....
+#	1.	VBRELDSP
+#	2.	ERROR RESET
+#	3.	UPDATE PROGRAM (P27) ENTERED BY V70,V71,V72, AND V73.
+#
+# THE RECEPTION OF A BAD CODE (I.E., CCC FAILURE) LOCKS OUT FURTHER UPLINK ACTIVITY BY SETTING BIT4 OF FLAGWRD7 = 1.
+# THIS INDICATION WILL BE TRANSFERRED TO THE GROUND BY THE DOWNLINK WHICH DOWNLINKS ALL FLAGWORDS.
+# WHEN UPLINK ACTIVITY IS LOCKED OUT, IT CAN BE ALLOWED WHEN THE GROUND UPLINKS AND `ERROR RESET' CODE.
+# (IT IS RECOMMENDED THAT THE `ERROR LIGHT RESET' CODE IS PRECEEDED BY 16 BITS THE FIRST OF WHICH IS 1 FOLLOWED
+# BY 15 ZEROS.  THIS WILL ELIMINATE EXTRANEOUS BITS FROM INLINK WHICH MAY HAVE BEEN LEFT OVER FROM THE ORIGINAL
+# FAILURE).
+#
+# UPLINK ACTIVITY IS ALSO ALLOWED (UNLOCKED) DURING FRESH START WHEN FRESH START SETS BIT4 OF FLAGWRD7 = 0.
+
+
diff --git a/LAMBERT_AIMPOINT_GUIDANCE.s b/LAMBERT_AIMPOINT_GUIDANCE.s
new file mode 100644
index 0000000..cd367f4
--- /dev/null
+++ b/LAMBERT_AIMPOINT_GUIDANCE.s
@@ -0,0 +1,169 @@
+# Copyright:	Public domain.
+# Filename:	LAMBERT_AIMPOINT_GUIDANCE.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	651-653
+# Mod history:	2009-05-18 RSB	Transcribed from Luminary 099
+#				page images.
+#		2009-06-05 RSB	Corrected 4 typos.
+#		2009-06-07 RSB	Fixed a typo.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 651
+
+# GENERAL LAMBERT AIMPOINT GUIDANCE **
+# WRITTEN BY RAMA M AIYAWAR
+
+# PROGRAM P-31 DESCRIPTION **
+#
+# 1.	TO ACCEPT TARGETING PARAMETERS OBTAINED FROM A SOURCE EXTERNAL
+#	TO THE LEM AND COMPUTE THERE FROM THE REQUIRED-VELOCITY AND
+#	OTHER INITIAL CONDITIONS REQUIRED BY LM FOR DESIRED MANEUVER.
+#	THE TARGETING PARAMETERS ARE TIG (TIME OF IGNITION), TARGET 
+#	VECTOR (RTARG), AND THE TIME FROM TIG UNTIL THE TARGET IS
+#	REACHED (DELLT4), DESIRED TIME OF FLIGHT FROM RINIT TO RTARG.
+
+# ASSUMPTIONS **
+#
+# 1.	THE TARGET PARAMETERS MAY HAVE BEEN LOADED PRIOR TO THE
+#	EXECUTION OF THIS PROGRAM.
+# 2.	THIS PROGRAM IS APPLICABLE IN EITHER EARTH OR LUNAR ORBIT.
+# 3.	THIS PROGRAM IS DESIGNED FOR ONE-MAN OPERATION, AND SHOULD
+#	BE SELECTED BY THE ASTRONAUT BY DSKY ENTRY V37 E31.
+
+# SUBROUTINES USED **
+# 
+# MANUPARM, TTG/N35, R02BOTH, MIDGIM, DISPMGA, FLAGDOWN, BANKCALL,
+# GOTOPOOH, ENDOFJOB, PHASCHNG, GOFLASHR, GOFLASH.
+#
+# MANUPARM	CALCULATES APOGEE, PERIGEE ALTITUDES AND DELTAV DESIRED
+#		FOR THE MANEUVER.
+#
+# TTG/N35	CLOCKTASK - UPDATES CLOCK.
+#
+# MIDGIM	CALCULATES MIDDLE GIMBAL ANGLE FOR DISPLAY.
+#
+# R02BOTH	IMU - STATUS CHECK ROUTINE.
+
+# DISPLAYS USED IN P-31LM **
+#
+# V06N33	DISPLAY SOTRED TIG (IN HRS. MINS. SECS.)
+# V06N42	DISPLAY APOGEE, PERIGEE, DELTAV.
+# V16N35	DISPLAY TIME FROM TIG.
+# V06N45	TIME FROM IGNITION AND MIDDLE GIMBAL ANGLE.
+
+# ERASABLE INITIALIZATION REQUIRED **
+#
+# TIG		TIME OF IGNITION		DP	(B+28) CS.
+#
+# DELLT4	DESIRED TIME OF FLIGHT		DP	(B+28) CS
+#		FROM RINIT TO RTARG.
+#
+# RTARG		RADIUS VECTOR OF TARGET POSITION VECTOR
+#		RADIUS VECTOR SCALED TO (B+29)METERS IF EARTH ORBIT
+# Page 652
+#		RADIUS VECTOR SCALED TO (B+27)METERS IF MOON ORBIT
+
+# OUTPUT **
+#
+# HAPO		APOGEE ALTITUDE
+# HPER		PERIGEE ALTITUDE
+# VGDISP	MAG. OF DELTAV FOR DISPLAY, SCALING	B+7 M/CS EARTH
+# 		MAG. OF DELTAV FOR DISPLAY, SCALING	B+5 M/CS MOON
+# MIDGIM	MIDDLE GIMBAL ANGLE
+# XDELVFLG	RESETS XDELVFLG FOR LAMBERT VG COMPUTATIONS
+
+# ALARMS OR ABORTS	NONE **
+
+# RESTARTS ARE VIA GROUP 4 **
+
+		SETLOC	GLM
+		BANK
+		
+		EBANK=	SUBEXIT
+		
+		COUNT*	$$/P31
+P31		TC	P20FLGON
+		CAF	V06N33		# T16
+		TC	VNP00H
+		TC	INTPRET
+		CLEAR	DLOAD
+			UPDATFLG
+			TIG
+		STCALL	TDEC1		# INTEGRATE STATE VECTORS TO TIG
+			LEMPREC
+		VLOAD	SETPD
+			RATT
+			0D
+		STORE	RTIG
+		STOVL	RINIT
+			VATT
+		STORE	VTIG
+		STODL	VINIT
+			P30ZERO
+		PUSH	PDDL		# E4 AND NUMIT = 0
+			DELLT4
+		DAD	SXA,1
+			TIG
+			RTX1
+		STORE	TPASS4
+		SXA,2	CALL
+			RTX2
+			INITVEL
+		VLOAD	PUSH
+# Page 653
+			DELVEET3
+		STORE	DELVSIN
+		ABVAL	CLEAR
+			XDELVFLG
+		STCALL	VGDISP
+			GET.LVC
+		VLOAD	PDVL
+			RTIG
+			VIPRIME
+		CALL
+			PERIAPO1
+		CALL
+			SHIFTR1
+		CALL			# LIMIT DISPLAY TO 9999.9 N. MI.
+			MAXCHK
+		STODL	HPER
+			4D
+		CALL
+			SHIFTR1
+		CALL			# LIMIT DISPLAY TO 9999.9 N. MI.
+			MAXCHK
+		STORE	HAPO
+		EXIT
+		CAF	V06N81		# DELVLVC
+		TC	VNP00H
+		CAF	V06N42		# HAPO, HPER, VGDISP
+		TC	VNP00H
+		TC	INTPRET
+REVN1645	SET	CALL		# TRKMKCNT, TTOGO, +MGA
+			FINALFLG
+			VN1645
+		GOTO
+			REVN1645
+
+
+# *** END OF LEMP30S .103 ***
+
diff --git a/LANDING_ANALOG_DISPLAYS.s b/LANDING_ANALOG_DISPLAYS.s
new file mode 100644
index 0000000..2698cef
--- /dev/null
+++ b/LANDING_ANALOG_DISPLAYS.s
@@ -0,0 +1,536 @@
+# Copyright:	Public domain.
+# Filename:	LANDING_ANALOG_DISPLAYS.agc
+# Purpose:	Part of the source code for Luminary, build 099. It
+#		is part of the source code for the Lunar Module's
+#		(LM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:	yaYUL
+# Reference:	pp. 898-907
+# Contact:	Ron Burkey <info@sandroid.org>,
+#  		Fabrizio Bernardini <fabrizio@spacecraft.it>
+# Website:	http://www.ibiblio.org/apollo.
+# Mod history:	05/06/09 FB	Transcription Batch 4 Assignment.
+#
+# The contents of the "Luminary099" files, in general, are transcribed 
+# from scanned documents. 
+#
+#	Assemble revision 001 of AGC program Luminary099 by NASA
+#	2021112-061.  July 14, 1969.  
+#
+#	Prepared by
+#			Massachussets Institute of Technology
+#			75 Cambridge Parkway
+#			Cambridge, Massachusetts
+#
+#	under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 898
+		BANK	21
+		SETLOC	R10
+		BANK
+
+		EBANK=	UNIT/R/
+		COUNT*	$$/R10
+
+LANDISP		LXCH	PIPCTR1		# UPDATE TBASE2 AND PIPCTR SIMULTANEOUSLY.
+		CS	TIME1
+		DXCH	TBASE2
+
+		CS	FLAGWRD7	# IS LANDING ANALOG DISPLAYS FLAG SET?
+		MASK	SWANDBIT
+		CCS	A
+		TCF	DISPRSET	# NO.
+		CA	IMODES33	# BIT 7 = 0 (DO ALTRATE), =1 (DO ALT.)
+		MASK	BIT7
+		CCS	A
+		TCF	ALTOUT
+ALTROUT		TC	DISINDAT	# CHECK MODE SELECT SWITCH AND DIDFLG.
+		CS	IMODES33
+		MASK	BIT7
+		ADS	IMODES33	# ALTERNATE ALTITUDE RATE WITH ALTITUDE.
+		CAF	BIT2		# RATE COMMAND IS EXECUTED BEFORE RANGE.
+		EXTEND
+		WOR	CHAN14		# ALTRATE (BIT2 = 1), ALTITUDE (BIT2 = 0).
+ARCOMP		CA	RUNIT		# COMPUTE ALTRATE = RUNIT.VVECT M/CS *(-6).
+		EXTEND
+		MP	VVECT		# MULTIPLY X-COMPONENTS.
+		XCH	RUPTREG1	# SAVE SINGLE PRECISION RESULT M/CS*2(-6)
+		CA	RUNIT +1	# MULTIPLY Y-COMPONENTS.
+		EXTEND
+		MP	VVECT +1
+		ADS	RUPTREG1	# ACCUMULATE PARTIAL PRODUCTS.
+		CA	RUNIT +2	# MULTIPLY Z-COMPONENTS.
+		EXTEND
+		MP	VVECT +2
+		ADS	RUPTREG1	# ALTITUDE RATE IN M/CS *2(-6).
+		CA	ARCONV		# CONVERT ALTRATE TO BIT UNITS (.5FPS/BIT)
+		EXTEND
+		MP	RUPTREG1
+		DDOUBL
+		DDOUBL
+		XCH	RUPTREG1	# ALTITUDE RATE IN BIT UNITS*2(-14).
+		CA	DALTRATE	# ALTITUDE RATE COMPENSATION FACTOR.
+		EXTEND
+		MP	DT
+		AD	RUPTREG1
+		TS	ALTRATE		# ALTITUDE RATE IN BIT UNITS*2(-14).
+		CS	ALTRATE
+# Page 899
+		EXTEND			# CHECK POLARITY OF ALTITUDE RATE.
+		BZMF	+2
+		TCF	DATAOUT		# NEGATIVE -- SEND POS. PULSES TO ALTM REG.
+		CA	ALTRATE		# POSITIVE OR ZERO -- SET SIGN BIT = 1 AND
+		AD	BIT15		# SEND TO ALTM REGISTER.  *DO NOT SEND +0*
+DATAOUT		TS	ALTM		# ACTIVATE THE LANDING ANALOG DISPLAYS
+		CAF	BIT3
+		EXTEND
+		WOR	CHAN14		# BIT3 DRIVES THE ALT/ALTRATE METER.
+		TCF	TASKOVER	# EXIT
+
+ALTOUT		TC	DISINDAT	# CHECK MODE SELECT SWITCH AND DIDFLG.
+		CS	BIT7
+		MASK	IMODES33
+		TS	IMODES33	# ALTERNATE ALTITUDE RATE WITH ALTITUDE.
+		CS	BIT2
+		EXTEND
+		WAND	CHAN14
+		CCS	ALTBITS		# = -1 IF OLD ALT. DATA TO BE EXTRAPOLATED.
+		TCF	+4
+		TCF	+3
+		TCF	OLDDATA
+		TS	ALTBITS		# SET ALTBITS FROM -0 TO +0.
+		CS	ONE
+		DXCH	ALTBITS		# SET ALTBITS = -1 FOR SWITCH USE NEXT PASS.
+		DXCH	ALTSAVE
+		CA	BIT10		# NEW ALTITUDE EXTRAPOLATION WITH ALTRATE.
+		XCH	Q
+		LXCH	7		# ZL
+		CA	DT
+		EXTEND
+		DV	Q		# RESCALE DT*2(-14) TO *2(-9) TIME IN CS.
+		EXTEND
+		MP	ARTOA2		# .0021322 *2(+8)
+		TCF	OLDDATA +1	# RATE APPLIES FOR DT CS.
+
+ZDATA2		DXCH	ALTSAVE
+		TCF	NEWDATA
+OLDDATA		CA	ARTOA		# RATE APPLIES FOR .5 SEC. (4X/SEC. CYCLE)
+		EXTEND
+		MP	ALTRATE		# EXTRAPOLATE WITH ALTITUDE RATE.
+		DDOUBL
+		AD	ALTSAVE +1
+		TS	ALTSAVE +1
+		CAF	ZERO
+		ADS	ALTSAVE
+		CAF	POSMAX		# FORCE SIGN AGREEMENT ASSUMING A
+		AD	ONE		# NON-NEGATIVE ALTSAVE.
+		AD	ALTSAVE +1	# IF ALTSAVE IS NEGATIVE, ZERO ALTSAVE
+		TS	ALTSAVE +1	# AND ALTSAVE +1 AT ZERODATA.
+# Page 900
+		CAF	ZERO
+		AD	POSMAX
+		AD	ALTSAVE
+		TS	ALTSAVE		# POSSIBLY SKIP TO NEWDATA.
+		TCF	ZERODATA
+NEWDATA		CCS	ALTSAVE +1
+		TCF	+4
+		TCF	+3
+		CAF	ZERO		# SET NEGATIVE ALTSAVE +1 TO +0.
+		TS	ALTSAVE +1
+		CCS	ALTSAVE		# PROVIDE A 15 BIT UNSIGNED OUTPUT.
+		CAF	BIT15		# THE HI-ORDER PART IS +1 OR +0.
+		AD	ALTSAVE +1
+		TCF	DATAOUT		# DISPATCH UNSIGNED BITS TO ALTM REG.
+DISINDAT	EXTEND
+		QXCH	LADQSAVE	# SAVE RETURN TO ALTROUT +1 OR ALTOUT +1
+		CAF	BIT6
+		EXTEND			# WISHETH THE ASTRONAUT THE ANALOG
+		RAND	CHAN30		# DISPLAYS?  I.E.,
+		CCS	A		# IS THE MODE SELECT SWITCH IN PGNCS?
+		TCF	DISPRSET	# NO.  ASTRONAUT REQUESTS NO INERTIAL DATA
+		CS	FLAGWRD1	# YES.  CHECK STATUS OF DIDFLAG.
+		MASK	DIDFLBIT
+		EXTEND
+		BZF	SPEEDRUN	# SET.  PERFORM DATA DISPLAY SEQUENCE.
+		CS	FLAGWRD1	# RESET.  PERFORM INITIALIZATION FUNCTIONS.
+		MASK	DIDFLBIT
+		ADS	FLAGWRD1	# SET DIDFLAG.
+		CS	BIT7
+		MASK	IMODES33	# TO DISPLAY ALTRATE FIRST AND ALT. SECOND
+		TS	IMODES33
+		CS	FLAGWRD0	# ARE WE IN DESCENT TRAJECTORY?
+		MASK	R10FLBIT
+		EXTEND
+		BZF	TASKOVER	# NO
+		CAF	BIT8		# YES.
+		EXTEND
+		WOR	CHAN12		# SET DISPLAY INERTIAL DATA OUTBIT.
+		CAF	ZERO
+		TS	TRAKLATV	# LATERAL VELOCITY MONITOR FLAG
+		TS	TRAKFWDV	# FORWARD VELOCITY MONITOR FLAG
+		TS	LATVMETR	# LATVEL MONITOR METER
+		TS	FORVMETR	# FORVEL MONITOR METER
+		CAF	BIT4
+		TC	TWIDDLE
+		ADRES	INTLZE
+		TCF	TASKOVER
+INTLZE		CAF	BIT2
+		EXTEND
+		WOR	CHAN12		# ENABLE RR ERROR COUNTER.
+# Page 901
+		CS	IMODES33
+		MASK	BIT8
+		ADS	IMODES33	# SET INERTIAL DATA FLAG.
+		TCF	TASKOVER
+
+SPEEDRUN	CS	PIPTIME +1	# UPDATE THE VELOCITY VECTOR
+		AD	TIME1		# COMPUTE T - TN
+		AD	HALF		# CORRECT FOR POSSIBLE OVERFLOW OF TIME1.
+		AD	HALF
+		XCH	DT		# SAVE FOR LATER USE
+		CA	1SEC
+		TS	ITEMP5		# INITIALIZE FOR DIVISION LATER
+		EXTEND
+		DCA	GDT/2		# COMPUTE THE X-COMPONENT OF VELOCITY.
+		DDOUBL
+		DDOUBL
+		EXTEND
+		MP	DT
+		EXTEND
+		DV	ITEMP5
+		XCH	VVECT		# VVECT = G(T-TN) M/CS *2(-5)
+		EXTEND
+		DCA	V		# M/CS *2(-7)
+		DDOUBL			# RESCALE TO 2(-5)
+		DDOUBL
+		ADS	VVECT		# VVECT = VN + G(T-TN) M/CS *2(-5)
+		CA	PIPAX		# DELV CM/SEC *2(-14)
+		AD	PIPATMPX	# IN CASE PIPAX HAS BEEN ZEROED
+		EXTEND
+		MP	KPIP1(5)	# DELV M/CS *2(-5)
+		ADS	VVECT		# VVECT = VN + DELV + GN(T-TN) M/CS *2(-5)
+		EXTEND
+		DCA	GDT/2 +2	# COMPUTE THE Y-COMPONENT OF VELOCITY.
+		DDOUBL
+		DDOUBL
+		EXTEND
+		MP	DT
+		EXTEND
+		DV	ITEMP5
+		XCH	VVECT +1
+		EXTEND
+		DCA	V +2
+		DDOUBL
+		DDOUBL
+		ADS	VVECT +1
+		CA	PIPAY
+		AD	PIPATMPY
+		EXTEND
+		MP	KPIP1(5)
+		ADS	VVECT +1
+# Page 902
+		EXTEND
+		DCA	GDT/2 +4	# COMPUTE THE Z-COMPONENT OF VELOCITY.
+		DDOUBL
+		DDOUBL
+		EXTEND
+		MP	DT
+		EXTEND
+		DV	ITEMP5
+		XCH	VVECT +2
+		EXTEND
+		DCA	V +4
+		DDOUBL
+		DDOUBL
+		ADS	VVECT +2
+		CA	PIPAZ
+		AD	PIPATMPZ
+		EXTEND
+		MP	KPIP1(5)
+		ADS	VVECT +2
+
+		CAF	BIT3		# PAUSE 40 MS TO LET OTHER RUPTS IN.
+		TC	VARDELAY
+
+		CS	FLAGWRD0	# ARE WE IN DESCENT TRAJECTORY?
+		MASK	R10FLBIT
+		CCS	A
+		TCF	+2		# YES.
+		TC	LADQSAVE	# NO.
+
+		CA	DELVS		# HI X OF VELOCITY CORRECTION TERM.
+		AD	VVECT		# HI X OF UPDATED VELOCITY VECTOR.
+		TS	ITEMP1		# = VX - DVX M/CS *2(-5).
+		CA	DELVS +2	#    Y
+		AD	VVECT +1	#    Y
+		TS	ITEMP2		# = VY - DVY M/CS *2(-5)
+		CA	DELVS +4	#    Z
+		AD	VVECT +2	#    Z
+		TS	ITEMP3		# = VZ - DVZ M/CS *2(-5)
+		CA	ITEMP1		# COMPUTE VHY, VELOCITY DIRECTED ALONG THE
+		EXTEND			# Y-COORDINATE.
+		MP	UHYP		# HI X OF CROSS-RANGE HALF-UNIT VECTOR
+		XCH	RUPTREG1
+		CA	ITEMP2
+		EXTEND
+		MP	UHYP +2		# Y
+		ADS	RUPTREG1	# ACCUMULATE PARTIAL PRODUCTS.
+		CA	ITEMP3
+		EXTEND
+		MP	UHYP +4		# Z
+		ADS	RUPTREG1
+# Page 903
+		CA	RUPTREG1
+		DOUBLE
+		XCH	VHY		# VHY=VMP.UHYP M/CS*2(-5).
+		CA	ITEMP1		# NO COMPUTE VHZ, VELOCITY DIRECTED ALONG
+		EXTEND			# THE Z-COORDINATE.
+		MP	UHZP		# HI X OF DOWN-RANGE HALF-UNIT VECTOR.
+		XCH	RUPTREG1
+		CA	ITEMP2
+		EXTEND
+		MP	UHZP +2		# Y
+		ADS	RUPTREG1	# ACCUMULATE PARTIAL PRODUCTS.
+		CA	ITEMP3
+		EXTEND
+		MP	UHZP +4		# Z
+		ADS	RUPTREG1
+		CA	RUPTREG1
+		DOUBLE
+		XCH	VHZ		# VHZ = VMP.UHZP M/CS*2(-5).
+GET22/32	CAF	EBANK6		# GET SIN(AOG),COS(AOG) FROM GPMATRIX.
+		TS	EBANK
+		EBANK=	M22
+		CA	M22
+		TS	ITEMP3
+		CA	M32
+		TS	ITEMP4
+		CAF	EBANK7
+		TS	EBANK
+		EBANK=	UNIT/R/
+LATFWDV		CA	ITEMP4		# COMPUTE LATERAL AND FORWARD VELOCITIES.
+		EXTEND
+		MP	VHY
+		XCH	RUPTREG1
+		CA	ITEMP3
+		EXTEND
+		MP	VHZ
+		ADS	RUPTREG1	# = VHY(COS)AOG+VHZ(SIN)AOG M/CS *2(-5)
+		CA	VELCONV		# CONVERT LATERAL VELOCITY TO BIT UNITS.
+		EXTEND
+		MP	RUPTREG1
+		DDOUBL
+		XCH	LATVEL		# LATERAL VELOCITY IN BIT UNITS *2(-14).
+		CA	ITEMP4		# COMPUTE FORWARD VELOCITY.
+		EXTEND
+		MP	VHZ
+		XCH	RUPTREG1
+		CA	ITEMP3
+		EXTEND
+		MP	VHY
+		CS	A
+		ADS	RUPTREG1	# =VHZ(COS)AOG-VHY(SIN)AOG M/CS *2(-5).
+# Page 904
+		CA	VELCONV		# CONVERT FORWARD VELOCITY TO BIT UNITS.
+		EXTEND
+		MP	RUPTREG1
+		DDOUBL
+		XCH	FORVEL		# FORWARD VELOCITY IN BIT UNITS *2(-14).
+
+		CS	MAXVBITS	# ACC.=-199.9989 FT./SEC.
+		TS	ITEMP6		# -547 BIT UNITS (OCTAL) AT 0.5571 FPS/BIT
+
+		CAF	ONE		# LOOP TWICE.
+VMONITOR	TS	ITEMP5		# FORWARD AND LATERAL VELOCITY LANDING
+		INDEX	ITEMP5		#	ANALOG DISPLAYS MONITOR.
+		CCS	LATVEL
+		TCF	+4
+		TCF	LVLIMITS
+		TCF	+8D
+		TCF	LVLIMITS
+		INDEX	ITEMP5
+		CS	LATVEL
+		AD	MAXVBITS	# +199.9989 FT.SEC.
+		EXTEND
+		BZMF	CHKLASTY
+		TCF	LVLIMITS
+		INDEX	ITEMP5
+		CA	LATVEL
+		AD	MAXVBITS
+		EXTEND
+		BZMF	+2
+		TCF	LVLIMITS
+CHKLASTY	INDEX	ITEMP5
+		CCS	LATVMETR
+		TCF	+4
+		TCF	LASTOK
+		TCF	+7
+		TCF	LASTOK
+		INDEX	ITEMP5
+		CA	LATVEL
+		EXTEND
+		BZMF	LASTPOSY +5
+		TCF	+5
+		INDEX	ITEMP5
+		CS	LATVEL
+		EXTEND
+		BZMF	LASTNEGY +4
+LASTOK		INDEX	ITEMP5
+		CCS	TRAKLATV
+		TCF	LASTPOSY
+		TCF	+2
+		TCF	LASTNEGY
+		INDEX	ITEMP5
+# Page 905
+		CA	LATVEL
+		EXTEND
+		BZMF	NEGVMAXY
+		TCF	POSVMAXY
+LASTPOSY	INDEX	ITEMP5
+		CA	LATVEL
+		EXTEND
+		BZMF	+2
+		TCF	POSVMAXY
+		CS	MAXVBITS
+		TCF	ZEROLSTY
+POSVMAXY	INDEX	ITEMP5
+		CS	LATVMETR
+		AD	MAXVBITS
+		INDEX	ITEMP5
+		XCH	RUPTREG3
+		CAF	ONE
+		TCF	ZEROLSTY +3
+LASTNEGY	INDEX	ITEMP5
+		CA	LATVEL
+		EXTEND
+		BZMF	NEGVMAXY
+		CA	MAXVBITS
+		TCF	ZEROLSTY
+NEGVMAXY	INDEX	ITEMP5
+		CA	LATVMETR
+		AD	MAXVBITS
+		COM
+		INDEX	ITEMP5
+		XCH	RUPTREG3
+		CS	ONE
+		TCF	ZEROLSTY +3
+LVLIMITS	INDEX	ITEMP5
+		CCS	TRAKLATV
+		TCF	LATVPOS
+		TCF	+2
+		TCF	LATVNEG
+		INDEX	ITEMP5
+		CS	LATVMETR
+		EXTEND
+		BZMF	+2
+		TCF	NEGLMLV
+		INDEX	ITEMP5
+
+		CS	LATVEL
+		EXTEND
+		BZMF	LVMINLM
+		AD	ITEMP6
+		INDEX	ITEMP5
+		AD	LATVMETR
+		EXTEND
+# Page 906
+		BZMF	LVMINLM
+		INDEX	ITEMP5
+		AD	LATVEL
+		EXTEND
+		INDEX	ITEMP5
+		SU	LATVMETR
+		TCF	ZEROLSTY
+LATVPOS		INDEX	ITEMP5
+		CS	LATVEL
+		EXTEND
+		BZMF	LVMINLM
+		TCF	+5
+LATVNEG		INDEX	ITEMP5
+		CA	LATVEL
+		EXTEND
+		BZMF	LVMINLM
+		INDEX	ITEMP5
+		CS	LATVMETR
+		TCF	ZEROLSTY
+NEGLMLV		INDEX	ITEMP5
+		CA	LATVEL
+		EXTEND
+		BZMF	LVMINLM
+		CA	MAXVBITS
+		INDEX	ITEMP5
+		AD	LATVMETR
+		COM
+		INDEX	ITEMP5
+		AD	LATVEL
+		EXTEND
+		BZMF	LVMINLM
+		EXTEND
+		INDEX	ITEMP5
+		SU	LATVEL
+		INDEX	ITEMP5
+		AD	LATVMETR
+		COM
+		TCF	ZEROLSTY
+LVMINLM		INDEX	ITEMP5
+		CS	LATVMETR
+		INDEX	ITEMP5
+		AD	LATVEL
+ZEROLSTY	INDEX	ITEMP5
+		XCH	RUPTREG3
+		CAF	ZERO
+		INDEX	ITEMP5
+		TS	TRAKLATV
+		INDEX	ITEMP5
+		CA	RUPTREG3
+		AD	NEG0		# AVOIDS +0 DINC HARDWARE MALFUNCTION
+# Page 907
+		INDEX	ITEMP5
+		TS	CDUTCMD
+		INDEX	ITEMP5
+		CA	RUPTREG3
+		INDEX	ITEMP5
+		ADS	LATVMETR
+		CCS	ITEMP5		# FIRST MONITOR FORWARD THEN LATERAL VEL.
+		TCF	VMONITOR
+
+		CAF	BITSET		# DRIVE THE X-POINTER DISPLAY.
+		EXTEND
+		WOR	CHAN14
+		TC	LADQSAVE	# GO TO ALTROUT +1 OR TO ALTOUT +1
+ZERODATA	CAF	ZERO		# ZERO ALTSAVE AND ALTSAVE +1
+		TS	L		#	NO NEGATIVE ALTITUDES ALLOWED.
+		TCF	ZDATA2
+
+# ****************************************************************************
+
+DISPRSET	CS	FLAGWRD0	# ARE WE IN DESCENT TRAJECTORY?
+		MASK	R10FLBIT
+		EXTEND
+		BZF	ABORTON		# NO.
+		CAF	BIT8		# YES.
+		MASK	IMODES33	# CHECK IF INERTIAL DATA JUST DISPLAYED.
+		CCS	A
+		CAF	BIT2		# YES. DISABLE RR ERROR COUNTER
+		AD	BIT8		# NO.  REMOVE DISPLAY INERTIAL DATA
+		COM
+		EXTEND
+		WAND	CHAN12
+ABORTON		CS	BITS8/7		# RESET INERTIAL DATA, INTERLEAVE FLAGS.
+		MASK	IMODES33
+		TS	IMODES33
+		CS	DIDFLBIT
+		MASK	FLAGWRD1
+		TS	FLAGWRD1	# RESET DIDFLAG.
+		TCF	TASKOVER
+
+# ******************************************************************************
+
+BITS8/7		OCT	00300		# INERTIAL DATA AND INTERLEAVE FLAGS.
+BITSET		=	PRIO6
+
+# ******************************************************************************
+
+
diff --git a/LATITUDE_LONGITUDE_SUBROUTINES.s b/LATITUDE_LONGITUDE_SUBROUTINES.s
new file mode 100644
index 0000000..e49bd64
--- /dev/null
+++ b/LATITUDE_LONGITUDE_SUBROUTINES.s
@@ -0,0 +1,318 @@
+# Copyright:	Public domain.
+# Filename:	LATITUDE_LONGITUDE_SUBROUTINES.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:	1236-1242
+# Mod history:	2009-05-14 RSB	Adapted 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 1236
+# SUBROUTINE TO CONVERT RAD VECTOR AT GIVEN TIME TO LAT,LONG AND ALT
+#
+# CALLING SEQUENCE
+#	L-1	CALL
+#	L		LAT-LONG
+#
+# SUBROUTINES USED
+#	R-TO-RP, ARCTAN, SETGAMMA, SETRE
+#
+# ERASABLE INIT. REQ.
+#	AXO, -AYO, AZO, TEPHEM (SET AT LAUNCH TIME)
+#	ALPHAV = POSITION VECTOR METERS B-29
+#	MPAC -- TIME (CSECS B-28)
+#	ERADFLAG =1, TO COMPUTE EARTH RADIUS, =0 FOR FIXED EARTH RADIUS
+#	LUNAFLAG=0 FOR EARTH, 1 FOR MOON
+#
+# OUTPUT
+#	LATITUDE IN LAT 	(REVS. B-0)
+#	LONGITUDE IN LONG	(REVS. B-0)
+#	ALTITUDE IN ALT METERS	B-29
+
+		BANK	30
+		SETLOC	LATLONG
+		BANK
+
+		COUNT	13/LT-LG
+		
+		EBANK=	ALPHAV
+LAT-LONG	STQ	SETPD
+			INCORPEX
+			0D
+		STOVL	6D		# SAVE TIME IN 6-7D FOR R-TO-RP
+			ALPHAV
+		PUSH	ABVAL		# 0-5D= R FOR R-TO-RP
+		STODL	ALPHAM		# ABS. VALUE OF R FOR ALT FORMULA BELOW
+			ZEROVEC		# SET MPAC=0 FOR EARTH, NON-ZERO FOR MOON
+		BOFF	COS		# USE COS(0) TO GET NON-ZERO IN MPAC
+			LUNAFLAG	# 0=EARTH, 1=MOON
+			CALLRTRP
+CALLRTRP	CALL
+			R-TO-RP		# RP VECTOR CONVERTED FROM R B-29
+		UNIT			# UNIT RP B-1
+		STCALL	ALPHAV		# U2= 1/2 SINL FOR SETRE SUBR BELOW
+			SETGAMMA	#	SET GAMMA=B2/A2 FOR EARTH, =1 FOR MOON
+		CALL			#	SCALED B-1.
+			SETRE		# CALC RE METERS B-29
+		DLOAD	DSQ
+			ALPHAV
+		PDDL	DSQ
+			ALPHAV +2
+# Page 1237
+		DAD	SQRT
+		DMP	SL1R
+			GAMRP
+		STODL	COSTH		# COS(LAT) B-1
+			ALPHAV +4
+		STCALL	SINTH		# SIN(LAT) B-1
+			ARCTAN
+		STODL	LAT		# LAT B0
+			ALPHAV
+		STODL	COSTH		# COS(LONG) B-1
+			ALPHAV +2
+		STCALL	SINTH		# SIN(LONG) B-1
+			ARCTAN
+		STODL	LONG		# LONG. REVS B-0 IN RANGE -1/2 TO 1/2
+			ALPHAM
+		DSU			# ALT= R-RE METERS B-29
+			ERADM
+		STCALL	ALT		# EXIT WITH ALT METERS B-29
+			INCORPEX
+# Page 1238
+# SUBROUTINE TO CONVERT LAT,LONG.ALT AT GIVEN TIME TO RADIUS VECTOR
+#
+# CALLING SEQUENCE
+#	L-1	CALL
+#	L		LALOTORV
+#
+# SUBROUTINES USED
+#	SETGAMMA, SETRE, RP-TO-R
+#
+# ERASABLE INIT. REQ.
+#	AXO, AYO, AZO, TEPHEM SET AT LAUNCH TIME
+#	LAT -- LATITUDE 	(REVS B0)
+#	LONG -- LONGITUDE	(REVS B0)
+#	ALT -- ALTITUDE		(METERS) B-29
+#	MPAC -- TIME		(CSECS B-28)
+#	ERADFLAG =1 TO COMPUTE EARTH RADIUS, =0 FOR FIXED EARTH RADIUS
+#	LUNAFLAG=0 FOR EARTH, 1 FOR MOON
+#
+# OUTPUT
+#	R-VECTOR IN ALPHAV 	(METERS B-29)
+
+LALOTORV	STQ	SETPD		# LAT,LONG,ALT TO R VECTOR
+			INCORPEX
+			0D
+		STCALL	6D		#     6-7D = TIME FOR RP-TO-R
+			SETGAMMA	#    GAMMA = B2/A2 FOR EARTH, 1 FOR MOON B-1
+		DLOAD	SIN		#           COS(LONG)COS(LAT) IN MPAC
+			LAT		# UNIT  RP = SIN(LONG)COS(LAT)    2-3D
+		DMPR	PDDL		# PD 2      GAMMA*SIN(LAT)       0-1D
+			GAMRP
+			LAT		#     0-1D = GAMMA*SIN(LAT) B-2
+		COS	PDDL		# PD4 2-3D= COS(LAT) B-1 TEMPORARILY
+			LONG
+		SIN	DMPR		# PD 2
+		PDDL	COS		# PD 4 2-3D= SIN(LONG)COS(LAT) B-2
+			LAT
+		PDDL	COS		# PD 6 4-5D= COS(LAT) B-1 TEMPORARILY
+			LONG
+		DMPR	VDEF		# PD4 MPAC = COS(LONG)COS(LAT) B-2
+		UNIT	PUSH		#     0-5D = UNIT RP FOR RP-TO-R SUBR.
+		STCALL	ALPHAV		# ALPHAV +4= SINL FOR SETRE SUBR.
+			SETRE		# RE METERS B-29
+		DLOAD	BOFF		# SET MPAC = 0 FOR EARTH, NON-ZERO FOR MOON
+			ZEROVEC
+			LUNAFLAG
+			CALLRPRT
+		COS			# USE COS(0) TO GET NON-ZERO IN MPAC
+CALLRPRT	CALL
+			RP-TO-R		# EXIT WITH UNIT R VECTOR IN MPAC
+		STODL	ALPHAV
+			ERADM
+# Page 1239
+		DAD	VXSC		# (RE + ALT)(UNIT R) METERS B-30
+			ALT
+			ALPHAV
+		VSL1			# R METERS B-29
+		STCALL	ALPHAV		# EXIT WITH R IN METERS B-29
+			INCORPEX
+
+# SUBROUTINE TO COMPUTE EARTH RADIUS
+#
+# INPUT
+#	1/2 SIN LAT IN ALPHAV +4
+#
+# OUTPUT
+#	EARTH RADIUS IN ERADM AND MPAC (METERS B-29)
+
+GETERAD		DLOAD	DSQ
+			ALPHAV 	+4	# SIN**2(L)
+		SL1	BDSU
+			DP1/2		# COS**2(L)
+		DMPR	BDSU
+			EE
+			DP1/2
+		BDDV	SQRT
+			B2XSC
+		SR4R
+		STORE	ERADM
+			RVQ
+
+# THE FOLLOWING CONSTANTS WERE COMPUTED WITH A=6378166, B=6356784 METERS
+# B2XSC = B**2 SCALED B-51
+# B2/A2 = B**2/A**2 SCALED B-1
+# EE = (1-B**2/A**2) SCALED B-0
+
+B2XSC		2DEC	.0179450689	# B**2 SCALED B-51
+
+DP1/2		=	XUNIT
+B2/A2		2DEC	.9933064884 B-1	# GAMMA= B**2/A**2 B-1
+
+EE		2DEC	6.6935116 E-3	# (1-B**2/A**2) B-0
+
+ERAD		2DEC	6373338 B-29	# PAD RADIUS
+
+# Page 1240
+# ARCTAN SUBROUTINE
+#
+# CALLING SEQUENCE
+#	SIN THETA IN SINTH B-1
+#	COS THETA IN COSTH B-1
+#	CALL ARCTAN
+#
+# OUTPUT
+#	ARCTAN THETA IN MPAC AND THETA B-0 IN RANGE -1/2 TO +1/2
+
+ARCTAN		BOV
+			CLROVFLW
+CLROVFLW	DLOAD	DSQ
+			SINTH
+		PDDL	DSQ
+			COSTH
+		DAD
+		BZE	SQRT
+			ARCTANXX	# ATAN=0/0.  SET THETA=0
+		BDDV	BOV
+			SINTH
+			ATAN=90
+		SR1	ASIN
+		STORE	THETA
+		PDDL	BMN
+			COSTH
+			NEGCOS
+		DLOAD	RVQ
+NEGCOS		DLOAD	DCOMP
+		BPL	DAD
+			NEGOUT
+			DP1/2
+ARCTANXX	STORE	THETA
+		RVQ
+
+NEGOUT		DSU	GOTO
+			DP1/2
+			ARCTANXX
+ATAN=90		DLOAD	SIGN
+			LODP1/4
+			SINTH
+		STORE	THETA
+		RVQ
+
+2DZERO		=	DPZERO
+
+# Page 1241
+# ***** SETGAMMA SUBROUTINE *****
+# SUBROUTINE TO SET GAMMA FOR THE LAT-LONG AND LALOTORV SUBROUTINES
+#
+# GAMMA = B**2/A**2 FOR EARTH (B-1)
+# GAMMA = 1 FOR MOON (B-1)
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		SETGAMMA
+#
+# INPUT
+#	LUNAFLAG=0 FOR EARTH, =1 FOR MOON
+#
+# OUTPUT
+#	GAMMA IN GAMRP (B-1)
+
+SETGAMMA	DLOAD	BOFF		# BRANCH FOR EARTH
+			B2/A2		# EARTH GAMMA
+			LUNAFLAG
+			SETGMEX
+		SLOAD
+			1B1		# MOON GAMMA
+SETGMEX		STORE	GAMRP
+		RVQ
+GAMRP		=	8D
+
+# Page 1242
+# ***** SETRE SUBROUTINE *****
+# SUBROUTINE TO SET RE (EARTH OR MOON RADIUS)
+#
+#	RE = RM FOR MOON
+#	RE = RREF FOR FIXED EARTH RADIUS OR COMPUTED RF FOR FISCHER ELLIPSOID
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		SETRE
+#
+# SUBROUTINES USED
+#	CETERAD
+#
+# INPUT
+#	ERADFLAG = 0 FOR FIXED RE, 1 FOR COMPUTED RE
+#	ALPHAV +4 = 1/2 SINL IF GETERAD IS CALLED
+#	LUNAFLAG = 0 FOR EARTH, =1 FOR MOON
+#
+# OUTPUT
+#	ERADM = 504RM FOR MOON (METERS B-29)
+#	ERADM = ERAD OR COMPUTED RE FOR EARTH (METERS B-29)
+
+SETRE		STQ	DLOAD
+			SETREX
+			504RM
+		BON	DLOAD		# BRANCH FOR MOON
+			LUNAFLAG
+			TSTRLSRM
+			ERAD
+		BOFF	CALL		# ERADFLAG=0 FOR FIXED RE, 1 FOR COMPUTED
+			ERADFLAG
+			SETRXX
+			GETERAD
+SETRXX		STCALL	ERADM		# EXIT WITH RE OR RM METERS B-29
+			SETREX
+TSTRLSRM	BON	VLOAD		# ERADFLAG=0, SET R0=RLS
+			ERADFLAG	#         =1      R0=RM
+			SETRXX
+			RLS
+		ABVAL	SR2R		# SCALE FROM B-27 TO B-29
+		GOTO
+			SETRXX
+SETREX		=	S2
+504RM		2DEC	1738090 B-29	# METERS B-29 (MOON RADIUS)
+
+
+
+
diff --git a/LEM_GEOMETRY.s b/LEM_GEOMETRY.s
new file mode 100644
index 0000000..3569a4c
--- /dev/null
+++ b/LEM_GEOMETRY.s
@@ -0,0 +1,209 @@
+# Copyright:	Public domain.
+# Filename:	LEM_GEOMETRY.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	320-325
+# Mod history:	2009-05-16 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 320
+		BANK	23
+		SETLOC	LEMGEOM
+		BANK
+		
+		SBANK=	LOWSUPER
+		EBANK=	XSM
+		
+# THESE TWO ROUTINES COMPUTE THE ACTUAL STATE VECTOR FOR LM,CSM BY ADDING
+# THE CONIC R,V AND THE DEVIATIONS R,V.  THE STATE VECTORS ARE CONVERTED TO
+# METERS B-29 AND METERS/CSEC B-7 AND STORED APPROPIRATELY IN RN,VN OR
+# R-OTHER,V-OTHER FOR DOWNLINK.  THE ROUTINES' NAMES ARE SWITCHED IN THE
+# OTHER VEHICLE'S COMPUTER.
+#
+# INPUT
+#	STATE VECTOR IN TEMPORARY STORAGE AREA
+#	IF STATE VECTOR IS SCALED POS B27 AND VEL B5
+#		SET X2 TO +2
+#	IF STATE VECTOR IS SCALED POS B29 AND VEL B7
+#		SET X2 TO 0
+#
+# OUTPUT
+#	R(T) IN RN, V(T) IN VN, T IN PIPTIME
+# OR
+#	R(T) IN R-OTHER, V(T) IN V-OTHER	(T IS DEFINED BY T-OTHER)
+
+		COUNT*	$$/GEOM
+SVDWN2		BOF	RVQ		# SW=1=AVETOMID DOING W-MATRIX INTEG.
+			AVEMIDSW
+			+1
+		VLOAD	VSL*
+			TDELTAV
+			0 	-7,2
+		VAD	VSL*
+			RCV
+			0,2
+		STOVL	RN
+			TNUV
+		VSL*	VAD
+			0 	-4,2
+			VCV
+		VSL*
+			0,2
+		STODL	VN
+			TET
+		STORE	PIPTIME
+		RVQ
+# Page 321
+SVDWN1		VLOAD	VSL*
+			TDELTAV
+			0 	-7,2
+		VAD	VSL*
+			RCV
+			0,2
+		STOVL	R-OTHER
+			TNUV
+		VSL*	VAD
+			0 	-4,2
+			VCV
+		VSL*	
+			0,2
+		STORE	V-OTHER
+		RVQ
+		
+# Page 322
+# THE FOLLOWING ROUTINE TAKES A HALF UNIT TARGET VECTOR REFERRED TO NAV BASE COORDINATES AND FINDS BOTH
+# GIMBAL ORIENTATIONS AT WHICH THE RR MIGHT SIGHT THE TARGET.  THE GIMBAL ANGLES CORRESPONDING TO THE PRESENT MODE
+# ARE LEFT IN MODEA AND THOSE WHICH WOULD BE USED AFTER A REMODE IN MODEB.  THIS ROUTINE ASSUMES MODE 1 IS TRUNNION
+# ANGLE LESS THAN 90 DEGS IN ABS VALUE WITH ARBITRARY SHAFT, WITH A CORRESPONDING DEFINITION FOR MODE 2.  MODE
+# SELECTION AND LIMIT CHECKING ARE DONE ELSEWHERE.
+#
+# THE MODE 1 CONFIGURATION IS CALCULATED FROM THE VECTOR AND THEN MODE 2 IS FOUND USING THE RELATIONS
+#
+#	S(2) = 180 + S(1)
+#	T(2) = 180 - T(1)
+#
+# THE VECTOR ARRIVES IN MPAC WHERE TRG*SMNG OR *SMNB* WILL HAVE LEFT IT.
+
+RRANGLES	STORE	32D
+		DLOAD	DCOMP		# SINCE WE WILL FIND THE MODE 1 SHAFT
+			34D		# ANGLE LATER, WE CAN FIND THE MODE 1
+		SETPD	ASIN		# TRUNNION BY SIMPLY TAKING THE ARCSIN OF
+			0		# THE Y COMPONENT, THE ASIN GIVIN AN
+		PUSH	BDSU		# ANSWER WHOSE ABS VAL IS LESS THAN 90 DEG.
+			LODPHALF
+		STODL	4		# MODE 2 TRUNNION TO 4.
+		
+			LO6ZEROS
+		STOVL	34D		# UNIT THE PROJECTION OF THE VECTOR
+			32D		#	IN THE X-Z PLANE
+		UNIT	BOVB		# IF OVERFLOW, TARGET VECTOR IS ALONG Y
+			LUNDESCH	# CALL FOR MANEUVER UNLESS ON LUNAR SURF
+		STODL	32D		# PROJECTION VECTOR.
+			32D
+		SR1	STQ
+			S2
+		STODL	SINTH		# USE ARCTRIG SINCE SHAFT COULD BE ARB.
+			36D
+		SR1
+		STCALL	COSTH
+			ARCTRIG
+# Page 323
+		PUSH	DAD		# MODE 1 SHAFT TO 2.
+			LODPHALF
+		STOVL	6
+			4
+		RTB			# FIND MODE 2 CDU ANGLES.
+			2V1STO2S
+		STOVL	MODEB
+			0
+		RTB			# MODE 1 ANGLES TO MODE A.
+			2V1STO2S
+		STORE	MODEA
+		EXIT
+		
+		CS	RADMODES	# SWAP MODEA AND MODEB IF RR IN MODE 2.
+		MASK	ANTENBIT
+		CCS	A
+		TCF	+4
+		
+		DXCH	MODEA
+		DXCH	MODEB
+		DXCH	MODEA
+		
+		TC	INTPRET
+		GOTO
+			S2
+# Page 324
+# GIVEN RR TRUNNION AND SHAFT (T,S) IN TANGNB,+1, FIND THE ASSOCIATED
+# LINE OF SIGHT IN NAV BASE AXES.  THE HALF UNIT VECTOR, .5(SIN(S)COS(T),
+# -SIN(T),COS(S)COS(T)) IS LEFT IN MPAC AND 32D.
+
+		SETLOC	INFLIGHT
+		BANK
+		
+		COUNT*	$$/GEOM
+
+RRNB		SLOAD	RTB
+			TANGNB
+			CDULOGIC
+		SETPD	PUSH		# TRUNNION ANGLE TO 0
+			0
+		SIN	DCOMP
+		STODL	34D		# Y COMPONENT
+		
+		COS	PUSH		# .5 COS(T) TO 0
+		SLOAD	RTB
+			TANGNB +1
+			CDULOGIC
+RRNB1		PUSH	COS		# SHAFT ANGLE TO 2
+		DMP	SL1
+			0
+		STODL	36D		# Z COMPONENT
+		
+		SIN	DMP
+		SL1
+		STOVL	32D
+			32D
+		RVQ
+		
+# THIS ENTRY TO RRNB REQUIRES THE TRUNNION AND SHAFT ANGLES IN MPAC AND MPAC +1 RESPECTIVELY
+
+RRNBMPAC	STODL	20D		# SAVE SHAFT CDU IN 21.
+			MPAC		# SET MODE TO DP.  (THE PRECEEDING STORE
+					# MAY BE DP, TP OR VECTOR.)
+		RTB	SETPD
+			CDULOGIC
+			0
+		PUSH	SIN		# TRUNNION ANGLE TO 0
+		DCOMP
+		STODL	34D		# Y COMPONENT
+		COS	PUSH		# .5COS(T) TO 0
+		SLOAD	RTB		# PICK UP CDU'S.
+			21D
+			CDULOGIC
+		GOTO
+			RRNB1
+# Page 325
+# (This page has nothing on it.)
+
+			
diff --git a/LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.s b/LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.s
new file mode 100644
index 0000000..0a072a8
--- /dev/null
+++ b/LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.s
@@ -0,0 +1,211 @@
+# Copyright:    Public domain.
+# Filename:     LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 785-788
+# Contact:      Ron Burkey <info@sandroid.org>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-12 RSB	Adapted from Colossus249 file of the same
+#				name and Comanche 055 page images.
+#		2009-07-26 RSB	Added annotations related to computation
+#				of the ephemeral(?) polynomials.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 785
+# LUNAR AND SOLAR EPHEMERIDES SUBROUTINES
+#
+# FUNCTIONAL DESCRIPTION
+#
+#	THESE SUBROUTINES ARE USED TO DETERMINE THE POSITION AND VELOCITY
+#	VECTORS OF THE SUN AND THE MOON RELATIVE TO THE EARTH AT THE
+#	SPECIFIED GROUND ELAPSED TIME INPUT BY THE USER.
+#
+#	THE POSITION OF THE MOON IS STORED IN THE COMPUTER IN THE FORM OF
+#	A NINTH DEGREE POLYNOMIAL APPROXIMATION WHICH IS VALID OVER A 15
+#	DAY INTERVAL BEGINNING SHORTLY BEFORE LAUNCH.  THEREFORE THE TIME
+#	INPUT BY THE USER SHOULD FALL WITHIN THIS 15 DAY INTERVAL.
+##	The 9th-degree polynomial spoken of here is a pad load, meaning
+##	that it is not actually hardcoded into the software.  Additional
+##	information about calculating the polynomial can be found on the 
+##	<a href="http://nassp.sourceforge.net/wiki/Lunar_Ephemeris_Polynomials">
+##	<b>Orbiter</b> NASSP wiki</a>, as well as information about calculation
+##	of the <a href="http://nassp.sourceforge.net/wiki/Solar_Ephemeris">
+##	solar ephemerides</a>.
+#
+#	LSPOS COMPUTES THE POSITION VECTORS OF THE SUN AND THE MOON.
+#
+#	LUNPOS COMPUTES THE POSITION VECTOR OF THE MOON.
+#
+#	LUNVEL COMPUTES THE VELOCITY VECTOR OF THE MOON.
+#
+#	SOLPOS COMPUTES THE POSITION VECTOR OF THE SUN.
+#
+# CALLING SEQUENCE
+#
+#	DLOAD	CALL
+#		TIME		GROUND ELAPSED TIME
+#		SUBROUTINE	LSPOS OR LUNPOS OR LUNVEL OR SOLPOS
+#
+# INPUT
+#
+#	1) SPECIFIED GROUND ELAPSED TIME IN CS x B-28 LOADED IN MPAC.
+#
+#	2) TIMEMO -- TIME AT THE CENTER OF THE RANGE OVER WHICH THE LUNAR
+#	POSITION POLYNOMIAL IS VALID IN CS x B-42.
+#
+#	3) VECOEM -- VECTOR COEFFICIENTS OF THE LUNAR POSITION POLYNOMIAL
+#	LOADED IN DESCENDING SEQUENCE IN METERS/CS**N x B-2
+#
+#	4) RESO -- POSITION VECTOR OF THE SUN RELATIVE TO THE EARTH AT
+#	TIMEMO IN METERS x B-38
+#
+#	5) VESO -- VELOCITY VECTOR OF THE SUN RELATIVE TO THE EARTH AT
+#	TIMEMO IN METERS/CS x B-9
+# 
+#	6) OMEGAES -- ANGULAR VELOCITY OF THE VECTOR RESO AT TIMEMO IN
+#	REV/CS x B+26
+#
+#	ALL EXCEPT THE FIRST INPUT ARE INCLUDED IN THE PRE-LAUNCH
+#	ERASABLE DATA LOAD.
+#
+# OUTPUT -- LSPOS
+# Page 786
+#
+#	1) 2D OF VAC AREA CONTAINS THE POSITION VECTOR OF THE SUN RELATIVE
+#	TO THE EARTH AT TIME INPUT BY THE USER IN METERS x B-38.
+#
+#	2) MPAC CONTAINS THE POSITION VECTOR OF THE MOON RELATIVE TO THE
+#	EARTH AT TIME INPUT BY THE USER IN METERS x B-29
+#
+# OUTPUT -- LUNPOS
+#
+#	MPAC CONTAINS THE POSITION VECTOR OF THE MOON RELATIVE TO THE
+#	EARTH AT THE TIME INPUT BY USER IN METERS x B-29
+#
+# OUTPUT -- LUNVEL
+#
+#	MPAC CONTAINS THE VELOCITY VECTOR OF THE MOON RELATIVE TO THE
+#	EARTH AT THE TIME INPUT BY THE USER IN METERS/CS x B-7
+#
+# OUTPUT -- SOLPOS
+#
+#	MPAC CONTAINS THE POSITION VECTOR OF THE SUN RELATIVE TO THE EARTH
+#	AT TIME INPUT BY THE USER IN METERS x B-38.
+#
+# SUBROUTINES USED
+#
+#	NONE
+#
+# REMARKS
+#
+#	THE VAC AREA IS USED FOR STORAGE OF INTERMEDIATE AND FINAL RESULTS
+#	OF COMPUTATIONS.
+#
+#	S1, X1, AND X2 ARE USED BY THESE SUBROUTINES.
+#
+#	PRELAUNCH ERASABLE DATA LOAD ARE ONLY ERASABLE STORAGE USED BY
+#	THESE SUBROUTINES.
+#
+#	RESTARTS DURING OPERATION OF THESE SUBROUTINES MUST BE HANDLED BY
+#	THE USER.
+
+		BANK	36
+		SETLOC	EPHEM
+		BANK
+		
+		COUNT*	$$/EPHEM
+		EBANK=	END-E7
+LSPOS		AXT,2			# COMPUTES POSITION VECTORS OF BOTH THE
+			RESA		# SUN AND THE MOON.  THE POSITION VECTOR
+		AXT,1	GOTO		# OF THE SUN IS STORED IN 2D OF THE VAC
+			RES		# AREA.  THE POSITION VECTOR OF THE MOON
+			LSTIME		# IS STORED IN MPAC.
+LUNPOS		AXT,1	GOTO		# COMPUTES THE POSITION VECTOR OF THE MOON
+			REM		# AND STORES IT IN MPAC.
+			LSTIME
+# Page 787
+LUNVEL		AXT,1	GOTO		# COMPUTES THE VELOCITY VECTOR OF THE MOON
+			VEM		# AND STORES IT IN MPAC.
+			LSTIME
+SOLPOS		STQ	AXT,1		# COMPUTES THE POSITION VECTOR OF THE SUN
+			X2		# AND STORES IT IN MPAC.
+			RES
+LSTIME		SETPD	SR
+			0D
+			14D
+		TAD	DCOMP
+			TEPHEM
+		TAD	DCOMP
+			TIMEMO
+		SL	SSP
+			16D
+			S1
+			6D
+		GOTO
+			X1
+RES		PUSH	DMP		#					PD- 2
+			OMEGAES
+		PUSH	COS		#					PD- 4
+		VXSC	PDDL		#					PD- 8
+			RESO	
+		SIN	PDVL		#					PD-10
+			RESO
+		PUSH	UNIT		#					PD-16
+		VXV	UNIT
+			VESO
+		VXV	VSL1		#					PD-10
+		VXSC	VAD		#					PD-02
+		VSL1	GOTO		# RES IN METERS x B-38 IN MPAC.
+			X2
+RESA		STODL	2D		# RES IN METERS x B-38 IN 2D OF VAC.	PD- 0
+REM		AXT,1	PDVL		#					PD- 2
+			54D
+			VECOEM
+REMA		VXSC	VAD*
+			0D
+			VECOEM +60D,1
+		TIX,1	VSL2		# REM IN METERS x B-29 IN MPAC.
+			REMA
+		RVQ
+VEM		AXT,1	PDDL		#					PD- 2
+			48D
+			NINEB4
+		PUSH	VXSC		#					PD- 4
+			VECOEM
+VEMA		VXSC
+			0D
+# Page 788
+		STODL	4D		#					PD- 2
+		DSU	PUSH		#					PD- 4
+			ONEB4
+		VXSC*	VAD
+			VECOEM +54D,1
+			4D
+		TIX,1	VSL2		# VEM IN METERS/CS x B-7 IN MPAC.
+			VEMA
+		RVQ
+NINEB4		2DEC	9.0 B-4
+
+ONEB4		2DEC	1.0 B-4
+
+
+
diff --git a/LUNAR_LANDING_GUIDANCE_EQUATIONS.s b/LUNAR_LANDING_GUIDANCE_EQUATIONS.s
index 6f332da..eaab1a2 100644
--- a/LUNAR_LANDING_GUIDANCE_EQUATIONS.s
+++ b/LUNAR_LANDING_GUIDANCE_EQUATIONS.s
@@ -1,5 +1,5 @@
 # Copyright:	Public domain.
-# Filename:	LUNAR_LANDING_GUIDANCE_EQUATIONS.s
+# Filename:	LUNAR_LANDING_GUIDANCE_EQUATIONS.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.
@@ -1240,7 +1240,7 @@ DESCBITS	MASK	BIT7		# COME HERE FROM MARKRUPT CODING WITH BIT
 #	                                               N        N-1
 #	ROOTPSRS FINDS ONE ROOT OF THE POWER SERIES A X  + A   X    + ... + A X + A
 #	                                             N      N-1              1     0
-# USING NETON'S METHOD STARTING WITH AN INITIAL GUESS FOR THE ROOT.  THE ENTERING DATA MUST BE AS FOLLOWS:
+# USING NEWTON'S METHOD STARTING WITH AN INITIAL GUESS FOR THE ROOT.  THE ENTERING DATA MUST BE AS FOLLOWS:
 #	A	SP	LOC-3		ADRES FOR REFERENCING PWR COF TABL
 #	L	SP	N-1		N IS THE DEGREE OF THE POWER SERIES
 #	MPAC	DP	X		INITIAL GUESS FOR ROOT
diff --git a/LUNAR_LANDMARK_SELECTION_FOR_CM.s b/LUNAR_LANDMARK_SELECTION_FOR_CM.s
new file mode 100644
index 0000000..8fb219d
--- /dev/null
+++ b/LUNAR_LANDMARK_SELECTION_FOR_CM.s
@@ -0,0 +1,34 @@
+# Copyright:	Public domain.
+# Filename:	LUNAR_LANDMARK_SELECTION_FOR_CM.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:	Jim Lawton <jim.lawton@gmail.com>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	936
+# Mod history:	2009-05-11 JVL	Adapted 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 936
+
+# *** END OF TROUBLE .043 ***
+
diff --git a/MAIN.s b/MAIN.s
new file mode 100644
index 0000000..3dc04b8
--- /dev/null
+++ b/MAIN.s
@@ -0,0 +1,168 @@
+# Copyright:	Public domain.
+# Filename:	MAIN.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) Apollo 11.
+# Assembler:	yaYUL
+# Contact:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo
+# Mod history:	2009-05-05 RSB	Adapted from Colossus249/MAIN.agc.
+#
+# 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
+#
+# This file is a little different from the other Comanche055 files I'm providing, 
+# in that it doesn't represent anything that appears directly in the original source.  
+# What I (RSB) have done for organizational purposes is to split the huge monolithic
+# source code into smaller, more manageable chunks--i.e., into individual source 
+# files.  Those files are rejoined within this file as "includes".  It just makes
+# it a little easier to work with.  The code chunks correspond to natural divisions
+# into sub-programs.  In fact, these divisions are more-or-less specified by
+# the source code itself.  Refer to the "SUBROUTINE CALLS" at the
+# very beginning of the file ASSEMBLY_AND_OPERATION_INFORMATION.agc.
+#
+# It may be reasonably asked why tens of thousands of lines of source are joined by
+# means of inclusion, rather than simply assembling the source files individually and
+# then linking them to form the executable.  The answer is that the original 
+# development team had no linker.  The builds were monolithic just like this.
+# There was a big emphasis on reusability of the code in the original project, 
+# apparently, but this reusability took the form of inserting your deck of 
+# punch-cards at the appropriate position in somebody else's deck of punch-cards.
+# (Actually, I think the card-decks were turned into tape libraries, and the modules
+# were mixed-and-matched from the tape libraries, but the principle is the same.)
+# So, indeed, the method of file-inclusion is a very fair representation of the 
+# methods used in the original development ... with the improvement, of course,
+# that you no longer have to worry about dropping the card deck.  On the other hand, 
+# I wasn't there at the time, so I may have no idea what I'm talking about.
+#
+# Finally, note that the original Apollo AGC assembler (called "YUL") is no longer 
+# available (as far as I can tell).  Actually, it had already been replaced by another
+# assembler (called "GAP") by the time of Apollo 11, but GAP isn't available either.
+# The replacement assembler yaYUL accepts a slightly different format for the source 
+# code from what YUL or GAP accepted, so the source code has been targeted for 
+# assembly with yaYUL.
+
+# What follows is simply a bunch of file-includes for the individual code chunks.
+# I've marked the page numbers to make proof-reading easier.  The page images also
+# contain a lot of interesting tables (cross-referenced to page numbers) created by GAP, 
+# but not duplicated by yaYUL, so it's still valuable even if the source-files
+# listed below are in hand.
+
+$CONTRACT_AND_APPROVALS.agc			# p. 1						
+$ASSEMBLY_AND_OPERATION_INFORMATION.agc		# pp. 2-26
+$TAGS_FOR_RELATIVE_SETLOC.agc			# pp. 27-35
+
+						# p. 36 contains no code.
+# COMERASE
+$ERASABLE_ASSIGNMENTS.agc			# pp. 37-130
+
+# COMAID
+$INTERRUPT_LEAD_INS.agc				# pp. 131-132
+$T4RUPT_PROGRAM.agc				# pp. 133-169
+$DOWNLINK_LISTS.agc				# pp. 170-180
+$FRESH_START_AND_RESTART.agc			# pp. 181-210
+$RESTART_TABLES.agc				# pp. 211-221
+$SXTMARK.agc 					# pp. 222-235
+$EXTENDED_VERBS.agc				# pp. 236-267
+$PINBALL_NOUN_TABLES.agc			# pp. 268-284
+$CSM_GEOMETRY.agc				# pp. 285-296
+$IMU_COMPENSATION_PACKAGE.agc			# pp. 297-306
+$PINBALL_GAME_BUTTONS_AND_LIGHTS.agc		# pp. 307-389
+$R60_62.agc					# pp. 390-398
+$ANGLFIND.agc					# pp. 399-411
+$GIMBAL_LOCK_AVOIDANCE.agc			# pp. 412-413
+$KALCMANU_STEERING.agc				# pp. 414-419
+$SYSTEM_TEST_STANDARD_LEAD_INS.agc		# pp. 420-422
+$IMU_CALIBRATION_AND_ALIGNMENT.agc		# pp. 423-455
+
+# COMEKISS
+$GROUND_TRACKING_DETERMINATION_PROGRAM.agc	# pp. 456-459
+$P34-35_P74-75.agc				# pp. 460-504
+$R31.agc					# pp. 505-510
+$P76.agc					# pp. 511-513
+$R30.agc					# pp. 514-524
+$STABLE_ORBIT.agc				# pp. 525-532
+
+# TROUBLE
+$P11.agc					# pp. 533-550
+$TPI_SEARCH.agc					# pp. 551-561
+$P20-P25.agc					# pp. 562-634
+$P30-P37.agc					# pp. 635-648
+$P32-P33_P72-P73.agc				# pp. 649-683
+$P40-P47.agc					# pp. 684-736
+$P51-P53.agc					# pp. 737-784
+$LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc	# pp. 785-788
+$P61-P67.agc					# pp. 789-818
+$SERVICER207.agc				# pp. 819-836
+$ENTRY_LEXICON.agc				# pp. 837-843
+$REENTRY_CONTROL.agc				# pp. 844-882
+$CM_BODY_ATTITUDE.agc				# pp. 883-889
+$P37_P70.agc					# pp. 890-933
+$S-BAND_ANTENNA_FOR_CM.agc			# pp. 934-935
+$LUNAR_LANDMARK_SELECTION_FOR_CM.agc		# pp. 936
+
+# TVCDAPS
+$TVCINITIALIZE.agc				# pp. 937-944
+$TVCEXECUTIVE.agc				# pp. 945-950
+$TVCMASSPROP.agc				# pp. 951-955
+$TVCRESTARTS.agc				# pp. 956-960
+$TVCDAPS.agc					# pp. 961-978
+$TVCSTROKETEST.agc				# pp. 979-983
+$TVCROLLDAP.agc					# pp. 984-998
+$MYSUBS.agc					# pp. 999-1001
+$RCS-CSM_DIGITAL_AUTOPILOT.agc			# pp. 1002-1024
+$AUTOMATIC_MANEUVERS.agc			# pp. 1025-1036
+$RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc		# pp. 1037-1038
+$JET_SELECTION_LOGIC.agc			# pp. 1039-1062
+$CM_ENTRY_DIGITAL_AUTOPILOT.agc			# pp. 1063-1092
+
+# CHIEFTAN
+$DOWN-TELEMETRY_PROGRAM.agc			# pp. 1093-1102
+$INTER-BANK_COMMUNICATION.agc			# pp. 1103-1106
+$INTERPRETER.agc				# pp. 1107-1199
+$FIXED_FIXED_CONSTANT_POOL.agc			# pp. 1200-1204
+$INTERPRETIVE_CONSTANTS.agc			# pp. 1205-1206
+$SINGLE_PRECISION_SUBROUTINES.agc		# p.  1207
+$EXECUTIVE.agc					# pp. 1208-1220
+$WAITLIST.agc					# pp. 1221-1235
+$LATITUDE_LONGITUDE_SUBROUTINES.agc		# pp. 1236-1242
+$PLANETARY_INERTIAL_ORIENTATION.agc		# pp. 1243-1251
+$MEASUREMENT_INCORPORATION.agc			# pp. 1252-1261
+$CONIC_SUBROUTINES.agc				# pp. 1262-1308
+$INTEGRATION_INITIALIZATION.agc			# pp. 1309-1333
+$ORBITAL_INTEGRATION.agc			# pp. 1334-1354
+$INFLIGHT_ALIGNMENT_ROUTINES.agc		# pp. 1355-1364
+$POWERED_FLIGHT_SUBROUTINES.agc			# pp. 1365-1372
+$TIME_OF_FREE_FALL.agc				# pp. 1373-1388
+$STAR_TABLES.agc				# pp. 1389-1393
+$AGC_BLOCK_TWO_SELF-CHECK.agc			# pp. 1394-1403
+$PHASE_TABLE_MAINTENANCE.agc			# pp. 1404-1413
+$RESTARTS_ROUTINE.agc				# pp. 1414-1419
+$IMU_MODE_SWITCHING_ROUTINES.agc		# pp. 1420-1448
+$KEYRUPT_UPRUPT.agc				# pp. 1449-1451
+$DISPLAY_INTERFACE_ROUTINES.agc			# pp. 1452-1484
+$SERVICE_ROUTINES.agc				# pp. 1485-1492
+$ALARM_AND_ABORT.agc				# pp. 1493-1496
+$UPDATE_PROGRAM.agc				# pp. 1497-1507
+$RT8_OP_CODES.agc				# pp. 1508-1516
+
+						# pp. 1517-1751: GAP-generated tables.
+
+
+
+
+
diff --git a/MEASUREMENT_INCORPORATION.s b/MEASUREMENT_INCORPORATION.s
new file mode 100644
index 0000000..7cfb133
--- /dev/null
+++ b/MEASUREMENT_INCORPORATION.s
@@ -0,0 +1,503 @@
+# Copyright:	Public domain.
+# Filename:	MEASUREMENT_INCORPORATION.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:	1252-1261
+# Mod history:	2009-05-14 RSB	Adapted 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 1252
+# INCORP1 -- PERFORMS THE SIX DIMENSIONAL STATE VECTOR DEVIATION FOR POSITION
+# AND VELOCITY OR THE NINE-DIMENSIONAL DEVIATION OF POSITION, VELOCITY, AND
+# RADAR OR LANDMARK BIAS.  THE OUTPUT OF THE BVECTOR ROUTINE ALONG WITH THE
+# ERROR TRANSITION MATRIX (W) ARE USED AS INPUT TO THE ROUTINE.  THE DEVIATION
+# IS OBTAINED BY COMPUTING AN ESTIMATED TRACKING MEASUREMENT FROM THE
+# CURRENT STATE VECTOR AND COMPARING IT WITH AN ACTUAL TRACKING MEASUREMENT
+# AND APPLYING A STATISTICAL WEIGHTING VECTOR.
+#
+# INPUT
+#	 DMENFLG = 0 (6-DIMENSIONAL BVECTOR), =1 (9-DIMENSIONAL)
+#	       W = ERROR TRANSITION MATRIX 6X6 OR 9X9
+#	VARIANCE = VARIANCE (SCALAR)
+#	  DELTAQ = MEASURED DEVIATION (SCALAR)
+#	 BVECTOR = 6 OR 9 DIMENSIONAL BVECTOR
+#
+# OUTPUT
+#	  DELTAX = STATE VECTOR DEVIATIONS 6 OR 9 DIMENSIONAL
+#	      ZI = VECTOR USED FOR THE INCORPORATION 6 OR 9 DIMENSIONAL
+#	   GAMMA = SCALAR
+#	   OMEGA = OMEGA WEIGHTING VECTOR 6 OR 9 DIMENSIONAL
+#
+# CALLING SEQUENCE
+#	L	CALL 	INCORP1
+#
+# NORMAL EXIT
+#	L+1 OF CALLING SEQUENCE
+
+		BANK	37
+		SETLOC	MEASINC
+		BANK
+
+		COUNT*	$$/INCOR
+
+		EBANK=	W
+
+INCORP1		STQ
+			EGRESS
+		AXT,1	SSP
+			54D
+			S1
+			18D		# IX1 = 54 	S1= 18
+		AXT,2	SSP
+			18D
+			S2
+			6		# IX2 = 18	S2=6
+Z123		VLOAD	MXV*
+			BVECTOR		# BVECTOR (0)
+			W 	+54D,1
+		STORE	ZI 	+18D,2
+		VLOAD
+			BVECTOR +6	# BVECTOR (1)
+# Page 1253
+		MXV*	VAD*
+			W +108D,1
+			ZI +18D,2
+		STORE	ZI +18D,2
+		VLOAD
+			BVECTOR +12D	# BVECTOR (2)
+		MXV*	VAD*
+			W 	+162D,1
+			ZI 	+18D,2	# B(0)*W+B(1)*(W+54)+B(2)*(W+108) FIRST PASS
+		STORE	ZI 	+18D,2	# ZI THEN Z2 THEN Z3
+		TIX,1
+			INCOR1
+INCOR1		TIX,2	BON
+			Z123		# LOOP FOR Z1,Z2,Z3
+			DMENFLG
+			INCOR1A
+		VLOAD
+			ZEROVECS
+		STORE	ZI 	+12D
+INCOR1A		SETPD	VLOAD
+			0
+			ZI
+		VSQ	RTB
+			TPMODE
+		PDVL	VSQ
+			ZI 	+6
+		RTB	TAD
+			TPMODE
+		PDVL	VSQ
+			ZI 	+12D
+		RTB	TAD
+			TPMODE
+		TAD	AXT,2
+			VARIANCE
+			0
+		STORE	TRIPA		# ZI*2 + Z2*2 + Z3*2 + VARIANCE
+		TLOAD	BOV
+			VARIANCE	# CLEAR OVFIND
+			+1
+		STORE	TEMPVAR		# TEMP STORAGE FOR VARIANCE
+		BZE
+			INCOR1C
+INCOR1B		SL2	BOV
+			INCOR1C
+		STORE	TEMPVAR
+		INCR,2	GOTO
+		DEC	1
+			INCOR1B
+INCOR1C		TLOAD	ROUND
+			TRIPA
+# Page 1254
+		DMP	SQRT
+			TEMPVAR
+		SL*	TAD
+			0,2
+			TRIPA
+		NORM	INCR,2
+			X2
+		DEC	-2
+		SXA,2	AXT,2
+			NORMGAM		# NORMALIZATION COUNT -2 FOR GAMMA
+			162D
+		BDDV	SETPD
+			DP1/4TH
+			0
+		STORE	GAMMA
+		TLOAD	NORM
+			TRIPA
+			X1
+		DLOAD	PDDL		# PD 0-1 = NORM (A)
+			MPAC
+			DELTAQ
+		NORM
+			S1
+		XSU,1	SR1
+			S1
+		DDV	PUSH		# PD 0-1 = DELTAQ/A
+		GOTO
+			NEWZCOMP
+	-3	SSP
+			S2
+			54D
+INCOR2		VLOAD	VXM*		# COMPUT OMEGA1,2,3
+			ZI
+			W 	+162D,2
+		PUSH	VLOAD
+			ZI 	+6
+		VXM*	VAD
+			W 	+180D,2
+		PUSH	VLOAD
+			ZI 	+12D
+		VXM*	VAD
+			W 	+198D,2
+		PUSH	TIX,2		# PD 2-7=OMEGA1, 8-13=OMEGA2, 14-19=OMEGA3
+			INCOR2
+		VLOAD	STADR
+		STORE	OMEGA 	+12D
+		VLOAD	STADR
+		STORE	OMEGA 	+6
+		VLOAD	STADR
+		STORE	OMEGA
+# Page 1255
+		BON	VLOAD
+			DMENFLG
+			INCOR2AB
+			ZEROVECS
+		STORE	OMEGA 	+12D
+INCOR2AB	AXT,2	SSP
+			18D
+			S2
+			6
+INCOR3		VLOAD*
+			OMEGA 	+18D,2
+		VXSC	VSL*
+			0		# DELTAQ/A
+			0,1
+		STORE	DELTAX 	+18D,2
+		TIX,2	VLOAD
+			INCOR3
+			DELTAX 	+6
+		VSL3
+		STORE	DELTAX 	+6
+		GOTO
+			EGRESS
+
+# Page 1256
+# INCORP2 -- INCORPORATES THE COMPUTED STATE VECTOR DEVIATIONS INTO THE
+# ESTIMATED STATE VECTOR.  THE STATE VECTOR UPDATED MAY BE FOR EITHER THE
+# LEM OR THE CSM.  DETERMINED BY FLAG VEHUPFLG.  (ZERO = LEM) (1 = CSM)
+#
+# INPUT
+#	PERMANENT STATE VECTOR FOR EITHER THE LEM OR CSM
+#	VEHUPFLG = UPDATE VEHICLE C=LEM 1=CSM
+#	W = ERROR TRANSITION MATRIX
+#	DELTAX = COMPUTED STATE VECTOR DEVIATIONS
+# 	DMENFLG = SIZE OF W MATRIX (ZERO=6X6) (1=9X9)
+#	GAMMA = SCALAR FOR INCORPORATION
+# 	ZI = VECTOR USED IN INCORPORATION
+#	OMEGA = WEIGHTING VECTOR
+#
+# OUTPUT
+#	UPDATED PERMANENT STATE VECTOR
+#
+# CALLING SEQUENCE
+#	L	CALL	INCORP2
+#
+# NORMAL EXIT
+#	L+1 OF CALLING SEQUENCE
+#
+
+		SETLOC	MEASINC1
+		BANK
+
+		COUNT*	$$/INCOR
+
+INCORP2		STQ	CALL
+			EGRESS
+			INTSTALL
+		VLOAD	VXSC		# CALC. GAMMA*OMEGA1,2,3
+			OMEGA
+			GAMMA
+		STOVL	OMEGAM1
+			OMEGA +6
+		VXSC
+			GAMMA
+		STOVL	OMEGAM2
+			OMEGA +12D
+		VXSC
+			GAMMA
+		STORE	OMEGAM3
+		EXIT
+		CAF	54DD		# INITIAL IX 1 SETTING FOR W MATRIX
+		TS	WIXA
+		TS	WIXB
+		CAF	ZERO
+		TS	ZIXA		# INITIAL IX 2 SETTING FOR Z COMPONENT
+		TS	ZIXB
+FAZA		TC	PHASCHNG
+# Page 1257
+		OCT	04022
+		TC	UPFLAG
+		ADRES	REINTFLG
+FAZA1		CA	WIXB		# START FIRST PHASE OF INCORP2
+		TS	WIXA		# TO UPDATE 6 OR 9 DIM. W MATRIX IN TEMP
+		CA	ZIXB
+		TS	ZIXA
+		TC	INTPRET
+		LXA,1	LXA,2
+			WIXA
+			ZIXA
+		SSP	DLOAD*
+			S1
+			6
+			ZI,2
+		DCOMP	NORM		# CALC UPPER 3X9 PARTITION OF W MATRIX
+			S2
+		VXSC	XCHX,2
+			OMEGAM1
+			S2
+		LXC,2	XAD,2
+			X2
+			NORMGAM
+		VSL*	XCHX,2
+			0,2
+			S2
+		VAD*
+			W +54D,1
+		STORE	HOLDW
+		DLOAD*	DCOMP		# CALC MIDDLE 3X9 PARTITION OF W MATRIX
+			ZI,2
+		NORM	VXSC
+			S2
+			OMEGAM2
+		XCHX,2	LXC,2
+			S2
+			X2
+		XAD,2	VSL*
+			NORMGAM
+			0,2
+		XCHX,2	VAD*
+			S2
+			W +108D,1
+		STORE	HOLDW +6
+		BOFF
+			DMENFLG		# BRANCH IF 6 DIMENSIONAL
+			FAZB
+		DLOAD*	DCOMP		# CALC LOWER 3X9 PARTITION OF W MATRIX
+			ZI,2
+		NORM	VXSC
+# Page 1258
+			S2
+			OMEGAM3
+		XCHX,2	LXC,2
+			S2
+			X2
+		XAD,2	VSL*
+			NORMGAM
+			0,2
+		XCHX,2	VAD*
+			S2
+			W +162D,1
+		STORE	HOLDW +12D
+FAZB		CALL
+			GRP2PC
+		EXIT
+FAZB1		CA	WIXA		# START 2ND PHASE OF INCORP2 TO TRANSFER
+		AD	6DD		# 	TEMP REG TO PERM W MATRIX
+		TS	WIXB
+		CA	ZIXA
+		AD	MINUS2
+		TS	ZIXB
+		TC	INTPRET
+		LXA,1	SSP
+			WIXA
+			S1
+			6
+		VLOAD
+			HOLDW
+		STORE	W +54D,1
+		VLOAD
+			HOLDW +6
+		STORE	W +108D,1
+		BOFF	VLOAD
+			DMENFLG
+			FAZB5
+			HOLDW +12D
+		STORE	W +162D,1
+FAZB2		TIX,1	GOTO
+			+2
+			FAZC		# DONE WITH W MATRIX.  UPDATE STATE VECTOR
+		RTB
+			FAZA
+FAZB5		SLOAD	DAD
+			ZIXB
+			12DD
+		BHIZ	GOTO
+			FAZC
+			FAZB2
+FAZC		CALL
+			GRP2PC
+# Page 1259
+		VLOAD	VAD		# START 3RD PHASE OF INCORP2
+			X789		# 7TH, 8TH, 9TH COMPONENTN OF STATE VECTOR
+			DELTAX 	+12D	# INCORPORATION FOR X789
+		STORE	TX789
+		BON	RTB
+			VEHUPFLG
+			DOCSM
+			MOVEPLEM
+FAZAB		BOVB	AXT,2
+			TCDANZIG
+			0
+		BOFF	AXT,2
+			MOONTHIS
+			+2
+			2
+		VLOAD	VSR*
+			DELTAX		# B27 IF MOON ORBIT, B29 IF EARTH
+			0 -7,2
+		VAD	BOV
+			TDELTAV
+			FAZAB1
+		STOVL	TDELTAV
+			DELTAX 	+6	# B5 IF MOON ORBIT, B7 IF EARTH
+		VSR*	VAD
+			0 -4,2
+			TNUV
+		BOV
+			FAZAB2
+		STCALL	TNUV
+			FAZAB3
+FAZAB1		VLOAD	VAD
+			RCV
+			DELTAX
+		STORE	RCV
+FAZAB2		VLOAD	VAD
+			VCV
+			DELTAX 	+6
+		STORE	VCV
+		SXA,2	CALL
+			PBODY
+			RECTIFY
+FAZAB3		CALL
+			GRP2PC
+		BON	RTB
+			VEHUPFLG
+			DOCSM1
+			MOVEALEM
+		CALL
+			SVDWN2		# STORE DOWNLINK STATE VECTOR
+FAZAB4		CALL
+# Page 1260
+			GRP2PC		# PHASE CHANGE
+		BOFF	VLOAD
+			DMENFLG
+			FAZAB5		# 6 DIMENSIONAL
+			TX789		# 9 DIMENSIONAL
+		STORE	X789
+FAZAB5		LXA,1	SXA,1
+			EGRESS
+			QPRET
+		EXIT
+		TC	POSTJUMP	# EXIT
+		CADR	INTWAKE
+DOCSM		RTB	GOTO
+			MOVEPCSM
+			FAZAB
+DOCSM1		RTB	CALL
+			MOVEACSM
+			SVDWN1		# STORE DOWNLINK STATE VECTOR
+		GOTO
+			FAZAB4
+ZEROD		=	ZEROVECS
+54DD		DEC	54
+6DD		DEC	-6
+12DD		DEC	12
+		SETLOC	MEASINC2
+		BANK
+		COUNT*	$$/INCOR
+
+NEWZCOMP	VLOAD	ABVAL
+			ZI
+		STOVL	NORMZI
+			ZI +6
+		ABVAL	PUSH
+		DSU	BMN
+			NORMZI
+			+3
+		DLOAD	STADR
+		STORE	NORMZI
+		VLOAD	ABVAL
+			ZI +12D
+		PUSH	DSU
+			NORMZI
+		BMN	DLOAD
+			NEWZCMP1
+		STADR
+		STCALL	NORMZI		# LARGEST ABVAL
+			NEWZCMP1
+			
+		SETLOC	MEASINC3
+		BANK
+		
+# Page 1261		
+NEWZCMP1		DLOAD	SXA,1
+			NORMZI
+			NORMZI		# SAVE X1
+		NORM	INCR,1
+			X1
+		DEC	2
+		VLOAD	VSL*
+			ZI
+			0,1
+		STOVL	ZI
+			ZI +6
+		VSL*
+			0,1
+		STOVL	ZI +6
+			ZI +12D
+		VSL*	SXA,1
+			0,1
+			NORMZI +1	# SAVE SHIFT
+		STORE	ZI +12D
+		LXA,1	XSU,1
+			NORMGAM
+			NORMZI +1
+		XSU,1
+			NORMZI +1
+		SXA,1	LXC,1
+			NORMGAM
+			NORMZI +1
+		XAD,1	SETPD
+			NORMZI
+			2D
+		GOTO
+			INCOR2 -3
+NORMZI		=	36D
+
+
+
+
diff --git a/MYSUBS.s b/MYSUBS.s
new file mode 100644
index 0000000..d8a8ba3
--- /dev/null
+++ b/MYSUBS.s
@@ -0,0 +1,92 @@
+# 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=	KMPAC
+SPCOS1		EQUALS	SPCOS
+SPSIN1		EQUALS	SPSIN
+SPCOS2		EQUALS	SPCOS
+SPSIN2		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 = 0
+TSK		TS	KMPAC
+		TC	Q
+		
+DPADD+		AD	NEGMAX		# KMPAC GREATER THAN 0
+		TCF	TSK
+
+# Page 1000
+DPADD-		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)
+
diff --git a/ORBITAL_INTEGRATION.s b/ORBITAL_INTEGRATION.s
new file mode 100644
index 0000000..14c51aa
--- /dev/null
+++ b/ORBITAL_INTEGRATION.s
@@ -0,0 +1,949 @@
+# Copyright:	Public domain.
+# Filename:	ORBITAL_INTEGRATION.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:	1334-1354
+# Mod history:	2009-05-14 RSB	Adapted from the Colossus249/ file of the
+#				same name, using Comanche055 page images.
+#		2009-05-20 RSB	Corrections:  DAT -> DAD in one place, 
+#				BWM -> BMN, DEFEQCNT -> DIFEQCNT.
+#
+# 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 1334
+# ORBITAL INTEGRATION
+
+# DELETE
+		BANK	13
+		SETLOC	ORBITAL
+		BANK
+		COUNT	11/ORBIT
+
+# DELETE
+KEPPREP		LXA,2	SETPD
+			PBODY
+			0
+		DLOAD*	SQRT		# SQRT(MU) (+18 OR +15)		0D	PL 2D
+			MUEARTH,2
+		PDVL	UNIT		#					PL 8D
+			RCV
+		PDDL	NORM		# NORM R (+29 OR +27 - N1)	2D	PL 4D
+			36D
+			X1
+		PDVL
+		DOT	PDDL		# F*SQRT(MU) (+7 OR +5) 	4D	PL 6D
+			VCV
+			TAU.		# (+28)
+		DSU	NORM
+			TC
+			S1
+		SR1
+		DDV	PDDL
+			2D
+		DMP	PUSH		# FS (+6 +N1-N2) 		6D	PL 8D
+			4D
+		DSQ	PDDL		# (FS)SQ (+12 +2(N1-N2))	8D	PL 10D
+			4D
+		DSQ	PDDL*		# SSQ/MU (-2 OR +2(N1-N2))	10D	PL 12D
+			MUEARTH,2
+		SR3	SR4
+		PDVL	VSQ		# PREALIGN MU (+43 OR +37) 	12D	PL 14D
+			VCV
+		DMP	BDSU		#					PL 12D
+			36D
+		DDV	DMP		#					PL 10D
+			2D		# -(1/R-ALPHA) (+12 +3N1-2N2)
+		DMP	SL*
+			DP2/3
+			0 	-3,1	# 10L(1/R-ALPHA) (+13 +2(N1-N2))
+		XSU,1	DAD		# 2(FS)SQ - ETCETERA			PL 8D
+			S1		# X1 = N2-N1
+		SL*	DSU		# -FS+2(FS)SQ ETC (+6 +N1-N2)		PL 6D
+			8D,1
+		DMP	DMP
+			0D
+			4D
+		SL*	SL*
+# Page 1335
+			8D,1
+			0,1		# S(-FS(1-2FS)-1/6...) (+17 OR +16)
+		DAD	PDDL		#					PL 6D
+			XKEP
+		DMP	SL*		# S(+17 OR +16)
+			0D
+			1,1
+		BOVB	DAD
+			TCDANZIG
+		STADR
+		STORE	XKEPNEW
+		STQ	AXC,1
+			KEPRTN
+		DEC	10
+		BON	AXC,1
+			MOONFLAG
+			KEPLERN
+		DEC	2
+		GOTO
+			KEPLERN
+
+# Page 1336
+FBR3		LXA,1	SSP
+			DIFEQCNT
+			S1
+		DEC	-13
+		DLOAD	SR
+			DT/2
+			9D
+		TIX,1	ROUND
+			+1
+		PUSH	DAD
+			TC
+		STODL	TAU.
+		DAD
+			TET
+		STCALL	TET
+			KEPPREP
+
+# Page 1337
+# AGC ROUTINE TO COMPUTE ACCELERATION COMPONENTS.
+
+ACCOMP		LXA,1	LXA,2
+			PBODY
+			PBODY
+		VLOAD
+			ZEROVEC
+		STOVL	FV
+			ALPHAV
+		VSL*	VAD
+			0 -7,2
+			RCV
+		STORE	BETAV
+		BOF	XCHX,2
+			DIM0FLAG
+			+5
+			DIFEQCNT
+		STORE	VECTAB,2
+		XCHX,2
+			DIFEQCNT
+		VLOAD	UNIT
+			ALPHAV
+		STODL	ALPHAV
+			36D
+		STORE	ALPHAM
+		CALL
+			GAMCOMP
+		VLOAD	SXA,1
+			BETAV
+			S2
+		STODL	ALPHAV
+			BETAM
+		STORE	ALPHAM
+		BOF	DLOAD
+			MIDFLAG
+			OBLATE
+			TET
+		CALL
+			LSPOS
+		AXT,2	LXA,1
+			2
+			S2
+		BOF
+			MOONFLAG
+			+3
+		VCOMP	AXT,2
+			0
+		STORE	BETAV
+		STOVL	RPQV
+# Page 1338
+			2D
+		STORE	RPSV
+		BOF	VLOAD
+			DIM0FLAG
+			GETRPSV
+			ALPHAV
+		VXSC	VSR*
+			ALPHAM
+			1,2
+		VSU	XCHX,2
+			BETAV
+			DIFEQCNT
+		STORE	VECTAB +6,2
+		XCHX,2
+			DIFEQCNT
+GETRPSV		VLOAD	INCR,1
+			RPQV
+			4
+		CLEAR	BOF
+			RPQFLAG
+			MOONFLAG
+			+5
+		VSR	VAD
+			9D
+			RPSV
+		STORE	RPSV
+		CALL
+			GAMCOMP
+		AXT,2	INCR,1
+			4
+			4
+		VLOAD
+			RPSV
+		STCALL	BETAV
+			GAMCOMP
+		GOTO
+			OBLATE
+GAMCOMP		VLOAD	VSR1
+			BETAV
+		VSQ	SETPD
+			0
+		NORM	ROUND
+			31D
+		PDDL	NORM		# NORMED B SQUARED TO PD LIST
+			ALPHAM		# NORMALIZE (LESS ONE) LENGTH OF ALPHA
+			32D		# SAVING NORM SCALE FACTOR IN X1
+		SR1	PDVL
+			BETAV		# C(PDL+2) = ALMOST NORMED ALPHA
+		UNIT
+		STODL	BETAV
+# Page 1339
+			36D
+		STORE	BETAM
+		NORM	BDDV		# FORM NORMALIZE QUOTIEN ALPHAM/BETAM
+			33D
+		SR1R	PUSH		# C(PDL+2) = ALMOST NORMALIZE RHO.
+		DLOAD*
+			ASCALE,1
+		STORE	S1
+		XCHX,2	XAD,2
+			S1
+			32D
+		XSU,2	DLOAD
+			33D
+			2D
+		SR*	XCHX,2
+			0 	-1,2
+			S1
+		PUSH	SR1R		# RHO/4 TO 4D
+		PDVL	DOT
+			ALPHAV
+			BETAV
+		SL1R	BDSU		# (RHO/4) - 2(ALPHAV/2.BETAV/2)
+		PUSH	DMPR		# TO PDL+6
+			4
+		SL1
+		PUSH	DAD
+			DQUARTER
+		PUSH	SQRT
+		DMPR	PUSH
+			10D
+		SL1	DAD
+			DQUARTER
+		PDDL	DAD		# (1/4)+2((Q+1)/4)	TO PD+14D
+			10D
+			HALFDP
+		DMPR	SL1
+			8D
+		DAD	DDV
+			THREE/8
+			14D
+		DMPR	VXSC
+			6
+			BETAV
+		PDVL	VSR3		# (G/2)(C(PD+4))B/2 TO PD+16D
+			ALPHAV
+		VAD	PUSH		# A12 + C(PD+16D) TO PD+16D
+		DLOAD	DMP
+			0
+			12D
+		NORM	ROUND
+# Page 1340
+			30D
+		BDDV	DMP*
+			2
+			MUEARTH,2
+		DCOMP	VXSC
+		XCHX,2	XAD,2
+			S1
+			S2
+		XSU,2	XSU,2
+			30D
+			31D
+		BOV			# CLEAR OVIND
+			+1
+		VSR*	XCHX,2
+			0 	-1,2
+			S1
+		VAD
+			FV
+		STORE	FV
+		BOV	RVQ		# RETURN IF NO OVERFLOW
+			+1
+GOBAQUE		VLOAD	ABVAL
+			TDELTAV
+		BZE
+			INT-ABRT
+		DLOAD	SR
+			H
+			9D
+		PUSH	BDSU
+			TC
+		STODL	TAU.
+			TET
+		DSU	STADR
+		STCALL	TET
+			KEPPREP
+		CALL
+			RECTIFY
+		SETGO
+			RPQFLAG
+			TESTLOOP
+
+INT-ABRT	EXIT
+		TC	P00DOO
+		OCT	00430
+
+# Page 1341
+# THE OBLATE ROUTINE COMPUTES THE ACCELERATION DUE TO OBLATENESS.  IT USES THE UNIT OF THE VEHICLE
+# POSITION VECTOR FOUND IN ALPHAV AND THE DISTANCE TO THE CENTER IN ALPHAM.  THIS IS ADDED TO THE SUM OF THE
+# DISTURBING ACCELERATIONS IN FV AND THE PROPER DIFEQ STAGE IS CALLED VIA X1.
+
+OBLATE		LXA,2	DLOAD
+			PBODY
+			ALPHAM
+		SETPD	DSU*
+			0
+			RDE,2
+		BPL	BOF		# GET URPV
+			NBRANCH
+			MOONFLAG
+			COSPHIE
+		VLOAD	PDDL
+			ALPHAV
+			TET
+		PDDL	CALL
+			3/5
+			R-TO-RP
+		STORE	URPV
+		VLOAD	VXV
+			504LM
+			ZUNIT
+		VAD	VXM
+			ZUNIT
+			MMATRIX
+		UNIT			# PROBABLY UNNECESSARY.
+COMTERM		STORE	UZ
+		DLOAD	DMPR
+			COSPHI/2
+			3/32
+		PDDL	DSQ		# P2/64 TO PD0
+			COSPHI/2
+		DMPR	DSU
+			15/16
+			3/64
+		PUSH	DMPR		# P3/32 TO PD2
+			COSPHI/2
+		DMP	SL1R
+			7/12
+		PDDL	DMPR
+			0
+			2/3
+		BDSU	PUSH		# P4/128 TO PD4
+		DMPR	DMPR
+			COSPHI/2	# BEGIN COMPUTING P5/1024
+			9/16
+		PDDL	DMPR
+			2
+			5/128
+# Page 1342
+		BDSU
+		DMP*
+			J4REQ/J3,2
+		DDV	DAD		#              -3
+			ALPHAM		# (((P5/256)B 2  /R+P4/32)  /R+P3/8)ALPHAV
+			4		#            4             3
+		DMPR*	DDV
+			2J3RE/J2,2
+			ALPHAM
+		DAD	VXSC
+			2
+			ALPHAV
+		STODL	TVEC
+		DMP*	SR1
+			J4REQ/J3,2
+		DDV	DAD
+			ALPHAM
+		DMPR*	SR3	           
+			2J3RE/J2,2
+		DDV	DAD	
+			ALPHAM
+		VXSC	VSL1	      
+			UZ	
+		BVSU		
+			TVEC	        
+		STODL	TVEC	
+			ALPHAM	
+		NORM	DSQ	
+			X1	
+		DSQ	NORM
+			S1		#         4
+		PUSH	BDDV*		# NORMED R  TO 0D
+			J2REQSQ,2
+		VXSC	BOV
+			TVEC
+			+1		# (RESET OVERFLOW INDICATOR)
+		XAD,1	XAD,1
+			X1
+			X1
+		XAD,1	VSL*
+			S1
+			0	-22D,1
+		VAD	BOV
+			FV
+			GOBAQUE
+		STCALL	FV
+			QUALITY1
+QUALITY3	DSQ			# J22 TERM X R**4 IN 2D.  SCALED B61
+					# AS VECTOR.
+		PUSH	DMP		# STORE COSPHI**2 SCALED B2 IN 8D.
+# Page 1343		
+			5/8		# 5 SCALED B3
+		PDDL	SR2		# PUT 5 COSPHI**2, D5, IN 8D. GET
+					# COSPHI**2 D2 FROM 8D
+		DAD	BDSU		# END UP WITH (1-7 COSPHI**2), B5
+			8D		# ADDING COSPHI**2 B4 SAME AS COSPHI**2
+					# X 2 D5
+			D1/32		# 1 SCALED B5
+		DMP	DMP
+			URPV		# X COMPONENT
+			5/8		# 5 SCALED B3
+		VXSC	VSL5		# AFTER SHIFT, SCALED B5
+			URPV		# VECTOR, B1.
+		PDDL			# VECTOR INTO 8D, 10D, 12D, SCALED B5.
+					# GET 5 COSPHI**2 OUT OF 8D
+		DSU	DAD
+			D1/32		# 1 B5
+			8D		# X COMPONENT (SAME AS MULTIPLYING
+					# BY UNITX)
+		STODL	8D
+			URPV		# X COMPONENT
+		DMP	DMP
+			URPV	+4	# Z COMPONENT
+			5/8		# 5 B3 ANSWER B5
+		SL1	DAD		# FROM 12D FOR Z COMPONENT (SL1 GIVES 10
+					# INSTEAD OF 5 FOR COEFFICIENT)
+		PDDL	NORM		# BACK INTO 12D FOR Z COMPONENT
+			ALPHAM		# SCALED B27 FOR MOON
+			X2
+		PUSH	SLOAD		# STORE IN 14D, DESTROYING URPV
+					# X COMPONENT
+			E32C31RM
+		DDV	VXSC		# IF X2 = 0, DIVISION GIVES B53, VXSC
+					# out of 8D B5 GIVES B58
+		VSL*	VAD		# SHIFT MAKES B61, FOR ADDITION OF
+					# VECTOR IN 2D
+			0	-3,2
+		VSL*	V/SC		# OPERAND FROM 0D, B108 FOR X1 = 0
+			0	-27D,1	# FOR X1 = 0, MAKES B88, GIVING B-20
+					# FOR RESULT.
+		PDDL	PDDL
+			TET
+				5/8	# ANY NON-ZERO CONSTANT
+		LXA,2	CALL		# POSITION IN 0D, TIME IN 6D. X2 LEFT
+					# ALONE.
+			PBODY
+			RP-TO-R
+		VAD	BOV		# OVERFLOW INDICATOR RESET IN *RP-TO-R*
+			FV
+			GOBAQUE
+		STORE	FV
+# Page 1344
+NBRANCH		SLOAD	LXA,1
+			DIFEQCNT
+			MPAC
+		DMP	CGOTO
+			-1/12
+			MPAC
+			DIFEQTAB
+COSPHIE		DLOAD
+			ALPHAV +4
+		STOVL	COSPHI/2
+			ZUNIT
+		GOTO
+			COMTERM
+DIFEQTAB	CADR	DIFEQ+0
+		CADR	DIFEQ+1
+		CADR	DIFEQ+2
+		
+TIMESTEP	BOF	CALL
+			MIDFLAG
+			RECTEST		# SKIP ORIGIN CHANGE LOGIC
+			CHKSWTCH
+		BMN
+			DOSWITCH
+			
+RECTEST		VLOAD	ABVAL		# RECTIFY IF
+			TDELTAV
+		BOV
+			CALLRECT
+		DSU	BPL		#	1) EITHER TDELTAV OR TNUV EQUALS OR
+			3/4		#	   EXCEEDS 3/4 IN MAGNITUDE
+			CALLRECT	#
+		DAD	SL*		#			OR
+			3/4		#
+			0 -7,2		#	2) ABVAL(TDELTAV) EQUALS OR EXCEEDS
+		DDV	DSU		#	   .01(ABVAL(RCV))
+			10D
+			RECRATIO
+		BPL	VLOAD
+			CALLRECT
+			TNUV
+		ABVAL	DSU
+			3/4
+		BOV
+			CALLRECT
+		BMN
+			INTGRATE
+CALLRECT	CALL
+			RECTIFY
+INTGRATE	VLOAD
+			TNUV
+# Page 1345			
+		STOVL	ZV
+			TDELTAV
+		STORE	YV
+		CLEAR
+			JSWITCH
+DIFEQ0		VLOAD	SSP
+			YV
+			DIFEQCNT
+			0
+		STODL	ALPHAV
+			DPZERO
+		STORE	H		# START H AT ZERO.  GOES 0(DELT/2)DELT.
+		BON	GOTO
+			JSWITCH
+			DOW..
+			ACCOMP
+
+CHKSWTCH	STQ	BOF
+			ORIGEX
+			RPQFLAG
+			RPQOK		# MOON POSITION IS AVAILABLE
+		DLOAD	CALL
+			TET
+			LUNPOS		# GET MOON POSITION
+		BOF	VCOMP
+			MOONFLAG
+			+1
+		STORE	RPQV
+
+RPQOK		LXA,2	VLOAD		# RESTORE X2 AFTER USING LUNPOS
+			PBODY
+			TDELTAV		#  _
+		VSL*	VAD		# |RQC|-RSPHERE WHEN OUTSIDE THE SPHERE.
+			0	-7,2	# _   _            _
+			RCV		# R = RDEVIATION + RCONIC
+		BOF	ABVAL
+			MOONFLAG
+			EARSPH
+		SR2	BDSU		# INSIDE
+			RSPHERE
+		GOTO	
+			ORIGEX
+EARSPH		VSU	ABVAL		# OUTSIDE
+			RPQV
+		DSU	GOTO
+			RSPHERE
+			ORIGEX
+			
+DOSWITCH	CALL
+			ORIGCHNG
+		GOTO
+			INTGRATE
+
+# Page 1346			
+ORIGCHNG	STQ	CALL
+			ORIGEX
+			RECTIFY
+		VLOAD	VSL*
+			RCV
+			0,2
+		VSU	VSL*
+			RPQV
+			2,2
+		STORE	RRECT
+		STODL	RCV
+			TET
+		CALL
+			LUNVEL
+		BOF	VCOMP
+			MOONFLAG
+			+1
+		PDVL	VSL*
+			VCV
+			0,2
+		VSU
+		VSL*
+			0 +2,2
+		STORE	VRECT
+		STORE	VCV
+		LXA,2	SXA,2
+			ORIGEX
+			QPRET
+		BON	GOTO
+			MOONFLAG
+			CLRMOON
+			SETMOON
+# Page 1347
+# THE RECTIFY SUBROUTINE IS CALLED BY THE INTEGRATION PROGRAM AND OCCASIONALLY BY THE MEASUREMENT INCORPORATION
+# ROUTINES TO ESTABLISH A NEW CONIC.
+
+RECTIFY		LXA,2	VLOAD
+			PBODY
+			TDELTAV
+		VSL*	VAD
+			0 	-7,2
+			RCV
+		STORE	RRECT
+		STOVL	RCV
+			TNUV
+		VSL*	VAD
+			0 	-4,2
+			VCV
+MINIRECT	STORE	VRECT
+		STOVL	VCV
+			ZEROVEC
+		STORE	TDELTAV
+		STODL	TNUV
+			ZEROVEC
+		STORE	TC
+		STORE	XKEP
+		RVQ
+
+# Page 1348
+# THE THREE DIFEQ ROUTINES -- DIFEQ+0, DIFEQ+12, DIFEQ+24 -- ARE ENTERED TO PROCESS THE CONTRIBUTIONS AT THE
+# BEGINNING, MIDDLE, AND END OF THE TIMESTEP, RESPECTIVELY.  THE UPDATING IS DONE BY THE NYSTROM METHOD.
+
+DIFEQ+0		VLOAD	VSR3
+			FV
+		STCALL	PHIV
+			DIFEQCOM
+DIFEQ+1		VLOAD	VSR1
+			FV
+		PUSH	VAD
+			PHIV
+		STOVL	PSIV
+		VSR1	VAD
+			PHIV
+		STCALL	PHIV
+			DIFEQCOM
+DIFEQ+2		DLOAD	DMPR
+			H
+			DP2/3
+		PUSH	VXSC
+			PHIV
+		VSL1	VAD
+			ZV
+		VXSC	VAD
+			H
+			YV
+		STOVL	YV
+			FV
+		VSR3	VAD
+			PSIV
+		VXSC	VSL1
+		VAD
+			ZV
+		STORE	ZV
+		BOFF	CALL
+			JSWITCH
+			ENDSTATE
+			GRP2PC
+		LXA,2	VLOAD
+			COLREG
+			ZV
+		VSL3			# ADJUST W-POSITION FOR STORAGE
+		STORE	W 	+54D,2
+		VLOAD
+			YV
+		VSL3	BOV
+			WMATEND
+		STORE	W,2
+
+		CALL
+			GRP2PC
+# Page 1349
+		LXA,2	SSP
+			COLREG
+			S2
+			0
+		INCR,2	SXA,2
+			6
+			YV
+		TIX,2	CALL
+			RELOADSV
+			GRP2PC
+		LXA,2	SXA,2
+			YV
+			COLREG
+
+NEXTCOL		CALL
+			GRP2PC
+		LXA,2	VLOAD*
+			COLREG
+			W,2
+		VSR3			# ADJUST W-POSITION FOR INTEGRATION
+		STORE	YV
+		VLOAD*	AXT,1
+			W 	+54D,2
+			0
+		VSR3			# ADJUST W-VELOCITY FOR INTEGRATION
+		STCALL	ZV
+			DIFEQ0
+
+ENDSTATE	BOV	VLOAD
+			GOBAQUE
+			ZV
+		STOVL	TNUV
+			YV
+		STORE	TDELTAV
+		BON	BOFF
+			MIDAVFLG
+			CKMID2		# CHECK FOR MID2 BEFORE GOING TO TIMEINC
+			DIM0FLAG
+			TESTLOOP
+		EXIT
+		TC	PHASCHNG
+		OCT	04022		# PHASE 1
+		TC	UPFLAG		# PHASE CHANGE HAS OCCURRED BETWEEN
+		ADRES	REINTFLG	# INTSTALL AND INTWAKE
+		TC	INTPRET
+		SSP
+			QPRET
+			AMOVED
+		BON	GOTO
+			VINTFLAG
+# Page 1350
+			ATOPCSM
+			ATOPLEM
+AMOVED		SET	SSP
+			JSWITCH
+			COLREG
+		DEC	-30
+		BOFF	SSP
+			D6OR9FLG
+			NEXTCOL
+			COLREG
+		DEC	-48
+		GOTO
+			NEXTCOL
+
+RELOADSV	DLOAD			# RELOAD TEMPORARY STATE VECTOR
+			TDEC		# FROM PERMANENT IN CASE OF
+		STCALL	TDEC1
+			INTEGRV2	# BY STARTING AT INTEGRV2.
+DIFEQCOM	DLOAD	DAD		# INCREMENT H AND DIFEQCNT.
+			DT/2
+			H
+		INCR,1	SXA,1
+		DEC	-12
+			DIFEQCNT	# DIFEQCNT SET FOR NEXT ENTRY.
+		STORE	H
+		VXSC	VSR1
+			FV
+		VAD	VXSC
+			ZV
+			H
+		VAD
+			YV
+		STORE	ALPHAV
+		BON	GOTO
+			JSWITCH
+			DOW..
+			FBR3
+
+WMATEND		CLEAR	CLEAR
+			DIM0FLAG	# DON'T INTEGRATE W THIS TIME
+			ORBWFLAG	# INVALIDATE W
+		CLEAR
+			RENDWFLG
+		SET	EXIT
+			STATEFLG	# PICK UP STATE VECTOR UPDATE
+		TC	ALARM
+		OCT	421
+		TC	INTPRET
+# Page 1351
+		GOTO
+			TESTLOOP	# FINISH INTEGRATING STATE VECTOR
+
+# Page 1352
+# ORBITAL ROUTINE FOR EXTRAPOLATION OF THE W MATRIX.  IT COMPUTES THE SECOND DERIVATIVE OF EACH COLUMN POSITION
+# VECTOR OF THE MATRIX AND CALLS THE NYSTROM INTEGRATION ROUTINES TO SOLVE THE DIFFERENTIAL EQUATIONS.  THE PROGRAM
+# USES A TABLE OF VEHICLE POSITION VECTORS COMPUTED DURING THE INTEGRATION OF THE VEHICLE'S POSITION AND VELOCITY.
+
+DOW..		LXA,2	DLOAD*
+			PBODY
+			MUEARTH,2
+		STCALL	BETAM
+			DOW..1
+		STORE	FV
+		BOF	INCR,1
+			MIDFLAG
+			NBRANCH
+		DEC	-6
+		LXC,2	DLOAD*
+			PBODY
+			MUEARTH 	-2,2
+		STCALL	BETAM
+			DOW..1
+		BON	VSR6
+			MOONFLAG
+			+1
+		VAD
+			FV
+		STCALL	FV
+			NBRANCH
+DOW..1		VLOAD	VSR4
+			ALPHAV
+		PDVL*	UNIT
+			VECTAB,1
+		PDVL	VPROJ
+			ALPHAV
+		VXSC	VSU
+			3/4
+		PDDL	NORM
+			36D
+			S2
+		PUSH	DSQ
+		DMP
+		NORM	PDDL
+			34D
+			BETAM
+		SR1	DDV
+		VXSC
+		LXA,2	XAD,2
+			S2
+			S2
+		XAD,2	XAD,2
+			S2
+			34D
+		VSL*	RVQ
+# Page 1353
+			0 -8D,2	
+
+		SETLOC	ORBITAL1
+		BANK
+
+3/5		2DEC	.6 B-2
+
+THREE/8		2DEC	.375
+
+.3D		2DEC	.3 B-2
+
+3/64		2DEC	3 B-6
+
+DP1/4		2DEC	.25
+
+DQUARTER	EQUALS	DP1/4
+POS1/4		EQUALS	DP1/4
+3/32		2DEC	3 B-5
+
+15/16		2DEC	15. B-4
+
+3/4		2DEC	3.0 B-2
+
+7/12		2DEC	.5833333333
+
+9/16		2DEC	9 B-4
+
+5/128		2DEC	5 B-7
+
+DPZERO		EQUALS	ZEROVEC
+DP2/3		2DEC	.6666666667
+
+2/3		EQUALS	DP2/3
+OCT27		OCT	27
+
+		BANK	13
+		SETLOC	ORBITAL2
+		BANK
+# IT IS VITAL THAT THE FOLLOWING CONSTANTS NOT BE SHUFFLED
+		DEC	-11
+		DEC	-2
+		DEC	-9
+		DEC	-6
+		DEC	-2
+		DEC	-2
+		DEC	0
+		DEC	-12
+		DEC	-9
+		DEC	-4
+ASCALE		DEC	-7
+		DEC	-6
+# Page 1354
+		2DEC*	1.32715445 E16 B-54*	# S
+		
+		2DEC*	4.9027780 E8 B-30*	# M
+		
+MUEARTH		2DEC*	3.986032 E10 B-36*
+
+		2DEC	0
+		
+J4REQ/J3	2DEC*	.4991607391 E7 B-26*
+
+		2DEC	-176236.02 B-25
+		
+2J3RE/J2	2DEC*	-.1355426363 E5 B-27*
+
+		2DEC*	.3067493316 E18 B-60*
+		
+J2REQSQ		2DEC*	1.75501139 E21 B-72*
+
+3J22R2MU	2DEC*	9.20479048 E16 B-58*		
+		
+5/8		2DEC	5 B-3
+
+-1/12		2DEC	-.1
+
+MUM		=	MUEARTH -2
+RECRATIO	2DEC	.01
+
+RSPHERE		2DEC	64373.76 E3 B-29
+
+RDM		2DEC	16093.44 E3 B-27
+
+RDE		2DEC	80467.20 E3 B-29
+
+RATT		EQUALS 	00
+VATT		EQUALS	6D
+TAT		EQUALS	12D
+RATT1		EQUALS	14D
+VATT1		EQUALS	20D
+MU(P)		EQUALS	26D
+TDEC1		EQUALS	32D
+URPV		EQUALS	14D
+COSPHI/2	EQUALS	URPV 	+4
+UZ		EQUALS	20D
+TVEC		EQUALS	26D
+
+
+
diff --git a/P-AXIS_RCS_AUTOPILOT.s b/P-AXIS_RCS_AUTOPILOT.s
new file mode 100644
index 0000000..41b0cfd
--- /dev/null
+++ b/P-AXIS_RCS_AUTOPILOT.s
@@ -0,0 +1,1056 @@
+# Copyright:	Public domain.
+# Filename:	P-AXIS_RCS_AUTOPILOT.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	1421-1441
+# Mod history:	2009-05-27 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#		2009-06-05 RSB	Corrected a relative jump from
+#				+8 to +8D.
+#		2009-06-07 RSB	Corrected a typo.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 1421
+		BANK	16
+		SETLOC	DAPS1
+		BANK
+
+		EBANK=	PERROR
+		COUNT*	$$/DAPP
+
+# THE FOLLOWING T5RUPT ENTRY BEGINS THE PROGRAM WHICH CONTROLS THE P-AXIS ACTION OF THE LEM USING THE RCS JETS.
+# THE NOMINAL TIME BETWEEN THE P-AXIS RUPTS IS 100 MS IN ALL NON-IDLING MODES OF THE DAP.
+
+PAXIS		CA	MS100
+		ADS	TIME5		# *** NECESSARY IN ORDER TO ALLOW
+					# SYNCHRONIZATION WITH OTHER INTERRUPTS ***
+
+		LXCH	BANKRUPT	# INTERRUPT LEAD IN (CONTINUED)
+		EXTEND
+		QXCH	QRUPT
+
+# CHECK IF DAP PASS IS PERMISSIBLE
+
+		CCS	DAPZRUPT	# IF DAPZRUPT POSITIVE, DAP (JASK) IS
+		TC	BAILOUT		# STILL IN PROGRESS AND A RESTART IS
+		OCT	02000		# CALLED FOR.  IT IS NEVER ZERO
+
+		TC	CHEKBITS	# RETURN IS TC I+1 IF DAP SHOULD STAY ON.
+
+		CA	CDUX		# READ AND STORE CDU'S
+		TS	DAPTREG4
+		CA	CDUY
+		TS	DAPTREG5
+		CA	CDUZ
+		TS	DAPTREG6
+
+# ***** KALCMANU-DAP AND "RATE-HOLD"-DAP INTERFACE *****
+#
+# THE FOLLOWING SECTION IS EXECUTED EVERY 100 MS (10 TIMES A SECOND) WITHIN THE P-AXIS REACTION CONTROL SYSTEM
+# AUTOPILOT (WHENEVER THE DAP IS IN OPERATION).
+
+		CA	CDUXD
+		EXTEND
+		MSU	DELCDUX
+		TC	1STOTWOS
+		TS	CDUXD
+		CA	CDUYD
+		EXTEND
+		MSU	DELCDUY
+		TC	1STOTWOS
+		TS	CDUYD
+		CA	CDUZD
+		EXTEND
+		MSU	DELCDUZ
+# Page 1422
+		TC	1STOTWOS
+		TS	CDUZD
+		EXTEND			# DIMINISH MANUAL CONTROL DIRECT RATE
+		DIM	TCP		# TIME COUNTERS.
+		EXTEND
+		DIM	TCQR
+
+# RATFLOOP COMPUTES JETRATEQ, JRATER, AND 1JACC*NO. PJEETS IN ITEMP1.
+# RETURNS TO BACKP.
+#
+# JETRATE = 1JACC*NO.PJETS*TJP		(NOTE TJ IS THE TIME FIRED DURING CSP)
+# JETRATEQ = 1JACCQ(TJU*NO.UJETS - TJV*NO.VJETS)
+# JETRATER = 1JACCR(TJU*NO.UJETS + TJV*NO.VJETS)
+
+		TCF	PAXFILT		# PROCEEDS TO RATELOOP AFTER SUPERJOB
+1STOTWOS	CCS	A
+		AD	ONE
+		TC	Q
+		CS	A
+		TC	Q
+SUBDIVDE	EXTEND			# OVERFLOW PROTECTION ROUTINE TO GIVE
+		MP	DAPTEMP3	# POSMAX OR NEGMAX IF THE DIVIDE WOULD
+		DAS	OMEGAU		# OVERFLOW
+
+	+3	EXTEND
+		DCA	OMEGAU
+		DXCH	DAPTEMP5
+		CCS	OMEGAU
+		TCF	+2
+		TCF	DIVIDER
+		AD	-OCT630
+		EXTEND
+		BZMF	DIVIDER
+
+		CCS	OMEGAU
+		CA	POSMAX		# 45 DEG/SEC
+		TC	Q
+		CS	POSMAX
+		TC	Q
+
+DIVIDER		DXCH	OMEGAU
+		EXTEND
+		DV	DAPTREG4
+		TC	Q
+
+OVERSUB		TS	7		# RETURNS A UNCHANGED OR LIMITED TO
+		TC	Q		# POSMAX OR NEGMAX IF A HAS OVERFLOW
+		INDEX	A
+		CS	BIT15 	-1
+# Page 1423
+		TC	Q
+
+-OCT630		OCT	77147
+
+BACKP		CA	DAPTEMP1
+		EXTEND
+		MP	1JACC
+		TS	JETRATE
+
+# BEGINNING OF THE RATE DERIVATION
+#	OMEGAP,Q,R	BODY RATES SCALED AT PI/4
+#	TRAPEDP,Q,R	BODY ANGLE ERRORS FROM PREDICTED ANGLE (PI/40)
+#	NP(QR)TRAPS	NUMBER OF TIMES ANGLE ERROR HAS BEEN ACCUMULATED
+#	AOSQ(R)TERM	CHANGE IN RATE DUE TO OFFSET ACCELERATION.  (PI/4)
+#	JETRATE,Q,R	CHANGE IN RATE DUE TO  JET   ACCELERATION.  (PI/4)
+#	TRAPSIZE	NEGATIVE LIMIT OF MAGNITUDE OF TRAPEDP, ETC.
+#	OMEGAU		DP-TEMPORARY STORAGE
+# OMEGA = OMEGA + JETRATE + AOSTERM (+TRAPED/NTRAPS IF TRAPED BIG)
+
+		CAE	DAPTREG4	# CDUX IS STORED HERE
+		TS	L
+		EXTEND
+		MSU	OLDXFORP	# SCALED AT PI
+		LXCH	OLDXFORP
+		TS	DAPTEMP1
+		CA	1/40
+		TS	DAPTREG4
+		CS	JETRATE
+		EXTEND
+		MP	BIT14
+		ADS	TRAPEDP
+		CA	JETRATEQ
+		AD	AOSQTERM
+		EXTEND
+		MP	-BIT14
+		ADS	TRAPEDQ
+		CA	JETRATER
+		AD	AOSRTERM
+		EXTEND
+		MP	-BIT14
+		ADS	TRAPEDR
+
+		CA	DAPTREG5	# CDUY IS STORED HERE
+		TS	L
+		EXTEND
+		MSU	OLDYFORP	# SCALED AT PI
+		LXCH	OLDYFORP
+		TS	DAPTEMP2
+		EXTEND
+		MP	M11		# M11 SCALED AT 1
+# Page 1424
+		AD	DAPTEMP1
+		DXCH	OMEGAU
+
+		TC	SUBDIVDE +3	# RETURNS WITH CDU-RATE AT PI/4
+
+		EXTEND
+		SU	OMEGAP
+		ADS	TRAPEDP
+		TC	OVERSUB
+		TS	TRAPEDP
+		EXTEND
+		DCA	DAPTEMP5
+		DAS	DXERROR
+		CS	PLAST
+		EXTEND
+		MP	1/40
+		DAS	DXERROR		# MANUAL MODE X-ATTITUDE ERROR (DP)
+		CA	DAPTREG6	# CDUZ IS STORED HERE
+		TS	L
+		EXTEND
+		MSU	OLDZFORQ
+		TS	DAPTEMP3
+		LXCH	OLDZFORQ
+		CA	M21
+		EXTEND
+		MP	DAPTEMP2
+		DXCH	OMEGAU
+		CA	M22
+		TC	SUBDIVDE
+
+		EXTEND
+		SU	OMEGAQ
+		ADS	TRAPEDQ
+		TC	OVERSUB
+		TS	TRAPEDQ
+		EXTEND
+		DCA	DAPTEMP5
+		DAS	DYERROR
+		CS	QLAST
+		EXTEND
+		MP	1/40
+		DAS	DYERROR		# MANUAL MODE Y-ATTITUDE ERROR (DP)
+		CA	M31
+		EXTEND
+		MP	DAPTEMP2
+		DXCH	OMEGAU
+		CA	M32
+
+		TC	SUBDIVDE
+# Page 1425
+		EXTEND
+		SU	OMEGAR
+		ADS	TRAPEDR
+		TC	OVERSUB
+		TS	TRAPEDR		# TRAPEDS HAVE ALL BEEN COMPUTED
+
+		EXTEND
+		DCA	DAPTEMP5
+		DAS	DZERROR
+		CS	RLAST
+		EXTEND
+		MP	1/40
+		DAS	DZERROR		# MANUAL MODE Z-ATTITUDE ERROR (DP)
+		CA	DAPBOOLS	# PICK UP PAD LOADED STATE ESTIMATOR GAINS
+		MASK	CSMDOCKD
+		EXTEND
+		BZF	LMONLY
+		EXTEND			# DOCKED
+		DCA	DKOMEGAN
+		DXCH	DAPTREG4
+		CA	DKTRAP
+		TCF	+5
+LMONLY		EXTEND			# UNDOCKED
+		DCA	LMOMEGAN
+		DXCH	DAPTREG4
+		CA	LMTRAP
+	+5	TS	DAPTREG6
+		CCS	TRAPEDP
+		TCF	+2
+		TCF	SMALPDIF
+		AD	DAPTREG6	# TRAPSIZE > ABOUT 77001 %-1.4DEG/SEC"
+		EXTEND
+		BZMF	SMALPDIF
+		ZL
+		LXCH	TRAPEDP
+		CA	ZERO
+		EXTEND
+		DV	NPTRAPS
+		ADS	OMEGAP
+		TC	OVERSUB
+		TS	OMEGAP
+		CA	DAPTREG4	ABOUT 10 OR 0 FOR DOCKED OR UNDOCKED
+		TS	NPTRAPS
+SMALPDIF	INCR	NPTRAPS
+P-RATE		CA	JETRATE
+		ADS	OMEGAP
+		TC	OVERSUB
+		TS	OMEGAP
+
+		CCS	TRAPEDQ
+# Page 1426
+		TCF	+2
+		TCF	Q-RATE
+		AD	DAPTREG6	# TRAPSIZE > ABOUT 77001 %-1.4DEG/SEC"
+		EXTEND
+		BZMF	Q-RATE
+		ZL
+		LXCH	TRAPEDQ
+		CA	ZERO
+		EXTEND
+		DV	NQTRAPS
+		TS	DAPTEMP1	# SAVE FOR OFFSET ESTIMATE
+		ADS	OMEGAQ
+		TC	OVERSUB
+		TS	OMEGAQ
+		CA	DAPTREG4	# ABOUT 10 OR 0 FOR DOCKED OR UNDOCKED
+		XCH	NQTRAPS
+		AD	DAPTREG5	# KAOS > ABOUT 60D %N/N_60"
+		XCH	DAPTEMP1
+		EXTEND
+		MP	FIVE
+		EXTEND
+		DV	DAPTEMP1
+		ADS	AOSQ
+Q-RATE		INCR	NQTRAPS
+		CA	JETRATEQ
+		AD	AOSQTERM
+		ADS	OMEGAQ
+		TC	OVERSUB
+		TS	OMEGAQ
+
+		CCS	TRAPEDR
+		TCF	+2
+		TCF	R-RATE
+		AD	DAPTREG6	# TRAPSIZE > ABOUT 77001 %-1.4DEG/SEC"
+		EXTEND
+		BZMF	R-RATE
+		ZL
+		LXCH	TRAPEDR
+		CA	ZERO
+		EXTEND
+		DV	NRTRAPS
+		TS	DAPTEMP2	# SAVE FOR OFFSET ESTIMATE
+		ADS	OMEGAR
+		TC	OVERSUB
+		TS	OMEGAR
+		CA	DAPTREG4	# ABOUT 10 OR 0 FOR DOCKED OR UNDOCKED
+		XCH	NRTRAPS
+		AD	DAPTREG5	# KAOS > ABOUT 60D %N/N_60"
+		XCH	DAPTEMP2
+		EXTEND
+# Page 1427
+		MP	FIVE
+		EXTEND
+		DV	DAPTEMP2
+		ADS	AOSR
+R-RATE		INCR	NRTRAPS
+		CA	JETRATER
+		AD	AOSRTERM
+		ADS	OMEGAR
+		TC	OVERSUB
+		TS	OMEGAR
+
+# END OF RATE DERIVATION
+#	BEGIN OFFSET ESTIMATER
+#		IN POWERED FLIGHT, AOSTASK WILL BE CALLED EVERY 2 SECONDS.
+#			AOS = AOS + K*SUMRATE
+
+		CS	DAPBOOLS
+		MASK 	DRIFTBIT
+		CCS	A
+		TCF	WORKTIME
+		TS	ALPHAQ		# ZERO THE OFFSET ACCELERATION VALUES.
+		TS	ALPHAR
+		TS	AOSQTERM
+		TS	AOSRTERM
+		TS	AOSQ
+		TS	AOSR
+		TCF	PRETIMCK
+KAOS		DEC	60
+WORKTIME	CA	QACCDOT
+		EXTEND
+		MP	CALLCODE	# OCTAL 00032 IS DECIMAL .1 AT 2(6).
+		DAS	AOSQ
+		CA	AOSQ
+		TS	ALPHAQ
+		EXTEND
+		MP	200MS		# .2 AT 1
+		TS	AOSQTERM
+		CA	RACCDOT
+		EXTEND
+		MP	CALLCODE	# OCTAL 00032 IS DECIMAL .1 AT 2(6).
+		DAS	AOSR
+		CA	AOSR
+		TS	ALPHAR
+		EXTEND
+		MP	200MS		# .2 AT 1
+		TS	AOSRTERM
+		TCF	PRETIMCK
+
+# Page 1428
+PAXFILT		CA	CALLGMBL	# EXECUTE ACDT+C12, IF NEEDED.
+		MASK	RCSFLAGS
+		CCS	A		# CALLGMBL IS NOT BIT15, SO THIS TEST IS
+		TC	ACDT+C12	# VALID.
+
+		DXCH	ARUPT
+		DXCH	DAPARUPT
+		CA	SUPERJOB	# SETTING UP THE SUPERJOB
+		XCH	BRUPT
+		LXCH	QRUPT
+		DXCH	DAPBQRPT
+		CA	SUPERADR
+		DXCH	ZRUPT
+		DXCH	DAPZRUPT
+		TCF	NOQBRSM +1	# RELINT (JUST IN CASE) AND RESUME, IN THE
+					# 	FORM OF A JASK, AT SUPERJOB.
+
+SUPERADR	GENADR	SUPERJOB +1
+
+# COUNT DOWN GIMBAL DRIVE TIMERS AND TURN OFF DRIVES IF REQUIRED.
+
+SUPERJOB	TCF	RATELOOP
+PRETIMCK	CCS	QGIMTIMR
+		TCF	DECQTIMR	# POSITIVE -- COUNTING DOWN
+		TCF	TURNOFFQ	# NEGATIVE -- DRIVE SHOULD BE ENDED
+CHKRTIMR	CCS	RGIMTIMR	# NEGATIVE -- INACTIVE
+		TCF	DECRTIMR	# (NEG ZERO -- IMPOSSIBLE)
+		TCF	TURNOFFR	# REPEATED (ABOVE) FOR R AXIS.
+
+		EXTEND			# DECREMENT DOCKED JET INHIBITION COUNTERS
+		DIM	PJETCTR
+		EXTEND
+		DIM	UJETCTR
+		EXTEND
+		DIM	VJETCTR
+		CA	BIT12
+		MASK	RCSFLAGS
+		EXTEND
+		BZF	SKIPPAXS
+		TC	CHKVISFZ
+DECQTIMR	TS	QGIMTIMR	# COUNT TIMERS DOWN TO POS ZERO.
+		TCF	CHKRTIMR
+DECRTIMR	TS	RGIMTIMR
+		TCF	CHKRTIMR +3
+
+TURNOFFQ	TS	NEGUQ		# HALT DRIVES.
+		TS	QACCDOT
+		CS	QGIMBITS
+		EXTEND
+# Page 1429
+		WAND	CHAN12
+		CAF	NEGMAX
+		TS	QGIMTIMR
+		TCF	CHKRTIMR
+TURNOFFR	TS	NEGUR
+		TS	RACCDOT
+		CS	RGIMBITS
+		EXTEND
+		WAND	CHAN12
+		CAF	NEGMAX
+		TS	RGIMTIMR
+		TCF	CHKRTIMR +3
+QGIMBITS	EQUALS	OCT1400		# BITS 9 AND 10 (OF CHANNEL 12).
+RGIMBITS	EQUALS	PRIO6		# BITS 11 AND 12 (OF CHANNEL 12).
+
+SKIPPAXS	CS	RCSFLAGS
+		MASK	BIT12
+		ADS	RCSFLAGS	# BIT 12 SET TO 1.
+		TCF	QRAXIS		# GO TO QRAXIS OR TO CTS.
+
+# Y-X TRANSLATION
+#
+# INPUT:	BITS 9-12 OF CH31 (FROM TRANSLATION CONTROLLER)
+#
+# OUTPUT:	NEXTP
+#
+#		NEXTP IS THE CHANNEL 6 CODE OF JETS FOR THE DESIRED TRANSLATION.
+#		IF THERE ARE FAILURES IN THE DESIRED POLICY, THEN
+#		(1) FOR DIAGONAL TRANS:		UNFAILED PAIR
+#						ALARM (IF NO PAIR)
+#		(2) FOR PRINCIPAL TRANS:	TRY TO TACK WITH DIAGONAL PAIRS
+#						ALARM (IF DIAGONAL PAIRS ARE FAILED)
+
+CHKVISFZ	EXTEND
+		READ	CHAN31
+		CS	A
+		MASK	07400OCT
+		EXTEND
+		BZF	TSNEXTP
+		EXTEND
+		MP	BIT7
+		INDEX	A
+		CA	INDXYZ
+		TS	ROTINDEX
+TRYUORV		CA	SIX
+		TC	SELECTYZ
+		CS	SIX
+		AD	NUMBERT
+		EXTEND
+# Page 1430
+		BZF	TSNEXTP -1
+		CS	FIVE
+		AD	ROTINDEX
+		EXTEND
+		BZMF	ALTERYZ
+		CS	NUMBERT
+		AD	FOUR
+		EXTEND
+		BZMF	TSNEXTP -1
+ABORTYZ		TC	ALARM
+		OCT	02001
+		CA	BIT1		# INVERT BIT 1 OF RCSFLAGS.
+		LXCH	RCSFLAGS
+		EXTEND
+		RXOR	1
+		TS	RCSFLAGS
+		CA	ZERO
+		TCF	TSNEXTP
+ALTERYZ		CA	BIT1		# INVERT BIT 1 OF RCSFLAGS.
+		LXCH	RCSFLAGS
+		EXTEND
+		RXOR	1
+		TS	RCSFLAGS
+		MASK	BIT1
+		AD	FOUR
+		ADS	ROTINDEX
+		TCF	TRYUORV
+		CA	POLYTEMP
+TSNEXTP		TS	NEXTP
+
+# STATE LOGIC
+#	CHECK IN ORDER:		IF ON
+#	LPDPHASE		GO TO PURGENCY
+#	PULSES			MINIMUM PULSE LOTIC
+#	DETENT(BIT15 CH31)	RATE COMMAND
+#	GOTO TO PURGENCY
+
+		CA	BIT13		# CHECK STICK IF IN ATT. HOLD.
+		EXTEND
+		RAND	CHAN31
+		EXTEND
+		BZF	MANMODE
+
+		CA	DAPBOOLS
+		MASK	XOVINHIB
+		CCS	A
+		TCF	PURGENCY	# ATTITUDE STEER DURING VISIBILITY PHASE
+
+		TCF	DETENTCK
+MANMODE		CA	PULSES		# PULSES IS ONE FOR PULSE MODE
+		MASK	DAPBOOLS
+# Page 1431
+		EXTEND
+		BZF	DETENTCK	# BRANCH FOR RATE COMMAND
+
+		CA	ZERO
+		TS	PERROR
+
+# MINIMUM IMPULSE MODE
+
+		CA	CDUX
+		TS	CDUXD
+
+		CCS	OLDPMIN
+		TCF	CHECKP
+
+FIREP		CA	BIT3
+		EXTEND
+		RAND	CHAN31
+		EXTEND
+		BZF	+XMIN
+
+		CA	BIT4
+		EXTEND
+		RAND	CHAN31
+		EXTEND
+		BZF	-XMIN
+
+		TCF	JETSOFF
+
+CHECKP		EXTEND
+		READ	CHAN31
+		CS	A
+		MASK	OCT14
+		TS	OLDPMIN
+		TCF	JETSOFF
+
+-XMIN		CS	TEN		# ANYTHING LESS THAN 14MS. CORRECTED
+		TCF	+2		#	IN JET SELECTION ROUTINE
++XMIN		CA	TEN
+		TS	TJP
+		CA	ONE
+		TS	OLDPMIN
+		TCF	PJETSLEC -6
+
+# 					MANUAL RATE COMMAND MODE
+# 					========================
+# 					  BY ROBERT F. STENGEL
+#
+# THIS MODE PROVIDES RCAH MANUAL CONTROL THRU 2 CONTROL LAWS:  1) DIRECT RATE AND 2) PSEUDO-AUTO.
+# THE DIRECT RATE MODE AFFORDS IMMEDIATE CONTROL WITHOUT OVERSHOOT.  THE PSEUDO-AUTO MODE PROVIDES PRECISE
+# RATE CONTROL AND ATTITUDE HOLD.
+#
+# Page 1432
+# IN DIRECT RATE, JETS ARE FIRED WHEN STICK POSITION CHANGES BY A FIXED NUMBER OF INCREMENTS IN ONE DAP CYCLE.
+# THE `BREAKOUT LEVEL' IS .6 D/S FOR LM-ONLY AND .3 D/S FOR CSM-DOCKED.  THIS LAW NULLS THE RATE ERROR TO WITHIN
+# THE `TARGET DEADBAND', WHICH EQUALS THE BREAKOUT LEVEL.
+#
+# IN PSEUDO-AUTO, BODY-FIXED RATE AND ATTITUDE ERRORS ARE SUPPLIED TO TJETLAW, WHICH EXERCISES CONTROL.
+# CONTROL SWITCHES FROM DIRECT RATE TO PSEUDO-AUTO IF THE TARGET DB IS ACHIEVED OR IF TIME IN (1) EXCEEDS 4 SEC.
+# IF THE INITIAL COMMAND DOES NOT EXCEED THE BREAKOUT LEVEL, CONTROL GOES TO PSEUDO-AUTO IMMEDIATELY.
+#
+# SINCE P-AXIS CONTROL IS SEPARATE FROM Q,R AXES CONTROL, IT IS POSSIBLE TO USE (1) IN P-AXIS AND (2) IN Q,R AXES,
+# OR VICE VERSA.  THIS ALLOWS A DEGREE OF ATTITUDE HOLD IN UNCONTROLLED AXES.  DUE TO U,V CONTROL, HOWEVER, Q AND
+# R AXES ARE COUPLED AND MUST USE THE SAME CONTROL LAW.
+#
+# HAND CONTROLLER COMMANDS ARE SCALED BY A LINEAR/QUADRATIC LAW.  FOR THE LM-ALONE, MAXIMUM COMMANDED RATES ARE 20
+# AND 4 D/S IN NORMAL AND FINE SCALING; HOWEVER, STICK SENSITIVITY AT ZERO COUNTS (OBTAINED AT A STICK DEFLECTION
+# OF 2 DEGREES FROM THE CENTERED POSITION) IS .5 OR .1 D/S PER DEGREE.  NORMAL AND FINE SCALINGS FOR THE CSM-DOCKED
+# CASE IS AUTOMATICALLY SET TO 1/10 THE ABOVE VALUES.  SCALING IS DETERMINED IN ROUTINE 3.
+#
+# ZEROENBL	ENABLES COUNTERS SO THEY CAN BE READ NEXT TIME
+# JUSTOUT	FIRST DETECTION OF OUT OF DETENT (BY OURRCBIT)
+
+DETENTCK	EXTEND
+		READ	CHAN31
+		TS	CH31TEMP
+		MASK	BIT15		# CHECK OUT-OF-DETENT BIT.
+		EXTEND
+		BZF	RHCMOVED	# BRANCH IF OUT OF DETENT.
+		CAF	OURRCBIT	# IN DETENT.  CHECK THE RATE COMMAND BIT.
+		MASK	DAPBOOLS
+		EXTEND
+		BZF	PURGENCY	# BRANCH IF NOT IN RATE COMMAND LAST PASS.
+
+# ................................................................................
+
+		CA	BIT9		# JUST IN DETENT??
+		MASK	RCSFLAGS
+		EXTEND
+		BZF	RUTH
+		CAF	BIT13		# CHECK FOR ATTITUDE HOLD.
+		EXTEND
+		RAND	CHAN31
+		EXTEND
+		BZF	RATEDAMP	# BRANCH IF IN ATTITUDE HOLD.
+
+		CS	BITS9,11	# IN AUTO.
+		MASK	RCSFLAGS	# (X-AXIS OVERRIDE)
+		TS	RCSFLAGS	# ZERO ORBIT (BIT 11) AND JUST-IN BIT (9).
+		TCF	RATEDAMP
+
+RUTH		CA	RCSFLAGS
+		MASK	PBIT		# IN ATTITUDE HOLD.
+		EXTEND
+		BZF	+2		# BRANCH IF P-RATE DAMPING IS FINISHED.
+		TCF	RATEDAMP
+
+# Page 1433
+		CA	RCSFLAGS
+		MASK	QRBIT
+		EXTEND
+		BZF	RATEDONE	# BRANCH IF Q,R RATE DAMPING IS FINISHED.
+		TCF	RATEDAMP
+
+# ============================================
+
+1/10SEC		OCT	1
+40CYC		OCT	50
+PQRBIT		OCT	74777
+BITS9,11	EQUALS	EBANK5
+LINRATP		DEC	46
+
+# ============================================
+
+RATEDONE	CS	OURRCBIT	# MANUAL COMMAND AND DAMPING COMPLETED IN
+		INHINT			# ALL AXES.
+		MASK	DAPBOOLS
+		TS	DAPBOOLS
+
+# READ CDUS INTO CDU DESIRED REGISTERS
+
+		CAF	BIT13
+		EXTEND
+		RAND	CHAN31
+		EXTEND
+		BZF	+4
+		CA	CDUX		# (X-AXIS OVERRIDE)
+		TS	CDUXD
+		TC	+3
+		TC	IBNKCALL
+		FCADR	ZATTEROR
+		RELINT
+		TCF	PURGENCY
+
+		TS	PERROR
+JUSTOUT		CA	OURRCBIT	# INITIALIZATION -- FIRST MANUAL PASS.
+		ADS	DAPBOOLS
+		CA	ZERO
+		TS	DXERROR
+		TS	DXERROR +1
+		TS	DYERROR
+		TS	DYERROR +1
+		TS	DZERROR
+		TS	DZERROR +1
+		TS	PLAST
+		TS	QLAST
+		TS	RLAST
+		TS	Q-RHCCTR
+		TS	R-RHCCTR
+		CA	PQRBIT
+		MASK	RCSFLAGS
+		TS	RCSFLAGS	# BITS 10 AND 11 OF RCSFLAGS ARE 0.
+# Page 1434
+		CS	RCSFLAGS	# SET 'JUST-IN' BIT TO 1.
+		MASK	BIT9
+		ADS	RCSFLAGS
+		TC	ZEROENBL
+		TCF	JETSOFF
+ZEROENBL	LXCH	R-RHCCTR
+		CA	Q-RHCCTR
+		DXCH	SAVEHAND
+		CA	ZERO
+		TS	P-RHCCTR
+		TS	Q-RHCCTR
+		TS	R-RHCCTR
+		CA	BITS8,9
+		EXTEND
+		WOR	CHAN13		# COUNTERS ZEROED AND ENABLED
+		TC	Q
+RATEDAMP	CA	ZERO
+		TS	P-RHCCTR
+		TCF	RATERROR
+
+RHCMOVED	CA	OURRCBIT	# P CONTROL
+		MASK	DAPBOOLS
+		EXTEND
+		BZF	JUSTOUT -1
+RATERROR	CA	CDUX		# FINDCDUW REQUIRES THAT CDUXD=CDUX DURING
+		TS	CDUXD		# X-AXIS OVERRIDE
+		CCS	P-RHCCTR
+		TCF	+3
+		TCF	+2
+		TCF	+1
+		DOUBLE			# LINEAR/QUADRATIC CONTROLLER SCALING
+		DOUBLE			# (SEE EXPLANATION OF Q,R-AXES RCS
+		AD	LINRATP		# AUTOPILOT)
+		EXTEND
+		MP	P-RHCCTR
+		CA	L
+		EXTEND
+		MP	STIKSENS
+		XCH	PLAST
+		COM
+		AD	PLAST
+		TS	DAPTEMP1
+		TC	ZEROENBL	# INTERVAL.  ZERO AND ENABLE ACA COUNTERS.
+		CS	PLAST
+		AD	OMEGAP
+		TS	EDOTP
+		CCS	DAPTEMP1	# IF P COMMAND CHANGE EXCEEDS BREAKOUT
+		TCF	+3		# LEVEL, GO TO DIRECT RATE CONTROL.  IF NOT
+		TCF	+8D		# CHECK FOR DIRECT RATE CONTROL LAST TIME.
+		TCF	+1
+# Page 1435		
+		AD	-RATEDB
+		EXTEND
+		BZMF	+4
+		CA	40CYC
+		TS	TCP
+		TC	PEGI
+		CA	RCSFLAGS	# CHECK FOR DIRECT RATE COMMAND LAST TIME.
+		MASK	PBIT
+		EXTEND
+		BZF	+2
+		TC	PEGI		# TO PURE RATE COMMAND
+		CA	DXERROR		# PSEUDO-AUTO CONTROL.
+		TS	E		# X-ATTITUDE ERROR (SP)
+		TS	PERROR		# LOAD P-AXIS ERROR FOR MODE1 FDAI DISPLAY
+		TC	PURGENCY +4
+PEGI		CA	CDUX		# DIRECT RATE CONTROL.
+		TS	CDUXD
+		CA	ZERO
+		TS	DXERROR
+		TS	DXERROR +1
+		TS	PERROR		# ZERO P-AXIS ERROR FOR MODE1 FDAI DISPLAY
+		CCS	EDOTP
+		TC	+3
+		TC	+2
+		TC	+1
+		TS	ABSEDOTP
+		AD	TARGETDB
+		EXTEND			# IF RATE ERROR IS LESS THAN DEADBANK,
+		BZMF	LAST		# FIRE, AN SWITCH TO PSEUDO-AUTO.
+		CA	TCP
+		EXTEND			# IF TIME IN RATE COMMAND EXCEEDS 4 SEC.
+		BZMF	LAST
+		CS	RCSFLAGS
+		MASK	PBIT
+		ADS	RCSFLAGS	# BIT 10 IS 1.
+		TCF	+4
+LAST		CS	PBIT
+		MASK	RCSFLAGS
+		TS	RCSFLAGS	# BIT 10 IS 0.
+		CS	EDOTP
+		EXTEND
+		MP	1/ANETP		# 1/2JTACC SCALED AT 2EXP(7)/PI
+		DAS	A
+		TC	OVERSUB
+		EXTEND
+		MP	25/32		# A CONTAINS TJET SCALED AT 2EXP(4)(16/25)
+		TS	TJP		# 4.JET TIME
+		CA	ABSEDOTP
+		AD	-2JETLIM	# COMPARING DELTA RATE WITH 2 JET LIMIT
+		EXTEND
+# Page 1436
+		BZMF	+3
+
+		CA	SIX
+		TCF	+8D
+		CA	TJP
+		ADS	TJP
+
+# GOES TO PJETSLEC FOR TWO JETS
+# P-JET-SELECTION-ROUTINE (ROTATION)
+#
+# INPUT:	NUMBERT		4,5,6 FOR WHICH PAIR OR 4 JETS
+#		TJP		+ FOR +P ROTATION
+#
+# OUTPUT:	CHANNEL 6
+#		PJUMPADR	FOR P-AXIS SKIP
+#		(JTLST CALL)	(SMALL TJP)
+#
+# ORDER OF POLICIES TRIED IN CASE OF FAILURE.
+#	+P	-P
+#	7,15	8,16
+#	4,12	3,11
+#	4,7	8,11
+#	7,12	11,16
+#	12,15	3,16
+#	4,15	3,8
+#	ALARM	ALARM
+
+		CA	AORBSYST
+		MASK	DAPBOOLS
+		CCS	A
+		CA	ONE
+		AD	FOUR
+		TS	NUMBERT
+PJETSLEC	CA	ONE
+		TS	L
+		CCS	TJP
+		TCF	+5
+		TCF	JETSOFF
+		TCF	+2
+		TCF	JETSOFF
+		ZL
+		AD	ONE
+		TS	ABSTJ
+		LXCH	ROTINDEX
+		TC	SELECTP
+		CS	SIX
+		AD	NUMBERT
+		EXTEND
+		BZF	+2
+
+		CS	TWO
+
+# Page 1437
+		AD	FOUR
+		TS	NO.PJETS
+		CA	POLYTEMP
+		TC	WRITEP
+		CS	ABSTJ
+		AD	+150MST6
+		EXTEND
+		BZMF	QRAXIS		# GO TO QRAXIS OR TO GTS.
+
+		AD	-136MST6
+		EXTEND
+		BZMF	+5
+
+		ADS	ABSTJ
+		INDEX	ROTINDEX
+		CA	MINTIMES
+		TS	TJP
+
+		CA	ABSTJ
+		ZL
+		INHINT
+		DXCH	T6FURTHA
+		TC	IBNKCALL
+		CADR	JTLST
+		CS	BIT12
+		MASK	RCSFLAGS
+		TS	RCSFLAGS	# BIT 12 SET TO 0.
+		TC	ALTSYST
+		TCF	QRAXIS
+
+ALTSYST		CA	DAPBOOLS	# ALTERNATE P-AXIS JETS
+		TS	L
+		CA	AORBSYST
+		EXTEND
+		RXOR	LCHAN
+		TS	DAPBOOLS
+		RELINT
+		TC	Q
+
+DKALT		TC	ALTSYST
+
+JETSOFF		TC	WRITEP 	-1
+		CA	ZERO
+		TS	TJP
+		TCF	QRAXIS
+
+# (NOTE -- M13 = 1 IDENTICALLY IMPLIES NULL MULTIPLICATION.)
+
+CALCPERR	CA	CDUY		# P-ERROR CALCULATION.
+		EXTEND
+		MSU	CDUYD		# CDU VALUE -- ANGLE DESIRED (Y-AXIS)
+# Page 1438		
+		EXTEND
+		MP	M11		# (CDUY-CDUYD)M11 SCALED AT PI RADIANS
+		XCH	E		# SAVE FIRST TERM (OF TWO)
+		CA	CDUX		# THIRD COMPONENT
+		EXTEND
+		MSU	CDUXD		# CDU VALUE -- ANGLE DESIRED (X-AXIS)
+#		EXTEND
+#		MP	M13
+		AD	DELPEROR	# KALCMANU INTERFACE ERROR.
+		ADS	E		# SAVE SUM OF TERMS.  COULD BE OVERFLOW.
+		XCH	PERROR		# SAVE P-ERROR FOR EIGHT-BALL DISPLAY.
+		TC	Q		# RETURN TO CALLER
+
+# P-AXIS URGENCY FUNCTION CALCULATION.
+
+PURGENCY	TC	CALCPERR	# CALCULATE P-AXIS ERRORS.
+		CS	OMEGAPD		# THIS CODING IS COMMON TO BOTH LM DAP AND
+		AD	OMEGAP		# SPS-BACKUP MODE.
+		TS	EDOTP		# EDOTP = OMEGAP - OMEGAPD AT PI/4 RAD/SEC
+
+		CS	ONE
+		TS	AXISCTR
+		CA	DAPBOOLS
+		MASK	CSMDOCKD
+		EXTEND
+		BZF	HEADTJET
+		INHINT			# IF CSMDOCKD = 1, GOT TO DOCKED RCS LOGIC
+		TC	IBNKCALL
+		CADR	SPSRCS
+
+		CA	TJP
+		EXTEND
+		BZF	DKALT		# IF TJP = ZERO, CHANGE AORBSYST.
+		RELINT
+		TCF	PJETSLEC -6	# SELECT AORBSYST AND USE TWO JETS.
+HEADTJET	CA	ZERO
+		TS	SENSETYP
+		INHINT
+		TC	IBNKCALL
+		CADR	TJETLAW
+		RELINT
+		
+		CS	FIREFCT
+		AD	-FOURDEG
+		EXTEND
+		BZMF	PJETSLEC -6
+		CCS	TJP
+		TCF	+2
+		TCF	JETSOFF
+# Page 1439		
+		AD	-160MST6
+		EXTEND
+		BZMF	PJETSLEC -6
+		CA	SIX
+		TCF	PJETSLEC -1
+-160MST6	DEC	-256
+-FOURDEG	DEC	-.08888
+
+# Page 1440
+# JET POLICY CONTSTRUCTION SUBROUTINE
+#
+# INPUT:	ROTINDEX, NUMBERT
+#
+# OUTPUT:	POLYTEMP (JET POLICY)
+#
+# THIS SUBROUTINE SELECT A SUBSET OF THE DESIRED JETS WHICH HAS NO FAILURE
+
+SELECTP		CA	SIX
+		TS	TEMPNUM
+		INDEX	NUMBERT
+		CA	TYPEP
+		INDEX	ROTINDEX
+		MASK	JETSALL
+		TS	POLYTEMP
+		MASK	CH6MASK
+		CCS	A
+		TCF	+2
+		TC	Q
+		CCS	TEMPNUM
+		TCF	+4
+		TC	ALARM
+		OCT	02003
+		TCF	JETSOFF		# ********** TCF ALARMJET **********
+SELECTYZ	TS	NUMBERT
+		TCF	SELECTP	+1
+	-1	TCF	ABORTYZ +2
+JETSALL		OCT	00252
+		OCT	00125		# +P
+		OCT	00140		# -Y
+		OCT	00006		# -Z
+		OCT	00220		# +Y
+		OCT	00011		# +Z
+		OCT	00151		# +V
+TYPEP		OCT	00146		# -U
+		OCT	00226		# -V
+		OCT	00231		# +U
+		OCT	00151		# +V
+		OCT	00132		# 1-3
+		OCT	00245		# 2-4
+		OCT	00377		# ALL
+INDXYZ		=	-136MST6
+-136MST6	DEC	-218
+		DEC	4
+		DEC	2
+		OCT	07776
+		DEC	5
+		DEC	9
+		DEC	10
+		OCT	07776
+		DEC	3
+# Page 1441
+		DEC	8
+		DEC	7
+		OCT	07776		# THESE INDEXES OF MASK JETSALL WILL
+		OCT	07776		# CHANGE THE INSTRUCTION AT SELECTP +4
+		OCT	07776		# TO BE		TC JETSALL -1
+		OCT	07776		# ONLY USED FOR TRANSLATION FAILURE
+		OCT	07776
++150MST6	DEC	240
+07400OCT	OCT	07400
+
+# T-JET LAW FIXED CONSTANTS
+
+NORMSCL		OCT	266
+-100MS		DEC	-.1
+200MS		DEC	.2
+25/32		=	PRIO31		# (DEC .78125)
+BITS8,9		OCTAL	00600
+1/40		DEC	.02500
+MINTIMES	DEC	-22
+		DEC	22
+PSKIPADR	GENADR	SKIPPAXS
+
+# GOES TO Q,R-AXES RCS AUTOPILOT
+
+QRAXIS		CS	OMEGARD
+		AD	OMEGAR
+		TC	OVERSUB
+		TS	EDOTR
+		CS	OMEGAQD
+		AD	OMEGAQ
+		TC	OVERSUB
+		TS	EDOTQ
+		EXTEND
+		DCA	QERRCALL
+		DTCB
+
+		EBANK=	AOSQ
+QERRCALL	2CADR	CALLQERR
diff --git a/P11.s b/P11.s
new file mode 100644
index 0000000..1399885
--- /dev/null
+++ b/P11.s
@@ -0,0 +1,922 @@
+# Copyright:    Public domain.
+# Filename:     P11.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:      Hartmuth Gutsche <hgutsche@xplornet.com>.
+# Website:      www.ibiblio.org/apollo.
+# Pages:	533-550
+# Mod history:  2009-05-13 HG   Started adapting from the Colossus249/ file 
+#                		of the same name, using Comanche055 page 
+#                		images 0533.jpg - 0550.jpg. 
+#		2009-05-20 RSB	Corrections: ERTHALT -> EARTHALT, 
+#				STATSW -> SATSW.
+#		2009-05-23 RSB	At end of RESCALES, corrected TC 0 to TC Q.
+#				Added an SBANK= prior to a 2CADR.
+#
+# 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 533
+# EARTH ORBIT INSERTION MONITOR PROGRAM
+# *************************************
+#
+# PROGRAM DESCRIPTION -P11-
+#
+#	MOD NO. 1
+#	MOD BY ELIASSEN
+#
+# FUNCTIONAL DESCRIPTION
+#
+#	P11 IS INITIATED BY
+#
+#		A) GYROCOMPASS PRG P02 WHEN LIFTOFF DISCRETE IS RECEIVED OR
+#		B) BACKUP THRU VERB 75 ENTER
+#
+#	PROGRAM WILL
+#		1. ZERO CMC CLOCK AT LIFTOFF (OR UPON RECEIPT OF BACKUP)
+#		2. UPDATE TEPHEM TO TIME CMC CLOCK WAS ZEROED
+#		3. INITIATE SERVICER AT PREREAD1
+#		4. CHANGE MAJOR MODE TO 11
+#		5. CLEAR DSKY IN CASE OF V 75
+#		6. STORE LIFTOFF IMU-CDU ANGLES FOR ATT. ERROR DISPLAY
+#		7. TERMINATE GYROCOMPASSING	__  __
+#		8. COMPUTE INITIAL VECTORS	RN, VN            _  _  _
+#		9. COMPUTE REFSMMAT FOR PRELAUNCH ALIGNMENT WHERE U ,U ,U  ARE
+#			_         _                                X  Y  Z
+#			U =(UNIT(-R) 	LOCAL VERTICAL AT TIME OF LIFTOFF
+#			_Z      _       _
+#			U =UNIT(A),	A=HOR VECTOR AT LAUNCH AZIMUTH
+#			_X _   _
+#			U =U * U
+#			 U  Z   X
+#		10. SET REFSMMAT KNOWN FLAG
+#		11. SET AVGEXIT IN SERVICER TO VHHDOT TO
+#		    COMPUTE AND DISPLAY NOUN 62 EVERY 2 SECONDS
+#
+#			R1	V1   -- INERTIAL VELOCITY MAGNITUDE IN FPS
+#			R2	HDOT -- RATE OF CHANGE OF VEHICLE VEL IN FPS
+#			R3	H    -- VEHICLE ALTITUDE ABOVE PAD IN NM
+#		
+#		12. DISPLAY BODY AXES ATT. ERRORS ON FDAI NEEDLES
+#
+#			A) FROM L.O. TO RPSTART (APPROX. 0 TO +10SECS AFTER L.O.)
+#			   DESIRED ATTITUDE IS AS STORED AT L.O.
+#			B) FROM RPSTART TO POLYSTOP (APPROX. +10 TO +133SECS AFTER LO)
+#			   DESIRED ATTITUDE IS SPECIFIED BY CMC PITCH AND ROLL
+#			   POLYNOMIALS DURING SATURN ROLLOUT AND PITCHOVER
+# Page 534
+#			   THE DISPLAY IS RUN AS LOW PRIORITY JOB APPROX.
+#			   EVERY 1/2 SEC OR LESS AND IS DISABLED UPON OVFLO OF TIME1
+#
+# SUBROUTINES CALLED
+#
+#	2PHSCHNG	BANKCALL	CALCGRA		CDUTRIG		CLEANDSP	DANZIG
+#	DELAYJOB	EARTHR		ENDOFJOB	FINDVAC		IBNKCALL
+#	INTPRET		LALOTORV	NEEDLER		NEWMODEX	PHASCHNG
+#	POSTJUMP	POWRSERS	PREREAD1	REGODSPR	S11.1
+#	SERVEXIT	TASKOVER	TCDANZIG	V1STO2S		WAITLIST
+#
+# ASTRONAUT REQUESTS (IF ALTITUDE ABOVE 300,000 FT)
+#
+#	DSKY --
+#		MONITOR DISPLAY OF TIME TO PERIGEE R1 HOURS
+#						   R2 MINUTES
+#
+#	DSKY --
+#		MONITOR DISPLAY OF R1 APOGEE ALTITUDE IN NAUTICAL MILES
+#				   R2 PERIGEE ALTITUDE IN NAUTICAL MILES
+#				   R3 TFF IN MINUTES/SECS
+#
+#	IF ASTRONAUT HAS REQUESTED ANY OF THESE DISPLAYS HE MUST
+# HIT PROCEED TO RETURN TO NORMAL NOUN 62 DISPLAY.
+# NORMAL EXIT MODE
+#
+#	ASTRONAUT	VERB 37 ENTER 00 ENTER
+#
+# ALARM MODES -- NONE
+#
+# ABORT EXIT MODES --
+#
+# OUTPUT
+#
+#	TLIFTOFF (DP)	TEPHEM (TP)
+#	REFSMMAT
+#	DSKY DISPLAY
+#	FDAI DISPLAY
+#
+# ERASABLE INITIALIZATION
+#
+#	AZO, AXO, -AYO
+#	LATITUDE
+#	PADLONG
+#	TEPHEM
+#	PGNCSALT
+#	POLYNUM THRU POLYNUM +14D
+#	RPSTART
+#	POLYSTOP
+# FLAGS SET OR RESET
+# Page 535
+#	SET REFSMFLG
+#	SET DVMON IDLE FLAG
+#	CLEAR ERADFLAG
+#
+# DEBRIS
+#
+#	LIFTTEMP
+#	POLYNUM THRU POLYNUM +7
+#	SPOLYARG
+#	BODY1, BODY2, BODY3
+#	VMAG2, ALTI, HDOT
+#	CENTRALS, CORE SET, AND VAC AREAS
+
+		COUNT	34/P11
+		
+BITS5-6		=	SUPER011
+		BANK	42
+		SETLOC	P11ONE
+		BANK
+		
+		EBANK=	TEPHEM
+P11		CA	EBANK3
+		TS	EBANK
+		
+		EXTEND
+		DCA	REP11S		# DIRECT RESTARTS TO REP11
+		DXCH	-PHASE3
+		CS	ZERO
+		ZL
+		TS	LIFTTEMP
+		DXCH	-PHASE5		# INACTIVE GROUP 5, PRELAUNCH PROTECTION
+P11+7		EXTEND
+		DCA	REP11SA
+		DXCH	TLIFTOFF
+		
+		EXTEND
+		DCA	TIME2
+		DXCH	LIFTTEMP	# FORE RESTARTS
+		
+		CA	ZERO
+		ZL
+		DXCH	TIME2
+REP11A-2	DXCH	TLIFTOFF
+REP11A-1	DXCH	-PHASE3		# RESET PHASE
+
+REP11A		INHINT
+		EXTEND
+		DCA	TEPHEM	+1
+		DXCH	TEPHEM1	+1
+		CA	TEPHEM
+# Page 536
+		XCH	TEPHEM1
+		
+		EXTEND
+		DCA	TLIFTOFF
+		DAS	TEPHEM1	+1
+		ADS	TEPHEM1		# CORRECT FOR OVERFLOW
+		
+		TC	PHASCHNG
+		OCT	05023
+		OCT	22000
+		
+		INHINT
+		EXTEND
+		DCA	TEPHEM1
+		DXCH	TEPHEM
+		CA	TEPHEM1	+2
+		XCH	TEPHEM	+2
+		
+		CAF	EBDVCNT
+		TS	EBANK
+		EBANK=	DVCNTR
+		TC	IBNKCALL
+		CADR	PREREAD1	# ZERO PIPS AND INITIALIZE AVERAGEG
+		
+		TC	PHASCHNG
+		OCT	05023		# CONTINUE HERE ON RESTART
+		OCT	22000
+		
+		CAF	.5SEC		# START ATT ERROR DISPLAY
+		TC	WAITLIST	# IN .5 SEC
+		EBANK=	BODY3
+		2CADR	ATERTASK
+		
+		TC	NEWMODEX	# DISPLAY MM 11
+		MM	11
+		
+		TC	UPFLAG
+		ADRES   NODOP01
+		
+		CA      POWDNCOD        # SWITCH TO POWERED FLIGHT DOWNLIST
+		TS      DNLSTCOD
+		
+		TC      BANKCALL      
+		CADR	CLEANDSP	# CLEAR DSKY IN CASE OF V75
+		
+		TC	2PHSCHNG
+		OCT	40514		# PROTECT ATERTASK
+		OCT	00073
+		CAF	EBQPLACE
+# Page 537
+		TS	EBANK
+		
+		EBANK=	QPLACES
+		CA	P11XIT		# SET EXIT FROM PROUT IN EARTHR
+		TS	QPLACES
+		TC      INTPRET
+		VLOAD	MXV
+			THETAN
+			XSM
+		VSL1	VAD
+			ERCOMP
+		STODL	ERCOMP
+			TLIFTOFF
+		SSP	GOTO
+			S2
+		CADR	PROUT		# RETURN FROM EARTHR
+			EARTHR	+3
+MATRXJOB	ZL	                # STORE DP GIMBAL ANGLES FOR ATTITUDE
+                CA      CDUX            #       ERROR DISPLAY AFTER LIFTOFF
+                DXCH    OGC
+                ZL      
+                CA      CDUY
+                DXCH    IGC     
+                ZL
+                CA      CDUZ
+                DXCH    MGC
+                TC      INTPRET                 _
+                VLOAD   VSR1            # SCALE OGC B-1
+                        OGC
+                STORE   OGC
+		SSP			# ZERO RTX2
+			RTX2		# FOR
+			0		# EARTH
+		DLOAD	PDDL
+			PGNCSALT	# ALTITUDE OF PGNCS
+			PADLONG		# LONGITUDE
+		PDDL	VDEF
+			LATITUDE	# GEODETIC LATITUDE
+		STODL	LAT		# LAT,LONG,ALT ARE CONSECUTIVE
+			HI6ZEROS	# TIME = 0
+		CLEAR	CALL
+			ERADFLAG
+			LALOTORV	# CONVERT TO POSITION VECTOR IN REF. COORDS.
+			
+		STCALL	RN1             #              _   
+			GETDOWN 	# RETURN WITH VECTOR FOR DOWN DIRECTION
+		VCOMP   UNIT
+		STOVL	REFSMMAT +12D	# UNITZ = UNIT(GRAV)
+			RN1
+		VXV	VXSC
+# Page 538
+			UNITW		# SCALED AT 1
+			-ERTHRAT	# V = EARTHRATE X R
+		VSL4			# SCALE TO 2(7) M/CS
+		STOVL	VN1
+			REFSMMAT +12D
+		VXV	UNIT
+			UNITW		# (REF3 X UNITW) = EAST
+		PUSH	VXV
+			REFSMMAT +12D	# (EAST X REF3) = -SOUTH
+		UNIT	PDDL
+			LAUNCHAZ	# COS(AZ)*SOUTH
+		COS	VXSC
+		STADR
+		STODL	REFSMMAT	# TEMPORARY STORAGE
+			LAUNCHAZ
+		SIN	VXSC		# SIN(AZ)*EAST
+		VAD	UNIT		# SIN(AZ)*EAST - COS(AZ)*SOUTH = REF1
+			REFSMMAT
+		STORE	REFSMMAT
+		
+		VXV	UNIT		# (REF1 X REF3) = -REF3
+			REFSMMAT +12D
+		VCOMP
+		STORE	REFSMMAT +6
+		DLOAD	DSU
+			DPHALF		# 1/2 REV
+			LAUNCHAZ
+		DAD	PDDL
+			AZIMUTH
+			SATRLRT		# SET SATRLRT = -SATRLRT IF
+		SIGN	STADR		# (1/2REV -LAVNCHAZ +AZIMUTH) IS NEGATIVE
+		STORE	SATRLRT		# FOR ROLL CALC IN FDAI ATT. ERROR DISPLAY
+		SET	EXIT
+			REFSMFLG	# SET REFSMMAT KNOWN FLAG
+			
+		TC	PHASCHNG
+		OCT	04023
+		
+		EXTEND
+		DCA	P11SCADR
+		DXCH	AVGEXIT		# SET AVGEXIT
+		
+		CA	PRIO31		# 2 SECONDS AT 2(+8)
+		TS	1/PIPADT
+		
+		EBANK=	RCSFLAGS
+		CA	EBANK6
+		TS	EBANK
+		
+		INHINT
+# Page 539
+		CS	ZERO
+		TS	TBASE5		# RESTART READACCS 2 SECONDS AFTER LIFTOFF
+
+		CS	TIME1
+		AD	2SECS		# DO READACCS 2 SECONDS AFTER LIFTOFF
+		
+		CCS	A		# CHECK TO INSURE DT IS POSITIVE
+		TCF	+3		# TIME POSITIVE
+		TCF	+2		# CANNOT GET HERE
+		CA	ZERO		# TIME NEGATIVE -- SET TO 1
+		AD	ONE		# RESTORE TIME  --  OR MAKE POSITIVE
+		
+		TC	WAITLIST
+		EBANK=	AOG
+		2CADR	READACCS
+		
+		TC	2PHSCHNG
+		OCT	00003		# TURN OFF GROUP 3
+		OCT	00025		# PROTECT NORMLIZE AND READACCS
+		
+		TC	POSTJUMP
+		CADR	NORMLIZE	# DO NORMLIZE AND ENDOFJOB
+		
+		
+		EBANK=	TEPHEM
+REP11		INHINT
+		CCS	PHASE5
+		TC	ENDOFJOB
+		
+		CCS	LIFTTEMP
+		TCF	+4
+		TCF	+3
+		TCF	+2
+		TCF	P11+7
+		
+		CS	TLIFTOFF
+		EXTEND
+		BZMF	ENDREP11
+		
+		CCS	TIME2		# ** TIME2 MUST BE NON-ZERO AT LIFTOFF **
+		TCF	REP11A	-5	# T2,T1 NOT YET ZEROED, GO AND DO IT
+		
+		EXTEND			# T2,T1 ZEROED, SET TLIFTOFF
+		DCA	LIFTTEMP
+		TCF	REP11A-2
+		
+ENDREP11	EXTEND
+		DCA	REP11SA
+		TCF	REP11A-1
+#Page 540
+REP11S		2OCT	7776600011
+
+REP11SA		2OCT	7776400013
+
+P11XIT		GENADR	P11OUT
+-ERTHRAT	2DEC*	-7.292115138 E-7 B18*	# - EARTH RATE AT 2(18)
+
+		EBANK=	BODY3
+P11SCADR	2CADR	VHHDOT
+
+POWDNCOD        EQUALS  THREE
+
+		EBANK=	BODY3
+# VHHDOT IS EXECUTED EVERY 2 SECONDS TO DISPLAY ON DSKY
+#	VI	INERTIAL VELOCITY MAGNITUDE
+#	HDOT	RATE OF CHANGE OF ALT ABOVE L PAD RADIUS
+#	H	ALTITUDE ABOVE L PAD RADIUS
+
+VHHDOT		TC	INTPRET
+		CALL			# LOAD VMAGI, ALTI,
+			S11.1		# HDOT FOR DISPLAY
+		EXIT
+		TC      PHASCHNG
+		OCT     00035
+		
+		CAF	V06N62		# DISPLAY IN R1	R2   R3
+		TC	BANKCALL	#            VI	HDOT H
+		CADR	REGODSP
+			 
+ATERTASK	CAF	PRIO1		# ESTABLISH JOB TO DISPLAY ATT ERRORS
+		TC	FINDVAC		# COMES HERE AT L.O. + .33 SEC
+		EBANK=	BODY3
+		2CADR	ATERJOB
+		
+		CS	RCSFLAGS	# SET BIT3 FOR
+		MASK	BIT3		# NEEDLER
+		ADS	RCSFLAGS	# INITIALIZATION PASS
+		TC	IBNKCALL	# AND GO
+		CADR	NEEDLER		# DO IT
+		CA      BIT1            # SET SW
+		TS      SATSW           # FOR DISPLAY
+		TC	TASKOVER
+GETDOWN         STQ     SETPD
+                        INCORPEX
+                        0D
+                DLOAD
+                        HI6ZEROS
+#Page 541
+		STODL   6D
+		        DPHALF
+		STCALL  8D
+		        LALOTORV +5
+# THIS SECTION PROVIDES ATTITUDE ERROR DISPLAYS TO THE FDAI DURING SONE BOOST
+#
+#	COMPUTE DESIRED PITCH W.R.T. PAD LOCAL VERTICAL AT LIFTOFF
+#                         2    3    4    5    6
+#	PITCH = A0+A1T+A2T +A3T +A4T +A5T +A6T
+#		SCALED TO 32 REVS.                                   -14
+#	IF TL = TIME IN SECS FROM L.O., THEN	T = 100(TL-RPSTART0)2
+#	WHERE	TL GE RPSTART
+#		TL LE (-POLYSTOP + RPSTART)
+#	COMPUTE DESIRED ROLL WEHRE ROLL EQUALS ANGLE FROM
+#	LAUNCHAZ TO -Z(S/C) AS SEEN FROM X(S/C).
+#	ROLL = LAUNCHAZ-AZIMUTH-.5+SATRLRT*T	IN REV
+#	SATRLRT = RATE OF ROLL IN REV/CENTI-SEC
+#	T, IN CENTI-SEC, IS DEFINED AS ABOVE, INCLUSIVE OF TIME RESTRICTIONS
+#
+#	FOR SIMPLICITY, LET	P = 2*PI*PITCH
+#				R = 2*PI*ROLL
+#
+#	CONSTRUCT THE TRANSFORMATION MATRIX, TSMV, GIVING DESIRED S/C AXES IN
+#	TERMS OF SM COORDINATES.  LET THE RESULTING ROWS EQUAL THE VECTORS XDC,
+#	YDC, AND ZDC.
+#
+# 	 *     (    SIN(P)                 0               -COS(P)    )   (XDC)
+#	TSMV = (-SIN(R)*COS(P)		-COS(R)		-SIN(R)*SIN(P)) = (YDC)
+# 	       (-COS(R)*COS(P)           SIN(R)         -COS(R)*SIN(P))   (ZDC)
+#
+#	XDC,YDC,ZDC ARE USED AS INPUT TO CALCGTA FOR THE EXTRACTION OF THE 
+#	EULER SET OF ANGLES WHICH WILL BRING THE SM INTO THE DESIRED
+#	ORIENTATION.  THIS EULER SET, OGC, IGC, AND MGC, MAY BE IDENTIFIED
+#	AS THE DESIRED CDU ANGLES.
+#
+#	(XDC)			(OGC)
+#	(YDC) ---) CALCGTA ---) (IGC)
+#	(ZDC)			(MGC)
+#			   _
+#	DEFINE THE VECTOR DELTACDU.
+#
+#	 _         (OGC)   (CDUX)
+#	DELTACDU = (IGC) - (CDUY)
+#	           (MGC)   (CDUZ)
+#				 _		_    *    _
+#	COMPUTE ATTITUDE ERRORS, A, WHERE	A = TGSC*DELTACDU
+#
+#	 *     (1	      SIN(CDUZ)             0    )   THE GIMBAL ANGLES
+#Page 542
+#	TGSC = (0	COS(CDUX)*COS(CDUZ)	SIN(CDUX)) = TO SPACECRAFT AXES
+#	       (0      -SIN(CDUX)*COS(CDUZ)	COS(CDUX))   CONVERSION MATRIX
+#			     _
+#	THE ATTITUDE ERRORS, A, ARE STORED ONE HALF SINGLE PRECISION IN
+#	THE REGISTERS AK, AK1, AK2 AS INPUT TO NEEDLER, THE FDAI ATTITUDE
+#	ERROR DISPLAY ROUTINE.
+
+ATERJOB		CAE	FLAGWRD6	# CHECK FLAGWRD6
+		MASK    OCT60000        # BITS 14, 15
+		EXTEND
+		BZF     +2              # OK -- CONTINUE
+		TC      ENDOFJOB	# STAURN STICK ON -- KILL JOB
+		CAF     BIT10           # CHECK IF S/C CONTROL
+		EXTEND                  # OF SATURN PANEL
+		RAND    CHAN30          # SWITCH IS ON
+		EXTEND
+		BZF     STRSAT          # IT IS -- GO STEER
+		CCS     SATSW           # IT IS NOT -- WAS IT ON LAST CYCLE
+		TC      ATTDISP         # NO -- CONTINUE
+		TC      ATRESET         # YES -- REINITIALIZE NEEDLER
+		TC      ATRESET         # YES -- REINITIALIZE NEEDLER
+ATTDISP		CS	RPSTART		# PITCH/ROLL START TIME
+		AD	TIME1
+		EXTEND
+		BZMF	NOPOLY		# IF MINUS THEN ATTITUDE HOLD
+		TS	MPAC		# MPAC = TIME1 - RPSTART
+		TS	SPOLYARG	# SAVE FOR USE IN ROLL CALCULATION
+		AD	POLYSTOP	# NEG PITCHOVER TIME IN CSECS
+		EXTEND
+		BZMF	+2
+		TC      NOPOLY          # GO TO ATTITUDE HOLD
+		CA      TIME2
+		EXTEND
+		BZMF    +2
+		TC      NOPOLY          # GO TO ATTITUDE HOLD      
+		CAE	POLYNUM
+		TS	L
+		CAF	COEFPOLY	# EVALUATE PITCH POLYNOMIAL
+		TC	POWRSERS	# SCALED TO 32 REVOLUTIONS
+		CA      ZERO            # RETURN WITH PITCH(32REV)
+		TS	MODE		# STORED MPAC, MPAC +1
+		TC	INTPRET
+		SETPD	SL		# 32(PITCH(32REV)) = PITCH(REV)
+			0
+			5
+		PUSH			# LET P(RAD) = 2*PI*PITCH(REV)
+		GOTO
+			ATTDISP1	# AROUND SETLOC
+#Page 543
+#				     *
+#	CONSTRUCT SM TO S/C MATRIX, TSMV
+
+		SETLOC	P11TWO
+		BANK			# 36 IN COL., 34 IN DISK
+		
+		COUNT	36/P11
+		
+ATTDISP1	COS	DCOMP
+		STODL	14D		# -.5*COS(P)
+		SIN
+		STODL	10D		# .5*SIN(P)
+			ZEROVECS
+		STORE	12D		# 0
+		
+#	EVALUATE ROLL = LAUNCHAZ-AZIMUTH-.5+SATRLRT*T
+		SLOAD	DMP
+			SPOLYARG	# TIME1 - RSPSTART, CSECS B-14.
+			SATRLRT
+		SL	DSU
+			14D
+			DPHALF
+		DAD	DSU		# ASSUMING X(SM) ALONG LAUNCH AZIMUTH,
+			LAUNCHAZ	# LAUNCHAZ = ANGLE FROM NORTH TO X(SM).
+			AZIMUTH		# AZIMUTH = -ANGLE FROM NORTH TO Z(S/C)
+		RTB			# DETERMINE IF ROLLOUT
+			RLTST		# IS COMPLETED
+ATTDISPR	PUSH	COS		# CONTINUE COMPUTING TSMV
+		PUSH			# LET R(RAD) = 2*PI*ROLL(REV)
+		DMP	SL1
+			14D
+		STODL	22D		# -.5*COS(R)*COS(P)
+		DCOMP
+		STORE	18D		# -.5*COS(R)
+		DMP	SL1
+			10D
+		STODL	26D		# -.5*COS(R)*SIN(P)
+		SIN	PUSH
+		STORE	24D		# .5*SIN(R)
+		DMP	SL1
+			14D
+		STODL	16D		# -.5*SIN(R)*COS(P)
+		DCOMP
+		DMP	SL1
+			10D
+		STOVL	20D		# -.5*SIN(R)*SIN(P)
+			10D
+			
+#	FROM TSMV FIND THE HALF UNIT VECTORS XDC,YDC,ZDC = INPUT TO CALCGTA
+# Page 544
+		UNIT
+		STOVL	XDC		# XDC = .5*UNIT(SIN(P),0,-COS(P))
+			16D
+		UNIT
+		STOVL	YDC		# YDC = .5*UNIT(-SIN(R)*COS(P),-COS(R),
+			22D		#			-SIN(R)*SIN(P))
+		UNIT
+		STCALL	ZDC		# ZDC = .5*UNIT(-COS(R)*COS(P),SIN(R),
+			CALCGTA		#			-COS(R)*SIN(P))
+			
+#	CALL CALCGTA TO COMPUTE DESIRED SM ORIENTATION	OGC,IGC, AND MGC
+#				 _          _   _
+#	FIND DIFFERENCE VECTOR	DELTACDU = OGC-CDUX
+#  
+#	ENTER HERE IF ATTITUDE HOLD
+
+NOPOLYM		VLOAD	PUSH		#        OGC      IGC
+			OGC		# CHANGE IGC  TO  MGC FOR COMPATIBILITY
+		PUSH	CALL		#        MGC      OGC
+			CDUTRIG		# WITH Y,Z,X ORDER OF CDUSPOT
+		VLOAD	RTB		#  _         DPHI     OGC-CDUX , PD4
+			2		# DELTACDU = DTHETA = IGC-CDUY , 0
+			V1STO2S		#            DPSI     MGC-CDUZ , 2
+		STOVL	BOOSTEMP
+			ZEROVECS
+		STOVL	0
+			CDUSPOT
+		RTB	RTB
+			V1STO2S
+			DELSTOR
+		STODL	10D
+			SINCDUZ
+		DMP	SL1
+			0
+		DAD	SR2		# CHANGE SCALE OF AK TO 2REVS
+			4
+		GOTO
+			ATTDISP2
+			
+		SETLOC	P11ONE
+		BANK
+		COUNT	34/P11
+
+ATTDISP2	STODL	16D		# 16D, .5(DPHI + DTHETA*SIN(CDUZ))
+			COSCDUZ
+		DMP	PUSH
+			0
+		DMP	SL1
+			COSCDUX
+		PDDL	DMP
+# Page 545
+			SINCDUX
+			2
+		DAD	SL1
+		STADR
+		STODL	17D		# 17D,	.5(DTHETA*COS(CDUX)*COS(CDUZ)
+		DMP	SL1		#			+DPSI*SIN(CDUX))
+			SINCDUX
+		PDDL	DMP
+			COSCDUX
+			2
+		DSU	SL1
+		STADR
+		STORE	18D		# 18D,	.5(-DTHETA*SIN(CDUX)*COS(CDUZ)
+		TLOAD			#			+DPSI*COS(CDUX))
+			16D
+		STORE	AK		# STORE ATTITUDE ERRORS IN AK,AK1,AK2
+		EXIT
+		
+		CA      SATSW
+		CCS     A               # CHK TAKEOVER STATUS
+		TC      SATOUT          # POS -- DISPLAY ONLY
+		TC      AKLOAD          # 0      STORE BIAS
+STEERSAT        TC      INTPRET         # NEG    STEER L/V
+                TLOAD   TAD
+                        BIASAK
+                        AK
+                STORE   AK              # AKS = AKS - STORED BIAS
+                EXIT
+                CA      AK
+                TC      RESCALES
+                TS      AK
+                CA      AK1
+                TC      RESCALES
+                TS      AK1
+                CA      AK2
+                TC      RESCALES
+                TS      AK2
+#	DISPLAY ATTITUDE ERRORS ON FDAI VIA NEEDLER
+
+SATOUT		TC	BANKCALL
+		CADR	NEEDLER
+ATERSET		CAF	OCT31		# DELAY .25 SEC
+		TC	BANKCALL	# EXECUTION + DELAY = .56SEC APPROX
+		CADR	DELAYJOB
+		TC	ATERJOB		# END OF ATT ERROR DISPLAY CYCLE
+
+AKLOAD          CS      AK              # STORE AKS
+                TS      BIASAK          # INTO BIAS
+                CS      AK1             # COMPLEMENTED
+                TS      BIASAK +1
+# Page 546
+                CS      AK2
+                TS      BIASAK +2
+                CS      BIT1            # SET SW
+                TS      SATSW           # TO STEER
+                TC      STEERSAT        # GO STEER
+STRSAT          CA      SATSW           # CHECK IF NEDLER
+                EXTEND                  # HAS BEEN INITIALIZED
+                BZMF    ATTDISP         # YES -- CONTINUE
+ATRESET         CS      RCSFLAGS        # NO -- SET
+                MASK    BIT3            # INITIALIZATION SW
+                ADS     RCSFLAGS        # FOR NEDLER
+                TC      BANKCALL        # AND GO
+                CADR    NEEDLER         # DO IT
+                CAF     REVCNT          # OCT 6
+                TC      BANKCALL        # DELAY JOB
+                CADR    DELAYJOB        # 60 MS --WAIT TILL IMUERRCNTR ZEROED
+                CCS     SATSW          	# CHECK SW STATUS
+                TC      TAKEON          # POS   STEER INIT.
+                TC      +1              # 0     RETURN TO DISPLAY
+                CA      BIT1            # NEG   RETURN TO DISPLAY
+                TS      SATSW           # SW = DISPLAY ON
+                CS      BIT9            # DISABLE
+                EXTEND                  # SIVB
+                WAND    CHAN12          # TAKEOVER
+                TC      SATOUT          # DISPLAY
+TAKEON          CAF     BIT9            # ENABLE
+                EXTEND                  # SIVB
+                WOR     CHAN12          # TAKEOVER
+                CA      ZERO            # INDICATE NEEDLER
+                TS      SATSW           # WAS INITIALIZED
+                TC      SATOUT		
+S11.1		VLOAD	ABVAL
+			VN
+		STOVL	VMAGI		# VI	SCALED 2(7) IN METERS/CSEC
+			RN
+		UNIT    DOT
+		        VN
+		SL1
+		STODL   HDOT
+		        RPAD
+		BOF     VLOAD
+		        AMOONFLG
+		        EARTHALT
+		        RLS
+		ABVAL	SR2
+EARTHALT         BDSU
+		        36D
+		STORE   ALTI
+		RVQ
+DELSTOR		CA	BOOSTEMP
+# Page 547
+		EXTEND			# STORE DELTACDU INTO PDL 0,2,4
+		MSU	MPAC
+		INDEX	FIXLOC
+		TS	0
+		CA	BOOSTEMP +1
+		EXTEND
+		MSU	MPAC +1
+		INDEX	FIXLOC
+		TS	2
+		CA	BOOSTEMP +2
+		EXTEND
+		MSU	MPAC +2
+		INDEX	FIXLOC
+		TS	4
+		TCF	DANZIG
+RLTST		CA	MPAC		# DETERMINE IF ROLLOUT
+		EXTEND			# IS COMPLETED
+		MP	SATRLRT +1	
+		EXTEND
+		BZMF	DANZIG		# UNLIKE SIGNS STILL ROLLING
+		EXTEND			# ROLLOUT COMPLETED
+		DCA	MBDYTCTL +2	# ZERO OUT ROLL CONTRIBUTION
+		DXCH	MPAC
+		TC	DANZIG
+NOPOLY		TC	INTPRET		# COMES HERE IF
+		SETPD	GOTO		# ATTITUDE HOLD
+			0
+			NOPOLYM
+COEFPOLY	ADRES	POLYLOC
+V06N62		VN	0662
+RESCALES        EXTEND                  # RESCALE AK S FOR
+                MP      SATSCALE        # NEW HARDWARE
+                DDOUBL                  # SCALING FOR
+                DDOUBL                  # STEERING
+                TC      Q               # SATURN
+
+# SATURN TAKEOVER FUNCTION
+# ************************
+# 
+# PROGRAM DESCRIPTION
+#
+#	MOD NUMBER 1
+#	MOD BY ELIASSEN
+#
+# FUNCTIONAL DESCRIPTION
+#
+#	DURING THE COASTING PHASE OF SIVB ATTACHED, THE
+#	ASTRONAUT MAY REQUEST SATURN TAKEOVER THROUGH
+#	EXTENDED VERB 46 (BITS 13,14 OF DAPDATR1 SET ).
+#	THE CMC REGARDS RHC COMMANDS AS BODY-AXES RATE
+#	COMMANDS AND IT TRANSMITS THESE TO SATURN AS DC
+#Page 548
+#	VOLTAGES.  THE VALUE OF THE CONSTANT RATE COMMAND
+#	IS 0.5 DEG/SEC.  AN ABSENCE OF RHC ACTIVITY RE-
+#	SULTS IN A ZERO RATE COMMAND.
+#
+#	THE FDAI ERROR NEEDLES WILL INDICATE THE VALUE
+#	OF THE RATE COMMAND.
+#
+# CALLING SEQUENCE
+#
+#	DAPFIG +9D	TC	POSTJUMP
+#			CADR	SATSTKON
+#
+# SUBROUTINES CALLED
+#
+#	ENDEXT
+#	IBNKCALL
+#	STICKCHK
+#	NEEDLER
+#	T5RUPT
+#	RESUME
+#
+# ASTRONAUT REQUESTS
+#
+#	ENTRY --  VERB 46 ENTER
+#		  (CONDITION -- BITS 13, 14 OF DAPDATR1 SET)
+#
+#	EXIT --   VERB 48 ENTER	(FLASH V06N46)
+#		  VERB 21 ENTER	AXXXX ENTER WHERE A=0 OR 1
+#		  VERB 34 ENTER
+#		  VERB 46 ENTER
+#
+# NORMAL EXIT MODE
+#
+#	VERB 46 ENTER	(SEE ASTRONAUT ABOVE)
+#
+# ALARM OR ABORT EXIT MODES
+#
+#	NONE
+#
+# OUTPUT
+#
+#	SATURN RATES IN CDUXCMD, CDUYCMD, CDUZCMD
+#
+# ERASABLE INITIALIZATION
+#
+#	DAPDATR1	(BITS 13, 14 MUST BE SET)
+#
+# DEBRIS
+#
+#	CENTRALS
+#Page 549
+#	CDUXCMD, CDUYCMD, CDUZCMD
+
+		BANK	43
+		SETLOC	EXTVERBS
+		BANK
+		
+		COUNT	23/STTKE
+SATSTKON	EXTEND
+		DCA	2REDOSAT
+		INHINT
+		DXCH	T5LOC
+		CAF	POSMAX
+		TS	TIME5
+		CS	FLAGWRD6	# TURN ON BITS 15,14 OF
+		MASK	RELTAB11	# FLAGWRD6
+		ADS	FLAGWRD6	#	SATSTICK CONTROL OF T5
+		TC	IBNKCALL	# ZERO JET CHANNELS IN 14 MS AND THEN
+		CADR	ZEROJET		# LEAVE THE T6 CLOCK DISABLED
+		RELINT
+		TC	GOPIN		# EXIT THUS BECAUSE WE CAME VIA V46
+		
+		SBANK=	PINSUPER	# Added RSB 2009
+		EBANK=	BODY3
+2REDOSAT	2CADR	REDOSAT
+
+
+                SBANK=  LOWSUPER
+		BANK	32
+		SETLOC	P11FOUR
+		BANK
+		
+REDOSAT		LXCH	BANKRUPT	# ALSO COMES HERE FOR RESTARTS
+		EXTEND
+		QXCH	QRUPT
+		CS	RCSFLAGS	# TURN ON BIT3 OF RCSFLAGX
+		MASK	BIT3		# FOR
+		ADS	RCSFLAGS	# NEEDLER INITIALIZATION
+		TC	IBNKCALL
+		CADR	NEEDLER		# DISABLE IMU ERR COUNTERS ETC.
+		CAF	BIT9		# SIVB
+		EXTEND			# TAKEOVER
+		WOR	CHAN12		# ENABLE
+		EXTEND			# SET UP T5 CYCLE
+		DCA	2SATSTCK
+		DXCH	T5LOC
+		CAF	100MST5		# IN 100 MSECS
+		TS	TIME5
+		TCF	RESUME		# END OF SATURN STICK INITIALIZATION
+		
+#	THIS SECTION IS EXECUTED EVERY 100 MSECS.
+#Page 550
+SATSTICK	LXCH	BANKRUPT
+		EXTEND
+		QXCH	QRUPT
+		
+		CAF	2SATSTCK	# SET UP RUPT
+		TS	T5LOC		# LO ORDER LOC SET
+		CAF	100MST5		# 100 MSECS
+		TS	TIME5
+		CAF	STIKBITS
+		EXTEND
+		RXOR	CHAN31		# CHECK IF MAN ROT BITS SAME
+		MASK	STIKBITS
+		TC	IBNKCALL	# SET RATE INDICES
+		CADR	STICKCHK	# FOR PITCH YAW AND ROLL
+		
+		INDEX	RMANNDX		# SET SATURN RATES
+		CA	SATRATE
+		TS	AK		#	ROLL
+		INDEX	PMANNDX
+		CA	SATRATE
+		TS	AK1		#	PITCH
+		INDEX	YMANNDX
+		CA	SATRATE
+		TS	AK2		#	YAW
+		
+		TC	IBNKCALL	# FOR SATURN INTERFACE AND FDAI DISPLAY
+		CADR	NEEDLER	
+		TCF	RESUME		# END OF SATURN STICK CONTROL
+		
+STIKBITS	OCT	00077
+100MST5		DEC	16374
+		EBANK=	BODY3
+2SATSTCK	2CADR	SATSTICK
diff --git a/P12.s b/P12.s
new file mode 100644
index 0000000..41c8775
--- /dev/null
+++ b/P12.s
@@ -0,0 +1,245 @@
+# Copyright:	Public domain.
+# Filename:	P12.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:	838-842
+# Mod history:	2009-05-23 HG	Transcribed from 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 001 of AGC program LMY99 by NASA 2021112-61
+#	16:27 JULY 14, 1969 
+
+# Page 838
+		BANK	24
+		SETLOC	P12
+		BANK
+
+		EBANK=	DVCNTR
+		COUNT*	$$/P12
+
+P12LM		TC	PHASCHNG
+		OCT	04024
+
+		TC	BANKCALL
+		CADR	R02BOTH		# CHECK THE STATUS OF THE IMU.
+		
+		TC	UPFLAG		
+		ADRES	MUNFLAG
+		
+		TC	UPFLAG		# INSURE 4-JET TRANSLATION CAPABILITY.
+		ADRES	ACC4-2FL
+		
+		TC	UPFLAG		# PREVENT R10 FROM ISSUING CROSS-POINTER
+		ADRES	R10FLAG		# OUTPUTS.
+		
+		TC	CLRADMOD	# INITIALIZE RADMODES FOR R29
+		
+		TC	DOWNFLAG	# CLEAR RENDEVOUS FLAG  FOR P22
+		ADRES	RNDVZFLG
+		
+		CAF	THRESH2		# INITIALIZE DVMON
+		TS	DVTHRUSH
+		CAF	FOUR
+		TS	DVCNTR
+
+		CA	ZERO
+		TS	TRKMKCNT	# SHOW THAT R29 DOWNLINK DATA IS NOT READY.
+		CAF	V06N33A
+		TC	BANKCALL	# FLASH TIG
+		CADR	GOFLASH
+		TCF	GOTOP00H
+		TCF	+2		# PROCEED
+		TCF	-5		# ENTER
+
+		TC	PHASCHNG
+		OCT	04024
+
+		TC	INTPRET
+		CALL			# INITIALZE WM AND /LAND/
+			GUIDINIT
+		SET	CALL
+			FLPI
+			P12INIT
+# Page 839
+P12LMB		DLOAD
+			(TGO)A		# SET TGO TO AN INITIAL NOMINAL VALUE.
+		STODL	TGO
+			TIG
+		STCALL	TDEC1
+			LEMPREC		# ROTATE THE STATE VECTORS TO THE
+		VLOAD	MXV		# IGNITION TIME.
+			VATT
+			REFSMMAT
+		VSL1
+		STOVL	V1S		# COMPUTE V1S = VEL(TIG)*2(-7) M/CS.
+			RATT
+		MXV	VSL6
+			REFSMMAT
+		STCALL	R		# COMPUTE R = POS(TIG)*2(-24) M.
+			MUNGRAV		# COMPUTE GDT1/2(TIG)*2(-T)M/CS.
+		VLOAD	UNIT
+			R
+		STCALL	UNIT/R/		# COMPUTE UNIT/R/ FOR YCOMP.
+			YCOMP
+		SR	DCOMP
+			5D
+		STODL	XRANGE		# INITIALIZE XRANGE FOR NOUN 76
+			VINJNOM
+		STODL	ZDOTD
+			RDOTDNOM
+		STORE	RDOTD
+		EXIT
+
+		TC	PHASCHNG
+		OCT	04024
+
+NEWLOAD		CAF	V06N76		# FLASH CROSS-RANGE, AND APOLUNE VALUES.
+		TC	BANKCALL
+		CADR	GOFLASH
+		TCF	GOTOP00H
+		TCF	+2		# PROCEED
+		TCF	NEWLOAD		# ENTER NEW DATA.
+
+		CAF	P12ADRES
+		TS	WHICH
+
+		TC	PHASCHNG
+		OCT	04024
+
+		TC	INTPRET
+		DLOAD	SL
+			XRANGE
+			5D
+		DAD
+# Page 840
+			Y
+		STOVL	YCO
+			UNIT/R/
+		VXSC	VAD
+			49FPS
+			V1S
+		STORE	V		# V(TIPOVER) = V(IGN) + 57FPS (UNIT/R/)
+		DOT	SL1
+			UNIT/R/
+		STOVL	RDOT		# RDOT = 2(-7)
+			UNIT/R/
+		VXV	UNIT
+			QAXIS
+		STORE	ZAXIS1
+		SETGO
+			FLVR
+			ASCENT
+P12RET		DLOAD
+			ATP		# ATP(2)*2(18)
+		DSQ	PDDL
+			ATY		# ATY(2)*2(18)
+		DSQ	DAD
+		BZE	SQRT
+			YAWDUN
+		SL1	BDDV
+			ATY
+		ARCSIN
+YAWDUN		STOVL	YAW
+			UNFC/2
+		UNIT	DOT
+			UNIT/R/
+		SL1	ARCCOS
+		DCOMP
+		STORE	PITCH
+		EXIT
+		TC	PHASCHNG
+		OCT	04024
+
+		TC	DOWNFLAG
+		ADRES	FLPI
+		
+		INHINT
+		TC	IBNKCALL
+		CADR	PFLITEDB
+		RELINT
+
+		TC	POSTJUMP
+		CADR	BURNBABY
+
+P12INIT		DLOAD			# INITIALIZE ENGINE DATA.  USED FOR P12 AND
+# Page 841
+			(1/DV)A		# P71.
+		STORE	1/DV3
+		STORE	1/DV2
+		STODL	1/DV1
+			(AT)A
+		STODL	AT
+			(TBUP)A
+		STODL	TBUP
+			ATDECAY
+		DCOMP	SL
+			11D
+		STORE	TTO
+		SLOAD	DCOMP
+			APSVEX
+		SR2
+		STORE	VE
+		BOFF	RVQ
+			FLAP
+			COMMINIT
+COMMINIT	DLOAD	DAD		# INITIALIZE TARGET DATA.  USED BY P12, P70
+			HINJECT		# AND P71 IF IT DOES NOT FOLLOW P70.
+			/LAND/
+		STODL	RCO
+			HI6ZEROS
+		STORE	TXO
+		STORE	YCO
+		STORE	RDOTD
+		STOVL	YDOTD
+			VRECTCSM
+		VXV	MXV
+			RRECTCSM
+			REFSMMAT
+		UNIT
+		STORE	QAXIS
+		RVQ
+P12ADRES	REMADR	P12TABLE
+
+		SETLOC	P12A
+		BANK
+		COUNT*	$$/P12
+
+GUIDINIT	STQ	SETPD
+			TEMPR60
+			0D
+		VLOAD	PUSH
+			UNITZ
+		RTB	PUSH
+			LOADTIME
+		CALL
+			RP-TO-R
+# Page 842
+		MXV	VXSC
+			REFSMMAT
+			MOONRATE
+		STOVL	WM
+			RLS
+		ABVAL	SL3
+		STCALL	/LAND/
+			TEMPR60
+
+49FPS		2DEC	.149352 B-6	# EXPECTED RDOT AT TIPOVER
+VINJNOM		2DEC	16.7924 B-7	# 5509.5 FPS(APO=30NM WITH RDOT=19.5FPS)
+RDOTDNOM	2DEC	.059436 B-7	# 19.5 FPS
+
+
diff --git a/P20-P25.s b/P20-P25.s
new file mode 100644
index 0000000..d6303f3
--- /dev/null
+++ b/P20-P25.s
@@ -0,0 +1,3529 @@
+# Copyright:	Public domain.
+# Filename:	P20-P25.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:	562-534
+# Mod history:	2009-05-10 RSB	Adapted from the Colossus249/ file 
+#				of the same name, using Comanche055 page 
+#				images. 
+#		2009-05-20 RSB	Corrections:  P2OS -> P20S, STO -> STQ,
+#				GOTOPOOH -> GOTOP00H, a duplicated EXTEND
+#				was fixed, P23.10 -> R23.10, 
+#				S22B0X44 -> S22BOX44, S22SUBSCL -> 22SUBSCL,
+#				S22DPP -> S22DSPP, changed some instructions in
+#				P23.152.
+#
+# 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 562
+# RENDEZVOUS NAVIGATION PROGRAM 20
+#
+# PROGRAM DESCRIPTION
+#
+# 	MOD NO -- 1
+# 	MOD BY -- N. BRODEUR
+#
+# FUNCTIONAL DESCRIPTION
+#
+#	TO CONTROL THE CSM ATTITUDE AND OPTICS TO ACQUIRE THE LEM IN THE S+T
+#	FIELD AND TO POINT THE CSM TRANSPONDER AT THE LEM.  TO UPDATE EITHER THE
+#	LEM OR CSM STATE VECTOR (AS SPECIFIED BY THE ASTRONAUT BY THE DSKY
+#	ENTRY) ON THE BASIS OF OPTICAL TRACKING DATA (REQUESTED BY DSKY)
+#
+# CALLING SEQUENCE --
+#
+# 	ASTRONAUT REQUEST THROUGH DSKY V37E20E
+#
+# SUBROUTINES CALLED
+#
+#	R02BOTH	(IMU STATUS CHECK)				BANKCALL
+#	FLAGUP				2PHCHNG			LOADTIME
+#	R61CSM (PREFERRED TRACKING ATTITUDE)			FLAGDOWN
+#	R52 (AUTO OPTICS POSITIONING ROUT)			SETINTG
+#	R22 (REND TRACK DATA PROC ROUT)				PRIOCHNG
+#	ENDOFJOB			INTEGRV			GRP2PC
+#	INTPRET				MKRLEES			FINDVAC
+#
+# NORMAL EXIT MODES --
+#
+# 	P20 MAY BE TERMINATED IN TWO WAYS -- ASTRONAUT SELECTION OF IDLING
+#	PROGRAM (P00) BY KEYING V37E00E OR BY KEYING IN V56E
+#
+# ALARM OR ABORT EXIT MODES --
+#
+# 	NONE DIRECTLY FROM P20
+#
+# OUTPUT
+#
+# 	TRKMKCNT = NO OF RENDEZVOUS TRACKING MARKS TAKEN (COUNTER)
+#	VHFCNT = NO OF VHF RANGING MARKS INCORPORATED (COUNTER)
+#
+# FLAGS SET + RESET
+#
+#	RNDVZFLG,VEHUPFLG,UPDATFLG,TRACKFLG,TARG1FLG
+#	HOLDFLAG,WBODY,WBODY1,WBODY2,DELCDUX,DELCDUY,DELCDUZ
+#	STIKFLAG,PRFTRKAT,VINTFLAG,DIM0FLAG,R60FLAG,R61CNTR
+
+		BANK	33
+		SETLOC	P20S
+		BANK
+		
+		EBANK=	ESTROKER
+		COUNT*	$$/P20
+
+PROG20		TC	BANKCALL
+		CADR	R02BOTH		# IMU STATUS CHECK
+					# BLOCKING OF UPLINK IS DONE BY UPLINK PRG
+		CAF	ZERO
+		TS	TRKMKCNT	# ZERO REND TRACKING MARK COUNTER
+		TS	VHFCNT		# ZERO REND VHF RNG MRK COUNTER
+		TC	UPFLAG		# SET PREF TRACK ATT FLAG
+		ADRES	PRFTRKAT	# BIT 10 FLAG 5
+		TC	DOWNFLAG	# LEM TO BE UPDATED.  VEHUPFLG RESET.
+		ADRES	VEHUPFLG	# BIT 8 FLAG 1
+# Page 563
+		TC	UPFLAG		# SET TRACKFLAG
+		ADRES	TRACKFLG	# BIT 5 FLAG 1
+		TC	UPFLAG		# SET UPDATFLG
+		ADRES	UPDATFLG	# BIT 7 FLAG 1
+		TC	UPFLAG		# SET RNDVZFLG
+		ADRES	RNDVZFLG	# BIT 7 FLAG 0
+		TC	2PHSCHNG
+		OCT	4
+		OCT	05022
+		OCT	26000	
+		TC	INTPRET
+		RTB
+			LOADTIME
+		STCALL	MARKTIME
+			SETINTG		# SET INTEGRATION FLAGS
+		BOFF	SET
+			RENDWFLG
+			P20.1
+			DIM0FLAG	# SET TO INTEGRATE THE W MATRIX
+P20.1		BON	CLEAR
+			VEHUPFLG
+			P20.2
+			VINTFLAG	# SET FOR LM INTEGRATION
+P20.2		CALL
+			INTEGRV
+		CALL
+			GRP2PC		# GROUP 2 PHASE CHANGE
+		CALL
+			SETINTG		# SET INTEGRATION FLAGS
+		BOFF	CLEAR
+			VEHUPFLG
+			P20.3
+			VINTFLAG	# SET FOR LM INTEGRATION
+P20.3		CALL
+			INTEGRV
+		EXIT
+		CAF	PRIO26
+		TC	FINDVAC
+		EBANK=	MRKBUF2
+		2CADR	R22
+		
+		TC	2PHSCHNG
+		OCT	00072
+		OCT	00111
+PIKUP20		CAF	PRIO14		# ALLOW HIGHER PRIO THAN LAMBERT
+		TC	PRIOCHNG
+		CAF	BIT5		# IS TRACK FLAG SET
+		MASK	STATE	+1
+		EXTEND
+		BZF	ENDOFJOB	# NO
+# Page 564
+		CAF	BIT13
+		MASK	STATE	+3	# IS REFSMFLG SET
+		EXTEND
+		BZF	ENDOFJOB
+		CAF	ZERO
+		TS	R61CNTR		# INITIALIZE R61 COUNTER
+		TC	BANKCALL
+		CADR	R61CSM
+		EBANK=	QMIN
+		CAF	EBANK5
+		TS	EBANK
+		TC	UPFLAG		# SET TARGET FLAG TO LEM
+		ADRES	TARG1FLG	# BIT 10 FLAG 1
+P20R52JB	TC	INTPRET
+		CALL
+			R52		# SET UP AUTO OPTICS JOB
+		EXIT
+		TC	BANKCALL
+		CADR	MKRLEES
+		CAF	ONE		# HOLD PRESENT ATTITUDE
+		TS	HOLDFLAG
+		TC	ENDOFJOB
+OCT203		OCT	00203
+FIRST3		EQUALS	FURST3
+
+# Page 565
+# ORBITAL NAVIGATION PROGRAM 22
+
+		BANK	31
+		SETLOC	P20S1
+		BANK
+		
+		EBANK=	LANDMARK
+		COUNT*	$$/P22
+		
+PROG22		TC	DOWNFLAG	# RESET RNDVZFLG BIT 7 FLAG 0
+		ADRES	RNDVZFLG
+		TC	BANKCALL
+		CADR	R02BOTH		# IMU STATUS CHECK
+		TC	INTPRET		# COMPUTE ANGLE BETWEEN Y AND VXR SM
+		RTB
+			LOADTIME
+		STCALL	TDEC1
+			CSMCONIC	# INTEGRATE TO PRESENT TIME
+		VLOAD	VXV		# CROSS PRODUCT BETWEEN V AND R
+			VATT
+			RATT
+		UNIT	DOT
+			REFSMMAT +6
+		ABS
+		SL1	ARCCOS
+		STORE	+MGA
+		CLEAR	EXIT
+			RENDWFLG
+		CAF	V06N45B
+		TC	BANKCALL
+		CADR	GOFLASHR
+		TC	GOTOP00H	# TERM P22
+		TC	PROG22A		# PROC
+		TC	-5		# ENTER
+		CAF	THREE
+		TC	BLANKET		# BLANK OUT R1 + R2
+		TC	ENDOFJOB
+PROG22A		CS	PRIO7		# RESULT=70777  SET OFFSET NO.=0
+		MASK	LANDMARK
+		TS	LANDMARK
+		TC	INTPRET
+		CLEAR
+			P22MKFLG
+		SET	BOFF
+			ERADFLAG
+			CMOONFLG
+			PROG22B		# EARTH
+		SET			# MOON
+			LUNAFLAG
+		DLOAD	CALL		# MPAC=V05N70,MPAC+1=NONZERO FOR N70
+			V05N7022
+# Page 566
+			S22N7071
+		GOTO
+			CALLR52
+PROG22B		CLEAR	SET		# EARTH ORBIT
+			LUNAFLAG
+			KNOWNFLG
+		CALL			# GET LAT/LONG/ALT FROM ASTRO
+			P22SUBRB
+CALLR52		EXIT
+		TC	2PHSCHNG
+		OCT	00004
+		OCT	05022
+		OCT	13000
+		CAF	FIVE
+		TS	MARKINDX	# SET MARK INDEX=5 FOR R52
+		TC	UPFLAG
+		ADRES	TARG2FLG	# SET FOR SIGHTING LMK
+		TC	DOWNFLAG
+		ADRES	TARG1FLG	# CLEAR FOR NON-LEM
+		TC	INTPRET
+		CALL
+			R52
+DOV5N71		SLOAD	CALL		# MPAC=V05N71,MPAC+1=0 FOR N71
+			V05N7122
+			S22N7071
+PROG22C		LXC,2	SLOAD*
+			MARKSTAT
+			QPRET,2
+		STCALL	8NN
+			S22.1		# ESTABLISH LANDMARK -- COMPUTE ORBITAL
+P22OVER		EXIT
+		TC	PHASCHNG
+		OCT	04022
+		TC	PROG22A		# POINT A ON GSOP
+V06N45B		VN	0645
+V05N7022	VN	00570
+V05N7122	VN	00571
+		SETLOC	P20S
+		BANK
+		
+		SETLOC	P20S1
+		BANK
+
+S22LSITE	RTB			# CONVERT RLS FROM MOON-FIXED TO BASIC REF
+			LOADTIME
+		STOVL	6D		# 6-7D= TIME
+			RLS
+		STODL	0D		# 0-5D= LANDING SITE VECTOR
+			HIDPHALF	# MPAC= ANY NON-ZERO FOR MOON
+		CALL
+# Page 567
+			RP-TO-R		# RLS IN BASIC REF B-27 IN MPAC
+		VSR2			# LUNAFLAG AND ERADFLAG SET ABOVE
+		STORE	ALPHAV		# SCALE RLS B-29 FOR LAT-LONG
+		RTB	
+			LOADTIME	# SET PRESENT TIME IN MPAC FOR LAT-LONG
+		CALL
+			LAT-LONG
+		GOTO
+			S22TOFF		# EXIT
+OBTAINLL	CALL			# GET LAT/LONG/ALT FROM ASTRO
+			P22SUBRB
+		GOTO
+			S22TOFF		# EXIT
+P22SUBRB	STQ	EXIT		# GET LAT/LONG/ALT FROM ASTRO
+			S22TOFF +1
+		CAF	V06N89B
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H	# TERMINATE
+		TC	+2		# PROCEED
+		TC	-5		# ENTER OR RECYCLE
+		TC	INTPRET
+		DLOAD	ABS		# TEST LAT/LONG GREATER THAN 90
+			LANDLAT
+		BDSU	BMN		# 1/4 REV - LAT
+			DP1/4TH
+			N89ERRX
+		DLOAD	ABS
+			LANDLONG
+		BDSU	BPL
+			DP1/4TH
+			+4
+
+N89ERRX		EXIT
+		TC	FALTON
+		TC	P22SUBRB +2	# LONG GR. THAN 90  REDISPLAY
+		CALL
+			LLASRDA
+		GOTO
+			S22TOFF +1	# EXIT
+S22N7071	STORE	8KK		# 8KK=V05N71,V05N70 8KK+1=0 N71, NOT 0 N70
+		STQ	EXIT
+			S22TOFF
+S22DSPPA	CA	8KK		# V05N70 OR V05N71
+		TC	BANKCALL
+		CADR	GOFLASHR
+		TC	GOTOP00H	# V34E TERMINATE
+		TC	+5		# V33E PROCEED
+		TC	-5		# V32E RECYCLE
+		CAF	FIVE		# IMMEDIATE RETURN BLANK OUT R1,R3
+		TC	BLANKET
+# Page 568
+		TC	ENDOFJOB
+		CA	LANDMARK
+		MASK	PRIO7		# 07000
+		TS	CXOFF		# 08000 = OFFSET INDICATOR
+		CS	PRIO5		# 5 8-5
+		AD	CXOFF
+		EXTEND
+		BZMF	+2		# OFF=0 THRU 5 OK
+		TC	S22DSPP		# OFF=6.7 ILLEGAL REDISPLAY
+		TC	DOWNFLAG
+		ADRES	KNOWNFLG	# CLEAR KNOWNFLG
+		CA	LANDMARK	# MASK A FROM ABCDE
+		MASK	13,14,15
+		EXTEND
+		BZMF	S22DSPP		# A=0,4,5,6,7  ILLEGAL REDISPLAY
+		TS	22SUBSCL	# TEMP
+		CS	BIT14
+		AD	22SUBSCL
+		CCS	A
+S22DSPP		TC	FALTON		# + A=3 ILLEGAL REDISPLAY
+		TC	S22DSPPA	# COMMON ERROR EXIT BACK TO DISPLAY
+		TC	+2		# - A=1 KNOWN LMK  CHECK DE
+		TC	S22ABDE		# -0 A=2 UNKNOWN LMK, DE MEANINGLESS
+		TC 	UPFLAG
+		ADRES	KNOWNFLG	# SET KNOWNFLG
+		CS	HIGH9		# RESULT= 00077
+		MASK	LANDMARK
+		TS	22SUBSCL	# 000DE
+		CS	BIT1
+		AD	22SUBSCL
+		EXTEND
+		BZMF	S22ABDE		# DE=0,1 OK FOR BOTH N70,N71
+		CA	8KK	+1	# =0 FOR N71, NOT =0 FOR N70
+		EXTEND
+		BZF	S22DSPP		# N71 REDISPLAY  DE MUST= 0 OR 1
+		CA	BIT5		# N70 TEST DE= 50-57 OCTAL FOR ADV. ORBIT
+		AD	OCT50		# SUM=00070
+		MASK	22SUBSCL	# 00D0
+		CS	A
+		AD	OCT50
+		EXTEND
+		BZF	DE-GR-50	# D=5 OR DE=50-57, OK FOR N70
+		TC	S22DSPP		# DE NOT 50-57  ILLEGAL, REDISPLAY
+S22ABDE		TC	INTPRET
+		BOFF	SLOAD
+			KNOWNFLG	# UNKNOWN LMK, DE MEANINGLESS
+			S22TOFF
+			22SUBSCL	# =0 GET LLA FROM ASTRO, NOT=0 USE RLS
+		BHIZ	GOTO
+			OBTAINLL	# GET LAT/LONG/ALT FROM ASTRO  N89
+# Page 569			
+			S22LSITE	# GET LAT/LONG/ALT FROM RLS
+DE-GR-50	TC	2PHSCHNG
+		OCT	00004
+		OCT	05022
+		OCT	13000
+		CA	FIVE
+		TS	MARKINDX
+		TC	UPFLAG
+		ADRES	TARG2FLG
+		TC	DOWNFLAG
+		ADRES	TARG1FLG
+		TC	INTPRET
+		CALL
+			ADVORB
+		GOTO
+			DOV5N71
+
+# Page 570
+# PROGRAM NAME:  OPTICS CALIBRATION ROUTINE
+# MOD NO:  1
+# MOD BY:  TOM KNATT
+#
+# FUNCTIONAL DESCRIPTION:  TO MEASURE THE EFFECT OF SOLAR RADIATION ON
+#	THE SXT TRUNNON ANGLE AND STORE THE MEASURED TRUNNION BIAS FOR P23
+#
+# CALLING SEQUENCE:	CALL
+#				R57
+#
+# SUBROUTINES CALLED:  DISPLAY ROUTINES
+#
+# NORMAL EXIT MODES:  VIA EGRESS
+#
+# ALARMS:  NONE
+#
+# ABORT MODES:  P23 ABORT IF MARKING SYSTEM OR EXTENDED VERB ACTIVE
+#
+# INPUT:  NONE REQURIES, NORMALLY CALLED BY P23
+#
+# OUTPUT:  TRUNNION BIAS ANGLE: ANGLE DETERMINED WHEN SHAFT LINE OF SIGHT
+#	(SLOS) AND LANDMARK LINE OF SIGHT (LLOS) ARE SUPERIMPOSED.  THIS ANGLE
+#	MAY NOT BE EXACTLY ZERO BECAUSE OF UNEVEN HEATING OF THE OPTICS, FOR
+#	EXAMPLE.
+#
+# ERASABLE INITIALIZATION REQUIRED:  MRKBUF1, EXTVBACT
+#
+# DEBRIS:  RUPTREGS USED BY MARKRUPT AND ERASABLES USED BY DISPLAYS.
+
+		BANK	33
+		SETLOC	P20S
+		BANK
+		COUNT*	$$/R57
+		EBANK=	MRKBUF1
+R57		STQ	EXIT
+			EGRESS
+		CAF	EBANK7
+		TS	EBANK
+		CAF	SIX		# BIT2 = MARKING SYSTEM IN USE
+		MASK	EXTVBACT	# BIT3 = EXTENDED VERB IN PROGRESS
+		CCS	A
+		TC	P23ABRT		# SET, THEREFORE ABORT
+		CAF	BIT2		# NOT SET
+		ADS	EXTVBACT	# SET IT
+R57A		TC	UPFLAG		# SET V59FLAG (BIT 12 FLAG 5 TO INDICATE
+		ADRES	V59FLAG		# CALIBRATION MARK
+		CAF	V59NB
+		TC	BANKCALL
+		CADR	GOMARKFR
+		TC	GOTOP00H	# TERMINATE
+		TC	ENDR57
+		TC	ENDR57
+		CAF	SEVEN
+# Page 571
+		TC	BLANKET		# BLANK OUT R1,R2,R3
+		TC	ENDOFJOB
+# STORE TRUNNION ANGLE (OCDU)
+MARKDISP	CAF	V06N87NB
+		TC	BANKCALL
+		CADR	GOMARKFR
+		TC	GOTOP00H	# TERMINATE
+		TC	R57B		# PROCEED
+		TC	R57A		# ENTER (RECYCLE)
+		CAF	FIVE
+		TC	BLANKET		# BLANK OUT R1,R3
+		TC	ENDOFJOB
+R57B		CA	19.77DEG	# PUT FIXED INTO ERASABLE FOR MSU
+		TS	L		# INSTRUCTION COMING UP
+		CA	MRKBUF1 +5	# CONTAINS TRUNNION
+		EXTEND
+		MSU	L		# CONNECTS TRUNBIAS FROM 2'S TO 1'S
+		TS	TRUNBIAS
+ENDR57		TC	DOWNFLAG	# RESET V59FLAG
+		ADRES	V59FLAG		# BIT 12 FLAG 5
+		CAF	EBANK5
+		TS	EBANK
+		CAF	PRIO14
+		TC	NOVAC		# THIS JOB CLEARS BIT IN
+		EBANK=	MARKSTAT
+		2CADR	ENDMARK		# MARKING IN R57 SO R53 CAN TAKE OVER
+		
+		TC	INTPRET
+		GOTO
+			EGRESS
+P23ABRT		TC	BAILOUT
+		OCT	01211
+V06N87NB	VN	0687
+V59NB		VN	5900
+V51NB		VN	5100
+19.77DEG	OCT	61740
+
+# Page 572
+# PROGRAM DESCRIPTION
+# MOD NO:  1
+# MOD BY:  N. BRODEUR
+#
+# FUNCTIONAL DESCRIPTION
+#
+# TO PERFORM SIGHTING MARKS IN CONJUNCTION WITH THE RENDEZVOUS NAVIG-
+# ATION PROGRAM.  CALLED BY ASTRONAUT VIA EXTENDED VERB.
+#
+# CALLING SEQUENCE:
+#
+#	R21 VIA V57
+#	R23 VIA V 54
+#
+# SUBROUTINES CALLED:
+#
+#	FLAGUP		FLAGDOWN	BANKCALL
+#	ENDOFJOB	GOMARK2		GOMARKF
+#	INTPRET		GENTRAN		KLEENEX
+#	ENDMARK
+#
+# NORMAL EXIT MODES:
+#
+# MARKRUPT USED BY SXTMARK HAS BEEN MODIFIED TO STORE MARK IN MRKBUF2
+# FOR USE BY R22.  WHEN ASTRONAUT IS FINISHED TAKING MARKS, HE HITS AN
+# PROCEED, R21 IS TERMINATED THUS CAUSING THE FINAL MARK TO BE TRANSFRD
+# TO MRKBUF2 FOR PROCESSING BY R22
+#
+# ALARM OR ABORT EXIT MODES:
+#
+#	NONE
+#
+# OUTPUT:
+#
+#	7 REGISTER MRKBUF2 CONTAINING TIME2,TIME1,CDUY,OPTICS X,CDUZ, OPTICS Y,
+#	CDUX.
+#
+# ERASABLE INTIALIZATION REQUIRED
+#
+# FLAGS SET AND RESET
+#	R21MARK		(COMMUNICATION TO MARKRUPT TO STORE MARKS IN MRKBUF1 +2)
+#	R23FLG		INDICATES COAS MARKING
+#
+# DEBRIS
+
+		EBANK=	MRKBUF1
+		SETLOC	RENDEZ
+		BANK
+		
+		COUNT*	$$/R21
+		
+R21CSM		TC	UPFLAG		# SET R21MARK
+		ADRES	R21MARK		# BIT 14 FLAG 2
+R23CSM		CA	NEGONE
+		TS	MRKBUF1
+		TS	MRKBUF2
+		CA	FLAGWRD1
+		MASK	R23BIT		# TEST R23FLG
+		EXTEND
+		BZF	R21C1		# NOT SET REGULAR R21 MARKING
+		CAF	V0694		# R23 BACKUP MARKING
+		TC	BANKCALL	# DISPLAY SHAFT + TRUNNION
+		CADR	GOMARKF
+		TC	R21END		# TERM
+		TC	+2		# PROC
+# Page 573
+		TC	-5		# ENTER
+R23CSM1		CAF	V53		# PERFORM ALT LOST SIGHT MARK
+		TC	BANKCALL
+		CADR	GOMARK2
+		TC	R21END		# V34: TERMINATE R23
+		TCF	R21CSMA		# PROCEED: END BACK UP MARKING (R23)
+		CAF	SIX		# TRANSFER MRKBUF1 TO MRKBUF2
+		TC	GENTRAN
+		ADRES	MRKBUF1
+		ADRES	MRKBUF2
+		EXTEND
+		DCA	TIME2
+		DXCH	MRKBUF1		# READ TIME
+		CA	CDUY		# READ CDU ANGLES
+		TS	MRKBUF1 +2
+		CA	CDUZ
+		TS	MRKBUF1 +4
+		CA	CDUX
+		TS	MRKBUF1 +6
+		RELINT
+		TC	R23CSM1
+R21C1		CAF	V51NB
+		TC	BANKCALL
+		CADR	GOMARK2
+		TC	R21END		# V34: TERMINATE R21
+		TCF	R21CSMA		# PROCEED: END R21
+		TCF	R21C1		# RECYCLE
+		
+R21CSMA		CA	MRKBUF1		# IF -1 NO MARK
+		AD	ONE
+		EXTEND
+		BZF	R21END		# ZERO = NO MARK
+		CAF	SIX		# MARK THEREFORE TRANSFER IT TO MRKBUF2
+R21CSM1		TC	GENTRAN		# TRANSFER MRKBUF1 TO MRKBUF2
+		ADRES	MRKBUF1
+		ADRES	MRKBUF2
+		RELINT
+R21END		TC	BANKCALL
+		CADR	KLEENEX
+		TC	DOWNFLAG	# RESET R21MARK
+		ADRES	R21MARK		# BIT 14 FLAG 2
+		TC	ENDMARK		# END MARKING AND ENDJOB
+V53		VN	5300
+V0694		VN	0694
+
+# Page 574
+# PREFERRED TRACKING ATTITUDE ROUTINE R61CSM
+#
+# PROGRAM DESCRIPTION
+#	MOD NO:  2
+#	MOD BY:  N. BRODEUR
+#
+# FUNCTIONAL DESCRIPTION:
+#
+#	TO COMPUTE THE PREFERRED TRACKING ATTITUDE OF THE CSM TO ENABLE OPTICS
+#	TRACKING OF THE LM AND TO PERFORM THE MANEUVER TO THE PREFERRED
+#	OR X-AXIS TRACKING ATTITUDE.
+#
+# CALLING SEQUENCE:
+#
+#	TC	BANKCALL
+#	CADR	R61CSM
+#
+# SUBROUTINE CALLED
+#
+#	MAKECADR	BANKCALL
+#	INTPRET		FLAGUP		FLAGDOWN
+#	BANKJUMP	CRS61.1		R60CSM
+#	PHASCHNG
+#
+# NORMAL EXIT MODES:
+#
+#	NORMAL RETURN TO CALLER + 1
+#
+# OUTPUT:
+#
+#	SEE OUTPUT FOR CRS61.1 & ATTITUDE MANEUVER ROUTINE (R60CSM)
+#
+# ERASABLE INITIALIZATION REQUIRED
+#
+#	GENRET USED TO SAVE Q FOR RETURN
+#	R61CNTR MUST BE PRESET TO ZERO
+#
+# FLAGS SET + RESET
+#
+#	3-AXIS FLAG
+#
+# DEBRIS
+#
+#	SEE SUBROUTINES
+
+		EBANK=	GENRET
+		COUNT*	$$/R61		# ROUTINES -- NAVIGATION -- PREF. TR. 9TT=
+		
+R61CSM		CAF	EBANK6		# SWITCH TO EBANK 6
+		XCH	EBANK
+		TS	SAVBNK		# SAVE EBANK
+		TC	MAKECADR
+		TS	GENRET
+		CCS	R61CNTR		# TEST R61DNTR
+		TC	DECRM61		# NOT READY TO DO R61
+		TC	+2		# DO R61
+		TC	DECRM61 +1
+		TC	INTPRET
+		CALL
+			CRS61.1		# LOS DETERMINATION + VEH ATTITUDE
+		EXIT
+		INDEX	MPAC
+		TC	+1
+		TC	R61END		# SUBROUTINE DRIVING DAP	(EXIT R61)
+					# OR AUTO MODE NOT SET		(EXIT R61)
+					# OR SKIKFLAG SET		(EXIT R61)
+R61C1		TC	DOWNFLAG	# RESET 3-AXIS FLAG
+		ADRES	3AXISFLG	# BIT 6 FLAG 5
+# Page 575
+		CS	ONE		# SET R61CNTR NEG. TO INDICATE KALCMANU
+		TS	R61CNTR
+		
+		TC	UPFLAG		# SET FLAG FOR PRIORITY DISPLAYS FOR R60
+		ADRES	PDSPFLAG	# BIT 12 FLAG 4
+		TC	BANKCALL
+		CADR	R60CSM
+		TC	DOWNFLAG	# RESET FLAG FOR PRIORITY DISPLAYS IN R60
+		ADRES	PDSPFLAG	# BIT 12 FLAG 4
+		TC	PHASCHNG
+		OCT	00111
+		CAF	ZERO
+		TC	DECRM61
+R61END		CAF	THREE
+
+DECRM61		TS	R61CNTR
+
+		CAE	GENRET
+		LXCH	A		# RETURN IS IN L
+		CA	SAVBNK		# RESTORE EBANK
+		XCH	EBANK
+		LXCH	A		# RETURN IS NOW BACK IN A
+		TC	BANKJUMP	# EXIT R61
+		BANK	13
+		SETLOC	P20S2
+		BANK
+		
+		EBANK=	MRKBUF1
+# Page 576
+# BVECTOR PERFORMS COMPUTATIONS FOR
+#
+# 	DELTAQ, THE MEASURED DEVIATION BASED ON THE DIFFERENCE BETWEEN THE CSM-LEM
+# 	STATE VECTOR ESTIMATES AND THE ACTUAL TRACKING MEASUREMENT.
+#
+# 	US, THE MODIFIED FICTITIOUS STAR DIRECTION VECTOR
+#	GEOMETRY VECTORY B ASSOCIATED WITH EACH TRACKING MEASUREMENT.
+#
+# INPUT
+#
+#	UM, 1/2 UNIT VECTOR ALONG THE CSM-LM LINE-OF-SIGHT (BASIC REF. SYSTEM)
+#
+#	USTAR, FICTITIOUS STAR DIRECTION (1/2 UNIT VECTOR)
+#
+#	RCLP, RELATIVE CSM TO LM POSITION VECTOR
+#
+# OUTPUT
+#
+#	USTAR, MODIFIED FICTITIOUS STAR DIRECTION (1/2 UNIT VECTOR)
+#
+#	BVECTOR = 9 DIMENTIONAL BVECTOR (1/2 UNIT VEC.)
+#
+#	DELTAQ = MEASURED DEVIATION
+#
+# CALLING SEQUENCE
+#
+#	L	CALL BVECTORS
+#
+# NORMAL EXIT
+#
+#	L+1 OF CALLING SEQUENCE
+
+		COUNT	23/20SUB
+		
+BVECTORS	STQ
+			EGRESS
+		VLOAD	UNIT
+			RCLP		# RELATIVE POSITION VECTOR
+		STODL	26D		# RCLP UNIT VEC
+			36D		# RCLP ABS VALUE
+		STOVL	TEMPOR1		# MOVE TO SAFE LOCATION
+			USTAR
+		VXV	UNIT
+			26D		# USTAR = UNIT(US X UCL)
+		STCALL	BVECTOR
+			GRP2PC		# PHASE CHANGE
+		VLOAD
+			BVECTOR
+		STORE	USTAR
+		DOT	SL1
+			UM		# USTAR DOT UM
+		ACOS	DSU
+			DP1/4TH
+		NORM	DMP
+			X1
+			PI/4.0
+		DMP	SRR*
+			TEMPOR1		# RCLP ABS VALUE
+			0 -3,1		# ADJUST SCALING
+		STOVL	DELTAQ
+			ZEROVECS
+		STORE	BVECTOR +6
+		STORE	BVECTOR +12D
+		GOTO
+# Page 577
+			EGRESS
+PI/4.0		2DEC	.785398164
+
+# Page 578
+# GETUM:  DETERMINES THE LINE OF SIGHT UNIT VECTOR UM IN THE BASIC REFERENCE
+# COORDINATE SYSTEM FROM THE OPTICS SHAFT AND TRUNNION ANGLES AND THE IMU
+# GIMBAL ANGLES.
+#
+# INPUT
+#
+#	MARKDATA, BASE ADDRESS OF MARK DATA
+#	REFSMMAT, ROTATION MATRIX FROM STABLE MEMBER TO BASIC REF. COORD. SYSTEM
+#
+# SUROUTINES CALLED:
+#
+#	SXTNB -- SEXT. ANGULAR READINGS TO NAV. BASE COOR.
+#	NBSM -- TRANSFORM FROM NAV. BASE TO STABLE MEMBER
+#
+# OUTPUT
+#
+#	MPAC = LINE OF SIGHT 1/2 UNIT VECTOR IN BASIC REFERENCE SYSTEM
+#
+# CALLING SEQUENCE
+#
+#	L	CALL GETUM
+#
+# NORMAL EXIT
+#
+#	L+1 OF CALLING SEQUENCE
+	
+GETUM		STQ	SETPD
+			EGRESS
+			0
+		LXC,1	VLOAD*
+			MARKDATA	# CONTAINS ADDRESS OF MARK DATA
+			1,1
+		STODL*	MARKDOWN +1	# TRANSFER DATA FROM WORKING STORAGE
+			0,1		# TO MARKDOWN ARRAY FOR DOWNLINK
+		STORE	MARKDOWN
+		AXT,2
+			2
+		XSU,2	SXA,2
+			X1		# X1 = MARKDATA
+			S1		# S1 = MARKDATA(ADR) +2
+		CALL
+			SXTNB		# SEXT. ANGULAR READINGS TO NAV. BASE COOR.
+		CALL	
+			NBSM		# TRANSFORM FROM NAV. BASE TO STABLE MEM.
+		VXM	VSL1		
+			REFSMMAT
+		GOTO			# MPAC = (UM) LINE OF SIGHT VECTOR
+			EGRESS		# EXIT
+			
+# Page 579
+# RENDEZVOUS TRACKING DATA PROCESSING ROUTINE (R22)
+#
+# PURPOSE	(1) TO PROCESS RENDEZVOUS SIGHTING MARK DATA TO UPDATE THE STATE VECTOR OF EITHER THE CSM OR LM AS
+#		DEFINED BY THE RENDEZVOUS NAVIGATION PROGRAM (P20).
+#
+# ASSUMPTIONS	(1) THIS ROUTINE IS MANUALLY SELECTED BY THE ASTRONAUT BY V55E WHENEVER RENDEZVOUS SIGHTING MARKS
+#		ARE DESIRED.  ITS SELECTION, HOWEVER, IS LIMITED TO PERIODS WHEN THE CMC IS HOLDING FOR A V/N FLASHING
+#		DATA DISPLAY.  THIS ROUTINE RETURNS TO THE ORIGINAL PROGRAM AT THE INTERRUPTED DISPLAY.
+
+		BANK	34
+		SETLOC	P20S3
+		BANK
+		
+		COUNT	34/R22
+		
+R22		CAF	PRIO26
+		TS	PHSPRDT2
+		TC	PRIOCHNG
+		CA	NEG3
+		TS	MRKBUF2
+		TC	INTPRET
+		RTB
+			LOADTIME
+		STORE	VHFTIME		# PRESENT TIME
+REND1		CALL
+			GRP2PC
+		CALL	
+			WAITONE
+REND1A		EXIT
+		CA	MRKBUF2
+		EXTEND
+		BZF	REND2
+		EXTEND
+		BZMF	REND3A
+REND2		CAF	SIX
+		TC	GENTRAN
+		ADRES	MRKBUF2
+		ADRES	MARKTIME	# MARKTIME MUST BE CONTIGUOUS WITH VTEMP
+		CAF	NEG3		# NEG VALUE TO INDICATE VALUES USED
+		TS	MRKBUF2
+		RELINT
+		TC	INTPRET
+		CLEAR	CALL
+			SOURCFLG	# 0 = OPTICS DATA
+			GRP2PC
+		SSP	GOTO
+			MARKDATA
+		ECADR	VTEMP -2
+			REND4
+REND3A		TC	INTPRET
+REND3		CALL
+# Page 580
+			GRP2PC
+		CALL	
+			WAITONE
+		BOFF
+			VHFRFLAG
+			REND1A
+		RTB
+			LOADTIME	# PRESENT TIME
+		DSU	DSU
+			60SECDP		# 1 MIN
+			VHFTIME		# LAST READING OF RADAR
+		BMN	CALL
+			REND1A
+			RANGERD		# READ RADAR RANGE
+		DLOAD
+			MARKTIME
+		STORE	VHFTIME		# FOR DOWNLINK
+REND4		CALL
+			SETINTG		# SET INTEGRV FLAGS
+		BON	CALL
+			VEHUPFLG
+			CSMUPP		# BRANCH IF CSM UPDATE
+			INTEGRV
+		CALL
+			GRP2PC		# PHASE CHANGE
+		CALL
+			SETINTG		# SET INTEGRV FLAGS
+		CLEAR
+			VINTFLAG	# SET INTEGRATION VEHICLE TO LM
+REND5		BOFF	SET
+			RENDWFLG
+			REND5A		# DO NOT INTEGRATE W IF FLAG = 0
+			DIM0FLAG
+REND5A		CALL
+			INTEGRV
+		CALL
+			SHIFTNDX	# SET EARTH MOON SCALING INDEX
+		CALL
+			CMPOS		# SET CSM POSITION
+		SET	CALL
+			INCORFLG	# SET FOR 1ST PASS
+			LMPOS		# SET LM POSITION
+		CLEAR	BON
+			ORBWFLAG	# CLEAR FOR ORBITAL AND CISLUNAR
+			RENDWFLG
+			REND6
+		DLOAD
+			WRENDPOS
+		STCALL	0		# 0 = WRENDPOS	1 = WRENDVEL
+			INITIALW	# INTIIALIZE W MATRIX
+# Page 581
+		DLOAD
+			ZEROVECS
+		STORE	VHFCNT		# ZERO OUT VHFCNT AND TRKMKCNT
+REND6		SET
+			RENDWFLG
+		VLOAD	VSU
+			LEMPOS
+			CSMPOS
+		STORE	RCLP		# LM - CSM
+REND7		UNIT	BON
+			SOURCFLG
+			REND14		# BRANCH IF DATA IS RADAR
+		STORE	UCL
+		BOFF	CALL
+			INCORFLG
+			REND9
+			GETUM		# CALCULATE UM LINE OF SIGHT
+		STOVL	UM
+			UCL
+		VXV	BOV
+			UM		# UCL X UM
+			REND8
+REND8		UNIT	BOV
+			REND3		# BRANCH IF OVERFLOW IGNORE MARK
+		STORE	USTAR
+REND9		CALL
+			BVECTORS
+		BON	VLOAD
+			VEHUPFLG
+			REND9A
+			BVECTOR
+		VCOMP
+		STORE	BVECTOR
+REND9A		CALL
+			GRP2PC
+		BON
+			R23FLG
+			REND15		# BRANCH IF BACKUP OPTICS (R23 WORKING)
+		DLOAD	DAD
+			SXTVAR
+			IMUVAR
+REND10		STOVL	VARIANCE	# TEMP STORAGE FOR VARIANCE CALC.
+			RCLP
+		ABVAL	NORM
+			X1
+		DSQ	DMP
+			VARIANCE
+		XAD,1	CALL
+			X1
+			SHIFTNDX	# GET EARTH MOON SCALING INDEX
+# Page 582
+		XAD,1	XAD,1
+			X2
+			X2
+		SR*	TLOAD
+			0 -2,1		# ADJUST SCALING TO B-40
+			MPAC
+		STORE	VARIANCE
+		SLOAD	SR
+			INTVAR		# INTEGRATION VARIANCE SCALED B-15
+			25D		# SCALE IT B-40
+		TAD	RTB
+			VARIANCE
+			TPMODE
+		STORE	VARIANCE
+		BOFF	TAD
+			SOURCFLG	# BRANCH IF NOT VHF RADAR
+			REND10A
+			RVARMIN		# VHF RADAR MIN. VARIANCE
+		BPL	TLOAD
+			REND10A
+			RVARMIN
+		ABS			# MIN. VALUE WAS STORED AS NEG.
+		STORE	VARIANCE	# STORE MIN. VALUE
+REND10A		CLEAR	CALL
+			DMENFLG		# CLEAR FOR 6 X 6 W MATRIX
+			INCORP1		# CALCULATE UPDATE
+		CALL
+			GRP2PC
+		BOFF	CALL
+			INCORFLG
+			REND12
+			SHIFTNDX	# GET EARTH MOON SCALING INDEX
+		VLOAD	ABVAL
+			DELTAX +6
+		SR*
+			0,2
+		STOVL	N49DISP +2
+			DELTAX
+		ABVAL	SR*
+			0,2
+		STORE	N49DISP
+		SLOAD
+			RMAX
+		SR	DSU
+			10D
+			N49DISP
+		BMN	SLOAD
+			RENDISP		# BRANCH IF POS UP. GREATER THAN MAX.
+			VMAX
+		DSU	BMN
+# Page 583
+			N49DISP +2
+			RENDISP		# BRANCH IF VEL. UPDATE GREATER THAN MAX.
+REND12		CALL
+			INCORP2		# INCORPORATE UPDATE VALUES INTO STATE VEC
+		BON	BOFF
+			SOURCFLG
+			REND16		# BRANCH IF DATA IS RADAR
+			INCORFLG
+			REND17
+		CALL
+			SHIFTNDX	# GET EARTH MOON SCALING INDEX
+		BON	CALL
+			VEHUPFLG
+			REND18		# BRANCH IF CSM UPDATE
+			LMPOS		# GET LM POSITION
+REND13		CALL
+			GRP2PC		# PHASE CHANGE
+		VLOAD	VSU
+			LEMPOS
+			CSMPOS
+		STORE	RCLP		# LM - CSM
+		CLRGO
+			INCORFLG
+			REND7		# BRANCH FOR 2ND PASS THIS OPTICS MARK
+CSMUPP		CLEAR	CALL
+			VINTFLAG	# SET INTEGRATION VEHICLE EQ LM
+			INTEGRV
+		CALL
+			GRP2PC		# PHASE CHANGE
+		CALL
+			SETINTG		# SET FLAGS FOR INTEGRATION
+		GOTO
+			REND5
+REND14		STOVL	BVECTOR		# VHF RADAR BVECTOR
+			ZEROVECS
+		STORE	BVECTOR +6
+		STOVL	BVECTOR +12D
+			RCLP
+		UNIT	DLOAD
+			VHFRANGE	# VHFRANGE SCALED B-27
+		BON	SR2
+			MOONTHIS
+			+1
+		DSU	SET
+			36D		# ABVAL (RCLP)
+			INCORFLG
+		STORE	DELTAQ
+		BOFF	VLOAD
+			VEHUPFLG
+			REND14A
+# Page 584
+			BVECTOR
+		VCOMP
+		STORE	BVECTOR
+REND14A		CALL
+			GRP2PC
+		DLOAD	GOTO
+			RVAR
+			REND10
+REND15		SLOAD	DAD		# GET ALT LOS VARIANCE
+			ALTVAR		# BACKUP OPTICS
+			IMUVAR		# IMU VARIANCE
+		GOTO
+			REND10
+REND16		LXA,1	INCR,1
+			VHFCNT		# VHF RADAR UPDATE COUNT
+		DEC	1
+		SXA,1	GOTO
+			VHFCNT		# UPDATE COUNT
+			REND1
+REND17		LXA,1	INCR,1
+			TRKMKCNT	# OPTICS MARK COUNT
+		DEC	1
+		SXA,1	GOTO
+			TRKMKCNT	# UPDATE COUNT
+			REND3
+REND18		CALL
+			CMPOS		# GET CSM POSITION
+		GOTO
+			REND13
+CMPOS		VLOAD	VSR*
+			DELTACSM
+			7,2
+		VAD
+			RCVCSM
+		STORE	CSMPOS		# CSM POSITION SCALED B-27 OR B-29
+		RVQ
+LMPOS		VLOAD	VSR*
+			DELTALEM
+			7,2
+		VAD
+			RCVLEM
+		STORE	LEMPOS		# LM POSITION SCALED B-27 OR B-29
+		RVQ
+RENDISP		EXIT
+		CA	FLAGWRD9
+		MASK	SOURCBIT
+		EXTEND
+		BZF	+3
+		CA	BIT2
+		TC	+2
+# Page 585
+		CA	BIT1
+		TS	N49DISP +4
+		CAF	ZERO		# SET TEMPOR1 > ZERO TO INDICATE
+		TS	TEMPOR1		# V06 N49 DISPLAY HASN'T BEEN ANSWERED
+		TC	PHASCHNG
+		OCT	04022
+		CAF	PRIO27		# SET UP DISPLAY JOB WITH HIGHER PRIORITY
+		TC	NOVAC
+		EBANK=	MRKBUF1		# THAN PRESENT JOB
+		2CADR	RENDISP2
+		
+RENDISP7	TC	INTPRET
+		STORE	MPAC
+		SLOAD	BZE
+			TEMPOR1
+			RENDISP7 +1	# DISPLAY HAS NOT BEEN ANSWERED YET
+		BMN	GOTO
+			REND12		# NEG INDICATES PROCEED
+			RENDISP3	# POS INDICATES RECYCLE
+RENDISP2	CAF	V06N49
+		TC	BANKCALL
+		CADR	PRIODSP
+		TC	GOTOV56		# TERM EXIT P20 VIA V56
+		CS	ONE		# NEG INDICATES PROCEED RENDISP7 JOB
+		TS	TEMPOR1		# POS INDICATES RECYCLE RENDISP7 JOB
+		TC	ENDOFJOB	# GO COMPLETE ABOVE JOB
+RENDISP3	BON
+			SOURCFLG
+			REND1		# DATA WAS RADAR GO LOOK FOR OPTICS NEXT
+		EXIT
+		EBANK=	MRKBUF1
+		INHINT
+		CAF	BUFBANK
+		TS	BBANK
+		CA	NEGONE
+		TS	MRKBUF1		# ERASE MARK ONE BUFFER
+		TS	MRKBUF2		# ERASE MARK TWO BUFFER
+		RELINT
+RENDISP4	TC	INTPRET
+		GOTO
+			REND3
+SXTVAR		2DEC	0.04 E-6 B+16	# SXT ERROR VARIANCE = .04 (MR)SQ
+
+IMUVAR		2DEC	0.04 E-6 B+16	# IMU ERROR VARIANCE = .04 (MR)SQ
+
+V06N49		VN	0649
+		EBANK=	MRKBUF1
+BUFBANK		BBCON	RENDISP3
+		BANK	31
+		SETLOC	R22S1
+# Page 586
+		BANK
+SETINTG		STQ	CALL
+			EGRESS
+			INTSTALL	# RESERVE INTEGRATION
+		DLOAD	SET
+			MARKTIME
+			STATEFLG
+		STORE	TDEC1		# MARKTIME
+		CLEAR	CLEAR
+			INTYPFLG	# PRECISION INTEGRATION
+			DIM0FLAG
+		SET	CLRGO
+			VINTFLAG	# SET VEHICLE EQ. CSM
+			D6OR9FLG	# SET W MATRIX DIM. EQ 6
+			EGRESS		# EXIT
+CNTCHK		STQ
+			POINTEX
+CONTCHK		BOFF
+			REFSMFLG	# BRANCH TO END OF JOB IF REFSMMAT NO GOOD
+			ENDPLAC
+		SLOAD	BMN
+			R61CNTR
+			WAITONE1
+		BON	BOFF		# IS TRACK FLAG SET
+			UPDATFLG
+			POINTEX
+			TRACKFLG
+			ENDPLAC
+		EXIT
+REDOR22		TC	PHASCHNG
+		OCT	00132
+		CAF	PRIO26
+		TC	PRIOCHNG
+		TC	WAITONE +3
+WAITONE		STQ
+			POINTEX
+WAITONE1	EXIT
+		CAF	4SECS		# WAIT 4 SECS.
+		TC	BANKCALL
+		CADR	DELAYJOB
+		TC	INTPRET
+		GOTO
+			CONTCHK		# CHECK AGAIN NOW
+RANGERD		EXIT
+		INHINT
+		CS	OCT17
+		EXTEND
+		WAND 	CHAN13		# ZERO OUT BITS 1-4 OF CHANNEL 13
+		CAF	OCT11
+		EXTEND
+# Page 587
+		WOR	CHAN13		# GENERAGE SHIFT PULSES TO RADR, SET R. BIT
+		RELINT
+		EXTEND
+		DCA	TIME2
+		DXCH	MARKTIME	# READ PRESENT TIME
+		TC	DOWNFLAG
+		ADRES	SKIPVHF
+		TC	BANKCALL
+		CADR	RADSTALL	# WAIT FOR RANGE COMPLETE
+		TC	LIGHTON		# BAD DATA GOOD BIT
+		TC	TRFAILOF	# TURN TRACKER LIGHT OFF
+RANGERD1	CCS	RM		# 15 BIT UNSIGNED RANGE
+		TC	RANGERD4	# GR + 0
+		TC	LIGHTON	+4	# = + 0
+		TC	RANGERD3	# L - 0
+		TC	RANGERD3	# = - 0
+RANGERD4	TC	INTPRET
+		SLOAD	DMP
+			RM
+			CONVRNGE	# CONVERT RANGE TO METERS B-27
+RANGERD2	STORE	VHFRANGE
+		SET	RVQ
+			SOURCFLG	# SOURCE OF DATA TO VHF RADAR
+RANGERD3	CA	RM
+		MASK	POSMAX
+		TS	MPAC		# MASK OUT NEG. SIGN BIT
+		TC	INTPRET
+		DMP
+			CONVRNGE	# CONVERT FROM NM TO METERS AND SCALE B-27
+		DAD	GOTO
+			RANGEB14	# VALUE IN METERS OF SIGN BIT SCALED B-27
+			RANGERD2
+LIGHTON		CA	VHFRANGE
+		EXTEND
+		BZF	+2
+		TC	TRFAILON
+		TC	INTPRET
+		DLOAD
+			MARKTIME
+		STORE	VHFTIME
+		GOTO
+			REND1
+RANGEB14	2DEC	303431.7 B-27	# 16384 X 18.52 SCALED B-27
+
+OCT17		OCT	00017
+OC40200		OCT	40200
+CONVRNGE	2DEC	18.52 B-13	# VHF INPUT RANGE CONV. FROM .01 NM TO M
+
+VHFREAD		EXTEND
+		ROR	SUPERBNK	# MUST SAVE SBANK BECAUSE OF RUPT
+# Page 588		
+		TS	BANKRUPT	# EXITS VIA TASKOVER BADEND OR GOODEND
+		CS	ZERO
+		TS	RUPTAGN
+		EXTEND	
+		QXCH	QRUPT
+		CS	STATE	+2
+		MASK	SKIPVBIT	# SKIPVHF FLAG
+		EXTEND
+		BZF	TASKOVER	# BRANCH IF VHF RESTART BIT SET
+		CAF	UPDATBIT
+		MASK	STATE +1	# UPDATEFLG
+		EXTEND
+		BZF	BYPASS1
+		CS	STATE	+4
+		MASK	PDSPFBIT	# PDSPFLAG
+		EXTEND
+		BZF	BYPASS1
+		CA	RNRAD
+		TS	RM		# SAVE RANGE
+		CAF	BIT2
+		EXTEND
+		RAND	CHAN33		# READ DATA GOOD BIT
+		EXTEND
+		BZF	VHFGOOD		# BRANCH IF DATA GOOD BIT EQUALS GOOD
+BYPASS		TS	VHFRANGE	# STORE NON ZERO VALUE
+		CAF	TWO
+		TC	POSTJUMP
+		CADR	BADEND
+BYPASS1		CAF	ZERO
+		TC	BYPASS		
+VHFGOOD		CAF	TWO
+		TC	POSTJUMP
+		CADR	GOODEND
+SHIFTNDX	AXT,2	BON
+			0
+			VEHUPFLG
+			SHIFTA		# VEHICLE IS CSM
+		BON	RVQ
+			LMOONFLG
+			+1
+		INCR,2	RVQ
+		DEC	-2
+SHIFTA		BON	RVQ
+			CMOONFLG
+			+1		# MOON ORB.
+		INCR,2	RVQ
+		DEC	-2
+INITIALW	AXT,1	SSP
+			36D
+			S1
+# Page 589			
+			6
+		VLOAD
+			ZEROVECS
+INITA		STORE	W +36D,1	# CLEAR 0 - 35
+		TIX,1	AXT,1
+			INITA
+			36D
+INITB		STORE	W +90D,1	# CLEAR 54 - 89
+		TIX,1	SLOAD
+			INITB
+			0		# POSITION VALUE
+		STORE	W		# INITIALIZE DIAGONAL W POSITION
+		STORE	W +8D
+		STORE	W +16D
+		SLOAD
+			1		# VELOCITY VALUE
+		STORE	W +72D		# INITIALIZE DIAGONAL W VELOCITY
+		STORE	W +80D
+		STORE	W +88D
+		RVQ
+# Page 590
+# CRS61.1	R/10/68
+#
+# TO COMPUTE THE PREFERRED TRACKING ATTITUDE OF THE CSM WHICH ENABLES
+# OPTICS TRACKING OF THE LEM AND LM TRACKING OF THE CSM RADAR TRANSPONDER
+# AND TO COMPUTE THE X-AXIS TRACKING ATTITUDE OF THE CSM WHICH ENABLES
+# COAS TRACKING OF THE LM.
+#
+# TO PERFORM THE MANEUVER TO THE SELECTED TRACKING ATTITUDE IF THE 
+# MANEUVER IS LESS THAN 10 DEGREES BUT TO CALL R60 IF THE MANEUVER IS
+# GREATER THAN 10 DEGREES BUT TO CALL R60 IF THE MANEUVER IS
+# GREATER THAN 10 DEGREES OR IF THE R60 FLAG IS SET.
+#
+#	(1)	EXTRAPOLATE LM AND CSM STATE VECTORS TO PRESENT TIME USING
+#		CONIC EQUATIONS.
+#
+#	(2)	CALCULATE LOS FROM CSM TO LM = RL - RC.
+#
+#	(3)	THE PRERFERRED TRACKING ATTITUDE IS DEFINED AS FOLLOWS:
+#		THE TRACK AXIS (I) IS ALIGNED ALONG THE LOS TO THE LM.  THE
+#		TRACK AXIS (I) IS DEFINED AS:
+#
+#		UNIT(I)=UNIT(Z  )COS55  &  UNIT(X  )SIN55
+#		     -       -SC                -SC
+#
+#	(4)	COMPUTE DESIRED CDU ANGLES, USING VECPOINT.
+#
+# (Sorry, I don't know where (5) and (6) are. --- RSB 2009.)
+#	(7)	FORM DIFFERENCE BETWEEN DESIRED AND ACTUAL CDUS.
+#		IF ANY OF THE THREE ANGLE DIFFERENCES EXCEEDS 10 DEGREES,
+#		GROSS MANEUVER IS REQUIRED.  SIGNAL R61 (SET MPAC=1) TO
+#		OPERATE KALCMANU AND EXIT CRS61.1.
+#		IF ALL DIFFERENCES ARE LESS THAN 10 DEGREES, CONTINUE.
+#
+#	(8)	CALCULATE ORTHOGONAL LOS RATE IN REF COORDS AS
+#
+#		OMEGATH = (UNITLOS(B1) X UNITDV(B1))(ABSDV(B7)/ABSLOS(B29))
+#
+#		CONVERSION FACTOR OF 100/2PI (B4) REV CSEC PER RAD SEC IS
+#		APPLIED TO YIELD UNITS OF REVS/SEC.  SCALE IS CARRIED AS
+#		B+1+1+7-29+4+1 PLUS RESULTS OF NORMALIZING ABSDV, ABSLOS.
+#		THE EXTRA B+1 RESULTS FROM RESCALING ABSDV B8 AFTER NORM
+#		TO AVOID OVFLOW ON DIVIDE.
+#
+#		UNITLOS = UNIT( RL - RC ) B1.
+#		UNITDY  = UNIT( VL - VC ) B1.
+#		ABSLOS  = LENGTH OF LOS, METERS B29.
+#		ABSDV   = LENGTH OF DV, METERS/CSEC B7.
+#
+#	(9)	OBTAIN RATE IN SM COORDS.
+#
+#		OMETATHSM = (REFSMMAT)(OMEGATH).
+#
+#	(10)	OBTAIN GIMBAL ANGLE INCREMETNS FOR 0.1 SECOND.
+#
+#		DTHETASM = (0.1)(OMEGATHSM)
+#
+#	(11)	OBTAIN DELCDUX,Y,Z USING SUBR SMCDURES.
+# Page 591
+#		INPUT CONSISTS OF
+#
+#		(A)	VECTOR OF ANGULAR INCREMENTS, DTHETASM, STORED
+#			IN V(DTHETASM).
+#		(B)	SIN,COS CDUX,Y,Z FROM SUBR CDUTRIG.
+#
+#		TRANSFER OUTPUT OF SMCDURES FROM V(DCDU) TO VAC14D.
+#
+#	(12)	CALCULATE ANG LOS RATE IN BODY(NB) COORDS USING SUBR SMNB.
+#
+#		OMEGANB = (SMNB)(OMETATHSM)
+#
+#		SUBR SMNB REQUIRES OMEGATHSM IN V(VAC32D) AND ACTUAL CDUS
+#		(Y,X,Z ORDER) IN V(VAC20D) WITH S1 OF VAC = BASE ADDRESS
+#		OF CDUS (FIXLOC + 20D).
+#
+#	(13)	CALCULATE ANG LOS RATE IN CONTROL COORDS AS FOLLOWS
+#
+#		WBODY = (MBDYTCTL)(OMEGANB)	UNITS=REVS/SEC(B0) (?).
+#
+#			       ( 0.5       0              0      )   BODY TO
+#		MBDYTCTL(B1) = (  0   COS(7.25)B1   -SIN(7.25)B1 ) = CONTROL
+#			       (  0   SIN(7.25)B1    COS(7.25)B1 )   AXES
+#								     CONVERSION
+#								     MATRIX
+#
+#	(14)	RESCALE WBODY TO UNITS OF 460 DEG/SEC BY APPLYING FACTOR
+#		OF 0.8 TO REVS/SEC.
+#
+#	(15)	ADDRESS LIVE AUTOPILOT REGISTERS IN BASIC (UNDER INHINT).
+#
+#		TRANSFER DESIRED CDUS, SCALED 180 DEGREES, FROM T(SAVEDCDU)
+#		TO V(CDUXD).
+#
+#		TRANSFER DELCDUS, SCALED 180 DEG, FROM V(VAC14D)
+#		TO V(DELCDUX).
+#
+#		TRANSFER OMEGA CONTROL, SCALED 450 DEG/SEC, FROM V(MPAC)
+#		TO V(WBODY).
+#
+#		RELINT, SET MPAC=0, EXIT CRS61.1.
+#
+# CALL:		L	CALL	CRS61.1
+#
+# RETURNS:	ALL TO L+1.
+#
+#		(1)	S(MPAC)=0.  NORMAL EXIT.  3 SETS OF INPUTS FED TO DAP.
+#		(2)	S(MPAC)=1.  CALCULATED DESIRED CDUS,SP, SET IN T(CPHI)
+#			FOR KALCMANU.  ABS(ACDU - DCDU) EXCEEDS 10 DEGREES.
+#		(3)	S(MPAC)=2.  GNCS AUTO MODE NOT SELECTED (BIT10=1).
+#		(4)	S(MPAC)=3.  DAP HOLD FLAG (HOLDFLAG) NOT EQUAL -1.
+# Page 592
+#
+# INPUT:	(1)	TIME2,TIME1.  COMPUTER CLOCK TIME,DP, CENTISEC B28.
+#		(2)	CDUX,Y,Z.  PRESENT CDU ANGLES,SP,2S COMPL HALF-REVS B0.
+#		(3)	M(REFSMMAT), STABLE MEMBER COORDS B1.
+#
+# OUTPUT:	NORMAL.  EXIT WITH S(MPAC) = 0.
+#
+#		(1)	CDUXD,CDUYD,CDUZD, DESIRED OUTER, INNER, MIDDLE CDU ANGLES,
+#			DP, IS COMPL, SCALED 180 DEGREES (HALF-REVS B0).
+#		(2)	DELCDUX,DELCDUY,DELCDUZ.  0.1 SEC DCU ANGULAR INCREMENTS,
+#			DP, IS COMPL, SCALED 180 DEG.
+#		(3)	WBODY,WBODY1,WBODY2.  LOS ANGULAR RATE IN CONTROL COORDS,
+#			DP, IS COMPL, SCALED 450 DEG/SEC.
+#
+#		SPECIAL.  EXIT WITH S(MPAC) = 1.
+#
+#		(1)	CPHI,CTHETA,CPSI.  DESIRED OUTER, INNER, MIDDLE CDU ANGLES,
+#			SP, 2'S COMPL, SCALED 180 DEGREES.
+#
+# EXTERNAL SUBROUTINES USED	(B)=BASIC
+#
+#	(1) CALCGA		(5) LOADTIME(B)		(9) SMNB
+#	(2) CDUTRIG		(6) MATMOVE
+#	(3) CSMCONIC		(7) RCDUS(B)
+#	(4) LEMCONIC		(8) SMCDURES
+#
+# ERASABLE
+#
+#	(1) S(Q611),EBANK7	CRS61.1 EXIT.
+#	(2) S(Q6111),EBANK7	CALCDCDU EXIT.
+#	(3) T(SAVEDCDU),E6	SP VECTOR OF CDUDS.
+#	(4) V(SAVEPOS),E7	CSM POS VEC AND D(SAVEPOS)= LENGTH OF LOS.
+#	(5) V(SAVEVEL),E7	CSM VEL VEC.
+#
+# FLAGWDS:	HOLDFLAG.  USED, NOT SET.
+#
+# MISC:	(1) ERASABLE ITEMP1 USED TO TEMP STORE EBANK UNDER INHINT.
+#	(2) ERASABLE P21TIME USED AS TEMP STORE DURING CRS61.1
+#	(3) ERAS DTHETASM USED AS TEMP STORE DURING EARLY CRS61.1
+#
+# DEBRIS -- CURRENT VAC AREA, CRS61.1 ERASABLES, ITEMP1, P21TIME
+
+		BANK	24
+		SETLOC	P20S4
+		BANK
+		
+		EBANK=	CDUXD
+		COUNT*	$/CRS61
+		
+CRS61.1		STQ	SETPD
+			Q611
+			0
+		RTB
+# Page 593
+			LOADTIME	# LOAD CLOCK TIME2,1 INTO MPAC.
+			
+STORT		STCALL	P21TIME		# STORE CLOCK TIME FOR SUBR R63
+			R63		# SUBR TO CALC DCDU (T=PRESENT,PASS1)
+		TLOAD
+			THETAD		# SAVE DCDU(T) FROM CALCDCDU FOR STEP4.
+		STORE	SAVEDCDU
+		
+		EXIT
+		TC	STEP2CK
+AUTOCK		CAF	PRIO30
+		EXTEND
+		RXOR	CHAN31
+		MASK	FURST3
+		EXTEND			# AUTO MODE SELECTED (BITS 15-13=011)
+		BZF	DAPCK		#	YES -- CONTINUE.
+		TC	ASET
+		
+DAPCK		CS	FLAGWRD1	# IS STIKFLAG SET (I.E., IS SOMEONE ON RHC)
+		MASK	STIKBIT
+		CCS	A
+		TC	STEP3CK
+ASET		CAF	ZERO
+		TS	MPAC
+		TC	INTPRET		# EXIT CRS61.1
+		GOTO
+			Q611
+			
+STEP2CK		TC	BANKCALL
+		CADR	UPACTOFF
+		
+		CAF	TWO		# SET TEMPORARY INDEX DTHETASM = 2
+CDULOOP		TS	DTHETASM
+		INDEX	DTHETASM
+		CA	CDUX		# SET A = ACTUAL CDU (ACDU).
+		EXTEND
+		INDEX	DTHETASM	# SET INDEX TO ACCESS DESIRED CDU (DCDU).
+		MSU	THETAD		# A = DIFF = ACDU - DCDU.
+		TS	MPAC		# RETURN TO INTERPRETER FOR 10 DEGREE CK.
+		TC	INTPRET		# (DP APPROX SP OK FOR ROUGH CHECK)
+		ABS	DSU
+			DEGREE10	# IS (ACDU - DCDU) MORE THAN 10 DEGREES.
+		BPL	EXIT		# NO -- OK, CONTINUE CHECKING OTHER ANGLES.
+			STKTEST		# TEST STICK FLAG
+		CCS	DTHETASM	# HAVE ALL 3 ANGLE DIFFS BEEN CHECKED.
+		TC	CDULOOP		# NO -- DIM COUNT, CHECK NEXT ANGLE DIFF.
+		TC	AUTOCK
+STKTEST		EXIT
+		CS	FLAGWRD1
+		MASK	STIKBIT
+# Page 594
+		CCS	A
+		TC	MANUEXIS	# STIKFLAG IS NOT SET (DO R63)
+		CAF	BIT3
+		EXTEND			# STIKFLG IS SET
+		WOR	DSALMOUT	# TURN ON UPACTY LIGHT
+		
+		TC	ASET		# EXIT AND SET R61CNTR
+STEP3CK		TC	INTPRET
+		SETPD
+			0		# *
+					# NOW HAVE DCDUS STORED IN T(SAVEDCDU).
+					# GO CALC OTHER DAP INPUTS (DELCDU,WBODY)
+CRS61.2		VLOAD	VSU
+			DCDU
+			SAVEVEL		# DV = VL - VC
+		UNIT	VCOMP		# V(MPAC)=-UNITDV. VAC36D=ABSDV.
+		VXV	VXSC		# (-UNITDV)CROSS(UNITLOS).
+			SAVEPOS
+			RVCS/RDS	# (UNITLOS B1)(UNITDV B1)(CONST B4)=CROSS.
+		PUSH			# HOLD CROSS IN PUSHLIST0.  SCALED B6.
+		DLOAD	NORM		# OBTAIN ABS VALUE OF LOS.
+			P21TIME		# P21TIME IS TEMP STORE FOR ABSLOS.
+			X1
+		PUSH			# NORM ABSLOS(DENOM) AND HOLD IN PUSH1.
+		
+		DLOAD	NORM
+			36D		# NORM ABS VALUE OF DV(NUM).
+			S1
+			
+		XSU,1	SR1		# X1 = X1(N DENOM)-S1(N NUM).
+			S1		# SR1 TO AVOID OFLOW ON DOV.
+		DDV	VXSC		# ABSDV(MPAC)/ABSLOS(PUSH1) = QUOT.
+		SXA,1			# QUOT(MPAC) X CROSS(PUSH0)
+			Q6111		# SAVE SCALE OF RESULT (R-15,1X).
+					# X1= NORM OF QUOT. QTUOT SCALE B7-B29=B-22
+					# CROSS IS SCALED B6.  NEED SL1 TO RECOVER
+					# SR1 SO THAT -22+6+1=-15.  MPAC NOW HOLDS
+					# ORTHO LOS RATE (OMEGA TH, B-15,X1).
+		MXV	VSL1		# OBTAIN RATE IN SM COORDS (OMEGTHSM) AND
+			REFSMMAT	# ADJUST FOR REFSMMAT SCALE OF B1.
+		STORE	20D		# OMEGTHSM = VAC20D
+					# DELTA THETA SM = OMEGTHSM * .1B-3.
+		VXSC
+			TENTH
+		STORE	DTHETASM	# STORE SM INCREM ANGLES FOR SMCDURES.
+		CALL
+			CDUTRIG		# OBTAIN SIN,COSCDUS FOR SMCDURES.
+		SETPD	CALL		# SMCDURES USES PUSH
+			0
+			SMCDURES	# OBTAIN DELCDU IN V(DCDU).
+# Page 595
+		LXA,1			# RELOAD X1
+			Q6111
+		VLOAD	VSL*		# RECOVER SCALE.
+			DCDU		# (B-15,X1) + TENTH(B-3) + HALFREVS(B1)
+			0 -17D,1	# EQUALS B-17D,1 TO OBTAIN HALFREVS B0.
+		STORE	14D		# HOLD DELS IN V(VAC14D) FOR AUTOPILOT.
+		
+		CALL			# COMPUTES SINES AND COSINES FOR *SMNB*
+			CDUTRIG
+		VLOAD	CALL		# LOAD VECTOR AND CALL TRANSFORMATION
+			20D		# VECTOR FOR TRG*SMNB INTO MPAC
+			*SMNB*		# OBTAIN ANG. RATE REFERRED TO NB (BODY)
+		MXV
+			MBDYTCTL	# CONVERT RATE(OMEGA) TO CONTROL COORDS.
+		VXSC			# MULT. BY 0.8 TO RESCALE REVS TO 450 DEG.
+			POINT8		# RECOVER SCALE.
+		LXA,1	VSL*		# RELOAD X1 TO RECOVER NORMALIZ.
+			Q6111		# (B-15,X1) + MBDYTCTL(B1) = B-14D,1 TO
+			0 -14D,1	# OBTAIN REVS SCALED AT 450 DEGREES.
+			
+CRS61.2A	EXIT
+		INHINT
+		CAF	ZERO		# TRANSFER DESIRED GIMBAL ANGLES
+		TS	CDUXD	+1	# FROM T(SAVEDCDU) TO V(CDUXD).
+		TS	CDUYD	+1
+		TS	CDUZD	+1
+		CA	SAVEDCDU
+		TS	CDUXD
+		CA	SAVEDCDU +1
+		TS	CDUYD
+		CA	SAVEDCDU +2
+		TS	CDUZD
+		
+		EXTEND			# TRANSFER OMEGA CONTROL (ANG. LOS RATE)
+		DCA	MPAC		# FROM V(MPAC) TO V(WBODY)
+		DXCH	WBODY
+		EXTEND
+		DCA	MPAC	+3
+		DXCH	WBODY1
+		EXTEND
+		DCA	MPAC	+5
+		DXCH	WBODY2
+		
+		EXTEND			# TRANSFER CDU INCREMENTS
+		INDEX	FIXLOC		# FROM V(VAC14D) TO V(DELCDUX)
+		DCA	14D
+		DXCH	DELCDUX
+		EXTEND
+		INDEX	FIXLOC
+		DCA	16D
+# Page 596		
+		DXCH	DELCDUY
+		EXTEND
+		INDEX	FIXLOC
+		DCA	18D
+		DXCH	DELCDUZ
+		CS	ONE		# NOW DAP VARIABLES LOADED.  SET HOLDFLAG.
+		TS	HOLDFLAG	# TO -1.
+		RELINT
+		TC	ASET
+MANUEXIS	TC	INTPRET
+MANUEXIT	TLOAD			# ENTER FROM STEP2.  ACDU-DCDU EXCEEDS
+			SAVEDCDU	# 10 DEG. STORE DCDU(T) IN CPHI,CTHETA,
+		STORE	CPHI		# CPSI FOR KALCMANU.
+		SLOAD	GOTO		# SPECIAL RETURN (MPAC+0 = 1)
+			LOONE		# OCTAL 00001
+			Q611
+			
+R63		STQ	DLOAD		# SUBR TO CALC DCDUS(T)
+			Q6111
+			P21TIME
+		STCALL	TDEC1
+			CSMCONIC
+HOLDATT		VLOAD			# HOLD EXTRAPOLATED CSM POSITION AND
+			RATT		# VELOCITY
+		STOVL	SAVEPOS
+			VATT
+		STORE	SAVEVEL
+CALCLEM		DLOAD			# EXTRAPOLATE LEM STATE VECTOR TO SAVE
+			P21TIME		# TIME AS CSM USING LEMCONIC
+		STCALL	TDEC1
+			LEMCONIC
+		VLOAD
+			VATT
+		STOVL	DCDU		# STORE VATT IN DCDU TEMPORARILY
+			RATT		# LOS = RL RC
+		VSU	UNIT
+			SAVEPOS
+		STORE	SAVEPOS		# SAVE UNITLOS FOR CRS61.2 RATE CALC.
+		MXV	VSL1
+			REFSMMAT	# CONVERT TO STABLE MEMBER
+		STODL	POINTVSM
+			36D		# HOLD ABS VAL OF LOS (VAC 36D)
+		STORE	P21TIME		# IN D(P21TIME) FOR CRS61.2 RATE CALC.
+		VLOAD
+			UNITX
+		STCALL	SCAXIS		# TRACK AXIS UNIT VECTOR
+			VECPOINT	# FOR +X-AXIS TRACKING ATTITUDE
+		STORE 	CPHIX		# STORE ANGLES FOR N96 DISPLAY
+		VLOAD
+			PRFUNIT
+# Page 597
+		STCALL	SCAXIS
+			VECPOINT
+		STORE	PRAXIS		# STORE ANGLES FOR N95 DISPLAY
+		BOFF
+			PRFTRKAT
+			CRSTOR1
+CRSTOR		STORE	THETAD		# STORE ANGLES FOR N18 DISPLAY
+		GOTO
+			Q6111
+CRSTOR1		VLOAD
+			UNITX
+		STORE	SCAXIS
+		TLOAD	GOTO
+			CPHIX
+			CRSTOR
+PRFUNIT		2DEC	.40957602	# 55 DEG TRACK AXIS UNIT VECTOR
+
+		2DEC	0.0		# FOR USE WITH VECPOINT
+		
+		2DEC	.28678822
+		
+DEGREE10	DEC	.05556		# 10 DEG IN REVS		STEP2
+RVCS/RDS	2DEC	15.915494 B-4	# 100/2PI REV-CSEC/RAD-SEC.
+
+TENTH		2DEC	.1 B+3		# .1 B-3 (TO SCALE ANG. RATE TO .1 INREMS)
+
+MAT1B1		2DEC	1.0 B-1
+
+MBDYTCTL	2DEC	.5		# 		7.25 DEG NEGATIVE
+
+		2DEC	0		#		X-AXIS ROTATION MATRIX
+		
+		2DEC	0		#		CONVERTS BODY TO CTL
+		
+		2DEC	0		#		AXES.  CAME AS QUADROT
+		
+		2DEC	.99200495 B-1	# COS7.25 B1	BUT SCALED B
+		
+		2DEC	-.12619897 B-1	# -SIN7.25 B1
+		
+		2DEC	0
+		
+		2DEC	.12619897 B-1	# SIN7.25 B1
+		
+		2DEC	.99200495 B-1	# COS7.25 B1
+		
+LOONE		OCT	00001		# TO SET MPAC = 00001 FOR SPECIAL EXIT.
+FURST3		EQUALS	13,14,15	# CONSTANT FOR AUTOCK (OCT 70000).
+
+# Page 598
+# ..... S22.1 ORBITAL NAVIGATION ROUTINE
+# MOD 1
+#
+# FUNCTONAL DESCRIPTION
+#	1.  UPDATE CSM STATE VECTOR
+#	2.  UPDATE LANDMARK POSITION
+#	3.  CONVERT W MATRIX FROM 9 TO 6 DIMENSIONS
+#
+# SUBROUTINES CALLED
+#	INTSTALL,INTEGRV,GETNUM,SETRE,R-TO-TP,RP-TO-R,BVECTORS,INCORP1,INCORP2
+#	LALOTORV,S22F2410,LAT-LONG,ROWDOT
+#
+# ERASABLE INITIALIZATION
+#	W=9X9 MATRIX
+#	ORBWFLAG=0 FOR INVALID W MATRIX, =1 FOR VALID W MATRIX
+#	ASTRONAUT ENTRY OF KNOWN,L,OFF
+#	8NN= NUMBER OF MARKS, DECIMAL INTEGER B-14
+#	REFSMMAT= TRANSFORMATION MATRIX
+#	MARKSTAT= ADDRESS OF START OF MARK DATA (MARK DATA OF EACH MARK IS
+#		  STORED AS FOLLOWS: TIME,AIG,SA,AMG,PA,AOG) TIME IS IN DOUBLE
+#		  PRECISION, ALL OTHERS ARE IN SINGLE PRECISION
+#	CSM STATE VECTOR
+#
+# OUTPUT
+#	UPDATED CSM STATE VECTOR
+#	UPDATED LANDMARK POSITION
+#	NEW 6 DIMENSIONAL W MATRIX
+#
+# DEBRIS
+#	PUSH LIST,CSMPOS,ALPHAV,ERADM,UM,RCLP,USTAR,VARIANCE,X789,BVECTOR,8KK,
+#	S22LOC,SVMRKDAT TABLE,22SUBSCL,LANDMARK,CXOFF,S22C,LAT,LOG,ALT,
+#	TEMPOR1,S22TOFF,S221OFF,DSPTEM1,S22EORM,S22TPRIM
+
+		BANK	13
+		
+		SETLOC	P20S6
+		BANK
+		
+		EBANK=	LANDMARK
+		COUNT	35/LUORB
+		
+S22.1		STQ	SSP
+			S22RTNEX
+			S1
+		DEC	6
+		SSP	SSP		# SET I=1	ITEM 8KK IS I
+			8KK
+		DEC	1
+			S22LOC
+		ECADR	SVMRKDAT	# SET MARK DATA ADDRESS INTO S22LOC
+# Page 599
+		LXC,2	AXT,1
+			MARKSTAT
+		DEC	36
+S22.111		VLOAD*			# MOVE MARK DATA (5 SETS FROM ADDR. IN
+			0,2		# MARKSTAT TO SVMRKDAT TABLE TO AVOID LOSS
+		STORE	SVMRKDAT +36D,1	# IF RESTART OCCURS
+		INCR,2	TIX,1
+		DEC	-6
+			S22.111
+		SET	EXIT
+			P22MKFLG	# DOWNLINKED SVMRKDAT HOLDS PRESENT MARKS
+		TC	BANKCALL	# RELEASE VAC AREA WHERE MARK DATA WAS
+		CADR	MKRELEAS
+		TC	2PHSCHNG
+		OCT	00004
+		OCT	05022
+		OCT	13000
+		TC	INTPRET
+		AXT,1	BOFF
+			0D
+			CMOONFLG	# =0 EARTH, =1 MOON
+			S22SHIFT
+		INCR,1
+		DEC	-2
+S22SHIFT	SXA,1	SETPD
+			S22EORM		# SET =0 EARTH, =-2 MOON FOR SHIFTING
+			0D
+FIG2EXIT	CALL
+			INTSTALL
+		CALL	
+			S22FLGS
+#	FLOWCHART D=0	THEN DIM0FLAG=0, D6O9FLG NOT TESTED
+#	FLOWCHART D=6	THEN DIM0FLAG=1, D60R9FLG=0
+#	FLOWCHART D=9	THEN DIM0FLAG=1, D6OR9FLG=1
+
+		BOFF	CLRGO
+			ORBWFLAG
+			SETWW5D		# BRANCH TO SET W0-W5,ORBWFLAG,D
+			D6OR9FLG	# FLOWCHART D=6 PATH
+			SETVANDI
+SETWW5D		CLEAR
+			DIM0FLAG	# FLOWCHART D=0 PATH
+		AXT,1	SSP
+		DEC	108
+			S1
+		DEC	6
+		CLEAR	VLOAD
+			RENDWFLG	# GSOP CHANGE 8/18/67
+			ZEROVECS
+CLEARWW5	STORE	W +108D,1
+# Page 600
+		TIX,1	SLOAD
+			CLEARWW5
+			WORBPOS
+		STORE	W		# SET DIAGONALS OF W0
+		STORE	W +8D
+		STORE	W +16D
+		SLOAD
+			WORBVEL
+		STORE	W +72D		# SET DIAGONALS OF W4
+		STORE	W +80D
+		STORE	W +88D
+SETVANDI	CLEAR
+			DMENFLG		# 0=6X6W, 1=9X9W
+S22NXTIN	CALL
+			GETTF
+		STCALL	TDEC1
+			INTEGRV
+		CALL
+			S22CALRC	# CALC. RC B-29 OR B-27 (CSMPOS)
+		LXA,1	SXA,1
+			S22LOC		# SETUP ADDR. OF MARK DATA FOR GETUM SUBR.
+			MARKDATA
+		CALL			# COMPUTE UM
+S2GETUM			GETUM
+		STORE	UM
+DMPINTEG	SLOAD	PUSH		# TEST OFF=I
+			8KK
+		SLOAD	SR3		# CXOFF SCALED B-5, MUST MOVE TO B-14
+			CXOFF		# BEFORE SUBT.
+		SR3	SR3
+		DSU
+		BHIZ	BON
+			S22OFF=I	# BRANCH HERE IF OFF=I
+			DMENFLG		# 0=6X6W, 1=9X9W
+			S22D=9
+		CALL
+			GRP2PC
+		SET	
+			ORBWFLAG
+		SET	SET
+			DMENFLG		# =0 ON FIRST PASS THRU HERE FOR D=0, OR 6
+			22DSPFLG	# =1 TO DISPLAY DR,DV ON FIRST PASS
+		SET	BON
+			ERADFLAG	# =1 TO COMPUTE FISCHER RADIUS
+			KNOWNFLG
+			S22BOX22
+		VLOAD	UNIT		# UNIT ALSO PUTS ABVAL(RC) IN 36D
+			CSMPOS
+		STORE	ALPHAV		# ALPHAV +4=SINL FOR SETRE
+		CLEAR	BOFF
+# Page 601
+			LUNAFLAG
+			CMOONFLG
+			S22C=I
+		SET
+			LUNAFLAG
+S22C=I		CALL			# ERADM= R0 METERS B-29 BOTH EARTH/MOON
+			SETRE
+		CALL			# COMPUTE RL FROM EQUATION 2.4.10
+			S22F2410	# STORED IN X789,MPAC B-27,B-29
+		BOFF	VSR2		# SCALE RL B-29 FOR BOTH EARTH/MOON
+			CMOONFLG
+			+1
+		STORE	S22RL
+		DOT	SL1
+			UM
+		STOVL	S22D		# D=UM RL B-29
+			ZEROVECS
+		SETPD	PUSH
+			0D
+		PUSH	PDDL		# SET 0-18D = I BACKWARDS
+			HIDPHALF	# PD 18
+		SR2			# B-3
+		STORE	4D
+		STORE	8D
+		STOVL	12D
+			UM		# B-1
+		STOVL	S223X1
+			S22RL		# B-29
+		CALL			# (UM)(RL T) B-30 STORED IN S22UMRL THRU
+			S2231X13	# S22UMRL +17D
+		AXT,1	SSP
+		DEC	18
+			S1
+		DEC	6
+S22NXTU		VLOAD*	VSR2		# (UM)(RL T) B-32
+			S22UMRL +18D,1
+		V/SC
+			S22D		# D B-29
+		BVSU	STADR		# SUBTRACT FROM I B-3
+		STORE	S22UMRL +18D,1	# U MATRIX B-3
+		TIX,1	AXT,1		# PD 0 AFTER TIX
+			S22NXTU
+		DEC	36		# S1 STILL 6 FROM ABOVE
+S22NXTWI	VLOAD*	MXV
+			W +36D,1	# B-19
+			S22UMRL		# B-3
+		VSL3
+		STORE	W +144D,1	# W(I+18)= UW(I) B-19
+		TIX,1	DLOAD
+			S22NXTWI
+# Page 602
+			S22RHO		# B-28,B-30
+		BOFF	SR2		# MAKE RHO B-30
+			CMOONFLG
+			+1
+		NORM	XAD,2
+			X2
+			X2
+		DSQ	DMP
+			SCTVAR		# B+16
+		SR1			# ACCOUNTS FOR 1/2 IN NEXT FORMULA
+		STORE	S22RHO		# 1/2(RHO SQ)(VARSCT)
+		AXT,1
+		DEC	18		# S1 STILL 6 FROM ABOVE
+S22NXXA		VLOAD*	MXV
+			S22UMRL +18D,1	# B-3
+			S22UMRL		# B-3
+		VXSC	VSR*
+			S22RHO
+			0 -12D,2	# WITH VARRP SCALED B-28
+		STORE	S22UUT +18D,1	# 1/2(RHO SQ)(VARSCT)(U)(U T)
+		TIX,1	VLOAD
+			S22NXXA
+			UM
+		STCALL	S223X1		# UM ALSO IN MPAC FOR S2231X13 SUBR.
+			S2231X13	# (UM)(UM T) B-2 IN S22UMRL,P17D
+		DLOAD	SR3
+			ERADM		# B0 B-29
+		DDV	DSQ
+			S22D		# B-29
+		DMP
+			RPVAR		# ***** METERS SQ
+		STORE	S22RHO		# TEMP (VARRP)(R0/D)
+		AXT,1
+		DEC	18		# S1 STILL 6 FROM ABOVE
+S22NXXB		VLOAD*	VXSC
+			S22UMRL +18D,1	# (UM)(UM T) B-2
+			S22RHO
+		VAD*
+			S22UUT +18D,1
+		STORE	S22UUT +18D,1	# SMALL E MATRIX
+		VLOAD
+			ZEROVECS
+		STORE	W +162D,1	# CLEAR W8
+		TIX,1	BOV
+			S22NXXB
+			+1
+		DLOAD	BMN
+			S22UUT +16D	# E5
+			S22W76X
+		SQRT	BZE
+# Page 603
+			S22W76X
+		STODL	W +148D		# W74= SQ ROOT E5
+			S22UUT +14D	# E4
+		DDV	BOV
+			W +148D
+			S22W72X
+		STORE	W +146D		# W73= E4/W74
+S22W72X		DLOAD	DDV
+			S22UUT +12D	# E3
+			W +148D
+		BOV
+			S22W76X
+		STORE	W +144D		# W72= E4/W74
+S22W76X		DLOAD	DSQ
+			W +146D		# W73
+		BDSU	BMN
+			S22UUT +8D	# E2
+			S22W78X
+		SQRT	BZE
+			S22W78X
+		STODL	W +152D		# W76= SQ ROOT (E2-W73 SQ)
+			W +144D		# W72
+		DMP	BDSU
+			W +146D		# W73
+			S22UUT +6D	# E1
+		DDV	BOV
+			W +152D		# W76
+			S22W78X
+		STORE	W +150D		# W75= (E1-W72W73)/W76
+S22W78X		DLOAD	DSQ
+			W +150D
+		PDDL	DSQ
+			W +144D		# W72
+		DAD
+		BDSU	BMN	
+			S22UUT		# E0
+			S22SCLW
+		SQRT
+		STORE	W +156D		# W78= SQ RT(E0-W72 SQ-W75 SQ)
+S22SCLW		VLOAD	VSR1		# SCALE W6 METERS B-19
+			W +144D
+		STOVL	W +144D
+			W +150D
+		VSR1
+		STOVL	W +150D
+			W +156D
+		VSR1
+		STORE	W +156D
+S22SAVET	CALL
+			GETTF
+# Page 604
+		STORE	S22TPRIM	# SAVE PRESENT TIME FOR PIOS
+S22I=N		EXIT			# TEST I=N
+		TC	PHASCHNG
+		OCT	04022
+		CS	8KK
+		AD	8NN
+		EXTEND
+		BZMF	S22F244X	# EXIT TO FIGURE 2.4-4
+		CA	8KK		# I=I+1
+		AD	ONE
+		TS	TEMPOR1
+		CA	S22LOC		# ADD 7 TO LOC TO GET ADDR. OF NEXT MARK
+		AD	SEVEN
+		TS	TEMPOR1 +1
+		TC	PHASCHNG
+		OCT	04022
+		CA	TEMPOR1
+		TS	8KK
+		CA	TEMPOR1 +1
+		TS	S22LOC
+		TC	INTPRET
+		CALL			# FOR ALL INTEGRATIONS OTHER THAN FIRST
+S2INTS1			INTSTALL
+		CALL
+			S22FLGS
+		BON	CLEAR
+			DMENFLG
+			S22NXTIN	# RETURN ALWAYS EXCEPT OFFSET POINT MARK 1
+			DIM0FLAG
+		BOFF	SET
+			ORBWFLAG
+			S22NXTIN	# OFFSET POINT MARK 1, NO W INTEGRATION
+			DIM0FLAG
+		CLRGO
+			D6OR9FLG
+			S22NXTIN	# OFFSET POINT MARK 1, INTEGRATE W 6X6
+S22OFF=I	CALL
+			GETTF
+		STOVL	S22TOFF		# TIME SUB OFF
+			UM
+		STCALL	S22UOFF		# U SUB OFF
+			S22I=N		# TEST I=N
+S22D=9		VLOAD			# D=9 PATH
+			X789
+		STODL	0D		# CALL PIOS TWICE TO TRANSFORM RL TO TIME
+			S22TPRIM	# T(SUB F) FROM TIME T PRIME
+		STORE	6D
+		SLOAD	CALL
+			S22EORM		# 0=EARTH, NON-ZERO=MOON
+S2RTRP			R-TO-RP
+# Page 605
+		PUSH	CALL		# R-TO-RP LEAVES PUSHLOC AT 0
+			GETTF
+		STORE	6D
+		SLOAD	CALL
+			S22EORM
+S2RPTR			RP-TO-R
+S22BOX32	STORE	X789
+		SET	BOV
+			INCORFLG	# FLAG=1
+			+1		# CLEAR OVERFLOW
+		VSU
+			CSMPOS
+		STORE	RCLP		# RCL=RL-RC
+		UNIT	VXV		# USTAR=UNIT(UNIT(RCL)XUM)
+			UM
+		UNIT	BOV
+			S22SAVET	# COMPUTATION OVERFLOW, SAVE TF
+		STORE	USTAR
+S22BOX12	SET	SET
+			DMENFLG		# =1 FOR 9X9 W
+			VEHUPFLG	# =1 FOR CSM
+		DLOAD	DAD
+			SCTVAR		# B+18
+			IMUVARR		# B+18
+		STOVL	VARIANCE
+			RCLP		# B-29 OR B-27
+		ABVAL	NORM
+			X1
+		DSQ	DMP
+			VARIANCE
+		XAD,1	XAD,1
+			X1		# DOUBLE NORM SHIFT SINCE RCLP WAS SQUARED
+			S22EORM		# DOUBLE EARTH OR MOON SHIFT, SAME REASON
+		XAD,1	SR*
+			S22EORM
+			0,1		# SCALE VARIANCE B-40 FOR BOTH EARTH, MOON
+		TLOAD			# CHANGE MODE TO TRIPLE
+			MPAC
+		STCALL	VARIANCE	# CALC B0,B1,DELTAQ, NEW USTAR
+S2BVTRS			BVECTORS
+		VLOAD	VCOMP
+			BVECTOR
+		STCALL	BVECTOR +12D	# B2=-B0
+S2INCP1			INCORP1
+		CALL
+			GRP2PC
+		BOFF	CLEAR
+			22DSPFLG	# =1 DISPLAY DELTA R,V	  =0 DO NOT
+			S22BOX42
+			22DSPFLG
+# Page 606
+		CALL
+			GRP2PC
+		VLOAD	ABVAL
+			DELTAX		# DELTA R
+		LXA,1	SR*
+			S22EORM		# SCALE DELTA R ALWAYS METERS B-29
+			0,1
+		STOVL	N49DISP
+			DELTAX +6	# DELTA V
+		ABVAL	SR*		# DELTA V=METERS/CSEC B-7 ALWAYS
+			0,1
+		STORE	N49DISP +2
+		EXIT
+		CAF	V06N49EE
+		TC	BANKCALL
+		CADR	GOFLASHR
+		TC	GOTOP00H	# V34E TERMINATE
+		TC	+5		# INCORPORATE CHANGES
+		TC	S22EXEX		# V32E RECYCLE
+		CAF	BIT3
+		TC	BLANKET
+		TC	ENDOFJOB
+		TC	INTPRET
+S22BOX42	CALL
+			INCORP2
+		CALL			# CSMPOS=RC B-29 OR B-27
+			S22CALRC
+DMPINCP2	BOFF	CALL
+			INCORFLG
+			S22SAVET	# SAVE TF AND TEST I=N
+			GRP2PC
+		CLEAR	VLOAD
+			INCORFLG	# FLAG=0
+			X789
+		VSU
+			CSMPOS
+		STCALL	RCLP		# RCL=RL-RC
+			S22BOX12
+S22BOX22	AXT,1	SSP		# CLEAR W6,W7,W8.  (27 ELEMENTS 54 REGS)
+		DEC	54
+			S1
+		DEC	6
+		VLOAD
+			ZEROVECS
+CLRW678		STORE	W +162D,1
+		TIX,1	SLOAD
+			CLRW678
+			S22WSUBL
+		STORE	W +144D
+		STORE	W +152D
+# Page 607		
+		STORE	W +160D
+		CLEAR	BOFF		# SET LUNAFLAG, TIME FOR LALOTORV
+			LUNAFLAG	# ERADFLAG,LAT,LONG,ALT SET PREVIOUSLY
+			CMOONFLG	# CHECK SCALING OF ITEMS,ALT INPUT AND
+			S22BX22A	# RL OUTPUT IN ALPHAV BOTH B-29
+		SET
+			LUNAFLAG
+S22BX22A	CALL
+			GETTF
+		CALL			# COMPUTE RL
+			LALOTORV
+		VLOAD	BOFF
+			ALPHAV		# RL B-29
+			CMOONFLG
+			S22BX22B
+		VSL2			# SCALE RL B-27 FOR MOON
+S22BX22B	GOTO
+			S22BOX32
+S22F244X	TC	INTPRET
+S22F244		SLOAD	BHIZ		# FIG 2.4-4	TEST OFF=0
+			CXOFF
+			S22BOX44
+		SR			# SCALE OFFSET B-14 THEN GET GR. 8NN
+			9D
+		STORE	ALPHAV		# TEMP
+		SLOAD	DSU
+			8NN
+			ALPHAV
+		BMN	CALL		# OFFSET GR. NO. MARKS.  FORGET IT
+			S22BOX44
+			GRP2PC		# GROUP 2 PHASE CHANGE
+		DLOAD
+			S22TOFF
+		STCALL	TDEC1		# CALC RC AT OFFSET TIME
+			CSMPREC
+		VLOAD
+			RATT1		# RC METERS B-29 OR B-27
+		STOVL	CSMPOS
+			S22UOFF
+		STOVL	UM		# U=UOFF
+			X789
+		ABVAL	BOFF
+			CMOONFLG
+			+2
+		SR2			# SCALE MOON R0 B-29 FOR S22F2410 SUBR
+		STCALL	ERADM
+			S22F2410
+		GOTO
+			S22BX44A
+S22BOX44	CALL
+# Page 608
+			GETTF
+		STORE	S22TOFF		# PRESENT TIME FOR LAT-LONG SETUP
+S22BX44A	CLEAR	VLOAD
+			LUNAFLAG
+			X789
+		BOFF	SET
+			CMOONFLG
+			S22BX44B
+			LUNAFLAG	# SET = 1 FOR LAT-LONG
+		VSR2			# SCALE RL MOON B-29 FOR LAT-LONG
+S22BX44B	STODL	ALPHAV		# RL SCALED B-29 FOR LAT-LONG
+			S22TOFF		# EITHER PRESENT OR OFFSET TIME
+		CALL
+			LAT-LONG	# **** ALT OUTPUT ALWAYS B-29
+		CALL			# DISPLAY LAT/LONG/ALT
+			LLASRD
+		EXIT
+		CAF	V06N89B
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	S22GTP		# V34E TERMINATE
+		TC	+2		# PROCEED	SAVE LANDING SITE COORD
+		TC	S22.981X	# RECYCLE	POINT A IN GSOP
+		TC 	INTPRET
+		DLOAD
+			S22TOFF		# EITHER PRESENT OR OFFSET TIME
+		STOVL	6D		# 6-7D= LANDING SITE TIME FOR R-TO-RP
+			X789
+		STORE	0D		# 0-5D= LANDING SITE VEC FOR R-TO-RP
+		SLOAD	CALL
+			HIDPHALF	# ANY NON-ZERO FOR MOON
+			R-TO-RP		# CONVERT RLS TO MOON-FIXED COORD
+		STORE	RLS		# LANDING SITE VECTOR
+		EXIT
+S22.981X	TC	INTPRET
+		CALL
+			9DWTO6DW
+		EXIT			# GO TO POINT A IN CHAPTER 5
+S22EXEX		TC	INTPRET		# WITHOUT CONVERTING W
+		GOTO
+			S22RTNEX
+			
+S22GTP		TC	INTPRET		# CONVERT W BEFORE TC GOTOP00H
+		CALL
+			9DWTO6DW
+		EXIT
+		TC	GOTOP00H
+S22F2410	SETPD	VLOAD		# COMPUTE FORMULA 2.4.10
+			0D
+			CSMPOS		# RC B-29 EARTH, B-27 MOON
+# Page 609			
+		UNIT	DOT		# UNIT ALSO SETS 36D=ABVAL(RC) USED BELOW
+			UM
+		SL1	DCOMP		# GSOP CHANGE 8/18/67
+		PUSH			# PD 2D 8D=COSA=-(UM.RC)/ABVAL(RC) 	B-1
+		DSQ	BDSU
+			DEC1B2
+		PDDL	BOFF		# PD 4D 2D=1-COSA SQ=SINA SQ 		B-2
+			ERADM		# R0 ALWAYS B-29 FROM SETRE
+			CMOONFLG
+			+2
+		SL2			# SCALE R0 B-27 FOR MOON
+		SR1R	DDV		# (R0/RC) 	B-1
+			36D
+		DSQ	DSU		# PD 2D (RP/RC) SQ - SINA SQ		B-2
+		SQRT	BDSU		# PD 0D COSA-SQRT((R0/RC)SQ-SINA SQ)	B-1
+		DMP			# DMP RESULT B-28 MOON, B-30 EARTH
+			36D		# VXSC RESULT B-29 MOON, B-31 EARTH
+		STORE	S22RHO		# RHO FOR W INIT. OF UNKNOWN LMK B-28,B-30
+		VXSC	
+			UM
+		VSL2	VAD		# SCALE B-27 MOON, B-29 EARTH AND ADD RC
+			CSMPOS
+		STORE	X789
+		RVQ			# B-27 FOR EARTH OR B-29 FOR MOON
+S22CALRC	LXA,1	VLOAD		# COMPUTE RC B-29 OR B-27
+			S22EORM		# =0 FOR EARTH, -2 FOR MOON
+			DELTACSM
+		VSR*	VAD
+			7,1
+			RCVCSM
+		STORE	CSMPOS
+		RVQ
+		SETLOC	P22S
+		BANK
+		
+S2231X13	STORE	S221X3		# MULT 3X1 BY 1X3, STORE RESULTING 3X3 IN
+		SSP	AXT,2		# S22UMRL - S22UMRL+17D
+			S2
+		DEC	2
+		DEC	6
+		AXT,1
+		DEC	18
+S2231NXT	VLOAD	VXSC*
+			S221X3
+			S223X1 	+6,2
+		STORE	S22UMRL +18D,1
+		INCR,1	TIX,2
+		DEC	-6
+			S2231NXT
+		RVQ
+# Page 610		
+GETTF		LXC,1	DLOAD*		# SET MPAC= TF
+			S22LOC
+			0,1
+		RVQ
+S22FLGS		SET	SET		# INTEGRATION FLAGS
+			DIM0FLAG
+			D6OR9FLG
+		SET	SET
+			VINTFLAG
+			STATEFLG
+		CLEAR	RVQ
+			INTYPFLG
+			
+# SUBROUTINE TO MODIFY ALT AND STORE LAT TO LAT+5 IN LANDLAT TO LANDLAT+5
+# PRIOR TO DISPLAY.
+
+LLASRD		DLOAD			# ALT, LANDALT METERS B-29
+			ALT
+		STODL	LANDALT
+			LONG
+		SR1
+		STORE	LANDLONG
+		RVQ
+
+# SUBROUTINE TO MODIFY LANDALT AND STORE LANDALT TO LANDALT+5 IN LAT TO
+# LAT+5 AFTER LMK DATA LOADED BY ASTRONAUT.
+
+LLASRDA		DLOAD			# ALT, LANDALT METERS B-29
+			LANDALT
+		STODL	ALT
+			LANDLONG
+		SL1
+		STORE	LONG
+		RVQ
+		SETLOC	P20S6
+		BANK
+		
+9DWTO6DW	STQ	SETPD
+			9DWXX
+			0D
+		VLOAD	PUSH		# CLEAR WORKING AREA OF PUSHLIST
+			HI6ZEROS	# INCLUDING P
+		PUSH	PUSH		# PD 18D
+		SSP
+			9DWJ		# J=29	USE 2*29 FOR DP WORDS
+		DEC	58
+9DWI=J		LXA,1	SXA,1		# SET I=J
+			9DWJ
+			9DWI
+9DWEPCAL	CALL
+# Page 611
+			ROWDOT
+		LXA,1			# P VARIES 0-20 INSTEAD OF 20-0
+			9DWP
+		STORE	EMATRIX +40D,1
+		INCR,1	SXA,1
+		DEC	2
+			9DWP
+		SLOAD	BHIZ		# TEST I=0
+			9DWI
+			9DWTESTJ
+		DSU			# I=I-1
+			9DWID
+		STORE	9DWI
+		DSU	BHIZ		# TEST I=26
+			9DW26D
+			9DWSETI2
+		GOTO			# NEXT E SUB P
+			9DWEPCAL
+9DWSETI2	SSP	GOTO		# I=2
+			9DWI
+		DEC	4
+			9DWEPCAL
+9DWTESTJ	SLOAD	BHIZ		# TEST J=0
+			9DWJ
+			9DWFIG6
+		DSU
+			9DWID
+		STORE	9DWJ		# J=J-1
+		DSU	BHIZ		# TEST J=26
+			9DW26D
+			9DWSETJ2
+		GOTO
+			9DWI=J
+9DWSETJ2	SSP	GOTO		# SET J=2
+			9DWJ
+		DEC	4
+			9DWI=J
+9DWFIG6		CALL
+			GRP2PC
+		SSP	VLOAD		# START OF FIGURE 2.4-6
+			9DWJ		# J=29
+		DEC	58
+			HI6ZEROS
+		STORE	9DWP		# P,N,I=0
+		AXT,1	SSP
+		DEC	108		# CLEAR W0 TO W54
+			S1
+			6
+CLEARW54	STORE	W +108D,1
+		TIX,1
+# Page 612		
+			CLEARW54
+9DWI=JA		LXA,1	SXA,1		# I=J
+			9DWJ
+			9DWI
+		CALL
+			ROWDOT
+		LXA,1	BDSU*
+			9DWP
+			EMATRIX +40D,1
+		INCR,1	SXA,1		# -(P+1)
+			2
+			9DWP
+		LXC,1	XSU,1		# -(I+N)
+			9DWI
+			9DWN
+		BPL	DLOAD		# TEST WSQ LTE 0
+			9DWAAA
+			HI6ZEROS	# W=0
+		GOTO
+			9DWAAB
+9DWAAA		SQRT			# W= SQRT(WSQ)
+9DWAAB		STORE	W,1
+		STODL	WORKW
+			9DWJ		# TEST J=0
+		BHIZ
+			9DWEXITX	# EXIT
+TST2I=0		SLOAD	BHIZ		# TEST I=0
+			9DWI
+			9DWN=N+3
+		DSU
+			9DWID
+		STORE	9DWI		# I=I-1
+		DSU	BHIZ		# TEST I=26
+			9DW26D
+			9DWAAC
+		GOTO
+			9DWNEXEP
+9DWAAC		SSP			# I=2
+			9DWI
+			4
+9DWNEXEP	CALL
+			ROWDOT
+		LXA,1	BDSU*		# (EP-ROWI*ROWJ)/W
+			9DWP
+			EMATRIX +40D,1
+		DDV	INCR,1		# P=P+1
+			WORKW
+			2
+		SXA,1	LXC,1
+			9DWP
+# Page 613			
+			9DWI
+		XSU,1	BOV		# -(I+N)
+			9DWN
+			SETWIN=0
+		GOTO
+			9DWSETWX
+SETWIN=0	DLOAD			# W(I+N)=0
+			HI6ZEROS
+9DWSETWX	STORE	W,1
+		GOTO
+			TST2I=0
+9DWN=N+3	LXA,1	INCR,1		# N=N+3
+			9DWN
+			6
+		SXA,1	SLOAD		# J=J-1
+			9DWN
+			9DWJ
+		DSU
+			9DWID
+		STORE	9DWJ
+		DSU	BHIZ		# TEST J=26
+			9DW26D
+			SETJ=2A
+		GOTO
+			9DWI=JA
+SETJ=2A		SSP	GOTO		# J=2
+			9DWJ
+			4
+			9DWI=JA
+9DWEXITX	CALL
+			GRP2PC
+		AXT,1	SSP		# CLEAR W6,W7,W8 USED TEMP FOR EMATRIX
+		DEC	54
+			S1
+			6
+		VLOAD
+			HI6ZEROS
+9DWEXXXA	STORE	W +162D,1
+		TIX,1	GOTO
+			9DWEXXXA
+			9DWXX
+ROWDOT		SSP	BOV
+			XTMP1
+		OCT	377
+			+1
+		LXC,1	LXC,2
+			9DWI
+			9DWJ
+		DLOAD	PUSH
+			HI6ZEROS
+# Page 614			
+ROWDOT1		DLOAD*	DMPR*
+			W,1
+			W,2
+		DAD	PUSH
+		BOV	INCR,1
+			ROWDOT3
+		DEC	-6
+		INCR,2	SLOAD
+		DEC	-6
+			XTMP1
+		BHIZ	SR1
+			ROWDOT2
+		STORE	XTMP1
+		GOTO
+			ROWDOT1
+ROWDOT2		DLOAD
+		RVQ
+ROWDOT3		CLRGO
+			ORBWFLAG
+			ROWDOT2
+WORKW		=	0D
+XTMP1		=	6D
+9DWP		=	8D		# P
+9DWI		=	10D		# I
+9DWN		=	12D		# N
+9DWJ		=	14D		# J
+9DWXX		=	S22UOFF
+S22UMRL		=	BVECTOR		# 18
+S22UUT		=	DELTAX		# 18
+S223X1		=	18D		# 6
+S221X3		=	24D		# 6
+S22D		=	30D		# 2
+S22RHO		=	32D		# 2
+S22RL		=	W +156D		# 6
+9DW26D		2DEC	52 B-14
+
+9DWID		2DEC	2 B-14
+
+SCTVAR		2DEC	1.0 E-6 B+18
+
+IMUVARR		2DEC	0.04 E-6 B+18
+
+DEC1B2		2DEC	1 B-2
+
+V06N49EE	VN	00649
+V06N89B		VN	00689
+S22UOFF		=	LEMPOS		# 6	U SUB OFF
+		SETLOC	P20S2
+		BANK
+# Page 615
+# Nothing on this page. --- RSB 2009.
+
+# Page 616
+# SUBROUTINE NAME:  V89CALL
+# MOD NO:  0					DATE: 8 FEB 1968
+# MOD BY:  DIGITAL DEVEL GROUP			LOG SECTION:  P20-P25
+#
+# FUNCTIONAL DESCRIPTION:
+#
+# CALLED BY VERB 89 ENTER DURING P00.  PRIO 10 USED.  CALCULATES AND
+# DISPLAYS FINAL GIMBAL ANGLES TO POINT CSM +X AXIS OR PREFERRED AXIS
+# (UNIT(Z)COS55 DEG + UNIT(X)SIN55 DEG) AT LM.
+#
+# 1. KEY IN V89 E ONLY IF IN PROG 00. IF NOT IN P00, OPERATOR ERROR AND
+# EXIT R63, OTHERWISE CONTINUE.
+#
+# 2. IF IN P00, DO IMU STATUS CHECK (R02BOTH).  IF IMU ON AND ITS
+# ORIENTATION KNOWN TO CGC, CONTINUE.
+#
+# 3. FLASH DISPLAY V 04 N 06.  R2 INDICATES WHICH SPACECRAFT AXIS IS TO
+# BE POINTED AT LM.  INITIAL CHOICE IS PREFERRED AXIS.  (R2=1).
+# ASTRONAUT CAN CHANGE TO (+X) AXIS (R2 NOT= 1) BY V22 E 2 E.  CONTINUE
+# AFTER KEYING IN PROCEED.
+#
+# 4. SET PREFERRED ATTITUDE FLAG ACCORDING TO OPTION DESIRED.  SET FLAG
+# FOR PREFERRED AXIS.  RESET FLAG FOR X AXIS.
+#
+# 5. CURRENT TIME IS STORED AND R63COMP IS CALLED
+#
+#	R63COMP JOB:
+#	
+#		UPDATE CSM AND LM STATE VECTORS USING CONIC EQUATIONS
+#
+#		CALCULATES BOTH PREFERRED AND X AXIS TRACKING ATT FROM CSM TO LM.
+#
+#		DESIRED GIMBAL ANGLES AS INDICATED BY PREFERRED ATTITUDE FLAG
+#		ARE STORED FOR LATER R60CSM CALL.
+#
+# 6. FLASH DISPLAY V 06 N18 AND AWAIT RESPONSE.
+#
+# 7. RECYCLE: RETURN TO STEP 5.
+#    TERMINATE: EXIT R63 ROUTINE
+#    PROCEED:  RESET 3AXISFLG AND CALL R60CSM FOR ATTITUDE MANEUVER.
+#
+# CALLING SEQUENCE:	V 89 E
+#
+# SUBROUTINES CALLED:  CHKP00H, R02BOTH, GOXDSPF, R63COMP, R60CSM
+#
+# ALARMS	1.  OPERATOR ERROR IF NOT IN P00
+#		2.  PROGRAM ALARM IF IMU IS OFF
+#		3.  PROGRAM ALARM IF IMU ORIENTATION IS UNKNOWN
+# Page 617
+#
+# ERASABLE INITIALIZATION REQUIRED:  NONE
+#
+# DEBRIS:  OPTION1, OPTION1+1, PRFTEXAT(PREF ATT FLAG), P21TIME, 3AXISFLG
+
+DP1MIN		2DEC	6000
+
+		EBANK=	P21TIME
+		BANK	34
+		SETLOC	P20S4
+		BANK
+		COUNT*	$$/R63
+		
+V89CALL		TC	BANKCALL	# IMU STATUS CHECK. RETURNS IF ORIENTATION
+		CADR	R02BOTH		# KNOWN.  ALARMS IF NOT.
+		CAF	THREE		# ALLOW ASTRONAUT TO SELECT DESURED
+		TS	OPTION1		# TRACKING ATTITUDE AXIS
+		CAF	ONE
+		TS	OPTION1 +1
+		CAF	VB04N06		# V 04 N 06
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	ENDEXT		# TERMINATE
+		TC	+2		# PROCEED
+		TC	-5		# DATA IN.  OPTION1 +1 = 1 FOR PREF AXIS
+					#		       = 2 FOR X AXIS
+		CS	OPTION1 +1	# 1 FOR PREF AXIS.  2 FOR X AXIS.
+		AD	ONE
+		EXTEND
+		BZF	SETPAF
+RSTPAF		TC	DOWNFLAG	# RESET PREF ATT FLAG FOR R63COMP
+		ADRES	RNGSCFLG	# TO DO X AXIS.  RESET BIT 10 FLAG 5
+V89RECL		TC	INTPRET
+		RTB	DAD
+			LOADTIME	# READ PRESENT TIME
+			DP1MIN		# INTEGRATE TO 1 MIN FROM NOW
+		STCALL	P21TIME		# STORE TIME FOR CALL TO R63COMP.  R63COMP
+			R63COMP		# LEAVES DESIRED GIM ANGS IN THETAD, LOS IN
+		EXIT			# POINTVSM, AND SELECTED AXIS IN SCAXIS.
+		CAF	VB06N18		# V 06 N 18
+		TC	BANKCALL	# NOUN 18 REFERS TO THE DESIRED GIMBAL
+		CADR	GOFLASH
+		TC	ENDEXT		# TERMINATE
+		TC	+2		# PROCEED
+		TC	V89RECL		# RECYCLE
+		TC	DOWNFLAG	# RESET 3 AXIS FLAG
+		ADRES	3AXISFLG	# RESET BIT 6 FLAG 5
+# Page 618
+		TC	BANKCALL	# PERFORMS CSM MANEUVER TO ALIGN SELECTED
+		CADR	R60CSM		# SPACECRAFT AXIS TO LOS.
+		TCF	ENDEXT
+		
+SETPAF		TC	UPFLAG		# SET PREFERRED ATT FLAG FOR R63COMP
+		ADRES	RNGSCFLG	# TO DO PREF AXIS.  SET BIT 10 FLAG 5.
+		TC	V89RECL
+		
+VB04N06		VN	0406
+VB06N18		VN	0618
+
+R63COMP		EQUALS	R63
+
+# Page 619
+# PROGRAM NAME:  P23 CISLUNAR MIDCOURSE NAVIGATION
+# MOD NO:
+# MOD BY:  TOM KNATT
+#
+# FUNCTIONAL DESCRIPTION:  DO MIDCOURSE NAVIGATION BY INCORPORATION OF 
+# STAR/EARTH AND STAR/MOON OPTICAL MEASUREMENTS.
+#
+# CALLING SEQUENCE:  ASTRONAUT OPERATED
+#
+# SUBROUTINES CALLED:  R52,R53,R57,R60,ORBITAL INTEGRATION (INTEGRV)
+# INCORP1,INCORP2,LALOTORV,LUNLMKLD, AND DISPLAY INTERFACE ROuTINES.
+#
+# N0RMAL EXIT MODES:  VIA R00
+#
+# ALARMS:  NONE
+#
+# ABORT MODES:  NONE
+#
+# ERASABLE INITIALIZATION REQUIRED:  PAD-LOADED ERASABLES, ORBWFLAG RESET,
+# REFSMFLG=0 IF IMU OFF AND REFSMFLG=1 IF IMU ONE
+#
+# INPUTS BY USER REQUIRED:  STAR NUMBER, LANDMARK LAT, LONG/2, ALT OR ID NUMB.
+# IF LANDMARK IS USED, NEAR OR FAR HORIzON IF HORIZON IS USED, AND 
+# BODY TO BE MARKED ON (EARTH OR MOON).  SEE GSOP CHAPT 4.
+#
+# OUTPUT:  UPDATED CMC STATE VECTOR.  VECTOR FROM S/C TO HORIZON OR LANDMARK
+# IN POINTAXS.  POINTAXS CAN BE USED TO GENERATE THIS VECTOR APART FROM
+# P23 IF DESIRED.
+#
+# DEBRIS:  NO USABLE DEBRIS IS GENERATED.  RENDWFLG IS RESET FOR P20 UPON
+# COMPLETION OF P23.  RUPTREGS AND ERASABLES USED BY DISPLAYS ARE DEBRIS.
+
+		BANK	31
+		SETLOC	RT23
+		BANK
+		COUNT	31/S23
+		EBANK=	W
+P23		TC	DOWNFLAG
+		ADRES	RNDVZFLG
+		
+		TC	2PHSCHNG
+		OCT	00004		# LEAVE GROUP 4
+		OCT	00012		# ENTER GROUP 2
+		CAF	PRIO13
+		TS	PHSPRDT2
+		TC	INTPRET
+		SSP	CLEAR
+			MARKINDX
+			1
+			TARG2FLG	# TARGET FLAG USED R52 AND R53
+		CLEAR	SSP
+			TARG1FLG
+			STARIND
+			0
+		SSP	CLEAR
+			BESTI
+			0
+			R57FLAG		# SET = DO NOT REPERFORM R57
+		CLEAR	EXIT
+			V94FLAG		# SET = ALLOW V94
+P23.00		TC	INTPRET
+# Page 620
+		BON	CALL
+			REFSMFLG	# SET NOW AS INPUT, NORMALLY EXTERNAL CONT
+			P23.05		# WHEN ALIGNED, PERFORM MEASUREMENT
+			R57		# DO OPTICS CALIBRATION IF IMU NOT ALIGNED.
+		CALL
+			R53
+		GOTO
+			P23.60
+P23.05		CLEAR	EXIT
+			SAVECFLG	# USED TO SAVE SPACE IN P23.65
+P23.06		CAF	V05N70
+		TC	BANKCALL	# IDENTIFICATION:  STAR, HOR  IDENT.
+		CADR	GOFLASH
+		TC	GOTOP00H	# TERMINATE
+		TC	P23.15
+		TC	-5		# REDISPLAY
+P23.15		CA	LANDMARK	# IF C=2, LUNAFLAG=1.  IF C=1, LUNAFLAG=0
+		EXTEND
+		BZF	P23.151
+		CA	HORIZON
+		EXTEND
+		BZF	+2
+		TC	R23.10		# OPERATOR DSKY ERROR
+		CA	LANDMARK
+		TC	P23.152
+P23.151		CA	HORIZON
+		EXTEND
+		BZF	R23.10
+P23.152		MASK	BITS7-9		# IS C EQUAL TO 1 OR 2
+		AD	NEG100
+		EXTEND
+		BZF	P23.16
+		AD	NEG100
+		EXTEND
+		BZF	+2
+		TC	R23.10
+		TC	UPFLAG
+		ADRES	LUNAFLAG
+		TCF	+3				
+P23.16		TC	DOWNFLAG
+		ADRES	LUNAFLAG
+		CA	STARCODE	# IS STARCODE GREATER THAN OR
+		EXTEND			# EQUAL TO 0 AND LESS THAN 37
+		BZF	P23.176
+		EXTEND
+		BZMF	R23.10
+		AD	NEG37
+		EXTEND
+		BZMF	+2
+		TC	R23.10
+# Page 621			
+	
+		TC	INTPRET
+P23.17		SLOAD	BZE
+			STARCODE
+			P23.175
+		PUSH
+		SLOAD	DMP
+			SPSIX
+		LXA,1	SXA,1
+			MPAC +1
+			BESTI		# BESTI = 6 X STAR NUMBER
+		CALL
+			LOWMEMRY	# NEEDED TO RETRIEVE STAR VECTOR FROM LOW
+		STORE	STARSAV2	# STORE FOR R53,P23.  US(IN P23)=STARSAV2
+P23.175		EXIT
+P23.176		CA	HORIZON
+		EXTEND
+		BZF	P23.20
+		MASK	BITS4-6
+		AD	-OCT10
+		EXTEND
+		BZF	P23.18
+		AD	-OCT10
+		EXTEND
+		BZF	+2
+		TC	R23.10
+		TC	UPFLAG
+		ADRES	NORFHOR
+		TC	P23.30
+P23.18		TC	DOWNFLAG
+		ADRES	NORFHOR
+		TC	P23.30
+P23.20		TC	INTPRET
+		CALL
+			P22SUBRB
+		EXIT
+P23.30		TC	INTPRET
+		SLOAD	BZE
+			STARCODE
+			LDPLANET
+P23.31		BON	EXIT
+			SAVECFLG
+			P23.85
+		CAF	V50N25P
+		TC	BANKCALL
+		CADR	GOPERF1		# GOPERF1 BLANKS OUT R2 AND R3
+		TC	GOTOP00H
+		TC	V94ENTER	# PROCEED.  AUTOCONTROL CMC
+P23.55		TC	INTPRET
+		GOTO
+			P23.56
+# Page 622			
+
+# VERB 94 BEGINS HERE
+V94ENTER	TC	INTPRET
+		RTB
+			LOADTIME	# READ CLOCK
+		STCALL	MARKTIME
+			POINTAXS	# RETURN LOS IN RCLL AND MPAC
+		MXV	UNIT
+			REFSMMAT
+		STOVL	POINTVSM
+			JCAXIS
+		STORE	SCAXIS
+		EXIT
+		TC	DOWNFLAG	# CLEAR AND GO TO VECPOINT IN R60
+		ADRES	3AXISFLG	# BIT 6 FLAG 5
+		CAF	R60ADRS
+		TS	TEMPFLSH
+		TC	PHASCHNG
+		OCT	00012
+R60CALL		TC	BANKCALL
+		CADR	R60CSM
+		TC	PHASCHNG
+		OCT	04022
+		TC	INTPRET
+		BON
+			R57FLAG
+			P23.57		# DO NOT REPERFORM R57
+P23.56		CALL
+			R57
+P23.57		SET	SET
+			V94FLAG
+			R57FLAG
+		CALL
+			R52
+		CLEAR	CLEAR
+			V94FLAG
+			R57FLAG
+P23.60		EXIT
+		INHINT
+		CA	MARKSTAT
+		MASK	LOW10
+		TS	MARKDATA
+		EXTEND
+		INDEX	MARKDATA
+		DCA	0
+		DXCH	MARKTIME
+		INDEX	MARKDATA
+		CA	5
+		XCH	TRUNION
+		RELINT
+		TC	INTPRET
+# Page 623
+		LXC,1	VLOAD*
+			MARKDATA
+			1,1
+		STODL*	MARKDOWN +1
+			0,1
+		STORE	MARKDOWN
+		EXIT
+		CAF	V05N71
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H	# TERMINATE
+		TC	P23.65		# STORE DATA
+		TC	-5		# REDISPLAY
+P23.65		TC	INTPRET
+		SET	EXIT
+			SAVECFLG
+		TC	P23.15
+P23.85		CLEAR	CALL
+			RENDWFLG
+			POINTAXS
+		GOTO
+			R23.55
+
+# WE BEGIN CALCULATIONS HERE
+# POINTAXIS SUBROUTINE
+
+POINTAXS	STQ	
+			POINTEX
+R23.05		BON	DLOAD
+			ORBWFLAG
+			R23.1
+			WMIDPOS
+		STCALL	0
+			INITIALW	# INITIALIZE W-MATRIX FIRST PASS IN P23
+R23.1		CALL
+			SETINTG		# SETUP FOR CSM INTEGRATION
+		BOF	SET
+			ORBWFLAG
+			R23.2
+			DIM0FLAG
+R23.2		SET	CALL
+			ORBWFLAG
+			INTEGRV		# INTEGRATE CSM STATE VEC. TO MARKTIME
+		EXIT
+		TC	PHASCHNG
+		OCT	04022
+		TC	INTPRET
+		CALL
+			RECT.1		# PICKUP CSM STATE VECTOR FROM PERM
+		BOFF	
+			ZMEASURE	# IN SPHERE OF INFLUENCE OF PRIMARY BODY
+			R23.3
+# Page 624		
+		DLOAD	CALL
+			MARKTIME
+			LUNPOS
+		BON	VCOMP
+			CMOONFLG
+			+1
+		VAD
+			RZC	
+		STORE	RZC
+R23.3		SLOAD	BHIZ
+			LANDMARK	# IF LANDMARK = 0, USE HORIZ SUBR
+			R23.4
+		SET
+			ERADFLAG
+		DLOAD	CALL
+			MARKTIME
+			LALOTORV
+		GOTO
+			R23.5
+R23.4		CALL
+			HORIZ
+R23.5		VSU	SETPD
+			RZC
+			0
+		GOTO
+			POINTEX
+# Page 625
+R23.55		UNIT	PUSH		# RCLL IS IN MPAC
+		VLOAD
+			34D		# RCLL * RCLL
+		STOVL	30D		# PUSH 30-31 =RCLL*RCLL 32-33=ABVAL RCLL
+			VZC
+		VXSC	VSR
+			ONE/C
+			15D
+		VAD			# PUSH UP RCLL(UNIT)
+		UNIT
+		STOVL	UCLSTAR
+			VZC
+		VSR2	VSU
+			VESO
+		VXSC	VSR
+			ONE/C
+			13D
+		VAD	UNIT
+			US
+		STORE	USSTAR
+		DOT	SL1
+			UCLSTAR
+		PUSH	VLOAD		# PD 0,1 = USSTAR(DOT)UCLSTAR
+			UCLSTAR
+		VXSC	VCOMP
+		VSL1	VAD
+			USSTAR
+		UNIT
+		STOVL	BVECTOR		# USSTAR - COSQ(UCLSTAR)
+			ZEROVECS
+		STORE	BVECTOR +6
+		STODL	BVECTOR +12D
+			0
+		ACOS	DCOMP
+		PUSH	DLOAD
+			ZEROVECS
+		EXIT
+		CA	VARSUBL		# PUT FIXED INTO ERASABLE FOR MSU
+		TS	L		# INSTRUCTION COMING UP
+		CA	TRUNION		# REQUIRED TO CHANGE 2'S COMPLEMENT
+		EXTEND			# TRUNION TO 1'S COMPLEMENT
+		MSU	L		# TRUNION (2'S)-00000 CONVERTS TRUNION TO
+		TS	MPAC		# 1'S.  VARSUBL=00000.
+		TC	INTPRET
+		PUSH	SLOAD		# PUSH IS DP.  WHEN BDSU IS EXECUTED, 2ND
+			TRUNBIAS	# HALF OF PUSHLIST IS GUARANTEED ZERO FROM
+		BDSU			# DLOAD ZEROVECS ABOVE
+		SR3	DAD
+		DAD	DMP
+# Page 626
+			TRUN19
+			32D
+		DMP	SL3
+			PI/4.0
+		BOFF	SL2
+			CMOONFLG
+			R23.51
+R23.51		STODL	DELTAQ
+			30D		# RCLL * RCLL
+		DMP	RTB
+			TRUNVAR
+			TPMODE
+		TAD
+			VARSUBL
+		STORE	VARIANCE
+		CLEAR	CALL
+			DMENFLG
+			INCORP1
+		CALL
+			GRP2PC
+		VLOAD	ABVAL
+			DELTAX +6
+		BOF	SR2		# DISPLAY IS 2-27 IF IN LUNAR SPHERE.
+			CMOONFLG
+			R23.52
+R23.52		STOVL	N49DISP +2
+			DELTAX
+		ABVAL
+		BOF	SR2
+			CMOONFLG
+			R23.53
+R23.53		STORE	N49DISP
+		EXIT
+R23.6		CAF	V6N49
+		TC	BANKCALL
+		CADR	GOFLASHR
+		TC	GOTOP00H
+		TC	R23.7		# INCORPORATE DATA
+		TC	GOTOP00H
+		CAF	BIT3		# BLAN OUT R3
+		TC	BLANKET
+		TC	PHASCHNG
+		OCT	00012
+		TC	ENDOFJOB
+R23.7		TC	INTPRET
+R23.8		SET	CALL
+			VEHUPFLG
+			INCORP2
+		EXIT
+R23.END		TC	GOTOP00H
+
+# Page 622
+R23.10		TC	FALTON
+		TC	P23.06
+HORIZ		STQ	SETPD
+			SRRETURN
+			0
+		DLOAD	PDDL		# PUSH 0-1 = -AYO SCALED B0
+			-AYO
+			AXO
+		PDDL	PDVL		# PUSH 2-3 = +AX SCALED B0
+			DPPOSMAX
+			US
+		VXV	UNIT
+			RZC
+		STOVL	UBAR2
+		VXV	UNIT		# PUSH UP
+			UBAR2
+		STOVL	UBAR0
+			UBAR2
+		VXV	UNIT
+			UBAR0
+		STORE	UBAR1
+		BON	DOT
+			LUNAFLAG
+			HORIZ.6
+			0		# UBAR1 DOT UZ
+		STCALL	ALPHAV +4
+			GETERAD
+		DAD	PDDL		# MPAC HAS RADIUS OF FISCHER ELLIPSOID
+			HORIZALT	# PUSH 0-1 = BH SCALED B29
+			AEARTH
+		DAD	PUSH		# PUSH 2-3 = AH B29
+			HORIZALT
+HORIZ.1		VLOAD	MXV
+			RZC		# B29
+			UBAR0		# B1
+		VSL1	PDVL		# PUSH 4-9 = RH(XH,YH,ZH) B29
+			US
+		MXV	VSL1
+			UBAR0
+		PDDL			# PUSH 10-15 = USH B1
+			2		# AH
+		STODL	34D
+			4		# XH
+		CALL
+			DIVIDE
+		SR*	DMP
+			8D,1		# NOW SCALED B9
+			MPAC
+		STODL	30D
+			0
+# Page 628			
+		STODL	34D
+			6		# YH
+		CALL
+			DIVIDE
+		SR*	DMP
+			8D,1		# B9
+			MPAC		# B18
+		DAD	PUSH		# PUSH 16-17 =A SCALED B18
+			30D
+		DSU	SQRT
+			1.0B18
+		PDDL			# PUSH 18-19 SQRT(A-1) B9
+			16D
+		STODL	34D
+			4		# XH
+		CALL
+			DIVIDE
+		SR*	PDDL
+			17D,1		# PUSH 20-21 = XH/A B29
+			6		# YH
+		CALL
+			DIVIDE
+		SR*	PDDL
+			17D,1		# PUSH 22-23 = YH/A B29
+			16D		# A
+		STODL	34D
+			18D		# SQRT(A-1)
+		CALL
+			DIVIDE
+		SR*
+			8D,1
+		STODL	28D
+			0		# BH
+		STODL	34D
+			2		# AH
+		CALL
+			DIVIDE
+		SR*	DMP		# AH/BH SCALED B1
+			0,1
+			28D		# SQRT(A-1)/A
+		DMP	SL1
+			6		# YH
+		PDDL	
+			2		# AH
+		STODL	34D
+			0
+		CALL
+			DIVIDE
+		SR*	DMP		# BH/AH SCALED B1
+			0,1
+# Page 629
+			28D		# SQRT (A-1)/A
+		DMP	SL1
+			4		# XH
+		PDDL	DAD
+			20D		# XH/A
+			24D		# ALPHA
+		PDDL	DSU
+			22D		# YH/A
+			26D		# BETA
+		PUSH	SETPD
+			16D
+		DLOAD	DSU
+			20D		# XH/A
+			24D		# ALPHA
+		PDDL	DAD		
+			22D		# YH/A
+			26D		# BETA
+		PDDL	PUSH
+			ZEROVECS
+		STOVL	32D		# ZERO THIRD COMP. OF T-0 VECTOR
+			28D
+		VSU	UNIT
+			4		# RH VECTOR
+		DOT	PDVL		# PUSH 22-23 A-SUB-ZERO
+			10D		# USH VECTOR
+			16D		# T1 VECTOR
+		VSU	UNIT
+			4		# RH VECTOR
+		DOT	PUSH		# PUSH 24-25 A-SUB-ONE
+			10D
+		BDSU	BMN
+			22D		# A-SUB-ZERO
+			HORIZ.3
+		BON
+			NORFHOR
+			HORIZ.4
+HORIZ.2		VLOAD	GOTO
+			28D		# T-0 VECTOR
+			HORIZ.5
+HORIZ.3		BON	GOTO
+			NORFHOR
+			HORIZ.2
+			HORIZ.4
+HORIZ.4		VLOAD
+			16D		# T1 VECTOR
+HORIZ.5		VXM	VSL1
+			UBAR0
+		GOTO
+			SRRETURN
+HORIZ.6		DLOAD	PUSH
+# Page 630
+			RADMOON
+		PUSH	GOTO
+			HORIZ.1
+DIVIDE		NORM	SR1
+			X1
+		STODL	36D
+			34D
+		NORM	BDDV
+			S1
+			36D
+		XSU,1	RVQ
+			S1
+RECT.1		BOFF	AXT,2		# SR TO SET ZMEASURE = 0 IF MEASUREMENT
+			CMOONFLG	#   PLANET AND PRIMARY PLANET ARE THE SAME.
+			RECT.3		#     OTHERWISE = 1
+		DEC	-2
+		BOFF			#       VEC. AND SCALE B29 AND B7
+			LUNAFLAG
+			RECT.4
+RECT.2		CLEAR	GOTO
+			ZMEASURE
+			RECT.5
+RECT.3		AXT,2	BOFF
+			0
+			LUNAFLAG
+			RECT.2
+RECT.4		SET
+			ZMEASURE
+RECT.5		VLOAD	VSR7
+			DELTACSM	# SCALED B22 OR B18
+		VSR*	VAD
+			0,2
+			RCVCSM		# SCALED B29 OR B27
+		VSR*
+			0,2
+		STOVL	RZC		# NOW SCALED B29
+			NUVCSM		# SCALED B3 OR B-1
+		VSR4	VSR*
+			0,2
+		VAD	VSR*
+			VCVCSM		# SCALED B7 OR B5
+			0,2
+		STORE	VZC		# NOW SCALED B7
+		RVQ
+ONE/C		2DEC*	.333564049 E-6 B+21*
+
+AEARTH		2DEC	6378166 B-29	# A AXIS OF EARTH (METERS B-29)
+
+RADMOON		2DEC	1738090 B-29	# RADIUS MOON IN METERS
+
+# Page 631
+
+TRUN19		OCT	01604
+TRUN19A		OCT	00000
+1.0B18		2DEC	1.0 B-18
+
+VARSUBL		DEC	0
+VARSUBL3	2DEC*	3.4299040 E+6 B-26*
+
+TRUNVAR		2DEC	2.5 E-9 B+18
+
+V6N49		VN	0649
+V05N70		VN	0570
+V05N71		VN	0571
+OCT00077	OCT	00077
+V50N25P		OCT	00202
+SPSIX		OCT	00006
+JCAXIS		2DEC	.2688190620	# 1/2(SIN 32.523 DEG)  TRACK AXIS
+
+		2DEC	0
+		
+		2DEC	.4215878460	# 1/2(COS 32.523 DEG)
+		
+R60ADRS		CADR	R60CALL +3
+NEG37		DEC	-37
+BITS7-9		OCT	700
+BITS4-6		OCT	70
+		SETLOC	RT53
+		BANK
+LOWMEMRY	VLOAD*	RVQ
+			CATLOG,1
+		BANK	37
+		SETLOC	P23S1
+		BANK
+LDPLANET	EXIT			# KEEP THIS OPEN SUBROUTINE IN EBANK=5
+		CAF	VNPLAN23	# BECAUSE STAR IS EBANK=5
+		TC	BANKCALL	# LDPLANET ALLOWS VECTOR TO PLANET TO BE
+		CADR	GOFLASH		# STORED IN STARSAV2 IF STORED STARS ARE
+		TC	GOTOP00H	# NOT VISIBLE
+		TC	+2
+		TC	-5
+		TC	INTPRET
+		VLOAD
+			STARSAV3
+		VXSC	UNIT
+			1/SQR3
+		STORE	STARSAV2
+		GOTO
+			P23.31
+VNPLAN23	VN	0688
+		BLOCK	02
+GOTOV56		EXTEND			# P20 TERMINATES BY GOTOV56 INSTEAD OF
+# Page 632
+		DCA	VB56CADR	#	GOTOP00H
+		TCF	SUPDXCHZ
+		EBANK=	WHOCARES
+VB56CADR	2CADR	TRACKTRM
+
+		SETLOC	FFTAG2
+		BANK
+		COUNT*	$$/P20
+		BANK	40
+		SETLOC	ENDPINS1
+		BANK
+		COUNT*	$$/EXTVB
+V67CALL		TC	INTPRET
+		CALL
+			V67WW
+		EXIT
+V06N99DS	CAF	V06N99A
+		TC	BANKCALL
+		CADR	GOXDSPF
+		TCF	ENDEXT
+		TC	V06N9933
+		TC	V06N99DS
+V06N9933	TC	INTPRET
+		SLOAD	BHIZ		# IF R3 OF V67 = 0 EXIT
+			WWOPT
+			+3
+		GOTO
+			V6N99INP
+		EXIT
+		TCF	ENDEXT
+V6N99INP	LXA,1	LXA,2
+			WWPOS
+			WWVEL
+		SLOAD	DSU
+			WWOPT
+			V67DEC2
+		BHIZ	BPL
+			V67WORB
+			V67WMID
+		SXA,1	SXA,2
+			WRENDPOS
+			WRENDVEL
+		GOTO
+			V67EXITX
+V67WORB		SXA,1	SXA,2
+			WORBPOS
+			WORBVEL
+		GOTO
+			V67EXITX
+V67WMID		SXA,1	SXA,2
+# Page 633
+			WMIDPOS
+			WMIDVEL
+V67EXITX	CLEAR	CLEAR
+			ORBWFLAG
+			RENDWFLG
+		EXIT
+		TCF	ENDEXT
+V67WW		STQ	BOV
+			S2
+			+1
+		CALL
+			INTSTALL
+		SSP	DLOAD
+			S1
+		DEC	6
+			ZEROVECS
+		STORE	WWPOS
+		STORE	WWVEL
+		STORE	WWOPT
+		AXT,1
+		DEC	36
+NXPOSVEL	VLOAD*	VSQ
+			W +36D,1
+		DAD
+			WWPOS
+		STORE	WWPOS
+		VLOAD*	VSQ
+			W +90D,1
+		DAD
+			WWVEL
+		STORE	WWVEL
+		TIX,1	SQRT
+			NXPOSVEL
+		STODL	WWVEL
+			WWPOS
+		SQRT
+		STORE	WWPOS
+		BOV	GOTO
+			+2
+			V67XXX
+		DLOAD
+			DPPOSMAX
+		STORE	WWPOS
+		STORE	WWVEL
+V67XXX		DLOAD	DSU
+			WWPOS
+			FT99999
+		BMN	DLOAD
+			+3
+			FT99999
+# Page 634
+		STORE	WWPOS
+		LXA,1	SXA,1
+			S2
+			QPRET
+		EXIT
+		TC	POSTJUMP
+		CADR	INTWAKE
+WWPOS		=	RANGE
+WWVEL		=	RRATE
+WWOPT		=	RTHETA
+V06N99A		VN	0699
+FT99999		2DEC	30479 B-19
+
+V67DEC2		2DEC	2 B-14
+
+		SBANK=	LOWSUPER
+
diff --git a/P30-P37.s b/P30-P37.s
new file mode 100644
index 0000000..5ded0b3
--- /dev/null
+++ b/P30-P37.s
@@ -0,0 +1,630 @@
+# Copyright:	Public domain.
+# Filename:	P30-P37.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:	635-648
+# Mod history:	2009-05-10 RSB	Adapted from the Colossus249/ file 
+#				of the same name, using Comanche055 page 
+#				images.
+#		2009-05-20 RSB	Corrected BDV -> BOV.
+#
+# 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 635
+		BANK	32
+		
+		SETLOC	P30S1
+		BANK
+		
+		EBANK=	+MGA
+		
+		COUNT	35/P34
+		
+DISPMGA		STQ	EXIT		# USED IN P30
+
+			RGEXIT
+		TC	COMPTGO
+		
+DISP45		CAF	V16N45
+		TC	BANKCALL
+		CADR	GOFLASHR
+		TC	GOTOP00H
+		TC	END45
+		TC	DISP45
+P30PHSI		TC	PHASCHNG
+		OCT	14
+		TCR	ENDOFJOB
+END45		TC	INTPRET
+		CLEAR	GOTO
+			TIMRFLAG
+			RGEXIT
+			
+COMPTGO		EXTEND			# USED TO COMPUTE TTOGO
+		QXCH	PHSPRDT6	# ** GROUP 6 TEMPORARY USED, BEWARE **
+		
+		TC	UPFLAG		# SET TIMRFLAG
+		ADRES	TIMRFLAG	# BIT 11 FLAG 7
+		CAF	ZERO
+		TS	NVWORD1
+		
+		CAF	ONE
+		TC	WAITLIST
+		EBANK=	TIG
+		2CADR	CLOKTASK
+
+		TC	2PHSCHNG
+		OCT	40036		# 6.3SPOT FOR CLOKTASK
+		OCT	05024		# GROUP 4 CONTINUES HERE
+		OCT	13000
+		
+		TC	PHSPRDT6
+# Page 636
+# PROGRAM DESCRIPTION P30	DATE 3-6-67
+# MOD. I BY S. ZELDIN:  TO ADD P31 AND ADAPT P30 FOR P31 USE.	22DEC67
+#
+# FUNCTIONAL DESCRIPTION
+#	P30	(EXTERNAL DELTA-V TARGETING PROGRAM)
+#		ACCEPTS ASTRONAUT INPUTS OF TIG,DELV(LV) AND COMPUTES, FOR DISPLAY,
+#		APOGEE, PERIGEE, DELV(MAG), MGA ASSOCIATED WITH DESIRED MANEUVER.
+#	P31	(GENERAL LAMBERT AIMPOINT GUIDANCE)
+#		A GROUND RULE FOR P31 IS THE ANGLE BETWEEN THE TARGET VECTOR AND
+#		POSITION VECTOR AT TIG IS NOT 165-195 DEGREES APART
+#		BASED ON STORED INPUT OF OFFSET TARGET(B+29) AND DELTA T TRANS, AND
+#		ASTRONAUT ENTRY OF TIG, P31 COMPUTES REQUIRED VELOCITY FOR MANEUVER
+#		AND, FOR DISPLAY, APOGEE, PERIGEE, DELV(7AG), +MGA ASSOCIATED WITH
+#		DESIRED MANEUVER.
+#
+# THE FOLLOWING SUBROUTINES ARE USED IN P30 AND P31
+#	S30.1 (P30 ONLY)
+#	S31.1 (P31 ONLY)
+#	P30/P31 -- DISPLAYS TIG
+#	CNTUP30 -- DISPLAYS DELV(LV)
+#	PARAM30 -- DISPLAYS APOGEE, PERIGEE, DELV(MAG), MGA, TIME FROM TIG,
+#		   MARKS SINCE LAST THRUSTING MANEUVER
+#
+# CALLING SEQUENCE VIA JOB FROM V37
+#
+# EXIT VIA V37 OR GOTOP00H
+#
+# OUTPUT FOR POWERED FLIGHT
+#	VTIG	X
+#	RTIG	X	SEE S30.1
+#	DELVSIN	X
+#	VGDISP
+#	RTARG	X
+#	TPASS4	X	SEE S31.1
+#		X
+
+		COUNT	35/P30
+		
+P30		TC	P30/P31
+		TC	CNTNUP30
+		TC	DOWNFLAG	# RESET UPDATFLG
+		ADRES	UPDATFLG	# BIT 7 FLAG 1
+		TC	INTPRET
+		CALL	
+			S30.1
+		EXIT
+		TC	PARAM30
+		TC	UPFLAG
+# Page 637
+		ADRES	XDELVFLG	# SET XDELVFLG BIT 8 FLAG 2
+		TCF	GOTOP00H
+		
+P31		TC	P30/P31
+		TC	DOWNFLAG
+		ADRES	UPDATFLG	# RESET UPDATFLG BIT 7 FLAG 1
+		TC	DOWNFLAG
+		ADRES	NORMSW		# RESET NORMSW BIT 10 FLAG 7
+		TC	INTPRET
+		CALL
+			S31.1
+		EXIT
+		TC	CNTNUP30
+		TC	PARAM30
+		TC	DOWNFLAG
+		ADRES	XDELVFLG	# BIT 8 FLAG 2.
+		TCF	GOTOP00H
+		
+P30/P31		XCH	Q
+		TS	P30/31RT
+		TC	UPFLAG
+		ADRES	UPDATFLG	# SET UPDATFLG BIT 7 FLAG 1
+		TC	UPFLAG
+		ADRES	TRACKFLG	# SET TRACKFLG BIT 5 FLAG 1
+		CAF	V06N33		# T OF IGN
+		TC	BANKCALL
+		CADR	GOFLASHR
+		TCF	GOTOP00H
+		TC	P30/31RT
+		TCF	P30/P31 +4
+		TC	PHASCHNG
+		OCT	00014
+		TC	ENDOFJOB
+		
+CNTNUP30	XCH	Q
+		TS	P30/RET
+		CAF	V06N81
+		TC	BANKCALL
+		CADR	GOFLASH
+		TCF	GOTOP00H
+		TC	P30/RET
+		TCF	CNTNUP30 +2
+PARAM30		XCH	Q
+		TS	P30/31RT
+		CAF	V06N42
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H	# ON TERMINATION GOTOP00H
+		TCF	REFTEST		# ON PROCEED GO DO REFTEST
+# Page 638
+		TCF	PARAM30 +2
+REFTEST		CAF	BIT13
+		MASK	STATE +3	# REFSMFLAG
+		EXTEND
+		BZF	NOTSET		# REFSMFLAG =0, THEN BRANCH TO NOTSET
+		TC	INTPRET
+		VLOAD	PUSH
+			DELVSIN
+		CALL
+			GET+MGA
+		GOTO
+			FLASHMGA
+NOTSET		EXTEND
+		DCS	MARSDP
+		DXCH	+MGA		# +MGA, +MGA+1 CONTAINS (-00001)
+		TC	INTPRET
+FLASHMGA	CALL
+			DISPMGA
+		EXIT
+		TC	P30/31RT
+MARSDP		OCT	00000		# (00000) (16440) = (+00001)
+		OCT	35100
+					# ( .01 ) DEGREES IN THE LOW ORDER REGISTER
+			
+V06N33		VN	0633
+V06N42		VN	0642
+V16N35		VN	1635
+V06N45		VN	0645
+
+# Page 639
+# PROGRAM DESCRPTION S30.1	DATE 9NOV66
+# MOD NO 1			LOG SECTION P30,P37
+# MOD BY RAMA AIYAWAR **
+# MOD.2 BY S.ZELDIN -- TO CORRECT MOD.1 FOR COLOSSUS		29DEC67
+#
+# FUNCTIONAL DESCRIPTION
+#	BASED ON STORED TARGET PARAMETERS (R OF IGNITION (RTIG), V OF
+#	IGNITION (VTIG), TIME OF IGNITION (TIG)), DELV(LV), COMPUTE PERIGEE ALTITUDE
+#	APOGEE ALTITUDE AND DELTA-V REQUIRED IN REF. COORDS. (DELVSIN).
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		S30.1
+#
+# NORMAL EXIT MODE
+#	AT L+2 OR CALLING SEQUENCE (GOTO L+2)
+#
+# SUBROUTINES CALLED
+#	THISPREC
+#	PERIAPO
+#
+# ALARM OR ABORT EXIT MODES
+#	NONE
+#
+# ERASABLE INITIALIZATION REQUIRED
+#	TIG		TIME OF IGNITION	DP B28CS
+#	DELVSLV		SPECIFIED DELTA-V IN LOCAL VERT.
+#			COORDS. OF ACTIVE VEHICLE AT
+#			TIME OF IGNITION	VCT. B+7 M/CS
+#
+# OUTPUT
+#	RTIG		POSITION AT TIG		VCT. 	B+29 M
+#	VTIG		VELOCITY AT TIG		VCT. 	B+7 M
+#	HAPO		APOGEE ALT.		DP 	B+29 M
+#	HPER		PERIGEE ALT.		DP 	B+29 M
+#	DELVSIN		DELVSLV IN REF COORDS	VCT. 	B+7 M/CS
+#	VGDISP		MAG. OF DELVSIN		DP 	B+7 M/CS
+#
+# DEBRIS	QTEMP	TEMP.ERASABLE
+#		QPRET, MPAC
+#		PUSHLIST
+
+		SETLOC	P30S1A
+		BANK
+		
+		COUNT	35/S30S
+		
+S30.1		STQ	DLOAD
+			QTEMP
+			TIG		# TIME IGNITION SCALED AT 2(+28)CS
+		STCALL	TDEC1
+			THISPREC	# ENCKE ROUTINE FOR 
+			
+		VLOAD	SXA,2
+			VATT
+			RTX2
+		STOVL	VTIG
+# Page 640
+			RATT
+		STORE	RTIG
+		STORE	RACT3
+		VXV	UNIT
+			VTIG
+		STCALL	UNRM
+			LOMAT
+		VLOAD	VXM
+			DELVSLV
+			0
+		VSL1	SXA,1
+			RTX1
+		STORE	DELVSIN
+		ABVAL
+		STOVL	VGDISP		# MAG DELV
+			RTIG
+		PDVL	VAD
+			DELVSIN	
+			VTIG
+		CALL
+			PERIAPO1
+		CALL
+			SHIFTR1	
+		CALL			
+			MAXCHK
+		STODL	HPER		# PERIGEE ALT B+29
+			4D
+		CALL
+			SHIFTR1	
+		CALL		
+			MAXCHK
+		STCALL	HAPO		# APOGEE ALT B+29
+			QTEMP
+
+# Page 641
+# S31.1 PROGRAM DESCRIPTION		28DEC67
+# MOD.1 BY S.ZELDIN
+#
+# S31.1 COMPUTES DELV IN REF AND LV COORDS,MAG OF DELV,INTERCEPT TIME,
+# APOGEE AND PERIGEE ALT FOR REQUIRED MANEUVER
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		S31.1
+#
+# NORMAL EXIT MODE
+#	AT L +2 OF CALLING SEQUENCE (GOTO L+2)
+#
+# SUBROUTINES CALLED
+#	AGAIN
+#	PERIAPO1
+#	SHIFTR1
+#	MIDGIM
+#
+# NO ALARM OR ABORT MODES
+#
+# INPUT
+#	DELLT4		DP	+28
+#	TIG		DP	+28
+#	RTARG		VCT	+29
+#
+# OUTPUT
+#	DELVLVC		VCT	+7
+#	VGDISP		DP	+7
+#	HAPO		DP	+29
+#	HPER		DP	+29
+#	TPASS4		DP	+28
+#
+# DEBRIS -- QTEMP
+
+S31.1		STQ	DLOAD
+			QTEMP
+			TIG
+		STCALL	TDEC1	
+			AGAIN		# RETURNS RTX2,RTX1,RATT,VATT,VIPRIME
+		VLOAD	PDVL		# DELUEET3
+			RTIG
+			VIPRIME
+		CALL
+			PERIAPO1
+		CALL
+			SHIFTR1
+		CALL
+			MAXCHK
+		STODL	HPER		# B29
+			4D
+		CALL
+			SHIFTR1
+		CALL
+			MAXCHK	
+		STOVL	HAPO		# B29
+# Page 642
+			DELVEET3
+		STORE	0
+		SET	CALL
+			AVFLAG
+			MIDGIM		# GET DELVLVC B7 FOR DISPLAY
+		ABVAL
+		STODL	VGDISP		# B+7 FOR DISPLAY
+			DELLT4
+		DAD
+			TIG
+		STCALL	TPASS4		# FOR S40.1
+			QTEMP
+
+# Page 643
+# SUBROUTINE NAME:	DELRSPL		(CONTINUATION OF V 82 IN CSM IF P11 ACTIVE)
+# TRANSFERRED COMPLETELY FROM SUNDISK, P30S REV 33.  9 SEPT 67.
+# MOD NO: 0	MOD BY: ZELDIN		DATE:
+# MOD NO: 1	MOD BY: RR BAIRNSFATHER	DATE: 11 APR 67
+# MOD NO: 2	MOD BY: RR BAIRNSFATHER	DATE: 12 MAY 67		ADD UR.RT CALC WHEN BELOW 300K FT
+# MOD NO: 2.1	MOD BY: RR BAIRNSFATHER	DATE: 5 JULY 67		FIX ERROR ON MOD. 2
+# MOD NO: 3	MOD BY: RR BAIRNSFATHER	DATE: 12 JUL 67		CHANGE SIGN OF DISPLAYED ERROR.
+# MOD 4		MOD BY  S.ZELDIN	DATE: 3 APRIL 68	CHANGE EQUATIONS FOR L/D=.16 WHICH REPLA
+#
+# FUNCTION:	CALCULATE (FOR DISPLAY ON CALL) AN APPROXIMATE MEASURE OF IN-PLANE SPLASH DOWN
+#		ERROR.  IF THE FREE-FALL TRANSFER ANGLE TO 300K FT ABOVE PAD RADIUS IS POSITIVE:
+#		SPLASH ERROR= -RANGE TO TARGET + FREE-FALL TRANSFER ANGLE + ESTIMATED ENTRY ANGLE.
+#		THE TARGET LOCATION AT ESTIMATED TIME OF IMPACT IS USED.  IF THE FREE-FALL TRANSFER
+#		ANGLE IS NEGATIVE:  SPASH ERROR= -RANGE TO TARGET.
+#		THE PRESENT TARGET LOCATION IS USED.
+#
+# CALLING SEQUENCE: CALLED AFTER SR30.1 IF IN CSM AND IF P11 OPERATING (UNDER CONTROL OF V82)
+#
+# SUBROUTINES CALLED:  VGAMCALC, TFF/TRIG, LALOTORV.
+#
+# EXIT:		RETURN DIRECTLY TO V 82 PROG. AT SPLRET
+#
+# ERASABLE INITIALIZATION:  LEFT BY SR30.1 AND V82GON1
+#
+# OUTPUT:	RSP-RREC RANGE IN REVOLUTIONS.  		DSKY DISPLAY IN N. MI.
+#
+# DEBRIS:	QPRET, PDL0 ... PDL7, PDL10.
+
+# THETA(1)
+
+		BANK	32
+		SETLOC	DELRSPL1
+		BANK
+		COUNT*	$$/P30		# PROGRAMS: P30 EXTERNAL DELTA V
+		
+DELRSPL		STORE	8D
+		BPL	DSU
+			CANTDO		# GONE PAST 300K FT ALT
+			1BITDP
+		BOV	CALL
+			CANTDO		# POSMAX INDICATES NO 300K FT SOLUTION.
+			VGAMCALC	# +GAMMA(REV) IN PMAC,V300 MAG(B-7)=PDL 0
+		PUSH	CALL
+			TFF/TRIG
+		CALL
+			AUGEKUGL
+		PDDL	ACOS		# T ENTRY PDL 6
+			CDELF/2
+		DAD
+			4
+GETARG		STOVL	THETA(1)
+			LAT(SPL)
+		STODL	LAT
+			HI6ZEROS
+		STODL	ALT		# ALT=0 = LAT +4
+			PIPTIME
+# Page 644
+		BON	DLOAD
+			V37FLAG
+			+2
+			TSTART82
+		DSU	DAD
+			8D
+		CLEAR	CALL
+			ERADFLAG
+			LALOTORV	# R RECOV. IN ALPHAV AND MPAC
+
+		UNIT	PDVL
+			RONE
+		UNIT	DOT
+		SL1	ARCCOS
+		BDSU			# ERROR = THETA EST - THETA TARG
+					# NEGATIVE NUMBER SIGNIFIES THAT WILL FALL SHORT.
+					# POSITIVE NUMBER SIGNIFIES THAT WILL OVERSHOOT.
+			THETA(1)
+DELRDONE	STCALL	RSP-RREC	# DOWNRANGE RECOVERY RANGE ERROR	/360
+			INTWAKE0
+		CALL
+			SPLRET
+CANTDO		DLOAD	PDDL		# INITIALIZE ERASE TO DOT TARGET AND UR
+					# FOR RANGE ANGLE.
+			HIDPHALF	# TO PDL 0 FOR DEN INDDV.
+			HI6ZEROS
+		PUSH			# ZERO TO PDL 2 FOR PHI ENTRY
+		STCALL	8D
+			GETARG		# GO SET RSP-RREC =0
+			
+AUGEKUGL	VLOAD
+			X1CON -2
+		STODL	X1 -2
+			0
+		DSU	BMN
+			V(21K)
+			LOOPSET
+		XSU,1	XCHX,2
+			S1
+			X1
+		XCHX,2	DSU
+			S1
+			V(3K)
+		BMN	XCHX,2
+			LOOPSET
+			S1
+		DSU	BMN
+			V(4K)
+			LOOPSET
+		XCHX,2	XCHX,2
+# Page 645
+			S1
+			X1
+		DSU	BMN
+			V(400)
+			LOOPSET
+		SXA,1
+			S1
+LOOPSET		INCR,1	GOTO
+		DEC	1
+			K1K2LOOP
+K2CALC		SXA,1
+			S1
+K1K2LOOP	DLOAD	DSU*
+			0
+			V(32K) +1,1
+		DMP*	DAD*
+			YK1K2 +1,1
+			CK1K2 +1,1
+		PDDL	TIX,1
+			2
+			K2CALC
+		DSU	BDDV
+		PUSH	BOV
+			MAXPHI
+		BMN	DSU
+			MAXPHI
+			MAXPHIC
+		BPL
+			MAXPHI
+PHICALC		DLOAD	DSU		# PHI ENTRY PDL 4D
+			0
+			V(26K)
+		BPL	DLOAD
+			TGR26
+			TLESS26
+		DDV
+			0
+TENT		DMP	RVQ
+			4D
+TGR26		DLOAD	GOTO
+			TGR26CON
+			TENT
+			
+MAXPHI		DLOAD	PDDL
+			MAXPHIC
+		GOTO
+			PHICALC
+MAXPHIC		2DEC	.09259298	# 2000 NM FOR MAXIMUM PHI ENTRY
+
+# Page 646
+
+		COUNT*	$$/P30
+		
+					# 		BELOW
+					# **** TABLE IS INDEXED. KEEP IN ORDER ***
+# Page 641
+		2DEC	7.07304526 E-4		# 5500
+		
+		2DEC	3.08641975 E-4		# 2400
+		
+		2DEC	3.08641975 E-4		# 2400
+		
+		2DEC	-8.8888888 E-3		# -3.2
+		
+		2DEC	2.7777777 E-3		# 1
+		
+CK1K2		2DEC	6.6666666 E-3		# 2.4
+
+		2DEC	0			# 0
+		
+		2DEC*	-1.86909989 E-5 B7* 	# -.443
+		
+		2DEC	0
+		
+		2DEC*	1.11639691 E-3 B7*	# .001225
+		
+		2DEC*	9.56911636 E-4 B7*	# .00105
+		
+YK1K2		2DEC*	2.59733157 E-4 B7*	# .000285
+
+V(400)		2DEC	1.2192 B-7
+
+V(28K)		2DEC	85.344 B-7
+
+V(3K)		2DEC	9.144 B-7
+
+V(24K)		2DEC	73.152 B-7
+
+		2DEC	85.344 B-7
+		
+V(32K)		2DEC	97.536 B-7
+
+V(4K)		2DEC	12.192 B-7
+
+V(21K)		2DEC	64.000 B-7
+
+TLESS26		2DEC*	5.70146688 E7 B-35*	# 8660PHI/V
+
+TGR26CON	2DEC	7.2 E5 B-28		# PHI/3
+
+V(26K)		2DEC	79.248 B-7		# 26000
+
+# Page 647
+
+X1CON		DEC	10
+
+		DEC	8
+		
+		DEC	6
+					# **** TABLE IS INDEXED.  KEEP IN ORDER ***
+					#		ABOVE
+# Page 648
+# ***** AVFLAG/P *****
+#
+# SUBROUTINES USED
+#
+#	UPFLAG
+#	DOWNFLAG
+
+		SETLOC	P30SUBS
+		BANK
+		EBANK=	SUBEXIT
+AVFLAGA		EXTEND			# AVFLAG = CSM
+		QXCH	SUBEXIT
+		TC	DOWNFLAG
+		ADRES	AVFLAG		# BIT 5 FLAG 2
+		CAF	EBANK7
+		TS	EBANK
+		EBANK=	ECSTEER
+		CAF	BIT13
+		TS	ECSTEER		# SET ECSTEER = 1
+		CAF	EBANK4
+		TS	EBANK
+		EBANK=	SUBEXIT
+		TC	SUBEXIT
+AVFLAGP		EXTEND			# AVFLAG = LEM
+		QXCH	SUBEXIT
+		TC	UPFLAG
+		ADRES	AVFLAG		# BIT 5 FLAG 2
+		TC	SUBEXIT
+P20FLGON	EXTEND
+		QXCH	SUBEXIT
+		TC	UPFLAG
+		ADRES	TRACKFLG
+		TC	UPFLAG
+		ADRES	UPDATFLG
+		TC	SUBEXIT		# DP B4
+
+
diff --git a/P30_P37.s b/P30_P37.s
new file mode 100644
index 0000000..34f9ffc
--- /dev/null
+++ b/P30_P37.s
@@ -0,0 +1,193 @@
+# Copyright:	Public domain.
+# Filename:	P30_P37.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	614-617
+# Mod history:	2009-05-17 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#		2009-06-05 RSB	Removed 4 lines of code that shouldn't
+#				have survived from Luminary 131.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 614
+# PROGRAM DESCRIPTION P30	DATE 3-6-67
+#
+# MOD.1 BY RAMA AIYAWAR
+#
+# FUNCTIONAL DESCRIPTIONS
+#	ACCEPT ASTRONAUT INPUTS OF TIG,DELV(LV)
+#	CALL IMU STATUS CHECK ROUTINE (R02)
+#	DISPLAY TIME TO GO, APOGEE, PERIGEE, DELV(MAG), MGA AT IGN
+#	REQUEST BURN PROGRAM
+#
+# CALLING SEQUENCE VIA JOB FROM V37
+#
+# EXIT VIA V37 CALL OR TO GOTOP00H (V34E)
+#
+# SUBROUTINE CALLS --	FLAGUP, PHASCHNG, BANKCALL, ENDOFJOB, GOFLASH, GOFLASHR
+#			GOPERF3R, INTPRET, BLANKET, GOTOP00H, R02BOTH, S30.1,
+#			TIG/N35, MIDGIM, DISPMGA
+#
+# ERASABLE INITIALIZATION -- STATE VECTOR
+#
+# OUTPUT -- 	RINIT, VINIT, +MGA, VTIG, RTIG, DELVSIN, DELVSAB, DELVSLV, HAPO,
+#	    	HPER, TTOGO
+#
+# DEBRIS -- A, L, MPAC, PUSHLIST
+
+		BANK	32
+		SETLOC	P30S
+		BANK
+		EBANK=	+MGA
+		COUNT*	$$/P30
+P30		TC	UPFLAG		# SET UPDATE FLAG
+		ADRES	UPDATFLG
+		TC	UPFLAG		# SET TRACK FLAG
+		ADRES	TRACKFLG
+		
+P30N33		CAF	V06N33		# T OF IGN
+		TC	VNP00H		# RETURN ON PROCEED, P00H ON TERMINATE
+		
+		CAF	V06N81		# DISPLAY DELTA V (LV)
+		TC	VNP00H		#	REDISPLAY ON RECYCLE
+					
+		TC	DOWNFLAG	# RESET UPDATE FLAG
+		ADRES	UPDATFLG
+		TC	INTPRET
+		CALL
+			S30.1
+		SET	EXIT
+			UPDATFLG
+PARAM30		CAF	V06N42		# DISPLAY APOGEE,PERIGEE,DELTA V
+		TC	VNP00H
+# Page 615		
+		
+		TC	INTPRET
+		SETGO
+			XDELVFLG	# FOR P40'S: EXTERNAL DELTA-V GUIDANCE.
+			REVN1645	# TRKMKCNT, T60, +MGA  DISPLAY
+			
+V06N33		VN	0633
+V06N42		VN	0642
+
+# Page 616
+# PROGRAM DESCRPTION S30.1	DATE 9NOV66
+# MOD NO 1			LOG SECTION P30,P37
+# MOD BY RAMA AIYAWAR **
+#
+# FUNCTIONAL DESCRIPTION
+#	BASED ON STORED TARGET PARAMETERS (R OF IGNITION (RTIG), V OF
+#	IGNITION (VTIG), TIME OF IGNITION (TIG)), COMPUTE PERIGEE ALTITUDE
+#	APOGEE ALTITUDE AND DELTAV REQUIRED (DELVSIN).
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		s30.1
+#
+# NORMAL EXIT MODE
+#	AT L+2 OR CALLING SEQUENCE (GOTO L+2)
+#
+# SUBROUTINES CALLED
+#	LEMPREC
+#	PERIAPO
+#
+# ALARM OR ABORT EXIT MODES
+#	NONE
+#
+# ERASABLE INITIALIZATION REQUIRED
+#	TIG		TIME OF IGNITION	DP B28CS
+#	DELVSLV		SPECIFIED DELTA-V IN LOCAL VERT.
+#			COORDS. OF ACTIVE VEHICLE AT
+#			TIME OF IGNITION	VECTOR B+7 METERS/CS
+#
+# OUTPUT
+#	RTIG		POSITION AT TIG		VECTOR B+29 METERS
+#	VTIG		VELOCITY AT TIG		VECTOR B+29 METERS/CS
+#	PDL 4D		APOGEE ALTITUDE		DP B+29 M, B+27 METERS.
+#	HAPO		APOGEE ALTITUDE		DP B+29 METERS
+#	PDL 8D		PERIGEE ALTITUDE	DP B+29 M, B+27 METERS.
+#	HPER		PERIGEE ALTITUDE	DP B+29 METERS
+#	DELVSIN		SPECIFIED DELTA-V IN INTERTIAL
+#			COORD. OF ACTIVE VEHICLE AT
+#			TIME OF IGNITION	VECTOR B+7 METERS/CS
+#	DELVSAB		MAG. OF DELVSIN		VECTOR B+7 METERS/CS
+#
+# DEBRIS	QTEMP	TEMP.ERASABLE
+#		QPRET, MPAC
+#		PUSHLIST
+
+		SETLOC	P30S1
+		BANK
+		
+		COUNT*	$$/S30S
+		
+S30.1		STQ	DLOAD
+			QTEMP
+			TIG		# TIME IGNITION SCALED AT 2(+28)CS
+		STCALL	TDEC1
+			LEMPREC		# ENCKE ROUTINE FOR LEM
+			
+		VLOAD	SXA,2
+# Page 617
+			RATT
+			RTX2
+		STORE	RTIG		# RADIUS VECTOR AT IGNITION TIME
+		UNIT	VCOMP
+		STOVL	DELVSIN		# ZRF/LV IN DELVSIN SCALED AT 2
+			VATT		# VELOCITY VECTOR AT TIG, SCALED 2(7) M/CS
+		STORE	VTIG
+		VXV	UNIT
+			RTIG
+		SETPD	SXA,1
+			0
+			RTX1
+		PUSH	VXV		# YRF/LV PDL 0 SCALED AT 2
+			DELVSIN
+		VSL1	PDVL
+		PDVL	PDVL		# YRF/LV PDL 6 SCALED AT 2
+			DELVSIN		# ZRF/LV PDL 12D SCALED AT 2
+			DELVSLV
+		VXM	VSL1
+			0
+		STORE	DELVSIN		# DELTAV IN INERT. COOR. SCALED TO B+7M/CS
+		ABVAL
+		STOVL	DELVSAB		# DELTA V MAG.
+			RTIG		# (FOR PERIAPO)
+		PDVL	VAD		# VREQUIRED = VTIG + DELVSIN (FOR PERIAPO)
+			VTIG
+			DELVSIN
+		CALL
+			PERIAPO1
+		CALL
+			SHIFTR1		# RESCALE IF NEEDED
+		CALL			# LIMIT DISPLAY TO 9999.9 N. MI.
+			MAXCHK
+		STODL	HPER		# PERIGEE ALT 2(29) METERS FOR DISPLAY
+			4D
+		CALL
+			SHIFTR1		# RESCALE IF NEEDED
+		CALL			# LIMIT DISPLAY TO 9999.9 N. MI.
+			MAXCHK
+		STCALL	HAPO		# APOGEE ALT 2(29) METERS FOR DISPLAY
+			QTEMP
+			
+
diff --git a/P32-P33_P72-P73.s b/P32-P33_P72-P73.s
new file mode 100644
index 0000000..20889f6
--- /dev/null
+++ b/P32-P33_P72-P73.s
@@ -0,0 +1,1408 @@
+# Copyright:	Public domain.
+# Filename:	P32-P33_P72-P73.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:	649-683
+# Mod history:	2009-05-09 RSB	Adapted from the Luminary131/ file
+#				P32-P35_P72-P75.agc and Comanche055 page 
+#				images.
+#		2009-05-20 RSB	Corrected CSI/COM3 -> CSI/CDH3,
+#				CSI/CDHI -> CSI/CDH1, CDHTAB -> CDHTAG,
+#				changed a SETLOC from CSI/CDH to CSI/CDH1,
+#				a SETLOC CSI/CDH1 to CSIPROG.
+#		2009-05-21 RSB	Changed a P32/P72D to P32/P72E in 
+#				P32/P72D.  DP1/4TH changed to DP1/4 in 
+#				CDHMVR.
+#
+# 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 649
+# COELLIPTIC SEQUENCE INITIATION (CSI) PROGRAMS (P32 AND P72)
+#
+# MOD NO -1		LOG SECTION -- P32-P35, P72-P75
+# MOD BY WHITE, P.	DATE 1 JUNE 67
+#
+# PURPOSE
+#	(1)	TO CALCULATE PARAMETERS ASSOCIATED WTIH THE FOLLOWING
+#		CONCENTRIC FLIGHT PLAN MANEUVERS -- THE CO-ELLIPTIC SEQUENCE
+#		INITIATION (CSI) MANEUVER AND THE CONSTANT DELTA ALTITUDE
+#		(CDH) MANEUVER.
+#	(2)	TO CALCULATE THESE PARAMETERS BASED UPON MANEUVER DATA
+#		APPROVED AND KEYED INTO THE DSKY BY THE ASTRONAUT.
+#	(3)	TO DISPLAY TO THE ASTRONAUT AND THE GROUND DEPENDENT VARIABLES
+#		ASSOCIATED WITH THE CONCENTRIC FLIGHT PLAN MANEUVERS FOR
+#		APPROVAL BY THE ASTRRONAUT/GROUND.
+#	(4)	TO STORE THE CSI TARGET PARAMETERS FOR USE BY THE DESIRED
+#		THRUSTING PROGRAM.
+#
+# ASSUMPTIONS
+#	(1)	AT A SELECTED TPI TIME THE LINE OF SIGNT BETWEEN THE ACTIVE
+#		AND PASSIVE VEHICLES IS SELECTED TO BE A PRESCRIBED ANGLE (E)
+#		FROM THE HORIZONTAL PLANE DEFINED BY THE ACTIVE VEHICLE
+#		POSITION.
+#	(2)	THE TIME BETWEEN CSI IGNITION AND CDH IGNITION MUST BE
+#		COMPUTED TO BE GREATER THAN 10 MINUTES FOR SUCCESSFUL
+#		COMPLETION OF THE PROGRAM.
+#	(3)	THE TIME BETWEEN CDH IGNITION AND TPI IGNITION MUST BE
+#		COMPUTED TO BE GREATER THAN 10 MINUTES FOR SUCCESSFUL
+#		COMPLETION OF THE PROGRAM.
+#	(4)	CDH DELTA V IS SELECTED TO MINIMIZE THE VARIATION OF THE
+#		ALTITUDE DIFFERENCE BETWEEN THE ORBITS.
+#	(5)	CSI BURN IS DEFINED SUCH THAT THE IMPULSIVE DELTA V IS IN THE
+#		HORIZONTAL PLANE DEFINED BY THE ACTIVE VEHICLE POSITION AT CSI
+#		IGNITION.
+#	(6)	THE PERICENTER ALTITUDE OF THE ORBIT FOLLOWING CSI AND CDH
+#		MUST BE GREATER THAN 35,000 FT (LUNAR ORBIT) OR 85 NM (EARTH
+#		ORBIT) FOR SUCCESSFUL COMPLETION OF THIS PROGRAM.
+#	(7)	THE CSI AND CDH MANEUVERS ARE ORIGINALLY ASSUMED TO BE
+#		PARALLEL TO THE PLANE OF THE CSM ORBIT.  HOWEVER, CREW
+# Page 650
+#		MODIFICATION OF DELTA V (LV) COMPONENTS MAY RESULT IN AN
+#		OUT-OF-PLANE CSI MANEUVER
+#	(8)	STATE VECTOR UPDATES BY P27 ARE DISALLOWED DURING AUTOMATIC
+#		STATE VECTOR UPDATING INITIATED BY P20 (SEE ASSUMPTION 10).
+#	(9)	COMPUTED VARIABLES MAY BE STORED FOR LATER VERIFICATION BY
+#		THE GROUND.  THESE STORAGE CAPABILITIES ARE NORMALLY LIMITED
+#		ONLY TO THE PARAMETERS FOR ONE THRUSTING MANEUVER AT A TIME
+#		EXCEPT FOR CONCENTRIC FLIGHT PLAN MANEUVER SEQUENCES.
+#	(10)	THE RENDEZVOUS RADAR MAY OR MAY NOT BE USED TO UPDATE THE LM
+#		OR CSM STATE VECTORS FOR THIS PROGRAM.  IF RADAR USE IS
+#		DESIRED THE RADAR WAS TURNED ON AND LOCKED BY THE CSM BY
+#		PREVIOUS SELECTION OF P20.  RADAR SIGHTING MARKS WILL BE MADE
+#		AUTOMATICALLY APPROXIMATELY ONCE A MINUTE WHEN ENABLED BY THE
+#		TRACK AND UPDATE FLAGS (SEE P20).  THE RENDEZVOUS TRACKING
+#		MARK COUNTER IS ZEROED BY THE SELECTION OF P20 AND AFTER EACH
+#		THRUSTING MANEUVER.
+#	(11)	THE ISS NEED NOT BE ON TO COMPLETE THIS PROGRAM.
+#	(12)	THE OPERATION OF THE PROGRAM UTILIZES THE FOLLOWING FLAGS --
+#
+#			ACTIVE VEHICLE FLAG -- DESIGNATES THE VEHICLE WHICH IS
+#			DOING RENDEZVOUS THRUSTING MANEUVERS TO THE PROGRAM WHICH
+#			CALCULATES THE MANEUVER PARAMETERS.  SET AT THE START OF
+#			EACH RENDEZVOUS PRE-THRUSTING PROGRAM.
+#
+#			FINAL FLAG -- SELECTS FINAL PROGRAM DISPLAYS AFTER CREW HAS
+#			COMPLETED THE FINAL MANEUVER COMPUTATION AND DISPLAY
+#			CYCLE.
+#
+#			EXTERNAL DELTA V STEERING FLAG -- DESIGNATES THE TYPE OF
+#			STEERING REQUIRED FOR EXECUTION OF THIS MANEUVER BY THE
+#			THRUSTING PROGRAM SELECTED AFTER COMPLETION OF THIS
+#			PROGRAM.
+#
+#	(13)	IT IS NORMALLY REQUIRED THAT THE ISS BE ON FOR 1 HOUR PRIOR TO
+#		A THRUSTING MANEUVER.
+#
+#	(14)	THIS PROGRAM IS SELECTED BY THE ASTRONAUT BY DSKY ENTRY
+#
+#			P32 IF THIS VEHICLE IS ACTIVE VEHICLE.
+#
+#			P72 IF THIS VEHICLE IS THE PASSIVE VEHICLE.
+#
+# INPUT
+#	(1)	TCSI		TIME OF THE CSI MANEUVER
+# Page 651
+#	(2)	NN		NUMBER OF APSIDAL CROSSINGS THRU WHICH THE ACTIVE
+#				VEHICLE ORBIT CAN BE ADVANCED TO OBTAIN THE CDH
+#				MANEUVER POINT.
+#	(3)	ELEV		DESIRED LOS ANGLE AT TPI
+#	(4)	TTPI		TIME OF THE TPI MANEUVER
+#
+# OUTPUT
+#	(1)	TRKMKCNT	NUMBER OF MARKS
+#	(2)	TTOGO		TIME TO GO
+#	(3)	+MGA		MIDDLE GIMBAL ANGLE
+#	(4)	DIFFALT		DELTA ALTITUDE AT CDH
+#	(5)	T1TOT2		DELTA TIME FROM CSI TO CDH
+#	(6)	T2TOT3		DELTA TIME FROM CDH TO TPI
+#	(7)	DELVLVC		DELTA VELOCITY AT CSI -- LOCAL VERTICAL COORDINATES
+#	(8)	DELVLVC		DELTA VELOCITY AT CDH -- LOCAL VERTICAL COORDINATES
+#
+# DOWNLINK
+#	(1)	TCSI		TIME OF THE CSI MANEUVER
+#	(2)	TCDH		TIME OF THE CDH MANEUVER
+#	(3)	TTPI		TIME OF THE TPI MANEUVER
+#	(4)	TIG		TIME OF THE CSI MANEUVER
+#	(5)	DELVEET1	DELTA VELOCITY AT CSI -- REFERENCE COORDINATES
+#	(6)	DELVEET2	DELTA VELOCITY AT CDH -- REFERENCE COORDINATES
+#	(7)	DIFFALT		DELTA ALTITUDE AT CDH
+#	(8)	NN		NUMBER OF APSIDAL CROSSINGS THRU WHICH THE ACTIVE
+#				VEHICLE ORBIT CAN BE ADVANCED TO OBTAIN THE CDH
+#				MANEUVER POINT
+#	(9)	ELEV		DESIRED LOS ANGLE AT TPI
+#
+# COMMUNICATION TO THRUSTING PROGRAMS
+#	(1)	TIG		TIME OF THE CSI MANEUVER
+#	(2)	RTIG		POSITION OF ACTIVE VEHICLE AT CSI -- BEFORE ROTATION
+#				INTO PLANE OF PASSIVE VEHICLE
+#	(3)	VTIG		VELOCITY OF ACTIVE VEHICLE AT CSE -- BEFORE ROTATION
+#				INTO PLANE OF PASSIVE VEHICLE
+#	(4)	DELVSIN		DELTA VELOCITY AT CSI -- REFERENCE COORDINATES
+#	(5)	DELVSAB		MAGNITUDE OF DELTA VELOCITY AT CSI
+#	(6)	XDELVFLG	SET TO INDICATE EXTERNAL DELTA V VG COMPUTATION
+#
+# SUBROUTINES USED
+#	AVFLAGA
+#	AVFLAGP
+#	P20FLGON
+#	VARALARM
+#	BANKCALL
+#	GOFLASH
+#	GOTOP00H
+# Page 652
+#	VNP00H
+#	GOFLASHR
+#	BLANKET
+#	ENDOFJOB
+#	SELECTMU
+#	ADVANCE
+#	INTINT
+#	PASSIVE
+#	CSI/A
+#	S32/33.1
+#	DISDVLVC
+#	VN1645
+
+		BANK	35
+		SETLOC	CSI/CDH1
+		BANK
+		EBANK=	SUBEXIT
+		COUNT	35/P3272
+P32		TC	AVFLAGA
+		TC	P32STRT
+P72		TC	AVFLAGP
+P32STRT		TC	INTPRET
+		DLOAD
+			ZEROVEC
+		STORE	CENTANG
+		EXIT
+		TC	P32/P72A
+ALMXITA		SXA,2
+			CSIALRM
+ALMXIT		LXC,1
+			CSIALRM
+		SLOAD*	EXIT
+			ALARM/TB -1,1
+		CA	MPAC
+		TC	VARALARM
+		CAF	V05N09
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H
+		TC	-4
+P32/P72A	TC	P20FLGON
+		TC	INTPRET
+		DLOAD
+			ZEROVEC
+		STORE	NN
+		EXIT
+		CAF	V06N11		# TCSI
+		TC	VNP00H
+		CAF	V06N55
+# Page 653
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H
+		TC	+2
+		TC	-5
+		CAF	V06N37		# TTPI
+		TC	VNP00H
+		TC	INTPRET
+		DLOAD
+			TCSI
+		STCALL	TIG
+			SELECTMU
+P32/P72B	CALL
+			ADVANCE
+		SETPD	VLOAD
+			0D
+			VPASS1
+		PDVL	PDDL
+			RPASS1
+			TCSI
+		PDDL	PDDL
+			TTPI
+			2PISC
+		SL2	PUSH
+		CALL
+			INTINT
+		CALL
+			PASSIVE
+		CALL
+			CSI/A
+P32/P72C	BON	SET
+			FINALFLG
+			P32/P72D
+			UPDATFLG
+P32/P72D	DLOAD	GOTO
+			T1TOT2
+			P32/P72E
+		SETLOC	CSI/CDH3
+		BANK
+P32/P72E	STORE	T1TOT2
+		DSU	BPL
+			60MIN
+			P32/P72E
+		DLOAD	GOTO
+			T2TOT3
+			P32/P72F
+		SETLOC	CSI/CDH1
+		BANK
+P32/P72F	STORE	T2TOT3
+		DSU	BPL
+# Page 654
+			60MIN
+			P32/P72F
+		EXIT
+		CAF	V06N75
+		TC	VNP00H
+		TC	INTPRET
+		VLOAD	CALL
+			DELVEET1
+			S32/33.1
+		STOVL	DELVEET1
+			RACT2
+		STOVL	RACT1
+			DELVEET2
+		AXT,1	CALL
+		VN	0682
+			DISDVLVC
+		DLOAD
+			TTPI
+		STCALL	TTPIO
+			VN1645
+		GOTO
+			P32/P72B
+
+# Page 655
+# CONSTANT DELTA HEIGHT (CDH) PROGRAMS (P33 AND P73)
+# MOD NO -1			LOC SECTION -- P32-P35, P72-P75
+# MOD BY WHITE, P.		DATE: 1 JUNE 67
+#
+# PURPOSE
+#
+#	(1)	TO CALCULATE PARAMETERS ASSOCIATED WITH THE CONSTANT DELTA
+#		ALTITUDE MANEUVER (CDH).
+#
+#	(2)	TO CALCULATE THESE PARAMETERS BASED UPON MANEUVER DATA
+#		APPROVED AND KEYED INTO THE DSKY BY THE ASTRONAUT.
+#
+#	(3)	TO DISPLAY TO THE ASTRONAUT AND THE GROUND DEPENDENT VARIABLES
+#		ASSOCIATED WITH THE CDH MANEUVER FOR APPROVAL BY THE
+#		ASTRONAUT/GROUND.
+#
+#	(4)	TO STORE THE CDH TARGET PARAMETERS FOR USE BY THE DESIRED
+#		THRUSTING PROGRAM.
+#
+# ASSUMPTIONS
+#
+#	(1)	THIS PROGRAM IS BASED UPON PREVIOUS COMPLETION OF THE
+#		CO-ELLIPTIC SEQUENCE INITIATION (CSI) PROGRAM (P32/P72).
+#		THEREFORE --
+#
+#		(A)	AT A SELECTED TPI TIME (NOW IN STORAGE) THE LINE OF SIGHT
+#			BETWEEN THE ACTIVE AND PASSIVE VEHICLES WAS SELECTED TO BE
+#			A PRESCRIBED ANGLE (E) (NOW IN STORAGE) FROM THE
+#			HORIZONTAL PLANE DEFINED BY THE ACTIVE VEHICLE POSITION.
+#
+#		(B)	THE TIME BETWEEN CSI IGNITION AND CDH IGNITION WAS
+#			COMPUTED TO BE GREATER THAN 10 MINUTES.
+#
+#		(C)	THE TIME BETWEEN CDH IGNITION AND TPI IGNITION WAS
+#			COMPUTED TO BE GREATER THAN 10 MINUTES.
+#
+#		(D)	THE VARIATION OF THE ALTITUDE DIFFERENCE BETWEEN THE
+#			ORBITS WAS MINIMIZED.
+#
+#		(E)	CSI BURN WAS DEFINED SUCH THAT THE IMPULSIVE DELTA V WAS
+#			IN THE HORIZONTAL PLANE DEFINED BY ACTIVE VEHICLE
+#			POSITION AT CSI IGNITION.
+#
+#		(F) 	THE PERICENTER ALTITUDES OF THE ORBITS FOLLOWING CSI AND
+#			CDH WERE COMPUTED TO BE GREATER THAN 35,000 FT FOR LUNAR
+#			ORBIT OR 85 NM FOR EARTH ORBIT.
+#
+#		(G)	THE CSI AND CDH MANEUVERS WERE ASSUMED TO BE PARALLEL TO
+#			THE PLANE OF THE PASSIVE VEHICLE ORBIT.  HOWEVER, CREW
+# Page 656
+#			MODIFICATION OF DELTA V (LV) COMPONENTS MAY HAVE RESULTED
+#			IN AN OUT-OF-PLANE MANEUVER.
+#
+#	(2)	STATE VECTOR UPDATES BY P27 ARE DISALLOWED DURING AUTOMATIC
+#		STATE VECTOR UPDATING INITIATED BY P20 (SEE ASSUMPTION 4).
+#
+#	(3)	COMPUTED VARIABLES MAY BE STORED FOR LATER VERIFICATION BY
+#		THE GROUND.  THESE STORAGE CAPABILITIES ARE NORMALLY LIMITED
+#		ONLY TO THE PARAMETERS FOR ONE THRUSTING MANEUVER AT A TIME
+#		EXCEPT FOR CONCENTRIC FLIGHT PLAN MANEUVER SEQUENCES.
+#
+#	(4)	THE RENDEZVOUS RADAR MAY OR MAY NOT BE USED TO UPDATE THE LM.
+#		OR CSM STATE VECTORS FOR THIS PROGRAM.  IF RADAR USE IS
+#		DESIRED THE RADAR WAS TURNED ON AND LOCKED ON THE CSM BY
+#		PREVIOUS SELECTION OF P20.  RADAR SIGHTING MARKS WILL BE MADE
+#		AUTOMATICALLY APPROXIMATELY ONCE A MINUTE WHEN ENABLED BY THE
+#		TRACK AND UPDATE FLAGS (SEE P20).  THE RENDEZVOUS TRACKING
+#		MARK COUNTER IS ZEROED BY THE SELECTION OF P20 AND AFTER EACH
+#		THRUSTING MANEUVER.
+#
+#	(5)	THE ISS NEED NOT BE ON TO COMPLETE THIS PROGRAM.
+#
+#	(6)	THE OPERATION OF THE PROGRAM UTILIZES THE FOLLOWING FLAGS --
+#
+#			ACTIVE VEHICLE FLAG -- DESIGNATES THE VEHICLE WHICH IS
+#			DOING RENDEZVOUS THRUSTING MANEUVERS TO THE PROGRAM WHICH
+#			CALCULATES THE MANEUVER PARAMETERS.  SET AT THE START OF
+#			EACH RENDEZVOUS PRE-THRUSTING PROGRAM.
+#
+#			FINAL FLAG -- SELECTS FINAL PROGRAM DISPLAYS AFTER CREW HAS
+#			COMPLETED THE FINAL MANEUVER COMPUTATION AND DISPLAY
+#			CYCLE.
+#
+#			EXTERNAL DELTA V STEERING FLAG -- DESIGNATES THE TYPE OF
+#			STEERING REQUIRED FOR EXECUTION OF THIS MANEUVER BY THE
+#			THRUSTING PROGRAM SELECTED AFTER COMPLETION OF THIS
+#			PROGRAM.
+#
+#	(7)	IT IS NORMALLY REQUIRED THAT THE ISS BE ON FOR 1 HOUR PRIOR TO
+#		A THRUSTING MANEUVER.
+#
+#	(8)	THIS PROGRAM IS SELECTED BY THE ASTRONAUT BY DSKY ENTRY.
+#
+#			P33 IF THIS VEHICLE IS ACTIVE VEHICLE.
+#
+#			P73 IF THIS VEHICLE IS PASSIVE VEHICLE.
+#
+# INPUT
+#
+#	(1)	TTPIO	TIME OF THE TPI MANEUVER -- SAVED FROM P32/P72
+# Page 657
+#	(2)	ELEV	DESIRED LOS ANGLE AT TPI -- SAVED FROM P32/P72
+#	(3)	TCDH	TIME OF THE CDH MANEUVER
+#
+# OUTPUT
+#
+#	(1)	TRKMKCNT	NUMBER OF MARKS
+#	(2)	TTOGO		TIME TO GO
+#	(3)	+MGA		MIDDLE GIMBAL ANGLE
+#	(4)	DIFFALT		DELTA ALTITUDE AT CDH
+#	(5)	T2TOT3		DELTA TIME FROM CDH TO COMPUTED TPI
+#	(6)	NOMTPI		DELTA TIME FROM NOMINAL TPI TO COMPUTED TPI
+#	(7)	DELVLVC		DELTA VELOCITY AT CDH -- LOCAL VERTICAL COORDINATES
+#
+# DOWNLINK
+#
+#	(1)	TCDH		TIME OF THE CDH MANEUVER
+#	(2)	TTPI		TIME OF THE TPI MANEUVER
+#	(3)	TIG		TIME OF THE CDH MANEUVER
+#	(4)	DELLVEET2	DELTA VELOCITY AT CDH -- REFERENCE COORDINATES
+#	(5)	DIFFALT		DELTA ALTITUDE AT CDH
+#	(6)	ELEV		DESIRED LOS ANGLE AT TPI
+#
+# COMMUNICATION TO THRUSTING PROGRAMS
+#
+#	(1)	TIG		TIME OF THE CDH MANEUVER
+#	(2)	RTIG		POSITION OF ACTIVE VEHICLE AT CDH -- BEFORE ROTATION
+#				INTO PLANE OF PASSIVE VEHICLE.
+#	(3)	VTIG		VELOCITY OF ACTIVE VEHICLE AT CDH -- BEFORE ROTATION
+#				INTO PLANE OF PASSIVE VEHICLE.
+#	(4)	DELVSIN		DELTA VELOCITY AT CDH -- REFERENCE COORDINATES.
+#	(5)	DELVSAB		MAGNITUDE OF DELTA VELOCITY AT CDH.
+#	(6)	XDELVFLG	SET TO INDICATE EXTERNAL DELTA V VG COMPUTATION.
+#
+# SUBROUTINES USED
+#
+#	AVFLAGA
+#	AVFLAGP
+#	P20FLGON
+#	VNP00H
+#	SELECTMU
+#	ADVANCE
+#	CDHMVR
+#	INTINT3P
+#	ACTIVE
+#	PASSIVE
+#	S33/S34.1
+#	ALARM
+#	BANKCALL
+#	GOFLASH
+#	GOTOP00H
+#	S32/33.1
+# Page 658
+#	VN1645
+
+		COUNT	35/P3373
+		
+P33		TC	AVFLAGA
+		TC	P33/P73A
+P73		TC	AVFLAGP
+P33/P73A	TC	P20FLGON
+		CAF	V06N13		# TCDH
+		TC	VNP00H
+		TC	INTPRET
+		DLOAD
+			TTPIO
+		STODL	TTPI
+			TCDH
+		STCALL	TIG
+			SELECTMU
+P33/P73B	CALL
+			ADVANCE
+		CALL
+			CDHMVR
+		SETPD	VLOAD
+			0D
+			VACT3
+		PDVL	CALL
+			RACT2
+			INTINT3P
+		CALL
+			ACTIVE
+		SETPD	VLOAD
+			0D
+			VPASS2
+		PDVL	CALL
+			RPASS2
+			INTINT3P
+		CALL
+			PASSIVE
+		DLOAD	SET
+			ZEROVEC
+			ITSWICH
+		STCALL	NOMTPI
+			S33/34.1
+		BZE	EXIT
+			P33/P73C
+		TC	ALARM
+		OCT	611
+		CAF	V05N09
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H
+# Page 659		
+		TC	+2
+		TC	P33/P73A
+		TC	INTPRET
+		DLOAD
+			ZEROVEC
+		STCALL	NOMTPI
+			P33/P73C
+		SETLOC	CSI/CDH2
+		BANK
+
+P33/P73C	BON	SET
+			FINALFLG
+			P33/P73D
+			UPDATFLG
+P33/P73D	DLOAD	DAD
+			NOMTPI
+			TTPI
+		STORE	TTPI
+		DSU	GOTO
+			TCDH
+			P33/P73E
+		SETLOC	CSI/CDH1
+		BANK
+		
+P33/P73E	DSU	BPL
+			60MIN
+			P33/P73E
+		DAD
+			60MIN
+		STODL	T1TOT2
+			TTPI
+		DSU	PUSH
+			TTPIO
+P33/P73F	ABS	DSU
+			60MIN
+		BPL	DAD
+			P33/P73F
+			60MIN
+		SIGN	STADR
+		STORE	T2TOT3
+		EXIT
+		CAF	V06N75
+		TC	VNP00H
+		TC	INTPRET
+		VLOAD	CALL
+			DELVEET2
+			S32/33.1
+		STCALL	DELVEET2
+			VN1645
+		GOTO
+# Page 660
+			P33/P73B
+
+# Page 661
+# ***** AVFLAGA/P *****
+
+# Page 662
+# ***** DISDVLVC *****
+#
+# SUBROUTINES USED
+#
+#	S32/33.X
+#	VNP00H
+
+		SETLOC	CDHTAG3
+		BANK
+
+DISDVLVC	STORE	DELVLVC
+		STQ	CALL
+			NORMEX
+			S32/33.X
+		VLOAD	MXV
+			DELVLVC
+			0D
+		VSL1	SXA,1
+			VERBNOUN
+		STORE	DELVLVC
+		EXIT
+		CA	VERBNOUN
+		TC	VNP00H
+		TC	INTPRET
+		GOTO
+			NORMEX
+		SETLOC	FFTAG12
+		BANK
+
+V06N11		VN	0611
+V06N13		VN	0613
+V06N75		VN	0675
+
+V06N50		VN	0650
+
+# Page 663
+
+# ***** CSI/A *****
+#
+# SUBROUTINES USED
+#
+#	VECSHIFT
+#	TIMETHET
+#	PERIAPO
+#	SHIFTR1
+#	INTINT2C
+#	CDHMVR
+#	PERIAPO1
+#	INTINT
+#	ACTIVE
+
+		BANK	34
+		SETLOC	CSIPROG
+		BANK
+		EBANK=	SUBEXIT
+		COUNT	34/CSI
+		
+60MIN		2DEC	360000
+
+ALARM/TB	OCT	00600		# NO 1
+		OCT	00601		#    2
+		OCT	00602		#    3
+		OCT	00603		#    4
+		OCT	00604		#    5
+		OCT	00605		#    6
+		OCT	00606		#    7
+LOOPMX		2DEC	16
+
+INITST		2DEC	.03048 B-7	# INITIAL DELDV = 10 FPS
+
+DVMAX1		2DEC	3.0480 B-7	# MAXIMUM DV1 = 1000 FPS
+
+DVMAX2		2DEC	3.014472 B-7	#		 989 FPS
+
+1DPB2		2DEC	1.0 B-2
+
+1DPB28		2DEC	1
+
+EPSILN1		2DEC	.0003048 B-7	# .1 FPS
+
+
+FIFPSDP		2DEC	-.152400 B-7	# 5 FPS
+
+DELMAX1		2DEC	.6096000 B-7	# 200 FPS
+
+		SETLOC	CSI/CDH
+		BANK
+PMINE		2DEC	157420 B-29	# 84 NM -- MUST BE 8 WORDS BEFORE PMINM
+
+# Page 664
+
+NICKELDP	2DEC	.021336 B-7	# 7 FPS
+
+INITST1		2DEC	.03048 B-7	# INITIAL DELDV = 10 FPS
+
+ONETHTH		2DEC	.0001 B-3
+
+PMINM		2DEC	10668 B-29	# 35000 FT -- MUST BE 8 WORDS AFTER PMINE
+
+		SETLOC	CSIPROG
+		BANK
+
+CSI/A		CLEAR	SET		# INITIALIZE INDICATORS
+			S32.1F1		# DVT1 HAS EXCEEDED MAX INDICATOR
+			S32.1F2		# FIRST PASS FOR NEWTON ITERATION INDICATOR
+		CLEAR	SET
+			S32.1F3A	# 00=1ST 2 PASSES 2ND CYCLE, 01=FIRST CYCLE
+			S32.1F3B	# 10=2ND CYCLE, 11=50 FPS STAGE 2ND CYCLE
+		DLOAD
+			ZEROVEC
+		STORE	LOOPCT
+		STORE	CSIALRM
+CSI/B		SETPD	VLOAD
+			0D
+			RACT1
+		ABVAL	PUSH		# RA1				       B29 PL02D
+		NORM	SR1
+			X2		#				B29-N2+ B1 PL04D
+		PDVL	ABVAL
+			RPASS3
+		NORM	BDDV		# RA1/RP3			        B1 PL02D
+			X1
+		XSU,2	SR*		#					B2
+			X1
+			1,2
+		DAD	DMP		# (1+(RA1/RP3))RA1		B29+B2=B31 PL00D
+			1DPB2
+		NORM	PDDL		#					   PL02D
+			X1
+			RTMU
+		SR1	DDV		#			       B38-B31= B7 PL00D
+		SL*	SQRT		#					B7
+			0 -7,1
+		PDVL	UNIT		#					   PL02D
+			RACT1
+		PDVL	VXV
+			UP1
+		UNIT			# UNIT(URP1 X UVP1 X URA1) = UH1
+		DOT	SL1		# VA1 . UH1				B7
+			VACT1
+		BDSU	STADR		#					   PL00D
+# Page 665
+		STODL	DELVCSI
+			INITST		# 10 FPS
+		STORE	DELDV
+CSI/B1		DLOAD	DAD		# IF LOOPCT = 16
+			LOOPCT
+			1DPB28
+		STORE	LOOPCT
+		DSU	AXT,2
+			LOOPMX
+			6
+		BPL	GOTO
+			SCNDSOL
+			CSI/B2
+			
+		SETLOC	CSIPROG2
+		BANK
+		
+CSI/B2		SETPD
+			0D
+		DLOAD	ABS
+			DELVCSI
+		DSU	BMN
+			DVMAX1
+			CSI/B23
+		AXT,2	BON
+			7
+			S32.1F1
+			SCNDSOL
+		BOFF	BON
+			S32.1F3A
+			CSI/B22		# FLAG 3 NEQ 3
+			S32.1F3B
+			SCNDSOL
+CSI/B22		SET	DLOAD
+			S32.1F1
+			DVMAX2
+		SIGN
+			DELVCSI
+		STCALL	DELVCSI
+			CSI/B23
+			
+		SETLOC	CSIPROG3
+		BANK
+		
+CSI/B23		VLOAD	PUSH
+			RACT1
+		UNIT	PDVL
+			UP1
+		VXV	UNIT		# UNIT (URP1 X UVP1 X URA1) = UH1
+		VXSC	VSL1
+# Page 666		
+			DELVCSI
+		STORE	DELVEET1
+		VAD	BOV
+			VACT1
+			CSI/B23D
+CSI/B23D	STCALL	VACT4
+			VECSHIFT
+		STOVL	VVEC
+		SET
+			RVSW
+		STOVL	RVEC
+			SN359+
+		STCALL	SNTH		# ALSO CSTH
+			TIMETHET
+		SR1	LXA,1
+			RTX1
+		STCALL	HAFPA1
+			PERIAPO
+		CALL
+			SHIFTR1
+		STODL	POSTCSI
+			CENTANG
+		BZE	GOTO
+			+2
+			CIRCL
+		DLOAD
+			ECC
+		DSU	BMN
+			ONETHTH
+			CIRCL
+		DLOAD	CALL
+			R1
+			SHIFTR1
+		SETPD	NORM
+			2D
+			X1
+		PDVL	DOT		#				PL04D
+			RACT1
+			VACT4
+		ABS	DDV
+			02D		# (/RDOTV/)/R1		B36-B29= B7
+		SL*	DSU
+			0,1
+			NICKELDP
+		BMN	DLOAD
+			CIRCL
+			P
+		SL2	DSU
+			1RTEB2		# 1.B.2
+		STODL	14D
+# Page 667		
+			RTSR1/MU
+		SR1	DDV		# (1/ROOTMU)/R1		B-16-B29 = B-45 PL02D
+		PDDL	DMP
+			P
+			R1
+		CALL
+			SHIFTR1
+		SL4	SL1
+		SQRT	DMP		# ((P/MU)**.5)/R1	B14+B-14 = B-31 BL02D
+		BOFF	SL3
+			CMOONFLG
+			CSI/B3
+CSI/B3		PDVL	DOT
+			RACT1
+			VACT4
+		STORE	RDOTV
+		ABS
+		NORM	DMP		# ((P/MU)**.5)RDOTV/R1			PL02D
+			X2
+		XSU,1	SL*		#			B-31+B36-B3 = B2
+			X2
+			3,1
+		STODL	12D
+			ZEROVECS
+		STORE	16D
+		VLOAD	UNIT
+			12D
+		STOVL	SNTH		# ALSO STORES CSTH AND 0
+			RACT1
+		PDVL	SIGN
+			VACT4
+			RDOTV
+		VCOMP	CALL
+			VECSHIFT
+		STOVL	VVEC
+		SETGO
+			RVSW
+			CSINEXT
+			
+SN359+		2DEC	-.000086601
+
+CS359+		2DEC	+.499999992
+
+		SETLOC	CSIPROG4
+		BANK			
+			
+CSINEXT		STCALL	RVEC
+			TIMETHET
+		PDDL	BPL
+			RDOTV
+# Page 668			
+			NTP/2
+		DLOAD	DSU
+			HAFPA1
+		PUSH	GOTO
+			NTP/2
+CIRCL		SETPD	DLOAD
+			00D
+			ZEROVECS
+		PUSH
+NTP/2		DLOAD	DMP
+			NN
+			HAFPA1
+		SL	DSU
+			14D
+		DAD
+			TCSI
+		STORE	TCDH
+		BDSU	AXT,2
+			TTPI
+			5D
+		BMN	SETPD
+			SCNDSOL
+			0D
+		VLOAD	PDVL
+			VACT4
+			RACT1
+		CALL
+			INTINT2C
+		STOVL	RACT2
+			VATT
+		STOVL	VACT2
+			VPASS1
+		SETPD	PDVL
+			0D
+			RPASS1
+		GOTO
+			CSINEXT1
+		
+		SETLOC	CSIPROG5
+		BANK
+			
+CSINEXT1	CALL
+			INTINT2C
+		STOVL	RPASS2
+			VATT
+		STCALL	VPASS2
+			CDHMVR
+		VLOAD	SETPD
+			RACT2
+			0D
+# Page 669			
+		PDVL	CALL
+			VACT3
+			PERIAPO1
+		CALL
+			SHIFTR1
+		STOVL	POSTCDH
+			VACT3
+		SETPD	PDVL
+			0D
+			RACT2
+		PDDL	PDDL
+			TCDH
+			TTPI
+		PDDL	SL2
+			2PISC
+		PUSH	CALL
+			INTINT
+		CALL
+			ACTIVE
+		DLOAD
+			ELEV
+		SETPD	SINE
+			6D
+		PDVL	UNIT
+			RACT3
+		STORE	00D		# URA3 AT 00D
+		PDVL	VXV		# PL14D, PL08D
+			UP1
+		UNIT
+		PDDL	COSINE		# UNIT(URA3 X UVA3 X URA3) = UH3	B1 PL14D
+			ELEV
+		VXSC	STADR		# (COSLOS)(UH3)				B2 PL08D
+		STCALL	18D		#		PLUS
+			CSINEXT2
+			
+		SETLOC	CSIPROG6
+		BANK
+		
+CSINEXT2	DLOAD	VXSC		# (SINLOS)(URA3) = U			B2 PL00D
+		VAD	VSL1
+			18D		#					B1
+		PUSH	DOT		#					   PL06D
+			RACT3		# (U . RA3) = TEMP1	    B1 + B29 = B30
+		SL1	PUSH		#				       B29 PL08D
+		DSQ	TLOAD		# TEMP1**2			       B58
+			MPAC
+		PDVL	DOT		#					   PL11D
+			RACT3
+			RACT3
+		TLOAD	DCOMP		# RA3 . RA3
+# Page 670		
+			MPAC
+		PDVL	DOT		# RP3 . RP3			    B58 PL14D
+			RPASS3
+			RPASS3		#					PL11D
+		TAD	TAD		# TEMP1**2 + RA3.RA3 + RP3.RP3 = TEMP2	PL08D
+		BPL	DLOAD
+			K10RK2
+			LOOPCT
+		DSU	AXT,2
+			1DPB28
+			1D
+		BZE
+			ALMXITA
+		DLOAD	SR1
+			DELDV
+		STORE	DELDV
+		BDSU
+			DVPREV
+		STCALL	DELVCSI
+			CSI/B1
+K10RK2		SQRT	PUSH		# TEMP3 = TEMP2**.5		    B29 PL10D
+		DCOMP	DSU
+			06D		# -TEMP1-TEMP3 = K2 AT 10D
+		STODL	10D		#					PL08D
+		DSU	STADR		#					PL06D
+		STORE	12D		# -TEMP1+TEMP3 = K1 AT 12D
+		ABS
+		STODL	14D
+			10D
+		ABS	DSU
+			14D
+		BMN	DLOAD
+			K2.
+			12D
+		STCALL	10D		# K EQUALS K1
+			K2.
+			
+		SETLOC	CSIPROG7
+		BANK
+			
+K2.		DLOAD
+			10D
+		VXSC	VSL1
+		VAD	UNIT		# V = RA3 + KU UNIT		    B1
+			RACT3
+		PDVL	UNIT
+			RPASS3		#					PL06D
+		PDVL	UNIT
+			VPASS3		#					PL12D
+		VXV	PDVL		# UVP3 X URP3				PL18D
+# Page 671		
+			06D
+			06D
+		VXV	DOT
+			00D
+		STADR			#					PL12D
+		STOVL	12D		# (URP3 X V).(UVP3 X URP3)=TEMP		PL06D
+		DOT	SL1		#					PL00D
+		ARCCOS	SIGN
+			12D		#				     B0
+		SR1	PUSH		# GAMMA = SIGN(TEMP)ARCOS(UNITV.URP3)	PL02D
+		BON	DLOAD
+			S32.1F2
+			FRSTPAS
+			00D		# NOT THE FIRST PASS OF A CYCLE
+		DSU	PDDL		# GAMMA-GAMPREV			     B1 PL04D
+			GAMPREV
+			DELVCSI
+		DSU	NORM		#				     B7
+			DVPREV
+			X1
+		BDDV	PDDL		# (GAM-GAMPREV)/(DV-DVPREV)	 B-6+N1 PL06D
+			02D		#	= SLOPE
+			DELVCSI
+		STORE	DVPREV
+		BOFF	BOFF
+			S32.1F3A
+			THRDCHK
+			S32.1F3B
+			THRDCHK
+		DLOAD	DMP
+			02D
+			GAMPREV
+		BPL	DLOAD
+			FIFTYFPS
+			INITST1
+		SIGN
+			DELDV
+		STORE	DELDV
+		SET	CLEAR
+			S32.1F3A
+			S32.1F3B
+FRSTPAS		DLOAD
+			00D
+		STODL	GAMPREV
+			DELVCSI
+		STCALL	DVPREV
+			CSINEXT3
+			
+		SETLOC	CSIPROG8
+		BANK
+# Page 672					
+			
+CSINEXT3	DSU	CLEAR
+			DELDV
+			S32.1F2
+		STCALL	DELVCSI
+			CSI/B1
+THRDCHK		BON	BON
+			S32.1F3A
+			NEWTN
+			S32.1F3B
+			NEWTN
+FIFTYFPS	DLOAD	SIGN
+			FIFPSDP
+			04D
+		SIGN
+			GAMPREV
+		STORE	DELDV
+		DCOMP	DAD
+			DELVCSI
+		STODL	DELVCSI
+			00D
+		SET	SET
+			S32.1F3B
+			S32.1F3A
+		STCALL	GAMPREV
+			CSI/B2
+NEWTN		DLOAD	NORM
+			04D
+			X2
+		BDDV	XSU,1
+			00D
+			X2
+		SR*
+			0,1
+		STODL	DELDV
+			00D
+		STORE	GAMPREV
+		DLOAD	ABS
+			DELDV
+		PUSH	DSU		#					PL08D
+			EPSILN1
+		BMN	DLOAD
+			CSI/SOL
+		DSU	BMN
+			DELMAX1
+			CSISTEP
+		DLOAD	SIGN
+			DELMAX1
+			DELDV
+		STORE	DELDV
+CSISTEP		DLOAD	DSU
+# Page 673
+			DELVCSI
+			DELDV
+		STCALL	DELVCSI
+			CSI/B1
+CSI/SOL		DLOAD	AXT,2
+			POSTCSI
+			2
+		LXA,1	GOTO
+			RTX1
+			CSINEXT4
+			
+		SETLOC	CSIPROG9
+		BANK
+			
+CSINEXT4	DSU*	BMN
+			PMINE -2,1
+			SCNDSOL
+		AXT,2	DLOAD
+			3
+			POSTCDH
+		DSU*	BMN
+			PMINE -2,1
+			SCNDSOL
+		DLOAD	DSU
+			TCDH
+			TCSI
+		STORE	T1TOT2
+		AXT,2	DSU
+			4
+			600SEC
+		BMN	AXT,2
+			SCNDSOL
+			5
+		DLOAD	DSU
+			TTPI
+			TCDH
+		STORE	T2TOT3
+		DSU	BPL
+			600SEC
+			P32/P72C
+SCNDSOL		BON	BOFF
+			S32.1F3A
+			ALMXIT
+			S32.1F3B
+			ALMXIT
+		SXA,2	DLOAD
+			CSIALRM
+			ZEROVECS
+		CLEAR	SET
+			S32.1F1
+# Page 674			
+			S32.1F2
+		CLEAR	CLEAR
+			S32.1F3A
+			S32.1F3B
+		STCALL	LOOPCT
+			CSI/B
+
+# Page 675
+# ***** ADVANCE *****
+#
+# SUBROUTINES USED
+#	PRECSET
+#	ROTATE
+
+		SETLOC	CDHTAG3
+		BANK
+
+ADVANCE		STQ	DLOAD
+			SUBEXIT
+			TIG
+		STCALL	TDEC1
+			PRECSET
+		SET	VLOAD
+			XDELVFLG
+			VPASS3
+		STORE	VPASS2
+		STOVL	VPASS1
+			RPASS3
+		STORE	RPASS2
+		STORE	RPASS1
+		UNIT	VXV
+			VPASS1
+		UNIT
+		STOVL	UP1
+			RACT3
+		STCALL	RTIG
+			ROTATE
+		STORE	RACT2
+		STOVL	RACT1
+			VACT3
+		STCALL	VTIG
+			ROTATE
+		STORE	VACT2
+		STCALL	VACT1
+			SUBEXIT
+
+# Page 676
+# ***** ROTATE *****
+
+		SETLOC	CDHTAG
+		BANK
+
+ROTATE		PUSH	PUSH
+		DOT	VXSC
+			UP1
+			UP1
+		VSL2	BVSU
+		UNIT	PDVL
+		ABVAL	VXSC
+		VSL1	RVQ
+
+# Page 677
+# ***** INTINTNA *****
+
+		SETLOC	CDHTAG2
+		BANK
+
+INTINT2C	PDDL	PDDL
+			TCSI
+			TCDH
+		PDDL	PUSH
+			TWOPI
+		GOTO
+			INTINT
+INTINT3P	PDDL	PDDL
+			TCDH
+			TTPI
+		PDDL	PUSH
+			ZEROVECS
+		GOTO
+			INTINT
+
+# Page 678
+# ***** S32/33.1 *****
+#
+# SUBROUTINES USED
+#	S32/33.X
+
+		SETLOC	CSI/CDH
+		BANK
+
+S32/33.1	STQ	AXT,1
+			SUBEXIT
+		VN	0681
+		CALL
+			DISDVLVC
+		CALL
+			S32/33.X
+		VLOAD	VXM
+			DELVLVC
+			0D
+		VSL1
+		STORE	DELVSIN
+		PUSH	ABVAL
+		STOVL	DELVSAB
+		GOTO
+			SUBEXIT
+
+# Page 679
+# ***** S32/33.X *****
+
+		SETLOC	CDHTAGS
+		BANK
+
+S32/33.X	SETPD	VLOAD
+			6D
+			UP1
+		VCOMP	PDVL
+			RACT1
+		UNIT	VCOMP
+		PUSH	VXV
+			UP1
+		VSL1
+		STORE	0D
+		RVQ
+
+# Page 680
+# ***** CDHMVR *****
+#
+# SUBROUTINES USED
+#	VECSHIFT
+#	TIMETHET
+#	SHIFTR1
+
+		SETLOC	CDHTAG
+		BANK
+
+CDHMVR		STQ	VLOAD
+			SUBEXIT
+			RACT2
+		PUSH	UNIT
+		STOVL	UNVEC		# UR SUB A
+			RPASS2
+		UNIT	DOT
+			UNVEC
+		PUSH	SL1
+		STODL	CSTH
+		DSQ	PDDL
+			DP1/4
+		SR2	DSU
+		SQRT	SL1
+		PDVL	VCOMP
+		VXV
+			RPASS2
+		DOT	PDDL
+			UP1
+		SIGN	STADR
+		STOVL	SNTH
+			RPASS2
+		PDVL	CALL
+			VPASS2
+			VECSHIFT
+		STOVL	VVEC
+		CLEAR
+			RVSW
+		STCALL	RVEC
+			TIMETHET
+		LXA,2	VSL*
+			RTX2
+			0,2
+		STORE	18D
+		DOT	SL1R
+			UNVEC
+		PDVL	ABVAL		# 0D = V SUB PV
+		SL*	PDVL
+			0,2
+# Page 681			
+			RACT2
+		ABVAL	PDDL		# 2D = LENGTH OF R SUB A
+		DSU
+			02D
+		STODL	DIFFALT		# DELTA H IN METERS		B+29
+			R1A
+		NORM	PDDL		# 2 - R V**/MU				04D
+			X1
+			R1
+		CALL
+			SHIFTR1
+		SR1R	DDV
+		SL*	PUSH
+			0 -5,1
+		DSU	PDDL		# A SUB A			B+29 	04D
+			DIFFALT
+		SR2	DDV		# A SUB P			B+31
+			04D		#				B+2
+		PUSH	SQRT		# A SUB P/A SUB A			06D
+		DMPR	DMP
+			06D
+			00D
+		SL3R	PDDL		# V SUB A V METERS/CS		B+7 	08D
+			02D		# R SUB A MAGNITUDE		B+29
+		NORM	PDDL
+			X1
+			RTMU
+		SR1	DDV		# 2MU 				B+38
+		SL*	PDDL		# 2 MU/R SUBAA			B+14 	10D
+			0 -5,1
+			04D		# ASUBA				B+29
+		NORM	PDDL
+			X2
+			RTMU
+		SR1	DDV
+		SL*	BDSU
+			0 -6,2		# 2U/R - U/A		 B+14 (METERS/CS)SQ
+		PDDL	DSQ		#					10D
+			08D
+		BDSU	SQRT
+		PDVL	VXV		# SQRT(MU(2/R SUB A-1/A SUB A)-VSUBA2)	10D
+			UP1
+			UNVEC
+		UNIT	VXSC
+			10D
+		PDVL	VXSC
+			UNVEC
+			08D
+		VAD	VSL1
+		STADR
+# Page 682		
+		STORE	VACT3
+		VSU
+			VACT2
+		STCALL	DELVEET2	# DELTA VCDH -- REFERENCE COORDINATES
+			SUBEXIT
+
+# Page 683
+# ***** COMPTGO *****
+#
+# SUBROUTINES USED
+#	CLOKTASK
+#	2PHSCHNG
+
+		BANK	35
+		SETLOC	CSI/CDH
+		BANK
+
+		EBANK=	RTRN
+
+		COUNT*	$$/P3575
+
diff --git a/P32-P35_P72-P75.s b/P32-P35_P72-P75.s
new file mode 100644
index 0000000..9f1c7b8
--- /dev/null
+++ b/P32-P35_P72-P75.s
@@ -0,0 +1,1394 @@
+# Copyright:	Public domain.
+# Filename:	P32-P35_P72-P75.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	618-650
+# Mod history:	2009-05-18 RSB	Adapted from the Luminary 131 file of the
+#				same name, as corrected from Luminary 099
+#				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 001 of AGC program LMY99 by NASA 2021112-61
+#	16:27 JULY 14, 1969 
+
+# Page 618
+# COELLIPTIC SEQUENCE INITIATION (CSI) PROGRAMS (P32 AND P72)
+#
+# MOD NO -1		LOG SECTION -- P32-P35, P72-P75
+# MOD BY WHITE, P.	DATE 1 JUNE 67
+#
+# PURPOSE
+
+#	(1)	TO CALCULATE PARAMETERS ASSOCIATED WTIH THE TIME FOLLOWING
+#		CONCENTRIC FLIGHT PLAN MANEUVERS -- THE CO-ELLIPTIC SEQUENCE
+#		INITIATION (CSI) MANEUVER AND THE CONSTANT DELTA ALTITUDE
+#		(CDH) MANEUVER.
+
+#	(2)	TO CALCULATE THESE PARAMETERS BASED UPON MANEUVER DATA
+#		APPROVED AND KEYED INTO THE DSKY BY THE ASTRONAUT.
+
+#	(3)	TO DISPLAY TO THE ASTRONAUT AND THE GROUND DEPENDENT VARIABLES
+#		ASSOCIATED WITH THE CONCENTRIC FLIGHT PLAN MANEUVERS FOR
+#		APPROVAL BY THE ASTRRONAUT/GROUND.
+
+#	(4)	TO STORE THE CSI TARGET PARAMETERS FOR USE BY THE DESIRED
+#		THRUSTING PROGRAM.
+#
+# ASSUMPTIONS
+
+#	(1)	AT A SELECTED TPI TIME THE LINE OF SIGNT BETWEEN THE ACTIVE
+#		AND PASSIVE VEHICLES IS SELECTED TO BE A PRESCRIBED ANGLE (E)
+#		FROM THE HORIZONTAL PLANE DEFINED BY THE ACTIVE VEHICLE
+#		POSITION.
+
+#	(2)	THE TIME BETWEEN CSI IGNITION AND CDH IGNITION MUST BE
+#		COMPUTED TO BE GREATER THAN 10 MINUTES FOR SUCCESSFUL
+#		COMPLETION OF THE PROGRAM.
+
+#	(3)	THE TIME BETWEEN CDH IGNITION AND TPI IGNITION MUST BE
+#		COMPUTED TO BE GREATER THAN 10 MINUTES FOR SUCCESSFUL
+#		COMPLETION OF THE PROGRAM.
+
+#	(4)	CDH DELTA V IS SELECTED TO MINIMIZE THE VARIATION OF THE
+#		ALTITUDE DIFFERENCE BETWEEN THE ORBITS.
+
+#	(5)	CSI BURN IS DEFINED SUCH THAT THE IMPULSIVE DELTA V IS IN THE
+#		HORIZONTAL PLANE DEFINED BY THE ACTIVE VEHICLE POSITION AT CSI
+#		IGNITION.
+
+#	(6)	THE PERICENTER ALTITUDE OF THE ORBIT FOLLOWING CSI AND CDH
+#		MUST BE GREATER THAN 35,000 FT (LUNAR ORBIT) OR 85 NM (EARCH
+#		ORBIT) FOR SUCCESSFUL COMPLETION OF THIS PROGRAM.
+
+#	(7)	THE CSI AND CDH MANEUVERS ARE ORIGINALLY ASSUMED TO BE
+#		PARALLEL TO THE PLANE OF THE CSM ORBIT.  HOWEVER, CREW
+# Page 619
+#		MODIFICATION OF DELTA V (LV) COMPONENTS MAY RESULT IN AN
+#		OUT-OF-PLANE CSI MANEUVER
+
+#	(8)	STATE VECTOR UPDATES BY P27 ARE DISALLOWED DURING AUTOMATIC
+#		STATE VECTOR UPDATING INITIATED BY P20 (SEE ASSUMPTION 10).
+
+#	(9)	COMPUTED VARIABLES MAY BE STORED FOR LATER VERIFICATION BY
+#		THE GROUND.  THESE STORAGE CAPABILITIES ARE NORMALLY LIMITED
+#		ONLY TO THE PARAMETERS FOR ONE THRUSTING MANEUVER AT A TIME
+#		EXCEPT FOR CONCENTRIC FLIGHT PLAN MANEUVER SEQUENCES.
+
+#	(10)	THE RENDEZVOUS RADAR MAY OR MAY NOT BE USED TO UPDATE THE LM
+#		OR CSM STATE VECTORS FOR THIS PROGRAM.  IF RADAR USE IS
+#		DESIRED THE RADAR WAS TURNED ON AND LOCKED BY THE CSM BY
+#		PREVIOUS SELECTION OF P20.  RADAR SIGHTING MARKS WILL BE MADE
+#		AUTOMATICALLY APPROXIMATELY ONCE A MINUTE WHEN ENABLED BY THE
+#		TRACK AND UPDATE FLAGS (SEE P20).  THE RENDEZVOUS TRACKING
+#		MARK COUNTER IS ZEROED BY TEH SELECTION OF P20 AND AFTER EACH
+#		THRUSTING MANEUVER.
+
+#	(11)	THE ISS NEED NOT BE ON TO COMPLETE THIS PROGRAM.
+
+#	(12)	THE OPERATION OF THE PROGRAM UTILIZES THE FOLLOWING FLAGS --
+#
+#			ACTIVE VEHICLE FLAG -- DESIGNATES THE VEHICLE WHICH IS
+#			DOING RENDEZVOUS THRUSTING MANEUVERS TO TEH PROGRAM WHICH
+#			CALCULATES THE MANEUVER PARAMETERS.  SET AT THE START OF
+#			EACH RENDEZVOUS PRE-THRUSTING PROGRAM.
+#
+#			FINAL FLAG -- SELECTES FINAL PROGRAM DISPLAYS AFTER CREW HAS
+#			COMPLETED THE FINAL MANEUVER COMPUTATION AND DISPLAY
+#			CYCLE.
+#
+#			EXTERNAL DELTA V STEERING FLAG -- DESIGNATES THE TYPE OF
+#			STEERING REQUIRED FOR EXECUTION OF THIS MANEUVER BY THE
+#			THRUSTING PROGRAM SELECTED AFTER COMPLETION OF THIS
+#			PROGRAM.
+#
+#	(13)	IT IS NORMALLY REQUIRED THAT THE ISS BE ON FOR 1 HOUR PRIOR TO
+#		A THRUSTING MANEUVER.
+#
+#	(14)	THIS PROGRAM IS SELECTED BY THE ASTRONAUT BY DSKY ENTRY
+#
+#			P32 IF THIS VEHICLE IS ACTIVE VEHICLE.
+#
+#			P72 IF THIS VEHICLE IS THE PASSIVE VEHICLE.
+#
+# INPUT
+
+#	(1)	TCSI		TIME OF THE CSI MANEUVER
+
+# Page 620
+#	(2)	NN		NUMBER OF APSIDAL CROSSINGS THRU WHICH THE ACTIVE
+#				VEHICLE ORBIT CAN BE ADVANCED TO OBTAIN THE CDH
+#				MANEUVER POINT.
+#	(3)	ELEV		DESIRED LOS ANGLE AT TPI
+#	(4)	TTPI		TIME OF THE TPI MANEUVER
+#
+# OUTPUT
+
+#	(1)	TRKMKCNT	NUMBER OF MARKS
+#	(2)	TTOGO		TIME TO GO
+#	(3)	+MGA		MIDDLE GIMBAL ANGLE
+#	(4)	DIFFALT		DELTA ALTITUDE AT CDH
+#	(5)	T1TOT2		DELTA TIME FROM CSI TO CDH
+#	(6)	T2TOT3		DELTA TIME FROM CDH TO TPI
+#	(7)	DELVLVC		DELTA VELOCITY AT CSI -- LOCAL VERTICAL COORDINATES
+#	(8)	DELVLVC		DELTA VELOCITY AT CDH -- LOCAL VERTICAL COORDINATES
+#
+# DOWNLINK
+
+#	(1)	TCSI		TIME OF THE CSI MANEUVER
+#	(2)	TCDH		TIME OF THE CDH MANEUVER
+#	(3)	TTPI		TIME OF THE TPI MANEUVER
+#	(4)	TIG		TIME OF THE CSI MANEUVER
+#	(5)	DELVEET1	DELTA VELOCITY AT CSI -- REFERENCE COORDINATES
+#	(6)	DELVEET2	DELTA VELOCITY AT CDH -- REFERENCE COORDINATES
+#	(7)	DIFFALT		DELTA ALTITUDE AT CDH
+#	(8)	NN		NUMBER OF APSIDAL CROSSINGS THRU WHICH THE ACTIVE
+#				VEHICLE ORBIT CAN BE ADVANCED TO OBTAIN THE CDH
+#				MANEUVER POINT
+#	(9)	ELEV		DESIRED LOS ANGLE AT TPI
+#
+# COMMUNICATION TO THRUSTING PROGRAM
+
+#	(1)	TIG		TIME OF THE CSI MANEUVER
+#	(2)	RTIG		POSITION OF ACTIVE VEHICLE AT CSI -- BEFORE ROTATION
+#				INTO PLANE OF PASSIVE VEHICLE
+#	(3)	VTIG		VELOCITY OF ACTIVE VEHICLE AT CSE -- BEFORE ROTATION
+#				INTO PLANE OF PASSIVE VEHICLE
+#	(4)	DELVSIN		DELTA VELOCITY AT CSI -- REFERENCE COORDINATES
+#	(5)	DELVSAB		MAGNITUDE OF DELTA VELOCITY AT CSI
+#	(6)	XDELVFLG	SET TO INDICATE EXTERNAL DELTA V VG COMPUTATION
+#
+# SUBROUTINES USED
+
+#	AVFLAGA
+#	AVFLAGP
+#	P20FLGON
+#	VARALARM
+#	BANKCALL
+#	GOFLASH
+#	GOTOP00H
+# Page 621
+#	VNP00H
+#	GOFLASHR
+#	BLANKET
+#	ENDOFJOB
+#	SELECTMU
+#	ADVANCE
+#	INTINT
+#	PASSIVE
+#	CSI/A
+#	S32/33.1
+#	DISDVLVC
+#	VN1645
+
+		BANK	35
+		SETLOC	CSI/CDH
+		BANK
+		EBANK=	SUBEXIT
+		COUNT*	$$/P3272
+P32		TC	AVFLAGA
+		TC	P32STRT
+P72		TC	AVFLAGP
+P32STRT		EXTEND
+		DCA	P30ZERO
+		DXCH	CENTANG
+		TC	P32/P72A
+ALMXITA		SXA,2
+			CSIALRM
+ALMXIT		LXC,1
+			CSIALRM
+		SLOAD*	EXIT
+			ALARM/TB -1,1
+		CA	MPAC
+		TC	VARALARM
+		CAF	V05N09
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H
+		TC	-4
+P32/P72A	TC	P20FLGON
+		CAF	P30ZERO
+		TS	NN 	+1
+		TS	TCSI
+		TS	TCSI 	+1
+VN0611		CAF	V06N11		# TCSI
+		TC	VNP00H
+		TC	INTPRET
+		DLOAD	DCOMP
+			TCSI
+		BMN	DLOAD
+			VN0655
+# Page 622
+			TETLEM
+		STCALL	TDEC1
+			PRECSET
+		VLOAD	VSR*
+			RACT3
+			0,2
+		STOVL	RVEC
+			VACT3
+		VSR*	SET
+			0,2
+			RVSW
+		STODL	VVEC
+			DPPOSMAX
+		STCALL	RDESIRED
+			TIMERAD
+		DAD
+			TDEC2
+		STORE	TCSI
+		EXIT
+		TC	VN0611
+VN0655		EXIT
+		CAF	V06N55		# NN, ELEV(RGLOS)
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H
+		TC	+2
+		TC	-5
+		CAF	V06N37		# TTPI
+		TC	VNP00H
+		TC	INTPRET
+		DLOAD
+			TCSI
+		STCALL	TIG
+			SELECTMU
+P32/P72B	CALL
+			ADVANCE
+		SETPD	VLOAD
+			0D
+			VPASS1
+		PDVL	PDDL
+			RPASS1
+			TCSI
+		PDDL	PDDL
+			TTPI
+			TWOPI
+		PUSH	CALL
+			INTINT
+		CALL
+			PASSIVE
+		CALL
+# Page 623
+			CSI/A
+P32/P72C	BON	SET
+			FINALFLG
+			P32/P72D
+			UPDATFLG
+P32/P72D	DLOAD
+			T1TOT2
+P32/P72E	STORE	T1TOT2
+		DSU	BPL
+			60MIN
+			P32/P72E
+		DLOAD
+			T2TOT3
+P32/P72F	STORE	T2TOT3
+		DSU	BPL
+			60MIN
+			P32/P72F
+		EXIT
+		CAF	V06N75
+		TC	VNP00H
+		TC	INTPRET
+		VLOAD	CALL
+			DELVEET1
+			S32/33.1
+		STOVL	DELVEET1
+			RACT2
+		STOVL	RACT1
+			DELVEET2
+		AXT,1	CALL
+		VN	0682
+			DISDVLVC
+		DLOAD
+			TTPI
+		STCALL	TTPIO
+			VN1645
+		GOTO
+			P32/P72B
+
+# Page 624
+# CONSTANT DELTA HEIGHT (CDH) PROGRAMS (P33 AND P73)
+# MOD NO -1			LOC SECTION -- P32-P35, P72-P75
+# MOD BY WHITE, P.		DATE: 1 JUNE 67
+#
+# PURPOSE
+#
+#	(1)	TO CALCULATE PARAMETERS ASSOCIATED WITH THE CONSTANT DELTA
+#		ALTITUDE MANEUVER (CDH).
+#
+#	(2)	TO CALCULATE THESE PARAMETERS BASED UPON MANEUVER DATA
+#		APPROVED AND KEYED INTO THE DSKY BY THE ASTRONAUT.
+#
+#	(3)	TO DISPLAY TO THE ASTRONAUT AND THE GROUND DEPENDENT VARIABLES
+#		ASSOCIATED WITH THE CDH MANEUVER FOR APPROVAL BY THE
+#		ASTRONAUT/GROUND.
+#
+#	(4)	TO STORE THE CDH TARGET PARAMETERS FOR USE BY THE DESIRED
+#		THRUSTING PROGRAM.
+#
+# ASSUMPTIONS
+#
+#	(1)	THIS PROGRAM IS BASED UPON PREVIOUS COMPLETION OF THE
+#		CO-ELLIPTIC SEQUENCE INITIATION (CSI) PROGRAM (P32/P72).
+#		THEREFORE --
+#
+#		(A)	AT A SELECTED TPI TIME (NOW IN STORAGE) THE LINE OF SIGHT
+#			BETWEEN THE ACTIVE AND PASSIVE VEHICLES WAS SELECTED TO BE
+#			A PRESCRIBED ANGLE (E) (NOW IN STORAGE) FROM THE
+#			HORIZONTAL PLANE DEFINED BY THE ACTIVE VEHICLE POSITION.
+#
+#		(B)	THE TIME BETWEEN CSI IGNITION AND CDH IGNITION WAS
+#			COMPUTED TO BE GREATER THAN 10 MINUTES.
+#
+#		(C)	THE TIME BETWEEN CDH IGNITION AND TPI IGNITION WAS
+#			COMPUTED TO BE GREATER THAN 10 MINUTES.
+#
+#		(D)	THE VARIATION OF THE ALTITUDE DIFFERENCE BETWEEN THE
+#			ORBITS WAS MINIMIZED.
+#
+#		(E)	CSI BURN WAS DEFINED SUCH THAT THE IMPULSIVE DELTA V WAS
+#			IN THE HORIZONTAL PLANE DEFINED BY ACTIVE VEHICLE
+#			POSITION AT CSI IGNITION.
+#
+#		(F) 	THE PERICENTER ALTITUDES OF THE ORBITS FOLLOWING CSI AND
+#			CDH WERE COMPUTED TO BE GREATER THAN 35,000 FT FOR LUNAR
+#			ORBIT OR 85 NM FOR EARTH ORBIT.
+#
+#		(G)	THE CSI AND CDH MANEUVERS WERE ASSUMED TO BE PARALLEL TO
+#			THE PLANE OF THE PASSIVE VEHICLE ORBIT.  HOWEVER, CREW
+# Page 625
+#			MODIFICATION OF DELTA V (LV) COMPONENTS MAY HAVE RESULTED
+#			IN AN OUT-OF-PLANE MANEUVER.
+#
+#	(2)	STATE VECTOR UPDATES BY P27 ARE DISALLOWED DURING AUTOMATIC
+#		STATE VECTOR UPDATING INITIATED BY P20 (SEE ASSUMPTION 4).
+#
+#	(3)	COMPUTED VARIABLES MAY BE STORED FOR LATER VERIFICATION BY
+#		THE GROUND.  THESE STORAGE CAPABILITIES ARE NORMALLY LIMITED
+#		ONLY TO THE PARAMETERS FOR ONE THRUSTING MANEUVER AT A TIME
+#		EXCEPT FOR CONCENTRIC FLIGHT PLAN MANEUVER SEQUENCES.
+#
+#	(4)	THE RENDEZVOUS RADAR MAY OR MAY NOT BE USED TO UPDATE THE LM.
+#		OR CSM STATE VECTORS FOR THIS PROGRAM.  IF RADAR USE IS
+#		DESIRED THE RADAR WAS TURNED ON AND LOCKED ON THE CSM BY
+#		PREVIOUS SELECTION OF P20.  RADAR SIGHTING MARKS WILL BE MADE
+#		AUTOMATICALLY APPROXIMATELY ONCE A MINUTE WHEN ENABLED BY THE
+#		TRACK AND UPDATE FLAGS (SEE P20).  THE RENDEZVOUS TRACKING
+#		MARK COUNTER IS ZEROED BY THE SELECTION OF P20 AND AFTER EACH
+#		THRUSTING MANEUVER.
+#
+#	(5)	THE ISS NEED NOT BE ON TO COMPLETE THIS PROGRAM.
+#
+#	(6)	THE OPERATION OF THE PROGRAM UTILIZES THE FOLLOWING FLAGS --
+#
+#			ACTIVE VEHICLE FLAG -- DESIGNATES THE VEHICLE WHICH IS
+#			DOING RENDEZVOUS THRUSTING MANEUVERS TO THE PROGRAM WHICH
+#			CALCULATES THE MANEUVER PARAMETERS.  SET AT THE START OF
+#			EACH RENDEZVOUS PRE-THRUSTING PROGRAM.
+#
+#			FINAL FLAG -- SELECTS FINAL PROGRAM DISPLAYS AFTER CREW HAS
+#			COMPLETED THE FINAL MANEUVER COMPUTATION AND DISPLAY
+#			CYCLE.
+#
+#			EXTERNAL DELTA V STEERING FLAG -- DESIGNATES THE TYPE OF
+#			STEERING REQUIRED FOR EXECUTION OF THIS MANEUVER BY THE
+#			THRUSTING PROGRAM SELECTED AFTER COMPLETION OF THIS
+#			PROGRAM.
+#
+#	(7)	IT IS NORMALLY REQUIRED THAT THE ISS BE ON FOR 1 HOUR PRIOR TO
+#		A THRUSTING MANEUVER.
+#
+#	(8)	THIS PROGRAM IS SELECTED BY THE ASTRONAUT BY DSKY ENTRY.
+#
+#			P33 IF THIS VEHICLE IS ACTIVE VEHICLE.
+#
+#			P73 IF THIS VEHICLE IS PASSIVE VEHICLE.
+#
+# INPUT
+#
+#	(1)	TTPIO	TIME OF THE TPI MANEUVER -- SAVED FROM P32/P72
+# Page 626
+#	(2)	ELEV	DESIRED LOS ANGLE AT TPI -- SAVED FROM P32/P72
+#	(3)	TCDH	TIME OF THE CDH MANEUVER
+#
+# OUTPUT
+#
+#	(1)	TRKMKCNT	NUMBER OF MARKS
+#	(2)	TTOGO		TIME TO GO
+#	(3)	+MGA		MIDDLE GIMBAL ANGLE
+#	(4)	DIFFALT		DELTA ALTITUDE AT CDH
+#	(5)	T2TOT3		DELTA TIME FROM CDH TO COMPUTED TPI
+#	(6)	NOMTPI		DELTA TIME FROM NOMINAL TPI TO COMPUTED TPI
+#	(7)	DELVLVC		DELTA VELOCITY AT CDH -- LOCAL VERTICAL COORDINATES
+#
+# DOWNLINK
+#
+#	(1)	TCDH		TIME OF THE CDH MANEUVER
+#	(2)	TTPI		TIME OF THE TPI MANEUVER
+#	(3)	TIG		TIME OF THE CDH MANEUVER
+#	(4)	DELLVEET2	DELTA VELOCITY AT CDH -- REFERENCE COORDINATES
+#	(5)	DIFFALT		DELTA ALTITUDE AT CDH
+#	(6)	ELEV		DESIRED LOS ANGLE AT TPI
+#
+# COMMUNICATION TO THRUSTING PROGRAMS
+#
+#	(1)	TIG		TIME OF THE CDH MANEUVER
+#	(2)	RTIG		POSITION OF ACTIVE VEHICLE AT CDH -- BEFORE ROTATION
+#				INTO PLANE OF PASSIVE VEHICLE.
+#	(3)	VTIG		VELOCITY OF ACTIVE VEHICLE AT CDH -- BEFORE ROTATION
+#				INTO PLANE OF PASSIVE VEHICLE.
+#	(4)	DELVSIN		DELTA VELOCITY AT CDH -- REFERENCE COORDINATES.
+#	(5)	DELVSAB		MAGNITUDE OF DELTA VELOCITY AT CDH.
+#	(6)	XDELVFLG	SET TO INDICATE EXTERNAL DELTA V VG COMPUTATION.
+#
+# SUBROUTINES USED
+#
+#	AVFLAGA
+#	AVFLAGP
+#	P20FLGON
+#	VNP00H
+#	SELECTMU
+#	ADVANCE
+#	CDHMVR
+#	INTINT3P
+#	ACTIVE
+#	PASSIVE
+#	S33/S34.1
+#	ALARM
+#	BANKCALL
+#	GOFLASH
+#	GOTOP00H
+#	S32/33.1
+# Page 627
+#	VN1645
+
+		COUNT*	$$/P3373
+P33		TC	AVFLAGA
+		TC	P33/P73A
+P73		TC	AVFLAGP
+P33/P73A	TC	P20FLGON
+		CAF	V06N13		# TCDH
+		TC	VNP00H
+		TC	INTPRET
+		DLOAD
+			TTPIO
+		STODL	TTPI
+			TCDH
+		STCALL	TIG
+			SELECTMU
+P33/P73B	CALL
+			ADVANCE
+		CALL
+			CDHMVR
+		SETPD	VLOAD
+			0D
+			VACT3
+		PDVL	CALL
+			RACT2
+			INTINT3P
+		CALL
+			ACTIVE
+		SETPD	VLOAD
+			0D
+			VPASS2
+		PDVL	CALL
+			RPASS2
+			INTINT3P
+		CALL
+			PASSIVE
+		DLOAD	SET
+			P30ZERO
+			ITSWICH
+		STCALL	NOMTPI
+			S33/34.1
+		BZE	EXIT
+			P33/P73C
+		TC	ALARM
+		OCT	611
+		CAF	V05N09
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H
+		TC	+2
+# Page 628
+		TC	P33/P73A
+		TC	INTPRET
+		DLOAD
+			P30ZERO
+		STORE	NOMTPI
+P33/P73C	BON	SET
+			FINALFLG
+			P33/P73D
+			UPDATFLG
+P33/P73D	DLOAD	DAD
+			NOMTPI
+			TTPI
+		STORE	TTPI
+		DSU
+			TCDH
+P33/P73E	DSU	BPL
+			60MIN
+			P33/P73E
+		DAD
+			60MIN
+		STODL	T1TOT2
+			TTPI
+		DSU	PUSH
+			TTPIO
+P33/P73F	ABS	DSU
+			60MIN
+		BPL	DAD
+			P33/P73F
+			60MIN
+		SIGN	STADR
+		STORE	T2TOT3
+		EXIT
+		CAF	V06N75
+		TC	VNP00H
+		TC	INTPRET
+		VLOAD	CALL
+			DELVEET2
+			S32/33.1
+		STCALL	DELVEET2
+			VN1645
+		GOTO
+			P33/P73B
+
+# Page 629
+# ***** ADFLAG/P *****
+#
+# SUBROUTINES USED
+#
+#	UPFLAG
+#	DOWNFLAG
+
+AVFLAGA		EXTEND			# AVFLAG = LEM
+		QXCH	SUBEXIT
+		TC	UPFLAG
+		ADRES	AVFLAG
+		TC	SUBEXIT
+AVFLAGP		EXTEND			# AVFLAG = CSM
+		QXCH	SUBEXIT
+		TC	DOWNFLAG
+		ADRES	AVFLAG
+		TC	SUBEXIT
+P20FLGON	EXTEND
+		QXCH	SUBEXIT
+		TC	UPFLAG
+		ADRES	UPDATFLG	# SET UPDATFLG
+		TC	UPFLAG
+		ADRES	TRACKFLG	# SET TRACKFLG
+		TC	SUBEXIT
+
+# Page 630
+# ***** DISDVLVC *****
+#
+# SUBROUTINES USED
+#
+#	S32/33.X
+#	VNP00H
+
+DISDVLVC	STORE	DELVLVC
+		STQ	CALL
+			NORMEX
+			S32/33.X
+		VLOAD	MXV
+			DELVLVC
+			0D
+		VSL1	SXA,1
+			VERBNOUN
+		STORE	DELVLVC
+		EXIT
+		CA	VERBNOUN
+		TC	VNP00H
+		TC	INTPRET
+		GOTO
+			NORMEX
+
+# Page 631
+# ***** CONSTANTS *****
+
+V06N11		VN	0611
+V06N13		VN	0613
+V06N75		VN	0675
+SN359+		2DEC	-.000086601
+
+CS359+		2DEC	+.499999992
+
+P30ZERO		2DEC	0
+
+60MIN		2DEC	360000
+
+ALARM/TB	OCT	00600		# NO 1
+		OCT	00601		#    2
+		OCT	00602		#    3
+		OCT	00603		#    4
+		OCT	00604		#    5
+		OCT	00605		#    6
+		OCT	00606		#    7
+
+# Page 632
+# ***** CSI/A *****
+#
+# SUBROUTINES USED
+#
+#	VECSHIFT
+#	TIMETHET
+#	PERIAPO
+#	SHIFTR1
+#	INTINT2C
+#	CDHMVR
+#	PERIAPO1
+#	INTINT
+#	ACTIVE
+
+		BANK	34
+		SETLOC	CSI/CDH1
+		BANK
+		EBANK=	SUBEXIT
+		COUNT*	$$/CSI
+LOOPMX		2DEC	16
+
+INITST		2DEC	.03048 B-7	# INITIAL DELDV = 10 FPS
+
+DVMAX1		2DEC	3.0480 B-7	# MAXIMUM DV1 = 1000 FPS
+
+DVMAX2		2DEC	3.014472 B-7	#		 989 FPS
+
+1DPB2		2DEC	1.0 B-2
+
+1DPB28		2DEC	1
+
+PMINE		2DEC	157420 B-29	# 85 NM -- MUST BE 8 WORDS BEFORE PMINM
+
+EPSILN1		2DEC	.0003048 B-7	# .1 FPS
+
+NICKELDP	2DEC	.021336 B-7	# 7 FPS (CHANGED FROM .05 FPS)
+
+FIFPSDP		2DEC	-.152400 B-7	# 50 FPS
+
+PMINM		2DEC	10668 B-29	# 35000 FT -- MUST BE 8 WORDS AFTER PMINE
+
+DELMAX1		2DEC	.6096000 B-7	# 200 FPS
+
+ONETHTH		2DEC	.0001 B-3
+
+TMIN		2DEC	60000		# 10 MIN
+
+CSI/A		CLEAR	SET		# INITIALIZE INDICATORS
+			S32.1F1		# DVT1 HAS EXCEEDED MAX INDICATOR
+			S32.1F2		# FIRST PASS FOR NEWTON ITERATION INDICATOR
+# Page 633
+		CLEAR	SET
+			S32.1F3A	# 00=1ST 2 PASSES 2ND CYCLE, 01=FIRST CYCLE
+			S32.1F3B	# 10=2ND CYCLE, 11=50 FPS STAGE 2ND CYCLE
+		DLOAD
+			P30ZERO
+		STORE	LOOPCT
+		STORE	CSIALRM
+CSI/B		SETPD	VLOAD
+			0D
+			RACT1
+		ABVAL	PUSH		# RA1			      B29 PL02D
+		NORM	SR1
+			X2		#		       B29-N2+ B1 PL04D
+		PDVL	ABVAL
+			RPASS3
+		NORM	BDDV		# RA1/RP3		       B1 PL02D
+			X1
+		XSU,2	SR*		#			       B2
+			X1
+			1,2
+		DAD	DMP		# (1+(RA1/RP3))RA1	B29+B2=B31 PL00D
+			1DPB2
+		NORM	PDDL		#				   PL02D
+			X1
+			RTMU
+		SR1	DDV		#		       B38-B31= B7 PL00D
+		SL*	SQRT		#				B7
+			0 	-7,1
+		PDVL	UNIT		#				   PL02D
+			RACT1
+		PDVL	VXV
+			UP1
+		UNIT			# UNIT(URP1 X UVP1 X URA1) = UH1
+		DOT	SL1		# VA1 . UH1			B7
+			VACT1
+		BDSU	STADR		#				   PL00D
+		STODL	DELVCSI
+			INITST		# 10 FPS
+		STORE	DELDV
+CSI/B1		DLOAD	DAD		# IF LOOPCT = 16
+			LOOPCT
+			1DPB28
+		STORE	LOOPCT
+		DSU	AXT,2
+			LOOPMX
+			6
+		BPL
+			SCNDSOL
+CSI/B2		SETPD
+			0D
+# Page 634
+		DLOAD	ABS
+			DELVCSI
+		DSU	BMN
+			DVMAX1
+			CSI/B23
+		AXT,2	BON
+			7
+			S32.1F1
+			SCNDSOL
+		BOFF	BON
+			S32.1F3A
+			CSI/B22		# FLAG 3 NEQ 3
+			S32.1F3B
+			SCNDSOL
+CSI/B22		SET	DLOAD
+			S32.1F1
+			DVMAX2
+		SIGN
+			DELVCSI
+		STORE	DELVCSI
+CSI/B23		VLOAD	PUSH
+			RACT1
+		UNIT	PDVL
+			UP1
+		VXV	UNIT		# UNIT (URP1 X UVP1 X URA1) = UH1
+		VXSC	VSL1
+			DELVCSI
+		STORE	DELVEET1
+		VAD	BOV
+			VACT1
+			CSI/B23D
+CSI/B23D	STCALL	VACT4
+			VECSHIFT
+		STOVL	VVEC
+		SET
+			RVSW
+		STOVL	RVEC
+			SN359+
+		STCALL	SNTH		# ALSO CSTH
+			TIMETHET
+		SR1	LXA,1
+			RTX1
+		STCALL	HAFPA1
+			PERIAPO
+		CALL
+			SHIFTR1
+		STODL	POSTCSI
+			CENTANG
+		BZE	GOTO
+			+2
+# Page 635
+			CIRCL
+		DLOAD
+			ECC
+		DSU	BMN
+			ONETHTH
+			CIRCL
+		DLOAD	CALL
+			R1
+			SHIFTR1
+		SETPD	NORM
+			2D
+			X1
+		PDVL	DOT		#					PL04D
+			RACT1
+			VACT4
+		ABS	DDV
+			02D		# (/RDOTV/)/R1		   B38-B29= B7
+		SL*	DSU
+			0,1
+			NICKELDP
+		BMN	DLOAD
+			CIRCL
+			P
+		SL2	DSU
+			1DPB2
+		STODL	14D
+			RTSR1/MU
+		SR1	DDV		# (1/ROOTMU)/R1		B-16-B29 = B-45 PL02D
+		PDDL	DMP
+			P
+			R1
+		CALL
+			SHIFTR1
+		SL4	SL1
+		SQRT	DMP		# ((P/MU)**.5)/R1	B14+B-14 = B-31 PL02D
+		BOFF	SL3
+			CMOONFLG
+			CSI/B3
+CSI/B3		PDVL	DOT
+			RACT1
+			VACT4
+		STORE	RDOTV
+		ABS
+		NORM	DMP		# ((P/MU)**.5)RDOTV/R1			PL02D
+			X2
+		XSU,1	SL*		#		       B-31+B36-B3 = B2
+			X2
+			3,1
+		STODL	12D
+			P30ZERO
+# Page 636
+		STORE	16D
+		VLOAD	UNIT
+			12D
+		STOVL	SNTH		# ALSO STORES CSTH AND 0
+			RACT1
+		PDVL	SIGN
+			VACT4
+			RDOTV
+		VCOMP	CALL
+			VECSHIFT
+		STOVL	VVEC
+		SET
+			RVSW
+		STCALL	RVEC
+			TIMETHET
+		PDDL	BPL
+			RDOTV
+			NTP/2
+		DLOAD	DSU
+			HAFPA1
+		PUSH	GOTO
+			NTP/2
+CIRCL		SETPD	DLOAD
+			00D
+			P30ZERO
+		PUSH
+NTP/2		DLOAD	DMP
+			NN
+			HAFPA1
+		SL	DSU
+			14D
+		DAD
+			TCSI
+		STORE	TCDH
+		BDSU	AXT,2
+			TTPI
+			5D
+		BMN	SETPD
+			SCNDSOL
+			0D
+		VLOAD	PDVL
+			VACT4
+			RACT1
+		CALL
+			INTINT2C
+		STOVL	RACT2
+			VATT
+		STOVL	VACT2
+			VPASS1
+		SETPD	PDVL
+# Page 637
+			0D
+			RPASS1
+		CALL
+			INTINT2C
+		STOVL	RPASS2
+			VATT
+		STCALL	VPASS2
+			CDHMVR
+		VLOAD	SETPD
+			RACT2
+			0D
+		PDVL	CALL
+			VACT3
+			PERIAPO1
+		CALL
+			SHIFTR1
+		STOVL	POSTCDH
+			VACT3
+		SETPD	PDVL
+			0D
+			RACT2
+		PDDL	PDDL
+			TCDH
+			TTPI
+		PDDL	PUSH
+			TWOPI
+		CALL
+			INTINT
+		CALL
+			ACTIVE
+		DLOAD
+			ELEV
+		SETPD	SINE
+			6D
+		PDVL	UNIT
+			RACT3
+		STORE	00D		# URA3 AT 00D
+		PDVL	VXV		# PL14D, PL08D
+			UP1
+		UNIT
+		PDDL	COSINE		# UNIT(URA3 X UVA3 X URA3) = UH3	B1 PL14D
+			ELEV
+		VXSC	STADR		# (COSLOS)(UH3)				B2 PL08D
+		STORE	18D		#	PLUS
+		DLOAD	VXSC		# (SINLOS)(URA3) = U			B2 PL00D
+		VAD	VSL1
+			18D		#					B1
+		PUSH	DOT		#					   PL06D
+			RACT3		# (U . RA3) = TEMP1	      B1 +B29 = B30
+		SL1	PUSH		#				       B29 PL08D
+# Page 638
+		DSQ	TLOAD		# TEMP1**2			       B58
+			MPAC
+		PDVL	DOT		#					   PL11D
+			RACT3
+			RACT3
+		TLOAD	DCOMP		# RA3 . RA3
+			MPAC
+		PDVL	DOT		# RP3 . RP3			       B58 PL14D
+			RPASS3
+			RPASS3		#					   PL11D
+		TAD	TAD		# TEMP1**2 + RA3.RA3 + RP3.RP3 = TEMP2	   PL08D
+		BPL	DLOAD
+			K10RK2
+			LOOPCT
+		DSU	AXT,2
+			1DPB28
+			1D
+		BZE
+			ALMXITA
+		DLOAD	SR1
+			DELDV
+		STORE	DELDV
+		BDSU
+			DVPREV
+		STCALL	DELVCSI
+			CSI/B1
+K10RK2		SQRT	PUSH		# TEMP3 = TEMP2**.5		       B29 PL10D
+		DCOMP	DSU
+			06D		# -TEMP1-TEMP3 = K2 AT 10D
+		STODL	10D		#					   PL08D
+		DSU	STADR		#					   PL06D
+		STORE	12D		# -TEMP1+TEMP3 = K1 AT 12D
+		ABS
+		STODL	14D
+			10D
+		ABS	DSU
+			14D
+		BMN	DLOAD
+			K2.
+			12D
+		STORE	10D		# K = K1
+K2.		DLOAD
+			10D
+		VXSC	VSL1
+		VAD	UNIT		# V = RA3 + KU UNIT			B1
+			RACT3
+		PDVL	UNIT
+			RPASS3		#					   PL06D
+		PDVL	UNIT
+			VPASS3		#					   PL12D
+# Page 639
+		VXV	PDVL		# UVP3 X URP3				   PL18D
+			06D
+			06D
+		VXV	DOT
+			00D
+		STADR			#					   PL12D
+		STOVL	12D		# (URP3 X V).(UVP3 X URP3)=TEMP		   PL06D
+		DOT	SL1		#					   PL00D
+		ARCCOS	SIGN
+			12D		#					B0
+		SR1	PUSH		# GAMMA = SIGN(TEMP)ARCOS(UNITV.URP3)	   PL02D
+		BON	DLOAD
+			S32.1F2
+			FRSTPAS
+			00D		# NOT THE FIRST PASS OF A CYCLE
+		DSU	PDDL		# GAMMA-GAMPREV				B1 PL04D
+			GAMPREV
+			DELVCSI
+		DSU	NORM		#					B7
+			DVPREV
+			X1
+		BDDV	PDDL		# (GAM-GAMPREV)/(DV-DVPREV)	     B-6+N1 PL06D
+			02D		#	= SLOPE
+			DELVCSI
+		STORE	DVPREV
+		BOFF	BOFF
+			S32.1F3A
+			THRDCHK
+			S32.1F3B
+			THRDCHK
+		DLOAD	DMP
+			02D
+			GAMPREV
+		BPL	DLOAD
+			FIFTYFPS
+			INITST
+		SIGN
+			DELDV
+		STORE	DELDV
+		SET	CLEAR
+			S32.1F3A
+			S32.1F3B
+FRSTPAS		DLOAD
+			00D
+		STODL	GAMPREV
+			DELVCSI
+		STORE	DVPREV
+		DSU	CLEAR
+			DELDV
+			S32.1F2
+# Page 640
+		STCALL	DELVCSI
+			CSI/B1
+THRDCHK		BON	BON
+			S32.1F3A
+			NEWTN
+			S32.1F3B
+			NEWTN
+FIFTYFPS	DLOAD	SIGN
+			FIFPSDP
+			04D
+		SIGN
+			GAMPREV
+		STORE	DELDV
+		DCOMP	DAD
+			DELVCSI
+		STODL	DELVCSI
+			00D
+		SET	SET
+			S32.1F3B
+			S32.1F3A
+		STCALL	GAMPREV
+			CSI/B2
+NEWTN		DLOAD	NORM
+			04D
+			X2
+		BDDV	XSU,1
+			00D
+			X2
+		SR*
+			0,1
+		STODL	DELDV
+			00D
+		STORE	GAMPREV
+		DLOAD	ABS
+			DELDV		#					   PL08D
+		PUSH	DSU
+			EPSILN1
+		BMN	DLOAD
+			CSI/SOL
+		DSU	BMN
+			DELMAX1
+			CSISTEP
+		DLOAD	SIGN
+			DELMAX1
+			DELDV
+		STORE	DELDV
+CSISTEP		DLOAD	DSU
+			DELVCSI
+			DELDV
+		STCALL	DELVCSI
+# Page 641
+			CSI/B1
+CSI/SOL		DLOAD	AXT,2
+			POSTCSI
+			2
+		LXA,1
+			RTX1
+		DSU*	BMN
+			PMINE 	-2,1
+			SCNDSOL
+		AXT,2	DLOAD
+			3
+			POSTCDH
+		DSU*	BMN
+			PMINE 	-2,1
+			SCNDSOL
+		DLOAD	DSU
+			TCDH
+			TCSI
+		STORE	T1TOT2
+		AXT,2	DSU
+			4
+			TMIN
+		BMN	AXT,2
+			SCNDSOL
+			5
+		DLOAD	DSU
+			TTPI
+			TCDH
+		STORE	T2TOT3
+		DSU	BPL
+			TMIN
+			P32/P72C
+SCNDSOL		BON	BOFF
+			S32.1F3A
+			ALMXIT
+			S32.1F3B
+			ALMXIT
+		SXA,2	DLOAD
+			CSIALRM
+			P30ZERO
+		CLEAR	SET
+			S32.1F1
+			S32.1F2
+		CLEAR	CLEAR
+			S32.1F3A
+			S32.1F3B
+		STCALL	LOOPCT
+			CSI/B
+
+# Page 642
+# ***** ADVANCE *****
+#
+# SUBROUTINES USED
+#	PRECSET
+#	ROTATE
+
+ADVANCE		STQ	DLOAD
+			SUBEXIT
+			TIG
+		STCALL	TDEC1
+			PRECSET
+		SET	VLOAD
+			XDELVFLG
+			VPASS3
+		STORE	VPASS2
+		STOVL	VPASS1
+			RPASS3
+		STORE	RPASS2
+		STORE	RPASS1
+		UNIT	VXV
+			VPASS1
+		UNIT
+		STOVL	UP1
+			RACT3
+		STCALL	RTIG
+			ROTATE
+		STORE	RACT2
+		STOVL	RACT1
+			VACT3
+		STCALL	VTIG
+			ROTATE
+		STORE	VACT2
+		STCALL	VACT1
+			SUBEXIT
+
+# Page 643
+# ***** ROTATE *****
+
+ROTATE		PUSH	PUSH
+		DOT	VXSC
+			UP1
+			UP1
+		VSL2	BVSU
+		UNIT	PDVL
+		ABVAL	VXSC
+		VSL1	RVQ
+
+# Page 644
+# ***** INTINTNA *****
+
+INTINT2C	PDDL	PDDL
+			TCSI
+			TCDH
+		PDDL	PUSH
+			TWOPI
+		GOTO
+			INTINT
+INTINT3P	PDDL	PDDL
+			TCDH
+			TTPI
+		PDDL	PUSH
+			P30ZERO
+		GOTO
+			INTINT
+
+# Page 645
+# ***** S32/33.1 *****
+#
+# SUBROUTINES USED
+#	S32/33.X
+
+S32/33.1	STQ	AXT,1
+			SUBEXIT
+		VN	0681
+		CALL
+			DISDVLVC
+		CALL
+			S32/33.X
+		VLOAD	VXM
+			DELVLVC
+			0D
+		VSL1
+		STORE	DELVSIN
+		PUSH	ABVAL
+		STOVL	DELVSAB
+		GOTO
+			SUBEXIT
+
+# Page 646
+# ***** S32/33.X *****
+
+S32/33.X	SETPD	VLOAD
+			6D
+			UP1
+		VCOMP	PDVL
+			RACT1
+		UNIT	VCOMP
+		PUSH	VXV
+			UP1
+		VSL1
+		STORE	0D
+		RVQ
+
+# Page 647
+# ***** CDHMVR *****
+#
+# SUBROUTINES USED
+#	VECSHIFT
+#	TIMETHET
+#	SHIFTR1
+
+CDHMVR		STQ	VLOAD
+			SUBEXIT
+			RACT2
+		PUSH	UNIT
+		STOVL	UNVEC		# UR SUB A
+			RPASS2
+		UNIT	DOT
+			UNVEC
+		PUSH	SL1
+		STODL	CSTH
+		DSQ	PDDL
+			DP1/4TH
+		SR2	DSU
+		SQRT	SL1
+		PDVL	VCOMP
+		VXV
+			RPASS2
+		DOT	PDDL
+			UP1
+		SIGN	STADR
+		STOVL	SNTH
+			RPASS2
+		PDVL	CALL
+			VPASS2
+			VECSHIFT
+		STOVL	VVEC
+		CLEAR
+			RVSW
+		STCALL	RVEC
+			TIMETHET
+		LXA,2	VSL*
+			RTX2
+			0,2
+		STORE	18D
+		DOT	SL1R
+			UNVEC
+		PDVL	ABVAL		# 0D = V SUB PV
+		SL*	PDVL
+			0,2
+			RACT2
+		ABVAL	PDDL		# 2D = LENGTH OF R SUB A
+		DSU
+# Page 648
+			02D
+		STODL	DIFFALT		# DELTA H IN METERS		B+29
+			R1A
+		NORM	PDDL		# 2 - R V**/MU				04D
+			X1
+			R1
+		CALL
+			SHIFTR1
+		SR1R	DDV
+		SL*	PUSH
+			0 	-5,1
+		DSU	PDDL		# A SUB A			B+29 	04D
+			DIFFALT
+		SR2	DDV		# A SUB P			B+31
+			04D		#				B+2
+		PUSH	SQRT		# A SUB P/A SUB A			06D
+		DMPR	DMP
+			06D
+			00D
+		SL3R	PDDL		# V SUB AV METERS/CS		B+7 	08D
+			02D		# R SUB A MAGNITUDE		B+29
+		NORM	PDDL
+			X1
+			RTMU
+		SR1	DDV		# 2MU 				B+38
+		SL*	PDDL		# 2 MU/R SUBAA			B+14 	10D
+			0 	-5,1
+			04D		# ASUBA				B+29
+		NORM	PDDL
+			X2
+			RTMU
+		SR1	DDV
+		SL*	BDSU
+			0 	-6,2	# 2U/R - U/A		B+14 (METERS/CS)SQ
+		PDDL	DSQ		#					10D
+			08D
+		BDSU	SQRT
+		PDVL	VXV		# SQRT(MU(2/R SUB A-1/A SUB A)-VSUBA2)	10D
+			UP1
+			UNVEC
+		UNIT	VXSC
+			10D
+		PDVL	VXSC
+			UNVEC
+			08D
+		VAD	VSL1
+		STADR
+		STORE	VACT3
+		VSU
+			VACT2
+# Page 649
+		STCALL	DELVEET2	# DELTA VCDH -- REFERENCE COORDINATES
+			SUBEXIT
+
+# Page 650
+# ***** COMPTGO *****
+#
+# SUBROUTINES USED
+#	CLOKTASK
+#	2PHSCHNG
+
+		BANK	35
+		SETLOC	CSI/CDH
+		BANK
+
+		EBANK=	RTRN
+
+		COUNT*	$$/P3575
+
+COMPTGO		EXTEND
+		QXCH	RTRN
+		CAF	ZERO
+		TS	DISPDEX
+		CAF	BIT2
+		INHINT
+		TC	WAITLIST
+		EBANK=	WHICH
+		2CADR	CLOKTASK
+
+		TC	2PHSCHNG
+		OCT	40036
+		OCT	05024
+		OCT	13000
+		TC	RTRN
+
diff --git a/P34-35_P74-75.s b/P34-35_P74-75.s
new file mode 100644
index 0000000..84e6591
--- /dev/null
+++ b/P34-35_P74-75.s
@@ -0,0 +1,1739 @@
+# Copyright:	Public domain.
+# Filename:	P34-35_P74-75.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 460-504
+# Contact:      Onno Hommes <ohommes@cmu.edu>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-10 OH	Batch 2 Assignment Comanche Transcription
+#		2009-05-23 RSB	In DISPLAYE, corrected a CADR GOFLASHR
+#				to CADR GOFLASH.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+
+# Page 460
+# TRANSFER PHASE INITITIATION (TPI) PROGRAMS (P34 AND P74)
+# MOD NO -1			LOG SECTION -- P32-P35, P72-P75
+# MOD BY WHITE, P.		DATE: 1 JUNE 67
+#
+# PURPOSE
+#	(1)	TO CALCULATE THE REQUIRED DELTA V AND OTHER INITIAL CONDITIONS
+#		REQUIRED BY THE ACTIVE VEHICLE FOR EXECUTION OF THE TRANSFER
+#		PHASE INITITATION (TPI) MANEUVER, GIVEN --
+#		(A)	TIME OF IGNITION TIG (TPI) OR THE ELEVATION ANGLE (E) OF
+#			THE ACTIVE/PASSIVE VEHICLE LOS AT TIG (TPI).
+#		(B)	CENTRAL ANGLE OF TRANSFER (CENTANG) FROM TIG (TPI) TO
+#			INTERCEPT TIME (TIG (TPF)).
+#	(2)	TO CALCULATE TIG (TPI) GIVEN E OR E GIVEN TIG (TPI).
+#	(3)	TO CALCULATE THESE PARAMETERS BASED UPON MANEUVER DATA
+#		APPROVED AND KEYED INTO THE DSKY BY THE ASTRONAUT.
+#	(4)	TO DISPLAY TO THE ASTRONAUT AND THE GROUND CERTAIN DEPENDENT
+#		VARIABLES ASSOCIATED WITH THE MANEUVER FOR APPROVAL BY THE
+#		ASTRONAUT/GROUND.
+#	(5)	TO STORE THE TPI TARGET PARAMETERS FOR USE BY THE DESIRED
+#		THRUSTING PROGRAM.
+#
+# ASSUMPTIONS
+#	(1)	LM ONLY -- THIS PROGRAM IS BASED UPON PREVIOUS COMPLETION OF
+#		THE CONSTANT DELTA ALTITUDE (CDH) PROGRAM (P33/P73).
+#		THEREFORE --
+#		(A)	AT A SELECTED TPI TIME (NOW IN STORAGE) THE LINE OF SIGHT
+#			BETWEEN THE ACTIVE AND PASSIVE VEHICLES WAS SELECTED TO BE
+#			A PRESCRIBED ANGLE (E) (NOW IN STORAGE) FROM THE
+#			HORIZONTAL PLANE DEFINED BY THE ACTIVE VEHICLE POSITION.
+#		(B)	THE TIME BETWEEN CDH IGNITION AND TPI IGNITION WAS
+#			COMPUTED TO BE GREATER THAN 10 MINUTES.
+#		(C)	THE VARIATION OF TEH ALTITUDE DIFFERENCE BETWEEN THE
+#			ORBITS WAS MINIMIZED.
+#		(D)	THE PERICENTER ALTITUDES OF ORBITS FOLLOWING CSI AND
+#			CDH WERE COMPUTED TO BE GREATER THAN 35,000 FT FOR LUNAR
+# Page 461
+#			ORBIT OR 85 NM FOR EARTH ORBIT.
+#		(E)	THE CSI AND CDH MANEUVERS WERE ASSUMED TO BE PARALLEL TO
+#			THE PLANE OF THE PASSIVE VEHICLE ORBIT.  HOWEVER, CREW
+#			MODIFICATION OF DELTA V (LV) COMPONENTS MAY HAVE RESULTED
+#			IN AN OUT-OF-PLANE MANEUVER.
+#	(2)	STATE VECTOR UPDATED BY P27 ARE DISALLOWED DURING AUTOMATIC
+#		STATE VECTOR UPDATING INITIATED BY P20 (SEE ASSUMPTION (4)).
+#	(3)	THIS PROGRAM MUST BE DONE OVER A TRACKING STATION FOR REAL
+#		TIME GROUND PARTICIPATION IN DATA INPUT AND OUTPUT.  COMPUTED
+#		VARIABLES MAY BE STORED FOR LATER VERIFICATION BY THE GROUND.
+#		THESE STORAGE CAPABILITIES ARE LIMITED ONLY TO THE PARAMETERS
+#		FOR ONE THRUSTING MANEUVER AT A TIME EXCEPT FOR CONCENTRIC
+#		FLIGHT PLAN MANEUVER SEQUENCES.
+#	(4)	THE RENDEZVOUS RADAR MAY OR MAY NOT BE USED TO UPDATE THE LM
+#		OR CSM STATE VECTORS FOR THIS PROGRAM.  IF RADAR USE IS
+#		DESIRED THE RADAR WAS TURNED ON AND LOCKED ON THE CSM BY
+#		PREVIOUS SELECTION OF P20.  RADAR SIGHTING MARKS WILL BE MADE
+#		AUTOMATICALLY APPROXIMATELY ONCE A MINUTE WHEN ENABLED BY THE
+#		TRACK AND UPDATE FLAGS (SEE P20).  THE RENDEZVOUS TRACKING
+#		MARK COUNTER IS ZEROED BY TEH SELECTION OF P20 AND AFTER EACH
+#		THRUSTING MANEUVER.
+#	(5)	THE ISS NEED NOT BE ON TO COMPLETE THIS PROGRAM.
+#	(6)	THE OPERATION OF THE PROGRAM UTILIZES THE FOLLOWING FLAGS --
+#
+#			ACTIVE VEHICLE FLAG -- DESIGNATES THE VEHICLE WHICH IS
+#			DOING RENDEZVOUS THRUSTING MANEUVERS TO THE PROGRAM WHICH
+#			CALCULATES THE MANEUVER PARAMETERS.  SET AT THE START OF
+#			EACH RENDEZVOUS PRE-THRUSTING PROGRAM.
+#
+#			FINAL FLAG -- SELECTS FINAL PROGRAM DISPLAYS AFTER CREW HAS
+#			SELECTED THE FINAL MANEUVER COMPUTATION CYCLE.
+#
+#			EXTERNAL DELTA V FLAG -- DESIGNATES THE TYPE OF STEERING
+#			REQUIRED FOR EXECUTION OF THIS MANEUVER BY THE THRUSTING
+#			PROGRAM SELECTED AFTER COMPLETION OF THIS PROGRAM.
+#
+#	(7)	ONCE THE PARAMETERS REQUIRED FOR COMPUTATION OF THE MANEUVER
+#		HAVE BEEN COMPLETELY SPECIFIED, TEH VALUE OF THE ACTIVE
+#		VEHICLE CENTRAL ANGLE OF TRANSFER IS COMPUTED AND STORED.
+#		THIS NUMBER WILL BE AVAILABLE FOR DISPLAY TO THE ASTRONAUT
+#		THROUGH THE USE OF V06N52.
+#
+#		THE ASTRONAUT WILL CALL THIS DISPLAY TO VERIFY THAT THE
+#		CENTRAL ANGLE OF TRANSFER OF THE ACTIVE VEHICLE IS NOT WITHIN
+# Page 462
+#		170 TO 190 DEGREES.  IF THE ANGLE IS WITHIN THIS ZONE THE
+#		ASTRONAUT SHOULD REASSES THE INPUT TARGETING PARAMETERS BASED
+#		UPON DELTA V AND EXPECTED MANEUVER TIME.
+#	(8)	THIS PROGRAM IS SELECTED BY THE ASTRONAUT BY DSKY ENTRY --
+#
+#			P34 IF THIS VEHICLE IS ACTIVE VEHICLE.
+#
+#			P74 IF THIS VEHICLE IS PASSIVE VEHICLE.
+#
+# INPUT
+#	(1)	TTPI	TIME OF THE TPI MANEUVER.
+#	(2)	ELEV	DESIRED LOS ANGLE AT TPI
+#	(3)	CENTANG	ORBITAL CENTRAL ANGLE OF THE PASSIVE VEHICLE DURING
+#			TRANSFER FROM TPI TO TIME OF INTERCEPT
+#
+# OUTPUT
+#	(1)	TRKMKCNT	NUMBER OF MARKS
+#	(2)	TTOGO		TIME TO GO
+#	(3)	+MGA		MIDDLE GIMBAL ANGLE
+#	(4)	TTPI		COMPUTED TIME OF TPI MANEUVER
+#		 OR
+#		ELEV		COMPUTED LOS ANGLE AT TPI
+#	(5)	POSTTPI		PERIGEE ALTITUDE AFTER THE TPI MANEUVER
+#	(6)	DELVTPI		MAGNITUDE OF DELTA V AT TPI
+#	(7)	DELVTPF		MAGNITUDE OF DELTA V AT INTERCEPT
+#	(8)	DVLOS		DELTA VELOCITY AT TPI -- LINE OF SIGHT
+#	(9)	DELVLVC		DELTA VELOCITY AT TPI -- LOCAL VERTICAL COORDINATES
+#
+# DOWNLINK
+#	(1)	TTPI		TIME OF TPI MANEUVER
+#	(2)	TIG		TIME OF TPI MANEUVER
+#	(3)	ELEV		DESIRED LOS ANGLE AT TPI
+#	(4)	CENTANG		ORBITAL CENTRAL ANGLE OF THE PASSIVE VEHICLE DURING
+#				TRANSFER FROM TPI TO TIME OF INTERCEPT
+#	(5)	DELVEET3	DELTA VELOCITY AT TPI -- REFERENCE COORDINATES
+#	(6)	TPASS4		TIME OF INTERCEPT
+#
+# COMMUNICATION TO THRUSTING PROGRAMS
+#	(1)	TIG		TIME OF THE TPI MANEUVER
+#	(2)	RTARG		OFFSET TARGET POSITION
+#	(3)	TPASS4		TIME OF INTERCEPT
+#	(4)	XDELVFLG	RESET TO INDICATE LAMBERT (AIMPOINT) VG COMPUTATION
+#
+# SUBROUTINES USED
+#	AVFLAGA
+# Page 463
+#	AVFLAGP
+#	VNP00H
+#	DISPLAYE
+#	SELECTMU
+#	PRECSET
+#	S33/34.1
+#	ALARM
+#	BANKCALL
+#	GOFLASH
+#	GOTOP00H
+#	TIMETHET
+#	S34/35.2
+#	PERIAPO1
+#	SHIFTR1
+#	S34/35.5
+#	VN1645
+
+		SETLOC	CSI/CDH
+		BANK
+		EBANK=	SUBEXIT
+		COUNT	35/P3474
+		
+P34		TC	AVFLAGA
+		TC	P34/P74A
+P74		TC	AVFLAGP
+P34/P74A	TC	P20FLGON	# SET UPDATFLG, TRACKFLG
+		CAF	V06N37		# TTPI
+		TC	VNP00H		# Onno: The scans look like O not zero
+		TC	INTPRET
+		SSP	EXIT
+			NN
+			0
+		TC	DISPLAYE	# ELEV AND CENTANG
+		TC	INTPRET
+		CLEAR	DLOAD
+			ETPIFLAG
+			TTPI
+		STODL	TIG
+			ELEV
+		BZE	SET
+			P34/P74B
+			ETPIFLAG
+P34/P74B	CALL
+			SELECTMU
+DELELO		EQUALS	26D
+P34/P74C	DLOAD	SET
+			ZEROVECS
+			ITSWICH
+		BON	CLEAR
+			ETPIFLAG
+# Page 464
+			SWCHSET
+			ITSWICH
+SWCHSET		STORE	NOMTPI
+INTLOOP		DLOAD	DAD
+			TTPI
+			NOMTPI
+		STCALL	TDEC1
+			PRECSET
+		CALL
+			S33/34.1
+		BZE	EXIT
+			SWCHCLR
+		TC	ALARM
+		OCT	611
+		CAF	V05N09
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H
+		TC	P34/P74A	# PROCEED
+		TC	-7		# V32
+
+SWCHCLR		BONCLR	BON
+			ITSWICH
+			INTLOOP
+			ETPIFLAG
+			P34/P74D	# DISPLAY TTPI
+		EXIT
+		TC	DISPLAYE	# DISPLAY ELEV AND CENTANG
+		TC	P34/P74E
+P34/P74D	EXIT
+		CAF	V06N37		# TTPI
+		TC	VNP00H
+P34/P74E	TC	INTPRET
+		SETPD	DLOAD
+			0D
+			RTX1
+		STODL	X1
+			CENTANG
+		PUSH	COS
+		STODL	CSTH
+		SIN
+		STOVL	SNTH
+			RPASS3
+		VSR*
+			0,2
+		STOVL	RVEC
+			VPASS3
+		VSR*	SET
+			0,2
+			RVSW
+# Page 465
+		STCALL	VVEC
+			TIMETHET
+		DLOAD
+			TTPI
+		STORE	INTIME		# FOR INITVEL
+		DAD
+			T		# RENDEZVOUS TIME
+		STCALL	TPASS4		# FOR INITVEL
+			S34/35.2
+		VLOAD	ABVAL
+			DELVEET3
+		STOVL	DELVTPI
+			VPASS4
+		VSU	ABVAL
+			VTPRIME
+		STOVL	DELVTPF
+			RACT3
+		PDVL	CALL
+			VIPRIME
+			PERIAPO1
+		CALL
+			SHIFTR1
+		STODL	POSTTPI
+			TTPI
+		STORE	TIG
+		EXIT
+		CAF	V06N58
+		TC	VNP00H
+		TC	INTPRET
+		CALL
+			S34/35.5
+		CALL
+			VN1645
+		GOTO
+			P34/P74C
+
+# Page 466
+# RENDEZVOUS MID-COURSE MANEUVER PROGRAMS (P35 AND P75)
+# MOD NO -1			LOG SECTION -- P32-P35, P72-P75
+# MOD BY WHITE, P.		DATE:  1 JUNE 67
+#
+# PURPOSE
+#	(1) 	TO CALCULATE THE REQUIRED DELTA V AND OTHER INITIAL CONDITIONS
+#		REQUIRED BY THE ACTIVE VEHICLE FOR EXECUTION OF THE NEXT
+#		MID-COURSE CORRECTION OF THE TRANSFER PHASE OF AN ACTIVE
+#		VEHICLE RENDEZVOUS.
+#	(2)	TO DISPLAY TO THE ASTRONAUT AND THE GROUND CERTAIN DEPENDENT
+#		VARIABLES ASSOCIATED WITH THE MANEUVER FOR APPROVAL BY THE
+#		ASTRONAUT/GROUND.
+#	(3)	TO STORE THE TPM TARGET PARAMETERS FOR USE BY THE DESIRED
+#		THRUSTING PROGRAM.
+#
+# ASSUMPTIONS
+#	(1)	THE ISS NEED NOT BE ON TO COMPLETE THIS PROGRAM.
+#	(2)	STATE VECTOR UPDATES BY P27 ARE DISALLOWED DURING AUTOMATIC
+#		STATE VECTOR UPDATING INITIATED BY P20 (SEE ASSUMPTION (3)).
+#	(3)	THE RENDEZVOUS RADAR IS ON AND IS LOCKED ON THE CSM.  THIS WAS
+#		DONE DURING PREVIOUS SELECTION OF P20.  RADAR SIGHTING MARKS
+#		WILL BE MADE AUTOMATICALLY APPROXIMATELY ONCE A MINUTE WHEN
+#		ENABLED BY THE TRACK AND UPDATE FLAGS (SEE P20).  THE
+#		RENDEZVOUS TRACKING MARK COUNTER IS ZEROED BY THE SELECTION OF
+#		P20 AND AFTER EACH THRUSTING MANEUVER.
+#	(4)	THE OPERATION OF THE PROGRAM UTILIZES THE FOLLOWING FLAGS --
+#
+#			ACTIVE VEHICLE FLAG -- DESIGNATES THE VEHICLE WHICH IS
+#			DOING RENDEZVOUS THRUSTING MANEUVERS TO THE PROGRAM WHICH
+#			CALCULATES THE MANEUVER PARAMETERS.  SET AT THE START OF
+#			EACH RENDEZVOUS PRE-THRUSTING PROGRAM.
+#
+#			FINAL FLAG -- SELECTS FINAL PROGRAM DISPLAYS AFTER CREW HAS
+#			SELECTED THE FINAL MANEUVER COMPUTATION CYCLE.
+#
+#			EXTERNAL DELTA V FLAG -- DESIGNATES THE TYPE OF STEERING
+#			REQUIRED FOR EXECUTION OF THIS MANEUVER BY THE THRUSTING
+#			PROGRAM SELECTED AFTER COMPLETION OF THIS PROGRAM.
+#
+#	(5)	THE TIME OF INTERCEPT (T(INT)) WAS DEFINED BY PREVIOUS
+#		COMPLETION OF THE TRANSFER PHASE INITIATION (TPI) PROGRAM
+#		(P34/P74) AND IS PRESENTLY AVAILABLE IN STORAGE.
+# Page 467
+#	(6)	ONCE THE PARAMETERS REQUIRED FOR COMPUTATION OF THE MANEUVER
+#		HAVE BEEN COMPLETELY SPECIFIED, THE VALUE OF THE ACTIVE
+#		VEHICLE CENTRAL ANGLE OF TRANSFER IS COMPUTED AND STORED.
+#		THIS NUMBER WILL BE AVAILABLE FOR DISPLAY TO THE ASTRONAUT
+#		THROUGH THE USE OF V06N52
+#
+#		THE ASTRONAUT WILL CALL THIS DISPLAY TO VERIFY THAT THE
+#		CENTRAL ANGLE OF TRANSFER OF THE ACTIVE VEHICLE IS NOT WITHIN
+#		170 TO 190 DEGREES.  IF THE ANGLE IS WITHIN THIS ZONE THE
+#		ASTRONAUT SHOULD REASSESS THE INPUT TARGETING PARAMETERS BASED
+#		UPON DELTA V AND EXPECTED MANEUVER TIME.
+#	(7)	THIS PROGRAM IS SELECTED BY THE ASTRONAUT BY DSKY ENTRY --
+#
+#			P35 IF THIS VEHICLE IS ACTIVE VEHICLE.
+#
+#			P75 IF THIS VEHICLE IS PASSIVE VEHICLE.
+#
+# INPUT
+#	(1)	TPASS4		TIME OF INTERCEPT -- SAVED FROM P34/P74
+#
+# OUTPUT
+#	(1)	TRKMKCNT	NUMBER OF MARKS
+#	(2)	TTOGO		TIME TO GO
+#	(3)	+MGA		MIDDLE GIMBAL ANGLE
+#	(4)	DVLOS		DELTA VELOCITY AT MID -- LINE OF SIGHT
+#	(5)	DELVLVC		DELTA VELOCITY AT MID -- LOCAL VERTICAL COORDINATES
+#
+# DOWNLINK
+#	(1)	TIG		TIME OF THE TPM MANEUVER
+#	(2)	DELVEET3	DELTA VELOCITY AT TPM -- REFERENCE COORDINATES
+#	(3)	TPASS4		TIME OF INTERCEPT
+#
+# COMMUNICATION TO THRUSTING PROGRAMS
+#	(1)	TIG		TIME OF THE TPM MANEUVER
+#	(2)	RTARG		OFFSET TARGET POSITION
+#	(3)	TPASS4		TIME OF INTERCEPT
+#	(4)	XDELVFLG	RESET TO INDICATE LAMBERT (AIMPOINT) VG COMPUTATION.
+#
+# SUBROUTINES USED
+#	AVFLAGA
+#	AVFLAGP
+#	LOADTIME
+#	SELECTMU
+#	PRECSET
+#	S34/35.1
+#	S34/35.2
+# Page 468
+#	S34/35.5
+#	VN1645
+
+		COUNT	35/P3575
+		EBANK=	KT
+
+P35		TC	AVFLAGA
+		EXTEND
+		DCA	ATIGINC
+		TC	P35/P75A
+P75		TC	AVFLAGP
+		EXTEND
+		DCA	PTIGINC
+P35/P75A	DXCH	KT
+		TC	P20FLGON	# SET UPDATFLG, TRACKFLG
+		TC	INTPRET
+		CALL
+			SELECTMU
+P35/P75B	RTB
+			LOADTIME
+		STORE	TSTRT
+		DAD
+			KT
+		STORE	TIG
+		STORE	INTIME		# FOR INITVEL
+		STCALL	TDEC1
+			PRECSET		# ADVANCE BOTH VEHICLES
+		CALL
+			S34/35.1	# GET NORM AND LOS FOR TRANSFORM
+		CALL
+			S34/35.2	# GET DELTA V(LV)
+		CALL
+			S34/35.5
+		CALL
+			VN1645
+		GOTO
+			P35/P75B
+# Page 469
+# ***** S33/34.1 *****
+
+S33/34.1	STQ	SSP
+			NORMEX
+			TITER
+		OCT	40000
+		DLOAD	SETPD
+			MAX250
+			0D
+		STOVL	SECMAX
+			RACT3
+		STOVL	RAPREC
+			VACT3
+		STOVL	VAPREC
+			RPASS3
+		STOVL	RPPREC
+			VPASS3
+		STORE	VPPREC
+ELCALC		CALL
+			S34/35.1	# NORMAL AND LOS
+		VXV	PDVL
+			RACT3		# (RA*VA)*RA 0D
+		PDVL	UNIT		# ULOS AT 6D
+			RACT3
+		PDVL	VPROJ		# XCHNJ AND UP
+		VSL2	BVSU
+			ULOS
+		UNIT	PDVL		# UP AT 0D
+		DOT	PDVL		# UP.UN*RA AT 0D
+			0D		# UP IN MPAC
+		DOT	SIGN
+			ULOS
+		SL1	ACOS
+		PDVL	DOT		# EA AT 0D
+			ULOS
+			RACT3
+		BPL	DLOAD
+			TESTY
+			DPPOSMAX
+		DSU	PUSH
+TESTY		BOFF	DLOAD
+			ITSWICH
+			ELEX
+			DELEL
+		STODL	DELELO
+		DSU
+			ELEV
+		STORE	DELEL
+		ABS	DSU
+			ELEPS
+# Page 470
+		BMN
+			TIMEX		# COMMERCIALS EVERYWHERE
+FIGTIME		SLOAD	SR1
+			TITER
+		BHIZ	LXA,1
+			NORMEX		# TOO MANY ITERATIONS
+			MPAC
+		SXA,1	VLOAD
+			TITER
+			RPASS3
+		UNIT	PDDL
+			36D
+		PDVL	UNIT
+			RACT3
+		PDDL
+		PDDL	PUSH
+			36D
+		BDSU
+			12D
+		STODL	30D		# RP-RA MAGNITUDES
+			DPHALF
+		DSU	PUSH
+			ELEV
+		SIGN	BMN
+			30D
+			NORMEX
+		DLOAD	COS
+		DMP	DDV
+			14D
+			12D
+		DCOMP			# SINCE COS(180-A)=-COS A
+		STORE	28D
+		ABS	BDSU
+			DPHALF
+		BMN	VLOAD
+			NORMEX
+			UNRM
+		VXV	UNIT
+			6D		# UN*RA
+		DOT	DMP
+			VACT3
+			12D
+		PDVL	VXV
+			0D
+			VPASS3
+		VXV	UNIT
+			0D		# (RP*VP)*RP
+		DOT	DMP
+			VPASS3
+			14D
+# Page 471
+		BDSU
+		NORM	PDVL		# NORMALIZED WA-WP 12D
+			X1
+			6D
+		VXV	DOT
+			0D
+			UNRM		# RA*RP.UN 14D
+		PDVL	DOT
+			0D
+			6D
+		SL1	ACOS
+		SIGN
+		DSU	DAD		# ALPHA PI
+			DPHALF
+			ELEV
+		PDDL	ACOS
+			28D
+		BDSU	SIGN
+			DPHALF
+			30D		# CONTAINS RP-RA
+		DAD
+		DMP	DDV
+			TWOPI
+		DMP
+		SL*	DMP
+			0 -3,1
+		PUSH	ABS
+		DSU	BMN
+			SECMAX
+			OKMAX
+		DLOAD	SIGN		# REPLACE TIME WITH MAX TIME SIGNED
+			SECMAX
+		PUSH
+OKMAX		SLOAD	BPL		# TEST FIRST ITERATION
+			TITER
+			REPETE
+		SSP	DLOAD
+			TITER
+		OCT	37777
+		GOTO
+			STORDELT
+REPETE		DLOAD	DMP
+			DELEL
+			DELELO
+		BPL	DLOAD
+			NEXTES
+			SECMAX
+		DMP
+			THIRD
+		STODL	SECMAX
+# Page 472
+		ABS	SR1		# CROSSED OVER SOLUTION
+		DCOMP	GOTO		# DT=(-SIGN(DTO)//DT//)/2
+			RESIGN
+NEXTES		DLOAD	ABS
+			DELEL
+		PDDL	ABS
+			DELELO
+		DSU
+		BMN	DLOAD
+			REVERS		# WRONG DIRECTION
+		ABS
+RESIGN		SIGN 	GOTO
+			DELTEEO
+			STORDELT
+REVERS		DLOAD	DCOMP
+			DELTEEO
+		PUSH	SR1
+		STORE	DELTEEO
+		DAD
+		GOTO
+			ADTIME
+STORDELT	STORE	DELTEEO
+ADTIME		DAD
+			NOMTPI		# SUM OF DELTA T:S
+		STORE	NOMTPI
+		VLOAD	PDVL
+			VAPREC
+			RAPREC
+		CALL
+			GOINT
+		CALL
+			ACTIVE		# STORE NEW RACT3 VACT3
+		VLOAD	PDVL
+			VPPREC
+			RPPREC
+		CALL
+			GOINT
+		CALL
+			PASSIVE		# STORE NEW RPASS3 VPASS3
+		GOTO
+			ELCALC
+ELEX		DLOAD	DAD
+			TTPI
+			NOMTPI
+		STODL	TTPI
+		BON
+			ETPIFLAG
+			TIMEX
+		STORE	ELEV
+TIMEX		DLOAD	GOTO
+# Page 473
+			ZEROVECS
+			NORMEX
+
+# Page 474
+# ***** S34/35.1 *****
+
+# COMPUTE UNIT NORMAL AND LINE OF SIGHT VECTORS GIVEN THE ACTIVE AND
+# PASSIVE POS AND VEL AT TIME T3
+		SETLOC	S3435LOC
+		BANK
+
+S34/35.1	VLOAD	VSU
+			RPASS3
+			RACT3
+		UNIT	PUSH
+		STOVL	ULOS
+			RACT3
+		VXV	UNIT
+			VACT3
+		STORE	UNRM
+		RVQ
+
+# Page 475
+# ***** S34/35.2 *****
+
+# ADVANCE PASSIVE VEH TO RENDEZVOUS TIME AND GET REQ VEL FROM LAMBERT
+		SETLOC	CSI/CDH
+		BANK
+		
+S34/35.2 	STQ	VLOAD
+			SUBEXIT
+			VPASS3
+		PDVL	PDDL
+			RPASS3
+			INTIME
+		PDDL	PDDL
+			TPASS4
+			TWOPI		# CONIC
+		PDDL	BHIZ
+			NN
+			S3435.23
+		DLOAD	PDDL
+			ZEROVECS	# PRECISION
+S3435.23	CALL
+			INTINT		# GET TARGET VECTOR
+S3435.25	STOVL	RTARG
+			VATT
+		STOVL	VPASS4
+			RTARG
+# COMPUTE PHI = PI + (ACOS(UNIT RA.UNIT RP) - PI) SIGN(RA*RP.U)
+		UNIT	PDVL		# UNIT RP
+			RACT3
+		UNIT	PUSH		# UNIT RA
+		VXV	DOT
+			0D
+			UNRM		# RA*RP.U
+		PDVL
+		DOT	SL1		# UNIT RA.UNIT RP
+			0D
+		ACOS	SIGN
+		BPL	DAD
+			NOPIE
+			DPPOSMAX	# REASONABLE TWO PI
+NOPIE		STODL	ACTCENT
+			TPASS4
+		DSU
+			INTIME
+		STORE	DELLT4
+		SLOAD	SETPD
+			NN		# NUMBER OF OFFSETS
+			0D
+		PDDL	PDVL
+			EPSFOUR
+# Page 476
+			RACT3
+		STOVL	RINIT
+			VACT3
+		STCALL	VINIT
+			INITVEL
+		CALL
+			LOMAT
+		VLOAD	MXV
+			DELVEET3
+			0D
+		VSL1
+		STCALL	DELVLVC
+			SUBEXIT
+
+# Page 477
+# ***** S34/35.3 *****
+
+S34/35.3	STQ	CALL
+			NORMEX
+			LOMAT		# GET MATRIX IN PUSH LIST
+		VLOAD	VXM
+			DELVLVC		# NEW DEL V TPI
+			0D
+		VSL1
+		STORE	DELVEET3	# SAVE FOR TRANSFORM
+		VAD	PDVL
+			VACT3		# NEW V REQ
+			RACT3
+		PDDL	PDDL
+			TIG
+			TPASS4
+		PDDL	PUSH
+			DPPOSMAX
+		CALL			# INTEG. FOR NEW TARGET VEC
+			INTINT
+		VLOAD
+			RATT
+		STORE	RTARG
+NOVRWRT		VLOAD	PUSH
+			ULOS
+		VXV	VCOMP
+			UNRM
+		UNIT	PUSH
+		VXV	VSL1
+			ULOS
+		PDVL
+		PDVL	MXV
+			DELVEET3
+			0D
+		VSL1
+		STCALL	DVLOS
+			NORMEX
+
+# Page 478
+# ***** S34/35.4 *****
+
+S34/35.4	STQ	SETPD		NO ASTRONAUT OVERWRITE
+			NORMEX
+			0D
+		GOTO
+			NOVRWRT
+
+# Page 479
+# ***** LOMAT *****
+
+LOMAT		VLOAD	VCOMP
+			UNRM
+		STOVL	6D		# Y
+			RACT3
+		UNIT	VCOMP
+		STORE	12D
+		VXV	VSL1
+			UNRM		# Z*-Y
+		STORE	0D
+		SETPD	RVQ
+			18D
+GOINT		PDDL	PDDL		# DO
+			ZEROVECS	#	NOT
+			NOMTPI		#
+		PUSH	PUSH		#		ORDER OR INSERT BEFORE INTINT
+INTINT		STQ	CALL
+			RTRN
+			INTSTALL
+		CLEAR	DLOAD
+			INTYPFLG
+		BZE	SET
+			+2
+			INTYPFLG
+		DLOAD	STADR
+		STODL	TDEC1
+		SET	LXA,2
+			MOONFLAG
+			RTX2
+		BON	CLEAR
+			CMOONFLG
+			ALLSET
+			MOONFLAG
+ALLSET		STOVL	TET
+		VSR*
+			0,2
+		STOVL	RCV
+		VSR*
+			0,2
+		STCALL	VCV
+			INTEGRVS
+		VLOAD	GOTO
+			RATT
+			RTRN
+
+# Page 480
+# ***** S34/35.5 *****
+#
+# SUBROUTINES USED
+#	BANKCALL
+#	GOFLASH
+#	GOTOP00H
+#	S34/35.3
+#	S34.35.4
+#	VNP00H
+
+S34/35.5	STQ	BON
+			SUBEXIT
+			FINALFLG
+			FLAGON
+		SET	GOTO
+			UPDATFLG
+			FLAGOFF
+FLAGON		VLOAD
+			DELVLVC
+		STORE	DVLOS		# SAVE DELTA V BEFORE DISPLAY
+		EXIT	
+ 		CAF	V06N81
+ 		TC	VNP00H
+ 		TC	INTPRET
+ 		VLOAD	VSU		# TEST FOR OVERWRITE OF COMPUTED
+ 			DELVLVC		#                      DELTA V
+ 			DVLOS
+ 		ABVAL	BZE
+ 			NOCHG		# NO OVERWRITE
+ 		CALL
+ 			S34/35.3
+NOCHG		CLEAR	VLOAD
+			XDELVFLG
+			DELVEET3
+		STORE	DELVSIN
+FLAGOFF		CALL
+			S34/35.4
+		EXIT
+		CAF	V06N59
+		TC	VNP00H
+		TC	INTPRET
+		GOTO
+			SUBEXIT
+
+# Page 481
+# ***** VN1645 *****
+#
+# SUBROUTINES USED
+#	P3XORP7X
+#	GET+MGA
+#	BANKCALL
+#	DELAYJOB
+#	COMPTGO
+#	GOFLASHR
+#	GOTOP00H
+#	FLAGUP
+
+VN1645		STQ	DLOAD
+			SUBEXIT
+			DP-.01
+		STORE	+MGA		# MGA = -.01
+		BOFF	DLOAD
+			FINALFLG
+			GET45
+			DP-.01
+		DAD
+			DP-.01
+		STORE	+MGA		# MGA = -.02
+		BOFF	EXIT
+			REFSMFLG
+			GET45
+		TC	P3XORP7X
+		TC	+2		# P3X
+		TC	GET45 +1	# P7X
+		TC	INTPRET
+		VLOAD	PUSH
+			DELVSIN
+		CALL			# COMPUTE MGA
+			GET+MGA
+GET45		EXIT
+		TC	COMPTGO		# INITIATE TASK TO UPDATE TTOGO
+		CA	SUBEXIT
+		TS	QSAVED
+		CAF	1SEC
+		TC	BANKCALL
+		CADR	DELAYJOB
+		CAF	V16N45		# TRKMKCNT, TTOGO, +MGA
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	KILCLOCK	# TERMINATE
+		TC	N45PROC		# PROCEED
+		TC	CLUPDATE	# RECYCLE -- RETURN FOR INITIAL COMPUTATION
+KILCLOCK	CA	Z
+		TS	DISPDEX
+# Page 482
+		TC	GOTOP00H
+N45PROC		CS	FLAGWRD2
+		MASK	BIT6
+		EXTEND
+		BZF	KILCLOCK	# FINALFLG IS SET -- FLASH V37 -- AWAIT NEW PGM
+		TC	PHASCHNG
+		OCT	04024
+		TC	UPFLAG		# SET
+		ADRES	FINALFLG	# FINALFLG
+CLUPDATE	CA	Z
+		TS	DISPDEX
+		TC	PHASCHNG
+		OCT	04024
+		TC	INTPRET
+		CLEAR	GOTO
+			UPDATFLG
+			QSAVED
+
+# Page 483
+# ***** DISPLAYE *****
+#
+# SUBROUTINES USED
+#	BANKCALL
+#	GOFLASHR
+#	GOTOP00H
+#	BLANKET
+#	ENDOFJOB
+
+DISPLAYE	EXTEND
+		QXCH	NORMEX
+		CAF	V06N55
+		TCR	BANKCALL
+		CADR	GOFLASH
+		TCF	GOTOP00H
+		TC	NORMEX
+		TCF	-5
+		
+# Page 484
+# ***** P3XORP7X *****
+
+P3XORP7X	CAF	HIGH9
+		MASK	MODREG
+		EXTEND
+		BZF	+2
+		INCR	Q
+		RETURN
+
+# ***** VNP00H *****
+#
+# SUBROUTINES USED
+#	BANKCALL
+#	GOFLASH
+#	GOTOP00H
+
+		SETLOC P30SUBS
+		BANK
+
+VNP00H		EXTEND
+		QXCH	RTRN
+		TS	VERBNOUN
+		CAF	VNBANK		# ***** THIS ROUTINE MUST REMAIN IN
+		XCH	FBANK		#       FIXED-FIXED *****
+		TS	TBASE5		# * WATCH OUT *
+		
+		CA	VERBNOUN
+		TCR	BANKCALL
+		CADR	GOFLASH
+		TCF	GOTOP00H
+		TCF	+2
+VNBANK		TC	-5
+
+		CA	TBASE5
+		TS	FBANK
+		TC	RTRN
+
+# Page 485
+# ***** CONSTANTS *****
+
+V06N37		VN	0637
+V06N55		VN	0655
+V06N58		VN	0658
+V06N59		VN	0659
+V06N81		VN	0681
+V16N45		VN	1645
+		SETLOC	CSI/CDH
+		BANK
+		
+TWOPI		2DEC	6.283185307 B-4
+MAX250		2DEC	25 E3 B-28	# RSB 2004 added the B-28. OH 2009 leave?
+THIRD		2DEC	.333333333
+ELEPS		2DEC	.27777777 E-3
+DECTWO		OCT	2
+DP-.01		OCT	77777		# CONSTANTS
+		OCT	61337		# ADJACENT	-.01 FOR MGA DSP
+EPSFOUR		2DEC	.0416666666
+
+# Page 486
+# ***** INITVEL *****
+# MOD NO -1			LOG SECTION -- P34-P35, P74-P75
+# MOD BY WHITE, P.		DATE:  21 NOV 67
+#
+# FUNCTIONAL DESCRIPTION
+#	THIS SUBROUTINE COMPUTES THE REQUIRED INITIAL VELOCITY VECTOR FOR
+#	A TRAJECTORY OF SPECIFIC TRANSFER TIME BETWEEN SPECIFIED INITIAL
+#	AND TARGET POSITIONS.  THE TRAJECTORY MAY BE EITHER CONIC OR
+#	PRECISION DEPENDING ON AN INPUT PARAMETER (NAMELY, NUMBER OF
+#	OFFSETS).  IN ADDITION, IN THE PRECISION TRAJECTORY CASE, THE
+#	SUBROUTINE ALSO COMPUTES AN OFFSET TARGET VECTOR, TO BE USED
+#	DURING PURE-CONIC CROSS-PRODUCT STEERING.  THE OFFSET TARGET
+#	VECTOR IS THE TERMINAL POSITION VECTOR OF A CONIC TRAJECTORY WHICH
+#	HAS THE SAME INITIAL STATE AS A PRECISION TRAJECTORY WHOSE
+#	TERMINAL POSITION VECTOR IS THE SPECIFIED TARGET VECTOR.
+#
+#	IN ORDER TO AVOID THE INHERENT SINGULARITIES IN THE 180 DEGREE
+#	TRANSFER CASE WHEN THE (TRUE OR OFFSET) TARGET VECTOR MAY BE
+#	SLIGHTLYOUT OF THE ORBITAL PLANE, THIS SUBROUTINE ROTATES THIS
+#	VECTOR INTO A PLANE DEFINED BY THE INPUT INITIAL POSITION VECTOR
+#	AND ANOTHER INPUT VECTOR (USUALLY THE INITIAL VELOCITY VECTOR),
+#	WHENEVER THE INPUT TARGET VECTOR LIES INSIDE A CONE WHOSE VERTEX
+#	IS THE ORIGIN OF COORDINATES, WHOSE AXIS IS THE 180 DEGREE
+#	TRANSFER DIRECTION, AND WHOSE CONE ANGLE IS SPECIFIED BY THE USER.
+#
+#	THE LAMBERT SUBROUTINE IS UTILIZED FOR THE CONIC COMUTATIONS AND
+#	THE COASTING INTEGRATION SUBROUTINE IS UTILIZED FOR THE PRECISION
+#	TRAJECTORY COMPUTATIONS.
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		INITVEL
+#	L+2	(RETURN -- ALWAYS)
+#
+# INPUT
+#	(1)	RINIT		INITIAL POSITION RADIUS VECTOR
+#	(2)	VINIT		INITIAL POSITION VELOCITY VECTOR
+#	(3)	RTARG		TARGET POSITION RADIUS VECTOR
+#	(4)	DELLT4		DESIRED TIME OF FLIGHT FROM RINIT TO RTARG
+#	(5)	INTIME		TIME OF RINIT
+#	(6)	0D		NUMBER OF ITERATIONS OF LAMBERT/INTEGRVS
+#	(7)	2D		ANGLE TO 180 DEGREES WHEN ROTATION STARTS
+#	(8)	RTX1		-2 FOR EARTH, -10D FOR LUNAR
+#	(9)	RTX2		COORDINATE SYSTEM ORIGIN -- 0 FOR EARTH, 2 FOR LUNAR
+#	PUSHLOC SET AT 4D
+#
+# Page 487
+# OUTPUT
+#	(1)	RTARG		OFFSET TARGET POSITION VECTOR
+#	(2)	VIPRIME		MANEUVER VELOCITY REQUIRED
+#	(3)	VTPRIME		VELOCITY AT TARGET AFTER MANEUVER
+#	(4)	DELVEET3	DELTA VELOCITY REQUIRED FOR MANEUVER
+#
+# SUBROUTINES USED
+#	LAMBERT
+#	INTSTALL
+#	INTEGRVS
+
+		SETLOC	INTVEL
+		BANK
+
+		COUNT	11/INITV
+INITVEL		SET			# COGA GUESS NOT AVAILABLE
+			GUESSW
+HAVEGUES	VLOAD	STQ
+			RTARG
+			NORMEX
+		STORE	RTARG1
+		SLOAD	BHIZ
+			RTX2
+			INITVEL1
+		VLOAD	VSL2
+			RINIT		# B29
+		STOVL	RINIT		# B27
+			VINIT		# B7
+		VSL2
+		STOVL	VINIT		# B5
+			RTARG1
+		VSL2
+		STORE	RTARG1
+
+# INITIALIZATION
+
+INITVEL1	SSP	DLOAD		# SET ITCTR TO -1,LOAD MPAC WITH E4 (PL 2D)
+			ITCTR
+			0 -1
+		COSINE	SR1		# CALCULATE COSINE (E4) (+2)
+		STODL	COZY4		# SET COZY4 TO COSINE (E4) (PL 0D)
+		LXA,2	SXA,2
+			MPAC
+			VTARGTAG	# SET VTARGTAG TO 0D (SP)
+		VLOAD
+			RINIT
+		STOVL	R1VEC		# R1VEC EQ RINIT
+			RTARG1
+# Page 488
+		STODL	R2VEC		# R2VEC EQ RTARG
+			DELLT4
+		STORE	TDESIRED	# TDESIRED EQ DELLT4
+		SETPD	VLOAD
+			0D		# INITIALIZE PL TO 0D
+			RINIT		# MPAC EQ RINIT (+29)
+		UNIT	PUSH		# UNIT(RI) (+1)		(PL 6D)
+		VXV	UNIT
+			VINIT		# MPAC EQ UNIT(RI) X VI (+8)
+		STOVL	UN
+			RTARG1
+		UNIT	DOT		# TEMP=URT.URI (+2)	(PL 0D)
+		DAD	CLEAR
+			COZY4
+			NORMSW
+		STORE	COZY4
+INITVEL2	BPL	SET
+			INITVEL3	# UN CALCULATED IN LAMBERT
+			NORMSW
+
+# ROTATE RC INTO YC PLANE -- SET UNIT NORMAL TO YC
+
+		VLOAD	PUSH		#		                   (PL 6D)
+			R2VEC		# RC TO 6D (+29)
+		ABVAL	PDVL		# RC TO MPAC, ABVAL(RC) (+29) TO OD(PL 2D)
+		PUSH	VPROJ		#                                  (PL 8D)
+			UN
+		VSL2	BVSU
+		UNIT	VXSC		#                                  (PL 0D)
+		VSL1
+		STORE	R2VEC
+		TLOAD	SLOAD
+			ZEROVEC
+			ITCTR
+		BPL	VLOAD
+			INITVEL3
+			R2VEC
+		STORE	RTARG1
+INITVEL3	DLOAD	PDVL		#				(PL 2D)
+			MUEARTH		# POSITIVE VALUE
+			R2VEC
+		UNIT	PDVL		# 2D = UNIT(R2VEC)		(PL 8D)
+			R1VEC
+		UNIT	PUSH		# 8D = UNIT(R1VEC)		(PL 14D)
+		VXV	VCOMP		# -N = UNIT(R2VEC) X UNIT(R1VEC)
+			2D
+		PUSH			#				(PL 20D)
+		LXA,1	DLOAD
+			RTX1
+			18D
+		BMN	INCR,1
+# Page 489
+			+2
+		DEC	-8
+		INCR,1	SLOAD
+			10D
+			X1
+		BHIZ	VLOAD		#			(PL 14D)
+			+2
+		VCOMP	PUSH		#			(PL 20 D)
+		VLOAD			#			(PL 14D)
+		VXV	DOT		#			(PL 2D)
+		BPL	DLOAD		#			(PL 0D)
+			INITVEL4
+		DCOMP	PUSH		#			(PL 2D)
+INITVEL4	LXA,2	SXA,2
+			0D
+			GEOMSGN
+
+# SET INPUTS UP FOR LAMBERT
+
+		LXA,1	CALL
+			RTX1
+#  OPERATE THE LAMBERT CONIC ROUTINE (COASTFLT SUBROUTINE)
+
+			LAMBERT
+
+# ARRIVED AT SOLUTION IS GOOD ENOUGH ACCORDING TO SLIGHTLY WIDER BOUNDS.
+
+		CLEAR	VLOAD
+			GUESSW
+			VVEC
+
+# STORE CALCULATED INITIAL VELOCITY REQUIRED IN VIPRIME
+
+		STODL	VIPRIME		# INITIAL VELOCITY REQUIRED (+7)
+
+# IF NUMIT IS ZERO, CONTINUE AT INITVELB, OTHERWISE
+# SET UP INPUTS FOR ENCKE INTEGRATION (INTEGRVS).
+
+			VTARGTAG
+		BHIZ	CALL
+			INITVEL7
+			INTSTALL
+		SLOAD	CLEAR
+			RTX2
+			MOONFLAG
+		BHIZ	SET
+			INITVEL5
+			MOONFLAG
+INITVEL5	VLOAD
+			RINIT
+		STORE	R1VEC
+# Page 490
+		STOVL	RCV
+			VIPRIME
+		STODL	VCV
+			INTIME
+		STORE	TET
+		DAD	CLEAR
+			DELLT4
+			INTYPFLG
+		STCALL	TDEC1
+			INTEGRVS
+		VLOAD
+			VATT1
+		STORE	VTARGET
+
+# IF ITERATION COUNTER (ITCTR) EQ NO. ITERATIONS (NUMIT), CONTINUE AT
+# INITVELC, OTHERWISE REITERATE LAMBERT AND ENCKE
+
+		LXA,2	INCR,2
+			ITCTR
+			1D		# INCREMENT ITCTR
+		SXA,2	XSU,2
+			ITCTR
+			VTARGTAG
+		SLOAD	BHIZ		# IF SP(MPAC) EQ 0, CONTINUE AT INITVELC
+			X2
+			INITVEL6
+
+# OFFSET CONIC TARGET VECTGOR
+
+		VLOAD	VSU
+			RTARG1
+			RATT1
+		VAD
+			R2VEC
+		STODL	R2VEC
+			COZY4
+		GOTO
+			INITVEL2	# CONTINUE ITERATING AT INITVEL2
+
+# COMPUTE THE DELTA VELOCITY
+
+INITVEL6	VLOAD
+			R2VEC
+		STORE	RTARG1
+INITVEL7	VLOAD	VSU
+			VIPRIME
+			VINIT
+		STOVL	DELVEET3	# DELVEET3 = VIPRIME-VINIT (+7)
+			VTARGET
+		STORE	VTPRIME
+		SLOAD	BHIZ
+			RTX2
+# Page 491
+			INITVELX
+		VLOAD	VSR2
+			VTPRIME
+		STOVL	VTPRIME
+			VIPRIME
+		VSR2
+		STOVL	VIPRIME
+			RTARG1
+		VSR2
+		STOVL	RTARG1
+			DELVEET3
+		VSR2
+		STORE	DELVEET3
+INITVELX	SETPD	VLOAD
+			0D
+			RTARG1
+		STCALL	RTARG
+			NORMEX
+
+# ***** END OF INITVEL ROUTINE *****
+
+# Page 492
+# ***** MIDGIM *****
+# MOD NO. 0, BY WILLMAN, SUBROUTINE RENDGUID, LOG P34-P35, P74-P75
+# REVISION 03, 17 FEB 67
+#
+# IF THE ACTIVE VEHICLE IS DOING THE COMPUTATION, MIDGIM COMPUTES
+# THE POSITIVE MIDDLE GIMBAL ANGLE OF THE ACTIVE VEHICLE TO THE INPUT
+# DELTA VELOCITY VECTOR (0D IN PUSY LIST), OTHERWISE
+# MIDGIM CONVERTS THE INPUT DELTA VELOCITY VECTOR FROM INERTIAL COORDIN-
+# ATES TO LOCAL VERTICAL COORDINATES OF THE ACTIVE VEHICLE.
+#
+# ** INPUTS **
+#   NAME     MEANING					  	UNITS/SCALING/MODE
+#   AVFLAG   INT FLAG -- 0 IS CSM ACTIVE, 1 IS LEM ACTIVE	BIT
+#   COMPUTER INT FLAG -- 0 IS LEM COMPUTER, 1 IS CSM COMPUTER	BIT
+#   RINIT    ACTIVE VEHICLE RADIUS VECTOR			METERS/CSEC (+7) VT
+#   VINIT    ACTIVE VEHICLE VELOCITY VECTOR			METERS/CSEC (+7) VT
+#   0D(PL)   ACTIVE VEHICLE DELTA VELOCITY VECTOR		METERS/CSEC (+7) VT
+#
+# ** OUTPUTS **
+#   NAME     MEANING						UNITS/SCALING/MODE
+#   +MGA     + MIDDLE GIMBAL ANGLE				REVOLUTIONS (+0) DP
+#   DELVLVC  DELTA VELOCITY VECTOR IN LV COORD.			METERS/CSEC (+7) VT
+#   MGLVFLAG INT FLAG: 0 IS +MGA COMUTED, 1 IS DELVLVC COMP.	BIT
+#
+# ** CALLING SEQUENCE **
+#	L 	CALL
+#	L+1		MIDGIM
+#	L+2	(RETURN -- ALWAYS)
+#
+# ** NO SUBROUTINES CALLED **
+#
+# ** DEBRIS -- ERASABLE TEMPORARY USAGE **
+#	A,Q,L, PUSH LIST, MPAC.
+#
+# ** ALARMS -- NONE **
+
+# Page 493
+# MIDDLE GIMBAL ANGLE COMPUTATION
+		SETLOC	MIDDGIM
+		BANK
+
+		COUNT*	$$/MIDG
+
+HALFREV		2DEC	1 B-1
+
+MIDGIM		BON	BOFF	
+			AVFLAG
+			MIDGIM1
+			COMPUTER
+			GET.LVC
+			
+# COMPUTE +MGA IF AVFLAG AND COMPUTER HAVE OPPOSITE VALUES.
+
+GET+MGA		VLOAD	UNIT		# (PL 0D) V (+7) TO MPAC UNITIZE UV (+1)
+		DOT	SL1		# DOT UV WITH Y(STABLE MEMBER) AND RESCALE
+			REFSMMAT +6	# FROM +2 TO +1 FOR ASIN ROUTINE
+		ARCSIN	BPL
+			SETMGA
+		DAD	DAD		# CONVERT -MGA TO +MGA BY
+			HALFREV		# ADDING ONE REVOLUTION
+			HALFREV
+SETMGA		STORE	+MGA
+		CLR	RVQ		# CLEAR MGLVFLAG TO INDICATE +MGA CALC
+			MGLVFLAG	# AND EXIT
+			
+MIDGIM1		BOFF
+			COMPUTER
+			GET+MGA
+			
+# COMPUTE DELVLVC IF AVFLAG AND COMPUTER HAVE SAME VALUES
+			
+GET.LVC		VLOAD	UNIT		# (PL 6D) R (+29) IN MPAC UNITZE UR
+			RINIT
+		VCOMP			# U(-R)
+		STORE	18D		# U(-R) TO 18D
+		VXV	UNIT		# U(-R)*V EQ V*U(R), U(V*R)
+			VINIT
+		STORE	12D		# U(V*R) TO 12D
+		VXV	UNIT		# U(V*R)*U(-R), U((V*R)*(-R))
+			18D
+		STOVL	6D		# TRANSFORMATION MATRIX IS IN 6D (+1)
+			0D		# DELTA V (+7) IN 0D
+		MXV	VSL1		# CONVERT FROM INER COOR TO LV COOR (+8)
+			6D		# AND SCALE +7 IN MPAC
+		STORE	DELVLVC		# STORE IN DELVLVC (+7(
+		SET	RVQ		# SET MGLVFLAG TO INDICATE LVC CALC
+			MGLVFLAG	# AND EXIT
+
+# ***** END OF MIDGIM ROUTINE *****
+
+# Page 494
+SELECTMU	AXC,1	AXT,2
+			2D
+			0D
+		BOFF
+			CMOONFLG
+			SETMUER
+		AXC,1	AXT,2
+			10D
+			2D
+SETMUER		DLOAD*	SXA,1
+			MUTABLE +4,1
+			RTX1
+		STODL*	RTSR1/MU
+			MUTABLE -2,1
+		BOFF	SR
+			CMOONFLG
+			RTRNMU
+			6D
+RTRNMU		STORE	RTMU
+		SXA,2	CLEAR
+			RTX2
+			FINALFLG
+		GOTO
+			VN1645
+
+# Page 495
+# ***** PERIAPO *****
+# MOD NO -1			LOG SECTION -- P34-P35, P74-P75
+# MOD BY WHITE, P.		DATE 18 JAN 68
+#
+# FUNCTIONAL DESCRIPTION
+#	THIS SUBROUTINE COMPUTES THE TWO BODY APOCENTER AND PERICENTER
+#	ALTITUDES GIVEN THE POSITION AND VELOCITY VECTORS FOR A POINT ON
+#	THE TRAJECTORY AND THE PRIMARY BODY.
+#
+#	SETRAD IS CALLED TO DETERMINE THE RADIUS OF THE PRIMARY BODY.
+#
+#	APSIDES IS CALLED TO SOVE FOR THE TWO BODY RADII OF APOCENTER AND
+#	PERICENTER AND THE ECCENTRICITY OF THE TRAJECTORY.
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		PERIAPO
+#	L+2	(RETURN -- ALWAYS)
+#
+# INPUT
+#	(1)	RVEC	POSITION VECTOR IN METERS
+#			SCALE FACTOR -- EARTH +29, MOON +27
+#	(2)	VVEC	VELOCITY VECTORY IN METERS/CENTISECOND
+#			SCALE FACTOR -- EARTH +7, MOON +5
+#	(3)	X1	PRIMARY BODY INDICATOR
+#			EARTH -2, MOON -10
+#
+# OUTPUT
+#	(1)	2D	APOCENTER RADIUS IN METERS
+#			SCALE FACTOR -- EARTH +29, MOON +27
+#	(2)	4D	APOCENTER ALTITUDE IN METERS
+#			SCALE FACTOR -- EARTH +29, MOON +27
+#	(3)	6D	PERICENTER RADIUS IN METERS
+#			SCALE FACTOR -- EARTH +29, MOON +27
+#	(4)	8D	PERICENTER ALTITUDE IN METERS
+#			SCALE FACTOR -- EARTH +29, MOON +27
+#	(5)	ECC	ECCENTRICITY OF CONIC TRAJECTORY
+#			SCALE FACTOR -- +3
+#	(6)	XXXALT	RADIUS OF THE PRIMARY BODY IN METERS
+#			SCALE FACTOR -- EARTH +29, MOON +27
+#	(7)	PUSHLOC	EQUALS 10D
+#
+# SUBROUTINES USED
+#	SETRAD
+# Page 496
+#	APSIDES
+
+		SETLOC	APOPERI
+		BANK
+
+		COUNT*	$$/PERAP
+
+RPAD		2DEC	6373338 B-29	# STANDARD RADIUS OF PAD 37-B.
+					# = 20 909 901.57 FT
+
+PERIAPO1	LXA,2	VSR*
+			RTX2
+			0,2
+		STOVL	VVEC
+		LXA,1	VSR*
+			RTX1
+			0,2
+		STORE	RVEC
+PERIAPO		STQ	CALL
+			NORMEX
+			SETRAD
+		STCALL	XXXALT
+			APSIDES
+		SETPD	PUSH		# 2D = APOCENTER RADIUS		B29 OR B27
+			2D
+		DSU	PDDL		# 4D = APOGEE ALTITUDE 		B29 OR B27
+			XXXALT
+			0D
+		PUSH	DSU		# 6D = PERICENTER RADIUS	B29 OR B27
+			XXXALT
+		PUSH	GOTO		# 8D = PERIGEE ALTITUDE 	B29 OR B27
+			NORMEX
+# Page 497
+# SETRAD
+SETRAD		DLOAD	PUSH
+			RPAD
+		SXA,1	INCR,2
+			X2
+			2D
+		SLOAD	BHIZ
+			X2
+			SETRADX
+		VLOAD	ABVAL
+			RLS
+		PDDL
+SETRADX		DLOAD	RVQ
+
+# Page 498
+# PRECSET
+PRECSET		STQ
+			NORMEX
+		STCALL	TDEC2
+			LEMPREC
+		CALL
+			LEMSTORE
+		DLOAD
+			TDEC2
+		STCALL	TDEC1
+			CSMPREC
+		CALL
+			CSMSTORE
+		GOTO
+			NORMEX
+LEMSTORE	VLOAD	BOFF
+			RATT
+			AVFLAG
+			PASSIVE
+ACTIVE		STOVL	RACT3
+			VATT
+		STORE	VACT3
+		RVQ
+CSMSTORE	VLOAD	BOFF
+			RATT
+			AVFLAG
+			ACTIVE
+PASSIVE		STOVL	RPASS3
+			VATT
+		STORE	VPASS3
+		RVQ
+
+# Page 499
+# VECSHIFT
+VECSHIFT	LXA,2	VSR*
+			RTX2
+			0,2
+		LXA,1	PDVL
+			RTX1
+		VSR*	PDVL
+			0,2
+		RVQ
+
+# Page 500
+# SHIFTR1
+SHIFTR1		LXA,2	SL*
+			RTX2
+			0,2
+		RVQ
+
+# Page 501
+# PROGRAM DESCRIPTION
+#
+# SUBROUTINE NAME	R36	OUT-OF-PLANE RENDEZVOUS ROUTINE
+# MOD NO. 2		DATE 2 JANUARY 1969
+# MOD BY A.W.BANCROFT	LOG SECTION EXTENDED VERBS
+#
+# FUNCTIONAL DESCRIPTION
+#
+# TO DISPLAY AT ASTRONAUT REQUEST LGC CALCULATED RENDEZVOUS
+# OUT-OF-PLANE PARAMETERS (Y, YDOT, PSI).  (REQUESTED BY DSKY).
+#
+# CALLING SEQUENCE
+#	ASTRONAUT REQUEST THROUGH DSKY V 90 E
+#
+# SUBROUTINES CALLED
+#	EXDSPRET
+#	GOMARKF
+#	CSMPREC
+#	LEMPREC
+#	SGNAGREE
+#	LOADTIME
+#
+# NORMAL EXIT MODES
+#	ASTRONAUT REQUEST THROUGH DSKY TO TERMINATE PROGRAM V 34 E
+#
+# ALARM OR ABORT EXIT MODES
+#	NONE
+#
+# OUTPUT
+#	DECIMAL DISPLAY OF TIME, Y, YDOT AND PSI
+#
+#	DISPLAYED VALUES Y, YDOT, AND PSI, ARE STORED IN ERASABLE
+#	REGISTERS RANGE, RRATE, AND RTHETA RESPECTIVELY.
+#
+# ERASABLE INITIALIZATION REQUIRED
+#	CSM AND LEM STATE VECTORS
+#
+# DEBRIS
+#	CENTRALS A,Q,L
+#	OTHER:  THOSE USED BY THE ABOVE LISTED SUBROUTINES
+
+		BANK	20
+		SETLOC	R36CM
+		BANK
+# Page 502
+		EBANK=	RPASS36
+		
+		SBANK=	R36A
+		COUNT*	$$/R36
+
+R36		CAF	TWO
+		TS	OPTIONX
+		CAF	ONE
+		TS	OPTIONX +1
+		CAF	OPTION36	# V 04 N 12
+		TC	BANKCALL
+		CADR	GOXDSPF
+		TC	ENDEXT		# TERMINATE
+		TC	+2		# PROCEED
+		TC	-5		# R2 LOADED VIA DSKY
+		TC 	POSTJUMP
+		CADR	R36A
+		
+OPTION36	VN	0412
+
+		SETLOC	R36LM
+		BANK
+
+R36A		ZL
+		CAF	ZERO		# SET TIME OF EVENT TO ZERO FOR FIRST
+		DXCH	DSPTEMX		# DISPLAY
+		LXCH	OPTIONY		# SAVE VEH. OPTION
+R36P3		CAF	V06N16N
+		TC	BANKCALL
+		CADR	GOMARKF
+		TCF	ENDEXT		# TERMINATE
+		TCF	+2		# PROCEED
+		TCF	-5		# RECYCLE FOR ASTRONAUT INPUT TIME
+		DXCH	DSPTEMX
+		EXTEND
+		BZF	LREGCHK		# A-REG ZERO GOTO CHECK L-REG FOR ZERO
+ASTROTIM	DXCH	MPAC		# A-REG NON-ZERO, TIME = ASTRO INPUT TIME
+		TC	INTPRET
+		RTB	GOTO
+			DPMODE
+			R36INT
+			
+		SETLOC	R36LM1
+		BANK
+		
+R36INT		STORE	TDEC1
+		SLOAD	SR1
+			OPTIONY
+		BHIZ	CALL
+			R36PROG2	# FOR CSM DISPLAY
+# Page 503
+			THISPREC	# FOR LEM DISPLAY
+		GOTO
+			R36PROG3
+R36PROG2	CALL
+			OTHPREC
+R36PROG3	VLOAD	PDVL
+			VATT
+			RATT		# _
+		STORE	RPASS36		# R
+		UNIT	PDVL		#  P
+		VXV	UNIT		# -
+		STADR
+		STODL	UNP36		# U
+			TAT
+		STORE	TDEC1
+		SLOAD	SR1
+			OPTIONY
+		BHIZ	CALL
+			R36PROG4	# FOR CSM DISPLAY
+			OTHPREC		# FOR LEM DISPLAY
+		GOTO
+			R36PROG5
+R36PROG4	CALL
+			THISPREC
+R36PROG5	VLOAD	PDVL		#			_
+			VATT		# VELOCITY VECTOR	V	00D
+			RATT		# 			 A
+		PDDL	
+			TAT		# SAVE TIME IN LOCATION 30D FOR REDISPLAY
+		STOVL	30D		#		        _
+		PUSH	PUSH		# POSITION VECTOR	R   IN	06D AND 12D
+		BVSU	PDVL		#			_A  _
+			RPASS36		# LINE OF SIGHT VECTOR	R - R	12D
+		DOT	SL1		#			 P   A
+			UNP36		#     _   _
+		STOVL	RANGE		# Y = U . R
+			00D		#          A
+		DOT	SL1
+			UNP36		# .   _   _
+		STOVL	RRATE		# Y = U . V
+			06D		# _        A
+		UNIT	PUSH		# U  = UNIT ( R  )		18D
+		VXV	VXV		#  RA          A
+			00D		#  _    _     _     _
+			18D		# (U  X V ) X U   = U
+		VSL2	UNIT		#   RA   A     RA    A
+		UNIT	GOTO
+			R36B
+		
+		SETLOC	R36CM1
+# Page 504
+		BANK
+
+R36B		STOVL	00D		# UNIT HORIZONTAL IN FORWARD DIR. 00D
+			18D
+		DOT	VXSC		# _
+			12D		# U
+		VSL2			#  L
+		BVSU	UNIT
+		UNIT
+		PUSH	DOT		# LOS PROJECTED INTO HORIZONTAL  12D
+			00D		# PLANE
+		SL1	ARCCOS		#              _   _
+		STOVL	RTHETA		# PSI = ARCCOS(U . U )
+		VXV	DOT		#               A   L
+			00D
+		BPL	DLOAD
+			R36TAG2
+			DPPOSMAX
+		DSU
+			RTHETA
+		STCALL	RTHETA
+			R36TAG2
+			
+		SETLOC	R36LM
+		BANK
+		
+R36TAG2		DLOAD	RTB
+			30D
+			SGNAGREE
+		STORE	DSPTEMX
+		EXIT
+		CAF	V06N90N		# DISPLAY Y, YDOT, AND PSI.
+		TC	BANKCALL
+		CADR	GOMARKF
+		TCF	ENDEXT		# TERMINATE
+		TCF	ENDEXT		# PROCEED, END OF PROGRAM
+		TCF	R36P3		# REDISPLAY OUTPUT
+LREGCHK		XCH	L
+		EXTEND
+		BZF	ENTTIM2		# L-REG ZERO, SET TIME = PRESENT TIME
+		XCH	L		# L-REG NON ZERO, TIME = ASTRO INPUT TIME
+		TCF	ASTROTIM
+ENTTIM2		TC	INTPRET
+		RTB	GOTO
+			LOADTIME
+			R36INT
+V06N16N		VN	00616
+V06N90N		VN	00690
+		SBANK=	LOWSUPER
diff --git a/P37_P70.s b/P37_P70.s
new file mode 100644
index 0000000..544f574
--- /dev/null
+++ b/P37_P70.s
@@ -0,0 +1,1950 @@
+# Copyright:	Public domain.
+# Filename:	P37_P70.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:	Jim Lawton <jim.lawton@gmail.com>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	890-933
+# Mod history:	2009-05-11 JVL	Adapted from the Colossus249/ file
+#				of the same name, using Comanche055 page
+#				images.
+#		2009-05-20 RSB	Added missing label V2T179.  Fixed POODOO -> P00DOO.
+#		2009-05-23 RSB	In RTD18, corrected a STOVL DELVLVC to 
+#				STODL DELVLVC and a STODL 02D to STORE 02D.
+#
+# 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 890
+		BANK	31
+		SETLOC	RTE1
+		BANK
+		
+		EBANK=	RTEDVD
+		COUNT	31/P37
+		
+# PROGRAM DESCRIPTION:  P37, RETURN TO EARTH
+#
+# DESCRIPTION
+#	A RETURN TO EARTH TRAJECTORY IS COMPUTED PROVIDED THE CSM IS OUTSIDE THE LUNAR SPHERE OF INFLUENCE AT THE
+#	TIME OF IGNITION.  INITIALLY A CONIC TRAJECTORY IS DETERMINED AND RESULTING IGNITION AND REENTRY PARAMETERS ARE
+# 	DISPLAYED TO THE ASTRONAUT.  THEN IF THE ASTRONAUT SO DESIRES, A PRECISION TRAJECTORY IS DETERMINED WTIH THE
+# 	RESULTING IGNITION AND REENTRY PARAMETERS DISPLAYED.  UPON FINAL ACCEPTANCE BY THE ASTRONAUT, THE PROGRAM
+# 	COMPUTES AND STORES THE TARGET PARAMETERS FOR RETURN TO EARTH FOR USE BY SPS PROGRAM (P40) OR RCS PROGRAM (P41).
+#
+# CALLING SEQUENCE
+#	L	TC	P37
+#
+# SUBROUTINES CALLED
+#	PREC100
+#		V2T100
+#		RTENCK2
+#		RTENCK3
+#		TIMERAD
+#		PARAM
+#	V2T100
+#		GAMDV10
+#		XT1LIM
+#		DVCALC
+#	RTENCK1
+#		INTSTALL
+#		INTEGRVS
+#	RTEVN
+#		RETDISP
+#		TMRAD100
+#		AUGEKUGL
+#		LAT-LONG
+#	TMRAD100
+#		TIMERAD
+#	INVC100
+#		CSMPREC
+#	GETERAD
+#	TIMETHET
+#	P370ALRM
+#	VN1645
+#	POLY
+#
+# ERASABLE INITIALIZATION REQUIRED
+#	CSM STATE VECTOR
+# Page 891
+#	NJETSFLG	NUMBER OF JETS IF THE RCS PROPULSION SYSTEM SELECTED	STATE FLAG	0=4 JETS  1=2 JETS
+#
+# ASTRONAUT INPUT
+#	SPRTETIG	TIME OF IGNITION (OVERLAYS TIG)				DP	B28	CS
+#	VPRED		DESIRED CHANGE IN VELOCITY AT TIG(PROGRM COMPUTED IF 0)	DP	B7	METERS/CS
+#	GAMMAEI		DESIRED FLIGHT PATH ANGLE AT REENTRY (COMPUTED IF 0)	DP	B0	REVS + ABOVE HORIZ.
+#	OPTION2		PROPULSION SYSTEM OPTION				SP	B14	1=SPS, 2=RCS
+#
+# OUTPUT
+#    CONIC OR PRECISION TRAJECTORY DISPLAY
+#	VPRED	 	VELOCITY MAGNITUDE AT 400,000 FT. ENTRY ALTITUDE	DP	B7	METERS/CS
+#	T3TOT4		TRANSIT TIME TO 400,000 FT. ENTRY ALTITUDE		DP	B28	CS
+#	GAMMAEI		FLIGHT PATH ANGLE AT 400,00 FT. ENTRY ALTITUDE		DP	B0	REVS + ABOVE HORIZON
+#	DELVLVC		INITIAL VELOCITY CHANGE VECTOR IN LOCAL VERTICAL COORD.	VECTOR	B7	METERS/CS
+#	LAT(SPL)	LATITUDE OF THE LANDING SITE				DP	B0	REVS
+#	LNG(SPL)	LONGITUDE OF THE LANDING SITE				DP	B0	REVS
+#    TARGETING COMPUTATION DISPLAY
+#	TIG		RECOMPUTED TIG BASED ON THRUST OPTION			DP	B28	CS
+#	TTOGO		TIME FROM TIG						DP	B28	CS
+#	+MGA		POSITIVE MIDDLE GIMBAL ANGLE				DP	B0	REVS -.02 IF REFSMFLG=0
+#    THRUST PROGRAM COMMUNICATION
+#	XDELVFLG	EXTERNAL DELTA V FLAG					STATE	FLAG	SET 0 FOR LAMBERT AIMPT
+#	NORMSW		LAMBERT AIMPT ROTATION SWITCH				STATE	FLAG	SET 0 FOR NO ROTATION
+#	ECSTEER		CROSS PRODUCT STEERING CONSTANT				SP	B2	SET 1
+#	RTARG		CONICALLY INTEGRATED REENTRY POSITION VECTOR		VECTOR	B29	METERS
+#	TPASS4		REENTRY TIME						DP	B28	CS
+
+P37		TC	PHASCHNG	# P37 IS NOT RESTARTABLE
+		OCT	4
+
+		TC	INTPRET
+		AXT,1	SXA,1
+		OCT	04000
+			ECSTEER
+		DLOAD
+			ZEROVECS
+		STORE	VPRED
+		STORE	GAMMAEI
+		EXIT
+		CAF	V6N33RTE	# INPUT TIG	STORED IN SPRTETIG
+		TCR	P370GOF		#		OVERLAYED WITH TIG
+		TCF	-2		# DISPLAY NEW DATA
+		CAF	V6N60RTE	# INPUT REENTRY ANGLE IN GAMMAEI
+		TCR	P37GFRB1	#	AND DESIRED DELTA V IN RETDVD
+		TCF	-2		# DISPLAY NEW DATA
+RTE299		TC	INTPRET
+		SSP	DLOAD
+			OVFIND
+			0
+			VPRED
+# Page 892
+		STODL	RTEDVD
+			GAMMAEI
+		STODL	RTEGAM2D
+			1RTEB13
+		STODL	CONICX1
+			C4RTE
+		STCALL	MAMAX1
+			INVC100		# GET R(T1)/,V(T1)/,UR1/,UH/
+		CLEAR	DLOAD
+			SLOWFLG
+			RTEDVD
+		BPL	ABS
+			RTE317
+		STORE	RTEDVD
+		DLOAD	DSU
+			R(T1)
+			K1RTE
+		BMN	SET
+			RTE317
+			SLOWFLG
+RTE317		DLOAD	EXIT
+			R(T1)
+		TC	POLY
+		DEC	2
+		2DEC	181000434. B-31
+		2DEC	1.50785145 B-2
+		2DEC*	-6.49993057 E-9 B27*
+		2DEC*	9.76938926 E-18 B56*
+		TC	INTPRET
+		SL1
+		STODL	MAMAX2		# C0+C1*R+C2*R**2+C3*R**3=MAMAX2 B30
+			M9RTEB28
+		STODL	NN1A
+			K2RTE
+RTE320		STODL	RCON		# RCON=K2
+			RTEGAM2D
+		BZE	BDSU
+			RTE340		# GOTORTE340 IF REENTRY ANGLE NOT INPUT
+			1RTEB2
+		PUSH	COS		#					PL02D
+		PDDL	SIN
+		BDDV	STADR		#					PL00D
+		STCALL	X(T2)		# X(T2)=COT(GAM2D)			B0
+			RTE360
+RTE340		DLOAD	DSU
+			R(T1)
+# Page 893
+			K1RTE
+		BMN	DLOAD
+			RTE350
+			K4RTE
+		STCALL	X(T2)		# X(T2)=K4
+			RTE360
+RTE350		DLOAD
+			K3RTE
+		STORE	X(T2)		# X(T2)=K3
+RTE360		CALL
+			V2T100
+		BZE	GOTO
+			RTE367
+			RTEALRM
+RTE367		VLOAD
+			R(T1)/
+		STODL	RVEC
+			RCON
+		STOVL	RDESIRED
+			V2(T1)/
+		STCALL	VVEC
+			TMRAD100
+		DAD
+			T1
+		STODL	T2
+			RTEGAM2D
+		BZE	GOTO
+			RTE369
+			RTE372
+RTE369		VLOAD	ABVAL
+			V(T2)/
+		EXIT
+		TC	POLY
+		DEC	2
+		2DEC	0
+		2DEC	-4.8760771 E-2 B4
+		2DEC	4.5419476 E-4 B11
+		2DEC	-1.4317675 E-6 B18
+		
+		TC	INTPRET
+		DAD
+			RTED1
+		SL3	GOTO		# X(T2),=D1+D2V2+D3V2**2+D4V2**3
+			RTE373
+RTE372		DLOAD			# X(T2),=X(T2)
+			X(T2)
+RTE373		DSU	PUSH		# X(T2)ERR				B0 PL02D
+# Page 894
+			X(T2)
+		VLOAD	UNIT
+			R(T2)/		#					B58
+		STCALL	ALPHAV
+			GETERAD
+		DAD
+			E3RTE
+		PUSH	DSU		# RCON,=(E1/1+E2BETA11)**.5)+E3 	B29 PL04D
+			RCON
+		ABS	DSU
+			EPC2RTE
+		BMN	GOTO
+			RTE374
+			RTE375
+RTE374		DLOAD	ABS
+			00D
+		DSU	BMN
+			EPC3RTE
+			P37E
+RTE375		DLOAD	DAD
+			NN1A
+			1RTEB28
+		BMN	SLOAD
+			RTE380
+			OCT605
+		GOTO
+			RTEALRM		# TOO MANY ITERATIONS
+RTE380		STORE	NN1A
+		DSU	BZE
+			M8RTEB28
+			RTE385
+		DLOAD	DSU
+			00D
+			DRCON
+		NORM	PDDL		# X(T2)ERR-X(T2)ERR,=Z1			PL06D
+			X1
+			RPRE'
+		DSU	DDV		# X(T2)PRI-X(T2)=Z2			PL04D
+			X(T2)
+		DMP	SL*		# DX(T2)=X(T2)ERR(Z2/Z1)
+			00D
+			0,1
+		GOTO
+			RTE390
+RTE385		DLOAD			# DX(T2)=X(T2)ERR
+			00D
+RTE390		STODL	16D		# DX(T2)				PL02D
+		STADR
+		STODL	RCON		# RCON=RCON,
+		BOV
+# Page 895
+			RTE360
+		STODL	DRCON		# X(T2)ERR,=X(T2)ERR
+			X(T2)
+		STODL	RPRE'		# X(T2)PRI=X(T2)
+			16D
+		DAD
+			X(T2)
+		STCALL	X(T2)		# X(T2)=X(T2)+DX(T2)
+			RTE360		# REITERATE
+P37E		CALL			# DISPLAY CONIC SOLUTION
+			RTEVN
+RTE505		DLOAD	DMP
+			PCON
+			BETA1
+		BDSU	BZE
+			RCON
+			RTE510
+		BMN	DLOAD
+			RTE510
+			1RTEB2
+		GOTO			# ENTRY NEAR APOGEE
+			RTE515
+RTE510		DLOAD	DCOMP		# ENTRY NEAR PERIGEE
+			1RTEB2
+RTE515		STCALL	PHI2
+			PREC100		# PRECISION TRAJECTORY COMPUTATION
+RTE625		BZE
+			P37G
+RTEALRM		CALL
+			P370ALRM
+		EXIT
+		TCF	P37		# RECYCLE AFTER ALARM DISPLAY
+		
+# RETURN TO EARTH DISPLAY SUBROUTINE
+
+RTEVN		STQ	CALL
+			VNSTORE
+			RTEDISP		# DISPLAY PREPARATION
+		EXIT
+		CAF	V6N61RTE	# LATITUDE,LONGITUDE,BLANK
+		TCR	P370GOFR	#   IN LAT(SPL),LNG(SPL),-
+		CAF	FOUR
+		TCR	37BLANK +1
+		TCF	+5
+		TCF	P37		# RECYCLE
+		CAF	V6N39RTE	# T21 HRS,MIN,SEC IN T3TOT4
+		TCR	P370GOF
+		TCF	P37		# RECYCLE
+		CAF	V6N60RTE	# DISPLAY BLANK,V(T2),FPA2
+		TCR	P37GFRB1	#   IN -,VPRED,GAMMAEI
+# Page 896
+		TCF	P37		# RECYCLE
+		CAF	V6N81RTE	# DISPLAY DELTA V (LV) IN DELVLVC
+		TCR	P370GOF
+		TCF	P37		# RECYCLE
+		TCR	INTPRET
+		GOTO
+			VNSTORE
+			
+# PRECISION DISPLAY, TARGETING COMPUTATION AND RTE END PROCESSING
+
+P37G		CALL
+			RTEVN
+		EXIT
+P37N		CAF	SEVEN
+		TS	OPTION1
+		CAF	ONE
+		TS	OPTION2
+		CAF	V4N06RTE	# DISPLAY RCS OR SPS OPTION  SPS ASSUMED
+		TCR	P370GOF
+		TCF	-2		# RECYCLE
+		TC	INTPRET		# PROCEED
+		SETPD	SLOAD
+			00D
+			OPTION2
+		DSU	BZE
+			1RTEB13
+			P37Q
+		SLOAD	NORM		# SPS
+			EMDOT
+			X1
+		PDDL	GOTO
+			VCSPS
+			P37T
+P37Q		DLOAD	BON		# RCS
+			MDOTRCS
+			NJETSFLG
+			P37R
+		SL1
+P37R		SL1
+		NORM	PDDL
+			X1
+			VCRCS
+P37T		PDDL	DDV		# DV/VC			B7 -B5 = B2 	PL02D
+			DV
+		EXIT
+		TC	POLY
+		DEC	1
+		2DEC	5.66240507 E-4 B-3
+		2DEC	9.79487897 E-1 B-1
+# Page 897
+		2DEC	-.388281955 B1
+		TC	INTPRET
+		PUSH	SLOAD		# (1-E)**(-DV/VC)=A		B3 	PL04D
+			WEIGHT/G
+		DMP	DDV		# DTB=(M0/MDOT)A	B16+B3-B3=B16 	PL00D
+		SL*	DMP
+			0 -12D,1
+			CSUBT
+		BDSU
+			T1
+		STORE	TIG		# TIG=T1-CT*DTB			B28
+		EXIT
+		CAF	V6N33RTE	# DISPLAY BIASED TIG
+		TCR	P370GOF
+		TCF	-2
+		CAF	ZERO
+		TS	VHFCNT
+		TS	TRKMKCNT
+		TC	INTPRET
+		CALL			# CONICALLY INTEGRATE FROM R1,V1 OVER T12
+			RTENCK1
+		VLOAD	UNIT		#					PL00D
+			R(T2)/
+		PDVL	VXSC		# UR2				B1 	PL06D
+			UR1/
+			MCOS7.5
+		PDVL	VXSC		# -UR1(COS7.5)			B1 	PL12D
+			UH/
+			MSIN7.5
+		VAD	DOT		# K/=-UR1(COS7.5)-UH(SIN7.5)	B2 	PL00D
+		DAD	BMN
+			MCOS22.5
+			P37W
+		VLOAD	DOT		# K/ . UR2 GR COS22.5
+			UH/
+			R(T2)/
+		BMN	DLOAD
+			P37U
+			THETA165
+		PUSH	GOTO
+			P37V
+P37U		DLOAD	PUSH
+			THETA210
+P37V		SIN
+		STODL	SNTH
+		COS	CLEAR
+			RVSW
+		STOVL	CSTH
+			R(T1)/
+# Page 898
+		STOVL	RVEC
+			V2(T1)/
+		STCALL	VVEC
+			TIMETHET
+P37W		CLEAR	CLEAR
+			XDELVFLG
+			NORMSW
+		SET	VLOAD
+			FINALFLG
+		STADR
+		STODL	RTARG
+			T
+		DAD
+			T1
+		STOVL	TPASS4
+			V2(T1)/
+		VSU
+			V(T1)/
+		STCALL	DELVSIN
+			VN1645
+		GOTO
+			P37W
+			
+# SUBROUTINE TO GO TO GOFLASHR AND BLANK R1
+
+P37GFRB1	EXTEND
+		QXCH	SPRTEX
+		TCR	P370GOFR
+37BLANK		CAF	ONE
+		TCR	BLANKET
+		TCF	ENDOFJOB
+		TC	SPRTEX		# RECYCLE
+		TCF	P37PROC		# PROCEED
+		
+# SUBROUTINE TO GO TO GOFLASHR
+
+P370GOFR	EXTEND
+		QXCH	RTENCKEX
+		TCR	BANKCALL
+		CADR	GOFLASHR
+		TCF	GOTOP00H	# TERMINATE
+		TCF	+3
+		TCF	+4
+		TC	RTENCKEX	# IMMEDIATE RETURN
+		INDEX	RTENCKEX	# PROCEED
+		TCF	0 +4
+		INDEX	RTENCKEX	# RECYCLE
+		TCF	0 +3
+		
+# SUBROUTINE TO GO TO GOFLASH
+
+# Page 899
+P370GOF		EXTEND
+		QXCH	SPRTEX
+		TCR	BANKCALL
+		CADR	GOFLASH
+		TCF	GOTOP00H
+		TCF	+2
+		TC	SPRTEX
+P37PROC		INDEX	SPRTEX
+		TCF	0 +1
+V6N33RTE	VN	0633
+V4N06RTE	VN	0406
+V6N61RTE	VN	0661
+V6N39RTE	VN	0639
+V6N60RTE	VN	0660
+V6N81RTE	VN	0681
+		BANK	32
+		SETLOC	RTE
+		BANK
+		COUNT	32/RTE
+		
+# Page 900
+# ALARM DISPLAY SUBROUTINE
+
+P370ALRM	STQ	EXIT
+			SPRTEX
+		CA	MPAC
+		TC	VARALARM
+		CAF	V5N09RTE
+		TC	BANKCALL
+		CADR	GOFLASH
+		TCF	GOTOP00H
+		TCF	-4
+		TC	INTPRET
+		GOTO
+			SPRTEX
+V5N09RTE	VN	0509
+
+# Page 901
+# TIME RADIUS CALLING SUBROUTINE
+#
+# INPUT
+#	RVEC		INITIAL POSITION VECTOR					VECTOR	B29	METERS
+#	VVEC		INITIAL VELOCITY VECTOR					VECTOR	B7	METERS/CS
+#	RDESIRED	FINAL RADIUS FOR WHICH TRANSFER TIME IS TO BE COMPUTED	DP	B29	METERS
+#	CONICX1		X1 SETTING FOR CONIC SUBROUTINES  -2=EARTH		SP	B14
+#
+# OUTPUT
+#	R(T2)/		FINAL POSITION VECTOR					VECTOR	B29 	METERS
+#	V(T2)/		FINAL VELOCITY VECTOR					VECTOR	B7	METERS/CS
+#	T12		TRANSFER TIME TO FINAL RADIUS				DP	B28	CS
+
+TMRAD100	STQ	CLEAR
+			RTENCKEX
+			RVSW
+		AXC,2	SXA,2
+		OCT	20000
+			SGNRDOT
+		LXC,1	CALL
+			CONICX1
+			TIMERAD
+		STOVL	V(T2)/							PL00D
+		STADR
+		STODL	R(T2)/
+			T
+		STCALL	T12
+			RTENCKEX
+
+# Page 902
+# DISPLAY CALCULATION SUBROUTINE
+#
+# DESCRIPTION
+#	OUTPUT FOR DISPLAY IS CONVERTED TO PROPER UNITS AND PLACED IN OUTPUT STORAGE REGISTERS.  LANDING SITE
+#	COMPUTATION FOR DETERMINING LANDING SITE LATITUDE AND LONGITUDE IS INCLUDED IN THE ROUTINE.
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		RTEDISP
+#
+# SUBROUTINES CALLED
+#	TMRAD100
+#	AUGEKUGL
+#	LAT-LONG
+#
+# ERASABLE INITIALIZATION REQUIRED
+#    PUSHLIST
+#	NONE
+#    MPAC
+#	NONE
+#    OTHER
+#	R(T2)/		FINAL POSITION VECTOR					VECTOR	B29	METERS
+#	V(T2)/		FINAL VELOCITY VECTOR					VECTOR	B7	METERS/CS
+#	T2		FINAL TIME						DP	B28	CS
+#	V2(T1)/		POST IMPULSE INITIAL VELOCITY VECTOR			VECTOR	B7	METERS/CS
+#	V(T1)/		INITIAL VELOCITY VECTOR					VECTOR	B7
+#	UR1/		UNIT INITIAL VECTOR					VECTOR	B1
+#	UH/		UNIT HORIZONTAL VECTOR					VECTOR	B1
+#
+# OUTPUT
+#	VPRED		VELOCITY MAGNITUDE AT 400,000 FT. ENTRY ALTITUDE	DP	B7	METERS/CS
+#	T3TOT4		TRANSIT TIME TO 400,000 FT. ENTRY ALTITUDE		DP	B28	CS
+#	GAMMAEI		FLIGHT PATH ANGLE AT 400,000 FT. ENTRY ALTITUDE		DP	B0	REVS + ABOVE HORIZ
+#	DELVLVC		INITIAL VELOCITY CHANGE VECTOR IN LOCAL VERTICAL COORD.	VECTOR	B7	METERS/CS
+#	LAT(SPL)	LATITUDE OF THE LANDING SITE				DP	B0	REVS
+#	LNG(SPL)	LONGITUDE OF THE LANDING SITE				DP	B0	REVS
+
+RTEDISP		STQ	VLOAD		# DISPLAY
+			SPRTEX
+			V(T2)/
+		UNIT	PDDL
+			36D
+		STODL	VPRED		# V(T2)
+			T2
+		DSU	
+			SPRTETIG
+		STOVL	T3TOT4		# T21
+			R(T2)/
+		UNIT	DOT
+		SL1
+
+# Page 903
+		ARCCOS	BDSU
+			1RTEB2
+		STOVL	GAMMAEI		# FLIGHT PATH ANGLE T2
+			V2(T1)/
+		VSU	PUSH
+			V(T1)/
+		DOT	DCOMP
+			UR1/
+		PDVL	PUSH
+		DLOAD	PDVL
+			ZERORTE
+		DOT	VDEF
+			UH/
+		VSL1
+		STODL	DELVLVC
+			DELVLVC
+		BOFF	DCOMP
+			RETROFLG
+			RTD18
+		STORE	DELVLVC		# NEGATE X COMPONENT, RETROGRADE
+RTD18		VLOAD	ABVAL
+			DELVLVC
+		STOVL	VGDISP
+			R(T2)/
+		STORE	RVEC		# ***** LANDING SITE COMPUTATION *****
+		ABVAL	DSU
+			30480RTE
+		STOVL	RDESIRED
+			V(T2)/
+		STCALL	VVEC
+			TMRAD100	# R3,V3,T23 FROM TIMERAD
+		VLOAD	UNIT
+			R(T2)/
+		PDVL	UNIT		# UR3					PL06D
+			V(T2)/
+		DOT	SL1		# GAMMAE=ARCSIN(UR3 . UV3)		PL00D
+		ARCSIN	PDDL		# V(T3)					PL02D
+			36D
+		PDDL	ABS
+		PUSH	CALL		# /GAMMAE/				PL04D
+			AUGEKUGL	# PHIE					PL06D
+		DAD	DAD
+			T12		# T23
+			T2
+		STORE	02D		# T(LS)=T2&T23&TE
+		SLOAD	BZE
+			P37RANGE
+			RTD22
+		STORE	04D		# OVERRIDE RANGE (PCR 261)
+RTD22		DLOAD	SIN
+
+# Page 904
+			04D
+		STODL	LNG(SPL)	# LNG(SPL)=SIN(PHIE)			PL04D
+		COS
+		STORE	LAT(SPL)	# LAT(SPL)=COS(PHIE)
+		VLOAD	UNIT
+			R(T2)/
+		PUSH	PUSH
+		PDVL	UNIT		#					PL22D
+			V(T2)/
+		PDVL	VXV
+		VXV	UNIT		# UH3=UNIT(UR3 X UV3 X UR3)		PL10D
+		VXSC	PDVL
+			LNG(SPL)
+		VXSC	VAD		#					PL04D
+			LAT(SPL)
+		CLEAR	CLEAR		# T(LS) IN MPAC
+			ERADFLAG
+			LUNAFLAG
+		STODL	ALPHAV		# ALPHAV=UR3(COSPHIE)+UH3(SINPHIE) 	PL02D
+		CALL
+			LAT-LONG
+		DLOAD
+			LAT
+		STODL	LAT(SPL)	# LATITUDE LANDING SITE  *****
+			LONG
+		STCALL	LNG(SPL)	# LONGITUDE LANDING SITE *****
+			SPRTEX
+		COUNT*	$$/RTE
+
+# Page 905
+# INITIAL VECTOR SUBROUTINE
+#
+# DESCRIPTION
+#	A PRECISION INTEGRATION OF THE STATE VECTOR TO THE TIME OF IGNITION IS PERFORMED. PRECOMPUTATIONS OCCUR.
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		INVC100
+#
+# NORMAL EXIT MODE
+#	AT L+2 OF CALLING SEQUENCE WITH MPAC = 0
+#
+# ALARM EXIT MODE
+#	AT L+2 OF CALLING SEQUENCE WITH MPAC = OCTAL 612 FOR STATE VECTOR IN MOONS SPHERE OF INFLUENCE
+#
+# SUBROUTINES CALLED
+#	CSMPREC
+#
+# ERASABLE INITIALIZATION REQUIRED
+#    PUSHLIST
+#	NONE
+#    MPAC
+#	NONE
+#    OTHER
+#	SPRTETIG	TIME OF IGNITION					DP	B28	CS
+#	CSM STATE VECTOR
+#
+# OUTPUT
+#	R(T1)/		INITIAL POSITION VECTOR AT TIG				VECTOR	B29	METERS
+#	V(T1)/		INITIAL VELOCITY VECTOR AT TIG				VECTOR	B7	METERS/CS
+#	T1		INITIAL VECTOR TIME (TIG)				DP	B28	CS
+#	UR1/		UNIT INITIAL VECTOR					VECTOR	B1
+#	UH/		UNIT HORIZONTAL VECTOR					VECTOR	B1
+#	CFPA		COSINE OF INITIAL FLIGHT PATH ANGLE			DP	B1
+
+INVC100		STQ	DLOAD
+			SPRTEX
+			SPRTETIG
+		STCALL	TDEC1
+			CSMPREC		# PRECISION INTEGRATION  R0,V0 TO R1,V1
+		VLOAD	SXA,2
+			RATT
+			P(T1)
+		STOVL	R(T1)/
+			VATT
+		STODL	V(T1)/
+			TAT
+		STORE	T1
+		SLOAD	BZE
+			P(T1)
+# Page 906
+			INVC109
+INVC107		SLOAD	GOTO
+			OCT612
+			RTEALRM		# R1,V1 NOT IN PROPER SPHERE OF INFLUENCE
+INVC109		VLOAD	UNIT
+			R(T1)/
+		STODL	UR1/		# UR1/					B1
+			36D
+		STOVL	R(T1)		# R(T1)					B29
+			V(T1)/
+		UNIT
+		STORE	UV1/
+		DOT	SL1
+			UR1/
+		STORE	CFPA		# CFPA					B1
+		ABS	DSU
+			EPC1RTE
+		BMN	DLOAD
+			INVC115		# NOT NEAR RECTILINEAR
+			1RTEB2
+		PDDL	PUSH
+			ZERORTE
+		VDEF	PUSH		# N/ = (0,0,1)
+		GOTO
+			INVC120
+INVC115		VLOAD	VXV
+			UR1/
+			UV1/
+		PUSH			# N/ = UR X UV				B2
+INVC120		CLEAR	DLOAD
+			RETROFLG
+		PUSH	BPL
+			INVC125
+		VLOAD	VCOMP		# RETROGRADE ORBIT
+		PUSH	SET
+			RETROFLG
+INVC125		VLOAD
+		VXV	UNIT
+			UR1/
+		STORE	UH/		# UH/					B1
+		GOTO
+			SPRTEX
+
+# Page 907
+# PRECISION TRAJECTORY COMPUTATION SUBROUTINE
+#
+# DESCRIPTION
+#	A NUMERICALLY INTEGRATED TRAJECTORY IS GENERATED WHICH FOR THE RETURN TO EARTH PROBLEM SATISFIES THE REENTRY
+#	CONSTRAINTS (RCON AND X(T2)) ACHIEVED BY THE INITIAL CONIC TRAJECTORY AND MEETS THE DVD REQUIREMENT AS CLOSELY
+#	AS POSSIBLE.
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		PREC100
+#
+# NORMAL EXIT MODE
+#	AT L+2 OF CALLING SEQUENCE WITH MPAC = 0
+#
+# ALARM EXIT MODE
+#	AT L+2 OF CALLING SEQUENCE WITH MPAC =
+#		OCTAL 605	FOR EXCESS ITERATIONS
+#		OCTAL 613	FOR REENTRY ANGLE OUT OF LIMITS
+#
+# SUBROUTINES CALLED
+#	INTSTALL
+#	RTENCK2
+#	RTENCK3
+#	TIMERAD
+#	PARAM
+#	V2T100
+#
+# ERASABLE INITIALIZATION REQUIRED
+#    PUSHLIST
+#	NONE
+#    MPAC
+#	NONE
+#    OTHER
+#	R(T1)/		INITIAL POSITION VECTOR					VECTOR	B29/B27	METERS
+#	V2(T1)/		POST IMPULSE INITIAL VELOCITY VECTOR			VECTOR	B7/B5	METERS/CS
+#	V(T1)/		INITIAL VELOCITY VECTOR					VECTOR	B7/B5	METERS/CS
+#	T1		INITIAL VECTOR TIME					DP	B28	CS
+#	T12		INITIAL TO FINAL POSITION TIME				DP	B28 	CS
+#	RCON		CONIC FINAL RADIUS					DP	B29/B27	METERS
+#	R(T1)		MAGNITUDE OF INITIAL POSITION VECTOR			DP	B29/B27	METERS
+#	X(T2)		COTANGENT OF FINAL FLIGHT PATH ANGLE			DP	B0
+#	X(T1)		COTANGENT OF INITIAL FLIGHT PATH ANGLE			DP	B5
+#	RTEDVD		DELTA VELOCITY DESIRED					DP	B7/B5	METERS/CS
+#	MAMAX1		MAJOR AXIS LIMIT FOR LOWER BOUND ON GAMDV ITERATOR	DP	B30/B28	METERS
+#	MAMAX2		MAJOR AXIS LIMIT FOR UPPER BOUND ON GAMDV ITERATOR	DP	B30/B28	METERS
+#	UR1/		UNIT INITIAL VECTOR					VECTOR	B1
+#	UH/		UNIT HORIZONTAL VECTOR					VECTOR	B1
+#	BETA1		1+X(T2)**2						DP	B1
+#	PHI2		PERIGEE OR APOGEE INDICATOR				DP	B2	-1 PERIGEE, +1 APOGEE
+#
+# Page 908
+#
+# OUTPUT
+#    	V2(T1)/		POST IMPULSE INITIAL VELOCITY VECTOR			VECTOR	B7	METERS/CS
+#	R(T2)/		FINAL POSITION VECTOR					VECTOR	B29	METERS
+#	V(T2)/		FINAL VELOCITY VECTOR					VECTOR	B7	METERS/CS
+#	T2		FINAL TIME						DP	B28	CENTISECONDS
+#
+# DEBRIS
+#	RD		FINAL R DESIRED						DP	B29/B27	METERS
+#	R/APRE		R/A							DP	B6
+#	P/RPRE		P/R							DP	B4
+#	RPRE		MAGNITUDE OF R(T2)/					DP	B29/B27	METERS
+#	X(T2)PRE	COTANGENT OF GAMMA2					DP	B0
+#	DT12		CORRECTION TO FINAL TIME T2				DP	B28	CENTISECONDS
+#	RCON		FINAL RADIUS						DP	B29/B27	METERS
+#	DRCON		DELTA RCON						DP	B29/B27	METERS
+
+PREC100		STQ	DLOAD
+			SPRTEX
+			10RTE
+		STODL	NN1A
+			RCON
+		STORE	RD
+PREC120		DLOAD
+			2RTEB1
+		STODL	DT21PR		# DT21PR = POSMAX
+			M15RTE
+		STCALL	NN2
+			RTENCK3
+PREC125		CALL
+			PARAM
+		DLOAD
+			P
+		STODL	P/RPRE
+			R1A
+		STODL	R/APRE
+			R1
+		STODL	RPRE
+			COGA
+		SL
+			5
+		STORE	X(T2)PRE
+		DCOMP	DAD
+			X(T2)
+		ABS	DSU
+			EPC4RTE
+		BOV	BMN	
+			PREC130
+			PREC175
+			
+# DESIRED REENTRY ANGLE NOT ACHIEVED
+
+# Page 909
+PREC130		DLOAD	BMN
+			NN2
+			PREC140
+PREC132		SLOAD	GOTO		# TOO MANY ITERATIONS
+			OCT605		#	EXIT WITH ALARM
+			PRECX
+			
+# DETERMINE RADIUS AT WHICH THE DESIRED REENTRY ANGLE WILL BE ACHIEVED
+
+PREC140		DLOAD	BZE
+			NN1A
+			PREC162
+PREC150		DLOAD	SL2						B2
+			P/RPRE
+		DMP	SL1		# BETA2=BETA1*P/R		B2	PL02
+			BETA1
+		PUSH	DLOAD
+			R/APRE
+		SL4	DMP
+			00D
+		BDSU	BMN		# BETA3=1-BETA2*R/A
+			1RTEB4
+			PREC160
+PREC155		SL2	SQRT
+		DMP	BDSU
+			PHI2
+			1RTEB3
+		NORM	PDDL
+			X1
+		SR1	DDV		# BETA4=BETA2/(1-PHI2*SQRT(BETA3))
+		SL*	GOTO						B1
+			0	-1,1
+			PREC165
+PREC160		DLOAD	NORM
+			R/APRE
+			X1
+		BDDV	SL*						B1
+			1RTEB1
+			0	-6,1
+		GOTO
+			PREC165
+PREC162		DLOAD	NORM
+			RPRE
+			X1
+		BDDV	SL*		# BETA4=RD/RPRE			B1
+			RD
+			0 -1,1
+PREC165		SETPD	PUSH
+			0
+		DSU	DCOMP
+# Page 910
+			1RTEB1
+		STORE	BETA12
+		BMN	DLOAD
+			PREC168
+			X(T2)PRE
+		BMN	DLOAD
+			PREC167
+			BETA12
+		DCOMP
+		STORE	BETA12
+PREC167		DLOAD
+			BETA12
+PREC168		ABS	DSU
+			EPC6RTE
+		BMN	DLOAD
+			PREC175
+		DMP	SL1
+			RPRE
+		PUSH			# RF = NEW RADIUS
+PREC170		DLOAD	DAD
+			NN2
+			1RTEB28
+		STORE	NN2
+		VLOAD	SET
+			R(T2)/
+			RVSW
+		STOVL	RVEC
+			V(T2)/
+		SIGN
+			BETA12
+		STODL	VVEC
+			1RTEB1
+		SIGN	DCOMP
+			BETA12
+		LXA,2	DLOAD
+			MPAC
+		LXC,1	SXA,2
+			CONICX1
+			SGNRDOT
+		STCALL	RDESIRED	# COMPUTED DT12 (CORRECTION TO TIME OF
+			TIMERAD		#	NEW RADIUS)
+		DLOAD	SIGN
+			T
+			BETA12
+		PDDL	NORM		# DT21=(PHI4)DT21			PL02D
+			DT21PR
+			X1
+		BDDV	SL*
+			00D
+			0 -3,1
+# Page 911
+		PUSH	BMN		# BETA13=(DT21)/(DT21PR)	R3 	PL04D
+			PREC172		
+		DLOAD	PDDL		# BETA14=1			B0 	PL04D
+			2RTEB1
+		GOTO
+			PREC173
+PREC172		DLOAD	PDDL		# BETA14=.6			B0 	PL04D
+			M.6RTE
+PREC173		DDV	DSU
+			02D
+			1RTEB3
+		BMN	DLOAD
+			PREC174
+		DMP	
+			DT21PR
+		STORE	00D		# DT21=(BETA14)DT21PR		B28
+PREC174		DLOAD	PUSH
+			00D
+		STCALL	DT21PR
+			RTENCK2
+		GOTO
+			PREC125
+PREC175		DLOAD	DSU
+			RPRE
+			RD
+		PUSH	ABS		# RPRE-RD = RERR
+		DSU	BMN
+			EPC7RTE
+			PREC220
+			
+# DESIRED RADIUS HAS NOT BEEN ACHIEVED
+
+		DLOAD	BZE
+			NN1A
+			PREC132		# TOO MANY ITERATIONS
+		DSU	BZE
+			10RTE
+			PREC207
+PREC205		DLOAD	DSU		# NOT FIRST PASS OF ITERATION
+			RPRE'
+			RPRE		# RPRE'-RPRE			B29/B27
+		NORM	BDDV
+			X2
+			DRCON
+		SL*	PUSH		# DRCON/(RPRE'-RPRE)=S		B2
+			0 -2,2
+		DAD	BOV		# S GR +4 OR LS -4
+			1RTEB1
+			PREC205M
+		ABS	DSU
+# Page 912
+			1RTEB1
+		BMN
+			PREC206
+PREC205M	DLOAD	DCOMP		# S GR 0 OR LS -4
+			2RTEB1
+		PDDL			# S=-4				B2
+PREC206		DLOAD	DMP
+		SL2
+		STORE	DRCON		# DRCON=S(RERR)			B29
+		DAD
+			RCON
+		STORE	RCON		# RCON+DRCON=RCON
+		GOTO
+			PREC210
+PREC207		DLOAD	DSQ		# FIRST PASS OF ITERATION
+			RD
+		NORM	SR1
+			X1
+		PDDL	NORM
+			RPRE
+			X2
+		XSU,1	BDDV
+			X2
+		SR*
+			0 -1,1
+		STORE	RCON		# RD**2/RPRE=RCON
+		DSU
+			RD
+		STORE	DRCON		# RCON-RD=DRCON
+PREC210		DLOAD			# PREPARE FOR NEXT ITERATION
+			RPRE
+		STODL	RPRE'
+			NN1A
+		DSU
+			1RTEB28
+		STCALL	NN1A
+			V2T100
+		BHIZ	GOTO
+			PREC120
+			PRECX
+			
+# DESIRED RADIUS ACHIEVED
+
+		SETLOC	RTE2
+		BANK
+PREC220		DLOAD	DSU
+			X(T2)
+			X(T2)PRE
+		ABS	DSU
+			EPC8RTE
+# Page 913
+		BMN	SLOAD
+			PREC225
+			OCT613
+		GOTO
+			PRECX		# IF REENTRY ANGLE OUT OF LIMITS
+
+EPC8RTE		2DEC	.002
+
+OCT613		OCT	613
+
+# DESIRED FINAL ANGLE HAS BEEN REACHED.
+
+		SETLOC	RTE
+		BANK
+PREC225		DLOAD
+			ZERORTE
+PRECX		GOTO
+			SPRTEX
+			
+# Page 914
+# INTEGRATION CALLING SUBROUTINE
+#
+# DESCRIPTION
+#	PERFORMS CONIC AND PRECISION INTEGRATIONS USING SUBROUTINE INTEGRVS.  THERE ARE THREE ENTRANCES (RTENCK1,
+#	RTENCK2, AND RTENCK3) FOR DIFFERENT SOURCES OF INPUT AND DIFFERENT OPTIONS.  THERE IS A COMMON SET OF OUTPUT
+# 	WHICH INCLUDES SET UP OF INPUT FOR THE PARAM SUBROUTINE.
+#
+# RTENCK1 (CONIC INTEGRATION)
+#
+#    CALLING SEQUENCE
+#	L	CALL
+#	L+1		RTENCK1
+#
+#    ERASABLE INITIALIZATION REQUIRED
+#	SAME AS FOR THE RTENCK3 ENTRANCE
+#
+# RTENCK2 (PRECISION INTEGRATION)
+#
+#    CALLING SEQUENCE
+#	L	CALL
+#	L+1		RTENCK2
+#
+#    ERASABLE INITIALIZATION REQUIRED
+#	PUSHLIST
+#	    PUSHLOC-2	INTEGRATION TIME DT12 (CORRECTION TO T2)		DP	B28	CS
+#	OTHER
+#	    R(T2)/	FINAL POSITION VECTOR					VECTOR	B29	METERS
+#	    V(T2)/	FINAL VELOCITY VECTOR					VECTOR	B7	METERS/CS
+#	    T2		FINAL TIME						DP	B28	CS
+#
+# RTENCK3 (PRECISION INTEGRATION)
+#
+#    CALLING SEQUENCE
+#	L	CALL
+#	L+1		RTENCK3
+#
+#    ERASABLE INITIALIZATION REQUIRED
+#	R(T1)/		INITIAL POSITION VECTOR					VECTOR	B29	METERS
+#	V2(T1)/		POST IMPULSE INITIAL VELOCITY VECTOR			VECTOR	B7	M/CS
+#	T1		INITIAL VECTOR TIME					DP	B28	CS
+#	T2		FINAL TIME						DP	B28	CS
+#
+# EXIT MODE
+#	AT L+2 OF CALLING SEQUENCE
+#
+# SUBROUTINES CALLED
+#	INTSTALL
+#	INTEGRVS
+#
+# OUTPUT
+#    PUSHLIST
+# Page 915
+#	PUSHLOC-6	FINAL POSITION VECTOR R(T2)/				VECTOR	B29	METERS
+#	X1		CONICS MUTABLE ENTRY FOR EARTH (-2)			SP	B14
+#    MPAC
+#			FINAL VELOCITY VECTOR V(T2)/				VECTOR	B7	M/CS
+#    OTHER
+#	R(T2)/		AS IN PUSHLIST
+#	V(T2)/		AS IN MPAC
+#	T2		FINAL TIME						DP	B28	CS
+
+		SETLOC	RTE3
+		BANK
+RTENCK1		STQ	CALL
+			RTENCKEX
+			INTSTALL
+		VLOAD	SET
+			R(T1)/
+			INTYPFLG
+		GOTO
+			RTENCK3B
+			
+RTENCK2		STQ	CALL
+			RTENCKEX
+			INTSTALL
+		CLEAR	VLOAD
+			INTYPFLG
+			R(T2)/
+		STOVL	RCV
+			V(T2)/
+		STODL	VCV
+			T2
+		STORE	TET
+		DAD
+		GOTO
+			RTENCK3D
+			
+RTENCK3		STQ	CALL
+			RTENCKEX
+			INTSTALL
+RTENCK3A	VLOAD	CLEAR
+			R(T1)/
+			INTYPFLG
+RTENCK3B	STOVL	RCV
+			V2(T1)/
+		STODL	VCV
+			T1
+		STODL	TET
+			T2
+# Page 916
+RTENCK3D	STORE	TDEC1
+		CLEAR	CALL
+			MOONFLAG
+			INTEGRVS
+		VLOAD
+			RATT
+		STORE	R(T2)/
+		PDDL	LXC,1
+			TAT
+			CONICX1
+		STOVL	T2
+			VATT
+		STORE	V(T2)/
+		GOTO
+			RTENCKEX
+		SETLOC	RTE
+		BANK
+
+# Page 917
+# V2(T1) COMPUTATION SUBROUTINE
+#
+# DESCRIPTION
+#	A POST IMPULSE VELOCITY VECTOR (V2(T1)) IS COMPUTED WHICH EITHER
+#	(1)	MEETS THE INPUT VELOCITY CHANGE DESIRED (RTEDVD) IN A MINIMUM TIME	OR
+#	(2)	IF A VELOCITY CHANGE ISN'T SPECIFIED (RTEDVD = 0), A V2(T1) IS COMPUTED WHICH MINIMIZES THE IMPULSE (DV)
+#		AND CONSEQUENTLY FUEL.
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		V2T100
+#
+# NORMAL EXIT MODE
+#	AT L+2 OF CALLING SEQUENCE WITH MPAC = 0
+#
+# ALARM EXIT MODE
+#	AT L+2 OF CALLING SEQUENCE WITH MPAC = OCTAL 605 FOR EXCESS ITERATIONS.
+#
+# SUBROUTINES CALLED
+#	GAMDV10
+#	XT1LIM
+#	DVCALC
+#
+# ERASABLE INITIALIZATION REQUIRED
+#    PUSHLIST
+#	NONE
+#    MPAC
+#	NONE
+#    OTHER
+#	R(T1)		MAGNITUDE OF INITIAL POSITION VECTOR			DP	B29/B27	METERS
+#	RCON		MAGNITUDE OF FINAL POSITION VECTOR			DP	B29/B27	METERS
+#	V(T1)/		INITIAL VELOCITY VECTOR					VECTOR	B7/B5	METERS/CS
+#	RTEDVD		DELTA VELOCITY DESIRED					DP	B7/B5	METERS/CS
+#	UR1/		UNIT INITIAL VECTOR					VECTOR	B1
+#	UH/		UNIT HORIZONTAL VECTOR					VECTOR	B1
+#	X(T2)		COTANGENT OF FINAL FLIGHT PATH ANGLE			DP	B0
+#	X(T1)		COTANGENT OF INITIAL FLIGHT PATH ANGLE (INPUT FOR PREC)	DP	B5
+#	CFPA		COSINE OF INITIAL FLIGHT PATH ANGLE			DP	B1
+#	MAMAX1		MAJOR AXIS LIMIT FOR LOWER BOUND ON GAMDV ITERATOR	DP	B30/B28	METERS
+#	MAMAX2		MAJOR AXIS LIMIT FOR UPPER BOUND ON GAMDV ITERATOR	DP	B30/B28	METERS
+#	PHI2		REENTRY NEAR PERIGEE OR APOGEE INDICATE (RTE ONLY)	DP	B2	-1 PERIGEE, +1 APOGEE
+#	N1		CONIC OR PRECISION ITERATION OPERATOR			DP	B28	NEGATIVE CONIC, PLUS PREC
+#
+# OUTPUT
+#	V2(T1)/		POST IMPULSE INITIAL VELOCITY VECTOR			VECTOR	B7/B5	METERS/CS
+#	DV		INITIAL VELOCITY CHANGE					DP	B7/B5	METERS/CS
+#	X(T1)		COTANGENT OF INITIAL FLIGHT PATH ANGLE (POST IMPULSE)	DP	B5
+#	PCON		SEMI-LATUS RECTUM					DP	B28/B26	METERS
+#	BETA1		1+X(T2)**2						DP	B1
+#
+# Page 918
+#
+# DEBRIS
+#    PUSHLIST
+#	00D		X(T1),,=PREVIOUS PRECISION X(T1)			DP	B5
+#	02D		THETA1=BETA5*LAMBDA-1					TP	B17
+#	05D		THETA2=2*R(T1)*(LAMBDA-1)				TP	B38/B36
+#	08D		THETA3=MU**.5/R(T1)					DP	B-4/B-5
+#	10D		X(T1)MIN=LOWER BOUND ON X(T1) IN GAMDV ITERATOR		DP	B5
+#	12D		DX(T1)MAX=MAXIMUM DELTA X(T1)				DP	B5
+#	14D		X(T1)MAX=UPPER BOUND ON X(T1) IN GAMDV ITERATOR		DP	B5
+#	16D		DX(T1)=ITERATOR INCREMENT				DP	B5
+#	31D		GAMDV10 SUBROUTINE RETURN ADDRESS
+#	32D		DVCALC SUBROUTINE RETURN ADDRESS
+#	33D		V2T100 SUBROUTINE RETURN ADDRESS
+
+V2T100		STQ	DLOAD
+			33D
+			RCON
+		BMN	DSU		# ABORT IF RCON NEGATIVE
+			V2TERROR
+			R(T1)
+		BMN
+			V2T101
+V2TERROR	EXIT			#	OR IF LAMBDA LESS THAN ONE
+		TC	P00DOO		# NO SOLUTION IF LAMBDA LESS THAN 1
+		OCT	00610
+V2T101		SETPD	CLEAR
+			0		#					PL00D
+			F2RTE
+		DLOAD	NORM
+			RCON
+			X1
+		PDDL	NORM
+			R(T1)
+			S1
+		STORE	10D
+		SR1	DDV		# R1/RCON = LAMBDA		B1
+		XSU,1	PDDL		#					PL02D
+			S1
+			X(T2)
+		DSQ
+		SR1	DAD
+			1RTEB1
+		STORE	BETA1		# 1+X(T2)**2 = BETA1		B1
+		DMP
+			00D
+		STORE	28D		# BETAI*LAMBDA = BETA5
+		DMP	SL*
+			00D
+			0 -7,1
+		SL*	DSU
+# Page 919
+			0 -7,1
+			1RTEB17
+		RTB	PDDL		# BETA5*LAMBDA-1 = THETA1	B17	PL05D
+			TPMODE
+			1RTEB1
+		SR*	DCOMP
+			0,1
+		DAD	DMP
+			00D
+			R(T1)
+		SL*	RTB
+			0 -7D,1
+			TPMODE
+		PDDL			# 2*R(T1)*(LAMBDA-1)=THETA2	B38/B36 PL08D
+			RTMURTE
+		NORM	SR1
+			X2
+		XSU,2	DDV
+			S1
+			10D
+		SR*	PDDL		# MU**.5/R(T1)=THETA3		B-4/B-5 PL10D
+			6,2
+			MAMAX1
+		PUSH	PUSH		# MAMAX1=MA
+		CALL
+			XT1LIM
+		DCOMP	PUSH		# X(T1)MIN			B5 	PL12D
+		DCOMP	SR4
+		PDDL	PUSH		# DX(T1)MAX			B5 	PL14D
+			MAMAX2
+		PUSH	CALL
+			XT1LIM
+		PDDL	BMN		# X(T1)MAX			B5 	PL16D
+			NN1A
+			V2T102
+		GOTO
+			V2T110
+			
+# PROCEED HERE IF NOT PRECISION COMPUTATION
+
+V2T102		DLOAD
+			RTEDVD
+		BZE	GOTO
+			V2T105
+			V2T140
+V2T105		DLOAD	BMN
+			CFPA
+			V2T140
+		GOTO
+			V2T145
+# Page 920
+# DURING A PRECISION TRAJECTORY ITERATION CONSTRAIN THE INDEPENDENT
+# VARIABLE TO INSURE THAT ALL CONICS PASS THROUGH RCON ON THE SAME PASS
+# THROUGH X(T2)
+
+V2T110		DLOAD	RTB
+			1RTEB17
+			TPMODE
+		DCOMP	PDDL		# -1				B17 	PL19D
+			2RTEB1
+		SR*	DSU
+			0,1
+			00D
+		DMP	SL*
+			28D
+			0 -7,1
+		SL*	TAD
+			0 -7,1
+		RTB	PDDL		# BETA5(2-LAMBDA)-1=BETA6	B17 	PL19D
+			TPMODE
+			X(T1)
+		STORE	00D		# X(T1),,			B5
+		TLOAD			#					PL16D
+		BMN	BZE
+			V2T115
+			V2T115
+		SL	GOTO
+			7
+			V2T120
+V2T115		DLOAD	BMN
+			PHI2
+			V2T125
+		DCOMP
+		STODL	PHI2
+			10RTE
+		STORE	NN1A
+		GOTO
+			V2T125
+V2T120		SQRT	RTB
+			DPMODE
+		PDDL	BMN		# BETA6**.5=X(T1)LIM		B5 	PL18D
+			PHI2
+			V2T130
+		DLOAD	STADR
+		STORE	14D		# X(T1)LIM = X(T1)MAX
+		DCOMP
+		STORE	10D		# -X(T1)LIM = X(T1)MIN
+V2T125		DLOAD	BZE
+			X(T1)
+			V2T140
+		BMN	GOTO
+# Page 921
+			V2T140
+			V2T145
+V2T130		DLOAD	BZE
+			X(T1)
+			V2T135
+		BMN	DLOAD		#					PL16D
+			V2T135
+		STADR
+		STORE	10D		# X(T1)LIM = X(T1)MIN
+		GOTO
+			V2T145
+V2T135		DLOAD	DCOMP		#					PL16D
+		STADR
+		STORE	14D		# -X(T1)LIM = X(T1)MAX
+V2T140		DLOAD
+			10D
+		STODL	X(T1)		# X(T1)MIN = X(T1)
+			12D
+		PUSH	GOTO		# DX(T1)MAX = DX(T1)			PL18D
+			V2T150
+V2T145		DLOAD
+			14D
+		STODL	X(T1)		# X(T1)MAX = X(T1)
+			12D
+		DCOMP	PUSH		# -DX(T1)MAX = DX(T1)			PL18D
+V2T150		CALL			# GOTO X(T1)-DV ITERATOR
+			GAMDV10
+		DLOAD	BZE		# EXIT IF MINIMUM FUEL MODE
+			RTEDVD
+			V2T1X
+			
+# CONTINUE IF TIME CRITICAL MODE
+
+		DSU	BMN
+			DV
+			V2T155
+		GOTO
+			V2T175
+V2T155		DLOAD	BMN
+			NN1A
+			V2T160
+		GOTO
+			V2T185
+			
+# CONIC TRAJECTORY COMPUTATION
+
+V2T160		DLOAD	BZE
+			X(T1)
+			V2T165
+		BMN	GOTO
+# Page 922
+			V2T165
+			V2T300
+V2T165		DLOAD	BZE
+			CFPA
+			V2T300
+		BMN	DLOAD
+			V2T300
+			14D
+		STODL	X(T1)		# X(T1)MAX=X(T1)
+			12D
+		DCOMP
+		STCALL	16D		# -DX(T1)MAX=DX(T1)
+			GAMDV10
+		DLOAD	DSU
+			RTEDVD
+			DV
+		BMN
+			V2T300
+V2T175		SET	DLOAD
+			F2RTE
+			X(T1)
+		BOFF
+			SLOWFLG
+			V2T177
+		STODL	10D		# X(T1)MIN
+			12D		# DX(T1)MAX
+		GOTO
+			V2T179
+V2T177		STODL	14D
+			12D
+		DCOMP
+V2T179		STCALL	16D		# DX(T1)
+			GAMDV10
+		DLOAD	BMN
+			NN1A
+			V2T300
+			
+# PREVENT A LARGE CHANGE IN INDEPENDENT VARIABLE DURING AN ITERATION FOR A
+# PRECISION TRAJECTORY
+
+V2T185		DLOAD	DSU
+			X(T1)
+			00D
+		ABS	PDDL		# /X(T1)-X(T1),,/ = BETA7
+			12D
+		SL1	BDSU
+		BMN	DLOAD
+			V2T300
+			00D		# CONTINUE IF BETA7 LARGER THAN 2DX(T1)MAX
+		STORE	X(T1)		# X(T1),, = X(T1)
+# Page 923
+		DSU	BMN
+			14D
+			V2T195
+		DLOAD
+			14D
+		STORE	X(T1)		# X(T1)MAX = X(T1)
+		GOTO
+			V2T205
+V2T195		DLOAD	DSU
+			X(T1)
+			10D
+		BMN	GOTO
+			V2T200
+			V2T205
+V2T200		DLOAD
+			10D
+		STORE	X(T1)		# X(T1)MIN = X(T1)
+V2T205		CALL
+			DVCALC
+V2T300		DLOAD
+			ZERORTE
+V2T1X		GOTO
+			33D
+			
+# Page 924
+# X(T1)-DV ITERATOR SUBROUTINE
+#
+# DESCRIPTION
+#	COMPUTES A POST IMPULSE VELOCITY VECTOR (V2(T1)) WHICH REQUIRES A MINIMUM DV.
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		GAMDV10
+#
+# NORMAL EXIT MODE
+#	AT L+2 OF CALLING SEQUENCE
+#
+# ALARM EXIT MODE
+#	AT V2T1X WITH MPAC = OCTAL 605 FOR EXCESS ITERATIONS
+#
+# SUBROUTINES CALLED
+#	DVCALC
+#
+# ERASABLE INITIALIZATION REQUIRED
+#    PUSHLIST
+#	02D		THETA1=BETA5*LAMBDA-1					TP	B17
+#	05D		THETA2=2*R(T1)*(LAMBDA-1)				TP	B38/B36
+#	08D		THETA3=MU**.5/R(T1)					DP	B-4/B-5
+#	10D		X(T1)MIN=LOWER BOUND ON INDEPENDENT VARIABLE X(T1)	DP	B5
+#	12D		DX(T1)MAX=MAXIMUM DX(T1)				DP	B5
+#	14D		X(T1)MAX=UPPER BOUND ON INDEPENDENT VARIABLE X(T1)	DP	B5
+#	16D		DX(T1)=ITERATOR INCREMENT				DP	B5
+#    MPAC
+#	NONE
+#    OTHER
+#	V(T1)/		INITIAL VELOCITY VECTOR					VECTOR	B7/B5	METERS/CS
+#	RTEDVD		DELTA VELOCITY DESIRED					DP	B7/B5	METERS/CS
+#	UR1/		UNIT INITIAL VECTOR					VECTOR	B1
+#	UH/		UNIT HORIZONTAL VECTOR					VECTOR	B1
+#	X(T1)		COTANGENT OF INITIAL FLIGHT PATH ANGLE (FROM VERTICAL)	DP	B5
+#	F2RTE		TIME CRITICAL OR MINIMUM FUEL MODE INDICATOR		STATE AREA	0 MIN. FUEL, 1 MIN. TIME
+#
+# OUTPUT
+#	V2(T1)/		POST IMPULSE INITIAL VELOCITY VECTOR			VECTOR	B7/B5	METERS/CS
+#	DV		INITIAL VELOCITY CHANGE					DP	B7/B5	METERS/CS
+#	X(T1)		COTANGENT OF INITIAL FPA MEASURED FROM VERTICAL		DP	B5
+#	PCON		SEMI-LATUS RECTUM					DP	B28/B26	METERS
+#
+# DEBRIS
+#    PUSHLIST
+#	00D		X(T1),,
+#	02D		THETA1
+#	05D		THETA2
+#	08D		THETA3
+#	10D		X(T1)MIN
+#	12D		DX(T1)MAX
+# Page 925
+#	14D		X(T1)MAX
+#	16D		DX(T1)
+#	22D		DV,=PREVIOUS DV						DP	B7/B5
+#	24D		BETA9=X(T1)+1.1DX(T1)					DP	B5
+#	31D		GAMDV10 SUBROUTINE RETURN ADDRESS
+#	32D		DVCALC SUBROUTINE RETURN ADDRESS
+#	33D		V2T100 SUBROUTINE RETURN ADDRESS
+
+GAMDV10		STQ
+			31D
+		SETPD	CALL
+			18D		#					PL18D
+			DVCALC
+		DLOAD	DSU
+			14D
+			10D
+		BOV
+			GAMDV20
+		PUSH	DSU		# X(T1)MAX-X(T1)MIN=BETA8	B5 	PL20D
+			EPC9RTE
+		BMN	DLOAD
+			GAMDVX		# BOUNDS CLOSE TOGETHER
+			18D
+		DSU	BMN		# BETA8-DX(T1)MAX
+			12D
+			GAMDV15
+		SETPD	GOTO		#					PL18D
+			18D
+			GAMDV20
+GAMDV15		DLOAD			#					PL18D
+		SIGN	SR1
+			16D
+		STORE	16D		# BETA8(SIGNDX(T1))/2=DX(T1)
+GAMDV20		DLOAD
+			M144RTE
+		STORE	NN2
+GAMDV25		DLOAD	DAD
+			NN2
+			1RTEB28
+		BMN	SLOAD
+			GAMDV30
+			OCT605
+		GOTO
+			V2T1X
+GAMDV30		STORE	NN2		# NN2=NN2+1
+		DLOAD	PDDL		# X(T1)=X(T1),			B5 	PL20D
+			X(T1)
+			DV
+		PDDL	DAD		# DV=DV,			B7/B5 	PL22D
+			X(T1)
+			16D
+# Page 926
+		STCALL	X(T1)		# X(T1)+DX(T1)=X(T1)		B5
+			DVCALC
+		BON	DLOAD
+			F2RTE
+			GAMDV35
+			DV
+		DSU	BMN		# CONTINUE IF FUEL CRITICAL MODE
+			20D
+			GAMDV33
+GAMDV32		DLOAD	DCOMP
+			16D
+		SR1
+		STORE	16D
+GAMDV33		SETPD	GOTO
+			18D		#					PL18D
+			GAMDV50
+			
+# TIME CRITICAL MODE
+
+GAMDV35		DLOAD	DSU
+			RTEDVD
+			DV
+		PDDL	PUSH		# DVD-DV=DVERR			B7/B5 	PL22D
+GAMDV40		DLOAD	ABS		# DV,					PL24D
+			20D
+		DSU	BMN
+			EPC10RTE
+			GAMDVX
+GAMDV45		BOVB	DLOAD
+			TCDANZIG	# ASSURE OVFIND IS 0
+		BDSU	NORM
+			DV
+			X2
+		PDDL			# DV-DV,			B7/B5-N2 PL22D
+		NORM	SR1		# DVERR				B8/B6-N1
+			X1
+		DDV	PDDL		# DVERR/ DV - DV
+		BDSU	DMP		#					PL18D
+			X(T1)
+		XSU,1
+			X2
+		STORE	16D		# PRESERVE SIGN IF OVERFLOW
+		SR*	BOV
+			0 -1,1
+			GAMDV47
+		STORE	16D		# (X(T1)-X(T1),)DVERR/(DV-DV,)=DX(T1)
+		ABS	DSU
+			12D
+		BMN
+			GAMDV50
+# Page 927
+GAMDV47		DLOAD	SIGN
+			12D
+			16D
+		STORE	16D		# DX(T1)MAX(SIGNDX(T1))=DX(T1)
+		
+# CHECK TO KEEP INDEPENDENT VARIABLE IN BOUNDS
+
+GAMDV50		DLOAD	DMP
+			16D
+			1.1RTEB1
+		SL1	DAD
+			X(T1)
+		STORE	24D		# X(T1)+1.1DX(T1)=BETA9		B5
+		DSU	BMN
+			14D
+			GAMDV55
+		DLOAD	DSU
+			14D
+			X(T1)
+		SR1
+		STCALL	16D		# (X(T1)MAX-X(T1))/2=DX(T1)	B5
+			GAMDV65
+GAMDV55		DLOAD	DSU
+			24D
+			10D
+		BMN	GOTO
+			GAMDV60
+			GAMDV65
+GAMDV60		DLOAD	DSU
+			10D
+			X(T1)
+		SR1
+		STORE	16D		# (X(T1)MIN-X(T1))/2=DX(T1)	B5
+GAMDV65		DLOAD	ABS
+			16D
+		DSU	BMN
+			EPC9RTE
+			GAMDVX
+		GOTO
+			GAMDV25
+GAMDVX		GOTO
+			31D
+			
+# Page 928
+# DV CALCULATION SUBROUTINE
+#
+# INPUT
+#    PUSHLIST
+#	02D		THETA1=BETA5*LAMBDA-1					TP	B17
+#	05D		THETA2=2*R(T1)*(LAMBDA-1)				TP	B38/B36
+#	08D		THETA3=MU**.5/R(T1)					DP	B-4/B-5
+#    OTHER
+#	X(T1)		COTANGENT OF POST IMPULSE INITIAL FLIGHT PATH ANGLE	DP	B5
+#	V(T1)/		INITIAL VELOCITY VECTOR (PRE IMPULSE)			VECTOR	B7/B5	METERS/CS
+#	UR1/		UNIT INITIAL VECTOR					VECTOR	B1
+#	UH/		UNIT HORIZONTAL VECTOR					VECTOR	B1
+#
+# OUTPUT
+#	V2(T1)/		POST IMPULSE INITIAL VELOCITY VECTOR			VECTOR	B7/B5	METERS/CS
+#	DV		INITIAL VELOCITY CHANGE					DP	B7/B5	METERS/CS
+#	PCON		SEMI-LATUS RECTUM					DP	B28/B26	METERS
+#
+# DEBRIS
+#	28D		THETA3*PCON**.5						DP	B10/B8-N1
+#	C(PUSHLOC)	THETA3(PCON**.5)*X(T1)*UR1/				VECTOR	B7/B5
+#	32D		DVCALC SUBROUTINE RETURN ADDRESS
+#	X1		NORMALIZATION FACTOR FOR VALUE IN 28D
+#
+# PUSHLOC IS RESTORED TO ITS ENTRANCE VALUE UPON EXITING DVCALC
+
+DVCALC		STQ	DLOAD
+			32D
+			X(T1)
+		DSQ	SR
+			7
+		DCOMP	TAD
+			02D
+		NORM	PUSH
+			X1
+		TLOAD	NORM
+			05D
+			X2
+		RTB	SR1
+			DPMODE
+		XSU,2	DDV
+			X1
+		SR*
+			6,2
+		STORE	PCON		# THETA2/(THETA1-X(T1)**2)=PCON	B28/26
+		SQRT	DMP
+			08D
+		NORM
+			X1
+		STODL	28D		# THETA3*PCON**.5		B10/B8 -N1
+# Page 929
+			X(T1)
+		NORM	VXSC
+			X2
+			UR1/		# X(T1)*UR1/			B5+B1 -N2
+		XAD,2	VXSC
+			X1
+			28D
+		VSR*	PDVL		# THETA3(PCON**.5)X(T1)*UR1/	B7/B5
+			0 -9D,2		#		+
+			UH/
+		VXSC	VSR*		# THETA3(PCON**.5)UH/		B7/B5
+			28D
+			0 -4,1		#		=
+		VAD	STADR
+		STORE	V2(T1)/		# V2(T1)/			B7/B5
+		VSU	ABVAL
+			V(T1)/
+		STORE	DV		# ABVAL(V2(T1)/-V1(T)/)=DV	B7/B5
+		GOTO
+			32D
+
+# Page 930
+# SUBROUTINE TO COMPUTE BOUNDS ON INDEPENDENT VARIABLE X(T1)
+#
+# INPUT
+#    PUSHLIST
+#	PUSHLOC -4	MAJOR AXIS (MA)						DP	B30/B28
+#	PUSHLOC -2	MAJOR AXIS (MA) AGAIN					DP	B30/B28
+#	28D		BETA5=LAMBDA*BETA1					DP	B9
+#    OTHER
+#	RCON									DP	B29/B27
+#	R(T1)									DP	B29/B27
+#
+# OUTPUT
+#    MPAC
+#	X(T1)LIM	LIMIT ON INDEPENDENT VARIABLE X(T1)			DP	B5
+#
+# DEBRIS
+#    PUSHLIST
+#	C(PUSHLOC)	MA-RCON							DP	(B30/28)-N1
+#	C(PUSHLOC) +2	MA							DP	B30/B28
+#	X1		NORMALIZATION FACTOR FOR MA-RCON
+#	20D		XT1LIM SUBROUTINE RETURN ADDRESS
+#
+# PUSHLOC IS RESTORED TO ITS ENTRANCE VALUE UPON EXITING XT1LIM
+
+XT1LIM		STQ	DLOAD
+			20D
+			RCON
+		SR1	BDSU
+		NORM	PDDL		# MA-RCON			B30-N1
+			X2
+		PDDL	SR1
+			R(T1)
+		BDSU	DDV
+		SL*	DMP
+			0	-3,2
+			28D
+		SL*	DSU		# BETA10=BETA5(MA-RT)/(MA-RC)-1	B11
+			0	-6,1
+			1RTEB25 +1	# 1.0				B-11
+		SL1	BOV
+			XT1LIM2
+		BMN	GOTO
+			XT1LIM5
+			XT1LIM3
+XT1LIM2		DLOAD			# BETA10=POSMAX IF OVERFLOW
+			2RTEB1
+XT1LIM3		SQRT	GOTO		# X(T1)=SQRT(BETA10)
+			XT1LIMX
+XT1LIM5		DLOAD	
+			ZERORTE
+XT1LIMX		GOTO
+			20D
+			
+# Page 931
+# CONSTANTS FOR THE P37 AND P70 PROGRAMS AND SUBROUTINES
+
+		BANK	36
+		SETLOC	RTECON1
+		BANK
+		
+1RTEB1		2DEC	1. B-1
+1RTEB2		2DEC	1. B-2
+1RTEB3		2DEC	1. B-3
+1RTEB4		2DEC	1. B-4
+1RTEB10		2DEC	1. B-10
+1RTEB12		2DEC	1. B-12
+1RTEB13		2DEC	1. B-13
+1RTEB17		2DEC	1. B-17
+1RTEB25		2DEC	1. B-25
+#					* * B25 AND B28 MUST BE CONSECUTIVE * * 
+1RTEB28		2DEC	1. B-28
+ZERORTE		2DEC	0
+M144RTE		2DEC	-144. B-28
+M15RTE		2DEC	-15
+10RTE		2DEC	10
+M.6RTE		2DEC	-.6
+1.1RTEB1	2DEC	1.1 B-1
+M6RTEB28	2DEC	-6
+2RTEB1		2OCT	3777737777
+M9RTEB28	2DEC	-9
+M8RTEB28	2DEC	-8
+30480RTE	2DEC	30480. B-29
+VCSPS		2DEC	31.510396 B-5	# (SEE 2VEXHUST)
+# Page 932
+VCRCS		2DEC	27.0664 B-5
+MDOTRCS		2DEC	.0016375 B-3
+CSUBT		2DEC	.5
+OCT605		OCT	00605
+OCT612		OCT	00612
+MCOS7.5		2DEC	-.99144486
+MSIN7.5		2DEC	-.13052619
+MCOS22.5	2DEC	-.92387953 B-2
+THETA165	2DEC	.4583333333
+THETA210	2DEC	.5833333333
+EPC1RTE		2DEC	.99966 B-1
+EPC2RTE		2DEC	100. B-29
+EPC3RTE		2DEC	.001
+EPC4RTE		2DEC	.00001
+EPC5RTE		2DEC	.01 B-6
+EPC6RTE		2DEC	.000007 B-1
+EPC7RTE		2DEC	1000. B-29
+EPC9RTE		2DEC	1. B-25
+EPC10RTE	2DEC	.0001 B-7
+
+		BANK	35
+		SETLOC	RTECON1
+		BANK
+		
+C4RTE		2DEC	-6.986643 E7 B-30
+K1RTE		2DEC	7. E6 B-29
+K2RTE		2DEC	6495000. B-29
+K3RTE		2DEC	-.06105
+K4RTE		2DEC	-.10453
+RTMURTE		2DEC	199650.501 B-18
+# Page 933
+E3RTE		2DEC	121920. B-29
+
diff --git a/P40-P47.s b/P40-P47.s
new file mode 100644
index 0000000..72acab8
--- /dev/null
+++ b/P40-P47.s
@@ -0,0 +1,2429 @@
+# Copyright:	Public domain.
+# Filename:	P40-P47.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:	684-736
+# Mod history:	2009-05-11 RSB	Adapted from the Colossus249/ file 
+#				of the same name, using Comanche055 page 
+#				images.  
+#		2009-05-20 RSB	In S20.1, a DMP DDV was corrected to DMPR DDV.
+#		2009-05-22 RSB	In BESTTRIM, TC PACTOFF corrected to
+#				TS PACTOFF.
+#		2009-05-23 RSB	Prior to the 2CADR at T5IDLDAP, added an 
+#				SBANK.
+#
+# 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 684
+# PROGRAM DESCRIPTION ** P40CSM **
+
+		EBANK=	DAPDATR1
+		BANK	31
+		SETLOC	P40S
+		BANK
+		
+		COUNT	24/P40
+		
+P40CSM		TC	DOWNFLAG
+		ADRES	ENG2FLAG
+		
+		TC	INTPRET
+		SLOAD	BOFF
+			ECSTEER		# IS THIS AN EXTERNAL DELTA V BURN
+			XDELVFLG
+			P40S/C		# NO	CSTEER = ECSTEER
+		DLOAD			# YES	CSTEER = ZERO
+			HI6ZEROS
+P40S/C		STODL	CSTEER
+			FENG		# SET UP THRUST FOR P40 20,000 LBS
+P40S/F		STODL	F		# P41 ENTERS HERE
+			TIG		# ORIGINAL TIG MAY BE SLIPPED BY P40S/SV
+		STORE	NOMTIG		# SET ORIGINAL TIME OF IGNITION FOR S40.9
+		
+		EXIT
+		TC	BANKCALL
+		CADR	R02BOTH		# IMU STATUS CHECK
+		
+P40PVA		TC	INTPRET
+		CALL
+			S40.1		# COMPUTE VGTIG,UT
+		CALL
+			S40.2,3		# COMPUTE PREFERRED ATTITUDE
+		SET	EXIT
+			PFRATFLG
+P40SXTY		TCR	SETMINDB -1	# NARROW DEADBAND FOR MANEUVER (EBANK6)
+		RELINT
+		TC	BANKCALL
+		CADR	R60CSM		# ATTITUDE MANEUVER
+		CS	ONE		# FOR UPDATEVG
+		TS	NBRCYCLS
+		TC	UPFLAG
+		ADRES	TIMRFLAG	# ALLOW CLOCKTASK
+		
+		TC	P41/P40
+		TC	P41/DSP		# P41
+		
+P40TTOG		CAF	V06N40		# INITIALIZE FOR CLOCKTASK WHICH IS CALLED
+# Page 685
+		TS	NVWORD1		# BELOW
+		
+		TC	INTPRET
+		VLOAD	ABVAL		# FOR R2
+			VGTIG
+		STODL	VGDISP
+			HI6ZEROS
+		STORE	DVTOTAL
+		EXIT
+		
+		EXTEND
+		DCA	STEERADS	# SET FOR UPDATEVG AND TEST FOR STEERING
+		DXCH	AVEGEXIT	# AFTER AVERAGE G
+		
+P40GMB		CAF	P40CKLS2	# (4.1 PROTECTION)
+		TC	BANKCALL
+		CADR	GOPERF1
+		TCF	POST41		# V34
+		TCF	TST,TRIM	# V33
+TRIMONLY	CS	BIT1		# SET MRKRTEMP FOR GIMBAL TRIM (-1)
+	+1	TS	MRKRTMP		# ENTRY FROM TST,TRIM
+	
+		CAF	ZERO		# SET CNTR	+0 FOR RESTART LOGIC IN S40.6
+		TS	CNTR		#	+0 SAYS NORMAL ENTRY
+					#	+1 (PRE40.6) SAYS RESTART ENTRY
+					
+		CAF	ONE
+		TC	WAITLIST
+		EBANK=	DAPDATR1
+		2CADR	S40.6
+		
+		CCS	MRKRTMP		# TEST TO FIND TIME TO WAIT FOR GIMBAL TEST
+		CAF	18SEC		# PLUS, DELAY FOR 18 SECONDS
+		TCF	+2		# HOLE
+		CAF	5SEC		# DELAY FOR TRIM ONLY TASK
+		TC	BANKCALL
+		CADR	DELAYJOB
+		TC	2PHSCHNG
+		OCT	40026		# 6.2 = PRE40.6(-0CS), CLOKTASK(100CS)
+		OCT	00234		# 4.23 = P40S/SV (PRIO12)
+P40S/RS		CAF	ONE
+		TC	WAITLIST	# P41/SDP
+		EBANK=	TIG
+		2CADR	CLOKTASK
+		
+		RELINT
+		
+P40S/SV		TCR	E7SETTER	# JOB, 4.23 PRETECTS, PREO12
+		EBANK=	TIG
+# Page 686
+		TC	INTPRET
+		DLOAD	DSU
+			TIG
+			SEC29.96
+		STORE	TDEC1
+		
+		CALRB			# RETURN IN BASIC
+			MIDTOAV1
+		TCF	+2
+		TC	P40SNEWM	# INTEGRATION TIME GREATER THAN ALLOWED
+P40SET		EXTEND
+		DCA	MPAC		# DELTA TIME TO PREREAD (INT.INIT.)
+		DXCH	P40TMP
+		EXTEND
+		DCS	5SECDP		# FOR TIGBLNK
+		DAS	P40TMP
+		EXTEND
+		DCA	P40TMP
+		TC	LONGCALL
+		EBANK=	TIG
+		2CADR	TIGBLNK
+		
+		TC	PHASCHNG
+		OCT	20214		# 4.21 = TIGBLNK (P40TMP CS)
+		
+		TCF	ENDOFJOB
+P40BLNKR	TC	BANKCALL
+		CADR	CLEANDSP	# REMOVE RESIDUE
+		TCF	ENDOFJOB
+		EBANK=	TIG
+P40SNEWM	EXTEND
+		DCA	PIPTIME1
+		DXCH	TIG		# SET NEW TIG FOR 06 40
+		EXTEND
+		DCA	SEC29.96
+		DAS	TIG
+		TCF	P40SET		# FOR LONGCALL OF TIG-30 (OR -35)
+		
+		EBANK=	DAPDATR1
+POSTBURN	CAF	V16N40
+		TC	BANKCALL
+		CADR	REFLASH
+		TCF	POST41		# V34 GO FINISH
+		TCF	P40RCS		# PROCEED
+		TCF	POSTBURN	# RECYCLE
+P40RCS		EXTEND			# V99N40 ENTERS HERE ON A P40 BYPASS SPS
+		DCA	ACADN85
+		DXCH	AVEGEXIT
+		CAF	2SECS		# WAIT FOR CALCN85 VIA AVEGEXIT
+		TC	BANKCALL
+# Page 687
+		CADR	DELAYJOB
+		
+P40MINDB	TCR	SETMINDB -1
+		RELINT
+TIGNOW		TC	PHASCHNG
+		OCT	05024		# TYPE C GROUP 4 BELOW FOR NOUN 85
+		OCT	20000		# PRIO 20
+		CAF	V16N85B
+		TC	BANKCALL
+		CADR	REFLASH
+		TCF	POST41		# FINISH P40/P41
+		TCF	POST41		# V03 PROCEED WITH REST OF THE CLEAN-UP
+		TCF	TIGNOW		# V32 NOT GSOP RESPONSE BUT REDISPLAY N85
+		
+POST41		EXTEND
+		DCA	SERVCADR
+		DXCH	AVEGEXIT
+		TCF	GOTOP00H
+		
+MINDB		DEC	46
+MAXDB		DEC	455
+		EBANK=	DAPDATR1
+	-1	INHINT
+SETMINDB	CA	CDUX		# ROUTINE FOR SETTING
+		TS	THETADX		# THE MINIMUM DEADBAND
+		EXTEND			# IN AUTOPILOT
+		DCA	CDUY
+		DXCH	THETADY
+		CA	MINDB		# SHOULD BE CALLED UNDER
+		TS	ADB		# INTERRUPT INHIBITED
+		CS	BIT4		# EBANK = E6
+		MASK	DAPDATR1
+		TS	DAPDATR1
+		TC	Q
+		
+		EBANK=	DAPDATR1
+	-1	INHINT
+SETMAXDB	CA	MAXDB		# ROUTINE FOR SETTING
+		TS	ADB		# THE MAXIMUM DEADBAND IN AUTOPILOT
+		CS	DAPDATR1
+		MASK	BIT4		# SHOULD BE CALLED UNDER
+		ADS	DAPDATR1	# INTERRUPT INHIBITED
+		TC	Q		# EBANK = E6
+
+# Page 688
+# PROGRAM DESCRIPTION ** P41CSM **
+
+		SETLOC	P40S2
+		BANK
+		
+		EBANK=	DAPDATR1
+		COUNT	24/P41
+		
+P41CSM		TC	UPFLAG
+		ADRES	ENG2FLAG	# SET FOR RCS
+		
+		TC	INTPRET
+		DLOAD
+			HI6ZEROS	# FOR P41 CSTEER =0
+		STORE	CSTEER
+		
+		DLOAD	BON
+			FRCS2		# 2JET THRUST FOR S40.1
+			NJETSFLG
+			P40S/F		# NJETS = 1 2-JET
+		DAD	GOTO		# NJETS = 0 4-JET
+			FRCS2
+			P40S/F
+			
+		SETLOC	P40S
+		BANK
+			
+P41/P40		CS	MODREG
+		MASK	ONE		# P41EXITS AT CALL LOC +1
+		EXTEND
+		BZF	+2		# P41
+		INCR	Q		# P40 EXITS AT CALL LOC +2
+		TC	Q
+		
+TTG/0		CAF	PRIO20		# TASK (4.4 PROTECTS IN P41)
+		TC	NOVAC
+		EBANK=	DAPDATR1
+		2CADR	TIGNOW
+		
+P40CLK		TC	DOWNFLAG
+		ADRES	TIMRFLAG
+		
+		TCF	TASKOVER
+		
+P41/DSP		CAF	V06N85B		# SET UP FOR NONFLASH V 06 N85 BY CLOCKJOB
+		TS	NVWORD1
+		
+		TC	INTPRET
+# Page 689		
+		CALL			# COMPUTE
+			P40CNV85	#	VGTIG IN CTRL COORDS
+		EXIT
+		EXTEND			# DO CONTROL COORD CALCULATION AFTER AVEG
+		DCA	ACADN85
+		DXCH	AVEGEXIT
+		TC	2PHSCHNG
+		OCT	40036		# 6.3=CLOKTASK(100CS)
+		OCT	234		# 4.23=P40S/SV(PRIO12)
+		
+		TCF	P40S/RS
+P41REDSP	CAF	V16N85B		# ENTER FROM P41 SIDE OF TIGAVEG
+		TS	NVWORD1		# REDISPLAY NONFLASHING
+		CAF	SEC29.96 +1
+		TC	WAITLIST
+		EBANK=	DAPDATR1
+		2CADR	TTG/0
+		
+		CS	BIT3
+		TCF	TTGPHS
+P40CNV85	STQ	SETPD
+			QTEMP1
+			0
+		VLOAD	PUSH
+			VGPREV		# EQUALS VGTIG (TARGETTING INPUT)
+		CALL
+			S41.1
+		STCALL	VGBODY
+			QTEMP1
+			
+		EBANK=	DAPDATR1
+CALCN85		TC	INTPRET
+		CALL
+			UPDATEVG	# NEW VG, S40.8 (+MAYBE S40.9)
+		CALL
+			P40CNV85	# COMPUTE VGBODY
+		EXIT
+		TC	SERVXT
+FENG		2DEC	9.1188544 B-7	# SPS THRUST (20500LBS), SC.AT B+7 NEWT/E4
+
+FRCS2		2DEC	.087437837 B-7	# RCS ULLAGE (199.6COS10 LBS), SC.AT
+
+					#	B+7 NEWTONS/E+4
+SEC24.96	DEC	2496
+SEC29.96	2DEC	2996
+
+18SEC		DEC	1800
+P40CKLS2	OCT	204
+40CST5		OCT	37730		# 40 CS FOR THE T5 CLOCK
+OCT12		=	TEN
+# Page 690
+V1683		VN	1683
+V06N85B		VN	0685
+V16N85B		VN	1685
+V06N40		VN	0640
+V16N40		VN	1640
+OCT27/24	OCT	27
+OCT53		OCT	53
+OCT35		OCT	35
+		EBANK=	DAPDATR1
+T5IDL24		2CADR	T5IDLOC
+
+3MDOT		DEC	86.6175796 B-16	# 3SEC MASS LOSS (63.8 LBS/SEC), SC.AT
+					# B+16 KB/SEC (NOT, EMDOT IS PAD-LOADED,
+					# BUT 3MDOT IS NOT A CRITICAL QUANTITY, SO
+					# IT CAN REMAIN IN FIXED MEMORY)
+TST,TRIM	CAF	BIT1		# SET UP FOR GIMB DRIVE TEST AND TRIM (+1)
+		TCF	TRIMONLY +1
+TIGBLNK		CAF	5SEC		# CALL TIGAVEG IN FIVE SEC AT TIG-30
+		TC	WAITLIST
+		EBANK=	TIG
+		2CADR	TIGAVEG
+		
+		CAF	ZERO		# DISABLE HERE, NOT IN P40BLNKR
+		TS	NVWORD1
+		
+		CAF	PRIO14
+		TC	NOVAC
+		EBANK=	TIG
+		2CADR	P40BLNKR	# DON'T PROTECT -- RESTARTS BLANK DSKY
+		
+		CS	OCT37		# 4.37 = TIGAVEG (500CS)
+P40TSK		TC	NEWPHASE
+		OCT	4
+		TC	TASKOVER
+		
+		EBANK=	TIG
+ACADN83		2CADR	CALCN83
+
+		EBANK=	TIG
+SERVCADR	2CADR	SERVEXIT
+
+		EBANK=	DAPDATR1
+ACADN85		2CADR	CALCN85
+
+# Page 691
+# PROGRAM DESCRIPTION ** P47CSM **
+
+		COUNT	24/P47
+		
+		EBANK=	TIG
+P47CSM		TC	BANKCALL	# IMU STATUS CHECK
+		CADR	R02BOTH
+		TC	INTPRET
+		CALRB
+			MIDTOAV2
+		CA	MPAC +1		# DELTA TIME TO RPEREAD (LESS THAN 100
+		TS	P40TMP		#	CS, WITH A TPAGREE, INT.INIT.)
+		TC	WAITLIST
+		EBANK=	TIG
+		2CADR	TIGON		# TIGON IS REQUIRED TO MATHCHTAT AND AVEG
+		
+		TC	PHASCHNG
+		OCT 	40574		# A, 4.57 = TIGON (P40TMP CS)
+		TCF	ENDOFJOB
+		
+		EBANK=	P40TMP
+TIGON		EXTEND
+		DCA	ACADN83
+		DXCH	AVEGEXIT
+		CAF	PRIO30		# FORCE ZEROING OF N83 BEFORE SERVICER
+		TC	NOVAC
+		EBANK=	TIG
+		2CADR	P47BODY
+		
+		CS	BIT2		# 4.2 = PRECHECK (-0CS), P47BODY (PRIO30)
+		TCF	TTGPHS
+		
+		EBANK=	TIG
+CALCN83		TC	INTPRET
+		SETPD			# SET UP PUSHLIST FOR S41.1
+			0
+		VLOAD	VAD
+			DELVCTL
+			DELVREF
+		STORE	DV47TEMP	# FOR COPYCYCLE BELOW
+		PUSH	CALL
+			S41.1
+		STCALL	DELVIMU
+			S11.1		# CALC. VI, H, HDOT FOR NOUN 62
+		EXIT
+		TC	PHASCHNG
+		OCT	10035
+# Page 692
+		CAF	FIVE
+		TC	GENTRAN
+		ADRES	DV47TEMP
+		ADRES	DELVCTL
+		
+		TC	SERVXT
+P47BODY		TC	INTPRET
+		VLOAD
+			HI6ZEROS
+		STORE	DELVIMU		# CLEAR DISPLAY AND ACCUMULATOR STORAGE
+		STORE	DELVCTL		# UPON INITIATION OR ENTER RESPONSE
+		EXIT
+P47BOD		CAF	PRIO15		# LOWER PRIO THAN CALCN83 (20)
+		TC	PRIOCHNG	#	TO PREVENT INTERRUPTION OF CALCN83
+		TC	PHASCHNG
+		OCT	05024		# TYPE C GROUP 4 BELOW FOR NOUN 83
+		OCT	15000		# PRIO 15
+P47/DSP		CAF	V1683
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H
+		TC	GOTOP00H
+		TCF	P47BODY		# RECYCLE -- CLEAR ACCUMULATED VELOCITY
+
+# Page 693
+# ROUTINE ** TIG-30 ** DESCRIPTION
+
+		EBANK=	TIG
+		COUNT	24/P40
+		
+TIGAVEG		TC	P41/P40		# TASK (4.37 PROTECTS)
+		TCF	P41REDSP
+		
+		CAF	V06N40		# UNBLANK DISPLAY
+		TS	NVWORD1
+		
+		CAF	SEC24.96
+		TC	WAITLIST
+		EBANK=	TIG
+		2CADR	TIG-5
+		
+		CS	SIX		# 4.6 = TIG-5 (2496CS), PRECHECK (-0CS)
+TTGPHS		TC	NEWPHASE	# ENTRY FROM P41REDSP (P41) WITH A=-4, OR
+		OCT	4		#       FROM TIGON    (P47) WITH A=-1
+		
+PRECHECK	CCS	PHASE5		# HAS SERVICER BEEN RESTARTED
+		TCF	TASKOVER	# YES, DON'T START ANOTHER ONE
+		TC	POSTJUMP
+		CADR	PREREAD
+
+# Page 694
+# ROUTINE ** TIG-5 ** DESCRIPTION
+
+		EBANK=	TIG
+TIG-5		CAF	5SEC
+		TC	WAITLIST
+		EBANK=	DAPDATR1
+		2CADR	TIG-0
+		
+		CS	BIT9		# WILL CAUSE V99 FLASH
+		TS	NVWORD1
+		
+		TC	2PHSCHNG
+		OCT	40074		# A, 4.7 = TIG-0 (500CS)
+		OCT	00033		# A, 3.3 = S40.13 (PRIO20)
+		
+		CAF	PRIO20
+		TC	FINDVAC
+		EBANK=	TGO
+		2CADR	S40.13
+		
+		TCF	TASKOVER
+		
+# Page 695
+# ROUTINES ** TIG-0 ** AND ** IGNITION ** DESCRIPTION
+
+		EBANK=	DAPDATR1	# TASK, 4.7 PHASE, OR 4.77 (-0CS) IN R40
+TIG-0		CS	FLAGWRD7	# SET IGN FLAG
+		MASK	BIT13
+		ADS	FLAGWRD7
+		
+		CAE	FLAGWRD7	# CHECK ASTN FLAG FOR V99 RESPONSE
+		MASK	BIT12
+		EXTEND
+		BZF	TASKOVER	# WAIT FOR V99P
+		
+		CAF	V06N40		# CLEAR THE V99 (IN CASE OF A RESTART
+		TS	NVWORD1		#	DURING THE V99 SEQUENCE)
+		
+		TC	PHASCHNG	# V99P HAS COME ALREADY, DO IGNITION NOW
+		OCT	00614		# A, 4.61 = IGNITION (-0CS) TBASE OLD
+		
+IGNITION	CAE	CDUX		# SAVE FOR ROLL DAP REFERENCE OGAD
+		TS	OGAD		#	V99PJOB (CLOCKJOB) SETS UP IGNITION
+		EXTEND			# 	TASK (4.61 PROTECTION)
+		DCA	TIME2		#	FOR RESTARTS
+		DXCH	TEVENT
+		CS	FLAGWRD5	# SET ENGONFLG
+		MASK	BIT7
+		ADS	FLAGWRD5
+SPSON		CAF	BIT13		# TURN ON SPS ENGINE
+		EXTEND
+		WOR	DSALMOUT
+		
+IMPULCHK	CAF	BIT9		# CHECK FOR IMPULSIVE BURN
+		MASK	FLAGWRD2
+		CCS	A
+		TCF	IMPLBURN	# IMPULSIVE
+		CS	FLAGWRD6	# NON-IMPULSIVE, SET STRULLSW FOR STEERULL
+		MASK	BIT13
+		ADS	FLAGWRD6
+		
+PREPTVC		CS	OCT60000	# RESET T5 BITS
+		MASK	FLAGWRD6
+		TS	FLAGWRD6
+		
+		EXTEND			# KILL RCS
+		DCA	T5IDL24
+		DXCH	T5LOC
+		
+		CS	THREE		# 4.3 = DOTVCON (40CS)
+		TC	NEWPHASE
+		OCT	4
+		
+# Page 696
+		TC	FIXDELAY
+		DEC	40		# 0.4 SECOND DELAY FOR THRUST BUILDUP
+		
+DOTVCON		CS	BIT1		# SET TVCPHASE = TVCDAPON CALL (FRESHDAP)
+		TS	TVCPHASE
+		CAF	ZERO		# SET TVCEXECUTIVE PHASE
+		TS	TVCEXPHS
+		CS	OCT60000	# SET T5 BITS TO INDICATE TVC TAKEOVER ....
+		MASK	FLAGWRD6	#	BITS 15,14 = 10
+		AD	BIT15
+		TS	FLAGWRD6
+		
+		CAF	THREE		# 6.3 = CLOKTASK (100CS), DROPPING PRE40.6
+		TS	L		#	WHICH IS HANDLED NOW BY REDOTVC
+		COM
+		DXCH	-PHASE6
+		
+		EXTEND			# STORE RCS ATTITUDE ERRORS FOR USE IN
+		DCS	ERRORY		# INITIALIZING TVC ATTITUDE ERRORS
+		DXCH	ERRBTMP
+		
+		CS	FIVE		# 4.5 = DOSTRULL (160 CS)
+		TC	NEWPHASE
+		OCT	4
+		
+		CAF	POSMAX		# SET TIME5 FOR STARTING RIGHT AWAY
+		TS	TIME5
+		EXTEND
+		DCA	TVCON2C		# (TVCDAPON)
+		DXCH	T5LOC		# (KILLS RCS DAP)
+		
+		TC	FIXDELAY	# 0.4 + 1.6 = 2.0 SEC FOR ULLAGE-OFF AND
+		DEC	160		# 	STEERING (IF NON-IMPULSIVE)
+		
+DOSTRULL	CAF	BIT13		# CHECK STRULLSW FOR IMPULSIVE BURN
+		MASK	FLAGWRD6
+		CCS	A
+		TCR	STEERULL	# NON-IMPULSIVE, STEERING AND ULLAGE OFF
+		TCR	ULAGEOFF	# ULLAGE OFF (ONLY, OR AGAIN)
+		
+		EXTEND
+		DCA	NEG0		# KILL GROUP 4 (DP NEG0 = -0,+0)
+		DXCH	-PHASE4
+		
+ENDIGN		TCF	TASKOVER
+
+STEERULL	CS	FLAGWRD2	# SET STEERSW
+		MASK	BIT11
+		ADS	FLAGWRD2
+		
+# Page 697		
+		
+ULAGEOFF	CAF	ZERO
+		EXTEND
+		WRITE	CHAN5		# ZERO CHANNEL 5
+		TC	Q
+		
+IMPLBURN	CS	BIT13		# RESET STRULLSW (COULD BE AN IMPULSIVE
+		MASK	FLAGWRD6	#	ENGINE FAIL)
+		TS	FLAGWRD6
+		
+		TCR	E7SETTER
+		
+		EBANK=	TIG
+		EXTEND			# PREPARE FOR R1 OF V06N40 (CLOCKTASK)
+		DCA	TGO
+		DXCH	TIG
+		EXTEND
+		DCA	TIME2
+		DAS	TIG
+		
+		TC	2PHSCHNG
+		OCT	40153		# A, 3.15 = ENGINOFF (TGO+1) .... NOT GROUP
+		OCT	07014		# C, DELTAT NEXT, TASK BELOW, IN
+		DEC	-0		# -0 CS
+		EBANK=	DAPDATR1
+		2CADR	IMPLCONT
+		
+		CAE	TGO +1		# (TPAGREE IN S40.13, LESS THAN 600CS)
+		TC	WAITLIST
+		EBANK=	TGO
+		2CADR	ENGINOFF
+		
+IMPLCONT	CS	BIT9		# RESET IMPULSW, ENGINOFF IS NOW SET UP
+		MASK	FLAGWRD2
+		TS	FLAGWRD2
+		
+		TCR	E6SETTER
+		EBANK=	DAPDATR1
+		
+		CAF	ZERO		# SET UP V97VCNTR IN CASE ENGINOFF (MASS-=
+		TS	V97VCNTR	#	BACK) ARRIVES BEFORE TVCDAPON
+		
+		TCF	PREPTVC
+		
+		EBANK=	TGO		# E7 FORCED BY 3.15SPOT VARIABLE DELTA-T
+ENGINOFF	TCR	E6SETTER	# TASK, 3.15 PHASE (TGO+1 CS)	GET E6
+		EBANK=	DAPDATR1
+		CAE	CSMMASS
+		TS	MASSTMP		# COPYCYCLE FOR MASSBACK
+# Page 698
+		TC	2PHSCHNG
+		OCT	00003		# KILL GROUP 3 PROTECTION OF ENGINOFF, DO
+		OCT	40634		# A, 4.63 = DOSPSOFF (-0CS)
+DOSPSOFF	TCR	SPSOFF		# SHUTDOWN SPS, MASS UPDATES, ETC.
+		CS	OCT27/24	# (OCTAL 27)
+		TC	NEWPHASE
+		OCT	4		# 4.27 = DOTVCRCS (250 CS)
+		
+		TC	FIXDELAY	# 2.5 SECOND DELAY FOR SPS TAILOFF
+		DEC	250
+		
+DOTVCRCS	TCR	SETMAXDB	# WIDE DEADBAND FOR CUTOFF TRANSIENT
+
+		TC	IBNKCALL	# SET UP RCS DAP (KILLS TVCDAPS, SETS T5
+		CADR	RCSDAPON	#	BITS, WAITS 0.6SEC FOR TVCEXEC DIE)
+		
+		TC	IBNKCALL	# UPDATE WEIGHT/G AND MASS-PROPERTIES FOR
+		CADR	MASSPROP	#	RCS DAP STARTUP IN 0.6 SECONDS
+		
+		TCR	TVCZAP		# WIPE OUT TVC, TURN OFF CLOKTASK
+		
+		TC	PHASCHNG
+		OCT	00354		# A, 4.35 = POSTBURN (NOVAC, PRIO12)
+		CAF	PRIO12		# SET UP POSTBURN V16N40 JOB
+		TC	NOVAC
+		EBANK=	DAPDATR1	# (SET MAXDB IN POST41)
+		2CADR	POSTBURN
+		
+		TCF	TASKOVER
+		
+		EBANK=	DAPDATR1
+SPSOFF		EXTEND			# ESTABLISH SPSOFF TEVENT
+		DCA	TIME2
+		DXCH	TEVENT
+		CS	BIT7		# RESET ENGONFLG
+		MASK	FLAGWRD5
+		TS	FLAGWRD5	# (RESTARTS WILL SHUT DOWN SPS NOW)
+		CS	BIT13		# SHUT DOWN SPS ENGINE
+		EXTEND
+		WAND	DSALMOUT
+		
+		CAF	BIT14		# ISSUE SIV CUTOFF COMMAND
+		EXTEND			# FOR POSSIBLE BACK-UP USE
+		WOR	CHAN12
+MASSBACK	CAE	V97VCNTR	# RESTORE PART OF PRE-DECREMENTED MASS
+					#	V97CNTR = VCNTR UNLESS V97 IS
+					#	ACTIVE.  ONLY V97CNTR IS THEN RIGHT.
+		EXTEND			# VCNTR COUNTS 1/2-SECONDS IN TVC EXEC
+		MP	EMDOT		#	MDOT, SC.AT B+3 KG/CS
+		LXCH	A
+# Page 699		
+		EXTEND
+		MP	1SEC		# DEC 100
+		AD	MASSTMP		# CORRECTION IS ACCURATE TO 5 CS OF FLOW
+		TS	CSMMASS		#	(1.44 KG OR 0.4 BITS)
+		
+		CA	TVCPHASE	# CHECK IF OK FOR TRIM UPDATE
+		AD	ONE		#	THESE CHECKS ARE ONLY NEEDED
+		EXTEND			#	FOR A LESS THAN 0.4 SEC BURN
+		BZF	BTRIMR		# NO.  INITIALIZATION NOT COMPLETE
+		CS	FLAGWRD6	# YES, CHECK IF TVC
+		MASK	OCT60000
+		EXTEND
+		BZMF	BTRIMR		# NO, NOT TVC YET	
+BESTTRIM	CAE	DELPBAR		# UPDATE TRIMS WITH DELFILTER VALUES
+		TS	PACTOFF
+		CAE	DELYBAR
+		TS	YACTOFF
+BTRIMR		TC	Q
+		EBANK=	DAPDATR1
+STEERADS	2CADR	STEERING
+
+.6SECT5		OCT	37703
+5SECDP		DEC	0		# MAKE DP 5SEC
+5SEC		DEC	500
+OCT02202	OCT	02202		# BITS 2, 8, 11 FOR CHANNEL 12 TVC/OPTICS
+		EBANK=	DAPDATR1
+TVCON2C		2CADR	TVCDAPON
+		
+	-1	INHINT
+TVCZAP		CS	OCT02202	# DISABLE TVC AND OPT ERR CNTRLS, REENGAGE
+		EXTEND			#	OPTICS DAC
+		WAND	CHAN12
+		CS	BIT1		# ENABLE T4RUPT OPTICS MONITOR .... PERMIT
+		TS	OPTIND		#	OPTICS-ZERO BUT NOT OPTICS-DRIVE
+		CAF	ZERO		# CLEAR NVWORD1 IN CASE CLOCKJOB WAITING
+		TS	NVWORD1
+		CS	BIT11		# CLEAR TIMRFLAG TO STOP CLOKTASK
+		MASK	FLAGWRD7
+		TS	FLAGWRD7
+		TC	Q
+		EBANK=	DAPDATR1
+UPDATEVG	STQ	BON
+			QTEMP1
+			XDELVFLG
+			CALL40.8
+			
+		SLOAD	BMN
+			NBRCYCLS
+			SETUP.9
+# Page 700			
+			
+		VLOAD	VAD
+			DELVSUM
+			DELVREF
+		STORE	DELVSUMP
+		EXIT
+		CA	ONE
+		AD	NBRCYCLS
+		TS	NBRCYCLP
+		
+		TC	PHASCHNG	# TYPE B RESTART RESTART BELOW AND 5.3 REREADACCS
+		OCT	10035
+		
+		CA	NBRCYCLP
+		TS	NBRCYCLS
+		TC	INTPRET
+		VLOAD
+			DELVSUMP
+		STORE	DELVSUM
+		
+CALL40.8	CALL
+			S40.8
+		GOTO
+			QTEMP1
+			
+SETUP.9		BON	SLOAD
+			FIRSTFLG
+			SURELY.9
+			NBRCYCLP
+		NORM	VXSC		# (NORM HANDLES ZERO PROPERLY)
+			X1
+			BDT
+		VSR*	VAD
+			0 -14D,1
+			VGTEMP
+		VSU
+			DELVSUM
+		STORE	VGPREV
+SURELY.9	EXIT
+		CAF	PRIO10
+		TC	FINDVAC
+		EBANK=	DAPDATR1
+		2CADR	S40.9
+		
+		TC	2PHSCHNG
+		OCT	00051		# A, 1.5 = REDO40.9, PRIO 10
+		OCT	10035
+		TC	INTPRET
+		VLOAD
+			RN		# ACTIVE VEHICLE RADIUS VECTOR AT T1
+		STOVL	RINIT
+# Page 701		
+			VN		# ACTIVE VEHICLE VELOCITY VECTORY AT T1
+		STODL	VINIT
+			PIPTIME
+		STORE	TNIT
+		BDSU
+			TPASS4
+		STOVL	DELLT4
+			HI6ZEROS
+		STODL	DELVSUM
+			HI6ZEROS
+		STORE	NBRCYCLS
+		GOTO
+			CALL40.8
+		EBANK=	DAPDATR1
+STEERING	TC	INTPRET
+		CALL
+			UPDATEVG
+		EXIT
+		CAF	BIT9		# CHECK IMPULSW
+		MASK	FLAGWRD2
+		CCS	A
+		TCF	+3		# PRE-IGNITE, REQUEST ENG-OFF, OR POST-OFF
+SERVXT		TC	POSTJUMP
+		CADR	SERVEXIT
+		CAF	BIT13		# CHECK ENGINE-ON/-OFF
+		EXTEND
+		RAND	DSALMOUT
+		EXTEND
+		BZF	SERVXT		# ENGINE-OFF, SO PRE-IGNITE OR POST-OFF
+		TCR	E7SETTER
+		EBANK=	TIG
+		INHINT
+		EXTEND
+		DCA	TIG
+		DXCH	MPAC
+		EXTEND
+		DCS	TIME2
+		DAS	MPAC
+		TCR	DPAGREE
+		CAE	MPAC +1		# (LESS THAN 6 (OR 4) SECONDS TO GO)
+		CCS	A		# PROTECT AGAINST NEG/ZRO W.L. CALL
+		TCF	+3
+		TCF	+2
+		CAF	ZERO
+		AD	ONE
+		XCH	L
+		CA	ZERO
+		DXCH	TGO
+		CA	TGO +1
+		TC	WAITLIST
+# Page 702		
+		EBANK=	TGO
+		2CADR	ENGINOFF
+		
+		TC	2PHSCHNG
+		OCT	40153		# A, 3.15 = ENGINOFF (TGO+1) .... NOTE GROUP
+		OCT	10035		# B, 5.3 = REREADAC, AND START BELOW
+		TC	DOWNFLAG	# CLEAR IMPULSW, ENGINOFF IS NOW SET UP
+		ADRES	IMPULSW		# RESTARTS OK
+		TCF	SERVXT
+
+# Page 703
+# ROUTINE ** CLOKTASK ** DESCRIPTION
+
+		EBANK=	TIG
+CLOKTASK	CAF	BIT11		# IS TIMRFLAG SET
+		MASK	FLAGWRD7
+		CCS	A
+		TCF	CLOCKON
+		TC	PHASCHNG
+		OCT	00006		# KILL RESTART
+		TC	TASKOVER
+		
+CLOCKON		EXTEND
+		DCA	TIME2
+		DXCH	TTOGO
+		EXTEND
+		DCS	TIG
+		DAS	TTOGO
+		
+SETCLOCK	CAF	1SEC
+		TC	WAITLIST
+		EBANK=	TIG
+		2CADR	CLOKTASK
+		
+		CCS	NVWORD1
+		TCF	+3
+		TCF	SETTB6
+		
+		TCF	+1
+		CS	V06N85B		# CHECK FOR V06N85B (P41)
+		AD	NVWORD1
+		EXTEND
+		BZF	SETUPDYN	# V06N85, SO UPDATE N85 FOR DYNAMIC DISP
+		
+		CAF	PRIO27
+		TC	NOVAC
+		EBANK=	DAPDATR1
+		2CADR	CLOCKJOB
+		
+SETTB6		CS	TIME1		# SET GROUP6 TIMEBASE
+		TS	TBASE6
+		TCF	TASKOVER
+		
+SETUPDYN	CAF	PRIO27		# SET UP A JOB TO UPDATE N85 (FOR P41=V06)
+		TC	FINDVAC
+		EBANK=	DAPDATR1
+		2CADR	DYNDISP
+		
+		TCF	SETTB6		# CLOSE OUT CLOCKTASK
+# Page 704
+DYNDISP		TC	INTPRET		# UPDATE N85 FOR A DYNAMIC V06N85 IN P41.
+		CALL			#	PRIOR TO BLANKING AND AVEG (V16N85)
+			P40CNV85
+		EXIT
+		TCF	CKNVWRD1
+		
+# Page 705
+# ROUTINE ** CLOCKJOB ** DESCRIPTION
+
+		EBANK=	DAPDATR1
+CLOCKJOB	CA	CDUX
+		TS	CDUSPOTX
+		CA	CDUY
+		TS	CDUSPOTY
+		CA	CDUZ
+		TS	CDUSPOTZ
+		TC	BANKCALL
+		CADR	QUICTRIG
+CKNVWRD1	INHINT
+		CCS	NVWORD1		# DETERMINE FUNCTION, INDICATED BY NVWORD1
+		TCF	NOFLASH
+		TCF	ENDOFJOB
+		TCF	ENGREQST	# SPS ENGINE-ON-ENABLE V99 FLASH
+FAILDSP		CAF	V06N40		# SPS ENGINE-FAILED V97 FLASH
+		TC	BANKCALL
+		CADR	CLOCPLAY
+		TCF	V97T		# TERMINATE
+		TCF	V97P		# PROCEED
+		TCF	V97E		# ENTER
+		
+ENGREQST	CAF	V06N40
+		TC	BANKCALL
+		CADR	CLOCPLAY	# LINUS MAKES IT A REDO, INHINT OK
+		TCF	V99T		# TERMINATE
+		TCF	V99P		# PROCEED
+		TCF	V99E		# ENTER
+		
+NOFLASH		CAE	NVWORD1		# DISPLAY NVWORD1 NORMALLY
+		TC	BANKCALL
+		CADR	REGODSP
+		
+E7SETTER	CAF	EBANK7
+		TS	EBANK
+		EBANK=	TIG
+		TC	Q
+		
+E6SETTER	CAF	EBANK6		# SET UP EBANK6
+		TS	EBANK
+		EBANK=	DAPDATR1
+		TC	Q
+		
+		EBANK=	DAPDATR1
+V99E		TC	2PHSCHNG
+		OCT	00006		# KILL PRE40.6/CLOKTASK PROTECTION
+		OCT	05024		# C, PRIORITY NEXT, JOB BELOW
+# Page 706		
+		OCT	27000
+V99EJOB		TCR	TVCZAP -1	# WIPE OUT TVC, CLOKTASK
+		TCF	P40RCS		# V16N85 POST-BURN OPERATIONS
+		
+		EBANK=	DAPDATR1
+V99T		TC	2PHSCHNG	# (ENTRY FROM V97T FLOW TOO)
+		OCT	00006		# KILL PRE40.6/CLOKTASK PROTECTION
+		OCT	05024		# C, PRIORITY NEXT, JOB BELOW
+		OCT	27000
+V99TJOB		TCR	TVCZAP -1	# WIPE OUT TVC, CLOKTASK
+		TCF	POST41		# AVEGEXIT, SETMAXDB, GOTOP00H
+		
+V99P		INHINT
+		CAE	FLAGWRD7	# CHECK ASTN FLAG FOR PRIOR V99P
+		MASK	BIT12
+		CCS	A
+		TCF	V99P/TIG	# YES, THIS MUST BE A RESTART ENTRY
+		
+ASTNV99P	CAF	BIT12		# SET ASTN FLAG
+		ADS	FLAGWRD7
+		CAE	FLAGWRD7	# CHECK IGN FLAG FOR TIG-0 ARRIVAL
+		MASK	BIT13
+		EXTEND
+		BZF	V99P/TIG	# NO, CLEAR THE V99 AND WAIT FOR TIG-0
+		
+ENDV99PI	CAF	BIT1		# TIG-0 HAS COME ALREADY
+		TC	WAITLIST	# SET UP IGNITION HERE
+		EBANK=	DAPDATR1
+		2CADR	IGNITION
+		
+V99P/TIG	CAF	V06N40		# CLEAR THE V99 FLASH AND WAIT FOR TIG-0
+		TS	NVWORD1
+ENDV99P		TCF	ENDOFJOB
+
+		EBANK=	CSMMASS
+V97T		TC	2PHSCHNG
+		OCT	00006		# KILL GROUP 6 (CLOKTASK)
+		OCT	40674		# A, 4.67 = V97TTASK (-0 CS), TBASE NOW
+		CAF	BIT1
+		TC	TWIDDLE
+		ADRES	V97TTASK	# KEEP EBANK6 FOR MASSES, SPSOFF, ETC.
+		TCF	ENDOFJOB
+		
+		EBANK=	CSMMASS
+V97TTASK	CAF	ZERO		# DISABLE CLOCKJOB
+		TS	NVWORD1
+		CAF	3MDOT		# 3 SECONDS OF MDOT (2-4 SEC ENGFAIL
+		AD	CSMMASS		#	DETECTION) NOT LOST BECAUSE THRUST
+		TS	MASSTMP		#	FAILED.  COPYCYCLE FOR MASSBACK
+# Page 707		
+		TC	PHASCHNG
+		OCT	05014		# C, DELTAT NEXT, TASK BELOW, IN
+		DEC	-0		# -0 CS
+		
+		TCR	SPSOFF		# SHUTDOWN SPS ENGINE, MASS UPDATE, ETC.
+		TC	PHASCHNG
+		OCT	00714		# A, 4.71 = V97TRCS (250 CS), TBASE OLD
+		TC	FIXDELAY	# DELAY 2.5 SECONDS FOR (POSSIBLE) TAIL-
+		DEC	250		#	OFF (FALSE THRUST-LOSS)
+		
+		EBANK=	DAPDATR1
+V97TRCS		TC	IBNKCALL	# RCS DAP IN 0.6SEC, SETTING T5 BITS TO
+		CADR	RCSDAPON	#	KILL TVCEXEC/TVCROLLDAP STARTS
+		CAF	PRIO27		# SET UP V99T FOR TVCZAP AND POST41 (SET-
+		TC	NOVAC		#	MAXDB AND GOTOP00H)
+		EBANK=	DAPDATR1	# EBANK6 FOR SETMAXDB IN POST41
+		2CADR	V99T
+		
+ENDV97T		TCF	TASKOVER
+
+		EBANK=	V97VCNTR
+V97P		TC	PHASCHNG
+		OCT	40734		# A, 4.73 = V97PTASK (-0 CS), TBASE NOW
+		CAF	BIT1
+		TC	TWIDDLE
+		ADRES	V97PTASK
+		TCF	ENDOFJOB
+		
+		EBANK=	V97VCNTR
+V97PTASK	CAE	V97VCNTR	# GET MASS UPDATES (TVCEXEC) GOING AGAIN
+		TS	VCNTR		#	(ERRORS IF FLASE THRUST-LOSS AND/OR
+					#	POOR SYNC OF MANUAL ENGINE-ON AND
+					#	THE VERB 97 PROCEED)
+		CAF	V06N40		# REDISPLAY V06N40
+		TS	NVWORD1
+		TC	UPFLAG		# SET IDLEFAIL TO ALLOW R41-BYPASS, IN
+		ADRES	IDLEFAIL	#	CASE OF UNFAVORABLE S40.8 SYNCH
+		TC	UPFLAG		# SET STEERSW TO RE-ENABLE STEERING
+		ADRES	STEERSW
+		TC	PHASCHNG
+		OCT	00134		# A, 4.13 = R40ENABL (200 CS), TBASE OLD
+		TC	FIXDELAY	# WAIT 2 SECONDS, THEN
+		DEC	200
+		
+		EBANK=	WHOCARES
+R40ENABL	TC	DOWNFLAG	# RE-ENABLE R40 BY CLEARING IDLEFAIL
+		ADRES	IDLEFAIL
+		TC	PHASCHNG
+		OCT	00004		# KILL GROUP 4
+# Page 708		
+ENDV97P		TCF	TASKOVER
+
+		EBANK=	WHOCARES
+V97E		TC	PHASCHNG
+		OCT	40534		# A, 4.53 = V97ETASK (-0 CS), TBASE NOW
+		CAF	BIT1
+		TC	WAITLIST
+		EBANK=	TIG
+		2CADR	V97ETASK
+		
+		TCF	ENDOFJOB
+		
+		EBANK=	TIG
+V97ETASK	CS	OCT24		# FORCE R1 OF V06N40 TO READ  59X59
+		TS	TIG
+		CAF	V06N40		# REDISPLAY V06N40
+		TS	NVWORD1
+		TCR	E6SETTER	# RETURN TO EBANK6 FOR REST OF V97ETASK
+		EBANK=	CSMMASS
+		CAF	3MDOT		# 3 SECONDS OF MDOT (2-4 SEC ENGFAIL
+		AD	CSMMASS		#	DETECTION) NOT LOST BECAUSE THRUST
+		TS	MASSTMP		#	FAILED....COPYCYCLE FOR MASSBACK
+		TC	PHASCHNG
+		OCT	00754		# A, 4.75 = SPSOFF97 (-0 CS), TBASE OLD
+SPSOFF97	TCR	SPSOFF
+		TC	PHASCHNG
+		OCT	00114		# A, 4.11 = V97E40.6 (250 CS), TBASE OLD
+		TC	FIXDELAY	# DELAY 2.5 SECONDS FOR (POSSIBLE) TAIL-
+		DEC	250		#	OFF (FALSE THRUST-LOSS)
+		
+		EBANK=	DAPDATR1
+V97E40.6	CAF	BIT1
+		TC	WAITLIST
+		EBANK=	CNTR
+		2CADR	PRE40.6		# USE S40.6 RESTART ENTRY TO TRIM ENGINE
+		
+		TC	IBNKCALL	# RCS DAP IN 0.6SEC, SETTING T5 BITS TO
+		CADR	RCSDAPON	#	KILL TVCEXEC/TVCROLLDAP STARTS.
+					#	LEAVE NARROW DEADBAND FOR REIGNITE.
+					
+		TC	2PHSCHNG
+		OCT	00026		# A, 6.2 = PRE40.6 (-0 CS), CLOKTASK (1 SEC)
+		OCT	05014		# C, DELTAT NEXT, TASK BELOW, IN
+		DEC	-0		# -0 CS.
+
+QUICKIGN	CS	PRIO14		# CLEAR ASTNFLAG AND SET IGNFLAG FOR
+		MASK	FLAGWRD7	#	IMMEDIATE V99 RESPONSE.
+		AD	BIT13
+		TS	FLAGWRD7
+		TC	FIXDELAY	# DELAY TO ALLOW TIME FOR PRE40.6
+# Page 709		
+		DEC	30
+		
+V99FLASH	CS	BIT9		# CAUSE V99 TO FLASH
+		TS	NVWORD1
+		TC	2PHSCHNG
+		OCT	40774		# A, 4.77 = TIG-0 (-0 CS) TBASE FOR PREPTVC
+		OCT	00033		# A, 3.3 = S40.13 (PRIO 20)
+		CAF	PRIO20		# SET UP TIMEBURN
+		TC	FINDVAC
+		EBANK=	TGO
+		2CADR	S40.13
+		
+ENDV97E		TCF	TASKOVER	# WAIT FOR CLOCKJOB (IMMEDIATE) REACTION
+					# 	TO FLASHING V99 RESPONSE.
+					
+# MOD N02				LOG SECTION P40-P47
+# MOD BY ZELDIN
+#
+# FUNCTIONAL DESCRIPTION
+#	COMPUTE INITIAL THRUST DIRECTION(UT) AND INITIAL VALUE OF VG
+#	VECTOR(VGTIG).
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		S40.1
+#
+# NORMAL EXIT MODE
+#	AT L+2 OF CALLING SEQUENCE (GOTO L+2) NORMAL RETURN OR
+#	ERROR RETURN IF NOSOFLAG =1
+#
+# SUBROUTINES CALLED
+#	CSMPREC
+#	INITVEL
+#	CALCGRAV
+#	MIDGIM
+#
+# ALARM OR ABORT EXIT MODES
+#	L+2 OF CALLING SEQUENCE, UNSOLVABLE CONIC IF NOSOFLAG=1
+#
+# ERASABLE INITIALIZATION REQUIRED
+#	WEIGHT/G	ANTICIPATED VEHICLE MASS	SP B16 KGM
+#	XDELVFLG	1=DELTA-V MANEUVER, 0=AIMPT STEER
+#   IF DELTA-V MANEUVER:
+#	DELVSIN		SPECIFIED DELTA-V REQUIRED IN
+#			INERTIAL COORDS. OF ACTIVE VEHICLE
+#			AT TIME OF IGNITION		VECTOR B7 M/CS
+#	DELVSAB		MAG. OF DELVSIN			DP B7 M/CS
+#	RTIG		POSITION AT TIME OF IGNITION	VECTOR B29 M
+#	VTIG		VELOCITY AT TIME OF IGNITION	VECTOR B7 M/CS.
+#	CSTEER = 0					DP
+#   IF AIMPOINT STEERING:
+#   IF AIMPT STEER
+#	TIG		TIME OF IGNITION		DP B28 CS
+#	RTARG		POSITION TARGET TIME		VECTOR B29 M
+#	CSTEER = ECSTEER (GR 0) 			DP B1
+# Page 710
+#	TPASS4 -- TIME OF ARRIVAL AT AIMPOINT
+#
+# OUTPUT
+#	UT		1/2 UNIT VECTOR ALIGNED WITH THRUST DIRETION IN REF COOR
+#	VGTIG		INITIAL VALUE OF VELOCITY
+#			TO BE GAINED (INERT. COORD.)		VECTOR B7 M/CS
+#	DELVLVC		VGTIG IN LOC. VERT. COORDS.		B7 M/CS
+#	F		NOMINAL THRUST FOR ENG USED FOR S40.13	DP B7 M-NEWT
+#	BDT		V REQUIRED AT TIG -V REQUIRED AT (TIG-2SEC)
+#	-GDT		FOR S40.13				VECT B7 M/CS
+#	RTIG		CALC IN S40.1B (AIMPT) FOR S40.2,3	VECTOR B29M
+#			POSITION AT TIME OF IGNITION
+#
+# DEBRIS	QTEMP1
+#		MPAC, QPRET
+#		PUSHLIST
+#		RTX2,RTX1
+
+		BANK	14
+		SETLOC	P40S1
+		BANK
+
+		COUNT	16/S40.1
+		
+S40.1		SET	VLOAD
+			FIRSTFLG
+			LO6ZEROS
+		STORE	BDT
+		STQ	BOF
+			QTEMP
+			XDELVFLG
+			S40.1B		# LAMBERT
+		VLOAD	ABVAL		# EXTERNAL DELTA-V
+			DELVSIN
+		STORE	DELVSAB		# COMPUTE FOR P30/P40 INTERFACE
+					#	THUS PERMITTING MODULE-ONLY CHANGE
+		SETPD	VLOAD
+			0
+			VTIG
+		STORE	VINIT
+		VXV	UNIT
+			RTIG
+		STOVL	UT		# UP IN UT
+			RTIG
+		STORE	RINIT
+		VSQ	PDDL
+			36D
+		DMPR	DDV
+			THETACON
+		DMP	DMP
+			DELVSAB
+			WEIGHT/G
+		DDV
+# Page 711
+			F
+		STOVL	14D
+			DELVSIN
+
+		DOT	VXSC
+			UT
+			UT
+		VSL2	PUSH		# (DELTAV.UP)UP SCALED AT 2(+7) P.D.L. 0
+		BVSU	PDDL		# DELTA VP SCALED AT 2(+7) P.D.L. 6
+			DELVSIN
+			14D
+		SIN	PDVL
+			6D
+		VXV	UNIT
+			UT
+		VXSC	STADR
+		STOVL	VGTIG		# UNIT(VP X UP)SIN(THETAT/2) IN VGTIG.
+		UNIT	PDDL		# UNIT(DELTA VP) IN P.D.L. 6
+			14D
+		COS	VXSC
+		VAD	VXSC
+			VGTIG
+			36D
+		VSL2 	VAD
+		STADR
+		STORE	VGTIG		# VG IGNITION SCALED AT 2(+7) M/CS
+
+		UNIT
+		STOVL	UT		# THRUST DIRECTION SCALED AT 2(+1)
+			VGTIG
+		PUSH	SET
+			AVFLAG
+		CALL
+			MIDGIM		# VGTIG IN LV COOR AT 2(+7)M/CS IN DELVLVC
+		GOTO
+			QTEMP
+S40.1B		DLOAD	DSU		# LAMBERT
+			TIG
+			TWODT
+		STODL	TDEC1
+			TPASS4
+		DSU	
+			TDEC1
+		STCALL	DELLT4
+			AGAIN
+		VLOAD
+			VIPRIME
+		STODL	UT
+			TIG
+		STORE	TDEC1
+# Page 712		
+		BDSU
+			TPASS4
+		STCALL	DELLT4
+			AGAIN
+		VLOAD	PUSH
+			DELVEET3
+		STORE	VGTIG
+		SET	CALL
+			AVFLAG
+			MIDGIM
+		SETPD	GOTO
+			0
+			CALCUT
+			
+THETACON	2DEC	.31830989 B-8
+
+		SETLOC	P40S3
+		BANK
+		
+		COUNT	24/S40.1
+
+EP4(45)H	2DEC	.125
+
+EP4(10)H	2DEC	.027777777
+
+AGAIN		STQ	CALL
+			QTEMP1
+			THISPREC
+		SXA,2	SXA,1
+			RTX2
+			RTX1
+		VLOAD
+			RATT
+		STORE	RTIG
+		STOVL	RINIT
+			VATT
+		STORE	VTIG
+		STORE	VINIT
+		SETPD	SLOAD
+			0
+			HI6ZEROS
+		PDDL	BON
+			EP4(45)H
+			NORMSW
+			+3
+		DLOAD
+			EP4(10)H
+		PUSH	CALL
+			INITVEL
+		SETPD	GOTO
+# Page 713		
+			0
+			QTEMP1
+CALCUT		VLOAD	CALL
+			RTIG
+			CALCGRAV	# GDELTAT IN MPAC AT 2(+7) M/CS
+		VSL1	V/SC
+			200CS		# G AT 2(-5) M/CS. CS
+		PDVL	VSU
+			VIPRIME
+			UT
+		V/SC	VSU
+			200CS
+		VXSC	VSL2
+			CSTEER
+		STOVL	12D		# B.C SCALED AT 2(-15) PDL 12D
+			VGTIG
+		UNIT	PUSH		# UG PDL 0 SCALED AT 2(+1)
+		
+		DOT	VXSC
+			12D
+			0
+		VSL2	BVSU
+			12D
+		STODL	12D		# Q PDL SCALED AT 2(-5)
+			F
+		SRR	DDV
+			4
+			WEIGHT/G
+		DSQ	PDVL		# F/MASS SQUARED PDL 6 AT 2(-10M/(CS.CS)
+			12D
+		VSQ
+		BDSU	SQRT
+		VXSC	VSL1
+		VAD	UNIT
+			12D
+		STCALL	UT
+			QTEMP
+200CS		2DEC	200 B-12
+
+# Page 714
+# PROGRAM DESCRIPTION S40.2,3		DATE 15 NOV 66
+# MOD NO 2				LOG SECTIONS P40-P47
+# MOD BY ZELDIN
+#
+# FUNCTIONAL DESCRIPTION
+#	
+#	COMPUTE GIMBAL ANGLES IF THRUSTING OCCURRED WITH PRESENT IMU
+#	ORIENTATION, WINGS LEVEL SPACECRAFT, HEADS UP
+#	COMPUTE X AXIS OF ENGINE BELL
+#	COMPUTE PREFERRED IMU ORIENTATION (XSCREF)
+#	FOR THIS CALCULATION, ASSUME X AXIS OF SC ALONG UT INITIALLY,
+#	YSC=UNIT(XXR), ZSC=UNIT(XX(XXR)) AND ROTATE ENGINE BELL ALONG UT.
+#	NEW SC AXES WILL BE APPROX. WINGS LEVEL AND NEW SC AXES IN REF.
+#	COORDS. WILL BE PREFERRED IMU ORIENTATION.
+#	COMPUTE DESIRED THRUST DIRECTION IN SM COORDS.
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		S40.2,3
+#
+# NORMAL EXIT MODE
+#	AT L+2 OF CALLING SEQUENCE (GOTO L+2)
+#
+# SUBROUTINES CALLED
+#	CALCGA
+#
+# ALARM OR ABORT MODES
+#	NONE
+#
+# ERASABLE INITIALIZATION REQUIRED
+#	PACTOFF		TOTAL PITCH TRIM ANGLE		SP AT 1.0795111 REV.
+#	YACTOFF		TOTAL YAW   TRIM ANGLE		SP AT 1.0795111 REV.
+#	UT		DESIRED THRUST DIRECTION	VECT. B2 M/(CS.CS)
+#	RTIG		POSITION AT TIME OF IGNITION	VECT. B29 M
+#	ENG2FLAG	ON=RCS  OFF=SPS
+#
+# OUTPUT
+#	SCAXIS		UNIT VECT. ALIGNED WITH ENG BELL IN SC COOR.	B1
+#	XSCREF		UNIT VECTORS ALIGNED WTH PREFERRED IMU		B1
+#	YSCREF
+#	ZSCREF
+#	GIMBAL ANGLES IN THETAD
+#	POINTVSM	UNIT VECT ALONG DESIRED THRUST DIRECTION IN SM	B1
+#
+# DEBRIS
+#	PUSHLIST, QPRET, MPAC
+#	QTEMP	TEMP. ERASABLE
+
+		BANK	24
+		SETLOC	P40S
+		BANK
+		COUNT*	$$/S40.2
+S40.2,3		VLOAD	MXV
+			UT
+			REFSMMAT
+		VSL1	STQ
+			QTEMP
+		STORE	POINTVSM	# THRUST IN SM AT 2
+		SETPD	BON
+			0
+# Page 715
+			ENG2FLAG
+			S40.2,3B
+		DLOAD
+			HI6ZEROS
+		PUSH	SLOAD		# ZERO PDL 0
+			YACTOFF
+		DMP	SL1
+			TRIMSCAL
+		DAD	PUSH
+			YBIAS
+		COS	PDDL		# COS(Y +Y0) PDL 2
+		SIN	PUSH		# SIN(Y +Y0) PDL 4
+		SLOAD
+			PACTOFF
+		DMP	SL1
+			TRIMSCAL
+		DAD	PUSH
+			PBIAS
+		COS	PDDL		# COS(P +P0) PDL 6
+		SIN	PUSH		# SIN(P +P0) PDL 8D
+		STODL	ZSCREF		# SIN(P +P0)
+			6
+		DMP	SL1
+			4
+		DCOMP	PDDL		# -SIN(Y+Y0)COS(P+P0) PDL 10
+			6
+		DMP	SL1
+			2
+		VDEF
+		
+		STODL	XSCREF		# PD POINTER AT 6 NEW SC X AXIS SCALED AT 
+			ZSCREF
+		DMP	SL1
+			4
+		PDDL	DMP
+			ZSCREF
+			2
+		SL1	DCOMP
+		VDEF
+		
+		STODL	ZSCREF		# PD POINTER AT 4 NEW SC Z AXIS SCALED AT 2
+		VDEF
+		
+		STODL	YSCREF		# PD POINTER AT 0 NEW SC Y AXIS SCALED AT 2
+			ZSCREF
+		PDDL	PDDL
+			YSCREF
+			XSCREF
+		VDEF
+# Page 716
+		STOVL	SCAXIS		# ENGINE BELL SCALED AT 2
+			UT
+		PDVL	UNIT
+			RTIG
+		VXV	VCOMP
+			0
+		UNIT	PUSH
+		CALL
+			TSTRXUT
+		VXV	VCOMP
+			0
+		VSL1	PDVL		# 2 RF/SC IN PDL 12D
+			XSCREF
+		VXM	VSL1
+			0
+		STOVL	XSCREF		# X OF PREF. IMU,X OF SC IN REF COOR. AT 2
+			YSCREF
+		VXM	VSL1
+			0
+		STOVL	YSCREF		# Y OF PREF. IMU,Y OF SC IN REF COOR. AT 2
+			ZSCREF
+		VXM	VSL1
+			0
+		STORE	ZSCREF		# Z OF PREF. IMU,Z OF SC IN REF COOR. AT 2
+		SETPD	GOTO
+			0
+			QTEMP
+S40.2,3B	VLOAD
+			UNITX
+		STOVL	SCAXIS
+			UT
+		STORE	XSCREF
+		VXV	UNIT
+			RTIG
+		STCALL	6D
+			TSTRXUT
+		STORE	YSCREF
+		VXV	VCOMP
+			XSCREF
+		VSL1
+		STCALL	ZSCREF		# ZNB AXIS IN REF COOR
+			QTEMP
+TSTRXUT		DLOAD	BHIZ
+			36D
+			BADVCTOR
+		VLOAD	RVQ
+			6D
+BADVCTOR	VLOAD	UNIT
+			RTIG
+		PDVL	UNIT
+# Page 717
+			VTIG
+		VSR3	VAD
+		VXV	UNIT
+			UT
+		VCOMP
+		STORE	6D
+		RVQ
+TRIMSCAL	2DEC	1.07975111 B-1
+
+YBIAS		2DEC	+.00263888889	# YAW	MECH BIAS (+0.95 DEG, THRUST ON)
+
+PBIAS		2DEC	-.00597222222	# PITCH	MECH BIAS (-2.15 DEG, THRUST ON)
+
+					# REFERENCE, TRW 68.6520.3.3-40 27 FEB, 1968
+					
+# PROGRAM DESCRIPTION S41.1		DATE 8 DEC 66
+# MOD NO 1				LOG SECTION P40-P47
+# MOD BY ZELDIN
+#
+# FUNCTIONAL DESCRIPTION
+#
+#	COMPUTE VELOCITY TO BE GAINED INITIALLY IN REF COORDS.
+#	TO CONTROL COORDS.
+#
+# CALLING SEQUENCE
+#
+#	L	CALL
+#	L+1		S41.1
+#
+# NORMAL EXIT MODE
+#	
+#	AT L +2 OF CALLING SEQUENCE
+#
+# SUBROUTINES CALLED:
+#
+#	CALCSMSC
+#	CDUTRIG
+#
+# ALARM OR ABORT MODES
+#
+#	NONE
+#
+# ERASABLE INITIALIZATION REQUIRED
+#
+#	VG IN REF. COORD. PDL L POINTER AT L+5.  S41.1 WILL RETURN WITH
+# 	POINTER AT L (L MUST BE LESS THAN OR = TO 14D)
+#
+# OUTPUT
+#
+#	MPAC CONTAINS VG IN CONTROL COORDS		VECT. B7 M/CS
+#
+# DEBRIS:
+#
+#	QTEMP		TEMP ERASABLE
+#	QPRET
+
+		COUNT	22/S41.1
+		
+		SETLOC	P40S5
+		BANK
+		
+S41.1		STQ	CALL
+			QTEMP
+			CDUTRIG
+		VLOAD
+		MXV	CALL
+			REFSMMAT
+			*SMNB*
+# Page 718
+		MXV	VXSC
+			QUADROT
+			TENBNK14	# VG IN CONTROL COORD IN MPAC SCALED AT
+		VSL5	GOTO		# VG IN CONTROL COORDS. IN MPAC AT 2(+7)
+			QTEMP
+TENBNK14	2DEC	10. B-4
+
+# Page 719
+# NAME		S40.8 -- CROSS PRODUCT STEERING
+# FUNCTION	(1) UPDATES THE VELOCITY-TO-BE-GAINED VECTOR.
+#		(2) GENERATES ANGULAR RATE STEERING COMMANDS FOR AUTOPILOT.
+#		(3) ESTABLISHES ENGINE CUT-OFF SIGNALS AT APPROPRIATE TIMES.
+#		(4) INITIATES THRUST-FAIL ROUTINE, R40
+# CALLING SEQ	CALL S40.6
+# INPUT		VGPREV 		LAST VALUE OF THE VELOCITY-TO-BE-GAINED VECTOR
+#				PRIOR TO UPDATING IN METERS/CS AT +7.
+#		DELVREF		CHANGE IN VEHICLE VELOCITY SINCE LAST MEASUREMENT
+#				IN METERS/CS AT +7.
+#		BDT		EFFECT OF RATE OF CHANGE OF REQUIRED VELOCITY AND
+#				GRAVITY DURING DT UPON VELOCITY-TO-BE-GAINED IN
+#				METERS/CS AT +7.
+#		CSTEER		A SCALAR OF THE STEERING LAW, SC.AT B+1, USED FOR
+#				SPS AIMPOINT STEERING MANEUVERS.
+#		IDLEFAIL	A FLAG TO INHIBIT (IDLE) THE THRUST-FAIL ROUTINE.
+#		STEERSW		A SWITCH TO PRECLUDE NEEDLESS CONDUCT OF STEERING.
+#		REFSMMAT, DAPDATR1, PIPTIME
+#		EREPFRAC, ETDECAY, KPRIMEDT FOR TVC.
+# OUTPUT	TTOGO		TIME REMAINING FOR ENGINE BURN IN CS AT +28.
+#		OMEGAC		DP VECTOR RATE COMMAND, SC.AT 1/(2TVCDT) REVS/SEC.
+#		VG, VGPREV, VGDISP, TGO, TIG, SCALED AS NOTED IN CODING
+#		STEERSW, IMPULSW, NVWORD1
+#		REPFRAC, CNTR, VCNTR, VCNTRTMP FOR TVC (R40 INTERFACING)
+# DEBRIS	OMEGAXC, +1
+# SUBROUTINES USED:  *SMNB*, ALARM
+
+		SETLOC	P40S1
+		BANK
+		EBANK=	DAPDATR1
+		COUNT	16/S40.8
+		
+S40.8		SETPD	STQ
+SPBIT1			00D
+			QTEMP
+		VLOAD	BVSU		# CONSTRUCT DELVG, SC.AT B+7 M/CS
+			DELVREF
+			BDT
+		VAD
+			VGPREV
+		STORE	VG		# VELOCITY-TO-BE-GAINED, SC.AT B+7 M/CS
+		
+		ABVAL
+		STORE	VGDISP		# FOR DISPLAY PURPOSES
+		EXIT
+		TC	PHASCHNG
+		OCT	10035		# TYPE B RESTART RESTART BELOW AND 5.3 REREADAC
+		
+		TC	INTPRET
+		VLOAD
+# Page 720
+			VG
+		STORE	VGPREV
+		BOFF	VLOAD
+			STEERSW		# SKIP TGO AND CROSS-PRODUCT
+			QTEMP
+			DELVREF
+		ABVAL	PUSH		# CHECK FOR LOTHRUST
+		SLOAD	DMP
+			DVTHRESH	# SC.AT B-2 M/CS
+			DPB-9
+		BDSU
+		BMN	EXIT
+			LOTHRUST
+		CAE	DAPDATR1	# ENABLE TVCDAP CG TRACKING
+		MASK	BIT14
+		CCS	A
+		CAF	BIT1
+		INDEX	A		# LM-OFF, LM-ON VALUE
+		CAE	EREPFRAC
+		TS	REPFRAC
+		
+		TC	INTPRET
+TGOCALC		VLOAD	BVSU		# GET DELVG
+			DELVREF
+			BDT
+		UNIT
+		DOT	PUSH		# (00D)
+			VG
+		BPL	DDV		# ANGLE SHOULD BE GREATER THAN PI/2
+			INCRSVG		#	DISPLAY ALARM IF NOT
+			2VEXHUST
+		DAD	DMP		# (DOT PRODUCT UP FROM 00D)
+			LODPHALF
+		NORM	SR1
+			X1
+		PDDL	NORM
+			36D		# (MAG DELVG)
+			X2
+		BDDV
+		XSU,2	SL*
+			X1
+			0 -9D,2
+		DMP	PUSH		# (00D)
+			-FOURDT
+		SLOAD	SR
+			ETDECAY		# ETDECAY SC.AT B+14 CS
+			14D
+		BDSU	STADR
+		STORE	TGO		# TIME TO GO IN CS. AT +28
+		DAD
+# Page 721
+			PIPTIME
+		STODL	TIG
+			TGO
+		DSU	BMN
+			FOURSEC
+			S40.81
+			
+XPRODUCT	VLOAD	VXSC
+			BDT
+			CSTEER
+		VSL2	VSU
+			DELVREF
+		UNIT	PDVL
+			VG
+		UNIT	VXV
+		MXV	CALL
+			REFSMMAT	# (REFSMMAT/2)
+			*SMNB*
+		VXSC
+			KPRIMEDT	# (KPRIMEDT SCIAT PI/8 RAD)
+OMEGACLC	STORE	OMEGAC
+		GOTO
+			QTEMP
+			
+		SETLOC	DAPS7
+		BANK
+		COUNT	17/S40.8
+		
+TWODT		2DEC	200.0 B-28	# 2 SEC
+
+-FOURDT		2DEC	-800 B-18	# -4(200CS), SC.AT B+18CS (-4 FOR SCALING)
+
+2VEXHUST	2DEC	63.020792 B-7	# 2(10338.0564 FPS), SC.AT B+7 M/CS
+
+FOURSEC		2DEC	400.0 B-28	# 4 SEC
+
+DPB-9		2DEC	1 B-9
+
+		SETLOC	DAPS6
+		BANK
+		
+		COUNT	20/S40.8
+		
+S40.81		SET	VLOAD		# TGO LESS THAN 4 SECONDS
+			IMPULSW		# FOR ENGINE-OFF CALL
+			HI6ZEROS
+RATEZRO		STORE	OMEGAC		# TVC TO ATTITUDE HOLD
+		EXIT
+		CAF	POSMAX		# INHIBIT SWITCHOVER/TVC EG TRACKING
+		TS	CNTR
+# Page 722
+		TC	INTPRET
+		CLEAR	GOTO
+			STEERSW		# RESTARTS OK
+			QTEMP
+INCRSVG		EXIT			# ALARM INDICATING THAT THRUST IS POINTING
+		TC	ALARM		# IN WRONG DIRECTION.
+		OCT	01407
+		TC	INTPRET
+		GOTO
+			QTEMP
+			
+LOTHRUST	BON	VLOAD		# THRUST FAILURE (LO-OR-NO) INDICATED
+			IDLEFAIL	# SET BY V97P.  ALLOWS 1 BYPASS IN CASE OF
+			QTEMP		#	UNFAVORABLE S40.8 SYNCH.
+			HI6ZEROS	# START OF ENGINE-FAIL (R40) OPERATIONS
+		STORE	OMEGAC		# PUT TVC IN ATTITUDE HOLD
+		EXIT
+		
+		CS	ZERO
+		TS	VCNTR		# KILL CSMMASS UPDATING
+		TS	VCNTRTMP	# (TVCEXEC LOGIC REQUIRES THIS TOO)
+		TS	REPFRAC		# KILL TVCDAP CG TRIM TRACKING
+		TS	NVWORD1		# SET UP ENGINE-FAIL V97FLASH (CLOCKJOB)
+		
+		TC	INTPRET		
+		CLEAR	GOTO		# INHIBIT STEERING AND TGO CALC (MANUAL
+			STEERSW		# 	SHUTDOWN IF NOT SET UP AGAIN)
+			QTEMP		# RESTARTS OK
+
+# Page 723
+# NAME		S40.9 -- VTOGAIN (AIMPOINT MANEUVERS ONLY)
+# FUNCTION	(1) GENERATES REQUIRED VELOCITY AND VELOCITY-TO-BE-GAINED
+#		VECTORS FOR USE DURING AIMPOINT MANEUVERS.
+#		(2) UPDATES THE B VECTOR WHICH IS USED IN THE FINAL 
+#		CALCULATION OF EXTRAPOLATING THE VELOCITY-TO-BE-GAINED.
+# CALLING SEQ	VIA FINDVEC AS NEW JOB.
+# INPUT		RNIT	ACTIVE VEHICLE RADIUS VECTOR IN METERS AT +29.
+#		VNIT	ACTIVE VEHICLE VELOCITY VECTOR IN METERS/CS AT +7.
+#		VRPREV	LAST COMPUTED VELOCITY REQUIRED VECTOR IN
+#			METERS/CS AT +7.
+#		NONTIG	TIME OF IGN.  USED IN TARGETTING ROUTINES B+28
+#		DELLT4	TRANSFER TIME FROM PIPTIME TO TARGET B+28
+#		TNIT	TIME OF RNIT AND VNIT IN CS AT +28
+#		GDT/2	HALF OF VELOCITY GAINED IN DELTA T TIME DUE TO
+#			ACCELERATION OF GRAVITY IN METERS/CS AT +7.
+#		DELVREF	CHANGE IN VELOCITY DURING LAST 2 SEC IN
+#			METERS/CS AT +7.
+#		NORMSW	SET=CENTRAL ANGLE BETWEEN RTARG AND RTIG IS BETWEEN
+#			165 TO 195 DEGREES.
+#			RESET=CENTRAL ANGLE OUTSIDE CONE DESCRIBED ABOVE.
+# OUTPUT	VGTEMP	VELOCITY TO BE GAINED VECTOR IN METERS/CS AT +7.
+#		COGA	INPUT OF INITIAL GUESS FOR LAMBERT FROM S40.1
+#			OR PREVIOUS PASS THRU S40.9.
+#		GOBL/2	OBLATENESS TERM IN AVG GRAV CALC: GOBL*RSQ/MU
+#		VRPREV/	VELOCITY REQUIRED VECTOR IN METERS/CS AT +7.
+#		BDT	B VECTOR IN METERS/CS AT +7.
+# SUBROUTINES USED -- INITVEL
+
+		SETLOC	P40S1
+		BANK
+		
+		EBANK=	NBRCYCLS
+		COUNT	16/S40.9
+		
+S40.9		TC	INTPRET
+		SETPD	DLOAD
+			00D
+			LO6ZEROS
+		PDDL
+			EP4(45)L
+		BON	DLOAD
+			NORMSW
+			+2
+			EP4(10)L
+		PUSH
+		CLEAR	CALL
+			GUESSW
+			HAVEGUES
+		EXIT
+		TC	PHASCHNG	# SAVE TIME BY NOT REDOING LAMBERT CALCS
+		OCT	05021		# C, PRIORITY NEXT, JOB BELOW
+# Page 724
+		OCT	10000
+		TC	INTPRET
+ENDLAMB		BON
+			FIRSTFLG
+			FIRSTTME
+		VLOAD	VSU
+			VIPRIME
+			VRPREV
+		PDDL	DSU
+			TNIT
+			TNITPREV
+		SL	BDDV
+			17D
+			200CSHI
+		VXSC
+		VSU	VSL1
+			GDT/2
+		STORE	BDT
+FIRSTTME	SLOAD	DCOMP
+			RTX2
+		BMN
+			MOONCASE
+		VLOAD	UNIT
+			RN
+		DLOAD	DSU
+			PIPTIME
+			NOMTIG
+		DMP	DDV
+			EARTHMU
+			34D
+		VXSC	VAD
+			GOBL/2
+			VGTEMP		# NOTE: NO TEST IS MADE TO SUBTRACT GOBL
+		STORE	VGTEMP		# INSIDE 165-195 DEGREE CONE AREA.
+MOONCASE	EXIT
+		TC	PHASCHNG
+		OCT	04021		# C, JOB BELOW
+		
+COPY40.9	TC	INTPRET
+		DLOAD
+			TNIT
+		STOVL	TNITPREV
+			VIPRIME
+		STORE	VRPREV
+		CLEAR	EXIT
+			FIRSTFLG
+	-2	CS	ONE		# REDO40.9 (RESTART) ENTRY TO END S40.9
+		TS	NBRCYCLS
+ENDS40.9	TC	PHASCHNG
+		OCT	00001
+# Page 725
+		TCF	ENDOFJOB
+		
+REDO40.9	TC	INTPRET		# S40.9 RESTARTS COME HERE TO GRACEFULLY
+		VLOAD			#	TERMINATE S40.9 SO THAT IT CAN BE
+			LO6ZEROS	#	SET UP WITH LATEST R,V,T NEXT PASS
+		STODL	DELVSUM		#	(TYPE C PHASE POINTS '04021' WILL
+			LO6ZEROS	#	FORCE NORMAL S40.9 TERMINATIONS,
+		STOVL	NBRCYCLS	#	RATHER THAN LOSE TIME OF BRAND NEW
+			VGPREV		#	PASS -- QUICK OLD DATA BETTER THAN
+		STORE	VGTEMP		#	NONE) NOW CAN GO THRU SETUP.9
+		EXIT			#	WITHOUT DISTURBING VGPREV.
+		TCF	ENDS40.9 -2	# STORE 0,0 COVERED NBRCYCLS,P -- FIX UP S
+		
+200CSHI		2DEC	200 B-12
+
+EARTHMU		2DEC*	-3.986032 E10 B-36*
+
+EP4(45)L	2DEC	.125
+
+EP4(10)L	2DEC	.027777777
+
+# Page 726
+# NAME:  		S40.13 -- TIMEBURN
+#
+# FUNCTION		(1) DETERMINE WHETHER A GIVEN COMBINATION OF VELOCITY-TO-
+#			BE-GAINED AND ENGINE CHOICE RESULT IN A BURN TIME SUFFICIENT 
+#			TO ALLOW STEERING AT THE VEHICLE DURING THE BURN, AND
+#			(2) THE MAGNITUDE OF THE RESULTING BURN TIME -- IF IT IS SHORT --
+#			AND THE ASSOCIATED TIME OF THE ENGINE OFF SIGNAL.
+#
+# CALLING SEQUENCE	VIA FINDVAC AS A NEW JOB
+#
+# INPUT			VGTIG -- VELOCITY TO BE GAINED VECTOR (METERS/CS) AT +7
+#			WEIGHT/G -- MASS OF VEHICLE IN KGM AT TIG
+#			F -- ENGINE THRUST IN M.NEWTONS AT +7
+#			MDOT -- RATE OF DECREASE OF VEHICLE MASS DURING ENGINE BURN
+#				IN KILOGRAMS/CENTISECOND AT +3.  THIS SCALING MAY
+#				REQUIRE MODIFICATION FOR SATURN BURNS.
+#
+# OUTPUT		IMPULSW		ZERO FOR STEERING
+#					ONE FOR ATTITUDE HOLD
+#			TGO		TIME TO BURN IN CENTISECONDS AT +14
+#			THE QUANTITY M.NEWTON SHALL BE USED TO EXPRESS WEIGHT IN TERMS OF
+#			(KILOGRAM*METER)/(CENTISECOND*CENTISECOND)
+#			(1) M.NEWTON = (10000) NEWTONS.
+
+		EBANK=	TGO
+		COUNT	16/40.13
+		
+S40.13		TC	INTPRET
+		SETPD	SET
+			00D
+			IMPULSW		# ASSUME NO STEERING UNTIL FOUND OTHERWISE
+		VLOAD	ABVAL
+			VGTIG		# VELOCITY TO BE GAINED AT +7
+		EXIT
+		CAF	BIT7		# TEST +X TRANSLATION
+		EXTEND
+		RXOR	CHAN31
+		MASK	BIT7
+		EXTEND
+		BZF	NOTADDUL
+		TC 	INTPRET
+		PDDL	DDV		# 00D = MAG OF VGTIG AT +7
+			S40.135		# COMPENSATION FOR 2 JET ULLAGE AT +24
+			WEIGHT/G	# MASS IN KGMS AT +16
+		BON	SL1		# DOUBLE CORRECTION IF FOUR JETS
+			NJETSFLG
+			S40.130
+S40.130		BDSU
+		PDDL	DDV		# 00D = MAG OF VGTIG CORRECTED FOR ULLAGE
+			K1VAL		# M.NEWTON-CS AT +24
+			WEIGHT/G
+		BDSU	BMN
+			00D
+			S40.131		# TGO LESS THAN 100 CS
+		PDDL	DMP		# 02D = TEMP1 AT +7
+# Page 727
+			EMDOT		# SPS FLOW RATE SC.AT B+3 KG/CS (SP, NOTE)
+			3.5SEC		# 350 CS AT +14
+		BDSU	PDDL
+			WEIGHT/G	
+			FANG
+		DMP	SR2	
+			5SECOND		# 500 CS AT +14
+		DDV	PUSH		# 04D = TEMP2
+		BDSU	BPL
+			02D
+			S40.133		# TGO GREATER THAN 600 CS
+		DLOAD	BDDV
+		DMP	DAD
+			5SECOND		# 500 CS AT +14
+			1SEC2D		# 100 CS AT +14
+		GOTO
+			S40.132
+S40.131		DLOAD	DMP		# TGO LESS THAN 100 CS
+			WEIGHT/G
+		DAD	DDV
+			K2VAL		# M.NEWTON CS AT +24
+			K3VAL		# M.NEWTON AT +10
+S40.132		EXIT
+		EBANK=	TGO
+		TC	TPAGREE
+		CA	MPAC
+		XCH	L
+		CA	ZERO
+		DXCH	TGO		# TGO IN CS AT +28
+		TC	S40.134
+S40.133		CLEAR	EXIT		# WILL STEER VEHICLE
+			IMPULSW
+S40.134		TC	PHASCHNG	# KILL GROUP 3
+		OCT	3
+		
+		TCF	ENDOFJOB
+		
+NOTADDUL	TC	INTPRET
+		GOTO
+			S40.130 +1	# DO NOT COMPENSATE FOR 7 SEC OF ULLAGE
+		SETLOC	DAPS7
+		BANK
+		
+		COUNT	17/40.13
+		
+K1VAL		=	EK1VAL		# DP PAD LOAD B+23 NEWTON-SEC/E+2
+K2VAL		=	EK2VAL		# DP PAD LOAD B+23 NEWTON-SEC/E+2
+K3VAL		=	EK3VAL		# DP PAD LOAD B+09 NEWTONS/E+4
+1SEC2D		2DEC	100.0 B-14	# 100.0 CS AT +14
+# Page 728
+3.5SEC		2DEC	350.0 B-13	# 350 CS AT +13
+
+5SECOND		2DEC	500.0 B-14	# 500.0 CS AT +14
+
+S40.135		2DEC	69.6005183 B-23	# IMPULSE FROM 7.96 SECS OF 2-JET FIRING
+					# 	7.96 (199.6)COS(10) LB-SEC, SC.AT
+					#	B+23 NEWTON-SEC/E+2 (7 SEC ULLAGE
+					#	TO GO, PLUS 0.96 SEC FROM PIPTIME)
+					
+# Page 729
+# NAME		S40.6 GIMBAL DRIVE TEST AND/OR GIMBAL TRIM
+# MOD NO 5				DATE 9 MARCH, 1967
+# MOD BY ENGEL				LOG SECTION P40-P47
+#
+# FUNCTIONAL DESCRIPTION
+#	GIMBAL DRIVE TEST....0,+2,-2,0 DEGREE ENGINE COMMANDS, AT 2 SECOND
+#		INTERVALS, FIRST IN PITCH, THEN IN YAW.  ASTRONAUT VERIFICATION
+#		OF GIMBAL MOTION ON GPI
+#	GIMBAL TRIM....AFTER A 4 SECOND DELAY, ENGINE COMMANDED TO
+#		PRE-COMPUTED TRIM POSITION.  ASTRONAUT VERIFICATION ON GPI.
+#	PRE40.6....RESTART ENTRY TO RE-DO S40.6, ONLY IF RCS IS ON --- IF TVC
+#		IS NOT ON --- PRIMARILY TO GET ACTUATORS TRIMMED FOR IGNITION.
+#		BYPASS 4 SEC DELAY.  SPEED IS CRITICAL NEAR IGNITION.
+#		IF TVC IS ON (TVCDAPON OR LATER) THEN REDOTVC WILL TAKE CARE
+#		OF RESTARTING ACTUATORS.
+#
+# CALLING SEQUENCE....
+#	WAITLIST, WITH 2CADR FOR S40.6 (OR PRE40.6), WITH EBANK= CNTR
+#
+# NORMAL EXIT MODE -- FIXDELAY, TASKOVER
+#
+# SUBROUTINES CALLED....
+#	OUTPUT (INTERNAL)
+#	FIXDELAY
+#
+# ALARM OR ABORT EXIT MODES --- NONE
+#
+# ERASABLE INITIALIZATION REQUIRED
+#	CNTR = +0, NORMALLY SET BY THE P40 CALL AT TST,TRIM.
+#	MRKRTMP....POSITIVE FOR GIMBAL DRIVE TEST AND GIMBAL TRIM (BOTH)
+#		   NEGATIVE FOR GIMBAL TRIM ONLY
+#	PACTOFF, YACTOFF SC.AT 85.41 ARCSEC/BIT (V48N48 P, YTRIM)
+#	"SC CONT" SWITCH AT "CMC" (A/P CONTROL SWITCH AT "GNC")
+#	ACTIVE SPS GIMBAL MOTOR POWER(S), PITCH, YAW
+#
+# OUTPUT
+#	TVCYAW, TVCPITCH (BITS RELEASED)
+#	TVC ENABLE AND OPTICS ERROR COUNTER ENABLE
+#
+# DEBRIS
+#	TBMPR60, CNTR
+
+		BANK	17
+		SETLOC	DAPS6
+		BANK
+		
+		EBANK=	CNTR
+		COUNT	20/S40.6
+		
+PRE40.6		CS	FLAGWRD6	# RESTART ENTRY TO S40.6 (DO NOT PERMIT
+		MASK	OCT60000	#	IF TVC, BITS 15,14 = 1,0)
+		EXTEND
+		BZMF	+2
+		TCF	TASKOVER	# TVC, REDOTVC WILL REESTABLISH INTERFACE
+		
+		CS	BIT1		# RCS, SO DO S40.6, GIMTRIM ONLY
+# Page 730
+		TS	MRKRTMP
+		
+		CAF	BIT1		# FOR REVISED S40.6 TIMING FOR RESTARTS...
+		TS	CNTR		# TO INDICATE A RESTART ENTRY (CNTR 1S
+					#	NORMALLY +0, BY S40.6)
+					
+		EBANK=	CNTR
+S40.6		CS	ZERO		# INHIBIT OPTICS ACTIVITY
+		TS	OPTIND
+		
+		CS	BIT2		# DISENABLE OPTICS ERROR COUNTERS (ZERO,
+		EXTEND			# 	AND INHIBIT PULSE TRANSMISSION --
+		WAND	CHAN12		#	NORMAL STATE)
+		
+		CAF	OCT02200	# TVC ENABLE (SPS SERVO AMPS SEE DAC
+		EXTEND			#	VOLTAGES) AND DISENGAGE OPTICS/DAC
+		WOR	CHAN12
+		
+		TC	FIXDELAY	# 60MS PROCEDURAL DELAY (40MS MINIMUM) FOR
+		DEC	6		#	RELAY LATCHING
+		
+		CAF	BIT2		# ENABLE OPTICS ERROR COUNTERS
+		EXTEND
+		WOR	CHAN12
+		
+		TC	FIXDELAY	# 20MS PROCEDURAL DELAY (4MS MINIMUM) FOR
+		DEC	2		#	RELAY LATCHING
+		
+RSTRTST		CCS	CNTR		# CHECK FOR RESTART ENTRY (PRE40.6)
+		TCF	GIMTRIM +2	# RESTART ENTRY....BYPASS 4 SECOND DELAY
+					#	TST,TRIM SETS +0 ON NORMAL ENTRY
+					
+		CAE	MRKRTMP		# CHECK FOR TEST/TRIM OR TRIM ONLY
+		TS	CNTR		#	MRKRTMP SAVES CNTR FOR RESTARTS
+		EXTEND
+		BZMF	GIMTRIM		# (TRIM ONLY)
+		
+GDTSETUP	CS	ZERO		# GIMBAL DRIVE TEST SETUP, FOR PITCH
+		TS	CNTR
+		
+GIMDTEST	CAF	+2ACTDEG	# GIMBAL DRIVE TEST, 1ST INCREMENT
+		TC	OUTPUT		#	(LEAVES GIMBAL AT +2 DEG)
+		CAF	-4ACTDEG	# 2ND INCREMENT (LEAVES GIMBAL AT -2)
+		TC	OUTPUT
+		CAF	+2ACTDEG	# 3RD INCREMENT (LEAVES GIMBAL AT -0)
+		TC	OUTPUT
+		
+		CS	CNTR		# CHECK FOR COMPLETION OF YAW TEST.
+# Page 731
+		CCS	A
+		TCF	GIMTRIM		# COMPLETED, GO TO GIMBAL TRIM ROUTINE
+		CS	BIT1		# SET UP YAW TEST
+		TS	CNTR
+		TCF	GIMDTEST	# FOR YAW TEST
+		
+OUTPUT		EXTEND			# OUTPUT THE INCREMENT....SAVE Q
+		QXCH	TEMPR60
+		
+		INDEX	CNTR
+		TS	TVCPITCH
+		
+		INDEX	CNTR
+		CAF	BIT11
+		EXTEND
+		WOR	CHAN14
+		
+		TC	FIXDELAY	# WAIT 2SEC, WHILE ASTRONAUT VERIFIES
+		DEC	200		# 	GIMBAL MOTION ON GPI
+		TC	TEMPR60
+		
+GIMTRIM		TC	FIXDELAY	# WAIT 4 SECONDS BEFORE GIMBAL TRIM
+		DEC	400
+		
+	+2	CS	ZERO		# PICK UP TRIM VALUES AND OUTPUT THEM
+		AD	PACTOFF		#	(AVOID +0) ENTRY POINT FROM RSTRTST
+		TS	TVCPITCH	#	ON A RESTART, TO AVOID 4SEC DELAY
+		CS	ZERO
+		AD	YACTOFF
+		TS	TVCYAW
+		
+		CAF	PRIO6		# RELEASE THE COUNTERS, BITS 11,12
+		EXTEND
+		WOR	CHAN14
+		
+ENDS40.6	TCF	TASKOVER
+
+OCT02200	OCT	02200		# BITS 8,11 FOR CHANNEL 12 TVC/OPTICS
+-4ACTDEG	DEC	-168		# -2(+2ACTDEG), WHOLE BITS, NO ROUNDUP
++2ACTDEG	DEC	+84		# +2 DEG, SC.AT 85.41 ARCSEC/BIT (+84D)
+
+# CALLED BY "DONOUN46" (VERB 48), OR DIRECTLY BY "FRESHDAP" (RCS DAP) VIA IBNKCALL
+
+		COUNT	20/S41.2
+		
+S41.2		CA	DAPDATR1
+# Page 732
+		MASK	THREE
+		AD	A
+		TS	RATEINDX
+		
+		INHINT
+		CAE	DAPDATR1	# IS LEM ATTACHED (BITS 14,13 OF DAPDATR1
+		MASK	PRIO30		#	=10)
+		AD	-BIT14		# (OCT57777)
+		EXTEND
+		BZF	TOGETHER	# YES
+		
+		CS	BIT2		# NO, UNSET FLAG
+		MASK	FLAGWRD7
+		TS	FLAGWRD7
+		
+		TCF	+4
+
+TOGETHER	CS	FLAGWRD7	# ATTACHED, SET FLAG FOR INTEGRATION
+		MASK	BIT2
+		ADS	FLAGWRD7
+		
+		RELINT
+		
+		CA	DAPDATR1
+		MASK	BIT4
+		EXTEND
+		BZMF	+2		# DEC 46 MEANS NARROW DB
+		CA	DEC409
+		AD	DEC46		# DEC 455 MEANS WIDE DB
+		TS	ADB
+		
+		CA	DAPDATR1
+		MASK	BIT7		# QUAD BD
+		EXTEND
+		BZMF	+2
+		CA	ONE
+		TS	XTRANS
+		CA	DAPDATR1
+		MASK	BIT10		# QUAD AC
+		EXTEND
+		BZMF	+2
+		CS	ONE
+		ADS	XTRANS
+		
+		INHINT
+		EXTEND
+		BZF	+5		# CLEAR NJETSFLG (4 JETS, OR NO JETS)
+		CS	FLAGWRD1	# SET NJETSFLG (2 JETS, AC OR BD QUADS)
+		MASK	BIT15		# NJETSFLG = 1 FOR 2 JET ULLAGE (AC OR BD)
+		ADS	FLAGWRD1
+# Page 733
+		TCF	+4
+		CS	BIT15		# KJETSFLG = 0 FOR 4 JET (OR 0 JET) ULLAGE
+		MASK	FLAGWRD1
+		TS	FLAGWRD1
+		RELINT
+		CA	DAPDATR2
+		MASK	BIT13
+		EXTEND
+		BZMF	+2
+		TCF	+2
+		CS	ONE
+		COM
+		TS	ACORBD		# MINUS FOR A-C, PLUS FOR B-D
+		
+		CA	DAPDATR2
+		MASK	BIT10
+		CCS	A
+		TCF	+4
+		CA	ONE
+		TS	RACFAIL
+		TCF	BDFAIL
+		CA	ZERO
+		TS	RACFAIL
+		CA	DAPDATR2
+		MASK	BIT4
+		CCS	A
+		TCF	BDFAIL
+		CS	ONE
+		TS	RACFAIL
+BDFAIL		CA	DAPDATR2
+		MASK	BIT7
+		CCS	A
+		TCF	+4
+		CA	ONE
+		TS	RBDFAIL
+		TC	Q
+		CA	ZERO
+		TS	RBDFAIL
+		CA	DAPDATR2
+		MASK	BIT1
+		CCS	A
+		TC	Q
+		CS	ONE
+		TS	RBDFAIL
+		TC	Q
+		
+# DAPFIG ENTRY VIA TC POSTJUMP AS JOB FROM "STABLISH" (VERB 46)
+
+		BANK	42
+		SETLOC	EXTVBS
+# Page 734
+		BANK
+
+DAPFIG		CS	BIT9		# TURN OFF SIVB TAKEOVER
+		EXTEND
+		WAND	CHAN12
+		CAE	DAPDATR1	# DETERMINE VEHICLE CONFIGURATION
+		EXTEND
+		MP	BIT3		#	RIGHT SHIFT 4 OCTAL DIGITS
+		MASK	THREE		#	(IN CASE BIT 15 IS USED)
+		INDEX	A
+		TCF	+1		#	BRANCH BASED ON CONFIG....
+		
+		TCF	NODAPUP		# CM.......ACTIVATE NODAP
+		TCF	RCSDAPUP	#	CSM......ACTIVATE RCSDAP
+		TCF	RCSDAPUP	#	CSM/LEM..ACTIVATE RCSDAP
+		TC	POSTJUMP
+		CADR	SATSTKON
+RCSDAPUP	INHINT			# CALL TO ACTIVATE RCSDAP, AND RETURN
+		TCR	IBNKCALL
+		CADR	RCSDAPON
+		RELINT
+		TCF	ENDFIG		# CAME IN VIA V46, GO OUT VIA GOPIN
+NODAPUP		EXTEND			# T5 IDLE FOR NODAP (DON'T WORRY ABOUT T)
+		DCA	T5IDLDAP
+		DXCH	T5LOC
+		TC	DOWNFLAG	# RESET T5-USAGE FLAGS FOR NODAP
+		ADRES	DAPBIT1		# BIT 15 FLAG 6 = 0
+		TC	DOWNFLAG
+		ADRES	DAPBIT2		# BIT 14 FLAG 6 = 0
+		INHINT
+		TC	IBNKCALL	# ZERO JET CHANNELS IN 14 MS AND THEN
+		CADR	ZEROJET		# LEAVE THE T6 CLOCK DISABLED.
+		RELINT
+		CAF	BIT1		# KILL KALCMANU JOB
+		TS	HOLDFLAG
+ENDFIG		TC	POSTJUMP	# CAME IN VIA V46, GO OUT VIA GOPIN
+		CADR	GOPIN
+		SBANK=	PINSUPER	# Added by RSB 2009
+		EBANK=	PACTOFF
+T5IDLDAP	2CADR	T5IDLOC
+
+		SBANK=	LOWSUPER
+		BANK	17
+		SETLOC	DAPS6
+		BANK
+		
+DEC409		DEC	409
+DEC46		DEC	46
+
+# Page 735
+
+# CALLED BY "DONOUN47" (VERB 48), OR DIRECTLY BY "FRESHDAP" (RCS DAP)
+S40.14		CAE	IXX		# RCS ENTRY
+		EXTEND
+		MP	CONTONE
+		TS	J/M
+		
+		CA	IAVG
+		EXTEND
+		MP	CONTONE
+		TS	J/M1
+		
+		TS	J/M2
+		
+		EXTEND
+		DCA	CONTTWO
+		EXTEND
+		DV	IXX
+		TS	KMJ
+		
+		EXTEND
+		DCA	CONTTWO
+		EXTEND
+		DV	IAVG
+		TS	KMJ1
+		
+		TS	KMJ2
+		
+		TC	Q
+		
+CONTONE		DEC	.662034		# 2PI/M
+CONTTWO		2DEC	.00118
+
+		COUNT 	24/TVNG
+		
+		BANK	31
+		SETLOC	P40S
+		BANK
+		
+POS-2.5		OCT	37405
+		EBANK=	DAPDATR1
+RCSCADR		2CADR	RCSUP
+
+6SECT5		OCT	37704
+		COUNT	21/RCSUP
+		
+		BANK	20
+		
+		SETLOC	DAPS3
+		BANK
+
+# Page 736
+
+RCSUP		LXCH	BANKRUPT
+		EXTEND
+		QXCH	QRUPT
+		
+		TCR	RCSDAPON	# ACTIVATE RCS DAP
+		
+		TCF	RESUME
+		
+		EBANK=	DAPDATR1
+RCSADDR		2CADR	RCSATT
+
+0.6SECT5	OCT	37704
+
+					# RCSDAPON ENTRY MUST BE UNDER INT-INHIBIT
+RCSDAPON	CAF	0.6SECT5	# 0.6 SEC ALLOWS TVCEXEC/ROLLDAP TO DIE
+	+1	TS	TIME5		# ENTRY FROM R00TOP00
+		TS	T5PHASE		# WILL CAUSE FRESHDAP (+1)
+		
+		CS	RCSFLAGS	# SET BIT3 TO REINITIALIZE FDAI ERROR
+		MASK	BIT3		#	DISPLAY, IN CASE SC CONT SWITCH
+		ADS	RCSFLAGS	#	IN SCS NOT GNC (GUIDEMODE PRIMARY)
+		
+		EXTEND
+		DCA	RCSADDR		# (RCSATT)
+		DXCH	T5LOC
+		
+		CS	OCT60000	# SEE BITS 15,14 TO 01 TO INDICATE
+		MASK	FLAGWRD6	#	T5 TAKEOVER BY RCSDAP
+		AD	BIT14	
+		TS	FLAGWRD6	# KILLS TVCEXEC AND ROLLDAP STARTS
+		
+		TC	Q		# RETURN TO CALLER (TVCDAPOF OR RCSDAPUP)
+		
+
diff --git a/P51-P53.s b/P51-P53.s
new file mode 100644
index 0000000..baf2fba
--- /dev/null
+++ b/P51-P53.s
@@ -0,0 +1,2213 @@
+# Copyright:    Public domain.
+# Filename:     P51-P53.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 737-784
+# Contact:      Ron Burkey <info@sandroid.org>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-12 RSB	Adapted from Colossus249 file of the same
+#				name, and Comanche 055 page images.
+#		2009-05-20 RSB	Corrections: SETI/PDT -> SET1/PDT, 
+#				GOTOPOOH -> GOTOP00H, R33EXIT -> R53EXIT,
+#				V853 -> VB53, R56A -> R56A1 (some places
+#				only), added missing R56A1 label, added a
+#				missing CAF in COARSTYP, corrected a SETLOC
+#				from P50S to P50S3.
+# 		2009-05-21 RSB	In COARFINE, a TC BANKCALL was corrected to
+#				TC PHASCHNG.  In R53C, a CADR GOFLASHR was
+#				corrected to CADR GOFLASH.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 737
+# PROGRAM NAME -- PROG52			DATE -- NOV 30, 1966
+# MOD NO -- 2					LOG SECTION -- P51-P53
+# MODIFICATION BY -- LONSKE			ASSEMBLY -- SUNDISK REV 30
+#
+# FUNCTIONAL DESCRIPTION --
+#
+#	ALIGNS THE IMU TO ONE OF THREE ORIENTATIONS SELECTED BY THE ASTRONAUT.  THE PRESENT IMU ORIENTATION IS KNOWN
+#	AND IS STORED IN REFSMMAT.  THE THREE POSSIBLE ORIENTATIONS MAY BE:
+#
+#	(A)	PREFERRED ORIENTATION
+#
+#		AN OPTIMUM ORIENTATION FOR A PREVIOUSLY CALCULATED MANEUVER.  THIS ORIENTATION MUST BE CALCULATED AND
+#		STORED BY A PREVIOUSLY SELECTED PROGRAM.
+#
+#	(B)	NOMINAL ORIENTATION
+#
+#		X   = UNIT ( Y   x Z   )
+#		-SM          -SM   -SM
+#
+#		Y   = UNIT (V X R)
+#		-SM         -   -
+#
+#		Z   = UNIT ( -R )
+#		-SM           -
+#
+#		WHERE:
+#
+#		R = THE GEOMETRIC RADIUS VECTOR AT TIME T(ALIGN) SELECTED BY THE ASTRONAUT
+#		-
+#
+#		V = THE INERTIAL VELOCITY VECTOR AT TIME T(ALIGN) SELECTED BY THE ASTRONAUT
+#		-
+#
+#	(C)	RERSMMAT ORIENTATION
+#
+#		THIS SELECTION CORRECTS THE PRESENT IMU ORIENTATION.  THE PRESENT ORIENTATION DIFFERS FROM THAT TO WHICH IT
+#		WAS LAST ALIGNED ONLY DUE TO GYRO DRIVE (I.E., NEITHER GIMBAL LOCK NOR IMU POWER INTERRUPT HAS OCCURRED
+#		SINCE THE LAST ALIGNMENT).
+#
+#	AFTER A IMU ORIENTATION HAS BEEN SELECTED ROUTINE S52.2 IS OPERATED TO COMPUTE THE GIMBAL ANGLES USING THE
+#	NEW ORIENTATION AND THE PRESENT VEHICLE ATTITUDE.  CAL52A THEN USES THESE ANGLES, STORED IN THETAD,+1,+2, TO
+#	COARSE ALIGN THE IMU.  THE STARS SELECTION ROUTINE, R56, IS THEN OPERATED.  IF 2 STARS ARE NOT AVAILABLE AN ALARM
+#	IS FLASHED TO NOTIFY THE ASTRONAUT.  AT THIS POINT THE ASTRONAUT WILL MANEUVER THE VEHICLE AND SELECT 2 STARS
+# 	EITHER MANUALLY OR AUTOMATICALLY.  AFTER 2 STARS HAVE BEEN SELECTED THE IMU IS FINE ALIGNED USING ROUTINE R51.  IF
+# 	THE RENDEZVOUS NAVIGATION PROCESS IS OPERATING (INDICATED BY RNDVZFLG) P20 IS DISPLAYED.  OTHERWISE P00 IS
+#	REQUESTED.
+#
+# CALLING SEQUENCE --
+#
+#	THE PROGRAM IS CALLED BY THE ASTRONAUT BY DSKY ENTRY.
+# Page 738
+#
+# SUBROUTINES CALLED --
+#
+#	1. FLAGDOWN		 7. S52.2		13. NEWMODEX
+#	2. R02BOTH		 8. CAL53A		14. PRIOLARM
+#	3. GOPERF4		 9. FLAGUP
+#	4. MATMOVE		10. R56
+#	5. GOFLASH		11. R51
+#	6. S52.3		12. GOPERF3
+#
+# NORMAL EXIT MODES --
+#
+#	EXITS TO ENDOFJOB
+#
+# ALARM OR ABORT EXIT MODES --
+#
+#	NONE
+#
+# OUTPUT --
+#
+#	THE FOLLOWING MAY BE FLASHED ON THE DSKY
+#		1. IMU ORIENTATION CODE
+#		2. ALARM CODE 215 -- PREFERRED IMU ORIENTATION NOT SPECIFIED
+#		3. TIME OF NEXT IGNITION
+#		4. GIMBAL ANGLES
+#		5. ALARM CODE 405 -- TWO STARS NOT AVAILABLE
+#		6. PLEASE PERFORM P00
+#	THE MODE DISPLAY MAY BE CHANGED TO 20
+#
+# ERASABLE INITIALIZATION REQUIRED --
+#
+#	PFRATFLG SHOULD BE SET IF A PREFERRED ORIENTATION HAS BEEN COMPUTED.  IF IT HAS BEEN COMPUTED IT IS STORED IN
+#	XSMD, YSMD, ZSMD.
+#
+#	RNDVZFLG INDICATES WHETHER THE RENDEZVOUS NAVIGATION PROCESS IS OPERATING.
+#
+# DEBRIS --
+#
+#	WORK AREA
+
+P54		=	PROG52
+		BANK	33
+		SETLOC	P50S
+		BANK
+
+		SBANK=	LOWSUPER
+		EBANK=	SAC
+		COUNT	15/P52
+		
+PROG52		TC	PHASCHNG
+		OCT	00254
+		TC	DOWNFLAG
+		ADRES	UPDATFLG	# BIT 7 FLAG 1
+# Page 739
+		TC	DOWNFLAG
+		ADRES	TRACKFLG	# BIT 5 FLAG 1
+		TC	BANKCALL
+		CADR	R02BOTH		# IMU STATUS CHECK
+		CAF	BIT4
+		MASK	STATE +2	# IS PFRATFLG SET?
+		CCS	A
+		TC	P52A		# YES
+		CAF	BIT2		# NO
+		TC	P52A +1
+P52A		CAF	BIT1
+		TS	OPTION2
+P52B		CAF	BIT1
+		TC	BANKCALL	# FLASH OPTION CODE AND ORIENTATION CODE
+		CADR	GOPERF4R
+		TC	GOTOP00H
+		TC	+5	
+		TC	P52B		# NEW CODE -- NEW ORIENTATION CODE INPUT
+		TC	PHASCHNG
+		OCT	00014
+		TC	ENDOFJOB
+		CA	OPTION2
+		MASK	THREE
+		INDEX	A
+		TC	+1
+		TC	P52T		# L.S.
+		TC	P52J		# PREF
+		TC	P52T		# NORM
+		TCF	P52C		# REF
+P52T		EXTEND
+		DCA	NEG0
+		DXCH	DSPTEM1
+		CAF	V06N34
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H
+		TC	+2
+		TC	-5
+		EXTEND
+		DCA	DSPTEM1
+		EXTEND
+		BZF	+2
+		TCF	+4
+		
+		EXTEND
+		DCA	TIME2
+		DXCH	DSPTEM1
+		CA	OPTION2
+		MASK	BIT2
+		CCS	A
+# Page 740
+		TCF	+6		# NOM
+		TC	INTPRET		# LS
+		CALL
+			P52LS
+		GOTO
+			P52D
+		TC	INTPRET
+		DLOAD
+			DSPTEM1
+		CALL			# COMPUTE NOMINAL IMU
+			S52.3		#	ORIENTATION
+P52D		CALL			# READ VEHICLE ATTITUDE AND
+			S52.2		#	COMPUTE GIMBAL ANGLES
+		EXIT
+		CAF	VB06N22
+		TC	BANKCALL	# DISPLAY GIMBAL ANGLES
+		CADR	GOFLASH
+		TC	GOTOP00H
+		TC	COARSTYP
+P52J		TC	INTPRET		# RECYCLE: VEHICLE HAS BEEN MANEUVERED
+		GOTO
+			P52D
+		TC	INTPRET
+		CALL			# DO COARSE ALIGN
+			CAL53A		#	ROUTINE
+CAL53RET	SET	EXIT
+			REFSMFLG
+P52C		TC	PHASCHNG
+		OCT	04024
+		CAF	ALRM15
+		TC	BANKCALL
+		CADR	GOPERF1
+		TC	GOTOP00H
+		TC	+2		# V33
+		TC	P52F		# E
+		TC	INTPRET
+		RTB	DAD
+			LOADTIME
+			TSIGHT1
+		CALL
+			LOCSAM
+		EXIT
+P52E		TC	BANKCALL	# DO STAR SELECTION
+		CADR	PICAPAR
+		TC	P52I		# 2 STARS NOT AVAILABLE
+P52F		TC	INTPRET		# 2 STARS AVAILABLE
+		CALL
+			R51
+ENDP50S		EXIT
+		TC	GOTOP00H
+# Page 741
+P52I		TC	ALARM
+		OCT 405
+		CAF	V05N09
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H
+		TC	P52F		# PROCEED:  DO FINE ALIGN-R51
+		TC	P52C		# RECYCLE:  VEHICLE HAS BEEN MANEUVERED			
+V06N34		VN	0634
+VB06N22		VN	00622
+COARSTYP	CAF	OCT13
+		TC	BANKCALL
+		CADR	GOPERF1
+		TCF	GOTOP00H	# V34
+		TCF	P52J	+3	#	NORMAL
+		TC	INTPRET		# GYRO COARSE
+GYCRS		VLOAD	MXV
+			XSMD
+			REFSMMAT
+		UNIT
+		STOVL	XDC
+			YSMD
+		MXV	UNIT
+			REFSMMAT
+		STOVL	YDC
+			ZSMD
+		MXV	UNIT
+			REFSMMAT
+		STCALL	ZDC
+			CALCGTA
+		CLEAR	CLEAR
+			DRIFTFLG
+			REFSMFLG
+		EXIT
+		CAF	V16N20
+		TC	BANKCALL
+		CADR	GODSPR
+		CA	R55CDR
+		TC	BANKCALL
+		CADR	IMUPULSE
+		TC	BANKCALL
+		CADR	IMUSTALL
+		TC	CURTAINS
+		TC	PHASCHNG
+		OCT	04024
+		TC	INTPRET
+		AXC,1	AXC,2
+			XSMD
+			REFSMMAT
+		CALL
+# Page 742
+			MATMOVE
+		CLEAR	SET
+			PFRATFLG
+			REFSMFLG
+		RTB	VLOAD
+			SET1/PDT
+			ZEROVEC
+		STORE	GCOMP
+		SET	GOTO
+			DRIFTFLG
+			R51K
+V16N20		VN	1620
+ALRM15		EQUALS	OCT15
+		SETLOC	P50S2
+		BANK
+V06N89*		VN	0689			
+
+# NAME -- P52LS
+#
+# FUNCTION -- TO DISPLAY THE LANDING SITE LATITUDE,
+# LONGITUDE AND ALTITUDE.  TO ACCEPT NEW DATA VIA
+# THE KEYBOARD.  TO COMPUT THE LANDING SITE
+# ORIENTATIION FOR P52 OR P54.
+#
+# LET:
+#	RLS  = LANDING SITE VECTOR IN REF COORDINATES
+#	R    = CSM POSITION VECTOR IN REF COORDINATES
+#	V    = CSM VELOCITY VECTOR IN REF COORDINATES
+# THEN THE LANDING SITE ORIENTATION IS:
+#	XSMD = UNIT(RLS)
+#	YSMD = UNIT(ZSMD*XSMD)
+#	ZSMD = UNIT((R*V)*RLS)
+#
+# CALL:		CALL
+#			P52LS
+#
+# INPUTS:	DSPTEM1 = TIME OF ALIGNMENT
+#		RLS = LANDING SITE VECTOR IN MOON FIXED COORDINATES
+#
+# OUTPUTS:	XSMD, YSMD, ZSMD
+#
+# SUBROUTINES:	RP-TO-R, LAT-LONG, LLASRD, LLASRDA, CSMPREC
+#
+# DEBRIS:	VAC, SEE SUBROUTINES
+
+P52LS		STQ	SET
+			QMAJ
+			LUNAFLAG
+		DLOAD
+			DSPTEM1
+		STORE	TSIGHT
+		VLOAD	SET
+			RLS
+			ERADFLAG
+		STODL	0D
+			TSIGHT
+		STCALL	6D
+# Page 743		
+			RP-TO-R
+		VSR2
+		STODL	ALPHAV	
+			TSIGHT
+		CALL
+			LAT-LONG
+		CALL
+			LLASRD
+		EXIT
+LSDISP		CAF	V06N89*	
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H
+		TC	+2	
+		TC	LSDISP
+		TC	INTPRET
+		CALL
+			LLASRDA
+		DLOAD	CALL
+			TSIGHT
+			LALOTORV
+		VLOAD	UNIT
+			ALPHAV
+		STODL	XSMD
+			TSIGHT
+		STCALL	TDEC1
+			CSMPREC
+		VLOAD	VXV
+			RATT
+			VATT
+		VXV	UNIT
+			XSMD
+		STORE	ZSMD
+		VXV	UNIT
+			XSMD
+		STCALL	YSMD
+			QMAJ
+		SETLOC	P50S1
+		BANK
+		
+# NAME:		AUTOMATIC OPTICS POSITIONING ROUTINE
+#
+# FUNCTION:	(1) TO POINT THE STAR LOS OF THE OPTICS AT A STAR OR LANDMARK DEFINED BY THE PROGRAM OR BY DSKY INPUT.
+#		(2) TO POINT THE STAR LOS OF THE OPTICS AT THE LEM DURING RENDEZVOUS TRACKING OPERATIONS.
+#
+# CALLING:	CALL R52
+#
+# INPUT:	1.  TARG1FLG AND TARG2FLG:  PRESET BY CALLER
+#		2.  RNDVZFLG AND TRACKFLG:  PRESET BY CALLER
+#		3.  STAR CODE:  PRESET BY CALLER.  ALSO INPUT THROUGH DSKY
+#		4.  LAT, LONG, AND ALT OF LANDMARK:  INPUT THROUGH DSKY
+# Page 744
+#		5.  NO. OF MARKS (MARKINDX):  PRESET BY CALLER
+#
+# OUTPUT:	DRIVE SHAFT AND TRUNNION CDUS.
+#
+# SUBROUTINES:	1.  FIXDELAY		7.  CLEANDSP
+#		2.  GOPERF1		8.  GODSPR
+#		3.  GOFLASH		9.  REFLASHR
+#		4.  R53			10. R52.2
+#		5.  ALARM		11. R52.3
+#		6.  SR52.1
+
+		COUNT	15/R52
+		
+R52		STQ	CLEAR
+			SAVQR52
+			ADVTRK
+R52VRB		EXIT
+		EXTEND
+		DCA	CDUT
+		DXCH	DESOPTT
+		TC	INTPRET
+		SSP	CLEAR
+			OPTIND
+			0
+			R53FLAG
+		EXIT
+R52A		TC	INTPRET
+		SET	BON
+			TRUNFLAG
+			TARG1FLG
+			R52H
+		CLEAR	EXIT
+			TERMIFLG
+R52C		CA	SWSAMPLE	# IS OPTICS MODE IN AGC
+		EXTEND
+		BZMF	R52M		# MANUAL
+R52D		TC	BANKCALL	# AGC
+		CADR	SR52.1
+		TCF	R52L		# GR 90 DEGREES
+		TCF	R52J		# GR 50 DEGREES
+		TC	UPFLAG		# LS 50 DEGREES
+		ADRES	TRUNFLAG	# SET TRUNFLAG BIT 4 FLAG 0
+R52JA		CAF	BIT10		# IS THIS A LEM
+		MASK	STATE +1
+		CCS	A
+		TC	R52E		# YES
+		CAF	BIT6		# NO, IS R53FLAG SET
+		MASK	STATE
+		CCS	A
+		TCF	R52E		# YES
+# Page 745		
+		CAF	V06N92		# NO
+		TC	BANKCALL
+		CADR	GODSPR
+R52E		CA	SWSAMPLE	# IS OSS IN CMC MODE
+		EXTEND
+		BZMF	R52F		# NO
+		CS	STATE		# YES: IS TRUNFLAG SET
+		MASK	BIT4
+		CCS	A
+		TC	+3		# NO
+		CA	PAC		# YES
+		TS	DESOPTT
+		CA	SAC
+		TS	DESOPTS
+R52F		CAF	.5SEC		# WAIT 1/2 SEC
+		TC	BANKCALL
+		CADR	DELAYJOB
+		CAF	BIT10
+		MASK	STATE +1
+		CCS	A
+		TCF	R52HA		# YES, LEM
+		CAF	BIT15		# NO
+		MASK	STATE +7	# IS TERMIFLG SET
+		EXTEND
+		BZF	R52C		# NO
+R52Q		TC	INTPRET		# YES
+		GOTO
+			SAVQR52
+R52H		EXIT			# LEM
+R52HA		TC	BANKCALL
+		CADR	R61CSM
+		CA	STATE +1
+		MASK	BIT5
+		EXTEND			# TRACKFLG
+		BZF	R52Q
+		
+		CS	STATE +1
+		MASK	BIT7		# UPDATFLG
+		CCS	A
+		TCF	R52SYNC
+		
+R52I		CA	STATE +5
+		MASK	BIT10
+		CCS	A
+		TC	R52D		# PRFTRKAT = 1
+R52SYNC		CAF	1.8SEC		# MAKE UP FOR LOST TIME
+		TCF	R52F +1
+		
+R52J		TC	DOWNFLAG	# CLEAR TRUNFLAG
+		ADRES	TRUNFLAG	# BIT 4 FLAG 0
+# Page 746
+		TC	ALARM		# SET 407 ALARM
+		OCT	407
+		TC	R52JA
+R52M		CAF	BIT6		# IS R53FLAG SET
+		MASK	STATE
+		CCS	A
+		TC	R52F		# YES
+		INHINT			# NO
+		CAF	PRIO24
+		TC	FINDVAC
+		EBANK=	SAC
+		2CADR	R53JOB
+		
+		RELINT
+		TCF	R52F
+R53JOB		TC	INTPRET
+		CALL
+			R53
+ENDPLAC		EXIT			# INTERPRETER RETURN TO ENDOFJOB (R22 USES)
+		TC	ENDOFJOB		
+V06N92		VN	00692
+V06N89A		VN	0689
+SHAXIS		2DEC	.5376381241 B-1
+
+		2DEC	0
+		
+		2DEC	.8431766920 B-1
+		
+R52L		CAF	BIT10		# IS THIS A LEM
+		MASK	STATE +1
+		CCS	A
+		TC	R52J		# YES
+		CAF	OCT404
+		TC	BANKCALL
+		CADR	PRIOLARM
+		TCF	TERM52		# TERMINATE
+		TCF	R52F		# PROCEED
+		TCF	R52F		# NO PROVISION FOR NEW DATA
+		TCF	ENDOFJOB
+		
+OCT404		OCT	404
+1.8SEC		DEC	180
+
+TERM52		TC	CLEARMRK
+
+		TC	BANKCALL	# KILL MARK SYSTEM
+		CADR	MKRELEAS
+
+# Page 747
+
+		CAF	ZERO
+		TS	OPTCADR
+		
+		TC	BANKCALL	# CLEAR OUT EXTENDED VERBS
+		CADR	KLEENEX
+		
+		TC	GOTOP00H	# NO GO TO P00
+		
+ADVORB		STQ	SET		# SETS UP ADVANCED ORBIT TRACKING
+			SAVQR52
+			ADVTRK
+		SET	SET
+			LUNAFLAG
+			ERADFLAG
+		GOTO
+			R52VRB
+
+# Page 748
+# NAME -- S50 ALIAS LOCSAM
+# NAME:	LOCSAM
+#
+# FUNCTION -- TO COMPUTE QUATITIGS LISTED BELOW, USED IN THE
+#	      IMU ALIGNMENT PROGRAMS.
+#
+#	DEFINE:
+#
+#	RATT = POSITION VECTOR OF CM WRT PRIMARY BODY
+#
+#	VATT = VELOCITY VECTOR OF CM WRT PRIMARY BODY
+#
+#	RE = RADIUS OF EARTH
+#
+#	RM = RADIUS OF MOON
+#
+#	ECLIPOL = POLE OF ECLIPTIC SCALED BY TANGENTIAL VELOCITY OF EARTH
+#		  WRT TO SUN OVER THE VELOCITY OF LIGHT
+#
+#	REM = POSITION OF MOON WRT EARTH
+#
+#	RES = POSITION OF SUN WRT EARTH
+#
+#	C = VELOCITY OF LIGHT
+#
+#		EARTH IS PRIMARY			MOON IS PRIMARY
+#		        _                                       _
+#		VEARTH=-1(RATT)				VEARTH=-1(REM+RATT)
+#		        _				        _
+#		VMOON = 1(REM-RATT)			VMOON =-1(RATT)
+#		        _				        _
+#		VSUN  = 1(RES)				VSUN  = 1(RES-REM)
+#		              -1
+#		CEARTH=COS(SIN  (RE/RATT)+5)		CEARTH=COS 5
+#								      -1
+#		CMOON =COS 5				CMOON =COS(SIN  CRM/RATT)+5)
+#
+#		CSUN  =COS 15				CSUN  =COS 15
+#
+#			    VEL/C = VSUN x ECLIPOL + VATT/C
+#
+# CALL:		DLOAD	CALL
+#			DESIRED TIME
+#			LOCSAM
+#
+# INPUTS:  	MPAC = TIME
+#
+# OUTPUTS:  	VEARTH, VMOON, VSUN, CEARTH, CMOON, CSUN, VEL/C
+#
+# SUBROUTINES:  LSPOS, CSMCONIC
+#
+# DEBRIS:  	VAC AREA, SEE SUBROUTINES.
+
+# Page 749
+		SETLOC	P50S1
+		BANK
+		
+		COUNT*	$$/S50
+
+LOCSAM		=	S50
+S50		STQ
+			QMAJ
+		STCALL	TSIGHT
+			LSPOS
+		STOVL	VMOON
+			2D
+		STODL	VSUN
+			TSIGHT
+		STCALL	TDEC1
+			CSMCONIC
+		SSP	TIX,2
+			S2
+			0
+			MOONCNTR
+EARTCNTR	VLOAD	VSU
+			VMOON
+			RATT
+		UNIT
+		STOVL	VMOON
+			RATT
+		UNIT	VCOMP
+		STODL	VEARTH
+			RSUBE
+		CALL
+			OCCOS
+		STODL	CEARTH
+			CSS5
+		STOVL	CMOON
+			VSUN
+		UNIT
+		STCALL	VSUN
+			ENDSAM
+MOONCNTR	VLOAD	VSR8
+			VMOON
+		VSR1	BVSU
+			VSUN
+		UNIT
+		STOVL	VSUN
+			VMOON
+		VAD	UNIT
+			RATT
+		VCOMP
+		STOVL	VEARTH
+# Page 750
+
+			RATT
+		UNIT	VCOMP
+		STODL	VMOON
+			RSUBM
+		CALL
+			OCCOS
+		STODL	CMOON
+			CSS5
+		STOVL	CEARTH
+			VSUN
+ENDSAM		VXV
+			ECLIPOL
+		STOVL	VEL/C
+			VATT
+		VXSC	VAD
+			1/C
+			VEL/C
+		STODL	VEL/C
+			CSSUN
+		STCALL	CSUN
+			QMAJ
+OCCOS		DDV	SR1
+			36D
+		ASIN	DAD
+			5DEGREES
+		COS	SR1
+		RVQ
+		SETLOC	P50S
+		BANK
+RSUBM		2DEC	1738090 B-29	# MOON RADIUS IN METERS
+
+RSUBE		2DEC	6378166 B-29
+
+5DEGREES	2DEC	.013888889 	# SCALED IN REVS
+
+1/C		2DEC	.000042699 B-1	# *
+
+ECLIPOL		2DEC	0		# *
+
+		2DEC	-.00007896 B-1	# *
+		
+		2DEC	.00018209 B-1	# *		* FOR USE BY CSM ONLY
+		
+TSIGHT1		2DEC	24000
+
+CEARTH		=	14D
+CSUN		=	16D
+CMOON		=	18D
+CSS5		2DEC	.2490475	# (COS 5)/4
+# Page 751
+CSSUN		2DEC	.24148		# (COS 15)/4
+
+# Page 752
+# PROGRAM NAME -- PICAPAR	DATE: DEC 20 66
+# MOD 1				LOG SECTION: P51-P53
+#				ASSEMBLY:  SUNDISK REV40
+# BY KEN VINCENT
+#
+# FUNCTION
+#	THIS PROGRAM READS THE IMU-CDUS AND COMPUTES THE VEHICLE ORIENTATION
+#	WITH RESPECT TO INERTIAL SPACE.  IT THEN COMPUTES THE SHAFT AXIS (SAX)
+#	WITH RESPECT TO REFERENCE INTERTIAL.  EACH STAR IN THE CATALOG IS TESTED
+# 	TO DETERMINE IF IT IS OCCULTED BY EITHER EARTH, SUN OR MOON.  IF A
+# 	STAR IS NOT OCCULTED THEN IT IS PAIRED WITH ALL STARS OF LOWER INDEX.
+# 	THE PAIRED STAR IS TESTED FOR OCCULTATION.  PAIRS OF STARS THAT PASS
+#	THE OCCULTATION TESTS ARE TESTED FOR GOOD SEPARATION.  A PAIR OF STARS
+#	HAVE GOOD SEPARATION IF THE ANGLE BETWEEN THEM IS LESS THAN 66 DEGREES
+#	AND MORE THAN 40 DEGREES.  THOSE PAIRS WITH GOOD SEPARATION
+#	ARE THEN TESTED TO SEE IF THEY LIE IN CURRENT FIELD OF VIEW.  (WITHIN
+#	33 DEGREES OF SAX).  THE PAIR WITH MAX SEPARATION IS CHOSEN FROM
+#	THOSE WITH GOOD SEPARATION, AND IN FIELD OF VIEW.
+#
+# CALLING SEQUENCE
+#	L	TC	BANKCALL
+#	L+1	CADR	PICAPAR
+#	L+2	ERROR RETURN -- NO STARS IN FIELD OF VIEW
+#	L+3	NORMAL RETURN
+#
+# OUTPUT
+#	BESTI, BESTJ -- SINGLE PREC, INTEGERS, STAR NUMBERS TIMES 6
+#	VFLAG -- FLAG BIT SET IMPLIES NO STARS IN FIELD OF VIEW
+#
+# INITIALIZATION
+#	1)	A CALL TO LOCSAM MUST BE MADE
+#	2)	VEARTH = -UNIT(R) WHERE R HAS BEEN UPDATED TO APPROXIMATE TIME OF
+#		SIGHTINGS.
+#
+# DEBRIS
+#	WORK AREA
+#	X,Y,ZNB
+#	SINCDU, COSCDU
+#	STARAD -- STAR +5
+
+		COUNT	14/PICAP
+		
+		SETLOC	P50S1
+		BANK
+PICAPAR		TC	MAKECADR
+		TS	QMIN
+		TC	INTPRET
+		CALL
+			CDUTRIG
+		CALL
+			CALCSMSC
+# Page 753
+		SETPD
+			0
+		SET	DLOAD		# VFLAG = 1
+			VFLAG
+			DPZERO
+		STOVL	BESTI
+			XNB
+		VXSC	PDVL
+			SIN33
+			ZNB
+		AXT,1	VXSC
+			228D		# X1 = 37 X 6 + 6
+			COS33
+		VAD
+		VXM	UNIT
+			REFSMMAT
+		STORE	SAX		# SAX = SHAFT AXIS
+		SSP	SSP		# S1 = S2 = 6
+			S1
+			6
+			S2
+			6
+PIC1		TIX,1	GOTO		# MAJOR STAR
+			PIC2
+			PICEND
+PIC2		VLOAD*	CALL
+			CATLOG,1
+			OCCULT
+		BON	LXA,2
+			CULTFLAG
+			PIC1
+			X1
+PIC3		TIX,2	GOTO
+			PIC4
+			PIC1
+PIC4		VLOAD*	CALL
+			CATLOG,2
+			OCCULT
+		BON	VLOAD*
+			CULTFLAG
+			PIC3
+			CATLOG,1
+		DOT*	DSU
+			CATLOG,2
+			CSS66		# SEPARATION LESS THAN 66 DEG.
+		BMN	DAD
+			PIC3
+			CSS6640		# SEPARATION MORE THAN 40 DEG.
+		BPL	
+			PIC3
+# Page 754
+		VLOAD*	DOT
+			CATLOG,1
+			SAX
+		DSU	BMN		# MAJOR STAR IN CONE
+			CSS33
+			PIC1
+		VLOAD*	DOT
+			CATLOG,2
+			SAX
+		DSU	BPL
+			CSS33
+			STRATGY
+		GOTO
+			PIC3
+STRATGY		BONCLR
+			VFLAG
+			NEWPAR
+		XCHX,1	XCHX,2
+			BESTI
+			BESTJ
+STRAT		VLOAD*	DOT*
+			CATLOG,1
+			CATLOG,2
+		PUSH	BOFINV
+			VFLAG
+			STRAT -3
+		DLOAD	DSU
+		BPL
+			PIC3
+NEWPAR		SXA,1	SXA,2
+			BESTI
+			BESTJ
+		GOTO
+			PIC3
+OCCULT		MXV	BVSU
+			CULTRIX
+			CSS
+		BZE
+			CULTED
+		BMN	SIGN
+			CULTED
+			MPAC +3
+		BMN	SIGN
+			CULTED
+			MPAC +5
+		BMN	CLRGO
+			CULTED
+			CULTFLAG
+			QPRET
+CULTED		SETGO
+# Page 755
+			CULTFLAG
+			QPRET
+CSS		= 	CEARTH
+SIN33		2DEC	.5376381241
+
+COS33		2DEC	.8431756920
+
+CSS66		2DEC	.060480472	# (COS76)/4
+
+CSS6640		2DEC	-.15602587	# (COS76 - COS30)/4
+
+CSS33		2DEC	.197002688	# (COS(1/2(76))/4
+
+PICEND		BOFF	EXIT
+			VFLAG
+			PICGXT
+		TC	PICBXT
+PICGXT		EXIT
+		INCR	QMIN
+PICBXT		CA	QMIN
+		TC	SWCALL
+#V1		= 	12D
+
+# Page 756
+# NAME -- R51	FINE ALIGN
+# FUNCTION -- TO ALIGN THE STABLE MEMBER TO REFSSMAT
+# CALLING SEQ -- CALL R51
+# INPUT -- BESTI, BESTJ (PAIR OF STAR NO)
+# OUTPUT -- GYRO TORQUE PULSES
+# SUBROUTINES -- R52, R54, R55 (SXTNB, NBSM, AXISGEN)
+
+		COUNT	14/R51
+		
+R51		EXIT
+		CAF	BIT1
+		TS	STARIND
+		TS	MARKINDX
+R51.2		TC	INTPRET
+R51.3		CLEAR	CLEAR
+			TARG2FLG
+			TARG1FLG
+		EXIT
+		TC	PHASCHNG
+		OCT	05024		# RESTART GR 4 FOR R52-R53
+		OCT	13000
+		INDEX	STARIND
+		CA	BESTI
+		EXTEND
+		MP	1/6TH
+		TS	STARCODE
+R51DSP		CAF	V01N70
+		TC	BANKCALL
+		CADR	GOFLASHR
+		TC	GOTOP00H
+		TC	+5
+		TC	-5
+		CAF	SIX
+		TC	BLANKET
+		TCF	ENDOFJOB
+		TC	CHKSCODE
+		TC	FALTON
+		TC	R51DSP
+		TC	INTPRET
+		RTB	CALL
+			LOADTIME
+			PLANET
+		SSP	LXA,1
+			S1
+			0
+			STARIND
+		TIX,1
+			R51ST
+		STCALL	STARSAV2	# 2ND STAR
+			R51ST +1
+R51ST		STORE	STARSAV1	# 1ST STAR
+# Page 757
+		EXIT
+		CS	MODREG		# IS THIS P54
+		AD 	OCT66
+		EXTEND
+		BZF	R51B		# YES
+		TC	INTPRET
+		CALL
+			R52		# AOP WILL MAKE CALLS TO SIGHTING
+R51A		CALL			# COMPUTE LOS IN SM FROM MARK DATA
+			SXTSM
+		STORE	STARSAV2
+		EXIT
+		TC	BANKCALL
+		CADR	MKRELEAS
+		TC	INTPRET
+		DLOAD	CALL
+			TSIGHT
+			PLANET
+		EXIT
+		CCS	STARIND
+		TC	R51.4
+		TC	INTPRET
+		MXV	UNIT
+			REFSMMAT
+		STORE	STARAD
+		VLOAD
+			STARSAV2
+		STOVL	6D
+			STARSAV1
+		STOVL	12D
+			PLANVEC
+		STCALL	STARAD +6
+			R54		# STAR DATA TEST
+		BOFF	CALL
+			FREEFLAG
+			R51K
+			AXISGEN
+		CALL
+			R55		# GYRO TORQUE
+		CLEAR
+			PFRATFLG
+R51K		EXIT
+		CAF	OCT14
+		TC	BANKCALL
+		CADR	GOPERF1
+		TC	GOTOP00H
+		TC	+2		# V33
+		TC	+3
+		TC	BANKCALL
+		CADR	P52C
+# Page 758		
+		TC	INTPRET
+		GOTO
+			ENDP50S	
+R51.4		TC	INTPRET
+		MXV	UNIT
+			REFSMMAT
+		STOVL	PLANVEC
+			STARSAV2
+		STORE	STARSAV1
+		SSP
+			STARIND
+			0
+		GOTO
+			R51.3
+R51B		TC	INTPRET
+		CALL
+			R56
+		GOTO
+			R51A
+OCT66		OCT	00066
+V01N70		VN	0170
+1/6TH		DEC	.1666667
+
+# Page 759
+# NAME:		R55	GYRO TORQUE
+# FUNCTION -- COMPUTE AND SEND GYRO PULSES
+# CALLING SEQ -- CALL R55
+# INPUT -- X,Y,ZDC -- REFSMMAT WRT PRESENT STABLE MEMBER
+# OUTPUT -- GYRO PULSES
+# SUBROUTINES -- CALCGTA, GOFLASH, GODSPR, IMUFINE, IMUPULSE, GOPERF1
+
+		SETLOC	P50S
+		BANK
+		COUNT*	$$/R55		
+R55		STQ
+			QMIN
+		CALL
+			CALCGTA
+PULSEM		EXIT
+R55.1		CAF	V06N93
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H
+		TC	R55.2
+		TC	R55RET
+R55.2		TC	PHASCHNG
+		OCT	00314
+		CA	R55CDR
+		TC	BANKCALL
+		CADR	IMUPULSE
+		TC	BANKCALL
+		CADR	IMUSTALL
+		TC	CURTAINS
+		TC	PHASCHNG
+		OCT	05024
+		OCT	13000
+R55RET		TC	INTPRET
+		GOTO
+			QMIN
+V06N93		VN	0693
+R55CDR		ECADR	OGC
+R54		=	CHKSDATA
+
+# ROUTINE NAME -- CHKSDATA		DATE -- JAN 9, 1967
+# MOD NO -- 0				LOG SECTION -- P51-P53
+# MODIFICATION BY -- LONSKE		ASSEMBLY --
+#
+# FUNCTIONAL DESCRIPTION -- CHECKS THE VALIDITY OF A PAIR OF STAR SIGHTINGS.  WHEN A PAIR OF STAR SIGHTINGS ARE MADE
+# BY THE ASTRONAUT THIS ROUTINE OPERATES AND CHECKS THE OBSERVED SIGHTINGS AGAINST STORED STAR VECTORS IN THE
+# COMPUTER TO INSURE A PROPER SIGHTING WAS MADE.  THE FOLLOWING COMPUTATIONS ARE PERFORMED --
+#	OS1	=	OBSERVED STAR 1 VECTOR
+#	OS2	=	OBSERVED STAR 2 VECTOR
+#	SS1	=	STORED STAR 1 VECTOR
+#	SS2 	=	STORED STAR 2 VECTOR
+#	 A1	= 	ARCCOS(OS1 - OS2)
+# Page 760
+#	 A2	=	ARCCOS(SS1 - SS2)
+#	  A 	=	ABS(2(A1 - A2))
+
+# THE ANGULAR DIFFERENCE IS DISPLAYED FOR ASTRONAUT ACCEPTANCE.
+#
+# EXIT MODE --	1. FREEFLAG SET IMPLIES ASTRONAUT WANTS TO PROCEED
+#		2. FREEFLAG RESET IMPLIES ASTRONAUT WANTS TO RECYCLE
+#
+# OUTPUT --	1. VERB 6,NOUN 3 -- DISPLAYS ANGULAR DIFFERENCE BETWEEN 2 SETS OF STARS.
+#		2. STAR VECTORS FROM STAR CATALOG ARE LEFT IN 6D AND 12D.
+#
+# ERASABLE INITIALIZATION REQUIRED --
+#		1. MARK VECTORS ARE STORED IN STARAD AND STARAD +6.
+#		2. CATALOG VECTORS ARE STORED IN 6D AND 12D.
+#
+# DEBRIS --
+
+		SETLOC	P50S1
+		BANK
+		COUNT*	$$/R50
+CHKSDATA	STQ	SET
+			QMIN
+			FREEFLAG
+CHKSAB		AXC,1			# SET X1 TO STORE EPHEMERIS DATA
+			STARAD
+
+CHKSB		VLOAD*	DOT*		# CAL. ANGLE THETA
+			0,1
+			6,1
+		SL1	ACOS
+		STORE	THETA
+		BOFF	INVERT		# BRANCH TO CHKSD IF THIS IS 2ND PASS
+			FREEFLAG
+			CHKSD
+			FREEFLAG	# CLEAR FREEFLAG
+		AXC,1	DLOAD		# SET X1 TO MARK ANGLES
+			6D
+			THETA
+		STORE	18D
+		GOTO
+			CHKSB		# RETURN TO CAL. 2ND ANGLE
+CHKSD		DLOAD	DSU
+			THETA		# COMPUTE POS DIFF
+			18D
+		ABS	RTB		
+			SGNAGREE
+		STORE	NORMTEM1
+		SET	EXIT
+			FREEFLAG
+		CAF	ZERO
+		TC	BANKCALL
+		CADR	CLEANDSP
+		
+		CAF	VB6N5
+# Page 761
+		TC	BANKCALL	
+		CADR	GOFLASH
+		TCF	GOTOP00H
+		TC	CHKSDA		# PROCEED
+		TC	INTPRET
+		CLEAR	GOTO
+			FREEFLAG
+			QMIN
+CHKSDA		TC	INTPRET
+		GOTO
+			QMIN
+VB6N5		VN	605
+
+# NAME -- CAL53A
+# FUNCTION -- COARSE ALIGN THE IMU, IF NECESSARY 
+# CALLING SEQUENCE -- CALL CAL53A
+# INPUT -- PRESENT GIMBAL ANGLES -- CDUX, CDUY, CDUZ
+#	   DESIRED GIMBAL ANGLES -- THETAD,+1,+2
+# OUTPUT -- THE IMU COORDINATES AT STORED IN REFSMMAT
+# SUBROUTINES -- 1.IMUCOARS, 2.IMUSTALL, 3CURTAINS
+
+		COUNT	14/R50
+		
+CAL53A		CALL
+			S52.2		# MAKE FINAL COMP OF GIMBAL ANGLES
+		RTB	SSP
+			RDCDUS		# READ CDUS
+			S1
+			1
+		AXT,1	SETPD
+			3
+			4
+CALOOP		DLOAD*	SR1
+			THETAD +3D,1
+		PDDL*	SR1
+			4,1
+		DSU	ABS
+		PUSH	DSU
+			DEGREE1
+		BMN	DLOAD
+			CALOOP1
+		DSU	BPL
+			DEG359
+			CALOOP1
+COARFINE	EXIT
+		TC	PHASCHNG
+		OCT	04024
+		TC	BANKCALL
+		CADR	IMUCOARS	# PERFORM COARSE ALIGNMENT
+		TC	BANKCALL
+		CADR	IMUSTALL	# REQUEST MODE SWITCH
+# Page 762		
+		TC	CURTAINS
+		TC	BANKCALL
+		CADR	IMUFIN20
+		TC	BANKCALL
+		CADR	IMUSTALL
+		TC	CURTAINS	# TEST FOR MALFUNCTION
+		TC	INTPRET
+		RTB	VLOAD
+			SET1/PDT
+			ZEROVEC
+		STORE	GCOMP
+		SET	GOTO
+			DRIFTFLG
+			FINEONLY
+CALOOP1		TIX,1
+			CALOOP
+FINEONLY	AXC,1	AXC,2
+			XSM
+			REFSMMAT
+		CALL
+			MATMOVE
+		GOTO
+			CAL53RET
+MATMOVE		VLOAD*			# TRANSFER MATRIX
+			0,1
+		STORE	0,2
+		VLOAD*
+			6D,1
+		STORE	6D,2
+		VLOAD*
+			12D,1
+		STORE	12D,2
+		RVQ
+DEGREE1		DEC	46
+DEG359		DEC	16338	
+		SETLOC	P50S
+		BANK
+RDCDUS		INHINT			# READ CDUS
+		CA	CDUX
+		INDEX	FIXLOC
+		TS	1
+		CA	CDUY
+		INDEX	FIXLOC
+		TS	2
+		CA	CDUZ
+		INDEX	FIXLOC
+		TS	3
+		RELINT
+		TC	DANZIG
+
+# Page 763
+# NAME:		GIMB
+#
+# FUNCTION:	DETERMINE AND COMPUTE THE DESIRED GIMBAL ANGLES TO BE USED FOR COARSE ALIGNMENT.
+#
+# CALLING SEQUENCE:  CALL GIMB
+#
+# INPUT:	DESIRED IMU INERTIAL ORIENTATION VECTORS:  XSMD, YSMD, ZSMD
+#
+# OUTPUT:	GIMBAL ANGLES LEFT IN THETAD, +1, +2
+#
+# SUBROUTINES USED:  1.CDUTRIG 2.CALCSMSC 3.CALCGA
+
+		SETLOC	P50S2
+		BANK
+		COUNT	14/INFLT
+		
+CALCSMSC	DLOAD	DMP
+			SINCDUY
+			COSCDUZ
+		DCOMP
+		PDDL	SR1
+			SINCDUZ
+		PDDL	DMP
+			COSCDUY
+			COSCDUZ
+		VDEF	VSL1
+		STORE	XNB
+		DLOAD	DMP
+			SINCDUX
+			SINCDUZ
+		SL1
+		STORE	26D
+		DMP
+			SINCDUY
+		PDDL	DMP
+			COSCDUX
+			COSCDUY
+		DSU
+		PDDL	DMP
+			SINCDUX
+			COSCDUZ
+		DCOMP
+		PDDL	DMP
+			COSCDUX
+			SINCDUY
+		PDDL	DMP
+			COSCDUY
+			26D
+		DAD	VDEF
+		VSL1
+		STORE	ZNB
+		VXV	VSL1
+			XNB
+		STORE	YNB
+		RVQ
+		
+# NAME -- P51 -- IMU ORIENTATION DETERMINATION
+# MOD. NO. 2	21 DEC 66				LOG SECTION -- P51-P53
+# Page 764
+# MOD BY STURLAUGSON					ASSEMBLY SUNDISK REV15
+#
+# FUNCTIONAL DESCRIPTION
+#	DETERMINES THE INERTIAL ORIENTATION OF THE IMU.  THE PROGRAM IS SELECTED BY DSKY ENTRY.  THE SIGHTING
+#	ROUTINE IS CALLED TO COLLECT THE CDU COUNTERS AND SHAFT AND TRUNNION ANGLES FOR A SIGHTED STAR.  THE DATA IS
+#	THEN PROCESSED AS FOLLOWS.
+#
+#	1.  SEXTANT ANGLES ARE COMPUTED IN TERMS OF NAVIGATIONAL BASE COORDINATES.  LET SA AND TA BE THE SHAFT AND
+#	TRUNNION ANGLES, RESPECTIVELY.  THEN,
+#	_
+#	V  = (SIN(TA)*COS(SA), SIN(TA)*SIN(SA), COS(TA))	(A COLUMN VECTOR)
+#        NB
+#	THE OUTPUT IS A HALF-UNIT VECTOR STORED IN STARM.
+#
+#	2.  THIS VECTOR IN NAV. BASE COORDS. IS THEN TRANSFORMED TO ONE IN STABLE MEMBER COORDINATES.
+#	_    T  T  T _
+#	V = Q *Q *Q *V  ,	WHERE
+#	     1  2  3  NB
+#
+#	     ( COS(IG)	 0    -SIN(IG) )
+#	     (			       )					THE GIMBAL ANGLES ARE COMPUTED FROM
+#	Q  = (   0	 1  	 0     ), IG= INNER GIMBAL ANGLE		THE CDU COUNTERS AT NBSM (USING AXIS-
+#	 1   (			       )					ROT AND CDULOGIC)
+#	     ( SIN(IG)	 0     COS(IG) )
+#
+#	     ( COS(MG) SIN(MG)   0     )
+#	     (			       )
+#	Q  = (-SIN(MG) COS(MG)   0     ), MG= MIDDLE GIMBAL ANGLE
+#	 2   (                         )
+#	     (   0       0       1     )
+#
+#	     (   1       0       0     )
+#	     (                         )
+#	Q  = (   0     COS(OG) SIN(OG) ), OG= OUTER GIMBAL ANGLE
+#	 3   (                         )
+#	     (   0    -SIN(OG) COS(OG) )
+#
+#	3.  THE STAR NUMBER IS SAVED AND THE SECOND STAR IS THEN SIMILARLY PROCESSED.
+#
+#	4.  THE ANGLE BETWEEN THE TWO STARS IS THEN CHECKED AT CKSDATA.
+#
+#	5.  REFSMMAT IS THEN COMPUTED AT AXISGEN AS FOLLOWS.
+#		    _      _
+#		LET S  AND S  BE TWO STAR VECTORS EXPRESSED IN TWO COORDINATE SYSTEMS, A AND B (BASIC AND STABLE MEMBER).
+#		     1      2
+# Page 765
+#		DEFINE,
+#		_    _
+#		U  = S
+#		 A    A1
+#		_         _    _
+#		V  = UNIT(S  x S  )
+#		 A         A1   A2
+#		_    _   _
+#		W  = U x V
+#		 A    A   A
+#
+#		AND,
+#		_    _
+#		U  = S
+#		 B    B1
+#		_         _    _
+#		V  = UNIT(S  x S  )
+#		 B         B1   B2
+#		_    _   _
+#		W  = U x V
+#		 B    B   B
+#
+#		THEN
+#		_        _       _       _
+#		X  = U  *U + V  *V + W  *W
+#		      B1  A   B1  A   B1  A
+#		_        _       _       _
+#		Y  = U  *U + V  *V + W  *W		(REFSMMAT)
+#		      B2  A   B2  A   B2  A
+#		_        _       _       _
+#		Z  = U  *U + V  *V + W  *W
+#		      B3  A   B3  A   B3  A
+#
+# THE INPUTS CONSIST OF THE FOUR HALF-UNIT VECTORS STORED AS FOLLOWS
+#		_
+#		S   IN 6-11 OF THE VAC AREA
+#		 A1
+#		_
+#		S   IN 12-17 OF THE VAC AREA
+#		 A2
+#		_
+#		S   IN STARAD
+#		 B1
+# Page 766	_
+#		S   IN STARAD +6
+#		 B2
+#
+# CALLING SEQUENCE:
+#
+#	THE PROGRAM IS CALLED BY THE ASTRONAUT BY DSKY ENTRY.
+#
+# SUBROUTINES CALLED:
+#
+#	GOPERF3
+#	GOPERF1R
+#	GODSPR
+#	IMUCOARS
+#	IMUFIN20
+#	R53
+#	SXTNB
+#	NBSM
+#	MKRELEAS
+#	CHKSDATA
+#	MATMOVE
+#
+# ALARMS
+#
+#	NONE
+#
+# ERASABLE INITIALIZATION:
+#
+#	IMU ZERO FLAG SHOULD BE SET.
+#
+# OUTPUT
+#
+#	REFSMMAT
+#	REFSMFLG
+#
+# DEBRIS
+#
+#	WORK AREA
+#	STARAD
+#	STARIND
+#	BESTI
+#	BESTJ
+
+		SETLOC	P50S1
+		BANK
+		COUNT	14/P5153
+
+P53		EQUALS	P51		
+P51		CS	IMODES30
+		MASK	BIT9
+		CCS	A
+# Page 767		
+		TC	P51A
+		TC	ALARM
+		OCT	210
+		TC	GOTOP00H
+P51A		TC	BANKCALL
+		CADR	R02ZERO
+		
+P51AA		CAF	PRFMSTAQ
+		TC	BANKCALL
+		CADR	GOPERF1
+		TC	GOTOP00H	# TERM.
+		TC	P51B		# V33
+		TC	PHASCHNG
+		OCT	05024
+		OCT	13000
+		CAF	P51ZERO
+		TS	THETAD		# ZERO THE GIMBALS
+		TS	THETAD +1
+		TS	THETAD +2
+		CAF	V6N22
+		TC	BANKCALL
+		CADR	GODSPRET
+		CAF	V41K		# NOW DISPLAY COARSE ALIGN VERB 41
+		TC	BANKCALL
+		CADR	GODSPRET
+		TC	BANKCALL
+		CADR	IMUCOARS
+		TC	BANKCALL
+		CADR	IMUSTALL
+		TC	CURTAINS	# CAGING OR BAD END
+		TC	BANKCALL	# SCHEDULE IFAILOK AND IMUFINED TASKS, IN 5
+		CADR	IMUFIN20	# AND 20 SECS. DIRECT RETURN AND NO STALL,
+		TC	BANKCALL	# IF CAGING, BUT T4 WILL ZERO C/A ENABLE.
+		CADR	IMUSTALL	# IF PUT TO SLEEP, IMUFINED WILL WAKE US
+		TC	CURTAINS	# UP.
+		TC	PHASCHNG
+		OCT	05024
+		OCT	13000
+		TCF	P51AA		# COARSE ALIGN DONE:  RECYCLE FOR FINE
+
+# Page 768
+# DO STAR SIGHTING AND COMPUTE NEW REFSMMAT
+P51B		TC	PHASCHNG
+		OCT	00014
+		TC	INTPRET
+		SSP	SETPD
+			STARIND		# INDEX -- STAR 1 OR 2
+			0
+			0
+		RTB	VLOAD
+			SET1/PDT
+			ZEROVEC
+		STORE	GCOMP
+		SET	CLEAR
+			DRIFTFLG	# ENABLE T4 COMPENSATION
+			TARG2FLG	# SHOW MARK IS STAR --- NOT LANDMARK
+		EXIT
+		CAF	BIT1
+		TS	MARKINDX	# INITIALIZE FOR ONE MARK
+		
+P51C		TC	PHASCHNG
+		OCT	05024
+		OCT	13000
+		TC	CHECKMM
+		MM	53		# BACKUP PROGRAM
+		TCF	P51C.1		# NOT P53
+		TC	INTPRET
+		CALL
+			R56
+		GOTO
+			P51C.2
+P51C.1		TC	INTPRET
+		CALL
+			R53		# SIGHTING ROUTINE
+P51C.2		CALL			# COMPUTE LOS IN SM FROM MARK DATA
+			SXTSM
+		PUSH
+		SLOAD	BZE
+			STARIND
+			P51D
+		VLOAD	STADR
+		STORE	STARSAV2	# DOWNLINK
+		GOTO
+			P51E
+P51D		VLOAD	STADR
+		STODL	STARSAV1
+			TSIGHT
+		CALL
+			PLANET
+		STORE	PLANVEC
+# Page 769		
+P51E		EXIT
+		TC	PHASCHNG
+		OCT	05024
+		OCT	13000
+		TC	BANKCALL
+		CADR	MKRELEAS	# ZERO MARKSTAT
+		CCS	STARIND
+		TCF	P51F		# STAR 2
+		TC	PHASCHNG
+		OCT	05024
+		OCT	13000
+		CAF	BIT1
+		TS	STARIND
+		TCF	P51C		# GO DO SECOND STAR
+P51F		TC	PHASCHNG
+		OCT	05024
+		OCT	13000
+		TC	INTPRET
+		DLOAD	CALL
+			TSIGHT
+			PLANET
+		STOVL	12D
+			PLANVEC
+		STOVL	6D
+			STARSAV1
+		STOVL	STARAD
+			STARSAV2
+		STCALL	STARAD +6
+			CHKSDATA	# CHECK STAR ANGLES IN STARAD AND
+		BON	EXIT
+			FREEFLAG
+			P51G
+		TC	P51AA
+P51G		CALL
+			AXISGEN		# COME BACK WITH REFSMMAT IN XDC
+		AXC,1	AXC,2
+			XDC
+			REFSMMAT
+		CLEAR	CALL
+			REFSMFLG
+			MATMOVE
+		SET	GOTO
+			REFSMFLG
+			ENDP50S
+PRFMSTAQ	=	OCT15
+P51ZERO		=	ZERO
+P51FIVE		=	FIVE
+V6N22		VN	0622
+V41K		VN	4100
+SET1/PDT	CA	TIME1
+# Page 770
+		TS	1/PIPADT
+		TCF	DANZIG
+		
+# Page 771
+# SXTSM COMPUTES AN LOS VECTOR IN SM COORD FROM OCDU AND ICDU MARK DATA
+
+		SETLOC	P50S3
+		BANK
+SXTSM		STQ
+			QMAJ
+		LXC,1	DLOAD*
+			MARKSTAT
+			0D,1
+		STORE	TSIGHT
+		LXC,2	SLOAD*
+			STARIND
+			MKDNCDR,2
+		LXC,2	VLOAD*
+			MPAC
+			0,1
+		STORE	0,2
+		DLOAD*
+			5,1
+		STORE	5,2
+		CALL
+			SXTNB		# COMPUTE LOS VECTOR FROM OCDU IN MKVAC
+		LXA,1	INCR,1
+			MARKSTAT
+			2		# INCREMENT TO BASE ADR OF ICDU
+		SXA,1	CALL
+			S1
+			NBSM		# TRANSFORM LOS TO SM
+		GOTO
+			QMAJ
+MKDNCDR		ECADR	MARKDOWN
+		ECADR	MARK2DWN
+
+# Page 772
+# PROGRAM DESCRIPTION:  R53 -- SIGHTING MARK ROUTINE
+# MOD. NO. 2						21 DEC 66
+# MOD. BY STURLAUGSON
+#
+# FUNCTIONAL DESCRIPTIION:
+#
+#	TO PERFORM A SATISFACTORY NUMBER OF SIGHTING MARKS FOR THE REQUESTING PROGRAM (OR ROUTINE).  SIGHTINGS
+# 	CAN BE MADE ON A STAR OR LANDMARK.  WHEN THE CMC ACCEPTS A MARK IT RECORDS AND STORES 5 ANGLES (3 ICDUS AND 2
+#	OCDUS) AND THE TIME OF THE MARK.
+#
+# CALLING SEQUENCE:
+#
+#	R53 IS CALLED AND RETURNS IN INTERPRETIVE CODE.  RETURN IS VIA QPRET.
+#	THERE IS NO ERROR EXIT IN THIS ROUTINE ITSELF.
+#
+# SUBROUTINES CALLED
+#	
+#	SXTMARK
+#	OPTSTALL
+#	GOFLASH
+#
+# ERASABLE INITIALIZATION:
+#
+#	TARGET FLAG -- STAR OR LANDMARK
+#	MARKINDX -- NUMBER OF MARKS WANTED
+#	STARIND -- INDEX TO BESTI OR BESTJ (STAR NUMBER)
+#
+# OUTPUT
+#
+#	MARKSTAT CONTAINS INDEX TO VACANT AREA WEHRE MARK DATA IS STORED
+#	BESTI (INDEXED BY STARIND) CONTAINS STAR NUMBER SIGHTED.
+#
+# DEBRIS
+#
+#	MARKINDX CONTAINS NUMBER OF MARKS DESIRED
+
+		SETLOC	RT53
+		BANK
+		
+		COUNT	14/R53
+		
+R53		STQ	SET		# SET SIGHTING MARK FLAG
+			R53EXIT
+			R53FLAG
+		EXIT
+R53A		CA	MARKINDX	# NUMBER OF MARKS
+		MASK	LOW3
+		TC	BANKCALL
+		CADR	SXTMARK
+		TC	BANKCALL
+		CADR	OPTSTALL
+		TC	CURTAINS
+		INDEX	MARKSTAT
+		CCS	QPRET		# NUMNBER OF MARKS ACTUALLY DONE
+		TCF	R53B
+		TCF	+2		# ZERO
+		TCF	+1		# CCS HOLE
+		CAF	ZERO		# HOUSEKEEP VAC AREA SAVE
+		XCH	MARKSTAT	#	AND MARKSTAT
+# Page 773
+		CCS	A
+		INDEX	A
+		TS	0
+		TCF	R53A
+R53B		TC	CHECKMM
+		MM	22
+		TCF	+2
+		TCF	R53D
+		TC	CHECKMM
+		MM	23
+		TCF	R53C1
+		TCF	R53D
+R53C1		CAF	ZERO
+		TC	BANKCALL
+		CADR	CLEANDSP		
+R53C		CAF	V01N71
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H	# TERM.
+		TCF	R53Z
+		TC	R53C		# RECYCLE
+R53Z		TC	CHKSCODE
+		TC	FALTON
+		TC	R53C
+		CS	HIGH9
+		MASK	STARCODE
+		EXTEND
+		MP	SIGHTSIX
+		XCH	L
+		INDEX	STARIND
+		TS	BESTI
+R53D		TC	INTPRET
+R53OUT		SETGO
+			TERMIFLG	# SET TERMINATE FOR R52
+			R53EXIT
+SIGHTSIX	=	SIX
+V01N71		VN	0171
+
+# ****** KEEP IN SAME BANK AS R51 AND R53 ********
+CHKSCODE	CCS	STARCODE
+		AD	NEG47
+		CCS	A
+		TC	Q		# SC < 0 OR SC > 50
+		TCF	+2		# SC = + OR - 0
+		TCF	+1		# 0 <= SC< 50
+		INDEX	Q		# SC = 50
+		TC	00002
+NEG47		OCT	77730
+
+# Page 774
+# NAME -- S52.2
+# FUNCTION -- COMPUTE GIMBAL ANGLES FOR DESIRED SM AND PRESENT VEHICLE
+# CALL -- CALL S52.2
+# INPUT -- X,Y,ZSMD
+# OUTPUT -- OGC,IGC,MGC,THETAD,+1,+2
+# SUBROUTINES -- CDUTRIG, CALCSMSC, MATMOVE, CALCGA
+
+		SETLOC	S52/2
+		BANK
+		
+		COUNT	13/S52.2
+S52.2		STQ	
+			QMAJ
+		CALL
+			CDUTRIG
+		CALL
+			CALCSMSC
+		AXT,1	SSP
+			18D
+			S1
+			6D
+S52.2A		VLOAD*	VXM
+			XNB 	+18D,1
+			REFSMMAT
+		UNIT
+		STORE	XNB 	+18D,1
+		TIX,1
+			S52.2A
+S52.2.1		AXC,1	AXC,2
+			XSMD
+			XSM
+		CALL
+			MATMOVE
+		CALL
+			CALCGA
+		GOTO
+			QMAJ
+
+# Page 775
+# PROGRAM NAME:  SR52.1				DATE:  DEC 20 1968
+# MOD 1						LOG SEC:  P51-P53
+# BY KEN VINCENT				ASSEMBLY:  SUNDISK REV 40
+#
+# FUNCTION
+#
+# TARG1 AND TARG2 FLAGS ARE LOOKED AT TO DETERMINE IF THE TARGET IS THE
+# LEM, STAR, OR LANDMARK.  IN CASE OF LEM OR LMK, THE PRESENT TIME PLUS
+# 2 SECONDS IS SAVED IN AOPTIME (ALIAS STARAD, +1).  IF THE LEM IS 
+# THE TARGET THEN CONIC UPDATES OF TEH CSM AND LEM ARE MADE TO
+# THE TIME IN AOPTIME.  THE UNIT OF THE DIFFERENCE OF LEM AND CSM
+# POSITION VECTORS BECOMES THE REFERENCE SIGHTING VECTOR USED IN THE
+# COMMON PART OF THE THIS PROGRAM.
+#
+# IN THE CASE OF LANDMARK, THE CSM IS UPDATED CONICALLY.  THE RADIUS
+# VECTOR FOR THE LANDMARK IS OBTAINED FROM LALOTORV.  BOTH OF THESE ARE
+# FOUND FOR THE TIME IN AOPTIME.  THE UNIT OF THE DIFFERENCE BETWEEN
+# THE LANDMARK AND CSM RADIUS VECTORS BECOMES THE REFERENCE SIGHTING
+# VECTOR FOR THE COMMON PART OF THIS ROUTINE.
+#
+# IF A STAR IS THE TARGET, THE PROPER STAR IS OBTAINED FROM THE CATALOG
+# AND THIS VECTOR BECOMES THE REFERENCE SIGHTING VECTOR.
+#
+# THE COMMON PART OF THIS PROGRAM TRANSFORMS THE REFERENCE SIGHTING
+# VECTOR INTO STABLE MEMBER COORDINATES.  IT READS THE IMU-CDUS AND USES
+# THIS DATA IN A CALL TO CALCSXA.  ON RETURN FROM CALCSXA A TEST IS
+# MADE TO SEE IF THE TRUNNION ANGLE IS GREATER THAN  90DEG OR 38DEG.
+# MADE TO SEE IF THE TRUNNION ANGLE IS GREATER THAN 90DEG. OR 50DEG.
+#
+# CALLING SEQUENCE
+#
+# 	L+4	RETURN WHEN SHAFT OR TRUNION NOT WITHIN 5 DEG OF DESIRED
+#	L	TC	BANKCALL
+#	L+1	CADR	SR52.1
+#	L+2	ERROR RETURN	TRUNNION GREATER THAN 90 DEG.
+#	L+3	ERROR RETURN	TRUNNION GREATER THAN 50 DEG
+#	L+4	NORMAL RETURN
+#
+# OUTPUT
+#
+#	SAC:	SINGLE PREC, 2'S COMP, SCALED AT HALF REVS -- SHAFT ANGLE DESIRED.
+#	PAC:	SINGLE PREC, 2'S COMP, SCALED AT EIGHTH REVS -- TRUNNION ANGLE DESIRED.
+#
+# INITIALIZATION
+#
+#	IF TARG1FLG =1 THEN TARGET IS LEM -- NO OTHER INPUT REQUIRED.
+#
+#	IF TARG1FLG =0 AND TARG2FLG =0 THE TARGET IS STAR, STARIND SHOULD
+#	0 OR 1 DENOTING BESTI OR BESTJ RESPECTIVELY AS STAR CODE.  STAR CODES
+#	ARE 6 TIMES STAR NUMBER.
+#
+#	IF TARG1FLG =0 AND TARG2FLG =1 THEN TARGET IS LANDMARK.  SETT ROUTINE
+#	LALOTORV FOR INPUT REQUIREMENTS.  HERE FIXERAD=1 FOR CONSTANT EARTH
+#	RADIUS
+#
+# DEBRIS
+#
+#	WORK AREA
+#	STARAD -- STAR+5 (STAR IS DESIRED LOS IN STABLE MEMBER COORDINATES)
+
+		COUNT*	$$/SR521
+# Page 776
+		SETLOC	SR52/1
+		BANK
+		
+SR52.1		TC	MAKECADR
+		TS	QMIN
+		TC	INTPRET
+		RTB	DAD
+			LOADTIME
+			1.3SECDP
+		STORE	AOPTIME
+		BON	BON
+			TARG1FLG
+			LEM52
+			TARG2FLG
+			LMK52
+		GOTO
+			STAR52
+LEM52		DLOAD
+			AOPTIME
+		STCALL	TDEC1
+			LEMCONIC
+		VLOAD
+			RATT
+		GOTO
+			LMKLMCOM
+LMK52		BON	DLOAD
+			ADVTRK
+			ADVTRACK
+			AOPTIME
+		CALL
+			LALOTORV
+		VLOAD
+			ALPHAV
+LMKLMCOM	STODL	STAR
+			AOPTIME
+		STCALL	TDEC1
+			CSMCONIC
+		VLOAD	VSU
+			STAR
+			RATT
+		UNIT	GOTO
+			COM52
+STAR52		SSP	LXA,1
+			S1
+			0
+			STARIND
+		TIX,1
+			ST52ST
+		VLOAD	GOTO
+			STARSAV2
+# Page 777
+			COM52
+ST52ST		VLOAD
+			STARSAV1
+COM52		MXV	UNIT
+			REFSMMAT
+		STORE	STAR
+		SETPD	CALL
+			0
+			CDUTRIG		# COMPUTES SINES AND COSINES FOR CALCSXA
+		CALL			#	NOW EXPECT TO SEE THE CDU ANGLES.
+			CALCSXA
+		BOFF	EXIT
+			CULTFLAG
+			TRUN38
+		TC	SR52E1
+TRUN38		DLOAD	DSU
+			PAC
+			38TRDEG
+		BPL	DLOAD
+			SR52E22
+			PAC
+		DSU	BPL
+			20DEGSMN
+			SR52E3
+SR52E22		EXIT
+		TC	SR52E2
+SR52E3		EXIT
+		INCR	QMIN
+SR52E2		INCR	QMIN
+SR52E1		CA	QMIN
+		TC	SWCALL
+38TRDEG		2DEC	.66666667	# CORRESPONDS TO 50 DEGS IN TRUNION
+
+1.3SECDP	2DEC	130
+
+20DEGSMN	DEC	-07199
+		DEC	-0
+
+# Page 778
+# THE ADVTRACK ROUTINE IS USED TO COMPUTE AN OPTICS LOS VECTOR TO
+# A POINT ON THE GROUND TRACK 60 DEGREES FORWARD OF THE LOCAL VERTICAL
+# OF AN ADVANCED ORBIT A SPECIFIED NUMBER OF REVOLUTIONS FROM NOW.
+
+		SETLOC	26P50S
+		BANK
+ADVTRACK	SETPD
+			0
+		VLOAD	PUSH		# INITIALIZE FOR RP-TO-R
+			UNITZ		# UZ VEC IN PD 0-5
+		RTB	PUSH		# TIME IN PD 6-7
+			LOADTIME
+		STCALL	AOPTIME		# TIME ALSO IN AOPTIME FOR CSMCONIC
+			RP-TO-R		# GET MOON ROTATION VEC IN REF
+		STODL	STAR
+			AOPTIME		# PICK UP TIME
+		STCALL	TDEC1		# UPDATE STATE TO TIME
+			CSMCONIC
+		VLOAD	VXV
+			VATT
+			RATT
+		UNIT		
+		STOVL	24D		# SAVE -UNIT(VxR) FOR 2ND ROTATION
+			RATT
+		UNIT	VCOMP
+		SETPD	PUSH		# PUSH LOS=-UNIT(RVEC) PD 0-5
+			0
+		EXIT
+		CA	LANDMARK
+		MASK	SEVEN		# GET NUMBER OF ADVANCE PERIODS
+		EXTEND
+		MP	BIT11		# GET N/16
+		XCH	L
+		INDEX	FIXLOC
+		TS	30D		# TEMP STORE N/16
+		TC	INTPRET
+		SLOAD	DMP
+			30D
+			MPERIOD
+		STCALL	AOPTIME		# ROTATE ANG ABOUT UR
+			ROTA
+		VLOAD
+			24D		# PICK UP 2ND ROTATION AXIS
+		STODL	STAR
+			DP1/6
+		DSU
+			AOPTIME		# 2ND RAT ANGLE = 60 - A
+		STCALL	AOPTIME
+			ROTA		# GO ROTATE 2ND TIME
+		VLOAD
+# Page 779
+			0
+		STCALL	STAR		# STORE FINAL LOS IN STAR
+			COM52		# RETURN TO SR52.1
+			
+ROTA		DLOAD	SIN
+			AOPTIME
+		PDVL	VXV		# PUSH 1/2SIN(A) PD 6-7
+			STAR		#	UR VEC
+			0		#	LOS
+		VXSC	VSL2		# 1/2SIN(A)(URXLOS) PD 6-11
+		PDVL	DOT
+			STAR
+			0
+		VXSC	VSL2
+			STAR
+		PDDL	COS		# 1/2(UR . LOS)UR 12-17
+			AOPTIME
+		PDVL	BVSU		# PUSH 1/2COS(A) 18-19
+			12D
+			0
+		VXSC	VSL1		# UP 18-19
+		VAD	VAD		# UP 12-17 UP 6011
+		UNIT	SETPD
+			0
+		PUSH	RVQ
+		
+DP1/6		2DEC	.16666666
+
+MPERIOD		2DEC	.047619		# APPROX LUNAR ROT ANG IN 2HRS x 16
+
+# Page 780
+# NAME -- S52.3
+# FUNCTION --	XSMD= UNIT(YSMD x ZSMD)
+#		YSMD= UNIT(V X R)
+#		ZSMD= UNIT(-R)
+# CALL --	DLOAD	CALL
+#			TALIGN
+#			S52.3
+# INPUT --	TIME OF ALIGNMENT IN MPAC
+# OUTPUT --	X,Y,ZSMD
+# SUBROUTINES -- CSMCONIC
+
+		SETLOC	P50S2
+		BANK
+		
+		COUNT	15/S52.3	
+S52.3		STQ
+			QMAJ
+		STCALL	TDEC1
+			CSMPREC
+		SETPD
+			0
+		VLOAD	VCOMP
+			RATT
+		UNIT
+		STOVL	ZSMD
+			VATT
+		VXV	UNIT
+			RATT
+		STORE	YSMD
+		VXV	UNIT
+			ZSMD
+		STCALL	XSMD
+			QMAJ
+
+# Page 781
+# PROGRAM DESCRIPTION:  R56 -- ALTERNATE LOS SIGHTING MARK ROUTINE
+#
+# FUNCTIONAL DESCRIPTION
+#
+#	TO PERFORM SIGHTING MARKS FOR THE BACK-UP ALIGNMENT PROGRAMS (P53,P54).  THE ASTRONAUT KNOWS THE
+#	COORDINATES (OPTICS) OF THE ALTERNATE LINE OF SIGHT HE MUST USE FOR THIS ROUTINE.  WHEN THE ASTRONAUT KEYS IN
+#	ENTER IN RESPONSE TO THE FLASHING V50 N25 R1-XXXXX THE CMC STORES THE THREE ICDU ANGLES AND TWO ANGLES DISPLAYED
+#	IN N92.
+#
+# CALLING SEQUENCE
+#
+#	CALL
+#		R56
+#
+# SUBROUTINES CALLED
+#
+#	A PORTION OF SXTMARK (VAC.AREA SEARCH)
+#	GOFLASH
+#	GOPERF1
+#
+# ERASABLE INITIALIZATION
+#
+#	STARIND:  INDEX TO STAR NUMBER
+#
+# OUTPUT
+#
+#	MARKSTAT:  INDEX TO VAC.AREA WHERE OUTPUT IS STORED.
+#	BESTI (INDEXED BY STARIND) CONTAINS STAR NUMBER.
+#	ICDU AND OCDU ANGLES IN VAC. AREA AS FOLLOWS:
+#		VAC +2	CDUY
+#		VAC +3	CDUS
+#		VAC +4	CDUZ
+#		VAC +5	CDUT
+#		VAC +6	CDUX
+
+		COUNT*	$$/R56
+		SETLOC	P50S3
+		BANK
+R56		STQ	EXIT
+			R53EXIT
+		CAF	V06N94B
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H	# TERM.
+		TC	R56A		# PROCEED:  ANGLES OK
+		TC	-5		# ENTER:  NEW ANGLES
+R56A		TC	BANKCALL
+		CADR	SXTMARK +2	# INHIBIR EXT VB ACT AND FIND VAC AREA
+		
+		CAF	ZERO
+		TC	BANKCALL
+		CADR	CLEANDSP
+		
+R56A1		CAF	VB53		# DISPLAY V53 REQUESTING ALTERNATE MARK
+		TC	BANKCALL
+# Page 782
+		CADR	GOMARK2
+		TCF	GOTOP00H	# V34:  TERMINATE
+		TCF	R56A1		# V33:  DON'T PROCEED -- JUST ENTER TO MARK
+		TC	INTPRET
+		DLOAD
+			MRKBUF1 +3
+		STODL	SAC
+			MRKBUF1 +5
+		STORE	PAC
+		EXIT
+		INHINT
+		EXTEND
+		DCA	TIME2
+		INDEX	MARKSTAT
+		DXCH	0
+		CA	CDUY		# ENTER:  THIS IS A BACKUP SYSTEM MARK
+		INDEX	MARKSTAT
+		TS	2
+		CA	SAC
+		INDEX	MARKSTAT
+		TS	3
+		CA	CDUZ
+		INDEX	MARKSTAT
+		TS	4
+		CA	PAC
+		INDEX	MARKSTAT
+		TS	5
+		CA	CDUX
+		INDEX	MARKSTAT
+		TS	6
+		RELINT
+		TC	CLEARMRK	# ENABLE EXTENDED VERBS
+		CAF	OCT16
+		TC	BANKCALL
+		CADR	GOPERF1
+		TC	GOTOP00H	# TERM.
+		TCF	R56B		# PROCEED:  MARK COMPLETED
+		TCF	R56A 	+2	# RECYCLE:  DO ANOTHER MARK -- LIKE REJECT.
+R56B		TC	BANKCALL
+		CADR	R53C1
+VB53		VN	05300		# ALTERNATE MARK VERB
+V06N94B		VN	00694
+		SETLOC	P50S
+		BANK
+		
+PLANET		STORE	TSIGHT
+		STQ	CALL
+			QMIN
+			LOCSAM
+		VLOAD
+# Page 783				
+			VEARTH
+		STOVL	0D
+			VSUN
+		STOVL	VEARTH
+			0D
+		STORE 	VSUN
+NOSAM		EXIT
+		CS	HIGH9
+		MASK	STARCODE
+		EXTEND
+		MP	SIGHTSIX
+		XCH	L
+		INDEX	STARIND
+		TS	BESTI
+		CCS	A
+		TCF	NOTPLAN
+		CAF	VNPLANV
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H
+		TC	+2
+		TC	-5
+		TC	INTPRET
+		VLOAD	VXSC
+			STARSAV3
+			1/SQR3
+		UNIT	GOTO
+			CORPLAN			
+NOTPLAN		CS	A
+		AD	DEC227
+		EXTEND
+		BZMF	CALSAM1
+		INDEX	STARIND
+		CA	BESTI
+		INDEX	FIXLOC
+		TS	X1
+		TC	INTPRET
+		VLOAD*	GOTO
+			CATLOG,1
+			CORPLAN
+CALSAM1		TC	INTPRET
+		LXC,1	DLOAD*
+			STARIND
+			BESTI,1
+		LXC,1	VLOAD*
+			MPAC
+			STARAD 	-228D,1
+CORPLAN		VAD	UNIT
+			VEL/C
+		GOTO
+# Page 784		
+			QMIN
+DEC227		DEC	227
+VNPLANV		VN	0688
+1/SQR3		2DEC	.57735021
+
+
diff --git a/P61-P67.s b/P61-P67.s
new file mode 100644
index 0000000..ced25b3
--- /dev/null
+++ b/P61-P67.s
@@ -0,0 +1,1226 @@
+# Copyright:    Public domain.
+# Filename:     P61-P67.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 789-818
+# Contact:      Ron Burkey <info@sandroid.org>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-12 RSB	Adapted from Colossus249 file of the same
+#				name and Comanche 055 page images.
+#		2009-05-20 RSB	Corrections:  V06N68 -> V06N74, added missing
+#				definition of V06N74, in several
+#				interpreter operands fixed stuff like
+#				N-M,1 to N -M,1
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 789
+# PROGRAM:	P61
+# MOD NO.:	0	MAR. 13, 1967
+# MOD BY:	R. HIRSCHKOP
+# MOD NO: 1	MOD BY:  RR BAIRNSFATHER	DATE: 22 JUN 67		RESTARTS
+# MOD NO: 2	MOD BY:  RR BAIRNSFATHER	DATE: 17 JAN 68		COLOSSUS GSOP CHANGES
+# MOD NO: 3	MOD BY:  RR BAIRNSFATHER	DATE:  8 MAY 68		DELETE CMSM MANEUVER (PCR 50)
+# FUNCTION:	TO CALCULATE AND DISPLAY EMS INITIALIZATION DATA
+# CALLING SEQUENCE:  BY V37
+# EXIT:		TO P62
+# SUBROUTINE CALLS:  S61.1, S61.3, GOFLASH, FLAGUP, R02BOTH
+# ERASABLE INITIALIZATION:
+#	EMSALT (-29) M		.05G ALTITUDE ABOVE FISCHER ELLIPSOID	PAD LOADED.
+#	ALFAPAD /180		HYPERSONIC CM TRIM ANGLE OF ATTACK	PAD LOADED
+# OUTPUT:	THE FOLLOWING REGISTERS ARE WRITTEN IN FOR USE BY DISPLAYS
+#		GMAX	100 GMAX (-14) G,S	MAXIMUM ACCELERATION
+#		VPRED	(-7) M/CS		PREDICTED VELOCITY AT 400K FT
+#		GAMMAEI	(GAMMA/360		PREDICTED GAMMA    AT 400K FT
+#		RTGO	THETAH/360		RANGE ANGLE TO SPLASH FROM EMSALT	EMSALT IS PAD LOADED
+#		VIO	(-7) M/CS		INERTIAL VELOCITY AT	   EMSALT	EMSALT IS PAD LOADED
+#		TTE	(-28) CS		TIME TO			   EMSALT	EMSALT IS PAD LOADED
+#		LAT(SPL) /360			TARGET LOCATION				LEFT BY DSKY
+#		LNG(SPL) /360			TARGET LOCATION				LEFT BY DSKY
+#		HEADSUP	(0)			+1 = LIFT DOWN, -1 = LIFT UP		LEFT BY DSKY
+# DEBRIS:	SEE SUBROUTINES.
+
+		BANK	26
+		SETLOC	P60S
+		BANK
+		
+		EBANK=	AOG
+		
+		COUNT*	$$/P61
+		
+P61		CA	BIT14		# EXTENDED VERB SHOULD BE FREE THIS CLOSE
+		TS	EXTVBACT	# TO V37
+					# LOCK OUT EXTENDED VERBS SO CAN USE TFF
+					# ROUTINES.  EXT VERB ERASE IS USED
+					
+		CS	ONE		# REMOVE IF HEADSUP EVER ON UPLINK DATA
+		TS	HEADSUP		# PRELOAD
+		
+		TC	S61.1		# CHECK STATE VECTOR AND IMU ORIENTATION
+					# RV 50GENRET. DOES PHASCHNG, GROUP 4.
+					
+		CA	V06N61		# LAT(SPL)	LNG(SPL)	HEADSUP
+					# XXX.XX DEG	XXX.XX DEG	XXXXX.
+		TC	BANKCALL
+		CADR	GOFLASHR
+		TC	GOTOP00H
+# Page 790
+		TC	P61.4
+		TC	-5
+		
+P61.3		TC	PHASCHNG
+		OCT	00014
+		
+		TC	ENDOFJOB
+		
+P61.4		ZL
+		CCS	HEADSUP		# C(HEADSUP)= +1/-1
+		CA	BIT14		# IF HEADSUP POS,ROLLC =180 DEG.(LIFT DWN)
+		NOOP			# IF HEADSUP NEG,ROLLC =0 (LIFT UP)
+		DXCH	ROLLC		# ROLLC IS USED BY S62.3: GIM ANG AT .05G
+		
+		TC	INTPRET
+NEWRNVN		DLOAD
+			PIPTIME		# SAVE TIME OF RN,VN TO DETERMINE IF AN
+		STCALL	MM		# UPDATE HAS OCCURRED.
+			STARTEN1	# INITIALIZE
+		VLOAD
+			RN
+		STORE	RONE
+		UNIT
+		STOVL	URONE
+			VN
+		STORE	VONE
+		VXV	UNIT
+			URONE
+		STORE	UNI
+DUMPP61		DLOAD	DSU
+			MM		# INITIAL VALUE OF PIPTIME
+			PIPTIME
+		BMN	CALRB
+			NEWRNVN		# UPDATED... GO TRY AGAIN
+			S61.2		# GET DISPLAY DATA FOR N60 AND N63
+					# AND RETURN IN BASIC, BELOW.
+P61.1		TC	CLEARMRK
+		CA	V06N60		# GMAX		VPRED		GAMMAEI
+					# XXX.XX G	XXXXX. FPS	XXX.XX DEG
+		TC	BANKCALL
+		CADR	GOFLASH
+		
+		TC	GOTOP00H
+		TC	P61.2		# PROCEED
+		TC	-5
+		
+P61.2		TC	INTPRET		# CORRECT TTE FOR TIME LAPSE DURING
+					# ABOVE DISPLAY.
+		RTB	DSU
+			LOADTIME	# CURRENT TIME.
+# Page 791
+			MM		# PIPTIME FOR RONE & VONE.
+		DAD
+			TTE1		# NEGATIVE OF FREE FALL TIME.
+		STORE	TTE		# DECREMENTED
+		
+		EXIT
+		
+		CA	V06N63		# RTGO		VIO		TTE
+					# XXXX.X NM	XXXXX. FPS	XXBXX M,S
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	GOTOP00H
+		TC	+2
+		TC	P61.2		# REDO
+		
+#		.... THEN FALL INTO P62
+# Page 792
+
+# PROGRAM:	P62
+# MOD NO.:	0	MAR. 13, 1967
+# MOD BY:	R. HIRSCHKOP
+# MOD NO:  1	MOD BY:  RR BAIRNSFATHER	DATE: 21 MAR 67
+# MOD NO:  2	MOD BY:  RR BAIRNSFATHER	DATE: 22 JUN 67		RESTARTS.
+# MOD NO:  3	MOD BY:  RR BAIRNSFATHER	DATE: 17 JAN 68		COLOSSUS GSOP CHANGES.
+# MOD NO:  4	MOD BY:  RR BAIRNSFATHER	DATE:  8 MAY 68		MOVE START OF DESIRED GIMBAL CALC.
+# FUNCTION:	1) TO NOTIFY CREW WHEN GNC SYSTEM IS PREPARED FOR CM/SM SEPARATION.
+#		2) TO ORIENT THE CM TO THE CORRECT ATTITUDE FOR ATMOSPHERIC ENTRY.
+# CALLING SEQUENCE:  BY V37 OR DIRECTLY FROM P61
+# EXIT:		TO P63
+# ERASABLE INITIALIZATION:	
+#	ALFAPAD					 	LEFT BY PAD LOAD
+#	LADPAD						LEFT BY PAD LOAD
+#	LODPAD						LEFT BY PAD LOAD
+#	LAT(SPL)	(MAY BE CHANGED BELOW)		LEFT BY DSKY, VIA P61
+#	LNG(SPL)	(MAY BE CHANGED BELOW)		LEFT BY DSKY, VIA P61
+#	HEADSUP		(MAY BE CHANGED BELOW)		LEFT BY DSKY, VIA P61
+# SUBROUTINE CALLS:  NEWMODEX, S61.1, CM/DAPIC, CM/DAPON, R02BOTH, GOPERF1, GOFLASH, GODSPR.
+
+		COUNT*	$$/P62
+		
+		TC	NEWMODEX		# MODE CHANGE IF CAME FROM P61.
+		MM	62			# MODE CHANGE AUTOMATIC VIA V 37.
+		CA	ONE
+		TS	DNLSTCOD
+		
+P62		TC	S61.1			# CHECK STATE VECTOR AND IMU ORIENTATION.
+
+		TC	INTPRET
+		SSP	RTB
+			POSEXIT
+			P62.3			# CALCULATE DESIRED .05G GIMBAL ANGLES.
+						# WITHOUT DISPLAY.
+			CM/DAPIC		# START CM/POSE AND BODY RATE CALC
+			
+						# DOES 2PHSCHNG, OCT 40116, OCT 05024, OCT 13000.
+						# CM/DAPIC SETS EBANK = EBAOG
+						# AND RETURNS IN BASIC TO P62.2.				
+P62.2		EXTEND
+		DCA	POSECADR		# CONTINUE WITH CM/POSE AFTER AV G.
+		DXCH	AVEGEXIT
+		
+		CAF	OCT41			# REQUEST SEPARATION
+		TC	BANKCALL
+		CADR	GOPERF1R
+		TC	GOTOP00H
+		TC	+3			# PROCEED
+# Page 793
+						# NOTE:  NODOFLAG WILL BE SET IN CM/DAPON. ***
+		TC	-5			# ENTER
+		TC	P61.3			# FOR PHASCHNG AND ENDOFJOB
+		
+	+3	TC	POSTJUMP
+		CADR	CM/DAPON		# DISABLE RCS DAP, ENABLE ENTRY DAP AND
+						# DO ATTITUDE HOLD.
+						
+						# WILL IDLE UNTIL CM/POSE DOES ONE UPDATE.
+						# CM/DAPON DOES NO PHASCHNG.
+						
+P62.1		CA	V06N61			# LAT(SPL)	LNG(SPL)	HEADSUP
+						# XXX.XX DEG	XXX.XX DEG	0000X.
+						
+						# TERMINATE ATTITUDE HOLD.  SET UP COMMANDS:
+						# ROLLC, ALFACOM, BETACOM.  BEGIN MANEUVER TO
+						# ENTRY ATTITUDE.
+						
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	-3
+		TC	+2
+		TC	-5
+		
+		TC	PHASCHNG
+		OCT	04024			# USE ENTRYVN FOR DISPLAY BELOW.
+						# EBANK WAS SET IN CM/DAPON TO EBAOG
+						
+		CCS	HEADSUP			# C(HEADSUP) = +/- 1
+		CA	BIT14			# IF HEADSUP POS, ROLLC=180 DEG (LIFT DWN)
+		NOOP				# IF HEADSUP NEG, ROLLC=0 DEG (LIFT UP)
+		TS	ROLLC			
+		CA	ALFAPAD			# NOMINAL ALFATRIM PAD LOADED, NEG. NO.
+		ZL
+		DXCH	ALFACOM			# SET ALFACOM = ALFA TRIM, BETACOM=0
+		
+		CA	ONE			# PERMITS EXDAP2 TO CHANGE FLAG TO +0
+		TS	P63FLAG			# AS INDICATOR.  STARTS UP P63.
+		
+		CA	V06N22			# SET UP DISPLAY FOR CDU DESIRED VALUES
+		TS	ENTRYVN			# FROM ENTRY ATTITUDE CALC, THAT IS
+						# ALREADY GOING.
+		TC	UPFLAG			# TURN ON ENTRY DISPLAY
+		ADRES	ENTRYDSP		# ENTRYDSP = 92D BIT 13 FLAG 6
+SKIP
+# Page 794
+		CS	CMDAPMOD		# GO DIRECTLY TO P63 IF BODY ATTITUDE
+		MASK	ONE			# IS SUCH THAT THE DELAY TASK: WAKEP62
+		EXTEND				# WILL BE OMITTED.
+		BZF	P63.1			# DISABLE GRP 4, GO TO ENDOFJOB.
+						# (I.E., CONTINUE IF CMDAPMOD = -1, OR +0)
+		TC	P63
+		
+						# PUT JOB TO SLEEP UNTIL VEHICLE MANEUVER HAS
+						# REDUCED ALFA TO +/-45 DEG. CONSIDER REMAINING
+						# 65 DEG (25 DEG IF ALFA NEG) TO ALFA TRIM TO
+						# OCCUR AT 3 DEG/SEC, AND TERMINATE P62 AT THAT
+						# TIME.
+						
+						# TASK WAKEP62 IS CALLED FROM ENTRY DAP.
+WAKEP62		CA	PRIO13
+		TC	NOVAC
+		EBANK=	AOG
+		2CADR	P63
+		
+		TC	TASKOVER
+		
+						# EACH 2 SEC, CALCULATE GIMBAL ANGLES FOR ENTRY CON-
+						# DITIONS THAT WILL HOLD IF REORIENTATION WERE MADE
+						# AT PRESENT RN, VN.  COME HERE FROM CM/POSE AND ALSO
+						# IN KEPLER PHASE OF ENTRY.
+						
+P62.3		SSP	GOTO			# SET RETURN ADDRESS SO THAT ROUTINE
+			QPRET			# GOES DIRECTLY TO ENTRY GUIDANCE EXIT
+			ENDEXIT			# THAT DOES ENTRY DISPLAY, GRP 5.
+			S62.3			# PUT DESIRED CDU VALUES IN CPHI'S FOR
+						# N22 DISPLAY.
+
+# Page 795
+#	P63
+# PROGRAM:	P63
+# MOD NO:	0	MAR. 13, 1967
+# MOD BY:	R. HIRSCHKOP
+# MOD NO: 1	MOD BY: RR BAIRNSFATHER		DATE: 22 JUN 67		RESTARTS
+# MOD NO: 2	MOD BY: RR BAIRNSFATHER		DATE: 14 JUL 67		REVISED RESTARTS
+# FUNCTION:	1) TO INITIALIZE THE ENTRY EQUATIONS.
+#		2) TO CONTINUE TO HOLD THE CM TO THE CORRECT ATTITUDE WITH RESPECT TO THE ATMOSPHERE FOR
+#		   THE ONSET OF ENTRY DECELERATION.  ROLL ANGLE IS LIFT UP/DOWN AS SPECIFIED BY HEADSUP.
+#		3) TO SENSE .05G.
+# CALLING SEQUENCE:  DIRECTLY FROM P62
+# EXIT:		TO ENDOFJOB
+# SUBROUTINE CALLS:  NEWMODEX, GODSPR
+
+		COUNT*	$$/P63
+		
+P63		TC	NEWMODEX
+		MM	63
+		
+						# ARRIVE WITH EBANK = AOG.
+						
+		CA	ENTCADR			# CONTINUE AT STARTENT AFTER CM/POSE.
+		
+						# AT END OF STATEMENT, CHANGE ADDRESS IN GOTOADDR
+						# TO CONTINUE AT SCALEPOP THEREAFTER.
+						
+		TS	POSEXIT
+		
+		CA	V06N64			# G		VI		R TO SPLSH
+						# XXX.XX G	XXXX. FPS	XXXX.X NM
+		TS	ENTRYVN			# FOR DISPLAY CALL IN OVERNOUT
+		
+		CS	ONE			# IN CASE FLAG IS LEFT AT +1 BY DAP.  THE
+		TS	P63FLAG			# -1 ASSURES THAT EXO-ATM DAP WILL NOT
+						# CALL P63 OUT OF SEQUENCE IN P66.
+						
+		TC	PHASCHNG		# THIS IS REQUIRED TO PRESERVE CLEANDSP
+		OCT	00004			# RETURN IN EVENT OF AN EXTENDED VERB
+		
+		TC	BANKCALL		# FLUSH 'N22' DISPLAY, IF ON, (OMIT
+		CADR	CLEANDSP		# DISPLAY DURING 'STARTENT' PASS.)
+						
+P63.1		TC	PHASCHNG
+		OCT	00004			# DISABLE.  DISPLAY RESTARTED VIA ENTRY.
+		
+		TC	ENDOFJOB
+		
+V06N60		VN	0660
+V06N61		VN	0661
+V06N63		VN	0663
+# Page 796
+V06N64		VN	0664
+ENTCADR		CADR	STARTENT
+
+		EBANK=	RTINIT			# TO CARRY OVER INTO ENTRY STEERING.
+POSECADR	2CADR	CM/POSE
+
+# Page 797
+# PROGRAM:	P64
+# MOD NO:	1	SEPT. 19, 1967
+# MOD BY:	R. HIRSCHKOP
+# MOD NO: 2	MOD BY: RR BAIRNSFATHER		DATE: 8 MAY 68		REVISED COMMENTS FOR COLOSSUS
+# FUNCTION:	1.  TO START ENTRY GUIDANCE AT .05G SELECTING ROLL ATTITUDE, CONSTANT DRAG LEVEL, AND
+#		    DRAG THRESHHOLD, KA, WHICH ARE KEYED TO THE .05G POINT.
+#		2.  SELECT FINAL PHASE P67 IF V < 27000 FPS WHEN .2G OCCURS.
+#		3.  ITERATE FOR UP-CONTROL SOLUTION P65 IF V > 27000 FPS AND IF ALTITUDE RATE AND DRAG
+#		    LEVEL CONDITIONS ARE SATISFIED.  ENTER P65 WHEN CONSTANT DRAG CONTROLLER HAS BROUGHT RANGE
+#		    AS PREDICTED TO WITHIN 25 NM OF DESIRED RANGE.
+#		4.  SELECT FINAL PHASE  P67  IF NO UP-CONTROL SOLUTION EXISTS WITH VL > 18000 FPS.
+# CALLING SEQUENCE:  BY RTB FROM REENTRY CONTROL
+# EXIT:		BACK TO REENTRY CONTROL.
+# SUBROUTINE CALLS:  NEWMODEX
+
+		BANK	25
+		SETLOC	P60S1
+		BANK
+		
+# THIS DISPLAY IS CALLED EACH PASS THROUGH STEERING.  RESTART PROTECTION IS VIA STEERING.
+
+		COUNT*	$$/P64
+		
+P64		TC	NEWMODEX		# ENTER VIA RTB WHEN .05G IS EXCEEDED.
+		MM	64
+		CA	V06N74			# ROLLC		VI		D
+						# XXX.XX DEG	XXXXX. FPS	XXX.XX G
+		TS	ENTRYVN			# DISPLAY VIA OVERNOUT.
+		
+		TC	DANZIG			# ... AND CONTINUE IN INITROLL ...
+
+V06N74		VN	0674
+
+# Page 798		
+# PROGRAM:	P65
+# MOD NO:  0	MOD BY:  RR BAIRNSFATHER	DATE:  17 JAN 68	COLOSSUS GSOP ADDITION.
+# FUNCTION:	TO CONTINUE ENTRY GUIDANCE, USING THE UP-CONTROL PHASE TO STEER TO A CONTROLLED EXIT
+#		CONDITION.  THIS PHASE TERMINATES  A) IF D < Q7 FPSS, GOTO TO P66.
+#						   B) IF RDOT NEG, AND IF V < VL +500 FPS, GO TO P67.
+# CALLING SEQUENCE:  BY RTB FROM REENTRY CONTROL
+# EXIT:		BACK TO REENTRY CONTROL, OR TO ENDOFJOB.
+# SUBROUTINE CALLS:  NEWMODEX
+
+		COUNT*	$$/P65
+		
+P65		TC	NEWMODEX		# ENTER VIA RTB WHEN RANGE < 25 N M OF
+		MM	65			# TARGET.
+		
+		CA	PRIO13
+		TC	NOVAC
+		EBANK=	ENTRYVN
+		2CADR	P65.1
+		
+		TC	2PHSCHNG		# 2 PHASE CHG REQUIRED TO PREVENT RE-
+		OCT	00554			# STARTING FLASHING DISPLAY TWICE.
+		OCT	10035			# 4.55 SPOT AND SERVICER, HERE.
+		TC	INTPRET
+		SSP	RTB
+			GOTOADDR		# CHANGE ENTRY MODE TO UPCONTRL.
+			UPCONTRL
+			REFAZE10		# GO HERE TO REESTABLISH ENTRY SEQUENCER.
+						# AND CONTINUE AT UPCONTRL...
+						
+P65.1		TC	DOWNFLAG
+		ADRES	ENTRYDSP		# ENTRYDSP = 92D BIT 13 FLAG 6
+		
+		CA	V16N69			# ROLLC		DL (Q7)		VL
+		TC	BANKCALL		# XXX.XX DEG	XXX.XX G	XXXXX. FPS
+		CADR	GOFLASHR
+		TC	-3			# NODOFLAG IS SET ...
+		TC	+3
+		TC	-5
+		TC	P61.3			# EST. GRP 4 FOR DISPLAY AND DO ENDOFJOB
+						# IF PROCEED, CONTINUE
+		TC	UPFLAG
+		ADRES	ENTRYDSP		# ENTRYDSP = 92D BIT 13 FLAG 6
+		
+		TC	P63.1			# DISABLE GRP 4, START UP ENTRY DISPLAY
+						# N06V68 VIA OVERNOUT, AS USED IN P64
+V16N69		VN	1669
+		
+# Page 799
+# PROGRAM:	P66
+# MOD NO: 0	MOD BY: RR BAIRNSFATHER		DATE: 17 JAN 68		COLOSSUS GSOP ADDITIONS
+# FUNCTION:	KEEP CM ATTITUDE IN TRIM TO THE RELATIVE VELOCITY VECTOR.  ENTRY GUIDANCE STOPS GENERATING
+#		ROLL COMMANDS UNTIL DRAG BUILDS UP TO Q7+0.5 FPSS.
+# CALLING SEQUENCE:  VIA RTB FROM REENTRY CONTROL.
+# EXIT:		BACK TO REENTRY CONTROL.
+# SUBROUTINE CALLS:  NEWMODEX
+
+		COUNT*	$$/P66
+		
+P66		TC	NEWMODEX		# ENTER VIA RTB WHEN D < Q7 FPSS
+		MM	66
+		
+		CA	V06N22			# OGA		IGA		MGA
+						# XXX.XX DEG	XXX.XX DEG	XXX.XX DEG
+		TC	P66END			# IN CASE CAME FROM P65, GO TO DISABLE GRP 4,
+						# AND SET ENTRYDSP TO DO DISPLAY VIA
+						# OVERNOUT.
+						
+						# ... AND CONTINUE AT KEP2 
+						
+# Page 800
+# PROGRAM:	P67
+# MOD NO:	0	MAR. 16, 1967
+# MOD BY:	R. HIRSCHKOP
+# FUNCTION:	TO TERMINATE STEERING WHEN THE CM VELOCITY WRT EARTH = 1000 FT/SEC
+# CALLING SEQUENCE:
+# EXIT:		TO P00H
+# SUBROUTINE CALLS:  GOFLASH
+
+# THIS DISPLAY IS CALLED EACH PASS THROUGH STEERING.  RESTART PROTECTION IS VIA STEERING.
+
+		COUNT*	$$/P67
+		
+P67		TC	NEWMODEX		# ENTER VIA RTB
+		MM	67
+		CA	V06N66			# ROLLC		XRNGERR		DNRNGERR
+						# XXX.XX DEG	XXXX.X NM	XXXX.X NM
+P66END		TS	ENTRYVN			# DISPLAY VIA OVERNOUT.
+
+		TC	UPFLAG			# (IN CASE CAME FROM P65.  ENTRY DISPLAY
+		ADRES	ENTRYDSP		# WILL FLUSH FLASHING DISP.  IF STILL ON)
+						# BIT 13 FLAG 6
+KILLGRP4	TC	PHASCHNG		# DISABLE GRP4, IN CASE CAME FROM HUNTEST.
+		OCT	00004			# (COME TO KILLGRP4 VIA RTB, RET TO CALLER)
+		
+		TC	DANZIG			# ... AND CONTINUE AT PREDICT3 ...
+		
+V06N66		VN	0666
+
+		BANK	26
+		SETLOC	P60S2
+		BANK
+		
+P67.1		CA	V16N67			# RTOGO		LAT		LONG
+						# XXXX.X NM	XXX.XX DEG	XXX.XX DEG
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	+3			# EFFECTIVE GOTOP00H
+		TC	+2
+		TC	P67.1			# REDO
+		
+		CS	THREE			# TURN OFF ENTRY DAP
+		INHINT
+		MASK	CM/FLAGS		# CM/DSTBY, GAMDIFSW
+		TS	CM/FLAGS
+		RELINT
+		EXTEND
+		DCA	SERVCAD2
+		
+# Page 801
+		DXCH	AVEGEXIT
+		
+		TCF	GOTOP00H
+		
+# Page 802
+P67.2		VLOAD	CLEAR			# CALC PRESENT LAT, LONG, ALT.
+			RN
+			ERADFLAG		# USE PAD RAD FOR ALT. (NOT SEEN ANYWAY)
+		STODL	ALPHAV
+			PIPTIME			# USE TIME OF RN
+		CLEAR	CALL
+			LUNAFLAG
+			LAT-LONG
+P67.3		RTB				# ENTRY EXIT THAT OMITS DISPLAY.
+			SERVNOUT
+			
+V16N67		VN	1667
+OCT41		=	33DEC
+SERVCAD2	=	SERVCAD1
+
+# Page 803
+# SUBROUTINE NAME:	S61.1	
+# MOD NO:	0					DATE:		21 FEB 67
+# MOD BY:	RR BAIRNSFATHER				LOG SECTION:	P61-P67
+# MOD NO:	1	MOD BY:	RR BAIRNSFATHER		DATE:		22 JUN 67	RESTARTS.
+#
+# FUNCTIONAL DESCRIPTION:	CALLED BY BOTH P61 AND P62
+#	FIRST, TEST TO SEE IF  AVERAGEG  IS ON.  IF NOT, UPDATE THE STATE VECTOR TO PRESENT TIME + TOLERANCE
+#	AND TURN ON  AVERAGEG  AT THAT TIME, AND CONTINUE.  OTHERWISE CONTINUE:  SEE IF IMU Y AXIS IS
+#	WITHIN 30 DEG OF VAR.  IF YES, EXIT SUBROUTINE S61.1.  IF SO, SEE IF -Y AXIS OF IMU IS WITHIN
+#	30 DEG OF VAR.	IF YES, DISPLAY ALARM:	01427	IMU REVERSED.
+#			IF NO, DISPLAY ALARM:	01426	IMU UNSATISFACTORY.
+#	IN EITHER OF THESE LAST 2 CASES, WAIT 10 SEC AND THEN EXIT SUBROUTINE S61.1.
+#
+# REMARK:	THERE WILL BE A SHORT 10 SEC DELAY IF AN ALARM EXIT IS TAKEN.  THE DELAY FOR INTEGRATION IS
+#		AS SHORT AS CAN BE MADE, BUT IS ARBITRARY SINCE IT DEPENDS ON THE AGE OF THE STATE VECTOR.
+#
+# CALLING SEQUENCE:	CALL
+#				S61.1
+#
+#			C(MPAC) UNSPECIFIED
+#			PUSHLOC UNSPECIFIED
+#
+# SUBROUTINES CALLED: 	LOADTIME, CSMPREC, TPAGTREE,
+#			WAITLIST, JOBSLEEP, JOBWAKE, PREREAD, ALARM, GODSPR, BANKCALL, DELAYJOB
+#
+# NORMAL EXIT MODES:	RVQ
+#
+# ALARMS:	01426	IMU UNSATISFACTORY
+#		01427	IMU REVERSED
+#
+# OUTPUT:	POSSIBLE ALARMS
+#		POSSIBLY TDEC1, RATT, VATT, RN, VN
+#
+# ERASABLE INITIALIZATION REQUIRED:
+#	AVEGFLAG		AVERAGEG ON OR OFF				LEFT BY SERVICER
+#	PIPTIME   (-28) CS	TIME OF PIPA UPDATE				LEFT BY READACCS
+#	RN        (-29) M	STATE VECTOR					LEFT BY AVERAGEG
+#	VN	  (-7) M/CS	STATE VECTOR					LEFT BY AVERAGEG
+#	REFSMMAT  (-1)		.5 REF TO SM MATRIX				LEFT BY LAST IMU ALIGNMENT
+#
+# DEBRIS:	QPRET
+#		POSSIBLY PIPTIME1, RATT, VATT, TDEC1, RN1, VN1, QTEMP, X1	IF UPDATED
+#		PUSH LIST LOCS USED BY CSMPREC
+
+		EBANK=	AOG		# FOR 60GENRET, S61DT
+		BANK	26
+		SETLOC	P60S3
+		BANK
+		
+		COUNT*	$$/S61.1
+		
+S61.1		EXTEND
+		QXCH	60GENRET	# SAVE RET ADDR IN EB 6
+		TC	BANKCALL
+		CADR	R02BOTH
+		TC	INTPRET
+# Page 804
+		BON	CALRB
+			AVEGFLAG	# IS AVERAGEG ON
+			S61.1A		# YES
+			MIDTOAV2	# GET FUTURE STATE VECTOR SOON AS CAN
+			
+		CA	MPAC +1		# RETURN INHINTED ***
+		TS	S61DT		# FOR RESTART.
+		TC	WAITLIST
+		EBANK=	DVCNTR
+		2CADR	S61.1C
+		
+		TC	PHASCHNG
+		OCT	40434
+		TC	ENDOFJOB
+		
+S61.1C		CA	PRIO13
+		TC	FINDVAC
+		EBANK=	AOG
+		2CADR	S61.1A 	-1
+		
+		EXTEND
+		DCA	SERVCAD1	# HE WHO START AVERAGEG MUST SERVICE
+		DXCH	AVEGEXIT	# THE EXIT.
+		
+		TC	2PHSCHNG
+		OCT	00454
+		OCT	00415
+		
+		CA	EBENTRY		# SET EB= 7 FOR PREREAD.
+		TS	EBANK
+		
+		TC	POSTJUMP
+		CADR	PREREAD		# PREREAD DOES TC TASKOVER.
+		
+		TC	INTPRET
+S61.1A		BOVB	VLOAD
+			TCDANZIG	# TURN OFF OVFIND, IF ON
+			VN		# VN	(-7) M/CS
+		VXV	MXV
+			RN		# RN	(-29) M
+			REFSMMAT	# .5 UNIT MATRIX
+		UNIT	DLOAD
+			MPAC +3		# GET COS(THETA)/2
+		BMN	DAD
+			S61.1B		# DO TEST ON -YSM
+			C(30)LIM	# = 1.0 -.5 COS(30)
+		BOVB	RTB
+			RETRN1
+			RETRN3
+# Page 805
+S61.1B		DCOMP	DAD
+			C(30)LIM	# = 1.0 - .5 COS(30)
+		BOVB	EXIT
+			RETRN2
+			
+RETRN3		TC	ALARM
+		OCT	01426		# IMU UNSATISFACTORY
+		TC	RETRN2 +2
+		
+RETRN2		TC	ALARM
+		OCT	01427		# IMU REVERSED
+		
+	+2	CAF	V05N09
+		TC	BANKCALL
+		CADR	GODSPR		# DO DISPLAY
+		CA	10SECS
+		TC	BANKCALL
+		CADR	DELAYJOB
+		
+RETRN1		TC	60GENRET
+
+		EBANK=	DVCNTR
+SERVCAD1	2CADR	SERVEXIT
+
+C(30)LIM	2DEC	.566985		# = 1.0 - .5 COS(30)
+
+10SECS		DEC	1000		# 1000 CS
+60SECDP		2DEC	6000 B-28	# 6000 CS
+
+# Page 806
+# PROGRAM NAME:		S61.2			DATE:		14 FEB 67
+# MOD NO:  	1				LOG SECTION:	P61-P67
+# MOD BY:	NORTH / BAIRNSFATHER
+# MOD NO: 2	MOD BY: NORTH/BAIRNSFATHER	DATE: 11 MAY 67		ADD 2ND ITER FOR ERAD AT 400K FT.
+# MOD NO: 3	MOD BY: RR BAIRNSFATHER		DATE: 21 NOV 67		VARIABLE MU ADDED.
+# MOD NO: 4	MOD BY: RR BAIRNSFATHER		DATE: 21 MAR 68		DIFFERENT EARTH/MOON SCALES IN TFF'S
+#
+# FUNCTIONAL DESCRIPTION:  CALLED IN P61.  PROVIDES DISPLAYS FOR NOUNS  N60  AND  N63 .
+#	PROGRAM CALCULATES ENTRY DISPLAY OF MAXIMUM ACCELERATION EXPECTED  (GMAX)  AND ALSO THE EXPECTED
+#	INERTIAL VELOCITY (VPRED) AND ENTRY ANGLE  (GAMMAEI)  THAT WILL OBTAIN AT 400K FT ABOVE THE FISCHER
+#	ELLIPSOID.  PROGRAM ALSO CALCULATES A SECOND DISPLAY RELATIVE TO THE  EMSALT  ABOVE FISCHER ELLIPSOID
+#	AND CONSISTS OF RANGE TO SPLASH FOM NOW  (RTGO) , PREDICTED INERTIAL VELOCITY  (VIO) , AND THE TIME TO
+#	GO FROM NOW  (TTE) .
+#
+# CALLING SEQUENCE:	CALL
+#				S61.2
+#			C(MPAC) UNSPECIFIED
+#			PUSHLOC WILL BE SET TO ZERO.
+#
+# SUBROUTINES CALLED:	TFFCONIC, CALCTFF, TFF/TRIG, FISHCALC, GETERAD, VGAMCALC
+#
+# NORMAL EXIT MODES:	RTB, P61.1
+#
+# ALARMS:  	NONE
+#
+# OUTPUT:	THE FOLLOWING REGISTERS ARE WRITTEN IN FOR USE BY DISPLAYS
+#		GMAX	100 GMAX (-14) G,S	MAXIMUM ACCELERATION
+#		VPRED	(-7) M/CS		PREDICTED VELOCITY AT 400K FT
+#		GAMMAEI	GAMMA/360		PREDICTED GAMMA    AT 400K FT
+#						FOR TM, DP(GAMMAEI) = (GAMMAEI, RTGO) / 360
+#		RTGO	THETAH/360		RANGE ANGLE TO SPLASH FROM EMSALT	EMSALT IS PAD LOADED.
+#		VIO	(-7) M/CS		INTERTIAL VELOCITY AT      EMSALT	EMSALT IS PAD LOADED.
+#		TTE	(-28) CS		TIME TO                    EMSALT	EMSALT IS PAD LOADED.
+#		PUSHLOC	= 0
+#		CONIC PARAMETERS STORED IN VAC AREA (SEE TFF SUBROUTINES)
+#
+# ERASABLE INITIALIZATION REQUIRED:
+#		RONE	(-29) M			STATE VECTOR				LEFT BY USER
+#		VONE	(-7) M/CS		STATE VECTOR				LEFT BY USER
+#		URONE	UR/2								LEFT BY USER
+#		UNI	(-1)			UNIT NORMAL V*R				LEFT BY ENTRY / P61
+#		THETAH	THETAH/360		RANGE ANGLE				LEFT BY ENTRY / P61
+#		UNITW	(0)			UNIT POLAR VECTOR			LEFT BY PAD LOAD
+#		EMSALT	(-29) M			EMS INTERFACE ALTITUDE			LEFT BY PAD LOAD
+#						ORBITAL REENTRY: 284843 FT., LUNAR REENTRY: 297431 FT.
+#
+# DEBRIS:	QPRET,
+#		ALL PDL LOCATIONS ABOVE 12D, INCLUDING X1,X2,S1,S2
+#		ALSO PDL+0 ... PDL+5, WHERE INITIAL PUSHLOC = PDL
+
+# Page 807
+# THE FOLLOWING PUSH LIST LOCATIONS HAVE BEEN RESERVED FOR TFF ROUTINES AND ARE REPEATED HERE FOR CONVENIENCE.
+# OF COURSE FOR S61.2 USAGE, EARTH ORIGIN SCALING IS USED.
+#
+#				BELOW	E:  IS USED FOR EARTH ORIGIN SCALE
+#					M:  IS USED FOR MOON ORIGIN SCALE
+#
+#	RTERM	= 	18D		TERMINAL RADIUS M	E:  (-29)	M:  (-27)
+#	NRTERM	=	16D		TERMINAL RADIUS M	E:  (-29+NR)
+#								M:  (-27+NR)
+#	RMAG1	=	12D		PRESENT RADIUS M	E:  (-29)	M:  (-27)
+#	NRMAG	=	32D		PRESENT RADIUS M	E:  (-29+NR)
+#								M:  (-27+NR)
+#	SDELF/2				SIN(THETA) / 2
+#	CDELF/2	=	14D		COS(THETA) / 2
+#	TFFX	=	34D		X, ARGUMENT OF SERIES T(X)
+#	TFFTEM	=	36D		ARG FOR TRANSFER ANGLE CALCULATION
+#	TFFNP	=	28D		LC P M 			E:  (-38+2NR)	M:  (-36+2NR)
+#	TFF/RTMU=	30D		1/SQRT(MU)		E:  (17)	M:  (14)
+#	TFFVSQ	=	20D		-(VN.VN/MU)	1/M	E:  (20)	M:  (18)
+
+# Page 808
+		BANK	34
+		SETLOC	P60S2
+		BANK
+		
+		COUNT*	$$/S61.2
+					# PDL LEFT AT ZERO BY TARGETING
+
+S61.2		DLOAD	DSU
+			EMSALT
+			290KFT
+		BPL	DLOAD
+			LUNENT
+			1/RTMU		# ESTABLISH MU FOR ORBITAL ENTRIES
+CALLCON		CALL
+			TFFCONIC	# FILL VAC AREA WITH CONIC PARAMETERS
+			
+		DLOAD	CALL
+			RTRIAL		# 1ST GUESS AT TERMINAL RADIUS	(-29)
+			CALCTFF		# SAVES MPAC IN RTERM		(18D)
+			
+		CALL			# CALC SDELF/2, CDELF/2
+			TFF/TRIG	# RETURN WITH S(THETA) IN MPAC
+			
+		CALL			# GET FISCHER RADIUS		(-29) M
+			FISHCALC	# ANS IN MPAC AND IN ERADM
+			
+		DAD	CALL
+			EMSALT
+			CALCTFF		# SAVES MPAC IN RTERM		(18D)
+			
+		DCOMP			# NEGATIVE AS IN COUNTDOWN
+		STORE	TTE1		# DECR TTE FROM BASB TTE1.  (RESTART)
+					# DNLIST AND DSKY WILL USE TTE.
+		STCALL	TTE		# LET MISS CONTRL DECR BY ELAPSED TIME
+					# TTE= TIME FROM NOW TO EMSALT +FISCHER
+					
+			TFF/TRIG	# S(THETA) IN MPAC ON RETURNING
+					# AND THETA= RANGE FROM NOW TO EMSALT
+					
+		CALL
+			FISHCALC
+		CALL
+			VRCALC
+		CALL
+			DISPTARG
+		CALL
+			DISPTARG
+		STCALL	RTGO
+# Page 809
+			VGAMCALC
+			
+		DMP			# MPAC = GAMMA
+					# PDL0 HAS VGAM.
+		BDDV	DAD	
+			VEMSCON		# -HS D 180/PI (-14)
+			0		# VGAM FROM PDL0
+		STODL	VIO		# PREDICTED VELOCITY AT EMSALT.
+		
+					# GAMMA AND VGAM AT 300K FT ARE REQUIRED BY GMAX
+					# ALGORITHM.
+					
+			ERADM		# EARTH RADIUS FROM GETERAD (-29) M
+					# = FISCHER RADIUS (-29)
+					
+		DAD
+			300KFT		# M (-29)
+		STCALL	RTERM		# TERMINAL RADIUS M (-29)
+		
+			PREVGAM		# VGAMCALC WITH NEW RTERM
+			
+					# VBAR = (V(FPS) - 36KF/S) / 20 F/S
+# GMAX = (4/(1 + 4.8 VBARSQ))(GAM - 6.05 - 2.4 VBARSQ) - 10(L/D - .3) + 10	ASSUME L/D = 0.3, BANK =0.
+
+# GMAXCALC
+		PDDL	DSU		# GAM TO PDL2
+			0		# VGAM IS IN PDL0 (-7)
+			36KFT/S		# (-7) M/CS
+		DDV	DSQ
+			20KFT/S		# (-6) M/CS
+		STORE	0		# VBARSQ (-2) TO PDL0
+		
+		DMP	DAD
+			KR1
+					# GAM, POS DOWN, FROM PDL2
+		DAD	DMP
+			-6.05DEG
+			KR2
+		PDDL			# XCH PDL+0 FOR VBARSQ (-2)
+		DDV	DAD
+			KR4
+			DP2(-4)
+		BDDV
+					# NUM FROM PDL+0
+		DAD	BPL
+			KR3
+			+3
+		DLOAD
+			HI6ZEROS
+		STODL	GMAX		# 100 GMAX (-14)
+# Page 810
+# DISPLAY USES GMAX AS SP, SO LO WORD IS WRITTEN OVER BY VPRED.
+			ERADM		# = FISCHER RADIUS (-29) M
+		DAD	CALL		# 2 ND ITERATION FOR FISCHER RADIUS
+			400KFT
+			CALCTFF		# ESTABLISH TRANSFER ANGLE DATA.
+		CALL
+			TFF/TRIG	# GET SIN, COS DELF
+		CALL
+			FISHCALC	# GET CORRESPONDING FISCHER RADIUS.
+			
+		DAD	LXA,2		# SAVE HI-WORD FOR DOWNLIST.
+			400KFT		# M (-29)
+			RTGO		# (RANGE ANGLE FROM EMSALT) / 360
+		STCALL	RTERM
+			PREVGAM		# VGAMCALC WITH NEW RTERM
+	
+		DCOMP	SXA,2		# HI-WORD OF EACH ON DOWNLIST.
+			MPAC +1
+		STODL	GAMMAEI		# CONIC GAMMA/360 AT 400K FT.	(HI-WORD)
+					# CONIC RTGO/360 FROM EMSALT   (LOW-WORD)
+					# FOR TM, DP(GAMMAEI) = (GAMMA, RTGO) / 360
+					
+					# VGAM FROM PDL+0 (-7)
+		STADR
+		STORE	VPRED		# CONIC VELOCITY AT 400K FT
+		
+		RTB
+			P61.1
+					# PDL BACK TO ZERO.
+					
+LUNENT		DLOAD	GOTO
+			1/RTMUE		# ESTABLISH MU FOR LUNAR TYPE ENTRIES
+			CALLCON
+290KFT		2DEC	88392.0 B-29
+
+KTETA1		2DEC*	.421844723 E2 B-14* # 110 2PI/16384(163.84)
+
+36KFT/S		2DEC	109.728 B-7	# (-7) M/CS = 36 KFT/S (-7)
+
+20KFT/S		2DEC	121.92 B-7	# (-6) M/CS = 2 20KFT/S (-7)
+
+KR1		2DEC	-.026666667	# = -2.4 4 / 360
+
+-6.05DEG	2DEC	-.016805556	# = -6.05 / 360
+
+KR2		2DEC	.54931641	# = (360/4) 100 (-14) = 9000 B-14
+
+KR3		2DEC	1000 B-14	# = 100 (10.0) (-14) G,S
+# Page 811
+					# ASSUMES L/D = 0.3, BANK =0.
+RTRIAL		2DEC	6460097.18 B-29	# RPAD +264643 FT =21 194 545 FT
+					# RPAD DEFINED AS 20 909 901.57 FT =6 373 336 M
+400KFT		2DEC	121920 B-29	# METERS
+
+# 300KFT	2DEC	91440 B-29	# (-29) M
+
+# EMSALT	2DEC	86759.2	B-29	# 284643 FT (-29) M 	(ORBITAL REENTRY)
+
+# EMSALT	2DEC	90657 B-29	# 297431 FT (-29) M	(LUNAR REENTRY)
+
+KR4		2DEC	.833333333
+
+300KFT		EQUALS	MINPERE
+VEMSCON		2DEC	-.0389676 B-14	# = -HS D / 2 PI (-14)	M SQ / CS SQ
+
+					# = -16369	.05G	32.2	.3048	.3048/2 PI	(-14)
+
+# Page 812
+# SUBROUTINE NAME:  FISHCALC	(USED BY S61.2)		DATE:		01.21.67
+# MOD NO: 0						LOG SECTION:	P61-P67
+# MOD BY: MORTH / BAIRNSFATHER
+# MOD NO: 1	MOD BY: RR BAIRNSFATHER			DATE:		11 MAY 67	INCLUDE GETERAD CALL
+#
+# FUNCTIONAL DESCRIPTION:  GIVEN THE PRESENT POSITION, UNITR, CALCULATE A NEW UNITR THAT IS ROTATED THROUGH
+#	TRANSFER ANGLE, THETA, ALONG THE TRAJECTORY.  THEN CALCULATE SIN(LAT) AND USE TO OBTAIN FISCHER RADIUS.
+#	SINCE FISHCALC USED UNI (LEFT BY ENTRY) EARTH SCALING IS ASSUMED.  (WILL IMPROVE FOR SUITABLE TENNANT)
+#
+# CALLING SEQUENCE:	CALL
+#				FISHCALC
+#	ENTER WITH .5 SIN(THETA) IN MPAC.
+#	PUSHLOC IS AT PDL+0, AN ARBITRARY BASE VALUE IF LEQ 8D
+#
+# SUBROUTINES CALLED:  GET ERAD
+#
+# NORMAL EXIT MODE:  RVQ
+#
+# EXIT MODES:	NONE
+#
+# OUTPUT:	ERADM (-29) M IN MPAC ON RETURNING
+#		NEW UNIT VECTOR NOT SAVED.
+#		SIN(LAT) NOT SAVED.
+#		PUSHLOC AT PDL+0
+#
+# ERASABLE INITIALIZATION REQUIRED:
+#		SDELF/2		=SIN(THETA) / 2, IN MPAC		LEFT BY TFF/TRIG
+#		CDELF/2		=COS(THETA) / 2, STORED IN PDL 14D	LEFT BY TFF/TRIG
+#		RONE		(-29) M					LEFT BY USER
+#		VONE		(-7) M/CS				LEFT BY USER
+#		URONE		UR/2					LEFT BY USER
+#		UNI		.5 UNIT(V*R)				LEFT BY ENTRY / P61
+#		UNITW		UNIT NORTH POLE				LEFT BY PAD LOAD
+#
+# DEBRIS:	QPRET, PDL+0 ... PDL+5
+					# _      _          _
+FISHCALC	PDVL	VXV		# URPR = UR CDELF + UHOR SDELF
+	 		URONE
+			UNI
+		VXSC	VSL1
+					# SIN(THETA) / 2 FROM PDL+0
+		PDVL	VXSC		# TO PDL+0, +5
+			URONE
+			CDELF/2		# COS(THETA) / 2
+		VAD	STADR
+		STORE	URH		# FOR USE IN RTGO FROM EMS DISPLAY
+		DOT	SL1
+			UNITW		# PULL UNIT VECTOR	UNIT NORTH
+		STORE	ALPHAV +4	# = .5 SIN(LAT)
+DUMPFISH	GOTO
+			GETERAD		# SAVES FISCHER RAD (-29) M IN ERADM AND
+					# IN MPAC.  RETURNS TO CALLER VIO QPRET.
+					
+# Page 813
+# SUBROUTINE NAME:  VGAMCALC	(USED BY S61.2)				DATE:		01.21.67
+# MOD NO: 0								LOG SECTION:	P61-P67
+# MOD BY: MORTH / BAIRNSFATHER
+# MOD NO: 1	MOD BY: RR BAIRNSFATHER		DATE: 11 APR 67
+# MOD NO: 2	MOD BY: RR BAIRNSFATHER		DATE: 21 NOV 67		VARIABLE MU ADDED.
+# MOD NO: 3	MOD BY: RR BAIRNSFATHER		DATE: 21 MAR 68		ACCEPT DIFFERENT EARTH/MOON SCALE
+#
+# FUNCTONAL DESCRIPTION:  EARTH CENTERED VIS VIVA CALCULATION OF TERMINAL VELOCITY AND GAMMA (REL TO
+#	HORIZONTAL) GIVEN THE SCALAR QUANTITIES:  PRESENT RADIUS AND VELOCITY AND THE TERMINAL RADIUS.
+#	THE USER MUST APPEND PROPER SIGN TO GAMMA, SINCE IT IS CALCULATED AS A POSITIVE NUMBER.
+#	THE EQUATIONS ARE
+#
+#		VGAM = SQRT(VN VN/MU + 2(RN-RTERM)/(RN RTERM) ) RTMU
+#
+#		COSGAM = H / RTERM VGAM = SQRT (LCP) / (RTERM VGAM/RTMU)
+#
+#	VGAMCALC ASSUMES THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT RADIUS.  BOTH CALCTFF AND CALCTPER
+#	MAKE THIS ASSUMPTION.
+#
+# CALLING SEQUENCE:	CALL			STCALL	RTERM
+#				VGAMCALC		PREVGAM
+#	PUSHLOC AT PDL+0, ARBITRARY IF LEQ 12D
+#	C(MPAC) UNSPECIFIED			C(MPAC)=NEW RTERM
+#
+# SUBROUTINES CALLED:  NONE
+#
+# NORMAL EXIT MODE:  RVQ
+#
+# ALARMS:	NONE
+# 
+# OUTPUT:	GAMMA / 360 IN MPAC, POSITIVE NUMBER
+#		VGAM 	E: (-7)	  M: (-5)	M/CS IN PDL+0
+#		PUSHLOC AT PDL+2
+#
+# ERASABLE INITIALIZATION REQD:
+#	TFF/RTMU  E: (17)   M: (14)	1/SQRT(MU)				LEFT BY TFFCONIC
+#	RMAG1	  E: (-29)  M: (-27)	M  PRESENT RADIUS LENGTH		LEFT BY TFFCONIC
+#	NRMAG	  E: (-29+NR)		M  NORM LENGTH OF PRESENT POSITION	LEFT BY TFFCONIC
+#		  M: (-27+NR)
+#	RTERM	  E: (-29)  M: (-27)	M  TERMINAL RADIUS LENGTH		LEFT BY CALCTFF
+#	NRTERM    E: (-29+NR) 		M  NORM LENGTH OF TERMINAL RADIUS	LEFT BY CALCTFF
+#		  M: (-27+NR)
+#	TFFVSQ    E: (20)   M: (18)   1/M  -(V SQ/MU): PRESENT VELOCITY, NORM	LEFT BY TFFCONIC
+#	TFFNP	  E: (-38+2NR)		M  LCP, SEMI-LATUS RECTUM, WEIGHT NR	LEFT BY TFFCONIC
+#	  	  M: (-36+2NR)
+#
+# DEBRIS:	QPRET, PDL+0 ... PDL+3
+#		RTERM, NRTERM IF PREVGAM ENTERED.
+# Page 814
+
+PREVGAM		SL*			# ENTER WITH NEW RTERM IN MPAC
+					# E: (-29)  M: (-27)
+			0,1		# X1 = -NR
+		STORE	NRTERM		# RTERM M		E: (-29+NR)	M: (-27+NR)
+
+VGAMCALC	DLOAD	DMP
+			NRMAG		# RMAG M		E: (-29+NR)	M: (-27+NR)
+			NRTERM		# RTERM M		E: (-29+NR)	M: (-27+NR)
+		PDDL	DSU		# RMAG RTERM M		E: (-58+2NR)	M: (-54+2NR)
+			NRMAG		# RMAG M		E: (-29+NR)	M: (-27+NR)
+			NRTERM		# RTERM M		E: (-29+NR)	M: (-27+NR)
+		SL*	DDV		# 2(RN-RTERM)		E: (-30+NR)	M: (-28+NR)
+			0 -8D,1		# (-8+NR)
+					# PUSH UP PRODUCT.					
+		DSU
+			TFFVSQ		# -(V SQ/MU)		E: (20)		M: (18)
+		SQRT	PUSH		# SAVE VGAM/RT(MU) FOR NOW.	E: (10)	M: (9)
+		DDV	PDDL		# XCH PDL+0, LEAVING VGAM FOR OUTPUT.
+					# VGAM TO PDL M/CS	E: (-7)		M: (-2)
+			TFF/RTMU	# 			E: (17)		M: (14)
+		DMP	PDDL		# RTERM VGAM/RTMU	E: (-19+NR)	M: (-18+NR)
+			NRTERM		# RTERM M		E: (-29+NR)	M: (-27+NR)
+			TFFNP		# LC P =H.H/MU M	E: (-38+2NR)	M: (-36+2NR)
+		SQRT	DDV		#			E: (-19+NR)	M: (-18+NR)
+					# PUSH UP DEN		E: (-19+NR)	M: (-18+NR)
+					# USE DDV OVFL AS LIMITER (|COS| <1.0)
+		SR1	ACOS
+DUMPVGAM	RVQ
+					# CALLER MUST SUPPLY OWN SIGN ...
+					#			22W	27MS
+
+# Page 815
+# SUBROUTINE NAME:	TFF/TRIG	(USED BY S61.2)		DATE:		01.17.67
+# MOD NO: 0							LOG SECTION:	P61-P67
+# MOD BY: RR BAIRNSFATHER
+# MOD NO: 1	MOD BY: RR BAIRNSFATHER		DATE: 14 APR 67
+# MOD NO: 2	MOD BY: RR BAIRNSFATHER		DATE: 21 MAR 68		ACCEPT DIFFERENT EARTH/MOON SCALE
+#
+# FUNCTIONAL DESCRIPTION:  USED BY ENTRY DISPLAY TO CALCULATE SIN(THETA), COS(THETA) FROM DATA LEFT IN
+#	PDL BY TFF SUBROUTINES.  THE EQNS ARE
+#
+#		COS(THETA) = 1-2 ABS(ARG) / (RN RTERM (1+X) )
+#						2
+#		SIN(THETA) = SGN(ARG) SQRT(1-COS (THETA) )
+#
+# 	WHERE THETA = TRANSFER ANGLE
+#	AND     ARG = P Z ABS(Z)			IF ALFA ZZ LEQ 1
+#	        ARG = (P / ALFA) SGN(Q1 + R 1/Z)        IF ALFA Z Z G 1
+#	AND  ARG  HAS BEEN AFFIXED WITH THE SIGN OF SIN(THETA)
+#
+# CALLING SEQUENCE:	CALL
+#				TFF/TRIG
+#		PUSHLOC AT PDL+0, ARBITRARY IF NOT EQ 14D
+#		C(MPAC) UNSPECIFIED
+#
+# SUBROUTINES CALLED:  NONE
+#
+# NORMAL EXIT MODES:  RVQ
+#
+# ALARMS:	NONE
+#
+# OUTPUT:	C(MPAC) = .5 SIN(THETA)
+#		CDELF/2 = .5 COS(THETA)		(IN PDL 14D)
+#		PUSHLOC AT PDL+0
+#
+# ERASABLE INITIALIZATION REQUIRED:
+#		TFFX			X					LEFT BY CALCTFF OR CALCTPER
+#		TFFTEM  E: (-59+2NR)	ARG					LEFT BY CALCTFF OR CALCTPER
+#			M: (-55+2NR)	WHERE ARG = LCF ZZ SGN(DELF) OR ARG = LCP/ALFA SGN(DELF)
+#		NRTERM	E: (-29+NR)	M  NORM LENGTH OF TERMINAL RADIUS	LEFT BY CALCTFF OR CALCTPER
+#			M: (-27+NR)	
+#		NRMAG	E: (-29+NR)	M  NORM LENGTH OF PRESENT POSITION	LEFT BY TFFCONIC
+#			M: (-27+NR)
+#
+# DEBRIS:	QPRET, CDELF/2
+
+		BANK	27
+		SETLOC	P60S5
+		BANK
+TFF/TRIG	DLOAD	SR1
+			TFFX
+		DAD	DMP
+			HIDPHALF
+			NRMAG		# RMAG M		E: (-29+NR)	M: (-27+NR)
+		DMP	BDDV
+			NRTERM		# RTERM M		E: (-29+NR)	M: (-27+NR)
+			TFFTEM		# P ZSQ OR P/ALFA	E: (-59+2NR)	M: (-55+2NR)
+		ABS	BDSU		# THE SIGN IS FOR SDELF.
+			HIDPHALF
+		STORE	CDELF/2		# .5 COS(THETA)
+		DSQ	DCOMP		# KEEP HONEST FOR SQRT.
+# Page 816
+		DAD	SQRT
+			HIDP1/4
+DUMPTRIG	SIGN	RVQ
+			TFFTEM		# AFFIX SIGN(DELE/2)
+					# RETURN WITH .5 SIN(THETA) IN MPAC
+					
+					#			16W	15MS
+					
+DISPTARG	STQ			# C(MPAC = TRGO ESTIMATE
+			60GENRET
+		DMP	DSU
+			KTETA1
+			TTE1
+		STCALL	DTEAROT
+			EARROT2
+		CALL
+			VRCALC
+		GOTO
+			60GENRET
+VRCALC		VLOAD	DOT
+			URH
+			RT
+		SL2	ACOS
+		RVQ
+
+# END OF PROGRAM S61.2
+
+# Page 817
+# PROGRAM DESCRIPTION S62.3	DATE 10JAN67
+# MOD NO 1:			LOG SECTION P60-P67
+# MOD BY ZELDIN
+# MOD NO: 2	MOD BY: RR BAIRNSFATHER		DATE: 15 MAY 67		CHANGED TO REF COORDS.
+# MOD NO: 3	MOD BY: RR BAIRNSFATHER		DATE: 17 JAN 68		ALFAPAD CHANGES MADE.
+#
+# FUNCTIONAL DESCRIPTION
+#
+#	COMPUTE DESIRED GIMBAL ANGLES FOR ENTRY ATTITUDE
+#	THE FOLLOWING TRAJECTORY TRIAD IS AVAILABLE IN MEMORY AND IS COMPUTED EACH 2 SECONDS BY CM/POSE IN
+#	REFERENCE COORDINATES (V = VELOCITY RELATIVE TO EARTH):
+#
+#		UXA = -UNIT(V)
+#		UYA =  UNIT(V*R)
+#		UZA =  UXA*UYA
+#
+# 	GENERATE A DESIRED BODY TRIAD FOR TRIMMED FLIGHT WITH RESPECT TO THE RELATIVE VELOCITY VECTOR, USING
+#	ROLL COMMAND AND TRIM ANGLE OF ATTACK:
+#
+#		UXD = UNIT(UYD*UXA) SIN(ALFATRIM) + UXA COS(ALFATRIM)
+#		UYD = UYA COS(ROLLC) + UZA SIN(ROLLC)
+#		UZD = UXD * UYD
+#
+#	USE THE DESIRED SET (IN REFERENCE COORDS) AND REFSMMAT TO CALL  CALCGA  AND OBTAIN GIMBAL ANGLES
+#	IN 2S, C IN MPAC, +2 AND THETAD, +2.
+#
+# CALLING SEQUENCE
+#
+#	L	CALL
+#	L+1		S62.3
+#
+# NORMAL EXIT MODE
+#
+#	RETURN VIA QPRET DIRECTLY FROM CALCGA.
+#
+# SUBROUTINES CALLED
+#
+#	CALCGA
+#
+# ALARM OR ABORT MODES
+#
+#	NONE
+#
+# ERASABLE INITIALIZATION REQUIRED
+#
+#	ROLLC	ROLL COMMAND		DP 1'S COMP AT 1REV
+#	ALFAPAD	SP 1'S C / 180		LEFT BY PAD LOAD	ALFATRIM IS NEGATIVE.
+#	UXA/2	REF COORDS		LEFT BY CM/POSE
+#	UYA/2	REF COORDS		LEFT BY CM/POSE
+#	UZA/2	REF COORDS		LEFT BY CM/POSE
+#
+# OUTPUT
+#	
+#	CPHI	GIMBAL ANGLES (O,I,M) 2'S COMP TP (O,I,M)/180
+#
+# DEBRIS
+#
+#	QTEMP, QPRET, PUSHLIST
+
+		BANK	10
+		SETLOC	P60S4
+		BANK
+# Page 818
+		COUNT*	$$/S62.3
+		
+S62.3		SETPD	SLOAD
+			0
+			ALFAPAD		# ALFATRIM / 180, ALFA IS NEG.
+		SR1	PUSH
+		COS	PDDL		# XCH PDL, COS TO PDL0
+		SIN	PDDL		# SIN TO PDL2
+			ROLLC
+		COS	VXSC
+			UYA/2		#				REF COORDS
+		PDDL	SIN		# PUSH VECTOR INTO PDL4...9
+			ROLLC
+		VXSC	VAD
+			UZA/2		#				REF COORDS
+					# VECTOR FROM PDL4...9
+		VSL1
+		STORE	YNB		# = UYD				REF COORDS
+		
+		VXV	VSL1
+			UXA/2		#				REF COORDS
+		VXSC	PDDL
+					# SIN TRIM FROM PDL2
+					# XCH PDL0 FOR COS TRIM
+		VXSC	VAD
+			UXA/2		#				REF COORDS
+					# FROM PDL0
+		VSL1
+		STORE	XNB		# X SC AXIS (.5 UNIT)		REF COORDS
+		
+		VXV	VSL1
+			YNB
+		STOVL	ZNB		# Z SC IN REF COOR. SCALED AT 2
+			REFSMMAT
+		STOVL	XSM
+			REFSMMAT +6
+		STOVL	YSM
+			REFSMMAT +12D
+		STORE	ZSM
+		
+		CLEAR	GOTO
+			CPHIFLAG	# CAUSE CALCGA TO STORE ANS IN TP CPHI
+			CALCGA
+					# CALCGA WILL RETURN TO ORIGINAL CALLER
+					# VIA QPRET WITH 2'S COMP. ANGLES IN CPHI
+					
+
+
diff --git a/P70-P71.s b/P70-P71.s
new file mode 100644
index 0000000..933f970
--- /dev/null
+++ b/P70-P71.s
@@ -0,0 +1,434 @@
+# Copyright:	Public domain.
+# Filename:	P70-P71.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:	829-837
+# Mod history:	2009-05-23 HG	Transcribed from page images.
+#		2009-06-05 RSB	Fixed a typo.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 829
+		BANK	21
+		SETLOC	R11
+		BANK
+
+		EBANK=	DVCNTR
+		COUNT*	$$/R11
+
+R10,R11		CS	FLAGWRD7	# IS SERVICER STILL RUNNING?
+		MASK	AVEGFBIT
+		CCS	A
+		TCF	TASKOVER	# LET AVGEND TAKE CARE OF GROUP 2.
+		CCS	PIPCTR
+		TCF	+2
+		TCF	LRHTASK		# LAST PASS. CALL LRHTASK.
+ +2		TS	PIPCTR1
+
+PIPCTR1		=	LADQSAVE
+PIPCTR		=	PHSPRDT2
+		CAF	OCT31
+		TC	TWIDDLE
+		ADRES	R10,R11
+R10,R11A	CS	IMODES33	# IF LAMP TEST, DO NTO CHANGE LR LITES
+		MASK	BIT1
+		EXTEND
+		BZF	10,11
+
+FLASHH?		MASK	FLGWRD11	# C(A) = 1 - HFLASH BIT
+		EXTEND
+		BZF	FLASHV?		# H FLASH OFF, SO LEAVE ALONE
+
+		CA	HLITE
+		TS	L
+		TC	FLIP		# FLIP H LITE
+
+FLASHV?		CA	VFLSHBIT	# VLASHBIT MUST BE BIT 2.
+		MASK	FLGWRD11
+		EXTEND
+		BZF	10,11		# V FLASH OFF
+
+		CA	VLITE
+		TS	L
+		TC	FLIP		# FLIP V LITE
+
+10,11		CA	FLAGWRD9	# IS THE LETABORT FLAG SET ?
+		MASK	LETABBIT
+		EXTEND
+		BZF	LANDISP		# NO. PROCEED TO R10.
+
+P71NOW?		CS	MODREG		# YES.  ARE WE IN P71 NOW?
+# Page 830
+		AD	1DEC71
+		EXTEND
+		BZF	LANDISP		# YES.  PROCEED TO R10.
+		
+		EXTEND			# NO. IS AN ABORT STAGE COMMANDED?
+		READ	CHAN30
+		COM
+		TS	L
+		MASK	BIT4
+		CCS	A
+		TCF	P71A		# YES.
+
+P70NOW?		CS	MODREG		# NO. ARE WE IN P70 NOW?
+		AD	1DEC70
+		EXTEND
+		BZF	LANDISP		# YES.  PROCEED TO R10.
+
+		CA	L		# NO.  IS AN ABORT COMMANDED?
+		MASK	BIT1
+		CCS	A
+		TCF	P70A		# YES.
+		TCF	LANDISP		# NO.  PROCEED TO R10.
+
+		COUNT*	$$/P70
+
+P70		TC	LEGAL?
+P70A		CS	ZERO
+		TCF	+3
+P71		TC	LEGAL?
+P71A		CAF	TWO
+ +3		TS	Q
+ 		INHINT
+		EXTEND
+		DCA	CNTABTAD
+		DTCB
+
+		EBANK=	DVCNTR
+CNTABTAD	2CADR	CONTABRT
+
+1DEC70		DEC	70
+1DEC71		DEC	71
+
+		BANK	05
+		SETLOC	ABORTS1
+		BANK
+		COUNT*	$$/P70
+
+CONTABRT	CAF	ABRTJADR
+		TS	BRUPT
+		RESUME
+# Page 831
+
+ABRTJADR	TCF	ABRTJASK
+
+ABRTJASK	CAF	OCTAL27
+		AD	Q
+		TS	L
+		COM
+		DXCH	-PHASE4
+		INDEX	Q
+		CAF	MODE70
+		TS	MODREG
+
+		TS	DISPDEX		# INSURE DISPDEX IS POSITIVE.
+
+		CCS	Q		# SET APSFLAG IF P71.
+		CS	FLGWRD10	# SET APSFLAG PRIOR TO THE ENEMA.
+		MASK	APSFLBIT
+		ADS	FLGWRD10
+		CS	DAPBITS		# DAPBITS = OCT 640 = BITS 6, 8, 9
+		MASK	DAPBOOLS	# (TURN OFF ULLAGE, DRIFT, AND XOVINHIB
+		TS	DAPBOOLS
+
+		CS	FLAGWRD5	# SET ENGONFLG.
+		MASK	ENGONBIT
+		ADS	FLAGWRD5
+
+		CS	PRIO30		# INSURE THAT THE ENGINE IS ON, IF ARMED.
+		EXTEND
+		RAND	DSALMOUT
+		AD	BIT13
+		EXTEND
+		WRITE	DSALMOUT
+
+		CAF	LRBYBIT		# TERMINATE R12.
+		TS	FLGWRD11
+
+		CS	FLAGWRD0	# SET R10FLAG TO SUPPRESS OUTPUTS TO THE
+		MASK	R10FLBIT	# CROSS-POINTER DISPLAY.
+		ADS	FLAGWRD0	# THE FOLLOWING ENEMA WILL REMOVE THE
+					# DISPLAY INERTIAL DATA OUTBIT.
+		TC	CLRADMOD	# INSURE RADMODES PROPERLY SET FOR R29.
+
+		EXTEND			# LOAD TEVENT FOR THE DOWNLINK.
+		DCA	TIME2
+		DXCH	TEVENT
+
+		EXTEND
+		DCA	SVEXITAD
+		DXCH	AVGEXIT
+
+# Page 832
+		EXTEND
+		DCA	NEG0
+		DXCH	-PHASE1
+		
+		EXTEND
+		DCA	NEG0
+		DXCH	-PHASE3
+		
+		EXTEND
+		DCA	NEG0
+		DXCH	-PHASE6
+		
+		CAF	THREE		# SET UP 4.3SPOT FOR GOABORT
+		TS	L
+		COM
+		DXCH	-PHASE4
+
+# the 3 in OCT37774 could be something else, garbled
+		CAF	OCT37774	# SET T5RUPT TO CALL DAPIDLER IN	
+		TS	TIME5		# 40 MILLISECONDS.
+		
+		TC	POSTJUMP
+		CADR	ENEMA
+
+		EBANK=	DVCNTR
+SVEXITAD	2CADR	SERVEXIT
+
+MODE70		DEC	70
+OCTAL27		OCT	27
+MODE71		DEC	71
+
+DAPBITS		OCT	00640
+
+		BANK	32
+		SETLOC	ABORTS
+		BANK
+
+		COUNT*	$$/P70
+
+GOABORT		TC	INTPRET
+		CALL
+			INITCDUW
+		EXIT
+		CAF	FOUR
+		TS	DVCNTR
+
+		CAF	WHICHADR
+		TS	WHICH
+
+		TC	DOWNFLAG
+		ADRES	FLRCS
+# Page 833
+		TC	DOWNFLAG
+		ADRES	FLUNDISP
+		
+		TC	DOWNFLAG
+		ADRES	IDLEFLAG
+		
+		TC	UPFLAG		# INSURE 4-JET TRANSLATION CAPABILIITY.
+		ADRES	ACC4-2FL
+		
+		TC	CHECKMM
+70DEC		DEC	70
+		TCF	P71RET
+
+P70INIT		TC	INTPRET
+		CALL
+			TGOCOMP
+		DLOAD	SL
+			MDOTDPS
+			4D
+		BDDV
+			MASS
+		STODL	TBUP
+			MASS
+		DDV	SR1
+			K(1/DV)
+		STORE	1/DV1
+		STORE	1/DV2
+		STORE	1/DV3
+		BDDV
+			K(AT)
+		STODL	AT
+			DTDECAY
+		DCOMP	SL
+			11D
+		STORE	TTO
+		SLOAD	DCOMP
+			DPSVEX
+		SR2
+		STORE	VE		# INITIALIZE DPS EXHAUST VELOCITY
+		SET	CALL
+			FLAP
+			COMMINIT
+		AXC,1	GOTO		# RETURN HERE IN P70, SET X1 FOR DPS COEFF.
+			0D
+			BOTHPOLY
+INJTARG		AXC,1			# RETURN HERE IN P71, SET X1 FOR APS COEFF.
+			8D
+BOTHPOLY	DLOAD*	DMP		# TGO D
+			ABTCOF,1
+			TGO
+# Page 834
+		DAD*	DMP
+			ABTCOF +2,1	#	TGO(C+TGO )
+			TGO
+		DAD*	DMP
+			ABTCOF +4,1	# TGO(B+TGO d))
+			TGO
+		DAD*
+			ABTCOF +6,1	# A+TGO(B+TGO(C+TGO D))	
+		STORE	ZDOTD		# STORE TENTATIVELY IN ZDOTD
+		DSU	BPL		# CHECK AGAINST MINIMUM
+			VMIN
+			UPRATE		# IF BIG ENOUGH, LEAVE ZDOTD AS IS .
+		DLOAD
+			VMIN
+		STORE	ZDOTD		# IF TOO SMALL, REPLCAE WITH MINIMUM.
+UPRATE		DLOAD
+			ABTRDOT
+		STCALL	RDOTD		# INITIALZE RDOTD.
+			YCOMP		# COMPUTE Y
+		ABS	DSU
+			YLIM		# /Y/-DYMAX
+		BMN	SIGN		# IF <0, XR<.5DEG, LEAVE YCO AT 0
+			YOK		# IF >0, FIX SIGN OF DEFICIT.  THIS IS YCO.
+			Y
+		STORE	YCO
+YOK		DLOAD	DSU
+			YCO
+			Y		# COMPUTE XRANGE IN CASE ASTRONAUT WANTS
+		SR
+			5D
+		STORE	XRANGE		# TO LOOK.
+UPTHROT		SET	EXIT
+			FLVR
+			
+		TC	UPFLAG		# SET ROTFLAG
+		ADRES	ROTFLAG
+		
+		TC	THROTUP
+
+		TC	PHASCHNG
+		OCT	04024
+
+-3		TC	BANKCALL	# VERIFY THAT THE PANEL SWITCHES 
+		CADR	P40AUTO		# ARE PROPERLY SET.
+		
+		TC	THROTUP
+
+UPTHROT1	EXTEND			# SET SERVICER TO CALL ASCENT GUIDANCE.
+		DCA	ATMAGAD
+		DXCH	AVGEXIT
+# Page 835
+GRP4OFF		TC	PHASCHNG	# TERMINATE USE OF GROUP 4.
+		OCT	00004
+
+		TCF	ENDOFJOB
+
+P71RET		TC	DOWNFLAG
+		ADRES	LETABORT
+
+		CAF	THRESH2		# SET DVMON THRESHOLD TO THE ASCENT VALUE.
+		TS	DVTHRUSH
+
+		TC	INTPRET
+		BON	CALL
+			FLAP
+			OLDTIME
+			TGOCOMP		# IF FLAP=0, TGO=T-TIG
+		SSP	GOTO
+			QPRET
+		CADR	INJTARG
+			P12INIT		# WILL EXIT P12INIT TO INJTARG
+OLDTIME		DLOAD	SL1		# IF FLAP=1,GTO=2 TGO
+			TGO
+		STCALL	TGO1
+			P12INIT
+		EXIT
+		TC	PHASCHNG
+		OCT	04024
+
+		EXTEND
+		DCA	TGO1
+		DXCH	TGO
+		TCF	UPTHROT1 -3
+
+TGO1		=	VGBODY
+# *************************************************************************
+
+		BANK	21
+		SETLOC	R11
+		BANK
+		COUNT*	$$/P70
+
+LEGAL?		CS	MMNUMBER	# IS THE DESIRED PGM ALREADY IN PROGRESS?
+		AD	MODREG
+		EXTEND
+		BZF	ABORTALM
+
+		CS	FLAGWRD9	# ARE THE ABORTS ENABLED?
+		MASK	LETABBIT
+		CCS	A
+# Page 836
+		TCF	ABORTALM
+
+		CA	FLAGWRD7	# IS SERVICER ON THE AIR?
+		MASK	AVEGFBIT
+		CCS	A
+		TC	Q		# YES. ALL IS WELL.
+ABORTALM	TC	FALTON
+		TC	RELDSP
+		TC	POSTJUMP
+		CADR	PINBRNCH
+
+		BANK	32
+		SETLOC	ABORTS
+		BANK
+
+		COUNT*	$$/P70
+
+# **********************************************************************
+
+TGOCOMP		RTB	DSU
+			LOADTIME
+			TIG
+		SL
+			11D
+		STORE	TGO
+		RVQ
+
+# ************************************************************************
+
+THROTUP		CAF	BIT13
+		TS	THRUST
+		CAF	BIT4
+		EXTEND
+		WOR	CHAN14
+		TC	Q
+
+# ************************************************************************
+
+10SECS		2DEC	1000
+HINJECT		2DEC	18288 B-24	# 60,000 FEET EXPRESSED IN METERS.
+(TGO)A		2DEC	37000 B-17
+K(AT)		2DEC	.02		# SCALING CONSTANT
+WHICHADR	REMADR	ABRTABLE
+
+# ************************************************************************
+# Page 837
+		EBANK=	DVCNTR
+ATMAGAD		2CADR	ATMAG
+ORBMANAD	ADRES	ORBMANUV
+
diff --git a/P76.s b/P76.s
new file mode 100644
index 0000000..9adb9c8
--- /dev/null
+++ b/P76.s
@@ -0,0 +1,162 @@
+# Copyright:    Public domain.
+# Filename:     P76.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:      Hartmuth Gutsche <hgutsche@xplornet.com>.
+# Website:      www.ibiblio.org/apollo.
+# Pages:	pp  511-513
+# Mod history:  2009-05-08 HG    Adapting from the Luminary131/ file 
+#               of the same name, using Comanche055 page 
+#               images 0511.jpg - 0513.jpg. 
+#
+# 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 511
+# 1)	PROGRAM NAME -- TARGET DELTA V PROGRAM (P76).
+# 2)	FUNCTIONAL DESCRIPTION -- UPON ENTRY BY ASTRONAUT ACTION, P76 FLASHES DSKY REQUESTS TO THE ASTRONAUT
+#	TO PROVIDE VIA DSKY (1) THE DELTA V TO BE APPLIED TO THE OTHER VEHICLE STATE VECTOR AND (2) THE
+#	TIME (TIG) AT WHICH THE OTHER VEHICLE VELOCITY WAS CHANGED BY EXECUTION OF A THRUSTING MANEUVER. THE
+#	OTHER VEHICLE STATE VECTOR IS INTEGRATED TO TIG AND UPDATED BY THE ADDITION OF DELTA V (DELTA V HAVING
+#	BEEN TRANSFORMED FROM LV TO REF COSYS).  USING INTEGRVS, THE PROGRAM THEN INTEGRATES THE OTHER
+#	VEHICLE STATE VECTOR TO THE STATE VECTOR OF THIS VEHICLE, THUS INSURING THAT THE W-MATRIX AND BOTH VEHICLE
+#	STATES CORRESPOND TO THE SAME TIME.
+# 3)	ERASABLE INIITIALIZATION REQUIRED -- NONE.
+# 4)	CALLING SEQUENCES AND EXIT MODES -- CALLED BY ASTRONAUT REQUEST THRU DSKY V 37 E 76E.
+#	EXITS BY TCF ENDOFJOB.
+# 5)	OUTPUT -- OTHER VEHICLE STATE VECTOR INTEGRATED TO TIG AND INCREMENTED BY DELTA V IN REF COSYS.
+#	THE PUSHLIST CONTAINS THE MATRIX BY WHICH THE INPUT DELTA V MUST BE POST-MULTIPLIED TO CONVERT FROM LV
+#	TO REF COSYS.
+# 6)	DEBRIS -- OTHER VEHICLE STATE VECTOR.
+# 7)	SUBROUTINES CALLED -- BANKCALL, GOXDSPF, CSMPREC (OR LEMPREC), ATOPCSM (OR ATOPLEM), INTSTALL, INTWAKE, PHASCHNG
+#	INTPRET, INTEGRVS, AND MINIRECT.
+# 8)	FLAG USE -- MOONFLAG, CMOONFLG, INTYPFLG, RASFLAG, AND MARKCTR.
+
+		BANK	30
+		SETLOC	P76LOC
+		BANK
+
+		COUNT*	$$/P76
+
+		EBANK=	TIG
+
+P76		TC	UPFLAG
+		ADRES	TRACKFLG
+
+		CAF	V06N84          # FLASH LAST DELTA V.
+		TC      BANKCALL        # AND WAIT FOR KEYBOARD ACTION.
+	        CADR    GOFLASH
+		TCF     ENDP76	
+		TC	+2		# PROCEED
+		TC	-5		# STORE DATA AND REPEAT FLASHING
+		CAF	V06N84 +1	# FLASH VERB 06 NOUN 33, DISPLAY LAST TIG,
+		TC	BANKCALL	# AND WAIT FOR KEYBOARD ACTION.
+		CADR	GOFLASH
+		TCF	ENDP76
+		TC	+2
+		TC	-5
+		TC	INTPRET		# RETURN TO INTERPRETIVE CODE
+		DLOAD	                # SET D(MPAC)=TIG IN CSEC B28
+			TIG
+		STCALL	TDEC1		# SET TDEC1=TIG FOR ORBITAL INTEGRATION
+			OTHPREC
+COMPMAT		VLOAD	UNIT
+			RATT
+# Page 512
+		VCOMP			# U(-R)
+		STORE	24D		# U(-R) TO 24D
+		VXV	UNIT		# U(-R) X V = U(V X R)
+			VATT
+		STORE	18D
+		VXV	UNIT		# U(V X R) X U(-R) = U((R X V) X R)
+			24D
+		STOVL	12D
+			DELVOV
+		VXM	VSL1		# V(MPAC)=DELTA V IN REFCOSYS
+			12D
+		VAD
+			VATT
+		STORE	6		# V(PD6)=VATT + DELTA V
+		CALL			# PREVENT WOULD-BE USER OF ORBITAL
+			INTSTALL	# INTEG FROM INTERFERING WITH UPDATING
+		CALL
+			P76SUB1
+		VLOAD	VSR*
+			6
+			0,2
+		STOVL	VCV
+			RATT
+		VSR*
+			0,2
+		STODL	RCV
+			TIG
+		STORE	TET
+		CLEAR	DLOAD
+			INTYPFLG
+			TETTHIS
+INTOTHIS	STCALL	TDEC1
+			INTEGRVS
+		CALL
+			INTSTALL
+		CALL
+		        P76SUB1         # SET/CLEAR MOONFLAG
+		VLOAD
+			RATT1
+		STORE	RRECT
+		STODL	RCV
+			TAT
+		STOVL	TET
+			VATT1
+		CALL
+			MINIRECT
+		EXIT
+		TC	PHASCHNG
+		OCT	04024
+# Page 513
+		TC	UPFLAG
+		ADRES	REINTFLG
+			 
+		TC	INTPRET
+		CALL
+			ATOPOTH
+		SSP     EXIT
+		        QPRET
+		        OUT
+		TC      BANKCALL        # PERMIT USE OF ORBITAL INTEGRATION
+		CADR    INTWAKE1
+OUT		EXIT
+ENDP76		CAF	ZERO
+		TS	MARKCTR		# CLEAR RR TRACKING MARK COUNTER
+		TS      VHFCNT
+		
+		CAF     NEGONE
+		TS      MRKBUF2         # INVALIDATE MARK BUFFER
+		
+		TCF	GOTOP00H
+
+V06N84		NV	0684
+		NV	0633
+P76SUB1		CLEAR   SLOAD
+			MOONFLAG        
+                        X2
+                BHIZ    SET             # X2=0...CLEAR MOONFLAG
+                        +2              #   =2.....SET MOONFLAG
+                        MOONFLAG
+                RVQ 
+                
\ No newline at end of file
diff --git a/PHASE_TABLE_MAINTENANCE.s b/PHASE_TABLE_MAINTENANCE.s
new file mode 100644
index 0000000..247b4bd
--- /dev/null
+++ b/PHASE_TABLE_MAINTENANCE.s
@@ -0,0 +1,406 @@
+# Copyright:	Public domain.
+# Filename:	PHASE_TABLE_MAINTENANCE.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:	1404-1413
+# 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 1404
+# SUBROUTINE TO UPDATE THE PROGRAM NUMBER DISPLAY ON THE DSKY.
+
+		COUNT	02/PHASE
+		BLOCK	02
+		SETLOC	FFTAG1
+		BANK
+
+NEWMODEX	INDEX	Q		# UPDATE MODREG.  ENTRY FOR MODE IN FIXED.
+		CAF	0
+		INCR	Q
+
+NEWMODEA	TS	MODREG		# ENTRY FOR MODE IN A.
+MMDSPLAY	CAF	+3		# DISPLAY MAJOR MODE.
+PREBJUMP	LXCH	BBANK		# PUTS BBANK IN L
+		TCF	BANKJUMP	# PUTS Q INTO A
+		CADR	SETUPDSP
+
+# RETURN TO CALLER +3 IF MODE = THAT AT CALLER +1.  OTHERWISE RETURN TO CALLER +2.
+
+CHECKMM		INDEX	Q
+		CS	0
+		AD	MODREG
+		EXTEND
+		BZF	Q+2
+		TCF	Q+1		# NO MATCH
+
+TCQ		=	Q+2 +1
+
+		BANK	14
+		SETLOC	PHASETAB
+		BANK
+
+		COUNT	10/PHASE
+		
+SETUPDSP	INHINT
+		DXCH	RUPTREG1	# SAVE CALLER'S RETURN 2CADR
+		CAF	PRIO30		# 	EITHER A TASK OR JOB CAN COME TO
+		TC	NOVAC		#	NEWMODEX
+		EBANK=	MODREG
+		2CADR	DSPMMJOB
+
+		DXCH	RUPTREG1
+		RELINT
+		DXCH	Z		# RETURN
+
+DSPMMJOB	EQUALS	DSPMMJB
+
+		BLOCK	02
+# Page 1405
+		SETLOC	FFTAG1
+		BANK
+
+# Page 1406
+# PHASCHNG IS THE MAIN WAY OF MAKING PHASE CHANGES FOR RESTARTS.  THERE ARE THREE FORMS OF PHASCHNG, KNOWN AS TYPE
+# A, TYPE B, AND TYPE C.  THEY ARE ALL CALLED AS FOLLOWS, WHERE OCT XXXXX CONTAINS THE PHASE INFORMATION,
+#		TC	PHASCHNG
+#		OCT	XXXXX
+# TYPE A IS CONCERNED WITH FIXED PHASE CHANGES, THAT IS, PHASE INFORMATION THAT IS STORED PERMANENTLY.  THESE
+# OPTIONS ARE, WHERE G STANDS FOR A GROUP AND .X FOR THE PHASE,
+#	G.0		INACTIVE, WILL NOT PERMIT A GROUP G RESTART
+#	G.1		WILL CAUSE THE LAST DISPLAY TO BE REACTIVATED, USED MAINLY IN MANNED FLIGHTS
+#	G.EVEN		A DOUBLE TABLE RESTART, CAN CAUSE ANY COMBINATION OF TWO JOBS, TASKS, AND/OR
+#			LONGCALL TO BE RESTARTED.
+#	G.ODD NOT .1	A SINGLE TABLE RESTART, CAN CAUSE EITHER A JOB, TASK, OR LONGCALL RESTART.
+#
+# THIS INFORMATION IS PUT INTO THE OCTAL WORD AFTER TC PHASCHNG AS FOLLOWS
+#	TL0 00P PPP PPP GGG
+# WHERE EACH LETTER OR NUMBER STANTS FOR A BIT.  THE G'S STAND FOR THE GROUP, OCTAL 1-7, THE P'S FOR THE PHASE,
+# OCTAL 0 - 127.  0'S MUST BE 0.  IF ONE WISHES TO HAVE THE TBASE OF GROUP G TO BE SET AT THIS TIME,
+# T IS SET TO 1, OTHERWISE IT IS SET TO 0.  SIMILARLY IF ONE WISHES TO SET LONGBASE, THEN L IS SET TO 1, OTHERWISE
+# IT IS SET TO 0.  SOME EXAMLES,
+#		TC	PHASCHNG	# THIS WILL CAUSE GROUP 3 TO BE SET TO 0,
+#		OCT	00003		# MAKING GROUP 3 INACTIVE
+#
+#		TC	PHASCHNG	# IF A RESTART OCCURS THIS WOULD CAUSE
+#		OCT	00012		# GROUP 2 TO RESTART THE LAST DISPLAY
+#
+#		TC	PHASCHNG	# THIS SETS THE TBASE OF GROUP 4 AND IN
+#		OCT	40064		# CASE OF A RESTART WOULD START UP THE TWO
+#					# THINGS LOCATED IN THE DOUBLE 4.6 RESTART
+#					# LOCATION.
+#
+#		TC	PHASCHNG	# THIS SETS LONGBASE AND UPON A RESTART
+#		OCT	20135		# CAUSES 5.13 TO BE RESTARTED (SINCE
+#					# LONGBASE WAS SET THIS SINGLE ENTRY
+#					# SHOULD BE A LONGCALL)
+#
+#		TC	PHASCHNG	# SINCE BOTH TBASE4 AND LONGBASE ARE SET,
+#		OCT	60124		# 4.12 SHOULD CONTAIN BOTH A TASK AND A
+#					# LONGCALL TO BE RESTARTED
+#
+# TYPE C PHASCHNG CONTAINS THE VARIABLE TYPE OF PHASCHNG INFORMATION.  INSTEAD OF THE INFORMATION BEING IN A
+# PERMANENT FORM, ONE STORES THE DESIRED RESTART INFORMATION IN A VARIABLE LOCATION.  THE BITS ARE AS FOLLOWS,
+#	TL0 1AD XXX CJW GGG
+# WHERE EACH LETTER OR NUMBER STANDS FOR A BIT.  THE G'S STAND FOR THE GROUP, OCTAL 1 - 7.  IF THE RESTART IS TO
+# BE BY WAITLIST, W IS SET TO 1, IF IT IS A JOB, J IS SET TO 1, IF IT IS A LONGCALL, C IS SET TO 1.  ONLY ONE OF
+# THESE THREE BITS MAY BE SET.  X'S ARE IGNORED, 1 MUST BE 1, AND 0 MUST BE 0.  AGAIN T STANDS FOR THE TBASE,
+# Page 1407
+# AND L FOR LONGBASE.  THE BITS A AND D ARE CONCERNED WITH THE VARIABLE INFORMATION.  IF D IS SET TO 1, A PRIORITY
+# OR DELTA TIME WILL BE READ FROM THE NEXT LOCATION AFTER THE OCTAL INFORMATION., IF THIS IS TO BE INDIRECT, THAT
+# IS, THE NAME OF A LOCATION CONTAINING THE INFORMATION (DELTA TIME ONLY), THEN THIS IS GIVEN AS THE -GENADR OF
+# THAT LOCATION WHICH CONTAINS THE DELTA TIME.  IF THE OLD PRIORITY OR DELTA TIME IS TO BE USED, THAT WHICH IS
+# ALREADY IN THE VARIABLE STORAGE, THEN D IS SET TO 0.  NEXT THE A BIT IS USED.  IF IT IS SET TO 0, THE ADDRESS
+# THAT WOULD BE RESTARTED DURING A RESTART IS THE NEXT LOCATION AFTER THE PHASE INFORMATION, THAT IS, EITHER
+# (TC PHASCHNG) +2 OR +3, DEPENDING ON WHETHER D HAD BEEN SET OR NOT.  IF A IS SET TO 1, THEN THE ADDRESS THAT
+# WOULD BE RESTARTED IS THE 2CADR THAT IS READ FROM THE NEXT TWO LOCATION.  EXAMPLES,
+#	AD	TC	PHASCHNG	# THIS WOULD CAUSE LOCATION AD +3 TO BE
+#	AD+1	OCT	05023		# RESTARTED BY GROUP THREE WITH A PRIORITY
+#	AD+2	OCT	23000		# OF 23.  NOTE UPON RETURNING IT WOULD
+#	AD+3				# ALSO GO TO AD+3
+#
+#	AD	TC	PHASCHNG	# GROUP 1 WOULD CAUSE CALLCALL TO BE
+#	AD+1	OCT	27441		# BE STARTED AS A LONGCALL FROM THE TIME
+#	AD+2	-GENADR	DELTIME		# STORED IN LONGBASE (LONGBASE WAS SET) BY
+#	AD+3	2CADR	CALLCALL	# A DELTATIME STORED IN DELTIME.  THE
+#	AD+4				# BBCON OF THE 2CADR SHOULD CONTAIN THE E
+#	AD+5				# BANK OF DELTIME.  PHASCHNG RETURNS TO
+#					# LOCATION AD+5
+#
+# NOTE THAT IF A VARIABLE PRIORITY IS GIVEN FOR A JOB, THE JOB WILL BE RESTARTED AS A NOVAC IF THE PRIORITY IS
+# NEGATIVE, AS A FINDVAC IF THE PRIORITY IS POSITIVE.
+#
+# TYPE B PHASCHNG IS A COMBINATION OF VARIABLE AND FIXED PHASE CHANGES.  IT WILL START UP A JOB AS INDICATED
+# BELOW AND ALSO START UP ONE FIXED RESTART, THAT IS EITHER AN G.1 OR A G.ODD OR THE FIRST ENTRY OF G.EVEN
+# DOUBLE ENTRY.  THE BIT INFORMATION IS AS FOLLOW,
+#	TL1 DAP PPP PPP GGG
+# WHERE EACH LETTER OR NUMBER STANDS FOR A BIT.  THE G'S STAND FOR THE GROUP, OCTAL 1 - 7, THE P'S FOR THE FIXED
+# PHASE INFORMATION, OCTAL 0 - 127.  1 MUST BE 1.  AND AGAIN T STANDS FOR THE TBASE AND L FOR LONGBASE.  D THIS
+# TIME STANDS ONLY FOR PRIORITY SINCE THIS WILL BE CONSIDERED A JOB, AND IT MUST BE GIVEN DIRECTLY IF GIVEN.
+# AGAIN A STANDS FOR THE ADDRESS OF THE LOCATION TO BE RESTARTED, 1 IF THE 2CADR IS GIVEN, OR 0 IF IT IS TO BE
+# THE NEXT LOCATION.  (THE RETURN LOCATION OF PHASCHNG) EXAMPLES,
+#	AD	TC	PHASCHNG	# TBASE IS SET AND A RESTART CAUSE GROUP 3
+#	AD+1	OCT	56043		# TO START THE JOB AJOBAJOB WITH PRIORITY
+#	AD+2	OCT	31000		# 31 AND THE FIRST ENTRY OF 3.4SPOT (WE CAN
+#	AD+3	2CADR	AJOBAJOB	# ASSUME IT IS A TASK SINCE WE SET TBASE3)
+#	AD+4				# UPON RETURN FROM PHASCHNG CONTROL WOULD
+#	AD+5				# GO TO AD+5
+#
+#	AD	TC	PHASCHNG	# UPON A RESTART THE LAST DISPLAY WOULD BE
+#	AD+1	OCT	10015		# RESTARTED AND A JOB WITH THE PREVIOUSLY
+#	AD+2				# STORED PRIORITY WOULD BE BEGUN AT AD+2
+#					# BY MEANS OF GROUP 5
+# Page 1408
+# THE NOVAC-FINDVAC CHOICE FOR JOBS HOLDS HERE ALSO -- NEGATIVE PRIORITY CAUSES A NOVAC CALL, POSITIVE A FINDVAC.
+
+# SUMMARY OF BITS:
+#	TYPE A		TL0 00P PPP PPP GGG
+#	TYPE B		TL1 DAP PPP PPP GGG
+#	TYPE C		TL0 1AD XXX CJW GGG
+
+# Page 1409
+# 2PHSCHNG IS USED WHEN ONE WISHES TO START UP A GROUP OR CHANGE A GROUP WHILE UNDER THE CONTROL OF A DIFFERENT
+# GROUP.  FOR EXAMPLE, CHANGE THE PHASE OF GROUP 3 WHILE THE PORTION OF THE PROGRAM IS UNDER GROUP 5.  ALL 2PHSCHNG
+# CALLS ARE MADE IN THE FOLLOWING MANNER,
+#		TC	2PHSCHNG
+#		OCT	XXXXX
+#		OCT	YYYYY
+# WHERE OCT XXXXX MUST BE OF TYPE A AND OCT YYYYY MAY BE OF EITHER TYPE A OR TYPE B OR TYPE C.  THERE IS ONE
+# DIFFERENCE --- NOTE: IF LONGBASE IS TO BE SET THIS INFORMATION IS GIVEN IN THE OCT YYYYY INFORMATION, IT WILL
+# BE DISREGARDED IF GIVEN WITH THE OCT XXXXX INFORMATION.  A COUPLE OF EXAMPLES MAY HELP,
+#	AD	TC	2PHACHNG	# SET TBASE3 AND IF A RESTART OCCURS START
+#	AD+1	OCT	40083		# THE TWO ENTRIES IN 3.8 TABLE LOCATION
+#	AD+2	OCT	05025		# THIS IS OF TYPE C, SET THE JOB TO BE
+#	AD+3	OCT	18000		# TO BE LOCATION AD+4, WITH A PRIORITY 18,
+#	AD+4				# FOR GROUP 5 PHASE INFORMATION.
+
+		COUNT	02/PHASE
+		
+2PHSCHNG	INHINT			# THE ENTRY FOR A DOUBLE PHASE CHANGE
+		NDX	Q
+		CA	0
+		INCR	Q
+		TS	TEMPP2
+
+		MASK	OCT7
+		DOUBLE
+		TS	TEMPG2
+
+		CA	TEMPP2
+		MASK	OCT17770	# NEED ONLY 1770, BUT WHY GET A NEW CONST.
+		EXTEND
+		MP	BIT12
+		XCH	TEMPP2
+
+		MASK	BIT15
+		TS	TEMPSW2		# INDICATES WHETHER TO SET TBASE OR NOT
+
+		TCF	PHASCHNG +3
+
+PHASCHNG	INHINT
+		CA	ONE		# INDICATES CAME FROM A PHASCHNG ENTRY
+		TS	TEMPSW2
+		
+		NDX	Q
+		CA	0
+		INCR	Q
+		TS	TEMPSW
+# Page 1410
+		EXTEND
+		DCA	ADRPCHN2	# OFF TO SWITCHED BANK
+		DTCB
+
+		EBANK=	LST1
+ADRPCHN2	2CADR	PHSCHNG2
+
+ONEORTWO	LXCH	TEMPBBCN
+		LXCH	BBANK
+		LXCH	TEMPBBCN
+
+		MASK	OCT14000	# SEE WHAT KIND OF PHASE CHANGE IT IS
+		CCS	A
+		TCF	CHECKB		# IT IS OF TYPE `B'.
+
+		CA	TEMPP
+		MASK	BIT7
+		CCS	A		# SHALL WE USE THE OLD PRIORITY
+		TCF	GETPRIO		# NO GET A NEW PRIORITY (OR DELTA T)
+
+OLDPRIO		NDX	TEMPG		# USE THE OLD PRIORITY (OR DELTA T)
+		CA	PHSPRDT1 -2
+		TS	TEMPPR
+
+CON1		CA	TEMPP		# SEE IF A 2CADR IS GIVEN
+		MASK 	BIT8
+		CCS	A
+		TCF	GETNEWNM
+
+		CA	Q
+		TS	TEMPNM
+		CA	BB
+		EXTEND			# PICK UP USER'S SUPERBANK
+		ROR	SUPERBNK
+		TS	TEMPBB
+
+TOCON2		CA	CON2ADR		# BACK TO SWITCHED BANK
+		LXCH	TEMPBBCN
+		DTCB
+
+CON2ADR		GENADR	CON2
+
+GETPRIO		NDX	Q		# DON'T CARE IF DIRECT OR INDIRECT
+		CA	0		# LEAVE THAT DECISION TO RESTARTS
+		INCR	Q		# OBTAIN RETURN ADDRESS
+		TCF	CON1 -1
+
+GETNEWNM	EXTEND
+# Page 1411
+		INDEX	Q
+		DCA	0
+		DXCH	TEMPNM
+		CA	TWO
+		ADS	Q		# OBTAIN RETURN ADDRESS
+
+		TCF	TOCON2
+
+OCT14000	EQUALS	PRIO14
+TEMPG		EQUALS	ITEMP1
+TEMPP		EQUALS	ITEMP2
+TEMPNM		EQUALS	ITEMP3
+TEMPBB		EQUALS	ITEMP4
+TEMPSW		EQUALS	ITEMP5
+TEMPSW2		EQUALS	ITEMP6
+TEMPPR		EQUALS	RUPTREG1
+TEMPG2		EQUALS	RUPTREG2
+TEMPP2		EQUALS	RUPTREG3
+
+TEMPBBCN	EQUALS	RUPTREG4
+BB		EQUALS	BBANK
+
+		BANK	14
+		SETLOC	PHASETAB
+		BANK
+
+		EBANK=	PHSNAME1
+		COUNT	10/PHASE
+		
+PHSCHNG2	LXCH	TEMPBBCN
+		CA	TEMPSW
+		MASK	OCT7
+		DOUBLE
+		TS	TEMPG
+
+		CA	TEMPSW
+		MASK	OCT17770
+		EXTEND
+		MP	BIT12
+		TS	TEMPP
+
+		CA	TEMPSW
+		MASK	OCT60000
+		XCH	TEMPSW
+		MASK	OCT14000
+		CCS	A
+		TCF	ONEORTWO
+
+# Page 1412
+		CA	TEMPP		# START STORING THE PHASE INFORMATION
+		NDX	TEMPG
+		TS	PHASE1 -2
+
+BELOW1		CCS	TEMPSW2		# IS IT A PHASCHNG OR A 2PHSCHNG
+		TCF	BELOW2		# IT'S A PHASCHNG
+
+		TCF	+1		# IT'S A 2PHSCHNG
+		CS	TEMPP2
+		LXCH	TEMPP2
+		NDX	TEMPG2
+		DXCH	-PHASE1 -2
+
+		CCS	TEMPSW2
+		NOOP			# CAN'T GET HERE
+		TCF	BELOW2
+
+		CS	TIME1
+		NDX	TEMPG2
+		TS	TBASE1 -2
+
+BELOW2		CCS	TEMPSW		# SEE IF WE SHOULD SET TBASE OR LONGBASE
+		TCF	BELOW3		# SET LONGBASE ONLY
+		TCF	BELOW4		# SET NEITHER
+
+		CS	TIME1		# SET TBASE TO BEGIN WITH
+		NDX	TEMPG
+		TS	TBASE1 -2
+
+		CA	TEMPSW		# SHALL WE NOW SET LONGBASE
+		AD	BIT14COM
+		CCS	A
+		NOOP			# ***** CAN'T GET HERE *****
+BIT14COM	OCT	17777		# ***** CAN'T GET HERE *****
+		TCF	BELOW4		# NO WE NEED ONLY SET TBASE
+
+BELOW3		EXTEND			# SET LONGBASE
+		DCA	TIME2
+		DXCH	LONGBASE
+
+BELOW4		CS	TEMPP		# AND STORE THE FINAL PART OF THE PHASE
+		NDX	TEMPG
+		TS	-PHASE1 -2
+
+		CA	Q
+		LXCH	TEMPBBCN
+		RELINT
+		DTCB
+CON2		LXCH	TEMPBBCN
+# Page 1413
+		CA	TEMPP
+		NDX	TEMPG
+		TS	PHASE1 -2
+
+		CA	TEMPPR
+		NDX	TEMPG
+		TS	PHSPRDT1 -2
+
+		EXTEND
+		DCA	TEMPNM
+		NDX	TEMPG
+		DXCH	PHSNAME1 -2
+
+		TCF	BELOW1
+
+		BLOCK	02
+		SETLOC	FFTAG1
+		BANK
+
+		COUNT	02/PHASE
+		
+CHECKB		MASK	BIT12		# SINCE THIS IS OF TYPE B, THIS BIT SHOULD
+		CCS	A		# BE HERE IF WE ARE TO GET A NEW PRIORITY
+		TCF	GETPRIO		# IT IS, SO GET NEW PRIORITY
+
+		TCF	OLDPRIO		# IT ISN'T, USE THE OLD PRIORITY.
+		
+
+
diff --git a/PINBALL_GAME_BUTTONS_AND_LIGHTS.s b/PINBALL_GAME_BUTTONS_AND_LIGHTS.s
new file mode 100644
index 0000000..266b32b
--- /dev/null
+++ b/PINBALL_GAME_BUTTONS_AND_LIGHTS.s
@@ -0,0 +1,3781 @@
+# Copyright:	Public domain.
+# Filename:	PINBALL_GAME_BUTTONS_AND_LIGHTS.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:	307-389
+# Mod history:	2009-05-08 RSB	Started adapting from the Colossus249/ file 
+#				of the same name, using Comanche055 page 
+#				images.  Finished through page 329.
+#		2009-05-09 RSB	Finished first draft.
+#		2009-05-20 RSB	Corrected a CHKPOOH to CHKP00H.
+#
+# 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 307
+# PROGRAM NAME -- KEYBOARD AND DISPLAY PROGRAM
+# MOD NO -- 4		DATE -- 27 APRIL 1967		ASSEMBLY -- PINDISK REV 17
+# MOD BY -- FILENE
+# LOG SECTION -- PINBALL GAME BUTTONS AND LIGHTS
+#
+# FUNCTIONAL DESCRIPTION
+#
+# THE KEYBOARD AND DISPLAY SYSTEM PROGRAM OPERATES UNDER EXECUTIVE
+# CONTROL AND PROCESSES INFORMATION EXCHANGED BETWEEN THE AGC AND THE
+# COMPUTER OPERATOR.  THE INPUTS TO THE PROGRAM ARE FROM THE KEYBOARD,
+# FROM INTERNAL PROGRAM, AND FROM THE UPLINK.
+#
+# THE LANGUAGE OF COMMUNICATION WITH THE PROGRAM IS A PAIR OF WORDS
+# KNOWN AS VERB AND NOUN.  EACH OF THESE IS REPRESENTED BY A 2 CHARACTER
+# DECIMAL NUMBER.  THE VERB CODE INDICATES WHAT ACTION IS TO BE TAKEN, THE
+# NOUN CODE INDICATES TO WHAT THIS ACTION IS APPLIED.  NOUNS USUALLY
+# REFER TO A GROUP OF ERASABLE REGISTERS.
+#
+# VERBS ARE GROUPED INTO DISPLAYS, LOADS, MONITORS (DISPLAYS THAT ARE
+# UPDATED ONCE PER SECOND), SPECIAL FUNCTIONS, AND EXTENDED VERBS (THESE
+# ARE OUTSIDE OF THE DOMAIN OF PINBALL AND CAN BE FOUND UNDER LOG SECTION
+# `EXTENDED VERBS').
+#
+# A LIST OF VERBS AND NOUNS IS GIVEN IN LOG SECTION `ASSEMBLY AND 
+# OPERATION INFORMATION'.
+#
+# CALLING SEQUENCES --
+#
+# KEYBOARD:
+# EACH DEPRESSION OF A MAIN (NAVIGATION) KEYBOARD BUTTON ACTIVATES
+# INTERRUPT KEYRUPT1 (KEYRUPT2) AND PLACES THE 5 BIT KEY CODE INTO 
+# CHANNEL 15 (CHANNEL 16).  KEYRUPT1 (KEYRUPT2) PLACES THE KEY
+# CODE INTO MPAC, ENTERS AN EXECUTIVE REQUEST FOR THE KEYBOARD AND DISPLAY
+# PROGRAM (AT `CHARIN'), AND EXECUTES A RESUME.
+#
+# UPLINK:
+# EACH WORD RECEIVED BY THE UPLINK ACTIVATES INTERRUPT UPRUPT, WHICH
+# PLACES THE 5 BIT KEY CODE INTO MPAC, ENTERS AN EXECUTIVE REQUEST FOR THE
+# KEYBOARD AND DISPLAY PROGRAM (AT `CHARIN') AND EXECUTES A RESUME.
+#
+# INTERNAL PROGRAMS:
+# INTERNAL PROGRAMS CALL PINBALL AT `NVSUB' WITH THE DESIRED VERB/NOUN
+# CODE IN A (LOW 7 BITS FOR NOUN, NEXT 7 BITS FOR VERB).  DETAILS
+# DESCRIBED ON REMARKS CARDS JUST BEFORE `NVSUB' AND `NVSBWAIT' (SEE
+# SYMBOL TABLE FOR PAGE NUMBERS).
+#
+# NORMAL EXIT MODES --
+#
+#	IF PINBALL WAS CALLED BY EXTERNAL ACTION, THERE ARE FOUR EXITS:
+#		1)	ALL BUT (2), (3), AND (4) EXIT DIRECTLY TO ENDOFJOB.
+# Page 308
+#		2)	EXTENDED VERBS TO TO THE EXTENDED VERB FAN AS PART OF THE
+#			PINBALL EXECUTIVE JOB WITH PRIORITY 30000.  IT IS THE 
+#			RESPONSIBILITY OF THE EXTEDED VERB CALLED TO EVENTUALLY
+#			CHANGE PRIORITY (IF NECESSARY) AD DO AN ENDOFJOB.
+#			ALSO PINBALL IS A NOVAC JOB.  EBANK SET FOR COMMON.
+#		3)	VERB 37.  CHANGE OF PROGRAM (MAJOR MODE) CALLS `V37' IN THE
+#			SERVICE ROUTINES AS PART OF THE PINBALL EXEC JOB WITH PRIO
+#			30000.  THE NEW PROGRAM CODE (MAJOR MODE) IS LEFT IN A.
+#		4)	KEY RELEASE BUTTON CALLS `PINBRNCH' IN THE DISPLAY INTERFACE
+#			ROUTINES AS PART OF THE PINBALL EXEC JOB WITH PRIO 30000 IF 
+#			THE KEY RELEASE LIGHT IS OFF AND `CADRSTOR' IS NOT 40.
+#
+# IF PINBALL WAS CALLED BY INTERNAL PROGRAMS, EXIT FROM PINBALL IS BACK
+# TO CALLING ROUTINE.  DETAILS DESCRIBED IN REMARKS CARDS JUST BEFORE
+# `NVSUB' AND `NVSBWAIT' (SEE SYMBOL TABLE FOR PAGE NUMBERS).
+#
+# ALARM OR ABORT EXIT MODES --
+#
+# 	EXTERNAL INITIATION:
+#		IF SOME IMPROPER SEQUENCE OF KEY CODES IS DETECTED, THE OPERATOR
+#		ERROR LIGHT IS TURNED ON AND EXIT IS TO `ENDOFJOB'.
+#
+#	INTERNAL PROGRAM INITIATION:
+#		IF AN ILLEGAL V/N COMBINATION IS ATTEMPTED, AN ABORT IS CAUSED
+#		(WITH OCTAL 01501).
+#		IF A SECOND ATTEMPT IS MADE TO GO TO SLEEP IN PINBALL, AN ABORT IS
+#		CAUSED (WITH OCTAL 01206).  THERE ARE TWO WAYS TO GO TO SLEEP IN PINBALL:
+#		1)	ENDIDLE OR DATAWAIT.
+#		2)	NVSBWAIT, PRENVBSY, OR NVSUBUSY.
+#
+# CONDITIONS LEADING TO THE ABOVE ARE DESCRIBED IN FORTHCOMING MIT/IL
+# E-REPORT DESCRIBING KEYBOARD AND DISPLAY OPERATION FOR 278.
+#
+# OUTPUT --
+#
+# INFORMATION TO BE SENT TO THE DISPLAY PANEL IS LEFT IN THE `DSPTAB'
+# BUFFERS REGISTERS (UNDER EXEC CONTROL).  `DSPOUT' (A PART OF T4RUPT)
+# HANDLES THE PLACING OF THE `DSPTAB' INFORMATION INTO OUTPUT CHANNEL 10
+# IN INTERRUPT.
+#
+# ERASABLE INITIALIZATION --
+#
+# FRESH START AND RESTART INITIALIZE THE NECESSARY E REGISTERS FOR
+# PINBALL IN `STARTSUB'.  REGISTERS ARE:  DSPTAB BUFFER, CADRSTOR,
+# REQRET, CLPASS, DSPLOCK, MONSAVE, MONSAVE1, VERBREG, NOUNREG, DSPLIST,
+# DSPCOUNT, NOUT.
+#
+# Page 309
+# A COMPLETE LIST OF ALL THE ERASABLES (BOTH RESERVED AND TEMPORARIES) FOR
+# PINBALL IS GIVEN BELOW.
+#
+# THE FOLLOWING ARE OF GENERAL INTEREST --
+#
+# REMARKS CARDS PRECEDE THE REFERENCED SYMBOL DEFINITION.  SEE SYMBOL
+# TABLE TO FIND APPROPRIATE PACE NUMBERS.
+#
+#	NVSUB		CALLING POINT FOR INTERNAL USE OF PINBALL.
+#			OF RELATED INTEREST	NVSBWAIT
+#						NVSUBUSY
+#						PRENVBSY
+#
+#	ENDIDLE		ROUTINE FOR INTERNAL PROGRAMS WISHING TO TO SLEEP WHILE
+#			AWAITING OPERATOR'S RESPONSE.
+#
+#	DSPMM		ROUTINE BY WHICH AN INTERNAL PROGRAM MAY DISPLAY A DECIMAL
+#			PROGRAM CODE (MAJOR MODE) IN THE PROGRAM (MAJOR MODE) LIGHT
+#			(DSPMM DOES NOT DISPLAY DIRECTLY BUT ENTERS EXEC REQUEST
+#			FOR DSPMMJB WITH PRIO 30000 AND RETURNS TO CALLER.)
+#
+#	BLANKSUB	ROUTINE BY WHICH AN INTERNAL PROGRAM MAY BLANK ANY
+#			COMBINATION OF THE DISPLAY REGISTERS R1, R2, R3.
+#
+#	JAMTERM		ROUTINE BY WHICH AN INTERNAL PROGRAM MAY PERFORM THE
+#	JAMPROC		TERMINATE (V 34) OR PROCEED (V33) FUNCTION.
+#
+#	MONITOR		VERBS FOR PERIODIC (1 PER SEC) DISPLAY.
+#
+#	PLEASE PERFORM, PLEASE MARK SITUATIONS
+#		REMARKS DESCRIBING HOW AN INTERNAL ROUTINE SHOULD HANDLE
+#		THESE SITUATIONS CAN BE FOUND JUST BEFORE `NVSUB' (SEE
+#		SYMBOL TABLE FOR PAGE NUMBER).
+#
+#	THE NOUN TABLE FORMAT IS DESCRIBED ON A PAGE OF REMARKS CARDS JUST
+#	BEFORE `DSPABC' (SEE SYMBOL TABLE FOR PAGE NUMBER).
+#
+#	THE NOUN TABLES THEMSELVES ARE FOUND IN LOG SECTION `PINBALL NOUN
+#	TABLES'.
+#
+# FOR FURTHER DETAILS ABOUT OPERATION OF THE KEYBOARD AND DISPLAY SYSTEM
+# PROGRAM, SEE THE MISSION PLAN AND/OR MIT/IL E-2129
+# DESCRIBING KEYBOARD AND DISPLAY OPERATION FOR 278.
+# (Note that this doc by Green and Filene is/was available online at
+# http://hrst.mit.edu/hrs/apollo/public/archive/1706.pdf --- RSB 6/2004.)
+#
+# THE FOLLOWING QUOTATION IS PROVIDED THROUGH THE COURTESY OF THE AUTHORS.
+#
+#	"IT WILL BE PROVED TO THY FACE THAT THOU HAST MEN ABOUT THEE THAT
+# Page 310
+#	USUALLY TALK OF A NOUN AND A VERB, AND SUCH ABOMINABLE WORDS AS NO
+#	CHRISTIAN EAR CAN ENDURE TO HEAR."
+#					HENRY 6, ACT 2, SCENE 4
+
+# THE FOLLOWING ASSIGNMENTS FOR PINBALL ARE MADE ELSEWHERE
+
+# RESERVED FOR PINBALL EXECUTIVE ACTION
+#
+#DSPCOUNT	ERASE			# DISPLAY POSITION INDICATOR
+#DECBRNCH	ERASE			# +DEC, -DEC, OCT INDICATOR
+#VERBREG	ERASE			# VERB CODE
+#NOUNREG	ERASE			# NOUN CODE
+#XREG		ERASE			# R1 INPUT BUFFER
+#YREG		ERASE			# R2 INPUT BUFFER
+#ZREG		ERASE			# R3 INPUT BUFFER
+#XREGLP		ERASE			# LO PART OF XREG (FOR DEC CONV ONLY)
+#YREGLP		ERASE			# LO PART OF YREG (FOR DEC CONV ONLY)
+#HITEMOUT	=	YREGLP		# TEMP FOR DISPLAY OF HRS,MIN,SEC
+#					# MUST = LOTEMOUT-1.
+#ZREGLP		ERASE			# LO PART OF ZREG (FOR DEC CONV ONLY)
+#LOTEMOUT	=	ZREGLP		# TEMP FOR DISPLAY OF HRS,MIN,SEC
+#					# MUST = HITEMOUT+1
+#MODREG		ERASE			# MODE CODE
+#DSPLOCK	ERASE			# KEYBOARD/SUBROUTINE CALL INTERLOCK
+#REQRET		ERASE			# RETURN REGISTER FOR LOAD
+#LOADSTAT	ERASE			# STATUS INDICATOR FOR LOADTST
+#CLPASS		ERASE			# PASS INDICATOR FOR CLEAR
+#NOUT		ERASE			# ACTIVITY COUNTER FOR DSPTAB
+#NOUNCADR	ERASE			# MACHINE CADR FOR NOUN
+#MONSAVE	ERASE			# N/V CODE FOR MONITOR. (= MONSAVE1-1)
+#MONSAVE1	ERASE			# NOUNCADR FOR MONITOR (MATBS1) = MONSAVE+1
+#MONSAVE2	ERASE			# NVMONOPT OPTIONS
+#DSPTAB		ERASE	+13D		# 0-10, DISPLAY PANEL BUFFER 11-13, C RELAYS.
+#CADRSTOR	ERASE			# ENDIDLE STORAGE
+#NVQTEM		ERASE			# NVSUB STORAGE FOR CALLING ADDRESS
+#					# MUST = NVBNKTEM-1.
+#NVBNKTEM	ERASE			# NVSUB STORAGE FOR CALLING BANK
+#					# MUST = NVQTEM+1
+#VERBSAVE	ERASE			# NEEDED FOR RECYCLE
+#DSPLIST	ERASE			# WAITING REG FOR DSP SYST INTERNAL USE
+#EXTVBACT	ERASE			# EXTENDED VERB ACTIVITY INTERLOCK
+#DSPTEM1	ERASE	+2		# BUFFER STORAGE AREA 1 (MOSTLY FOR TIME)
+#DSPTEM2	ERASE	+2		# BUFFER STORAGE AREA 2 (MOSTLY FOR DEG)
+#
+# END OF ERASABLES RESERVED FOR PINBALL EXECUTIVE ACTION.
+#
+# TEMPORARIES FOR PINBALL EXECUTIVE ACTION
+# Page 311
+#DSEXIT		=	INTB15+		# RETURN FOR DSPIN
+#EXITEM		=	INTB15+		# RETURN FOR SCALE FACTOR ROUTINE SELECT
+#BLANKRET	=	INTB15+		# RETURN FOR 2BLANK
+#WRDRET		=	INTBIT15	# RETURN FOR 5BLANK.
+#WDRET		=	INTBIT15	# RETURN FOR DSPWD
+#DECRET		=	INTBIT15	# RETURN FOR PUTCOM(DEC LOAD)
+#21/22REG	=	INTBIT15	# TEMP FOR CHARIN
+#UPDATRET	=	POLISH		# RETURN FOR UPDATNN, UPDATVB
+#CHAR		=	POLISH		# TEMP FOR CHARIN
+#ERCNT		=	POLISH		# COUNTER FOR ERROR LIGHT RESET
+#DECOUNT	=	POLISH		# COUNTER FOR SCALING AND DISPLAY (DEC)
+#SGNON		=	VBUF		# TEMP FOR +,- ON
+#NOUNTEM	=	VBUF		# COUNTER FOR MIXNOUN FETCH
+#DISTEM		= 	VBUF		# COUNTER FOR OCTAL DISPLAY VERB
+#DECTEM		=	VBUF		# COUNTER FOR FETCH (DEC DISPLAY VERBS)
+#SGNOFF		=	VBUF +1		# TEMP FOR +,- ON
+#NVTEMP		=	VBUF +1		# TEMP FOR NVSUB
+#SFTEMP1	=	VBUF +1		# STORAGE FOR SF CONST HI PART (=SFTEMP2-1)
+#HITEMIN	=	VBUF +1		# TEMP FOR LOAD OF HRS,MIN,SEC
+#					# 	MUST = LOTEMIN-1.
+#CODE		=	VBUF +2		# FOR DSPIN
+#SFTEMP2	=	VBUF +2		# STORAGE FOR SF CONST LO PART (=SFTEMP1+1)
+#LOTEMIN	=	VBUF +2		# TEMP FOR LOAD OF HRS,MIN,SEC
+#					# 	MUST = HITEMIN+1
+#MIXTEMP	=	VBUF +3		# FOR MIXNOUN DATA
+#SIGNRET	=	VBUF +3		# RETURN FOR +,- ON
+# ALSO MIXTEMP+1 = VBUF+4, MIXTEMP+2 = VBUF+5
+#ENTRET		=	DOTINC		# EXIT FROM ENTER
+#WDONT		=	DOTRET		# CHAR COUNTER FOR DSPWD
+#INREL		=	DOTRET		# INPUT BUFFER SELECTOR (X,Y,Z, REG )
+#DSPMMTEM	=	MATINC		# DSPCOUNT SAVE FOR DSPMM
+#MIXBR		=	MATINC		# INDICATOR FOR MIXED OR NORMAL NOUN
+#TEM1		ERASE			# EXEC TEMP
+#DSREL		=	TEM1		# REL ADDRESS FOR DSPIN
+#TEM2		ERASE			# EXEC TEMP
+#DSMAG		=	TEM2		# MAGNITUDE STORE FOR DSPIN
+#IDADDTEM	=	TEM2		# MIXNOUN INDIRECT ADDRESS STORAGE
+#TEM3		ERASE			# EXEC TEMP
+#COUNT		=	TEM3		# FOR DSPIN
+# Page 312
+#TEM4		ERASE			# EXEC TEMP
+#LSTPTR		=	TEM4		# LIST POINTER FOR GRABUSY
+#RELRET		=	TEM4		# RETURN FOR RELDSP
+#FREERET	=	TEM4		# RETURN FOR FREEDSP
+#DSPWDRET	=	TEM4		# RETURN FOR DSPSIGN
+#SEPSCRET	=	TEM4		# RETURN FOR SEPSEC
+#SEPMNRET	=	TEM4		# RETURN FOR SEPMIN
+#TEM5		ERASE			# EXEC TEMP
+#NOUNADD	=	TEM5		# TEMP STORAGE FOR NOUN ADDRESS
+#NNADTEM	ERASE			# TEMP FOR NOUN ADDRESS TABLE ENTRY
+#NNTYPTEM	ERASE			# TEMP FOR NOUN TYPE TABLE ENTRY
+#IDAD1TEM	ERASE			# TEMP FOR INDIR ADDRESS TABLE ENTRY (MIXNN)
+#					# MUST = IDAD2TEM-1, = IDAD3TEM-2
+#IDAD2TEM	ERASE			# TEMP FOR INDIR ADDRESS TABLE ENTRY (MIXNN)
+#					# MUST = IDAD1TEM+1, IDAD3TEM-1.
+#IDAD3TEM	ERASE			# TEMP FOR INDIR ADDRESS TABLE ENTRY (MIXNN)
+#					# MUST = IDAD1TEM+2, IDAD2TEM+1.
+#RUTMXTEM	ERASE			# TEMP FOR SF ROUT TABLE ENTRY (MIXNN ONLY)
+#
+# END OF TEMPORARIES FOR PINBALL EXECUTIVE ACTION.
+#
+# ADDITIONAL TEMPORARIES FOR PINBALL EXECUTIVE ACTION
+#
+#	MPAC, THRU MPAC +6
+#	BUF, +1, +2
+#	BUF2, +1, +2
+#	MPTEMP
+#	ADDRWD
+#
+# END OF ADDITIONAL TEMPS FOR PINBALL EXEC ACTION
+#
+# RESERVED FOR PINBALL INTERRUPT ACTION
+#
+#DSPCNT		ERASE			# COUNTER FOR DSPOUT
+#UPLOCK		ERASE			# BIT1 = UPLINK INTERLOCK (ACTIVATED BY
+#					# RECEPTION OF A BAD MESSAGE IN UPLINK)
+#
+# END OF ERASABLES RESERVED FOR PINBALL INTERRUPT ACTION
+#
+# TEMPORARIES FOR PINBALL INTERRUPT ACTION
+#
+#KEYTEMP1	=	WAITEXIT	# TEMP FOR KEYRUPT, UPRUPT
+#DSRUPTEM	=	WAITEXIT	# TEMP FOR DSPOUT
+#KEYTEMP2	=	RUPTAGN		# TEMP FOR KEYRUPT, UPRUPT
+#
+# END OF TEMPORARIES FOR PINBALL INTERRUPT ACTION
+
+# Page 313
+# THE INPUT CODES ASSUMED FOR THE KEYBOARD ARE,
+#	0		10000
+#	1		00001
+#	9		01001
+#	VERB		10001
+#	ERROR RES	10010
+#	KEY RLSE	11001
+#	+		11010
+#	-		11011
+#	ENTER		11100
+#	CLEAR		11110
+#	NOUN		11111
+#
+# OUTPUT FORMAT FOR DISPLAY PANEL.  SET OUT0 TO AAAABCCCCCDDDDD.
+# A'S 	SELECTS A RELAYWORD.  THIS DETERMINES WHICH PAIR OF CHARACTERS ARE
+#     	ENERGIZED.
+# B	FOR SPECIAL RELAYS SUCH AS SIGNS ETC.
+# C'S	5 BIT RELAY CODE FOR LEFT CHAR OF PAIR SELECTED BY RELAYWORD.
+# D'S	5 BIT RELAY CODE FOR RIGHT CHAR OF PAIR SELECTED BY RELAYWORD.
+#
+# THE PANEL APPEARS AS FOLLOWS,
+#	MD1		MD2 (MAJOR MODE)
+#	VD1		VD2 (VERB)			ND1		ND2 (NOUN)
+#	R1D1		R1D2		R1D3		R1D4		R1D5 (R1)
+#	R2D1		R2D2		R2D3		R2D4		R2D5 (R2)
+#	R3D1		R3D2		R3D3		R3D4		R3D5 (R3)
+#
+# EACH OF THESE IS GIVEN A DSPCOUNT NUMBER FOR USE WITHIN COMPUTATION ONLY
+#
+#	MD1	25		R2D1	11		ALL ARE OCTAL
+#	MD2	24		R2D2	10
+#	VD1	23		R2D3	7
+#	VD2	22		R2D4	6
+#	ND1	21		R2D5	5
+#	ND2	20		R3D1	4
+#	R1D1	16		R3D2	3
+#	R1D2	15		R3D3	2
+#	R1D3	14		R3D4	1
+#	R1D4	13		R3D5	0
+#	R1D5	12
+#
+# THERE IS AN 11-REGISTER TABLE (DSPTAB) FOR THE DISPLAY PANEL.
+#
+#	DSPTAB		RELAYWD		BIT11		BITS 10-6	BITS 5-1
+#	RELADD
+#	10		1011				MD1 (25)	MD2  (24)
+#	9		1010				VD1 (23)	VD2  (22)
+#	8		1001				ND1 (21)	ND2  (20)
+#	7		1000						R1D1 (16)
+# Page 314
+#	6		0111		+R1		R1D2 (15)	R1D3 (14)
+#	5		0110		-R1		R1D4 (13)	R1D5 (12)
+#	4		0101		+R2		R2D1 (11)	R2D2 (10)
+#	3		0100		-R2		R2D3 (7)	R2D4 (6)
+#	2		0011				R2D5 (5)	R3D1 (4)
+#	1		0010		+R3		R3D2 (3)	R3D3 (2)
+#	0		0001		-R3		R3D4 (1)	R3D5 (0)
+#			0000	    NO RELAYWORD
+#
+# THE 5-BIT OUTOUT RELAY CODES ARE:
+#
+#	BLANK	00000
+#	0	10101
+#	1	00011
+#	2	11001
+#	3	11011
+#	4	01111
+#	5	11110
+#	6	11100
+#	7	10011
+#	8	11101
+#	9	11111
+#
+# OUTPUT BITS USED BY PINBALL:
+#
+#	KEY RELEASE LIGHT	--	BIT 5 OF CHANNEL 11
+#	VERB/NOUN FLASH		--	BIT 6 OF CHANNEL 11
+#	OPERATOR ERROR LIGHT	--	BIT 7 OF CHANNEL 11
+
+# Page 315
+# START OF EXECUTIVE SECTION OF PINBALL
+
+		BANK	40
+		SETLOC	PINBALL1
+		BANK
+		
+		COUNT	40/PIN
+		
+CHARIN		CAF	ONE		# BLOCK DISPLAY SYST
+		XCH	DSPLOCK		# MAKE DSP SYST BUSY, BUT SAVE OLD
+		TS	21/22REG	# C(DSPLOCK) FOR ERROR LIGHT RESET.
+		CCS	CADRSTOR	# ALL KEYS EXCEPT ER TURN ON KR LITE IF
+		TC	+2		# CADRSTOR IS FULL.  THIS REMINDS OPERATOR
+		TC	CHARIN2		# TO RE-ESTABLISH A FLASHING DISPLAY
+		CS	ELRCODE1	# WHICH HE HAS OBSCURED WITH DISPLAYS OF
+		AD	MPAC		# HIS OWN (SEE REMARKS PRECEDING ROUTINE
+		EXTEND			# VBRELDSP).
+		BZF	CHARIN2
+		TC	RELDSPON
+CHARIN2		XCH	MPAC
+		TS	CHAR
+		INDEX	A
+		TC	+1		#   INPUT CODE	    FUNCTION
+		TC	CHARALRM	# 	0
+		TC	NUM		#	1
+		TC	NUM		#	2
+		TC	NUM		#	3
+		TC	NUM		#	4
+		TC	NUM		#	5
+		TC	NUM		#	6
+		TC	NUM		# 	7
+		TC	89TEST		#	10		8
+		TC	89TEST		#	11		9
+		TC	CHARALRM	#	12
+		TC	CHARALRM	#	13
+		TC	CHARALRM	#	14
+		TC	CHARALRM	#	15
+		TC	CHARALRM	#	16
+		TC	CHARALRM	#	17
+		TC	NUM	-2	#	20		0
+		TC	VERB		#	21		VERB
+		TC	ERROR		#	22		ERROR LIGHT RESET
+		TC	CHARALRM	#	23
+		TC	CHARALRM	#	24
+		TC	CHARALRM	#	25
+		TC	CHARALRM	#	26
+		TC	CHARALRM	#	27
+		TC	CHARALRM	#	30
+		TC	VBRELDSP	#	31		KEY RELEASE
+# Page 316
+		TC	POSGN		#	32		+
+		TC	NEGSGN		#	33		-
+		TC	ENTERJMP	#	34		ENTER
+		TC	CHARALRM	#	35
+		TC	CLEAR		#	36		CLEAR
+		TC	NOUN		#	37		NOUN
+		
+ELRCODE1	OCT	22
+ENTERJMP	TC	POSTJUMP
+		CADR	ENTER
+		
+89TEST		CCS	DSPCOUNT
+		TC	+4		# +
+		TC	+3		# +0
+		TC	ENDOFJOB	# - BLOCK DATA IN IF DSPCOUNT IS - OR -0
+		TC	ENDOFJOB	# -0
+		CAF	THREE
+		MASK	DECBRNCH
+		CCS	A
+		TC	NUM		# IF DECBRNCH IS +, 8 OR 9 OK
+		TC	CHARALRM	# IF DECBRNCH IS +0, REJECT 8 OR 9
+		
+# NUM ASSEMBLES OCTAL 3 BITS AT A TIME.  FOR DECIMAL IT CONVERTS INCOMING
+# WORD AS A FRACTION, KEEPING RESULTS TO DP.
+# OCTAL RESULTS ARE LEFT IN XREG, YREG, OR ZREG.  HI PART OF DEC IN XREG,
+# YREG, ZREG.  THE LOW PARTS IN XREGLP, YREGLP, OR ZREGLP.
+# DECBRNCH IS LEFT AT +0 FOR OCT, +1 FOR + DEC, +2 FOR - DEC.
+# IF DSPCOUNT WAS LEFT -, NO MORE DATA IS ACCEPTED.
+
+		CAF	ZERO
+		TS	CHAR
+NUM		CCS	DSPCOUNT
+		TC	+4		# +
+		TC	+3		# +0
+		TC	+1		# -BLOCK DATA IN IF DSPCOUNT IS -
+		TC	ENDOFJOB	# -0
+		TC	GETINREL
+		CCS	CLPASS		# IF CLPASS IS + OR +0, MAKE IT +0.
+		CAF	ZERO
+		TS	CLPASS
+		TC	+1
+		INDEX	CHAR
+		CAF	RELTAB
+		MASK	LOW5
+		TS	CODE
+		CA	DSPCOUNT
+		TS	COUNT
+		TC	DSPIN
+# Page 317
+		CAF	THREE
+		MASK	DECBRNCH
+		CCS	A		# +0, OCTAL.  +1, + DEC.  +2, - DEC.
+		TC	DECTOBIN	# +
+		INDEX	INREL		# +0 OCTAL
+		XCH	VERBREG
+		TS	CYL
+		CS	CYL
+		CS	CYL
+		XCH	CYL
+		AD	CHAR
+		TC	ENDNMTST
+DECTOBIN	INDEX	INREL
+		XCH	VERBREG
+		TS	MPAC		# SUM X 2EXP-14 IN MPAC
+		CAF	ZERO
+		TS	MPAC +1
+		CAF	TEN		# 10 X 2EXP-14
+		TC	SHORTMP		# 10SUM X 2EXP-28 IN MPAC, MPAC+1
+		XCH	MPAC +1
+		AD	CHAR
+		TS	MPAC +1
+		TC	ENDNMTST	# NO OF
+		ADS	MPAC		# OF MUST BE 5TH CHAR
+		TC	DECEND
+ENDNMTST	INDEX	INREL
+		TS	VERBREG
+		CS	DSPCOUNT
+		INDEX	INREL
+		AD	CRITCON
+		EXTEND
+		BZF	ENDNUM		# -0, DSPCOUNT = CRITCON
+		TC	MORNUM		# -, DSPCOUNT G/ CRITCON
+ENDNUM		CAF	THREE
+		MASK	DECBRNCH
+		CCS	A
+		TC	DECEND
+ENDALL		CS	DSPCOUNT	# BLOCK NUMIN BY PLACING DSPCOUNT
+		TC	MORNUM +1	# NEGATIVELY
+DECEND		CS	ONE
+		AD	INREL
+		EXTEND
+		BZMF	ENDALL		# IF INREL=0,1 (VBREG,NNREG) LEAVE WHOLE
+		TC	DMP		# IF INREL=2,3,4 (R1,R2,R3), CONVERT TO FRAC
+					# MULT SUM X 2EXP-28 IN MPAC, MPAC+1 BY
+		ADRES	DECON		# 2EXP14/10EXP5, GIVES (SUM/10EXP5)X2EXP-14
+		CAF	THREE		# IN MPAC, +1, +2.
+		MASK	DECBRNCH
+		INDEX	A
+		TC	+0
+# Page 318
+		TC	+DECSGN
+		EXTEND			# - CASE
+		DCS	MPAC +1
+		DXCH	MPAC +1
++DECSGN		XCH	MPAC +2
+		INDEX	INREL
+		TS	XREGLP -2
+		XCH	MPAC +1
+		INDEX	INREL
+		TS	VERBREG
+		TC	ENDALL
+MORNUM		CCS	DSPCOUNT	# DECREMENT DSPCOUNT
+		TS	DSPCOUNT
+		TC	ENDOFJOB
+		
+CRITCON		OCT	22		# (DEC 18)
+		OCT	20		# (DEC 16)
+		OCT	12		# (DEC 10)
+		OCT	5
+		OCT	0
+		
+DECON		2DEC	1 E-5 B14	# 2EXP14/10EXP5 = .16384 DEC
+
+# GETINREL GETS PROPER DATA REG REL ADDRESS FOR CURRENT C(DSPCOUNT) AND
+# PUTS IN INTO INREL.  +0 VERBREG, 1 NOUNREG, 2 XREG, 3 YREG, 4 ZREG.
+
+GETINREL	INDEX	DSPCOUNT
+		CAF	INRELTAB
+		TS	INREL		# (A TEMP. REG)
+		TC	Q
+		
+INRELTAB	OCT	4		# R3D5 (DSPCOUNT = 0)
+		OCT	4		# R3D4		 =(1)
+		OCT	4		# R3D3		 =(2)
+		OCT	4		# R3D2		 =(3)
+		OCT	4	 	# R3D1		 =(4)
+		OCT	3		# R2D5		 =(5)
+		OCT	3		# R2D4		 =(6)
+		OCT	3		# R2D3		 =(7)
+		OCT	3		# R2D2		 =(8D)
+		OCT	3		# R2D1		 =(9D)
+		OCT	2		# R1D5		 =(10D)
+		OCT	2		# R1D4		 =(11D)
+		OCT	2		# R1D3		 =(12D)
+		OCT	2		# R1D2		 =(13D)
+		OCT	2		# R1D1		 =(14D)
+		TC	CCSHOLE		# NO DISCOUNT NUMBER = 15D
+		OCT	1		# ND2		 =(16D)
+# Page 319
+		OCT	1		# ND1		 =(17D)
+		OCT	0		# VD2		 =(18D)
+		OCT	0		# VD1		 =(19D)
+		
+VERB		CAF	ZERO
+		TS	VERBREG
+		CAF	VD1
+NVCOM		TS	DSPCOUNT
+		TC	2BLANK
+		CAF	ONE
+		TS	DECBRNCH	# SET FOR DEC V/N CODE
+		CAF	ZERO
+		TS	REQRET		# SET FOR ENTPAS0
+		CAF	ENDINST		# IF DSPALARM OCCURS BEFORE FIRST ENTPAS0
+		TS	ENTRET		# OR NVSUB, ENTRET MUST ALREADY BE SET
+					# TO TC ENDOFJOB
+		TC	ENDOFJOB
+NOUN		CAF	ZERO
+		TS	NOUNREG
+		CAF	ND1		# ND1, OCT 21 (DEC 17)
+		TC	NVCOM
+		
+NEGSGN		TC	SIGNTEST
+		TC 	-ON
+		CAF	TWO
+BOTHSGN		INDEX	INREL		# SET DEC COMP BIT TO 1 (IN DECBRNCH)
+		AD	BIT7		# BIT 5 FOR R1.  BIT 4 FOR R2.
+		ADS	DECBRNCH	# BIT 3 FOR R3.
+FIXCLPAS	CCS	CLPASS		# IF CLPASS IS + OR +0.  MAKE IT +0.
+		CAF	ZERO
+		TS	CLPASS
+		TC	+1
+		TC	ENDOFJOB
+		
+POSGN		TC	SIGNTEST
+		TC	+ON
+		CAF	ONE
+		TC	BOTHSGN
+		
++ON		LXCH	Q
+		TC	GETINREL
+		INDEX	INREL
+		CAF	SGNTAB -2
+		TS	SGNOFF
+		AD 	ONE
+		TS	SGNON
+SGNCOM		CAF	ZERO
+		TS	CODE
+# Page 320
+		XCH	SGNOFF
+		TC	11DSPIN
+		CAF	BIT11
+		TS	CODE
+		XCH	SGNON
+		TC	11DSPIN
+		TC	L
+-ON		LXCH	Q
+		TC	GETINREL
+		INDEX	INREL
+		CAF	SGNTAB -2
+		TS	SGNON
+		AD	ONE
+		TS	SGNOFF
+		TC	SGNCOM
+		
+SGNTAB		OCT	5		# -R1
+		OCT	3		# -R2
+		OCT	0		# -R3
+		
+SIGNTEST	LXCH	Q		# ALLOWS +,- ONLY WHEN DSPCOUNT=R1D1,
+		CAF	THREE		# R2D1, OR R3D1.  ALLOWS ONLY FIRST OF
+		MASK	DECBRNCH	# CONSECUTIVE +/- CHARACTERS.
+		CCS	A		# IF LOW2 BITS OF DECBRNCH NOT 0.  SIGN
+		TC	ENDOFJOB	# FOR THIS WORD ALREADY IN.  REJECT.
+		CS	R1D1
+		TC	SGNTST1
+		CS	R2D1
+		TC	SGNTST1
+		CS	R3D1
+		TC	SGNTST1
+		TC	ENDOFJOB	# NO MATCH FOUND.  SIGN ILLEGAL
+SGNTST1		AD	DSPCOUNT
+		EXTEND
+		BZF	+2		# MATCH FOUND
+		TC	Q
+		TC	L		# SIGN LEGAL
+		
+# CLEAR BLANKS WHICH R1, R2, R3 IS CURRENT OR LAST TO BE DISPLAYED (PERTINENT
+# XREG, YREG, ZREG IS CLEARED).  SUCCESSIVE CLEARS TAKE CARE OF EACH RX
+# L/ RC UNTIL R1 IS DONE.  THEN NO FURTHER ACTION.
+#
+# THE SINGLE COMPONENT LOAD VERBS ALLOW ONLY THE SINGLE RC THAT IS 
+# APPROPRIATE TO BE CLEARED.
+#
+# CLPASS	+0 PASS0, CAN BE BACKED UP
+#		+NZ HIPASS, CAN BE BACKED UP
+#		-NZ PASS0, CANNOT BE BACKED UP
+# Page 321
+CLEAR		CCS	DSPCOUNT
+		AD	ONE
+		TC	+2
+		AD	ONE
+		INDEX	A		# DO NOT CHANGE DSPCOUNT BECAUSE MAY LATER
+		CAF	INRELTAB	# FAIL LEGALTST.
+		TS	INREL		# MUST SET INREL, EVEN FOR HIPASS.
+		CCS	CLPASS
+		TC	CLPASHI		# +
+		TC	+2		# +0	IF CLPASS IS +0 OR -, IT IS PASS0
+		TC	+1		# -
+		CA	INREL
+		TC	LEGALTST
+		TC	CLEAR1
+CLPASHI		CCS	INREL
+		TS	INREL
+		TC	LEGALTST
+		CAF	DOUBLK +2	# +3 TO - NUMBER, BACKS DATA REQUESTS.
+		ADS	REQRET
+		CA	INREL
+		TS	MIXTEMP		# TEMP STORAGE FOR INREL
+		EXTEND
+		DIM	VERBREG		# DECREMENT VERB AND RE-DISPLAY
+		TC	BANKCALL
+		CADR	UPDATVB
+		CA	MIXTEMP
+		TS	INREL		# RESTORE INREL
+CLEAR1		TC	CLR5
+		INCR	CLPASS		# ONLY IF CLPASS IS + OR +0
+		TC	ENDOFJOB	# SET FOR HIGHER PASS.
+CLR5		LXCH	Q		# USED 5BLANK BUT AVOIDS ITS TC GETINREL
+		TC	5BLANK +2
+LEGALTST	AD	NEG2
+		CCS	A
+		TC	Q		# LEGAL 	INREL G/2
+		TC	CCSHOLE
+		TC	ENDOFJOB	# ILLEGAL 	INREL=0,1
+		TC	Q		# LEGAL		INREL=2
+		
+# 5BLANK BLANKS 5 CHAR DISPLAY WORD IN R1, R2, OR R3.  IT ALSO ZEROES XREG,
+# YREG, OR ZREG.  PLACE ANY + DSPCOUNT NUMBER FOR PERTINENT RC INTO DSPCOUNT.
+# DSPCOUNT IS LEFT SET TO LEFT MOST DSP NUMB FOR RC JUST BLANKED.
+
+		TS	DSPCOUNT	# NEEDED FOR BLANKSUB
+5BLANK		LXCH	Q
+		TC	GETINREL
+		CAF	ZERO
+		INDEX	INREL
+		TS	VERBREG		# ZERO X, Y, Z, REG.
+# Page 322
+		INDEX	INREL
+		TS	XREGLP	-2
+		TS	CODE
+		INDEX	INREL		# ZERO PERTINENT DEC COMP BIT.
+		CS	BIT7		# PROTECT OTHERS
+		MASK	DECBRNCH
+		MASK	BRNCHCON	# ZERO LOW 2 BITS.
+		TS	DECBRNCH
+		INDEX	INREL
+		CAF	SINBLANK -2	# BLANK ISOLATED CHAR SEPARATELY
+		TS	COUNT
+		TC	DSPIN
+5BLANK1		INDEX	INREL
+		CAF	DOUBLK	 -2
+		TS	DSPCOUNT
+		TC	2BLANK
+		CS	TWO
+		ADS	DSPCOUNT
+		TC	2BLANK
+		INDEX	INREL
+		CAF	R1D1	-2
+		TS	DSPCOUNT	# SET DSPCOUNT TO LEFT MOST DSP NUMBER
+		TC	L		# OF REG. JUST BLANKED
+		
+SINBLANK	OCT	16		# DEC 14
+		OCT	5
+		OCT	4
+DOUBLK		OCT	15		# DEC 13
+		OCT	11		# DEC 9
+		OCT	3
+		
+BRNCHCON	OCT	77774
+
+# 2BLANK BLANKS TWO CHAR. PLACE DSP NUMBER OF LEFT CHAR OF THE PAIR INTO
+# DSPCOUNT.  THIS NUMBER IS LEFT IN DSPCOUNT
+
+2BLANK		CA	DSPCOUNT
+		TS	SR
+		CS	BLANKCON
+		INHINT
+		INDEX	SR
+		XCH	DSPTAB
+		EXTEND
+		BZMF 	+2		# IF OLD CONTENTS -, NOUT OK
+		INCR	NOUT		# IF OLD CONTENTS +, +1 TO NOUT
+		RELINT			# IF -, NOUT OK
+		TC	Q
+BLANKCON	OCT	4000
+
+# Page 323
+# ENTER PASS 0 IS THE EXECUTE FUNCTION.  HIGHER ORDER ENTERS ARE TO LOAD
+# DATA.  THE SIGN OF REQRET DETERMINES THE PASS, + FOR PASS 0, - FOR HIGHER
+# PASSES
+#
+# MACHINE CADR TO BE SPECIFIED (MCTBS) NOUNS DESIRE AN ECADR TO BE LOADED
+# WHEN USED WITH LOAD VERBS, MONITOR VERBS, OR DISPLAY VERBS (EXCEPT
+# VERB = FIXED MEMORY DISPLAY, WHICH REQUIRES AN FCADR).
+
+		BANK	41
+		SETLOC	PINBALL2
+		BANK
+		
+		COUNT	41/PIN
+		
+NVSUBB		TC	NVSUB1		# STANDARD LEAD INS.  DON'T MOVE.
+LOADLV1		TC	LOADLV
+
+# END OF STANDARD LEAD INS.
+
+ENTER		CAF	ZERO
+		TS	CLPASS
+		CAF	ENDINST
+		TS	ENTRET
+		CCS	REQRET
+		TC	ENTPAS0		# IF +, PASS 0
+		TC	ENTPAS0		# IF +, PASS 0
+		TC	+1		# IF -, NOT PASS 0
+ENTPASHI	CAF	MMADREF
+		AD	REQRET		# IF L/ 2 CHAR IN FOR MM CODE, ALARM
+		EXTEND			# AND RECYCLE (DECIDE AT MCHANG+1).
+		BZF	ACCEPTWD
+		CAF	THREE		# IF DEC, ALARM IF L/ 5 CHAR IN FOR DATA,
+		MASK	DECBRNCH	# BUT LEAVE REQRET - AND FLASH ON, SO
+		CCS	A		# OPERATOR CAN SUPPLY MISSING NUMERICAL
+		TC	+2		# CHARACTERS AND CONTINUE.
+		TC	ACCEPTWD	# OCTAL.  ANY NUMBER OF CHAR OK.
+		CCS	DSPCOUNT
+		TC	GODSPALM	# LESS THAN 5 CHAR DEC(DSPCOUNT IS +)
+		TC	GODSPALM	# LESS THAN 5 CHAR DEC(DSPCOUNT IS +)
+		TC	+1		# 5 CHAR IN (DSPCOUNT IS -)
+ACCEPTWD	CS	REQRET		# 5 CHAR IN (DSPCOUNT IS -)
+		TS	REQRET		# SET REQRET +.
+		TC	FLASHOFF
+		TC	REQRET
+		
+ENTEXIT		=	ENTRET
+
+MMADREF		ADRES	MMCHANG +1	# ASSUMES TC REQMM AT MMCHANG.
+
+# Page 324
+LOWVERB		DEC	28		# LOWER VERB THAT AVOIDS NOUN TEST.
+
+ENTPAS0		CAF	ZERO		# NOUN VERB SUB ENTERS HERE
+		TS	DECBRNCH
+		CS	VD1		# BLOCK FURTHER NUM CHAR, SO THAT STRAY
+		TS	DSPCOUNT	# CHAR DO NOT GET INTO VERB OR NOUN LTS.
+TESTVB		CS	VERBREG		# IF VERB IS G/E LOWVB, SKIP NOUN TEST.
+		TS	VERBSAVE	# SAVE VERB FOR POSSIBLE RECYCLE.
+		AD	LOWVERB		# LOWVERB - VB
+		EXTEND
+		BZMF	VERBFAN		# VERB G/ E LOWVERB
+TESTNN		EXTEND			# VERB L/ LOWVERB
+		DCA	LODNNLOC	# SWITCH BANKS TO NOUN TABLE READING
+		DXCH	Z		# ROUTINE.
+		INDEX	MIXBR
+		TC	+0
+		TC	+2		# NORMAL
+		TC	MIXNOUN		# MIXED
+		CCS	NNADTEM		# NORMAL
+		TC	VERBFAN -2	#	NORMAL 	IF +
+		TC	GODSPALM	# NOT IN USE	IF +0
+		TC	REQADD		# SPECIFY MACHINE CADR IF -
+		INCR	NOUNCADR	# AUGMENT MACHINE CADR IF -0
+		TC	SETNADD		# ECADR FROM NOUNCADR, SETS ED, NOUNADD.
+		TC	INTMCTBS +2
+REQADD		CAF	BIT15		# SET CLPASS FOR PASS 0 ONLY
+		TS	CLPASS
+		CS	ENDINST		# TEST IF REACHED HERE FROM INTERNAL OR
+		AD	ENTEXIT		#	FROM EXTERNAL
+		EXTEND
+		BZF	+2		# EXTERNAL MACH CADR TO BE SPECIFIED
+		TC	INTMCTBS
+		TC	REQDATZ		# EXTERNAL MACH CADR TO BE SPECIFIED
+		CCS	DECBRNCH	# ALARM AND RECYCLE IF DECIMAL USED
+		TC	ALMCYCLE	# FOR MCTBS.
+		CS	VD1		# OCTAL USED OK
+		TS	DSPCOUNT	# BLOCK NUM CHAR IN
+		CCS	CADRSTOR
+		TC	+3		# EXTERNAL MCTBS DISPLAY WILL LEAVE FLASH
+		TC	USEADD		# ON IF ENDIDLE NOT = +0.
+		TC	+1
+		TC	FLASHON
+USEADD		XCH	ZREG
+		TC	SETNCADR	# ECADR INTO NOUNCADR.  SET EB, NOUNADD.
+		EXTEND
+		DCA	LODNNLOC	# SWITCH BANKS TO NOUN TAB E READING
+		DXCH	Z		# ROUTINE.
+		TC	VERBFAN
+		
+		EBANK=	DSPCOUNT
+# Page 325
+LODNNLOC	2CADR	LODNNTAB
+
+NEG5		OCT	77772
+
+INTMCTBS	CA	MPAC	+2	# INTERNAL MACH CADR TO BE SPECIFIED.
+		TC	SETNCADR	# ECADR INTO NOUNCADR.  SET EB, NOUNADD.
+		CS	FIVE		# NVSUB CALL LEFT CADR IN MPAC+2 FOR MACH
+		AD	VERBREG		# CADR TO BE SPECIFIED.
+		EXTEND
+		BZF	VERBFAN		# DON'T DISPLAY CADR IF VB = 05.
+		CAF	R3D1		# VB NOT = 05.  DISPLAY CADR.
+		TS	DSPCOUNT
+		CA	NOUNCADR
+		TC	DSPOCTWO
+		TC	VERBFAN
+		
+		AD	ONE
+		TC	SETNCADR	# ECADR INTO NOUNCADR.  SETS EB, NOUNADD.
+VERBFAN		CS	LST2CON
+		AD	VERBREG		# VERB -- LST2CON
+		CCS	A
+		AD	ONE		# VERB G/ LST2CON
+		TC	+2
+		TC	VBFANDIR	# VERB L/ LST2CON
+		TS	MPAC
+		TC	RELDSP		# RELEASE DISPLAY SYST
+		TC	POSTJUMP	# GO TO GOEXTVB WITH VB=40 IN MPAC.
+		CADR	GOEXTVB
+LST2CON		DEC	40		# FIRST LIST2 VERB (EXTENDED VERB)
+
+VBFANDIR	INDEX	VERBREG
+		CAF	VERBTAB
+		TC	BANKJUMP
+		
+VERBTAB		CADR	GODSPALM	# VB00 ILLEGAL
+		CADR	DSPA		# VB01 DISPLAY OCT COMP 1 (R1)
+		CADR	DSPB		# VB02 DISPLAY OCT COMP 2 (R1)
+		CADR	DSPC		# VB03 DISPLAY OCT COMP 3 (R1)
+		CADR	DSPAB		# VB04 DISPLAY OCT COMP 1,2 (R1,R2)
+		CADR	DSPABC		# VB05 DISPLAY OCT COMP 1,2,3 (R1,R2,R3)
+		CADR	DECDSP		# VB06 DECIMAL DISPLAY
+		CADR	DSPDPDEC	# VB07 DP DECIMAL DISPLAY (R1,R2)
+		CADR	GODSPALM	# VB08 SPARE
+		CADR	GODSPALM	# VB09 SPARE
+		CADR	DSPALARM	# VB10 SPARE
+		CADR	MONITOR		# VB11 MONITOR OCT COMP 1 (R1)
+		CADR	MONITOR		# VB12 MONITOR OCT COMP 2 (R1)
+		CADR	MONITOR		# VB13 MONITOR OCT COMP 3 (R1)
+		CADR	MONITOR		# VB14 MONITOR OCT COMP 1,2 (R1,R2)
+# Page 326
+		CADR	MONITOR		# VB15 MONITOR OCT COMP 1,2,3 (R1,R2,R3)
+		CADR	MONITOR		# VB16 MONITOR DECIMAL
+		CADR	MONITOR		# VB17 MONITOR DP DEC (R1,R2)
+		CADR	GODSPALM	# VB18 SPARE
+		CADR	GODSPALM	# VB19 SPARE
+		CADR	GODSPALM	# VB20 SPARE
+		CADR	ALOAD		# VB21 LOAD COMP 1 (R1)
+		CADR	BLOAD		# VB22 LOAD COMP 2 (R2)
+		CADR	CLOAD		# VB23 LOAD COMP 3 (R3)
+		CADR	ABLOAD		# VB24 LOAD COMP 1,2 (R1,R2)
+		CADR	ABCLOAD		# VB25 LOAD COMP 1,2,3 (R1,R2,R3)
+		CADR	GODSPALM	# VB26 SPARE
+		CADR	DSPFMEM		# VB27 FIXED MEMORY DISPLAY
+					# THE FOLLOWING VERBS MAKE NO NOUN TEST
+		CADR	GODSPALM	# VB28 SPARE
+		CADR	GODSPALM	# VB29 SPARE
+REQEXLQC	CADR	VBRQEXEC	# VB30 REQUEST EXECUTIVE
+		CADR	VBRQWAIT	# VB31 REQUEST WAITLIST
+		CADR	VBRESEQ		# VB32 RESEQUENCE
+		CADR	VBPROC		# VB33 PROCEED WITHOUT DATA
+		CADR	VBTERM		# VB34 TERMINATE CURRENT TEST OR LOAD REQ
+		CADR	VBTSTLTS	# VB35 TEST LIGHTS
+		CADR	SLAP1		# VB36 FRESH START
+		CADR	MMCHANG		# VB37 CHANGE MAJOR MODE
+		CADR	GODSPALM	# VB38 SPARE
+		CADR	GODSPALM	# VB39 SPARE
+		
+# THE LIST2 VERBFAN IS LOCATED IN THE EXTENDED VERB BANK.
+# Page 327
+# NNADTAB CONTAINS A RELATIVE ADDRESS, IDADDREL (IN LOW 10 BITS), REFERRING
+# TO WHERE 3 CONSECUTIVE ADDRESSES ARE STORED (IN IDADDTAB).
+# MIXNOUN GETS DATA AND STORES IN MIXTEMP,+1,+2.  IT SETS NOUNADD FOR
+# MIXTEMP.
+
+MIXNOUN		CCS	NNADTEM
+		TC	+4		# + IN USE
+		TC	GODSPALM	# +0 NOT IN USE
+		TC	+2		# - IN USE
+		TC	+1		# -0 IN USE
+		CS	SIX
+		AD	VERBREG
+		EXTEND
+		BZMF	+2		# VERB L/E 6
+		TC	VERBFAN		# AVOID MIXNOUN SWAP IF VB NOT = DISPLAY
+		CAF	TWO
+MIXNN1		TS	DECOUNT
+		AD	MIXAD
+		TS	NOUNADD		# SET NOUNADD TO MIXTEMP +K
+		INDEX	DECOUNT		# GET IDADDTAB ENTRY FOR COMPONENT K
+		CA	IDAD1TEM	# OF NOUN.
+		TS	NOUNTEM
+					# TEST FOR DP (FOR OCT DISPLAY).  IF SO, GET
+					#	MINOR PART ONLY.
+		TC	SFRUTMIX	# GET SF ROUT NUMBER IN A
+		TC	DPTEST
+		TC	MIXNN2		# NO DP
+		INCR	NOUNTEM		# DP GET MINOR PART
+MIXNN2		CA	NOUNTEM
+		MASK	LOW11		# ESUBK (NO DP) OR (ESUBK)+1  FOR DP.
+		TC	SETEBANK	# SET EBANK, LEAVE EADRES IN A.
+		INDEX	A		# PICK UP C(ESUBK) NOT DP.
+		CA	0		# OR C((ESUBK)+1) FOR DP MINOR PART
+		INDEX	NOUNADD
+		XCH	0		# STORE IN MIXTEM + K
+		CCS	DECOUNT
+		TC	MIXNN1
+		TC	VERBFAN
+	
+MIXAD		TC	MIXTEMP
+
+# DPTEST	ENTER WITH SF ROUT NUMBER IN A.
+#		RETURNS TO L+1 IF NO DP.
+#		RETURNS TO L+2 IF DP.
+
+DPTEST		INDEX	A
+		TCF	+1
+		TC	Q		# OCTAL ONLY NO DP
+		TC	Q		# FRACT NO DP
+# Page 328
+		TC	Q		# DEG NO DP
+		TC	Q		# ARITH NO DP
+		TCF	DPTEST1		# DP1OUT
+		TCF	DPTEST1		# DP2OUT
+		TC	Q		# OPDEG NO DP
+		TCF	DPTEST1		# DP3OUT
+		TC	Q		# HMS NO DP
+		TC	Q		# M/S NO DP
+		TCF	DPTEST1		# DP4OUT
+		TC	Q		# ARITH1 NO DP
+		TC	Q		# 2INTOUT NO DP TO GET HI PART IN MPAC
+		TCF	DPTEST1		# DPFRACOT
+DPTEST1		INDEX	Q
+		TC	1		# RETURN TO L+2
+		
+REQDATX		CAF	R1D1
+		TCF	REQCOM
+REQDATY		CAF	R2D1
+		TCF	REQCOM
+REQDATZ		CAF	R3D1
+REQCOM		TS	DSPCOUNT
+		CS	Q
+		TS	REQRET
+		TC	BANKCALL
+		CADR	5BLANK
+		TC	FLASHON
+ENDRQDAT	TC	ENTEXIT
+
+		TS	NOUNREG
+UPDATNN		XCH	Q
+		TS	UPDATRET
+		EXTEND
+		DCA	LODNNLOC	# SWITCH BANKS TO NOUN TABLE READING
+		DXCH	Z		# ROUTINE.
+		CCS	NNADTEM
+		AD	ONE		# NORMAL
+		TCF	PUTADD
+		TCF	PUTADD +1	# MCTBS		DON'T CHANGE NOUNADD
+		TCF	PUTADD +1	# MCTBI		DON'T CHANGE NOUNADD
+PUTADD		TC	SETNCADR	# ECADR INTO NOUNCADR.  SETS EB, NOUNADD.
+		CAF	ND1
+		TS	DSPCOUNT
+		CA	NOUNREG
+		TCF	UPDAT1
+		
+		TS	VERBREG
+UPDATVB		XCH	Q
+		TS	UPDATRET
+		CAF	VD1
+# Page 329
+		TS	DSPCOUNT
+		CA	VERBREG
+UPDAT1		TC	POSTJUMP	# CAN'T USE SWCALL TO GO TC DSPDECVN, SINCE
+		CADR	GOVNUPDT	# UPDATVB CAN ITSELF BE CALLED BY SWCALL.
+		TC	UPDATRET
+		
+GOALMCYC	TC	ALMCYCLE	# NEEDED BECAUSE BANKJUMP CAN'T HANDLE F/F.
+
+GODSPALM	TC	POSTJUMP
+		CADR	DSPALARM
+		
+# Page 330
+# NOUN TABLES
+#
+# NOUN CODE L/40, NORMAL NOUN CASE.  NOUN CODE G/E 40, MIXED NOUN CASE.
+# FOR NORMAL CASE, NNADTAB CONTAINS ONE ECADR FOR EACH NOUN.
+# +0 INDICATES NOUN NOT USED.  - ENTRY INDICATES MACHINE CADR (E OR F) TO
+# BE SPECIFIED.  -1 INDICATES CHANNEL TO BE SPECIFIED.  -0 INDICATES AUGMENT
+# OF LAST MACHINE CADR SUPPLIED.
+#
+# FOR MIXED CASE, NNADTAB CONTAINS ONE INDIRECT ADDRESS (IDADDREL) IN LOW
+# 10 BITS, AND THE COMPONENT CODE NUMBER IN THE HIGH 5 BITS.
+#
+# NNTYPTAB IS A PACKED TABLE OF THE FORM MMMMMNNNNNPPPPP.
+#
+# FOR THE NORMAL CASE,	M'S ARE THE COMPONENT CODE NUMBER.
+#			N'S ARE THE SF ROUTINE CODE NUMBER.
+#			P'S ARE THE SF CONSTANT CODE NUMBER.
+#
+# MIXED-CASE,		M'S ARE THE SF CONSTANT3 CODE NUMBER	3 COMPONENT CASE
+#			N'S ARE THE SF CONSTANT2 CODE NUMBER
+#			P'S ARE THE SF CONSTANT1 CODE NUMBER
+#			N'S ARE THE SF CONSTANT2 CODE NUMBER	2 COMPONENT CASE
+#			P'S ARE THE SF CONSTANT1 CODE NUMBER
+#			P'S ARE THE SF CONSTANT1 CODE NUMBER	1 COMPONENT CASE
+#
+# THERE IS ALSO AN INDIRECT ADDRESS TABLE (IDADDTAB) FOR MIXED CASE ONLY
+# EACH ENTRY CONTAINS ONE ECADR.  IDADDREL IS THE RELATIVE ADDRESS OF
+# THE FIRST OF THESE ENTRIES.
+#
+# THERE IS ONE ENTRY IN THIS TABEL FOR EACH COMPONENT OF A MIXED NOUN
+# THEY ARE LISTED IN ORDER OF ASCENDING K.
+#
+# THERE IS ALSO A SCALE FACTOR ROUTINE NUMBER TABLE (RUTMXTAB) FOR MIXED
+# CASE ONLY.  THERE IS ONE ENTRY PER MIXED NOUN.  THE FORM IS,
+#
+#	QQQQQRRRRRSSSSS
+#
+# Q'S ARE THE SF ROUTINE 3 CODE NUMBER		3 COMPONENT CASE
+# R'S ARE THE SF ROUTINE 2 CODE NUMBER
+# S'S ARE THE SF ROUTINE 1 CODE NUMBER
+# R'S ARE THE SF ROUTINE 2 CODE NUMBER		2 COMPONENT CASE
+# S'S ARE THE SF ROUTINE 1 CODE NUMBER
+#
+# IN OCTAL DISPLAY AND LOAD (OCT OR DEC) VERBS, EXCLUDE USE OF VERBS WHOSE
+# COMPONENT NUMBER IS GREATER THAN THE NUMBER OF COMONENTS IN NOUN.
+# (ALL MACHINE ADDRESS TO BE SPECIFIED NOUNS ARE 3 COMPONENT.)
+#
+# IN MULTI-COMPONENT LOAD VERBS, NO MIXING OF OCTAL AND DECIMAL DATA
+# COMPONENT WORDS IS ALLOWED.  ALARM IF VIOLATION.
+#
+# IN DECIMAL LOADS OF DATA, 5 NUMERICAL CHARACTERS MUST BE KEYED IN
+# BEFORE EACH ENTER.  IF NOT, ALARM.
+
+# Page 331
+# DISPLAY VERBS
+
+DSPABC		CS	TWO
+		TC	COMPTEST
+		INDEX	NOUNADD
+		CS	2
+		XCH	BUF	+2
+DSPAB		CS	ONE
+		TC	COMPTEST
+		INDEX	NOUNADD
+		CS	1
+		XCH	BUF	+1
+DSPA		TC	DECTEST
+		TC	TSTFORDP
+		INDEX	NOUNADD
+		CS	0
+DSPCOM1		XCH	BUF
+		TC	DSPCOM2
+DSPB		CS	ONE
+		TC	DCOMPTST
+		INDEX	NOUNADD
+		CS	1
+		TC	DSPCOM1
+DSPC		CS	TWO
+		TC	DCOMPTST
+		INDEX	NOUNADD
+		CS	2
+		TC	DSPCOM1
+DSPCOM2		CS	TWO		# A B C AB ABC
+		AD	VERBREG		# -1 -0 +1 +2 +3 IN A
+		CCS	A		# +0 +0 +0 +1 +2 IN A AFTER CCS
+		TC	DSPCOM3
+		TC	ENTEXIT
+		TC	+1
+DSPCOM3		TS	DISTEM		# +0 +1 +2 INTO DISTEM
+		INDEX	A
+		CAF	R1D1
+		TS	DSPCOUNT
+		INDEX	DISTEM
+		CS	BUF
+		TC	DSPOCTWO
+		XCH	DISTEM
+		TC	DSPCOM2 +2
+		
+# COMPTEST ALARMS IF COMPONENT NUMBER OF VERB (LOAD OR OCT DISPLAY) IS
+# GREATER THAN THE HIGHEST COMPONENT NUMBER OF NOUN.
+
+COMPTEST	TS	SFTEMP1		# VERB COMP
+		LXCH	Q
+COMPTST1	TC	GETCOMP
+		TC	LEFT5
+		MASK	THREE		# NOUN COMP
+# Page 332
+		AD	SFTEMP1		# NOUN COMP -- VERB COMP
+		CCS	A
+		TC	L		# NOUN COMP G/ VERB COMP
+		TC	CCSHOLE
+		TC	GODSPALM	# NOUN COMP L/ VERB COMP
+NDCMPTST	TC	L		# NOUN COMP = VERB COMP
+
+# DCOMPTST ALARMS IF DECIMAL ONLY BIT (BIT4 OF COMP CODE NUMBER) = 1.
+# IF NOT, IT PERFORMS REGULAR COMPTEST.
+
+DCOMPTST	TS	SFTEMP1		# - VERB COMP
+		LXCH	Q
+		TC	DECTEST
+		TC	COMPTST1
+		
+DECTEST		EXTEND			# ALARMS IF DEC ONLY BIT = 1 (BIT4 OF COMP
+		QXCH	MPAC +2		# CODE NUMBER).  RETURNS IF NOT.
+		TC	GETCOMP
+		MASK	BIT14
+		CCS	A
+		TC	GODSPALM
+		TC	MPAC +2
+
+DCTSTCYC	LXCH	Q		# ALARMS AND RECYCLES IF DEC ONLY BIT = 1
+		TC	GETCOMP		# (BIT4 OF COMP CODE NUMBER). RETURNS
+		MASK	BIT14		# IF NOT.  USED BY LOAD VERBS.
+		CCS	A
+		TC	ALMCYCLE
+		TC	L
+		
+# NOUNTEST ALARMS IF NO-LOAD BIT (BIT5 OF COMP CODE NUMBER) = 1.
+# IF NOT, IT RETURNS.
+
+NOUNTEST	LXCH	Q
+		TC	GETCOMP
+		CCS	A
+		TC	L
+		TC	L
+		TC	GODSPALM
+		
+TSTFORDP	LXCH	Q		# TEST FOR DP.  IF SO, GET MINOR PART ONLY.
+		CA	NNADTEM
+		AD	ONE		# IF NNADTEM = -1, CHANNEL TO BE SPECIFIED
+		EXTEND
+		BZF	CHANDSP
+		INDEX	MIXBR
+		TC	+0
+		TC	+2		# NORMAL
+# Page 333
+		TC	L		# MIXED CASE ALREADY HANDLED IN MIXNOUN
+		TC	SFRUTNOR
+		TC	DPTEST
+		TC	L		# NO DP
+		INCR	NOUNADD		# DP	E+1 INTO NOUNADD FOR MINOR PART.
+		TC	L
+		
+CHANDSP		CA	NOUNCADR
+		MASK	LOW9
+		EXTEND
+		INDEX	A
+		READ	0
+		CS	A
+		TCF	DSPCOM1
+		
+COMPICK		ADRES	NNTYPTEM
+		ADRES	NNADTEM
+		
+GETCOMP		INDEX	MIXBR		#	NORMAL				MIXED
+		CAF	COMPICK -1	#	ADRES NNTYPTEM			ADRES NNADTEM
+		INDEX	A
+		CA	0		#	C(NNTYPTEM)			C(NNADTEM)
+		MASK	HI5		#	GET HI5 OF NNTYPTAB (NORM) 	OF NNADTAB (MIX)
+		TC	Q
+
+DECDSP		TC	GETCOMP
+		TC	LEFT5
+		MASK	THREE
+		TS	DECOUNT		# COMP NUMBER INTO DECOUNT
+DSPDCGET	TS	DECTEM		# PICKS UP DATA
+		AD	NOUNADD		# DECTEM 1COMP +0, 2COMP +1, 3COMP +2
+		INDEX	A
+		CS	0
+		INDEX	DECTEM
+		XCH	XREG		# CAN'T USE BUF SINCE DMP USES IT.
+		CCS	DECTEM
+		TC	DSPDCGET	# MORE TO GET
+DSPDCPUT	CAF	ZERO		# DISPLAYS DATA
+		TS	MPAC +1		# DECOUNT 1COMP +0, 2COMP +1, 3COMP +2
+		TS	MPAC +2
+		INDEX	DECOUNT
+		CAF	R1D1
+		TS	DSPCOUNT
+		INDEX	DECOUNT
+		CS	XREG
+		TS	MPAC
+		TC	SFCONUM		# 2X (SF CON NUMB) IN A
+# Page 334		
+		TS	SFTEMP1
+		EXTEND			# SWITCH BANKS TO SF CONSTANT TABLE
+		DCA	GTSFOUTL	#	READING ROUTINE.
+		DXCH	Z		# LOADS SFTEMP1, SFTEMP2
+		INDEX	MIXBR
+		TC	+0
+		TC	DSPSFNOR
+		TC	SFRUTMIX
+		TC	DECDSP3
+
+DSPSFNOR	TC	SFRUTNOR
+		TC	DECDSP3
+
+		EBANK=	DSPCOUNT
+GTSFOUTL	2CADR	GTSFOUT
+
+DSPDCEND	TC	BANKCALL	# ALL SFOUT ROUTINES END HERE
+		CADR	DSPDECWD
+		CCS	DECOUNT
+		TC	+2
+		TC	ENTEXIT
+		TS	DECOUNT
+		TC	DSPDCPUT	# MORE TO DISPLAY
+
+DECDSP3		INDEX	A
+		CAF	SFOUTABR
+		TC	BANKJUMP
+
+SFOUTABR	CADR	PREDSPAL	# ALARM IF DEC DISP WITH OCTAL ONLY NOUN
+		CADR	DSPDCEND
+		CADR	DEGOUTSF
+		CADR	ARTOUTSF
+		CADR	DP1OUTSF
+		CADR	DP2OUTSF
+		CADR	OPDEGOUT
+		CADR	DP3OUTSF
+		CADR	HMSOUT
+		CADR	M/SOUT
+		CADR	DP2OUTSF
+		CADR	AROUT1SF
+		CADR	2INTOUT
+		CADR	DPFRACOT
+ENDRTOUT	EQUALS
+
+# THE FOLLOWING IS ATYPICAL SF ROUTINE.  IT USES MPAC.  LEAVES RESULTS
+# IN MPAC, MPAC+1.  ENDS WITH TC DSPDCEND
+
+# Page 335
+
+		SETLOC	BLANKCON +1		
+		
+		COUNT	40/PIN
+# DEGOUTSF SCALES BY .18 THE LOW 14 BITS OF ANGLE, ADDING .18 FOR
+# NUMBERS IN THE NEGATIVE (AGC) RANGE.
+
+DEGOUTSF	CAF	ZERO
+		TS	MPAC +2		# SET INDEX FOR FULL SCALE.
+		TC	FIXRANGE
+		TC	+2		# NO AUGMENT NEEDED (SFTEMP1 AND 2 ARE 0)
+		TC	SETAUG		# SET AUGMENTER ACCORDING TO C(MPAC +2)
+		TC	DEGCOM
+		
+# OPDEGOUT SCALES BY .45 (THE RANGE IS 90 DEGREES) AND ADDS A 20 DEG BIAS.
+
+OPDEGOUT	CCS	MPAC		# RANGE IS 90 DEG
+		XCH	MPAC		# IF POS OR POS 0 THEN ADD BIAS AND
+		TC	+3		# CORRECT FOR POSSIBLE OVERFLOW
+		TC	NEGOPT		# IF NEG NON ZERO
+		AD	NEG1		# IF NEG ZERO SUBTRACT 1
+		AD	20BIAS
+BIASCOM		TS	MPAC		# TEST FOR OVEFLOW
+		TC	+3		# NO OVFLOW
+		CAF	BIT15		# IF OVFLOW
+		ADS	MPAC
+		CAF	TWO		# SET MULTIPLIER TO .45
+		TC	DEGOUTSF +1
+		
+NEGOPT		XCH	MPAC		# NEGATIVE CASE
+		AD	20BIAS
+		CCS	A
+		TC	BIASCOM		# IF POS THEN SUBTRACT 1 BECASUE OF 2SCOM
+		TC	CCSHOLE
+		AD	ONE		# IF NEG RESTORE SUM
+		COM			# IF NEG 0 LEAVE NEG 0
+		TC	BIASCOM
+		
+SETAUG		EXTEND			# LOADS SFTEMP1 AND SFTEMP2 WITH THE
+		INDEX	MPAC	+2	# DP AUGMENTER CONSTANT
+		DCA	DEGTAB
+		DXCH	SFTEMP1
+		TC	Q
+		
+FIXRANGE	CCS	MPAC		# IF MPAC IS + RETURN TO L+1
+		TC	Q		# IF MPAC IS - RETURN TO L+2 AFTER
+		TC	Q		# MASKING OUT THE SIGN BIT
+		TCF	+1
+		CS	BIT15
+		MASK	MPAC
+# Page 336		
+		TS	MPAC
+		INDEX	Q	
+		TC	1
+
+DEGCOM		EXTEND			# LOADS MULTIPLIER, DOES SHORTMP, AND
+		INDEX	MPAC +2		# ADDS AUTMENTER.
+		DCA	DEGTAB
+		DXCH	MPAC		# ADJUSTED ANGLE IN A
+		TC	SHORTMP
+		DXCH	SFTEMP1
+		DAS	MPAC
+		TC	SCOUTEND
+		
+DEGTAB		OCT	05605		# HI PART OF 	.18
+		OCT	03656		# LOW PART OF	.18
+		OCT	16314		# HI PART OF 	.45
+		OCT	31463		# LO PART OF	.45
+		
+20BIAS		OCT	16040		# 20 DEG BIAS FOR OPTICS
+		
+ARTOUTSF	DXCH	SFTEMP1		# ASSUMES POINT AT LEFT OF DP SFCON
+		DXCH	MPAC
+		TC	PRSHRTMP	# IF C(A) = -0, SHORTMP FAILS TO GIVE -0.
+SCOUTEND	TC	POSTJUMP
+		CADR	DSPDCEND
+		
+AROUT1SF	DXCH	SFTEMP1		# ASSUMES POINT BETWEEN HI AND LO PARTS OF
+		DXCH	MPAC		# DP SFCON.  SHIFTS RESULTS LEFT 14, BY
+		TC	PRSHRTMP	# TAKING RESULTS FROM MPAC+1, MPAC+2.
+		TC	L14/OUT
+		
+DP1OUTSF	TC	DPOUT		# SCALES MPAC, MPAC +1 BY DP SCALE FACTOR
+L14/OUT		XCH	MPAC +2		# IN SFTEMP1, SFTEMP2.  THEN SCALE RESULT
+		XCH	MPAC +1		# BY B14
+		TS	MPAC
+		TC	SCOUTEND
+		
+DP2OUTSF	TC	DPOUT		# SCALES MPAC, MPAC +1 BY DP SCALE FACTOR
+		TC	SCOUTEND
+		
+DP3OUTSF	TC	DPOUT		# ASSUMES POINT BETWEEN BITS 7-8 OF HIGH
+		CAF	SIX		# LEFT BY 7, ROUNDS MPAC+2 INTO MPAC+1
+		TC	TPLEFTN		# SHIFT LEFT 7.
+		TC	SCOUTEND
+
+# Page 337
+				
+MPAC+6		= 	MPAC +6		# USE MPAC +6 INSTEAD OF OVFIND
+
+DPOUT		XCH	Q
+		TS	MPAC+6
+		TC	READLO		# GET FRESH DATA FOR BOTH HI AND LO.
+		TC	TPAGREE		# MAKE DP DATA AGREE
+		TC	DMP
+		ADRES	SFTEMP1
+		TC	MPAC+6
+		
+# THE FOLLOWING ROUTINE DISPLAYS TWO CONTIGUOUS SP POSITIVE INTEGERS
+# AS TWO POSITIVE DECIMAL INTEGERS IN RXD1-RXD2 AND RXD4-RXD5 (RXD3 IS
+# BLANKED).  THE INTEGER IN THE LOWER NUMBERED ADDRESS IS DISPLAYED IN
+# RXD1-RXD2.
+
+2INTOUT		TC	5BLANK		# TO BLANK RXD3
+		TC	+ON		# TURN ON + SIGN
+		CA	MPAC
+		TC	DSPDECVN	# DISPLAY 1ST INTEGER (LIKE VERB AND NOUN)
+		CS	THREE
+		INDEX	DECOUNT
+		AD	R1D1		# RXD4
+		TS	DSPCOUNT
+		TC	READLO		# GET 2ND INTEGER
+		CA	MPAC +1
+		TC	DSPDECVN	# DISPLAY 2ND INTEGER (LIKE VERB AND NOUN)
+		TC	POSTJUMP
+		CADR	DSPDCEND +2
+
+DPFRACOT	TC	READLO		# DP FRACTION TO MPAC,+1
+		TC	SCOUTEND
+		
+# READLO PICKS UP FRESHDATA FOR BOTH HI AND LO AND LEAVES IT IN 
+# MPAC, MPAC+1.  THIS IS NEEDED FOR TIME DISPLAY.  IT ZEROES MPAC+2, BUT
+# DOES NOT FORCE TPAGREE.
+
+READLO		XCH	Q
+		TS	TEM4
+		INDEX	MIXBR
+		TC	+0
+		TC	RDLONOR
+		INDEX	DECOUNT
+		CA	IDAD1TEM	# GET IDADDTAB ENTRY FOR COMP K OF NOUN.
+		MASK	LOW11		# E SUBK
+		TC	SETEBANK	# SET EB, LEAVE EADRES IN A
+READLO1		EXTEND			# MIXED				NORMAL
+		INDEX	A		# C(ESUBK)			C(E)
+		DCA	0		# C(E SUBK)+1)			C(E+1)
+		DXCH	MPAC
+# Page 338		
+		CAF	ZERO
+		TS	MPAC	+2
+		TC	TEM4
+		
+RDLONOR		CA	NOUNADD		# E
+ENDRDLO		TC	READLO1
+
+		BANK	42
+		SETLOC	PINBALL3
+		BANK
+		
+		COUNT	42/PIN
+		
+HMSOUT		TC	BANKCALL	# READ FRESH DATA FOR HI AND LO INTO MPAC.
+		CADR	READLO		# MPAC+1.
+		TC	TPAGREE		# MAKE DP DATA AGREE.
+		TC	SEPSECNR	# LEAVE FRACT SEC/60 IN MPAC, MPAC+1.  LEAVE
+					# WHOLE MIN IN BIT13 OF LOTEMOUT AND ABOVE
+		TC	DMP		# USE ONLY FRACT SEC/60 MOD 60
+		ADRES	SECON2		# MULT BY .06
+		CAF	R3D1		# GIVES CENTI-SEC/10EXP5 MOD 60
+		TS	DSPCOUNT
+		TC	BANKCALL	# DISPLAY SEC MOD 60
+		CADR	DSPDECWD
+		TC	SEPMIN		# REMOVE REST OF SECONDS
+		CAF	MINCON2		# LEAVE FRACT MIN/60 IN MPAC+1.  LEAVE
+		XCH	MPAC		# WHOLE HOURS IN MPAC.
+		TS	HITEMOUT	# SAVE WHOLE HOURS.
+		CAF	MINCON2 +1
+		XCH	MPAC 	+1	# USE ONLY FRACT MIN/60 MOD 60
+		TC	PRSHRTMP	# IF C(A) = -0, SHORTMP FAILS TO GIVE -0.
+					# MULT BY .0006
+		CAF	R2D1		# GIVE MIN/10EXP5 MOD 60
+		TS	DSPCOUNT
+		TC	BANKCALL	# DISPLAY MIN MOD 60
+		CADR	DSPDECWD
+		EXTEND			# MINUTES, SECONDS HAVE BEEN REMOVED
+		DCA	HRCON1
+		DXCH	MPAC
+		CA	HITEMOUT 	# USE WHOLE HOURS
+		TC	PRSHRTMP	# IF C(A) = -0, SHORTMP FAILS TO GIVE -0.
+					# MULT BY .16384
+		CAF	R1D1		# GIVES HOURS/10EXP5
+		TS	DSPCOUNT
+		TC	BANKCALL	# USE REGULAR DSPDECWD WITH ROUND OFF.
+		CADR	DSPDECWD
+		TC	ENTEXIT
+		
+SECON1		2DEC*	1.666666666 E-4 B12*	# 2EXP12/6000
+# Page 339
+SECON2		OCT	01727		# .06 FOR SECONDS DISPLAY
+		OCT	01217
+MINCON2		OCT	00011		# .0006 FOR MINUTES DISPLAY
+		OCT	32445
+MINCON1		OCT	02104		# .06..66 UPPED BY 2EXP-2B
+		OCT	10422
+HRCON1		2DEC	.16384 
+		OCT	00000 
+RNDCON		OCT	00062		# .5 SEC
+
+M/SOUT		TC	BANKCALL	# READ FRESH DATA FOR HI AND LO INTO MPAC.
+		CADR	READLO		# MPAC+1.
+		TC	TPAGREE		# MAKE DP DATA AGREE
+		CCS	MPAC		# IF MAG OF (MPAC, MPAC+1) G/ 59 M 59 S.
+		TC	+2		# DISPLAY 59B59, WITH PROPER SIGN.
+		TC	M/SNORM		# MPAC = +0.  L/ 59M58.5S
+		AD	M/SCON1		# - HI PART OF (59M58.5) +1 FOR CCS
+		CCS	A		# MAG OF MPAC - HI PART OF (59M58.5S)
+		TC	M/SLIMIT	# G/ 59M58.5S
+		TC	M/SNORM		# ORIGINAL MPAC = -0.  L/59M58.5S
+		TC	M/SNORM		# L/ 59M58.5S
+		CCS	MPAC +1		# MAG OF MPAC = HI PART OF 59M58.5S
+		TC	+2
+		TC	M/SNORM		# MPAC+1 = +0.  L/ 59M58.5S
+		AD	M/SCON2		# - LO PART OF (59M58.5S) +1 FOR CCS
+		CCS	A		# MAG OF MPAC+1 - LO PART OF (59M58.5S)
+		TC	M/SLIMIT	# G/ 59M58.5S
+		TC	M/SNORM		# ORIGINAL MPAC+1 = -0.  L/ 49M58.5S
+		TC	M/SNORM		# L/ 59M58.5S
+M/SLIMIT	CCS	MPAC		# = 59M58.5S	LIMIT
+		CAF	M/SCON3		# MPAC CANNOT BE +/- 0 AT THIS POINT.
+		TC	+LIMIT		# FORCE MPAC, MPAC+1 TO +/- 59M58.5S
+		CS	M/SCON3
+		TS	MPAC		# WILL DISPLAY 59M59S IN DSPDECNR
+		CS	M/SCON3 +1
+LIMITCOM	TS	MPAC +1
+		CAF	NORMADR		# SET RETURN TO M/SNORM+1.
+		TC	SEPSECNR +1
++LIMIT		TS	MPAC
+		CAF	M/SCON3 +1
+		TC	LIMITCOM
+M/SNORM		TC	SEPSEC		# LEAVE FRACT SEC/60 IN MPAC,MPAC+1.  LEAVE
+					# WHOLE MIN IN BIT13 OF LOTEMOUT AND ABOVE
+		CAF	HISECON		# USE ONLY FRACT SEC/60 MOD 60
+		TC	SHORTMP		# MULT BY .6 + 2EXP-14
+		CS	THREE		# GIVES SEC/100 MOD 60
+		ADS	DSPCOUNT	# DSPCOUNT ALREADY SET TO RXD1
+		TC	BANKCALL	# DISPLAY SEC MOD 60 IN D4D5.
+# Page 340
+		CADR	DSPDC2NR
+		CAF	ZERO
+		TS	CODE
+		CS	TWO
+		INDEX	DECOUNT
+		AD	R1D1		# RXD3
+		TS	COUNT
+		TC	BANKCALL	# BLANK MIDDLE CHAR
+		CADR	DSPIN
+		TC	SEPMIN		# REMOVE REST OF SECONDS
+		XCH	MPAC +1		# LEAVE FRACT MIN/60 IN MPAC+1
+		EXTEND			# USE ONLY FRACT MIN/60 MOD 60
+		MP	HIMINCON	# MULT BY .6 + 2EXP-7
+		DXCH	MPAC		# GIVES MIN/100 MOD 60
+		INDEX	DECOUNT
+		CAF	R1D1		# RXD1
+		TS	DSPCOUNT
+		TC	BANKCALL	# DISPLAY MIN MOD 60 IN D1D2.
+		CADR	DSPDC2NR
+		TC	POSTJUMP
+		CADR	DSPDCEND +2
+		
+HISECON		OCT	23147		# .6 + 2EXP-14
+HIMINCON	OCT	23346		# .6 + 2EXP-7
+
+M/SCON1		OCT	77753		# - HI PART OF (59M58.5S)
+M/SCON2		OCT	41126		# - LO PART OF (59M58.5S)
+NORMADR		ADRES	M/SNORM +1
+M/SCON3		OCT	00025		# 59M 59.5S
+		OCT	37016
+		
+SEPSEC		CCS	MPAC	+1	# IF +, ROUND BY ADDING .5 SEC
+		TCF	POSEC		# IF -, ROUND BY SUBTRACING .5 SEC
+		TCF	POSEC		# FINDS TIME IN MPAC, MPAC+1
+		TCF	+1		# ROUNDS OFF BY +/- .5 SEC
+		EXTEND			# LEAVES WHOLE MIN IN BIT13 OF
+		DCS	RNDCON	-1	# LOTEMOUT AND ABOVE.
+SEPSEC1		DAS	MPAC		# LEAVES FRACT SEC/60 IN MPAC, MPAC+1.
+		TCF	SEPSECNR
+POSEC		EXTEND
+		DCA	RNDCON -1
+		TCF	SEPSEC1
+SEPSECNR	XCH	Q		# THIS ENTRY AVOIDS ROUNDING BY .5 SEC
+		TS	SEPSCRET
+		TC	DMP		# MULT BY 2EXP12/6000
+		ADRES	SECON1		# GIVES FRACT SEC/60 IN BIT12 OF MPAC+1
+		EXTEND			# AND BELOW.
+		DCA	MPAC		# SAVE MINUTES AND HOURS
+		DXCH	HITEMOUT
+# Page 341
+		TC	TPSL1
+		TC	TPSL1		# GIVES FRACT SEC/60 IN MPAC+1, MPAC+2.
+		CAF	ZERO
+		XCH	MPAC +2		# LEAVE FRACT SEC/60 IN MPAC, MPAC+1.
+		XCH	MPAC +1
+		XCH	MPAC
+		TC	SEPSCRET
+		
+SEPMIN		XCH	Q		# FIND WHOLE MINUTES IN BIT13
+		TS	SEPMNRET	# OF LOTEMOUT AND ABOVE.
+		CA	LOTEMOUT	# REMOVES REST OF SECONDS.
+		EXTEND			# LEAVES FRACT MIN/60 IN MPAC+1.
+		MP	BIT3		# LEAVES WHOLE HOURS IN MPAC.
+		EXTEND			# SR 12, THROW AWAY LP.
+		MP	BIT13		# SR 2, TAKE FROM LP. = SL 12.
+		LXCH	MPAC +1		# THIS FORCES BITS 12-1 TO 0 IF +.
+					# FORCES BITS 12-1 TO 1 IF -.
+		CA	HITEMOUT
+		TS	MPAC
+		TC	DMP		# MULT BY 1/15
+		ADRES	MINCON1		# GIVES FRACT MIN/60 IN MPAC+1.
+ENDSPMIN	TC	SEPMNRET	# GIVES WHOLE HOURS IN MPAC.
+
+# THIS IS A SPECIAL PURPOS VERB FOR DISPLAYING A DOUBLE PRECISION AGC
+# WORD AS 10 DECIMAL DIGITS ON THE AGC DISPLAY PANEL.  IT CAN BE USED WITH
+# ANY NOUN, EXCEPT MIXED NOUNS.  IT DISPLAYS THE CONTENTS
+# OF THE REGISTER NOUNADD IS POINTING TO.  IF USED WITH NOUNS WHICH ARE
+# INHERENTLY NOT DP SUCH AS THE CDU COUNTERS THE DISPLAY WILL BE GARBAGE.
+# DISPLAY IS IN R1 AND R2 ONLY WITH THE SIGN IN R1.
+
+		SETLOC	ENDRDLO +1
+
+		COUNT	40/PIN
+		
+DSPDPDEC	INDEX	MIXBR
+		TC	+0
+		TC	+2		# NORMAL NOUN
+		TC	DSPALARM
+		EXTEND
+		INDEX	NOUNADD
+		DCA	0
+		DXCH	MPAC
+		CAF	R1D1
+		TS	DSPCOUNT
+		CAF	ZERO
+		TS	MPAC +2
+		TC	TPAGREE
+# Page 342
+		TC	DSP2DEC
+ENDDPDEC	TC	ENTEXIT
+
+# Page 343
+
+# LOAD VERBS		IF ALARM CONDITION IS DETECTED DURING EXECUTE,
+# CHECK FAIL LIGHT IS TURNED ON AND ENDOFJOB.  IF ALARM CONDITION IS
+# DETECTED DURING ENTER OF DATA, CHECK FAIL IS TURNED ON AND IT RECYCLES
+# TO EXECUTE OF ORIGINAL LOAD VERB.  RECYCLE CAUSED BY 		1) DECIMAL MACHINE
+# CADR		2) MIXTURE OF OCTAL/DECIMAL DATA	3) OCTAL DATA INTO DECIMAL
+# ONLY NOUN	4) DEC DATA INTO OCT ONLY NOUN		5) DATA TOO LARGE FOR SCALE
+# 6) FEWER THAN 3 DATA WORDS LOADED FOR HRS, MIN, SEC NOUN.8  (2)-(6) ALARM
+# AND RECYCLE OCCUR AT FINAL ENTER OF SET.	(1) ALARM AND RECYCLE OCCUR AT
+# ENTER OF CADR.
+
+		SETLOC	ENDRTOUT
+
+		COUNT	41/PIN
+		
+ABCLOAD		CS	TWO
+		TC	COMPTEST
+		TC	NOUNTEST	# TEST IF NOUN CAN BE LOADED.
+		CAF	VBSP1LD
+		TC	UPDATVB -1
+		TC	REQDATX
+		CAF	VBSP2LD
+		TC	UPDATVB -1
+		TC	REQDATY
+		CAF	VBSP3LD
+		TC	UPDATVB -1
+		TC	REQDATZ
+
+PUTXYZ		CS	SIX		# TEST THAT THE 3 DATA WORDS LOADED ARE
+		TC	ALLDC/OC	# ALL DEC OR ALL OCT.
+		EXTEND
+		DCA	LODNNLOC	# SWITCH BANKS TO NOUN TABLE READING
+		DXCH	Z		# ROUTINE.
+		CAF	ZERO		# X COMP
+		TC	PUTCOM
+		INDEX	NOUNADD
+		TS	0
+		CAF	ONE		# Y COMP
+		TC	PUTCOM
+		INDEX	NOUNADD
+		TS	1
+		CAF	TWO		# Z COMP
+		TC	PUTCOM
+		INDEX	NOUNADD
+		TS	2
+		CS	SEVEN		# IF NOUN 7 HAS JUST BEEN LOADED, SET
+		AD	NOUNREG		# FLAG BITS AS SPECIFIED.
+		EXTEND
+		BZF	+2
+# Page 344
+		TC	LOADLV
+		CA	XREG		# ECADR OF ERASABLE CELL
+		TC	SETNCADR +1	# SET EBANK, NOUNADD
+		CA	ZREG		# ZERO TO RESET BITS. NON-ZERO TO SET BITS
+		INHINT
+		EXTEND
+		BZF	BITSOFF	
+		INDEX	NOUNADD
+		CS	0
+		MASK	YREG		# BITS TO BE PROCESSED
+		INDEX	NOUNADD
+		ADS	0		# SET BITS.
+		TC	BITSOFF1
+		
+BITSOFF		CS	YREG		# BITS TO BE PROCESSED
+		INDEX	NOUNADD
+		MASK	0
+		INDEX	NOUNADD
+		TS	0		# RESET BITS
+BITSOFF1	RELINT
+		TC	LOADLV
+		
+ABLOAD		CS	ONE
+		TC	COMPTEST
+		TC	NOUNTEST	# TEST IF NOUN CAN BE LOADED
+		CAF	VBSP1LD
+		TC	UPDATVB -1
+		TC	REQDATX
+		CAF	VBSP2LD
+		TC	UPDATVB -1
+		TC	REQDATY
+PUTXY		CS	FIVE		# TEST THAT THE 2 DATA WORDS LOADED ARE
+		TC	ALLDC/OC	# ALL DEC OR ALL OCT.
+		EXTEND
+		DCA	LODNNLOC	# SWITCH BANKS TO NOUN TABLE READING
+		DXCH	Z		# ROUTINE.
+		CAF	ZERO		# X COMP
+		TC	PUTCOM
+		INDEX	NOUNADD
+		TS	0
+		CAF	ONE		# Y COMP
+		TC	PUTCOM
+		INDEX	NOUNADD
+		TS	1
+		TC	LOADLV
+		
+ALOAD		TC	REQDATX
+		EXTEND
+		DCA	LODNNLOC	# SWITCH BANKS TO NOUN TABLE READING
+		DXCH	Z		# ROUTINE.
+		CAF	ZERO		# X COMP
+# Page 345
+		TC	PUTCOM
+		INDEX	NOUNADD
+		TS	0
+		TC	LOADLV
+		
+BLOAD		CS	ONE
+		TC	COMPTEST
+		CAF	BIT15		# SET CLPASS FOR PASS0 ONLY
+		TS	CLPASS
+		TC	REQDATY
+		EXTEND
+		DCA	LODNNLOC	# SWITCH BANKS TO NOUN TABLE READING
+		DXCH	Z		# ROUTINE.
+		CAF	ONE
+		TC	PUTCOM
+		INDEX	NOUNADD
+		TS	1
+		TC	LOADLV
+		
+CLOAD		CS	TWO
+		TC	COMPTEST
+		CAF	BIT15		# SET CLPASS FOR PASS0 ONLY
+		TS	CLPASS
+		TC	REQDATZ
+		EXTEND
+		DCA	LODNNLOC	# SWITCH BANKS TO NOUN TABLE READING
+		DXCH	Z		# ROUTINE.
+		CAF	TWO
+		TC	PUTCOM
+		INDEX	NOUNADD
+		TS	2
+		TC	LOADLV
+
+LOADLV		CAF	ZERO
+		TS	DECBRNCH
+		CS	ZERO
+		TS	LOADSTAT
+		TC	RELDSP		# RELEASE FOR PRIORITY DISPLAY PROBLEM.
+		CS	VD1		# TO BLOCK NUMERICAL CHARACTERS AND
+		TS	DSPCOUNT	# CLEARS AFTER A COMPLETED LOAD
+		TC	POSTJUMP	# AFTER COMPLETED LOAD, GO TO RECALTST
+		CADR	RECALTST	# TO SEE IF THERE IS RECALL FROM ENDIDLE.
+		
+VBSP1LD		DEC	21		# VB21 = ALOAD
+VBSP2LD		DEC	22		# VB22 = BLOAD
+VBSP3LD		DEC	23		# VB23 = CLOAD
+
+ALLDC/OC	TS	DECOUNT		# TESTS THAT DATA WORDS LOADED ARE EITHER
+		CS	DECBRNCH	# ALL DEC OR ALL OCT.  ALARMS IF NOT.
+# Page 346
+		TS	SR
+		CS	SR
+		CS	SR		# SHIFTED RIGHT 2
+		CCS	A		# DEC COMP BITS IN LOW 3
+		TCF	+2		# SOME ONES IN LOW 3
+		TC	Q		# ALL ZEROS.  ALL OCTAL.  OK
+		AD	DECOUNT		# DEC COMP = 7 FOR 3COMP, =6 FOR 2COMP
+		EXTEND			# (BUT IT HAS BEEN DECREMENTED BY CCS)
+		BZF	+2		# MUST MATCH 6 FOR 3COMP, 5 FOR 2COMP.
+		TC	ALMCYCLE	# ALARM AND RECYCLE.
+GOQ		TC	Q		# ALL REQUIRED ARE DEC.  OK
+
+SFRUTNOR	XCH	Q		# GETS SF ROUTINE NUMBER FOR NORMAL CASE
+		TS	EXITEM		# CAN'T USE L FOR RETURN.  TSTFORDP USES L.
+		CAF	MID5
+		MASK 	NNTYPTEM
+		TC	RIGHT5
+		TC	EXITEM		# SF ROUTINE NUMBER IN A
+		
+SFRUTMIX	XCH	Q		# GETS SF ROUTINE NUMBER FOR MIXED CASE
+		TS	EXITEM
+		INDEX	DECOUNT
+		CAF	DISPLACE	# PUT TC GOQ, TC RIGHT5, OR TC LEFT5 IN L
+		TS	L
+		INDEX	DECOUNT
+		CAF	LOW5		# LOW5, MID5, OR HI5 IN A
+		MASK	RUTMXTEM	# GET HI5, MID5, OR LOW5 OF RUTMXTAB ENTRY
+		INDEX	L
+		TC	0
+		
+# DO TC GOQ(DECOUNT=0), DO TC RIGHT5(DECOUNT=1), DO TC LEFT5(DECOUNT=2).
+
+SFRET1		TC	EXITEM		# SF ROUTINE NUMBER IN A
+
+SFCONUM		XCH	Q		# GETS 2X(SF CONSTANT NUMBER)
+		TS	EXITEM
+		INDEX	MIXBR
+		TC	+0
+		TC	CONUMNOR	# NORMAL NOUN
+		INDEX	DECOUNT		# MIXED NOUN
+		CAF	DISPLACE
+		TS	L		# PUT TC GOQ, TC RIGHT5, OR TC LEFT5 IN L
+		INDEX	DECOUNT
+		CAF	LOW5
+		MASK	NNTYPTEM
+		INDEX	L
+		TC	0
+
+# DO TC GOQ(DECOUNT=0), DO TC RIGHT5(DECOUNT=1), DO TC LEFT5(DECOUNT=2).
+
+SFRET		DOUBLE			# 2X(SF CONSTANT NUMBER) IN A
+		TC	EXITEM
+
+# Page 347
+						
+DISPLACE	TC	GOQ
+		TC	RIGHT5
+		TC	LEFT5
+
+CONUMNOR	CAF	LOW5		# NORMAL NOUN ALWAYS GETS LOW 5 OF
+		MASK	NNTYPTEM	# NNTYPTAB FOR SF CONUM.
+		DOUBLE
+		TC	EXITEM		# 2X(SF CONSTANT NUMBER) IN A
+		
+PUTCOM		TS	DECOUNT
+		XCH	Q
+		TS	DECRET
+		CAF	ZERO
+		TS	MPAC+6
+		INDEX	DECOUNT
+		XCH	XREGLP
+		TS	MPAC +1
+		INDEX	DECOUNT
+		XCH	XREG
+		TS	MPAC
+		INDEX	MIXBR
+		TC	+0
+		TC	PUTNORM		# NORMAL NOUN
+		
+# IF MIXNOUN, PLACE ADDRESS FOR COMPONENT K INTO NOUNADD, SET EBANK BITS.
+
+		INDEX	DECOUNT		# GET IDADDTAB ENTRY FOR COMPONENT K
+		CA	IDAD1TEM	#	OF NOUN.
+		MASK	LOW11		# (ECADR)SUBK FOR CURRENT COMP OF NOUN
+		TC	SETNCADR	# ECADR INTO NOUNCADR.  SETS EB, NOUNADD.
+		EXTEND			# C(NOUNADD) IN A UPON RETURN
+		SU	DECOUNT		# PLACE (ESUBK)-K INTO NOUNADD
+		TS	NOUNADD
+		CCS	DECBRNCH
+		TC	PUTDECSF	# + DEC
+		TC	DCTSTCYC	# +0 OCTAL
+		TC	SFRUTMIX	# TEST IF DEC ONLY BIT = 1.  IF SO,
+		TC	DPTEST		# ALARM AND RECYCLE.  IF NOT, CONTINUE.
+		TC	PUTCOM2		# NO DP
+					# TEST FOR DP SCALE FOR OCT LOAD.  IF SO,
+					# +0 INTO MAJOR PART.  SET NOUNADD FOR
+					# LOADING OCTAL WORD INTO MINOR PART.
+PUTDPCOM	INCR	NOUNADD		# DP (ESUBK)-K+1 OR E+1
+		CA	NOUNADD		# NOUNADD NOW SET FOR MINOR PART
+		ADS	DECOUNT		# (ESUBK)+1 OR E+1 INTO DECOUNT
+		CAF	ZERO		# NOUNADD SET FOR MINOR PART
+		INDEX	DECOUNT
+		TS	0 	-1	# ZERO MAJOR PART(ESUBK OR E)
+		TC	PUTCOM2
+
+PUTNORM		TC	SETNADD		# ECADR FROM NOUNCADR.  SETS EB, NOUNADD.
+# Page 348
+		CCS	DECBRNCH
+		TC	PUTDECSF	# + DEC
+		TC	DCTSTCYC	# +0 OCTAL
+		TC	SFRUTNOR	# TEST IF DEC ONLY BIT (garbled).  IF SO,
+		TC	DPTEST		# ALARM AND RECYCLE.  IF NOT, CONTINUE.
+		TC	PUTCOM2 -4	# NO DP
+		CAF	ZERO		# DP
+		TS	DECOUNT
+		TC	PUTDPCOM
+		
+		CA	NNADTEM
+		AD	ONE		# IF NNADTEM = -1, CHANNEL TO BE SPECIFIED
+		EXTEND
+		BZF	CHANLOAD
+PUTCOM2		XCH	MPAC
+		TC	DECRET
+		
+		EBANK=	DSPCOUNT
+GTSFINLC	2CADR	GTSFIN
+
+CHANLOAD	CS	SEVEN		# DON'T LOAD CHAN 7.  (IT'S SUPERBANK).
+		AD	NOUNCADR
+		EXTEND
+		BZF	LOADLV
+		CA 	NOUNCADR
+		MASK	LOW9
+		XCH	MPAC
+		EXTEND
+		INDEX	MPAC
+		WRITE	0
+		TC	LOADLV
+		
+# PUTDECSF FINDS MIXBR AND DECOUNT STILL SET FROM PUTCOM.
+
+PUTDECSF	TC	SFCONUM		# 2X(SF CON NUMB) IN A
+		TS	SFTEMP1
+		EXTEND			# SWITCH BANKS TO SF CONSTANT TABLE
+		DCA	GTSFINLC	# READING ROUTINE.
+		DXCH	Z		# LOADS SFTEMP1, SFTEMP2.
+		INDEX	MIXBR
+		TC	+0
+		TC	PUTSFNOR
+		TC	SFRUTMIX
+		TC	PUTDCSF2
+PUTSFNOR	TC	SFRUTNOR
+
+PUTDCSF2	INDEX	A
+# Page 349
+		CAF	SFINTABR
+		TC	BANKJUMP	# SWITCH BANKS FOR EXPANSION ROOM
+SFINTABR	CADR	GOALMCYC	# ALARM AND RECYCLE IF DEC LOAD
+					# WITH OCTAL ONLY NOUN.
+		CADR	BINROUND
+		CADR	DEGINSF
+		CADR	ARTHINSF
+		CADR	DPINSF
+		CADR	DPINSF2
+		CADR	OPTDEGIN
+		CADR	DPINSF		# SAME AS ARITHDP1
+		CADR	HMSIN
+		CADR	DSPALARM	# MIN/SEC CAN'T BE LOADED.
+		CADR	DPINSF4
+		CADR	ARTIN1SF
+		CADR	DSPALARM	# 2INTOUT CAN'T BE LOADED.
+		CADR	DPFRACIN
+ENDRUTIN	EQUALS
+
+# SCALE FACTORS FOR THOSE ROUTINES NEEDING THEM ARE AVAILABLE IN SFTEMP1.
+# ALL SFIN ROUTINES USE MPAC MPAC+1.  LEAVE RESULT IN A.  END WITH TC DECRET.
+
+		SETLOC	ENDDPDEC +1
+		
+		COUNT	40/PIN
+		
+# DEGINSF APPLIES 1000/180 * 5.55555(10) = 5.43434(8)
+
+DEGINSF		TC	DMP		# SF ROUTINE FOR DEC DEGREES
+		ADRES	DEGCON1		# MULT BY 5.5 5(10)X2EXP-3
+		CCS	MPAC +1		# THIS ROUNDS OFF MPAC+1 BEFORE SHIFT
+		CAF	BIT11		# LEFT 3, AND CAUSES 360.00 TO OF/UF
+		TC	+2		# WHEN SHIFTED LEFT AND ALARM.
+		CS	BIT11
+		AD	MPAC +1
+		TC	2ROUND +2
+		TC	TPSL1		# LEFT 1
+DEGINSF2	TC	TPSL1		# LEFT 2
+		TC	TESTOFUF
+		TC	TPSL1		# RETURNS IF NO OF/UF (LEFT3)
+		CCS	MPAC
+		TC	SIGNFIX		# IF +, GO TO SIGNFIX
+		TC	SIGNFIX		# IF +0, GO TO SIGNFIX
+		COM			# IF -, USE -MAGNITUDE +1
+		TS	MPAC		# IF -0, USE +0
+SIGNFIX		CCS	MPAC+6	
+		TC	SGNTO1		# IF OVERFLOW
+		TC	ENDSCALE	# NO OVERFLOW/UNDERFLOW
+# Page 350
+		CCS	MPAC		# IF UF FORCE SIGN TO 0 EXCEPT -180
+		TC	CCSHOLE
+		TC	NEG180
+		TC	+1
+		XCH	MPAC
+		MASK	POSMAX
+		TS	MPAC
+ENDSCALE	TC	POSTJUMP
+		CADR	PUTCOM2
+
+NEG180		CS	POSMAX
+		TC	ENDSCALE -1
+		
+SGNTO1		CS	MPAC		# IF OF FORCE SIGN TO 1
+		MASK	POSMAX
+		CS	A
+		TC	ENDSCALE -1
+		
+DEGCON1		2DEC	5.555555555 B-3
+
+DEGCON2		2DEC	2.222222222 B-2
+
+NEG.2		OCT	-06250		# = .197753906	I.E., THE BIAS SCALED
+
+ARTHINSF	TC	DMP		# SCALES MPAC, +1 BY SFTEMP1, SFTEMP2.
+		ADRES	SFTEMP1		# ASSUMES POINT BETWEEN HI AND LO PARTS
+		XCH	MPAC +2		# OF SFCON.  SHIFTS RESULTS LEFT BY 14.
+		XCH	MPAC +1		# (BY TAKING RESULTS FROM MPAC+1, MPAC+2)
+		XCH	MPAC
+		EXTEND
+		BZF	BINROUND
+		TC	ALMCYCLE	# TOO LARGE A LOAD.  ALARM AND RECYCLE.
+BINROUND	TC	2ROUND
+		TC	TESTOFUF
+		TC	ENDSCALE	# RETURNS IF NO OF/UF
+		
+ARTIN1SF	TC	DMP		# SCALES MPAC, +1 BY SFTEMP1, SFTEMP2.
+		ADRES	SFTEMP1		# ROUNDS MPAC+1 INTO MPAC.
+		TC	BINROUND
+		
+OPTDEGIN	CCS	MPAC		# OPTICS SCALING ROUTINE
+		TC	+4
+		TC	+3
+		TC	ALMCYCLE	# REJECT -- INPUT.  ALARM AND RECYCLE.
+		TC	ALMCYCLE	# REJECT -- INPUT.  ALARM AND RECYCLE.
+OPDEGIN2	CAF	NEG.2		# RANGE IS 90 DEG
+		ADS	MPAC		# SUBTRACT BIAS
+# Page 351
+		TC	DMP		# MULT BY 100 / 45 B-2
+		ADRES	DEGCON2
+		CAF	BIT12		# ROUND AS IN DEGINSF
+		AD	MPAC	+1
+		TC	2ROUND	+2
+		TC	DEGINSF2
+						
+DPINSF		TC	DMP		# SCALES MPAC, MPAC +1 BY SFTEMP1,
+		ADRES	SFTEMP1		# SFTEMP.  STORES LOW PART OF RESULT
+		XCH	MPAC +2		# IN (E SUBK) +1 OR E+1
+		DOUBLE
+		TS	MPAC +2
+		CAF	ZERO
+		AD	MPAC +1
+		TC	2ROUND +2
+		TC	TESTOFUF
+DPFRACIN	INDEX	MIXBR		# RETURNS IF NO OF/UF
+		TC	+0
+		TC	DPINORM
+		CA	DECOUNT		# MIXED NOUN
+DPINCOM		AD	NOUNADD		#	MIXED		NORMAL
+		TS	Q		#	E SUBK		E
+		XCH	MPAC +1
+		INDEX	Q
+		TS	1		# PLACE LOW PART IN
+		TC	ENDSCALE	# 	(E SUBK) +1	MIXED
+		
+DPINORM		CAF	ZERO		#	E +1		NORMAL
+		TC	DPINCOM
+		
+DPINSF2		TC	DMP		# ASSUMES POINT BETWEEN BITS 7-8 OF HIGH
+		ADRES	SFTEMP1		# PART OF SF CONST.  DPINSF2 SHIFTS RESULTS
+		CAF	SIX		# LEFT BY 7, ROUNDS MPAC+2 INTO MPAC+1
+		TC	TPLEFTN		# SHIFT LEFT 7.
+		TC	DPINSF +2
+		
+DPINSF4		TC	DMP		# ASSUMES POINT BETWEEN BITS 11-12 OF HIGH
+		ADRES	SFTEMP1		# PART OF SF CONST.  DPINSF2 SHIFTS RESULTS
+		CAF	TWO		# LEFT BY 3, ROUNDS MPAC+2 INTO MPAC+1.
+		TC	TPLEFTN		# SHIFT LEFT 3.
+		TC	DPINSF +2
+		
+TPLEFTN		XCH	Q		# SHIFTS MPAC, +1, +2 LEFT N.  SETS OVFIND
+		TS	SFTEMP2		# TO +1 FOR OF, -1 FOR UF.
+		XCH	Q		# CALL WITH N-1 IN A.
+LEFTNCOM	TS	SFTEMP1		#	LOOP TIME .37 MSEC.
+		TC	TPSL1
+		CCS	SFTEMP1
+# Page 352		
+		TC	LEFTNCOM
+		TC	SFTEMP2
+
+2ROUND		XCH	MPAC	 +1
+		DOUBLE
+		TS	MPAC 	+1
+		TC	Q		# IF MPAC+1 DOES NOT OF/UF
+		AD	MPAC
+		TS	MPAC
+		TC	Q		# IF MPAC DOES NOT OF/UF
+		TS	MPAC+6
+2RNDEND		TC	Q
+
+TESTOFUF	CCS	MPAC+6		# RETURNS IF NO OF/UF
+		TC	ALMCYCLE	# OF	ALARM AND RECYCLE.
+		TC	Q
+		TC	ALMCYCLE	# UF	ALARM AND RECYCLE.
+		
+		SETLOC	ENDSPMIN +1
+		
+		COUNT	42/PIN
+		
+HMSIN		TC	ALL3DEC		# IF ALL 3 WORDS WERE NOT LOADED, ALARM.
+		TC	DMP		# XREG, XREGLP (=HOURS) WERE ALREADY PUT
+		ADRES	WHOLECON	# INTO MPAC, MPAC+1.
+		TC	RND/TST		# ROUND OFF TO WHOLE HRS IN MPAC+1.
+		CAF	ZERO		# ALARM IF MPAC NON ZERO (G/ 16383).
+		TS	MPAC	+2
+		CAF	HRCON
+		TS	MPAC
+		CAF	HRCON	+1
+		XCH	MPAC	+1
+		TC	SHORTMP
+		TC	MPACTST		# ALARM IF MPAC NON ZERO (G/ 745)
+		DXCH	MPAC	+1	# STORE HOURS CONTRIBUTION
+		DXCH	HITEMIN
+		CA	YREG		# PUT YREG, YREGLP INTO MPAC, +1.
+		LXCH	YREGLP
+		DXCH	MPAC
+		TC	DMP
+		ADRES	WHOLECON
+		TC	RND/TST		# ROUND OFF TO WHOLE MIN IN MPAC+1
+		CS	59MIN		# ALARM IF MPAC NON ZERO (G/16383)
+		TC	SIZETST		# ALARM IF MPAC+1 G/ 59MIN
+		XCH	MPAC 	+1
+		EXTEND
+		MP	MINCON		# LEAVES MINUTES CONTRIBUTION IN A,L
+# Page 353		
+		DAS	HITEMIN		# ADD IN MINUTES CONTRIBUTION
+		EXTEND			# IF THIS DAS OVEFLOWS, G/ 745 HR, 39MIN
+		BZF	+2
+		TC	ALMCYCLE
+		CA	ZREG		# PUT ZREG, ZREGLP INTO MPAC +1.
+		LXCH	ZREGLP
+		DXCH	MPAC
+		TC	DMP
+		ADRES	WHOLECON
+		TC	RND/TST		# ROUND OFF TO WHOLE CENTI-SEC IN MPAC+1
+		CS	59.99SEC	# ALARM IF MPAC NON ZERO (G/163.83 SEC)
+		TC	SIZETST		# ALARM IF MPAC+1 G/59.99 SEC
+		DXCH	HITEMIN		# ADD IN SECONDS CONTRIBUTION
+		DAS	MPAC		# IF THIS DAS OVERFLOWS,
+		EXTEND			# G/ 745 HR, 39 MIN, 14.59 SEC.
+		BZF	+2
+		TC	ALMCYCLE	# ALARM AND RECYCLE
+		CAF	ZERO
+		TS	MPAC +2
+		TC	TPAGREE
+		DXCH	MPAC
+		INDEX	NOUNADD
+		DXCH	0
+		TC	POSTJUMP
+		CADR	LOADLV
+
+WHOLECON	OCT	00006		# (10EXP5/2EXP14)2EXP14
+		OCT	03240
+HRCON		OCT	00025		# 1 HOUR IN CENTI-SEC
+		OCT	37100
+MINCON		OCT	13560		# 1 MINUTE IN CENTI-SEC
+59MIN		OCT	00073		# 59 AS WHOLE
+59.99SEC	OCT	13557		# 5999 SENTI-SEC
+
+RND/TST		XCH	MPAC +2		# ROUNDS MPAC+2 INTO MPAC+1.
+		DOUBLE			# ALARMS IF MPAC NOT 0
+		TS	MPAC +2
+		CAF	ZERO
+		AD	MPAC +1
+		TS	MPAC +1
+		CAF	ZERO
+		AD	MPAC		# CAN'T OVFLOW
+		XCH	MPAC
+MPACTST		CCS	MPAC		# ALARM IF MPAC NON ZERO
+		TC	ALMCYCLE	# ALARM AND RECYCLE
+		TC	Q
+		TC	ALMCYCLE	# ALARM AND RECYCLE
+		TC	Q
+
+# Page 354
+						
+SIZETST		TS	MPAC +2		# CALLED WITH - CON IN A
+		CCS	MPAC +1		# GET MAG OF MPAC+1
+		AD	ONE
+		TCF	+2
+		AD	ONE
+		AD	MPAC +2
+		EXTEND			# MAG OF MPAC+1 - CON
+		BZMF	+2		
+		TC	ALMCYCLE	# MAG OF MPAC+1 G/ CON.  ALARM AND RECYCLE.
+		TC	Q		# MAG OF MPAC+1 L/= CON
+		
+# ALL3DEC TESTS THAT ALL 3 WORDS ARE LOADED IN DEC (FOR HMSIN).
+# ALARM IF NOT.  (TEST THAT BITS 3,4,5 OF DECBRNCH ARE ALL = 1).
+
+ALL3DEC		CS	OCT34BAR	# GET BITS 3,4,5 IN A
+		MASK	DECBRNCH	# GET BITS 3,4,5 OF DECBRNCH IN A
+		AD	OCT34BAR	# BITS 3,4,5 OF DECBRNCH MUST ALL = 1
+		CCS	A
+		TC	FORCEV25
+OCT34BAR	OCT	77743
+		TC	FORCEV25
+		TC	Q
+		
+FORCEV25	CS	OCT31		# FORCE VERB 25 TO BE EXECUTED BY RECYCLE
+		TS	VERBSAVE	# IN CASE OPERATOR EXECUTED A LOWER LOAD
+		TC	ALMCYCLE	# VERB.  ALARM AND RECYCLE.
+ENDHMSS		EQUALS
+
+# Page 355
+# MONITOR ALLOWS OTHER KEYBOARD ACTIVITY.  IT IS ENDED BY VERB TERMINATE,
+# VERB PROCEED WITHOUT DATA, VERB RESEQUENCE,
+# ANOTHER MONITOR, OR ANY NVSUB CALL THAT PASSES THE DSPLOCK (PROVIDED
+# THAT THE OPERATOR HAS SOMEHOW ALLOWED THE ENDING OF A MONITOR WHICH
+# HE HAS INITIATED THROUGH THE KEYBOARD).
+#
+# MONITOR ACTION IS SUSPENDED, BUT NOT ENDED, BY ANY KEYBOARD ACTION.
+# EXCEPT ERROR LIGHT RESET.  IT BEGINS AGAIN WHEN KEY RELEASE IS PERFORMED.
+# MONITOR SAVES THE NOUN AND APPROPRIATE DISPLAY VERB IN MONSAVE.  IT SAVES
+# NOUNCADR IN MONSAVE1, IF NOUN = MACHINE CADR TO BE SPECIFIED.  BIT 15 OF
+# MONSAVE1 IS THE KILL MONITOR SIGNAL (KILLER BIT).  BIT 14 OF MONSAVE1
+# INDICATES THE CURRENT MONITOR WAS EXTERNALLY INITIATED (EXTERNAL
+# MONITOR BIT).  IT IS TURNED OFF BY RELDSP AND KILMONON.
+#
+# MONSAVE INDICATES IF MONITOR IS ON (+=ON, +0=OFF)
+# IF MONSAVE IS +, MONITOR ENTERS NO REQUEST, BUT TURNS KILLER BIT OFF.
+# IF MONSAVE IS +0, MONITOR ENTERS REQUEST AND TURNS KILLER BIT OFF.
+#
+# NVSUB (IF EXTERNAL MONITOR BIT IS OFF), VB=PROCEED WITHOUT DATA,
+# VB=RESEQUENCE, AND VB=TERMINATE TURN KILL MONITOR BIT ON.
+#
+# IF KILLER BIT IS ON, MONREQ ENTERS NO FURTHER REQUESTS, ZEROS MONSAVE
+# AND MONSAVE1 (TURNING OFF KILLER BIT AND EXTERNAL MONITOR BIT).
+#
+# MONITOR DOESN'T TEST FOR MATBS SINCE NVSUB CAN HANDLE INTERNAL MATBS NOW.
+
+		SETLOC	ENDRUTIN
+		
+		COUNT	41/PIN
+		
+MONITOR		CS	BIT15/14
+		MASK	NOUNCADR
+MONIT1		TS	MPAC +1		# TEMP STORAGE
+		CS	ENTEXIT
+		AD	ENDINST
+		CCS	A
+		TC	MONIT2
+BIT15/14	OCT	60000
+		TC	MONIT2
+		CAF	BIT14		# EXTERNALLY INITIATED MONITOR.
+		ADS	MPAC +1		# SET BIT 14 FOR MONSAVE1.
+		CAF	ZERO
+		TS	MONSAVE2	# ZERO NVMONOPT OPTIONS
+MONIT2		CAF	LOW7
+		MASK	VERBREG
+		TC	LEFT5
+		TS	CYL
+		CS	CYL
+		XCH	CYL
+		AD	NOUNREG
+		TS	MPAC		# TEMP STORAGE
+# Page 356
+		CAF	ZERO
+		TS	DSPLOCK		# +0 INTO DSPLOCK SO MONITOR CAN RUN.
+		CCS	CADRSTOR	# TURN OFF KR LITE IF CADRSTOR AND DSPLIST
+		TC	+2		# ARE BOTH EMPTY.  (LITE COMES ON IF NEW
+		TC	RELDSP1		# MONITOR IS KEYED IN OVER OLD MONITOR.)
+		INHINT
+		CCS	MONSAVE
+		TC	+5		# IF MONSAVE WAS +, NO REQUEST
+		CAF	ONE		# IF MONSAVE WAS 0, REQUEST MONREQ
+		TC	WAITLIST
+		EBANK=	DSPCOUNT
+		2CADR	MONREQ
+
+		DXCH	MPAC		# PLACE MONITOR VERB AND NOUN INTO MONSAVE
+		DXCH	MONSAVE		# ZERO THE KILL MONITOR BIT
+		RELINT			# SET UP EXTERNAL MONITOR BIT
+		TC	ENTRET
+		
+MONREQ		TC	LODSAMPT	# CALLED BY WAITLIST
+		CCS	MONSAVE1	# TIME IS SNATCHED N RUPT FOR NOUN 65
+		TC	+4		# IF KILLER BIT = 0, ENTER REQUESTS
+		TC	+3		# IF KILLER BIT = 0, ENTER REQUESTS
+		TC	KILLMON		# IF KILLER BIT = 1, NO REQUESTS.
+		TC	KILLMON		# IF KILLER BIT = 1, NO REQUESTS.
+		CAF	MONDEL
+		TC	WAITLIST	# ENTER WAITLIST REQUEST FOR MONREQ
+		EBANK=	DSPCOUNT
+		2CADR	MONREQ
+		
+		CAF	CHRPRIO
+		TC	NOVAC		# ENTER EXEC REQUEST FOR MONDO
+		EBANK=	DSPCOUNT
+		2CADR	MONDO
+		
+		TC	TASKOVER
+		
+KILLMON		CAF	ZERO		# ZERO MONSAVE AND TURN KILLER BIT OFF
+		TS	MONSAVE
+		TS	MONSAVE1	# TURN OFF KILL MONITOR BIT.
+		TC	TASKOVER	# TURN OFF EXTERNAL MONITOR BIT.
+MONDEL		OCT	144		# FOR 1 SEC MONITOR INTERVALS.
+
+MONDO		CCS	MONSAVE1	# CALLED BY EXEC
+		TC	+4		# IF KILLER BIT = 0, CONTINUE
+		TC	+3		# IF KILLER BIT = 0, CONTINUE
+		TC	ENDOFJOB	# IN CASE TERMINATE CAME SINCE LAST MONREQ
+		TC	ENDOFJOB	# IN CASE TERMINATE CAME SINCE LAST MONREQ
+		CCS	DSPLOCK
+# Page 357
+		TC	MONBUSY		# NVSUB IS BUSY
+		CAF	LOW7
+		MASK	MONSAVE
+		TC	UPDATNN -1	# PLACE NOUN INTO NOUNREG AND DISPLAY IT
+		CAF	MID7
+		MASK	MONSAVE		# CHANGE MONITOR VERB TO DISPLAY VERB
+		AD	MONREF		# -DEC10, STARTING IN BIT8
+		TS	EDOP		# RIGHT 7
+		CA	EDOP
+		TS	VERBREG
+		CAF	MONBACK		# SET RETURN TO PASTEVB AFTER DATA DISPLAY
+		TS	ENTRET
+		CS	BIT15/14
+		MASK	MONSAVE1	# PUT ECADR INTO MPAC +2.  INTMCTBS WILL
+		TS	MPAC +2		# DISPLAY IT AND SET NOUNCADR, NOUNADD,
+ENDMONDO	TC	TESTNN		# EBANK.
+
+		BLOCK	2
+		
+		SETLOC	FFTAG8
+		BANK
+		
+		COUNT	02/PIN
+		
+PASTEVB		CAF	MID7
+		MASK	MONSAVE2	# NVMONOPT PASTE OPTION
+		EXTEND
+		BZF	+2
+		TC	PASTEOPT	# PASTE PLEASE VERB FOR NVMONOPT
+		CA	MONSAVE		# PASTE MONITOR VERB --	PASTE OPTION IS 0
+PASTEOPT	TS	EDOP		# RIGHT 7
+		CA	EDOP		# PLACE MONITOR VERB OR PLEASE VERB INTO
+		TC	BANKCALL	# 	VERBREG AND DISPLAY IT.
+		CADR	UPDATVB -1
+		CAF	ZERO		# ZERO REQRET SO THAT PASTED VERBS CAN
+		TS	REQRET		#	BE EXECUTED BY OPERATOR.
+		CA	MONSAVE2
+		TC	BLANKSUB	# PROCESS NVMONOPT BLANK OPTION IF ANY
+		TC	+1
+ENDPASTE	TC	ENDOFJOB
+
+MID7		OCT	37600
+
+		SETLOC	ENDMONDO +1
+		COUNT	41/PIN
+		
+MONREF		OCT	75377		# -DEC10, STARTING IN BIT8
+MONBACK		ADRES	PASTEVB
+
+# Page 358
+MONBUSY		TC	RELDSPON	# TURN KEY RELEASE LIGHT
+		TC	ENDOFJOB
+
+# DSPFMEM IS USED TO DISPLAY (IN OCTAL) ANY FIXED REGISTER.
+# IT IS USED WITH NOUN = MACHINE CADR TO BE SPECIFIED.  THE FCADR OF THE 
+# DESIRED LOCATION IS THEN PUNCHED IN.  IT HANDLES F/F (FCADR 4000-7777)
+# 
+# FOR BANKS L/E 27, THIS IS ENOUGH.
+#
+# FOR BANKS G/E 30, THE THIRD COMPONENT OF NOUN 26 (PRIO, ADRES, BBCON)
+# MUST BE PRELOADED WITH THE DESIRED SUPERBANK BITS (BITS 5,6,7).
+#	V23N26 SHOULD BE USED.
+#
+# SUMMARY
+# FOR BANKS L/E 27,				V27N01E(FCADR)E
+# FOR BANKS G/E 30, 	V23N26E(SUPERBITS)E	V27N01E(FCADR)E
+
+DSPFMEM		CAF	R1D1		# IF F/F, DATACALL USES BANK 02 OR 03.
+		TS	DSPCOUNT
+		CA	DSPTEM1 +2	# SUPERBANK BITS WERE PRELOADED INTO
+		TS	L		# 3RD COMPONENT OF NOUN 26.
+		CA	NOUNCADR	# ORIGINAL FCADR LOADED STILL IN NOUNCADR.
+		TC	SUPDACAL	# CALL WITH FCADR IN A, SUPERBITS IN L.
+		TC	DSPOCTWO
+ENDSPF		TC	ENDOFJOB
+
+# Page 359
+# WORD DISPLAY ROUTINES
+		SETLOC	TESTOFUF +4
+		COUNT	40/PIN
+		
+DSPSIGN		XCH	Q
+		TS	DSPWDRET
+		CCS	MPAC
+		TC	+8D
+		TC	+7
+		AD	ONE
+		TS	MPAC
+		TC	-ON
+		CS	MPAC +1
+		TS	MPAC +1
+		TC	DSPWDRET
+		TC	+ON
+		TC	DSPWDRET
+		
+DSPRND		EXTEND			# ROUND BY 5 EXP-6
+		DCA	DECROUND -1
+		DAS	MPAC
+		EXTEND
+		BZF	+4
+		EXTEND
+		DCA	DPOSMAX
+		DXCH	MPAC
+		TC	Q
+		
+# DSPDECWD CONVERTS C(MPAC,MPAC+1) INTO A SIGN AND 5 CHAR DECIMAL
+# STARTING IN LOC SPECIFIED IN DSPCOUNT.  IT ROUNDS BY 5 EXP-6.
+
+DSPDECWD	XCH	Q
+		TS	WDRET
+		TC	DSPSIGN
+		TC	DSPRND
+		CAF	FOUR
+DSPDCWD1	TS	WDCNT
+		CAF	BINCON
+		TC	SHORTMP
+TRACE1		INDEX	MPAC
+		CAF	RELTAB
+		MASK	LOW5
+		TS	CODE
+		CAF	ZERO
+		XCH	MPAC +2
+		XCH	MPAC +1
+		TS	MPAC
+		XCH	DSPCOUNT
+TRACE1S		TS	COUNT
+# Page 360
+		CCS	A		# DECREMENT DSPCOUNT EXCEPT AT +0
+		TS	DSPCOUNT
+		TC	DSPIN
+		CCS	WDCNT
+		TC	DSPDCWD1
+		CS	VD1
+		TS	DSPCOUNT
+		TC	WDRET
+		
+		OCT	00000
+DECROUND	OCT	02476
+
+# DSPDECNR CONVERTS C(MPAC,MPAC+1) INTO A SIGN AND 5 CHAR DECIMAL
+# STARTING IN LOC SPECIFIED IN DSPCOUNT.  IT DOES NOT ROUND
+
+DSPDECNR	XCH	Q
+		TS	WDRET
+		TC	DSPSIGN
+		TC	DSPDCWD1 -1
+
+# DSPDC2NR CONVERTS C(MPAC,MPAC+1) INTO A SIGN AND 2 CHAR DECIMAL
+# STARTING IN LOC SPECIFIED IN DSPCOUNT.  IT DOES NOT ROUND
+
+DSPDC2NR	XCH	Q
+		TS	WDRET
+		TC	DSPSIGN
+		CAF	ONE
+		TC	DSPDCWD1
+		
+# DSP2DEC CONVERTS C(MPAC) AND C(MPAC+1) INTO A SIGN AND 10 CHAR DECIMAL
+# STARTING IN THE LOC SPECIFIED IN DSPCOUNT.
+
+DSP2DEC		XCH	Q
+		TS	WDRET
+		CAF	ZERO
+		TS	CODE
+		CAF	THREE
+		TC	11DSPIN		# -R2 OFF
+		CAF	FOUR
+		TC	11DSPIN		# +R2 OFF
+		TC	DSPSIGN
+		CAF	R2D1
+END2DEC		TC	DSPDCWD1
+
+# DSPDECVN DISPLAYS C(A) UPON ENTRY AS A 2 CHAR DECIMAL BEGINNING IN THE
+# DSP LOC SPECIFIED IN DSPCOUNT.
+#
+# C(A) SHOULD BE IN FORM N X 2EXP-14.  THIS IS SCALED TO FORM N/100 BEFORE
+# DISPLAY CONVERSION.
+# Page 361
+
+DSPDECVN	EXTEND
+		MP	VNDSPCON	# MULT BY .01
+		LXCH	MPAC		# TAKE RESULTS FROM L. (MULT BY 2EXP14).
+		CAF	ZERO
+		TS	MPAC +1
+		XCH	Q
+		TS	WDRET
+		TC	DSPDC2NR +3	# NO SIGN, NO ROUND, 2 CHAR
+		
+VNDSPCON	OCT	00244		# .01 ROUNDED UP
+
+GOVNUPDT	TC	DSPDECVN	# THIS IS NOT FOR GENERAL USE.  REALLY PART
+		TC	POSTJUMP	# OF UPDATVB.
+		CADR	UPDAT1 +2
+		
+ENDECVN		EQUALS
+
+		SETLOC	ENDSPF +1
+		COUNT	41/PIN
+		
+# DSPOCTWD DISPLAYS C(A) UPON ENTRY AS A 5 CHAR OCT STARTING IN THE DSP
+# CHAR SPECIFIED IN DSPCOUNT.  IT STOPS AFTER 5 CHAR HAVE BEEN DISPLAYED.
+
+DSPOCTWO	TS	CYL
+		XCH	Q
+		TS	WDRET		# MUST USE SAME RETURN AS DSP2BIT.
+		CAF	BIT14		# TO BLANK SIGNS
+		ADS	DSPCOUNT
+		CAF	FOUR
+WDAGAIN		TS	WDCNT
+		CS	CYL
+		CS	CYL
+		CS	CYL
+		CS	A
+		MASK	DSPMSK
+		INDEX	A
+		CAF	RELTAB
+		MASK	LOW5
+		TS	CODE
+		XCH	DSPCOUNT
+		TS	COUNT
+		CCS	A		# DECREMENT DSPCOUNT EXCEPT AT +0
+		TS	DSPCOUNT
+		TC	POSTJUMP
+		CADR	DSPOCTIN
+OCTBACK		CCS	WDCNT
+		TC	WDAGAIN		# +
+DSPLV		CS	VD1		# TO BLOCK NUMERICAL CHARACTERS, CLEARS,
+# Page 362
+		TS	DSPCOUNT	# AND SIGNS AFTER A COMPLETED DISPLAY.
+		TC	WDRET
+
+DSPMSK		=	SEVEN
+
+# DSP2BIT DISPLAYS C(A) UPON ENTRY AS A 2 CHAR OCT BEGINNING IN THE DSP
+# LOC SPECIFIED IN DSPCOUNT BY PRE CYCLING RIGHT C(A) AND USING THE LOGIC
+# OF THE 5 CHAR OCTAL DISPLAY
+
+DSP2BIT		TS	CYR
+		XCH	Q
+		TS	WDRET
+		CAF	ONE
+		TS	WDCNT
+		CS	CYR
+		CS	CYR
+		XCH	CYR
+		TS	CYL
+		TC	WDAGAIN +5
+
+# FOR DSPIN PLACE 0/25 OCT INTO COUNT, 5 BIT RELAY CODE INTO CODE.  BOTH
+# ARE DESTROYED.  IF BIT14 OF COUNT IS 1, SIGN IS BLANKED WITH LEFT CHAR.
+# FOR DSPIN1 PLACE 0,1 INTO BIT11 OF CODE, 2 INTO COUNT, REL ADDRESS OF
+# DSPTAB ENTRY INTO DSREL.
+
+		SETLOC	ENDECVN
+		
+		COUNT	40/PIN
+		
+DSPIN		XCH	Q		# CAN'T USE L FOR RETURN, SINCE MANY OF THE 
+		TS	DSEXIT		# ROUTINES CALLING DSPIN USE L AS RETURN.
+		CAF	LOW5
+		MASK	COUNT
+		TS	SR
+		XCH	SR
+		TS	DSREL
+		CAF	BIT1
+		MASK	COUNT
+		CCS	A
+		TC	+2		# LEFT IF COUNT IS ODD
+		TC	DSPIN1 -1	# RIGHT IF COUNT IS EVEN
+		XCH	CODE
+		TC	SLEFT5		# DOES NOT USE CYL
+		TS	CODE
+		CAF	BIT14
+		MASK 	COUNT
+		CCS	A
+		CAF	TWO		# BIT14 = 1, BLANK SIGN
+# Page 363
+		AD	ONE		# BIT14 = 0, LEAVE SIGN ALONE
+		TS	COUNT		# +0 INTO COUNT FOR RIGHT
+					# +1 INTO COUNT FOR LEFT (SIGN LEFT ALONE)
+					# +3 INTO COUNT FOR LEFT (TO BLANK SIGN)
+DSPIN1		INHINT
+		INDEX	DSREL
+		CCS	DSPTAB
+		TC	+2		# IF +
+		TC	CCSHOLE
+		AD	ONE		# IF -
+		TS	DSMAG
+		INDEX	COUNT
+		MASK	DSMSK
+		EXTEND
+		SU	CODE
+		EXTEND
+		BZF	DSLV		# SAME
+DFRNT		INDEX	COUNT
+		CS	DSMSK		# MASK WITH 77740, 76037, 76777, OR 74037
+		MASK	DSMAG
+		AD	CODE
+		CS	A
+		INDEX	DSREL
+		XCH	DSPTAB
+		EXTEND
+		BZMF	DSLV		# DSPTAB ENTRY WAS -
+		INCR	NOUT		# DSPTAB ENTRY WAS +
+DSLV		RELINT
+		TC	DSEXIT
+		
+DSMSK		OCT	37
+		OCT	1740
+		OCT	2000
+		OCT	3740
+		
+# FOR 11DSPIN, PUT REL ADDRESS OF DSPTAB ENTRY INTO A, 1 IN BIT11 OR 0 IN
+# BIT11 OF CODE.
+
+11DSPIN		TS	DSREL
+		CAF	TWO
+		TS	COUNT
+		XCH	Q		# MUST USE SAME RETURN AS DSPIN
+		TS	DSEXIT
+		TC	DSPIN1
+		
+DSPOCTIN	TC	DSPIN		# SO DSPOCTWD DOESN'T USE SWCALL
+		CAF	+2
+		TC	BANKJUMP
+# Page 364
+ENDSPOCT	CADR	OCTBACK
+
+# DSPALARM FINDS TC NVSUBEND IN ENTRET FOR NVSUB INITIATED ROUTINES
+# ABORT WITH 01501.
+#
+# DSPALARM FINDS TC ENDOFJOB IN ENTRET FOR KEYBOARD INITIATED ROUTINES.
+# DC TC ENTRET.
+
+PREDSPAL	CS	VD1
+		TS	DSPCOUNT
+DSPALARM	CS	NVSBENDL
+		AD	ENTEXIT
+		EXTEND
+		BZF	CHARALRM +2
+		CS	MONADR		# IF THIS IS A MONITOR, KILL IT
+		AD	ENTEXIT
+		EXTEND
+		BZF	+2
+		TC	CHARALRM
+		TC	KILMONON
+		TC	FALTON
+		TC	PASTEVB		# PUT MONITOR VERB BACK IN VERBREG
+CHARALRM	TC	FALTON		# NOT NVSUB INITATED TURN ON OPR ERROR
+		TC	ENDOFJOB
+		TC	P00DOO
+		OCT	01501
+MONADR		GENADR	PASTEVB
+NVSBENDL	TC	NVSUBEND
+
+# ALMCYCLE TURNS ON CHECK FAIL LIGHT, REDISPLAYS THE ORIGINAL VERB THAT
+# WAS EXECUTED, AND RECYCLES TO EXECUTE THE ORIGINAL VERB/NOUN COMBINATION
+# THAT WAS LAST EXECUTED.  USED FOR BAD DATA DURING LOAD VERBS AND BY
+# MCTBS.  ALSO BY MMCHANG IF 2 NUMERICAL CHARACTERS WERE NOT PUNCHED IN
+# FOR MM CODE
+
+		SETLOC	MID7 +1
+		COUNT	02/PIN
+		
+ALMCYCLE	TC	FALTON		# TURN ON CHECK FAIL LIGHT.
+		CS	VERBSAVE	# GET ORIGINAL VERB THAT WAS EXECUTED
+		TS	REQRET		# SET FOR ENTPAS0
+		TC	BANKCALL	# PUTS ORIGINAL VERB INTO VERBREG AND
+		CADR	UPDATVB -1	# DISPLAYS IT IN VERB LIGHTS.
+		TC	POSTJUMP
+ENDALM		CADR	ENTER
+
+# MMCHANG USES NOUN DISPLAY UNTIL ENTER.  THEN IT USES MODE DISP.
+# IT GOES TO MODROUT WITH THE NEW M M CODE IN A, BUT NOT DISPLAYED IN
+# Page 365
+# MM LIGHTS.
+#
+# IT DEMANDS 2 NUMERICAL CHARACTERS BE PUNCHED IN FOR NEW MM CODE.
+# IF NOT, IT RECYCLES.
+
+		SETLOC	DSP2BIT +10D
+		
+		COUNT	41/PIN
+		
+MMCHANG		TC	REQMM		# ENTPASHI ASSUMES THE TC REQMM AT MMCHANG
+					# IF THIS MOVES AT ALL, MUST CHANGE
+					# MMADREF AT ENTPASHI.
+		CAF	BIT5		# OCT20 = ND2.
+		AD	DSPCOUNT	# DSPCOUNT MUST = -ND2.
+		EXTEND			# DEMAND THAT 2 NUM CHAR WERE PUNCHED IN.
+		BZF	+2
+		TC	ALMCYCLE	# DSPCOUNT NOT= -ND2.  ALARM AND RECYCLE.
+		CAF	ZERO		# DSPCOUNT = -ND2.
+		XCH	NOUNREG
+		TS	MPAC
+		CAF	ND1
+		TS	DSPCOUNT
+		TC	BANKCALL
+		CADR	2BLANK
+		CS	VD1		# BLOCK NUM CHAR IN
+		TS	DSPCOUNT
+		CA	MPAC
+		TC	POSTJUMP
+		CADR	MODROUTB	# GO THRU STANDARD LOC.
+		
+MODROUTB	=	V37
+REQMM		CS	Q
+		TS	REQRET
+		CAF	ND1
+		TS	DSPCOUNT
+		CAF	ZERO
+		TS	NOUNREG
+		TC	BANKCALL
+		CADR	2BLANK
+		TC	FLASHON
+		CAF	ONE
+		TS	DECBRNCH	# SET FOR DEC
+		TC	ENTEXIT
+		
+# VBRQEXEC ENTERS REQUEST TO EXEC FOR ANY ADDRESS WITH ANY PRIORITY.
+# IT DOES ENDOFJOB AFTER ENTERING REQUEST.  DISPLAY SYST IS RELEASED.
+# IT ASSUMES NOUN 26 HAS BEEN PRELOADED WITH
+# 	COMPONENT 1 	PRIORITY (BITS 10-14) BIT1=0 FOR NOVAC, BIT1=1 FOR FINDVAC.
+# 	COMPONENT 2 	JOB ADRES (12 BIT)
+# Page 366
+#	COMPONENT 3	BBCON
+
+VBRQEXEC	CAF	BIT1
+		MASK	DSPTEM1
+		CCS	A
+		TC	SETVAC		# IF BIT1 = 1, FINDVAC
+		CAF	TCNOVAC		# IF BIT1 = 0, NOVAC
+REQEX1		TS	MPAC		# TC NOVAC OR TC FINDVAC INTO MPAC
+		CS	BIT1
+		MASK	DSPTEM1
+		TS	MPAC +4		# PRIO INTO MPAC+4 AS A TEMP
+REQUESTC	TC	RELDSP
+		CA	ENDINST
+		TS	MPAC +3		# TC ENDOFJOB INTO MPAC+3
+		EXTEND
+		DCA	DSPTEM1 +1	# JOB ADRES INTO MPAC+1
+		DXCH	MPAC +1		# BBCON INTO MPAC+2
+		CA	MPAC +4		# PRIO IN A
+		INHINT
+		TC	MPAC
+
+SETVAC		CAF	TCFINDVC
+		TC	REQEX1
+		
+# VBRQWAIT ENTERS REQUEST TO WAITLIST FOR ANY ADDRESS WITH ANY DELAY.
+# IT DOES ENDOFJOB AFTER ENTERING REQUEST.  DISPLAY SYST IS RELEASED.
+# IT ASSUMES NOUN 26 HAS BEEN PRELOADED WTIH
+#	COMPONENT 1	DELAY (LOW BITS)
+#	COMPONENT 2	TASK ADRES (12 BIT)
+#	COMPONENT 3	BBCON
+
+VBRQWAIT	CAF	TCWAIT
+		TS	MPAC		# TC WAITLIST INTO MPAC
+		CA	DSPTEM1		# TIME DELAY
+ENDRQWT		TC	REQUESTC -1
+
+# REQUESTC WILL PUT TASK ADRES INTO MPAC+1, BBCON INTO MPAC+2,
+# TC ENDOFJOB INTO MPAC+3.  IT WILL TAKE TIME DELAY OUT OF MPAC+4 AND
+# LEAVE IT IN A, INHINT AND TC MPAC.
+
+		SETLOC	NVSBENDL +1
+		COUNT	40/PIN
+		
+VBPROC		CAF	ONE		# PROCEED WITHOUT DATA
+		TS	LOADSTAT
+		TC	KILMONON	# TURN ON KILL MONITOR BIT
+		TC	RELDSP
+		TC	FLASHOFF
+		TC	RECALTST	# SEE IF THERE IS ANY RECALL FROM ENDIDLE
+
+# Page 367		
+VBTERM		CS	ONE
+		TC	VBPROC +1	# TERM VERB SETS LOADSTAT NEG
+		
+# PROCKEY PERFORMS THE SAME FUNCTION AS VBPROC.  IT MUST BE CALLED UNDER
+# EXECUTIVE CONTROL, WITH CHRPRIO.
+
+PROCKEY		CAF	ZERO		# SET REQRET FOR ENTER PASS 0.
+		TS	REQRET
+		CS	VD1		# BLOCK NUMERICAL CHARACTERS, SIGNS, CLEAR
+		TS	DSPCOUNT
+		TC	VBPROC
+		
+# VBRESEQ WAKES ENDIDLE AT SAME LINE AS FINAL ENTER OF LOAD (L+3).
+# (MAIN USE IS INTENDED AS RESPONSE TO INTERNALLY INITIATED FLASHING
+# DISPLAYS IN ENDIDLE.  SHOULD NOT BE USED WITH LOAD VERBS, PLEASE PERFORM,
+# OR PLEASE MARK VERBS BECAUSE THEY ALREADY USE L+3 IN ANOTHER CONTEXT.)
+
+VBRESEQ		CS	ZERO		# MAKE IT LOOK LIKE DATA IN.
+		TC	VBPROC +1
+		
+# FLASH IS TURNED OFF BY PROCEED WITHOUT DATA, TERMINATE, RESEQUENCE,
+# END OF LOAD.
+# Page 368
+
+# KEY RELEASE ROUTINE
+#
+# THIS ROUTINE ALWAYS TURNS OFF THE UPACT LIGHT AND ALWAYS CLEARS DSPLOCK.
+#
+# THE HIGHEST PRIORITY FUNCTION OF THE KEY RELEASE BUTTON IS THE
+# UNSUSPENDING OF A SUSPENDED MONITOR WHICH WAS EXTERNALLY INITIATED.
+# THIS FUNCTION IS ACCOMPLISHED BY CLEARING DSPLOCK AND TURNING OFF
+# THE KEY RELEASE LIGHT IF BOTH DSPLIST AND CADRSTOR ARE EMPTY.
+#
+# IF NO SUCH MONITOR EXISTS, THEN RELDSP IS EXECUTED TO CLEAR DSPLOCK
+# AND THE EXTERNAL MONITOR BIT (FREEING THE DISPLAY SYSTEM FOR INTERNAL
+# USE), TURN OFF THE KEY RELEASE LIGHT, AND WAKE UP ANY JOB IN DSPLIST.
+#
+# IN ADDITION IF THERE IS A JOB IN ENDIDLE, THEN CONTROL IS TRANSFERRED
+# TO PINBRNCH (IN DISPLAY INTERFACE ROUTINE) TO RE-EXECUTE THE SERIES OF
+# NVSUB CALLS ETC. THAT PRECEDED THE ENDIDLE CALL STILL AWAITING RESPONSE.
+# THIS FEATURE IS INTENDED FOR USE WHEN THE OPERATOR HAS BEEN REQUESTED TO
+# RESPOND TO SOME INTERNAL ACTION THAT USED ENDIDLE, BUT HE HAS WRITTEN
+# OVER THE INFORMATION ON THE DISPLAY PANEL BY SOME DISPLAYS OF HIS OWN
+# INITIATION WHICH DO NOT SERVE AS RESPONSES.  HITTING KEYRLSE WILL
+# RE-ESTABLISH THE DISPLAYS TO THE STATE THEY WERE IN BEOFRE HE OBSCURED
+# THEM, SO THAT HE CAN SEE THE WAITING REQUEST.  THIS WORKS ONLY FOR
+# INTERNAL PROGRAMS THAT USED ENDIDLE THROUGH MARGARET'S DISPLAY
+# SUBROUTINES.
+
+VBRELDSP	CS	BIT3
+		EXTEND
+		WAND	DSALMOUT	# TURN OF UPACT LITE
+		CCS	21/22REG	# OLD DSPLOCK
+		CAF	BIT14
+		MASK	MONSAVE1	# EXTERNAL MONITOR BIT (EMB)
+		CCS	A
+		TC	UNSUSPEN	# OLD DSPLOCK AND EMB BOTH 1, UNSUSPEND,
+TSTLTS4		TC	RELDSP		# NOT UNSUSPENDING EXTERNAL MONITOR
+		CCS	CADRSTOR	#	RELEASE DISPLAY SYSTEM AND
+		TC	+2		#	DO RE-ESTABLISH IF CADRSTOR IS FULL.
+		TC	ENDOFJOB
+		TC	POSTJUMP
+		CADR	PINBRNCH
+UNSUSPEN	CAF	ZERO		# EXTERNAL MONITOR IS SUSPENDED,
+		TS	DSPLOCK		#	JUST UNSUSPEND IT BY CLEARING DSPLOCK.
+		CCS	CADRSTOR	#	TURN KEY RELEASE LIGHT OFF IF BOTH
+		TC	ENDOFJOB	#	CADRSTOR AND DSPLIST ARE EMPTY.
+		TC	RELDSP1
+		TC	ENDOFJOB
+		
+ENDRELDS	EQUALS
+
+# Page 369
+# NVSUB IS USED FOR SUBROUTINE CALLS FROM WITHIN COMPUTER.  IT CAN BE
+# USED TO CALL THE COMBINATION OF ANY DISPLAY, LOAD, OR MONITOR VERB
+# TOGETHER WITH ANY NOUN AVAILABLE TO THE KEYBOARD.
+# PLACE 0VVVVVVVNNNNNNN INTO A.
+# V'S ARE THE 7-BIT VERB CODE.  N'S ARE THE 7-BIT NOUN CODE.
+#
+# IF NVSUB IS CALLED WTIH THE FOLLOWING NEGATIVE NUMBERS (RATHER THAN THE
+# VERB-NOUN CODE) IN A, THEN THE DISPLAY IS BLANKED AS FOLLOWS ---
+# -4 FULL BLANK, -3 LEAVE MODE, -2 LEAVE MODE AND VERB, -1 BLANK R'S ONLY.
+#
+# NVSUB CAN BE USED WTIH MACHINE CADR TO BE SPECIFIED BY PLACING THE CADR INTO
+# MPAC+2 BEFORE THE STANDARD NVSUB CALL.
+#
+# NVSUB RETURNS TO 2+ CALLING LOC AFTER PERFORMING TASK, IF DISPLAY
+# SYSTEM IS AVAILABLE.  THE NEW NOUN AND VERB CODES ARE DISPLAYED.
+# IF V'S =0, THE NEW NOUN CODE IS DISPLAYED ONLY (RETURN WITH NO FURTHER
+# ACTION).  IF N'S =0, THE NEW VERB CODE IS DISPLAYED ONLY (RETURN WITH NO
+# FURTHER ACTION).
+#
+# IT RETURNS TO 1+ CALLING LOC WITHOUT PERFORMING TASK, IF DISPLAY
+# SYSTEM IS BLOCKED (NOTHING IS DISPLAYED IN THIS CASE).
+# IT DOES TC ABORT (WITH OCT 01501) IF IT ENCOUNTERS A DISPLAY PROGRAM
+# ALARM CONDITION BEFORE RETURN TO CALLER.
+#
+# THE DISPLAY SYSTEM IS BLOCKED BY THE DEPRESSION OF ANY
+# KEY, EXCEPT ERROR LIGHT RESET.
+# IT IS RELEASED BY THE KEY RELEASE BUTTON, ALL EXTENDED VERBS,
+# PROCED WITOHOUT DATA, TERMINATE, RESEQUENCE, INITIALIZE EXECUTIVE,
+# RECALL PART OF RECALTST IF ENDIDLE WAS USED,
+# VB = REQUEST EXECUTIVE, VB = REQUEST WAITLIST,
+# MONITOR SET UP.
+#
+# THE DISPLAY SYSTEM IS ALSO BLOCKED BY THE EXTERNAL MONITOR BIT, WHICH
+# INDICATES AND EXTERNALLY INITIATED MONITOR IS RUNNING (SEE MONITOR).
+#
+# A NVSUB CALL THAT PASSES DSPLOCK AND THE EXTERNAL MONITOR BIT ENDS OLD
+# MONITOR.
+#
+# DSPLOCK IS THE INTERLOCK FOR USE OF KEYBOARD AND DISPLAY SYSTEM WHICH
+# LOCKS OUT INTERNAL USE WHENEVER THERE IS EXTERNAL KEYBOARD ACTION.
+#
+# NVSUB SHOULD BE USED TWICE IN SUCCESSION FOR `PLEASE PERFORM' SITUATIONS
+# (SIMILARLY FOR PLEASE MARK).  FIRST PLACE THE CODED NUMBER FOR WHAT
+# ACTION IS DESIRED OF OPERATOR INTO THEREGISTERS REFERRED TO BY THE
+# `CHECKLIST' NOUN.  GO TO NVSUB WITH A DISPLAY VERB AND THE `CHECKLIST'
+# NOUN.  GO TO NVSUB AGAIN WTIH THE `PLEASE PERFORM' VERB AND ZEROS IN THE
+# LOW 7 BITS.  THIS `PASTES UP' THE `PLEASE PERFORM' VERB INTO THE VERB
+# LIGHTS.
+#
+# NVMONOPT IS AN ENTRY SIMILAR TO NVSUB, BUT REQUIRING AN ADDITIONAL
+# Page 370
+# PARAMETER IN L.  IT SHOULD BE USED ONLY WITH A MONITOR VERB-NOUN CODE IN
+# A.  AFTER EACH MONITOR DISPLAY A *PLEASE* VERB WILL BE PASED INT THE VERB
+# LIGHTS OR DATA WILL BE BLANKED (OR BOTH) ACCORDING TO THE OPTIONS
+# SPECIFIED IN L.  IF BITS 8-14 OF L ARE OTHER THAN ZERO, THEN THEY WILL 
+# BE INTERPRETED AS A VERB CODE AND PASTED IN THE VERB LIGHTS.  (THIS VERB
+# CODE SHOULD DESIGNATE ONE OF THE *PLEASE* VERBS.)  IF BITS 1-3 OF L ARE
+# OTHER THAN ZERO, THEN THEY WILL BE USED BO BLANK DATA BY BEING FED TO
+# BLANKSUB.  IF NVMONOPT IS USED WITH A VERB OTHER THAN A MONITOR VERB,
+# THE PARAMETER IN L HAS NO EFFECT.
+#
+# NVSUB IN FIXED-FIXED PLACES 2+CALLING LOC INTO NVQTEM, TC NVSUBEND INTO
+# ENTRET.  (THIS WILL RESTORE OLD CALLING BANK BITS)
+
+		SETLOC	ENDALM +1
+
+		COUNT	02/PIN
+		
+NVSUB		LXCH	7		# ZERO NVMONOPT OPTIONS
+NVMONOPT	TS	NVTEMP
+		CAF	BIT14
+		MASK 	MONSAVE1	# EXTERNAL MONITOR BIT
+		AD	DSPLOCK
+		CCS	A
+		TC	Q		# DSP SYST BLOCKED.  RET TO 1.  CALLING LOC
+		CAF	ONE		# DSP SYST AVAILABLE.
+NVSBCOM		AD	Q
+		TS	NVQTEM		# 2+ CALLING LOC INTO NVQTEM
+		LXCH	MONSAVE2	# STORE NVMONOPT OPTIONS
+		TC	KILMONON	# TURN ON KILL MONITOR BIT
+NVSUBCOM	CAF	NVSBBBNK
+
+		XCH	BBANK
+		EXTEND			# SAVE OLD SUPERBITS
+		ROR	SUPERBNK
+		TS	NVBNKTEM
+		CAF	PINSUPBT
+		EXTEND
+		WRITE 	SUPERBNK
+		TC	NVSUBB		# GO TO NVSUB1 THRU STANDARD LOC
+		EBANK=	DSPCOUNT
+NVSBBBNK	BBCON	NVSUB1
+
+PINSUPBT	=	NVSBBBNK	# CONTAINS THE PINBALL SUPERBIT.
+
+NVSUBEND	DXCH	NVQTEM		# NVBNKTEM MUST = NVQTEM+1
+		TC	SUPDXCHZ	# DTCB WITH SUPERBIT SWITCHING
+		
+		SETLOC	ENDRQWT +1
+		
+		COUNT	41/PIN
+# Page 371
+		
+# BLANKDSP BLANKS DISPLAY ACCORDING TO OPTION NUMBER IN NVTEMP AS FOLLOWS:
+# -4 FULL BLANK, -3 LEAVE MODE, -2 LEAVE MODE AND VERB, -1 BLANK R'S ONLY.
+
+BLANKDSP	AD	SEVEN		# 7,8,9, OR 10 (A HAD 0,1,2,OR 3)
+		INHINT
+		TS	CODE		# BLANK SPECIFIED DSPTABS
+		CS	BIT12
+		INDEX	CODE
+		XCH	DSPTAB
+		CCS	A
+		INCR	NOUT
+		TC	+1
+		CCS	CODE
+		TC	BLANKDSP +2
+		RELINT
+		INDEX	NVTEMP
+		TC	+5
+		TC	+1		# NVTEMP HAS	-4 (NEVER TOUCH MODREG)
+		TS	VERBREG		#		-3
+		TS	NOUNREG		#		-2
+		TS	CLPASS		#		-1
+		CS	VD1
+		TS	DSPCOUNT
+		TC	FLASHOFF	# PROTECT AGAINST INVISIBLE FLASH
+		TC	ENTSET -2	# ZEROS REQRET
+		
+NVSUB1		CAF	ENTSET		# IN BANK
+		TS	ENTRET		# SET RETURN TO NVSUBEND
+		CCS	NVTEMP		# WHAT NOW
+		TC	+4		# NORMAL NVSUB CALL (EXECUTE VN OR PASTE)
+		TC	GODSPALM
+		TC	BLANKDSP	# BLANK DISPLAY AS SPECIFIED
+		TC	GODSPALM
+		CAF	LOW7
+		MASK	NVTEMP
+		TS	MPAC +3		# TEMP FOR NOUN (CAN'T USE MPAC.  DSPDECVN
+		CA	NVTEMP		#		 USES MPAC, +1, +2).
+		TS	EDOP		# RIGHT 7
+		CA	EDOP
+		TS	MPAC +4		# TEMP FOR VERB (CAN'T USE MPAC+1.  DSPDECVN
+					# 		 USES MPAC, +1, +2)
+		CCS	MPAC +3		# TEST NOUN
+		TC	NVSUB2		# IF NOUN NOT +0, GO ON
+		CA	MPAC +4	
+		TC	UPDATVB -1	# IF NOUN = +0, DISPLAY VERB.  THEN RETURN
+		CAF	ZERO		# ZERO REQRET SO THAT PASTED VERBS CAN
+		TS	REQRET		# BE EXECUTED BY OPERATOR.
+ENTSET		TC	NVSUBEND
+NVSUB2		CCS	MPAC +4		# TEST VERB
+		TC	+4		# IF VERB NOT +0, GO ON
+# Page 372
+		CA	MPAC +3
+		TC	UPDATNN -1	# IF VERB = +0, DISPLAY NOUN.  THEN RETURN
+		TC	NVSUBEND
+		CA	MPAC +2		# TEMP FOR MACH CADR TO BE SPEC.  (DSPDECVN
+		TS	MPAC +5		# 	USES MPAC, +1, +2)
+		CA	MPAC +4
+		TC	UPDATVB -1	# IF BOTH NOUN AND VERB NOT +0, DISPLAY
+		CA	MPAC +3		# BOTH AND GO TO ENTPAS0.
+		TC	UPDATNN -1
+		CAF	ZERO
+		TS	LOADSTAT	# SET FOR WAITING FOR DATA CONDITION
+		TS	CLPASS
+		TS	REQRET		# SET REQRET FOR PASS 0.
+		CA	MPAC +5		# RESTORES MACH CADR TO BE SPEC TO MPAC+2
+		TS	MPAC +2		# FOR USE IN INTMCTBS (IN ENTPAS0).
+ENDNVSB1	TC	ENTPAS0
+
+# IF INTERNAL MACH CADR TO BE SPECIFIED, MPAC+2 WILL BE PLACED INTO
+# NOUNCADR IN ENTPAS0 (INTMCTBS).
+
+		SETLOC	NVSUBEND +2
+		COUNT	02/PIN
+					# FORCE BIT 15 OF MONSAVE1 TO .
+KILMONON	CAF	BIT15		# 	THIS IS THE KILL MONITOR BIT.
+		TS	MONSAVE1	# TURN OFF BIT 14, THE EXTERNAL
+					# 	MONITOR BIT.
+		TC	Q
+		
+# LOADSTAT	+0	INACTIVE (WAITING FOR DATA).  SET BY NVSUB
+#		+1	PROCEED NO DATA.  SET BY SPECIAL VERB
+#		-1	TERMINATE.  SET BY SPECIAL VERB.
+#		-0	DATA IN.  	SET BY END OF LOAD ROUTINE.
+#			OR RESEQUENCE.  SET BY VERB 32
+#
+# L TO ENDIDLE (FIXED FIXED).
+# ROUTINES THAT REQUEST LOADS THROUGH NVSUB SHOULD USE ENDIDLE WHILE
+# WAITING FOR THE DATA TO BE LOADED.  ENDIDLE PUTS CURRENT JOB TO SLEEP.
+# ENDIDLE CANNOT BE CALLED FROM ERASABLE OR F/F MEMORY,
+# SINCE JOB SLEEP AND JOBWAKE CAN HANDLE ONLY FIXED BANKS.
+# RECALTST TESTS LOADSTAT AND WAKES JOB UP TO,
+#	L+1	FOR TERMINATE
+#	L+2	FOR PROCEED WITHOUT DATA
+#	L+3	FOR DATA IN, OR RESEQUENCE
+# IT DOES NOTHING IF LOADSTAT INDICATES WAITING FOR DTA.
+# Page 373
+#
+# ENDIDLE ABORTS (WITH CODE 1206) IF A SECOND JOB ATTEMPTS TO GO TO SLEEP
+# IN PINBALL.  IN PARTICULAR, IF AN ATTEMPT IS MADE TO GO TO ENDIDLE WHEN
+#	1)	CADRSTOR NOT= +0.  THIS IS THE CASE WHERE THE CAPACITY OF ENDIDLE IS
+#		EXCEEDED.  (+-NZ INDICATES A JOB IS ALREADY ASLEEP DUE TO ENDIDDLE.)
+#	2)	DSPLIST NOT= +0.  THIS INDICATES A JOB IS ALREADY ASLEEP DUE TO
+#		NVSUBUSY.
+
+ENDIDLE		LXCH	Q		# RETURN ADDRESS INTO L.
+		TC	ISCADR+0	# ABORT IF CADRSTOR NOT= +0.
+		TC	ISLIST+0	# ABORT IF DSPLIST NOT= +0
+		CA	L		# DON'T SET DSPLOC TO 1 SO CAN USE
+		MASK	LOW10		# ENDIDLE WITH NVSUB INITIATE MONITOR.
+		AD	FBANK		# SAME STRATEGY FOR CADR AS MAKECADR.
+		TS	CADRSTOR
+		TC	JOBSLEEP
+		
+ENDINST		TC	ENDOFJOB
+
+ISCADR+0	CCS	CADRSTOR	# ABORTS (CODE 01206) IF CADRSTOR NOT= +0.
+		TC	DSPABORT	# RETURNS IF CADRSTOR = +0.
+		TC	Q
+		TC	DSPABORT
+		
+ISLIST+0	CCS	DSPLIST		# ABORTS (CODE 01206) IF DSPLIST NOT= +0.
+		TC	DSPABORT	# RETURNS IF DSPLIST = +0.
+		TC	Q
+DSPABORT	TC	P00DOO
+		OCT	01206
+		
+# JAMTERM ALLOWS PROGRAMS TO PERFORM THE TERMINATE FUNCTION.
+# IT DOES ENDOFJOB.
+
+JAMTERM		CAF	PINSUPBT
+		EXTEND
+		WRITE	SUPERBNK
+		CAF	34DEC
+		TS	REQRET		# LEAVE ENTER SET FOR ENTPASS0.
+		CS	VD1
+		TS	DSPCOUNT
+		TC	POSTJUMP
+		CADR	VBTERM
+		
+34DEC		DEC	34
+
+# JAMPROC ALLOWS PROGRAMS TO PERFORM THE PROCEED/PROCEED WITHOUT DATA
+# FUNCTION.  IT DOES ENDOFJOB.
+# Page 374
+
+JAMPROC		CAF	PINSUPBT
+		EXTEND
+		WRITE	SUPERBNK
+		CAF	33DEC
+		TS	REQRET		# LEAVE ENTER SET FOR ENTPASS0.
+		CS	VD1
+		TS	DSPCOUNT
+		TC	POSTJUMP
+		CADR	VBPROC
+		
+33DEC		DEC	33
+
+# BLANKSUB BLANKS ANY COMBINATION OF R1, R2, R3.
+# CALL WITH BLANKING CODE IN A.
+# BIT1=1 BLANKS R1, BIT2=1 BLANKS R2, BIT3=1 BLANKS R3.
+# ANY COMBINATION OF THESE BITS IS ACCEPTED.
+#
+# DSPCOUNT IS RESTORED TO STATE IT WAS IN BEFORE BLANKSUB WAS EXECUTED.
+
+BLANKSUB	MASK 	SEVEN
+		TS	NVTEMP		# STORE BLANKING CODE IN NVTEMP.
+		CAF	BIT14
+		MASK	MONSAVE1	# EXTERNAL MONITOR BIT
+		AD	DSPLOCK
+		CCS	A
+		TC	Q		# DSP SYST BLOCKED.  RET TO 1+ CALLING LOC
+		INCR	Q		# DSP SYST AVAILABLE
+					# SET RETURN FOR 2+ CALLING LOC
+		CCS	NVTEMP
+		TCF	+2
+		TC	Q		# NOTHING TO BLANK.  RET TO 2+ CALLING LOC
+		LXCH	Q		# SET RETURN FOR 2 + CALLING LOC
+		CAF	BLNKBBNK
+		XCH	BBANK
+		EXTEND
+		ROR	SUPERBNK	# SAVE OLD SUPERBITS.
+		DXCH	BUF
+		CAF	PINSUPBT
+		EXTEND
+		WRITE	SUPERBNK
+		TC	BLNKSUB1
+		
+		EBANK=	DSPCOUNT
+BLNKBBNK	BBCON	BLNKSUB1
+ENDBLFF		EQUALS
+
+		SETLOC	ENDRELDS
+		COUNT	40/PIN
+		
+# Page 375		
+BLNKSUB1	CA	DSPCOUNT	# SAVE OLD DSPCOUNT FOR LATER RESTORATION
+		TS	BUF 	+2
+		CAF	BIT1		# TEST BIT1.  SEE IF R1 TO BE BLANKED.
+		TC	TESTBIT
+		CAF	R1D1
+		TC	5BLANK 	-1
+		CAF	BIT2		# TEST BIT2.  SEE IF R2 TO BE BLANKED.
+		TC	TESTBIT
+		CAF	R2D1
+		TC	5BLANK 	-1
+		CAF	BIT3		# TEST BIT3.  SEE IF R3 TO BE BLANKED.
+		TC	TESTBIT
+		CAF	R3D1
+		TC	5BLANK 	-1
+		CA	BUF 	+2	# RESTORE DSPCOUNT TO STATE IT HAD
+		TS	DSPCOUNT	# 	BEFORE BLANKSUB.
+		DXCH	BUF		# CALL L+2 DIRECTORY.
+		TC	SUPDXCHZ +1	# DTCB WITH SUPERBIT SWITCHING
+
+TESTBIT		MASK	NVTEMP		# NVTEMP CONTAINS BLANKING CODE
+		CCS	A
+		TC	Q		# IF CURRENT BIT = 1, RETURN TO L+1.
+		INDEX	Q		# IF CURRENT BIT = 0, RETURN TO L+3.
+		TC	2
+		
+ENDBSUB1	EQUALS
+
+# DSPMM DOES NOT DISPLAY MODREG DIRECTLY.  IT PUTS IN EXEC REQUEST WITH
+# PRIO 30000 FOR DSPMMJB AND RETURNS TO CALLER.
+#
+# IF MODREG CONTAINS -0, DSPMMJB BLANKS THE MODE LIGHTS.
+#
+# DSPMM MUST BE IN BANK 27 OR LOWER, SO IT CAN BE CALLED VIA BANKCALL.
+
+		BANK	7
+		SETLOC	PINBALL4
+		BANK
+		
+		COUNT	07/PIN
+		
+DSPMM		XCH	Q
+		TS	MPAC
+		INHINT
+		CAF	CHRPRIO
+		TC	NOVAC
+		EBANK=	DSPCOUNT
+		2CADR	DSPMMJB
+		
+		RELINT
+# Page 376
+ENDSPMM		TC	MPAC
+
+# DSPMM PLACE MAJOR MODE CODE INTO MODREG
+
+		SETLOC	ENDBSUB1
+		
+		COUNT	40/PIN
+		
+DSPMMJB		CAF	MD1		# GETS HERE THRU DSPMM
+		XCH	DSPCOUNT
+		TS	DSPMMTEM	# SAVE DSPCOUNT
+		CCS	MODREG
+		AD	ONE
+		TC	DSPDECVN	# IF MODREG IS + OR +0, DISPLAY MODREG
+		TC	+2		# IF MODREG IS -NZ, DO NOTHING
+		TC	2BLANK		# IF MODREG IS -0, BLANK MM
+		XCH	DSPMMTEM	# RESTORE DSPCOUNT
+		TS	DSPCOUNT
+		TC	ENDOFJOB
+		
+# RECALTST IS ENTERED DIRECTLY AFTER DATA IS LOADED (OR RESEQUENCE VERB IS
+# EXECUTED), TERMINATE VERB IS EXECUTED, OR PROCEED WITHOUT DATA VERB IS
+# EXECUTED.  IT WAKES UP JOB THAT DID TC ENDIDLE.
+# 
+# IF CADRSTOR NOT= +0, IT PUTS +0 INTO DSPLOCK, AND TURNS OFF KEY RLSE
+# LIGHT IF DSPLIST IS EMPTY (LEAVES KEY RLSE LIGHT ALONE IF NOT EMPTY).
+
+RECALTST 	CCS	CADRSTOR
+		TC	RECAL1
+		TC	ENDOFJOB	# NORMAL EXIT IF KEYBOARD INITIATED
+RECAL1		CAF	ZERO
+		XCH	CADRSTOR
+		INHINT
+		TC	JOBWAKE
+		CCS	LOADSTAT
+		TC	DOPROC		# + PROCEED WITHOUT DATA
+		TC	ENDOFJOB	# PATHOLOGICAL CASE EXIT
+		TC	DOTERM		# -  TERMINATE
+		CAF	TWO		# -0 DATA IN OR RESEQUENCE
+RECAL2		INDEX	LOCCTR
+		AD	LOC		# LOC IS + FOR BASIC JOBS
+		INDEX	LOCCTR
+		TS	LOC
+		CA	NOUNREG		# SAVE VERB IN MPAC, NOUN IN MPAC+1 AT
+		TS	L		# TIME OF RESPONSE TO ENDIDLE FOR
+		CA	VERBREG		# POSSIBLE LATER TESTING BY JOB THAT HAS
+		INDEX	LOCCTR		# BEEN WAKED UP.
+		DXCH	MPAC
+		RELINT
+# Page 377
+RECAL3		TC	RELDSP
+		TC	ENDOFJOB
+		
+DOTERM		CAF	ZERO
+		TC	RECAL2
+		
+DOPROC		CAF	ONE
+		TC	RECAL2
+		
+		SBANK=	LOWSUPER
+# Page 378
+# MISCELLANEOUS SERVICE ROUTINES IN FIXED/FIXED
+
+		SETLOC	ENDBLFF
+
+		COUNT	02/PIN
+
+# SETNCADR	E CADR ARRIVES IN A.  IT IS STORED IN NOUNCADR.  EBANK BITS
+#		ARE SET.  E ADRES IS DERIVED AND PUT INTO NOUNADD.
+
+SETNCADR	TS	NOUNCADR	# STORE ECADR
+		TS	EBANK		# SET EBANK BITS
+		MASK	LOW8
+		AD	OCT1400
+		TS	NOUNADD		# PUT E ADRES INTO NOUNADD
+		TC	Q
+
+# SETNADD	GETS E CADR FROM NOUNCADR, SETS EBANK BITS, DERIVES
+#		E ADRES AND PUTS IT INTO NOUNADD.
+
+SETNADD		CA	NOUNCADR
+		TCF	SETNCADR +1
+
+# SETEBANK	E CADR ARRIVES IN A.  EBANK BITS ARE SET.  E ADRES IS
+#		DERIVED AND LEFT IN A.
+
+SETEBANK	TS	EBANK		# SET EBANK BITS
+		MASK	LOW8
+		AD	OCT1400		# E ADRES LEFT IN A
+		TC	Q
+
+R1D1		OCT	16		# THESE 3 CONSTANTS FORM A PACKED TABLE.
+R2D1		OCT	11		# DON'T SEPARATE.
+R3D1		OCT	4
+
+RIGHT5		TS	CYR
+		CS	CYR
+		CS	CYR
+		CS	CYR
+		CS	CYR
+		XCH	CYR
+		TC	Q
+
+LEFT5		TS	CYL
+		CS	CYL
+		CS	CYL
+		CS	CYL
+# Page 379
+		CS	CYL
+		XCH	CYL
+		TC	Q
+
+SLEFT5		DOUBLE
+		DOUBLE
+		DOUBLE
+		DOUBLE
+		DOUBLE
+		TC	Q
+
+LOW5		OCT	37		# THESE 3 CONSTANTS FORM A PACKED TABLE.
+MID5		OCT	1740		# DON'T SEPARATE.
+HI5		OCT	76000		# MUST STAY HERE
+
+TCNOVAC		TC	NOVAC
+TCWAIT		TC	WAITLIST
+TCTSKOVR	TC	TASKOVER
+TCFINDVC	TC	FINDVAC
+
+CHRPRIO		OCT	30000		# EXEC PRIORITY OF CHARIN
+
+LOW11		OCT	3777
+B12-1		EQUALS	LOW11
+LOW8		OCT	377
+
+VD1		OCT	23		# THESE 3 CONSTANTS FORM A PACKED TABLE.
+ND1		OCT	21		# DON'T SEPARATE.
+MD1		OCT	25
+
+BINCON		DEC	10
+
+FALTON		CA	BIT7		# TURN ON OPERATOR ERROR LIGHT.
+		EXTEND
+		WOR	DSALMOUT	# BIT 7 OF CHANNEL 11
+		TC	Q
+
+FALTOF		CS	BIT7		# TURN OFF OPERATOR ERROR LIGHT
+		EXTEND
+		WAND	DSALMOUT	# BIT 7 OF CHANNEL 11
+		TC	Q
+
+RELDSPON	CAF	BIT5		# TURN ON KEY RELEASE LIGHT
+		EXTEND
+		WOR	DSALMOUT	# BIT 5 OF CHANNEL 11
+		TC	Q
+
+# Page 380
+LODSAMPT	EXTEND
+		DCA	TIME2
+		DXCH	SAMPTIME
+		TC	Q
+
+TPSL1		EXTEND			# SHIFTS MPAC, +1, +2 LEFT 1
+		DCA	MPAC 	+1	# LEAVES OVFIND SET TO +/- 1 FOR OF/UF
+		DAS	MPAC	+1
+		AD	MPAC
+		ADS	MPAC
+		TS	7		# TS A DOES NOT CHANGE A ON OF/UF.
+		TC	Q		# NO NET OF/UF
+		TS	MPAC+6		# MPAC +6 SET TO +/- 1 FOR OF/UF
+		TC	Q
+
+# IF MPAC, +1 ARE EACH +NZ OR +0 AND C(A)=-0, SHORTMP WRONGLY GIVES +0.
+# IF MPAC, +1 ARE EACH -NZ OR -0 AND C(A)=+0, SHORTMP WRONGLY GIVES +0.
+# PRSHRTMP FIXES FIRST CASE ONLY, BY MERELY TESTING C(A) AND IF IT = -0,
+# SETTING RESULT TO -0.
+#
+# (DO NOT USE PRSHRTMP UNLESS MPAC, +1 ARE EACH +NZ OR +0, AS THEY ARE
+# WHEN THEY CONTAIN THE SF CONSTANTS.)
+
+PRSHRTMP	TS	MPTEMP
+		CCS	A
+		CA	MPTEMP		# C(A) +,  DO REGULAR SHORTMP
+		TCF	SHORTMP +1	# C(A) +0, DO REGULAR SHORTMP
+		TCF	-2		# C(A) -,  DO REGULAR SHORTMP
+		CS	ZERO		# C(A) -0, FORCE RESULT TO -0 AND RETURN.
+		TS	MPAC
+		TS	MPAC 	+1
+		TS	MPAC 	+2
+		TC	Q
+		
+FLASHON		CAF	BIT6		# TURN ON V/N FLASH
+		EXTEND			# BIT 6 OF CHANNEL 11
+		WOR	DSALMOUT
+		TC	Q
+		
+FLASHOFF	CS	BIT6		# TURN OFF V/N FLASH
+		EXTEND
+		WAND	DSALMOUT	# BIT 6 OF CHANNEL 11
+		TC	Q
+	
+# Page 381	
+# INTERNAL USE OF KEYBOARD AND DISPLAY PROGRAM.
+#
+# USER MUST SCHEDULE CALLS TO NVSUB SO THAT THERE IS NO CONFLICT OF USE OR
+# CONFUSION TO OPERATOR.  THE OLD CRABLOCK (INTERNAL/INTERNAL INTERLOCK)
+# HAS BEEN REMOVED AND THE INTERNAL USER NO LONGER HAS THE PROTECTION THIS
+# OFFERED.
+#
+# THERE ARE TWO WAYS A JOB CAN BE PUT TO SLEEP BY TEH KEYBOARD + DISPLAY
+# PROGRAM.	1)	BY ENDIDLE
+#		2)	BY NVSUBUSY
+# THE BASIC CONVENTION IS THAT ONLY ONE JOB WILL BE PERITTED ASLEEP VIA
+# THE KEYBOARD + DISPLAY PROGRAM AT A TIME.  IF A JOB ATTEMPTS TO GO TO
+# SLEEP BY MEANS OF (1) OR (2) AND THERE IS ALREADY AJOB ASLEEP THAT WAS
+# PUT TO SLEEP BY (1) OR (2), THEN AN ABORT IS CAUSED.
+#
+# THE CALLING SEQUENCE FOR NVSUB IS
+#			CAF		V/N
+#	L		TC		NVSUB
+#	L+1		RETURN HERE IF OPERATOR HAS INTERVENED
+#	L+2		RETURN HERE AFTER EXECUTION
+#
+# A ROUTINE CALLED NVSUBUSY IS PROVIDED (USE IS OPTIONAL) TO PUT
+# YOUR JOB TO SLEEP UNTIL THE OPERATOR RELEASES THE KEYBOARD + DISPLAY
+# SYSTEM.  NVSUBUSY ALSO TURNS ON THE KEY RELEASE LIGHT.
+# NVSUBUSY CANNOT BE CALLED FROM ERASABLE OR F/F MEMORY,
+# SINCE JOBSLEEP AND JOBWAKE CAN HANDLE ONLY FIXED BANKS.
+#
+# THE CALLING SEQUENCE IS
+#	CAF	WAKEFCADR
+#	TC	NVSUBUSY
+# .
+#
+# NVSUBUSY IS INTENDED FOR USE WHEN AN INTERNAL PROGRAM FINDS THE OPERATOR
+# IS NOT USING THE KEYBOARD + DISPLAY PROGRAM (BY HIS OWN INITIATION).  IT IS
+# NOT INTENDED FOR USE WHEN ONE INTERNAL PROGRAM FINDS ANOTHER INTERNAL 
+# PROGRAM USING THE KEYBOARD + DISPLAY PROGRAM.
+#
+# NVSUBUSY ABORTS (WITH CODE 01206) IF A SECOND JOB ATTEMPTS TO GO TO
+# SLEEP IN PINBALL.  IN PARTICULAR, IF AN ATTEMPT IS MAKE TO GO TO NVSUBUSY
+# WHEN
+#
+#	1)	DSPLIST NOT= +0.  THIS IS THE CASE WHERE THE CAPACITY FO THE DSPLIST
+#		IS EXCEEDED.
+#	2) 	CADRSTOR NOT= +0.  THIS INDICATES THAT A JOB IS ALREADY USING
+# Page 382
+# ENDIDLE.  (+-NZ INDICATES A JOB IS ALREADY ASLEEP DUE TO ENDIDLE.)
+
+PRENVBSY	CS	2K+3		# SPECIAL ENTRANCE FOR ROUTINES IN FIXED
+		AD	Q		# BANKS ONLY DESIRING THE FCADR OF (LOC
+		AD	FBANK		# FROM WHICH THE TC PRENVBSY WAS DONE) -2
+NVSUBUSY	TC	POSTJUMP	# TO BE ENTERED.
+		CADR	NVSUBSY1
+2K+3		OCT	2003
+
+# NVSUBSY1 MUST BE IN BANK 27 OR LOWER, SO IT WILL PUT CALLER TO SLEEP
+# WITH HIS PROPER SUPERBITS.
+
+		SETLOC	ENDSPMM +1
+		COUNT	07/PIN
+		
+NVSUBSY1	TS	L
+		TC	ISCADR+0	# ABORT IF CADRSTOR NOT= +0.
+		TC	ISLIST+0	# ABORT IF DSPLIST NOT= +0.
+		TC	RELDSPON
+		CA	L
+		TS	DSPLIST
+ENDNVBSY	TC	JOBSLEEP
+
+# NVSBWAIT IS A SPECIAL ENTRANCE FOR ROUTINES IN FIXED BANKS ONLY. IF
+# SYSTEM IS NOT BUSY, IT EXECUTES V/N AND RETURNS TO L+1 (L= LOC FROM
+# WHICH THE TC NVSBWAIT WAS DONE).  IF SYSTEM IS BUSY, IT PUTS CALLING JOB
+# TO SLEEP WITH L-1 GOING INTO LIST FOR EVENTUAL WAKING UP WHEN SYSTEM
+# IS NOT BUSY.
+
+		SETLOC	NVSUBUSY +3
+		COUNT	02/PIN
+		
+NVSBWAIT	LXCH	7		# ZERO NVMONOPT OPTIONS
+		TS	NVTEMP
+		CAF	BIT14
+		MASK	MONSAVE1	# EXTERNAL MONITOR BIT
+		AD	DSPLOCK
+		CCS	A
+		TCF	NVSBWT1		# BUSY
+		TCF	NVSBCOM		# FREE. NVSUB WILL SAVE L+1 FOR RETURN
+					# AFTER EXECUTION.
+NVSBWT1		INCR	Q		# L+2.  PRENVBSY WILL PUT L-1 INTO LIST AND
+		TCF	PRENVBSY	# GO TO SLEEP.
+		
+# RELDSP IS USED BY VBPROC, VBTERM, VBRQEXEC, VBRQWAIT, VBRELDSP, EXTENDED
+# VERB DISPATCHER, VBRESEQ, RECALTST.
+#
+# RELDSP1 IS USED BY MONITOR SET UP, VBRELDSP.
+
+RELDSP		XCH	Q		# SET DSPLOCK TO +0, TURN RELDSP LIGHT
+# Page 383
+		TS	RELRET		# OFF, SEARCH DSPLIST
+		CS	BIT14
+		INHINT
+		MASK	MONSAVE1
+		TS	MONSAVE1	# TURN OFF EXTERNAL MONITOR BIT
+		CCS	DSPLIST
+		TC	+2
+		TC	RELDSP2		# LIST EMPTY
+		CAF	ZERO
+		XCH	DSPLIST
+		TC	JOBWAKE
+RELDSP2		RELINT
+		CS	BIT5		# TURN OFF KEY RELEASE LIGHT
+		EXTEND			# (BIT 5 OF CHANNEL 11)
+		WAND	DSALMOUT
+		CAF	ZERO
+		TS	DSPLOCK
+		TC	RELRET
+RELDSP1		XCH	Q		# SET DSPLOCK TO +0.  NO DSPLIST SEARCH.
+		TS	RELRET		# TURN KEY RLSE LIGHT OFF IF DSPLIST IS
+					# EMPTY.  LEAVE KEY RLSE LIGHT ALONE IF 
+					# DSPLIST IS NOT EMPTY.
+		CCS	DSPLIST
+		TC	+2		# +	NOT EMPTY.  LEAVE KEY RLSE LIGHT ALONE.
+		TC	RELDSP2		# +0	EMPTY.  TURN OFF KEY RLSE LIGHT
+		CAF	ZERO		# - 	NOT EMPTY.  LEAVE KEY RLSE LIGHT ALONE
+		TS	DSPLOCK
+		TC	RELRET
+		
+ENDPINBF	EQUALS
+
+# Page 384
+# PINTEST IS NEEDED FOR AUTO CHECK OF PINBALL.
+
+PINTEST		EQUALS	LST2FAN
+
+# Page 385
+# VBTSTLTS TURNS ON ALL DISPLAY PANEL LIGHTS.  AFTER 5 SEC, IT TURNS
+# OFF THE CAUTION AND STATUS LIGHTS.
+
+		SETLOC	ENDNVSB1 +1
+		
+		COUNT	41/PIN
+		
+VBTSTLTS	TC	BANKCALL
+		CADR	CHKP00H
+		
+		INHINT
+		CS	BIT1		# SET BIT 1 OF IMODES33 SO IMUMON WON'T
+		MASK	IMODES33	# TURN OUT ANY LAMPS.
+		AD	BIT1
+		TS	IMODES33
+		
+		CAF	TSTCON1		# TURN ON UPLINK ACTIVITY, TEMP, KEY RLSE,
+		EXTEND			# V/N FLASH, OPERATOR ERROR.
+		WOR	DSALMOUT
+		CAF	TSTCON2		# TURN ON NO ATT, GIMBAL LOCK, TRACKER,
+		TS	DSPTAB 	+11D	# PROG ALM.
+		CAF	BIT10		# TURN ON TEST ALARM OUTBIT
+		EXTEND
+		WOR	CHAN13
+		CAF	TEN
+TSTLTS1		TS	ERCNT
+		CS	FULLDSP
+		INDEX	ERCNT
+		TS	DSPTAB
+		CCS	ERCNT
+		TC	TSTLTS1
+		CS	FULLDSP1
+		TS	DSPTAB +1	# TURN ON 3 PLUS SIGNS
+		TS	DSPTAB +4
+		TS	DSPTAB +6
+		CAF	ELEVEN
+		TS	NOUT
+		CAF	SHOLTS
+		TC	WAITLIST
+		EBANK=	DSPTAB
+		2CADR	TSTLTS2
+		
+		TC	ENDOFJOB	# DSPLOCK IS LEFT BUSY (FROM KEYBOARD
+					# ACTION) UNTIL TSTLTS3 TO INSURE THAT
+					# LIGHTS TEST WILL BE SEEN.
+					
+FULLDSP		OCT	05675		# DISPLAY ALL 8'S
+FULLDSP1	OCT	07675		# DISPLAY ALL 8'S AND +
+TSTCON1		OCT	00175
+# Page 386
+					# UPLINK ACTIVITY, TEMP, KEY RLSE,
+					# V/N FLASH, OPERATOR ERROR.
+TSTCON2		OCT	40650		# DSPTAB+11D BITS 4,6,8,9,
+					# NO ATT, GIMBAL LOCK, TRACKER, PROG ALM.
+TSTCON3		OCT	00115		# CHAN 11 BITS 1, 3, 4, 7.
+					# UPLINK ACITIVY, TEMP, OPERATOR ERROR.
+SHOLTS		OCT	764		# 5 SEC
+		
+TSTLTS2		CAF	CHRPRIO		# CALLED BY WAITLIST
+		TC	NOVAC
+		EBANK=	DSPTAB
+		2CADR	TSTLTS3
+		
+		TC	TASKOVER
+		
+TSTLTS3		CS	TSTCON3		# CALLED BY EXECUTIVE
+		INHINT
+		EXTEND			# TURN OFF UPLINK ACTIVITY, TEMP,
+		WAND	DSALMOUT	# OPERATOR ERROR.
+		CS	BIT10		# TURN OFF TEST ALARM OUTBIT
+		EXTEND
+		WAND	CHAN13
+		CAF	BIT4		# MAKE NO ATT FOLLOW BIT 4 OF CHANNEL 12
+		EXTEND			#	(NO TT LIGHT ON IF IN COARSE ALIGN)
+		RAND	CHAN12
+		AD	BIT15		# TURN OFF AUTO, HOLD, FREE, SPARE,
+		TS	DSPTAB 	+11D	# GIMBAL LOCK, SPARE, TRACKER, PROG ALM
+		CS	13-11,1		# SET BITS TO INDICATE ALL LAMPS OUT. TEST
+		MASK	IMODES33	# LIGHTS COMPLETE.
+		AD	PRIO16
+		TS	IMODES33
+		
+		CS	OCT55000
+		MASK	IMODES30
+		AD	PRIO15		# 15000.
+		TS	IMODES30
+		
+		CS	OPTMODES
+		MASK	BIT7
+		ADS	OPTMODES	
+		RELINT
+		
+		TC	BANKCALL	# REDISPLAY C(MODREG)
+		CADR	DSPMM
+		TC	KILMONON	# TURN ON KILL MONITOR BIT.
+		TC	FLASHOFF	# TURN OFF V/N FLASH.
+		TC	POSTJUMP	# DOES RELDSP AND GOES TO PINBRNCH IF
+		CADR	TSTLTS4		# ENDIDLE IS AWAITING OPERATOR RESPONSE.
+# Page 387		
+13-11,1		OCT	16001
+OCT55000	OCT	55000
+ENDPINS2	EQUALS
+
+# Page 388
+# ERROR LIGHT RESET (RSET) TURNS OFF:
+# UPLINK ACTIVITY, AUTO, HOLD, FREE, OPERATOR ERROR,
+# PROG ALM, TRACKER FAIL.
+#
+# LEAVES GIMBAL LOCK AND NO ATT ALONE.
+# 
+# IT ALSO ZEROS THE `TEST ALARM' OUT BIT, WHICH TURNS OFF STBY, RESTART.
+# IT ALSO SETS `CAUTION RESET' TO 1.
+# IT ALSO FORCES BIT 12 OF ALL DSPTAB ENTRIES TO 1.
+
+		SETLOC	DOPROC +2
+		COUNT	40/PIN
+		
+ERROR		XCH	21/22REG	# RESTORE ORIGINAL C(DSPLOCK).  THUS ERROR
+		TS	DSPLOCK		# LIGHT RESET LEAVES DSPLOCK CHANGED.
+		INHINT
+		CAF	BIT10		# TURN ON `CAUTION RESET' OUTBIT
+		EXTEND
+		WOR	DSALMOUT	# BIT10 CHAN 11
+		CAF	GL+NOATT	# LEAVE GIMBAL LOCK AND NO ATT INTACT,
+		MASK	DSPTAB +11D	# TURNING OFF AUTO, HOLD, FREE,
+		AD	BIT15		# PROG ALARM, AND TRACKER.
+		TS	DSPTAB +11D
+		CS	PRIO16		# RESET FAIL BITS WHICH GENERATE PROG
+		MASK	IMODES33	# ALARM SO THAT IF THE FAILURE STILL
+		AD	PRIO16		# EXISTS, THE ALARM WILL COME BACK.
+		TS	IMODES33
+		CS	BIT10
+		MASK	IMODES30
+		AD	BIT10
+		TS	IMODES30
+		
+		CS	OPTMODES
+		MASK	BIT7
+		ADS	OPTMODES
+		CS	BIT10		# TURN OFF 'TEST ALARM' OUTBIT
+		EXTEND
+		WAND	CHAN13
+		CS	ERCON		# TURN OFF UPLINK ACTIVITY,
+		EXTEND			# OPERATOR ERROR.
+		WAND	DSALMOUT
+TSTAB		CAF	BINCON		# (DEC 10)
+		TS	ERCNT		# ERCNT = COUNT
+		INHINT
+		INDEX	ERCNT
+		CCS	DSPTAB
+		AD	ONE
+		TC	ERPLUS
+		AD	ONE
+ERMINUS		CS	A
+		MASK	NOTBIT12
+		TC	ERCOM
+# Page 389
+ERPLUS		CS	A
+		MASK	NOTBIT12
+		CS	A		# MIGHT WANT TO RESET CLPASS, DECBRNCH,
+ERCOM		INDEX	ERCNT		# ETC.
+		TS	DSPTAB
+		RELINT
+		CCS	ERCNT
+		TC	TSTAB	+1
+		CAF	ZERO
+		TS	FAILREG
+		TS	FAILREG +1
+		TS	FAILREG +2
+		TS	SFAIL
+		TC	ENDOFJOB
+
+ERCON		OCT	104		# CHAN 11 BITS 3,7.
+					# UPLINK ACTIVITY, AND OPERATOR ERROR.
+BITS6,8		OCT	240	
+GL+NOATT	OCT	00050		# NO ATT AND GIMBAL LOCK LAMPS
+NOTBIT12	OCT	73777
+
+ENDPINS1	EQUALS
+
+		SBANK=	LOWSUPER
+
diff --git a/PINBALL_NOUN_TABLES.s b/PINBALL_NOUN_TABLES.s
new file mode 100644
index 0000000..8fbd97a
--- /dev/null
+++ b/PINBALL_NOUN_TABLES.s
@@ -0,0 +1,867 @@
+# Copyright:	Public domain.
+# Filename:	PINBALL_NOUN_TABLES.agc
+# Purpose:	Part of the source code for Comanche, build 055. It
+#		is part of the source code for the Command Module's
+#		(CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:	yaYUL
+# Reference:	pp. 268-284
+# Contact:	Ron Burkey <info@sandroid.org>,
+#  		Fabrizio Bernardini <fabrizio@spacecraft.it>
+# Website:	http://www.ibiblio.org/apollo.
+# Mod history:	2009-05-18 FB	Transcription Batch 3 Assignment.
+#		2009-05-23 RSB	In NNTYPTAB, corrected former 13 SPARE.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#	Assemble revision 055 of AGC program Comanche by NASA
+#	2021113-051.  April 1, 1969.  
+#
+#	This AGC program shall also be referred to as Colossus 2A
+#
+#	Prepared by
+#			Massachussets Institute of Technology
+#			75 Cambridge Parkway
+#			Cambridge, Massachusetts
+#
+#	under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 268
+# THE FOLLOWING REFERS TO THE NOUN TABLES
+#
+# 	COMPONENT CODE NUMBER	INTERPRETATION
+#
+#	00000			1 COMPONENT
+#	00001			2 COMPONENT
+#	00010			3 COMPONENT
+#	X1XXX			BIT 4 = 1.  DECIMAL ONLY
+#	1XXXX			BIT 5 = 1.  NO LOAD
+#
+# 	END OF COMPONENT CODE NUMBERS
+#
+# 	SF ROUTINE CODE NUMBER	INTERPRETATION
+#
+# 	00000			OCTAL ONLY
+#	00001			STRAIGHT FRACTIONAL
+#	00010			CDU DEGREES (XXX.XX)
+#	00011			ARITHMETIC SF
+#	00100			ARITH DP1	OUT (MULT BY 2EXP14 AT END)	IN (STRAIGHT)
+#	00101			ARITH DP2	OUT (STRAIGHT)			IN (SL 7 AT END)
+#	00110			Y OPTICS DEGREES (XX.XXX MAX 89.999)
+#	00111			ARITH DP3	OUT (SL 7 AT END)		IN (STRAIGHT
+#	01000			WHOLE HOURS IN R1, WHOLE MINUES (MOD 60) IN R2,
+#					SECONDS (MOD 60) 0XX.XX IN R3.  *** ALARMS IF USED WITH OCTAL
+#	01001			MINUTES (MOD 60) IN D1D2, D3 BLANK, SECONDS (MOD 60) IN D4D5
+#					LIMITS TO 59B59 IF MAG EXCEEDS THIS VALUE.
+#					ALARMS IF USED WITH OCTAL ******** IN (ALARM)
+#	01010			ARITH DP4	OUT (STRAIGHT)			IN (SL 3 AT END)
+#	01011			ARITH1 SF	OUT (MULT BY 2EXP14 AT END)	IN (STRAIGHT)
+#	01100			2 INTEGERS IN D1D2, D4D5, D3 BLANK.
+#					ALARMS IF USED WITH OCTAL ******** IN (ALARM)
+#	01101			DP STRAIGHT FRACTIONAL
+#
+# 	END OF SF ROUTINE CODE NUMBERS
+
+# 	SF CONSTANT CODE NUMBER	INTERPRETATION
+#
+#	00000			WHOLE				USE ARITH
+#	00000			DP TIME SEC (XXX.XX SEC)	USE ARITHDP1
+#	00001			SPARE
+#	00010			CDU DEGREES			USE CDU DEGREES
+#	00010			Y OPTICS DEGREES		USE Y OPTICS DEGREES
+#	00011			DP DEGREES (90) XX.XXX DEG	USE ARITHDP3
+#	00100			DP DEGREES (360) XXX.XX DEG	USE ARITHDP4
+#	00101			DEGREES (180) XXX.XX DEG	USE ARITH
+#	00110			WEIGHT2 (XXXXX. LBS)		USE ARITH1
+#	00111			POSITION5 (XXX.XX NAUTICAL MILES)
+#								USE ARITHDP3
+#	01000			POSITION4 (XXXX.X NAUTICAL MILES)
+# Page 269
+#								USE ARITHDP3
+#	01001			VELOCITY2 (XXXXX. FT/SEC)	USE ARITHDP4
+#	01010			VELOCITY3 (XXXX.X FT/SEC)	USE ARITHDP3
+#	01011			ELEVATION DEGREES (89.999 MAX)	USE ARITH
+#	01100			TRIM DEGREES (XXX.XX DEG)	USE ARITH
+#	01101			INERTIA (XXXXXBB. SLUG FT FT)	USE ARITH
+#	01101			THRUST MOMENT (XXXXXBB. FT LBS)	USE ARITH
+#	01110			VELOCITY/2VS (XXXXX. FT/SEC)	USE ARITHDP4
+#	01111			POSITION6 (XXXX.X NAUT MI)	USE ARITHDP3
+#	10000			DRAG ACCELERATION (XXX.XX)	USE ARITHDP2
+#	10001			POSITION8 (XXXX.X NAUT MI)	USE ARITHDP?
+#	10010			POSITION9 (XXX.XX NAUT MI)	USE ARITHDP4
+#	10011			VELOCITY4 (XXXX.X FT/SEC)	USE ARITHDP2
+#
+# 	END OF SF CONSTANT CODE NUMBERS
+
+# FOR GREATER THAN SINGLE PRECISION SCALES, PUT ADDRESS IN MAJOR PART INTO
+# NOUN TABLES.
+
+# OCTAL LOADS PLACE +0 INTO MAJOR PART, DATA INTO MINOR PART.
+
+# OCTAL DISPLAYS SHOW MINOR PART ONLY.
+
+# TO GET AT BOTH MAJOR AND MINOR PARTS (IN OCTAL), USE NOUN 01.
+
+# A NOUN MAY BE DECLARED "DECIMAL ONLY" BY MAKING BIT4=1 OF ITS COMPONENT
+# CODE NUMBER.  IF THIS NOUN IS USED WITH ANY OCTAL DISPLAY VERB, OR IF
+# DATA IS LOADED IN OCTAL, IT ALARMS.
+
+# IN LOADING AN "HOURS, MINUTES, SECONDS" NOUN, ALL 3 WORDS MUST BE
+# LOADED, OR ALARM.
+
+# ALARM IF AN ATTEMPT IS MADE TO LOAD "SPLIT MINUTES/SECONDS" (MMBSS).
+# THIS IS USED FOR DISPLAY ONLY.
+
+# Page 270
+# THE FOLLOWING ROUTINES ARE FOR READING THE NOUN TABLES AND THE SF TABLES
+# (WHICH ARE IN A SEPARATE BANK FROM THE REST OF PINBALL).  THESE READING
+# ROUTINES ARE IN THE SAME BANK AS THE TABLES.  THEY ARE CALLED BY DXCH Z.
+
+# LODNNTAB LOADS NNADTEM WTIH THE NNADTAB ENTRY, NNTYPTEM WITH THE
+# NNTYPTAB ENTRY.  IF THE NOUN IS MIXED, IDADITEM IS LOADED WITH THE FIRST
+# IDADDTAB ENTRY, IDAD2TEM THE SECOND IDADDTAB ENTRY, IDAD3TEM THE THIRD
+# IDADDTAB ENTRY, RUTMXTEM WITH THE RUTMXTAB ENTRY.  MIXBR IS SET FOR
+# MIXED OR NORMAL NOUN.
+
+		BANK	06
+		SETLOC	PINBALL3
+		BANK
+		
+		COUNT	42/NOUNS
+		
+LODNNTAB	DXCH	IDAD2TEM		# SAVE RETURN INFO IN IDAD2TEM, IDAD3TEM.
+		INDEX	NOUNREG
+		CAF	NNADTAB
+		TS	NNADTEM
+		INDEX	NOUNREG
+		CAF	NNTYPTAB
+		TS	NNTYPTEM
+		CS	NOUNREG
+		AD	MIXCON
+		EXTEND
+		BZMF	LODMIXNN		# NOUN NUMBER G/E FIRST MIXED NOUN
+		CAF	ONE			# NOUN NUMBER L/ FIRST MIXED NOUN
+		TS	MIXBR			# NORMAL.  +1 INTO MIXBR
+		TC	LODNLV
+LODMIXNN	CAF	TWO			# MIXED.  +2 INTO MIXBR.
+		TS	MIXBR
+		INDEX	NOUNREG
+		CAF	RUTMXTAB -40D		# FIRST MIXED NOUN = 40.
+		TS	RUTMXTEM
+		CAF	LOW10
+		MASK	NNADTEM
+		TS	Q			# TEMP
+		INDEX	A
+		CAF	IDADDTAB
+		TS	IDAD1TEM		# LOAD IDAD1TEM	WITH FIRST IDADDTAB ENTRY
+		EXTEND
+		INDEX	Q			# LOAD IDAD2TEM WITH 2ND IDADDTAB ENTRY
+		DCA	IDADDTAB +1		# LOAD IDAD3TEM WITH 3RD IDADDTAB ENTRY.
+LODNLV		DXCH	IDAD2TEM		# PUT RETURN INFO INTO A, L.
+		DXCH	Z
+		
+MIXCON		=	OCT50			# FIRST MIXED NOUN =40.  (DEC 40)
+
+# GTSFOUT LOADS SFTEMP1, SFTEMP2 WTIH THE DP SFOUTAB ENTRIES.
+# Page 271
+
+GTSFOUT		DXCH	SFTEMP1			# 2X (SFCONUM) ARRIVES IN SFTEMP1.
+		EXTEND
+		INDEX	A
+		DCA	SFOUTAB
+SFCOM		DXCH	SFTEMP1
+		DXCH	Z
+		
+# GTSFIN LOADS SFTEMP1, SFTEMP2 WITH THE DP SFINTAB INTRIES.
+
+GTSFIN		DXCH	SFTEMP1			# 2X (SFCONUM) ARIVES IN SFTEMP1.
+		EXTEND
+		INDEX	A
+		DCA	SFINTAB
+		TCF	SFCOM
+		
+						# NN 	NORMAL NOUNS
+
+NNADTAB		OCT	00000			# 00 	NOT IN USE
+		OCT	40000			# 01 	SPECIFY MACHINE ADDRESS (FRACTIONAL)
+		OCT	40000			# 02 	SPECIFY MACHINE ADDRESS (WHOLE)
+		OCT	40000			# 03	SPECIFY MACHINE ADDRESS (DEGREES)
+		OCT	0			# 04	SPARE
+		ECADR	DSPTEM1			# 05 	ANGULAR ERROR/DIFFERENCE
+		ECADR	OPTION1			# 06	OPTION CODE
+		ECADR	XREG			# 07	ECADR OF WORD TO BE MODIFIED
+						#	ONES FOR BITS TO BE MODIFIED
+						#	1 TO SET OR 0 TO RESET SELECTED BITS
+		ECADR	ALMCADR			# 08 	ALARM DATA
+		ECADR	FAILREG			# 09	ALARM CODES
+		OCT	77776			# 10	CHANNEL TO BE SPECIFIED
+		ECADR	TCSI			# 11	TIG OF CSI (HRS,MIN,SEC)
+		ECADR	OPTIONX			# 12	OPTION CODE
+						#	(USED BY EXTENDED VERBS ONLY)
+		ECADR	TCDH			# 13	TIG OF CDH (HRS,MIN,SEC)
+		OCT	0			# 14	SPARE
+		OCT	77777			# 15	INCREMENT MACHINE ADDRESS
+		ECADR	DSPTEMX			# 16	TIME OF EVENT (HRS,MIN,SEC)
+		ECADR	CPHIX			# 17	ASTRONAUT TOTAL ATTITUDE
+		ECADR	THETAD			# 18	AUTO MANEUVER BALL ANGLES
+		ECADR	THETAD			# 19	BYPASS ATTITUDE TRIM MANEUVER
+		ECADR	CDUX			# 20	ICDU ANGLES
+		ECADR	PIPAX			# 21	PIPAS
+		ECADR	THETAD			# 22	NEW ICDU ANGLES
+		OCT	00000			# 23	SPARE
+		ECADR	DSPTEM2 +1		# 24	DELTA TIME FOR AGC CLOCK (HRS,MIN,SEC)
+		ECADR	DSPTEM1			# 25	CHECKLIST
+						#	(USED WTIH PLEASE PERFORM ONLY)
+		ECADR	DSPTEM1			# 26	PRIO/DELAY, ADRES, BBCON
+		ECADR	SMODE			# 27	SELF TEST ON/OFF SWITCH
+# Page 272
+		OCT	0			# 28	SPARE
+		ECADR	DSPTEM1			# 29	XSM LAUNCH AZIMUTH
+		ECADR	DSPTEM1			# 30	TARGET CODES
+		ECADR	DSPTEM1			# 31	TIME OF LANDING SITE (HRS,MIN,SEC)
+		ECADR	-TPER			# 32	TIME TO PERIGEE (HRS,MIN,SEC)
+		ECADR	TIG			# 33	TIME OF IGNITION (HRS,MIN,SEC)
+		ECADR	DSPTEM1			# 34	TIME OF EVENT (HRS,MIN,SEC)
+		ECADR	TTOGO			# 35	TIME TO GO TO EVENT (HRS,MIN,SEC)
+		ECADR	TIME2			# 36	TIME OF AGC CLOCK (HRS,MIN,SEC)
+		ECADR	TTPI			# 37	TIG OF TPI (HRS,MIN,SEC)
+		ECADR	TET			# 38	TIME OF STATE VECTOR
+		ECADR	T3TOT4			# 39	DELTA TIME TO TRANSFER (HRS,MIN,SEC)
+		
+# END OF NNADTAB FOR NORMAL NOUNS
+
+						# NN	MIXED NOUNS
+
+		OCT	64000			# 40	TIME TO IGNITION/CUTOFF
+						#	VG
+						#	DELTA V (ACCUMULATED)
+		OCT	02003			# 41	TARGET	AZIMUTH
+						#		ELEVATION
+		OCT	24006			# 42	APOGEE
+						#	PERIGEE
+						#	DELTA V (REQUIRED)
+		OCT	24011			# 43	LATITUDE
+						#	LONGITUDE
+						#	ALTITUDE
+		OCT	64014			# 44	APOGEE
+						#	PERIGEE
+						#	TFF
+		OCT	64017			# 45	MARKS (VHF -  OPTIC)
+						#	TTI OF NEXT BURN
+						#	MGA
+		OCT	02022			# 46	AUTOPILOT CONFIGURATION
+		OCT	22025			# 47	THIS VEHICLE WEIGHT
+						#	OTHER VEHICLE WEIGHT
+		OCT	22030			# 48	PITCH TRIM
+						#	YAW TRIM
+		OCT	24033			# 49	DELTA R
+						#	DELTA V
+						#	VHF OR OPTICS CODE
+		OCT	64036			# 50	SPLASH ERROR
+						#	PERIGEE
+						#	TFF
+		OCT	22041			# 51	S-BAND ANTENNA	PITCH
+						#			YAW
+		OCT	00044			# 52	CENTRAL ANGLE OF ACTIVE VEHICLE
+		OCT	24047			# 53	RANGE
+						#	RANGE RATE
+						#	PHI
+# Page 273
+		OCT	24052			# 54	RANGE
+						#	RANGE RATE
+						#	THETA
+		OCT	24055			# 55	PERIGEE CODE
+						#	ELEVATION ANGLE
+						#	CENTRAL ANGLE
+		OCT	22060			# 56	REENTRY ANGLE,
+						#	DELTA V
+		OCT	20063			# 57	DELTA R
+		OCT	24066			# 58	PERIGEE ALT
+						#	DELTA V TPI
+						#	DELTA V TPF
+		OCT	24071			# 59	DELTA VELOCITY LOS
+		OCT	24074			# 60	GMAX
+						#	VPRED
+						#	GAMMA EI
+		OCT	24077			# 61	IMPACT LATITUDE
+						#	IMPACT LONGITUDE
+						#	HEADS UP/DOWN
+		OCT	24102			# 62	INERTIAL VEL MAG (V1)
+						#	ALT RATE CHANGE (HDOT)
+						#	ALT ABOVE PAD RADIUS (H)
+		OCT	64105			# 63	RANGE 297,431 TO SPLASH (RTGO)
+						#	PREDICTED INERT VEL (VIO)
+						#	TIME TO GO TO 297,431 (TTE)
+		OCT	24110			# 64	DRAG ACCELERATION
+						#	INERTIAL VELOCITY (VI)
+						#	RANGE TO SPLASH
+		OCT	24113			# 65	SAMPLED AGC TIME (HRS,MIN,SEC)
+						#	(FETCHED IN INTERRUPT)
+		OCT	24116			# 66	COMMAND BANK ANGLE (BETA)
+						# 	CROSS RANGE ERROR
+						#	DOWN RANGE ERROR
+		OCT	24121			# 67	RANGE TO TARGET
+						#	PRESENT LATITUDE
+						#	PRESENT LONGITUDE
+		OCT	24124			# 68	COMMAND BANK ANGLE (BETA)
+						#	INERTIAL VELOCITY (VI)
+						#	ALT RATE CHANGE (RDOT)
+		OCT	24127			# 69	BETA
+						#	DL
+						#	VL
+		OCT	04132			# 70	STAR CODE
+						#	LANDMARK DATA
+						#	HORIZON DATA
+		OCT	04135			# 71	STAR CODE
+						#	LANDMARK DATA
+						#	HORIZON DATA
+		OCT	24140			# 72	DELT ANG
+						#	DELT ALT
+# Page 274
+						# 	SEARCH OPTION
+		OCT	04143			# 73	ALTITUDE
+						#	VELOCITY
+						#	FLIGHT PATH ANGLE
+		OCT	04146			# 74	COMMAND BANK ANGLE (BETA)
+						# 	INERTIAL VELOCITY (VI)
+						# 	DRAG ACCELERATION
+		OCT	64151			# 75	DELTA ALTITUDE CDH
+						# 	DELTA TIME (CDH-CSI OR TPI-CDH)
+						#	DELTA TIME (TPI-CDH OR TPI-NOMTPI)
+		OCT	0			# 76	SPARE
+		OCT	0			# 77	SPARE
+		OCT	0			# 78	SPARE
+		OCT	0			# 79	SPARE
+		OCT	64170			# 80	TIME TO IGNITION/CUTOFF
+						#	VG
+						#	DELTA V (ACCUMULATED)
+		OCT	24173			# 81	DELTA V (LV)
+		OCT	24176			# 82	DELTA V (LV)
+		OCT	24201			# 83	DELTA V (BODY)
+		OCT	24204			# 84	DELTA V (OTHER VEHICLE)
+		OCT	24207			# 85	VG (BODY)
+		OCT	24212			# 86	DELTA V (LV)
+		OCT	02215			# 87	MARK DATA	SHAFT
+						#			TRUNION
+		OCT	24220			# 88	HALF UNIT SUN OR PLANET VECTOR
+		OCT	24223			# 89	LANDMARK	LATITUDE
+						#			LONGITUDE/2
+						#			ALTITUDE
+		OCT	24226			# 90	Y
+						#	Y DOT
+						#	PSI
+		OCT	02231			# 91	OCDU ANGLES	SHAFT
+						#			TRUNION
+		OCT	02234			# 92	NEW OPTICS ANGLES SHAFT
+						#			  TRUNION
+		OCT	04237			# 93	DELTA GYRO ANGLES
+		OCT	02242			# 94	NEW OPTICS ANGLES SHAFT
+						#			  TRUNNION
+		OCT	04245			# 95	PREFERRED ATTITUDE ICDU ANGLES
+		OCT	04250			# 96	+X-AXIS ATTITUDE ICDU ANGLES
+		OCT	04253			# 97	SYSTEM TEST INPUTS
+		OCT	04256			# 98	SYSTEM TEST RESULTS
+		OCT	24261			# 99	RMS IN POSITION
+						#	RMS IN VELOCITY
+						#	RMS OPTION
+						
+# END OF NNADTAB FOR MIXED NOUNS
+
+						# NN	NORMAL NOUNS
+# Page 275
+NNTYPTAB	OCT	00000			# 00	NOT IN USE
+		OCT	04040			# 01	3COMP FRACTIONAL
+		OCT	04140			# 02	3COMP WHOLE
+		OCT	04102			# 03	3COMP CDU DEGREES
+		OCT	0			# 04	SPARE
+		OCT	00504			# 05	1COMP DPDEG(360)
+		OCT	02000			# 06	2COMP OCTAL ONLY
+		OCT	04000			# 07 	3COMP OCTAL ONLY
+		OCT	04000			# 08	3COMP OCTAL ONLY
+		OCT	04000			# 09	3COMP OCTAL ONLY
+		OCT	00000			# 10	1COMP OCTAL ONLY
+		OCT	24400			# 11	3COMP HMS (DEC ONLY)
+		OCT	02000			# 12	2COMP OCTAL ONLY
+		OCT	24400			# 13	3COMP HMS (DEC ONLY)
+		OCT	0			# 14	SPARE
+		OCT	00000			# 15	1COMP OCTAL ONLY
+		OCT	24400			# 16	3COMP HMS (DEC ONLY)
+		OCT	04102			# 17 	3COMP CDU DEG
+		OCT	04102			# 18	3COMP CDU DEG
+		OCT	04102			# 19	3COMP CDU DEG
+		OCT	04102			# 20	3COMP CDU DEGREES
+		OCT	04140			# 21	3COMP WHOLE
+		OCT	04102			# 22	3COMP CDU DEGREES
+		OCT	00000			# 23 	SPARE
+		OCT	24400			# 24	3COMP HMS (DEC ONLY)
+		OCT	04140			# 25	3COMP WHOLE
+		OCT	04000			# 26	3COMP OCTAL ONLY
+		OCT	00140			# 27	1COMP WHILE
+		OCT	00000			# 28	SPARE
+		OCT	20102			# 29	1COMP CDU DEG (DEC ONLY)
+		OCT	04140			# 30	3COMP WHOLE
+		OCT	24400			# 31	3COMP HMS (DEC ONLY)
+		OCT	24400			# 32 	3COMP HMS (DEC ONLY)
+		OCT	24400			# 33 	3COMP HMS (DEC ONLY)
+		OCT	24400			# 34	3COMP HMS (DEC ONLY)
+		OCT	24400			# 35 	3COMP HMS (DEC ONLY)
+		OCT	24400			# 36 	3COMP HMS (DEC ONLY)
+		OCT	24400			# 37 	3COMP HMS (DEC ONLY)
+		OCT	24400			# 38 	3COMP HMS (DEC ONLY)
+		OCT	24400			# 39	3COMP HMS (DEC ONLY)
+		
+# END OF NNTYPTAB FOR NORMAL NOUNS
+
+						# NN	MIXED NOUNS
+
+		OCT	24500			# 40	3COMP	MIN/SEC, VEL3, VEL3
+						#		(NO LOAD, DEC ONLY)	
+		OCT	00542			# 41	2COMP	CDU DEG, ELEV DEG
+		OCT	24410			# 42	3COMP	POS4, POS4, VEL3
+						#		(DEC ONLY)
+		OCT	20204			# 43	3COMP	DPDEG(360), DPDEG(360) POS4
+# Page 276
+						#		(DEC ONLY)
+		OCT	00410			# 44	3COMP	POS4, POS4, MIN/SEC
+						#		(NO LOAD, DEC ONLY)
+		OCT	10000			# 45	3COMP	2INT, MIN/SEC, DPDEG(360)
+						#		(NO LOAD, DEC ONLY)
+		OCT	00000			# 46	2COMP 	OCTAL ONLY FOR EACH
+		OCT	00306			# 47	2COMP	WEIGHT2 FOR EACH
+						#		(DEC ONLY)
+		OCT	00614			# 48	2COMP	TRIM DEG, TRIM DEG
+						#		(DEC ONLY)
+		OCT	00510			# 49	3COMP	POS4, VEL3, WHOLE
+						#		(DEC ONLY)
+		OCT	00417			# 50	3COMP	POS6, POS4, MIN/SEC
+						#		(NO LOAD, DEC ONLY)
+		OCT	00204			# 51	2COMP	DPDEG(360), DPDEG(360)
+						#		(DEC ONLY)
+		OCT	00004			# 52	1COMP	DPDEG(360)
+		OCT	10507			# 53	3COMP	POS5, VEL3, DPDEG(360)
+						#		(DEC ONLY)
+		OCT	10507			# 54	3COMP	POS5, VEL3, DPDEG(360)
+						#		(DEC ONLY)
+		OCT	10200			# 55	3COMP	WHOLE, DPDEG(360), DPDEG(360)
+						#		(DEC ONLY)
+		OCT	00444			# 56	2COMP	DPDEG(360), VEL2
+						#		(DEC ONLY)
+		OCT	00010			# 57	1COMP	POS4
+						#		(DEC ONLY)
+		OCT	24510			# 58	3COMP	POS4, VEL3, VEL3
+						#		(DEC ONLY)
+		OCT	24512			# 59	3COMP	VEL3 FOR EACH
+						#		(DEC ONLY)
+		OCT	10440			# 60	3COMP	WHOLE, VEL2, DPDEG(360)
+						# 		(DEC ONLY)
+		OCT	00204			# 61	3COMP 	DPDEG(360), DPDEG(360), WHOLE
+						#		(DEC ONLY)
+		OCT	20451			# 62	3COMP	VEL2, VEL2, POS4
+						#		(DEC ONLY)
+		OCT	00457			# 63	3COMP	POS6, VEL2, MIN/SEC
+						#		(NO LOAD, DEC ONLY)
+		OCT	36460			# 64	3COMP	DRAG ACCEL, VEL2, POS6
+						#		(DEC ONLY)
+		OCT	00000			# 65	3COMP	HMS (DEC ONLY)
+		OCT	37044			# 66	3COMP 	DPDEG(360), POS8, POS6
+						#		(DEC ONLY)
+		OCT	10217			# 67	3COMP	POS6, DPDEG(360), DPDEG(360)
+						#		(DEC ONLY)
+		OCT	34444			# 68	3COMP	DPDEG(360), VEL2, VEL/2VS
+						#		(DEC ONLY)
+		OCT	35004			# 69	3COMP	DPDEG(360), DRAG ACCEL, VEL/2VS
+						#		(DEC ONLY)
+# Page 277
+		OCT	00000			# 70	3COMP	OCTAL ONLY FOR EACH
+		OCT	0			# 71	3COMP	OCTAL ONLY FOR EACH
+		OCT	00404			# 72	3COMP	DPDEG(360), POS4, WHOLE
+						#		(DEC ONLY)
+		OCT	10450			# 73	3COMP	POS4, VEL2, DPDEG(360)
+		OCT	40444			# 74	3COMP	DPDEG(360), VEL2, DRAG ACCEL
+		OCT	00010			# 75	3COMP	POS4, MIN/SEC, MIN/SEC
+#						# 			(NO LOAD, DEC ONLY)
+		OCT	0			# 76	SPARE
+		OCT	0			# 77	SPARE
+		OCT	0			# 78	SPARE
+		OCT	0			# 79	SPARE
+		OCT	22440			# 80	3COMP	MIN/SEC, VEL2, VEL2
+						#		(NO LOAD, DEC ONLY)
+		OCT	24512			# 81	3COMP	VEL3 FOR EACH
+						#		(NO LOAD, DEC ONLY)
+		OCT	24512			# 82	3COMP	VEL3 FOR EACH
+						#		(NO LOAD, DEC ONLY)
+		OCT	24512			# 83	3COMP	VEL3 FOR EACH
+						#		(DEC ONLY)
+		OCT	24512			# 84	3COMP	VEL3 FOR EACH
+						#		(DEC ONLY)
+		OCT	24512			# 85	3COMP	VEL3 FOR EACH
+						#		(DEC ONLY)
+		OCT	22451			# 86	3COMP	VEL2 FOR EACH
+						#		(DEC ONLY)
+						#		(DEC ONLY)
+		OCT	00102			# 87	2COMP	CDU DEG, Y OPTICS DEG
+		OCT	0			# 88	3COMP	FRAC FOR EACH
+						#		(DEC ONLY)
+		OCT	16143			# 89	3COMP 	DPDEG(90), DPDEG(90), POS5
+						#		(DEC ONLY)
+		OCT	10507			# 90	3COMP	POS5, VEL3, DEPDEG(360)
+						#		(DEC ONLY)
+		OCT	00102			# 91	2COMP	CDUDEG, YOPTICS DEG
+		OCT	00102			# 92	2COMP	CDUDEG, YOPTICS DEG
+		OCT	06143			# 93	3COMP	DPDEG(90) FOR EACH
+		OCT	00102			# 94	2COMP	CDUDEG, YOPTICS DEG
+		OCT	04102			# 95	3COMP	CDU DEG FOR EACH
+		OCT	04102			# 96	3COMP	CDU DEG FOR EACH
+		OCT	00000			# 97	3COMP	WHOLE FOR EACH
+		OCT 	00000			# 98	3COMP	WHOLE, FRAC, WHOLE
+		OCT	01162			# 99	3COMP	POS9, VEL4, WHOLE
+						#		(DEC ONLY)
+						
+# END OF NNTYPTAB FOR MIXED NOUNS
+
+SFINTAB		OCT	00006			# WHOLE, DP TIME (SEC)
+		OCT	03240
+		OCT	00000			# SPARE
+		OCT	00000
+# Page 278
+		OCT	00000			# CDU DEGREES, Y OPTICS DEGREES
+		OCT	00000			#	(SFCONS IN DEGINSF, OPTDEGIN)
+		OCT	10707			# DP DEGREES (90)
+		OCT	03435			#	UPPED BY 1
+		OCT	13070			# DP DEGREES (360) (POINT BETWN BITS 11-12)
+		OCT	34345			#	UPPED BY 1
+		OCT	00005			# DEGREES (180)
+		OCT	21616
+		OCT	26113			# WEIGHT2
+		OCT	31713
+		OCT	00070			# POSITION5
+		OCT	20460
+		OCT	01065			# POSITION4
+		OCT	05740
+		OCT	11414			# VELOCITY2 	(POINT BETWN BITS 11-12)
+		OCT	31463
+		OCT	07475			# VELOCITY3
+		OCT	16051
+		OCT	00001			# ELEVATION DEGREES
+		OCT	03434
+		OCT	00002			# TRIM DEGREES
+		OCT	22245
+		OCT	00014			# INERTIA, THRUST MOMENT
+		OCT	35607
+		OCT	07606			# VELOCITY/2VS
+		OCT	06300
+		OCT	16631			# POSITION 6
+		OCT	11307
+		OCT	12000			# DRAG ACCELERATION (POINT BETWN BITS 7-8)
+		OCT	00000
+		OCT	27176			# POSITION 8
+		OCT	14235
+		2DEC	30480 B-19		# POSITION 9
+		
+		2DEC	30.48 B-7		# VELOCITY4
+		
+# END OF SFINTAB
+
+SFOUTAB		OCT	05174			# WHOLE, DP TIME (SEC)
+		OCT	13261
+		OCT	00000			# SPARE
+		OCT	00000
+		OCT	00000			# CDU DEGREES, Y OPTICS DEGREES
+		OCT	00000			#	(SFCONS IN DEGOUTSF, OPTDEGOUT)
+		OCT	00714			# DP DEGREES (90) (POINT BETWN BITS 7-8)
+		OCT	31463
+		OCT	13412			# DP DEGREES (360)
+		OCT	07534
+		OCT	05605			# DEGREES (180)
+# Page 279
+		OCT	03656
+		OCT	00001			# WEIGHT2
+		OCT	16170
+		OCT	00441			# POSITION5
+		OCT	34306
+		OCT	07176			# POSITION4
+		OCT	21603
+		OCT	15340			# VELOCITY2
+		OCT	15340
+		OCT	01031			# VELOCITY3	(POINT BETWN BITS 7-8)
+		OCT	21032
+		OCT	34631			# ELEVATION DETREES
+		OCT	23146
+		OCT	14340			# TRIM DEGREES
+		OCT	24145
+		OCT	02363			# INERTIA, THRUST MOMENT
+		OCT	03721
+		OCT	20373			# VELOCITY/ZVS
+		OCT	02122
+		OCT	00424			# POSITION 6	(POINT BETWN BITS 7-8)
+		OCT	30446
+		OCT	00631			# DRAG ACCELERATION
+		OCT	23146
+		OCT	00260			# POSITION 8
+		OCT	06213
+		2DEC	17.2010499 B-7		# POSITION 9
+		
+		2DEC	.032808399		# VELOCITY4
+		
+# END OF SFOUTAB
+
+						# NN 	SF CONSTANT		SF ROUTINE
+
+IDADDTAB	ECADR	TTOGO			# 40	MIN/SEC			M/S
+		ECADR	VGDISP			# 40	VEL3			DP3
+		ECADR	DVTOTAL			# 40	VEL3			DP3
+		ECADR	DSPTEM1			# 41	CDU DEG			CDU
+		ECADR	DSPTEM1 +1		# 41	ELEV DEG		ARTH
+		OCT	0			# 41	SPARE COMPONENT
+		ECADR	HAPO			# 42	POS4			DP3
+		ECADR	HPER			# 42	POS4			DP3
+		ECADR	VGDISP			# 42 	VEL3			DP3
+		ECADR	LAT			# 43	DPDEG(360)		DP4
+		ECADR	LONG			# 43	DPDEG(360		DP4
+		ECADR	ALT			# 43	POS4			DP3
+		ECADR	HAPOX			# 44	POS4			DP3
+		ECADR	HPERX			# 44	POS4			DP3
+		ECADR	TFF			# 44	MIN/SEC			M/S
+		ECADR	VHFCNT			# 45	2INT			2INT
+# Page 280
+		ECADR	TTOGO			# 45	MIN/SEC			M/S
+		ECADR	+MGA			# 45	DPDEG(360)		DP4
+		ECADR	DAPDATR1		# 46	OCTAL ONLY		OCT
+		ECADR	DAPDATR2		# 46	OCATAL ONLY		OCT
+		OCT	0			# 46	SPARE COMPONENT
+		ECADR	CSMMASS			# 47	WEIGHT2			ARTH1
+		ECADR	LEMMASS			# 47	WEIGHT2			ARTH1
+		OCT	00000			# 47	SPARE COMPONENT
+		ECADR	PACTOFF			# 48	TRIM DEG2		ARTH
+		ECADR	YACTOFF			# 48	TRIM DEG2		ARTH
+		OCT	00000			# 48	SPARE COMPONENT
+		ECADR	N49DISP			# 49	POS4			DP3
+		ECADR	N49DISP +2		# 49	VEL3			DP3
+		ECADR	N49DISP +4		# 49	WHOLE			ARTH
+		ECADR	RSP-RREC		# 50	POS6			DP3
+		ECADR	HPERX			# 50 	POS4			DP3
+		ECADR	TFF			# 50	MIN/SEC			M/S
+		ECADR	RHOSB			# 51	DPDEG(360)
+		ECADR	GAMMASB			# 51	DPDEG(360)		DP4
+		OCT	0			# 51	SPARE COMPONENT
+		ECADR	ACTCENT			# 52	DPDEG(360)		DP4
+		OCT	00000			# 52	SPARE COMPONENT
+		OCT	00000			# 52 	SPARE COMPONENT
+		ECADR	RANGE			# 53	POS5			DP1
+		ECADR	RRATE			# 53 	VEL3			DP3
+		ECADR	RTHETA			# 53 	DPDEG(360)		DP4
+		ECADR	RANGE			# 54	POS5			DP1
+		ECADR	RRATE			# 54	VEL3			DP3
+		ECADR	RTHETA			# 54	DPDEG(360)		DP4
+		ECADR	NN1			# 55	WHOLE			ARTH
+		ECADR	ELEV			# 55	DPDEG(360)		DP4
+		ECADR	CENTANG			# 55	DPDEG(360)		DP4
+		ECADR	RTEGAM2D		# 56	DPDEG(360)		DP4
+		ECADR	RTEDVD			# 56	VEL2			DP4
+		OCT	0			# 56	SPARE COMPONENT
+		ECADR	DELTAR			# 57	POS4			DP3
+		OCT	0			# 57	SPARE COMPONENT
+		OCT	0			# 57	SPARE COMPONENT
+		ECADR	POSTTPI			# 58	POS4			DP3
+		ECADR	DELVTPI			# 58	VEL3			DP3
+		ECADR	DELVTPF			# 58	VEL3			DP3
+		ECADR	DVLOS			# 59	VEL3			DP3
+		ECADR	DVLOS +2		# 59	VEL3			DP3
+		ECADR	DVLOS +4		# 59	VEL3			DP3
+		ECADR	GMAX			# 60	WHOLE			ARTH
+		ECADR	VPRED			# 60	VEL2			DP4
+		ECADR	GAMMAEI			# 60	DPDEG(360)		DP4
+		ECADR	LAT(SPL)		# 61	DPDEG(360)		DP4
+		ECADR	LNG(SPL)		# 61	DPDEG(360)		DP4
+		ECADR	HEADSUP			# 61	WHOLE			ARTH
+# Page 281
+		ECADR	VMAGI			# 62	VEL2			DP4
+		ECADR	HDOT			# 62	VEL2			DP4
+		ECADR	ALTI			# 62	POS4			DP3
+		ECADR	RTGO			# 63	POS6			DP3
+		ECADR	VIO			# 63	VEL2			DP4
+		ECADR	TTE			# 63	MIN/SEC			M/S
+		ECADR	D			# 64 	DRAG ACCEL		DP2
+		ECADR	VMAGI			# 64	VEL2			DP4
+		ECADR	RTGON64			# 64	POS6			DP3
+		ECADR	SAMPTIME		# 65	HMS (MIXED ONLY TO KEEP CODE 65) HMS
+		ECADR	SAMPTIME		# 65	HMS			HMS
+		ECADR	SAMPTIME		# 65	HMS			HMS
+		ECADR	ROLLC			# 66	DPDEG(360)		DP4
+		ECADR	XRNGERR			# 66	POS8			DP3
+		ECADR	DNRNGERR		# 66	POS6			DP3
+		ECADR	RTGON67			# 67	POS6			DP3
+		ECADR	LAT			# 67	DPDEG(360)		DP4
+		ECADR	LONG			# 67	DPDEG(360)		DP4
+		ECADR	ROLLC			# 68	DPDEG(360)		DP4
+		ECADR	VMAGI			# 68	VEL2			DP4
+		ECADR	RDOT			# 68	VEL/2VS			DP4
+		ECADR	ROLLC			# 69	DPDEG(360)		DP4
+		ECADR	Q7			# 69	DRAG ACCEL		DP2
+		ECADR	VL			# 69	VEL/2VS			DP4
+		ECADR	STARCODE		# 70 	OCTAL ONLY		OCT
+		ECADR	LANDMARK		# 70	OCTAL ONLY		OCT
+		ECADR	HORIZON			# 70	OCTAL ONLY		OCT
+		ECADR	STARCODE		# 71	OCTAL ONLY		OCT
+		ECADR	LANDMARK		# 71	OCTAL ONLY		OCT
+		ECADR	HORIZON			# 71 	OCTAL ONLY		OCT
+		ECADR	THETZERO		# 72 	DPDEG(360)		DP4
+		ECADR	DELHITE			# 72	POS4			DP3
+		ECADR	OPTION2			# 72	WHOLE			ARTH
+		ECADR	P21ALT			# 73	POS4			DP3
+		ECADR	P21VEL			# 73	VEL2			DP4
+		ECADR	P21GAM			# 73	DPDEG(360)		DP4
+		ECADR	ROLLC			# 74	DPDEG(360)		DP4
+		ECADR	VMAGI			# 74	VEL 2			DP4
+		ECADR	D			# 74	DRAG ACCEL		DP2
+		ECADR	DIFFALT			# 75	POS4			DP3
+		ECADR	T1TOT2			# 75	MIN/SEC			M/S
+		ECADR	T2TOT3			# 75	MIN/SEC			M/S
+		OCT	0			# 76	SPARE
+		OCT	0			# 76	SPARE
+		OCT	0			# 76	SPARE
+		OCT	0			# 77	SPARE
+		OCT	0			# 77	SPARE
+		OCT	0			# 77	SPARE
+		OCT	0			# 78	SPARE
+		OCT	0			# 78	SPARE
+# Page 282
+		OCT	0			# 78	SPARE
+		OCT	0			# 79	SPARE
+		OCT	0			# 79	SPARE
+		OCT	0			# 79	SPARE
+		ECADR	TTOGO			# 80	MIN/SEC			M/S
+		ECADR	VGDISP			# 80	VEL2			DP4
+		ECADR	DVTOTAL			# 80	VEL2			DP4
+		ECADR	DELVLVC			# 81	VEL3			DP3
+		ECADR	DELVLVC +2		# 81	VEL3			DP3
+		ECADR	DELVLVC +4		# 81	VEL3			DP3
+		ECADR	DELVLVC			# 82	VEL3			DP3
+		ECADR	DELVLVC +2		# 82	VEL3			DP3
+		ECADR	DELVLVC +4		# 82 	VEL3			DP3
+		ECADR	DELVIMU			# 83	VEL3			DP3
+		ECADR	DELVIMU +2		# 83	VEL3			DP3
+		ECADR	DELVIMU +4		# 83	VEL3			DP3
+		ECADR	DELVOV			# 84	VEL3			DP3
+		ECADR	DELVOV +2		# 84	VEL3			DP3
+		ECADR	DELVOV +4		# 84	VEL3			DP3
+		ECADR	VGBODY			# 85	VEL3			DP3
+		ECADR	VGBODY +2		# 85	VEL3			DP3
+		ECADR	VGBODY +4		# 85	VEL3			DP3
+		ECADR	DELVLVC			# 86	VEL3			DP3
+		ECADR	DELVLVC +2		# 86	VEL3			DP3
+		ECADR	DELVLVC +4		# 86	VEL3			DP3
+		ECADR	MRKBUF1 +3		# 87	CDU DEG			CDU
+		ECADR	MRKBUF1 +5		# 87	Y OPTICS DEG		YOPT
+		OCT	0			# 87	SPARE COMPONENT
+		ECADR	STARSAV3		# 88	DPFRAC			DPFRAC
+		ECADR	STARSAV3 +2		# 88	DPFRAC			DPFRAC
+		ECADR	STARSAV3 +4		# 88	DPFRAC			DPFRAC
+		ECADR	LANDLAT			# 89	DPDEG(90)		DP3
+		ECADR	LANDLONG		# 89	DPDEG(90)		DP3
+		ECADR	LANDALT			# 89	POS5			DP1
+		ECADR	RANGE			# 90	POS5			DP1
+		ECADR	RRATE			# 90	VEL3			DP3
+		ECADR	RTHETA			# 90	DPDEG(360)		DP4
+		ECADR	CDUS			# 91	CDU DEG			CDU
+		ECADR	CDUT			# 91	Y OPTICS DEG		YOPT
+		OCT	0			# 91	SPARE COMPONENT
+		ECADR	SAC			# 92	CDU DEG			CDU
+		ECADR	PAC			# 92	Y OPTICS DEG		YOPT
+		OCT	0			# 92	SPARE COMPONENT
+		ECADR	OGC			# 93	DPDEG(90)		DP3
+		ECADR	OGC +2			# 93	DPDEG(90)		DP3
+		ECADR	OGC +4			# 93	DPDEG(90)		DP3
+		ECADR	MRKBUF1 +3		# 94	CDU DEG			CDU
+		ECADR	MRKBUF1 +5		# 94 	Y OPTICS DEG		YOPT
+		OCT	00000			# 94 	SPARE
+		ECADR	PRAXIS			# 95	CDU DEG			CDU
+# Page 283
+		ECADR	PRAXIS +1		# 95	CDU DEG			CDU
+		ECADR	PRAXIS +2		# 95	CDU DEG			CDU
+		ECADR	CPHIX			# 96	CDU DEG			CDU
+		ECADR	CPHIX +1		# 96	CDU DEG			CDU
+		ECADR	CPHIX +2		# 96	CDU DEG			CDU
+		ECADR	DSPTEM1			# 97	WHOLE			ARTH
+		ECADR	DSPTEM1 +1		# 97	WHOLE			ARTH
+		ECADR	DSPTEM1 +2		# 97	WHOLE			ARTH
+		ECADR	DSPTEM2			# 98	WHOLE			ARTH
+		ECADR	DSPTEM2 +1		# 98	FRAC			FRAC
+		ECADR	DSPTEM2 +2		# 98	WHOLE			ARTH
+		ECADR	WWPOS			# 99 	POS9			DP3
+		ECADR	WWVEL			# 99	VEL4			DP2
+		ECADR	WWOPT			# 99 	WHOLE			ARTH
+		
+# END OF IDADDTAB
+
+						# NN	SF ROUTINES
+
+RUTMXTAB	OCT	16351			# 40	M/S, DP3, DP3
+		OCT	00142			# 41	CDU, ARTH
+		OCT	16347			# 42	DP3, DP3, DP3
+		OCT	16512			# 43	DP4, DP4, DP3
+		OCT	22347			# 44	DP3, DP3, M/S
+		OCT	24454			# 45	2INT, M/S, DP4
+		OCT	00000			# 46	OCT, OCT
+		OCT	00553			# 47	ARITH1, ARITH1
+		OCT	00143			# 48	ARTH, ARTH
+		OCT	06347			# 49	DP3, DP3, ARTH
+		OCT	22347			# 50	DP3, DP3, M/S
+		OCT	00512			# 51	DP4, DP4
+		OCT	00012			# 52	DP4
+		OCT	24344			# 53 	DP1, DP3, DP4
+		OCT	24344			# 54	DP1, DP3, DP4
+		OCT	24503			# 55	ARTH, DP4, DP4
+		OCT	00512			# 56	DP4, DP4
+		OCT	00007			# 57	DP3
+		OCT	16347			# 58	DP3, DP3, DP3
+		OCT	16347			# 59	DP3, DP3, DP3
+		OCT	24503			# 60	ARTH, DP4, DP4
+		OCT	06512			# 61	DP4, DP4, ARTH
+		OCT	16512			# 62	DP4, DP4, DP3
+		OCT	22507			# 63	DP3, DP4, M/S
+		OCT	16505			# 64	DP2, DP4, DP3
+		OCT	20410			# 65	HMS, HMS, HMS
+		OCT	16352			# 66	DP4, DP3, DP3
+		OCT	24507			# 67	DP3, DP4, DP4
+		OCT	24512			# 68	DP4, DP4, DP4
+		OCT	24252			# 69	DP4, DP2, DP4
+		OCT	00000			# 70	OCT, OCT, OCT
+# Page 284
+		OCT	0			# 71	OCT, OCT,OCT
+		OCT	06352			# 72	DP4, DP3, ARTH
+		OCT	24507			# 73	DPR, DP4, DP4
+		OCT	12512			# 74	DP4, DP4, DP2
+		OCT	22447			# 75	DP3, M/S, M/S
+		OCT	0			# 76	SPARE
+		OCT	0			# 77	SPARE
+		OCT	0			# 78	SPARE
+		OCT	0			# 79	SPARE
+		OCT	24511			# 80	M/S, DP4, DP4
+		OCT	16347			# 81	DP3, DP3, DP3
+		OCT	16347			# 82	DP3, DP3, DP3
+		OCT	16347			# 83	DP3, DP3, DP3
+		OCT	16347			# 84	DP3, DP3, DP3
+		OCT	16347			# 85	DP3, DP3, DP3
+		OCT	24512			# 86	DP4, DP4, DP4
+		OCT	00302			# 87	CDU, YOPT
+		OCT	32655			# 88	DPFRAC FOR EACH
+		OCT	10347			# 89	DP3, DP3, DP1
+		OCT	24344			# 90	DP1, DP3, DP4
+		OCT	00302			# 91	CDU, YOPT
+		OCT	00302			# 92	CDU, YOPT
+		OCT	16347			# 93	DP3, DP3, DP3
+		OCT	00302			# 94	CDU, YOPT
+		OCT	04102			# 95	CDU, CDU, CDU
+		OCT	04102			# 96	CDU, CDU, CDU
+		OCT	06143			# 97	ARTH, ARTH, ARTH
+		OCT	06043			# 98	ARTH, FRAC, ARTH
+		OCT	06247			# 99	DP3, DP2, ARTH
+				
+# END OF RUTMXTAB
+
+		SBANK=	LOWSUPER
+
diff --git a/PLANETARY_INERTIAL_ORIENTATION.s b/PLANETARY_INERTIAL_ORIENTATION.s
new file mode 100644
index 0000000..d481ae9
--- /dev/null
+++ b/PLANETARY_INERTIAL_ORIENTATION.s
@@ -0,0 +1,390 @@
+# Copyright:	Public domain.
+# Filename:	PLANETARY_INERTIAL_ORIENTATION.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:	1243-1251
+# Mod history:	2009-05-14 RSB	Adapted 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 1243
+# PLANETARY INERTIAL ORIENTATION
+#
+# ***** RP-TO-R SUBROUTINE *****
+# SUBROUTINE TO CONVERT RP (VECTOR IN PLANETARY COORDINATE SYSTEM, EITHER
+# EARTH-FIXED OR MOON-FIXED) TO R (SAME VECTOR IN BASIC REF. SYSTEM)
+#	R = MT(T) * (RP + LP X RP)	MT = M MATRIX TRANSPOSE
+#
+# CALLING SEQUENCE
+#	L 	CALL
+#	L+1		RP-TO-R
+#
+# SUBROUTINES USED
+#	EARTHMX, MOONMX, EARTHL
+#
+# 	ITEMS AVAILABLE FROM LAUNCH DATA
+#		504LM = THE LIBRATION VECTOR L OF THE MOON AT TIME TIMSUBL, EXPRESSED
+#		IN THE MOON-FIXED COORD. SYSTEM		RADIANS B0
+#
+#	ITEMS NECESSARY FOR SUBR. USED (SEE DESCRIPTION OF SUBR.)
+#
+# INPUT
+#	MPAC = 0 FOR EARTH, NON-ZERO FOR MOON
+#	0-5D = RP VECTOR
+#	6-7D = TIME
+#
+# OUTPUT
+#	MPAC = R VECTOR METERS B-29 FOR EARTH, B-27 FOR MOON
+
+		SETLOC	PLANTIN
+		BANK
+
+		COUNT*	$$/LUROT
+
+RP-TO-R		STQ	BHIZ
+			RPREXIT
+			RPTORA
+		CALL			# COMPUTE M MATRIX FOR MOON
+			MOONMX		# LP=LM FOR MOON	RADIANS B0
+		VLOAD
+			504LM
+RPTORB		VXV	VAD
+			504RPR
+			504RPR
+		VXM	GOTO
+			MMATRIX		# MPAC=R=MT(T)*(RP+LPXRP)
+			RPRPXXXX	# RESET PUSHLOC TO 0 BEFORE EXITING
+RPTORA		CALL			# EARTH COMPUTATIONS
+			EARTHMX		# M MATRIX B-1
+		CALL
+			EARTHL		# L VECTOR RADIANS B0
+		MXV	VSL1		# LP=M(T)*L 	RAD B-0
+			MMATRIX
+# Page 1244
+		GOTO
+			RPTORB
+
+# Page 1245
+# ***** R-TO-RP SUBROUTINE *****
+# SUBROUTINE TO CONVERT R (VECTOR IN REFERENCE COORD. SYSTEM) TO RP
+# (VECTOR IN PLANETARY COORD SYSTEM) EITHER EARTH-FIXED OR MOON-FIXED
+#	RP = M(T) * (R - L X R)
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		R-TO-RP
+#
+# SUBROUTINES USED
+#	EARTHMX, MOONMX, EARTHL
+#
+# INPUT
+#	MPAC = 0 FOR EARTH, NON-ZERO FOR MOON
+#	0-5D = R VECTOR
+#	6-7D = TIME
+#
+#	ITEMS AVAILABLE FROM LAUNCH DATA
+#		504LM = THE LIBRATION VECTOR L OF THE MOON AT TIME TIMSUBL, EXPRESSED
+#		IN THE MOON-FIXED COORD. SYSTEM			RADIANS B0
+#
+#	ITEMS NECESSARY FOR SUBROUTINES USED (SEE DESCRIPTION OF SUBR.)
+#
+# OUTPUT
+#	MPAC = RP VECTOR METERS B-29 FOR EARTH, B-27 FOR MOON
+
+R-TO-RP		STQ	BHIZ
+			RPREXIT
+			RTORPA
+		CALL
+			MOONMX
+		VLOAD	VXM
+			504LM		# LP=LM
+			MMATRIX
+		VSL1			# L = MT(T)*LP 		RADIANS B0
+RTORPB		VXV	BVSU
+			504RPR
+			504RPR
+		MXV			# M(T)*(R-LXR)		B-2
+			MMATRIX
+RPRPXXXX	VSL1	SETPD
+			0D
+		GOTO
+			RPREXIT
+RTORPA		CALL			# EARTH COMPUTATIONS
+			EARTHMX
+		CALL
+			EARTHL
+		GOTO			# MPAC=L=(-AX,-AY,0) 	RAD B-0
+			RTORPB
+
+# Page 1246
+# ***** MOONMX SUBROUTINE *****
+# SUBROUTINE TO COMPUTE THE TRANSFORMATION MATRIX M FOR THE MOON
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		MOONMX
+#
+# SUBROUTINES USED
+#	NEWANGLE
+#
+# INPUT
+#	6-7D = TIME
+#
+#	ITEMS AVAILABLE FROM LAUNCH DATA
+#		BSUBO, BDOT
+#		TIMSUBO, NODIO, NODDOT, FSUBO, FDOT
+#		COSI = COS(I)	B-1
+#		SINI = SIN(I)	B-1
+#		I IS THE ANGLE BETWEEN THE MEAN LUNAR EQUATORIAL PLANE AND THE
+#		PLANE OF THE ECLIPTIC (1 DEGREE 32.1 MINUTES)
+#
+# OUTPUT
+#	MMATRIX = 3X3 M MATRIX		B-1 (STORED IN VAC AREA)
+
+MOONMX		STQ	SETPD
+			EARTHMXX
+			8D
+		AXT,1			# B REQUIRES SL 0, SL 5 IN NEWANGLE
+			5
+		DLOAD	PDDL		# PD 10D	8-9D=BSUBO
+			BSUBO		#		10-11D=BDOT
+			BDOT
+		PUSH	CALL		# PD 12D
+			NEWANGLE	# EXIT WITH PD 8D AND MPAC= B	REVS B0
+		PUSH	COS		# PD 10D
+		STODL	COB		# PD 8D		COS(B) B-1
+		SIN			#		SIN(B) B-1
+		STODL	SOB		# 		SETUP INPUT FOR NEWANGLE
+			FSUBO		# 			8-9D=FSUBO
+		PDDL	PUSH		# PD 10D THEN 12D	10-11D=FDOT
+			FDOT
+		AXT,1	CALL		# F REQUIRES SL 1, SL 6 IN NEWANGLE.
+			4
+			NEWANGLE	# EXIT WITH PD 8D AND MPAC= F REVS B0
+		STODL	AVECTR +2	# SAVE F TEMP
+			NODIO		#			8-9D=NODIO
+		PDDL	PUSH		# PD 10D THEN 12D	10-11D=NODDOT
+			NODDOT		#			MPAC=5
+		AXT,1	CALL		# NODE REQUIRES SL 0, SL 5 IN NEWANGLE
+			5
+			NEWANGLE	# EXIT WITH PD 8D AND MPAC= NODI REVS B0
+# Page 1247
+		PUSH	COS		# PD 10D	8-9D= NODI REVS B0
+		PUSH			# PD 12D	10-11D= COS(NODI) B-1
+		STORE	AVECTR
+		DMP	SL1R
+			COB		#			COS(NODI) B-1
+		STODL	BVECTR +2	# PD 10D  20-25D=AVECTR=COB*SIN(NODI)
+		DMP	SL1R		#			SOB*SIN(NODI)
+			SOB
+		STODL	BVECTR +4	# PD 8D
+		SIN	PUSH		# PD 10D		-SIN(NODI) B-1
+		DCOMP			#         26-31D=BVECTR=COB*COS(NODI)
+		STODL	BVECTR		# PD 8D			SOB*COS(NODI)
+			AVECTR +2	# MOVE F FROM TEMP LOC. TO 504F
+		STODL	504F
+		DMP	SL1R
+			COB
+		STODL	AVECTR +2
+			SINNODI		# 8-9D=SIN(NODI) B-1
+		DMP	SL1R
+			SOB
+		STODL	AVECTR +4	#			0
+			HI6ZEROS	#	8-13D= CVECTR=	-SOB B-1
+		PDDL	DCOMP		# PD 10D		COB
+			SOB
+		PDDL	PDVL		# PD 12D THEN PD 14D
+			COB
+			BVECTR
+		VXSC	PDVL		# PD 20D	BVECTR*SINI B-2
+			SINI
+			CVECTR
+		VXSC	VAD		# PD 14D	CVECTR*COSI B-2
+			COSI
+		VSL1
+		STOVL	MMATRIX +12D	# PD 8D  M2=BVECTR*SINI+CVECTR*COSI B-1
+		VXSC	PDVL		# PD 14D
+			SINI		#		CVECTR*SINI B-2
+			BVECTR
+		VXSC	VSU		# PD 8D		BVECTR*COSI B-2
+			COSI
+		VSL1	PDDL		# PD 14D
+			504F		# 8-13D=DVECTR=BVECTR*COSI-CVECTR*SINI B-1
+		COS	VXSC
+			DVECTR
+		PDDL	SIN		# PD 20D  14-19D= DVECTR*COSF B-2
+			504F
+		VXSC	VSU		# PD 14D	AVECTR*SINF B-2
+			AVECTR
+		VSL1
+		STODL	MMATRIX +6	# M1= AVECTR*SINF-DVECTR*COSF B-1
+			504F
+# Page 1248
+		SIN	VXSC		# PD 8D
+		PDDL	COS		# PD 14D  8-13D=DVECTR*SINF B-2
+			504F
+		VXSC	VAD		# PD 8D		AVECTR*COSF B-2
+			AVECTR
+		VSL1	VCOMP
+		STCALL	MMATRIX		# M0= -(AVECTR*COSF+DVECTR*SINF) B-1
+			EARTHMXX
+
+# COMPUTE X=X0+(XDOT)(T+T0)
+# 8-9D= X0 (REVS B-0), PUSHLOC SET AT 12D
+# 10-11D=XDOT (REVS/CSEC) SCALED B+23 FOR WEARTH,B+28 FOR NODDOT AND BDOT
+#			AND B+27 FOR FDOT
+# X1=DIFFERENCE IN 23 AND SCALING OF XDOT, =0 FOR WEARTH, 5 FOR NDDOT AND
+#					BDOT AND 4 FOR FDOT
+# 6-7D=T (CSEC B-28), TIMSUBO= (CSEC B-42 TRIPLE PREC.)
+
+NEWANGLE	DLOAD	SR		# ENTER PD 12D
+			6D
+			14D
+		TAD	TLOAD		# CHANGE MODE TO TP
+			TIMSUBO
+			MPAC
+		STODL	TIMSUBM		# T+T0 CSEC B-42
+			TIMSUBM +1
+		DMP			# PD 10D	MULT BY XDOT IN 10-11D
+		SL*	DAD		# PD 8D		ADD X0 IN 8-9D AFTER SHIFTING
+			5,1		#		SUCH THAT SCALING IS B-0
+		PUSH	SLOAD		# PD 10D  SAVE PARTIAL (X0+XDOT*T) IN 8-9D
+			TIMSUBM
+		SL	DMP
+			9D
+			10D		# XDOT
+		SL*	DAD		# PD 8D		SHIFT SUCH THAT THIS PART OF X
+			10D,1		#		IS SCALED REVS/CSEC B-0
+		BOV			# TURN OFF OVERFLOW IF SET BY SHIFT
+			+1		# INSTRUCTION BEFORE EXITING.
+		RVQ			# MPAC=X= X0+(XDOT)(T+T0)	REVS B0
+
+# Page 1249
+# ***** EARTHMX SUBROUTINE *****
+# SUBROUTINE TO COMPUTE THE TRANSFORMATION MATRIX M FOR THE EARTH
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		EARTHMX
+#
+# SUBROUTINE USED
+#	NEWANGLE
+#
+# INPUT
+#	INPUT AVAILABLE FROM LAUNCH DATA	AZO REVS B-0
+#						TEPHEM CSEC B-42
+#	6-7D= TIME CSEC B-28
+#
+# OUTPUT
+#	MMATRIX= 3X3 M MATRIX B-1 (STORED IN VAC AREA)
+
+EARTHMX		STQ	SETPD		# SET 8-9D=AZO
+			EARTHMXX
+			8D		# 10-11D=WEARTH
+		AXT,1			# FOR SL 5, AND SL 10 IN NEWANGLE
+			0
+		DLOAD	PDDL		# LEAVING PD SET AT 12D FOR NEWANGLE
+			AZO
+			WEARTH
+		PUSH	CALL
+			NEWANGLE
+		SETPD	PUSH		# 18-19D=504AZ
+			18D		#			 COS(AZ)   SIN(AZ)     0
+		COS	PDDL		# 20-37D=  MMATRIX=	-SIN(AZ)   COS(AZ)     0    B-1
+			504AZ		#			    0         0        1
+		SIN	PDDL
+			HI6ZEROS
+		PDDL	SIN
+			504AZ
+		DCOMP	PDDL
+			504AZ
+		COS	PDVL
+			HI6ZEROS
+		PDDL	PUSH
+			HIDPHALF
+		GOTO
+			EARTHMXX
+
+# Page 1250
+# ***** EARTHL SUBROUTINE *****
+# SUBROUTINE TO COMPUTE L VECTOR FOR EARTH
+#
+# CALLING SEQUENCE
+#	L	CALL
+#	L+1		EARTHL
+#
+# INPUT
+#	AXO,AYO SET AT LAUNCH TIME WITH AYO IMMEDIATELY FOLLOWING AXO IN CORE
+#
+# OUTPUT
+#		-AX
+#	MPAC=	-AY	RADIANS B-0
+#		  0
+
+EARTHL		DLOAD	DCOMP
+			AXO
+		STODL	504LPL
+			-AYO
+		STODL	504LPL +2
+			HI6ZEROS
+		STOVL	504LPL +4
+			504LPL
+		RVQ
+
+# Page 1251
+# CONSTANTS AND ERASABLE ASSIGNMENTS
+
+1B1		=	DP1/2		# 1 SCALED B-1
+COSI		2DEC	.99964173 B-1	# COS(5521.5 SEC) B-1
+
+SINI		2DEC	.02676579 B-1	# SIN(5521.T SEC) B-1
+
+RPREXIT		=	S1		# R-TO-RP AND RP-TO-R SUBR EXIT
+EARTHMXX	=	S2		# EARTHMX, MOONMX SUBR. EXITS
+504RPR		=	0D		# 6 REGS	R OR RP VECTOR
+SINNODI		=	8D		# 2		SIN(NODI)
+DVECTR		=	8D		# 6		D VECTOR MOON
+CVECTR		=	8D		# 6		C VECTR MOON
+504AZ		=	18D		# 2		AZ
+TIMSUBM		=	14D		# 3		TIME SUB M (MOON) T+10 IN GETAZ
+504LPL		=	14D		# 6		L OR LP VECTOR
+AVECTR		=	20D		# 6		A VECTOR (MOON)
+BVECTR		=	26D		# 6		B VECTOR (MOON)
+MMATRIX		=	20D		# 18		M MATRIX
+COB		=	32D		# 2		COS(B) B-1
+SOB		=	34D		# 2		SIN(B) B-1
+504F		=	6D		# 2		F(MOON)
+NODDOT		2DEC	-.457335121 E-2	# REVS/CSEC B+28=-1.07047011 E-8  RAD/SEC
+
+FDOT		2DEC	.570863327	# REVS/CSEC B+27= 2.67240410 E-6  RAD/SEC
+
+BDOT		2DEC	-3.07500686 E-8	# REVS/CSEC B+28=-7.19757301 E-14 RAD/SEC
+
+NODIO		2DEC	.986209434	# REVS B-0      = 6.19653663041   RAD
+
+FSUBO		2DEC	.829090536	# REVS B-0	= 5.20932947829	  RAD
+
+BSUBO		2DEC	.0651201393	# REVS B=0	= 0.40916190299	  RAD
+
+WEARTH		2DEC	.973561595	# REVS/CSEC B+23= 7.29211494 E-5  RAD/SEC
+
diff --git a/POWERED_FLIGHT_SUBROUTINES.s b/POWERED_FLIGHT_SUBROUTINES.s
new file mode 100644
index 0000000..f81233e
--- /dev/null
+++ b/POWERED_FLIGHT_SUBROUTINES.s
@@ -0,0 +1,364 @@
+# Copyright:	Public domain.
+# Filename:	POWERED_FLIGHT_SUBROUTINES.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:	1365-1372 
+# 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 1365
+		BANK	14		# SAME FBANK AS THE FINDCDUD SUB-PROGRAM
+		SETLOC	POWFLITE
+		BANK
+
+		EBANK=	DEXDEX
+		COUNT*	$$/POWFL
+
+# CDUTRIG, CDUTRIG1, CDUTRIG2, AND CD*GR*GS ALL COMPUTE THE SINES AND
+# COSINES OF THREE 2'S COMPLEMENT ANGLES AND PLACE THE RESULT, DOUBLE
+# PRECISION, IN THE SAME ORDER AS THE INPUTS, AT SINCDU AND COSCDU.  AN
+# ADDITIONAL OUTPUT IS THE 1'S COMPLENT ANGLES AT CDUSPOT.  THESE
+# ROUTINES GO OUT OF THEIR WAY TO LEAVE THE MPAC AREA AS THEY FIND IT.
+# EXCEPT FOR THE GENERALLY UNIMPORTANT MPAC +2.  THEY DIFFER ONLY IN
+# WHERE THEY GET THE ANGLES, AND IN METHOD OF CALLING.
+#
+# CDUTRIG (AND CDUTRIG1, WHICH CAN BE CALLED IN BASIC) COMPUTE THE
+# SINES AND COSINES FROM THE CURRENT CONTENTS OF THE CDU REGISTERS.
+# THE CONTENTS OF CDUTEMP, ETC., ARE NOT TOUCHED SO THAT THEY MAY
+# CONTINUE TO FORM A CONSISTENT SET WITH THE LATEST PIPA READINGS.
+#
+# CDUTRIG1 IS LIKE CDUTRIG EXCEPT THAT IT CAN BE CALLED IN BASIC.
+#
+# CD*TR*GS FINDS CDU VALUES IN CDUSPOT RATHER THAN IN CDUTEMP.  THIS
+# ALLOWS USERS TO MAKE TRANSFORMATIONS USING ARBITRARY ANGLES, OR REAL
+# ANGLES IN AN ORDER OTHER THAN X Y Z.  A CALL TO THIS ROUTINE IS
+# NECESSARY IN PREPARATION FOR A CALL TO AX*SR*T IN EITHER OF ITS TWO
+# MODES (SMNB OR NBSM).  SINCE AX*SR*T EXPECTS TO FIND THE SINES AND
+# COSINES IN THE ORDER Y Z X THE ANGLES MUST HAVE BEEN PLACED IN CDUSPOT
+# IN THIS ORDER.  CD*TR*GS NEED NOT BE REPEATED WHEN AX*SR*T IS CALLED
+# MORE THAN ONCE, PROVIDED THE ANGLES HAVE NOT CHANGED.  NOTE THAT SINCE
+# IT CLOBBERS BUF2 (IN THE SINE AND COSINE ROUTINES) CD*TR*GS CANNOT BE
+# CALLED USING BANKCALL.  SORRY.
+#
+# CD*TR*G IS LIKE CD*TR*GS EXCEPT THAT IT CAN BE CALLED IN
+# INTERPRETIVE.
+
+CDUTRIG		EXIT
+		TC	CDUTRIGS
+		TC	INTPRET
+		RVQ
+
+CD*TR*G		EXIT
+		TC	CD*TR*GS
+		TC	INTPRET
+		RVQ
+
+CDUTRIGS	CA	CDUX
+		TS	CDUSPOT +4
+		CA	CDUY
+		TS	CDUSPOT
+# Page 1366
+		CA	CDUZ
+		TS	CDUSPOT +2
+
+CD*TR*GS	EXTEND
+		QXCH	TEM2
+		CAF	FOUR
+TR*GL**P	MASK	SIX		# MAKE IT EVEN AND SMALLER
+		TS	TEM3
+		INDEX	TEM3
+		CA	CDUSPOT
+		DXCH	MPAC		# STORING 2'S COMP ANGLE, LOADING MPAC
+		DXCH	VBUF +4		# STORING MPAC FOR LATER RESTORATION
+		TC	USPRCADR
+		CADR	CDULOGIC
+		EXTEND
+		DCA	MPAC
+		INDEX	TEM3
+		DXCH	CDUSPOT		# STORING 1'S COMPLEMENT ANGLE
+		TC	USPRCADR
+		CADR	COSINE
+		DXCH	MPAC
+		INDEX	TEM3
+		DXCH	COSCDU		# STORING COSINE
+		EXTEND
+		INDEX	TEM3
+		DCA	CDUSPOT		# LOADING 1'S COMPLEMENT ANGLE
+		TC	USPRCADR
+		CADR	SINE +1		# SINE +1 EXPECTS ARGUMENT IN A AND L
+		DXCH	VBUF +4		# BRINGING UP PRIOR MPAC TO BE RESTORED
+		DXCH	MPAC
+		INDEX	TEM3
+		DXCH	SINCDU
+		CCS	TEM3
+		TCF	TR*GL**P
+		TC	TEM2
+# Page 1367
+# *******************************************************************************************************
+# QUICTRIG, INTENDED FOR QUIDANCE CYCLE USE WHERE TIME IS CRITICAL, IS A MUCH FASTER VERSION OF CD*TR*GS.
+# QUICTRIG COMPUTES AND STORES THE SINES AND COSINES OF THE 2'S COMPLEMENT ANGLES AT CDUSPOT, CDUSPOT +2,
+# AND CDUSPOT +4.  UNLIKE CD*TR*GS, QUICTRIG DOES NOT LEAVE THE 1'S COMPLEMENT VERSIONS OF THE ANGLES IN
+# CDUSPOT.  QUICTRIG'S EXECUTION TIME IS 4.1 MS;    THIS IS 10 TIMES AS FAST AS CD*TR*GS.    QUICTRIG MAY BE
+# CALLED FROM INTERPRETIVE AS AN RTB OP-CODE, OR FROM BASIC VIA BANKCALL OR IBNKCALL.
+
+QUICTRIG	INHINT			# INHINT SINCE DAP USES THE SAME TEMPS
+		EXTEND
+		QXCH	ITEMP1
+		CAF	FOUR
+	+4	MASK	SIX
+		TS	ITEMP2
+		INDEX	ITEMP2
+		CA	CDUSPOT
+		TC	SPSIN
+		EXTEND
+		MP	BIT14		# SCALE DOWN TO MATCH INTERPRETER OUTPUTS
+		INDEX	ITEMP2
+		DXCH	SINCDU
+		INDEX	ITEMP2
+		CA	CDUSPOT
+		TC	SPCOS
+		EXTEND
+		MP	BIT14
+		INDEX	ITEMP2
+		DXCH	COSCDU
+		CCS	ITEMP2
+		TCF	QUICTRIG +4
+		CA	ITEMP1
+		RELINT
+		TC	A
+# Page 1368
+#****************************************************************************
+# THESE INTERFACE ROUTINES MAKE IT POSSIBLE TO CALL AX*SR*T, ETC., IN
+# INTERPRETIVE.  LATER, WHERE POSSIBLE, THEY WILL BE ELIMINATED.
+#
+# NBSM WILL BE THE FIRST TO GO.  IT SHOULD NOT BE USED.
+
+NBSM		STQ
+			X2
+		LXC,1	VLOAD*	
+			S1		# BASE ADDRESS OF THE CDU ANGLES IS IN S1
+			0,1
+		STOVL	CDUSPOT
+			32D		# VECTOR TO BE TRANSFORMED IS IN 32D
+		CALL
+			TRG*NBSM
+		STCALL	32D		# SINCE THERE'S NO STGOTO
+			X2
+
+# THESE INTERFACE ROUTINES ARE PERMANENT.  ALL RESTORE USER'S EBANK
+# SETTING. ALL ARE STRICT INTERPRETIVE SUBROUTINES, CALLED USING "CALL",
+# RETURNING VIA QPRET.  ALL EXPECT AND RETURN THE VECTOR TO BE TRANSFOR-
+# MED INTERPRETER-STYLE IN MPAC: COMPONENTS AT MPAC, MPAC +3, AND MPAC +5.
+#
+# TRG*SMNB AND TRG*NBSM BOTH EXPECT TO SEE THE 2'S COMPLEMENT ANGLES
+# AT CDUSPOT (ORDER Y Z X, AT CDUSPOT, CDUSPOT +2, AND CDUSPOT +4. ODD
+# LOCATIONS NEED NOT BE ZEROED).  TRG*NBSM DOES THE NB TO SM TRANSFOR-
+# MATION:  TRG*SMNB, VICE VERSA.
+#
+# CDU*NBSM DOES ITS TRANSFORMATION USING THE PRESENT CONTENTS OF
+# THE CDL COUNTERS.  OTHERWISE IT IS LIKE TRG*NBSM.
+#
+# CDU*SMNB IS THE COMPLEMENT OF CDU*NBSM.
+
+CDU*SMNB	EXIT
+		TC	CDUTRIGS
+		TCF	C*MM*N1
+
+TRG*SMNB	EXIT
+		TC	CD*TR*GS
+C*MM*N1		TC	MPACVBUF	# AX*SR*T EXPECTS VECTOR IN VBUF
+		CS	THREE		# SIGNAL FOR SM TO NB TRANSFORMATION.
+C*MM*N2		TC	AX*SR*T
+		TC	INTPRET
+		VLOAD	RVQ
+			VBUF
+
+CDU*NBSM	EXIT
+		TC	CDUTRIGS
+
+# Page 1369
+
+		TCF	C*MM*N3
+
+TRG*NBSM	EXIT
+		TC	CD*TR*GS
+C*MM*N3		TC	MPACVBUF	# FOR AX*SR*T
+		CA	THREE		# SIGNAL FOR NB TO SM TRANSFORMATION
+		TCF	C*MM*N2
+
+# *NBSM* AND *SMNB* EXPECT TO SEE THE SINES AND COSINES (AT SINCDU
+# AND COSCDU) RATHER THAN THE ANGLES THEMSELVES.  OTHERWISE THEY ARE
+# LIKE TRG*NBSM AND TRG*SMNB.
+#
+# NOTE THAT JUST AS CD*TR*GS NEED BE CALLED ONLY ONCE FOR EACH SERIES
+# OF TRANSFORMATIONS USING THE SAME ANGLES, SO TOO ONLY ONE OF TRG*NBSM
+# AND TRG*SMNB NEED BE CALLED FOR EACH SERIES.  FOR SUBSEQUENT TRANFOR-
+# MATIONS USE *NBSM* AND *SMNB*.
+
+*SMNB*		EXIT
+		TCF	C*MM*N1
+
+*NBSM*		EXIT
+		TCF	C*MM*N3
+
+# AX*SR*T COMBINES THE OLD SMNB AND NBSM.  FOR THE NB TO SM
+# TRANSFORMATION, ENTER WITH +3 IN A.  FOR SM TO NB, ENTER WITH -3.
+# THE VECTOR TO BE TRANSFORMED ARRIVES, AND IS RETURNED, IN VBUF.
+# AX*SR*T EXPECTS TO FIND THE SINES AND COSINES OF THE ANGLES OF ROTATION
+# AT SINCDU AND COSCDU, IN THE ORDER Y Z X.  A CALL TO CD*TR*GS, WITH
+# THE 2'S COMPLEMENT ANGLES (ORDER Y Z X) AT CDUSPOT, WILL TAKE CARE OF
+# THIS.  HERE IS A SAMPLE CALLING SEQUENCE:--
+#		TC	CDUTRIGS
+#		CS	THREE		# ("CA THREE" FOR NBSM)
+#		TC	AX*SR*T
+# THE CALL TO CD*TR*GS NEED NOT BE REPEATED, WHEN AX*SR*T IS CALLED MORE
+# THAN ONCE, UNLESS THE ANGLES HAVE CHANGED.
+#
+# AX*SR*T IS GUARANTEED SAFE ONLY FOR VECTORS OF MAGNITUDE LESS THAN
+# UNITY.  A LOOK AT THE CASE IN WHICH A VECTOR OF GREATER MAGNITUDE
+# HAPPENS TO LIE ALONG AN AXIS OF THE SYSTEM TO WHICH IT IS TO BE TRANS-
+# FORMED CONVINCES ONE THAT THIS IS A RESTRICTION WHICH MUST BE ACCEPTED.
+
+AX*SR*T		TS	DEXDEX		# WHERE IT BECOMES THE INDEX OF INDEXES.
+		EXTEND
+		QXCH	RTNSAVER
+
+R*TL**P		CCS	DEXDEX		#       	+3 --> 0	-3 --> 2
+		CS	DEXDEX		# THUS:		+2 --> 1	-2 --> 1
+		AD	THREE		#		+1 --> 2	-1 --> 0
+# Page 1370
+		EXTEND
+		INDEX	A
+		DCA	INDEXI
+		DXCH	DEXI
+
+		CA	ONE
+		TS	BUF
+		EXTEND
+		INDEX	DEX1
+		DCS	VBUF
+		TCF	LOOP1		# REALLY BE A SUBTRACT, AND VICE VERSA
+
+LOOP2		DXCH	BUF		# LOADING VECTOR COMPONENT, STORING INDEX
+
+LOOP1		DXCH	MPAC
+		CA	SINESLOC
+		AD	DEX1
+		TS	ADDRWD
+
+		TC	DMPSUB		# MULTIPLY BY SIN(CDUANGLE)
+		CCS	DEXDEX
+		DXCH	MPAC		# NBSM CASE
+		TCF	+3
+		EXTEND			# SMNB CASE
+		DCS	MPAC
+		DXCH	TERM1TMP
+
+		CA	SIX		# SINCDU AND COSCDU (EACH 6 WORDS) MUST
+		ADS	ADDRWD		#	BE CONSECUTIVE AND IN THAT ORDER
+
+		EXTEND
+		INDEX	BUF
+		INDEX	DEX1
+		DCA	VBUF
+		DXCH	MPAC
+		TC	DMPSUB		# MULTIPLY BY COS(CDUANGLE)
+		DXCH	MPAC
+		DAS	TERM1TMP
+		DXCH	TERM1TMP
+		DDOUBL
+		INDEX	BUF
+		INDEX	DEX1
+		DXCH	VBUF
+		DXCH	BUF		# LOADING INDEX, STORING VECTOR COMPONENT
+		CCS	A		# 'CAUSE THAT'S WHERE THE INDEX NOW IS
+		TCF	LOOP2
+
+		EXTEND
+		DIM	DEXDEX		# DECREMENT MAGNITUDE PRESERVING SIGN
+
+# Page 1371
+TSTPOINT	CCS	DEXDEX		# ONLY THE BRANCHING FUNCTION IS USED
+		TCF	R*TL**P
+		TC	RTNSAVER
+		TCF	R*TL**P
+		TC	RTNSAVER
+
+SINESLOC	ADRES	SINCDU		# FOR USE IN SETTING ADDRWD
+
+INDEXI		DEC	4		# **********   DON'T   ***********
+		DEC	2		# **********   TOUCH   ***********
+		DEC	0		# **********   THESE   ***********
+		DEC	4		# ********** CONSTANTS ***********
+
+# ******************************************************************************
+# Page 1372
+# THIS SUBROUTINE COMPUTES INCREMENTAL CHANGES IN CDU(GIMBAL) ANGLES FROM INCREMENTAL CHANGES ABOUT SM AXES.  IT
+# REQUIRES SM INCREMENTS AS A DP VECTOR SCALED AT ONE REVOLUTION(DTHETASM,+2,+4).  SIN,COS(CDUY,Z,X) ARE IN
+# SINCDU,+2,+4 AND COSCDU,+2,+4 RESPECTIVELY, SCALED TO ONE HALF.  CDU INCREMENTS ARE PLACED IN DCDU,+2,+4 SCALED TO
+# ONE REVOLUTION.
+#
+#	*  COS(IGA)SEC(MGA)		0		-SIN(IGA)SEC(MGA) *
+#	*								  *
+#	* -COS(IGA)TAN(MGA)		1		 SIN(IGA)TAN(MGA) *
+#	*								  *
+#	*      SIN(IGA)			0		     COS(IGA)     *
+
+		BANK	14
+		SETLOC	POWFLIT1
+		BANK
+		
+SMCDURES	DLOAD	DMP
+			DTHETASM
+			COSCDUY
+			
+		PDDL	DMP
+			DTHETASM +4
+			SINCDUY
+			
+		BDSU
+		DDV
+			COSCDUZ
+		STORE	DCDU
+		
+		DMP	SL1		# SCALE
+			SINCDUZ
+		BDSU
+		
+			DTHETASM +2
+		STODL	DCDU +2
+			DTHETASM
+			
+		DMP	PDDL
+			SINCDUY
+			DTHETASM +4
+			
+		DMP	DAD
+			COSCDUY
+		SL1
+		STORE	DCDU +4
+		RVQ
+
diff --git a/Q_R-AXIS_RCS_AUTOPILOT.s b/Q_R-AXIS_RCS_AUTOPILOT.s
new file mode 100644
index 0000000..f3265b5
--- /dev/null
+++ b/Q_R-AXIS_RCS_AUTOPILOT.s
@@ -0,0 +1,860 @@
+# Copyright:	Public domain.
+# Filename:	Q_R-AXIS_RCS_AUTOPILOT.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	1442-1459
+# Mod history:	2009-05-27 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#		2009-06-07 RSB	Corrected "DEC 96.0" to "DEC 96", since
+#				the former is not compatible with yaYUL.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 1442
+		BANK	17
+		SETLOC	DAPS2
+		BANK
+
+		EBANK=	CDUXD
+
+		COUNT*	$$/DAPQR
+
+CALLQERR	CA	BIT13		# CALCULATE Q,R ERRORS UNLESS THESE AXES
+		EXTEND			# ARE IN MANUAL RATE COMMAND.
+		RAND	CHAN31
+		CCS	A
+		TCF	+5		# IN AUTO COMPUTE Q,R ERRORS
+		CS	DAPBOOLS	# IN MANUAL RATE COMMAND?
+		MASK	OURRCBIT
+		EXTEND
+		BZF	Q,RORGTS	# IF SO BYPASS CALCULATION OF ERROS.
+		TC	QERRCALC
+
+Q,RORGTS	CCS	COTROLER	# CHOOSE CONTROL SYSTEM FOR THIS DAP PASS:
+		TCF	GOTOGTS		#	GTS (ALTERNATES WITH RCS WHEN DOCKED)
+		TCF	TRYGTS		#	GTS IF ALLOWED, OTHERWISE RCS
+RCS		CAF	ZERO		#	RCS (TRYGTS MAY BRANCH TO HERE)
+		TS	COTROLER
+
+		DXCH	EDOTQ
+		TC	ROT-TOUV
+		DXCH	OMEGAU
+
+# X - TRANSLATION
+#
+# INPUT:	BITS 7,8 OF CH31 (TRANSLATION CONTROLLER)
+#		ULLAGER
+#		APSFLAG, DRIFTBIT
+#		ACC40R2X, ACRBTRAN
+#
+# OUTPUT:	NEXTU, NEXTV	CODES OF TRANSLATION FOR AFTER ROTATION
+#		SENSETYP	TELL ROTATION DIRECTION AND DESIRE
+#
+# X-TRANS POLICIES ARE EITHER 4 JETS OR A DIAGONAL PAIR.  IN 2-JET TRANSLATION THE SYSTEM IS SPECIFIED.  A FAILURE
+# WILL OVERRIDE THIS SPECIFICATION.  AN ALARM RESULTS WHEN NO POLICY IS AVAILABLE BECAUSE OF FAILURES.
+
+SENSEGET	CA	BIT7		# INPUT BITS OVERRIDE THE INTERNAL BITS
+		EXTEND			# SENSETYP WILL NOT OPPOSE ANYTRANS
+		RAND	CHAN31
+		EXTEND
+		BZF	+X0RULGE
+# Page 1443
+		CA	BIT8
+		EXTEND
+		RAND	CHAN31
+		EXTEND
+		BZF	-XTRANS
+
+		CA	ULLAGER
+		MASK	DAPBOOLS
+		CCS	A
+		TCF	+X0RULGE
+
+		TS	NEXTU		# STORE NULL TRANSLATION POLICIES
+		TS	NEXTV
+		CS	DAPBOOLS	# BURNING OR DRIFTING?
+		MASK	DRIFTBIT
+		EXTEND
+		BZF	TSENSE
+		CA	FLGWRD10	# DPS (INCLUDING DOCKED) OR APS?
+		MASK	APSFLBIT
+		CCS	A
+		CAF	TWO		# FAVOR +X JETS DURING AN APS BURN.
+TSENSE		TS	SENSETYP
+		TCF	QRCONTRL
+
++X0RULGE	CAF	ONE
+-XTRANS		AD	FOUR
+		TS	ROTINDEX
+		AD	NEG3
+		TS	SENSETYP	# FAVOR APPROPRIATE JETS DURING TRANS.
+		CA	DAPBOOLS
+		MASK	ACC4OR2X
+		CCS	A
+		TCF	TRANS4
+
+		CA	DAPBOOLS
+		MASK	AORBTRAN
+		CCS	A
+		CA	ONE		# THREE FOR B
+		AD	TWO		# TWO FOR A SYSTEM 2 JET X TRANS
+TSNUMBRT	TS	NUMBERT
+
+		TC	SELCTSUB
+
+		CCS	POLYTEMP
+		TCF	+3
+		TC	ALARM
+		OCT	02002
+		CA	00314OCT
+		MASK	POLYTEMP
+TSNEXTS		TS	NEXTU
+# Page 1444
+		CS	00314OCT
+		MASK	POLYTEMP
+		TS	NEXTV
+
+# Q,R-AXES RCS CONTROL MODE SELECTION
+#	SWITCHES	INDICATION WHEN SET
+#	BIT13/CHAN31	AUTO, GO TO ATTSTEER
+#	PULSES		MINIMUM IMPULSE MODE
+#	(OTHERWISE)	RATE COMMAND/ATTITUDE HOLD MODE
+
+QRCONTRL	CA	BIT13		# CHECK MODE SELECT SWITCH.
+		EXTEND
+		RAND	CHAN31		# BITS INVERTED
+		CCS	A
+		TCF	ATTSTEER
+CHKBIT10	CAF	PULSES		# PULSES = 1 FOR MIN IMP USE OF RHC
+		MASK	DAPBOOLS
+		EXTEND
+		BZF	CHEKSTIK	# IN ATT-HOLD/RATE-COMMAND IF BIT10=0
+
+# MINIMUM IMPULSE MODE
+
+		INHINT
+		TC	IBNKCALL
+		CADR	ZATTEROR
+		CA	ZERO
+		TS	QERROR
+		TS	RERROR		# FOR DISPLAYS
+		RELINT
+
+		EXTEND
+		READ	CHAN31
+		TS	TEMP31		# IS EQUAL TO DAPTEMP1
+		CCS	OLDQRMIN
+		TCF	CHECKIN
+
+FIREQR		CA	TEMP31
+		MASK	BIT1
+		EXTEND
+		BZF	+QMIN
+
+		CA	TEMP31
+		MASK	BIT2
+		EXTEND
+		BZF	-QMIN
+
+		CA	TEMP31
+		MASK	BIT5
+# Page 1445
+		EXTEND
+		BZF	+RMIN
+
+		CA	TEMP31
+		MASK	BIT6
+		EXTEND
+		BZF	-RMIN
+
+		TCF	XTRANS
+
+CHECKIN		CS	TEMP31
+		MASK	OCT63
+		TS	OLDQRMIN
+		TCF	XTRANS
+
++QMIN		CA	14MS
+		TS	TJU
+		CS	14MS
+		TCF	MINQR
+-QMIN		CS	14MS
+		TS	TJU
+		CA	14MS
+		TCF	MINQR
++RMIN		CA	14MS
+		TCF	+2
+-RMIN		CS	14MS
+		TS	TJU
+MINQR		TS	TJV
+		CA	MINADR
+		TS	RETJADR
+		CA	ONE
+		TS	OLDQRMIN
+MINRTN		TS	AXISCTR
+		CA	DAPBOOLS
+		MASK	CSMDOCKD
+		EXTEND
+		BZF	MIMRET
+		INDEX	AXISCTR		# IF DOCKED, USE 60MS MINIMUM IMPULSE
+		CCS	TJU
+		CA	60MS
+		TCF	+2
+		CS	60MS
+		INDEX	AXISCTR
+		TS	TJU
+MIMRET		CA	DAPBOOLS
+		MASK	AORBTRAN
+		CCS	A
+		CA	ONE
+		AD	TWO
+		TS	NUMBERT
+# Page 1446
+		TCF	AFTERTJ
+
+60MS		DEC	96		# RSB 2009 -- was 96.0.
+MINADR		GENADR	MINRTN
+OCT63		OCT	63
+14MS		=	+TJMINT6
+
+TRANS4		CA	FOUR
+		TCF	TSNUMBRT
+
+# RATE COMMAND MODE:
+#
+# DESCRIPTION (SAME AS P-AXIS)
+
+CHEKSTIK	TS	INGTS		# NOT IN GTS WHEN IN ATT HOLD
+		CS	ONE		# 1/ACCS WILL DO THE NULLING DRIVES
+		TS	COTROLER	# COME BACK TO RCS NEXT TIME
+		CA	BIT15
+		MASK	CH31TEMP
+		EXTEND
+		BZF	RHCACTIV	# BRANCH IF OUT OF DETENT.
+		CA	OURRCBIT	# ***********
+		MASK	DAPBOOLS	# *IN DETENT*	CHECK FOR MANUAL CONTROL
+		EXTEND			# ***********	LAST TIME.
+		BZF	STILLRCS
+		CS	BIT9
+		MASK	RCSFLAGS
+		TS	RCSFLAGS	# BIT 9 IS 0.
+		TCF	DAMPING
+40CYCL		OCT	50
+1/10S		OCT	1
+LINRAT		DEC	46
+
+# ===========================================================
+
+DAMPING		CA	ZERO
+		TS	SAVEHAND
+		TS	SAVEHAND +1
+RHCACTIV	CCS	SAVEHAND	# ******************
+		TCF	+3		# Q,R MANUAL CONTROL	WC = A*(B+|D|)*D
+		TCF	+2		# ******************
+		TCF	+1
+		DOUBLE			# WHERE
+		DOUBLE			#
+		AD	LINRAT		# 	WC  = COMMANDED ROTATIONAL RATE
+		EXTEND			#	A   = QUADRATIC SENSITIVITY FACTOR
+		MP	SAVEHAND	#	B   = LINEAR/QUADRATIC SENSITIVITY
+		CA	L		#	|D| = ABS. VALUE OF DEFLECTION
+		EXTEND			#	D   = HAND CONTROLLER DEFLECTION
+		MP	STIKSENS
+		XCH	QLAST		# COMMAND Q RATE, SCALED 45 DEG/SEC
+		COM
+# Page 1447
+		AD	QLAST
+		TS	DAPTEMP3
+		CCS	SAVEHAND +1
+		TCF	+3
+		TCF	+2
+		TCF	+1
+		DOUBLE
+		DOUBLE
+		AD	LINRAT
+		EXTEND
+		MP	SAVEHAND +1
+		CA	L
+		EXTEND
+		MP	STIKSENS
+		XCH	RLAST
+		COM
+		AD	RLAST
+		TS	DAPTEMP4
+		CS	QLAST		# INTERVAL.
+		AD	OMEGAQ
+		TS	QRATEDIF
+		CS	RLAST
+		AD	OMEGAR
+		TS	RRATEDIF
+ENTERQR		DXCH	QRATEDIF	# TRANSFORM RATES FROM Q,R TO U,V AXES
+		TC	ROT-TOUV
+		DXCH	URATEDIF
+		CCS	DAPTEMP3	# CHECK IF Q COMMAND CHANGE EXCEEDS
+		TC	+3		# BREAKOUT LEVEL.  IF NOT, CHECK R.
+		TC	+2
+		TC	+1
+		AD	-RATEDB
+		EXTEND
+		BZMF	+2
+		TCF	ENTERUV -2	# BREAKOUT LEVEL EXCEEDED.  DIRECT RATE.
+		CCS	DAPTEMP4	# R COMMAND BREAKOUT CHECK.
+		TC	+3
+		TC	+2
+		TC	+1
+		AD	-RATEDB
+		EXTEND
+		BZMF	+2
+		TCF	ENTERUV -2	# BREAKOUT LEVEL EXCEEDED.  DIRECT RATE.
+		CA	RCSFLAGS	# BREAKOUT LEVEL NOT EXCEEDED.  CHECK FOR
+		MASK	QRBIT		# DIRECT RATE CONTROL LAST TIME.
+		EXTEND
+		BZF	+2
+		TCF	ENTERUV		# CONTINUE DIRECT RATE CONTROL.
+		TCF	STILLRCS	# PSEUDO-AUTO CONTROL.
+		CA	40CYCL
+# Page 1448
+		TS	TCQR
+ENTERUV		INHINT			# DIRECT RATE CONTROL
+		TC	IBNKCALL
+		FCADR	ZATTEROR
+		RELINT
+		CA	ZERO
+		TS	DYERROR
+		TS	DYERROR +1
+		TS	DZERROR
+		TS	DZERROR +1
+		CCS	URATEDIF
+		TCF	+3
+		TCF	+2
+		TCF	+1
+		AD	TARGETDB	# IF TARGET DB IS EXCEEDED, CONTINUE
+		EXTEND			# DIRECT RATE CONTROL.
+		BZMF	VDB
+		CCS	VRATEDIF
+		TCF	+3
+		TCF	+2
+		TCF	+1
+		AD	TARGETDB
+		EXTEND
+		BZMF	+2
+		TCF	QRTIME
+		CA	ZERO
+		TS	VRATEDIF
+		TCF	QRTIME
+VDB		CCS	VRATEDIF
+		TC	+3
+		TC	+2
+		TC	+1
+		AD	TARGETDB	# IF TARGET DB IS EXCEEDED, CONTINUE
+		EXTEND			# DIRECT RATE CONTROL.  IF NOT, FIRE AND
+		BZMF	TOPSEUDO	# SWITCH TO PSEUDO-AUTO CONTROL ON NEXT
+		CA	ZERO		# PASS.
+		TS	URATEDIF
+QRTIME		CA	TCQR		# DIRECT RATE TIME CHECK.
+		EXTEND
+		BZMF	+5		# BRANCH IF TIME EXCEEDS 4 SEC.
+		CS	RCSFLAGS
+		MASK	QRBIT
+		ADS	RCSFLAGS	# BIT 11 IS 1.
+		TC	+4
+TOPSEUDO	CS	QRBIT
+		MASK	RCSFLAGS
+		TS	RCSFLAGS	# BIT 11 IS 0.
+		CA	HANDADR
+		TS	RETJADR
+		CA	ONE
+
+# Page 1449
+BACKHAND	TS	AXISCTR
+
+		CA	FOUR
+		TS	NUMBERT
+
+		INDEX	AXISCTR
+		INDEX	SKIPU
+		TCF	+1
+		CA	FOUR
+		INDEX	AXISCTR
+		TS	SKIPU
+		TCF	LOOPER
+
+		INDEX	AXISCTR
+		CCS	URATEDIF	#	INDEX	AXIS	QUANTITY
+		CA	ZERO		#	0	-U	1/JETACC-AOSU
+		TCF	+2		#	1	+U	1/JETACC+AOSU
+		CA	ONE		#	16	-V	1/JETACC-AOSV
+		INDEX	AXISCTR		#	17	+V	1/JETACC+AOSV
+		AD	AXISDIFF	# JETACC = 2 JET ACCELERATION (1 FOR FAIL)
+
+		INDEX	A
+		CS	1/ANET2 +1
+		EXTEND
+		INDEX	AXISCTR		# UPRATEDIF IS SCALED AT PI/4 RAD/SEC
+		MP	URATEDIF	# JET TIME IN A, SCALED 32 SEC
+		TS	Q
+		DAS	A
+		AD	Q
+		TS	A		# OVERFLOW SKIP
+		TCF	+2
+		CA	Q		# RIGHT SIGN AND BIGGER THAN 150MS
+SETTIME		INDEX	AXISCTR
+		TS	TJU		# SCALED AT 10.67 WHICH IS CLOSE TO 10.24
+		TCF	AFTERTJ
+
+ZEROTJ		CA	ZERO
+		TCF	SETTIME
+
+HANDADR		GENADR	BACKHAND
+
+# GTS WILL BE TRIED IF
+#	1. USEQRJTS = 0,
+#	2. ALLOWGTS POS,
+#	3. JETS ARE OFF (Q,R-AXES)
+
+TRYGTS		CAF	USEQRJTS	# IS JET USE MANDATORY.		(AS LONG AS
+		MASK	DAPBOOLS	# USEQRJTS BIT IS NOT BIT 15, CCS IS SAFE.)
+		CCS	A
+		TCF	RCS
+		CCS	ALLOWGTS	# NO.  DOES AOSTASK OK CONTROL FOR GTS?
+# Page 1450
+		TCF	+2
+		TCF	RCS
+		EXTEND
+		READ	CHAN5
+		CCS	A
+		TCF	CHKINGTS
+GOTOGTS		EXTEND
+		DCA	GTSCADR
+		DTCB
+
+CHKINGTS	CCS	INGTS		# WAS THE TRIM GIMBAL CONTROLLING
+		TCF	+2		#	YES.  SET UP A DAMPED NULLING DRIVE.
+		TCF	RCS		#	NO.  NULLING WAS SET UP BEFORE.  DO RCS.
+		INHINT
+		TC	IBNKCALL
+		CADR	TIMEGMBL
+		RELINT
+		CAF	ZERO
+		TS	INGTS
+		TCF	RCS
+
+		EBANK=	CDUXD
+GTSCADR		2CADR	GTS
+
+# Page 1451
+# SUBROUTINE TO COMPUTE Q,R-AXES ATTITUDE ERRORS FOR USE IN THE RCS AND GTS CONTROL LAWS AND THE DISPLAYS.
+
+QERRCALC	CAE	CDUY		# Q-ERROR CALCULATION
+		EXTEND
+		MSU	CDUYD		# CDU ANGLE -- ANGLE DESIRED (Y-AXIS)
+		TS	DAPTEMP1	# SAVE FOR RERRCALC
+		EXTEND
+		MP	M21		# (CDUY-CDUYD)*M21 SCALED AT PI RADIANS
+		TS	E
+		CAE	CDUZ		# SECOND TERM CALCULATION:
+		EXTEND
+		MSU	CDUZD		# CDU ANGLE -ANGLE DESIRED (Z-AXIS)
+		TS	DAPTEMP2	# SAVE FOR RERRCALC
+		EXTEND
+		MP	M22		# (CDUZ-CDUZD)*M22 SCALED AT PI RADIANS
+		AD	DELQEROR	# KALCMANU INERFACE ERROR
+		AD	E
+		XCH	QERROR		# SAVE Q-ERROR FOR EIGHT-BALL DISPLAY.
+
+RERRCALC	CAE	DAPTEMP1	# R-ERROR CALCULATION:
+		EXTEND			# CDU ANGLE -ANGLE DESIRED (Y-AXIS)
+		MP	M31		# (CDUY-CDUYD)*M31 SCALED AT PI RADIANS
+		TS	E
+		CAE	DAPTEMP2	# SECOND TERM CALCULATION:
+		EXTEND			# CDU ANGLE -ANGLE DESIRED (Z-AXIS)
+		MP	M32		# (CDUZ-CDUZD)*M32 SCALED AT PI RADIANS
+		AD	DELREROR	# KALCMANU INERFACE ERROR
+		AD	E
+		XCH	RERROR		# SAVE R-ERROR FOR EIGHT-BALL DISPLAY.
+		TC	Q
+
+# Page 1452
+# "ATTSTEER" IS THE ENTRY POINT FOR Q,R-AXES (U,V-AXES) ATTITUDE CONTROL USING THE REACTION CONTROL SYSTEM
+
+ATTSTEER	EQUALS	STILLRCS	# "STILLRCS" IS THE RCS EXIT FROM TRYGTS.
+
+STILLRCS	CA	RERROR
+		LXCH	A
+		CA	QERROR
+		TC	ROT-TOUV
+		DXCH	UERROR
+
+# PREPARES CALL TO TJETLAW (OR SPSRCS(DOCKED))
+# PREFORMS SKIP LOGIC ON U OR Y AXIS IF NEEDED.
+
+TJLAW		CA	TJLAWADR
+		TS	RETJADR
+		CA	ONE
+		TS	AXISCTR
+		INDEX	AXISCTR
+		INDEX	SKIPU
+		TCF	+1
+		CA	FOUR
+		INDEX	AXISCTR
+		TS	SKIPU
+		TCF	LOOPER
+		INDEX	AXISCTR
+		CA	UERROR
+		TS	E
+		INDEX	AXISCTR
+		CA	OMEGAU
+		TS	EDOT
+		CA	DAPBOOLS
+		MASK	CSMDOCKD
+		CCS	A
+		TCF	+3
+		TC	TJETLAW
+		TCF	AFTERTJ
+	+3	CS	DAPBOOLS	# DOCKED.  IF GIMBAL USABLE DO GTS CONTROL
+		MASK	USEQRJTS	#	ON THE NEXT PASS.
+		CCS	A		# USEQRJTS BIT MUST NOT BE BIT 15.
+		TS	COTROLER	# GIMBAL USABLE.  STORE POSITIVE VALUE.
+		INHINT
+		TC	IBNKCALL
+		CADR	SPSRCS		# DETERMINE RCS CONTROL
+		RELINT
+		CAF	FOUR		# ALWAYS CALL FOR 2-JET CONTROL ABOUT U,V.
+		TS	NUMBERT		# FALL THROUGH TO JET SLECTION, ETC.
+
+# Q,R-JET-SELECTION-LOGIC
+#
+# INPUT:	AXISCTR		0,1 FOR U,V
+#		SNUFFBIT	ZERO TJETU,V AND TRANS. ONLY IF SET IN A DPS BURN
+# Page 1453
+#		TJU,TJV		JET TIME SCALED 10.24 SEC.
+#		NUMBERT		INDICATES NUMBER OF JETS AND TYPE OF POLICY
+#		RETJADR		WHERE TO RETURN TO
+#
+# OUTPUT:	NO.U(V)JETS	RATE DERIVATION FEEDBACK
+#		CHANNEL 5
+#		SKIPU,SKIPV	FOR LESS THAN 150MS FIRING
+#
+# NOTES:	IN CASE OF FAILURE IN DESIRED ROTATION POLICY, "ALL" UNFAILED
+#		JETS OF THE DESIRED POLICY ARE SELECTED.  SINCE THERE ARE ONLY
+#		TWO JETS, THIS MEANS THE OTHER ONE OR NONE.  THE ALARM IS SENT
+#		IF NONE CAN BE FOUND.
+#
+#		TIMES LESS THAN 14 MSEC ARE TAKEN TO CALL FOR A SINGLE-JET
+#		MINIMUM IMPULSE, WITH THE JET CHOSEN SEMI-RANDOMLY.
+
+AFTERTJ		CA	FLAGWRD5	# IF SNUFFBIT SET DURING A DPS BURN GO TO
+		MASK	SNUFFBIT	# XTRANS; THAT IS, INHIBIT CONTROL.
+		EXTEND
+		BZF	DOROTAT
+		CS	FLGWRD10
+		MASK	APSFLBIT
+		EXTEND
+		BZF	DOROTAT
+		CA	DAPBOOLS
+		MASK	DRIFTBIT
+		EXTEND
+		BZF	XTRANS
+
+DOROTAT		CAF	TWO
+		TS	L
+		INDEX	AXISCTR
+		CCS	TJU
+		TCF	+5
+		TCF	NOROTAT
+		TCF	+2
+		TCF	NOROTAT
+		ZL
+		AD	ONE
+		TS	ABSTJ
+
+		CA	AXISCTR
+		AD	L
+		TS	ROTINDEX	# 0 1 2 3 = -U -V +U +V
+
+		CA	ABSTJ
+		AD	-150MS
+		EXTEND
+		BZMF	DOSKIP
+# Page 1454
+		TC	SELCTSUB
+
+		INDEX	AXISCTR
+		CA	INDEXES
+		TS	L
+
+		CA	POLYTEMP
+		INHINT
+		INDEX	L
+		TC	WRITEP
+
+		RELINT
+		TCF	FEEDBACK
+
+NOROTAT		INDEX	AXISCTR
+		CA	INDEXES
+		INHINT
+		INDEX	A
+		TC	WRITEP 	-1
+
+		RELINT
+LOOPER		CCS	AXISCTR
+		TC	RETJADR
+		TCF	CLOSEOUT
+DOSKIP		CS	ABSTJ
+		AD	+TJMINT6	# 14MS
+		EXTEND
+		BZMF	NOTMIN
+
+		ADS	ABSTJ
+		INDEX	AXISCTR
+		CCS	TJU
+		CA	+TJMINT6
+		TCF	+2
+		CS	+TJMINT6
+		INDEX	AXISCTR
+		TS	TJU
+
+		CCS	SENSETYP	# ENSURE MIN-IMPULSE NOT AGAINST TRANS
+		TCF	NOTMIN 	-1
+		EXTEND
+		READ	LOSCALAR
+		MASK	ONE
+		TS	NUMBERT
+
+NOTMIN		TC	SELCTSUB
+
+		INDEX	AXISCTR
+		CA	INDEXES
+		INHINT
+# Page 1455
+		TS	T6FURTHA +1
+		CA	POLYTEMP
+		INDEX	T6FURTHA +1
+		TC	WRITEP
+
+		CA	ABSTJ
+		TS	T6FURTHA
+		TC	JTLST		# IN QR BANK BY NOW
+
+		RELINT
+
+		CA	ZERO
+		INDEX	AXISCTR
+		TS	SKIPU
+
+FEEDBACK	CS	THREE
+		AD	NUMBERT
+		EXTEND
+		BZMF	+3
+
+		CA	TWO
+		TCF	+2
+		CA	ONE
+		INDEX	AXISCTR
+		TS	NO.UJETS
+		TCF	LOOPER
+
+XTRANS		CA	ZERO
+		TS	TJU
+		TS	TJV
+		CA	FOUR
+		INHINT
+		XCH	SKIPU
+		EXTEND
+		BZF	+2
+		TC	WRITEU 	-1
+		CA	FOUR
+		XCH	SKIPV
+		RELINT
+
+		EXTEND
+		BZF	CLOSEOUT
+		INHINT
+		TC	WRITEV 	-1
+		RELINT
+
+		TCF	CLOSEOUT
+INDEXES		DEC	4
+		DEC	13
++TJMINT6	DEC	22
+# Page 1456
+-150MS		DEC	-240
+BIT8,9		OCT	00600
+SCLNORM		OCT	266
+TJLAWADR	GENADR	TJLAW 	+3	# RETURN ADDRESS FOR RCS ATTITUDE CONTROL
+
+# THE JET LIST:
+# THIS IS A WAITLIST FOR T6RUPTS.
+#
+# CALLED BY:
+#		CA	TJ		# TIME WHEN NEXT JETS WILL BE WRITTEN
+#		TS	T6FURTHA
+#		CA	INDEX		# AXIS TO BE WRITTEN AT TJ (FROM NOW)
+#		TS	T6FURTHA +1
+#		TC	JTLST
+#
+# EXAMPLE -- U-AXIS AUTOPILOT WILL WRITE ITS ROTATION CODE OF
+# JETS INTO CHANNEL 5.  IF IT DESIRES TO TURN OFF THIS POLICY WITHIN
+# 150MS AND THEN FIRE NEXTU, A CALL TO JTLST IS MADE WITH T6FURTHA
+# CONTAINING THE TIME TO TURN OFF THE POLICY, T6FURTHA +1 THE INDEX
+# OF THE U-AXIS(4), AND NEXTU WILL CONTAIN THE "U-TRANS" POLICY OR ZERO.
+#
+# THE LIST IS EXACTLY 3 LONG.  (THIS LEADS UP TO SKIP LOGIC AND 150MS LIMIT)
+# THE INPUT IS THE LAST MEMBER OF THE LIST.
+#
+# RETURNS BY:
+#	+	TC	Q
+#
+# DEFINITIONS:  (OUTPUT)
+#	TIME6		TIME OF NEXT RUPT
+#	T6NEXT		DELTA TIME TO NEXT RUPT
+#	T6FURTHA	DELTA TIME FROM 2ND TO LAST RUPT
+#	NXT6ADR		AXIS INDEX	0 -- P-AXIS
+#	T6NEXT +1	AXIS INDEX	4 -- U-AXIS
+#	T6FURTHA +1	AXIS INDEX	13 -- V-AXIS
+
+JTLST		CS	T6FURTHA
+		AD	TIME6
+		EXTEND
+		BZMF	MIDORLST	# TIME6 -- TI IS IN A
+
+		LXCH	NXT6ADR
+		DXCH	T6NEXT
+		DXCH	T6FURTHA
+		TS	TIME6
+		LXCH	NXT6ADR
+
+TURNON		CA	BIT15
+		EXTEND
+		WOR	CHAN13
+		TC	Q
+		
+# Page 1457
+MIDORLST	AD	T6NEXT
+		EXTEND
+		BZMF	LASTCHG		# TIME6 + T6NEXT - T IS IN A
+
+		LXCH	T6NEXT 	+1
+		DXCH	T6FURTHA
+		EXTEND
+		SU	TIME6
+		DXCH	T6NEXT
+
+		TC	Q
+
+LASTCHG		CS	A
+		AD	NEG0
+		TS	T6FURTHA
+
+		TC	Q
+
+# ROT-TOUV IS ENTERED WITH THE Q-COMPONENT OF THE QUANTITY TO BE TRANSFORMED IN A AND THE R-COMPONENT IN L.
+# ROT-TOUV TRANSFORMS THE QUANTITY INTO THE NON-ORTHOGONAL U-V AXIS SYSTEM.  IN THE U-V SYSTEM NO CROSS-COUPLING IS
+# PRODUCED FROM RCS JET FIRINGS.  AT THE COMPLETION OF ROT-TOUV, THE U-COMPONENT OF THE TRANSFORMED QUANTITY IS IN
+# A AND THE V-COMPONENT IS IN L.
+
+ROT-TOUV	LXCH	ROTEMP2		# (R) IS PUT INTO ROTEMP2
+		EXTEND
+		MP	COEFFQ
+		XCH	ROTEMP2		# (R) GOES TO A AND COEFFQ.(Q) TO ROTEMP2
+		EXTEND
+		MP	COEFFR
+		TS	L		# COEFFR.(R) IS PUT INTO L
+		AD	ROTEMP2
+		TS	ROTEMP1		# COEFFQ.(Q)+COEFFR.(R) IS PUT IN ROTEMP1
+		TCF	+4
+		INDEX	A		# COEFFQ.(Q) + COEFFR.(R) HAS OVERFLOWED
+		CS	LIMITS		# AND IS LIMITED TO POSMAX OR NEGMAX
+		TS	ROTEMP1
+		CS	ROTEMP2
+		AD	L		# -COEFFQ.(Q) + COEFFR.(R) IS NOW IN A
+		TS	7
+		TCF	+3
+		INDEX	A		# -COEFFQ.(Q) + COEFFR.(R) HAS OVERFLOWED
+		CS	LIMITS		# AND IS LIMITED TO POSMAX OR NEGMAX
+		LXCH	ROTEMP1		# COEFFQ.(Q) + COEFFR.(R) IS PUT INTO L
+		TC	Q
+SELCTSUB	INDEX	ROTINDEX
+		CA	ALLJETS
+		INDEX	NUMBERT
+		MASK	TYPEPOLY
+		TS	POLYTEMP
+# Page 1458
+		MASK	CH5MASK
+		CCS	A
+		TCF	+2
+
+		TC	Q
+
+		CA	THREE
+FAILOOP		TS	NUMBERT
+		INDEX	ROTINDEX
+		CA	ALLJETS
+		INDEX	NUMBERT
+		MASK	TYPEPOLY
+		TS	POLYTEMP
+		MASK	CH5MASK
+		EXTEND
+		BZF	FAILOOP -2
+		CCS	NUMBERT
+		TCF	FAILOOP
+		INDEX	AXISCTR
+		TS	TJU
+		TC	ALARM
+		OCT	02004
+		TCF	NOROTAT
+ALLJETS		OCT	00110		#	-U	6 13
+		OCT	00022		#	-V	2 9
+		OCT	00204		#	+U	5 14
+		OCT	00041		# 	+V	1 10
+TYPEPOLY	OCT	00125		#	-X	1 5 9 13
+		OCT	00252		#	+X	2 6 10 14
+		OCT	00146		#	A	2 5 10 13
+		OCT	00231		#	B	1 6 9 14
+		OCT	00377		#	ALL	1 2 5 6 9 10 13 14
+
+# THE FOLLOWING SETS THE INTERRUPT FLIP-FLOP AS SOON AS POSSIBLE, WHICH PERMITS A RETURN TO THE INTERRUPTED JOB.
+
+CLOSEOUT	CA	ADRRUPT
+		TC	MAKERUPT
+
+ADRRUPT		ADRES	ENDJASK
+
+ENDJASK		DXCH	DAPARUPT
+		DXCH	ARUPT
+		DXCH	DAPBQRPT
+		XCH	BRUPT
+		LXCH	Q
+		CAF	NEGMAX		# NEGATIVE DAPZRUPT SIGNALS JASK IS OVER.
+		DXCH	DAPZRUPT
+		DXCH	ZRUPT
+		TCF	NOQRSM
+# Page 1459		
+		BLOCK	3
+		SETLOC	FFTAG6
+		BANK
+
+		COUNT*	$$/DAP
+
+MAKERUPT	EXTEND
+		EDRUPT	MAKERUPT
+		
diff --git a/R30.s b/R30.s
new file mode 100644
index 0000000..1ee43f8
--- /dev/null
+++ b/R30.s
@@ -0,0 +1,490 @@
+# Copyright:    Public domain.
+# Filename:     R30.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:      Hartmuth Gutsche <hgutsche@xplornet.com>.
+# Website:      www.ibiblio.org/apollo.
+# Pages:	514-524
+# Mod history:  2009-05-09 HG    Started adapting from the Colossus249/ file 
+#               of the same name, using Comanche055 page 
+#               images 0514.jpg - 0524.jpg. 
+#
+# 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 514
+# SUBROUTINE NAME:  V82CALL
+# MOD NO: 0					DATE: 16 FEB 67
+# MOD BY: R. R. BAIRNSFATHER			LOG SECTION:  R30
+# MOD NO: 1	MOD BY:  R. R. BAIRNSFATHER	DATE: 11 APR 67		SR30.1 CHANGED TO ALLOW MONITOR OPERN
+# MOD NO: 2	MOD BY:  ALONSO			DATE: 11 DEC 67		VB82 PROGRAM REWRITTEN
+# MOD NO: 3	MOD BY:  ALONSO			DATE: 26 MAR 68		PROG MOD TO HANDLE DIF EARTH/MOON SCALE
+#
+# NEW FUNCTIONAL DESCRIPTION:	CALLED BY VERB 82 ENTER.  PRIORITY 10.
+# USED THROUGHOUT.		CALCULATE AND DISPLAY ORBITAL PARAMETERS
+#
+# 1.	IF AVERAGE G IS OFF:
+#		FLASH DISPLAY V04N06.  R2 INDICATES WHICH SHIP'S STATE VECTOR IS
+#			TO BE UPDATED.  INITIAL CHOICE IS THIS SHIP (R2=1).  ASTRONAUT
+#			CAN CHANGE TO OTHER SHIP BY V22EXE. WHERE X IS NOT EQ 1.
+#		SELECTED STATE VECTOR UPDATED BY THISPREC (OTHPREC).
+#		CALLS SR30.1 (WHICH CALLS TFFCONMU + TFFRP/RA) TO CALCULATE
+#			RPER (PERIGEE RADIUS), RAPO (APOGEE RADIUS), HPER (PERIGEE
+#			HEIGHT ABOVE LAUNCH PAD OR LAUNAR LANDING SITE), HARD (APOGEE
+#			HEIGHT AS ABOVE), TPER (TIME TO PERIGEE), TFF (TIME TO
+#			INTERSECT 300 KFT ABOVE PAD OR 35KFT ABOVE LANDING SITE).
+#		FLASH MONITOR V16N44 (HAPO, HPER, TFF).  TFF IS -59MS59S IF IT WAS
+#			NOT COMPUTABLE, OTHERWISE IT INCREMENTS ONCE PER SECOND.
+#			ASTRONAUT HAS OPTION TO MONITOR TPER BY KEYING IN N 32 E.
+#			DISPLAY IS IN HMS, IS NEGATIVE (AS WAS TFF), AND INCREMENTS
+#			ONCE PER SECOND ONLY IF TFF DISPLAY WAS -59M59S.
+#	2.	IF AVERAGE G IS ON:
+#			CALLS SR30.1 APPROX EVERY TWO SECS.  STATE VECTOR IS ALWAYS
+#				FOR THIS VEHICLE.  V82 DOES NOT DISTURB STATE VECTOR.  RESULTS
+#				OF SR30.1 ARE RAPO, RPER, HAPO, HPER, TPER, TFF.
+#			FLASH MONITOR V16N44 (HAPO, HPER, TFF).
+#			IF MODE IS P11, THEN CALL DELRSPL SO ASTRONAUT CAN MONITOR
+#				RESULTS BY N50E.  SPLASH COMPUTATION DONE ONCE PER TWO SECS.
+#	ADDENDUM:  HAPO AND HPER SHOULD BE CHANGED TO READ HAPOX AND HPERX IN THE
+#		ABOVE REMARKS.
+#
+# CALLING SEQUENCE: VERB 82 ENTER.
+#
+# SUBROUTINES CALLED:	SR30.1, GOXDSPF
+#			MAYBE -- THISPREC, OTHPREC, LOADTIME, DELRSPL
+#
+# NORMAL EXIT MODES:  TC ENDEXT
+#
+# ALARMS:  NONE
+#
+# OUTPUT:	HAPOX	(-29) M
+#		HPERX	(-29) M
+#		RAPO	(-29) M EARTH
+#			(-27) M MOON
+# Page 515
+#		RPER	(-29) M EARTH
+#			(-27) M MOON
+#		TFF	(-28) CS	CONTAINS NEGATIVE QUANTITY
+#		-TPER	(-28) CS	CONTAINS NEGATIVE QUANTITY
+#		RSP-RREC(-29) M		IF DELRSPL CALLED
+#
+# ERASABLE INITIALIZATION REQUIRED:  STATE VECTOR.
+#
+# DEBRIS:	QPRET, RONE, VONE, TFF/RTMU, HPERMIN, RPADTEM, V82EMFLG.
+#		MAYBE:  TSTART82, V82FLAGS, TDEC1.
+
+		EBANK=	HAPOX
+		BANK	31
+		SETLOC	R30LOC
+		BANK
+		COUNT*	$$/R30
+
+V82CALL		TC	INTPRET
+		BON	GOTO
+			AVEGFLAG
+			V82GON		# IF AVERAGE G ON
+			V82GOFF		# IF AVERAGE G OFF
+
+V82GOFF		EXIT			# ALLOW ASTRONAUT TO SELECT VEHICLE
+		CAF	TWO		# DESIRED FOR ORBITAL PARAMETERS
+		TS	OPTIONX	
+		CAF	ONE
+		TS	OPTIONX +1
+		CAF	OPTIONVN	# V 04 N 06
+		TC	BANKCALL
+		CADR	GOXDSPF
+		TC	ENDEXT		# TERMINATE
+		TC	+2		# PROCEED
+		TC	-5		# DATA IN.  OPTIONX +1 = 1 FOR THIS VEHIC.
+					#		 UNEQ 1 FOR OTHER VEHICLE.
+		CAF	BIT4		# 80 MS
+		TC	WAITLIST
+		EBANK=	TFF
+		2CADR	TICKTEST
+
+		RELINT
+V82GOFLP	CAF	TFFBANK		# MAJOR RECYCLE LOOP ENTRY
+		TS	EBANK
+		CAF	ZERO
+		TS	V82FLAGS	# ZERO FLAGS FOR TICKTEST, INHIBITS
+					# DECREMENTING OF TFF AND -TPER.
+		CAF	PRIO7
+		TC	FINDVAC		# V82GOFF1 WILL EXECUTE STATE VECTOR
+# Page 516
+		EBANK=	TFF		# UPDATE AND ORBIT CALCULATIONS FOR
+		2CADR	V82GOFF1	# SELECTED VEHICLE ABOUT PROPER BODY.
+
+		RELINT
+V82STALL	CAF	THREE		# STALL IN THIS LOOP AND WITHOLD V 16 N 44
+		MASK	V82FLAGS	# UNTIL STATE VECTOR UPDATE SETS ONE OF
+		CCS	A		# OUR FLAG BITS.
+		TC	FLAGGON		# EXIT FROM STALL LOOP.
+		CAF	1SEC
+		TC	BANKCALL
+		CADR	DELAYJOB
+		TC	V82STALL
+
+FLAGGON		CAF	V16N44		# MONITOR HAPO,HPER,TFF.
+		TC	BANKCALL
+		CADR	GOXDSPF
+		TC	B5OFF		# TERM THIS TELLS TICKTEST TO KILL ITSELF
+		TC	B5OFF		# PROCEED  DITTO
+		TC	V82GOFLP	# RECYCLE  RECOMPUTE STATE VECT + DISPLAY
+
+OPTIONVN	VN	0412
+V16N44		VN	1644
+TFFBANK		ECADR	TFF
+
+V82GOFF1	TC	INTPRET
+		RTB
+			LOADTIME
+		STORE	TDEC1		# TIME FOR STATE VECTOR UPDATE.
+		STORE	TSTART82	# TIME FOR INTERNAL USE.
+		EXIT
+		CS	OPTIONX +1	# 1 FOR THIS VEHICLE, NOT 1 FOR OTHER
+		AD	ONE
+		EXTEND
+		BZF	THISSHIP
+OTHSHIP		TC	INTPRET
+		CALL			# CALL STATE VECTOR UPDATE FOR OTHER SHIP.
+			OTHPREC
+BOTHSHIP	VLOAD			# MOVE RESULTS INTO TFFCONIC STORAGE AREAS
+			RATT		# TO BE CALLED BY SR30.1.
+		STOVL	RONE		# RATT AT (-29)M FOR EARTH OR MOON
+			VATT
+		STORE	VONE		# VATT AT (-7)M/CS FOR EARTH OR MOON
+		DLOAD*
+			1/RTMUE,2	# X2 IS 0 FOR EARTH CENTERED STATE VEC
+			                # HG remark: In Comanche055 scan this line (5324) looks pretty much like 1/RTMUF.2 can not decide, leave it 
+			                # as it is in start source
+		STORE	TFF/RTMU	# X2 IS 2 FOR MOON
+		DLOAD*			# AS LEFT BY THISPREC OR OTHPREC.
+			MINPERE,2
+		STORE	HPERMIN		# TFFRTMU, HPERMIN, AND RPADTEM ARE ALL
+		SLOAD	BHIZ		# EARTH/MOON PARAMETERS AS SET HERE.
+# Page 517
+			X2
+			EARTHPAD
+		GOTO
+			MOONPAD
+THISSHIP	TC	INTPRET
+		CALL			# CALL STATE VECTOR UPDATE FOR THIS SHIP.
+			THISPREC
+		GOTO
+			BOTHSHIP
+
+# THE FOLLOWING CONSTANTS ARE PAIRWISE INDEXED.  DO NOT SEPARATE PAIRS.
+
+1/RTMUM		2DEC*	.45162595 E-4 B14*
+1/RTMUE		2DEC*	.50087529 E-5 B17*
+
+MINPERM		2DEC	10668 B-27	# 35 KFT MIN PERIGEE HEIGHT FOR MOON(-27)M
+MINPERE		2DEC	91440 B-29	# 300 KFT (-29)M FOR EARTH
+
+EARTHPAD	DLOAD	CLRGO		# PAD 37-B RADIUS.  SCALED AT (-29)M
+			RPAD
+			V82EMFLG	# INDICATE EARTH SCALING FOR SR30.1
+			BOTHPAD
+
+MOONPAD		VLOAD	ABVAL		# COMPUTE MOON PAD RADIUS FROM RLS VECTOR.
+			RLS		# SCALED AT (-27)M.
+		SET
+			V82EMFLG	# INDICATE MOON SCALING FOR SR30.1
+BOTHPAD		STCALL	RPADTEM
+			SR30.1		# CALCULATE ORBITAL PARAMETERS
+		EXIT	
+		CA	MODREG		# ARE WE IN P00
+		EXTEND
+		BZF	CANDEL		# YES, DO DELRSPL
+SPLRET1		TC	INTPRET	
+		RTB	DSU
+			LOADTIME
+			TSTART82	# PRESENT TIME -- TIME V82GOFF1 BEGAN
+		STORE	TSTART82	#                 SAVE IT
+		DLOAD	BZE		# SR30.1 SETS -TPER=0 IF HPER L/
+			-TPER		# HPERMIN (300 OR 35) KFT.
+			TICKTFF		# (-TPER = 0)
+TICKTPER	DLOAD	DAD		# (-TPER NON ZERO) TFF WAS NOT COMPUTED.
+			-TPER		# BUT WAS SET TO 59M59S.  DON'T DICK TFF, DO
+			TSTART82	# TICK -TPER.  DISPLAY BOTH.
+		STORE	-TPER           # -TPER CORRECTED FOR TIME SINCE V82GOFF1
+		EXIT                    # BEGAN.
+			
+# Page 518
+		CAF	BIT1
+		TS	V82FLAGS	# INFORMS TICKTEST TO INCREMENT ONLY -TPER
+		TC	ENDOFJOB
+		
+TICKTFF		DLOAD	DAD		# (-TPER=0) TFF WAS COMPUTED.  TICK TFF.
+			TFF		# DO NOT TICK -TPER.  DISPLAY TFF, BUT NOT
+			TSTART82	# -TPER
+		STORE	TFF		# TFF CORRECTED FOR TIME SINCE V82GOFF1
+		EXIT			# BEGAN.
+		CAF	BIT2
+		TS	V82FLAGS	# INFORMS TICKTEST TO INCREMENT ONLY TFF.
+		TC	ENDOFJOB
+
+TICKTEST	CAF	BIT5		# THIS WAITLIST PROGRAM PERPETUATES ITSELF
+		MASK	EXTVBACT	# ONCE A SEC UNTIL BIT 5 OF EXTVBACT =0.
+		CCS	A
+		TC	DOTICK
+		CAF	PRIO25
+		TC	NOVAC		# TERMINATE V 82.  CAN'T CALL ENDEXT IN RUPT.
+		EBANK=	EXTVBACT
+		2CADR	ENDEXT
+
+		TC	TASKOVER
+DOTICK		CAF	1SEC		# RE-REQUEST TICKTEST.
+		TC	WAITLIST
+		EBANK=	TFF
+		2CADR	TICKTEST
+
+		CAF	THREE
+		MASK	V82FLAGS
+		INDEX	A
+		TC	+1
+		TC	TASKOVER	# IF NO FLAGBITS SET DONT' CHANGE TFF OR
+					# -TPER, BUT CONTINUE LOOP.
+		TC	TPERTICK	# ONLY BIT 1 SET.  INCR -TPER BY 1 SEC.
+TFFTICK		CAF	1SEC		# ONLY BIT 2 SET.  INCR TFF BY 1 SEC.
+		TS	L
+		CAF	ZERO
+		DAS	TFF
+		TC	TASKOVER
+TPERTICK	CAF	1SEC
+		TS	L
+		CAF	ZERO
+		DAS	-TPER
+		TC	TASKOVER
+# Page 519
+V82GON		EXIT			# AVERAGE G ON.  USE CURRENT STATE VECTOR
+					# FOR ORBITAL PARAMETER CALCULATIONS.
+		CAF	PRIO7		# LESS THAN LAMBERT
+		TC	FINDVAC		# V82GON1 WILL PERFORM ORBIT CALCULATIONS
+		EBANK=	TFF		# ABOUT PROPER BODY APPROX ONCE PER SEC.
+		2CADR	V82GON1
+
+		RELINT
+		CCS	NEWJOB		# WITHOLD V16 N44 UNTIL FIRST ORBIT CALC
+		TC	CHANG1		# IS DONE.  NOTE:  V82GON1 (PRIO7, FINDVAC
+					# JOB) IS COMPLETED BEFORE V82GON (PRIO7,
+					# NOVAC JOB).
+V82REDSP	CAF	V16N44		# MONITOR HAPO, HPER, TFF
+		TC	BANKCALL
+		CADR	GOXDSPF
+		TC	B5OFF		# TERM THIS TELLS V82GON1 TO KILL ITSELF.
+		TC	B5OFF		# PROC DITTO.
+		TC	V82REDSP	# RECYCLE
+
+V82GON1		TC	INTPRET		# THIS EXEC PROGRAM PERPETUATES ITSELF
+					# ONCE A SEC UNTIL BIT 5 OF EXTVBACT =0.
+		VLOAD	GOTO		# HOLDS OFF CCS NEWJOB BETWEEN RN AND
+			RN		# VN FETCH SO RN, VN ARE FROM SAME
+			NEXTLINE	# STATE VECTOR UPDATE.
+NEXTLINE	STOVL	RONE		# RN AT (-29)M FOR EARTH OR MOON
+			VN
+		STORE	VONE		# VN AT (-7)M/CS FOR EARTH OR MOON
+		BON	GOTO
+			AMOONFLG	# FLAG INDICATES BODY ABOUT WHICH ORBITAL
+			MOONGON		# CALCULATIONS ARE TO BE PERFORMED.
+			EARTHGON	# IF SET - MOON, IF RESET - EARTH.
+
+MOONGON		SET	DLOAD
+			V82EMFLG	# INDICATE MOON SCALING FOR SR30.1
+			1/RTMUM		# LUNAR PARAMETERS LOADED HERE FOR SR30.1
+		STODL	TFF/RTMU
+			MINPERM
+		STOVL	HPERMIN
+			RLS		# SCALED AT (-27)M
+		ABVAL	GOTO
+			V82GON2
+EARTHGON	CLEAR	DLOAD
+			V82EMFLG	# INDICATE EARTH SCALING FOR SR30.1
+			1/RTMUE		# EARTH PARAMETERS LOADED HERE FOR SR30.1
+		STODL	TFF/RTMU
+			MINPERE
+		STODL	HPERMIN
+			RPAD
+V82GON2		STCALL	RPADTEM		# COMMON CODE FOR EARTH & MOON.
+			SR30.1
+# Page 520
+		EXIT
+		TC	CHECKMM
+		DEC	11
+		TC	V82GON3		# NOT IN MODE 11.
+CANDEL		TC	INTPRET		# IN MODE 11 OR 00
+		CALL
+			INTSTALL	# DELRSPL DOES INTWAKE
+		DLOAD	CALL
+			TFF
+			DELRSPL		# RETURN IS TO NEXT LINE (SPLRET).
+SPLRET		EXIT
+
+		CA	MODREG
+		EXTEND
+		BZF	SPLRET1
+V82GON3		CAF	BIT5
+		MASK	EXTVBACT	# SEE IF ASTRONAUT HAS SIGNALLED TERMINATE
+		EXTEND
+		BZF	ENDEXT		# YES, TERMINATE VB 82 LOOP
+		CAF	1SEC
+		TC	BANKCALL	# WAIT ONE SECOND BEFORE REPEATING
+		CADR	DELAYJOB	# ORBITAL PARAMETER COMPUTATION.
+		TC	V82GON1
+
+# Page 521
+# SUBROUTINE NAME: SR30.1
+# MOD NO: 0								DATE: 16 FEB 67
+# MOD BY: R. R. BAIRNSFATHER						LOG SECTION: R32
+# MOD NO: 1	MOD BY: R. R. BAIRNSFATHER	DATE: 11 APR 67		SR30.1 CHANGED TO ALLOW MONITOR OPERN
+# MOD NO: 2	MOD BY: R. R. BAIRNSFATHER	DATE: 14 APR 67		ADD OVFL CK FOR RAPO
+# MOD NO: 3	MOD BY ALONSO			DATE: 11 DEC 67		SUBROUTINE REWRITTEN
+# MOD NO: 4	MOD BY ALONSO			DATE: 26 MAR 68		PROG MOD TO HANDLE DIF EARTH/MOON SCALE
+# MOD NO: 5	MOD BY: R. R. BAIRNSFATHER	DATE: 6 AUG 68		OVFL CK FOR HAPO & HPER. VOIDS MOD #2.
+#
+# NEW FUNCTIONAL DESCRIPTION:  ORBITAL PARAMETERS DISPLAY FOR NOUNS 32 AND 44.
+# SR30.1 CALLS TFFCONMU AND TFFRP/RA TO CALCULATE RPER (PERIGEE RADIUS),
+# RAPO (APOGEE RADIUS), HPER (PERIGEE HEIGHT ABOVE LAUNCH PAD OR LUNAR
+# LANDING SITE), HAPO (APOGEE HEIGHT AS ABOVE), TPER (TIME TO PERIGEE),
+# TFF (TIME TO INTERSECT 300 KFT ABOVE PAD OR 35KFT ABOVE LANDING SITE).
+# IF HPER IS GREATER THAN OR EQUAL TO HPERMIN, CALCULATES TPER AND STORES
+# NEGATIVE.  IN -TPER.  OTHERWISE STORES +0 IN -TPER.  WHENEVER TPER IS
+# CALCULATED, TFF IS NOT COMPUTABLE AND DEFAULTS TO -59MIN 59SEC.  IF HAPO
+# WOULD EXCEED 9999.9 NM, IT IS LIMITED TO THAT VALUE FOR DISPLAY.
+#
+# ADDENDUM:	HAPO AND HPER SHOULD BE CHANGED TO READ HAPOX AND HPERX IN THE
+#		ABOVE REMARKS.
+#
+# CALLING SEQUENCE:	CALL
+#				SR30.1
+#
+# SUBROUTINES CALLED:	TFFCONMU, TFFRP/RA, CALCTPER, CALCTFF
+#
+# NORMAL EXIT MODE:	CALLING LINE +1 (STILL IN INTERPRETIVE MODE)
+#
+# ALARMS:	NONE
+#
+# OUTPUT:       RAPO	(-29) M EARTH	APOGEE RADIUS	EARTH CENTERED COORD.
+#			(-27) M MOON			MOON CENTERED COORD.
+#		RPER	(-29) M EARTH	PERIGEE RADIUS	EARTH CENTERED COORD.
+#			(-27) M MOON			MOON CENTERED COORD.
+#		HAPOX	(-29) M		APOGEE ALTITUDE ABOVE PAD OR LAND. SITE MAX VALUE LIMITED TO 9999.9 NM.
+#		HPERX	(-29) M		PERIGEE ALT. ABOVE PAD OR LAND. SITE    MAX VALUE LIMITED TO 9999.9 NM.
+#		TFF	(-28) CS	TIME TO 300KFT OR 35KFT ALTITUDE
+#		-TPER	(-28) CS	TIME TO PERIGEE
+#
+# ERASABLE INITIALIZATION REQUIRED -
+#	TFF/RTMU	(+17) EARTH	RECIPROCAL OF PROPER GRAV CONSTANT FOR
+#			(+14) MOON	EARTH OR MOON = 1/SQRT(MU).
+#	RONE		(-29) M		STATE VECTOR
+#	VONE		(-7)  M/CS	STATE VECTOR
+#	RPADTEM		(-29) M EARTH	RADIUS OF LAUNCH PAD OR LUNAR LANDING
+#			(-27) M MOON	SITE.
+#	HPERMIN		(-29) M EARTH	(300 OR 35) KFT MINIMUM PERIGEE ALTITUDE
+#			(-27) M MOON	ABOVE LAUNCH PAD OR LUNAR LANDING SITE.
+#	V82EMFLG	(INT SW BIT)	RESET FOR EARTH, SET FOR MOON.
+#
+# DEBRIS:	QPRET, PDL, S2
+
+# Page 522
+		COUNT*	$$/SR30S
+
+SR30.1		SETPD	STQ		# INITIALIZE PUSHDOWN LIST.
+			0
+			S2
+					# SR30.1 INPUT:	RONE AT (-29)M EARTH/MOON
+					#		VONE AT (-7)M/CS
+					# TFFCONMU, TFFRP/RA, CALCTPER, AND CALCTFF
+					# CALLS REQUIRE:
+					# EARTH CENTERED (NO RESCALING REQUIRED)
+					#	RONE SCALED TO B-29 M
+					#	VONE SCALED TO B-7 M/CS
+					# MOON CENTERED (RESCALING REQUIRED)
+					#	RONE SCALED TO B-27 M
+					#	VONE SCALED TO B-5 M/CS
+		BOFF	VLOAD
+			V82EMFLG	# OFF FOR EARTH, ON FOR MOON.
+			TFFCALLS
+			RONE
+		VSL2
+		STOVL	RONE
+			VONE
+		VSL2
+		STORE	VONE
+TFFCALLS	CALL
+			TFFCONMU
+		CALL			# TFFRP/RA COMPUTES RAPO,RPER.
+			TFFRP/RA
+					# RETURNS WITH RAPO IN D(MPAC).
+		DSU
+			RPADTEM
+		BOFF	SR2R		# NEED HAPO AT (-29)M FOR DISPLAY.
+					# IF MOON CENTERED, RESCALE FROM (-27)M.
+					# IF EARTH CENTERED ALREADY AT (-29)M.
+			V82EMFLG        # OFF FOR EARTH, ON FOR MOON.
+			+1
+		CALL			# IF HAPO > MAXNM, SET HAPO =9999.9 NM.
+			MAXCHK		# OTHERWISE STORE (RAPO-RPADTEM) IN HAPO.
+STORHAPO	STODL	HAPOX
+			RPER
+		DSU
+			RPADTEM		# GIVES HPER AT (-29)M EARTH, (-27)M MOON.
+		STORE	MPAC +4		# SAVE THIS FOR COMPARISON TO HPERMIN.
+		BOFF	SR2R		# NEED HPER AT (-29)M FOR DISPLAY.
+					# IF MOON CENTERED, RESCALE FROM (-27)M.
+					# IF EARTH CENTERED ALREADY AT (-29)M.
+			V82EMFLG	# OFF FOR EARTH, ON FOR MOON.
+			+1
+		CALL			# IF HPER > MAXNM, SET HPER = 9999.9 NM.
+			MAXCHK
+# Page 523
+STORHPER	STODL	HPERX		# STORE (RPER - RPADTEM) INTO HPERX.
+			MPAC +4
+		DSU	BPL		# HPERMIN AT (-29)M FOR EARTH, (-27)M MOON
+			HPERMIN		# IF HPER L/ HPERMIN (300 OR 35) KFT,
+			DOTPER		# THEN ZERO INTO -TPER.
+		DLOAD	GOTO		# OTHERWISE CALCULATE TPER.
+			HI6ZEROS
+			SKIPTPER
+DOTPER		DLOAD	CALL
+			RPER
+			CALCTPER
+		DCOMP			# TPER IS PUT NEG INTO -TPER.
+SKIPTPER	STODL	-TPER
+			HPERMIN		# HPERMIN AT (-29)M FOR EARTH, (-27)M MOON
+		DAD	CALL
+			RPADTEM		# RPADTEM AT (-29)M FOR EARTH, (-27)M MOON
+			CALCTFF		# GIVES 59M59S FOR TFF IF RPER G/
+		DCOMP			# HPERMIN + RPADTEM.  (TPER WAS NON ZERO)
+		STCALL	TFF		# OTHERWISE COMPUTES TFF.	(GOTO)
+			S2
+
+MAXCHK		DSU	BPL		# IF C(MPAC) > 9999.9 NM. MPAC = 9999.9 NM.
+			MAXNM
+			+3		# OTHERWISE C(MPAC) = B(MPAC).
+		DAD	RVQ
+			MAXNM
+ +3		DLOAD	RVQ		# (USED BY P30 - P37 ALSO)
+ 			MAXNM
+
+MAXNM		2OCT	0106505603
+
+# Page 524
+
+# There is no source code on this page --- HG 2009
diff --git a/R31.s b/R31.s
new file mode 100644
index 0000000..3d11ea5
--- /dev/null
+++ b/R31.s
@@ -0,0 +1,290 @@
+# Copyright:	Public domain.
+# Filename:	R31.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 505-510
+# Contact:      Onno Hommes <ohommes@cmu.edu>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-11 OH	Batch 2 Assignment Comanche Transcription
+#		2009-05-20 RSB	Corrected INSTALL -> INTSTALL
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+
+# Page 505
+		BANK	34
+		SETLOC	R31
+		BANK
+
+		COUNT*	$$/R31
+
+R31CALL		CAF	PRIO3
+		TC	FINDVAC
+		EBANK=	SUBEXIT
+		2CADR	V83CALL
+
+DSPDELAY	CAF	1SEC
+		TC	BANKCALL
+		CADR	DELAYJOB
+		CA	EXTVBACT
+		MASK	BIT12
+		EXTEND
+		BZF	DSPDELAY
+
+DISPN5X		CA	FLAGWRD9	# TEST R31FLAG (IN SUNDANCE R31FLAG WILL
+		MASK	BIT4		# 	ALWAYS BE SET AS R34 DOES NOT EXIST.
+		EXTEND
+		BZF	+3
+		CAF	V16N54		# R31	USE NOUN 54
+		TC	+2
+		CAF	V16N53		# R34	USE NOUN 53
+		TC	BANKCALL
+		CADR	GOMARKF
+		TC	B5OFF
+		TC	B5OFF
+		TCF	DISPN5X
+
+V83		TC	INTPRET
+		GOTO
+			HAVEBASE	# INTEG STATE VECTORS
+V83CALL		TC	INTPRET
+		GOTO
+			STATEXTP	# EXTRAPOLATE STATE VECTORS
+COMPDISP	VLOAD	VSU
+			RATT
+			RONE
+		PUSH	ABVAL		# RATT-RONE TO 0D	PD= 6
+		STORE	RANGE		# METERS B-29
+		NORM	VLOAD
+			X1		# RATT-RONE		PD= 0
+		VSR1
+		VSL*	UNIT
+			0,1
+		PDVL	VSU		# UNIT(LOS) TO 0D	PD= 6
+# Page 506
+			VATT
+			VONE
+		DOT			# (VATT-VONE).UNIT(LOS)	PD= 0
+		SL1
+		STCALL	RRATE		# RANGE RATE M/CS B-7
+			CDUTRIG		# TO INITIALIZE FOR *NBSM*
+		CALL
+			R34LOS		# NOTE.  PDL MUST = 0.
+R34ANG		VLOAD	UNIT
+			RONE
+		PDVL			# UR TO 0D		PD= 6
+			THISAXIS	# UNITX FOR CM, UNITZ FOR LM
+		BON	VLOAD		# CHK R31FLAG.  ON=R31 THETA, OFF=R34 PHI
+			R31FLAG
+			+2		# R31-THETA
+			12D
+		CALL	
+			*NBSM*
+		VXM	PUSH		# UXORZ TO 6D		PD=12D
+			REFSMMAT
+		VPROJ	VSL2
+			0D
+		BVSU	UNIT
+			6D
+		PDVL	VXV		# UP/2 TO 12D		PD=18D
+			RONE
+			VONE
+		UNIT	VXV
+			RONE
+		DOT	PDVL		# SIGN TO 12D, UP/2 TO MPAC	PD=18D
+			12D
+		VSL1	DOT		# UP.UXORZ
+			6D
+		SIGN	SL1
+			12D
+		ACOS
+		STOVL	RTHETA
+			RONE
+		DOT	BPL
+			6D
+			+5
+		DLOAD	BDSU		# IF UXORZ.R NEG, RTHETA = 1 - RTHETA
+			RTHETA
+			DPPOSMAX
+		STORE	RTHETA		# RTHETA BETWEEN 0 AND 1 REV.
+		EXIT
+		CAF	BIT5		# HAVE WE BEEN ANSWERED
+		MASK	EXTVBACT
+		EXTEND
+		BZF	ENDEXT		# YES, DIE
+# Page 507
+		CS	EXTVBACT
+		MASK	BIT12
+		ADS	EXTVBACT
+		
+		TCF	V83
+V16N54		VN	1654
+V16N53		VN	1653
+
+# Page 508
+# STATEXTP DOES AN INITIAL PRECISION EXTRAPOLATION OF THE
+# LEM STATE VECTOR TO PRESENT TIME OR TO PIPTIME IF AV G.
+# IS ON AND SAVES AS BASE VECTOR. IF AV G IS ON RN + VN
+# ARE USED AS THE CM STATE VECTOR AND THE INITIAL R RDOT
+# RTHETA ARE COMPUTED WITH NO FURTHER INTEGRATION. IF AV
+# G IS OFF A PRECISION EXTRAPOLATION IS MADE OF THE CM
+# STATE VECTOR TO PRESENT TIME AND.....
+#
+#   THE CM + LM STATE VECTORS ARE INTEGRATED TO PRES TIME
+#   USING PRECISION OR CONIC AS SURFFLAG IS SET OR CLEAR.
+#
+#   IF AV G IS ON THEN
+#     SUBSEQUENT PASSES WILL PROVIDE
+#     USE OF RN + VN AS CM STATE VECTOR AND THE LM STATE
+#     VECTOR WILL BE PRECISION INTEGRATED USING LEMPREC
+#
+#   IF SURFFLAG IS SET.
+#     CM STATE VECTOR RONE VONE + LM STATE VECTOR RATT
+#     VATT ARE USED IN COMPUTING R RDOT RTHETA.
+#
+
+STATEXTP	RTB	BOF		# INITIAL INTEGRATION
+			LOADTIME
+			V37FLAG
+			+3		# AV G OFF, USE PRES TIME
+		CALL
+			GETRVN		#      ON,  USE RN VN PIPTIME
+		STORE	BASETIME	# PRES TIME OR PIPTIME
+		STCALL	TDEC1
+			LEMPREC
+		VLOAD			# BASE VECTOR, LM
+			RATT1
+		STOVL	BASEOTP		#   POS.
+			VATT1
+		STORE	BASEOTV		#   VEL.
+		BON	DLOAD
+			V37FLAG
+			COMPDISP	# COMPUTE R RDOT RTHETA FROM
+					# RONE(RN) VONE(VN) RATT+VATT(LEMPREC)
+			TAT
+		STCALL	TDEC1
+			CSMPREC
+		VLOAD			# BASE VECTOR, CM
+			RATT1
+		STOVL	BASETHP		#  POS.
+			VATT1
+		STORE	BASETHV		#  VEL.
+HAVEBASE	BON	RTB		# SUBSEQUENT INTEGRATIONS
+			V37FLAG
+			GETRVN5
+			LOADTIME
+		STCALL	TDEC1		# AV G OFF, SET INTEG, OF CM
+			INTSTALL
+		VLOAD	CLEAR
+			BASETHP
+# Page 509
+			MOONFLAG
+		STOVL	RCV
+			BASETHV
+		STODL	VCV
+			BASETIME
+		BOF	SET		# GET APPROPRIATE MOONFLAG SETTING
+			MOONTHIS
+			+2
+			MOONFLAG
+		CLEAR
+			INTYPFLG
+		BON	SET
+			SURFFLAG
+			+2		# PREC. IF LM DOWN
+			INTYPFLG	# CONIC IF LM NOT DOWN
+		STCALL	TET
+			INTEGRVS	# INTEGRATION --- AT LAST ---
+		VLOAD
+			RATT
+		STOVL	RONE
+			VATT
+		STODL	VONE		# GET SET FOR CONIC EXTRAP., OTHER.
+			TAT
+		BON	CALL
+			SURFFLAG
+			GETRVN6		# LEMPREC IF LM DOWN
+			INTSTALL	# ..CONIC IF NOT DOWN
+		SET
+			INTYPFLG
+OTHINT		STORE	TDEC1		# ENTERED IF AV G ON TO INTEG LM
+		VLOAD	CLEAR
+			BASEOTP
+			MOONFLAG
+		STOVL	RCV
+			BASEOTV
+		STODL	VCV
+			BASETIME
+		BOF	SET
+			MOONTHIS
+			+2
+			MOONFLAG
+		STCALL	TET
+			INTEGRVS
+		GOTO
+			COMPDISP	# COMPUTE R RDOT RTHETA		
+GETRVN5		CALL			# AV G ON
+			GETRVN
+		BON	CALL
+			SURFFLAG
+			GETRVN6		# LM DOWN, LMPREC
+# Page 510
+			INTSTALL
+		CLEAR	GOTO
+			INTYPFLG
+			OTHINT
+GETRVN6		STCALL	TDEC1
+			LEMPREC
+		GOTO
+			COMPDISP	# COMPUTE R RDOT RTHETA
+GETRVN		STQ
+			0D
+		VLOAD	GOTO		# AV G ON, RONE = RN VONE = VN
+			RN		#  AND USE PIPTIME
+			+1
+		STCALL	RONE
+			+1
+		VLOAD	GOTO
+			VN
+			+1
+		STODL	VONE
+			PIPTIME
+		GOTO
+			0D	
+		SETLOC	R34
+		BANK
+R34LOS		EXIT
+		CA	CDUS
+		INDEX	FIXLOC
+		TS	9D
+		CA	CDUT
+		INDEX	FIXLOC
+		TS	11D
+		CA	FIXLOC
+		AD	SIX
+		COM
+		INDEX	FIXLOC
+		TS	X1
+		TC	INTPRET
+		CALL	
+			SXTNB
+		STCALL	12D
+			R34ANG
diff --git a/R60_62.s b/R60_62.s
new file mode 100644
index 0000000..f436b2b
--- /dev/null
+++ b/R60_62.s
@@ -0,0 +1,387 @@
+# Copyright:	Public domain.
+# Filename:	R60_62.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:	390-398
+# Mod history:	2009-05-09 RSB	Adapted 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 390
+		BANK	34
+		SETLOC	MANUVER
+		BANK
+		
+		EBANK=	TEMPR60
+		
+		COUNT	27/R60
+		
+# CONFORMS TO GSOP CHAPTER FOUR REVISION LOGIC 09	JAN 18, 1968
+
+R60CSM		TC	MAKECADR
+		TS	TEMPR60
+
+# INSERT PRIODSP CHECK WITH R22 (V06N49) WITH JENNINGS BRODEUR		
+		
+REDOMANN	CAF	BIT6
+		MASK	FLAGWRD5	# IS 3-AXIS FLAG SET
+		CCS	A
+		TCF	TOBALL		# YES
+		TC	INTPRET
+		CALL
+			VECPOINT	# TO COMPUTE FINAL ANGLES
+		STORE	CPHI		# STORE FINAL ANGLES -- CPHI, CTHETA, CPSI
+		EXIT
+		
+TOBALL		CAF	V06N18
+		TC	BANKCALL
+		CADR	GOPERF2R	# DISPLAY PLEASE PERFORM AUTO MANEUVER
+		TC	R61TEST
+		TC	REDOMANC	# PROCEED
+		TCF	ENDMANU1	# ENTER I.E., FINISHED WITH R60
+		
+		TC	CHKLINUS	# TO CHECK FOR PRIORITY DISPLAYS
+		TC	ENDOFJOB
+		
+REDOMANC	CAF	BIT6
+		MASK	FLAGWRD5	# IS 3-AXIS FLAG SET
+		CCS	A
+		TCF	TOBALLC		# YES
+		TC	INTPRET
+		CALL
+			VECPOINT	# TO COMPUTE FINAL ANGLES
+		STORE	CPHI		# STORE ANGLES
+		EXIT
+		
+TOBALLC		CAF	PRIO30		# IS MODE AUTO AND CTL GNC
+# Page 391
+		EXTEND
+		RXOR	CHAN31
+		MASK	13,14,15
+		EXTEND
+		BZF	+2		# AUTO, NON-FLASH N18
+		TCF	TOBALL		# NOT AUTO
+		
+		CAF	V06N18		# STATIC UP NON-FLASHING V06 N18
+		TC	BANKCALL
+		CADR	GODSPR
+		TC	CHKLINUS
+		
+STARTMNV	TC	BANKCALL
+		CADR	GOMANUR
+ENDMANUV	TCF	TOBALL		# FINISHED MANEUVER.
+
+ENDMANU1	TC	DOWNFLAG	# RESET 3-AXIS FLAG
+		ADRES	3AXISFLG	# BIT 6 FLAG 5
+		CAE	TEMPR60
+		TC	BANKJUMP
+		
+CHKLINUS	CS	FLAGWRD4
+		MASK	BIT12		# IS PRIORITY DISPLAY FLAG SET?
+		CCS	A
+		TC	Q		# NO -- EXIT
+		CA	Q
+		TS	MPAC +2		# SAVE RETURN
+		CS	THREE		# OBTAIN LOCATION FOR RESTART
+		AD	BUF2		# HOLD Q OF LAST DISPLAY
+		TS	TBASE1
+		
+		TC	PHASCHNG
+		OCT	71		# 1.7SPOT FOR RELINUS
+		
+		CAF	BIT7
+		TC	LINUS		# GO SET BITS FOR PRIORITY DISPLAY
+		TC	MPAC +2
+		
+RELINUS		CAF	BIT5		# IS TRACK FLAG ON
+		MASK	FLAGWRD1
+		EXTEND
+		BZF	GOREDO20	# NO
+		
+		TC	UPFLAG
+		ADRES	PDSPFLAG	# R60 PRIODSP FLAG
+		
+		TC	UPFLAG
+		ADRES	TARG1FLG	# FOR R52
+		
+		CAF	ZERO		# RESET TO ZERO, SINCE
+# Page 392
+		TS	OPTIND		# OPTIND WAS SET TO -1 BY V379
+		
+		CAF	PRIO14		# RESTORE ORIGINAL PRIORITY
+		TC	PRIOCHNG
+		
+		TC	TBASE1
+		
+GOREDO20	TC	PHASCHNG
+		OCT	111		# 1.11 FOR PIKUP20
+		
+		TC 	ENDOFJOB
+		
+R61TEST		CA	MODREG		# ARE WE IN P00.  IF YES THIS MUST BE
+		EXTEND			#	VERB49 OR VERB89 SO DO ENDEXT.
+		BZF	ENDMANU1	# RESET 3-AXIS & RETURN.  USER DOES ENDEXT
+		CA	FLAGWRD4	# ARE WE IN R61 (P20)
+		MASK	BIT12
+		EXTEND
+		BZF	GOTOP00H	# NO
+		TC	GOTOV56		# YES
+				
+BIT14+7		OCT	20100
+V06N18		VN	0618
+
+# Page 393
+# PROGRAM DESCRIPTION -- VECPOINT
+#
+# THIS INTERPRETIVE SUBROUTINE MAY BE USED TO POINT A SPACECRAFT AXIS IN A DESIRED DIRECTION.  THE AXIS
+# TO BE POINTED MUST APPEAR AS A HALF UNIT DOUBLE PRECISION VECTOR IN SUCCESSIVE LOCATIONS OF ERASABLE MEMORY
+# BEGINNING WITH THE LOCATION CALLED SCAXIS.  THE COMPONENTS OF THIS VECTOR ARE GIVEN IN SPACECRAFT COORDINATES.
+# THE DIRECTION IN WHICH THIS AXIS IS TO BE POINTED MUST APPEAR AS A HALF UNIT DOUBLE PRECISION VECTOR IN
+# SUCCESSIVE LOCATIONS OF ERASABLE MEMORY BEGINNING WITH THE ADDRESS CALLED POINTVSM.  THE COMPONENTS OF THIS
+# VECTOR ARE GIVEN IN STABLE MEMBER COORDINATES.  WITH THIS INFORMTION VECPOINT COMPUTES A SET OF THREE GIMBAL
+# ANGLES (2'S COMPLEMENT) CORRESPONDING TO THE CROSS-PRODUCT ROTATION BETWEEN SCAXIS AND POINTVSM AND STORES THEM
+# IN T(MPAC) BEFORE RETURNING TO THE CALLER.
+#
+# THIS ROTATION, HOWEVER, MAY BRING THE S/C INTO GIMBAL LOCK.  WHEN POINTING A VECTOR IN THE Y-Z PLANE,
+# THE TRANSPONDER AXIS, OR THE AOT FOR THE LEM, THE PROGRAM WILL CORRECT THIS PROGLEM BY ROTATING THE CROSS-
+# PRODUCT ATTITUDE ABOUT POINTVSM BY A FIXED AMOUNT SUFFICIENT TO ROTATE THE DESIRED S/C ATTITUDE OUT OF GIMBAL
+# LOCK.  IF THE AXIS TO BE POINTED IS MORE THAN 40.6 DEGREES BUT LESS THAN 60.5 DEG FROM THE +X (OR -X) AXIS,
+# THE ADDITIONAL ROTATION TO AVOID GIMBAL LOCK IS 35 DEGREES.  IF THE AXIS IS MORE THAN 60.5 DEGREES FROM +X (OR -X)
+# THE ADDITIONAL ROTATION IS 35 DEGREES.  THE GIMBAL ANGLES CORRESPONDING TO THIS ATTITUDE ARE THEN COMPUTED AND
+# STORED AS 2'S COMPLEMENT ANGLES N T(MPAC) BEFORE RETURNING TO THE CALLER.
+#
+# WHEN POINTING THE X-AXIS, OR THE THRUST VECTOR, OR ANY VECTOR WITHIN 40.6 DEG OF THE X-AXIS, VECPOINT
+# CANNOT CORRECT FOR A CROSS-PRODUCT ROTATION INTO GIMBAL LOCK.  IN THIS CASE A PLATFORM REALIGNMENT WOULD BE
+# REQUIRED TO POINT THE VECTOR IN THE DESIRED DIRECTION.  AT PRESENT NO INDICATION IS GIVEN FOR THIS SITUATION
+# EXCEPT THAT THE FINAL MIDDLE GIMBAL ANGLE IN MPAC +2 IS GREATER THAN 59 DEGREES.
+#
+# CALLING SEQUENCE
+#
+#	1)	LOAD SCAXIS, POINTVSM
+#	2)	CALL
+#			VECPOINT
+#
+# RETURNS WITH
+#
+#	1)	DESIRED OUTER GIMBAL ANGLE IN MPAC
+#	2)	DESIRED INNER GIMBAL ANGLE IN MPAC +1
+#	3)	DESIRED MIDDLE GIMBAL ANGLE IN MPAC +2
+#
+# ERASABLES USED --
+#
+#	1)	SCAXIS		6
+#	2)	POINTVSM	6
+#	3)	MIS		18
+#	4)	DEL		18
+#	5)	COF		6
+#	6)	VECQTEMP	1
+#	7)	ALL OF VAC AREA	43
+#
+#			TOTAL	99
+
+		SETLOC	VECPT
+		BANK
+# Page 394
+		EBANK=	BCDU
+		
+		COUNT	27/VECPT
+		
+VECPOINT	STQ	BOV		# SAVE RETURN ADDRESS
+			VECQTEMP
+			VECLEAR		# AND CLEAR OVFIND
+VECLEAR		AXC,2	RTB
+			MIS		# READ THE PRESENT CDU ANGLES AND
+			READCDUK	# STORE THEM IN PD25, 26, 27
+		STCALL	25D
+			CDUTODCM	# S/C AXES TO STABLE MEMBER AXES (MIS)
+		VLOAD	VXM
+			POINTVSM	# RESOLVE THE POINTING DIRECTION VF INTO
+			MIS		# INITIAL S/C AXES (VF = POINTVSM)
+		UNIT
+		STORE	28D
+					# PD 28 29 30 31 32 33
+		VXV	UNIT		# TAKE THE CROSS PRODUCT VF X VI
+			SCAXIS		# WHERE VI = SCAXIS
+		BOV	VCOMP
+			PICKAXIS
+		STODL	COF		# CHECK MAGNITUDE
+			36D		# OF CROSS PRODUCT
+		DSU	BMN		# VECTOR, IF LESS
+			DPB-14		# THAN B-14 ASSUME
+			PICKAXIS	# UNIT OPERATION
+		VLOAD	DOT		# INVALID.
+			SCAXIS
+			28D
+		SL1	ARCCOS
+COMPMATX	CALL			# NO COMPUTE THE TRANSFORMATION FROM
+			DELCOMP		# FINAL S/C AXES TO INITIAL S/C AXES MFI
+		AXC,1	AXC,2
+			MIS		# COMPUTE THE TRANSFORMATION FROM FINAL
+			DEL		# S/C AXES TO STABLE MEMBER AXES
+		CALL			# MFS = MIS MFI
+			MXM3		# (IN PD LIST)
+			
+		DLOAD	ABS
+			6		# MFS6 = SIN(CPSI)			$2
+		DSU	BMN
+			SINGIMLC	# = SIN(59 DEGS)			$2
+			FINDGIMB	# /CPSI/ LESS THAN 59 DEGS.
+					# I.E., DESIRED ATTITUDE NOT IN GIMBAL LOCK
+					
+		DLOAD	ABS		# CHECK TO SEE IF WE ARE POINTING
+			SCAXIS		# THE THRUST AXIS
+		DSU	BPL
+			SINVEC1		# SIN 49.4 DEGS				$2
+# Page 395
+			FINDGIMB	# IF SO, WE ARE TRYING TO POINT IT INTO
+		VLOAD			# GIMBAL LOCK, ABORT COULD GO HERE
+		STADR
+		STOVL	MIS +12D
+		STADR			# STORE MFS (IN PD LIST) IN MIS
+		STOVL	MIS +6
+		STADR
+		STOVL	MIS
+			MIS +6		# INNER GIMBAL AXIS IN FINAL S/C AXES
+		BPL	VCOMP		# LOCATE THE IG AXIS DIRECTION CLOSEST TO
+			IGSAMEX		# FINAL X S/C AXIS
+			
+IGSAMEX		VXV	BMN		# FIND THE SHORTEST WAY OF ROTATING THE 
+			SCAXIS		# S/C OUT OF GIMBAL LOCK BY A ROTATION 
+			U=SCAXIS	# ABOUT +- SCAXIS, I.E., IF  (IG (SGN MFS3)
+					# X SCAXIS . XF) LESS THAN Q, U = SCAXIS
+					# OTHERWISE U = -SCAXIS.
+					
+		VLOAD	VCOMP
+			SCAXIS
+		STCALL	COF		# ROTATE ABOUT -SCAXIS
+			CHEKAXIS
+U=SCAXIS	VLOAD
+			SCAXIS
+		STORE	COF		# ROTATE ABOUT + SCAXIS
+CHEKAXIS	DLOAD	ABS
+			SCAXIS		# SEE IF WE ARE POINTING THE AOT
+		DSU	BPL
+			SINVEC2		# SIN 29.5 DEGS				$2
+			PICKANG1	# IF SO, ROTATE 50 DEGS ABOUT +- SCAXIS
+		DLOAD	GOTO		# IF NOT, MUST BE POINTING THE TRANSPONDER
+			VECANG2		# OR SOME VECTOR IN THE Y, OR Z PLANE
+			COMPMFSN	# IN THIS CASE ROTATE 35 DEGS TO GET OUT
+					# OF GIMBAL LOCK (VECANG2 $360)
+PICKANG1	DLOAD
+			VECANG1		# = 50 DEGS.			      $360
+COMPMFSN	CALL
+			DELCOMP		# COMPUTE THE ROTATION ABOUT SCAXIS TO
+		AXC,1	AXC,2		# BRING MFS OUT OF GIMBAL LOCK
+			MIS
+			DEL
+		CALL			# COMPUTE THE NEW TRANSFORMATION FROM
+			MXM3		# DESIRED S/C AXES TO STABLE MEMBER AXES
+					# WHICH WILL ALIGN VI WITH VF AND AVOID
+					# GIMBAL LOCK
+FINDGIMB	AXC,1	CALL
+			0		# EXTRACT THE COMMANDED CDU ANGLES FROM
+			DCMTOCDU	# THIS MATRIX
+		RTB	SETPD
+			V1STO2S		# CONVERT TO 2'S COMPLEMENT
+# Page 396
+			0
+		GOTO
+			VECQTEMP	# RETURN TO CALLER
+			
+PICKAXIS	VLOAD	DOT		# IF VF X VI = 0, FIND VF, VI
+			28D
+			SCAXIS
+		BMN	TLOAD
+			ROT180
+			25D
+		GOTO			# IF VF = VI, CDU DESIRED = PRESENT CDU
+			VECQTEMP	# PRESENT CDU ANGLES
+			
+ROT180		VLOAD	VXV		# IF VF, VI ANTI-PARALLEL, 180 DEG ROTATION
+			MIS +6		# IS REQUIRED.  Y STABLE MEMBER AXIS IN
+			HIUNITX		# INITIAL S/C AXES.
+		UNIT	VXV		# FIND Y(SM) X X(I)
+			SCAXIS		# FIND UNIT(VI X UNIT(Y(SM) X X(I)))
+		UNIT	BOV		# I.E., PICK A VECTOR IN THE PLANE OF X(I),
+			PICKX		# Y(SM) PERPENDICULAR TO VI
+		STODL	COF
+			36D		# CHECK MAGNITUDE
+		DSU	BMN		# OF THIS VECTOR.
+			DPB-14		# IF LESS THAN B-14,
+			PICKX		# PICK X-AXIS.
+		VLOAD
+			COF
+XROT		STODL	COF
+			HIDPHALF
+		GOTO
+			COMPMATX
+PICKX		VLOAD	GOTO		# PICK THE XAXIS IN THIS CASE
+			HIUNITX
+			XROT
+		BANK	35
+		SETLOC	MANUVER1
+		BANK
+		
+SINGIMLC	2DEC	.4285836003	# = SIN(59)				$2
+
+SINVEC1		2DEC	.3796356537	# = SIN(49.4)				$2
+
+SINVEC2		2DEC	.2462117800	# = SIN(29.5)				$2
+
+VECANG1		2DEC	.1388888889	# = 50 DEGREES			      $360
+
+VECANG2		2DEC	.09722222222	# = 35 DEGREES			      $360
+
+
+1BITDP		OCT	0		# KEEP THIS BEFORE DPB(-14)	  ********
+DPB-14		OCT	00001
+# Page 397
+		OCT	00000
+		BANK	34
+		SETLOC	MANUVER
+		BANK
+		
+# Page 398
+# ROUTINE FOR INITIATING AUTOMATIC MANEUVER VIA KEYBOARD (V49)
+
+		EBANK=	CPHI
+		
+		COUNT	27/R62
+				
+R62DISP		CAF	V06N22		# DISPLAY COMMAND ICDUS CPHI, CTHETA, CPHI
+		TC	BANKCALL
+		CADR	GOFLASH
+		TCF	ENDEXT	
+		TCF	GOMOVE		# PROCEED
+		TCF	R62DISP		# ENTER
+		
+					# ASTRONAUT MAY LOAD NEW ICDUS AT THIS
+					# POINT.
+GOMOVE		TC	UPFLAG		# SET FOR 3-AXIS MANEUVER
+		ADRES	3AXISFLG
+		
+		TC	BANKCALL
+		CADR	R60CSM
+		TCF	ENDEXT	
+		
diff --git a/R63.s b/R63.s
new file mode 100644
index 0000000..e477acf
--- /dev/null
+++ b/R63.s
@@ -0,0 +1,156 @@
+# Copyright:	Public domain.
+# Filename:	R63.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	338-341
+# Mod history:	2009-05-16 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 338
+# SUBROUTINE NAME:	V89CALL
+# MOD NO:	0			DATE:		9 JAN 1968
+# MOD BY:	DIGITAL DEVEL GROUP	LOG SECTION:	R63
+#
+# FUNCTIONAL DESCRIPTION:
+#
+# CALLED BY VERB 89 ENTER DURING P00.  PRIO 10 USED.  CALCULATES AND
+# DISPLAYS FINAL FDAI BALL ANGLES TO POINT LM +X OR +Z AXIS AT CSM.
+#
+# 1. KEY IN V 89 E ONLY IF IN PROG 00.  IF NOT IN P00, OPERATOR ERROR AND
+# EXIT R63, OTHERWISE CONTINUE.
+#
+# 2. IF IN P00, DO IMU STATUS CHECK ROUTINE (R02BOTH).  IF IMU ON AND ITS
+# ORIENTATION KNOWN TO LGC, CONTINUE.
+#
+# 3. FLASH DISPLAY V 04 N 06.  R2 INDICATES WHICH SPACECRAFT AXIS IS TO
+# BE POINTED AT CSM.  INITIAL CHOICE IS PREFERRED (+Z) AXIS (R2=1).
+# ASTRONAUT CAN CHANGE TO (+X) AXIS (R2 NOT =1) BY V 22 E 2 E.  CONTINUE
+# AFTER KEYING IN PROCEED.
+#
+# 4. BOTH VEHICLE STATE VECTORS UPDATED BY CONIC EQS.
+#
+# 5. HALF MAGNITUDE UNIT LOS VECTOR (IN STABLE MEMBER COORDINATES) AND
+# HALF MAGNITUDE UNIT SPACECRAFT AXIS VECTOR (IN BODY COORDINATES)
+# PREPARED FOR VECPOINT.
+#
+# 6. GIMBAL ANGLES FROM VECPOINT TRANSFORMED INTO FDAI BALL ANGLES BY
+# BALLANGS.  FLASH DISPLAY V 06 N 18 AND AWAIT RESPONSE.
+#
+# 7 	RECYCLE -- RETURN TO STEP 4.
+#	TERMINATE -- EXIT R63
+#	PROCEED -- RESET 3AXISFLAG AND CALL R60LEM FOR ATTITUDE MANEUVER.
+#
+# CALLING SEQUENCE:	V 89 E.
+#
+# SUBROUTINES CALLED:	CHECKP00H, R02BOTH, GOXDSPF, CSMCONIC, LEMCONIC,
+#			VECPOINT, BALLANGS, R60LEM.
+#
+# NORMAL EXIT MODES: 	TC ENDEXT
+#
+# ALARMS:	1. OPERATOR ERROR IF NOT IN P00.
+#		2. PROGRAM ALARM IF IMU IS OFF.
+#		3. PROGRAM ALARM IF IMU ORIENTATION IS UNKNOWN.
+#
+# OUTPUT:	NONE
+#
+# ERASABLE INITIALIZATION REQUIRED:  NONE
+#
+# DEBRIS:	OPTION1, +1, TDEC1, PCINTVSM, SCAXIS, CPHI, CTHETA, CPSI,
+# Page 339
+#		3AXISFLAG.
+
+		EBANK=	RONE
+		BANK	32
+		SETLOC	BAWLANGS
+		BANK
+		
+		COUNT*	$$/R63
+V89CALL		TC	BANKCALL	# IMU STATUS CHECK.  RETURNS IF ORIENTATION
+		CADR	R02BOTH		# KNOWN.  ALARMS IF NOT.
+		CAF	THREE		# ALLOW ASTRONAUT TO SELECT DESIRED
+		TS	OPTIONX		# TRACKING ATTITUDE AXIS.
+		CAF	ONE
+		TS	OPTIONX  +1
+		CAF	VB04N12		# V 04 N 12.
+		TC	BANKCALL
+		CADR	GOFLASH
+		TC	ENDEXT		# TERMINATE
+		TC 	+2		# PROCEED
+		TC	-5		# DATA IN.  OPTION1+1 = 1 FOR Z AXIS
+V89RECL		TC	INTPRET		#			2 FOR X AXIS
+		RTB	DAD
+			LOADTIME	# READ PRESENT TIME
+			DP1MIN
+		STORE	TSTART82	# SAVE TIME FOR LEMCONIC CALL
+		STCALL	TDEC1		# STORE TIME FOR CSMCONIC CALL
+			CSMCONIC	# CSM STATE VECTOR UPDATE
+		VLOAD			# CSMCONIC LEFT R VECTOR IN RATT
+			RATT
+		STODL	RONE		# SAVE FOR LINE OF SIGHT (LOS) COMPUTATION
+			TSTART82
+		STCALL	TDEC1		# STORE TIME FOR LEMCONIC CALL
+			LEMCONIC	# LEM STATE VECTOR UPDATE
+		VLOAD	VSU		# CSM POSITION -- LEM POSITION -- LOS
+			RONE		# LOS VECTOR LEFT IN MPAC
+			RATT
+		MXV	RTB		# (REFSMAT X LOS).  TRANSFORMS LOS FROM
+			REFSMMAT	# REFERENCE COORD TO STAB MEMB COORD.
+			NORMUNIT
+		STORE	POINTVSM	# STORE LOS FOR VECPOINT CALCULATION
+		EXIT
+		CS	OPTIONX +1	# 1 FOR Z AXIS.  2 FOR X AXIS.
+		AD	ONE
+		EXTEND
+		BZF	ALINEZ
+ALINEX		TC	INTPRET		# X AXIS ALIGNMENT
+		VLOAD
+			UNITX		# READ (.5, 0, 0)
+# Page 340
+V89CALL1	STCALL	SCAXIS		# STORE SELECTED ALIGNMENT AXIS
+			VECPOINT	# PUTS DESIRED GIM ANG (OG,IG,MG) IN TMPAC
+		STORE	CPHI		# STOR GIMBAL ANGLES FOR BALLANGS CALL
+		EXIT
+		TC	BANKCALL
+		CADR	BALLANGS	# PUTS DESIRED BALL ANGLE IN FDAIX,Y,Z
+		CAF	VB06N18		# V 06 N 18
+		TC	BANKCALL	# NOUN 18 REFERS TO FDAIX,Y,Z
+		CADR	GOFLASH
+		TC	ENDEXT		# TERMINATE
+		TC	+2		# PROCEED
+		TC	V89RECL		# RECYCLE
+		TC	DOWNFLAG	# RESET 3 AXIS FLAG
+		ADRES	3AXISFLG	# RESET BIT6 FLAG WORD 5
+		TC	BANKCALL	# PERFORMS LEM MANEUVER TO ALIGN SELECTED
+		CADR	R60LEM		# SPACECRAFT AXIS TO CSM.
+		TCF	ENDEXT		# TERMINATE R63
+		
+ALINEZ		TC	INTPRET		# Z AXIS ALIGNMENT
+		VLOAD	GOTO
+			UNITZ		# READ (0, 0, .5)
+			V89CALL1
+			
+VB04N12		VN	412
+VB06N18		VN	0618
+# Page 341
+DP1MIN		2DEC	6000
+
diff --git a/RADAR_LEADIN_ROUTINES.s b/RADAR_LEADIN_ROUTINES.s
new file mode 100644
index 0000000..b2f23b7
--- /dev/null
+++ b/RADAR_LEADIN_ROUTINES.s
@@ -0,0 +1,103 @@
+# Copyright:	Public domain.
+# Filename:	RADAR_LEADIN_ROUTINES.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	490-491
+# Mod history:	2009-05-17 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 490
+		BANK	25
+		SETLOC	RRLEADIN
+		BANK
+		
+		EBANK=	RSTACK
+		
+# RADAR SAMPLING LOOP.
+
+		COUNT*	$$/RLEAD
+RADSAMP		CCS	RSAMPDT		# TIMES NORMAL ONCE PER SECOND SAMLING
+		TCF	+2
+		TCF	TASKOVER	# +0 INSERTED MANUALLY TERMINATES TEST.
+		
+		TC	WAITLIST
+		EBANK=	RSTACK
+		2CADR	RADSAMP
+		
+		CAF	PRIO25
+		TC	NOVAC
+		EBANK=	RSTACK
+		2CADR	DORSAMP
+		
+		CAF	BIT14		# FOR CYCLIC SAMPLING, RTSTDEX=
+		EXTEND			# RTSTLOC/2 + RTSTBASE
+		MP	RTSTLOC
+		AD	RTSTBASE	# 0 FOR RR, 2 FOR LR.
+		TS	RTSTDEX
+		TCF	TASKOVER
+		
+# DO THE ACTUAL RADAR SAMPLE.
+
+DORSAMP		TC	VARADAR		# SELECTS VARIABLE RADAR CHANNEL.
+		TC	BANKCALL
+		CADR	RADSTALL
+		
+		INCR	RFAILCNT	# ADVANCE FAIL COUNTER BUT ACCEPT BAD DATA
+		
+DORSAMP2	INHINT
+		CA	FLAGWRD5	# DON'T UPDATE RSTACK IF IN R77.
+		MASK	R77FLBIT
+		CCS	A
+		TCF	+4
+		
+		DXCH	SAMPLSUM
+		INDEX	RTSTLOC
+		DXCH	RSTACK
+		
+		CS	RTSTLOC		# CYCLE RTSTLOC.
+		AD	RTSTMAX
+		EXTEND
+		
+# Page 491		
+		BZF	+3
+		CA	RTSTLOC
+		AD	TWO		# STORAGE IS DP
+		TS	RTSTLOC
+		TCF	ENDOFJOB	# CONTINUOUS SAMPLING AND 2N TRIES -- GONE.
+		
+# VARIABLE RADAR DATA CALLER FOR ONE MEASUREMENT ONLY.
+
+VARADAR		CAF	ONE		# WILL BE SENT TO RADAR ROUTINE IN A BY
+		TS	BUF2		# SWCALL
+		INDEX	RTSTDEX
+		CAF	RDRLOCS
+		TCF	SWCALL		# NOT TOUCHING Q.
+		
+RDRLOCS		CADR	RRRANGE		# = 0
+		CADR	RRRDOT		# = 1
+		CADR	LRVELX		# = 2
+		CADR	LRVELY		# = 3
+		CADR	LRVELZ		# = 4
+		CADR	LRALT		# = 5
+		
+
diff --git a/RCS-CSM_DAP_EXECUTIVE_PROGRAMS.s b/RCS-CSM_DAP_EXECUTIVE_PROGRAMS.s
new file mode 100644
index 0000000..3e7e0f9
--- /dev/null
+++ b/RCS-CSM_DAP_EXECUTIVE_PROGRAMS.s
@@ -0,0 +1,85 @@
+# Copyright:	Public domain.
+# Filename:	RCS-CSM_DAP_EXECUTIVE_PROGRAMS.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:	1037-1038
+# Mod history:	2009-05-13 RSB	Adapted from the Colossus249/ file of the
+#				same name, using Comanche055 page images.
+#		2009-05-20 RSB	A "Page N" comment was corrected.
+#
+# 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 1037
+# CALCULATION OF  AMGB, AMBG  ONCE EVERY SECOND
+#
+#	AMGB =	1	SIN(PSI)		0
+#		0	COS(PSI)COS(PHI)	SIN(PHI)
+#		0	-COS(PSI)SIN(PHI)	COS(PHI)
+#
+#	AMBG =	1	-TAN(PSI)COS(PHI)	TAN(PSI)SIN(PHI)
+#		0	COS(PHI)/COS(PSI)	-SIN(PHI)/COS(PSI)
+#		0	SIN(PHI)		COS(PHI)
+#
+# WHERE PHI AND PSI ARE CDU ANGLES
+
+		BANK	20
+		SETLOC	DAPS8
+		BANK
+		
+		COUNT*	$$/DAPEX
+		EBANK=	KMPAC
+AMBGUPDT	CA	FLAGWRD6	# CHECK FOR RCS AUTOPILOT
+		EXTEND
+		BZMF	ENDOFJOB	# BIT15 = 0, BIT14 = 1
+		MASK	BIT14		# IF NOT RCS, EXIT
+		EXTEND
+		BZF	ENDOFJOB	# TO PROTECT TVC DAP ON SWITCHOVER
+		
+		CA	CDUZ	
+		TC	SPSIN2
+		TS	AMGB1		# CALCULATE AMGB
+		CA	CDUZ
+		TC	SPCOS2
+		TS	CAPSI		# MUST CHECK FOR GIMBAL LOCK
+		CAF	QUADANGL	# = 7.25  DEGREES JET QUAD ANGULAR OFFSET
+		EXTEND
+		MSU	CDUX
+		COM			# CDUX - 7.25 DEG
+		TC	SPCOS1
+		TS	AMGB8
+		EXTEND
+		MP	CAPSI
+		TS	AMGB4
+		CAF	QUADANGL
+		EXTEND
+		MSU	CDUX
+		COM			# CDUX - 7.25 DEG
+		TC	SPSIN1
+		TS	AMGB5
+		EXTEND
+		MP	CAPSI
+		COM
+# Page 1038
+		TS	AMGB7
+		TCF	ENDOFJOB
+QUADANGL	DEC	660		# = 7.25 DEGREES
+
diff --git a/RCS-CSM_DIGITAL_AUTOPILOT.s b/RCS-CSM_DIGITAL_AUTOPILOT.s
new file mode 100644
index 0000000..20a7872
--- /dev/null
+++ b/RCS-CSM_DIGITAL_AUTOPILOT.s
@@ -0,0 +1,976 @@
+# Copyright:	Public domain.
+# Filename:	RCS-CSM_DIGITAL_AUTOPILOT.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:	1002-1024
+# Mod history:	2009-05-13 RSB	Adapted 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 1002
+# T5 INTERRUPT PROGRAM FOR THE RCS-CSM AUTOPILOT
+
+# START OF T5 INTERRUPT PROGRAM
+
+		BANK	20
+		SETLOC	DAPS3
+		BANK
+		
+		COUNT	21/DAPRC
+		
+		EBANK=	KMPAC
+REDORCS		LXCH	BANKRUPT	# RESTART OF AUTOPILOT COMES HERE
+		CA	T5PHASE		# ON A T5 RUPT
+		EXTEND
+		BZMF	+2		# IF T5PHASE +0, -0, OR -, RESET TO -
+		TCF	+3		# IF T5PHASE +, LEAVE IT +.  DO A FRESHDAP
+		CS	ONE
+		TS	T5PHASE
+		EXTEND
+		DCA	RCSLOC
+		DXCH	T5LOC		# HOOK UP T5RUPT TO AUTOPILOT
+		TCF	RCSATT +1
+		EBANK=	KMPAC
+RCSLOC		2CADR	RCSATT
+
+RCSATT		LXCH	BANKRUPT	# SAVE BB
+		EXTEND			# SAVE Q
+		QXCH	QRUPT
+		CAF	BIT15		# BIT15 CHAN31 = 0 IF IMU POWER IS ON AND
+		EXTEND			# S/C CONT SW IS IN CMC (I.E., IF G/C AUTO
+		RAND	CHAN31		# PILOT IS FULLY ENABLED)
+		EXTEND
+		BZF	SETT5		# IF G/C AUTOPILOT IS FULLY ENABLED,
+					# GO TO SETT5
+					
+		CS	RCSFLAGS	# IF G/C AUTOPILOT IS NOT FULLY ENABLED,
+		MASK	BIT14
+		ADS	RCSFLAGS	# SET NORATE FLAG,
+		CAF	POSMAX
+		TS	HOLDFLAG	# SET HOLDFLAG +,
+		CAF	ZERO		# ZERO ERRORX, ERRORY, AND ERRORZ,
+		TS	ERRORX
+		TS	ERRORY
+		TS	ERRORZ
+		CAF	BIT14
+		EXTEND
+		RAND	CHAN31		# AND CHECK FREE FUNCTION (BIT14 CHAN31).
+		EXTEND
+# Page 1003
+		BZF	SETT5		# IF IN FREE MODE, GO TO SETT5.
+		
+		TS	T5PHASE		# IF NOT IN FREE MODE,
+		CAF	OCT37766	# SCHEDULE REINITIALIZATION (FRESHDAP)
+		TS	TIME5		# IN 100 MS VIA T5RUPT
+		
+		TCR	ZEROJET		# ZERO JET CHANNELS IN 14 MS VIA ZEROJET
+		
+		TCF	KMATRIX
+DELTATT		OCT	37770		# 80MS (TIME5)
+DELTATT2	OCT	37776		# 20MS (TIME5)
+ONESEK		DEC	16284		# 1 SEC(TIME5)
+CHAN5		EQUALS	5
+CHAN6		EQUALS	6
+PRIO34A		=	PRIO34
+
+# CHECK PHASE OF T5 PROGRAM
+#
+# BECAUSE OF THE LENGTH OF THE T5 PROGRAM,IT HAS BEEN DIVIDED INTO 
+# THREE PARTS, T5PHASE1, T5PHASE2, AND THE JET SELECTION LOGIC,
+# TO ALLOW FOR THE EXECUTION OF OTHER
+# INTERRUPTS.  T5PHASE IS ALSO USED IN THE INITIALIZATION OF THE AUTOPILOT
+# VARIABLES AT TURN ON.
+#
+# THE CODING OF T5PHASE IS...
+#
+#		+ = INITIALIZE T5 RCS-CSM AUTOPILOT
+#    T5PHASE = +0 = PHASE2 OF THE T5 PROGRAM
+#		- = RESTART DAP
+#	       -0 = PHASE1 OF THE T5 PROGRAM
+
+SETT5		CCS	T5PHASE
+		TCF	FRESHDAP	# TURN ON AUTOPILOT
+		TCF	T5PHASE2	# BRANCH TO PHASE2 OF PROGRAM
+		TCF	REDAP		# RESTART AUTOPILOT
+		
+		TS	T5PHASE		# PHASE 1  RESET  FOR PHASE 2
+		CA	TIME5
+		TS	T5TIME		# USED IN COMPENSATING FOR DELAYS IN T5
+		CAF	DELTATT2	# RESET FOR T5RUPT IN 20MS FOR PHASE2
+		TS	TIME5		# OF PROGRAM
+
+# Page 1004
+# IMU STATUS CHECK
+
+		CS	IMODES33	# CHECK IMU STATUS
+		MASK	BIT6		# BIT6 = 0 IMU OK
+		CCS	A		# BIT6 = 1 NO IMU
+		TCF	RATEFILT
+FREECHK		CS	RCSFLAGS	# BIT14 INDICATES THAT RATES HAVE NOT BEEN
+		MASK	BIT14		# INITIALIZED
+		ADS	RCSFLAGS
+		CAF	BIT14		# NO ATTITUDE REFERENCE
+		TS	HOLDFLAG	# STOP ANY AUTOMATIC STEERING AND PREPARE
+					# TO PICK UP CDU ANGLES UPON RESUMPTION OF
+					# ATTITUDE HOLD
+		EXTEND
+		RAND	CHAN31		# CHECK FOR FREE MODE
+		EXTEND
+		BZF	KRESUME1	# IN FREE MODE PROVIDE FREE CONTROL ONLY
+		TCF	REINIT		# .....TILT...............................
+BITS4,5		OCT	30
+
+RATEFILT	CA	RCSFLAGS	# SEE IF RATEFILTER HAS BEEN INITIALIZED
+		MASK	BIT14
+		EXTEND			# IF SO, PROCEED WITH RATE DERIVATION
+		BZF	+2
+		TCF	KMATRIX		# IF NOT, SKIP RATE DERIVATION
+		
+# 	RATE FILTER	TIMING = 7.72 MS
+#
+# RATE FILTER EQUATIONS
+#
+#
+# DRHO = DELRHO - (.1)ADOT + (1 = GAIN1)DRHO
+#					    -1
+#
+# ADOT = ADOT   + GAIN2 DRHO + KMJ DFT
+#	     -1
+#        _       *     _     _
+# WHERE DELRHO = AMGB (CDU - CDU  )
+#			 	-1
+
+		CAF	TWO
+DRHOLOOP	TS	SPNDX
+		DOUBLE
+		TS	DPNDX
+		INDEX	DPNDX
+		CS	DRHO		# DRHO SCALED 180 DEGS
+		EXTEND
+		INDEX	ATTKALMN	# PICK UP DESIRED FILTER GAIN
+		MP	GAIN1
+		INDEX	DPNDX
+		DAS	DRHO		# (1 -.064) DRHO
+		EXTEND
+# Page 1005
+		INDEX	DPNDX
+		DCS	ADOT
+		DXCH	KMPAC		# -(.1)ADOT
+		CA	QUARTER
+		TC	SMALLMP
+		DXCH	KMPAC
+		INDEX	DPNDX
+		DAS	DRHO
+		CCS	SPNDX
+		TCF	DRHOLOOP
+		
+		CA	CDUX		# MEASURED BODY RATES--
+		XCH	RHO
+		EXTEND
+		MSU	RHO		# _        *     _     _
+		COM			# DELRHO = AMGB (CDU - CDU  )
+					#			  -1
+		ZL
+		DXCH	DELTEMPX
+		CA	CDUY
+		XCH	RHO1
+		EXTEND
+		MSU	RHO1
+		COM
+		TS	T5TEMP		# (CDUY - RHO1)	   SCALED 90 DEGS
+		EXTEND
+		MP	AMGB1
+		DAS	DELTEMPX	# DELTEMPX = (CDUX-RHO) + AMGB1(CDUY-RHO1)
+					# MUST BE DOUBLE PRECISION OR WILL LOSE
+					# PULSES
+		CA	AMGB4
+		EXTEND
+		MP	T5TEMP
+		DXCH	DELTEMPY
+		CA	AMGB7
+		EXTEND
+		MP	T5TEMP
+		DXCH	DELTEMPZ
+		CA	CDUZ
+		XCH	RHO2
+		EXTEND
+		MSU	RHO2
+		COM
+		TS	T5TEMP		# (CDUZ - RHO2)    SCALED 90 DEGS
+		EXTEND
+		MP	AMGB5
+		DAS	DELTEMPY	# DELTEMPY = AMGB4(CDUY-RHO1)
+					#		   + AMGB5(CDUZ-RHO2)
+		CA	AMGB8
+		EXTEND
+
+# Page 1006
+		MP	T5TEMP
+		DAS	DELTEMPZ	# DELTEMPZ = AMBG7(CDUY-RHO1)
+					#		  + AMGB8(CDUZ-RHO2)
+		CAF	TWO
+ADOTLOOP	TS	SPNDX
+		DOUBLE
+		TS	DPNDX
+		EXTEND
+		INDEX	DPNDX
+		DCA	DELTEMPX
+		INDEX	DPNDX
+		DAS	DRHO
+		EXTEND
+		INDEX	DPNDX
+		DCA	DELTEMPX
+		INDEX	DPNDX
+		DAS	MERRORX
+		INDEX	DPNDX
+		CA	DRHO
+		DOUBLE			# N.B.
+		DOUBLE			# N.B.
+		EXTEND
+		INDEX	ATTKALMN	# PICK UP DESIRED FILTER GAINS
+		MP	GAIN2
+		INDEX	DPNDX		# ADOT   + (.16)(.1)DRHO
+		DAS	ADOT		#     -1
+		INDEX	SPNDX		# S/C TORQUE TO INERTIA RATIO
+		CA	KMJ		# SCALED (450)(1600)/(57.3)(16384)=1/1.3
+		EXTEND
+		INDEX	SPNDX
+		MP	DFT
+		INDEX	DPNDX
+		DAS	ADOT		# KMJ(DFT)
+		CCS	SPNDX
+		TCF	ADOTLOOP	# END CALCULATION OF VEHICLE RATES
+KMATRIX		CA	ATTSEC
+		MASK	LOW4
+		CCS	A
+		TCF	TENTHSEK
+		CAF	PRIO34		# CALL FOR 1 SEC UPDATE OF TRANSFORMATION
+		TC	NOVAC		# MATRIX FROM GIMBAL AXES TO BODY AXES
+		EBANK=	KMPAC
+		2CADR	AMBGUPDT
+		
+		CAF	NINE
+		
+TENTHSEK	TS	ATTSEC
+
+# Page 1007
+# WHEN AUTOMATIC MANEUVERS ARE BEING PERFORMED, THE FOLLOWING ANGLE ADDITION MUST BE MADE TO PROVIDE A SMOOTH
+# SEQUENCE OF ANGULAR COMMANDS TO THE AUTOPILOT--
+#
+#	CDUXD = CDUXD + DELCDUX		(DOUBLE PRECISION)
+#	CDUYD = CDUYD + DELCDUY		(DOUBLE PRECISION)
+#	CDUZD = CDUZD + DELCDUZ		(DOUBLE PRECISION)
+#
+# THE STEERING PROGRAMS:
+#	1) ATTITUDE MANEUVER ROUTINE
+#	2) LEM TRACKING
+#
+# SHOULD GENERATE THE DESIRED ANGLES (CDUXD, CDUYD, CDUZD) AS WELL AS THE INCREMENTAL ANGLES (DELCDUX, DELCDUY,
+# DELCDUZ) SO THAT THE GIMBAL ANGLE COMMANDS CAN BE INTERPOLATED BETWEEN UPDATES.
+#
+# HOLDFLAG CODING:
+#
+#	+ = GRAB PRESENT CDU ANGLES AND STORE IN THETADX, THETADY, THETADZ
+#	    AND PERFORM ATTITUDE HOLD ABOUT THESE ANGLES
+#	    ALSO IGNORE AUTOMATIC STEERING
+#	    SET = + BY
+#		1) INITIALIZATION PHASE OF AUTOPILOT
+#		2) OCCURANCE OF RHC COMMANDS
+#		3) FREE MODE
+#		4) SWITCH OVER TO ATTITUDE HOLD FROM AUTO
+#		   WHILE DOING AUTOMATIC STEERING (IN THIS CASE
+#		   HOLDFLAG IS NOT ACTUALLY SET TO +, BUT THE LOGIC
+#		   FUNCTIONS AS IF IT WERE.)
+#		5) S/C CONTROL SWITCH IS SCS
+#		6) IMU POWER OFF
+#      +0 = IN ATTITUDE HOLD ABOUT A PREVIOUSLY ESTABLISHED REFERENCE
+#	- = PERFORMING AUTOMATIC MANEUVER
+#      -0 = NOT USED AT PRESENT
+#
+# NOTE THAT THIS FLAG MUST BE SET = - BY THE STEERING PROGRAM IF IT IS TO COMMAND THE AUTOPILOT.
+# SINCE ASTRONAUT ACTION MAY CHANGE THE HOLDFLAG SETTING, IT SHOULD BE MONITORED BY THE STEERING PROGRAM TO
+# DETERMINE IF THE AUTOMATIC SEQUENCE HAS BEEN INTERRUPTED AND IF SO, TAKE THE APPROPRIATE ACTION.
+
+		CS	HOLDFLAG
+		EXTEND
+		BZMF	DACNDLS		# IF HOLDFLAG +0,-0,+, BYPASS AUTOMATIC
+					# COMMANDS.
+DCDUINCR	CAF	TWO
+DELOOP		TS	SPNDX
+		DOUBLE
+		TS	DPNDX
+		EXTEND
+		INDEX	A
+		DCA	CDUXD
+# Page 1008
+		DXCH	KMPAC
+		EXTEND
+		INDEX	DPNDX
+		DCA	DELCDUX
+		TC	DPADD
+		EXTEND
+		DCA	KMPAC
+		INDEX	SPNDX
+		TS	THETADX
+		INDEX	DPNDX
+		DXCH	CDUXD
+		CCS	SPNDX
+		TCF	DELOOP
+		
+# Page 1009
+# RCS-CSM AUTOPILOT ATTITUDE ERROR DISPLAY
+#
+# THREE TYPES OF ATTITUDE ERRORS MAY BE DISPLAYED ON THE FDAI:
+#
+#	MODE 1)	AUTOPILOT FOLLOWING ERRORS		SELECTED BY V61E
+#		GENERATED INTERNALLY BY THE AUTOPILOT
+#
+#	MODE 2)	TOTAL ATTITUDE ERRORS			SELECTED BY V62E
+#		WITH RESPECT TO THE CONTENTS OF N22
+#
+#	MODE 3)	TOTAL ASTRONAUT ATTITUDE ERRORS		SELECTED BY V63E
+#		WITH RESPECT TO THE CONTENTS OF N17
+#
+# MODE 1 IS PROVIDED AS A MONITOR OF THE RCS DAP AND ITS ABILITY TO TRACK AUTOMATIC STEERING COMMANDS.  IN THIS
+# MODE THE ATTITUDE ERRORS WILL BE ZEROED WHEN THE CMC MODE SWITCH IS IN FREE.
+#
+# MODE 2 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
+# IN N22.  THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
+# AS A FLY-TO INDICATOR.
+#
+# MODE 3 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
+# IN N17.  THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
+# AS A FLY-TO INDICATOR.
+#
+# V60 IS PROVIDED TO LOAD N17 WITH A SNAPSHOT OF THE CURRENT CDU ANGLES, THUS SYNCHRONIZING THE MODE 3 DISPLAY
+# WITH THE CURRENT S/C ATTITUDE.  THIS VERB MAY BE USED AT ANY TIME.
+#
+# THESE DISPLAYS WILL BE AVAILABLE IN ANY MODE (AUTO, HOLD, FREE, G+N, OR SCS) ONCE THE RCS DAP HAS BEEN
+# INITIATED VIA V46E.  MODE 1, HOWEVER, WILL BE MEANINGFUL ONLY IN G+N AUTO OR HOLD.  THE CREW MAY PRESET (VIA
+# V25N17) AN ATTITUDE REFERENCE (DESIRED GIMBAL ANGLES) INTO N17 AT ANY TIME.
+
+DACNDLS		CS	RCSFLAGS	# ALTERNATE BETWEEN FDAIDSP1 AND FDAIDSP2
+		MASK	BIT4
+		EXTEND
+		BZF	FDAIDSP2
+		
+FDAIDSP1	ADS	RCSFLAGS
+		TC	NEEDLER
+KRESUME1	TCF	RESUME		# END PHASE 1
+
+# Page 1010
+# FDAI ATTITUDE ERROR DISPLAY SUBROUTINE
+#
+# PROGRAM DESCRIPTION:	D. KEENE  5/24/67
+#
+# THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS)
+# IN THE CDUS.  CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT
+# OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES
+# THE DACS.
+#
+# CALLING SEQUENCE:
+#
+# DURING THE INITIALIZATION SECTION OF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE
+# TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM:
+#
+#		CS	RCSFLAGS	# IN EBANK6
+#		MASK	BIT3
+#		ADS	RCSFLAGS
+#
+# THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANFERRED TO THE FOLLOWING LOCATIONS IN EBANK6:
+#
+#		AK	SCALED 180 DEGREES	NOTE:	THESE LOCATIONS ARE SUBJECT
+#		AK1	SCALED 180 DEGREES		TO CHANGE
+#		AK2	SCALED 180 DEGREES
+#
+# FULL SCALED DEFLECTION CORRESPONDS TO 16 7/8 DEGREES OF ATTITUDE ERROR
+#		(= 384 BITS IN IMU ERROR COUNTER)
+#
+# A CALL TO NEEDLER WILL THEN UPDATE THE DISPLAY:
+#
+#		INHINT
+#		TC	IBNKCALL	# NOTE: EBANK SHOULD BE SET TO E6
+#		CADR	NEEDLER
+#		RELINT
+#
+# THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED.  AT LEAST 3 PASSES THRU THE PRORAM ARE
+# REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS.
+# NOTE:  EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50MS TO ASSURE PROPER RELAY SEQUENCING.
+#
+# ERASABLE USED:
+#		AK		CDUXCMD
+#		AK1		CDUYCMD
+#		AK2		CDUZCMD
+#		EDRIVEX		A,L,Q
+#		EDRIVEY		T5TEMP
+#		EDRIVEZ		SPNDX
+#
+# SWITCHES;	RCSFLAGS	BITS 3,2
+#
+# I/O CHANNELS:	CHAN12		BIT 4		 (COARSE ALIGN - READ ONLY)
+# Page 1011
+#		CHAN12		BIT 6 		(IMU ERROR COUNTER ENABLE)
+#		CHAN14		BIT 13,14,15	(DAC ACTIVITY)
+#
+# SIGN CONVENTION:	AK = THETAC - THETA
+#		WHERE	THETAC = COMMAND ANGLE
+#			THETA = PRESENT ANGLE
+
+NEEDLER		CAF	BIT4		# CHECK FOR COARSE ALIGN ENABLE
+		EXTEND			# IF IN COARSE ALIGN DO NOT USE IMU
+		RAND	CHAN12		# ERROR COUNTERS.  DON'T USE NEEDLES
+		EXTEND
+		BZF	NEEDLER1
+		CS	RCSFLAGS	# SET BIT3 FOR INITIALIZATION PASS
+		MASK	BIT3
+		ADS	RCSFLAGS
+		TC	Q
+		
+NEEDLER1	CA	RCSFLAGS
+		MASK	SIX
+		EXTEND
+		BZF	NEEDLES3
+		MASK	BIT3
+		EXTEND
+		BZF	NEEDLER2	# BIT3 = 0, BIT2 = 1
+		
+		CS	BIT6		# FIRST PASS BIT3 = 1
+		EXTEND			# DISABLE IMU ERROR COUNTER TO ZERO DACS
+		WAND	CHAN12		# MUST WAIT AT LEAST 60 MS. BEFORE
+NEEDLE11	CS	ZERO		# ENABLING COUNTERS.
+		TS	AK		# ZERO THE INPUTS ON FIRST PASS
+		TS	AK1
+		TS	AK2
+		TS	EDRIVEX		# ZERO THE DISPLAY REGISTERS
+		TS	EDRIVEY	
+		TS	EDRIVEZ
+		TS	CDUXCMD		# ZERO THE OUT COUNTERS
+		TS	CDUYCMD
+		TS	CDUZCMD
+		CS	SIX		# RESET RCSFLAGS FOR PASS2
+		MASK	RCSFLAGS
+		AD	BIT2
+		TS	RCSFLAGS
+		TC	Q		# END PASS1
+		
+NEEDLER2	CAF	BIT6		# ENABLE IMU ERROR COUNTERS
+		EXTEND
+		WOR	CHAN12
+		CS	SIX		# RESET RCSFLAGS TO DISPLAY ATTITUDE
+# Page 1012
+		MASK	RCSFLAGS	# ERRORS    WAIT AT LEAST 4 MS FOR
+		TS	RCSFLAGS	# RELAY CLOSURE
+		TC	Q
+		
+NEEDLES3	CAF	BIT6		# CHECK TO SEE IF IMU ERROR COUNTER
+		EXTEND			# IS ENABLED
+		RAND	CHAN12
+		EXTEND			# IF NOT RECYCLE NEEDLES
+		BZF	NEEDLER +5
+
+NEEDLES		CAF	TWO
+DACLOOP		TS	SPNDX
+		CS	QUARTER
+		EXTEND
+		INDEX	SPNDX
+		MP	AK
+		TS	L
+		CCS	A
+		CA	DACLIMIT
+		TCF	+2
+		CS	DACLIMIT
+		AD	L
+		TS	T5TEMP		# OVFLO CHK
+		TCF	+4
+		INDEX	A		# ON OVERFLOW LIMIT OUTPUT TO +-384
+		CAF	DACLIMIT
+		TS	L
+		INDEX	SPNDX
+		CS	EDRIVEX		# CURRENT VALUE OF DAC
+		AD	L
+		INDEX	SPNDX
+		ADS	CDUXCMD
+		INDEX	SPNDX
+		LXCH	EDRIVEX
+		CCS	SPNDX
+		TCF	DACLOOP
+		CAF	13,14,15
+		EXTEND
+		WOR	CHAN14		# SET DAC ACTIVITY BITS
+		TC	Q
+		
+REINIT		CAF	DELAY200	# ........TILT LOGIC
+		TS	TIME5		# REINITIALIZE DAP IN 200MS
+		TS	T5PHASE
+		TCF	RESUME
+DELAY200	DEC	16364		# 200MS
+
+		DEC	-384
+
+# Page 1013		
+DACLIMIT	DEC	16000
+		DEC	384
+		
+# Page 1014
+# INITIALIZATION PROGRAM FOR RCS-CSM AUTOPILOT
+#
+# THE FOLLOWING QUANTITIES WILL BE ZEROED AND SHOULD APPEAR IN CONSECUTIVE LOCATIONS IN MEMORY AFTER WBODY
+#
+# 	WBODY	(+1)		DFT			TAU2
+#	WBODY1	(+1)		DFT1			BIAS
+#	WBODY2	(+1)		DFT2			BIAS1
+#	ADOT	(+1)		DRHO	(+1)		BIAS2
+#	ADOT1	(+1)		DRHO1	(+1)		ERRORX
+#	ADOT2	(+1)		DRHO2	(+1)		ERRORY
+#	MERRORX	(+1)		ATTSEC			ERRORZ
+#	MERRORY	(+1)		TAU
+#	MERRORZ	(+1)		TAU1
+
+FRESHDAP	CAF	ONE		# RESET HOLDFLAG TO STOP AUTOMATIC
+		TS	HOLDFLAG	# STEERING AND PREPARE TO PICK UP AN
+					# ATTITUDE HOLD REFERENCE
+					
+REDAP		TC	IBNKCALL	# DECODE DAPDATR1, DAPDATR2 FOR DEADBANDS
+		CADR	S41.2		# RATES, QUADFAILS, QUAD MANAGEMENT
+
+		TC	IBNKCALL	# DECODE IXX, IAVG, AND CONVERT
+		CADR	S40.14		# TO AUTOPILOT GAINS
+		
+		CAF	NO.T5VAR	# NO. LOCATIONS TO BE ZEROED MINUS ONE
+ZEROT5		TS	SPNDX		# ZERO ALL NECESSARY ERASABLE REGISTERS
+		CAF	ZERO
+		INDEX	SPNDX
+		TS	WBODY
+		CCS	SPNDX
+		TCF	ZEROT5
+		TCR	ZEROJET
+		
+		CS	ZERO
+		TS	CHANTEMP	# INITIALIZE MINIMUM IMPULSE CONTROL
+		
+		TS	CH31TEMP	# INITIALIZE RHC POSITION MEMORY FOR
+					# MANUAL RATE MODES
+					
+		CAF	=.24
+		TS	SLOPE		# INITIALIZE SWITCHING LOGIC SLOPE
+		
+		CAF	FOUR
+		TS	T5TIME		# PHASE 0 RESETS FOR PHASE 2 INTERRUPT IN
+					# 60 MS.  PHASE 2 RESETS FOR PHASE 1 RUPT
+					# IN (80MS - T5TIME(40MS)).  THEREFORE
+					# PHASE 1 (RATEFILTER) BEGINS CYCLING 100
+					# MS FROM NOW AND EVERY 100MS THEREAFTER.
+					
+		CAF	ELEVEN
+		TS	ATTKALMN	# RESET TO PICK UP KALMAN FILTER TAINS
+					# TO INITIALIZE THE S/C ANGULAR RATES
+# Page 1015
+		CA	CDUX
+		TS	RHO
+		CA	CDUY
+		TS	RHO1
+		CA	CDUZ
+		TS	RHO2
+		CAF	ZERO		# RESET AUTOPILOT TO BEGIN EXECUTING
+		TS	T5PHASE		# PHASE2 OF PROGRAM
+		
+		CS	IMODES33	# CHECK IMU STATUS
+		MASK	BIT6		# IF BIT6 = 0 IMU IN FINE ALIGN
+		CCS	A		# IF BIT6 = 1 IMU NOT READY
+		TCF	IMUAOK
+		TS	ATTKALMN	# CANNOT USE IMU
+		CAF	RCSINITB	# PROVIDE FREE CONTROL ONLY
+		TCF	RCSSWIT		# DON'T START UP RATE FILTER
+					# SIGNAL NO RATE FILTER
+					
+IMUAOK		CAF	PRIO34		# START MATRIX INITIALIZATION
+		TC	NOVAC		# BYPASS IF IMU NOT IN FINE ALIGN
+		EBANK=	KMPAC
+		2CADR	AMBGUPDT
+		
+		CAF	RCSINIT		# CLEAR BIT14 --ASSUME WE HAVE A GOOD IMU
+RCSSWIT		TS	RCSFLAGS	# CLEAR BIT1  --INITIALIZE T6 PROGRAM
+					#   SET BIT3  --INITIALIZE NEEDLES
+					# CLEAR BIT4  --RESET FOR FDAIDSP1
+		CAF	T5WAIT60	# NEXT T5RUPT 60 MS FROM NOW TO ALLOW IMU
+					# ERROR COUNTER TO ZERO.
+					# (MINIMUM DELAY = 15 MS)
+		TS	TIME5		# SINCE ATTKALMN IS +11, PROGRAM WILL THEN
+		TC	RESUME		# PICK UP THE KALMAN FILTER GAINS.  RATE
+					# FILTER WILL BEGIN OPERATING ZOOMS FROM
+					# NOW
+					
+# CONSTANTS USED IN INITIALIZATION PROGRAM
+
+NO.T5VAR	DEC	36
+=.24		DEC	.24		# = SLOPE OF 0.6/SEC
+RCSINIT		OCT	00004
+RCSINITB	OCT	20004
+T5WAIT60	DEC	16378		# = 6 CS
+		EBANK=	KMPAC
+T6ADDR		2CADR	T6START
+
+ZEROJET		CAF	ELEVEN		# ZERO BLAST2, BLAST1, BLAST, YWORD2,
+		TS	SPNDX		# YWORD1, PWORD2, PWORD1, RWORD2,
+		CAF	ZERO		# AND RWORD1
+		
+# Page 1016
+		INDEX	SPNDX
+		TS	RWORD1
+		CCS	SPNDX
+		TCF	ZEROJET +1
+		
+		CAF	FOUR
+		TS	BLAST1 +1
+		CAF	ELEVEN
+		TS	BLAST2 +1
+		
+		CS	BIT1
+		MASK	RCSFLAGS
+		TS	RCSFLAGS	# RESET BIT1 OF RCSFLAGS TO 0
+		
+		EXTEND
+		DCA	T6ADDR
+		DXCH	T6LOC
+		CAF	=+14MS		# ENABLE T6RUPT TO SHUT OFF JETS IN 14 MS.
+		TS	TIME6
+		CAF	BIT15
+		EXTEND
+		WOR	CHAN13
+		
+		TC	Q
+		
+T5PHASE2	CCS	ATTKALMN	# IF (+) INITIALIZE RATE ESTIMATE
+		TCF	KALUPDT
+		
+		TCF	+2		# ONLY IF ATTKALMN POSITIVE
+		TCF	+1
+		CA	DELTATT2	# RESET FOR PHASE3 IN 20 MS
+		XCH	TIME5		# (JET SELECTION LOGIC)
+		ADS	T5TIME		# TO COMPENSATE FOR DELAYS IN T5RUPT
+		
+		CA	RCSFLAGS	# IF A HIGH RATE AUTO MANEUVER IS IN
+		MASK	BIT15		# PROGRESS (BIT 15 OF RCSFLAGS SET), SET
+		EXTEND			# ATTKALMN TO -1
+		BZF	NOHIAUTO	# OTHERWISE SET ATTKALMN TO 0.
+		CS	ONE
+NOHIAUTO	TS	ATTKALMN
+
+# Page 1017
+# MANUAL ROTATION COMMANDS
+
+		CS	OCT01760	# RESET FORCED FIRING BITS (BITS 10 TO 5
+		MASK	RCSFLAGS	# OF RCSFLAGS) TO ZERO
+		TS	RCSFLAGS
+		
+		EXTEND
+		READ	CHAN31
+		TS	L
+		CA	CH31TEMP
+		EXTEND
+		RXOR	LCHAN
+		MASK	MANROT		# = OCT00077
+		EXTEND
+		BZMF	NOCHANGE
+		
+		LXCH	A
+		TS	CH31TEMP	# SAVE CONTENTS OF CHANNEL 31 IN CH31TEMP
+		
+		CA	L
+		EXTEND
+		MP	BIT5		# PUT BITS 6-1 OF A IN BITS 10-5 OF L
+		CA	L
+		ADS	RCSFLAGS	# SET FORCED FIRING BITS FOR AXES WITH
+					# CHANGES IN COMMAND.  BITS 10,9 FOR
+					# ROLL, BITS 8,7 FOR YAW, BITS 6,5 FOR
+					# PITCH
+					
+		CS	RCSFLAGS	# SET RATE DAMPING FLAGS (BITS 13,12, AND
+		MASK	OCT16000	# 11 OF RCSFLAGS)
+		ADS	RCSFLAGS
+		
+NOCHANGE	CS	CH31TEMP
+		MASK	MANROT
+		EXTEND
+		BZMF	AHFNOROT	# IF NO MANUAL COMMANDS, GO TO AHFNOROT
+		
+		TS	HOLDFLAG	# SET HOLDFLAG +
+		
+		TC	STICKCHK	# WHEN THE RHC IS OUT OF DETENT, PMANNDX,
+					# YMANNDX, AND RMANNDX ARE ALL SET, BY
+					# MEANS OF STICKCHK, TO 0, 1, OR 2 FOR NO,
+					# +, OR - ROTATION RESPECTIVELY AS
+					# COMMANDED BY THE RHC.
+					#
+					# HOWEVER, IT IS WELL TO NOTE THAT AFTER
+					# THE RHC IS RETURNED TO DETENT, THE
+					# PROGRAM BRANCHES TO AHFNOROT AND AVOIDS
+					# STICKCHK SO PMANNDX, YMANNDX, AND
+					# RMANNDX ARE NOT RESET TO ZERO BUT RATHER
+					# LEFT SET TO THEIR LAST OUT OF DETENT
+# Page 1018
+					# VALUES.
+					
+		CS	FLAGWRD1	# SET STIKFLAG TO INFORM STEERING
+		MASK	BIT14		# PROGRAMS (P20) THAT ASTRONAUT HAS
+		ADS	FLAGWRD1	# ASSUMED ROTATIONAL CONTROL OF SPACECRAFT
+		
+		CAF	BIT14
+		EXTEND
+		RAND	CHAN31
+		EXTEND
+		BZMF	FREEFUNC
+		
+		CA	RCSFLAGS	# EXAMINE RCSFLAGS TO SEE IF RATE FILTER
+		MASK	BIT14		# HAS BEEN INITIALIZED
+		CCS	A		# IF SO, PROCEED WITH MANUAL RATE COMMANDS
+		TCF	REINIT		# .....TILT, RECYCLE TO INITIALIZE FILTER
+		
+		CS	FIVE		# IF MANUAL MANEUVER IS AT HIGH RTE, SET
+		AD	RATEINDX	# ATTKALMN TO -1.
+		EXTEND			# OTHERWISE, LEAVE ATTKALMN ALONE.
+		BZMF	+3
+		CS	ONE
+		TS	ATTKALMN
+		
+		CAF	TWO		# AUTO-HOLD MANUAL ROTATION
+SETWBODY	TS	SPNDX
+		DOUBLE
+		TS	DPNDX
+		INDEX	SPNDX		# RMANNDX = 0 NO ROTATION
+		CA	RMANNDX		#	  = 1  + ROTATION
+		EXTEND			#  	  = 2  - ROTATION
+		BZF	NORATE		# IF NO ROTATION COMMAND ON THIS AXIS,
+					# GO TO NORATE.
+					
+		AD	RATEINDX	# RATEINDX = 0  0.05 DEG/SEC
+		TS	Q		#          = 2  0.2  DEG/SEC
+		INDEX	Q		#          = 4  0.5  DEG/SEC
+		CA	MANTABLE -1	#          = 6  2.0  DEG/SEC
+		EXTEND
+		MP	BIT9		# MULTIPLY MANTABLE BY 2 TO THE -6
+		INDEX	DPNDX		# TO GET COMMANDED RATE.
+		DXCH	WBODY		# SET WBODY TO COMMANDED RATE.
+		
+		CA	RCSFLAGS
+		MASK	OCT16000	# IS RATE DAMPING COMPLETED (BITS 13,12 AND
+		EXTEND			# 11 OF RCSFLAGS ALL ZERO.)  IF SO, GO TO
+		BZF	MERUPDAT	# MERUPDAT TO UPDATE CUMULATIVE ATTITUDE
+					# ERROR.
+
+# Page 1019
+ZEROER		CA	ZERO		# ZEROER ZEROS MERRORS
+		ZL
+		INDEX	DPNDX
+		DXCH	MERRORX
+		TCF	SPNDXCHK
+		
+NORATE		ZL
+		INDEX	DPNDX
+		DXCH	WBODY		# ZERO WBODY FOR THIS AXIS
+		CA	RCSFLAGS
+		MASK	OCT16000
+		EXTEND			# IS RATE DAMPING COMPLETED
+		BZF	SPNDXCHK	# YES, KEEP CURRENT MERRORX GO TO SPNDXCHK
+		TCF	ZEROER		# NO, GO TO ZEROER
+		
+MERUPDAT	INDEX	Q		# MERRORX=MERRORX+MEASURED CHANGE IN ANGLE
+		CS	MANTABLE -1	# -COMMANDED CHANGE IN ANGLE
+		EXTEND			# THE ADDITION OF MEASURED CHANGE IN ANGLE
+		MP	BIT7		# HAS ALREADY BEEN DONE IN THE RATE FILTER
+		INDEX	DPNDX		# COMMANDED CHANGE IN ANGLE = WBODY TIMES
+		DAS	MERRORX		# .1SEC = MANTABLE ENTRY TIMES 2 TO THE -8
+		
+SPNDXCHK	INDEX	DPNDX
+		CA	MERRORX
+		INDEX	SPNDX
+		TS	ERRORX		# ERRORX = HIGH ORDER WORD OF MERRORX
+		CCS	SPNDX
+		TCF	SETWBODY
+		TCF	JETS
+		
+OCT01760	OCT	01760		# FORCED FIRING BITS MASK
+
+OCT01400	OCT	01400		# ROLL FORCED FIRING MASK	ORDER OF
+OCT00060	OCT	00060		# PITCH FORCED FIRING MASK	DEFINITION
+OCT00300	OCT	00300		# YAW FORCED FIRING MASK	MUST BE
+					#				PRESERVED
+					#				FOR INDEXING
+MANROT		OCT	77
+OCT16000	OCT	16000		# RATE DAMPING FLAGS MASK
+MANTABLE	DEC	.0071111
+		DEC	-.0071111
+		DEC	.028444
+		DEC	-0.028444
+		DEC	.071111
+		DEC	-.071111
+		DEC	.284444
+		DEC	-.284444
+=+14MS		DEC	23
+FREEFUNC	INDEX	RMANNDX		# ACCELERATION
+# Page 1020
+		CA	FREETAU		# COMMANDS
+		TS	TAU
+		INDEX	PMANNDX
+		CA	FREETAU		# FREETAU	0 SEC
+		TS	TAU1		# +1		+0.10 SEC
+		INDEX	YMANNDX		# +2		-0.10 SEC
+		CA	FREETAU		# (+3)		0 SEC
+		TS	TAU2
+		TCF	T6PROGM
+		
+FREETAU		DEC	0
+		DEC	480
+		DEC	-480
+		DEC	0
+		
+T6PROGM		CAF	ZERO		# FOR MANUAL ROTATIONS
+		TS	ERRORX
+		TS	ERRORY
+		TS	ERRORZ
+		TCF	T6PROG
+		
+# Page 1021
+		DEC	.2112		# FILTER GAIN FOR TRANSLATION, LEM ON
+		DEC	.8400		# FILTER GAIN FOR TRANSLATION 2(ZETA)WN DT
+		DEC	.2112		# FILTER GAIN FOR 4 DEGREE/SEC MANEUVERS
+GAIN1		DEC	.0640		# KALMAN FILTER GAINS FOR INITIALIZATION
+		DEC	.3180		# OF ATTITUDE RATES
+		DEC	.3452
+		DEC	.3774
+		DEC	.4161
+		DEC	.4634
+		DEC	.5223
+		DEC	.5970
+		DEC	.6933
+		DEC	.8151
+		DEC	.9342
+		
+		DEC	.0174		# FILTER GAIN FOR TRANSLATION, LEM ON
+		DEC	.3600		# FILTER GAIN FOR TRANSLATION (WN)(WN)DT
+		DEC	.0174		# FILTER GAIN FOR 4 DEGREE/SEC MANEUVERS
+GAIN2		DEC	.0016		# SCALED 10
+		DEC	.0454
+		DEC	.0545
+		DEC	.0666
+		DEC	.0832
+		DEC	.1069
+		DEC	.1422
+		DEC	.1985
+		DEC	.2955
+		DEC	.4817
+		DEC	.8683
+STICKCHK	TS	T5TEMP
+		MASK	THREE		# INDICES FOR MANUAL ROTATION
+		TS	PMANNDX
+		CA	T5TEMP
+		EXTEND			# MAN RATE  0	0 RATE (DP)
+		MP	QUARTER		# 	   +1 	+ RATE (DP)
+		TS	T5TEMP		#          +2   - RATE (DP)
+		MASK	THREE		#	  (+3)	0 RATE (DP)
+		TS	YMANNDX
+		CA	T5TEMP
+		EXTEND
+		MP	QUARTER
+		TS	RMANNDX
+		TC	Q
+KALUPDT		TS	ATTKALMN	# INITIALIZATION OF ATTITUDE RATES USING
+					# KALMAN FILTER TAKES 1.1 SEC
+					
+		CA	DELTATT		# =1SEC - 80MS
+		AD	T5TIME		# + DELAYS
+# Page 1022
+		TS	TIME5
+		TCF	+3
+		CAF	DELTATT2	# SAFETY PLAY TO ASSURE
+		TS	TIME5		# A T5RUPT
+		
+KRESUME2	CS	ZERO		# RESET FOR PHASE1
+		TS	T5PHASE		# RESUME INTERRUPTED PROGRAM
+		TCF	RESUME
+		
+FDAIDSP2	CS	BIT4		# RESET FOR FDAIDSP1
+		MASK	RCSFLAGS
+		TS	RCSFLAGS
+		
+		CS	FLAGWRD0	# ON - DISPLAY ONE OF THE TOTAL ATTITUDE
+		MASK	BIT9		# ERRORS
+		EXTEND
+		BZF	FDAITOTL
+		EXTEND
+		DCS	ERRORX		# OFF - DISPLAY AUTOPILOT FOLLOWING ERROR
+		DXCH	AK
+		CS	ERRORZ
+		TS	AK2
+		TCF	RESUME		# END PHASE 1
+		
+FDAITOTL	CA	FLAGWRD9
+		MASK	BIT6
+		EXTEND
+		BZF	WRTN17		# IS N22ORN17 (BIT6 OF FLAGWRD9) = 0
+					# IF SO, GO TO WRTN17
+WRTN22		EXTEND			# OTHERWISE, CONTINUE ON TO WRTN22 AND
+		DCA	CTHETA		# GET SET TO COMPUTE TOTAL ATTITUDE
+		DXCH	WTEMP		# ERROR WRT N22 BY PICKING UP THE THREE
+		CA	CPHI		# COMPONENTS OF N22
+		
+GETAKS		EXTEND			# COMPUTE TOTAL ATTITUDE ERROR FOR
+		MSU	CDUX		# DISPLAY ON FDAI ERROR NEEDLES
+		TS	AK
+		CA	WTEMP
+		EXTEND
+		MSU	CDUY
+		TS	T5TEMP
+		EXTEND
+		MP	AMGB1
+		ADS	AK
+		CA	T5TEMP
+		EXTEND
+		MP	AMGB4
+# Page 1023
+		TS	AK1
+		CA	T5TEMP
+		EXTEND
+		MP	AMGB7
+		TS	AK2
+		CA	WTEMP +1
+		EXTEND
+		MSU	CDUZ
+		TS	T5TEMP
+		EXTEND
+		MP	AMGB5
+		ADS	AK1
+		CA	T5TEMP
+		EXTEND
+		MP	AMGB8
+		ADS	AK2
+		TCF	RESUME		# END PHASE1 OF RCS DAP
+		
+WRTN17		EXTEND			# GET SET TO COMPUTE TOTAL ASTRONAUT
+		DCA	CPHIX +1	# ATTITUDE ERROR WRT N17 BY PICKING UP
+		DXCH	WTEMP		# THE THREE COMPONENTS OF N17
+		CA	CPHIX
+		TCF	GETAKS
+		
+# Page 1024 (empty page)
+ 
diff --git a/RCS_FAILURE_MONITOR.s b/RCS_FAILURE_MONITOR.s
new file mode 100644
index 0000000..f8c72d5
--- /dev/null
+++ b/RCS_FAILURE_MONITOR.s
@@ -0,0 +1,173 @@
+# Copyright:	Public domain.
+# Filename:	RCS_FAILURE_MONITOR.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:	190-192
+# Mod history:	2009-05-19 HG	Transcribed from 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 001 of AGC program LMY99 by NASA 2021112-61
+#	16:27 JULY 14, 1969 
+
+# Page 190
+# PROGRAM DESCRIPTION:
+#
+# AUTHOR: J. S. MILLER
+#
+# MODIFIED 6 MARCH 1968 BY P. S. WEISSMAN TO SET UP JOB FOR 1/ACCS WHEN THE MASKS ARE CHANGED.
+#
+# THIS ROUTINE IS ATTACHED TO T4RUPT, AND IS ENTERED EVERY 480 MS.  ITS FUNCTION IS TO EXAMINE THE LOW 8 BITS
+# OF CHANNEL 32 TO SEE IF ANY ISOLATION-VALVE CLOSURE BITS HAVE APPEARED OR DISAPPEARED (THE CREW IS WARNED OF JET
+# FAILURES BY LAMPS LIT BY THE GRUMMAN FAILURE-DETECTION CIRCUITRY; THEY MAY RESPOND BY OPERATING SWITCHES WHICH
+# ISOLATE PAIRS OF JETS FROM THE PROPELLANT TANKS AND SET BITS IN CHANNEL 32).  iN THE EVENT THAT CHANNEL 32 BITS
+# DIFFER FROM `PVALVEST', THE RECORD OF ACTIONS TAKEN BY THIS ROUTINE, THE APPROPRIATE BITS IN `CH5MASK' &
+# `CH6MASK', USED BY THE DAP JET-SELECTION LOGIC, ARE UPDATED, AS IS `PVALVEST'.  TO SPEED UP & SHORTEN THE
+# ROUTINE, NO MORE THAN ONE CHANGE IS ACCEPTED PER ENTRY.  THE HIGHEST-NUMBERED BIT IN CHANNEL 32 WHICH REQUIRES
+# ACTION IS THE ONE PROCESSED.
+#
+# THE CODING IN THE FAILURE MONITOR HAS BEEN WRITTEN SO AS TO HAVE ALMOST COMPLETE RESTART PROTECTION.  FOR
+# EXAMPLE, NO ASSUMPTION IS MADE WHEN SETTING A `CH5MASK' BIT TO 1 THAT THE PREVIOUS STATE IS 0, ALTHOUGH IT OF
+# COURSE SHOULD BE.  ONE CASE WHICH MAY BE SEEN TO EVADE PROTECTION IS THE OCCURRENCE OF A RESTART AFTER UPDATING
+# ONE OR BOTH DAP MASK-WORDS BUT BEFORE UPDATING `PVALVEST', COUPLED WITH A CHANGE IN THE VALVE-BIT BACK TO ITS
+# FORMER STATE.  THE CONSEQUENCE OF THIS IS THAT THE NEXT ENTRY WOULD NOT SEE THE CHANGE INCOMPLETELY INCORP-
+# ORATED BY THE LAST PASS (BECAUSE IT WENT AWAY AT JUST THE RIGHT TIME), BUT THE DAP MASK-WORDS WILL BE INCORRECT.
+# THIS COMBINATION OF EVENTS SEEMS QUITE REMOTE, BUT NOT IMPOSSIBLE UNLESS THE CREW OPERATES THE SWITCHES AT HALF-
+# SECOND INTERVALS OR LONGER.  IN ANY EVENT, A DISAGREEMENT BETWEEN REALITY AND THE DAP MASKS WILL BE CUREED IF
+# THE MISINTERPRETED SWITCH IS REVERSED AND THEN RESTORED TO ITS CORRECT POSITION (SLOWLY).
+#
+# CALLING SEQUENCE:
+#
+#	TCF	RCSMONIT		# (IN INTERRUPT MODE, EVERY 480 MS.)
+#
+# EXIT: TCF RCSMONEX (ALL PATHS EXIT VIA SUCH AN INSTRUCTION)
+
+RCSMONEX	EQUALS	RESUME
+
+# ERASABLE INITIALIZATION REQUIRED:
+#
+# 	VIA FRESH START:	PVALVEST	=	+0	(ALL JETS ENABLED)
+#				CH5MASK,CH6MASK	=	+0	(ALL JETS OK)
+#
+# OUTPUT:	CH5MASK & CH6MASK UPDATED (1'S WHERE JETS NOT TO BE USED, IN CHANNEL 5 & 6 FORMAT)
+#		PVALTEST UPDATED (1'S WHEN VALVE CLOSURES HAVE BEEN TRANSLATED INTO CH5MASK & CH6MASK; CHAN 32 FORMAT)
+#		JOB TO DO 1/ACCS.
+#
+# DEBRIS:  A, L, AND Q AND DEBRIS OF NOVAC.
+#
+# SUBROUTINE CALLED:  NOVAC.
+
+		EBANK=	CH5MASK
+		
+		BANK	23
+		SETLOC	RCSMONT
+		BANK
+# Page 191
+		COUNT*	$$/T4RCS
+		
+RCSMONIT	EQUALS	RCSMON
+		
+RCSMON		CS	ZERO
+		EXTEND
+		RXOR	CHAN32			# PICK UP + INVERT INVERTED CHANNEL 32.
+		MASK	LOW8			# KEEP JET-FAIL BITS ONLY.
+		TS	Q
+		
+		CS	PVALVEST		#       _   _
+		MASK	Q			# FORM PC + PC.
+		TS	L			# 	(P = PREVIOUS ISOLATION VALVE STATE,
+		CS	Q			#	 C = CURRENT VALVE STATE (CH32)).
+		MASK	PVALVEST
+		ADS	L			# RESULT NZ INDICATES ACTION REQUIRED.
+		
+		EXTEND
+		BZF	RCSMONEX		# QUIT IF NO ACTION REQUIRED.
+		
+		EXTEND
+		MP	BIT7			# MOVE BITS 8-1 OF A TO 14-7 OF L.
+		XCH	L			# ZERO TO L IN THE PROCESS.
+		
+ -3		INCR	L
+ 		DOUBLE				# BOUND TO GET OVERFLOW IN THIS LOOP,
+		OVSK				# SINCE WE ASSURED INITIAL NZ IN A.
+		TCF	-3
+		
+		INDEX	L
+		CA	BIT8 -1			# SAVE THE RELEVANT BIT (8-1).
+		TS	Q
+		MASK	PVALVEST		# LOOK AT PREVIOUS VALVE STATE BIT.
+		CCS	A
+		TCF	VOPENED			# THE VALVE HAS JUST BEEN OPENED.
+		
+		CS	CH5MASK			# THE VALVE HAS JUST BEEN CLOSED.
+		INDEX	L
+		MASK	5FAILTAB
+		ADS	CH5MASK			# SET INHIBIT BIT FOR CHANNEL 5 JET.
+		
+		CS	CH6MASK
+		INDEX	L
+		MASK	6FAILTAB
+		ADS	CH6MASK			# SET INGIBIT BIT FOR CHANNEL 6 JET
+		
+		CA	Q
+		ADS	PVALVEST		# RECORD ACTION TAKEN.
+		
+		TCF	1/ACCFIX		# SET UP 1/ACCJOB AND EXIT.
+
+# Page 192
+VOPENED		INDEX	L			# A VALVE HAS JUST BEEN OPENED.
+		CS	5FAILTAB
+		MASK	CH5MASK
+		TS	CH5MASK			# REMOVE INHIBIT BIT FOR CHANNEL 5 JET.
+		
+		INDEX	L
+		CS	6FAILTAB
+		MASK	CH6MASK
+		TS	CH6MASK			# REMOVE INHIBIT BIT FOR CHANNEL 6 JET.
+		
+		CS	Q
+		MASK	PVALVEST
+		TS	PVALVEST		# RECORD ACTION TAKEN.
+		
+1/ACCFIX	CAF	PRIO27			# SET UP 1/ACCS SO THAT THE SWITCH CURVES
+		TC	NOVAC			#	FOR TJETLAW CAN BE MODIFIED IF CH5MASK
+		EBANK=	AOSQ			#	HAS BEEN ALTERED.
+		2CADR	1/ACCJOB
+		
+		TCF	RCSMONEX		# EXIT.
+		
+5FAILTAB	EQUALS	-1			# CH 5 JET BIT CORRESPONDING TO CH 32 BIT:
+		OCT	00040			# 8
+		OCT	00020			# 7
+		OCT	00100			# 6
+		OCT	00200			# 5
+		OCT	00010			# 4
+		OCT	00001			# 3
+		OCT	00004			# 2
+		OCT	00002			# 1
+		
+6FAILTAB	EQUALS	-1			# CH 6 JET BIT CORRESPONDING TO CH 32 BIT:
+		OCT	00010			# 8
+		OCT	00020			# 7
+		OCT	00004			# 6
+		OCT	00200			# 5
+		OCT	00001			# 4
+		OCT	00002			# 3
+		OCT	00040			# 2
+		OCT	00100			# 1
+		
+		
diff --git a/REENTRY_CONTROL.s b/REENTRY_CONTROL.s
new file mode 100644
index 0000000..f3ffbb8
--- /dev/null
+++ b/REENTRY_CONTROL.s
@@ -0,0 +1,1609 @@
+# Copyright:	Public domain.
+# Filename:	REENTRY_CONTROL.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:	844-882
+# Mod history:	2009-05-08 RSB	Adapted from the Colossus249/ file of the
+#				same name, using Comanche055 page images.
+#		2009-05-23 RSB	In a couple of 2OCT statements, removed the
+#				space between the first and second octal words.
+#
+# 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 844
+# ENTRY INITIALIZATION ROUTINE
+# ----------------------------
+
+		BANK	25
+		SETLOC	REENTRY
+		BANK
+		
+		COUNT*	$$/ENTRY
+		EBANK=	RTINIT
+		
+EBENTRY		=	EBANK7
+EBAOG		EQUALS	EBANK6
+NTRYPRIO	EQUALS	PRIO20		# (SERVICER)
+CM/FLAGS	EQUALS	STATE +6
+
+STARTENT	EXIT			# MM = 63
+
+					# COME HERE FROM CM/POSE.  RESTARTED IN CM/POSE.
+		CS	ENTMASK		# INITIALIZE ALL SWITCHES TO ZERO
+					# EXCEPT LATSW, ENTRYDSP, AND GONEPAST.
+					# GONEBY 112D BIT8 FLAG7, SELF-INITIALIZING.
+		INHINT
+		MASK	CM/FLAGS
+					# ENTRYDSP = 92D B13
+					# GONEPAST=95D B10	RELVELSW=96D B9
+					# EGSW = 97D B8
+					# HIND=99D B6		INRLSW=100D B5
+					# LATSW=101D B4		.05GSW=102D B3
+					
+		AD	ENTRYSW
+		TS	CM/FLAGS
+		
+		RELINT
+		
+		TC	INTPRET
+		
+		SLOAD
+			LODPAD
+		STORE	LOD
+		
+		SLOAD
+			LADPAD
+		STORE	LAD
+		
+		DMP			# L/DCMINR = LAD COS(15)
+			COS15
+		STODL	L/DCMINR
+			LATSLOPE
+		DMP	SR1		# KLAT = LAD/24
+			LAD
+# Page 845
+		STODL	KLAT
+			Q7F
+		STODL	Q7		# Q7 = Q7F
+			NEARONE		# 1.0 -1BIT
+		STODL	FACTOR
+			LAD
+		SIGN	DCOMP
+			HEADSUP		# MAY BE NOISE FOR DISPLAY P61
+		STCALL	L/D		# L/D = - LAD SGN(HEADSUP)
+		
+			STARTEN1	# RETURN VIA GOTOADDR
+		VLOAD	VXV
+			VN		# (-7) M/CS
+			UNITR		# .5 UNIT		REF COORDS
+		UNIT	DOT
+			RT		# RT/2 TARGET VECTOR	REF COORDS
+		STORE	LATANG		# LATANG = UNI.RT /4
+		DCOMP	RTB
+			SIGNMPAC
+		STODL	K2ROLL		# K2ROLL = -SGN(LATANG)
+		
+			LAD
+		DMP	DAD
+			Q21
+			Q22
+		STORE	Q2		# Q2 = -1152 + 500 LAD
+		
+		SSP	SSP
+			GOTOADDR	# SET SELECTOR FOR INITIAL PASS
+			INITROLL
+			POSEXIT
+			SCALEPOP	# SET CM/POSE TO CONTINUE AT SCALEPOP
+			
+		RTB
+			SERVNOUT	# OMIT INITIAL DISPLAY, SINCE 1ST GUESSBAD
+			
+# CALCULATE THE INITIAL TARGET VECTOR: RTINIT, ALSO RTEAST, RTNORM, AND RT.  ALL ARE .5 UNIT AND IN
+# REFERENCE COORDINATES.
+
+STARTEN1	STQ	VLOAD
+			GOTOADDR
+			LAT(SPL)	# TARGET COORDINATES
+		CLEAR	CLEAR		# DO CALL USING PAD RADIUS.  WILL UNIT IT.
+			ERADFLAG	# ANYWAY.
+			LUNAFLAG
+		STODL	LAT
+			3ZEROS
+			
+		STODL	LAT +4		# SET ALT=0.
+			PIPTIME		# ESTABLISH RTINIT AT TIME OF PRESENT
+# Page 846
+					# RN AND VN.
+		STCALL	TIME/RTO	# SAVE TIME BASE OF RTINIT.
+			LALOTORV	# C(MPAC) =TIME  (PIPTIME)
+		UNIT			# ANSWER IN ALPHAV ALSO
+		STODL	RTINIT		# .5 UNIT TARGET		REF COORDS
+			500SEC		# NOMINAL ENTRY TIME FOR P63
+					# TIME/RTO = PIPTIME, STILL.
+		STCALL	DTEAROT		# INITIALIZE EARROT
+			EARROT1		# GET R5
+		DOT	SL1
+			UNITR		# RT/2 IN MPAC
+		ACOS
+		STCALL	THETAH		# RANGE ANGLE /360
+			GOTOADDR	# RETURN TO CALLER
+			
+500SEC		2DEC	50000 B-28	# CS.
+
+ENTMASK		OCT	11774
+ENTRYSW		OCT	11010		# ENTRYDSP B13.  GONEPAST B10.  LATSW B4
+# Page 847
+
+SCALEPOP	CALL	
+			TARGETNG
+			
+		EXIT
+		
+REFAZE10	TC	PHASCHNG
+		OCT	10035		# SERVICER 5.3 RESTART AT REFAZE10
+		
+		TC	INTPRET
+		
+# JUMP TO PARTICULAR RE-ENTRY PHASE:
+#				SEQUENCE
+		GOTO
+			GOTOADDR
+			
+# GOTOADDR CONTAINS THE ADDRESS OF THE ROLL COMMAND EQUATIONS TO THE CURRENT PHASE OF
+# RE-ENTRY.  SEQUENCING IS AS FOLLOWS:
+#
+# INITROLL	ADDRESS IS SET HERE INITIALLY.  HOLDS INITIAL ROLL ATTITUDE UNTIL  KAT  IS EXCEEDED.  THEN HOLDS NEW ROLL
+#		ATTITUDE UNTIL  VRTHRESH  IS EXCEEDED.  THEN BRANCHES TO
+#
+# HUNTEST	THIS SECTION CHECKS TO SEE IF THE PREDICTED RANGE AT NOMINAL   L/D FROM PRESENT CONDITIONS IS LESS
+#		THAN THE DESIRED RANGE.
+#			IF NOT --- A ROLL COMMAND IS GENERATED BY THE CONSTANT DRAG CONTROLLER.
+#			IF SO  --- CONTROL AND GOTOADDR ARE SET TO UPCONTRL.
+#		USUALLY NO ITERATION IS INVOLVED EXCEPT IF THE RANGE DESIRED IS TOO LONG ON THE FIRST PASS THROUGH
+#		HUNTEST.
+#
+# UPCONTRL	CONTROLS ROLL DURING THE SUPER-CIRCULAR PHASE.  UPCONTRL IS TERMINATED EITHER
+#			(A) WHEN THE DRAG (AS MEASURED BY THE PIPAS) FALLS BELOW Q7, OR
+#			(B) IF RDOT IS NEGATIVE AND REFERENCE VL EXCEEDS V.
+#		IN CASE (A),  GOTOADDR  IS SET TO  KEP2  AND IN CASE (B), TO  PREDICT3  SKIPPING THE KEPLER PHASE OF
+#		ENTRY.
+#
+# KEP2		GOTOADDR IS SET HERE DURING THE KEPLER PHASE TO MONITOR DRAG.  THE SPACECRAFT IS INSTANTANEOUSLY
+#		TRIMMED IN PITCH AND YAW TO THE COMPUTED RELATIVE VELOCITY.  THE LAST COMPUTED ROLL ANGLE IS MAINTAINED.
+#		WHEN THE MEASURED DRAG EXCEEDS Q7 +0.5,  GOTOADDR  IS SET TO
+#
+# PREDICT3	THIS CONTROLS THE FINAL SUB-ORBITAL PHASE. ROLL COMMANDS CEASE
+#		WHEN  V  IS LESS THAN  VQUIT .  AN EXIT IS MADE TO
+#
+# P67.1		THE LAST COMPUTED ROLL ANGLE IS MAINTAINED.  RATE DAMPING IS DONE IN PITCH AND YAW.  PRESENT LATITUDE
+#		AND LONGITUDE ARE COMPUTED FOR DISPLAY.
+#		ENTRY IS TERMINATED WHEN DISKY RESPONSE IS MADE TO THIS FINAL FLASHING DISPLAY.
+
+# Page 848
+# PROCESS AVERAGE G OUTPUT...SCALE IT AND GET INPUT DATA
+
+# * START  TARGETING ...
+
+		EBANK=	RTINIT
+		
+					# TARGETNG IS CALLED BY P61, FROM GROUP 4.
+					# TARGETNG IS CALLED BY ENTRY, FROM GROUP 5.
+			
+					# ALL MM COME HERE.		
+TARGETNG	BOFF	VLOAD		# ENTER WITH PROPER EB FROM CM/POSE(TEST)
+			RELVELSW	# RELVELSW = 96D BIT9
+			GETVEL		# WANT INERTIAL VEL.  GO GET IT.
+			-VREL		# NEW V IS RELATIVE, CONTINUE
+			
+		VCOMP	GOTO		# (VREL) = (V) + KWE UNITR*UNITW
+			GETUNITV -1	# - VREL WAS LEFT BY CM/POSE
+			
+GETVEL		VLOAD	VXSC		# INERTIAL V WANTED
+			VN		# KVSCALE = (12800 / .3048) / 2VS
+			KVSCALE		# KVSCALE = .81491944
+		STORE	VEL		# V/2 VS
+		
+GETUNITV	UNIT	STQ
+			60GENRET
+		STODL	UNITV
+			34D
+		STORE	VSQUARE		# VSQ/4
+		
+		DSU			# LEQ = VSQUARE - 1
+			FOURTH		# 4 G'S FULL SCALE
+		STODL	LEQ		# LEQ/4
+		
+			36D
+		STOVL	V		# V/2 VS = VEL/2 VS
+		
+			VEL
+		DOT	SL1		# RDOT= V.UNITR
+			UNITR
+		STOVL	RDOT		# RDOT /2 VS
+		
+			DELV		# PIPA COUNTS IN PLATFORM COORDS.
+		ABVAL	DMP
+			KASCALE
+		SL1	BZE
+			SETMIND
+DSTORE		STOVL	D		# ACCELERATION USED TO APPROX DRAG
+			VEL
+		VXV	UNIT		# UNI = UNIT(V*R)
+# Page 849
+		UNITR
+		STORE	UNI		# .5 UNI		REF COORDS.
+		
+		BOFF	DLOAD
+			RELVELSW
+			GETETA
+			3ZEROS
+UPDATERT	DSU	DAD		# PIPTIME-TIME/RTO =ELAPSED TIME SINCE
+					# RTINIT WAS ESTABLISHED.
+			TIME/RTO
+			PIPTIME
+		STCALL	DTEAROT		# GET PREDICTED TARGET VECTOR RT
+		
+			EARROT2
+		DOT	SETPD		# SINCE (RT) UNIT VECT, THIS IS 1/4 MAX
+			UNI		# LATANG = RT.UNI
+			0
+		STOVL	LATANG		# LATANG = MAC LATANG / 4
+		
+			RT
+		CLEAR
+			GONEBY		# SHOW HAVE NOT GONE PAST TARGET.
+		VXV	DOT		# IF RT*UNITR.UNI NEG, GONEBY=1
+			UNITR		# GONEPAST IS CONDITIONAL SW SET IN
+			UNI		# FINAL PHASE.
+		BPL	SET
+			+2
+			GONEBY		# SHOW HAVE GONE PAST TARGET.
+			
+		VLOAD
+			RT
+GETANGLE	DOT	DSU		# THETA = ARCCOS(RT.UNITR)
+			UNITR
+			NEAR1/4		# TO IMPROVE ACCURACY, CALC RANGE BY
+		BPL	DAD		# TINYTHET IF HIGH ORDER PART OF
+			TINYTHET	# ARCCOS ARGUMENT IS ZERO
+			NEAR1/4
+		SL1	ACOS
+THETDONE	STORE	THETAH		# THETAH/360
+					# HI WORD, LO BIT =1.32 NM=360 60/16384
+					
+		BON	DCOMP
+			GONEBY		# =1 IF HAVE GONE PAST TARGET.
+					# (SIGN MAY BECOME ERRATIC VERY NEAR
+					# TARGET DUE TO LOSS OF PRECISION.)
+			+1
+		STODL	RTGON67		# RANGE ERROR:  NEG IF WILL FALL SHORT.
+		
+			D
+		DSU	BMN
+# Page 850
+			.05G
+			NO.05G
+		SET	VLOAD
+			.05GSW
+			DELVREF
+		PUSH	DOT
+			UXA/2
+		SL1	DSQ
+		PDVL	VSQ		# EXCHANGE WITH PDL.
+		DSU	DDV
+			0
+		BOV	SQRT
+			NOLDCALC	# OVFL LAST CLEARED IN EARROT2 ABOVE.
+		STORE	L/DCALC
+		
+NOLDCALC	GOTO
+			60GENRET
+			
+NO.05G		CLEAR	GOTO		# THIS WAY FOR DAP. (MAY INTERRUPT)
+			.05GSW		# .05GSW = 102D B3
+			NOLDCALC	# KEEP SINGLE EXIT FOR TARGETING
+
+# Page 851
+# SUBROUTINES CALLED BY SCALEPOP (TARGETING):
+
+		BANK	26
+		SETLOC	REENTRY1
+		BANK
+		
+		COUNT*	$$/ENTRY
+		
+GETETA		DLOAD	DDV		# D = D +D(-RDOT/HS -2D/V)  DT/2
+					# DT/2 = 2/2 =1
+			RDOT
+			-HSCALED
+		PDDL	DMP
+			D
+			-KSCALE
+		DDV	DAD
+			V
+					# -RDOT/HS FROM PDL.
+		DMP	DAD
+			D
+			D
+		STORE	D
+		
+		BON	DLOAD		# EGSW INDICATES FINAL PHASE
+			EGSW
+			SUBETA
+			THETAH
+		DMP	GOTO
+			KTETA		# = 1000x2PI/(2)E14 163.84
+			UPDATERT
+			
+SUBETA		DLOAD	DSU		# SWITCH FROM INERTIAL TO RELATIVE VEL.
+			V
+			VMIN
+		BPL	SET
+			SUBETA2
+			RELVELSW
+			
+SUBETA2		DLOAD	DMP
+
+			THETAH
+			KT1		# KT1 = KT
+		DDV	GOTO
+			V		# KT = RE(2 PI)/2 VS 16384 163.84/ 2 VSAT
+			UPDATERT
+			
+SETMIND		DLOAD	GOTO
+			1BITDP
+			DSTORE
+			
+# Page 852
+TINYTHET	DSU	ABS		# ENTER WITH X-.249
+			1BITDP +1	# GET 1/4 - MPAC
+		SL	SQRT		# SCALE UP BEFORE SQRT
+			13D		# HAS FACTOR FOR UP SCALING
+		DMP	GOTO
+			KACOS
+			THETDONE
+			
+# Page 853
+# * START	INITIAL ROLL ...
+
+		BANK	25
+		SETLOC	REENTRY
+		BANK
+		
+		COUNT*	$$/ENTRY
+		
+					# MM = 63, 64, ...
+INITROLL	BON	BOFF		# IF D- .05G NEG, GO TO LIMITL/D
+			INRLSW
+			INITRL1
+			.05GSW
+			LIMITL/D
+			
+					# MM = 64, NOW
+					#	      3
+					# KA = KA1 LEG  + KA2
+		DLOAD	DSQ
+			LEQ
+		DMP	DDV
+			LEQ
+			1/KA1		# = 25 /(64  1.8)
+		DAD	RTB
+			KA2		# = .2
+			P64		# ROLLC		VI		RDOT
+					# XXX.XX DEG	XXXXX. FPS	XXXXX. FPS
+		STORE	KAT
+		
+		DSU	BMN
+			KALIM
+			+4
+		DLOAD	
+			KALIM
+		STORE	KAT
+		DLOAD	DSU		# IF V-VFINAL1 NEG, GO TO FINAL PHASE.
+			V
+			VFINAL1
+		CLEAR	BPL		# (CAN'T CLEAR INRLSW AFTER HERE: RESTARTS)
+			GONEPAST	# GONEPAST WAS INITIALLY SET=1 TO FORCE
+					# ROLLC TO REMAIN AS DEFINED BY HEADSUP
+					# UNTIL START OF P64.  (UNTIL D > .05G)
+			D0EQ
+		SSP	GOTO
+			GOTOADDR
+			KEP2		# AND IDLE UNTIL D > 0.2 G.  (NO P66 HERE)
+			INROLOUT	# GO TO LIMITL/D AFTER SETTING INRLSW.
+			
+D0EQ		DLOAD	DMP		# D0 = KA3 LEQ + KA4
+# Page 854
+			LEQ
+			KA3
+		DAD
+			KA4
+		STORE	D0		# D0/805
+		BDDV	BOV
+			C001		# (-4/25 G) B-8
+			+1		# CLEAR OVFIND, IF ON.
+		STODL	C/D0		# (-4/D0) B-8
+			LAD		# IF V-VFINAL +K(RDOT/V)CUBED POS,L/D=-LAD
+		STODL	L/D
+			RDOT
+		DDV	PUSH
+			V
+		DSQ	DMP
+		DDV	DSU
+			1/K44
+			VFINAL
+					#		    3
+					# V-VFINAL +(RDOT/V)  / K44	OVFL $
+					
+		DAD	BOV
+			V
+			INROLOUT	# GO TO LIMITL/D AFTER SETTING INRLSW.
+		BMN	DLOAD
+			INROLOUT	# GO TO LIMITL/D AFTER SETTING INRLSW.
+			LAD
+		DCOMP
+		STORE	L/D
+		
+					# SET INRLSW AT END FOR RESTART PROTECTION
+INROLOUT	BOFSET			# END OF PRE .05G PATH OF INITROLL.
+			INRLSW		# SWITCH IS ZERO INITIALLY.
+			LIMITL/D	# (GO TO)
+			
+KATEST		DLOAD	DSU		# IF KAT - D POS, GO TO CONSTD
+			KAT
+			D		# IF POS, OUT WITH COMMAND VIA LIMITL/D
+		BPL	GOTO
+			LIMITL/D
+			CONSTD
+			
+INITRL1		DLOAD	DAD		# IF RDOT + VRCONT POS, GO TO HUNTEST
+			RDOT
+			VRCONT
+		BMN	CALL		# IF POSITIVE, FALL INTO HUNTEST.
+			KATEST
+			
+			FOREHUNT	# INITIALIZE HUNTEST.
+			
+# Page 855
+# * START	HUNT TEST ...
+					# MM = 64
+		SSP			# INITIALIZE HUNTEST ON FIRST PASS
+			GOTOADDR
+			HUNTEST		# MUST GO AFTER FOREHUNT FOR RESTARTS.
+			
+HUNTEST		DLOAD
+			D
+		STODL	A1		# A1/805 = A1/25G
+		
+			LAD
+		STODL	TEM1B
+			RDOT
+		BMN	DLOAD		# IF RDOT NEG,TEM1B=LAD, OTHERWISE = LEWD
+			A0CALC
+			LEWD
+		STODL	TEM1B
+		
+			RDOT
+A0CALC		DDV	DAD		# V1 = V + RDOT/TEM1B
+			TEM1B
+			V
+		STODL	V1		# V1/2 VS
+		
+			RDOT
+		DSQ	DDV		# A0=(V1/V)SQ(D+RDOT SQ/(TEM1B 2 C1 HS)
+			TEM1B
+		DDV	DAD
+			2C1HS
+			D
+		DMP	DMP
+			V1
+			V1
+		DDV
+			VSQUARE
+		STODL	A0		# A0/805 = A0/25G
+		
+			RDOT
+		BPL	DLOAD
+			V1LEAD
+			A0
+		STORE	A1		# A1/25G
+		
+V1LEAD		DLOAD	BPL		# IF L/D NEG, V1=V1 - 1000
+			L/D
+			HUNTEST1
+			
+		DLOAD	DSU
+			V1
+# Page 856
+			VQUIT
+		STORE	V1
+		
+HUNTEST1	DLOAD	DMP		# ALP = 2 C1 HS A0/LEWD V1 V1
+			A0
+			2C1HS
+		DDV	SETPD
+			V1
+			0
+		DDV	DDV
+			V1
+			LEWD
+		STORE	ALP
+		
+		BDSU	BDDV		# FACT1 = V1 / (1 - ALP)
+			BARELY1
+			V1
+		STODL	FACT1		# FACT1 / 2VS
+		
+			ALP
+		DSU	DMP		# FACT2 = ALP(ALP - 1) / A0
+			BARELY1
+			ALP
+		DDV
+			A0
+		STORE	FACT2		# FACT2 (25G)
+		
+		DMP	DAD
+			Q7		# Q7 / 805 = Q7 / 25G
+			ALP		# VL=FACT1 (1-SQRT(Q7 FACT2 +ALP) )
+		SQRT	BDSU
+			BARELY1
+		DMP
+			FACT1
+		STORE	VL		# VL / 2 VS
+		
+		BDSU	DMP		# GAMMAL1 = LEWD (V1-VL)/VL
+			V1
+			LEWD
+		DDV
+			VL
+		STODL	GAMMAL1		# GAMMAL1 USED IN UPCONTROL.
+		
+					# GAMMAL1 = PDL 22D.
+			VL
+		DSU	BMN		# IF VL-VLMIN NEG, GO TO PREFINAL
+			VLMIN
+			PREFINAL
+			
+		DLOAD	DSQ
+# Page 857
+			VL
+		STODL	VBARS		# VBARS / 4 VS VS
+		
+			HALVE		# IF VSAT-VL NEG, GO TO CONSTD
+		DSU	BMN
+			VL
+			BECONSTD	# SET MODE=HUNTEST, CONTINUE IN CONSTD
+		STODL	DVL		# DVL / 2VS
+		
+			HALVE
+		STORE	VS1		# VS1 = VSAT
+		
+		DSU	BMN		# IF V1 GREATER THAN VSAT, GO ON
+			V1
+			GETDHOOK
+		BDSU
+			DVL
+		STODL	DVL		# DVL = DVL - (VSAT-V1) = V1 - VL
+			V1
+		STORE	VS1		# VS1 = V1, IN THIS CASE
+		
+GETDHOOK	DLOAD	CALL		# DHOOK=((1-VS1/FACT1) SQ -ALP)/FACT2
+			VS1		# VS1 / 2 VS
+			DHOOKYQ7	# GO CALC DHOOK
+		STORE	DHOOK		# DHOOK / 25G
+		
+		SR	DDV
+			6		# CHOOK
+			Q7
+		DSU	
+			CHOOK		# = .25/16 = (-6)
+		STORE	AHOOKDV
+		
+		DAD	DMP		# GAMMAL= GAMMAL1-CH1 DVL SQ(1+AHOOK DVL)
+			1/16TH
+			CH1
+		DMP	DMP
+			DVL
+			DVL
+		DDV	DDV
+			DHOOK
+			VBARS
+		BDSU	BMN
+			GAMMAL1
+			NEGAMA
+HUNTEST3	STORE	GAMMAL
+
+		DSU			# GAMMAL1=GAMMAL1 +Q19 (GAMMAL-GAMMAL1)
+			GAMMAL1
+		DMP	DAD
+# Page 858
+			Q19
+			GAMMAL1
+		STODL	GAMMAL1
+			GAMMAL
+
+# Page 859
+# *START	RANGE PREDICTION ...
+					# C(MPAC) = GAMMAL.
+RANGER		DSQ	SR2		# COSG = 1-GAMMAL SQ/2, TRUNCATED SERIES
+		BDSU
+			HALVE
+		STODL	COSG/2
+			VBARS		# E=SQRT(1+VBARS........
+			
+		DSU	DMP
+			HALVE
+			VBARS
+		DMP	DMP
+			COSG/2
+			COSG/2
+		SL2	DAD
+			C1/16		# C1/16 = 1/16
+		SQRT	PDDL		# E/4 INTO PDL
+		
+			VBARS
+		DMP	DMP		# ASKEP/2 = ARCSIN(VBARS COSG SING/E)
+			COSG/2
+			GAMMAL
+		DDV	ASIN
+		SL1	PUSH		# ASKEP TO PDL 0.
+		STODL	ASKEP		# BALLISTIC RANGE	ASKEP/2PI
+		
+					# FOR TM, STORE RANGE COMPONENTS OVERLAPPING (SP)
+			VL
+		DMP	DAD		# ASP1 = Q2 + Q3 VL
+			Q3
+			Q2
+		STORE	ASP1		# FINAL PHASE RANGE	ASP1/2 PI
+		
+		PDDL	DSQ		# ASP1 TO PDL 2.
+			V1
+					#		    2
+					# ASPUP= -C12 LOG(V1 Q7/VBARS A0)/GAMMAL1
+		DMP	DDV
+			Q7
+			VBARS
+		DDV	CALL
+			A0
+			LOG		# RETURN WITH -LOG IN MPAC
+			
+		DMP	DDV
+			C12
+			GAMMAL1
+		STORE	ASPUP		# UP PHASE RANGE	ASPUP / 2 PI
+# Page 860
+		PDDL	DMP		# ASPUP TO PDL 4.
+			KC3		# KC3 = -4 VS VS / 2 PI 805 RE
+					# ASPDWN = KC3 RDOT V / A0
+			RDOT
+		DMP	DDV
+			V
+			A0
+		DDV	PUSH		# ASPDWN TO PDL 6.
+			LAD
+		STODL	ASPDWN		# RANGE TO PULL OUT	ASPDWN /2 PI
+		
+			Q6
+		DSU	DMP		# ASP3 = Q5(Q6-GAMMAL)
+			GAMMAL
+			Q5
+		STOVL	ASP3		# GAMMA CORRECTION	ASP3/2PI
+		
+			ASKEP		# GET HI-WD AND
+		STODL	ASPS(TM)	# SAVE HI-WORD OF ASP'S FOR TM.
+		
+			ASP3
+		DAD	DAD
+					# ASPDWN FROM PDL 6.
+					# ASPUP FROM PDL 4.
+		DAD	DAD
+					# ASP1 FROM PDL 2.
+					# ASKEP FROM PDL 0.
+		DSU	BOVB		# CLEAR OVFIND.
+			THETAH
+			TCDANZIG
+		STORE	DIFF		# DIFF = (ASP-THETAH) / 2 PI
+					# ASP=ASKEP+ASP1+ASPUP+ASP3+ASPDWN = TOTAL RANGE
+					
+		ABS	DSU		# IF ABS(THETAH-ASP) -25NM NEG, GO TO UPSY
+			25NM
+		BMN	BON
+			GOTOUPSY
+			HIND
+			GETLEWD
+			
+		DLOAD	BPL
+			DIFF
+			DCONSTD		# EVENTUALLY SETS MODE = HUNTEST.
+GETLEWD		DLOAD	DMP
+					# DLEWD = DLEWD (DIFF/(DIFFOLD-DIFF))
+			DLEWD
+			DIFF
+		PDDL	DSU
+			DIFFOLD
+			DIFF
+# Page 861
+		BDDV
+LWDSTORE	STADR
+		STORE	DLEWD
+		DAD	BMN		# IF LEWD+DLEWD NEG, DLEWD=-LEWD/2
+			LEWD
+			LEWDPTR
+		BOV
+			LEWDOVFL
+		STORE	LEWD
+		
+SIDETRAK	EXIT
+
+		CA	EBENTRY
+		TS	EBANK
+		
+		CA	PRIO16		# DROP GRP 5 RESTART PRIO TO 1 LESS THAN
+		TS	PHSPRDT5	# GRP 4.
+		
+		TC	PHASCHNG
+		OCT	00474		# RESTART GRP 4 AT PRE-HUN.
+					# FORCE RESTART TO PICK UP IN GRP 4:
+					# USE PRIO 17 FOR GRP 4 (< SERVICER PRIO)
+		CA	PRIO16		# CONTINUE GRP 5 AT LOWER PRIO THAN EITHER
+					# GRP 4 OR SERVICER.
+		TC	PRIOCHNG
+		
+		CAF	ADENDEXT	# SIDETRACK NEXT PASS UNTIL THIS ONE DONE.
+		TS	GOTOADDR	# ONLY AFTER RESTART IS LEFT AFTER DETOUR.
+		
+		TC	INTPRET
+		
+		DLOAD	SET
+			DIFF
+			HIND
+		STODL	DIFFOLD		# DIFFOLD / 2 PI
+		
+			Q7F
+		STCALL	Q7		# Q7 / 805 FPSS
+			HUNTEST		# (GO TO)
+			
+LEWDOVFL	DLOAD
+			NEARONE
+		STCALL	LEWD
+			DCONSTD		# (GO TO)  ALSO WILL SET MODE = HUNTEST
+			
+LEWDPTR		DLOAD	SR1
+			LEWD
+		DCOMP	GOTO
+			LWDSTORE
+
+# Page 862
+NEGAMA		DMP	DMP		# ENTER WITH GAMMAL IN MPAC
+
+			VL
+			1/3RD
+		PDDL	DMP		# PUSH GAMMAL VL/3
+			LEWD
+			1/3RD
+		PDDL	DAD		# PUSH LEWD/3
+			AHOOKDV
+			1/24TH
+		DMP	DMP		# DEL VL = (GAMMAL VL/3)/(LEWD/3-DVL
+			DVL		# (2/3 + AHOOKDV)(CH1 GS/DHOOK VL))
+			CH1
+		DDV	DDV
+			DHOOK
+			VL
+		BDSU	BDDV
+					# LEWD/3
+					# GAMMAL VL /3
+		DAD
+			VL
+		STCALL	VL		# VL/2 VS
+		
+			DHOOKYQ7	# GO CALC Q7
+					# Q7=((1-VL/FACT1)SQ - ALP)/FACT2
+		STODL	Q7		# Q7 / 25G
+		
+			VL
+		DSQ
+		STODL	VBARS		# VBARS / 4 VS VS
+		
+			3ZEROS
+		GOTO			# SET GAMMAL = 0
+			HUNTEST3
+			
+DHOOKYQ7	SR1	DDV		# SUBROUTINE TO CALC DHOOK OR Q7
+			FACT1
+		BDSU	SL1
+			HALVE
+		DSQ	DSU
+			ALP
+		DDV	RVQ
+			FACT2
+			
+# Page 863
+					# COME TO PRE-HUNT WHEN RESTART OCCURS AFTER
+					# HUNTEST IS SIDE-TRACKED AT SIDETRAK.
+					# PICK UP IN GROUP 4.
+					
+PRE-HUNT	TC	INTPRET
+		CLEAR	CALL
+			HIND		# HIND	99D BIT 6 FLAG 6
+			FOREHUNT	# RE-INITIALIZE HUNTEST AFTER RE-START.
+		GOTO
+			HUNTEST
+			
+FOREHUNT	DLOAD			# INITIALIZE HUNTEST.
+			3ZEROS
+		STODL	DIFFOLD
+			DLEWD0
+		STODL	DLEWD
+			LEWD1
+		STORE	LEWD
+		RVQ
+		
+ADENDEXT	CADR	ENDEXIT
+
+# Page 864
+# * START	UP CONTROL ...
+					# MM = 65
+GOTOUPSY	RTB			# END OF HUNTEST
+			P65		# HUNTEST USE OF GRP4 IS DISABLED BY P65
+					# USE FOR DISPLAY.
+					# SET MODE = UPCONTRL.
+					# RETURN FROM P65 DIRECTLY TO UPDONTRL
+					# VIA THE GOTOADDR AT REFAZE10.
+					
+UPCONTRL	DLOAD	DSU		# IF D-140 POS, NOSWITCH =1
+			D		# (SUPPRESS LATERAL SWITCH)
+			C21
+		BMN	SET
+			+2
+			NOSWITCH
+			
+		DLOAD	DSU		# IF V-V1 POS, GO TO DOWN CONTROL.
+			V
+			V1
+		BPL	DLOAD
+			DOWNCNTL
+			D
+		DSU	BMN		# IF D- Q7 NEG, GO TO KEP
+			Q7
+			KEP
+		DLOAD	BPL		# IF RDOT NEG, DO VLTEST
+			RDOT
+			CONT1
+			
+VLTEST		DLOAD	DSU		# IF V-VL-C18 NEG,EGSW=1,MODE=PREDICT3
+			V
+			VL
+		DSU	BMN
+			C18
+			PREFINAL
+			
+CONT1		DLOAD			# IF D-A0 POS, L/D = LAD, GO TO LIMITL/D
+			D
+		DSU	BMN
+			A0
+			CONT3
+		DLOAD	GOTO
+			LAD
+			STOREL/D
+			
+CONT3		DLOAD	DMP		# VREF=FACT1(1-SQRT(FACT2 D + ALP))
+			D
+			FACT2
+# Page 865
+		DAD	SQRT
+			ALP
+		BDSU	DMP
+			BARELY1
+			FACT1
+		STORE	VREF		# VREF / 2VS
+		
+		BDSU	DMP		# RDOTREF = LEWD(V1-VREF)
+			V1
+			LEWD
+		STODL	RDOTREF		# RDOTREF / 2VS
+		
+			VS1
+		DSU	BMN		# IF VSAT-VREF NEG, GO TO CONTINU2
+			VREF
+			CONTINU2
+			
+		PUSH	PUSH		# VS1-VREF  TO PDL TWICE
+		DMP	DDV		# RDHOOK=CHI1(1+DV AHOOKDV/DVL) DV DV
+			AHOOKDV		#	/DHOOK VREF
+			DVL		# WHERE  DV = (VS1-VREF)
+		DAD	DMP
+			1/16TH
+			CH1
+		DMP	DMP
+					# VS1-VREF  FROM PDL TWICE.
+		DDV
+			DHOOK
+		DDV	BDSU
+			VREF
+			RDOTREF		# C(RDOTREF)= LEWD (V1-VREF)
+		STORE	RDOTREF		# RDOTREF = RDOTREF - RDHOOK
+		
+CONTINU2	DLOAD	DSU
+			D
+			Q7MIN
+		BOVB	BMN
+			TCDANZIG	# CLEAR OVFL IND, IF ON.
+			UPCNTRL3
+		DLOAD	DSU
+			A1
+			Q7
+		PDDL	DSU
+			D
+			Q7
+		DDV	STADR
+		STORE	FACTOR		# FACTOR / 25G
+		
+# Page 866
+# SKIPPER
+					# DELTA L/D=-((RDOT-RDOTREF)F1 KB1+V-VREF)F1 KB2
+					#	WHERE F1 = FACTOR
+					
+UPCNTRL3	DLOAD
+			RDOT
+		DSU	DMP		# L/D = LEWD
+			RDOTREF		# -((RDOT-RDOTREF)F1/KB1+V-VREF)F1/KB2
+			FACTOR
+		DDV	DAD
+			1/KB1
+			V
+		DSU	DMP
+			VREF
+			FACTOR
+		DDV	PUSH
+		
+			-1/KB2		# DELTA L/D INTO PDL
+		BOV	ABS		# NONLINEAR CIRCUIT FOR REDUCING HIGH GAIN
+			GOMAXL/D
+		DSU	BMN
+			PT1/16
+			NEXT1
+		DMP	DAD
+			POINT1
+			PT1/16
+		SIGN	PUSH		# ATTACH SIGN OF PUSH TO MPAC THEN PUSH
+		
+NEXT1		DLOAD	SL4
+					# DELTA L/D FROM PDL.
+					
+		DAD
+			LEWD
+NEGTESTS	BOV	PUSH		# L/D TO PDL FOR USE IN NEGTESTS.
+			GOMAXL/D
+		STODL	L/D
+					# IF D-C20 POS, LATSW =0
+					# AND IF L/D NEG, L/D = 0.
+			D
+		DSU	BMN
+			C20
+			LIMITL/D
+		CLEAR	DLOAD
+			LATSW		# =21D.  ROLL OVER TOP, REGARDLESS.
+					# L/D FROM PDL.
+		BPL	DLOAD
+			LIMITL/D
+			3ZEROS
+		STCALL	L/D
+			LIMITL/D	# (GO TO)
+
+# Page 867
+DCONSTD		DLOAD			# TWO RANGER ENTRIES TO CONSTD HERE
+			DIFF
+					# SAVE OLD VALUE OF DIFF FOR NEXT PASS.
+		STODL	DIFFOLD		# DIFFOLD / 2 PI
+		
+			Q7F
+		STORE	Q7
+		
+BECONSTD	SSP	RTB		# A HUNTEST ENTRY INTO CONSTD.
+			GOTOADDR	# RESET MODE TO HUNTEST
+			HUNTEST
+			KILLGRP4	# DEACTIVATE GRP4 FROM HUNTEST.
+			
+CONSTD		BOVB	
+			TCDANZIG	# CLEAR OVF IND IF ON.
+			
+		DLOAD	DMP
+			LEQ
+			C/D0		# C/D0 = -4/D0 B-8
+		PDDL	DMP		# LEQ C/D0 INTO PDL
+			2HS		# 2HS / 4 VS VS
+			D0
+		DDV	DAD		# RDOTREF = -2 HS D0/V
+			V
+			RDOT
+		DMP	DAD
+			K2D		# C/D0 LEQ + K2D(RDOT-RDOTREF) INTO PD
+		PDDL
+			D0		# D0 /805
+			
+CONSTD1		BDSU			# ENTER WITH DREF IN MPAC
+			D
+		DMP	DAD
+			K1D		# K2D TERM FROM PUSH
+		SL	GOTO
+			8D
+			NEGTESTS	# (GO TO)
+			
+DOWNCNTL	BOVB			# INITIAL PART OF UPCONTROL.
+			TCDANZIG	# CLEAR OVFIND, IF ON.
+			
+		DLOAD	SR
+			LAD
+			8D
+		PDDL	DSU		# RDTR = LAD(V1-V)
+			V
+			V1
+		DMP	DAD
+			LAD
+# Page 868
+			RDOT
+		DMP	DAD
+			K2D
+					# PUSH UP LAD.
+		PDDL	DSU		# LAD + K2D(RDOT-RDTR) INTO PD
+			V1
+			V
+		DSQ	DMP
+			LAD
+		DDV	PDDL		# (V1-V)SQ LAD/(2 C1 HS) INTO PD
+			2C1HS
+			V1
+		DSQ	DDV
+			VSQUARE
+		BDDV	DSU		# DREF = (V/V1)SQ A0 - PD
+			A0
+					# PUSH UP HERE
+		GOTO			# C(MPAC) = DREF
+			CONSTD1
+			
+					#              2           2
+					# DREF = (V/V1)  A0 -(V-V1)  LAD/2 C1 HS
+# Page 869
+# * START	BALLISTIC PHASE ...
+					# MM = 66	UPCONTRL ENTRY INTO KEP2
+KEP		RTB	SSP
+			P66		# DISPLAY TRIM GIMBAL ANGLE VALUES.
+			GOTOADDR	# SET GOTOADDR TO KEPLER PHASE.
+			KEP2
+			
+					# KEP2 CAN ALSO BE STARTED UP DIRECTLY FROM INITROLL
+					# IN P64.  PROGRAM WILL IDLE IN P64 UNTIL D EXCEEDS
+					# .2 G BEFORE GOING ON TO P67.
+					
+KEP2		DLOAD	DSU		# IF Q7F+KDMIN -D NEG, GO TO FINAL PHASE.
+			Q7FKDMIN	# (Q7F + KDMIN)/805
+			D
+		BMN	TLOAD
+			PREFINAL
+					# SET ROLLHOLD = ROLLC, IN CASE CMDAPMOD
+			ROLLC		# = +1 EVER ENTERED.
+		BON	TLOAD		# IF D > .05G, KEEP PRESENT ROLL COMMAND.
+			.05GSW		# IF D < .06G, SET ROLL COMMAND = 0.
+			+2
+			3ZEROS		# SET ROLLC & ROLLHOLD =0.
+	+2	STCALL	ROLLC		# (SP ROLLHOLD FOLLOWS DP ROLLC)
+			P62.3		# CALC DESIRED GIMBAL ANGLES AT PRESENT
+					# RN, VN TO YIELD TRIM ATTITUDE.
+					# AVAILABLE IN CPHI'S FOR N22.
+# Page 870
+# START FINAL PHASE ...
+					# MM = 67
+PREFINAL	SSP	RTB
+			GOTOADDR	# RESTART PROTECT: RESET GOTOADDR IF CAME
+			PREFINAL	# FROM HUNTEST.
+			P67		# DISABLES GRP4.  FINE IF FROM HUNTEST, BUT 
+					# MAY ALSO REMOVE RESTART PROTECTION OF
+					# N69 (P65).
+					# ROLLC		XRNGERR		DNRNGERR
+					# XXX.XX DEG	XXXX.X NM	XXXX.XX NM
+					
+		SET	SSP
+			EGSW
+			GOTOADDR
+			PREDICT3
+			
+PREDICT3	DLOAD	DSU		# IF V-VQUIT NEG, STOP STEERING
+			V
+			VQUIT
+		BMN	EXIT
+			STEEROFF
+			
+		CA	EBENTRY		# PRECAUTIONARY.
+		TS	EBANK
+		
+		CA	TWELVE
+BACK		TS	JJ
+
+		CS	V
+		INDEX	JJ
+		AD	VREFER		# VREF - V, HIGHEST VREF AT END OF TABLE.
+		CCS	A		# IF VREF-V POS LOOP BACK
+		CCS	JJ		# DECREMENT JJ, JJ CANNOT BE ZERO
+		TCF	BACK
+		AD	ONE
+		TS	TEM1B		# V-VREF IN TEM1B (MUST BE POSITIVE NUM)
+		
+		INDEX	JJ
+		CS	VREFER
+		INDEX	JJ
+		AD	VREFER +1	# V(K+1) - V(K)			(POS NUM)
+		XCH	TEM1B
+		ZL	
+		EXTEND
+		DV	TEM1B
+		TS	GRAD		# GRAD = (V-VREF)/(VK+1 - VK)	(POS NUM)
+		
+		CAF	FIVE
+
+# Page 871
+BACK2		TS	MM
+		CAF	THIRTEEN
+		ADS	JJ
+		INDEX	A
+		CS	VREFER
+		INDEX	JJ
+		AD	VREFER	 +1	# X(K+1) - X(K)
+		EXTEND
+		MP	GRAD
+		INDEX	JJ
+		AD	VREFER
+		INDEX	MM
+		TS	FX		# FX = AK + GRAD (AK+1 - AK)
+		CCS	MM
+		TCF	BACK2
+		XCH	FX 	+1	# ZERO FX +1 AND GET DREFR
+		AD	D
+		EXTEND
+		MP	FX	+5	# F1
+		DXCH	MPAC		# MPAC = F1(D-DREF)
+		
+		EXTEND
+		DCS	RDOT		# FORM RDOTREF - RDOT
+		DDOUBL
+		DDOUBL
+		DDOUBL			# SCALE UP BY 8 FOR THIS PHASE.
+		AD	FX 	+3	# RDOTREF
+		EXTEND
+		MP	FX 	+4	# F2
+		AD	FX	+2	# RTOGO
+		DAS	MPAC		# ADD F2(DADV1-DADVR)
+		CA	MPAC
+		TS	PREDANG
+					# L/D = LOD + (THETA- PREDANG)/ Y
+		TC	INTPRET
+		
+		SR3	DSU
+			THETAH
+		BON	BOFF
+			GONEPAST
+			GONEGLAD
+			GONEBY
+			HAVDNRNG
+		DLOAD	SET		# SET GONEPAST IF GONEBY SET & LATCH IN-PLACE
+			MAXRNG		# DISPLAY = 9999.9 IF GONEBY
+			GONEPAST
+		STCALL	DNRNGERR
+			GONEGLAD
+			
+HAVDNRNG	STORE	DNRNGERR	# = (PREDANG - THETA) /360
+# Page 872
+		DCOMP			# FALLS SHORT IF NEG, OVERSHOOT IF POS
+		BOVB	DDV
+			TCDANZIG	# CLEAR OVFIND IF ON.
+			FX		# FX= DRANGE/D L/D = Y
+		SL	BOV
+			5
+			GOMAXL/D
+		DAD	BOV
+			LOD
+			GOMAXL/D
+		STCALL	L/D
+			GLIMITER	# (GO TO)
+			
+# GONEGLAD AND GOPOSMAX ENTRY POINTS FOR GLIMITER ...
+
+GONEGLAD	DLOAD			# SET L/D = -LAD
+			GONEGLAD	# (ANY NEGATIVE NUMBER WILL DO)
+			
+GOMAXL/D	RTB	DMP		L/D = LAD SIGN(MPAC)
+			SIGNMPAC
+			LAD
+		STORE	L/D		# AND FALL INTO GLIMITER SECTION
+		
+GLIMITER	DLOAD	DSU		# IF GMAX/2-D POS, GO TO LIMITL/D
+			GMAX/2
+			D
+		BPL	DAD		# IF GMAX  -D NEG, GO TO GOPOSLAD
+			LIMITL/D
+			GMAX/2
+		BMN	DMP
+			GOPOSLAD
+			2HS
+		PDDL	DMP		# 2HS(GMAX-D) INTO PD
+			LEQ
+			1/GMAX
+		DAD	DMP
+			LAD
+		PDDL	DDV		# 2HS(GMAX-D) (LEQ/GMAX+LAD) INTO PD
+			2HSGMXSQ
+			VSQUARE
+		DAD	SQRT		# XLIM = SQRT(PD+(2HSGMAX/V)SQ)
+		DAD	BPL		# IF RDOT+XLIM POS, GO TO LIMITL/D
+			RDOT
+			LIMITL/D
+			
+GOPOSLAD	DLOAD
+			LAD
+STOREL/D	STORE	L/D
+
+# Page 873
+LIMITL/D	DLOAD
+			L/D
+		STODL	L/D1
+			VSQUARE
+			
+		BON			# NO LATERAL CONTROL IF PAST TARGET
+			GONEPAST
+			L355
+		DMP	DAD		# Y= KLAT VSQUARE + LATBIAS
+			KLAT
+			LATBIAS		# Y INTO PD
+L350		PDDL	ABS		# IF ABS(L/D)-L/DCMINR NEG, GO TO L353
+			L/D
+		DSU	BMN
+			L/DCMINR
+			L353
+		DLOAD	SIGN		# IF K2ROLL LATANG NEG, GO TO L357
+			LATANG
+			K2ROLL
+		BMN	DLOAD
+			L357
+		SR1	PUSH		# Y = Y/2
+L353		DLOAD	SIGN		# IF LATANG SIGN(K2ROLL)-Y POS, SWITCH
+			LATANG
+			K2ROLL
+		DSU
+		BMN	DLOAD
+			L355
+			K2ROLL
+		BONCLR	DCOMP		# IF NOSWITCH =1, K2ROLL= K2ROLL
+			NOSWITCH
+			L355
+		STORE	K2ROLL		# K2ROLL = -K2ROLL
+		
+L355		DLOAD	DDV		# ROLLC = ACOS( (L/D1) / LAD)
+			L/D1
+			LAD		# MPAC SET TO +-1 IF OVERFLOW***
+		SR1	ACOS
+		SIGN	CLEAR
+			K2ROLL
+			NOSWITCH
+		STORE	ROLLC
+		
+ENDEXIT		EXIT
+
+OVERNOUT	CA	BIT13		# ENTRYDSP =92D B13
+		MASK	CM/FLAGS
+		EXTEND
+		BZF	NODISKY		# OMIT DISPLAY.
+# Page 874
+		CA	ENTRYVN		# ALL ENTRY DISPLAYS ARE DONE HERE.
+		TC	BANKCALL
+		CADR	REGODSPR	# NO ABORT IF DISKY IN USE
+		
+NODISKY		INHINT
+		CCS	NEWJOB		# PROTECT READACCS GRP 5, IF SIDETRACKED.
+		TC	CHANG1
+SERVNOUT	TC	POSTJUMP	# ( COME HERE FROM P67.3 )
+		CADR	SERVEXIT	# AND END AVERAGEG JOB VIA ENDOJOB.
+
+# Page 875
+# DISPLAY WHEN V IS LESS THAN VQUIT.
+
+STEEROFF	EXIT
+		CA	EBENTRY		# PRECAUTIONARY.
+		TS	EBANK
+		
+		CA	PRIO16		# 2 LESS THAN NTRYPRIO.
+		TC	NOVAC
+		EBANK=	AOG		# ANY EB HERE
+		2CADR	P67.1		# START UP REMAINDER OF P67
+		
+					# RTOGO		LAT		LONG
+					# XXXX.X NM	XXX.XX DEG	XXX.XX DEG
+					
+		TC	2PHSCHNG	# INHINT/RELINT DONE.
+		OCT	00414		# 4.41 RESTART FOR P67.1 DISPLAY JOB.
+		OCT	10035		# SERVICER 5.3 RESTART.
+		
+		CA	P67.2CAD	# HEREAFTER, DO LAT, LONG.
+		TS	GOTOADDR
+		
+		TC	INTPRET
+		GOTO
+P67.2CAD		P67.2		# CONTINUE FOR LAT, LONG THIS TIME.
+
+L357		DLOAD	SIGN		# L/D = L/DCMINR SIGN(L/D)
+			L/DCMINR
+			L/D
+		STCALL	L/D1
+			L355		# (GO TO)
+
+# Page 876
+# TABLE USED FOR SUB-ORBITAL REFERENCE TRAJECTORY CONTROL.
+
+VREFER		DEC	.019288		# REFERENCE VELOCITY SCALED V/51532.3946
+		DEC	.040809		# 13 POINTS ARE STORED AS THE INDEPENDENT
+		DEC	.076107		# VARIABLE AND THEN SIX 13-POINT FUNCTIONS
+		DEC	.122156		# OF V ARE STORED CONSECUTIVELY
+		DEC	.165546
+		DEC	.196012
+		DEC	.271945
+		DEC	.309533
+		DEC	.356222
+		DEC	.404192
+		DEC	.448067
+		DEC	.456023
+		DEC	.67918		# HIGHVELOCITY FOR SAFETY.
+		
+		DEC	-.010337	# DRANGE/DA	SCALED DRDA/(2700/805)
+		DEC	-.016550
+		DEC	-.026935
+		DEC	-.042039
+		DEC	-.058974
+		DEC	-.070721
+		DEC	-.098538
+		DEC	-.107482
+		DEC	-.147762
+		DEC	-.193289
+		DEC	-.602557
+		DEC	-.99999
+		DEC	-.99999
+		
+		DEC	-.0478599 B-3	# -DRANGE/DRDOT
+		DEC	-.0683663 B-3	# SCALED ((2VS/8 2700) DR/DRDOT)
+		DEC	-.1343468 B-3
+		DEC	-.2759846 B-3
+		DEC	-.4731437 B-3
+		DEC	-.6472087 B-3
+		DEC	-1.171693 B-3
+		DEC	-1.466382 B-3
+		DEC	-1.905171 B-3
+		DEC	-2.547990 B-3
+		DEC	-4.151220 B-3
+		DEC	-5.813617 B-3
+		DEC	-5.813617 B-3
+
+# Page 877
+		DEC	-.0134001  B3	# RDOTREF	SCALED (8 RDT/2VS)
+		DEC	-.013947   B3
+		DEC	-.013462   B3
+		DEC	-.011813   B3
+		DEC	-.0095631  B3
+		DEC	-.00806946 B3
+		DEC	-.006828   B3
+		DEC	-.00806946 B3
+		DEC	-.0109791  B3
+		DEC	-.0151498  B3
+		DEC	-.0179817  B3
+		DEC	-.0159061  B3
+		DEC	-.0159061  B3
+		
+		DEC	.0008067	# RANGE TO GO SCALED RTOGO/2700
+		DEC	.0032963	#	8.9
+		DEC	.0081852	#	22.1
+		DEC	.017148
+		DEC	.027926
+		DEC	.037
+		DEC	.063298
+		DEC	.077889
+		DEC	.098815
+		DEC	.127519
+		DEC	.186963
+		DEC	.238148
+		DEC	.294185185
+		
+		DEC	-.051099	# -AREF/805
+		DEC	-.074534
+		DEC	-.101242
+		DEC	-.116646
+		DEC	-.122360
+		DEC	-.127081
+		DEC	-.147453
+		DEC	-.155528
+		DEC	-.149565
+		DEC	-.118509
+		DEC	-.034907
+		DEC	-.007950
+		DEC	-.007950
+
+# Page 878
+		DEC	.004491		# DRANGE/D L/D SCALED Y/2700
+		DEC	.008081
+		DEC	.016030
+		DEC	.035815
+		DEC	.069422
+		DEC	.104519
+		DEC	.122
+		DEC	.172407
+		DEC	.252852
+		DEC	.363148
+		DEC	.512963
+		DEC	.558519
+		DEC	.558519		# END OF STORED REFERENCE
+		
+# Page 879
+# REENTRY CONSTANTS.
+
+# DEFINED BY EQUALS
+
+DEC15		=	LOW4
+#GAMMAL1	=	22D
+
+MAXRNG		2OCT	1663106755	# DNRNGERR = 9999.9 IF GONEPAST=1
+
+		BANK	26
+		SETLOC	REENTRY1
+		BANK
+		
+		COUNT*	$$/ENTRY
+		
+BARELY1		=	NEARONE		# COMMON TO BOTH DISK,DANCE, DEFND IN TFF
+#1BITDP					# COMMON TO BOTH DISK AND DANCE. DEFND IN VECPOINT.
+
+1/12TH		DEC	.083333		# DP 1/12 USES HI WORD IN 1/3 BELOW
+1/3RD		2DEC	.3333333333	# DP 1/3
+
+1/16TH		=	DP2(-4)
+
+# BELOW:  VS = VSAT = 25766.1973 FT/SEC
+
+#	  RE = 21,202,900 FEET
+
+LEWD1		2DEC	.15
+
+POINT1		2DEC	.1
+
+POINT2		2DEC	.2		# .2
+
+DLEWD0		2DEC	-.05		# -.05
+
+GMAX/2		2DEC	.16		# 8 GS / 2
+
+3ZEROS		EQUALS	HI6ZEROS
+NEAR1/4		2OCT	0777700000	# 1/4 LESS 1 BIT IN UPPER PART.
+
+C18		2DEC	.0097026346	# 500/2VS
+
+Q7FKDMIN	2DEC	.0080745342	# 6.5/805  (Q7F +KDMIN) = 6 + .5)
+
+C1/16		=	DP2(-4)
+
+Q3		2DEC	.167003132	# .07 2VS/21600
+# Page 880
+Q5		2DEC	.326388889	# .3 23500/21600
+
+Q6		2DEC	.0349		# 2 DEG. APPROX 820/23500
+
+Q7F		2DEC	.0074534161	# 6/805  (VALUE OF Q7 IN FIXED MEM.)
+
+Q19		=	HALVE		# Q19 = .5
+
+Q21		2DEC	.0231481481	# 500/21600
+
+Q22		2DEC	-.053333333	# -1152/21600
+
+VLMIN		2DEC	.34929485	# 18000/2 VS
+
+VMIN		=	FOURTH		# (VS/2) / 2VS
+C12		2DEC	.00684572901	# 32 28500/(21202900 2 PI)
+
+1/KB1		2DEC	.29411765	# 1 / 3.4
+
+-1/KB2		2DEC	-.0057074322 B4	# - 1/(.0034 2 VS) EXP +4
+
+VQUIT		2DEC	.019405269	# 1000 /2VS
+
+C20		2DEC	.21739130	# (175 FPSS) LIFT UP IF ABOVE C20
+
+C21		2DEC	.17391304	# 140/805
+
+25NM		2DEC	.0011574074	# 25/21600	(25 NAUT MILES)
+
+K1D		2DEC	.0314453125	# =C16 805/256 = .01 805/256
+
+K2D		2DEC	-.201298418	# -C17 2VS/256 = -.001 2VS/256
+
+KVSCALE		2DEC	.81491944	# 12800/(2 VS .3048)
+
+KASCALE		2DEC	.97657358	# 5.85 16384/(4 .3048 100 805)
+
+KTETA		2DEC*	.383495203 E2 B-14* # 1000 2PI/16384(163.84)
+
+KT1		2DEC*	.157788327 E2 B-14* # RE(2PI)/2 VS(16384) 163.84
+
+.05G		2DEC	.002		# .05/25
+
+LATBIAS		2DEC	.00003		# APPRX .5 NM/ 4(21600/2 PI)
+
+KWE		2DEC	.120056652 B-1
+
+KACOS		2DEC	.004973592	# 1/32(2PI)
+
+CHOOK		2DEC	1 B-6		# .25/16
+# Page 881
+1/24TH		2DEC	.0833333333 B-1
+
+CH1		2DEC	.32 B1		# 16 CH1/25 = 16 (1) /25
+
+KC3		2DEC	-.0247622232	# -(4 VS VS/ 2 PI 805 RE)
+
+VRCONT		2DEC	.0135836886	# 700/2 VSAT
+
+HALVE		EQUALS	HIDPHALF
+FOURTH		EQUALS	HIDP1/4
+
+1/GMAX		EQUALS	HALVE		# 4/GMAX = 4 / 8
+2HS		2DEC	.0172786611	# 2 28500 25 32.2/(4 VS VS)
+
+2HSGMXSQ	2DEC	.0000305717	# (2 28500 8 32.2/ 4 VS VS)SQ
+
+C001		2DEC	-.000625	# -(4/25)/256	LEQ/D0 CONST
+
+POINT8		2DEC	.8
+
+2C1HS		2DEC	.0215983264	# 2 1.25 28500 805/(2 VS)SQ
+
+PT1/16		2DEC	.1 B-4
+
+1/K44		2DEC	.00260929464	# 2 VS/19749550
+
+VFINAL		2DEC	.51618016	# 26600/2 VS
+
+VFINAL1		2DEC	.523942273	# = 27000 / 2 VS
+
+1/KA1		2DEC	.30048077	# 25/(1.3 64)
+
+KA2		2DEC	.008		# .2/25
+
+KA3		2DEC	.44720497	# = 90 4/805
+
+KA4		2DEC	.049689441	# 40/805
+
+KALIM		2DEC	.06		# 1.5/25
+
+Q7MIN		=	KA4		# = 40/805 = .049689441
+-HSCALED	2DEC	-.55305018	# -28500/2 VS
+
+-KSCALE		2DEC	-.0312424837	# -805/VS 
+
+COS15		2DEC	.965 
+
+LATSLOPE	EQUALS	1/12TH
+# ... END OF RE-ENTRY CONSTANTS ...
+
diff --git a/RESTARTS_ROUTINE.s b/RESTARTS_ROUTINE.s
new file mode 100644
index 0000000..fb0de01
--- /dev/null
+++ b/RESTARTS_ROUTINE.s
@@ -0,0 +1,335 @@
+# Copyright:    Public domain.
+# Filename:     RESTARTS_ROUTINE.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 1414-1419
+# Contact:      Ron Burkey <info@sandroid.org>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-07 RSB	Adapted from Colossus249 file of the same
+#				name, and page images. Corrected various 
+#				typos in the transcription of program 
+#				comments, and these should be back-ported  
+#				to Colossus249.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 1414
+		BANK	01
+		SETLOC	RESTART
+		BANK
+
+		EBANK=	PHSNAME1	# GOPROG MUST SWITCH TO THIS EBANK
+
+		COUNT	01/RSROU
+		
+RESTARTS	CA	MPAC +5		# GET GROUP NUMBER -1
+		DOUBLE			# SAVE FOR INDEXING
+		TS	TEMP2G
+
+		CA	PHS2CADR	# SET UP EXIT IN CASE IT IS AN EVEN
+		TS	TEMPSWCH	# TABLE PHASE
+
+		CA	RTRNCADR	# TO SAVE TIME ASSUME IT WILL GET NEXT
+		TS	GOLOC +2	# GROUP AFTER THIS
+
+		CA	TEMPPHS
+		MASK	OCT1400
+		CCS	A		# IS IT A VARIABLE OR TABLE RESTART
+		TCF	ITSAVAR		# IT'S A VARIABLE RESTART
+
+GETPART2	CCS	TEMPPHS		# IS IT AN X.1 RESTART
+		CCS	A
+		TCF	ITSATBL		# NO, IT'S A TABLE RESTART
+
+		CA	PRIO14		# IT IS AN X.1 RESTART, THEREFORE START
+		TC	FINDVAC		# THE DISPLAY RESTART JOB
+		EBANK=	LST1
+		2CADR	INITDSP
+
+		TC	RTRNCADR	# FINISHED WITH THIS GROUP, GET NEXT ONE
+
+ITSAVAR		MASK	OCT1400		# IS IT TYPE B ?
+		CCS	A
+		TCF	ITSLIKEB	# YES, IT IS TYPE B
+
+		EXTEND			# STORES THE JOB (OR TASK) 2CADR FOR EXIT
+		NDX	TEMP2G
+		DCA	PHSNAME1
+		DXCH	GOLOC
+
+		CA	TEMPPHS		# SEE IF THIS IS A JOB, TASK, OR A LONGCALL
+		MASK	OCT7
+		AD	MINUS2
+		CCS	A
+		TCF	ITSLNGCL	# IT'S A LONGCALL
+
+# Page 1415
+RTRNCADR	TC	SWRETURN	# CAN'T GET HERE.
+		TCF	ITSAWAIT
+
+		TCF	ITSAJOB		# IT'S A JOB
+
+ITSAWAIT	CA	WTLTCADR	# SET UP WAITLIST CALL
+		TS	GOLOC -1
+
+		NDX	TEMP2G		# DIRECTLY STORED
+		CA	PHSPRDT1
+TIMETEST	CCS	A		# IS IT AN IMMEDIATE RESTART
+		INCR	A		# NO.
+		TCF	FINDTIME	# FIND OUT WHEN IT SHOULD BEGIN
+
+		TCF	ITSINDIR	# STORED INDIRECTLY
+
+		TCF	IMEDIATE	# IT WANTS AN IMMEDIATE RESTART
+
+# ***** THIS MUST BE IN FIXED FIXED *****
+
+		BLOCK	02
+		SETLOC	FFTAG2
+		BANK
+
+		COUNT	02/RSROU
+		
+ITSINDIR	LXCH	GOLOC +1	# GET THE CORRECT E BANK IN CASE THIS IS
+		LXCH	BB		# SWITCHED ERASABLE
+
+		NDX	A		# GET THE TIME INDIRECTLY
+		CA	1
+
+		LXCH	BB		# RESTORE THE BB AND GOLOC
+		LXCH	GOLOC +1
+
+		TCF	FINDTIME	# FIND OUT WHEN IT SHOULD BEGIN
+
+# ***** YOU MAY RETURN TO SWITCHED FIXED *****
+
+		BANK 	01
+		SETLOC	RESTART
+		BANK
+
+		COUNT	01/RSROU
+		
+FINDTIME	COM			# MAKE NEGATIVE SINCE IT WILL BE SUBTRACTED
+		TS	L		# AND SAVE
+		NDX	TEMP2G
+		CS	TBASE1
+		EXTEND
+# Page 1416
+		SU	TIME1
+		CCS	A
+		COM
+		AD	OCT37776
+		AD	ONE
+		AD	L
+		CCS	A
+		CA	ZERO
+		TCF	+2
+		TCF	+1
+IMEDIATE	AD	ONE
+		TC	GOLOC -1
+ITSLIKEB	CA	RTRNCADR	# TYPE B, SO STORE RETURN IN
+		TS	TEMPSWCH	# TEMPSWCH IN CASE OF AN EVEN PHASE
+
+		CA	PRT2CADR	# SET UP EXIT TO GET TABLE PART OF THIS
+		TS	GOLOC +2	# VARIABLE TYPE OF PHASE
+
+		CA	TEMPPHS		# MAKE THE PHASE LOOK RIGHT FOR THE TABLE
+		MASK	OCT177		# PART OF THIS VARIABLE PHASE
+		TS	TEMPPHS
+
+		EXTEND
+		NDX	TEMP2G		# OBTAIN THE JOB'S 2CADR
+		DCA	PHSNAME1
+		DXCH	GOLOC
+
+ITSAJOB		NDX	TEMP2G		# NOW ADD THE PRIORITY AND LET'S GO
+		CA	PHSPRDT1
+CHKNOVAC	TS	GOLOC -1	# SAVE PRIO UNTIL WE SEE IF IT'S
+		EXTEND			# A FINDVAC OR A NOVAC
+		BZMF	ITSNOVAC
+
+		CAF	FVACCADR	# POSITIVE, SET UP FINDVAC CALL.
+		XCH	GOLOC -1	# PICK UP PRIO
+		TC	GOLOC -1	AND GO
+
+ITSNOVAC	CAF	NOVACADR	# NEGATIVE,
+		XCH	GOLOC -1	# SET UP NOVAC CALL,
+		COM			# CORRECT PRIO,
+		TC	GOLOC -1	# AND GO
+
+ITSATBL		TS	CYR		# FIND OUT IF THE PHASE IS ODD OR EVEN
+		CCS	CYR
+		TCF	+1		# IT'S EVEN
+		TCF	ITSEVEN
+
+		CA	RTRNCADR	# IN CASE THIS IS THE SECOND PART OF A
+		TS	GOLOC +2	# TYPE B RESTART, WE NEED PROPER EXIT
+# Page 1417
+		CA	TEMPPHS		# SET UP POINTER FOR FINDING OUR PLACE IN
+		TS	SR		# THE RESTART TABLES
+		AD	SR
+		NDX	TEMP2G
+		AD	SIZETAB +1
+		TS	POINTER
+
+CONTBL2		EXTEND			# FIND OUT WHAT'S IN THE TABLE
+		NDX	POINTER
+		DCA	CADRTAB		# GET THE 2CADR
+
+		LXCH	GOLOC +1	# STORE THE BB INFORMATION
+
+		CCS	A		# IS IT A JOB OR IT IT TIMED
+		INCR	A		# POSITIVE, MUST BE A JOB
+		TCF	ITSAJOB2
+
+		INCR	A		# MUST BE EITHER A WAITLIST OR LONGCALL
+		TS	GOLOC		# LET'S STORE THE CORRECT CADR
+
+		CA	WTLTCADR	# SET UP OUR EXIT TO WAITLIST
+		TS	GOLOC -1
+
+		CA	GOLOC +1	# NOW FIND OUT IF IT IS A WAITLIST CALL
+		MASK	BIT10		# THIS SHOULD BE ONE IF WE HAVE -BB
+		CCS	A		# FOR THAT MATTER SO SHOULD BE BITS 9,8,7,
+					# 6,5, AND LAST BUT NOT LEAST (PERHAPS NOT
+					# IN IMPORTANCE ANYWAY.  BUT 4
+		TCF	ITSWTLST	# IT IS A WAITLIST CALL
+
+		NDX	POINTER		# OBTAIN THE ORIGINAL DELTA T
+		CA	PRDTTAB		# ADDRESS FOR THIS LONGCALL
+
+		TCF	ITSLGCL1	# NOW GO GET THE DELTA TIME
+
+# ***** THIS MUST BE IN FIXED FIXED *****
+
+		BLOCK	02
+		SETLOC	FFTAG2
+		BANK
+
+		COUNT	02/RSROU
+		
+ITSLGCL1	LXCH	GOLOC +1	# OBTAIN THE CORRECT E BANK
+		LXCH	BB
+		LXCH	GOLOC +1	# AND PRESERVE OUR E AND F BANKS
+
+		EXTEND			# GET THE DELTA TIME
+		NDX	A
+		DCA	0
+# Page 1418
+		LXCH	GOLOC +1	# RESTORE OUR E AND F BANK
+		LXCH	BB		# RESTORE THE TASKS E AND F BANKS
+		LXCH	GOLOC +1	# AND PRESERVE OUR L
+		TCF	ITSLGCL2	# NOT GET'S PROCESS THIS LONGCALL
+
+# ***** YOU MAY RETURN TO SWITCHED FIXED *****
+
+		BANK	01
+		SETLOC	RESTART
+		BANK
+
+		COUNT	01/RSROU
+ITSLGCL2	DXCH	LONGTIME
+
+		EXTEND			# CALCULATE TIME LEFT
+		DCS	TIME2
+		DAS	LONGTIME
+		EXTEND
+		DCA	LONGBASE
+		DAS	LONGTIME
+
+		CCS	LONGTIME	# FIND OUT HOW THIS SHOULD BE RESTARTED
+		TCF	LONGCLCL
+		TCF	+2
+		TCF	IMEDIATE -3
+		CCS	LONGTIME +1
+		TCF	LONGCLCL
+		NOOP			# CAN'T GET HERE ************
+		TCF	IMEDIATE -3
+		TCF	IMEDIATE
+
+LONGCLCL	CA	LGCLCADR	# WE WILL GO TO LONGCALL
+		TS	GOLOC -1
+
+		EXTEND			# PREPARE OUR ENTRY TO LONGCALL
+		DCA	LONGTIME
+		TC	GOLOC -1
+
+ITSLNGCL	CA	WTLTCADR	# ASSUME IT WILL GO TO WAITLIST
+		TS	GOLOC -1
+
+		NDX	TEMP2G
+		CS	PHSPRDT1	# GET THE DELTA T ADDRESS
+
+		TCF	ITSLGCL1	# NOW GET THE DELTA TIME
+
+ITSWTLST	CS	GOLOC +1	# CORRECT THE BBCON INFORMATION
+		TS	GOLOC +1
+# Page 1419
+		NDX	POINTER		# GET THE DT AND FIND OUT IF IT WAS STORED
+		CA	PRDTTAB		# DIRECTLY OR INDIRECTLY
+
+		TCF	TIMETEST	# FIND OUT HOW THE TIME IS STORED
+
+ITSAJOB2	XCH	GOLOC		# STORE THE CADR
+
+		NDX	POINTER		# ADD THE PRIORITY AND LET'S GO
+		CA	PRDTTAB
+
+		TCF	CHKNOVAC
+
+ITSEVEN		CA	TEMPSWCH	# SET FOR EITHER THE SECOND PART OF THE
+		TS	GOLOC +2	# TABLE, OR A RETURN FOR THE NEXT GROUP
+
+		NDX	TEMP2G		# SET UP POINTER FOR OUR LOCATION WITHIN
+		CA	SIZETAB		# THE TABLE
+		AD	TEMPPHS		# THIS MAY LOOK BAD BUT LET'S SEE YOU DO
+		AD	TEMPPHS		# BETTER IN TIME OR NUMBER OF LOCATIONS
+		AD	TEMPPHS
+		TS	POINTER
+
+		TCF	CONTBL2		# NO PROCESS WHAT IS IN THE TABLE
+
+PHSPART2	CA	THREE		# SET THE POINTER FOR THE SECOND HALF OF
+		ADS	POINTER		# THE TABLE
+
+		CA	RTRNCADR	# THIS WILL BE OUR LAST TIME THROUGH THE
+		TS	GOLOC +2	# EVEN TABLE, SO AFTER IT GET THE NEXT
+					# GROUP
+		TCF	CONTBL2		# SO LET'S GET THE SECOND ENTRY IN THE TBL
+
+TEMPPHS		EQUALS	MPAC
+TEMP2G		EQUALS	MPAC +1
+POINTER		EQUALS	MPAC +2
+TEMPSWCH	EQUALS	MPAC +3
+GOLOC		EQUALS	VAC5 +20D
+MINUS2		EQUALS	NEG2
+OCT177		EQUALS	LOW7
+
+PHS2CADR	GENADR	PHSPART2
+PRT2CADR	GENADR	GETPART2
+LGCLCADR	GENADR	LONGCALL
+FVACCADR	GENADR	FINDVAC
+WTLTCADR	GENADR	WAITLIST
+NOVACADR	GENADR	NOVAC
+
+
+
+
diff --git a/RESTART_TABLES.s b/RESTART_TABLES.s
new file mode 100644
index 0000000..bd25dd2
--- /dev/null
+++ b/RESTART_TABLES.s
@@ -0,0 +1,558 @@
+# Copyright:	Public domain.
+# Filename:	RESTART_TABLES.agc
+# Purpose:	Part of the source code for Comanche, build 055. It
+#		is part of the source code for the Command Module's
+#		(CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:	yaYUL
+# Reference:	pp. 211-221
+# Contact:	Ron Burkey <info@sandroid.org>,
+#  		Fabrizio Bernardini <fabrizio@spacecraft.it>
+# Website:	http://www.ibiblio.org/apollo.
+# Mod history:	2009-05-16 FB	Transcription Batch 2 Assignment.
+#		2009-05-20 RSB	Added a missing comment mark.  Corrected mismarked
+#				Page 217 -> 220.
+#		2009-05-21 RSB	Fixed value of 5.21SPOT.
+#
+# The contents of the "Comanche055" files, in general, are transcribed
+# from scanned documents.
+#
+#	Assemble revision 055 of AGC program Comanche by NASA
+#	2021113-051.  April 1, 1969.
+#
+#	This AGC program shall also be referred to as Colossus 2A
+#
+#	Prepared by
+#			Massachussets Institute of Technology
+#			75 Cambridge Parkway
+#			Cambridge, Massachusetts
+#
+#	under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 211
+# RESTART TABLES
+# --------------
+#
+# THERE ARE TWO FORMS OF RESTART TABLES FOR EACH GROUP.  THEY ARE KNOWN AS THE EVEN RESTART TABLES AND THE ODD
+# RESTART TABLES.  THE ODD TABLES HAVE ONLY ONE ENTRY OF THREE LOCATIONS WHILE THE EVEN TABLES HAVE TWO ENTRIES
+# EACH USING THREE LOCATIONS.  THE INFORMATION AS TO WHETHER IT IS A JOB, WAITLIST, OR A LONGCALL IS GIVEN BY THE
+# WAY THINGS ARE PUT IN TO THE TABLES.
+#
+# A JOB HAS ITS PRIORITY STORED IN A PRDTTAB OF THE CORRECT PHASE SPOT -- A POSITIVE PRIORITY INDICATES A
+# FINDVAC JOB, A NEGATIVE PRIORITY A NOVAC.  THE 2CADR OF THE JOB IS STORED IN THE CADRTAB.
+# FOR EXAMPLE,
+#
+#		5.7SPOT		OCT	23000
+#				2CADR	SOMEJOB
+#
+# A RESTART OF GROUP 5 WITH PHASE SEVEN WOULD THEN CAUSE SOMEJOB TO BE RESTARTED AS A FINDVAC WITH PRIORITY 23.
+#
+#		5.5SPOT		OCT	-23000
+#				2CADR	ANYJOB
+#
+# HERE A RESTART OF GROUP 5 WITH PHASE 7 WOULD CAUSE ANYJOB TO BE RESTARTED AS A NOVAC WITH PRIORITY 23.
+# A LONGCALL HAS ITS GENADR OF ITS 2CADR STORED NEGATIVELY AND ITS BBCON STORED POSITIVELY.  IN ITS PRDTTAB IS
+# PLACED THE LOCATION OF A DP REGISTER THAT CONTAINS THE DELTA TIME THAT LONGCALL HAD BEEN ORIGINALLY STARTED
+# WITH.  EXAMPLE,
+#
+#		3.6SPOT		GENADR	DELTAT
+#				-GENADR	LONGTASK
+#				BBCON	LONGTASK
+
+#				OCT	31000
+#				2CADR	JOBAGAIN
+#
+# THIS WOULD START UP LONGTASK AT THE APPROPRIATE TIME, OR IMMEDIATELY IF THE TIME HAD ALREADY PASSED.  IT SHOULD
+# BE NOTED THAT IF DELTAT IS IN A SWITCHED E BANK, THIS INFORMATION SHOULD BE IN THE BBCON OF THE 2CADR OF THE
+# TASK.  FROM ABOVE, WE SEE THAT THE SECOND PART OF THIS PHASE WOULD BE STARTED AS A JOB WITH A PRIORITY OF 31.
+#
+# WAITLIST CALLS ARE IDENTIFIED BY THE FACT THAT THEIR 2CADR IS STORED NEGATIVELY.  IF PRDTTAB OF THE PHASE SPOT
+# IS POSITIVE, THEN IT CONTAINS THE DELTA TIME, IF PRDTTAB IS NEGATIVE THEN IT IS THE -GENADR OF AN ERASABLE
+# LOCATION CONTAINING THE DELTA TIME, THAT IS, THE TIME IS STORED INDIRECTLY. IT SHOULD BE NOTED AS ABOVE, THAT
+# IF THE TIME IS STORED INDIRECTLY, THE BBCON MUST CONTAIN THE NECESSARY E BANK INFORMATION IF APPLICABLE.  WITH
+# WAITLIST WE HAVE ONE FURTHER OPTION, IF -0 IS STORED IN PRDTTAB, IT WILL CAUSE AN IMMEDIATE RESTART OF THE
+# TASK.  EXAMPLES,
+#
+#				OCT	77777		# THIS WILL CAUSE AN IMMEDIATE RESTART
+#				-2CADR	ATASK		# OF THE TASK "ATASK"
+#
+#				DEC	200		# IF THE TIME OF THE 2 SECONDS SINCE DUMMY
+#				-2CADR	DUMMY		# WAS PUT ON THE WAITLIST IS UP, IT WILL BEGIN
+#							# IN 10 MS, OTHERWISE IT WILL BEGIN WHEN
+#							# IT NORMALLY WOULD HAVE BEGUN.
+# Page 212
+#				-GENADR	DTIME		# WHERE DTIME CONTAINS THE DELTA TIME
+#				-2CADR	TASKTASK	# OTHERWISE THIS IS AS ABOVE
+#
+# ***** NOW THE TABLES THEMSELVES *****
+
+		BANK	01
+		SETLOC	RESTART
+		BANK
+
+		COUNT	01/RSTAB
+
+PRDTTAB		EQUALS	12000			# USED TO FIND THE PRIORITY OR DELTATIME
+CADRTAB		EQUALS	12001			# THIS AND THE NEXT RELATIVE LOC CONTAIN
+						# RESTART 2CADR
+
+SIZETAB		TC	1.2SPOT -12006
+		TC	1.3SPOT -12004
+		TC	2.2SPOT -12006
+		TC	2.3SPOT	-12004
+		TC	3.2SPOT -12006
+		TC	3.3SPOT -12004
+		TC	4.2SPOT -12006
+		TC	4.3SPOT -12004
+		TC	5.2SPOT -12006
+		TC	5.3SPOT -12004
+		TC	6.2SPOT -12006
+		TC	6.3SPOT -12004
+1.2SPOT		EQUALS	3.2SPOT
+
+# ANY MORE GROUP 1.EVEN RESTART VALUES SHOULD GO HERE.
+
+1.3SPOT		DEC	120			# THIS NUMBER MUST BE EQUAL C(JTAGTIME)
+		EBANK=	AOG
+		-2CADR	SETJTAG
+
+1.5SPOT		OCT	10000
+		EBANK=	DAPDATR1
+		2CADR	REDO40.9
+
+1.7SPOT		OCT	10000
+		EBANK=	ESTROKER
+		2CADR	RELINUS
+
+1.11SPOT	OCT	10000
+		EBANK=	ESTROKER
+		2CADR	PIKUP20
+
+# ANY MORE GROUP 1.ODD RESTART VALUES SHOULD GO HERE.
+
+2.2SPOT		EQUALS	1.2SPOT
+
+# ANY MORE GROUP 2.EVEN RESTART VALUES SHOULD GO HERE
+# Page 213
+
+2.3SPOT		GENADR	600SECS
+		-GENADR	STATEINT
+		EBANK=	RRECTCSM
+		BBCON	STATEINT
+
+2.5SPOT		OCT	05000
+		EBANK=	RRECTCSM
+		2CADR	STATINT1
+
+2.7SPOT		OCT	10000
+		EBANK=	MRKBUF2
+		2CADR	R22
+
+2.11SPOT	OCT	14000
+		EBANK=	LANDMARK
+		2CADR	V94ENTER
+
+2.13SPOT	OCT	10000
+		EBANK=	MRKBUF2
+		2CADR	REDOR22
+
+# ANY MORE GROUP 2.ODD RESTART VALUES SHOULD GO HERE.
+
+3.2SPOT		EQUALS	4.2SPOT
+
+# ANY MORE GROUP 3.EVEN RESTART VALUES SHOULD GO HERE
+
+3.3SPOT		OCT	20000
+		EBANK=	TGO
+		2CADR	S40.13
+
+3.5SPOT		DEC	0
+		DEC	0
+		DEC	0
+
+3.7SPOT		OCT	22000
+		EBANK=	TEPHEM
+		2CADR	MATRXJOB
+
+3.11SPOT	OCT	22000
+		EBANK=	TEPHEM
+		2CADR	REP11
+
+3.13SPOT	OCT	22000
+		EBANK=	TEPHEM
+		2CADR	REP11A
+
+3.15SPOT	-GENADR	TGO	+1
+		EBANK=	TGO
+		-2CADR	ENGINOFF
+
+# Page 214
+# ANY MORE GROUP 3.ODD RESTART VALUES SHOULD GO HERE
+
+4.2SPOT		OCT	77777
+		EBANK=	TIG
+		-2CADR	PRECHECK
+
+		OCT	30000
+		EBANK=	DELVIMU
+		2CADR	P47BODY
+
+4.4SPOT		OCT	77777
+		EBANK=	TIG
+		-2CADR	PRECHECK
+
+		DEC	2996
+		EBANK=	DAPDATR1
+		-2CADR	TTG/0
+
+4.6SPOT		OCT	77777
+		EBANK=	TIG
+		-2CADR	PRECHECK
+
+		DEC	2496
+		EBANK=	TIG
+		-2CADR	TIG-5
+
+# ANY MORE GROUP 4.EVEN RESTART VALUES SHOULD GO HERE
+
+4.3SPOT		DEC	40
+		EBANK=	PACTOFF
+		-2CADR	DOTVCON
+
+4.5SPOT		DEC	160
+		EBANK=	PACTOFF
+		-2CADR	DOSTRULL
+
+4.7SPOT		DEC	500
+		EBANK=	PACTOFF
+		-2CADR	TIG-0
+
+4.11SPOT	DEC	250
+		EBANK=	DAPDATR1
+		-2CADR	V97E40.6
+
+4.13SPOT	DEC	200
+		EBANK=	WHOCARES
+		-2CADR	R40ENABL
+
+4.15SPOT	OCT	16000			# PRELAUNCH OPTICAL VERIFICATION
+		EBANK=	OGC
+# Page 215
+		2CADR	COMPVER			# CALLS FOR OPTICS DATA AGAIN (STD LEADIN)
+
+4.17SPOT	OCT	16000
+		EBANK=	XSM
+		2CADR	AZMTHCG1
+
+4.21SPOT	GENADR	P40TMP			# DELTA TIME USED IN SETTING UP
+		-GENADR	TIGBLNK			# LONG CALL OF TIGBLNK BY P40,P41
+		EBANK=	P40TMP
+		BBCON	TIGBLNK
+
+4.23SPOT	OCT	12000			# PROTECT P40S/SV BY P40 P41
+		EBANK=	TIG
+		2CADR	P40S/SV
+
+4.25SPOT	OCT	24000
+		EBANK=	BESTI
+		2CADR	PROG52
+
+4.27SPOT	DEC	250
+		EBANK=	PACTOFF
+		-2CADR	DOTVCRCS
+
+4.31SPOT	OCT	13000
+		EBANK=	STAR
+		2CADR	R51	+1
+
+4.33SPOT	DEC	2100			# PROTECT CONTINUING JOB TO START P63
+		EBANK=	AOG
+		-2CADR	WAKEP62
+
+4.35SPOT	OCT	12000
+		EBANK=	DAPDATR1
+		2CADR	POSTBURN
+
+4.37SPOT	DEC	500
+		EBANK=	TIG
+		-2CADR	TIGAVEG
+
+4.41SPOT	OCT	17000			# PROTECT DISPLAY JOB IN P67
+		EBANK=	AOG
+		2CADR	P67.1
+
+4.43SPOT	-GENADR	S61DT			# PROTECT TASK TO START PREREAD,ENTRY
+		EBANK=	S61DT			# S61.1C WILL CHANGE EBANK=EB7 FOR PREREAD
+		-2CADR	S61.1C
+
+4.45SPOT	OCT	13000			# PROTECT CONTINUING JOB S61.1
+		EBANK=	AOG			# (ENTRY IMU ALIGNMENT)
+# Page 216
+		2CADR	S61.1A	-1
+
+4.47SPOT	OCT	17000			# PROTECT HUNTEST ITERATION
+		EBANK=	AOG
+		2CADR	PRE-HUNT
+
+4.51SPOT	OCT	77777			# PROTECT FDAI ATTITUDE
+		EBANK=	BODY3			# ERROR DISPLAY IN P11
+		-2CADR	ATERTASK
+
+4.53SPOT	DEC	-0
+		EBANK=	END-E7			# EBANK7 FOR TIG
+		-2CADR	V97ETASK
+
+4.55SPOT	OCT	13000			# PROTECT P65 RESPONSIVE DISPLAY.
+		EBANK=	RTINIT
+		2CADR	P65.1
+
+4.57SPOT	-GENADR	P40TMP
+		EBANK=	P40TMP
+		-2CADR	TIGON
+
+4.61SPOT	OCT	77777
+		EBANK=	PACTOFF
+		-2CADR	IGNITION
+
+4.63SPOT	OCT	77777
+		EBANK=	PACTOFF
+		-2CADR	DOSPSOFF
+
+4.65SPOT	DEC	10
+		EBANK=	TIG
+		-2CADR	TIG-5
+
+4.67SPOT	DEC	-0
+		EBANK=	CSMMASS
+		-2CADR	V97TTASK
+
+4.71SPOT	DEC	250
+		EBANK=	DAPDATR1		# (FOR RCSDAPON)
+		-2CADR	V97TRCS
+
+4.73SPOT	DEC	-0
+		EBANK=	V97VCNTR
+		-2CADR	V97PTASK
+
+4.75SPOT	DEC	-0
+		EBANK=	DAPDATR1
+		-2CADR	SPSOFF97
+
+# Page 217
+4.77SPOT	DEC	-0
+		EBANK=	PACTOFF
+		-2CADR	TIG-0
+
+# ANY MORE GROUP 4.ODD RESTART VALUES SHOULD GO HERE
+
+5.2SPOT		OCT	32000
+		EBANK=	DVCNTR
+		2CADR	NORMLIZE
+
+		DEC	200
+		EBANK=	AOG
+		-2CADR	REREADAC
+
+5.4SPOT		OCT	20000
+		EBANK=	DVCNTR
+		2CADR	SERVICER
+
+		DEC	200
+		EBANK=	AOG
+		-2CADR	REREADAC
+
+# ANY MORE GROUP 5.EVEN RESTART VALUES SHOULD GO HERE
+
+5.3SPOT		DEC	200
+		EBANK=	AOG
+		-2CADR	REREADAC
+
+5.5SPOT		OCT	77777
+		EBANK=	AOG
+		-2CADR	REDO5.5
+
+5.7SPOT		OCT	20000			# USED BY PRELAUNCH
+		EBANK=	XSM
+		2CADR	RSTGTS1
+
+5.11SPOT	OCT	77777
+		EBANK=	XSM
+		-2CADR	ALLOOP1
+
+5.13SPOT	OCT	20000
+		EBANK=	XSM
+		2CADR	WTLISTNT
+
+5.15SPOT	OCT	20000
+		EBANK=	XSM
+		2CADR	RESTEST1
+
+5.17SPOT	OCT	20000
+		EBANK=	XSM
+# Page 218
+		2CADR	GEOSTRT4
+
+5.21SPOT	OCT	22000
+		EBANK=	XSM
+		2CADR	ALFLT1
+
+5.23SPOT	OCT	77777
+		EBANK=	XSM
+		-2CADR	SPECSTS
+
+5.25SPOT	OCT	20000
+		EBANK=	XSM
+		2CADR	RESTEST3
+
+5.27SPOT	OCT	20000
+		EBANK=	XSM
+		2CADR	RESTAIER
+
+5.31SPOT	DEC	0
+		DEC	0
+		DEC	0
+
+5.33SPOT	OCT	20000
+		EBANK=	XSM
+		2CADR	RESCHNG
+
+5.35SPOT	DEC	0
+		2DEC	0
+
+5.37SPOT	OCT	77777
+		EBANK=	AOG
+		-2CADR	CHEKAVEG
+
+5.41SPOT	OCT	77777			# TO PROTECT PREREAD AT TIG-30A
+		EBANK=	DVCNTR			#	TIG-15 T+60
+		-2CADR	PREREAD
+
+# ANY MORE GROUP 5.ODD RESTART VALUES SHOULD GO HERE
+
+6.2SPOT		OCT	77777			# USED BY P40 AFTER GIMB DR TST TO REPOS'N
+		EBANK=	AK			# ENGINE UNTIL TVCDAPON
+		-2CADR	PRE40.6
+
+		DEC	100
+		EBANK=	TTOGO
+		-2CADR	CLOKTASK
+
+# ANY MORE 6.ODD RESTART VALUES SHOULD GO HERE
+# Page 219
+
+6.3SPOT		DEC	100
+		EBANK=	TIG
+		-2CADR	CLOKTASK
+
+6.5SPOT		OCT	30000			# PROTECT INCREMENTING OF TIME2,TIME1 BY
+		EBANK=	TEPHEM			# P27(UPDATE PROGRAM)
+		2CADR	TIMEDIDR
+
+6.7SPOT		OCT	0
+		OCT	0
+		OCT	0
+
+6.11SPOT	-GENADR	CM/GYMDT		# PROTECT TASK TO READ CDUS.
+		EBANK=	CM/GYMDT		# FOR ENTRY DAP
+		-2CADR	READGYMB
+
+6.13SPOT	DEC	0
+		DEC	0
+		DEC	0
+
+# Page 220
+# PROGRAM DESCRIPTION: NEWPHASE						DATE:  11 NOV 1966
+# MOD: 1								ASSEMBLY:  SUNBURST REV
+# MOD BY: COPPS								LOG SECTION: PHASE TABLE MAINTENANCE
+#
+# FUNCTIONAL DESCRIPTION:
+#
+#	NEWPHASE IS THE QUICK WAY TO MAKE A NON VARIABLE PHASE CHANGE.  IT INCLUDES THE OPTION OF SETTING
+#	TBASE OF THE GROUP.  IF TBASE IS TO BE SET, -C(TIME1) IS STORED IN THE TBASE TABLE AS FOLLOWS:
+#
+#		(L-1)	TBASE0
+#		(L)	TBASE1	(IF GROUP=1)
+#		(L+1)
+#		(L+2)	TBASE2	(IF GROUP=2)
+#		-----
+#		(L+6)	TBASE4	(IF GROUP=4)
+#		(L+7)
+#		(L+8)	TBASE5	(IF GROUP=5)
+#
+#	IN ANY CASE, THE NEGATIVE OF THE PHASE, FOLLOWED (IN THE NEXT REGISTER) BY THE PHASE, IS STORED IN THE
+#	PHASE TABLE AS FOLLOWS:
+#
+#		(L)	-PHASE1	(IF GROUP=1)
+#		(L+1)	PHASE1
+#		(L+2)	-PHASE2	(IF GROUP=2)
+#		(L+3)	PHASE2
+#		-----
+#		(L+7)	PHASE4
+#		(L+8)	-PHASE5	(IF GROUP=5)
+#		(L+9)	PHASE5
+#
+# CALLING SEQUENCE:
+#
+#	EXAMPLE IS FOR PLACING A PHASE OF FIVE INTO GROUP THREE:
+#
+#	1)	IF TBASE IS NOT TO BE SET:
+#			L-1	CA	FIVE
+#			L	TC	NEWPHASE
+#			L+1	OCT	00003
+#
+#	2)	IF TBASE IS TO BE SET:
+#			L-1	CS	FIVE
+#			L	TC	NEWPHASE
+#			L+1	OCT	00003
+#
+# SUBROUTINES CALLED:  NONE
+#
+# NORMAL EXIT MODE:  AT L+2 OF CALLING SEQUENCE
+#
+# ALARM OR ABORT EXITS:  NONE
+#
+# OUTPUT:  PHASE TABLE AND TBASE TABLE UPDATED
+#
+# ERASABLE INITIALIZATION REQ'D:  NONE
+# Page 221
+# DEBRIS:  A,L,TEMPG
+
+# *** WARNING *** THIS PROGRAM IS TO BE PLACED IN FIXED-FIXED AND UNSWITCHED ERASABLE.
+
+		BLOCK	02
+		SETLOC	FFTAG1
+		BANK
+
+		COUNT*	$$/PHASE
+
+NEWPHASE	INHINT
+
+		TS	L			# SAVE FOR FURTHER USE
+
+		NDX	Q			# OBTAIN THE GROUP NUMBER
+		CA	0
+		INCR	Q			# OBTAIN THE RETURN ADDRESS
+		DOUBLE				# SAVE THE GROUP IN A FORM USED FOR
+		TS	TEMPG			# INDEXING
+
+		CCS	L			# SEE IF WE ARE TO SET TBASE
+		TCF	+7			# NO, THE DELTA T WAS POSITIVE
+		TCF	+6
+
+NUFAZ+10	INCR	A			# SET TBASE AND STORE PHASE CORRECTLY
+		TS	L
+
+		CS	TIME1			# SET TBASE
+		NDX	TEMPG
+		TS	TBASE1 -2
+
+		CS	L			# NOW PUT THE PHASE IN THE RIGHT TABLE LOC
+		NDX	TEMPG
+		DXCH	-PHASE1	-2
+
+		RELINT
+		TC	Q			# NOW RETURN TO CALLER
+
+
diff --git a/RT8_OP_CODES.s b/RT8_OP_CODES.s
new file mode 100644
index 0000000..c823fdb
--- /dev/null
+++ b/RT8_OP_CODES.s
@@ -0,0 +1,355 @@
+# Copyright:    Public domain.
+# Filename:     RT8_OP_CODES.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 1508-1516
+# Contact:      Ron Burkey <info@sandroid.org>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-07 RSB	Adapted from Colossus249/RT8_OP_CODES.agc
+#				and page images. 
+#		2009-05-07 RSB	Oops! Left out the entire last page before.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 1508
+		BANK	22
+		SETLOC	RTBCODES
+		BANK
+
+		EBANK=	XNB
+		COUNT*	$$/RTB
+
+# LOAD TIME2, TIME1 INTO MPAC:
+
+LOADTIME	EXTEND
+		DCA	TIME2
+		TCF	SLOAD2
+
+# CONVERT THE SINGLE PRECISION 2'S COMPLEMENT NUMBER ARRIVING IN MPAC (SCALED IN HALF-REVOLUTIONS) TO A
+# DP 1'S COMPLEMENT NUMBER SCALED IN REVOLUTIONS.
+
+CDULOGIC	CCS	MPAC
+		CAF	ZERO
+		TCF	+3
+		NOOP
+		CS	HALF
+
+		TS	MPAC +1
+		CAF	ZERO
+		XCH	MPAC
+		EXTEND
+		MP	HALF
+		DAS	MPAC
+		TCF	DANZIG		# MODE IS ALREADY AT DOUBLE-PRECISION
+		
+# READ THE PIPS INTO MPAC WITHOUT CHANGING THEM:
+
+READPIPS	INHINT
+		CA	PIPAX
+		TS	MPAC
+		CA	PIPAY
+		TS	MPAC +3
+		CA	PIPAZ
+		RELINT
+		TS	MPAC +5
+		
+		CAF	ZERO
+		TS	MPAC +1
+		TS	MPAC +4
+		TS	MPAC +6
+VECMODE		TCF	VMODE
+
+# FORCE TP SIGN AGREEMENT IN MPAC:
+
+SGNAGREE	TC	TPAGREE
+		
+# Page 1509
+		
+		TCF	DANZIG
+
+# CONVERT THE DP 1'S COMPLEMENT ANGLE SCALED IN REVOLUTIONS TO A SINGLE PRECISION 2'S COMPLEMENT ANGLE
+# SCALED IN HALF-REVOLUTIONS.
+
+1STO2S		TC	1TO2SUB
+		CAF	ZERO
+		TS	MPAC +1
+		TCF	NEWMODE
+
+# DO 1STO2S ON A VECTOR OF ANGLES:
+
+V1STO2S		TC	1TO2SUB		# ANSWER ARRIVES IN A AND MPAC.
+
+		DXCH	MPAC +5
+		DXCH	MPAC
+		TC	1TO2SUB
+		TS	MPAC +2
+
+		DXCH	MPAC +3
+		DXCH	MPAC
+		TC	1TO2SUB
+		TS	MPAC +1
+
+		CA	MPAC +5
+		TS	MPAC
+
+TPMODE		CAF	ONE		# MODE IS TP.
+		TCF	NEWMODE
+
+# V1STO2S FOR 2 COMPONENT VECTOR. USED BY RR.
+
+2V1STO2S	TC	1TO2SUB
+		DXCH	MPAC +3
+		DXCH	MPAC
+		TC	1TO2SUB
+		TS	L
+		CA	MPAC +3
+		TCF	SLOAD2
+
+# SUBROUTINE TO DO DOUBLING AND 1'S TO 2'S CONVERSION:
+
+1TO2SUB		DXCH	MPAC		# FINAL MPAC +1 UNSPECIFIED.
+		DDOUBL
+		CCS	A
+		AD	ONE
+		TCF	+2
+		COM			# THIS WAS REVERSE OF MSU.
+
+		TS	MPAC		# AND SKIP ON OVERFLOW.
+# Page 1510
+		TC	Q
+
+		INDEX	A		# OVERFLOW UNCORRECT AND IN MSU.
+		CAF	LIMITS
+		ADS	MPAC
+		TC	Q
+
+# Page 1511
+# SUBROUTINE TO INCREMENT CDUS
+
+INCRCDUS	CAF	LOCTHETA
+		TS	BUF		# PLACE ADRES(THETA) IN BUF.
+		CAE	MPAC		# INCREMENT IN 1'S COMPL.
+		TC	CDUINC
+		
+		INCR	BUF
+		CAE	MPAC +3
+		TC	CDUINC
+		
+		INCR	BUF
+		CAE	MPAC +5
+		TC	CDUINC
+		
+		TCF	VECMODE
+		
+LOCTHETA	ADRES	THETAD
+
+# THE FOLLOWING ROUTINE INCREMENTS IN 2'S COMPLEMENT THE REGISTER WHOSE ADDRESS IS IN BUF BY THE 1'S COMPL.
+# QUANTITY FOUND IN TEM2.  THIS MAY BE USED TO INCRMENT DESIRED IMU AND OPTICS CDU ANGLES OR ANY OTHER 2'S COMPL.
+# (+0 UNEQUAL TO -0) QUANTITY.  MAY BE CALLED BY BANKCALL/SWCALL.
+
+CDUINC		TS	TEM2		# 1'S COMPL. QUANT. ARRIVES IN ACC.  STORE IT
+		INDEX	BUF
+		CCS	0		# CHANGE 2'S COMPLE. ANGEL (IN BUF) INTO 1'S
+		AD	ONE
+		TCF	+4
+		AD	ONE
+		AD	ONE		# OVEFLOW HERE IF 2'S COMPL. IS 180 DEG.
+		COM
+
+		AD	TEM2		# SULT MOVES FROM 2ND TO 3D QUAD. (OR BACK)
+		CCS	A		# BACK TO 2'S COMPL.
+		AD	ONE
+		TCF	+2
+		COM
+		TS	TEM2		# STORE 14-BIT QUANTITY WITH PRESENT SIGN
+		TCF	+4
+		INDEX	A		# SIGN.
+		CAF	LIMITS		# FIX IT, BY ADDING IN 37777 OR 40000
+		AD	TEM2
+
+		INDEX	BUF
+		TS	0		# STORE NEW ANGLE IN 2'S COMPLEMENT.
+		TC	Q
+
+# Page 1512
+# RTB TO TORQUE GYROS, EXCEPT FOR THE CALL TO IMUSTALL.  ECADR OF COMMANDS ARRIVES IN X1.
+
+PULSEIMU	INDEX	FIXLOC		# ADDRESS OF GYRO COMMANDS SHOULD BE IN X1
+		CA	X1
+		TC	BANKCALL
+		CADR	IMUPULSE
+		TCF	DANZIG
+
+# Page 1513
+# EACH ROUTINE TAKES A 3X3 MATRIX STORED IN DOUBLE PRECISION IN A FIXED AREA OF ERASABLE MEMORY AND REPLACES IT
+# WITH THE TRANSPOSE MATRIX.  TRANSP1 USES LOCATIONS XNB+0,+1 THROUGH XNB+16D,+17D AND TRANSP2 USES LOCATIONS
+# XNB1+0,+1 THROUGH XNB1+16D,+17D.  EACH MATRIX IS STORED BY ROWS.
+
+XNBEB		ECADR	XNB
+XNB1EB		ECADR	XNB1
+
+		EBANK=	XNB
+		
+TRANSP1		CAF	XNBEB
+		TS	EBANK
+		DXCH	XNB +2
+		DXCH	XNB +6
+		DXCH	XNB +2
+		
+		DXCH	XNB +4
+		DXCH	XNB +12D
+		DXCH	XNB +4
+		
+		DXCH	XNB +10D
+		DXCH	XNB +14D
+		DXCH	XNB +10D
+		TCF	DANZIG
+		EBANK=	XNB1
+		
+TRANSP2		CAF	XNB1EB
+		TS	EBANK
+		DXCH	XNB1 +2
+		DXCH	XNB1 +6
+		DXCH	XNB1 +2
+		
+		DXCH	XNB1 +4
+		DXCH	XNB1 +12D
+		DXCH	XNB1 +4
+		
+		DXCH	XNB1 +10D
+		DXCH	XNB1 +14D
+		DXCH	XNB1 +10D
+		TCF	DANZIG
+
+# Page 1514
+# THE SUBROUTINE SIGNMPAC SETS C(MPAC, MPAC +1) TO SIGN(MPAC).
+# FOR THIS, ONLY THE CONTENTS OF MPAC ARE EXAMINED.  ALSO +0 YIELDS POSMAX AND -0 YIELDS NEGMAX.
+#
+# ENTRY MAY BE BY EITHER OF THE FOLLOWING:
+#	1.	LIMIT THE SIZE OF MPAC ON INTERPRETIVE OVERFLOW:
+#		ENTRY:		BOVB
+#					SIGNMPAC
+#	2.	GENERATE IN MPAC THE SIGNUM FUNCTION OF MPAC:
+#		ENTRY:		RTB
+#					SIGNMPAC
+# IN EITHER CASE, RETURN IS TO TEH NEXT INTERPRETIVE INSTRUCTION IN THE CALLING SEQUENCE.
+
+SIGNMPAC	EXTEND
+		DCA	DPOSMAX
+		DXCH	MPAC
+		CCS	A
+DPMODE		CAF	ZERO		# SETS MPAC +2 TO ZERO IN THE PROCESS
+		TCF	SLOAD2 +2
+		TCF	+1
+		EXTEND
+		DCS	DPOSMAX
+		TCF	SLOAD2
+
+# RTB OP CODE NORMUNIT IS LIKE INTERPRETIVE INSTRUCTION UNIT, EXCEPT THAT IT CAN BE DEPENDED ON NOT TO BLOW
+# UP WHEN THE VECTOR BEING UNITIZED IS VERY SAMLL -- IT WILL BLOW UP WHEN ALL COMPONENT ARE ZERO.  IF NORMUNIT
+# IS USED AND THE UPPER ORDER HALVES OF ALL COMPONENTS ARE ZERO, THE MAGNITUDE RETURNS IN 36D WILL BE TOO LARGE
+# BY A FACTOR OF 2(13) AND THE SQURED MAGNITUDE RETURNED AT 34D WILL BE TOO BIG BY A FACTOR OF 2(26).
+
+NORMUNX1	CAF	ONE
+		TCF	NORMUNIT +1
+NORMUNIT	CAF	ZERO
+		AD	FIXLOC
+		TS	MPAC +2
+		TC	BANKCALL	# GET SIGN AGREEMENT IN ALL COMPONENTS
+		CADR	VECAGREE
+		CCS	MPAC
+		TCF	NOSHIFT
+		TCF	+2
+		TCF	NOSHIFT
+		CCS	MPAC +3
+		TCF	NOSHIFT
+		TCF	+2
+		TCF	NOSHIFT
+		CCS	MPAC +5
+		TCF	NOSHIFT
+		TCF	+2
+		TCF	NOSHIFT
+# Page 1515
+		CA	MPAC +1		# SHIFT ALL COMPONENTS LEFT 13
+		EXTEND
+		MP	BIT14
+		DAS	MPAC		# DAS GAINS A LITTLE ACCURACY
+		CA	MPAC +4
+		EXTEND
+		MP	BIT14
+		DAS	MPAC +3
+		CA	MPAC +6
+		EXTEND
+		MP	BIT14
+		DAS	MPAC +5
+		CAF	THIRTEEN
+		INDEX	MPAC +2
+		TS	37D
+OFFTUNIT	TC	POSTJUMP
+		CADR	UNIT +1		# SKIP THE "TC VECAGREE" DONE AT UNIT
+
+NOSHIFT		CAF	ZERO
+		TCF	OFFTUNIT -2
+
+# RTB VECSGNAG ... FORCES SIGN AGREEMENT OF VECTOR IN MPAC.
+
+VECSGNAG	TC	BANKCALL
+		CADR	VECAGREE
+		TC	DANZIG
+
+# Page 1516
+# MODULE CHANGE FOR NEW LUNAR GRAVITY MODEL
+		SETLOC	MODCHG3
+		BANK
+QUALITY1	BOF	DLOAD
+			MOONFLAG
+			NBRANCH
+			URPV
+		DSQ	GOTO
+			QUALITY2
+		SETLOC	MODCHG2
+		BANK
+QUALITY2	PDDL	DSQ		# SQUARE INTO 2D, B2
+			URPV	+2	# Y COMPONENT, B1
+		DSU
+		DMP	VXSC		# 5(Y**2-X**2)UR
+			5/8		# CONSTANT, 5B3
+			URPV		# VECTOR, RESULT MAXIMUM IS 5, SCALING
+					# HERE B6
+		VSL3	PDDL		# STORE SCALED B3 IN 2D, 4D, 6D FOR XYZ
+			URPV		# X COMPONENT, B1
+		SR1	DAD		# 2 X X COMPONENT FOR B3 SCALING
+			2D		# ADD TO VECTOR X COMPONENT OF ANSWER.
+					# SAME AS MULTIPLYING BY UNITX.  MAX IS 7.
+		STODL	2D
+			URPV	+2	# Y COMPONENT, B1
+		SR1	BDSU		# 2 X Y COMPONENT FOR B3 SCALING
+			4D		# SUBTRACT FROM VECTOR Y COMPONENT OF
+					# ANSWER, SAME AS MULTIPLYING BY UNITY.
+					# MAX IS 7.
+		STORE 	4D		# 2D HAS VECTOR, B3.
+		SLOAD	VXSC		# MULTIPLY COEFFICIENT TIMES VECTOR IN 2D
+			E3J22R2M
+		PDDL	RVQ		# J22 TERM X R**4 IN 2D, SCALED B61
+			COSPHI/2	# SAME AS URPV +4, Z COMPONENT
+
+# *** END OF CHIEFTAN.028 ***
+
diff --git a/RTB_OP_CODES.s b/RTB_OP_CODES.s
new file mode 100644
index 0000000..ad480e2
--- /dev/null
+++ b/RTB_OP_CODES.s
@@ -0,0 +1,236 @@
+# Copyright:	Public domain.
+# Filename:	RTB_OP_CODES.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	1397-1401
+# Mod history:  2009-05-10 SN   (Sergio Navarro).  Started adapting
+#				from the Luminary131/ file of the same
+#				name, using Luminary099 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 001 of AGC program LMY99 by NASA 2021112-61
+#	16:27 JULY 14, 1969 
+
+# Page 1397
+		BANK	22
+		SETLOC	RTBCODES
+		BANK
+
+		EBANK=	XNB
+		COUNT*	$$/RTB
+
+# LOAD TIME2, TIME1 INTO MPAC:
+
+LOADTIME	EXTEND
+		DCA	TIME2
+		TCF	SLOAD2
+
+# CONVERT THE SINGLE PRECISION 2'S COMPLEMENT NUMBER ARRIVING IN MPAC (SCALED IN HALF-REVOLUTIONS) TO A
+# DP 1'S COMPLEMENT NUMBER SCALED IN REVOLUTIONS.
+
+CDULOGIC	CCS	MPAC
+		CAF	ZERO
+		TCF	+3
+		NOOP
+		CS	HALF
+
+		TS	MPAC +1
+		CAF	ZERO
+		XCH	MPAC
+		EXTEND
+		MP	HALF
+		DAS	MPAC
+		TCF	DANZIG		# MODE IS ALREADY AT DOUBLE-PRECISION
+
+# FORCE TP SIGN AGREEMENT IN MPAC:
+
+SGNAGREE	TC	TPAGREE
+		TCF	DANZIG
+
+# CONVERT THE DP 1'S COMPLEMENT ANGLE SCALED IN REVOLUTIONS TO A SINGLE PRECISION 2'S COMPLEMENT ANGLE
+# SCALED IN HALF-REVOLUTIONS.
+
+1STO2S		TC	1TO2SUB
+		CAF	ZERO
+		TS	MPAC +1
+		TCF	NEWMODE
+
+# DO 1STO2S ON A VECTOR OF ANGLES:
+
+V1STO2S		TC	1TO2SUB		# ANSWER ARRIVES IN A AND MPAC.
+
+		DXCH	MPAC +5
+		DXCH	MPAC
+		TC	1TO2SUB
+# Page 1398
+		TS	MPAC +2
+
+		DXCH	MPAC +3
+		DXCH	MPAC
+		TC	1TO2SUB
+		TS	MPAC +1
+
+		CA	MPAC +5
+		TS	MPAC
+
+TPMODE		CAF	ONE		# MODE IS TP.
+		TCF	NEWMODE
+
+# V1STO2S FOR 2 COMPONENT VECTOR. USED BY RR.
+
+2V1STO2S	TC	1TO2SUB
+		DXCH	MPAC +3
+		DXCH	MPAC
+		TC	1TO2SUB
+		TS	L
+		CA	MPAC +3
+		TCF	SLOAD2
+
+# SUBROUTINE TO DO DOUBLING AND 1'S TO 2'S CONVERSION:
+
+1TO2SUB		DXCH	MPAC		# FINAL MPAC +1 UNSPECIFIED.
+		DDOUBL
+		CCS	A
+		AD	ONE
+		TCF	+2
+		COM			# THIS WAS REVERSE OF MSU.
+
+		TS	MPAC		# AND SKIP ON OVERFLOW.
+		TC	Q
+
+		INDEX	A		# OVERFLOW UNCORRECT AND IN MSU.
+		CAF	LIMITS
+		ADS	MPAC
+		TC	Q
+
+# THE FOLLOWING ROUTINE INCREMENTS IN 2S COMPLEMENT THE REGISTER WHOSE ADDRESS IS IN BUF BY THE 1S COMPL.
+# QUANTITY FOUND IN TEM2.  THIS MAY BE USED TO INCRMENT DESIRED IMU AND OPTICS CDU ANGLES OR ANY OTHER 2S COMPL.
+# (+0 UNEQUAL TO -0) QUANTITY.  MAY BE CALLED BY BANKCALL/SWCALL.
+
+CDUINC		TS	TEM2		# 1S COMPL.QUANT. ARRIVES IN ACC.  STORE IT
+		INDEX	BUF
+		CCS	0		# CHANGE 2S COMPL. ANGLE(IN BUF)INTO 1S
+		AD	ONE
+		TCF	+4
+		AD	ONE
+# Page 1399
+		AD	ONE		# OVEFLOW HERE IF 2S COMPL. IS 180 DEG.
+		COM
+
+		AD	TEM2		# SULT MOVES FROM 2ND TO 3D QUAD. (OR BACK)
+		CCS	A		# BACK TO 2S COMPL.
+		AD	ONE
+		TCF	+2
+		COM
+		TS	TEM2		# STORE 14BIT QUANTITY WITH PRESENT SIGN
+		TCF	+4
+		INDEX	A		# SIGN.
+		CAF	LIMITS		# FIX IT, BY ADDING IN 37777 OR 40000
+		AD	TEM2
+
+		INDEX	BUF
+		TS	0		# STORE NEW ANGLE IN 2S COMPLEMENT.
+		TC	Q
+
+# Page 1400
+# RTB TO TORQUE GYROS, EXCEPT FOR THE CALL TO IMUSTALL.  ECADR OF COMMANDS ARRIVES IN X1.
+
+PULSEIMU	INDEX	FIXLOC		# ADDRESS OF GYRO COMMANDS SHOULD BE IN X1
+		CA	X1
+		TC	BANKCALL
+		CADR	IMUPULSE
+		TCF	DANZIG
+
+# Page 1401
+# THE SUBROUTINE SIGNMPAC SETS C(MPAC, MPAC +1) TO SIGN(MPAC).
+# FOR THIS, ONLY THE CONTENTS OF MPAC ARE EXAMINED.  ALSO +0 YIELDS POSMAX AND -0 YIELDS NEGMAX.
+#
+# ENTRY MAY BE BY EITHER OF THE FOLLOWING:
+#	1.	LIMIT THE SIZE OF MPAC ON INTERPRETIVE OVERFLOW:
+#		ENTRY:		BOVB
+#					SIGNMPAC
+#	2.	GENERATE IN MPAC THE SIGNUM FUNCTION OF MPAC:
+#		ENTRY:		RTB
+#					SIGNMPAC
+# IN EITHER CASE, RETURN IS TO TEH NEXT INTERPRETIVE INSTRUCTION IN THE CALLING SEQUENCE.
+
+SIGNMPAC	EXTEND
+		DCA	DPOSMAX
+		DXCH	MPAC
+		CCS	A
+DPMODE		CAF	ZERO		# SETS MPAC +2 TO ZERO IN THE PROCESS
+		TCF	SLOAD2 +2
+		TCF	+1
+		EXTEND
+		DCS	DPOSMAX
+		TCF	SLOAD2
+
+# RTB OP CODE NORMUNIT IS LIKE INTERPRETIVE INSTRUCTION UNIT, EXCEPT THAT IT CAN BE DEPENDED ON NOT TO BLOW
+# UP WHEN THE VECTOR BEING UNITIZED IS VERY SMALL -- IT WILL BLOW UP WHEN ALL COMPONENT ARE ZERO.  IF NORMUNIT
+# IS USED AND THE UPPER ORDER HALVES OF ALL COMPONENTS ARE ZERO, THE MAGNITUDE RETURNED IN 36D WILL BE TOO LARGE
+# BY A FACTOR OF 2(13) AND THE SQUARED MAGNITUDE RETURNED ATE 34D WILL BE TOO BIG BY A FACTOR OF 2(26).
+
+NORMUNX1	CAF	ONE
+		TCF	NORMUNIT +1
+NORMUNIT	CAF	ZERO
+		AD	FIXLOC
+		TS	MPAC +2
+		TC	BANKCALL	# GET SIGN AGREEMENT IN ALL COMPONENTS
+		CADR	VECAGREE
+		CCS	MPAC
+		TCF	NOSHIFT
+		TCF	+2
+		TCF	NOSHIFT
+		CCS	MPAC +3
+		TCF	NOSHIFT
+		TCF	+2
+		TCF	NOSHIFT
+		CCS	MPAC +5
+		TCF	NOSHIFT
+		TCF	+2
+		TCF	NOSHIFT
+# Page 1402
+		CA	MPAC +1		# SHIFT ALL COMPONENTS LEFT 13
+		EXTEND
+		MP	BIT14
+		DAS	MPAC		# DAS GAINS A LITTLE ACCURACY
+		CA	MPAC +4
+		EXTEND
+		MP	BIT14
+		DAS	MPAC +3
+		CA	MPAC +6
+		EXTEND
+		MP	BIT14
+		DAS	MPAC +5
+		CAF	THIRTEEN
+		INDEX	MPAC +2
+		TS	37D
+OFFTUNIT	TC	POSTJUMP
+		CADR	UNIT +1		# SKIP THE "TC VECAGREE" DONE AT UNIT
+
+NOSHIFT		CAF	ZERO
+		TCF	OFFTUNIT -2
+
+# RTB VECSGNAG ... FORCES SIGN AGREEMENT OF VECTOR IN MPAC.
+
+VECSGNAG	TC	BANKCALL
+		CADR	VECAGREE
+		TC	DANZIG
+
+# *** END OF SKIPPER .087 ***
+
diff --git a/S-BAND_ANTENNA_FOR_CM.s b/S-BAND_ANTENNA_FOR_CM.s
new file mode 100644
index 0000000..53d7465
--- /dev/null
+++ b/S-BAND_ANTENNA_FOR_CM.s
@@ -0,0 +1,129 @@
+# Copyright:	Public domain.
+# Filename:	S-BAND_ANTENNA_FOR_CM.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:	Jim Lawton <jim.lawton@gmail.com>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	934-935
+# Mod history:	2009-05-11 JVL	Adapted 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 934
+# S-BAND ANTENNA FOR CM
+
+		BANK	23
+		SETLOC	SBAND
+		BANK
+		
+		COUNT*	$$/R05
+		EBANK=	EMSALT
+		
+SBANDANT	TC	BANKCALL	# V 64 E GETS US HERE
+		CADR	R02BOTH		# CHECK IF IMU IS ON AND ALIGNED
+		TC	INTPRET
+		RTB	CALL
+			LOADTIME	# PICKUP CURRENT TIME SCALED B-28
+			CDUTRIG		# COMPUTE SINES AND COSINES OF CDU ANGLES
+		STCALL	TDEC1		# ADVANCE INTEGRATION TO TIME IN TDEC1
+			CSMCONIC	# USING CONIC INTEGRATION
+		SLOAD	BHIZ		# ORIGIN OF REFERENCE INERTIAL SYSTEM IS
+			X2		# EARTH = 0, MOON = 2
+			EISOI
+		VLOAD
+			RATT
+		STORE	RCM		# MOVE RATT TO PREVENT WIPEOUT
+		DLOAD	CALL		# MOON, PUSH ON
+			TAT		# GET ORIGINAL TIME
+			LUNPOS		# COMPUTE POSITION VECTOR OF MOON
+		VAD	VCOMP		# R= -(REM+RCM) = NEG. OF S/C POS. VEC
+			RCM
+		GOTO
+			EISOI +2
+EISOI		VLOAD	VCOMP		# EARTH, R= -RCM
+			RATT
+		SETPD	MXV		# RCS TO STABLE MEMBER: B-1X B-29X B+1
+			2D		# 2D
+			REFSMMAT	# STABLE MEMBER.  B-1X B-29X B+1= B-29
+		VSL1	PDDL		# 8D
+			HI6ZEROS
+		STOVL	YAWANG		# ZERO OUT YAWANG, SET UP FOR SMNB
+			RCM		# TRANSFORMATION.  SM COORD.  SCALED B-29
+		CALL
+			*SMNB*
+		STORE	R		# SAVE NAV. BASE COORDINATES
+		UNIT	PDVL		# 14D
+			R
+		VPROJ	VSL2		# COMPUTE PROJECTION OF VECTOR INTO CM
+			HIUNITZ		# XY-PLANE, R-(R.UZ)UZ
+		BVSU	BOV		# CLEAR OVERFLOW INDICATOR IF SET
+			R
+			COVCNV
+COVCNV		UNIT	BOV		# TEST OVERFLOW FOR INDICATION OF NULL
+			NOADJUST	# VECTOR
+		PUSH	DOT		# 20D
+# Page 935
+			HIUNITX		# COMPUTE YAW ANGLE = ACOS (URP.UX)
+		SL1	ACOS		# REVOLUTIONS SCALED B0
+		PDVL	DOT		# 22D YAWANG
+			URP
+			HIUNITY		# COMPUTE FOLLOWING: URP.UY
+		SL1	BPL		# POSITIVE
+			NOADJUST	# YES, 0-180 DEGREES
+		DLOAD	DSU		# NO, 181-360 DEGREES 20D
+			DPPOSMAX	# COMPUTE 2 PI MINUS YAW ANGLE
+		PUSH			# 22D YAWANG
+NOADJUST	VLOAD	DOT		# COMPUTE PITCH ANGLE
+			UR		# ACOS (UR.UZ) - PI/2
+			HIUNITZ
+		SL1	ACOS		# REVOLUTIONS B0
+		DSU
+			HIDP1/4
+		STODL	RHOSB
+			YAWANG
+		STORE	GAMMASB		# PATCH FOR CHECKOUT
+		EXIT
+		CA	EXTVBACT	# IS BIT 5 STILL ON
+		MASK	BIT5
+		EXTEND
+		BZF	ENDEXT		# NO, WE HAVE BEEN ANSWERED
+		CAF	V06N51		# DISPLAY ANGLES
+		TC	BANKCALL
+		CADR	GOMARKFR
+		TC	B5OFF		# TERMINATE
+		TC	B5OFF
+		TC	ENDOFJOB	# RECYCLE
+		CAF	BIT3		# IMMEDIATE RETURN
+		TC	BLANKET		# BLANK R3
+		CAF	BIT1		# DELAY MINIMUM TIME TO ALLOW DISPLAY IN
+		TC	BANKCALL
+		CADR	DELAYJOB
+		TCF	SBANDANT +2
+V06N51		VN	0651
+RCM		EQUALS	2D
+UR		EQUALS	8D
+URP		EQUALS	14D
+YAWANG		EQUALS	20D
+PITCHANG	EQUALS	22D
+R		EQUALS	RCM
+		SBANK=	LOWSUPER
+
diff --git a/S-BAND_ANTENNA_FOR_LM.s b/S-BAND_ANTENNA_FOR_LM.s
new file mode 100644
index 0000000..1d24695
--- /dev/null
+++ b/S-BAND_ANTENNA_FOR_LM.s
@@ -0,0 +1,201 @@
+# Copyright:	Public domain.
+# Filename:	S-BAND_ANTENNA_FOR_LM.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	486-489
+# Mod history:	2009-05-17 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#		2009-06-07 RSB	Corrected a misprint.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 486
+# SUBROUTINE NAME: R05 -- S-BAND ANTENNA FOR LM
+#
+# MOD0 BY T. JAMES
+# MOD1 BY P. SHAKIR
+#
+# FUNCTIONAL DESCRIPTION
+#
+# THE S-BAND ANTENNA ROUTINE, R05, COMPUTES AND DISPLAYS THE PITCH AND
+# YAW ANTENNA GIMBAL ANGLES REQUIRED TO POINT THE LM STEERABLE ANTENNA
+# TOWARD THE CENTER OF THE EARTH.  THIS ROUTINE IS SELECTED BY THE ASTRO-
+# NAUT VIA DSKY ENTRY DURING COASTING FLIGHT OR WHEN THE LM IS ON THE MOON
+# SURFACE.  THE EARTH OR MOON REFERENCE COORDINATE SYSTEM IS USED DEPENDING
+# ON WHETHER THE LM IS ABOUT TO ENTER OR HAS ALREADY ENTERED THE MOON
+# SPHERE OF INFLUENCE, RESPECTIVELY.
+#
+# TO CALL SUBROUTINE, ASTRONAUT KEYS IN V 64 E
+#
+# SUBROUTINES CALLED ---
+#	R02BOTH
+#	INTPRET
+#	LOADTIME
+#	LEMCONIC
+#	LUNPOS
+#	CDUTRIG
+#	*SMNB*
+#	BANKCALL
+#	B50OFF
+#	ENDOFJOB
+#	BLANKRET
+#
+# RETURNS WITH
+#	PITCH ANGLE IN PITCHANG 	REV. B0
+#	YAW ANGLE IN YAWANG		REV. B0
+#
+# ERASABLES USED
+#	PITCHANG
+#	YAWANG
+#	RLM
+#	VAC AREA
+
+		BANK	41
+		SETLOC	SBAND
+		BANK
+		
+		EBANK=	WHOCARES
+		COUNT*	$$/R05
+SBANDANT	TC	BANKCALL
+# Page 487
+		CADR	R02BOTH		# CHECK IF IMU IS ON AND ALIGNED
+		TC	INTPRET
+		SETPD	RTB
+			0D
+			LOADTIME	# PICK UP CURRENT TIME
+		STCALL	TDEC1		# ADVANCE INTEGRATION TO TIME IN TDEC1
+			LEMCONIC	# USING CONIC INTEGRATION
+		SLOAD	BHIZ
+			X2		# X2 =0 EARTH SPHERE, X2 =2 MOON SPHERE
+			CONV4
+		VLOAD
+			RATT
+		STODL	RLM
+			TAT
+CONV3		CALL
+			LUNPOS		# UNIT POSITION VECTOR FROM EARTH TO MOON
+		VLOAD	VXSC
+			VMOON
+			REMDIST		# MEAN DISTANCE FROM EARTH TO MOON
+		VSL1	VAD
+			RLM
+		GOTO
+			CONV5
+CONV4		VLOAD
+			RATT		# UE = -UNIT(RATT)		EARTH SPHERE
+CONV5		SETPD	UNIT		# UE = -UNIT((REM)(UEM) + RL)	MOON SPHERE
+			0D		# SET PL POINTER TO 0
+		VCOMP	CALL
+			CDUTRIG		# COMPUTE SINES AND COSINES OF CDU ANGLES
+		MXV	VSL1		# TRANSFORM REF. COORDINATE SYSTEM TO
+			REFSMMAT	# STABLE MEMBER B-1 X B-1 X B+1 = B-1
+		PUSH	DLOAD		# 8D
+			HI6ZEROS
+		STORE	PITCHANG
+		STOVL	YAWANG		# ZERO OUT ANGLES
+		CALL
+			*SMNB*
+		STODL	RLM		# PRE-MULTIPLY RLM BY (NBSA) MATRIX(B0)
+			RLM 	+2
+		PUSH	DSU
+			RLM
+		DMP
+			1OVSQRT2
+		STODL	RLM 	+2
+		DAD	DMP
+			RLM
+			1OVSQRT2
+		STOVL	RLM		# R B-1
+			RLM
+		UNIT	PDVL
+# Page 488		
+			RLM
+		VPROJ	VSL2		# PROJECTION OF R ONTO LM XZ PLANE.
+			HIUNITY
+		BVSU	BOV		# CLEAR OVERFLOW INDICATOR IF ON
+			RLM
+			COVCNV
+COVCNV		UNIT	BOV		# EXIT ON OVERFLOW
+			SBANDEX
+		PUSH	VXV		# URP VECTOR B-1
+			HIUNITZ
+		VSL1	VCOMP		# UZ X URP = -(URP X UZ)
+		STORE	RLM		# X VEC B-1
+		DOT	PDVL		# SGN(X.UY) UNSCALED
+			HIUNITY
+			RLM
+		ABVAL	SIGN
+		ASIN			# ASIN((SGN(X.UY))ABV(X))	REV B0
+		STOVL	PITCHANG
+			URP
+		DOT	BPL
+			HIUNITZ
+			NOADJUST	# YES, -90 TO +90
+		DLOAD	DSU
+			HIDPHALF
+			PITCHANG
+		STORE	PITCHANG
+NOADJUST	VLOAD	VXV
+			UR		# Z = (UR X URP)
+			URP
+		VSL1
+		STODL	RLM		# Z VEC B-1
+			PITCHANG
+		SIN	VXSC
+			HIUNITZ
+		PDDL	COS
+			PITCHANG
+		VXSC	VSU
+			HIUNITX		# (UX COS ALPHA) - (UZ SIN ALPHA)
+		DOT	PDVL		# YAW.Z
+			RLM
+			RLM
+		ABVAL	SIGN
+		ASIN
+		STORE	YAWANG
+SBANDEX		EXIT
+		CA	EXTVBACT
+		MASK	BIT5		# IS BIT5 STILL ON
+		EXTEND
+		BZF	ENDEXT		# NO
+		CAF	PRIO5
+# Page 489		
+		TC	PRIOCHNG
+		CAF	V06N51		# DISPLAY ANGLES
+		TC	BANKCALL
+		CADR	GOMARKFR
+		TC	B5OFF		# TERMINATE
+		TC	B5OFF		# PROCEED
+		TC	ENDOFJOB	# RECYCLE
+		CAF	BIT3		# IMMEDIATE RETURN
+		TC	BLANKET		# BLANK R3
+		CAF	PRIO4
+		TC	PRIOCHNG
+		TC	SBANDANT +2	# YES, CONTINUE DISPLAYING ANGLES.
+V06N51		VN	0651
+1OVSQRT2	2DEC	.7071067815	# 1/SQRT(2)
+
+UR		EQUALS	0D
+URP		EQUALS	6D
+		SBANK=	LOWSUPER
+		
+# END OF LNYAIDE .001 ***
+
diff --git a/SERVICER.s b/SERVICER.s
new file mode 100644
index 0000000..c3a8f2f
--- /dev/null
+++ b/SERVICER.s
@@ -0,0 +1,1715 @@
+# Copyright:	Public domain.
+# Filename:	SERVICER.agc
+# Purpose:	Part of the source code for Luminary, build 099. It
+#		is part of the source code for the Lunar Module's
+#		(LM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:	yaYUL
+# Reference:	pp. 857-897
+# Contact:	Ron Burkey <info@sandroid.org>,
+#  		Fabrizio Bernardini <fabrizio@spacecraft.it>
+# Website:	http://www.ibiblio.org/apollo.
+# Mod history:	2009-06-01 FB	Transcription Batch 4 Assignment.
+#		2009-06-05 RSB	Fixed a couple of typos, plus a goofy relative
+#				label reference from the original source.
+#
+# The contents of the "Luminary099" files, in general, are transcribed 
+# from scanned documents. 
+#
+#	Assemble revision 001 of AGC program Luminary099 by NASA
+#	2021112-061.  July 14, 1969.  
+#
+#	Prepared by
+#			Massachussets Institute of Technology
+#			75 Cambridge Parkway
+#			Cambridge, Massachusetts
+#
+#	under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 857
+		BANK	37
+		SETLOC	SERV1
+		BANK
+
+		EBANK=	DVCNTR
+
+# ************* PREREAD *******************
+
+		COUNT*	$$/SERV
+
+PREREAD		CAF	SEVEN		# 5.7 SPOT TO SKIP LASTBIAS AFTER
+		TC	GNUFAZE5	# RESTART.
+		CAF	PRIO21
+		TC	NOVAC
+		EBANK=	NBDX
+		2CADR	LASTBIAS	# DO LAST GYRO COMPENSATION IN FREE FALL
+
+BIBIBIAS	TC	PIPASR +3	# CLEAR + READ PIPS LAST TIME IN FRE5+F133
+					# DO NOT DESTROY VALUE OF PIPTIME1
+
+		CS	FLAGWRD7
+		MASK	SUPER011	# SET V37FLAG AND AVEGFLAG (BITS 5 AND 6
+		ADS	FLAGWRD7	# 	OF FLAGWRD7)
+
+		CS	DRFTBIT
+		MASK	FLAGWRD2	# RESET DRIFTFLAG
+		TS	FLAGWRD2
+
+		CAF	FOUR		# INITIALIZE DV MONITOR
+		TS	PIPAGE
+
+		CAF	ENDJBCAD	# POINT OUTROUTE TO END-OF-JOB.
+		TS	OUTROUTE
+
+		CAF	PRIO22
+		TC	FINDVAC		# TO FIRST ENTRY TO AVERAGE G
+		EBANK=	DVCNTR
+		2CADR	NORMLIZE
+
+		CA	TWO		# 5.2SPOT FOR REREADAC AND NORMLIZE
+GOREADAX	TC	GNUTFAZ5
+		CA	2SECS		# WAIT TWO SECONDS FOR READACCS
+		TC	VARDELAY
+
+# Page 858
+# ************* READACCS ****************
+
+READACCS	CS	OCT37771	# THIS PIECE OF CODING ATTEMPTS TO
+		AD	TIME5		# SYNCHRONIZE READACCS WITH THE DIGITAL
+		CCS	A		# AUTOPILOT SO THAT A PAXIS RUPT WILL
+		CS	ONE		# OCCUR APPROXIMATELY 70 MILLISECONDS
+		TCF	+2		# FOLLOWING THE READACCS RUPT.  THE 70 MS
+		CA	ONE		# OFFSET WAS CHOSEN SO THAT THE PAXIS
+	+2	ADS	TIME5		# RUPT WOULD NOT OCCUR SIMULTANEOUSLY
+ 					# WITH ANY OF THE 8 SUBSEQUENT R10,R11
+					# INTERRUPTS -- THUS MINIMIZING THE POSS-
+					# IBILITY OF LOSING DOWNRUPTS.
+
+		TC	PIPASR		# READ THE PIPAS.
+
+PIPSDONE	CA	FIVE
+		TC	GNUFAZE5
+REDO5.5		CAF	ONE
+		TS	PIPAGE
+
+		CA	PRIO20
+		TC	FINDVAC
+		EBANK=	DVCNTR
+		2CADR	SERVICER	# SET UP SERVICER JOB
+
+		CA	BIT9
+		EXTEND
+		WOR	DSALMOUT	# TURN ON TEST CONNECTOR OUTBIT
+
+		CA	FLAGWRD7
+		MASK	AVEGFBIT
+		EXTEND
+		BZF	AVEGOUT		# AVEGFLAG DOWN -- SET UP FINAL EXIT
+
+		CA	FLAGWRD6
+		MASK	MUNFLBIT
+		EXTEND
+		BZF	MAKEACCS	# MUNFLAG CLEAR -- BYPASS LR AND DISP.
+
+		CCS	PHASE2
+		TCF	MAKEACCS	# PHASE 2 ACTIVATED -- AVOID MULTIPLE R10.
+
+		CAF	SEVEN		# SET PIPCTR FOR 4X/SEC RATE.
+		TS	PIPCTR
+
+		CS	TIME1		# SET TBASE2 .05 SECONDS IN THE PAST.
+		AD	FIVE
+		AD	NEG1/2
+		AD	NEG1/2
+		XCH	TBASE2
+# Page 859
+		CAF	DEC17		# 2.21SPOT FOR R10,R11
+		TS	L
+		COM
+		DXCH	-PHASE2
+
+		CAF	OCT24		# FIRST R10,R11 IN .200 SECONDS
+		TC	WAITLIST
+		EBANK=	UNIT/R/
+		2CADR	R10,R11
+
+MAKEACCS	CA	FOUR
+		TCF	GOREADAX	# DO PHASE CHANGE AND RECALL READACCS
+
+AVEGOUT		EXTEND
+		DCA	AVOUTCAD	# SET UP FINAL SERVICER EXIT
+		DXCH	AVGEXIT
+
+		CA	FOUR		# SET 5.4 SPOT FOR REREADAC AND SERVICER
+		TC	GNUTFAZ5	# IF REREADAC IS CALLED, IT WILL EXIT
+		TC	TASKOVER	# END TASK WITHOUT CALLING READACCS
+
+GNUTFAZ5	TS	L		# SAVE INPUT IN L
+		CS	TIME1
+		TS	TBASE5		# SET TBASE5
+		TCF	+2
+
+GNUFAZE5	TS	L		# SAVE INPUT IN L
+		CS	L		# -PHASE IN A, PHASE IN L.
+		DXCH	-PHASE5		# SET -PHASE5,PHASE5
+		TC	Q
+
+		EBANK=	DVCNTR
+AVOUTCAD	2CADR	AVGEND
+
+ENDJBCAD	CADR	SERVEXIT +2
+
+OCT37771	OCT	37771
+
+		BANK	33
+		SETLOC	SERVICES
+		BANK
+
+		COUNT*	$$/SERV
+
+# Page 860
+# ************* SERVICER ****************
+
+SERVICER	TC	PHASCHNG	# RESTART REREADAC + SERVICER
+		OCT	16035
+		OCT	20000
+		EBANK=	DVCNTR
+		2CADR	GETABVAL
+
+		CAF	PRIO31		# INITIALIZE 1/PIPADT IN CASE RESTART HAS
+		TS	1/PIPADT	# CAUSED LASTBIAS TO BE SKIPPED.
+
+		TC	BANKCALL	# PIPA COMPENSATION CALL
+		CADR	1/PIPA
+
+GETABVAL	TC	INTPRET
+		VLOAD	ABVAL
+			DELV
+		EXIT
+		CA	MPAC
+		TS	ABDELV		# ABDELV = CM/SEC*2(-14).
+		EXTEND
+		MP	KPIP
+		DXCH	ABDVCONV	# ABDVCONV = M/CS * 2(-5).
+		EXTEND
+		DCA	MASS
+		DXCH	MASS1		# INITIALIZE MASS1 IN CASE WE SKIP MASSMON
+MASSMON		CS	FLAGWRD8	# ARE WE ON THE SURFACE?
+		MASK	SURFFBIT
+		EXTEND
+		BZF	MOONSPOT	# YES:  BYPASS MASS MESS
+
+		CA	FLGWRD10	# NO:  WHICH VEX SHOULD BE USED?
+		MASK	APSFLBIT
+		CCS	A
+		EXTEND			# IF EXTEND IS EXECUTED, APSVEX --> A,
+		DCA	APSVEX		# 	OTHERWISE DPSVEX --> A
+		TS	Q
+
+		EXTEND
+		DCA	ABDVCONV
+		EXTEND
+OCT10002	DV	Q		# WHERE APPROPRIATE VEX RESIDES
+		EXTEND
+		MP	MASS
+		DAS	MASS1
+
+MOONSPOT	CA	KPIP1		# TP MPAC = ABDELV AT 2(14) CM/SEC
+		TC	SHORTMP		# MULTIPLY BY KPIP1 TO GET
+# Page 861
+		DXCH	MPAC		# ABDELV AT 2(7) M/CS
+		DAS	DVTOTAL		# UPDATE DVTOTAL FOR DISPLAY
+
+		TC	TMPTOSPT
+
+		TC	BANKCALL
+		CADR	QUICTRIG
+
+		CAF	XNBPIPAD
+		TC	BANKCALL
+		CADR	FLESHPOT
+		TC	INTPRET
+AVERAGEG	BON	CALL
+			MUNFLAG
+			RVBOTH
+			CALCRVG
+		EXIT
+GOSERV		TC	QUIKFAZ5
+
+COPYCYCL	TC	COPYCYC
+
+#		CA	ZERO		# A IS ZERO ON RETURN FROM COPYCYC
+		TS	PIPATMPX
+		TS	PIPATMPY
+		TS	PIPATMPZ
+
+		CS	STEERBIT	# CLEAR STEERSW PRIOR TO DVMON.
+		MASK	FLAGWRD2
+		TS	FLAGWRD2
+
+		CAF	IDLEFBIT	# IS THE IDLE FLAG SET?
+		MASK	FLAGWRD7
+		CCS	A
+		TCF	NODVMON1	# IDLEFLAG = 1, HENCE SET AUXFLAG TO 0.
+
+		CS	FLAGWRD6
+		MASK	AUXFLBIT
+		CCS	A
+		TCF	NODVMON2	# AUXFLAG = 0, HENCE SET AUXFLAG TO 1.
+
+DVMON		CS	DVTHRUSH
+		AD	ABDELV
+		EXTEND
+		BZMF	LOTHRUST
+
+		CS	FLAGWRD2	# SET STEERSW.
+		MASK	STEERBIT
+		ADS	FLAGWRD2
+
+DVCNTSET	CAF	ONE		# ALLOW TWO PASSES MAXIMUM NOW THAT
+# Page 862
+		TS	DVCNTR		# THRUST HAS BEEN DETECTED.
+
+		CA	FLGWRD10	# BRANCH IF APSFLAG IS SET.
+		MASK	APSFLBIT
+		CCS	A
+		TCF	USEJETS
+
+		CA	BIT9		# CHECK GIMBAL FAIL BIT
+		EXTEND
+		RAND	CHAN32
+		EXTEND
+		BZF	USEJETS
+
+USEGTS		CS	USEQRJTS
+		MASK	DAPBOOLS
+		TS	DAPBOOLS
+		TCF	SERVOUT
+
+NODVMON1	CS	AUXFLBIT	# SET AUXFLAG TO 0.
+		MASK	FLAGWRD6
+		TS	FLAGWRD6
+		TCF	USEJETS
+NODVMON2	CS	FLAGWRD6	# SET AUXFLAG TO 1.
+		MASK	AUXFLBIT
+		ADS	FLAGWRD6
+		TCF	USEJETS
+
+LOTHRUST	TC	QUIKFAZ5
+		CCS	DVCNTR
+		TCF	DECCNTR
+
+		CCS	PHASE4		# COMFAIL JOB ACTIVE?
+		TCF	SERVOUT		# YES:  WON'T NEED ANOTHER.
+
+		TC	PHASCHNG	# 4.37SPOT FOR COMFAIL.
+		OCT	00374
+
+		CAF	PRIO25
+		TC	NOVAC
+		EBANK=	WHICH
+		2CADR	COMFAIL
+
+		TCF	SERVOUT
+
+DECCNTR		TS	DVCNTR1
+		TC	QUIKFAZ5
+		CA	DVCNTR1
+		TS	DVCNTR
+		INHINT
+		TC	IBNKCALL	# IF THRUST IS LOW, NO STEERING IS DONE
+# Page 863
+		CADR	STOPRATE	# AND THE DESIRED RATES ARE SET TO ZERO.
+USEJETS		CS	DAPBOOLS
+		MASK	USEQRJTS
+		ADS	DAPBOOLS
+SERVOUT		RELINT
+		TC	BANKCALL
+		CADR	1/ACCS
+
+		CA	PRIORITY
+		MASK	LOW9
+		TS	PUSHLOC
+		ZL
+		DXCH	FIXLOC		# FIXLOC AND DVFIND
+
+		TC	QUIKFAZ5
+		EXTEND			# EXIT TO SELECTED ROUTINE WHETHER THERE
+		DCA	AVGEXIT		# IS THRUST OR NOT.  THE STATE OF STEERSW
+		DXCH	Z		# WILL CONVEY THIS INFORMATION.
+
+XNBPIPAD	ECADR	XNBPIP
+
+		BANK	32
+		SETLOC	SERV2
+		BANK
+		COUNT*	$$/SERV
+
+AVGEND		CA	PIPTIME +1	# FINAL AVERAGE G EXIT
+		TS	1/PIPADT	# SET UP FREE FALL GYRO COMPENSATION.
+
+		TC	UPFLAG		# SET DRIFT FLAG.
+		ADRES	DRIFTFLG
+
+		TC	BANKCALL
+		CADR	PIPFREE
+
+		CS	BIT9
+		EXTEND
+		WAND	DSALMOUT
+
+		TC	2PHSCHNG
+		OCT	5		# GROUP 5 OFF
+		OCT	05022		# GROUP 2 ON
+		OCT	20000
+
+		TC	INTPRET
+		SET	CLEAR
+			NOR29FLG	# SHUT OFF R29 WHEN SERVICER ENDS.
+			SWANDISP	# SHUT OFF R10 WHEN SERVICER ENDS.
+		CLEAR	CALL		# RESET MUNFLAG.
+			MUNFLAG
+# Page 864
+			AVETOMID
+		CLEAR	EXIT
+			V37FLAG
+AVERTRN		CA	OUTROUTE	# RETURN TO DESIRED POINT.
+		TC	BANKJUMP
+
+OUTGOAVE	=	AVERTRN
+DVCNTR1		=	MASS1
+
+# Page 865
+		SETLOC	SERV3
+		BANK
+		COUNT*	$$/SERV
+
+SERVIDLE	EXTEND			# DISCONNECT SERVICER FROM ALL GUIDANCE
+		DCA	SVEXTADR
+		DXCH	AVGEXIT
+
+		CS	FLAGWRD7	# DISCONNECT THE DELTA-V MONITOR
+		MASK	IDLEFBIT
+		ADS	FLAGWRD7
+
+		CAF	LRBYBIT		# TERMINATE R12 IS RUNNING.
+		TS	FLGWRD11
+
+		EXTEND
+		DCA	NEG0
+		DXCH	-PHASE1
+
+		CA	FLAGWRD6	# DO NOT TURN OFF PHASE 2 IF MUNFLAG SET.
+		MASK	MUNFLBIT
+		CCS	A
+		TCF	+4
+
+		EXTEND
+		DCA	NEG0
+		DXCH	-PHASE2
+
+ 	+4	EXTEND
+ 		DCA	NEG0
+		DXCH	-PHASE3
+
+		EXTEND
+		DCA	NEG0
+		DXCH	-PHASE6
+
+		CAF	OCT33		# 4.33SPOT FOR GOP00FIX
+		TS	L
+		COM
+		DXCH	-PHASE4
+
+		TCF	WHIMPER		# PERFORM A SOFTWARE RESTART AND PROCEED
+					# TO GOTOP00H WHILE SERVICER CONTINUES TO
+					# RUN, ALBEIT IN A GROUND STATE WHERE
+					# ONLY STATE-VECTOR DEPENDENT FUNCTIONS
+					# ARE MAINTAINED.
+
+		EBANK=	DVCNTR
+# Page 866
+SVEXTADR	2CADR	SERVEXIT
+
+		BANK	32
+		SETLOC	SERV
+		BANK
+		COUNT*	$$/SERV
+
+SERVEXIT	TC	PHASCHNG
+		OCT	00035
+
++2		TCF	ENDOFJOB
+
+		BANK	23
+		SETLOC	NORMLIZ
+		BANK
+
+		COUNT*	$$/SERV
+
+# Page 867
+NORMLIZE	TC	INTPRET
+		VLOAD	BOFF
+			RN1
+			MUNFLAG
+			NORMLIZ1
+		VSL6	MXV
+			REFSMMAT
+		STCALL	R
+			MUNGRAV
+		VLOAD	VSL1
+			VN1
+		MXV
+			REFSMMAT
+		STOVL	V
+			V(CSM)
+		VXV	UNIT
+			R(CSM)
+		STORE	UHYP
+ASCSPOT		EXIT
+		EXTEND			# MAKE SURE GROUP 2 IS OFF
+		DCA	NEG0
+		DXCH	-PHASE2
+
+		TC	POSTJUMP
+		CADR	NORMLIZ2
+
+		BANK	33
+		SETLOC	SERVICES
+		BANK
+		COUNT*	$$/SERV
+
+NORMLIZ1	CALL
+			CALCGRAV
+		EXIT
+
+NORMLIZ2	CA	EIGHTEEN
+		TC	COPYCYC +1	# DO NOT COPY MASS IN NORMLIZE
+		TC	ENDOFJOB
+
+COPYCYC		CA	OCT24		# DEC 20
+ 	+1	INHINT
+ 	+2	MASK	NEG1		# REDUCE BY 1 IF ODD
+ 		TS	ITEMP1
+		EXTEND
+		INDEX	ITEMP1
+		DCA	RN1
+		INDEX	ITEMP1
+# Page 868
+		DXCH	RN
+		CCS	ITEMP1
+		TCF	COPYCYC +2
+		TC	Q		# RETURN UNDER INHINT
+
+EIGHTEEN	DEC	18
+
+# Page 869
+# ************* PIPA READER *****************
+# MOD NO. 00 BY D. LICKLY, DEC. 9 1966
+#
+# FUNCTIONAL DESCRIPTION
+#	SUBROUTINE TO READ PIPA COUNTERS, TRYING TO BE VERY CAREFUL SO THAT WILL BE RESTARTABLE.
+#	PIPA READINGS ARE STORED IN THE VECTOR DELV.  THE HIGH ORDER PART OF EACH COMPONENT CONTAINS THE PIPA READING,
+# 	RESTARTS BEGIN AT REREADAC.
+#
+#	AT THE END OF THE PIPA READER THE CDUS ARE READ AND STORED AS A
+#	VECTOR IN CDUTEMP.  THE HIGH ORDER PART OF EACH COMPONENT CONTAINS
+# 	THE CDU READING IN 25 COMP IN THE ORDER CDUX,Y,Z.  THE THRUST
+#	VECTOR ESTIMATOR IN FINDCDUD REQUIRES THE CDUS BE READ AT PIPTIME.
+#
+# CALLING SEQUENCE AND EXIT
+#	CALL VIA TC, ISWCALL, ETC.
+#	EXIT IS VIA Q.
+#
+# INPUT
+#	INPUT IS THROUGH THE COUNTERS PIPAX, PIPAY, PIPAZ, AND TIME2.
+#
+# OUTPUT
+#	HIGH ORDER COMPONENTS OF THE VECTOR DELV CONTAIN THE PIPA READINGS.
+#	PIPTIME CONTAINS TIME OF PIPA READING.
+#
+# DEBRIS (ERASABLE LOCATIONS DESTROYED BY PROGRAM)
+#	TEMX, TEMY, TEMZ, PIPAGE
+
+		BANK	37
+		SETLOC	SERV1
+		BANK
+
+		COUNT*	$$/SERV
+
+PIPASR		EXTEND
+# Page 870
+		DCA	TIME2
+		DXCH	PIPTIME1	# CURRENT TIME POSITIVE VALUE
+ 	+3	CS	ZERO		# INITIALIZE THESE AT NEG. ZERO.
+ 		TS	TEMX
+		TS	TEMY
+		TS	TEMZ
+
+		CA	ZERO
+		TS	DELVZ
+		TS	DELVZ +1
+		TS	DELVY
+		TS	DELVY +1
+		TS	DELVX +1
+		TS	PIPAGE		# SHOW PIPA READING IN PROGRESS
+
+REPIP1		EXTEND
+		DCS	PIPAX		# X AND Y PIPS READ
+		DXCH	TEMX
+		DXCH	PIPAX		# PIPAS SET TO NEG ZERO AS READ.
+		TS	DELVX
+		LXCH	DELVY
+
+REPIP3		CS	PIPAZ		# REPEAT PROCESS FOR Z PIP
+		XCH	TEMZ
+		XCH	PIPAZ
+DODELVZ		TS	DELVZ
+
+REPIP4		EXTEND			# COMPUTE GUIDANCE PERIOD
+		DCA	PIPTIME1
+		DXCH	PGUIDE
+		EXTEND
+		DCS	PIPTIME
+		DAS	PGUIDE
+
+		CA	CDUX		# READ CDUS INTO HIGH ORDER CDUTEMPS
+		TS	CDUTEMPX
+		CA	CDUY
+		TS	CDUTEMPY
+		CA	CDUZ
+		TS	CDUTEMPZ
+		CA	DELVX
+		TS	PIPATMPX
+		CA	DELVY
+		TS	PIPATMPY
+		CA	DELVZ
+		TS	PIPATMPZ
+
+		TC	Q
+
+# Page 871
+REREADAC	CCS	PIPAGE
+		TCF	READACCS	# PIP READING NOT STARTED.  GO TO BEGINNING
+
+		CAF	DONEADR		# SET UP RETURN FROM PIPASR
+		TS	Q
+
+		CCS	DELVZ
+		TCF	REPIP4		# Z DONE, GO DO CDUS
+		TCF	+3		# Z NOT DONE, CHECK Y.
+		TCF	REPIP4
+		TCF	REPIP4
+
+		ZL
+		CCS	DELVY
+		TCF	+3
+		TCF	CHKTEMX		# Y NOT DONE, CHECK X.
+		TCF	+1
+		LXCH	PIPAZ		# Y DONE, ZERO Z PIP.
+
+		CCS	TEMZ
+		CS	TEMZ		# TEMZ NOT = -0, CONTAINS -PIPAZ VALUE.
+		TCF	DODELVZ
+		TCF	-2
+		LXCH	DELVZ		# TEMZ = -0, L HAS ZPIP VALUE.
+		TCF	REPIP4
+
+CHKTEMX		CCS	TEMX		# HAS THIS CHANGED
+		CS	TEMX		# YES
+		TCF	+3		# YES
+		TCF	-2		# YES
+		TCF	REPIP1		# NO
+		TS	DELVX
+
+		CS	TEMY
+		TS	DELVY
+
+		CS	ZERO		# ZERO X AND Y PIPS
+		DXCH	PIPAX		# L STILL ZERO FROM ABOVE
+
+		TCF	REPIP3
+
+DONEADR		GENADR	PIPSDONE
+
+# Page 872
+		BANK	33
+		SETLOC	SERVICES
+		BANK
+
+		COUNT*	$$/SERV
+
+TMPTOSPT	CA	CDUTEMPY	# THIS SUBROUTINE, CALLED BY AN RTB FROM
+		TS	CDUSPOTY	# INTERPRETIVE, LOADS THE CDUS CORRESPON-
+		CA	CDUTEMPZ	# DING TO PIPTIME INTO THE CDUSPOT VECTOR.
+		TS	CDUSPOTZ
+		CA	CDUTEMPX
+		TS	CDUSPOTX
+		TC 	Q
+
+# LRHTASK IS A WAITLIST TASK SET BY READACCS DURING THE DESCENT BRAKING
+# PHASE WHEN THE ALT TO THE LUNAR SURFACE IS LESS THAN 25,000 FT.  THIS
+# TASK CLEARS THE ALTITUDE MEASUREMENT MADE DISCRETE AND INITIATES THE
+# LANDING RADAR MEASUREMENT JOB (LRHJOB) TO TAKE A ALTITUDE MEASUREMENT
+# 50 MS PRIOR TO THE NEXT READACCS TASK.
+
+		BANK	21
+		SETLOC	R10
+		BANK
+
+		COUNT*	$$/SERV
+
+LRHTASK		CS	FLGWRD11
+		MASK	LRBYBIT
+		EXTEND
+		BZF	GRP2OFF		# LR BYPASS SET -- BYPASS ALL LR READING.
+
+		CA	READLBIT
+		MASK	FLGWRD11	# IS READLR FLAG SET?
+		EXTEND
+		BZF	GRP2OFF		# NO.  BYPASS LR READ.
+
+		CS	FLGWRD11
+		MASK	NOLRRBIT	# IS LR READ INHIBITED?
+		EXTEND
+		BZF	GRP2OFF		# YES.  BYPASS LR READ.
+
+		CA	PRIO32		# LR READ OK.  SET JOB TO DO IT
+		TC	NOVAC		# ABOUT 50 MS. PRIOR TO PIPA READ.
+		EBANK=	HMEAS
+		2CADR	LRHJOB
+
+GRP2OFF		EXTEND
+		DCA	NEG0
+		DXCH	-PHASE2
+		TCF	R10,R11A
+
+		BANK	33
+		SETLOC	SERVICES
+		BANK
+# Page 873
+		COUNT*	$$/SERV
+
+# HIGATASK IS ENTERED APPROXIMATELY 6 SECS PRIOR TO HIGATE DURING THE
+# DESCENT PHASE.  HIGATASK SETS THE HIGATE FLAG (BIT11) AND THE LR INHIBIT
+# FLAG (BIT10) IN LRSTAT.  THE HIGATJOB IS SET UP TO REPOSITION THE LR
+# ANTENNA FROM POSITION 1 TO POSITION 2.  IF THE REPOSITIONING IS
+# SUCCESSFUL THE ALT BEAM AND VELOCITY BEAMS ARE TRANSFORMED TO THE NEW
+# ORIENTATION IN NB COORDINATES AND STORED IN ERASABLE.
+
+HIGATASK	INHINT
+		CS	PRIO3		# SET HIGATE AND LR INHIBIT FLAGS
+		MASK	FLGWRD11
+		AD	PRIO3
+		TS	FLGWRD11
+		CAF	PRIO32
+		TC	FINDVAC		# SET LR POSITIONING JOB (POS2)
+		EBANK=	HMEAS
+		2CADR	HIGATJOB
+
+		TCF	CONTSERV	# CONTINUE SERVICER
+		
+# Page 874
+# MUNRETRN IS THE RETURN LOC FROM SPECIAL AVE G ROUTINE (MUNRVG)
+
+MUNRETRN	EXIT
+
+		CS	FLGWRD11
+		MASK	LRBYBIT
+		EXTEND
+		BZF	COPYCYC1	# BYPASS LR LOGIC IF BIT15 IS SET.
+
+		CA	READLBIT	# SEE IF ALT < 35000 FT LAST CYCLE
+		MASK	FLGWRD11
+		EXTEND
+		BZF	35KCHK		# ALT WAS > 35000 FT LAST CYCLE   CHK NOW
+
+		CAF	XORFLBIT	# WERE WE BELOW 30000 FT LAST PASS?
+		MASK	FLGWRD11
+		EXTEND
+		BZF	XORCHK		# NO -- TEST THIS PASS
+HITEST		CAF	PSTHIBIT	# CHECK FOR HIGATE
+		MASK	FLGWRD11
+		EXTEND
+		BZF	HIGATCHK	# NOT AT HIGATE LAST CYCLE -- CHK THIS CYCLE
+
+POS2CHK		CAF	BIT7		# VERIFY LR IN POS2
+		EXTEND
+		RAND	CHAN33
+		EXTEND
+		BZF	UPDATCHK	# IT IS -- CHECK FOR LR UPDATE
+		CAF	BIT13
+		EXTEND
+		RAND	CHAN12
+		EXTEND
+		BZF	LRPOSALM	# LR NOT IN POS2 OR REPOSITIONING -- BAD
+		TCF	CONTSERV	# LR BEING REPOSITIONED -- CONTINUE SERV
+
+HIGATCHK	CA	TTF/8		# IS TTF > CRITERION?  (TTF IS NEGATIVE)
+		AD	RPCRTIME
+		EXTEND
+		BZMF	POS1CHK		# NO
+
+		CA	EBANK4		# MUST SWITCH EBANKS
+		XCH	EBANK
+		TS	L		# SAVE IN L
+
+		EBANK=	XNBPIP
+		CS	XNBPIP		# UXBXP IN GSOP CH5
+		EBANK=	DVCNTR
+		LXCH	EBANK		# RESTORE EBANK
+		AD	RPCRTQSW	# QSW - UXBXP
+# Page 875
+
+		EXTEND
+		BZMF	HIGATASK	# IF UXBXP > QSW, THEN REPOSITION
+
+POS1CHK		CAF	BIT6		# HIGATE NOT IN SIGHT -- DO POS1 CHK
+		EXTEND
+		RAND	33
+		EXTEND	
+		BZF	UPDATCHK	# LR IN POS1 -- CHECK FOR LR UPDATE
+
+LRPOSALM	TC	ALARM		# LR NOT IN PROPER POS-ALARM-BYPASS UPDATE
+		OCT	511		# AND CONTINUE SERVICER
+CONTSERV	INHINT
+		CS	BITS4-7
+		MASK	FLGWRD11	# CLEAR LR MEASUREMENT MADE DISCRETES.
+		TS	FLGWRD11
+
+		TC	IBNKCALL	# SET LR LITES PROPERLY
+		CADR	R12LITES
+
+# Page 876
+COPYCYC1	TC	QUIKFAZ5
+
+R29?		CA	FLAGWRD3
+		MASK	NR29&RDR
+		CCS	A		# IS NOR29FLG OR READRFLG SET?
+		TCF	R29NODES	# YES, SO DON'T DESIGNATE.
+
+		CA	RADMODES	# NO, SO R29 IS CALLED FOR.
+		MASK	OCT10002	# IS THE RR NOT ZEROING ITS CDUS, AND
+		CCS	A		# IS THE RENDEZVOUS RADAR IN AUTO MODE?
+		TCF	R29NODES	# NO, SO DON'T DESIGNATE.
+
+		CA	RADMODES
+		MASK	PRIO22
+		CCS	A		# IS RR REPOSITIONING OR REMODING?
+		TCF	NOR29NOW	# YES:  COME BACK IN 2 SECONDS & TRY AGAIN.
+
+		TCF	R29
+
+R29NODES	INHINT			# R29 NOT ALLOWED THIS CYCLE.
+		CS	DESIGBIT	# SHOW THAT DESIGNATION IS OFF.
+		MASK	RADMODES
+		TS	RADMODES
+
+NOR29NOW 	TC	INTPRET		# INTPRET DOES A RELINT.
+		VLOAD	ABVAL		# MPAC = ABVAL( NEW SM. POSITION VECTOR )
+			R1S
+		PUSH	DSU		# 				(2)
+			/LAND/
+		STORE	HCALC		# NEW HCALC*2(24)M.
+		STORE	HCALC1
+		DMPR	RTB
+			ALTCONV
+			SGNAGREE
+		STOVL	ALTBITS		# ALTITUDE FOR R10 IN BIT UNITS.
+			UNIT/R/
+		VXV	UNIT
+			UHYP
+		STOVL	UHZP		# DOWNRANGE HALF-UNIT VECTOR FOR R10.
+			R1S
+		VXM	VSR4
+			REFSMMAT
+		STOVL	RN1		# TEMP. REF. POSITION VECTOR*2(29)M.
+			V1S
+		VXM	VSL1
+			REFSMMAT
+		STOVL	VN1		# TEMP. REF. VELOCITY VECTOR 2(7) M/CS.
+			UNIT/R/
+		VXV	ABVAL
+# Page 877
+			V1S
+		SL1	DSQ
+		DDV
+		DMPR	RTB
+			ARCONV1
+			SGNAGREE
+COPYCYC2	EXIT			# LEAVE ALTITUDE RATE COMPENSATION IN MPAC
+		INHINT
+		CA	UNIT/R/		# UPDATE RUNIT FOR R10.
+		TS	RUNIT
+		CA	UNIT/R/ +2
+		TS	RUNIT +1
+		CA	UNIT/R/ +4
+		TS	RUNIT +2
+		CA	MPAC		# LOAD NEW DALTRATE FOR R10.
+		TS	DALTRATE
+
+		EXTEND
+		DCA	R1S
+		DXCH	R
+		EXTEND
+		DCA	R1S +2
+		DXCH	R +2
+		EXTEND
+		DCA	R1S +4
+		DXCH	R +4
+		EXTEND
+		DCA	V1S
+		DXCH	V
+		EXTEND
+		DCA	V1S +2
+		DXCH	V +2
+		EXTEND
+		DCA	V1S +4
+		DXCH	V +4
+
+		TCF	COPYCYCL	# COMPLETE THE COPYCYCL.
+
+# Page 878
+# ALTCHK COMPARES CURRENT ALTITUDE (IN HCALC) WITH A SPECIFIED ALTITUDE FROM A TABLE BEGINNING AT ALTCRIT.
+# ITS CALLING SEQUENCE IS AS FOLLOWS:-
+#
+#	L	CAF	N
+#	L+1	TC	BANKCALL
+#	L+2	CADR	ALTCHK
+#	L+3	RETURN HERE IF HCALC STILL > SPECIFIED CRITERION.   C(L) = +0.
+#	L+4	RETURN HERE IF HCALC < OR = SPECIFIED CRITERION.   C(A) = C(L) = +0
+#
+# ALTCHK MUST BE BANKCALLED EVEN FROM ITS OWN BANK.   N IS THE LOCATION, RELATIVE TO THE TAG ALTCRIT,
+# OF THE BEGINNING OF THE DP CONSTANT TO BE USED AS A CRITERION.
+
+ALTCHK		EXTEND
+		INDEX	A
+		DCA	ALTCRIT
+		DXCH	MPAC +1
+		EXTEND
+		DCS	HCALC
+		DAS	MPAC +1
+		TC	BRANCH +4
+		CAF	ZERO		# BETTER THAN A NOOP, PERHAPS
+		INCR	BUF2
+		TCF	SWRETURN
+
+ALTCRIT		=	25KFT
+
+25KFT		2DEC	7620 B-24  		# (0)
+
+50KFT		2DEC	15240 B-24		# (2)
+
+50FT		2DEC	15.24 B-24		# (4)
+
+30KFT		2DEC	9144 B-24		# (6)
+
+2KFT/SEC	DEC	6.096 B-7		# 2000 FT/SEC AT 2(7) M/CS
+
+
+# (A remark was likely to be needed here to explain XORCHK) 4/Jun/09,FB
+
+XORCHK		CAF	SIX		# ARE WE BELOW 30000 FT?
+		TC	BANKCALL
+		CADR	ALTCHK
+		TCF	HITEST		# CONTINUE LR UPDATE
+		TC	UPFLAG		# YES: INHIBIT X-AXIS OVERRIDE
+		ADRES	XOVINFLG
+		TC	UPFLAG
+		ADRES	XORFLG
+		TCF	HITEST		# CONTINUE LR UPDATE
+
+35KCHK		CAF	TWO		# ARE WE BELOW 35000 FT?
+
+# Page 879
+		TC	BANKCALL
+		CADR	ALTCHK
+		TCF	CONTSERV
+		TC	UPFLAG
+		ADRES	READLR		# SET READLR FLAG TO ENABLE LR READING.
+		TCF	CONTSERV
+
+# Page 880
+# ***************************************************************
+
+CALCGRAV	UNIT	PUSH		# SAVE UNIT/R/ IN PUSHLIST	(18)
+		STORE 	UNIT/R/
+		LXC,1	SLOAD		# RTX2 = 0 IF EARTH ORBIT, =2 IF LUNAR.
+			RTX2
+			RTX2
+		DCOMP	BMN
+			CALCGRV1
+		VLOAD	DOT		#				(12)
+			UNITZ
+			UNIT/R/
+		SL1	PUSH		#				(14)
+		DSQ	BDSU
+			DP1/20
+		PDDL	DDV
+			RESQ
+			34D		# (RN)SQ
+		STORE	32D		# TEMP FOR (RE/RN)SQ
+		DMP	DMP
+			20J
+		VXSC	PDDL
+			UNIT/R/
+		DMP	DMP
+			2J
+			32D
+		VXSC	VSL1
+			UNITZ
+		VAD	STADR
+		STORE	UNITGOBL
+		VAD	PUSH		# MPAC = UNIT GRAVITY VECTOR.	(18)
+CALCGRV1	DLOAD	NORM		# PERFORM A NORMALIZATION ON RMAGSQ IN
+			34D		# ORDER TO BE ABLE TO SCALE THE MU FOR
+			X2		# MAXIMUM PRECISION.
+		BDDV*	SLR*
+			-MUDT,1
+			0 -21D,2
+		VXSC	STADR
+		STORE	GDT1/2		# SCALED AT 2(+7) M/CS
+		RVQ
+
+CALCRVG		VLOAD	VXM
+			DELV
+			REFSMMAT
+		VXSC	VSL1
+			KPIP1
+		STORE	DELVREF
+		VSR1	PUSH
+		VAD	PUSH		# (DV-OLDGDT)/2 TO PD SCALED AT 2(+7) M/CS.
+# Page 881
+			GDT/2
+		VAD	PDDL
+			VN
+			PGUIDE
+		SL	VXSC
+			6D
+		VAD	STQ
+			RN
+			31D
+		STCALL	RN1		# TEMP STORAGE OF RN SCALED 2(+29) M
+			CALCGRAV
+
+		VAD	VAD
+		VAD
+			VN
+		STCALL	VN1		# TEMP STORAGE OF VN SCALED 2(+7) M/CS
+			31D
+
+DP1/20		2DEC	0.05
+SHIFT11		2DEC	1 B-11
+
+# Page 882
+#*****************************************************************************
+# MUNRVG IS A SPECIAL AVERAGE G INTEGRATION ROUTINE USED BY THRUSTING
+# PROGRAMS WHICH FUNCTION IN THE VICINITY OF AN ASSUMED SPHERICAL MOON.
+# THE INPUT AND OUTPUT QUANTITIES ARE REFERENCED TO THE STABLE MEMBER
+# COORDINATE SYSTEM.
+
+RVBOTH		VLOAD	PUSH
+			G(CSM)
+		VAD	PDDL
+			V(CSM)
+			PGUIDE
+		DDV	VXSC
+			SHIFT11
+		VAD
+			R(CSM)
+		STCALL	R1S
+			MUNGRAV
+		VAD	VAD
+			V(CSM)
+		STADR
+		STORE	V1S
+		EXIT
+		TC	QUIKFAZ5
+		TC	INTPRET
+		VLOAD
+			GDT1/2
+		STOVL	G(CSM)
+			R1S
+		STOVL	R(CSM)
+			V1S
+		STORE	V(CSM)
+		EXIT
+		TC	QUIKFAZ5
+		TC	INTPRET
+MUNRVG		VLOAD	VXSC
+			DELV
+			KPIP2
+		PUSH	VAD		# 1ST PUSH:  DELV IN UNITS OF 2(8) M/CS
+			GDT/2
+		PUSH	VAD		# 2ND PUSH:  (DELV + GDT)/2, UNITS OF 2(7)
+			V		#				(12)
+		PDDL	DDV
+			PGUIDE
+			SHIFT11
+		VXSC
+		VAD
+			R
+		STCALL	R1S		# STORE R SCALED AT 2(+24) M
+			MUNGRAV
+# Page 883
+		VAD	VAD
+		VAD
+			V
+		STORE	V1S		# STORE V SCALED AT 2(+7) M/CS.
+		ABVAL
+		STOVL	ABVEL		# STORE SPEED FOR LR AND DISPLAYS.
+			UNIT/R/
+		DOT	SL1
+			V1S
+		STOVL	HDOTDISP	# HDOT = V. UNIT(R)*2(7) M/CS.
+			R1S
+		VXV	VSL2
+			WM
+		STODL	DELVS		# LUNAR ROTATION CORRECTON TERM*2(5) M/CS.
+			36D
+		DSU
+			/LAND/
+		STCALL	HCALC		# FOR NOW, DISPLAY WHETHER POS OR NEG
+			MUNRETRN
+MUNGRAV		UNIT			# AT 36D HAVE ABVAL(R), AT 34D R.R
+		STODL	UNIT/R/
+			34D
+		SL	BDDV
+			6D
+			-MUDTMUN
+		DMP	VXSC
+			SHIFT11
+			UNIT/R/
+		STORE	GDT1/2		# 1/2GDT SCALED AT 2(7) M/CS.
+		RVQ
+
+1.95SECS	DEC	195
+7.5		2DEC	.02286 B-6	# 7.5 FT/SEC AT 2(6) M/CS
+
+2SEC(18)	2DEC	200 B-18
+
+2SEC(28)	2OCT	0000000310	# 2SEC AT 2(28)
+
+4SEC(28)	2DEC	400 B-28
+
+BITS4-7		OCT	110
+
+
+# Page 884
+UPDATCHK	CAF	NOLRRBIT	# SEE IF LR UPDATE INHIBITED.
+		MASK	FLGWRD11
+		CCS	A
+		TCF	CONTSERV	# IT IS -- NO LR UPDATE
+		CAF	RNGEDBIT	# NO INHIBIT -- SEE ALT MEAS. THIS CYCLE.
+		MASK	FLGWRD11
+		EXTEND
+		BZF	VMEASCHK	# NO ALT MEAS THIS CYCLE -- CHECK FOR VEL
+
+POSUPDAT	CA	FIXLOC		# SET PUSHLIST TO ZERO
+		TS	PUSHLOC
+
+		TC	INTPRET
+		VLOAD	VXM
+			HBEAMNB
+			XNBPIP		# HBEAM SM AT 2(2)
+		PDVL	VSL2		# STORE HBEAM IN PD 0-5
+			V1S		# SCALE V AT 2(5) M/CS
+		VAD	DOT
+			DELVS		# V RELATIVE TO SURFACE AT 2(5) M/CS
+			0D		# V ALONG HBEAM AT 2(7) M/CS.
+		DMP	EXIT
+			RADSKAL		# SCALE TO RADAR COUNTS X 5
+
+		CS	FLGWRD12	# TEST LR ALTITUDE SCALE FACTOR
+		MASK	ALTSCBIT
+		EXTEND
+		BZF	+3		# BRANCH IF HIGH SCALE
+
+		CA	SKALSKAL	# RESCALE IF LOW SCALE
+		TC	SHORTMP
+
+ 	+3	TC	INTPRET
+ 		DAD	SL		# CORRECT HMEAS FOR DOPPLER EFFECT
+			HMEAS
+			7D
+		DMP	VXSC		# SLANT RANGE AT 2(21), PUSH UP FOR HBEAM
+			HSCAL		# SLANT RANGE VECTOR AT 2(23) M
+		DOT	DSU
+			UNIT/R/		# ALTITUDE AT 2(24) M
+			HCALC		# DELTA H AT 2(24) M
+		STORE	DELTAH
+		EXIT
+
+		CA	FLGWRD11
+		MASK	PSTHIBIT
+		EXTEND			# DO NOT PERFORM DATA REASONABLENESS TEST
+		BZF	NOREASON	# UNTIL AFTER HIGATE
+# Page 885
+		TC	INTPRET
+		ABS	DSU
+			DELQFIX		# ABS(DELTAH) - DQFIX	50 FT NOM
+		SL3	DSU		# SCALE TO 2(21)
+			HCALC		# ABS(DELTAH) - (50 + HCALC/8) AT 2(21)
+		EXIT
+
+		INCR	LRLCTR
+		TC	BRANCH
+		TCF	HFAIL		# DELTA H TOO LARGE
+		TCF	HFAIL		# DELTA H TOO LARGE
+		TC	DOWNFLAG	# TURN OFF ALT FAIL LAMP
+		ADRES	HFLSHFLG
+
+NOREASON	CS	FLGWRD11
+		MASK	LRINHBIT
+		CCS	A
+		TCF	VMEASCHK	# UPDATE INHIBITED -- TEST VELOCITY ANYWAY
+
+		TC	INTPRET		# DO POSITION UPDATE
+		DLOAD	SR4
+			HCALC		# RESCALE H TO 2(28)M
+		EXIT
+		EXTEND
+		DCA	DELTAH		# STORE DELTAH IN MPAC AND
+		DXCH	MPAC		# BRING HCALC INTO A,L
+		TC	ALSIGNAG
+		EXTEND			# IF HIGH PART OF HCALC IS NON-ZERO, THEN
+		BZF	+2		# HCALC > HMAX,
+		TCF	VMEASCHK	# SO UPDATE IS BYPASSED
+		TS	MPAC +2		#	FOR LATER SHORTMP
+
+		CS	L		# -H AT 2(14) M
+		AD	LRHMAX		# HMAX - H
+		EXTEND
+		BZMF	VMEASCHK	# IF H >HMAX, BYPASS UPDATE
+		EXTEND
+		MP	LRWH		# WH(HMAX - H)
+		EXTEND
+		DV	LRHMAX		# WH(1 - H/HMAX)
+		TS	MPTEMP
+		TC	SHORTMP2	# DELTAH (WH)(1 - H/HMAX) IN MPAC
+		TC	INTPRET		# MODE IS DP FROM ABOVE
+		SL1
+		VXSC	VAD
+			UNIT/R/		# DELTAR = DH(WH)(1 - H/HMAX) UNIT/R/
+			R1S
+		STCALL	GNUR
+			MUNGRAV
+		EXIT
+# Page 886
+		TC	QUIKFAZ5
+
+		CA	ZERO
+RUPDATED	TC	GNURVST
+
+VMEASCHK	TC	QUIKFAZ5	# RESTART AT NEXT LOCATION
+		CS	FLGWRD11
+		MASK	VELDABIT	# IS V READING AVAILABLE?
+		CCS	A
+		TCF	VALTCHK		# NO:  SEE IF V READING TO BE TAKEN
+
+VELUPDAT	CS	VSELECT		# PROCESS VELOCITY DATA
+		TS	L
+		ADS	L		# -2 VSELECT IN L
+		AD	L
+		AD	L		# -6 VSELECT IN A
+		INDEX	FIXLOC
+		DXCH	X1		# X1 = -6 VSELECT, X2 = -2 VSELECT
+
+		CA	EBANK4
+		TS	EBANK
+		EBANK=	LRXCDU
+
+		CA	LRYCDU		# STORE LRCDUS IN CDUSPOTS
+		TS	CDUSPOT
+		CA	LRZCDU
+		TS	CDUSPOT +2
+		CA	LRXCDU
+		TS	CDUSPOT +4
+
+		TC	BANKCALL
+		CADR	QUICTRIG	# GET SINES AND COSINES FOR NBSM
+
+		CA	FIXLOC
+		TS	PUSHLOC		# SET PD TO ZERO
+
+		TC	INTPRET
+		VLOAD*	CALL
+			VZBEAMNB,1	# CONVERT VBEAM FROM NB TO SM
+			*NBSM*
+		PDDL	SL		# STORE IN PD 0-5
+			VMEAS		# LOAD VELOCITY MEASUREMENT
+			12D
+		DMP*	PUSH		# SCALE TO M/CS AT 2(6)
+			VZSCAL,2	# AND STORE IN PD 6-7
+		EXIT
+		CS	ONE
+		TS	MODE		# CHANGE STORE MODE TO VECTOR
+
+		CA	PIPTEM		# STORE DELV IN MPAC
+# Page 887
+		ZL
+		DXCH	MPAC
+
+		CA	PIPTEM +1
+		ZL
+		DXCH	MPAC +3
+
+		CA	PIPTEM +2
+		ZL
+		DXCH	MPAC +5
+
+		CA	EBANK7
+		TS	EBANK		# RESTORE EBANK 7
+		EBANK=	DVCNTR
+		TC	INTPRET
+		VXSC	PDDL
+			KPIP1		# SCALE DELV TO 2(7) M/CS AND PUSH
+			LRVTIME		# TIME OF DELV AT 2(28) CS
+		DSU	DDV
+			PIPTIME		# TU - T(N-1)
+			2SEC(28)
+		VXSC	VSL1		# G(N-1)(TU - T(N-1))
+			GDT/2		# SCALED AT 2(7) M/CS
+		VAD	VAD		# PUSH UP FOR DELV
+			V		# VU = V(N-1) + DELVU + G(N-1) DTU
+		VSL2	VAD		# SCALE TO 2(5) M/CS AND SUBTRACT
+			DELVS		#	MOON ROTATION.
+		PUSH	ABVAL		# STORE IN PD
+		SR4	DAD		# ABS(VM)/8 + 7.5 AT 2(6)
+			7.5
+		STOVL	20D		# STORE IN 20D AND PICK UP VM
+		DOT	BDSU		# V(EST) AT 2(6)
+			0		# DELTAV = VMEAS - V(EST)
+		PUSH	ABS
+		DSU	EXIT		# ABS(DV) - (7.5 + ABS(VM)/8))
+			20D
+
+		INCR	LRMCTR
+		TC	BRANCH
+		TCF	VFAIL		# DELTA V TOO LARGE.	ALARM
+		TCF	VFAIL		# DELTA V TOO LARGE.	ALARM
+
+		TC	DOWNFLAG	# TURN OFF VEL FAIL LAMP
+		ADRES	VFLSHFLG
+
+		CA	FLGWRD11
+		MASK	VXINHBIT
+		EXTEND
+		BZF	VUPDAT		# IF VX INHIBIT RESET, INCORPORATE DATA.
+# Page 888
+		TC	DOWNFLAG
+		ADRES	VXINH		# RESET VX INHIBIT
+
+		CA	VSELECT
+		AD	NEG2		# IF VSELECT = 2 (X AXIS).
+		EXTEND			# BYPASS UPDATE
+		BZF	ENDVDAT
+
+VUPDAT		CS	FLGWRD11
+		MASK	LRINHBIT
+		CCS	A
+		TCF	VALTCHK		# UPDATE INHIBITED
+
+		TS	MPAC +1
+
+		CA	ABVEL		# STORE E7 ERASABLES NEEDED IN TEMPS
+		TS	ABVEL*
+		CA	VSELECT
+		TS	VSELECT*
+		CA	EBANK5
+		TS	EBANK		# CHANGE EBANKS
+
+		EBANK=	LRVF
+		CS	LRVF
+		AD	ABVEL*		# IF V < VF, USE WVF
+		EXTEND
+		BZMF	USEVF
+
+		CS	ABVEL*
+		AD	LRVMAX		# VMAX - V
+		EXTEND
+		BZMF	WSTOR -1	# IF V > VMAX, W = 0
+
+		EXTEND
+		INDEX	VSELECT*
+		MP	LRWVZ		# WV(VMAX - V)
+
+		EXTEND
+		DV	LRVMAX		# WV( 1 - V/VMAX )
+		TCF	WSTOR
+
+USEVF		INDEX	VSELECT*
+		CA	LRWVFZ		# USE APPROPRIATE CONSTANT WEIGHT
+		TCF	WSTOR
+
+ 	-1	CA	ZERO
+WSTOR		TS	MPAC
+		CS	BIT7		# (=64D)
+		AD	MODREG
+		EXTEND
+# Page 889
+		BZMF	+3		# IF IN P65,P66,P67, USE ANOTHER CONSTANT
+
+		CA	LRWVFF
+		TS	MPAC
+
+ 	+3	CA	EBANK7
+ 		TS	EBANK		# CHANGE EBANKS
+
+		EBANK=	ABVEL
+		TC	INTPRET
+		DMP	VXSC		# W(DELTA V)(VBEAMSM) UP 6-7, 0-5
+		VAD
+			V1S		# ADD WEIGHTED DELTA V TO VELOCITY
+		STORE	GNUV
+		EXIT
+
+		TC	QUIKFAZ5	# DO NOT RE-UPDATE
+
+		CA	SIX
+VUPDATED	TC	GNURVST		# STORE NEW VELOCITY VECTOR
+ENDVDAT		=	VALTCHK
+
+VALTCHK		TC	QUIKFAZ5	# DO NOT REPEAT ABOVE
+
+		CAF	READVBIT	# TEST READVEL TO SEE IF VELOCITY READING
+		MASK	FLGWRD11	# IS DESIRED.
+		CCS	A
+		TCF	READV		# YES -- READ VELOCITY
+		CS	ABVEL		# NO -- SEE IF VELOCITY < 2000 FT/SEC
+		AD	2KFT/SEC
+		EXTEND
+		BZMF	CONTSERV	# V > 2000 FT/SEC  DO NOT READ VEL
+
+		TC	UPFLAG		# V < 2000 FT/SEC  SET READVEL AND READ.
+		ADRES	READVEL
+
+READV		CAF	PRIO32		# SET UP JOB TO READ VELOCITY BEAMS.
+		TC	NOVAC
+		EBANK=	HMEAS
+		2CADR	LRVJOB
+
+		TCF	CONTSERV	# CONTINUE WITH SERVICER
+
+GNURVST		TS	BUF		# STORE GNUR (=GNUV) IN R1S OR V1S
+		EXTEND			# A = 0 FOR R, A = 6 FOR V
+		DCA	GNUR
+		INDEX	BUF
+		DXCH	R1S
+		EXTEND
+# Page 890
+		DCA	GNUR +2
+		INDEX	BUF
+		DXCH	R1S +2
+		EXTEND
+		DCA	GNUR +4
+		INDEX	BUF
+		DXCH	R1S +4
+		TC	Q
+
+QUIKFAZ5	CA	EBANK3
+		XCH	EBANK		# SET EBANK 3
+		DXCH	L		# Q TO A, A TO L
+		EBANK=	PHSNAME5
+		TS	PHSNAME5
+		LXCH	EBANK
+		EBANK=	DVCNTR
+		TC	A
+
+HFAIL		CS	LRRCTR
+		EXTEND
+		BZF	NORLITE		# IF R = 0, DO NOT TURN ON TRK FAIL
+		AD	LRLCTR
+		MASK	NEG3
+		EXTEND			# IF L-R LT 4, DO NOT TURN ON TRK FAIL
+		BZF	+2
+		TCF	NORLITE
+
+		TC	UPFLAG		# AND SET BIT TO TURN ON TRACKER FAIL LITE
+		ADRES	HFLSHFLG
+
+NORLITE		CA	LRLCTR
+		TS	LRRCTR		# SET R = L
+
+		TCF	VMEASCHK
+
+VFAIL		CS	LRSCTR		# DELTA Q LARGE
+		EXTEND			# IF S = 0, DO NOT TURN ON TRACKER FAIL
+		BZF	NOLITE
+		AD	LRMCTR		# M-S
+		MASK	NEG3		# TEST FOR M-S > 3
+		EXTEND			# IF M-S > 3, THEN TWO OR MORE OF THE
+		BZF	+2		# 	LAST FOUR V READINGS WERE BAD,
+		TCF	NOLITE		#	SO TURN ON VELOCITY FAIL LIGHT
+
+		TC	UPFLAG		# AND SET BIT TO TURN ON TRACKER FAIL LITE
+		ADRES	VFLSHFLG
+
+# Page 891
+NOLITE		CA	LRMCTR		# SET S = M
+		TS	LRSCTR
+
+		CCS	VSELECT		# TEST FOR Z COMPONENT
+		TCF	ENDVDAT		# NOT Z, DO NOT SET VX INHIBIT
+
+		TC	UPFLAG		# Z COMPONENT - SET FLAG TO SKIP X
+		ADRES	VXINH		# COMPONENT, AS ERROR MAY BE DUE TO CROSS
+		TCF	ENDVDAT		# LOBE LOCK UP NOT DETECTED ON X AXIS.
+
+# Page 892
+# ********************************************************************************
+# LRVJOB IS SET WHEN THE LEM IS BELOW 15000 FT DURING THE LANDING PHASE
+# THIS JOB INITIALIZES THE LANDING RADAR READ ROUTINE FOR 5 VELOCITY
+# SAMPLES AND GOES TO SLEEP WHILE THE SAMPLING IS DONE -- ABOUT 500 MS.
+# WITH A GOODEND RETURN THE DATA IS STORED IN VMEAS AND BIT7 OF LRSTAT
+# IS SET.  THE GIMBAL ANGLES ARE READ ABOUT MIDWAY IN THE SAMPLINGS.
+
+170MS		EQUALS	ND1
+
+LRVJOB		CA	170MS		# SET TASK TO READ CDUS + PIPAS
+		TC	WAITLIST
+		EBANK=	LRVTIME
+		2CADR	RDGIMS
+
+		CCS	VSELECT		# SEQUENCE LR VEL BEAM SELECTOR
+		TCF	+2
+		CAF	TWO		# IF ZERO, RESET TO TWO
+		DOUBLE			# 2XVSELECT USED FOR VBEAM INDEX IN LRVEL
+		TC	BANKCALL	# GO INITIALIZE LR VEL READ ROUTINE
+		CADR	LRVEL
+		TC	BANKCALL	# PUT LRVJOB TO SLEEP ABOUT 500 MS
+		CADR	RADSTALL
+		TCF	VBAD
+		CCS	STILBADV	# IS DATA GOOD JUST PRESENT?
+		TCF	VSTILBAD	# JUST GOOD -- MUST WAIT 4 SECONDS.
+
+		INHINT
+		EXTEND			# GOOD RETURN -- STOW AWAY VMEAS
+		DCA	SAMPLSUM
+		DXCH	VMEAS
+		CA	EBANK4		# FOR DOWNLINK
+		TS	EBANK
+		EBANK=	LRVTIME
+
+		EXTEND
+		DCA	LRVTIME
+		DXCH	LRVTIMDL
+		EXTEND
+		DCA	LRXCDU
+		DXCH	LRXCDUDL
+		CA	LRZCDU
+		TS	LRZCDUDL
+		CA	EBANK7
+		TS	EBANK
+		EBANK=	VSELECT
+
+		CS	FLGWRD11	# SET BIT TO INDICATE VELOCITY
+		MASK	VELDABIT	# MEASUREMENT MADE
+# Page 893
+		ADS	FLGWRD11
+ENDLRV		CCS	VSELECT		# UPDATE VSELECT
+		TCF	+2
+		CA	TWO
+		TS	VSELECT
+		TCF	ENDOFJOB
+
+VBAD		CAF	TWO		# SET STILBAD TO WAIT 4 SECONDS
+VSTILBAD	TS	STILBADV
+		TCF	ENDLRV
+
+# LRHJOB IS SET BY LRHTASK WHEN LEM IS BELOW 25000 FT.  THIS JOB
+# INITIALIZES THE LR READ ROUTINE FOR AN ALT MEASUREMENT AND GOES TO
+# SLEEP WHILE THE SAMPLING IS DONE -- ABOUT 95 MS.  WITH A GOODEND RETURN
+# THE ALT DATA IS STORED IN HMEAS AND BIT7 OF LRSTAT IS SET.
+
+		BANK	34
+		SETLOC	R12STUFF
+		BANK
+
+		COUNT*	$$/SERV
+
+LRHJOB		TC	BANKCALL	# INITIATE LR ALT MEASUREMENT
+		CADR	LRALT
+		TC	BANKCALL	# LRHJOB TO SLEEP ABOUT 95MS
+		CADR	RADSTALL
+		TCF	HBAD
+		CCS	STILBADH	# IS DATA GOOD JUST PRESENT?
+		TCF	HSTILBAD	# JUST GOOD -- MUST WAIT 4 SECONDS.
+
+		INHINT
+		EXTEND
+		DCA	SAMPLSUM	# GOOD RETURN -- STORE AWAY LRH DATA
+		DXCH	HMEAS		# LRH DATA 1.079 FT/BIT
+		EXTEND			# FOR DOWNLINK
+		DCA	PIPTIME1
+		DXCH	MKTIME
+
+		EXTEND
+		DCA	CDUTEMPY	# CDUY,Z = AIG,AMG
+		DXCH	AIG
+
+		CA	CDUTEMPX	# CDUX = AOG
+		TS	AOG
+
+		CS	FLGWRD11	# SET BIT TO INDICATE RANGE
+		MASK	RNGEDBIT	# MEASUREMENT MADE.
+		ADS	FLGWRD11
+ENDLRH		TC	ENDOFJOB	# TERMATE LRHJOB
+
+# Page 894
+HBAD		CA	FLAGWRD5
+		MASK	RNGSCBIT	# IS BAD RETURN DUE TO SCALE CHANGE?
+		EXTEND
+		BZF	HSTILBAD -1	# NO  RESET HSTILBAD
+		TC	DOWNFLAG	# YES  RESET SCALE CHANGE BIT AND IGNORE
+		ADRES	RNGSCFLG
+		TC	ENDOFJOB
+
+		CAF	TWO		# SET STILBAD TO WAIT 4 SECONDS
+HSTILBAD	TS	STILBADH
+		TC	ENDOFJOB
+
+		BANK	34
+		SETLOC	SERV4
+		BANK
+
+		COUNT*	$$/SERV
+
+# RDGIMS IS A TASK SET UP BY LRVJOB TO PICK UP THE IMU CDUS AND TIME
+# AT ABOUT THE MIDPOINT OF THE LR VEL READ ROUTINE WHEN 5 VEL SAMPLES
+# ARE SPECIFIED.
+
+		EBANK=	LRVTIME
+RDGIMS		EXTEND
+		DCA	TIME2		# PICK UP TIME2, TIME1
+		DXCH	LRVTIME		#	AND SAVE IN LRVTIME
+
+		EXTEND
+		DCA	CDUX		# PICK UP CDUX AND CDUY
+		DXCH	LRXCDU		#	AND SAVE IN LRXCDU AND LRYCDU
+
+		CA	CDUZ
+		TS	LRZCDU		# SAVE CDUZ IN LRZCDU
+
+		CA	PIPAX
+		TS	PIPTEM		# SAVE PIPAX IN PIPTEM
+
+		EXTEND
+		DCA	PIPAY		# PICK UP PIPAY AND PIPAZ
+		DXCH	PIPTEM +1	#	AND SAVE IN PIPTEM +1 AND PIPTEM +2
+		TC	TASKOVER
+
+		BANK	33
+		SETLOC	SERVICES
+		BANK
+
+		COUNT*	$$/SERV
+
+		EBANK=	DVCNTR
+# Page 895
+# HIGATJOB IS SET APPROXIMATELY 6 SECONDS PRIOR TO HIGH GATE DURING
+# THE DESCENT BURN PHASE OF LUNAR LANDING.  THIS JOB INITIATES THE
+# LANDING RADAR REPOSITIONING ROUTINE AND GOES TO SLEEP UNTIL THE
+# LR ANTENNA MOVES FROM POSITION 1 TO POSITION 2.  IF THE LR ANTENNA
+# ACHIEVES POSITION 2 WITHIN 22 SECONDS THE ALTITUDE AND VELOCITY
+# BEAM VECTORS ARE RECOMPUTED TO REFLECT THE NEW ORIENTATION WITH
+# RESPECT TO THE NB.  BIT10 OF LRSTAT IS CLEARED TO ALLOW LR
+# MEASUREMENTS AND THE JOB TERMINATES.
+
+HIGATJOB	TC	BANKCALL	# START LRPOS2 JOB
+		CADR	LRPOS2
+		TC	BANKCALL	# PUT HIGATJOB TO SLEEP UNTIL JOB IS DONE
+		CADR	RADSTALL
+		TCF	POSALARM	# BAD END    ALARM
+
+POSGOOD		CA	PRIO23		# REDUCE PRIORITY FOR INTERPRETIVE COMPS.
+		TC	PRIOCHNG
+
+		TC	SETPOS2		# LR IN POS2 -- SET UP TRANSFORMATIONS
+
+		TC	DOWNFLAG
+		ADRES	NOLRREAD	# RESET NOLRREAD FLAG TO ENABLE LR READING
+		TC	ENDOFJOB
+
+POSALARM	CA	OCT523
+		TC	BANKCALL
+		CADR	PRIOLARM	# FLASH ALARM CODE
+		TCF	GOTOP00H	# TERMINATE
+		TCF	+3		# PROCEED -- TRY AGAIN
+		TCF	ENDOFJOB	# V 32 E    TERMINATE R12
+		TC	ENDOFJOB
+
+	+3	CA	BIT7		# SEE IF IN POS2 YET
+		EXTEND
+		RAND	CHAN33
+		EXTEND
+		BZF	POSGOOD		# POS2 ACHIEVED   SET UP ANTENNA BEAMS
+		TCF	POSALARM	# STILL DIDN'T MAKE IT   REALARM
+
+OCT523		OCT	00523
+
+
+
+SETPOS1		TC	MAKECADR	# MUST BE CALLED BY BANKCALL
+		TS	LRADRET1	# SAVE RETURN CADR.  SINCE BUP2 CLOBBERED
+
+		CAF	TWO
+		TS	STILBADH	# INITIALIZE STILBAD
+		TS	STILBADV	# INITIALIZE STILBAD
+
+		CA	ZERO		# INDEX FOR LRALPHA, LRBETA IN POS 1.
+# Page 896
+		TS	LRLCTR		# SET L,M,R, ANS S TO ZERO
+		TS	LRMCTR
+		TS	LRRCTR
+		TS	LRSCTR
+		TS	VSELECT		# INITIALIZE VSELECT
+
+		TC	SETPOS		# CONTINUE WITH COMPUTATIONS.
+
+		CA	LRADRET1
+		TC	BANKJUMP	# RETURN TO CALLER
+
+SETPOS2		CA	TWO		# INDEX FOR POS2
+SETPOS		XCH	Q		# SAVE INDEX IN Q
+		TS	LRADRET		# SAVE RETURN
+
+		CA	EBANK5
+		TS	EBANK
+		EBANK=	LRALPHA
+
+		EXTEND
+		INDEX	Q
+		DCA	LRALPHA		# LRALPHA IN A, LRBETA IN L
+		TS	CDUSPOT +4	# ROTATION ABOUT X
+		LXCH	CDUSPOT		# ROTATION ABOUT Y
+		CA	ZERO
+		TS	CDUSPOT +2	# ZERO ROTATION ABOUT Z.
+
+		CA	EBANK7
+		TS	EBANK
+		EBANK=	LRADRET
+
+		TC	INTPRET
+		VLOAD	CALL
+			UNITY		# CONVERT UNITY(ANTENNA) TO NB
+			TRG*SMNB
+		STOVL	VYBEAMNB
+			UNITX		# CONVERT UNITX(ANTENNA) TO NB
+		CALL
+			*SMNB*
+		STORE	VXBEAMNB
+		VXV	VSL1
+			VYBEAMNB
+		STOVL	VZBEAMNB	# Z = X * Y
+			HBEAMANT
+		CALL
+			*SMNB*		# CONVERT TO NB
+		STORE	HBEAMNB
+		EXIT
+
+# Page 897
+		TC	LRADRET
+
diff --git a/SERVICER207.s b/SERVICER207.s
new file mode 100644
index 0000000..f9316be
--- /dev/null
+++ b/SERVICER207.s
@@ -0,0 +1,804 @@
+# Copyright:    Public domain.
+# Filename:     SERVICER207.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 819-836
+# Contact:      Ron Burkey <info@sandroid.org>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-12 RSB	Adapted from Colossus249 file of the same
+#				name and Comanche 055 page images.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 819
+# SERVICER207
+#
+# PROGRAM NAME:	PREREAD, READACCS, SERVICER, AVERAGE G.
+# MOD NO. 00 BY M. HAMILTON	DEC. 12, 1966
+#
+# FUNCTIONAL DESCRIPTION
+#
+# THE ROUTINES DESCRIBED BELOW ARE USED TO CALCULATE VALUES OF RN, VN, AND GDT/2 DURING ACCELERATED FLIGHT.
+# THE SEVERAL ROUTINES COMPRISE A PACKAGE AND ARE NOT MEANT TO BE USED AS SEPARATE SUBROUTINES.
+#
+# GENERAL REFERENCES TO  SERVICER  OR  AVERAGE G  ARE UNDERSTOOD TO REFER TO THE ENTIRE SET OF ROUTINES INCLUDING
+# RRADACCS, SERVICER, AVERAGE G, INTEREAD, SMOOTHER, AND ANY ADDITIONAL ROUTINES ATTACHED AT AVGEXIT (SEE BELOW).
+#
+# PROGRAMS INITIATING SERVICER ARE REQUIRED TO MAKE A WAITLIST CALL FOR PREREAD (OR, IF LIFTOFF, FOR BIBIBIAS)
+# AT 2 SECONDS BEFORE THE FIRST AVERAGE G UPDATE IN ORDER TO INITIALIZE THE SEQUENCE, WHICH WILL RECUR EVERY
+# 2 SECONDS FROM THAT TIME ON AS LONG AS AVEGFLAG REMAINS SET.
+#
+# THE USE OF ERASABLE AVGEXIT ALLOWS VARIOUS ROUTINES TO BE PERFORMED AS PART OF THE NORMAL CYCLE (SEE
+# EXPLANATION OF AVGEXIT BELOW).
+#
+# DESCRIPTIONS OF INDIVIDUAL ROUTINES FOLLOW.
+#
+#	PREREAD
+#
+#		PREVIOUSLY EXTRAPOLATED VALUES COPIED FROM RN1, VN1, AND PIPTIME1 INTO RN, VN, AND PIPTIME.
+#		LASTBIAS JOB SCHEDULED.
+#		PIPS READ AND CLEARED VIA PIPASR SUBROUTINE.
+#		AVERAGE G FLAG SET ON.
+#		DRIFT FLAG SET OFF.
+#		V37 FLAG SET ON.
+#		INITIALIZATION OF	1) THRUST MONITOR (DVMON) -- DVCNTR SET TO ONE.
+#					2) TOTAL ACCUMULATED DELV VALUE (DVTOTAL) -- SET TO ZERO.
+#					3) AXIS VECTOR (AXIS) -- SET TO (.5,0,0).
+#		NORMLIZE JOB SCHEDULED.
+#		READACCS TASH CALLED IN 2 SECONDS.
+#
+#	NORMLIZE
+#
+#		GDT/2 INITIALIZED VIA CALCGRAV ROUTINE.
+#
+#	READACCS
+#
+#		IF ONMON FLAG SET QUIKREAD ROUTINE IS PERFORMED BEFORE PIPASR ZEROS THE PIPA REGISTERS, AND THE 1/2 SEC
+#		ONMONITOR LOOP IS INITIATED TO PROVIDE DOWNLINK INFORMATION DURING ENTRY.
+#		PIPS READ AND CLEARED BY PIPASR SUBROUTINE.
+#		IF CM/DSTBY IS ON, ENTRY VARIABLES INITIALIZED AND SETJTAG TASK CALLED.
+# Page 820
+#
+#	SERVICER207
+#
+#		IF AVERAGEG FLAG ON	READACCS CALLED TO RECYCLE IN 2 SECONDS.
+#		IF AVERAGEG FLAG OFF	AVERAGE G EXIT (AVGEXIT) SET TO 2CADR AVGEND FOR FINAL PASS.
+#		SERVICER JOB SCHEDULED.
+#		TEST CONNECTOR OUTBIT TURNED ON.
+#
+# 	ONMNITOR
+#
+#		A SEQUENCE OF THREE PASSES THROUGH QUICREAD FOLLOWING A CALL TO READACCS WITH ONMONFLG SET AT 1/2 
+#		SEC INTERVALS.  INTERVALS ARE COUNTED OUT BY PIPCTR, INITIALIZED AT 3 BY READACCS.
+#
+#	QUIKREAD
+#
+#		READS CURRENT PIPS INTO X,Y,ZPIPBUF.  READS OLD X,Y,ZPIPBUF INTO X,Y,ZOLDBUF.  VALUES ARE SENT TO
+#		DOWNLIST DURING ENTRY.
+#
+#	SERVICER
+#
+#		DELV VALUES CHECKED TO DETECT RUNAWAY PIP:
+#			IF BAD PIP	1) ALARM SENT.
+#					2) COMPENSATION, DVTOTAL ACCUMULATION, AND DVMON BYPASSED.  CONTROL
+#					   TRANSFERRED TO AVERAGE G.
+#		PIPS COMPENSATED VIA 1/PIPA SUBROUTINE.
+#		DVTOTAL INCREMENTED BY ABSOLUTE VALUE OF DELV.
+#		THRUST MONITOR (DVMON) PERFORMED UNLESS IDLE FLAG IS ON.
+#		CONTROL TRANSFERRED TO AVERAGE Q.
+#
+#	DVMON
+#
+#		THRESHOLD VALUD (PLACED IN DVTHRUSH BY USER) CHECKED AGAINST ABSOLUTE VALUE OF DELV TO CHECK
+#		THRUST LEVEL.
+#
+#			IF THRUST	1) ULLAGE OFF ROUTINE PERFORMED.
+#					2) STEERING FLAG TURNED ON AT FIRST DETECTION OF THRUST
+#					3) CONTROL TRANSFERRED TO AVERAGE G.
+#			IF NO THRUST	1) ON FIRST PASS THROUGH MONITOR, CONTROL TRANSFERRED TO AVERAGE G.
+#					2) ON SUBSEQUENT PASSES, CONTROL TRANSFERRED TO ENGINE FAIL ROUTINE IF THRUST
+#					   HAS FAILED FOR 3 CONSECUTIVE PASSES.
+#
+#	ENGINE FAIL
+#
+#		ENGFAIL1 TASK CALLED IN 2.5 SECONDS.  THIS WILL RETURN CONTROL TO TIG-5 SO THAT THE IGNITION
+#			SEQUENCE MAY BE REPEATED.
+#		ENGINOF3 PERFORMED.
+#		DAP SET UP FOR RCS.
+#	
+#	AVERAGE G
+# Page 821
+#		RN1, VN1, GDT1/2 CALCULATED VIA CALCRVG ROUTINE BY UPDATING RN, VN WITH DELV AND AN AVERAGED VALUE
+#			OF GDT/2
+#		RN1, VN1, GDT1/2, PIPTIME1 COPIED INTO RN, VN, GDT/2, PIPTIME FOR RESTART PROTECTION.
+#		CONTROL TRANSFERRED TO ADDRESS SPECIFIED BY USER (OR BY READACCS FOR LAST PASS) IN AVGEXIT.
+#		LAST PASS (AVGEND)	1) FREE FALL GYRO COMPENSATION SET UP.
+#					2) DRIFT FLAG TURNED ON.
+#					3) STATE VECTOR TRANSFERRED VIA AVETOMID ROUTINE.
+#					4) ONMONITOR FLAG RESET.
+#					5) V37 FLAG RESET.
+#					6) TEST CONNECTOR OUTBIT RESET.
+#					7) CONTROL TRANSFERRED TO CANV37 TO CONTINUE MM CHANGE ROUTINE (R00).
+#
+# CALLING SEQUENCE
+#
+#	PREREAD ENTERED DIRECTLY FROM TIG-30 VIA POSTJUMP.
+#	READACCS CALLED AS WAITLIST TASK.
+#
+# SUBROUTINES CALLED
+#
+# 	UTILITY ROUTINES:  PHASCHNG FLAGUP FLAGDOWN NOVAC FINDVAC WAITLIST ALARM NEWPHASE 2PHSCHNG
+#
+#	OTHER:  PIPASR 1/PIPA CALCGRAV CALCRVG AVETOMID
+#
+# NORMAL EXIT MODES
+#
+#	ENDOFJOB	TASKOVER	CANV37
+#
+#	AVGEXIT:	THIS IS A DOUBLE PRECISION ERASABLE LOCATION BY WHICH CONTROL IS TRANSFERRED AT THE END
+#				OF EACH CYCLE OF AVERAGE G.
+#			THE 2CADR OF A ROUTINE TO BE PERFORMED AT THAT TIME (E.G., STEERING EQUATIONS TO BE REPORTED
+#				AT 2 SECOND INTERVALS) MAY BE SET BY THE USER INTO AVGEXIT.
+#			ALL SUCH ROUTINES SHOULD RETURN TO SERVEXIT, WHICH IS THE NORMAL EXIT FROM AVERAGE G.
+#
+#	SERVEXIT:	DOES A PHASE CHANGE FOR RESTART PROTECTION AND GOES TO ENDOFJOB.
+#			THE 2CADR OF SERVEXIT IS SET INTO AVGEXIT BY THE USERI F NO OTHER ROUTINE (SEE ABOVE).
+#
+#	AVGEND:		LAST PASS OF AVERAGE G EXITS HERE, BYPASSING SPECIAL ROUTINE (SEE ABOVE UNDER READACCS).
+#			FINAL EXIT IS TO CANV37.				F AVERAGE G).
+#
+# OUTPUT
+#
+#	DVTOTAL(2)  PIPTIME(2)  XPIPBUF(2)  YPIPBUF(2)  ZPIPBUF(2)
+#	RN(6)		REFERENCE COORD.	SCALED AT 2(+29) M/CS
+#	VN(6)		REFERENCE COORD.	SCALED AT 2(+7) M/CS
+#	GDT/2(6)	REFERENCE COORD.	SCALED AT 2(+7) M/CS
+#	DELV(6)		STABLE MEMB. COORD.	SCALED AT 2(+14)*5.85*10(-4) M/CS (KPIP1 USED TO GET DV/2 AT 2(+7))
+# Page 822
+#	DELVREF(6)	REFERENCE COORD.	SCALED AT 2(+7) M/CS
+#
+# INITIALIZATION
+#
+#	ONMONITOR FLAG SET BY ENTRY TO SHOW PIPBUF VALUES REQUIRED.
+#	IDLE FLAG ON IF DVMON TO BE BYPASSED.
+#	DVTHRUSH SET TO APPROPRIATE VALUE FOR DVMON.
+#	AVGEXIT SET TO 2CADR OF ROUTINE, IF ANY, TO BE PERFORMED AFTER EACH CYCLE OF AVERAGE G.  IF NO ROUTINE
+#		TO BE DONE, AVGEXIT SET TO SERVEXIT.
+#	VALUES NEEDED
+#		REFSMMAT
+#		UNITW:  FULL UNIT VECTOR, IN REFERENCE COORD., OF EARTH'S ROTATIONAL VECTOR
+#		RN1, VN1, PIPTIME1:  IN REFERENCE COORD., CONSISTENT WITH TIME OF EXECUTION OF PREREAD.
+#
+# DEBRIS
+#
+#	CENTRALS	A, L, Q
+#	OTHER		INTERNAL:  DVCNTR(1)  PIPAGE(1)  PIPCTR(1)  AVGEXIT(2)
+#			EXTERNAL:  ITEMP1(1)  ITEMP2(1)  RUPTREG1(1)  TEMX(1)  TEMY(1)  TEMZ(1)
+#			USEFUL DEBRIS
+#				RN1(0)  VN1(0)  GDT1/0  PIPTIME1(2?)
+#					THESE LOCATIONS USED AS BUFFER STORAGE FOR NEWLY CALCULATED VALUES OF RN, VN, GDT/2,
+#					AND PIPTIME DURING PERFORMANCE OF SERVICER ROUTINES.
+#				UNITR:  HALF UNIT VECTOR OF RN, REFERENCE COORD.
+#				RMAG SCALED AT 2(+58) IN 36D.
+#				RMAGSQ SCALED AT 2(+58) IN 34D.
+#				(RE/RMAG)SQ IN 32D
+
+		BANK	27
+		SETLOC	SERVICES
+		BANK
+		
+		EBANK=	DVCNTR
+# ********************* PREREAD ***************************************
+
+		COUNT	37/SERV
+		
+PREREAD		CAF	PRIO21		# CALLER MUST PROTECT PREREAD
+		TC	NOVAC
+		EBANK=	NBDX
+		2CADR	LASTBIAS	# DO LAST GYRO COMPENSATION IN FREE FALL
+		
+					# CALL-TO AND LASTBIAS ITSELF ARE NOT
+					#	PROTECTED. REREADAC SETS 1/PIPADT
+					#	TO 2.0 SECS IN CASE LASTBIAS LOST.
+					#	(REDUNDANT IF LASTBIAS IS AOK.)
+# Page 823
+REDO5.31	TC	PREREAD1
+
+		CAF	PRIO32
+		TC	FINDVAC		# SET UP NORMLIZE JOB REQUIRED PRIOR TO
+		EBANK=	DVCNTR		# FIRST AVERAGE G PASS
+		2CADR	NORMLIZE
+		
+		CAF	2SECS
+		TC	WAITLIST
+		EBANK=	AOG
+		2CADR	READACCS
+		
+		CS	TWO
+		TC	NEWPHASE
+		OCT	5
+		
+		TCF	TASKOVER
+		
+PREREAD1	EXTEND
+		QXCH	RUPTREG1
+		
+		TC	PIPASR		# CLEAR + READ PIPS LAST TIME IN FREE FALL
+		
+		CAF	ONE		# SET UP PIPAGE FOR REREADAC IN CASE A
+		TS	PIPAGE		# 	RESTART OCCURS BEFORE READACCS
+		
+		CS	FLAGWRD1	# SET AVEG FLAG
+		MASK	BIT1
+		ADS	FLAGWRD1
+		
+		CA	POSMAX
+		MASK	FLAGWRD2
+		TS	FLAGWRD2	# KNOCK DOWN DRIFT FLAG
+		
+		CS	FLAGWRD7	# SET V37 FLAG
+		MASK	BIT6
+		ADS	FLAGWRD7
+		
+		CAF	ZERO
+		TS	DVTOTAL		# CLEAR DVTOTAL
+		TS	DVTOTAL +1
+		
+		TC	RUPTREG1
+
+# Page 824
+# ********************* READACCS ***************************************
+		EBANK=	AOG
+READACCS	TC	PIPASR
+
+PIPSDONE	CAF	FIVE
+		TS	L
+		COM
+		DXCH	-PHASE5
+		
+REDO5.5		CAF	ONE		# SHOW PIPS HAVE BEEN READ
+		TS	PIPAGE
+		
+		CA	TWO		# SET PIPCTR FOR ONMINTOR
+		TS	PIPCTR		# AFTER ABOVE PHASCHNG
+		
+		CS	CM/FLAGS
+		MASK	BIT2		# CM/DSTBY
+		CCS	A
+		TC	CHEKAVEG
+		
+		CS	PIPTIME1 +1
+		TS	TBASE6		# FOR RESTARTS
+		EXTEND			# CONTINUE FOR ENTRY DAP
+		DCA	AOG
+		DXCH	AOG/PIP
+		CA	AMG
+		XCH	AMG/PIP
+		EXTEND
+		DCA	ROLL/180
+		DXCH	ROLL/PIP
+		CA	BETA/180
+		XCH	BETA/PIP
+		CA	CM/FLAGS
+		MASK	BIT12		# CM/DAPARM 93D BIT12
+		EXTEND			# DURING ENTRY, WHEN RCS DAP IS INACTIVE,
+		BZF	NOSAVPIP	# SAVE PIPAS EACH 0.5 SEC FOR TM.
+		
+		CA	0.5SEC
+		TC	WAITLIST
+		EBANK=	XPIPBUF
+		2CADR	QUIKREAD
+		
+					# NO NEED TO RESTART PROTECT THIS.
+		CA	DELVX		# SAVE PIPAS AS READ (BUT NOT COMPENSATED)
+		XCH	XPIPBUF
+		TS	XOLDBUF
+		
+		CA	DELVY
+		XCH	YPIPBUF
+		TS	YOLDBUF
+# Page 825
+		CA	DELVZ
+		XCH	ZPIPBUF
+		TS	ZOLDBUF
+		
+NOSAVPIP	CA	FIVE
+		TS	CM/GYMDT
+		
+		CA	JTAGTIME	# ACTIVATE CM/RCS AFTER PIPUP TO GO
+					# IN JTAGTIME +5 CS.
+		TC	WAITLIST
+		EBANK=	AOG
+		2CADR	SETJTAG
+		
+		CS	THREE		# 1.3SPOT FOR SETJTAG
+		TC	NEWPHASE
+		OCT	1
+		
+		CAF	OCT37
+		TS	L
+		COM
+		DXCH	-PHASE5
+		
+CHEKAVEG	CS	FLAGWRD1
+		MASK	BIT1
+		CCS	A		# IF AVEG FLAG DOWN SET FINAL EXIT AVEG
+		TC	AVEGOUT
+		
+		CAF	2SECS
+		TC	WAITLIST
+		EBANK=	AOG
+		2CADR	READACCS
+		
+MAKESERV	CAF	PRIO20		# ESTABLISH SERVICER ROUTINE
+		TC	FINDVAC
+		EBANK=	DVCNTR
+		2CADR	SERVICER
+		
+		CS	FOUR		# RESTART SERVICER AND READACCS
+		TC	NEWPHASE
+		OCT	5
+		
+		CAF	BIT9
+		EXTEND
+		WOR	DSALMOUT	# TURN TEST CONNECTOR OUTBIT ON
+		
+		TCF	TASKOVER	# END PREVIOUS READACCS WAITLIST TASK
+		
+# Page 826
+AVEGOUT		EXTEND
+		DCA	AVOUTCAD
+		DXCH	AVGEXIT
+		TCF	MAKESERV
+		
+		EBANK=	DVCNTR
+AVOUTCAD	2CADR	AVGEND
+
+# Page 827
+# ROUTINE NAME:	ONMNITOR
+# MOD 04 BY BAIRNSFATHER 30 APR 1968	REDO ONMNITOR TO SAVE PIPS EACH 0.5 SEC FOR TM,ENTRY.
+# MOD 03 BY FISHER DECEMBER 1967
+# MOD 02 BY RYE SEPT 1967
+# MOD 01 BY KOSMALA 23 MAR 1967
+# MOD 00 BY KOSMALA 27 FEB 1967
+#
+# FUNCTIONAL DESCRIPTION
+#
+#	THE PURPOSE OF ONMONITOR IS TO PROVIDE 1/2 SEC. READING OF PIPAS FOR DOWNLIST DURING ENTRY.
+#	X,Y,XPIPBUF CONTAIN PRESET VALUES X,Y,ZOLDBUF CONTAIN VALUES FROM PREVIOUS READING.
+#
+# CALLING SEQUENCE
+#
+#	CALL AS WAITLIST TASK. TERMINATES ITSELF IN TASKOVER
+#
+# INITIALIZATION
+#
+#	PIPCTR = 2 (FOR DT = 0.5 SEC)
+#	X,Y,ZPIPBUF SET TO PREVIOUS PIPAX,Y,Z
+#
+# OUTPUT
+#
+#	X,Y,ZPIPBUF, X,Y,ZOLDBUF
+#
+# DEBRIS
+#
+#	X,Y,ZPIPBUF CONTAIN LAST PIPAX,Y,Z VALUES
+#		X,Y,ZOLDBUF CONTAIN LAST-BUT-ONE PIPAX,Y,Z VALUES
+#	RUPTREG1
+#	PIPCTR
+
+ONMNITOR	TS	PIPCTR
+
+		TC	FIXDELAY	# WAIT
+0.5SEC		DEC	50
+
+QUIKREAD	CAF	TWO
+		TS	RUPTREG1
+		INDEX	A
+		CA	PIPAX		# SAVE ACTUAL PIPAS FOR TM.
+		INDEX	RUPTREG1
+		XCH	XPIPBUF		# UPDATE X,Y,ZPIPBUF
+		INDEX	RUPTREG1
+		TS	XOLDBUF		# AND X,Y,ZOLDBUF
+CHKCTR		CCS	RUPTREG1
+		TCF	QUIKREAD +1	# LOOP AGAIN
+		CCS	PIPCTR
+		TCF	ONMNITOR
+		TC	TASKOVER
+
+# Page 828
+# ********************* SERVICER ***************************************
+
+		EBANK=	DVCNTR
+		
+SERVICER	CAF	TWO
+		INHINT
+PIPCHECK	TS	RUPTREG1
+
+		DOUBLE
+		INDEX	A
+		CCS	DELVX
+		TC	+2
+		TC	PIPLOOP
+		
+		AD	-MAXDELV	# DO PIPA-SATURATION TEST BEFORE
+		EXTEND
+		BZMF	PIPLOOP		# COMPENSATION.
+		
+		TC	ALARM
+		OCT	00205		# SATURATED-PIPA ALARM   ***CHANGE LATER
+		TC	AVERAGEG
+		
+PIPLOOP		CCS	RUPTREG1
+		TCF	PIPCHECK
+		
+		TC	PHASCHNG	# RESTART REREADAC + SERVICER
+		OCT	16035
+		OCT	20000
+		EBANK=	DVCNTR
+		2CADR	DVTOTUP
+		
+		TC	BANKCALL	# PIPA COMPENSATION CALL
+		CADR	1/PIPA
+		
+DVTOTUP		TC	INTPRET
+		VLOAD	ABVAL		# GET ABS VALUE OF DELV
+			DELV
+		DMP	EXIT
+			KPIP1		# SCALE AT 2(+7)
+			
+		EXTEND
+		DCA	MPAC
+		DAS	DVTOTAL		# ACCUMULATE DVTOTAL
+AVERAGEG	TC	PHASCHNG
+		OCT	10035
+		
+		TC	INTPRET
+		CALL
+# Page 829
+			CALCRVG
+		EXIT
+		
+		TC	PHASCHNG
+		OCT	10035
+		
+		CAF	OCT31		# COPY RN1,VN1,GOT102,GOBL1/2,PIPTIME1
+		TC	GENTRAN		# INTO RN, VN, GDT/12, GOBL/2,PIPTIME
+		ADRES	RN1
+		ADRES	RN
+		RELINT			# GENTRAN DOES AN INHINT
+		TC	PHASCHNG
+		OCT	10035
+
+		EXTEND
+		DCA	AVGEXIT
+		DXCH	Z		# AVERAGEG EXIT
+		
+AVGEND		CA	PIPTIME +1	# FINAL AVERAGE G EXIT
+		TS	OLDBT1		# SET UP FREE FALL GYRO COMPENSATION
+		
+		TC	UPFLAG		# SET DRIFTFLG
+		ADRES	DRIFTFLG	# BIT 15 FLAG 2
+		TC	2PHSCHNG
+		OCT	5		# GROUP 5 OFF
+		OCT	05022		# GROUP 2 ON FOR AVETOMID
+		OCT	20000
+		
+		TC	INTPRET
+		CALL
+			AVETOMID	# CONVERT STATE VECTOR TO REFERENCE SCALE.
+		EXIT
+		
+		CAF	ZERO		# ZERO MARK COUNTERS.
+		TS	VHFCNT
+		TS	TRKMKCNT
+		
+		TC	BANKCALL
+		CADR	PIPFREE
+		
+		CS	BIT9
+		TS	MRKBUF2		# INVALIDATE MARK BUFFER
+		EXTEND
+		WAND	DSALMOUT
+		
+		TC	DOWNFLAG
+		ADRES	CM/DSTBY
+		
+		TC	DOWNFLAG
+		ADRES	V37FLAG
+
+# Page 830
+		CAF	BIT7		# RESTORE GROUP 1 + 2 IF P20 IS RUNNING.
+		MASK	FLAGWRD0
+		EXTEND
+		BZF	+4
+		
+		TC	2PHSCHNG
+		OCT	111		# 1.11SPOT
+		OCT	132		# 2.13SPOT
+		
+		TC	POSTJUMP
+		CADR	CANV37
+		
+SERVEXIT	TC	PHASCHNG
+		OCT	00035		# A, 5.3 = REREADAC 	(ONLY)
+		
+		TCF	ENDOFJOB
+		
+DVTHRUSH	EQUALS	ELEVEN		# 15 PERCENT OF 2SEC PIPA ACCUMULATION,
+					#	FOR 503-FULL CSM/LEM....DELV SC.AT
+					#	5.85 CM/SEC.
+					
+-MAXDELV	DEC	-6398		# 3200 PPS FOR 2 SEC CCS TAKES 1
+
+JTAGTIME	DEC	120		# = 1 SEC + T CDU, T CDU = .1 SEC
+
+2.5SEC		DEC	250
+MDOTFAIL	DEC	144.0 B-16	# 5 SEC MASS LOSS AT 28.8 KG/SEC
+					# SHOULD BE 2-4 SECS FOR NO START
+					#	    6-8 SECS FOR FAILURE
+					
+# Page 831
+# NORMLIZE PERFORMS THE INITIALIZATION REQUIRED PRIOR TO THE FIRST ENTRY TO AVERAGEG, AND SCALES RN SO THAT IT
+# HAS 1 LEADING BINARY ZERO.  IN MOST MISSIONS, RN WILL BE SCALED AT 2(+29), BUT IN THE 206 MISSION, RN WILL BE
+# SCALED AT 2(+24) M.
+
+NORMLIZE	CAF	THIRTEEN	# SET UP TO COPY 14 REGS: RN1,VN1,PIPTIME1
+		TC	GENTRAN		# INTO RN,VN,PIPTIME
+		ADRES	RN1		# FROM HERE
+		ADRES	RN		# TO HERE
+		
+		RELINT
+		TC	INTPRET
+		VLOAD	CALL		# LOAD RN FOR CALCGRAV
+			RN
+			CALCGRAV	# INITIALIZE UNITR RMAG GDT1
+			
+		STOVL	GDT/2
+			GOBL1/2
+		STORE	GOBL/2
+		EXIT
+		TCF	ENDOFJOB
+		
+# Page 832
+# *****  PIPA READER *****
+# MOD NO. 00 BY D. LICKLY DEC. 9 1966
+#
+# FUNCTIONAL DESCRIPTION
+#
+# SUBROUTINE TO READ PIPA COUNTERS, TRYING TO BE VERY CAREFUL SO THAT IT WILL BE RESTARTABLE.
+# PIPA READINGS ARE STORED IN THE VECTOR DELV.  THE HIGH ORDER PART OF EACH COMPONENT CONTAINS THE PIPA READING,
+# RESTARTS BEGIN AT REREADAC.
+#
+# AT THE END OF THE PIPA READER THE CDUS ARE READ AND STORED AS A
+# VECTOR IN CDUTEMP.  THE HIGH ORDER PART OF EACH COMPONENT CONTAINS
+# THE CDU READING IN 2'S COMP IN THE ORDER CDUX,Y,Z.  THE THRUST
+# VECTOR ESTIMATOR IN FINDCDUD REQUIRES THE CDUS BE READ AT PIPTIME.
+#
+# CALLING SEQUENCE AND EXIT
+#
+#	CALL VIA TC, ISWCALL, ETC.
+#
+#	EXIT IS VIA Q.
+#
+# INPUT
+#
+#	INPUT IS THROUGH THE COUNTERS PIPAX, PIPAY, PIPAZ, AND TIME2.
+#
+# OUTPUT
+#
+#	HIGH ORDER COMPONENTS OF THE VECTOR DELV CONTAIN THE PIPA READINGS.
+#
+#	PIPTIME CONTAINS TIME OF PIPA READING.
+#
+# DEBRIS (ERASABLE LOCATIONS DESTROYED BY THE PROGRAM)
+#
+#	LOW ORDER DELV'S ARE ZEROED FOR TM INDICATION.
+#	TEMX	TEMY	TEMZ	PIPAGE
+
+PIPASR		EXTEND
+		DCA	TIME2
+		DXCH	PIPTIME1	# CURRENT TIME	POSITIVE VALUE
+		CS	ZERO		# INITIALIZAE THESE AT NEG ZERO.
+		TS	TEMX
+		TS	TEMY
+		TS	TEMZ
+# Page 833
+		CA	ZERO
+		TS	DELVZ		# OTHER DELVS OK INCLUDING LOW ORDER
+		TS	DELVY
+		
+		TS	DELVX +1	# LOW ORDER DELV'S ARE ZEROED FOR TM:  THIS
+		TS	DELVY +1	# IF DNLNK=D LOW ORDER DELVS ARE NZ, THEY
+		TS	DELVZ +1	# CONTAIN PROPER COMPENSATION.  IF=0, THEN
+					# THE TM VALUES ARE BEFORE COMPENSATION.
+					
+		TS	PIPAGE		# SHOW PIPA READING IN PROGRESS
+		
+REPIP1		EXTEND
+		DCS	PIPAX		# X AND Y PIPS READ
+		DXCH	TEMX
+		DXCH	PIPAX		# PIPAS SET TO NEG ZERO AS READ.
+		TS	DELVX
+		LXCH	DELVY
+		
+REPIP3		CS	PIPAZ		# REPEAT PROCESS FOR Z PIP
+		XCH	TEMZ
+		XCH	PIPAZ
+DODELVZ		TS	DELVZ
+
+		TC	Q
+		
+		EBANK=	AOG
+		
+REREADAC	CCS	PHASE5		# LAST PASS CHECK
+		TCF	+2
+		TCF	TASKOVER
+		
+		CAF	PRIO31		# RESTART MAY HAVE WIPED OUT LASTBIAS, AN
+		TS	1/PIPADT	#	UNPROTECTED NOVAC FROM PREREAD,
+					#	WHICH SET(S) UP 1/PIPADT (THUSLY)
+					#	FOR NON-COASTING COMPENSATION....BE
+					#	SURE 1/PIPADT IS AOK.  (PRIO31 IS
+					#	2.0SEC SC.AT B+8(CS)
+					
+		CCS	PIPAGE
+		TCF	READACCS	# PIP READING NOT STARTED.  GO TO BEGINNING
+		
+		CAF	DONEADR		# SET UP RETURN FROM PIPASR
+		TS	Q
+		
+		CCS	DELVZ
+		TC	Q		# Z DONE, GO DO CDUS
+		TCF	+3		# Z NOT DONE, CHECK Y.
+		TC	Q
+		TC	Q
+# Page 834
+		ZL
+		CCS	DELVY
+		TCF	+3
+		TCF	CHKTEMX		# Y NOT DONE, CHECK X.
+		TCF	+1
+		LXCH	PIPAZ		# Y DONE, ZERO Z PIP.
+		
+		CCS	TEMZ
+		CS	TEMZ		# TEMZ NOT = -0, CONTAINS -PIPAZ VALUE.
+		TCF	DODELVZ
+		TCF	-2
+		LXCH	DELVZ		# TEMZ = -0, L HAS ZPIP VALUE.
+		TC	Q
+		
+CHKTEMX		CCS	TEMX		# HAS THIS CHANGED
+		CS	TEMX		# YES
+		TCF	+3		# YES
+		TCF	-2		# YES
+		TCF	REPIP1		# NO
+		TS	DELVX
+		
+		CS	TEMY
+		TS	DELVY
+		
+		CS	ZERO		# ZERO X AND Y PIPS
+		DXCH	PIPAX		# L STILL ZERO FROM ABOVE
+		
+		TCF	REPIP3
+		
+DONEADR		GENADR	PIPSDONE
+
+# Page 835
+#*********************************************************************************************
+#
+# ROUTINE CALCRVG INTEGRATES THE EQUATIONS OF MOTION BY AVERAGING THE THRUST AND GRAVITATIONAL
+# ACCELERATIONS OVER A TIME INTERVAL OF 2 SECONDS.
+#
+# FOR THE EARTH-CENTERED GRAVITATIONAL FIELD, THE PERTURBATION DUE TO OBLATENESS IS COMPUTED TO THE FIRST
+# HARMONIC COEFFICIENT J.
+#
+# ROUTINE CALCRVG REQUIRES...
+#	1) THRUST ACCELERATION INCREMENTS IN DELV SCALED SAME AS PIPAX,Y,Z IN STABLE MEMBER COORDS.
+#	2) VN SCALED 2(+7) M/CS IN REFERENCE COORDS.
+#	3) RN SCALED AT 2(+29) METERS IN REFERENCE COORDS.
+#	4) UNITW THE EARTH'S UNIT ROTATIONAL VECTOR (SCALED AS A FULL UNIT VECTOR) IN REFERENCE COORDS.
+#
+# IT LEAVES RN1 UPDATED (SCALED AT 2(+29)M, VN1 (SCALED AT 2(+7)M/CS), AND GDT1/2 (SCALED AT 2(+7)M/CS). ALSO HALF
+# UNIT VECTOR UNITR, RMAG IN 36D SCALED AT 2(+29)M, R MAG SQ. IN 34D SCALED AT 2(+58) M SQ.
+
+CALCGRAV	UNIT	PUSH		# ENTER WITH RN IN MPAC
+		STORE 	UNITR
+		LXC,1	SLOAD
+			RTX2
+			X1
+		BMN	VLOAD
+			ITISMOON
+		DOT	PUSH
+			UNITW
+		DSQ	BDSU
+			DP1/20
+		PDDL	DDV
+			RESQ
+			34D		# (RN)SQ
+		STORE	32D		# TEMP FOR (RE/RN)SQ
+		DMP	DMP
+			20J
+		VXSC	PDDL
+			UNITR
+		DMP	DMP
+			2J
+			32D
+		VXSC	VAD
+			UNITW
+		STADR
+		STORE	GOBL1/2
+		VAD	PUSH
+			UNITR
+ITISMOON	DLOAD	NORM
+			34D
+			X2
+		BDDV*	SLR*
+# Page 836
+			-MUDT(E),1
+			0 -21D,2
+		VXSC	STADR
+		STORE	GDT1/2		# SCALED AT 2(+7) M/CS
+		RVQ
+
+CALCRVG		VLOAD	VXSC
+			DELV
+			KPIP1
+		VXM	VSL1
+			REFSMMAT
+		STORE	DELVREF		# DELV IN REF COORDS AT 2(+7)
+		VSR1	PUSH
+		VAD	PUSH		# (DV-OLDGDT)/2 TO PD SCALED AT 2(+7)M/CS
+			GDT/2
+		VAD	VXSC
+			VN
+			2SEC(22)
+		VAD	STQ
+			RN
+			31D
+		STCALL	RN1		# TEMP STORAGE OF RN SCALED 2(+29)M
+			CALCGRAV
+			
+		VAD	VAD
+		VAD
+			VN
+		STCALL	VN1		# TEMP STORAGE OF VN SCALED 2(+7) M/CS.
+			31D
+			
+KPIP		2DEC	.1024		# SCALES DELV TO 2(+4)
+
+KPIP1		2DEC	0.074880	# 207 DELV SCALING.  1 PULSE = 5.85 CM/SEC.
+
+-MUDT(E)	2DEC*	-7.9720645 E+12 B-44*
+
+-MUDT(M)	2DEC*	-9.805556 E+10 B-44*
+
+2SEC(22)	2DEC	200 B-22
+
+DP1/20		2DEC	0.05
+
+RESQ		2DEC*	40.6809913 E12 B-59*
+
+20J		2DEC*	3.24692010 E-2 B1*
+
+2J		2DEC*	3.24692010 E-3 B1*
+
diff --git a/SERVICE_ROUTINES.s b/SERVICE_ROUTINES.s
new file mode 100644
index 0000000..64479cc
--- /dev/null
+++ b/SERVICE_ROUTINES.s
@@ -0,0 +1,271 @@
+# Copyright:    Public domain.
+# Filename:     SERVICE_ROUTINES.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 1485-1492
+# Contact:      Ron Burkey <info@sandroid.org>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-07 RSB	Adapted from Colossus249 file of the same
+#				name, and page images. Corrected various 
+#				typos in the transcription of program 
+#				comments, and these should be back-ported  
+#				to Colossus249.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 1485
+		BLOCK	3
+		SETLOC	FFTAG6
+		BANK
+		COUNT	03/FLAG
+
+UPENT2		TS	L		# WHICH FLAGWORD IS IT
+		MASK	OCT7		
+		XCH	L		# SAVE IN L FOR INDEXING
+		
+		MASK	OCT77770	# OBTAIN THE BIT INFORMATION
+		INHINT			# PREVENT INTERRUPTS
+		TS	ITEMP1		# STORE THE BIT INFORMATION TEMPORARILY
+		
+		NDX	L
+		CS	FLAGWRD0
+		MASK	ITEMP1
+		NDX	L
+		ADS	FLAGWRD0
+		RELINT			# RELEASE INTERRUPT INHIBIT
+		
+		INCR	Q		# OBTAIN THE CORRECT RETURN ADDRESS
+		TC	Q		# RETURN
+		
+DOWNENT2	TS	L		# WHICH FLAGWORD IS IT
+		MASK	OCT7
+		XCH	L		# SAVE IN L FOR INDEXING
+		
+		MASK	OCT77770	# OBTAIN THE BIT INFORMATION
+		COM			# START TO PROCESS THE INFORMATION
+		
+		INHINT			# PREVENT INTERRUPTS
+		NDX	L
+		MASK	FLAGWRD0
+		NDX	L
+		TS	FLAGWRD0
+		RELINT			# RELEASE INTERRUPT INHIBIT
+		
+		INCR	Q		# OBTAIN THE CORRECT RETURN ADDRESS
+		TC	Q
+		
+OCT7		EQUALS	SEVEN
+		BANK	10
+
+# Page 1486
+# UPFLAG AND DOWNFLAG ARE ENTIRELY GENERAL FLAG SETTING AND CLEARING SUBROUTINES.  USING THEM, WHETHER OR
+# NOT IN INTERRUPT, ONE MAY SET OR CLEAR ANY SINGLE, NAMED BIT IN ANY ERASABLE REGISTER, SUBJECT OF COURSE TO
+# EBANK SETTING.  A "NAMED" BIT, AS THE WORD IS USED HERE, IS ANY BIT WITH A NAME FORMALLY ASSIGNED BY THE YUL
+# ASSEMBLER.
+#
+# AT PRESENT THE ONLY NAMED BITS ARE THOSE IN THE FLAGWORDS.  ASSEMBLER CHANGES WILL MAKE IT POSSIBLE TO
+# NAME ANY BIT IN ERASABLE MEMORY.
+#
+# CALLING SEQUENCES ARE AS FOLLOWS --
+#		TC	UPFLAG			TC	DOWNFLAG
+#		ADRES	NAME OF FLAG		ADRES	NAME OF FLAG
+#
+# RETURN IS TO THE LOCATION FOLLOWING THE "ADRES" ABOUT .58 MS AFTER THE "TC".
+# UPON RETURN A CONTAINS THE CURRENT FLAGWRD SETTING.
+
+		BLOCK	02
+		SETLOC	FFTAG1
+		BANK
+		COUNT*	$$/FLAG
+
+UPFLAG		CA	Q
+		TC	DEBIT
+		COM			# +(15 - BIT)
+		EXTEND
+		ROR	LCHAN		# SET BIT
+COMFLAG		INDEX	ITEMP1
+		TS	FLAGWRD0
+		LXCH	ITEMP3
+		RELINT
+		TC	L
+
+DOWNFLAG	CA	Q
+		TC	DEBIT
+		MASK	L		# RESET BIT
+		TCF	COMFLAG
+
+DEBIT		AD	ONE		# CET DE BITS
+		INHINT
+		TS	ITEMP3
+		CA	LOW4		# DEC15
+		TS	ITEMP1
+		INDEX	ITEMP3
+		CA	0 -1		# ADRES
+		TS	L
+		CA	ZERO
+# Page 1487
+		EXTEND
+		DV	ITEMP1		# A = FLAGWRD, L = (15 - BIT)
+		DXCH	ITEMP1
+		INDEX	ITEMP1
+		CA	FLAGWRD0
+		TS	L		# CURRENT STATE
+		INDEX	ITEMP2
+		CS	BIT15		# -(15 - BIT)
+		TC	Q
+
+# Page 1488
+# DELAYJOB -- A GENERAL ROUTINE TO DELAY A JOB A SPECIFIC AMOUNT OF TIME BEFORE PICKING UP AGAIN.
+#
+# ENTRANCE REQUIREMENTS ...
+#		CAF	DT		# DELAY JOB FOR DT CENTISECS
+#		TC	BANKCALL
+#		CADR	DELAYJOB
+
+		BANK	06
+		SETLOC	DLAYJOB
+		BANK
+
+# THIS MUST REMAIN IN BANK 0 ****************************************
+
+		COUNT	00/DELAY
+
+DELAYJOB	INHINT
+		TS	Q		# STORE DELAY DT IN Q FOR DLY -1 IN
+		CAF	DELAYNUM	# WAITLIST
+DELLOOP		TS	RUPTREG1
+		INDEX	A
+		CA	DELAYLOC	# IS THIS DELAYLOC AVAILABLE
+		EXTEND
+		BZF	OK2DELAY	# YES
+
+		CCS	RUPTREG1	# NO, TRY NEXT DELAYLOC
+		TCF	DELLOOP
+
+		TC	BAILOUT		# NO AVAILABLE LOCS.
+		OCT	1104
+
+OK2DELAY	CA	TCSLEEP		# SET WAITLIST IMMEDIATE RETURN
+		TS	WAITEXIT
+
+		CA	FBANK
+		AD	RUPTREG1	# STORE BBANK FOR TASK CALL
+		TS	L
+
+		CAF	WAKECAD		# STORE CADR FOR TASK CALL
+		TCF	DLY2 -1		# DLY IS IN WAITLIST ROUTINE
+
+TCGETCAD	TC	MAKECADR	# GET CALLER'S FCADR
+
+		INDEX	RUPTREG1
+		TS	DELAYLOC	# SAVE DELAY CADRS
+
+		TC	JOBSLEEP
+
+WAKER		CAF	ZERO
+		INDEX	BBANK
+		XCH	DELAYLOC	# MAKE DELAYLOC AVAILABLE
+# Page 1489
+		TC	JOBWAKE
+
+		TC	TASKOVER
+
+TCSLEEP		GENADR	TCGETCAD -2
+WAKECAD		GENADR	WAKER
+
+# Page 1490
+# GENTRAN, A BLOCK TRANSFER ROUTINE
+# WRITTEN BY D. EYLES
+# MOD 1 BY KERNAN				UTILITYM REV 17 11/18/67
+# MOD 2 BY SCHULENBERG -- (REMOVE RELINT) -- SKIPPER REV 4 2/28/68
+#
+# THIS ROUTINE IS USEFUL FOR TRANSFERRING N CONSECUTIVE ERASABLE OR FIXED QUANTITIES TO SOME OTHER N
+# CONSECUTIVE ERASABLE LOCATIONS.  IF BOTH BLOCKS OF DATA ARE IN SWITCHABLE EBANKS, THEY MUST BE IN THE SAME ONE.
+#
+# GENTRAN IS CALLABLE IN A JOB AS WELL AS A RUPT.  THE CALLING SEQUENCE IS:
+#	I	CA	N-1		# NO. NUMBER OF QUANTITIES MINUS ONE.
+#	I +1	TC	GENTRAN		# IN FIXED-FIXED.
+#	I +2	ADRES	L		# STARTING ADRES OF DATA TO BE MOVED.
+#	I +3	ADRES	M		# STARTING ADRES OF DUPLICATION BLOCK.
+#	I +4				# RETURNS HERE.
+#
+# GENTRAN TAKES 25 MCT'S (300 MICROSECONDS) PER ITEM + 5 MCT'S (60 MICS) FOR ENTERING AND EXITING.
+# A, L, AND ITEMP1 ARE NOT PRESERVED.
+
+		BLOCK	02
+		SETLOC	FFTAG4
+		BANK
+
+		EBANK=	ITEMP1
+
+		COUNT*	$$/TRAN
+
+GENTRAN		INHINT
+		TS	ITEMP1		# SAVE N-1
+		INDEX	Q		# C(Q) = ADRES L.
+		AD	0		# ADRES (L + N - 1).
+		INDEX	A
+		CA	0		# C(ABOVE).
+		TS	L		# SAVE DATA.
+		CA	ITEMP1
+		INDEX	Q
+		AD	1		# ADRES (M + N - 1).
+		INDEX	A
+		LXCH	0		# STUFF IT.
+		CCS	ITEMP1		# LOOP UNTIL N-1 = 0.
+		TCF	GENTRAN +1
+		TCF	Q+2		# RETURN TO CALLER.
+
+# Page 1491
+# B5OFF		ZERO BIT 5 OF EXTVBACK, WHICH IS SET BY TESTXACT.
+# MAY BE USED AS NEEDED BY ANY EXTENDED VERB WHICH HAS DONE TESTXACT
+
+		COUNT*	$$/EXTVB
+
+B5OFF		CS	BIT5
+		MASK	EXTVBACT
+		TS	EXTVBACT
+		TC	ENDOFJOB
+
+# Page 1492
+# SUBROUTINES TO TURN OFF AND TURN ON TRACKER FAIL LIGHT.
+
+TRFAILOF	INHINT
+		CS	OCT40200	# TURN OFF TRACKER LIGHT
+		MASK	DSPTAB +11D
+		AD	BIT15
+		TS	DSPTAB +11D
+		CS	OPTMODES	# TO INSURE THAT OCDU FAIL WILL GO ON
+		MASK	BIT7		# AGAIN IF IT WAS ON IN ADDITION TO
+		ADS	OPTMODES	# TRACKER FAIL.
+		
+REQ		RELINT
+		TC	Q
+		
+TRFAILON	INHINT
+		CS	DSPTAB	+11D	# TURN ON
+		MASK	OCT40200
+		ADS	DSPTAB +11D
+		TCF	REQ
+		
+
+
+
diff --git a/SINGLE_PRECISION_SUBROUTINES.s b/SINGLE_PRECISION_SUBROUTINES.s
new file mode 100644
index 0000000..28882ab
--- /dev/null
+++ b/SINGLE_PRECISION_SUBROUTINES.s
@@ -0,0 +1,74 @@
+# Copyright:	Public domain.
+# Filename:	SINGLE_PRECISION_SUBROUTINES.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:	1207
+# Mod history:	2009-05-13 RSB	Adapted 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 1207
+		BLOCK	02
+
+# SINGLE PRECISION SINE AND COSINE
+
+		COUNT	02/INTER
+		
+SPCOS		AD	HALF		# ARGUMENTS SCALED AT PI
+SPSIN		TS	TEMK
+		TCF	SPT
+		CS	TEMK
+SPT		DOUBLE
+		TS	TEMK
+		TCF	POLLEY
+		XCH	TEMK
+		INDEX	TEMK
+		AD 	LIMITS
+		COM
+		AD	TEMK
+		TS	TEMK
+		TCF	POLLEY
+		TCF	ARG90
+POLLEY		EXTEND
+		MP	TEMK
+		TS	SQ
+		EXTEND
+		MP	C5/2
+		AD	C3/2
+		EXTEND
+		MP	SQ
+		AD	C1/2
+		EXTEND
+		MP	TEMK
+		DDOUBL
+		TS	TEMK
+		TC	Q
+ARG90		INDEX	A
+		CS	LIMITS
+		TC	Q		# RESULT SCALED AT 1.
+		
+# SPROOT WAS DELETED IN REV 51 OF MASTER. ASS. CONT. HAS CARDS.
+
+
+
+
diff --git a/SPS_BACK-UP_RCS_CONTROL.s b/SPS_BACK-UP_RCS_CONTROL.s
new file mode 100644
index 0000000..0935a86
--- /dev/null
+++ b/SPS_BACK-UP_RCS_CONTROL.s
@@ -0,0 +1,196 @@
+# Copyright:	Public domain.
+# Filename:	SPS_BACK-UP_RCS_CONTROL.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	1507-1510
+# Mod history:	2009-05-27 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 1507
+# PROGRAM NAME:		SPSRCS
+# AUTHOR:		EDGAR M. OSHIKA (AC ELECTRONICS)
+# MODIFIED:		TO RETURN TO ALL AXES VIA Q BY P. S. WEISSMAN, OCT 7, 1968
+# MODIFIED TO IMPROVE BENDING STABILITY BY G. KALAN, FEB. 14, 1969
+#
+# FUNCTIONAL DESCRIPTION:
+#	THE PROGRAM CONTROLS THE FIRING OF ALL RCS JETS IN THE DOCKED CONFIGURATION ACCORDING TO THE FOLLOWING PHASE
+#	PLANE LOGIC.
+#
+#	1. JET SENSE TEST (SPSRCS)
+#		IF JETS ARE FIRING NEGATIVELY, SET OLDSENSE NEGATIVE AND CONTINUE
+#		IF JETS ARE FIRING POSITIVELY, SET OLDSENSE POSITIVE AND CONTINUE
+#		IF JETS ARE NOT FIRING, SET OLDSENSE TO ZERO AND GO TO OUTER RATE LIMIT TEST
+#
+# 	2. RATE DEAD BAND TEST
+#		IF JETS ARE FIRING NEGATIVELY AND RATE IS GREATER THAN TARGET RATE, LEAVE
+#			JETS ON AND GO TO INHIBITION LOGIC.  OTHERWISE, CONTINUE.
+#		IF JETS ARE FIRING POSITIVELY AND RATE IS   LESS  THAN TARGET RATE, LEAVE
+#			JETS ON AND GO TO INHIBITION LOGIC.  OTHERWISE, CONTINUE.
+#
+#	3. OUTER RATE LIMIT TEST (SPSSTART)
+#		IF MAGNITUDE OF EDOT IS GREATER THAN 1.73 DEG/SEC SET JET FIRING TIME
+#			TO REDUCE RATE AND GO TO INHIBITION LOGIC.  OTHERWISE, CONTINUE.
+#
+#	4. COAST ZONE TEST
+#		IF STATE (E,EDOT) IS BELOW LINE E + 4 X EDOT > -1.4 DEG AND EDOT IS LESS THAN 1.30 DEG/SEC SET JET TIME
+#		 	POSITIVE AND CONTINUE.  OTHERWISE, SET JET FIRING TIME TO ZERO AND CONTINUE.
+#		IF STATE IS ABOVE LINE E + 4 X EDOT > +1.4 DEG AND EDOT IS GREATER THAN -1.30 DEG/SEC, SET JET TIME NEGATIVE
+#		 	AND CONTINUE.  OTHERWISE, SET JET FIRING TIME TO ZERO AND CONTINUE.
+#
+#	5. INHIBITION LOGIC
+#		IF OLDSENSE IS NON-ZERO:
+#			A) RETURN IF JET TIME AS THE SAME SIGN AS OLDSENSE
+#			B) SET INHIBITION COUNTER* AND RETURN IF JET TIME IS ZERO
+#			C) SET INHIBITION COUNTER,* SET JET TIME TO ZERO AND RETURN IF SIGN
+#			   OF JET TIME IS OPPOSITE TO THAT OF OLDSENSE
+#		IF OLDSENSE IS ZERO:
+#			A) RETURN IF INHIBITION COUNTER IS NOT POSITIVE
+#			B) SET JET TIME TO ZERO AND RETURN IF INHIBITION COUNTER IS POSITIVE
+#		*NOTE: INHIBITION COUNTERS CAN BE SET TO 4 OR 10 FOR THE P AND UV AXES,
+#		RESPECTIVELY, IN SPSRCS.  THEY ARE DECREMENTED BY ONE AT THE BEGINNING OF
+# Page 1508
+#		EACH DAP PASS.
+#
+#	THE MINIMUM PULSE WIDTH OF THIS CONTROLLER IS DETERMINED BY THE REPETITION RATE AT WHICH THIS ROUTINE IS CALLED
+#	AND IS NOMINALLY 100 MS FOR ALL AXES IN DRIFTING FLIGHT.  DURING POWERED FLIGHT THE MINIMUM IS 100 MS FOR THE
+#	P AXIS AND 200 MS FOR THE CONTROL OF THE U AND V AXES.
+#
+# CALLING SEQUENCE:
+#		INHINT
+#		TC	IBNKCALL
+#		CADR	SPSRCE
+#
+# EXIT:
+#		TC	Q
+#
+# ALARM/ABORT MODE:	NONE
+#
+# SUBROUTINES CALLED:	NONE
+#
+# INPUT:		E, EDOT
+#			TJP, TJV, TJU		TJ MUST NOT BE NEGATIVE ZERO
+#
+# OUTPUT:		TJP, TJV, TJU
+
+		BANK	21
+		SETLOC	DAPS4
+		BANK
+
+		COUNT*	$$/DAPBU
+
+		EBANK=	TJU
+RATELIM2	OCT	00632		# 1.125 DEG/SEC
+POSTHRST	CA	HALF
+
+		NDX	AXISCTR
+		TS	TJU
+		CCS	OLDSENSE
+		TCF	POSCHECK	# JETS FIRING POSITIVELY
+		TCF	CTRCHECK	# JETS OFF.  CHECK INHIBITION CTR
+NEGCHECK	INDEX	AXISCTR		# JETS FIRING NEGATIVELY
+		CS	TJU
+		CCS	A
+		TC	Q		# RETURN
+		TCF	+2
+		TCF	+1		# JETS COMMANDED OFF.  SET CTR AND RETURN
+SETCTR		INDEX	AXISCTR		# JET FIRING REVERSAL COMMANDED.  SET CTR,
+		CA	UTIME		# SET JET TIME TO ZER, AND RETURN
+# Page 1509
+		INDEX	AXISCTR
+		TS	UJETCTR
+ZAPTJ		CA	ZERO
+		INDEX	AXISCTR
+		TS	TJU
+		TC	Q
+POSCHECK	INDEX	AXISCTR
+		CA	TJU
+		TCF	NEGCHECK +2
+CTRCHECK	INDEX	AXISCTR		# CHECK JET INHIBITION COUNTER
+		CCS	UJETCTR
+		TCF	+2
+		TC	Q		# CTR IS NOT POSITIVE.  RETURN
+		TCF	ZAPTJ		# CTR IS POSITIVE.  INHIBIT FIRINGS
+		TC	Q		# CTR IS NOT POSITIVE.  RETURN
+		OCT	00004
+UTIME		OCT	00012
+		OCT	00012
+OLDSENSE	EQUALS	DAPTREG1
+NEGFIRE		CS	ONE		# JETS FIRING NEGATIVELY
+		TS	OLDSENSE
+		CA	EDOT
+		TCF	+4
+PLUSFIRE	CA	ONE
+		TS	OLDSENSE
+		CS	EDOT		# RATE DEAD BAND TEST
+		LXCH	A
+		CS	DAPBOOLS	# IF DRIFTBIT = 1, USE ZERO TARGET RATE
+		MASK	DRIFTBIT	# IF DRIFTBIT = 0, USE 0.10 RATE TARGET
+		CCS	A
+		CA	RATEDB1
+		AD	L
+		EXTEND
+		BZMF	SPSSTART
+		TCF	POSTHRST +3
+
+SPSRCS		INDEX	AXISCTR		# JET SENSE TEST
+		CCS	TJU
+		TCF	PLUSFIRE	# JETS FIRING POSITIVELY
+		TCF	+2
+		TCF	NEGFIRE		# JETS FIRING NEGATIVELY
+		TS	OLDSENSE	# JETS OFF
+SPSSTART	CA	EDOT		# OUTER RATE LIMIT TEST
+		EXTEND
+		MP	RATELIM1
+		CCS	A
+		TCF	NEGTHRST	# OUTER RATE LIMIT EXCEEDED
+		TCF	+2
+		TCF	POSTHRST	# OUTER RATE LIMIT EXCEEDED
+		CA	EDOT		# COAST ZONE TEST
+# Page 1510
+		AD	E
+		EXTEND
+		MP	DKDB		# PAD LOADED DEADBAND.  FRESHSTART: 1.4 DEG
+		EXTEND
+		BZF	TJZERO
+
+		EXTEND
+		BZMF	+7
+		CA	EDOT
+		AD	RATELIM2
+		EXTEND
+		BZMF	TJZERO
+NEGTHRST	CS	HALF
+		TCF	POSTHRST +1
+	+7	CS	RATELIM2
+		AD	EDOT
+		EXTEND
+		BZMF	POSTHRST
+TJZERO		CA	ZERO
+		TCF	POSTHRST +1
+
+RATELIM1	=	CALLCODE	# = 00032, CORRESPONDING TO 1.73 DEG/SEC
+RATEDB1		=	TBUILDFX	# = 00045, CORRESPONDS TO 0.101 DEG/SEC
+
+# *** END OF LMDAP  .015 ***
+
+
diff --git a/STABLE_ORBIT.s b/STABLE_ORBIT.s
new file mode 100644
index 0000000..c1a21d5
--- /dev/null
+++ b/STABLE_ORBIT.s
@@ -0,0 +1,428 @@
+# Copyright:    Public domain.
+# Filename:     STABLE_ORBIT.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:      Hartmuth Gutsche <hgutsche@xplornet.com>.
+# Website:      www.ibiblio.org/apollo.
+# Pages:	525-532
+# Mod history:  2009-05-10 HG    Started adapting from the Colossus249/ file 
+#                of the same name, using Comanche055 page 
+#                images 0525.jpg - 0532.jpg. 
+#
+# 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 525
+# STABLE ORBIT RENDEZVOUS PROGRAMS (P38 AND P78)
+#
+# MOD NO -1		LOG SECTION - STABLE ORBIT - P38-P39
+# MOD BY RUDNICKI.S	DATE 25JAN68
+#
+# FUNCTIONAL DESCRIPTION
+#
+#	P38 AND P78 CALCULATE THE REQUIRED DELTA V AND OTHER INITIAL
+#	CONDITIONS REQUIRED BY THE AGC TO (1) PUT THE ACTIVE VEHICLE
+#	ON A TRANSFER TRAJECTORY THAT INTERCEPTS THE PASSIVE VEHICLE
+#	ORBIT A GIVEN DISTANCE, DELTA R, EITHER AHEAD OF OR BEHIND THE
+#	PASSIVE VEHICLE AND (2) ACTUALLY PLACE THE ACTIVE VEHICLE IN THE
+#	PASSIVE VEHICLE ORBIT WITH A DELTA R SEPARATION BETWEEN THE TWO
+#	VEHICLES
+#
+# CALLING SEQUENCE
+#
+#	ASTRONAUT REQUEST THRU DSKY
+#
+#	V37E38E		IF THIS VEHICLE IS ACTIVE VEHICLE
+#	V37E78E		IF OTHER VEHICLE IS ACTIVE VEHICLE
+#
+# INPUT
+#
+#	(1)	SOI MANEUVER
+#
+#		(A)  TIG	TIME OF SOI MANEUVER
+#		(B)  CENTANG	ORBITAL CENTRAL ANGLE OF THE PASSIVE VEHICLE
+#				DURING THE TRANSFER FROM TIG TO TIME OF INTERCEPT
+#		(C)  DELTAR	THE DESIRED SEPARATION OF THE TWO VEHICLES
+#				SPECIFIED AS A DISTANCE ALONG THE PASSIVE VEHICLE
+#				ORBIT
+#		(D)  OPTION	EQUALS 1 FOR SOI
+#
+#	(2)	SOR MANEUVER
+#
+#		(A)  TIG	TIME OF SOR MANEUVER
+#		(B)  CENTANG	AN OPTIONAL RESPECIFICATION OF 1 (B) ABOVE
+#		(C)  OPTION	EQUALS 2 FOR SOR
+#		(D)  DELTTIME	THE TIME REQUIRED TO TRAVERSE DELTA R WHEN
+#				TRAVELING AT A VELOCITY EQUAL TO THE HORIZONTAL
+#				VELOCITY OF THE PASSIVE VEHICLE - SAVED FROM
+#				SOI PHASE
+#		(E)  TINT	TIME OF INTERCEPT (SOI) - SAVED FROM SOI PHASE
+#
+# OUTPUT
+#
+#	(1)  TRKMKCNT	NUMBER OF MARKS
+#	(2)  TTOGO	TIME TO GO
+#	(3)  +MGA	MIDDLE GIMBAL ANGLE
+# Page 526
+#	(4)  DSPTEM1	TIME OF INTERCEPT OF PASSIVE VEHICLE ORBIT
+#			(FOR SOI ONLY)
+#	(5)  POSTTPI	PERIGEE ALTITUDE OF ACTIVE VEHICLE ORBIT AFTER
+#			THE SOI (SOR) MANEUVER
+#	(6)  DELVTPI	MAGNITUDE OF DELTA V AT SOI (SOR) TIME
+#	(7)  DELVTPF	MAGNITUDE OF DELTA V AT INTERCEPT TIME
+#	(8)  DELTA 	VELOCITY AT SOI (AND SOR) - LOCAL VERTICAL
+#			CORDINATES
+#
+# SUBROUTINES USED
+#
+#	AVFLAGA
+#	AVFLAGP
+#	VNDSPLY
+#	BANKCALL
+#	GOFLASHR
+#	GOTOP00H
+#	BLANKET
+#	ENDOFJOB
+#	PREC/TT
+#	SELECTMU
+#	INTRPVP
+#	MAINRTNE
+
+		BANK	04
+		SETLOC	STBLEORB
+		BANK
+		
+		EBANK=	SUBEXIT
+		COUNT*	$$/P3879
+		
+P38		TC	AVFLAGA         # THIS VEHICLE ACTIVE
+		TC      +2
+P78		TC	AVFLAGP         # OTHER VEHICLE ACTIVE
+		TC      P20FLGON        # SET UPDATFLG, TRACKFLG
+		CAF	V06N33SR	# DISPLAY TIG
+		TC	VNDSPLY
+		CAF	V06N55SR	# DISPLAY CENTANG
+		TCR	BANKCALL
+		CADR	GOFLASHR
+		TCF	GOTOP00H	# TERMINATE
+		TCF	+5		# PROCEED
+		TCF	-5		# RECYCLE
+		CAF	THREE		# IMMEDIATE RETURN -- BLANK R1, R2
+		TCR	BLANKET
+		TCF	ENDOFJOB
+		CAF	FIVE
+		TS	OPTION1
+		CAF	ONE
+		TS	OPTION2		# OPTION CODE IS SET TO 1
+# Page 527
+		CAF	V04N06SR	# DISPLAY OPTION CODE -1 = SOI, 2 = SOR
+		TCR	BANKCALL
+		CADR	GOFLASHR
+		TCF	GOTOP00H	# TERMINATE
+		TCF	+5		# PROCEED
+		TCF	-5		# RECYCLE
+		CAF	BIT3		# IMMEDIATE RETURN -- BLANK R3
+		TCR	BLANKET
+		TCF	ENDOFJOB
+		TC	INTPRET
+		SSP
+		        NN
+		        2
+		SLOAD   SR1
+			OPTION2
+		BHIZ	DLOAD
+			OPTN1
+			TINT
+		STORE	TINTSOI		# STORE FOR SOR PHASE
+		CLRGO
+			OPTNSW		# OPTNSW: ON = SOI. OFF = SOR
+			JUNCTN1
+OPTN1		SET	CLEAR		# SOI
+			OPTNSW
+			UPDATFLG
+		CALL
+			PREC/TT
+		SET	DAD
+			UPDATFLG
+			TIG
+		STORE	TINT		# TI = TIG + TF
+		STORE	DSPTEM1		# FOR DISPLAY
+		EXIT
+		CAF	V06N57SR	# DISPLAY DELTA R
+		TCR	BANKCALL
+		CADR	GOFLASHR
+		TCF	GOTOP00H	# TERMINATE
+		TCF	+5		# PROCEED
+		TCF	-5		# RECYCLE
+		CAF	SIX		# IMMEDIATE RETURN - BLANK R2, R3
+		TCR	BLANKET
+		TCF	ENDOFJOB
+		CAF	V06N34SR	# DISPLAY TIME OF INTERCEPT
+		TC	VNDSPLY
+		TC	INTPRET
+JUNCTN1		CLEAR	CALL
+			P39/79SW
+			SELECTMU	# SELECT MU, CLEAR FINALFLG, GO TO VN1645
+RECYCLE		CALL
+			PREC/TT
+# Page 528
+		BOFF	DLOAD
+			OPTNSW
+			OPTN2
+			TINT
+		STCALL	TDEC1		# PRECISION UPDATE PASSIVE VEHICLE TO
+			INTRPVP		# INTERCEPT TIME
+		VLOAD	UNIT
+			RATT		# RP/(RP)
+		PDVL	VXV
+			VATT
+		ABVAL	NORM		# (VP X RP/(RP))
+			X1
+		PDDL	DDV
+			DELTAR
+		SL*			# DELTA R / (VP X RP/RP)
+			0 -7,1
+		STCALL	DELTTIME	# DELTA T = (RP) DELTA R / (VP X RP)
+			JUNCTN2
+OPTN2		DLOAD	DAD
+			TINTSOI
+			T
+		STORE	TINT		# TI = TI + TF
+JUNCTN2		DLOAD	DSU
+			TINT
+			DELTTIME
+		STORE	TARGTIME	# TT = TI - DELTA T
+		
+# .... MAINRTNE ....
+#
+# SUBROUTINES USED
+#
+#	S3435.25
+#	PERIAPO1
+#	SHIFTR1
+#	VNDSPLY
+#	BANKCALL
+#	GOFLASH
+#	GOTOP00H
+#	VN1645
+
+MAINRTNE	STCALL	TDEC1		# PRECISION UPDATE PASSIVE VEHICLE TO
+			INTRPVP		#	TARGET TIME
+		DLOAD
+			TIG
+		STORE	INTIME
+		SSP	VLOAD
+			SUBEXIT
+			TEST3979
+			RATT
+		CALL
+			S3435.25
+TEST3979	BOFF	BON
+# Page 529
+			P39/79SW
+			MAINRTN1
+			FINALFLG
+			P39P79
+		SET
+			UPDATFLG
+P39P79		EXIT
+		TC	DSPLY81		# FOR P39 AND P79
+MAINRTN1	VLOAD	ABVAL
+			DELVEET3
+		STOVL	DELVTPI		# DELTA V
+			VPASS4
+		VSU	ABVAL
+			VTPRIME
+		STOVL	DELVTPF		# DELTA V (FINAL) = V-T - VT
+			RACT3
+		PDVL	CALL
+			VIPRIME
+			PERIAPO1	# GET PERIGEE ALTITUDE
+		CALL
+			SHIFTR1
+		STORE	POSTTPI
+		BON	SET
+			FINALFLG
+			DSPLY58
+			UPDATFLG
+DSPLY58		EXIT
+		CAF	V06N58SR	# DISPLAY HP, DELTA V, DELTA V (FINAL)
+		TC	VNDSPLY
+DSPLY81		CAF	V06N81SR	# DISPLAY DELTA V (LV)
+		TC	VNDSPLY
+		TC	INTPRET
+		CLEAR	VLOAD
+			XDELVFLG
+			DELVEET3
+		STCALL	DELVSIN
+			VN1645		# DISPLAY TRKMKCNT, TTOGO, +MGA
+		BON	GOTO
+			P39/79SW
+			P39/P79B
+			RECYCLE
+			
+# STABLE ORBIT MIDCOURSE PROGRAM (P39 AND P79)
+#
+# MOD NO -1		LOG SECTION - STABLE ORBIT - P38-P39
+# MOD BY RUDNICKI, S	DATE 25JAN68
+#
+# FUNCTIONAL DESCRIPTION
+#
+#	P39 AND P79 CALCULATE THE REQUIRED DELTA V AND OTHER INITIAL
+#	CONDITIONS REQUIRED BY THE AGC TO MAKE A MIDCOURSE CORRECTION
+# Page 530
+#	MANEUVER AFTER COMPLETING THE SOI MANEUVER BUT BEFORE MAKING
+#	THE SOR MANEUVER.
+#
+# CALLING SEQUENCE
+#
+#	ASTRONAUT REQUEST THRU DSKY
+#
+#	V37E39E		IF THIS VEHICLE IS ACTIVE VEHICLE
+#	V37E79E		IF OTHER VEHICLE IS ACTIVE VEHICLE
+#
+# INPUT
+#
+#	(1)  TPASS4	TIME OF INTERCEPT -- SAVED FROM P38/P78
+#	(2)  TARGTIME	TIME THAT PASSIVE VEHICLE IS AT INTERCEPT POINT --
+#			SAVED FROM P38/P78
+#
+# OUTPUT
+#
+#	(1)  TRKMKCNT	NUMBER OF MARKS
+#	(2)  TTOGO	TIME TO GO
+#	(3)  +MGA	MIDDLE GIMBAL ANGLE
+#	(4)  DELVLVC	DELTA VELOCITY AT MID -- LOCAL VERTICAL COORDINATES
+#
+# SUBROUTINES USED
+#
+#	AVFLAGA
+#	AVFLAGP
+#	LOADTIME
+#	SELECTMU
+#	PRECSET
+#	S34/35.1
+#	MAINRTNE
+
+P39		TC	AVFLAGA		# THIS VEHICLE ACTIVE
+		EXTEND
+		DCA	ATIGINC
+		TC	P39/P79A
+P79		TC	AVFLAGP		# OTHER VEHICLE ACTIVE
+		EXTEND
+		DCA	PTIGINC
+P39/P79A	DXCH	KT		# TIME TO PREPARE FOR BURN
+		TC	P20FLGON	# SET UPDATFLG, TRACKFLG
+		TC	INTPRET
+		SET	CALL
+			P39/79SW
+			SELECTMU	# SELECT MU, CLEAR FINALFLG, GO TO VN1645
+P39/P79B	RTB	DAD
+			LOADTIME
+			KT
+		STORE	TIG		# TIG = T (PRESENT) + PREPARATION TIME
+# Page531
+		STCALL	TDEC1		# PRECISION UPDATE ACTIVE AND PASSIVE
+			PRECSET		# 	VEHICLES TO TIG
+		CALL
+			S34/35.1	# GET UNIT NORMAL
+		DLOAD	GOTO
+			TARGTIME
+			MAINRTNE	# CALCULATE DELTA V AND DELTA V (LV)
+			
+# .... PREC/TT ....
+#
+# SUBROUTINES USED
+#
+#	PRECSET
+#	TIMETHET
+#	S34/35.1
+
+PREC/TT		STQ	DLOAD
+			RTRN
+			TIG
+		STCALL	TDEC1		# PRECISION UPDATE ACTIVE AND PASSIVE
+			PRECSET		#	VEHICLES TO TIG
+		VLOAD	VSR*
+			RPASS3
+			0,2
+		STODL	RVEC
+			CENTANG
+		PUSH	COS
+		STODL	CSTH
+		SIN	SET
+			RVSW
+		STOVL	SNTH
+			VPASS3
+		VSR*
+			0,2
+		STCALL	VVEC		# GET TRANSFER TIME BASED ON CENTANG OF
+			TIMETHET	#	PASSIVE VEHICLE
+		CALL
+			S34/35.1	# GET UNIT NORMAL
+		DLOAD	GOTO
+			T
+			RTRN
+			
+# .... INTRPVP ....
+#
+# SUBROUTINES USED
+#
+#	CSMPREC
+#	LEMPREC
+
+INTRPVP		STQ	BOFF		# PRECISION UPDATE PASSIVE VEHICLE TO
+			RTRN		#	TDEC1
+			AVFLAG
+			OTHERV
+		CALL
+# Page 532
+			CSMPREC
+		GOTO
+			RTRN
+OTHERV		CALL
+			LEMPREC
+		GOTO
+			RTRN
+			
+# .... VNDSPLY ....
+#
+# SUBROUTINES USED
+#
+#	BANKCALL
+#	GOFLASH
+#	GOTOP00H
+
+VNDSPLY		EXTEND			# FLASH DISPLAY
+		QXCH	RTRN
+		TS	VERBNOUN
+		CA	VERBNOUN
+		TCR	BANKCALL
+		CADR	GOFLASH
+		TCF	GOTOP00H	# TERMINATE
+		TC	RTRN		# PROCEED
+		TCF	-5		# RECYCLE
+V06N33SR	VN	0633
+V06N55SR	VN	0655
+V04N06SR	VN	0406
+V06N57SR	VN	0657
+V06N34SR	VN	0634
+V06N58SR	VN	0658
+V06N81SR	VN	0681
+
+# *** END OF COMEKISS.020 ***
diff --git a/STAR_TABLES.s b/STAR_TABLES.s
new file mode 100644
index 0000000..84012cc
--- /dev/null
+++ b/STAR_TABLES.s
@@ -0,0 +1,193 @@
+# Copyright:	Public domain.
+# Filename:	STAR_TABLES.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:	1389-1393
+# 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 1389
+		BANK	32
+		SETLOC	STARTAB
+		BANK
+		
+		COUNT	14/STARS
+		
+		2DEC	+.8342971408 B-1	# STAR 37	X
+		2DEC	-.2392481515 B-1	# STAR 37	Y
+		2DEC	-.4966976975 B-1	# STAR 37	Z
+				            
+		2DEC	+.8139832631 B-1	# STAR 36	X
+		2DEC	-.5557243189 B-1	# STAR 36	Y
+		2DEC	+.1691204557 B-1	# STAR 36	Z
+				            
+		2DEC	+.4541086270 B-1	# STAR 35	X
+		2DEC	-.5392368197 B-1	# STAR 35	Y
+		2DEC	+.7092312789 B-1	# STAR 35	Z
+				            
+		2DEC	+.3201817378 B-1	# STAR 34	X
+		2DEC	-.4436021946 B-1	# STAR 34	Y
+		2DEC	-.8370786986 B-1	# STAR 34	Z
+				            
+		2DEC	+.5520184464 B-1	# STAR 33	X
+		2DEC	-.7933187400 B-1	# STAR 33 	Y
+		2DEC	-.2567508745 B-1	# STAR 33	Z
+				            
+		2DEC	+.4537196908 B-1	# STAR 32	X
+		2DEC	-.8779508801 B-1	# STAR 32	Y
+		2DEC	+.1527766153 B-1	# STAR 32	Z
+				            
+		2DEC	+.2069525789 B-1	# STAR 31	X
+		2DEC	-.8719885748 B-1	# STAR 31	Y
+		2DEC	-.4436288486 B-1	# STAR 31	Z
+				            
+		2DEC	+.1217293692 B-1	# STAR 30	X
+# Page 1390		            
+		2DEC	-.7702732847 B-1	# STAR 30 	Y
+		2DEC	+.6259880410 B-1	# STAR 30	Z
+				            
+		2DEC	-.1124304773 B-1	# STAR 29	X
+		2DEC	-.9694934200 B-1	# STAR 29	Y
+		2DEC	+.2178116072 B-1	# STAR 29	Z
+				            
+		2DEC	-.1146237858 B-1	# STAR 28	X
+		2DEC	-.3399692557 B-1	# STAR 28 	Y
+		2DEC	-.9334250333 B-1	# STAR 28	Z
+				            
+		2DEC	-.3516499609 B-1	# STAR 27	X
+		2DEC	-.8240752703 B-1	# STAR 27	Y
+		2DEC	-.4441196390 B-1	# STAR 27	Z
+				            
+		2DEC	-.5326876930 B-1	# STAR 26	X
+		2DEC	-.7160644554 B-1	# STAR 26	Y
+		2DEC	+.4511047742 B-1	# STAR 26	Z
+				            
+		2DEC	-.7861763936 B-1	# STAR 25	X
+		2DEC	-.5217996305 B-1	# STAR 25	Y
+		2DEC	+.3311371675 B-1	# STAR 25	Z
+				            
+		2DEC	-.6898393233 B-1	# STAR 24	X
+		2DEC	-.4182330640 B-1	# STAR 24	Y
+		2DEC	-.5909338474 B-1	# STAR 24	Z
+				            
+		2DEC	-.5812035376 B-1	# STAR 23	X
+		2DEC	-.2909171294 B-1	# STAR 23	Y
+		2DEC	+.7599800468 B-1	# STAR 23 	Z
+				            
+		2DEC	-.9170097662 B-1	# STAR 22	X
+		2DEC	-.3502146628 B-1	# STAR 22	Y
+# Page 1391		            
+		2DEC	-.1908999176 B-1	# STAR 22	Z
+				            
+		2DEC	-.4523440203 B-1	# STAR 21	X
+		2DEC	-.0493710140 B-1	# STAR 21	Y
+		2DEC	-.8904759346 B-1	# STAR 21	Z
+				            
+		2DEC	-.9525211695 B-1	# STAR 20	X
+		2DEC	-.0593434796 B-1	# STAR 20	Y
+		2DEC	-.2986331746 B-1	# STAR 20	Z
+				            
+		2DEC	-.9656605484 B-1	# STAR 19	X
+		2DEC	+.0525933156 B-1	# STAR 19	Y
+		2DEC	+.2544280809 B-1	# STAR 19	Z
+				            
+		2DEC	-.8608205219 B-1	# STAR 18	X
+		2DEC	+.4636213989 B-1	# STAR 18	Y
+		2DEC	+.2098647835 B-1	# STAR 18	Z
+				            
+		2DEC	-.7742591356 B-1	# STAR 17	X
+		2DEC	+.6152504197 B-1	# STAR 17	Y
+		2DEC	-.1482892839 B-1	# STAR 17	Z
+				            
+		2DEC	-.4657947941 B-1	# STAR 16	X
+		2DEC	+.4774785033 B-1	# STAR 16	Y
+		2DEC	+.7450164351 B-1	# STAR 16	Z
+				            
+		2DEC	-.3612508532 B-1	# STAR 15	X
+		2DEC	+.5747270840 B-1	# STAR 15	Y
+		2DEC	-.7342932655 B-1	# STAR 15	Z
+				            
+		2DEC	-.4118589524 B-1	# STAR 14 	X
+		2DEC	+.9065485360 B-1	# STAR 14	Y
+		2DEC	+.0924226975 B-1	# STAR 14	Z
+				            
+# Page 1392		            
+		2DEC	-.1820751783 B-1	# STAR 13	X
+		2DEC	+.9404899869 B-1	# STAR 13	Y
+		2DEC	-.2869271926 B-1	# STAR 13	Z
+				            
+		2DEC	-.0614937230 B-1	# STAR 12 	X
+		2DEC	+.6031563286 B-1	# STAR 12	Y
+		2DEC	-.7952489957 B-1	# STAR 12	Z
+				            
+		2DEC	+.1371725575 B-1	# STAR 11	X
+		2DEC	+.6813721061 B-1	# STAR 11	Y
+		2DEC	+.7189685267 B-1	# STAR 11	Z
+				            
+		2DEC	+.2011399589 B-1	# STAR 10	X
+		2DEC	+.9690337941 B-1	# STAR 10	Y
+		2DEC	-.1432348512 B-1	# STAR 10	Z
+				            
+		2DEC	+.3507315038 B-1	# STAR 9	X
+		2DEC	+.8926333307 B-1	# STAR 9	Y
+		2DEC	+.2831839492 B-1	# STAR 9	Z
+				            
+		2DEC	+.4105636020 B-1	# STAR 8	X
+		2DEC	+.4988110001 B-1	# STAR 8	Y
+		2DEC	+.7632988371 B-1	# STAR 8	Z
+				            
+		2DEC 	+.7032235469 B-1	# STAR 7	X
+		2DEC	+.7075846047 B-1	# STAR 7	Y
+		2DEC	+.0692868685 B-1	# STAR 7	Z
+				            
+		2DEC	+.5450107404 B-1	# STAR 6	X
+		2DEC	+.5314955466 B-1	# STAR 6	Y
+		2DEC	-.6484410356 B-1	# STAR 6	Z
+				            
+		2DEC	+.0130968840 B-1	# STAR 5	X
+# Page 1393		            
+		2DEC	+.0078062795 B-1	# STAR 5	Y
+		2DEC	+.9998837600 B-1	# STAR 5	Z
+				            
+		2DEC	+.4917678276 B-1	# STAR 4	X
+		2DEC	+.2204887125 B-1	# STAR 4	Y
+		2DEC	-.8423473935 B-1	# STAR 4 	Z
+				            
+		2DEC	+.4775639450 B-1	# STAR 3	X
+		2DEC	+.1166004340 B-1	# STAR 3	Y
+		2DEC	+.8708254803 B-1	# STAR 3 	Z
+				            
+		2DEC	+.9342640400 B-1	# STAR 2	X
+		2DEC	+.1735073142 B-1	# STAR 2	Y
+		2DEC	-.3115219339 B-1	# STAR 2	Z
+				            
+		2DEC	+.8748658918 B-1	# STAR 1	X
+		2DEC	+.0260879174 B-1	# STAR 1	Y
+		2DEC	+.4836621670 B-1	# STAR 1	Z
+		
+CATLOG		DEC	6970
+		
+
+
diff --git a/SXTMARK.s b/SXTMARK.s
new file mode 100644
index 0000000..a6ad217
--- /dev/null
+++ b/SXTMARK.s
@@ -0,0 +1,702 @@
+# Copyright:	Public domain.
+# Filename:	SXTMARK.agc
+# Purpose:	Part of the source code for Comanche, build 055. It
+#		is part of the source code for the Command Module's
+#		(CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:	yaYUL
+# Reference:	pp. 222-235
+# Contact:	Ron Burkey <info@sandroid.org>,
+#  		Fabrizio Bernardini <fabrizio@spacecraft.it>
+# Website:	http://www.ibiblio.org/apollo.
+# Mod history:	16/05/09 FB	Transcription Batch 2 Assignment.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#	Assemble revision 055 of AGC program Comanche by NASA
+#	2021113-051.  April 1, 1969.  
+#
+#	This AGC program shall also be referred to as Colossus 2A
+#
+#	Prepared by
+#			Massachussets Institute of Technology
+#			75 Cambridge Parkway
+#			Cambridge, Massachusetts
+#
+#	under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 222
+# PROGRAM NAME:  SXTMARK					DATE:  5 APRIL 1967
+# PROGRAM MODIFIED BY 258/278 PROGRAMMERS			LOG SECTION SXTMARK
+# MOD BY: R. MELANSON TO ADD DOCUMENTATION			ASSEMBLY SUNDISK REV. 116
+# 
+# FUNCTIONAL DESCRIPTION:
+#
+#	SXTMARK IS CALLED FROM INTERNAL ROUTINES WHICH MAY REQUIRE STAR OR LANDMARK MARKINGS BY THE ASTRONAUT.  IF
+#	THE MARK SYSTEM IS NOT IN USE, SXTMARK RESERVES A VAC AREA FOR MARKING AND REQUESTS EXECUTION OF THE MKVB51
+#	ROUTINE VIA THE EXECUTIVE JOB PRIORITY LIST.  R21 USES THIS ROUTINE TO DETERMINE IF THE MARK SYSTEM CAN BE
+#	USED.  IF YES, SXTMARK RETURNS TO R21 TO PERFORM ITS OWN MARK REQUESTS VIA THE V51 FLASH.
+#
+# CALLING SEQUENCE:
+#
+#	CAF	(NO. MARK REQUESTS IN BITS 1-3 OF A)
+#	TC	BANKCALL
+#	CADR	SXTMARK
+#
+# NORMAL EXIT MODE:
+#
+#	SWRETURN
+#
+# ALARM OR ABORT EXIT MODE:
+#
+#	ABORT
+#
+# OUTPUT:
+#
+#	1)	MARKSTAT CONTAINS MARK VALUE (BITS 14-12) AND VAC AREA ADDRESS
+#	2)	QPRET = VAC AREA POINTER VALUE
+#	3)	1ST WORD OF RESERVED VAC AREA SET TO +0
+#	4)	PRIO32 PLACED IN A REGISTER
+#
+# ERASABLE INITIALIZATION:
+#
+#	1)	BITS 1-3 OF A = NO. MARKS REQUESTED
+#	2)	BITS 2,3 OF EXTVBACT = 0
+#	3)	A VAC AREA MUST BE AVAILABLE (WORD 1 = ADDRESS OF VAC AREA)
+#
+# DEBRIS:
+#
+#	A,Q,L,RUPTREG1,MARKSTAT,QPRET,BIT2 OF EXTVBACT
+
+		BANK	13
+		SETLOC	SXTMARKE
+		BANK
+		
+		EBANK=	MRKBUF1
+		COUNT	07/SXTMK
+		
+SXTMARK		INHINT
+		TS	RUPTREG1		# NUMBER OF MARKS WANTED
+		
+		CAF	SIX			# BIT2 = MARKING SYSTEM IN USE
+		MASK	EXTVBACT		# BIT3 = EXTENDED VERB IN PROGRESS
+		CCS	A
+		TC	MKABORT
+# Page 223
+		CAF	BIT2			# NOT SET
+		ADS	EXTVBACT		# SET IT, RESET IN ENDMARK
+		TC	MARKOK			# YES, FIND VAC AREA
+		
+MKABORT		TC	BAILOUT
+		OCT	01211
+MARKOK		CCS	VAC1USE			# FIND VAC AREA
+		TC	MKVACFND
+		CCS	VAC2USE
+		TC	MKVACFND
+		CCS	VAC3USE
+		TC	MKVACFND
+		CCS	VAC4USE
+		TC	MKVACFND
+		CCS	VAC5USE
+		TC	MKVACFND
+		TC	BAILOUT
+		OCT	01207
+		
+MKVACFND	AD	TWO			# ADDRESS OF VAC AREA
+		TS	MARKSTAT
+		INDEX	A
+		TS	QPRET			# STORE NEXT AVAILABLE MARK SLOT
+		
+		CAF	ZERO			# STORE VAC AREA OCCUPIED
+		INDEX	MARKSTAT
+		TS	0	-1
+		
+		TC	CHECKMM			# BACKUP MARK ROUTINE USES SXTMARK
+		MM	53
+		TCF	+2
+		TCF	SWRETURN
+		TC	CHECKMM
+		MM	54
+		TCF	+2
+		TCF	SWRETURN
+		CAF	BIT12			# DESIRED NUMBER OF MARKS IN 12-14
+		EXTEND
+		MP	RUPTREG1
+		XCH	L
+		ADS	MARKSTAT
+		
+		CAF	PRIO32			# ENTER MARK JOB
+		TC	NOVAC
+		EBANK=	MARKSTAT
+		2CADR	MKVB51
+		
+		RELINT
+		TCF	SWRETURN		# SAME AS MODEEXIT
+	
+# Page 224
+# PROGRAM NAME:  MKRELEAS					DATE:  5 APRIL 1967
+# PROGRAM MODIFIED BY 248/278 PROGRAMMERS			LOG SECTION SXTMARK
+# MOD BY:  R. MELANSON TO ADD DOCUMENTATION			ASSEMBLY SUNDISK REV. 116
+#
+# FUNCTIONAL DESCRIPTION:
+#
+#	MKRELEAS IS EXECUTED BY INTERNAL ROUTINES TO RELEASE THE MARK SYSTEM TO MAKE IT AVAILABLE TO OTHER INTERNAL
+#	SYSTEM ROUTINES.  IT ALSO CLEARS THE COARSE OPTICS FLAG BIT AND DISABLES THE OPTICS ERROR COUNTER.
+#
+# CALLING SEQUENCE:
+#
+#	TC	BANKCALL
+#	CADR	MKRELEAS
+#
+# NORMAL EXIT MODE:
+#
+#	SWRETURN
+#
+# ALARM OR EXIT MODE:  NONE
+#
+# OUTPUT:
+#
+#	1)	BIT9 OPTMODES SET TO 0
+#	2)	OPTIND SET TO -1
+#	3)	1ST WORD OF VAC AREA SET TO VAC ADDRESS TO SIGNIFY AVAILABILITY
+#	4)	MARKSTAT CLEARED
+#	5)	BIT2 CHANNEL 12 SET TO 0
+#
+# ERASABLE INITIALIZATION:  NONE
+#
+# DEBRIS:
+#
+#	A,MARKSTAT,BIT9,OPTMODES OPTIND,BIT2 CHANNEL 12
+
+MKRELEAS	CAF	ZERO			# SHOW MARK SYSTEM NOW AVAILABLE
+		XCH	MARKSTAT
+		MASK	LOW9
+		CCS	A
+		INDEX	A
+		TS	0
+MKRLEES		INHINT
+		CS	BIT9			# COARSE OPTICS RETURN FLAG.
+		MASK	OPTMODES
+		TS	OPTMODES
+		
+		CA	NEGONE
+		TS	OPTIND			# KILL COARSE OPTICS
+		
+		CS	BIT2			# DISABLE OPTICS ERROR COUNTER
+		EXTEND
+		WAND	CHAN12
+		
+		RELINT
+		TC	SWRETURN
+# Page 225
+# PROGRAM NAME:  MARKRUPT					DATE:  5 APRIL 1967
+# PROGRAM MODIFIED BY 258/278 PROGRAMMERS			LOG SECTION SXTMARK
+# MOD BY:  R. MELANSON TO ADD DOCUMENTATION			ASSEMBLY SUNDISK REV. 116
+#
+# FUNCTIONAL DESCRIPTION:
+#
+#	MARKRUPT STORES CDUS,OPTICS AND TIME AND TRANSFERS CONTROL TO THE MARKIT,MARK REJECT OR KEYCOM ROUTINES IF
+#	BITS IN CHANNEL 16 ARE SET AS REQUIRED.
+#
+# CALLING SEQUENCE:
+#
+#	ROUTINE ENTERED VIA KEYRUPT2 WHEN MARK,MARK REJECT OR DSKY KEYS DEPRESSED BY THE OPERATOR.
+#
+# NORMAL EXIT MODE:
+#
+#	MARKIT, MKREJECT, OR POSTJUMP ROUTINES (MARK, MARK REJECT, OR DSKY CODE)
+#
+# ALARM OR ABORT EXIT MODE:
+#
+#	ALARM AND RESUME
+#
+# OUTPUT:
+#
+#	RUPTSTOR+5 = CDUT, RUPTSTOR+3 = CDUS, RUPTSTOR+2 = CDUY,
+#	RUPTREG3 = CDUZ, RUPTSTOR+6 = CDUX, RUPTSTOR+1 AND SAMPTIME+1 = TIME1,
+#	RUPTSTOR AND SAMPTIME = TIME2
+#
+# ERASABLE INITIALIZATION:
+#
+#	CDUT,CDUS,CDUY,CDUZ,CDUX,TIME2,TIME1,CHANNEL 16 BITS 6,7 OR 1-5.
+#
+# DEBRIS:
+#
+#	A,QRUPT,RUPTREG3,SAMPTIME,SAMPTIME+1,RUPTSTOR TO RUPTSTOR+6 EXCEPT RUPTSTOR+4 (LOCATION 67)
+
+MARKRUPT	TS	BANKRUPT		# STORE CDUS AND OPTICS NOW
+		CA	CDUT
+		TS	MKCDUT
+		CA	CDUS
+		TS	MKCDUS
+		CA	CDUY
+		TS	MKCDUY
+		CA	CDUZ
+		TS	MKCDUZ
+		CA	CDUX
+		TS	MKCDUX
+		EXTEND
+		DCA	TIME2			# GET TIME
+		DXCH	MKT2T1
+		EXTEND
+		DCA	MKT2T1
+		DXCH	SAMPTIME		# RUPT TIME FOR NOUN 65.
+		
+		XCH	Q
+		TS	QRUPT
+		
+		CAF	BIT6			# SEE IF MARK OR MKREJECT
+# Page 226
+		EXTEND
+		RAND	NAVKEYIN
+		CCS	A
+		TC	MARKIT			# IT'S A MARK
+		
+		CAF	BIT7			# NOT A MARK, SEE IF MKREJECT
+		EXTEND
+		RAND	NAVKEYIN
+		CCS	A
+		TC	MKREJECT		# IT'S A MARK REJECT
+		
+KEYCALL		CAF	OCT37			# NOT MARK OR MKREJECT, SEE IF KEYCODE
+		EXTEND
+		RAND	NAVKEYIN
+		EXTEND
+		BZF	+3			# IF NO INBITS
+		TC	POSTJUMP
+		CADR	KEYCOM			# IT'S A KEY CODE, NOT A MARK.
+		
+	+3	TC	ALARM			# ALARM IF NO INBITS
+		OCT	113
+		TC	RESUME
+		
+# Page 227
+# PROGRAM NAME:  MARKCONT				DATE:  19 SEPT 1967
+# PROGRAM MODIFIED BY 258/278 PROGRAMMERS		LOG SECTION SXTMARK
+# MOD BY:  R. MELANSON TO ADD DOCUMENTATION		ASSEMBLY SUNDISK REV. 116
+#
+# FUNCTIONAL DESCRIPTION:
+#
+#	MARKCONT IS USED TO PERFORM A SPECIAL MARK FUNCTION FOR R21, TO EXECUTE A SPECIAL DISPLAY OF OPTICS AND TIME OR
+#	TO PERFORM A MARK OF THE STAR OR LAND SIGHTING BASED UPON FLASHING V-N.
+#
+# CALLING SEQUENCE:
+#
+#	FROM MARKDIF
+#
+# NORMAL EXIT MODE:
+#
+#	TASKOVER
+#
+# ALARM OR ABORT EXIT MODE:
+#
+#	ALARM AND TASKOVER
+#
+# OUTPUT:
+#
+#	1)	FOR R21:
+#		EBANK=EBANK7
+#		MRKBUF1 TO MRKBUF1+6 = TIME2,TIME1,CDUY,OPTICX,CDUZ,OPTICSY,CDUX OF CURRENT R21 MARK FUNCTION
+#		MRKBUF2 TO MRKBUF2+6 CONTAINS PREVIOUS R21 MARK VALUES.
+#	2)	FOR SPECIAL DISPLAY JOB:
+#		RUPTREG1 AND MRKBUF1 = CDUS,RUPTREG2, AND MRKBUF1+1 = CDUT.
+#		RUPTREG3 AND MRKBUF1+2 = TIME2,RUPTREG4, AND MRKBUF1+3 = TIME1.
+#	3)	FOR NORMAL MARKING:
+#		DECREMENT BITS14-12 OF MARKSTAT BY 1,
+#		BIT10 MARKSTAT SET TO 1, INCREMENT QPRET BY 7,
+#		STORE TIME2,TIME1,CDUY,CDUS,CDUZ,CDUT, AND CDUX IN VAC+1 TO VAC+7.
+#
+# ERASABLE INITIALIZATION:
+#
+#	1)	FOR R21:
+#		BIT14 OF STATE+2 =1, MRKBUF1 TO MRKBUF1+6, ITEMP1, RUPTREG3,
+#		RUPTSTOR TO RUPTSTOR+6 EXCEPT RUPTSTOR+4.
+#	2)	FOR SPECIAL DISPLAY JOB:
+#		BIT14 OF STATE+2 =0, MARKSTAT =+0, RUPTREG1,RUPTREG2,RUPTREG3
+#		RUPTREG4,RUPTSTOR,RUPTSTOR+1,RUPTSTOR+3,RUPTSTOR+5,
+#		BIT12 OF STATE+5 (V59 FLAG), MRKBUF1 THRU MRKBUF1+3
+#	3)	FOR NORMAL MARKING:
+#		BIT14 OF STATE+2 =0, MARKSTATE =VAC ADDRESS, A REG, ITEMP1, RUPTREG3,
+#		RUPTSTOR TO RUPTSTOR+6 EXCEPT RUPTSTOR+4.
+#
+# DEBRIS:
+#
+#	1)	FOR R21:
+#		A, ITEMP1, MRKBUF1, MRKBUF2
+#	2)	FOR SPECIAL DISPLAY JOB:
+#		A,RUPTREG1,RUPTREG2,RUPTREG3,RUPTREG4,MPAC TO MPAC+3.
+#	3)	FOR NORMAL MARKING:
+#		A,MARKSTAT,ITEMP1,QPRET,VAC+1 TO VAC+7 OF VAC AREA IN USE.
+
+# Page 228
+MARKCONT	CAF	BIT14
+		MASK	STATE	+2		# R21 MARK (SPECIAL MARKING FOR R21)
+		EXTEND
+		BZF	MARKET			# NOT SET THEREFORE REGULAR MARKING
+MARKIT1		CAF	SIX			# SPECIAL FOR R21
+		TC	GENTRAN			# TRANSFER MRKBUF1 TO MRKBUF2
+		ADRES	MRKBUF1
+		ADRES	MRKBUF2
+		
+		CAF	SIX			# TRANSFER CURRENT MARK DATE TO MARKBUF1
+		TC	GENTRAN
+		ADRES	MKT2T1
+		ADRES	MRKBUF1
+		
+		TCF	TASKOVER
+		
+MARKET		CCS	MARKSTAT		# SEE IF MARKS CALLED FOR
+		TC	MARK2			# COLLECT MARKS
+		
+		CAF	TWO			# IS MARKING SYSTEM IN USE (BIT2)
+		MASK	EXTVBACT
+		EXTEND
+		BZF	MARKET3			# MARKING NOT CALLED FOR
+		CAF	BIT12
+		MASK	STATE	+5		# V59FLAG
+		EXTEND
+		BZF	MARKET3			# IF V59FLAG NOT SET-MARK UNCALLED FOR
+		CAF	PRIO5			# CALIBRATION MARK (SET) FOR P23
+		TC	NOVAC			# SPECIAL DISPLAY JOB
+		EBANK=	MRKBUF1
+		2CADR	MARKDISP
+		
+		CAF	SIX
+		TC	GENTRAN			# TRANSFER MARK DATE TO MARKDOWN
+		ADRES	MKT2T1
+		ADRES	MARKDOWN
+		CAF	SIX
+		TC	GENTRAN			# TRANSFER MARK DATA TO MRKBUF1 FOR
+		ADRES	MKT2T1			# SPECIAL DISPLAY OF SHAFT AND TRUNNION
+		ADRES	MRKBUF1			# IF V59 ACTING
+		TCF	TASKOVER
+MARKET3		TC	ALARM
+		OCT	122			# MARKING NOT CALLED FOR
+		TCF	TASKOVER
+114ALM		TC	ALARM			# MARK NOT WANTED
+		OCT	114
+		TCF	TASKOVER
+		
+# Page 229
+# STORE MARK DATA IN MKVAC AND INCREMENT POINTER
+
+MARK2		AD	74K			# SEE IF MARKS WANTED-REDUCE MARKS WANTED
+		EXTEND
+		BZMF	114ALM			# MARK NOT WANTED-ALARM
+		TS	MARKSTAT
+		COM
+		MASK	BIT10			# SET BIT10 TO ENABLE REJECT
+		ADS	MARKSTAT
+		
+		MASK	LOW9
+		TS	ITEMP1
+		INDEX	A
+		XCH	QPRET			# PICK UP MARK SLOT-POINTER
+		TS	ITEMP2			# SAVE CURRENT POINTER
+		AD	SEVEN			# INCREMENT POINTER
+		INDEX	ITEMP1
+		TS	QPRET			# STORE ADVANCED POINTER
+		
+VACSTOR		EXTEND
+		DCA	MKT2T1
+		INDEX	ITEMP2
+		DXCH	0
+		CA	MKCDUY
+		INDEX	ITEMP2
+		TS	2
+		CA	MKCDUS
+		INDEX	ITEMP2
+		TS	3
+		CA	MKCDUZ
+		INDEX	ITEMP2
+		TS	4
+		CA	MKCDUT
+		INDEX	ITEMP2
+		TS	5
+		CA	MKCDUX
+		INDEX	ITEMP2
+		TS	6
+		
+		CAF	PRIO34			# IF ALL MARKS MADE FLASH VB50
+		MASK	MARKSTAT
+		EXTEND
+		BZF	+2
+		TCF	TASKOVER
+		CAF	PRIO32
+		TC	NOVAC
+		EBANK=	MARKSTAT
+		2CADR	MKVB50
+		
+		TCF	TASKOVER
+		
+# Page 230
+# PROGRAM NAME:  MKREJECT					DATE:  5 APRIL 1967
+# PROGRAM MODIFIED BY 258/276 PROGRAMMERS			LOG SECTION SXTMARK
+# MOD BY:  R. MELANSON TO ADD DOCUMENTATION			ASSEMBLY SUNDISK REV. 116
+#
+# FUNCTIONAL DESCRIPTION:
+#
+#	ROUTINE ALLOWS OPEATOR TO REJECT MARK MADE PRIOR TO ACCEPTANCE AND ALLOWS A NEW MARK TO BE MADE BY ASTRONAUT.
+#
+# CALLING SEQUENCE:
+#
+#	FROM MARKRUPT IF BIT7 OF CHANNEL 16 IS 1.
+#
+# NORMAL EXIT MODE:
+#
+#	RESUME
+#
+# ALARM OR ABORT EXIT MODE:
+#
+#	ALARM AND RESUME
+#
+# OUTPUT:
+#
+#	1)	FOR R21:
+#		MRKRUP1 SET TO -1
+#	2)	FOR NORMAL MARKING:
+#		BIT10 MARKSTAT =0, INCREMENT NO. MARKS BY 1, DECREMENT QPRET BY 7
+#
+# ERASABLE INITIALIZATION:
+#
+#	1)	FOR R21:
+#		BIT14 OF STATE+2 SET TO 1
+#	2)	FOR NORMAL MARKING:
+#		BIT14 OF STATE+2 SET TO 0, MARKSTAT,QPRET
+#
+# DEBRIS:
+#
+#	1)	FOR R21:
+#		A,MARKSTAT,EBANK
+#	2)	FOR NORMAL MARKING:
+#		A,MARKSTAT,ITEMP1,QPRET
+
+MKREJECT	CAF	BIT14
+		MASK	STATE	+2		# R21 MARK (SPECIAL MARKING FOR R21)
+		EXTEND
+		BZF	MRKREJCT		# NOT SET THEREFORE REGULAR REJECT
+		CA	NEGONE			# -1 (FOR R22)
+		TS	MRKBUF1			# -0 IN TIME IS FLAG TO R22 SIGNIFYING A
+		TC	RESUME			# REJECTED MARK
+MRKREJCT	CCS	MARKSTAT		# SEE IF MARKS BEING ACCEPTED
+		TC	REJECT2
+		TC	ALARM			# MARKS NOT BEING ACCEPTED
+		OCT	112
+		TC	RESUME
+		
+REJECT2		CS	BIT10			# SEE IF MARK HAD BEEN MADE SINCE LAST
+		MASK	MARKSTAT		# REJECT, AND SET BIT10 TO ZERO TO
+		XCH	MARKSTAT		# SHOW MARK REJECT
+# Page 231
+		MASK	BIT10
+		CCS	A
+		TC	REJECT3
+		
+		TC	ALARM			# DON'T ACCEPT TWO REJECTS TOGETHER
+		OCT	110
+		TC	RESUME
+		
+REJECT3		CAF	LOW9			# DECREMENT POINTER TO REJECT MARK
+		MASK	MARKSTAT
+		TS	ITEMP1
+		CS	SEVEN
+		INDEX	ITEMP1
+		ADS	QPRET			# NEW POINTER
+		
+		CAF	BIT12			# INCREMENT MARKS WANTED AND IF FIELD
+		AD	MARKSTAT		# IS NOW NON-ZERO, CHANGE TO VB51 TO
+		XCH	MARKSTAT		# INDICATE MORE MARKS WANTED
+		MASK	PRIO34			# INDICATE MORE MARKS WANTED
+		CCS	A
+		TC	RESUME
+		CAF	PRIO32
+		TC	NOVAC
+		EBANK=	MARKSTAT
+		2CADR	MKVB51
+		
+		TC	RESUME
+		
+# Page 232
+# PROGRAM DESCRIPTON MKVB51 AND MKVB50
+#
+# AUTHOR: 	BARNERT		DATE: 2-15-67		MOD: 0
+# PURPOSE:	FLASH V51N70,V51N43, OR V51 TO REQUEST MARKING,
+#		AND V50N25 R1=16 TO REQUEST TERMINATE MARKING.
+#
+# CALLING SEQUENCE:	AS JOB WITHIN SXTMARK
+#
+# EXIT TO ENDMARK UPON RECEIPT OF V33, V34 CAUSES GOTOP00H, ENTER
+#	RECYCLES THE DISPLAY
+#
+# NOTE:	SXTMARK AUTOMATICALLY CHANGES FROM CALLING MKVB51 TO MKVB50 WHEN
+#	SUFFICIENT MARKS HAVE BEEN MADE, AND THE REVERSE WHEN A MARK
+#	REJECT REDUCES THE NUMBER MADE BELOW THAT REQUIRED
+#
+# SUBROUTINES CALLED:  BANKCALL, GOMARK2, GOODEND, ENDMARK, WAITLIST
+#
+# ALARM OR ABORT MODES:  NONE
+#
+# ERASABLE USED:  VERBREG, MARKSTAT, QPRET, DSPTEM1
+#
+# OUTPUT MARKSTAT = VAC ADDRESS
+
+# QPRET = NO. MARKS
+
+MKVB51		TC	BANKCALL		# CLEAR DISPLAY FOR MARK VERB
+		CADR	KLEENEX
+		CAF	VB51			# DISPLAY MARK VB51
+		TC	BANKCALL
+		CADR	GOMARK4
+		TCF	TERMSXT			# VB34-TERMINATE
+		TCF	ENTANSWR		# V33-PROCEED-MARKING DONE
+		TCF	MKVB5X			# ENTER-RECYCLE TO INITIAL MARK DISPLAY
+		
+TERMSXT		TC	CLEARMRK		# CLEAR MARK ACTIVITY.
+
+		TC	CHECKMM
+		MM	03
+		TCF	+2
+		TC	TERMP03
+		TC	POSTJUMP
+		CADR	TERM52
+		
+TERMP03		TC	UPFLAG
+		ADRES	TRM03FLG
+ENTANSWR	CAF	LOW9			# PUT VAC ADR IN MARKSTAT AND NO. OF
+		MASK	MARKSTAT		# MARKS MADE IN QPRET BEFORE LEAVING
+		TS	MARKSTAT		# SXTMARK
+		COM
+		INDEX	MARKSTAT
+		AD	QPRET
+# Page 233
+		EXTEND
+		BZMF	JAMIT			# NO MARKS MADE, SHOW IT IN QPRET, R53
+		EXTEND				#	WILL PICK IT UP AND RECYCLE
+		MP	BIT12			# THIS PUTS NUMBER MARKS-1 IN A
+		AD	ONE
+JAMIT		INDEX	MARKSTAT		# STORE NO OF MARKS MADE
+		TS	QPRET
+		INHINT				# SERVICE OPTSTALL INTERFACE WITH
+		CAF	FIVE
+		TC	WAITLIST
+		EBANK=	MARKSTAT
+		2CADR	ENDMARKS
+		
+		TC	ENDMARK			# KNOCKS DOWN MARKING FLAG + DOES ENDOFJOB
+		
+ENDMARKS	CAF	ONE
+		TC	IBNKCALL
+		CADR	GOODEND
+MKVB5X		CAF	PRIO34
+		MASK	MARKSTAT		# RE-DISPLAY VB51 IF MORE MARKS WANTED
+		CCS	A			# AND VB50 IF ALL IN
+		TCF	MKVB51			
+MKVB50		CAF	R1D1			# OCT 16
+		TS	DSPTEM1
+		CAF	V50N25
+		TCF	MKVB51	+3
+		
+V50N25		VN	5025
+VB51		VN	5100
+OCT37		=	LOW5
+
+# PROGRAM NAME:  MARKIT				DATE: 19 SEPT 1967
+#
+# CALLING SEQUENCE:
+#
+#	FROM MARKRUPT IF CHAN 16 BIT 6 = 1
+#
+# EXIT
+#
+#	RESUME
+#
+# INPUT
+#
+#	CDUCHKWD.  ALSO ALL INITIALIZATION FOR MARKCONT
+#
+# OUTPUT
+#
+#	MKT2T1,MKCDUX,MKCDUY,MKCDUZ,MKCDUS,MKCDUT
+#
+# ALARM EXIT
+#
+#	NONE
+
+MARKIT		CCS	CDUCHKWD
+		TCF	+3			# DELAY OF CDUCHKWD CS IF PNZ
+# Page 234
+		TCF	+2
+		CAF	ZERO
+		AD	ONE			# 10 MS IF NO CHECK
+		TC	WAITLIST
+		EBANK=	MRKBUF1
+		2CADR	MARKDIF
+		
+		TCF	RESUME
+		
+		SETLOC	SXTMARK1
+		BANK
+		
+		COUNT	20/SXTMK
+		
+# PROGRAM NAME:  MARKDIF
+#
+# CALLING SEQUENCE
+#
+#	WAITLIST FROM MARKIT
+#
+# EXIT
+#
+#	TASKOVER TO IBNKCALL TO MARKCONT
+#
+# INPUT
+#
+# 	OUTPUT FROM MARKIT, INPUT TO MARKCONT, CDUCHKWD
+#
+# OUTPUT
+#
+#	RUPTSTOR - RUPTSTOR+3, RUPTREG3, RUPTSTOR+5 - RUPTSTOR+6
+#
+# ALARM EXIT
+#
+#	ALARM AND TASKOVER
+
+MARKDIF		CA	CDUCHKWD		# IF DELAY CHECK IS ZERO OR NEG, ACP MARK
+		EXTEND
+		BZMF	MKACPT
+		CS	BIT1
+		TS	MKNDX			# SET INDEX -1
+		CA	MKCDUX
+		TC	DIFCHK			# SEE IF VEHICLE RATE TO MUCH AT MARK
+		CA	MKCDUY
+		TC	DIFCHK
+		CA	MKCDUZ
+		TC	DIFCHK
+		
+MKACPT		TC	IBNKCALL
+		CADR	MARKCONT		# MARK DATA OK, WHAT DO WE DO WITH IT
+		
+DIFCHK		INCR	MKNDX			# INCREMENT INDEX
+
+		EXTEND
+		INDEX	MKNDX
+# Page 235
+		MSU	CDUX			# GET MARK(ICDU) - CURRENT(ICDU)
+		CCS	A
+		TCF	+4
+		TC	Q
+		TCF	+2
+		TC	Q
+		AD	NEG2			# SEE IF DIFFERENCE GREATER THAN 3 BITS
+		EXTEND
+		BZMF	-3			# NOT GREATER
+		
+		TC	ALARM			# COUPLED WITH PROGRAM ALARM
+		OCT	00121
+		
+		TCF	TASKOVER		# DO NOT ACCEPT
+		
+
diff --git a/SYSTEM_TEST_STANDARD_LEAD_INS.s b/SYSTEM_TEST_STANDARD_LEAD_INS.s
new file mode 100644
index 0000000..a92f944
--- /dev/null
+++ b/SYSTEM_TEST_STANDARD_LEAD_INS.s
@@ -0,0 +1,147 @@
+# Copyright:	Public domain.
+# Filename:	SYSTEM_TEST_STANDARD_LEAD_INS.agc
+# Purpose:	Part of the source code for Comanche, build 055.
+#		It is part of the source code for the Command Module's (CM)
+#		Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:	yaYUL
+# Reference:	pp. 420-422
+# Contact:	Onno Hommes <ohommes@cmu.edu>.
+# Website:	www.ibiblio.org/apollo.
+# Mod history:	05/07/09 OH	Transcription Batch 1 Assignment 
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#	Assemble revision 055 of AGC program Comanche by NASA
+#	2021113-051.  April 1, 1969.  
+#
+#	This AGC program shall also be referred to as Colossus 2A
+#
+#	Prepared by
+#			Massachussets Institute of Technology
+#			75 Cambridge Parkway
+#			Cambridge, Massachusetts
+#
+#	under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further information.
+# Please report any errors to info@sandroid.org.
+
+
+# Page 420
+		EBANK=	XSM
+		
+		BANK	33
+		SETLOC	E/PROG1
+		BANK
+		
+		COUNT*	$$/P07
+		
+# SPECIAL PROGRAMS TO EASE THE PANGS OF ERASABLE MEMORY PROGRAMS.
+#
+# E/BKCALL	FOR DOING BANKCALLS FROM AND RETURNING TO ERASABLE.
+#
+# THIS ROUTINE IS CALLABLE FROM ERASABLE OR FIXED.  LIKE BANKCALL, HOWEVER, SWITCHING BETWEEN S3 AND S4
+# IS NOT POSSIBLE.
+#
+# THE CALLING SEQUENCE IS:
+#
+#	TC	BANKCALL
+#	CADR	E/BKCALL
+#	CADR	ROUTINE		# WHERE TO WANT TO GO IN FIXED.
+#	RETURN HERE FROM DISPLAY TERMINATE, BAD STALL OR TC Q.
+#	RETURN HERE FROM DISPLAY PROCEED OR GOOD RETURN FROM STALL.
+#	RETURN HERE FROM DISPLAY ENTER OR RECYCLE.
+#
+# THIS ROUTINE REQUIRES TWO ERASABLES (EBUF2, +1) IN UNSWITCHED WHICH ARE UNSHARED BY INTERRUPTS AND
+# OTHER EMEMORY PROGRAMS.
+#
+# A + L ARE PRESERVED THROUGH BANKCALL AND E/BKCALL.
+
+E/BKCALL	DXCH	BUF2		# SAVE A,L AND GET DP RETURN.
+		DXCH	EBUF2		# SAVE DP RETURN.
+		INCR	EBUF2		# RETURN +1 BECAUSE DOUBLE CADR.
+		CA	BBANK
+		MASK	LOW10		# GET CURRENT EBANK.  (SBANK SOMEDAY)
+		ADS	EBUF2	+1	# FORM BBCON.  (WAS FBANK)
+		NDX	EBUF2
+		CA	0 -1		# GET CADR OF ROUTINE.
+		TC	SWCALL		# GO TO ROUTINE, SETTING Q TO SWRETURN
+					# AND RESTORING A + L.
+		TC	+4		# TX Q, V34, OR BADD STALL RETURN.
+		TC	+2		# PROCEED OR GOOD STALL RETURN.
+		INCR	EBUF2		# ENTER OR RECYCLE RETURN.
+		INCR	EBUF2
+E/SWITCH	DXCH	EBUF2
+		DTCB
+		
+# Page 421
+# E/CALL	FOR CALLING A FIXED MEMORY INTERPRETIVE SUBROUTINE FROM ERASABLE AND RETURNING TO ERASABLE.
+#
+# THE CALLING SEQUENCE IS...
+#
+#	RTB
+#		E/CALL
+#	CADR	ROUTINE			# THE INTERPRETIVE SUBROUTINE YOU WANT
+#					# RETURNS HERE IN INTERPRETIVE.
+	
+E/CALL		LXCH	LOC		# ADRES -1 OF CADR.
+		INDEX	L
+		CA	L		# CADR IN A.
+		INCR	L
+		INCR	L		# RETURN ADRES IN L.
+		DXCH	EBUF2		# STORE CADR AND RETURN.
+		TC	INTPRET
+		CALL
+			EBUF2		# INDIRECTLY EXECUTE ROUTING.  IT MUST
+		EXIT			# LEAVE VIA RVQ OR EQUIVALENT.
+		LXCH	EBUF2 +1	# PICK UP RETURN.
+		TCF	INTPRET +2	# SET LOC AND RETURN TO CALLER.
+		
+# Page 422
+# E/JOBWAK	FOR WAKING UP ERASABLE MEMORY JOBS.
+#
+# THIS ROUTINE MUST BE CALLED IN INTERRUPT OR WITH INTERRUPTS INHIBITED.
+#
+# THE CALLING SEQUENCE IS
+#
+#	INHINT
+#	...
+#	CA	WAKEADR		# ADDRESS OF SLEEPING JOB
+#	TC	IBNKCALL
+#	CADR	E/JOBWAK
+#	...			# RETURNS HERE
+#	RELINT			# IF YOU DID AND INHINT
+
+		BANK	33
+		SETLOC	E/PROG
+		BANK
+		
+		COUNT*	 $$/P07
+		
+E/JOBWAK	TC	JOBWAKE		# ARRIVE IWTH ADRES IN A.
+		CS	BIT11
+		NDX	LOCCTR
+		ADS	LOC		# KNOCK FIXED MEMORY BIT OUT OF ADRES.
+		TC	RUPTREG3	# RETURN
+		
+		
+# THESE PROGRAMS ARE PROVIDED TO ALLOW OVERLAY OF BANKS 30 THRU 33 OF THE 205 VERSIONS OF SYSTEM TESTS AND
+# PRELAUNCH ALIGN.  THE INTENT IS TO ALLOW THE STG AND HYBRID LABS TO RUN ALL THE TESTS WITH COLOSSUS.
+
+
+		BANK	33
+		SETLOC	TESTLEAD
+		BANK
+		
+		COUNT	33/COMST
+		
+		EBANK=	QPLACE
+		
+COMPVER		TC	GCOMPVER	# MUST BE 33,2000.
+
+GTSCPSS1	TC	GTSCPSS		# MUST BE AT 33,2001
+
+REDO		TC	NEWMODEX	# DISPLAY MM 07.
+		MM	07		# FALL INTO IMUTEST
+		
diff --git a/T4RUPT_PROGRAM.s b/T4RUPT_PROGRAM.s
new file mode 100644
index 0000000..e36a18d
--- /dev/null
+++ b/T4RUPT_PROGRAM.s
@@ -0,0 +1,1467 @@
+# Copyright:	Public domain.
+# Filename:	T4RUPT_PROGRAM.agc
+# Purpose:	Part of the source code for Comanche, build 055.
+#		It is part of the source code for the Command Module's (CM)
+#		Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:	yaYUL
+# Reference:	pp. 133-169
+# Contact:	Ron Burkey <info@sandroid.org>,
+#  		Fabrizio Bernardini <fabrizio@spacecraft.it>
+# Website:	http://www.ibiblio.org/apollo.
+# Mod history:	10/05/09 FB	Transcription of Batch FB-1 Assignment.
+#
+# The contents of the "Comanche055" files, in general, are transcribed
+# from scanned documents.
+#
+#	Assemble revision 055 of AGC program Comanche by NASA
+#	2021113-051.  April 1, 1969.
+#
+#	This AGC program shall also be referred to as Colossus 2A
+#
+#	Prepared by
+#			Massachussets Institute of Technology
+#			75 Cambridge Parkway
+#			Cambridge, Massachusetts
+#
+#	under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 133
+		BANK	12
+		SETLOC	T4RUP
+		BANK
+
+		COUNT	06/T4RPT
+
+T4RUPT		TS	BANKRUPT
+		EXTEND
+		QXCH	QRUPT
+
+		CCS	DSRUPTSW	# GOES 7(-1)0 AROUND AND AROUND
+		TCF	NORMT4 +1
+		TCF	NORMT4
+
+		TCF	QUIKDSP
+
+NORMT4		CAF	SEVEN
+		TS	RUPTREG1
+		TS	DSRUPTSW
+
+		COUNT	02/T4RPT
+
+74K		=	HIGH4
+
+# RELTAB IS A PACKED TABLE. RELAYWORD CODE IN UPPER 4 BITS, RELAY CODE
+# IN LOWER 5 BITS.
+
+		BLOCK	02
+		SETLOC	FFTAG12
+		BANK
+
+RELTAB		OCT	04025
+		OCT	10003
+		OCT	14031
+		OCT	20033
+		OCT	24017
+		OCT	30036
+		OCT	34034
+		OCT	40023
+		OCT	44035
+		OCT	50037
+		OCT	54000
+RELTAB11	OCT	60000
+
+# Page 134
+# SWITCHED-BANK PORTION
+
+		BANK	12
+		SETLOC	T4RUP
+		BANK
+
+		COUNT	06/T4RPT
+
+CDRVE		CCS	DSPTAB +11D
+		TC	DSPOUT
+		TC	DSPOUT
+
+		XCH	DSPTAB +11D
+		MASK	LOW11
+		TS	DSPTAB +11D
+		AD	RELTAB11
+		EXTEND
+		WRITE	OUT0
+		TC	HANG20
+
+# Page 135
+# DSPOUT PROGRAM, PUTS OUT DISPLAYS
+
+DSPOUTSB	TS	NOUT
+		CS	ZERO
+		TS	DSRUPTEM	# SET TO -0 FOR 1ST PASS THRU DSPTAB
+		XCH	DSPCNT
+		AD	NEG0		# TO PREVENT +0
+		TS	DSPCNT
+DSPSCAN		INDEX	DSPCNT
+		CCS	DSPTAB
+		CCS	DSPCNT		# IF DSPTAB ENTRY +, SKIP
+		TCF	DSPSCAN	-2	# IF DSPCNT +, AGAIN
+		TCF	DSPLAY		# IF DSPTAB ENTRY -, DISPLAY
+TABLNTH		OCT	12		# DEC 10 LENGTH OF DSPTAB
+		CCS	DSRUPTEM	# IF DSRUPTEM=+0, 2ND PASS THRU DSPTAB
+120MRUPT	DEC	16372		# (DSPCNT = 0).  +0 INTO NOUT.
+		TS	NOUT
+		TC	Q
+		TS	DSRUPTEM	# IF DSRUPTEM=-0, 1ST PASS THRU DSPTAB
+		CAF	TABLNTH		# (DSPCNT=0).+0 INTO DSRUPTEM. PASS AGAIN
+		TCF	DSPSCAN -1
+
+DSPLAY		AD	ONE
+		INDEX	DSPCNT
+		TS	DSPTAB		# REPLACE POSITIVELY
+		MASK	LOW11		# REMOVE BITS 12 TO 15
+		TS	DSRUPTEM
+		CAF	HI5
+		INDEX	DSPCNT
+		MASK	RELTAB		# PICK UP BITS 12 TO 15 OF RELTAB ENTRY
+		AD	DSRUPTEM
+		EXTEND
+		WRITE	OUT0		# WRITE CHANNEL 10
+		TCF	Q+1		# *** NORMAL RETURN SKIPS ONE
+
+DSPOUT		CCS	FLAGWRD5	# DON'T DISPLAY UNLESS DSKY FLAG ON
+		CAF	ZERO
+		TCF	NODSPOUT
+		CCS	NOUT
+		TC	DSPOUTSB
+		TCF	NODSPOUT	# NO DISPLAY REQUESTS
+
+HANG20		CS	11,14,9
+		ADS	DSRUPTSW
+
+		CAF	20MRUPT
+
+SETTIME4	TS	TIME4
+
+# Page 136
+# THE STATUS OF THE PROCEED PUSHBUTTON IS MONITORED EVERY 120 MILLISECONDS VIA THE CHANNEL 32 BIT 14 INBIT.
+# THE STATE OF THIS INBIT IS COMPARED WITH ITS STATE DURING THE PREVIOUS T4RUPT AND IS PROCESSED AS FOLLOWS.
+#	IF PREV ON AND NOW ON 	-- BYPASS
+#	IF PREV ON AND NOW OFF	-- UPDATE IMODES33
+#	IF PREV OFF AND NOW ON	-- UPDATE IMODES33 AND PROCESS VIA PINBALL
+#	IF PREV OFF AND NOW OFF	-- BYPASS
+# THE LOGIC EMPLOYED REQUIRES ONLY 9 MCT (APPROX. 108 MICROSECONDS) OF COMPUTER TIME WHEN NO CHANGES OCCUR.
+
+PROCEEDE	CA	IMODES33	# MONITOR FOR PROCEED BUTTON
+		EXTEND
+		RXOR	CHAN32		# CHECK IF BIT 14 DIFFERENT
+		MASK	BIT14
+		EXTEND
+		BZF	T4JUMP		# NO CHANGE
+
+		LXCH	IMODES33
+		EXTEND
+		RXOR	LCHAN
+		TS	IMODES33	# UPDATE IMODES33
+		MASK	BIT14
+		CCS	A
+		TCF	T4JUMP		# WAS ON -- NOW OFF
+
+		CAF	CHRPRIO		# WAS OFF -- NOW ON
+		TC	NOVAC
+		EBANK=	DSPCOUNT
+		2CADR	PROCKEY
+
+# Page 137
+# JUMP TO APPROPRIATE ONCE-PER SECOND (0.96 SEC ACTUALLY) ACTIVITY
+
+T4JUMP		INDEX	RUPTREG1
+		TCF	+1
+
+		TCF	OPTTEST
+		TCF	OPTMON
+		TCF	IMUMON
+		TCF	RESUME
+		TCF	OPTTEST
+		TCF	OPTMON
+		TCF	IMUMON
+		TCF	RESUME
+
+OPTTEST		TC	IBNKCALL
+		CADR	OPTDRIVE
+
+20MRUPT		=	OCT37776	# (DEC 16382)
+
+NODSPOUT	EXTEND			# TURN OFF RELAYS
+		WRITE	OUT0
+
+		CAF	120MRUPT	# SET FOR NEXT CDRVE
+		TCF	SETTIME4
+
+QUIKDSP		CAF	BIT14
+		MASK	DSRUPTSW
+		EXTEND
+		BZF	QUIKOFF		# WROTE LAST TIME, NOW TURN OFF RELAYS.
+
+		CCS	NOUT
+		TC	DSPOUTSB
+		TCF	NODSPY		# NOUT=0 OR BAD RETURN FROM DSPOUTSB
+		CS	BIT14		# GOOD RETURN (WE DISPLAYED SOMETHING)
+QUIKRUPT	ADS	DSRUPTSW
+
+		CAF	20MRUPT
+		TS	TIME4
+
+		CAF	BIT9
+		ADS	DSRUPTSW
+
+		TC	RESUME
+
+NODSPY		EXTEND
+		WRITE	OUT0
+
+SYNCT4		CAF	20MRUPT
+		ADS	TIME4
+
+		CAF	BIT9
+# Page 138
+		ADS	DSRUPTSW
+		CCS	DSRUPTSW
+		TC	RESUME
+OCT37737	OCT	37737
+		TC	SYNCT4
+		TC	RESUME
+
+QUIKOFF		EXTEND
+		WRITE	OUT0
+		CAF	BIT14		# RESET DSRUPTSW TO SEND DISPLAY NEXT PASS
+		TCF	QUIKRUPT
+
+11,14,9		OCT	22400
+
+# Page 139
+# PROGRAM NAME:  IMUMON
+#
+# FUNCTIONAL DESCRIPTION:  THIS PROGRAM IS ENTERED EVERY 480 MS.  IT DETECTS CHANGES OF THE IMU STATUS BITS IN
+# CHANNEL 30 AND CALLS THE APPROPRIATE SUBROUTINES.  THE BITS PROCESSED AND THEIR RELEVANT SUROUTINES ARE:
+#
+#	FUNCTION		BIT	SUBROUTINE CALLED
+#	--------		---	-----------------
+#	TEMP IN LIMITS		 15	TLIM
+#	ISS TURN-ON REQUEST	 14	ITURNON
+#	IMU FAIL		 13	IMUFAIL (SETISSW)
+#	IMU CDU FAIL		 12	ICDUFAIL (SETISSW)
+#	IMU CAGE		 11	IMUCAGE
+#	IMU OPERATE		  9	IMUOP
+#
+# THE LAST SAMPLED STATE OF THESE BITS IS LEFT IN IMODES30.  ALSO, EACH SUBROUTINE CALLED FINDS THE NEW
+# VALUE OF THE BIT IN A, WITH Q SET TO THE PROPER RETURN LOCATION NXTIFAIL.
+#
+# CALLING SEQUENCE:  T4RUPT EVERY 480 MILLISECONDS.
+#
+# JOBS OR TASKS INITIATED:  NONE.
+#
+# SUBROUTINES CALLED:  TLIM, ITURNON, SETISSW, IMUCAGE, IMUOP.
+#
+# ERASABLE INITIALIZATION:
+#	FRESH START OR RESTART WITH NO GROUPS ACTIVE:  C(IMODES30) = OCT 37411.
+#	RESTART WITH ACTIVE GROUPS:	C(IMODES30) = (B(IMODES30)AND(OCT 00035)) PLUS OCT 37400.
+#					THIS LEAVES IMU FAIL BITS INTACT.
+#
+# ALARMS:  NONE.
+#
+# EXIT:  TNONTEST.
+#
+# OUTPUT:  UPDATED IMODES30 WITH CHANGES PROCESSED BY APPROPRIATE SUBROUTINE.
+
+IMUMON		CA	IMODES30	# SEE IF THERE HAS BEEN A CHANGE IN THE
+		EXTEND			# RELEVANT BITS OF CHAN 30.
+		RXOR	CHAN30		# CHECK IF BITS 9,11-15 CHANGED
+		MASK	30RDMSK
+		EXTEND
+		BZF	TNONTEST	# NO CHANGE IN STATUS
+
+		TS	RUPTREG1	# SAVE BITS WHICH HAVE CHANGED.
+		LXCH	IMODES30	# UPDATE IMODES30.
+		EXTEND
+		RXOR	LCHAN
+		TS	IMODES30
+
+		CS	ONE
+		XCH	RUPTREG1
+		EXTEND
+# Page 140
+		BZMF	TLIM		# CHANGE IN IMU TEMP.
+		TCF	NXTIFBIT	# BEGIN BIT SCAN.
+
+ 	-1	AD	ONE		# (RE-ENTERS HERE FROM NXTIFAIL.)
+NXTIFBIT	INCR	RUPTREG1	# ADVANCE BIT POSITION NUMBER.
+ 	+1	DOUBLE
+ 		TS	A		# SKIP IF OVERFLOW.
+		TCF	NXTIFBIT	# LOOK FOR BIT.
+
+		XCH	RUPTREG2	# SAVE OVERFLOW-CORRECTED DATA.
+		INDEX	RUPTREG1	# SELECT NEW VALUE OF THIS BIT.
+		CAF	BIT14
+		MASK	IMODES30
+		INDEX	RUPTREG1
+		TC	IFAILJMP
+
+NXTIFAIL	CCS	RUPTREG2	# PROCESS ANY ADDITIONAL CHANGES.
+		TCF	NXTIFBIT -1
+
+# Page 141
+# PROGRAM NAME:  TNONTEST.
+#
+# FUNCTIONAL DESCRIPTION:  THIS PROGRAM HONORS REQUESTS FOR ISS INITIALIZATION.  ISS TURN-ON (CHANNEL 30 BIT 14)
+# AND ISS OPERATE (CHANNEL 30 BIT 9) REQUESTS ARE TREATED AS A PAIR AND PROCESSING TAKES PLACE .480 SECONDS
+# AFTER EITHER ONE APPEARS.  THIS INITIALIZATION TAKES ON ONE OF THE FOLLOWING THREE FORMS:
+#
+#	1) ISS TURN-ON:  IN THIS SITUATION THE COMPUTER IS OPERATING WHEN THE ISS IS TURNED ON.  NOMINALLY,
+#	BOTH ISS TURN-ON AND ISS OPERATE APPEAR.  THE PLATFORM IS CAGED FOR 90 SECONDS AND THE ICDU'S ZEROED
+#	SO THAT AT THE END OF THE PROCESS THE GIMBAL LOCK MONITOR WILL FUNCTION PROPERLY.
+#
+#	2) ICDU INITIALIZATION:  IN THIS CASE THE COMPUTER WAS PROBABLY TURNED ON WITH THE ISS IN OPERATE OR
+#	A FRESH START WAS DONE WIT THE ISS IN OPERATE.  IN THIS CASE ONLY ISS OPERATE IS ON.  THE ICDU'S ARE
+#	ZEROED SO THE GIMBAL LOCK MONITOR WILL FUNCTION.  AN EXCEPTION IS IF THE ISS IS IN GIMBAL LOCK AFTER
+#	A RESTART, THE ICDU'S WILL NOT BE ZEROED.
+#
+#	3) RESTART WITH RESTARTABLE PROGRAM USING THE IMU:  IN THIS CASE, NO INITIALIZATION TAKES PLACE SINCE
+#	IT IS ASSUMED THAT THE USING PROGRAM DID THE INITIALIZATION AND THEREFORE T4RUPT SHOULD NOT INTERFERE.
+#
+# IMODES30 BIT 7 IS SET = 1 BY THE FIRST BIT (CHANNEL 30 BIT 14 OR 9) WHICH ARRIVES.  FOLLOWING THIS, TNONTEST IS
+# ENTERED, FINDS BIT 7 = 1 BUT BIT 8 = 0, SO IT SETS BIT 8 = 1 AND EXITS.  THE NEXT TIME IT FINDS BIT 8 = 1 AND
+# PROCEEDS, SETTING BITS 8 AND 7 = 0.  AT PROCTNON, IF ISS TURN-ON REQUEST IS PRESENT, THE ISS IS CAGED (ZERO +
+# COARSE).  IF ISS OPERATE IS NOT PRESENT PROGRAM ALARM 00213 IS ISSUED.  AT THE END OF A 90 SECOND CAGE, BIT 2
+# OF IMODES30 IS TESTED.  IF IT IS = 1, ISS TURN-ON WAS NOT PRESENT FOR THE ENTIRE 90 SECONDS.  IN THAT CASE, IF
+# THE ISS TURN-ON REQUEST IS PRESENT THE 90 SECOND WAIT IS REPEATED,  OTHERWISE NO ACTION OCCURS UNLESS A PROGRAM
+# WAS WAITING FOR THE INITIALIZATION IN WHICH CASE THE PROGRAM IS GIVEN AN IMUSTALL ERROR RETURN.  IF THE DELAY
+# WENT PROPERLY, THE ISS DELAY OUTBIT IS SENT AND THE ICDU'S ZEROED.  A TASK IS INITIATED TO REMOVE THE PIPA FAIL
+# INHIBIT BIT IN 10.24 SECONDS.  IF A MISSION PROGRAM WAS WAITING IT IS INFORMED VIA ENDIMU.
+#
+# AT PROCTNON, IF ONLY ISS OPERATE IS PRESENT (OPONLY), THE CDU'S ARE ZEROED UNLESS THE PLATFORM IS IN COARSE
+# ALIGN (= GIMBAL LOCK HERE) OR A MISSION PROGRAM IS USING THE IMU (INUSEFLG = 1).
+#
+# CALLING SEQUENCE:  T4RUPT EVERY 480 MILLISECONDS AFTER IMUMON.
+#
+# JOBS OR TASKS INITIATED:  1) ENDTNON, 90 SECONDS AFTER CAGING STARTED.  2) ISSUP, 4 SECONDS AFTER CAGING DONE.
+#	3) PFAILOK, 10.24 SECONDS AFTER INITIALIZATION COMPLETED.  4) UNZ2, 320 MILLISECONDS AFTER ZEROING
+#	STARTED.
+#
+# SUBROUTINES CALLED: CAGESUB, CAGESUB2, ZEROICDU, ENDIMU, IMUBAD, NOATTOFF, SETISSW, VARDELAY.
+#
+# ERASABLE INITIALIZATION:  SEE IMUMON.
+#
+# ALARMS:  PROGRAM ALARM 00213 IF ISS TURN-ON REQUESTED WITHOUT ISS OPERATE.
+#
+# EXIT:  ENDTNON EXITS TO C33TEST.  TASKS HAVING TO DO WITH INITIALIZATION EXIT AS FOLLOWS:  MISSION PROGRAM
+# WAITING AND INITIALIZATION COMPLETE, EXIT TO ENDIMU, MISSION PROGRAM WAITING AND INITIALIZATION FAILED, EXIT TO
+# IMUBAD, IMU NOT IN USE, EXIT TO TASKOVER.
+#
+# OUTPUT:  ISS INITIALIZED.
+
+TNONTEST		CS	IMODES30	# AFTER PROCESSING ALL CHANGES, SEE IF IT
+# Page 142
+			MASK	BIT7		# IS TIME TO ACT ON A TURN-ON SEQUENCE.
+			CCS	A
+			TCF	C33TEST		# NO -- EXAMINE CHANNEL 33.
+
+			CAF	BIT8		# SEE IF FIRST SAMPLE OR SECOND.
+			MASK	IMODES30
+			CCS	A
+			TCF	PROCTNON	# REACT AFTER A SECOND SAMPLE.
+
+			CAF	BIT8		# IF FIRST SAMPLE, SET BIT TO REACT NEXT
+			ADS	IMODES30	# TIME.
+			TCF	C33TEST
+
+# PROCESS IMU TURN-ON REQUESTS AFTER WAITING 1 SAMPLE FOR ALL SIGNALS TO ARRIVE.
+
+PROCTNON		CS	BITS7&8
+			MASK	IMODES30
+			TS	IMODES30
+			MASK	BIT14		# SEE IF TURN-ON REQUEST.
+			CCS	A
+			TCF	OPONLY		# OPERATE ON ONLY.
+
+			CS	IMODES30	# IF TURN-ON REQUEST, WE SHOULD HAVE IMU
+			MASK	BIT9		# OPERATE.
+			CCS	A
+			TCF	+3
+
+			TC	ALARM		# ALARM IF NOT
+			OCT	213
+
+ 	+3		TC	CAGESUB
+
+ 			CAF	90SECS
+			TC	WAITLIST
+			EBANK=	CDUIND
+			2CADR	ENDTNON
+
+			TCF	C33TEST
+
+RETNON			CAF	90SECS
+			TC	VARDELAY
+
+ENDTNON			CS	BIT2		# RESET TURN-ON REQUEST FAIL BIT.
+			MASK	IMODES30
+			XCH	IMODES30
+			MASK	BIT2		# IF IT WAS OFF, SEND ISS DELAY COMPLETE.
+			EXTEND
+			BZF	ENDTNON2
+# Page 143
+			CAF	BIT14		# IF IT WAS ON AND TURN-ON REQUEST NOW.
+			MASK	IMODES30	# PRESENT, RE-ENTER 90 SEC DELAY IN WL.
+			EXTEND
+			BZF	RETNON
+
+			CS	STATE		# IF IT IS NOT ON NOW, SEE IF A PROG WAS
+			MASK	IMUSEFLG	# WAITING.
+			CCS	A
+			TCF	TASKOVER
+			TC	POSTJUMP
+			CADR	IMUBAD		# UNSUCCESSFUL TURN-ON.
+
+ENDTNON2		CAF	BIT15		# SEND ISS DELAY COMPLETE.
+			EXTEND
+			WOR	CHAN12		# TURN OFF ISS DELAY COUNTER
+			TC 	IBNKCALL	# TURN OFF NO ATT LAMP.
+			CADR	NOATTOFF
+
+UNZ2			TC	ZEROICDU
+
+			CS	BITS4&5		# REMOVE ZERO AND COARSE.
+			EXTEND
+			WAND	CHAN12
+
+			CAF	BIT11		# WAIT 10 SECS FOR CTRS TO FIND GIMBALS
+			TC	VARDELAY
+
+ISSUP			CS	OCT54		# REMOVE CAGING, IMU FAIL INHIBIT, AND
+			MASK	IMODES30	# ICDUFAIL INHIBIT FLAGS.
+			TS	IMODES30
+
+			CS	BIT6		# ENABLE DAP
+			MASK	IMODES33
+			TS	IMODES33
+
+			TC	SETISSW		# ISS WARNING MIGHT HAVE BEEN INHIBITED.
+
+			CS	BIT15		# REMOVE IMU DELAY COMPLETE DISCRETE.
+			EXTEND
+			WAND	CHAN12
+
+			CAF	4SECS		# DONT ENABLE PROG ALARM ON PIP FAIL FOR
+			TC	WAITLIST	# ANOTHER 4 SECS.
+			EBANK=	CDUIND
+			2CADR	PFAILOK
+
+			TCF	TASKOVER
+
+OPONLY			CAF	BIT4
+# Page 144
+			EXTEND			# IF OPERATE ON ONLY AND WE ARE IN COARSE
+			RAND	CHAN12		# ALIGN, DON'T ZERO THE CDUS BECAUSE WE
+			CCS	A		# MIGHT BE IN GIMBAL LOCK. USE V41N20 TO
+			TCF	C33TEST		# RECOVER.
+
+			CAF	IMUSEFLG	# OTHERWISE, ZERO THE COUNTERS
+			MASK	STATE		# UNLESS SOMEONE IS USING THE IMU.
+			CCS	A
+			TCF	C33TEST
+
+			TC	CAGESUB2	# SET TURNON FLAGS.
+
+ISSZERO			TC	IBNKCALL	# TURN OFF NO ATT LAMP.
+			CADR	NOATTOFF	#     IMU CAGE OFF ENTRY.
+
+			CAF	BIT5		# ISS CDU ZERO
+			EXTEND
+			WOR	CHAN12
+
+			TC	ZEROICDU
+			CAF	BIT6		# WAIT 300 MS FOR AGS TO RECEIVE SIGNAL.
+			TC	WAITLIST
+			EBANK=	OPTMODES
+			2CADR	UNZ2
+
+			TCF	C33TEST
+
+# Page 145
+# PROGRAM NAME:  C33TEST
+#
+# FUNCTIONAL DESCRIPTION:  THIS PROGRAM MONITORS THREE FLIP-FLOP INBITS OF CHANNEL 33 AND CALLS THE APPROPRIATE
+# SUBROUTINE TO PROCESS A CHANGE.  IT IS ANALOGOUS TO IMUMON, WHICH MONITORS CHANNEL 30, EXCEPT THAT IT READS
+# CHANNEL 33 WITH A WAND INSTRUCTION BECAUSE A `WRITE' PULSE IS REQUIRED TO RESET THE FLIP-FLOPS.  THE BITS
+# PROCESSED AND THE SUBROUTINES CALLED ARE:
+#	BIT	FUNCTION		SUBROUTINE
+#	---	--------		----------
+#	 13	PIPA FAIL		PIPFAIL
+#	 12	DOWNLINK TOO FAST	DNTMFAST
+#	 11	UPLINK TOO FAST		UPTMFAST
+#
+# UPON ENTRY TO THE SUBROUTINE, THE NEW BIT STATE IS IN A.
+#
+# CALLING SEQUENCE:  EVERY 480 MILLISECONDS AFTER TNONTEST.
+#
+# JOBS OR TASKS INITIATED:  NONE.
+#
+# SUBROUTINES CALLED:  PIPFAIL, DNTMFAST AND UPTMFAST ON BIT CHANGES.
+#
+# ERASABLE INITIALIZATION:  C(IMODES33) = OCT 16000 ON A FRESH START OR RESTART, THEREFORE, THESE ALARMS WILL
+# REAPPEAR IF THE CONDITIONS PERSIST.
+#
+# ALARMS:  NONE.
+#
+# EXIT:  GLOCKMON.
+#
+# OUTPUT:  UPDATED BITS 13, 12, AND 11 OF IMODES33 WITH CHANGES PROCESSED.
+
+C33TEST		CA	IMODES33		# SEE IF RELEVANT CHAN33 BITS HAVE
+		MASK	33RDMSK
+		TS	L			# CHANGED.
+		CAF	33RDMSK
+		EXTEND
+		WAND	CHAN33			# RESETS FLIP-FLOP INPUTS
+		EXTEND
+		RXOR	LCHAN
+		EXTEND
+		BZF	GLOCKMON		# ON NO CHANGE.
+
+		TS	RUPTREG1		# SAVE BITS WHICH HAVE CHANGED
+		LXCH	IMODES33
+		EXTEND
+		RXOR	LCHAN
+		TS	IMODES33		# UPDATED IMODES33.
+
+		CAF	ZERO
+		XCH	RUPTREG1
+		DOUBLE
+# Page 146
+		TCF	NXTIBT +1		# SCAN FOR BIT CHANGES.
+
+ 	-1	AD	ONE
+NXTIBT		INCR	RUPTREG1
+ 	+1	DOUBLE
+ 		TS	A			# (CODING IDENTICAL TO CHAN 30).
+		TCF	NXTIBT
+
+		XCH	RUPTREG2
+		INDEX	RUPTREG1		# GET NEW VALUE OF BIT WHICH CHANGED.
+		CAF	BIT13
+		MASK	IMODES33
+		INDEX	RUPTREG1
+		TC	C33JMP
+
+NXTFL33		CCS	RUPTREG2		# PROCESS POSSIBLE ADDITIONAL CHANGES.
+		TCF	NXTIBT -1
+
+# Page 147
+# PROGRAM NAME:  GLOCKMON
+#
+# FUNCTIONAL DESCRIPTION:  THIS PROGRAM MONITORS THE CDUZ COUNTER TO DETERMINE WHETHER THE ISS IS IN GIMBAL LOCK
+# AND TAKES ACTION IF IT IS.  THREE REGIONS OF MIDDLE GIMBAL ANGLE (MGA) ARE USED:
+#
+#	1) ABS(MGA) LESS THAN OR EQUAL TO 70 DEGREES -- NORMAL MODE.
+#	2) ABS(MGA) GREATER THAN 70 DEGREES AND LESS THAN OR EQUAL TO 85 DEGREES -- GIMBAL LOCK LAMP TURNED ON.
+#	3) ABS(MGA) GREATER THAN 85 DEGREES -- ISS PUT IN COARSE ALIGN AND NO ATT LAMP TURNED ON.
+#
+# CALLING SEQUENCE:  EVERY 480 MILLISECONDS AFTER C33TEST.
+#
+# JOBS OR TASKS INITIATED:  NONE.
+#
+# SUBROUTINES CALLED:	1) SETCOARS WHEN ABS(MGA) GREATER THEN 85 DEGREES AND ISS NOT IN COARSE ALIGN.
+#			2) LAMPTEST BEFORE TURNING OFF GIMBAL LOCK LAMP.
+#
+# ERASABLE INITIALIZATION:
+#		1) FRESH START OR RESTART WITH NO GROUPS ACTIVE:  C(CDUZ) = 0, IMODES30 BIT 6 = 0, IMODES33 BIT 1 = 0.
+#		2) RESTART WTIH GROUPS ACTIVE:	SAME AS FRESH START EXCEPT C(CDUZ) NOT CHANGED SO GIMBAL MONITOR
+#						PROCEEDS AS BEFORE.
+#
+# ALARMS:	1) MGA REGION (2) CAUSES GIMBAL LOCK LAMP TO BE LIT.
+#		2) MGA REGION (3) CAUSES THE ISS TO BE PUT IN COARSE ALIGN AND THE NO ATT LAMP TO BE LIT IF EITHER NOT
+#		   SO ALREADY.
+
+GLOCKMON	CCS	CDUZ
+		TCF	GLOCKCHK		# SEE IF MAGNITUDE OF MGA IS GREATER THAN
+		TCF	SETGLOCK		# 70 DEGREES.
+		TCF	GLOCKCHK
+		TCF	SETGLOCK
+
+GLOCKCHK	AD	-70DEGS
+		EXTEND
+		BZMF	SETGLOCK -1		# NO LOCK.
+
+		AD	-15DEGS			# SEE IF ABS(MGA) GREATER THAN 85 DEGREES
+		EXTEND
+		BZMF	NOGIMRUN
+
+		CAF	BIT4			# IF SO, SYSTEM SHOULD BE IN COARSE ALIGN
+		EXTEND				# TO PREVENT GIMBAL RUNAWAY.
+		RAND	CHAN12
+		CCS	A
+		TCF	NOGIMRUN
+
+		TC	IBNKCALL		# GO INTO COARSE ALIGN.
+		CADR	SETCOARS
+
+		CAF	SIX			# ENABLE ISS ERROR COUNTERS IN 60 MS.
+		TC	WAITLIST
+# Page 148
+		EBANK=	CDUIND
+		2CADR	CA+ECE
+
+NOGIMRUN	CAF	BIT6			# TURN ON GIMBAL LOCK LAMP.
+		TCF	SETGLOCK
+
+ -1		CAF	ZERO
+SETGLOCK	AD	DSPTAB +11D		# SEE IF PRESENT STATE OF GIMBAL LOCK LAMP
+		MASK	BIT6			# AGREES WITH DESIRED STATE BY HALF ADDING
+		EXTEND				# THE TWO.
+		BZF	GLOCKOK			# OK AS IS.
+
+		MASK	DSPTAB +11D		# IF OFF, DON'T TURN ON IF IMU BEING CAGED.
+		CCS	A
+		TCF	GLAMPTST		# TURN OFF UNLESS LAMP TEST IN PROGRESS.
+
+		CAF	BIT6
+		MASK	IMODES30
+		CCS	A
+		TCF	GLOCKOK
+
+GLINVERT	CS	DSPTAB +11D		# INVERT GIMBAL LOCK LAMP.
+		MASK	BIT6
+		AD	BIT15			# TO INDICATE CHANGE IN DSPTAB +11D.
+		XCH	DSPTAB +11D
+		MASK	OCT37737
+		ADS	DSPTAB +11D
+		TCF	GLOCKOK
+
+GLAMPTST	TC	LAMPTEST		# TURN OFF UNLESS LAMP TEST IN PROGRESS.
+		TCF	GLOCKOK
+		TCF	GLINVERT
+
+-70DEGS		DEC	-.38888			# -70 DEGREES SCALED IN HALF-REVOLUTIONS.
+-15DEGS		DEC	-.08333
+
+# Page 149
+# PROGRAM NAME:  TLIM.
+#
+# FUNCTIONAL DESCRIPTION:  THIS PROGRAM MAINTAINS THE TEMP LAMP (BIT 4 OF CHANNEL 11) ON THE DSKY TO AGREE WITH
+# THE TEMP SIGNAL FROM THE ISS (BIT 15 OF CHANNEL 30).  HOWEVER, THE LIGHT WILL NOT BE TURNED OFF IF A LAMP TEST
+# IS IN PROGRESS.
+#
+# CALLING SEQUENCE:  CALLED BY IMUMON ON A CHANGE OF BIT 15 OF CHANNEL 30.
+#
+# JOBS OR TASKS INITIATED:  NONE.
+#
+# SUBROUTINES CALLED:  LAMPTEST.
+#
+# ERASABLE INITIALIZATION:  FRESH START AND RESTART TURN THE TEMP LAMP OFF.
+#
+# ALARMS:  TEMP LAMP TURNED ON WHEN THE IMU TEMP GOES OUT OF LIMITS.
+#
+# EXIT:  NXTIFAIL.
+#
+# OUTPUT:  SERVICE OF TEMP LAMP.		  IN A, EXCEPT FOR TLIM.
+
+TLIM		MASK	POSMAX			# REMOVE BIT FROM WORD OF CHANGES AND SET
+		TS	RUPTREG2		# DSKY TEMP LAMP ACCORDINGLY.
+
+		CCS	IMODES30
+		TCF	TEMPOK
+		TCF	TEMPOK
+
+		CAF	BIT4			# TURN ON LAMP.
+		EXTEND
+		WOR	DSALMOUT
+		TCF	NXTIFAIL
+
+TEMPOK		TC	LAMPTEST		# IF TEMP NOW OK, DON'T TURN OFF LAMP IF
+		TCF	NXTIFAIL		# LAMP TEST IN PROGRESS.
+
+		CS	BIT4
+		EXTEND
+		WAND	DSALMOUT		# TURN OFF LAMP
+		TCF	NXTIFAIL
+
+# Page 150
+# PROGRAM NAME:  ITURNON.
+#
+# FUNCTIONAL DESCRIPTION:  THIS PROGRAM IS CALLED BY IMUMON WHEN A CHANGE OF BIT 14 OF CHANNEL 30 (ISS TURN-ON
+# REQUEST) IS DETECTED.  UPON ENTRY, ITURNON CHECKS IF A TURN-ON DELAY SEQUENCE HAS FAILED, AND IF SO, IT EXITS.
+# IF NOT, IT CHECKS WHETHER THE TURN-ON REQUEST CHANGE IS TO ON OR OFF.  IF ON, IT SETS BIT 7 OF IMODES30 TO 1 SO
+# THAT TNONTEST WILL INITIATE THE ISS INITIALIZATION SEQUENCE.  IF OFF, THE TURN-ON DELAY SIGNAL, CHANNEL 12 BIT
+# 15, IS CHECKED AND IF IT IS ON, ITURNON EXITS.  IF THE DELAY SIGNAL IS OFF, PROGRAM ALARM 00207 IS ISSUED, BIT 2
+# OF IMODES30 IS SET TO 1 AND THE PROGRAM EXITS.
+#
+# THE SETTING OF BIT 2 OF IMODES30 (ISS DELAY SEQUENCE FAIL) INHIBITS THIS ROUTINE AND IMUOP FROM
+# PROCESSING ANY CHANGES.  THIS BIT WILL BE RESET BY THE ENDTNON ROUTINE WHEN THE CURRENT 90 SECOND DELAY PERIOD
+# ENDS.
+#
+# CALLING SEQUENCE:  FROM IMUMON WHEN ISS TURN-ON REQUEST CHANGES STATE.
+#
+# JOBS OR TASKS INITIATED:  NONE.
+#
+# SUBROUTINES CALLED:  ALARM, IF THE ISS TURN-ON REQUEST IS NOT PRESENT FOR 90 SECONDS.
+#
+# ERASABLE INITIALIZATION:  FRESH START AND RESTART SET BIT 15 OF CHANNEL 12 AND BITS 2 AND 7 OF IMODES30 TO 0,
+# AND BIT 14 OF IMODES30 TO 1.
+#
+# ALARMS: PROGRAM ALARM 00207 IS ISSUED IF THE ISS TURN-ON REQUEST SIGNAL IS NOT PRESENT FOR 90 SECONDS.
+#
+# EXIT:  NXTIFAIL.
+#
+# OUTPUT:  BIT 7 OF IMODES30 TO START ISS INITIALIZATION, OR BIT 2 OF IMODES30 AND PROGRAM ALARM 00207 TO INDICATE
+# A FAILED TURN-ON SEQUENCE.
+
+ITURNON		CAF	BIT2		# IF DELAY REQUEST HAS GONE OFF
+		MASK	IMODES30	# PREMATURELY, DO NOT PROCESS ANY CHANGES
+		CCS	A		# UNTIL THE CURRENT 90 SEC WAIT EXPIRES.
+		TCF	NXTIFAIL
+
+		CAF	BIT14		# SEE IF JUST ON OR OFF.
+		MASK 	IMODES30
+		EXTEND
+		BZF	ITURNON2	# IF JUST ON.
+
+		CAF	BIT15
+		EXTEND			# SEE IF DELAY PRESENT DISCRETE HAS BEEN
+		RAND	CHAN12		# SENT.  IF SO, ACTION COMPLETE
+		EXTEND
+		BZF	+2
+		TCF	NXTIFAIL
+
+		CAF	BIT2		# IF NOT, SET BIT TO INDICATE REQUEST NOT
+		ADS	IMODES30	# PRESENT FOR FULL DURATION.
+		TC	ALARM
+		OCT	207
+		TCF	NXTIFAIL
+
+# Page 151
+ITURNON2	CS	IMODES30	# SET BIT7 TO INDICATE WAIT OF 1 SAMPLE
+		MASK	BIT7
+		ADS	IMODES30
+		TCF	NXTIFAIL
+
+# Page 152
+# PROGRAM NAME:  IMUCAGE.
+#
+# FUNCTIONAL DESCRIPTION:  THIS PROGRAM PROCESSES CHANGES OF THE IMUCAGE INBIT, CHANNEL 30 BITS 11.  IF THE BIT
+# CHANGES TO 0 (CAGE BUTTON PRESSED), THE ISS IS CAGED (ICDU ZERO + COARSE ALIGN + NO ATT LAMP) UNTIL THE
+# ASTRONAUT SELECTS ANOTHER PROGRAM TO ALIGN THE ISS.  ANY PULSE TRAINS TO THE ICDU'S AND GYRO'S ARE TERMINATED,
+# THE ASSOCIATE OUTCOUNTERS ARE ZEROED AND THE GYRO'S ARE DE-SELECTED.  NO ACTION OCCURS WHEN THE BUTTON IS
+# RELEASED (INBIT CHANGES TO 1).
+#
+# CALLING SEQUENCE:  BY IMUMON WHEN IMU CAGE BIT CHANGES.
+#
+# JOBS OR TASKS INITIATED:  NONE.
+#
+# SUBROUTINES CALLED:  CAGESUB.
+#
+# ERASABLE INITIALZATION:  FRESH START AND RESTART SET BIT 11 OF IMODES30 TO 1.
+#
+# ALARMS: NONE.
+#
+# EXIT:  NXTIFAIL.
+#
+# OUTPUT:  ISS CAGED, COUNTERS ZEROED, PULSE TRAINS TERMINATED AND NO ATT LAMP LIT.
+
+IMUCAGE		CCS	A		# NO ACTION IF GOING OFF.
+		TCF	ISSZERO
+		CS	OCT77000	# TERMINATE ICDU, OPTICS, GYRO PULSE TRAINS
+		EXTEND
+		WAND	CHAN14
+
+		CS	OCT272		# KNOCK DOWN TVC ENABLE, IMU ERROR COUNTER
+		EXTEND			#   ENABLE, ZERO ICDU, COARSE ALIGN
+		WAND	CHAN12		#   ENABLE, OPTICS ERR CNTR ENABLE
+
+		CS	BIT13		# TURN OFF ENGINE
+		EXTEND
+		WAND	DSALMOUT
+
+		TC	CAGESUB1
+
+		TC	IBNKCALL	# KNOCK DOWN TRACK, REFSMMAT, DRIFT FLAGS
+		CADR	RNDREFDR
+
+		CS	ZERO		# ZERO COMMAND OUT-COUNTERS
+		TS	CDUXCMD
+		TS	CDUYCMD
+		TS	CDUZCMD
+		TS	GYROCMD
+
+		CS	OCT740		# HAVING WAITED AT LEAST 27 MCT FROM
+		EXTEND			# GYRO PULSE TRAIN TERMINATION, WE CAN
+		WAND	CHAN14		# DE-SELECT THE GYROS.
+# Page 153
+		TCF	NXTIFAIL
+
+# Page 154
+# PROGRAM NAME:  IMUOP.
+#
+# FUNCTIONAL DESCRIPTION:  THIS PROGRAM PROCESSES CHANGES IN THE ISS OPERATE DISCRETE, BIT 9 OF CHANNEL 30.
+# IF THE INBIT CHANGES TO 0, INDICATING ISS ON, IMUOP GENERALLY SETS BIT 7 OF IMODES30 TO 1 TO REQUEST ISS
+# INITIALIZATION VIA TNONTEST.  AN EXCEPTION IS DURING A FAILED ISS DELAY DURING WHICH BIT 2 OF IMODES30 IS SET
+# TO 1 AND NO FURTHER INITIALIZATION IS REQUIRED.  WHEN THE INBIT CHANGES TO 1, INDICATING ISS OFF, IMUSEFLG IS
+# TESTED TO SEE IF ANY PROGRAM WAS USING THE ISS.  IF SO, PROGRAM ALARM 00214 IS ISSUED.
+#
+# CALLING SEQUENCE:  BY IMUMON WHEN BIT 9 OF CHANNEL 30 CHANGES.
+#
+# JOBS OR TASKS INITIATED:  NONE.
+#
+# SUBROUTINES CALLED:  ALARM, IF ISS IS TURNED OFF WHILE IN USE.
+#
+# ERASABLE INITIALIZATION:  ON FRESH START AND RESTART, BIT 9 OF IMODES30 IS SET TO 1 EXCEPT WHEN THE GIMBAL LOCK
+# LAMP IS ON, IN WHICH CASE IT IS SET TO 0.  THIS PREVENTS ICDU ZERO BY TNONTEST WITH THE ISS IN GIMBAL LOCK.
+#
+# ALARMS:  PROGRAM ALARM 00214 IF THE ISS IS TURNED OFF WHILE IN USE.
+#
+# EXIT:  NXTIFAIL.
+#
+# OUTPUT:  ISS INITIALIZATION REQUEST (IMODES30 BIT 7) OR PROGRAM ALARM 00214.
+
+IMUOP		EXTEND				# IF OPERATE JUST ON, WAIT 1 SAMPLE.
+		BZF	IMUOP2
+
+		CS	IMODES33		# DISABLE DAP
+		MASK	BIT6
+		ADS	IMODES33
+
+		TC	IBNKCALL		# KNOCK DOWN TRACK, REFSMMAT, DRIFT FLAGS
+		CADR	RNDREFDR
+
+		CS	BITS7&8			# KNOCK DOWN RENDEZVOUS, IMUUSE FLAGS
+		MASK	STATE
+		XCH	STATE			# IF GOING OFF, ALARM IF PROG USING IMU.
+		COM
+		MASK	IMUSEFLG
+		CCS	A
+		TCF	NXTIFAIL
+
+		TC	ALARM
+		OCT	214
+		TCF	NXTIFAIL
+
+IMUOP2		CAF	BIT2			# SEE IF FAILED ISS TURN-ON SEQ IN PROG.
+		MASK	IMODES30
+		CCS	A
+		TCF	NXTIFAIL		# IF SO, DON'T PROCESS UNTIL PRESENT 90
+		TCF	ITURNON2		# SECONDS EXPIRES
+
+# Page 155
+# PROGRAM NAME:  PIPFAIL
+#
+# FUNCTIONAL DESCRIPTION:  THIS PROGRAM PROCESSES CHANGES OF BIT 13 OF CHANNEL 33, PIPA FAIL.  IT SETS BIT 10 OF
+# IMODES30 TO AGREE.  IT CALLS SETISSW IN CASE A PIPA FAIL NECESSITATES AN ISS WARNING.  IF NOT, I.E., IMODES30
+# BIT 1 = 1, AND A PIPA FAIL IS PRESENT AND THE ISS NOT BEING INITIALIZED, PROGRAM ALARM 0212 IS ISSUED.
+#
+# CALLING SEQUENCE:  BY C33TEST ON CHANGES OF CHANNEL 33 BIT 13.
+#
+# JOBS OR TASKS INITIATED:  NONE.
+#
+# SUBROUTINES CALLED:  1) SETISSW, AND 2) ALARM (SEE FUNCITONAL DESCRIPTION).
+#
+# ERASABLE INITIALIZATION:  SEE IMUMON FOR INITIALIZATION OF IMODES30.  THE RELEVANT BITS ARE 5, 7, 8, 9, AND 10.
+#
+# ALARMS:  PROGRAM ALARM 00212 IF PIPA FAIL IS PRESENT BUT NEITHER ISS WARNING IS TO BE ISSUED NOR THE ISS IS
+# BEING INITIALIZED.
+#
+# EXIT:  NXTFL33.
+#
+# OUTPUT:  PROGRAM ALARM 00212 AND ISS WARNING MAINTENANCE.
+
+PIPFAIL		CCS	A			# SET BIT10 IN IMODES30 SO ALL ISS WARNING
+		CAF	BIT10			# INFO IS IN ONE REGISTER.
+		XCH	IMODES30
+		MASK	-BIT10
+		ADS	IMODES30
+
+		TC	SETISSW
+
+		CS	IMODES30		# IF PIP FAIL DOESN'T LIGHT ISS WARNING, DO
+		MASK	BIT1			# A PROGRAM ALARM IF IMU OPERATING BUT NOT
+		CCS	A			# CAGED OR BEING TURNED ON.
+		TCF	NXTFL33
+
+		CA	IMODES30
+		MASK	OCT1720
+		CCS	A
+		TCF	NXTFL33			# ABOVE CONDITION NOT MET.
+
+		TC	ALARM
+		OCT	212
+		TCF	NXTFL33
+
+# Page 156
+# PROGRAM NAMES:  DNTMFAST, UPTMFAST
+#
+# FUNCTIONAL DESCRIPTION:  THESE PROGRAMS PROCESS CHANGES OF BITS 12 AND 11 OF CHANNEL 33.  IF A BIT CHANGES TO A
+# 0, A PROGRAM ALARM IS ISSUED.  THE ALARMS ARE:
+#
+#	BIT	ALARM	CAUSE
+#	---	-----	-----
+#	 12	01105	DOWNLINK TOO FAST
+#	 11	01106	UPLINK TOO FAST
+#
+# CALLING SEQUENCE:  BY C33TEST ON A BIT CHANGE.
+#
+# SUBROUTINES CALLED:  ALARM, IF A BIT CHANGES TO A 0.
+#
+# ERASABLE INITIALIZATION:  FRESH START OR RESTART, BITS 12 AND 11 OF IMODES33 ARE SET TO 1.
+#
+# ALARMS:  SEE FUNCTIONAL DESCRIPTION.
+#
+# EXIT:  NXTFL33.
+#
+# OUTPUT:  PROGRAM ALARM ON A BIT CHANGE TO 0.
+
+DNTMFAST	CCS	A			# DO PROG ALARM IF TM TOO FAST.
+		TCF	NXTFL33
+
+		TC	ALARM
+		OCT	1105
+		TCF	NXTFL33
+
+UPTMFAST	CCS	A			# SAME AS DNLINK TOO FAST WITH DIFFERENT
+		TCF	NXTFL33			# ALARM CODE.
+
+		TC	ALARM
+		OCT	1106
+		TCF	NXTFL33
+
+# Page 157
+# PROGRAM NAME:  SETISSW
+#
+# FUNCTIONAL DESCRIPTION:  THIS PROGRAM TURNS THE ISS WARNING LAMP ON AND OFF (CHANNEL 11 BIT 1 = 1 FOR ON,
+# 0 FOR OFF) DEPENDING ON THE STATUS OF IMODES30 BITS 13 (IMU FAIL) AND 4 (INHIBIT IMU FAIL), 12 (ICDU FAIL) AND
+# 3 (INHIBIT ICDU FAIL), AND 10 (PIPA FAIL) AND 1 (INHIBIT PIPA FAIL).  THE LAMP IS LEFT ON IF A LAMP TEST IS IN
+# PROGRESS.
+#
+# CALLING SEQUENCE:  CALLED BY IMUMON ON CHANGES TO IMU FAIL AND ICDU FAIL.  CALLED BY IFAILOK AND PFAILOK UPON
+# REMOVAL OF THE FAIL INHIBITS.  CALLED BY PIPFAIL WHEN THE PIPA FAIL DISCRETE CHANGES.  IT IS CALLED BY PIPUSE
+# SINCE THE PIPA FAIL PROGRAM ALARM MAY NECESSITATE AN ISS WARNING, AND LIKEWISE BY PIPFREE WHEN THE ALARM DEPARTS
+# AND IT IS CALLED BY IMUZERO3 AND ISSUP AFTER THE FAIL INHIBITS HAVE BEEN REMOVED.
+#
+# JOBS OR TASKS INITIATED:  NONE.
+#
+# SUBROUTINES CALLED:  NONE.
+#
+# ERASABLE INITIALIZATION:
+#
+#	1) IMODES30 -- SEE IMUMON.
+#	2) IMODES33 BIT 1 = 0 (LAMP TEST NOT IN PROGRESS).
+#
+# ALARMS:  ISS WARNING.
+#
+# EXIT: VIA Q.
+#
+# OUTPUT: ISS WARNING LAMP SET PROPERLY.
+
+SETISSW		CAF	OCT15			# SET ISS WARNING USING THE FAIL BITS IN
+		MASK	IMODES30		# BITS 13, 12, AND 10 OF IMODES30 AND THE
+		EXTEND				# FAILURE INHIBIT BITS IN POSITIONS
+		MP	BIT10			# 4, 3, AND 1.
+		CA	IMODES30
+		EXTEND
+		ROR	LCHAN			# 0 INDICATES FAILURE
+		COM
+		MASK	OCT15000
+		CCS	A
+		TCF	ISSWON			# FAILURE.
+
+ISSWOFF		CAF	BIT1			# DON'T TURN OFF ISS WARNING IF LAMP TEST
+		MASK	IMODES33		# IN PROGRESS.
+		CCS	A
+		TC	Q
+
+		CS	BIT1
+		EXTEND
+		WAND	DSALMOUT		# TURN OFF ISS WARNING.
+		TC	Q
+
+ISSWON		EXTEND
+# Page 158
+		QXCH	ITEMP6
+		TC	VARALARM		# TELL EVERYONE WHAT CAUSED THE ISS WARNING
+		CAF	BIT1
+		EXTEND
+		WOR	DSALMOUT		# TURN ON ISS WARNING
+		TC	ITEMP6
+
+CAGESUB		CS	BIT15+6			# SET OUTBITS + INTERNAL FLAGS FOR
+		EXTEND				# SYSTEM TURN-ON OR CAGE.  DISABLE THE
+		WAND	CHAN12			# ERROR COUNTER AND REMOVE THE IMU DELAY COMP.
+		CAF	BITS4&5			# SEND ZERO AND COARSE.
+		EXTEND
+		WOR	CHAN12
+
+CAGESUB1	CS	DSPTAB +11D		# TURN ON NO ATT LAMP
+		MASK	OC40010
+		ADS	DSPTAB +11D
+
+CAGESUB2	CS	IMODES30		# SET FLAGS TO INDICATE CAGING OR TURN-ON
+		MASK	OCT75			# AND INHIBIT ALL ISS WARNING INFO
+		ADS	IMODES30
+
+		CS	IMODES33		# DISABLE DAP AUTO AND HOLD MODES
+		MASK	BIT6
+		ADS	IMODES33
+
+		TC	Q
+
+IMUFAIL		EQUALS	SETISSW
+ICDUFAIL	EQUALS	SETISSW
+
+# Page 159
+# JUMP TABLES AND CONSTANTS.
+
+IFAILJMP	TCF	ITURNON			# CHANNEL 30 DISPATCH.
+		TCF	IMUFAIL
+		TCF	ICDUFAIL
+		TCF	IMUCAGE
+30RDMSK		OCT	76400			# (BIT 10 NOT SAMPLED HERE).
+		TCF	IMUOP
+
+C33JMP		TCF	PIPFAIL			# CHANNEL 33 DISPATCH.
+		TCF	DNTMFAST
+		TCF	UPTMFAST
+
+# SUBROUTINE TO SKIP IF LAMP TEST NOT IN PROGRESS.
+
+LAMPTEST	CS	IMODES33		# BIT 1 OF IMODES33 = 1 IF LAMP TEST IN
+		MASK	BIT1			# PROGRESS.
+		TCF	ZOPFIN3
+
+33RDMSK		EQUALS	PRIO16
+OC40010		OCT	40010
+OCT54		OCT	54
+OCT75		OCT	75
+OCT272		OCT	00272
+BITS7&8		OCT	300
+OCT1720		OCT	1720
+OCT740		OCT	00740
+OCT15000	EQUALS	PRIO15
+OCT77000	OCT	77000
+-BIT10		OCT	-1000
+
+90SECS		DEC	9000
+120MS		=	OCT14			# (DEC12)
+GLOCKOK		EQUALS	RESUME
+
+# Page 160
+# OPTICS MONITORING AND ZERO ROUTINES
+OPTMON		CA	OPTMODES		# MONITOR OPTICS INBITS IN CHAN 30 AND 33
+		EXTEND
+		RXOR	CHAN30			# LOOK FOR OCDU FAIL BIT CHANGE
+		MASK	BIT7
+		TS	RUPTREG1		# STORE CHANGE BIT
+		CCS	A
+		TC	OCDUFTST		# PROCESS OCDUFAIL BIT CHANGE
+
+33OPTMON	CCS	OPTIND			# BYPASS IF TVC TAKEOVER
+		TCF	+4
+		TCF	+3
+		TCF	+2
+		TCF	RESUME
+
+		CA	OPTMODES		# LOOK FOR OPTICS MODE SWITCH CHANGE
+		EXTEND
+		RXOR	CHAN33
+		MASK	OCTHIRTY
+		ADS	RUPTREG1		# STORE INBIT CHANGES
+		LXCH	OPTMODES
+		EXTEND
+		RXOR	LCHAN
+		TS	OPTMODES		# UPDATE OPTMODES TO SHOW BIT CHANGES
+
+		COM				# SAMPLE CURRENT SWITCH SETTING
+		MASK	OCTHIRTY
+		EXTEND
+		BZF	SETSAMP			# MANUAL-SET ZERO IN SWSAMPLE
+
+		MASK	BIT5			# SEE IF CSC
+		CCS	A
+		TC	+2			# CSC-SET SWSAMPLE POS
+		CAF	NEGONE			# ZOPTICS-SET SWSAMPLE (-1)
+SETSAMP		TS	SWSAMPLE		# CURRENT OPTICS SWITCH SETTING
+
+PROCESSW	CCS	DESOPMOD		# BRANCH ON PREVIOUS SETTING
+		TC	CSCDES			# CSC
+		TC	MANUDES			# MANUAL
+		TC	ZOPTDES			# ZERO OPTICS
+# Page 161
+ZOPTDES		CCS	SWSAMPLE		# IS SWITCH STILL AT ZOPTICS
+		TC	ZTOCSC			# NOW AT CSC
+		TC	ZTOMAN			# MANUAL
+		TC	ZOPFIN1			# ZOPTICS-SEE IF ZOPT PROCESSING	// Should be TC ZOPFINI
+		TC	SETDESMD		# ZOPT NOT PROCESSING-NO ACTION
+
+		CCS	ZOPTCNT			# ZOPT PROCESSING-CHECK COUNTER
+		TC	SETCNT			# 32 SAMPLE NOT FINISHED-SET COUNTER
+		TC	SETZOEND		# 32 SAMPLE WAIT COMPLETED-SET UP ZOP END
+
+ZTOMAN		TC	ZOPFIN1			# ZOP TO MANUAL-IS ZOPT DONE		// Should be TC ZOPFINI
+		TC	SETDESMD		# YES-NORMAL EXIT
+
+ZOPALARM	TC	ALARM			# ALARM-SWITCHED ALTERED WHILE ZOPTICS
+		OCT	00116
+		CAF	OCT13			# PROCESSING-SET RETURN OPTION
+		TS	WTOPTION
+
+		TC	CANZOPT			# CANCEL ZOPT
+
+		TC	SETDESMD
+
+ZTOCSC		TC	ZOPFIN1			# SEE IF ZOPT PROCESSING		// Should be TC ZOPFINI
+		TC	MANTOCSC +3		# NO-CHECK RETURN TO COARS OPT
+		TC	ALARM			# ZOPT PROCESSING-ALARM
+		OCT	00116
+		TC	CANZOPT			# CANCEL ZOPT
+		TC	MANTOCSC		# ZERO CNT-LOOK FOR COARS OPT RETURN
+
+COARSLOK	CAF	BIT9			# IF COARS OPT SINCE FSTART GO TO L+2
+		TCF	ZOPFIN2			# IF NOT GO TO L+1
+ZOPFIN1		CAF	BIT1			# SEE IF END ZOPT TASK WORKING	// Label should be ZOPFINI
+		MASK	OPTMODES
+		CCS	A
+		TC	RESUME			# ZOPT TASK WORKING-WAIT ONE SAMPLE PERIOD
+
+		CAF	BIT3			# TEST IF ZOPTICS PROCESSING
+ZOPFIN2		MASK	OPTMODES		# RETURNS TO L+1 PROCESSING AND
+ZOPFIN3		CCS	A
+		INCR	Q			# L+2 IF NOT
+		TC	Q
+
+CANZOPT		CS	SIX			# CANCEL ZERO OPTICS
+		MASK	OPTMODES		# ZERO ZOPT PROCESSING BIT-ENABLE OCDUFAIL
+		TS	OPTMODES
+		CS	BIT1			# MAKE SURE ZERO OCDU IS OFF
+		EXTEND
+		WAND	CHAN12
+		TC	Q
+
+# Page 162
+MANUDES		CCS	SWSAMPLE		# SEE IF SWITCH STILL IN MANUAL MODE
+		TC	MANTOCSC		# NOW AT CSC
+		TC	MANTOMAN		# STILL MANUAL
+		CCS	WTOPTION		# ZOPTICS-LOOK AT ZOPTICS RETURN OPTION
+		TC	+2			# 5 SEC RETURN GOOD-CONTINUE ZOPTICS
+		TC	OPTZERO			# ZOPTICS MUST START ANEW
+
+		TC	INITZOPT		# SHOW ZERO OPTICS PROCESSING
+		TC	SETDESMD		# NORMAL EXIT
+
+MANTOMAN	CCS	WTOPTION		# DECREMENT RETURN OPTION TIME
+		TS	WTOPTION
+		TC	SETDESMD
+
+MANTOCSC	CAF	ZERO			# CANCEL ZOPT RETURN OPTION IF SET
+		TS	WTOPTION
+		TS	ZOPTCNT
+
+		TC	COARSLOK		# CHECK FOR COARS OPT RETURN
+		TC	SETDESMD		# NO COARS TASK-NO ACTION
+
+		CAF	ONE			# SET COARS OPT WORKING
+		TS	OPTIND
+		CAF	BIT2			# ENABLE OPTICS CDU ERROR CNTS
+		EXTEND
+		WOR	CHAN12
+
+		TC	SETDESMD
+
+CSCDES		CCS	SWSAMPLE		# SEE IF SWITCH STILL AT CSC
+		TC	SETDESMD		# STILL AT CSC
+		TC	CSCTOMAN		# MANUAL
+CSCTOZOP	CAF	OCT40			# ZOPTICS-INITIALIZE FOR ZOPT
+		TS	ZOPTCNT
+		TC	INITZOPT
+
+CSCTOMAN	CCS	OPTIND			# SEE IF COARS WORKING
+		TC	CANCOARS		# COARS WORKING-SWITCH NOT CSC-KILL COARS
+		TC	CANCOARS
+		TC	+1			# NO COARS-NORMAL EXIT
+		TC	SETDESMD
+# Page 163
+CANCOARS	CA	NEGONE
+		TS	OPTIND			# SET OPTIND (-1) TO SHOW NOT WORKING
+		CS	BIT2			# DISABLE OCDU ERR CNTS
+		EXTEND
+		WAND	CHAN12
+		CS	OPTMODES		# SET RETURN-TO-COARS BIT
+		MASK	BIT9
+		ADS	OPTMODES
+
+		TC	SETDESMD
+OPTZERO		TC	INITZOPT		# INITIALIZE ZERO OPTICS
+
+		CA	OCT40			# SET UP 32 SAMPLE WAIT
+SETCNT		TS	ZOPTCNT
+SETDESMD	CA	SWSAMPLE		# SET CURRENT SWITCH INDICATION-RESUME
+		TS	DESOPMOD
+		TC	RESUME
+
+SETZOEND	CAF	BIT1			# SEND ZERO OPTICS CDU
+		EXTEND
+		WOR	CHAN12
+		CA	200MS			# HOLD ZERO CDU FOR 200 MS
+		TC	WAITLIST
+		EBANK=	OPTMODES
+		2CADR	ENDZOPT
+
+		CS	OPTMODES		# SHOW ZOPTICS TASK WORKING
+		MASK	BIT1
+		ADS	OPTMODES
+
+		TC	SETDESMD
+
+ENDZOPT		TC	ZEROPCDU		# ZERO OCDU COUNTERS
+		CS	BIT1			# TURN OFF ZERO OCDU
+		EXTEND
+		WAND	CHAN12
+		CAF	200MS			# DELAY 200MS FOR CDUS TO RESYNCHRONIZE
+		TC	VARDELAY
+
+		CS	OPTMODES		# SHOW ZOPTICS SINCE LAST FRESH START
+		MASK	BIT10			#	OR RESTART
+		ADS	OPTMODES
+
+		CS	SEVEN			# ENABLE OCDUFAIL-SHOW OPTICS COMPLETE
+		MASK	OPTMODES
+		TS	OPTMODES
+
+		TC	OCDUFTST		# CHECK OCDU FAIL BIT AFTER ENABLE.
+# Page 164
+		TC	TASKOVER
+
+ZEROPCDU	CAF	ZERO
+		TS	CDUS			# ZERO IN CDUS, -20 IN CDUT
+		TS	ZONE			# INITIALZE SHAFT MONITOR ZONE.
+		CS	20DEGS
+		TS	CDUT
+		TC	Q
+
+INITZOPT	CAF	ZERO			# INITIALIZE ZOPTICS-INHIBIT OCDUFAIL
+		TS	WTOPTION		# AND SHOW OPTICS PROCESSING
+		CS	OPTMODES		# SET ZERO OPTICS PROCESSING
+		MASK	SIX			#	OPTICS CDU FAIL INHIBITED
+		ADS	OPTMODES
+		TC	Q
+
+# Page 165
+OCDUFTST	CAF	BIT7			# SEE IF OCDUFAIL ON OR OFF
+		EXTEND
+		RAND	CHAN30
+		CCS	A
+		TCF	OPFAILOF		# OCDUFAIL LIGHT OFF
+
+		CAF	BIT2			# OCDUFAIL LIGHT ON UNLESS INHIBITED
+		MASK	OPTMODES
+		CCS	A
+		TC	Q			# OCDUFAIL INHIBITED
+
+OPFAILON	CAF	BIT8			# ON BIT
+		AD	DSPTAB	+11D
+		MASK	BIT8
+SETOFF		EXTEND
+		BZF	TCQ			# NO CHANGE
+
+		TS	L
+		CA	DSPTAB	+11D
+		EXTEND
+		RXOR	LCHAN
+		MASK	POSMAX
+		AD	BIT15			# SHOW ACTION WANTED
+		TS	DSPTAB	+11D
+		TC	Q
+
+OPFAILOF	CAF	BIT1			# DON'T TURN OFF IF LAMP TEST
+		MASK	IMODES33
+		CCS	A
+		TC	Q			# LAMP TEST IN PROGRESS
+
+		CAF	BIT8			# TURN OFF OCDUFAIL LIGHT
+		MASK	DSPTAB	+11D
+		TCF	SETOFF
+
+OCT13		=	ELEVEN
+OCTHIRTY	EQUALS	BITS4&5
+20DEGS		DEC	7199
+OCT40		EQUALS	BIT6
+200MS		EQUALS	OCT24
+
+# Page 166
+# OPTICS CDU DRIVING PROGRAM
+
+		BANK	10
+		SETLOC	OPTDRV
+		BANK
+		COUNT*	$$/SXT
+
+# SHAFT STOP MONITOR-ZONE UPDATE
+
+OPTDRIVE	CA	CDUS			# GRAB OPTIC SHAFT CDU
+		TS	L
+		CCS	A			# GET ABS(CDUS)
+		AD	13,14,15
+		TCF	+2			# ABS(CDUS) - 45 DEG
+		TCF	-2
+		EXTEND
+		BZMF	OZONE			# LESS THAN 45 DEG-SET ZONE 0
+		CA	ZONE			# IF ZONE ZERO, CHANGE TO + OR - OTHERWISE
+		EXTEND				# DON'T MESS WITH ZONE
+		BZF	+2
+		TCF	CONTDRVE		# JUST CONTINUE
+		XCH	L			# GREATER THAN 45 DEG-SET ZONE TO SIGN CDU
+		TCF	OZONE	+1
+OZONE		CAF	ZERO			# ABS(CDUS) LESS THAN 90 DEG-ZONE ZERO
+		TS	ZONE
+		COUNT*	$$/T4RUPT
+CONTDRVE	CCS	OPTIND
+		TC	+4			# WORK COARS OPTICS
+		TC	+3			# WORK COARS OPTICS
+		TC	RESUME			# NO OPT
+		TC	RESUME			# NO OPT
+
+		CA	SWSAMPLE		# SEE IF SWITCH AT CMC
+		EXTEND
+		BZMF	RESUME			# ZERO (-1)	MANUAL (+0)
+
+		CAF	BIT10			# SEE IF OCDUS ZEROED SINCE LAST FSTART
+		MASK	OPTMODES
+		CCS	A
+		TC	+3
+		TC	ALARM			# OPTICS NOT ZEROED
+		OCT	00120
+
+		CA	BIT2			# SEE IF ERR CNTS ENABLED
+		EXTEND
+		RAND	CHAN12
+		EXTEND
+		BZF	SETBIT			# CNTS NOT ENABLED-DO IT AND RESUME
+
+		CAF	ONE			# INITIALIZE OPTIND
+# Page 167
+OPT2		TS	OPTIND
+		EXTEND
+		BZF	TRUNCMD			# CHECK TRUNION COMMAND
+
+GETOPCMD	INDEX	OPTIND
+		CA	DESOPTT			# PICK UP DESIRED OPT ANGLE
+		EXTEND
+		INDEX	OPTIND
+		MSU	CDUT			# GET DIFFERENCE
+		EXTEND
+		MP	BIT13
+		XCH	L
+		DOUBLE
+		TS	ITEMP1
+		TCF	+2			# NO OVFL
+
+		ADS	L			# WITH OVFL
+STORCMD		INDEX	OPTIND
+		LXCH	COMMANDO		# STORE COMMAND
+		CCS	OPTIND
+		TCF	OPT2			# GET NEXT COMMAND
+
+		TS	ITEMP1			# INITIALIZE SEND INDICATOR TO ZERO
+		COUNT*	$$/SXT
+
+# SHAFT STOP AVOIDANCE
+
+		CCS	CDUS			# IF CDUS GREATER THAN + OR - 90 DEG CHECK
+		AD	NEG1/2			# FOR POSSIBLE STOP PROBLEM
+		TCF	+2
+		TCF	-2
+		EXTEND
+		BZMF	CMDSETUP		# CDU LESS THAN 90 DEG, NO PROBLEMS
+
+		CA	ZONE
+		EXTEND
+		BZF	CMDSETUP		# ZONE=3, NORMAL COMMAND
+		MASK	BIT15			# GRAB SIGN OF ZONE
+		TS	L
+		CA	COMMANDO +1
+		MASK	BIT15			# GRAB SIGN OF SHAFT COMMAND
+		EXTEND
+		RXOR	LCHAN
+		CCS	A
+		TCF	CMDSETUP		# SIGN ZONE NOT EQUAL TO SIGN COMMAND
+		CCS	DESOPTS			# SEE IF DESOPTS BETWEEN -90 AND +90
+		AD	NEG1/2
+		TCF	+2			# ABS(DESOPTS) - 90 DEG
+		TCF	-2
+		EXTEND
+# Page 168
+		BZMF	+2			# DESOPTS IN FIRST OR FOURTH QUAD
+		TCF	CMDSETUP
+		CS	COMMANDO +1		# REVERSE REGULAR COMMAND
+		TS	COMMANDO +1
+
+		COUNT*	$$/T4RPT
+
+CMDSETUP	CAF	ONE			# SET OPTIND
+		TS	OPTIND
+		INDEX	A
+		CCS	COMMANDO		# GET SIGN OF COMMAND
+		TC	POSOPCMD
+		TC	NEXTOPT	+1		# ZERO COMMAND-SKIP SEND INDICATOR
+		TC	NEGOPCMD
+		TC	NEXTOPT	+1		# ZERO COMMAND
+
+TRUNCMD		CS	CDUT			# IF COMMAND GREATER THAN 45 DEG-COMMAND
+		AD	DESOPTT			# 45 DEG
+		TS	Q
+		TC	GETOPCMD		# LESS THAN 45 DEG-NORMAL OPERATION
+
+		CCS	A			# GREATER THAN 45 DEG-USE OPSMAX WITH
+		CA	POSMAX			# CORRECT SIGN
+		TC	+2
+		CS	POSMAX
+		TS	L
+		TC	STORCMD
+POSOPCMD	AD	MAXPLS1
+		EXTEND
+		BZMF	DELOPCMD		# COMMAND LESS THAN MAX PULSE
+		CS	MAXPLS			# GREATER THAN MAX PULSE-USE MAX PULSE
+
+NEXTOPT		INCR	ITEMP1			# SET SEND INDICATOR
+		AD	NEG0			# MAKE SURE ZERO COMMAND IS -ZERO
+		INDEX	OPTIND
+		TS	CDUTCMD			# STORE PULSE IN SEND REG
+
+		CCS	OPTIND
+		TC	CMDSETUP +1		# GET NEXT OPT
+
+		CCS	ITEMP1			# ARE ANY PULSES TO GO
+		TCF	SENDOCMD		# YES-SEND EM
+		TC	RESUME			# NO
+
+NEGOPCMD	AD	MAXPLS1
+		EXTEND
+		BZMF	DELOPCMD		# LESS THAN MAX PULSE
+		CA	MAXPLS			# MAX PULSES
+		TCF	NEXTOPT
+# Page 169
+DELOPCMD	INDEX	OPTIND
+		XCH	COMMANDO		# SET UP SMALL COMMAND
+		TCF	NEXTOPT
+
+SENDOCMD	CAF	11,12			# SEND OCDU DRIVE COMMANDS
+		EXTEND
+		WOR	CHAN14
+		TC	RESUME
+
+SETBIT		CAF	BIT2			# ENABLE OCDU ERR CNTS
+		EXTEND
+		WOR	CHAN12
+		TC	RESUME			# START COARS NEXT TIME AROUND
+
+MAXPLS		DEC	-165			# WAS -80
+MAXPLS1		DEC	-164			# WAS -79
+11,12		EQUALS	PRIO6
+
diff --git a/T6-RUPT_PROGRAMS.s b/T6-RUPT_PROGRAMS.s
new file mode 100644
index 0000000..c838543
--- /dev/null
+++ b/T6-RUPT_PROGRAMS.s
@@ -0,0 +1,163 @@
+# Copyright:	Public domain.
+# Filename:	T6-RUPT_PROGRAMS.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	1403-1405
+# Mod history:  2009-05-10 SN   (Sergio Navarro).  Started adapting
+#				from the Luminary131/ file of the same
+#				name, using Luminary099 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 001 of AGC program LMY99 by NASA 2021112-61
+#	16:27 JULY 14, 1969 
+
+# Page 1403
+# PROGRAM NAMES:	(1) T6JOBCHK	MOD. NO. 5	OCTOBER 2, 1967
+#			(2) DOT6RUPT
+# MODIFICATION BY:	LOWELL G. HULL (A.C.ELECTRONICS)
+#
+# THESE PROGRAMS ENABLE THE LM DAP TO CONTROL THE THRUST TIMES OF THE REACTION CONTROL SYSTEM JETS BY USING TIME6.
+# SINCE THE LM DAP MAINTAINS EXCLUSIVE CONTROL OVER TIME6 AND ITS INTERRUPTS, THE FOLLOWING CONVENTIONS HAVE BEEN
+# ESTABLISHED AND MUST NOT BE TAMPERED WITH:
+#	1.	NO NUMBER IS EVER PLACED INTO TIME6 EXCEPT BY LM DAP.
+#	2.	NO PROGRAM OTHER THAN LM DAP ENABLES THE TIME6 COUNTER.
+#	3.	TO USE TIME6, THE FOLLOWING SEQUENCE IS ALWAYS EMPLOYED:
+#		A.	A POSITIVE (NON-ZERO) NUMBER IS STORED IN TIME6.
+#		B.	THE TIME6 CLOCK IS ENABLED.
+#		C.	TIME6 IS INTERROGATED AND IS:
+#			I.	NEVER FOUND NEGATIVE (NON-ZERO) OR +0.
+#			II.	SOMETIMES FOUND POSITIVE (BETWEEN 1 AND 240D) INDICATING THAT IT IS ACTIVE.
+#			III.	SOMETIMES FOUND POSMAX INDICATING THAT IT IS INACTIVE AND NOT ENABLED.
+#			IV.	SOMETIMES FOUND NEGATIVE ZERO INDICATING THAT:
+#				A.	A T6RUPT IS ABOUT TO OCCUR AT THE NEXT DINC, OR
+#				B.	A T6RUPT IS WAITING IN THE PRIORITY CHAIN, OR
+#				C.	A T6RUPT IS IN PROCESS NOW.
+#	4.	ALL PROGRAMS WHICH OPERATE IN EITHER INTERRUPT MODE OR WITH INTERRUPT INHIBITED MUST CALL T6JOBCHK
+#		EVERY 5 MILLISECONDS TO PROCESS A POSSIBLE WAITING T6RUPT BEFORE IT CAN BE HONORED BY THE HARDWARE.
+#      (5.	PROGRAM JTLST, IN Q,R-AXES, HANDLES THE INPUT LIST.)
+#
+# T6JOBCHK CALLING SEQUENCE:
+#		L	TC	T6JOBCHK
+#		L+1	(RETURN)
+#
+# DOT6RUPT CALLING SEQUENCE:
+#			DXCH	ARUPT		# T6RUPT LEAD IN AT LOCATION 4004.
+#			EXTEND
+#			DCA	T6ADR
+#			DTCB
+#
+# SUBROUTINES CALLED:	DOT6RUPT CALLS T6JOBCHK.
+#
+# NORMAL EXIT MODES:	T6JOBCHK RETURNS TO L +1.
+#			DOT6RUPT TRANSFERS CONTROL TO RESUME.
+#
+# ALARM/ABORT MODES:	NONE.
+#
+# INPUT:	TIME6		NXT6ADR		OUTPUT:		TIME6		NXT6ADR		CHANNEL 5
+#		T6NEXT		T6NEXT +1			T6NEXT		T6NEXT +1	CHANNEL 6
+#		T6FURTHA	T6FURTHA +1			T6FURTHA	T6FURTHA +1	BIT15/CH13
+#
+# DEBRIS:	T6JOBCHK CLOBBERS A.  DOT6RUPT CLOBBERS NOTHING.
+
+		BLOCK	02
+# Page 1404
+		BANK	17
+		SETLOC	DAPS2
+		BANK
+		EBANK=	T6NEXT
+		COUNT*	$$/DAPT6
+
+T6JOBCHK	CCS	TIME6		# CHECK TIME6 FOR WAITING T6RUPT:
+		TC	Q		# NONE: CLOCK COUNTING DOWN.
+		TC	CCSHOLE
+		TC	T6JOBCHK +3
+
+# CONTROL PASSES TO T6JOB ONLY WHEN C(TIME6) = -0 (I.E., WHEN A T6RUPT MUST BE PROCESSED).
+
+T6JOB		CAF	POSMAX		# DISABLE CLOCK: NEEDED SINCE RUPT OCCURS
+		EXTEND			# 1 DINC AFTER T6 = 77777. FOR 625 MUSECS
+		WAND	CHAN13		# MUST NOT HAVE T6 = +0 WITH ENABLE SET
+
+		CA	POSMAX
+		ZL
+		DXCH	T6FURTHA
+		DXCH	T6NEXT
+		LXCH	NXT6ADR
+		TS	TIME6
+
+		AD	PRIO37
+		TS	A
+		TCF	ENABLET6
+		CA	POSMAX
+		TS	TIME6
+		TCF	GOCH56
+ENABLET6	CA	BIT15
+		EXTEND
+		WOR	CHAN13
+		CA	T6NEXT
+		AD	PRIO37
+		TS	A
+		TCF	GOCH56
+		CA	POSMAX
+		TS	T6NEXT
+GOCH56		INDEX	L
+		TCF	WRITEP -1
+
+		BLOCK	02
+		SETLOC	FFTAG9
+		BANK
+		EBANK=	CDUXD
+		COUNT*	$$/DAPT6
+
+		CA	NEXTP
+WRITEP		EXTEND
+		WRITE	CHAN6
+# Page 1405
+		TC	Q
+
+		CA	NEXTU
+WRITEU		TS	L
+		CS	00314OCT
+		EXTEND
+		RAND	CHAN5
+		AD	L
+		EXTEND
+		WRITE	CHAN5
+		TC	Q
+
+		CA	NEXTV
+WRITEV		TS	L
+		CA	00314OCT
+		TCF	-9D
+00314OCT	OCT	00314
+
+		BANK	17
+		SETLOC	DAPS2
+		BANK
+
+		EBANK=	T6NEXT
+		COUNT*	$$/DAPT6
+
+DOT6RUPT	LXCH	BANKRUPT	# (INTERRUPT LEAD INS CONTINUED)
+		EXTEND
+		QXCH	QRUPT
+
+		TC	T6JOBCHK	# CALL T6JOBCHK.
+
+		TCF	RESUME		# END TIME6 INTERRUPT PROCESSOR.
+
diff --git a/TAGS_FOR_RELATIVE_SETLOC.s b/TAGS_FOR_RELATIVE_SETLOC.s
new file mode 100644
index 0000000..1644bda
--- /dev/null
+++ b/TAGS_FOR_RELATIVE_SETLOC.s
@@ -0,0 +1,436 @@
+# Copyright:	Public domain.
+# Filename:	TAGS_FOR_RELATIVE_SETLOC.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.
+# Mod history:	2009-05-05 RSB	Adapted from the Colossus249/ file of the 
+#				same name, using Comanche055 page images.
+#		2009-05-20 RSB	Corrected R32 -> R31.
+#
+# 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 27
+# TAGS FOR RELATIVE SETLOC AND BLANK BANK CARDS
+
+FIXED		MEMORY	120000 - 167777
+		COUNT	BANKSUM
+
+# MODULE 1 CONTAINS BANKS 0 THROUGH 5
+
+		BLOCK	02
+FFTAG1		EQUALS
+FFTAG2		EQUALS
+FFTAG3		EQUALS
+FFTAG4		EQUALS
+FFTAG7		EQUALS
+FFTAG8		EQUALS
+FFTAG9		EQUALS
+FFTAG10		EQUALS
+FFTAG12		EQUALS
+P30SUBS		EQUALS
+STOPRAT		EQUALS
+P23S		EQUALS
+		BNKSUM	02
+		
+		BLOCK	03
+FFTAG5		EQUALS
+FFTAG6		EQUALS
+DAPS9		EQUALS
+FFTAG13		EQUALS
+		BNKSUM	03
+		
+		BANK	00
+DLAYJOB		EQUALS
+		BNKSUM	00
+		
+		BANK	01
+RESTART		EQUALS
+		BNKSUM	01
+		
+		BANK	4
+VERB37		EQUALS
+CONICS1		EQUALS
+PINBALL4	EQUALS
+CSI/CDH1	EQUALS
+INTPRET2	EQUALS
+IMUCAL1		EQUALS
+
+# Page 28
+
+STBLEORB	EQUALS
+E/PROG		EQUALS
+MIDDGIM		EQUALS
+
+		BNKSUM	04
+		
+		BANK	5
+FRANDRES	EQUALS
+DOWNTELM	EQUALS
+DAPMASS		EQUALS
+CDHTAG		EQUALS
+		BNKSUM	05
+		
+# MODULE 2 CONTAINS BANKS 6 THROUGH 13
+
+		BANK	6
+IMUCOMP		EQUALS
+T4RUP		EQUALS
+IMUCAL2		EQUALS
+CSIPROG		EQUALS
+		BNKSUM	06
+	
+		BANK	7
+SXTMARKE	EQUALS
+R02		EQUALS
+MODESW		EQUALS
+XANG		EQUALS
+KEYRUPT		EQUALS
+CSIPROG6	EQUALS
+		BNKSUM	07
+		
+		BANK	10
+DISPLAYS	EQUALS
+PHASETAB	EQUALS
+COMGEOM2	EQUALS
+SXTMARK1	EQUALS
+P60S4		EQUALS
+OPTDRV		EQUALS
+CSIPROG8	EQUALS
+		BNKSUM	10
+		
+		BANK	11
+ORBITAL		EQUALS
+ORBITAL1	EQUALS			# CONSTANTS
+
+# Page 29
+
+INTVEL		EQUALS
+S52/2		EQUALS
+CSIPROG5	EQUALS
+INTINIT1	EQUALS
+		BNKSUM	11
+		
+		BANK	12
+CONICS		EQUALS
+CSIPROG2	EQUALS
+CSI/CDH2	EQUALS
+MODCHG2		EQUALS
+		BNKSUM	12
+		
+		BANK	13
+P76LOC		EQUALS
+LATLONG		EQUALS
+INTINIT		EQUALS
+SR52/1		EQUALS
+ORBITAL2	EQUALS
+CDHTAGS		EQUALS
+E/PROG1		EQUALS
+MODCHG3		EQUALS
+		BNKSUM	13
+		
+# MODULE 3 CONTAINS BANKS 14 THROUGH 21
+
+		BANK 	14
+STARTAB		EQUALS
+RT53		EQUALS
+P50S1		EQUALS
+MEASINC2	EQUALS
+CSI/CDH3	EQUALS
+		BNKSUM	14	
+
+		BANK	15
+P50S		EQUALS
+ETRYDAP		EQUALS
+S52/3		EQUALS
+		BNKSUM	15
+		
+		BANK	16
+P40S1		EQUALS
+
+# Page 30
+
+DAPROLL		EQUALS
+P50S2		EQUALS
+P23S1		EQUALS
+RTE2		EQUALS
+		BNKSUM	16
+		
+		BANK	17
+DAPS4		EQUALS
+DAPS5		EQUALS
+DAPS7		EQUALS
+P50S3		EQUALS
+		BNKSUM	17
+		
+		BANK	20
+DAPS6		EQUALS
+DAPS1		EQUALS
+DAPS2		EQUALS
+MANUSTUF	EQUALS
+R36CM		EQUALS
+VAC5LOC		EQUALS
+		BNKSUM	20
+		
+		BANK	21
+DAPS3		EQUALS
+MYSUBS		EQUALS
+KALCMON3	EQUALS
+		BNKSUM	21
+
+# MODULE 4 CONTAINS BANKS 22 THROUGH 27
+
+		BANK	22
+RTBCODES	EQUALS
+RTBCODE1	EQUALS
+DAPS8		EQUALS
+APOPERI		EQUALS
+P40S5		EQUALS
+KALCMON2	EQUALS
+KALCMON1	EQUALS
+CSIPROG3	EQUALS
+		BNKSUM	22
+
+# Page 31
+
+		BANK	23
+P20S2		EQUALS
+INFLIGHT	EQUALS
+COMGEOM1	EQUALS
+POWFLITE	EQUALS
+POWFLIT1	EQUALS
+RENDGUID	EQUALS
+POWFLIT2	EQUALS
+R30LOC		EQUALS
+P11FOUR		EQUALS
+CSIPROG4	EQUALS
+		BNKSUM	23
+		
+		BANK	24
+LOADDAP		EQUALS
+P40S		EQUALS
+CSIPROG7	EQUALS
+		BNKSUM	24
+		
+		BANK	25
+REENTRY		EQUALS
+CDHTAG1		EQUALS
+		BNKSUM	25
+		
+		BANK	26
+INTPRET1	EQUALS
+REENTRY1	EQUALS
+P60S		EQUALS
+P60S1		EQUALS
+P60S2		EQUALS
+P60S3		EQUALS
+PLANTIN		EQUALS			# LUNAR ROT
+EPHEM		EQUALS
+P05P06		EQUALS
+26P50S		EQUALS
+		BNKSUM	26
+		
+		BANK	27
+TOF-FF		EQUALS
+TOF-FF1		EQUALS
+MANUVER		EQUALS
+MANUVER1	EQUALS
+
+# Page 32
+
+VECPT		EQUALS
+UPDATE1		EQUALS
+UPDATE2		EQUALS
+R22S1		EQUALS
+P60S5		EQUALS
+P40S2		EQUALS
+		BNKSUM	27
+
+# MODULE 5 CONTAINS BANKS 30 THROUGH 35
+
+		BANK	30
+IMUSUPER	EQUALS
+LOWSUPER	EQUALS
+FCSTART		EQUALS			# STANDARD LOCATION FOR THIS. (FOR EXTV8)
+LOPC		EQUALS
+P20S1		EQUALS
+P20S6		EQUALS
+P40S3		EQUALS
+R35A		EQUALS
+		BNKSUM	30
+		
+		BANK	31
+R35		EQUALS
+RT23		EQUALS
+P30S1A		EQUALS
+R34		EQUALS
+CDHTAG2		EQUALS
+CSIPROG9	EQUALS
+R31		EQUALS
+P22S		EQUALS
+RTE3		EQUALS
+		BNKSUM	31
+		
+		BANK	32
+MSGSCAN1	EQUALS
+RTE		EQUALS
+DELRSPL1	EQUALS
+IMUCAL3		EQUALS
+		BNKSUM	32
+		
+		BANK	33
+TESTLEAD	EQUALS
+
+# Page 33
+
+IMUCAL		EQUALS
+		BNKSUM	33
+		
+		BANK	34
+P11ONE		EQUALS
+P20S3		EQUALS
+P20S4		EQUALS
+RTECON		EQUALS
+		BNKSUM	34
+		
+		BANK	35
+RTECON1		EQUALS
+CSI/CDH		EQUALS
+P30S1		EQUALS
+P30S		EQUALS
+P17S1		EQUALS
+MEASINC3	EQUALS
+INTINIT2	EQUALS
+		BNKSUM	35
+		
+# MODULE 6 CONTAINS BANKS 36 THROUGH 43
+
+		BANK	36
+MEASINC		EQUALS
+MEASINC1	EQUALS
+P17S		EQUALS
+RTE1		EQUALS
+S3435LOC	EQUALS
+		BNKSUM	36
+		
+		BANK	37
+P20S		EQUALS
+BODYATT		EQUALS
+RENDEZ		EQUALS
+SERVICES	EQUALS
+P11TWO		EQUALS
+CDHTAG3		EQUALS
+		BNKSUM	37
+		
+		BANK	40
+PINSUPER	EQUALS
+
+# Page 34
+
+SELFSUPR	EQUALS
+PINBALL1	EQUALS
+R36CM1		EQUALS
+		BNKSUM	40
+		
+		BANK	41
+PINBALL2	EQUALS
+R36LM		EQUALS
+		BNKSUM	41
+		
+		BANK	42
+SBAND		EQUALS	
+PINBALL3	EQUALS
+EXTVBS		EQUALS
+R36LM1		EQUALS
+		BNKSUM	42
+		
+		BANK	43
+SELFCHEC	EQUALS
+EXTVERBS	EQUALS
+		BNKSUM	43
+		
+HI6ZEROS	EQUALS	ZEROVECS		# ZERO VECTOR ALWAYS IN HIGH MEMORY
+LO6ZEROS	EQUALS	ZEROVEC			# ZERO VECTOR ALWAYS IN LOW MEMORY
+HIDPHALF	EQUALS	UNITX
+LODPHALF	EQUALS	XUNIT
+HIDP1/4		EQUALS	DP1/4TH	
+LODP1/4		EQUALS	D1/4			# 2DEC .25
+HIUNITX		EQUALS	UNITX
+HIUNITY		EQUALS	UNITY
+HIUNITZ		EQUALS	UNITZ
+LOUNITX		EQUALS	XUNIT			# 2DEC .5
+LOUNITY		EQUALS	YUNIT			# 2DEC 0
+LOUNITZ		EQUALS	ZUNIT			# 2DEC 0
+3/4LOWDP	EQUALS	3/4			# 2DEC 3.0 B-2
+
+		SBANK=	LOWSUPER
+
+# ROPE-SPECIFIC ASSIGNS OBVIATING NEED TO CHECK COMPUTER FLAG IN DETERMINING(?) INTEGRATION AREA ENTRIES.
+
+OTHPREC		EQUALS	LEMPREC
+ATOPOTH		EQUALS	ATOPLEM
+ATOPTHIS	EQUALS	ATOPCSM
+MOONTHIS	EQUALS	CMOONFLG
+
+# Page 35
+
+MOONOTH		EQUALS	LMOONFLG
+MOVATHIS	EQUALS	MOVEACSM
+STATEST		EQUALS	V83CALL			# * TEMPORARY
+THISPREC	EQUALS	CSMPREC
+THISAXIS	=	UNITX
+ERASID		EQUALS	LOW10			# DOWNLINK ERASABLE DUMP ID
+DELAYNUM	EQUALS	THREE
+
+#********************************************************************************************************
+
+# THE FOLLOWING ECADRS ARE DEFINED TO FACILITATE EBANK SWITCHING.  THEY ALSO MAKE IT EASIER FOR
+# ERASABLE CONTROL TO REARRANGE ERASABLE MEMORY WITHOUT DISRUPTING THE PROGRAMS WHICH SET EBANKS.
+# PRIOR TO ROPE RELEASE FIXED MEMORY CAN BE SAVED BY SETTING EACH EBXXXX =EBANKX (X=4,5,6,7).  EBANKX OF COURSE
+# WILL BE THE BANK WHERE THE ERASABLES REFERENCED IN EBXXXX WILL BE STORED.
+
+		BANK	7
+		EBANK=	MARKDOWN
+EBMARKDO	ECADR	MARKDOWN
+		EBANK=	MRKBUF1
+EBMRKBUF	ECADR	MRKBUF1
+
+		BANK	24
+		EBANK=	DVCNTR
+EBDVCNTR	ECADR	DVCNTR
+		EBANK=	P40TMP
+EBP40TMP	ECADR	P40TMP
+
+		BANK	34
+		EBANK=	DVCNTR
+EBDVCNT		ECADR	DVCNTR
+		EBANK=	QPLACES
+EBQPLACE	ECADR	QPLACES
+
+		BANK	37
+		EBANK=	RN1
+EBRN1		ECADR	RN1
+
+#******************************************************************************************************
+
+# Page 36
+		
+# *** END OF MAIN PROGRAM ***
+
diff --git a/THE_LUNAR_LANDING.s b/THE_LUNAR_LANDING.s
new file mode 100644
index 0000000..775f08d
--- /dev/null
+++ b/THE_LUNAR_LANDING.s
@@ -0,0 +1,335 @@
+# Copyright:	Public domain.
+# Filename:	THE_LUNAR_LANDING.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:	785-792
+# Mod history:	2009-05-20 HG	Transcribed from 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 001 of AGC program LMY99 by NASA 2021112-61
+#	16:27 JULY 14, 1969 
+
+# Page 785
+		BANK	32
+		SETLOC	F2DPS*32
+		BANK
+
+		EBANK=	E2DPS
+
+#	*************************************
+#	P63: THE LUNAR LANDING, BRAKING PHASE
+#	*************************************
+
+		COUNT*	$$/P63
+
+P63LM		TC	PHASCHNG
+		OCT	04024
+
+		TC	BANKCALL	# DO IMU STATUS CHECK ROUTINE R02
+		CADR	R02BOTH
+
+		CAF	P63ADRES	# INITIALIZE WHICH FOR BURNBABY
+		TS	WHICH
+
+		CAF	DPSTHRSH	# INITIALIZE DVMON
+		TS	DVTHRUSH
+		CAF	FOUR
+		TS	DVCNTR
+
+		CS	ONE		# INITIALIZE WCHPHASE AND FLPASS0
+		TS	WCHPHASE
+
+		CA	ZERO
+		TS	FLPASS0
+
+		CS	BIT14
+		EXTEND
+		WAND	CHAN12		# REMOVE TRACK-ENABLE DISCRETE.
+
+FLAGORGY	TC	INTPRET		# DIONYSIAN FLAG WAVING
+		CLEAR	CLEAR
+			NOTHROTL
+			REDFLAG
+		CLEAR	SET
+			LRBYPASS
+			MUNFLAG
+		CLEAR	CLEAR
+			P25FLAG		# TERMINATE P25 IF IT IS RUNNING.
+			RNDVZFLG	# TERMINATE P20 IF IT IS RUNNING.
+
+					# ********************************
+
+IGNALG		SETPD	VLOAD		# FIRST SET UP INPUTS FOR RP-TO-R:
+# Page 786
+			0		# 	AT 0D LANDING SITE IN MOON FIXED FRAME
+			RLS		#	AT 6D ESTIMATED TIME OF LANDING
+		PDDL	PUSH		#	MPAC NON-ZERO TO INDICATE LUNAR CASE
+			TLAND
+		STCALL	TPIP		# ALSO SET TPIP FOR FIRST GUIDANCE PASS
+			RP-TO-R
+		VSL4	MXV
+			REFSMMAT
+		STCALL	LAND
+			GUIDINIT	# GUIDINIT INITIALIZES WM AND /LAND/
+		DLOAD	DSU
+			TLAND
+			GUIDDURN
+		STCALL	TDEC1		# INTEGRATE STATE FORWARD TO THAT TIME
+			LEMPREC
+		SSP	VLOAD
+			NIGNLOOP
+			40D
+			UNITX
+		STOVL	CG
+			UNITY
+		STOVL	CG +6
+			UNITZ
+		STODL	CG +14
+			99999CON
+		STOVL	DELTAH		# INITIALIZE DELTAH FOR V16N68 DISPLAY
+			ZEROVECS
+		STODL	UNFC/2		# INITIALIZE TRIM VELOCITY CORRECTION TERM
+			HI6ZEROS
+		STORE	TTF/8
+
+IGNALOOP	DLOAD
+			TAT
+		STOVL	PIPTIME1
+			RATT1
+		VSL4	MXV
+			REFSMMAT
+		STCALL	R
+			MUNGRAV
+		STCALL	GDT/2
+			?GUIDSUB	# WHICH DELIVERS N PASSES OF GUIDANCE
+
+# DDUMCALC IS PROGRAMMED AS FOLLOWS:
+#                                         2                                           ___
+#              (RIGNZ - RGU )/16 + 16(RGU  )KIGNY/B8 + (RGU - RIGNX)KIGNX/B4 + (ABVAL(VGU) - VIGN)KIGNV/B4
+#                          2             1                 0
+#	DDUM = -------------------------------------------------------------------------------------------
+#                                                10
+#                                               2   (VGU - 16 VGU KIGNX/B4)
+#                                                       2        0
+# Page 787 new page is actually one line earlier but this would put the indices on a seperate line 
+# disconnected from their respective variables
+# THE NUMERATOR IS SCALED IN METERS AT 2(28).  THE DENOMINATOR IS A VELOCITY IN UNITS OF 2(10) M/CS.
+# THE QUOTIENT IS THUS A TIME IN UNITS OF 2(18) CENTISECONDS.  THE FINAL SHIFT RESCALES TO UNITS OF 2(28) CS.
+# THERE IS NO DAMPING FACTOR.  THE CONSTANTS KIGNX/B4, KIGNY/B8 AND KIGNV/B4 ARE ALL NEGATIVE IN SIGN.
+
+DDUMCALC	TS	NIGNLOOP
+		TC	INTPRET
+		DLOAD	DMPR		# FORM DENOMINATOR FIRST
+			VGU
+			KIGNX/B4
+		SL4R	BDSU
+			VGU +4
+		PDDL	DSU
+			RIGNZ
+			RGU +4
+		SR4R	PDDL
+			RGU +2
+		DSQ	DMPR
+			KIGNY/B8
+		SL4R	PDDL
+			RGU
+		DSU	DMPR
+			RIGNX
+			KIGNX/B4
+		PDVL	ABVAL
+			VGU
+		DSU	DMPR
+			VIGN
+			KIGNV/B4
+		DAD	DAD
+		DAD	DDV
+		SRR
+			10D
+
+		PUSH	DAD
+			PIPTIME1
+		STODL	TDEC1		# STORE NEW GUESS FOR NEXT INTEGRATION
+		ABS	DSU
+			DDUMCRIT
+		BMN	CALL
+			DDUMGOOD
+			INTSTALL
+		SET	SET
+			INTYPFLG
+			MOONFLAG
+		DLOAD
+			PIPTIME1
+		STOVL	TET		# HOPEFULLY ?GUIDSUB DID NOT
+			RATT1		#	CLOBBER RATT1 AND VATT1
+# Page 788
+		STOVL	RCV
+			VATT1
+		STCALL	VCV
+			INTEGRVS
+		GOTO
+			IGNALOOP
+
+DDUMGOOD	SLOAD	SR
+			ZOOMTIME
+			14D
+		BDSU
+			TDEC1
+		STOVL	TIG		# COMPUTE DISTANCE LANDING SITE WILL BE
+			V		#	OUT OF LM'S ORBITAL PLANE AT IGNITION:
+		VXV	UNIT		#	SIGN IS + IF LANDING SITE IS TO THE
+			R		#	RIGHT, NORTH; - IF TO THE LEFT, SOUTH.
+		DOT	SL1
+			LAND
+R60INIT		STOVL	OUTOFPLN	# INITIALIZATION FOR CALCMANU
+			UNFC/2
+		STORE	R60VSAVE		# STORE UNFC/2 TEMPORARILY IN R60SAVE
+		EXIT
+					# *******************************************
+
+IGNALGRT	TC	PHASCHNG	# PREVENT REPEATING IGNALG
+		OCT	04024
+
+ASTNCLOK	CS	ASTNDEX
+		TC	BANKCALL
+		CADR	STCLOK2
+		TCF	ENDOFJOB	# RETURN IN NEW JOB AND IN EBANK FIVE
+
+ASTNRET		TC	INTPRET
+		SSP	RTB		# GO PICK UP DISPLAY AT END OF R51:
+			QMAJ		#	"PROCEED" WILL DO A FINE ALIGNMENT
+		FCADR	P63SPOT2	#	"ENTER" WILL RETURN TO P63SPOT2
+			R51P63
+P63SPOT2	VLOAD	UNIT		# INITIALIZE KALCMANU FOR BURN ATTITUDE
+			R60VSAVE
+		STOVL	POINTVSM
+			UNITX
+		STORE	SCAXIS
+		EXIT
+
+		CAF	EBANK7
+		TS	EBANK
+
+		INHINT
+		TC	IBNKCALL
+		CADR	PFLITEDB
+# Page 789
+		RELINT
+
+		TC	BANKCALL
+		CADR	R60LEM
+
+		TC	PHASCHNG	# PREVENT RECALLING R60
+		OCT	04024
+
+P63SPOT3	CA	BIT6		# IS THE LR ANTENNA IN POSITION 1 YET
+		EXTEND
+		RAND	CHAN33
+		EXTEND
+		BZF	P63SPOT4	# BRANCH IF ANTENNA ALREADY IN POSITION 1
+
+		CAF	CODE500		# ASTRONAUT:	PLEASE CRANK THE
+		TC	BANKCALL	#		SILLY THING AROUND
+		CADR	GOPERF1
+		TCF	GOTOP00H	# TERMINATE
+		TCF	P63SPOT3	# PROCEED	SEE IF HE'S LYING
+
+P63SPOT4	TC	BANKCALL	# ENTER		INITIALIZE LANDING RADAR
+		CADR	SETPOS1
+
+		TC	POSTJUMP	# OFF TO SEE THE WIZARD ...
+		CADR	BURNBABY
+
+#	---------------------------------
+
+# CONSTANTS FOR P63LM AND IGNALG
+
+P63ADRES	GENADR	P63TABLE
+
+ASTNDEX		=	MD1		# OCT 25:  INDEX FOR CLOKTASK
+
+CODE500		OCT	00500
+
+99999CON	2DEC	30479.7 B-24
+
+GUIDDURN	2DEC	+66440		# GUIDDURN +6.64400314 E+2
+DDUMCRIT	2DEC	+8 B-28		# CRITERION FOR IGNALG CONVERGENCE
+
+# Page 790
+#	--------------------------------
+
+# Page 791
+#	*************************
+#	P68: LANDING CONFIRMATION
+#	*************************
+
+		BANK	31
+		SETLOC	F2DPS*31
+		BANK
+
+		COUNT*	$$/P6567
+
+LANDJUNK	TC	PHASCHNG
+		OCT	04024
+
+		INHINT
+		TC	BANKCALL	# ZERO ATTITUDE ERROR
+		CADR	ZATTEROR
+
+		TC	BANKCALL	# SET 5 DEGREE DEADBAND
+		CADR	SETMAXDB	
+					
+		TC	INTPRET		# TO INTERPRETIVE AS TIME IS NOT CRITICAL
+		SET	CLEAR
+			SURFFLAG
+			LETABORT
+		SET	VLOAD
+			APSFLAG
+			RN
+		STODL	ALPHAV
+			PIPTIME
+		SET	CALL
+			LUNAFLAG
+			LAT-LONG
+		SETPD	VLOAD		# COMPUTE RLS AND STORE IT AWAY
+			0
+			RN
+		VSL2	PDDL
+			PIPTIME
+		PUSH	CALL
+			R-TO-RP
+		STORE	RLS
+		EXIT
+		CAF	V06N43*		# ASTRONAUT:  NOW LOOK WHERE TO ENDED UP
+		TC	BANKCALL
+		CADR	GOFLASH
+		TCF	GOTOP00H	# TERMINATE
+		TCF	+2		# PROCEED
+		TCF	-5		# RECYCLE
+
+		TC	INTPRET
+# Page 792
+		VLOAD			# INITIALIZE GSAV AND (USING REFMF)
+			UNITX		# YNBSAV, ZNBSAV AND ATTFLAG FOR P57
+		STCALL	GSAV
+			REFMF
+		EXIT
+
+		TCF	GOTOP00H	# ASTRONAUT:  PLEASE SELECT P57
+
+V06N43*		VN	0643
+
diff --git a/THROTTLE_CONTROL_ROUTINES.s b/THROTTLE_CONTROL_ROUTINES.s
new file mode 100644
index 0000000..c43b9c9
--- /dev/null
+++ b/THROTTLE_CONTROL_ROUTINES.s
@@ -0,0 +1,224 @@
+# Copyright:	Public domain.
+# Filename:	THROTTLE_CONTROL_ROUTINES.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:	793-797
+# Mod history:	2009-05-20 HG	Transcribed from 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 001 of AGC program LMY99 by NASA 2021112-61
+#	16:27 JULY 14, 1969 
+
+# Page 793
+		BANK	31
+		SETLOC	FTHROT
+		BANK
+		EBANK=	PIF
+		COUNT*	$$/THROT
+
+# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+# HERE FC, DESIRED THRUST, AND FP, PRESENT THRUST, UNWEIGHTED, ARE COMPUTED.
+
+THROTTLE	CA	ABDELV		# COMPUTE PRESENT ACCELERATION IN UNITS OF
+		EXTEND			# 2(-4) M/CS/CS, SAVING SERVICER TROUBLE
+		MP	/AF/CNST
+ +3		EXTEND
+ 		QXCH	RTNHOLD
+AFDUMP		TC	MASSMULT
+		DXCH	FP		# FP = PRESENT THRUST
+		EXTEND
+		DCA	/AFC/
+		TC	MASSMULT
+		TS	FC		# FC = THRUST DESIRED BY GUIDANCE
+		DXCH	FCODD		# FCODD = WHAT IT IS GOING TO GET
+
+# IF IT HAS BEEN LESS THAN 3 SECONDS SINCE THE LAST THROTTLING, AUGMENT FP USING THE FWEIGHT CALCULATED THEN.
+
+		CS	TTHROT		# THIS CODING ASSUMES A FLATOUT WITHIN
+		AD	TIME1		# 	80 SECONDS BEFORE FIRST THROTTLE CALL
+		MASK	POSMAX
+		COM
+		AD	3SECS
+		EXTEND
+		BZMF	WHERETO		# BRANCH IF (TIME1-TTHROT +1) > 3 SECONDS
+		EXTEND
+		DCA	FWEIGHT
+		DAS	FP
+
+# THIS LOGIC DETERMINES THE THROTTLING IN THE REGION 10% - 94%.  THE MANUAL THROTTLE, NOMINALLY SET AT
+# MINIMUM BY ASTRONAUT OR MISSION CONTROL PROGRAMS, PROVIDES THE LOWER BOUND.  A STOP IN THE THROTTLE HARDWARE
+# PROVIDES THE UPPER.
+
+WHERETO		CA	EBANK5		# INITIALIZE L*WCR*T AND H*GHCR*T FROM
+		TS	EBANK		# 	PAD LOADED ERASABLES IN W-MATRIX
+#Page 794
+		EBANK=	LOWCRIT
+		EXTEND
+		DCA	LOWCRIT
+		DXCH	L*WCR*T
+		CA	EBANK7
+		TS	EBANK
+		EBANK=	PIF
+		CS	ZERO		# INITIALIZE PIFPSET
+		TS	PIFPSET
+		CS	H*GHCR*T
+		AD	FCOLD
+		EXTEND
+		BZMF	LOWFCOLD	# BRANCH IF FCOLD < OR = HIGHCRIT
+		CS	L*WCR*T
+		AD	FCODD
+		EXTEND
+		BZMF	FCOMPSET	# BRANCH IF FC < OR = LOWCRIT
+		CA	FP		# SEE NOTE 1
+		TCF	FLATOUT1
+
+FCOMPSET	CS	FMAXODD		# SEE NOTE 2
+		AD	FP
+		TCF	FLATOUT2
+
+LOWFCOLD	CS	H*GHCR*T
+		AD	FCODD
+		EXTEND
+		BZMF	DOPIF		# BRANCH IF FC < OR = HIGHCRIT
+
+		CA	FMAXPOS		# NO:  THROTTLE-UP
+FLATOUT1	DXCH	FCODD
+		CA	FEXTRA
+FLATOUT2	TS	PIFPSET
+
+# NOTE 1	FC IS SET EQUAL TO FP SO PIF WILL BE ZERO.  THIS IS DESIRABLE
+#		AS THERE IS ACTUALLY NO THROTTLE CHANGE.
+#
+# NOTE2		HERE, SINCE WE ARE ABOUT TO RETURN TO THE THROTTLEABLE REGION
+#		(BELOW 55%) THE QUANTITY -(FMAXODD-FP) IS COMPUTED AND PUT
+#		INTO PIFPSET TO COMPENSATE FOR THE DIFFERENCE BETWEEN THE
+#		NUMBER OF BITS CORRESPONDING TO FULL THROTTLE (FMAXODD) AND THE
+#		NUMBER CORRESPONDING TO ACTUAL THRUST (FP).  THUS THE TOTAL
+#		THROTTLE COMMAND PIF = FC - FP - (FMAXODD - FP) = FC - FMAXODD.
+
+DOPIF		TC	FASTCHNG
+		EXTEND
+		DCA	FCODD
+		TS	FCOLD
+		DXCH	PIF
+		EXTEND
+#Page 795
+		DCS	FP
+		DAS	PIF		# PIF = FC - FP, NEVER EQUALS +0
+
+DOIT		CA	PIF
+		AD	PIFPSET		# ADD IN PIFPSET, WITHOUT CHANGING PIF
+		TS	PSEUDO55
+		TS	THRUST
+		CAF	BIT4
+		EXTEND
+		WOR	CHAN14
+		CA	TIME1
+		TS	TTHROT
+
+# SINCE /AF/ IS NOT AN INSTANTANEOUS ACELERATION, BUT RATHER AN "AVERAGE" OF THE ACCELERATION LEVELS DURING
+# THE PRECEEDING PIPA INTERVAL, AND SINCE FP IS COMPUTED DIRECTLY FROM /AF/, FP IN ORDER TO CORRESPOND TO THE
+# ACTUAL THRUST LEVEL AT THE END OF THE INTERVAL MUST BE WEIGHTED BY
+#
+# 	          PIF(PPROCESS + TL)     PIF /PIF/
+#	FWEIGHT = ------------------ + -------------
+#		       PGUID           2 PGUID FRATE
+#
+# WHERE PROCESS IS THE TIME BETWEEN PIPA READING AND THE START OF THROTTLING, PGUID IS THE GUIDANCE PERIOD, AND
+# FRATE IS THE THROTTLING RATE (32 UNITS PER CENTISECOND).  PGUID IS EITHER 1 OR 2 SECONDS.  THE "TL" IN THE
+# FIRST TERM REPRESENTS THE ENGINE'S RESPONSE LAG.  HERE FWEIGHT IS COMPUTED FOR USE NEXT PASS.
+
+		CA	THISTPIP +1		# INITIALIZE FWEIGHT COMP AS IF FOR P66
+		TS	BUF
+
+		CS	MODREG			# ARE WE IN FACT IN P66?
+		AD	DEC66
+		EXTEND
+		BZF	FWCOMP			# YES
+
+		CA	PIPTIME +1		# NO:  INITIALIZE FOR TWO SECOND PERIOD
+		TS	BUF
+		CAF	4SECS
+		TCF	FWCOMP +1
+
+FWCOMP		CAF	2SECS
+ +1		TS	Q
+ 		EXTEND
+		MP	BIT6
+		LXCH	BUF +1
+		CS	BUF		# TIME OF LAST PIPA READING.
+		AD	TIME1
+		AD	THROTLAG	# COMPENSATE FOR ENGINE RESPONSE LAG
+		MASK	LOW8		# MAKE SURE SMALL AND POSITIVE
+		ZL
+		EXTEND
+#Page 796
+		DV	Q
+		EXTEND
+		MP	PIF
+		DOUBLE
+		DXCH	FWEIGHT
+		CCS	PIF
+		AD	ONE
+		TCF	+2
+		AD	ONE
+		EXTEND
+		MP	PIF
+		EXTEND
+		DV	BUF +1
+		ZL
+		DAS	FWEIGHT
+
+THDUMP		TC	RTNHOLD
+
+# FLATOUT THROTTLES UP THE DESCENT ENGINE, AND IS CALLED AS A BASIC SUBROUTINE.
+
+FLATOUT		CAF	BIT13		# 4096 PULSES
+WHATOUT		TS	PIFPSET		# USE PIFPSET SO FWEIGHT WILL BE ZERO
+		CS	ZERO
+		TS	FCOLD
+		TS	PIF
+		EXTEND
+		QXCH	RTNHOLD
+		TCF	DOIT
+
+# MASSMULT SCALES ACCELERATION, ARRIVING IN A AND L IN UNITS OF 2(-4) M/CS/CS, TO FORCE IN PULSE UNITS.
+
+MASSMULT	EXTEND
+		QXCH	BUF
+		DXCH	MPAC
+		TC	DMP
+		ADRES	MASS
+		TC	DMP		# LEAVES PROPERLY SCALED FORCE IN MPAC
+		ADRES	SCALEFAC
+		TC	TPAGREE
+		CA	MPAC
+		EXTEND
+		BZF	+3
+		CAF	POSMAX
+		TC	BUF
+		DXCH	MPAC +1
+		TC	BUF
+#Page 797
+# CONSTANTS --
+
+FEXTRA		=	BIT13		# FEXT +5.13309020 E+4
+
+/AF/CNST	DEC	.13107
+
+# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
diff --git a/TIME_OF_FREE_FALL.s b/TIME_OF_FREE_FALL.s
new file mode 100644
index 0000000..83714b0
--- /dev/null
+++ b/TIME_OF_FREE_FALL.s
@@ -0,0 +1,710 @@
+# Copyright:	Public domain.
+# Filename:	TIME_OF_FREE_FALL.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:	1373-1388
+# 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 1373
+# THE TFF SUBROUTINES MAY BE USED IN EITHER EARTH OR MOON CENTERED COORDINATES.  THE TFF ROUTINES NEVER
+# KNOW WHICH ORIGIN APPLIES.  IT IS THE USER WHO KNOWS, AND WHO SUPPLIES RONE, VONE, AND 1/SQRT(MU) AT THE
+# APPROPIRATE SCALE LEVEL FOR THE PROPER PRIMARY BODY.
+#
+#	EARTH ORIGIN	POSITION	-29	METERS
+#			VELOCITY	-7	METERS/CENTISECOND
+#			1/SQRT(MU)	+17	SQRT(CS SQ/METERS CUBED)
+#
+#	MOON ORIGIN	POSITION	-27	METERS
+#			VELOCITY	-5	METERS/CENTISECONDS
+#			1/SQRT(MU)	+14	SQRT(CS SQ/METERS CUBED)
+#
+# ALL DATA PROVIDED TO AND RECEIVED FROM ANY TFF SUBROUTINE WILL BE AT ONE OF THE LEVELS ABOVE.  IN ALL CASES,
+# THE FREE FALL TIME IS RETURNED IN CENTISECONDS AT (-28).  PROGRAM TFF/CONIC WILL GENERATE VONE/RTMU AND
+# LEAVE IT IN VONE' AT (+10) IF EARTH ORIGIN AND (+9) IF MOON ORIGIN.
+#
+# THE USER MUST STORE THE STATE VECTOR IN RONE, VONE, AND MU IN THE FORM 1/SQRT(MU) IN TFF/RTMU
+# AT THE PROPER SCALE BEFORE CALLING TFF/CONIC.  SINCE RONE, VONE ARE IN THE EXTENDED VERB STORAGE AREA,
+# THE USER MUST ALSO LOCK OUT THE EXTENDED VERBS, AND RELEASE THEM WHEN FINISHED.
+#
+# PROGRAMS CALC/TFF AND CALC/TPER ASSUME THAT THE TERMINAL RADIUS IS LESS THAN THE PRESENT
+# RADIUS.  THIS RESTRICTION CAN BE REMOVED BY A 15 W CODING CHANGE, BUT AT PRESENT IT IS NOT DEEMED NECESSARY.
+#
+# THE FOLLOWING ERASABLE QUANTITIES ARE USED BY THE TFF ROUTINES, AND ARE LOCATED IN THE PUSH LIST.
+#
+#					BELOW	E:  IS USED FOR EARTH ORIGIN SCALE
+#						M:  IS USED FOR MOON  ORIGIN SCALE
+#
+#TFFSW		=	119D	# BIT1	0 = CALCTFF		1 = CALCTPER
+TFFDELQ		=	10D	#	Q2-Q1			E: (-16)  M: (-15)
+RMAG1		=	12D	#	ABVAL(RN)  M		E: (-29)  M: (-27)
+#RPER		=	14D	#	PERIGEE RADIUS  M	E: (-29)  M: (-27)
+TFFQ1		=	14D	#	R.V / SQRT(MUE)		E: (-16)  M: (-15)
+#SDELF/2			#	SIN(THETA) /2
+CDELF/2		=	14D	#	COS(THETA) /2
+#RAPO		=	16D	#	APOGEE RADIUS  M	E: (-29)  M: (-27)
+NRTERM		=	16D	#	TERMINAL RADIUS  M	E: (-29+NR)
+				#					  M: (-27+NR)
+RTERM		=	18D	#	TERMINAL RADIUS  M	E: (-29)  M: (-27)
+TFFVSQ		=	20D	#	-(V SQUARED/MU)  1/M	E: (20)   M: (18)
+TFF1/ALF	=	22D	#	SEMI MAJ AXIS  M	E: (-22-2 NA)
+				#					  M: (-20-2 NA)
+TFFRTALF	=	24D	#	SQRT(ALFA)		E:(10+NA) M: (9+NA)
+TFFALFA		=	26D	#	ALFA  1/M		E:(26-NR) M: (24-NR)
+TFFNP		=	28D	#	SEMI LATUS RECTUM  M	E: (-38+2 NR)
+				#					  M: (-36+2 NR)
+TFF/RTMU	=	30D	#	1/SQRT(MU)		E: (17)   M: (14)
+NRMAG		=	32D	#	PRESENT RADIUS  M	E: (-29+NR)
+				#					  M: (-27+NR)
+TFFX		=	34D     #
+TFFTEM		=	36D	#	TEMPORARY
+# Page 1374
+#		REGISTERS S1, S2 ARE UNTOUCED BY ANY TFF SUBROUTINE
+#		INDEX REGISTERS X1, X2 ARE USED BY ALL TFF SUBROUTINES.  THEY ARE ESTAB-
+#		LISHED IN TFF/CONIC AND MUST BE PRESERVED BETWEEN CALLS TO SUBSEQUENT
+#		SUBROUTINES.
+#		-NR				C(X1) = NORM COUNT OF RMAG
+#		-NA				C(X2) = NORM COUNT OF SQRT(ABS(ALFA))
+
+# Page 1375
+# SUBROUTINE NAME:  TFFCONIC			DATE:  01.29.67
+# MOD NO:  0					LOG SECTION:  TIME OF FREE FALL
+# MOD BY:  RR BAIRNSFATHER
+# MOD NO:  1	MOD BY:  RR BAIRNSFATHER	DATE: 11 APR 67
+# MOD NO:  2	MOD BY:  RR BAIRNSFATHER	DATE: 21 NOV 67		ADD MOON MU.
+# MOD NO:  3	MOD BY:  RR BAIRNSFATHER	DATE: 21 MAR 68		ACCEPT DIFFERENT EARTH/MOON SCALES
+#
+# FUNCTIONAL DESCRIPTION:  THIS SUBROUTINE IS CALLED TO COMPUTE THOSE CONIC PARAMETERS REQUIRED BY THE TFF
+#	SUBROUTINES AND TO ESTABLISH THEM IN THE PUSH LIST AREA.  THE PARAMETERS ARE LISTED UNDER OUTPUT.
+#	THE EQUATIONS ARE:
+#		_   __ __
+#		H = RN*VN			ANGULAR MOMENTUM
+#		      _ _
+#		LCP = H.H / MU			SEMI LATUS RECTUM
+#		              __ __
+#		ALFA = 2/RN - VN.VN / MU	RECIPROCAL SEMI MAJ AXIS, SIGNED
+#
+# 	AND ALFA IS POS FOR ELLIPTIC ORBITS
+#	              0 FOR PARABOLIC ORBITS
+#	            NEG FOR HYPERBOLIC ORBITS.
+#	SUBROUTINE ALSO COMPUTES AND SAVES RMAG.
+#
+# CALLING SEQUENCE:
+#	TFFCONIC EXPECTS CALLER TO ENTER WITH CORRECT GRAVITATIONAL CONSTANT IN MPAC, IN THE FORM
+#	1/SQRT(MU).  THE PROGRAM WILL SAVE IN TFF/RTMU.  THE SCALE IS DETERMINED BY WHETHER EARTH OR MOON
+#	ORIGIN IS USED.  THE CALLER MUST LOCK OUT THE EXTENDED VERBS BEFORE PROVIDING STATE VECTOR IN RONE,
+#	VONE AT PROPER SCALE.  THE EXTENDED VERBS MUST BE RESTORED WHEN THE CALLER IS FINISHED USING THE
+#	TFF ROUTINES.
+#
+#	ENTRY POINT TFFCONMU EXPECTS THAT TFF/RTMU IS ALREADY LOADED.
+#
+#	TO SPECIFY MU:	DLOAD	CALL		# IF MU ALREADY STORED:		CALL
+#				YOURMU		# 1/RTMU E:(17) M:(14)			TFFCONMU
+#				TFFCONIC
+#	PUSHLOC = PDL+0, ARBITRARY IF LEQ 18D
+#
+# SUBROUTINES CALLED:  NONE
+#
+# NORMAL EXIT MODES:  RVQ
+#
+# ALARMS:  NONE
+#
+# OUTPUT:	THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
+#		RMAG1		E:(-29) M:(-27)		M  RN, PRESENT RADIUS LENGTH.
+#		NRMAG		E:(-29+NR)		M  RMAG, NORMALIZED
+#				M:(-27+NR)
+#		X1					-NR, NORM COUNT
+#		TFFNP		E:(-38+2NR)		M  LCP, SEMI LATUS RECTUM, WEIGHTED BY NR.  FOR VGAMCALC.
+#				M:(-36+2NR)
+#		TFF/RTMU	E:(17) M:(14)		1/SQRT(MU)
+#		TFFVSQ		E:(20) M:(18)		1/M  -(V SQ/MU):  PRESENT VELOCITY, NORMLIZED.  FOR VGAMCALC
+#		TFFALFA		E:(26-NR)		1/M  ALFA, WEIGHTED BY NR
+#				M:(24-NR)
+#		TFFRTALF	E:(10+NA)		SQRT(ALFA), NORMALIZED
+#				M:(9+NA)
+# Page 1376
+#		X2					-NA, NORM COUNT
+#		TFF1/ALF	E:(-22-2NA)		SIGNED SEMI MAJ AXIS, WEIGHTED BY NA
+#				M:(-20-2NA)
+#		PUSHLOC AT PDL+0
+#
+#	THE FOLLOWING IS STORED IN GENERAL ERASABLE
+#		VONE'		E:(10) M:(9)		V/RT(MU), NORMALIZED VELOCITY
+#
+# ERASABLE INITIALIZATION REQUIRED:
+#		RONE		E:(-29) M:(-27)		M  STATE VECTOR		LEFT BY CALLER
+#		VONE		E:(-7) M:(-5)		M/CS  STATE VECTOR	LEFT BY CALLER
+#		TFF/RTMU	E:(17) M:(14)		1/RT(CS SQ/M CUBE)	IF ENTER VIA TFFCONMU.
+#
+# DEBRIS:	QPRET		PDL+0 ... PDL+3
+
+		BANK	33
+		SETLOC	TOF-FF
+		BANK
+
+		COUNT*	$$/TFF
+
+TFFCONIC	STORE	TFF/RTMU	# 1/SQRT(MU)	E:(17) M:(14)
+
+TFFCONMU	VLOAD	UNIT		# COME HERE WITH TFFRTMU LOADED.
+			RONE		# SAVED RN.  M  E:(-29) M:(-27)
+		PDDL			# UR/2 TO PDL+0, +5
+			36D		# MAGNITUDE
+		STORE	RMAG1		# M  E:(-29) M:(-27)
+
+		NORM
+			X1		# -NR
+		STOVL	NRMAG		# RMAG  M  E:(-29+NR) M:(-27+NR)
+			VONE		# SAVED VN.  M/CS  E:(-7) M:(-5)
+		VXSC
+			TFF/RTMU	# E:(17) M:(14)
+		STORE	VONE'		# VN/SQRT(MU)  E:(10) M:(9)
+
+		VXSC	VXV
+			NRMAG		# E:(-29+NR) M:(-27+NR)
+					# UR/2 FROM PDL
+		VSL1	VSQ		# BEFORE:  E:(-19+NR) M:(-18+NR)
+		STODL	TFFNP		# LC P  M  E:(-38+2NR) M:(-36+2NR)
+					# SAVE ALSO FOR VGAMCALC
+			TFF1/4
+		DDV	PDVL		# (2/RMAG)  1/M  E:(26-NR) M:(24-NR)
+			NRMAG		# RMAG  M  E:(-29+NR) M:(-27+NR)
+			VONE'		# SAVED VN.  E:(10) M:(9)
+		VSQ	DCOMP		# KEEP MPAC+2 HONEST FOR SQRT.
+		STORE	TFFVSQ		# -(V SQ/MU)  E:(20) M:(18)
+					# SAVE FOR VGAMCALC
+		SR*	DAD
+# Page 1377
+			0 -6,1		# GET -VSQ/MU  E:(26-NR) M:(24-NR)
+		STADR
+					# 2/RMAG  FROM PDL+2
+		STORE	TFFALFA		# ALFA  1/M  E:(26-NR) M:(24-NR)
+		SL*	PUSH		# TEMP SAVE ALFA  E:(20) M:(18)
+			0 -6,1
+		ABS	SQRT		# E:(10) M:(9)
+		NORM
+			X2		# X2 = -NA
+		STORE	TFFRTALF	# SQRT( ABS(ALFA) )  E:(10+NA) M:(9+NA)
+		DSQ	SIGN		# NOT SO ACCURATE, BUT OK
+					# ALFA FROM PDL+2  E:(20) M:(18)
+		BZE	BDDV		# SET 1/ALFA =0, TO SHOW SMALL ALFA
+			+2
+			TFF1/4
+	+2	STORE	TFF1/ALF	# 1/ALFA  E:(-22-2NA) M:(-20-2NA)
+DUMPCNIC	RVQ
+					#			39 W
+# Page 1378
+# SUBROUTINE NAME:  TFFRP/RA			DATE: 01.17.67
+# MOD NO:  0					LOG SECTION:  TIME OF FREE FALL
+# MOD NO:  1	MOD BY:  RR BAIRNSFATHER	DATE: 11 APR 67
+# MOD NO:  2	MOD BY:  RR BAIRNSFATHER	DATE: 21 MAR 68		ACCEPT DIFFERENT EARTH/MOON SCALES
+#									ALSO IMPROVE ACCURACY OF RAPO.
+#
+# FUNCTIONAL DESCRIPTION:  USED BY CALCTPER AND TFF DISPLAYS TO CALCULATE PERIGEE RADIUS AND ALSO
+#	APOGEE RADIUS FOR A GENERAL CONIC.
+#	PROGRAM GIVES PERIGEE RADIUS AS		APOGEE RADIUS IS GIVEN BY
+#		RP = P/(1+E)				RA = (1+E) / ALFA
+#	WHERE    2
+#		E  = 1 - P ALFA
+#	IF RA IS NEGATIVE OR SHOWS DIVIDE OVERFLOW, THEN RA = POSMAX BECAUSE
+#		1. APOGEE RADIUS IS NOT MEANINGFUL FOR HYPERBOLA
+#		2. APOGEE RADIUS IS NOT DEFINED FOR PARABOLA
+#		3. APOGEE RADIUS EXCEEDS THE SCALING FOR ELLIPSE.
+#
+#	THIS SUBROUTINE REQUIRED THE SIGNED RECIPROCAL SEMI MAJ AXIS, ALFA, AND SEMI LATUS RECTUM AS DATA.
+#
+# CALLING SEQUENCE:	CALL
+#				TFFRP/RA
+#	PUSHLOC = PDL+0, ARBITRARY IF LEQ 10D
+#	C(MPAC) UNSPECIFIED
+#
+# SUBROUTINES CALLED:	NONE
+#
+# NORMAL EXIT MODE:	RVQ
+#	IF ELLIPSE, WITHIN NORMAL SCALING, RAPO IS CORRECT.
+#	OTHERWISE, RAPO = POSMAX.
+#
+# ALARMS:	NONE
+#
+# OUTPUT:	STORED IN PUSH LIST AREA.  SCALE OF OUTPUT AGREES WITH DATA SUPPLIED TO TFF/CONIC.
+#	RPER	E:(-29) M:(-27)		M	PERIGEE RADIUS		DESTROYED BY CALCTFF/CALCTPER, TFFTRIG.
+#	RAPO	E:(-29) M:(-27)		M	APOGEE RADIUS		WILL BE DESTROYED BY CALCTFF/CALCTPER
+#	PUSHLOC AT PDL+0
+#
+# ERASABLE INITIALIZATION REQUIRED:
+#	TFFALFA	E:(26-NR)		M	1/SEMI MAJ AXIS	LEFT BY TFFCONIC
+#		M:(24-NR)
+#	TFFNP	E:(-38+2NR)		M	LC P, SEMI LATUS RECTUM	LEFT BY TFFCONIC
+#		M:(-36+2NR)
+#	X1				-NR, NORM COUNT OF RMAG		LEFT BY TFFCONIC
+#	X2				-NA, NORM COUNT OF ALFA		LEFT BY TFFCONIC
+#
+# DEBRIS:	QPRET, PDL+0 ... PDL+1
+
+# Page 1379
+RAPO		=	16D		# APOGEE RADIUS  M  E:(-29) M:(-27)
+RPER		=	14D		# PERIGEE RADIUS  M  E:(-29) M:(-27)
+
+TFFRP/RA	DLOAD	DMP
+			TFFALFA		# ALFA  1/M  E:(26-NR) M:(24-NR)
+			TFFNP		# LC P  M E:(-38+2NR) M:(-36+2NR)
+		SR*	DCOMP		# ALFA P (-12+NR)
+			0 -8D,1		# ALFA P (-4)
+		DAD	ABS		# (DCOMP GIVES VALID TP RESULT FOR SQRT)
+					# (ABS PROTECTS SQRT IF E IS VERY NEAR 0)
+			DP2(-4)
+		SQRT	DAD		# E SQ = (1- P ALFA) (-4)
+			TFF1/4
+		PUSH	BDDV		# (1+E)  (-2)  TO PDL+0
+			TFFNP		# LCP  M  E:(-38+2NR) M:(-36+2NR)
+		SR*	SR*		# (DOES SR THEN SL TO AVOID OVFL)
+			0,1		# X1=-NR
+			0 -7,1		# (EFFECTIVE SL)
+		STODL	RPER		# PERIGEE RADIUS  M  E:(-29) M:(-27)
+					# (1+E)  (-2)  FROM PDL+0
+		DMP	BOVB
+			TFF1/ALF	# E:(-22-2NA) M:(-20-2NA)
+			TCDANZIG	# CLEAR OVFIND, IF ON.
+		BZE	SL*
+			MAXRA		# SET POSMAX IF ALFA=0
+			0 -5,2		# -5+NA
+		SL*	BOV
+			0,2
+			MAXRA		# SET POSMAX IF OVFL.
+		BPL			# CONTINUE WITH VALID RAPO.
+			+3
+MAXRA		DLOAD			# RAPO CALC IS NOT VALID.  SET RAPO =
+			NEARONE		# POSMAX AS A TAG.
+	+3	STORE	RAPO		# APOGEE RADIUS  M  E:(-29) M:(-27)
+DUMPRPRA	RVQ
+					#			30 W
+# Page 1380
+# SUBROUTINE NAME:  CALCTPER / CALCTFF		DATE:  01.29.67
+# MOD NO:  0					LOG SECTION:  TIME OF FREE FALL
+# MOD BY:  RR BAIRNSFATHER
+# MOD NO:  1	MOD BY:  RR BAIRNSFATHER	DATE: 21 MAR 67
+# MOD NO:  2	MOD BY:  RR BAIRNSFATHER	DATE: 14 APR 67
+# MOD BY:  3	MOD BY:  RR BAIRNSFATHER	DATE: 8 JUL 67		NEAR EARTH MUE AND NEG TFF (GONEPAST)
+# MOD BY:  4	MOD BY:  RR BAIRNSFATHER	DATE: 21 NOV 67		ADD VARIABLE MU.
+# MOD BY:  5	MOD BY:  RR BAIRNSFATHER	DATE: 21 MAR 68		ACCEPT DIFFERENT EARTH/MOON SCALES
+#
+# FUNCTIONAL DESCRIPTION:  PROGRAM CALCULATES THE FREE-FALL TIME OF FLIGHT FROM PRESENT POSITION RN AND
+#	VELOCITY VN TO A RADIUS LENGTH SPECIFIED BY RTERM, SUPPLIED BY THE USER.  THE POSITION VECTOR
+#	RN MAY BE ON EITHER SIDE OF THE CONIC, BUT RTERM IS CONSIDERED ON THE INBOUND SIDE.
+#	THE EQUATIONS ARE:
+#
+#		Q2 = -SQRT(RTERM (2-RTERM ALFA) - LCP)	(INBOUND SIDE)	LEQ +- LCE/SQRT(ALFA)
+#		     __ __
+#		Q1 = RN.VN / SQRT(MU)					LEQ +- LCE/SQRT(ALFA)
+#
+# 		Z = NUM / DEN						LEQ +- 1/SQRT(ALFA)
+#
+#	WHERE, IF INBOUND
+#		NUM = RTERM -RN						LEQ +- 2 LCE/ALFA
+#		DEN = Q2+Q1						LEQ +- 2 LCE/SQRT(ALFA)
+#
+# 	AND, IF OUTBOUND
+#		NUM = Q2-Q1						LEQ +- 2 LCE/SQRT(ALFA)
+#		DEN = 2 - ALFA (RTERM + RN).				LEQ +- 2 LCE
+#
+#	IF 	ALFA ZZ < 1.0		(FOR ALL CONICS EXCEPT ELLIPSES HAVING ABS(DEL ECC ANOM) G 90 DEG)
+#	THEN	X = ALFA Z Z
+#	AND	TFF = (RTERM +RN -2 ZZ T(X) ) Z/SQRT(MU)
+#		EXCEPT 	IF ALFA PNZ, AND IF TFF NEG,
+#		THEN	TFF = 2 PI /(ALFA SQRT(ALFA)) + TFF
+#	OR	IF ALFA ZZ GEQ 1.0	(FOR ELLIPSES HAVING ABS(DEL ECC ANOM) GEQ 90 DEG)
+#	THEN	X = 1/ALFA Z Z
+#	AND	TFF = (PI/SQRT(ALFA) -Q2 +Q1 +2(X T(X) -1) /ALFA Z) /ALFA SQRT(MU)
+#	WHERE	T(X) IS A POLYNOMIAL APPROXIMATION TO THE SERIES
+#		             2      3             2
+#		1/3 - X/5 + X /7 - X /8 ...	(X  < 1.0)
+#
+# CALLING SEQUENC:	TIME TO RTERM			TIME TO PERIGEE
+#			CALL				CALL
+#				CALCTFF				CALCTPER
+#			C(MPAC) = TERMNL RAD M		C(MPAC) = PERIGEE RAD M
+#	FOR EITHER, E:(-29) M:(-27)
+#	FOR EITHER, PUSHLOC = PDL+0, ARBITRARY IF LEQ 8D.
+# Page 1381
+#
+# SUBROUTINES CALLED:	T(X), VIA RTB
+#
+# NORMAL EXIT MODE:	RVQ
+#	HOWEVER, PROGRAM EXITS WITH ONE OF THE FOLLOWING VALUES FOR TFF (-28) CS IN MPAC.  USER MUST STORE.
+#		A. TFF = FLIGHT TIME.  NORMAL CASE FOR POSITIVE FLIGHT TIME LESS THAN ONE ORBITAL PERIOD.
+#		B. (THIS OPTION IS NO LONGER USED.)
+#		C. TFF = POSMAX.  THIS INDICATES THAT THE CONIC FROM THE PRESENT POSITION WILL NOT RETURN TO
+#		   THE SPECIFIED ALTITUDE.  ALSO INDICATES OUTBOUND PARABOLA OR HYPERBOLA.
+#
+# OUTPUT:	C(MPAC)		(-28) CS	TIME OF FLIGHT, OR TIME TO PERIGEE
+#		TFFX		(0)		X,					LEFT FOR ENTRY DISPLAY TFF ROUTINES
+#		NRTERM		E:(-29+NR) M	RTERM, WEIGHTED BY NR			LEFT FOR ENTRY DISPLAY TFF ROUTINES
+#				M:(-27+NR)
+#		TFFTEM		E:(-59+2NR)	LCP Z Z SGN(SDELF)			LEFT FOR ENTRY DISPLAY TFF ROUTINES
+#				M:(-55+2NR)	LCP /ALFA SGN(SDELF)			LEFT FOR ENTRY DISPLAY TFF ROUTINES
+#		NOTE:	TFFTEM = PDL 36D AND WILL BE DESTROYED BY .:UNIT:.
+#		RMAG1		E:(-29) M:(-27)	PDL 12 NOT TOUCHED.
+#		TFFQ1		E:(-16) M:(-15)	PDL 14D
+#		TFFDELQ		E:(-16) M:(-15)	PDL 10D
+#		PUSHLOC AT PDL+0
+#
+# ERASABLE INITIALIZATION REQUIRED:
+#		RONE		E:(-29) M:(-27)	M  STATE VECTOR				LEFT BY USER
+#		VONE'		E:(+10) M:(+9)	VN/SQRT(NU)				LEFT BY TFF/CONIC
+#		RMAG1		E:(-29) M:(-27)	PRESENT RADIUS, M			LEFT BY TFFCONIC
+#		C(MPAC)		E:(-29) M:(-27)	RTERM, TERMINAL RADIUS LENGTH, M	LEFT BY USER
+#
+#		THE FOLLOWING ARE STORED IN THE PUSH LIST AREA.
+#		TFF/RTMU	E:(17) M:(14)	1/SQRT(MU)				LEFT BY TFFCONIC.
+#		NRMAG		E:(-29+NR)	M  RMAG, NORMALIZED			LEFT BY TFFCONIC
+#				M:(-27+NR)
+#		X1				-NR, NORM COUNT				LEFT BY TFFCONIC
+#		TFFNP		E:(-38+2NR)	M  LCP, SEMI LATUS RECTUM, WEIGHT NR	LEFT BY TFFCONIC
+#				M:(-36+2N4)
+#		TFFALFA		E:(26-NR)	1/M  ALFA, WEIGHT NR			LEFT BY TFFCONIC
+#				M:(24-NR)
+#		TFFRTALF	E:(10+NA)	SQRT(ALFA), NORMALIZED			LEFT BY TFFCONIC
+#				M:(9+NA)
+#		X2				-NA, NORM COUNT				LEFT BY TFFCONIC
+#		TFF1/ALF	E:(-22-2NA)	SIGNED SEMIMAJ AXIS, WEIGHTED BY NA	LEFT BY TFFCONIC
+#				M:(-20-2NA)
+#
+# DEBRIS:	QPRET, PDL+0 ... PDL+3
+#		RTERM		E:(-29) M(-27)	RTERM, TERMINAL RADIUS LENGTH
+#		RAPO		E:(-29) M(-27)	PDL 16D (=NRTERM)
+#		RPER		E:(-29) M(-27)	PDL 14D (=TFFQ1)
+
+# Page 1382
+CALCTPER	SETGO			# ENTER WITH RPER IN MPAC
+			TFFSW
+			+3
+CALCTFF		CLEAR			# ENTER WITH RTERM IN MPAC
+			TFFSW
+	+3	STORE	RTERM		# E:(-29) M:(-27)
+		SL*
+			0,1		# X1=-NR
+		STORE	NRTERM		# RTERM  E:(-29+NR) M:(-27+NR)
+		DMP	BDSU
+			TFFALFA		# ALFA  E:(26-NR) M:(24-NR)
+			TFF1/4
+		PUSH	DMP		# (2-ALFA RTERM)  (-3)  TO PDL+0
+			NRTERM		# E:(-29+NR) M:(-27+NR)
+		PDDL	SR*		# RTERM(2-ALFA RTERM) TO PDL+2
+					# E:(-32+NR) M:(-30+NR)
+			TFFNP		# LC P  E:(-38+2NR) M:(-36+2NR)
+			0 -6,1		# X1 = -NR
+		DCOMP	DAD		# DUE TO SHIFTS, KEEP PRECISION FOR SQRT
+					# RTERM(2-ALFA RTERM) FROM PDL +2
+					# E:(-32+NR) M:(-30+NR)
+		SR*			# LEAVE  E:(-32) M:(-30)
+			0,1		# X1 = -NR
+		BOFF	DLOAD		# CHECK TFF /TPER SWITCH
+			TFFSW
+			+2		# IF TFF, CONTINUE
+			TFFZEROS	# IF TPER, SET Q2 = 0
+	+2	BMN	SQRT		# E:(-16) M:(-15)
+			MAXTFF1		# NO FREE FALL CONIC TO RTERM FROM HERE
+					# RESET PDL, SET TFF=POSMAX, AND EXIT.
+
+		DCOMP	BOVB		# RT IS ON INBOUND SIDE.  ASSURE OVFIND=0
+			TCDANZIG	# ANY PORT IN A STORM.
+		STOVL	TFFTEM		# Q2  E:(-16) M:(-15)
+			VONE'		# VN/SQRT(MU)  E:(10) M:(9)
+		DOT	SL3
+			RONE		# SAVED RN.  E:(-29) M:(-27)
+		STORE	TFFQ1		# Q1, SAVE FOR GONEPAST TEST.
+					# E:(-16) M:(-15)
+		BMN	BDSU
+			INBOUND		# USE ALTERNATE Z
+			TFFTEM		# Q2  E:(-16) M:(-15)
+
+# OUTBOUND Z CALC CONTINUES HERE
+
+		STODL	TFFX		# NUM=Q2-Q1  E:(-16) M:(-15)
+			TFFALFA		# ALFA  E:(26-NR) M:(24-NR)
+		DMP	BDSU
+# Page 1383
+			NRMAG		# RMAG  E:(-29+NR) M:(-27+NR)
+					# (2-RTERM ALFA)  (-3) FROM PDL+0
+SAVEDEN		PUSH	ABS		# DEN TO PDL+0	E:(-3) OR (-16)
+					#               M:(-3) OR (-15)
+		DAD	BOV		# INDETERMINANCY TEST
+			LIM(-22)	# =1.0-B(-22)
+			TFFXTEST	# GO IF DEN >/= B(-22)
+		DLOAD	PDDL		# SET DEN=0 OTHERWISE
+			TFFZEROS
+					# XCH ZERO WITH PDL+0
+		DLOAD	DCOMP
+			TFFALFA		# ALFA  E:(26-NR) M:(24-NR)
+		BMN	DLOAD		# FOR TPER:  Z INDET AT DELE/2=0 AND 90.
+			TFFEL1		# ASSUME 90, AND LEAVE 0 IN PDL: 1/Z=D/N
+
+					# Z INDET. AT PERIGEE FOR PARAB OR HYPERB.
+DUMPTFF1	RVQ			# RETURN TFF =0
+
+# INBOUND Z CALC CONTINUES HERE
+
+INBOUND		DLOAD			# RESET PDL+0
+		DLOAD	DSU		# ALTERNATE Z CALC
+			RTERM		# E:(-29) M:(-27)
+			RMAG1		# E:(-29) M:(-27)
+		STODL	TFFX		# NUM=RTERM-RN  E:(-29) M:(-27)
+			TFFTEM		# Q2  E:(-16) M:(-15)
+		DAD	GOTO
+			TFFQ1		# Q1  E:(-16) M:(-15)
+			SAVEDEN		# DEN = Q2+Q1  E:(-16) M:(-15)
+
+TFFXTEST	DAD	PDDL		# (ABS(DEN) TO PDL+2)	E:(-3) OR (-16)
+					#			M:(-3) OR (-15)
+			DP(-22)		# RESTORE ABS(DEN) TO MPAC
+			TFFX		# NUM  E:(-16) OR (-29)  M:(-15) OR (-27)
+		DMP	SR*
+			TFFRTALF	# SQRT(ALFA)  E:(10+NA) M:(9+NA)
+			0 -3,2		# X2=-NA
+		DDV			# C(MPAC) =NUM SQRT(ALFA)	E:(-3) OR (-16)
+					#				M:(-3) OR (-15)
+					# ABS(DEN) FROM PDL+2	E:(-3) OR (-16)
+					#			M:(-3) OR (-15)
+		DLOAD	BOV		# (THE DLOAD IS SHARED WITH TFFELL)
+			TFFX		# NUM  E:(-16) OR (-29)  M:(-15) OR (-27)
+			TFFELL		# USE EQN FOR DELE GEQ 90, LEQ -90
+
+# OTHERWISE, CONTINUE FOR GENERAL CONIC FOR TFF EQN
+
+		DDV	STADR
+					# DEN FROM PDL+0	E:(-3) OR (-16)
+					#			M:(-3) OR (-15)
+		STORE	TFFTEM		# Z SAVE FOR SIGN OF SDELF.
+# Page 1384
+					# E:(-13) M:(-12)
+		PUSH	DSQ		# Z TO PDL+0
+		PUSH	DMP		# Z SQ TO PDL+2  E:(-26) M:(-24)
+			TFFNP		# LC P  E:(-38+2NR) M:(-36+NR)
+		SL	SIGN
+			5
+			TFFTEM		# AFFIX SIGN FOR SDELF (ENTRY DISPLAY)
+		STODL	TFFTEM		# P ZSQ  E:(-59+2NR) M:(-55+2NR)
+					# (ARG IS USED IN TFF/TRIG)
+					# ZSQ FROM PDL+2  E:(-26) M:(-24)
+		PUSH	DMP		# RESTORE PUSH LOC
+			TFFALFA		# ALFA  E:(26-NR) M:(24-NR)
+		SL*
+			0,1		# X1=-NR
+		STORE	TFFX		# X
+		RTB	DMP
+			T(X)		# POLY
+					# ZSQ FROM PDL+2  E:(-26) M:(-24)
+		SR2	BDSU		# 2 ZSQ T(X)  E:(-29) M:(-27)
+			RTERM		# RTERM  E:(-29) M:(-27)
+		DAD	DMP
+			RMAG1		# E:(-29) M:(-27)
+					# Z FROM PDL+0  E:(-13) M:(-12)
+		SR3	BPL		# TFF SQRT(MU)  E:(-45) M:(-42)
+			ENDTFF		# (NO PUSH UP)
+		PUSH	SIGN		# TFF SQRT(MU) TO PDL+0
+			TFFQ1		# Q1 FOR GONEPAST TEST
+		BPL	DLOAD		# GONE PAST ?
+			NEGTFF		# YES. TFF < 0.
+			TFF1/ALF	# 1/ALFA  E:(-22-2NA) M:(-20-2NA)
+		DCOMP	BPL		# ALFA > 0 ?
+			NEGTFF		# NO. TFF IS NEGATIVE.
+
+# CORRECT FOR ORBITAL PERIOD.
+
+		DCOMP			# YES.  CORRECT FOR ORB PERIOD.
+		DMP	DDV
+			PI/16		# 2 PI (-5)
+			TFFRTALF	# SQRT(ALFA)  E:(10+NA) M:(9+NA)
+		SL*	SL*
+			0 -4,2		# X2=-NA
+			0 -4,2
+		SL*	DAD
+			0,2
+					# TFF SQRT(MU) FROM PDL+0	E:(-45) M:(-42)
+ENDTFF		DMP	BOV		# TFF SQRT(MU) IN MPAC		E:(-45) M:(-42)
+			TFF/RTMU	# E:(17) M:(14)
+			MAXTFF		# SET POSMAX IN OVFL.
+
+DUMPTFF2	RVQ			# RETURN TFF (-28) CS IN MPAC.
+
+# Page 1385
+NEGTFF		DLOAD
+					# TFF SQRT(MU) FROM PDL+0, NEGATIVE.
+		GOTO
+			ENDTFF
+
+MAXTFF1		DLOAD			# RESET PDL
+MAXTFF		DLOAD	RVQ
+			NEARONE
+
+# TIME OF FLIGHT ELLIPSE WHEN DEL (ECCENTRIC ANOM) GEQ 90 AND LEQ -90.
+
+					# NUM FROM TFFX.	E:(-16) OR (-29)
+					#			M:(-15) OR (-27)
+TFFELL		SL2			# NUM  E:(-14) OR (-27)  M:(-13) OR (-25)
+		BDDV	PUSH		# TEMP SAVE D/N IN PDL+0
+					# DEN FROM PDL+0  E:(-3)/(-16)  M:(-3)/(-15)
+					# N/D TO PDL+0  E:(11) M:(10)
+TFFEL1		DLOAD	DSU		# (ENTER WITH D/N=0 IN PDL+0)
+			TFFTEM		# Q2  E:(-16) M:(-15)
+			TFFQ1		# Q1  E:(-16) M:(-15)
+		STODL	TFFDELQ		# Q2-Q1  E:(-16) M:(-15)
+					# D/N FROM PDL+0
+		STADR
+		STORE	TFFTEM		# D/N  E:(11) M:(10)
+		DMP	SL*
+			TFF1/ALF	# 1/ALFA  E:(-22-2NA) M:(-20-2NA)
+			0,2		# 1/ALFA Z  E:(-11-NA) M:(-10-NA)
+		PUSH	DMP		# TO PDL+0
+			TFFTEM		# 1/Z  E:(11) M:(10)
+		SL*	BOVB
+			0,2		# X2= -NA
+			SIGNMPAC	# IN CASE X= 1.0, CONTINUE
+		STORE	TFFX		# X=1/ALFA ZSQ
+		RTB	DMP
+			T(X)		# POLY
+			TFFX
+		SR3	DSU
+			DP2(-3)
+		DMP	PUSH		# 2(X T(X)-1) /Z ALFA	E:(-15-NA)
+					#			M:(-14-NA)
+					# 1/ALFA Z FROM PDL+0	E:(-11-NA)
+					#			M:(-10-NA)
+		DLOAD	DMP		# GET SIGN FOR SDELF
+			TFFTEM		# 1/Z  E:(11) M:(10)
+			RMAG1		# E:(-29) M:(-27)
+		SL2	DAD
+			TFFQ1		# Q1  E:(-16) M:(-15)
+		STODL	TFFTEM		# (Q1+R 1/Z) =SGN OF SDELF  E:(-16) M:(-15)
+			TFFNP		# LC P  E:(-38+2NR) M:(-36+2NR)
+		DMP	SL*		# CALC FOR ARG FOR TFF/TRIG.
+# Page 1386
+			TFF1/ALF	# 1/ALFA  E:(-22-2NA) M:(-20-2NA)
+			1,2		# X2=-NA
+		SIGN	SL*
+			TFFTEM		# AFFIX SIGN FOR SDELF
+			0,2
+		STODL	TFFTEM		# P/ALFA  E:(-59+2NR) M:(-55+2NR)
+					# (ARG FOR USE IN TFF/TRIG)
+			TFF1/ALF	# 1/ALFA  E:(-22-2NA) M:(-20-2NA)
+		SQRT	DMP
+			PI/16		# PI (-4)
+		DAD
+					# 2(XT(X)-1)/Z ALFA FROM PDL	E:(-15-NA)
+					#				M:(-14-NA)
+		SL*	DSU
+			0 -1,2
+			TFFDELQ		# Q2-Q1  E:(-16) M:(-15)
+		DMP	SL*
+			TFF1/ALF	# 1/ALFA  E:(-22-2NA) M:(-20-2NA)
+			0 -3,2
+		SL*	GOTO
+			0 -4,2
+			ENDTFF		# TFF SQRT(MU) IN MPAC E:(-145) M:(-42)
+
+# Page 1387
+# PROGRAM NAME:  T(X)				DATE:  01.17.67
+# MOD NO:  0					LOG SECTION:  TIME OF FREE FALL
+# MOD BY:  RR BAIRNSFATHER
+#
+# FUNCTIONAL DESCRIPTION:  THE POLYNOMIAL T(X) IS USED BY TIME OF FLIGHT SUBROUTINES CALCTFF AND
+#	CALCTPER TO APPROXIMATE THE SERIES
+#		           2     3
+#		1/3 -X/5 +X /7 -X /9 ...
+#
+#	WHERE	X = ALFA Z Z		IF ALFA Z Z LEQ 1
+#		X = 1/(ALFA Z Z)	IF ALFA Z Z G 1
+#
+#	ALSO	X IS NEG FOR HYPERBOLIC ORBITS
+#		X = 0 FOR PARABOLIC ORBITS
+#		X IS POSITIVE FOR ELLIPTIC ORBITS
+#
+#	FOR FLIGHT 278, THE POLYNOMIAL T(X) IS FITTED OVER THE RANGE (0,+1) AND HAS A MAXIMUM
+#	DEVIATION FROM THE SERIES OF 2 E-5.  (T(X) IS A CHEBYCHEV TYPE FIT AND WAS OBTAINED USING
+#	MAC PROGRAM AUTCURFIT294RRB AND IS VALID TO THE SAME TOLERANCE OVER THE RANGE (-.08,+1).)
+#
+# CALLING SEQUENCE:	RTB
+#				T(X)
+#	C(MPAC) = X
+#
+# SUBROUTINE CALLED:  NONE
+#
+# NORMAL EXIT MODE:  TC DANZIG
+#
+# ALARMS:  NONE
+#
+# OUTPUT:  C(MPAC) = T(X)
+#
+# ERASABLE INITIALIZATION REQUIRED:
+#	C(MPAC) = X
+#
+# DEBRIS:  NONE
+
+T(X)		TC	POLY
+		DEC	4		# N-1
+		2DEC	3.333333333 E-1
+		2DEC*	-1.999819135 E-1*
+		2DEC*	1.418148467 E-1*
+		2DEC* 	-1.01310997 E-1*
+		2DEC*	5.609004986 E-2*
+		2DEC*	-1.536156925 E-2*
+
+ENDT(X)		TC	DANZIG
+
+TCDANZIG	=	ENDT(X)
+
+# Page 1388
+# TFF CONSTANTS
+
+		BANK	32
+
+		SETLOC	TOF-FF1
+		BANK
+
+#						# NOTE _  NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
+#MUE		=	3.990815471 E10		# M CUBE/CS SQ
+#RTMUE		=	1.997702549 E5 B-18*	# MODIFIED EARTH MU
+
+1/RTMU		2DEC*	.5005750271 E-5 B17*	# MODIFIED EARTH MU
+
+#						# NOTE _  NOTE _ ADJUSTED MUE FOR NEAR EARTH TRAJ.
+#MUM		=	4.902778 E8		# M CUBE/CS SQ
+#RTMUM		2DEC*	2.21422176 E4 B-18*
+PI/16		2DEC	3.141592653 B-4
+LIM(-22)	2OCT	3777737700		# 1.0 -B(-22)
+DP(-22)		2OCT	0000000100		# B(-22)
+DP2(-3)		2DEC	1 B-3
+DP2(-4)		2DEC	1 B-4			# 1/16
+
+# RPAD1		2DEC	6373338 B-29		# M (-29) = 20909901.57 FT
+RPAD1		=	RPAD
+
+R300K		2DEC	6464778 B-29		# (-29) M
+NEARONE		2DEC	.999999999
+TFFZEROS	EQUALS	HI6ZEROS
+TFF1/4		EQUALS	HIDP1/4
+
+
+
diff --git a/TJET_LAW.s b/TJET_LAW.s
new file mode 100644
index 0000000..9b15a67
--- /dev/null
+++ b/TJET_LAW.s
@@ -0,0 +1,519 @@
+# Copyright:	Public domain.
+# Filename:	TJET_LAW.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	1460-1469
+# Mod history:	2009-05-27 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#		2009-06-06 RSB	Eliminated a stray instruction that had crept
+#				in somehow.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 1460
+# PROGRAM DESCRIPTION
+# DESIGNED BY:	R. D. GOSS AND P. S. WEISSMAN
+# CODED BY:  P. S. WEISSMAN, 28 FEBRURARY 1968
+#
+# TJETLAW IS CALLED AS A SUBROUTINE WHEN THE LEM IS NOT DOCKED AND THE AUTOPILOT IS IN THE AUTOMATIC OR
+# ATTITUDE-HOLD MODE TO CALCULATE THE JET-FIRING-TIME (TJET) REQUIRED FOR THE AXIS INDICATED BY AXISCTR:
+#	-1	INDICATES THE P-AXIS
+#	+0	INDICATES THE U-AXIS
+#	+1	INDICATES THE V-AXIS
+# THE REGISTERS E AND EDOT CONTAIN THE APPROPRIATE ATTITUDE ERROR AND ERROR RATE AND SENSETYP SHOWS WHETHER
+# UNBALANCED COUPLES ARE PREFERRED.  TJETLAW ALSO USES VARIOUS FUNCTIONS OF ACCELERATION AND DEADBAND WHICH ARE
+# COMPUTED IN THE 1/ACCONT SECTION OF 1/ACCS AND ARE STORED IN SUCH AN ORDER THAT THEY CAN BE CONVENIENTLY
+# ACCESSED BY INDEXING.
+#
+# THE SIGN OF THE REQUIRED ROTATION IS CARRIED THROUGH TJETLAW AS ROTSENSE AND IS FINALLY APPLIED TO TJET JUST
+# PREVIOUS TO ITS STORAGE IN THE LOCATION CORRESPONDING TO THE AXIS (TJP, TJU, OR TJV).  THE NUMBER OF JETS THAT
+# TJETLAW ASSUMES WILL BE USED AS INDICATED BY THE SETTING OF NUMBERT FOR THE U- OR V-AXIS.  TWO JETS ARE ALWAYS
+# ASSUMED FOR THE P-AXIS ALTHOUGH FOUR JETS WILL BE FIRED WHEN FIREFCT IS MORE NEGATIVE THAN -4.0 DEGREES
+# (FIREFCT IS THE DISTANCE TO A SWITCH CURVE IN THE PHASE PLANE) AND A LONG FIRING IS CALLED FOR.
+#
+# IN ORDER TO AVOID SCALING DIFFICULTIES, SIMPLE ALGORITHMS TAGGED RUFLAW1, -2 AND -3 ARE RESORTED TO WHEN THE
+# ERROR AND/OR ERROR RATE ARE LARGE.
+#
+# CALLING SEQUENCE:
+#		TC	TJETLAW		# (MUST BE IN JASK)
+#	OR
+#		INHINT			# (MUST BE IN JASK)
+#		TC	IBNKCALL
+#		CADR	TJETLAW
+#		RELINT
+#
+# EXIT:		RETURN TO Q.
+#
+# INPUT:
+#	FROM THE CALLER:  E, EDOT, AXISCTR, SENSETYP, TJP, -U, -V.
+#	FROM 1/ACCONT:  48 ERASABLES BEGINNING AT BLOCKTOP (INCLUDING FLAT, ZONE3LIM AND ACCSWU, -V).
+#
+# OUTPUT:
+#	TJP, -U OR -V, NUMBERT (DAPTEMP5), FIREFCT (DAPTEMP3).
+#
+# DEBRIS:
+#	A, L, Q, E, EDOT, DAPTEMP1-6, DAPTEMP1-4.
+#
+# ALARM:  NONE
+
+		BANK	17
+		SETLOC	DAPS2
+		BANK
+		EBANK=	TJP
+# Page 1461
+		COUNT*	$$/DAPTJ
+
+TJETLAW		EXTEND			# SAVE Q FOR RETURN.
+		QXCH	HOLDQ
+
+# SET INDEXERS TO CORRESPOND TO THE AXIS AND TO THE SIGN OF EDOT
+
+		INDEX	AXISCTR		# AXISDIFF(-1)=NO OF LOCATIONS BET P AND U
+		CAF	AXISDIFF	# AXISDIFF(0)=0
+		TS	ADRSDIF1	# AXISDIFF(+1)=NO OF LOCATIONS BET V AND U
+
+		CAE	EDOT		# IF EDOT NEGATIVE, PICK UP SET OF VALUES
+		EXTEND			#	THAT ALLOW USE OF SAME CODING AS FOR
+		BZMF	NEGEDOT		#	POSITIVE EDOT.
+		CAE	ADRSDIF1	# SET A SECOND INDEXER WHICH MAY BE
+		TS	ADRSDIF2	# 	MODIFIED BY A DECISION FOR MAX JETS.
+		CAF	SENSOR		# FOR POSITIVE EDOT, ROTSENSE IS
+		TCF	SETSENSE	# 	INITIALIZED POSITIVE.
+
+NEGEDOT		CS	E		# IN ORDER FOR NEG EDOT CASE TO USE CODING
+		TS	E		#	OF POS EDOT, MUST MODIFY AS FOLLOWS:
+		CS	EDOT		#	1. COMPLEMENT E AND EDOT.
+		TS	EDOT		#	2. SET SENSE OF ROTATION TO NEGATIVE
+		CAF	BIT1		#	   (REVERSED LATER IF NECESSARY).
+		ADS	ADRSDIF1	#	3. INCREMENT INDEXERS BY ONE SO THAT
+		TS	ADRSDIF2	#	   THE PROPER PARAMETERS ARE ACCESSED.
+		CS	SENSOR
+SETSENSE	TS	ROTSENSE
+
+# TEST MAGNITUDE OF E (ATTITUDE ERROR, SINGLE-PRECISION, SCALED AT PI RADIANS):
+#	IF GREATER THAN (OR EQUAL TO) PI/16 RADIANS, GO TO THE SIMPLIFIED TJET ROUTINE.
+#	IF LESS THAN PI/16 RADIANS, RESCALE TO PI/4
+
+		CAE	E		# PICK UP ATTITUDE ERROR FOR THIS AXIS
+		EXTEND
+		MP	BIT5		# SHIFT RIGHT TEN BITS:  IF A-REGISTER IS
+		CCS	A		#	ZERO, RESCALE AND TEST EDOT.
+		TCF	RUFLAW2
+		TCF	SCALEE
+		TCF	RUFLAW1
+SCALEE		CAF	BIT13		# ERROR IS IN L SCALED AT PI/16.  RESCALE
+		EXTEND			#	IT TO PI/4 AND SAVE IT.
+		MP	L
+		TS	E
+
+# TEST MAGNITUDE OF EDOT (ERROR RATE SCALED AT PI/4 RADIANS/SECOND)
+#	IF GREATER THAN (OR EQUAL TO) PI/32 RADIANS/SECOND, GO TO THE SIMPLIFIED TJET ROUTINE.
+#	IF LESS THAN PI/32 RADIANS/SECOND, THEN RESCALE TO PI/32 RADIANS/SECOND.
+
+		CAE	EDOT		# PICK UP SINGLE-PRECISION ERROR-RATE
+# Page 1462
+		EXTEND			# FOR THIS AXIS=
+		MP	BIT4		# SHIFT RIGHT ELEVEN BITS, IF THE A-REG IS
+		EXTEND			# ZERO, THEN RESCALE AND USE FINELAW.
+		BZF	SCALEDOT
+		TCF	RUFLAW3
+
+# *** FINELAW STARTS HERE ***
+
+SCALEDOT	LXCH	EDOT		# EDOT IS SCALED AT PI/32 RADIANS/SECOND.
+
+		CAE	EDOT		# COMPUTE (EDOT)(EDOT)
+		EXTEND
+		SQUARE			# PRODUCT SCALED AT PI(2)/2(10) RAD/SEC.
+		EXTEND
+		MP	BIT13		# SHIFT RIGHT TWO BITS TO RESCALE TO EDOTSQ
+		TS	EDOTSQ		#	TO PI(2)/2(8) RAD(2)/SEC(2).
+
+ERRTEST		CCS	E		# DOES BIG ERROR (THREE DEG BEYOND THE
+		AD	-3DEG		# DEADBAND) REQUIRE MAXIMUM JETS?
+		TCF	+2
+		AD	-3DEG
+		EXTEND
+		INDEX	ADRSDIF1
+		SU	FIREDB
+		EXTEND
+		BZMF	SENSTEST	# IF NOT:  ARE UNBALANCED JETS PREFERRED?
+MAXJETS		CAF	TWO		# IF YES:  INCRMENT ADDRESS LOCATOR AND
+		ADS	ADRSDIF2	#	   SET SWITCH FOR JET SELECT LOGIC TO 4.
+		CAF	FOUR		#	   (ALWAYS DO THIS FOR P-AXIS)
+		TCF	TJCALC
+SENSTEST	CCS	SENSETYP	# DOES TRANSLATION PREFER MIN JETS.
+		TCF	TJCALC		# YES.  USE MIN-JET PARAMETERS
+		TCF	MAXJETS		# NO.  GET THE MAX-JET PARAMETERS.
+TJCALC		TS	NUMBERT		# SET TO +0,1,4 FOR (U,V-AXES) JET SELECT.
+
+# BEGINNING OF TJET CALCULATIONS:
+
+		CS	EDOTSQ		# SCALED AT PI(2)/2(8).
+		EXTEND
+		INDEX	ADRSDIF2
+		MP	1/ANET1		# .5/ACC SCALED AT 2(6)/PI SEC(2)/RADIAN.
+		INDEX	ADRSDIF1
+		AD	FIREDB		# DEADBAND SCALED AT PI/4 RADIAN.
+		EXTEND
+		SU	E		# ATTITUDE ERROR SCALED AT PI/4 RADIAN.
+		TS	FIREFCT		# -E-.5(EDOTSQ)/ACC-DB AT PI/4 RADIAN.
+		EXTEND
+		BZMF	ZON1,2,3
+
+ZONE4,5		INDEX	ADRSDIF1
+		CAE	1/ACOAST	# .5/ACC SCALED AT 2(6)/PI WHERE
+# Page 1463		
+		EXTEND			# ACC = MAX(AMIN, AOS-).
+		MP	EDOTSQ		# SCALED AT PI/2(8).
+		AD	E		# SCALED AT PI/4
+		INDEX	ADRSDIF1
+		AD	COASTDB		# SCALED AT PI/4 POS. FOR NEG. INTERCEPT.
+		EXTEND			# TEST E+.5(EDOTSQ)/ACC+DB AT PI/4 RADIAN.
+		BZMF	ZONE5		# IF FUNCTION NEGATIVE, FIND TJET.
+					# IF FUNCTION POSITIVE, IN ZONE 4.
+
+# ZONE 4 IS THE COAST REGION.  HOWEVER, IF THE JETS ARE ON AND DRIVING TOWARD
+#	A. THE AXIS WITHIN + OR - (DB + FLAT) FOR DRIFTING FLIGHT, OR
+#	B. THE USUAL TARGET PARABOLA FOR POWERED FLIGHT
+# THEN THE THRUSTERS ARE KEPT ON.
+
+ZONE4		INDEX	AXISCTR		# IS THE CURRENT VALUE IN TJET NON-ZERO
+		CS	TJETU		# 	WITH SENSE OPPOSITE TO EDOT,
+		EXTEND			#	(I.E., ARE JETS ON AND FIRING TOWARD
+		MP	ROTSENSE	#	THE DESIRABLE STATE).
+		EXTEND
+		BZMF	COASTTJ		# NO.  COAST.
+
+JETSON		CCS	FLAT		# YES.  IS THIS DRIFTING OR POWERED FLIGHT?
+		TCF	DRIFT/ON	# DRIFTING.  GO MAKE FURTHER TEST.
+
+		CS	FIREFCT		# POWERED (OR ULLAGE).  CAN TARGET PARABOLA
+		INDEX	ADRSDIF1	#	BE REACHED FROM THIS POINT IN THE
+		AD	AXISDIST	#	PHASE PLANE?
+		EXTEND
+		BZMF	COASTTJ		# NO. SET TJET = 0.
+		TC	Z123COMP	# YES.  CALCULATE TJET AS THOUGH IN ZONE 1
+		CAE	FIREFCT		#	AFTER COMPUTING THE REQUIRED
+		TCF	ZONE1		#	PARAMETERS.
+
+DRIFT/ON	INDEX	ADRSDIF1	# CAN TARGET STRIP OF AXIS BE REACHED FROM
+		CS	FIREDB		#	THIS POINT IN THE PHASE PLANE?
+		DOUBLE
+		AD	FIREFCT
+		EXTEND
+		BZMF	+3
+COASTTJ		CAF	ZERO		# NO.  SET TJET = 0.
+		TCF	RETURNTJ
+
+		TC	Z123COMP	# YES. CALCULATE TJET AS THOUGH IN ZONE 2
+		TCF	ZONE2,3		#	OR 3 AFTER COMPUTING REQUIRED VALUES.
+
+ZONE5		TS	L		# TEMPORARILY STORE FUNCTION IN L.
+		CCS	ROTSENSE	# MODIFY ADRSDIF2 FOR ACCESSING 1/ANET2
+		TCF	+4		# AND ACCFCTZ5, WHICH MUST BE PICKED UP
+		TC	CCSHOLE		# FROM THE NEXT LOWER REGISTER IF THE
+		CS	TWO		# (ACTUAL) ERROR RATE IS NEGATIVE.
+# Page 1464		
+		ADS	ADRSDIF2
+
+	+4	CAE	L
+		EXTEND
+		INDEX	ADRSDIF2	# TTOAXIS AND HH ARE THE PARAMETERS UPON
+		MP	ACCFCTZ5	#	WHICH THE APPROXIMATIONS TO TJET ARE
+		DDOUBL			#	ABASED.
+		DDOUBL
+		DXCH	HH		# DOUBLE PRECISION H SCALED AT 8 SEC(2).
+		INDEX	ADRSDIF2
+		CAE	1/ANET2		# SCALED AT 2(7)/PI SEC(2)/RAD.
+		EXTEND
+		MP	EDOT		# SCALED AT PI/2(5)
+		TS	TTOAXIS		# SCALED AT 4 SEC.
+
+# TEST WHETHER TJET GREATER THAN 50 MSEC.
+
+		EXTEND
+		MP	-.05AT2		# H - .05 TTOAXIS - .00125 G.T. ZERO
+		AD	HH		# 	(SCALED AT 8 SEC(2) ).
+		AD	NEG2
+		EXTEND
+		BZMF	FORMULA1
+
+# TEST WHETHER TJET GREATER THAN 150 MSEC.
+
+		CAE	TTOAXIS
+		EXTEND
+		MP	-.15AT2		# H - .15 TTOAXIS - .01125 G.T. ZERO
+		AD	HH		#	(SCALED AT 8 SEC(2) )
+		AD	-.0112A8
+		EXTEND
+		BZMF	FORMULA2
+
+# IF TJET GREATER THAN 150 MSEC, ASSIGN IT VALUE OF 250 MSEC, SINCE THIS
+# IS ENOUGH TO ASSURE NO SKIP NEXT CSP (100 MSEC).
+
+FULLTIME	CAF	BIT11		# 250 MSEC SCALED AT 4 SEC.
+
+# RETURN TO CALLING PROGRAM WITH JET TIME SCALED AS TIME6 AND SIGNED.
+
+RETURNTJ	EXTEND			# ALL BRANCHES TERMINATE HERE WITH TJET
+		MP	ROTSENSE	#	(SCALED AT 4 SEC) IN THE ACCUMULATOR.
+		INDEX	AXISCTR		# ROTSENSE APPLIES SIGN AND CHANGES SCALE.
+		TS	TJETU
+		EXTEND
+		INDEX	AXISCTR
+		MP	ACCSWU		# SET SWITCH FOR JET SELECT IF ROTATION IS
+		CAE	L
+		EXTEND			#	IN A SENSE FOR WHICH 1/ACCS HAS FORCED
+		BZMF	+3		#	A MAX-JET CALCULATION.
+		CAF	FOUR
+# Page 1465		
+		TS	NUMBERT
+		TC	HOLDQ		# RETURN VIA SAVED Q.
+
+# TJET = H/(.025 + TTOAXIS) 	FOR TJET LESS THAN 50 MSEC.
+
+FORMULA1	CS	-.025AT4	# .025 SEC SCALED AT 4.
+		AD	TTOAXIS		# SCALED AT 4 SECONDS.
+		DXCH	HH		# STORE DENOMINATOR IN FIRST WORD OF H,
+		EXTEND			#	WHICH NEED NOT BE PRESERVED.  PICK UP
+		DV	HH		#	DP H AND DIVIDE BY DENOMINATOR.
+		EXTEND
+		MP	BIT14		# RESCALE TJET FROM 2 TO USUAL 4 SEC.
+		TCF	CHKMINTJ	# CHECK THAT TJET IS NOT LESS THAN MINIMUM
+
+# TJET = (H + .00375)/(0.1 + TTOAXIS)	FOR TJET GREATER THAN 50 MSEC.
+
+FORMULA2	EXTEND
+		DCA	.00375A8	# .00375 SEC(2) SCALED AT 8.
+		DAS	HH		# STORE NUMERATOR IN DP H, WHICH NEED NOT
+					#	BE PRESERVED.
+		CAE	TTOAXIS		# SCALED AT 4 SEC.
+		AD	.1AT4		# 0.1 SEC SCALED AT 4.
+		DXCH	HH		# STORE DENOMINATOR IN FIRST WORD OF H,
+		EXTEND			#	WHICH NEED NOT BE PRESERVED.  PICK UP
+		DV	HH		#	DP NUMERATOR AND DIVIDE BY DENOMINATOR
+		EXTEND
+		MP	BIT14		# RESCALE TJET FROM 2 TO USUAL 4 SEC.
+		TCF	RETURNTJ	# END SUBROUTINE.
+
+# SUBROUTINIZED COMPUTATIONS REQUIRED FOR ALL ENTRIES INTO CODING FOR ZONES 1, 2, AND 3.
+# REACHED BY TC FROM 3 POINTS IN TJETLAW.
+
+Z123COMP	CS	ROTSENSE	# USED IN RETURNTJ SECTION TO RESCALE TJET
+		TS	ROTSENSE	# 	AS TIME6 AND GIVE IT PROPER SIGN.
+		CAE	EDOT		# SCALED AT PI/2(5) RAD/SEC.
+		EXTEND
+		INDEX	ADRSDIF2
+		MP	1/ANET1		# SCALED AT 2(7)/PI SEC(2)/RAD.
+		TS	TTOAXIS		# STORE TIME-TO-AXIS SCALED AT 4 SECONDS.
+		AD	-TJMAX
+		EXTEND			# IS TIME TO AXIS LESS THAN 150 MSEC.
+		BZMF	+2
+		TCF	FULLTIME	# NO. FIRE JETS, DO NOT CALCULATE TJET.
+		RETURN			# YES.  GO ON TO FIND TJET
+
+ZON1,2,3	TC	Z123COMP	# SUBROUTINIZED PREPARATION FOR ZONE1,2,3.
+
+# IF THE (NEG) DISTANCE BEYOND PARABOLA IS LESS THAN FLAT, USE SPECIAL
+# LOGIC TO ACQUIRE MINIMUM IMPULSE LIMIT CYCLE.  DURING POWERED FLIGHT
+# Page 1466
+# OR ULLAGE, FLAT = 0
+
+		CAE	FIREFCT		# SCALED AT PI/4 RAD.
+		AD	FLAT
+		EXTEND
+		BZMF	ZONE1		# NOT IN SPECIAL ZONES.
+
+# FIRE FOR AXIS OR, IF CLOSE, FIRE MINIMUM IMPULSE.  IF ON AXIS, COAST.
+
+ZONE2,3		CS	ZONE3LIM	# HEIGHT OF MIN-IMPULSE ZONE SET BY 1/ACCS
+		AD	TTOAXIS		#	35 MSEC IN DRIFTING FLIGHT
+		EXTEND			#	ZERO WHEN TRYING TO ENTER GTS CONTROL.
+		BZMF	ZONE3
+ZONE2		CAE	TTOAXIS		# FIRE TO AXIS.
+		TCF	RETURNTJ
+ZONE3		CCS	EDOT		# CHECK IF EDOT IS ZERO.
+		CAF	BIT6		# FIRE A ONE-JET MINIMUM IMPULSE.
+		TCF	RETURNTJ	# TJET = +0.
+		TC	CCSHOLE		# CANNOT BE BECAUSE NEG EDOT COMPLEMENTED.
+		TCF	RETURNTJ	# TJET = +0.
+
+ZONE1		EXTEND
+		INDEX	ADRSDIF1
+		SU	AXISDIST	# SCALED AT PI/4 RAD.
+		EXTEND
+		INDEX	ADRSDIF2
+		MP	ACCFCTZ1	# SCALED AT 2(7)/PI SEC(2)/RAD.
+		DDOUBL
+		DDOUBL
+		DXCH	HH		# DOUBLE PRECISION H SCALED AT 8 SEC(2).
+
+# TEST WHETHER TOTAL TIME REQUIRED GREATER THAN 150 MSEC:
+#	                     2                                   2
+# 	IS .5(.150 - TTOAXIS)  - H  NEGATIVE (SCALED AT 8 SECONDS )
+
+		CAE	TTOAXIS		# TTOAXIS SCALED AT 4 SECONDS.
+		AD	-TJMAX		# -.150 SECOND SCALED AT 4.
+		EXTEND
+		SQUARE
+		EXTEND
+		SU	HH		# HIGH WORD OF H SCALED AT 8 SEC(2).
+		EXTEND
+		BZMF	FULLTIME	# YES.  NEED NOT CALCULATE TJET.
+
+# TEST WHETHER TIME BEYOND AXIS GREATER THAN 50 MSEC TO DETERMINE WHICH APPROXIMATION TO USE.
+
+		CAE	HH
+		AD	NEG2
+		EXTEND
+		BZMF	FORMULA3
+
+# Page 1467
+# TJET = H/0.1 + TTOAXIS + .0375	FOR APPROXIMATION OVER MORE THAN 50 MSEC.
+
+		CAF	.1AT2		# STORE .1 SEC SCALED AT 2 FOR DIVISION.
+		DXCH	HH		# DP H SCALED AT 8 SEC(2) NEED NOT BE
+		EXTEND			#	PRESERVED.
+		DV	HH		# QUOTIENT SCALED AT 4 SECONDS.
+		AD	TTOAXIS		# SCALED AT 4 SEC.
+		AD	.0375AT4	# .0375 SEC SCALED AT 4.
+		TCF	RETURNTJ	# END COMPUTATION.
+
+# TJET - H/.O25 + TTOAXIS 	FOR APPROXIMATION OVER LESS THAN 50 MSEC.
+
+FORMULA3	CS	-.025AT2	# STORE +.25 SEC SCALED AT 2 FOR DIVISION
+		DXCH	HH		# PICK UP DP H AT 8, WHICH NEED NOT BE
+		EXTEND			# 	PRESERVED.
+		DV	HH		# QUOTIENT SCALED AT 4 SECONDS.
+		AD	TTOAXIS		# SCALED AT 4 SEC.
+
+# IF COMPUTED JET TIME IS LESS THAN TJMIN, TJET IS SET TO ZERO.
+# MINIMUM IMPULSES REQUIRED IN ZONE 3 ARE NOT SUBJECT TO THIS CONSTRAINT, NATURALLY.
+
+CHKMINTJ	AD	-TJMIN		# IS COMPUTED TIME LESS THAN THE MINIMUM.
+		EXTEND
+		BZMF	COASTTJ		# YES, SET TIME TO ZERO.
+		AD	TJMIN		# NO, RESTORE COMPUTED TIME.
+		TCF	RETURNTJ	# END COMPUTATION.
+
+# Page 1468
+# *** ROUGHLAW ***
+#
+# BEFORE ENTRY TO RUFLAW:
+#	1. INDEXERS ADRSDIF1 AND ADRSDIF2 ARE SET ON BASIS OF AXIS, AND SIGN OF EDOT.
+#	2. IF EDOT WAS NEGATIVE, E AND EDOT ARE ROTATED INTO UPPER HALF-PLANE AND ROTSENSE IS MADE NEGATIVE.
+#	3. E IS SCALED AT PI RADIANS AND EDOT AT PI/4 RAD/SEC.
+#	   (EXCEPT THE RUFLAW3 ENTRY WHEN E IS AT PI/4)
+#
+# RUFLAW1:	ERROR MORE NEGATIVE THAN PI/16 RAD.  FIRE TO A RATE OF 6.5 DEG/SEC (IF JET TIME EXCEEDS 20 MSEC.).
+# RUFLAW2:	ERROR MORE POSITIVE THAN PI/16 RAD.  FIRE TO AN OPPOSING RATE OF 6.5 DEG/SEC.
+# RUFLAW3:	ERROR RATE GREATER THAN PI/32 RAD/SEC AND ERROR WITHIN BOUNDS.  COAST IF BELOW FIREFCT, FIRE IF ABOVE
+
+RUFLAW1		CS	RUFRATE		# DECREMENT EDOT BY .1444 RAD/SEC AT PI/4
+		ADS	EDOT		#	WHICH IS THE TARGET RATE
+		EXTEND
+		BZMF	SMALRATE	# BRANCH IF RATE LESS THAN TARGET.
+		TC	RUFSETUP	# REVERSE ROTSENSE AND INDICATE MAX JETS.
+		CAE	EDOT		# PICK UP DESIRED RATE CHANGE.
+
+RUFLAW12	EXTEND			# COMPUTE TJET
+		INDEX	ADRSDIF2	#	= (DESIRED RATE CHANGE)/(2-JET ACCEL.)
+		MP	1/ANET1 +2
+		AD	-1/8		# IF TJET, SCALED AT 32 SEC, EXCEEDS
+		EXTEND			# 	4 SECONDS, SET TJET TO TJMAX.
+		BZMF	+2
+		TCF	FULLTIME
+		EXTEND
+		BZF	FULLTIME
+		AD	BIT12		# RESTORE COMPUTED TJET TO ACCUMULATOR
+		DAS	A
+		DAS	A
+		DAS	A		# RESCALED TJET AT 4 SECONDS.
+		TCF	CHKMINTJ	# RETURN AS FROM FINELAW.
+
+SMALRATE	TC	RUFSETUP +2	# SET NUMBERT AND FIREFCT FOR MAXIMUM JETS
+		CCS	ROTSENSE
+		CAF	ONE		# MODIFY INDEXER TO POINT TO 1/ANET
+		TCF	+2		#	CORRESPONDING TO THE PROPER SENSE.
+		CAF	NEGONE
+		ADS	ADRSDIF2
+
+		CS	EDOT		# (.144 AT PI/4 - EDOT) = DESIRED RATE CHNG.
+		TCF	RUFLAW12
+
+RUFLAW2		TC	RUFSETUP	# REVERSE ROTSENSE AND INDICATE MAX JETS.
+		CAF	RUFRATE
+		AD	EDOT		# (.144 AT PI/4 + EDOT) = DESIRED RATE CHNG.
+		TS	A		# IF OVERFLOW SKIP, FIRE FOR FULL TIME.
+		TCF	RUFLAW12	# OTHERWISE, COMPUTE JET TIME.
+		TCF	FULLTIME
+
+# Page 1469
+RUFLAW3		TC	RUFSETUP	# EXECUTE COMMON RUFLAW SUBROUTINE.
+		INDEX	ADRSDIF1
+		CS	FIREDB		# CALCULATE DISTANCE FROM SWITCH CURVE
+		AD	E		#	1/ANET1*EDOT*EDOT +E - FIREDB = 0
+		EXTEND			#		SCALED AT 4 PI RADIANS
+		MP	BIT11
+		XCH	EDOT
+		EXTEND
+		SQUARE
+		EXTEND
+		INDEX	ADRSDIF1
+		MP	1/ANET1 +2
+		AD	EDOT
+		EXTEND
+		BZMF	COASTTJ		# COAST IF BELOW IT.
+		TCF	FULLTIME	# FIRE FOR FULL PERIOD IF ABOVE IT.
+
+# SUBROUTINE USED IN ALL ENTRIES TO ROUGHLAW.
+
+RUFSETUP	CS	ROTSENSE	# REVERSE ROTSENSE WHEN ENTER HERE.
+		TS	ROTSENSE
+	+2	CAF	FOUR		# REQUIRE MAXIMUM (2) JETS IN U,V-AXES.
+		TS	NUMBERT
+		CAF	NEGMAX		# SUGGEST MAXIMUM (4) JETS IN P-AXIS.
+		TS	FIREFCT
+		TC	Q
+
+# CONSTANTS FOR TJETLAW
+
+		DEC	-16		# AXISDIFF(INDEX) = NUMBER OF REGISTERS
+AXISDIFF	DEC	+0		#	BETWEEN STORED 1/ACCS PARAMETERS FOR
+		DEC	16		#	THE INDEXED AXIS AND THE U-AXIS.
+SENSOR		OCT	14400		# RATIO OF TJET SCALING WITHIN TJETLAW
+					#	(4 SEC) TO SCALING FOR T6 (10.24 SEC).
+-3DEG		DEC	-.06667		# -3.0 DEGREES SCALED AT 45.
+-.0112A8	DEC	-.00141		# -.01125 SEC(2) SCALED AT 8.
+.1AT4		DEC	.025		# 0.1 SECOND SCALED AT 4.
+.1AT2		DEC	.05		# .1 SEC SCALED AT 2.
+.0375AT4	DEC	.00938		# .0375 SEC SCALED AT 4.
+-.025AT2	DEC	-.0125		# -.025 SEC SCALED AT 2.
+-.025AT4	DEC	-.00625
+-.05AT2		DEC	-.025
+-.15AT2		DEC	-.075
+.00375A8	2DEC	.00375 B-3
+
+-TJMAX		DEC	-.0375		# LARGEST CALCULATED TIME.  .150 SEC AT 4.
+TJMIN		DEC	.005		# SMALLEST ALLOWABLE TIME.  .020 SEC AT 4.
+-TJMIN		DEC	-.005
+RUFRATE		DEC	.1444		# CORRESPONDS TO TARGET RATE OF 6.5 DEG/S.
diff --git a/TPI_SEARCH.s b/TPI_SEARCH.s
new file mode 100644
index 0000000..b31452b
--- /dev/null
+++ b/TPI_SEARCH.s
@@ -0,0 +1,557 @@
+# Copyright:	Public domain.
+# Filename:	TPI_SEARCH.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:	551-561
+# Mod history:	2009-05-15 RSB	Adapted from the Colossus249/ file of the
+#				same name, using Comanche055 page images.
+#		2009-05-20 RSB	Corrections:  On p. 551, "SETLOC P17S" -> P17S1.
+#
+# 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 551
+# TPI SEARCH
+#
+# PROGRAM DESCRIPTION S17.1 AND S17.2
+#
+# FUNCTIONAL DESCRIPTION
+#
+# THE TPI SEARCH ROUTINE DETERMINES THE MINIMUM TOTAL VELOCITY TRANSFER TRAJECTORY FROM A GIVEN TPI
+# MANEUVER TIME WITHIN THE CONSTRAINT OF A SAFE PERICENTER.  THIS VELOCITY IS THE SUM OF THE IMPULSIVE VELOCITIES
+# FOR THE TPI AND TPF MANEUVERS.
+#
+# THE S17.1 ROUTINE EXTRAPOLATES THE STATE VECTORS OF BOTH VEHICLES TO THE TPI TIME AND COMPUTES THE
+# RELATIVE PHASE ANGLE BETWEEN THE VEHICLES, THE ALTITUDE DIFFERENCE (I.E., THE MAGNITUDE DIFFERENCE OF THE 
+# POSITION VECTORS) AND SELECTS A SEARCH SECTOR BASED ON THE SIGN OF THE ALTITUDE DIFFERENCE.
+#
+# THE S17.2 ROUTINE FURTHER DEFINES THE SEARCH SECTOR BY COMPUTING ANGULAR LIMITS AND USES THE TIME THETA
+# SUBROUTINE TO COMPUTE THE SEARCH START AND END TIMES.  THE SEARCH IS THEN MADE IN AN ITERATIVE LOOP USING THE
+# LAMBERT SUBROUTINE TO COMPUTE TEH VELOCITIES REQUIRED AT TPI TIME AND AT TPF TIME.  EXIT FROM THE SEARCH LOOP
+# IS MADE WHEN SOLUTION CRITERIA ARE MET (NORMAL EXIT) OR AS SOON AS IT IS EVIDENT THAT NO SOLUTION EXISTS IN
+# THE SECTOR SEARCHED.
+#
+# CALLING SEQUENCE
+#
+# 	BOTH ROUTINES ARE CALLED IN INTERPRETIVE CODE AND RETURN VIA QPRET.  S17.1 HAS ONLY A NORMAL EXIT.
+#	S17.2 RETURNS VIA QPRET FOR NORMAL EXIT AND TO ALARUMS FOR ERROR EXIT.
+#
+# SUBROUTINES CALLED
+#
+#	CSMCONIC
+#	LEMCONIC
+#	TIMETHET
+#	INITVEL
+
+		BANK	36
+		SETLOC	P17S1
+		BANK
+		
+		COUNT	36/TPI
+		
+		EBANK=	RACT3
+		
+# **** TEMPORARY ****
+
+HPE		2DEC	157420.0 B-29		# EARTH'S MIN. PERICENTER ALTITUDE 85 N.M.
+
+HPL		2DEC	10668.0213 B-29		# MOON'S MIN. PERICENTER ALTITUDE 35000 FT.
+
+CDSEC		2DEC	40000
+
+CLSEC		2DEC	15000
+
+PIINVERS	2DEC	.3183098862
+
+SEC1THET	2DEC	.1944444444
+
+# Page 552
+SEC2THET	2DEC	.9166666667
+
+MANYFEET	2DEC	-1.0 B-2
+
+LIMVEL		2DEC	.6096 E-2 B-7		# 2FPS
+
+DFTMOON		2DEC	.1524 E3 B-29		# 500 FEET
+
+DP-.002		2DEC	0.002
+
+		SETLOC	P17S
+		BANK
+S17.1		STQ	DLOAD
+			NORMEX
+			TTPI
+		STCALL	TDEC1			# ADVANCE PASSIVE VEHICLE TO TPI
+			LEMCONIC
+		CALL
+			LEMSTORE
+		DLOAD
+			TTPI
+		STCALL	TDEC1			# ADVANCE ACTIVE VEHICLE TO TPI
+			CSMCONIC
+		CALL
+			CSMSTORE
+		VLOAD
+			RACT3
+		ABVAL	PDVL			# /RA/ 0D			PL 2D
+			RPASS3
+		UNIT	PDDL			# UNIT RP 0D			PL 6D
+		BDSU	SET
+			36D			# /RP/ -/RA/
+			KFLAG			# OFF = +
+		BMN	CLEAR
+			+2
+			KFLAG			# ON = -
+		STOVL	DELHITE
+			0D
+		VXV	UNIT
+			VPASS3
+		STOVL	E2			# ALMOST IT SAVE FOR 17.2
+			RACT3
+		PUSH	VPROJ
+			E2
+		VSL2	BVSU			# RPA
+		UNIT	DOT
+			0D
+		SL1 	ACOS
+		PDVL
+		VXV	DOT
+# Page 553		
+			RACT3
+			E2
+		PDDL	SIGN
+		STADR
+		STODL	THETZERO		# CENTRAL ANGLE
+			X1
+		STCALL	XRS			# SAVE INDICES FOR FURTHER USE
+			NORMEX			#   += ACTIVE AHEAD  -= ACTIVE BEHIND
+S17.2		STQ	VLOAD			# COMPUTE SEARCH SECTOR LIMITS
+			QTEMP
+			RACT3
+		UNIT	DOT
+			E2
+		ABS	SQRT
+		SL1	DAD
+			DP-.002			# ADD .002 RADIANS TO IT
+		BON	DCOMP			# GIVES CORRECT SINE, COSINE MUST BE
+			KFLAG			# COMP. ADD .5 FOR ANGLE
+			+1
+# PHI(0)=180-(-(THETAZERO +K5IT)), PHI(I)=180-(-THETAZERO+K2IT))
+# SIN(180-ALPHA)=SIN(ALPHA) ETC
+		DMP	SETPD
+			PIINVERS		# REVOLUTIONARY HERES TWO IT
+			0D
+		PUSH	DSU
+			THETZERO
+		STORE	IT			# PHI(I) , -(THETZERO + K2IT)
+		PDDL	PUSH
+		SR1	DAD
+		DAD	PUSH			# PHI(0) , -(THETZERO + K5IT)
+		SIN	SET
+			RVSW
+		STODL	SNTH
+		COS	BMN
+			+2
+		DCOMP
+		STODL	CSTH
+			XRS
+		STOVL	X1
+			RPASS3
+		VSR*
+			0,2
+		STOVL	RVEC
+			VPASS3
+		VSR*
+			0,2
+		STCALL	VVEC
+			TIMETHET
+		DLOAD				# SAVE START TIME AND GET END TIME
+			T
+# Page 554			
+		STORE	TF
+		STODL	TFO
+			IT
+		PUSH	SIN
+		STODL	SNTH
+		COS	BMN
+			+2
+		DCOMP
+		STORE	CSTH
+		LXA,1	CALL
+			XRS
+			TIMETHET	
+# INITIALIZE LOOP
+		DLOAD	CLEAR
+			T
+			ITSWICH
+		STODL	TFI			# SAVE TIME FOR LOOP TEST
+			DPPOSMAX
+		STODL	DELVEE
+			MANYFEET
+		STODL	HP
+			SEC1THET		# 70 DEGREES
+		BON	DLOAD
+			KFLAG
+			+2
+			SEC2THET		# 330 DEGREES
+		STCALL	THETL
+			CONCAUL
+BIS		DLOAD	SR1
+			CSTH
+		STODL	COSTH
+			SNTH
+		SR1
+		STCALL	SINTH			# GET 4 QUADRANT THETA
+			ARCTRIG
+		BPL	DAD
+			+2
+			DPPOSMAX		# PUT THETA BETWEEN 0,1
+		BDSU	PDDL
+			THETL
+			TF
+		DSU	SIGN			# FAST TIMES
+			TFI
+		BMN
+			RNGETEST		# TIME MUST HAVE A STOP
+# ADVANCE PASSIVE FOR TARGET VECTOR
+CONCAUL		DLOAD
+			TTPI
+		DAD	BON
+			TF
+# Page 555
+			AVFLAG
+			ADVCSM
+		STCALL	TDEC1
+			LEMCONIC
+		GOTO
+			JUNCT3
+ADVCSM		STCALL	TDEC1
+			CSMCONIC
+# SAVE BACK VALUES OF HP AND DELVEE
+JUNCT3		VLOAD
+			VATT
+		STOVL	VPASS4
+			RATT
+		STORE	RPASS4
+		STODL	RTARG
+			TF
+		STODL	DELLT4
+			HP
+		STODL	HPO
+			DELVEE
+		STODL	DELVEO
+# PREPARE FOR LAMBERT
+			TTPI
+		STODL	INTIME
+			XRS
+		STODL	RTX1
+			HI6ZEROS
+		SETPD	PDDL
+			0D
+			EPSFOUR
+		PDVL
+			RACT3
+		STOVL	RINIT
+			VACT3
+		STCALL	VINIT
+			INITVEL
+# COMPUTE H ET CETERA
+		VLOAD	VSU
+			VTPRIME
+			VPASS4
+		ABVAL	PUSH
+		STOVL	RELDELV			# /V2-VP(TPI+TF)/
+			DELVEET3		# V1-VA
+		ABVAL				# /V1-VA/
+		STORE	MAGVTPI
+		DAD	STADR
+		STODL	DELVEE
+			XRS
+		STOVL	X1
+			VIPRIME
+# Page 556			
+		VSR*
+			0,2
+		STOVL	VVEC
+			RACT3
+		VSR*
+			0,2
+		STCALL	RVEC
+			PERIAPO
+		LXA,2	DLOAD
+			XRS	+1
+		SL*
+			0,2
+		STORE	HP
+# ITSWICH DENOTES INTERPOLATION -- SOLUTION ACCEPTANCE IS FORCED
+		BON	DLOAD
+			ITSWICH
+			ENDEN
+			HPERMIN
+		DSU	BMN
+			HP
+			HALFSAFE
+		PDDL	DSU			# WAS PERICENTER ALT SAFE
+			HPERMIN
+			HPO
+		BMN	DSU			# (HPLIM-HPO)-(HPLIM-HP)=HP-HPO
+			INTERP			# SOLUTION AT HAND
+		BMN	DLOAD
+			ALARUMS			# IT'S GETTING WORSE -- SOUND THE ALARM
+			CDSEC
+JUNCT1		BOFF	DCOMP			# OFF IS PLUS, ON IS MINUS
+			KFLAG
+			+1
+		STORE	DELTEE
+JUNCT2		DLOAD	DAD
+			DELTEE
+			TF
+		STCALL	TF
+			BIS			# RECYCLE
+INTERP		SET	DSU			# HP-HPO
+			ITSWICH
+		NORM	PDDL
+			X1
+			DFTMOON
+		DAD	DSU
+			HPERMIN
+			HP
+		NORM	SR1
+			X2
+		XSU,2	DDV
+			X1
+# Page 557			
+		DMP	SR*
+			DELTEE
+			0 	-1,2
+		STCALL	DELTEE
+			JUNCT2
+HALFSAFE	PDDL	DSU			# SAVE HP-HPLIM FOR POSSIBLE
+			DELVEE
+			DELVEO			# SAVE THIS TOO
+		PUSH	ABS
+		DSU	BMN
+			LIMVEL			# 2 FT PS
+			ENDEN
+		DLOAD	DSU
+			HPERMIN
+			HPO
+		PDDL
+		BMN	DLOAD
+			LRGRDVO
+		BPL	DLOAD
+			INTERP
+			DELTEE
+		SR1	DCOMP
+		STCALL	DELTEE
+			JUNCT2
+LRGRDVO		DLOAD
+		BMN	DLOAD
+			JUNCT2
+			CLSEC
+		GOTO
+			JUNCT1
+# TIME RAN OUT ASSUME SOLUTION IF SAVE PERICENTER
+RNGETEST	DLOAD	DSU
+			HP
+			HPERMIN
+		BMN	DLOAD
+			ALARUMS
+			TF
+		DSU
+			DELTEE
+		STORE	TF			# TIME OF SOLUTION
+ENDEN		VLOAD
+			VTPRIME
+		DOT	PDDL			# SG2 WITH MAGNITUDE
+			RPASS4
+			RELDELV
+		SIGN	STADR			# NOW SIGN(RELDELV)=SIGN(SG2)
+		STCALL	RELDELV
+			TRANSANG		# COMPUTE OMEGA T, CENTRAL ANGLE
+		VLOAD	DOT
+			RACT3
+# Page 558
+			VIPRIME			# SG1
+		SIGN	BPL			# IF POSITIVE THEN SG1 = SG2 OTHERWISE
+			RELDELV
+			USEKAY			# SIGN(SG2-SG1)=SIGN(SG2)=SIGN(RELDELV)
+		SLOAD	DCOMP
+			DECTWO
+		SIGN	BPL
+			RELDELV
+			NEXUS
+		DCOMP	GOTO
+			USEKAY	+4
+USEKAY		SLOAD	BON
+			DECTWO
+			KFLAG
+			NEXUS
+		DSU	
+			P21ONENN
+NEXUS		STODL	NN1
+			HP
+		STCALL	POSTTPI
+			QTEMP
+		BANK	07
+		SETLOC	XANG
+		BANK
+		COUNT	07/XANG
+		
+# CENTRAL ANGLE SUBROUTINE
+#
+# THIS SUBROUTINE COMPUTES THE CENTRAL ANGLE OF TRAVEL OF THE
+# PASSIVE VEHICLE DURING THE TRANSFER.
+
+TRANSANG	STQ	SETPD
+			SUBEXIT
+			0
+		LXA,1	LXA,2
+			XRS
+			XRS	+1
+		VLOAD	VSR*
+			VPASS4
+			0,2
+		STODL*	VVEC
+			MUTABLE	+2,1
+		PDVL	VSR*			# SQRT MU (+18 OR +15)			00D
+			RPASS4
+			0,2
+		ABVAL	PDDL*			# MAGNITUDE OF R 	(+29 OR +27)	02D
+			MUTABLE,1
+		PDVL	VSQ			# 1/MU 			(+34 OR +28)	04D
+			VVEC
+		NORM	DMPR			# PUSH LIST AT 02D
+			X1
+# Page 559
+		DMP	SRR*
+			02D
+			0 	-3,1
+		BDSU				# R V**/MU 		(+6)
+			D1/32
+		NORM	PDDL
+			X1			# (2 - R V**/MU) 	(+6-N)
+		SR1R	DDV			# MAGNITUDE OF R 	(+30 OR +28)
+		SL*	PUSH			# R/(2 - R V**/MU)	(+29 OR +27)	02D
+			0 	-5,1
+		SR1	SQRT
+		DMP
+		NORM	PDDL			# ASUBP***				00D
+			X1
+		SR1	DDV
+		DMP	SL*
+			TF
+			0,1
+		PDDL	NORM
+			2PISC
+			X1
+		PDDL	DDV
+		SL*
+			0 	-3,1		# CENTANG = (SQRT(MU/ASUP***)TF)
+		STCALL	CENTANG			# IN REVOLUTIONS B-0
+			SUBEXIT
+		BANK	35
+		SETLOC	P17S1
+		BANK
+		COUNT	35/P17
+		
+# TPI SEARCH DISPLAY ROUTNE
+
+P17		TC	AVFLAGA			# AVFLAG = CSM, SET TRACK + UPDATE FLAGS
+		TC	P17.1
+P77		TC	AVFLAGP			# AVFLAG = LEM, SET TRACK + UPDATE FLAGS
+P17.1		TC	P20FLGON		#	SET UPDATE FLAG
+		CAF	V06N37			#	DISPLAY TTPI TIME
+		TC	VNP00H
+		TC	INTPRET
+		CLEAR	CALL
+			UPDATFLG
+			S17.1			# UPDATE STATE VECTORS TO TTPI
+		SET	AXT,1
+			UPDATFLG
+		DEC	2			# DELTA H = 2 K POSITIVE, KFLAG OFF
+		BOFF	AXT,1
+			KFLAG
+			+2
+		DEC	1			# DELTA H = 1 K NEGATIVE, KFLAG ON
+# Page 560
+		SXA,1	EXIT
+			OPTION2
+		CAF	V06N72			# DISPLAY PHI, DELTA H, SEARCH OPTION K
+		TC	VNCOMP17
+		TC	INTPRET
+		CLEAR	SET
+			UPDATFLG
+			KFLAG
+		SLOAD	DSU
+			OPTION2			# RESET KFLAG ON FOR OPTION =1
+			P21ONENN		#	     OFF FOR OPTION =2
+		BHIZ	CLEAR
+			+2
+			KFLAG
+		SLOAD	BHIZ
+			XRS	+1
+			+4
+		DLOAD	GOTO
+			HPL
+			P17.2
+		DLOAD
+			HPE
+P17.2		STCALL	HPERMIN
+			S17.2
+		SET	EXIT
+			UPDATFLG
+P17.3		CAF	V06N58			# DISPLAY DELTA VTPI, DELTA VTPF, AND H
+		TC	VNCOMP17
+		CAF	V06N55			# DISPLAY PERICENTER CODE AND CENTRAL ANG,
+		TC	BANKCALL
+		CADR	GOFLASHR
+		TC	GOTOP00H		# TERMINATE PROGRAM
+		TC	GOTOP00H		# END PROGRAM
+		TC	P17.1			# RECYCLE WITH NEW TTPI OR SEARCH OPTION
+		CAF	TWO			# BLANK R2
+		TC	BLANKET
+		TCF	ENDOFJOB
+		EBANK=	RTRN
+		
+VNCOMP17	EXTEND
+		QXCH	QSAVED
+		TS	VERBNOUN
+		CA	VERBNOUN
+		TCR	BANKCALL
+		CADR	GOFLASH
+		TC	-3			# TERMINATE ILLEGAL REDISPLAY
+		TC	QSAVED			# PROCEED
+		CS	MPAC			# RECYCLE WITH NEW TPI TIME
+		AD	BIT6			# OR PROCEED WITH NEW SEARCH OPTION
+		EXTEND
+# Page 561		
+		BZF	P17.1
+		TC	VNCOMP17 +3
+ALARUMS		SET	EXIT
+			UPDATFLG
+		TC	ALARM
+		OCT	00124			# NO SAFE PERICENTER IN THIS SECTOR
+		CAF	V05N09
+		TC	VNCOMP17
+		TC	GOTOP00H		# PROCEED ILLEGAL TERMINATE PROGRAM
+V06N72		VN	0672
+
diff --git a/TRIM_GIMBAL_CNTROL_SYSTEM.s b/TRIM_GIMBAL_CNTROL_SYSTEM.s
new file mode 100644
index 0000000..226d0b5
--- /dev/null
+++ b/TRIM_GIMBAL_CNTROL_SYSTEM.s
@@ -0,0 +1,622 @@
+# Copyright:	Public domain.
+# Filename:	TRIM_GIMBAL_CNTROL_SYSTEM.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:	Ron Burkey <info@sandroid.org>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	1472-1485
+# Mod history:	2009-05-27 RSB	Adapted from the corresponding 
+#				Luminary131 file, using page 
+#				images from Luminary 1A.
+#
+# 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-61
+#	16:27 JULY 14, 1969 
+
+# Page 1472
+		BANK	21
+		EBANK=	QDIFF
+		SETLOC	DAPS4
+		BANK
+
+		COUNT*	$$/DAPGT
+
+# CONTROL REACHES THIS POINT UNDER EITHER OF THE FOLLOWING TWO CONDITIONS ONCE THE DESCENT ENGINE AND THE DIGITAL
+# AUTOPILOT ARE BOTH ON:
+#	A) THE TRIM GIMBAL CONTROL LAW WAS ON DURING THE PREVIOUS Q,R-AXIS TIME5 INTERRUPT (OR THE DAPIDLER
+#	   INITIALIZATION WAS SET FOR TRIM GIMBAL CONTROL AND THIS IS THE FIRST PASS), OR
+#	B) THE Q,R-AXES RCS AUTOPILOT DETERMINED THAT THE VEHICLE WAS ENTERING (OR HAD JUST ENTERED) A COAST
+#	   ZONE WITH A SMALL OFFSET ANGULAR ACCELERATION.
+# GTS IS THE ENTRY TO THE GIMBAL TRIM SYSTEM FOR CONTROLLING ATTITUDE ERRORS AND RATES AS WELL AS ACCELERATIONS.
+
+GTS		CAF	NEGONE		# MAKE THE NEXT PASS THROUGH THE DAP BE
+		TS	COTROLER	# 	THROUGH RCS CONTROL,
+		CAF	FOUR		#	AND ENSURE THAT IT IS NOT A SKIP.
+		TS	SKIPU
+		TS	SKIPV
+
+		CAF	TWO
+		TS	INGTS		# SET INDICATOR OF GTS CONTROL POSITIVE.
+		TS	QGIMTIMR	# SET TIMERS TO 200 MSEC TO AVOID BOTH
+		TS	RGIMTIMR	# RUNAWAY AND INTERFERENCE BY NULLING.
+
+# THE DRIVE SETTING ALGORITHM
+#
+#	DEL = SGN(OMEGA + ALPHA*ABS(ALPHA)/(2*K))
+#						    2               1/2                  2       3/2
+#	NEGUSUM = ERROR*K + ALPHA*(DEL*OMEGA + ALPHA /(3*K)) + DEL*K   (DEL*OMEGA + ALPHA /(2*K))
+#
+#	DRIVE = -SGN(NEGUSUM)
+
+		CA	SR		# SAVE THE SR.  SHIFT IT LEFT TO CORRECT
+		AD	A		# FOR THE RIGHT SHIFT DUE TO EDITING.
+		TS	SAVESR
+
+GTSGO+DN	CAF	TWO		# SET INDEXER FOR R-AXIS CALCULATIONS.
+		TCF	GOQTRIMG +1
+
+GOQTRIMG	CAF	ZERO		# SET INDEXER FOR Q-AXIS CALCULATIONS
+		TS	QRCNTR
+# Page 1473
+# RSB 2009 ---------------------------------------------------------------------
+# Everything between this line and the similar line below was simply filled-in
+# as-is from Luminary 131, and then verified to assemble to the proper binary
+# values.  This area is blank on the Luminary 099 print-out, as if the
+# printer ribbon had run out.
+		INDEX	QRCNTR		# AOS SCALED AT PI/2
+		CA	AOSQ
+		EXTEND
+		MP	BIT2		# RESCALE AOS TO PI/4
+		EXTEND
+		BZF	GTSQAXIS -3	# USE FULL SCALE FOR LARGER AOS ESTIMATES.
+
+		INDEX	A
+		CS	LIMITS		# LIMITS +1 CONTAINS NEGMAX.
+		XCH	L		# LIMITS -1 CONTAINS POSMAX.
+
+		CCS	QRCNTR		# PICK UP RATE FOR THIS AXIS.  RATE CELLS
+		INDEX	A		# USE ADJACENT, NOT SEPARATED.  AT PI/4
+		CA	EDOTQ
+GTSQAXIS	DXCH	WCENTRAL
+
+		INDEX	QRCNTR		# COLLECT K FOR THIS AXIS
+		CA	KQ
+		TS	KCENTRAL
+
+		EXTEND			# CONTROL AUTHORITY ZERO.  AVOID DRIVING
+		BZF	POSDRIVE +1	# ENGINE BELL TO THE STOPS.
+
+		INDEX	QRCNTR		# QDIFF, RDIFF ARE STORED IN D.P.
+		CAE	QDIFF
+
+ALGORTHM	EXTEND			# Q(R)DIFF IS THETA (ERROR) SCALED AT PI.
+		MP	KCENTRAL	# FORM K*ERROR AT PI(2)/2(8), IN D.P.
+		LXCH	K2THETA
+		EXTEND
+		MP	BIT5		# RESCALE TO 4*PI(2)
+		DXCH	K2THETA
+		EXTEND
+		MP	BIT5		# FIRST TERM OF NEGUSUM IN K2THETA.
+		ADS	K2THETA +1	# NO CARRY NEEDED	D.P. AT 4*PI(2)
+
+		CS	ACENTRAL	# FORM ALPHA(2)/(2*K) AT 16*PI, IN D.P.,
+		EXTEND			# LIMITING QUOTIENT TO AVOID OVERFLOW.
+		MP	BIT14		# -ALPHA/2 IN A, SCALED AT PI/4
+		EXTEND
+		MP	ACENTRAL	# -ALPHA(2)/2 IN A,L, SCALED AT PI(2)/16)
+		AD	KCENTRAL
+		EXTEND
+		BZMF	HUGEQUOT	# K-ALPHA(2)/2 SHOULD BE PNZ FO DIVISION
+
+		EXTEND
+		DCS	A		# ALPHA(2)/2 - K
+		AD	KCENTRAL
+# RSB 2009 ---------------------------------------------------------------------
+		EXTEND
+		DV	KCENTRAL	# HIGH ORDER OF QUOTIENT.
+		XCH	A2CNTRAL
+		CA	L		# SHIFT UP THE REMAINDER.
+		LXCH	7		# ZERO LOW-ORDER DIVIDEND.
+		EXTEND
+# Page 1474
+		DV	KCENTRAL
+		XCH	A2CNTRAL +1	# QUOTIENT STORED AT 16*PI, D.P.
+		TCF	HAVEQUOT
+
+HUGEQUOT	CA	POSMAX
+		TS	L
+		DXCH	A2CNTRAL	# LIMITED QUOTIENT STORED AT 16*PI, D.P.
+
+HAVEQUOT	CA	WCENTRAL
+		EXTEND
+		MP	BIT9		# RESCALE OMEGA AT 16*PI IN D.P.
+		DXCH	K2CNTRAL	# LOWER WORD OVERLAYS OMEGA IN WCENTRAL
+
+		EXTEND
+		DCA	K2CNTRAL
+		DXCH	FUNCTION
+
+		CA	ACENTRAL	# GET ALPHA*ABS(ALPHA)/(2*K)
+		EXTEND
+		BZMF	+4
+
+		EXTEND
+		DCA	A2CNTRAL
+		TCF	+3
+
+		EXTEND
+		DCS	A2CNTRAL
+
+		DAS	FUNCTION	# OMEGA + ALPHA*ABS(ALPHA)/(2*K) AT 16*PI
+
+		CCS	FUNCTION	# DEL = +1 FOR FUNCT1 GREATER THAN ZERO.
+		TCF	POSFNCT1	# OTHERWISE DEL = -1
+		TCF	+2
+		TCF	NEGFNCT1
+
+		CCS	FUNCTION +1	# USE LOW ORDER WORD SINCE HIGH IS ZERO
+POSFNCT1	CAF	BIT1
+		TCF	+2
+NEGFNCT1	CS	BIT1
+		TS	DEL
+
+		CCS	DEL		# REPLACE OMEGA BY DEL*OMEGA
+		TCF	FUNCT2		# POSITIVE DEL VALUE.  PROCEED.
+		TCF	DEFUNCT
+		TCF	NEGFNCT2
+
+DEFUNCT		TS	K2CNTRAL
+		TS	K2CNTRAL +1
+		TCF	FUNCT2
+
+# Page 1475
+NEG1/3		DEC	-.33333
+
+NEGFNCT2	EXTEND
+		DCS	K2CNTRAL
+		DXCH	K2CNTRAL
+
+FUNCT2		EXTEND
+		DCA	A2CNTRAL
+		DAS	K2CNTRAL	# DEL*OMEGA + ALPHA(2)/(2*K) AT 16*PI, D.P.
+
+FUNCT3		CA	A2CNTRAL
+		EXTEND
+		MP	NEG1/3
+		DXCH	A2CNTRAL
+		CA	L
+		EXTEND
+		MP	NEG1/3
+		ADS	A2CNTRAL +1
+		TS	L
+		TCF	+2		# A2CNTRAL NOW CONTAINS -ALPHA(2)/(6*K),
+		ADS	A2CNTRAL	# SCALED AT 16*PI, IN D.P.
+
+		EXTEND
+		DCA	K2CNTRAL	# DEL*OMEGA + ALPHA(2)/(3*K) IN A2CNTRAL,
+		DAS	A2CNTRAL	# SCALED AT 16*PI, D.P.
+
+		CA	A2CNTRAL
+		EXTEND
+		MP	ACENTRAL
+		DAS	K2THETA
+		CA	A2CNTRAL +1
+		EXTEND
+		MP	ACENTRAL	# ACENTRAL MAY NOW BE OVERLAID.
+		ADS	K2THETA +1
+		TS	L
+		TCF	+2		# TWO TERMS OF NEGUSUM ACCUMULATED, SO FAR
+		ADS	K2THETA		# SCALED AT 4*PI(2), IN D.P.
+
+GETROOT		CA	K2CNTRAL	# K*(DEL*OMEGA + ALPHA(2)/(2*K)) IS THE
+		EXTEND			# TERM FOR WHICH A SQUARE ROOT IS NEEDED.
+		MP	KCENTRAL	# K AT PI/2(8)
+		DXCH	FUNCTION
+		CA	K2CNTRAL +1
+		EXTEND
+		MP	KCENTRAL
+		ADS	FUNCTION +1
+		TS	L
+		TCF	+2
+		ADS	FUNCTION	# DESIRED TERM IN FUNCTION, AT PI(2)/16
+# Page 1476
+		CCS	DEL
+		TCF	RSTOFGTS
+		TCF	NEGUSUM
+		TCF	NEGATE
+		TCF	NEGUSUM
+
+NEGATE		EXTEND
+		DCS	K2CNTRAL
+		DXCH	K2CNTRAL
+		TCF	RSTOFGTS
+
+		BANK	16
+		EBANK=	NEGUQ
+		SETLOC	DAPS1
+		BANK
+
+# THE WRCHN12 SUBROUTINE SETS BITS 9,10,11,12 OF CHANNEL 12 ON THE BASIS OF THE CONTENTS OF NEGUQ,NEGUR WHICH ARE
+# THE NEGATIVES OF THE DESIRED ACCELERATION CHANGES.  ACDT+C12 SETS Q(R)ACCDOT TO REFLECT THE NEW DRIVES.
+#
+# WARNING:  ACDT+C12 AND WRCHN12 MUST BE CALLED WITH INTERRUPT INHIBITED.
+
+BGIM		OCTAL	07400
+CHNL12		EQUALS	ITEMP6
+ACDT+C12	CS	NEGUQ
+		EXTEND			# GIMBAL DRIVE REQUESTS.
+		MP	ACCDOTQ
+		LXCH	QACCDOT
+		CS	NEGUR
+		EXTEND
+		MP	ACCDOTR
+		LXCH	RACCDOT
+
+		CCS	NEGUQ
+		CAF	BIT10
+		TCF	+2
+		CAF	BIT9
+		TS	CHNL12
+
+		CCS	NEGUR
+		CAF	BIT12
+		TCF	+2
+		CAF	BIT11
+		ADS	CHNL12		# (STORED RESULT NOT USED AT PRESENT)
+
+		CS	BGIM
+		EXTEND
+		RAND	CHAN12
+		AD	CHNL12
+		EXTEND
+		WRITE	CHAN12
+# Page 1477
+		CS	CALLGMBL	# TURN OFF REQUEST FOR ACDT+C12 EXECUTION.
+		MASK	RCSFLAGS
+		TS	RCSFLAGS
+
+		TC	Q		# RETURN TO CALLER.
+
+		BANK	21
+		EBANK=	QDIFF
+		SETLOC	DAPS4
+		BANK
+
+# Page 1478
+# SUBROUTINE TIMEGMBL:	MOD 0, OCTOBER 1967, CRAIG WORK
+#
+# TIMEGMBL COMPUTES THE DRIVE TIME NEEDED FOR THE TRIM GIMBAL TO POSITION THE DESCENT ENGINE NOZZLE SO AS TO NULL
+# THE OFFSET ANGULAR ACCELERATION ABOUT THE Q (OR R) AXIS.  INSTEAD OF USING AOSQ(R), TIMEGMBL USES .4*AOSQ(R),
+# SCALED AT PI/8.  FOR EACH AXIS, THE DRIVE TIME IS COMPUTED AS ABS(ALPHA/ACCDOT).  A ZERO
+# ALPHA OR ACCDOT OR A ZERO QUOTIENT TURNS OFF THE GIMBAL DRIVE IMMEDIATELY.  OTHERWISE, THE GIMBAL IS TURNED ON
+# DRIVING IN THE CORRECT DIRECTION.  THE Q(R)GIMTIMR IS SET TO TERMINATE THE DRIVE AND Q(R)ACCDOT
+# IS STORED TO REFLECT THE NEW ACCELERATION DERIVATIVE.  NEGUQ(R) WILL CONTAIN +1,+0,-1 FOR A Q(R)ACCDOT VALUE
+# WHICH IS NEGATIVE, ZERO, OR POSITIVE.
+#
+# INPUTS:	AOSQ,AOSR, SCALED AT P1/2, AND ACCDOTQ, ACCDOTR AT PI/2(7).	PI/2(7).
+#
+# OUTPUTS:	NEW GIMBAL DRIVE BITS IN CHANNEL 12, NEGUQ, NEGUR, QACCDOT, AND RACCDOT, THE LAST SCALED AT PI/2(7).
+#		Q(R)GIMTIMR WILL BE SET TO TIME AND TERMINATE GIMBAL DRIVE(S).
+#
+# DEBRIS:	A, L, Q, ITEMPS 2, 3, 6, AND RUPTREG2 AND ACDT+C12 DEBRIS.
+#
+# EXITS:	VIA TC Q.
+#
+# ALARMS, ABORTS:  NONE.
+#
+# SUBROUTINES:	ACDT+C12, IBNKCALL
+#
+# WARNING:	THIS SUBROUTINE WRITES INTO CHANNEL 12 AND USES THE ITEMPS.  THEREFORE IT MAY ONLY BE CALLED WITH
+# 		INTERRUPT INHIBITED.
+#
+# ERASABLE STORAGE CONFIGURATION (NEEDED BY THE INDEXING METHODS):
+#	NEGUQ		ERASE	+2		# NEGATIVE OF Q-AXIS GIMBAL DRIVE
+#	(SPWORD)	EQUALS	NEGUQ +1	# ANY S.P. ERASABLE NUMBER, NOW THRSTCMD
+#	NEGUR		EQUALS	NEGUQ +2	# NEGATIVE OF R-AXIS GIMBAL DRIVE
+#	ACCDOTQ		ERASE	+2		# Q-JERK TERM SCALED AT PI/2(7) RAD/SEC(3)
+#	(SPWORD)	EQUALS 	ACCDOTQ +1	# ANY S.P. ERASABLE NUMBER NOW QACCDOT
+#	ACCDOTR		EQUALS	ACCDOTQ +2	# R-JERK TERM SCALED AT PI/2(7) RAD/SEC(3)
+#						# ACCDOTQ, ACCDOTR ARE MAGNITUDES.
+#	AOSQ		ERASE	+4		# Q-AXIS ACC., D.P. AT PI/2 R/SEC(2)
+#	AOSR		EQUALS	AOSQ +2		# R-AXIS ACCELERATION SCALED AT PI/2 R/S2
+
+QRNDXER		EQUALS	ITEMP6
+OCT23146	OCTAL	23146			# DECIMAL .6
+NZACCDOT	EQUALS	ITEMP3
+
+TIMEGMBL	CAF	ONE			# INITIALZE ALLOWGTS.
+		TS	ALLOWGTS
+
+		CAF	TWO			# SET UP LOOP FOR R AXIS.
+		LXCH	Q			# SAVE RETURN ADDRESS.
+		LXCH	RUPTREG2
+# Page 1479
+		TCF	+2
+TIMQGMBL	CAF	ZERO			# NOW DO THE Q-AXIS
+		TS	QRNDXER
+		INDEX	QRNDXER
+		CA	ACCDOTQ			# ACCDOT IS PRESUMED TO BE AT PI/2(7).
+		EXTEND
+		BZMF	TGOFFNOW		# IS ACCDOT LESS THAN OR EQUAL TO 0?
+		TS	NZACCDOT		# NO.  STORE NON-ZERO, POSITIVE ACCDOT.
+
+ALPHATRY	INDEX	QRNDXER
+		CS	AOSQ
+		EXTEND
+		BZF	TGOFFNOW		# IS ALPHA ZERO?
+
+		TS	Q			# SAVE A COPY OF -AOS.
+		EXTEND				# NO.  RESCALE FOR TIMEGMBL USE.
+		MP	OCT23146		# OCTAL 23146 IS DECIMAL .6
+		AD	Q			# -1.6*AOS AT PI/2 = -.4*AOS AT PI/8
+		TS	L			# WAS THERE OVERFLOW?
+		TCF	SETNEGU			# NO.  COMPUTE DRIVE TIME.
+
+		CS	A			# RECOVER -SGN(AOS) IN THE A REGISTER.
+		INDEX	QRNDXER			# YES.  START DRIVE WITHOUT WAITLIST.
+		XCH	NEGUQ
+		TCF	NOTALLOW		# KNOCK DOWN THE ALLOWGTS FLAG.
+
+SETNEGU		EXTEND
+		BZMF	POSALPH
+
+		COM
+		TS	ITEMP2			# STORE -ABS(.4*AOS) SCALED AT PI/8.
+		CS	BIT1
+		TCF	POSALPH +2
+POSALPH		TS	ITEMP2			# STORE -ABS(.4*AOS) SCALED AT PI/8.
+		CA	BIT1
+	+2	INDEX	QRNDXER			# SGN(AOS) INTO NEGU
+		TS	NEGUQ			# STORE SGN(ALPHA) AS NEGU
+
+		CA	NZACCDOT
+		EXTEND
+		MP	BIT12			# 2*ACCDOT, SCALED AT PI/8.
+		AD	ITEMP2			# -ABS(ALPHS) + 2*ACCDOT, AT PI/8.
+		EXTEND
+		BZMF	NOTALLOW		# IS DRIVE TIME MORE THAN TWO SECONDS?
+		CS	ITEMP2			# NO.  COMPUTE DRIVE TIME.
+		EXTEND				# ABS(ALPHA) AT PI/8.
+		MP	OCT00240		# DECIMAL 10/1024
+		EXTEND				# QUOTIENT IS DRIVE TIME AT WAITLIST.
+		DV	NZACCDOT		# ABS(ALPHA)/ACCDOT AT 2(14)/100
+# Page 1480
+		EXTEND
+		BZF	TGOFFNOW		# DRIVE TIME MUST BE GREATER THAN ZERO.
+
+		TCF	DRIVEON
+
+TGOFFNOW	CAF	ZERO			# TURN OFF GIMBAL NOW.
+		INDEX	QRNDXER
+		TS	NEGUQ
+
+		TCF	DONEYET
+
+NOTALLOW	CAF	OCT31
+		INDEX	QRNDXER
+		TS	QGIMTIMR
+		CAF	ZERO			# DRIVE TIME IS MORE THAN 2 SECONDS, SO
+		TS	ALLOWGTS		# DO NOT PERMIT FURTHER GTS ATTITUDE-RATE
+						# CONTROL UNTIL AOSTASK APPROVES.
+		TCF	DONEYET			# NO WAITLIST CALL IS MADE.
+
+DRIVEON		INDEX	QRNDXER
+		TS	QGIMTIMR		# CHOOSE Q OR R AXIS.
+
+DONEYET		CCS	QRNDXER
+		TCF	TIMQGMBL
+
+		DXCH	RUPTREG3		# PROTECT IBNKCALL ERASABLES.  ACDT+C12
+		DXCH	ITEMP2			# LEAVES ITEMPS2,3 ALONE.
+
+		TC	IBNKCALL		# TURN OFF CHANNEL BITS, SET Q(R)ACCDOTS.
+		CADR	ACDT+C12
+
+		DXCH	ITEMP2			# RESTORE ERASABLES FOR IBNKCALL.
+		DXCH	RUPTREG3
+
+		TC	RUPTREG2		# RETURN TO CALLER.
+
+OCT00240	OCTAL	00240			# DECIMAL 10/1024
+
+# Page 1481
+# THE FOLLOWING SECTION IS A CONTINUATION OF THE TRIM GIMBAL CONTROL FROM THE LAST GTS ENTRY.  THE QUANTITY NEGUSUM
+# IS COMPUTED FOR EACH AXIS (Q,R), .707*DEL*FUNCTION(3/2) + K2THETA = NEGUSUM.  NEW DRIVES ARE ENTERED TO CH 12.
+#
+# THE SUBROUTINE GTSQRT ACCEPTS A DOUBLE PRECISION VALUE IN FUNCTION, FUNCTION +1 AND RETURNS A SINGLE-PRECISION
+# SQUARE ROOT OF THE FOURTEEN MOST SIGNIFICANT BITS OF THE ARGUMENT.  ALSO, THE CELL SHFTFLAG CONTAINS A BINARY
+# EXPONENT S, SUCH THAT THE SQUARE ROOT (RETURNED IN THE A REGISTER) MUST BE SHIFTED RIGHT (MULTIPLIED BY 2 TO THE
+# POWER (-S)) IN ORDER TO BE THE TRUE SQUARE ROOT OF THE FOURTEEN MOST SIGNIFICANT BITS OF FUNCTION, FUNCTION +1.
+# SQUARE ROOT ERROR IS NOT MORE THAN 2 IN THE 14TH SIGNIFICANT BIT.  CELLS CLOBBERED ARE A, L, SHFTFLAG, ININDEX,
+# HALFARG, SCRATCH, SR, FUNCTION, FUNCTION +1.  GTSQRT IS CALLED BY TC GTSQRT AND RETURNS VIA TC Q OR TC FUNCTION +1.
+# ZERO OR NEGATIVE ARGUMENTS YIELD ZERO FOR SQUARE ROOTS.
+
+GTSQRT		CCS	FUNCTION
+		TCF	GOODARG		# FUNCTION IS POSITIVE.  TAKE SQUARE ROOT.
+		TCF	+2		# HIGH ORDER WORD IS ZERO.  TRY THE LOWER.
+		TCF	ZEROOT		# NEGATIVE.  USE ZERO FOR 1/2 POWER.
+
+		CA	FUNCTION +1
+		EXTEND
+		BZMF	ZEROOT
+
+		TCF	ZEROHIGH	# PROCEED.
+ZEROOT		CA	ZERO
+		TS	SHFTFLAG
+		TC	Q
+
+ZEROHIGH	XCH	FUNCTION	# 14 MOST SIGNIFICANT BITS ARE IN THE
+		XCH	FUNCTION +1	# LOWER WORD.  EXCHANGE THEM.
+		CA	SEVEN
+		TCF	GOODARG +1
+
+GOODARG		CA	ZERO
+		TS	SHFTFLAG
+		CA	TWELVE		# INITIALIZE THE SCALING LOOP.
+		TS	ININDEX
+		TCF	SCALLOOP
+
+SCALSTRT	CA	FUNCTION
+		TCF	SCALDONE
+
+MULBUSH		CA	NEG2		# IF ARG IS NOT LESS THAN 1/4, INDEX IS
+		ADS	ININDEX		# ZERO, INDICATING NO SHIFT NEEDED.
+		EXTEND			# BRANCH IF ARG IS NOT LESS THAN 1/4.
+		BZMF	SCALSTRT	# OTHERWISE COMPARE ARG WITH A REFERENCE
+					# WHICH IS 4 TIMES LARGER THAN THE LAST.
+SCALLOOP	CS	FUNCTION
+		INDEX	ININDEX
+		AD	BIT15		# REFERENCE MAGNITUDE LESS OR EQUAL TO 1/4
+		EXTEND
+		BZMF	MULBUSH		# IF ARG IS NOT LESS THAN REFERENCE, GO
+					# AROUND THE MULBERRY BUSH ONCE MORE.
+# Page 1482
+		INDEX	ININDEX
+		CA	BIT15		# THIS IS THE SCALE MAGNITUDE
+		XCH	HALFARG		# 2**(-ININDEX) IS THE SHIFT DIVISOR.
+		EXTEND			# RESCALE ARGUMENT.
+		DCA	FUNCTION
+		EXTEND
+		DV	HALFARG
+					# ININDEX AND SHFTFLAG PRESERVE INFO FOR
+					# RESCALING AFTER ROOT PROCESS.
+SCALDONE	EXTEND
+		QXCH	FUNCTION +1	# SAVE Q FOR RETURN
+		EXTEND
+		MP	BIT14
+		TS	HALFARG
+		MASK	BIT13
+		CCS	A
+		CA	OCT11276
+		AD	ROOTHALF	# INITIAL GUESS IS ROOT 1/2 OR POSMAX
+		TC	ROOTCYCL
+		TC	ROOTCYCL
+		TC	ROOTCYCL
+		TC	FUNCTION +1
+
+# ***************************************************************************
+
+RSTOFGTS	TC	GTSQRT
+PRODUCT		XCH	K2CNTRAL
+		EXTEND
+		MP	K2CNTRAL
+		DXCH	K2CNTRAL
+		EXTEND			#		THE PRODUCT OF
+		MP	L		#  1/2                   2       1/2
+		ADS	K2CNTRAL +1	# K   *(DEL*OMEGA + ALPHA /(2*K))
+		TS	L		#		      AND
+		TCF	+2		#                       2
+		ADS	K2CNTRAL	# DEL*(DEL*OMEGA + ALPHA /(2*K)) NOW IN 
+					# K2CNTRAL
+
+DOSHIFT		CA	ININDEX
+		EXTEND			# MULTIPLY IN THE FACTOR 2(-S), RETURNED
+		MP	BIT14		# BY THE GTSQRT SUBROUTINE
+		ADS	SHFTFLAG
+		EXTEND
+		BZF	ADDITIN
+		INDEX	SHFTFLAG
+		CA	BIT15
+# Page 1483
+		XCH	K2CNTRAL
+		EXTEND
+		MP	K2CNTRAL
+		DAS	K2THETA
+		XCH	K2CNTRAL
+		EXTEND
+		MP	K2CNTRAL +1
+		ADS	K2THETA +1
+		TS	L
+		TCF	+2
+		ADS	K2THETA
+
+		TCF	NEGUSUM
+
+ADDITIN		EXTEND
+		DCA	K2CNTRAL
+		DAS	K2THETA		# NO ADD IN THE K2THETA TERM.
+NEGUSUM		CCS	K2THETA		# TEST SIGN OF HIGH ORDER PART.
+		TCF	NEGDRIVE
+		TCF	+2
+		TCF	POSDRIVE
+
+		CCS	K2THETA +1	# SIGN TEST FOR LOW ORDER PART.
+NEGDRIVE	CA	BIT1
+		TCF	+2		# STOP GIMBAL DRIVE FOR A ZERO NEGUSUM.
+POSDRIVE	CS	BIT1
+		TS	L		# SAVE FOR DRIVE REVERSAL TEST.
+		INDEX	QRCNTR
+		XCH	NEGUQ
+
+		EXTEND
+		MP	L		# MULTIPLY OLD NEGU AND NEW NEGU.
+		CCS	L
+		TCF	LOUPE		# NON-ZERO GIMBAL DRIVE BEING CONTINUED.
+
+		TCF	ZEROLOUP	# NO REVERSAL PROBLEM HERE.
+
+		TCF	REVERSAL	# NON-ZERO GIMBAL DRIVE BEING REVERSED.
+		TCF	ZEROLOUP	# NO REVERSAL PROBLEM HERE.
+
+REVERSAL	INDEX	QRCNTR		# A ZERO-DRIVE PAUSE IS NEEDED HERE.  ZERO
+		TS	QACCDOT		# IS IN A REGISTER FROM CCS ON (-1).
+		INDEX	QRCNTR
+		CS	GMBLBITA
+		EXTEND
+		WAND	CHAN12
+
+ZEROLOUP	CS	RCSFLAGS	# SET UP REQUEST FOR ACDT+C12 CALL.
+		MASK	CALLGMBL
+		ADS	RCSFLAGS
+# Page 1484
+LOUPE		CCS	QRCNTR		# HAVE BOTH AXES BEEN PROCESSED?
+		TCF	GOQTRIMG	# NO.  DO Q AXIS NEXT.
+
+		CA	SAVESR		# RESTORE THE SR
+		TS	SR
+
+GOCLOSE		EXTEND			# TERMINATE THE JASK.
+		DCA	CLOSEADR
+		DTCB
+
+		EBANK=	AOSQ
+CLOSEADR	2CADR	CLOSEOUT	# TERMINATE THE JASK.
+
+TWELVE		EQUALS	OCT14
+ROOTHALF	OCTAL	26501		# SQUARE ROOT OF 1/2
+GMBLBITA	OCTAL	01400		# INDEXED WRT GMBLBITB	DO NOT MOVE *******
+OCT11276	OCTAL	11276		# POSMAX -- ROOTHALF
+GMBLBITB	OCTAL	06000		# INDEXED WRT GMBLBITA	DO NOT MOVE *******
+
+# SUBROUTINE ROOTCYCL:	BY CRAIG WORK, 3 APRIL 68
+#
+# ROOTCYCL IS A SUBROUTINE WHICH EXECUTS ONE NEWTON SQUARE ALGORITHM ITERATION.  THE INITIAL GUESS AT THE
+# SQUARE ROOT IS PRESUMED TO BE IN THE A REGISTER AND ONE-HALF THE SQUARE IS TAKEN FROM HALFARG.  THE NEW APPROXIMATION
+# TO THE SQUARE ROOT IS RETURNED IN THE A REGISTER.  DEBRIS:  A, L, SR, SCRATCH.  ROOTCYCL IS CALLED FROM
+# LOCATION (LOC) BY A TC ROOTCYCL, AND RETURNS (TC Q) TO LOC +1.
+#
+# WARNING:  IF THE INITIAL GUESS IS NOT GREATER THAN THE SQUARE, DIVIDE OR ADD OVERFLOW IS A REAL POSSIBILITY.
+
+ROOTCYCL	TS	SCRATCH		# STORE X
+		TS	SR		# X/2 NOW IN SR
+		CA	HALFARG		# ARG/2 IN THE A REG
+		ZL			# PREPARE FOR DIVISION
+		EXTEND
+		DV	SCRATCH		# (ARG/X)/2
+		AD	SR		# (X + ARG/X)/2 IN THE A REG
+		TC	Q
+
+	
diff --git a/TVCDAPS.s b/TVCDAPS.s
new file mode 100644
index 0000000..c6ba2ca
--- /dev/null
+++ b/TVCDAPS.s
@@ -0,0 +1,781 @@
+# Copyright:	Public domain.
+# Filename:	TVCDAPS.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:	961-978
+# Mod history:	2009-05-13 RSB	Adapted from the Colossus249/ file of the
+#				same name, using Comanche055 page images.
+#		2009-05-20 RSB	Corrections:  Eliminated an extraneous EXTEND,
+#				added a missing instruction to PFORWARD.
+#		2000-05-21 RSB	Wrong opcode was used with DELBRTMP and 
+#				DELBRTMP +1 operands in 4 places.  Corrected
+#				an MP operation in 2CASFLTR.
+#
+# 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 961
+# PROGRAM NAME....TVCDAP, CONSISTING OF PITCHDAP, YAWDAP, ETC.
+# LOG SECTION....TVCDAPS			SUBROUTINE....DAPCSM
+# MODIFIED BY SCHLUNDT				21 OCTOBER 1968
+#
+# FUNCTIONAL DESCRIPTION
+#
+#	SELF-PERPETUATING T5 TASKS WHICH GENERATE THE COMMAND SIGNALS
+#	FOR THE PITCH AND YAW SPS GIMBAL ACTUATORS DURING TVC (SPS) BURNS,
+#	IN RESPONSE TO BODY-AXIS RATE COMMANDS FROM CROSS-PRODUCT STEERING
+#	(S40.8).  IF NO STEERING (IMPULSIVE BURNS) MAINTAINS ATTITUDE-HOLD
+#	ABOUT THE REFERENCE (INITIAL) DIRECTIONS (ZERO RATE COMMANDS).
+#
+#	THE PITCH AND YAW LOOPS ARE SEPARATE, BUT STRUCTURED IDENTICALLY.
+#	EACH ATTITUDE-RATE LOOP INCLUDES GIMBAL ANGLE RATE DERIVATION,
+#	GIMBAL/BODY AXIS TRANSFORMATION, BODY-AXIS ATTITUDE ERROR
+#	INTEGRATION WITH ERROR LIMITING, THE GENERALIZED 6TH-ORDER FILTERS
+#	FOR CSM OR CSM/LM OPERATION. A FILTER OUTPUT LIMITER.
+#	CG-OFFSET TRACKER FILTER, AND THE CG-TRACKER MINOR LOOP.
+#
+#	THE DAPS ARE CYCLIC, CALLING EACH OTHER AT 1/2 THE DAP SAMPLE
+#	TIME, AS DETERMINED BY T5TVCDT.  THE ACTUATOR COMMANDS ARE
+#	REGENERATED AS ANALOG VOLTAGES BY THE OPTICS ERROR COUNTERS, WHICH
+#	TRANSMIT THE SIGNAL TO THE ACTUATOR SERVOS WHEN THERE IS PROPER CDU
+#	MODING.
+#
+# CALLING SEQUENCE.... (TYPICALLY)
+#
+#	T5 CALL OF TVCDAPON (TVCINITIALIZE) BY DOTVCON (P40)
+#	T5 CALL OF DAPINIT (TVCDAPS) BY TVCINIT4 (TVCINITIALIZE)
+#	T5 CALL OF PITCHDAP BY DAPINIT
+#	T5 CALL OF YAWDAP BY PITCHDAP
+#	T5 CALL OF PITCHDAP BY YAWDAP
+#		ETC.
+#	(AUTOMATIC SEQUENCING FROM TVCDAPON)
+#
+# NORMAL EXIT MODE....RESUME
+#
+# ALARM OR ABORT EXIT MODES....NONE
+#
+# SUBROUTINES CALLED....
+#
+#	HACK FOR STROKE TEST (V68) WAVEFORM GENERATION
+#	PCOPY, YCOPY FOR COPY-CYCLES (USED ALSO BY TVC RESTART PACKAGE)
+#	DAPINIT FOR INITIAL CDUS FOR RATE MEASUREMENTS
+#	ERRORLIM, ACTLIM FOR INPUT (ATTITUDE-ERROR INTEGRATION) AND
+#		OUTPUT (ACTUATOR COMMAND) LIMITING, COMMON TO PITCH AND
+#		YAW DAPS
+#	FWDFLTR (INCLUDING OPTVARK) AND PRECOMP, TO COMPUTE FILTER
+#		OUTPUTS AND STORAGE VALUES
+#	RESUME
+#
+# Page 962
+# OTHER INTERFACES
+#
+#	S40.8 CROSS-PRODUCT STEERING FOR BODY AXIS RATE COMMANDS OMEGAY,ZC
+#	S40.15 FOR THE INITIAL DAP GAINS VARK AND 1/CONACC
+#	TVCEXECUTIVE FOR DAP GAIN UPDATES AND TMC LOOP OPERATIONS
+#	TVCRESTART PACKAGE FOR TVC RESTART PROTECTION.
+#
+# ERASABLE INITIALIZATION REQUIRED....
+#
+# 	PAD-LOAD ERASABLES (SEE ERASABLE ASSIGNMENTS)
+#	CONFIGURATION BITS (14, 13) OF DAPDATR1 AS IN R03
+#	ENGINE-ON BIT (11.13) FOR RESTARTS
+#	TVCPHASE FOR RESTARTS (SEE DOTVCON, AND TVCINIT4)
+#	T5 BITS (15,14 OF FLAGWRD6) FOR RESTARTS
+#	MISCELLANEOUS VARIABLES SET UP OR COMPUTED BY TVCDAPON....TVCINIT4,
+#		INCLUDING THE ZEROING OF TEMPORARIES BY MRCLEAN
+#	CDUX,Y,Z AND SINCDUX.... COSCDUX AS PREPARED BY QUICTRIG1 (WITH
+#		UPDATES EVERY 1/2 SECOND)
+#	ALSO G+N PRIMARY, TVC ENABLE, AND OPTICS ERROR COUNTER ENABLE
+#		UNLESS BENCH-TESTING.
+#
+# OUTPUT....
+#
+#	TVCPITCH AND TVCYAW WITH COUNTER RELEASE (11.14 AND 11.13 INCREMENTAL
+#		COMMANDS TO OPTICS ERROR COUNTERS), FILTER NODES, BODY-
+#		AXIS ATTITUDE ERROR INTEGRATOR, TOTAL ACTUATOR COMMANDS,
+#		OFFSET-TRACKER-FILTER OUTPUTS, ETC.
+#
+# DEBRIS....
+#
+#	MUCH, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY
+
+		BANK	17
+		SETLOC	DAPS2
+		BANK
+
+		EBANK=	BZERO
+		
+		COUNT*	$$/DAPS
+		
+# Page 963
+# PITCH TVCDAP STARTS HERE....(INCOPORATES CSM/LEM DAP FILTER, MODOR DESIGN)
+
+PITCHDAP	LXCH	BANKRUPT	# T5 ENTRY, NORMAL OR VIA DAPINIT
+		EXTEND
+		QXCH	QRUPT
+		
+		CAF	YAWT5		# SET UP T5 CALL FOR YAW AUTOPILOT (LOW-
+		TS	T5LOC		#	ORDER PART OF 2CADR ALREADY THERE)
+		CAE	T5TVCDT
+		TS	TIME5
+		
+PSTROKER	CCS	STROKER		# (STRKFLG) CHECK FOR STROKE TEST
+		TC	HACK		# TEST-START OR TEST-IN-PROGRESS
+		TCF	+2		# NO-TEST
+		TC	HACK		# TEST-IN-PROGRESS
+		
+PCDUDOTS	CAE	CDUY		# COMPUTE CDUYDOT (USED BY PITCH AND YAW)
+		XCH	PCDUYPST
+		EXTEND
+		MSU	PCDUYPST
+		TCR	RLIMTEST	#	RATE TEST
+		TS	MCDUYDOT	#	(MINUS, SC.AT 1/2TVCDT REVS/SEC)
+		
+		CAE	CDUZ		# COMPUTE CDUZDOT (USED BY PITCH AND YAW)
+		XCH	PCDUZPST
+		EXTEND
+		MSU	PCDUZPST
+		TCR	RLIMTEST	#	RATE TEST
+		TS	MCDUZDOT	#	(MINUS, SC.AT 1/2TVCDT REVS/SEC)
+		TCF	PINTEGRL
+		
+RLIMTEST	TS	TTMP1		# TEST FOR EXCESSIVE CDU RATES (GREATER
+		EXTEND			#	THAN 2.33 DEG IN ONE SAMPLE PERIOD
+		MP	1/RTLIM
+		EXTEND
+		BZF	+3
+		CAF	ZERO
+		TS	TTMP1
+		CAE	TTMP1
+		TC	Q
+		
+PINTEGRL	EXTEND			# COMPUTE INTEGRAL OF BODY-AXIS PITCH-RATE
+		DCA	PERRB		#	ERROR, SC.AT B-1 REVS
+		DXCH	ERRBTMP
+		
+		EXTEND
+		DCA	OMEGAYC
+		DAS	ERRBTMP
+		
+# Page 964		
+		CS	COSCDUZ		# PREPARE BODY-AXIS PITCH RATE, OMEGAYB
+		EXTEND
+		MP	COSCDUX
+		DDOUBL
+		EXTEND
+		MP	MCDUYDOT
+		DDOUBL
+		DXCH	OMEGAYB
+		
+		CS	MCDUZDOT
+		EXTEND
+		MP	SINCDUX
+		DDOUBL
+		DAS	OMEGAYB		# (COMPLETED OMEGAYB, SC.AT 1/2TVCDT REVS)
+		
+		EXTEND			# PICK UP -OMEGAYB (SIGN CHNG, INTEGRATE)
+		DCS	OMEGAYB
+		DAS	ERRBTMP
+		
+PERORLIM	TCR	ERRORLIM	# PITCH BODY-AXIS-ERROR INPUT LIMITER
+
+PFORWARD	EXTEND			# 	PREPARE THE FILTER STORAGE LOCATIONS
+		DCA	PTMP1		#	FOR THE PITCH CHANNEL
+		DXCH	TMP1
+		EXTEND
+		DCA	PTMP3
+		DXCH	TMP3
+		EXTEND
+		DCA	PTMP5
+		DXCH	TMP5
+		
+		TCR	FWDFLTR		# GO COMPUTE PRESENT OUTPUT
+					# (INCLUDES VARIABLE GAIN PACKAGE)
+					
+POFFSET		EXTEND
+		DCA	PDELOFF	
+		DAS	CMDTMP		# NO SCALED AT B+0 ASCREV
+		
+PACLIM		TCR	ACTLIM		# ROUND OFF & LIMIT PITCH ACTUATOR COMMAND
+
+POUT		CS	PCMD		# INCREMENTAL PITCH COMMAND
+		AD	CMDTMP
+		ADS	TVCPITCH	# UPDATE THE ERROR COUNTER (NO RESTART-
+					#	PROTECT. SINCE ERROR CNTR ZEROED)
+					
+		CAF	BIT11		# BIT FOR TVCPITCH COUNT RELEASE
+		EXTEND
+		WOR	CHAN14
+		
+PPRECOMP	EXTEND			#	PREPARE THE FILTER STORAGE FOR PITCH
+# Page 965
+		DCA	PTMP2
+		DXCH	TMP2
+		EXTEND
+		DCA	PTMP4
+		DXCH	TMP4
+		EXTEND
+		DCA	PTMP6
+		DXCH	TMP6
+		
+		TCR	PRECOMP		#	TO THE FILTER FOR PRECOMPUTATION
+		
+DELBARP		CAE	DELPBAR +1
+		EXTEND
+		MP	E(-AT)
+		TS	DELBRTMP +1
+		CAE	DELPBAR
+		EXTEND
+		MP	E(-AT)
+		DAS	DELBRTMP
+		CAE	CMDTMP
+		EXTEND
+		MP	1-E(-AT)
+		DAS	DELBRTMP
+		
+PCOPYCYC	TCR	PCOPY		# PITCH COPYCYCLE
+
+PDAPEND		TCF	RESUME		# PITCH DAP COMPLETED
+# Page 966
+# PITCH TVCDAP COPYCYCLE SUBROUTINE (CALLED VIA PITCH TVCDAP OR TVC RESTART PACKAGE)
+
+PCOPY		INCR	TVCPHASE	# RESTART-PROTECT THE COPYCYCLE.	(1)
+					#	NOTE POSSIBLE RE-ENTRY FROM RESTART
+					#	PACKAGE, SHOULD A RESTART OCCUR
+					#	DURING PITCH COPYCYCLE.
+					
+		EXTEND		
+		DCA	TMP1	
+		DXCH	PTMP1
+		EXTEND
+		DCA	TMP2
+		DXCH	PTMP2
+		EXTEND
+		DCA	TMP3
+		DXCH	PTMP3
+		EXTEND	
+		DCA	TMP4
+		DXCH	PTMP4
+		EXTEND
+		DCA	TMP5
+		DXCH	PTMP5
+		EXTEND
+		DCA	TMP6
+		DXCH	PTMP6
+		
+PMISC		EXTEND			# MISC....PITCH-RATE-ERROR INTEGRATOR
+		DCA	ERRBTMP
+		TS	AK1		#	FOR PITCH NEEDLES, SC.AT B-1 REVS
+		DXCH	PERRB
+		
+		CAE	CMDTMP		#	PITCH ACTUATOR COMMAND
+		TS	PCMD
+		
+		EXTEND			# 	PITCH OFFSET-TRACKER-FILTER
+		DCA	DELBRTMP
+		DXCH	DELPBAR
+		
+		INCR	TVCPHASE	# PITCH COPYCYCLE COMPLETED		(2)
+		
+		TC	Q
+
+# Page 967
+# YAW TVCDAP STARTS HERE....(INCORPORATES CSM/LEM DAP FILTER, MODOR DESIGN)
+
+YAWDAP		LXCH	BANKRUPT	# T5 ENTRY, NORMAL
+		EXTEND
+		QXCH	QRUPT
+		
+		CAF	PITCHT5		# SET UP T5 CALL FOR PITCH AUTOPILOT (LOW-
+		TS	T5LOC		#	ORDER PART OF 2CADR ALREADY THERE)
+		CAE	T5TVCDT
+		TS	TIME5
+		
+YSTROKER	CCS	STROKER		# (STRKFLG) CHECK FOR STROKE TEST
+		TC	HACK		# TEST-START OR TEST-IN-PROGRESS
+		TCF	+2		# NO-TEST
+		TC	HACK		# TEST-IN-PROGRESS
+		
+					# USE BODY RATES FROM PITCHDAP (PCDUDOTS)
+					
+YINTEGRL	EXTEND			# COMPUTE INTEGRAL OF BODY-AXIS YAW-RATE
+		DCA	YERRB		# 	ERROR, SC.AT B-1 REVS
+		DXCH	ERRBTMP
+		
+		EXTEND
+		DCA	OMEGAZC
+		DAS	ERRBTMP
+		
+		CAE	COSCDUZ		# PREPARE BODY-AXIS YAW-RATE, OMEGAZB
+		EXTEND
+		MP	SINCDUX
+		DDOUBL
+		EXTEND
+		MP	MCDUYDOT
+		DDOUBL
+		DXCH	OMEGAZB
+		
+		CS	MCDUZDOT
+		EXTEND
+		MP	COSCDUX
+		DDOUBL
+		DAS	OMEGAZB		# (COMPLETED OMEGAZB, SC.AT 1/2TVCDT REVS)
+		
+		EXTEND			# PICK UP -OMEGAZB (SIGN CHNG, INTEGRATE)
+		DCS	OMEGAZB
+		DAS	ERRBTMP
+		
+YERORLIM	TCR	ERRORLIM	# YAW BODY-AXIS-ERROR INPUT LIMITER
+
+YFORWARD	EXTEND			# 	PREPARE THE FILTER STORAGE LOCATIONS
+		DCA	YTMP1		#	FOR THE YAW CHANNEL
+# Page 968		
+		DXCH	TMP1
+		EXTEND
+		DCA	YTMP3
+		DXCH	TMP3
+		EXTEND
+		DCA	YTMP5
+		DXCH	TMP5
+		
+		TCR	FWDFLTR		# GO COMPUTE PRESENT OUTPUT
+					# (INCLUDES VARIABLE GAIN PACKAGE)
+					
+YOFFSET		EXTEND
+		DCA	YDELOFF
+		DAS	CMDTMP		# NOW SCALED AT B+0 ASCREV
+
+YACLIM		TCR	ACTLIM		# YAW ACTUATOR-COMMAND-LIMITER
+
+YOUT		CS	YCMD		# INCRMENTAL YAW COMMAND
+		AD	CMDTMP
+		ADS	TVCYAW		# UPDATE THE ERROR COUNTER (NO RESTART-
+					#	PROTECT, SINCE ERROR CNTR ZEROED)
+
+		CAF	BIT12		# BIT FOR TVCYAW COUNT RELEASE
+		EXTEND
+		WOR	CHAN14
+		
+YPRECOMP	EXTEND			#	PREPARE THE FILTER STORAGE FOR YAW
+		DCA	YTMP2
+		DXCH	TMP2
+		EXTEND
+		DCA	YTMP4
+		DXCH	TMP4
+		EXTEND
+		DCA	YTMP6
+		DXCH	TMP6
+		
+		TCR	PRECOMP		#	TO THE FILTER FOR PRECOMPUTATION
+		
+DELBARY		CAE	DELYBAR +1	# UPDATE YAW OFFSET-TRACKER-FILTER
+		EXTEND
+		MP	E(-AT)
+		TS	DELBRTMP +1
+		CAE	DELYBAR
+		EXTEND
+		MP	E(-AT)
+		DAS	DELBRTMP
+		CAE	CMDTMP
+		EXTEND
+		MP	1-E(-AT)
+		DAS	DELBRTMP
+		
+# Page 969
+YCOPYCYC	TCR	YCOPY		# YAW COPYCYCLE
+
+YDAPEND		TCF	RESUME		# YAW DAP COMPLETED
+
+# Page 970
+# TVCDAP COPYCYCLE SUBROUTINE (CALLED VIA YAW   TVCDAP OR TVC RESTART PACKAGE)
+
+YCOPY		INCR	TVCPHASE	# RESTART-PROTECT THE COPYCYCLE.	(3)
+					#	NOTE POSSIBLE RE-ENTRY FROM RESTART
+					#	PACKAGE, SHOULD A RESTART OCCUR
+					#	DURING YAW   COPYCYCLE.
+					
+		EXTEND		
+		DCA	TMP1	
+		DXCH	YTMP1
+		EXTEND
+		DCA	TMP2
+		DXCH	YTMP2
+		EXTEND
+		DCA	TMP3
+		DXCH	YTMP3	
+		EXTEND	
+		DCA	TMP4
+		DXCH	YTMP4
+		EXTEND
+		DCA	TMP5
+		DXCH	YTMP5
+		EXTEND
+		DCA	TMP6
+		DXCH	YTMP6
+		
+YMISC		EXTEND			# MISC....YAW-RATE-ERROR INTEGRATOR
+		DCA	ERRBTMP
+		TS	AK2		#	FOR YAW   NEEDLES, SC.AT B-1 REVS
+		DXCH	YERRB
+		
+		CAE	CMDTMP	
+		TS	YCMD
+		
+		EXTEND		
+		DCA	DELBRTMP
+		DXCH	DELYBAR
+		
+		CAF	ZERO		# YAW   COPYCYCLE COMPLETED
+		TS	TVCPHASE	#	RESET TVCPHASE
+		
+		TC	Q
+		
+# Page 971
+# SUBROUTINES COMMON TO BOTH PITCH AND YAW DAPS....
+
+# INITIALIZATION PACKAGE FOR CDURATES....
+
+DAPINIT		LXCH	BANKRUPT	# T5 RUPT ENTRY (CALLED BY TVCINT4)
+
+		CAF	NEGONE		# 	SET UP
+		AD	T5TVCDT		#	T5 CALL FOR PITCHDAP IN TVCDT SECS
+		AD	NEGMAX		#	(T5TVCDT = POSMAX - TVCDT/2 +1)
+		AD	T5TVCDT
+		TS	TIME5
+		CAF	PITCHT5		#	(BBCON ALREADY THERE)
+		TS	T5LOC
+		
+		CAE	CDUY		# READ AND STORE CDUS FOR DIFFERENTIATOR
+		TS	PCDUYPST	#	PAST-VALUES
+		CAE	CDUZ
+		TS	PCDUZPST
+		
+		TCF	NOQRSM
+		
+# BODY-AXIS-ERROR   INPUT LIMITER PACKAGE....
+
+ERRORLIM	CAE	ERRBTMP		# CHECK FOR INPUT-ERROR LIMIT
+		EXTEND			#	CHECKS UPPER WORD ONLY
+		MP	1/ERRLIM
+		EXTEND
+		BZF	+6
+		CCS	ERRBTMP
+		CAF	ERRLIM
+		TCF	+2
+		CS	ERRLIM
+		TS	ERRBTMP		# LIMIT WRITES OVER UPPER WORD ONLY
+		
+		TC	Q
+		
+# ACTUATOR-COMMAND LIMITER PACKAGE....
+
+ACTLIM		CAE	CMDTMP	+1	# ROUND UP FOR OUTPUT
+		DOUBLE
+		TS	L
+		CAF	ZERO
+		AD	CMDTMP
+		
+		EXTEND			# CHECK FOR ACTUATOR COMMAND LIMIT
+		MP	1/ACTSAT
+		EXTEND
+# Page 972
+		BZF	+6
+		CCS	CMDTMP		# APPLY LIMITS
+		CAF	ACTSAT
+		TCF	+2
+		CS	ACTSAT
+		TS	CMDTMP		# LIMITS WRITE OVER CMDTMP
+		
+		TC	Q
+		
+# FILTER COMPUTATIONS FOR PRESENT OUTPUT................
+
+FWDFLTR		CAF	ZERO
+		TS	DAP1
+		TS	DAP2
+		TS	DAP3
+		TS	CMDTMP
+		
+		TS	DELBRTMP
+
+1DAPCAS		CAE	ERRBTMP +1	# FIRST DAP CASCADE
+		EXTEND
+		MP	N10		#	N10
+		TS	DAP1	+1
+		CA	ERRBTMP
+		EXTEND
+		MP	N10		#	N10
+		DAS	DAP1
+		DXCH	TMP1
+		DAS	DAP1
+
+2DAPCAS		CAE	DAP1	+1	# SECOND DAP CASCADE
+		EXTEND
+		MP	N10	+5	#	N20
+		TS	DAP2	+1
+		CA	DAP1
+		EXTEND
+		MP	N10	+5	#	N20
+		DAS	DAP2
+		DXCH	TMP3
+		DAS	DAP2
+
+		CAE	DAPDATR1	# TEST FOR LEM ON OR OFF
+		MASK	BIT14
+		CCS	A
+		TCF	3DAPCAS		# LEM ON
+		EXTEND			# LEM OFF
+		DCA	DAP2
+		DXCH	DAP3
+		TCF	OPTVARK
+
+# Page 973		
+3DAPCAS		CAE	DAP2	+1	# THIRD DAP CASCADE
+		EXTEND
+		MP	N10	+10D	#	N30
+		TS	DAP3	+1
+		CA	DAP2
+		EXTEND
+		MP	N10	+10D	#	N30
+		DAS	DAP3
+		DXCH	TMP5
+		DAS	DAP3
+
+OPTVARK		CS	DAP3	+1	# VARIABLE GAIN PACKAGE
+		EXTEND			# (ALSO, SIGN CHANGE IN FORWARD LOOP)
+		MP	VARK		# SCALED AT 1/(8 ASCREV) OF ACTUAL VALUE
+		TS	CMDTMP	+1
+		CS	DAP3
+		EXTEND
+		MP	VARK
+		DAS	CMDTMP
+		
+		DXCH	CMDTMP		# FIX UP SCALING -- SCALED B+3 ASCREVS
+		DDOUBL
+		DDOUBL
+		DXCH	CMDTMP		#		 -- SCALED B+1 ASCREVS
+					# NOTE -- THERE IS AN INHERENT GAIN OF
+					# (B+1 ASCREVS) ON THE OUTPUT DACS.
+					
+		TC	Q
+
+# FILTER PRECOMPUTATIONS FOR NEXT PASS................
+
+PRECOMP		CAF	ZERO		# **** FIRST CASCADE FILTER **********
+		TS	TTMP1
+		TS	TTMP2
+		
+		CA	ERRBTMP +1	# MULTIPLY INPUT BY
+		EXTEND
+		MP	N10	+1	#	N11/2
+		TS	TTMP1	+1
+		CA	ERRBTMP
+		EXTEND
+		MP	N10	+1	#	N11/2
+		DAS	TTMP1
+		
+		CS	DAP1	+1	# MULTIPLY OUTPUT BY
+		EXTEND
+		MP	N10	+3	# 	D11/2
+		TS	TTMP2	+1
+		CS	DAP1
+		
+# Page 974
+		EXTEND
+		MP	N10	+3	#	D11/2
+		DAS	TTMP2
+		
+		DXCH	TTMP2
+		DAS	TTMP1
+		DXCH	TTMP1
+		DDOUBL
+		DAS	TMP2
+		
+		DXCH	TMP2
+		DXCH	TMP1
+		
+		CAF	ZERO
+		TS	TTMP1
+		TS	TMP2
+		
+		CA	ERRBTMP	+1	# MULTIPLY INPUT BY
+		EXTEND			# SECOND-ORDER NUMERATOR COEFF.
+		MP	N10	+2	#	N12
+		TS	TTMP1	+1
+		CA	ERRBTMP
+		EXTEND
+		MP	N10	+2	# 	N12
+		DAS	TTMP1
+		
+		CS	DAP1	+1	# MULTIPLY OUTPUT BY
+		EXTEND
+		MP	N10	+4	# 	D12
+		TS	TMP2	+1
+		CS	DAP1
+		EXTEND
+		MP	N10	+4	#	D12
+		DAS	TMP2
+		
+		DXCH	TTMP1
+		DAS	TMP2
+		
+2CASFLTR	CAF	ZERO		# **** SECOND CASCADE FILTER **********
+		TS	TTMP1
+		TS	TTMP2
+		
+		CA	DAP1	 +1	# MULTIPLY INPUT BY
+		EXTEND
+		MP	N10	+6	#	N21/2
+		TS	TTMP1	+1
+		CA	DAP1
+		EXTEND
+		MP	N10	+6	#	N21/2
+# Page 975		
+		DAS	TTMP1
+		
+		CS	DAP2	+1	# MULTIPLY OUTPUT BY
+		EXTEND
+		MP	N10	+8D	# 	D21/2
+		TS	TTMP2	+1
+		CS	DAP2
+		EXTEND
+		MP	N10	+8D	#	D21/2
+		DAS	TTMP2
+		
+		DXCH	TTMP2
+		DAS	TTMP1
+		DXCH	TTMP1
+		DDOUBL
+		DAS	TMP4
+		
+		DXCH	TMP4
+		DXCH	TMP3
+		
+		CAF	ZERO
+		TS	TTMP1
+		TS	TMP4
+		
+		CA	DAP1	+1	# MULTIPLY INPUT BY
+		EXTEND			# SECOND-ORDER NUMERATOR COEFF.
+		MP	N10	+7	#	N22
+		TS	TTMP1	+1
+		CA	DAP1
+		EXTEND
+		MP	N10	+7	# 	N22
+		DAS	TTMP1
+		
+		CS	DAP2	+1	# MULTIPLY OUTPUT BY
+		EXTEND
+		MP	N10	+9D	# 	D22
+		TS	TMP4	+1
+		CS	DAP2
+		EXTEND
+		MP	N10	+9D	#	D22
+		DAS	TMP4
+		
+		DXCH	TTMP1
+		DAS	TMP4
+		
+		CAE	DAPDATR1	# TEST FOR LEM ON OR OFF
+		MASK	BIT13
+		CCS	A
+		TC	Q		# EXIT IF LEM OFF
+
+# Page 976		
+3CASFLTR	CAF	ZERO		# **** THIRD CASCADE FILTER **********
+		TS	TTMP1
+		TS	TTMP2
+		
+		CA	DAP2	 +1	# MULTIPLY INPUT BY (1/2)
+		EXTEND
+		MP	N10	+11D	#	N31/2
+		TS	TTMP1	+1
+		CA	DAP2
+		EXTEND
+		MP	N10	+11D	#	N31/2
+		DAS	TTMP1
+		
+		CS	DAP3	+1
+		EXTEND
+		MP	N10	+13D	# 	D31/2
+		TS	TTMP2	+1
+		CS	DAP3
+		EXTEND
+		MP	N10	+13D	#	D31/2
+		DAS	TTMP2
+		
+		DXCH	TTMP2
+		DAS	TTMP1
+		DXCH	TTMP1
+		DDOUBL
+		DAS	TMP6
+		
+		DXCH	TMP6
+		DXCH	TMP5
+		
+		CAF	ZERO
+		TS	TTMP1
+		TS	TMP6
+		
+		CA	DAP2	+1	# MULTIPLY INPUT BY
+		EXTEND		
+		MP	N10	+12D	#	N32
+		TS	TTMP1	+1
+		CA	DAP2
+		EXTEND
+		MP	N10	+12D	# 	N32
+		DAS	TTMP1
+		
+		CS	DAP3	+1
+		EXTEND
+		MP	N10	+14D	# 	D32
+		TS	TMP6	+1
+		CS	DAP3
+		EXTEND
+# Page 977		
+		MP	N10	+14D	#	D32
+		DAS	TMP6
+		
+		DXCH	TTMP1
+		DAS	TMP6
+		
+		TC	Q
+		
+# Page 978		
+# CONSTANTS FOR AUTOPILOTS
+
+# NOTE....1 ASCREV (ACTUATOR CMD SCALING) = 85.41 ARCSEC/BIT OR 1.07975111 REVS (85.41x16384/3600/360)
+#	  1 SPASCREV (SPECIAL ACTUATOR CMD SCALING) = 1.04620942 REVS
+
+ACTSAT		DEC	253		# ACTUATOR LIMIT (6 DEG), SC.AT 1ASCREV
+1/ACTSAT	DEC	.0039525692	# RECIPROCAL (1/253)
+
+ERRLIM		EQUALS	BIT13		# FILTER INPUT LIMIT....B-3 REVS (45DEG),
+1/ERRLIM	EQUALS	BIT3		# 	SC.AT B-1 REV, AND ITS RECIPROCAL
+
+PITCHT5		GENADR	PITCHDAP	# UPPER WORDS OF T5 2CADRS, LOWER WORDS
+DAPT5		GENADR	DAPINIT		#	(BBCON) ALREADY THERE.  ORDER IS
+YAWT5		GENADR	YAWDAP		#	REQUIRED.
+
+1/RTLIM		DEC	0.004715	# .004715(CDUDIF) = 0 IF CDUIF < 2.33 DEG
+1-E(-AT)	OCT	00243		# AT = .01SEC....EITHER(1/A=4SEC, T=40MS),
+E(-AT)		OCT	37535		#		     OR(1/A=8SEC, T=80MS)
+
diff --git a/TVCEXECUTIVE.s b/TVCEXECUTIVE.s
new file mode 100644
index 0000000..578ab5b
--- /dev/null
+++ b/TVCEXECUTIVE.s
@@ -0,0 +1,273 @@
+# Copyright:	Public domain.
+# Filename:	TVCEXECUTIVE.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:	945-950
+# Mod history:	2009-05-12 RSB	Adapted from the Colossus249/ file of the
+#				same name, using Comanche055 page images.
+#		2009-05-20 RSB	Corrections:  CAE -> CAF in one place.
+#		2009-05-21 RSB	In 1SHOTCHK, a CAF SEVEN was corrected to 
+#				CAF SIX.
+#
+# 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 945
+# PROGRAM NAME....	TVCEXECUTIVE, CONSISTING OF TVCEXEC, NEEDLEUP, VARGAINS
+#			1SHOTCHK, REPCHEK, CG.CORR, COPYCYCLES, ETC.
+# LOG SECTION....	TVCEXECUTIVE		SUBROUTINE ....DAPCSM
+# MOD BY SCHLUNDT				21 OCTOBER 1968
+#
+# FUNCTIONAL DESCRIPTION....
+#      *A SELF-PERPETUATING WAITLIST TASK AT 1/2 SECOND INTERVALS WHICH:
+#	PREPARES THE ROLL WITH OGA (CDUX)
+#	PREPARES THE ROLL FDAI NEEDLE (FLY-TO  OGA ERROR)
+#	PREPARES THE ROLL PHASE PLANE  OGAERR  (FLY-FROM  OGA ERROR)
+#	PREPARES THE TVC ROLLDAP TASK WAITLIST CALL (3 CS DELAY)
+#	UPDATES THE NEEDLES DISPLAY
+#	UPDATES THE VEHICLE MASS AND CALLS MASSPROP TO UPDATE INERTIA DATA
+#	UPDATES PITCH, YAW, AND ROLL DAP GAINS FROM MASSPROP DATA
+#	PERFORMS ONE-SHOT CORRECTION FOR TMC LOOP 0-3 SEC AFTER IGNITION
+#	PERFORMS REPETITIVE UPDATES FOR THE TMC LOOP AFTER THE ONE-SHOT CORR.
+#
+# CALLING SEQUENCE....
+#      *TVCEXEC CALLED AS A WAITLIST TASK, IN PARTICULAR BY TVCINIT4 AND BY
+#	ITSELF, BOTH AT 1/2 SECOND INTERVALS
+#
+# NORMAL EXIT MODE.... TASKOVER
+#
+# ALARM OR ABORT EXIT MODES.... NONE
+#
+# SUBROUTINES CALLED....NEEDLER, S40.15, MASSPROP, TASKOVER, IBNKCALL
+#
+# OTHER INTERFACES....
+#      *TVCRESTART PACKAGE FOR RESTARTS
+#      *PITCHDAP, YAWDAP FOR VARIABLE GAINS AND ENGINE TRIM ANGLES
+#
+# ERASABLE INITIALIZATION REQUIRED....
+#      *SEE TVCDAPON....TVCINIT4
+#      *VARK AND 1/CONACC (S40.15 OF R03)
+#      *PAD LOAD EREPFRAC
+#      *BITS 15,14 OF FLAGWRD6 (T5 BITS)
+#      *TVCEXPHS FOR RESTARTS
+#      *ENGINE-ON BIT (11.13) FOR RESTARTS
+#      *CDUX, OGAD
+#
+# OUTPUT....
+#      *ROLL DAP OGANOW, FDAI NEEDLE= (AK). AND PHASE PLANE OGAERR
+#      *VARIABLE GAINS FOR PITCH/YAW AND ROLL TVC DAPS
+#      *SINGLE-SHOT AND REPETITIVE CORRECTIONS TO ENGINE TRIM ANGLES
+#	PACTOFF AND YACTOFF
+#
+# DEBRIS....	MUCH, BUT SHAREABLE WITH RCS/ENTRY, ALL IN EBANK6
+
+# Page 946
+		BANK	16
+		SETLOC	DAPROLL
+		BANK
+		EBANK=	BZERO
+		COUNT*	$$/TVCX
+		
+TVCEXEC		CS	FLAGWRD6	# CHECK FOR TERMINATION (BITS 15,14 READ
+		MASK	OCT60000	#	10 FROM TVCDAPON TO RCSDAPON)
+		EXTEND
+		BZMF	TVCEXFIN	# TERMINATE
+		
+		CAF	.5SEC		# W.L. CALL TO PERPETUATE TVCEXEC
+		TC	WAITLIST
+		EBANK=	BZERO
+		2CADR	TVCEXEC
+		
+ROLLPREP	CAE	CDUX		# UPDATE ROLL LADDERS (NO NEED TO RESTART-
+		XCH	OGANOW		# 	PROTECT, SINCE ROLL DAPS RE-START)
+		XCH	OGAPAST
+		
+		CAE	OGAD		# PREPARE ROLL FDAI NEEDLE WTIH FLY-TO
+		EXTEND			#	ERROR (COMMAND - MEASURED)
+		MSU	OGANOW
+		TS	AK		# FLY-TO OGA ERROR, SC.AT B-1 REVS
+		
+		EXTEND			# PREPARE ROLL DAP PHASE PLANE OGAERR
+		MP	-BIT14	
+		TS	OGAERR		# PHASE-PLANE (FLY-FROM) OGAERROR,
+					#	SC.AT B+0 REVS
+		
+		CAF	THREE		# SET UP ROLL DAP TASK (ALLOW SOME TIME)
+		TC	WAITLIST
+		EBANK=	BZERO
+		2CADR	ROLLDAP
+		
+NEEDLEUP	TC	IBNKCALL	# DO A NEEDLES UPDATE (RETURNS AFTER CADR)
+		CADR	NEEDLER		#	(NEEDLES RESTARTS ITSELF)
+
+VARGAINS	CAF	BIT13		# CHECK ENGINE-ON BIT TO INHIBIT VARIABLE
+		EXTEND			#	GAINS AND MASS IF ENGINE OFF
+		RAND	DSALMOUT	# CHANNEL 11
+		CCS	A
+		TCF	+4		#	ON, SO OK TO UPDATE GAINS AND MASS
+	+5	CAF	TWO		#	OFF, SO BYPASS MASS/GAIN UPDATES,
+		TS	TVCEXPHS	#		ALSO ENTRY FROM CCS BELOW WITH
+		TCF	1SHOTCHK	#		VCNTR = -0 (V97 R40 ENGFAIL)
+		CCS	VCNTR		# 	TEST FOR GAIN OF UPDATE TIME
+		TCF	+4		#		NOT YET
+# Page 947		
+		TCF	GAINCHNG	#		NOW
+		TCF	+0		#		NOT USED
+		TCF	VARGAINS +5	#		NO, LOTHRUST (S40.6 R40)
+		
+	+4	TS	VCNTRTMP	#	PROTECT VCNTR AND
+		CAE	CSMMASS		#	CSMMASS DURING AN IMPULSIVE BURN
+		TS	MASSTMP
+		TCF	EXECCOPY
+		
+GAINCHNG	TC	IBNKCALL	# UPDATE IXX, IAVG, IAVG/TLX
+		CADR	FIXCW		# MASSPROP ENTRY (ALREADY INITIALIZED)
+		TC	IBNKCALL	# UPDATE 1/CONACC, VARK
+		CADR	S40.15		#	(S40.15 IS IN TVCINITIALIZE)
+		CS	TENMDOT		# UPDATE MASS FOR NEXT 10 SEC. OF BURN
+		AD	CSMMASS
+		TS	MASSTMP		# KG B+16
+		
+		CAF	NINETEEN	# RESET THE VARIABLE-GAIN UPDATE COUNTER
+		TS	VCNTRTMP
+
+EXECCOPY	INCR	TVCEXPHS	# RESTART-PROTECT TEH COPYCYCLE		(1)
+
+		CAE	MASSTMP		# CSMMASS KG B+16
+		TS	CSMMASS
+		
+		CAE	VCNTRTMP	# VCNTR
+		TS	VCNTR
+		TS	V97VCNTR	# FOR ENGFAIL (R41) MASS UPATES AT SPSOFF
+		
+		INCR	TVCEXPHS	# COPYCYCLE OVER			(2)
+		
+1SHOTCHK	CCS	CNTR		# CHECK FOR ONE-SHOT OR REPCORR
+		TCF	+4		#	NOT YET
+		TCF	1SHOTOK		#	NOW
+		TCF	REPCHEK		#	ONE-SHOT OVER, ON TO REPCORR
+		TCF	1SHOTOK		#	NOW (ONE-SHOT ONLY, NO REPCORR)
+		
+	+4	TS	CNTRTMP		# COUNT DOWN
+		CAF	SIX		# SETUP TVCEXPHS FOR ENTRY AT CNTRCOPY
+		TS	TVCEXPHS
+		TCF	CNTRCOPY
+		
+REPCHEK		CAE	REPFRAC		# CHECK FOR REPETITIVE UPDATES
+		EXTEND
+		BZMF	TVCEXFIN	#	NO  (NEG OR +-ZERO)
+		TS	TEMPDAP +1	#	YES, SET UP CORRECTION FUNCTION
+		CAF	FOUR		# SET UP TVCEXPHS FOR ENTRY AT CORSETUP
+		TS	TVCEXPHS
+		TCF	CORSETUP
+# Page 948		
+1SHOTOK		CAF	BIT13		# CHECK ENGINE-ON BIT, NOT PERMITTING
+		EXTEND			#	SWITCHOVER DURING ENGINE-SHUTDOWN
+		RAND	DSALMOUT
+		CCS	A
+		TCF	+2		# 	ONE-SHOT OK
+		TCF	TVCEXFIN	# 	NO, TERMINATE
+		
+		INCR	TVCEXPHS	#					(3)
+		
+# RSB 2009.  The following instruction was previously "CAE FCORFRAC", but FCORFRAC
+# is not in erasable memory as implied by the use of CAE.  I've accordingly changed
+# it to CAF instead to indicate fixed memory.
+TEMPSET		CAF	FCORFRAC	# 	SET UP CORRECTION FRACTION
+		TS	TEMPDAP +1
+		
+		INCR	TVCEXPHS	# ENTRY FROM REPCHECK AT NEXT LOCATION	(4)
+		
+CORSETUP	CAE	DAPDATR1	# CHECK FOR LEM-OFF/ON
+		MASK	BIT13		# (NOTE, SHOWS LEM-OFF)
+		EXTEND
+		BZF	+2		# LEM IS ON,  PICK UP   TEMPDAP+1
+		CAE	TEMPDAP +1	# LEM IS OFF, PICK UP 2(TEMPDAP+1)
+		AD	TEMPDAP +1
+		TS	TEMPDAP		# CG.CORR USES TEMPDAP
+		
+		CAF	NEGONE		# SET UP FOR CNTR = -1 (SWTCHOVR DONE)
+		TS	CNTRTMP		#	(COPYCYCLE AT "CNTRCOPY")
+		
+CG.CORR		EXTEND			# PITCH TMC LOOP
+		DCA	PDELOFF
+		DXCH	PACTTMP
+		EXTEND
+		DCS	PDELOFF
+		DDOUBL
+		DDOUBL
+		DXCH	TTMP1
+		EXTEND
+		DCA	DELPBAR
+		DDOUBL
+		DDOUBL
+		DAS	TTMP1
+		EXTEND
+		DCA	TTMP1
+		EXTEND
+		MP	TEMPDAP
+		DAS	PACTTMP
+		
+		EXTEND			# YAW TMC LOOP
+		DCA	YDELOFF
+		DXCH	YACTTMP
+		EXTEND
+		DCS	YDELOFF
+		DDOUBL
+# Page 949		
+		DDOUBL
+		DXCH	TTMP1
+		EXTEND
+		DCA	DELYBAR
+		DDOUBL
+		DDOUBL
+		DAS	TTMP1
+		EXTEND
+		DCA	TTMP1
+		EXTEND
+		MP	TEMPDAP
+		DAS	YACTTMP
+		
+CORCOPY		INCR	TVCEXPHS	# RESTART-PROTECT THE COPYCYCLE		(5)
+
+		EXTEND			# TRIM-ESTIMATES, AND
+		DCA	PACTTMP
+		TS	PACTOFF		#	TRIMS
+		DXCH	PDELOFF
+		
+		EXTEND
+		DCA	YACTTMP
+		TS	YACTOFF
+		DXCH	YDELOFF
+		
+		INCR	TVCEXPHS	# ENTRY FROM 1SHOTCHK AT NEXT LOCATION	(6)
+		
+CNTRCOPY	CAE	CNTRTMP		# UPDATE CNTR (RESTARTS OK, FOLLOWS CPYCY)
+		TS	CNTR
+		
+TVCEXFIN	CAF	ZERO		# RESET TVCEXPHS
+		TS	TVCEXPHS		
+		TCF	TASKOVER	# TVCEXECUTIVE FINISHED
+
+FCORFRAC	OCT	10000		# ONE-SHOT CORRECTION FRACTION	
+
+# Page 950 (page is empty)
+
diff --git a/TVCINITIALIZE.s b/TVCINITIALIZE.s
new file mode 100644
index 0000000..a220e87
--- /dev/null
+++ b/TVCINITIALIZE.s
@@ -0,0 +1,414 @@
+# Copyright:	Public domain.
+# Filename:	TVCINITIALIZE.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:	Jim Lawton <jim.lawton@gmail.com>.
+# Website:	www.ibiblio.org/apollo.
+# Pages:	936-944
+# Mod history:	2009-05-11 JVL	Adapted from the Colossus249/ file
+#				of the same name, using Comanche055 page
+#				images.
+#		2009-05-20 RSB	Corrections:  +80 -> +8D, added 4 missing 
+#				lines in TVCINIT1, changed the capitalization
+#				of a couple of the "Page N" comments, 
+#				corrected a couple of lines in LOADCOEFF.
+#		2009-05-22 RSB	In LOADCOEF, DXCH N10 +14D corrected to
+#				TS N10 +14D.  Also, various comment-marks
+#				were added to comments following this
+#				change.
+#
+# 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 937
+# NAME		TVCDAPON (TVC DAP INITIALIZATION AND STARTUP CALL)
+# LOG SECTION...TVCINITIALIZE			SUBROUTINE...DAPCSM
+# MODIFIED BY SCHLUNDT				21 OCTOBER 1968
+# FUNCTIONAL DESCRIPTION
+#	PERFORMS TVCDAP INITIALIZATION (GAINS, TIMING PARAMETERS, FILTER VARIABLES, ETC.)
+#	COMPUTES STEERING (S40.8) GAIN KPRIMEDT, AND ZEROES PASTDELV,+1 VARIABLE
+#	MAKES INITIALIZATION CALL TO "NEEDLER" FOR TVC DAP NEEDLES-SETUP
+#	PERFORMS INITIALIZATION FOR ROLL DAP
+#	CALLS TVCEXECUTIVE AT TVCEXEC, VIA WAITLIST
+#	CALLS TVCDAP CDU-RATE INITIALIZATION PKG AT DAPINIT  VIA T5
+#	PROVIDES FOR LOADING OF LOW-BANDWIDTH COEFFS AND GAINS AT SWICHOVR
+# CALLING SEQUENCE - T5LOC=2CADR(TVCDAPON,EBANK=BZERO), T5=.6SECT5
+#	IN PARTICULAR, CALLED BY "DOTVCON" IN P40
+#	MRCLEAN AND TVCINIT4 ARE POSSIBLE TVC-RESTART ENTRY POINTS
+# NORMAL EXIT MODE
+#	TCF RESUME
+# SUBROUTINES CALLED
+#	NEEDLER, MASSPROP
+# ALARM OR ABORT EXIT MODES
+#	NONE
+# ERASABLE INITIALIZATION REQUIRED
+#	CSMMASS, LEMMASS, DAPDATR1 (FOR MASSPROP SUBROUTINE)
+#	TVC PAD LOADS (SEE EBANK6 IN ERASABLE ASSIGNMENTS)
+#	PACTOFF, YACTOFF, CDUX
+#	TVCPHASE AND THE T5 BITS OF FLAGWRD6 (SET AT DOTVCON IN P40)
+# OUTPUT
+#	ALL TVC AND ROLL DAP ERASABLES, FLAGWRD6 (BITS 13,14), T5, WAITLIST
+# DEBRIS
+#	NONE
+
+		COUNT*	$$/INIT
+		BANK	17
+		SETLOC	DAPS7
+		BANK
+		
+		EBANK=	BZERO
+		
+TVCDAPON	LXCH	BANKRUPT	# T5 RUPT ARRIVAL (CALL BY DOTVCON - P40)
+		EXTEND			# SAVE Q REQUIRED IN RESTART (MRCLEAN AND
+		QXCH	QRUPT		#	TVCINIT4 ARE ENTRIES)
+MRCLEAN		CAF	NZERO		# NUMBER TO ZERO, LESS ONE  (MUST BE ODD)
+					#	TVC RESTARTS ENTER HERE  (NEW BANK)
+	+1	CCS	A
+		TS	CNTR
+		CAF	ZERO
+		TS	L
+		INDEX	CNTR
+		DXCH	OMEGAYC		# FIRST (LAST) TWO LOCATIONS
+		CCS	CNTR
+		TCF	MRCLEAN +1
+# Page 938
+		EXTEND			# SET UP ANOTHER T5 RUPT TO CONTINUE
+		DCA	INITLOC2	#	INITIALIZATION AT TVCINIT1
+		DXCH	T5LOC		# THE PHSCHK2 ENTRY (REDOTVC) AT TVCDAPON
+		CAF	POSMAX		#	+3 IS IN ANOTHER BANK.  MUST RESET
+		TS	TIME5		#	BBCON TOO (FULL 2CADR), FOR THAT
+ENDMRC		TCF	RESUME		#	ENTRY.
+
+TVCINIT1	LXCH	BANKRUPT
+		EXTEND
+		QXCH	QRUPT
+		
+		TC	IBNKCALL	# UPDATE IXX, IAVG/TLX FOR DAP GAINS (R03
+		CADR	MASSPROP	#	OR NOUNS 46 AND 47 MUST BE CORRECT)
+		
+		CAE	EMDOT		# SPS FLOW RATE, SCALED B+3 KG/CS
+		EXTEND
+		MP	ONETHOU
+		TS	TENMDOT		# 10-SEC MASS LOSS B+16 KG
+		COM
+		AD	CSMMASS
+		TS	MASSTMP		# DECREMENT FOR FIRST 10 SEC OF BURN
+		
+		CAE	DAPDATR1	# CHECK LEM-ON/OFF
+		MASK	BIT14
+		CCS	A
+		CAF	BIT1		# LEM-ON (BIT1)
+		TS	CNTR		# LEM-OFF (ZERO)
+		
+		INDEX	CNTR		# LOAD THE FILTER COEFFICIENTS
+		CAF	CSMCFADR
+		TS	COEFFADR
+		TC	LOADCOEF
+		
+		INDEX	CNTR		# PICK UP LM-OFF,-ON KTLX/I
+		CAE	EKTLX/I		# SCALED AT 1/(8 ASCREV) OF ACTUAL VALUE
+		TS	KTLX/I
+		
+		TCR	S40.15		# COMPUTE 1/CONACC, VARK
+		
+TVCINIT2	CS	CNTR		# PICK LM-OFF,-ON VALUE FOR FILTER PERIOD
+		INDEX	A		# DETERMINATION:
+		CAF	BIT2		# 	BIT2 FOR CSM ONLY 40MS FILTER
+		TS	KPRIMEDT	# 	BIT3 FOR CSM/LM 80MS FILTER
+		
+		COM			# PREPARE T5TVCDT
+		AD	POSMAX
+		AD	BIT1
+		TS	T5TVCDT
+		
+		CS	BIT15		# RESET SWTOVER FLAG
+# Page 939		
+		MASK	FLAGWRD9
+		TS	FLAGWRD9
+		
+		INDEX	CNTR		# PICK UP LEM-OFF,-ON KPRIME
+		CAE	EKPRIME		#	SCALED (100 PI)/16
+		EXTEND
+		MP	KPRIMEDT	# (TVCDT/2, SC.AT B+14 CS)
+		LXCH	A		#	SC.AT PI/8	(DIMENSIONLESS)
+		DXCH	KPRIMEDT
+		
+		INDEX	CNTR		# PICK UP LEM-OFF,-ON REPFRAC
+		CAE	EREPFRAC
+		TS	REPFRAC
+
+		INDEX	CNTR		# PICK UP ONE-SHOT CORRECTION TIME
+		CAF	TCORR
+		TS	CNTR
+
+		CAF	NEGONE		# PREVENT STROKE TEST UNTIL CALLED
+		TS	STRKTIME
+		
+		CAF	NINETEEN	# SET VCNTR FOR VARIABLE-GAIN UPDATES IN
+		TS	VCNTR		#	10 SECONDS (TVCEXEC 1/2 SEC RATE)
+		TS	V97VCNTR	# FOR ENGFAIL (R41) LOGIC
+		
+TVCINIT3	CAE	PACTOFF		# TRIM VALUES TO TRIM-TRACKERS, OUTPUT
+		TS	PDELOFF		#	TRACKERS, OFFSET-UPDATES, AND
+		TS	PCMD		#	OFFSET-TRACKER FILTERS
+		TS	DELPBAR		#	NOTE, LO-ORDER DELOFF,DELBAR ZEROED
+		
+		CAE	YACTOFF
+		TS	YDELOFF
+		TS	YCMD
+		TS	DELYBAR
+
+ATTINIT		CAE	DAPDATR1	# ATTITUDE-ERROR INITIALIZATION LOGIC
+		MASK	BIT13		#	TEST FOR CSM OR CSM/LM
+		EXTEND
+		BZF	NEEDLEIN	#	BYPASS INITIALIZATION FOR CSM/LM
+
+		CAF	BIT1		#	SET UP TEMPORARY COUNTER
+	+5	TS	TTMP1
+
+		INDEX	TTMP1
+		CA	ERRBTMP		# ERRBTMP CONTAINS RCS ATTITUDE ERRORS
+		EXTEND			#	ERRORY & ERRORZ (P40 AT DOTVCON)
+		MP	1/ATTLIM	# .007325(ERROR) = 0 IF ERROR < 1.5 DEG
+		EXTEND
+		BZF	+8D		#	|ERROR| LESS THAN 1.5 DEG
+		EXTEND
+# Page 940
+		BZMF	+3		#	|ERROR| > 1.5 DEG, AND NEG
+		CA	ATTLIM		#	|ERROR| > 1.5 DEG, AND POS
+		TCF	+2
+	+3	CS	ATTLIM
+	+2	INDEX	TTMP1
+		TS	ERRBTMP
+	+8	CCS 	TTMP1		#	TEST TEMPORARY COUNTER
+		TCF	ATTINIT +5	#	BACK TO REPEAT FOR PITCH ERROR
+
+		CA	ERRBTMP		# ERROS ESTABLISHED AND LIMITED
+		TS	PERRB
+		CA	ERRBTMP +1
+		TS	YERRB
+
+NEEDLEIN	CS	RCSFLAGS	# SET BIT 3 FOR INITIALIZATION PASS AND GO
+		MASK	BIT3		# 	TO NEEDLER.  WILL CLEAR FOR TVC DAP
+		ADS	RCSFLAGS	# 	(RETURNS AFTER CADR)
+		TC	IBNKCALL
+		CADR	NEEDLER
+		
+TVCINIT4	CAF	ZERO		# SET TVCPHASE TO INDICATE TVCDAPON-THRU-
+		TS	TVCPHASE	#	NEEDLEIN INITIALIZATION FINISHED.
+					#	(POSSIBLE TVC-RESTART ENTRY)
+					
+		CAE	CDUX		# PREPARE ROLL DAP
+		TS	OGANOW
+
+		CAF	BIT13		# IF ENGINE IS ALREADY OFF, ENGINOFF HAS
+		EXTEND			#	ALREADY ESTABLISHED THE POST-BURN
+		RAND	DSALMOUT	#	CSMMASS (MASSBACK DOES IT).  DON'T
+		EXTEND			# 	TOUCH CSMMASS.  IF ENGINE IS ON,
+		BZF	+3		#	THEN IT'S OK TO DO THE COPYCYCLE
+					#	EVEN BURNS LESS THAN 0.4 SEC ARE AOK
+					
+		CAE	MASSTMP		# COPYCYCLE
+		TS	CSMMASS
+		
+	+3	CAF	.5SEC		# CALL TVCEXECUTIVE (ROLLDAP CALL, ETC)
+		TC	WAITLIST
+		EBANK=	BZERO
+		2CADR	TVCEXEC
+		
+		EXTEND			# CALL FOR DAPINIT
+		DCA	DAPINIT5
+		DXCH	T5LOC
+		CAE	T5TVCDT		# (ALLOW TIME FOR RESTART COMPUTATIONS)
+		TS	TIME5
+# Page 941
+ENDTVCIN	TCF	RESUME
+
+PRESWTCH	TCR	SWICHOVR	# ENTRY FROM V46
+
+		TC	POSTJUMP	# THIS PROVIDES AN EXIT FROM SWITCH-OVER
+		CADR	PINBRNCH	#	(PINBRNCH DOES A RELINT)
+
+SWICHOVR	INHINT
+		CA	TVCPHASE	# SAVE TVCPHASE
+		TS	PHASETMP
+		CS	BIT2		# SET TVCPHASE = -2 (INDICATES SWITCH-OVER
+		TS	TVCPHASE	#	TO RESTART LOGIC)
+
+	+5	EXTEND			# SAVE Q FOR RETURN (RESTART ENTRY POINT,
+		QXCH	RTRNLOC		#	TVCPHASE AND PHASETMP ALREADY SET)
+
+		CAF	NZEROJR		# ZEROING LOOP FOR FILTER STORAGE LOCS
+	+8	TS	CNTRTMP
+
+MCLEANJR	CA	ZERO
+		TS	L
+		INDEX	CNTRTMP
+		DXCH	PTMP1 -1
+		CCS	CNTRTMP
+		CCS	A
+		TCF	SWICHOVR +8D
+		
+		CS	FLAGWRD9	# SET SWITCHOVER FLAG FOR DOWNLINK
+		MASK	BIT15
+		ADS	FLAGWRD9
+
+		CAE	EKTLX/I +2	# LOW BANDWIDTH GAINS 	- DAP
+		TS	KTLX/I
+		TCR	S40.15 	+7
+		
+		CAF	FKPRIMDT	#			- STEERING
+		TS	KPRIMEDT
+		
+		CAF	FREPFRAC	#			- TMC LOOP
+		TS	REPFRAC
+
+		EXTEND			# UPDATE TRIM ESTIMATES
+		DCA	DELPBAR
+		DXCH	PDELOFF
+		EXTEND
+		DCA	DELYBAR
+		DXCH	YDELOFF
+		
+		CA	LBCFADR
+# Page 942
+		TS	COEFFADR
+		TC	LOADCOEF
+
+		CAE	PHASETMP	# RESTORE TVCPHASE
+		TS	TVCPHASE
+
+		TC	RTRNLOC		# BACK TO PRESWTCH OR TVCRESTARTS
+
+LOADCOEF	EXTEND			# LOAD DAP FILTER COEFFICIENTS
+		INDEX	COEFFADR	#   FROM: ERASABLE FOR CSM/LM HB
+		DCA	0		#         FIXED    FOR CSM/LM LB
+		DXCH	N10		#         FIXED    FOR CSM
+
+		EXTEND			# NOTE: FOR CSM/LM, NORMAL COEFFICIENT
+		INDEX	COEFFADR	# LOAD WILL BE HIGH BANDWIDTH PAD LOAD
+		DCA	2		# ERASABLES. DURING CSM/LM SWITCHOVER, 
+		DXCH	N10 	+2	# THIS LOGIC IS USED TO LOAD LOW BANDWIDTH
+					# COEFFICIENTS FROM FIXED MEMORY.
+
+		EXTEND
+		INDEX	COEFFADR
+		DCA	4
+		DXCH	N10 	+4
+
+		EXTEND
+		INDEX	COEFFADR
+		DCA	6
+		DXCH	N10 	+6
+
+		EXTEND
+		INDEX	COEFFADR
+		DCA	8D
+		DXCH	N10 	+8D
+
+		EXTEND
+		INDEX	COEFFADR
+		DCA	10D
+		DXCH	N10 	+10D
+
+		EXTEND
+		INDEX	COEFFADR
+		DCA	12D
+		DXCH	N10 	+12D
+
+		INDEX	COEFFADR
+		CA	14D
+		TS	N10 	+14D
+
+		TC	Q
+# Page 943
+S40.15		CAE	IXX		# GAIN COMPUTATIONS (1/CONACC, VARK)
+		EXTEND			# ENTERED FROM TVCINITIALIZE AND TVCEXEC
+		MP	2PI/M		#	2PI/M SCALED 1/(B+8 N M)
+		DDOUBL			#	IXX   SCALED B+20 KG-MSQ
+		DDOUBL
+		DDOUBL
+		TS	1/CONACC	#	      SCALED B+9 SEC-SQ/REV
+
+	+7	CAE	KTLX/I		# ENTRY FROM CSM/LM V46 SWITCH-OVER
+		EXTEND			#            SCALED (B+3 ASCREV)  1/SECSQ
+		MP	IAVG/TLX	#            SCALED B+2 SECSQ
+		DDOUBL
+		DDOUBL
+		TS	VARK		#            SCALED (B+3 ASCREV)
+		TC	Q
+
+CSMN10		DEC	.99999		# N10	CSM ONLY FILTER COEFFICIENTS
+		DEC	-.2549		# N11/2
+		DEC	.0588		# N12
+		DEC	-.7620		# D11/2
+		DEC	.7450		# D12
+
+		DEC	.99999		# N20
+		DEC	-.4852		# N21/2
+		DEC	0		# N22
+		DEC	-.2692		# D22/2
+		DEC	0		# D22
+
+LBN10		DEC	+.99999		# N10	LOW BANDWIDTH FILTER COEFFICIENTS
+		DEC	-.3285		# N11/2
+		DEC	-.3301		#N12
+		DEC	-.9101		#D11/2
+		DEC	+.8460		#D12
+
+		DEC	+.03125		#N20
+		DEC	0		#N21/2
+		DEC	0		#N22
+		DEC	-.9101		#D21/2
+		DEC	+.8460		#D22
+
+		DEC	+.50000		#N30
+		DEC	-.47115		#N31/2
+		DEC	+.4749		#N32
+		DEC	-.9558		#D31/2
+		DEC	+.9372		#D32
+
+CSMCFADR	GENADR	CSMN10		# CSM ONLY COEFFICIENTS ADDRESS
+HBCFADR		GENADR	HBN10		# HIGH BANDWIDTH COEFFICIENTS ADDRESS
+# Page 944
+LBCFADR		GENADR	LBN10		# LOW BANDWIDTH COEFFICIENTS ADDRESS
+
+NZERO		DEC	51		# MUST BE ODD FOR MRCLEAN
+NZEROJR		DEC	23		# MUST BE ODD FOR MCLEANJR
+
+ATTLIM		DEC	0.00833		# INITIAL ATTITUDE EROR LIMIT (1.5 DEG)
+1/ATTLIM	DEC	0.007325	# .007325(ERROR) = 0 IF ERROR < 1.5 DEG
+
+TCORR		OCT	00005		# CSM
+	+1	OCT	00000		# CSM/LM (HB,LB)
+
+FKPRIMDT	DEC	.0102		# CSM/LM (LB), (.05 X .08) SCALED AT PI/8
+FREPFRAC	DEC	.0375 B-2	# CSM/LM (LB), 0.0375 SCALED AT B+2
+
+NINETEEN	=	VD1
+2PI/M		DEC	.00331017 B+8	# 2PI/M, SCALED AT 1/(B+8 N-M)
+
+ONETHOU		DEC	1000 B-13	# KG/CS B3 TO KG/10SEC B16 CONVERSION
+
+		EBANK=	BZERO
+DAPINIT5	2CADR	DAPINIT
+
+		EBANK=	BZERO
+INITLOC2	2CADR	TVCINIT1
+
diff --git a/TVCMASSPROP.s b/TVCMASSPROP.s
new file mode 100644
index 0000000..3847483
--- /dev/null
+++ b/TVCMASSPROP.s
@@ -0,0 +1,239 @@
+# Copyright:	Public domain.
+# Filename:	TVCMASSPROP.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:	951-955
+# Mod history:	2009-05-13 RSB	Adapted 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 951
+# PROGRAM NAME....MASSPROP
+# LOG SECTION....TVCMASSPROP		PROGRAMMER...MELANSON (ENGEL, SCHLUNDT)
+#
+# FUNCTIONAL DESCRIPTION:
+#
+#	MASSPROP OPERATES IN TWO MODES: (1) IF LEM MASS OR CONFIGURATION ARE UPDATED (MASSPROP DOES NOT TEST
+#	FOR THIS) THE ENTIRE PROGRAM MUST BE RUN THROUGH, BREAKPOINT VALUES AND DERIVATIVES OF THE OUTPUTS WITH
+#	RESPECT TO CSM MASS BEING CALCULATED PRIOR TO CALCULATION OF THE OUTPUTS.  (2) OTHERWISE, THE OUTPUTS CAN BE
+#	CALCULATED USING PREVIOUSLY COMPUTED BREAKPOINT VALUES AND DERIVATIVES.
+#
+# CALLING SEQUENCES
+#
+#	IF LEM MASS OR CONFIGURATION HAS BEEN UPDATED, TRANSFER TO MASSPROP, OTHERWISE TRANSFER TO FIXCW.
+#		L	TC	BANKCALL or IBNKCALL
+#		L+1	CADR	MASSPROP
+#			OR
+#		L+1	CADR	FIXCW
+#		L+2	RETURNS VIA Q
+#
+# CALLED:  IN PARTICULAR BY DONOUN47 (JOB) AND TVCEXECUTIVE (TASK)
+#
+# JOBS OR TASKS INITIATED:  NONE
+#
+# SUBROUTINES CALLED:  NONE
+#
+# ERASABLE INITIALIZATION REQUIRED
+#
+#	LEMMASS MUST CONTAIN LEM MASS SCALED AT B+16 KILOGRAMS
+#	CSMMASS MUST CONTAIN CSM MASS SCALED AT B+16 KILOGRAMS
+#	DAPDATR1 MUST BE SET TO INDICATE VEHICLE CONFIGURATION.
+#		BITS (15,14,13)  =  ( 0 , 0 , 1 )	LEM OFF
+#				    ( 0 , 1 , 0 )	LEM ON (ASCNT,DSCNT)
+#				    ( 1 , 1 , 0 )	LEM ON (ASCNT ONLY)
+#
+# ALARMS:  NONE
+#
+# EXIT:		TC	Q
+#
+# OUTPUTS:
+#
+#	(1)	IXX, SINGLE PRECISION SCALED AT B+20 IN KG-M SQ.
+#	(2)	IAVG, SINGLE PRECISION SCALED AT B+20 IN KG-M SQ.
+#	(3)	IAVG/TLX, SINGLE PRECISION, SCALED AT B+2 SEC-SQD
+#	
+#	THEY ARE STORED IN CONSECUTIVE REGISTERS IXX0, IXX1, IXX2
+#	CONVERSION FACTOR:  (SLUG-FTSQ) = 0.737562 (KG-MSQ)
+# Page 952
+#
+# OUTPUTS ARE CALCULATED AS FOLLOWS:
+#
+#	(1)	IF LEM DOCKED, LEMMASS IS FIRST ELIMINATED AS A PARAMETER
+#
+#		VARST0 = INTVALUE0 + LEMMASS(SLOPEVAL0)		IXX		BREAKPOINT VALUE
+#		VARST1 = INTVALUE1 + LEMMASS(SLOPEVAL1)		IAVG		BREAKPOINT VALUE
+#		VARST2 = INTVALUE2 + LEMMASS(SLOPEVAL2)		IAVG/TLX	BREAKPOINT VALUE
+#
+#		VARST3 = INTVALUE3 + LEMMASS(SLOPEVAL3)		IAVG/TLX	SLOPE FOR CSMMASS > 33956 LBS (SPS > 10000 LBS)
+#		VARST4 = INTVALUE4 + LEMMASS(SLOPEVAL4)		IAVG		SLOPE FOR CSMMASS > 33956 LBS (SPS > 10000 LBS)
+#
+#		VARST5 = INTVALUE5 + LEMMASS(SLOPEVAL5)		IXX		SLOPE FOR ALL VALUES OF CSMMASS
+#
+#		VARST6 = INTVALUE6 + LEMMASS(SLOPEVAL6)		IAVG		SLOPE FOR CSMMASS < 33956 LBS (SPS < 10000 LBS)
+#		VARST7 = INTVALUE7 + LEMMASS(SLOPEVAL7)		IAVG/TLX	SLOPE FOR CSMMASS < 33956 LBS (SPS < 10000 LBS)
+#
+#		VARST8 = INTVALUE8 + LEMMASS(SLOPEVAL8)		IAVG		DECREMENT TO BRKPT VALUE WHEN LEM DSCNT STAGE OFF
+#		VARST9 = INTVALUE9 + LEMMASS(SLOPEVAL9)		IAVG/TLX	DECREMENT TO BRKPT VALUE WHEN LEM DSCNT STAGE OFF
+#
+#	(2)	IF LEM NOT DOCKED
+#
+#		VARST0 = NOLEMVAL0	WHERE THE MEANING AND SCALING OF VARST0
+#			.		TO VARST9 ARE THE SAME AS GIVEN ABOVE
+#			.
+#			.		NOTE... FOR THIS CASE, VARST8,9 HAVE NO
+#		VARST9 = NOLEMVAL9	MEANING (THEY ARE COMPUTED BUT NOT USED)
+#
+# 	(3)	THE FINAL OUTPUT CALCULATIONS ARE THEN DONE
+#
+#		IXX0 = VARST0 + (CSMMASS + NEGBPW)VARST5		IXX
+#
+#		IXX1 = VARST1 + (CSMMASS + NEGBPW)VARST(4 OR 6)		IAVG
+#
+#		IXX2 = VARST2 + (CSMMASS + NEGBPW)VARST(3 OR 7)		IAVG/TLX
+#
+# 	THE DATA USED CAME FROM THE CSM/LM SPACECRAFT OPERATIONAL DATA BOOK
+#		VOL. 3, NASA DOCUMENT SNA-8-D-027 (MARCH 1968)
+#
+# 	PERTINENT MASS DATA:		CSM WEIGHT	(FULL)	64100 LBS.
+#							(EMPTY)	23956 LBS.
+#					LEM WEIGHT	(FULL)	32000 LBS.
+#							(EMPTY)	14116 LBS.
+#
+# 	(WEIGHTS ARE FROM AMMENDMENT #1 (APRIL 24, 1968) TO ABOVE DATA BOOK)
+# Page 953
+
+		BANK	25
+		SETLOC	DAPMASS
+		BANK
+		EBANK=	BZERO
+		COUNT*	$$/MASP
+		
+MASSPROP	CAF	NINE		# MASSPROP USES TVC/RCS INTERRUPT TEMPS
+		TS	PHI333		# SET UP TEN PASSES
+		
+LEMTEST		CAE	DAPDATR1	# DETERMINE LEM STATUS
+		MASK	BIT13
+		EXTEND
+		BZF	LEMYES
+		
+LEMNO		INDEX	PHI333		# LEM NOT ATTACHED
+		CAF	NOLEMVAL
+		TCF	STOINST
+		
+LEMYES		CAE	LEMMASS		# LEM IS ATTACHED
+		DOUBLE
+		EXTEND
+		INDEX	PHI333
+		MP	SLOPEVAL
+		DDOUBL
+		INDEX	PHI333
+		AD	INTVALUE
+		
+STOINST		INDEX	PHI333		# STORAGE INST BEGIN HERE
+		TS	VARST0
+		CCS	PHI333		# ARE ALL TEN PASSES COMPLETED
+		TCF	MASSPROP +1	# NO: GO DECREMENT PHI333
+		
+DXTEST		CCS	DAPDATR1	# IF NEG, BIT15 IS 1, LEM DSCNT STAGE OFF
+		TCF	FIXCW
+		TCF	FIXCW
+		DXCH	VARST0 +8D
+		DAS	VARST0 +1
+		CA	DXITFIX
+		ADS	VARST0 +7
+		
+FIXCW		CAF	BIT2		# COMPUTATION PHASE BEGINS HERE. SET UP
+		TS	PHI333		# THREE PASSES
+		TS	PSI333
+		
+		CAE	CSMMASS		# GET DELTA CSM WEIGHT:  SIGN DETERMINES
+		AD	NEGBPW		# SLOPE LOCATIONS.
+		DOUBLE
+		TS	TEMP333
+# Page 954
+		EXTEND
+		BZMF	PEGGY		# DETERMINE CORRECT SLOPE
+		CAF	NEG2
+		TS	PHI333
+		
+PEGGY		INDEX	PHI333		# ALL IS READY:  CALCULATE OUTPUTS NOW
+		CAE	VARST5		# GET SLOPE
+		EXTEND
+		MP	TEMP333		# MULT BY DELTA CSM WEIGHT
+		DOUBLE
+		INDEX	PSI333
+		AD	VARST0		# ADD BREAKPOINT VALUE
+		INDEX	PSI333
+		TS	IXX		# ***** OUTPUTS (IXX0, IXX1, IXX2) *****
+		
+		CCS	PSI333		# BOOKKEEPING: MASSPROP FINISHED OR NOT
+		TCF	BOKKEP2		# NO:  GO TAKE CARE OF INDEXING REGISTERS
+		
+		CAE	DAPDATR1	# UPDATE WEIGHT/G
+		MASK	BIT14
+		CCS	A
+		CA	LEMMASS
+		AD	CSMMASS
+		TS	WEIGHT/G	# SCALED AT B+16 KILOGRAMS
+ENDMASSP	TC	Q
+
+BOKKEP2		TS	PSI333		# REDUCE PSI BY ONE
+		EXTEND
+		DIM	PHI333
+		TCF	PEGGY
+		
+# Page 955
+NOLEMVAL	DEC	25445 B-20
+		DEC	87450 B-20
+		DEC	.30715 B-2
+		DEC	1.22877 E-5 B+12
+		DEC	1.6096 B-6
+		DEC	1.54 B-6
+		DEC	7.77177 B-6
+		DEC	3.46458 E-5 B+12
+		
+INTVALUE	DEC	26850 B-20
+		DEC	127518 B-20
+		DEC	.54059 B-2
+		DEC	.153964 E-4 B+12
+		DEC	-.742923 B-6
+		DEC	1.5398 B-6
+		DEC	9.68 B-6
+		DEC	.647625	E-4 B+12
+		DEC	-27228 B-20
+		DEC	-.206476 B-2
+		
+SLOPEVAL	DEC	1.96307 B-6
+		DEC	27.5774 B-6
+		DEC	2.3548 E-5 B+12
+		DEC	2.1777 E-9 B+26
+		DEC	1.044 E-3 B+8
+		DEC	0
+		DEC	2.21068 E-3 B+8
+		DEC	1.5166 E-9 B+26
+		DEC	-1.284 B-6
+		DEC	2 E-5 B+12
+		
+NEGBPW		DEC	-15402.17 B-16
+DXITFIX		DEC*	-1.88275 E-5 B+12*
+
diff --git a/TVCRESTARTS.s b/TVCRESTARTS.s
new file mode 100644
index 0000000..da4d43f
--- /dev/null
+++ b/TVCRESTARTS.s
@@ -0,0 +1,272 @@
+# Copyright:	Public domain.
+# Filename:	TVCRESTARTS.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:	956-960
+# Mod history:	2009-05-13 RSB	Adapted from the Colossus249/ file of the
+#				same name, using Comanche055 page images.
+#		2009-05-20 RSB	Corrections:  TCF -> BZF in one place.
+#		2009-05-21 RSB	In PHSCHK2, CS TVCPHASE corrected to 
+#				CCS TVCPHASE and CCS 4 corrected to CCS A.
+#				Page 924 corrected to 961.  CORCOPY +2 
+#				corrected to CORCOPY +1.
+#
+# 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 956
+# NAME....TVCRESTART PACKAGE, CONSISTING OF REDOTVC, ENABL1, 2, CMDSOUT, PHSCHK2, ETC.
+# LOG SECTION....TVCRESTARTS			SUBROUTINE....DAPCSM
+# MODIFIED BY SCHLUNDT				21 OCTOBER 1968
+#
+# FUNCTIONAL DESCRIPTION....
+#
+#      *RESTART-PROCESS THE TVC DAPS, INCLUDING PITCHDAP, YAWDAP,
+#	TVCEXECUTIVE, ROLLDAP, TVCINIT4, TVCDAPON, AND CSM/.M V46 SWTCHOVR.
+#
+#      *TVC RESTARTS DESERVE SPECIAL CONSIDERATION IN SEVERAL AREAS.
+#	RESTART DOWN-TIME IS IMPORTANT BECAUSE OF THE TRANSIENTS INTRODUCED
+#	BY THE THRUST VECTOR RETURN TO THE ACTUATOR MECHANICAL NULLS
+#	FOLLOWING TVC- AND OPTICS-ERROR-COUNTER-DISENABLES (CHANNEL 12).
+#	TVC USES A MIXTURE OF WAITLIST, T5, T6, AND JOB CALLS.  THERE IS
+#	FILTER MEMORY (UP TO 6TH ORDER) TO BE PROTECTED IF WILD TRANSIENTS
+#	ARE TO BE AVOIDED.  COUNTERS ARE INVOLVED FOR ONE-SHOT
+#	CORRECTIONS AND GAIN UPDATES.  THE GIMBAL TRIM ESTIMATORS AND THE
+#	BODY AXIS ATTITUDE ERROR INTEGRATORS INVOLVE DIGITAL SUMMATION.
+#	DIGITAL DIFFERENTIATORS ARE INVOLVED IN THE BODY AXIS RATE ESTIMA-
+#	TIONS AND IN THE OUTPUTTING OF ACTUATOR COMMANDS.  THERE IS AN
+#	OFFSET-TRACKER-FILTER TO PROTECT.  ETC., ETC.
+#
+#      *THOSE QUANTITIES WHICH MUST BE PROTECTED ARE STORED IN TEMPORARY
+#	REGISTERS AS THEY ARE COMPUTED, FOR UPDATING THE REAL REGISTERS
+#	DURING COPYCYCLES.
+#
+#      *THE SEVERAL COPYCYCLES ARE EACH PROTECTED BY PHASE POINTS AT THEIR
+#	BEGINNING AND AT THEIR TERMINATION.  THE PHASE POINTS ARE SIMPLY
+#	"INCR" INSTRUCTIONS, EITHER "INCR TVCEXPHS" FOR COPYCYCLES
+#	IN THE TVCEXECUTIVE, OR "INCR TVCPHASE" FOR THE PITCH AND YAW
+#	COPYCYCLES.  INDEXING ON EACH OF THESE POINTERS THEN PERMITS A
+#	RETURN TO THE APPROPRIATE RESTART POINTS.
+#
+#      *IF A RESTART OCCURS DURING EITHER COPYCYCLE, THAT COPYCYCLE IS
+#	COMPLETED.  THEN THE NORMAL TVCINIT4....DAPINIT....PITCHDAP STARTUP
+#	SEQUENCE IS CALLED UPON TO GET THINGS GOING AGAIN.
+#
+#      *TVC-ENABLE AND OPTICS-ERROR-COUNTER ENABLE MUST BE SET ASAP
+#	(ALLOWING FOR PROCEDURAL DELAYS).  THEN THE ENGINES ARE COMMANDED
+#	TO THE P,YACTOFF TRIM VALUES.  THE DAPS ARE THEN READY TO GO ON THE
+#	AIR, WITH THE REGULAR STARTUP SEQUENCE, EITHER AT MRCLEAN FOR A
+#	COMPLETE INITIALIZATION OR AT TVCINIT4 FOR A PARTIAL INITIALIZATION.
+#
+#      *FOR RESTARTS PRIOR TO THE SETTING OF THE T5 BITS AT DOTVCON THE
+#	PRE40.6 SECTION OF S40.6 TAKES CARE OF RE-ESTABLISHING TRIMS.
+#
+#      *IF A RESTART OCCURS DURING THE TVCEXEC....TVCEXFIN SEQUENCE THE
+#	COMPUTATIONS WILL BE COMPLETED, STARTING AT THE APPROPRIATE RESTART
+#	POINT, AFTER THE DAPS ARE READY TO GO ON THE AIR.
+#
+#      *IF A RESTART OCCURS PRIOR TO TVCINIT4 (TVCPHAS = -1) E.G. DURING
+#	THE EARLY DAP INITIALIZATION PHASE, THE DAP STARTUP SEQUENCE IS
+#	ENTERED AT MRCLEAN FOR A FULL INITIALIZATION.
+#
+#      *FOR RESTARTS DURING CSM/LM V46 SWITCH-VER, TVCPHASE IS SET TO -2.
+#	AND THE RESTART LOGIC GOES BACK TO REDO SWITCH-OVER (AFTER THE
+#	NORMAL DAP RESTART SEQUENCE IS FOLLOWED.)
+#
+#      *RESTARTS ARE NOT CRITICAL TO THE ROLL DAP PERFORMANCES HENCE THE
+#	ROLL DAP IS MERELY RESTARTED.
+#
+#      *RESTARTS DURING A STROKE TEST (STROKER IS NON-ZERO) WILL CAUSE THE
+# Page 957
+#	STROKE TEST TO BE TERMINATED.  A NEW V68 ENTRY WILL BE REQUIRED
+#	TO GET IT GOING AGAIN (NO AUTOMATIC RESTART).
+#  
+#      *REDOTVC IS REACHED FOLLOWING ANY RESTART WHICH FINDS THE T5 BITS
+#	(BITS 15,14 OF FLAGWRD6) SET FOR TVC.  DOTVCON TVCPHASE = -1
+# 	AND TVC EXPHS = 0 JUST BEFORE SETTING THESE BITS, JUST BEFORE
+#	MAKING THE T5 CALL TO TVCDAPON.  ON A NORMAL SHUTDOWN DOTVCRCS
+#	CALLS RCSDAPON, WHICH RESETS THE T5 BIT FOR RCS
+#
+# CALLING SEQUENCE....T5, IN PARTICULAR BY ELRSKIP OF FRESH START/RESTART
+#
+# NORMAL EXIT MODES....RESUME, NOQRSM, POSTJUMP (TO TVCINIT4 OR MRCLEAN)
+#
+# ALARM OR ABORT EXIT MODES....NONE
+#
+# SUBROUTINES CALLED....
+#
+#      *PCOPY+1, YCOPY+1 (PITCH AND YAW COPYCYCLES)
+#      *ENABLE1,2, CMDSOUT (RE-ESTABLISH ACTUATOR TRIMS)
+#      *MRCLEAN OR TVCINIT4 (TVCDAP INITIALIZATIONS)
+#      *SWITCHOVR +5 (CSM/LM V46 SWITCH-OVER)
+#      *EXRSTRT AND TVCEXECUTIVE PHASE POINTS 1 THRU 6
+#      *WAITLIST, IBNKCALL, POSTJUMP, ISWCALL
+#
+# OTHER INTERFACES....DOTVCON AND RCSDAPON (T5 BITS), ELRSKIP (CALLS IT)
+#
+# ERASABLE ININTIALIZATION REQUIRED....
+#
+#      *T5 BITS (1,0), TVCPHASE (-2,-1,0,1,2,3), TVCEXPHS (1 THRU 6)
+#      *TVC DAP VARIABLES
+#      *OPERATIONS PERFORMED BY REDOTVC ARE BASED ON THE ASSUMPTION THAT
+#	THE TVC DAPS ARE RUNNING NORMALLY
+#
+# OUTPUT....
+#
+#      *PITCH AND YAW TVC DAP COPYCYCLES COMPLETED IF INTERRUPTED
+#      *TVCEXECUTIVE COMPLETED IF INTERRUPTED
+#      *STROKE TEST TERMINATED IF INTERRUPTED
+#      *CSM/LM V46 SWITCH-OVER REPEATED IF INTERRUPTED
+#      *ACTUATOR TRIMS RE-ESTABLISHED (ACTUATORS BACK ON THE AIR)
+#      *TVC DAP INITIALIZATION AS REQUIRED
+#      *ALL TVC DAP OPERATIONS ON THE AIR
+#
+# DEBRIS....TVC TEMPORARIES IN EBANK6
+
+#Page 958
+
+		BANK	16
+		SETLOC	DAPROLL
+		BANK
+		EBANK=	TVCPHASE
+		COUNT*	$$/RSRT
+		
+REDOTVC		LXCH	BANKRUPT	# TVC RESTART PACKAGE
+		EXTEND
+		QXCH	QRUPT		# ("TCR" IN "FINCOPY")
+		
+EXECPHS		CCS	TVCEXPHS	# CHECK TVCEXECUTIVE PHASE
+		TCF	+2		#	MUST RESTART TVCEXECUTIVE
+		TCF	TVCDAPHS	#	NO NEED TO RESTART TVCEXECUTIVE
+		
+		CAF	NINE		# 9CS DELAY TO FORCE EXRSTRT TO OCCUR
+		TC	WAITLIST	#	BEFORE PITCHDAP, AFTER CMDSOUT
+		EBANK=	TVCEXPHS
+		2CADR	EXRSTRT
+
+TVCDAPHS	CS	OCT37776	# CHECK BITS 15 AND 1 OF TVCPHASE TO SEE
+		MASK	TVCPHASE	#	DAP RESTART LOCATION (-1,1,2,3)
+		CCS	A
+		TCF	FINCOPY		#	FINISH THE COPYCYCLE FIRST
+		TCF	ENABL1		#	JUST PREPARE THE OUTCOUNTERS AND GO
+		
+		CS	TVCPHASE	# TEST FOR TVCPHASE = -2
+		MASK	BIT2		#	(THIS INDICATES RESTART OCCURRED
+		EXTEND			#	 DURING CSM/LM V46 SWITCH-OVER)
+		BZF	TRIM/CMD	# NO. TVCPHASE = -1. RSTRT WAS IN TVCINIT
+		
+ENABL1		CAF	BIT8		# TVC ENABLE, FOLLOWED BY 40 MS (MIN) WAIT
+		AD	BIT11		#	SET BIT FOR OPTICS-DAC-ENABLE ALSO
+		EXTEND			#	(ENABL1 ENTERED FROM TVCDAPHS / FINCOPY)
+		WOR	CHAN12
+		CAF	TVCADDR		# WAIT, CALLING ENABL2 (BBCON THERE)
+		TS	T5LOC
+		CAF	TVCADDR +4	#	60 MS (TVCEXADR)
+		TS	TIME5
+		
+		TCF	RESUME
+		
+ENABL2		LXCH	BANKRUPT	# CONTINUE PREPARATION OF OUTCOUNTERS
+
+		CAF	BIT2		# OPTICS ERROR CNTR ENABLE, 4MS MIN WAIT
+		EXTEND
+		WOR	CHAN12
+# Page 959		
+		CAF	TVCADDR +2	# WAIT, CALLING CMDSOUT (BBCON THERE)
+		TS	T5LOC
+		CAF	OCT37776	# 	20MS
+		TS	TIME5
+		
+		TCF	NOQRSM
+		
+CMDSOUT		LXCH	BANKRUPT	# CONTNUE PREPARATION OF OUTCOUNTERS
+		EXTEND
+		QXCH	QRUPT
+		
+		CS	ZERO		# MOST RECENT ACTUATOR COMMANDS
+		AD	PCMD		#	(AVOID +0)
+		TS	TVCPITCH
+		CS	ZERO
+		AD	YCMD
+		TS	TVCYAW
+		
+		CAF	PRIO6		# RELEASE THE COUNTERS (BITS 11,12)
+		EXTEND
+		WOR	CHAN14
+		
+PHSCHK2		CCS	TVCPHASE	# CHECK TVCPHASE AGAIN
+		TCF	CHKSTRK
+		TCF	CHKSTRK
+		CCS	A		# A CONTAINS THE DIMINISHED ABSOLUTE OF
+		TC	+3		# TVCPHASE (-2 BECOMES +1. -1 BECOMES +0)
+		
+		TC	POSTJUMP	#	REPEAT TVC INITIALIZATION
+		CADR	MRCLEAN		#	(DO NOT RETURN)
+		
+	+3	TC	IBNKCALL	#	REPEAT CSM/LM V46 SWITCH-OVER
+		CADR	SWICHOVR +5	#	(RETURN TO CHECK FOR STROKE TEST)
+
+CHKSTRK		CCS	STROKER		# CHECK FOR STROKE TEST IN PROGRESS
+		TCF	TSTINITJ	# YES, KILL IT
+		TCF	+2		# NO, PROCEED
+		TCF	TSTINITJ	# YES, KILL IT
+		
+	+4	TC	POSTJUMP	#	IF POSITIVE OR ZERO, RESTART AT
+		CADR	TVCINIT4	#		TVCINIT4 (ZEROS TVCPHASE, AND
+					#		CALLS TVC DAPS VIA DAPINIT)
+FINCOPY		INDEX	TVCPHASE	# PICK UP THE APPROPRIATE COPYCYCLE
+		CAF	TVCCADR
+		TCR	ISWCALL		# RE-ENTER THE COPYCYCLE, RETURN AT END
+		TCF	ENABL1		# NOW PREPARE THE OUTCOUNTERS
+		
+TRIM/CMD	EXTEND			# TVCDAPON INITIALIZATION NOT COMPLETED,
+# Page 960
+		DCA	PACTOFF		#	EG. P,YCMD MAY NOT BE SET.  SET...
+		DXCH	PCMD
+		TCF	ENABL1		# NOW PREPARE THE OUTCOUNTERS
+		
+TSTINITJ	CAF	ZERO		# DISABLE STROKE TEST (-0 SHOWS PRIOR V68)
+		TS	STROKER		# (+0 MEANS NEW V68 REQUIRED FOR STARTUP)
+		
+		TCF	CHKSTRK +4
+		
+EXRSTRT		INDEX	TVCEXPHS	# TVCEXECUTIVE RESTARTS....GO TO
+		CAF	TVCEXADR	#	APPROPRIATE RESTART POINT
+		INDEX	A
+		TCF	0
+
+# Page 961
+# TVC RESTART TABLES.... ORDER IS REQUIRED.  HI-ORDER WORDS ONLY, OF 2CADRS, SINCE BBCON IS ALREADY THERE.
+
+TVCADDR		=	TVCCADR		# TABLE OF CADRS, UNUSED LOCS FOR GENADRS
+TVCCADR		GENADR	ENABL2		# (FOR T5 CALL, UNUSED TABLE LOC)
+	+1	CADR	PCOPY 	+1	# PITCH COPYCYCLE
+	+2	GENADR	CMDSOUT		# (FOR T5 CALL, UNUSED TABLE LOC)
+	+3	CADR	YCOPY 	+1	# YAW COPYCYCLE
+TVCEXADR	OCT	37772		# (UNUSED TABLE LOC, FILL WITH 60MS, T5)
+	+1	GENADR	EXECCOPY +1	# TVCEXECUTIVE RESTART POINTS (ORDERED)
+	+2	GENADR	1SHOTCHK
+	+3	GENADR	TEMPSET
+	+4	GENADR	CORSETUP
+	+5	GENADR	CORCOPY	+1
+	+6	GENADR	CNTRCOPY
+	
+
diff --git a/TVCROLLDAP.s b/TVCROLLDAP.s
new file mode 100644
index 0000000..160acc1
--- /dev/null
+++ b/TVCROLLDAP.s
@@ -0,0 +1,617 @@
+# Copyright:	Public domain.
+# Filename:	TVCROLLDAP.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:	984-998
+# Mod history:	2009-05-13 RSB	Adapted 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 984
+# PROGRAM NAME....TVC ROLL AUTOPILOT
+# LOG SECTION....TVCROLLDAP			SUBROUTINE....DAPCSM
+# MOD BY SCHLUNDT				21 OCTOBER 1968
+#
+# FUNCTIONAL DESCRIPTION....
+#
+#      *AN ADAPTATION OF THE LEM P-AXIS CONTROLLER
+#      *MAINTAIN OGA WITHIN 5 DEG DEADBND OF OGAD, WHERE OGAD = OGA AS SEEN
+#	BY IGNOVER (P40)
+#      *MAINTAIN OGA RATE LESS THAN 0.1 DEG/SEC LIMIT CYCLE RATE
+#      *SWITCHING LOGIC IN PHASE PLANE.... SEE GSOP CHAPTER 3
+#      *USES T6 CLOCK TO TIME JET FIRINGS.
+#      *MAXIMUM JET FIRING TIME = 2.56 SECONDS, LIMITED TO 2.5 IF GREATER
+#      *MINIMUM JET FIRING TIME = 15 MS
+#      *JET PAIRS FIRE ALTERNATELY
+#      *AT LEAST 1/2 SECOND DELAY BEFORE A NEW JET PAIR IS FIRED
+#      *JET FIRINGS MAY NOT BE EXTENDED, ONLY SHORTENED, WHEN RE-EVALUATION
+#	OF A JET FIRING TIME IS MADE ON A LATER PASS
+#
+# CALLING SEQUENCE....
+#
+#      *ROLLDAP CALL VIA WAITLIST, IN PARTICULAR BY TVCEXEC (EVERY 1/2 SEC)
+#	WITH A 3CS DELAY TO ALLOW FREE TIME FOR OTHER RUPTS (DWNRPT, ETC.)
+#
+# NORMAL EXIT MODES.... ENDOFJOB
+#
+# ALARM OR ABORT EXIT MODES.... NONE
+#
+# SUBROUTINES CALLED.....NONE
+#
+# OTHER INTERFACES....
+#
+#      *TVCEXEC SETS UP ROLLDAP TASK EVERY 1/2 SECOND AND UPDATES 1/CONACC
+#	EVERY 10 SECONDS (VIA MASSPROP AND S40.15)
+#      *RESTARTS SUSPEND ROLL DAP COMPUTATIONS UNTIL THE NEXT 1/2 SEC
+#	SAMPLE PERIOD.  (THE PART OF TVCEXECUTIVE THAT CALLS ROLL DAP IS
+#	NOT RESTARTED.)  THE OGAD FROM IGNITION IS MAINTAINED.
+#
+# ERASABLE INITIALIZATION REQUIRED
+#
+#      *1/CONACC				(S40.15)
+#      *OGAD					(CDUX, AT IGNITION)
+#      *OGANOW					(CDUX AT TVCINIT4 AND TVCEXECUTIVE)
+#      *OGAPAST					(OGANOW AT TVCEXECUTIVE)
+#      *ROLLFIRE = TEMREG = ROLLWORD = 0	(MRCLEAN LOOP IN TVCDAPON)
+#
+# OUTPUT....
+#
+#      *ROLL JET PAIR FIRINGS
+#
+# Page 985
+# DEBRIS.... MISCELLANEOUS, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY
+
+# Page 986
+# SOME NOTES ON THE ROLL AUTOPILOT, AND IN PARTICULAR, ON ITS SWITCHING
+# LOGIC.  SEE SECTION THREE OF THE GSOP (SUNDISK/COLOSSUS) FOR DETAILS.
+
+# SWITCHING LOGIC IN THE PHASE PLANE....
+#
+#                              OGARATE
+#                                 *
+#                                 *
+#  * * * * * * * * * * *          *
+#                                 *     (REGION 1, SEE TEXT BELOW)
+#                            *    *
+#                                 *
+# * * * * * * *     (COAST)       *     ...PARABOLA (SWITCHING = CONTROL)
+#               *                 *    .
+#                 *               *   *
+#                   *             *                (FIRE NEG ROLL JETS)
+#                     *           *      *
+#     (-DB,+LMCRATE)....*         *
+#                       *         *        *
+#                       *         *			         OGAERROR
+# ************************************************************************
+#                                 *         *                (-AK, OGAERR)
+#                        *        *         *      (REGION 6-PRIME)
+#                                 *         *      (SEE TEXT BELOW)
+#                          *      *           *
+#                                 *             *     ...STRAIGHT LINE
+#    (FIRE POS ROLL JETS)     *   *               *  .
+#                                 *   (COAST)       *
+#                                 *                   * * * * * * * * * *
+#                                 *                         -MINLIM
+#                                 *    *
+#                                 *
+#                                 *          * * * * * * * * * * * * * * *
+#                                 *                        -MAXLIM
+#                                 *
+#                                 *
+#
+# SWITCHING PARABOLAS ARE CONTROL PARABOLAS, THUS REQUIRING KNOWLEDGE OF
+#	CONTROL ACCELERATION CONACC, OR ITS RECIPROCAL, 1/CONACC, THE TVC
+#	ROLL DAP GAIN  (SEE TVCEXECUTIVE VARIABLE GAIN PACKAGE).  JET
+#	FIRING TIME IS SIMPLY THAT REQUIRED TO ACHIEVE THE DESIRED OGARATE,
+#	SUBJECT TO TEH LIMITATIONS DISCUSSED UNDER FUNCTIONAL DESCRIPTION,
+#	ABOVE.
+#
+# THE THREE CONTROL REGIONS  (+, -, AND ZERO TORQUE) ARE COMPRISED OF
+#	TWELVE SUBSET REGIONS  ( 1...6, AND THE CORRESPONDING 1-PRIME...
+#	5-PRIME )  SEE SECTION 3 OF THE GSOP  (SUNDISK OR COLOSSUS)
+# Page 987
+#
+# GIVEN THE OPERATING POINT NOT IN THE COAST REGION, THE DESIRED OGARATE
+#	IS AT THE POINT OF PENETRATION OF THE COAST REGION BY THE CONTROL
+#	PARABOLA WHICH PASSES THROUGH THE OPERATING POINT.  FOR REGION 3
+#	DESIRED OGARATE IS SIMPLY +-MAXLIM.  FOR REGIONS 1 OR 6 THE SOLUTION
+#	TO A QUADRATIC IS REQUIRED (THE PENETRATION IS ALONG THE STRAIGHT
+#	LINE OR MINLIM BOUNDRY SWITCH LINES).  AN APPROXIMATION IS MADE
+#	INSTEAD.  CONSIDER AN OPERATING POINT IN REGION 6'.  PASS A TANGENT TO
+#	THE CONTROL PARABOLA THROUGH THE OPERATING POINT, AND FIND ITS
+#	INTERSECTION WITH THE STRAIGHT LINE SECTION OF THE SWITCH CURVE...
+#	THE INTERSECTION DEFINES THE DESIRED OGARATE.  IF THE OPERATING POINT IS
+#	CLOSE TO THE SWITCH LINE, THE APPROXIMATION IS QUITE GOOD (INDEED
+#	THE APPROXIMATE AND QUADRATIC SOLUTIONS CONVERGE IN THE LIMIT AS
+#	THE SWITCH LINE IS APPROACHED).  IF THE OPERATING POINT IS NOT CLOSE
+#	TO THE SWITCH LINE, THE APPROXIMATE SOLUTION GIVES VALID TREND
+#	INFORMATION (DIRECTION OF DESIRED OGARATE) AT LEAST.  THE 
+#	RE-EVALUATION OF DESIRED OGARATE IN SUBSEQUENT ROLL DAP PASSES (1/2
+#	SECOND INTERVALS) WILL BENEFIT FROM THE CONVERGENT NATURE OF THE
+#	APPROXIMATION.
+#
+# FOR LARGE OGAERROR THE TANGENT INTERSECTS +-MINLIM SWITCH BOUNDRY BEFORE
+#	INTERSECTING THE STRAIGHT LINE SWITCH.  HOWEVER THE MINLIM IS
+#	IGNORED IN COMPUTING THE FIRING TIME, SO THAT THE EXTENSION (INTO
+#	THE COAST REGION) OF THE STRAIGHT LINE SWITCH IS WHAT IS FIRED TO.
+#	IF THE ROLL DAP FINDS ITSELF IN THE COAST REGION BEFORE REACHING
+#	THE DESIRED INTERSECTION (I.E., IN THE REGION BETWEEN THE MINLIM
+#	AND THE STRAIGHT LINE SWITCH) IT WILL EXHIBIT NORMAL COAST-REGION
+#	BEHAVIOR AND TURN OFF THE JETS.  THE PURPOSE OF THIS FIRING POLICY
+#	IS TO MAINTAIN STATIC ROLL STABILITY IN THE EVENT OF A JET
+#	FAILED-ON.
+#
+# WHEN THE OPERATING POINT IS IN REGION 1 THE SAME APPROXIMATION IS
+#	MADE, BUT AT AN ARTIFICIALLY-CREATED OR DUMMY OPERATING POINT,
+#	DEFINED BY:  OGAERROR = INTERSECTION OF CONTROL PARABOLA AND
+#	OGAERROR AXIS, OGARATE = +-LMCRATE WHERE SIGN IS OPPOSITE THAT OF
+#	REAL OPERATING POINT RATE.  WHEN THE OPERATING POINT HAS PASSED
+#	FROM REGION 1 TO REGION 6', THE DUMMY POINT IS NO LONGER REQUIRED,
+#	AND THE SOLUTION REVERTS TO THAT OF A REGULAR REGION 6' POINT.
+#
+# EQUATION FOR SWITCHING PARABOLA (SEE FIGURE ABOVE)....
+#				    2
+#	SOGAERROR = (DB - (SOGARATE) (1/CONACC)/2) SGN(SOGARATE)
+#
+# EQUATION FOR SWITCHING STRAIGHT LINE SEGMENT....
+#
+#	SOGARATE = -(-SLOPE)(SOGAERROR) - SGN(SOGARATE) INTERCEP
+#
+#		WHERE  INTERCEP = DB(-SLOPE) - LMCRATE
+# Page 988
+#
+# EQUATION FOR INTERSECTION, CONTROL PARABOLA, AND STRAIGHT SWITCH LINE....
+#
+#	DOGADOT = NUM/DEN, WHERE
+#				       2
+#		NUM = (-SLOPE)(OGARATE) (1/CONACC)
+#		      +SGN(DELOGA)(-SLOPE)(OGAERROR - SGN(DELOGA)(DB))
+#		      +LMCRATE
+#
+#		DEN = (-SLOPE)(LMCRATE)(1/CONACC) = SGN(DELOGA)
+#						  2
+#		DELOGA = OGAERROR - (DB - (OGADOT) (1/CONACC)/2)SGN(OGARATE)
+#
+# FOR REGIONS 6 AND 6-PRIME, USE ACTUAL OPERATING POINT  (OGA, OGARATE)
+#	FOR OGAERROR AND OGARATE IN THE INTERSECTION EQUATIONS ABOVE.
+#	FOR REGIONS 1 AND 1-PRIME USE DUMMY OPERATING POINT FOR OGAERROR
+#	AND OGARATE, WHERE THE DUMMY POINT IS GIVEN BY....
+#
+#		OGAERROR = DELOGA + DB SGN(OGARATE)
+#
+#		OGARATE = -LMCRATE SGN(OGARATE)
+#
+# NOTE, OGAERROR = OGA - OGAD  USES DUMMY REGISTER  OGA  IN ROLL DAP CODING
+#	ALSO, AT POINT WHERE DOGADOT IS COMPUTED, REGISTER DELOGA IS USED
+#	AS A DUMMY REGISTER FOR THE OGAERROR IN THE NUM EQUATION ABOVE.
+# Page 989
+
+# ROLLDAP CODING....
+
+		SETLOC	DAPROLL
+		BANK
+		EBANK=	OGANOW
+		COUNT*	$$/ROLL
+ROLLDAP		CAE	OGANOW		# OGA RATE ESTIMATOR...SIMPLE FIRST-ORDER
+		EXTEND			#	DIFFERENCE (SAMPLE TIME = 1/2 SEC)
+		MSU	OGAPAST
+		EXTEND
+		MP	BIT5
+		LXCH	A
+		TS	OGARATE		# SC.AT B-4 REV/SEC
+		
+# COMPUTATIONS WHICH FOLLOW USE OGA FOR OGAERR (SAME REGISTER)
+# EXAMINE DURATION OF LAST ROLL FIRING IF JETS ARE NOW ON.
+
+DURATION	CA	ROLLFIRE	# SAME SGN AS PRESENT TORQ,MAGN=POSMAX
+		EXTEND
+		BZF	+2		# ROLL JETS ARE NOW OFF.
+		TCF	ROLLOGIC	# ENTER LOGIC, JETS NOW ON.
+		
+		CAE	TEMREG		# EXAMINE LAST FIRING INTERVAL
+		EXTEND			# IF POSITIVE, DON'T FIRE
+		BZF	ROLLOGIC	# ENTER LOGIC, JETS NOW OFF.
+		
+		CAF	ZERO		# JETS HAVE NOT BEEN OFF FOR 1/2 SEC. WAIT
+		TS	TEMREG		# RESET TEMREG
+WAIT1/2		TCF	TASKOVER	# EXIT ROLL DAP
+
+# COMPUTE DB-(1/2 CONACC) (OGARATE)SQ  (1/2 IN THE SCALING)
+
+ROLLOGIC	CS	OGARATE		# SCALED AT 2(-4) REV/SEC
+		EXTEND
+		MP	1/CONACC	# SCALED AT 2(+9) SEC SQ /REV
+		EXTEND
+		MP	OGARATE
+		AD	DB		# SCALED AT 2(+0) REV
+		TS	TEMREG		# QUANTITY SCALED AT 2(+0) REV.
+		
+# GET SIGN OF OGARATE
+
+		CA	OGARATE
+		EXTEND
+		BZMF	+3		# LET SGN(0) BE NEGATIVE
+		CA	BIT1
+		TCF	+2
+		CS	BIT1
+		TS	SGNRT		# + OR -  2(-14)
+	
+# Page 990			
+# CALCULATE DISTANCE FROM SWITCH PARABOLA,DELOGA
+		EXTEND
+		MP	TEMREG		# SGN(OGARATE) TEMREG NOW IN L	
+		CS	L	
+		AD	OGA		# SCALED AT 2(+0) REV
+DELOGAC		TS	DELOGA		# SC.AT B+0 REV, PLUS TO RIGHT OF C-PARAB	
+
+# EXAMINE SGN(DELOGA) AND CREATE CA OR CS INSTR. DEPENDING UPON SIGN.
+
+		EXTEND
+		BZMF	+3
+		CAF	PRIO30		# = CA (30000)
+		TCF	+2
+		CAF	BIT15		# = CS (40000)
+		TS	I
+		
+		INDEX	I		# TSET ON  I SGN(OGARATE)
+		0	SGNRT		# CA OR CS
+		COM
+		EXTEND
+REG1TST		BZMF	ROLLON		# IF REGION 1 (DELOGA OGARATE SAME SIGN)
+
+# NO JET FIRE YET.  TEST FOR MAX OGARATE.
+
+		INDEX	I
+		0	OGARATE		# CA OR CS...BOTH MUST BE NEG. HERE
+		TS	IOGARATE	# I.E., I OGARATE
+		AD	MAXLIM		# SCALED AT 2(-4) REV/SEC
+		EXTEND
+REG3TST		BZMF	RATELIM		# IF REGION 3 (RATES TOO HIGH, FIRE JETS)
+
+# COMPUTATION OF I((-SLOPE)OGA + OGARATE) - INTERCEPT:  NOTE THAT STR. LINE
+# SWITCH SLOPE IS (SLOPE) DEG/SEC/DEG, A NEG. QUANTITY
+
+		CA	OGARATE
+		EXTEND
+		MP	BIT14
+		TS	TEMREG
+		CA	OGA
+		EXTEND
+		MP	-SLOPE
+		DDOUBL
+		DDOUBL
+		DDOUBL			# (OGA ERROR MUST BE LESS THAN +-225 DEG)
+		AD	TEMREG
+		
+		INDEX	I
+		0	A		# I((-SLOPE)OGA+OGARATE) AT 2(-3)REV/SEC
+		COM
+# Page 991		
+		AD	INTERCEP	# SCALED AT 2(-3) REV.
+		COM
+		EXTEND
+REG2TST		BZMF	NOROLL		# IP REGION 2 (COAST SIDE OF STRT LINE)
+
+# CHECK TO SEE IF OGARATE IS ABOVE MINLIM
+
+		CA	IOGARATE	# ALWAYS NEGATIVE
+		AD	MINLIM		# SCALED AT 2(-4) REV/SEC.
+		EXTEND
+REG4TST		BZMF	NOROLL		# IF REGION 4 (COAST SIDE OF MINLIM)
+
+# ALL AREAS CHECKED EXCEPT LAST AREA...NO FIRE IN THIS SMALL SEGMENT
+
+		INDEX	I
+		0	OGA
+		COM
+		AD	DB
+		COM
+		EXTEND
+REG5TST		BZMF	NOROLL		# IF REGION 5 (COAST SIDE OF DB)
+
+# JETS MUST FIRE NOW.  OGARATE IS NEG. (OR VICE VERSA).  USE DIRECT STR. LINE.
+# DELOGA AND DELOGART ARE USED AS DUMMY VARIABLES IN THE SOLUTION OF A
+# STRAIGHT LINE APPROXIMATION TO A QUADRATIC SOLUTION OF THE INTERSECTION
+# OF THE CONTROL PARABOLA AND THE STRAIGHT-LINE SWITCH LINE.  THE STRAIGHT
+# LINE IS THE TANGENT TO THE CONTROL PARABOLA AT THE OPERATING POINT.  (FOR
+# OPERATING POINTS IN REGIONS 6 AND 6')
+
+REGION6		CAE	OGA		# USE ACTUAL OPERATING POINT FOR TANGENT
+		TS	DELOGA		# ACTUAL STATE
+		CA	OGARATE
+		TS	DELOGART	# ACTUAL STATE, I.E., DEL OGARATE
+		TCF	ONROLL
+		
+# JETS ALSO FIRE FROM HERE EXCEPT OGARATE IS POS (VICE VERSA), USE INDIRECT
+# STRAIGHT LINE ESTABLISHED BY TANGENT TO A CONTROL PARABOLA AT  ((DELOGA
+# + DB SGN(DELOGA) ), -LMCRATE SGN(DELOGA) )	(THIS IS THE DUMMY
+# OPERATING POINT FOR OPERATING POINTS IN REGIONS 1 AND 1')
+
+ROLLON		INDEX	I
+		0	DB
+		ADS	DELOGA		# DELOGA WAS DIST. FROM SWITCH PARABOLA
+		
+		CS	LMCRATE		# LIMIT CYCLE RATE AT 2(-4) REV/SEC
+		INDEX	I
+		0	A
+		TS	DELOGART	# EVALUATE STATE FOR INDIRECT LINE.
+
+# Page 992
+# SOLVE STRAIGHT LINES SIMULTANEOUSLY TO OBTAIN DESIRED OGARATE.
+
+ONROLL		EXTEND			# DELOGART IN ACC. ON ARRIVAL
+		MP	1/CONACC
+		DOUBLE
+		EXTEND
+		MP	-SLOPE
+		TS	TEMREG		# 2(-SLOPE)RATE /CONACC
+		EXTEND
+		MP	DELOGART
+		TS	DELOGART	# 2(-SLOPE)(RATESQ)/CONACC
+		CS	BIT11
+		INDEX	I
+		0	A
+RATEDEN		ADS	TEMREG		# DENOMINATOR COMPLETED
+
+		INDEX	I
+		0	DELOGA
+		COM
+		AD	DB
+		COM
+		EXTEND
+		MP	-SLOPE
+		ADS	DELOGART
+		CA	LMCRATE
+		EXTEND
+		MP	BIT11
+RATENUM		AD	DELOGART	# NUMERATOR COMPLETED
+
+		XCH	L		# PLACE NUMERATOR IN L FOR OVERFL.  CHECK
+		CA	ZERO
+		EXTEND
+		DV	TEMREG		# OVERFLOW, IF ANYTHING, NOW APPEARS IN A
+		EXTEND
+		BZF	DVOK		# NO OVERFLOW....(0,L)/TEMREG = 0,L
+		
+MINLIMAP	CCS	A
+		CAF	POSMAX		# 	POSITIVE OVERFLOW
+		TCF	ROLLSET
+		CS	POSMAX		#	NEGATIVE OVERFLOW
+		TCF	ROLLSET
+		
+DVOK		LXCH	A		# PUT NUMERATOR BACK INTO A, 0 INTO L
+		EXTEND
+		DV	TEMREG		# RESULT OF DIVISION IS DESIRED OGARATE
+		TCF	ROLLSET		#	(SCALED AT B-4 REV/SEC)
+		
+RATELIM		CS	MAXLIM
+		INDEX	I
+# Page 993
+		0	A		# IF I = CA, DESIRED RATE IS  -MAXLIM
+		
+# COMPUTE JET FIRE TIME, BASED ON DESIRED RATE MINUS PRESENT RATE
+
+ROLLSET		TS	TEMREG		# STORE DESIRED OGARATE (SCALED B-4)
+		EXTEND
+		SU	OGARATE		# RATE DIFF. SCALED AT 2(-4) REV/SEC
+		TS	TEMREG		#	OVERFLOW PROTECT
+		TCF	+3		#	    "       "
+		INDEX	A		#           "       "
+		CS	LIMITS		#	    "       "
+		EXTEND
+		MP	T6SCALE		# T6SCALE = 8/10.24
+		EXTEND
+		MP	1/CONACC	# SCALED AT B+9 SECSQ/REV (MAX < .60)
+		DDOUBL
+		DDOUBL
+		TS	TEMREG		#	OVERFLOW PROTECT
+		TCF	+3		#	    "	    "
+		INDEX	A		#   	    "	    "
+		CS	LIMITS		# 	    " 	    "
+		TS	TEMREG		# JET FIRE TIME AT 625 MICROSEC/BIT
+		EXTEND			# POS MEANS POSITIVE ROLL TORQUE.
+		BZF	NOROLL
+		
+# JET FIRE TIME IS NZ, TEST FOR JETS NOW ON.
+
+		CAE	TEMREG		# DESIRED CHANGE IN OGARATE
+		EXTEND			
+		MP	ROLLFIRE	# (SGN OF TORQUE: ZERO IF JETS NOW OFF)
+		CCS	A
+		TCF	MOREROLL	# CONTINUE FIRING WITH PRESENT POLARITY
+		TCF	NEWROLL		# START NEW FIRING NOW, PLUS
+		TCF	NOROLL		# TERMINATE OLD FIRING, NEW SIGN REQUESTED
+		TCF	NEWROLL		# START NEW FIRING NOW, MINUS
+		
+# CONTINUE PRESENT FIRING
+
+MOREROLL	CAF	ZERO
+		TS	I		# USE TEMP. AS MOREROLL SWITCH
+		TCF	MAXTFIRE
+		
+# START NEW FIRING BUT CHECK IF GREATER THAN MIN FIRE TIME.
+
+NEWROLL		CCS	TEMREG		# CALL THIS T6FIRE
+		AD	ONE
+		TCF	+2
+		AD	ONE
+		COM			# -MAG(T6FIRE)
+		AD	TMINFIRE	# TMINFIRE-MAG(T6FIRE)
+# Page 994		
+		COM
+		EXTEND
+MINTST		BZMF	NOROLL		# IF NOT GREATER THAN TMINFIRE (NEW FIRE)
+
+# PROCEED WITH NEW FIRING BUT NOT LONGER THAN TMAXFIRE
+
+MAXTFIRE	CA	TEMREG
+		EXTEND
+		MP	1/TMXFIR	# I.E., 1/TMAXFIRE
+		EXTEND
+MAXTST		BZF	NOMXFIRE	# IF LESS THAN TMAXFIRE
+
+		CCS	A
+		CAF	TMAXFIRE	# USE MAXIMUM
+		TCF	+2
+		CS	TMAXFIRE	# USE MAXIMUM
+		TS	TEMREG
+
+# SET UP SIGN OF REQUIRED TORQUE
+
+NOMXFIRE	CCS	TEMREG		# FOR TORQUE SIGN
+		CA	POSMAX		# POSITIVE TORQUE REQUIRED
+		TCF	+2
+		CA	NEGMAX		# NEGATIVE TORQUE REQUIRED
+		TS	ROLLFIRE	# SET ROLLFIRE FOR + OR - TORQUE
+		
+		COM			# COMPLEMENT... POS. FOR NEG. TORQUE
+		EXTEND
+		BZMF	+3		# POSITIVE TORQUE REQUIRED
+		CS	TEMREG
+		TS	TEMREG
+		
+FIRELOOK	CA	I		# IS IT MOREROLL
+		EXTEND
+		BZF	FIREPLUG	# YES
+		TCF	JETROLL		# MAG(T6FIRE) NOW IN TEMREG
+		
+FIREPLUG	CAE	TIME6		# CHECK FOR EXTENDED FIRING
+		EXTEND
+		SU	TEMREG
+		EXTEND
+EXTENTST	BZMF	TASKOVER	# IF EXTENSION WANTED, DON'T, EXIT ROLL DAP
+		TCF	JETROLL
+		
+NOROLL		CS	ZERO		# COAST....(NEG ZERO FOR TIME6)
+		TS	ROLLFIRE	# NOTE, JETS CAN FIRE NEXT PASS
+		TS	TEMREG
+		
+JETROLL		EXTEND
+		DCA	NOROL1T6
+# Page 995		
+		DXCH	T6LOC
+		CA	TEMREG		# ENTER JET FIRING TIME
+		TS	TIME6
+		
+		CA	I		# I=0 IF MOREROLL, KEEP SAME JETS ON
+		EXTEND
+SAMEJETS	BZF	TASKOVER	# IF JETS ON KEEP SAME JETS.  EXIT ROLL DAP
+
+		CCS	ROLLFIRE
+		TCF	+TORQUE
+		TCF	T6ENABL
+		TCF	-TORQUE
+		TCF	T6ENABL
+		
+# PROCEED WITH + TORQUE
+
++TORQUE		CA	ROLLWORD	# WHAT WAS THE LAST +TORQUE COMBINATION
+		MASK	BIT1		# WAS IT NO.9-11
+		EXTEND
+		BZF	NO.9-11		# NOT 9-11, SO USE IT THIS TIME
+
+NO.13-15	CS	BIT1
+		MASK	ROLLWORD
+		TS	ROLLWORD	# CHANGE BIT 1 TO ZERO
+		CAF	+ROLL2
+		EXTEND
+		WRITE	CHAN6
+		TCF	T6ENABL
+	
+NO.9-11		CAF	BIT1		# 1ST + JETS TO FIRE (MRCLEAN OS ROLLWORD)
+		ADS	ROLLWORD	# CHANGE BIT 1 TO ONE
+		CAF	+ROLL1
+		EXTEND
+		WRITE	CHAN6
+		TCF	T6ENABL
+		
+-TORQUE		CA	ROLLWORD	# WHAT WAS LAST -TORQUE COMBINATION
+		MASK	BIT2		# WAS IT NO.12-10
+		EXTEND
+		BZF	NO.12-10	# NOT 12-10, SO USE IT THIS TIME
+		
+NO.16-14	CS	BIT2
+		MASK	ROLLWORD
+		TS	ROLLWORD	# CHANGE BIT 2 TO ZERO
+		CAF	-ROLL2
+		EXTEND
+		WRITE	CHAN6
+		TCF	T6ENABL
+		
+NO.12-10	CAF	BIT2		# 1ST -JETS TO FIRE (MRCLEAN OS ROLLWORD)
+# Page 996
+		ADS	ROLLWORD	# CHANGE BIT 2 TO ONE
+		CAF	-ROLL1
+		EXTEND
+		WRITE	CHAN6
+		
+T6ENABL		CAF	BIT15
+		EXTEND
+		WOR	CHAN13
+RDAPEND		TCF	TASKOVER	# EXIT ROLL DAP
+
+# Page 997
+# THIS T6 TASK SHUTS OFF ALL ROLL JETS
+
+NOROLL1		LXCH	BANKRUPT	# SHUT OFF ALL (ROLL) JETS, (A T6 TASK
+		CAF	ZERO		#	CALLED BY "JETROLL")
+		TS	ROLLFIRE	# ZERO INDICATES JETS NOW OFF
+		EXTEND
+KILLJETS	WRITE	CHAN6
+		TCF	NOQRSM
+
+# Page 998
+# CONSTANTS FOR ROLL AUTOPILOT....
+
+		EBANK=	BZERO
+NOROL1T6	2CADR	NOROLL1
+
+DB		DEC	.01388889	# DEAD BAND (5 DEG), SC.AT B+0 REV
+
+-SLOPE		DEC	0.2		# -SWITCHLINE SLOPE(0.2 PER SEC) SC.AT B+0
+					#	PER SEC
+LMCRATE		DEC	.00027778 B+4	# LIMIT CYCLE RATE (0.1 DEG/SEC) SC.AT
+					#	B-4 REV/SEC
+INTERCEP	DEC	.0025 B+3	# DB(-SLOPE) - LMCRATE, SC.AT B-3 REV/SC
+
+MINLIM		DEC	.00277778 B+4	# RATELIM,MIN (1DEG/SEC), SC.AT B-4 REV/SC
+
+1/MINLIM	DEC	360 B-18	# RECIPROCAL THEREOF, SHIFTED 14 RIGHT
+
+MAXLIM		DEC	.01388889 B+4	# RATELIM,MAX (5DEG/SEC), SC.AT B-4 REV/SC
+
+# The following two were B+4.---RSB 2009.
+TMINFIRE	DEC	1.5 B-10	# 15 MS. (14MIN), SC.AT 16 BITS/CS
+
+TMAXFIRE	DEC	250 B-10	# 2.5 SEC, SC.AT 16 BITS/CS
+
+1/TMXFIR	=	BIT3		# RECIPROCAL THEREOF, SHIFTED 14 RIGHT,
+					#	ROUNDS TO OCT00004, SO ALLOWS 2.56
+					#	SEC FIRINGS BEFORE APPLYING LIMIT
+T6SCALE		=	PRIO31		# (B+3) (16 BITS/CS)  (100CS/SEC)
+
++ROLL1		= 	FIVE		# ONBITS FOR JETS 9 AND 11
++ROLL2		=	OCT120		# ONBITS FOR JETS 13 AND 15
+-ROLL1		=	TEN		# ONBITS FOR JETS 12 AND 10
+-ROLL2		OCT	240		# ONBITS FOR JETS 16 AND 14
+
diff --git a/TVCSTROKETEST.s b/TVCSTROKETEST.s
new file mode 100644
index 0000000..1844343
--- /dev/null
+++ b/TVCSTROKETEST.s
@@ -0,0 +1,261 @@
+# Copyright:	Public domain.
+# Filename:	TVCSTROKETEST.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:	979-983
+# Mod history:	2009-05-13 RSB	Adapted 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 979
+# NAME		STROKE TEST PACKAGE		(INCLUDING INITIALIZATION PACKAGE)
+# LOG SECTION...TVCSTROKETEST			SUBROUTINE...DAPCSM
+# MODIFIED BY SCHLUNDT				21 OCTOBER 1968
+#
+# FUNCTIONAL DESCRIPTION....
+#	STROKE TEST PACKAGE GENERATES A WAVEFORM DESIGNED TO EXCITE BENDING
+#	STRKTSTI (STROKE TEST INITIALIZATION) IS CALLED AS A JOB BY VB68.
+#		IT INITIALIZES ALL ERASABLES REQD FOR A STROKE TEST, AND
+#		THEN TESTS FOR CSM/LM (BIT 13 OF DAPDATR1). IF CSM/LM,
+#		IN EITHER HIGH OR LOW-BANDWIDTH MODE, THE TEST IS STARTED
+#		IMMEDIATELY.  IF NOT CSM/LM, PROGRAM EXITS WITH NO ACTION.
+#	HACK (STROKE TEST) GENERATES THE WAVEFORM BY DUMPING PULSE BURSTS
+#		OF PROPER SIGN AND IN PROPER SEQUENCE DIRECTLY INTO
+#		TVCPITCH, WORKING IN CONJUNCITON WITH BOTH PITCH AND YAW
+#		TVC DAPS, WITH INTERMEDIAT WAITLIST CALLS.  NOTE, HOWEVER
+#		THAT THE STROKE TEST IS PERFORMED ONLY IN THE PITCH AXIS.
+#		AN EXAMPLE WAVEFORM IS GIVEN BELOW, TO DEMONSTRATE STROKE-
+#		TEST PARAMETER SELECTION.
+#	RESTARTS CAUSE TEST TO BE TERMINATED.  ANOTHER V68 REQD IF TEST
+#		IS TO BE RE-RUN.
+#	PULSE BURST SIZE IS PAD-LOADED (ESTROKER) SO THAT AMPLITUDE OF
+#		WAVEFORM CAN BE CHANGED.  THERE ARE TEN PULSE BURSTS IN
+#		THE HALF-AMPLITUDE OF THE FIRST FREQUENCY SET IN THE
+#		STANDARD WAVEFORM.  AMPLITUDE IS 10(ESTROKER)(1/42.15),
+#		NOMINALLY 50/42.15 = 1.185 DEG
+#
+# CALLING SEQUENCE....
+#	EXTENDED VERB 68 SETS UP STRKTSTI JOB
+#	PITCH AND YAW TVCDAPS, FINDING STROKER NON-ZERO, DO A "TC HACK"
+#	AN INTERNALLY-GENERATED WAITLIST CALL ENTERS AT "HACKWLST"
+#
+# NORMAL EXIT MODES....
+#	TC BUNKER ("Q" IF ENTRY FROM DAP, "TCTSKOVR" IF FROM WAITLIST) LIST
+#
+# SUBROUTINES CALLED....
+#	WAITLIST
+#
+# ALARM OR ABORT EXIT MODES....
+#	NONE
+#
+# ERASABLE INITIALIZATION REQUIRED....
+#	ESTROKER (PAD-LOAD)
+#	STROKER, CADDY, REVS, CARD, N
+#
+# OUTPUT....
+#	STRKTSTI...INITIALIZATION FOR STROKE TEST
+#	HACK, HACKWLST...PULSE BURSTS INTO TVCPITCH VIA "ADS"
+#			  RESETS STROKER = +0 WHEN TEST COMPLETED
+#
+# DEBRIS....
+#	N = CADDY = +0, CARD = -0, REVS = -1
+#	BUNKER
+# Page 980
+#
+# EXAMPLE STROKE TEST WAVE FORM, DEMONSTRATING PARAMETER SELECTION
+
+# NOTE....THIS IS NOT THE OFFICIAL WAVEFORM....
+#
+#        **              **
+#        **              **
+#        **              **		EXAMPLE WAVEFORM (EACH * REPRESENTS
+#       *  *            *  *		  (85.41 ARCSEC OF ACTUATOR CMD)
+#       *  *            *  *
+#       *  *            *  *
+#      *    *          *    *          **      **      **      **      **
+#      *    *          *    *          **      **      **      **      **
+#      *    *          *    *          **      **      **      **      **
+#     *      *        *      *        *  *    *  *    *  *    *  *    *  *    **  **  **  **  **
+#     *      *        *      *        *  *    *  *    *  *    *  *    *  *    **  **  **  **  **
+#     *      *        *      *        *  *    *  *    *  *    *  *    *  *    **  **  **  **  **
+# ----------------------------------------------------------------------------------------------------
+#             *      *        *      *    *  *    *  *    *  *    *  *    *  *  **  **  **  **  **
+#             *      *        *      *    *  *    *  *    *  *    *  *    *  *  **  **  **  **  **
+#             *      *        *      *    *  *    *  *    *  *    *  *    *  *  **  **  **  **  **
+#              *    *          *    *      **      **      **      **      **
+#              *    *          *    *      **      **      **      **      **
+#              *    *          *    *      **      **      **      **      **
+#               *  *            *  *
+#               *  *            *  *
+#               *  *            *  *
+#                **              **
+#                **              **
+#                **              **
+#
+# FOR THIS (UNOFFICIAL, EXAMPLE) WAVEFORM, THE REQUIRED PARAMETERS ARE AS FOLLOWS....
+#
+#	FCARD	 = +3		(NUMBER OF SETS)
+#	ESTROKER = +3		(PULSE BURST SIZE, SC.AT 85.41 ARCSEC/BIT)
+#
+#	SET1:
+#		FREVS	= +3	(NUMBER REVERSALS MINUS 1)
+#		FCADDY	= +4	(NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
+#	SET2:
+#		FCARD1	= +9	(NUMBER REVERSALS MINUS 1)
+#		FCARD4	= +2	(NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
+#	SET3:
+#		FCARD2	= +9	(NUMBER REVERSALS MINUS 1)
+#		FCARD5	= +1	(NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
+#	SET4:
+#		FCARD3	= +0	(NUMBER OF REVERSALS MINUS 1)
+#		FCARD6	= +0	(NUMBER OF PULSE BURSTS IN 1/2 AMPLUTUDE)
+
+# Page 981
+# STROKE TEST INITIALIZATION PACKAGE (AS A JOB, FROM VERB 68)
+
+		BANK	17
+		SETLOC	DAPS2
+		BANK
+		
+		COUNT*	$$/STRK
+		EBANK=	CADDY
+		
+STRKTSTI	TCR	TSTINIT		# STROKE TEST INITIALIZATION PKG (CALLED
+					# AS A JOB BY VERB68)
+					
+STRKCHK		INHINT
+
+		CAE	DAPDATR1	# CHECK FOR CSM/LM CONFIGURATION
+		MASK	BIT14
+		EXTEND
+		BZF	+3
+		
+		CAE	ESTROKER	# BEGIN ON NEXT DAP PASS (PITCH OR YAW)
+		TS	STROKER		# (STROKING DONE IN PITCH ONLY, HOWEVER)
+		
+		TCF	ENDOFJOB
+		
+TSTINIT		CS	FCADDY		# NORMAL ENTRY FROM STRKTSTI
+		TS	CADDY
+		TS	N		#	NOTE SGN CHNG FCADDY(+) TO CADDY(-)
+		
+		CAF	FREVS
+		TS	REVS
+		
+		CS	FCARD		# 	NOTE SGN CHNG FCARD(+) TO CARD(-)
+		TS	CARD
+		
+		TC	Q		# RETURN TO STRKTSTI+1 (OR CHKSTRK+2 OR +4)
+
+# Page 982
+# THE OFFICIAL STROKE TEST WAVEFORM (3 JAN, 1967) CONSISTS OF FOUR STROKE SETS, AS FOLLOWS....
+#
+#	SET 1...10 BURSTS IN 1/2 AMP,   4 REVERSALS
+#	SET 2... 6 BURSTS IN 1/2 AMP,	6 REVERSALS
+#	SET 3... 5 BURSTS IN 1/2 AMP,  10 REVERSALS
+#	SET 4... 4 BURSTS IN 1/2 AMP,  14 REVERSALS
+#
+# THE PULSE BURST SIZE (ESTROKER) IS PAD-LOADED (5 BITS AS OF 3 JAN, 1967)
+# THE REMAINING WAVEFORM-GENERATING PARAMETERS ARE AS FOLLOWS....
+
+FCADDY		DEC	10		# NO. PULSE BURSTS IN 1/2 AMP, SET1..(+10)
+FREVS		DEC	3		# NO. REVERSALS MINUS 1, SET1........(  3)
+
+FCARD		DEC	4		# NO. STROKE SETS....................(+ 4)
+
+FCARD1		DEC	5		# NO. REVERSALS MINUS 1, SET2........(  5)
+
+FCARD2		DEC	9		# 			    3........(  9)
+FCARD3		DEC	13		#                           4........( 13)
+
+FCARD4		DEC	6		# NO. PULSE BURSTS IN 1/2 AMP, SET2..(+ 6)
+FCARD5		DEC	5		#                                 3..(+ 5)
+FCARD6		DEC	4		#                                 4..(+ 4)
+
+20MS		=	BIT2
+
+# STROKE TEST PACKAGE PROPER....
+
+		EBANK=	BUNKER
+
+HACK		EXTEND			# ENTRY (IN T5 RUPT) FROM TVCDAPS
+		QXCH	BUNKER		# SAVE Q FOR DAP RETURN
+		
+		CAF	20MS		# 2DAPSx2(PASSES/DAP)x2(CS/PASS)=8CS=TVCDT
+		TC	WAITLIST
+		EBANK=	BUNKER
+		2CADR	HACKWLST
+		
+		TCF	+3
+		
+HACKWLST	CAF	TCTSKOVR	# ENTRY FROM WAITLIST
+		TS	BUNKER		# BUNKER IS TC TASKOVER
+		
+		CA	STROKER		# STROKE
+		ADS	TVCPITCH
+		
+		CAF	BIT11		# RELEASE THE ERROR COUNTERS
+		EXTEND
+		WOR	CHAN14
+		INCR	CADDY		# COUNT DOWN THE NO. BURSTS, THIS SLOPE
+# Page 982
+		CS	CADDY
+		EXTEND
+		BZMF	+2
+		TC	BUNKER		# EXIT, WHILE ON A SLOPE
+		
+		CCS	REVS
+		TCF	REVUP		# POSITIVE REVS
+		TCF	REVUP +4	# FINAL REVERSAL, THE SET
+		
+		INCR	CARD		# NEGATIVE REVS SET LAST PASS, READY FOR
+		CS	CARD		#	THE NEXT SET.  CHECK IF NO MORE SETS
+		EXTEND
+		BZF	STROKILL	# ALL SETS COMPLETED
+		
+		INDEX	CARD
+		CAF	FCARD +4	# PICK UP NO. REVERSALS (-), NEXT SET
+		TS	REVS		# REINITIALIZE
+		INDEX	CARD
+		CS	FCARD +7	# PICK UP NO. BURSTS IN 1/2AMP, NEXT SET
+		TS	N		# REINITIALIZE
+		TS	CADDY
+		TC	BUNKER		# EXIT, AT END OF SET
+		
+STROKILL	TS	STROKER		# RESET (TO +0) TO END TEST
+		TC	BUNKER		# EXIT, STROKE TEST FINIS
+		
+REVUP		TS	REVS		# ALL REVERSALS EXCEPT LAST OF SET
+		CA	N
+		DOUBLE			# 2 x 1/2AMP
+		TCF	+4
+		
+	+4	CS	ONE		# FINAL REVERSAL, THIS SET
+		TS	REVS		# PREPARE TO BRANCH TO NEW BURST
+		CA	N		# JUST RETURN TO ZERO, FINAL SLOPE OF SET
+		TS	CADDY		# CADUP
+		
+		CS	STROKER		# CHANGE SIGN OF SLOPE
+		TS	STROKER
+		TC	BUNKER		# EXIT AT A REVERSAL (SLOPE CHANGE)
+		
diff --git a/UPDATE_PROGRAM.s b/UPDATE_PROGRAM.s
new file mode 100644
index 0000000..e3f83d8
--- /dev/null
+++ b/UPDATE_PROGRAM.s
@@ -0,0 +1,554 @@
+# Copyright:    Public domain.
+# Filename:     UPDATE_PROGRAM.agc
+# Purpose:      Part of the source code for Comanche, build 055. It
+#               is part of the source code for the Command Module's
+#               (CM) Apollo Guidance Computer (AGC), Apollo 11.
+# Assembler:    yaYUL
+# Reference:    pp. 1497-1507
+# Contact:      Ron Burkey <info@sandroid.org>
+# Website:      http://www.ibiblio.org/apollo.
+# Mod history:  2009-05-07 RSB	Adapted from Colossus249/UPDATE_PROGRAM.agc
+#				and page images. Corrected various typos
+#				in the transcription of program comments,
+#				and these should be back-ported to 
+#				Colossus249.
+#
+# The contents of the "Comanche055" files, in general, are transcribed 
+# from scanned documents. 
+#
+#       Assemble revision 055 of AGC program Comanche by NASA
+#       2021113-051.  April 1, 1969.  
+#
+#       This AGC program shall also be referred to as Colossus 2A
+#
+#       Prepared by
+#                       Massachussets Institute of Technology
+#                       75 Cambridge Parkway
+#                       Cambridge, Massachusetts
+#
+#       under NASA contract NAS 9-4065.
+#
+# Refer directly to the online document mentioned above for further
+# information.  Please report any errors to info@sandroid.org.
+
+# Page 1497
+# PROGRAM NAME:		P27
+# WRITTEN BY:		KILROY/ DE WOLF
+#
+# MOD NO:		0
+# MOD BY:		KILROY
+# DATE:			01DEC67
+#
+# LOG SECTION:		UPDATE PROGRAM.
+#
+# FUNCT. DESCR.:	P27 (THE UPDATE PROGRAM) PROCESSES COMMANDS AND DATA
+#			INSERTIONS REQUESTED BY THE GROUND VIA UPLINK.
+#			THE P27 PROGRAM WILL ACCEPT UPDATES
+#			ONLY DURING P00 FOR THE LM, AND ONLY DURINT P00,
+#			P02, AND FRESH START FOR THE CSM.
+#
+# CALLING SEQ:		PROGRAM IS INITIATED BY UPLINK ENTRY OF VERBS 70, 71, 72, AND 73.
+#
+# SUBROUTINES:		TESTXACT, NEWMODEX, NEWMODEX +3, GOXDSPF, BANKCALL, FINDVAC, INTPRET, INTSTALL, TPAGREE,
+#			INTWAKEU, ENDEXT, POSTJUMP, FALTON, NEWPHASE, PHASCHNG
+#
+# NORMAL EXIT:		TC ENDEXT
+#
+# ALARM/ABORT:		TC FALTON FOLLOWED BY TC ENDEXT
+#
+# RESTARTS:		P27 IS RESTART PROTECTED IN TWO WAYS ...
+#			1.	PRIOR TO VERIFLAG INVERSION (WHICH IS CAUSED BY THE GROUND/ASTRONAUT'S VERIFICATION OF UPDATE
+#				DATA BY SENDING A V33E WHEN V21N02 IS FLASHING)---
+#				NO PROTECTION EXCEPT PRE-P27 MODE IS RESTROED, COAST + ALIGN DOWNLIST IS SELECTED AND UPLINE
+#				ACTIVITY LIGHT IS TURNED OFF.  (JUST AS IF A V34E WAS SENT DURING P27 DATA LOADS).
+#				V70,V71,V72, OR V73 WILL HAVE TO BE COMPLETELY RESENT BY USER.
+#			2.	AFTER VERIFLAG INVERSION (WHEN UPDATE OF THE SPECIFIED ERASABLES IS BEING PERFORMED)---
+#				PROTECTED AGAINST RESTARTS.
+#
+# DEBRIS:		UPBUFF	(20D)	TEMP STORAGE FOR ADDRESSES AND CONTENTS.
+#			UPVERB	(1)	VERB NUMBER MINUS 70D (E.G., FOR V72, UPVERB = 72D - 70D = 2)
+#			UPOLDMOD(1)	FOR MAJOR MODE INTERRUPTED BY P27.
+#			COMPNUMB(1)	TOTAL NUMBER OF COMPONENTS TO BE TRANSMITTED.
+#			UPCOUNT	(1)	ACTUAL NUMBER OF COMPONENTS RECEIVED.
+#			UPTEMP	(1)	SCRATCH, BUT USUALLY CONTAINS COMPONENT NUMBER TO BE CHANGED DURING VERIFY CYCLE.
+#
+# INPUT:
+#
+#	ENTRY			DESCRIPTION
+#	V70EXXXXXEXXXXXE	(LIFTOFF TIME INCREMENT) DOUBLE PRECISION OCTAL TIME INCREMENT, XXXXX XXXXX,
+#				IS ADDED TO TEPHEM, SUBTRACTED FROM AGC CLOCK(TIME2,TIME1), SUBTRACTED FROM CSM STATE
+#				VECTOR TIME(TETCSM) AND SUBTRACTED FROM LEM STATE VECTOR TIME(TETLEM).
+#				THE DP OCTAL TIME INCREMENT IS SCALED AT 2(28).
+# Page 1498
+#	V71EIIEAAAAE		(CONTIGUOUS BLOCK UPDATE) II-2 OCTAL COMPONENTS, XXXXX,
+#	XXXXXE			ARE LOADED INTO ERASABLE STARTING AT ECADR, AAAA.
+#	XXXXXE			IT IS .GE. 3 .AND. .LE. 20D.,
+#				AND (AAAA + II -3) DOES NOT PRODUCE AN ADDRESS IN THE
+#	9 NEXT BANK
+#	  .			SCALING IS SAME AS INTERNAL REGISTERS.
+#	V72EIIE			(SCATTER UPDATE) (II-1)/2 OCTAL COMPONENTS, XXXXX, ARE
+#	AAAAEXXXXXE		LOADED INTO ERASABLE LOCATIONS, AAAA.
+#	AAAAEXXXXXE		II IS .GE. 3 .AND. .LE. 19D, AND MUST BE ODD.
+#	  .			SCALING IS SAME AS INTERNAL REGISTERS.
+#
+#	V73EXXXXXEXXXXXE	(OCTAL CLOCK INCREMENT) DOUBLE PRECISION OCTAL TIME
+#				INCREMENT XXXXX XXXXX, IS ADDED TO THE AGC CLOCK, IN
+#				CENTISECONDS SCALED AT (2)28).
+#				THIS LOAD IS THE OCTAL EQUIVALENT OF V55.
+#
+# OUTPUT:		IN ADDITION TO THE ABOVE REGISTER LOADS, ALL UPDATES
+#			COMPLEMENT BIT3 OF FLAGWORD7.
+#
+# ADDITIONAL NOTES:	VERB 71, JUST DEFINED ABOVE WILL BE USED TO PERFORM BUT NOT LIMITED TO THE FOLLOWING UPDATES --
+#			1.  CSM/LM STATE VECTOR UPDATE
+#			2.  REFSMMAT UPDATE
+#
+#	THE FOLLOWING COMMENTS DELINEATE EACH SPECIAL UPDATE ---
+#
+#	1.  CSM/LM STATE VECTOR UPDATE (ALL DATA ENTRIES IN OCTAL)
+#		ENTRIES:	DATA DEFINITION:				SCALE FACTORS:
+#		V71E		CONTIGUOUS BLOCK UPDATE VERB
+#		   21E		NUMBER OF COMPONENTS FOR STATE VECTOR UPDATE
+#		 AAAAE		ECADR OF `UPSVFLAG'
+#		XXXXXE		STATE VECTOR IDENTIFIER: 00001 FOR CSM, 77776 FOR LEM -- EARTH SPHERE OF INFLUENCE SCALING
+#							 00002 FOR CSM, 77775 FOR LEM -- LUNAR SPHERE OF INFLUENCE SCALING
+#		XXXXXEXXXXXE	X POSITION
+#		XXXXXEXXXXXE	Y POSITION
+#		XXXXXEXXXXXE	Z POSITION
+#		XXXXXEXXXXXE	X VELOCITY
+#		XXXXXEXXXXXE	Y VELOCITY
+#		XXXXXEXXXXXE	Z VELOCITY
+#		XXXXXEXXXXXE	TIME FROM AGC CLOCK ZERO
+#		V33E		VERB 33 TO SIGNAL THAT THE STATE VECTOR IS READY TO BE STORED.
+#
+#	2.  REFSMMAT (ALL DATA ENTRIES IN OCTAL)
+#		ENTRIES		DATA DEFINITITIONS				SCALE FACTORS:
+# Page 1499
+#		V71E		CONTIGUOUS BLOCK UPDATE VERB
+#		   24E		NUMBER OF COMPONENTS FOR REFSMMAT UPDATE
+#		 AAAAE		ECADR OF `REFSMMAT'
+#		XXXXXEXXXXXE	ROW 1 COLUMN 1					2(-1)
+#		XXXXXEXXXXXE	ROW 1 COLUMN 2					2(-1)
+#		XXXXXEXXXXXE	ROW 1 COLUMN 3					2(-1)
+#		XXXXXEXXXXXE	ROW 2 COLUMN 1					2(-1)
+#		XXXXXEXXXXXE	ROW 2 COLUMN 2					2(-1)
+#		XXXXXEXXXXXE	ROW 2 COLUMN 3					2(-1)
+#		XXXXXEXXXXXE	ROW 3 COLUMN 1					2(-1)
+#		XXXXXEXXXXXE	ROW 3 COLUMN 2					2(-1)
+#		XXXXXEXXXXXE	ROW 3 COLUMN 3					2(-1)
+#		V33E		VERB 33 TO SIGNAL THAT REFSMMAT IS READY TO BE STORED
+
+		BANK	07
+		SETLOC	EXTVERBS
+		BANK
+
+		EBANK=	TEPHEM
+
+		COUNT*	$$/P27
+V70UPDAT	CAF	UP70		# COMES HERE ON V70E
+		TCF	V73UPDAT +1
+
+V71UPDAT	CAF	UP71		# COMES HERE ON V71E
+		TCF	V73UPDAT +1
+
+V72UPDAT	CAF	UP72		# COMES HERE ON V72E
+		TCF	V73UPDAT +1
+
+V73UPDAT	CAF	UP73		# COMES HERE ON V73E
+
+	+1	TS	UPVERBSV	# SAVE UPVERB UNTIL IT'S OK TO ENTER P27
+
+		TC	TESTXACT	# GRAB DISPLAY IF AVAILABLE, OTHERWISE
+					# TURN *OPERATOR ERROR* ON AND TERMINATE JOB
+
+		CA	MODREG		# CHECK IF UPDATE ALLOWED
+		EXTEND			# FIRST CHECK FOR MODREG = +0, -0
+		BZF	+2		# (+0 = P00, -0 = FRESHSTART)
+		TC	CKMDMORE	# NOW CHECK FOR PROGRAM WHICH CAN BE
+					# INTERRUPTED BY P27.
+					
+		CAE	MODREG		# UPDATE ALLOWED
+		TS	UPOLDMOD	# SAVE CURRENT MAJOR MODE
+# Page 1500
+		CAE	UPVERBSV	# SET UPVERB TO INDICDATE TO P27
+		TS	UPVERB		# WHICH EXTENDED VERB CALLED IT.
+
+		CAF	ONE
+		TS	UPCOUNT		# INITIALIZE UPCOUNT TO 1
+
+		TC	POSTJUMP	# LEAVE EXTENDED VERB BANK AND
+		CADR	UPPART2		# GO TO UPDATE PROGRAM (P27) BANK.
+		
+CKMDMORE	CS	FLAGWRD5
+		MASK	BIT8		# CHECK IF COMPUTER IS LGC
+		CCS	A		# IS COMPUER LGC OR AGC
+UPERLEM		TCF	UPERROR		# ERROR: IT'S THE LEM + MODE IS NOT P00.
+		CS	TWO
+		MASK	MODREG
+		CCS	A
+UPERCMC		TCF	UPERROR		# ERROR: IT'S THE CMC AND MODE IS NOT
+					# P00 OR P02.
+		TC	Q		# ALLOW UPDATE TO PROCEED.
+		
+UPERROR		TC	POSTJUMP	# TURN ON 'OPERATOR ERROR' LIGHT
+		CADR	UPERROUT +2	# GO TO COMMON UPDATE PROGRAM EXIT
+
+		SBANK=	LOWSUPER
+UP70		EQUALS	ZERO
+UP71		EQUALS	ONE
+UP72		EQUALS	TWO
+UP73		EQUALS	THREE
+
+		BANK	04
+		SETLOC	UPDATE2
+		BANK
+
+		COUNT*	$$/P27
+
+UPPART2		EQUALS			# UPDATE PROGRAM -- PART 2
+
+		TC	PHASCHNG	# SET RESTART GROUP 6 TO RESTORE OLD MODE
+		OCT	07026		# AND DOWNLIST AND EXIT IF RESTART OCCURS.
+		OCT	30000		# PRIORITY SAME AS CHRPRIO
+		EBANK=	UPBUFF
+		2CADR	UPOUT +1
+
+		CAF	ONE
+		TS	DNLSTCOD	# DOWNLIST
+
+		TC	NEWMODEX	# SET MAJOR MODE = 27
+# Page 1501		
+		DEC	27
+
+		INDEX	UPVERB		# BRANCH DEPENDING ON WHETHER THE UPDATE
+		TCF	+1		# VERB REQUIRES A FIXED OR VARIABLE NUMBER
+		TCF	+3		# V70 FIXED                (OF COMPONENTS)
+		TCF	OHWELL1		# V71 VARIABLE -- GO GET NO. OF COMPONENTS
+		TCF	OHWELL1		# V72 VARIABLE -- GO GET NO. OF COMPONENTS
+		CA	TWO		# V73 (AND V70) FIXED
+		TS	COMPNUMB	# SET NUMBER OF COMPONENTS TO 2.
+		TCF	OHWELL2		# GO GET THE TWO UPDATE COMPONENTS
+
+OHWELL1		CAF	ADUPBUFF	# * REQUEST USER TO SEND NUMBER *
+		TS	MPAC +2		# * OF COMPONENTS PARAMETER(II) *
+	+2	CAF	UPLOADNV	# (CKV432 RETURNS HERE IF V32 ENCOUNTERED)
+		TC	BANKCALL	# DISPLAY A FLASHING V21N01
+		CADR	GOXDSPF		# TO REQUEST II.
+		TCF	UPOUT4		# V32 TERMINATE UPDATE (P27) RETURN
+		TCF	OHWELL1 +2
+		TC	CK4V32		# DATA OR V32 RETURN
+		CS	BIT2
+		AD	UPBUFF		# IS II (NUMBER OF COMPONENTS PARAMETER)
+		EXTEND			# .GE. 3 AND .LE. 20D.
+		BZMF	OHWELL1 +2
+		CS	UPBUFF
+		AD	UP21
+		EXTEND
+		BZMF	OHWELL1 +2
+		CAE	UPBUFF
+		TS	COMPNUMB	# SAVE II IN COMPNUMB
+
+# UPBUFF LOADING SEQUENCE
+
+		INCR	UPCOUNT		# INCREMENT COUNT OF COMPONENTS RECEIVED.
+OHWELL2		CAF	ADUPBFM1	# CALCULATE LOCATION (ECADR) IN UPBUFF
+		AD	UPCOUNT		# WHERE NEXT COMPONENT SHOULD BE STORED
+	+2	TS	MPAC +2		# PLACE ECADR INTO R3.
+	+3	CAF	UPLOADNV	# (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
+		TC	BANKCALL	# DISPLAY A FLASHING V21N01
+		CADR	GOXDSPF		# TO REQUEST DATA.
+		TCF	UPOUT4		# V34 TERMINATE UPDATE (P27) RETURN.
+		TCF	OHWELL2 +3	# V33 PROCEED RETURN
+		TC	CK4V32		# DATA OR V32 RETURN
+		CS	UPCOUNT		# HAVE WE FINISHED RECEIVING ALL
+		AD	COMPNUMB	# THE DATA WE EXPECTED.
+		EXTEND
+		BZMF	UPVERIFY	# YES -- GO TO VERIFICATION SEQUENCE
+		TCF	OHWELL2 -1	# NO -- REQUEST ADDITIONAL DATA.
+
+# Page 1502
+# VERIFY SEQUENCE
+UPVERIFY	CAF	ADUPTEMP	# PLACE ECADR WHERE COMPONENT NO. INDEX
+		TS	MPAC +2		# IS TO BE STORED INTO R3.
+		CAF	UPVRFYNV	# (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
+		TC	BANKCALL	# DISPLAY A FLASHING V21N02 TO REQUEXT
+		CADR	GOXDSPF		# DATA CORRECTION OR VERIFICATION.
+		TCF	UPOUT4		# V34 TERMINATE UPDATE (P27) RETURN
+		TCF	UPSTORE		# V33 DATA SENT IS GOOD.  GO STORE IT.
+		TC	CK4V32		# COMPONENT NO. INDEX OR V32 RETURN
+		CA	UPTEMP		# DOES THE COMPONENT NO. INDEX JUST SENT
+		EXTEND			# SPECIFY A LEGAL COMPONENT NUMBER?
+		BZMF	UPVERIFY	# NO, IT IS NOT POSITIVE NONZERO
+		CS	UPTEMP
+		AD	COMPNUMB
+		AD	BIT1
+		EXTEND
+		BZMF	UPVERIFY	# NO
+		CAF	ADUPBFM1	# YES -- BASED ON THE COMPONENT NO. INDEX
+		AD	UPTEMP		# CALCULATE THE ECADR OF LOCATION IN
+		TCF	OHWELL2 +2	# UPBUFF WHICH USER WANTS TO CHANGE.
+
+UPOUT4		EQUALS	UPOUT +1	# COMES HERE ON V34 TC TERMINATE UPDATE.
+
+# CHECK FOR VERB 32 SEQUENCE
+
+CK4V32		CS	MPAC		# ON DATA RETURN FROM `GOXDSPF'
+		MASK	BIT6		# ON DATA RETURN FROM "GOXDSP" & THE CON-
+		CCS	A		# TENTS OF MPAC = VERB.  SO TEST FOR V32.
+		TC	Q		# IT'S NOT A V32, IT'S DATA.  PROCEED.
+		INDEX	Q
+		TC	0 -6		# V32 ENCOUNTERED -- GO BACK AND GET DATA
+
+ADUPTEMP	ADRES	UPTEMP		# ADDRESS OF TEMP STORAGE FOR CORRECTIONS
+ADUPBUFF	ADRES	UPBUFF		# ADDRESS OF UPDATE DATA STORAGE BUFFER
+UPLOADNV	VN	2101		# VERB 21 NOUN 01
+UPVRFYNV	VN	2102		# VERB 21 NOUN 02
+UP21		=	MD1		# DEC 21 = MAX NO OF COMPONENTS +1
+UPDTPHAS	EQUALS	FIVE
+
+# PRE-STORE AND FAN TO APPROPRIATE BRANCH SEQUENCE
+
+UPSTORE		EQUALS			# GROUND HAS VERIFIED UPDATE.  STORE DATA.
+
+		INHINT
+
+		CAE	FLAGWRD7	# INVERT VERIFLAG (BIT 3 OF FLAGWRD7) TO
+		XCH	L		# INDICATE TO THE GROUND (VIA DOWNLINK)
+		CAF	BIT3		# THAT THE V33 (WHICH THE GROUND SENT TO
+# Page 1503		
+		EXTEND			# VERIFY THE UPDATE) HAS BEEN SUCCESSFULLY
+		RXOR	LCHAN		# RECEIVED BY THE UPDATE PROGRAM
+		TS	FLAGWRD7
+
+		TC	PHASCHNG	# SET RESTART GROUP 6 TO REDO THE UPDATE
+		OCT	04026		# DATA STORE IF A RESTART OCCURS.
+		INHINT			# (BECAUSE PHASCHNG DID A RELINT)
+
+		CS	TWO		# GO TO UPFNDVAC IF INSTALL IS REQUIRED.
+		AD	UPVERB		# THAT IS, IF IT'S A V70 - V72.
+		EXTEND			# GO TO UPEND73 IF IT'S A V73.
+		BZMF	UPFNDVAC
+
+# VERB 73 BRANCH
+
+UPEND73		EXTEND			# V73 -- PERFORM DP OCTAL AGC CLOCK INCREMENT
+		DCA	UPBUFF
+		DXCH	UPBUFF +8D
+		TC	TIMEDIDL
+		TC	FALTON		# ERROR -- TURN ON *OPERATOR ERROR* LIGHT
+		TC	UPOUT +1	# GO TO COMMON UPDATE PROGRAM EXIT
+
+UPFNDVAC	CAF	CHRPRIO		# (USE EXTENDED VERB PRIORITY)
+		TC	FINDVAC		# GET VAC AREA FOR `CALL INTSTALL'
+		EBANK=	TEPHEM
+		2CADR	UPJOB		# (NOTE:  THIS WILL ALSO SET EBANK FOR
+		TC	ENDOFJOB	# `TEPHEM' UPDATE BY V70)
+
+UPJOB		TC	INTPRET		# THIS COULD BE A STATE VECTOR UPDATE -- SO
+		CALL			# WAIT (PUT JOB TO SLEEP) IF ORBIT INT(OI)
+			INTSTALL	# IS IN PROGRESS -- OR -- GRAB OI AND RETURN
+					# TO UPWAKE IF OI IS NOT IN PROGRESS.
+
+UPWAKE		EXIT
+
+		TC	PHASCHNG	# RESTART PROTECT (GROUP 6)
+		OCT	04026
+
+		TC	UPFLAG		# SET INTEGRATION RESTART BIT
+		ADRES	REINTFLG
+		INHINT
+UPPART3		EQUALS
+
+		INDEX	UPVERB		# BRANCH TO THE APPROPRIATE UPDATE VERB
+		TCF	+1		# ROUTINE TO ACTUALLY PERFORM THE UPDATE
+		TCF	UPEND70		# V70
+		TCF	UPEND71		# V71
+		TCF	UPEND72		# V72
+
+# Page 1504
+# ROUTINE TO INCREMENT CLOCK (TIME2,TIME1) WITH CONTENTS OF DP WORD AT UPBUFF.
+TIMEDIDL	EXTEND
+		QXCH	UPTEMP		# SAVE Q FOR RETURN
+		CAF	ZERO		# ZERO AND SAVE TIME2,TIME1
+		ZL
+		DXCH	TIME2
+		DXCH	UPBUFF +18D	# STORE IN CASE OF OVERFLOW
+
+		CAF	UPDTPHAS	# DO
+		TS	L		# A
+		COM			# QUICK
+		DXCH	-PHASE6		# PHASCHNG
+
+TIMEDIDR	INHINT
+		CAF	ZERO
+		ZL			# PICK UP INCRMENTER (AND ZERO
+		TS	MPAC +2		# IT IN CASE OF RESTARTS) AND
+		DXCH	UPBUFF +8D	# STORE IT
+		DXCH	MPAC		# INTO MPAC FOR TPAGREE.
+
+		EXTEND
+		DCA	UPBUFF +18D
+		DAS	MPAC		# FORM SUM IN MPAC
+		EXTEND
+		BZF	DELTAOK		# TEST FOR OVERFLOW
+		CAF	ZERO
+		DXCH	UPBUFF +18D	# OVERFLOW, RESTORE OLD VALUE OF CLOCK
+		DAS	TIME2		# AND TURN ON OPERATOR ERROR
+
+		TC	PHASCHNG	# RESTART PROTECT (GROUP 6)
+		OCT	04026
+
+		TC	UPTEMP		# GO TO ERROR EXIT
+
+DELTAOK		TC	TPAGREE		# FORCE SIGN AGREEMENT
+		DXCH	MPAC
+		DAS	TIME2		# INCREMENT TIME2,TIME1
+
+		TC	PHASCHNG	# RESTART PROTECT (GROUP 6)
+		OCT	04026
+
+		INHINT
+		INDEX	UPTEMP		# (CODED THIS WAY FOR RESTART PROTECTION)
+		TC	1		# NORMAL RETURN
+
+# VERB 71 BRANCH
+
+UPEND71		CAE	UPBUFF +1	# SET EBANK
+		TS	EBANK		#	AND
+# Page 1505		
+		MASK	LOW8		# CALCULATE
+		TS	UPTEMP		# S-REG VALUE OF RECEIVING AREA
+		AD	NEG3		# IN THE PROCESS OF
+		AD	COMPNUMB	# PERFORMING
+		EXTEND			# THIS UPDATE
+		BZF	STORLP71	# WILL WE
+		MASK	BIT9		# OVERFLOW
+		CCS	A		# INTO THE NEXT EBANK....
+		TCF	UPERROUT	# YES
+
+		CA	NEG3		# NO -- CALCULATE NUMBER OF
+		AD	COMPNUMB	# WORDS TO BE STORED MINUS ONE
+STORLP71	TS	MPAC		# SAVE NO. OF WORDS REMAINING MINUS ONE
+		INDEX	A		# TAKE NEXT UPDATE WORD FROM
+		CA	UPBUFF +2	# UPBUFF AND
+		TS	L		# SAVE IT IN L
+		CA	MPAC		# CALCULATE NEXT
+		AD	UPTEMP		# RECEIVING ADDRESS
+		INDEX	A
+		EBANK=	1400
+		LXCH	1400		# UPDATE THE REGISTER BY CONTENTS OF L
+		EBANK=	TEPHEM
+		CCS	MPAC		# ARE THERE ANY WORDS LEFT TO BE STORED
+		TCF	STORLP71	# YES
+		TCF	UPOUT		# NO -- THEN EXIT UPDATE PROGRAM
+ADUPBFM1	ADRES	UPBUFF -1	# SAME AS ADUPBUFF BUT LESS 1 (DON'T MOVE)
+		TCF	UPOUT		# NO -- EXIT UPDATE (HERE WHEN COMPNUMB = 3)
+
+# VERB 72 BRANCH
+
+UPEND72		CAF	BIT1		# HAVE AN ODD NO. OF COMPONENTS
+		MASK	COMPNUMB	# BEEN SENT FOR A V72 UPDATE ...
+		CCS	A
+		TCF	+2		# YES
+		TCF	UPERROUT	# ERROR -- SHOULD BE ODD NO. OF COMPONENTS
+		CS	BIT2
+		AD	COMPNUMB
+LDLOOP72	TS	MPAC		# NOW PERFORM THE UPDATE
+		INDEX	A
+		CAE	UPBUFF +1	# PICK UP NEXT UPDATE WORD
+		LXCH	A
+		CCS	MPAC		# SET POINTER TO ECADR (MUST BE CCS)
+		TS	MPAC
+		INDEX	A
+		CAE	UPBUFF +1	# PICK UP NEXT ECADR OF REG TO BE UPDATED
+		TS	EBANK		# SET EBANK
+		MASK	LOW8		# ISOLATE RELATIVE ADDRESS
+		INDEX	A
+
+# Page 1506		
+		EBANK=	1400
+		LXCH	1400		# UPDATE THE REGISTER BY CONTENTS OF L
+		EBANK=	TEPHEM
+		CCS	MPAC		# ARE WE THORUGH THE V72 UPDATE...
+		TCF	LDLOOP72	# NO
+
+# NORMAL FINISH OF P27
+
+UPOUT		EQUALS
+		TC	INTWAKEU	# RELEASE GRAB OF ORBITAL INTEGRATION
+	+1	CAE	UPOLDMOD	# RESTORE PRIOR P27 MODE
+		TC	NEWMODEX +3
+		CAF	ZERO
+		TS	DNLSTCOD
+		TC	UPACTOFF	# TURN OFF `UPLINK ACTIVITY' LIGHT
+		EXTEND			# KILL GROUP 6
+		DCA	NEG0
+		DXCH	-PHASE6
+
+		TC	ENDEXT		# EXTENDED VERB EXIT
+
+# VERB TO BRANCH
+
+UPEND70		EXTEND			# V70 DOES THE FOLLOWING WITH DP DELTA
+		DCS	UPBUFF		# TIME IN UPBUFF
+		DXCH	UPBUFF +8D
+		TC	TIMEDIDL	# DECREMENT AGC CLOCK
+
+		TC	UPERROUT	# ERROR WHILE DECREMENTING CLOCK -- EXIT
+
+		EBANK=	TEPHEM
+		EXTEND
+		DCS	UPBUFF		# COPY DECREMENTERS FOR
+		DXCH	UPBUFF +10D	# RESTART PROTECTION
+		EXTEND
+		DCS	UPBUFF
+		DXCH	UPBUFF +12D
+
+		TC	PHASCHNG	# RESTART PROTECT (GROUP 6)
+		OCT	04026
+
+		CAF	ZERO
+		ZL
+		DXCH	UPBUFF +10D	# DECREMENT CSM STATE VECTOR TIME
+		DAS	TETCSM
+
+		CAF	ZERO
+		
+# Page 1507		
+		ZL
+		DXCH	UPBUFF +12D	# DECREMENT LEM STATE VECTOR TIME
+		DAS	TETLEM
+		CAF	ZERO
+		ZL
+		DXCH	UPBUFF
+		DAS	TEPHEM +1	# INCREMENT TP TEPHEM
+		ADS	TEPHEM
+
+		TC	PHASCHNG	# RESTART PROTECT (GROUP 6)
+		OCT 	04026
+
+		EBANK=	UPBUFF
+
+		TC	UPOUT		# GO TO STANDARD UPDATE PROGRAM EXIT
+
+# ERROR SEQUENCE
+
+UPERROUT	TC	FALTON		# TURN ON *OPERATOR ERROR* LIGHT
+		TCF	UPOUT		# GO TO COMMON UPDATE PROGRAM EXIT
+
+	+2	TC	FALTON		# TURN ON `OPERATOR ERROR' LIGHT
+		TC	UPACTOFF	# TURN OFF `UPLINK ACTIVITY' LIGHT
+		TC	ENDEXT		# EXTENDED VERB EXIT
+					# (THE PURPOSE OF UPERROUT +2 EXIT IS
+					# TO PROVIDE AN ERROR EXIT WHICH DOES NOT
+					# RESET ANY RESTART GROUPS)
+
+# `UPACTOFF' IS A ROUTINE TO TURN OFF UPLINK ACTIVITY LIGHT ON ALL EXITS FROM UPDATE PROGRAM (P27).
+
+UPACTOFF	CS	BIT3
+		EXTEND			# TURN OFF UPLINK ACTIVITY LIGHT
+		WAND	DSALMOUT	# (BIT 3 OF CHANNEL 11)
+		TC	Q
+		
+
+
diff --git a/WAITLIST.s b/WAITLIST.s
new file mode 100644
index 0000000..a77c93d
--- /dev/null
+++ b/WAITLIST.s
@@ -0,0 +1,550 @@
+# Copyright:	Public domain.
+# Filename:	WAITLIST.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:	1221-1235
+# Mod history:	2009-05-14 RSB	Adapted 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 1221
+# PROGRAM DESCRIPTION						DATE -- 10 OCTOBER 1966
+# MOD NO -- 2							LOG SECTION -- WAITLIST
+# MOD BY -- MILLER	(DTMAX INCREASED TO 162.5 SEC)		ASSEMBLY -- SUNBURST REV 5
+# MOD 3 BY KERNAN	(INHINT INSERTED AT WAITLIST) 2/28/68 SKIPPER REV 4
+# MOD 4 BY KERNAN	(TWIDDLE IN 54) 3/28/68 SKIPPER REV 13.
+#
+# FUNCTIONAL DESCRIPTION --
+#	PART OF A SECTION OF PROGRAMS -- WAITLIST, TASKOVER, T3RUPT, USED TO CALL A PROGRAM (CALLED A TASK),
+#	WHICH IS TO BEGIN IN C(A) CENTISECONDS.  WAITLIST UPDATES TIME3, LST1, AND LST2.  THE MEANING OF THESE LISTS
+#	FOLLOW.
+#
+#		C(TIME3) = 16384 -(T1-T) CENTISECONDS, (T=PRESENT TIME, T1-TIME FOR TASK1)
+#
+#			C(LST1)		=	-(T2-T1)+1
+#			C(LST1 +1)	=	-(T3-T2)+1
+#			C(LST1 +2)	=	-(T4-T3)+1
+#				       ...
+#			C(LST1 +6)	=	-(T8-T7)+1
+#			C(LST1 +7)	=	-(T9-T8)+1
+#
+#			C(LST2)		=	2CADR OF TASK1
+#			C(LST2 +2)	=	2CADR OF TASK2
+#				       ...
+#			C(LST2 +14)	=	2CADR OF TASK8
+#			C(LST2 +16)	=	2CADR OF TASK9
+#
+# WARNINGS --
+#	1)	1 <= C(A) <= 16250D (1 CENTISCOND TO 162.5 SEC)
+#	2)	9 TASKS MAXIMUM
+#	3)	TASKS CALLED UNDER INTERRUPT INHIBITED
+#	4)	TASKS END BY TC TASKOVER
+#
+# CALLING SEQUENCE --
+#	L-1	CA	DELTAT 	(TIME IN CENTISECONDS TO TASK START)
+#	L	TC	WAITLIST
+#	L+1	2CADR	DESIRED TASK
+#	L+2	(MINOR OF 2CADR)
+#	L+3	RELINT		(RETURNS HERE)
+#
+# TWIDDLE --
+#	TWIDDLE IS FOR USE WHEN THE TASK BEING SET UP IS IN THE SAME EBANK AND FBANK AS THE USER.  IN
+#	SUCH CASES, IT IMPROVES UPON WAITLIST BY ELIMINATING THE NEED FOR THE BBCON HALF OF THE 2CADR,
+# Page 1222
+#	SAVING A WORD.  TWIDDLE IS LIKE WAITLIST IN EVERY RESPECT EXCEPT CALLING SEQUENCE, TO WIT,
+#		L-1	CA	DELTAT
+#		L	TC	TWIDDLE
+#		L+1	ADRES	DESIRED TASK
+#		L+2	RELINT		(RETURNS HERE)
+#
+# NORMAL EXIT MODES --
+#	AT L+3 OF CALLING SEQUENCE.
+#
+# ALARM OR ABORT EXIT MODES --
+#	TC	ABORT
+#	OCT	1203	(WAITLIST OVERFLOW -- TOO MANY TASKS)
+#
+# ERASABLE INITIALIZATION REQUIRED --
+#	ACCOMPLISHED BY FRESH START --	LST2, ..., LST2 +16 = ENDTASK
+#					LST1, ..., LST1 +7  = NEG1/2
+#
+# OUTPUT --
+#	LST1 AND LST2 UPDATED WITH NEW TASK AND ASSOCIATED TIME.
+#
+# DEBRIS --
+#	CENTRALS -- A,Q,L
+#	OTHER    -- WAITEXIT, WAITADR, WAITTEMP, WAITBANK
+#
+# DETAILED ANALYSIS OF TIMING --
+#	CONTROL WILL NOT BE RETURNED TO THE SPECIFIED ADDRESS (2CADR) IN EXACTLY DELTA T CENTISECONDS.
+#	THE APPROXIMATE TIME MAY BE CALCULATED AS FOLLOWS:
+#		LET T0 = THE TIME OF THE TC WAITLIST
+#		LET TS = T0 +147U + COUNTER INCREMENTS (SET UP TIME)
+#		LET X  = TS -(100TS)/100  (VARIANCE FROM COUNTERS)
+#		LET Y  = LENGTH OF TIME OF INHIBIT INTERRUPT AFTER T3RUPT
+#		LET Z  = LENGTH OF TIME TO PROCESS TASKS WHICH ARE DUE THIS T3RUPT BUT DISPATCHED EARLIER.
+#		(Z=0, USUALLY).
+#		LET DELTD = THE ACTUAL TIME TAKEN TO GIVE CONTROL TO 2CADR
+#	THEN DELTD = TS+DELTA T -X +Y +Z +1.05MS* +COUNTERS*
+#		*THE TIME TAKEN BY WAITLIST ITSELF AND THE COUNTER TICKING DURING THIS WAITLIST TIME.
+#	IN SHORT, THE ACTUAL TIME TO RETURN CONTROL TO A 2CADR IS AUGMENTED BY THE TIME TO SET UP THE TASK'S
+# 	INTERRUPT, ALL COUNTERS TICKING, THE T3RUPT PROCESSING TIME, THE WAITLIST PROCESSING TIME AND THE POSSIBILITY
+#	OF OTHER TASKS INHIBITING THE INTERRUPT.
+
+		BLOCK	02
+# Page 1223
+		EBANK=	LST1		# TASK LISTS IN SWITCHED E BANK.
+
+		COUNT	02/WAIT
+		
+TWIDDLE		INHINT
+		TS	L		# SAVE DELAY TIME IN L
+		CA	POSMAX
+		ADS	Q		# CREATING OVERFLOW AND Q-1 IN Q
+		CA	BBANK
+		EXTEND
+		ROR	SUPERBNK
+		XCH	L
+
+WAITLIST	INHINT
+		EXTEND
+		BZMF	WATLST0-
+		XCH	Q		SAVE DELTA T IN Q AND RETURN IN
+		TS	WAITEXIT	WAITEXIT.
+		EXTEND
+		INDEX	WAITEXIT	# IF TWIDDLING, THE TS SKIPS TO HERE
+		DCA	0		# PICK UP 2CADR OF TASK.
+	-1	TS	WAITADR		# BBCON WILL REMAIN IN L
+DLY2		CAF	WAITBB		# ENTRY FROM FIXDELAY AND VARDELAY.
+		XCH	BBANK
+		TCF	WAIT2
+
+WATLST0-	TC	P00DOO
+		OCT	1204		# WAITLIST CALL WITH ZERO OR NEG DT
+
+# RETURN TO CALLER AFTER TASK INSERTION:
+
+LVWTLIST	DXCH	WAITEXIT
+		AD	TWO
+		DTCB
+
+		EBANK=	LST1
+WAITBB		BBCON	WAIT2
+
+# RETURN TO CALLER +2 AFTER WAITING DT SPECIFIED AT CALLER +1.
+
+FIXDELAY	INDEX	Q		# BOTH ROUTINES MUST BE CALLED UNDER
+		# Was CAF --- RSB 2004.
+		CA	0		# WAITLIST CONTROL AND TERMINATE THE TASK
+		INCR	Q		# IN WHICH THEY WERE CALLED.
+
+# RETURN TO CALLER +1 AFTER WAITING THE DT AS ARRIVING IN A.
+
+VARDELAY	XCH	Q		# DT TO Q.  TASK ADRES TO WAITADR.
+		TS	WAITADR
+		CA	BBANK		# BBANK IS SAVED DURING DELAY.
+		EXTEND
+# Page 1224		
+		ROR	SUPERBNK	# ADD SBANK TO BBCON.
+		TS	L
+		CAF	DELAYEX
+		TS	WAITEXIT	# GO TO TASKOVER AFTER TASK ENTRY.
+		TCF	DLY2
+
+DELAYEX		TCF	TASKOVER -2	# RETURNS TO TASKOVER.
+
+# Page 1225
+# ENDTASK MUST ENTERED IN FIXED-FIXED SO IT IS DISTINGUISHABLE BY ITS ADRES ALONE.
+
+		EBANK=	LST1
+ENDTASK		-2CADR	SVCT3
+
+SVCT3		CCS	FLAGWRD2	# DRIFT FLAG
+		TCF	TASKOVER
+		TCF	TASKOVER
+		TCF	+1
+
+		CCS	IMUCADR		# DON'T DO NBDONLY IF SOMEONE ELSE IS IN
+		TCF	SVCT3X	
+		TCF	+3
+		TCF	SVCT3X
+		TCF	SVCT3X
+	+3	CAF	PRIO35		# COMPENSATE FOR NBD COEFFICIENTS ONLY.
+		TC	NOVAC		#	ENABLE EVERY 81.93 SECONDS
+		EBANK=	NBDX
+		2CADR	NBDONLY
+
+		TCF	TASKOVER
+		
+		SETLOC	FFTAG6
+		BANK
+
+SVCT3X		TC	FIXDELAY	# DELAY MAX OF 2 TIMES FOR IMU ZERO
+		DEC	500
+		TC	SVCT3
+
+# Page 1226
+# BEGIN TASK INSERTION.
+
+		BANK	01
+		COUNT	01/WAIT
+		
+WAIT2		TS	WAITBANK	# BBANK OF CALLING PROGRAM.
+		CS	TIME3
+		AD	BIT8		# BIT 8 = OCT 200
+		CCS	A		# TEST 200 - C(TIME3).  IF POSITIVE,
+					# IT MEANS THAT TIME3 OVERFLOW HAS OCCURRED PRIOR TO CS TIME3 AND THAT
+					# C(TIME3) = T - T1, INSTEAD OF 1.0 - (T1 - T).  THE FOLLOWING FOUR
+					# ORDERS SET C(A) = TD - T1 + 1 IN EITHER CASE.
+
+		AD	OCT40001	# OVERFLOW HAS OCCURRED.  SET C(A) =
+		CS	A		# T - T1 + 1.0 - 201
+
+# NORMAL CASE (C(A) NNZ) YIELDS SAME C(A):  -( -(1.0-(T1-T)) + 200) - 1
+
+		AD	OCT40201
+		AD	Q		# RESULT = TD - T1 + 1.
+
+		CCS	A		# TEST TD - T1 +1.
+
+		AD	LST1		# IF TD - T1 POS, GO TO WTLST5 WITH
+		TCF	WTLST5		# C(A) = (TD - T1) + C(LST1) = TD-T2+1
+
+		NOOP
+		CS	Q
+
+# NOTE THAT THIS PROGRAM SECTION IS NEVER ENTERED WHEN T-T1 G/E -1,
+# SINCE TD-T1+1 = (TD-T) + (T-T1+1), AND DELTA T = TD-T G/E +1.  (G/E
+# SYMBOL MEANS GREATER THAN OR EQUAL TO).  THUS THERE NEED BE NO CON-
+# CERN OVER A PREVIOUS OR IMMINENT OVEFLOW OF TIME3 HERE.
+
+		AD	POS1/2		# WHEN TD IS NEXT, FORM QUANTITY
+		AD	POS1/2		#	1.0 - DELTA T = 1.0 - (TD - T)
+		XCH	TIME3
+		AD	NEGMAX
+		AD	Q		# 1.0 - DELTAT T NOW COMPLETE.
+		EXTEND			# ZERO INDEX Q.
+		QXCH	7		# (ZQ)
+
+# Page 1227
+WTLST4		XCH	LST1
+		XCH	LST1 	+1
+		XCH	LST1 	+2
+		XCH	LST1 	+3
+		XCH	LST1 	+4
+		XCH	LST1 	+5
+		XCH	LST1 	+6
+		XCH	LST1 	+7
+
+		CA	WAITADR		# (MINOR PART OF TASK CADR HAS BEEN IN L.)
+		INDEX	Q
+		TCF	+1
+
+		DXCH	LST2
+		DXCH	LST2 	+2
+		DXCH	LST2 	+4
+		DXCH	LST2 	+6
+		DXCH	LST2 	+8D
+		DXCH	LST2 	+10D	# AT END, CHECK THAT C(LST2 +10) IS STD
+		DXCH	LST2 	+12D
+		DXCH	LST2 	+14D
+		DXCH	LST2 	+16D
+		AD	ENDTASK		# END ITEM, AS CHECK FOR EXCEEDING
+					# THE LENGTH OF THE LIST.
+		EXTEND			# DUMMY TASK ADRES SHOULD BE IN FIXED-
+		BZF	LVWTLIST	# FIXED SO ITS ADRES ALONE DISTINGUISHES
+		TCF	WTABORT		# IT.
+
+# Page 1228
+WTLST5		CCS	A		# TEST TD - T2 + 1
+		AD	LST1 +1
+		TCF	+4
+		AD	ONE
+		TC	WTLST2
+		OCT	1
+
+	+4	CCS	A		# TEST TD - T3 + 1
+		AD	LST1 +2
+		TCF	+4
+		AD	ONE
+		TC	WTLST2
+		OCT	2
+
+	+4	CCS	A		# TEST TD - T4 + 1
+		AD	LST1 +3
+		TCF	+4
+		AD	ONE
+		TC	WTLST2
+		OCT	3
+
+	+4	CCS	A		# TEST TD - T5 + 1
+		AD	LST1 +4
+		TCF	+4
+		AD	ONE
+		TC	WTLST2
+		OCT	4
+
+	+4	CCS	A		# TEST TD - T6 + 1
+		AD	LST1 +5
+		TCF	+4
+		AD	ONE
+		TC	WTLST2
+		OCT	5
+
+	+4	CCS	A		# TEST TD - T7 + 1
+		AD	LST1 +6
+		TCF	+4
+		AD	ONE
+		TC	WTLST2
+		OCT	6
+
+# Page 1229
+	+4	CCS	A	
+		AD	LST1 +7
+		TCF	+4
+		AD	ONE
+		TC	WTLST2
+		OCT	7
+
+	+4	CCS	A
+WTABORT		TC	BAILOUT		# NO ROOM IN THE INN
+		OCT	1203
+		
+		AD	ONE
+		TC	WTLST2
+		OCT	10
+		
+OCT40201	OCT	40201
+		
+# Page 1230
+# THE ENTRY TC WTLST2 JUST PRECEDING OCT N IS FOR T  LE TD LE T   -1.
+#                                                  N           N+1
+#
+# (LE MEANS LESS THAN OR EQUAL TO).  AT ENTRY, C(A) = -(TD - T   + 1)
+#                                                             N+1
+#
+# THE LST1 ENTRY-(T   -T +1) IS TO BE REPLACED BY -(TD - T  + 1), AND
+#                  N+1  N                                 N
+#
+# THE ENTRY-(T   - TD + 1) IS TO BE INSERTED IMMEDIATELY FOLLOWING.
+#             N+1
+
+WTLST2		TS	WAITTEMP	# C(A) = -(TD - T + 1)
+		INDEX	Q
+		# Was CAF --- RSB 2004.
+		CA	0
+		TS	Q		# INDEX VALUE INTO Q.
+
+		CAF	ONE
+		AD	WAITTEMP
+		INDEX	Q		# C(A) = -(TD - T ) + 1.
+		ADS	LST1 -1		#                N
+
+		CS	WAITTEMP
+		INDEX	Q
+		TCF	WTLST4
+
+# Page 1231
+# ENTERS HERE ON T3 RUPT TO DISPATCH WAITLISTED TASK.
+
+T3RUPT		EXTEND
+		ROR	SUPERBNK	# READ CURRENT SUPERBANK VALUE AND
+		TS	BANKRUPT	# SAVE WITH E AND F BANK VALUES.
+		EXTEND
+		QXCH	QRUPT
+
+T3RUPT2		CAF	NEG1/2		# DISPATCH WAITLIST TASK.
+		XCH	LST1 +7
+		XCH	LST1 +6
+		XCH	LST1 +5
+		XCH	LST1 +4		# 1. MOVE UP LST1 CONTENTS, ENTERING
+		XCH	LST1 +3		#    A VALUE OF 1/2 +1 AT THE BOTTOM
+		XCH	LST1 +2		#    FOR T6-T5, CORRESPONDING TO THE
+		XCH	LST1 +1		#    INTERVAL 81.91 SEC FOR ENDTASK.
+		XCH	LST1
+		AD	POSMAX		# 2. SET T3 = 1.0 - T2 - T USING LIST 1.
+		ADS	TIME3		#    SO T3 WON'T TICK DURING UPDATE.
+		TS	RUPTAGN
+		CS	ZERO
+		TS	RUPTAGN		# SETS RUPTAGN TO +1 ON OVERFLOW.
+
+		EXTEND			# DISPATCH TASK.
+		DCS	ENDTASK
+		DXCH	LST2 +16D
+		DXCH	LST2 +14D
+		DXCH	LST2 +12D
+		DXCH	LST2 +10D
+		DXCH	LST2 +8D
+		DXCH	LST2 +6
+		DXCH	LST2 +4
+		DXCH	LST2 +2
+		DXCH	LST2
+
+		XCH	L
+		EXTEND
+		WRITE 	SUPERBNK	# SET SUPERBANK FROM BBCON OF 2CADR
+		XCH	L		# RESTORE TO L FOR DXCH Z.
+		DTCB
+
+# Page 1232
+# RETURN, AFTER EXECUTION OF T3 OVERFLOW TASK:
+
+		BLOCK	02
+		COUNT	02/WAIT
+		
+TASKOVER	CCS	RUPTAGN		# IF +1 RETURN TO T3RUPT, IF -0 RESUME.
+		CAF	WAITBB
+		TS	BBANK
+		TCF	T3RUPT2		# DISPATCH NEXT TASK IF IT WAS DUE.
+
+		CA	BANKRUPT
+		EXTEND
+		WRITE	SUPERBNK	# RESTORE SUPERBANK BEFORE RESUME IS DONE
+
+RESUME		EXTEND
+		QXCH	QRUPT
+NOQRSM		CA	BANKRUPT
+		XCH	BBANK
+NOQBRSM		DXCH	ARUPT
+		RELINT
+		RESUME
+
+# Page 1233
+# LONGCALL
+# PROGRAM DESCRIPTION				DATE -- 17 MARCH 1967
+# PROGRAM WRITTEN BY W.H.VANDEVER		LOG SECTION WAITLIST
+# MOD BY -- R. MELANSON TO ADD DOCUMENTATION	ASSEMBLY SUNDISK REV. 100
+#
+# FUNCTIONAL DESCRIPTION --
+#	LONGCALL IS CALLED WITH THE DELTA TIME ARRIVING IN A,L SCALED AS TIME2,TIME1 WITH THE 2CADR OF THE TASK
+#	IMMEDIATELY FOLLOWING THE TC LONGCALL.  FOR EXAMPLE, IT MIGHT BE DONE AS FOLLOWS WHERE TIMELOC IS THE NAME OF
+# 	A DP REGISTER CONTAINING A DELTA TIME AND WHERE TASKTODO IS THE NAME OF THE LOCATION AT WHICH LONGCALL IS TO
+# 	START.
+#
+# CALLING SEQUENCE --
+#		EXTEND
+#		DCA	TIMELOC
+#		TC	LONGCALL
+#		2CADR	TASKTODO
+#
+# NORMAL EXIT MODE --
+#	1)	TC	WAITLIST
+#	2)	DTCB	(TC L+3 OF CALLING ROUTINE 1ST PASS THRU LONGCYCL)
+#	3)	DTCB	(TO TASKOVER ON SUBSEQUENT PASSES THRU LONGCYCL)
+#
+# ALARM OR ABORT EXIT MODE --
+#	NONE
+#
+# OUTPUT --
+#	LONGTIME AND LONGTIME+1 = DELTA TIME
+#	LONGEXIT AND LONGEXIT+1 = RETURN 2CADR
+#	LONGCADR AND LONGCADR+1 = TASK 2CADR
+#	A = SINGLE PRECISION TIME FOR WAITLIST
+#
+# ERASABLE INITIALIZATION --
+#	A = MOST SIGNIFICANT PART OF DELTA TIME
+#	L = LEAST SIGNIFICANT PART OF DELTA TIME
+#	Q = ADDRESS OF 2CADR TASK VALUE
+#
+# DEBRIS --
+#	A,Q,L
+#	LONGCADR AND LONGCADR+1
+#	LONGEXIT AND LONGEXIT+1
+#	LONGTIME AND LONGTIME+1
+#
+# *** THE FOLLOWING IS TO BE IN FIXED-FIXED AND UNSWITCHED ERASIBLE **
+
+		BLOCK	02
+		EBANK=	LST1
+LONGCALL	DXCH	LONGTIME	# OBTAIN THE DELTA TIME
+
+		EXTEND			# OBTAIN THE 2CADR
+# Page 1234
+		NDX	Q
+		DCA	0
+		DXCH	LONGCADR
+
+		EXTEND			# NO GO TO THE APPROPRIATE SWITCHED BANK
+		DCA	LGCL2CDR	# FOR THE REST OF LONGCALL
+		DTCB
+
+		EBANK=	LST1
+LGCL2CDR	2CADR	LNGCALL2
+
+# *** THE FOLLOWING MAY BE IN A SWITCHED BANK, INCLUDING ITS ERASABLE ***
+
+		BANK	01
+		COUNT	01/WAIT
+		
+LNGCALL2	LXCH	LONGEXIT +1	# SAVE THE CORRECT BB FOR RETURN
+		CA	TWO		# OBTAIN THE RETURN ADDRESS
+		ADS	Q
+		TS	LONGEXIT
+
+# *** WAITLIST TASK LONGCYCL ***
+
+LONGCYCL	EXTEND			# CAN WE SUCCESFULLY TAKE ABOUT 1.25
+		DCS	DPBIT14		# MINUTES OFF OF LONGTIME
+		DAS	LONGTIME
+
+		CCS	LONGTIME +1	# THE REASONING BEHIND THIS PART IS
+		TCF	MUCHTIME	# INVOLVED, TAKING INTO ACCOUNT THAT THE
+					# WORDS MAY NOT BE SIGNED CORRECTED (DP
+					# BASIC INSTRUCTIONS
+					# DO NOT SIGN CORRECT) AND THAT WE SUBTRAC-
+					# TED BIT14 (1 OVER HALF THE POS. VALUE
+					# REPRESENTABLE IN SINGLE WORD)
+		NOOP			# CAN'T GET HERE *************
+		TCF	+1
+		CCS	LONGTIME
+		TCF	MUCHTIME
+DPBIT14		OCT	00000
+		OCT	20000
+
+					# LONGCALL
+LASTTIME	CA	BIT14		# GET BACK THE CORRECT DELTA TFOR WAITLIST
+		ADS	LONGTIME +1
+		TC	WAITLIST
+		EBANK=	LST1
+		2CADR	GETCADR		# THE ENTRY TO OUR LONGCADR
+
+LONGRTRN	CA	TSKOVCDR	# SET IT UP SO THAT ONLY THE FIRST EXIT IS
+# Page 1235
+		DXCH	LONGEXIT	# TO THE CALLER OF LONGCALL
+		DTCB			# THE REST ARE TO TASKOVER
+
+MUCHTIME	CA	BIT14		# WE HAVE OVER OUR ABOUT 1.25 MINUTES
+		TC	WAITLIST	# SO SET UP FOR ANOTHER CYCLE THROUGH HERE
+		EBANK=	LST1
+		2CADR	LONGCYCL
+
+		TCF	LONGRTRN	# NOW EXIT PROPERLY
+
+# *** WAITLIST TASK GETCADR ***
+
+GETCADR		DXCH	LONGCADR	# GET THE LONGCALL THAT WE WISHED TO START
+		DTCB			# AND TRANSFER CONTROL TO IT
+
+TSKOVCDR	GENADR	TASKOVER
+
+