https://github.com/virtualagc/virtualagc
Revision 4e5d304eb7cd5589b924ffb8b423b6f15511b35d authored by Ron Burkey on 20 October 2018, 17:47:00 UTC, committed by Ron Burkey on 20 October 2018, 17:47:00 UTC
the recently-added documents about YUL, was transcribed.  Because the
original program contained a deliberate error in YUL (as well as some
constructs that have unintentionally become errors in yaYUL), I've
provided it in two forms:  TRIVIUM (which matches the original scan,
to the extent feasible) and TRIVIUM-repaired (which has the deliberate
and unintentional errors fixed, but otherwise retains the identical
functionality of the original).
1 parent c6c292e
Raw File
Tip revision: 4e5d304eb7cd5589b924ffb8b423b6f15511b35d authored by Ron Burkey on 20 October 2018, 17:47:00 UTC
The sample Block I AGC program TRIVIUM, found at the very end of one of
Tip revision: 4e5d304
Solarium055.pad
# Copyright:	Public Domain
# Filename:	Solarium055.pad
# Purpose:	A list of pad loads for Solarium 055. 
# Mod history:	2016-09-08 RSB	Created.

# The following are words that I've identified Solarium 055 as 
# loading and using uninitialized.  The values I've assigned to
# them may or may not make sense.  I'll try to document what
# they mean here, as I discover the meanings.

#----------------------------
# The following are all for the interpreter.  It seems unlikely
# to me that they are actually used uninitialized, and that it's
# merely my detection mechanism that's too crude. Looking
# at them in more detail might confirm that.  (An example of how
# the detection mechanism fails is that an XCH is often used to
# store to a memory location in place of a TS.  Not sure why,
# unless it's to avoid worrying about overflow.  At any rate,
# since I don't know how the value fetched into A will be used,
# unless I analyze each case, I have to treat it as an uninitialized
# access.)

0065 000000 	# MODE.  For the interpreter.
		# 0-2 are used to indicate vector vs DP vs TP
		# modes.  Sometimes these seem to be negative (-0, -1,
		# or -2). Apparently, ADRLOC can also be stored
		# in it, without compromising the vector/DP/TP setting,
		# by first shifting it two places to the left.  I've also
		# seen 040003, but I'm not sure that falls into the
		# ADRLOC+MODE pattern.
0077 000000	# BUF.  "Used by DMP1, SQRTDIV", as well as LOG, TPAGREE,
		# and possibly others.  In short, by the interpreter.
0100 000000	# BUF +1
0101 000000	# BUF +2
0112 000000	# COMPON
0113 000000	# ARETURN
0114 000000	# ESCAPE
0115 000000	# MPAC. "Multiple-precision accumulator", in interpreter.
0116 000000	# MPAC +1
0117 000000	# MPAC +1
0121 000000	# ADRLOC. For the EXECUTIVE.  "Location counter for 
		# operand addresses."  I believe it is used to index
		# the operands relative to the address Q register.
		# I.e., the operands follow a TC to the routine using
		# those operands.
0122 000000	# OVFIND
0123 000000	# PUSHLOC
0125 000000	# NEWJOB
0126 000000
0127 000000
0130 000000
0131 000000
0132 000000
0133 000000
0134 000000
0135 000000
0136 000000
0137 000000
0140 000000
0141 000000
0142 000000
0143 000000
0144 000000
0145 000000
0146 000000
0147 000000
0150 000000
0151 000000
0152 000000
0153 000000
0154 000000
0155 000000
0156 000000
0157 000000
0160 000000
0161 000000
0162 000000
0163 000000
0164 000000
0165 000000
0166 000000
0167 000000
0170 000000
0171 000000
0172 000000
0173 000000
0174 000000
0175 000000
0176 000000
0177 000000
0200 000000
0201 000000
0202 000000
0203 000000
0204 000000
0205 000000
0206 000000
0207 000000
0210 000000
0211 000000
0212 000000
0213 000000
0214 000000	# NEWJOB +55D
#-----------------------------
0612 000000	# MODREG. Mode code. The MM, I believe. Starts as 00 on fresh start.
0624 000000	# NOUNADD
0625 000000	# MONSAVE
0626 000000	# MONSAVE +1
0643 000000	# SAMPTIME
0644 000000	# SAMPTIME +1
# Solarium itself initializes STATE/FLAGWRD1/FLAGWRD2 to 01340/0/0 by copying SWINIT to
# them, so their appearance here isn't actually needed.
0645 001340	# STATE:
		# B2: UPLOCK
		# B3: EXTVBACT
		# B4: DSPLOCK
0646 000000 	# FLAGWRD1 (STATE + 1):
		# B1: Tumble flag.
		# B2: S4B signal received; i.e., liftoff has occurred.
		# B3: Entry flag.
		# B4: Steer flag
		# B5: Dvmon flag.
		# B6: Monit flag.
		# B7: INT1 flag (200-second interrupt)
		# B8: ... something to do with S4B ...
		# B9: Init flag.
		# B10: INTP flag (95-second interrupt)
		# B11: IMU gyrocompassing, mode switch in progress.
		# B12: Shutdown flag.
		# B13: Engine on, soak flag.
		# B14: V76 update flag
		# B15: Coast flag.
0647 000000	# FLAGWRD2 (STATE +2).		
0650 000000	# PHASETAB
0651 000000	# PHASETAB +1
0652 000000	# PHASETAB +2
0653 000000	# PHASETAB +3
0654 000000	# PHASETAB +4
0655 000000	# PHASETAB +5
0656 000000	# PHASEBAR
0657 000000	# PHASEBAR +1
0660 000000	# PHASEBAR +2
0661 000000	# PHASEBAR +3
0662 000000	# PHASEBAR +4
0663 000000	# PHASEBAR +5
0726 000002	# OLDERR.  LAST-SAMPLED SYSTEM ERROR BITS.
		#       THE BITS OF OLDERR HAVE THE FOLLOWING MEANINGS:
		# BIT  1 = 1 IF THE PILOTS ATTITUDE BUTTON IS DEPRESSED.
		# BIT  2 = 1 IF RESTART FAILED (AND DID A FRESH START).
		# BIT  3 = 1 IF BIT 4 OF OUT1 WAS NOT INVERTED LAST NWJOB.
		# BIT  4 = 1 TO INHIBIT IMU FAIL FOR 5 SECONDS AFTER COARSE ALIGN.
		# BIT  5 = 1 IF CURTAINS CALLED (IMU MODING FAILURE, ETC.)
		# BIT 10 = 1 IF CDU FAIL IS ON IN FINE ALIGN.
		# BIT 11 = 1 IF PIPA FAIL IS ON.
		# BIT 12 = 1 IF IMU FAIL IS ON IN ANY MODE BUT COARSE ALIGN.
		#       IN FLIGHT 501 [Apollo 4], BITS 2, 5, 11, AND 12 INHIBIT MAINTENANCE OF THE NIGHT WATCHMAN ALARM
		# SO THAT IF THEY ARE PRESENT FOR 2 CONSECUTIVE NWJOBS, G & N FAIL WILL BE SENT TO THE MCP.
1760 000000 	# ERESTORE
1761 000000	# 2OPTIONS
1762 000000	# SMODE
1763 000000	# FAILREG
1764 000000	# SFAIL
1765 000000	# ERCOUNT
1766 000000	# SCOUNT
1771 000000 	# SKEEP1
1772 000000 	# SKEEP2
1773 000000 	# SKEEP3
1774 000000 	# SKEEP4
1775 000000 	# SKEEP5
1776 000000 	# SKEEP6
1777 000000 	# SKEEP7
back to top