TweetFollow Us on Twitter

CMD-Shift-3
Volume Number:2
Issue Number:8
Column Tag:Assembly Language Lab

CMD-Shift-3 Patch for the New ROMS

By Harvey Grosser, Oakland, CA

Menu Snapshots with the new ROMs

As was described in the July MacTutor, attempting to take a screen dump with a menu pullled down on a machine with the 128K ROM results in the menu snapping up before the dump is taken. Also, on both old and new ROMs, pulling down a menu results in the Alarm clock (and any other desk accessories which require periodic updates) freezing, because no call is made to SystemTask by the Menu Manager. This short patch fixes both of these problems.

First, we need to patch the menu definition 0 resource in the system file. To do that, start up ResEdit and open the system file. Select MDEF 0 resource. Double-click on it and insert the following code at the beginning of the resource:

9EFC 0012 3F3C 0008
486F 0004 A970 DEFC
0012 A9B4

You may want to set the system heap flag as well to improve performance. This will cause it to be loaded once by the Finder and then remain on the system heap for subsequent applications.

Fig. 1 It Works Again on a Mac Plus!

Now close and save the system file. Assemble and link the INIT resource at the end of this article, and paste it into your system file. (Note: Make sure that the ID of this INIT, (17), does not duplicate that of an existing one-change if if necessary.) When you run an application, you will find that pressing Command-Shift-3 with a menu pulled down results in a screen dump being taken immediately, without waiting for the mouse to be released. This permits multiple snapshots to be taken from the same menu without having to pull it down each time, a boon when documenting a long menu. Also, desk accessories will no longer freeze when a menu is down, although they will still freeze when the cursor is in an unused part of the menu bar.

How it Works

This is the source code for this patch above:

SUBA.W  #18,SP ;stack space for evt record, result
MOVE.W  #8,-(SP) ;keydown event mask
PEA4(SP);address of evt record VAR param
_GetNextEvent
ADDA.W  #18,SP ;discard function result & event rec
_SystemTask ;allow DAs to work

Since the menu definition function is executed repeatedly while a menu is pulled down, this results in calls to GetNextEvent with an event mask which permits it to take key down events from the system event queue. When it sees one of these, it executes the appropriate FKEY routine if a Command-Shift-number key combination was pressed. The call to SystemTask permits desk accessories to run. The INIT routine is necessary because the new resource manager uses the MDEF 0 in ROM rather than the one in the System File. (See the Aug. '85 issue of MacTutor for info on the INIT resources.) The patch functions by setting ROMmapInsert to 0 before every call to GetResource when the type asked for is MDEF or FONT. (This permits editing the Chicago font, some characters of which I consider really bad.) It is necessary to patch GetResource directly like this because the Menu Manager always sets ROMmapInsert to TRUE before making the call. I would really appreciate it if someone out there could give the exact meaning of the individual bytes at $B9E (ROMmapInsert) and $B9F (TempResLoad); Apple's Tech Note #57 is rather vague on this.

; MDEFINIT.ASM
; place this INIT in system file
; to fix cmd-shift-3 bug

;Place this patch in MDEF 0
;resource (at beginning), in
;your system file:
;
;9EFC 0012 3F3C 0008
;486F 0004 A970 DEFC
;0012 A9B4
;
;Patch meaning:
;
;SUBA.W #18,SP
;MOVE.W #8, -(SP)
;PEA  4(SP)
;_GETNEXTEVENT
;ADDA.W #18,SP
;_SYSTEMTASK
;

INCLUDE MACTRAPS.D

GetResource equ  $A9A0  ;trap address
ROM85   equ $28E ;new ROM= $7FFF 
RomMapInsert   equ   $B9E 

RESOURCE'INIT' 17'MDEF Init' $50 ;SysHeap+locked

start:  
 BRA.W  after
patch:  
 CMPI.L #'MDEF', 6(SP)  ;check type
 BEQ.S  @1;for MDEF or FONT;
 CMPI.L #'FONT', 6(SP)  ;if not,
 BNE.S  jump;don't change map
@1:
 CLR.W  ROMmapInsert
jump: 
 JMP  $12345678  ;filled in by init routine

after:  
 LEA  start,A0 
 _RecoverHandle  ;handle to proc
 TST.W  ROM85  ;new roms? (7FFF)
 BPL.S  newROM ;yes, go for it
 _DisposHandle   ;no, forget it
 RTS    ;and exit
 
newROM: 
 MOVE.L #after-start,D0 ;get our size
 _SetHandleSize  ;chop off init routine
 MOVE.W #GetResource,D0 
 _GetTrapAddress ;addr of GetResource
 LEA  jump+2,A1  ;paste it into patch
 MOVE.L A0, (A1) ;patch it
 LEA  patch, A0  
 MOVE.W #GetResource,D0 
 _SetTrapAddress ;install patch
 RTS
 END
 

Community Search:
MacTech Search:

Software Updates via MacUpdate

BusyCal 3.1.7 - Powerful calendar app wi...
BusyCal is an award-winning desktop calendar that combines personal productivity features for individuals with powerful calendar sharing capabilities for families and workgroups. Its unique features... Read more
Lyn 1.8.9 - Lightweight image browser an...
Lyn is a fast, lightweight image browser and viewer designed for photographers, graphic artists, and Web designers. Featuring an extremely versatile and aesthetically pleasing interface, it delivers... Read more
Tweetbot 2.5 - Popular Twitter client.
Tweetbot is a full-featured OS X Twitter client with a lot of personality. Whether it's the meticulously-crafted interface, sounds and animation, or features like multiple timelines and column views... Read more
Monolingual 1.7.8 - Remove unwanted OS X...
Monolingual is a program for removing unnecesary language resources from OS X, in order to reclaim several hundred megabytes of disk space. If you use your computer in only one (human) language, you... Read more
Dash 4.0.3 - Instant search and offline...
Dash is an API documentation browser and code snippet manager. Dash helps you store snippets of code, as well as instantly search and browse documentation for almost any API you might use (for a full... Read more
Posterino 3.3.6 - Create posters, collag...
Posterino offers enhanced customization and flexibility including a variety of new, stylish templates featuring grids of identical or odd-sized image boxes. You can customize the size and shape of... Read more
Apple Numbers 4.1.1 - Apple's sprea...
With Apple Numbers, sophisticated spreadsheets are just the start. The whole sheet is your canvas. Just add dramatic interactive charts, tables, and images that paint a revealing picture of your data... Read more
Apple Pages 6.1.1 - Apple's word pr...
Apple Pages is a powerful word processor that gives you everything you need to create documents that look beautiful. And read beautifully. It lets you work seamlessly between Mac and iOS devices, and... Read more
iClock Pro 3.4.9 - Customize your menuba...
iClock Pro is a menu bar replacement clock for Apple's default clock. iClock Pro is an update, total rewrite and improvement to the popular iClock. Have the day, date and time in different fonts and... Read more
Typinator 7.2 - Speedy and reliable text...
Typinator turbo-charges your typing productivity. Type a little. Typinator does the rest. We've all faced projects that require repetitive typing tasks. With Typinator, you can store commonly used... Read more

Latest Forum Discussions

See All

Get up to speed with everything you need...
In case you haven’t heard, MU Origin just got a colossal new update with new all-server events, battle modes, and systems making their way to the land of MU. Here’s a handy guide to everything you need to know about the latest content. [Read... | Read more »
Minimalist puzzle game, Cuts, free on iO...
If you're looking for a gorgeous puzzle experience on iOS devices, developer Gamebra.in's aesthetically interesting puzzler, Cuts, is discounted to free on the iOS App Store right now. [Read more] | Read more »
Anime tactical RPG, War of Crown, comes...
If you're looking for another tactical RPG fix to go alongside your Fire Emblem Heroes campaigns check out Gamevil's newest, anime-inspired tactics RPG, War of Crown, which comes out tomorrow. [Read more] | Read more »
Fantasy MMORPG MU Origin adds new modes,...
MU Origin, Webzen’s highly popular fantasy MMORPG is getting ready to shake things up for the second time this year, as a new update makes its way to the Google Play and App Store from today. Introducing new systems, modes, and events, the land of... | Read more »
Blizzard is looking to hire a mobile dev...
A new thread on the popular video game rumor forum, NeoGAF, uncovered an interesting job listing over at Blizzard Entertainment. It appears the studio behindStarCraft, World of WarCraft, Hearthstone,andOverwatch is looking to bring on a new hire... | Read more »
Legend of Zelda meets Cooking Mama in ne...
Dungeon Chef is what happens when you mix the RPG elements (and style) of a Legend of Zelda game, with cooking elements. Although, now that The Legend of Zelda: Breath of the Wild also has cookingelements, so maybe the gameplay is not so novel.... | Read more »
ChordFlow (Music)
ChordFlow 1.0.0 Device: iOS Universal Category: Music Price: $6.99, Version: 1.0.0 (iTunes) Description: ChordFlow is a chord sequencer with a unique 4-track polyphonic arpeggiator, extensive chord library, MIDI out and Ableton Link... | Read more »
The Walking Dead: A New Frontier is out...
The newest season of Telltale Games'The Walking Dead is well underway. After the release of the third episode, "Above the Law" about a month ago, episode four, "Thicker Than Water" is hot and ready for more zombies and gut-wrenching emotional... | Read more »
Best games we played this week
Another week, another new wave of mobile games do dive into. We've dug through the list of apps that came out this week to tell you which apps are worth your sweet time. And while there weren't too many games this week, there were some big ones.... | Read more »
Vignettes (Games)
Vignettes 1.0.1 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0.1 (iTunes) Description: Vignettes is a casual but unique exploration game without text or characters, where objects shapeshift as you spin them around... | Read more »

Price Scanner via MacPrices.net

Digital Paper Tablet Offers Distraction Free...
I typically spend 8-10 hours a day gazing at the screens in my laptops and iPad, as tools of my livelihood, I don’t as a rule use electronic devices for pleasure reading. I subscribe to a daily... Read more
“Today at Apple” Bringing New Educational Ses...
Apple has announced plans to launch dozens of new educational sessions next month in all 495 Apple Stores ranging in topics from photo and video to music, coding, art and design, and more. The hands-... Read more
Smart Finance Free Comprehensive Personal Fin...
Moscow-based indie developer, Alexander Survillo has announced the release and immediate availability of Smart Finance: Personal Finance, Budget & Money 1.1.4, an update to his comprehensive... Read more
12-inch 1.1GHz Retina MacBooks on sale for $1...
B&H has 12″ 1.1GHz Retina MacBooks on sale for $100 off MSRP. Shipping is free, and B&H charges NY & NJ sales tax only: - 12″ 1.1GHz Space Gray Retina MacBook: $1199.99 $100 off MSRP - 12... Read more
13-inch 2.7GHz Retina MacBook Pro on sale for...
B&H Photo has the 13″ 2.7GHz Retina MacBook Pro on sale for $130 off MSRP. Shipping is free, and B&H charges NY & NJ tax only: - 13″ 2.7GHz/128GB Retina MacBook Pro (MF839LL/A): $1169 $... Read more
15-inch 2.2GHz Retina MacBook Pros available...
B&H Photo has the 15″ 2.2GHz Retina MacBook Pro available for $200 off MSRP including free shipping plus NY & NJ sales tax only: - 15″ 2.2GHz Retina MacBook Pro (MJLQ2LL/A): $1799.99 $200 off... Read more
13-inch Touch Bar MacBook Pros on sale for up...
B&H Photo has the 2016 Apple 13″ Touch Bar MacBook Pros in stock today for up to $150 off MSRP. Shipping is free, and B&H charges NY & NJ sales tax only: - 13″ 2.9GHz/512GB Touch Bar... 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
12-inch 1.2GHz Retina MacBooks on sale for up...
B&H has 12″ 1.2GHz Retina MacBooks on sale for up to $160 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 12″ 1.2GHz Space Gray Retina MacBook: $1439.99 $160 off MSRP - 12″ 1... Read more
HyperX Ships Pulsefire FPS Gaming Mouse, Winn...
Your reporter is a longtime fan of gaming mice for general purpose coomnputing use, finding them typically superior in comfort and performance. HyperX, a division of Kingston Technology Company, Inc... Read more

Jobs Board

Product Manager, *Apple* Platforms - Viacom...
…Product Manager to drive the execution of its iOS and AppleTV experiences. The Apple Platform Product Manager will be a leader in our Agile/Scrum environment and Read more
Geek Squad *Apple* Master Consultation Agen...
**500662BR** **Job Title:** Geek Squad Apple Master Consultation Agent **Location Number:** 000286-Canton-Store **Job Description:** **What does a Geek Squad Read more
*Apple* Mobile Master - Best Buy (United Sta...
**500710BR** **Job Title:** Apple Mobile Master **Location Number:** 000279-North Olmsted-Store **Job Description:** **What does a Best Buy Apple Mobile Master Read more
*Apple* Engineering Specialist - CSRA (Unite...
Apple Engineering Specialist All times are in Eastern Daylight Time Requisition ID Job Locations US DC Washington DC Posted Date Category Engineering Sciences Read more
*Apple* Mac Computer Technician - GeekHampto...
…complex computer issues over the phone and in person? GeekHampton, Long Island's Apple Premium Service Provider, is looking for you! Come work with our crew Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.