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

Tor Browser 11.5.8 - Anonymize Web brows...
Using Tor Browser you can protect yourself against tracking, surveillance, and censorship. Tor was originally designed, implemented, and deployed as a third-generation onion-routing project of the U.... Read more
Alarm Clock Pro 15.0 - $19.95 (91% off)
Alarm Clock Pro isn't just an ordinary alarm clock. Use it to wake you up in the morning, send and compose e-mails, remind you of appointments, randomize the iTunes selection, control an internet... Read more
Google Chrome 107.0.5304.121 - Modern an...
Google Chrome is a Web browser by Google, created to be a modern platform for Web pages and applications. It utilizes very fast loading of Web pages and has a V8 engine, which is a custom built... Read more
calibre 6.9.0 - 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
Safari Technology Preview 16.4 - The new...
Safari Technology Preview contains the most recent additions and improvements to WebKit and the latest advances in Safari web technologies. And once installed, you will receive notifications of... Read more
FileZilla 3.62.2 - Fast and reliable FTP...
FileZilla (ported from Windows) is a fast and reliable FTP client and server with lots of useful features and an intuitive interface. The FileZilla Client not only supports FTP, but also FTP over TLS... Read more
djay Pro 4.0.13 - Transform your Mac int...
djay Pro provides a complete toolkit for performing DJs. Its unique modern interface is built around a sophisticated integration with iTunes and Spotify, giving you instant access to millions of... Read more
Opera 93.0.4585.21 - High-performance We...
Opera is a fast and secure browser trusted by millions of users. With the intuitive interface, Speed Dial and visual bookmarks for organizing favorite sites, news feature with fresh, relevant content... Read more
AppCleaner 3.6.6 - Uninstall your apps e...
AppCleaner allows you to uninstall your apps easily. It searches the files created by the applications and you can delete them quickly. Supports macOS Ventura. Fixed an issue causing failed updates... Read more
QuickBooks 21.0.7.1248 - Financial manag...
QuickBooks helps you manage your business easily and efficiently. Organize your finances all in one place, track money going in and out of your business, and spot areas where you can save. Built for... Read more

Latest Forum Discussions

See All

‘Top Hunter Roddy & Cathy’ Review –...
The NEOGEO is generally characterized by, with only a few notable exceptions, fighting games and Metal Slug. Within a couple of years of its launch, the vast majority of the output on the console seemed to be mining (quite successfully) a few... | Read more »
SwitchArcade Round-Up: Reviews Featuring...
Hello gentle readers, and welcome to the SwitchArcade Round-Up for November 28th, 2022. In today’s article, we’ve got a pair of reviews to check out. Full reviews of Pokemon Scarlet and Violet and The Oregon Trail are waiting for you to read. There’... | Read more »
‘OPUS: Echo of Starsong’ Interview: Port...
With OPUS: Echo of Starsong ($8.99) having finally launched on iOS after hitting PC and consoles, I had a chance to talk to Scott Chen who is the co-founder and executive producer of Sigono. In our chat, I touched on topics like game subscription... | Read more »
Best iPhone Game Updates: ‘Rush Rally 3’...
Hello everyone, and welcome to the week! It’s time once again for our look back at the noteworthy updates of the last seven days. As November breaths its last, the holiday season is right around the corner. That means we should start seeing more... | Read more »
‘Total Football’ is an Arcade-Style Socc...
GALA SPORTS recently launched its brand new soccer title, Total Football, and, true to its name, it is a pure arcade-style soccer game in the same vein as FIFA Mobile and PES Mobile. It also features official licensing from FIFPro and Manchester... | Read more »
Genshin Impact will recieve two new char...
HoYoverse has announced that Genshin Impacts version 3.3 will be arriving on December 7th. Titled All Senses Clear, All Existence Void, the update will bring two powerful new characters and a brand new card-based minigame. [Read more] | Read more »
‘Wreckfest’ Mobile Compared With Console...
HandyGames’ mobile version of Bugbear’s demolition derby-style racer Wreckfest ($9.99) released on iOS and Android recently, and we featured it as our Game of the Week. | Read more »
Black Friday Deals Here – The TouchArcad...
After taking a couple of weeks off we return on this glorious Black Friday with another episode of The TouchArcade Show. We get into a big discussion about virtual assistants like Alexa, Siri, and Google, and their place in the greater smarthome... | Read more »
TouchArcade Game of the Week: ‘Station 1...
I’m a big fan of Glitch Games and their unique brand of point-and-click adventure/escape room/puzzle games, and while they’re a tiny outfit and there’d typically be a couple years gap in-between their new releases, they were always worth the wait.... | Read more »
SwitchArcade Round-Up: ‘Super Lone Survi...
Hello gentle readers, and welcome to the SwitchArcade Round-Up for November 25th, 2022. Today we look at the remaining releases for the week, and I’ll be honest with you: it’s not a great assortment. Still, there are at least a couple of things... | Read more »

Price Scanner via MacPrices.net

Cyber Monday: 24″ Apple M1 iMacs for $150 off...
Amazon has Apple’s 24″ M1 iMacs on Black Friday sale for $150 off MSRP. Their prices are currently the lowest available for new iMacs among the Apple retailers we track: – 24″ M1 iMacs (8-Core CPU/7-... Read more
Cyber Monday Sale: 25% off Apple MagSafe acce...
Apple retailers are offering MagSafe accessories for up to 25% off MSRP for Cyber Monday. Here are the best deals available, currently from Verizon and Amazon: (1) Verizon has Apple MagSafe Chargers... Read more
Cyber Monday Sale: Apple AirPods for up to $1...
Looking for Apple AirPods, AirPods Pro, or AirPods Max this Cyber Monday? Look no further than our Apple AirPods Price Tracker. We track prices from 20+ Apple retailers and update the tracker... Read more
Final day for Apple’s Black Friday/Cyber Mond...
CYBER MONDAY Apple’s four day Black Friday/Cyber Monday 2022 event is now live and will run from November 25, 2022 to November 28, 2022 (ends today!). Receive a free $100-$250 Apple Gift Card with... Read more
Cyber Monday: Apple 13″ M2 MacBook Airs for $...
Apple retailers have posted their Cyber Monday prices on 13″ MacBook Airs. Take up to $200 off MSRP on M2-powered Airs with these sales with prices starting at only $1049. Free shipping is available... Read more
The best Cyber Monday iPhone sale? This $500...
If you switch to Xfinity Mobile and open a new line of service, they will take $500 off the price of a new iPhone, no trade-in required. This is the best no trade-in Cyber Monday Apple iPhone 14 deal... Read more
Cyber Monday Sale: Apple 16″ MacBook Pros for...
Amazon is offering $500 off MSRP discounts on Apple 16″ MacBook Pros with M1 Pro CPUs as part of their Cyber Monday sale. Their prices are the lowest available for these models from any Apple... Read more
Cyber Monday Sale: Apple 14″ MacBook Pros for...
Amazon is offering $300-$500 off MSRP discounts on Apple 14-inch MacBook Pros with M1 Pro CPUs as part of their Cyber Monday sale. Their prices are the lowest available for these models from any... Read more
Cyber Monday Sale: Apple Watch Ultra for $60...
Amazon has Apple Watch Ultra models (Alpine Loop, Trail Loop, and Opean Bans) on sale for $60 off MSRP as part of their Cyber Monday sale, each including free shipping, reducing the price for an... Read more
Cyber Monday MacBook Sale: 13″ M1 Apple MacBo...
Amazon has Apple 13″ M1 MacBook Airs back on sale for $200 off MSRP, starting at only $799, for Cyber Monday 2022. Their prices are the lowest available for new MacBooks this Cyber Monday. Stock may... Read more

Jobs Board

*Apple* Electronic Repair Technician - PlanI...
…a highly motivated individual to join our Production Department as an Apple Electronic Repair Technician. The computer repair technician will diagnose, assemble, Read more
Product Manager II - *Apple* - DISH (United...
…you will be doing We seek an ambitious, data-driven thinker to assist the Apple Product Development team as our new Retail Wireless division continues to grow and Read more
Staff Engineer 5G Protocol, *Apple* - DISH...
…metrics. Essential Functions and Responsibilities for a Staff Engineer 5G protocol( Apple ) Knowledge of 5G and 4G/LTE protocols and system architectures Experience Read more
Cashier - *Apple* Blossom Mall - JCPenney (...
Cashier - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Blossom Mall Read more
Omnichannel Associate - *Apple* Blossom Mal...
Omnichannel Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.