Source Code

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