Raw File
EXTENDED_VERBS_FOR_MODING.agc
### FILE="Main.annotation"
## Copyright:   Public domain.
## Filename:    BANK11.agc
## Purpose:     Part of the source code for AGC program Retread 50.
## Assembler:   yaYUL
## Contact:     Ron Burkey <info@sandroid.org>.
## Website:     www.ibiblio.org/apollo/Restoration.html
## Mod history: 2019-06-12 MAS  Recreated from Computer History Museum's
##				physical core-rope modules.
##              2019-10-01 MAS  Completed disassembly.

## This entire section was added between Retread 44 and Retread 50. As such, all labels, variable names,
## and comments (and even the name of the section itself!) are not original and have been added as part
## of the disassembly process. Labels and comments were taken from similar code in later programs where
## possible, and created anew by VirtualAGC where not.

                SETLOC          32000
                EBANK=          COMMAND

VBZERO          CA              BIT5                            # ROUTINE TO ZERO ICDUS.
                EXTEND
                WOR             12

                CA              20MSEC                          # WAIT 20 MS.
                INHINT
                TC              WAITLIST
                2CADR           ZEROICDU

                TC              ENDOFJOB

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

                CS              BIT5                            # REMOVE ZERO DISCRETE.
                EXTEND
                WAND            12

                TC              TASKOVER

# IMU COARSE ALIGN MODE.

IMUCOARS        CAF             BIT4                            # SEND COARSE ALIGN ENABLE DISCRETE
                EXTEND
                WOR             12

                CAF             50MSEC
                INHINT
                TC              WAITLIST
                2CADR           COARS

                TC              ENDOFJOB

COARS           CAF             BIT6                            # ENABLE ALL THREE ISS CDU ERROR COUNTERS
                EXTEND
                WOR             12

                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

                CA              20MSEC
                TC              WAITLIST
                2CADR           COARS2

                TC              TASKOVER

COARS2          CAF             ZERO
                TS              ITEMP1                          # SETS 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
                INDEX           CDUIND
                TS              CDUXCMD                         # SET UP COMMAND REGISTER.

                CCS             CDUIND
                TC              COARS2          +3

                CCS             ITEMP1                          # SEE IF ANY PULSES TO GO OUT.
                TC              SENDPULS
                TC              COARS1          -1
                EXTEND
                WAND            12

                TC              TASKOVER

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             14
                CAF             600MS
                TC              WAITLIST
                2CADR           COARS2
                TC              TASKOVER

# KEYBOARD REQUEST TO PULSE TORQUE IRIGA

TORQGYRS        CS              BITS4-6                         # RESET ZERO, COARSE, AND ECTR ENABLE.
                EXTEND
                WAND            12

                CAF             TWO                             # INITIALIZE THE GYRO INDEX ERASABLES.
                TS              GYRONUM
                DOUBLE
                TS              GYCMDIDX
                AD              ONE
                TS              GYCMDIDX        +1

                CAF             BIT6                            # ENABLE THE POWER SUPPLY.
                EXTEND
                WOR             14

                CAF             30MSEC
                INHINT
                TC              WAITLIST
                2CADR           IMUPULSE

                TC              ENDOFJOB

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

IMUPULSE        INDEX           GYCMDIDX
                CCS             OGC                             # SEE IF MORE THAN ONE PULSE TRAIN NEEDED
                TC              LONGGYRO                        # (MORE THAN 16383 PULSES).
                TC              LASTSEG
                TC              LONGGYRO
                TC              LASTSEG

LONGGYRO        INDEX           GYCMDIDX                        # SEND MAXIMUM 16383 PULSES.
                TS              OGC

                INDEX           GYCMDIDX        +1
                INCR            OGC

                CAF             POSMAX
                TS              GYROCTR

                CA              5.13SEC                         # WAIT FOR FULL PULSE TRAIN TO GO OUT.
                TC              +1
                TC              WAITLIST
                2CADR           IMUPULSE

STRTGYRO        INDEX           GYCMDIDX        +1              # DETERMINE POLARITY OF COMMAND.
                CCS             OGC
                CAF             ZERO
                TCF             +2
                CAF             BIT9

                INDEX           GYRONUM                         # SEND PULSE COMMAND TO GYRO.
                AD              GYBITTAB
                EXTEND
                WRITE           14

                TC              TASKOVER

LASTSEG         INDEX           GYCMDIDX        +1              # ENTIRE COMMAND.
                CCS             OGC
                TC              +4
                TC              GYROEXIT
                TC              +2
                TC              GYROEXIT

                AD              ONE
                TS              GYROCTR

                AD              -GYROMIN                        # SMALL GYRO COMMAND. SEE IF AT LEAST
                EXTEND                                          # 16 GYRO PULSES.
                BZMF            GYROEXIT

                CAF             BIT10                           # GET WAITLIST DT TO TIME WHEN TRAIN IS
                EXTEND                                          # ALMOST OUT.
                MP              GYROCTR
                AD              TWO
                TC              +1
                TC              WAITLIST
                2CADR           GYROEXIT

                TC              STRTGYRO

GYROEXIT        CCS             GYRONUM
                TCF             NEXTGYRO

                CS              BIT6                            # RESET GYRO ENABLE.
                EXTEND
                WAND            14

                TC              TASKOVER

NEXTGYRO        TS              GYRONUM
                DOUBLE
                TS              GYCMDIDX
                AD              ONE
                TS              GYCMDIDX        +1
                TC              IMUPULSE

# KEYBOARD REQUEST TO TURN ON INERTIAL SUBSYSTEM

ISSUP           CS              BIT15                           # REMOVE IMU DELAY COMPLETE DISCRETE.
                EXTEND
                WAND            12

                CAF             BIT14                           # SEE IF ISS HAS TURNED ON.
                EXTEND
                RAND            30

                CCS             A
                TC              +2
                TC              CAGESUB

                CAF             1SEC                            # CHECK AGAIN IN ONE SECOND.
                TC              WAITLIST
                2CADR           ISSUP

                TC              TASKOVER

CAGESUB         CA              BITS4&5                         # SEND ZERO AND COARSE.
                EXTEND
                WOR             12

                CA              90SECS
                TC              +1
                TC              WAITLIST
                2CADR           ENDTNON

                TC              TASKOVER

ENDTNON         CAF             BIT15                           # SEND ISS DELAY COMPLETE.
                EXTEND
                WOR             12

ENDTNON2        CAF             BIT14
                EXTEND
                RAND            30

                CCS             A                               # IS TURN-ON COMPLETE?
                TC              +2                              # YES.
                TC              ENDTNON3                        # NO. TRY AGAIN IN 10 MS.

                CS              BITS5&15                        # REMOVE IMU ZERO AND DELAY COMPLETE.
                EXTEND
                WAND            12

                CAF             BIT6                            # ENABLE ERROR COUNTERS.
                EXTEND
                WOR             12

                TC              TASKOVER

ENDTNON3        CAF             10MSEC
                TC              +1
                TC              WAITLIST
                2CADR           ENDTNON2

                TC              TASKOVER

# IMU FINE ALIGN MODE SWITCH.

IMUFINE         CS              BITS4-6                         # RESET ZERO, COARSE, AND ECTR ENABLE.
                EXTEND
                WAND            12
                TC              ENDOFJOB


# WAITLIST DELAY TIME CONSTANTS

10MSEC          DEC             1
20MSEC          DEC             2
30MSEC          DEC             3
50MSEC          DEC             5
600MS           DEC             60
1SEC            DEC             100
90SECS          DEC             9000

# CONSTANTS FOR MODE SWITCHING ROUTINES

-COMMAX         DEC             -191
-COMMAX-        DEC             -192

5.13SEC         DEC             513
-GYROMIN        DEC             -16                             # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD.

BITS4&6         OCT             00050
BITS4-6         OCT             00070
BITS4&5         OCT             00030
BITS5&15        OCT             40020
13,14,15        OCT             70000

GYBITTAB        OCT             1140                            # POWER SUPPLY ENABLE, GYRO SELECT,
                OCT             1340                            # GYRO COMMAND OUT.
                OCT             1240

# FAN-OUT

LST2FAN         TC              VBZERO                          # VB40 ZERO ISS CDU
                TC              IMUCOARS                        # VB41 COARSE ALIGN IMU
                TC              IMUFINE                         # VB42 FINE ALIGN IMU
                TC              TORQGYRS                        # VB43 PULSE TORQUE GYROS
ITURNON         INHINT                                          # VB44 ISS TURN ON
                CAF             ONE
                TC              WAITLIST
                2CADR           ISSUP
                TC              ENDOFJOB
back to top