Source Code

017988,000001: # Copyright: Public domain. 017989,000002: # Filename: SYSTEM_TEST_STANDARD_LEAD_INS.agc 017990,000003: # Purpose: Part of the source code for Colossus, build 249. 017991,000004: # It is part of the source code for the Command Module's (CM) 017992,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9. 017993,000006: # Assembler: yaYUL 017994,000007: # Reference: pp. 415-417 of 1701.pdf. 017995,000008: # Contact: Ron Burkey <info@sandroid.org>. 017996,000009: # Website: www.ibiblio.org/apollo. 017997,000010: # Mod history: 08/07/04 RSB. Adapted from similar Luminary 131 file. 017998,000011: 017999,000012: # The contents of the "Colossus249" files, in general, are transcribed 018000,000013: # from a scanned document obtained from MIT's website, 018001,000014: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this 018002,000015: # document read, in part: 018003,000016: 018004,000017: # Assemble revision 249 of AGC program Colossus by NASA 018005,000018: # 2021111-041. October 28, 1968. 018006,000019: 018007,000020: # This AGC program shall also be referred to as 018008,000021: # Colossus 1A 018009,000022: 018010,000023: # Prepared by 018011,000024: # Massachusetts Institute of Technology 018012,000025: # 75 Cambridge Parkway 018013,000026: # Cambridge, Massachusetts 018014,000027: # under NASA contract NAS 9-4065. 018015,000028: 018016,000029: # Refer directly to the online document mentioned above for further information. 018017,000030: # Please report any errors (relative to 1701.pdf) to info@sandroid.org. 018018,000031: 018019,000032: # In some cases, where the source code for Luminary 131 overlaps that of 018020,000033: # Colossus 249, this code is instead copied from the corresponding Luminary 131 018021,000034: # source file, and then is proofed to incorporate any changes. 018022,000035: 018023,000036: # Page 415 018024,000037: 22,3310 0002671 EBANK= XSM 018025,000038: 018026,000039: 33,2000 BANK 33 018027,000040: 04,2000 SETLOC E/PROG 018028,000041: 04,2000 BANK 018029,000042: 018030,000043: 04,2557 COUNT* $$/P07 018031,000044: 018032,000045: # SPECIAL PROGRAMS TO EASE THE PANGS OF ERASABLE MEMORY PROGRAMS. 018033,000046: 018034,000047: # E/BKCALL FOR DOING BANKCALLS FROM AND RETURNING TO ERASABLE. 018035,000048: 018036,000049: # THIS ROUTINE IS CALLABLE FROM ERASABLE OR FIXED. LIKE BANKCALL, HOWEVER, SWITCHING BETWEEN S3 AND S4 018037,000050: # IS NOT POSSIBLE. 018038,000051: 018039,000052: # THE CALLING SEQUENCE IS 018040,000053: 018041,000054: # TC BANKCALL 018042,000055: # CADR E/BKCALL 018043,000056: # CADR ROUTINE # WHERE TO WANT TO GO IN FIXED. 018044,000057: # RETURN HERE FROM DISPLAY TERMINATE, BAD STALL OR TC Q. 018045,000058: # RETURN HERE FROM DISPLAY PROCEED OR GOOD RETURN FROM STALL. 018046,000059: # RETURN HERE FROM DISPLAY ENTER OR RECYCLE. 018047,000060: 018048,000061: # THIS ROUTINE REQUIRES TWO ERASABLES (EBUF2, +1) IN UNSWITCHED WHICH ARE UNSHARED BY INTERRUPTS AND 018049,000062: # OTHER EMEMORY PROGRAMS. 018050,000063: 018051,000064: # A + L ARE PRESERVED THROUGH BANKCALL AND E/BKCALL. 018052,000065: 018053,000066: 04,2557 52134 E/BKCALL DXCH BUF2 # SAVE A,L AND GET DP RETURN 018054,000067: 04,2560 52365 DXCH EBUF2 # SAVE DP RETURN. 018055,000068: 04,2561 24364 INCR EBUF2 # RETURN +1 BECAUSE DOUBLE CADR. 018056,000069: 04,2562 30006 CA BBANK 018057,000070: 04,2563 74747 MASK LOW10 # GET CURRENT EBANK. (SBANK SOMEDAY) 018058,000071: 04,2564 26365 ADS EBUF2 +1 # FORM BBCON. (WAS FBANK) 018059,000072: 04,2565 50364 NDX EBUF2 018060,000073: 04,2566 27777 CA 0 -1 # GET CADR OF ROUTINE. 018061,000074: 04,2567 04561 TC SWCALL # GO TO ROUTINE, SETTING Q TO SWRETURN 018062,000075: # AND RESTORING A + L. 018063,000076: 04,2570 02574 TC +4 # TX Q, V34, OR BADD STALL RETURN. 018064,000077: 04,2571 02573 TC +2 # PROCEED OR GOOD STALL RETURN. 018065,000078: 04,2572 24364 INCR EBUF2 # ENTER OR RECYCLE RETURN 018066,000079: 04,2573 24364 INCR EBUF2 018067,000080: 04,2574 52365 E/SWITCH DXCH EBUF2 018068,000081: 04,2575 52006 DTCB 018069,000082: 018070,000083: # Page 416 018071,000084: # E/CALL FOR CALLING A FIXED MEMORY INTERPRETIVE SUBROUTINE FROM ERASABLE AND RETURNING TO ERASABLE. 018072,000085: 018073,000086: # THE CALLING SEQUENCE IS... 018074,000087: 018075,000088: # RTB 018076,000089: # E/CALL 018077,000090: # CADR ROUTINE # THE INTERPRETIVE SUBROUTINE YOU WANT 018078,000091: # # RETURNS HERE IN INTERPRETIVE. 018079,000092: 018080,000093: 04,2576 22164 E/CALL LXCH LOC # ADRES -1 OF CADR. 018081,000094: 04,2577 50001 INDEX L 018082,000095: 04,2600 30001 CA L # CADR IN A. 018083,000096: 04,2601 24001 INCR L 018084,000097: 04,2602 24001 INCR L # RETURN ADRES IN L. 018085,000098: 04,2603 52365 DXCH EBUF2 # STORE CADR AND RETURN 018086,000099: 04,2604 06006 TC INTPRET 018087,000100: 04,2605 77624 CALL 018088,000101: 04,2606 00364 EBUF2 # INDIRECTLY EXECUTE ROUTING. IT MUST 018089,000102: 04,2607 77776 EXIT # LEAVE VIA RVQ OR EQUIVALENT. 018090,000103: 04,2610 22365 LXCH EBUF2 +1 # PICK UP RETURN. 018091,000104: 04,2611 16010 TCF INTPRET +2 # SET LOC AND RETURN TO CALLER. 018092,000105: 018093,000106: # Page 417 018094,000107: # E/JOBWAK FOR WAKING UP ERASABLE MEMORY JOBS. 018095,000108: 018096,000109: # THIS ROUTINE MUST BE CALLED IN INTERRUPT OR WITH INTERRUPTS INHIBITED. 018097,000110: 018098,000111: # THE CALLING SEQUENCE IS 018099,000112: 018100,000113: # INHINT 018101,000114: # ... 018102,000115: # CA WAKEADR # ADDRESS OF SLEEPING JOB 018103,000116: # TC IBNKCALL 018104,000117: # CADR E/JOBWAK 018105,000118: # ... # RETURNS HERE 018106,000119: # RELINT # IF YOU DID AND INHINT 018107,000120: 018108,000121: 33,2000 BANK 33 018109,000122: 04,2000 SETLOC E/PROG 018110,000123: 04,2000 BANK 018111,000124: 018112,000125: 04,2612 COUNT* $$/P07 018113,000126: 018114,000127: 04,2612 05074 E/JOBWAK TC JOBWAKE # ARRIVE WITH ADRES IN A (?garbled) 018115,000128: 04,2613 44700 CS BIT11 018116,000129: 04,2614 50064 NDX LOCCTR 018117,000130: 04,2615 26164 ADS LOC # KNOCK FIXED MEMORY BIT OUT OF ADRES. 018118,000131: 04,2616 00072 TC RUPTREG3 # RETURN 018119,000132: 018120,000133: # THESE PROGRAMS ARE PROVIDED TO ALLOW OVERLAY OF BANKS 30 THRU 33 OF THE 205 VERSIONS OF SYSTEM TESTS AND 018121,000134: # PRELAUNCH ALIGN. THE INTENT IS TO ALLOW THE STG AND HYBRID LABS TO RUN ALL THE TESTS WITH COLOSSUS. 018122,000135: 018123,000136: 33,2000 BANK 33 018124,000137: 33,2000 SETLOC TESTLEAD 018125,000138: 33,2000 BANK 018126,000139: 018127,000140: 33,2000 COUNT 33/COMST 018128,000141: 018129,000142: 33,2000 E5,1425 EBANK= QPLACE 018130,000143: 018131,000144: 33,2000 03425 COMPVER TC GCOMPVER # MUST BE 33,2000. 018132,000145: 018133,000146: 33,2001 03132 GTSCPSS1 TC GTSCPSS # MUST BE AT 33,2001 018134,000147: 018135,000148: 33,2002 05243 REDO TC NEWMODEX # DISPLAY MM 07. 018136,000149: 33,2003 00007 MM 07 B-14 # FALL INTO IMUTEST 018137,000150: End of include-file SYSTEM_TEST_STANDARD_LEAD_INS.agc. Parent file is MAIN.agc