053
01.03.2025, 22:01 Uhr
Ordoban
|
Ist in diesem Forum Nekromantie erlaubt? Egal, ich belebe einfach mal diesen alten Thread wieder.
Ich habe mir im Zusammenhang mit dem IDE-Kontroller-Projekt die PCDOS.CMD (oder DOSRUN.CMD wie die auf der Disk von RP genannt war) disassembliert.
Die Datei besteht aus mehrern Blöcken Block 1: 0185-0368 Text, der fast ausschließlich aus Leerzeichen besteht. Block 2: 0369-044F Code, der -- Block 3 in die KGS füttert -- Block 1 nach 7E00:1E00 kopiert -- "Insert DOS boot disk and hit any key" ausgibt und auf Taste wartet -- Block 4 nach 7E00:0000 kopiert -- nach 7E00:0000 springt Block 3: 0450-19CF Steuerzeichen für die KGS, vermutlich ein Zeichensatz Block 4: 19D0-33BB Der BIOS-Code (wird bis 37CF kopiert) Block 5: 33BC-827F Daten??? Es sind darin Strings wie "CMDSYM.H", "009A.0600:0000", "LABELS", "VARIABLES", "NUMBERS", Assembler-Mnenonics und Registernamen zu finden. Einige Teile sind Code, andere sehen wie Tabellen aus. Am Ende ist in einem abgesetzten Block der Text "(c) Eeri AD 1989" zu sehen. Ich konnte nicht finden, dass mit Block 5 irgendwas gemacht wird. Weder ausgeführt, noch irgendwohin kopiert. Es sieht für mich aus, als wenn jemand das Programm mit dem Debugger bearbeitet hätte und beim Speichern versehendlich Teile des Debuggers mit gespeichtert hätte.
Der BIOS-Code liegt an 7E00:0000, und belegt somit die letzten 8KB eines mit 512K ausgerüsteten A7100. Das BIOS verwendet selbst keine Funktionen des ACT, sondern bedient selbst direkt die Hardware. Es sind keine Funktionen für Festplatten vorhanden, somit kann ein DOS auch den IDE-Kontroller nicht ohne spezielle Treiber nutzen. Schade.
Ihr hattet über die Scancodes der Tastatur geredet. Die Tastatur läuft weiter im Char-Modus, und das BIOS rechnet in Scancodes um. Das funktioniert nur, solange DOS-Programme das BIOS (oder DOS) benutzen. Versucht ein DOS-Programm direkt den Tastaturkontroller anzusprechen, dann klappt das natürlich nicht. Ein durch ABG-K7075 und KGS simulierter IBM-PC-Tastaturkontroller wie beim A7150 existiert beim A7100 nicht. Das selbe gilt für die Grafikkarte. Das BIOS setzt zumindest die Textmodus-Funktionen um. Solange ein DOS-Programm die benutzt ist alles gut. Wenn ein Programm sich direkt an den Registern der Grafikkarte oder dem Grafikspeicher vergreifen will, dann klappt das nicht. Viele DOS-Programme, die irgendwas grafisches machen, nutzen direkt den Bildschirmspeicher. Die BIOS-Funktionen sind langsam und umständlich. Einen direkten Zugriff auf den Grafikspeicher und CGA-Register kann erst die ABG-K7075 vom A7150. Das BIOS hat einen Pufferspeicher ab 7800:0000. In wieweit der als Bildschirmspeicher-Simulation benutzt werden kann, habe ich noch nicht herausgefunden. DOS-Programme erwarten den Bildschirmspeicher ab B800:0000, weshalb solche Programme dann nichts anzeigen, und saulangsam werden (weil der MMS16-Bus auf eine Grafikkarte wartet, und in den Timeout läuft).
Dann ist mir noch eine Kuriosität aufgefallen: das BIOS gibt beim Start mehrere Zeilen Text auf dem Bildschirm aus. Das ist der Text aus dem Block 1 der PCDOS.CMD. Da stehen aber nur noch Leerzeichen drin. Anscheinend hat jemand diesen Text nachträglich gelöscht, bzw. mit Leerzeichen überschrieben.
Edit: Ich hab grad mal den Block 5 bis auf den Kopierechtsvermerk aus der Datei rausgelöscht, die läuft trotzdem. Block 5 ist also tatsächlich sinnlos. Die Datei ist jetzt nur noch 13K groß. -- Gruß Stefan Dieser Beitrag wurde am 02.03.2025 um 10:19 Uhr von Ordoban editiert. |