MacTech Network:   MacForge.net  |  Computer Memory  |  Register Domains  |  Printer Supplies  |  Cables  |  iPod Deals  |  Mac Deals  |  Mac Book Shelf


  MacTech Magazine

The journal of Macintosh technology

 
 
MacTech Magazine: Now for all geeks at heart.

Magazine In Print
  About MacTech  
  Home Page  
  Subscribe  
  Archives DVD  
  Submit News  
  Submit a Tip!  
  Get a copy of MacTech RISK FREE  
Google
Entire Web
mactech.com
Mac Community
More...
MacTech Central
  by Category  
  by Company  
  by Product  
MacTech News
  MacTech News  
  Previous News  
  MacTech RSS  
Article Archives
  Show Indices  
  by Volume  
  by Author  
  Source Code FTP  
Inside MacTech
  Writer's Kit  
  Editorial Staff  
  Editorial Calendar  
  Back Issues  
  Advertising  
Contact Us
  Customer Service  
  MacTech Store  
  Legal/Disclaimers  
  Webmaster Feedback  
ADVERTISEMENT
Click Here
Volume Number:10
Issue Number:1
Column Tag:Debugging

Ram Disks

Preserving data on RAM Disks via Macsbug

By Marek Hajek, Incline Village, Nevada

About the author

Marek Hajek has been programming the Macintosh since 1989. He programmed two and a half years for Sierra Software Innovations where he wrote several inhouse MacApp applications, participated in the development of SuperTEView, and the relational database engine - Inside Out II. Currently he is working on his bachelor’s degree in Computer Science and supports his education with contract programming. Your comments on this article are appreciated and can be sent to P.O. Box 7542, Incline Village, NV 89450.

This article is based on my experience with the product Maxima made by Connectix Corporation. I use Maxima to set up a RAM Disk on my Mac IIsi. If you are using a different RAM Disk software, consult its documentation to find out whether the RAM Disk is nonvolatile. This following information applies only to nonvolatile RAM Disks. What’s a nonvolatile RAM Disk?

Nonvolatile RAM Disks, Maxima included, have a peculiar characteristic about them. As long as power to the computer is not interrupted, the data on the RAM Disk is preserved. Restarts, shutdowns, and system crashes do not interrupt power to the RAM Disk and as a result the RAM Disk contents are preserved. On the other hand, if power is interrupted to the RAM Disk, its contents may become corrupted or wiped off. A power interrupt occurs when you reach in the back of your computer and press the power switch or someone trips over the power cord to your computer and pulls it out of the socket.

When a severe crash occurs because of a software bug, the goal is to restart your computer without having to use the power switch. This will preserve the integrity of your data. What is a safe way to restart your computer in the midst of a crash? The reset switch, that little two button box attached to the side of your computer, does a good job restarting a computer and does not interrupt power to the RAM Disk. Your RAM Disk data will be preserved every time you use the reset switch. Since the reset switch restarts a computer 99% of the time (I’ve seen bugs that disabled the reset switch), this article is mainly for those of you who either didn’t or can’t install one on your Mac. So, what are other “safe” ways to restart your computer when a crash takes place?

MACSBUG’S RS/RB - UNSAFE RESTARTING

Your Mac can be restarted with the Macsbug debugger (I assume you have Macsbug on your Mac). In the course of programming you’ve probably encountered the Macsbug display more than once. It usually shows up when a nasty bug occurs in your program. The usual way to restart your computer from Macsbug is to type in rs or rb followed by a return. Alas, sometimes the bug has done so much damage the Macsbug command rs or rb won’t work. This is the time when your probably reach in the back of the computer for the power switch. This definitely is not a safe way to restart the computer.

MACSBUG - RESTARTING the SAFE WAY

There is a safer way to restart your Mac from Macsbug. The step is simple. Set the PC (program counter) to point to the restart mechanism in ROM. The program counter keeps track the memory address of the next instruction that will be executed. How do you set the program counter? On my Mac IIsi the line I enter into Macsbug looks like this:

g 4080008C

The g means ‘go to instruction’ and 4080008C is the address of the instruction that will be executed next. The 4080008C is the IIsi’s ROM address where the code for the restart mechanism is located. Since it is in ROM, the code cannot be affected by software bugs and is safe to execute. Because your computer may have the restart mechanism at a different location in ROM than my IIsi, you need to find its address. This can be done by following the next 4 steps:

1) Save every open document and quit all running applications. After step number 4 you will have to restart your computer.

2) Enter Macsbug. I enter Macsbug using the key combination Cmd-Option-Power On Key. The Power On key has a little triangle pointing to the left and is usually located toward the top of the keyboard. If your keyboard doesn’t have the Power On Key, find another way to drop into Macsbug. There may be a different way to drop into Macsbug on your computer.

3) In Macsbug type in the next two lines, each line followed by a return. Don’t forget the ^ character (shift-6) after the closing parentheses on the first line!

PC = (Rombase)^ + 0A

S

4) Toward the bottom of the Macsbug window you should see something similar to the next two lines:

"No procedure name"

4080008C *MOVE #$2700,SR

The first number (4080008C on my Mac) under the line “No procedure name” is the address of the restart mechanism. Write it down somewhere safe. From now on, anytime a bug drops you into Macsbug and you want to safely restart your computer to save your RAM Disk data, enter the line “g 4080008C” into Macsbug, where 4080008C is the number you wrote down. To test whether this is the address of the restart mechanism, type g followed by a return into Macsbug. This should restart your computer. Next to the reset switch, using the Macsbug procedure outlined above is probably the safest way to restart your computer and safeguard the data on your RAM Disk.



Click here to find out more about our best subscription bundle deal ever!
2 years of the magazine, and the all new MacTech DVD ... at 70% off!



Click on the cover to
see this month's issue!

TRIAL SUBSCRIPTION
Get a RISK-FREE subscription to the only technical Mac magazine!
 
 


MacTech Magazine. www.mactech.com
Toll Free 877-MACTECH, Outside US/Canada: 805-494-9797

Register Low Cost (ok dirt cheap!) Domain Names in the MacTech Domain Store. As low as $1.99!
Save on brand compatible and name brank ink jet and laser supplies.
Save on long distance * Upgrade your Computer
Movies with No Late Fees!

See local info about Westlake Village
SJ * BRJ * BJ * OJ * NITS
Staff Site Links



All contents are Copyright 1984-2007 by Xplain Corporation. All rights reserved.

MacTech is a registered trademark of Xplain Corporation. Xplain, Video Depot, Movie Depot, Palm OS Depot, Explain It, MacDev, MacDev-1, THINK Reference, NetProfessional, NetProLive, JavaTech, WebTech, BeTech, LinuxTech, Apple Expo, MacTech Central and the MacTutorMan are trademarks or service marks of Xplain Corporation. Sprocket is a registered trademark of eSprocket Corporation. Other trademarks and copyrights appearing in this printing or software remain the property of their respective holders.