TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Mike Bilow
from: Darin McBride
date: 1996-05-28 22:35:08
subject: Semaphores (16 & 32)

MB> Note that a function declared as "_far16" will 
 MB> automatically adjust the "int" back and forth between 
 MB> 32-bit and 16-but code as needed.

Seeing as none of these functions use 'int', but all use USHORT/LONG
directly, this shouldn't be a problem.  :-)

 MB> Your problem is in the function declarations.  You need 
 MB> to tell the compiler that the functions must be 
 MB> accessed by a thunk into 16-bit code, and the proper 
 MB> use of the "_far16" keyword is the best way to do that.

I believe the following line in OS2DEF.H should do that (since I use
APIENTRY16 in the prototype):

#define APIENTRY16  _Far16 _Pascal

So, what else could I be doing wrong?  :-/


 MB> Peter Fitzsimmons' suggestion about writing a 16-bit 
 MB> DLL to handle this is a good one, actually, although 
 MB> not really necessary.  If you goal is to get this done 
 MB> as simply and quickly as possible, then his approach 

Simple and quick?  I've know about SMSERIAL.DLL for a while, but I'm trying
to learn this, so I'm trying the 'hard way' for now.  If I get fed up, I'll
go to SMSERIAL.DLL.  :-)

 MB> should be used.  On the other hand, if you are trying 
 MB> to do this as a learning experience, you may as well 
 MB> keep plugging on getting the compiler to thunk.

Yup - gonna keep trying.  :-)


--- Maximus/2 3.01
* Origin: Tanktalus' Tower BBS (PVT) (1:342/708)
SEEN-BY: 50/99 270/101 620/243 711/401 409 410 413 430 808 809 934 955
SEEN-BY: 712/407 515 517 628 713/888 800/1
@PATH: 342/5015 61 3615/50 396/1 270/101 712/515 711/808 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.