CPCWiki forum

General Category => Technical Support - Software related => Topic started by: JonB on 15:01, 02 March 17

Title: FID file support in CPC6128 CP/M Plus 1.0
Post by: JonB on 15:01, 02 March 17
Hi

Does CP/M Plus v1.0 on the CPC6128 support FID files? I'm guessing not, but I thought I'd ask anyway.

According to JE's site:
Quote from: www.seasip.info
Versions known to support FID files are 1.7H, 1.11+ and 2.9+.

But it doesn't say what machines these versions are for.

The other thing I wanted to ask is what is the latest 6128 CP/M and where can I download it from?

Cheers
JonB
Title: Re: FID file support in CPC6128 CP/M Plus 1.0
Post by: JonB on 15:15, 02 March 17
I did find this http://www.cpcwiki.eu/index.php/System_Disk


The English and French disks have CPM v1.0
The German disk has v1.1 (but I expect the language is German for the OS messages)


I think I am looking for the latest English version...
Title: Re: FID file support in CPC6128 CP/M Plus 1.0
Post by: PulkoMandy on 08:58, 03 March 17
It seems (according to http://www.seasip.info/Cpm/xbiosint.html) that there was only version 1.0 released for the CPC. This means no FID files.


On the CPC, you will probably need to either patch the XBIOS (http://www.seasip.info/Cpm/xbios.html), or maybe it is possible to just override AMSDOS RSXs for disk access and get CP/M to use those.



Title: Re: FID file support in CPC6128 CP/M Plus 1.0
Post by: JonB on 19:48, 06 March 17
Hi


It seems that 1.1 is the latest version (it's on the German white labelled disks) but it has no FID support either.


Having reviewed the pages you linked to, one thing looks particularly interesting:
However, as a complete newbie to CPC internals, I'm at a bit of a loss as to how to start. Where can I find out more?
Title: Re: FID file support in CPC6128 CP/M Plus 1.0
Post by: arnoldemu on 20:10, 06 March 17
Quote from: JonB on 19:48, 06 March 17
Hi


It seems that 1.1 is the latest version (it's on the German white labelled disks) but it has no FID support either.


Having reviewed the pages you linked to, one thing looks particularly interesting:

       
  • It says that CPM is running as an application under the CPC ROM and that suggests we can implement a ROM patch and it might work under CP/M and AMSDOS.
However, as a complete newbie to CPC internals, I'm at a bit of a loss as to how to start. Where can I find out more?
I don't think that will work. The firmware "CAS" functions used for reading/writing files are not used by CPM.
So there are no obvious places to patch.

For the cpc the following happens on cpm+:

User types |CPM to boot CPM. This is a command inside the AMSDOS rom in the 6128.
This loads track 0 sector 41 on drive A. Then this reads the directory from track 2 sector 41-45. It locates a file ending with "EMS" and sector loads it into memory at &c00. It performs some initial setup (key translation etc), then runs the code.

The EMS file copies bits of data around memory and some into the extra 128KB memory. It uses C1 configuration (which maps the 4th block of extra 64kb to c000. An equivalent is c7 which maps 4th block to 4000.)

The firmware does exist at &b000-&c000, but it appears to be mostly used for writing to the screen and that kind of thing. I don't believe the sector reading functions in the AMSDOS rom are used, and these are not available in the firmware jumpblock so you can't patch them. The disc reading is re-implemented in the ems file. It appears most of the code around &c000-&ffff is the core cpm code.

I haven't worked it all out yet, it does a lot of copying data around.

CPM 2.2 is a little bit different:

|CPM is used and like cpm+ this loads track 0 sector 41 into memory. wboot etc is copied from AMSDOS to RAM.
EDIT: Track 0 sector 42 is loaded. This configures keyboard, colours, sign on message, serial interface (if connected), disc parameters (motor on timeout, motor off timeout) and sets up initial command buffer for cpm. wboot is executed. This loads sectors from disc and locates them at &9700 in ram. Firmware jumpblock is still there. Screen is at &c000-&ffff. The remaining boot process sets up 0005 etc for cpm to use.

I recommend trying cpm 2.2 first and patching it as you do with the other cpm machines. This is possible because wboot and other vectors are in ram around &be00. Some of cpm did has been dissassembled.


When I find more I'll let you know.

I wish I had kept the CPC CPM "bible" now -> http://www.cpcwiki.eu/index.php/The_Amstrad_CP/M_Plus (http://www.cpcwiki.eu/index.php/The_Amstrad_CP/M_Plus)
I am fairly sure this would have told you all you need to know.

I don't know if there is a scanned version available and it was quite a thick book. So without it, back to reverse engineering what the cpm stuff is doing.

If you want to eventually boot from uide16 you'll probably need to implement your own ROM for CPC which you can use to start and load cpm from your uide16.
Title: Re: FID file support in CPC6128 CP/M Plus 1.0
Post by: FloppySoftware on 21:40, 06 March 17
http://www.pcwwiki.amstrad.es/doku.php?id=es:cp_m_plus_handbook_-_operator_s_and_programmer_s_guide_for_the_amstrad_cpc6128_and_pcw8256 (http://www.pcwwiki.amstrad.es/doku.php?id=es:cp_m_plus_handbook_-_operator_s_and_programmer_s_guide_for_the_amstrad_cpc6128_and_pcw8256)

Another book.


;)
Title: Re: FID file support in CPC6128 CP/M Plus 1.0
Post by: JonB on 21:51, 06 March 17
Ah great stuff!


So you think it should acceptable to patch 2.2 first? I thought no one used it (apart from Bryce, as he told me the other day).


Ok, I can do that. I already looked at its BIOS jump table and I know it has MOVCPM and SYSGEN. Hopefully I can port XDRIVER v1.9 across (this is the extended 2.2 driver with on-demand drive mapping and access to master and slave devices if connected).


I definitely need help with CPM Plus and AMSDOS, though. Please keep it coming! :)
Title: Re: FID file support in CPC6128 CP/M Plus 1.0
Post by: JonB on 12:39, 07 March 17


@FloppySoftware (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1162) : The PDF is good but hasn't got much BIOS detail in it which is what I need. Thanks for the link though.


@arnoldemu (http://www.cpcwiki.eu/forum/index.php?action=profile;u=122) : I have just ordered a copy from a used book seller on Amazon for about £10. Unobtanium? Not so far.. ;)
Title: Re: FID file support in CPC6128 CP/M Plus 1.0
Post by: arnoldemu on 14:49, 07 March 17
Quote from: JonB on 21:51, 06 March 17
Ah great stuff!


So you think it should acceptable to patch 2.2 first? I thought no one used it (apart from Bryce, as he told me the other day).
Not sure how many people use it, but for simplicity it may be the best to go for while the info you need for cpm+ is on it's way or being worked out :)

You may find the same solution works on cpm+.

Looking at cpm+ it looks like you can do it the same way if you need to.

There is a similar trampoline function but this one works with banked ram, but the bits are in the same place.


Title: Re: FID file support in CPC6128 CP/M Plus 1.0
Post by: JonB on 10:35, 20 March 17

Regarding "The Amstrad CP/M Plus" by David Powys-Lybbe & Andrew RM Clarke.

The book turned up and I have had a chance to review the BIOS information presented therein.
I don't think this book is much use to me. It appears to be more interested in documenting the BDOS calls than giving any information about patching the BIOS. In that regard it adds no value (to me).

Moreover, their statement in Appendix C suggests that they have not attempted a workaround to the "standard CP/M Plus patch technique".
Title: Re: FID file support in CPC6128 CP/M Plus 1.0
Post by: HAL6128 on 20:41, 20 March 17

Dobbertin used to provide in the eighties some drivers for their NON-IDE (SASI?) Harddiscs (CPM2.2 and CPM+). Maybe disassembling those drivers might help to find another way?
http://www.cpcwiki.eu/index.php/Dobbertin_Harddisc

Powered by SMFPacks Menu Editor Mod