Proof SERVICER207 #255 (#394)

* Proof FIXED_FIXED_CONSTANT_POOL (#207)

* wip(p820/836): Proof SERVICER207 #255

* done(p836/836): Proof SERVICER207 #255
This commit is contained in:
Glenn Dwiyatcita 2019-06-16 17:07:18 +02:00 committed by James Harris
parent 8499a3e178
commit 5c42d61698

View File

@ -30,73 +30,79 @@
# Page 819
# SERVICER207
#
# PROGRAM NAME: PREREAD, READACCS, SERVICER, AVERAGE G.
# MOD NO. 00 BY M. HAMILTON DEC. 12, 1966
#
# 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).
#
# READACCS, 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).
# 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.
#
# GDT/2 INITIALIZED VIA CALCGRAV SUBROUTINE.
# 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.
#
# SEC INTERVALS. INTERVALS ARE COUNTED OUT BY PIPCTR, INITIALISED 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:
# 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.
@ -104,30 +110,32 @@
# 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
# 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
# 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.
@ -137,46 +145,50 @@
# 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
#
# 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
# 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
# THE 2CADR OF A ROUTINE TO BE PERFORMED AT THAT TIME (E.G., STEERING EQUATIONS TO BE PERFORMED
# 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 USER IF NO OTHER ROUTINE (SEE ABOVE).
#
# 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).
# 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))
# 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.
@ -184,22 +196,24 @@
# 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.
#
# 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)
# 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?)
# RN1(6) VN1(6) GDT1/2 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.
# 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
# (RE/RMAG)SQ IN 32D.
BANK 27
SETLOC SERVICES
@ -207,6 +221,7 @@
EBANK= DVCNTR
# ********************* PREREAD ***************************************
#
COUNT 37/SERV
@ -218,7 +233,7 @@ PREREAD CAF PRIO21 # CALLER MUST PROTECT PREREAD
# 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.)
# (REDUNDANT IF LASTBIAS IS AOK)
# Page 823
REDO5.31 TC PREREAD1
@ -379,27 +394,26 @@ AVOUTCAD 2CADR AVGEND
# 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.
#
# THE PURPOSE OF ONMONITOR IS TO PROVIDE 1/2 SEC.READING OF PIPAS FOR DOWNLIST DURING ENTRY.
# X,Y,ZPIPBUF CONTAIN PRESET VALUES X,Y,ZOLDBUF CONTAIN VALUES FROM PREVIOUS READING.
# CALLING SEQUENCE
#
# CALL AS WAITLIST TASK. TERMINATES ITSELF IN TASKOVER
#
# INITIALIZATION
#
# INITIALISATION
# 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
@ -426,6 +440,7 @@ CHKCTR CCS RUPTREG1
# Page 828
# ********************* SERVICER ***************************************
#
EBANK= DVCNTR
@ -481,7 +496,7 @@ AVERAGEG TC PHASCHNG
OCT 10035
CAF OCT31 # COPY RN1,VN1,GOT102,GOBL1/2,PIPTIME1
TC GENTRAN # INTO RN, VN, GDT/12, GOBL/2,PIPTIME
TC GENTRAN # INTO RN ,VN ,GDT/12 ,GOBL/2 ,PIPTIME
ADRES RN1
ADRES RN
RELINT # GENTRAN DOES AN INHINT
@ -559,10 +574,10 @@ MDOTFAIL DEC 144.0 B-16 # 5 SEC MASS LOSS AT 28.8 KG/SEC
# 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.
# SCALED AT 2(+24)M.
NORMLIZE CAF THIRTEEN # SET UP TO COPY 14 REGS: RN1,VN1,PIPTIME1
TC GENTRAN # INTO RN,VN,PIPTIME
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
@ -570,7 +585,7 @@ NORMLIZE CAF THIRTEEN # SET UP TO COPY 14 REGS: RN1,VN1,PIPTIME1
TC INTPRET
VLOAD CALL # LOAD RN FOR CALCGRAV
RN
CALCGRAV # INITIALIZE UNITR RMAG GDT1
CALCGRAV # INITIALISE UNITR RMAG GDT1
STOVL GDT/2
GOBL1/2
@ -580,37 +595,43 @@ NORMLIZE CAF THIRTEEN # SET UP TO COPY 14 REGS: RN1,VN1,PIPTIME1
# Page 832
# ***** PIPA READER *****
# MOD NO. 00 BY D. LICKLY DEC. 9 1966
#
# 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
# THE CDU READING IN 2S 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
@ -626,8 +647,8 @@ PIPASR EXTEND
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 DELVX +1 # LOW ORDER DELV'S ARE ZEROED FOR TM: THUS
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.
@ -658,7 +679,7 @@ REREADAC CCS PHASE5 # LAST PASS CHECK
# 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)
# 2.0SEC SC.AT B+8CS)
CCS PIPAGE
TCF READACCS # PIP READING NOT STARTED. GO TO BEGINNING
@ -704,20 +725,20 @@ CHKTEMX CCS TEMX # HAS THIS CHANGED
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.
# 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.
#
# 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.
@ -781,7 +802,7 @@ CALCRVG VLOAD VXSC
VAD VAD
VAD
VN
STCALL VN1 # TEMP STORAGE OF VN SCALED 2(+7) M/CS.
STCALL VN1 # TEMP STORAGE OF VN SCALED 2(+7)M/CS.
31D
KPIP 2DEC .1024 # SCALES DELV TO 2(+4)
@ -801,4 +822,3 @@ RESQ 2DEC* 40.6809913 E12 B-59*
20J 2DEC* 3.24692010 E-2 B1*
2J 2DEC* 3.24692010 E-3 B1*