Dateizugriffe unter DOS (ASM)
Dateizugriffe unter DOS (ASM)
Hallo DOS-Gemeinde
Da ich recht wenig Assembler unter bzw. für MS-DOS mache, und meinen mini DOS-Emu für BonnyDOS/286 erweitern möchte, hier eine Frage: Wie sieht denn ein gängiger Code für das Öffnen/Lesen von Files unter MS-DOS aus (im Zusammenhang des Nachladens) ? Hat hier jemand mal ein paar Schnipsel Code?
Da ich recht wenig Assembler unter bzw. für MS-DOS mache, und meinen mini DOS-Emu für BonnyDOS/286 erweitern möchte, hier eine Frage: Wie sieht denn ein gängiger Code für das Öffnen/Lesen von Files unter MS-DOS aus (im Zusammenhang des Nachladens) ? Hat hier jemand mal ein paar Schnipsel Code?
Re: Dateizugriffe unter DOS (ASM)
Schau dir doch mal direkt rxDos an, ist komplett im Sourcecode verfügbar.
http://rxdos.sourceforge.net/
http://rxdos.sourceforge.net/
https://www.shadowcircuit.de - Die kleine Community rund um Retro Computing
https://www.retroianer.de
https://www.retroianer.de
Re: Dateizugriffe unter DOS (ASM)
Ich weiss nicht ob es dich interessiert aber ich habe schonmal rein aus Interesse die BIOS-Funktionen
benutzt um beispielsweise Sektorenweise zu lesen oder zu schreiben.
benutzt um beispielsweise Sektorenweise zu lesen oder zu schreiben.
mov ax, 13h
int 10h
while vorne_frei do vor;
int 10h
while vorne_frei do vor;
Re: Dateizugriffe unter DOS (ASM)
Die Möglichkeiten des BIOS sind mir hier zu begrenzt. Ich habe einen kleinen Relocator geschrieben, der einer EXE-Datei vorangestellt wird. Neben dem Relocator enthält das kleine Progrämmchen auch noch ein paar MS-DOS-Funktionen. Somit lassen sich MS-DOS-Programme (sehr beschränkt) unter BDOS starten. Da aber häufig nachgeladen wird, interessiert mich, welche Funktionen hierzu generell verwendet werden. Dann könnte ich diese Datei-Funktionen noch in den Relocator integrieren und auf die Funktionen meines eigenen DOS umlenken. Ich erhoffe mir so eine größere Anzahl von MS-DOS-Programmen, die man so unter BonnyDOS ausführen kann.
Re: Dateizugriffe unter DOS (ASM)
Also ich weiß nich ganz ob ich dich richtig verstanden habe, ist es richtig dass du:
Dateilesen unter DOS ist nich sehr schwierig, ich habe in meinem Game Of Life quelltext unten ein paar Funktionen drin, die genau das tun. Vielleicht hift der dir. fopen und fget_ln hab ich die genannt.
Einen Inhalt in die RAM laden ist halt trivial unter DOS. Die Frage ist, wie DOS Programme generell lädt
Dann dahinspringen ist komplexer, da nicht ganz klar ist, wo die startadresse ist. Vermutlich byte 0, aber dies ist die gleiche Frage wie oben.
- Eine Datei lesen willst
- Den Inhalt in die RAM laden willst
- Dann den Code den du grad geladen hast laufen lassen willst (hineinspringen)
Dateilesen unter DOS ist nich sehr schwierig, ich habe in meinem Game Of Life quelltext unten ein paar Funktionen drin, die genau das tun. Vielleicht hift der dir. fopen und fget_ln hab ich die genannt.
Einen Inhalt in die RAM laden ist halt trivial unter DOS. Die Frage ist, wie DOS Programme generell lädt
Dann dahinspringen ist komplexer, da nicht ganz klar ist, wo die startadresse ist. Vermutlich byte 0, aber dies ist die gleiche Frage wie oben.
Re: Dateizugriffe unter DOS (ASM)
Vielen Dank! Auf deinen Source bin ich noch gar nicht gekommen
Also das Laden einer Datei (eine EXE) und das hineinspringen geht ja bereits, so ist es ja überhaupt erst möglich, Turbo Pascal-Programme unter BDOS und GOS zu nutzen. Mir geht es jetzt primär darum, bereits fertige Programme (bei denen man eben nicht den Source hat) laufen zu lassen. Auch das geht zum Teil, aber z. B. nur, wenn das Programm nichts nachladen (oder speichern) muss. Daher möchte ich den Mini-DOS-Emulator etwas erweitern - um die gängigen Datei-Funktionen von MS-DOS.
Also das Laden einer Datei (eine EXE) und das hineinspringen geht ja bereits, so ist es ja überhaupt erst möglich, Turbo Pascal-Programme unter BDOS und GOS zu nutzen. Mir geht es jetzt primär darum, bereits fertige Programme (bei denen man eben nicht den Source hat) laufen zu lassen. Auch das geht zum Teil, aber z. B. nur, wenn das Programm nichts nachladen (oder speichern) muss. Daher möchte ich den Mini-DOS-Emulator etwas erweitern - um die gängigen Datei-Funktionen von MS-DOS.
Re: Dateizugriffe unter DOS (ASM)
Die interrupts die du dann bereitstellen müsstest währen die von vom INT $21 die sich mit Dateioperationen beschäftigen. Die sind sehr unkomplex. Eigentlich das typische Zeug, das man auch in C findet: Öffnen, Stück lesen, Aktuelle Position in Datei verschieben, schließen, speichern.
Re: Dateizugriffe unter DOS (ASM)
Brueggi:
http://www.heise.de/newsticker/meldung/ ... 54723.html
MS-Dos 2.0 Sourcecode ist veröffentlicht seit einiger Zeit.
Vieleicht hilft das auch was.
http://www.heise.de/newsticker/meldung/ ... 54723.html
MS-Dos 2.0 Sourcecode ist veröffentlicht seit einiger Zeit.
Vieleicht hilft das auch was.
https://www.shadowcircuit.de - Die kleine Community rund um Retro Computing
https://www.retroianer.de
https://www.retroianer.de