Source Code
015463,000001: # Copyright: Public domain.
015464,000002: # Filename: SYSTEM_TEST_STANDARD_LEAD_INS.agc
015465,000003: # Purpose: Part of the source code for Luminary 1A build 099.
015466,000004: # It is part of the source code for the Lunar Module's (LM)
015467,000005: # Apollo Guidance Computer (AGC), for Apollo 11.
015468,000006: # Assembler: yaYUL
015469,000007: # Contact: Ron Burkey <info@sandroid.org>.
015470,000008: # Website: www.ibiblio.org/apollo.
015471,000009: # Pages: 370-372
015472,000010: # Mod history: 2009-05-17 RSB Adapted from the corresponding
015473,000011: # Luminary131 file, using page
015474,000012: # images from Luminary 1A.
015475,000013:
015476,000014: # This source code has been transcribed or otherwise adapted from
015477,000015: # digitized images of a hardcopy from the MIT Museum. The digitization
015478,000016: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of
015479,000017: # the Museum. Many thanks to both. The images (with suitable reduction
015480,000018: # in storage size and consequent reduction in image quality as well) are
015481,000019: # available online at www.ibiblio.org/apollo. If for some reason you
015482,000020: # find that the images are illegible, contact me at info@sandroid.org
015483,000021: # about getting access to the (much) higher-quality images which Paul
015484,000022: # actually created.
015485,000023:
015486,000024: # Notations on the hardcopy document read, in part:
015487,000025:
015488,000026: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61
015489,000027: # 16:27 JULY 14, 1969
015490,000028:
015491,000029: # Page 370
015492,000030: 22,3242 E5,1642 EBANK= XSM
015493,000031:
015494,000032: 33,2045 BANK 33
015495,000033: 04,2000 SETLOC E/PROG
015496,000034: 04,2000 BANK
015497,000035:
015498,000036: 04,2576 COUNT* $$/P07
015499,000037:
015500,000038: # SPECIAL PROGRAMS TO EASE THE PANGS OF ERASABLE MEMORY PROGRAMS.
015501,000039:
015502,000040: # E/BKCALL FOR DOING BANKCALLS FROM AND RETURNING TO ERASABLE.
015503,000041:
015504,000042: # THIS ROUTINE IS CALLABLE FROM ERASABLE OR FIXED. LIKE BANKCALL, HOWEVER, SWITCHING BETWEEN S3 AND S4
015505,000043: # IS NOT POSSIBLE.
015506,000044:
015507,000045: # THE CALLING SEQUENCE IS
015508,000046:
015509,000047: # TC BANKCALL
015510,000048: # CADR E/BKCALL
015511,000049: # CADR ROUTINE # WHERE TO WANT TO GO IN FIXED.
015512,000050: # RETURN HERE FROM DISPLAY TERMINATE, BAD STALL OR TC Q.
015513,000051: # RETURN HERE FROM DISPLAY PROCEED OR GOOD RETURN FROM STALL.
015514,000052: # RETURN HERE FROM DISPLAY ENTER OR RECYCLE.
015515,000053:
015516,000054: # THIS ROUTINE REQUIRES TWO ERASABLES (EBUF2, +1) IN UNSWITCHED WHICH ARE UNSHARED BY INTERRUPTS AND
015517,000055: # OTHER EMEMORY PROGRAMS.
015518,000056:
015519,000057: # A + L ARE PRESERVED THROUGH BANKCALL AND E/BKCALL.
015520,000058:
015521,000059: 04,2576 52134 E/BKCALL DXCH BUF2 # SAVE A,L AND GET DP RETURN
015522,000060: 04,2577 53170 DXCH EBUF2 # SAVE DP RETURN.
015523,000061: 04,2600 25167 INCR EBUF2 # RETURN +1 BECAUSE DOUBLE CADR.
015524,000062: 04,2601 30006 CA BBANK
015525,000063: 04,2602 75012 MASK LOW10 # GET CURRENT EBANK. (SBANK SOMEDAY)
015526,000064: 04,2603 27170 ADS EBUF2 +1 # FORM BBCON. (WAS FBANK)
015527,000065: 04,2604 51167 NDX EBUF2
015528,000066: 04,2605 27777 CA 0 -1 # GET CADR OF ROUTINE.
015529,000067: 04,2606 04622 TC SWCALL # GO TO ROUTINE, SETTING Q TO SWRETURN
015530,000068: # AND RESTORING A + L.
015531,000069: 04,2607 02613 TC +4 # TX Q, V34, OR BAD STALL RETURN.
015532,000070: 04,2610 02612 TC +2 # PROCEED OR GOOD STALL RETURN.
015533,000071: 04,2611 25167 INCR EBUF2 # ENTER OR RECYCLE RETURN
015534,000072: 04,2612 25167 INCR EBUF2
015535,000073: 04,2613 53170 E/SWITCH DXCH EBUF2
015536,000074: 04,2614 52006 DTCB
015537,000075:
015538,000076: # Page 371
015539,000077: # E/CALL FOR CALLING A FIXED MEMORY INTERPRETIVE SUBROUTINE FROM ERASABLE AND RETURNING TO ERASABLE.
015540,000078:
015541,000079: # THE CALLING SEQUENCE IS...
015542,000080:
015543,000081: # RTB
015544,000082: # E/CALL
015545,000083: # CADR ROUTINE # THE INTERPRETIVE SUBROUTINE YOU WANT
015546,000084: # # RETURNS HERE IN INTERPRETIVE.
015547,000085:
015548,000086: 04,2615 22164 E/CALL LXCH LOC # ADRES -1 OF CADR.
015549,000087: 04,2616 50001 INDEX L
015550,000088: 04,2617 30001 CA L # CADR IN A.
015551,000089: 04,2620 24001 INCR L
015552,000090: 04,2621 24001 INCR L # RETURN ADRES IN L.
015553,000091: 04,2622 53170 DXCH EBUF2 # STORE CADR AND RETURN
015554,000092: 04,2623 06037 TC INTPRET
015555,000093: 04,2624 77624 CALL
015556,000094: 04,2625 01167 EBUF2 # INDIRECTLY EXECUTE ROUTING. IT MUST
015557,000095: 04,2626 77776 EXIT # LEAVE VIA RVQ OR EQUIVALENT.
015558,000096: 04,2627 23170 LXCH EBUF2 +1 # PICK UP RETURN.
015559,000097: 04,2630 16041 TCF INTPRET +2 # SET LOC AND RETURN TO CALLER.
015560,000098:
015561,000099: # Page 372
015562,000100: # E/JOBWAK FOR WAKING UP ERASABLE MEMORY JOBS.
015563,000101:
015564,000102: # THIS ROUTINE MUST BE CALLED IN INTERRUPT OR WITH INTERRUPTS INHIBITED.
015565,000103:
015566,000104: # THE CALLING SEQUENCE IS
015567,000105:
015568,000106: # INHINT
015569,000107: # ...
015570,000108: # CA WAKEADR # ADDRESS OF SLEEPING JOB
015571,000109: # TC IBNKCALL
015572,000110: # CADR E/JOBWAK
015573,000111: # ... # RETURNS HERE
015574,000112: # RELINT # IF YOU DID AND INHINT
015575,000113:
015576,000114: 33,2045 BANK 33
015577,000115: 04,2000 SETLOC E/PROG
015578,000116: 04,2000 BANK
015579,000117:
015580,000118: 04,2631 COUNT* $$/P07
015581,000119:
015582,000120: 04,2631 05137 E/JOBWAK TC JOBWAKE # ARRIVE WITH ADRES IN A.
015583,000121: 04,2632 44741 CS BIT11
015584,000122: 04,2633 50064 NDX LOCCTR
015585,000123: 04,2634 26164 ADS LOC # KNOCK FIXED MEMORY BIT OUT OF ADRES.
015586,000124: 04,2635 00072 TC RUPTREG3 # RETURN
015587,000125:
End of include-file SYSTEM_TEST_STANDARD_LEAD_INS.agc. Parent file is MAIN.agc