Re: COM int not reachable

2001-07-26 Thread Stas Sergeev

GØnter Knab wrote:
> a dos program can't reach the COM1 int 4 under dosemu. This int seems
>  to be mapped to int 12. The program itself can't be configured to use
>  this int.

Hmm. That seems strange since irq4 is always mapped to int12
in dos unless you manually reprogram the master PIC.
So try looking for the problem elsewhere.
I can sucessfully use com ints (12 for com1 and 11 for com2)
under suid-root console dos. Nothing wrong here IMHO.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]



Re: Re: Re: question on dosemu

2001-08-27 Thread Stas Sergeev

Hans Lermen wrote:
>> Stas Sergeev did send me a patch that solve the problem.
> hmm, what patch are we talking about here?
I have posted a potential fix to Andreas and it works.
The explanation is that if we want to prevent calling int > 0xe0, we have
to do it for ax=0x300 and not for any other functions, where bl is undefined.
I don't have any app to test it so I can be wrong. It was just a quick look
to a dpmi ref. Below is this patch, if you want.
I have also other patches including some dpmi patches, but I am still
waiting for the next official pre-patch to appear on ftp before posting them
because if the changes from 1.0.2 would be merged, it will probably be
necessary for me to rediff my patches.

>> What is not solve is the problem that my clipper application uses 99% of cpu
>> time.
> this is normal. DOS thinks it owns the whole machine and 'waits' by
> loop-polling. With hogthreshold you can tune this a bit, but if your DOS
> application isn't looping at DOSEMU expected points (e.g. the BIOS),
> than you are lost.
This is true for hogthreshold because it tries to be smart and not to slow 
down the app.  But why can't we add another option that will push dosemu
periodically to sleep unconditionally and slow down the execution in favour
of saving a cpu power?

This patch was sent to Andreas:
---
--- src/dosext/dpmi/dpmi.c  Sat Aug 11 02:59:46 2001
+++ src/dosext/dpmi/dpmi.c  Sat Aug 25 04:28:26 2001
@@ -1308,13 +1308,13 @@
   if (inumber==0x0300) {
REG(cs) = ((us *) 0)[(_LO(bx) << 1) + 1];
REG(eip) = ((us *) 0)[_LO(bx) << 1];
+if ((_LO(bx) >= 0xe0) && (REG(cs) < 0xf000)) { /* avoid hardreboot !! */
+  D_printf("DPMI: Interrupt vector overwritten!");
+  leavedos(99);
+}
   } else {
REG(cs) = rmreg->cs;
REG(eip) = (long) rmreg->ip;
-  }
-  if ((_LO(bx) >= 0xe0) && (REG(cs) < 0xf000)) { /* avoid hardreboot !! */
-D_printf("DPMI: Interrupt vector overwritten!");
-leavedos(99);
   }
   if (!(rmreg->sp==0)) {
REG(ss) = rmreg->ss;
-
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



AW: Re: Re: question on dosemu

2001-08-27 Thread Stas Sergeev

Andreas Moroder wrote:
> I changed my apllication to use the Yield function in the following asm
> file, but it seem sto help nothing ( This function helps very much in win
> NT )
> ;; Author: Sz,l Viktor <[EMAIL PROTECTED]>
This is strange since this method _is_ supported by dosemu via hogthreshold
option. Try increasing the hogthreshold value. If this still doesn't help, post
a full example, because the function itself seems (to me, visually) to be OKey.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: mouse causes crash & dos4gw doesn't like keyboard

2001-08-27 Thread Stas Sergeev

Keith Duthie wrote:
> The game is called Ringworld: Revenge of the Patriach. This problem could
This is really great: this game crashes when moveing the mouse and it does
*not* use dpmi. Previously I sought it is a dpmi problem, but now I see how I
was wrong.
Also now I think I understand where the real problem is.
Can you please try the attached patch?
It is not a final solution, it is just a hacks only to prove if my theory is
right. And it seems problematic to make it work properly with dpmi.
But if it solves your problem, then I hope that someone from dosemu developers
will help me to make a correct patch that will prevent from crashing also
dpmi apps.

--- src/base/mouse/mouse.c  Sun Nov 12 20:02:07 2000
+++ src/base/mouse/mouse.c  Tue Aug 28 02:01:53 2001
@@ -1510,6 +1510,19 @@
 void
 mouse_event()
 {
+  if(!in_dpmi) {
+   unsigned char * ssp;
+   unsigned long sp;
+  ssp = (unsigned char *)(LWORD(ss)<<4);
+  sp = (unsigned long) LWORD(esp);
+  LWORD(esp) = (LWORD(esp) - 4) & 0x;  
+  pushw(ssp, sp, REG(cs));
+  pushw(ssp, sp, LWORD(eip));
+  REG(cs) = PIC_SEG;
+  LWORD(eip) = PIC_OFF;
+  }
+  pic_icount++;
+
   if (mouse.mask & mouse_events && (mouse.cs || mouse.ip)) {
 if(in_dpmi && !in_dpmi_dos_int 
   && !((mouse.cs == DPMI_SEG) && 
--- src/base/mouse/mouseint.c   Sun Nov 12 20:04:26 2000
+++ src/base/mouse/mouseint.c   Tue Aug 28 01:59:07 2001
@@ -462,9 +462,16 @@
unsigned char rBuf[MOUSE_BUFFER];
int nBytes;
 
+   if (pic_icount) {
+ pic_request(PIC_IMOUSE);  // hack: return the request back to PIC
+ return;
+   }
+   if (mice->type == MOUSE_X)
+ mouse_event();
+   else {
nBytes = RPT_SYSCALL(read(mice->fd, (char *)rBuf, sizeof(rBuf)));
if (nBytes>0 && !config.usesX) {
  m_printf("MOUSE: Read %d bytes\n", nBytes);
  DOSEMUMouseProtocol(rBuf, nBytes);
-   }
+   }}
 }
--- src/base/misc/ioctl.c   Sun Nov 12 20:02:07 2000
+++ src/base/misc/ioctl.c   Mon Aug 27 02:35:07 2001
@@ -170,7 +170,8 @@
 
 default:   /* has at least 1 descriptor ready */
 
-  if ((mice->intdrv || mice->type == MOUSE_PS2 || mice->type == MOUSE_IMPS2)
+  if ((mice->intdrv || mice->type == MOUSE_PS2 || mice->type == MOUSE_IMPS2
+|| mice->type == MOUSE_X)
  && mice->fd >= 0)
if (FD_ISSET(mice->fd, &fds)) {
m_printf("MOUSE: We have data\n");
--- src/base/dev/pic/pic.c  Mon Aug 27 14:40:14 2001
+++ src/base/dev/pic/pic.c  Tue Aug 28 01:52:36 2001
@@ -1214,7 +1219,8 @@
   pic_seti(PIC_IRQ0, timer_int_engine, 0);  /* do_irq0 in pic.c */
   pic_unmaski(PIC_IRQ0);
   pic_request(PIC_IRQ0);/* start timer */
-  if (mice->intdrv || mice->type == MOUSE_PS2 || mice->type == MOUSE_IMPS2) {
+  if (mice->intdrv || mice->type == MOUSE_PS2 || mice->type == MOUSE_IMPS2
+|| mice->type == MOUSE_X) {
 pic_seti(PIC_IMOUSE, DOSEMUMouseEvents, 0);
 pic_unmaski(PIC_IMOUSE);
   }
--- src/base/init/init.cSun Nov 12 20:02:07 2000
+++ src/base/init/init.cMon Aug 27 02:32:48 2001
@@ -208,7 +208,8 @@
   pic_unmaski(PIC_IRQ1);
   pic_seti(PIC_IRQ8, rtc_int8, 0);
   pic_unmaski(PIC_IRQ8);
-  if (mice->intdrv || mice->type == MOUSE_PS2 || mice->type == MOUSE_IMPS2) {
+  if (mice->intdrv || mice->type == MOUSE_PS2 || mice->type == MOUSE_IMPS2
+|| mice->type == MOUSE_X) {
 pic_seti(PIC_IMOUSE, DOSEMUMouseEvents, 0);
 pic_unmaski(PIC_IMOUSE);
   }
--- src/env/video/X.c   Sun Oct  8 00:33:40 2000
+++ src/env/video/X.c   Mon Aug 27 02:26:36 2001
@@ -1531,7 +1531,8 @@
 
   busy = 0;
 #if CONFIG_X_MOUSE  
-  mouse_event();
+  pic_request(PIC_IMOUSE);
+//  mouse_event();
 #endif  
 
 #if 0



[patch] mouse driver update

2001-09-10 Thread Stas Sergeev

Hello.

The purpose of this patch is to fix a crash when mouse moves under X.
It prevents reentering to the mouse handler by using a standart PIC model
of handling interrupts. This should work for every program including dpmi apps.
I beleave that other internal drivers should also be changed to this model
for better stability.
The patch changes alot and needs some testing.
If it does bad things or doesn't fix the problem, please let me know.


--- src/include/pic.h   Wed May  2 15:22:52 2001
+++ src/include/pic.h   Thu Sep  6 21:59:00 2001
@@ -65,8 +65,6 @@
 #define PIC_IMOUSE 17  /*  internal mouse driver   */
 #define PIC_IPX18  /*  IPX Signal */
 
-#define PIC_IRQALL 0xfffe  /*  bits for all IRQs set. This never changes  */
-
 /* pic_irq_list translates irq numbers to pic_ilevels.  This is not used
by pic routines; it is simply made available for configuration ease */
 EXTERN unsigned long pic_irq_list[] INIT({PIC_IRQ0,  PIC_IRQ1,  PIC_IRQ9,  PIC_IRQ3,
@@ -87,6 +85,7 @@
 EXTERN unsigned long pic_isr;  /* interrupt in-service register */
 EXTERN unsigned long pic_iflag;/* interrupt enable flag: en-/dis- =0/0xfffe */
 EXTERN unsigned long pic_icount;   /* iret counter (to avoid filling stack) */
+EXTERN unsigned long pic_irqall;   /* bits for all IRQs set. */
 EXTERN unsigned long pic_ilevel INIT(32);/* current interrupt level */
 
 EXTERN unsigned long pic0_imr INIT(0xf800);  /* interrupt mask register, pic0 */
@@ -108,6 +107,7 @@

 struct lvldef {
void (*func)();
+   void (*callback)();
intivec;
};
 
@@ -120,7 +120,7 @@
 Bit8u read_pic1(ioport_t port); /* read from PIC 1 */
 void pic_unmaski(int level); /* clear dosemu's irq mask bit */
 void pic_maski(int level);   /*  set  dosemu's irq mask bit */
-void pic_seti(unsigned int level, void (*func), unsigned int ivec); 
+void pic_seti(unsigned int, void (*), unsigned int, void (*)); 
/* set function and interrupt vector */
 void run_irqs();  /* run requested irqs */
 #define pic_run() if(pic_irr)run_irqs()   /* the right way to call run_irqs */
@@ -141,7 +141,7 @@
 
 #define pic_set_mask pic_imr=(pic0_imr|pic1_imr|pice_imr|pic_iflag)
 #define pic_sti() (pic_iflag=0,pic_set_mask, (void)0)  /*emulate STI  
*/
-#define pic_cli() (pic_iflag=PIC_IRQALL,pic_set_mask, (void)0) /*emulate CLI  
*/
+#define pic_cli() (pic_iflag=pic_irqall,pic_set_mask, (void)0) /*emulate CLI  
+*/
 
 /* Experimental TIMER-IRQ CHAIN code */
 extern void timer_int_engine(void);
--- src/include/mouse.h Sun Nov 12 20:02:07 2000
+++ src/include/mouse.h Tue Sep  4 16:57:16 2001
@@ -160,6 +160,7 @@
 extern void DOSEMUMouseEvents(void);
 
 extern void mouse_event(void);
+extern void do_mouse_irq(void);
 
 extern void mouse_move_buttons(int lbutton, int mbutton, int rbutton);
 extern void mouse_move_relative(int dx, int dy);
--- src/base/dev/pic/pic.c  Tue Sep  4 19:56:47 2001
+++ src/base/dev/pic/pic.c  Thu Sep  6 22:21:56 2001
@@ -191,6 +191,7 @@
 static unsigned long   pic_wirr; /* watchdog timer for pic_pirr */
 static unsigned long   pic_wcount = 0;   /* watchdog for pic_icount  */
 unsigned long  pic_icount_od = 1;   /* overdrive for pic_icount_od */
+unsigned long pic_irqall = 0xfffe;
 #if 0
 unsigned long   pic0_imr = 0xf800;  /* IRQs 3-7 on pic0 start out disabled */
 unsigned long   pic1_imr = 0x07f8;  /* IRQs 8-15 on pic1 start out disabled */
@@ -216,15 +217,16 @@
  NEVER};
   
 #define PNULL  (void *) 0
-static struct lvldef pic_iinfo[32] =
- {{PNULL,0x02}, {PNULL,0x08}, {PNULL,0x09}, {PNULL,0x70},
-  {PNULL,0x71}, {PNULL,0x72}, {PNULL,0x73}, {PNULL,0x74},
-  {PNULL,0x75}, {PNULL,0x76}, {PNULL,0x77}, {PNULL,0x0b},
-  {PNULL,0x0c}, {PNULL,0x0d}, {PNULL,0x0e}, {PNULL,0x0f},
-  {PNULL,0x00}, {PNULL,0x00}, {PNULL,0x00}, {PNULL,0x00},
-  {PNULL,0x00}, {PNULL,0x00}, {PNULL,0x00}, {PNULL,0x00},
-  {PNULL,0x00}, {PNULL,0x00}, {PNULL,0x00}, {PNULL,0x00},
-  {PNULL,0x00}, {PNULL,0x00}, {PNULL,0x00}, {PNULL,0x00}};   
+static struct lvldef pic_iinfo[32] = {
+{PNULL,PNULL,0x02}, {PNULL,PNULL,0x08}, {PNULL,PNULL,0x09}, {PNULL,PNULL,0x70},
+{PNULL,PNULL,0x71}, {PNULL,PNULL,0x72}, {PNULL,PNULL,0x73}, {PNULL,PNULL,0x74},
+{PNULL,PNULL,0x75}, {PNULL,PNULL,0x76}, {PNULL,PNULL,0x77}, {PNULL,PNULL,0x0b},
+{PNULL,PNULL,0x0c}, {PNULL,PNULL,0x0d}, {PNULL,PNULL,0x0e}, {PNULL,PNULL,0x0f},
+{PNULL,PNULL,0x00}, {PNULL,PNULL,0x00}, {PNULL,PNULL,0x00}, {PNULL,PNULL,0x00},
+{PNULL,PNULL,0x00}, {PNULL,PNULL,0x00}, {PNULL,PNULL,0x00}, {PNULL,PNULL,0x00},
+{PNULL,PNULL,0x00}, {PNULL,PNULL,0x00}, {PNULL,PNULL,0x00}, {PNULL,PNULL,0x00},
+{PNULL,PNULL,0x00}, {PNULL,PNULL,0x00}

Re: Is the dosemu project maintained?

2001-09-12 Thread Stas Sergeev

George Petri wrote:
> 1. To compile DOS programs
> 2. To play games
> Point 1 works fine but DosEMU has MAJOR problems with Point 2.
> This is because sound support is pathetic and 16-bit SVGA support
What about root console dosemu instead of xdos? SVGA support seems to
work well under console.
And sound support is problematic because it requires a DMA emulation
and DSP emulation - both things are difficult to implement.
Just motivate someone by paying him and you'll get it :)

> is almost non-existent.  And DPMI needs a little work.
DPMI have some permanent problems that will probably never be fixed.
There are also some bugs that can be fixed, but don't count on it too much :)
You can always try to fix it yourself as many users do (including me:)

> Now, when and will these problems be fixed?  Does anyone in the
Do you want to know the date? Look, it's free software. People mostly do
what they need and when they need.

> I am *most* annoyed that I can't play many games properly in DosEMU.
What prevents you from using, say, vmware?

> If Windows 98 can do it, Linux should be able to, too :).
This is not correct. Win98 allows dos programs to directly access hardware
so any dos program under win98 can crash the entire system (I can give
you an examples if you want). This is unacceptable under linux. You can
compare dosemu with WinNT dos session and dosemu will mostly win.

As a user, I also have to admit that some parts of dosemu are really not
maintained at all and it is sad. That is why when I felt need to use a special
backup hardware called arvid (www.arvid.ru) under dosemu and found it
unusable, I had only one choice: to start fixing it myself. Now I almost have
no problems using it (I am still hoping that Hans Lermen will accept my PIC
fixes, or using this hardware will not be possible for others).
The advantage of GPL soft is that you always have sources and encouraged
to do what you need with them.

PS: I apologize to dosemu team. Hope I did not offended anyone by this flame.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: problem formatting disk (a: or b:)

2001-09-22 Thread Stas Sergeev

Narendra wrote:
> problem in formatting a removable disk (a or b) by using format in xdos.
Do you really need to format it in dosemu? Why don't you just use mkdosfs instead?
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Dosemu and dpmi application

2001-10-02 Thread Stas Sergeev

Marcus Roeckrath wrote:
>  I discovered that if you run the old dosemu code with the new kernel it
>  works well *provided* that it is run by root. Suid root is not enough. I
>  cannot explain this, but this is actually happening...
>  I would also appriciate any hints.
The answer is here:
http://marc.theaimsgroup.com/?l=linux-msdos&m=99263649830327&w=2

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Dosemu and dpmi application

2001-10-02 Thread Stas Sergeev

Stas Sergeev wrote:
> Marcus Roeckrath wrote:
> >  I discovered that if you run the old dosemu code with the new kernel it
> >  works well *provided* that it is run by root. Suid root is not enough. I
> The answer is here:
> http://marc.theaimsgroup.com/?l=linux-msdos&m=99263649830327&w=2
And this is only for dosemu-1.0.2. If you really mean *old* dosemu, not 1.0.2,
then it is not an answer to your question, sorry.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: dosemu sessions crashing after 30 mins of keyboard inactivity

2001-10-05 Thread Stas Sergeev

"David Milligan" wrote:
> Some of our (and others) programmes appear to either "crash" or "pause" if
> they are left running for around 30 minutes or more.
Is this with dosemu-1.0.2?

> This is especially apparent in our programmes which have a screen saver
> feature. The screen saver routine is pretty simple and does some screen
> writes, keyboard idle loop, and some Novell semaphore checking. It does also
Are you playing with timer's speed? Are you using timer-related delays?

> I haven't determined conclusively what happens but sometimes the programmes
> get "stack overflow" errors, sometimes just lock permanently, sometimes get
Seems like PIC problems again...

> Some more tidbits :-
> get out of screen saver or something else) the CPU util in TOP for that
> DOSEMU session goes up to >90%. Tracing system calls, it repeats a sequence
> of vm86() calls over and over.
This is "normal" behavior.

> While a fix for this behaviour would be good a "fudge" such as putting some
> kind of dumby key press in the dosemu keyboard source may get around this.
You can try to implement such a workaround but I doubt you will ever get it
into the official version (just IMHO).

> Can anyone point me in the direction of what to do here?
Well, in case you are really going to fix it, you should start with the
following:
- apply the attached patch. It will increase the log file limit up to 30Mb and
make it circular, else dosemu will just exit when log size reach 10Mb (patch
untested).
- make a log: dosemu -D9+grI -o /tmp/dosemu.log
- as the PIC implementation is very buggy, it would be a good idea to
make a separate log for PIC with -D9+r option. I beleave that the PIC is the
root of all evil for a *random* crashes and stack overflows.
Ok, making everything mentioned above should be a good starting point
for hunting such a bug. The logs should give you a clue such as what is failing.


--- src/base/misc/utilities.c	Wed Oct  4 13:53:20 2000
+++ src/base/misc/utilities.c	Sun Oct 29 19:52:16 2000
@@ -51,7 +51,7 @@
 #define INITIAL_LOGBUFSIZE  0
 #endif
 #ifndef INITIAL_LOGBUFLIMIT
-#define INITIAL_LOGFILELIMIT	(10*1024*1024)
+#define INITIAL_LOGFILELIMIT	(30*1024*1024)
 #endif
 
 #ifdef CIRCULAR_LOGBUFFER
@@ -213,15 +213,16 @@
   log_written += fsz;
   if (log_written > logfile_limit) {
 fflush(dbg_fd);
-#if 0
+#if 1
 ftruncate(fileno(dbg_fd),0);
 fseek(dbg_fd, 0, SEEK_SET);
 log_written = 0;
-#endif
+#else
 	fclose(dbg_fd);
 	shut_debug = 1;
 	dbg_fd = 0;	/* avoid recursion in leavedos() */
 	leavedos(0);
+#endif
   }
 }
   }



Re: DOSEmu require root access for console graphics, while Win2K doesn't???

2001-10-19 Thread Stas Sergeev

<[EMAIL PROTECTED]> wrote:
> As you may know, to have fast, fullscreen console graphics, DOSEmu must be
> run as root or SUID root.
> (please note that a small bug in 1.0.2 prevents you from running as root but
AFAIK, it prevents from running SUID, but running _as_ root works.

> Hans Lerman posted a small fix a while ago, anyway...).
He already made an official fix available on ftp in 'fixes' directory so the
problem has now gone.

> My question is: How come Win2K doesn't require you to run NTVDM as
> Administrator or anything like that but *still* has fast, fullscreen
> graphics?
Note that newer svgalib also does not require root, but it means nothing since
it uses special kernel module. So there can be different approaches. I don't
know much about windows, but it seems that the situation is the same as with
svgalib: WinNT/2K does not allow dos progs to access any hardware (and 
you can't change this by modifying privileges) but the video card. It is
allowed to be accessed directly via ports: all my programs that sets
non-standard video modes works. But if I set some VESA modes and then
press Alt-Enter, my NT locks:)
I think it is possible to make dosemu to use svgalib's kernel module so it
wold not require root for video either. But I am not shure if this approach
would really minimize a risk of the direct hardware access.
So, the only way to get *fast* fullscreen graphics is to allow the program
to access video hardware directly. (suid-)root is just an easy way to do this.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: I've got problem

2001-10-20 Thread Stas Sergeev

slaanesh wrote:
> I need help with dosemu-1.0.1-10. I installed dosemu, freedos and xdos
Thing to try: install latest version dosemu-1.0.2.1

> on my computer. I set in dosemu.conf line "$_hdimage = bootdir" where i
> put dos files (  /var/lib/dosemu/bootdir). However when i type dos or
> xdos on the console i've got repply "Segmentation fault (core dumped)"
Even if you have incorrect configuration, it shouldn't crash so early (if it
dumps core, I suppose the crash occured before SEGV hanler was set).

> and i can't fix it.
But you can do backtrace using gdb with generated core file and make a
bugreport (recompile dosemu with debug info at first).
Also try the attached patch. I am using it to fix the same problem.


--- src/base/init/config.c	Sun Oct 15 23:55:41 2000
+++ src/base/init/config.c	Mon Aug 13 19:52:58 2001
@@ -628,7 +628,10 @@
 char *p = getenv("DOSEMU_OPTIONS");
 if (p) {
 memset(usedoptions,0,256);
-do usedoptions[(unsigned char)*p] = *p; while (*++p);
+while (*p) {
+	usedoptions[(unsigned char)*p] = *p;
+	p++;
+	}
 }
 }
 



Re: dosemu and 2.4 (mandrake) kernels

2001-10-27 Thread Stas Sergeev

Russell Poyner wrote:
> PS.  I am contacting the vendor of avimark to try and decipher the
> mysterious "Runtime error 200" message.
This error message is magic and this question is asked very frequently.
Try starting this program before starting your program:
http://www.geocities.com/stssppnn/sdiv.zip

For more info I suggest you to search google.
This problem is well-known and not dosemu-related anyway.

If the executable of your program is not packed, you can also try this trick:
find a hex sequence 
F7 D0 F7 D2 B9 37 00 F7 F1
and replace it with, for example,
B8 FF FF BA FF FF 90 90 90
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: nothing works

2001-11-01 Thread Stas Sergeev

Martin 'pisi' Paljak wrote:
> time, no program that uses dos4gw.exe [whatever it is, I'm not a dos
> professional] doesnt work. If i'm not mistaken this one provides some kind
> of memory managment or something. Maybe there is a way to make them work
> somehow?
Definitely, there is. Everything (almost) must work. dos4gw can use dpmi, which
is supported by dosemu.

> any suggestions ?
What your dosemu.conf looks like? I bet you just have something configured
incorrectly.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Doom, Duke 3D, etc & p-mode POPF not trapped

2001-11-01 Thread Stas Sergeev

"Vlad Romascanu (LMC)" wrote:
> it seems that in p-mode, if cpl > iopl, popf instructions are not trapped.
No, if cpl > iopl, they *are* trapped, and otherwise they are executed.

> under window$ nt this freezes the dos session (virtual interrupts are never
> reenabled because popf is not trapped).
This can be only if IOPL=3 (because CPL==3 in VM86 always), which is
impossible in a multitasking OS like WindowsNT or Linux.
If this problem really exist under WinNT, then it is nothing more than a bug
in it's VM monitor. I don't know about NT, but older Linux kernels really have
this bug.

> my question is: how does dosemu work around this limitation?
There is no limitation. Actually, linux kernel deals with this instructions, not
dosemu itself, see vm86.c from kernel sources.
The problem is that there was a bug in the kernel which sometimes prevented
dosemu from reacting to such instructions and syncing its internal flags with
virtual IF, but I have fixed this somewhere around 2.4.7, so, if you have
this problem - upgrade your kernel and popf will be trapped properly.
Anyway, I am curious about how you have triggered this problem with doom,
since this game always works perfectly under dosemu.
And I am even more curious if there is the same bug also in NT. If it is, then
someone in Microsoft simply steals code from Linux kernel:)
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Doom, Duke 3D, etc & p-mode POPF not trapped

2001-11-02 Thread Stas Sergeev

Hans Lermen wrote:
> > it seems that in p-mode, if cpl > iopl, popf instructions are not trapped.
> correct.
> DPMI under DOSEMU runs in normal Linux user space, hence protected mode
> with IOPL=0 and CPL=3.
> In protected mode popf _never_ traps (except for stack fault), from
> the Intel Programmers Manual:
Oops, sorry, didn't know about this. Knowing that it *is* trapped in VM86, I
assumed that the same rules are correct also for protmode/dpmi since IOPL
and CPL are the same as in VM86 and popf doesn't have enough privs...

And the described limitation is also valid for VM86 on older linux kernels which
doesn't return to dosemu when VIF is changed hence leaving it with disabled
ints. So there are seems to be two similar limitations, not one.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



DMA-Sound support in dosemu

2001-11-17 Thread Stas Sergeev

Hello.

Yesterday I have looked into the sound code of dosemu and found it in not
as miserable state as I expected after so many complains in this list.
Now I already made some programs to work with sound: pv (mp3 player),
iplay (stm player) some other utilities and some games.
The fact that I don't have a sound card appears to be not a big problem: I have
pc-speaker, and that just required some more hacks.

The attached patch does not solve all of the sound problems in dosemu, but
it is probably still worth to test, though it is a bit hackish yet.
Mostly it must fix DMA Auto-Init modes, but also improves direct DSP writes a
little.
And, as I can't test it very well myself without a sound card, report the
results, please.
The diffs are against dosemu-1.1.2, but should work with 1.0.2 either.




--- src/include/dma.h	Sat Nov 17 05:40:34 2001
+++ src/include/dma.h	Sun Nov 18 00:15:35 2001
@@ -31,6 +31,7 @@
 void dma_drop_DACK(int channel);
 void dma_assert_DREQ(int channel);
 void dma_assert_DACK(int channel);
+int dma_get_block_size (int channel);
 
 
 #define DMA_HANDLER_READ   1
--- src/include/sound.h	Mon Oct 29 23:01:37 2001
+++ src/include/sound.h	Sun Nov 18 01:13:06 2001
@@ -94,9 +94,9 @@
   __u8  data;  /* Data is available */
   __u8  write_size_mode;   /* Are we writing the upper or lower byte */
   __u8  last_write;/* First part of a multi-byte instruction */
-  __u16 length;/* Length of the DMA transfer */
-  __u16 blocksize; /* **CRISK** Block size of transfer */
-  __u16 bytes_left;	   /* No. of bytes left in current blk */
+  int length;/* Length of the DMA transfer */
+  int blocksize; /* **CRISK** Block size of transfer */
+  int bytes_left;	   /* No. of bytes left in current blk */
 /* 
  * This is the maximum number of bytes transferred via DMA. If you turn
  * it too low, the dosemu-overhead gets too big, so the transfer is
@@ -105,7 +105,7 @@
  * jump in too high steps 
  */
 #define MAX_DMA_TRANSFERSIZE 512
-  __u16 dma_transfer_size;
+  int dma_transfer_size;
   __u8  empty_state;	   /* what we have to do when transfer ends */ 
 #define DREQ_AT_EMPTY 1
 #define IRQ_AT_EMPTY 2
@@ -154,7 +154,7 @@
   void  (* DMA_stop)(void);
   int   (* DMA_complete_test)(void);
   void  (* DMA_complete)(void);
-  void  (* DMA_set_blocksize)(__u16); /* **CRISK** */
+  void  (* DMA_set_blocksize)(int, int); /* **CRISK** */

   /*
* Miscellaneous Functions
@@ -267,6 +267,7 @@
  */
 
 #define DSP_QUEUE_SIZE  64
+#define DSP_CMD_QUEUE_SIZE  5
 
 EXTERN struct SB_queue_t {
   __u8  output[DSP_QUEUE_SIZE];  /* Output Queue */
--- src/base/dev/dma/dma.c	Mon Oct 29 23:01:37 2001
+++ src/base/dev/dma/dma.c	Sun Nov 18 00:22:16 2001
@@ -180,7 +180,7 @@
 
   dma[controller].status |= mask;
 
-  if(!dma[controller].i[ch].mask)
+//  if(!dma[controller].i[ch].mask)
 activate_channel (controller, ch);
 
 }
@@ -602,8 +602,21 @@
 
   h_printf ("DMA: Wrote 0x%x into Channel %d Length (Byte %d)\n", value,
 	(dma_c *4) + channel, dma[dma_c].ff);
+  if (dma[dma_c].ff)
+h_printf("DMA: Transfer size set to %d\n",
+	dma_get_block_size((dma_c * 4) + channel) + 1);
 
   dma_toggle_ff (dma_c);
+}
+
+int dma_get_block_size (int channel)
+{
+  int controller, ch;
+
+  controller = (channel & 4) >> 2;
+  ch = channel & DMA_CH_SELECT;
+  return (dma[controller].length[ch].data[0] +
+	(dma[controller].length[ch].data[1] << 8));
 }
 
 inline void dma_write_mask (int dma_c, Bit8u value)
--- src/arch/linux/dosext/sound/linux_sound.c	Mon Oct 29 23:01:37 2001
+++ src/arch/linux/dosext/sound/linux_sound.c	Sun Nov 18 01:55:05 2001
@@ -61,8 +61,10 @@
 
 /* New fragment control - AM */
 static int sound_frag_size = 0x9; /* ie MAX_DMA_TRANSFERSIZE (== 512) */
+static int sb_frag_size= 512;
 static int num_sound_frag  = MAX_NUM_FRAGMENTS;
 static int extra_buffer= 8000*BUFFER_MSECS/1000;
+static int bits_per_samp = 0;
 
 /* MPU static vars */
 static int mpu_fd = -1;	 /* -1 = closed */
@@ -70,9 +72,11 @@
 
 extern void sb_set_speed (void);   /* From sound.c */
 
-void linux_sb_dma_set_blocksize(__u16 sb_blocksize)
+void linux_sb_dma_set_blocksize(int sb_blocksize, int dma_blocksize)
 {
-  __u16 blockbits, oss_blocksize, oss_blocknum;
+  int blockbits, oss_blocksize, oss_blocknum;
+
+  sb_frag_size = sb_blocksize;
 
   /* 
* The blocksize we are passed is the actual number of bytes to include in a
@@ -93,10 +97,10 @@
* starts.
*/
   
-  if(sb_blocksize > MAX_DMA_TRANSFERSIZE) {
+  if(dma_blocksize > MAX_DMA_TRANSFERSIZE) {
 oss_blocksize = MAX_DMA_TRANSFERSIZE;
   } else {
-oss_blocksize = sb_blocksize;
+oss_blocksize = dma_blocksize;
   }
   block_size = oss_blocksize;
 
@@ -110,11 +114,11 @@
 
   /* This is intentionally here, because fragments should not be greater
  than the SB block size */
-  sb_blocksize += extra_buffer;
+  dma_blocksize += extra_buffer;
 
-  oss_blockn

Re: Writing plugin code

2001-11-20 Thread Stas Sergeev

Rodrigo Gallardo wrote:
> When receiving commands from the DOS program, the emulation sets a
> timer. After it expires, it tries to raise an interrupt (IRQ 6), so
> the DOS programm will go on. In my timer handler, I call
> pic_request(pic_irq_list[6]).
I beleive you can do pic_request(PIC_IRQ6) instead, which is similar, but looks
better.

> The log output indicates that the IRQ is
> set to be triggered, but it never is!
You have to check if the apropriate bit is set in pic_irr, you can see it in the
PIC log (-D9+r).

> floppy_plugin_dosemu_irq = pic_irq_list[6];
> pic_seti(floppy_plugin_dosemu_irq, floppy_irq_trigger, 0);
> pic_unmaski(floppy_plugin_dosemu_irq);
> So, anyone knows what could be wrong?
Check your bit in the pic_imr and pice_imr. Also check VIF flag.
The function that activates an interrupts is called run_irqs() so you have to
trace this function to find out why it doesn't activate your int.
The problem with this function is that it is written in asm. But there are some
efforts to rewrite it in C. I can mail you a patch that provides a C version if
this is what you need.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: DMA-Sound support in dosemu

2001-11-20 Thread Stas Sergeev

Oliver Ob wrote:
> > Now I already made some programs to work with sound: pv (mp3 player),
> > iplay (stm player) some other utilities and some games.
> > The fact that I don't have a sound card appears to be not a big problem: I
> have
> > pc-speaker, and that just required some more hacks.
> what games?
The complete list is too long:) But it is worth to mention SimCity2000,
Settlers2, Dune, ThemeHospital, Grand Thief Auto and some other games that
use DMA transfer as well as some older games that use direct DAC writes.

Doom and other famous ID games doesn't work (and probably never will), the
reason was pointed out by Vlad Romascanu (it just locks dosemu, and if it
was suid-root under console, it locks the whole linux box when sound is
enabled).

> and what have you changed?
The patch was attached to my letter, didn't you notice it?
Anyway, it was mostly a hacks and workarounds. The only purpose I posted it 
here was to enshure whether it works for the real soundcards, since the only
sound device I have is pc-speaker and I had to make some tricks to adjust
the code for that "device".
There were several people complaining the sound support in dosemu. As they
are unwilling to test the patch, they'll have to complain further, until
someone with a soundcard will fix their problems:)
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



RE: DMA-Sound support in dosemu

2001-11-20 Thread Stas Sergeev

Hello.

"Vlad Romascanu (LMC)" wrote:
> For Doom and the like it should be easy to incorporate a workaround into
> DosEmu (it's tougher to do in WinNT because NT's NTVDM.EXE does not
> expose a proper interface for what is needed, but anyway).
According to this, it would be easier to patch doom itself:
http://www.jsiinc.com/dl/SoundFX.txt

> If interrupts have been
> disabled for more than a certain amount of time (easy to detect from within
> the emulated IRQ0 generator, maybe coupled with the CLI/STI trap handler),
> DosEmu could force the enabling of interrupts.  Then Doom should then get
> past the "Initializing timer..." lockup and work properly.  Can someone test
> that?
Yes, it should, because it works when I commented out a dpmi_cli() call from
where it must be so that ints are not disabled at all.
Wait for a certain period and reenable ints could probably be a good workaround,
but there are seem to be some problems: this cli/popf sequence really *locks*
dosemu, it's timer stops, it eats 100% CPU, it doesn't receive signals anymore,
nothing, only kill -9. And if it was suid-root and started under console with
RAW keyboard access enabled, then only magic keys helps because keyboard
stays in the RAW mode. I don't know where the problem is, maybe someone from
dosemu developers knows this, but it seems that cli in PM does something more
than just disabling an emulated ints under dosemu.
There was a similar problem for realmode (and for DPMI's realmode callbacks as
well, that is why I described it when it was not necessary to, sorry:), but it
appears to be a bug in the linux kernel and was fixed in 2.4.7.
But as PM dpmi code executes in the userspace, now the problem is elsewhere.

BTW, you suggested me to visit your page to find out undocumented DSP
commands. One very old game called Millenium writes to DSP the following
commands: 0x06, 0x6b and 0xe2. Then it reads from a Reset address, while
Creative's manuals claims that it is Write-only. I failed to find in your
code something that could give me a hint such as what this program expects
from DSP...

How bad the fact that there is no a pc-speaker driver for NT so that I could
try your code out.

Thanks.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



RE: DMA-Sound support in dosemu

2001-11-21 Thread Stas Sergeev

Hello.

"Vlad Romascanu (LMC)" wrote:
> No good; most of the games patched using cli2nop crash after a few seconds;
> -- if the game uses sti/cli for mutual exclusion then keeping interrupts
> enabled all the time won't guarantee any mutual exclusion.  If DosEmu *does*
> disable interrupts but forcefully re-enables them later (as opposed to
> always keeping them enabled), then you're somewhat safer.
I agree.

> > receive signals anymore, nothing, only kill -9.
> Linux timer.  All the rest (i.e. keyboard) should be dead except for magic
> key combinations, this is normal.
I can continue: it stops DMA, it stops logging (even timer events), it ignores
dosdebug connections, it ignores window closing when it is under X.
Not what I could call "normal" behavior:)
Anyway, I have just found a cure, see attachment. So I think if this is applied,
it would be possible to do also what you suggest.

> independently of the CPU's frequency).  If the program reads several times
Yes, 4 times.
> in a row from port 0x226 (I think that's the reset one) then it's just a
> delay trick.
Thanks.

> Command 0xe2 was a pain to reverse-engineer.  Are 0x06 and 0x6b actual
> commands, or arguments to a command (e.g. 0xe2)?
Exactly, that were arguments to 0xe2:) Anyway, until 0xe2 is unknown, this
Millenium game doesn't produce any sound under dosemu.
But atleast it doesn't lock now, when arguents are handled "correctly", i.e.
known what is to ignore.

> Get a sound card!  Or are you out of ISA/PCI slots? :)
Exactly, you guessed also this. How are you doing it?:)
Damn this engineers who put only 1 ISA (or even 0!) to the MB!

> There is a PC-speaker driver for Windows, but it is fully synchronous (i.e.
I knew it was for win95 but never seen it for NT.


--- src/dosext/dpmi/dpmi.c	Mon Oct 29 23:01:37 2001
+++ src/dosext/dpmi/dpmi.c	Thu Nov 22 03:08:48 2001
@@ -2502,13 +2519,17 @@
 #else
   if (_cs != UCODESEL){
 #endif
-#if 1
+#if 0
 if (in_win31 || (dpmi_eflags & IF)) {
   D_printf("DPMI: return to dosemu code for handling signals\n");
   Return_to_dosemu_code(scp,0);
 } else dpmi_eflags |= VIP;
 #else
 /* DANG_FIXTHIS We shouldn't return to dosemu code if IF=0, but it helps - WHY? */
+/*
+   Because IF is not set by popf and because dosemu have to do some background
+   job (like DMA transfer) regardless whether IF is set or not.
+*/
 D_printf("DPMI: return to dosemu code for handling signals\n");
 Return_to_dosemu_code(scp,0);
 #endif



Re: DMA-Sound support in dosemu

2001-11-23 Thread Stas Sergeev

Oliver Ob wrote:
> Hi Bart, please be so kind as to
What do you need? Sound support is incomplete anyway so not only Doom
is silent. Enjoy Wolf for now:)

> technically exlpain why "no sound" with DOS-DOOM
Quoting http://www.jsiinc.com/dl/SoundFX.txt:
---
Execution of an CLI or STI instruction causes a trap to the
emulator which then updates the virtual interrupt state.  Many programs save
the interrupt state before disabling them by executing a pushf instruction.
Unfortunately due to a limitation in the Intel architecture when running a
process in protected mode at a privilege level above 0 the popf instruction
that would normally restore the interrupt state does not cause a trap and hence
the virtual interrupt state in the VDM gets out of step with what the program
expects and further virtual interrupts such as timer, mouse or sound card are
not delivered to the program.  The only solution is to fix the application.
---

There are still some workarounds to try so all is not lost.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: virtual 8086

2001-11-23 Thread Stas Sergeev

pp wrote:
> I got dosemu 1.0.2.1, and after trying to tun application I got such an error:
> "Phar Lap err 35: The 386 chip is currently executing
Phar Lap and other dos-extenders are used to work under dosemu if dpmi is
enabled.

> What should I do?
Check $_dpmi option in your dosemu.conf, it is probably disabled.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



RE: DMA-Sound support in dosemu

2001-11-25 Thread Stas Sergeev

Hello.

"Vlad Romascanu (LMC)" wrote:
> If interrupts have been
> disabled for more than a certain amount of time (easy to detect from within
> the emulated IRQ0 generator, maybe coupled with the CLI/STI trap handler),
> DosEmu could force the enabling of interrupts.  Then Doom should then get
OK, after some messing around DMA code, I managed Doom to work with sound
this way...

> past the "Initializing timer..." lockup and work properly.  Can someone test
> that?
Tested, not good. Doom uses cli/popf not only on startup but each time it
produces the sound. So, if the delay is 1 sec and you are running with a
chainsaw which always produces sound, you will see a frequent pauses -
slideshow. And if the delay is reduced to several msecs, Doom works fine 
but the workaround triggers also for other apps compromissing the stability.

Btw, I patched CPUemu to update dosemu flags on popf and Doom works
with sound, but emulated CPU is too slow:(
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Program hogs CPU

2001-10-07 Thread Stas Sergeev

Ross Boylan wrote:
> I have tried various settings of hogthreshold, but I can't prevent a
> certain program (GrandView) from grabbing all the CPU when it runs.
> Is there something I can do about this?
Currently there is probably nothing to do, but you can still try playing with
nice(1).

> The program is a full-screen character mode program (an outliner) from
> the DOS era.  It does respond to the mouse, which I suspect is the
> problem (that is, the program responds to the mouse by polling
> continuously).
dosemu can handle mouse polling condition. But it doesn't handle (AFAIK)
direct keyboard polling via port 0x60 and that seems to be a problem in most
cases.

> When I run it under MS Win 2K it consumes almost no CPU.
There are some plans on improving the setuation during the current or
next devcycle of dosemu, but you know how slowly the things are going...

> By the way, I find the description in README.txt a bit confusing.  It
It is confusing in many places:)

> says:
>   $_hogthreshold = (1)   # 0 == all CPU power to DOSEMU
>  # 1 == max power for Linux
>  # >1   the higher, the slower DOSEMU will be
The last line is probably a mistake: there are alot of places in dosemu
sources with the code like this:
if(++trigger>=config.hogthreshold) usleep(...);

> Does this mean that 1 essentially is the same as setting the value to
> infinity? 
AFAICS, 0 is "infinity" here. The more the value, the more CPU power
dosemu eats, I think.

> The discontinuity of scale is a bit surprising; based on
> the description of >1 I would expect 1 means "DOSEMU runs as fast as
> possible".
It just means that someone who wrote this doc was not as good in Math as
you are:))
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Experemental patch: prevent from hogging CPU

2001-10-08 Thread Stas Sergeev

Hello.

The complain that dosemu hogs CPU when program is idle, appears to be
very frequent in this ML, so I decided to post my experemental patch here
in hope that someone who have this problem, will test it. I beleave that the
problem is that dosemu doesn't release time slices when the program polls
keyboard via int16 or directly via port0x60. I want some feedbacks just to
know if my guesses are correct and the problem is really with polling the
keyboard (there could be lots of other reasons).
The patch is highly UNtested, so be prepared to everything. It can even
yield rejects on "stable" dosemu, because I use devel version, but this is
unlikely.
So, everyone who wants to see this problem fixed in the near future, is
encouraged to test this and write a feedback.


--- src/base/async/int.c	Mon Oct  8 01:31:55 2001
+++ src/base/async/int.c	Mon Oct  8 13:27:20 2001
@@ -1414,6 +1414,12 @@
 else
   return NO_REVECT;
 
+  case 0x16:			/* Keyboard */
+if (config.hogthreshold)
+  return REVECT;
+else
+  return NO_REVECT;
+
 #if 0		/* no need to specify all */
   case 0x10:			/* BIOS video */
   case 0x13:			/* BIOS disk */
@@ -1494,13 +1500,24 @@
 return;
 }
 
-#ifndef USE_NEW_INT
 /* KEYBOARD */
 static void int16(u_char i) {
+extern Bit8u port60_buffer;
+static Bit16u oldESP;
+static int trigger = 0;
 real_run_int(0x16);
-return;
+if(config.hogthreshold) {
+  if((_AH==0x01 || _AH==0x11) && (port60_buffer & 0x80) &&
+oldESP==_ESP && READ_WORD(BIOS_KEYBOARD_BUFFER_HEAD) ==
+READ_WORD(BIOS_KEYBOARD_BUFFER_TAIL)) {
+	  if(++trigger >= config.hogthreshold*100) {
+	usleep(INT2F_IDLE_USECS);
+	trigger=0;
+	  }
+  } else trigger=0;
+  oldESP=_ESP;
+}
 }
-#endif /* not USE_NEW_INT */
 
 /* BASIC */
 static void int18(u_char i) {
@@ -2118,9 +2135,7 @@
   interrupt_function[0x13] = int13;
   interrupt_function[0x14] = int14;
   interrupt_function[0x15] = int15;
-#ifndef USE_NEW_INT
   interrupt_function[0x16] = int16;
-#endif /* not USE_NEW_INT */
   interrupt_function[0x17] = int17;
   interrupt_function[0x18] = int18;
   interrupt_function[0x19] = int19;
--- src/base/keyboard/serv_8042.c	Fri Sep  7 00:28:13 2001
+++ src/base/keyboard/serv_8042.c	Mon Oct  8 02:08:16 2001
@@ -22,6 +22,7 @@
  *
  */
 
+#include 
 #include "emu.h"
 #include "iodev.h"
 #include "int.h"
@@ -272,10 +273,22 @@
 Bit8u keyb_io_read(ioport_t port)
 {
   Bit8u r = 0;
+  static Bit8u oldval = 0;
+  static int trigger = 0;
 
   switch (port) {
   case 0x60: 
   r = read_port60();
+
+  if(config.hogthreshold) {
+if((r & 0x80) && r == oldval) trigger++;
+	else trigger=0;
+	if(trigger >= config.hogthreshold*10) {
+  usleep(INT2F_IDLE_USECS);
+  trigger=0;
+}
+oldval=r;
+  }
  
   /* We ought to untrigger IRQ1, in case DOS was reading port60h with interrupts off, 
* but currently the PIC code doesn't support this. */



Re: Slow printing

2001-10-09 Thread Stas Sergeev

"Steve K. Sears" wrote:
> Got it down to 35 seconds before it starts to print by following your
> suggestion.  Still don't know why it takes that long to process a 2K
> ASCII file.
> I thought maybe dosemu was hogging all the resources (from reading
> previous threads),
When dosemu hogs CPU, it actually means that it lets the dos program to
hog CPU so the program is executed faster, but other linux processes are
executed slower. Dosemu itself does not require a lot of CPU power.

> but it only takes about 1% when this program runs (or
> even prints).
And this can be the the reason why you have slow execution or slow printing:
dosemu is not allowed to pass alot of CPU power to the dos app.
Try allowing dosemu to hog CPU and see if it helps. To do that, you should set 
$_hogthreshold to 0.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Does cmdline.com still work?

2001-12-01 Thread Stas Sergeev

Hello.

Sergey Suleymanov wrote:
> I've used cmdline.exe and anything work fine. But now
> cmdline.com (link to generic.com ) doesn't do his work. Has
> something broken?
Seems like that. The forgotten braces and other wierd things indicates that
the code was never executed since porting to coopthreads (or am I missing
something?).
Try the attached patch.
I don't know whether it fixes all the problems, but at least it makes
cmdline.com to work for me.


--- src/plugin/commands/cmdline.c	Sat Nov 17 05:40:34 2001
+++ src/plugin/commands/cmdline.c	Sat Dec  1 20:34:40 2001
@@ -23,23 +23,27 @@
 
 int msetenv(char *,char *);
 
-#define CMDBUFFSIZE 1
+#define CMDBUFFSIZE 256
 /* This program just reads stdin... */
 int cmdline_main()
 {
 	char *buff = malloc(CMDBUFFSIZE), *p, *q, *endb;
 
 
-	if (!buff)
+	if (!buff) {
 	perror("malloc failure");
 	return(1);
+	}
 	*(endb = buff + read(0,buff,CMDBUFFSIZE)) = '\0';
 	for (p = buff; p < endb; p = q + strlen(q)+1)
 		 if (*p != '-' && ((q = strchr(p,'='))!=0)) {
 		 *q++ = '\0';
-		 if (msetenv(p,q))
+		 if (msetenv(p,q)) {
+		 free(buff);
 			 return (1);
 		 }
+		 }
 		 else q = p;
+	free(buff);
 	return 0;
 }



Re: Print Screen key on Dosemu (again)

2001-12-12 Thread Stas Sergeev

Pablo Bacherer E. wrote:
> Is it really so difficult to make the print screen key work on dosemu (as
> expected)?
Yes, sometimes it turns out to be really a bit difficult to get working a thing
that is not implemented yet:)

> I've unsuccessfully tried with Dosemu 1.0.1 under the following conditions:
Upgrade to 1.1.2 and try the attached patch which (hopefully) implements a
priliminary PrintScreen support.

> Any ideas?
Let me know whether it works for you.


--- src/include/lpt.h	Sat Nov 17 05:40:34 2001
+++ src/include/lpt.h	Wed Dec 12 20:26:57 2001
@@ -30,6 +30,12 @@
 
 };
 
+/* public functions */
+int printer_open(int prnum);
+int printer_close(int prnum);
+int printer_flush(int prnum);
+int printer_write(int prnum, int outchar);
+
 /* status bits */
 #define LPT_TIMEOUT	0x1
 #define LPT_IOERR	0x8
--- src/base/async/int.c	Fri Nov 30 20:01:10 2001
+++ src/base/async/int.c	Wed Dec 12 20:14:28 2001
@@ -27,6 +27,7 @@
 #include "disks.h"
 #include "bios.h"
 #include "iodev.h"
+#include "lpt.h"
 #include "bitops.h"
 #include "xms.h"
 #include "int.h"
@@ -1503,6 +1508,21 @@
   }
 }
 
+static void do_print_screen() {
+int x_pos, y_pos;
+ushort *base=SCREEN_ADR(READ_BYTE(BIOS_CURRENT_SCREEN_PAGE));
+g_printf("PrintScreen: base=%p, lines=%i columns=%i\n", base, li, co);
+printer_open(1);
+for (y_pos=0; y_pos < li; y_pos++) {
+	for (x_pos=0; x_pos < co; x_pos++) 
+	printer_write(1, READ_BYTE(base + y_pos*co + x_pos));
+	printer_write(1, 0x0d);
+	printer_write(1, 0x0a);
+}
+printer_flush(1);
+printer_close(1);
+}
+
 static void int05(u_char i) {
 if( *SEG_ADR((Bit8u *), cs, ip) == 0x62 ) {	/* is this BOUND ? */
 	if(!IS_REDIRECTED(5)) {	/* avoid deadlock: eip is not advanced! */
@@ -1510,7 +1530,13 @@
 	leavedos(54);
 	}
 	g_printf("BOUND exception\n");
+} 
+else if(REG(cs) == BIOSSEG) {
+	g_printf("INT 5: PrintScreen\n");
+	do_print_screen();
 }
+else
+	g_printf("INT 5: Unknown event, passing to user\n");
 default_interrupt(i);
 return;
 }



Re: German keytable?

2001-12-13 Thread Stas Sergeev

Peter Eser wrote:
> ...I send it again (Stas), first time it was not at the whole mailgroup
> In earlier releases I worked as normal user with suidroot, but that
> seems to be forbidden now.
What's your problem? You've been (privately) suggested to upgrade to 1.0.2.1
because it is a fix for your problem (or, at least, it pretends to be:) 
Have you tried that? Or it doesn't work for you either?
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: I can't execute two consecutive commands in dosemu, xdosemu seems OK

2002-01-05 Thread Stas Sergeev

Chris Elvidge wrote:

>  E.g. after invoking ./dosemu
>  dir -> directory listing
>  dir -> linux shell prompt
This is already a second report of this bug.
With first reporter we came to a conclusion that Scroll() is called with an
invalid screen address for some reasons.
Could you please make a Video logging (-D9+v) to see if it is the same bug?

>  boot.log says:
>  Running unpriviledged in low feature mode
Does it makes sense running suid-root? With console access? With video bios
access? What kind of dosemu.conf I need to reproduce this problem (i.e. show
me your dosemu.conf please:)?

>  Linux 2.2.19 kernel, Slack 7+, hdb2 is ReiserFS, 384Mb RAM
>  Any other info required?
Yes, please: dosemu version, what dos/version are you using, does it crashes
if you skip config.sys and autoexec.bat etc.
Both reports were after the release of 1.0.2, so my guess is that you are using
1.0.2 or 1.0.2.1 dosemu. If it is true, could you reproduce the crash with
1.0.1?

Also it would be very good if you do a stack trace with GDB at a crash point.
Previous reporter was not able to do that because the stack was corrupted, but
maybe you are more lucky with this (recompile dosemu with debug info to do it).
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: PCI sound cards that work in dosemu?

2002-01-05 Thread Stas Sergeev

"John C. Alden" wrote:
> What PCI sound cards work OK within dosemu?
The idea is to emulate a classic SoundBlaster's DSP (and DMA) and output a 
sound to /dev/dsp, so that you will be able to use *any* sound card that is
supported by Linux kernel, while the dos prog will think that it uses SB (you
have to specify SB in the setup of your dos progs).
This doesn't work currently, however, but expected to work in the near future.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: DMA-Sound support in dosemu

2002-01-10 Thread Stas Sergeev

Hello.

pesarif wrote:
> I got dropped from the list for a while (don't know why so I rejoined), did I 
> miss any other of your patches?  If so, please send them to me.
No, I haven't posted any more due to a complete lack of interest.
But I have just uploaded a latest version to
http://www.dosemu.org/~stas/snd-patches0-1.1.2.tar.gz
so give it a try.
There is a sound patch and 2 additional small fixes that will improve an SB
usage for some DPMI programs.
Note: some features mostly related to a detection of soundblaster's presence are
disabled because it requires a changes to PIC, which are not yet merged to a
mainstream. But this is not very noticeable, I hope.
Note2: you have to select "Sound Blaster clone" or "Sound Blaster or 100%
compatible" in your games, but not "Sound Blaster Pro" and of course not
"Sound Blaster 16 or AWE32".

> The particular patch that you sent with the email I'm replying to is really 
> great.  Now Liero works perfectly (it didn't before) and so does Warcraft II
Thanks for a good feedback:)

> (without MIDI, of course).
Have you tried to select "General MIDI" or "MT32" or something "MPU401" for
midi? It must work perfectly if you have /dev/midi working (your sound card
must support this feature) and dosemu is properly configured.
And Adlib midi is a sad story: it doesn't work currently and I can't help it
due to a lack of the sound card (actually I don't have a free slot for it,
maybe I have to by an USB->ISA converter, but it is still *very* expensive).
But I am working on porting my pc-speaker driver to a newer OSS api to make it 
compatible with SoftOSS, that will hopefully allow me to use midi with it...

> Trouble is, a game that worked perfectly before (One Must Fall 2097 - go to 
Oops, I was not aware of some games that used to work before :)

> "War International" in the links section of www.omf.com to download - the 
> game is now freeware), now has abnormally fast music.  Please fix this.
OK, the patch you have tested was produced within a few hours and it was
mostly a set of workarounds for the problems I noticed at a first look. So it
was not very good and it had some bugs inside.
Later I have convinced myself that fixing the current code is a wrong way to go,
so I mostly rewrote it.
That said, my current patch doesn't share any bugs with previous (maybe it
have enough of its own however:), so I hope this problem is fixed.

> Please continue producing more excellent code (esp. sound code)!
I'll try. The current TODO for the sound code is very small:
- move the actual I/O from dma.c to linux_sound.c
- merge additional fixes and interfaces to the mainstream
- find any bugs remaining
- convince myself that the code works not only with pc-speaker
- try all of the proposed workarounds for doom's problem (deferred)
I really hope to complete this all within a month or two, but currently things
are getting very slowly for several reasons (mostly because I have to submit
other things at first, but also due to my lack of a free time).
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Two questions: Number Pad and Terminal/Console

2002-01-12 Thread Stas Sergeev

"Edward Mendelson" wrote:
> To run WordPerfect for DOS, I wanted the Number Pad Plus and Minus keys 
> to work they work under ordinary DOS. By commenting out the $_X_keycode = 
> (off)
Why don't just change it to $_X_keycode=(on)?

> Shift-F1 gets interpreted by WPDOS as Shift-F3, Shift-F2 gets  interpreted as
> Shift-F4, etc. The Alt- and Ctrl- function keys seem not to work as expected
> at all.
This will *probably* get fixed in dosemu-1.1.3. At least it is in progress now.

> Also, in the console, I can't figure out how to tell DOSEMU to use the box
> drawing characters in hardware instead of the replacment characters that get
> used instead. Is there a fix for this?
I think that root (suid) is an only solution for that.

> Finally, I've experienced the same bug reported elsewhere on this list in
> which DOSEMU shuts down after giving one or two commands,
Nobody made a good bugreport on this one yet...

> and I hope someday
> it becomes possible to use hardware graphics as an ordinary user, not 
> as root.
It is possible under X.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Problems with Novag's universal chess board

2002-01-13 Thread Stas Sergeev

Hello.

"Bernhard Bialas" wrote:
> 1). I get only connection (by starting the driver) when I start DOSEMU 
> from the console as root.When I start as normal user, the driver fails 
> to start and I dosemu hangs.What I can do to get the communication from 
> xdos?
(looking in the ChangeLog) I am under an mpression that it was fixed in 1.1.2.

> - fritz3 receive the moves from the chessboard, but the chessboard 
> seems 
> not to receive the moves from the chessprogram: the LED's on the board 
> are not blinking, i.e they are not indicating the move. Under true DOS 
> it works. What could be the problem?
It could be a bugs in the serial port emulation...

> How I can solve?
You can try my patch at http://www.dosemu.org/~stas/ser_irq-1.1.2.diff
which fixes one problem I have found in the code. If you are lucky, that could
fix your problem. Otherwise try producing a log of serial port events.

> I am using Dosemu 1.02
This one is known to be a bit buggy.

> Linux Kernel 2.4.0
Ouch, why don't you upgrade? OK, it have nothing to do with dosemu.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: sound questions

2002-01-13 Thread Stas Sergeev

Hello.

"Peter Jay Salzman" wrote:
> also, someone on the list sent me email saying that he thinks the sound
> code in dosemu is completely broken, as in, dosemu can't utter a peep
> right now.  but he wasn't sure. 
But why can't you just check it out?

> is this pretty much the situation for
> dosemu 1.1.2?
It is true only partially. Adlib emulation is broken. DSP and DMA emulation is
buggy, but some programs used to work with it. And MPU emulation seems to be
very usable.
New DSP and DMA code are already available for testing. If you are willing, get
it at http://www.dosemu.org/~stas/snd-patches1-1.1.2.tar.gz
and tell me how it works for you.

> Cachesize = 3802576
> Cacnum = 2
> 0- ptr: 0x4085b040, leng: 322560, lock: 255
> 1- ptr: 0x4691fb, leng: 3480016, lock: 0
> Cache length sum = 3802576
> i'm at an utter loss -- i don't know how to diagnose something i can't
> understand.  can someone guess as to what's happening?
It seems like the program (DPMI?) encountered some errors and prints its
internal variables. This info is not related to dosemu, so it can't help to
find a problem.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: MSDOS 6.22 running with/in Dosemu.

2002-01-13 Thread Stas Sergeev

Hello.

"John Goley" wrote:
> I think I remember you saying on list that you go Dosemu
> 1.0.2.1 running
   ^^

> Trying version 1.0.2 with freedos on my new P4 1.7 ghz machine wouldn't 
> work at all.
This was fixed in 1.0.2.1 and in 1.1.2, so upgrade.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: some thoughts about dosemu

2002-01-13 Thread Stas Sergeev

Hello.

> ERROR: general protection at 0xfadf: 66
> ERROR: SIGSEGV, protected insn...exiting!
> shouldn't dosemu catch segmentation violations and perhaps print a more
It does, else you would have been seeing "segmentation fault (core dumped:)".
This is just an evil dos4gw trying to enter protected mode, when it is
impossible. It checks DPMI presence, then VCPI presence, and then it goes on
trying to set protected mode with priveledged instructions, at which point
dosemu gets a SIGSEGV. You have specify 80286 cpu in dosemu.conf to 
prevent dos4gw from doing wierd things.

> useful message?
Messages could be enabled with -D switch.

> or am i missing the point and dosemu IS catching a
> sigsegv?
Apparently. SIGSEGV is extensively used by dosemu for emulating port access
and some other things.

> the dosemu howto is one of the
> shortest howtos out there.  it deserves to be one of the largest.   ;-)
That's right:)
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: DMA-Sound support in dosemu

2002-01-14 Thread Stas Sergeev

Hello.

pesarif wrote:
> I did all your patches at that URL (sound + serial) and got:
> i.e. the serial patches required "fuzzing" and the DPMI patch failed.  Using 
> dosemu 1.0.2.1.  What I am doing wrong?
At least one thing: serial patches have nothing to do with sound stuff, so it
is not necessary to apply at all (testing them is a good idea anyway:).
And DPMI patch was diffed against dosemu-1.1.2 and it is necessary only for
better SB detection, but there were some more patches for this, which I am
currently submitting, so detection will be available later. I am excluding DPMI
and PIC fixes from my sound patch to prevent any further confusion.
Don't forget to reinstall your sources after you got rejects.

> And, btw, what do the serial patches do (do they make null-modem games
> work?)?
Maybe, but I was solving a problem that prevented me from transferring files
more that 10Kb size via modem. With that patch I am no longer limited in a
transfer size. I would be glad to hear that it also fixes something else (which
is rather possible).

> > Note2: you have to select "Sound Blaster clone" or "Sound Blaster 
> > or 100% 
> > compatible" in your games, but not "Sound Blaster Pro" and of course
> > not "Sound Blaster 16 or AWE32".
> Why not?  I used to be able to select "Sound Blaster Pro", but I can't 
> anymore in any of my games and this is reducing the sound quality in some 
> games.
This is not a mandatory, at least I hope that all the programs that used to
work with SB Pro before, will work with it also now. I just want to warn you
that some programs will not work if you specify SB Pro, and will work with SB.
I don't want to drop any functionality of course. My original goal was to
completely outperform the old code. But your tests indicates that this goal
will require some more work than I expected.

> I've had mixed results with your new patches.  In general, the code seems to 
> have gotten slower but works better.
What do you mean by "code seems to have gotten slower"? Slow execution
or slow sound? Or somethig else?

> Here are some results of testing:
You have done a very good work actually, thank you for such a detailed
testing (esp. for the comparision with the old code!)

> Program   no sound patchesoriginal sound patches  new sound 
>patches
>   (sb pro)(sb pro)(sb or sb 
>clone)
> 
> Jill of the Jungleno sounddistorted   perfect (even 
>better than win98!#)
> Scream Tracker 3  locks uplocks upperfect
> Wolfanstine 3Dno soundno soundperfect #
Seems strange: Wolf used to work for me previously. And the detection
problems are Adlib-related I think.

> Swiv3Dno soundintro works perfect
> Descent   perfect stuttersperfect
> Warcraft 2stutters horribly   works   perfect
> Spitwad Willy no sound?   perfect
What is "?" :)
This all looks very good. Detection problems are deferred, as I mentioned
above.

> Count Downinitial sound, lock up  stutters,clicking   
>perfect,clicking
Clicking is generally caused by an OSS limitations (buffer must be empty
if I want to change speed, I have to reopen (!!!) the device if I want to
change fragment size) or by direct DAC writes (which I can't improve -
pc-speaker problems). So this is also deferred (see below).

> One Must Fall 2097perfect music is too fast   music skips & 
>stutters *
Fixed: http://www.dosemu.org/~stas/snd-patch1-1.1.2.diff.gz
This game uses an undocumented ability of a command 0x1C to set a transfer
length. Previously none of my programs does this, so I didn't implemented
this, while now I can see it was implemented in the old code. Thanks for
pointing this anomaly.
Actually I was thinking that my "test suit" is rather large, but apparently it
was not.

> Liero no soundperfect sound stutters 
>*
I can only hope that it is the same problem as above. And if it is not, I need
this game (link) or the debugging output.

> Clyde's Adventure no soundpartial partial
What is "partial"?

> Need for Speedno soundno soundno sound
> Shell Shock   perfect no soundno sound *
Not good. Link or debugging output needed.

> Monster Bash  no soundno soundno sound
> Kiloblaster   no soundno soundno sound
> Clyde's Revenge   no soundno soundbombs out
> Mugen no sounddos4gw exceptiondos4gw 
>exception
What??? Give me a link to this one, please! Oh, I beleive it is DMA probl

Re: DMA-Sound support in dosemu

2002-01-18 Thread Stas Sergeev

Hello.

pesarif wrote:
> Liero and OMF2097 sound stutters a bit (the kind of sound stuttering you hear 
> when a system is under a heavy load).
OK, as I said before, OMF's problem is fixed. LIERO's problem is now also
fixed, get a new patch:
http://www.dosemu.org/~stas/snd-patch5-1.1.2.diff.gz
Liero was setting a very small transfer size, so sometimes it happened that
it was not able to handle interrupt until another one is arrived, hence
stuttering. I worked around the problem by pausing DMA between the
interrupt request and acknowledge. I am not shure if it is correct, but testing
indicates no breakages for other programs and also it was done this way
in the old code.

In this new patch I have finally done everything I planned (including many
more bugfixes), so it is pretty much what I am going to submit if no serious
bugs are triggered (which is possible after such a big modifications I've just
made to it again). Also my patience ran out and I used indent at dma.c, which
is why the diff is now much bigger.
BTW, recording might work now. I just can't test it, but all necessary code
is already in place.

> I was given version 1.33 (freeware) by a friend.
> http://www.freewaregaming.com/aa/liero.html
All of your links were broken. I have found Liero with ftpsearch, but no other
games. After trojansoft was closed, it is very difficult to find any good game
over the internet:(

> I can't find a link.
> Perhaps I could send it to you OL (it's shareware after all)?
You'd better upload it somewhere and give me a link, please.

> http://www.elecbyte.com
> It was written in DJGPP/Allegro (and most games that use this combo don't 
> work and cause a dos4gw exception).
Hmm, I thought dos4gw was generally used with Watcom C and not with djgpp.
Correct me if I am wrong.

> http://www.apogee1.com/downloads.html
> 2.4keen.zip - Goodbye Galaxy v1.4 shareware episode (712k) 
This link exists, but it is broken.

> Just wondering...but how can you write and test sound code without a sound 
> card?  I mean, you're doing a very good job without one!
The reason why people always underestimate pc-speaker is simply because
there was no good driver for it. I made one (based on Michael Beck and
David Woodhouse work), then I connected my motherboard with an external
speakers and enjoing high-quality 6-bit sound:) (actually pc-speaker is a
single-bit DAC, but it is possible to emulate 6 and even 8 bit on it).
BTW, quality of sound is really very good:)
And why I like dosemu and my sound code is because the absence of the sound
card is no longer noticeable even for DOS programs. If I had a sound card,
I would probably have never started this work:)

> It would be good with DOSemu could do mixing with other applications like 
What is necessary for this is only to write another sound driver plugin for
dosemu. It is easy (you can steal one from mikmod and do a minor modifications
to make it work with dosemu). The problem is to find a really good sound
server, but ESD or ARTS are apparently not good at all.

> xmms playing the background because DOSEmu currently seg-faults when some 
> other application is hogging /dev/dsp.
Dosemu must never segfaults. If I am using /dev/dsp on dosemu's startup, dos
programs just fails to detect SB, but no segfaults.
Was it the same with the old sound code, or this segfault is mine?
Is there any way I can reproduce it?
If no, then make a full log please (-D9+a) and mail it to me compressed.
I don't think the log will be too big if dosemu segfaults on startup.

> > > This is my favourite game and now it doesn't work very well at all :(
> > It will. But don't try to tell me that you are going to play on a speed
> > like that:) (the game doesn't seem to use timer for synchronization). I
> > assume you are using this game only to enjoy its music (which is pretty
> > nice:).
> The gameplay is good too!
It is too fast, how can you play? Are you using any slowdown programs for
this? Or maybe your computer is 386SX? :)
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: VLM.EXE crashes with dosemu-1.0.2

2002-01-20 Thread Stas Sergeev

Hello.

"Sergey Suleymanov" wrote:
> Grigory>Hi!  I'm testing dosemu-1.0.2.  VLM.EXE from Novell
> Grigory> Netware client crashes when I try to use it. 
> I guess, you need suid root dosemu.bin to vlm.exe work.
One small addition: you need suid-root *and* dosemu-1.1.2, because AFAIK
suid-root doesn't do a good job for dosemu-1.0.2.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: DMA-Sound support in dosemu

2002-01-21 Thread Stas Sergeev

Hello.

pesarif wrote:
> > OK, as I said before, OMF's problem is fixed. LIERO's problem is now also
> > fixed, get a new patch:
> Thanks, I'll test out your patch.
I worked around clicking in many progs by increasing the minimal OSS buffer
size. It adds latency, but it is better than clicking.
So better get this:
http://www.dosemu.org/~stas/snd-patch6-1.1.2.diff.gz
>From now I'll stop modifying it and start waiting for the results (if no
serious bugs are discovered).
[if Alistair is reading: this patch contains the types changes]

> > > I was given version 1.33 (freeware) by a friend.
> > > http://www.freewaregaming.com/aa/liero.html
> > All of your links were broken. I have found Liero with ftpsearch, but no
> This is strange...all the links I gave you were from "Official" sites.
As of Liero, there was a site, but I found only Linux version of the game on it.
Other links were broken.

> > > I can't find a link.
> > > Perhaps I could send it to you OL (it's shareware after all)?
> > You'd better upload it somewhere and give me a link, please.
> It doesn't happen anymore :)
That could be due to some parts of the patch are disabled. It is possible that
after one particular game, another game will fail. So you have to restart
dosemu after each test. This is related to additional fixes that I am currently
submitting, and, as soon as they are in, I'll enable everything in my patch
so there will be no more such setuations.

> > > Just wondering...but how can you write and test sound code without a
> > > sound card?  I mean, you're doing a very good job without one!
> > And why I like dosemu and my sound code is because the absence of the
> > sound card is no longer noticeable even for DOS programs. If I had a sound
> > card, I would probably have never started this work:)
> Is this cool feature in DOSemu?
No, this is a cool feature of a pc-speaker driver - it acts like any other OSS
driver so that any program (including dosemu) can play sound. Dos programs
thinks that there are SB installed, but if not for dosemu, I would not be able
to use pc-speaker as SoundBlaster for DOS progs, but I would be able to use
it for Linux progs anyway. If I have real sound card, I could just reboot to DOS
and enjoy sound, so no need to write sound support for dosemu. And now
dosemu is the only way for me to hear sound from dos progs, that is why I am
doing this:)

> I have a computer without a sound card.
I haven't ported my pc-speaker driver to 2.4 kernels yet because I am still
using 2.2.20. But you can try it's predecessor by Michael Beck and David
Woodhouse at ftp.infradead.org/pub/pcsp. But it is incomplete and practically
not very usefull and produces absolutely horrible sound sometimes (and 
sometimes good). So you are unlikely to find an OSS-compatible pc-speaker
driver until I switch to 2.4 kernel:)

> > > xmms playing the background because DOSEmu currently seg-faults when some
> > > other application is hogging /dev/dsp.
> > Dosemu must never segfaults. If I am using /dev/dsp on dosemu's startup,
> > dos programs just fails to detect SB, but no segfaults.
> I'll get back to you after testing the patch.
OK, but problem with segfaults is also an important one.

> > It is too fast, how can you play? Are you using any slowdown programs for
> > this? Or maybe your computer is 386SX? :)
> If you press ESC during gameplay, you can control the speed.
> I have an i686.
OK, pretty nice game (took me ~20min to complete the whole game at a
"Veteran" difficulty level:), but actually just another clone of Mortal Kombat,
I would say (but with very nice music:)
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



RE: DMA-Sound support in dosemu

2002-01-21 Thread Stas Sergeev

Hello.

"Vlad Romascanu (LMC)" wrote:
>> Liero was setting a very small transfer size, so sometimes it 
>> happened that
>> it was not able to handle interrupt until another one is 
>> arrived, hence
>> stuttering. I worked around the problem by pausing DMA between the
>> interrupt request and acknowledge.
> Pausing until receiving the ACK is correct for SB16, but is not correct for
> SBPro-s and lower
Just to be more specific: I am only pausing DRQs, which doesn't always
mean pausing DMA, but for single mode it does. Also we are transferring
not a 1byte/request, but much more (up to 512bytes/request) to reduce
the overhead. This last detail seems to make pausing unavoidable.

About SB16: it is not emulated anyway, but why pausing is correct? I assume
that pausing DMA will result in stuttering on the real hardware. When we
have an intermediate OSS buffer, it is OK, but is the real DSP have some
intermediate buffering to allow DMA pauses? And what if the program 
doesn't care about ACKing at all? Is this possible? I assume that DSP will
still assert DRQ if it is in auto-init mode, and the output will not be stopped.
That is why when a dos program crashes, real sound card still produces a
noice forcing to reboot the compter, I suppose.

> at least one app -- I can't recall which right now,
> though -- will fail if configured for SBPro but the emulator behaves as 
> a SB16
Maybe that app just uses auto-init and doesn't ACKing? For this I have a
work-around-the-workaround: if OSS buffer is empty, but the INT was not
ACKed yet, I am forceing DRQ. Dunno if this works, however, but the post-
crashing noice is in place:)

>> BTW, quality of sound is really very good:)
> ..except it's mono... :)
Yes, but it is still better (much better) than nothing:) And, as a bonus, it
allows me to control a modem's transfer speed (sound quality depends on 
the int frequency from serial ports because I use irqtune to give a higher
priority to serial ports). So, when the sound quality is good, I know that
modem's connection is broken and I have to reconnect:)
Anyway I am going to by an USB->ISA converter as soon as there will
be a linux drivers available. They promised it within a year.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



RE: DMA-Sound support in dosemu

2002-01-22 Thread Stas Sergeev

Hello.

"Vlad Romascanu (LMC)" wrote:
>> Just to be more specific: I am only pausing DRQs, which doesn't always
>> mean pausing DMA, but for single mode it does.
> OK.  On SB-16 DMA *transfers* will pause
What exactly it does to pause DMA?
OK, atleast my code must be correct for SBPro (which is what is emulated)
regarding the workaround that finally forces DRQ.

>> but is the real DSP have some
>> intermediate buffering to allow DMA pauses?
> Yes.  Actually in the "Generic DAC/ADC DMA commands", in the "Command 
> byte", you will see there is a bit field for "FIFO" -- setting it enables 
> internal buffering
Yes, I see it. So, the default state for it is enabled, right? It is good
because I can't avoid OSS buffering anyway.

> Good point about sound looping when program crashes -- I observed this
> behaviour on my old SB-Pro (consistent); has anyone observed this on a 
> real SB16?
Yes.

> ISR may dutifully ACK every IRQ (thus the sound would loop on forever),
This is possible because even warm reboot with QEMM's quick boot used
to stop this, but unlikely by resetting DSP (it could reset DMA though).
BTW, I observed this after crashes from dos4gw so it is unlikely that there
was an old handler alive. But I don't have SB handy and it was long ago
so I can confuse something...

> Is there such a thing as a USB<->ISA
> "bridge"?  It sounds like such a Frankenstein -- imagine all the 
> hacking going behind the scenes needed to trap I/O and translate
> IRQ's (from actual
> "made-for-ISA" drivers) into something that can be pushed around on a 
> USB interface.
That is why it costs way too much:(
Initially it required the rewriting of the drivers. But recently they made
something that allows to work with ISA drivers.
For more info visit www.arstech.com

> BTW, about the Scream Tracker 3 problem that needs DMA to be halted 
What do you mean? I am not halting it, just delaying it's start.

> during "disabled speaker" periods -- is that documented somewhere, or
> is it also an empirical observation? :)
It was a logical conclusion:) ST3 sets a DMA transfer from the int handler.
If you request the int immediately, this handler will be called again and will
set the same transfer again - infinite loop. It just wants to execute some
commands after a return from handler - this is all what it demands.
I assume that even when speaker is disabled, DMA transfer still goes and
takes some time. I am not going to emulate any timings, instead I just detect
if the transfer was set from inthandler, in which case I delay it for some CPU
cycles. That works just fine.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: DosEmu error

2002-01-25 Thread Stas Sergeev

Hello.

"Julius Chrobak" wrote:
> Caldera Dr-Dos. If I want to run it now it writes this: 
> Phar Lap err 35: The 386 chip is currently executing in virtual 8086 
> mode under the control of another program. You must turn off this other 
> program in order to use 386|DOS-Extender to run in protected mode
This generally means that you haven't enabled DPMI.
Check $_dpmi option in your /etc/dosemu.conf
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: mouse in xdosemu

2002-01-25 Thread Stas Sergeev

Hello.

"John Goley" wrote:
> mouse doesn't work like it is suppose to. It will not work at all if I just
> "left" mouse click on the menus. Nothing happens. But if I hold down 
> the right mouse button and then click "hard" with the left button then it 
> will work sometimes. What is wrong? Is there a setting change in a config 
> file somewhere that could fix this problem?
Try $_hogthreshold=(0)
When this is enabled, dosemu executes sleep() when the program is polling
the mouse while mouse is inactive. This can lead to a missing mouse
events.
When you hold the right button, dosemu thinks that mouse is active and
ceases executing sleep(), hence not losing the click.

> Or can you disable the mouse driver
> and load a driver that will work?
This is unlikely even under console. Not possible under X.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



RE: DMA-Sound support in dosemu

2002-01-25 Thread Stas Sergeev

Hi.

"Vlad Romascanu (LMC)" wrote:
> However, even if the transfer was "block" it will still pause on
> terminal-count  if DREQ is deasserted, no?
>From manual:
"The difference between Block and Demand is that once a Block transfer
is started, it runs until the transfer count reaches zero. DRQ only
needs to be asserted until -DACK is asserted."
So I don't think DSP have something to stop it. But also I am not sure
whether it is possible to use block mode for sound transfers at all:
how then DSP can control a transfer speed (sampling rate)?
So, if it is not possible, then pausing DRQ == pausing DMA.

> Seriously, though -- trackers will want 16-bit stereo sound.  
Is this why FastTracker2 plays twice as slow with my code? How good
does it work with yours?

> 16-bit DMA is very easy to implement.
I don't know exactly how easy it is to implement, but I suspect this will
require an implementation of DMAC cascading/cascade mode, which
what I don't currently know how it works (probably in need of a good specs).

>> No: starting DMA transfers from the inthandler, relying at 
>> the same time on
>> the execution outside of inthadler seems to be stupidity in any case.
>Why?  I was merely suggesting using "Pause" as a 
>non-reentrancy/guarding
>technique (other than cli) -- called from *within* the int handler, of
>course.
Because int is mostly an async event. Yes, you can pause DMA and
safely leave the handler, but how can you know *where* will you be
after iret? Where is to put an unpause? You will have to do some
synchronisation probably with global volatile variables and waitpoints
in the main code. But then it is better to start transfer from the main code
and do only ACKing from the handler. This is all about that 5-byte
xfers that ST3 does for SB detecting. If you are going to do real transfers,
than you may not worry about recurseing into inthandler and it is OK.
But doing *short* test transfers from within inthandler seems unreliable
to me.

>> ST3 sets a transfer with disabled speaker.
>> This produces an interrupt.
> One moment -- "Disable Speaker" (0xD3) is not supposed to generate 
> IRQs, no?
I didn't say that. "ST3 *sets a transfer* with disabled speaker" is what I
said. Interrupt is produced by the transfer (when it is over), not by the
disabling speaker, of course.

> It theoretically only acts as a "mute" (and, according to my docs, it
Maybe. But I have a feeling that when you do a transfer with a speaker
being disabled, DSP keeps DRQ asserted during the whole transfer,
ignoring the sampling rate. So it is possible that the transfer with the
disabled speaker is going much faster than with enabled. But this is
nothing more than my internal feeling:) There is nothing in my docs
about it.

>> What I do:
>> If (speaker_is_disabled && transfer_started_from_inthandler)
>>   wait_for_a_several_cpu_cycles;
>> Start_the_transfer;
> Tzk, tzk, tzk, you cheated -- the SB is not supposed to know that the 
> CPU is in an interrupt handler. ;)
Long before I started doing sound stuff, I wanted to implement a safeguard
for PIC that will prevent the inthandler for an int with the equal or lower
prio to be executed without giving some CPU cycles to a main code.
This would solve the aforementioned as well as many other problems.
But my PIC patches are still kept away from dosemu:) That is why I am
introducing such a dirty hacks:(

> Interesting, though -- I assume ST3 sets up such a small DMA block size 
> that the IRQ occurs while the ISR is pre-empted.
... only at a detection phase, of course.

> This is a pain, though, because other games (e.g. Rex Nebular) will 
> actually
> fail SB detection if the IRQ does not come soon (they set the DMA block 
> size to a few bytes, e.g. 4 bytes, and time-out/fail detection if an IRQ is 
> not emulated within 5-10ms).
This is exactly what I have with IPlay (Inertia Player), but fortunately
it is clever enough to not set such a short transfers from within an
inthandler so no problems with it.
I wonder if it is possible to figure out under NT is the process currently
inside an inthandler or not?

>> I can feel like ST3 doesn't work under your emulator, right?:)
> And differences between DMA "DMA block
> size" and DSP "DMA block size" are not an issue for me, all cases 
> (less, equal, greater) work fine with other apps. :)
This means that you are doing a smoother transfers, probably you even
have another thread for DMA?
Dosemu is single-threaded (threading support was removed not so long
ago for the reasons unknown to me) so I have to do a very large xfers
(I can't be sure that I will have a control within the next few seconds
or not). This produces a nasty bursts and some programs stuttering. That
is why I have some heuristic code about a transfer sizes, but unfortunately
this doesn't work very well. I don't know what to do with it:(

> I suspected DPMI before I saw your message a
But ST3 doesn't use DPMI! Dosemu have a global variable in_dpmi that
allows to figure out easi

Re: DMA-Sound support in dosemu

2002-01-25 Thread Stas Sergeev

Hello.

pesarif wrote:
> I've just tested out your patch.
Thanks:)

> In general, it's perfect :) except that most programs still can't detect it
This is improved in the devel version of dosemu, but don't expect perfection
anyway. 

> and there's no music :(
Upgrade your soundcard with a midi daughterboard:)
BTW, how about SoftOSS?

> (btw, when you write the music code (please!),
What I know for sure is that I am not going to write an OPL code. I am
thinking about stealing it somewhere, or make it possible to use timidity
for an MPU401 midi on top of the /dev/dsp. But even this is not going
to happen soon (if you are not volunteering for help, of course:)

> Here are some of the more interesting results of testing (i.e. the results that you 
>probably want to know about):
> Nice, the top three are my favourite DOS games :)
Nice:)

> Warcraft 2 is misdetecting the sound emulator as "Ensoniq Soundscape" (which 
>incidently is my real sound card).
... and still works correctly?

> If I start Count Down and wait for the initial scream (yes, this is an interesting 
>game) to finish before pressing a key,
> the intro music and the sound is fine.  But if I interrupt the initial scream (i.e. 
>don't wait for it to finish before pressing a key), lots of sound
> (almost all the sound in the game) disappears and if there is any sound, it lasts 
>for a few seconds and then stops; with the into music, it skips
> entire segments and then stops :(  This game is commercial and is by Access 
>Software, which has been bought out by MS so I can't give it to you :(
> This behaviour occurs on the 2.4.7 kernel.
> If I use 2.4.3, Count Down _always_ stuffs up no matter what I do.
Wow, it looks like a problems with OSS drivers! I can't keep in secret
anymore the fact that I have done a lot of hacking on my pc-speaker
driver implementing such an unusual things like a non-blocking close
and sorting out a races before I managed to get it working correctly with
dosemu (while it used to work with all other apps long before that).
dosemu (my sound code) does a very weird things with a linux sound
driver, stressing it so high that if there are any hidden bugs or
semi-implemented features, they are going to be triggered and cause a
bad results.
Anyway, I would like to see a log of the sound events (-D9+S) to be sure
that it is not my fault:)

> Really Bad > 
> 
> Clyde's Revenge   no soundbombs out   locks up (dosemu 
>complains about vfree'ing something)
But vfree() is a kernel's internal function AFAIK and it have nothing to
do with dosemu! Apparently your driver is falling apart and can't satisfy 
the requirements of my sound code:( Only my pc-speaker can:)))
But show me the exact error message, please.
BTW, it would be *extremely* interesting if you try ALSA with OSS emulation
enabled to see how good is... ALSA:)

> Commander Keen 4  no soundlocks upno sound
I am still wondering what is going on with this keen. Could you please
upload it somewhere? Or, atleast, do a sound log?

> The latency is now very obvious in Liero, with an annoying 1/2 second
But is the 1/2 second delay is really so annoying???

> The clicking still happens in the game "Count Down".
Make a log. Maybe I will be able to diagnose a problem without having
a game itself.

> btw, I've found out when and why OMF2097 stutters. 
> (I'm using a Pentium II to give you an idea of how fast/slow my computer is)
I have the same with Athlon 700:(

> If I select "Sound Blaster (mono)" and then choose "Very High Quality"
> or "Ultra High Quality", it misses or repeats or a few beats.
> If I select "Sound Blaster (mono)" and then choose <= "High Quality", then it's fine.
> In an unpatched DOSemu 1.0.2.1, If  select "Sound Blaster Pro" and then
> choose "Ultra High Quality", there's not a problem.
And what about the latency with an unpatched dosemu?
BTW, I have the described above problem also with unpatched dosemu.

> So, I think your code is a little slow :(
This really seems like a performance problem. I am trying to do a smoother
transfers than the old code does, hence more overhead.
But, as I already said, I have this problem also with unpatched dosemu,
so... Maybe it is also due to a different kernel drivers: my driver is
extremely cpu-hungry.
BTW, when I decreased a sampling rate twice, OMF stops stuttering
and produced a perfect sound (not counting that it was twice as slow:)
so it is a performance problems for sure.
Anyway, setting OMF to High Quality solves the problem, so I am going
to leave it as it is.

> Segfaults have always been happening when a program tries to start
> with SB (even with unpatched dosemu 1.0.2.1).
But you missed the fact that it happens only with OMF and also it happens
if you disable sound in your dosemu.conf. So it is definitely not a bug in
my code and most likely a bug in OMF itself. It is trying to use SB even
if it is not present, but specified in OMF's setup. Not a good b

RE: DMA-Sound support in dosemu

2002-01-25 Thread Stas Sergeev

Hello.

"Vlad Romascanu (LMC)" wrote:
> you (the SB) can always deassert DRQ and the DMAC
> will actually check DRQ when reaching terminal-count, no?
Yes (even in auto-init I think, my docs are incomplete though), but how
to stop block DMA xfer when TC is not yet? I mean I can issue a "Pause"
command to DSP at any moment, and what DSP can do? Buffer the end
of the block?

> So even if you are in auto-init, the SB would still be able to "insert"
> transfer pauses (until its internal buffer is almost empty) during 
> auto-init DMA.
> Of course, all this assuming that pre-SB16 
> cards did have buffering (which is not so obvious).
I think (again, only my internal feeling:) that DSP simply asserts DRQ
with frequency equal to its sampling rate, so buffering is not necessary
(8-bit DMA transfers 1byte/request).
That is why I assume that block mode transfers are not possible here -
DRQ freq doesn't matter in this case and buffering the entire block is
not possible as you already mentioned.

> I have a good data-sheet from Intel from the DMAC -- I think I grabbed 
> it on ALSA (or was it Bochs?)  I can also e-mail it to you if you want.
This would be nice:)

> No, you pause DMA, do all the time-consuming double-buffer memory xfer, 
> then resume DMA and IRET.
But here you are probably talking about auto-init (for DSP), while ST3
uses single-cycle.

> Once the memory xfer is done (i.e. DMA has been
> resumed), the ISR doesn't really care about re-entrance anymore unless 
If we are talking about single-cycle (and atleast I am talking about it:)
then DMA will not start anyway until you have done everything so what
is the use of pausing it?

> or it's doing 10-byte long transfers between IRQs :)
... which is exactly what it does:)

> I'be been hacking away at NTVDM.EXE for quite a while.
Hmm... Do you have a sources for it or whatever??

> Yes, I have another thread for DMA.
> But I guess you have the advantage of being notified by the emulated 
> DMAC whenever data is to be transferred... or are you not?
No. Emulated DMAC doesn't control the transfer at all.
Transfer function is called ocasionally (on timer tick or on fault) and trying
to fill up an OSS buffer. So it is Linux driver who controls the transfer. If
there is some free space in linux buffer, I am transferring, if no - I am
waiting (actually it is simply a non-blocking write()).

> It's been one  year
> since I peeked at DosEmu, I guess many things have changed in that 
> interval too. :)
The short answer is... No, not at all:( Almost nothing (except for the 
current devcycle).

> I grab data every T milliseconds, where T self-adjusts between 
> user-define bounds (default 5 and 15ms).
I would expect this T to actually depend of a sampling rate:)
And how many data you are transferring at once?
OSS manual recommends to transfer a one full fragment per one write()
call, so I am very limited here... I am ignoring this recommendation, of
course, but this makes some drivers to work unreliably:(

I wonder if I can steal some OPL code from your emulator? Does it produce
a digital sound, or it uses a midi capabilities for output?
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: nvidia cards?

2002-02-01 Thread Stas Sergeev

Hello.

"bascule" wrote:
> hi, i've joined this list to see if i can get some help on getting dosemu to 
> work - or rather to play 'monkey isalnd 2', i run mandrake 8.1 plus 
> cooker enhancements i.e. bits if it are bleedin edge:-) dosemu version is 
> 'dosemu-1.0.1-8mdk',
Have you tried Mandrake's bugzilla? The better way to get some help here
is to use a self-compilled (with debug info) latest version of dosemu.

> 'xdos' fom a console 
> leaves the following output:
> ERROR: cpu exception in dosemu code outside of VM86()!
> Page fault: write instruction to linear address: 0x1cadaf74
> CPU was in user mode
> Exception was caused by non-available page
xdos must not be started from a console, but this page fault is interesting
anyway. Could you provide a stack trace with gdb at a crash point?

> given that i have a sblive with no dos drivers i was rather hoping that 
> dosemu might be a way to get sound in the game!
This is possible, but you will most likely have to apply some patches
for that.

> $_dpmi = (4096) # in Kbyte
Setting it to at least 16Mb is highly recommended for most games.

> $_sound = (off) # sound support on/off
And how are you going to get any sound with the settings like this one?:)
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: nvidia cards?

2002-02-02 Thread Stas Sergeev

Hello.

"bascule" wrote:
>> is to use a self-compilled (with debug info) latest version of dosemu.
> i tried compiling the latest mandrake src.rp, it didn't run, i'll 
> recompile and post the error
I mean sources from ftp.dosemu.org/pub/dosemu/Development
And, if you need sound, then patches from 
ftp.dosemu.org/pub/dosemu/testing
and some additional patches like
www.dosemu.org/~stas/sound-patch8-1.1.2.8.tar.gz

>> This is possible, but you will most likely have to apply some patches
>> for that.
> ah, new territory for me!
Get used to it: this is a fastest way of updating software. Otherwise you
can wait several month (or years?) until MDK releases a new version.

> > > $_sound = (off) # sound support on/off
> > And how are you going to get any sound with the settings like this 
> > one?:)
> i turned it off in an attempt to rule out sound as a point of failure!
You'd better turn off sound in your game's setup, otherwise you'll
get additional problems.

> ok, i assume by debug you mean running xdos (or dos) -o somefile?
This is a way to create a log file, but to find out where your dosemu
gets a page fault, you have to start your xdos from within gdb, and
when dosemu crashed, you must do 'bt' to make a stack backtrace.

> i couldn't find anything about a debug compile option
When you do ./default-configure in your source tree, you have to
specify a parameter '--enable-dodebug' (i.e. 
./default-configure --enable-dodebug )
Otherwise a stacktrace is useless.

> is there any other info i can give?
Have you tried starting dos (not xdos) from a console (not KDE konsole)
with root priveledges (suid-root)?
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: random reboots

2002-02-09 Thread Stas Sergeev

Hello.

Jacob Perkins wrote:
 > Whenever I run dosemu-freedos 1.0.2.1 it will eventually
 > cause my
 > computer to reboot.  I'm running Gentoo Linux with kernel
 > 2.4.17 with preempt patch.
Due to an obvious bug in the latest 2.4 kernels, dosemu can 
easily cause the system to panic. Generally it only oopses, 
but maybe with preempt patch it reboots instead.
Try the attached fix.
No guarantee that it will fix your particular problem (I've 
seen only oopses, lots of them, but no reboots) but it might 
fix the segfaults (but not page faults) on startup and some 
other crap people lately observed with dosemu.


--- linux/arch/i386/kernel/traps.c  Sun Sep 30 23:26:08 2001
+++ linux/arch/i386/kernel/traps.c  Sat Feb  9 02:48:31 2002
@@ -269,8 +269,12 @@
 static void inline do_trap(int trapnr, int signr, char *str, int vm86,
   struct pt_regs * regs, long error_code, siginfo_t *info)
 {
-   if (vm86 && regs->eflags & VM_MASK)
-   goto vm86_trap;
+   if (regs->eflags & VM_MASK) {
+   if (vm86)
+   goto vm86_trap;
+   else
+   goto trap_signal;
+   }
if (!(regs->xcs & 3))
goto kernel_trap;
 



Re: Bug Report: (CRASH) Exception Caused By Non-Available Page (During Runtime)

2002-02-10 Thread Stas Sergeev

Hello.

Megas of Vecanti wrote:
> I doubt that it's 2.4-specific, then-Since I've seen this page fault 
> happen even back when I was running 0.98 on 2.2 kernels!
You are right, it is not:(

> I'll probably try Mr. Sergeev's kernel patch, though.
No need: I explicitly stated in brackets that it doesn't fix page faults
(neither at startup nor at runtime).

> But I don't 
> like patching my kernel for ANY reason, so it'll be a tough decision to 
> make just for DOSEMU...
This patch touches only vm86 part of the kernel, which is used *only* by
dosemu. So even if the patch is incorrect, it will break only dosemu.
But it will not fix your problem anyway, so...

BTW, your program (MegaZeux) uses DPMI, right? In this case 
you are out of luck, I suppose, as there is currently no 
active DPMI maintainer AFAIK.
And if it doesn't use DPMI, it is worth to have a look at.



-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Bug Report: (CRASH) Exception Caused By Non-Available Page (During Runtime)

2002-02-10 Thread Stas Sergeev

Hello.

"Stas Sergeev" wrote:
> BTW, your program (MegaZeux) uses DPMI, right? In this case 
> you are out of luck, I suppose, as there is currently no 
> active DPMI maintainer AFAIK.
> And if it doesn't use DPMI, it is worth to have a look at.
Hmm, it doesn't seem to use DPMI and the crash is really 100%
reproduceable - very good point to get it fixed:)
I'll have a closer look at it within a few days (if noone will
do it sooner:) to see what the problem is and if it is possible
to do somethihg with it...
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re:

2002-02-21 Thread Stas Sergeev

Hello.

Boris wrote:
> That sound patch from stas works great.
Thanks :)

> -Their seems to be abit of a bug in it though.
I would be happy if there is only one bug, but
in fact there are many more right now (development
stage). I was updating the patch rather frequently,
but now I am slightly out of time, so it wasn't
updated last week. I am going to update it at a
weekend to fix some of the reported issues.

> I have the shareware
> version of Fatty Bears Birthday Surprise with plays audio and when the
> character speaks, I hear the voice when they speak the first sentence 
> but
> then it goes to the next sentence, I hear nothing.
There are 2 ways of getting such bugs fixed:
- You can produce and mail me a log (-D9+S), and this
can probably help me to diagnose and fix the problem.
- You can upload the game itself on an FTP and
mail me a link so that I can have a look at it.
There are also some known problems with the SB emu,
that can't be fixed in a short term, so no guarantee
that your particular game will work.
Big note: There are many bugs in the OSS sound
drivers that can prevent SB emu from working
correctly. I am going to make it more OSS-friendly,
but only a software mixing layer can really fix
all the issues with the OSS/Free.

> -The third is that when tring to run doom1,doom2, It loads the data, 
> but
> *always* halts when setting up the "I_StartupTimer().
If you try it on an older (eg. 1.0.2) dosemu, it will
lock up even earlier, so some work was done on it, but
the problem is not fully resolved yet.

> This is when
> sound[Sound FX] is turned on. When I turn sound off, It works no 
> problem.
> Any ideas how to fix that? That would be a plus.
This was discussed a lot in this list. The problem
was explained by Vlad Romascanu and there were some
workarounds proposed here as well as privately in
my mailbox. I liked the idea of switching to CPUemu
when interrupts are disabled (propossed by Steffen),
but switching to/from CPUemu under DPMI doesn't seem
to be possible right now...
Another proposed workaround was to do a run-time code
patching to eliminate the evil cli instructions, but
I am suspicious about this one...
Anyway, for now you can use CPUemu to play Doom2.
This is slow and unreliable, but currently it seems
to be the only way to get this game running with
sound.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re:

2002-02-21 Thread Stas Sergeev

Hello.

Boris wrote:
> -The third is that when tring to run doom1,doom2, It loads the data, 
> but
> *always* halts when setting up the "I_StartupTimer().
Almost forgot: several month ago I have already implemented
one of the possible workarounds (not the best one though) 
and it works. Revisit my page at dosemu.org (and also get a 
new sound patch there:)


-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re:

2002-02-24 Thread Stas Sergeev

Hello.

> file-->save-->1.txt, It says "Edit was unable to find the 
> path 'C:\1.txt".
> I can't seem to create new files. I can open up an
> existing file and save
> it. It just has problems saving new files. Any ideas on
> how to fix that?
I wonder if a log (something like -D9+dRW) can shed some
light on the problem?

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: emu serial port help

2002-02-24 Thread Stas Sergeev

Hello.

gobo wrote:
> trying to access com1 (3f0 - 3ff)under dosemu.  i've
> given dosemu access to that address range.
dosemu emulates serial ports, so no need to use a direct
access. Have you tried a $_comX settings in dosemu.conf?

> no matter
> what i try, i can't get to the ports.
You can't use a direct access to serial ports because
linux kernel already controls it.

> if i run as a
> user, it complains about not being able to build the
> lock file.  if i run as suid root, dosemu says not to
> do this.
Both problems were already fixed, upgrade your dosemu
from 1.0.2 to something more modern (unfortunately the
problem with lock files was fixed only in a devel branch,
so you will have to upgrade to a devel version I suppose).

> is there a magic combination that will work?
Yes and it is not magic at all. By trying a direct access
you made a problem for yourself that wasn't existed
initially:)
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Sound+dpmi patch

2002-02-25 Thread Stas Sergeev

Hello.

Boris wrote:
> So is something wrong with the DPMI part of dosemu that
> haults Doom2?
This patch simply measures a time period of a disabled interrupts
and re-enables them in case of a timeout (timeout is set in
a $_features, my recommendation is 200 usecs).
Doom2 needs this because it uses a popf instr to enable the
ints, which doesn't touch the IF flag because IOPL < CPL and 
doesn't generate an exception due to a 
bug/limitation/feature of an Intel's CPUs.
But force re-enabling the interrupts can hurt other programs
esp. given the current state of the dosemu's PIC code (badly 
broken), that is one problem.
The other problem is that 200us timeout is OK for Doom2
(but as you told, it stutters) but probably not OK for
some other progs and you will have to calibrate it in your
dosemu.conf.

> If so, why is it a dangerous hack and why not put it into
> the main source [and not have to use the features option to set it?].
Right, of course it doesn't hurt unless explicitly enabled.
The reason why it is still not in the mainstream (atleast
why I haven't submitted it) is because I have to try some
other ways of solving this problem.
For example we can do a blacklist of a cli unstructions
that have triggered an extended timeout (1 sec for ex)
and ignore (rather than patching out) that cli's for the 
subsequent passes. That will (atleast theoretically) allow 
to get rid of the both stated above problems.

> Also, It says that the sound patch emulates a SB Pro,
... which still have some problems... Classic SB, however,
is emulated nearly perfectly now, speaking about its DSP.

> Does it do MIDI 
> yet?
OKey, the confusion here is that my patch deals only with
the following subsystems: SB DSP, SB Mixer and DMA. Other
parts (such as MPU401 and OPL) are yet out of the scope.
So, for MIDI you can use an MPU401 which used to work nearly
perfectly for years in dosemu but you'll need a built-in 
MIDI support in your sound card and /dev/midi configured.
OPL is not supported yet, but I have some plans on supporting
it in the future (with the MAME OPL2 emulator, I think).

> a midi hack would be excellent too. :)
The midi "hack" is not trivial to hack it in:) Even with the
ready-for-use MAME OPL emu, we still need a software mixing
layer to get it working together with a digital sound.

> Is the IPX part of dosemu broken? It would be nice to get 
> IPX
> applications working and have network games. :) I will send the
> information to stas about the dosemu information when running these
> programs.
No need: I have never dealt with dosemu's IPX support. So try
dosemu-bugs mailing list CC'ing here at the same time, and 
maybe someone will pick it up. There are many developers 
that are silent in this list, but reading it.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: cdrom question

2002-02-27 Thread Stas Sergeev

Hello.

Peter Jay Salzman wrote:
>C:\>mscdex /D:MSCD0001 /L:E
>Not enough drive letters available
> can someone help me resolve this error message? 
Have you tried something like LASTDRIVE=Z adding in your 
config.sys?

> i never really used
> DOS, so i don't grok things very well.
For most Linux users DOS is mostly a legacy and dosemu helps
them to continue using what they could have lost otherwise
(for me it is a special backup hardware that doesn't have
a linux drivers).
But I am a bit curious about a reason why the one can
*start* using DOS under dosemu? The only reason I can
imagine is a good old dos games:)


-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: cdrom question

2002-03-06 Thread Stas Sergeev

Hello.

Peter Jay Salzman wrote:
> unfortunately, the system freezes up for something like 30 seconds when
> the cdrom is first accessed (or when i do a DIR in a cd directory that
> hasn't been cached yet).
Are you using a redirector to access your
cd, or dosemu's cdrom.sys?
With cdrom.sys this takes no more than about a 5 seconds for
me, but mounting my cd-rom takes just about
as many time, so I don't think it is a dosemu-related
probelm.
30 sec is really seems too long, but how long does
it take to mount your cd?

> i'm going to try installing the sound
> patches next (unless someone tells me that the next version of dosemu
> along with the patches will be released soon).
Go for trying it, as they will not:)
Maybe they will be included during the next
devcycle, but not in the current one, I think.

> i can't even play tomb raider on
> it because it doesn't support her ESS sound chipset...  i was hoping to
> play this game under dosemu.
I don't know about a tomb raider, but I have recently
made Duke3d and some other ID games working, so I can
hope that tomb raider will work as well. Just give it
a try with my latest patches.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Cannot get raw serial port access ...

2002-03-17 Thread Stas Sergeev

Hello.

Bryan J. Smith wrote:
> Tried this under both DOSEmu 1.0.2 and 1.1.1.
Try 1.1.2 (or, better, even 1.1.2.9)

> 1.  Run as su'ed root (so I can access /dev/ttyS0)
> 2a.  Set $_com1 = "/dev/ttyS0"
> 2b.  Set $_ports = "device /dev/ttyS0 range 0x3F8,0x3FF"
> If I don't do #1, I get an error on DOSEmu start when I try to control
> /dev/ttyS0.
Was fixed in 1.1.2.

> If I don't do #2a or #2b, I get an error in the program
> that the COM port is inaccessable.
2a is the right way, 2b will not work.

> The program works perfectly under both _except_ for
> COM access.  I'll just get a "blank" terminal screen in the program
> under DOSEmu -- no communication, although the port is accessable
> (otherwise, I get an error).
Try 1.1.2.9 - it have some fixes for serial ports
interrupt handling.

> I guess the COM ports registers/status
> bits are still being emulated somehow?
Right, they are (in case of 2a).
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Slow loading

2002-03-19 Thread Stas Sergeev

Hello.

Johan Gill wrote:

> I have Dosemu 1.1.3 installed, under which I run Msdos 6.
> I am trying to run Star Trek 25th Anniversary, CD version on this 
> setup,
> with all sound disabled. It works, but it loads REALLY slowly, about 10
> minutes to get it going. How comes?

$_hogthreshold now behaves differently, recalibrate

(increase the value).



-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Printing Problem

2002-03-20 Thread Stas Sergeev

Hello.

Suporte wrote:
> Problem:
> The Dosemu starts to send the report for the spool of Linux(lpt1) before
> the application finishes to generate the report, with this, the report
> is printed in parts without control.
> How to leave printer_timeout infinite? ==>  This resolve?
You mentioned that your program generates a report
for a 5 minutes, which seems to be unreasonably
long. Is it so also in a pure dos, or such a slowdown
is dosemu-specific?
If it is dosemu-specific, then you should try to
increase a $_hogthreshold value to make a faster
processing, so you will probably not trigger a
timeout then.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Dosemu Crash

2002-03-20 Thread Stas Sergeev

Hello.

Dosemu List wrote:
> I use dosemu-1.0.2.1 from Debian...really nice product !
You may want to upgrade to dosemu-1.1.3

> Mar 19 15:14:47 costes kernel: invalid operand: 
> Mar 19 15:14:47 costes kernel: CPU:0
> Mar 19 15:14:47 costes kernel: EIP:
> Mar 19 15:14:47 costes kernel: Code:  Bad EIP value
This seems like a problem with the latest
2.4 kernels.
Get a kernel patches from
www.dosemu.org/~stas
and see if it fixes the Oops.
Of course it will not solve your IPX
problems, but atleast your kernel must
not "execute an invalid opcode" anymore
with them applied.

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Dosemu Crash

2002-03-21 Thread Stas Sergeev

Hello.

Dosemu List wrote:
>> This seems like a problem with the latest
>> 2.4 kernels.
> I have the dosemu 1.1.3 with the patch for 2.4 kernel but now the 
> system is block
> when I have a pb and I am oblige to do a kill .
Do you mean dosemu gets blocked, not the whole
system I guess, else how can you do 'kill'?
How are you starting dosemu? In console, in
xterm or under X like xdos?
Have you tried Ctrl-Alt-PgDn instead of kill?
Have the Oops disappeared?
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: 1.1.3 doesn't compile

2002-03-22 Thread Stas Sergeev

Hello.

Witold Filipczyk wrote:
> And now a few programs, that don't work as they should:
> R80 - Spectrum emulator - any keypress cause exit with General 
> Protection Fault.
Yes, DPMI gets broken in 1.1.3 somehow:(
It must (and hopefully will) be fixed,
but I've no idea when:)
Try the attached patch, please
(don't forget `make clean` after
applying it).

> Pair Tetris - game from PTS-DOS - no sound, pieces don't moves down.
Do you mean it used to work with sound
under dosemu before 1.1.3?


--- src/base/dev/pic/pic.c  Tue Mar 19 19:45:50 2002
+++ src/base/dev/pic/pic.c  Tue Mar 19 19:54:14 2002
@@ -806,7 +806,7 @@
 #endif
  if(pic_ilevel < 16) pic_push(pic_ilevel);
  if (in_dpmi) {
-  run_pm_int(intr);
+  run_pm_int(intr, 1);
  } else {
 #ifndef USE_NEW_INT
   pic_cli();
--- src/dosext/dpmi/dpmi.h  Tue Mar 19 19:45:49 2002
+++ src/dosext/dpmi/dpmi.h  Tue Mar 19 19:56:56 2002
@@ -37,6 +37,7 @@
 EXTERN int in_win31 INIT(0);   /* Set to 1 when running Windows 3.1 */
 EXTERN int dpmi_eflags INIT(0);/* used for virtual interruptflag and pending 
interrupts */
 EXTERN int in_dpmi_dos_int INIT(0);
+EXTERN int in_dpmi_hw_int INIT(0);
 EXTERN int in_dpmi_timer_int INIT(0);
 EXTERN int dpmi_mhp_TF INIT(0);
 EXTERN unsigned char dpmi_mhp_intxxtab[256] INIT({0});
@@ -47,7 +48,7 @@
 void dpmi_fault(struct sigcontext_struct *);
 #endif
 void dpmi_realmode_hlt(unsigned char *);
-void run_pm_int(int);
+void run_pm_int(int, int);
 void run_pm_mouse();
 void fake_pm_int(void);
 
--- src/dosext/dpmi/dpmi.c  Tue Mar 19 19:45:51 2002
+++ src/dosext/dpmi/dpmi.c  Tue Mar 19 21:01:00 2002
@@ -2016,8 +2016,9 @@
  * DANG_END_FUNCTION
  */
 
-void run_pm_int(int i)
+void run_pm_int(int i, int async)
 {
+  unsigned short CLIENT_PMSTACK_SEL;
   us *ssp;
 
 #ifndef USE_NEW_INT
@@ -2044,9 +2045,19 @@
 return;
   }
 
-  if (dpmi_stack_frame[current_client].ss == PMSTACK_SEL)
+  if (async && !in_dpmi_hw_int) {
+D_printf("DPMI: Switching to locked stack\n");
+CLIENT_PMSTACK_SEL = PMSTACK_SEL;
+  }
+  else {
+D_printf("DPMI: Not switching to locked stack, in_dpmi_hw_int=%d\n",
+  in_dpmi_hw_int);
+CLIENT_PMSTACK_SEL = dpmi_stack_frame[current_client].ss;
+  }
+
+  if (dpmi_stack_frame[current_client].ss == PMSTACK_SEL || in_dpmi_hw_int)
 PMSTACK_ESP = client_esp(0);
-  ssp = (us *) (GetSegmentBaseAddress(PMSTACK_SEL) +
+  ssp = (us *) (GetSegmentBaseAddress(CLIENT_PMSTACK_SEL) +
(DPMIclient_is_32 ? PMSTACK_ESP : (PMSTACK_ESP&0x)));
 /* ---
| 000FC925 | <- ssp here, executes pm int
@@ -2087,10 +2098,12 @@
   }
   dpmi_stack_frame[current_client].cs = Interrupt_Table[i].selector;
   dpmi_stack_frame[current_client].eip = Interrupt_Table[i].offset;
-  dpmi_stack_frame[current_client].ss = PMSTACK_SEL;
+  dpmi_stack_frame[current_client].ss = CLIENT_PMSTACK_SEL;
   dpmi_stack_frame[current_client].esp = PMSTACK_ESP;
   if (i == 0x08 || in_dpmi_timer_int) in_dpmi_timer_int++;
   in_dpmi_dos_int = 0;
+  if (async || in_dpmi_hw_int)
+in_dpmi_hw_int++;
 #ifdef USE_NEW_INT
   dpmi_cli();
 #endif /* USE_NEW_INT */
@@ -2200,7 +2213,7 @@
  case 0x1c:/* ROM BIOS timer tick interrupt */
  case 0x23:/* DOS Ctrl+C interrupt */
  case 0x24:/* DOS critical error interrupt */
-   run_pm_int(VM86_ARG(retval));
+   run_pm_int(VM86_ARG(retval), 0);
break;
  default:
 #ifdef USE_MHPDBG
@@ -2506,6 +2519,7 @@
   in_dpmi++;
   in_win31 = 0;
   in_dpmi_dos_int = 0;
+  in_dpmi_hw_int = 0;
   pm_block_root[current_client] = 0;
   memset((void *)(&realModeCallBack[current_client][0]), 0,
 sizeof(RealModeCallBack)*0x10);
@@ -2983,6 +2997,13 @@
 
 } else if (_eip==DPMI_OFF+1+HLT_OFF(DPMI_return_from_pm)) {
   D_printf("DPMI: Return from protected mode interrupt handler\n");
+ if (in_dpmi_hw_int) {
+   in_dpmi_hw_int--;
+   if (!in_dpmi_hw_int && _ss != PMSTACK_SEL) {
+ error("DPMI: Client's PM Stack corrupted!\n");
+ leavedos(91);
+   }
+ }
 /* ---
|(000FC925)|
|(dpmi_sel)|



Re: dosemu: versions: still com ports

2002-03-22 Thread Stas Sergeev

Hello.

> I am wondering about the versions of dosemu. Somebody suggested I use
> dosemu-1.1.3. However, while i did find a redhat package with this 
> version number,
You are definitely confusing something -
pre-packaged dosemu-1.1.3 must not exist.
Could you provide a link to where you've seen it?

> My present version is 1.0.2, and this also 
> appears to
> be the latest stable version at dosemu.org.
This is almost true, however there is a fix
version 1.0.2.1.

> Can somebody explain this 
> to me?
Your statement about rpm'ed version of 1.1.3
seems really unexplainable to me...

> Also, I am still trying to figure out what permissions root has that I 
> don't
> have that is allowing root to work the com ports in dosemu while I 
> still can't.
You will be figuring that out probably for
eternity unless you upgrade to atleast 1.1.2 :)
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: dosemu-1.1.3 and Novell vlm.exe

2002-03-25 Thread Stas Sergeev

Hello.

Grigory Batalov wrote:
>  Ok, DR-DOS 7.03 works little better, vlm is working. But dosemu
>  crashes when I start FoxPro 2.6/DOS:
> DPMI: realmode hlt: 0xfc920
> DPMI: switching from real to protected mode
>  DPMI: Free Mem Blk. for handle 0003
> MAPPING: free, cap= DPMI, addr=0x404ad000, mapsize=6ed000
> DPMI: msdos_fault, err=0
It is unclear from this log (add +r option to
see also PIC events), but seems like the famous
dpmi problem.
Try the attached patch (several people reported
success with it). Also try PIC patches from
www.dosemu.org/~stas
It would be better to apply them together with
this one, but then you'll have to resolve a
trivial reject (apply PIC patches at first).



--- src/base/dev/pic/pic.c  Tue Mar 19 19:45:50 2002
+++ src/base/dev/pic/pic.c  Tue Mar 19 19:54:14 2002
@@ -806,7 +806,7 @@
 #endif
  if(pic_ilevel < 16) pic_push(pic_ilevel);
  if (in_dpmi) {
-  run_pm_int(intr);
+  run_pm_int(intr, 1);
  } else {
 #ifndef USE_NEW_INT
   pic_cli();
--- src/dosext/dpmi/dpmi.h  Tue Mar 19 19:45:49 2002
+++ src/dosext/dpmi/dpmi.h  Tue Mar 19 19:56:56 2002
@@ -37,6 +37,7 @@
 EXTERN int in_win31 INIT(0);   /* Set to 1 when running Windows 3.1 */
 EXTERN int dpmi_eflags INIT(0);/* used for virtual interruptflag and pending 
interrupts */
 EXTERN int in_dpmi_dos_int INIT(0);
+EXTERN int in_dpmi_hw_int INIT(0);
 EXTERN int in_dpmi_timer_int INIT(0);
 EXTERN int dpmi_mhp_TF INIT(0);
 EXTERN unsigned char dpmi_mhp_intxxtab[256] INIT({0});
@@ -47,7 +48,7 @@
 void dpmi_fault(struct sigcontext_struct *);
 #endif
 void dpmi_realmode_hlt(unsigned char *);
-void run_pm_int(int);
+void run_pm_int(int, int);
 void run_pm_mouse();
 void fake_pm_int(void);
 
--- src/dosext/dpmi/dpmi.c  Tue Mar 19 19:45:51 2002
+++ src/dosext/dpmi/dpmi.c  Tue Mar 19 21:01:00 2002
@@ -2016,8 +2016,9 @@
  * DANG_END_FUNCTION
  */
 
-void run_pm_int(int i)
+void run_pm_int(int i, int async)
 {
+  unsigned short CLIENT_PMSTACK_SEL;
   us *ssp;
 
 #ifndef USE_NEW_INT
@@ -2044,9 +2045,19 @@
 return;
   }
 
-  if (dpmi_stack_frame[current_client].ss == PMSTACK_SEL)
+  if (async && !in_dpmi_hw_int) {
+D_printf("DPMI: Switching to locked stack\n");
+CLIENT_PMSTACK_SEL = PMSTACK_SEL;
+  }
+  else {
+D_printf("DPMI: Not switching to locked stack, in_dpmi_hw_int=%d\n",
+  in_dpmi_hw_int);
+CLIENT_PMSTACK_SEL = dpmi_stack_frame[current_client].ss;
+  }
+
+  if (dpmi_stack_frame[current_client].ss == PMSTACK_SEL || in_dpmi_hw_int)
 PMSTACK_ESP = client_esp(0);
-  ssp = (us *) (GetSegmentBaseAddress(PMSTACK_SEL) +
+  ssp = (us *) (GetSegmentBaseAddress(CLIENT_PMSTACK_SEL) +
(DPMIclient_is_32 ? PMSTACK_ESP : (PMSTACK_ESP&0x)));
 /* ---
| 000FC925 | <- ssp here, executes pm int
@@ -2087,10 +2098,12 @@
   }
   dpmi_stack_frame[current_client].cs = Interrupt_Table[i].selector;
   dpmi_stack_frame[current_client].eip = Interrupt_Table[i].offset;
-  dpmi_stack_frame[current_client].ss = PMSTACK_SEL;
+  dpmi_stack_frame[current_client].ss = CLIENT_PMSTACK_SEL;
   dpmi_stack_frame[current_client].esp = PMSTACK_ESP;
   if (i == 0x08 || in_dpmi_timer_int) in_dpmi_timer_int++;
   in_dpmi_dos_int = 0;
+  if (async || in_dpmi_hw_int)
+in_dpmi_hw_int++;
 #ifdef USE_NEW_INT
   dpmi_cli();
 #endif /* USE_NEW_INT */
@@ -2200,7 +2213,7 @@
  case 0x1c:/* ROM BIOS timer tick interrupt */
  case 0x23:/* DOS Ctrl+C interrupt */
  case 0x24:/* DOS critical error interrupt */
-   run_pm_int(VM86_ARG(retval));
+   run_pm_int(VM86_ARG(retval), 0);
break;
  default:
 #ifdef USE_MHPDBG
@@ -2506,6 +2519,7 @@
   in_dpmi++;
   in_win31 = 0;
   in_dpmi_dos_int = 0;
+  in_dpmi_hw_int = 0;
   pm_block_root[current_client] = 0;
   memset((void *)(&realModeCallBack[current_client][0]), 0,
 sizeof(RealModeCallBack)*0x10);
@@ -2983,6 +2997,13 @@
 
 } else if (_eip==DPMI_OFF+1+HLT_OFF(DPMI_return_from_pm)) {
   D_printf("DPMI: Return from protected mode interrupt handler\n");
+ if (in_dpmi_hw_int) {
+   in_dpmi_hw_int--;
+   if (!in_dpmi_hw_int && _ss != PMSTACK_SEL) {
+ error("DPMI: Client's PM Stack corrupted!\n");
+ leavedos(91);
+   }
+ }
 /* ---
|(000FC925)|
|(dpmi_sel)|



Re: Slow loading examined

2002-03-25 Thread Stas Sergeev

Hello.

Johan Gill wrote:
> This is the symptom: Dosemu seems to lock up for some time when the 
> game
> is supposed to read from CD. Refreshing of the Dosemu X window stops 
> for at least half a minute.
Try starting xdos from within gdb and
interrupt it with ^c when it locks. Then
you can do a stack trace and see where
it is sitting.

> However, if I do 'make install' in a source 
> tree,
> or something else to keep the disk busy, CD I/O is much faster.
Then this is more likely not dosemu problem.
I have similar problem with network cards:
the communication is deadly slow (telnet's
echo appears 1-2 minutes after typed), but
if I do a flood ping in parallel, then
everything works without any slowdown.
(yes, this is not a joke about flood ping).
Linux's hardware drivers are full of the
curious things:(
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Sherlock - an old DOS game

2002-03-26 Thread Stas Sergeev

Hello.

Jim Hartley wrote:
> I have an old DOS game called Sherlock which I would like to run under
> Dosemu. It does not work, just hangs up
Just started it under xdos (dosemu-1.1.3),
and it works perfectly.
Console dosemu currently doesn't work for
me, but I am sure that if the program works
under xdos, it must also work under console.
We are probably talking about different
sherlocks however. My sherlock is a logic
puzzle game.

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Sherlock - an old DOS game

2002-03-27 Thread Stas Sergeev

Hello.

Jim Hartley wrote:
> So what's the trick? You say "xdos" ... does that mean I use "xdosemu" 
> to run it?
Yes. "xdosemu" is a link to a startup script
called "dosemu", but it makes sense which one
to start.
xdos is a link to a binary called "dos", which
was used in older dosemu versions and still
works for me (you probably don't have it, so use
xdosemu).

> And you mention 1.1.13
I think I mentioned 1.1.3 :)

> that's a development version, not a
> "stable" version, right?
Right, but it is hard to say which one is really
stable. They both have some known bugs, but my
personal opinion is that 1.1.3 is more stable
than 1.0.2.1 in many cases except DPMI support.
Atleast it closes many known bugs from 1.0 branch.

> But I guess I can get it and try it if it will 
> help
If you have graphics at least in a single game
but not in sherlock, then yes, go ahead and try
1.1.3.
But if you can't get any graphics at all, then
better focus on some docs to find out what are
you doing incorrectly.
In general x-dos must open a separate window
called something like "DOS in X Box". If your
dos starts up directly in xterm instead, then
you have problems.

> I assume I'll have to build it from a source tarball?
Yep.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Dosemu general protection error

2002-03-27 Thread Stas Sergeev

Hello.

> I'm running MSDos 6.2 on dosemu 1.0.2. The program asm5600.exe, which
> runs in native dos, causes the below error message when run in dosemu.
Just tried under PC-DOS 7.0, dosemu-1.1.3:
Motorola DSP56000 Assembler  Version 5.3.20
Copyright Motorola, Inc. 1987-1994.  All rights reserved.


So it works, which likely means that
you have something wrong in your dosemu
config file. Maybe not enough XMS/EMS/DPMI
memory specified. Or maybe you need dosemu-1.1.3

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: dosemu-1.1.3 and Novell vlm.exe

2002-03-27 Thread Stas Sergeev

Hello.

Grigory Batalov wrote:
> I.  Dosemu-1.1.3 and freedos still crashes while loading vlm:
> ERROR: general protection at 0x20360: 50
> Program=do_vm86.c, Line=389
Make sure you have enough XMS/EMS/DPMI memory
configured.

>> It would be better to apply them together with
>> this one, but then you'll have to resolve a
>> trivial reject (apply PIC patches at first).
>   I've done this.
Any noticeable changes? (maybe not only with vlm)

> 2. hangs after some period of inactivity. Can be killed, not loads CPU.
Maybe it just gets very slow, but not hangs?
Try increasing $_hogthreshold value (or set it
to 0).

> 3. crashes in different places while loading or working in FoxPro 
> 2.6/DOS.
You didn't mentioned that it used to work sometimes.
At this point the log (-D9+Mr) would be good.
Btw, Sergey Suleymanov suggests to comment out
the line "pic_request (PIC_IPX);" from
src/arch/linux/async/signal.c.
Try this and if it works, then you have nothing
to do except waiting until this is fixed
(probably during the current devcycle).
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Printing Problem

2002-03-28 Thread Stas Sergeev

Hello.

Suporte wrote:
> send directly for the LTP1, the dosemu close job and sends a piece of
> the archive for the spool of the Linux.
> Because the Dosemu does not wait that the application finishes the
> execution of the report to order job for the spool of the Linux?
> What I can modify in source of dosemu to resolve this problem?
This subject is rather old and you already
have been suggested what is to modify in source.
But one thing still puzzles me here, so I am
wondering:
Of course you have tried increasing
$_printer_timeout value in your config file,
havent you? Does this help?
If not, then it is probably a bug that must
be fixed.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Installing dosemu-1.0.2.tgz?

2002-04-22 Thread Stas Sergeev

Hello.

Felix Karpfen wrote:
> My remaining question is, are there benefits from overwriting the
> installed (already-working) dosemu-1.0.2 by the compiled version?
The benefit is that you can compile something
more modern instead of your 1.0.2, which is
known to be buggy. And also you will be able
to manually include any patches you want
(like for ex. new Sound Blaster emulation:)
Compiling the same 1.0.2 will unlikely to make
any noticeable difference though.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: dosemu-1.1.3 and Cyrillic_er

2002-04-23 Thread Stas Sergeev

Hello.

Sergey Suleymanov wrote:
>  Grigory> looks like 'P') when in X.  Some time ago I got patch from
>  Grigory> Sergey Suleymanovor for dosemu-1.0.2 that fixes problem for
>  Grigory> 1.0.2 version. Maybe such patch exist for 1.1.3?
> Just for 1.1.2 + Eric's patch.
I think that this Eric's patch (was in this
list: "Add koi8-r support for the russion hackers")
went in dosemu-1.1.2.8, so why not?
Or do you mean some other Eric's patch that
wasn't in this list?
And where is this glorious patch of yours?
Having a proper keymap could be very handy.

I was not reading this list for a long time so
I probably have missed something in this thread.
But as this subject is rather important for me,
I have to pick up this old message.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: dosemu-1.1.3 and Cyrillic_er

2002-04-23 Thread Stas Sergeev

Hello.

Sergey Suleymanov wrote:
> Stas> And where is this glorious patch of yours?  Having a proper
>  Stas> keymap could be very handy.
> Well, here is it. (for 1.1.3)
Thanks, it works.
But one thing is strange: when I use a native
X switch (Xkb) to switch to Cyrillic, everything
works OK except the BackSpace key.
When I use a dos switch (KeyRus), everything
works OKey. So I suspect the problem is in
your patch somewhere.
For testing I wrote this prog:
---
#include  
#include  
 
int main() { 
 for (;;) 
   printf("%i\n",bioskey(0)); 
}
---

When Xkb is in US mode, this program shows
3592 when BackSpace is pressed (KeyRus state
is irrelevant). When Xkb is in RU mode,
program shows 3711 at BackSpace, which is not
correct.
All other keys seem to work good.
Under console also everything works, the
bug triggers only in X mode.
Any ideas why this happens with BackSpace?
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: dosemu-1.1.3 and Cyrillic_er

2002-04-23 Thread Stas Sergeev

Hello.

Stas Sergeev wrote:
> Sergey Suleymanov wrote:
>> Stas> And where is this glorious patch of yours?  Having a proper
>>  Stas> keymap could be very handy.
>> Well, here is it. (for 1.1.3)
> Any ideas why this happens with BackSpace?
Well, turning off X_keycode "fixes" the
problem.
Can live with this:)
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: dosemu-1.1.3 and Cyrillic_er

2002-04-24 Thread Stas Sergeev

Hello.

Sergey Suleymanov wrote:
>>> Any ideas why this happens with BackSpace?
>  Stas> Well, turning off X_keycode "fixes" the problem.  Can live with
>  Stas> this:)
> Hmm, can't reproduce that :(. 3592 in both modes.
Well, I have investigated a little more
and found that the attached patch fixes
the problem. Actually only the change to
altgr table is enough.
Does this help?
Why 127 is there?


--- src/plugin/kbd_unicode/keymaps.cTue Apr 23 17:32:37 2002
+++ src/plugin/kbd_unicode/keymaps.cWed Apr 24 16:53:09 2002
@@ -1755,7 +1755,7 @@
 CONST t_keysym key_map_ru[] =
 {
   U_VOID, 27, '1', '2', '3', '4', '5', '6',
-  '7', '8', '9', '0', '-', '=', 127, 9,
+  '7', '8', '9', '0', '-', '=', 8, 9,
   'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
   'o', 'p', '[', ']', 13, U_VOID, 'a', 's',
   'd', 'f', 'g', 'h', 'j', 'k', 'l', ';',
@@ -1772,7 +1772,7 @@
 CONST t_keysym shift_map_ru[] =
 {
   U_VOID, 27, '!', '@', '#', '$', '%', '^',
-  '&', '*', '(', ')', '_', '+', 127, 9,
+  '&', '*', '(', ')', '_', '+', 8, 9,
   'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',
   'O', 'P', '{', '}', 13, U_VOID, 'A', 'S',
   'D', 'F', 'G', 'H', 'J', 'K', 'L', ':',
@@ -1789,7 +1789,7 @@
 CONST t_keysym altgr_map_ru[] =
 {
   U_VOID, 27, '1', '2', '3', '4', '5', '6',
-  '7', '8', '9', '0', '-', '=', 127, 9,
+  '7', '8', '9', '0', '-', '=', 8, 9,
   0x439,0x446,0x443,0x43A,0x435,0x43D,0x433,0x448,0x449,0x437,0x445,0x44A,
   13, U_VOID,
   0x444,0x44B,0x432,0x430,0x43F,0x440,0x43E,0x43B,0x434,0x436,0x44D,0x451,
@@ -1807,7 +1807,7 @@
 CONST t_keysym shift_altgr_map_ru[] =
 {
   U_VOID, 27, '!', '@', '#', '$', '%', '^',
-  '&', '*', '(', ')', '_', '+', 127, 9,
+  '&', '*', '(', ')', '_', '+', 8, 9,
   0x419,0x426,0x423,0x41A,0x415,0x41D,0x413,0x428,0x429,0x417,0x425,0x42A,
   13, U_VOID,
   0x424,0x42B,0x412,0x410,0x41F,0x420,0x41E,0x41B,0x414,0x416,0x42D,0x401,



Re: dosemu-1.1.3 and Cyrillic_er

2002-04-24 Thread Stas Sergeev

Hello.

Grigory Batalov wrote:
>   Why do you prefer that patch than koi8-r from extra_charsets plugin?
>   It seems working for me.
It works for me as well except for
typing cyrillic since there is no
"ru" keymap without this patch.
How are you getting it to understand the
cyrillic typing using a system switch?
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: dosemu-1.1.3 and Cyrillic_er

2002-04-25 Thread Stas Sergeev

Hello.

Sergey Suleymanov wrote:
> Stas> altgr table is enough.  
> Actually only these are needed at all. ;)
But in fact this means that the problem
is still there.
The problem is that normally altgr map is
similar to the alt map, so the special keycodes
in it are mapped as for the alt map.
But you are reserving altgr map for Cyrillic,
so it must be treated as a plain map.
And for the plain map, the BackSpace keycode
gets altered back to 8, see init_misc_plain_map()
and init_misc_shifted_map().
So I think that the real fix would be something
like the attached patch.

> Stas> Does this help?  Why 127 is there?
> I presume this is ^?. Anyway, ^H also works. Thanks.
Actually I think it is a bios keycodes, so it
must be 8. Which is done with the attached patch
and no need to modify the keymaps at all.
This patch also fixes some other small
problems with ctrl and alt modifiers in
cyrillic mode.
Does this look like a correct fix to you?
And of course the root of the problem
seems to be that dosemu currently doesn't
natively support the layout switching.


--- src/plugin/kbd_unicode/serv_xlat.c  Tue Apr 23 17:32:37 2002
+++ src/plugin/kbd_unicode/serv_xlat.c  Thu Apr 25 13:53:46 2002
@@ -361,11 +361,11 @@
 }
 static void init_misc_altgr_map(t_keysym *rule)
 {
-   rule[NUM_SPACE] = KEY_SPACE;
+   init_misc_plain_map(rule);
 }
 static void init_misc_shift_altgr_map(t_keysym *rule)
 {
-   rule[NUM_SPACE] = KEY_SPACE;
+   init_misc_shifted_map(rule);
 }
 static void init_misc_ctrl_alt_map(t_keysym *rule)
 {
@@ -1134,10 +1134,11 @@
if ((shiftstate & ANY_ALT) && (shiftstate & ANY_CTRL)) {
ch = state->rules->map.ctrl_alt[key];
}
-  else if ((shiftstate & (R_ALT|ALTGR_LOCK)) && (shiftstate & ANY_SHIFT)) {
+   else if ((shiftstate & ALTGR_LOCK) && (shiftstate & ANY_SHIFT) &&
+   !(shiftstate & (ANY_CTRL | ANY_ALT))) {
ch = state->rules->map.shift_altgr[key];
}
-  else if (shiftstate & (R_ALT|ALTGR_LOCK)) {
+   else if ((shiftstate & ALTGR_LOCK) && !(shiftstate & (ANY_CTRL | ANY_ALT))) {
ch = state->rules->map.altgr[key];
}
else if (shiftstate & ANY_ALT) {



Re: dosemu-1.1.3 and Cyrillic_er

2002-04-25 Thread Stas Sergeev

Hello.

Grigory Batalov wrote:
>>  Grigory> Also I set $_external_char_set = "koi8-r"
>>  Grigory> $_internal_char_set = "cp866" in ~/dosemu/conf/dosemurc and
>>  Grigory> it works. 
>> As the Alt+keypad sequences.
>Is it bad? =)
Are you sure that you are using a
*system* switch (xrus, xxkb) rather
than a dos' switch (keyrus, keyb.com)?
Because dos's switch works under xdos
also without Sergey's patch, but not the
system switch.
And if yes, then how are you setting the
$_layout option?
Cause I don't think you can set it to
"ru" without a Sergey's patch.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: sound in dosemu ?

2002-04-28 Thread Stas Sergeev

Hello.

Thomas Weidner wrote:
> what do i need to get sound in old dos games working ?
You need this:
1. dosemu-1.1.3 sources
2. New SB (Pro) emulator from this page:
http://dosemu.sourceforge.net/~stas/

> Do i need a dos soundblaster 
> driver ?
No, you don't need any because old SB
cards are supported directly by the
dos programs.
You have to only set the BLASTER
variable to match your dosemu.conf
settings.
-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: sound in dosemu ?

2002-04-28 Thread Stas Sergeev

Hello.

Justin Zygmont wrote:
> I tried that
When? Are you using the latest revision (16)
of the patch?

> but the sound would only work for about 5 seconds, then
> freeze up dosemu.
Have you applied only SB patch, or also some
other patches?
Does it lock dosemu hard (so that Ctrl-Alt-PgDn
doesn't work) or only the dos program locks?
Please send me a full bugreport including
the name (and URL if applicable) of the
program you are running, sound log (-D9+S)
and specify whether your program uses DPMI
or not and does it work OK when sound is
disabled.

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: MS-DOS and clipper

2002-04-30 Thread Stas Sergeev

Hello.

Bill Giannakopoulos wrote:
> when i 
> am typing wrong the the program and dosemu is crach.
> Do you have any idea what to do??
You have to provide an URL to your
program and the exact instructions
of how to reproduce the crash with
the latest dosemu, which is currently
1.1.3.

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Need advise on how to proceed in debugging ...

2002-05-01 Thread Stas Sergeev

Hello.

Bryan J. Smith wrote:
> 1.  I'm having a bit of difficulty trying to figure out how to enable
> debugging.
There are a lot of debug options.
You may enable the debug logging with
-D9+xxx option, where xxx specifies the
type of events you are going to log.
So, to enable a file access logging,
you'll have to specify something like
"-D9+d -o /tmp/log" as a dosemu command-line
arguments. Consult "man dos" for more.
If you want to debug the program that
is running under dosemu, you have to
start "dosdebug" program that comes with
dosemu.
And if you want to debug dosemu itself
(which is what you have to do in case
it locks up), you have to recompile it
with debug info and attach a gdb to it.

> difference.  I understand you can also "boot" a non-mounted,
> "native/real" C: partition too.  If so, can I run multiple instances of
> DOSEmu, or am I limited to only 1 now since I'm booting a real
> partition?
Even if you are not strictly limited,
you'll certainly have a filesystem
corruption once the both instances of
dosemu are going to write something
simultaneously.

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Strange dosemu behavior.

2002-05-09 Thread Stas Sergeev

Hello.

[EMAIL PROTECTED] wrote:
> Is there any way I can get some debug output?
Debugging output can be enabled with
-D option (consult `man dos`), and with
-o option you have to specify the file to
which the logging being written.

Also try to start the game under console
suid-root dosemu since it works more
reliably this way than under X.

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Sound in Doom

2002-05-27 Thread Stas Sergeev

Hello.

Stian Sletner wrote:
> I know this has been discussed before,
Sure.

> I searched the archives but
> couldn't deduce a clear answer.
Very strange...

> Is sound in Doom definitely out of the question, both now and in the
> foreseeable future?
Doom, Duke3d and the like games are
*already* fully functional under dosemu
and they work *with sound*
(thanks to Vlad Romascanu for the info
and hints on getting that games working
with sound).
What you need is just to visit this page:
dosemu.sourceforge.net/~stas

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Mouse Clicking Problem

2002-06-07 Thread Stas Sergeev

Hello.

Thomas Neidhart wrote:
> i have some problems getting the mouse to work under dosemu-1.0.2.
And you are lucky that you don't
have many other problems with that
particular version.

> First i had the problem that the mouse movement was just not smooth, 
> but with 
> setting hogthreshhold to 0 this was much better.
This was hopefully fixed/improved in
1.1.3.

> But mouse clicking does not work anyway, if i click on the left button, 
> the 
> mouse cursor jumps to the upper left corner, and then right back, 
> without any effect.
This is strange indeed...
Just for the correct statistic: was that
you who filled this bugreport on sourceforge,
or this problem happens for several people now?

> Any suggestions?
Only one so far: upgrade your DOSEMU!
Latest from 1.1 branch is 1.1.3.1
Latest from 1.0 is 1.0.2.1 (without mouse fix)
And if the mouse problems are still there,
please specify the program you are running
under dosemu when this happens.

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Mouse Clicking Problem

2002-06-08 Thread Stas Sergeev

Hello.

Thomas Neidhart wrote:
> i tried dosemu-1.1.3.1 and it got somewhat better:
Good:)

> The mouse clicking problem is also getting 
> better, 
> although from time to time it occurs again.
Please produce the -D9+Xm log.

> But upgrading to 1.1.3.1 also created some new problems.
With DPMI programs, right?
If so, then it is a known problem of 1.1.3
(since 1.1.2.7)

> I have tested 
> it with 
> "Die Fugger 2", and this causes xdosemu to crashe
> it crashes right after moving the mouse,
Visit
dosemu.sourceforge.net/stas
page and grab the necessary patches from there.
Let me know the results.
And specifying the program's name doesn't help
too much, please specify also an URL for download.

> Also the mouse runs not smooth in this game 
> without 
> setting hogt. to 0.
Does setting hogthreshold to 5, 10, 50 etc helps,
or only 0?

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Mouse Clicking Problem

2002-06-09 Thread Stas Sergeev

Hello.

Thomas Neidhart wrote:
> i have tried all patches from you, and with them the programs don't 
> crash anymore.
Very good. These patches are aimed to fix
the 1.1.3 DPMI breakage and, while they don't
currently cover the whole issue, they are
getting there (addressing many other problems
at the same time).

> Anyway the mouse move and click problem still remains.
Yes, this I have never been able to reproduce
hence I don't have a cure.

> The problem is that the mouse click behavior is not deterministic.
But is there something that affects it?
Does hogthreshold make any difference?
Is this problem happens only with a specific
program ("Die Fugger 2"), or with all programs?

> Sometimes 
> it works fine, and the next time i start xdosemu it doesn't work right.
This smells really bad...

> The mouse click gets recognized if i "delay" the click and release the 
> button then.
Does this make sense if you enable mouse grab
by pressing Ctrl+Alt+Home?
(your mouse must be blocked inside the xdos
window after you do this)

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Changes between 1.01 and 1.02

2002-06-10 Thread Stas Sergeev

Hello.

> Now I examined the dosemu 1.0.3
1.0.3 is a non-existant version.
Do you mean 1.0.2, or 1.1.3, or is
it something SuSE-specific?

> I'm using symlinks c/d pointing to mounted real dos drives in 
> /var/lib/dosemu 
> in dosemu 1.0.1. Has this possibility gone in 1.0.2?
It is still there.

> Can someone tell me if an update to 1.0.2 could solve the problems 
Upgrade to 1.0.2 is not recommended.
If you want 1.0 branch, use 1.0.2.1.

> running 
> dpmi software like dbase IV.
dosemu-1.1.3.1 with patches from
dosemu.sourceforge.net/stas
have more chances to solve your DPMI
problems, but it depends on what the
problems are exactly.

> Is there a significant better serial code 
> which 
> was not working as good as it is wished when running dos fido mailers.
Yes, atleast TMail was not working very
well on some systems until dosemu-1.1.3.
In general all progs that uses a FIFO mode
and does early EOI, might hopefully feel
better now and there was also a fix that
prevents loseing the data in non-fifo mode.

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Dosemu packet driver, IPX

2002-06-12 Thread Stas Sergeev

Hello.

Kara Van Horn wrote:
> When I tried adding WINPKT.COM (as
> mentioned in the docs) to my IPX stack (WINPKT replacing PDIPX, 
> followed by
> VLM), and specified a packet driver address as 0x60, it said there was 
> not one at that location.
Make sure that $_vnet is *off* and then:

E:\TEMP\PKTDRV>winpkt.com 0x60
Virtual packet driver for Windows 3.x, version 11.2
Portions Copyright 1991 Roger F. James
Packet driver skeleton copyright 1988-90, Russell Nelson.
This program is free software; see the file COPYING for details.
NO WARRANTY; see the file COPYING for details.

And never forget about logging.
-D9+Pn will help you in that quest.

> I installed the dosnet.o module into the kernel,
> configured the dsn0 interface to have a subnet of 192.168.144.0, and 
> routed
> a gateway for that same network out my linux box to eth0.  $_vnet is on 
In case you want to have dosnet, you have
to give root permissions to dosemu.

> I tried both setuid root on and off the dosnet executable.
dosnet.o is not an executable, it is a
kernel module.

> I also wasn't sure if I could also run the Greg Page suite of IPX tools
> (i.e., ipx_configure, ipx_interface, et. al.) in conjunction with any 
> Dosemu
> functionality.
For this you have to configure IPX under
linux and turn $_ipxsupport on. This seem
to be possible. You have to disable dosnet
in that case, I think.
And if you turn IPX on, you don't need
pdipx any more.
If you have $_ipxsupport disabled, you can't
use IPX tools.

> requires a constant IPX connection (through a watchdog TSR).  This is 
> when
> the application fails, and I traced it back to this packet driver 
> issue.
Dosemu's internal IPX support seems to be
independant from dosemu's packet driver
because it utilises linux kernel IPX
functionality. So I don't think you have
tracked your problem correctly.

> I would also
> appreciate some idea as to the progress of the Dosemu programming 
> effort.
No (active) developers. If you need 
some functionality, you have to
contribute yourself:(
IPX is out of maintenance since 1997.

> It appears to be somewhat stalled, from what I can tell.
I agree. But you can always have a look
into the ChangeLog for details.

> I did not notice
> much interaction with the programmers and this list, either, which does 
> not bode well.
Dosemu have large enough user base
(just see the sourceforge stats to
get a clue of how large is it), but
no developers to support. Hence the
lack of the interraction and progress.
I really think that the users have to
contribute a little more in development
process if they want to have a fully
functional product.


PS: Everything I told about IPX is
based only on a single look at an
IPX code I made yesterday to find
out why doom's ipxsetup crashes.
So my info may be incorrect. I have
never used this functionality myself.
And even a single look to that code
was enough to find some bugs in it:(

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: What's up with Space Quest 2?

2002-06-12 Thread Stas Sergeev

Hello.

Johan Gill wrote:
> I have dosemu-1.1.3.1 with mouse and dpmi_iret patches applied.
According the log, it doesn't seem to
use DPMI, so dpmi_iret patch might not
affect.

> When I try running Space Quest 2, dosemu exits.
How good is it without any patches?
Does it work on dosemu-1.0.2.1?
It seems to use DMA before crash,
does it make sense if you disable
sound in program's setup or apply
the sound patch? Do you have
$_sound=(on) ?

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: What's up with Space Quest 2?

2002-06-12 Thread Stas Sergeev

Hello.

Johan Gill wrote:
> It also crashes on 1.1.3. I don't remember exactly what went wrong with 
> 1.0.2.1 since it was a while ago.
OK, I have downloaded something
called the Space Quest, which
turned to be a game dated 1987
with CGA graphics, by Sierra.
If this is the game you mentioned,
then it works fine here under
dosemu-1.1.3.1 with PC-DOS 7.0,
so you have to check your local
configs.

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: unable to boot as user

2002-06-14 Thread Stas Sergeev

Hello.

> At last I was able to track down the problem. It turned out to be that
> one should have the real floppy accessible in order to boot from the
> image. In my case, ordinary users have no access to /dev/fd0.
> I suggest the change below.
Your patch doesn't seem to attack
the root of the problem:)
Does the attached patch fixes this?


--- src/base/misc/disks.c   Tue Mar 19 00:58:12 2002
+++ src/base/misc/disks.c   Fri Jun 14 23:17:10 2002
@@ -1011,10 +1011,9 @@
   int checkdp_val;
 
   disk = LO(dx);
-  if (disk < FDISKS) {
-if (!disk && use_bootdisk)
-  dp = &bootdisk;
-else
+  if (!disk && use_bootdisk)
+dp = &bootdisk;
+  else if (disk < FDISKS) {
   dp = &disktab[disk];
 switch (HI(ax)) {
   #define DISKETTE_MOTOR_TIMEOUT (*((unsigned char *)0x440))



Re: Interrupt divide by zero

2002-06-14 Thread Stas Sergeev

Hello.

> the
> aplication I try to run is a Multi-user mode application that run on 
> DOS sessions
Such programs might not work under
dosemu. I am afraid you expecting
way too much.

> Error [35]: General Protection Fault in ZIMRTMU.EXE at 0377:011C 
Make sure that this program works on
either WinNT or Win2000. Then you have
chances. But if it doesn't - just give
up trying it under dosemu and use bochs
instead.

> I have try many thigs like incresing memory for xms and ems
and DPMI?

> I have tryied
> to load the HIMEM.SYS but I dosn?t work.
You don't need himem.sys under dosemu (and
it won't work either).

> I have a RH7.2, the latest version of dosemu and the patch.
There are many patches, which one?

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: Mapping Control and Shift Function Keys

2002-06-16 Thread Stas Sergeev

Hello.

Stephen Lee wrote:
> I forgot to mention that Dosemu is run under Redhat 7.2
No, you forgot to mention the version
of dosemu you are using.

> My Foxpro application recognizes the F1-F12 keys fine but not the Shift
> or the Control Fkeys. I ran a keyboard scan program in the DOS session
> and it does not detect any of the Control or Shift Fkeys either. Where
> to look next?
Try dosemu-1.1.3.2 to take an advantages
of a new keyboard code.

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



Re: unofficial prerelease 1.1.3.2 for testing

2002-06-16 Thread Stas Sergeev

Hello.

Bart Oldeman wrote:
> Please test the improved joystick support from Clarence Dang: it looks
> very nice, but I don't have a joystick. He claims it works faster if 
> you enable pthreads (see compiletime-settings), but I experienced DPMI 
> crashes that way (DJGPP gcc immediately nukes DOSEMU), so left that out by
> default. Can anyone confirm?
Well, as I don't have a joystick, I
can only confirm that dosemu doesn't
even start on my machine when I enable
pthreads. No problems with them disabled
though.

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



  1   2   3   4   5   6   >