[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

DOSEMU



Hallo, Thomas,

Du meintest am 31.01.00 zum Thema Re: Verschiedene Fragen:

> > Ich frag mal 'nen Freund von mir, der liest seine News mit
> > CrossPoint in 'nem DOSemu-Fenster unter X11.

> das muesste dann so aehnlich sein. und frag ihn bitte genau wegen der
> config. Ich muss die Firmware meines voicemodems flashen. Und ich
> hab kein dos mehr auf der Kiste.
> -------------------------------------------------------

Stefan Koehler hat dazu vor wenigen Tagen eine Anleitung in die Linux- 
ger gesetzt:

Absender   : stk_bEi_warlock.kbbs.org  (Stefan Koehler)

nachdem ich hier berichtet hatte, dass XP 3.12 bei mir im DOSEmu voellig
reibungslos laeuft, haben etliche Leute nachgefragt. Ich stelle Euch also
hier einmal mein Setup vor:

==== Vorweg meine Technik:

Pentium P100, 2 IDE-Festplatten, Grafikkarte Spea V7 S3, 48 MB RAM.
Die primaere Bootpartition fuer DOS und Win95 ist C: = /dev/hda1, XP lebt auf
F: = /dev/hda6.
Die DOS-Programme fuer den EMU aus /var/lib/dosemu/commands liegen in
C:\EMUUTILS, das auch im DOS-Pfad eingetragen ist.
Uebliches Modem an COM2, UUCP-Verbindung mit XP zu meiner Mailbox.
SuSE 6.1 mit allerdings neuerer DOSEmu-Version 0.98.8.0, die ich stabiler
finde als die auf der SusSE CD.
Sound und CD sind unter DOS nicht konfiguriert. An den Einstellungen fuer X
habe ich nicht gedreht, die sind so noch unveraendert.


==== 1. ====

Hier meine /etc/dosemu.conf:

############################################################################
##
# This file is /etc/dosemu.conf, included by /var/lib/dosemu/global.conf
#
# Linux DOSEMU configuration  for parser versions >= 3 (dosemu-0.97.0.1)
#
# ./doc/README.txt (chapter 2.) contains a description of the syntax
# and the usage of dosemu.conf.
#
#
# Access rights are defined in
#
#      /etc/dosemu.users
#
##############################################################################



# Notes for editing this section:
#
#   In    $_xxx = (n)    n is a numerical or boolean value
#                  =     =
#   In    $_zzz = "s"    s is a string
#
# Please edit only beteen the brakets and quotes and keep the rest intact.
#        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^

$_debug = "-a"          # same format as -D commandline option
                        # (but without the -D in front)
$_features= ""          # list of temporary hacks, see release notes in
                        # the file ChangeLog. e.g "0:1 2:0", which means
                        # to set feature_0 to 1 and feature_2 to 0.
$_timint = (on)         # emulate INT08 type timer interrupts
$_mathco = (on)         # or off
$_cpu = (80586)         # CPU emulation, valid values:  80[345]86

$_rdtsc = (on)          # if possible use Pentium cycle counter
$_cpuspeed = (0)        # 0 = calibrated by dosemu, else given (e.g.166.666)
$_pci = (off)

$_xms = (1024)          # in Kbyte
$_ems = (1024)          # in Kbyte
$_ems_frame = (0xe000)
$_dpmi = (off)          # in Kbyte
$_dosmem = (640)        # in Kbyte, < 640
$_hardware_ram = ""     # list of segment values/ranges such as
                        # "0xc8000 range 0xcc000,0xcffff"

$_secure ="ngd"         # secure for: n (normal users), g (guest), d (dexe)
                        # empty string: depending on 'restricted'
                        # "0": always insecure (not recommended)
$_odd_hosts = ""        # black list such as "lucifer.hell.com billy.the.cat"
$_diskless_hosts=""     # black list such as "hacker1 newbee gateway1"

$_emusys = "emu"        # empty or 3 char., config.sys   -> config.XXX
$_emubat = "emu"        # empty or 3 char., autoexec.bat -> autoexec.XXX
$_emuini = ""           # empty or 3 char., system.ini   -> system.XXX

$_hogthreshold = (1)    # 0 == all CPU power to DOSEMU
$_irqpassing = ""       # list of IRQ number (2-15) to pass to DOS such as
                        # "3 8 10"
$_speaker = "native"    # or "native" or "emulated"


$_term_char_set = "ibm" # Global code page and character set selection.
                        # "" == automatic, else: ibm, latin, latin1, latin2

$_term_color = (on)     # terminal with color support
$_term_updfreq = (4)    # time between refreshs (units: 20 == 1 second)
$_escchar = (30)        # 30 == Ctrl-^, special-sequence prefix

$_rawkeyboard = (1)     # bypass normal keyboard input, maybe dangerous
$_layout = "de-latin1"  # one of: finnish(-latin1), de(-latin1), be, it, us
                        # uk, dk(-latin1), keyb-no, no-latin1, dvorak, po
                        # sg(-latin1), fr(-latin1), sf(-latin1), es(-latin1)
                        # sw, hu(-latin2), hu-cwi, keyb-user
                        # hr-cp852, hr-latin2, cz-qwerty, cz-qwertz.
                        # Or 'auto' (which tries to generate the table from
                        # the current Linux console settings)
$_keybint = (on)        # emulate PCish keyboard interrupt


$_X_updfreq = (5)       # time between refreshs (units: 20 == 1 second)
$_X_title = "DOS in a BOX"      # Title in the top bar of the window
$_X_icon_name = "xdos"  # Text for icon, when minimized
$_X_keycode = (auto)    # on == translate keybord via dosemu keytables
                        # or 'off' or 'auto'
$_X_blinkrate = (8)     # blink rate for the cursor
$_X_font = ""           # basename from /usr/X11R6/lib/X11/fonts/misc/*
                        # (without extension) e.g. "vga"
$_X_mitshm = (on)       # Use shared memory extensions
$_X_sharecmap = (off)   # share the colormap with other applications
$_X_fixed_aspect = (on) # Set fixed aspect for resize the graphics window
$_X_aspect_43 = (on)    # Always use an aspect ratio of 4:3 for graphics
$_X_lin_filt = (off)    # Use linear filtering for >15 bpp interpolation
$_X_bilin_filt = (off)  # Use bi-linear filtering for >15 bpp interpolation
$_X_mode13fact = (2)    # initial size factor for video mode 0x13 (320x200)
$_X_winsize = ""        # "x,y" of initial windows size (defaults to float)
$_X_gamma = (1.0)       # gamma correction
$_X_vgaemu_memsize = (1024) # size (in Kbytes) of the frame buffer for emulated
vga
$_X_lfb = (on)          # use linear frame buffer in VESA modes
$_X_pm_interface = (on) # use protected mode interface for VESA modes
$_X_mgrab_key = ""      # KeySym name to activate mouse grab, empty == off
$_X_vesamode = ""       # "xres,yres ... xres,yres"
                        # List of vesamodes to add. The list has to contain
                        # SPACE separated "xres,yres" pairs



$_video = "vga"         # one of: plainvga, vga, ega, mda, mga, cga
$_console = (0)         # use 'console' video
$_graphics = (1)        # use the cards BIOS to set graphics
$_videoportaccess = (1) # allow videoportaccess when 'graphics' enabled
$_vbios_seg = (0xc000)  # set the address of your VBIOS (e.g. 0xe000)
$_vbios_size = (0x10000)# set the size of your BIOS (e.g. 0x8000)
$_vmemsize = (1024)     # size of regen buffer
$_chipset = "s3"        # one of: plainvga, trident, et4000, diamond, avance
                        # cirrus, matrox, wdvga, paradise, ati, s3
$_dualmon = (0)         # if you have one vga _plus_ one hgc (2 monitors)


$_vbootfloppy = ""      # if you want to boot from a virtual floppy:
                        # file name of the floppy image under /var/lib/dosemu
                        # e.g. "floppyimage" disables $_hdimage
                        #      "floppyimage +hd" does _not_ disable $_hdimage
$_floppy_a ="threeinch" # or "fiveinch" or "atapi" or empty, if not existing
                        # optionally the device may be appended such as
                        # "threeinch:/dev/fd0"
$_floppy_b = "fiveinch" # dito for B:

$_hdimage = "/dev/hda1" # list of hdimages under /var/lib/dosemu
                        # assigned in this order such as
                        # "hdimage_c hdimage_d hdimage_e"
                        # If the name begins with '/dev/', then partion
                        # access is done instead of virtual hdimage such as
                        # "/dev/hda1" or "/dev/hda1:ro" for readonly
                        # Currently mounted devices and swap are refused.
                        # Hdimages and devices may be mixed such as
                        # "hdimage_c /dev/hda1 /dev/hda3:ro"
                        # Note: 'wholedisk' is _not_ supported.
$_hdimage_r = $_hdimage # hdimages for 'restricted access (if different)

$_aspi = ""             # list of generic SCSI devices to make available
                        # for the builtin aspi driver (format of an entry
                        # is 'device:type:mappedtarget' such as
                        # "sg2:WORM sg3:Sequential-Access:6 sg4:CD-ROM" or
                        # "sg2:4 sg3:1:6 sg4:5" (which are equal)

$_com1 = ""             # e.g. "/dev/mouse" or "/dev/cua0"
$_com2 = "/dev/modem"   # e.g. "/dev/modem" or "/dev/cua1"
$_com3 = ""             # dito                 "/dev/cua2"
$_com4 = ""             # dito                 "/dev/cua3"
$_ttylocks = "/var/lock" # Lock directory (e.g. "/var/lock")
                        # default ("") is /usr/spool/uucp

$_mouse = "microsoft"   # one of: microsoft, mousesystems, logitech, mmseries
                        # mouseman, hitachi, busmouse, ps2
$_mouse_dev = "/dev/mouse"      # one of: com1, com2, com3, com4 or /dev/mouse
$_mouse_flags = ""      # list of none or one or more of:
                        # "emulate3buttons cleardtr"
$_mouse_baud = (0)      # baudrate, 0 == don't set

$_printer = "lp"        # list of (/etc/printcap) printer names to appear as
                        # LPT1, LPT2, LPT3 (not all are needed, empty for none)
$_printer_timeout = (20)# idle time in seconds before spooling out

$_ports = ""            # list of portnumbers such as "0x1ce 0x1cf 0x238"
                        # or "0x1ce range 0x280,0x29f 310"
                        # or "range 0x1a0,(0x1a0+15)"

$_ipxsupport = (off)    # or on
$_novell_hack = (off)
$_vnet = (off)          # 'on' for packet-multi (used by dosnet)

$_sound = (off)         # sound support on/off
$_sb_base = (0x220)
$_sb_irq = (5)
$_sb_dma = (1)
$_sb_dsp = "/dev/dsp"
$_sb_mixer = "/dev/mixer"
$_mpu_base = "0x330"



==== 2. ====

Den EMU starte ich mit folgendem Skript dosxp (der user muss natuerlich die
DOS-Filesystems mounten duerfen):

umount /dosc
mount -t vfat /dev/hda6 /dosf
dos
mount /dosc

Dies ist so noetig, weil C: bei mir beim Linux-Boot automatisch gemountet
wird. Wenn man aber als $_hdimage kein disk image, sondern direkt /dev/hdxx
eintraegt, darf die betreffende Partition fuer EMU nicht gemountet sein, daher
wird sie hier vor dem EMU-Start umounted und hinterher wieder gemountet.
/dosc bzw. /dosf sind die mountpoints der jeweiligen DOS-Partitionen.
Fuer den nachher (4.) folgenden lredir-Aufruf (noetig, weil XP auf einer
anderen Partition als C: liegt) muss F: unter Linux gemountet sein.


==== 3. ====


Fuer den DOS-Start im EMU bestehen nun folgende DOS-Dateien in C:\ :

==autoexec.emu:

_bEi_ECHO OFF
PROMPT DOSEMU $p$g$g
SET GDC=C:\SPEA\GDC
rem Das ist der Pfad fuer meine Grafikkarte
SET PATH=%PATH%;EINIGES-MEHR;C:\EMUUTILS
doskey


==config.emu:

device=c:\windows\ramdrive.sys 1000 /e
rem  Im Moment startet hier nur eine RAMdisk.


==== 4. ====


Nun sollte man am DOS-Prompt angekommen sein. Ich starte XP mit folgender

 XPEMU.BAT in C:\

c:\emuutils\lredir f: linux\fs\/dosf
f:
cd xp
xp


D.h., der Weg vom Linux-Prompt ist:

LINUX: ./dosxp
[nun sollte der DOS-Prompt erreicht sein ]
im DOSEMU  XPEMU
 ... fertig.
XP normal verlassen, und das Programm EXITEMU in C:\emuutils beendet dann
den EMU.


Eigentlich ist das alles gar nicht so kompliziert, wie es klingt. Sehr
geholfen hat mir, auf hdimages zu verzichten und als $_hdimage direkt die
DOS-Boot-Partition einzutragen. Auf diese Partition sollte dann aber nur der
EMU schreiben. Noch viel einfacher duerfte es sein, wenn XP auf der DOS-Boot-
Partition liegt, dann braucht man den lredir-Umweg nicht.

Ich hoffe, ich habe einigen etwas weitergeholfen.

Viele Gruesse, have fun -

Stefan
---------------------- Ende Zitat --------------

Viele Gruesse!
Helmut