9

Сейчас я программирую на 8-битном компьютере Z80 с CP/M 2.2 (в качестве хобби), и формат флоппи-диска - IBM, 40 дорожек, 8 секторов на дорожку, 512 байт на сектор. свободное пространство составляет 154 Ко на каждой стороне диска.

Почему сектора индексируются от 1 до 8 (а не от 0 до 7, как это обычно наблюдается на компьютерах)?

Каталог дискеты находится на дорожке 1 (сектор от 1 до 4, 64 записи).

Мне интересно, каталог на треке ноль?

Нулевая дорожка зарезервирована для включения системы (поскольку дорожки 0 и 1 зарезервированы для системы на дискете CP/M, а каталог находится на дорожке 2)?


Я спросил об этом, потому что, например, в APPLE II сектора начинаются с нуля (от 0 до F).

Используемый мной компьютер - AMSTRAD CPC 6128 (1985). Это 8 бит с Zilog Z-80, с CP/M OS 2.2 и 3.0 доступны.

Формат дискеты довольно редкий: 3 дюйма. (не 3 1/2).

Доступно 3 ФОРМАТА: -CP/M: 40 дорожек (от 0 до 39) 9 секторов на дорожку (с именами от & 41 до & 49) 169 Ko на каждой грани. -ДАННЫЕ: 40 дорожек (от 0 до 39) по 9 секторов на дорожку (с именами от & C1 до & C9) 178 Ко на каждом лице. -IBM: 40 дорожек (от 0 до 39) по 8 секторов на дорожку (с именами от 1 до 8) 154 Ko свободного места на каждой грани.

3-дюймовый дискета отличается от 3 1/2 дискеты. Чтобы прочитать сторону B: я должен извлечь дискету и повернуть ее сам, а затем снова вставить ее в дисковод! но это работает очень хорошо.

Треки начинаются с 0 до 39. Мне просто любопытно узнать, почему сектора начинаются с 1, и почему дорожка 0 не используется для каталога в формате IBM ...

Например, формат CP/M очень прост: каталог на дорожке 2, система CP/M на дорожке 0 и 1.

Я опытный программист на ассемблере, и я думаю, что было бы логично, чтобы секторы начинались с нуля, как это делают треки. Компьютер AMSTRAD CPC также может работать с диском 5 1/4. Я купил один вчера. Но треки, сектора и форматы будут, конечно, одинаковыми на 5 1/4 дискет.

Оливье.

PS: извините за мой английский, это не мой родной язык. ^^

2 ответа2

6

Я думаю, у вас неправильное представление о том, что все, что касается компьютеров, начинается с нуля.

Хотя это относится ко всем языкам на основе C (C, C++, C #, Java и т.д.), Это НЕ верно для некоторых языков, которые являются такими же старыми или старше C (например, FORTRAN и COBOL).

Поскольку Z80 был представлен до ANSI C, ожидалось, что он будет работать намного больше COBOL и FORTRAN, чем Lisp (который также очень старый, но имеет индексирование на основе нуля).

Таким образом, индексирование на основе имеет смысл.

3

Первая спецификация на гибких дисках была сделана IBM с появлением IBM 3740 и не упоминает, что есть сектора, зарезервированные для системы. Единственное резервирование для системы - это трек 00, в котором хранятся только "Метки набора данных", которые идентифицируют тип информации, хранящейся в треках с 01 по 76. Он четко определяет, что первый сектор - это СЕКТОР 1. Это не совпадение, а вопрос естественной нумерации против нумерации компьютера.

Мы можем наблюдать, что когда человек начинает что-то считать, он начинается не с нуля, а с одного. Например, представьте, что в классе 135 учеников. Подсчет числа будет примерно таким: раз, два, три ... сто тридцать четыре, сто тридцать пять.

Его числовое представление будет таким: 1, 2, 3, ... 134, 135 Пока что мы согласны, верно?

Теперь давайте поместим цифры, которые не представлены как 0. Это будет выглядеть так: 001, 002, 003, ..., 015, 016, ..., 099, 100, ..., 133, 134, 135

Вот что происходит с CHS: 0,0,1 - 0,0,2 - 0,0,3 ...

Важно, что строки в таблицах Excel или в авто-числовых полях в базе данных начинаются с 1, а не с 0, и никто ничего не сказал по этому поводу.

Дэвид Дж. Брэдли так планировал BIOS?

Да, но он не был вне.

Безусловно, нет технической причины, по которой SECTOR 0 нельзя использовать, если он не зарезервирован и скрыт от пользователей по другим причинам. В принципе, все указывает на это вопрос естественной нумерации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .