Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

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] volkerpcpm: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 **transformiertem** Sektor. Die so gesetzte Sektornummer ist immer
 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/(durchschnittliche Dateigröße) kann ein Anhaltspunkt sein. DSM/(durchschnittliche Dateigröße) kann ein Anhaltspunkt sein.
 +
 +Es sollte außerdem
 +
 +für 8-Bit-Blocknummern: DRM * 16 >= DSM\\
 +für 16-Bit-Blocknummern: DRM * 8 >= DSM
 + 
 +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, 
  • cpm/write_a_bios/teil_1.1632292207.txt.gz
  • Zuletzt geändert: 2021/09/22 06:30
  • von volkerp