avatar_JonB

Who wants IDE drives on the PCW?

Started by JonB, 12:43, 22 January 17

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JonB

Thanks Geoff.


Those notes were written for the CP/M 2.2 xdriver 1.9, and might be out of date for CP/M Plus.  If you want to correct any of it, go ahead.


To be honest I'm pretty new to CP/M Plus. I'm much more knowledgeable about 2.2.

JonB

#101
Oh by the way, I use SET <file>[SYS] to set the system bit, and SET <file>[DIR] to change back. I like to keep it old school..  ;)


But all this makes me wonder. Should we not write up some hints and tips to help people get the most out of their uIDEs? That was the purpose of the shot article on user areas. I'm happy to do it, but what topics do you think pack maximum fun?


1024MAK

You had me doing a double take when I saw this picture...


:laugh: :laugh: :laugh:

Keep on trucking  :P

Mark
Looking forward to summer in Somerset :-)

JonB

Eh? Why...?


Too subtle for me!  ???

1024MAK

Quote from: JonB on 09:36, 23 February 17
Eh? Why...?


Too subtle for me!  ???
I did a double take because I thought you had somehow got a DOM connected via a single row connector  :o

Mark
Looking forward to summer in Somerset :-)

sucram

I am very interested in an IDE adapter for the PCW. But I'm not sure wich version is the best for me. Is it possible to use two or three devices at the expansion port? I also have an DK'tronics joystick and sound adapter and the CPS8256.

JonB



The adapter doesn't have an expansion through connection, so you should fit uIDE-8 internally with a z80 shim. This is how mine is connected, it leaves the expansion port unused.


It is technically possible to have a through port, but I haven't found a suitable parts supplier yet. You need certain edge connectors for this.


PCW owners with no additional stuff to plug into the expansion port may be interested in my z80 bus expansion card and CPS8256 clone, which are in development. See here: http://www.cpcwiki.eu/forum/nc100-nc200-pcw-pda600/serial-parallel-io-via-z80-bus-adapter/


Cheers
JonB

KaosOverride

There is a simple FID for ZX +3 CP/M with a "load from disc" patch and 2 partition support at the zx 8bit IDE interface. In spanish, sorry...
http://www.va-de-retro.com/foros/viewtopic.php?f=62&t=5605


Maybe can be helpful
KaosOverride · GitHub
MEGA Amstrad Public Amstrad folder

sucram

#108
Hello Jon,

many thanks for the answer. I have opened my PCW, the Z80 is socketed. So I will order the assembled uIDE-8 with the assembled left handed Z80 Shim card.

Can other IDE devices be used besides the DOM? (E.g. floppy drives or CD-ROM)


Best regards,
Marcus

JonB

Quote from: KaosOverride on 10:58, 25 February 17
There is a simple FID for ZX +3 CP/M with a "load from disc" patch and 2 partition support at the zx 8bit IDE interface. In spanish, sorry...
http://www.va-de-retro.com/foros/viewtopic.php?f=62&t=5605


Maybe can be helpful


Thanks, I already wrote a PCW FID (with 6 partitions each 8MB), but I'll have a look at the link..


JonB

Quote from: sucram on 11:20, 25 February 17
Hello Jon,

many thanks for the answer. I have opened my PCW, the Z80 is socketed. So I will order the assembled uIDE-8 with the assembled left handed Z80 Shim card.

Can other IDE devices be used besides the DOM? (E.g. floppy drives or CD-ROM)


Best regards,
Marcus


Hello Marcus


Yes, you may be able to use other IDE devices. I only guarantee it will work with the DOM I offer, because I cannot test with every CF card on the market. Some CF cards are not compatible, see the wiki page I wrote for details: http://www.cpcwiki.eu/index.php/UIDE_Universal_IDE_adapter_cards_for_Z-80_computers


uIDE does not support CD-ROMs or other devices. Someone would need to write a driver for that. The key compatibility requirement is IDE-ATA 8 bit mode, which DOMs and CF cards do support, but I am not sure that CD-ROMs support it. I suspect there are some timing considerations too, which might explain why some CF cards don't work with it.


You are welcome to try a CF card with adapter. Please let me know if it works or not, then I can update the compatibility list in the Wiki. But I still recommend you use a DOM.


I have recorded your order.


Cheers
JonB

KaosOverride

Quote from: JonB on 11:53, 25 February 17

Thanks, I already wrote a PCW FID (with 6 partitions each 8MB), but I'll have a look at the link..


Yes, I have read your progress, but maybe gives some ideas for autoloading from the IDE device!!
KaosOverride · GitHub
MEGA Amstrad Public Amstrad folder

JonB

It's highly unlikely that this will ever happen.

JonB

To get the driver onto your PCW boot disk, you can type in this BASIC program and run it with uIDE connected and one of my DOMs (which I will load with the driver):


10 REM uIDE bootstrap - load FID from uIDE track 0
20 MEMORY &HCFF0
30 :
40 PRINT
50 PRINT "uIDE driver retrieval program"
60 PRINT "Copyright (c) Jon Bradbury 2017"
70 PRINT
80 fidStart%=&HD000: fidEnd%=&HD4FF: fidSec%=2
90 cfBase%=&HC8
100 cfData%=cfBase%
110 cfFeatures%=cfBase%+1
120 cfError%=cfBase%+1
130 cfSecCount%=cfBase%+2
140 cfLBA0%=cfBase%+3
150 cfLBA1%=cfBase%+4
160 cfLBA2%=cfBase%+5
170 cfHead=cfBase%+6
180 cfStatus%=cfBase%+7
190 cfCommand%=cfBase%+7
200 cf8Bit%=1
210 cfReadSec%=&H20
220 cfMaster%=&HE0
230 cfSetFeat%=&HEF
240 tout%=0: addr%=fidStart%
250 GOSUB 850
260 :
270 GOSUB 580: REM cfWait
280 IF tout%=1 THEN GOTO 560: REM check for timeout
290 :
300 REM init IDE device
310 CALL di%
320 OUT cfFeatures%,cf8Bit%
330 OUT cfCommand%, cfSetFeat%
340 CALL ei%
350 GOSUB 580: REM cfWait
360 :
370 REM retrieve FID
380 PRINT "Retrieving xdrv.fid: [                        ]";
390 FOR x=0 TO 24: PRINT CHR$(;: NEXT x
400 FOR secNo% = 0 TO fidSec%
410 GOSUB 680: REM get current sector
420 NEXT secNo%
430 PRINT: PRINT
440 PRINT "Writing xdrv.fid:    [                    ]";
450 FOR x=0 TO 20: PRINT CHR$(;: NEXT x
460 OPEN "R",#1,"xdrv.fid",1
470 FIELD #1,1 AS d0$
480 FOR addr%=fidStart% TO fidEnd%
490 LSET d0$=CHR$(PEEK(addr%))
500 PUT #1
510 IF addr% MOD &H40 = 0 THEN PRINT ".";
520 NEXT addr%
530 CLOSE #1
540 PRINT: PRINT: PRINT "Done."
550 PRINT "Copy xdrv.fid to your PCW CP/M boot disk and reboot.": PRINT
560 END
570 :
580 REM cfWait
590 FOR try%= 0 TO 31
600 CALL di%
610 status% = INP(cfStatus%)
620 CALL ei%
630 IF (status% <> &HFF) AND (status% AND &H80 <> 0) THEN RETURN
640 NEXT try%
650 PRINT "IDE device timeout - check it is connected."
660 tout%=1
670 RETURN
680 :
690 REM get sector in secNo%, copy to buffer
700 CALL di%
710 OUT cfLBA0%,secNo%
720 OUT cfLBA1%,0
730 OUT cfLBA2%,0
740 OUT cfHead%,cfMaster%
750 OUT cfSecCount%,1
760 OUT cfCommand%,cfReadSec%
770 CALL ei%
780 GOSUB 570
790 FOR byte%=0 TO 511
800 POKE addr%,INP(cfData%)
810 addr%=addr%+1
820 IF addr% MOD &H40 = 0 THEN PRINT ".";
830 NEXT byte%
840 RETURN
850 :
860 REM load up ei-di routines
870 DATA &HF3,&HC9,&HFB,&HC9
880 FOR x=&HCFF1 TO &HCFF4
890 READ inst%
900 POKE x,inst%
910 NEXT x
920 di%=&HCFF1
930 ei%=&HCFF3
940 RETURN



To use the listing: (Commands are in bold)


       
  • Connect the uIDE to the PCW.
  • Plug the DOM into the uIDE's IDE socket.
  • Power up. If the uIDE power and activity lights both come on, you have the cable or DOM back to front. Power down and check.
  • Now reboot.
  • Load BASIC and enter the program. It's easier if you type AUTO 10 first. Take care with the entering of variable names, most of them have a % at the end (integer).
  • Save the BASIC program down before running it. SAVE "get-xdrv.bas"
  • Copy get-xdrv.bas onto your boot disk and run it from the boot disk. BASIC get-xdrv
  • You should see a progress bar as the FID is loaded from the DOM. The activity light on the uIDE should be flashing.
  • Now a second progress bar comes up as the FID is being written to the floppy drive.
  • When the program ends, go back to CP/M with SYSTEM command.
  • Copy the xdrv.fid file to your boot disk if not already on there.
  • Reboot the PCW (use LEFT-SHIFT - EXTRA - EXIT key combination rather than the power switch, it's quicker).
  • You should see the sign-on message "PCW IDE Extended Driver Copyright (C) Jon Bradbury"
  • You should also see a list of available drives.
  • Congratulations, your new IDE device is working!

JonB

Oooohh what have we here?


[attach=2]

1024MAK

Looking forward to summer in Somerset :-)

JonB

Might as well, Mark.


I built a uIDE-8 and it didn't work. Now have to debug it..  :(


At least the PCW expansion port adapters are OK!

SteveH

Quote from: JonB on 23:05, 27 February 17
I built a uIDE-8 and it didn't work. Now have to debug it..  :(

Hope it's nothing more than a simple solder short or such like - I'm really looking forward to assembling/trying one out.  I'm even on the lookout for a PCW 8xxx now  :D

JonB

Well, so far the board looks OK and the two 40 way sockets are oriented correctly. I've done some continuity tests and so far nothing wrong. Even swapped out the 688 for a known working one, tested the '02 and discreet inverter circuit, all good. Next up is write some test programs on the PCW, but it is busy transferring software via slooow serial. I'm building the IDE download image described on the Wiki page.


You can use uIDE-8 with a PCW9512 as well. And don't forget, there is uIDE-16 for the CPC6128 as well, so you don't need to acquire a new box specially. Although, to be fair, a PCW8xxx machine is going to cost you pennies. Last one I bought was £15. And that was on eBay - they are unloved, which is one reason I produced uIDE-8. If only I could find out why it's not working!

JonB

Sorted. Looks like a duff 74LS02. In fact, it looks like all my LS02s are bad.  :picard:

JonB

OK, picture time.


[attach=2]


This is the "production" uIDE-8 v0.5 working. It's building the uIDE download image for you.

JonB

#121
Here are the "production" expansion port adapters. Some components are not populated yet becasue they haven't arrived, but they are both tested with uIDE-8.


[attach=2]


PCW Expansion Port adapter "lite".


[attach=3]


PCW Expansion Port adapter "video". The video circuit hasn't been tested yet (missing trimmer).

JonB

Underneath we have a 50 way edge connector.


[attach=2]

JonB

Finally, the Z-80 shims (untested as of this post).


[attach=2]


Right hand shim.


[attach=3]


Left hand shim.

1024MAK

Oh my, he's on about Trimmer again :o almost as bad as going on about Rimmer....!

It's cold outside
There's no kind of atmosphere
We're all alone
More or less

Let me fly
Far far away from here
Fun fun fun
In the sun sun sun

I want to lie
Shipwrecked and comatouse
Drinking fresh mango juice
Gold fish shoals nipping at my toes

Fun fun fun
In the sun sun sun
Fun fun fun
In the sun sun sun...

Mark





Looking forward to summer in Somerset :-)

Powered by SMFPacks Menu Editor Mod