TweetFollow Us on Twitter

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

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

If you log a MacsBug disassembly to a file the instructions are saved in the form:

     +0000  40809A7C   MOVEC    CACR,D1  | 4E7A 1002
     +0004  40809A80   ADDQ.W   #$8,D1   | 5041

One day I got sick of editing disassembled code, especially the code I wanted to recompile later. I wrote an MPW script to edit MacsBug disassembly log file into code that is easy to read and recompile, like this:

 MOVEC  CACR,D1
 ADDQ.W #$8,D1

Here is the script to do this. For those of you who don't know, the "#" character indicates a comment to be ignored by MPW.

#STEP1
format -f geneva -s 9 -t 26 #Set font, font size, tab size
find •  #Go to beginning of file
Loop    #Execute lines within loop repeatedly

 # Next line makes a selection of: spaces that are followed 
 # by a "+" all text between that and the next several 
 # spaces, And all text between the previous two and the next 
 # several spaces. Selects everything in front of the Opcode 
 # (MOVEC). Example - Selection between "" 
 # "  +0000 40809A7C "MOVEC CACR,D1 | 4E7A 1002
find  /" "++/:/" "+/:/" "+/
replace § "t"   #Replace the selection with a tab
find /" "+/ #Select the spaces after the Opcode
replace § "t"   #Replace the selection with a tab
find /" "+/:/ /  #Selection starts after the Operand 
 #(CACR,D1) and ends at the end of the line
replace § ""#Replace above selection with nothing
End#Loop if not at the end of the file

#STEP 2 - Clean up all RTS instructions
find •
Loop    #Loop until end of file reached
find /RTS/#Find an "RTS" string
find /t/:/ /    #Select all text after "RTS" to end of line
replace § ""#Replace with nothing
End

Execute STEP1 and STEP2 separately! 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 following STEP1 and hit the "Enter" key. Then select STEP2 and hit Enter again. Your code should nicely align into the format shown above. The formatted code needs little editing before it can be recompiled.

- Greg Pribyl

Incline Village, Nevada

An Anonymouse Tip

According to Inside Macintosh Volume VI, the Macintosh File Manager is fully implemented in A/UX. This may be true when accessing Macintosh volumes. However, if you are writing to a Unix partition there is a subtle difference in behavior which can cause headaches.

If you set the logical end-of-file to zero, using a call such as "PBSetEOF", you might assume that the file position would automatically be set to zero as well, so that if you subsequently write to the file the data will be written starting at the zero position. This is in fact what happens if the file is on a Mac volume.

However, if it's on a UNIX volume, you get a nasty surprise. The file position is evidently NOT changed by the call to "PBSetEOF". Thus, subsequent writing will begin at the old position, which may not be zero. Example: You have a file of 1 megabyte which you want to overwrite with new data and the position happens to be at the end of the file. You set the logical end-of-file to zero, the File Manager reports no error, and so you go ahead and write the new data (again with no error reported). You discover that the file now contains a megabyte of null characters followed by the new data! This is a quick way to fill a disk with garbage!

MORAL: Explicitly set the file position to zero whenever you set the logical end-of-file to zero. And in general, always set the position to less than or equal to the logical end-of-file whenever you reduce the latter.

- Anonymous(e)

Hiding from MacsBug

Under System 7, if you place MacsBug's resources in the system sub-folder called Preferences, Macsbug will ignore the resource file during startup. Place the MacsBug resources in the system folder only!

This is useful if you want to hide these resources from MacsBug.

- Greg Pribyl

Incline Village, Nevada

Making use of a fast Tool

The StreamEdit tool introduced with MPW 3.2 doesn’t actually add a great deal of functionality to MPW. However, its main advantage is that it’s fast. If you have any shell scripts that do repetitive string manipulations, you can usually speed them up by rewriting them to use StreamEdit.

For example, in one of my projects, I have a special shell script to construct the makefile. Among other things, this script scans a dependencies file, with lines that look like

Module1 Module2 Type

to indicate that “Module1” imports something from “Module2” (“Type” indicates whether the dependency is in the definition or implementation module).

The script used to scan this file by opening it in the editor and using Find commands, followed by Catenate commands to read from the current selection. It used to take about 15 minutes to execute. After I rewrote it to use StreamEdit, it took 90 seconds.

Even a simple thing like generating a rule to compile all the source files in the current directory can benefit from StreamEdit. Here’s the old way I used to build the object library:

Set Ident '[A-Za-z0-9]+'
Echo -n 'MyModLib.o ƒ'
For ThisModule in "{Mods}" .mod
 (Evaluate "{ThisModule}" =~ 
 / :({Ident})®1.mod/) 
 >Dev:Null
 Echo -n 
' 'ntt'"{Objs}"'{®1}'.mod.o'
End # For

And here’s the new way:

# 2
Set Ident '[A-Za-z0-9]+'
Echo -n 'MyModLib.o ƒ'
Files "{Mods}" .mod | 
 StreamEdit -d -e 
 "/:({Ident})®1.mod/ "
"print ' '; print -n"
" 'tt"{Objs}"'®1'.mod.o'"

Another advantage of StreamEdit is that, by avoiding use of editor commands like Open and Find, your script can execute in the background under ToolServer.

- Lawrence D’Oliveiro

Computer Services Dept.

University of Waikato

Hamilton, New Zealand

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

1Password 5.1 - Powerful password manage...
1Password is a password manager that uniquely brings you both security and convenience. It is the only program that provides anti-phishing protection and goes beyond password management by adding Web... Read more
GarageSale 6.9.2 - Create outstanding eB...
GarageSale is a slick, full-featured client application for the eBay online auction system. Create and manage your auctions with ease. With GarageSale, you can create, edit, track, and manage... Read more
calibre 2.17 - Complete e-library manage...
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
OmniGraffle Pro 6.1.2 - Create diagrams,...
OmniGraffle Pro helps you draw beautiful diagrams, family trees, flow charts, org charts, layouts, and (mathematically speaking) any other directed or non-directed graphs. We've had people use... Read more
OmniGraffle 6.1.2 - Create diagrams, flo...
OmniGraffle helps you draw beautiful diagrams, family trees, flow charts, org charts, layouts, and (mathematically speaking) any other directed or non-directed graphs. We've had people use Graffle to... Read more
RoboForm 2.0.2 - Password manager; syncs...
RoboForm is a password manager that offers one-click login, mobile syncing, easy form filling, and reliable security. Password Manager. RoboForm remembers your passwords so you don't have to! Just... Read more
Apple MainStage 3.1 - Live performance t...
Love the sound you got on your recording? MainStage 3 makes it easy to bring all the same instruments and effects to the stage. Everything from the Sound Library and Smart Controls you're familiar... Read more
Freeway Pro 7.0.2 - Drag-and-drop Web de...
Freeway Pro lets you build websites with speed and precision... without writing a line of code! With its user-oriented drag-and-drop interface, Freeway Pro helps you piece together the website of... Read more
A Better Finder Rename 9.44 - File, phot...
A Better Finder Rename is the most complete renaming solution available on the market today. That's why, since 1996, tens of thousands of hobbyists, professionals and businesses depend on A Better... Read more
Stacks 2.6.9 - New way to create pages i...
Stacks is a new way to create pages in RapidWeaver. It's a plugin designed to combine drag-and-drop simplicity with the power of fluid layout. Features: Fluid Layout: Stacks lets you build pages... Read more

This Week at 148Apps: January 19-23, 201...
Warm Your Winter With New Apps!   How do you know what apps are worth your time and money? Just look to the review team at 148Apps. We sort through the chaos and find the apps you’re looking for. The ones we love become Editor’s Choice, standing out... | Read more »
Eggmaster Review
Eggmaster Review By Jennifer Allen on January 26th, 2015 Our Rating: :: BRIEFLY COMPELLINGUniversal App - Designed for iPhone and iPad Tap like crazy to gain eggs, so that you can buy upgrades to gain more eggs, and so on. It... | Read more »
Cloudy Or Dry – Funny Or Die Release a W...
Cloudy Or Dry – Funny Or Die Release a Weather App Posted by Ellis Spice on January 26th, 2015 [ permalink ] iPhone App - Designed for the iPhone, compatible with the iPad | Read more »
Mediocre, the Team Behind Smash Hit, is...
Mediocre, the Team Behind Smash Hit, is Teasing Their Latest Unnamed Project Posted by Jessica Fisher on January 26th, 2015 [ permalink ] | Read more »
Heroes of Gaia Review
Heroes of Gaia Review By Campbell Bird on January 26th, 2015 Our Rating: :: TIMERS OF MIGHT AND MAGICUniversal App - Designed for iPhone and iPad This free-to-play rpg looks a lot like Heroes of Might and Magic, but it’s poor... | Read more »
Choice Provisions is Set to Launch Destr...
Choice Provisions is Set to Launch Destructamundo on iOS This Month Posted by Tre Lawrence on January 23rd, 2015 [ permalink ] Choice Provisions – home stable to | Read more »
King of Thieves – An Interview With Zept...
Ahead of the release of ZeptoLab’s King of Thieves, we were able to ask ZeptoLab’s co-founder, Semyon Voinov, a few questions about the inspiration behind the game and what that means for the Cut the Rope franchise. | Read more »
Handle Review
Handle Review By Jennifer Allen on January 23rd, 2015 Our Rating: :: SPEEDY ORGANIZINGUniversal App - Designed for iPhone and iPad Handle is a very convenient way of juggling your emails, To Do list, and Calendar all through one... | Read more »
The New Disney Inquizitive App Offers a...
The New Disney Inquizitive App Offers a Place for Fans to Take Disney Quizzes Posted by Tre Lawrence on January 23rd, 2015 [ permalink ] | Read more »
Hands-On With Cut the Rope Developer Zep...
Marking quite a departure from ZeptoLab’s past successes, namely the Cut The Rope series, King of Thieves is shaping up to be quite promising. Due for release in February, we were lucky enough to have some time with a preview build to see exactly... | Read more »

Price Scanner via MacPrices.net

Petitioning Dropbox For Mac OS X 10.4 and 10....
Last week Dropbox announced to its users that app support for Mac OS X 10.4 and 10.5 will end May 18 — disappointing news for those of us who are still getting useful service out of older PPC Macs... Read more
Stop Street Harassment, Bullying, and Assault...
The STOP-ATTACK (http://www.stop-attack.com) app will leverage smartphone technology to make the world a safer place. Whether it’s bullying, street harassment or something even more sinister, the app... Read more
Stir Kinetic Desk M1 Standing Or Sitting Desk...
The age of the standing desk is upon us, and according to medical research, it’s arriving none too soon. The World Health Organization (WHO), reports that 60 to 85 percent of people worldwide lead... Read more
Bosch Opens North American eBike Conversion H...
Following its entry into the U.S. eBike market in early 2014, Bosch has established a new headquarters office for Bosch eBike Systems (http://www.bosch-ebike.us) in Southern California, expanding the... Read more
13-inch 2.4GHz Retina MacBook Pro (Apple refu...
The Apple Store has previous-generation Apple Certified Refurbished 13″ 2.4GHz/128GB Retina MacBook Pros available for $999. Apple’s one-year warranty is standard, and shipping is free: - 13″ 2.4GHz/... Read more
13-inch 2.6GHz Retina MacBook Pro on sale for...
Adorama has the 13″ 2.6GHz/128GB Retina MacBook Pro on sale for $1189.99, $110 off MSRP. Shipping is free, and Adorama charges NY & NJ sales tax only. Read more
College Student Deals are back, additional $5...
Take an additional $50 off all MacBooks and iMacs at Best Buy Online with their College Students Deals Savings, valid through April 11, 2015. Anyone with a valid .EDU email address can take advantage... Read more
iPhone 6 and 6 Plus GIve Apple Half Of US Mob...
Chicago-based Consumer Intelligence Research Partners, LLC (CIRP) have released analysis of the results of its research on mobile phone manufacturers for the calendar quarter that ended December 31,... Read more
Save $100 on MacBook Airs with 256GB of stora...
B&H Photo has 256GB MacBook Airs on sale for $100 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 11″ 1.4GHz/256GB MacBook Air: $999 $100 off MSRP - 13″ 1.4GHz/256GB MacBook... Read more
21-inch 2.7GHz iMac on sale for $1179, save $...
B&H Photo has the 21″ 2.7GHz iMac on sale for $1179 including free shipping plus NY sales tax only. Their price is $120 off MSRP, and it’s the lowest price available for this model from any... Read more

Jobs Board

Detailer *Apple* Ford Body Shop / Collision...
Apple Automotive is one of the fastest growing dealer…and it shows. Consider making the switch to the Apple Automotive Group today! At Apple Automotive , Read more
*Apple* Acura/Subaru Service Technicians - A...
Apple Automotive is one of the fastest growing dealer…and it shows. Consider making the switch to the Apple Automotive Group today! At Apple Automotive , Read more
Business Development Manager - *Apple* Pay...
**Job Summary** Apple Pay is seeking an experienced business development manager to support the identification, recruitment, negotiation and ongoing management of Read more
*Apple* Solutions Consultant (ASC)- Retail S...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
*Apple* Solutions Consultant - Retail Sales...
**Job Summary** As an Apple Solutions Consultant (ASC) you are the link between our customers and our products. Your role is to drive the Apple business in a retail Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.