Apr 90 Letters
Volume Number: 6
Issue Number: 4
Column Tag: Letters
Great Books for Developers 
By David E. Smith, Editor & Publisher, MacTutor
Bring out the books
Kirk Chase
Anaheim, CA
As assistant editor, I am constantly asked, “what product could help me?” Now
MacTutor’s library of books is fairly extensive. The trouble with technical computer
books is that they get out of date rather quickly. This problem has lessened some as the
Mac becomes more standard in its routines. Coming out on the market (which you’ll
find right about now in bookstores when you read this) are a number of books that will
no doubt find themselves in every developer’s library.
Addison-Wesley has a number of books released or soon to be released.
Macintosh® Inside Out is a new series of books covering the evolving Macintosh
technology. The first two deal with object oriented programming (does anyone not
know of OOP’s importance?). The first book by David A. Wilson, Larry S. Rosenstein,
and Dan Shafer (very well known and well respected individuals) is called
Programming with MacApp®. This book covers OOP using MPW, Object Pascal, and
the MacApp class library. The book will also be available in a book/disk package.
The second book, due out in August, is by an equally known author, Dan Weston.
The book is entitled Elements of C++ Macintosh Programming. This book will cover
the C side of MacApp.
If this were not enough, there are two books already out by Addison-Wesley that I
highly recommend. The first is called On Macintosh Programming: Advanced
Techniques. This book written by Daniel K. Allen. In it, Mr. Allen gives example after
example of useful tools and applications. Another book out is Macintosh Programming
Primer by Dave Mark and Cartwright Reed. This book covers THINK C as a way to the
toolbox. Anyone wishing to work in this fine environment has found accessing the
toolbox a little tricky. This book should bring you up to speed.
It is quite evident as to the commitment of Addison-Wesley in providing high
quality, technical books for the Macintosh developer.
File Manager never passes back ioNamePtr
S.C. Kim Hunter
Laguna Hills, CA
Steve Brecher (Letters, MacTutor, Jan 90, INITs in Pascal or C) made a point
that is worth re-emphasizing. The File Manager NEVER passes a pointer back in
ioNamePtr for any of the File Manager calls. Inside Macintosh is a bit misleading so
that someone not quite up to speed can get faked out, as I was when I first attacked the
File Manager, and as was the writer of the C Workshop INITs article in the Oct 89
MacTutor on which Steve was commenting.
In the description of the function PBGetVol, Inside Macintosh, page II-104, says:
“PBGetVol returns the name of the default volume in ioNamePtr...”. Inside Macintosh,
page IV-131, attempted to clarify that with: “PBGetVol returns a pointer to the name
of the default volume in ioNamePtr...”. Both are misleading. Also the parameter block
arrows drawn for PBGetVol and PBHGetVol show ioNamePtr’s arrow pointing to the
left, suggesting a pointer is returned. (Other calls with left arrows are PBGetWDInfo
and PBGetFCBInfo, and some show both directions). Until I figured out that this is
misleading, I thought that the File Manager was allocating memory and passing the
POINTER back. Many erratic crashes ensued using calls when I didn’t care about the
name.
PBGetVol doesn’t return anything in ioNamePtr. Both volumes should state:
“PBGetVol returns the name of the default volume in the address pointed to by
ioNamePtr (unless ioNamePtr is NIL)...” Before using ANY File Manager low level
calls, you must either set ioNamePtr to NIL or allocate memory for a Str255 and put
the pointer into ioNamePtr. This is clearly stated on Inside Macintosh pages II-88 and
IV-104.
I enjoyed both INITs articles and Steve Brecher’s comments.
In Search Of Macintalk
Steve Halls, M.D.
#303, 3837 Luther Place
Saskatoon, Saskatchewan
Canada, S7H 4B1
Can your readers help me locate and contact Joseph Katz and Mark Barton, the
programmers who created Macintalk? I would like to hear the story behind its
development, and how it ended up “unsupported” by Apple. (I understand that Apple
does not have the source code.)
Secondly, have any of your readers had experience on other computer systems
where there is a significant component of “speech” in the user interface? I would like
to know what kinds of spoken interaction are friendly and helpful, and what is
redundant.
I am the creator of Talking Moose ( currently at v2.3), and for the upcoming
System 7, I plan to modify that technology into a background application, providing a
general speech and face animation facility. (Applications could request speech by
sending messages using the Inter-Application-Communication.) And I want to include
some plug-in modules for new abilities such as: talking to the user by name, saying
Thank-you where appropriate, and calendar/time reminders. What other uses for
speech have your readers thought of?
Modula 2
Thorsten Kramp
West Germany
First of all I want to thank you and the MacTutor team for the best Macintosh
Magazine available all around the world (I subscribed via Pandasoft, Berlin); every
article contains valuable information and is interesting and entertaining to read. But
now I have a question and I hope anybody at MacTutor may give me a hint.
First of all I programmed a few years ago in good old Turbo Pascal before I
switched to THINK C about a year ago. I’m completely satisfied using C but when I’ll
start computer sciences in October, I’ll need a Modula-2 compiler. Well, I couldn’t
find a contributing editor specialized in Modula-2. So I hope you can recommend one
Modula-2 compiler for the Macintosh; I’m using a Macintosh SE/30 4/40. I read
about three current available compilers. Apple Germany also distributes a Modula-2
Compiler with its MPW, but it’s quite expensive because I don’t own the MPW Shell at
the moment (about 1100,00 marks - about 500-550 dollars I would guess). Is it
worth the money? Please give me a hint to get the right Modula2 Compiler, thank you
very much.
[Unfortunately, I do not have much experience with all the different compilers on
the market. Maybe some of our readers can be a help with their suggestions.
Might I suggest you contact MetroWerks at Mail Stop #95, Hudson Heights,
Quebec, Canada J0P 1J0. Their standalone compiler is only $179. They have a
version for MPW ($150 alone and $275 with the MPW) They also have a Start Pack
for $39 which would give you a flavor of their compiler. Their phone number in
Canada is 514-458-2018. -ed]
True Basic Contest Winners
Kirk Chase
Anaheim, CA
In West Lebanon, New Hampshire, True Basic just finished their 1st Annual
Best-of-Basic Contest. Almost fifty entries using Macintosh, IBM, Amiga, and other
platforms competed for $1500 in prizes.
The winner was Eugene Zaustinsky, a professor of mathematics at SUNY/Stone
Brook. His entry was called Plotsurf and was under the Educational Applications
category. His application plots graphs of the function z=f(x,y) and shows level
curves, gradient vector fields, partial and directional derivatives.
Mouser for THINK C
Greg Poole
Fairfield, IA
There is a SmallTalk-like browsing tool out there called Mouser which makes
learning the THINK C Class library much easier to learn and deal with. The most
recent incarnation of Mouser is 1.2d5, and it is available on AppleLink in the MacApp
discussion folder; it may also be available on CompuServe, but I am not sure about
this. Mouser is written by Mary Boetcher of Apple Computer using MacApp and is
primarily used for browsing (or Mousing) Apple’s MacApp and C++ files, but it can
be “fooled” into parsing THINK C 4.0 code with the following changes to your files.
Here is the latest on how to get Mouser 1.2d5 to work with THINK C 4.0.
1. Add the following macro just before the definition of CObject in CObject.h:
/* 1 */
#define class struct /* macro for Mouser */
struct CObject:indirect /* Class Declaration */
{
}
Since CObject.h eventually gets included in all compilations, the macro will be
globally available.
2. Change all header files in THINK C folder Core Headers and More Headers by
replacing ‘struct’ with ‘class’:
/* 2 */
class CObject:indirect /*Class Declaration */
{
}
Since all members of THINK C classes are public, there is no need to add the
‘public:’ qualifier before the instance variables and methods.)
3. From now on, use ‘class’ instead of ‘struct’ when creating new classes
/subclasses.
4. Recompile your project to verify that the macro definition has not goofed
anything up. Now it’s time to Parse! Start up Mouser, Cancel the opening dialog box,
then choose C++ from the Parse menu. Next choose New Parse from the File menu.
Parse all the files in the Core Classes, Core Headers, More Classes, More Headers, and
of course the headers and C files of the application you are currently working on.
5. To keep your Mouser browse file up to date, just Reparse your application
header and C source from time to time. Once you’re hooked on browsing, you’ll never
want to program in the dark again.
Thanks again to Mary Boetcher for making Mouser available.
[This points out the lack of modifiable environment that THINK has. The tools in
MPW help make it rich. And there are scores of tools for MacApp. Yet THINK’s superb
environment lacks a simple tool interface. Anyone? Anyone at all? -ed]
MacPro™
key tronic®
P.O. Box 14687
Spokane, WA 99214
A new keyboard has just entered the race against third party product Mac-101
by DataDesk. The MacPro by key tronic offers a 105 key board with adjustable legs.
It sports a large "L" return key ending the fumble time. It is also packaged with Tempo
II, a macro driver. This keyboard has dual IBM and Mac legends and an LED "power on
indicator. The keyboard retails for $197.