Changes
fix table formatting
To get their CPM you were required to send them your system discs and essentially they provided a transfer service so they didn't infringe on Digital Research's copyright or distribution policy.
The ROM they provided had your address and serial number encoded on the ROM. A script has been written to update these details which can be downloaded from [https://github.com/cormacj/AmstradCPCRomHacks here].
== RSX/ROM Commands ==
* |PASSWORD - this gives a "?" prompt CPM+ is stored in ROM 2 and asks you is copied into RAM. It appears to enter copy the passwordequivalent of the EMS file but with patches.* AMSDOS ROM is required for the final part of the boot process.
== Accessory/Utility ROM ==
[[TFM]] has written ROMManager which can create these accessory ROMs and he provides downloads on his website for some that he has made himself.
[[User:Cormacj|CormacJ]] has written a python script to create accessory ROMS and also extract .COM files from ROMS. You can view this at his [https://github.com/cormacj/AmstradCPCRomHacks?tab=readme-ov-file#make_accessory_rompy AmstradCPCRomHacks] repository
Some emulators don't support the accessory ROMs because of the non-standard format. Arnold and Caprice32 supports these.
=== Structure of a utility ROM ===
|-
| &10
| 3222
| Extension ROM name (note 2)
|-
1. Identification: "Graduate (C)1988". Only the first char 'G' is checked.
2. Accessory ROM name is ASCII string terminated with '$'. Graduate's Accessory ROM 1 is called "CP/M Accessory Rom 1\r\n$". You need to provide a description. At a minimum '$' on it's own is ok. The code displays the string and doesn't check if it goes past the space allocated in the ROM. Some documentation notes that this can be 32 characters long, but the Graduate Software roms will only display up to 22 characters.
3. Loading code is required. A dissassembly is shown below. The CP/M ROM executes it. Code is copied from &c070 (length &200) to &3f70 in RAM therefore copying both the loading code and the directory.
The name, address and serial number of the registered user is stored in ROM 1 at offset &3f00. It uses a simple encryption by XORing bytes with &4E.
== Password ==
The password for |PASSWORD is ''SPLINTER''
This is stored in ROM 1 at offset &3f88. It uses a simple encryption by XORing bytes with &AA.
== Links ==
* [[http://futureos.cpc-live.com/ Future OS website, home of ROM Manager and TFM's Accessory ROMs]]
* [https://github.com/cormacj/AmstradCPCRomHacks Python scripts to build your own accessory roms and to patch the CPM rom to update user, address, serial and password message]
[[Category:Operating System]][[Category:Expansion ROM]][[Category:CP/M]]