042
03.08.2007, 00:00 Uhr
FanDjango
|
Ah!
Ok.
Beim Warm Boot wird dem draußen angesiedelten ATMEL gesagt: Haddu eine gültige YAZE Datei selektiert oder nicht? Egal ob ja/nein, sende mal 16 Byte, und zwar die 15 byte DPH und ein byte 0 oder 1, ob der DPH gültig ist oder nicht. Ist er nicht gültig, sollte er aber gültig aussehen, leider, so wie ne 360er diskette z.B.
Die holt sich der Warm Boot rein (16 Byte) und überschreibt die im DPB angegebenen DPH für dieses Laufwerk, jedem DPB habe ich damit er 16byte wird ein Flag Byte angehängt. Ist es 1, dann gültig, ist es 0, dann nicht gültig.
Dem DRVSEL Call habe ich dann hinzugefügt: Lehne DRVSELs ab, die mit einem gültigkeitsbyte = 0 im DPB stehen.
Ach so: MMC Wechsel muss einen Disk-Subsystem Reset erzwingen ohne die A: RAMDISK zu löschen. Eines tages nehme ich den NMI aber derzeit schiebe ich einen Control-C in den KBD Buffer.
Code folgt sobald er hübsch ist...
Wichtig ist, einen ALV pro Laufwerk anzulegen, der so groß genug ist für die größte anzunehmende mountable YAZE disk dieses Laufwerks. Und das kann viel viel Speicher kosten. Seufz.
UND: In den YAZE Headers die CHK SIZE auf Null setzen bevor man den DPH an den CP/M Z80 überträgt. Ich CHK nämlich nix. Noch nicht zumindestens.
Bin aber noch am ackern - denn die FAT16 File Lese / Schreibe Routinen auf dem ATMEL sind noch nicht sauber.
Aber es geht in RIESEN Schritten voran.
Ich verstehe die Frage nicht: TREIBER.
Hmmm. Das Problem ist, ich sende vom z80 an den ATMEL ein Request: 80h = Sende DPH, 81h = Lese HD, 82h = Schreibe HD. <80h = sende an UART
Das meiste ist also inzwischen im ATMEL verhackstückt.
Ich hol später den Kode vom anderen Rechner, ist nicht im selben Netz und füge hier an. -- Ich löte noch.... |