delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/12/14/22:24:37

Date: Wed, 14 Dec 1994 17:45:17 -0500 (EST)
From: john miller <jmiller AT umdsun2 DOT umd DOT umich DOT edu>
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Cc: john hoeschele <john AT umdsun2 DOT umd DOT umich DOT edu>
Subject: Calling 16 bit functions

We are trying to read data from a linear camera and store the results in 
computer memory. The library that has been provided only works with 16 bit
compilers which means that only the first 640K of memory can be used. The 
images, of course, can be much larger. One possible solution is to have 16 
bit code read the camera data and store one line in the lower 640 K of 
memory and then have a gcc program copy that data into extended memory. 

The basic scheme would be to:

1. Load the 16 bit program first.

2. Have the 16 bit program load the gcc program using a system call and
pass it the addresses of the buffer and the function to read in one line
of data. 

3. The gcc program calls the 16 bit function and transfers the memory to its
own memory until all scan lines have been read in.

4. The gcc program writes out the image data and terminates.

5. The 16 bit program terminates.

This should be simpler than writing a TSR and using an interrupt. However,
there are two questions that I have:

1. Can I use the dpmi...fcall function to call the 16 bit function

2. I can access the dos memory with the 800... prefix easily. Is there a dpmi
call to do the same thing?

Thanks in advance for any help.

John Miller


- Raw text -


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