You can run plugged in to the wall for all normal random on/off
operating times without worrying about it too much, IE, all day long for
8 to 12 hours or whatever, and for multiple days in a row, if unplugged
when turned off.
And you can leave it plugged in turned on or off overnight for one night
to a few days.
And you can even get away with exceeding those pretty badly once in a while.
What you want to avoid is plugging it in and leaving it plugged in 24/7
for weeks or months or years, whether it's on or off.
The harm is the charging circuit that charges the internal nicd battery
soldered on the motherboard. The battery is not a lead/acid or gel cell
that has a float value where it can just stay floating at a certain
value forever, and the charging circuit is not a smart modern battery
manager that knows how to stop charging when the battery is full, it
just keeps on supplying a bit higher voltage than the the cells own
voltage, and current just keeps on flowing backwards through the cell,
and sooner or later this kills the battery by a couple different
possible mechanisms from plain heat & pressure making it leak and cook
off all the electrolyte, to things like the electrolysis process like
electroplating, eating away all of one plate and building gunk up on the
other.
It's pretty forgiving so you don't have to be super careful. You can
*mostly* never even think about it, and a normal random usage pattern
will just naturally be fine. Just don't plug it in and forget about it
for a year.
It doesn't touch the AA's and it doesn't matter if the machine is turned
on or turned off.
Now that you make me run through it all like that, I realise this might
finally be be an actual valid useful reason to install a supercap
instead of a new nimh cell.
Mostly there is no point, because both a cap and a battery will only
last about the same number of years, and both will start to leak
corrosive juice after about the same number of years. A cap is not
harmed by being allowed to go all the way dead (which a battery is), nor
by being allowed to stay dead for a long time (extra especially bad for
a battery), but even a battery that has been so badly treated still
supplies more standby time than a brand new perfect cap. All in all, no
point.
But one difference that matters, a cap should not be harmed by the
crudeness of the charging circuit. A cap will just charge up and stop
conducting and won't care about the charging supply at all. No current
will keep flowing through the cap, no cooking or electrolysis etc.
I have always been very much not in the supercap camp, but this is one
real thing.
--
bkw
On 3/16/24 16:33, Will Senn wrote:
Wow, Brian! Super clear. Now, I want a REX# :).
When you say that leaving it plugged in will kill the battery, do you
mean that I should run it off AA batteries most of the time and not my
6v 200ma adapter? And the battery you're talking about killing is the
nicad on the board, right?
Thanks,
Will
On 3/16/24 3:21 PM, Brian K. White wrote:
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