On Fri, 24 Mar 2000, Bohdan Linda wrote:
[skip, answer follows]
Note: it was said by Alistair McDonalds that the console drivers are not
having a high priority anymore, since all modern systems are fast
enough to run X smoothly. The X-method is more secure anyway.
He said maybe a vesa driver would be an idea to solve the dosemu console
compatibility problem once and for all. I've tried this and found it quite
difficult. For instance for console switching you need to do the
following:
- dosemu gets signal to switch signal.
- dosemu needs to either
a. tell the running dos session to do a vesa interrupt 0x10 with
ax=something and store the info somewhere
b. spawn another vm86 session to do this. In this case it needs
to regain permissions, etc.
I haven't solved how to do either way.
Another way might be to extract save and restore video screen procedures
from an XFree86 4.0 module for the specific video card that is used during
execution of dosemu.
However, a console driver for the video card I use (sis 6326) was almost
trivial to write (copied from svgalib, it took me under an hour) and works
flawlessly for me. I can send the patch if you can appreciate it, DOSEMU
maintainers.
Ok, to get to your question:
> $_video = "vga" # one of: plainvga, vga, ega, mda, mga, cga
> $_console = (1)
> $_graphics = (1) #if set 0 here all graphicsprogram will freeze
> $_videoportaccess = (1) # if set 0 here no solution
Up to here it's fine
> $_vbios_seg = (0xf000) # i can put here anything, but dont help
0xf000 is certainly not your Video bios segment. It's almost certainly
0xc000.
> $_vbios_size = (0xf000)# tried some values, but didnt help
Probably 0x8000 is the correct size
> $_vmemsize = (1024) # the same if i put here 8192
Just put you real size here (8192)
> $_chipset = "diamond" # plainvga didnt help me
Most probably the diamond here is an older chip. Plainvga is the
one that probably helps you most.
> please can someone help me to make it run properly?
Yes. dosemu tries to execute the code at 0xc000:0x0003 to initialize the
console video. If it messes up at this time, there's probably some problem
with port access.
Run "dos -D+i -o /var/tmp/errors" and analyze /var/tmp/errors to see which
ports it tries to access and dosemu doesn't understand. You can enable
then in the "ports" section. Don't do this is if you're paranoid about
security though.
Also check whether dos is setuid root:
$ls -l /usr/bin/dos
-rwsr-xr-x 1 root root 862832 Oct 14 14:30 /usr/bin/dos*
^
this s, else do as root: chmod u+s /usr/bin/dos
I hope this helps.
I don't know about the xdos problems though.
Bart