delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/11/11/17:54:23

Date: Fri, 11 Nov 1994 10:15:09 -0600 (CST)
From: ALAN L HIGHTOWER <alh AT engr DOT engr DOT uark DOT edu>
Subject: Re: Interrupts and DMA access
To: john hoeschele <john AT umdsun2 DOT umd DOT umich DOT edu>
Cc: mailing list <djgpp AT sun DOT soe DOT clarkson DOT edu>,
ece431 group -- edward mazorowicz <emazorow AT umdsun2 DOT umd DOT umich DOT edu>,
jim wailing <jwaling AT umdsun2 DOT umd DOT umich DOT edu>,
john miller <jmiller AT umdsun2 DOT umd DOT umich DOT edu>

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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019