CPCWiki forum

General Category => Amstrad CPC hardware => Topic started by: llopis on 17:35, 24 February 21

Title: Amstrad Diagnostics ROM
Post by: llopis on 17:35, 24 February 21
Hi everybody,

I decided to create a diagnostics ROM for Amstrad CPC (and Plus down the line I suppose). A lot of it was done by combining and enhancing exiting code other people wrote and were kind enough to release (including Gerald with his famous "quick and dirty test"). You can find it here: https://github.com/llopis/amstrad-diagnostics (https://github.com/llopis/amstrad-diagnostics)

Right now it does a few things:
One of the enhancement over the "quick and dirty" RAM test is that it explains which bits are failing by labeling them. No more forgetting if the LSB is in the top or the bottom!  :D


There's a lot that can be improved, but it's a start. If anybody has any suggestions or even straight contributions, please let me know.
Title: Re: Amstrad Diagnostics ROM
Post by: Audronic on 06:55, 25 February 21

@llopis

Ok Is this the correct screen for a Known good working 6128 with Parados 1.2 rom (Internal)
Thanks for the Diag V0.1
Keep Safe
Ray



Title: Re: Amstrad Diagnostics ROM
Post by: Sid_ on 08:03, 25 February 21
This diag rom may be installed on the c4cpc ?
Title: Re: Amstrad Diagnostics ROM
Post by: Duke on 08:09, 25 February 21
Quote from: llopis on 17:35, 24 February 21If anybody has any suggestions or even straight contributions, please let me know.
Maybe include ram C1/C3 page mapping check. Feel free to use any parts of this https://github.com/M4Duke/z80/blob/master/RAM512KB.s
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 08:35, 25 February 21
Quote from: Audronic on 06:55, 25 February 21
Ok Is this the correct screen for a Known good working 6128 with Parados 1.2 rom (Internal)
Ha! Technically yes, but I should change it. The purpose of the ROM check is just to make sure the standard ROMs are not corrupted. Right now I walk 0 through 15 and compare them against the CRC of a few known ROMs. So I should check 0 and 7 just to start and maybe get the CRCs for a few more popular ROMs like Parados.


I actually always use standard ROMs, but which ones out there are worth checking against? Parados, SymbiOS? What else?


Actually looking at that it's weird that all of them return the same CRC. Does Parados map the same 16KB in every bank or something? Otherwise something fishy is happening there.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 08:37, 25 February 21
Quote from: Sid_ on 08:03, 25 February 21
This diag rom may be installed on the c4cpc ?
No idea! I haven't even tested it on a Plus. It will for sure complain about unknown ROMs, but it's possible that the rest of things will work.
I'll look into getting C4CPC support when I test it on the Plus.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 08:38, 25 February 21
Quote from: Duke on 08:09, 25 February 21
Maybe include ram C1/C3 page mapping check. Feel free to use any parts of this https://github.com/M4Duke/z80/blob/master/RAM512KB.s (https://github.com/M4Duke/z80/blob/master/RAM512KB.s)
Yes, I've already gotten a request to check C3 specifically. I'll do that and also check all available RAM, so that code will come in handy I think. Thank you!
Title: Re: Amstrad Diagnostics ROM
Post by: Audronic on 08:56, 25 February 21
Hi Noel


Photos from CPC6128 Standard rom


The id of rom 7 Varies ? 8179  - 2162 at restart (Power up ) I Varies each power up.


Keep safe


Ray


Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 09:36, 25 February 21
Quote from: Audronic on 08:56, 25 February 21
Hi Noel

Photos from CPC6128 Standard rom


The id of rom 7 Varies ? 8179  - 2162 at restart (Power up ) I Varies each power up.


Keep safe


Ray
Interesting. I see your startup screen is branded Awa. Is that something you did with the links, or was it like that originally? I wonder if your ROMs are very slightly different than the standard English ROMs.
I don't see anything about different Awa ROMs here: http://www.cpcwiki.eu/index.php/ROM_List (http://www.cpcwiki.eu/index.php/ROM_List)


The fact that it's repeating Unknown is normal because it's not able to ID your 0 upper ROM (BASIC) and then as it keeps trying new ROMs in other slots the same one comes up. Which even tells me that your BASIC ROM doesn't have the &80 ID byte that it's supposed to have, because if it did it would skip it in the checks.


Edit: I didn't answer the varying number next to ROM 7 (AMSDOS supposedly). Unless there's a bug, that's supposed to be a CRC16 of the ROM contents. So the fact that it varies is REALLY weird. Especially seeing how the machine is working.
Title: Re: Amstrad Diagnostics ROM
Post by: Audronic on 10:06, 25 February 21

[size=78%]Hi Noel[/size]


Quote from: llopis on 09:36, 25 February 21
Interesting. I see your startup screen is branded Awa. Is that something you did with the links, or was it like that originally? I wonder if your ROMs are very slightly different than the standard English ROMs.
I don't see anything about different Awa ROMs here: http://www.cpcwiki.eu/index.php/ROM_List (http://www.cpcwiki.eu/index.php/ROM_List)


[size=78%]The fact that it's repeating Unknown is normal because it's not able to ID your 0 upper ROM (BASIC) and then as it keeps trying new ROMs in other slots the same one comes up. Which even tells me that your BASIC ROM doesn't have the &80 ID byte that it's supposed to have, because if it did it would skip it in the checks.[/size]

Edit: I didn't answer the varying number next to ROM 7 (AMSDOS supposedly). Unless there's a bug, that's supposed to be a CRC16 of the ROM contents. So the fact that it varies is REALLY weird. Especially seeing how the machine is working.
\


The links on the mother board are set in Australia for AWAThe Rom is Still the Factory rom (second set of Photos)
I reset the machine 2 ways 1) by the reset button on the lower Rom board, 2) Turned power on.
The number just keeps changing


I hope that helps


Keep Safe


Ray
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 10:30, 25 February 21
Which ROM board are you using to test the diagnostics ROM? Not like that's likely to be the culprit, but just in case.


Is there any chance you could dump your 0 and 7 ROMs? I'm sure there has to be a BASIC program to do it somewhere, or I can write one for you really quickly. I'd love to do a diff against the English BASIC 1.1 and AMSDOS ROMs and see where it differs.


Dang, I just had this brilliant insight thinking that somehow the diagnostics ROM was mapped to bank 0 (in addition to the lower ROM), but I just checked its CRC and it's not the one you're getting!


As for the changing one... I'm baffled. It's as if it's a "fake" ROM that includes a current clock time or something like that. It's the only explanation I can think of. Do you ever get the same number if you try twice in a row, or is it different every time? (that would support the clock theory).
Title: Re: Amstrad Diagnostics ROM
Post by: Audronic on 13:30, 25 February 21
The roms in the cpc6128 are standard roms
40015 and 40025

The Rom board that I am using is the Bryce LowerRom Board

Yes the Number changes each time


Ray
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 18:15, 27 February 21
Quote from: Audronic on 13:30, 25 February 21
The roms in the cpc6128 are standard roms
40015 and 40025

The Rom board that I am using is the Bryce LowerRom Board

Yes the Number changes each time


Ray
Hi Ray,
If you get a chance, could you dump those ROMs and send them to me? I created a quick program to do that: https://github.com/llopis/amstrad-diagnostics/tree/main/ROMDump


On a related note, anybody knows who is maintaining the page of Amstrad ROMs in the Wiki? http://www.cpcwiki.eu/index.php/ROM_List I have come across some weird official ROMs that aren't there and it would be nice to make it more comprehensive.
Title: Re: Amstrad Diagnostics ROM
Post by: Bryce on 19:44, 27 February 21
Quote from: llopis on 18:15, 27 February 21
Hi Ray,
If you get a chance, could you dump those ROMs and send them to me? I created a quick program to do that: https://github.com/llopis/amstrad-diagnostics/tree/main/ROMDump (https://github.com/llopis/amstrad-diagnostics/tree/main/ROMDump)


On a related note, anybody knows who is maintaining the page of Amstrad ROMs in the Wiki? http://www.cpcwiki.eu/index.php/ROM_List (http://www.cpcwiki.eu/index.php/ROM_List) I have come across some weird official ROMs that aren't there and it would be nice to make it more comprehensive.

The CPCWiki is a... Wiki. Anyone can maintain or add content to any page they want. What "weird official ROMs" do you have?

Bryce.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 21:47, 27 February 21
Quote from: Bryce on 19:44, 27 February 21
The CPCWiki is a... Wiki. Anyone can maintain or add content to any page they want. What "weird official ROMs" do you have?
Ah, got it! I thought it was more curated than that. Happy to add any different ROMs I find then.


Apparently the Spanish 464 Schneider has a different ROM. Not sure what the difference is yet, but the CRC doesn't match. I'm hoping to get a dump tomorrow and confirm that.


It's also possible that Ray's Awa-branded 6128 has a different ROM too. Probably just a few bytes off, but it would be interesting to preserve them.
Title: Re: Amstrad Diagnostics ROM
Post by: rpalmer on 22:06, 27 February 21
There various different lower ROMs to handle the different keyboard layouts.
1. The default UK English/Australian QWERTY layout.
2. The French with the AZERTY layout.3. The German layout with accented keys.4. The Spanish layout with different accented keys to the German layout.
I think that is most if not all.
As for BASIC ROMs there are several notably 1.0 and 1.1. There are several other with patches for fixes to routines and speed up of others.
The sign on message is based on the link setting on the motherboard which are used as an index into a table of possible sign on messages types.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 22:54, 27 February 21
Quote from: rpalmer on 22:06, 27 February 21
There various different lower ROMs to handle the different keyboard layouts.
1. The default UK English/Australian QWERTY layout.
2. The French with the AZERTY layout.3. The German layout with accented keys.4. The Spanish layout with different accented keys to the German layout.
I think that is most if not all.
As for BASIC ROMs there are several notably 1.0 and 1.1. There are several other with patches for fixes to routines and speed up of others.
The sign on message is based on the link setting on the motherboard which are used as an index into a table of possible sign on messages types.


Right, I know that. But I'm already detecting the English/Spanish/French variations (no German yet) https://github.com/llopis/amstrad-diagnostics/blob/main/src/ROMTable.asm and that Schneider one in that 464 isn't one of them.
I also know the branding comes from the links, which makes the Awa ROM difference very curious.
Title: Re: Amstrad Diagnostics ROM
Post by: Audronic on 23:07, 27 February 21
Hi Noel


Ok I have the CPC 6128 at the ready


which rom numbers do you want me to dump ?


Thanks


Ray



Title: Re: Amstrad Diagnostics ROM
Post by: Audronic on 23:24, 27 February 21
Hi Noel


Ok I can Dump LOW OK
If I try to Dump  7 The CPC6128 Crashes ?
I have included the dump of LOW only

I have also tried it on another cpc6128 this also crashes on ROM 7

Keep Safe


Ray
Title: Re: Amstrad Diagnostics ROM
Post by: pelrun on 04:19, 28 February 21
Awa is absolutely in the standard English ROMs, although it was only really used in the early days of the Australian market before Amstrad established their own sales office here.
My circa-86 6128 was originally Awa, but after I blew the AY from static discharge it went off for repair and came back as Amstrad (I guess they just swapped the mainboard out.) I've since changed the links back to Awa :)
Title: Re: Amstrad Diagnostics ROM
Post by: Bryce on 11:08, 28 February 21
I thought we had all variations dumped and available here: http://www.cpcwiki.eu/index.php/ROM_List

Bryce.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 12:27, 28 February 21
Quote from: Audronic on 23:24, 27 February 21
Ok I can Dump LOW OK
If I try to Dump  7 The CPC6128 Crashes ?
I have included the dump of LOW only
Hi Ray,
Thanks! The crash was a bug on my part (not restoring ROM state) so that's fixed. But from the other dumps was enough: Your ROMs are indeed standard English ROMs.
So I wonder why the diagnostics ROM is reporting weird CRCs. I don't have that ROM extender, so I can't try it, but I wonder if it's mapping that ROM in the lower ROM and all the upper ROM slots? That's pretty weird.
I will make a version of the diagnostics ROM to load it in upper ROM anyway for people who want to use it from an M4 or something like that.


Quote from: Bryce on 11:08, 28 February 21I thought we had all variations dumped and available here: http://www.cpcwiki.eu/index.php/ROM_List
I thought so too, but as I said, there is a special ROM that Schneider added to the Spanish 464s (they pretty much scratched Amstrad and wrote Schneider). I don't know if we want it or not since technically it's not exactly Amstrad. But if we do, I'm happy to add it to the page.
Title: Re: Amstrad Diagnostics ROM
Post by: robcfg on 13:44, 28 February 21
Well, we cover a lot of peripherals that were not made by Amstrad, and Schneider was the german distributor of Amstrad, so I think it fits pretty well here.


Even if that weren't the case, I'd rather have it here than lost, so please add it.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 19:33, 28 February 21
Quote from: Audronic on 23:24, 27 February 21
Ok I can Dump LOW OK
By the way, I just released an upper ROM version for those with ROM boards that can't map the low ROM (or if it's more convenient). I suspect that version will report your existing ROMs correctly. I still can't figure out why that one caused the CRCs to be off.
Title: Re: Amstrad Diagnostics ROM
Post by: Audronic on 23:47, 28 February 21
Hi Noel


for completeness I have used the Version 2 romdump and was able to dump 0 and 7
I include a copy for your reference.


Thanks
Keep Safe


Ray
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 10:21, 02 March 21
Quote from: Sid_ on 08:03, 25 February 21
This diag rom may be installed on the c4cpc ?
Now it can (there's a cpr build in the latest release). If you check it out, let me know. I'm especially curious if it works on a GX4000 too.
Title: Re: Amstrad Diagnostics ROM
Post by: Sid_ on 10:26, 02 March 21
Thanks @llopis (https://www.cpcwiki.eu/forum/index.php?action=profile;u=1728) i'll try it.
Title: Re: Amstrad Diagnostics ROM
Post by: Shining on 11:11, 02 March 21
Quote from: rpalmer on 22:06, 27 February 21
There various different lower ROMs to handle the different keyboard layouts.
1. The default UK English/Australian QWERTY layout.
2. The French with the AZERTY layout.3. The German layout with accented keys.4. The Spanish layout with different accented keys to the German layout.
I think that is most if not all.
As for BASIC ROMs there are several notably 1.0 and 1.1. There are several other with patches for fixes to routines and speed up of others.
The sign on message is based on the link setting on the motherboard which are used as an index into a table of possible sign on messages types.


Is there really a german official internal ROM? I never heard of a CPC with a german keyboard by default. Until today I always thought that the only difference between uk and german cpcs were the internal brand jumper, the case (brand), the key colors on 464 and 664 and on 6128 the centronics.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 18:40, 04 March 21
I just released v0.5 of the Diagnostics ROM.
https://github.com/llopis/amstrad-diagnostics (https://github.com/llopis/amstrad-diagnostics)

It now has a more extensive upper RAM test and a keyboard test.

I know some of you have some crazy expansions and configurations, so if you try it, let me know if it works OK. It also checks whether C3 config is supported, so if you have an expansion that does NOT support it, I would be particularly interested in hearing if it reports it correctly.

Edit: Also, I think there's something going on with the upper ROM build that's not quite right. I was told that X-Mem and M4 display the name in weird ways or something like that. I also noticed I had to mark it as a foreground ROM for it to work, but it really is a background ROM. Any ideas what I'm doing wrong? It seems pretty straightforward, but I'm clearly missing something:
https://github.com/llopis/amstrad-diagnostics/blob/main/src/RSXTable.asm (https://github.com/llopis/amstrad-diagnostics/blob/main/src/RSXTable.asm)

Edit2: Fixed. I didn't understand the background ROM format properly and didn't realize the first jump was the initialization one.

And if you care about some of the background and finally led me to get started with this:
https://youtu.be/tw0ClciNUDQ (https://youtu.be/tw0ClciNUDQ)
Title: Re: Amstrad Diagnostics ROM
Post by: Animalgril987 on 20:57, 04 March 21
Hi Noel.
Can your diagnostic ROM  be used in an M4 or Romboard?


Great video, nice detective work. :D


Like your Amstrad T shirt!


Alan.
Title: Re: Amstrad Diagnostics ROM
Post by: vasilisk on 21:23, 04 March 21
Is it possible to have a dsk version of this diagnostic rom?
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 21:46, 04 March 21
Quote from: Animalgril987 on 20:57, 04 March 21
Can your diagnostic ROM  be used in an M4 or Romboard?
Great video, nice detective work. :D
Thanks, Alan!
Yes, you can install the upper ROM build. When you do, you can run it with |DIAG. But hang on an hour or so and wait for v0.6 that fixes how the upper ROM initializes itself.
Edit: Actually, instead of waiting a while, I just released a quick 0.51 with the updated upper ROM and nothing else. So give that one a try.


Quote from: vasilisk on 21:23, 04 March 21Is it possible to have a dsk version of this diagnostic rom?
Yes, it's already available in DSK. Check out the release zip file: https://github.com/llopis/amstrad-diagnostics/releases (https://github.com/llopis/amstrad-diagnostics/releases)
Title: Re: Amstrad Diagnostics ROM
Post by: Animalgril987 on 19:32, 05 March 21
Thanks for the quick reply, Noel.


I'll give it a go at the weekend.


Alan.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 20:47, 05 March 21
Quote from: Audronic on 08:56, 25 February 21
The id of rom 7 Varies ? 8179  - 2162 at restart (Power up ) I Varies each power up.
Hi Ray,
If you get a chance, could you give the latest version a try? (0.6) I'm curious if the ROM problem has been fixed or you still keep getting different CRCs every time.
https://github.com/llopis/amstrad-diagnostics/releases
Thanks!
Title: Re: Amstrad Diagnostics ROM
Post by: Audronic on 23:59, 05 March 21
Hi Noel

I have Burned an Eprom for the Lower Rom board
This is a Standard CPC6128 --  NO MODS

? No Test for lower Rom ??

Thanks

Keep Safe

Ray
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 10:09, 06 March 21
Quote from: Audronic on 23:59, 05 March 21
Hi Noel

I have Burned an Eprom for the Lower Rom board
This is a Standard CPC6128 --  NO MODS

? No Test for lower Rom ??


Great, it's looking better! Thanks for checking!


I'm not checking for low ROM there because you're using a ROM board taking over the low ROM  :) . If there's a way to programmatically disconnect it and access the system ROM, I'd love to know. I'm already doing that for the Dandanator, but I'm not doing anything special for X-Mem or M4 for example. Anybody knows a way?



Title: Re: Amstrad Diagnostics ROM
Post by: robcfg on 11:41, 06 March 21
On the M4 subject @Duke (https://www.cpcwiki.eu/forum/index.php?action=profile;u=1624) is your man  ;D
Title: Re: Amstrad Diagnostics ROM
Post by: Animalgril987 on 15:02, 06 March 21
|M4ROMOFF disables M4 ROM until next power cycle. :D
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 17:11, 06 March 21
Quote from: Animalgril987 on 15:02, 06 March 21
|M4ROMOFF disables M4 ROM until next power cycle. :D
OK, that's good that it exists. I would need a way to do it from assembly and to turn it back on after I'm doing checking the system lower ROM. I'm looking through the M4 dev info but I don't see it. http://www.spinpoint.org/cpc/m4info.txt Any ideas?
Title: Re: Amstrad Diagnostics ROM
Post by: Animalgril987 on 18:27, 06 March 21
 I don't have a disassembler capable of looking at ROMs at the moment, or I'd look at the M4 command jumpblock to find the entry point for  the RSX.
And it has probably moved depending on version number.


Hopefully @Duke (https://www.cpcwiki.eu/forum/index.php?action=profile;u=1624) will see the post and will be able to help.


Alan.
Title: Re: Amstrad Diagnostics ROM
Post by: robcfg on 18:54, 06 March 21
Quote from: llopis on 17:11, 06 March 21
OK, that's good that it exists. I would need a way to do it from assembly and to turn it back on after I'm doing checking the system lower ROM. I'm looking through the M4 dev info but I don't see it. http://www.spinpoint.org/cpc/m4info.txt (http://www.spinpoint.org/cpc/m4info.txt) Any ideas?


Send a PM to Duke  :D
Title: Re: Amstrad Diagnostics ROM
Post by: Duke on 08:39, 07 March 21
Quote from: Animalgril987 on 18:27, 06 March 21I don't have a disassembler capable of looking at ROMs at the moment, or I'd look at the M4 command jumpblock to find the entry point for  the RSX. And it has probably moved depending on version number. Hopefully @Duke (https://www.cpcwiki.eu/forum/index.php?action=profile;u=1624) will see the post and will be able to help. Alan.
It is easier to look directly into the M4 rom source code here :
https://github.com/M4Duke/m4rom (https://github.com/M4Duke/m4rom)

But the romsoff command is probably not gonna do it as it does a reset too.

Quote from: llopis on 17:11, 06 March 21
OK, that's good that it exists. I would need a way to do it from assembly and to turn it back on after I'm doing checking the system lower ROM. I'm looking through the M4 dev info but I don't see it. http://www.spinpoint.org/cpc/m4info.txt (http://www.spinpoint.org/cpc/m4info.txt) Any ideas?
I've just added a feature to latest M4 Firmware v2.0.7, so you can change lowerrom on the fly from the one uploaded to the romboard to the system or even the HACK menu one.

It's this command:
C_ROMLOW            0x433D         Implemented v2.0.7.
Map lower rom : data[0] = 0 system lower rom, 1 = lowerrom from romboard if enabled, 2 = lowerrom from HACK menu.

You can see various examples here on how to send commands to the M4 board:
https://github.com/M4Duke/M4examples (https://github.com/M4Duke/M4examples)

A version check is probably a good idea, since this is a new feature.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 11:54, 07 March 21
Quote from: Duke on 08:39, 07 March 21
I've just added a feature to latest M4 Firmware v2.0.7, so you can change lowerrom on the fly from the one uploaded to the romboard to the system or even the HACK menu one.

It's this command:
C_ROMLOW            0x433D         Implemented v2.0.7.
Map lower rom : data[0] = 0 system lower rom, 1 = lowerrom from romboard if enabled, 2 = lowerrom from HACK menu.

You can see various examples here on how to send commands to the M4 board:
https://github.com/M4Duke/M4examples (https://github.com/M4Duke/M4examples)

A version check is probably a good idea, since this is a new feature.
That's great. I'll look into adding it in the next release. Thanks!
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 16:57, 16 March 21
I just pushed out a new release of the diagnostics ROM. Mostly it detects and checks upper RAM up to 4MB, and it also pages out the M4 lower ROM for low ROM system test (thanks @Duke (https://www.cpcwiki.eu/forum/index.php?action=profile;u=1624) !).


You can download it and read the details here https://github.com/llopis/amstrad-diagnostics/releases/tag/v0.9


Title: Re: Amstrad Diagnostics ROM
Post by: VincentGR on 17:36, 16 March 21
Amazing work Noel, it's getting better and better.
Title: Re: Amstrad Diagnostics ROM
Post by: SkulleateR on 16:55, 20 March 21
Ok, I have some curiosity here and I'm stuck ...


I was given a 6128 from a friend but it's faulty, it won't load any 128KB game, else it's working fine .... Nearly the same issue that my old 6128 has, but that one died in a house fire while I was in hospital some weeks ago :(


So now I decided to fire up the diagnostic and check out whats the problem here. Since the 6128 got no Diskdrive I use my M4 from my 464.


First I decided to fire up ADR from dsk, RAM test passes fine even upper ram but it crashes when detecting Lower Rom ?
Next step was to use ADR Lower Rom, put it on Rom Slot 5, fire it up and it passes all tests !
Next one was ADR Upper Rom (think I put it on Slot 15), fire it up, startet with |DIAG and it also crashes when detecting Lower Rom but here it just resets the CPC, just what it mainly does when starting a 128KB game.


Does this now mean I have a faulty Lower Rom on the mainboard ? And the test passes when using the ADR as Lower Rom ??? Btw. I use the modified 6128 Rom for the M4 on Slot 31

Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 18:29, 20 March 21
Hmm... it sounds like you may be using v0.9? That one had a bug like that I believe. Make sure to use the latest release (https://github.com/llopis/amstrad-diagnostics/releases/). Let me know if that works.
Title: Re: Amstrad Diagnostics ROM
Post by: SkulleateR on 19:05, 20 March 21
I'm sure I downloaded THAT one, but k, now it works  :P


(https://i.ibb.co/3rkdqHq/IMG-20210320-185332.jpg)




Guess the UNKNOWN Rom (Lower) is the modified 6128 rom then ....


Ok, still don't know why I cannot start an 128KB game but I guess I will put this into another thread since it's not connected to ADR then ... thx :)
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 19:13, 20 March 21

Exactly. If you modified the 6128 ROM it just comes up as unknown.


I take it the upper RAM tests all passed fine? That would have also been my guess if you can't start 128K games.



Quote from: SkulleateR on 19:05, 20 March 21
I'm sure I downloaded THAT one, but k, now it works  :P


(https://i.ibb.co/3rkdqHq/IMG-20210320-185332.jpg)




Guess the UNKNOWN Rom (Lower) is the modified 6128 rom then ....


Ok, still don't know why I cannot start an 128KB game but I guess I will put this into another thread since it's not connected to ADR then ... thx :)
Title: Re: Amstrad Diagnostics ROM
Post by: SkulleateR on 19:19, 20 March 21
Guess so, since I only got 64KB this should be BANK 00 ...


(https://i.ibb.co/8NZBvBH/IMG-20210320-191737.jpg)
Title: Re: Amstrad Diagnostics ROM
Post by: Animalgril987 on 17:18, 21 March 21
Hi Noel.
I've run ADR a couple of times, and each time I do the upper ram test I get a different sequence of red areas.
I have a 464 with M4 board and Revaldinho's 512k ram (C3 mode enabled).


I have the latest version of ADR.


Alan.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 18:10, 21 March 21
Thanks for letting me know, Alan. I also have Revaldinho's expansion, but I haven't tried it with the diagnostics program yet.
Did you have the ADR on the upper ROM or the lower ROM on the M4? Could you post a pic in case it gives me a hint?
Thanks!

Title: Re: Amstrad Diagnostics ROM
Post by: Animalgril987 on 22:25, 21 March 21
Hi Noel.
I just ran the file in the dsk.
I'll try and get some screenshots of the ram test, but it won't be until next weekend.


Alan.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 23:07, 22 March 21

Hi Alan,


I just tested the diagnostics program with the M4 and the 512K RAM expansion and I didn't have any weird errors. The only weird thing is that it reports 576KB, but I suppose that's correct since I have 64KB of upper RAM already on a 6128 and the expansion probably maps itself after that.


Is it possible that you're not getting quite enough power to the expansion card and it's causing those intermittent errors?




--Noel

Quote from: Animalgril987 on 22:25, 21 March 21
Hi Noel.
I just ran the file in the dsk.
I'll try and get some screenshots of the ram test, but it won't be until next weekend.


Alan.
Title: Re: Amstrad Diagnostics ROM
Post by: Animalgril987 on 00:03, 23 March 21
Hi Noel.
The MX4 compatible backplane has a separate supply from the CPC, and I only have the RAM expansion and Duke's M4 plugged in.




Alan



Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 10:37, 23 March 21
Quote from: Animalgril987 on 00:03, 23 March 21
Hi Noel.
The MX4 compatible backplane has a separate supply from the CPC, and I only have the RAM expansion and Duke's M4 plugged in.
Right. I thought that maybe you hadn't powered it on and it maybe wasn't enough.
When you get a chance, try version 1.0 and see if that fixes it. I fixed how I was addressing the upper RAM ports. I don't think it would have caused that, but you never know.
Title: Re: Amstrad Diagnostics ROM
Post by: pelrun on 14:08, 23 March 21
I used to have constant crashes with my M4 and other cards, and it turned out to be the 5V to the CPC. Didn't matter that I had a separate high-power supply going to the MX4, or directly to the M4, things crashed *all the time* until I put 5.1-5.2V into the CPC and removed the second supply altogether. Now it just works.
Title: Re: Amstrad Diagnostics ROM
Post by: Animalgril987 on 19:36, 27 March 21
Hi Noel.
I can't attach JPGs of the screen, for some reason, but I still get various different ram faults being recorded.
In one test, the graphic showed everything was ok, but the summary line at the bottom reported faults.


Alan.
Title: Re: Amstrad Diagnostics ROM
Post by: Audronic on 04:10, 10 April 21
Hi Noel


Just burned a  Version 1.01L  Eprom for the Lower Rom Board
It works well in the CPC464

with the exception that in the CPC6128 it thinks the Machine is a 464 and the Keyboard layout reflects that.
Apart from that it seems to work well

Thanks for all your good work

Keep Safe

Ray
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 09:02, 10 April 21

Hi Ray,


Great to hear! The detection of the model has been fixed (should be ready in the next release tomorrow probably). The problem is that it shows CPC 464 instead of "It's a CPC but I have no idea which model it is" because the only reliable way I know of detecting the model is looking at the lower system ROM (which is not accessible if you're using a low rom board).


I could try looking at RAM and FDC presence, but a 464 can have all those things too. Maybe in the future I can be smarter about it.


Anyway, glad it's working better and thanks for the update!




--Noel

Quote from: Audronic on 04:10, 10 April 21
Hi Noel


Just burned a  Version 1.01L  Eprom for the Lower Rom Board
It works well in the CPC464

with the exception that in the CPC6128 it thinks the Machine is a 464 and the Keyboard layout reflects that.
Apart from that it seems to work well

Thanks for all your good work

Keep Safe

Ray
Title: Re: Amstrad Diagnostics ROM
Post by: gerald on 09:57, 10 April 21
Quote from: llopis on 09:02, 10 April 21
The detection of the model has been fixed (should be ready in the next release tomorrow probably). The problem is that it shows CPC 464 instead of "It's a CPC but I have no idea which model it is" because the only reliable way I know of detecting the model is looking at the lower system ROM (which is not accessible if you're using a low rom board).
For poeple using the XMEM for overriding the lower ROM, you might just ask to re-enable the internal ROM after copying the code in available RAM (ie after checking it).Then you could test the internal lowerROM.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 10:56, 10 April 21
Quote from: gerald on 09:57, 10 April 21
For poeple using the XMEM for overriding the lower ROM, you might just ask to re-enable the internal ROM after copying the code in available RAM (ie after checking it).Then you could test the internal lowerROM.
Oooh, I didn't know you could do that with XMem. I'm already doing it with the Dandanator and the M4. Could you point me in the direction of the simplest way to re-enable the internal ROM and disable it again for the XMem? Thanks!
Title: Re: Amstrad Diagnostics ROM
Post by: gerald on 11:57, 10 April 21
Quote from: llopis on 10:56, 10 April 21
Oooh, I didn't know you could do that with XMem. I'm already doing it with the Dandanator and the M4. Could you point me in the direction of the simplest way to re-enable the internal ROM and disable it again for the XMem? Thanks!
It's the user that has to physically toggle a switch  ;)
Title: Re: Amstrad Diagnostics ROM
Post by: CraigsBar on 14:12, 26 April 21
Hi @Noel


I see on the Github a fix for Crash in the DSK version from 19 days ago. Any idea when this will be released as I currently have a new Tall Key CPC 464 that I want to give the a once over and the DSK woudl be be better w3ay of loading it. The version in releases however crashes


Thanks
Craig

Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 14:21, 26 April 21
Quote from: CraigsBar on 14:12, 26 April 21
I see on the Github a fix for Crash in the DSK version from 19 days ago. Any idea when this will be released as I currently have a new Tall Key CPC 464 that I want to give the a once over and the DSK woudl be be better w3ay of loading it. The version in releases however crashes
Argh, yes! :-) I kept waiting to fix one thing... and then I got busy. I'll release a version tonight. Sorry for the delay.
Title: Re: Amstrad Diagnostics ROM
Post by: CraigsBar on 20:02, 26 April 21
Quote from: llopis on 14:21, 26 April 21
Argh, yes! :-) I kept waiting to fix one thing... and then I got busy. I'll release a version tonight. Sorry for the delay.


Awesome news, thanks. This tool is amazing and I am now using it on most machines. But it is easier to use the disc version I find than openeing machines and swapping the lower rom ;)


No need to appologise, the test suite you ahev made is amazingly good.

Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 08:30, 27 April 21
Quote from: CraigsBar on 20:02, 26 April 21

Awesome news, thanks. This tool is amazing and I am now using it on most machines. But it is easier to use the disc version I find than openeing machines and swapping the lower rom ;)
Glad to hear! I plan to keep updating it, so if you have some suggestions of things to check, let me know. Especially now that I have a new main menu and status screen, there's a lot more room for other diagnostics (the problem is starting to be fitting it in the 16KB ROM!).


New release is up by the way: https://github.com/llopis/amstrad-diagnostics/releases
Title: Re: Amstrad Diagnostics ROM
Post by: CraigsBar on 09:14, 27 April 21
Quote from: llopis on 08:30, 27 April 21
Glad to hear! I plan to keep updating it, so if you have some suggestions of things to check, let me know. Especially now that I have a new main menu and status screen, there's a lot more room for other diagnostics (the problem is starting to be fitting it in the 16KB ROM!).


New release is up by the way: https://github.com/llopis/amstrad-diagnostics/releases (https://github.com/llopis/amstrad-diagnostics/releases)


Yep, grabbed it and tested this morning. Yay the full 512kb in the Expansions is OK :) Interestingly it reports the CPC Version on this Tall Key as GX4000/Plus on the menu screen but correctly identifies the Roms on the Rom Check. Is this a bug? or is it the "fault" of the DDI-4 expansion (that clones a DDI-1, 256k Ram and 256k Silicon disc in a single interface) from Piotr (Zaxon).


Next test: I'll get the CDT and load that and see if this has the same issues with no disc interface fitted.

Title: Re: Amstrad Diagnostics ROM
Post by: CraigsBar on 09:21, 27 April 21
Quote from: CraigsBar on 09:14, 27 April 21

<snip>

Next test: I'll get the CDT and load that and see if this has the same issues with no disc interface fitted.


OK completed this test on the tall key... and the result is "Unknown CPC"
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 09:46, 27 April 21
Quote from: CraigsBar on 09:14, 27 April 21
Yep, grabbed it and tested this morning. Yay the full 512kb in the Expansions is OK :) Interestingly it reports the CPC Version on this Tall Key as GX4000/Plus on the menu screen but correctly identifies the Roms on the Rom Check. Is this a bug? or is it the "fault" of the DDI-4 expansion (that clones a DDI-1, 256k Ram and 256k Silicon disc in a single interface) from Piotr (Zaxon).

OK completed this test on the tall key... and the result is "Unknown CPC"
Oh wow, that's unexpected!


It attempts to detect GX4000/Plus by turning on the ASICS control registers. No normal CPC should do that, and I didn't think the DDI-4 did either, right? That's quite odd. I have a DDI-3 and I have a DDI-5 coming my way, so I can try it with those.


As for the unknown CPC... that at least it's more normal. It says that if it's not a Plus model but can't make sense of the system ROM. What does it say for ROM test? Does it detect the lower ROM correctly?
Title: Re: Amstrad Diagnostics ROM
Post by: CraigsBar on 10:15, 27 April 21
Quote from: llopis on 09:46, 27 April 21
Oh wow, that's unexpected!


It attempts to detect GX4000/Plus by turning on the ASICS control registers. No normal CPC should do that, and I didn't think the DDI-4 did either, right? That's quite odd. I have a DDI-3 and I have a DDI-5 coming my way, so I can try it with those.


As for the unknown CPC... that at least it's more normal. It says that if it's not a Plus model but can't make sense of the system ROM. What does it say for ROM test? Does it detect the lower ROM correctly?


OK some tests done! All of these were loaded from tape. Even when the cpc had AmsDOS to ensure the exact same software was used.


First 2 are taken with stock configuration, no expansions just the cpc 464 tall key.


Second 2 are with the DDI-4 attached.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 10:45, 27 April 21
Quote from: CraigsBar on 10:15, 27 April 21

OK some tests done! All of these were loaded from tape. Even when the cpc had AmsDOS to ensure the exact same software was used.


First 2 are taken with stock configuration, no expansions just the cpc 464 tall key.


Second 2 are with the DDI-4 attached.
That's really useful. Thanks! I'll see if I can fix it and release a new version soon.
Title: Re: Amstrad Diagnostics ROM
Post by: CraigsBar on 17:01, 27 April 21
It works fine with the Z-MEM 1mb ram expansion tho. So that make this an awesome tool.

Title: Re: Amstrad Diagnostics ROM
Post by: Audronic on 02:39, 26 May 21
Hi Noel

Just tested the Lower rom version v1.1l.
It works well

Hows the progress on the next version.
Keep up the good work

LowerRom eprom data in the attachment.

Keep Safe

Ray

Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 08:05, 02 June 21
New release of the diagnostics ROM is up: https://github.com/llopis/amstrad-diagnostics/releases/tag/v1.2
The big changes are fixing the model detection and changing the RAM detection algorithm to be able to tell bad RAM from no RAM. It sounds dumb, but it's harder than it sounds. Before I had someone show me that their CPC 6128 with one bad upper RAM IC was reported as just having 64KB of RAM, but this new approach should fix that.
Title: Re: Amstrad Diagnostics ROM
Post by: Audronic on 09:00, 02 June 21
Hi Noel


V1.2 Lower Rom


Thanks


CPC ID ? I have a Parados rom installed That may be the Problem.


Thank
Keep Safe
Ray
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 09:24, 02 June 21
Quote from: Audronic on 09:00, 02 June 21
CPC ID ? I have a Parados rom installed That may be the Problem.
Hi Ray,


Parados shouldn't matter because that's an upper ROM. The only way I know to detect the model is by looking at the lower (OS) ROM and looking for specific byte patterns. If you're using a ROM board that overrides the lower ROM, then that's normal it says that. I have special code for an M4 or a Dandanator to page the diagnostics ROM out, read the OS ROM, and then page the diagnostics back in. But on a regular ROM board or an EPROM, there's nothing I can do about it.


If you want to make sure, you can always run it from DSK and it should correctly detect all your standard ROMs.
Title: Re: Amstrad Diagnostics ROM
Post by: Audronic on 10:51, 02 June 21
Hi Noel

Ok Thanks for the info.
I have run the File version, Id OK

Keep up the good work

Keep Safe
Ray
Title: Re: Amstrad Diagnostics ROM
Post by: SagaDS on 20:53, 15 November 21
Hello,
I have tested the 1.2A DSK version on my Amstrad 6128 and something seems weird.
After the ROM test, the upper ROM seems OK, but on the main screen the result is FAILED.
It is an unmodded Amstrad with these results:LOW ROM : OS 6128 EN (B360)ROM 0 : BASIC EN (CAA0)ROM 7 : AMSDOS (0F91)
If you need something please tell me.

Thanks for the tool and all your videos.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 22:01, 15 November 21
Quote from: SagaDS on 20:53, 15 November 21
I have tested the 1.2A DSK version on my Amstrad 6128 and something seems weird.
After the ROM test, the upper ROM seems OK, but on the main screen the result is FAILED.
It is an unmodded Amstrad with these results:LOW ROM : OS 6128 EN (B360)ROM 0 : BASIC EN (CAA0)ROM 7 : AMSDOS (0F91)
If you need something please tell me.
Thanks for the report! Someone else also mentioned that. They had an ASIC version of the board. Do you know what kind of board your 6128 has? I'm curious if it's also the same kind or a normal one with a 40010 Gate Array.

Title: Re: Amstrad Diagnostics ROM
Post by: SagaDS on 10:37, 16 November 21
It's one of the first French sales, so it is still a QWERTY version (v3) from UK. Nothing French on the keyboard or the ROM.

Nothing modified from my side (just a GOTEK plugged in).

Every other reports of the diagnostic app seems good (version / id).

Don't know the board revision. Do you want me to check? Do you prefer a picture?
Title: Re: Amstrad Diagnostics ROM
Post by: SagaDS on 21:44, 16 November 21
Can't send a picture yet.
But it is a Z70290 board MC0020B.ROMS 40015 and 40025. GA 40010.
Toshiba PIO. 5M2 HD46505SP CRTC detected as CRTC 0.

Tell me if you need more.
Title: Re: Amstrad Diagnostics ROM
Post by: Audronic on 03:23, 05 March 22
Hi Noel

Diagnostic rom Version 1.3L

Still has a small concern Identifying an Unmodified CPC464.
The Rom is placed in a (Bryce) Lower rom board.

Photo included

Keep Safe

Ray
Title: Re: Amstrad Diagnostics ROM
Post by: Audronic on 22:57, 05 March 22
Hi Noel

Diagnostic rom Version 1.3L

Still has a small concern Identifying an Unmodified CPC6128 as well..
The Rom is placed in a (Bryce) Lower rom board.
Photo included
Keep Safe
Ray
Title: Re: Amstrad Diagnostics ROM
Post by: SerErris on 10:13, 06 March 22
Hi @llopis Noel,

I planning a new Hardware to support the DiagRom in an EPROM.

What code is responsible to disable the lower ROM itself?

How does the Dandanator manage to activate itself and deactivate itself (the hardware partJ

I am designing this to deliver a low-cost option that also can be built at the time of component shortage.
Title: Re: Amstrad Diagnostics ROM
Post by: TotO on 10:44, 06 March 22
On a CPC, the signal ROMDIS disable the 32K ROM IC that include the Firmware and the BASIC. The Gate Array control the A14 pin to switch between the Lower and the Upper part of this ROM circuit to see two 16K pages. The Gate Array RMR bit2 and bit3 allow to enable/disable the Lower and Upper ROM paging respectively by software: https://www.grimware.org/doku.php/documentations/devices/gatearray

At the meaning of words, Lower RAM and Upper RAM do not exist. ;D
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 12:04, 06 March 22
Quote from: Audronic on 22:57, 05 March 22Diagnostic rom Version 1.3L

Still has a small concern Identifying an Unmodified CPC6128 as well..
The Rom is placed in a (Bryce) Lower rom board.
Hi Ray,
Yes, that's to be expected unfortunately. The Amstrad doesn't have a good way to detect the model, so it's something I do looking at specific bytes in the system ROM. But in this case the diagnostics ROM is overriding the system ROM and I have no way to access it.
I could try using the amount of memory and presence of FDC or not, but that's even less reliable than the ROM given memory expansions and other add-ons.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 12:14, 06 March 22
Quote from: SerErris on 10:13, 06 March 22I planning a new Hardware to support the DiagRom in an EPROM.
What code is responsible to disable the lower ROM itself?
How does the Dandanator manage to activate itself and deactivate itself (the hardware partJ
Good question. In general, you can override the lower ROM like ToTo said. But to take it a step further, it's great if you expose a way to let software control if your device is overriding that ROM or not. That allows the diagnostic program to turn its own ROM off and access the system ROM for identifying the model, making sure the ROM is correct, etc. I have implement specific methods for the Dandanator (https://github.com/llopis/amstrad-diagnostics/blob/main/src/Dandanator.asm) and the M4 (https://github.com/llopis/amstrad-diagnostics/blob/main/src/M4.asm) to do that.

They both involve just communicating with the device and sending the command to turn it on and off. The M4 uses a traditional port to listen for commands, but the Dandanator does a crazy/cool method involving sniffing opcode sequences to know when to activate. That removes any potential port clashing. You can find the details here (http://www.dandare.es/Descargas_CPC/CPC%20Dandanator%20DevDoc.zip). If you implement either one of those two methods, the swapping will work automatically on your device. If you do something different, let me know and I'll try to add support for it.

One request: If you're going to be listening out on specific ports, please pick something that's not used (https://www.cpcwiki.eu/index.php/I/O_Port_Summary) (or not not commonly used), and please, please, please, do full address decoding. A few modern devices don't do that and simply crash when using other extensions or even during the 1MB RAM scan that the diagnostics ROM does.
If you have any specific questions or anything, feel free to post here to contact me directly.
Title: Re: Amstrad Diagnostics ROM
Post by: llopis on 12:17, 06 March 22
Quote from: TotO on 10:44, 06 March 22At the meaning of words, Lower RAM and Upper RAM do not exist. ;D
That is correct. Is there a better term to describe the difference between the default 64KB RAM and the RAM can can be swapped into place? Happy to use it as long as it fits in there :-)
Title: Re: Amstrad Diagnostics ROM
Post by: TotO on 12:33, 06 March 22
Quote from: llopis on 12:17, 06 March 22That is correct. Is there a better term to describe the difference between the default 64KB RAM and the RAM can can be swapped into place? Happy to use it as long as it fits in there :-)
Grimware use "Base RAM" and "Extended RAM" (BASE RAM / EXT. RAM)
I have used Video Gate Array RAM and Expansion RAM (VGA RAM / EXP RAM)
We sadly can't use Chip RAM and Fast RAM (like on Amiga), for any reasons... :D
Title: Re: Amstrad Diagnostics ROM
Post by: SerErris on 19:58, 06 March 22
@llopis

I did implement a way to deactivate the lower ram alike dandanator and M4 could do.

I checked the ROM code on github and have created a version that can disable it.

I now need to wait for Parts to breadboard it and then if the code changes work, I can do a pull request.

It is a simple change (thanks to the great code you have written). I added a file (like the ones for M4 etc) and called the correct routines at the same places.

So that should work, but need verification of cause.

/Edit: Whatever I did wrong .. I was unter the impression that I would actually need lower AND upper rom images ... After studying the source code of the rom I now understood, that are different ways to use the ROM (either lower for deep dive diagnostic, or higher to get called from |RSX.

That simplifies a lot for me.

Cheers
Title: Re: Amstrad Diagnostics ROM
Post by: Audronic on 00:47, 07 March 22
@llopis 

Hi Noel

USIfAC's Rom Initialization code checks the byte at &0006 and according to the value determines the model of CPC.
Hope that this is of some help

Keep Safe

Ray
Title: Re: Amstrad Diagnostics ROM
Post by: SerErris on 11:37, 07 March 22
Quote from: llopis on 12:14, 06 March 22One request: If you're going to be listening out on specific ports, please pick something that's not used (or not not commonly used), and please, please, please, do full address decoding.
Hi,

the board I am doing is aimed to be as low cost as possible. That means it does not have any CPLD or MCU for logic decoding. It has only TTL compatible logic.

It is using address &FBEC, which is only used by two very old devices (not sure if they do still exist). 

So that should be pretty save to use.

But I hear ya and have included a switch to turn of the IOPort. So if you want to use it just as lower rom than you could use that switch to turn the SW Disable feature of (e.g. IO Port turned off) and then it will not react to any IO Message. For the Diagnostic ROM specifically that is then enabled to allow for disablement of the ROM on the module.

I do not think that the intended use for the Diagnostic ROM is getting in the way of anything else, as you typically use the Diagnostic ROM without anything else attached.

So the code required to disable the ROM is:
ld bc,&FBEC
ld a,1
out (C),a

and enable is as simple:
ld bc,&FBEC
ld a,0
out (C),a

D0 is actually used to drive the Flipflop for that activity.
Title: Re: Amstrad Diagnostics ROM
Post by: Rabs on 11:27, 10 June 22
Love the diagnostic ROM :). So how does it detect the FDC? Asking because I have an Amstrad CPC 6128 with a faulty drive. Well the drive itself is fine (fine in another CPC). Can hear the drive spin. Does not hang, just does not detect the disk. Also interestingly, it does not load any tapes. So using an external ROM card I ran the diagnostics and it does not detect the FDC. Everything else passed. About to start tracing the logic gates but any help would be much appreciated.
Title: Re: Amstrad Diagnostics ROM
Post by: GUNHED on 12:30, 10 June 22
You could use the Porting System of FutureOS to access / check ports directly. The FDC usually returns &80 at its base address of &FB7E.

Here a video just in case:
https://www.youtube.com/watch?v=6iRkefzm_0I&t=42s
Title: Re: Amstrad Diagnostics ROM
Post by: Rabs on 17:44, 14 June 22
Quote from: GUNHED on 12:30, 10 June 22You could use the Porting System of FutureOS to access / check ports directly. The FDC usually returns &80 at its base address of &FB7E.

Here a video just in case:
https://www.youtube.com/watch?v=6iRkefzm_0I&t=42s

Loaded FutureOS run the System Monitor and &FB7E is returning &FF. Guess that is not as expected.
Title: Re: Amstrad Diagnostics ROM
Post by: GUNHED on 14:08, 15 June 22
Quote from: Rabs55 on 17:44, 14 June 22
Quote from: GUNHED on 12:30, 10 June 22You could use the Porting System of FutureOS to access / check ports directly. The FDC usually returns &80 at its base address of &FB7E.

Here a video just in case:
https://www.youtube.com/watch?v=6iRkefzm_0I&t=42s

Loaded FutureOS run the System Monitor and &FB7E is returning &FF. Guess that is not as expected.
The returned value indicated that the FDC is _NOT_ present (or defective). Next steps could be:
- Check if the FDC is broken or not
- Check if the FDC is connected to the CPC with all needed signals

The floppy itself comes after the FDC. So, yes, it makes total sense that it works.
Title: Re: Amstrad Diagnostics ROM
Post by: GUNHED on 15:20, 10 November 22
Back to topic. Since the Amstrad Diagnostic Software from @llopis became the quasi standard on CPC for hardware testing (not undeserved of course) I had a closer look at it recently.
It's a great piece of work.

And there could be an additional improvement. We know lots os "common used" ROMs like Maxam, X-DDOS, ParaDOS, RDOS, Protext and all that stuff...
Now it would be great if more of them could be made "known" to the Amstrad Diagnostics software.

Here a picture to show what I mean (...means please make most/all red stuff yellow :))
Title: Re: Amstrad Diagnostics ROM
Post by: GUNHED on 15:24, 10 November 22
Quote from: llopis on 12:17, 06 March 22
Quote from: TotO on 10:44, 06 March 22At the meaning of words, Lower RAM and Upper RAM do not exist. ;D
That is correct. Is there a better term to describe the difference between the default 64KB RAM and the RAM can can be swapped into place? Happy to use it as long as it fits in there :-)
For the first 64 KB: Main RAM
For the next 512 KB (via &7Fxx): Expansion RAM
For the next 3,5 MB (via. &78, &79, &7A, &7B, &7C, &7D and &7E): Extension RAM
That's also used by FutureSoft manuals. It describes pretty good I think.

(Annotation: imo the first 64 KB shouldn't be called base ram, since ram byte &FFFF really is not at any base).
Title: Re: Amstrad Diagnostics ROM
Post by: eto on 16:01, 10 November 22
How about "Core RAM"? Without the core, nothing will work. 
Title: Re: Amstrad Diagnostics ROM
Post by: Prodatron on 18:45, 11 November 22
I am used to...
- primary 64K ram bank
- secondary 64K ram banks (multiple)
Now Noel has a lot of choices :D
Title: Re: Amstrad Diagnostics ROM
Post by: GUNHED on 13:17, 12 November 22
Quote from: eto on 16:01, 10 November 22How about "Core RAM"? Without the core, nothing will work.
Four letters... already the right size of a word.  ;D

/unserious mode on
However, I brings me to the idea to see if a CPC can work without RAM. Once I had the 6128plus running without firmware+basic. Time to make a rom-only os then...  :laugh:
/unserious mode off
Title: Re: Amstrad Diagnostics ROM
Post by: eto on 13:30, 12 November 22
Quote from: GUNHED on 13:17, 12 November 22Time to make a rom-only os then...  :laugh:
Fun fact: The amstrad diagnostics is ROM only- at least partially. The lower RAM check works without any RAM being attached. 

Title: Re: Amstrad Diagnostics ROM
Post by: f-bone on 17:54, 12 November 22
hi guys! what a great piece of work!.. need to ask a question regarding the M4 board.. I managed to get it to work by adding the upper diagrom in the root of the SD card and then run |diag.

the question is can I somehow set it up that when I power on the CPC6128 the diagrom is booted automatically from M4 so I can troubleshoot machines with corrupt ROM chips or bad ram?

thank you so much!
Title: Re: Amstrad Diagnostics ROM
Post by: pelrun on 10:00, 14 November 22
Put the lowerrom version in a high M4 slot and configure the M4 to use that slot as lowerrom. That will boot it on startup.
Title: Re: Amstrad Diagnostics ROM
Post by: f-bone on 18:01, 14 November 22
perfect thank you pelrun! I will try that tonigh/tomorrow (need to read first how I set M4 to use it as lowerrom)
Title: Re: Amstrad Diagnostics ROM
Post by: WacKEDmaN on 04:04, 23 November 22
Quote from: GUNHED on 15:24, 10 November 22
Quote from: llopis on 12:17, 06 March 22
Quote from: TotO on 10:44, 06 March 22At the meaning of words, Lower RAM and Upper RAM do not exist. ;D
That is correct. Is there a better term to describe the difference between the default 64KB RAM and the RAM can can be swapped into place? Happy to use it as long as it fits in there :-)
For the first 64 KB: Main RAM
For the next 512 KB (via &7Fxx): Expansion RAM
For the next 3,5 MB (via. &78, &79, &7A, &7B, &7C, &7D and &7E): Extension RAM
That's also used by FutureSoft manuals. It describes pretty good I think.

(Annotation: imo the first 64 KB shouldn't be called base ram, since ram byte &FFFF really is not at any base).
looking at these images on grimware site..it would make sense to call it "base ram" and "extended ram"

(https://www.grimware.org/lib/exe/fetch.php/documentations/devices/gatearray.pal/ga.illustration.memory.mapping.png)

(https://www.grimware.org/lib/exe/fetch.php/documentations/devices/gatearray.pal/ram.layout.png)
Title: Re: Amstrad Diagnostics ROM
Post by: ikonsgr on 18:53, 13 January 23
Finally,i manage to run diagnostic using my new ULIfAC board (e.g. merge of USIfAC II+ RAM/ROM board):

diagnostic2.jpg

diagnostic1.jpg

What fixed the crashing problem (in ROM test, when it reached usifac's rom number) was to incorporate diagnostic tool into an RSX command (using the binary from dsk image).
 I also tested using upper and lower diagnostic rom too, but with upper rom, it crashed in rom test, and using the lower rom (boots directly into diagnostic tool), it seems to reboot rom (runs again basic 64k ram test and gives initial screen).
 Anyway,i think it would be helpful to have this great dignostic tool as an rsx command for direct usage ;-)
Title: Re: Amstrad Diagnostics ROM
Post by: pollito on 17:32, 23 March 24
Just a clarification of what @pelrun said regarding running the diagnostics using an M4 card (I've just done this).

Assuming the OS ROM is in slot 31, upload the Diag Lower ROM to slot 30 (low is high! :D ). Then, scroll up to the top and make sure Lower-rom Enabled is ticked, and Set. Then, change Lower-rom slot to 30, Set it, and do an M4 Reset from the Control page.

Note that once the CPC crashed when I configured the above, after the M4 reset. If this happens, power cycle the CPC, and the diagnostics should run as normal.
Powered by SMFPacks Menu Editor Mod