Misi Apollo memiliki teknologi yang tidak lebih rumit dari kalkulator saku.
Dari tautan di sini , ada informasi tentang Apollo Guidance Computer (AGC)
Apollo Guidance Computer (AGC) on-board adalah sekitar 1 kaki kubik dengan 2K RAM 16-bit dan memori inti-kabel 36K dengan kabel tembaga berulir atau tidak dijalin melalui inti magnetik kecil. Kata-kata 16-bit umumnya 14 bit data (atau dua op-kode), 1 bit tanda, dan 1 bit paritas. Waktu siklus adalah 11,7 mikro-detik. Pemrograman dilakukan dalam bahasa assembly dan dalam bahasa interpretatif, dalam bahasa Polandia terbalik.
Jadi, saya telah menemukan beberapa kode sumber ketika saya meneliti apa yang ada di sana, dan saya telah memperhatikan komentar-komentar hebat (mis. TEMPORARY, I HOPE HOPE HOPE)
VRTSTART TS WCHVERT
# Page 801
CAF TWO # WCHPHASE = 2 ---> VERTICAL: P65,P66,P67
TS WCHPHOLD
TS WCHPHASE
TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE
CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE
TC DOWNFLAG # PERMIT X-AXIS OVERRIDE
ADRES XOVINFLG
TC DOWNFLAG
ADRES REDFLAG
TCF VERTGUID
Program aktual di pesawat ruang angkasa disimpan dalam memori tali inti , teknologi memori kuno yang dibuat oleh (secara harfiah) menenun kain / tali, di mana bit adalah cincin fisik bahan ferit. Memori "Core" tahan terhadap sinar kosmik. Keadaan bit inti tidak akan berubah ketika dibombardir oleh radiasi di Luar Angkasa.
Perangkat lunak Virtual Apollo Guidance Computer (AGC) juga ada di GITHUB!
Beberapa bagian dari dokumentasi ada di sini.
Contoh lain dari kode sumber dengan komentar hebat.
033911,000064: 32,3017 06037 FLAGORGY TC INTPRET # DIONYSIAN FLAG WAVING
034090,000243: 32,3241 13247 BZF P63SPOT4 # BRANCH IF ANTENNA ALREADY IN POSITION 1
034091,000244:
034092,000245: 32,3242 33254 CAF CODE500 # ASTRONAUT: PLEASE CRANK THE
034093,000246: 32,3243 04616 TC BANKCALL # SILLY THING AROUND
034094,000247: 32,3244 20623 CADR GOPERF1
034095,000248: 32,3245 16001 TCF GOTOP00H # TERMINATE
034096,000249: 32,3246 13235 TCF P63SPOT3 # PROCEED SEE IF HE'S LYING
034101,000254: 32,3251 04635 TC POSTJUMP # OFF TO SEE THE WIZARD ...
034102,000255: 32,3252 74126 CADR BURNBABY
Pertanyaan saya di sini adalah ini:
- Bagaimana tim-tim yang menulis kode sebanyak ini dapat membuatnya berfungsi mengingat alat-alat pada saat itu?
Karena jika Anda mengkompilasi begitu banyak kode yang digunakan pada Apollo 11 ... itu akan memakan waktu berhari-hari, bahkan berminggu-minggu. Saya benar-benar ragu bahwa programmer pada saat itu meninggalkan semuanya terjadi secara kebetulan.
HOPE HOPE HOPE
melakukannya dengan benar pada kali pertama.Jawaban:
Ada sebuah film dokumenter yang indah yang saya coba kejar tentang John 'Jack' Garman yang harus "menciptakan" sebuah "sistem operasi multiprogram yang dijadwalkan prioritas". Ini mungkin terkait dengan modul pendarat. Ceritanya adalah ketika Anda mendarat pendarat, Anda lebih baik memberikan prioritas untuk bimbingan karena hal-hal lain, seperti suhu di kabin selama 15 detik berikutnya, tidak masalah jika Anda jatuh dan terbakar. Pada tembakan pertama mereka membebani komputer dan alarm mulai terjadi karena beberapa subrutin tidak dieksekusi. Ada terlalu banyak dimuat, tetapi berkat konsep prioritas, yang diramalkan Garman dan dibangun karena dia pikir itu ide yang bagus, rutinitas prioritas rendah tidak menghalangi rutinitas pendaratan prioritas yang lebih tinggi.
Menonton film dokumenter pada saat itu, saya terkejut tentang bagaimana rasanya melakukan refactoring besar pada kode tanpa memberitahu manajemen dan hampir dipecat karena Anda terlambat pada apa yang seharusnya Anda kerjakan. Namun dalam kasus ini, refactoring terungkap ketika alasan untuk alarm diselidiki. (Dan manajemen masih kesal! :-)
Beberapa tautan:
Tidak, "kesalahan daftar periksa" hampir tidak menggagalkan pendaratan di bulan pertama
TALES DARI KOMPUTER PANDUAN MODUL bulan
Bagaimana Mereka Membangunnya: Perangkat Lunak Apollo 11
Proyek Sejarah Lisan NASA Johnson Space Center Transkrip Sejarah Lisan Diedit
Sejarah singkat Kutipan Program Apollo NASA : Lima menit setelah luka bakar turun, dan 1.800 m di atas permukaan Bulan, komputer navigasi dan panduan LM menghasilkan alarm program "1202" dan "1201" yang tak terduga. Insinyur komputer di Mission Control Center di Houston, Jack Garman, mengatakan kepada petugas pembimbing Steve Bales bahwa aman untuk melanjutkan penurunan. Alarm ini adalah indikasi "eksekutif meluap", yang berarti komputer panduan tidak dapat menyelesaikan semua tugasnya secara real time dan harus menunda beberapa di antaranya.
Mengingat Kutipan 'Lompatan Raksasa' : Kami tahu apa itu dan bahwa itu tidak boleh terjadi. Tetapi kami telah merancang sistem yang berusaha keras untuk pulih dari kondisi kelebihan beban. Jadi saya ingat mendengar [insinyur komputer NASA] Jack Garman berteriak, "Pergi, pergi!" Dan mereka pergi. Kemudian kami mendengarkan ketika Neil menerbangkan LEM dan mencoba menemukan tempat yang bagus untuk mendarat. Kekhawatiran baru kami adalah kurangnya bahan bakar yang tersisa. Tetapi akhirnya kami mendengar pemberitahuan kontak dan kemudian, "Elang telah mendarat."
Wawancara Jack Garman
EDIT: Mungkin ini film dokumenter: Apollo 11: The Untold Story (2006)
Pemeran: John R. Garman ...
Dirinya - Insinyur Komputer Apollo 11 (seperti Jack Garman)
(Diantara yang lain).
Pembaruan: Seorang Peretas Dari Afrika Selatan Baru Menyelamatkan Komputer NASA Pertama di Luar Angkasa
sumber
Jika saya mengerti benar, proses pengembangan adalah peer review dan eksperimen.
Tim ini terdiri dari orang-orang seperti "Dokter Matematika" - orang yang sangat berdedikasi, cerdas, bersemangat, dan berorientasi pada detail yang hidupnya didedikasikan untuk pekerjaan mereka. Jadi ketika saya mengatakan peer review, maksud saya banyak peer review selama berbulan-bulan (lebih dari setahun).
Pengembang ini "menjalankan simulasi di kepala mereka", "mendebug perangkat lunak di atas kertas" dan bekerja dalam kelompok dengan banyak pengembang melihat kode yang sama berulang-ulang sampai mereka yakin itu benar. Ada beberapa tim - masing-masing mengerjakan bagian dari keseluruhan.
Profesor Metode Numerik saya di The Ohio State University (Spring '96) menulis kode yang memutuskan kapan untuk memulai tahap roket pendorong. Dia menjelaskan bahwa cetakannya adalah ukuran buku telepon (Jadi, mungkin 2,5 hingga 3,5 inci dari kertas 8,5 x 11 inci - dia tidak menggambarkan ukuran font) dari kode Fortran.
Ketika diyakinkan, mereka meluncurkan rudal tak berawak (roket secara teknis tidak memiliki giroskop) dengan radio di papan yang mengeluarkan bunyi bip secara berkala. Mereka mendengarkan bunyi bip hingga ke titik yang mereka harapkan radio berdampak pada bulan (menabraknya dan menghancurkan dirinya sendiri) dan berhenti berbunyi. Mereka tahu bahwa jika mereka meleset, radio akan terus berbunyi melewati waktu dampak yang diperhitungkan. Dampak terjadi 15 detik setelah waktu yang dihitung.
Kisah anekdot yang diakui ini adalah kenangan saya dari kunjungan kantor dengan dokter. Dia sudah sangat tua, dan itu sudah lama sekali. Ini adalah ingatan terbaik saya.
sumber
AGC dikendalikan dengan kata kerja dan kata benda
Perangkat lunak perintah Apollo tidak ditulis dalam sintaksis apa pun yang dikenali pengguna saat ini. Perintah input astronot secara numerik, dengan masing-masing angka dua digit mewakili kata kerja atau kata benda. Kata kerja menggambarkan tindakan yang harus dilakukan, dan kata benda menentukan data yang akan dipengaruhi oleh tindakan kata kerja.
Astronot membenci pengaturan kata kerja dan kata benda
Ramón Alonso, salah satu pengembang perangkat keras AGC asli, mengatakan antarmuka telah diciptakan untuk mengesankan pengunjung ke lab mereka, tetapi tetap bertahan untuk penerbangan ketika tidak ada yang mengembangkan antarmuka yang lebih baik. Para kritikus mengatakan itu bukan "ilmiah," dan astronot pertama — semua pilot jet elit — lebih memilih tombol dan saklar, mirip dengan panel kontrol pesawat.
Perangkat lunak seperti yang dirancang pada dasarnya dibangun dari awal oleh MIT.
Anda dapat mengunduh dan menginstal program emulator Apollo Guidance Computer di komputer pribadi Anda, tidak masalah. Begini tampilannya di Mac OS X.
sumber
Seperti hampir semua proyek perangkat lunak lain, itu dilakukan di bawah tenggat waktu yang agresif dan tekanan kualitas. Untungnya arsip materi besar dari manajer proyek perangkat lunak Howard W. "Bill" Tindall, Jr. tersedia di sini .
Jika Anda mencicipi memo, Anda bisa merasakan konflik normal antara waktu, fitur, dan cacat yang sangat baik. Perlu dicatat bahwa pengembangan berlangsung selama beberapa tahun seperti sisa proyek.
Saya tidak dapat menemukan referensi spesifik tentang bagaimana perangkat lunak itu dibuat, tetapi mengingat tanggalnya saya hanya dapat berasumsi bahwa sebagian besar dilakukan pada pena dan kertas, dengan "simulasi" dilakukan secara manual. Tampaknya ada sistem untuk memuat program ke AGC dengan kartu punch, mungkin untuk pengujian "cepat" di tanah tanpa perlu membuat memori tali.
sumber