Mail Archives: djgpp/1994/11/11/17:54:23
On Fri, 11 Nov 1994, john hoeschele wrote:
> I am doing a school project converting MASM code to ANSI C code to be
> compiled with GNU C. The code controls a line scan camera and boards,
> which are interrupt driven and use DMA in certain modes. There is an
> EMM used in the code to access more memory.
I don't know if this has come up before or if it already exist, i.e. I
didn't dig real deep in doing my homework, but.. ;) I was thinking,
providing there was enough interest, developing a macro convertor from
(T/M)ASM -> as and vise-versa using maybe flex? The biggest turn off for
djgpp that I've found for most, is the fact they lerned using tasm...
IMHO a true waist considering it's native only to x86, but try telling
others that. This would slow down a programs development cycle, but
would at least attract tasm users to our cause.. ;) could also be used
for Linux, or even other systems. TASM code on a SPARC? <shudder>
> The questions that I have are:
> 1. Is there a way to do DMA using _dpmi_ functions, if so how do I
> go about it and if not is there some other way??
I wish... anyone? Programming the dma controller is a pain.
> 2. I have read that there is a problem using int86x() in gcc. Is
> there some other function to get the interrupt vector and is there
> one to simulate the interrupt service routine???
Yes, all of the _dpmi... functions, setting vectors, chaining
vectors, simulating ints, allocating rm iret wrappers, etc, etc, etc..
> 3. Are there any functions to do Extended Memory Management in any
> of the libraries??? Do I actually need it at all since gcc is a
> 32 bit compiler??
You don't need'em. Go32 does a pretty good job of going through
either VCPI or DMPI services to allocate all of the available memory.
And flat addressing makes it nice if you want a 8 meg hunk'o'ram and
don't want to have to chain 64K ems pages, just do a malloc()....
Alan
- Raw text -