News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_d_kef

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

Started by d_kef, 16:48, 30 December 21

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

d_kef

You can try the Dk'tronics patched CPM3SEMI.EMS. Use the HDMGR.COM utility to make your CP/M image bootable with it.
It doesn't check for compatible ROMs.

d_kef

pollito

Thanks for the suggestion, but don't I need a working CP/M Plus environment in order to run the HDMGR.COM program?

It's not possible to start CP/M with |CPM on a 464 with an M4 but no disk interface - it just gives a red screen with a blue border. I think it's because AMSDOS.ROM is trying to access hardware that doesn't exist.

d_kef

Quote from: pollito on 21:24, 03 January 24Thanks for the suggestion, but don't I need a working CP/M Plus environment in order to run the HDMGR.COM program?

It's not possible to start CP/M with |CPM on a 464 with an M4 but no disk interface - it just gives a red screen with a blue border. I think it's because AMSDOS.ROM is trying to access hardware that doesn't exist.
True! My bad  :picard:
I'm attaching a CP/M disk image ready to use.
You can also use the Z3Plus disk image from the HDCPM wiki page.

d_kef

You cannot view this attachment.

pollito

@d_kef you are an absolute legend! Thank you so much!

I managed to compile CP/M Image File Explorer for FreeBSD, and then to get CPM3SEMI.EMS onto CPMDSK01.IMG, but I then got stuck trying to work out how to configure WinAPE to accept the CPMDSK01.IMG!

I will also check out the Z3PLUS image when I have chance.

Thanks again! :D

d_kef

Quote from: pollito on 23:37, 03 January 24but I then got stuck trying to work out how to configure WinAPE to accept the CPMDSK01.IMG!
An .img file is a raw disk image. So you just have to select it as an IDE file  ;)
Then HDCPM will 'think' it's a physical CP/M formatted disk.

d_kef

pollito

Quote from: d_kef on 23:59, 03 January 24
Quote from: pollito on 23:37, 03 January 24but I then got stuck trying to work out how to configure WinAPE to accept the CPMDSK01.IMG!
An .img file is a raw disk image. So you just have to select it as an IDE file  ;)
Then HDCPM will 'think' it's a physical CP/M formatted disk.

d_kef
Thanks for this. I have been playing around with HDCPM in WinAPE now as well as on my CPC, and I have noticed a couple of things:

First of all, on the real CPC, with the RAM board in dk'tronics mode, CP/M gives me a 444K RAM drive. This kind of makes sense because 64K + 512K is 576K, minus the 128K that CP/M uses = 448K (not sure where the other 4K went but never mind  :laugh: ). But in C3 / full shadow mode, the RAM drive is only 254K. This is odd because 512K - 128K = 384K which is way off 254K. Any idea why this would be? It's not a big deal, I am just curious.  :)

Another thing I noticed is that LOGO3.COM on my CPC shows the loading screen, and then returns me to the C> prompt. I tried to reproduce this in WinAPE by setting up a virtual CPC 464 with the HDCPM ROM and the same disk image, but it works fine. The only thing I can think of is that WinAPE emulates a floppy drive (and I can find no way of turning it off), so maybe Logo is checking for the existence of a floppy drive. I thought it was worth pointing out to other users that some CP/M programs may not work without a floppy drive present.

I'm really happy because I can finally use BBC BASIC on my CPC!

d_kef

#206
Quote from: pollito on 08:02, 06 January 24First of all, on the real CPC, with the RAM board in dk'tronics mode, CP/M gives me a 444K RAM drive. This kind of makes sense because 64K + 512K is 576K, minus the 128K that CP/M uses = 448K (not sure where the other 4K went but never mind  :laugh: ). But in C3 / full shadow mode, the RAM drive is only 254K. This is odd because 512K - 128K = 384K which is way off 254K. Any idea why this would be? It's not a big deal, I am just curious.  :)
That's a Dk'tronics RAM driver 'thing'. During the RAM Drive initialization it searches for either a 256K Silicon Disk or a 256K Silicon Disk + a 256K RAM.
So if 512K total expansion RAM is detected it reports a 444K RAM drive + 4K directory =448K. If less than 512K total expansion RAM is detected (the case of full shadow mode) then it reports (and initializes) only what appears to be a 256K Silicon Disk. That is 254K RAM drive + 2K directory = 256K.
There is another possibility: 256K RAM only that gives a RAM drive of 190K
In all combinations the first 64K bank of expanded RAM is used by CP/M as main banked memory.

Quote from: pollito on 08:02, 06 January 24Another thing I noticed is that LOGO3.COM on my CPC shows the loading screen, and then returns me to the C> prompt. I tried to reproduce this in WinAPE by setting up a virtual CPC 464 with the HDCPM ROM and the same disk image, but it works fine.
I never tried LOGO3 with a 464 but now I'm curious...

d_kef

HAL6128

#207
working with Amstrads Logo3 always needs a floppy inserted during booting. (working with a X-Mass with 4 cpm partitions) and booting cpm from an albireo (unidos)  and cpc6128 + 512 ram expansion). I was never able to boot it from harddrive without a disc.
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

pollito

@HAL6128 thank you for confirming this. I'm glad it's not just me!  ;D

Not sure if people are aware but MockbaTheBorg, the creator of RunCPM, has shared his huge CP/M collection here. The folder structure is organised for the layout that RunCPM requires, but I've been having fun diving in, and playing around with some of the software on my CPC.

HAL6128

Nice!!!
Thanks for the link. It's a very huge repository for CPM stuff. I also found the "Colossal Cave Adventure" :)
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

d_kef

Quote from: pollito on 15:10, 23 January 24MockbaTheBorg, the creator of RunCPM, has shared his huge CP/M collection here.
That could certainly make the new feature of the next HDCPM release look more useful!!!

You cannot view this attachment.

d_kef

zhulien

Quote from: pollito on 15:10, 23 January 24@HAL6128 thank you for confirming this. I'm glad it's not just me!  ;D

Not sure if people are aware but MockbaTheBorg, the creator of RunCPM, has shared his huge CP/M collection here. The folder structure is organised for the layout that RunCPM requires, but I've been having fun diving in, and playing around with some of the software on my CPC.
Likewise If you conver the microbee disk images there is likely some good stuff for your cpc here

https://mame.spludlow.co.uk/SoftwareLists.aspx?List=mbee_flop&Exact=true&Page=2

pollito

Just giving an update to report my latest experience on a 464 with an M4 card, 512K RAM expansion, and no FDI-1/DDI-1.

With the M4 ROM moved to slot 6, and the AMSDOS ROM in slot 7, I had a lot of problems with games either crashing on load, or showing strange behaviour. As soon as I removed the AMSDOS ROM and put the M4 ROM back into slot 7, the problem disappeared.

However, HDCPM works fine without the AMSDOS ROM. Even better, having the SymbOS ROMs installed is also fine. Both OSes run perfectly.


This is the ROM layout I'm using:

0  Basic v1.1
1  HDCPM
2  SymbOS A
7  M4
28 SymbOS B
29 SymbOS C
30 SymbOS D
31 OS6128v1.1


CP/M Image File Explorer works fine on FreeBSD 14-RELEASE (amd64) running under XFCE so I'm really happy about that too!

cpcoldie

Hello Fellows!

@ first this is a very impressive work!
Thank you d_kef !!

But I have some problems with the uIDE interface and hdcpm.
I partitioned a DiskOnModule 128MB with 4 8MB partitions.
Then I formated the partitions with HDMGR.COM aso.
Finally the CPC128 boots with the uIDE and the C: Prompt appears (uide_hdcpm-5.jpg).
But as you can see, there is obvious no directory.
I add further pics of the HDMGR outputs.
What I'm doing wrong?
 

d_kef

#214
Quote from: cpcoldie on 01:13, 16 March 24Hello Fellows!

@ first this is a very impressive work!
Thank you d_kef !!

But I have some problems with the uIDE interface and hdcpm.
I partitioned a DiskOnModule 128MB with 4 8MB partitions.
Then I formated the partitions with HDMGR.COM aso.
Finally the CPC128 boots with the uIDE and the C: Prompt appears (uide_hdcpm-5.jpg).
But as you can see, there is obvious no directory.
I add further pics of the HDMGR outputs.
What I'm doing wrong?
 

I think this is the first ever real uIDE installation (at least that I'm aware of).
It seems that you did everything by the book, but I'll ask anyway are you using the latest HDCPM v1.10?
I remember that some early version had a problem with uIDE.
From the last picture I  see that CP/M is coming up normally. That's been done by the ROM.
Next the system is searching for the PROFILE.SUB and it seems to get an I/O error. That's been done by the HDCPM hard disk driver.
All following commands are giving I/O errors instead of "file not found"
So in my opinion either there's a bug in my driver or the DOM is faulty.
I'm going to examine my code again and see if I can find anything but uIDE and SF2 HDCPM drivers are identical (except for the base IO address) and SF2 driver has been reported to work fine with many different compatible interfaces.
It will take some time before I can do that. In the meantime if you have a spare DOM maybe you can try with it.

d_kef

cpcoldie

Hello d_kef,

I tried 2 versions.
First
  hdcpm110.dsk
then
  hdcpm106.dsk
both with the same result.

  And for clearness, I used in this case not the rom-version due to the lack of a rom box.
Maybe this is the issue.
And I have a M4 board with the HDCPM ROM which works as expected (whithout uIDE).
Maybe I miscalculated the size of the partitions.

Cheers
  cpcoldie

d_kef

#216
Quote from: cpcoldie on 13:56, 16 March 24Hello d_kef,

I tried 2 versions.
First
  hdcpm110.dsk
then
  hdcpm106.dsk
both with the same result.

  And for clearness, I used in this case not the rom-version due to the lack of a rom box.
Maybe this is the issue.
And I have a M4 board with the HDCPM ROM which works as expected (whithout uIDE).
Maybe I miscalculated the size of the partitions.

Cheers
  cpcoldie

There is no difference between ROM and BIN. Both share the same routines.
The size of your partitions seems just fine. But you could try to make them a bit bigger.

d_kef

cpcoldie


*


BTW, what does this message mean?
And why is this a warning?

d_kef

#218
Quote from: cpcoldie on 14:33, 16 March 24
*


BTW, what does this message mean?
And why is this a warning?

It means that you asked for image file information (option 3.) but you use real partitions. There is no possibility for virtual/image file disks.
That's only a warning because it is not something critical. It's rather a reminder of your chosen configuration.

d_kef

cpcoldie

Quote from: d_kef on 14:32, 16 March 24And do have a ROM board. It's called M4  ;)
Can you disconnect the M4 and run HDCPM.BIN from floppy?
I want to rule out the possibility of my code getting confused by the 2 interfaces, although that shouldn't be possible.
No, the M4 board is disconnected and I run the HDCPM.BIN from floppy. As mentioned.
And the M4 is not a real rom box as you should know. ;)

BTW: when I try to list the directory with cpmtools of your provided images i get some junk (with your suggested diskdefs):

cpmls -f hdcpm -l -T raw  CPMDSK01.IMG

0:
-r-x------140216563771608 Jan 09 12:41
-r-x------140216563771608 Jan 09 12:41
-r-x------140216563771608 Jan 09 12:41
-r-x------140216563771608 Jan 09 12:41
-r-x------140216563771608 Jan 09 12:41
...
1:
-r-x------140216563771608 Jan 09 12:41
-r-x------140216563771608 Jan 09 12:41
-r-x------140216563771608 Jan 09 12:41 .
-r-x------140216563771608 Jan 09 12:41 !.
-r-x------140216563771608 Jan 09 12:41
-r-x------140216563771608 Jan 09 12:41    >.gqa
-r-x------140216563771608 Jan 09 12:41 |=(?.m
-r-x------140216563771608 Jan 09 12:41 (
mz7@.3
-r-x------      0 Jan 09 12:41 .fmc
-r-x------      0 Jan 09 12:41 2m5m.o&
-r-x------      0 Jan 09 12:41 i!+c.{5
-r-x------      0 Jan 09 12:41 m

2:
-r-x------      0 Jan 09 12:41 .
-r-x------      0 Jan 09 12:41 .
-r-x------      0 Jan 09 12:41 aqa]aiee..
-r-x------      0 Jan 09 12:41 h
                                m".h
-r-x------      0 Jan 09 12:41 yk_cz.]*@
...
aso.


cpcoldie

Now I tried a different DOM.
Same result.

My partitioning proceedure:
sfdisk /dev/sde

Disk /dev/sde: 125 MiB, 131072000 bytes, 256000 sectors
Disk model: DiskOnModule   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x37173dbe

Old situation:

Device     Boot Start    End Sectors  Size Id Type
/dev/sde1  *        0 255999  256000  125M  e W95 FAT16 (LBA)

>>> 1, 16640
Created a new partition 1 of type 'Linux' and of size 8.1 MiB.
   /dev/sde1 :            1        16640 (8.1M) Linux
/dev/sde2: ,16640
Created a new partition 2 of type 'Linux' and of size 8.1 MiB.
   /dev/sde2 :        18432        35071 (8.1M) Linux
/dev/sde3: ,16640
Created a new partition 3 of type 'Linux' and of size 8.1 MiB.
   /dev/sde3 :        36864        53503 (8.1M) Linux
/dev/sde4: ,16640
Created a new partition 4 of type 'Linux' and of size 8.1 MiB.
   /dev/sde4 :        55296        71935 (8.1M) Linux
All partitions used.


The value 16640 comes from bytecount/sectsize = 8519680/512

Is this correct?

d_kef

Regarding cpmtools, I know for sure that the image files are good and I'm prety sure that the diskdefs entry is ok too.
Also your maths are good. That's the correct size for the partitions.
Anyway, I'll check everything again but I don't expect to be near my PC for the next few days as I'm a guest of the infamous Greek NHS.

d_kef

cpcoldie

Hi d_kef,

it's not a doomsday... ;) .

Enjoy the infamousness... ;D

Thanks for your help!

cpcoldie

cpcoldie

#223
Very strange!

With this diskdefs the cpmtools work as expected (at least cpmls and fsck.cpm):

###############
# HDCPM Test
diskdef hdcpmtest1
  seclen 512
  tracks 65
  sectrk 256
  blocksize 8192
  maxdir 1024
  skew 0
  boottrk 5
  os 3                             
end

I found this out with the fsed.cpm.
It counts the tracks not in the way as from the track size expected.
It displays the right offset (131072 (0x00020000)) but jumps to some different location.
And at the directory start it shows:
                                                          Directory area

Byte  655360 (0x000a0000)  Sector  1 (physical  1)  Offset    0  Track    5

e5 e5 e5 e5 e5 e5 e5 e5  e5 e5 e5 e5 e5 e5 e5 e5  ................
e5 e5 e5 e5 e5 e5 e5 e5  e5 e5 e5 e5 e5 e5 e5 e5  ................
e5 e5 e5 e5 e5 e5 e5 e5  e5 e5 e5 e5 e5 e5 e5 e5  ................
e5 e5 e5 e5 e5 e5 e5 e5  e5 e5 e5 e5 e5 e5 e5 e5  ................
e5 e5 e5 e5 e5 e5 e5 e5  e5 e5 e5 e5 e5 e5 e5 e5  ................
e5 e5 e5 e5 e5 e5 e5 e5  e5 e5 e5 e5 e5 e5 e5 e5  ................
e5 e5 e5 e5 e5 e5 e5 e5  e5 e5 e5 e5 e5 e5 e5 e5  ................
e5 e5 e5 e5 e5 e5 e5 e5  e5 e5 e5 e5 e5 e5 e5 e5  ................

Entry  0: Free

Name: eeeeeeee Extension: eee
Extent: 1889 (low: 229, high: 229)
Last extent record count: 229
Last record byte count: 229
Data blocks: 58853 58853 58853 58853 58853 58853 58853 58853

Hmmmmm....
I would say this is a bug in cpmtools...
...but is this bug in amsdos cpm too?
Or is for sectrk just 1 byte reserved?

cpcoldie

#224
Hi d_kef,

I,m a little bit confused.
Wherefrom come the addresses 0x1848,  0x182b, 0x1833, 0x1886 and 0x180d ?
Can't found any references about it.
I would have expected somewhere at 0x05ba, 0x05c5 and 0x061c .


Real_uIDE_Init:
    push de            ;064d
    ld de,CF_BASE        ;064e
    ld (01848h),de        ;0651
    ld de,CF_COMMAND        ;0655
    ld (0182bh),de        ;0658
    ld (01833h),de        ;065c
    ld (01868h),de        ;0660
    ld (01886h),de        ;0664
    ld de,CF_SECCOUNT        ;0668
    ld (0180dh),de        ;066b
    ld de,CF_BASE        ;066f
    ld (00632h),de        ;0672
    ld (00641h),de        ;0676
    ld de,CF_COMMAND        ;067a
    ld (005d7h),de        ;067d
    ld (005f5h),de        ;0681
    ld (005fdh),de        ;0685
    ld (00612h),de        ;0689
    ld de,CF_HEAD        ;068d
    ld (IDE_SetHeadTrkSecSecnt+1),de        ;0690
    pop de            ;0694
    ret            ;0695


Powered by SMFPacks Menu Editor Mod