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

Started by ikonsgr, 09:17, 01 December 20

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

eto

Quote from: GUNHED on 19:53, 30 March 22New commands should be compatible to already existing DOS imho. Here the Dobbertin X-DDOS has the most intuitive and meaningful syntax.
I would agree if that is 1) a standard on the CPC (means, all or most DOS already use the same command+parameters) and 2) if it would be documented. The Wiki page for X-DDOS has the ROMs but no documentation. Google has also lots of links to the ROM but also no link to a documentation. 

Mark_wllms

Anyone using the USIFAC II might be interested in the following collection of compatible games for the M4 expansion, all unpacked into folders.

https://www.spinpoint.org/CPC_games_reviewedAA.zip

There is more detail in this thread.

genesis8

Quote from: Nworc on 20:45, 23 March 22BTW: Does anybody in this board offer a 3D printing service for the Usifac casing?

I do have more trust if someone from this board is doing that instead of consulting a 3D print service. Also, if someone here owns a 3D printer, he might be interested to do that in order to compensation a little for the cost of the 3D printer. So, anyone?

I can do it for the price of filament (estimated by the slicer program) and shipping cost rounded to the upper euro, if no one offered first.

I can print in white, black, and the blue and yellow of the Amstrad screen.

Just send me a PM and I will send you my paypal address if you use it also.

I will of course need the stl file to print;
____________
Amstrad news site at Genesis8 Amstrad Page

ikonsgr

Quote from: genesis8 on 16:41, 31 March 22
Quote from: Nworc on 20:45, 23 March 22BTW: Does anybody in this board offer a 3D printing service for the Usifac casing?

I do have more trust if someone from this board is doing that instead of consulting a 3D print service. Also, if someone here owns a 3D printer, he might be interested to do that in order to compensation a little for the cost of the 3D printer. So, anyone?

I can do it for the price of filament (estimated by the slicer program) and shipping cost rounded to the upper euro, if no one offered first.

I can print in white, black, and the blue and yellow of the Amstrad screen.

Just send me a PM and I will send you my paypal address if you use it also.

I will of course need the stl file to print;

Very nice work indeed! This might also help to imrpove compatibility with CPC 464, as all games are in direct fast accessed files, instead of bulky and slow dsk images!  ;)



d_kef

Quote from: Fran123 on 12:29, 08 April 22Can we use CPM on UsifacII?   
Do you have a video?
I'll try to make one as soon as I find some time. But it is indeed working (at least with my USIfAC II and my ROM board).

If you want to see what it looks like this
video might help. It's taken from WinAPE emulating SF2 but the feeling is exactly the same.

d_kef

Fran123

Damn!!  I haven't got any ROM board  :(

After that, a command like SCREEN would be incredible!!

d_kef

Well I hope @ikonsgr will soon have his ROM/RAM board ready so you can get one.

d_kef

ikonsgr

Quote from: d_kef on 15:07, 08 April 22Well I hope @ikonsgr will soon have his ROM/RAM board ready so you can get one.

  Designing a RAM/ROM board prooved to be much more complicated/difficult ,from hardware perspective, than USIfAC II (which needed MUCH more work in software development). Although main RAM expansion part of the board, is ready and working on all cpc models since late 2021, the rom counterpart (especially the functionality of having upper&lower rom enabled together),and also the "dual mode" of having 256K ram + one (or maybe two) roms working together,needed a lot of PCB redesign (and partly PIC MCU software reprogram too).
I finally managed to make everything work right a few weeks ago, but then i discovered a possibly design fault with board,as i encountered a lot of functional problems especially with CPC 6128.Most probable,the much larger size of pcb board (resulting in much longer PCB signal traces than with USIfAC II board) caused problems, due to added trace resistances and maybe increased differential impendence between various data and address bit lines. So i've decided to increase the basic line widths and also use 2oz copper thickness (instead of the standard 1oz), which will greatly reduce all line resistances and hopefully resolve the problems.
I'm currently waiting for the new boards for testing, most probable i will have them by the end of month.

Fran123

Hello

If the PIC18F47Q10 has 128k of program memory flash and the UsifacII program for the PIC is about 80K (more or less calculated).   Would it be possible to store other roms?

ikonsgr

Quote from: Fran123 on 12:12, 13 April 22Hello

If the PIC18F47Q10 has 128k of program memory flash and the UsifacII program for the PIC is about 80K (more or less calculated).   Would it be possible to store other roms?
USIfAC II rom has embedded 2 Amstrad roms (amsdos+parados) e.g. 32K, other ~42K are the 3 games, and the rest is the code  :)

eto

Quote from: ikonsgr on 13:32, 13 April 22USIfAC II rom has embedded 2 Amstrad roms (amsdos+parados) e.g. 32K, other ~42K are the 3 games, and the rest is the code  :)
would it be possible to throw out a game or two and use the space to e.g. include the diagnostics ROM? Or maybe even upload a ROM from the CPC into another 16KB slot? Not sure if I read that correctly, but it seems you can write the flash memory from your code, or did I understand that wrong?

With two remaining pins on the USIFAC it would be easy to "turn on" diagnostics on demand when required or enable/disable the custom ROM with a switch (diagnostics | off | custom). 

With such a feature I guess I would never need a ROM board. 


Fran123

Quote from: ikonsgr on 13:32, 13 April 22
Quote from: Fran123 on 12:12, 13 April 22Hello

If the PIC18F47Q10 has 128k of program memory flash and the UsifacII program for the PIC is about 80K (more or less calculated).  Would it be possible to store other roms?
USIfAC II rom has embedded 2 Amstrad roms (amsdos+parados) e.g. 32K, other ~42K are the 3 games, and the rest is the code  :)

I don't think people play to that games. Conversely, two ROMs is more useful.

As Einstein said "wanting is power"

ikonsgr

@eto, @Fran123 you can't load "on demand" a rom (or any data) to PIC's program memory, this is "hard coded" when you flash (e.g. program) PIC MCU with a programmer, using a HEX file. After that,it behaves paractically as a ROM, read only mem.
 Now, i don't think that games are useless, as they give you the unique ability to play a game directly from boot, without needing anything else, just like a mini 8bit game console!
Also,the specific games are 3 of the greatest "all time classics",a space invaders clone, a pacman, and killer gorilla  :)
Anyway, it is very easy to replace the code for 1-2 games with the code of any 16Kb Rom (these are actually big byte tables, inside PIC's program), and execute it using a simple RSX command.
So,if anyone wants a "custom" firmware with extra roms and no games, you can give me the rom you want, and i can create you a custom firmware to "burn" it yourself ;-)

eto

Quote from: ikonsgr on 18:21, 13 April 22you can't load "on demand" a rom (or any data) to PIC's program memory, this is "hard coded" when you flash (e.g. program) PIC MCU with a program
I might not get the full picture, but I thought that section 11 in the data sheet (page 140) describes how it's possible to erase and write the program flash memory:
https://ww1.microchip.com/downloads/en/DeviceDoc/PIC18F27-47Q10-Data-Sheet-40002043E.pdf


ikonsgr

Quote from: eto on 19:44, 13 April 22I might not get the full picture, but I thought that section 11 in the data sheet (page 140) describes how it's possible to erase and write the program flash memory:
https://ww1.microchip.com/downloads/en/DeviceDoc/PIC18F27-47Q10-Data-Sheet-40002043E.pdf
In theory you can indeed write program memory "on the fly",but unfortunately in pracitce, it's way too complicated and time consuming procedure, that didn't seem to work very well.

Fran123

Quote from: ikonsgr on 18:21, 13 April 22@eto, @Fran123 you can't load "on demand" a rom (or any data) to PIC's program memory, this is "hard coded" when you flash (e.g. program) PIC MCU with a programmer, using a HEX file. After that,it behaves paractically as a ROM, read only mem.
 Now, i don't think that games are useless, as they give you the unique ability to play a game directly from boot, without needing anything else, just like a mini 8bit game console!
Also,the specific games are 3 of the greatest "all time classics",a space invaders clone, a pacman, and killer gorilla  :)
Anyway, it is very easy to replace the code for 1-2 games with the code of any 16Kb Rom (these are actually big byte tables, inside PIC's program), and execute it using a simple RSX command.
So,if anyone wants a "custom" firmware with extra roms and no games, you can give me the rom you want, and i can create you a custom firmware to "burn" it yourself ;-)

Is it possible that two extra roms are always placed in the same position in the firmware binary?

If the HEX file doesn't include extra information like CRC, you could replace the roms in the hex and burn new firmware into the pic.

In any case, I note the custom firmwares for the future ;)

Thank you

ikonsgr

@Fran123 i think you misunderstood something: when we refer to USIfAC's ROM or firmware, we don't mean an actual REAL ROM binary, where you can access directly any byte of it. Instead, what we really have, is a rom EMUALTION, through code executed by PIC mcu! As i mentioned earlier, the actual ROMs embedded into PIC's program memory, are big byte tables, which CANNOT be accessed directly, but only through various functions/procedures of PIC's code.
 For example, when you use the amsdos/parados emulation (|464), each call to amsdos rom from amstrad, is "hijacked" by PIC code, which executes a "fetch a byte from amsdos table at desired address" routine, place byte on data bus, and ofcourse disable internal roms.

shacpc

@ikonsgr I've been testing the latest version of fw6d for a while and it's really fine. doing tests with the game launcher that I am creating, there was a common error in previous fw versions when being in a game and pressing reset to reload another from the start/launcher, the reset restarted the amstrad in the same directory where I had the game and it didn't return to the root. had to turn the amstrad on the switch off and on again. since i upgraded to fw6d, the reset button always goes back to the root directory, so it's completely successful. the loads are fast and the system really looks very stable, so I understand john that this fw could well have been a version 1.0 of your usifacc II. congratulations for your work & support  :P

acf76

Greetings, I'm Alfredo Retrocant, and I'm testing UsifacII in creating a design.
I also want to redesign the board for updates and to be able to integrate the CH376 and wifi module.

I hope to be able to collaborate with the author of the project and in turn thank him for his help and collaboration.

robcfg

¡Bienvenido, Alfredo!

No solo de Dragones vive el hombre  ;)

ikonsgr

Quote from: shacpc on 13:39, 14 April 22@ikonsgr I've been testing the latest version of fw6d for a while and it's really fine. doing tests with the game launcher that I am creating, there was a common error in previous fw versions when being in a game and pressing reset to reload another from the start/launcher, the reset restarted the amstrad in the same directory where I had the game and it didn't return to the root. had to turn the amstrad on the switch off and on again. since i upgraded to fw6d, the reset button always goes back to the root directory, so it's completely successful. the loads are fast and the system really looks very stable, so I understand john that this fw could well have been a version 1.0 of your usifacc II. congratulations for your work & support  :P
Actually the return to root directory upon restart, is a function controlled by you! Just give OUT &FBD1,66 to enable or OUT &FBD1,65 to disable it (and the selection is only needed to be given once, as it will be saved into PIC's EEPROM, so USIfAC will "Remember" your choice even after powering off Amstrad). You can also see the current status of it, by giving |STAT.  And i think this function is present since fw rev.4 or maybe even rev.3

Fran123

#798
Hello

Has anyone tried to download a file from internet?

I'm trying it.

I did this little program that it tries to download a web page from HTTP server:

9 MEMORY &7FFF
10 GOSUB 60000 : ' constantes
20 host$="retrocables.es" : port$="80" : page$="/tienda/index.php"
80 'send$="AT+CIPCLOSE" : GOSUB 50000 : GOSUB 50100 : GOSUB 50200
99 '
100 'test
101 send$="AT"+ret$ : GOSUB 50000 : GOSUB 50100 : GOSUB 50200
105 print "press a key" : INPUT nada
110 send$="AT+CIPSTART=^TCP^,^"+host$+"^,"+port$+ret$ : GOSUB 50000 : GOSUB 50100 : GOSUB 50200
120 httpreq$="GET "+page$+" HTTP/1.0"+ret$+ret$: num=LEN(httpreq$) : GOSUB 59900 : send$="AT+CIPSEND="+num$+ret$ : GOSUB 50000 : GOSUB 50100 : GOSUB 50200
125 send$=httpreq$ : GOSUB 50000 : GOSUB 50100 : GOSUB 50200
140 send$="AT+CIPCLOSE"+ret$ : GOSUB 50000 : GOSUB 50100 : GOSUB 50200
998 '
9999 END
39000 '
39001 'connectar
39002 '
39010 send$="AT+CIPSTART=^TCP^,^192.168.1.3^,9876"+ret$
39020 PRINT b$
39030 GOSUB 50000
39040 RETURN
50000 '
50001 'enviar send$
50002 '
50007 addr1=@send$ : tam%=PEEK(addr1) : addr2=PEEK(addr1+2)*256+PEEK(addr1+1)-1
50010 PRINT ">";tam%;send$
50020 FOR nb%=1 TO tam%
50022  vb=PEEK(addr2+nb%)
50023  IF vb=94 THEN vb=34
50030  OUT &FBD0, vb
50040 NEXT
50045 GOSUB 59800
50050 RETURN
50100 '
50101 'recibir en &8000
50102 '
50105 intentos%=0 : tam=0 : addr2=&8000
50120 IF INP(&FBD1)=255 THEN b%=INP(&FBD0) : POKE addr2,b% : addr2=addr2+1 : tam=tam+1 : intentos%=0 : GOTO 50120
50125 intentos%=intentos%+1 : IF intentos%=25 THEN RETURN
50130 GOTO 50120
50140 RETURN
50200 '
50201 'escribir contenido en &8000
50202 '
50210 addr2=&8000-1
50215 PRINT"<";tam;" ";
50220 FOR nb=1 TO tam
50230  vb=PEEK(addr2+nb)
50232  IF vb>31 OR vb=13 OR vb=10 THEN PRINT CHR$(vb);
50234  IF vb<32 AND vb<>13 AND vb<>10 THEN PRINT "{";vb;"}"
50240 NEXT
50245 PRINT
50250 RETURN
59800 '
59801 'pausa
59802 '
59810 FOR n=1 TO 200:NEXT
59820 RETURN
59900 '
59901 ' numero a texto
59902 '
59910 num$=STR$(num) : num$=RIGHT$(num$,LEN(num$)-1)
59920 RETURN
59999 '
60000 'constantes
60001 cc$=CHR$(34)
60002 ret$=CHR$(13)+CHR$(10)
60100 RETURN

And what I get are the images  photo_2022-04-22_07-35-31.jpg and  photo_2022-04-22_07-35-18.jpg


(The numbers between { } are the ascii code.)

And I don't understand the response.

I'm using an ESP01 with AT version 1.3 and SDK 2.0

eto

Quote from: Fran123 on 20:42, 21 April 22d what I get are:




(The numbers between { } are the ascii code.)
There is nothing to see in your post. 

Powered by SMFPacks Menu Editor Mod