REXCPM
What is REXCPM?
REXCPM is an add-on memory card that plugs into the Option ROM socket in a supported laptop, augmenting significantly the amount of memory in the laptop as well as what that memory can be used for. REXCPM changes the way the laptop memory works:
* REXCPM provides up to 4MB of battery backed SRAM to the laptop. * Like REX, REXCPM puts bank switched memory into the OPTION ROM memory bank (1x32k bank) * In addition, REXCPM disables (while installed) the internal installed RAM, and replaces it with bank switched memory (2x16k banks)
Why?
CP/M. The main goal of REXCPM is to enable support for Philip Avery's port of CP/M 2.2 onto the M100 hardware. CP/M requires the full 64k address space to be RAM in order to operate, and so a RAM based capability is needed.
RAMdisk. CP/M is a disk based operating system. REXCPM, via the 3 bank-switched memory regions, is able to transform the majority of the SRAM resource into a RAM based, battery backed, ultra fast disk.
...and of course, all of the classic capabilities of REX can be supported using SRAM as well! So REXCPM is really all of the best aspects of REX, combined now with a custom, supported CP/M implementation, opening the door to a wide range of new applications!
Links
Status
* REXCPM is currently in beta testing. * Hardware design and test is complete. * Inventory status will be kept up to date at the Ordering page.
Quick Start
So, you have just received your REXCPM and want to get going. Here's what you need to do...
1. Install your REXCPM 2. Initialize your REXCPM by running RXCINI.DO. This lets you load the REXCPM application and initialize the directory. 3. Now you are ready to use REXCPM. You can use it just like a REXclassic. Create ram backups, load option ROMs etc.
Installation and Set Up
Installation information for Model 100 here ----> M100 install
Documentation
Stay tuned!
Software
REXCPM Application
As shipped, REXCPM is a blank piece of SRAM. In order to get rolling you need to load in the REXCPM application. Use RXCINI to load the following software.
Here's the software:
Application | Build | Status | File |
RXC_11 | 36 | Beta. Still testing! | RXC_11_b36.ZIP |
Note: REXCPM application is based on classic REX with several differences. Please communicate any bug reports.
REXCPM Initialization
A tool is available for initializing a fresh REXCPM, or if you want to rebuild it you can use this tool also. Since REXCPM is based on SRAM, and there is no on-board battery (only a large 1000uF capacitor), by the time you receive your REX the memory contents will be blank. So, you have to load REXCPM with the REXCPM application and any option ROMs you want to use.
Here's the software:
Utility | Version | File |
RXCINI | 1 | RXCINI.DO |
Instructions ------------ 1. Load RXCINI.DO via serial transfer, or TPDD transfer. It is ASCII. 2. Make sure REXCPM is in default state, meaning REXMGR is not running (use CNTL-X to remove hooks) and power cycle once. 3. RUN RXCINI.DO in BASIC. 4. You can choose to either LOAD a REXCPM application (28kB file) and/or INITIALIZE the directory. You can guess that initializing the directory removes any directory entries. The REXCPM application EXCLUDES the directory, so you must initialize the directory if you are starting from scratch and there is no existing directory (or stored images!). 5. If LOADing a new REXCPM application, ensure a TPDD device is ready to go with the source file as needed. Supply the correct file name (6 characters, no extension, case sensitive) File extension is set to .BR 6. Let the program run If you loaded REXCPM application, then at this point, REXCPM should have a fresh "ROM" load for REXCPM. CALL 63012 to start REX.
Backup and Restore
A tool is available for backing up or restoring REXCPM memory contents to TPDD. Some of the REXCPM SRAM is dedicated to CP/M while other memory is dedicated to REX functionality. This tool allows you to select:
* Etiher a Backup or Restore process * REXCPM or CP/M memory regions REXCPM memory includes REXCPM ROM image + directory + 16 blocks Total of 17 32kB blocks. CP/M memory includes all of the CP/M disk space, including directory (but excluding CP/M OS) For 2MB, 40 32kB blocks. For 4MB, 104 32kB blocks. * Serial port speed - 19200 8N1 or 76800 8N1 "Large Packet"
The tool uses the standard RS-232 port on the M100. Standard TPDD clients can operate at 19200 baud, but LaddieAlpha is capable of operation at 76800 baud, and also able to support large packet sizes, both of which help to speed up the process.
NOTE: LaddieAlpha with 76800 Large Block support is not generally available yet. Stay tuned.
Backup/Restore processes can take some time; use this table for guidance.
Process | Memory size | Duration | Duration |
REXCPM | either | 19200 | 5:20 min |
CP/M | 2MB | 19200 | 13 min |
CP/M | 4MB | 19200 | 33 min |
REXCPM | either | 76800 | 2:10 min |
CP/M | 2MB | 76800 | 5 min |
CP/M | 4MB | 76800 | 13:15 min |
Here's the software:
Utility | Version | File |
RXCUTL | 1 | RXCUTL.DO |
Instructions * load RXCUTL.DO into the M100 using a terminal program on PC (lots of ways to do this) * enter BASIC and type RUN"RXCUTL.DO" * Select Process, REX or CP/M, and speed * The loader will load up the machine language routine, and begin to execute * Ensure that a TPDD client is attached to the serial port * For either process, supply 6 character case-sensitive name for the file. File extension is set to .BB * Once entered, RXCUTL will attept to either write or read all required data to/from REXCPM SRAM.
Acknowledgements
I would like to thank those that have contributed to the project:
Philip Avery - for his commitment to this project and for the port of CP/M to the M100
John Hogerhuis - for all his technical support, and for this Wiki resource
Kenneth Pettit - for VirtualT as this project would not have happened without it
Brian White - for his innovative PCB2MOLEX carrier design