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)

by martini, 9 years ago

Attachment: MONCALLS.png added

comment:1 by Gregg Young, 9 years ago

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 by Gregg Young, 9 years ago

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 by Gregg Young, 7 years ago

Resolution: invalid
Status: newclosed

comment:4 by Lewis Rosenthal, 7 years ago

Milestone: 2.822.9.0

Milestone renamed

Note: See TracTickets for help on using tickets.