Każdy system plików lub system operacyjny, o którym chcesz rozmawiać, jest dla mnie w porządku. Miły!
W przypadku ZX Spectrum zainicjowanie LOAD
polecenia wprowadzi system w ścisłą pętlę, odczytując linię Audio In.
Początek danych jest sygnalizowany stałym tonem, a następnie następuje sekwencja długich / krótkich impulsów, przy czym krótki impuls jest dla binarnego, 0
a dłuższy dla binarnego 1
( https://en.wikipedia.org/ wiki / ZX_Spectrum_software ). Ciasna pętla obciążenia zbiera bity, aż wypełni bajt (8 bitów), zapisuje to w pamięci, zwiększa wskaźnik pamięci, a następnie zapętla z powrotem, aby wyszukać więcej bitów.
Zazwyczaj pierwszą rzeczą, którą czytnik powinien przeczytać, jest krótki nagłówek o stałym formacie , wskazujący co najmniej oczekiwaną liczbę bajtów i ewentualnie dodatkowe informacje, takie jak nazwa pliku, typ pliku i adres ładowania. Po przeczytaniu tego krótkiego nagłówka program może zdecydować, czy kontynuować ładowanie głównej części danych, czy zakończyć procedurę ładowania i wyświetlić odpowiedni komunikat dla użytkownika.
Stan końca pliku można rozpoznać po otrzymaniu tylu bajtów, ile się spodziewa (stałej liczby bajtów zapisanych w oprogramowaniu lub zmiennej liczby, takiej jak wskazana w nagłówku). Zgłoszono błąd, jeśli pętla obciążeniowa nie otrzymywała impulsu w oczekiwanym zakresie częstotliwości przez określony czas.
Małe tło do tej odpowiedzi
Opisana procedura ładuje dane ze zwykłej taśmy audio - stąd potrzeba przeskanowania wejścia audio (jest to połączone ze standardową wtyczką do magnetofonu). LOAD
Komenda jest technicznie taka sama jak open
pliku - ale to fizycznie przywiązany do rzeczywiście ładuje plik. Wynika to z faktu, że magnetofon nie jest kontrolowany przez komputer i nie można (pomyślnie) otworzyć pliku, ale nie można go załadować.
Wspomniano o „ciasnej pętli”, ponieważ (1) procesor, Z80-A (jeśli pamięć służy), był naprawdę wolny: 3,5 MHz i (2) spektrum nie miało wewnętrznego zegara! Oznacza to, że musiał dokładnie liczyć stany T (czasy instrukcji) dla każdego. pojedynczy. instrukcja. wewnątrz tej pętli, aby zachować dokładny czas sygnału dźwiękowego.
Na szczęście ta niska prędkość procesora miała tę wyraźną zaletę, że można było obliczyć liczbę cykli na kawałku papieru, a tym samym czas rzeczywisty, jaki by to zajęło.
C
i Linux; ponieważ to, czym różnią się Linux i Windows. W przeciwnym razie jest nieco za szeroki. Ponadto każdy język wyższego poziomu wywoła albo C API dla systemu, albo skompiluje do C w celu wykonania, więc pozostawienie na poziomie „C” stawia go na poziomie najmniej wspólnego mianownika.