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 [2024/12/05 12:54] – [Der Disk Parameter Block] volkerpcpm:write_a_bios:teil_1 [2025/11/18 13:23] (aktuell) – [Diskettenfunktionen] volkerp
Zeile 86: Zeile 86:
   * IOBYTE 0003h setzen   * IOBYTE 0003h setzen
   * CDRIVE 0004h setzen (Highnibble = aktuelle Benutzernummer, Low-Nibble = Laufwerk)   * CDRIVE 0004h setzen (Highnibble = aktuelle Benutzernummer, Low-Nibble = Laufwerk)
-  * C = aktuelles Laufwerk. WBOOT sollte CDRIVE auslesen und sicherstellen, dass es ein echtes Laufwerk ist, und in Register C übergeben+  * C = aktuelles Laufwerk. WBOOT sollte CDISK auslesen und sicherstellen, dass es ein echtes Laufwerk ist, und in Register C übergeben
   * Sprung nach CCP   * Sprung nach CCP
  
Zeile 474: Zeile 474:
  ret  ret
 </code> </code>
 +
 +
 +Der BIOS-Diskettenpuffer muss mindestens so groß wie die größte physische Sektorlänge entspr. dem Spurformat sein, also
 +i.a. 1K. Für eine exakte BDOS-Rückmeldung von Schreibfehlern (BAD SECTOR) darf die Puffergröße nicht größer
 +als die kleinste Blockgröße für Disketten (1 K) sein, da sonst die Pufferausgabe erst erfolgt, wenn mit anderen
 +Daten gearbeitet werden soll.
  
 Es verbleiben die RAM-Speicherbereiche, die nicht vorbelegt sind und deshalb am  Es verbleiben die RAM-Speicherbereiche, die nicht vorbelegt sind und deshalb am 
Zeile 690: Zeile 696:
 CHK00: DS 48 ;check vector 0 CHK00: DS 48 ;check vector 0
 </code> </code>
 +
 +
 +===== DISKDEF.LIB =====
  
 die Berechnung des DPB und der Größe der Speicherbereiche kann durch die Makro-Bibliothek diskdef.lib erfolgen. die Berechnung des DPB und der Größe der Speicherbereiche kann durch die Makro-Bibliothek diskdef.lib erfolgen.
  • cpm/write_a_bios/teil_1.1733403276.txt.gz
  • Zuletzt geändert: 2024/12/05 12:54
  • von volkerp