USIfAC II:Convert a PC or USB stick to Amstrad HDD,access dsk's,and many more!

Started by ikonsgr, 08:17, 01 December 20

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Audronic

Hi All


In the Zip file is a Replacement 40009 rom That I made for the CPC464 it seems to work OK
If anybody would like to try this rom in their CPC464 please tell me how it went ?
It does NOT do the Double reset on power up


Have fun
Keep Safe


Ray



Procrastinators Unite,
If it Ain't Broke PLEASE Don't Fix it.
I keep telling you I am Not Pedantic.
As I Live " Down Under " I Take my Gravity Tablets and Wear my Magnetic Boots to Keep me from Falling off.

ikonsgr

Quote from: Audronic on 01:49, 14 February 22
Hi All
In the Zip file is a Replacement 40009 rom That I made for the CPC464 it seems to work OK
If anybody would like to try this rom in their CPC464 please tell me how it went ?
It does NOT do the Double reset on power up
Have fun
Keep Safe
Ray
USIfAC's rom initialization code checks the byte at &0006 and according to the value, it makes the dual boot for CPC464 or not. Obviously, since replacement rom has a custom 464 firmware and basic 1.1 from CPC 6128, USIfAC "thinks" that this is not a CPC 464, thus no reboot. 
So, may i ask, does CPC464 with this rom replacement, work ok without the initial rebooting?

Audronic

Hi John


Yes it works OK


I made it up for a friend who did not like the Basic 1.0 restrictions.


Give it a try it may be an option ??


Keep Safe


Ray
Procrastinators Unite,
If it Ain't Broke PLEASE Don't Fix it.
I keep telling you I am Not Pedantic.
As I Live " Down Under " I Take my Gravity Tablets and Wear my Magnetic Boots to Keep me from Falling off.

ikonsgr

Quote from: Audronic on 12:35, 14 February 22
Give it a try it may be an option ??
I will, as soon as i get the new boards to test the activation of upper/lower rom together.

danhans42

Quote from: Audronic on 12:35, 14 February 22
Hi John


Yes it works OK


I made it up for a friend who did not like the Basic 1.0 restrictions.


Give it a try it may be an option ??


Keep Safe


Ray

I have installed a 27SF256 with this and it seems to work. I am just awaiting my usifac to arrive and will test for you.

Fran123

Quote- Add new RSX command: |MAN. This resembles |CAT, but instead of getting the list of files/subfolders of a usb device to screen,it outputs the list of files/subfolders into RAM, starting from &2b00 and using '1' as separator,'2' to mark end, e.g.: 1NAME1NAME1NAME...1NAME2
Function is used by filemanger utility, but it would also be useful for anyone want to develop it's own programs.
How do you know where a name is a file or a dir?

I suggest to use 3 values to that list:
0x01: next name is a file
0x02: next name is a dir
0x04: end of list


And as I read you can write the size in list, I suggest you add a |man2 command with this values as separators:
0x01: next name is a file
0x02: next name is a dir
0x03: next 2 bytes are the size of previous name
0x04: end of list


And I think output format is very grateful. For simple and full (with file size) catalogue, every file uses 20 characteres. More or less like that:


danhans42

I have ordered a USIfAC ii from ikonsgr74 (which incidentally arrived this morning - thank you). Anyway I got a little impatient waiting for it to arrive. Not that they take long to get sent out (like under 10 days from ordering), I am just impatient.

So I used the schematic and with some help from issalig on some missing connections on the schematic I made my own DIY USIfAC II - I have been working with the CH372/5/6 modules for some time (PCW/Spectrum/PlayStation) so already have those and plenty of other parts on hand so got cracking.

You cannot view this attachment.

Schematic with the missing connections corrected:-
You cannot view this attachment.

The PIC18F47Q10 seems difficult to obtain at the moment here in the UK in DIP40 so I used a Microchip  PIC18F47Q10 dev module instead - https://www.microchip.com/en-us/development-tool/dm182029.

The CH376 module I am using is a left over from another project, and has the SD card interface as well as USB which is currently unused. Ignore the 512k SRAM, its just there for safe keeping :)

Just want to say thanks to John for this. This is a great little device at a fantastic price and looking at the source you can easily see just how much work has gone into this.

Also to add, this does not make for a cheaper alternative to actually purchasing a USIfAC II device.. By the time you have bought all the parts it will actually be more expensive - probably only one for hardware tinkerers. However, it does have the added bonus of a built in programmer/debugger so you dont need to buy a PICkit 3/4!

I will make a guide/schematic for using the module so its there should anyone want to have a go.

@Audronic - I have tested the USIfAC II with your basic 1.1 on my 464 and it does work - however once USB is enabled it requires a power cycle before the machine boots again or it locks up on boot. Maybe it still needs the double reset?

Thanks

Dan


eto

Quote from: danhans42 on 13:50, 23 February 22I have tested the USIfAC II with your basic 1.1 on my 464 and it does work - however once USB is enabled it requires a power cycle before the machine boots again or it locks up on boot. Maybe it still needs the double reset?
Hey, this is what happens with my 464 also! Does it only happen with Basic 1.1 or also with Basic 1.0? For my 464 (Basic 1.0) once I enable USB, I have to power down to restart, otherwise it locks on boot up.




danhans42

Quote from: eto on 16:11, 23 February 22
Quote from: danhans42 on 13:50, 23 February 22I have tested the USIfAC II with your basic 1.1 on my 464 and it does work - however once USB is enabled it requires a power cycle before the machine boots again or it locks up on boot. Maybe it still needs the double reset?
Hey, this is what happens with my 464 also! Does it only happen with Basic 1.1 or also with Basic 1.0? For my 464 (Basic 1.0) once I enable USB, I have to power down to restart, otherwise it locks on boot up.





Hey,

No this is isolated to using basic 1.1 on the 464 - I get the same behavior as you. With basic 1.0 it works perfectly for me.




eto

Might that be related to the firmware then? Would you mind dumping your original 464 firmware and share it with me? I'd like to see if there is any difference to mine.

Attached is a DSK which you can use with the USIFAC to dump the firmware (and Basic) to the same DSK. If you could do that and share it with me again.

Probably it's not related to that and some other weird error, but if there's a difference I would give it a try to burn an Eprom and see if it works then.

Audronic

@eto

Ok Done
Load the basic ? program listme.bas and list it

The .dsk is "dump464.dsk"

Keep Safe

Ray
Procrastinators Unite,
If it Ain't Broke PLEASE Don't Fix it.
I keep telling you I am Not Pedantic.
As I Live " Down Under " I Take my Gravity Tablets and Wear my Magnetic Boots to Keep me from Falling off.


danhans42


eto

Quote from: Audronic on 01:14, 24 February 22Ok Done
Load the basic ? program listme.bas and list it
thanks a lot. So the firmware is identical to mine. So it does not depend on the firmware. 

But still: since it's not just my CPC, there might be a pattern. 

Maybe power? Can I feed 5V to the USIFAC directly somehow?

danhans42

You would have to isolate pin27 from the cpc I think it is somehow and feed the +5v seperately. Not sure of an easy way to do that.

They really don't use a lot of power these devices though.


ikonsgr

@danhans42  Really cool DIY remake of USIfAC II!  ;) 
I suppose thats the beauty of this project, for all DIY hobbists: circuit is a simple "single chip" design, that you can actually rebuild it, using "off the self" parts!  :D
Does anyone made something similar for other boards like M4, DDI3 ,Dandanator? Although, i suppose it should be much more difficult to recreate "multi chip" designs on a raster board...  ::)

Now, about the use of basic 1.1 on CPC464, can you check the byte @ &0006 address when you have the custom rom? I'm using this value to determine the type of amstrad cpc (value=145 for CPC6128 or 128 for CPC464) ,and if it's a CPC464 then it goes for the dual boot.
To clear things up, the "Dual boot" on CPC464 is actually needed for properly activation of the Amsdos emulation. Because CPC464 doens't have an amsodos rom onboard, it needs the 2nd boot to initialize the amsods emulation from USIfAC's ROM! So, if you use firmware+basic roms from CPC6128,on a CPC464, most probable USIfAC will "think" that you have a real CPC6128 so no reboot for activation of amsdos emulation is needed! But since amsods is still absent, you will need to do the 2nd reset manually  ;)

danhans42

@ikonsgr Yeah I do love projects like this. Easily recreated and great to learn from. Thank you for the open hardware/software approach.

I have a lot of hardware around so if you need anything testing give me a shout, happy to support. I am going to breadboard some ROM I think using a GAL or maybe this PSoC5 I have got here :).

I also want to play around with the other modes of the CH375/6 so am going to put another one but put it on the bus itself so I can play with mice etc.

Anyway, back on topic..

Basic 1.1 - looking at offset 0x6 shows 0x91 - 145 in the custom ROM linked above. Would it be of any help if I ran the diagnostics to see what shows under ROMS ?

Thanks

Dan

ikonsgr

Quote from: danhans42 on 22:05, 24 February 22Basic 1.1 - looking at offset 0x6 shows 0x91 - 145 in the custom ROM linked above.
Well,this confirms my hypothesis, value '145' suggests Amstrad CPC 6128, so USIfAC assumes you have CPC6128 (and amsdos rom on board), so it doesn't activate Amsdos emulation on boot (resulting in the known dual reset). But,this is resolved  easily by just giving a reset by yourself... Not such big trouble, to make it an issue, don't you think?  :)

danhans42

Its not reset I have to power cycle to reboot once I've used usb.

It's not something I'd be happy using personally.

 However I just did it as a test so am happy with basic 1.0 for now. :)


Fran123


ikonsgr

Quote from: Fran123 on 14:41, 25 February 22it would be interesting if it had a power connector
You mean an external power connector to give 5v from external psu instead of amstrad directly?

About the 2 column catalogue you asked, to have proper allignment for that, all names must be in 8.3 length (regardless of the actual length). Currently i "compress" names to their actual length (by ommiting spaces),which  gives faster print output for a single column list. I'll have to check the code and see if it can be changed to 8.3 fix length and then print 2 names/row. Also the distinction of file or dirs, is done "on the fly" by checking a specific byte in the byte stream you get from CH376 USB host module: after getting the characters of the name, you get a code byte that indicates if the previous name is file or dircetory.
 Anyway,if i may ask, why are you so eager to have a dual column name list? If you have many files in one directory, you can just use filtering with |CAT to reduce the number of files in the list. Besides, having a single column name list, has many advantages: much easier pinpoint of file you want (you just look at the left side of screen, instead of searching a hole screen full of characters), easier & faster copy of  name at prompt  for load/run (using shift+up arrow to navigate 2nd cursor, instead of wondering 2nd cursor with arrow keys to get to the right position), and finally, it's super fast too!  ;)


Fran123

Quote from: ikonsgr on 19:28, 25 February 22
Quote from: Fran123 on 14:41, 25 February 22it would be interesting if it had a power connector
You mean an external power connector to give 5v from external psu instead of amstrad directly?

About the 2 column catalogue you asked, to have proper allignment for that, all names must be in 8.3 length (regardless of the actual length). Currently i "compress" names to their actual length (by ommiting spaces),which  gives faster print output for a single column list. I'll have to check the code and see if it can be changed to 8.3 fix length and then print 2 names/row. Also the distinction of file or dirs, is done "on the fly" by checking a specific byte in the byte stream you get from CH376 USB host module: after getting the characters of the name, you get a code byte that indicates if the previous name is file or dircetory.
 Anyway,if i may ask, why are you so eager to have a dual column name list? If you have many files in one directory, you can just use filtering with |CAT to reduce the number of files in the list. Besides, having a single column name list, has many advantages: much easier pinpoint of file you want (you just look at the left side of screen, instead of searching a hole screen full of characters), easier & faster copy of  name at prompt  for load/run (using shift+up arrow to navigate 2nd cursor, instead of wondering 2nd cursor with arrow keys to get to the right position), and finally, it's super fast too!  ;)


I think columns in CAT is more confortable. Using a single column you have a lot of pages and the scroll is expensive. 

Fran123

Quote from: ikonsgr on 19:28, 25 February 22You mean an external power connector to give 5v from external psu instead of amstrad directly?
Yes

ikonsgr

Well, in order to add an external power connector i'll have to add a diode to the internal 5v supply, otherwise the external 5v supply, will try to power amstrad too!  :) 
The problem by doing that, is that diodes cause voltage drop of ~0.5-0.7volts, which can cause problems with USIfAC or usb host module (if supply from amstrad drops lower than 5volts e.g. board will get 4.5volts or less).

Fran123

I think it's not necessary to join both powering lines, only Ground lines must be connected.


Powered by SMFPacks Menu Editor Mod