Thomson ROMs for MESS Emulation

[ Version française ]

New ROMs are added from time to time. Come back to this page if, after a MESS upgrade, you are missing some files.

The quick and easy way to get the ROMs needed to run the emulator is to get them here. Recall that all ROMs for a driver named, say to9p, must reside in a file to9p.zip or a sub-directory to9p within your MESS roms directory.

The rest of the page is mainly intended for people wishing to dump the ROM of their own computer.

Supported ROMs

If your ROM is not a byte-to-byte copy of one MESS knows about, it will issue a signature warning. This does not mean the ROM will not work. Several revisions are known to exist but have not been all tested.

Please contact the author to report a successful dump. I am particularly interested in genuine ROMs that display a different start-up menu or logo.

The emulator is designed to work on genuine, unaltered ROMs. Some ROMs on the Internet have been tempered with to work better on specific emulators and WILL NOT work with MESS.

ROM tables

In the following tables, we describe which file corresponds to which part of the memory. Sizes are expressed in bytes, and addresses in hexadecimal.

As a rule, ROMs with the same file name have identical size and contents, even though they may correspond to different address ranges in different computers. You need only dump them once.

Because of the limited 16-bit address space, some ROMs are banked. In this case, one file corresponds to one bank. Thus, you will notice that several files correspond to the same address range. If necessary, the last column (access condition) explains how to switch to the given bank.

Acknowledgments

The ROMs available for download could be put together thanks to Daniel Coulom (for most ROMs) and Sylvain Huet (Arabic TO7/70 ROMs), and Edouard Forler (single density floppy controller ROM CD 90-015).

Internal ROMs

T9000, TO7, TO7/70, Arabic TO7/70

These computers only contain a 6 KB BIOS ROM.

T9000 ROMs (t9000)
filecontentsaddresssize access conditions
t9000.rom BIOS $e800-$ffff 6144 B


TO7 ROMs (to7)
filecontentsaddresssize access conditions
to7.rom BIOS $e800-$ffff 6144 B


TO7/70 ROMs (to770)
filecontentsaddresssize access conditions
to770.rom BIOS $e800-$ffff 6144 B


Arabic TO7/70 ROMs (to770a)
filecontentsaddresssize access conditions
to770a.rom BIOS $e800-$ffff 6144 B

In order to use a floppy drive or the network, you must also get the ROM from the corresponding external controller.

Recall that the computer is hardly usable without the BASIC ROM which is provided as an external cartridge (e.g., basic.m7 for the TO7, basic.m7 or basic128.m7 for the TO7/70, basic128a.m7 for the Arabic TO7/70).

MO5, MO5E

Note that an external cartridge masks the BASIC ROM.

MO5 ROMs (mo5)
filecontentsaddresssize access conditions
mo5.rom BIOS $f000-$ffff 4096 B
basic5.rom BASIC 1 $c000-$efff 12288 B no cartridge


MO5E ROMs (mo5e)
filecontentsaddresssize access conditions
mo5e.rom BIOS $f000-$ffff 4096 B
basic5e.rom BASIC 1 $c000-$efff 12288 B no cartridge

In order to use a floppy drive or the network, you must also get the ROM from the corresponding external controller.

TO9

The TO9 has the biggest ROM of all: 136 KB! Indeed, it contains several application software (text editor, etc.) in eight 16 KB banks. Note the non-orthogonal way to access the banks. As it was not very convenient to update the ROMs with bug-fixes, its successor, the TO9+, ships the same software on floppies instead.

TO9 ROMs (to9)
filecontentsaddresssize access conditions
to9.rom BIOS $e000-$ffff 8192 B
basic9-0.rom BASIC 128 #1 $0000-$3fff 16384 B $e7c3 and #$30 = #$00
write anything to $0000
basic9-1.rom BASIC 128 #2 $0000-$3fff 16384 B $e7c3 and #$30 = #$00
write anything to $0001
basic9-2.rom BASIC 1 $0000-$3fff 16384 B $e7c3 and #$30 = #$00
write anything to $0002
basic9-3.rom graphical DOS $0000-$3fff 16384 B $e7c3 and #$30 = #$00
write anything to $0003
soft9-0a.rom database #1 $0000-$3fff 16384 B $e7c3 and #$30 = #$10
write anything to $0000
soft9-1a.rom database #2 $0000-$3fff 16384 B $e7c3 and #$30 = #$10
write anything to $0001
soft9-0b.rom text processor #1 $0000-$3fff 16384 B $e7c3 and #$30 = #$20
write anything to $0000
soft9-1b.rom text processor #2 $0000-$3fff 16384 B $e7c3 and #$30 = #$20
write anything to $0001


Note: these ROMs include the software for the built-in internal floppy controller. You can also use the TO9 with an external floppy controller or network extension, provided you get the corresponding ROMs.

TO8, TO8D, TO9+

The TO8, TO8D, and TO9+ all have 80 KB of ROM, separated into four 16 KB banks of BASIC software and two 8 KB banks of BIOS (including the internal floppy controller ROM). The banks occupy the same address and are selected using the same mechanism on these three computers. Also, the BASIC ROM is identical in the TO8 and TO8D; only the BIOS is different.

TO8 ROMs (to8)
filecontentsaddresssize access conditions
to8-0.rom BIOS #1 $e000-$ffff 8192 B $e7c3 and #$10 = #$00
to8-1.rom BIOS #2 $e000-$ffff 8192 B $e7c3 and #$10 = #$10
basic8-0.rom BASIC 512 #1 $0000-$3fff 16384 B write anything to $0000
basic8-1.rom BASIC 512 #2 $0000-$3fff 16384 B write anything to $0001
basic8-2.rom BASIC 1 $0000-$3fff 16384 B write anything to $0002
basic8-3.rom graphical DOS $0000-$3fff 16384 B write anything to $0003


TO8D ROMs (to8d)
filecontentsaddresssize access conditions
to8d-0.rom BIOS #1 $e000-$ffff 8192 B $e7c3 and #$10 = #$00
to8d-1.rom BIOS #2 $e000-$ffff 8192 B $e7c3 and #$10 = #$10
basic8-0.rom BASIC 512 #1 $0000-$3fff 16384 B write anything to $0000
basic8-1.rom BASIC 512 #2 $0000-$3fff 16384 B write anything to $0001
basic8-2.rom BASIC 1 $0000-$3fff 16384 B write anything to $0002
basic8-3.rom graphical DOS $0000-$3fff 16384 B write anything to $0003


TO9+ ROMs (to9p)
filecontentsaddresssize access conditions
to9p-0.rom BIOS #1 $e000-$ffff 8192 B $e7c3 and #$10 = #$00
to9p-1.rom BIOS #2 $e000-$ffff 8192 B $e7c3 and #$10 = #$10
basicp-0.rom BASIC 512 #1 $0000-$3fff 16384 B write anything to $0000
basicp-1.rom BASIC 512 #2 $0000-$3fff 16384 B write anything to $0001
basicp-2.rom BASIC 1 $0000-$3fff 16384 B write anything to $0002
basicp-3.rom graphical DOS $0000-$3fff 16384 B write anything to $0003


Note: these ROMs include the software for the built-in internal floppy controller. You can also use the computer with an external floppy controller or network extension, provided you get the corresponding ROMs.

MO5NR, MO6, PC 128

Please note that BASIC ROM banks 0 and 1 have different size and address range than banks 2 and 3.

MO6 ROMs (mo6)
filecontentsaddresssize access conditions
mo6-0.rom BIOS #1 $f000-$ffff 8192 B $a7c0 and $#20 = $#00
mo6-1.rom BIOS #2 $f000-$ffff 8192 B $a7c0 and $#20 = $#20
basic6-0.rom BASIC 1 #1 $c000-$efff 12288 B $a7dd and #$30 = #$20
$a7c0 and $#20 = $#00
basic6-1.rom BASIC 1 #2 $c000-$efff 12288 B $a7dd and #$30 = #$20
$a7c0 and $#20 = $#20
basic6-2.rom BASIC 128 #1 $b000-$efff 16384 B $a7dd and #$30 = #$30
$a7c0 and $#20 = $#00
basic6-3.rom BASIC 128 #2 $b000-$efff 16384 B $a7dd and #$30 = #$30
$a7c0 and $#20 = $#20


Olivetti Prodest PC 128 ROMs (pro128)
filecontentsaddresssize access conditions
pro128-0.rom BIOS #1 $f000-$ffff 8192 B $a7c0 and $#20 = $#00
pro128-1.rom BIOS #2 $f000-$ffff 8192 B $a7c0 and $#20 = $#20
basico-0.rom BASIC 1 #1 $c000-$efff 12288 B $a7dd and #$30 = #$20
$a7c0 and $#20 = $#00
basico-1.rom BASIC 1 #2 $c000-$efff 12288 B $a7dd and #$30 = #$20
$a7c0 and $#20 = $#20
basico-2.rom BASIC 128 #1 $b000-$efff 16384 B $a7dd and #$30 = #$30
$a7c0 and $#20 = $#00
basico-3.rom BASIC 128 #2 $b000-$efff 16384 B $a7dd and #$30 = #$30
$a7c0 and $#20 = $#20


MO5NR ROMs (mo5nr)
filecontentsaddresssize access conditions
mo5nr-0.rom BIOS #1 $f000-$ffff 8192 B $a7c0 and $#20 = $#00
mo5nr-1.rom BIOS #2 $f000-$ffff 8192 B $a7c0 and $#20 = $#20
nano5.rom network controller $a000-$a7bf 1984 B
basicn-0.rom BASIC 1 #1 $c000-$efff 12288 B $a7dd and #$30 = #$20
$a7c0 and $#20 = $#00
basicn-1.rom BASIC 1 #2 $c000-$efff 12288 B $a7dd and #$30 = #$20
$a7c0 and $#20 = $#20
basicn-2.rom BASIC 128 #1 $b000-$efff 16384 B $a7dd and #$30 = #$30
$a7c0 and $#20 = $#00
basicn-3.rom BASIC 128 #2 $b000-$efff 16384 B $a7dd and #$30 = #$30
$a7c0 and $#20 = $#20

As for the TO7, using a floppy drive requires an extra ROM from the external controller.

ROMs for External Controllers

Several external device controller contain a ROM.

To use the device with a computer, you must put the controller ROM file in the same path as other ROMs for the computer.

External Floppy Controllers

All floppy controllers work indifferently with the TO7, TO7/70, MO5, MO5E, MO5NR, MO6 and Olivetti Prodest PC 128. Given a controller, the ROM is the same for all computers, but shows up at a different address (due to differences in the address space). We show only the address range for TO machines. For the MO machines, an address of the form $eXYZ must be translated into $aXYZ (for ROM ranges, but also access conditions).

Which controller is actually used can be set in MESS's in-game configuration menu. Note that the CD 90-351 is the most versatile (in practice, it seems to work with 5"1/4 and 2"8 drives as well as 3"1/2 ones!). It is also has the largest ROM, with four 2 KB banks.

New: We now support these external floppy controllers also on the TO8, TO8D, TO9, and TO9+. For these computers, you can switch between the built-in internal controller and any of the external controllers using MESS's in-game configuration menu. Note, however, that all external controllers may not work with all these newer computers (especially the TO9). In any case, using the internal floppy controller is recommended.

Floppy Controller ROMs
filecontrollerfloppiesTO address sizeaccess condition
cd90-015.rom
(new)
CD 90-015 5"1/4, single density
80 KB / side
$e000-$e7bf 1984 B
cd90-640.rom CD 90-640 5"1/4, double density
160 KB / side
$e000-$e7bf 1984 B
cd-351-0.rom CD 90-351 #1 3"1/2
320 KB / side
$e000-$e7bf 1984 B write #$00 to $e7d8
cd-351-1.rom CD 90-351 #2 " $e000-$e7bf 1984 B write #$01 to $e7d8
cd-351-2.rom CD 90-351 #3 " $e000-$e7bf 1984 B write #$02 to $e7d8
cd-351-3.rom CD 90-351 #4 " $e000-$e7bf 1984 B write #$03 to $e7d8
cq90-028.rom CQ 90-028 2"8 QuickDisk
50 KB / side
$e000-$e7bf 1984 B


External Network Controller

The TO7, TO7/70 and MO5 have a network extension with a dedicated ROM. It reuses the extension framework reserved for external floppy controllers. As a consequence, the ROM occupies the same address ranges.

New: The ROM can now be used with the newer TO family: TO8(D), TO9(+).

Although the ROM is required, the network is not functional yet.

Unlike floppy controllers, the ROM is different for TO machines and MO machines. But there is only one extension box. A switch at the back of the box allows choosing either the TO or the MO mode.

Network ROMs
filecontrolleraddresssize access condition
nano5.rom network $a000-$a7bf 1984 B switch 6 closed
nano7.rom network $e000-$e7bf 1984 B switch 6 open


I do not know whether the internal network controller in the MO5NR is similar to the external MO5 network extension...

Cartridges

Cartridges occupy addresses $0000-$3fff on TO machines, and $b000-$efff on MO machines.

Some cartridges are larger than 16 KB. They are split into several 16 KB banks. Bank switching is generally performed by a special hardware piece in the cartridge because no mechanism was provided in the Thomson computers to do this. As a consequence, different cartridges may use incompatible mechanisms. The mechanisms that I know of are:

Recall that MO cartridges and TO cartridges are incompatibles.


Return to the 8-bit Thomson MESS driver page.