Kode sumber Apollo 11 diterbitkan di Github



Pada tanggal 20 Juli 2009, untuk menghormati peringatan 40 tahun pendaratan di bulan, cetakan dengan kode sumber program untuk komputer onboard Apollo Guidance Computer (AGC) telah didigitalkan dan diposting di Internet . Tujuh tahun telah berlalu - dan sekarang contoh unik dari sejarah komputer ini telah menerima kehidupan kedua. Saat ini, kode sumber untuk AGC dalam assembler diterbitkan di Github secara keseluruhan, terbuka untuk pencarian, komentar, garpu, dll.

Dalam kode Anda dapat menemukan panggilan kesalahan terkenal dengan kode 1201 dan 1202 , yang sangat dikhawatirkan Neil Armstrong, dan banyak lagi.

Di Github, repositori Apollo-11 dengan cepat menempati posisi pertama dalam daftar repositori terpopuler per hari (tidak ada keraguan bahwa dalam peringkat mingguan ia akan menempati peringkat pertama besok). Benar-benar ada sesuatu untuk dilihat. Sangat menarik untuk membaca beberapa nama prosedur ( BURN_BABY_BURN - MASTER_IGNITION_ROUTINE.s ) dan komentar dalam kode asli.

CAF	CODE500		# ASTRONAUT:	PLEASE CRANK THE
TC	BANKCALL	#		SILLY THING AROUND
CADR	GOPERF1
TCF	GOTOP00H	# TERMINATE
TCF	P63SPOT3	# PROCEED	SEE IF HE'S LYING

TC	BANKCALL	# ENTER		INITIALIZE LANDING RADAR
CADR	SETPOS1

TC	POSTJUMP	# OFF TO SEE THE WIZARD ...
CADR	BURNBABY

Program ini memiliki kode "sementara", seperti dalam banyak program modern.

TC	BANKCALL	# TEMPORARY, I HOPE HOPE HOPE
CADR	STOPRATE	# TEMPORARY, I HOPE HOPE HOPE
TC	DOWNFLAG	# PERMIT X-AXIS OVERRIDE

Dan inilah versi komentar populer tahun 1969 , "This Must Never Happen."

CA	A		# SHOULD NEVER HIT THIS LOCATION

Tiket pertama telah dibuat di repositori Github - sebuah diskusi tentang "bug" yang perlu diperbaiki dalam program.

Pengembang SilverWingedSeraph menulis: "Satu pengguna memiliki masalah yang agak serius dengan pencampuran kriogenik dalam tangki oksigen dengan munculnya pesan kesalahan." Untuk mereproduksi kesalahan dalam program, ulangi urutan tindakan berikut:

  1. Bangun modul layanan.
  2. Terbang ke orbit bulan.
  3. Di orbit bulan, mulailah mencampur dalam tangki oksigen.

โ€œJika ada masalah dengan perkabelan dalam modul, maka kesalahan dapat direproduksi. Hati-hati, karena situasinya bisa berbahaya bagi penguji yang mencoba mereproduksi kesalahan, โ€kata pengembang di Github, bukan tanpa rasa humor.

Tentu saja, maksudnya adalah kecelakaan terkenal dengan peralatan modul layanan Apollo 13, setelah itu modul harus segera dikembalikan ke Bumi menggunakan manuver luar biasa.

Secara umum, saat ini hanya satu salinan fisik dari cetakan program modul bulan yang telah disimpan . Buku cetakan disimpan di Museum Institut Teknologi Massachusetts.

Kode program ditulis oleh Don Islesdengan kolega. Isles secara pribadi adalah penulis sekitar 2.000 baris kode yang bertanggung jawab atas pendaratan modul bulan.

Anda dapat mencoba menjalankan perintah kontrol Apollo di emulator (ini hanya simulator komputer, tanpa wahana antariksa itu sendiri). Emulator


komputer pesawat ruang angkasa


Apollo Instruksi emulator

Apollo Perintah Apollo Command Module (CM) dan Lunar Module (LM) secara otomatis mendarat di permukaan bulan. Komputer mengendalikan motor dan servomotor secara real time. Komputer kendali on-board


Apollo pesawat ruang angkasa


Layar komputer kontrol di-papan

Manajemen dilakukan oleh Apollo Guidance Computer (AGC). Komputer on-board dilengkapi dengan OS waktu nyata dengan dukungan multithreading, ia mengendalikan semua sistem, menerima sinyal dari radar, teleskop, giroskop, dan akselerometer.

Buku " Digital Apollo " menjelaskan dengan baik bagaimana program memprioritaskan dan mengalokasikan waktu CPU.



Spesifikasi teknis komputer kendali on-board pesawat ruang angkasa Apollo
Standar waktu AGC ditetapkan oleh resonator kuarsa dengan frekuensi 2,048 MHz. Memori komputer terdiri dari 2048 kata RAM yang dapat ditulis ulang dan 36 K kata-kata ROM dengan pengambilan sampel linier pada beberapa inti yang dijahit. Siklus baca-tulis RAM dan ROM mengambil 11,72 ฮผs. Panjang kata adalah 16 bit: 15 bit data dan 1 bit paritas. Format kata 16-bit prosesor termasuk 14 bit data, bit melimpah, dan bit tanda.

Lihat juga:
Panduan Pemrograman Komputer Panduan Bimbingan Apollo

Source: https://habr.com/ru/post/id395973/


All Articles