Features of the TI and Geneve emulation in MESS
MESS offers a lot of features for the emulation of TI and Geneve systems. Below we describe the set of features for versions 0.147 and higher.
Emulated systems
Within the TI world of Home Computing, MESS emulates the
- TI-99/4, the predecessor of the TI-99/4A. Of course, as always, you need the ROMs of the console.
- TI-99/4A, silver/black console. We may add the beige console ROM if we get a dump.
- SGCPU, inofficially also called TI-99/4P. This is an expansion box card from SNUG which is equipped with the original circuits from the TI-99/4A console, but without video processor, which is located on the EVPC card.
- TI-99/8, the unknown successor, never gone to market. It is only available in small numbers as prototypes, and there are numerous versions with different ROMs. MESS allows you to get to know this rare gem.
- Geneve 9640, Myarc's quite successful successor to the TI-99/4A. Even if you once refrained from investing in this wonderful machine, you now have the opportunity to learn more about it and possibly feel a late regret. We also have the GenMod variant for selection.
- TM990/189 board. This was a single board microcomputer mainly for educational purposes
Apart from those, MESS emulates a huge number of systems from other vendors, like Commodore machines (VIC-20, C64, Amiga), Atari, Sinclair (ZX-81, Spectrum), also PC-XT and PC-AT, in case you have missed this part of Personal Computing evolution.
But let's stay with the TI systems here.
Emulated peripherals
MESS emulates a broad collection of peripheral cards of the TI systems. That is, we emulate the second generation of peripheral expansion of the TI using the Peripheral Expansion Box. We do not target the first generation where separate devices were added next to each other, forming a "daisy chain" of boxes, which eventually required you to buy a longer table. The only remaining item from these times was the Speech Synthesizer, which was often moved into the PEB using an adaptor card. Within MESS we assume that the synthesizer was indeed put into the box on such an adaptor.
Memory expansion cards
- The original TI 32K Memory Expansion. However, to be honest, we model this card as having an 8K and a 24K chip inside and not the complicated array of 32 single 1K chips that you will find in the real card. This is a minor cheat in the model.
- Myarc Memory expansion card MEXP-1 (512 MiB), with the internal 8 KiB DSR ROM which allows for testing and partitioning the card, and it introduces new devices which are make available to BASIC programs, like a RAMdisk device.
- The SuperAMS card in its 1 MiB configuration.
- The Horizon 4000 RAMdisk card, with full 16 MiB buffered RAM, Phoenix and RAMBO extension.
- The Geneve MEMEX expansion from Myarc. May be used together with the GenMod feature to expand the memory to the full 2 MiB range
Disk controllers
- The original TI DSSD disk controller card with the FDC1771 controller chip. This card cannot read 360 KiB disks, only 90K and 180K (double sided).
- The BwG controller from SNUG, with the WD1773 double-density controller chip, 32 KiB EPROM, 2 KiB RAM, and real-time clock.
- The HFDC controller from Myarc with the HDC9234 chip from SMC. Supports up to 4 floppy drives and 3 MFM hard disk drives, includes 32 KiB RAM, and a real-time clock. Tape support is not available.
- Thierry Nouspikel's IDE adaptor card. This is is mainly untested, though.
- Thierry Nouspikel's USB/SmartMedia adaptor card. Same for this one.
System modification and extension
- The HSGPL card from SNUG. It is also needed for the SGCPU as it holds the GROM contents. It simulates 16 banks of 64 KiB GROM space, 2 banks of 64 KiB GRAM space, 2 banks of 32 KiB RAM, and 512 KiB for the DSR.
- The P-Code card. This card was the entry to the world of UCSD Pascal programming on the TI, but with the card and three separate disks, it was so expensive that most Home Computer enthusiasts were never willing to really go for it.
- The Enhanced Video Processor Card (EVPC) from SNUG. It replaced the console's video processor with the V9938 known from the Geneve.
- The Speech Synthesizer (mounted on an adaptor), including its internal speech ROMs.
- The internal 16 bit 32KiB expansion which many users applied to their consoles. It is actually emulated with 16 bit width and zero wait state, thus showing realistic speed-up.
Human-computer interfaces
- The dual joystick port. The real joysticks are simulated by keys on the PC keyboard. You can, however, attach joysticks on the joystick ports of the PC, also via USB. There are adaptors which allow for attaching the original digital joysticks (like Competition Pro, Prostick) to the USB port.
- The Mechatronics mouse which connected to the Joystick port.
- The TI-99/4 Infrared handheld controllers. However, I have not seen any software to really test them. These controllers were available in 99/4 prototypes only and removed on market introduction.
External interfaces
- The TI RS232/PIO card. While the PIO allows to attach a file on the PC file system which captures the outgoing data, it has no provisions to receive incoming bytes. The two RS232 ports (/1 and /2) can be attached via a socket connection to any other process that provides access to the PC UART.
System features
- RESET switch (via the standard MAME/MESS key F3)
- LOAD interrupt switch (preconfigured to PrtScr, can be changed)
- Alpha Lock bug (can be turned off); this prevents joystick up detection when Alpha Lock is active
- Peripheral cards add their DIP switches to the menu when active; they can, in particular. be configured to different CRU bases if available
- Floppy and hard disks use realistic timings by default. Can be turned off to dramatically increase speed.
- GROMs in the console can be turned off for cards like HSGPL to work properly.
Media
Cartridge system
In MESS there are two ways to emulate cartridges; the MESS emulation of the TI-99 system has a special one that may be used beside the general MAME/MESS-like concept.
TI Solid State Modules or cartridges, as they are commonly called, are emulated by a subsystem that emulates the ROMs, GROMs, and RAM in the cartridge. The contents of the cartridge ROM is stored as memory dump files in a package file which is actually a ZIP container. ROM and GROM contents are stored in separate files in this container. The container (which we call RPK container for ROM Package container) also contains an XML-formatted file which declares which file shall be associated with ROM or GROM space.
If the cartridge contains persistent RAM (like MiniMemory) which is not cleared when the computer is turned off, the contents are stored in nvram files, handled by the MAME/MESS core. As for now, there is no way to store these nvram contents in the RPK file, so you have to take care of these files by yourself (e.g. when you want to send the contents to someone else you have to check the nvram file).
The cartridge system distinguishes between various cartridge types:
- standard cartridges (containing ROMs and GROMs)
- paged cartridges (Extended Basic style or other decodings)
- persistent RAM cartridges (MiniMemory, SuperSpace, MBX)
The MBX expansion system (with separate console, speech processing etc.) is not emulated yet.
- Cartridge insertion causes automatic RESET; can be inhibited (the adhesive tape trick)
Single cartridge slot
The single cartridge slot is known from the standard console; it allows for plugging in one cartridge at a time.
Super cartridge expander
The multi-cartridge expander
- allows for plugging in up to 4 cartridges at a time.
- selecting the cartridges via GROM address (also switching the ROMs accordingly)
- selecting the cartridges via a switch (like the Navarone Widget)
GRAM Kracker
The GRAM Kracker can be used instead of the single/multi slot. It requires a built-in ROM to be present as a memory dump.
- Full emulation of the switch row on the front panel. You can exactly follow the instructions from the manual. (Only RESET is not emulated as this function is provided by the emulator itself.)
- Contents are stored in nvram file. You can replace that file to make use of multiple different GRAM Kracker instances.
- Adds a cartridge slot like the real device in order to dump cartridges.
Floppy disks
Floppy disks are emulated by a file on the host computer's file system. This file has typically the same size as the contents of the original floppy disk. All changes are applied to this image file. In order to access files of that image by programs on the host computer (e.g. reading a text file by a PC word processor) you can export them with tools like TIImageTool.
- All storage sizes of 5.25" and 3.5" floppy disks: from 90 KiB to 2448 KiB
- Single/double sided, single/double/quad density (highest density only with HFDC)
- Sector dump images or track dump images (commonly also called v9t9 and pc99 format)
- Track dump images may also contain specific format properties, for example, used as copy protection.
- Images can be created with the imgtool from MAME/MESS or other tools like TIImageTool.
Floppy disks formatted on the TI cannot be directly read by MESS, but there are tools that allows for reading these disks in PC floppy drives.
Hard disks
- Hard disks are emulated by the MAME/MESS core as image files in CHD format ("Compressed Hunks of Data")
- MFM hard disks connected to the HFDC controller are emulated by CHD files
- IDE hard disks connected to the IDE controller by Thierry Nouspikel are also emulated (still untested, though).