Konuşmak istediğiniz herhangi bir dosya sistemi veya işletim sistemi benim için iyi. Güzel!
Bir ZX Spektrumunda, bir LOAD
komutun başlatılması sistemi Ses Girişi satırını okuyarak sıkı bir döngüye sokacaktır.
Verilerin başlangıcı sabit bir tonla gösterilir ve bundan sonra bir kısa / uzun darbe ikili 0
ve daha uzun bir ikili 1
( ikili) için bir dizi uzun / kısa darbe izler ( https://en.wikipedia.org/ wiki / ZX_Spectrum_software ). Sıkı yük döngüsü, bir baytı (8 bit) doldurana kadar bitleri toplar, bunu belleğe kaydeder, bellek işaretçisini artırır, sonra daha fazla bit taramak için geri döner.
Tipik olarak, bir yükleyicinin okuyacağı ilk şey , en azından beklenecek bayt sayısını ve muhtemelen dosya adı, dosya türü ve yükleme adresi gibi ek bilgileri gösteren kısa, sabit bir format üstbilgisidir . Bu kısa başlığı okuduktan sonra, program verilerin ana yığınını yüklemeye devam etmeye veya yükleme rutininden çıkıp kullanıcı için uygun bir mesaj görüntülemeye karar verebilir.
Dosya sonu durumu, beklendiği kadar bayt alınarak tanınabilir (sabit sayıda bayt, yazılımda kablolu veya bir başlıkta belirtildiği gibi değişken bir sayı). Yükleme döngüsü belirli bir süre için beklenen frekans aralığında bir darbe almadıysa bir hata atılır.
Bu cevapta biraz arka plan
Açıklanan prosedür düzenli bir ses kasetinden veri yükler - bu nedenle Ses Girişini tarama ihtiyacı (standart bir fişe bant kaydedicilere bağlanır). Bir LOAD
komut teknik olarak open
bir dosya ile aynıdır - ancak dosyayı gerçekten yüklemek için fiziksel olarak bağlıdır . Bunun nedeni, ses kayıt cihazının bilgisayar tarafından kontrol edilmemesi ve bir dosyayı (başarıyla) açamamanız ancak yükleyememenizdir.
"Sıkı döngü" denir, çünkü (1) CPU, bir Z80-A (bellek çalışıyorsa), gerçekten yavaştı: 3.5 MHz ve (2) Spectrum'un dahili saati yoktu! Bu, her biri için T durumlarını (talimat süreleri) doğru bir şekilde tutması gerektiği anlamına gelir . tek. talimat. Doğru bip zamanlamasını korumak için bu döngü içinde.
Neyse ki, bu düşük CPU hızı, bir kağıt parçasındaki döngü sayısını ve dolayısıyla alacakları gerçek dünya zamanını hesaplayabileceğiniz belirgin bir avantaja sahipti.
C
Linux ve Linux'a odaklanacak şekilde düzenleme ; çünkü Linux ve Windows'un yaptıkları farklı. Aksi takdirde, biraz fazla geniş. Ayrıca, herhangi bir üst düzey dil, sistem için bir C API'sini çağırır veya yürütmek için C'ye derler, böylece "C" düzeyinde bırakmak bunu En Az Ortak Payda'ya yerleştirir.