HDCPM - boot and run CP/M plus from hard disk

Started by d_kef, 17:48, 30 December 21

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

d_kef

Thanks Prodatron.
I thought I'd give it a try before asking for help and it seems that my limited experience with VB was enough to help write a few lines of code in Quigs.
I didn't use any inline assembly code. I tried but failed badly.
With assembly the file creation would probably be faster.


d_kef

JonB

@d_kef

I'm a bit late to the party, but I have to say this looks pretty cool.

Can you tell me what I/O addresses the software is using to access the IDE device? As it's CPC I'd expect to see 16 bit addresses. The point I'm getting at is whether or not it is compatible with uIDE-16 (the IDE interface I designed for the 6128 that didn't really catch on becasue I couldn't write drivers for the CP/M Plus implementation)...

The uIDE-16 ports are declared somewhere in the CPCWiki hardware section (couldn't find it today, it is in a huge table), but for reference they are as follows:

CF_BASE      .EQU   0FEF0h      ; IDE I/O Base address
CF_DATA      .EQU   CF_BASE      ; data port
CF_FEATURES   .EQU   CF_BASE+1   ; features (write)
CF_ERROR   .EQU   CF_BASE+1   ; error (read)
CF_SECCOUNT   .EQU   CF_BASE+2   ; multiple sector read count
CF_SECTOR   .EQU   CF_BASE+3   ; sector number
CF_CYL_LOW   .EQU   CF_BASE+4   ; track number, low byte
CF_CYL_HI   .EQU   CF_BASE+5   ; track number, high byte
CF_HEAD      .EQU   CF_BASE+6   ; head number
CF_LBA0      .EQU   CF_BASE+3   ; LBA address, byte 0
CF_LBA1      .EQU   CF_BASE+4   ; LBA address, byte 1
CF_LBA2      .EQU   CF_BASE+5   ; LBA address, byte 2
CF_LBA3      .EQU   CF_BASE+6   ; LBA address, byte 3
CF_COMMAND   .EQU   CF_BASE+7   ; command register (write)
CF_STATUS   .EQU   CF_BASE+7   ; status register (read)

That said, they are also programmable on the board via jumpers, so you can use any base address you want. In other words, what we see here is the default configuration I chose so as to not clash with other peripherals.

d_kef

Quote from: JonB on 14:13, 06 February 22
@d_kef

I'm a bit late to the party, but I have to say this looks pretty cool.

Can you tell me what I/O addresses the software is using to access the IDE device? As it's CPC I'd expect to see 16 bit addresses. The point I'm getting at is whether or not it is compatible with uIDE-16 (the IDE interface I designed for the 6128 that didn't really catch on becasue I couldn't write drivers for the CP/M Plus implementation)...

The uIDE-16 ports are declared somewhere in the CPCWiki hardware section (couldn't find it today, it is in a huge table), but for reference they are as follows:

CF_BASE      .EQU   0FEF0h      ; IDE I/O Base address
CF_DATA      .EQU   CF_BASE      ; data port
CF_FEATURES   .EQU   CF_BASE+1   ; features (write)
CF_ERROR   .EQU   CF_BASE+1   ; error (read)
CF_SECCOUNT   .EQU   CF_BASE+2   ; multiple sector read count
CF_SECTOR   .EQU   CF_BASE+3   ; sector number
CF_CYL_LOW   .EQU   CF_BASE+4   ; track number, low byte
CF_CYL_HI   .EQU   CF_BASE+5   ; track number, high byte
CF_HEAD      .EQU   CF_BASE+6   ; head number
CF_LBA0      .EQU   CF_BASE+3   ; LBA address, byte 0
CF_LBA1      .EQU   CF_BASE+4   ; LBA address, byte 1
CF_LBA2      .EQU   CF_BASE+5   ; LBA address, byte 2
CF_LBA3      .EQU   CF_BASE+6   ; LBA address, byte 3
CF_COMMAND   .EQU   CF_BASE+7   ; command register (write)
CF_STATUS   .EQU   CF_BASE+7   ; status register (read)

That said, they are also programmable on the board via jumpers, so you can use any base address you want. In other words, what we see here is the default configuration I chose so as to not clash with other peripherals.


HDCPM ROM is indeed using 16 bit adresses. It is compatible with Symbiface II.
Other hardware that uses the same addresses (like the X-Mass) should also be working but it's not been fully tested yet.
I use a DIY SF2 compatible CF card interface and it's working just fine.


d_kef




Prodatron

#53
I wonder if the uIDE-16 would work as a SYMBiFACE II IDE clone (like the X-MASS but with real 16bit support for IDE devices), if the base address is set to #FD08?
I didn't test it, but it seems, that at least my driver doesn't use these #fd06/#fd07 (digital output, drive address) ports, so maybe it will just work.

Then uIDE-16 it could be used for HDCPM as well, and even for UniDos?

I still have the uIDE-16 for the CPC laying around but didn't test it yet, but I should do it (the uIDE-8 works great with my PCW).

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

JonB

Do bear in mind that the 16 in uIDE-16 refers to the 16 bit I/O address decoding, not the data path width. It still requires the CF card / DOM to run in 8-bit transfer mode to work.

@Prodatron please do some testing with it and let us know how you get on. I'm a bit stuck for time at the moment!

d_kef

#55
Quote from: Prodatron on 23:15, 06 February 22
I wonder if the uIDE-16 would work as a SYMBiFACE II IDE clone (like the X-MASS but with real 16bit support for IDE devices), if the base address is set to #FD08?
I didn't test it, but it seems, that at least my driver doesn't use these #fd06/#fd07 (digital output, drive address) ports, so maybe it will just work.

Then uIDE-16 it could be used for HDCPM as well, and even for UniDos?

I still have the uIDE-16 for the CPC laying around but didn't test it yet, but I should do it (the uIDE-8 works great with my PCW).


HDCPM uses the digital output register (#fd06) for sending a soft reset request to the hard disk.
I know that a CF card just ignores it and probably a true IDE HD doesn't need it.
I could send a ROM that doesn't use DOR to anyone willing to test it with uIDE-16.


d_kef

angelcaio

#56
Finally, after reformatting the DOM to FAT16 and recopying the SYMBOS files plus the four CPMDSK0x.IMG files, it works. CP/M Plus with four partitions of 8 mb each and SYMBOS coexisting in the same DOM!



d_kef

Quote from: angelcaio on 19:14, 13 February 22Finally, after reformatting the DOM to FAT16 and recopying the SYMBOS files plus the four CPMDSK0x.IMG files, it works. CP/M Plus with four partitions of 8 mb each and SYMBOS coexisting in the same DOM!

I'm glad it works!
I think this is the first proof of concept with a real X-Mass. Well done!

d_kef

HAL6128


I'm trying to find Dobbetin's PATCH30 utility but I can't find it. Is is somewhere to download from?
Quote from: d_kef on 18:11, 10 January 22
Funny....I just found that yesterday...
In fact I did some tests and it seems that Dobbertin's version is compatible also with D'ktronics RAM disk (or at least WinAPE's implementation of D'ktronics RAM disk).
HDCPM v1.00 is not able to detect the Dobbertin driver but it'll be relatively easy to include support for it in v1.01.
Also the RAM drive letter is C: in CP/M 2.2 and M: in CP/M Plus.
You can still use it with HDCPM v1.00 but you can't change the drive letter (M:)
I used the Dobbertin's PATCH30 utility and was able to produce a working C10CPM3.EMS system file. I then used HD manager to transfer the file to my hard disk and it works just fine.


d_kef

...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

d_kef

Quote from: HAL 6128 on 18:08, 20 February 22
I'm trying to find Dobbetin's PATCH30 utility but I can't find it. Is is somewhere to download from?


It's here in the dobbertin512.zip file.


d_kef

HAL6128

...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

angelcaio

Quote from: HAL 6128 on 18:08, 20 February 22
I'm trying to find Dobbetin's PATCH30 utility but I can't find it. Is is somewhere to download from?


I have installed the CP/M Plus version of Vortex on my CPC464 with X-Mass and X-Mem and it works very well for me, both the 704  Kb drive B: without load SETB.COM, and the RAM disk M: of 444kb.
https://www.cpcwiki.eu/forum/applications/cpm-plus-or-patch-with-80-track-(704k)-support/msg116791/#msg116791


angelcaio

Hello, Does anyone know of a utility for CP/M similar to NSWEEP (https://www.cpcwiki.eu/forum/applications/nsweep-a-cpm-file-manager/msg179994/#msg179994) but multivolume?
to back up partitions using multiple floppy disks.
Or another similar utility that does this, like ARJ.EXE or AIN.EXE in MS/DOS (Or BACKUP.EXE...)
Thanks in advance.

GUNHED

What do you mean by Multivolume? Different source devices at the same time? Well, this can do the filecopy of FutureOS, but not with X-Mass. Nothing else I would know on CPC for more than one source of files.
If I misunderstood you then NSweep.COM actually can log different source devices and users. It has an help function.
http://futureos.de --> Get the revolutionary FutureOS (Update: 2022.03.09)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

angelcaio

Quote from: GUNHED on 19:06, 11 March 22What do you mean by Multivolume? Different source devices at the same time? Well, this can do the filecopy of FutureOS, but not with X-Mass. Nothing else I would know on CPC for more than one source of files.
If I misunderstood you then NSweep.COM actually can log different source devices and users. It has an help function.
rather say a copy of content of a partition occupying several destination diskettes like the -v option of arj.exe

d_kef

Coming soon in a CPC near you.  ;D


HAL6128

#66
Wow, looks promising!
Is it possible to (re)use the images from other mass storages?
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

d_kef

Quote from: HAL6128 on 11:27, 15 March 22Wow, looks promising!
Is it possible to (re)use the images from other mass storages?
Absolutely! The images are independent of the mass storage interface and the medium format (FAT16/FAT32).
The difference with the M4 is that you can't have real CP/M partitions.

d_kef

d_kef

Next version of HDCPM will be released soon.
I've added support for M4 board and for uIDE-16 but I've only tested it with the M4.
Any uIDE-16 owner willing and having time to test it please PM me.

d_kef

d_kef

Quote from: angelcaio on 17:28, 10 March 22Hello, Does anyone know of a utility for CP/M similar to NSWEEP (https://www.cpcwiki.eu/forum/applications/nsweep-a-cpm-file-manager/msg179994/#msg179994) but multivolume?
to back up partitions using multiple floppy disks.
Or another similar utility that does this, like ARJ.EXE or AIN.EXE in MS/DOS (Or BACKUP.EXE...)
Thanks in advance.
Try this one. It works just fine.

d_kef

angelcaio

GREAT!!!!!!!!!!
You cannot view this attachment.
May thanks d_Kef 

HAL6128

Just for curiosity. Does the M4 version runs a little bit faster than the other one?
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

d_kef

Quote from: HAL6128 on 20:17, 17 March 22Just for curiosity. Does the M4 version runs a little bit faster than the other one?
I don't think so. CP/M on CPC is quite slow so any speed gain is not noticeable.

d_kef 

GUNHED

Dobbertin somehow made it faster. Their hard-disc access is even more quick than access to the RAM disc. But CPM is CPM.  ;) :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2022.03.09)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

angelcaio

Testing the hard drive under CP/M+.
Dbase II
1.4MB database with just over 5,000 records of 287 bytes each (some titles are really long)
A global search takes several minutes, but it is amazing to move so much information with a Z80 from 37 years ago
You cannot view this attachment. You cannot view this attachment. You cannot view this attachment. You cannot view this attachment.

Powered by SMFPacks Menu Editor Mod