Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.os.msdos.programmer > #687

Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ]

From "Rod Pemberton" <do_not_have@notemailnot.cmm>
Newsgroups comp.os.msdos.programmer
Subject Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ]
Date 2012-07-27 16:13 -0400
Organization Aioe.org NNTP Server
Message-ID <juusl5$jrc$1@speranza.aioe.org> (permalink)
References <82fd41a6-ff0c-4077-82b9-a56291dc4530@googlegroups.com>

Show all headers | View raw


"liaoo" <jimmyliaoo@gmail.com> wrote in message
news:82fd41a6-ff0c-4077-82b9-a56291dc4530@googlegroups.com...
...

> - created by combining Watcom C and DOS32/A. Memory model is "flat"
> - written for running on DOS mode only...
> - now I can access >1M memory and allocate large memory with dos
> extender...
>

The mention of DOS32/A suggests this is a DPMI application.  Are you
compiling for 16-bit RM DOS as "wcl/l=dos" or for 32-bit DOS PM DPMI
as "wcl386/l=dos4g" ?

The reason I ask is because 32-bit DPMI applications call PM interrupts in
the DPMI's IDT table.  This means there are *two* interrupt tables when
using DPMI applications: the BIOS's RM IVT and the DPMI host's PM IDT.  The
DPMI host won't call RM interrupts in the BIOS' IVT table.  You have to set
up that code yourself using DPMI calls.  This can cause missed interrupts if
setup incorrectly or not setup.  That might be what you're experiencing.
I.e., a specific interrupt may be called, but is calling the wrong interrupt
routine in the wrong cpu mode.  E.g., you're triggering RM interrupt, but
the PM interrupt is being called.  Or, the opposite is occuring.

Either way, you'll have to setup at least one interrupt in one of them
(either the PM IDT or RM IVT).  You may also need to setup an interrupt in
the other.  Or, you may need to install a callback from the interrupt in one
mode to call the interrupt in the other mode.

There are DPMI calls which will setup both RM IVT or PM IDT vectors, and
callbacks so an IVT can call and IDT, or an IDT can call an IVT.  For DPMI
calls with OpenWatcom, you'll have to use int386x() and RMI struct since
OpenWatcom doesn't have function wrappers for DPMI calls, unlike the DJGPP
compiler.

See basic use of int386x() here:
http://www.openwatcom.org/index.php/Accessing_the_Harddisk_using_LBA_under_DPMI

> 1. in watcom C's lib document, there is one sample code using
> _dos_getvect, _dos_setvect, and _chain_intr to hook INT 0x1C...
>

That's for a RM IVT.  You might need a PM IDT interrupt routine since you're
using DOS32/A.  It depends on your code.


Rod Pemberton




Back to comp.os.msdos.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] liaoo <jimmyliaoo@gmail.com> - 2012-07-25 08:50 -0700
  Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] cg_chas <cg_chas@hotmail.com> - 2012-07-25 22:41 -0400
    Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] liaoo <jimmyliaoo@gmail.com> - 2012-07-25 20:06 -0700
      Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] cg_chas <cg_chas@hotmail.com> - 2012-07-26 00:06 -0400
        Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] liaoo <jimmyliaoo@gmail.com> - 2012-07-25 21:42 -0700
          Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] cg_chas <cg_chas@hotmail.com> - 2012-07-26 09:07 -0400
            Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] liaoo <jimmyliaoo@gmail.com> - 2012-07-26 08:10 -0700
            Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-07-27 16:13 -0400
              Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] liaoo <jimmyliaoo@gmail.com> - 2012-07-27 23:04 -0700
                Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] liaoo <jimmyliaoo@gmail.com> - 2012-07-27 23:38 -0700
  Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] cg_chas <cg_chas@hotmail.com> - 2012-07-25 22:51 -0400
  Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] JJ <jaejunks_at@_googlemail_dot._com> - 2012-07-26 14:05 +0000
    Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] liaoo <jimmyliaoo@gmail.com> - 2012-07-26 07:41 -0700
  Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-07-27 16:13 -0400
    Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] liaoo <jimmyliaoo@gmail.com> - 2012-07-27 22:57 -0700
      Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-07-28 05:06 -0400
        Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] liaoo <jimmyliaoo@gmail.com> - 2012-07-28 05:52 -0700
        Re: [Hook out HW interrupt IRQ14 with Watcom C+DOS/32a in DOS ] liaoo <jimmyliaoo@gmail.com> - 2012-08-14 20:15 -0700

csiph-web