Subj : Translating Case From Ba To : Murray Lesser From : Mike Luther Date : Thu Feb 15 2001 12:09 am Oh boy! More wisdom cometh Murray! ML> David really works hard at proselytizing for PL/I :-). He got me ML> hooked in 1995 and I've never turned back; I have forgotten most of the ML> C that I ever knew. That's a strong statement. ML> I'm not sure about a PL/I for DOS, but there is a subset of PL/I for ML> CP/M, if you are still using that system, somewhere :-). As a matter of fact, my H-89 has CP/M as well as HDOS, I think! You know that Gordon Letwin who was the architect for the original OS/2 foray over at M/S was snatched away from Heathkit, where he wrote MSDOS, if my memory is correct! I sort of thing that the Z100 I have will also run on CP/M and I also have the M/S basic compiler for CP/M if my memory is correct! ML> However, if you are not in too much of a hurry at run time, you ML> could write your application in REXX. I investigated that .. but actually gave up on it, as one reason, for precisely the exact same reason you noted above. I carefully avoided all CHAIN operations and chose to carry all the required parameters for control passage between executables as disk I/O. I thought that made more sense in planning for portability. Thus executable shifting and load time is important. That is also one of the reasons I winced when I tried Visual Age for Basic in OS/2 which I bought and have! Sure the ball bounces! But by the time you ever see it bounce, your opponent has already stolen the interpreter and scored ten goals with the silly compiled ball! If, a la as PowerBASIC finally did for WIN-ugh, M/S and IBM had ever released a full compiler version of VB, that would have run on both OS/2 and WIN-ugh, the world would have been VERY different today! ML> (Due to unfortunate circumstances ML> that should have been under my control, I now need Object Rexx for ML> Windows in a Win98 partition; you will find it on one of the DevCon ML> discs in that suitcase.) Giggle. ML> REXX has the same SELECT construct as does ML> PL/I. (REXX was derived, in part, from PL/I; in the same sense that the ML> original line-by-line-compiled Dartmouth BASIC was derived from ML> FORTRAN.) I got my copy of REXX for DOS (Personal REXX v 3.0 by Quercus ML> Systems) in 1991. It may still be available. Here comes the education! Yes, if true, a part of portability sure might be made between OS/2 and back-level DOS! But now Professor Murray, student raises hand in back of class .. ML> It is fairly easy to port applications between PL/I and REXX, ML> although there are constructs in REXX that are not available in PL/I ML> (e.g., I had to write a PL/I subroutine using a KBD API call to get an ML> equivalent to SysGetKey('noecho') in order to program "Press any key to ML> continue" in PL/I). Hold that for a moment, the next part you wrote is the key to why I'm sort of stuck .. ML> Oh yes: I have a few programs written in BASIC PDS 7.1, compiled for ML> DOS, that run fine under OS/2 in a VDM. One of these days, if I live ML> long enough, I will reprogram them in PL/I for OS/2. Here is where, in my own really rather uninformed view, and I'm not that good a programmer at all, this whole game of portability went BONK! And not Son of Bonk either! When Gordon Letwin crafted the foundation for OS/2 he also happened to be the Chief Architect of the PDS Compiler! Somewhere in my printed text I happen to have read his remark, I think it's his, that, "The arrival of a new language is marked by the arrival of the first true compiler." That's, in my feeble understanding of things, a very correct statement. Because of the way that PDS 7.1 was written to integrate the assembler operations for the HEX21 interrupt work so well into BASIC, we got two very,very important things cross-referenced to both OS/2 and DOS! We got a terribly simple-to-implement full network file I/O system with file lock,record lock; shared multi-user tools. And to a lesser note, we also got the entire ISAM file engine buttoned up so that even a dunce like Mikey could learn to use and implement full networked file I/O with deadlock intervention and all that! You know that insane feeling, the whirl of the dance, it plays with you, it plays with you. And when the room quits spinning, "Morning is breaking, comes the first morning ..." Gee, playing that hymn on a Baldwin concert grand is just like the computer keyboard when I first discovered INT21, I swear it! I swear it! We have no way to share emotions unless we have shared them, perhaps that try at it will do. INT21 opened up both a concomitant OS/2 development operation in DOS-VDM's together with a way to supply code that worked perfectly under Novell, even to the ability to adjust timing priorities to optimize it all! So, my suite suddenly became a full fledged network-aware and totally functional game. But only under Novell; nobody would listen to OS/2... sigh. They all insisted on QEMM, and Desqview, and so did I, in support of things, for a long time. I still have somewhere, I think, the FidoNet post Bob Juge posted that chided me for even comparing DesqView to OS/2. I think that is one of the landmark posts I've ever had addressed to me. I listened CAREFULLY to what Bob said, took his advice. But ... in doing so, the superb work of Gordon Letwin with PDS 7.1's FAMILY approach to programs and, specifically,the business of full network aware I/O, has been, to me a mess elsewhere. Where do I go to get the complete cadre of INT21 network tools, in such a concise form as I've learned and written stuff for shared-locked file I/O with other than C? Remember! It isn't that it can't be done in other languages that are available in OS/2! It's that I have to be able to extend the services *BACKWARDS* in DOS, yes,pure DOS for another seven damned years after I make the toolset switch! That and another of Gordon's diamond sharp gifts, variable length string arrays with the assembly language automatic trashman! I listened! I listened! I learned a little, enough to know I ain't very smart. I need two things, big time! I need multi-dimensional variable-length string arrays, that, in fact, can be dimensioned, not as you might suppose most folks do, but as DIM A$(-150 to +150, 10), or the like, and full network aware file I/O shared read-write lock and deadlock protectable. I flip entire facility control template array logic to the reverse dimension in the arrays for slush and comparative purposes, from data in full shared mode network files. It's more of this complex go-no-go logic enabled in the suite here. Can REXX, for example, and PL/1, in one easy common source code caper,provide me with full support for OS/2, WIN-ugh, and DOS, for these? And don't you, huge grin, tell me like Paul Sittler used to and keeps telling me, "Write your own functions, stupid!" I won't live long enough! I've spent many hours with Ileff vectors, all that. I still can't quite get Watcom C++ to let me get through the string game, but I'm close. I think that's doable, and I know the file I/O bit is. PL/1(i), whatever, OS/2, Win-ugh, DOS .. and REXX, are they really suitable tools for poor Mikey? Mike @ 117/3001 --- Maximus/2 3.01 * Origin: Ziplog Public Port (1:117/3001) .