• MacTech Network:
  • Tech Support
  • |
  • MacForge.net
  • |
  • Apple News
  • |
  • Register Domains
  • |
  • SSL Certificates
  • |
  • iPod Deals
  • |
  • Mac Deals
  • |
  • Mac Book Shelf

MAC TECH

  • Home
  • Magazine
    • About MacTech in Print
    • Issue Table of Contents
    • Subscribe
    • Risk Free Sample
    • Back Issues
    • MacTech DVD
  • Archives
    • MacTech Print Archives
    • MacMod
    • MacTutor
    • FrameWorks
    • develop
  • Forums
  • News
    • MacTech News
    • MacTech Blog
    • MacTech Reviews and KoolTools
    • Whitepapers, Screencasts, Videos and Books
    • News Scanner
    • Rumors Scanner
    • Documentation Scanner
    • Submit News or PR
    • MacTech News List
  • Store
  • Apple Expo
    • by Category
    • by Company
    • by Product
  • Job Board
  • Editorial
    • Submit News or PR
    • Writer's Kit
    • Editorial Staff
    • Editorial Calendar
  • Advertising
    • Benefits of MacTech
    • Mechanicals and Submission
    • Dates and Deadlines
    • Submit Apple Expo Entry
  • User
    • Register for Ongoing Raffles
    • Register new user
    • Edit User Settings
    • Logout
  • Contact
    • Customer Service
    • Webmaster Feedback
    • Submit News or PR
    • Suggest an article
  • Connect Tools
    • MacTech Live Podcast
    • RSS Feeds
    • Twitter

ADVERTISEMENT
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.

 
MacTech Only Search:
Community Search:

 
 
 

 
 
 
 
 
  • SPREAD THE WORD:
  • Slashdot
  • Digg
  • Del.icio.us
  • Reddit
  • Newsvine
  • Generate a short URL for this page:



MacTech Magazine. www.mactech.com
Toll Free 877-MACTECH, Outside US/Canada: 805-494-9797
MacTech is a registered trademark of Xplain Corporation. Xplain, "The journal of Apple technology", Apple Expo, Explain It, MacDev, MacDev-1, THINK Reference, NetProfessional, Apple Expo, MacTech Central, MacTech Domains, MacNews, MacForge, 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.
All contents are Copyright 1984-2010 by Xplain Corporation. All rights reserved. Theme designed by Icreon.
 
Nov. 20: Take Control of Syncing Data in Sow Leopard' released
Nov. 19: Cocktail 4.5 (Leopard Edition) released
Nov. 19: macProVideo offers new Cubase tutorials
Nov. 18: S Stardom anounces Safe Capsule, a companion piece for Apple's
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live