TweetFollow Us on Twitter

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 won’t 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 Editor’s feelings on the issue of piracy and pre-release software, which recently became a hot topic on the Mousehole over Steve Brecher’s SuitCase program. -Ed]

Piracy & Beta Software

From: David Sternlight

It’s not pious to say that taking someone’s property without their permission is theft. (i.e., TSPWTPIT). It’s the law. If A is the beta tester and B is his friend, whether B knows he has received stolen property or not doesn’t change the facts that B is legally liable. The profit, by the way, is in knowing about it or using it. That’s what “intellectual property” is all about. You don’t have to make money from someone’s 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 can’t make it o.k.; only he can--it’s 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 won’t do to argue why it is a good thing to take someone’s property without permission. It won’t do to talk around it. The only LEGAL way to get someone else’s 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 doesn’t say, “Oh yeah, if it’s a beta (or a pilot or test tape of a copyright song) THEN the law doesn’t 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 it’s 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 Gates’s punch tape of Altair BASIC was thoroughly pirated. Bill Gates’s 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]

Author’s 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; I’ve 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...

I’m 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 I’m 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). I’ll have to recompile the Sieve, because it ran too quickly to time...(under 1 sec). I don’t 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

I’ve been checking out HyperCard 1.0, the new wonder program from MacPaint’s Bill Atkinson. It reminds me of a fancier version of the old Habadex program from ’84, only bigger. Including the sample files, it’s nearly 3MB! The help file (which is the best ‘stack’) is nearly 600k. Sure it’s a beta copy, but I don’t understand it’s application. Maybe I’m missing something. I don’t 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 Apple’s fault. Well, in a way maybe, but it is a slow (85ms) Rodime 652. With a fair amount of file fragmentation, I don’t doubt you’ve noticed it’s sluggishness.

Cursor and CopyBits

From: Leslie

Has anyone seen their cursor disappear when a call is made to CopyBits? I’m 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

I’d be real careful on Mac II memory. Some people here got SIMMs (120ns, I believe) from a local chip dealer and they didn’t work; nor did the second set. We bought the Levco ones, which are not as cheap as some quotes I’ve heard (even developer priced), but are much cheaper than Apple’s. 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 don’t 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 wouldn’t make any changes unless there was a difference between the two files.

Here’s 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

There’s one other difference that I guesstimate a middle value for; turns out it’s 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 Jasik’s 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 I’ve 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 Linker’s 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; it’s a little slow in drawing all it’s windows if you’re 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 I’ll 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, 2001’s “dave” and Monty Pythons’ “SPAM!” among a ton of others. Great stuff. Problem is I can’t 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, I’ve 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? I’d 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 -- they’re 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 Dove’s telephone support to be very good. Dove doesn’t 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. TSI’s 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. TSI’s 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 doesn’t 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 what’s 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. I’m on the brink of hitting Developer Support about it, but I don’t know what good it will do-->it’d 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 menu’s 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 don’t want to have to get a new digital board just because I can’t figure out what’s 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 wouldn’t 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 can’t 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? There’s 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 haven’t seen any indication that anyone else would want one any time soon; don’t forget, the Mac OS won’t 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, that’s a hardware question and I’m a software person. On the other hand, I do know that they’ve 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; it’s 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 MDEF’s? 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 issue’s 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 isn’t there, from Lightspeed... Making a LS library from the glue file doesn’t 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! I’m working on a game type program using LSC, and it’s 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

I’m trying to print with Pagemaker 2.0 using either a MacII or an SE with an IW II. It doesn’t seem to want to do the high quality printing. It prints but it ain’t 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 it’s 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 doesn’t support the Imagewriter properly and that they are working on a fix for it. I haven’t 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. It’ll 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 they’ve 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, they’re 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 there’s 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”

 
AAPL
$111.78
Apple Inc.
-0.87
MSFT
$47.66
Microsoft Corpora
+0.14
GOOG
$516.35
Google Inc.
+5.25

MacTech Search:
Community Search:

Software Updates via MacUpdate

NeoOffice 2014.6 - Mac-tailored, OpenOff...
NeoOffice is a complete office suite for OS X. With NeoOffice, users can view, edit, and save OpenOffice documents, PDF files, and most Microsoft Word, Excel, and PowerPoint documents. NeoOffice 3.x... Read more
LibreOffice 4.3.5.2 - Free Open Source o...
LibreOffice is an office suite (word processor, spreadsheet, presentations, drawing tool) compatible with other major office suites. The Document Foundation is coordinating development and... Read more
CleanApp 5.0.0 Beta 5 - Application dein...
CleanApp is an application deinstaller and archiver.... Your hard drive gets fuller day by day, but do you know why? CleanApp 5 provides you with insights how to reclaim disk space. There are... Read more
Monolingual 1.6.2 - Remove unwanted OS X...
Monolingual is a program for removing unnecesary language resources from OS X, in order to reclaim several hundred megabytes of disk space. It requires a 64-bit capable Intel-based Mac and at least... Read more
NetShade 6.1 - Browse privately using an...
NetShade is an Internet security tool that conceals your IP address on the web. NetShade routes your Web connection through either a public anonymous proxy server, or one of NetShade's own dedicated... Read more
calibre 2.13 - Complete e-library manage...
Calibre is a complete e-book library manager. Organize your collection, convert your books to multiple formats, and sync with all of your devices. Let Calibre be your multi-tasking digital librarian... Read more
Mellel 3.3.7 - Powerful word processor w...
Mellel is the leading word processor for OS X and has been widely considered the industry standard since its inception. Mellel focuses on writers and scholars for technical writing and multilingual... Read more
ScreenFlow 5.0.1 - Create screen recordi...
Save 10% with the exclusive MacUpdate coupon code: AFMacUpdate10 Buy now! ScreenFlow is powerful, easy-to-use screencasting software for the Mac. With ScreenFlow you can record the contents of your... Read more
Simon 4.0 - Monitor changes and crashes...
Simon monitors websites and alerts you of crashes and changes. Select pages to monitor, choose your alert options, and customize your settings. Simon does the rest. Keep a watchful eye on your... Read more
BBEdit 11.0.2 - Powerful text and HTML e...
BBEdit is the leading professional HTML and text editor for the Mac. Specifically crafted in response to the needs of Web authors and software developers, this award-winning product provides a... Read more

Latest Forum Discussions

See All

My Little Monster Review
My Little Monster Review By Jordan Minor on December 22nd, 2014 Our Rating: :: IT'S ALIVE!Universal App - Designed for iPhone and iPad What’s it worth to make your own monster?   | Read more »
Galaxy Trucker Pocket (Games)
Galaxy Trucker Pocket 1.0.8 Device: iOS iPhone Category: Games Price: $2.99, Version: 1.0.8 (iTunes) Description: Galaxy Truckers Wanted!================================================================= (5/5) "Galaxy Trucker isn’t... | Read more »
Make your own Tribez Figures (and More)...
Make your own Tribez Figures (and More) with Toyze Posted by Jessica Fisher on December 19th, 2014 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
So Many Holiday iOS Sales Oh My Goodness...
The holiday season is in full-swing, which means a whole lot of iOS apps and games are going on sale. A bunch already have, in fact. Naturally this means we’re putting together a hand-picked list of the best discounts and sales we can find in order... | Read more »
It’s Bird vs. Bird in the New PvP Mode f...
It’s Bird vs. Bird in the New PvP Mode for Angry Birds Epic Posted by Jessica Fisher on December 19th, 2014 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Telltale Games and Mojang Announce Minec...
Telltale Games and Mojang Announce Minecraft: Story Mode – A Telltale Games Series Posted by Jessica Fisher on December 19th, 2014 [ permalink ] | Read more »
WarChest and Splash Damage Annouce Their...
WarChest and Splash Damage Annouce Their New Game: Tempo Posted by Jessica Fisher on December 19th, 2014 [ permalink ] WarChest Ltd and Splash Damage Ltd are teaming up again to work | Read more »
BulkyPix Celebrates its 6th Anniversary...
BulkyPix Celebrates its 6th Anniversary with a Bunch of Free Games Posted by Jessica Fisher on December 19th, 2014 [ permalink ] BulkyPix has | Read more »
Indulge in Japanese cuisine in Cooking F...
Indulge in Japanese cuisine in Cooking Fever’s new sushi-themed update Posted by Simon Reed on December 19th, 2014 [ permalink ] Lithuanian developer Nordcurrent has yet again updated its restaurant simulat | Read more »
Badland Daydream Level Pack Arrives to C...
Badland Daydream Level Pack Arrives to Celebrate 20 Million Downloads Posted by Ellis Spice on December 19th, 2014 [ permalink ] | Read more »

Price Scanner via MacPrices.net

Holiday sale continues: 15-inch Retina MacBoo...
 B&H Photo has the new 2014 15″ Retina MacBook Pros on sale for up to $300 off MSRP for a limited time. Shipping is free, and B&H charges NY sales tax only: - 15″ 2.2GHz Retina MacBook Pro: $... Read more
Holiday sale: 13-inch 128GB MacBook Air for $...
 Best Buy has the 2014 13-inch 1.4GHz 128GB MacBook Air on sale for $849.99, or $150 off MSRP, on their online store. Choose free home shipping or free local store pickup (if available). Price valid... Read more
13-inch 2.6GHz Retina MacBook Pro on sale for...
Best Buy has lowered their price on the 2014 13″ 2.6GHz/128GB Retina MacBook Pro to $1149.99 on their online store for a limited time. That’s $150 off MSRP and the lowest price available for this... Read more
Kodak Returns to CES With New Consumer Produ...
Former photography colossus Kodak is returning to CES for the first time in three years where the Kodak booth (#21818 South Hall 1) will showcase a wide range of innovative, imaging-related products... Read more
Invaluable Launches New Eponymously -Named A...
Invaluable, the world’s largest online live auction marketplace, hhas announced the official launch of the Invaluable app for iPad, now available for download in the iTunes App Store. Invaluable... Read more
IDC Reveals Worldwide Mobile Enterprise Appli...
International Data Corporation (IDC) last week hosted the IDC FutureScape: Worldwide Mobile Enterprise Applications and Solutions 2015 Predictions Web conference. The session provided organizations... Read more
Hello Vino Wine App Launches “Safe Ride Home”...
Hello Vino has announced addition of a new “Get a Safe Ride Home” feature in its Food & Drink app with a direct connection to Uber, the technology platform that connects users with rides. The... Read more
DEVON-technologies Releases DEVONthink To Go...
Coeur d’Alene, Idaho based DEVON-technologies, LLC has updated DEVONthink To Go, its mobile companion to DEVONthink, to version 1.5. The update includes an iOS 8 extension, compatibility with the... Read more
The Apple Store offering free next-day shippi...
The Apple Store is now offering free next-day shipping on all in stock items if ordered before 12/23/14 at 10:00am PT. Local store pickup is also available within an hour of ordering for any in stock... Read more
It’s 1992 Again At Sony Pictures, Except For...
Techcrunch’s John Biggs interviewed a Sony Pictures Entertainment (SPE) employee, who quite understandably wished to remain anonymous, regarding post-hack conditions in SPE’s L.A office, explaining “... Read more

Jobs Board

*Apple* Store Leader Program (US) - Apple, I...
…Summary Learn and grow as you explore the art of leadership at the Apple Store. You'll master our retail business inside and out through training, hands-on experience, Read more
Project Manager, *Apple* Financial Services...
**Job Summary** Apple Financial Services (AFS) offers consumers, businesses and educational institutions ways to finance Apple purchases. We work with national and Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Retail - Multiple Positions (US) - A...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.