Source Code
![]() |
These source-code files were transcribed from a printout in Don Eyles's personal
collection, scanned by archive.org, and financially sponsored by Peter McDermott.
A team of volunteers performed the transcription and proof-reading. The scanned
page images are available at
the Virtual AGC Project website, as well as higher-quality (but much larger)
images at
the Virtual AGC Project's collection in the Internet Archive. Report any problems by creating
"issues" at
the Virtual AGC Project's GitHub Repository. Notations on the program listing read, in part: YUL SYSTEM FOR AGC: NEW PROGRAM SHEPATIN BY EYLES DEC 13, 1966 THIS PROGRAM WAS ASSEMBLED AS A VERSION OF REVISION 37 OF PROGRAM SUNBURST BY LEM GROUPNote that the date is the date of the printout, not the date of the program revision. |
035110,000002: ## Copyright: Public domain. 035111,000003: ## Filename: PIPA_READER.agc 035112,000004: ## Purpose: A section of Sunburst revision 37, or Shepatin revision 0. 035113,000005: ## It is part of an early development version of the software 035114,000006: ## for Apollo Guidance Computer (AGC) on the unmanned Lunar 035115,000007: ## Module (LM) flight Apollo 5. Sunburst 37 was the program 035116,000008: ## upon which Don Eyles's offline development program Shepatin 035117,000009: ## was based; the listing herein transcribed was actually for 035118,000010: ## the equivalent revision 0 of Shepatin. 035119,000011: ## This file is intended to be a faithful transcription, except 035120,000012: ## that the code format has been changed to conform to the 035121,000013: ## requirements of the yaYUL assembler rather than the 035122,000014: ## original YUL assembler. 035123,000015: ## Reference: pp. 780-783 035124,000016: ## Assembler: yaYUL 035125,000017: ## Contact: Ron Burkey <info@sandroid.org>. 035126,000018: ## Website: www.ibiblio.org/apollo/index.html 035127,000019: ## Mod history: 2017-05-24 MAS Created from Sunburst 120. 035128,000020: ## 2017-06-14 HG Transcribed 035129,000021: ## 2017-06-23 RSB Proofed comment text with 035130,000022: ## octopus/ProoferComments. 035131,000023:
![]() |
Page 780 |
035133,000025: 035134,000026: # SUBROUTINE TO READ PIPA COUNTERS, TRYING TO BE VERY CAREFUL SO THAT IT WILL BE RESTARTABLE. 035135,000027: # PIPA READINGS ARE STORED IN THE VECTOR DELV. THE HIGH ORDER PART OF EACH COMPONENT CONTAINS THE PIPA READING, 035136,000028: 035137,000029: # AND THE LOW ORDER PART HAS -0 AFTER THE PIPAS HAVE BEEN READ. RESTARTS BEGIN AT REPIPASR. 035138,000030: 035139,000031: 035140,000032: # AT THE END OF THE PIPA READER THE CDUS ARE READ AND STORED AS A 035141,000033: # VECTOR IN CDUTEMP. THE HIGH ORDER PART OF EACH COMPONENT CONTAINS 035142,000034: # THE CDU READING IN 2S COMP IN THE ORDER CDUX,Y,Z. THE THRUST 035143,000035: # VECTOR ESTIMATOR IN FINDCDUD REQUIRES THE CDUS BE READ AT PIPTIME. 035144,000036: 035145,000037: # CALLING SEQUENCE AND EXIT 035146,000038: 035147,000039: # THE CALLING SEQUENCE TO PIPASR IS 035148,000040: 035149,000041: # EXTEND 035150,000042: # DCA PIP2CADR 035151,000043: # DXCH Z 035152,000044: 035153,000045: # THE RETURN ADDRESS,WHICH IS STORED IN (A,L),IS SAVED IN PIPRETRN. THE RETURN FROM PIPASR IS 035154,000046: 035155,000047: # EXTEND 035156,000048: # DCA PIPRETRN 035157,000049: # DXCH Z 035158,000050: 035159,000051: # WHICH RETURNS TO THE LOCATION AFTER THE CALL. ON A RESTART,PIPASR IS CALLED BY REPIPASR. 035160,000052: 035161,000053: 035162,000054: 035163,000055: # INPUT 035164,000056: 035165,000057: # INPUT IS THROUGH THE COUNTERS PIPAX, PIPAY, PIPAZ, AND TIME2. 035166,000058: 035167,000059: 035168,000060: # OUTPUT 035169,000061: 035170,000062: # THE PIPA READINGS ARE OUTPUT THROUGH THE VECTOR DELV. DELTAT, SCALED AT 2(+28)CS, IS COMPUTED FOR AVERAGEG. 035171,000063: 035172,000064: # PIPTIME CONTAINS THE NEGATIVE OF THE CURRENT TIME. 035173,000065: 035174,000066: 035175,000067: # DEBRIS (ERASABLE LOCATIONS DESTROYED BY PROGRAM) 035176,000068: 035177,000069: # TEMX TEMY TEMZ TEMXY PIPAGE PIPTIME PIPAX PIPAY PIPAZ 035178,000070: 035179,000071: # (ARRIVE IN INTERRUPTED STATE OR INHIBITED AFTER RESTART. EXIT 035180,000072: # THRU ISWRETURN) 035181,000073: 035182,000074: 30,2506 BANK 30 035183,000075: 035184,000076: 30,2506 53317 PIPASR DXCH PIPRETRN 035185,000077: 30,2507 47761 CS ZERO # PUT THESE INTO THE IMPOSSIBLE STATE 035186,000078: 30,2510 55154 TS TEMX # FOR THEIR INITIAL VALUES. 035187,000079:
![]() |
Page 781 |
035189,000081: 30,2511 55155 TS TEMY 035190,000082: 30,2512 55156 TS TEMZ 035191,000083: 30,2513 37761 CA ZERO 035192,000084: 30,2514 54404 TS DELVX +1 035193,000085: 30,2515 54406 TS DELVY +1 # PIP COUNTERS MAY NOT HAVE POS ZERO IN 035194,000086: 30,2516 54410 TS DELVZ +1 035195,000087: 30,2517 55160 TS PIPAGE # ZERO THIS TO INDICATE IN PIPA READING. 035196,000088: 035197,000089: 035198,000090: # COMPUTE DELTAT FOR AVERAGEG, SAVING -(CURRENT TIME) IN PIPTIME. 035199,000091: 035200,000092: 30,2520 00006 REPIP1 EXTEND 035201,000093: 30,2521 30025 DCA TIME2 # CURRENT TIME 035202,000094: 30,2522 53321 DXCH PIPTIME 035203,000095: 035204,000096: 30,2523 40037 CS PIPAX 035205,000097: 30,2524 55157 TS TEMXY 035206,000098: 30,2525 57154 XCH TEMX # PUT NEGZERO INTO PIPACTRS AS READ 035207,000099: 30,2526 56037 XCH PIPAX 035208,000100: 035209,000101: 30,2527 54403 REPIP1B TS DELVX 035210,000102: 30,2530 54404 TS DELVX +1 # DOUBLE SAVE 035211,000103: 035212,000104: 30,2531 40040 REPIP2 CS PIPAY 035213,000105: 30,2532 55157 TS TEMXY 035214,000106: 30,2533 57155 XCH TEMY 035215,000107: 30,2534 56040 XCH PIPAY 035216,000108: 30,2535 54405 REPIP2B TS DELVY 035217,000109: 30,2536 54406 TS DELVY +1 035218,000110: 035219,000111: 30,2537 40041 REPIP3 CS PIPAZ # REPEAT PROCESS FOR Z PIPA. 035220,000112: 30,2540 55157 TS TEMXY # SAVE NEG OF PIPA READ 035221,000113: 035222,000114: 30,2541 57156 XCH TEMZ # SAVE HERE AS PICK UP NEGZERO 035223,000115: 30,2542 56041 XCH PIPAZ # RESETTING PIPA AS READ OUT 035224,000116: 30,2543 54407 REPIP3B TS DELVZ # AND STORE IN Z. 035225,000117: 30,2544 54410 TS DELVZ +1 # SHOWS THAT IT REALLY MADE IT. 035226,000118: 035227,000119: 30,2545 47761 REPIP4 CS ZERO 035228,000120: 30,2546 54404 TS DELVX +1 # LEAVE THESE AT NEGZERO 035229,000121: 30,2547 54406 TS DELVY +1 035230,000122: 30,2550 54410 TS DELVZ +1 035231,000123: 30,2551 30032 CA CDUX # READ CDUS INTO CDUTEMP AS A VECTOR 035232,000124: 035233,000125: 30,2552 55342 TS CDUTEMP 035234,000126: 30,2553 30033 CA CDUY # THE THRUST ESTIMATION FILTER IN FINDCDUD 035235,000127: 30,2554 55344 TS CDUTEMP +2 # REQUIRES THAT THE CDUS BE READ AT THE 035236,000128: 30,2555 30034 CA CDUZ # TIME THE PIPAS ARE READ 035237,000129: 30,2556 55346 TS CDUTEMP +4 035238,000130: 30,2557 37761 CAF ZERO 035239,000131: 30,2560 55343 TS CDUTEMP +1 035240,000132: 30,2561 55345 TS CDUTEMP +3 035241,000133: 30,2562 55347 TS CDUTEMP +5 035242,000134:
![]() |
Page 782 |
035244,000136: 30,2563 00006 EXTEND 035245,000137: 035246,000138: 30,2564 31317 DCA PIPRETRN # RETURN TO LOCATION AFTER CALL 035247,000139: 30,2565 52006 DXCH Z 035248,000140:
![]() |
Page 783 |
035250,000142: 035251,000143: 30,2566 00006 REREADAC EXTEND 035252,000144: 30,2567 32636 DCA DONECAD 035253,000145: 30,2570 53317 DXCH PIPRETRN 035254,000146: 035255,000147: 30,2571 11160 REPIPASR CCS PIPAGE # WAS I READING PIPS. 035256,000148: 035257,000149: 30,2572 12507 TCF PIPASR +1 035258,000150: 30,2573 10410 CCS DELVZ +1 # PIPAGE = 0 (I WAS READING PIPS.) 035259,000151: 30,2574 12545 TCF REPIP4 # Z WAS READ OK 035260,000152: 30,2575 12600 TCF +3 # Z NOT DONE, CHECK Y. 035261,000153: 30,2576 12545 TCF REPIP4 035262,000154: 30,2577 12545 TCF REPIP4 035263,000155: 035264,000156: 30,2600 10406 CCS DELVY +1 # HAS IT CHANGED FROM ITS +ZERO INIT VALU 035265,000157: 30,2601 12604 TCF +3 # YES, Y DONE. TRY TO REDO Z. 035266,000158: 30,2602 12613 TCF CHKDELVX # NO, GO LOOK AT X. 035267,000159: 30,2603 12604 TCF +1 # YES 035268,000160: 035269,000161: 30,2604 11156 CCS TEMZ # DOES TEMZ STILL = -0. 035270,000162: 30,2605 12611 TCF +4 # NO-TRY TO RESTORE 035271,000163: 30,2606 12611 TCF +3 035272,000164: 30,2607 12611 TCF +2 035273,000165: 30,2610 12537 TCF REPIP3 # YES, GO BACK AND READ Z AGAIN. 035274,000166: 035275,000167: 30,2611 41157 CS TEMXY # MUCH MORE LOGIC COULD BE INCORPORATED 035276,000168: 30,2612 12543 TCF REPIP3B # TO CHECK PIPA CTR FOR SIZE 035277,000169: 035278,000170: 30,2613 10404 CHKDELVX CCS DELVX +1 # HAS THIS CHANGED. 035279,000171: 035280,000172: 30,2614 12617 TCF +3 # YES 035281,000173: 30,2615 12626 TCF CHKTEMX # NO 035282,000174: 30,2616 12617 TCF +1 # YES 035283,000175: 30,2617 11155 CCS TEMY 035284,000176: 30,2620 12624 TCF +4 035285,000177: 30,2621 12624 TCF +3 035286,000178: 30,2622 12624 TCF +2 035287,000179: 30,2623 12531 TCF REPIP2 035288,000180: 30,2624 41157 CS TEMXY 035289,000181: 30,2625 12535 TCF REPIP2B 035290,000182: 035291,000183: 30,2626 11154 CHKTEMX CCS TEMX # HAS THIS CHANGED. 035292,000184: 035293,000185: 30,2627 12633 TCF +4 # YES 035294,000186: 30,2630 12633 TCF +3 # YES 035295,000187: 30,2631 12633 TCF +2 # YES 035296,000188: 30,2632 12520 TCF REPIP1 # NO 035297,000189: 30,2633 41157 CS TEMXY 035298,000190: 30,2634 12527 TCF REPIP1B 035299,000191: 035300,000192: 30,2635 E5,1511 EBANK= DVCNTR 035301,000193: 30,2635 02061 60065 DONECAD 2CADR PIPSDONE End of include-file PIPA_READER.agc. Parent file is MAIN.agc