ERROR: bad dos helper function: AX=0x... and dirty screen ?!?

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

 



Dear All,

Im am pretty new as a member of this list, although a longtime dosemu
user (~10 years).

I have one pure msdos console/graphics program (a controller program for
a serial instrument) which I use under xdosemu.

The program does well at drawing the console but, at a certain point
(fully reproducible) starts to unwanted text (btw, the startup message)
where it should redraw the screen. Normal use of the program becomes
clearly impossible. Simultaneously, dosemu spits a bunch of messages on
the console such as:

ERROR: bad dos helper function: AX=0x083a
ERROR: bad dos helper function: AX=0x4383
ERROR: bad dos helper function: AX=0x4383
ERROR: bad dos helper function: AX=0x4383
ERROR: bad dos helper function: AX=0x4383
ERROR: bad dos helper function: AX=0x085b
ERROR: bad dos helper function: AX=0x04cb
ERROR: bad dos helper function: AX=0x4383
ERROR: bad dos helper function: AX=0x4383
ERROR: bad dos helper function: AX=0x4383
ERROR: bad dos helper function: AX=0x4383
ERROR: bad dos helper function: AX=0x085b
ERROR: bad dos helper function: AX=0x04cb

(and others)

If I go back to other sections of the prgm, the xdosemu console is
redrawn correctly and hence cleaned of the dirtying messages.

Is there any explanation and/or fix? Many thanks in advance from

Marco Bravi

======= Notes:

I am running dosemu from Debian Sarge and Debian testing. Same
behaviour. Dosemu runs freedos, but when running MS-DOS 6.22 exactly the
same behaviour and errors are observed at the very same spots of the
prgm execution.

My dosemu.conf file is attached (pretty clean, almost standard).


##############################################################################
# This file is the system-wide dosemu.conf or the per-user ~/.dosemurc,
# included by global.conf or dosemu.bin.
#
# ./doc/README.txt (chapter 2.) contains a description of the syntax
# and the usage of dosemu.conf and .dosemurc.
#
# The commented-out values are defaults, here for documentation purposes
# only. Options marked [priv] cannot be changed in ~/.dosemurc.
#
# (optional) access rights are defined in
#
#      /etc/dosemu/dosemu.users or /etc/dosemu.users
#
##############################################################################



# Notes for editing this file:
#
#   In    $_xxx = (n)    n is a numerical or boolean value
#                  =     =
#   In    $_zzz = "s"    s is a string
#
# Please note that all options are commented out by default!
# Remove the # in front of the $ to change an option.


##############################################################################
## CPU settings: define the CPU features to DOSEMU.

# CPU shown to DOS, valid values:  "80[345]86"
# or "emulated" for non-native CPU (386 in this case) Default: 80386

# $_cpu = "80386"

# if possible use Pentium cycle counter. Default: off

# $_rdtsc = (off)

# CPU speed, used in conjunction with the TSC
# Default 0 = calibrated by dosemu, else given (e.g.166.666)

# $_cpuspeed = (0)

# emulated FPU, (off) or (on), default = (on)

# $_mathco = (on)

# 0 = all CPU power to DOSEMU; default = 1 = nicest, then higher:more CPU power

# $_hogthreshold = (1)

##############################################################################
## Disk and file system settings

# List of hdimages or boot directories under 
# ~/.dosemu, the system config directory (/etc/dosemu by default), or
# syshdimagedir (/var/lib/dosemu by default) assigned in this order
# such as "hdimage_c directory_d hdimage_e"
# Absolute pathnames are also allowed.
# 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. Default: "drives/*"

$_hdimage = "freedos:ro"
#$_hdimage = "msdos622"
#$_hdimage = "/var/lib/dosemu/msdos622_boothd.img //dl"

# if you want to boot from a virtual floppy:
# file name of the floppy image under DOSEMU_LIB_DIR
# e.g. "floppyimage" disables $_hdimage
#      "floppyimage +hd" does _not_ disable $_hdimage. Default: ""

#$_vbootfloppy = "/home/marco/Ex-tmp/dos622_d1.img +hd"

# floppy drive types: "threeinch" or "fiveinch" or "atapi" or empty,
# if non-existant. Optionally the device may be appended such as
# "threeinch:/dev/fd0". Default: "threeinch" for A:, "" for B:

# $_floppy_a = "threeinch"
# $_floppy_b = ""

# 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). Default: ""

# $_aspi = ""

# whether to lock the full file on lredired drives for file locking requests
# or just one byte

# $_full_file_locks = (off)

# config.sys   -> config.XXX; default="" or 3 char.,

# $_emusys = ""

# system.ini   -> system.XXX; default="" or 3 char., (for Windows 3.x)

# $_emuini = ""

##############################################################################
## Memory settings

# conventional DOS memory size, in Kbyte, <= 768. Default = 640

# $_dosmem = (640)

# XMS (extended memory) size in Kbyte; default: 8192.

# $_xms = (8192)

# EMS (expanded memory) size in Kbyte; default: 2048.

# $_ems = (2048)

# DOS segment where the EMS frame is put. Default = 0xe000.

# $_ems_frame = (0xe000)

# DPMI size in Kbyte; default: 0x5000

# $_dpmi = (0x5000)

# preferred mapping driver, one of: auto, mapself, mapfile, mapshm
# Default: ""="auto"

# $_mapping= ""

##############################################################################
## Debug settings

# debug switches; same format as -D commandline option, default: ""="-a+cw".
# (but without the -D in front), normally written to ~/.dosemu/boot.log

# $_debug = "-a+cw"

##############################################################################
## Dosemu-specific hacks

# set this to some positive value (eg. Default: 10)
# if you want to play Doom or Duke3D with sound.

# $_cli_timeout = (10)

# try setting this to some lower positive value (eg. 5; default: 50)
# if you get problems with some DOS program
# freezing after some time.

# $_pic_watchdog = (50)

# 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.
# Default: ""

# $_features= ""

##############################################################################
## Terminal related settings

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

# $_term_char_set = ""

# Character set used externally to dosemu
# Default: "" == use $_term_char_set one of else:
# "cp437", "cp737", "cp773", "cp775", "cp850", "cp852", "cp857", "cp860",
# "cp861", "cp862", "cp863", "cp864", "cp865", "cp866", "cp869", "cp874",
# "cp1125", "cp1251"
# "iso8859-1", "iso8859-2", "iso8859-3", "iso8859-4", "iso8859-5", "iso8859-6",
# "iso8859-7", "iso8859-8", "iso8859_9", "iso8859-14", "iso8859-15", "koi8-r"
# "koi8-u", "koi8-ru"

# $_external_char_set = ""

# Character set used by dos programs
# Default: "" == use $_term_char_set one of else:
# "cp437", "cp737", "cp773", "cp775", "cp850", "cp852", "cp857", "cp860",
# "cp861", "cp862", "cp863", "cp864", "cp865", "cp866", "cp869", "cp874",
# "cp1125", "cp1251"

# $_internal_char_set = ""

# terminal with color support. Default: (on)

# $_term_color = (on)

# time between refreshes (units: 20 == 1 second). Default: 4

# $_term_updfreq = (4)

# xterm, putty and compatibles window title. Default: %s - DOSEMU
# where %s is the DOS program's name. Use "" to not change the title

# $_xterm_title = "%s - DOSEMU"

# Video adapter style used: one of: vga, ega, mda, mga, cga, none
# Default: "vga"; none=dumb terminal mode.

# $_video = "vga"

##############################################################################
## Keyboard related settings

# Keyboard layout: default: 'auto' (which tries to generate the table from
# the current Linux console settings)
# or one of: finnish(-latin1), de(-latin1), be, it, us, uk, dk(-latin1),
# keyb-no, no-latin1, dvorak, pl, po, sg(-latin1), fr(-latin1), sf(-latin1),
# es(-latin1), sw, hu(-latin2), hu-cwi, keyb-user, hr-cp852, hr-latin2,
# cz-qwerty, cz-qwertz, ru, tr.

# $_layout = "auto"

# bypass normal keyboard input on the Linux console, maybe dangerous

# $_rawkeyboard = (0)

# 30 == Ctrl-^ (Ctrl-6 on US keyboards), special-sequence prefix for terminals
# use Ctrl-^ h for help

# $_escchar = (30)

##############################################################################
## Mouse settings
## Mouse settings 

# Use internal mouse driver. Default = (on).

# $_mouse_internal = (on)

## all other mouse settings: console only (ignored for remote/xterm/xdosemu)

# type: one of microsoft, mousesystems, logitech, mmseries, mouseman, hitachi,
# busmouse, ps2, imps2. Default: "" (no mouse or serial mouse via DOS driver)

# $_mouse = ""

# Mouse device: one of: com1, com2, com3, com4 (for DOS serial mouse driver
# -- overrides $_mouse_internal)
# or /dev/mouse (for the DOSEMU internal mouse driver). Default: ""

# $_mouse_dev = ""

# Default: "" or one or more of: "emulate3buttons cleardtr"

# $_mouse_flags = ""

# baudrate, default: 0 == don't set

# $_mouse_baud = (0)

##############################################################################
## Joystick config

# 1st and 2nd joystick device
# e.g. "/dev/js0" or default: "/dev/js0 /dev/js1"
#      (or "" if you don't want joystick support)

# $_joy_device = "/dev/js0 /dev/js1"

# range for joystick axis readings, must be > 0, default: 1

# $_joy_dos_min = (1)

# avoid setting the maximum to > 250, default: 150

# $_joy_dos_max = (150)

# the higher, the less sensitive - useful if you have a wobbly joystick.
# default: 1

# $_joy_granularity = (1)

# delay between nonblocking linux joystick reads increases performance if >0
# and processor>=Pentium recommended: 1-50ms or 0 if unsure. default: 1

# $_joy_latency = (1)

##############################################################################
## Serial port settings

# use e.g. "/dev/mouse", "/dev/ttyS0", "/dev/ttyS1", ...
# Note: all "/dev/ttyXX" may be suffixed by the IRQ
# used (instead of the default one), such as "/dev/ttyS2 irq 5"
# or "/dev/ttyS3 irq 9". Default: ""

#$_com1 = "/dev/ttyUSB0"
# $_com2 = ""
# $_com3 = ""
# $_com4 = ""

# Lock directory (e.g. default: "/var/lock")

# $_ttylocks = "/var/lock"

##############################################################################
## Printer settings

# list of (/etc/printcap) printer names to appear as LPT1, LPT2, LPT3
# (not all are needed, empty for none). Default: "lp"
# use "" if you want the printer_command (below) free-form (LPT1 only)

# $_printer = "lp"

# Print command to use. Default: "lpr", for "lpr -P printername".
# Sometimes (with CUPS) "lpr -l" is necessary.

# $_printer_command = "lpr"

# idle time in seconds before spooling out. Default: (20)

# $_printer_timeout = (20)

##############################################################################
## Speaker and sound settings

# speaker: default: "emulated", or "native" (console only) or "" (off)

# $_speaker = "emulated"

# sound support on/off

# $_sound = (on)

# (emulated!) Sound Blaster base i/o port, default: (0x220)

# $_sb_base = (0x220)

# Sound Blaster IRQ setting, default: (5)

# $_sb_irq = (5)

# Sound Blaster 8 bit DMA setting, default: (1)

# $_sb_dma = (1)

# Sound Blaster 16 bit DMA setting, default: (5)

# $_sb_hdma = (5)

# Sound device, default: "/dev/dsp"

# $_sb_dsp = "/dev/dsp"

# Sound mixer device, default: ""; use "/dev/mixer" if you allow that dosemu
# changes the volume

# $_sb_mixer = ""

# Midi base i/o port

# $_mpu_base = (0x330)

# The following options are driver-specific and it is not necessary to alter
# the default values in most cases. Read sound-usage.txt for more.
# Defaults: min_frags: 4, max_frags: 0x20, stalled_frags: 1, do_post: off,
# min_extra_frags: 2.

# $_oss_min_frags = (4)
# $_oss_max_frags = (0x20)
# $_oss_stalled_frags = (1)
# $_oss_do_post = (off)
# $_oss_min_extra_frags = (2)

##############################################################################
## Network settings

# NOTE: Network/packet driver support needs root privileges (except for
#	TUN/TAP)
# 'on' for Packet Driver. Default: off

# $_pktdriver = (off)

# use Novell specific hack. Default: off

# $_novell_hack = (off)

# network device for Packet Driver; default: "eth0"

# $_netdev = "eth0"

# packet driver type "dosnet" for dosnet, default: "tap" for TUN/TAP

# ($_vnet setting overrides $_netdev)

# $_vnet = "tap"

# NOTE: IPX needs root privileges unless you setup /proc/net/ipx_route
# in advance. DPMI support for IPX is broken. Default: (off)

# $_ipxsupport = (off)

##############################################################################
## Setting specific to the X Window System (xdosemu, dosemu -X)

# time between refreshes (units: 20 == 1 second). Default: 5

# $_X_updfreq = (5)

# Title in the top bar of the window. Default = "DOS in a BOX"

# $_X_title = "DOS in a BOX"

# Text for icon, when minimized. Default = "xdosemu"

# $_X_icon_name = "xdosemu"

# Start DOSEMU in fullscreen mode. Default = "off"

# $_X_fullscreen = (off)

# on==translate keyboard via dosemu keytables, or 'off' or 'auto'. Default:auto

# $_X_keycode = (auto)

# blink rate for the cursor

# $_X_blinkrate = (12)

# name of the X font that is used; default = "" = "vga".

# $_X_font = "vga"

# Use shared memory extensions. Faster, but problematic with remote X.
# Default: on

# $_X_mitshm = (on)

# share the colormap with other applications. Default: off

# $_X_sharecmap = (off)

# Set fixed aspect for resizing the graphics window. Default: on

# $_X_fixed_aspect = (on)

# Always use an aspect ratio of 4:3 for graphics. Default: on

# $_X_aspect_43 = (on)

# Use linear filtering for >15 bpp interpolation. Default: off

# $_X_lin_filt = (off)

# Use bi-linear filtering for >15 bpp interpolation. Default: off

# $_X_bilin_filt = (off)

# initial size factor for video mode 0x13 (320x200)

# $_X_mode13fact = (2)

# "x,y" of initial windows size (defaults to ""=float)

# $_X_winsize = ""

# gamma correction. Default: 1.0

# $_X_gamma = (1.0)

# size (in Kbytes) of the frame buffer for emulated vga. Default: 1024K

# $_X_vgaemu_memsize = (1024)

# use linear frame buffer in VESA modes. Default: on

# $_X_lfb = (on)

# use protected mode interface for VESA modes. Default: on

# $_X_pm_interface = (on)

# KeySym name to activate mouse grab, ""=off. Default: "Home" (ctrl+alt+home)

# $_X_mgrab_key = "Home"

# List of vesamodes to add. The list has to contain SPACE separated
# "xres,yres" pairs, as follows: "xres,yres ... xres,yres". Default: ""

# $_X_vesamode = ""

# pause xdosemu if it loses focus

# $_X_background_pause = (off)

##############################################################################
## Direct hardware access

# NOTE: the settings below here that are marked [priv] are only valid in
# a system-wide dosemu.conf and cannot be changed by ~/.dosemurc.
# For these settings to take effect, DOSEMU must be run with root privileges;
# either run it as root or sudo/suid with adjustments in dosemu.users.

# [priv] list of portnumbers such as "0x1ce 0x1cf 0x238" or
# "0x1ce range 0x280,0x29f 310" or "range 0x1a0,(0x1a0+15)". Default: ""
# All ports are slow and can be logged by default. However ports < 0x400
# can be set as "fast" too: example (with multiple lines)
# $_ports = "device /dev/null fast 0x200"
# $_ports = $_ports, " device /dev/lp0 fast range 0x378 0x37a"
# The blank is important
# "device" means: if the ports are registered, open this device to block
# access. The open must be successfull or access to the ports will be denied.
# If you know what you are doing, use /dev/null to fake a device to block

# $_ports = ""

# [priv] list of IRQ numbers (2-15) to pass to DOS such as "3 8 10".Default: ""

# $_irqpassing = ""

# [priv] DOS memory to map directly: list of segment values/ranges such as

# "0xc8000 range 0xcc000,0xcffff". Default: ""

# $_hardware_ram = ""

# [priv] on: give access to the PCI configuration space. Default: (off)

# $_pci = (off)

##############################################################################
## Console video

# The following settings apply to direct console video only and are
# ignored by xdosemu. Many are privileged and need suid/sudo/root.

# use 'console' video (direct video ram access). Default: (0)

# $_console = (0)

# use the cards BIOS to set graphics and allow direct port i/o. Default: (0)

# $_graphics = (0)

# [priv] run the VGA card's initialization BIOS routine (most cards don't
# need this). Default: (0)

# $_vbios_post = (0)

# [priv] set the address of your VBIOS (e.g. 0xc000, 0xe000).
# Default: (0)=autodetect.

# $_vbios_seg = (0)

# [priv] set the size of your BIOS (e.g. 0x10000, 0x8000).

# Default: (0)=autodetect.

# $_vbios_size = (0)

# [priv] size of (real) video RAM. Default: 1024

# $_vmemsize = (1024)

# [priv] real chipset: one of: plainvga, trident, et4000, diamond, avance

# cirrus, matrox, wdvga, paradise, ati, s3, sis, svgalib
# these drivers are likely to be out of date for modern cards; "plainvga"
# may work. Default: ""="plainvga"

# $_chipset = ""

# [priv] see $_ports, but these are only opened if DOSEMU is run on the
# Linux console. Default: ""

# $_console_ports = ""

# [priv] see $_pci, but this option is only used if DOSEMU is run on the
# Linux console. Default: (off)

# $_console_pci = (off)

# [priv] if you have one vga _plus_ one hgc (2 monitors)

# $_dualmon = (0)

[Index of Archives]     [Linux Console]     [Linux Audio]     [Linux for Hams]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite Camping]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Samba]     [Linux Media]     [Fedora Users]

  Powered by Linux