Einzelnen Beitrag anzeigen
Alt 07.11.2010, 17:08   #15
leecher
Moderator
Hallo,

Nachdem hier so rege über die DosBox diskutiert wird, werde ich auch ml kurz meinen Senf dazugeben:

DOSbox installieren
Zunächst einmal empfehle ich den DOSbox Megabuild 5, da er verschiedene sehr nützliche Erweiterungen aufweist, welche man eventuell gebrauchen kann (Farbdruckerunterstützung, Parallel-Port passthrough, usw.). Das kann im Hinblick auf die Druckunterstützung wichtig werden. Auch hinsichtlich der OA-Netzwrekversion kann man nur diesen Build verwenden, da dieser NE2000 Unterstützung für Netbios dabei hat usw., aber dazu später.
Herunterzuladen unter:

http://home.arcor.de/h-a-l-9000/mb4.html

Nachdem man DOSbox MB5 mithilfe des Installers installiert hat, kann man die Konfiguration noch ein wenig anpassen. Hierzu wählt man in der Programmgruppe DOSBox-MB5 Configuration -> Edit Configuration.

Druckerkonfiguration
Dort kann man nun im Abschnitt
Code:
[printer]
printoutput=printer
einstellen, damit ein eventueller Ausdruck über die interne Druckfunktion auf einem Drucker landet und nicht in eigendeiner Bilddatei.
Weiters muss man nun die Parallelports einstellen, sodass diese für die Druckfunktion genutzt werden können.
Hierfür hat man 2 Möglichkeiten:
Wenn man direkt einen Drucker auf seinem lokalen LPT-Port hängen hat, so kann man einfach

Code:
[parallel]
parallel1=reallpt
angeben, damit der Parallelport einfach durchgeschliffen wird. Ggf. muss man noch die Basisadresse des Druckports angeben, so der Parallelport nicht auf der Standardadresse liegt.
Bei meinem Notebook z.B. muss ich folgendes angeben:

Code:
[parallel]
parallel1=reallpt realbase:3BC
Möchte man die Mögichkeit des direkten Durchschleifens des LPT-Ports nutzen, so benötigt man den Treiber Porttalk, welcher zuvor installiert werden muss.
Hier haben wir leider schon wieder ein Problem mit den 64bit Maschinen, denn diese unterstützen keine 32bit Treiber, wie Porttalk einer ist.
Netterweise hat jemand den PortTalk-Treiber für 64bit Windows kompiliert und signiert. Leider muss man Windows in den Testmodus versetzen, um Treiber laden zu können, sofern der Treiber nicht extra von Microschrott abgesegnet wird und was weiß ich noch alles.
Daher sind hier wieder folgende Unterschritte notwendig:
1) 64 bit kompilat des Porttalk-Treibers herunterladen: http://www.hamsdr.com/data/GlobalFil...vers-win64.zip
2) Windows Vista/7 64bit in den Testmodus versetzen, dazu:
Code:
bcdedit.exe /set TESTSIGNING ON
auf der Kommandozeile ausführen und neu starten. Ab nun wird man immer daran erinnert, dass man im Testmodus fährt, aber das sollte nicht weiter stören, wen es nervt, der kann im Internet nach Anleitungen sichen, wie man das Watermarking wegbekommt.
3) heruntergeladenes .zi pArchiv auspacken, und copy_pt.bat ausführen, das sollte den Porttalk-Treiber ins System kopieren.
Funktioniert dann hoffentlich.

Hat man den Drucker nicht direkt am PC hängen oder man verwendet keinen LPT-Drucker mehr, oder aber das mit PortTalk haut nicht so recht hin, so kann man einfach wie unter der NTVDM ja auch bekannt mit der Druckerportumleitung arbeiten:

1) Druckerport wie ja bereits in einem anderen Forumsbeitrag beschreiben mit NET USE umleiten.
2) Eintragen, dass der Windowseigene Druckerport benutzt werden soll:

Code:
[parallel]
parallel1=file dev:lpt1
Hat man higegen einen GDI-Drucker, so kann man es mit der Druckeremulation von DOSbox versuchen, ob die jedoch ohne weitere Probleme hinhaut, weiß ich leider nicht:

Code:
[parallel]
parallel1=printer
Ich habe mich jetzt nicht genau schlaugemacht, welche Escape-Sequenzen diese Druckemulation von DOSprn unterstützt, hier muss man sich dann eventuell etwas spielen, um den geeigneten Druckertreiber zu finden, ich tippe mal darauf, dass EPSON ESC/P Sequenzen unterstützt werden.

Sollte man mit dem integrierten Druckertreiber keinen Erfolg haben, so kann man immer noch
mein DOS-Druckpaket nehmen, welches ja bekanntlich Postscript und eine einfache Unterart von ESC/P unterstützt.
Hierzu kann man dann entweder von OA direkt in eine Datei drucken lassen, die dann der watcher meines Programms ausdruckt, oder man weist DOSbox an, entsprechende Daten auf LPT1 selbstständig in eine entsprechende Datei zur Weitererwendung durch meine Drucklösung zu benutzen:

Code:
[parallel]
parallel1=file append:c:\prnspl
Umgebung einrichten
In der DOSbox weist man die virtuellen Laufwerksbuchstaben mithilfe des mount-Kommandos zu. Man sollte sich also ein Arbeitsverzeichnis anlegen, welches den Inhalt der C: Partition der DOSbox wiederspiegelt, z.B. in meinem Beispiel D:\DOSPROG
Damit das Laufwerk automatisch beim Start der DOSbox montiert wird, alle Kommandos, die man beim Start ausgeführt haben will in den Abschnitt [autoexec] der Konfigurationsdatei schreiben (ganz am Ende der Datei):
Beispiel:

Code:
[autoexec]
mount c D:\DOSPROG
C:
cd OA4
Man kann zur Laufzeit der DOSbox natürlich auch entsprechende Laufwerke montieren und
so z.B. eine OA-Installation innerhalb der DOSbox diskutieren o.ä.
Wenn ich z.B. Netzlaufwerke verwenden will, kann ich das damit natürlich auch ganz einfach tun, indem ich mein Netzlaufwerk im Windows einem Laufwerksbuchstaben zuweise und in der DOSbox das Laufwerk dann mit mount entsprechend montiere (z.B. mount z Z:\)

Unterstützung für NETBIOS Netzwerkversion
Für die NETBIOS Netzwerkversion von OA brauchen wir die im MegaBuild enthaltene Funktionalität für die NE2000 Unterstützung.
Damit diese wiederum funktioniert, ist die Installation des WinPCap-Treibers erforderlich. Dieser ist unter folgender URL erhältlich:

http://www.winpcap.org/

Nach der Installation des Treibers brauchen wir noch die ODI-Treiber für NE2000, damit
netbios innerhalb der DosBox funktionieren kann:

http://home.arcor.de/h-a-l-9000/ne2kstuff/dosodi.zip

Den Inhalt des ZIP-Pakets in ein Verzeichnis extrahieren, welches von der DOSbox aus erreichbar ist (also z.B. unser D:\DOSPROG).
Nun muss noch die richtige Netzwerkkarte für die NE2000 Emulation gewählt werden.
Dazu einfach DOSbox starten und auf das Protokollfenster achten. In diesem befindet sich eine Liste der verfügbaren Netzwerkadapter im System. Die Adapter sind nummeriert.
Nun die Konfigurationsdatei von DOSbox bearbeiten und unter [ne2000] bei realnic= die Nummer des Adapters eintragen, z.B.:

Code:
[ne2000]
realnic=1
Nun müssen innerhalb der DOSbox die vorher genannten ODI-Treiber geladen werden.
Hierzu müssen die Treiber, die wir zuerst in ein Verzeichnis innerhlab der DOSbox geladen haben in folgender Reihenfolge ausgeführt werden (eventuell die Aufrufe in den [autoexec] Abschnitt nach dem Montieren des beinhaltenden Verzeichnisses schreiben, damit das gleicht automatisch beim Start geschieht):

Code:
lsl
ne2000
ipxodi
netbios
Nun wird hoffentlich NETBIOS korrekt geladen. Die würde uns nun schonmal eine Netzwerkinstallation von OA erlauben. Versucht man nun aber, in OA4 z.B. in Datenbanken-Menü zu gehen, so wird man nach kurzer Wartezeit immer einen "Systemfehler: BU29500 " erhalten.
Meine Analyse hat ergeben, dass der Grund dafür ist, dass DOSbox Filelocking (Funktion 5C des DOS-Interrupts 21h) nicht implementiert hat.
Aus diesem Grund habe ich die Funktionalität in DOSbox selbst nachgerüstet.
Im Anhang findet sich die von mir kompilierte dosbox.exe (Keine Ahnung, waurm meine fast dopelt so groß ist wie die originale, liegt wahrscheinlich an meiner Compilierumgebung oder so).
Die dosbox.exe aus der angehängten ZIP-Datei entpacken und die originale dosbox.exe in DOSbox MB5-Verzeichnis mit dieser überschreiben. Danach sollte das Locking auch klappen.

Nachdem ich selber keine Netzwerkversion im Einsatz habe weiß ich leider nicht, was einen hier möglicherweise sonst noch für Überraschungen blühen, aber prinzipiell scheint es mit dieser Konstellation zu laufen.

Edit 08.12.2010
Unterstützung für Deutsche Umlaute
Ich habe nun den Patch für Deutsche Umlaute der DOSBOX Jaballa Edition in meine gepatchte DOSbox-MB5 gemerged, damit sollten auch Umlaute in Filenamen möglich sein.

Fazit
So, nun seht ihr ja, was für Ärger man sich mit dem 64bit Windows einhandelt (übrigens kann die DOSbox, da sie ja die CPU quasi emuliert, natürlich auch geschwindigkeitsmäßig nicht mit der NTVDM mithalten, die im V86 Modus rennt und daher direkt die CPU nutzen kann), und ich hoffe, es ist nun jeder gewarnt, sich möglichst ein 32bit Windows zu besorgen

Eine Alternativlösung wäre ggf. auch die Installation der Windows 7 XP modes, hier ist z.B. eine Anleitung dafür: http://blog.tim-bormann.de/inoffizie...7-xp-mode.html
Aber auch das beinhaltet genügend Zores.

Ich hoffe, dass dieser Beitrag für die 64bit geplagten Nutzer eine kleine Hilfestellung war
und wünsche frohes Basteln!
Angehängte Dateien
Dateityp: zip dosbox_geruml_locking.zip‎ (1.24 MB, 43x aufgerufen)

Geändert von leecher (08.12.2010 um 19:05 Uhr) Grund: Patch für Deutsche Umlaute
leecher ist offline   Mit Zitat antworten