News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_willow3411

CPC 464 Weird screen and Rom 40009 not recognized

Started by willow3411, 08:06, 11 August 24

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

willow3411

Hi!
Hi !
So here I am trying to repair a CPC 464 with weird symptoms.
when I turn it on it is either a black and white striped screen or a black screen (see photo).
My dandanator cannot find a ROM (see photos).
the RAMS are ok (still with the dandanator).
In your opinion HS ROM (I can flash another one I have the hardware for that) or a multiplexer (I don't know which one: ic104?).
The tracks look ok (but not all tested).
waiting for your feedback,
thank you.
Willow


eto

Just a guess: the Dandanator deactivates the internal Lower ROM. Then you also can't test it. 

Can you run it in Upper Rom mode from another ROM expansion?

Rabs

Its not the fact that the Diagnostics thinks the Lower ROM is bad that confuses me. What confuses me is why the Diagnostics thinks it has found all those upper ROMS? And all the same checksum?

Bryce

My guess is that the ROM has one or more internal shorts. This is stopping the CRTC from initialising (as it would be getting bad setup data) and also cause the CPC to believe that an unknown ROM is in multiple positions. If possible, try a known working GA first to completely rule that out. If not, just replace the ROM.

Bryce.

willow3411

Hello everyone!
Okay then, I tested the GA, it is ok.
So on your advice, I changed ROM 40009 (after flashing an eeprom).
Everything is ok.
works perfectly.
Just a question?
: Is there an LS multiplexer that manages the ROM? IC104 style? It's just to know.
Thank you to all three of you, always available to help us.
Willow

Bryce

If you mean to choose between the external ROMs etc., no. The CPC can disable the BASIC ROM and replace it (in the memory map) with an external ROM by setting certain address lines and putting the desired ROM number on the data bus, but the logic to do this needs to be on the ROMBoard. There's no hardware in the CPC for this functionality.
Electronically, all ROMs are connected in parallel to both the data and address buses. The CPC disables the internal ROM with the OE (output enable) pin of the ROM and activates the appropriate external ROM via its OE pin in the same manner.

Bryce.

willow3411

Hi Bryce!
thank you for your response.
So if we have black screen or striped screen symptoms (like in my photo) and the dandanator does not recognize the type of PC. There is still a 90% chance that the ROM is broken. is that right?
obviously first we test the GA and the Z80.
thanks again
willow

Bryce

Quote from: willow3411 on 17:21, 12 August 24Hi Bryce!
thank you for your response.
So if we have black screen or striped screen symptoms (like in my photo) and the dandanator does not recognize the type of PC. There is still a 90% chance that the ROM is broken. is that right?
obviously first we test the GA and the Z80.
thanks again
willow


Hmmm, I really don't like to give such generalised statements. Every situation can be different and every seemingly "unimportant" symptom could signify a different point of failure. For example, a bad power supply, a dry joint or a shorted RAM buffer IC could also cause very similar issues. In this particular case you had already mentioned that the RAM tested good and that a Dandanator worked with the CPC in its current state, so that already changed the situation as it ruled out several other potential causes. I prefer to hear what the symptoms are in each case, ask further questions when needed and then suggest the most likely cause for the issue based on that.

Bryce.

willow3411

It's all to your honor, Bryce.
Yes, when I asked this question it was obviously after testing the GA, the Z80 and the RAM.
and of course check the tracks on the pcb.
I'm going to open another topic for a new breakdown :)
thank you all
willow

SerErris

Quote from: eto on 12:31, 11 August 24Just a guess: the Dandanator deactivates the internal Lower ROM. Then you also can't test it.

Can you run it in Upper Rom mode from another ROM expansion?
Dandantor can test the lower rom as it deactivates itself during that routine. For that Noel copies the testing routine to ram and then deactivate the dandantor rom. Then run the test and afterwards reactivate it again, then return to the diag rom.

This works for Dandanator and M4 afaik.
Proud owner of 2 Schneider CPC 464, 1 Schneider CPC 6128, GT65 and lots of books
Still learning all the details on how things work.

vasilisk

1.3L is this a new version? In @llopis github, we have 1.3A

SerErris

#11
I have compiled the last version on Github, which is now 1.4L

I have not tested it on real hardware, but on WinApe.

/Update:
Tested on Winape and seems to work:
You cannot view this attachment.
Proud owner of 2 Schneider CPC 464, 1 Schneider CPC 6128, GT65 and lots of books
Still learning all the details on how things work.

vasilisk

Which github? The one you posted for download is 1.4A.
Works in both of real cpc6128 with different crtc's

SerErris

This github:
https://github.com/llopis/amstrad-diagnostics

I pulled the latest source, compiled it and the screenshot is actually from winape. So the binaries in the file I provided should be all 1.4L as you can see in the screenshot.

But I do not understand where the version number is stored in the sources ...
Proud owner of 2 Schneider CPC 464, 1 Schneider CPC 6128, GT65 and lots of books
Still learning all the details on how things work.

SerErris

Ah I see ...  :doh:

It is actually Version 1.4 - the letter after it specifies what version it is (L,U,C,A):

This means
L = Lower ROM
U = Upper ROM
C = Cartridge
A = Ram 

And the .dsk and tape images are actually "RAM" builds - so hence the A.

I have run it as ROM (lower), hence the L.

So it is actually just version 1.4 and L,U,C,A are all the same.

here is config.asm
;; The build types are passed in from the build script (but can also be forced here)
; DEFINE LowerROMBuild 1
; DEFINE UpperROMBuild 1
; DEFINE CartridgeBuild 1
; DEFINE RAMBuild 1


; DEFINE SkipLowerRAMTest
; DEFINE LowerRAMFailure %00100011
; DEFINE UpperRAMFailure #61

IFDEF LowerROMBuild
DEFINE BUILD_STR 'L'
DEFINE PAD_TO_16K
DEFINE LOWER_RAM_TEST_START #4000
DEFINE LOWER_RAM_TEST_SIZE  #C000
DEFINE ROM_CHECK
DEFINE TRY_UNPAGING_LOW_ROM
DEFINE RESTORE_ROM_CONFIG #7F00 + %10001001
ENDIF

IFDEF UpperROMBuild
DEFINE BUILD_STR 'U'
DEFINE PAD_TO_16K
DEFINE LOWER_RAM_TEST_START #0000
DEFINE LOWER_RAM_TEST_SIZE  #C000
DEFINE ROM_CHECK
DEFINE RESTORE_ROM_CONFIG #7F00 + %10000101
ENDIF

IFDEF CartridgeBuild
DEFINE BUILD_STR 'C'
DEFINE PAD_TO_16K
DEFINE LOWER_RAM_TEST_START #4000
DEFINE LOWER_RAM_TEST_SIZE  #C000
DEFINE RESTORE_ROM_CONFIG #7F00 + %10001001
ENDIF

IFDEF RAMBuild
DEFINE BUILD_STR 'A'
DEFINE LOWER_RAM_TEST_START #C000
DEFINE LOWER_RAM_TEST_SIZE  #4000
DEFINE ROM_CHECK
DEFINE RESTORE_ROM_CONFIG #7F00 + %10001101
ENDIF

DEFINE VERSION_STR '1.4'
Proud owner of 2 Schneider CPC 464, 1 Schneider CPC 6128, GT65 and lots of books
Still learning all the details on how things work.

Powered by SMFPacks Menu Editor Mod