TweetFollow Us on Twitter

AppleEvents 101 Bug
Volume Number:9
Issue Number:7
Column Tag:Article Rebuttal

Related Info: Notification Mgr Event Manager Apple Event Mgr

Apple Events 101 Bug

Bit Mask vs. Bit Number

By John Theisen, Flagstaff, Arizona

About the author

John Theisen, Macintosh Developer

1000 W. Forest Meadows #262, Flagstaff, AZ 86001 USA INTERNET: jjt@naucse.cse.nau.edu

Dear Sirs,

This letter is in response to the writer of AppleEvents 101 in your May 1993 Issue of MacTech Magazine.

While debugging the code that I had entered I came across a few problems with Dr. Kane's InitMac() routine. His painstaking use of the Gestalt Manager to determine the environment that the application is functioning in was done without a flaw, UNTIL he tests for the PPC attributes.

Dr Kane's code reads as follows:

 if (BitTest(&response, gestaltPPCSupportsRealTime) != 0)
 theErr = PPCInit();
 // if this bit is not set, we need to initialize

OK this looks to be correct given the previous calls to Gestalt() and then the testing of the attributes. Apple Inside Macintosh, Volume VI, Using the PPC Toolbox (page 7-10) specifical states that testing for the gestaltPPCSupportsRealTime should be conducted in the following manner:

{1}

 err := Gestalt(gestaltPPCToolboxAttr, PPCAttributes);
 IF err = noErr
 THEN {PPC Toolbox is present}
 BEGIN
 IF BAND(PPCAttributes, gestaltPPCSupportsRealTime)=0
 THEN
 BEGIN
 {INIT PPC Toolbox HERE}
 END
 END

This shows that in order to test for the gestaltPPCSupportsRealTime we are using a Binary AND ... this is *NOT* the same as a BitTest operation.

I have substituted the following code which matches more closely with Apple's version:

/* 2 */

 if ((response & gestaltPPCSupportsRealTime) == 0)
 theErr = PPCInit();
 // if this bit is not set, we need to initialize

 if ((response & gestaltPPCSupportsOutGoing) == 0);
 // tell the user to turn on AppleTalk
 
 if ((response & gestaltPPCSupportsIncoming) == 0);
 // tell the user to activate file sharing or Appletalk

For clarification of the BTST operation in the BitTest() procedure provided by Dr. 
Kane I am quoting the Motorola M68000 Programmer's Reference Manual

 "BTST  Test a Bit
            
A bit in the destination operand is tested, and the state of the specified bit is reflected 
in the Z condition code.  If a data register is the destination, then the bit number is modulo 
32, allowing bit manipulation on all bits in a data register..."
The PPC constants are defined as:

/* 3 */

gestaltPPCToolboxPresent = 0x0000
/* PPC Toolbox is present. Requires PPCInit to be called */

gestaltPPCSupportsRealTime = 0x1000
/* PPC Supports real-time delivery */

gestaltPPCSupportsIncoming = 0x0001
/* PPC will deny incoming network requests */

gestaltPPCSupportsOutGoing = 0x0002
/* PPC will deny outgoing network requests */

[taken from GestaltEqu.h Copyright Apple Computer, Inc. 1988-1990]

In the code originally supplied, we would be testing BIT 4096 (and since 4096 MOD 32 = 0, the code would test BIT 0). This happens to be the bit indicating that the PPC Toolbox is present.

The cases for gestaltPPCSupportsIncoming and gestaltPPCSupportsOutGoing read much the same as the above case for gestaltPPCSupportsRealTime. If used with the BitTest() operation gestaltPPCSupportsIncoming will test BIT 1 instead of BIT 0 (0x0001 in binary has BIT 0 set not BIT 1) and gestaltPPCSupportsOutGoing is also off by 1, testing BIT 2 instead of BIT 1.

When testing for these PPC toolbox attributes, Apple requires that you use these as bit masks and NOT bit numbers. Although your code may check out fine in the testing phase, these lurking bugs will come back to haunt you.

I hope that some other Developers can find this information useful. As a side note, users who wish to notify the user of the AE101 application that they need to turn on Appletalk in the Chooser should notice that the initialization of the Dialog Manager as well as a few other key managers should take place before they try to place any dialogs on the screen.

John Theisen

Macintosh Developer

NOTE Published in Editorial, August 1993:

Oops!

Jeff Kane wrote one of our most successful articles - AppleEvents 101 in the May ‘93 issue. We printed a rebuttal to his article that turned out not to be his bug. Evidently, Apple changed the header files and as a result, the definition of the gestaltPPC constants. Sorry Jeff.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Goat Simulator Waste of Space (Games)
Goat Simulator Waste of Space 1.1 Device: iOS Universal Category: Games Price: $4.99, Version: 1.1 (iTunes) Description: ** IMPORTANT - SUPPORTED DEVICESiPhone 4S, iPad 2, iPod Touch 5 or better.** | Read more »
Wildfulness - Unwind in nature and calm...
Wildfulness - Unwind in nature and calm your mind with nature sounds and illustrations 1.0 Device: iOS Universal Category: Healthcare & Fitness Price: $1.99, Version: 1.0 (iTunes) Description: Spending time in nature helps you to... | Read more »
Dr. Panda Racers (Education)
Dr. Panda Racers 1.0 Device: iOS Universal Category: Education Price: $2.99, Version: 1.0 (iTunes) Description: STEP ON THE GAS, RACE AND WIN!Fasten your seat belts and get ready to race! Speed your way to the finish line while doing... | Read more »
ROMANCING SAGA 2 (Games)
ROMANCING SAGA 2 1.0.0 Device: iOS Universal Category: Games Price: $17.99, Version: 1.0.0 (iTunes) Description: Romancing SaGa 2, originally released only in Japan in 1993, has been completely remastered and now receives its first... | Read more »
WRIO Keyboard (Utilities)
WRIO Keyboard 1.0 Device: iOS iPhone Category: Utilities Price: $2.99, Version: 1.0 (iTunes) Description: 40% OFF DURING LIMITED INTRODUCTORY OFFER | Read more »
Hatoful Boyfriend (Games)
Hatoful Boyfriend 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: The hit PC game that everybirdie loves has now migrated to your mobile device! Now you are free to explore the wonders of St... | Read more »
Warp Shift (Games)
Warp Shift 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: [ CHECK YOUR HARDWARE: Warp Shift does NOT run on iPhone 4, iPad 1 and iPod touch 4G or older devices! It requires at least iOS8... | Read more »
Lifeline: Whiteout (Games)
Lifeline: Whiteout 1.0.2 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0.2 (iTunes) Description: Alone in a frozen wasteland with no memory of how he got there, a lost adventurer’s only hope is his last line of... | Read more »
Castles of Mad King Ludwig (Games)
Castles of Mad King Ludwig 1.0.1 Device: iOS Universal Category: Games Price: $6.99, Version: 1.0.1 (iTunes) Description: | Read more »
How to command and conquer in Raid HQ
Raid HQ is a satisfyingly deep base building game with over-the-top macho action and explosions. This little free to play bundle gives you a lot to do from managing a squad to building the most powerful base you possibly can. [Read more] | Read more »

Price Scanner via MacPrices.net

15-inch Retina MacBook Pros on sale for up to...
B&H Photo has 15″ Retina MacBook Pros on sale for up to $210 off MSRP. Shipping is free, and B&H charges NY tax only: - 15″ 2.2GHz Retina MacBook Pro: $1799 $200 off MSRP - 15″ 2.5GHz Retina... Read more
Clearance 2015 13-inch MacBook Airs available...
B&H Photo has clearance 2015 13″ MacBook Airs available for $250 off original MSRP. Shipping is free, and B&H charges NY sales tax only: - 13″ 1.6GHz/4GB/128GB MacBook Air (MJVE2LL/A): $799... Read more
Apple refurbished Apple TVs available for up...
Apple has Certified Refurbished 32GB and 64GB Apple TVs available for up to $30 off the cost of new models. Apple’s standard one-year warranty is included with each model, and shipping is free: -... Read more
21-inch iMacs on sale for up to $120 off MSRP
B&H Photo has 21″ iMacs on sale for up to $120 off MSRP including free shipping plus NY sales tax only: - 21″ 3.1GHz iMac 4K: $1379.99 $120 off MSRP - 21″ 2.8GHz iMac: $1189 $110 off MSRP - 21″ 1... Read more
Kanex Introduces GoPower USB-C Rechargeable B...
Kanex has announced its GoPower USB-C portable battery for the USB-C MacBook, featuring the new industry standard connector and cable used for connectivity and power. Providing users with a new... Read more
Convertible and Detachable Devices Winning Ov...
According to the latest figures published by International Data Corporation (IDC), Western European shipments of ultraslim convertibles and detachables posted positive growth (44.7%) to account for... Read more
New MacBook Pros And Will MacBook Air Be Upgr...
With my mid-2013 13-inch MacBook Air closing on its third anniversary come November, I’m in system upgrade mode. Actually the Haswell CPU equipped Air is still doing a fine job, but my good wife is... Read more
Apple’s Education discount saves up to $300 o...
Purchase a new Mac or iPad using Apple’s Education Store and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free, and... Read more
13-inch 2.5GHz MacBook Pro on sale for $999,...
B&H Photo has the 13″ 2.5GHz MacBook Pro on sale for $999 including free shipping plus NY sales tax only. Their price is $100 off MSRP. Read more
Apple refurbished iMacs available for up to $...
Apple has Certified Refurbished 2015 21″ & 27″ iMacs available for up to $350 off MSRP. Apple’s one-year warranty is standard, and shipping is free. The following models are available: - 21″ 3.... Read more

Jobs Board

Editor, *Apple* News - APPLE (United States...
Job Summary The Apple News team is looking for a passionate and knowledgeable editor with experience covering entertainment/pop culture and experience running social Read more
*Apple* Nissan Service Technicians - Apple A...
Apple Automotive is one of the fastest growing dealer...and it shows. Consider making the switch to the Apple Automotive Group today! At Apple Automotive , Read more
ISCS *Apple* ID Site Support Engineer - APP...
…position, we are looking for an individual who has experience supporting customers with Apple ID issues and enjoys this area of support. This person should be Read more
Automotive Sales Consultant - Apple Ford Linc...
…you. The best candidates are smart, technologically savvy and are customer focused. Apple Ford Lincoln Apple Valley is different, because: $30,000 annual salary Read more
*Apple* Support Technician II - Worldventure...
…global, fast growing member based travel company, is currently sourcing for an Apple Support Technician II to be based in our Plano headquarters. WorldVentures is Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.