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”

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Latest Forum Discussions

See All

Tokkun Studio unveils alpha trailer for...
We are back on the MMORPG news train, and this time it comes from the sort of international developers Tokkun Studio. They are based in France and Japan, so it counts. Anyway, semantics aside, they have released an alpha trailer for the upcoming... | Read more »
Win a host of exclusive in-game Honor of...
To celebrate its latest Jujutsu Kaisen crossover event, Honor of Kings is offering a bounty of login and achievement rewards kicking off the holiday season early. [Read more] | Read more »
Miraibo GO comes out swinging hard as it...
Having just launched what feels like yesterday, Dreamcube Studio is wasting no time adding events to their open-world survival Miraibo GO. Abyssal Souls arrives relatively in time for the spooky season and brings with it horrifying new partners to... | Read more »
Ditch the heavy binders and high price t...
As fun as the real-world equivalent and the very old Game Boy version are, the Pokemon Trading Card games have historically been received poorly on mobile. It is a very strange and confusing trend, but one that The Pokemon Company is determined to... | Read more »
Peace amongst mobile gamers is now shatt...
Some of the crazy folk tales from gaming have undoubtedly come from the EVE universe. Stories of spying, betrayal, and epic battles have entered history, and now the franchise expands as CCP Games launches EVE Galaxy Conquest, a free-to-play 4x... | Read more »
Lord of Nazarick, the turn-based RPG bas...
Crunchyroll and A PLUS JAPAN have just confirmed that Lord of Nazarick, their turn-based RPG based on the popular OVERLORD anime, is now available for iOS and Android. Starting today at 2PM CET, fans can download the game from Google Play and the... | Read more »
Digital Extremes' recent Devstream...
If you are anything like me you are impatiently waiting for Warframe: 1999 whilst simultaneously cursing the fact Excalibur Prime is permanently Vault locked. To keep us fed during our wait, Digital Extremes hosted a Double Devstream to dish out a... | Read more »
The Frozen Canvas adds a splash of colou...
It is time to grab your gloves and layer up, as Torchlight: Infinite is diving into the frozen tundra in its sixth season. The Frozen Canvas is a colourful new update that brings a stylish flair to the Netherrealm and puts creativity in the... | Read more »
Back When AOL WAS the Internet – The Tou...
In Episode 606 of The TouchArcade Show we kick things off talking about my plans for this weekend, which has resulted in this week’s show being a bit shorter than normal. We also go over some more updates on our Patreon situation, which has been... | Read more »
Creative Assembly's latest mobile p...
The Total War series has been slowly trickling onto mobile, which is a fantastic thing because most, if not all, of them are incredibly great fun. Creative Assembly's latest to get the Feral Interactive treatment into portable form is Total War:... | Read more »

Price Scanner via MacPrices.net

Early Black Friday Deal: Apple’s newly upgrad...
Amazon has Apple 13″ MacBook Airs with M2 CPUs and 16GB of RAM on early Black Friday sale for $200 off MSRP, only $799. Their prices are the lowest currently available for these newly upgraded 13″ M2... Read more
13-inch 8GB M2 MacBook Airs for $749, $250 of...
Best Buy has Apple 13″ MacBook Airs with M2 CPUs and 8GB of RAM in stock and on sale on their online store for $250 off MSRP. Prices start at $749. Their prices are the lowest currently available for... Read more
Amazon is offering an early Black Friday $100...
Amazon is offering early Black Friday discounts on Apple’s new 2024 WiFi iPad minis ranging up to $100 off MSRP, each with free shipping. These are the lowest prices available for new minis anywhere... Read more
Price Drop! Clearance 14-inch M3 MacBook Pros...
Best Buy is offering a $500 discount on clearance 14″ M3 MacBook Pros on their online store this week with prices available starting at only $1099. Prices valid for online orders only, in-store... Read more
Apple AirPods Pro with USB-C on early Black F...
A couple of Apple retailers are offering $70 (28%) discounts on Apple’s AirPods Pro with USB-C (and hearing aid capabilities) this weekend. These are early AirPods Black Friday discounts if you’re... Read more
Price drop! 13-inch M3 MacBook Airs now avail...
With yesterday’s across-the-board MacBook Air upgrade to 16GB of RAM standard, Apple has dropped prices on clearance 13″ 8GB M3 MacBook Airs, Certified Refurbished, to a new low starting at only $829... Read more
Price drop! Apple 15-inch M3 MacBook Airs now...
With yesterday’s release of 15-inch M3 MacBook Airs with 16GB of RAM standard, Apple has dropped prices on clearance Certified Refurbished 15″ 8GB M3 MacBook Airs to a new low starting at only $999.... Read more
Apple has clearance 15-inch M2 MacBook Airs a...
Apple has clearance, Certified Refurbished, 15″ M2 MacBook Airs now available starting at $929 and ranging up to $410 off original MSRP. These are the cheapest 15″ MacBook Airs for sale today at... Read more
Apple drops prices on 13-inch M2 MacBook Airs...
Apple has dropped prices on 13″ M2 MacBook Airs to a new low of only $749 in their Certified Refurbished store. These are the cheapest M2-powered MacBooks for sale at Apple. Apple’s one-year warranty... Read more
Clearance 13-inch M1 MacBook Airs available a...
Apple has clearance 13″ M1 MacBook Airs, Certified Refurbished, now available for $679 for 8-Core CPU/7-Core GPU/256GB models. Apple’s one-year warranty is included, shipping is free, and each... Read more

Jobs Board

Seasonal Cashier - *Apple* Blossom Mall - J...
Seasonal Cashier - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
Seasonal Fine Jewelry Commission Associate -...
…Fine Jewelry Commission Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) Read more
Seasonal Operations Associate - *Apple* Blo...
Seasonal Operations Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Read more
Hair Stylist - *Apple* Blossom Mall - JCPen...
Hair Stylist - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Blossom Read more
Cashier - *Apple* Blossom Mall - JCPenney (...
Cashier - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Blossom Mall Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.