Oct 87 Letters
Volume Number: 3
Issue Number: 10
Column Tag: Letters
Segmented DA’s
Tom Saxton, formerly
University of Utah,
Mathematics Dept.
I have an idea for yet another article. I have been doing some consulting work
with ALP Systems in SLC where we have managed to figure out how to write a
segmented DA in LightSpeed C. There are several fairly subtle problems we have found
and cured. Jon Nicponski and I are interested in writing up an article with a simple
example program to illustrate the ideas. Are you interested? Finally, beginning next
week I will be working for Microsoft as a “Program Design Engineer.” [Would love to
see your ideas on the Segmented DA, and while your at it, perhaps in your new calling
at Microsoft, you can pass on some of MacTutor’s complaints about the poor quality of
Macintosh languages coming out of Microsoft. The MS Basic compiler has been a
constant source of complaints in our letters department and the problems with Fortran
are legend. These remain the only two Microsoft products after all this time, which in
itself is an indication of how your new employer feels about the Mac. -Ed]
Colorizing Programs
Scott Berfield,
Jack of All Trades
Mindscape, Inc.
In a recent issue (September 1987) I read with interest that SuperPaint can be
used for colorizing logos for use in other programs. This is a technique with which I
am familiar, but I don’t use SuperPaint for it. I use GraphicWorks 1.1 (of course, I
get paid to say that!) for the same thing. GraphicWorks allows you to set fore and
background colors for every one of 64 objects in a panel. That panel can then be copied
and pasted as a PICT that retains the color and transfer mode information. The one real
advantage I can see to using GW 1.1 for this is that it runs in multi-bit mode, so you
get to see and edit in color on the screen of the Mac II. Another interesting trick is to
obtain a 256 color Pict from somewhere and paste it into GW 1.1 as a PICT -- it will
retain its colors -- and then combine it with other elements to create your image.
Then use that combined PICT to create your dialog. This works for color scans from a
variety of sources, PixelPaint PICT images, and Image Studio grayscale images... it can
give a program a dynamite look!
Note: Early versions of GraphicWorks 1.1 may have problems when run an a Mac
II. If you run into such a problem, call Mindscape’s customer service number (in the
program’s manual) and they will get you the newest version. This only affects Mac II
users, so if you’re using an SE or +, you should be fine.
Finally, I notice that an awful lot of the letters and notes in your magazine are
from people who are writing games for the Mac. I would like them to know that
Mindscape is always interested in looking at creative work. If you have a program you
think is puvlishable, please don’t hesitate to contact us!
Attaching Icons To Applications Created Using MS Basic Compiler
David K. Wyatt
Ithaca, NY
There are probably better ways of accomplishing this particular task than the
method outlined here, but this method is relatively quick and simple. The only software
tool required is Apple’s ResEdit (the latest version I have is 1.0.1), though an Icon
Editor can also assist in doing some of the work. The first thing to do is to remember to
work on a copy of your application, preferably on a floppy.
Open ResEdit, single-click on the name of your application, and choose Get Info
from the File menu (or hit Ctrl-I). The first thing to do is to give the application a
unique four-character Creator name-- BODE in my case. The second thing to do on this
window is to turn the Inited box off and the Bundle box on. Then click on the go-away
box and, after answering positively when asked if you want to save the Info on your
file, you will be back to the list of files on your disk.
Next, double-click on the name of your application, and you will get a list of the
current Resources installed in your application. This list is short, and in most cases
will include only these: ACRL, ALRT, BASI, CODE, DITL, and STR. Hit Control-N (or
select New from the Edit menu) and you will get the New Type Name: box. The way this
particular element of ResEdit works is that you either choose an existing resource
Type from the list on the left of the box, or type in a new resource type in the box in
the upper right.
Here, you want first to make a resource for your own, special application, giving
it the Creator name you gave above. When you click the OK box (or hit Enter), you
will be given a blank window. To get something to fill in, hit Control-I, and you will
get the window. The only thing you want to do in this window is to change ID: to 0.
When you have done so, click the go-away box and you will be back to the listing
of resources installed in your program-- now including (in the example here) BODE.
Again, the next thing to do is to hit Control-N to create a new resource. This
time, use the scroll arrows to find ICN#, select it, and hit OK. You will then get a
blank window, with no icons or editing template in it. You can do one of two things
here. Either Paste into this window an icon you have created using an icon editor, or
hit Control-N (for New) and get the icon editor frame.
ResEdit will automatically assign a resource ID number to the icon you create
here, and you should carefully note down its number such as 19328. When you have
completed editing this icon, hit the go-away box and you will be returned to the ICN#
window, with your new icon pictured there. Hit the go-away button again to return to
the list of resources, which will now include ICN#.
There are two other resources that the Mac needs in order to tie together the
program and its icon-- a FREF and a BNDL. (We are proceeding in the order in which
we are, because each step requires an ID number generated in the previous step.)
First, hit Control-N (New) again to signal that you are creating another new
resource, and this time scroll down and choose FREF and click OK. You will get a
window called “FREFs from .” Hit Control-N again, and you will get the FREF editor.
You need to make sure that the File Type is APPL, and that the icon localID is 0.
That’s all. If they are not so identified, change them. Note down the FREF ID number,
which in the case illustrated is 1948. Then hit the go-away button to get back to
FREFs window, and again to get back to the list of resources, in which you will now see
the resources you have added so far-- BODE (your application Creator Type), ICN#,
and FREF.
You are now ready to bundle them all together in a package-- view this next step
as providing the machine with a way to know what goes with what. You need to create a
BNDL resource.
Again, hit Control-N and get the “New Type Name:” box, select BNDL, and click
OK. You will see a window titled “BNDLs from .” Hit Control-N, and you will get the BNDL Editor window.
At first you will only have the first part of this window, down to the first row of
asterisks. Insert the OwnerName (BODE in our example) and make the owner ID 0.
Then double-click on the row of asterisks and you will get the next section of the
window (you will have to use the scroll bars to see it all). Enter the information for
the ICN# and FREF resources. Extend the portions between rows of hyphens by double
clicking on the hyphens, and get another row of asterisks by double-clicking on the
asterisks. Be sure to use 0 for localID in both cases. (I do not know why in both cases
below there are blank sections.)
There is one final bit of business left. Two of the resources in your application,
as compiled by BASIC Compiler, are generic-- the same for every application unless
otherwise changed. They have to do with what is shown when you click on the
“About...” in the Apple menu.
Double-click first on the ALRT resource, and you will be shown that two ALRT
resource exist, with ID numbers 265 and 266. Double-click on ALRT ID#266 and
you will be shown the alert box showing “Created by BASCOM.” This is a rather bland
message to give those who will use your application-- and it’s also, if you come to
think about it, insulting to you! You probably want to tell the users who really
“ created” your application.
Click on the “Created by BASCOM.” You will find you can move the text around,
and change the size and shape of the box. The same is true of the OK button.
Double-click it to edit the text within, and you will get yet another editing window. The
highlighted text can be edited in the usual fashion, and you can make it extend for
several lines. Click on the go-away box to return back to the previous level, and
re-shape the text box and adjust its placement. Click go-away boxes to return to the
resource list.
Finally, you need to change the message that is displayed on the Apple menu.
Double-click on STR (there is a single space following the R, which is a part of the
name of that resource) and you will get the list of STRs in your application,
Double-click on STR ID=256. You can simply edit “theStr” to say whatever you will.
When you are back to the desktop, hold down the Option and Command keys while
re-inserting your disk into the machine. When asked if you want to rebuild the
desktop, answer affirmatively. You are doing this in order to force Finder to take note
of the fact that you have given your application a new icon. When the Finder has done
its job and you open the disk, you will find your icon displayed on the desktop. [This is
another area where Microsoft should have provided the means of linking with a
resource file so that application icon information could be accomplished in the normal
manner. -Ed]
LaserWriters Self-Destruct after One or Two Years!
David E. Smith
MacTutor
A failure mode for the LaserWriter printer has been observed. After a year or
more of use, the fuser roller under the green felt cover begins to disintigrate. This is
caused by the rubbing of the rubber paper guides on the roller, leaving circular
groves in the delicate silver finish of the fuser roller. The result of these groves,
which line up perfectly with the rubber paper guides on the green felt roller covering,
prevent toner on the paper from being fused properly to the paper as the paper passes
over these roller imperfections. The groves also mar the paper surface, leaving a line
on the paper. The failure mode seems to be the breakdown of the silver covering of the
fuser roller, leaving it brittle and susceptible to the scratching of the surface by the
paper guides. We know of two LaserWriters in this area which have this problem and
suspect there may be others. If you know of a LaserWriter with this problem, please
contact MacTutor. We do not as yet know what plans, if any, Apple has to fix this
problem. Since it is mechanical, the fix will not be easy and probably will require
returning the printer to Apple. We suggest all LaserWriter owners get Apple Care
immediately before this problem manifests itself as the fix could be quite costly. More
next month after we find out what the Apple service organization proposes to solve this
problem.
A another failure mode that is not easily repaired is changes made to the EEPROM
inside the LaserWriter. The printer apparently contains important start-up
information in EEPROM inside the machine. It is possible to change this information by
careless or deliberate postscript programming. If this is done, the postscript board
must be completely replaced at a cost of $800, since the EEPROM is not replaceable.
Apple, in their infinite wisdom, has designed a machine that through programming, can
be destroyed and there is no way to re-program the EEPROM to re-set it’s parameters!
Therefore, you should be very careful not to allow any “foreign” postscript code to be
sent to your LaserWriter. Imagine the howl if you could program your tv set to
self-destruct without any way of re-setting it! However, a service technician told me
that he thinks there is a secret method by which the EEPROM can either be
re-programmed or erased so the LaserWriter can be made operative, since he claims
an Apple Service Class instructor did just that, but apparently the secret has never
been revealed. The reason Apple is so jealous of this bit of know-how is that the
EEPROM contains the copy count and when it’s reset, the count goes back to zero. Still,
it is inexcusable that a machine that costs $5,000 could be made useless by careless
programming. Hasen’t anybody on the LaserWriter design team ever heard of a reset
button?
IAZNotify Defeated
Steve Halls
Edmonton, Alberta
Why do the Apple programs “ResEdit” and “MPW Shell” purposely defeat the
“IAZNotify” mechanism (see tech note #64A) by clearing this ointer just before exit.
For those of us who attempt to write memory resident tasks, this behaviour causes
real problems. Generally speaking, a memory resident task may need a hook at the
beginning of an application to open files and drivers, and a hook at the end of
anpplication to close file/drivers and unpatch traps. If an IAZNotify proc that restores
traps is by-passed, those patched traps will bomb in the next application. We need a
consistent mechanism, and if Apple must subvert this one, cany they suggest another?
Enough said?
Is it true the MPW assembler creates incorrect machine code in some
circumstances? [I am not aware of such a defect, however, it may be true. -Ed]
Is APDA selling an updated version of MacinTalk that works on the Mac II? Does
this mean Apple is supporting MacinTalk? [Yes and no. APDA has started shipping a
Mac II version of MacinTalk, but no, Apple still refuses to acknowledge it’s existance.
-Ed]
Absoft Fortran Compiler Update
David E. Smith
We have gotten several complaints from readers concerned about the Absoft
68020 Fortran compiler which they have been advertising in MacTutor. Apparently
Absoft has not yet started shipping this product and a number of MacTutor readers who
sent Absoft money are hopping mad about this. One reader has threatened a postal
lawsuit over the issue. We suggest you contact Absoft directly to inquire on the status
of the 68020 version of their Fortran product before you send any money. You might
also want to be aware that a new MPW Fortran is currently going into beta test by
another company, and that this product looks very hot! We hope to have more
information on it in the next issue of MacTutor. The targeted release date for this new
Fortran compiler, which is said to be linkable to any MPW code, is the January
MacWorld Expo.
68020 News from Motorola
One of our readers has kindly sent us a copy of the Motorola RoadRunner
newsletter which contains some interesting tidbits on the future of the 68020 product
line. "Estimates are that our 68020 has upwards of 70% of the worldwide installed
base of 32-bit MPU's and 78% in engineering workstations. Our target for 68020
shipments this year is 700,000, meaning that this device will reside in close to one
million systems by year-end.
The article also credits the Macintosh II by saying that momentum is building for
the 32-bit MPU as the result of the maturing of many successful customer programs,
"a number of which are in the lower end of the price spectrum, such as Apple's highly
acclaimed Mac II." Hmmm, lower end of the price spectrum, eh? I'll try to keep that in
mind the next time I send in my $7,000 check for another Mac II and that's at
developer prices!
A few words on the progress of the 68030 were also included. First silicon on the
68030 was reached in April and initial deliveries are on schedule for the fourth
quarter of this year. The 68030 provides "significantly higher performance" than the
68020 at the same clock speed, while maintaining 100% software compatibility. The
68882 enhanced floating point processor is said to be on schedule for September
samples.