Source Code

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