Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
cpm:write_a_bios:teil_1 [2021/09/22 06:30] – [Der Disk Parameter Block] volkerp | cpm:write_a_bios:teil_1 [2024/04/12 12:34] (aktuell) – [Diskettenfunktionen] volkerp | ||
---|---|---|---|
Zeile 235: | Zeile 235: | ||
**SETSEC** bezieht sich auf den im Registerpaar | **SETSEC** bezieht sich auf den im Registerpaar | ||
- | BC übergebenen Sektor. Die so gesetzte Sektornummer ist immer | + | BC übergebenen |
das Ergebnis der SECTRAN-Funktion (s.u.). Auch hier ist ein | das Ergebnis der SECTRAN-Funktion (s.u.). Auch hier ist ein | ||
tatsächlicher Diskzugriff auf diesen Sektor nicht garantiert. | tatsächlicher Diskzugriff auf diesen Sektor nicht garantiert. | ||
+ | |||
+ | Vor direktem Aufruf von SETSEC muss daher immer SECTRAN erfolgen! | ||
**SETDMA**: Alle nachfolgenden Diskzugriffe müssen die DMA-Adresse als | **SETDMA**: Alle nachfolgenden Diskzugriffe müssen die DMA-Adresse als | ||
Zeile 553: | Zeile 555: | ||
:!: CP/A nutzt die erste Variante. | :!: CP/A nutzt die erste Variante. | ||
- | Unabhängig von der physischen Sektorlänge gibt es im CP/M noch die **Blockgröße** (engl. block size, BLS). | + | Unabhängig von der physischen Sektorlänge gibt es im CP/M noch die **Blockgröße** (engl. block size, **BLS**). |
Das BDOS teilt jede Diskette in Blöcke (engl. Blocks) auf, um damit den | Das BDOS teilt jede Diskette in Blöcke (engl. Blocks) auf, um damit den | ||
Verwaltungs- und Speicheraufwand für die Belegungstabelle zu verkleinern. | Verwaltungs- und Speicheraufwand für die Belegungstabelle zu verkleinern. | ||
Zeile 616: | Zeile 618: | ||
sollte gewahrt bleiben. Es ist wenig sinnvoll, mehr Directory-Einträge als Blöcke zu haben. | sollte gewahrt bleiben. Es ist wenig sinnvoll, mehr Directory-Einträge als Blöcke zu haben. | ||
DSM/ | DSM/ | ||
+ | |||
+ | Es sollte außerdem | ||
+ | |||
+ | für 8-Bit-Blocknummern: | ||
+ | für 16-Bit-Blocknummern: | ||
+ | |||
+ | sein, sonst bekommt man die Diskette gar nicht voll. | ||
Im Beispiel ergibt sich für drei 2K-Blöcke 3 * 2048/32 = maximal mögliche 192 Einträge, | Im Beispiel ergibt sich für drei 2K-Blöcke 3 * 2048/32 = maximal mögliche 192 Einträge, |