Mail Archives: djgpp/1994/10/29/08:42:07
Newsgroups: comp.os.msdos.programmer
From: mark AT samson DOT demon DOT co DOT uk (Mark Simmons)
Path: samson.demon.co.uk!demon!samson.demon.co.uk!mark
Subject: accessing real mode registers from gcc
Organization: at home
Reply-To: mark AT samson DOT demon DOT co DOT uk
X-Newsreader: Simple NEWS 2.0 (ka9q DIS 1.24)
Lines: 34
Date: Thu, 27 Oct 1994 21:29:45 +0000
Message-ID: <783293385snz AT samson DOT demon DOT co DOT uk>
Sender: usenet AT demon DOT co DOT uk
I have recently started using gcc and I am converting a MSC program
to run under protected mode so that I may do some extended memory
addressing. Fine, but this program uses routines in a commercial TSR
via interupt 80h and causes a segmentation fault. I'm told
this is because a different interupt vector table is used when in
protected mode. So the question is what are the magic incantations
required to convert these int86x calls - given my ignorance of
Intel/DOS arcane ?
For example, the following is a fragment of the MSC version:-
unsigned int IntrNum=0x80;
union REGS regs;
struct SREGS segregs;
{
regs.x.bx = 0x01;
int86x(IntrNum, ®s, ®s, &segregs); /* problem for gcc */
if (regs.x.cflag)
{
printf("Error!");
exit(1);
}
return (0);
}
What are the equivalent _go32 calls or do I have to switch back to
real mode somehow ?
Any help via email would be appreciated.
--
Mark Simmons Email: mark AT samson DOT demon DOT co DOT uk Voice: +44 (0)483 714946
- Raw text -