Click here to Skip to main content
15,888,610 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: SDI application with 3 views Pin
Mohibur Rashid25-Jul-12 14:45
professionalMohibur Rashid25-Jul-12 14:45 
GeneralRe: SDI application with 3 views Pin
Vaclav_25-Jul-12 16:51
Vaclav_25-Jul-12 16:51 
GeneralRe: SDI application with 3 views Pin
ekinnh26-Jul-12 18:13
ekinnh26-Jul-12 18:13 
GeneralRe: SDI application with 3 views Pin
Vaclav_27-Jul-12 2:42
Vaclav_27-Jul-12 2:42 
GeneralRe: SDI application with 3 views Pin
ekinnh31-Jul-12 22:13
ekinnh31-Jul-12 22:13 
GeneralRe: SDI application with 3 views Pin
Sunil P V26-Jul-12 2:09
Sunil P V26-Jul-12 2:09 
Question[Hook HW interrupts in flat mode with DOS32/A] Pin
liaoo23-Jul-12 16:42
liaoo23-Jul-12 16:42 
AnswerRe: [Hook HW interrupts in flat mode with DOS32/A] Pin
enhzflep23-Jul-12 19:01
enhzflep23-Jul-12 19:01 
Wow - there's a blast from the past.

With your sample app that hooks INT 0x1C, was that also running in flat-mode?

That is to say - the 80x86 family run in two modes - one that has a flat address-space and the other that has segmented memory space.

When in segmented mode (DOS) there's a table that holds the address of all of the ISRs. To hook an interrupt, you simply grab the table entry you want then overwrite it with the address of your own routine. Inside your routine you do what you need, calling the original routine before, after your code or not at all. When you want to remove the hook, you simply re-write the table entry.

While in protected mode (win,linux,dos4gw/dos32a) memory is arranged quite differently. You don't have a globally accessable place that you can just read and write in quite the same way. You have the beasts known as Interrupt Descriptor Table.

I spent a long time 15 years ago trying to roll-my-own code that would enter protected mode. I've got vague memories of having trouble wrapping my head around the IDT & GDT.


What I'm getting at, is that I can't be sure that the functions you're calling are intended for flat-mode. If the ISR is running in flat-mode, you can't even address it in the 4 bytes that each entry has in a real-mode IDT.
I also don't quite follow the formula you've used to come up with int 0x76

Anyway, here's a page on IDTs and the differences between real/protected mode.
http://en.wikipedia.org/wiki/Interrupt_descriptor_table[^]

You know what I'd probably be doing? Downloading the source-code for some old games that used the dos4g/w extended and looking there for some hints. You should find something in either the timing or the sound code. The one that immediately comes to mind is Doom. Don't remember if Duke Nukem 3d was too I beleive Rise Of The Triad - ROTT used the watcom compiler. A lot of games by iD, Apogee & 3dRealms of the era used the extender.

Good luck & thanks for the read & memories.Thumbs Up | :thumbsup:
GeneralRe: [Hook HW interrupts in flat mode with DOS32/A] Pin
liaoo23-Jul-12 19:47
liaoo23-Jul-12 19:47 
GeneralRe: [Hook HW interrupts in flat mode with DOS32/A] Pin
enhzflep23-Jul-12 20:23
enhzflep23-Jul-12 20:23 
GeneralRe: [Hook HW interrupts in flat mode with DOS32/A] Pin
liaoo23-Jul-12 22:02
liaoo23-Jul-12 22:02 
AnswerRe: [Hook HW interrupts in flat mode with DOS32/A] Pin
Software_Developer23-Jul-12 20:10
Software_Developer23-Jul-12 20:10 
GeneralRe: [Hook HW interrupts in flat mode with DOS32/A] Pin
liaoo23-Jul-12 22:05
liaoo23-Jul-12 22:05 
QuestionMSDN 2010, scanf_s Pin
mrby12323-Jul-12 7:13
mrby12323-Jul-12 7:13 
AnswerRe: MSDN 2010, scanf_s Pin
Albert Holguin23-Jul-12 7:26
professionalAlbert Holguin23-Jul-12 7:26 
AnswerRe: MSDN 2010, scanf_s Pin
CPallini23-Jul-12 22:12
mveCPallini23-Jul-12 22:12 
GeneralProgrammatically setting power manager suspend timeouts in Windows CE5.0 [SOLVED] Pin
SidProgrammer22-Jul-12 21:21
SidProgrammer22-Jul-12 21:21 
GeneralRe: Programmatically setting power manager suspend timeouts in Windows CE5.0 Pin
Richard MacCutchan22-Jul-12 21:45
mveRichard MacCutchan22-Jul-12 21:45 
GeneralRe: Programmatically setting power manager suspend timeouts in Windows CE5.0 Pin
SidProgrammer22-Jul-12 22:34
SidProgrammer22-Jul-12 22:34 
GeneralRe: Programmatically setting power manager suspend timeouts in Windows CE5.0 Pin
Richard MacCutchan22-Jul-12 22:37
mveRichard MacCutchan22-Jul-12 22:37 
GeneralRe: Programmatically setting power manager suspend timeouts in Windows CE5.0 Pin
SidProgrammer22-Jul-12 22:51
SidProgrammer22-Jul-12 22:51 
Questioncan i use vc6 with aforge? Pin
frank2323153422-Jul-12 1:30
frank2323153422-Jul-12 1:30 
AnswerRe: can i use vc6 with aforge? Pin
Richard MacCutchan22-Jul-12 2:05
mveRichard MacCutchan22-Jul-12 2:05 
QuestionMulti touch - Limit CView boudaries when panning Pin
Dansveen21-Jul-12 13:02
Dansveen21-Jul-12 13:02 
AnswerRe: Multi touch - Limit CView boudaries when panning Pin
Richard MacCutchan22-Jul-12 0:13
mveRichard MacCutchan22-Jul-12 0:13 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.