Setiap sistem file atau sistem operasi yang ingin Anda bicarakan baik-baik saja oleh saya. Bagus!
Pada ZX Spectrum, menginisialisasi LOAD
perintah akan membuat sistem menjadi loop ketat, membaca garis Audio In.
Awal-data ditunjukkan oleh nada konstan, dan setelah itu rangkaian pulsa panjang / pendek mengikuti, di mana pulsa pendek untuk biner 0
dan yang lebih panjang untuk biner 1
( https://en.wikipedia.org/ wiki / ZX_Spectrum_software ). Loop beban ketat mengumpulkan bit sampai mengisi satu byte (8 bit), menyimpan ini ke dalam memori, meningkatkan penunjuk memori, kemudian loop kembali untuk memindai bit lebih banyak.
Biasanya, hal pertama yang dibaca loader adalah header format pendek, yang menunjukkan setidaknya jumlah byte yang diharapkan, dan mungkin informasi tambahan seperti nama file, jenis file, dan alamat pemuatan. Setelah membaca tajuk singkat ini, program dapat memutuskan apakah akan melanjutkan memuat sebagian besar data, atau keluar dari rutinitas memuat dan menampilkan pesan yang sesuai untuk pengguna.
Status End-of-file dapat dikenali dengan menerima byte sebanyak yang diharapkan (baik jumlah byte tetap, bawaan dalam perangkat lunak, atau nomor variabel seperti yang ditunjukkan dalam header). Kesalahan terjadi jika loop pemuatan tidak menerima pulsa dalam rentang frekuensi yang diharapkan untuk jangka waktu tertentu.
Sedikit latar belakang tentang jawaban ini
Prosedur ini menjelaskan memuat data dari kaset audio biasa - maka kebutuhan untuk memindai Audio Masuk (itu terhubung dengan plug standar ke perekam kaset). Sebuah LOAD
perintah secara teknis sama dengan open
file - tapi itu secara fisik terikat benar-benar memuat file. Ini karena tape recorder tidak dikontrol oleh komputer, dan Anda tidak dapat (berhasil) membuka file tetapi tidak memuatnya.
"Loop ketat" disebutkan karena (1) CPU, Z80-A (jika memori berfungsi), benar-benar lambat: 3,5 MHz, dan (2) Spectrum tidak memiliki jam internal! Itu berarti bahwa ia harus secara akurat menghitung T-state (waktu instruksi) untuk setiap. tunggal. petunjuk. di dalam lingkaran itu, hanya untuk mempertahankan waktu bip yang akurat.
Untungnya, kecepatan CPU yang rendah memiliki keuntungan berbeda sehingga Anda dapat menghitung jumlah siklus pada selembar kertas, dan dengan demikian waktu dunia nyata yang akan mereka ambil.
C
dan Linux; karena apa yang dilakukan Linux dan Windows berbeda. Kalau tidak, itu agak terlalu luas. Juga, setiap bahasa tingkat yang lebih tinggi pada akhirnya akan memanggil baik C API untuk sistem atau kompilasi ke C untuk mengeksekusi, sehingga meninggalkan pada tingkat "C" meletakkannya di Least Common Denominator.