TweetFollow Us on Twitter

Jul 95 Tips
Volume Number:11
Issue Number:7
Column Tag:Tips & Tidbits

Tips & Tidbits

By Neil Ticktin, Editor-in-Chief with special thanks to Steve Sisak

Note: Source code files accompanying article are located on MacTech CD-ROM or source code disks.

TIP OF THE MONTH

Tag Your PowerPC Code
With a Call To _eieio()

When disassembling PowerPC code with CodeWarrior, it isn’t always easy to find the instructions associated with a given set of C statements. Putting in call like Debugger(); can turn a leaf routine into a trunk.

If you use the CodeWarrior intrinsic __eieio(), this is no April Fools joke, it will add the eieio instruction to the stream. Wrap your statements in this and moo. Also, it is fairly benign to accidentally execute.

Chris Sears
sears@netcom.com

Load Extensions After Boot-Time.

This is a cool hack to load Extensions without restarting the Mac. It is the main part of my Freeware utility LoadADrive 1.1, that can load a CD-ROM Driver after the Mac has been started. (You can mount CDs without restarting your Mac if you haven’t switched on your CD-ROM Drive at boot time. Works with System 7.x and even PowerMacs)

I also use this code to debug Extensions. It is anoying to reboot the mac all the time. With this code as the main part of a small application and a good Debugger (I use Jasik’s The Debugger) you can easily check the loading of the Extension.

I tested this code with some other Extensions and it works fine. Of course, this simple version will definitly not work with most Extensions, but you can improve the code to handle special situations.

Maybe someone, who has more free time than I have, will even develop an Uninstaller for Extension. You have to keep track of all patches, allocated memory, changes in Low Memory and so on. (not easy, I know :-)

I just want to demonstrate that it is NOT impossible to load Extensions after boot time.

Dieter Spaar
Friedberg, Germany

Boolean LoadInit(FSSpecPtr extensionFSSpec)
{
    short refNum, ret;
    Handle hdl;

    // Open resource fork

    refNum = FSpOpenResFile(extensionFSSpec, fsCurPerm);
    if(refNum == -1 || ResError() != noErr)
      return FALSE; // Cannot open file

    // Load INIT into System Zone

    SetZone(SystemZone()); // Set zone to system zone
    hdl = Get1IndResource(‘INIT’,1);
    if(hdl == 0) {
      SetZone(ApplicZone());
 CloseResFile(refNum);
 return FALSE; // Cannot load INIT from driver
    }

    HLock(hdl); // lock the resource
    HNoPurge(hdl);

    // Call INIT, we don’t handle the return value ret here

    ret = (*(short(*)())(*hdl))(); // Looks nice, doesn’t it ;-)

     // Is it still a resource ? (don’t unlock if detached)
     // Some INIT’s detach the resource to keep the INIT’s memory block

    if(HGetState(hdl) & 0x20)
    {
        HUnlock(hdl);
        ReleaseResource(hdl);
    }

    SetZone(ApplicZone()); // Back to application zone
    CloseResFile(refNum); // Close the resource file

    // Redraw desktop (Extension may draw startup icon)

    PaintOne(nil, GetGrayRgn());

    return TRUE;
}

...And Thus Spake the App, “Another Bug!”

Have a piece of code that hard to debug with the debugger? Trying to debug a code resource? Usually a quick and dirty solution is to put in a bunch of SysBeep(10) calls to get an idea of where your code is at. However, you can use Apple’s Speech Manager in a similar fashion and get a much better “speak-out”. Here’s how:

Include SpeakIt.c to your project. (The code is included on the disk, and at the usual online places.) Include SpeakIt.h in all the files you want to have any debug statements spoken. In SpeakIt.h is the macro DebugSpeech. Define it like “#define DebugSpeech 1” when you want to use the speech debugger, and comment it out when you don’t want to use it. Within the code you want to debug, call the speech debugger by adding code like this example:

#ifdef DebugSpeech
    CheckSpeechMgr();   // should be called once in your initialization code
#endif

. code ...

#ifdef DebugSpeech
    SpeakIt( “Before while loop.”, true );
#endif

. more code ...

#ifdef DebugSpeech
    SpeakIt( “Made it through the while loop.”, true );
#endif

. and more code ...

#ifdef DebugSpeech
    SpeakIt( “Right before bringing up main window.”, true );
#endif


Cool!

Bill Modesitt
billm@maui.com, http://www.maui.com/~billm

 
AAPL
$99.38
Apple Inc.
-1.37
MSFT
$46.00
Microsoft Corpora
-0.36
GOOG
$569.60
Google Inc.
-7.76

MacTech Search:
Community Search:

Software Updates via MacUpdate

Cocktail 8.0 Beta 2 - General maintenanc...
Cocktail is a general purpose utility for OS X that lets you clean, repair and optimize your Mac. It is a powerful digital toolset that helps hundreds of thousands of Mac users around the world get... Read more
QuickBooks 2015 16.0.0.1352 R1 - Financi...
QuickBooks 2015 helps you manage your business easily and efficiently. Organize your finances all in one place, track money going in and out of your business, and spot areas where you can save.... Read more
Mac DVDRipper Pro 5.0.1 - Copy, backup,...
Mac DVDRipper Pro is the DVD backup solution that lets you protect your DVDs from scratches, save your batteries by reading your movies from your hard disk, manage your collection with just a few... Read more
Apple OS X bash Update 1.0 - Fix for sec...
The OS X bash Update fixes a security flaw in the bash UNIX shell on OS X 10.9.5 (also on OS X 10.8 and 10.7 [see Related Links below]). OS X 10.9.5 or later Downloads for OS X 10.8 and OS X 10.7 in... Read more
SyncTwoFolders 2.0.5 - Syncs two user-sp...
SyncTwoFolders simply synchronizes two folders. It supports synchronization across mounted network drives and it is a possibility to run a simulation showing in a log what will be done. Please visit... Read more
FinderPop 2.5.7 - Classic Mac utility, n...
FinderPop is a Universal preference pane that extends OS X's contextual menus using a FinderPop Items folder much as the Apple Menu Items folder used to do for the Apple menu. It has other features... Read more
VueScan 9.4.45 - Scanner software with a...
VueScan is a scanning program that works with most high-quality flatbed and film scanners to produce scans that have excellent color fidelity and color balance. VueScan is easy to use, and has... Read more
LibreOffice 4.3.2.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
calibre 2.4 - Complete e-library managem...
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... Read more
Default Folder X 4.6.9b1 - Enhances Open...
Default Folder X attaches a toolbar to the right side of the Open and Save dialogs in any OS X-native application. The toolbar gives you fast access to various folders and commands. You just click... Read more

Latest Forum Discussions

See All

Nexticy Review
Nexticy Review By Jennifer Allen on October 1st, 2014 Our Rating: :: IDEAL FORM CREATIONiPad Only App - Designed for the iPad Nexticy allows you to make your own forms for research purposes or to organize your business better. It’s... | Read more »
HeroCraft Introduces Unlimited Sequel to...
HeroCraft Introduces Unlimited Sequel to WW2: Sandbox. Strategy & Tactics Posted by Jessica Fisher on October 1st, 2014 [ permalink ] | Read more »
RGB Express Review
RGB Express Review By Jennifer Allen on October 1st, 2014 Our Rating: :: DELIGHTFUL PUZZLINGUniversal App - Designed for iPhone and iPad Guide trucks along their delivery routes in RGB Express, a testing but charming puzzle game... | Read more »
The Sagas of Fire*Wolf (Games)
The Sagas of Fire*Wolf 1.0 Device: iOS Universal Category: Games Price: $9.99, Version: 1.0 (iTunes) Description: | Read more »
BuggyFun Review
BuggyFun Review By Amy Solomon on October 1st, 2014 Our Rating: iPad Only App - Designed for the iPad BuggyFun allows children to create their own tracks for bugs to interact with for a unique open-ended experience.   | Read more »
Fold the Adventure Review
Fold the Adventure Review By Jennifer Allen on October 1st, 2014 Our Rating: :: AWKWARD FOLDSUniversal App - Designed for iPhone and iPad Fold pieces of paper to create platforms for a princely rabbit in this puzzle game; something... | Read more »
WW2: Sandbox. Strategy & Tactics (G...
WW2: Sandbox. Strategy & Tactics 1.0.0 Device: iOS Universal Category: Games Price: $9.99, Version: 1.0.0 (iTunes) Description: ***NOTE: Compatible with iPhone 4s and up, iPad 2 and up - may not work properly on earlier devices... | Read more »
apeFilter (Music)
apeFilter 1.0 Device: iOS Universal Category: Music Price: $6.99, Version: 1.0 (iTunes) Description: | Read more »
Shred It! Review
Shred It! Review By Jennifer Allen on September 30th, 2014 Our Rating: :: GORGEOUS BUT BASICUniversal App - Designed for iPhone and iPad It might look lovely, but Shred It! is a pretty shallow endless runner/snowboarding game.   | Read more »
Check Out the New Teaser Trailer forGAME...
Check Out the New Teaser Trailer forGAMEVIL’s Darkness Reborn Posted by Jessica Fisher on September 30th, 2014 [ permalink ] Darkness Reborn, by GAMEVIL< | Read more »

Price Scanner via MacPrices.net

Apple resting On Its iPhone Laurels? – The ‘B...
Apple calls its new iPhone 6 and 6 Plus “The Biggest Advancements in iPhone History,” but does reality live up to the hype? “Seldom have so many waited so breathlessly for so little,” tweeted veteran... Read more
Roundup of Apple Mac and iPad Education disco...
Purchase a new Mac or iPad at The Apple Store for Education and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free,... Read more
Apple Boycotts German Magazine Computer Bild...
Apple has revoked its PR accreditation of Germany’s Computer Bild, Europe’s best-selling PC magazine, in reaction to Bild’s posting of a “#Bentgate” YouTube video. Axel Telzerow, editor in chief of... Read more
iPhone 6 & iPhone 6 Plus Available in Chi...
Apple has announced that iPhone 6 and iPhone 6 Plus will be available in China beginning Friday, October 17 from the Apple Online Store (http://www.apple.com), Apple’s retail stores, and an expansive... Read more
MacBook Airs on sale for $100 off MSRP, start...
Best Buy has the new 2014 MacBook Airs on sale for $100 off MSRP on their online store. Choose free home shipping or free local store pickup (if available). Prices valid for online orders only, in-... Read more
Apple Releases OS X Mavericks bash Update 1.0...
Apple has released a patch update for OS X Mavericks users to address the recently-detected “Shellshock” security bug in BSD UNIX’s bash shell. Apple says only a few Mac users who had manually... Read more
Pivotal Payments Ready for Apple Pay – FlexPo...
Pivotal Payments, a provider of merchant services and global payment processing solutions, has announced its proprietary FlexPoint platform will support credit and debit transactions through Apple’s... Read more
iStabilizer Announces Tabarm — First Friction...
iStabilizer, a specialist in universal lightweight compact tripods, steady cams, dollies, mounts, and remotes for smartphones, tablets, and cameras, announced today the iStabilizer tabArm, the first... Read more
IStabilizer Flex Smartphone Tripod Wins Usa T...
iStabilizer, a specialist in universal lightweight compact tripods, steady cams, and other products for smartphones, tablets, and cameras, has announced today that its iStabilizer Flex smartphone... Read more
13-inch 2.8GHz Retina MacBook Pro on sale for...
B&H Photo has the new 2014 13″ 2.8GHz Retina MacBook Pro on sale for $1699.99 including free shipping plus NY sales tax only. They’ll also include free copies of Parallels Desktop and LoJack for... Read more

Jobs Board

*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
Senior Event Manager, *Apple* Retail Market...
…This senior level position is responsible for leading and imagining the Apple Retail Team's global event strategy. Delivering an overarching brand story; in-store, Read more
*Apple* Solutions Consultant (ASC) - Apple (...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
Project Manager / Business Analyst, WW *Appl...
…a senior project manager / business analyst to work within our Worldwide Apple Fulfillment Operations and the Business Process Re-engineering team. This role will work Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.