https://github.com/virtualagc/virtualagc
Revision 078c79d8734a9ed2860303a7c1662004284fe853 authored by Ron Burkey on 07 August 2022, 15:04:04 UTC, committed by Ron Burkey on 07 August 2022, 15:04:04 UTC
assembly listings from yaASM and yaLEMAP. Added some debugging messages
to 'make install'.  Tweaked debugging messages that VirtualAGC embeds in
'simulate'.  Verified buildability in Mint 21, 20, 19, 17, and verified
buildability using clang in Mint 17.
1 parent 6bb1acc
Raw File
Tip revision: 078c79d8734a9ed2860303a7c1662004284fe853 authored by Ron Burkey on 07 August 2022, 15:04:04 UTC
Fixed a potential string-overflow bug in yaASM. Removed timestamps from
Tip revision: 078c79d
RESTART_TABLES.agc
### FILE="Main.annotation"
## Copyright:   Public domain.
## Filename:    RESTART_TABLES.agc
## Purpose:     A section of Luminary revision 173.
##              It is part of the reconstructed source code for the second
##              (unflown) release of the flight software for the Lunar
##              Module's (LM) Apollo Guidance Computer (AGC) for Apollo 14.
##              The code has been recreated from a reconstructed copy of
##              Luminary 178, as well as Luminary memo 167 (revision 1).
##              It has been adapted such that the resulting bugger words
##              exactly match those specified for Luminary 173 in NASA
##              drawing 2021152N, which gives relatively high confidence
##              that the reconstruction is correct.
## Reference:   pp. 245-250
## Assembler:   yaYUL
## Contact:     Ron Burkey <info@sandroid.org>.
## Website:     www.ibiblio.org/apollo/index.html
## Mod history: 2019-09-18 MAS  Created from Luminary 178.

## Page 245
# 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 INTO THE TABLES.
#      A JOB HAS ITS PRIORITY STORED IN 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 INFORMATOIN SHOULD BE IN THE BBCON OFTHE 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 WAITLIST IS UP, IT WILL BEGIN
#                                                                         IN 10 MS, OTHERWISE IT WILL BEGIN WHEN
#                                                                         IT NORMALLY WOULD HAVE BEGUN.
## Page 246
#                                                 -GENADR DTIME           WHERE DTIME CONTAINS THE DELTA TIME
#                                                 -2CADR  TASKTASK        OTHERWISE THIS IS AS ABOVE
#
# *****    NOW THE TABLES THEMSELVES *****

		BANK	01
		SETLOC	RESTART
		BANK
			
PRDTTAB		EQUALS	12000			# USED TO FIND THE PRIORITY OR DELTATIME
CADRTAB		EQUALS	12001			# THIS AND THE NEXT RELATIVE LOC CONTAIN
						# RESTART 2CADR
						
		COUNT*	$$/RSTAB		# TABLES IN BANK 1.
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		OCT	21000			# A DUMMY EXAMPLE TO BE REPLACED AS SOON
		EBANK=	STATE
		2CADR	ENDOFJOB		# AS THERE IS A LEGITIMATE 1.2SPOT
		
		DEC	100
		EBANK=	STATE
		2CADR	TASKOVER
		
# ANY MORE GROUP 1.EVEN RESTART VALUES SHOULD GO HERE

1.3SPOT	       -GENADR	SAVET-30
		EBANK=	DVCNTR
	       -2CADR	ULLGTASK
		
1.5SPOT		OCT	32000
		EBANK=	HMEAS
		2CADR	REREPOS
		
# 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

2.3SPOT		GENADR	600SECS
## Page 247
	       -GENADR	STATEINT
		EBANK=	RRECTCSM
		BBCON	STATEINT

2.5SPOT		OCT	05000
		EBANK=	RRECTCSM
		2CADR	STATINT1
		
2.7SPOT		DEC	1500
		EBANK=	LOSCOUNT
	       -2CADR	P20LEMC1

2.11SPOT	OCT	14000
		EBANK=	P21TIME
		2CADR	P25LEM1

2.13SPOT	OCT	10000
		EBANK=	LOSCOUNT
		2CADR	RELINUS

2.15SPOT	OCT	26000
		EBANK=	LOSCOUNT
		2CADR	R22RSTRT

2.17SPOT	OCT	77777
		EBANK=	VGPREV
	       -2CADR	REDO2.17

2.21SPOT	DEC	25
		EBANK=	DVCNTR
	       -2CADR	R10,R11

# ANY MORE GROUP 2.ODD RESTART VALUES SHOULD GO HERE.

3.2SPOT		EQUALS	1.2SPOT
# ANY MORE GROUP 3.EVEN RESTART VALUES SHOULD GO HERE

3.3SPOT	       -GENADR	ZOOMTIME
		EBANK=	DVCNTR
	       -2CADR	ZOOM

3.5SPOT		OCT	20000
		EBANK=	TTOGO
		2CADR	S40.13

# ANY MORE GROUP 3.ODD RESTART VALUES SHOULD GO HERE

4.2SPOT		DEC	2500
		EBANK=	TTOGO
## Page 248
	       -2CADR	TIG-5

		OCT	77777
		EBANK=	TTOGO
	       -2CADR	REDO4.2

# ANY MORE GROUP 4.EVEN RESTART VALUES SHOULD GO HERE

4.3SPOT		OCT	25000
		EBANK=	DVCNTR
		2CADR	GOABORT

4.5SPOT		DEC	50
		EBANK=	TTOGO
	       -2CADR	ULLAGOFF

4.7SPOT		DEC	500
		EBANK=	DVCNTR
	       -2CADR	TIG-0

4.11SPOT	-GENADR	TGO +1
		EBANK=	DVCNTR
	       -2CADR	ENGOFTSK

4.13SPOT	OCT	12000
		EBANK=	TRKMKCNT
		2CADR	POSTBURN

4.15SPOT	DEC	500
		EBANK=	TTOGO
	       -2CADR	TIG-30

4.17SPOT	OCT	77777
		EBANK=	DVCNTR
	       -2CADR	TIG-5

4.21SPOT	OCT	13000
		EBANK=	STAR
		2CADR	R51.1 +1

4.23SPOT	OCT	77777
		EBANK=	DVCNTR
	       -2CADR	IGNITION
		
4.25SPOT	GENADR	SAVET-30
	       -GENADR	TIG-35
		EBANK=	SAVET-30
		BBCON	TIG-35
		
## Page 249
4.27SPOT	OCT	52777
		EBANK=	DVCNTR
		2CADR	P70A
		
4.31SPOT	OCT	52777
		EBANK=	DVCNTR
		2CADR	P71A

4.33SPOT	OCT	46777
		EBANK=	DVCNTR
		2CADR	GOPOOFIX
		
4.35SPOT	OCT	46777
		EBANK=	DVCNTR
		2CADR	GOPOODOO
		
4.37SPOT	OCT	52777
		EBANK=	WHICH
		2CADR	COMFAIL
		
# ANY MORE 4.ODD RESTART VALUES SHOULD GO HERE.

5.2SPOT		OCT	22000
		EBANK=	DVCNTR
		2CADR	NORMLIZE
		
		DEC	200
		EBANK=	DVCNTR
	       -2CADR	REREADAC
		
5.4SPOT		DEC	200
		EBANK=	DVCNTR
	       -2CADR	REREADAC

		OCT	20000
		EBANK=	DVCNTR
		2CADR	SERVICER
		
# ANY MORE GROUP 5.EVEN RESTART VALUES SHOULD GO HERE

5.3SPOT		DEC	200
		EBANK=	DVCNTR
	       -2CADR	REREADAC

5.5SPOT		OCT	77777
		EBANK=	DVCNTR
	       -2CADR	REDO5.5

## Page 250
5.7SPOT		OCT	77777
		EBANK=	DVCNTR
	       -2CADR	BIBIBIAS
		
# ANY MORE GROUP 5.ODD RESTART VALUES SHOULD GO HERE

6.2SPOT		EQUALS	1.2SPOT
6.3SPOT		DEC	100
		EBANK=	TIG
	       -2CADR	CLOKTASK
		
6.5SPOT		OCT	30000			# PROTECT INCREMENTING OF TIME2,TIME1 BY
		EBANK=	TEPHEM			# P27(UPDATE PROGRAM) VIA V70 OR V73.
		2CADR	TIMEDIDR
		
6.7SPOT		OCT	17000
		EBANK=	VGPREV
		2CADR	REDO6.7

6.11SPOT	OCT	17000
		EBANK=	VGPREV
		2CADR	FKP5RST

back to top