Authors
Publication
Pub Details
Date
Pages
BASIC Terms
A major barrier to fixing the problems in the HOME ROM is one of access. Even though the ROM is socketed, you still have to open up the case and risk damage.
This article shows how to replace the HOME ROM without touching a screw. It is not really necessary to replace ROM with EPROM. A battery backed-up static RAM would do as well if equipped with a READ ONLY switch. That way, the RAM can be written and then be switched to write-protect state. The saving in time over EPROM burning is very impressive. Of course, you will use EPROM in the end.
This unit does not preclude using the DOCK port if it has an extension connector and plugs into the DOCK slot. If you have a buss expander with slots, it can mount there, leaving the DOCK slot clear, but the former is what most will use.
The design in Fig 1 is for the case where you might have both. It works just as well if you don’t have a buss expander.
Inside the case, and not externally available, is the signal which enables the HOME ROM chip. This signal is labeled ROMCS.
Our problem is to get ROMCS externally by a logic operation, and to prevent conflict with the external ROM.
Preventing conflict with internal ROM is easy. We just issue /BE whenever HOME ROM is addressed.
Detecting when HOME ROM is being addressed is a bit more difficult, but quite straight-forward.
The HOME ROM is NOT being addressed whenever:
- Either of the address lines A14 or A15 is high,
- EXROM is low for EXROM addressed,
- ROSCS is low for DOCK addressed,
- BE is low from another addressed bank,
- MREQ is high, indicating I/O or interrupt cycle, or
- RD is high, indicating a write cycle.
What logic could be simpler to implement?
For over a year, I have used such a system to implement bank switching, but external “ROM” is core memory instead of battery backed-up RAM. It works like a charm, and can store grandfather copies of trial ROM images.
Now that the creation of new ROMs for the TS-2068 has gotten a lot of attention, it would be a shame to let that year of working experience go to waste.
Much of the “clutter” in the existing ROM should be removed to an expansion bank. The most glaring example of this is how much code is wasted supporting COPY and the TS-2040 printer. The same applies to much of LLIST. A similar situation exists in EXROM for tape operations, but this can be salvaged by modifying it so the microdrive and other tape loop devices can use it.
Some ROM routines, like SKIPIT, should be relocated back where they were originally; in this case down four bytes. The correct address was maintained intact in the routine PASSEM in EXROM. Removing two of the barrier error calls gets it back to the right HOME ROM address.
It is easy to go overboard and “fix” things which might please you, but not someone else; or assume an error exists when it is merely poorly understood how it was suppose to work. I have sweated many hours over something that looked wrong, then seeing something quite ingenious through the fog in my mind.
PLEASE, PLEASE contact me before going ahead with new ROM developements. I have made more mistakes than anybody!
