Любая файловая система или операционная система, о которой вы хотите поговорить, меня устраивает. Ницца!
На ZX Spectrum инициализация LOAD
команды замкнет систему, читая строку Audio In.
Начало данных обозначается постоянным тоном, после чего следует последовательность длинных / коротких импульсов, где короткий импульс предназначен для двоичного, 0
а более длинный - для двоичного 1
( https://en.wikipedia.org/ wiki / ZX_Spectrum_software ). Плотная нагрузочная петля собирает биты до тех пор, пока не заполнит байт (8 бит), сохранит его в памяти, увеличит указатель памяти, а затем вернется в цикл для поиска большего количества битов.
Как правило, первое, что прочитает загрузчик, это короткий фиксированный заголовок формата , указывающий, по крайней мере, ожидаемое количество байтов и, возможно, дополнительную информацию, такую как имя файла, тип файла и адрес загрузки. После прочтения этого короткого заголовка программа может решить, продолжить ли загрузку основной массы данных или выйти из процедуры загрузки и отобразить соответствующее сообщение для пользователя.
Состояние конца файла можно распознать, получив столько байтов, сколько ожидается (либо фиксированное число байтов, встроенное в программное обеспечение, либо переменное число, такое как указано в заголовке). Выдалась ошибка, если в течение определенного промежутка времени нагрузочный контур не получал импульс в ожидаемом диапазоне частот.
Небольшая предыстория этого ответа
Описанная процедура загружает данные с обычной аудиокассеты - отсюда и необходимость сканирования Audio In (она подключается со стандартным штекером к магнитофону). LOAD
Команда технически же , как и open
файл - но он физически привязан к фактически загрузке файла. Это связано с тем, что магнитофон не контролируется компьютером, и вы не можете (успешно) открыть файл, но не можете загрузить его.
Упоминается «тесная петля», потому что (1) процессор, Z80-A (если память служит), работал очень медленно: 3,5 МГц, и (2) у Spectrum не было внутренних часов! Это означает, что он должен был точно вести подсчет T-состояний (времени команд) для каждого. не замужем. инструкция. внутри этой петли, просто чтобы поддерживать точное время звукового сигнала.
К счастью, эта низкая скорость процессора имела явное преимущество, заключающееся в том, что вы можете рассчитать количество циклов на листе бумаги и, следовательно, время, которое они потратят в реальном мире.
C
Linux; поскольку то, что делают Linux и Windows, отличается. В противном случае это слишком широкий. Кроме того, любой язык более высокого уровня в конечном итоге вызовет либо C API для системы, либо компиляцию до C для выполнения, поэтому выход на уровне «C» означает его наименьший общий знаменатель.