ULIfAC:Usb Mass storage,WiFi, 512KB Ram/32XROM Board/256K Ram+16X Rom Board!

Started by ikonsgr, 11:39, 24 March 23

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

vasilisk

Quote from: ikonsgr on 08:34, 01 June 24
Quote from: Amagni on 01:52, 31 May 24Bit of an odd question, but my 6128 has some kind of problem with the upper memory bank where 64k programs work fine but 128k ones either crash or get graphical glitches.

I know the Ulifac can effectively turn a 464 into a 6128, so is it possible to disable the top 64k on my machine then use the Ulifac's memory to bring it back up to 128k?
When you connect ULIfAC on a CPC6128, the 2nd bank of 64k on Amstrad board, will practically disable,and only the 512k/256k extra ram on ULIfAC board (depending on the mode you are),will be used. So, most probable it will resolve the problem with the 2nd bank on your Amstrad.
So you can't have 128k but only 256 or 512?

ikonsgr

Quote from: vasilisk on 16:06, 01 June 24So you can't have 128k but only 256 or 512?
You have 320kb or 576kb total ram (256+64k internal or 512+64k internal)

vasilisk

Quote from: ikonsgr on 21:43, 01 June 24
Quote from: vasilisk on 16:06, 01 June 24So you can't have 128k but only 256 or 512?
You have 320kb or 576kb total ram (256+64k internal or 512+64k internal)
I was only asking about @Amagni 's "problem". For example, dragon ninja have speech samples if 128k is present. Is it going to see the total ram or the 64+256, 64+512.

andycadley

Quote from: vasilisk on 22:11, 01 June 24
Quote from: ikonsgr on 21:43, 01 June 24
Quote from: vasilisk on 16:06, 01 June 24So you can't have 128k but only 256 or 512?
You have 320kb or 576kb total ram (256+64k internal or 512+64k internal)
I was only asking about @Amagni 's "problem". For example, dragon ninja have speech samples if 128k is present. Is it going to see the total ram or the 64+256, 64+512.
Part of the ULifAC RAM will replace the internal 64K (as it would if that RAM worked). Whether or not it will fix the issue might depend on exactly how it has failed. I don't think anyone could say for certain without actually just trying it, though there is a good chance it would fix it.

vasilisk


Amagni

Ok, I did a bit more testing and now I'm even less sure of the issue!

If I run the |DIA utility on the Ulifac, it shows lower RAM as ok, but upper RAM gives some error codes (see the first image below).  I assume this is the CPC's internal memory and not the added RAM, right?  It doesn't continue past bank 0 and the computer locks up and needs to be rebooted.

It also gives odd results for the ROM test but I don't know if it that's a problem.

I tried copying the "Logon's Run" demo to a floppy, and if I run it without the Ulifac it just fills the screen with dots that gradually settle into the stripes shown in the 4th image below, while the speaker emits a single tone.
If I run it with the Ulifac, either from floppy or USB, it runs but gets lots of visual artefacts and random characters.  I tested it on a friend's original Amstrad CRT monitor and it looks the same, so it's not just my HDMI converter acting up.

Some other games and demos get the same kind of video noise, but others (presumably 64k ones) work just fine with no glitches at all.

Is it possible that the faulty RAM is still having an effect when the Ulifac is in use, or that some other related chip is causing the issues?

ikonsgr

@Amagni ,first thing, did you set the small switch on ULIfAC to "6128" position? Otherwise, it will enable the MREQ signal depression (required for extra ram to function on CPC464) which might cause problems on CPC 6128.
 Now, if you still get same problems with "6128" mode, then, apart from maybe having a faulty internal ram interfere, there is also a chance of having a faulty (or maybe bad contacts) of PAL/GAL 16L8 chip (https://www.cpcwiki.eu/index.php/PAL16L8) which implements the memory management on CPC6128.

Amagni

Ok, it was in 6128 mode, so I tried switching to 464 mode and it actually works better!

The upper RAM test completes and all looks good.
The "Wolf 128" demo no longer has glitches and works fine.
The "Women & Dragons" demo now runs instead of halting at the initial "loading" message, but it does glitch in one of the scenes.
"Pinball Dreams" runs the intro screen with the nice animated lightning but freezes after a few seconds of the title music.
"Logon's Run" looks even worse, it's just the red screen below with weird snow flying around.

Do you think it's worth pulling the HAL1618 chip and popping it back in?

ikonsgr

Quote from: Amagni on 14:57, 02 June 24Ok, it was in 6128 mode, so I tried switching to 464 mode and it actually works better!

The upper RAM test completes and all looks good.
The "Wolf 128" demo no longer has glitches and works fine.
The "Women & Dragons" demo now runs instead of halting at the initial "loading" message, but it does glitch in one of the scenes.
"Pinball Dreams" runs the intro screen with the nice animated lightning but freezes after a few seconds of the title music.
"Logon's Run" looks even worse, it's just the red screen below with weird snow flying around.

Do you think it's worth pulling the HAL1618 chip and popping it back in?

 Hmmm, it seems that the MREQ signal masking on CPC464 mode, somehow "masks" the problem too... ::)  And that, indeed indicates some kind of problem with the HAL chip. Fortunately this chip is in socket, so you can easily unplug it, spray some contact cleaner onto socket and replug it. If again you have the same symptoms, then maybe the chip went bad.
Btw, if you unplug ULIfAC, or swap to 32xrom mode (so Amstrad will use the internal 64k extra ram) you also get the same problems?

p.s. unfortunately the MREQ masking has some limitations: C3 mode is not supported, symbos, futureos and cpm+ are not working, and also a few games too, one of which, is  pinball dreams. I'm actually in a process of redesigning the hole extra memory management  for cpc464, by replacing completely the internal 64k main ram, with a block of 64k from the external 512k ram, in order to fully emulate all memory configuration modes without problems, i recently manage to load symbos and pinball dreams on CPC464 in dual 256k ram/16x rom mode, but i get some kind of video noise on screen when specific configuration modes 1,2,3 are active (e.g. use &C000-&FFFF video ram memory range from external ram), which i'm afraid is because CRTC video chip always access the 16k  video ram from internal ram, so i have to somehow find a way to "selectively" disable writing internal ram -possibly using the same mreq masking method- but ONLY when Amstrad access video ram range and the specific configuration modes are active. Hopefully this will resolve the problem...

ikonsgr

As we exceeded 600 Boards sold worldwide (USIfAC II + ULIfAC),
I've decided to make a summer offer for ULIfAC board:

ULIfAC Board: 25 Euros
Edge connector Ribbon cable: 3 Euros
Centronics connector Ribbon cable: 4 Euros
Registered/tracked postage: 8 Euros (+1euro for overseas Australia,US,Canada)


Offer is valid for current ULIfAC pcb stock (~25 boards)

ikonsgr

update about the summer offer: 19 boards left...
Btw, you think that an RSX command to create an empty formatted dsk image would be useful?
This is something that a couple of people requested in the past, but as you can easily create any kind of an empty dsk image (for example using cpcdiskxp utility),and simply transfer it to your Amstrad usb stick, i don't know if it has any practical value (and worth the trouble to develop it)...  ::)



eto

Quote from: ikonsgr on 10:34, 20 July 24Btw, you think that an RSX command to create an empty formatted dsk image would be useful?
I had it on the Gotek a few times that I had to unplug the USB stick, go to the PC, create the image, go back, when I wanted to copy some files between a real drive and a DSK. I am not sure if that's a valid use case for the ULIFAC.

But if it's a lot work, then I guess we can live with it anyway. 

ikonsgr

Quote from: eto on 18:11, 22 July 24
Quote from: ikonsgr on 10:34, 20 July 24Btw, you think that an RSX command to create an empty formatted dsk image would be useful?
I had it on the Gotek a few times that I had to unplug the USB stick, go to the PC, create the image, go back, when I wanted to copy some files between a real drive and a DSK. I am not sure if that's a valid use case for the ULIFAC.

But if it's a lot work, then I guess we can live with it anyway.
Routine is almost ready  :)   It will be included in the next firmware update along with a few more things.

ikonsgr

FIRMWARE UPDATE (rev.3c):

New Rsx Command:

-|FMG,"filename": Creates an empty Data format disk image. Using extra argument: |FMG,1/2 creates a system/ibm format disk image. Image creation takes ~8-15seconds depending on usb stick used.

Updated RSX commands:

-|EXT,"filename",1: Inserts a file from USB storage device to a dsk image. This extended the previous function of |EXT,"filename" (extract a file from a dsk image to USB storage device). I've also revised the code routine, possibly reducing incompatible files  (usually of more than 42kb).

- |WF,1: This replaced the |WIFI command used to configure and connect a WiFi module. Now you will be asked directly to give WiFi settings (Access point ssid, password, Host ip/name, port) and these settings can be saved to board's eeprom. From then, you will be able to connect WiFi module instantly (after cold boot or in case of a hang-up) by giving a simple:|WF command!
Notes:- Don't forget to disable "Auto usb" before using WiFi module, by giving: OUT &FBD1,93
           -Communication speed with WiFi module is now fixed at 921600bps
           -Saving configuration of WiFi module will overwrite any saved code you might had on eeprom (using the |WROM, |LROM commands)

- |HELP: Update the rsx list, help is now 4 pages long, which can be viewed directly, by giving: |HELP,2  |HELP,3  |HELP,4   

Bug fixes:

- Major update of windows utility program, mostly for WiFi connection. TCP server now behaves much more stable (mostly in "direct mode", where practically program/tcp server never hangs up anymore), and automatically disconnects/reconnects WiFi module. Also, support for read/write ASCII files was added, when use WIiFi modules.
For ULIfAC with rev.3c or newer firmware, this version is mandatory.
You can find the new version here (program will be labeled as: Amstrad CPC Serial Communication Utility II (rev.2) )

New Firmware can be found here for update with bootloader and serial cable, or here for updating using a PICKIT programmer.


 

pjrodriguez

Hi ikonsgr
It seems that the filenames for the last update are reversed. The .hex file in the link for updating using a PICKIT is ULIFAC_v3C_BOOTLOADER but in fact is the right file for the PICKIT.
Thank you for the update and for keeping this wonderful device alive.

Amagni


GUNHED

@ikonsgr : There is a manual for updating firmware. Great! However, it's in Spanish. Could you please put the original text in here (not the PDF), then I can convert it into English. This would be great for non-Spanish-Speakers.  :) :) :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

ikonsgr

Quote from: GUNHED on 15:23, 08 August 24@ikonsgr : There is a manual for updating firmware. Great! However, it's in Spanish. Could you please put the original text in here (not the PDF), then I can convert it into English. This would be great for non-Spanish-Speakers.  :) :) :)
I didn't made the specific guide in Spanish. :) 
It is actually the older programming method with PICKIT programmer described in the older manuals, and it should be a translate from this english guide: https://www.dropbox.com/scl/fi/mou7h8urikz5og3i2o4qu/Updating-the-Firmware-of-USIfAC-II-via-ICSP-v1.pdf?rlkey=w8p2omunhchx3msre6graogk2&dl=0

ikonsgr

Quote from: pjrodriguez on 11:41, 07 August 24Hi ikonsgr
It seems that the filenames for the last update are reversed. The .hex file in the link for updating using a PICKIT is ULIFAC_v3C_BOOTLOADER but in fact is the right file for the PICKIT.
Thank you for the update and for keeping this wonderful device alive.

 The ULIFAC_v3C_BOOTLOADER hex file is the one for PICKIT, i named it "bootloader", because it includes the bootloader too. The other file is without the bootloader and should be used for the serial programming.

ambifx


Amagni

I made a quick video about the ULIFAC the other day, showing what I do with it and how some of the commands work.


zhulien


ikonsgr

Quote from: zhulien on 10:52, 28 August 24Just curious, how did you replace the internal 464 ram?
I have the "ram disable" signal always active, which prevents Z80 on CPC 464 to read from internal RAM completely. Also, to prevent writing to internal ram (which on CPC464 is not disabled with "Ram dis" signal), i mask MREQ signal too.
But the most difficult part regarding the correct functioning of internal "Shadow ram" is the fact that 6845 CRT controller can read ONLY the REAL internal video ram, which means that if you use a shadow video ram, the screen will ALWAYS show you contents of internal video ram, no matter what!
So, for video ram only (&C000-&FFFF), you must write both internal and "shadow ram" (e.g. part of the 512k ram expansion that acts as internal ram) at the same time, in order for both Z80 (which reads from shadow video ram) and 6845 CRT (which reads from internal video ram) read the same thing and have proper code execution and video out...  ???
And there is even worst... Try to get all this mess, work right with C3 configuration mode...  :)

ikonsgr


Powered by SMFPacks Menu Editor Mod