DesTestMAX: A revolutionary new diagnostic ROM for the C64
ฝัง
- เผยแพร่เมื่อ 21 ก.ย. 2024
- It's not often I see a testing tool for the C64 that moves the needle, but I feel that the DesTest MAX ROM is one such test that should help more people fix more Commodore 64 computers.
-- Links
DesTestMAX:
factorofmatt.c...
Apple II March-U RAM test:
github.com/mis...
TRS-80 March-U RAM test:
github.com/mis...
XT March-U RAM test:
github.com/ki3...
Adrian's Digital Basement Merch store:
my-store-c82bd...
Adrian's Digital Basement ][ (Second Channel)
/ @adriansdigitalbasement2
Support the channel on Patreon:
/ adriansdigitalbasement
My GitHub repository:
github.com/mis...
-- Tools
Deoxit D5:
amzn.to/2VvOKy1
store.caig.com/...
O-Ring Pick Set: (I use these to lift chips off boards)
amzn.to/3a9x54J
Elenco Electronics LP-560 Logic Probe:
amzn.to/2VrT5lW
Hakko FR301 Desoldering Iron:
amzn.to/2ye6xC0
Rigol DS1054Z Four Channel Oscilloscope:
www.rigolna.co...
Head Worn Magnifying Goggles / Dual Lens Flip-In Head Magnifier:
amzn.to/3adRbuy
TL866II Plus Chip Tester and EPROM Programmer: (The MiniPro)
amzn.to/2wG4tlP
www.aliexpress...
TS100 Soldering Iron:
amzn.to/2K36dJ5
www.ebay.com/i...
EEVBlog 121GW Multimeter:
www.eevblog.co...
DSLogic Basic Logic Analyzer:
amzn.to/2RDSDQw
www.ebay.com/i...
Magnetic Screw Holder:
amzn.to/3b8LOhG
www.harborfrei...
Universal ZIP sockets: (clones, used on my ZIF-64 test machine)
www.ebay.com/i...
RetroTink 2X Upconverter: (to hook up something like a C64 to HDMI)
www.retrotink.com/
Plato (Clone) Side Cutters: (Order Five)
www.ebay.com/i...
Heat Sinks:
www.aliexpress...
Little squeezy bottles: (available elsewhere too)
amzn.to/3b8LOOI
--- Instructional videos
My video on chip removal without damage:
• How to remove chips wi...
--- Music
Intro music and other tracks by:
Nathan Divino
@itsnathandivino
Small note: when I mention the zero page (and stack) is the first (and second) 100 bytes of RAM, I wasn't clear in the video that it is the first $100 of RAM when counting in hexadecimal. It's actually 256 bytes when counting them up in in decimal.
Also, I was chatting with Matt about where people can buy a cart with the ROM already installed. He is looking to work with vendors so people can buy it directly without having to build one. Please check Matt's website (in the description) for more info, which is where he'll put updates as he has them.
I was going to comment about your page size mistake.
@@danman32mission accomplished
Can you tell us what the silkscreen is on the cart Matt is using for the cart he gave you? His documentation doesn't give any specfic recommendations.
Not me, shouting at my screen, it's 256 Adrian! 😅😅😅
Very cool video btw. Keep up the good work. 🤘
@adriansdigitalbasement I figured you meant 100 hex though.
Matt Desmond's software was the stuff of legends, great to see he's still creating stuff for Commodores today!
Lol. He's fixed so many C64s he can't find a broken one...
I have zero interest in C64 but still watch every video because I just enjoy you fixing them.
Same here. The process is fun to watch. Also, SID chip tunes are pretty sick.
Same here
Hello Adrian. In he mid 80's I had a co-op job at our board of education doing chip level repairs on PET's, C64's and IBM PC's. I wrote assembler code that would run in the P?ET boot ROM area (always socketed) that did pattern testing for RAM. It used a LED isplay board from another tool we had for the C64 that had 8 LEDs that would be run from the user port. On a 32k PET it would light a LED for a stuck bit and beep once for bank 1 and twice for bank 2. I found out in the late nineties that this code was still being passed around!
And man didd I hate re-aligning 1541 drives abused by coy protection software. The 22 Philips screws made of pot metal were always stripped to death by the time I got to them.
Sounds like this new system has some secret sauce we had not thought of in my time repairing Commodore gear. Thank you for the video!
Late 80's I worked for a shop that had a cartridge with a 4x4 LED matrix to tell what chips were bad. Hardly needed anything on the board. CPU and I forget which chip provided the clock.
Every C64-video day is going to be a good day!
Really cool cartridge. Great video. Did not know that VIC II could display ROM.
Great video. Thanks for introducing Matt's cartridge to a wider audience. While watching this video I downloaded the files, burnt an EPROM, put it into a Bwack Versa64 cartridge PCB and am now running it on my SX64! I love Matt's documentation as well, very detailed.
Great job. Love to see some old micro's still getting the love they deserve.
When I get the chance to have a ROM chip and a ROM Programmer, I'll test it on my Commodore 64 to see exactly what my problem is. Thank you so much for sharing this!
A very interesting project for Commodore repair techs. Good work, both of you!
I have watched this video last night, after I had prepared to sleep and got so excited about it, that I had to get up again and start to solder a versa64cart to try this software at 11:30pm. This is probably the hottest new C64 development, that I have seen in a long time. I totally like the idea with the screen memory being in ROM. Wow.
Certainly makes it easier to sort out bad RAM before delving into something else being a problem, clever little creation there... :)
I'm a bit embarrassed that this is the first time I've heard of the Commodore Max.
Adrian - what happens to many of your fixed 64s? Do they get to go live in the country on a farm to play with the other fixed computers?
I might have heard of the Max from David Murray, but I certainly didn't know that the 64 has a Max mode.
Cooooool!
Boy, I wish I had that 30+ years ago when I was a Commodore tech.
What tools did microcomputer techs have back in the 1980s and '90s? I suspect that a lot of the ones Adrian uses were either not around or unaffordable for most shops, and, of course, there was no Internet yet.
I sure wish I had the equipment to build that ROM chip, and push button. I used to have the equipment, but when I had Cancer, I had to sell all my things to pay for charges accrued. Hopefully I can get one of those soon.
You could have some logic (GAL) on the cartridge that boots in MAX mode but can be switched in software to any other addressing mode.
This logic could also test the PLA cartridge IO & ROM chip selects & cartridge mode select lines. No software currently tests this cartridge slot functionality.
It would also be easy to add an LCD interface and a small SRAM for known good RAM for the test software to use.
Or you could even add a 6502 CPU and have the card boot as a DMA device and take over the C64 bus, interrogate it externally and if it tests ok, then boot to MAX mode etc...
We talked about me fixing one of these boards and having absolutely nothing happening...guess I know what I need to try now
Annnd of course this gets released AFTER I ordered a 4-in-1 diagnostic cartridge from Retro Rewind…
Of course! Then again, you might consider this an opportunity: you could buy this, too, and upload a review comparing and contrasting their features and limitations....
@@jamesarthurreed would it work on a flash cartridge?
@@Blood-PawWerewolf I don't know for a certainty, but given its flexibility in use, I'd be surprised if a working solution couldn't be created. I have no experience with this ROM, but I'm planning to get one now that I know about it.
One idea I had is if you have an MCU of some kind on the cartridge, like a Pi Pico or something else, maybe it could monitor the address and data lines and determine what parts of the test are running and provide some kind of output via serial over USB or something. Maybe even use an integrated web server in the Pi Pico to provide a virtual screen of some kind.
It's probably pie in the sky stuff but it should be theoretically possible.
I was going to suggest something similar. I've always wondered if it was possible to use something like a Pi Pico or RPI2040 as a diagnostic device for a C64. In this case it could switch between diagnostic ROM code for MAX mode and c64 mode, but make it so it outputs diagnostic data to one of those I2C displays too. Additionally, if it's possible, implement an REU into it so the device itself could DMA access the 64's (and if possible the 128... pretty please? :) ) memory to do advanced diagnostics.
Theoretically the RPI could manipulate the data the VIC is seeing in MAX mode so it could also update what's being seen on the 64's display instead of having to rely on changing the border to indicate what bit is bad.
To point out the obvious, it's 100% possible to view the code in the binary for the ROM. Using things like Binwalk or Ghidra it's totally possible to reverse engineer the code for this ROM. Thus not releasing the source code isn't really going to stop those of us who want to have a peek under the hood so to speak.
While the 6526 VIA running hot is a good indicator of it being bad, the other tests you did don't seem to me to be conclusive. If there was supposed to be a pull-up resistor on that pin but it was disconnected or intermittent, and the VIA was never designed to pull the pin to +5V but instead used open-collector mode, then you'd get exactly the same symptoms. I'd think that a quick fix would be to install a 10K resistor between the pin and +5V. That would bypass any problems with the PCB or pull-up resistor.
If you are counting cycles anyway, you should be able to display dynamic text from ROM, by changing the screen pointer during an HBLANK. I guess that only let's you change one line at a time, but... I guess you could change the pointer on non aligned rows for a neat effect too...
Wow! Matt Desmond... now *that's* a name I haven't heard in a long time! I was a faithful user of DesTerm 128 for many years. Glad to see he's back in the community, and again developing some awesome tools!
I suppose the ultimate would be to remove the 6502 and insert an embedded Rasp Pi which can emulate a 6502 or directly access the entire bus and analyse the signals even without an external clock and with a poor / noisy power rail.
I'd love to see a flippy cart that has the one side for Max mode for basic diag then C64 mode for full harness test.
Awesome ROM and awesome video!
I dont get why test cartdriges do not include a microcontroller which does all the testing on the system and output results over a dedicated serial line. No chips would be required, not even the cpu.
On the C64, for one thing, the cartridge port has no access to the lines that swap the KERNAL ROM, BASIC ROM, and Character Generator ROM in and out of address space.
With a bit of logic would it be possible to toggle the MAX line once the 4K only tests are done to flip the C64 back to normal mode and carry on testing all the RAM? Since the 6502 has no IO port space it'd need to have a sequence of writes to avoid false triggering the change back to normal mode during RAM tests, but still doable.
I can see that Desmond's C64 RAM test was somehow inspired by Noel's Llopis Amstrad Diagnostics, at least on the graphical RAM test, which is great as it has proven to be a very useful tool 😊
And of course the Spectrum diagnostic ROM which IIRC was the inspiration for Noel's CPC ROM.
Awesome video! Just a question… What do you use to deoxidizing the socket? At first sight seem IPA.. or is some better chemical product?
Actually, the zero page is the first 256 bytes, not the first 100 bytes.
He's thinking hex $100 bytes. :)
@@bozimmerman What I also thought ;-)
Yes -- hahaha -- I need to pin a comment or I think I'll have about 10000 comments about it :-)
@@adriansdigitalbasementDo you mean 10000 or 65536 comments?
@@codahighland or 0xFFFF comments?
Maybe you can send him some "known bad" chips so that he can try them on his board, and make adjustments to the firmware that detect these defects, and reports them properly
Amazing!
Tres trop bien!!
My cousin traded me some stereo equipment for his old Vic 20 after he was finished high school. He walked me through connection to the TV and startup.
It showed the Commodore screen then boot screen then stayed stuck in "reboot" something like that.
That's all it would do.
so where do I buy a DesTestMax full working cartridge.. ?
Because of how it started working sometimes when you were banging it around, it seems like the 6502 just had a bad solder joint, the chip itself might be good. Maybe put it in the socket and see what happens
Welp, now Matt has to develop an updated version of the cartridge that can test for a busted CIA chip as well. :D
oh wow... I didn't know about the max mode... I wondered how the deadtest rom might work, but I never looked it up... And I call my self a collector... I'm ashamed...
Oh, come on! When are they going to get around to doing February testing?? 😆🤣😝 (yeah, I’m biased here, I was a February baby.)
I thought the black and white flashing of the old dead test was to catch even issues with the video chip. Like even half broken, you might still get the flashes. Would that make the old dead test superior in this very specific failure mode? What would the new diagnostic rom do with such a half broken video chip?
I wonder if it would be possible to switch out of max mode at runtime? I've seen people replace the PLA with ROMs, and while that does have its problems, it says to me that the inputs aren't stateful. A cursory glance online says that the read/write signal is routed to the cartridge port, so it seems like that could be used to implement a rudimentary write to cartridge space to flip the right signals to switch out of max mode. Perhaps there is something beyond that that's stateful that means it isn't possible, but I'd definitely be curious to see if it could work
If MAX mode is enabled by pulling a pin to ground, couldn't a simple switch be installed on the cart to switch between MAX and kernel modes?
How does the swiftlink version work? Do you need a cartridge port expander to plug in both the swiftlink card and the DesTestMax cartridge?
Do you think it would work to have a switch on the cartridge to disable Max mode and test the upper memory?
There could be two ROMs yes, with both versions on here. Or some kind of intelligent cart with a RP2040 would need to be created which could swap modes on the fly, first testing in MAX mode and then moving on to normal mode, or maybe some kind of DMA mode to test the RAM directly.
@@adriansdigitalbasement Yeah, it could certainly do both in one cartridge, but it would need to toggle reset at the same time as switching off ultimax mode.
The C64 would need to support writing to the ultimax ROM space for software to control the reset. This depends on whether the PLA allows writes to go to the cartridge address space by software, if not, a physical button is required. If the cartridge has a mapped register or RAM with a bit mapped it can trigger a software reset, and keep that RAM/register powered and write protected while reset is underway. This can also double as the ultimax mode switch. Since it is a simple on/off logic switch even some NAND gates setup as an S/R latch would work here. There are a few more details, but they aren't necessary for explanation.
Reset tricks on C64 are limited to non rev-A boards of course unless they have the reset fix applied.
Has anyone considered adding LEDs for +5V and maybe even the clock and /RESET signals? I know that adds components and a bit of complexity but might also give a quick insight into some major signals
Does this work with the C128? I have a 128D with the dreaded black screen, and as you point out in your video, all I get from the dead test cart is a more-or-less randomly blinking white screen that doesn't tell me much.
Finally, video with the reasonable length. 😁
I could use a test rom/bios for the Commodore PC10-1.
I'd be impressed, and confused, if only the processor or only assembly code used the stack, but not both.
Excellent
Could you change the address lines on the CPU to address other 4k ram areas, if the CPU was socketed using socket with dip switches please on top. I hope you get the idea.
If you already know the kernel rom causes a black screen, couldn't you just try a new kernel rom in that machine only showing a black screen Adrian
Dang that's cool, now I'm curious if anybody made one with an arduino in place of the rom, then it might not even need the cpu to work
Or if you can't burn it to an Eprom, is anyone selling the cart? A quick Google, couldn't find anything apart from Matts site. Thanks.
Huh, I did not that about the short board and U2 either.
Hi!
Hi Adrian can we burn the hex files of this test crat on older dead test cart? and i have a bunch of cupcake cart for c64 too let us know :)
Neat!
I need to get my SX-64 up and running, which has the dreaded black screen. It's definitely powering up the display, but absolutely nothing.
Try the PLA first - my channel has a bunch of dead SX-64 fixes
have you been selling any of the boards you repaired? You should run a website for that selling spare stuff you got for others to buy and support you.
I think a lot of them come from locals who gave them to him to fix and then give back. Though now I'm curious what he charges for the service...
What cart PCB do you have that ROM installed in?
Great 😊
Did U checked supposedly bad 6526 in other board ?
Could this card act as a bootloader to launch the regular test afterwards?
GREAT! Sooo how do I get this cartridge???
DIY by downloading the code from the link?
If you’re all out of C64s to fix, can I send you mine and my Vic20 with a display problem? :-D
Red and Green to indicated different status are not colorblind-friendly.
Whats an ok test rom for Atari 8 bits?
Your hex is showing.😦
Several times you talk about "100 bytes", when you mean 100 hex bytes, or 256 decimal. Probably most of your viewers will know what you mean, but it will be unclear to some people.⬅
Besides that distraction, very interesting product.
I caught that and was questioning my sanity, especially when going into detail about the first and second 100 bytes.
Adrian, I think you should be clear that when you say "hundred bytes" you mean "hundred hex". Not all viewers will be clueful enough about 8-bit page sizes to know that's what you meant.
you mean like the comment he already posted two days before you wrote this?
@@sperrfeuer4158 Do you mean the one that's been _edited?_ I don't remember it saying that when I commented. Also, thanks for the snark, it's always nice when someone offers up some extra negativity, there's just never enough of that to go around these days. 🙄
These days a small LCD screen is a few $ at most. Wouldn't it be better to have an external display the status ?
This video is like a drop of inspiration in the gray weekdays. Thank you for the positivity!🍑🍑 7 🦄!
I need to give this cart a go however I also welcome you to see my improved dead test in action, video: oNt4CL1cpOg - I made changes to the original corresponding my repair practice and convenience (especially text mode is set up early so you don't have to wait with black screen), itself being based on some other mod of dead test.
Diag carts all have the same basic limitations - I think the power of this one is the implementation of March memory testing algorithm and the creative way of graphically showing RAM fault vs counting flashes which is nice for those hobbyists that may not have more costly test equipment like scopes or inline testers.