Ktoś wie, dlaczego sektory dyskietki IBM mają nazwy od 1 do 8 (a nie od 0 do 7) [zamknięte]

10

Teraz programuję na 8-bitowym komputerze Z80 z CP / M 2.2 (jako hobby), a format dyskietki to IBM, 40 ścieżek, 8 sektorów na ścieżkę, 512 bajtów na sektor. wolne miejsce to 154 Ko na każdej powierzchni dysku.

Dlaczego sektory są indeksowane od 1 do 8 (a nie od zera do siedmiu, jak zwykle w przypadku komputerów)?

Katalog dyskietek znajduje się na ścieżce 1 (sektory od 1 do 4, 64 wpisy).

Zastanawiam się, czy katalog jest na ścieżce zero?

Czy ścieżka zerowa jest zarezerwowana na system (ponieważ ścieżki 0 i 1 są zarezerwowane dla systemu na dyskietce CP / M, a katalog znajduje się na ścieżce 2)?


Zapytałem o to, ponieważ na przykład w APPLE II sektory zaczynają się od zera (od 0 do F).

Komputer, którego używam, to AMSTRAD CPC 6128 (1985). Jest to 8 bitów z Zilog Z-80, z dostępnymi CP / M OS 2.2 i 3.0.

Format dyskietki jest dość rzadki: 3 cale. (nie 3 1/2).

Dostępne są 3 FORMATY: -CP / M: 40 ścieżek (od 0 do 39) 9 sektorów na ścieżkę (o nazwach od 41 do 49) 169 Ko na każdej twarzy. -DANE: 40 ścieżek (od 0 do 39) 9 sektorów na ścieżkę (nazwane od C1 do C9) 178 Ko na każdej twarzy. -IBM: 40 ścieżek (od 0 do 39) 8 sektorów na ścieżkę (nazwanych od 1 do 8) 154 Ko wolnego miejsca na każdej twarzy.

3-calowa dyskietka różni się od 3 1/2 dyskietki. Aby przeczytać stronę B: Muszę wysunąć dyskietkę i obrócić ją, a następnie ponownie włożyć do napędu! ale działa bardzo dobrze.

Ścieżki zaczynają się od 0 do 39. Jestem ciekawy, dlaczego sektory zaczynają się od 1 i dlaczego ścieżka 0 nie jest używana dla katalogu w formacie IBM ...

Na przykład format CP / M jest bardzo prosty: katalog na ścieżce 2, system CP / M na ścieżce 0 i 1.

Jestem doświadczonym programistą montażu i myślę, że logiczne byłoby, aby sektory zaczynały od zera, podobnie jak ścieżki. Komputer AMSTRAD CPC akceptuje również napęd dyskowy 5 1/4. Kupiłem jeden wczoraj. Ale ścieżki, sektory i formaty będą oczywiście takie same na 5 1/4 dyskotekach.

Olivier.

ps: przepraszam za mój angielski, to nie jest mój język ojczysty. ^^

Olivier Briand
źródło
Czasami coś jest tak, ponieważ tak jest. (Należy pamiętać, że format dyskietki sięga bardzo wczesnych, częściowo elektromechanicznych systemów wprowadzania danych z klucza na dysk. Innymi słowy, inżynierowie mechanicy mieli tak duży udział w projektowaniu jak EE.)
Daniel R Hicks
40 utworów, jesteś pewien? To byłaby jednostronna dyskietka 5,25 ". A może masz na myśli 40 cylindrów i dwustronne dyskietki? BTW CP / M zazwyczaj obsługiwał dyskietki 8" i 5,25 ", dyskietki jedno- i dwustronne , formaty zapisu o pojedynczej i podwójnej gęstości , oraz asortyment rozmiarów sektorów (256, 512 i 1024 były powszechne). PC-DOS IBM obsługiwał dyskietki SS i DS 5.25 "i pomaga w standaryzacji 512 bajtów na sektor.
trociny
1
Pytanie w twoim tytule nie jest związane z „dyskietką IBM”, ale wraca do „standardowych” kontrolerów dyskietek z IBM 3740 i IBM System 34, które stały się standardami dla formatów zapisu pojedynczej i podwójnej gęstości. Schematy numeracji zostały zaprojektowane przez inżynierów sprzętu i zaimplementowane dla sekwencji poleceń, a nie zaprojektowane przez inżynierów oprogramowania lub programistów.
trociny
1
Istnieje teraz wymiana stosów obliczeniowych w stylu retro dla takich pytań.
CJ Dennis
Zobacz także: superuser.com/questions/974952/…
hippietrail

Odpowiedzi:

6

Myślę, że masz błędne przekonanie, że sprawy dotyczące komputerów zaczynają się od zera.

Chociaż tak jest w przypadku wszystkich języków opartych na C (C, C ++, C #, Java itp.), NIE jest prawdą w przypadku niektórych języków, które są tak stare lub starsze niż C (jak FORTRAN i COBOL).

Ponieważ Z80 został wprowadzony przed ANSI C, oczekiwano, że będzie działał o wiele więcej COBOL i FORTRAN niż Lisp (który jest również bardzo stary, ale ma indeksowanie zerowe).

W związku z tym indeksowanie oparte na jednym ma sens.

soandos
źródło
2
Mikroprocesor Zilog Z80 i wszystkie obsługiwane przez niego języki programowania nie mają nic wspólnego ze standardami kontrolera stacji dyskietek. Dyskietki zostały wynalezione przed pojawieniem się Z80.
trociny
1
@sawdust, ma on wtedy znacznie więcej wspólnego ze standardami. Ponieważ w tym czasie oczekiwano, że wiele rzeczy będzie indeksowanych, Floppys też.
soandos
4
Twoje „wyjaśnienie” nie uwzględnia faktu, że numer cylindra i numer głowicy są ponumerowane od zera, a nie od jednego.
trociny
3

Pierwsza specyfikacja na dyskietkach została opracowana przez IBM z wyglądem IBM 3740 i nie wspomina, że ​​istnieją sektory zarezerwowane dla systemu. Jedynym zastrzeżeniem dla systemu jest ścieżka 00, która przechowuje tylko „Etykiety zestawu danych”, które identyfikują rodzaj informacji przechowywanych w ścieżkach 01 do 76. Jasno określa, że ​​pierwszym sektorem jest SEKTOR 1. To nie jest przypadek, ale kwestia naturalnej numeracji w stosunku do numeracji komputera.

Możemy zaobserwować, że kiedy człowiek zaczyna liczyć cokolwiek, nie zaczyna się od zera, ale od jednego. Wyobraź sobie na przykład, że w klasie jest 135 uczniów. Liczenie liczby byłoby mniej więcej takie: raz, dwa, trzy ... sto trzydzieści cztery, sto trzydzieści pięć.

Jego numeryczna reprezentacja byłaby zatem: 1, 2, 3, ... 134, 135 Jak dotąd się zgadzamy, prawda?

Teraz wstawmy cyfry, które nie są reprezentowane przez 0. Wygląda to tak: 001, 002, 003, ..., 015, 016, ..., 099, 100, ..., 133, 134, 135

Tak dzieje się z CHS : 0,0,1 - 0,0,2 - 0,0,3 ...

Znaczące jest to, że wiersze w arkuszach Excela lub pola auto-numeryczne w bazie danych zaczynają się od 1, a nie od 0, i nikt nic o tym nie powiedział.

Czy David J. Bradley tak zaplanował BIOS?

Tak, ale nie był z boku.

Zdecydowanie nie ma technicznego powodu, dla którego SECTOR 0 nie może być używany, chyba że jest zarezerwowany i ukryty przed użytkownikami z innych powodów. Zasadniczo wszystko wskazuje na to, że jest to naturalna numeracja.

GA21-9152-2 Plik nr 3740-00,15
System wprowadzania danych IBM 3740

strona 12
INICJALIZACJA DYSKU
... Każdy dysk zawiera dwa zapasowe ścieżki, które zastępują nieregularne ścieżki. Ponadto funkcja inicjalizacji umożliwia zmianę sekwencji adresu sektora na dyskietce. Zwykle sekwencja sektorów jest uporządkowana numerycznie (1, 2, 3, ... 25,26)
.

strona 24
OZNAKOWANIE DANYCH NA DYSKETCE
Podczas inicjalizacji etykieta zestawu danych dla zestawu danych jest magnetycznie zapisywana na ścieżce indeksu (ścieżka 00) dyskietki. Głównym celem tej etykiety jest pokazanie położenia zestawu danych na dyskietce

Było to w 1973 roku. Zapisano dane na dyskietce 8 ". IBM PC 5150 urodził się 12 sierpnia 1981 roku ... i nie możemy zapominać, że musieli zachować pewną kompatybilność z poprzednimi urządzeniami.

Zdecydowanie nie było powodu technicznego.

APO69
źródło