You can download the Amstrad Diagnostics ROM project here github.com/llopis/amstrad-diagnostics For questions or if you're interested in contributing, join us in the Discord server: discord.gg/ETcCh6J
Hi Noel ... thanks for that great tool. I am building a small external board for the Mother X4 carrier to have a lower rom active. So I assume your diagnostic ROM is a lower ROM replacement, correct? ... I am going to join your discord, think that is easier for further discussion.
Yet another riveting detective story. No bad IC goes unpunished with Noel on the case. Not only was the repair interesting, this diagnostic you've made already exceeds anything out there for the CPC if I understand you properly. I predict this will be a tremendous asset to the Amstrad CPC community, as you yourself are. Brilliant. It's too bad Amstrad did not make much of an appearance here in Canada. They seem like fine machines. Around here, it was mostly Commodore followed by Apple II, with Atari, TRS-80, and TI99 bringing up the rear. I would have loved one of those CPC machines.
Those close-up shots showing the Z80, 8255, and TTL chips bring a lot of memories :) I used to design stuff based on those all the time back in the 80s. Heck, at some point I could read hex z80 code!
Neatly done! Your approach shows not only good ICO (Input/Conversion/Output) troubleshooting, but a sound knowledge of how the Amstrad platform works at the component level. Your diagnostics will likely catch on with other Amstrad users and technicians.
Fascinating video! I bought a 6128 in 1985, and used it for 8 years, until I bought a Mac IIci in 93. I still have both, as well as one of the DEC Pro/350 I learnt PDP-11 assembler on in 1988 as a CS student. I had the 6128 powered up maybe 15+ years ago, it worked then, except the rubber band of the floppy drive. I guess the next time I visit my mother, I will dig up all the machines from the basement and see how they are doing. This video was very inspiring!
Brilliant video and repair. Seeing that pcb and those chips brought me back to my first job on the test floor of a semiconductor assembly plant where we tested thousands of Z80s, 765s and 8255s along with 8251s, 8257s 8035s, 8085s and static ram! In any slack time I made cpu boards for projects. Great times. Great channel.
Ingenious -- taking a partially-working computer and using the stuff on it that *does* work to help you diagnose its own ROMs. I'd have gotten the "must remove the ROM chip so I can read it directly" business stuck in my head, and it never would've occurred to me to write a program to check the ROM's CRC. Such an elegant solution for that! I love it!
I have no experience (or Nostalgia) with this machine, but I really enjoyed this video. I know it took you longer than you expected, but the internet needs more articles and videos like this.
Thanks, Michael! It took a bit longer but not too bad. What really ate a lot of my time was further development on the diagnostics ROM afterwards. I pretty much spent all last week doing that because I couldn't stop thinking about it 😃
@@NoelsRetroLab I get that for sure. I'm doing a multi part series on ciphers on the Commodore. No one reads long form articles any more, but I can't stop thinking about them so I soldier on. You saying that makes me feel normal (ish). Happy monday!
I don't own an Amstrad CPC, but I have several ZX Spectrums and I know how useful these diagnostic software are. I use DiagROM from Retroleum and of course the ZX Diagnostics you mentioned. I am sure your diagnostic software will be a huge hit and very much appreciated in the Amstrad community. Great work!
It's always nice to look at the work of a perfectionist. Excellent work organization and clear comments. This is very motivating. Thanks to your videos, I have repaired a cassette audio player and a vintage audio amplifier. Thank you very much and good health!
My Amstrad fails from time to time loading from the disk. I don't think I'll have to change any chip but now I know where to look at and clean thoroughly. Many thanks.
Great work and thank you for sharing your workflow of how to test a system. Also nice that you got around to working on your diagnostic code. Can't wait to see how you have progressed on it and the new features that the you and the community have added to it.
It is impressive as usual, you combine hardware knowledge plus programming background without losing your expression 'mmm, interesting' in front of death screens. You demonstrates that a computer is an easy to repair device, always if you have an spare chip or whatever you might need, sometimes very difficult to obtain. Go ahead about diagnostics tool for Amstrad, I am sure you'll offer us a professional solution, for sure. I read comments and I don't see many Spanish followers, don't understand, you offer a really professional work, thanks.
I do not have a Amstrad CPC nor have I ever had one. But loved watching this video to see how you progress through the fault finding route and end up writing some code to help Diagnose Rom faults. I do however have a Zx Spectrum +3 with a Disk error it can not find track 0. 👍
When diagnostic software hangs, my thoughts was exactly the same - something wrong with CS and there is bus conflicts.. 😂 Great repair! For diagnostic software update, You can add 8255 response test (writing registers with initialization values one by one and then reading back) and for floppy controller and then verifying values.. Main rule - don't read back same register after just writing it.. One time I did it and always get back same value, but in reality, that value wasn't read from chip and was just bus echo, because, there was a fault in one buffer IC.. 😂
Thanks! Yeah, that would be a good simple first pass at making sure those chips are at least alive. Want to give it a shot and submit a PR for the project? 😃
I love snooping in code! This is a great way to learn how things work. Thanks for allowing us access to view it! Great job attempting to fix this Amstrad! :D
Hi Noel, when you tested that 74HC240 in the EPROM programmer, and it reported all the gates failing, it occurred to me that it actually only takes one bad connection to render the whole IC dead: if either the Gnd or the Vcc pin should fail, the rest could theoretically be fine, but there's no way of knowing that. 😉 Anyway, I was really intrigued through the whole process of troubleshooting, and - unsurprisingly! - you managed to sort out all the problems in your usual style; that is to say, with flying colours. 😁 Also good work on that diagnostics program, it is a very clever use of the Z80's OUT instructions to get those numbers on the screen in the (artificially enlarged) border area, I must say. 👍👏 It really shows how amazing Assembly programming can be, doesn't it? Oh and finally, there's something I've been meaning to say to you for a long time... do you remember when you posted your video about repairing the ZX Spectrum 128K "Toastrack"? We exchanged a few comments on that video, and you mentioned something about the lack of a menu system on the Spanish version. Well you can have those menus if you replace the ROM with that of a grey +2*; since the hardware architecture is viretually the same on the Toastrack and the +2, the +2 ROMS will also work in the Toastrack. Thus, you could even have a French Toastrack, if you wanted! 😄 All the ROM files are available on Paul Farrow's great site, www.fruitcake.plus.com/ *Unfortunately, this means the loss of the Editor program that is present in the Spanish version of the Toastrack, but such is life: you win some, and you lose some.
Thank you! Yes, that was really fun programming that and twisting the machine a bit to do it 😃 I didn't realize you could use the grey Speccy ROM for that! I know you can use the UK one and there are even patched versions of it.
Great video, its amazing with the older computes you really had to know assembler to accomplish useful things. I would like to see more of your assembly projects.
Absolutely AMAZING. I like a bunch of repair channels and 8-bit coding channels... But you just do both. Really well done. I would also love to see more coding. Keep up the good work
Thank you very much Noel for this interesting video. Not only have you found the suspect IC's but to do assembly code to diagnose future repairs and to give it to people to use means so much to us. I haven't had a single problem with my 6128's but it's now available if i need it.
Oh my!, that Zacks book, so many memories, back in the days somebody passed me photocopies of some of its pages, I don't think it was the full book. Little trivia: The Z80 ALU is 4 bits wide only, so, if the MC68000 is considered a 16bit MPU because its ALU is 16bit wide, the Z80 should be considered a 4 bit micro. V.g. In order to add two registers it has to perform two passes through the ALU. I didn't know that in the 80s, it wouldn't surprise me if Zilog kept it confidential. Thumbs up, keep on the good work!
Yeah, i was flabbergasted when i learned that bit about the Z80 ALU. I think it only became common knowledge after some clever guys delidded a Z80 and traced all the internal circuitry.
I've recently started learning z80 assembly in preparation to getting a Spectrum Next, some development along with the diagnostic analsys was pure joy, excellent work! I will be checking out your code. :)
I'm currently learning to write z80 assembly for my CPC6128 ... I would absolutely love to see you create a video series (or even a couple of one offs) demonstrating development of some programs for the CPC (or any other z80 8bit to be honest)
This is really awesome. This now should’ve kicked my ass to finally debug my 6128 and maybe do something with that bare 6128plus board that are still waiting on the shelve to get resurrected. Great stuff Noel!
@@NoelsRetroLab I saw a little on the ic below the FDC. But my main point was as soon as corrosion was seen, I would have suspected everything around that area. Anyway, let me just reiterate that your videos are very good, very well presented and put together so well. Thank you for them.
Again.... well done diag and cool to see you coding in asm...my favorite! Interesting where that corrosion was located. This is why you don't drink or eat around your machines(but every one of us nerds do it!) xD
Another great video and thank you for giving us your awesome work on the diagnostics tools. That will be very helpful. But I can only buy an Dandanator mini v1.3 on ebay. There is no other available in Germany. And my Schneider CPC has got centronics interfaces so it will need adapter.
You're welcome. Actually my next hardware project is going to be to design a minimalistic ROM board specifically for the diagnostics test. Stay tuned 😃 In the meanwhile you can always desolder the ROM and use an EPROM (not ideal, I know).
Once again, admirable persistence and calmness! About the diagnostics program, could it be possible to output sound in the form of beeps to indicate where the fault is? Like modern computers do.
Thank you! It could but it would also be cumbersome to try to report multiple failing bits that way. Right now it just uses sound to indicate start and then success or failure of the RAM test (in case the video out isn't working).
On 2 and more-layer boards with metalized holes, there is a potential problem with top traces that if the solder does not full overflow to hole and the metalizing in hole is broken, there will be no connection of soldered pin with the top trace. Maybe some people know about it, but most don't realize it.
Sounds like whatever was spilled in there may have shorted out the pins on the inverter, seems logic ICs don't like fighting their own outputs for who is correct.
"I wonder what got that chip so bad." I have seen that where someone's drops of sweat landed on boards and was never cleaned off for years. When I first saw that chip in the video, sweat was my first thought. ETA: I noticed what looked like discoloration on IC211 below the floppy disk controller as well.
Love your diagnostic program. Would be cool if you made it test for everything possible, then for all the decent 8 bit computers with the same user interface, (You can skip C64 and BBC) :-)
Haha, right? I spent so many hours on it... I have the different music engraved in my brain! That's the disk I assembled for my daughter a couple of years ago. Most Amstrad games are surprisingly difficult for a young child!
nice job on the fix Noel..that was a really interesting one!... and the Diagnostics.... seriously AMAZING!... top effort mate! ...just wondering for complete-ness, if a disc and tape diagnostic could be added... i dunno how yad go about it... maybe write tracks directly and read them back?.. same with the tape?.. i guess that wouldnt help with disc head alignment problems tho... just a thought...
Good eye. This board was slightly different from the schematics in that they changed which gates they used in the IC. I checked them with continuity off camera and forgot to mention that, but they're the "correct" ones, even if the numbers don't match up.
Great video! I wonder if the drive controller chip still works if you were to repair that broken leg? May be that the corrosion is moving (or already has moved) up the legs passed the environmental seal into the chip itself so even if it works it may well fail in the future. Nice work on the diagnostics program, I have a CPC6128 that I bought last year that has problems so it'll come in handy i'm sure!
The video was getting long, so I didn't include one test I did: On the good FDC, I lifted the same leg as the broken one and tested it. It didn't give a red screen when I tried doing CAT. That tells me the bad FDC is probably completely faulty since it behaves the same as if there was no FDC at all. So no, I didn't bother trying to solder the leg back together.
I noticed that in your code you are using the fact that the entire BC register gets put onto the Z80 address bus with out (c), xx. I have no experience with Amstrad CPCs, but I have heard once or twice that the Amstrad CPCs use the entire 16-bit I/O addressing space of the Z80 somehow. Is this true? I am wondering if this would also work on the MSX or if the design of the MSX prevents you from doing that. I am thinking of designing a small PCB that I could use as a test cartridge to test this. However, my electronics design skills are rather basic and my soldering skills are virtually non-existent. That would make it an interesting challenge. As always, awesome video.
Thanks, glad that you liked it. What you're saying about the BC register is correct, and that always threw me off as a kid. I could just NOT understand why out (c),a would really send it out (BC), but yes, that's the way they wired it to have a much larger addressing space (which from what I'm hear is completely full anyway). I don't know for sure, but I think on the MSX it's not done that way. Oh you're asking if an external device could do that on the MSX. My first instinct is that it's probably possible, but I don't know if there's something specific in the MSX architecture preventing that. The Dandanator device uses a combination of opcodes to trigger it instead of using out instructions, so that's probably also a possibility.
@@NoelsRetroLab Come to think of it, one would have to be very careful mixing the simple in/out instructions with the out (c), x instruction. The out (imm8), a instruction puts the contents of the A register on the high 8 bits of the address bus.
Awesome! The Amstrad community really have you on their back, good job! As I remember, Adrian Black did replace a NEC chips (just like the Amstrad one) in a 286 PC, so NEC chips may fail more often than others.
Oh, I didn't realize a 286 PC would have this kind of FDC. Very interesting. I'm going to have to track down Adrian's video (or maybe I already saw it and didn't realize it was this kind of FDC). Cheers!
Just to add to this. Yeah they were used in PC's too. It was a pretty common controller chip before floppy functions were being embedded into SuperIO chips. There are a few pin compatible chips made by different manufacturers, the NEC uPD765A and the Zilog Z765A are two I can remember off the top of my head. The numbers may not be exact, those are some old memories to dig up :)) Western Digital had some controller chips out at the same time, they may or may not have had a compatible variant. I think WD's were more competitors at the time.
I don't know if NEC chips are starting to fail now but I do know from a lot of arcade pcb repair logs that Fujitsu logic chips seem to be the most common chips that are failing a lot these days!
@@NoelsRetroLab Yep, all PCs with floppy disk support use what is essentially a 765 FDC, although it is usually embedded within the South Bridge part of the chipset. EDIT: Or, as D D pointed out, in one of the SuperIO chips that preceded the North Bridge/South Bridge paradigm.
Hi Noel, thank you for another great video! Quick question: at what temperature do you usually use your desoldering station? I am asking because I have a lot of clogging issues with mine and I think it may be related to temperature settings. Thanks!
Noel, awesome video thank you! How about using your code for creating a “Total Testing Framework” that could be eventually be ported to other systems with contributions from all over and with maintainable code that could evolve in time with nice hacks from the community? Even reading the code while using it could lead to interesting findings while repairing these machines! Keep up the great content!
I think it would be really difficult to make something that works across multiple systems. For now I'd rather focus on making this the best I can for the Amstrad and then we'll see 😃
@@NoelsRetroLab on second thought you are totally right, such a low level set of tools would be very difficult to make it portable but it would still be a great source of inspiration for similar projects for other platforms. Thank you for kickstarting the idea!
Oh Wow. That Diagnostics rom is amazing! really helpful for those of us who need a nice easy way of detecting ROM and RAM issues. One queston tho. What causes the ROM test to be marked as Disabled?
Thank you! Glad you found it useful. I make the ROM test as disabled if the diagnostic is running from a cartridge (because in that case it's probably a Plus/GX4000 and there's no ROM to test against). Is that correct, or is it a bug and it happened in a different configuration?
@@NoelsRetroLab no, it was my 464plus but I ran it from an external rom board with the basic, lower and AmsDOS provided in the cartridge. So they are present on those machines so long as the burnin rubber cart is attached.
Interesting. I'm automatically disabling the ROM test from cartridge builds, but all other ones should have the ROM test available. I should look into it. Which ROM board did you use?
You can download the Amstrad Diagnostics ROM project here github.com/llopis/amstrad-diagnostics For questions or if you're interested in contributing, join us in the Discord server: discord.gg/ETcCh6J
This is fantastic! Thank you for sharing, looking forward to having a read later
Hi Noel ... thanks for that great tool. I am building a small external board for the Mother X4 carrier to have a lower rom active. So I assume your diagnostic ROM is a lower ROM replacement, correct? ... I am going to join your discord, think that is easier for further discussion.
This is why your channel has grown so quickly, absolutely fantastic work.
Thank you very much! That means a lot coming from you!
@@NoelsRetroLab writing your own diagnostic software elevates you to a whole new level in humble opinion, will you continue to work on it ?
Yet another riveting detective story. No bad IC goes unpunished with Noel on the case. Not only was the repair interesting, this diagnostic you've made already exceeds anything out there for the CPC if I understand you properly. I predict this will be a tremendous asset to the Amstrad CPC community, as you yourself are. Brilliant.
It's too bad Amstrad did not make much of an appearance here in Canada. They seem like fine machines. Around here, it was mostly Commodore followed by Apple II, with Atari, TRS-80, and TI99 bringing up the rear. I would have loved one of those CPC machines.
Thank you so much! The test is mostly what I've been wanting for years. Hopefully other people can also benefit from it.
This whole video was absolutely killer. Bit of troubleshooting, development and a successful repair. Best retro channel on RUclips, hands down.
Wow! Thanks so much!! 😃
Phil is 100% right! You are absolutely crushing it Noel!
Those close-up shots showing the Z80, 8255, and TTL chips bring a lot of memories :) I used to design stuff based on those all the time back in the 80s. Heck, at some point I could read hex z80 code!
Neatly done! Your approach shows not only good ICO (Input/Conversion/Output) troubleshooting, but a sound knowledge of how the Amstrad platform works at the component level. Your diagnostics will likely catch on with other Amstrad users and technicians.
Fascinating video! I bought a 6128 in 1985, and used it for 8 years, until I bought a Mac IIci in 93. I still have both, as well as one of the DEC Pro/350 I learnt PDP-11 assembler on in 1988 as a CS student. I had the 6128 powered up maybe 15+ years ago, it worked then, except the rubber band of the floppy drive. I guess the next time I visit my mother, I will dig up all the machines from the basement and see how they are doing. This video was very inspiring!
Outstanding! Educating and entertaining us with bonus making available valuable tools - one of the best amstrad related channels!
Brilliant video and repair. Seeing that pcb and those chips brought me back to my first job on the test floor of a semiconductor assembly plant where we tested thousands of Z80s, 765s and 8255s along with 8251s, 8257s 8035s, 8085s and static ram! In any slack time I made cpu boards for projects. Great times. Great channel.
Ingenious -- taking a partially-working computer and using the stuff on it that *does* work to help you diagnose its own ROMs. I'd have gotten the "must remove the ROM chip so I can read it directly" business stuck in my head, and it never would've occurred to me to write a program to check the ROM's CRC. Such an elegant solution for that! I love it!
I have no experience (or Nostalgia) with this machine, but I really enjoyed this video. I know it took you longer than you expected, but the internet needs more articles and videos like this.
Thanks, Michael! It took a bit longer but not too bad. What really ate a lot of my time was further development on the diagnostics ROM afterwards. I pretty much spent all last week doing that because I couldn't stop thinking about it 😃
@@NoelsRetroLab I get that for sure. I'm doing a multi part series on ciphers on the Commodore. No one reads long form articles any more, but I can't stop thinking about them so I soldier on. You saying that makes me feel normal (ish). Happy monday!
I don't own an Amstrad CPC, but I have several ZX Spectrums and I know how useful these diagnostic software are. I use DiagROM from Retroleum and of course the ZX Diagnostics you mentioned. I am sure your diagnostic software will be a huge hit and very much appreciated in the Amstrad community. Great work!
retro development vids are always welcome
The wonders of the Z80 CPU. That's why I still program on a ZX81 and ZX Spectrum. I would love to see more of your programing adventures, Noel.
Ha! I love how you evolved the RAM test number outputting code to that easier to visualise version.
It's always nice to look at the work of a perfectionist. Excellent work organization and clear comments. This is very motivating. Thanks to your videos, I have repaired a cassette audio player and a vintage audio amplifier. Thank you very much and good health!
Thank you so much! I'm glad you're also getting into repairing stuff. It can be super satisfying.
Wow, what a video. That was excellent. Thanks so much for the diagnostics ROM.
Glad you enjoyed it!
My Amstrad fails from time to time loading from the disk. I don't think I'll have to change any chip but now I know where to look at and clean thoroughly. Many thanks.
Great work and thank you for sharing your workflow of how to test a system.
Also nice that you got around to working on your diagnostic code. Can't wait to see how you have progressed on it and the new features that the you and the community have added to it.
Nice one Noel. You are so knowledgeable on Z80 programming and yet, you don't look old enough!
It is impressive as usual, you combine hardware knowledge plus programming background without losing your expression 'mmm, interesting' in front of death screens. You demonstrates that a computer is an easy to repair device, always if you have an spare chip or whatever you might need, sometimes very difficult to obtain. Go ahead about diagnostics tool for Amstrad, I am sure you'll offer us a professional solution, for sure.
I read comments and I don't see many Spanish followers, don't understand, you offer a really professional work, thanks.
Very cool =D Lovely work on the diagnostic ROM!!!
Thank you very much! It was really fun getting back into assembly programming after such a long time 😃
I do not have a Amstrad CPC nor have I ever had one.
But loved watching this video to see how you progress through the fault finding route and end up writing some code to help Diagnose Rom faults. I do however have a Zx Spectrum +3 with a Disk error it can not find track 0. 👍
When diagnostic software hangs, my thoughts was exactly the same - something wrong with CS and there is bus conflicts.. 😂
Great repair!
For diagnostic software update, You can add 8255 response test (writing registers with initialization values one by one and then reading back) and for floppy controller and then verifying values.. Main rule - don't read back same register after just writing it.. One time I did it and always get back same value, but in reality, that value wasn't read from chip and was just bus echo, because, there was a fault in one buffer IC.. 😂
Thanks! Yeah, that would be a good simple first pass at making sure those chips are at least alive. Want to give it a shot and submit a PR for the project? 😃
Nice video, I wrote about it 3 days ago. Now I must take time to see the Amstrad PPC videos and write about it too. Thanks.
I love snooping in code! This is a great way to learn how things work. Thanks for allowing us access to view it! Great job attempting to fix this Amstrad! :D
Awesome video, repair and, especially, diagnostics tool. Thanks for putting it on github. Will definitely try it out.
Glad it was helpful! Let me know if you end up trying it 👍
Oh wow, this was a fun little adventure! Got some assembly fun in there too. Nice!
Glad you enjoyed it, assembly and all for a change 😃
Hi Noel, when you tested that 74HC240 in the EPROM programmer, and it reported all the gates failing, it occurred to me that it actually only takes one bad connection to render the whole IC dead: if either the Gnd or the Vcc pin should fail, the rest could theoretically be fine, but there's no way of knowing that. 😉
Anyway, I was really intrigued through the whole process of troubleshooting, and - unsurprisingly! - you managed to sort out all the problems in your usual style; that is to say, with flying colours. 😁
Also good work on that diagnostics program, it is a very clever use of the Z80's OUT instructions to get those numbers on the screen in the (artificially enlarged) border area, I must say. 👍👏 It really shows how amazing Assembly programming can be, doesn't it?
Oh and finally, there's something I've been meaning to say to you for a long time... do you remember when you posted your video about repairing the ZX Spectrum 128K "Toastrack"? We exchanged a few comments on that video, and you mentioned something about the lack of a menu system on the Spanish version. Well you can have those menus if you replace the ROM with that of a grey +2*; since the hardware architecture is viretually the same on the Toastrack and the +2, the +2 ROMS will also work in the Toastrack. Thus, you could even have a French Toastrack, if you wanted! 😄 All the ROM files are available on Paul Farrow's great site, www.fruitcake.plus.com/
*Unfortunately, this means the loss of the Editor program that is present in the Spanish version of the Toastrack, but such is life: you win some, and you lose some.
Thank you! Yes, that was really fun programming that and twisting the machine a bit to do it 😃
I didn't realize you could use the grey Speccy ROM for that! I know you can use the UK one and there are even patched versions of it.
Hi Noel. Nice troubleshooting and fascinating video. Thanks.
Many thanks!
Excellent video Noel and brilliant diagnostics, i'll test them on my Dandanator soon !
Thanks! Definitely let me know how it goes.
Superb effort! Was great to watch this unfold and lead to a fix.
Glad you liked it!
Great video, its amazing with the older computes you really had to know assembler to accomplish useful things. I would like to see more of your assembly projects.
Good stuff Noel. Well done. Love the development of your own diagnostics. Superb.
Very cool!! Even 3 years after!
Really really cool video, especially the mix between repairs and assembly knowledge.
Glad you liked it!
Absolutely AMAZING.
I like a bunch of repair channels and 8-bit coding channels... But you just do both.
Really well done. I would also love to see more coding. Keep up the good work
Wow, thanks! 👍
Amazing the ad hoc rom CRC checker!!! First class Noel!
Thanks!!
Thank you very much Noel for this interesting video. Not only have you found the suspect IC's but to do assembly code to diagnose future repairs and to give it to people to use means so much to us. I haven't had a single problem with my 6128's but it's now available if i need it.
Oh my!, that Zacks book, so many memories, back in the days somebody passed me photocopies of some of its pages, I don't think it was the full book.
Little trivia: The Z80 ALU is 4 bits wide only, so, if the MC68000 is considered a 16bit MPU because its ALU is 16bit wide, the Z80 should be considered a 4 bit micro. V.g. In order to add two registers it has to perform two passes through the ALU. I didn't know that in the 80s, it wouldn't surprise me if Zilog kept it confidential. Thumbs up, keep on the good work!
Yeah, i was flabbergasted when i learned that bit about the Z80 ALU. I think it only became common knowledge after some clever guys delidded a Z80 and traced all the internal circuitry.
Wow thanks for writing this diagnostics tool Noel, I too always wondered why there was no Amstrad equivalent of ZX Spectrum Diagnostics!
I've recently started learning z80 assembly in preparation to getting a Spectrum Next, some development along with the diagnostic analsys was pure joy, excellent work! I will be checking out your code. :)
Very interesting. I have a CO664 with that problem. Just now I know how to fix it! Thanks and happy new year from Benicasim!
More retro programming video would be good to watch. I like watching the process of how you repair things :)
I'm currently learning to write z80 assembly for my CPC6128 ... I would absolutely love to see you create a video series (or even a couple of one offs) demonstrating development of some programs for the CPC (or any other z80 8bit to be honest)
Really good with the programming part. Great video.
Glad it was helpful!
It's always so fascinating to look at coding stuff. Makes me wish I could wrap my head around it.
It's never too late to start! And those 8 bit machines are great to learn (not hard core assembly to start though 😃).
I love your thought process!!!
Noel, really interesting video. I would certainly be interested in any assembler programming for Sinclair, Amstrad or Commodore machines.
Thanks! I'll keep it in mind for future videos.
This is really awesome. This now should’ve kicked my ass to finally debug my 6128 and maybe do something with that bare 6128plus board that are still waiting on the shelve to get resurrected. Great stuff Noel!
I'm sat here screaming there is corrosion around the 74 chips, check them all! Great video.
Did you see more corrosion in other places? I didn't notice anything particularly bad other than those two ICs.
@@NoelsRetroLab I saw a little on the ic below the FDC. But my main point was as soon as corrosion was seen, I would have suspected everything around that area. Anyway, let me just reiterate that your videos are very good, very well presented and put together so well. Thank you for them.
Bravo!!! Una maravilla, Doctor Noel.
Amazing how you created a diags ROM !!!. You are the best, mate :-)
Thanks a lot!
Again.... well done diag and cool to see you coding in asm...my favorite! Interesting where that corrosion was located. This is why you don't drink or eat around your machines(but every one of us nerds do it!) xD
Thanks! Yeah, I'm not sure what that was so localized in that corner. Weird.
@@NoelsRetroLab Is there some sort of air vent in that area where liquid could get in?
Hoping I enjoyed the software part? YES! That was awesome and thanks for sharing it.
Glad you enjoyed it!
Really liked this video - would love if you could show us how to get started with assembly programming on a Spectrum or C16.
Thank you. That's a good idea. I'm hoping to do some kind of assembly video at some point in the future. Stay tuned 😃
Great Video , Enjoyed the way you made that daignostic tools.
Thanks 👍
Excelente trabajo. Un video muy interesante. Muchas gracias!!!
Really enjoyed the programming portion :-)
Glad to hear it! I wasn't sure how it would be received since everything I've done here has been hardware stuff, so good to know!
@@NoelsRetroLab I think you got the balance just right between the coding and the hardware.
@@NoelsRetroLab I'm sure a lot of us would love to see more coding on your channel.
Another great video and thank you for giving us your awesome work on the diagnostics tools. That will be very helpful.
But I can only buy an Dandanator mini v1.3 on ebay. There is no other available in Germany. And my Schneider CPC has got centronics interfaces so it will need adapter.
You're welcome. Actually my next hardware project is going to be to design a minimalistic ROM board specifically for the diagnostics test. Stay tuned 😃 In the meanwhile you can always desolder the ROM and use an EPROM (not ideal, I know).
Great work as always, Noel. Your channel is truly awesome. 😊
Nice work, that was a tricky one. Hope your mem test catches on.
Once again, admirable persistence and calmness! About the diagnostics program, could it be possible to output sound in the form of beeps to indicate where the fault is? Like modern computers do.
Thank you! It could but it would also be cumbersome to try to report multiple failing bits that way. Right now it just uses sound to indicate start and then success or failure of the RAM test (in case the video out isn't working).
nice video and nice, that you are doing that diagnose software to help on repair their cpc system :)
On 2 and more-layer boards with metalized holes, there is a potential problem with top traces that if the solder does not full overflow to hole and the metalizing in hole is broken, there will be no connection of soldered pin with the top trace.
Maybe some people know about it, but most don't realize it.
Sounds like whatever was spilled in there may have shorted out the pins on the inverter, seems logic ICs don't like fighting their own outputs for who is correct.
This is my favorite repair video, great job!
"I wonder what got that chip so bad."
I have seen that where someone's drops of sweat landed on boards and was never cleaned off for years. When I first saw that chip in the video, sweat was my first thought.
ETA: I noticed what looked like discoloration on IC211 below the floppy disk controller as well.
I absolutely loved this video, can't wait to see more!!
Great video I think your skills are improving! Remember too PCB traces can be open/ short or high impedance. Liquid damaged?
No menos mal! Well done! Nasty looking corrosion, any clues on the chassie what had been leaking into it?
No idea! Someone mentioned that it looked more like moisture than actual liquid. That might explain why the board was fine.
Love your diagnostic program. Would be cool if you made it test for everything possible, then for all the decent 8 bit computers with the same user interface, (You can skip C64 and BBC) :-)
Thanks for the video.
You bet
Great Noel....eres muy grande..felicidades
Gracias! 😃
Very informative and fun to watch, Thanks Noel :)
My pleasure!
Excellent video. You are truly talented!
Thank you so much 😀
That was great! Way beyond my capabilities.
Hm. I have a few CPCs in a box that I'm supposed to test. Maybe I'll get myself a Dandanator + your diagnostics and get started. :)
Fruity Frank in the floppy disk... Oh what memories!
Haha, right? I spent so many hours on it... I have the different music engraved in my brain! That's the disk I assembled for my daughter a couple of years ago. Most Amstrad games are surprisingly difficult for a young child!
nice job on the fix Noel..that was a really interesting one!... and the Diagnostics.... seriously AMAZING!... top effort mate!
...just wondering for complete-ness, if a disc and tape diagnostic could be added... i dunno how yad go about it... maybe write tracks directly and read them back?.. same with the tape?.. i guess that wouldnt help with disc head alignment problems tho... just a thought...
Awesome diags coding there!
Thanks!
Zak's books were awesome.
Excellent! Thanks for the vid.
You're welcome!
Amazing work, more than impressed
Thank you so much 😀
At 17:00 you are probing pin 10 or 4 of 74LS132? Also, IC203 seems to have signs of corrosion. Am I wrong?
Good eye. This board was slightly different from the schematics in that they changed which gates they used in the IC. I checked them with continuity off camera and forgot to mention that, but they're the "correct" ones, even if the numbers don't match up.
Great video! I wonder if the drive controller chip still works if you were to repair that broken leg? May be that the corrosion is moving (or already has moved) up the legs passed the environmental seal into the chip itself so even if it works it may well fail in the future. Nice work on the diagnostics program, I have a CPC6128 that I bought last year that has problems so it'll come in handy i'm sure!
The video was getting long, so I didn't include one test I did: On the good FDC, I lifted the same leg as the broken one and tested it. It didn't give a red screen when I tried doing CAT. That tells me the bad FDC is probably completely faulty since it behaves the same as if there was no FDC at all. So no, I didn't bother trying to solder the leg back together.
Noel needs a Sherlock Holmes hat and magnifying glass ... they would be very appropriate for the “chip detective”. 🕵️♂️
I get the same kind of excitement and wonder in embedded now that we did from 80s micros.
I noticed that in your code you are using the fact that the entire BC register gets put onto the Z80 address bus with out (c), xx. I have no experience with Amstrad CPCs, but I have heard once or twice that the Amstrad CPCs use the entire 16-bit I/O addressing space of the Z80 somehow. Is this true?
I am wondering if this would also work on the MSX or if the design of the MSX prevents you from doing that. I am thinking of designing a small PCB that I could use as a test cartridge to test this. However, my electronics design skills are rather basic and my soldering skills are virtually non-existent. That would make it an interesting challenge.
As always, awesome video.
Thanks, glad that you liked it. What you're saying about the BC register is correct, and that always threw me off as a kid. I could just NOT understand why out (c),a would really send it out (BC), but yes, that's the way they wired it to have a much larger addressing space (which from what I'm hear is completely full anyway).
I don't know for sure, but I think on the MSX it's not done that way. Oh you're asking if an external device could do that on the MSX. My first instinct is that it's probably possible, but I don't know if there's something specific in the MSX architecture preventing that. The Dandanator device uses a combination of opcodes to trigger it instead of using out instructions, so that's probably also a possibility.
@@NoelsRetroLab Come to think of it, one would have to be very careful mixing the simple in/out instructions with the out (c), x instruction. The out (imm8), a instruction puts the contents of the A register on the high 8 bits of the address bus.
Excellent video! May I ask which EPROM device you use, that could read the 74HC240 chip?
Thanks! It's the TL866II. Quite a handy feature that it checks logic chips!
@@NoelsRetroLab thanks!
Awesome! The Amstrad community really have you on their back, good job!
As I remember, Adrian Black did replace a NEC chips (just like the Amstrad one) in a 286 PC, so NEC chips may fail more often than others.
Oh, I didn't realize a 286 PC would have this kind of FDC. Very interesting. I'm going to have to track down Adrian's video (or maybe I already saw it and didn't realize it was this kind of FDC). Cheers!
@@NoelsRetroLab Not 100% remember it's a 286 but definite an old PC, and he track down the chip and replace, then no more error.
Just to add to this. Yeah they were used in PC's too. It was a pretty common controller chip before floppy functions were being embedded into SuperIO chips.
There are a few pin compatible chips made by different manufacturers, the NEC uPD765A and the Zilog Z765A are two I can remember off the top of my head. The numbers may not be exact, those are some old memories to dig up :)) Western Digital had some controller chips out at the same time, they may or may not have had a compatible variant. I think WD's were more competitors at the time.
I don't know if NEC chips are starting to fail now but I do know from a lot of arcade pcb repair logs that Fujitsu logic chips seem to be the most common chips that are failing a lot these days!
@@NoelsRetroLab Yep, all PCs with floppy disk support use what is essentially a 765 FDC, although it is usually embedded within the South Bridge part of the chipset.
EDIT: Or, as D D pointed out, in one of the SuperIO chips that preceded the North Bridge/South Bridge paradigm.
Great video, thank you! :)
Glad you liked it!
Hi Noel, thank you for another great video! Quick question: at what temperature do you usually use your desoldering station? I am asking because I have a lot of clogging issues with mine and I think it may be related to temperature settings. Thanks!
Noel, awesome video thank you! How about using your code for creating a “Total Testing Framework” that could be eventually be ported to other systems with contributions from all over and with maintainable code that could evolve in time with nice hacks from the community? Even reading the code while using it could lead to interesting findings while repairing these machines! Keep up the great content!
I think it would be really difficult to make something that works across multiple systems. For now I'd rather focus on making this the best I can for the Amstrad and then we'll see 😃
@@NoelsRetroLab on second thought you are totally right, such a low level set of tools would be very difficult to make it portable but it would still be a great source of inspiration for similar projects for other platforms. Thank you for kickstarting the idea!
Oh Wow. That Diagnostics rom is amazing! really helpful for those of us who need a nice easy way of detecting ROM and RAM issues. One queston tho. What causes the ROM test to be marked as Disabled?
Thank you! Glad you found it useful. I make the ROM test as disabled if the diagnostic is running from a cartridge (because in that case it's probably a Plus/GX4000 and there's no ROM to test against). Is that correct, or is it a bug and it happened in a different configuration?
@@NoelsRetroLab no, it was my 464plus but I ran it from an external rom board with the basic, lower and AmsDOS provided in the cartridge. So they are present on those machines so long as the burnin rubber cart is attached.
Interesting. I'm automatically disabling the ROM test from cartridge builds, but all other ones should have the ROM test available. I should look into it. Which ROM board did you use?
Wow a lot of work went into that coding well done! maybe someone can make it into a cartridge or something to do the checks ;)
Thanks! It's already in cartridge, lower ROM, upper ROM, and DSK formats: github.com/llopis/amstrad-diagnostics/releases 😃
did you notice the corrosion on the nand gate too? 210B ?
Very interested in your Mac development setup. Do you run WinAPE in Wine ?
Have you everr thought about building a copystation for 3" and 3,5" Floppydrives runung with the CPC 6128 ?
To replace an Amstrad IC 32K rom, would EPROM AM27C256-90 or AM27C256-120 be suitable?