Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Jan 1998 10:39:20 -0600
From:      Jonathan Lemon <jlemon@americantv.com>
To:        Mike Smith <mike@smith.net.au>
Cc:        John-Mark Gurney <gurney_j@resnet.uoregon.edu>, shmit@erols.com, Randall Hopper <rhh@ct.picker.com>, emulation@FreeBSD.ORG
Subject:   Re: DOSCMD: Problems w/ Quicken
Message-ID:  <19980119103920.28769@right.PCS>
In-Reply-To: <199801191136.WAA00350@word.smith.net.au>; from Mike Smith on Jan 01, 1998 at 10:06:50PM %2B1030
References:  <19980119022348.44312@hydrogen.nike.efn.org> <199801191136.WAA00350@word.smith.net.au>

next in thread | previous in thread | raw e-mail | index | archive | help
On Jan 01, 1998 at 10:06:50PM +1030, Mike Smith wrote:
> Yeah, that's all fine, but what I *don't* understand is why it should 
> be trapping as it does claiming that 'movw (%bx),%ax' is an illegal 
> instruction.

>From one of the original postings, the setup message for doscmd says
`Init: 0', which indicates that the hardware does not support VME.

When an int13 (gpf) is generated, under VME, it simply looks at the
interrupt vector, and jumps directly to the associated interrupt handler,
without leaving vm86 mode.  Without VME, it falls back to doscmd, with
a SIGBUS.

doscmd looks at the instruction to try to figure out why the interrupt 
was generated (sti, cli, popf, etc) and if it doesn't find it, assumes 
that this is an illegal instruction.  It doesn't attempt to jump to the
int 13 vector.  It does this since SIGBUS is overloaded with all sorts 
of things and typically a GPF is fatal anyway.

The following (untested) patch to doscmd might fix the problem.
--
Jonathan

---------------------------------------------------------------------------

*** trap.c      1997/09/30 22:04:05     1.2
--- trap.c      1998/01/19 16:33:43
***************
*** 486,493 ****
--- 486,496 ----
              /* FALLTHRU */
  
        default:
+ #if 0
            dump_regs(REGS);
            fatal("unsupported instruction\n");
+ #endif
+           fake_int(REGS, 13);
        }
  
  out:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19980119103920.28769>