Subj : PL/I v 2.1 FixPak 6
To : Vitus Jensen
From : Murray Lesser
Date : Wed Jul 26 2000 10:20 am
(Excerpts from a message dated 07-25-00, Vitus Jensen to Murray Lesser)
Hi Vitus--
VJ>24.07.2000, Murray Lesser wrote a message to David Noon:
ML> I spent entirely too much time yesterday (Sunday) downloading and
ML> installing FP6 for the PL/I for OS/2 compiler v 2.1. I lost
ML> connection a little over halfway through the 2.5-hour download. When
ML> I restarted, FTP Browser didn't "resume!" Probably my fault :-(.
ML> After I installed the FP, I found (in the file READFP6.HTM), the
ML> following statement:
ML> "On OS/2, all 16-bit support has been dropped."
ML> I read this as meaning that there is no longer access to the
ML> 16-bit OS/2 API calls :-(. My needs are for KBD and VIO calls, since
ML> there are things that I wish to do in interactive text-mode
ML> applications that cannot be done in "native" PL/I.
>...
ML> Two questions: What could have led the PL/I perpetrators to do
ML> such a dirty deed? More important, can you think of any other
ML> workaround than the one I used (restored the previously installed
ML> version)?
VJ>I don't know. But remember that 1) IBM always discouraged
>developers to use 16-bit APIs...
IIRC, the perpetrators of OS/2 2.0 assumed that nobody would be
writing text-mode programs any more, so they left the KBD, VIO, and MOU
API calls alone (16-bit leftovers from OS/2 1.x) and didn't provide much
guidance in the early OS/2 2.x documentation as to how to use them.
However, until very recently, all IBM 32-bit OS/2 compilers have handled
the necessary thunking (in both directions) almost automatically (PL/I
was especially good at this, because you have the choice between passing
variables by value or by address).
VJ> ...and 2) they dropped 16-bit support in the C++ part of VAC++ 4.0.
While I don't understand this aberration, I might be able to
rationalize dropping the text-mode support for C++ in a "visual"
compiler. My little experience at the game has indicated that one
cannot write a text-mode program while using one of the visual program
builders, irrespective of the language one is trying to build it in, so
one wouldn't have a reason to use these text-mode API calls while using
the "visual" VAC++ developer interface. However, I am under the
impression that the "command line" version of VAC++ 4.0 still allows
calling the 16-bit API routines. (I have no experience to verify this,
as I have never written a program in C++, nor have I ever owned any
version of VAC++.) But the only rationale I can really offer for IBM
dropping 16-bit support from its 32-bit OS/2 compilers is that such
support is platform dependent, and IBM is getting out of the
platform-dependent market.
All of my PL/I programming is for text-mode utilities, and is done
from the command line. I did try (once) to convert one of my
multi-threaded text-mode PL/I utilities, that included a call to
KbdCharin(), to a GUI program by using the "add-on" PL/I toolkit (visual
program builder) for the purpose. After what I considered to be a
reasonable attempt, I gave it up as being entirely too much trouble. In
the newer "VA PL/I" compilers, the "program builder" GUI interface
version of the compiler is still an add-on that I never bothered to
install with my current "VA" PL/I for OS/2 compiler version 2.1.
VJ>JdBP coded a DLL to supply 32-bit counterparts of Vio, Kbd and Mou
>(with or w/o unicode support). AFAIR he annouced the package in
>OS2PROG. Look for this:
See my post to Andy Roberts for my excuse that adopting JdeBP's
solution would be not worth the effort it would require :-).
ML> Secondary purpose of this post: There has been no traffic for
ML> about two weeks in either this echo nor in OS2REXX...
VJ>Your post was the first in OS2PROG since 4 July.
It has already provoked two responses :-). Today, I am throwing in
my responses to those responses: two more. If this keeps up, we may end
up with a thriving echo again! Now, how do we get the OS2REXX echo
going?
Regards,
--Murray
<Team PL/I>
___
* MR/2 2.30 #120 * Never send a PM program to do a text-mode job
--- Maximus/2 3.01
* Origin: COMM Port OS/2 juge.com 204.89.247.1 (281) 980-9671 (1:106/2000)