Discussion:
family API
(too old to reply)
muta...@gmail.com
2023-06-18 09:31:11 UTC
Permalink
This exists:

http://www.osfree.org/doku/en:docs:fapi

Also Family API file contains emulation library which translates OS/2 API calls to DOS interrupt calls.

I would like to know the DOS interrupt call that did this Family API function:

DosGetHugeShift

http://www.osfree.org/doku/en:docs:fapi:dosgethugeshift

http://www.edm2.com/index.php/DosGetHugeShift

Anyone know?

Thanks. Paul.
JJ
2023-06-18 17:51:31 UTC
Permalink
Post by ***@gmail.com
http://www.osfree.org/doku/en:docs:fapi
Also Family API file contains emulation library which translates OS/2 API calls to DOS interrupt calls.
DosGetHugeShift
http://www.osfree.org/doku/en:docs:fapi:dosgethugeshift
http://www.edm2.com/index.php/DosGetHugeShift
Anyone know?
Thanks. Paul.
No such thing. It's an emulator for OS/2 CP API. There's no DOS interrupt
equivalent for it. Everything is done manually.
muta...@gmail.com
2023-06-20 00:14:38 UTC
Permalink
Post by JJ
Post by ***@gmail.com
http://www.osfree.org/doku/en:docs:fapi
Also Family API file contains emulation library which translates OS/2 API calls to DOS interrupt calls.
DosGetHugeShift
http://www.osfree.org/doku/en:docs:fapi:dosgethugeshift
http://www.edm2.com/index.php/DosGetHugeShift
Anyone know?
No such thing. It's an emulator for OS/2 CP API. There's no DOS interrupt
equivalent for it. Everything is done manually.
Can you elaborate on this please?

First of all, what is "CP"?

I assume that you agree that SOME family APIs have DOS interrupt
equivalents? Like DosOpen would eventually call an INT 21H.

So was your statement specific to this one family API function?
If it detects (any idea how that is done?) that the environment is
MSDOS instead of OS2 it simply hardcodes a shift value?

Thanks. Paul.
muta...@gmail.com
2023-06-20 09:00:04 UTC
Permalink
Post by ***@gmail.com
If it detects (any idea how that is done?) that the environment is
MSDOS instead of OS2 it simply hardcodes a shift value?
I found this:

http://www.edm2.com/index.php/DosGetMachineMode

But it still doesn't answer my question.

But I think I've figured out the answer.

There will be an "NE" (instead of "PE") marking in the
executable. When running under OS/2 1.0 it will go
straight to the NE code and run it appropriately, and
it knows at that point that it is OS/2. And the bindings
to the above 2 functions will be done against a DLL.

But if it is running under MSDOS, it will execute the MZ
part of the code, and at that point it knows that it is
MSDOS, and then it will "manually" bind all the NE
calls to its own MZ code, and then execute the NE
code. And the MZ portion of the code may or may
not do an INT 21H call, depending on what the function is.

BFN. Paul.

Loading...