Seite 1 von 1

Dateizugriffe unter DOS (ASM)

Verfasst: Do 30. Okt 2014, 11:47
von Brueggi
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?

Re: Dateizugriffe unter DOS (ASM)

Verfasst: Do 30. Okt 2014, 11:56
von matze79
Schau dir doch mal direkt rxDos an, ist komplett im Sourcecode verfügbar.

http://rxdos.sourceforge.net/

Re: Dateizugriffe unter DOS (ASM)

Verfasst: Fr 7. Nov 2014, 21:07
von zatzen
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.

Re: Dateizugriffe unter DOS (ASM)

Verfasst: Sa 8. Nov 2014, 08:36
von Brueggi
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)

Verfasst: Sa 8. Nov 2014, 17:52
von oDOSseus
Also ich weiß nich ganz ob ich dich richtig verstanden habe, ist es richtig dass du:
  • 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)

Verfasst: Sa 8. Nov 2014, 18:12
von Brueggi
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. :-)

Re: Dateizugriffe unter DOS (ASM)

Verfasst: So 9. Nov 2014, 15:25
von oDOSseus
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)

Verfasst: Mo 17. Nov 2014, 13:00
von matze79
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.