Changes

Graduate Software

4,768 bytes added, 19 June
Graduate software provided Software was a version of CP/M+ on ROMcompany founded in Bristol by three people including Roger Bamkin and Simon Champion.
Additional 'utility' ROMs contained They provided a version of CP/M programs installed + on a ROM2 16KB ROMs. You could choose which programs you wantedThese were standard CPC firmware compatible ROMs.
These ROMs were available in their own ROM board expansion. 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 one accessory had your address and serial number encoded on the ROM. == RSX/ROM Commands == {| class="wikitable"|-! RSX! Details|-| <nowiki>|EMS</nowiki>| rowspan="2" | Starts CP/M Plus from ROM and shows the CP/M Plus expansion ROMs with their names. CP/M Plus is configured for two drives and the RAM drive C:with 444 KB RAM.|-| <nowiki>|O</nowiki>|-| <nowiki>|PASSWORD</nowiki>| This command asks you for a password. If you enter it three times wrong then CP/M Plus will be started from ROM. The default password in the available 2.34 ROM is <code>SPLINTER</code>|-| <nowiki>|PW</nowiki>| If the password was entered correctly using <nowiki>|PASSWORD</nowiki> then <nowiki>|PW</nowiki> will do nothing. If the password was not entered, or entered incorrectly then it will start CP/M, just like <nowiki>|EMS</nowiki> |-| <nowiki>|OP</nowiki>| This RSX command activates a menu system, which allows you to launch a .COM or .SUB file in an automatic way. An error message will be displayed if there is no .COM or .SUB file on disc. You can choose the file of choice with SPACE and start it with RETURN. CP/M PLUS with the RAM Disc will be started and the selected file will be launched. <p>Note: Some print routine are incompatible, for example this is the case for X-DDOS. Switch off if you find problems.|-| <nowiki>|VER</nowiki>| rowspan="2" | These commands are both identical. They show the Copyright message for CP/M PLUS and the CPM ROMs. Additionally, the serial number and the name of the user is also printed.|-| <nowiki>|CPMVER</nowiki>||-| <nowiki>|MYNAME</nowiki>| Displays the name of the user/buyer of this set of CP/M Plus ROMs on screen.|-| <nowiki>|OHELP</nowiki>| rowspan="2" | These commands are both identical. They list any CP/M Plus expansion ROMs containing programs (if installed). showing their name and position (ROM number). Using <nowiki>|OHELP</nowiki>,number or <nowiki>|EMSHELP</nowiki>,number will display the applications contained in CP/M Plus expansion ROM #number, for example <nowiki>|OHELP,6</nowiki>|-| <nowiki>|EMSHELP</nowiki>||-| <nowiki>|NOCPM</nowiki>| This RSX command will switch OFF the CP/M Plus expansion ROMs. All other ROMs will be initialiized again.|-|} == Technical == * [[CPM_Accessory_ROM_1]]CPM+ is stored in ROM 2 and is copied into RAM. It appears to copy the equivalent of the EMS file but with patches.* AMSDOS ROM is required for the final part of the boot process.
== Accessory/Utility ROM ==
Graduate's ROM based CPM allows CPM software to be installed in special Accessory ROMs. They produced one [[CPM_Accessory_ROM_1]] but you could buy more from them with the programs you wanted to be installed. A utility ROM can exist in any ROM slot from 1 to 15. They - these are the slots checked in ascending orderby the ROM. If  [[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 identification is correct accessory ROMs because of the name is displayednon-standard format. Arnold and Caprice32 supports these.
=== Structure of a utility ROM ===
|-
| &10
| 3222
| Extension ROM name (note 2)
|-
| &30
| 2088| Loading ?|-| &38| 56| startup code (?) (extension ROM has &c9). This is executed.|-| &70| 144| Common code to load files from ROM (note 3)
|-
| &100
| &200
| &3e00
| Data area for files.(note 5)
|}
| 0
| 8
| Filename (note 56)
|-
| 8
| 9
| 2
| address in ROM for start of data for file (note 67)
|-
| 11
| 2
| length in bytes of file
|-
| 13
| 1
| length of filename in chars (excluding padding)
|-
| 14
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 RAMtherefore copying both the loading code and the directory.
;; HL = address of directory entry
3fde c9 ret
;; used? ;; BC = 7F8x with bit 3 clear. bits 1,0 are mode. ;; HL = address to read from ROM
3fdf ed49 out (c),c ;; must enable ROM
3fe1 d9 exx
4. Up to 16 files can be defined. Each file takes 1 entry. Unused entries are filled with &FF.
5. The accessory ROM boot program can be replaced and if needed exended by re-using some of the data area for code. In this case allocate your programs to account for this. 6. Filename is in upper case, 8 characters long, padded with spaces. '.COM' extension is assumed when accessed. 7. ROM starts at &c000. Therefore &c200 is the start of the first file. == Registered user == 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.
6. ROM starts at &c000. Therefore &c200 is the start of the first file.== Links ==
* [[http://futureos.cpc-live.com/ Future OS website, home of ROM Manager and TFM's Accessory ROMs]]* [https://github.com/cormacj/AmstradCPCRomHacks A python script to update the CPM rom user, address, serial and password][[Category:Operating System]][[Category:Expansion ROM]][[Category:CP/M]]
93
edits