I summarize REX as: "An on-board software-controlled option rom library and ram image library."

That's the shortest way I've found to say what it does, but that's not the same as saying what it's good for or why you want one.

Because of the particular features and limitations of a M100, probably the single most life-improving thing you can do to one is to have TS-DOS in ROM.

That one thing addresses a few different pain points.

The biggest pain points of a M100 are:

- Battery-backed ram only storage. Very little storage, and easily erased or corrupted, either by dead batteries or a software crash.

- The way in manages machine-language software. How they all want to run in the same place in ram, yet the OS does not provide very much in the way of automatically moving programs into and out of that spot, so software is always clobbering other software, or you limit yourself to just having a single machine language app installed, or you have to figure out the arcane way to hack the binaries to relocate them to run at different addresses side by side, or you have to keep double copies of binaries so that the running copy can get clobbered and later replaced from the ram file copy...

- The main rom provides no binary file transfer other than the cassette. And no *convenient* file transfer even for text.

These things combine to make life kind of difficult. For instance you want some better file transfer app, but since you have no binary file transfer to begin with getting the file transfer app itself installed is a pain. Then once it's installed, it consumes precious ram, and is easily broken because of the way machine language apps are are run, and the simplest way to address that is to have a 2nd physical copy in ram, which uses up yet more of that precious 32k. etc.

Having any tpdd client at all installed in any form makes transferring files a breeze, including binary files. This somewhat alleviates the small ram problem because you can easily put files away and get them back, as long as your tpdd software stays working.

Even better is having a full featured tpdd client like ts-dos instead of teeny, and having it in rom instead of ram.

That alleviates all kinds of annoyances.
- It consumes almost no ram.
- It doesn't require a pain in the neck bootstrap/loader process to get installed. - It isn't subject to being clobbered and needing to be reinstalled because of some other software writing over it or crashing.
- It isn't lost after a hard reset or dead batteries.

With TS-DOS in rom, you can pick up a totally dead machine, or totally kill your machine with a hard reset on purpose, or suffer a total ram corruption from buggy software, and with just "CALL 63012" you are up and running again, connect to a computer and pull down files.

But even though this makes a lot of things a lot better, this still needs a computer and serial cable. The tpdd client just makes it so that you can effortlessly connect to a pc and move files back & forth, and having it in rom just means you can effortlessly always have the tpdd client regardless of crashes or dead batteries.

That still leaves a couple things that could be better:
- If you had a plain ts-dos option rom, it means you can't use any other option rom because the single socket is occupied already by ts-dos. - You still need a serial cable and pc (or a real tpdd drive or a Backpack or PDDuino) to actually get the files from somewhere / put them somewhere.

REX gives you ts-dos in rom just for starters. It gives you ts-dos in rom which just that right there alleviates several things above, but also:

- all other options roms besides ts-dos
- full ram image backups
- all on-device self-contained with no computer or serial cable needed (after initial loading)
- impervious to dead batteries or resets or crashes

And although you do need a computer to install option rom images onto the rex one time, ts-dos in particular is pre-installed, so that single most-needed one never needs even the initial one-time install from a computer. Only all the other roms need to be loaded from a pc once. And the loading process is easy, because REXMGR uses tpdd protocol internally to pull the rom images from a pc. No bootstrapper/loader procedure.

The other option roms give you mostly a few different office software kits, ie spreadsheets and word processors, and a few other things like there is a FORTH rom and an assembler/debugger/renumberer.

The ram image backups give you essentially more copies of 32k ram. It helps a few different ways:
- you can physically hold more than 32k of apps or data.
- you can recover from a dead battery or reset or corrupted ram from crashed software by restoring a ram image.

There are something like 30 or so available slots, and each slot can be either an option rom or a ram image. That's a lot.

All without a computer. In the coffee shop, on the train etc, just recover from dead zero in a few seconds. Just "Call 63012" and away you go, all interactive app and menu driven after that.

So that is why you want a REX of any stripe, REX Classic, REX#, or REXCPM.

Now for REXCPM in particular....

Those particular advantages are something the REXCPM is less good for.

REXCPM does give you all of that, but only as long as the M100 internal battery is not dead and the REXCPM and bus adapter board remain installed in both sockets.

You can recover from software crashes that scramble the ram, and from intentional hard resets that wipe all ram (ctrl-break-reset), but not from dead batteries or switching off the memory power switch on the bottom for more than a few minutes, or removing the device from the m100 for more than a few minutes.

If the M100 internal battery runs out, or you uninstall it for more than a few minutes (you do get a pretty good grace period of several minutes, maybe even over 10 minutes) then you have to reload the REXCPM from scratch as you just experienced. If you had a REX Classic or REX# instead of REXCPM, all you would have done is type "call 63012" and you'd be all back up & running. No pc, no "37 easy steps". Done. And to remember "call 63012" just write it on a sticker or label-maker on the bottom. Put it on the underside of the option rom or battery cover if you want to hide it but then you have to at least remember that it's there.

I did make a "UPS" for REXCPM that should keep it alive for a few years, but it's pretty involved to build and ultimately hard to justify.
I don't pretend it's practical for most people, but it does work and exists.
https://github.com/bkw777/REXCPM_UPS

You have to buy the parts from digikey or mouser etc, order pcbs from elecrow or oshpark etc, and then it's a pretty fiddly soldering job, and it ends up costing as much or more than the rexcpm itself just to give it a battery. And for all that, I think I only estimated 6 months per cell x 4 cells = 2 years, but that's after the M100's own batteries run out, and if you have fresh alkaline AA's and a charged internal battery, the M100 itself can last anywhere from a few months to a year. So maybe up to 3 years?

A better long-term solution would be a keeper. You remove the rexcpm and plug it in to something with socket and a big battery. But that doesn't help with one that's installed in a machine. You'd need to remove it from the machine to put it in the keeper. Plus the molex sockets are no longer made. There are a few around available still but this would be a wasteful way to use one up instead of keeping them to repair machines. Really, for the long term like over 5 years, it's probably more practical to just let it die and reload it. With a convenient bootstrapper and tpdd server on a pc, it only takes a few minutes to reload a rexcpm from scratch. It's several steps that requires a cheat sheet to follow, but none are very difficult or long. The hard part is just deciphering the original directions to figure out what actually are the steps you need to do.

So all in all, I'm not sure how necessary the ups is. It's probably more practical to just do 2 things to live a happy life with a REXCPM:

1 - Keep it installed in a machine. And keep that machine charged. (Unfortunately, you can't just lave the machine plugged in to the wall 24/7 for months, that will cook the internal battery.)

2 - Get good at reinstalling it. It's several steps, but it's possible to write a little cheat sheet that is easier to follow than the full original documentation. And none of the steps are very difficult or long. You don't even need the cheat sheet after a few runs through.

If you aren't specifically wanting to run CP/M then I always say a REX# is far more practical. REX# is an nvram device that acts like a rom.

Instead of ever needing to recover the REX, the REX is what recovers your M100.

--
bkw


On 3/15/24 22:46, Will Senn wrote:
Wow, that was harder than I expected. I had to read through a ton of stuff, but I finally managed to get Rex back on the menu and CPM with the hotkey...Now, I am trying to remember why I got Rex in the first place... seems like I was cramped with 32k (I doubt it, but the modern in me feels it oughtta be so) and REX gives me a bunch of 32k segments or something like that along with a manager that lets me put old roms somewhere they can be run from (Defender comes to mind).

Hep! What's Rex really for? Somebody remind me. Also, what do I do with CP/M that's cool?

Next up, after putting Rex and CP/M to work is to load up the assembly stuff and write an assembly program. I'm off to reading was it "Inside the M100"? I think that was the book that talked about the memory map and functions provided by the firmware was it? Sheesh, so many years have gone by since then.

I've been plowing through the 8085 stuff - can't wait to put it into action on real metal (the sim's fine, but nothing is as satisfying as making a real, physical device do stuff.

Oh, and a bit more stream of consciousness... if I have LaddieAlpha working (mono on linux), do I still need DeskLink+, or put another way, if I have DeskLink+, do I need LaddieAlpha, or are they doing basically the same thing? I used dl until I installed the Rex, which talked about laddie, but then in TEENY, it didn't seem to care which it was talking to and CPM installed fine over laddie, whew, if you're confused by that last bit, imagine a poor newb trying to reason it out...

Thanks,

Will

--
bkw

Reply via email to