| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | Pl/i Csd#6 |
On Friday, 96/01/05, Murray Lesser wrote to David Noon about "Pl/i
Csd#6" as follows:
ML> clean version. Some one at Santa Teresa must have made a mistake!
ML> When I re-compiled and re-linked my multithreaded utility, the EXE
ML> file, as well as OS20MEMU's report of "owned" and
"resident" memory
ML> DECREASED from the previous version!
Hi Murray,
I also installed CSD#6 about a week ago. I also noticed some
improvements in the object code. It is a pleasant reversal of the
recent industry trend.
ML> Also installed CSD#2 for the Toolkit (same procedure) but haven't
ML> tried it yet. As you probably know by now, the message on the IBM
ML> PCC BBS OS2PROG conference to the effect that the 7 diskettes
ML> included five for the compiler CSD was wrong.
I know. It was my wild guess, and it was wilder than I thought....:-)
ML> What they have done
ML> is added a new PM "parsing text editor" (is a PM text editor an
ML> oxymoron?), ILINK and ILIB. Have you tried any of them yet, and do
ML> you have an opinion?
I have tried the "Live Parsing Editor" (LPEX) and it is very, very
good -- especially for freeware. If you like GUI editors that can
emulate ISPF (Yeah!) this is the one, and the price can't be beaten
(apart from the cost of the download).
I am about to give ILINK a try, but I haven't had too many problems
with LINK386, least of all when linking PL/I programs.
I will also check the %include files to see if they have gotten rid of
any more buglets.
From one of your earlier messages:
========================================================================
out of lower case keyed input; I couldn't figure out how to convert CHAR
data to BIT data (so I could play & on it) and then back to CHAR data.
My wife, who worked in IBM Research (inventing design automation
algorithms written in PL/I for the 15 years previous to retiring in
1988) insists there is a way to do the bit manipulations from CHAR data,
but she has carefully forgotten how to program and is not about to
figure it out again just for me . She thinks she wrote subroutines
(in PL/I) to do it. While TRANSLATE has solved my immediate problem, I
would still like to know how she did it. Any suggestions?
=======================================================================
If all you want to do is convert a CHAR(1) to a BIT(8), the built-in
function UNSPEC() does exactly that. It also does a lot more and can
trash memory if used unwisely, so handle it with care.
For example:
DCL Char_bits BIT(8) ALIGNED,
Char_byte CHAR(1),
UNSPEC BUILTIN;
/* After we have a datum in Char_byte */
Char_bits = UNSPEC(Char_byte);
/* We can now fiddle with Char_bits using SUBSTR,
&, |, or whatever */
/* And now back to character */
UNSPEC(Char_byte) = Char_bits;
It is the latter usage, as a pseudo-variable, that can be dangerous,
because you are telling the compiler "I don't care what type of data
are there, treat that location as a bit string and move this bit
pattern into it." You are suppressing all type checking on whatever is
between the parentheses of UNSPEC().
You might have seen Ken Prevo and me exchange messages about this on
the IBM PCC BBS. Ken used to trash MS-DOS with it quite regularly, by
all accounts. At least in ring 3 under OS/2, all you will get is a
GPF, which will become ONCODE=8094 in the PL/I ON-unit for the ERROR or
ANYCOND condition.
Regards
Dave
* KWQ/2 1.2i * When it comes to paradigms, shift happens...
--- Maximus/2 3.01
* Origin: DoNoR/2,Woking UK (44-1483-725167) (2:440/4)SEEN-BY: 270/101 620/243 711/401 409 410 413 430 808 809 934 955 712/407 515 SEEN-BY: 712/517 628 713/888 800/1 7877/2809 @PATH: 440/4 141/209 270/101 712/515 711/808 809 934 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.