Source Code

015290,000001: # Copyright: Public domain. 015291,000002: # Filename: SYSTEM_TEST_STANDARD_LEAD_INS.agc 015292,000003: # Purpose: A section of Luminary 1C, revision 131. 015293,000004: # It is part of the source code for the Lunar Module's (LM) 015294,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14. 015295,000006: # This file is intended to be a faithful transcription, except 015296,000007: # that the code format has been changed to conform to the 015297,000008: # requirements of the yaYUL assembler rather than the 015298,000009: # original YUL assembler. 015299,000010: # Reference: pp. 377-379 of 1729.pdf. 015300,000011: # Contact: Ron Burkey <info@sandroid.org>. 015301,000012: # Website: www.ibiblio.org/apollo/index.html 015302,000013: # Mod history: 05/11/03 RSB. Began transcribing. 015303,000014: # 05/14/05 RSB Corrected website reference above. 015304,000015: 015305,000016: # Page 377 015306,000017: 22,3242 E5,1642 EBANK= XSM 015307,000018: 015308,000019: 33,2045 BANK 33 015309,000020: 04,2000 SETLOC E/PROG 015310,000021: 04,2000 BANK 015311,000022: 015312,000023: 04,2562 COUNT* $$/P07 015313,000024: 015314,000025: # SPECIAL PROGRAMS TO EASE THE PANGS OF ERASABLE MEMORY PROGRAMS. 015315,000026: 015316,000027: # E/BKCALL FOR DOING BANKCALLS FROM AND RETURNING TO ERASABLE. 015317,000028: 015318,000029: # THIS ROUTINE IS CALLABLE FROM ERASABLE RO FIXED. LIKE BANKCALL, HOWEVER, SWITCHING BETWEEN S3 AND S4 015319,000030: # IS NOT POSSIBLE. 015320,000031: 015321,000032: # THE CALLING SEQUENCE IS 015322,000033: 015323,000034: # TC BANKCALL 015324,000035: # CADR E/BKCALL 015325,000036: # CADR ROUTINE # WHERE TO WANT TO GO IN FIXED. 015326,000037: # RETURN HERE FROM DISPLAY TERMINATE, BADD STALL OR TC Q. 015327,000038: # RETURN HERE FROM DISPLAY PROCEED OR GOOD RETURN FROM STALL. 015328,000039: # RETURN HERE FROM DISPLAY ENTER OR RECYCLE. 015329,000040: 015330,000041: # THIS ROUTINE REQUIRES TWO ERASABLES (EBUF2, +1) IN UNSWITCHED WHICH ARE UNSHARED BY INTERRUPTS AND 015331,000042: # OTHER EMEMORY PROGRAMS. 015332,000043: 015333,000044: # A + L ARE PRESERVED THROUGH BANKCALL AND E/BKCALL. 015334,000045: 015335,000046: 04,2562 52134 E/BKCALL DXCH BUF2 # SAVE A,L AND GET DP RETURN 015336,000047: 04,2563 53167 DXCH EBUF2 # SAVE DP RETURN. 015337,000048: 04,2564 25166 INCR EBUF2 # RETURN +1 BECAUSE DOUBLE CADR. 015338,000049: 04,2565 30006 CA BBANK 015339,000050: 04,2566 75012 MASK LOW10 # GET CURRENT EBANK. (SBANK SOMEDAY) 015340,000051: 04,2567 27167 ADS EBUF2 +1 # FORM BBCON. (WAS FBANK) 015341,000052: 04,2570 51166 NDX EBUF2 015342,000053: 04,2571 27777 CA 0 -1 # GET CADR OF ROUTINE. 015343,000054: 04,2572 04622 TC SWCALL # GO TO ROUTINE, SETTING Q TO SWRETURN 015344,000055: # AND RESTORING A + L. 015345,000056: 04,2573 02577 TC +4 # TX Q, V34, OR BADD STALL RETURN. 015346,000057: 04,2574 02576 TC +2 # PROCEED OR GOOD STALL RETURN. 015347,000058: 04,2575 25166 INCR EBUF2 # ENTER OR RECYCLE RETURN 015348,000059: 04,2576 25166 INCR EBUF2 015349,000060: 04,2577 53167 E/SWITCH DXCH EBUF2 015350,000061: 04,2600 52006 DTCB 015351,000062: 015352,000063: # Page 378 015353,000064: # E/CALL FOR CALLING A FIXED MEMORY INTERPRETIVE SUBROUTINE FROM ERASABLE AND RETURNING TO ERASABLE. 015354,000065: 015355,000066: # THE CALLING SEQUENCE IS... 015356,000067: 015357,000068: # RTB 015358,000069: # E/CALL 015359,000070: # CADR ROUTINE # THE INTERPRETIVE SUBROUTINE YOU WANT 015360,000071: # # RETURNS HERE IN INTERPRETIVE. 015361,000072: 015362,000073: 04,2601 22164 E/CALL LXCH LOC # ADRES -1 OF CADR. 015363,000074: 04,2602 50001 INDEX L 015364,000075: 04,2603 30001 CA L # CADR IN A. 015365,000076: 04,2604 24001 INCR L 015366,000077: 04,2605 24001 INCR L # RETURN ADRES IN L. 015367,000078: 04,2606 53167 DXCH EBUF2 # STORE CADR AND RETURN 015368,000079: 04,2607 06042 TC INTPRET 015369,000080: 04,2610 77624 CALL 015370,000081: 04,2611 01166 EBUF2 # INDIRECTLY EXECUTE ROUTING. IT MUST 015371,000082: 04,2612 77776 EXIT # LEAVE VIA RVQ OR EQUIVALENT. 015372,000083: 04,2613 23167 LXCH EBUF2 +1 # PICK UP RETURN. 015373,000084: 04,2614 16044 TCF INTPRET +2 # SET LOC AND RETURN TO CALLER. 015374,000085: 015375,000086: # Page 379 015376,000087: # E/JOBWAK FOR WAKING UP ERASABLE MEMORY JOBS. 015377,000088: 015378,000089: # THIS ROUTINE MUST BE CALLED IN INTERRUPT OR WITH INTERRUPTS INHIBITED. 015379,000090: 015380,000091: # THE CALLING SEQUENCE IS 015381,000092: 015382,000093: # INHINT 015383,000094: # ... 015384,000095: # CA WAKEADR # ADDRESS OF SLEEPING JOB 015385,000096: # TC IBNKCALL 015386,000097: # CADR E/JOBWAK 015387,000098: # ... # RETURNS HERE 015388,000099: # RELINT # IF YOU DID AND INHINT 015389,000100: 015390,000101: 33,2045 BANK 33 015391,000102: 04,2000 SETLOC E/PROG 015392,000103: 04,2000 BANK 015393,000104: 015394,000105: 04,2615 COUNT* $$/P07 015395,000106: 015396,000107: 04,2615 05137 E/JOBWAK TC JOBWAKE # ARRIVE WITH ADRES IN A (?garbled) 015397,000108: 04,2616 44741 CS BIT11 015398,000109: 04,2617 50064 NDX LOCCTR 015399,000110: 04,2620 26164 ADS LOC # KNOCK FIXED MEMORY BIT OUT OF ADRES. 015400,000111: 04,2621 00072 TC RUPTREG3 # RETURN 015401,000112: End of include-file SYSTEM_TEST_STANDARD_LEAD_INS.agc. Parent file is MAIN.agc