DOS-Emulator Konfigurationstipps

Von Christian Nass (<noseman AT writeme.com> / Christian Nass @ 2:2480/92.29

Ich beziehe mich hier auf dosemu-0.98.1.0, welcher in einem Slink-Update von Debian dabei war (dürfte jetzt wohl auch in Debian 2.1 enthalten sein). Diese Version scheint gegenüber dosemu 0.66 u.a. ein etwas verändertes Config-File zu haben, aber ich habe an den Konfigurationen eh nie viel verändert.

Es läuft auf meinem System, wie gesagt, dosemu-0.98.1.0 unter Kernel 2.2.1. Bei mir sind an sich auch keine großen Probleme aufgetreten, wenn ich das mitgelieferte Config-File verwendet habe. Nur folgendes möchte ich noch als Tips zur Konfiguration anmerken:

Tastatur

$_rawkeyboard = (0)             # oder 1
$_term_char_set = "ibm"         # ggf.
$_layout = "de-latin1"
$_keyint = (on)

Mit diesen Einstellungen funktionieren endlich alle Tasten (oder zumindest vermisse ich gerade keine), einschließlich der "<>|"-Taste neben dem 'y' und auch Alt-Kombinationen u.a. klappen; dies war bei vorherigen Versionen nicht der Fall!

Grafik Dann habe ich noch, damit DOS wirklich wie DOS aussieht und auch im Grafikmodus funktioniert, folgendes konfiguriert:

$_video = "vga"
$_console = (0)
$_graphics = (1)
$_videoportaccess = (1)
$_vbios_seg = (0xc000)
$_vbios_size = (0x10000)
$_vmemsize = (1024)
$_chipset = "matrox"

Ich weiß jetzt nicht, ob alles nötig ist, aber so funktioniert es mit meiner Matrox Mystique 220. Wenn dosemu aufgerufen wird, meldet sich das Grafikkarten-BIOS, danach startet DOS normal.

Maus Meine Maus funktioniert zur Zeit in xdos, aber nicht im dos auf der Konsole. Die Einstellung ist:

$_com1 = "/dev/ttyS0"   # Hier hängt das Modem
$_com2 = "/dev/mouse"   # Hier hängt die Maus
$_mouse = "mousesystems"  # Ist eine Genius-Maus im Mouse-Systems-Mode
$_mouse_dev = "com2"
$_mouse_flags = ""
$_mouse_baud = (0)

Zur Organisation der Laufwerke in DOS:

Ich habe mir als Bootkonzept für mein Linux-DOS überlegt, es soll zuerst noch vom hdimage booten, welches auf der Linux-Partition liegt. Hier wird eine eigene CONFIG.SYS abgearbeitet und in der AUTOEXEC.BAT wird dann eine Datei LINUXRUN.BAT gestartet, die zuerst auch noch vom hdimage abgearbeitet wird und, nachdem per lredir die DOS-Partition als Laufwerk C: eingebaut wird, dann von der DOS-Partition weiter abgearbeitet wird. Auf diese Weise ist es möglich, für das eigentliche DOS (sofern es per Boot-Manager auch so gebootet wird) und für das Linux-DOS verschiedene Konfigurationen zu haben. Zu meinen DOS-Config-Files gleich noch.

Die Einstellung in der dosemu-Config-Datei zu Laufwerken sieht so aus:

$_vbootfloppy = ""
$_floppy_a = "threeinch"
$_floppy_b = "fiveinch"        # Ja, ich hab' noch eines!
$_hdimage = "hdimage.first"    # Daran hab ich nichts geändert

DOS-Konfigurationsdateien

CONFIG.SYS auf dem hdimage:

device=c:\emufs.sys /
device=c:\ems.sys
dos=high,umb
files=50
lastdrive=z
shell=c:\command.com c:\ /e:512 /p
devicehigh=c:\ansi.sys

AUTOEXEC.BAT auf dem hdimage:

@echo off
linuxrun

LINUXRUN.BAT auf dem hdimage:

@echo off
rem ** Hier geht die Linux-DOSEMU-Bootroutine weiter..
subst m: c:\
d:\dos\linux\lredir l: linux\fs/
d:\dos\linux\lredir c: linux\fs/dos
rem ** Ab hier auf Platte...

Hierzu ein paar Anmerkungen:

Ich habe eine Partition, auf der DOS installiert ist. Diese Partition ist in den Linux-Dateisystem-Baum unter /dos eingehängt. Nach /dos/linux habe ich den kompletten Inhalt des hdimage-Files kopiert.

Mit den obigen Anweisungen wird nun das 'echte' hdimage als Laufwerk M: substituiert (also den subst-Befehl auf hdimage kopieren!), damit es nachher noch erreichbar ist (was aber nicht wirklich nötig ist).

Laufwerk D: ist standardmäßig der komplette Linux-Dateisystem-Baum, daher die Aufrufe nach D:\DOS\LINUX. Mit dem ersten lredir-Befehl wird der Linux-Baum als Laufwerk L: (wie Linux) eingebaut, mit dem zweiten wird die DOS-Partition als neues Laufwerk C: eingebaut. Es soll ja nachher so aussehen, wie im 'echten' DOS. Nachdem aber jetzt Laufwerk C: nicht mehr das hdimage ist, muß die LINUXRUN.BAT nun vom 'neuen' Laufwerk C: gelesen werden, deshalb habe ich sie hier einfach enden lassen. Anmerkung: DOS merkt sich nur byteweise, an welcher Stelle es in einer Batch-Datei war, nicht zeilenweise! Die Datei muß also auf dem hdimage und der Partition bis zur 'Übergabestelle' gleich sein! So, aber nun weiter:

LINUXRUN.BAT auf DOS-Partition:

@echo off
rem ** Hier geht die Linux-DOSEMU-Bootroutine weiter..
subst m: c:\
d:\win\linux\lredir l: linux\fs/
d:\win\linux\lredir c: linux\fs/win
rem ** Ab hier auf Platte...
path c:\;c:\linux

echo off

lredir del d:
lredir d: linux\fs/dat_d
lredir e: linux\fs/dat_e
lredir f: linux\fs/dat_f

PATH C:\;C:\LINUX;C:\DOS;E:\UTI;E:\PACK;E:\VC
VERIFY ON
BREAK ON
SET DIRCMD=/OGEN
SET TEMP=C:\TEMP
SET TMP=C:\TEMP
SET XP=D:\XP
SET CS=D:\XP\CS
SET SOUND=E:\SB
SET BLASTER=A220 I5 D1 H5 P330 E620 T6
SET MIDI=SYNTH:1 MAP:E MODE:0

LH C:\DOS\DOSKEY
LH E:\Uti\ADF\ADF COM1 3F8 4 57600 4096 4096 14

Einige Befehle sind, wie ich gerade feststelle, vielleicht überflüssig, aber es läuft so. Die lredir-Befehle löschen zuerst Laufwerk D:, den Linux-Baum, den ich ja vorher nach L: verlinkt habe, und legen dann meine Laufwerke D: bis F: an. Der Rest dürfte von DOS her bekannt sein. Die letzte Zeile mit dem ADF-Treiber ist ein FOSSIL-Treiber, der nachher bei 'XP in DosEmu' relevant wird.

Ich hoffe, daß ich hiermit helfen konnte. Im Übrigen danke ich allen Leuten aus dem FIDO-Echo LINUX.GER, durch die ich die meisten meiner Probleme bei der Konfiguration von dosemu lösen konnte!

CrossPoint im DOSEmu

Von Christian Nass (<noseman AT writeme.com> / Christian Nass @ 2:2480/92.29

Nachdem ich zum einen CrossPoint schon eine Weile verwende, länger als Linux, habe ich mich ziemlich an das Programm gewöhnt, es auch registrieren lassen und möchte es eigentlich nicht mehr missen. Deshalb will ich es auch unter Linux weiterhin benutzen, halt im dosemu. Nur stellten sich mir ein paar Probleme, nämlich wollte mein Modem nicht so ganz funktionieren, bzw. es lieferte unendlich viele Übertragungs- & CRC-Fehler.

Bei meiner Konfiguration handelt es sich um dosemu-0.98.1.0, Kernel 2.2.1 und CrossPoint v3.11 R ;-). Die Hardware ist folgende: Telejet 28800V-Modem an einem recht langen Kabel an einer 16550A-Schnittstelle (COM1). setserial ist Version 2.14 und wird mit folgendem Aufruf gestartet:

# setserial -bg /dev/ttyS? /dev/ttyS?? 2>/dev/null

Dieser Aufruf scheint wohl beim Einspielen des neuen setserial-Debian-Pakets an das Ende von /etc/rc.boot/0setserial gestellt worden zu sein ;-).

Um mein Problem -- die im Vergleich zu OS/2 und DOS unerträgliche Übertragungsqualität -- zu lösen, habe ich folgende Tips bekommen:

Ich hoffe, es klappt auch bei Euch!

Danke nochmal an alle LINUX.GER'ler, v.a. an Reinhard Maeding für den Tip mit ADF!


KategorieHardwareVirtualisierung

DosEmu (zuletzt geändert am 2007-12-23 22:46:07 durch localhost)