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 ___ * 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) .