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