Proof DAPIDLER_PROGRAM #573 (#734)

Co-authored-by: James Harris <wopian@wopian.me>
This commit is contained in:
cnsumner 2020-10-19 15:32:07 -04:00 committed by GitHub
parent fbb3cc0a82
commit 8c1ce8ef4d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -30,7 +30,6 @@
# 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
@ -91,7 +90,7 @@ CHECKUP TC CHEKBITS # CHECK TO SEE IF LM DAP IS TO GO ON AND
STARTDAP TC IBNKCALL # ZERO ATTITUDE ERROR AND DESIRED RATES.
FCADR ZATTEROR
CAF ZERO # ************ INITIALIZE: *************
CAF ZERO # ********** INITIALIZE: **********
TS TJP
TS TJU
TS TJV
@ -213,25 +212,27 @@ DSPCADR 2CADR ALTDSPLY
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
#
# 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: 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)
# 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.
# OUTPUTS: RCSFLAGS WITH DSPLYALT REVERSED,AK,AK1,AK2,+ NEEDLER OUTPUTS.
#
# ENTRY: TCF ALTDSPLY
#
@ -241,7 +242,7 @@ DSPCADR 2CADR ALTDSPLY
#
# SUBPROGRAMS CALLED: NEEDLER, OVERSUB2
#
# DEBRIS: A, L, AND NEEDLER DEBRIS.
# DEBRIS: A,L,AND NEEDLER DEBRIS.
ALTDSPLY CA RCSFLAGS # INVERT THE DISPLAY ALTERNATION BIT.
TS L
@ -258,9 +259,9 @@ ALTDSPLY CA RCSFLAGS # INVERT THE DISPLAY ALTERNATION BIT.
# Page 1415
MASK NEEDLBIT # TITUDE ERROR DISPLAY REQUEST.
CCS A
TCF DSPLYTOT # TOTAL ERROR IS NEEDED IN AK, AK +1, AK +2
TCF DSPLYTOT # TOTAL ERROR IS NEEDED IN AK,AK +1,AK +2
CS QERROR # YES. DISPLAY ATT ERRORS ON THE -BALL.
CS QERROR # YES. DISPLAY ATT ERRORS ON THE ,-BALL.
TS AK +1 # ERROR COMPLEMENTS ARE INPUT TO NEEDLER.
CS RERROR
TS AK +2
@ -279,9 +280,9 @@ DSPLYTOT EXTEND
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.
MP M21 # (CHTETA-CDUY)*M21 SCALED AT PI RADIANS.
XCH AK +1 # STORE FIRST TERM OF Q ERROR.
CA CPSI # DESIRED ATTITUDE, Z-AXIS, 2'S COMP.
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
@ -316,7 +317,7 @@ DSPLYTOT EXTEND
# M13 = 1, SO BYPASS THE MULTIPLICATION.
# EXTEND
# MP M13 # (CPHI-CDUX)*M13 SCALED AT PI RADIANS.
# 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.
@ -331,35 +332,45 @@ DSPLYTOT EXTEND
# 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.
#
# 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
#
# 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:
# A CALL TO NEEDLER WILL THEN UPDATE THE DISPLAY:
#
# INHINT
# TC IBNKCALL # NOTE: EBANK SHOULD BE SET TO E6
# 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.
# NOTE: EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50MS TO ASSURE PROPER RELAY SEQUENCING.
#
# ERASABLES USED:
# AK CDUXCMD
@ -372,14 +383,16 @@ DSPLYTOT EXTEND
#
# SWITCHES: RCSFLAGS BITS 3,2
#
# I/O CHANNELS: CHAN12 BIT 4 (COARSE ALIGN -- READ ONLY)
# 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
#
# SIGN CONVENTION< AK = THETAC - THETA
# WHERE THETAC = COMMAND ANGLE
# THETA = PRESENT ANGLE
NEEDLER CA RCSFLAGS
MASK SIX
EXTEND
@ -411,8 +424,8 @@ 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.
MASK RCSFLAGS # ERRORS WAIT ATLEAST 4 MS FOR
TS RCSFLAGS # RELAY CLOSURE
TCF RETNMORE
NEEDLES3 CAF BIT6 # CHECK TO SEE IF IMU ERROR COUNTER