Saya sekarang pemrograman pada komputer 8 bit Z80 dengan CP / M 2.2, (sebagai hobi) dan format floppy disk adalah IBM, 40 trek, 8 sektor per track, 512 byte per sektor. ruang kosong adalah 154 Ko di setiap sisi disk.
Mengapa sektor ini diindeks 1 hingga 8 (dan bukan nol hingga tujuh, seperti yang biasanya terlihat pada komputer)?
Katalog floppy disk ada di trek 1 (sektor 1 hingga 4, 64 entri).
Saya bertanya-tanya apakah katalog di jalur nol?
Apakah jalur nol dicadangkan untuk memasukkan sistem (karena trek 0 & 1 dicadangkan untuk sistem pada floppy disk CP / M, dan katalog ada di jalur 2)?
Saya menanyakan ini karena misalnya, pada APPLE II, sektor mulai dari nol (0 hingga F).
Komputer yang saya gunakan adalah AMSTRAD CPC 6128 (1985). Ini adalah 8 bit dengan Zilog Z-80, dengan CP / M OS 2.2 dan 3.0 tersedia.
Format floppy disk cukup langka: 3 inci. (bukan 3 1/2).
3 FORMAT tersedia: -CP / M: 40 trek (0 hingga 39) 9 sektor per trek (dinamai & 41 hingga & 49) 169 Ko di setiap wajah. -DATA: 40 trek (0 hingga 39) 9 sektor per trek (dinamai & C1 ke & C9) 178 Ko di setiap wajah. -IBM: 40 trek (0 hingga 39) 8 sektor per trek (dinamai 1 hingga 8) 154 Ko ruang kosong di setiap wajah.
Floppy disk 3 inci berbeda dari floppy disk 3 1/2. Untuk membaca sisi B: Saya harus mengeluarkan disket dan memutarnya sendiri lalu memasukkannya lagi ke disk drive! tapi itu bekerja dengan sangat baik.
Trek mulai dari 0 hingga 39. Saya hanya ingin tahu mengapa sektor mulai dari 1, dan mengapa trek 0 tidak digunakan untuk direktori pada format IBM ...
Misalnya, format CP / M sangat sederhana: direktori di jalur 2, sistem CP / M di jalur 0 dan 1.
Saya adalah programmer perakitan yang berpengalaman, dan saya pikir itu akan menjadi logis bahwa sektor mulai dari nol, seperti trek. Komputer CPC AMSTRAD dapat menerima drive disk 5 1/4 juga. Saya membeli satu kemarin. Tetapi trek, sektor, dan format tentu saja sama dengan 5 1/4 disket.
Olivier.
ps: maaf untuk bahasa Inggris saya, ini bukan bahasa ibu saya. ^^
Jawaban:
Saya pikir Anda memiliki kesalahpahaman bahwa hal-hal mengenai komputer mulai dari nol.
Meskipun demikian halnya dengan semua bahasa berbasis C (C, C ++, C #, Java, dll) TIDAK benar untuk beberapa bahasa yang sama tuanya, atau lebih tua dari C (seperti FORTRAN dan COBOL).
Karena Z80 diperkenalkan sebelum ANSI C, diharapkan menjalankan COBOL dan FORTRAN jauh lebih banyak daripada Lisp (yang juga sangat tua, tetapi memiliki pengindeksan berbasis nol).
Dengan demikian, pengindeksan satu berbasis masuk akal.
sumber
Spesifikasi pertama pada floppy disk dibuat oleh IBM dengan penampilan IBM 3740 dan tidak menyebutkan bahwa ada sektor yang dicadangkan untuk sistem. Satu-satunya reservasi untuk sistem ini adalah trek 00, yang hanya menyimpan "Label Set Data" yang mengidentifikasi jenis informasi yang disimpan dalam trek 01 hingga 76. Ini jelas mendefinisikan bahwa sektor pertama adalah SEKTOR 1. Ini bukan kebetulan tetapi sebuah soal penomoran alami terhadap penomoran komputer.
Kita dapat mengamati bahwa ketika manusia mulai menghitung sesuatu, itu tidak dimulai dengan nol tetapi satu. Misalnya, bayangkan ada 135 siswa di kelas. Menghitung angkanya akan seperti itu: Satu, dua, tiga ... seratus tiga puluh empat, seratus tiga puluh lima.
Representasi numeriknya adalah sebagai berikut: 1, 2, 3, ... 134, 135 Sejauh ini kita sepakat, bukan?
Sekarang mari kita letakkan digit yang tidak terwakili dengan menjadi 0. Akan terlihat seperti ini: 001, 002, 003, ..., 015, 016, ..., 099, 100, ..., 133, 134, 135
Inilah yang terjadi dengan CHS : 0,0,1 - 0,0,2 - 0,0,3 ...
Penting bahwa baris dalam lembar Excel atau bidang angka-otomatis dalam basis data dimulai dengan 1 dan bukan 0 dan tidak ada yang mengatakan apa pun tentang ini.
Apakah David J. Bradley menjadwalkan BIOS seperti itu?
Ya, tapi dia tidak di luar.
Jelas tidak ada alasan teknis mengapa SEKTOR 0 tidak dapat digunakan kecuali itu dicadangkan dan disembunyikan dari pengguna karena alasan lain. Pada prinsipnya segala sesuatu yang mengarah padanya adalah masalah penomoran alami.
GA21-9152-2 File No. 3740-00,15
IBM 3740 Sistem Entri Data
halaman 12
INISIIALISASI DISK
... Setiap disk berisi dua trek cadangan untuk mengganti semua trek yang tidak beraturan. Selain itu, fitur inisialisasi menyediakan sarana untuk mengubah urutan alamat sektor pada disket. Biasanya, urutan sektor dalam urutan numerik (1, 2, 3, ... 25,26) .
halaman 24
LABELASI DATA TENTANG DISKETTE
Selama inisialisasi, label set data untuk set data secara magnetis direkam pada track indeks (track 00) dari disket. Tujuan utama label ini adalah untuk menunjukkan lokasi set data pada disket
Ini pada tahun 1973. Ini mencatat data pada disket 8 ". IBM PC 5150 lahir pada 12 Agustus 1981 ... dan kita tidak bisa lupa bahwa mereka harus menjaga kompatibilitas dengan perangkat sebelumnya.
Jelas tidak ada alasan teknis.
sumber