Difference between revisions of "ROM"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(BASIC ROMs)
Line 11: Line 11:
 
* They are always present in the background and can be called/started without needing to insert a disk or tape - Useful for utilities such as Basic extensions or Disc utilities.
 
* They are always present in the background and can be called/started without needing to insert a disk or tape - Useful for utilities such as Basic extensions or Disc utilities.
 
* They usually run directly from the ROM, not from RAM, so the RAM is still 99.9% empty - Useful for text editors and compilers because the RAM is free to be used for data.
 
* They usually run directly from the ROM, not from RAM, so the RAM is still 99.9% empty - Useful for text editors and compilers because the RAM is free to be used for data.
 +
 +
No games were ever released on ROM, probably due to the 16K size limit and the fact that very few CPC users owned a ROMBoard.
  
 
== The Hardware ==
 
== The Hardware ==
Line 60: Line 62:
 
The following is a list ROM images available for the CPC. This does not include cartridge ROMs, which cannot be used in a standard ROMBoard or printer ROMs which are also of no use in a ROMBoard. Further information regarding cartridge ROMs can be found [[Plus_System_Cartridge|here]] and printer ROMs can be found [[Amstrad/Schneider_Printer_Resources|here]].
 
The following is a list ROM images available for the CPC. This does not include cartridge ROMs, which cannot be used in a standard ROMBoard or printer ROMs which are also of no use in a ROMBoard. Further information regarding cartridge ROMs can be found [[Plus_System_Cartridge|here]] and printer ROMs can be found [[Amstrad/Schneider_Printer_Resources|here]].
  
= Lower ROMs =
+
=== Lower ROMs ===
  
  
Line 67: Line 69:
 
* [[Firmware|CPC 464 Modified OS]] (19xx)(Da)
 
* [[Firmware|CPC 464 Modified OS]] (19xx)(Da)
  
* [[Firmware|Cpc 664 OS]] (1985)([[Amstrad|Amstrad]])
+
* [[Firmware|CPC 664 OS]] (1985)([[Amstrad|Amstrad]])
  
 
* [[Firmware|CPC 464+ and 6128+ OS]] (1991)([[Amstrad|Amstrad]] - [[Locomotive_Software|Locomotive]])
 
* [[Firmware|CPC 464+ and 6128+ OS]] (1991)([[Amstrad|Amstrad]] - [[Locomotive_Software|Locomotive]])
Line 73: Line 75:
 
* CPC 464+ Plus A2 (1991)([[Amstrad|Amstrad]] - [[Locomotive_Software|Locomotive]])
 
* CPC 464+ Plus A2 (1991)([[Amstrad|Amstrad]] - [[Locomotive_Software|Locomotive]])
  
* [[Firmware|CPC 6128 OS]] (1985)([[Amstrad|Amstrad]] - [[Locomotive_Software|Locomotive]])
+
* [[Firmware|CPC 6128 OS English]] (1985)([[Amstrad|Amstrad]] - [[Locomotive_Software|Locomotive]])
  
* [[Firmware|CPC 6128 OS]] (1985)([[Amstrad|Amstrad]] - [[Locomotive_Software|Locomotive]])(Fr)
+
* [[Firmware|CPC 6128 OS French]] (1985)([[Amstrad|Amstrad]] - [[Locomotive_Software|Locomotive]])
  
* [[Firmware|CPC 6128 OS]] (1985)([[Amstrad|Amstrad]] - [[Locomotive_Software|Locomotive]])(Sp)
+
* [[Firmware|CPC 6128 OS Spanish]] (1985)([[Amstrad|Amstrad]] - [[Locomotive_Software|Locomotive]])
  
  
= BASIC ROMs =
+
=== BASIC ROMs ===
  
 
* [[Locomotive_BASIC|CPC 464 Basic]] (1985)([[Amstrad|Amstrad]])
 
* [[Locomotive_BASIC|CPC 464 Basic]] (1985)([[Amstrad|Amstrad]])
Line 94: Line 96:
 
* [[Locomotive_BASIC|CPC 6128 Basic Spanish]] (1985)([[Amstrad|Amstrad]] - [[Locomotive_Software|Locomotive]])
 
* [[Locomotive_BASIC|CPC 6128 Basic Spanish]] (1985)([[Amstrad|Amstrad]] - [[Locomotive_Software|Locomotive]])
  
= DOS Roms =
+
=== DOS Roms ===
  
* Amsdos 720K (19xx)
+
* AMSDOS 720K (19xx)
  
 
* [[AMSDOS|CPC 664 Amsdos]] (1985)([[Amstrad|Amstrad]])
 
* [[AMSDOS|CPC 664 Amsdos]] (1985)([[Amstrad|Amstrad]])
Line 125: Line 127:
  
  
= Alternative OS ROMs =
+
=== Alternative OS ROMs ===
  
* [[CP/M|CPM+]] #1 (1988)(Graduate Software - [[Digital_Research|Digital Research]] - [[Amstrad|Amstrad]])
+
* [[CP/M|CPM+]] (1988)(Graduate Software - [[Digital_Research|Digital Research]] - [[Amstrad|Amstrad]])
  
 
* CPM Accessory ROM 1 (1988)(Graduate Software)
 
* CPM Accessory ROM 1 (1988)(Graduate Software)
  
* Vorax's CPM Plus ROM #1 (19xx)(Graduate - Vorax)
+
* Vorax's CPM Plus ROM (19xx)(Graduate - Vorax)
  
 
* [[FutureOS|FutureOS]] ([[FutureSoft|FutureSoft]])
 
* [[FutureOS|FutureOS]] ([[FutureSoft|FutureSoft]])
Line 137: Line 139:
 
* [[Symbos|SymbOS]] ([[Prodatron|Prodatron]])
 
* [[Symbos|SymbOS]] ([[Prodatron|Prodatron]])
  
= Background Utilities =
+
=== Background Utilities ===
  
 
* Amstrad Toolkit v1.4 (1986)([[Beebugsoft|Bee Bug Soft]])
 
* Amstrad Toolkit v1.4 (1986)([[Beebugsoft|Bee Bug Soft]])
Line 179: Line 181:
 
* [[Masterfile_464|Master File 464 v1.1]] (1984)([[Campbell_Systems|Campbell Systems]] and [[Amsoft|Amsoft]])
 
* [[Masterfile_464|Master File 464 v1.1]] (1984)([[Campbell_Systems|Campbell Systems]] and [[Amsoft|Amsoft]])
  
* Micro Style ROM v2.11 (1989)(Micro Style - PotPlant Systems)
+
* Micro Style ROM v2.11 (1989)([[Microstyle|Micro Style]] - PotPlant Systems)
  
 
* [[Nirvana|Nirvana 1.1]] (1990)([[Goldmark_Systems|GoldMark Systems]])
 
* [[Nirvana|Nirvana 1.1]] (1990)([[Goldmark_Systems|GoldMark Systems]])
Line 220: Line 222:
  
  
= Full Programs =
+
=== Full Programs ===
  
 
* [[BrunWord|BrunWord]] ([[Brunning_Software|Brunning Software]])
 
* [[BrunWord|BrunWord]] ([[Brunning_Software|Brunning Software]])
Line 234: Line 236:
 
* [[STarKos|STarKos]] ([[Arkos|Arkos]])
 
* [[STarKos|STarKos]] ([[Arkos|Arkos]])
  
= Hardware ROMs =
+
=== Hardware Dependent ROMs ===
  
 
These ROMs were usually integrated in specific hardware devices and will usually require the associated hardware to function correctly.
 
These ROMs were usually integrated in specific hardware devices and will usually require the associated hardware to function correctly.

Revision as of 08:45, 25 August 2011

A conventional ROMBoard for six expansion ROMs


What Exactly are Internal and Expansion ROMs

The CPC hardware is designed to (theoretically) take up to 256 external ROMs, each ROM can be up to 16K and are numbered starting from 0. Each ROM can contain one or more programs or utilities. These ROMs are known as Upper ROMs. The programs are started using an "RSX" command: ie: A command with the bar "|" in front - eg: the command |M is used to to start Maxam. Standard ROMBoards such as the Rombo ROMBox or modern solutions such as Inicrons ROM-RAM-Box or the MegaFlash allow you to attach and use these ROM programs on a CPC. Older ROMBoards usually only supported 6 or 8 ROMs and each ROM was an individual EPROM chip. Whereas modern versions (SF2, ROM-RAM-Box, Ram7s RamCard, MegaROM, MegaFlash) support up to 32 ROMs and have combined several virtual ROMs within a single larger chip.

Many programs and utilities were released on ROM for three good reasons:

  • They start instantly, because they don't actually need to be loaded.
  • They are always present in the background and can be called/started without needing to insert a disk or tape - Useful for utilities such as Basic extensions or Disc utilities.
  • They usually run directly from the ROM, not from RAM, so the RAM is still 99.9% empty - Useful for text editors and compilers because the RAM is free to be used for data.

No games were ever released on ROM, probably due to the 16K size limit and the fact that very few CPC users owned a ROMBoard.

The Hardware

The MegaFlash - A 32 Position combined ROMBoard

The CPC can choose which ROM chip is associated with the 16K area starting at &C000. This is usually the reserved for the contents of the screen (RAM), but the address range is shared with ROM Memory.

On start up, the CPC checks whether any ROMs are installed using the "KL_ROM_WALK" firmware routine. The CPC464 only checks for ROMs in positions 7-0, but the 6128 checks for ROMs in positions 15-0. The ROMs are scanned in the reverse order starting from 7 or 15 depending on the CPC type. If a ROM is present, the CPC reads what commands the ROM offers and saves them in a table in RAM.

Further detailed information on the ROM bank numbering can be found here

A full list of all ROMBoards available for the CPC can be found here

The plans for many DIY ROMBoards can also be found here



Reserved ROM Numbers

There are two special ROM positions: ROM 0 is reserved for Basic (known as a type &80 ROM - Foreground ROM) and ROM 7 is reserved for the Disc Operating System - Not present on a 464, AMSDOS on a 6128. The CPC464 has one internal upper ROM (ROM 0) which can be overwritten by a ROMBoard to replace Basic. The 6128 has internal ROMs 0 and 7 (0 can be overwritten but not 7). The CPC Plus series can overwrite both 0 and 7. The Plus CPCs don't have internal ROMs, it was "out-sourced" to the Cartridge. The cartridge is actually situated in ROM positions 128 onwards, but the ASIC in the Plus re-maps the cartridge ROMs to 0 and 7 for compatibility.

Lower ROMs

FO-DOS - A Lower ROM expansion used to replace the internal Firmware

A further ROM is present inside the CPC. This Firmware ROM is in all CPCs, but is mapped to a different area of memory and also doesn't have a ROM Number. It's also possible to overwrite this ROM externally, however this can't be done with a standard ROMBoard, only with Lower ROM expansion such as FO-DOS









Available ROMs

The following is a list ROM images available for the CPC. This does not include cartridge ROMs, which cannot be used in a standard ROMBoard or printer ROMs which are also of no use in a ROMBoard. Further information regarding cartridge ROMs can be found here and printer ROMs can be found here.

Lower ROMs


BASIC ROMs

DOS Roms

  • AMSDOS 720K (19xx)
  • NigDOS 2.24 (1988)


Alternative OS ROMs

  • CPM Accessory ROM 1 (1988)(Graduate Software)
  • Vorax's CPM Plus ROM (19xx)(Graduate - Vorax)

Background Utilities

  • Booster ROM (WSX)
  • Copymate + v3.2 (1990)(Marco Vieth)(De)
  • Disc Power (19xx)
  • DOS Copy v1.3 and Crime v1.3 (1991)
  • Dragon Breed Rom 1 (19xx)(Dragon Breed)
  • Kns ROM 6128 v1.01 (1989)(MFW)
  • Micro Style ROM v2.11 (1989)(Micro Style - PotPlant Systems)
  • Programmer's Toolbox 1.0a (19xx)
  • Programmers Tool Box v1.2a (19xx)
  • Super Rom v1.0 (1991)(Vorax)
  • T3m ROM (19xx)
  • UNCR v2.4 - Cruncher Accessory ROM for CPM (1988)(Graduate Software)
  • Utility Suite (19xx)

Language Compilers


Full Programs

Hardware Dependent ROMs

These ROMs were usually integrated in specific hardware devices and will usually require the associated hardware to function correctly.

  • Softbrenner 1.27 (WSX)
  • Vortex RAM - Expansion Card ID (19xx)(Vortex)(De)