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)



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)
 TST.L  $0008(A6)
 BNE.S  *+$0008

The script:

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

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

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

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

#STEP4 - Formats instruction lines
find •
#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 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;
 target:  FSSpec;
 fn: Str255;
 error:  OSErr;
{theSpec: folder specifications}
 fn:=Concat(':' ,,': ');

 {create a partial path}
 theSpec.parID, fn, target);
 FileInFolderSpec:= target;

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

The best games like Animal Crossing on m...
Animal Crossing amiibo Festival is out right now for the Wii U, reminding us of just how much fun that world can be. Or at least to go back and check in on our villages once in a while. [Read more] | Read more »
Between 2 Taps - Tap for Tap interview M...
Hello, and welcome back to Between 2 Taps, Tap for Tap’s Indie Dev interview series. [Read more] | Read more »
Facility 47 (Games)
Facility 47 1.0.1 Device: iOS Universal Category: Games Price: $3.99, Version: 1.0.1 (iTunes) Description: You wake up alone and freezing in an icy cell. You try the cell door but it’s locked, it seems that you are stuck with no... | Read more »
The best Photoshop alternative on iPad
Instagram and Lightroom are great and all, but sometimes people need to get extra creative with their image editing.Like, Photoshop creative. If you're one of these people, take a look at our pick for the best mobile Photoshop experience on iPad... | Read more »
The Walking Dead: No Man’s Land guide -...
A new update for The Walking Dead: No Man’s Land was released last week, making it the perfect time for you to head back to your base and take out some walkers. Here’s the lowdown on what’s new to the game, and how to take advantage. [Read more] | Read more »
Goat Rider guide - Tips and tricks to st...
We've all been there. One second, we're riding high on a crazed goat, and the next, we've been tossed off it like someone who's no good at goat ridin'. [Read more] | Read more »
Real Boxing 2 CREED: How to become a gre...
Just in time for Rocky fans who can’t wait to see CREED, the latest movie, we have the official tie-in game,Real Boxing 2 CREED. It builds on the success of its predecessor and there’s lots to take in so we at 148apps thought we’d run you through... | Read more »
CoinOp Heroes 2 guide - How to build an...
CoinOp Heroes 2 justlaunched and, like all clickers, it's dangerously addictive stuff. You have to furiously tap your screen to defeat wave after wave of foes and earn an insane amount of cash to spend on character upgrades and an army of minions... | Read more »
Dr. Panda Firefighters (Education)
Dr. Panda Firefighters 1.0.1 Device: iOS Universal Category: Education Price: $2.99, Version: 1.0.1 (iTunes) Description: FIGHT FIRES AND SAVE THE DAY!Work together with Dr. Panda and his firefighting team to rescue his trapped... | Read more »
Puddle + (Games)
Puddle + 1.0 Device: iOS iPhone Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: Puddle is back in a new "+" edition featuring enhanced graphics, new videos and Apple TV support ! No IAP and No Ads. Dive into Puddle... | Read more »

Price Scanner via

Save $30-$40 on new Apple TVs after rebate
Adorama has new Apple TVs on sale for up to $40 off MSRP after mail-in rebate, good through December 15th. Shipping is free, and Adorama charges NY & NJ sales tax only: - 32GB Apple TV: $119.99... Read more
13-Inch Haswell MacBook Air At Two Years – Th...
The 13-inch mid-2013 “Haswell” MacBook Air I ordered in Apple’s November 2013 Black Friday sale was my first new Mac in four and a half years — the longest interval I’ve gone between system upgrades... Read more
Target Black Friday Early Access deals: $100...
Target is offering early access to their Black Friday deals on Apple products on their online store for today, the 25th, only. Choose free shipping or free local store pickup (if available): - Apple... Read more
BlackBerry Q3 Mobility Index Report Finds iOS...
BlackBerry has announced results of its thirteenth Good Mobility Index Report, showing that organizations are increasingly building custom secure apps. Among Good Powered by BlackBerry (formerly Good... Read more
Wednesday roundup of early Black Friday Mac s...
Save up to $500 on a new Mac with these early Black Friday deals from Apple resellers, currently the lowest prices available for these models: (1) B&H Photo has all new Macs on sale for up to $... Read more
iPod nano on sale for $119, $30 off MSRP
Walmart has the 16GB iPod nano (various colors) on sale for $119.20 on their online store for a limited time. That’s $30 off MSRP. Choose free shipping or free local store pickup (if available). Sale... Read more
Adorama Black Friday deals: Up to $400 off Ma...
Adorama has released their Black Friday deals for 2015. Save up to $400 on MacBook Pros, $200 on MacBooks and MacBook Airs, and $270 on iMacs. Use code RYBFDEAL during checkout to see these prices.... Read more
B&H Photo Deals: $200 off 12-inch 1.2GHz...
In addition to the B&H Photo Black Friday week sales we posted yesterday, B&H has lowered their price on two products to $200 off MSRP: - 12″ 1.2GHz Gray Retina MacBook: $1399 save $200 - 13... Read more
Best Buy Early Access: Today only, Up to $125...
Best Buy has iPad Air 2s on sale for up to $125 off MSRP and Apple Watch models on sale on their online store for up to $100 off MSRP with special codes through midnight CT tonight. Choose free... Read more
UPPERCASE DESIGNS Premium Ultra Thin Keyboard...
UPPERCASE Designs today announced its new Premium Ultra Thin Keyboard Protector and its Palm Rest Protector Set for the 12-inch MacBook. The accessories provide durable protection for the 12-inch... Read more

Jobs Board

Hardware Systems Integration Engineer - *App...
# Hardware Systems Integration Engineer - Apple Watch Job Number: 39380139 Santa Clara Valley, Califo ia, United States Posted: Apr. 23, 2015 Weekly Hours: **Job Read more
Sr. Technical/Project Manager, *Apple* Educ...
# Sr. Technical/Project Manager, Apple Education Job Number: 36588557 New York City, New York, United States Posted: Jul. 30, 2015 Weekly Hours: 40.00 **Job Summary** Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
Merchant Operations Manager: *Apple* Pay -...
Changing the world is all in a day's work at Apple . If you love innovation, here's your chance to make a career of it. You'll work hard. But the job comes with more than Read more
*Apple* Pay QA Manager - Apple Inc. (United...
Changing the world is all in a day's work at Apple . If you love innovation, here's your chance to make a career of it. You'll work hard. But the job comes with more than Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.