Oct 87 Mousehole
|Column Tag:||Mousehole Report
By Rusty Hodge, Mousehole BBS
Id rather Switch than Find!
From: Richard Clark
First, Apple *will* be sending MultiFinder / HyperCard to developers as soon as [they] get the disks duplicated. However, Apple has changed the rules *again*!! I have a really nice piece of software written that takes advantage of Switchers background tasks (David Smith, are you interested?). So, just for kicks, I tried it out on a beta copy of Juggler. No soap -- it bombed *big*. Apparently Apple has produced a product which, from an applications point of view, claims to be Switcher but without Switchers handy hooks for developers.
The kicker is this: Apple has fully documented Switcher (via the Switcher Developers Kit (aka Inside Switcher) from APDA), and some other developers have taken advantage of Switchers special features. But, since MultiFinder gives all of the same indications to a program as Switcher would, if you try to use these features, La Bomba! (By the way, this kills part of Microsoft Word. Version 3.1.1 anybody?)
[Apple has indeed sent out System 4.2a4, Finder 6.0a6, and MultiFinder 1.0b6 to developers for testing as of August 27, 1987. This includes developer documentation on Juggler. The new system software is supposed to ship in September (which would be after you read this). And yes, we are interested in background task articles, but only for MultiFinder. Switcher is dead. To get these goodies, contact APDA about the Inside Juggler package. When released, it will be listed as System Software 5.0. -Ed]
REMEMBER, if you dont have a PRAM edit around and you want to get your Mac II operational again after the enevitable mystery hang, hold down the option, command and shift keys while opening the control panel to clear the PRAM. (if it will not boot from the internal or SCSI, you can still boot from floppy to clear the PRAM.)
Defense of MultiFinder & PRAM Bugs
Richard, the new MultiFinder is an extention to the Switcher rules. The Switcher-friendly resource (SIZE = -1) is compatible with MultiFinder. Anything that works under Switcher should work under MultiFinder, as with any other properly written software program developed to Inside Mac guidelines. If you dont have the documentation on Inside Juggler, then I dont think you should complain to Apple about your program bombing under MultiFinder (and what version did you try?) Switcher was a total *hack* and I personally never trusted it on my system.
Brett, the point that Tom Thompson was making about the PRAM bug in the Mac II was that *EVEN AFTER THE OPT-CMD-SHIFT* procedure it didnt work. The ZAP PRAM dialog doesnt always work. I have zapped it numerous times and with no luck. I believe that there are some versions of the control panel with this bug. And Ive had the bug mentioned in the MacTutor report for the last two issues. Yes, I hope it continues to get reported until its fixed.
Switcher/MultiFinder & Word 3.01
I forwarded the comment about Switcher vs. MultiFinder to a Multifinder person, and he said that the problem has been fixed. The very first version of Multifinder used the same Switcher globals, so applications that explicitly checked for Switcher would get confused.
Later versions dont use those globals, so this should not be a problem. Multifinder does not implement Switchers background task feature, since Multifinders background processing capabilities are more powerful. (The Switcher bg task did not switch in the application, for example, because Andy H. couldnt figure out how to make the switching fast enough.) The lastest Multifinder also implements the quickswitch features of Switcher 5.1, and works fine with Word 3.01.
I hope this answers the question.
Time to stir up the muck!
Yawnnn.. Gosh it has gotten quiet. Okay how about this. Anybody out there hacking away on HyperCard? Hey, Ive gotten deep inside and I like the nifty Atkinson-like stuff I see, but (big but) why all the fuss! According to Scully, Hypercard is supposed to be to SW what the II was to HW. Sorry, but I dont think so. Hypercard is a more complex version of SlideShow (of course Im being simplistic) and its great for HABACRAP kinda stuff and for inexpensive laser disk access, but big press releases??? Hit of the show???? AWWW come on maybe there was alittle too much MAC enthusiasm in Boston. Maybe, this is actually all a snow job to pull the publics attention away from other more damaging things like..... A-UX? NAAWWWWWWW!
Hear, hear for Macowacos last post; I remember Apple saying that FileVision would revolutionize.... And what happened to Telos?!?
I think that the term stackware is a lousy term to use for Hypercard applications. Lets coin a new term for this; we here on the Mousehole represent a good portion of Apples developer base, so if we start using Hypeware Cardware, Warecards, or something else, itll catch on...
I just called APDA, and the HyperCard Tech Ref Manual (#KMSHTL) and the MultiFinder Tech Ref Manual (#KMSMFD) are available for ordering. These items appear to be very new - the individual at the order desk had a new memo as of yesterday, without prices, although she was pretty sure they are less than $25 each. HyperCard and Mutlifinder are not available; these are just the ref manuals.
Regarding the hypercard hype, Sculley et al must be assuming that it will be important because most people buy Macs to process information. Word, Excel etc are the heavy sellers. A/UX will be important to just a small portion of the market. *Rick*
I vote for cardware. Think of the possibilities...Didja get the latest cardware? I dunno where the card is. Not card WHERE, cardware! You could try ServiceStar or Joes Plumbing Supply on Main street... No, no, not HARDware, CARDware! No thanks, I like checkers better.
Hyperware isnt nearly as good; it just sounds like a line of sportswear put out by Jeff Goldblum. Or we could pay homage to the original WildCard title and call the stuff WildWare (hmmm...theres a Van Halen song in there somewhere...)!
Stack Overflow Revisited
There are times when ID = 28 does not indicate stack overflow.
I kept getting this error on a recent project, but prior to the error, there was plenty of room on the stack and I wasnt using any piggish calls. My investigation revealed the following:
The stack sniffer routine which runs during interupt time (at about 60 times a second) compares the then current address of the stack with the address of the highest block in the application heap and reports ID = 28 if the latter is greater. The address of the highest block in the heap (which is not necessarily the same as ApplLimit) is stored in the first longword of the application heap zone header (i.e. the first 4 bytes of the application zone).
Should the first 4 bytes of the application zone become corrupted with a value higher than the current stack address youll get an ID = 28 error event though, in reality, the stack is fine.
There are a number of ways that these four bytes could be overwritten, but in my case it was a system heap overflow. This occured as follows :
To launch a document, I got the handle of the AppParm block in the system heap from the system global AppParmH. I SetHandleSize of the document data and stuffed it. It turns out that the Finder always locks this block, sets the handle size, but does not unlock it (which I would call a bug). Thus, my SetHandleSize call failed. Of course, the real problem was that I neglected to check for an error after SetHandleSize.
I suppose that there are more subtle ways of getting a system heap overflow, and it probably pays to check the first four bytes of the application zone if you get an ID = 28 error that is otherwise unexplained.
Byte Benchmarks Rebuffed
We just got our Mac][ and MPW last week and decided to test those benchmarks. The results show Byte is guilty of sloppy journalism and biased reporting. The float benchmark on a Mac ][ w/ MPW Pascal using the align words, 68020 and 68881 compiler options gave a 10 sec benchmark. Our IBM AT with 9 MHz 286 and 8 MHz 287 gave 35 sec. Now half the AT value to correct for the clock speed difference and you have the Mac ][ running 1.75 times faster which is not surprising. What about those benchmarks in Byte though? They show an IBM Model 80 doing 0.48 sec for the float while a Compaq 386 does only 4.41 sec. Although the Compaq is only running the 287 at 8 Mhz that correction will only bring the benchmark down to 2.2. What gives? Bogus benchmarks, thats what. If you look at the Motorola Apples vs Oranges booklet it notes that bogus benchmarks are often cited for floats where a calculation like:
a := b/c; a := a*c; d := a/b; d := d*b;
because they are using optimized compilers which drop out useless calculations like the above to d := a; Not a very fair comparision is it! By the way, the IBM AT float benchmark was done in Microsoft Pascal. TurboPascal gives a benchmark which is twice as slow for the AT.
Remember MultiMac? That was probably one of the most mysterious programs ever; it appeared without warning, actually did multitasking (not well, but the frequent crashes were no worse than those on an Amiga, with its multi-tasking operating system/joke) and then, quite suddenly disappeared. No one seemed to know who the author was, nor what happened to it since its disappearance. Unlike MultiFinder, it ran on a 512K machine (with the old Roms, no less) and did multitasking. How come its taken Apple 18 months (or more) to come out with a program that does less? And what was the true story about MultiMac?
On Bill Atkinson & Andy H.
Deirdre L. Maloy
Err... Dont you mean canonize? Cannonize would be blowing someone apart....
Frank - I heard from a friend who talked with Andy Hertzfeld about MultiMac. Turns out Andy was quite impressed by what the European author (whose name I forget) managed to get a Mac to do, and this idea later worked out to be Servant/Juggler/MultiFinder. In fact, MultiFinder LOOKS an awful lot like MultiMac, including the menu trick (but MultiMac had the menu on the right of the menu bar instead of on the Apple menu).
Copyright violation is the sincerest form of flattery...
[Please note that Apple is very sensitive about the suggestion that Switcher or Servant in any way impacted MultiFinder. The official line is they did not; it was a seperate development entirely. Of course, once someone shows you how -Ed]
I just heard some disturbing (well, to me) news about Fullwrite. Although they were showing it at MacWorld and even posted hours to shipping, supposedly that Microfilm-based electronic magazine (sorry, cant remember the name) claims that what was being shown was early beta, the program has big problems running under newer systems and finders, and probably wont be available when they said it would be. That program looked like *exactly* what I need, and all this is BAD NEWS!! But...is it true? Anyone heard the same/different? [FullWrite is all it claims to be and more, and will ship *soon* and be great! Dont worry. -Ed]
Hypercard visual effects
The visual effect in Hypercard should work on a Mac II, but you have to be in 1 bit per pixel mode. Hypercard writes directly to the screen to perform the effects, but does check if the screen is not B&W before doing so. If the screen is not B&W then it doesnt use any effects at all.
Just got HyperCard. Went to bed at 3:00 A.M. playing with it. Gad I hate new software. Say, does anyone know if it is possible to import data. I already have lots of information on other databases. I surely do not want to type the information in all over again.
Also, the manual that came with the software is pretty worthless. Does anybody know where I can purchase a copy of the programmers manual? Do I have to go thru A.P.D.A? Thanks in advance. Greg
Look in the button ideas stack. There should be a button for importing text. Look at the buttons script to see what it does; you should be able to customize it for any kind of input file.
Luke Van Wontergh
Just picked up Hypercard at the Home Computer Store - 17th & Tustin in Santa Ana. They have about 15 more copies. I was disappointed in the manual also.
An interesting note on Bytes latest 68020/80386 benchmarks (sept. 87 issue):
If you take the top machines with best test results (DSI-780 and Compaq 386 @ 16 mhz), when you calculate the average percent difference from each of the 6 tests and standardize each, you come out with the 68020 running 4% faster on average(for those 6 benchmarks). Of course that didnt stop Byte from saying the 386 was faster than a 68020.
Mac II Command-shift-3
Our Mac II now refuses to capture the current screen to disk. I had done this successfully twice before. Now it just beeps at me (on the first try after startup, it accesses the disk momentarily, then beeps). I tried running from floppy, replacing the system file, reseting PRAM; none produced results. There are no invisible Screen X files. It behaves as though there was insufficient disk space for the screen dump.
Mac II Screen capture
If you want Command-shift-3 to work on your Mac II, set the Control Panel MONITOR: Black & White and to 2 colors.
80MB disaster- What to do when your drive dies
First, run a bad block scan. If you get *any* bad blocks, youll need to reformat the drive. Im not too up on the Jasmine software, but it should include this utility. Next, try Disk First Aids test, DiskExpress verify or Apples SCSI Setup test option. I believe all of these perform a bad block scan.
My first guess is that youve got bad directory structures. This does not mean that you need to Format, but only Initialize the drive. This can be done by simply selecting the disk in the Finder and choosing Erase Disk. MAKE SURE YOU ARE USING SYSTEM AND FINDER 4.1/5.5 or better. This is the only combination that properly supports a volume over 32MB. This is also why Im guessing that it is the directories that are trashed, since you probably set up the drive originally with an older version of the System/Finder.
There are a number of decent HD-floppy backup programs. Just about everyone Ive seen will do the job, at least better than the Finder. Tape backup systems are still in their infancy. I figure in about a year well see the next generation. Look for major improvements once we start using DAT units for secondary storage. Personally I dont like partitioning software. There is no good reason (that I can think of) to partition multiple Mac volumes on a single drive. Remember that HFS means every folder *is* a partition.
When designing the Input Layouts for data entry, 4th Dimension jumps left-to-right, top-to-bottom on the form. If, for some reason, you want the next entry to occur on the right side of the form (rather than the default left), I found a shortcut using Easy Access.
First, align the tops of all the entry boxes on the region in question. Next, use the pointer to select the desired entry box. Engage Easy Access, hold down the 5 on the keypad, and tap once on the 8. This will shift the box up one pixel; just enough to give that box precedence for data entry. You can barely see a one-pixel shift, but 4th Dimension knows its there. Problem solved.
The system will determine the size of the volume and create allocation blocks accordingly. On a 80MB size volume the allocation blocks are 1.5k. On my 140MB they are 2.5k. This means that a single char in a file will *at least* occupy 2.5k on the disk.
The 68881 is the fastest of the currently available math co-processors. The 80287 is a bit slower, and sometimes even slower than the old 8087. Ive heard of IBM slaves that plan on adding a 68881 to their machines (it would work, with some glue chips and LOTS of software). The 68882 is an improved version of the 881, both in speed and accuracy. Intel is coming out with a 80387 (and even an 80487! - dream on!) and if its up to their usually low standards, its only going to be a minor improvement over the 287. About Byte: The problem with the Byte benchmarks is not just that they were terribly bias, but that they show an astounding lack of professionalism for what is often considered the premier microcomputer magazine. If they had such a hard time getting reliable benchmarks, software and hardware for their Mac tests, and if they were truly honest and unbiased, they would not have published the three articles. Now David Betz has come up with Mac II benchmarks that do make sense. I wonder if theyll print a retraction or just print some sleezy explanation approved by their IBM masters...
Red Ryder doesnt want to do anything in the background! Tonights quickscan was put on hold when I clicked in another window, and only resumed when I again made it the active application. Any suggestions? or do I look for another telecom program?
The Complete Hypercard Handbook
Just picked up my copy of Danny Goodmans book. B.Dalton Book Sellers has a few copies ( South Coast Plaza & Westminster Mall in Orange County). One thing for sure is that its BIG, 720 pgs., and the price may be a little high for some $29.95. But it is going to be the book to have for HyperCard as it gives a complete and in depth look at the program and how to program with it, some insight into how Bill A. came up with the idea for the program and more. Well Im going back to reading my copy now.
MPW 2.0 Pascal held up
Apple stopped shipping MPW 2.0 Pascal due to a very serious bug having to do with byte size array elements. Or something like that anyways. I dont know if that effected the release of 2.0 Shell or not. Im dying to use a new version of the Shell, the one I have now (2.0 B1) is very buggy.
Im having lots of trouble installing an INIT. If anyone can answer any of these GENERAL questions about the problem, itd help.
First, there is no REZ definition of an INIT resource. Im simply linking my program as a DRVR then converting it to an INIT. This action assumes that the code will simply execute as is, starting at the beginning. I have seen statements to the effect that an INIT must BRA somewhere, with that BRA instruction followed by 2 NOPs. In disassembling some INITs -- both in and out of the System file -- Ive seen that done. Ive also seen that not done. Is this INIT definition applicable only to those of the olden days that had to be installed in the System itself?
Second, whenever I do a _Blockmove to an allocated ptr in the System heap, the code which IS put there during the INIT (traced through) is not there later. I wonder if the info Im setting in ResEdit (system heap and locked) is somehow not being saved and is thus making my code purgeable. Is there a bug in ResEdit that might be causing this to happen? If this were happening, would an INIT that was placed in either heap during early startup be removed after startup was complete? I mean, are purgeable resources purged during startup?
The only rule governing the structure of an INIT is this: It must be executable code with the entry point at the beginning and it must terminate with an RTS.
You do not need to have a BRA with two NOPs. There is a standard developing, though, where people are starting their INITs with BRA instructions, and then following that with ASCII information about the INIT.
When the System boots, it opens your INIT file with OpenResFile, then it executes all of the INIT resources in that file. When its done, it does a CloseResFile. ANY INIT RESOURCES STILL OPEN FROM THAT FILE WILL GET RELEASED! This means that any code you have in the INIT will be marked as free on the heap.
To avoid this, you can do a couple of things. First, you can copy yourself to another non-relocatable block in the System Heap. Since this block is not a resource, it wont get released when the resource file closes. OR, you can call DetachResource on yourself. This has the effect of releasing yourself as a resource, but leaving the heap block around.
Any INIT code that wants to live beyond boot time should load into the System Heap and should be locked. The Application heap at that time will not last very long.
Will a detached resource be invisible also to Macsbug?
If you detach a resource, then Macsbug wont recognize it as a resource. If you copy the INIT code into a non-relocatable block, then Macsbug will report it in a heap dump, but you wont be able to tell (from that listing) which non-relocatable is your INIT.
Microphone & Multifinder
A while back I tried using Microphone with Multfinder/Juggler and was deeply disappointed to find out that Microphone would not operate properly in the background (i.e. was not Juggler friendly). Every time I would switch to another application (Microsoft Word, for example), Microphone would turn itself off. Well, yesterday, I decided to see what would happen if I cut out the SIZE ID=-1 resource from a Juggler friendly application and paste it into Microphone - It worked! I switched to the Finder and I could see text scrolling by in the Microphone window that was behind. I also tried doing XMODEM file transfers while fiddling around in the Finder and various applications and they worked fine. Now I dont know about you, but I had always wished I could do something else with my computer while I was in the middle of an hour long file transfer, and now I can!
MultiFinder patch for apps
The patch you mentioned Alfred seems to work with most of the pre-MultiFinder applications. I suggest you COPY the resource out of MacWrite 4.6, and paste it into the program of your choice. If you read the article on the download board youll see how this has been documented.
A layout procedure only executes when the record is being modified. To change the current selection while the record is being worked on is the equivalent of pulling the data out from under the pointer. If you HAD managed to do it (by calling a global procedure from within a layout procedure, for example), you would have gotten, probably, a bomb.
The answer is to change the selection from a global procedure that calls the layout procedure.
680X0 in a Mac Plus
In view of the current craze in the Mac community for faster chips, has anybody tried putting a 68010 into a Mac Plus? The 000 and 010 are pin compatible, and the microcode is a little more efficient to the point that a Motorola MPU guy told me that in normal operation at the same clock speed an 010 should be about 30% faster than an 000. The only thing Im concerned about is the 68010s loop instructions. Has anyone done anything with this? Also, would anybody know how to put a 68020 into a plus? Obvoiusly, it is possible since I know of 2 companies that sell 020 boards for the plus.
My old monstermac board had a 68010 in it. It was number 49; a real early version back when Maxwell was making all sorts of performance improvement promises. He said it was clocked at the 68K speed and not 10mhz. This was a few years ago so the last time I cracked open the box (before I sold it) I looked to make sure. Yup, 68010. The Laserwriter has a 68010 in it too ya know.
Anybody read Zachmanns column in Infoworld? Sigh, I have to agree with him regarding the level of fanatacism in the Mac world. Makes me wanna change my handle. Anybody see the ad on page 100?????
Bought a CMS SC40a from SnAPP and unfortunately found that the DOVE SCSI would not recognise it. After hassling with Dove and confering with Rusty, the Dove was the problem. Brought the drive up on a borrowed SE and was impressed with the speed. Does any one have any information on the caching used in the SC40a? By the way, am returning the DOVE SCSI to be replaced with a Julian Systems SCSI at the recommendation of CMS. Thanks to Rusty for his leg work and a good deal on the drive. Keep up the good work. (Dove admits thier SCSI is at fault .They want me to me to solder a lead from the SCSI interface to the RAM expansion board 512 to 1 M. Bozo huh?!)
ADB Mouse Blues
I have to agree with an OLD post of Jims:
Ive notice a definite decrease in responsiveness when the ADB mouse is plugged into the keyboard rather than directly into the rear of the SE. It seems to get real jumpy, especially during floppy I/O.
Is it just me, or do any of the rest of you feel that the ADB has generally LOWERED the quality of the mouse feel compared to the Mac Plus? The Macintosh mouse is one of its better designed (and often overlooked) features. Every mouse Ive ever seen on a PC has failed to implement the Mac mouses variable response ratio (pointer is 1:1 when the mouse is moved slowly, higher when the mouse is moved more quickly). It is incredibly difficult to perform precise selections with one of these mutant PC mice.
On the SE, NONE of the provided mouse settings seems to duplicate the slope of the response curve of the Mac Plus mouse. They either speed up too abruptly or not fast enough. I suppose I could get used to it, but it sure is disconcerting.
Maybe the Chief Wiz could shed some light on the subject.
Two places I have come accross that sell 1meg SIMMs at a good price are Computer Parteners, Beach Bl., Stanton, CA and Orion Avionics, Lawndale, CA (213) 676-0880.
They both also sell other types of memory enhancements for all Macs I have dealt with Computer Parteners and can recomend them for all types of Mac equipment and software.
It appears that most of the problems with ADB are the result of the fact that ADB is a more complicated communications bus than the previous keyboard. Of course, previously the mouse was directly connected to a VIA which caused an interrupt whenever the mouse moved.
Now, though, the mouse is treated as an ADB device which requires the more time consuming bi-directional ADB request mechanism.
I dont have any concrete information about whether or not the mouse is actually slower when it goes through the keybaord, but I would tend to doubt it. In either case, the mouse is on the ADB bus, whether it is physically connected to the keyboard or not (i.e. if keyboard signals were colliding with the mouse, I think they would still collide when the mouse was plugged into the back of the Mac).
It seems to me that the problems with the ADB mouse must be in the software drivers on the SE, since I run a ADB mouse through a keyboard on a //GS daily, and the mouse and keyboard action are as smooth and fast as my mac+.
This is really great. In case nobody noticed, Apple also put some of this in the high-level interfaces in the final MPW 2 (and presumably IM Volume V), such as finding the System font size and number, and finding the menu bar height (128K ROM only). This goes a long way to making this code work with only a recompile if any of this ever changes in the future.
However, MPW C only allows one 16-bit instruction; it sure would be nice if this simple restriction could be removed. (I know, nobody on this board cares about C.)
Lightspeed & Switcher
The letter from Andrew Singer on p. 6 of the August MacTutor seems to say, if I read it correctly, that Switcher wont work under System 4.1...this is news to me, since I have been using Switcher successfully under 4.1 for a number of applications. Of course, Lightspeed Pascal isnt one of those applications. Curious to see what would happen, I tried giving Lightspeed a 512K Switcher partition under 4.1, and got the message The Lightspeed Zone is damaged...proceed with caution...so OK, it doesnt yet work with 4.1. However, most apps *do*, and it was a little disconcerting to read that they dont. Im even more curious to know what it will do with MultiFinder.... Of course, MultiFinder will probably make Switcher a thing of the past, but until then, its one heck of a useful utility (especially now that I have 2 megs! hee hee) -k
Lightspeed and Multifinder
One of the big Lightspeed fans on Usenet was saying that Lightspeed fails miserably under MultiFinder, and there are even some at Think who dont believe this should be fixed. Rich (whos also on Bix) spends all day using LSP and has worked closely with Think, so although Ive not verified it myself, I believe it.
It seems LSP does some funky stuff with the system environment (like swapping in/out lo memory globals) and SUPRISE! MultiFinder does the same...
MacApp @ MacWorld
In case anyone is interested, there were about 6-7 MacApp programs being demoed at MacWorld. Briefly, they were: Joel Wests picture colorizer (which also comes with some other neat things besides the MacApp program), a drum machine program called Different Drummer, a client management program called GYST, the Apple FaxModem application (which lets you send and receive faxes unattended, etc.), a backup program called Mac Up, a program called Map/Access which is a geographically-oriented data manager, an engineering application called Mac COGO.
Quark said they would be dropping the copy protection on Xpress in the near future. Call them and complain - you may get a non-protected copy out of them.
Due to bugs in their hard disk install program, we used FixJT to install (unprotect) our copy at work for hard drive use. It has worked well for 3 1/2-4 months now.