Hi,
Is there any way I can make a custom format CP/M 720K disk that works on the Amstrad CPC464?
By using ParaDOS I can use 720K disks in BASIC, but they cannot be read in the original CP/M by Amstrad.
Thanks.
Sure, try RAMDOS (http://www.cantrell.org.uk/david/tech/cpc/ramdos/).
Cheers
Remember that the original CP/M has not idea about 720K formatted discs even with ROMDOS/RAMDOS and defaults to 180K for both drives.
You can create a patched version of CP/M to use drive "B" as 720K, but only 180K for drive "A" (I should know as I bought the ROMDOS system when it came out and the instructions said so). The reason being is that AMSDOS at the time could not handle anything more than 180K as drive A since the internal drive was fixed to this format. So when ParaDOS came out some time later it is possible to set up a drive A as 720K but the CP/M boot disk needs to be patched so that it knows that both drives are 720K.
rpalmer
Quote from: HAL 6128 on 21:04, 03 December 17Sure, try RAMDOS (http://www.cantrell.org.uk/david/tech/cpc/ramdos/ (http://www.cantrell.org.uk/david/tech/cpc/ramdos/)).Cheers
I tried to follow the instructions for RAMDOS, but I cannot figure out how to make a working CP/M disk.
Quote from: rpalmer on 21:47, 03 December 17
So when ParaDOS came out some time later it is possible to set up a drive A as 720K but the CP/M boot disk needs to be patched so that it knows that both drives are 720K.
I have only one drive, A. Can you point me in the right direction to create a 720K CP/M boot disk to use with drive A? I am only interested in using more space for my CP/M programs, without the need of a second drive.
Ah, ok. There's a misunderstandig from my side. I thought you wanted to create simple 720k disc on B:, not able to boot CP/M.
With RAMDOS you are only able to read data discs with different formats on B:.
As far as I remember well there are some listings around in old magazines, which shows you patching a CP/M booting from A: or B: without the need of system tracks and a different one (patched) one which is able to read a 720k. But I can't remember which one....
You CANNOT run CP/M from RAMDOS.
The reason is that CP/M is started from the |CPM command which is in ROM and it calls the ROM routines (which also clears memory, hence removing RAMDOS). You would need to patch AMSDOS/ParaDOS ROM to default the Drive A to 720K and patch the .EMS file to let it know that drive B is 720K as well (if desired).
You would end up losing access to 180K discs in drive A with a patched AMSDOS, ParaDOS on the other hand can handle it in BASIC since you can patch data in RAM to determine how the drives are handled.
I am also assuming you have replaced Drive A with a 3.5 inch drive. If its the 3inch version then you again CANNOT make it 720K as the mechanical side of the drive does not allow for shorter head movements to get 80 tracks and definitely only has 1 head and not 2 for double side access.
rpalmer
I just wanted to say that there are double head, 720KB 3" drives.
They were mostly used as second drive on PCWs.
robcfg,
you are correct that they are in PCWs, but were not used in CPCs. They could be installed into a CPC, but don't think many people did, since the more common change nowadays is for 3.5 inch drives.
rpalmer
Absolutely!
But should he have such 3" drive, it would be possible to have a 3" 720kb disk.
Just to not rule out the possibility.
I'm sorry I haven't give you all the detials:
So I have a CPC 464 with a DDI-I interface and one 3.5" floppy. I don't care about the 3" format and the 180K disks.
I want to make a 720K CP/M system disk to be able to fit larger programs onto the disc, such as AZTEC C.
Quote from: rpalmer on 23:44, 03 December 17
You would need to patch AMSDOS/ParaDOS ROM to default the Drive A to 720K and patch the .EMS file to let it know that drive B is 720K as well (if desired).
You would end up losing access to 180K discs in drive A with a patched AMSDOS, ParaDOS on the other hand can handle it in BASIC since you can patch data in RAM to determine how the drives are handled.
How can I achieve that? I use ParaDOS as my default ROM and I've set both drives to DS/DD 80 track, but I don't know how to sysgen on a 720K disk, since my only CP/M system disk is the original one with 180K.
As it has been mentioned above, it will only work with the drive B, but it will work fine :) When we made our adventure, we were trying to fit everything in a single 720KB floppy, but it was not possible to make CP/M use a 720KB drive A. Therefore, the game uses a normal drive A and a 720KB drive B.
I'm not 100% sure, but you can try to load the C10CPM3.EMS via ZSID to address &C00 and then Change the drive and XDPB Parameters at:
;double head drives
&1A1A: call &1F8 ;(Runtime-Address &D5A)
&0EB8: ld a,c ;(Runtime-Addresse &1F8)
res 2,a
or &20
ret
;variable step rate
&18BB: push bc ;(Runtime-Addresse &BFB)
push hl
ld b,0
call &EE2
ld iy,&B0F2
add iy,bc
pop hl
pop bc
ret
&1BA2: ld a,c ;(Runtime-Addresse &EE2)
and &3
ld c,a
ld hl,&EF9
add hl,bc
sla c
ld a,(hl)
ld hl,&B0F1
cp (hl)
ret z
ld (hl),a
ld hl,&AD5
jp &AF2
db &4 ;step rate for drive A:
;apply format
&C30: ld bc,&10A ;Runtime-Address &C30
&CFB: db 'NoMemory',&FF
&D04:
dw &24 ;(Runtime-Address &C0CE)
db &5,&1F,&3 ;XDPB for Drive A: 716k-Format (R1)
dw &B0,&7F ;if Auto Login necessary
db &80,&00 ; -> set Auto login
dw &20,&02
db &2,&3 ;buffer for 350 blocks or 128 dirs
db &1,&50,&9,&1; 512 Bytes per Sector
dw &200
db &2A,&52,&60
db &FF ;<- Auto-Login Flag
Just give it a try with a copy of your C10CPM.EMS... :)
for a patched AMSDOS, there is a DPB (Disk Parameter block) which defines what a disc is formatted to.
The address of the DPB in the KDSROM/AMSDOS ROM is &DF9F
You should see something like:
000141 DF9F ;##############################################################################
000142 DF9F ;
000143 DF9F ; HIGH CAPACITY DISC PARAMETERS BLOCK DATA
000144 DF9F ;
000145 DF9F ; 720K Disk
000146 DF9F ; 4 Kbyte block
000147 DF9F ; Double Sided 80 Track = 160 Tracks (A0H)
000148 DF9F ; 128 Directory Enrties
000149 DF9F ; 2 Reserved Tracks
000150 DF9F ; First Sector = &41 (Same as Drive A System Format)
000151 DF9F ;
000152 DF9F ;##############################################################################
000153 DF9F ;
000154 DF9F ; DATA OFFSET DESCRIPTION
000155 DF9F ;
000156 DF9F 24 DEFB &24 ; 0 RECORDS PER TRACK (LOW BYTE)
000157 DFA0 00 DEFB &00 ; 1 RECORDS PER TRACK (HIGH BYTE)
000158 DFA1 05 DEFB &05 ; 2 LOG2(BLOCK SIZE)-7 (BLOCK SIZE=4096)
000159 DFA2 1F DEFB &1F ; 3 RECORDS PER BLOCK = (BLOCK SIZE/128)-1
000160 DFA3 03 DEFB &03 ; 4 (BLOCK SIZE/N)-1 (N=1024 DSM<256 ELSE N=2048)
000161 DFA4 B0 DEFB &B0 ; 5 NUMBER OF BLOCKS PER DISK (LOW BYTE)
000162 DFA5 00 DEFB &00 ; 6 NUMBER OF BLOCKS PER DISK (HIGH BYTE)
000163 DFA6 7F DEFB &7F ; 7 MAX DIRECTORIES - 1 (LOW BYTE)
000164 DFA7 00 DEFB &00 ; 8 MAX DIRECTORIES (HIGH BYTE)
000165 DFA8 80 DEFB &80 ; 9 AL0 (1 BLOCK)
000166 DFA9 00 DEFB &00 ; 10 AL1
000167 DFAA 10 DEFB &10 ; 11 CHECKSUM VECTOR SIZE (LOW BYTE)
000168 DFAB 00 DEFB &00 ; 12 CHECK SUM VECTOR (HIGH BYTE)
000169 DFAC 02 DEFB &02 ; 13 NUMBER OF RESERVED TRACKS (LOW BYTE)
000170 DFAD 00 DEFB &00 ; 14 NUMBER OF RESERVED TRACKS (HIGH BYTE)
000171 DFAE 41 DEFB &41 ; 15 FIRST SECTOR NUMBER
000172 DFAF 09 DEFB &09 ; 16 SECTORS PER TRACK
000173 DFB0 2A DEFB &2A ; 17 GAP (READ/WRITE)
000174 DFB1 52 DEFB &52 ; 18 GAP (FORMAT)
000175 DFB2 E5 DEFB &E5 ; 19 FILLER BYTE
000176 DFB3 02 DEFB &02 ; 20 SECTOR SIZE (SIZE = 2^(7+NUMBER) = 512)
000177 DFB4 04 DEFB &04 ; 21 RECORDS PER SECTOR (SECTOR SIZE/128)
000178 DFB5 00 DEFB &00 ; 22 CURRENT TRACK
000179 DFB6 00 DEFB &00 ; 23 NOT ALIGNED STATUS
000180 DFB7 00 DEFB &00 ; 24 DPB LOCKED STATUS (&FF=LOCKED, 0=UNLOCKED)
rpalmer
Thank you for your replies, but...
@rpalmer (http://www.cpcwiki.eu/forum/index.php?action=profile;u=379): I think that I do not have to patch AMSDOS because I use ParaDOS that can be set to 720k, correct me if i'm wrong.
@HAL 6128 (http://www.cpcwiki.eu/forum/index.php?action=profile;u=365): I do not have a C10CPM.EMS file and can't really understand how to use it to make a 720k system disk.
Can't I just copy the system sectors from the working 180K CP/M to the 720k CP/M disc somehow?
I tried to sysgen from A: to B:, but it doesn't let me to use B: as a destination and if I insert the 720K disk from B: to A:, it says the format is unrecognized.
Quote from: SilverGreen93 on 20:27, 03 December 17
Hi,
Is there any way I can make a custom format CP/M 720K disk that works on the Amstrad CPC464?
By using ParaDOS I can use 720K disks in BASIC, but they cannot be read in the original CP/M by Amstrad.
Thanks.
For this reason (and many more) I always suggest to use the famous Vortex format, it provides 704 KB on any 3.5" or 5.25" disc (doublesided, 80 tracks). In addition it contains system tracks. It's supported by ParaDOS (please use the VaraDOS instead, it has Vortex format switched on).
Furthermore the great Vortex format is supported by CP/M Plus and CP/M 2.2 (also the 63 KB TPA CPM 2.2). I meant the CP/M versions form Dobbertin. Of course also other DOS ROMs like X-DDOS and V-DOS support Vortex format, even FutureOS does support it. If someone need DSK's then please let me know (exactly what you want). :)
EDIT: Dobbertin DDOS does use 704 KB format on A by default (but I don't have it, because I use a 6128).
Quote from: GUNHED on 14:20, 04 December 17
I always suggest to use the famous Vortex format, it provides 704 KB on any 3.5" or 5.25" disc (doublesided, 80 tracks). In addition it contains system tracks. It's supported by ParaDOS (please use the VaraDOS instead, it has Vortex format switched on).
[...]
If someone need DSK's then please let me know (exactly what you want). :)
If I can enable manually Vortex format with ParaDOS, 704KB sounds excellent. If you have a
bootable 704KB CP/M 2.2 DSK file to share, that would be exactly what I need!
Quote from: SilverGreen93 on 14:23, 04 December 17
If I can enable manually Vortex format with ParaDOS, 704KB sounds excellent. If you have a bootable 704KB CP/M 2.2 DSK file to share, that would be exactly what I need!
For drive A I have to make a DSK from one of my real discs... will take a bit.
Quote from: SilverGreen93 on 12:56, 04 December 17
@HAL 6128 (http://www.cpcwiki.eu/forum/index.php?action=profile;u=365): I do not have a C10CPM.EMS file and can't really understand how to use it to make a 720k system disk.
Can't I just copy the system sectors from the working 180K CP/M to the 720k CP/M disc somehow?
I tried to sysgen from A: to B:, but it doesn't let me to use B: as a destination and if I insert the 720K disk from B: to A:, it says the format is unrecognized.
No.
As soon as you boot CP/M it will initialize a 3" disc (40 tracks / 180kB and so on) on drive A:. This code is inside the boot sector code (first two tracks) and in the C10CPM.EMS. Therefore you have to patch both. (I forgot to mention that you have to patch the boot sector first). You can do the patching stuff with the help of the standard CP/M apps like ZSID / DDT and don't need to compile something. But you need to know what and how to do.
The better choice is and wait until GUNHED will help you with the professional VORTEX solution. VORTEX made some clever hardware / software expansion stuff in the past for the CPC.
I think to use a 720K CPM boot disc from A easily then you will need to use VDOS ROM because this knows the format and will probably allow you to boot into CPM with it (this is guesswork I'd really have to dissassemble the rom to know for sure).
AMSDOS will boot from track 0 sector 41 only. It would be possible with a custom format I think but would be more awkward to use.
Quote from: arnoldemu on 21:48, 04 December 17
I think to use a 720K CPM boot disc from A easily then you will need to use VDOS ROM because this knows the format and will probably allow you to boot into CPM with it (this is guesswork I'd really have to dissassemble the rom to know for sure).
AMSDOS will boot from track 0 sector 41 only. It would be possible with a custom format I think but would be more awkward to use.
Do ParaDOS/VaraDOS boot the CPM from 80t disk? Or only VDOS does?
silvergreen,
I had disassembled the AMSDOS/KDSROM disc rom some decade or so ago. It is not a 100% disassembly, but it goes far more deeply than other version as the comments give more details.
To understand how CP/M is booted see attached listing and goto to label "LC1DC" to see how CP/M starts.
You will see that at this label the start of CP/M downloads the DPB to RAM which defines how CP/M understands disc formats. This is why the ROM needs a patch to make sure that CP/M knows how to read the discs in particular to double sided ones.
CP/M booting makes calls into the DISC ROM to do all of the heavy lifting of disc I/O before the system is up and running and assumes that the RAM is completely free to use as it sees fit.
As for ParaDOS I suspect the boot process has not changed, but I dont know.
rpalmer
I understand.
While I am waiting for GUNHED to share a Vortex CP/M image, I tried VDOS, but all the messages are in German. On the cpcwiki it is said that "Further there were German and English versions of this ROMs.", but I cannot find an English version.
Edit: X-DDOS looks ok, English and feature-rich.
I will test afterwords which of them do boot CP/M.
Quote from: SilverGreen93 on 22:01, 04 December 17
Do ParaDOS/VaraDOS boot the CPM from 80t disk? Or only VDOS does?
VDOS and DDOS can do it (depends on physical drive of course).
Sorry, I'll need some more time for the DSK's, cause I'm off for few days or so.
Quote from: GUNHED on 12:27, 06 December 17
VDOS and DDOS can do it (depends on physical drive of course).
Sorry, I'll need some more time for the DSK's, cause I'm off for few days or so.
If XD-DOS can, it's great! I'll wait for your image with great interest! :D
Not X-DDOS, it's DDOS (different DOS!). Also X-VDOS is not VDOS.
One is for X-drives (means drive B). The other one is for a pack of two drives - 80 tracks, doublesided each.
Quote from: GUNHED on 12:58, 06 December 17
Not X-DDOS, it's DDOS (different DOS!). Also X-VDOS is not VDOS.
One is for X-drives (means drive B). The other one is for a pack of two drives - 80 tracks, doublesided each.
I'm a bit confused now...
I cannot find any DDOS mentioned here> http://www.cpcwiki.eu/index.php/ROM_List
VDOS is only in German, so I won't use it.
DDos from Dobbertin is only running on a CPC 464 System.
xesrjb