Mar 89 Mousehole
Volume Number: 5
Issue Number: 3
Column Tag: Mousehole report
Mousehole Report 
By Rusty Hodge & Larry Nedry, Mousehole BBS
From: rusty (Mr. Rusty Hodge, Orange, CA)
Subject: Symantec's Upgrade Policies
In Symantec’s favor- I received my More II upgrade a mere couple of weeks after
sending it in. (about 18 days, I think).
From: jefff (Jeff Finkelstein, Willingboro, NJ)
Subject: MPW 3 vs LS C & Pascal
I am interested in upgrading both my LS Pascal and C to the latest revisions. I was
using MPW, but the cost of V3 puts it out of my league (boy am I P.O.’d; I got so mad
that I deleted anything related to MPW off my disks). Anyway, when I called the THINK
Customer Service #; they said that all I had to do was to cough up the bucks for the
upgrade, include 1 disk from each product I wanted to upgrade, and they would send me
the new version. Is this real or a fantasy? Where is a lowly programmer to turn?
From: jhowarth (Jack W. Howarth, Houston, TX)
Yes, that is probably all you need to do. Actually, my own experience with THINK since
they were bought out by Symantec is that a good cover letter and all the required
materials (masters and receipts) gets you far better service than using their normal
upgrade form. I sent a cover letter in for the free LSC 3.0 upgrade in June (I bought a
new copy of 2.15 at that time) and received 3.0 by early August. I just got a letter last
week asking if I wanted to upgrade my 2.15 to 3.0. God, knows how long I would have
waited if I had just sent in my registration by itself. As to MPW 3.0, I understand that
it requires 4 megs for the SADE debugger to work so that is a fairly expensive route
anyway.
From: rdclark (Richard Clark, Tustin, CA)
Subject: MPW SADE
Is the SADE team at Apple known as “The SADE-ists”??
From: pmilitch (Peter Militch, Laurel , MD)
Subject: RESEDIT
I was experimenting with RESEDIT and using it to look at some applications. I found
that it will not open the CODE 1 resource in WORD or MACPROJECT 2. On other
applications, no problem. I do not get a cannot do message or any indication of why it
doesn’t work - it just doesn’t. Any theories on why this might happen.
From: emmayche (Mark Hartman, Fullerton, CA)
ResEdit won’t open resources that are larger than a certain value. What that value is,
I don’t know, but it’s very obstinate about it. [The CODE 1 resource in Word is
probably the heart of the program itself, some 300K or more? Why would you want to
open this anyway? ResEdit is not a disassembler. -Ed]
From: jhowarth (Jack W. Howarth, Houston, TX)
Subject: LSP 2.0
I found that under MultiFinder the LSP 2.0 works better if you change the application
size in the GetInfo box to 2048K. One meg works okay on compiles, but when you get
knee deep in debugging with a few files open and program code in memory, the whole
thing locks up if it runs out of memory. I saw that on a couple occasions when I tried to
load a file where the debugger had run into a run-time error. As soon as I increased the
appl size for LSP, the problem disappeared.
I guess that means quite a few of the “bugs” that THINK gets reported may actually be
memory management problems of the environment.
From: thecloud (Ken Mcleod, La Habra, CA)
Subject: Re: LSP 2.0
More like: they have no concept of memory management. Used to be, in v1.11, that if
you opened a DA text editor (your ONLY alternative, if you wanted to edit RMaker/Rez
files!!! think about it!), LSP would complain about a memory blockage and refuse to
run your project. Now, in 2.0, it doesn’t complain anymore. It just bombs. [This is not
true. We have tested LS 2.0 Pascal with several DA text Editors, edited RMaker text
files right along with project development, compiled and ran the program and have had
no problems whatsoever. The ability to set the bundle bit and applecation creator tag in
LS Pascal is a great new feature of this version, and it was all done under Multi finder
with a active color monitor on a Mac II! -Ed]
From: jefff (Jeff Finkelstein, Willingboro, NJ)
Subject: MPW Upgrade Costs vs LS Products
I am planning on starting to convert my code over to Lightspeed from MPW. I just can’t
believe that Apple want’s us to drop another couple of hundred into MPW just to
upgrade to the next release. As far as I can tell, almost everyone else does that for free,
when you bought the most recent version.
Oh well, enough whining. I’ll just fork out the bucks for the THINK stuff and continue
on. Thanks again.
From: cmkrnl (Eric Slosser, Boston, MA)
Subject: LSPascal / LSC
Although LSPascal has the ability to include LSC libraries in its projects, LSPascal
doesn’t initialize the global data declared in the C code. This makes C code that uses
initialized global data more difficult to turn into a library that will be usable from
LSPascal. The work-around is to write an additional C procedure which initializes the
C global variables, declare it as ‘pascal void INIT_GLOBALS()’, and call it once before
calling any other C procedures.
The kicker is this: C implements string constants as preinitialized global variables
while Pascal implements them as local data stored in the CODE resource after the
procedure/function code. The following statements in a library’s source code will all
work if the library is included in a LSC project but will fail if the library is included
in a LSPascal project.
DebugStr(“Here we are!”);
s = “READ”; /* s is declared as (char *) */
fopen( fName, “r”); /* fName is also (char *) */
In all of the above cases, the program won’t get the string you see in the source code.
Until LSC generates code that treats string constants as local variables, or LSP
initializes variables declared by LSC libraries, it will be extremely difficult to use C
code in an LSPascal project.
From: thotpolc (Bill Evans, Irvine, CA)
Subject: More Problem Fixed?
Rusty, does MORE II have the same arithmetic bug as MORE 1.0 and 1.1 did? In a MORE
document, find a header which has several children. Put a decimal number in each of
them, and make sure that each child contains only one numerical quantity. Make sure
that exactly one of these quantities is less than zero but greater than -1. -.53, for
example, will do just fine.
Then move to the parent of these children. Type Command =, which should add up the
quantities in all of the children and place the result in the parent.
Did the arithmetic work out right? In older versions of MORE, the -0.53 is
interpreted as 0.53.
When I pointed this out, I was thanked and promised a new, corrected MORE when it
came out. Never got it, of course. I’m inclined just to disassemble the monster and fix
the bug. Better the devil you know than the devil you don’t know.
This bug can get awfully embarrassing at tax time.
From: rusty (Mr. Rusty Hodge, Orange, CA)
Subject: Re: More Problem Fixed
That one has been fixed. However, the whole calculate thing has been totally done, and
doesn’t even resemble the old calculate function. In fact, I believe the new More is as
different from the old as More was from Think Tank.
From: kdc (Kevin Connery, Bellflower, CA)
Subject: General LSC/Symantec Comments
I recently called them with a request for information on LSC -- our company is
planning on doing some Mac development, and we’ve been using C on the VAX/MS-DOS
machines, so I tried to get some information.
Two weeks later I called again, and was told there was no record of the request --”Did
I have the name of the person I spoke with?”. I got through to a salesperson, who
offered to send information. A few days later, I got a SINGLE 8.5 x 11 page describing
the compiler.
If that’s the support a customer can expect, I can’t in honesty recommend the product,
no matter how good. Consulair and MPW at least supplied useful information.
Or is there someone specific who needs to be contacted?
From: rdclark (Richard Clark, Tustin, CA)
Subject: Re: General LSC/Symantec Comments
Did you call Symantec in CA, or Think in MA?? You’ll get better service if you call
Think -- at least “THEY” care about the product.
You’re better off just finding a local programmer who can show you the various
products instead of trying to ask the company. If is was a smaller company, you’d
probably talk to the owner/programmer and he would tell you all -- just for the love
of talking about his product (and he wouldn’t get in trouble.)
As a company gets larger, the technical staff is pretty much required to do “their”
jobs and can’t afford to really talk to people. Disclaimer: Actually, I feel that it’s in
their benefit to talk to/listen to customers as much as possible, and that making and
selling a successful product is everybody’s job. But I seem to be in the minority in
today’s business community.
From: rusty (Mr. Rusty Hodge, Orange, CA)
Subject: Re: to #267 (LightSpeed C)
Most companies seem to be buying lots of Lightspeed Cs and a few MPWs. All
preliminary development is done in LSC, and the final product us compiled in MPW.
From: mattjo (Matthew J. Orland, L A, CA)
Subject: Re: Symantec Upgrade & MacApp
I just got my upgrade to LS Pascal. Only now do they tell me that it is not MacApp
compatible. When I called them over the phone originally to order the product they
said that it is MacApp compatible when it is not compatible at all. I still have not got
my LSC 3.0 upgrade -- after mailing the cancelled check to them by certified mail.
They finally agreed that they made a mistake. Now every time I call they say that the
order was shipped “yesterday.” This has been for the past 2 weeks. I should have
used my credit card on this order too, so I could cancel it.
From: thecloud (Ken Mcleod, La Habra, CA)
Subject: Re: INIT/cdev communication
I’m having a problem with tracking a scroll bar in my cdev’s DITL. The Control Panel,
attempting to be helpful, calls TrackControl() BEFORE sending a ‘hitDev’ message, so
any attempt to use the no parameters, so naturally, a click in the thumb will kill the
cdev instantly). I suspect the solution requires trickery (perhaps changing the
“itemType” of its dialog item?). Has anyone else run into this?
From: lsr (Larry Rosenstein, Cupertino, CA)
Subject: Re: INIT/cdev communication
You may need to write a custom CDEF to replace the standard scroll bar CDEF. This
CDEF can simply call the original CDEF for everything except the autoTrack message.
It is whether you are dealing with a indicator or not.
From: thecloud (Ken Mcleod, La Habra, CA)
Subject: Re: INIT/cdev communication
Writing a custom CDEF within my code might work; it does seem like a lot of
unnecessary coding, though :-( ‘hierDA’ is an example of a cdev that includes a ‘fully
functional’ scroll bar in its DITL... the standard scroll bar proc is specified in the
resource file, but perhaps he does some runtime twiddling... hard to say. I’ll
experiment. I enter a loop which seizes event-handling control away from the Control
Panel. Each time through the loop, I check EventAvail() to see if there’s an event
(other than a null event) needing to be handled; if there’s a mouseDown, and it’s in the
scroll bar’s itemrect, I call my DoScroll() function to handle it. All other events
(including mouseDowns NOT in the scroll bar rect) cause the loop to be exited,
returning control back to the Control Panel...and then back to me, on the next null
event.