Dateizugriffe unter DOS (ASM)

Brueggi

Dateizugriffe unter DOS (ASM)

Beitragvon Brueggi » Do 30. Okt 2014, 11:47

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?
Benutzeravatar
matze79
DOS-Gott
Beiträge: 7853
Registriert: So 9. Sep 2012, 20:48

Re: Dateizugriffe unter DOS (ASM)

Beitragvon matze79 » Do 30. Okt 2014, 11:56

Schau dir doch mal direkt rxDos an, ist komplett im Sourcecode verfügbar.

http://rxdos.sourceforge.net/
https://dosreloaded.de - Die Deutsche Community rund um DOS/9x und Co
Benutzeravatar
zatzen
BIOS-Flasher
Beiträge: 369
Registriert: Di 17. Apr 2012, 05:10
Wohnort: bei Köln
Kontaktdaten:

Re: Dateizugriffe unter DOS (ASM)

Beitragvon zatzen » Fr 7. Nov 2014, 21:07

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.
Brueggi

Re: Dateizugriffe unter DOS (ASM)

Beitragvon Brueggi » Sa 8. Nov 2014, 08:36

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.
Benutzeravatar
oDOSseus
LAN Manager
Beiträge: 241
Registriert: Di 10. Aug 2010, 15:21

Re: Dateizugriffe unter DOS (ASM)

Beitragvon oDOSseus » Sa 8. Nov 2014, 17:52

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.
Brueggi

Re: Dateizugriffe unter DOS (ASM)

Beitragvon Brueggi » Sa 8. Nov 2014, 18:12

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. :-)
Benutzeravatar
oDOSseus
LAN Manager
Beiträge: 241
Registriert: Di 10. Aug 2010, 15:21

Re: Dateizugriffe unter DOS (ASM)

Beitragvon oDOSseus » So 9. Nov 2014, 15:25

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.
Benutzeravatar
matze79
DOS-Gott
Beiträge: 7853
Registriert: So 9. Sep 2012, 20:48

Re: Dateizugriffe unter DOS (ASM)

Beitragvon matze79 » Mo 17. Nov 2014, 13:00

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.
https://dosreloaded.de - Die Deutsche Community rund um DOS/9x und Co

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste