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)