وقتی در اواسط دههٔ 1960 میلادی برنامهنویسان آزمایشگاه ابزار دقیق در دانشگاه مشهور MIT توسعهٔ نرمافزار پرواز برای برنامهٔ فضایی آپولو 11 را آغاز کردند، هنوز تکنولوژیهای مورد نیاز آنها به وجود نیامده بود و آنها مجبور بودند خود این تکنولوژیها را ابداع کنند. آنها راهی تازه برای ذخیرهسازی برنامههای کامپیوتری پیدا کردند که Rope Memory (حافظهی ریسمانی) نامیده شد و برای اینکه بتوانند ایدهٔ خود را عملی سازند، این گروه از برنامهنویسان همچنین مجبور شدند تا نسخهای مخصوص از زبان برنامهنویسی Assembly را باز طراحی کنند (زبان اسمبلی برای بسیاری از برنامه نویسان امروزی ناشناخته و البته ناخوانا است. در حقیقت، اسمبلی زبانی است برای اینکه کامپیوتر آن را به راحتی بخواند و بفهمد و نه انسانها). برنامهنویسان MIT برای ساختن کامپیوتر هدایت آپولو که به صورت مخفف AGC خوانده میشود، هزاران خط از این کدها را توسعه داده و نوشته بودند.
کدهای AGC مدت زیادی است که به صورت عمومی منتشر شده است و اولین عرضهٔ این سورسکد به سال 2003 برمیگردد. ران برکی، محقق و پژوهشگر در حوزهٔ فناوری، پس از رونویسی کدها از روی تصاویر اسکن شده در MIT، آنها را به صورت عمومی منتشر کرد (در واقع، او تمام کدها را مجدداً از روی تصاویر، به صورت دستی و خط به خط، تایپ کرده بود. برکی در ایمیلی فرایند کاریاش را اینگونه توضیح داده بود:
این تصاویر توسط یک خلبان به نام گری نف در کلرادو اسکن شده بودند. MIT آنها را نگهداری کرده و در فرمت تصویری به صورت آنلاین منتشر کرده بود. متأسفانه در این فرایند، تصاویر در بعضی نقاط تا مرز ناخوانا بودن خراب شده بودند. من شروع به بازسازی قسمتهای ناخوانا کردم و برای پر کردن بعضی جاهای خالی از مهارتهای مهندسیام استفاده کردم. کمی بعد موفق به دریافت اسکنهایی جایگزین از گری نف برای بخشهای ناخوانا شدم و خوشبختانه فهمیدیم که قسمت اول به صورت کاملاً صحیح به اتمام رسیده بود.
نتیجهٔ این تلاشها، در دسترس قرار گرفتن این کدها برای هر پژوهشگر یا فرد علاقمند بوده است و این در حالی است که برکی حتی یک شبیهسازی از AGC را پیادهسازی کرده است تا علاقمندان با دید بازتری بتوانند به مطالعهٔ سورسکد آپولو ۱۱ بپردازند.
با وجود بزرگی و موفقیت کار برکی، بازهم کدهای این نرمافزار برای بسیاری از برنامهنویسان امروزی گمنام بود تا اینکه سرانجام، چندی بعد کریس گری کدهای نرمافزار را در گیتهاب منتشر کرد (کریس گری که کارمند سابق ناسا است، کدهای AGC را به صورت کامل در اکانت خود در وبسایت گیتهاب گذاشته است). به طور مثال، سورسکد فایلی تحت عنوان P12.agc به شرح زیر است:
# Copyright: Public domain.
# Filename: P12.agc
# Purpose: Part of the source code for Luminary 1A build 099.
# It is part of the source code for the Lunar Module's (LM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Hartmuth Gutsche <hgutsche@xplornet.com>.
# Website: www.ibiblio.org/apollo.
# Pages: 838-842
# Mod history: 2009-05-23 HG Transcribed from page images.
#
# This source code has been transcribed or otherwise adapted from
# digitized images of a hardcopy from the MIT Museum. The digitization
# was performed by Paul Fjeld, and arranged for by Deborah Douglas of
# the Museum. Many thanks to both. The images (with suitable reduction
# in storage size and consequent reduction in image quality as well) are
# available online at www.ibiblio.org/apollo. If for some reason you
# find that the images are illegible, contact me at info@sandroid.org
# about getting access to the (much) higher-quality images which Paul
# actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 001 of AGC program LMY99 by NASA 2021112-61
# 16:27 JULY 14, 1969
# Page 838
BANK 24
SETLOC P12
BANK
EBANK= DVCNTR
COUNT* /P12
GUIDINIT STQ SETPD
TEMPR60
0D
VLOAD PUSH
UNITZ
RTB PUSH
LOADTIME
CALL
RP-TO-R
# Page 842
MXV VXSC
REFSMMAT
MOONRATE
STOVL WM
RLS
ABVAL SL3
STCALL /LAND/
TEMPR60
49FPS 2DEC .149352 B-6 # EXPECTED RDOT AT TIPOVER
VINJNOM 2DEC 16.7924 B-7 # 5509.5 FPS(APO=30NM WITH RDOT=19.5FPS)
RDOTDNOM 2DEC .059436 B-7 # 19.5 FPS
پس از انتشار، صرفاً پس از چند ساعت برنامهنویسان کنجکاو شروع به کالبدشکافی نرمافزار و به ویژه کامنتهای نوشته شده توسط برنامهنویسان اصلی این کدها کردند. جالب اینجا است که بسیاری از کامنتهای نوشته شده در میان کدهای AGC از توضیحات خستهکننده دربارهٔ این نرمافزار عبور کرده و به شوخیها و پیامهایی طنز و البته با ماهیت همان سالهای دههٔ 1960 تبدیل شدهاند! بعضی از این شوخیها و کامنتهای طنز را میتوانید در وبسایت QUARTZ ببنید.
با قرار گرفتن این کدها روی گیتهاب، برنامهنویسان میتوانند تغییراتی در کدها را پیشنهاد کنند و البته مشخص است که تا الان هم بسیاری این کار را انجام دادهاند! شما هم با ورود به صفحهٔ گیتهاب Apollo 11 میتوانید مسائلی که دیگر برنامهنویسان مطرح کردهاند را ببینید، نگاهی به کدهای اسمبلی این پروژه بیندازید یا به اصلاح آنها کمک کنید!