Sep 87 Mousehole
Volume Number: | | 3
|
Issue Number: | | 9
|
Column Tag: | | Mousehole Report
|
Mousehole Report
By Rusty Hodge, Mousehole BBS
SuperPaint Update
From: David W
Silicon Beach Software just released an update to Superpaint in order to fix a problem Superpaint has with the most recently released drivers (4.0) of the LaserWriter. The new version is 1.0p. You can obtain a copy either by mailing a disk to Silicon Beach Software or use the patching software that I just posted on MouseHole Download. If you try to use the patching program FOLLOW THE INSTRUCTIONS carefully. Among other things you must first place your copy of SuperPaint on to a 400K floppy; it wont work with an 800K floppy. Also you will need any version of the installer program that Apple distributes to upgrade system disks.
[The following post summarizes the Editors feelings on the issue of piracy and pre-release software, which recently became a hot topic on the Mousehole over Steve Brechers SuitCase program. -Ed]
Piracy & Beta Software
From: David Sternlight
Its not pious to say that taking someones property without their permission is theft. (i.e., TSPWTPIT). Its the law. If A is the beta tester and B is his friend, whether B knows he has received stolen property or not doesnt change the facts that B is legally liable. The profit, by the way, is in knowing about it or using it. Thats what intellectual property is all about. You dont have to make money from someones property obtained without permission for it to be theft.
If a developer wants the benefit of people seeing his beta and maybe buying the release, he has the option to circulate his beta. If he chooses not to do that, and imposes non-disclosure or non- distribution limits on it, then TSPWTPIT. You cant make it o.k.; only he can--its HIS property.
I believe that TSPWTPIT. I am under the impression the law says the same thing. No amount of rationalization will change this. It wont do to argue why it is a good thing to take someones property without permission. It wont do to talk around it. The only LEGAL way to get someone elses property is if they give it to you, or give someone else permission to give it to you. People miss this point with software because a copy seems not to affect the original; except for the cost of the medium, it seems cost-free. However, software is intellectual property and the law specifically recognizes that in this case, as with pirated tapes, passing on a copy is illegal. You are allowed to make a single copy for your own archive use under the copyright law. You are not allowed to give a copy to anyone else without permission. Beta or release version, it makes no difference; copyright is copyright. The law doesnt say, Oh yeah, if its a beta (or a pilot or test tape of a copyright song) THEN the law doesnt apply.
Code Length/Time in Sorting
From: Geoff Bryan
It is very difficult to generalize from length of code to length of execution time. The real issue is the quality of the algorithms you choose. For example, here is some code for a short but extremely slow sorting routine known as a bubble sort:
bubble(item,count) /* bubble sort */
char *item; /* item = ptr to char array */
int count; /* count = no. of elements */
{
register int a,b;
register char t;
for(a=1;a<count;++a)
for(b=count-1;b>=a;--b)
{
if item[b-1] > item[b]
{
t=item[b-1];
item[b-1]=item[b];
item[b]=t;
}
}
}
Even using register variables to speed things up, this has rightly been described as one of the worst sort methods ever conceived. The amount of time it takes to sort goes up by the square of the number of elements in the array, so the time gets much worse with bigger sorts. One of the better sorting algorithms is the Quicksort invented by C. A. R. Hoare. It takes up a bit more code, but for an array of 100 elements, can complete its work with only 1/5 the number of comparisons and far fewer exchanges than the bubble sort:
qs(item,left,right) /* quick sort */
char *item;
int left,right;
{
register int i,j;
char x,y;
i=left;
j=right;
x=item[(left+right)/2];
/* middle element = comparand */
do {
while(item[i]<x && i<right) i++;
while(x<item[j] && j>left) j--;
if(i<=j) {
y=item[i];
item[i]=item[j];
item[j]=y;
i++;
j--;
}
}
while(i<=j);
if(left<j)
qs(item,left,j);
if(i<right)
qs(item,i,right);
}
For a little more code, you get a lot of performance improvement. Thus its hard to judge a book by its cover in predicting execution speed from code length. (Examples from H. Schildt, Advanced C.)
Sorting & Piracy
From: Laser Dolphin
Although it is impossible to generalize speed from code length, there is one rule which is universally true: if you unwrap loops into a series of equivalent, noniterating statements, the code will be both longer and faster. Jim Reekes alluded to this when he spoke of the number of clock cycles needed to do branches. Bubble sort is more clearly written in Pascal pseudocode, thus:
For scan := 1 to arraySize-1 do
For index := 1 to arraySize-scan do
if arrayElement[index] < arrayElement[index+1] then
Swap(arrayElement[index],arrayElement[index+1])
This code shows clearly the meaning of the procedure, minus the coding details. The bubble sort must scan the array one less time than there are elements in the array; for each scan, the inner loop compares adjacent elements and swaps them if they are out of order. In the example given, the lesser elements are thus bubbled down, one step at a time, to the bottom. At the end of each scan, one more element is ordered at the bottom of the array, which explains why the inner loop ends at arraySize-scan -- this marginally speeds up the process by not sorting stuff already sorted.
Bubble sort is of order n^2 -- that is, the time to execute is proportional to the square of the number of elements to be sorted. It is very simple to write, but is no good for more than about a 25-element array. It is frequently taught to beginning programmers because it is so easy to understand. Quicksort, by contrast, is exceedingly fast on average, but is difficult to understand, being a non-intuitive and recursive algorithm.
I use bubblesort to sort a 24 element array of records in a program I wrote in MPW Pascal, and it causes a BARELY perceptible delay in program execution. If the array were any larger, I would abandon bubble sort. The records consist of a Str255 and an INTEGER.
David Sternlight, there is no question that you are 100% right. Copying software without authorization from the copyright owner is illegal. However, copyright owners should recognize that distribution of beta copies, properly marked and properly guarded against long-term use, is helpful to sales of the release product. People should not have to buy software sight-unseen. Moreover, Microsoft BASIC became the de facto standard only because Bill Gatess punch tape of Altair BASIC was thoroughly pirated. Bill Gatess famous anti-piracy letter completely ignored the fact that his success was owed entirely to piracy. The pirates were wrong, but so was Gates. Of course, the pirates, as well as Gates, were all teenagers then; no doubt they know better now. [100% market share obtained by 100% pirated copies = 0% return on investment + 100% fame and glory. Adjust balance to suit. Poor and famous, or rich and unknown. Bill Gates obviously found a balance he could live with. -Ed]
Authors apology
From: SpUd PoTatO
Okay, okay, stop bugging me! my program (the new Font/Fkey/etc. Sampler) has bugs in it! I hereby give a public apology for those bugs, but give me a break; Ive got to work just like everybody else! Look for a debugged version on your favorite BBS in a week or so...
By the way, contrary to popular belief, I was NOT part of the Microsoft Word 3.0 Development Team...
Im in hog heaven!
From: Bugs
Apple is shipping Mac II color monitors and I got mine today. It gives new meaning to totally awesome. What you can do with this machine... at this late date Im still amazed!
Microsoft Word 3.01
From: Jim Von Schmacht
Speaking of Word 3.01 I received mine on the 1st. Neat stuff, all the problems I was experiencing are fixed, it runs faster. It still leans a little to far toward an IBM interface...oh well...
Byte Benchmarks off mark
From: Frank Henriquez
I typed in two of the benchmarks that Byte used on the Mac II article, the Fibonacci and the Sieve, and compiled them using Lightspeed C (obviously the resulting code was not optimized for the 68020 and the math operations went through SANE). On the Mac II, the Fibonacci ran in about 40 seconds (not 83.70, as in the Byte article). Ill have to recompile the Sieve, because it ran too quickly to time...(under 1 sec). I dont know what the fine folks at IBM Slave Magazine (aka Byte) were thinking / doing when they were running these benchmarks on the II, but they should be made poster children for the Drug Free America project.
HyperCard
From: Jim Reekes
Ive been checking out HyperCard 1.0, the new wonder program from MacPaints Bill Atkinson. It reminds me of a fancier version of the old Habadex program from 84, only bigger. Including the sample files, its nearly 3MB! The help file (which is the best stack) is nearly 600k. Sure its a beta copy, but I dont understand its application. Maybe Im missing something. I dont feel that 3rd party software developers need to worry about Apple bundling it with the Mac.
MPW Assembler
From: Geoff Bryan
I spent the money to upgrade from the beta to final version of the MPW Assembler manual. As far as I can see, (1) none of the mistakes I had noticed in the first manual were touched, and (2) one or two new ones were introduced. (This is for version 1.0, by the way.) What gives?
MPW manual
From: Power Hopeful
The new manual has an index!
Slow SE hard disks
From: Jim Reekes
The slow internal 20MB in the Mac SE is not Apples fault. Well, in a way maybe, but it is a slow (85ms) Rodime 652. With a fair amount of file fragmentation, I dont doubt youve noticed its sluggishness.
Cursor and CopyBits
From: Leslie
Has anyone seen their cursor disappear when a call is made to CopyBits? Im using Lightspeed Pascal, and when I call CopyBits to erase a bitmap (copying a bitmap to itself using srcXor) the cursor disappears then reappears when the call is complete. The bitmap is offscreen and the cursor comes from a resource file and is visible prior to the call.
From: Lsr
I have noticed this happening also. Normally, Quickdraw will not obscure the cursor unless it is drawing to the screen. There must be low level routine somewhere that is not checking for drawing on the screen before hiding the cursor.
Mac II memory
From: Palomar
Id be real careful on Mac II memory. Some people here got SIMMs (120ns, I believe) from a local chip dealer and they didnt work; nor did the second set. We bought the Levco ones, which are not as cheap as some quotes Ive heard (even developer priced), but are much cheaper than Apples. Most important, they worked the first time. I would not write a check for a grand or $800 or whatever unless I personally took my Mac II in and installed them. (You dont need a monitor, particularly if you make your startup program on the boot floppy a SysBeep loop) Incidentally, I got some video RAMs from an unknown source, which turned out to be flakey. One Mac II now has the official Apple kit, the other ones from a vendor in the City of Industry and both work fine.
MacsBug for 4Mb Mac II
From: Palomar
I ended up with 4Mb on my Mac II, but the MilkBug with MPW 2.0b1 came with only 1,2,5, and 8Mb versions (yes I plan to get the real Mac II version of TMON when it comes out...)
I ended up comparing (in C) the 2Mb and 5Mb and producing a common subset; wherever it was 001F and 004F, changed it to 003F. My program wouldnt make any changes unless there was a difference between the two files.
Heres a little MPW tool to produce a 4 Mb version, by changing
001Fxxxx 2 Mb version
and 004Fxxxx 5 Mb version
to 003Fxxxx 4 Mb version
Theres one other difference that I guesstimate a middle value for; turns out its only the version time (offset 0x3058) which differs by 12 seconds for the two versions.
No guarantees that this is the recommended way to go, but it seems to work just fine...
/* BugPatcher.c: Synthesize 4Mb MacsBug for Mac II
July 1987, by Joel West, Palomar Software, Inc. */
#include <stdio.h>
typedef unsigned char ubyt;
typedef unsigned short HalfWord;
/* two 16-bit I/O functions;
getw() does 32 bits on MPW C */
#define gethw(stream) ((tmp=getc(stream)) == EOF ? EOF : \ (HalfWord)(((ubyt)tmp)<<8)+(ubyt)getc(stream))
#define puthw(hw, stream) (putc(hw>>8, stream), putc(hw&255, stream))
main()
{ FILE *fd2, *fd5, *fd4;
int c2,c5,c4;
int cnt = 0, tmp;
fd2 = fopen(MPW ONE:Debuggers:Milk2MB, r);
fd5 = fopen(MPW ONE:Debuggers:Milk5MB, r);
fd4 = fopen(HD:Milk4MB, w);
while ((c2=gethw(fd2)) != EOF)
{ if (c2 == (c5=gethw(fd5)))
puthw(c2, fd4); /* vote consensus */
else
{ printf(Offset 0x%.4X; 2MB: %X; 5Mb: %X, cnt, c2, c5);
if (c2==0x1F && c5==0x4F)
puthw(0x3F, fd4); /* known difference */
else /* the only other diff is the time */
{ c4 = (c2+c5+c5) / 3; /* weighted ave */
printf(; guess: %X\n, c4);
puthw(c4, fd4);
}
printf(\n);
}
cnt += sizeof(short);
}
printf(A total of %d bytes were merged\n, cnt);
}
The Debugger and TML Linker
From: Pkbrown
Steve Jasiks debugger docs state that the first line of a .MAP file produced by the TML Pascal Linker contains a comma. This bothers the debugger.
I took his advice to heart about patching the offensive code in the Linker. I had to because Ive been using the TML Linker with my V1.0 MDS for quite some time now. The problem is this:
1. The first line placed in the .Map file is as follows:
TML Systems, Inc.
The comma above crashes the system.
2. The Linkers code that inserts the string in the output file is in the code 001 resource.
3. The embedded string is at CODE0001 + $063C. Changing the comma to a space works fine.
4. Using MacZap, search for the first occurence of the TML Systems, Inc. string and change it in the ascii side of the sector buffer window. In version 2.0 of the linker, the comma occurs at a file offset of $4C1C.
The debugger looks good; its a little slow in drawing all its windows if youre stepping through the code of a long proc, especially in the Mac ROMs.
hmmmm
From: Dave Kelly
Seems to be some delay in Zedcor finishing their editor, but I was told by someone today that they are starting to ship tomorrow. As soon as I get 4.0 Ill post a message here for anyone that might like to know (especially if you are waiting for it). By the way, check out sept. MacTutor for info on how to figure out the size of the screen being used while in ZBasic. This might be of interest to some of you. Dave
II beep sounds
From: Macowaco
Hey the beep sounds are starting to appear for the II. The latest batch contains a road runners meep-meep, 2001s dave and Monty Pythons SPAM! among a ton of others. Great stuff. Problem is I cant decide which one to use.
Beep
From: James Murray
Use SPAM!.
DTB
From: Jim Reekes
The mouse definately behaves differently when connected to the keyboard instead of the Mac. I recommend not chaining the mouse off any DTB devices.
TORX
From: Dave Kelly
Ok, Ive had conflicting stories about which size TORX opens the Mac. What size is it, 10 or 15??? I too have some video deflection that I would like to open up and take a look at. So... where can I get the TORX screwdriver I need and how much will it cost? Id like to do this right away. Thanks Dave
From: Richard Clark
According to Jim Magner (a local repair guy), Snap-On tools sells an extra long (2 foot!) TORX T-15 screwdriver for $7.95. All you have to do is call the local Snap-On number in the phone book, and one of their trucks will come to your door. Pay the nice driver, and you get your screwdriver.
P.S. I have seen these screwdrivers -- theyre perfect for opening a Mac.
Memory Upgrades
From: Richard Hyman
Regarding the 512E upgrade, the Dove upgrades and others do have problems with future expansion. I, however, have found Doves telephone support to be very good. Dove doesnt sell directly, so I went through distributor in Eugene called TSI, sales rep is Jean Sorensen. With little excuse, like hoping to sell more units to people in your company, she will give good prices on the Doves. Figure on $119 for a 1M, and $330 - $350 for a 2M. SCSI ports available for about $70 more. TSIs support is also very good. I had a bad board when upgrading an old 128K Mac to 1M, and they sent me the new one via 2nd day UPS with no additional shipping charges to me. TSIs phone number is 1-800-874-2288.
Mac Menu Manager
From: Mark Chally
Well, in my opinion, the Mac Memory manager is a bit of a kludge anyway. Having an application that does real-time modem gaming, I find it particularly dismaying that there doesnt seem to be a good way to do any drawing to the screen while a menu is down. The menu manager does some really scary stuff past my understanding, and I just wonder whats gonna happen when we have a truly multitasking Mac and one program wants to draw when another program has a menu down! My guess is the menu manager gets fixed real soon now. Im on the brink of hitting Developer Support about it, but I dont know what good it will do-->itd take a big re-write for the manager, and/or a big re-write on my part to allow drawing while menus are down. (By the way, try posting an event while the menus down and you get a nice surprise--zappo, just like a roll-up blind, up goes the menu.)
Coprocessor Errors
From: Randy Saunders
I have started to have an odd problem with my Mac. When you first turn it on it boots up and displays the desktop. If you do absolutely nothing in about 5-7 minutes it bails into MacsBug with a coprocessor error. Bang, you are dead. If you hit reset - Sad Mac. Wait 3-5 more minutes and hit reset => success, and many happy hours of computing. I have an exhaust fan and I notice that the problem occurs when the exhaust air is between 78 and 85 degrees F. Has my Mac caught a cold? My normal operating exhaust temp is 92 degrees F. I have opened it up and reseated every chip in the assumption that the problem is poor seating in a socket until some part expands from the heat. No change. Any other suggestions? Anybody else ever had this, or is the schrunken screen the only popular failure mode? I dont want to have to get a new digital board just because I cant figure out whats wrong with this one.
Temp-sensitive component
From: Laser Dolphin
Randy -- this is just a guess, but it does sound like some component on your power supply has gotten temperature sensitive. I once had a similar problem, except the problem was on the motherboard. My internal drive would only work when the Mac was hot, so I left it on 24 hours a day, until the component got so bad that it wouldnt work at all. Intermittent problems are a real female dog. Good luck.
power supply
From: The Atom
A friend has a 512 (upgraded from 128) that has suddenly died. When you turn it on, nothing comes up on video(black), and the drive whirs some. If you listen close you can hear some popping noises (quiet) inside. I opend it up and cant see any components that look blown, anyone know what I should look for on the power supply. / video board?
Power Supply Revisited
From: Dave Morris
My Mac + has the original 128K PW. When I noticed some screen shaking, I looked at the yoke connections. They had crystallized. Some resoldering fixed that right up. Later I noticed that my PRAM memory was spastic. The clock would come up scrambled, and Mouse set to slow speed etc. New battery did not help. Just looked at the battery holder connections on the power board. They also were cold. Re-soldered and now all is well. If you suspect any video or clock problems, resolder the connections on the power supply board before you go to the Apple dealer. You can save a bunch of money!!
Using a 68851
From: Palomar
You gotta Mac II? Theres a custom HMMU in it in one of those huge 48(?) pin square sockets. Go to Radio Shack and buy an IC extractor. Go to a Motorola distributor, plunk down $600 and wait 2 months for the 68851. Pull out the HMMU and put in the (16 MHz) 851. Now if you have a disk with A/UX on it, you can boot A/UX. If you have a disk with the Mac OS, you can boot it just fine (I do it all the time.)
Given the price and availability, I assume Apple will be bundling the 68851 with A/UX, or no one would ever be able to get one. I havent seen any indication that anyone else would want one any time soon; dont forget, the Mac OS wont require an MMU as long as the majority of the installed base is 68000 with no MMU available. As for HMMU in 32-bit mode, thats a hardware question and Im a software person. On the other hand, I do know that theyve downplayed the 32/24 traps between the draft Paris docs and the final MPW 2.0/IM Volume V. The current thinking is that an application NEVER changes the bit; its up to the OS to decide which mode is appropriate. Joel West Palomar Software, Inc.
Imagewriter II Mashed!
From: Macowaco
Egads! I just totally trashed an ImagewriterII! It was printing like mush and no matter what I adjusted or changed it would still do a poor print (even in high qual). So I pulled the head and cleaned it. It was pretty bad all right, but when I carefully tried to replace it I crushed two of the teeth in the plug that accepts the heads card. Any ideas anybody? Yeah, I know the whole head assembly has to be replaced, so does the rear right fender on my Honda.
******* and 65881
From: Rusty Hodge
Well, does Juggler <oops, erase that> work any better with the PMMU?
LaserWriters & Margins
From: Ross Yahnke
Margins on legal sized documents printed on the LaserWriter are a real problem; even if you do select the Larger Print Area (fewer downloadable fonts) print option you still get 1 inch margins of blank space around the whole document, which is really unacceptable in a lot of situations. Question 1: Is this due to memory limitations of the LaserWriter? Question 2: If so, will there ever exist a way to increase the memory of the LaserWriter? Question 3: Will any of the new, rumored, laser-based printers solve this problem? For Apples sake, I hope so or they should kiss a big section of the business market bye bye.
popUpMenuSelect
From: Jeff
Does anyone know how to use popUpMenuSelect. My copy of inside Mac Vol. 5 makes no mention of it. I tried to use it with a regular text menu and had no luck. I saw a new constant declared in the interface files mPopUpMsg = 4; A new message for MDEFs? A little advice from someone in the know would be much appreciated. Thanks.
Popup Menus
From: Lsr
PopupMenuSelect takes 4 parameters: menu, top, left, and item. menu is a menu handle, top & left define a point in screen coordinates, and item is an item number. The MenuManager will try to place the topLeft corner of item at the point you specify. It will make the menu scroll if necessary to do this and still keep the menu on the screen. In order to implement a popup menu, a new message was added to the protocol that a defproc must understand. The number is 3 (not 4 as listed in the MPW interfaces). The purpose of the message is to have the defproc define the rectangle in which the menu will appear. [See this issues article by Steve Sheets for an example of how to create a PopUp menu in his Color Life. Also, a simple proc for identifying color quickdraw machines. -Ed]
SysEnvirons
From: The Cloud
Okay, I give up. How do you check to see if the SysEnvirons trap is present without using MPW and linking with the .obj glue file? I want to be able to use the trap, or barring that, at least definitively determine that it isnt there, from Lightspeed... Making a LS library from the glue file doesnt work...some code snippets would be appreciated. Thanks-- -k
^^^^
From: Lsr
Tech Note 129, gives the code. First test for 64K ROMS or later. If you have 128K ROMs or later, then do a get trap address on SysEnvirons and compare the address with that of the Unimplemented trap. If they are not equal, then you have SysEnvirons. The Tech Note code is in assembler. In that language, you get the SysEnvirons address with:
MOVE.W #$90,D0
_GetTrapAddress,NEWOS.
You get the Unimplemented address with:
MOVE.W #$9F,D0
_GetTrapAddress,NEWTOOL.
The point here is that SysEnvirons is an OS trap and Unimplemented is a Toolbox trap. (For more info on the distinction, see Inside Mac volume 4.)
Uh, right..
From: The Cloud
The tech note *does* spell out the way to do it --in ASSEMBLY! My problem is a high ignorance quotient when it comes to diddling with addresses from Pascal... Thanks for the e-mail. -k
^^^^^
From: Lsr
If your language supports INLINES (as does MPW), it is easy to define INLINE functions that return the desired low memory globals. For example, in MPW Pascal:
FUNCTION GetWordxxx: INTEGER; INLINE $3EB8, $xxxx;
will define a function that returns low memory global at location $xxxx. (If you change the first hex number to $2EB8, then the function will return a LONGINT.)
LSC & GetTrapAddress
From: Ross Yahnke
Greetings from muggy Madison, Wisconsin! Im working on a game type program using LSC, and its to the point now where I need to speed it up a little. I want to do inline assembler trap calls using GetTrapAddress. MacTutor had a good Pascal article on this by Mike Morton in the August 86 issue but he made a cryptic comment, ...many C compilers pass parameters differently than ROM routines do. Some C compilers allow you to choose the method of parameter passing; this will allow you to dispense with assembler altogether and just call the routine with a pointer (ask your nearest C guru how to do this). So could someone out there show me an example? Many thanks in advance! -rosco
Indirect Toolbox Calls
From: Gary Voth
Ross: What you want to do is slightly complicated by the different calling convetions of C and Pascal. While C makes it easy to call a function indirectly, Lightspeed ALWAYS makes indirect calls using C stack discipline, so a glue routine is necessary. Make sure you check out the new information about GetTrapAddress on page IV-234 of Inside Macintosh before you proceed. In C a function pointer may be declared in this fashion:
int (*myfunction) ();
Note that the parentheses are necessary for correct grouping. If instead you wrote:
int *myfunction ();
you would be declaring a function returning a pointer to an int, which is not the same thing at all. If myfunction pointed to a C function you could call it indirectly by writing:
(*myfunction) (arg1, arg2, etc.);
However, if myfunction pointed to a Pascal function (like the Toolbox routines) you cannot call it indirectly using the above method because Pascal stack discipline will not be enforced. However, Lightspeed has a built-in routine, CallPascal, which can do the job:
CallPascal (arg1, arg2,...argn, myfunction);
Note that the function pointer is always the last argument to CallPascal. Of course, you can declare your own function which uses a single inline assembly instruction to call the Toolbox trap and not use pointers at all. Assuming that trap_add contains the address of the Toolbox trap TEnew you might write a psuedo function:
pascal TEHandle OurTENew(destRect, viewRect);
Rect destRect, viewRect;
{
extern (*trap_add) (); /* global ptr to TENew() */
asm {
JSR trap_add ;
call TENew
}
}
Note that the C compiler has taken care of setting up the stack and returning the proper value for you. Good luck. Gary.
Pgmkr printing
From: Macowaco
Im trying to print with Pagemaker 2.0 using either a MacII or an SE with an IW II. It doesnt seem to want to do the high quality printing. It prints but it aint high quality even though it is bidirectional
PageMaker Printing problems
From: Laser Dolphin
PageMaker 2.0 sometimes returns PostScript errors that are quite mysterious. The problem seems to be insufficient memory on the Mac (not LaserWriter) system heap. The solution consists of removing memory hogs like CheapBeep, Tops, and the screenblanker that pretends its MacsBug, as well as printing pages individually or in small groups. Pages with 300 dpi scan graphics most often cause this problem. Some combination of the solutions suggested above has always worked to get around the problem for me.
PM 2.0
From: Mike Steiner
Aldus has admitted that 2.0 doesnt support the Imagewriter properly and that they are working on a fix for it. I havent spoken to them in a while, so the fix might be out by now. I do know that the current version being shipped is 2.0a. I have no idea what differences the alpha adds to 2.0, but I plan to call Aldus tomorrow to find out. [It fixes the imagewriter problem and costs $10 to upgrade. -Ed]
RSG, version 4.0
From: Peter
Saw a demo of RSG, version 4.0, last night. It really looks great. lots of new & improved features (though really if any program is worth $495 is a question). Free if you bought version 3.0 after June 1st - otherwise $75 upgrade fee. Itll be ready in a couple of weeks.
The Rumor Board
[Consider tanything on the rumor board with a big grain of salt as speculation. -Ed]
^^^^^^^
Before they had me sign on a stack of bibles, I had some information about HyperCard (nee WildCard). One thing that is 100% definite is theyve planned to bundle it all along, and briefed their sales staff several months ago on why they will be doing so.
Bundling
Well, I hope they know that current owners of new machines are going through life unbundled and plan to correct the situation. Get my drift?
Laptop Mac
A source high up in Apple development has related that the Laptop Mac is very much a real thing. Seems that they now have the cases in foam. In other words, theyre working on final case design. Expect to see it in about a year Also, the high end laserwriter is definitely color. The small laser may be out sooner then expected, and the BusinessWriter may be also out soon at a price of $1295. (Providing Toshiba can get them here).
Shutdown
Have an SE and no use for that strange power up button at the top of your keyboard? There is a product in testing that will allow you to use this key to jump into TMON or do a few other things. Look for it in Boston. ADB Break? I think thats the name.
ADB Key
The ADB Break is by Paul Mercer, and is currently in the Public Domain. It is, however, a very big hack. Paul is using some information that he discerned from looking at the ADB driver code, and which will probably change when the ADB driver gets revved. (And since theres already a known bug with ADB, you can expect that to definetely happen.) ADB Break is GREAT, and I use it all the time. But it should only be used by those people that understand that it is potentially dangerous. Paul Mercer pulled off a difficult programming task to make this work. The best thing about it is that the default mode is Trap Signal, so you always enter TMON in a clean state. the Chief Wizard