Kami di
Museum Sejarah Komputer kami baru-baru ini membeli satu set
kartu punch untuk program musik komputer berusia 50 tahun. Sebagian besar komputer tidak memiliki kartu suara, tetapi programmer kreatif menemukan cara untuk mengirimkan musik menggunakan printer linier. Kami agak khawatir bahwa program ini dapat melukai printer, tetapi masih berisiko menjalankannya pada
mainframe IBM 1401. Kuno Seperti yang Anda duga, musik yang dimainkan oleh printer linier terdengar mengerikan - tetapi melodi dapat diurai dan printer tidak terluka.
Komputer bisnis IBM 1401 diperkenalkan pada tahun 1959, dan menjadi komputer terlaris pada pertengahan 1960-an - lebih dari 10.000 sistem seperti itu dikirimkan. Keunggulan kompetitif utama dari IBM 1401 adalah printer jalur kecepatan tinggi IBM 1403. Rantai karakter pemintalan cepat memungkinkan printer untuk mencetak 10 baris per detik dengan kualitas yang sangat baik - itu dianggap sebagai kualitas terbaik sebelum printer laser muncul pada tahun 1970-an.
Sirkuit cetak printer adalah 1401. Ini memiliki 48 karakter yang berbeda, yang diulang 5 kali.Line printer sangat berisik, tetapi programmer segera mengetahui bahwa ketika mencetak baris karakter tertentu dari noise, frekuensi tertentu dapat diekstraksi. Dimungkinkan untuk memainkan catatan dengan mencetak garis yang diperlukan. Di wilayah 1970, spesialis ilmu komputer
Ron Mack mengkodekan beberapa lagu pada kartu punch menggunakan program musik yang ada. Dia baru-baru ini menemukan program-program lamanya dan memberi kami kesempatan untuk mencobanya.
Cara kerja printer linier
Untuk mencetak karakter, printer menggunakan rantai penghubung dengan karakter yang berputar dengan kecepatan tinggi di seberang kertas, dan ada pita tinta di antara kertas dan rantai. Printer menghasilkan garis 132 kolom - yaitu, setiap kolom memiliki palu dan elektromagnetnya sendiri. Pada saat yang tepat, ketika simbol yang diinginkan bergerak melewati palu, elektromagnet menekan palu pada kertas, dan kertas bersama dengan selotip mengenai tautan, mencetak simbol.
Mesin cetak printer linier IBM 1401 (dari instruksi)Agar proses ini berhasil, printer perlu menghitung waktu operasi dengan cermat. Rantai berputar pada kecepatan 2,3 m / s, dan setiap 11,1 μs link berikutnya berlawanan dengan palu. Sirkuit kontrol nyaris tidak memiliki cukup waktu untuk membaca lokasi simbol ini dari memori utama, membandingkannya dengan simbol yang terletak di bawah palu, dan mengenai palu jika terjadi kebetulan. Untuk 132 interval waktu, setiap male memiliki kemampuan untuk mencetak satu karakter; ini disebut "pemindaian." Karena ada 48 karakter dalam himpunan (tanpa huruf kapital), untuk mencetak semua karakter dalam kolom apa pun, Anda perlu mengulangi proses ini 48 kali. Untuk setiap pemindaian, rantai digeser dengan hanya satu lebar karakter.
Perangkat palu dari printer IBM 1403. Di bawah ini adalah titik dampak dari 132 palu (satu per kolom). Di atas adalah gulungan dan kawat dari 33 dari 132 palu.Di bagian bawah foto satu palu ditampilkan. Kiri atas adalah kumparan dan kabel elektromagnetik. Kami harus mengganti palu ini setelah gelung kepanasan dan merokok - foto menunjukkan area yang menghitam (ini
terjadi sejak lama dan tidak terkait dengan musik).

Generasi musik
Setelah memahami cara kerja printer, palu yang memiliki kemampuan untuk beroperasi setiap 11,1 μs, akan lebih mudah untuk memahami strategi untuk mendapatkan musik. Dengan mencetak teks yang dipilih dengan cermat, Anda dapat mengontrol waktu respons palu. Jika palu dipicu pada interval tertentu, dimungkinkan untuk membuat frekuensi yang diperlukan. Misalnya, note la (440 Hz) dapat diperoleh dengan mencetak satu baris teks sehingga palu bekerja setiap 1/440 detik. Ini dapat dicapai dengan mengetik 1 di kolom 1 (palu pertama), lalu # di kolom 14 pada pemindaian berikutnya, koma di kolom ke-30, dan seterusnya. Berikut ini adalah seluruh baris yang perlu Anda cetak untuk membuat catatan. Anda mungkin terkejut bahwa dengan hanya 48 posisi, set karakter menyertakan kejadian aneh seperti ⌑ dan ‡.
1 ⌑YC# 0 Q 3, ‡FRT 4 - , IU $7 MV . * 9N ⌑ ZE @ P3
Diagram di bawah ini menunjukkan distribusi temporal dari palu, frekuensi seragam 440 Hz, yang diberikan oleh garis karakter yang diberikan. Sumbu x mewakili waktu, setiap karakter yang dicetak ditandai dengan bilah merah. Garis merah didistribusikan secara merata, pada jarak 1/440 detik, yang menghasilkan nada pada 440 Hz. Setiap bilah ditandai dengan simbol dan kolom terkait pada halaman. Perhatikan bahwa karakter tidak dicetak sesuai urutan kemunculannya di telepon. Tidak ada hubungan sederhana antara susunan karakter dalam string dan urutan waktu mereka. Beberapa garis abu-abu ditampilkan di mana palu seharusnya bekerja, tetapi simbolnya hilang. Pada titik ini, jaringan sedang melakukan sinkronisasi, sehingga tidak dapat mencetak.
Diagram distribusi waktu untuk note la.Dengan mengetik baris lain, Anda dapat membuat catatan lain. Di bawah ini adalah catatan si, 987 Hz (lebih dari satu oktaf lebih tinggi). Seperti yang diharapkan, lebih banyak catatan membutuhkan lebih banyak karakter:
1 @EQ4S J 8. ND ‡ SH 7 AM Y#2 G- KV . 0 DQSJ 7& ND ‡/4 H AMX0 2 QGJ W. 0 DP‡ S 7&AM ‡/4G * MX0 D 3
Diagram distribusi waktu untuk note s.Berikut ini adalah garis untuk nada tajam (138 Hz). Pada awalnya, tidak jelas bagi saya mengapa catatan ini membutuhkan pencetakan string di mana semua karakter dikelompokkan dalam tumpukan, dan tidak tersebar, seperti catatan lainnya. Ternyata 138 Hz bertepatan dengan palu berturut-turut. Dan meskipun karakter bersebelahan, mereka didistribusikan secara merata dari waktu ke waktu.
16#UZKP*E&38
Diagram distribusi temporal untuk nada tajam.Apa risiko musik berantai
Kami khawatir program musik ini dapat merusak printer kami. Ada banyak cerita tentang bagaimana orang memecahkan printer dengan mencetak garis yang membuat semua palu bekerja pada saat yang bersamaan. Saya pikir ini terutama legenda urban (1403 palu api pada gilirannya). Namun, kami khawatir musik berantai mungkin membebani rantai printer dan itu akan rusak. Foto di bawah ini menunjukkan rantai putus selama penggunaan normal; kabel yang sobek dan tautan individual terlihat.

Rantai untuk printer dibuat dengan mengepang kawat tipis menjadi pita dan menempelkan balok dengan huruf padanya. Sampai saat ini, rantai ini langka dan tidak dapat diganti; jika kawatnya robek, mustahil untuk memperbaikinya. Namun, Museum Techworks! dari Binghamton baru-baru ini menemukan cara untuk mengembalikan sirkuit tercetak. Karena itu, Raja kami di IBM 1401, Frank King, dengan enggan menyetujui penggunaan rantai yang dipulihkan untuk memutar musik. Untungnya, rantai itu selamat dari generasi musik dengan sempurna. Setelah mempelajari program musik, saya sampai pada kesimpulan bahwa rangkaiannya lebih tegang daripada pencetakan biasa, kecuali, tentu saja, resonansi yang sangat tidak berhasil muncul di dalamnya.
Sirkuit cetak (terbalik) dari jarak dekatProgramnya

Kode sumber untuk program ini telah lama terlupakan, jadi saya membongkar
kode mesin dari kartu untuk memahami cara kerjanya (saya
daftar daftar secara terpisah). Pertama, ia membaca "kartu frekuensi" yang menentukan jalur mana yang akan dicetak untuk not mana. Ini menciptakan dalam memori array garis untuk dicetak, bersama dengan tabel dengan nama catatan dan alamat garis untuk dicetak. Kemudian program membaca catatan lagu, satu catatan per kartu (foto menunjukkan bahwa untuk beberapa lagu Anda harus menggunakan banyak kartu). Untuk setiap catatan, program mencari baris yang sesuai untuk dicetak dalam tabel. Ini mencetak garis sebanyak yang diperlukan, tergantung pada panjang catatan. Selanjutnya memenuhi siklus keheningan, dari 200 hingga 2000 kali.
Kartu yang dilubangi dengan kode mesin dari program musik. Untuk beberapa alasan, isi setiap kartu dicetak dua kali.Kode mesin 1401 sangat berbeda dari komputer modern. Salah satu perbedaannya adalah bahwa
kode modifikasi-diri sebelumnya sering digunakan, tetapi hari ini praktik semacam itu dikutuk. Misalnya, tabel garis untuk pencetakan dibuat dengan mengubah instruksi pemuatan, di mana bidang alamat berubah. Bahkan pengembalian dari rutinitas menggunakan kode modifikasi diri dengan menempatkan alamat kembali dalam pernyataan jmp di akhir rutin. Untuk memproses catatan, program on the fly menghasilkan urutan tiga instruksi untuk memuat garis, pergi ke kode cetak, dan kemudian kembali ke loop utama. Kode modifikasi sendiri menyulitkan saya untuk memahami program, karena kode yang dibongkar tidak cocok dengan kode yang benar-benar berjalan.
Di belakang kartu dengan program adalah kartu frekuensi yang menentukan garis untuk setiap catatan. Kode mendukung hingga 20 catatan yang berbeda, sehingga kartu frekuensi dipilih untuk setiap lagu secara terpisah. Setiap baris 132 karakter dibagi menjadi dua kartu, yang pertama menentukan sisi kanan garis. Nama catatan dan frekuensi dicetak pada setiap kartu di sudut kanan.
Kartu frekuensiSet kartu terakhir menghasilkan melodi, dan setiap nada (atau celah) memiliki kartu sendiri. Setiap kartu memiliki catatan dan durasi yang tercetak di atasnya. Melodi panjang dapat melibatkan ratusan kartu. Mudah untuk menyimpan melodi baru pada kartu - Anda hanya perlu membuat catatan pada kartu. Catatan ditunjukkan dalam
sistem notasi Amerika , di mana nama catatan diikuti oleh angka oktaf. Sebagai contoh, C4 adalah rata-rata untuk. Karena hanya beberapa sirkuit yang dicetak memiliki simbol #, benda tajam dilambangkan dengan huruf S, mis. CS, bukan C #.
Foto kartu dengan close-up melodi "Silver Bells".Kesimpulan
Kami berhasil memutar musik pada printer IBM 1403 dengan menjalankan program yang tidak pernah dijalankan siapa pun selama hampir 50 tahun. Meskipun kualitas musiknya tidak terlalu tinggi, kami senang bahwa printer tidak merusak diri sendiri. Terakhir kali Ron Mack meluncurkan program ini pada tahun 1970;
dengan tautan Anda akan menemukan beberapa nada. Video di bawah ini menunjukkan kutipan dari Marseillaise; Dalam video ini Anda dapat menonton pencetakan setiap baris.
Museum Sejarah Komputer Mountain View memamerkan IBM 1401
pada hari Rabu dan Sabtu , jadi jika Anda berada di dekatnya, saya sarankan Anda mengunjungi pameran kami.