Source Code
These source code files are an attempted reconstruction of Sundance revision 306, the Apollo 9
LM (Lunar Module) AGC (Apollo Guidance Computer) flight software, created from binary dumps of
original core rope program modules, as follows:
|
013700,000002: ## Copyright: Public domain.
013701,000003: ## Filename: SYSTEM_TEST_STANDARD_LEAD_INS.agc
013702,000004: ## Purpose: A section of an attempt to reconstruct Sundance revision 306
013703,000005: ## as closely as possible with available information. Sundance
013704,000006: ## 306 is the source code for the Lunar Module's (LM) Apollo
013705,000007: ## Guidance Computer (AGC) for Apollo 9. This program was created
013706,000008: ## using the mixed-revision SundanceXXX as a starting point, and
013707,000009: ## pulling back features from Luminary 69 believed to have been
013708,000010: ## added based on memos, checklists, observed address changes,
013709,000011: ## or the Sundance GSOPs.
013710,000012: ## Assembler: yaYUL
013711,000013: ## Contact: Ron Burkey <info@sandroid.org>.
013712,000014: ## Website: www.ibiblio.org/apollo/index.html
013713,000015: ## Mod history: 2020-07-24 MAS Created from SundanceXXX.
013714,000016:
013715,000017:
013716,000018: 22,3236 E5,1642 EBANK= XSM
013717,000019:
013718,000020: 33,2000 BANK 33
013719,000021: 04,2000 SETLOC E/PROG
013720,000022: 04,2000 BANK
013721,000023:
013722,000024: 04,2450 COUNT* $$/P07
013723,000025:
013724,000026: # SPECIAL PROGRAMS TO EASE THE PANGS OF ERASABLE MEMORY PROGRAMS.
013725,000027:
013726,000028: # E/BKCALL FOR DOING BANKCALLS FROM AND RETURNING TO ERASABLE.
013727,000029:
013728,000030: # THIS ROUTINE IS CALLABLE FROM ERASABLE OR FIXED. LIKE BANKCALL, HOWEVER, SWITCHING BETWEEN S3 AND S4
013729,000031: # IS NOT POSSIBLE.
013730,000032:
013731,000033: # THE CALLING SEQUENCE IS:
013732,000034:
013733,000035: # TC BANKCALL
013734,000036: # CADR E/BKCALL
013735,000037: # CADR ROUTINE WHERE YOU WANT TO GO IN FIXED.
013736,000038: # RETURN HERE FROM DISPLAY TERMINATE, BAD STALL OR TC Q.
013737,000039: # RETURN HERE FROM DISPLAY PROCEED OR GOOD RETURN FROM STALL.
013738,000040: # RETURN HERE FROM DISPLAY ENTER OR RECYCLE.
013739,000041:
013740,000042: # THIS ROUTINE REQUIRES TWO ERASABLES (EBUF2, +1) IN UNSWITCHED WHICH ARE UNSHARED BY INTERRUPTS AND
013741,000043: # OTHER EMEMORY PROGRAMS.
013742,000044:
013743,000045: # A + L ARE PRESERVED THROUGH BANKCALL AND E/BKCALL.
013744,000046:
013745,000047: 04,2450 52134 E/BKCALL DXCH BUF2 # SAVE A,L AND GET DP RETURN.
013746,000048: 04,2451 52302 DXCH EBUF2 # SAVE DP RETURN.
013747,000049: 04,2452 24301 INCR EBUF2 # RETURN +1 BECAUSE DOUBLE CADR.
013748,000050: 04,2453 30006 CA BBANK
013749,000051: 04,2454 75062 MASK LOW10 # GET CURRENT EBANK. (SBANK SOMEDAY)
013750,000052: 04,2455 26302 ADS EBUF2 +1 # FORM BBCON. (WAS FBANK)
013751,000053: 04,2456 50301 NDX EBUF2
013752,000054: 04,2457 27777 CA 0 -1 # GET CADR OF ROUTINE.
013753,000055: 04,2460 04661 TC SWCALL # GO TO ROUTINE, SETTING Q TO SWRETURN
013754,000056: # AND RESTORING A + L.
013755,000057: 04,2461 02465 TC +4 # TX Q, V34, OR BAD STALL RETURN.
013756,000058: 04,2462 02464 TC +2 # PROCEED OR GOOD STALL RETURN.
013757,000059: 04,2463 24301 INCR EBUF2 # ENTER OR RECYCLE RETURN.
013758,000060: 04,2464 24301 INCR EBUF2
013759,000061: 04,2465 52302 E/SWITCH DXCH EBUF2
013760,000062: 04,2466 52006 DTCB
013761,000063:
013762,000064: # E/CALL FOR CALLING A FIXED MEMORY INTERPRETIVE SUBROUTINE FROM ERASABLE AND RETURNING TO ERASABLE.
013763,000065:
013764,000066: # THE CALLING SEQUENCE IS...
013765,000067:
013766,000068: # RTB
013767,000069: # E/CALL
013768,000070: # CADR ROUTINE THE INTERPRETIVE SUBROUTINE YOU WANT.
013769,000071: # RETURNS HERE IN INTERPRETIVE.
013770,000072:
013771,000073: 04,2467 22164 E/CALL LXCH LOC # ADRES -1 OF CADR.
013772,000074: 04,2470 50001 INDEX L
013773,000075: 04,2471 30001 CA L # CADR IN A.
013774,000076: 04,2472 24001 INCR L
013775,000077: 04,2473 24001 INCR L # RETURN ADRES IN L.
013776,000078: 04,2474 52302 DXCH EBUF2 # STORE CADR AND RETURN.
013777,000079: 04,2475 06014 TC INTPRET
013778,000080: 04,2476 77624 CALL
013779,000081: 04,2477 00301 EBUF2 # INDIRECTLY EXECUTE ROUTINE. IT MUST
013780,000082: 04,2500 77776 EXIT # LEAVE VIA RVQ OR EQUIVALENT.
013781,000083: 04,2501 22302 LXCH EBUF2 +1 # PICK UP RETURN.
013782,000084: 04,2502 16015 TCF INTPRET +1 # SET LOC AND RETURN TO CALLER.
013783,000085:
013784,000086: # E/JOBWAK FOR WAKING UP ERASABLE MEMORY JOBS.
013785,000087:
013786,000088: # THIS ROUTINE MUST BE CALLED IN INTERRUPT OR WITH INTERRUPTS INHIBITED.
013787,000089:
013788,000090: # THE CALLING SEQUENCE IS:
013789,000091:
013790,000092: # INHINT
013791,000093: # .
013792,000094: # .
013793,000095: # CA WAKEADR ADDRESS OF SLEEPING JOB
013794,000096: # TC IBNKCALL
013795,000097: # CADR E/JOBWAK
013796,000098: # . RETURNS HERE
013797,000099: # .
013798,000100: # .
013799,000101: # RELINT IF YOU DID AN INHINT.
013800,000102:
013801,000103: 33,2000 BANK 33
013802,000104: 04,2000 SETLOC E/PROG
013803,000105: 04,2000 BANK
013804,000106:
013805,000107: 04,2503 COUNT* $$/P07
013806,000108:
013807,000109: 04,2503 05207 E/JOBWAK TC JOBWAKE # ARRIVE IWTH ADRES IN A.
013808,000110: 04,2504 45014 CS BIT11
013809,000111: 04,2505 50064 NDX LOCCTR
013810,000112: 04,2506 26164 ADS LOC # KNOCK FIXED MEMORY BIT OUT OF ADRES.
013811,000113: 04,2507 00072 TC RUPTREG3 # RETURN
013812,000114:
End of include-file SYSTEM_TEST_STANDARD_LEAD_INS.agc. Parent file is MAIN.agc