TweetFollow Us on Twitter

March 94 - KON & BAL'S PUZZLE PAGE

KON & BAL'S PUZZLE PAGE

WHEN MAPS GO BAD

KONSTANTIN OTHMER AND BRUCE LEAK

[IMAGE 130-134_Puzzle_Page_rev1.GIF]

See if you can solve this programming puzzle, presented in the form of a dialogbetween Konstantin Othmer (KON) and Bruce Leak (BAL). The dialog gives cluesto help you. Keep guessing until you're done; your score is the number to the left ofthe clue that gave you the correct answer. These problems are supposed to be tough. If you don't get a high score, at least you'll learn interesting Macintosh trivia.

KON: I have a Macintosh IIfx at home with a 13-inch color monitor and an old Kong.

BAL You mean the black-and-white two-page display? That thing is out of production. Programmers were the only ones who bought it, and we already sold one to every Macintosh programmer. I've got one too.

KON Mine's probably older, though. Fung gave me one of the prototype units that were blocking the entrance to his office about five years ago.

BAL Does it have the stylish metal cheese grater cage around it or did you actually get a plastic case?

KON I scored one with plastic, though it's yellow now from sitting in the sun. Anyway, now that the PowerPC workload is finally winding down, I've actually spent some time at home. I started playing around with Darryl's mapping program on my fx.

BAL MacAtlas?

KON Yeah. It's pretty cool. The problem is I can't open files.

BAL Command-O open? What happens?

KON Nothing. No Standard File, no dancing bears -- it's as if I never gave the Open command.

BAL I've never had a problem with that program. Does the menu get highlighted?

KON Yeah. Every once in a while you'll see it flash. This problem happens systemwide; I can't even open files in ResEdit.

BAL Can you drag documents onto the application icon in the Finder to open them?

KON Yeah. Everything not related to Standard File seems to work fine. I can edit files, play movies -- even file sharing works.

BAL What version of the system are you running? Does printing work?

100 KON I'm running System 7.1. I can't save and then print as recommended by our print shop because there's a problem with Standard File, but other than that it works fine. Why?

BAL This one's easy, KON. Something is locked down in your MultiFinder heap, so your system heap can't grow. Standard File can't bring in all its resources, so it punts. Are you running that skanky StockItToMe server that Timo and Rubinowitz wrote?

90 KON This happens just after boot and I've got mounds of RAM now that I've removed DAL. I do a heap dump (hd) of the MultiFinder heap and there are no locked blocks at the bottom, so the system heap can grow all it wants. Furthermore, the heap total (ht) command shows that there's plenty of room in the system heap.

BAL Clearly this bug is limited to your home machine. I figure you have some slimy KON code on there that's only half debugged -- maybe a beta version of WonderPrint. Set an ATB on Standard File, 'PACK' 3, and then try to open a document.

80 KON I hit the A-trap, but when I trace over it it just returns without putting up the Standard File dialog.

BAL Is the package getting loaded?

70 KON Yeah.

BAL Since I don't have the source to Standard File handy, I'll use the log command and then the conditional step command to get a trace of all the instructions executed inside the package. I figure it should be fairly easy to spot some error condition where the code decides to bail. Since the _Pack3 instruction is two bytes, if the call to it is at the current PC address, I use the MacsBug commands

log MyStdFileLog
s pc=pc+2

to step, logging each instruction to a file and then stopping as soon as the trap is exited.

60 KON Wow, that conditional stepping is pretty cool. I didn't know MacsBug was that sophisticated. You could have just put a breakpoint on the other side of the _Pack3 and stepped a zillion instructions. Anyway, the trace isn't prohibitively long. Standard File preloads all the resources it needs to display the dialog, checking each one to see if it was loaded properly. When it tries to load LDEF -4000, it fails and bails.

BAL All the resources it needs must come from the System file. Check to see if LDEF - 4000 exists in the system.

55 KON According to ResEdit, the LDEF isn't present in the System file.

BAL Compare the LDEFs in your system with a fresh installation.

50 KON The LDEFs are all the same except one, which has a different resource ID.

BAL Well, it sounds like you've got a trashed System file. Copy and paste the bad LDEF into your system and reboot.

45 KON Everything works fine now, but if I drag-install a new system, Standard File fails. Fixing the LDEF is addressing the symptom, not the problem.

BAL You drag the good System file over and reboot, and Standard File is broken again?

KON Yep.

BAL Check the LDEF with ResEdit.

40 KON It's renumbered again.

BAL So something is trashing the resource map during boot. What if I boot with the Shift key held down to disable extension loading?

35 KON According to ResEdit, the resource map is still trashed.

BAL Try dumping resources of type 'LDEF' with the command rd LDEF at interesting times during the boot process.

30 KON If you hold down the Control key to enter MacsBug just after it's installed, the LDEF resources are fine. If you check it again when you're in the Finder, the LDEF is bad.

BAL So I use

atb hopenresfile ';dm @(sp+2);rd LDEF;g 

to watch extensions load during the boot process. The command breaks as each
extension is loaded and displays the name of the extension and the current state of all
LDEF resources. When I see the LDEF go bad, I've gone a long way toward finding
the offending code.

KON During the 7.1 boot process, the system patches are loaded from disk and installed.
One of those patches opens all the font files in that crazy font folder. After all the
patches are installed, the system extensions
are loaded, starting with the 8*24 GC card. It's loaded first so that QuickDraw is in a
well-defined state before other system extensions go and patch out the world; once
third parties start getting in there, it's a free-for-all.

BAL Obviously, all the system patches need to be installed before extensions are loaded so
that the extensions can take advantage of improvements provided by the patches.
Haven't you ever wondered why booting takes so long?

25 KON While the font files are being opened, the resource map is fine. But just before the
first extension is loaded, the resource map is bad.

BAL We need to narrow down where the map is going bad. I'll look through the system
map for the ID that's getting stepped on. First I get the size of the resource map
handle by using

wh @@sysmaphndl 

Then I can find the resource ID with

f @@sysmaphndl size f060

since F060 is hex for -4000, the resource ID that's getting smashed.

20 KON Good try, but you find seven occurrences.

BAL So I continue until the map goes bad, and check for -4000 again. I'll find the one that's changed, reboot, and step-spy on that address. Ta-da!

15 KON Sorry, but the resource map is a handle and it has moved on you. You can identify the one that's changed, but you can't step-spy on it since it's moving around all the time.

BAL Fine. I'll reboot in 24-bit mode, lock the handle down by setting the high bit of the resource map handle's master pointer, and step-spy on the address. Over.

10 KON Now Standard File works fine, but file sharing is starting to act flaky.

BAL OK. So I'm going to have to brute force it. I'll break when the last font loads. I'll log the MacsBug output to a file with log myLDEFFile and then atb ';rd LDEF;g to break on all traps and dump all the LDEF resources. I'll also do anatc hopenresfile and then an atb hopenresfile to clear the rd LDEF;g when HOpenResFile is hit. This way we'll fall into MacsBug when the first INIT is opened. Then I'll let it rip and get some lunch.

5 KON Pretty snazzy there, BAL. Before the map goes bad you see a bunch of Slot Manager calls and control calls. The last trap that gets called before the map goes bad is a control call to the driver which seems to originate from within InitGDevice.

BAL Hmmm. We're at secondary INIT time. The driver gets called again since all the system patches are now loaded. We added this because monitors boot back to the same configuration they were in when the machine was shut down. With 32-Bit QuickDraw, the machine could have been shut down in 32-bit video mode, so the driver needs to be called a second time after the system patches (where 32-Bit QuickDraw lives) are loaded.

KON Yeah, the call that's killing the map is a call to the driver to set the bit depth. At secondary INIT time the 'scrn' resource is read to find out what the last bit depth was, and each device is called to set the depth up properly.

BAL The call must be going to the bogus Kong video card Fung gave you. What's the ROM version on that thing?

KON It's a beta ROM. When I asked Mike Puckett about it he said there was some nasty "fungus" in the code, and that it was fixed before final. He gave me a new video ROM, and now everything works great. Real-world users would never experience this, of course, since the problem was corrected long before the card went out.

BAL You and Van Brink should share packrat stories. You never know, some of that old equipment might become collector's items some day.

KON This problem began when I started using MacAtlas because I switched my Kong into grayscale mode. My system is a lot more stable now that those spurious writes have been fixed. Before I tracked this bug down, I was having intermittent problems.

BAL Nasty.

KON Yeah.

KONSTANTIN OTHMER AND BRUCE LEAK regularly change their AppleLink addresses through various front companies to help defray their tax losses from dealings in the stock market. They're currently trying to corner the market on masked ROMs, particularly 680x0 ROMs targeted at PowerPC processor-based machines. They were last seen looking for a '57 Corvette in good condition and are willing to swap debugging services in trade. *

SCORING

  • 80-100 This is a special category reserved for Waldemar and Jasik.
  • 50-70 Weekends spent at Weird Stuff Warehouse or Van Brink's garage are starting to pay off.
  • 25-45 You're spending too much time playing with that 3DO interactive multiplayer machine at your local electronics store.
  • 5-20 You're spending too much time at the gym. *

Thanks to Peter Hoddie, Brian McGhie, and Mike Puckett for reviewing this column. *

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

calibre 5.0.1 - Complete e-book library...
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 librarian... Read more
Compressor 4.4.8 - Adds power and flexib...
Compressor adds power and flexibility to Final Cut Pro X export. Customize output settings, work faster with distributed encoding, and tap into a comprehensive set of delivery features. Features:... Read more
Adobe Acrobat Reader 20.012.20048 - 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.012.20048 - 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
Box Sync 4.0.8009 - Online synchronizati...
Box Sync gives you a hard-drive in the Cloud for online storage. Note: You must first sign up to use Box. What if the files you need are on your laptop -- but you're on the road with your iPhone? No... Read more
Daylite 2020.36.1 - Dynamic business org...
Daylite helps businesses organize themselves with tools such as shared calendars, contacts, tasks, projects, notes, and more. Enable easy collaboration with features such as task and project... Read more
Catalina Cache Cleaner 15.0.6 - Clear ca...
Catalina Cache Cleaner is an award-winning general-purpose tool for macOS X. CCC makes system maintenance simple with an easy point-and-click interface to many macOS X functions. Novice and expert... Read more
Final Cut Pro X 10.4.10 - Professional v...
Final Cut Pro X is a professional video editing solution. Completely redesigned from the ground up, Final Cut Pro adds extraordinary speed, quality, and flexibility to every part of the post-... Read more
Civilization VI 1.3.4 - Next iteration o...
Civilization® VI is the award-winning experience. Expand your empire across the map, advance your culture, and compete against history’s greatest leaders to build a civilization that will stand the... Read more
iTubeDownloader 6.5.23 - Easily download...
iTubeDownloader is a powerful-yet-simple YouTube downloader for the masses. Because it contains a proprietary browser, you can browse YouTube like you normally would. When you see something you want... Read more

Latest Forum Discussions

See All

Undercrawl is a procedurally generated r...
Undercrawl is a roguelike dungeon crawler from indie developer Monster Shop Games. It's a genre that's popular in gaming in general but features even more frequently on mobile devices since the shorter, 'run' style of playthrough suits playing in... | Read more »
Distract Yourself With These Great Mobil...
There’s a lot going on right now, and I don’t really feel like trying to write some kind of pithy intro for it. All I’ll say is lots of people have been coming together and helping each other in small ways, and I’m choosing to focus on that as I... | Read more »
BTS Universe Story, the social game that...
Netmarble's highly anticipated social game, BTS Universe Story, is available now for iOS and Android. It's the second collaboration between the hugely successful mobile developer and the K-pop superstars following BTS World. [Read more] | Read more »
The 5 Best Mobile Games Like Hades
Supergiant Games finally released Hades upon the world this week, and we’re loving it. The game plays to all of the studio’s strengths while still retaining a strong sense of identity. It also just so happens to play rather well using the Steam... | Read more »
A Year of Apple Arcade: The Good, The Ba...
Apple Arcade has persisted for just over a year at this point, and although that means I've been busy ranking and re-ranking every game on the service for just about as long, I haven't done much reflection on the service as a whole. [Read more] | Read more »
Animal Restaurant anniversary event team...
Animal idle simulator Animal Restaurant is celebrating its first-year anniversary with a crossover event with popular YouTube series Aaron’s Animals. [Read more] | Read more »
Raziel: Dungeon Arena is a hack 'n...
Raziel: Dungeon Arena is available now on mobile and will appeal to fans of both comic books and old school dungeon crawlers. Not only will you hack 'n' slash your way through mobs of enemies but there's also fully-narrated animated comic to enjoy... | Read more »
Steam Link Spotlight - Hades
Steam Link Spotlight is a feature where we look at PC games that play exceptionally well using the Steam Link app. Our last entry was on Disco Elysium. Read about how it plays using Steam Link over here. | Read more »
Microsoft has acquired ZeniMax Media and...
In the latest of a series of blockbuster moves, Microsoft has now acquired Zenimax Media and its subsidiary, Bethesda Softworks, for $7.5 billion. [Read more] | Read more »
Infinity Mechs is an upcoming idle game...
Indie developer SkullStar studio has announced an upcoming idle mech game called Infinity Mechs. It draws inspiration from the mobile game Iron Saga and has been officially licensed by Game Duchy. It's set to launch for both iOS and Android on... | Read more »

Price Scanner via MacPrices.net

Clearance 8-core iMac Pro available for $3819...
Apple has Certified Refurbished, clearance, 27″ 3.2GHz 8-Core iMac Pros available $3819 including free shipping. Their price is $1180 off the original MSRP of new models. A standard Apple one-year... Read more
How The Upcoming Mac Transition To Apple Sili...
FEATURE: 09.25.20 – Apple’s plan to transition all of its desktop and notebook computers away from Intel processors to Apple silicon, chips designed by the company itself, has been eclipsed by the... Read more
New low price! Apple Watch SE for only $269
B&H Photo is reporting limited stock of Apple’s new Apple Watch SE GPS models for $10 off MSRP and including free shipping. Their $269 price for the 40mm model is the lowest price we’ve seen so... Read more
Lowest price anywhere: New 13″ 2.0GHz MacBook...
Amazon has new 2020 13″ 2.0GHz/512GB MacBook Pros with 10th generation Intel processors back in stock on sale today for $200 off Apple’s MSRP. Shipping is free. Be sure to purchase the MacBook Pro... Read more
Apple Pro Display XDR with Nano-Texture Glass...
Amazon Apple Premier Partner GatorTec has the Apple Pro Display XDR with Nano-Texture Glass on sale for $5599 shipped, on Amazon. Their price is $400 off Apple’s MSRP, and it’s the cheapest price... Read more
Get a 2019 13″ MacBook Air for only $779 toda...
Apple has clearance, Certified Refurbished, 2019 13″ 1.6GHz/128GB MacBook Airs available again for $779. Each MacBook features a new outer case, comes with a standard Apple one-year warranty, and is... Read more
2020 11″ iPad Pros on sale today for $50-$75...
Apple reseller Expercom has new 2020 11″ Apple iPad Pros on sale for $50-$75 off MSRP, with prices starting at $749. These are the same iPad Pros sold by Apple in their retail and online stores: – 11... Read more
Apple has restocked 2020 13″ MacBook Airs sta...
Apple has restocked Certified Refurbished 2020 13″ MacBook Airs starting at only $849 and up to $200 off the cost of new Airs. Each MacBook features a new outer case, comes with a standard Apple one-... Read more
Apple’s new 8th generation 10.2″ iPads are on...
Amazon is discounting new 2020 8th generation 10.2″ Apple iPads by up to $35 off MSRP with prices starting at only $299. Shipping is free. These are the same iPads sold by Apple in their retail and... Read more
Today on Woot: Apple refurbished 16″ MacBook...
Amazon-owned Woot has Apple refurbished 16″ MacBook Pros available today for up to $605 off the cost of new models. Shipping is free for Prime members: – 16″ 6-Core MacBook Pros: $1874.99 $525 off... Read more

Jobs Board

Freelance *Apple* Technology Journalist - V...
…freelance basis. Valnet Inc. is looking for journalists with strong knowledge of Apple technology for our website MakeUseOf.com MakeUseOf is one of the largest Read more
*Apple* Certified Macintosh Technician - Exc...
Apple Certified Macintosh Technician Summary Title: Apple Certified Macintosh Technician ID:350 Department:All Location:Bethesda, MD Description Apple Read more
Security Officer ($23.00/Hourly) - *Apple*...
**Security Officer \($23\.00/Hourly\) \- Apple Store** **Description** About NMS Built on a culture of safety and integrity, NMSdelivers award\-winning, integrated Read more
Security Officer ($23.00/Hourly) - *Apple*...
**Security Officer \($23\.00/Hourly\) \- Apple Store** **Description** About NMS Built on a culture of safety and integrity, NMSdelivers award\-winning, integrated Read more
*Apple* Certified Macintosh Technician - Exc...
Apple Certified Macintosh Technician Summary Title: Apple Certified Macintosh Technician ID:350 Department:All Location:Falls Church, VA Description Apple Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.