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

Adobe Illustrator 24.0.3 - Professional...
You can download Adobe Illustrator for Mac as a part of Creative Cloud for only $20.99/month (or $9.99/month if you have also purchased an earlier software version). Adobe Illustrator for Mac is the... Read more
Adobe Dreamweaver CC 2020 20.1 - Build w...
Dreamweaver CC 2020 is available as part of Adobe Creative Cloud for as little as $20.99/month (or $9.99/month if you're a previous Dreamweaver customer). Adobe Dreamweaver CC 2020 allows you to... Read more
Adobe Audition 13.0.3 - Professional pos...
Audition is available as part of Adobe Creative Cloud for as little as $20.99/month (or $9.99/month if you're a previous Audition customer). Adobe Audition empowers you to create and deliver... Read more
Adobe After Effects 17.0.3 - Create prof...
After Effects is available as part of Adobe Creative Cloud for $52.99/month (or $20.99/month for a single app license). The new, more connected After Effects can make the impossible possible. Get... Read more
Audio Hijack 3.6.4 - Record and enhance...
Audio Hijack (was Audio Hijack Pro) drastically changes the way you use audio on your computer, giving you the freedom to listen to audio when you want and how you want. Record and enhance any audio... Read more
Eye Candy 7.2.3.96 - 30 professional Pho...
Eye Candy renders realistic effects that are difficult or impossible to achieve in Photoshop alone, such as Fire, Chrome, and the new Lightning. Effects like Animal Fur, Smoke, and Reptile Skin are... Read more
Notability 4.2.2 - Note-taking and annot...
Notability is a powerful note-taker to annotate documents, sketch ideas, record lectures, take notes and more. It combines, typing, handwriting, audio recording, and photos so you can create notes... Read more
Adobe Acrobat Reader 20.006.20034 - View...
Adobe Acrobat Reader allows users to view PDF documents. You may not know what a PDF file is, but you've probably come across one at some point. PDF files are used by companies and even the IRS to... Read more
Adobe Acrobat DC 20.006.20034 - Powerful...
Acrobat DC is available only as a part of Adobe Creative Cloud, and can only be installed and/or updated through Adobe's Creative Cloud app. Adobe Acrobat DC with Adobe Document Cloud services is... Read more
Day One 4.8 - Maintain a daily journal.
Day One is an easy, great-looking way to use a journal / diary / text-logging application. Day One is well designed and extremely focused to encourage you to write more through quick Menu Bar entry,... Read more

Latest Forum Discussions

See All

Marvel Strike Force introduces new brawl...
FoxNext's squad-based RPG Marvel Strike Force is set to receive some fresh characters from the X-Men and Iron Man series. They'll arrive as part of the game's latest update, which follows a sizable spending boycott on the title due to complaints... | Read more »
Speed Dating for Ghosts is a narrative a...
Speed Dating for Ghosts originally released on Steam back 2018, since then it has received honourable mentions for narrative during the Independent Games Festival. Now it's made its way over to iOS devices where it's available as a premium title... | Read more »
Fast-paced multiplayer title Tennis Star...
Tennis Stars: Ultimate Clash is the latest free-to-play tennis title to hit iOS and Android. It's said to be a fairly casual experience, offering easy-to-learn controls and fast-paced, mobile-friendly matches. [Read more] | Read more »
Super Mecha Champions' latest updat...
Super Mecha Champions' latest update sees the addition of a brand new character called R.E.D. Alongside that, there's news about the current season and a series of Emojis that have been added to the game. [Read more] | Read more »
Isle Escape: The House is an upcoming pu...
Isle Escape: The House is an upcoming puzzle game from Simeon Angelov that's intended to serve as an introduction to a saga they're planning on releasing in an episodic fashion. The first chapter is set to release for both iOS and Android on 29th... | Read more »
Company of Heroes, the classic RTS, is n...
Feral Interactive has finally released their highly anticipated iOS version of the strategy classic Company of Heroes. It's available now for iPad as a premium title and has had various tweaks to ensure that it's optimised for touch controls. [... | Read more »
Mario Kart Tour's Vancouver Tour ha...
With Mario Kart Tour's Valentine's Tour now at an end (suspiciously before Valentine's Day has even arrived), it's now time to move on to the all-new and exciting Vancouver Tour. This time around, the featured drivers are Hiker Wario and Aurora... | Read more »
A new PictoQuest update makes it a much...
PictoQuest is a charming little puzzle game, but it left us a little disappointed. The game just didn’t seem to use screen space effectively, to the point that using the touch controls (as opposed to the default virtual d-pad) could lead to errant... | Read more »
Alley is an atmospheric adventure game a...
Alley is an atmospheric adventure game that sees you playing as a young girl trapped in an inescapable nightmare. Surrounded by her worst fears, every step forward for her is a huge challenge that you'll help guide her through using some simple... | Read more »
Fight monsters and collect heroes in Cry...
From Final Fantasy to Chaos Rings, Japanese roleplaying games have found a large and loyal fanbase on mobile devices. If you’re seeking a more under-the-radar JRPG to escape into, Lionsfilm’s Cryptract could be the one. The game has been around... | Read more »

Price Scanner via MacPrices.net

Apple AirPods are on sale for $30 off today
Amazon has new 2019 Apple AirPods (non-Pro models) on sale today for $30 off MSRP, starting at $129. Shipping is free: – AirPods with Wireless Charging Case: $169 $30 off MSRP – AirPods with Charging... Read more
27″ 3.7GHz 6-Core 5K iMac on sale for $2099,...
B&H Photo has the 2019 27″ 3.7GHz 6-Core 5K iMac in stock today and on sale for $200 off Apple’s MSRP. Overnight shipping is free to many locations in the US: – 27″ 3.7GHz 6-Core 5K iMac: $2099 $... Read more
Save up to $250 on a 12.9″ iPad Pros with the...
Apple has Certified Refurbished 12.9″ iPad Pros available on their online store for up to $250 off the cost of new models. Prices start at $849. Each iPad comes with a standard Apple one-year... Read more
Save up to $220 on 11″ iPad Pros with these r...
Apple has Certified Refurbished 11″ iPad Pros available on their online store for up to $220 off the cost of new models. Prices start at $679. Each iPad comes with a standard Apple one-year warranty... Read more
8-Core 27″ iMac Pro available for $4249, Cert...
Apple has Certified Refurbished 27″ 3.2GHz 8-Core iMac Pros available for $4249 including free shipping. Their price is $750 off the cost of new models. A standard Apple one-year warranty is included... Read more
$749 MacBook Airs continue to be available on...
Amazon has the 2017 13″ 1.8GHz/128GB MacBook Air on sale today for only $749 shipped. That’s $250 off Apple’s original MSRP for this model and the cheapest new MacBook available from any Apple... Read more
HomePods on sale for $204 at Other World Comp...
Other World Computing has discounted, new, Apple HomePods on sale for up to $95 off Apple’s MSRP: – HomePod Space Gray: $207.99 $92 off MSRP – HomePod White: $204.99 $95 off MSRP These are the same... Read more
Get a Certified Refurbished iMac at Apple for...
Apple has Certified Refurbished 2019 21″ & 27″ iMacs available starting at $929 and up to $350 off the cost of new models. Apple’s one-year warranty is standard, shipping is free, and each iMac... Read more
A Look Back At The Top 5 Most Read Stories Of...
FEATURE: 02.21.20 The best of the best are now history and we’re not talking about Super Bowl LIV from earlier this month but rather, coverage from the past year (its second and first full one at... Read more
Apple offers wide range of discounted custom...
Save up to $610 on a custom-configured 21″ or 27″ iMac with these Certified Refurbished models available at Apple. Each iMac features a new outer case, free shipping, and includes Apple’s standard 1-... Read more

Jobs Board

Medical Assistant - *Apple* Valley Clinic -...
…professional, quality care to patients in the ambulatory setting at the M Health Fairview Apple Valley Clinic, located in Apple Valley, MN. Join the **M Health Read more
Geek Squad *Apple* Consultation Professiona...
**762475BR** **Job Title:** Geek Squad Apple Consultation Professional **Job Category:** Store Associates **Store NUmber or Department:** 001423-San Jose-Store **Job Read more
Medical Assistant - *Apple* Valley Clinic -...
…professional, quality care to patients in the ambulatory setting at the M Health Fairview Apple Valley Clinic, located in Apple Valley, MN. Join the **M Health Read more
Geek Squad *Apple* Consultation Professiona...
**756636BR** **Job Title:** Geek Squad Apple Consultation Professional **Job Category:** Store Associates **Store NUmber or Department:** 001053-Arundel Mills-Store Read more
Medical Assistant - *Apple* Valley Clinic -...
…professional, quality care to patients in the ambulatory setting at the M Health Fairview Apple Valley Clinic, located in Apple Valley, MN. Join the **M Health Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.