The Newton, The First PDA:    6 of 11 
A MessagePad Memory Primer
Author: Paul Potts
Date: April 1994
Topics: Third Party Developers
Summary: There is more than one kind of memory in the Newton. A third-party developer elaborates on Usenet.

Let me elaborate briefly on the Newton memory architecture. I'm writing this as a NewtonScript programmer, but not as one of the system architects. NewtonScript programmers only know so much about the system architecture; the rest of it is hidden from view. I've pieced this together out of discussions with PIE people, but I'm not a PIE person, so this may not be gospel truth.

MessagePad memory is broken up into a number of areas. There's the persistent object store, which is where soups, packages, and patches are kept. As far as I understand it, soups and packages are what reduces the Memory that you see in Preferences/Memory. Everything you interact with normally as an end-user and consider as "data" goes here; ink, text, addresses, names, data from other applications. Packages in the extras drawer go here.

Patches are part of the persistent object store, but they appear to have their own little area set aside in it that doesn't count in the Memory display.

There's a package cache, but we'll ignore that for now, since it isn't an end-user concept.

There's the system heap, which is where the stuff below the surface does its thing. That means the recognizers use it for processing your writing, the system uses it for drawing objects on the screen, the communications endpoints use it for storing data going in and out. We don't know much about what goes on here, as it is very sparsely documented.

Then there's the NewtonScript heap, which is part of the system heap, set to a fixed size. This is the memory that NewtonScript programmers have to work with for building frames, arrays, views, etc.

There are probably other specialized areas of memory that Apple isn't talking about.

Now, difficulties arise in figuring out exactly what goes where. Functions can take up space in ROM, the patch space, the system heap, and the NewtonScript heap. For each system version, consider that you've got a base machine, with a given number of things in ROM, plus a set of patches. Right now there's the 1.0 ROMS with patches .02 through .05. Then there's the 1.1 ROMs with patch .01. Then, there's the MessagePad 110, which has 1 meg of RAM v. 640K. This meg is partitioned differently. The 110 has 1.2 in ROM, with a patch to 1.3. The MP 100 will have 640K RAM, perhaps with 1.3 in ROM, maybe with 1.2 in ROM, and might ship with some patches of its own. I don't know, not having seen one yet.

Consider that for each of these configurations, the actual SRAM can be partitioned into slightly different-sized pieces. The persistent object store hasn't changed much except for the reduction in 1.05, but the other areas may have had subtle changes made with each revision. With each ROM revision, things that were formerly in patches can be moved into ROM, making room for new patches.

Will the Newton MessagePad 100 have a bigger system heap than the Classic running 1.05? No, I don't think so. In 1.05, the system heap grew to improve recognition, by borrowing memory from the persistent object store. Note that the system heap is not an end-user concept; there's no way to see how big it is, except by subtraction. If it were bigger in the 100, they'd have to borrow even more memory.

Will the Newton MessagePad 100 have a bigger NewtonScript heap than the Classic running 1.05? No, I don't think so. To make it bigger they'd have to borrow memory from somewhere else. If they made it smaller, some existing apps might have trouble running.

Will the Newton MessagePad 100 have a smaller persistent object store than the Classic running 1.05? No, I don't think so. Users are already upset about giving up some of this for 1.05; I don't think Apple would have them give up more of it.

Like a Bug Under a Microscope
Back to The Newton, The First PDA
A Kick Under the Table

Account Name:


Create new account
Overall Rating: 4.00

Your rating: