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