Opened 9 years ago

Closed 7 years ago

Last modified 7 years ago

#36 closed enhancement (invalid)

Removing the use of MONCALLS.DLL

Reported by: martini Owned by:
Priority: minor Milestone: 2.9.0
Component: widget Version:
Keywords: MONCALLS.DLL, DOSCALL1.DLL Cc:

Description

Hi.

I was experimenting with a MONCALLS.DLL replacemenet (OSFree generated) on a VM and noticed that lSwitcher uses this file.
http://www.edm2.com/index.php/MONCALLS.DLL

AFAIK MONCALLS.DLL on the latest version of OS/2 Warp is a forwarder and all it's functions are located at DOSCALL1.DLL.

I search the LSwitcher source code on github (screenshot attached).

My request is to see if it can be possible for you to remove the MONCALLS.DLL calls and make it directly to DOSCALL1.DLL. I really do not know how easy or hard can it be.

The only fallback that I see on doing this is that may possible break compatibility of lSwitcher with older OS/2 versions where MONCALLS.DLL is not a forwarder to DOSCALL1.DLL.

Attachments (1)

MONCALLS.png (52.6 KB) - added by martini 9 years ago.

Download all attachments as: .zip

Change History (5)

Changed 9 years ago by martini

Attachment: MONCALLS.png added

comment:1 Changed 9 years ago by Gregg Young

Hi Martin

The DOS16MON* functions are undocumented API calls for monitoring things like input output from the keyboard. Using MONCALLS.DLL and forwarding is how os2 is designed to work and is for backward compatibility. While I could call them directly from DOSCALL1.DLL using their ordinal, I don't see any advantage to it. Your pointing these out will allow me to remove the redundant declares of these functions in the code since they are already declared in the OpenWatcom? OS/2 headers. If I am missing something here let me know.

Gregg

comment:2 Changed 9 years ago by Gregg Young

I just check these function are not forward they are in moncalls.dll.
From a command line try lxlite -c:exemap -vf- moncalls.dll look at the Module Entry Table. If these were forwarded the Entry type would be Forwarder not 16:16 gate which is what they are.

Try the command above on msg.dll and you will find it does forward everything to doscall1.dll.

comment:3 Changed 7 years ago by Gregg Young

Resolution: invalid
Status: newclosed

comment:4 Changed 7 years ago by Lewis Rosenthal

Milestone: 2.822.9.0

Milestone renamed

Note: See TracTickets for help on using tickets.