Skip to content

Build a ROM Extension

Matthias Melcher edited this page Mar 17, 2022 · 2 revisions

How to build a ROM Extension

The Flash based ROM boards for the MessagePad can hold an additional 24MB of applications and data. To do this, Newton Packages (.pkg files) must be compiled into ROM Extensions (nee Rex) and copied onto the Flash board with the Programmer.

One ROM Extension can hold up to 8MB of data. NewtonOS support up to three ROM Extensions in addition the builtin one.

To create a ROM Extension file, you need the Rex command line tool, a configuration file, and all the packages that go into the Rex.

Building the Rex tool is explained here.

Put all the .pkg files that you want permanently on your machine into a folder on your Computer. Add a text file that describes the ROM Extension that you want to build, for example, create a text file named "tools.rex":

id 1
version 1
start 0x00800000
manufacturer 'MPad'
package "Clock.pkg"
package "DatePick.pkg"

id must be 1, 2, or 3. Start with 1, and only if you need more than 8MB, add a second Rex 2, etc. .

start must be 0x00800000 for Rex 1, 0x10000000 for Rex 2 (unverified), and 0x10800000 for Rex 3 (unverified).

manufacturer can be pretty much any four letter word that identifies you (or just leave it as is).

You can add as many packages as you like up to 8MB. They will always be active and visible in the "Extras" drawer. I don't know yet if they can be frozen, but they can be filed, and they can not be deleted as they are part of the ROM.

Then call the Rex tool from the command line

Rex -o rex1.bin tools.rex

which creates a binary file named "rex1.bin". Copy that to your SD Card/USB Stick. Properly eject the SD Card and transfer it ot the programmer. Select the Rex1 page (menu item 1), erase that Flash page (e), then write (w) the "rex1.bin" to the Flash and verify (v) it.

As usual, your MP will probably erase all data, but then boot up with all the packages in the ROM Extension readily available in the Extras drawer.

Clone this wiki locally