Jetzt muss ich doch noch ein ROM Update nachschieben, weil sich in der Version 1.0.3 zwei Fehler eingeschlichen hatten.
Zum einen konnte nach einer Umschaltung der Standard Eingabe von ASCII-Tastatur auf Terminaleingabe (z.B. in BASIC via IN#0) die XModem Routine nicht mehr fehlerfrei Daten lesen. Jetzt läuft alles wieder so wie es soll.
Das andere Problem hatte sich in der Boot Routine ergeben.
Ich war stillschweigend davon ausgegangen, dass ich im Boot Block der FAT32 Partition auf der SD-Karte das erste Byte (x86 Opcode $EB = short jump) gegen einen 6502 Opcode $B0 = BCS (Branch on Carry Set) austauschen kann, damit ich nur noch zum Anfang des Boot Block Buffers ($0600) springen muss, um den Boot Code zu laden. Es hat sich aber herausgestellt, dass Windows eine Änderung an genau diesem Byte des BB nicht wirklich mag und nach einer solchen Änderung die SD-Karte immer als unformatiert angezeigt wird.
Die Lösung ist nun, erst nach dem Einlesen des Boot-Blocks, den Wert $EB im RAM Buffer an $0600 gegen ein $B0 zu tauschen und dann erst mit einem JMP $0600 den Boot-Code auszuführen.
Ich hab jetzt mal einen kleinen Dummy Boot-Code in den Boot-Block geschrieben. Das ganze sieht dann gerade so aus.
Der nächste Schritt ist nun, das Root Directory zu lesen, eine Datei BOOT.SYS zu finden und diese zu laden. Somit können dann die FAT-Treiber und das DOS vom Datenträger geladen werden.