TweetFollow Us on Twitter

Sep 93 Tips, Tidbits
Volume Number:9
Issue Number:9
Column Tag:Tips & Tidbits

Related Into: Standard File Memory Manager

Tips & Tidbits

By Neil Ticktin, Editor-in-Chief

This column is your opportunity to spread the word about little bits of information that you find out about. These tidbits can be programming related or they can be user tips that are particularly useful to programmers.

MacTech Magazine will pay $25 for every tip used, and $50 for the Tip of the Month. Or you can take your award in orders or subscriptions.

To submit a tip, send in a letter to the magazine. E-mail is our preferred method, but feel free to send something via the US Mail. See page two for all addresses. If you do send snail mail, enclose a printed copy and a disk copy of the letter so that it does not have to be retyped.

Tip of the Month

The toolbox call BlockMove is quite efficient and smart, especially for large chunks of data. In moving smaller pieces of memory, a very simple macro can do as well and execute much faster:

/* 1 (/
#define BLOCKMOVE(source,dest,len) \
{ typedef struct { char s[len] ; } _sss ;  \
  *(_sss*) (dest) = *(_sss*) (source) ;\
}

This macro generates a temporary structure of size 'len', and assigns the source structure to the destination structure. In this case the compiler will generate a tight loop moving 2 or 4 bytes of data whenever possible. There is no space penalty, i.e., it compiles to exactly the same number of bytes as a normal BlockMove.

Two restrictions apply in using BLOCKMOVE:

• the parameter 'len' must be a constant.

• the source and destinations cannot overlap.

Some performance comparisons:

Bytes BlockMove memcpy BLOCKMOVE

50 9 9 2

100 11 15 4

150 12 21 7

200 14 28 8

250 15 34 11

300 17 41 13

350 18 49 14

400 20 55 16

450 21 61 19

500 22 68 21

These comparisons were done on a PowerBook Duo 230 using Think C 6.0. Times are all measured in ticks for 5000 samples.

- Jan Bruyndonckx, Wave Research, Belgium

[If you are interested in more information on BlockMove, you might want to check out an article by Mike Scanlin in the May, 1993 issue of MacTech Magazine. The article is about writing a more efficient 68040 BlockMove. - Ed.]

Dump obj formatter

The MPW command 'dumpobj SomeLibrary > LibraryObjectCode.a' disassembles compiled library code into the form:

Module: Flags=$00=(Local Code) Module="SomeProcedure"(8) Segment="Main"(7)

Reference: Flags=$90=(A5Relative 16BitPatch 16BitOffsets FromCode)

Ref="arrow"(12)

0006

Content: Flags $08

Contents offset $0000 size $003A

00000000: 4E56 FFFC 'NV..' LINK A6,#$FFFC

00000004: 4AAE 0008 'J...' TST.L $0008(A6)

00000008: 6606 'f.' BNE.S *+$0008 ;00000010

The script below modifies the disassembled code into the form:

Module="SomeProcedure"(8) Segment="Main"(7)
 LINK   A6,#$FFFC
 TST.L  $0008(A6)
 BNE.S  *+$0008

The script:

          #2
format -f geneva -s 9 -t 26  #Set font, font size, tab size

#STEP1 - removes code comments 
find •
Loop
  #Find ; preceded by spaces & select to
  #  the end of line
find /" "+;/:/ /
  #Replace selection with nothing
replace § ""
End

#STEP2 - removes routine text header
find •
Loop
#Selects all lines between Reference &
#  second word Content
#end of line to the.
find /Reference/:/Content/:/Content/:/ /
replace § ""#Replace selection with nothing
End

#STEP3 - Delete everything before exprssn
#"Module="
find •
Loop
#Select everything in front of
#Module= to the beginning of the line
find /"Module="/:\•\
replace § ""#Replace with nothing
find !1 #Select next line
End

#STEP4 - Formats instruction lines
find •
Loop
#Find the line that starts with 4 0's
find /"0000"????/
 #followed by any 4 characters.
find /?«43»/#Select 43 characters from beginning of line
replace § "t"   #Replace selection w/tab
#Select spaces between Opcode and operand
find /" "+/ 
replace § "t"   #Replace with a tab
End#Repeat the Loop until done

In MPW, make the window that contains your disassemble routine the target window - click on it and then click back to the window that contains the above script. Select the lines under each step separately and hit the "Enter" key. Your code should align nicely into the format shown above.

- Greg Pribyl, Incline Village, NV

Customgetfile customization

I recently had to customize a CustomGetFile dialog to select folders. The returned StandardFileReply record contains the file specificatins of the target folder. But I needed to create files inside that folder while the directory ID in the specifications refers to its parent directory.

A simple method for getting a FSSpec record having as parID the directory ID of the selected folder, thus allowing to put the name of the new file into FSSpec.name without further actions, uses FSMakeFSSpec, documented in Inside Macintosh VI (25-30):

FUNCTION FSMakeFSSpec  (vRefNum:Integer;  dirID: LongInt; fileName: Str255; 
VAR spec: FSSpec): OSErr;

The first two parameters will be the same as in the file specifications of the target folder while fileName will contain a partial path.

/* 3 */

function  FileInFolderSpec (theSpec: 
 FSSpec): FSSpec;
var
 target:  FSSpec;
 fn: Str255;
 error:  OSErr;
begin
{theSpec: folder specifications}
 fn:=Concat(':' ,theSpec.name,': ');

 {create a partial path}
 error:=FSMakeFSSpec(theSpec.vRefNum,
 theSpec.parID, fn, target);
 FileInFolderSpec:= target;
end;

A fnfErr (file or directory does not exist) error will be returned because the partial path was incomplete, ending with ':' instead of a filename, but target is nonetheless valid.

- Luigi Belverato, Milano, Italy

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

OmniOutliner 4.6 - Organize your ideas,...
OmniOutliner is a flexible program for creating, collecting, and organizing information. Give your creativity a kick start by using an application that's actually designed to help you think. It's... Read more
Default Folder X 5.0.6 - Enhances Open a...
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 on... Read more
Adobe Creative Cloud 3.8.0.310 - Access...
Adobe Creative Cloud costs $19.99/month for a single app, or $49.99/month for the entire suite. Introducing Adobe Creative Cloud desktop applications, including Adobe Photoshop CC and Illustrator CC... Read more
MYStuff Pro 2.0.25 - Create inventories...
MYStuff Pro is the most flexible way to create detail-rich inventories for your home or small business. Add items to MYStuff by dragging and dropping existing information, uploading new images, or... Read more
Viber 6.2.0 - Send messages and make cal...
Viber lets you send free messages and make free calls to other Viber users, on any device and network, in any country! Viber syncs your contacts, messages and call history with your mobile device, so... Read more
Data Rescue 4.2.3 - Powerful hard drive...
Use Data Rescue to recover: crashed, corrupted or non-mounting hard drive deleted, damaged, or lost files reformatted or erased hard drive One powerful new feature found in Data Rescue 4 is... Read more
Microsoft Remote Desktop 8.0.34 - Connec...
With Microsoft Remote Desktop, you can connect to a remote PC and your work resources from almost anywhere. Experience the power of Windows with RemoteFX in a Remote Desktop client designed to help... Read more
Microsoft Remote Desktop 8.0.34 - Connec...
With Microsoft Remote Desktop, you can connect to a remote PC and your work resources from almost anywhere. Experience the power of Windows with RemoteFX in a Remote Desktop client designed to help... Read more
Data Rescue 4.2.3 - Powerful hard drive...
Use Data Rescue to recover: crashed, corrupted or non-mounting hard drive deleted, damaged, or lost files reformatted or erased hard drive One powerful new feature found in Data Rescue 4 is... Read more
Viber 6.2.0 - Send messages and make cal...
Viber lets you send free messages and make free calls to other Viber users, on any device and network, in any country! Viber syncs your contacts, messages and call history with your mobile device, so... Read more

Naruto Shippuden: Ultimate Ninja Blazing...
I'm not sure if it's possible to say you are an anime fan but also never have seen one episode of Naruto. If it is, then I resemble that remark, and if not, I offer a hearty apology. [Read more] | Read more »
5 mobile games that let you explore spac...
No Man's Sky hasn't exactly turned out to be everything it was promised. Though its core concept of exploring an unimaginably vast universe of different planets is an intriguing one, the execution has left many PS4 and PC gamers feeling like they... | Read more »
Mummy madness in new action game Tomb He...
Hot on the tail of Bump Hero, ZPlay is giving gamers another reason to get screen bashing with a brand new release. Tomb Heroes is a challenging action game in which you battle enemies in various tombs around the world. You can select from nine... | Read more »
Siralim 2 (RPG / Roguelike) (Games)
Siralim 2 (RPG / Roguelike) 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: Siralim 2 is an old-school monster catching RPG. Summon and customize hundreds of creatures to fight for you as... | Read more »
Clean Text (Productivity)
Clean Text 1.0 Device: iOS Universal Category: Productivity Price: $3.99, Version: 1.0 (iTunes) Description: | Read more »
Gemini - A Journey of Two Stars (Games)
Gemini - A Journey of Two Stars 1.0.1 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0.1 (iTunes) Description: *** SPECIAL LAUNCH SALE: $2.99 (25% off) *** "A mesmerizing and unexpectedly emotional journey." -- Los... | Read more »
How to get four NFL superstars for your...
Even though you're probably well on your way to building a top notch squad for the new season in Madden NFL Mobile, let's say you could beef it up by adding Rob Gronkowski, Antonio Brown, Von Miller, and Todd Gurley to your roster. That's... | Read more »
Cartoon Network Superstar Soccer: Goal!!...
Cartoon Network Superstar Soccer: Goal!!! – Multiplayer Sports Game Starring Your Favorite Characters 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: Become a soccer superstar with your... | Read more »
NFL Huddle: What's new in Topps NFL...
Can you smell that? It's the scent of pigskin in the air, which either means that cliches be damned, pigs are flying in your neck of the woods, or the new NFL season is right around the corner. [Read more] | Read more »
FarmVille: Tropic Escape tips, tricks, a...
Maybe farming is passé in mobile games now. Ah, but farming -- and doing a lot of a other things too -- in an island paradise might be a little different. At least you can work on your tan and sip some pina coladas while tending to your crops. [... | Read more »

Price Scanner via MacPrices.net

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
Clearance 2015 13-inch MacBook Airs available...
B&H Photo has clearance 2015 13″ MacBook Airs available for $350 off original MSRP. Shipping is free, and B&H charges NY sales tax only: - 13″ 1.6GHz/4GB/128GB MacBook Air (MJVE2LL/A): $829... Read more
Check Apple prices on any device with the iTr...
MacPrices is proud to offer readers a free iOS app (iPhones, iPads, & iPod touch) and Android app (Google Play and Amazon App Store) called iTracx, which allows you to glance at today’s lowest... Read more
Save $120 with Apple refurbished Time Capsule...
Apple has certified refurbished Time Capsules available for $120 off MSRP. Apple’s one-year warranty is included with each Time Capsule, and shipping is free: - 2TB Time Capsule: $179, $120 off (not... Read more
9-inch 32GB iPad Pros on sale for $70 off MSR...
B&H Photo has 9″ 32GB WiFi Apple iPad Pros on sale for $70 off MSRP, each including free shipping. B&H charges sales tax in NY only: - 9″ Space Gray 32GB WiFi iPad Pro: $529 $70 off MSRP - 9... Read more
Mac minis on sale for up to $140 off MSRP
Adorama has Mac minis on sale for up to $100 off MSRP including free shipping plus NY & NJ sales tax only: - 1.4GHz Mac mini: $449 $50 off MSRP - 2.6GHz Mac mini: $649 $50 off MSRP Amazon has the... Read more
Back To School with OtterBox Essentials
Back to school means back to an environment that is tough on tech. OtterBox has the back to school essentials you need to keep tech safe from drops, bumps, scratches and hallway havoc. Check out the... Read more
VRS Design Releases New iPhone 7 Plus Case Li...
With a device as large and costly as the iPhone 7 Plus, it is primal instinct to protect it from potential damage. According to a study by SquareTrade in 2012, iPhone damages cost Americans roughly $... Read more
MacBook Airs on sale for up to $101 off MSRP
Amazon has 11″ and 13″ MacBook Airs on sale for up to $101 off MSRP for a limited time. Shipping is free: - 11″ 1.6GHz/128GB MacBook Air (model MJVM2LL/A): $798 $101 off MSRP - 11″ 1.6GHz/256GB... Read more
Apple certified refurbished iPad mini 4s avai...
Apple has certified refurbished iPad mini 4s now available for up to $120 off the cost of new models. An Apple one-year warranty is included with each iPad, and shipping is free. The following models... Read more

Jobs Board

*Apple* /Mac Support Engineer - GFI Digital,...
FI Digital, Inc. is currently seeking candidates for a full time Apple Support Engineer to add to our Maryland Heights, Missouri IT team. Candidates must be dynamic Read more
*Apple* Solutions Consultant - Apple (United...
Apple Solutions ConsultantJob Number: 51218534Pleasant Hill, California, United StatesPosted: Aug. 18, 2016Weekly Hours: 40.00Job SummaryAs an Apple Solutions Read more
*Apple* Solutions Consultant - Apple (United...
# Apple Solutions Consultant Job Number: 51443201 Mishawaka, Indiana, United States Posted: Aug. 25, 2016 Weekly Hours: 40.00 **Job Summary** As an Apple Read more
*Apple* Solutions Consultant - Apple (United...
# Apple Solutions Consultant Job Number: 51218354 Fredericksburg, Virginia, United States Posted: Aug. 18, 2016 Weekly Hours: 40.00 **Job Summary** As an Apple Read more
*Apple* Retail - Multiple Positions Birmingh...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.