One of your best episodes yet Adrian! I love how you used the classic “deduction and reasoning” approach to troubleshooting vs the “swap parts and pray” technique to fix this classic computer. Lots of valuable lessons to be learned…
One thing i really like about your videos is the fact that you show your viewers that no matter how good can someone be at repairing stuff there's always mistakes happening at human level and that is completely fine, instead of discouraging about the repair you just laugh about it and keep going. Great video Keep the good work
I loved this. In the eighties my elementary school in North Vancouver (Burrard View, long since bulldozed) had one of these The first and only computer at the time. Spent my lunch hours being antisocial ioading basic games with a tape. Def enjoyed first programming with basic. Thanks to Mrs Stewart (d?) For your forward thinking and the soon to arrive apple IIc and uncountable hrs playing Evolution and Logo. Pretty sure I still have a floppy disk notcher in Canada to make them double sided. :). If you were lucky you could borrow one of the three computers over the summer break. My first actual computer was a Ti994a. Loved it. Had to spend days with my Dad typing in then debugging code from a magazine . No disc. Just printed text to re type and save on the Sony tape drive attached with a headphone cable. Then on to C128, 286, 386 etc etc .... Never as much fun..
I was living just off Broadway at the time the Pet was being sold at the CBM store on Broadway. It was around 3000 dollars. A few blocks up Broadway was a Apple Store, Atari store and a RS Shack. All long gone now. Ended up buying a CoCo1 . Good times on that corner of Broadway. So many computer stores.
Hello neighbour! I did not have a TI99, but a friend of mine did. It was an interesting machine all right. To me, the fun stopped with "PC". The PC has none of the charm or personality of the earlier micros. Of course that's the main reason the PC won out-a generic, bland architecture is an easier target to program for than dozens of incompatible, yet far more interesting platforms. Even so I will not forget the excitement of discovering the seemingly limitless potential of the computer. It was a whole new world. I have fond memories of learning the idiosyncrasies of each machine. It was not the way forward, but I'll never forget the Golden Age of computing. :)
Oh, yes. Fond memories of those type in programs, even though half the time it didn't work right either because I made a mistake or because THEY made a mistake and didn't print a correction until the following issue...
Thanks Adrian, this really takes me back! In the 80’s I owned a succession of Pets and one summer I wrote an accounting system on one for a friend who wanted to automate his law office. You could do a lot with these machines with a little work
That's some next level troubleshooting you did there Adrian! I fully agree with your statement in the outro: Thorough Diagnosis is the most important step of any repair ever. It's all about zooming in and understanding what's really going on under the hood before you order an entirely new engine ;-) It's also empowering to actually use one's diagnostic mindset to find the truth, get to know failure modes and learn new things by discovering them. If everyone would have this mindset the world would be a better place ;-)
@@kepanoid Funny that you mention that, Aki. I'm good at zooming in.. Zooming out: Not so much. I guess that's why I forgot it.. I guess we all have to make do with the means available to us ;-)
I love how in-depth this two part repair is. Seems like the kind of stuff I'd never figure out. Also props for somehow getting stuff from people who actually worked at Commodore.
Your best video yet. All the things you did for diagnostics i used before but not in this way. The way you used it was epic and is proof of your skills and understanding the way a computer works !
in defense of re-capping, they usually go bad over time anyway. iv'e salvaged half a dozen monitors from the e-waste bin with a relatively inexpensive re-capping. it works more often than not.
Also, if you suspect bad caps, you should recap before doing any further diagnostics that would involve applying power to the potentially bad caps, as they are a very real fire/explosion hazard.
Love that moment you realised your mistake of the vertical position 🤣 it's one of those moments you can't get mad, you just have to laugh at yourself 🤣🤣 Awesome video as always Adrian. Keep up all your awesome work 👍
It is interesting that you mention your troubleshooting philosophy. When someone thinks about what might cause a problem, then tests it in one spot, thinks some more, tests another spot, I call this the "engineering" approach because I've seen a lot of engineers use this method. I have worked my entire career in IT, but my formal education is in biology. In biology you don't generally have a single test point, so you have to choose some test that eliminates a bunch of variables (preferrably half). Then you choose another test that halves those variables. You quickly come to one variable. It is essentially a "shotgun" approach because you kind of don't care what the cause is until the end. I find this approach highly effective and fast when debugging circuits.
Thing is, when taking a shotgun approach you create many risks. Removing chips randomly from a board can easily cause damage, creating an additional problems beyond the initial one. It's also expensive when you are dealing with an old machine where parts are not just readily available. Finally, if you don't understand the problem (and the subsequent solution) you aren't likely to end up on the right solution with something as complex as a computer. WHen something is seemingly a common problem and it takes a moment to try an alternate part you already have on hand, of course it's worth doing and nothing further is to be done... but when trying that means desoldering parts from a 40 year old computer, you instantly introduce considerable risk to the integrity of the machine.
My main Commodore experience came from the PETs at the Atomic Museum which became the Museum of Science and Energy (Oak Ridge, TN) (until I went 100% Amiga). I was completely into the DEC PDP 11 series. It is extremely interesting seeing how this hardware works! Thank you very much! I enjoy your videos.
I'd love to have that startup tone on a modern (well, compared to the PET anyway!!) PC rather than the standard beep, makes the computer sound more computery... :D
I bought one of those same Portland Public Schools PET 4016 on e-bay 4-5 yrs ago, advertised as not working, with screen shot of screen full of garbage, same School engraving above the keyboard and label on side of monitor. When it arrived, on power up , it did just 1 audio chirp (not normal 4 chirps) and a FULL screen of random garbage characters. In the end, it turned out to be 1 bad RAM chip, same ITT brand 4116, datecode 8123, it was the RAM slot all way to rear (UA19 - bit 0(universal board), found it by doing the piggyback method of sticking a good 4116 RAM on top of each of 8 RAM chips one at a time until machine booted properly. Was working fine for several months, than I packed it away. Maybe 6-12 months later got it out. It booted up a few times OK, then next time totally died, appeared dead, no chirps, nothing on screen. In the end, turned out to be another bad one of the old original ITT 4116 RAM, this time RAM slot UA7 - bit 6(close to front), found by same method of piggybacking RAM until it booted. After that, I replaced all remaining original RAM chips and even populated the other 8 blank RAM slots to expand from 16k to 32k. So 1 single bad RAM on these can cause all sorts of different symptoms, from appearing totally dead, to many other random symptoms.
It's true -- as simple as tone of them trashing the bus can keep it from reading the ROMs right which would stop the machine from running the KERNAL ROM (and initializing the screen) I've had limited success with the piggyback method because it basically creates a bus conflict if the soldered chip is still working but giving bad data... but as you mention, it can help and it doesn't hurt to try!
Great video. I feel my brain getting a tiny bit larger every time I watch your troubleshooting skills in action. Great sign off message that proper troubleshooting is worth its weight in gold.
Once you figured out that the 4th bit was getting zeroed all you had to look for is a difference of 8 in the numbers. Like 49 changing to 41 or AA changing to A2. So, with this in mind you can see it messing up the line numbers of the BASIC program, changing line 10 to line 2.
Recapping a device depends on the age and the quality of the original caps. Some brands need to be replaced, on sight. A good ESR meter cap find others that need replaced. If there is a cluster in parallel, and one is bad, replace them all. If you see a RIFA brand capacitor at the AC input of any electronics, replace it before it catches on fire. I've used logical troubleshooting for 55 years. Routinely replacing a few high failure components isn't shotgunning, it is Preventive Maintenance.On some equipment just replacing those items will repair the device and prevent another trip to the bench. It's OK to troubleshoot to the last component. I did that at a factory, to learn how a board was supposed to work. It also allowed me to document needed changes in both production and design to create ECOs. When you have to repair a lot of equipment, a few sub dollar components is a lot cheaper than the labor to go further. When I was repairing a lot of C64 computers there was one brand of RAM that if you found one bad, the others weren't gong to lat much longer. Most customers just agreed to replace all eight as PM, but one demand that I only replace a single chip. another soon failed. Then another. It was finally the fourth repair that he decided to replace the remaining chips. He ended up spending three times what a single PM type repair would have cost. I also had people that would have me troubleshoot a computer, then refuse the repair price. I gave them back, without question. One member of the Orlando Commodore club stormed into our next meeting and started screaming that i was a fraud, that he had bought every chip that I had marked as defective,m but that it still didn't work. People started grinning at him. I replied, "I don't mark bad chips." He yelled, "You put dots of red paint on them!" People started laughing. "I put red dots on the good parts." I did this because some RAM chips had a green dot. He yelled, "You can't use red for that!" I just laughed and told him that I had 20 bottles of red model paint that I had bought for five cents each, and it was the only color that I could find at the time. His bill would have been $17. He spent over $60 buying ICs that he didn't need. (I used a resistor lead to touch to the paint, then the IC to leave the tiny dots. I marked them to keep from mixing them up with other chips.) Another member was too cheap to pay me $5 to remove a ROM and install a socket for JiffyDOS so he pried the IC out of the board, ruining it. He had to pay me $25 to trade me for an already modified board.
Heh. Any moment now I expect to hear, "It works! It freakin' works!" This was fun to watch. Your troubleshooting path shows in-depth knowledge, and does pinpoint the problem so that minimal components are swapped to correct the problem. Well done!
I'm actually surprised you needed the calculator to check the bits, I would have thought you'd be able to figure that out without it since hex to bin is pretty straightforward.
Awesome video, mate! I Especially love your methodical approach to repair - so refreshing to see. The one that bugs me, though, is what caused the RAM IC to fail in the first place? Yes, they are old and renown to be prone to failure but I would be suspicious of the PSU and in particular, the very old electro's that are perhaps way past their life expectancy. If you were aiming to keep this glorious old machine running, I would strongly suggests replacing all the electro's - esp the filters in the PSU. Just my humble 2 pennies/cents worth. :)
I'd toss that ROM on a header card (after dumping for safe keeping) with some connectors for leads and an A-B switch: hook up the leads, fire up the PET, throw the switch and it takes care of disconnecting the ROM for you, no fuss. One socket on top, one underneath.
It's true that step-by-step troubleshooting is rare, but that's just because the "fix it with a hatchet" approach is just so enticing. Once back in the day a friend of mine gave me a Windows-95 PC that belonged to a family member. It's obvious now that it had a corrupted registry entry two. I just upgraded it to Windows-98 and put in some extra ram for good measure. Not exactly a stellar performance on my part, but it still made me look like a hero. 🤣
In order to use the DIAG ROM pin to jump to the machine language monitor successfully, you have to reset the stack pointer before you enter other commands. Specifically, the ";" at the front of the register dump is _also_ the MLM command to load registers. I used to have a reset button and a DIAG ROM button on my PET for when I'd crash it writing machine language programs. I'd hold the DIAG ROM button then tap the reset button then release when I saw the monitor printout. The reason for doing it is because this drops you to the monitor prompt _before_ it tests/wipes main RAM. Notice how the SP is 01. When you jump to the monitor in normal usage, you see a much larger number like $F8. If you don't fix the SP, it can't even do one JSR without the stack wrapping. You have to use the cursor keys and move up and right and edit $01 to $F8 and then press enter. On a working machine, it will reset the stack pointer and leave you in the monitor so you can inspect/alter RAM etc. You can't just jump to BASIC because zero page isn't fully initialized yet. It at least lets you nose around and see why your program crashed.
That was a great video... I love to watch the diagnostic process in action. It's funny, for me, I get this massive feeling of nostalgia the moment I see a short BASIC program all full of PEEK and POKE.... it's like I'm a kid again.
Can the romulator remap memory locations? Would great for diagnostics if you could switch the existing necessary parts of memory on to the FPGA but then also probe them for diagnostics at different addresses. It could even feature a memory banking so you could write to a memory address to switch around address but that would be a bit complex to program. But that would allow for some really neat diagnostic programs to be written.
The ROMulator looks to be a great diagnostic tool. Impressive bit of fault finding and an inspired work-around with the CSEL tie up resistor trick for the continuation of diags.
Talking about changing out parts blindly to try and fix things - way back during high school I had a teacher who said he knew a guy who was a great mechanic and he could fix any car. As long as the problem was bad spark plugs.
Great job troubleshooting your PET! Very clever using the Romulator to get the machine working to the point where you can do proper troubleshooting. You could probably have figured it out using a scope to check all the lines on the RAM chips. But like you said, it's a bit of a shot in the dark. Especially if it's sort-of working some of the time.
I just got the RGB2HDMI working with my PET(s). I used your 40 col CRTC profile as a starting point and created a profile for 40 col non-CRTC and 80 col CRTC. All the 40 column modes look terrific and the 80 col mode works but doesn't look very good.
Always glad to see another PET rescue! I think you're definitely going to want to keep a configuration on your ROMulator where pages 00 and 01 are replaced since those are going to be needed by BASICs, monitors, and whatever else you might use to debug what's actually not working. If I were debugging this machine, the moment I began to suspect RAM or decoding logic might be a problem, I'd want to socket the RAM. One reason for that is if I wasn't sure if I could get something running in either a monitor or BASIC, I'd still have another option for debugging without replacing a single chip. Just rotate the RAM chips so that each one is in the next bit and the last in the first. It will still fail, but … is the failure different in any way? If it is, the problem is narrowed down to RAM (which is conveniently in sockets,) If not, it's decoding logic. If the issue's in the RAM chips (it probably is), they're now conveniently in sockets anyway and I have some opportunity to test them easily. If it's not, though, I can use the list of what works to help me figure out which of the 74 series logic chips govern what isn't. Those I can test in my minipro. I do love that replacing the zero and stack pages gave you enough of the system to debug things in-circuit. That ROMulator is a really useful device!
Any program (except special diagnostic and benchmarking) uses stack - so if adressing or RAM used for stack is not working you will need special program to test it. For the PET frequencies oscillograph or logic analyser (even oscilloscope for bad address line) would replace programming.
Truly awesome step by step... Another 'possibility' would be to simply run the RAM through the RAM tester you have, one by one (socketing the RAM when putting the good stuff back in). Can you / did you confirm bad RAM with your tester off screen, maybe? Edit: After doing the Machine Monitor mode testing...
Desoldering all those ram chips would fall into the shotgun approach, but I too would like to know if the chip tests bad, in contrast to possibly a cold solder joint...
@@Quickened1 Putting back the old chip into the socket should be enough to confirm if the chip is indeed broken, if he tried that I missed it. And like others I was waiting for what the Retro Chip Tester Pro would say about the chip. I don't think the RAMCheck can test this chip but I suspect the RCTP can? And if it's confirmed faulty but still passes the tests (not impossible, they're not complete) the person/group behind the RCTP may or may not be interested in investigating - no way to know without shooting them an email IF it's broken but tests OK.
@@kevinshumaker3753 30 year old cold solder joint? I assure you, it wouldn't be the first time! And who knows when the machine first started showing symptoms. Could have started 20 years ago... A cold solder joint can work perfectly for many years, and then suddenly, or even intermittently, present problems due to expansion and contraction from hot/cold cycles...
Your shotgun approach to repairs you mentioned sounds like what I know of as 'Left had corner' technique. Where I worked, we had some very large logic boards, that thankfully used sockets for all the IC's. Several of the repairers there just started in the left hand corner and swapped IC's with a known good set until it worked.
Nicely done, just a question, which would take longer, desoldering all the RAM chips and running them through a chip tester, or what you did? Seems like the shotgun method would be functionally faster in this case?
recapping is recommended because the caps are super old and can cause more problems. The idea is it's better to change them now so that if they do leak, it won't be on the board. Most people don't expect it to fix anything. I've seen it improve video signals slightly.
A cap that's been working for 40 years and still works IMHO isn't likely to leak and cause problem anytime soon. New caps are often made with low cost as a factor and you can inadvertently end up with fakes. How many things from the early 2000s failed with with bad caps? I know people with TVs from 2010 with failed caps. How can people be sure the caps they are installing today aren't going to be bad in 15-20 years -- while the 40 year old caps would have probably kept on working perfectly? Unless I know the caps will leak (SMD caps on a Mac as an exmaple) or are prone to leaking because of some other reason like the purple panasonic ones, or RIFA X caps, then I don't touch them. To put simply, just because new caps are junk and fail/leak quickly, we should not automatically associate this to caps from the late 70s and 80s as a general rule. Swapping out components always brings with it risk. You may install the wrong cap, or put one in backwards or lift a trace. You can cause real damage to something by changing components that don't need to be changed. Outside of the SMD caps on Macs/Amigas, I only had a few times where a bad cap was causing a fault across everything I've repaired. I think anyone watching my channel would come to the same conclusion ... but yet it is so unbelievably common for me to hear: "Oh this isn't working, I'm going to recap it."
@@adriansdigitalbasement 90s and 00s caps are trash. Something big went down that I don't remember and now the new ones are just as good as what was in the 80s. The way I see it, replacing a cap isn't going to hurt anything and it reduces the risk of them causing problems down the road. Even if they just simply stop working. Usually the risks I've seen involve chip removal. A lot of those traces are really short. I didn't have any issues with caps replacements, but I lifted a few traces that were shorter on chip and cartridge port replacements on my c64.
you can find the broken bit a little easier if you just take the difference. Say, 49 gets changed to 41 -> difference is 8, so the flipped bit is bit 3. 0a changes to 02, difference is again 10-2=8, so it's also bit 3.
I think having a floating point calculation for the free RAM shows a "BUG" as RAM can only be assigned at least by the bit - so 1/8 (of a byte) ist the smallest amount which can be assigned (or free). Usually the granularity is 1 Byte or more. Only when dealing with Microcontrollers you might fight for every single bit of ram/rom
Adrian...you are indeed an 8 bit force of nature. I cannot imagine there is an 8 bit system anywhere that would stand up against your sheer will to fix it. Misbehaving computers around the world beware.....😁
I suspect if you soaked the non-working PET key conductive rubbers in a mild alkaline solution like household ammonia or 1 teaspoon of sodium hydroxide (lye) dissolved in 100ml of water for a few hours to overnight, then let them dry several hours it would bring them back to life. The conductive silicone rubber can get contaminated or even leach silicone oil. The mild alkaline solution will clean it. I did a video on this a few years ago. It works wonders.
Guessing that the PET might be like the Apple IIs. To save a lot of space the interpreter for BASIC was, if I remember right, using some of the same keyboard input machine code as the assembly monitor, it simply branched differently depending on if it was in the monitor, Apple BASIC or Integer BASIC. And it is possible that it is staring data in same part of the bad memory, as part of the process of "interpretting" the command, to execute it. In fact this is likely, since it would be pushing/pulling addresses from the stack, comparing one of more letters in the commands, to see what to then do with them, etc. So if it does work the same, or similar, any interpreter command would fail the same way, regardless of whether in the monitor or BASIC.
I think so too. Keyboard entry and capture is going to be a ROM subroutine used by pretty much any ROM programs - otherwise you are duplicating code and taking up memory unnecessarily in a system where every byte was needed. When you hit the enter key, both the Basic Interpreter and the Monitor are looking for a command or data entry, and are going to execute a routine which pulls the text entered (as anohter old Apple II user, I believe this is done by checking the position of the cursor and pulling the text from the screen memory). If the hardware issue prevents that routine from successful completion for any reason, any time you hit enter will cause a crash.
At 14:13 and such, when you were trying to execute the sys commands with the fractional memory basic, you didn't put in a space between the number and the sys command. Maybe that was not the right way to call that as later on you added a space and it worked. It may have been trying to report a syntax error which is what was freezing the system. Edit: Nevermind, saw it works later without a space normally.
I'd be just as giddy! XD I think the romulator would be just as useful for developing new 6502 computers as for debugging old ones. I sometimes have thoughts of developing such a machine, but I'm starting on something else now. Besides the romulator, I'm amazed at how debuggable the PET is with its norom line!
Is Bill Seiler from Commodore the same Bill Seiler that wrote Spacewars for DOS? I remember the address in the game was some Town Houses next to the Golf course in Scotts Valley, CA.
Great video. I think there must be a better way to test the RAM using the romulator using a custom ROM and maybe some hacks. Maybe the FPGA could invert A14 to remap the real RAM up the memory map so it can be tested using a BASIC program?
I would think an even better diagnostic tool would be a USB-connected microcontroller which would fit in a 6502 socket and generate read and write requests and report the results to the connected machine. Using the built-in machine language monitor is great if the memory system is working well enough to make it work, but if e.g. the memory bus isn't working well enough to get that far, it won't help much. A device to simply generate memory requests from the "CPU" would be able to do so without regard for whether anything was working.
Yeah if we could emulate the 6502 entirely and take control of the address and data bus, then we could do all sorts of neat stuff. It's actually possible to load other custom ROMs onto the Romulator which can execute inside its own ROM space, so one could write some custom routines to do all sorts of testing.
@@adriansdigitalbasement Can the ROMulator do bank-switching in a way that would allow e.g. address range $9000-$9FFF to be mapped to other address ranges on the external bus?
wish I had taken the logic and reasoning approach to fixing my old crusty heavily modified 3d printer(davinci 1.0), its cooling fan died and exploded the hotend into pieces all over the place. while working on it, I worked out everything could go back together without replacement parts, and after re-soldering the fan back on, it worked, but I didn't bother to work out why the fan died in the first place and just assumed a broken solder joint...no it was a short from movement/rubbing futher up the cable. 5 minutes later it did the same thing again, and this time I have to replace the heatsink, bowden tube, tube couplers etc, and none are left inside the country, 2 month wait incoming for not doing due diligence.
Your methodology and penchant for saving stuff kinda makes you the more highly articulate, clean-cut, Shango066 of vintage computing... (In case of confusion, I mean that in a very very good way)
One of your best episodes yet Adrian! I love how you used the classic “deduction and reasoning” approach to troubleshooting vs the “swap parts and pray” technique to fix this classic computer. Lots of valuable lessons to be learned…
Indeed, Marco! Here's to logic! \\//
One thing i really like about your videos is the fact that you show your viewers that no matter how good can someone be at repairing stuff there's always mistakes happening at human level and that is completely fine, instead of discouraging about the repair you just laugh about it and keep going.
Great video
Keep the good work
I'm amazed that the machine ran as much as it did with a flaky bit in each byte of RAM.
When I saw FF flip to F7 I knew it was the right path - it's the same bit that as when AA flipped to A2.
at 20:55 when he says "This part of the memory should be all AA's" and there were 3 bytes of A2's as it scrolled by I was screaming at the computer!
I loved this. In the eighties my elementary school in North Vancouver (Burrard View, long since bulldozed) had one of these The first and only computer at the time. Spent my lunch hours being antisocial ioading basic games with a tape. Def enjoyed first programming with basic. Thanks to Mrs Stewart (d?) For your forward thinking and the soon to arrive apple IIc and uncountable hrs playing Evolution and Logo. Pretty sure I still have a floppy disk notcher in Canada to make them double sided. :). If you were lucky you could borrow one of the three computers over the summer break. My first actual computer was a Ti994a. Loved it. Had to spend days with my Dad typing in then debugging code from a magazine . No disc. Just printed text to re type and save on the Sony tape drive attached with a headphone cable. Then on to C128, 286, 386 etc etc .... Never as much fun..
I was living just off Broadway at the time the Pet was being sold at the CBM store on Broadway. It was around 3000 dollars. A few blocks up Broadway was a Apple Store, Atari store and a RS Shack. All long gone now. Ended up buying a CoCo1 . Good times on that corner of Broadway. So many computer stores.
Hello neighbour! I did not have a TI99, but a friend of mine did. It was an interesting machine all right. To me, the fun stopped with "PC". The PC has none of the charm or personality of the earlier micros. Of course that's the main reason the PC won out-a generic, bland architecture is an easier target to program for than dozens of incompatible, yet far more interesting platforms. Even so I will not forget the excitement of discovering the seemingly limitless potential of the computer. It was a whole new world. I have fond memories of learning the idiosyncrasies of each machine. It was not the way forward, but I'll never forget the Golden Age of computing. :)
Oh, yes. Fond memories of those type in programs, even though half the time it didn't work right either because I made a mistake or because THEY made a mistake and didn't print a correction until the following issue...
From time to time you amaze me with your knowledge and the way you are thinking. Amazing job!
Thanks Adrian, this really takes me back! In the 80’s I owned a succession of Pets and one summer I wrote an accounting system on one for a friend who wanted to automate his law office. You could do a lot with these machines with a little work
As a non-regular viewer but 1979 Commodore CBM3016/32 user (as thy were named in The Netherlands) this was a lot of fun to watch!
That's some next level troubleshooting you did there Adrian!
I fully agree with your statement in the outro: Thorough Diagnosis is the most important step of any repair ever. It's all about zooming in and understanding what's really going on under the hood before you order an entirely new engine ;-) It's also empowering to actually use one's diagnostic mindset to find the truth, get to know failure modes and learn new things by discovering them. If everyone would have this mindset the world would be a better place ;-)
Wholeheartedly agree with the sentiment, but sometimes you have to zoom *out* instead of in to see the big picture and find the problem...
@@kepanoid Funny that you mention that, Aki. I'm good at zooming in.. Zooming out: Not so much. I guess that's why I forgot it..
I guess we all have to make do with the means available to us ;-)
I love how in-depth this two part repair is. Seems like the kind of stuff I'd never figure out. Also props for somehow getting stuff from people who actually worked at Commodore.
Having been born in 87, these computers are past my time and I know nothing about them but this is still very interesting to watch.
Your best video yet. All the things you did for diagnostics i used before but not in this way. The way you used it was epic and is proof of your skills and understanding the way a computer works !
in defense of re-capping, they usually go bad over time anyway. iv'e salvaged half a dozen monitors from the e-waste bin with a relatively inexpensive re-capping. it works more often than not.
Also, if you suspect bad caps, you should recap before doing any further diagnostics that would involve applying power to the potentially bad caps, as they are a very real fire/explosion hazard.
Great to see it up and running, a pet is not just for Christmas with some loving fixes it could last a life time 😀
Love that moment you realised your mistake of the vertical position 🤣 it's one of those moments you can't get mad, you just have to laugh at yourself 🤣🤣
Awesome video as always Adrian. Keep up all your awesome work 👍
I do love seeing computer history being kept alive, with modern solutions :)
It is interesting that you mention your troubleshooting philosophy. When someone thinks about what might cause a problem, then tests it in one spot, thinks some more, tests another spot, I call this the "engineering" approach because I've seen a lot of engineers use this method. I have worked my entire career in IT, but my formal education is in biology. In biology you don't generally have a single test point, so you have to choose some test that eliminates a bunch of variables (preferrably half). Then you choose another test that halves those variables. You quickly come to one variable. It is essentially a "shotgun" approach because you kind of don't care what the cause is until the end. I find this approach highly effective and fast when debugging circuits.
Thing is, when taking a shotgun approach you create many risks. Removing chips randomly from a board can easily cause damage, creating an additional problems beyond the initial one. It's also expensive when you are dealing with an old machine where parts are not just readily available. Finally, if you don't understand the problem (and the subsequent solution) you aren't likely to end up on the right solution with something as complex as a computer.
WHen something is seemingly a common problem and it takes a moment to try an alternate part you already have on hand, of course it's worth doing and nothing further is to be done... but when trying that means desoldering parts from a 40 year old computer, you instantly introduce considerable risk to the integrity of the machine.
My main Commodore experience came from the PETs at the Atomic Museum which became the Museum of Science and Energy (Oak Ridge, TN) (until I went 100% Amiga). I was completely into the DEC PDP 11 series. It is extremely interesting seeing how this hardware works! Thank you very much! I enjoy your videos.
Man, I'll bet computer techs would have been drooling to have diagnostic tools like that ROMulator back in the day.
Glad to see you now have it 100.01066% fixed! ;-)
I'd love to have that startup tone on a modern (well, compared to the PET anyway!!) PC rather than the standard beep, makes the computer sound more computery... :D
Some of commodores pc clones have the pet beep on boot.
I bought one of those same Portland Public Schools PET 4016 on e-bay 4-5 yrs ago, advertised as not working, with screen shot of screen full of garbage, same School engraving above the keyboard and label on side of monitor. When it arrived, on power up , it did just 1 audio chirp (not normal 4 chirps) and a FULL screen of random garbage characters. In the end, it turned out to be 1 bad RAM chip, same ITT brand 4116, datecode 8123, it was the RAM slot all way to rear (UA19 - bit 0(universal board), found it by doing the piggyback method of sticking a good 4116 RAM on top of each of 8 RAM chips one at a time until machine booted properly. Was working fine for several months, than I packed it away. Maybe 6-12 months later got it out. It booted up a few times OK, then next time totally died, appeared dead, no chirps, nothing on screen. In the end, turned out to be another bad one of the old original ITT 4116 RAM, this time RAM slot UA7 - bit 6(close to front), found by same method of piggybacking RAM until it booted. After that, I replaced all remaining original RAM chips and even populated the other 8 blank RAM slots to expand from 16k to 32k. So 1 single bad RAM on these can cause all sorts of different symptoms, from appearing totally dead, to many other random symptoms.
It's true -- as simple as tone of them trashing the bus can keep it from reading the ROMs right which would stop the machine from running the KERNAL ROM (and initializing the screen) I've had limited success with the piggyback method because it basically creates a bus conflict if the soldered chip is still working but giving bad data... but as you mention, it can help and it doesn't hurt to try!
Incredibly cool troubleshooting here, love it!
Great video. I feel my brain getting a tiny bit larger every time I watch your troubleshooting skills in action. Great sign off message that proper troubleshooting is worth its weight in gold.
Once you figured out that the 4th bit was getting zeroed all you had to look for is a difference of 8 in the numbers. Like 49 changing to 41 or AA changing to A2. So, with this in mind you can see it messing up the line numbers of the BASIC program, changing line 10 to line 2.
Recapping a device depends on the age and the quality of the original caps. Some brands need to be replaced, on sight. A good ESR meter cap find others that need replaced. If there is a cluster in parallel, and one is bad, replace them all.
If you see a RIFA brand capacitor at the AC input of any electronics, replace it before it catches on fire.
I've used logical troubleshooting for 55 years. Routinely replacing a few high failure components isn't shotgunning, it is Preventive Maintenance.On some equipment just replacing those items will repair the device and prevent another trip to the bench. It's OK to troubleshoot to the last component. I did that at a factory, to learn how a board was supposed to work. It also allowed me to document needed changes in both production and design to create ECOs.
When you have to repair a lot of equipment, a few sub dollar components is a lot cheaper than the labor to go further.
When I was repairing a lot of C64 computers there was one brand of RAM that if you found one bad, the others weren't gong to lat much longer. Most customers just agreed to replace all eight as PM, but one demand that I only replace a single chip. another soon failed. Then another. It was finally the fourth repair that he decided to replace the remaining chips. He ended up spending three times what a single PM type repair would have cost.
I also had people that would have me troubleshoot a computer, then refuse the repair price. I gave them back, without question. One member of the Orlando Commodore club stormed into our next meeting and started screaming that
i was a fraud, that he had bought every chip that I had marked as defective,m but that it still didn't work. People started grinning at him. I replied, "I don't mark bad chips." He yelled, "You put dots of red paint on them!" People started laughing. "I put red dots on the good parts." I did this because some RAM chips had a green dot. He yelled, "You can't use red for that!" I just laughed and told him that I had 20 bottles of red model paint that I had bought for five cents each, and it was the only color that I could find at the time. His bill would have been $17. He spent over $60 buying ICs that he didn't need. (I used a resistor lead to touch to the paint, then the IC to leave the tiny dots. I marked them to keep from mixing them up with other chips.)
Another member was too cheap to pay me $5 to remove a ROM and install a socket for JiffyDOS so he pried the IC out of the board, ruining it. He had to pay me $25 to trade me for an already modified board.
Great diagnostics video, Adrian! Really enjoyed seeing how you got around a couple huge obstacles there to boil it down to that one chip.
Yup, in the automotive field we call it the Parts Cannon
Heh. Any moment now I expect to hear, "It works! It freakin' works!" This was fun to watch. Your troubleshooting path shows in-depth knowledge, and does pinpoint the problem so that minimal components are swapped to correct the problem. Well done!
I'm actually surprised you needed the calculator to check the bits, I would have thought you'd be able to figure that out without it since hex to bin is pretty straightforward.
Awww... It rather tickled me that a PET would have a "floating point" amount of RAM.
Silliness aside thanks for another excellent video.
It wasn't uncommon for eight bit computers to store all numbers , even integers, as floating-point.
Very cool! Thanks for sharing this. Love it. These old computers are fascinating to me.
Really fun riding along on the diagnosis of this, really fascinating to take the delicate approach versus the shotgun. Nice!
Idea: remake the tester with the clip you salvaged (assuming it is still usable), and use a custom chip that's configurable for various versions
Great video Adrian! Much better technique than throwing parts at the problem.
Heya Adrian, great video, but heads up you have a typo in your tags on this video "#commoore"
Awesome video, mate! I Especially love your methodical approach to repair - so refreshing to see.
The one that bugs me, though, is what caused the RAM IC to fail in the first place? Yes, they are old and renown to be prone to failure but I would be suspicious of the PSU and in particular, the very old electro's that are perhaps way past their life expectancy.
If you were aiming to keep this glorious old machine running, I would strongly suggests replacing all the electro's - esp the filters in the PSU. Just my humble 2 pennies/cents worth. :)
My first experience with PET computers was back in the early 1980's, grade 8 and high school!
great video loved your process to solve the issue !
Nice repair! 👍 Great, that only one RAM was the issue all the time..
FIRE THE PARTS CANNON!!!!!!!!!!!!!!
props to you for proper diagnostics
This reminds me of a Techmoan video where it was just him solving a problem. Good stuff.
Your channel is strangely addictive! Thanks
Shoutout to the person posting on the commodore newsgroups in 1994, being useful in 2022.
Although I never owned a PET, I enjoyed this video like an action movie! Loved the Romulator too.
I really like how you used the ROMulator as an alternative to the "parts cannon." It was very effective. :)
I'd toss that ROM on a header card (after dumping for safe keeping) with some connectors for leads and an A-B switch: hook up the leads, fire up the PET, throw the switch and it takes care of disconnecting the ROM for you, no fuss. One socket on top, one underneath.
Sweet enginerding music, soothing, relaxing.
It's true that step-by-step troubleshooting is rare, but that's just because the "fix it with a hatchet" approach is just so enticing. Once back in the day a friend of mine gave me a Windows-95 PC that belonged to a family member. It's obvious now that it had a corrupted registry entry two. I just upgraded it to Windows-98 and put in some extra ram for good measure. Not exactly a stellar performance on my part, but it still made me look like a hero. 🤣
In order to use the DIAG ROM pin to jump to the machine language monitor successfully, you have to reset the stack pointer before you enter other commands.
Specifically, the ";" at the front of the register dump is _also_ the MLM command to load registers.
I used to have a reset button and a DIAG ROM button on my PET for when I'd crash it writing machine language programs. I'd hold the DIAG ROM button then tap the reset button then release when I saw the monitor printout. The reason for doing it is because this drops you to the monitor prompt _before_ it tests/wipes main RAM.
Notice how the SP is 01. When you jump to the monitor in normal usage, you see a much larger number like $F8. If you don't fix the SP, it can't even do one JSR without the stack wrapping. You have to use the cursor keys and move up and right and edit $01 to $F8 and then press enter. On a working machine, it will reset the stack pointer and leave you in the monitor so you can inspect/alter RAM etc. You can't just jump to BASIC because zero page isn't fully initialized yet. It at least lets you nose around and see why your program crashed.
Very well done... great detective work.
That was a great video... I love to watch the diagnostic process in action. It's funny, for me, I get this massive feeling of nostalgia the moment I see a short BASIC program all full of PEEK and POKE.... it's like I'm a kid again.
Can the romulator remap memory locations? Would great for diagnostics if you could switch the existing necessary parts of memory on to the FPGA but then also probe them for diagnostics at different addresses. It could even feature a memory banking so you could write to a memory address to switch around address but that would be a bit complex to program. But that would allow for some really neat diagnostic programs to be written.
The ROMulator looks to be a great diagnostic tool. Impressive bit of fault finding and an inspired work-around with the CSEL tie up resistor trick for the continuation of diags.
Talking about changing out parts blindly to try and fix things - way back during high school I had a teacher who said he knew a guy who was a great mechanic and he could fix any car. As long as the problem was bad spark plugs.
Nice TS with tools and knowledge you have. Thanks for sharing!
This vid had SO much good stuff in it. An instant classic.
Great job troubleshooting your PET! Very clever using the Romulator to get the machine working to the point where you can do proper troubleshooting. You could probably have figured it out using a scope to check all the lines on the RAM chips. But like you said, it's a bit of a shot in the dark. Especially if it's sort-of working some of the time.
I just got the RGB2HDMI working with my PET(s). I used your 40 col CRTC profile as a starting point and created a profile for 40 col non-CRTC and 80 col CRTC.
All the 40 column modes look terrific and the 80 col mode works but doesn't look very good.
Always glad to see another PET rescue! I think you're definitely going to want to keep a configuration on your ROMulator where pages 00 and 01 are replaced since those are going to be needed by BASICs, monitors, and whatever else you might use to debug what's actually not working.
If I were debugging this machine, the moment I began to suspect RAM or decoding logic might be a problem, I'd want to socket the RAM. One reason for that is if I wasn't sure if I could get something running in either a monitor or BASIC, I'd still have another option for debugging without replacing a single chip. Just rotate the RAM chips so that each one is in the next bit and the last in the first. It will still fail, but … is the failure different in any way? If it is, the problem is narrowed down to RAM (which is conveniently in sockets,) If not, it's decoding logic.
If the issue's in the RAM chips (it probably is), they're now conveniently in sockets anyway and I have some opportunity to test them easily. If it's not, though, I can use the list of what works to help me figure out which of the 74 series logic chips govern what isn't. Those I can test in my minipro.
I do love that replacing the zero and stack pages gave you enough of the system to debug things in-circuit. That ROMulator is a really useful device!
Any program (except special diagnostic and benchmarking) uses stack - so if adressing or RAM used for stack is not working you will need special program to test it. For the PET frequencies oscillograph or logic analyser (even oscilloscope for bad address line) would replace programming.
Great troubleshooting. I think 10 or 15 years ago I could think like you but now my mind is mush.
Truly awesome step by step... Another 'possibility' would be to simply run the RAM through the RAM tester you have, one by one (socketing the RAM when putting the good stuff back in). Can you / did you confirm bad RAM with your tester off screen, maybe? Edit: After doing the Machine Monitor mode testing...
Desoldering all those ram chips would fall into the shotgun approach, but I too would like to know if the chip tests bad, in contrast to possibly a cold solder joint...
@@Quickened1 30 year old cold solder joint?
@@Quickened1 Putting back the old chip into the socket should be enough to confirm if the chip is indeed broken, if he tried that I missed it. And like others I was waiting for what the Retro Chip Tester Pro would say about the chip.
I don't think the RAMCheck can test this chip but I suspect the RCTP can?
And if it's confirmed faulty but still passes the tests (not impossible, they're not complete) the person/group behind the RCTP may or may not be interested in investigating - no way to know without shooting them an email IF it's broken but tests OK.
@@kevinshumaker3753 30 year old cold solder joint? I assure you, it wouldn't be the first time! And who knows when the machine first started showing symptoms. Could have started 20 years ago... A cold solder joint can work perfectly for many years, and then suddenly, or even intermittently, present problems due to expansion and contraction from hot/cold cycles...
@@Torbjorn.Lindgren he did not re-insert the chip, but yeah, that should confirm whether or not it is truly bad. Would be interesting to find out...
Your shotgun approach to repairs you mentioned sounds like what I know of as 'Left had corner' technique.
Where I worked, we had some very large logic boards, that thankfully used sockets for all the IC's. Several of the repairers there just started in the left hand corner and swapped IC's with a known good set until it worked.
Fantastic troubleshooting. Loved it!
Great video :D Love your aproach to fixing old computers.
An outstanding episode Adrian.
Adrian, you are amazing and awesome at this craft!
Wonderful troubleshooting video!! Question, where can we get information on the SYS commands and on the built-in diagnostic?
Nicely done, just a question, which would take longer, desoldering all the RAM chips and running them through a chip tester, or what you did? Seems like the shotgun method would be functionally faster in this case?
recapping is recommended because the caps are super old and can cause more problems. The idea is it's better to change them now so that if they do leak, it won't be on the board. Most people don't expect it to fix anything. I've seen it improve video signals slightly.
A cap that's been working for 40 years and still works IMHO isn't likely to leak and cause problem anytime soon. New caps are often made with low cost as a factor and you can inadvertently end up with fakes. How many things from the early 2000s failed with with bad caps? I know people with TVs from 2010 with failed caps. How can people be sure the caps they are installing today aren't going to be bad in 15-20 years -- while the 40 year old caps would have probably kept on working perfectly? Unless I know the caps will leak (SMD caps on a Mac as an exmaple) or are prone to leaking because of some other reason like the purple panasonic ones, or RIFA X caps, then I don't touch them.
To put simply, just because new caps are junk and fail/leak quickly, we should not automatically associate this to caps from the late 70s and 80s as a general rule. Swapping out components always brings with it risk. You may install the wrong cap, or put one in backwards or lift a trace. You can cause real damage to something by changing components that don't need to be changed.
Outside of the SMD caps on Macs/Amigas, I only had a few times where a bad cap was causing a fault across everything I've repaired. I think anyone watching my channel would come to the same conclusion ... but yet it is so unbelievably common for me to hear: "Oh this isn't working, I'm going to recap it."
@@adriansdigitalbasement 90s and 00s caps are trash. Something big went down that I don't remember and now the new ones are just as good as what was in the 80s. The way I see it, replacing a cap isn't going to hurt anything and it reduces the risk of them causing problems down the road. Even if they just simply stop working. Usually the risks I've seen involve chip removal. A lot of those traces are really short. I didn't have any issues with caps replacements, but I lifted a few traces that were shorter on chip and cartridge port replacements on my c64.
36:52 "Shotgun," I like that. In some tech support circles like MS support, it's referred to as a "Silver Bullet."
you can find the broken bit a little easier if you just take the difference. Say, 49 gets changed to 41 -> difference is 8, so the flipped bit is bit 3. 0a changes to 02, difference is again 10-2=8, so it's also bit 3.
Great job, your diag skills are very good.
I think having a floating point calculation for the free RAM shows a "BUG" as RAM can only be assigned at least by the bit - so 1/8 (of a byte) ist the smallest amount which can be assigned (or free). Usually the granularity is 1 Byte or more. Only when dealing with Microcontrollers you might fight for every single bit of ram/rom
"You have snatched the digital pebble from my hand". You are worthy my son. 100 points awarded.
You’re a frickin’ 8 bit genius.
Great stuff!. Well diagnosed.
Adrian...you are indeed an 8 bit force of nature. I cannot imagine there is an 8 bit system anywhere that would stand up against your sheer will to fix it. Misbehaving computers around the world beware.....😁
It freaking works!
I suspect if you soaked the non-working PET key conductive rubbers in a mild alkaline solution like household ammonia or 1 teaspoon of sodium hydroxide (lye) dissolved in 100ml of water for a few hours to overnight, then let them dry several hours it would bring them back to life. The conductive silicone rubber can get contaminated or even leach silicone oil. The mild alkaline solution will clean it. I did a video on this a few years ago. It works wonders.
@24:00 All those A2s are the exact same bit being a 0 instead of a 1 causing FF to write as F7
Guessing that the PET might be like the Apple IIs. To save a lot of space the interpreter for BASIC was, if I remember right, using some of the same keyboard input machine code as the assembly monitor, it simply branched differently depending on if it was in the monitor, Apple BASIC or Integer BASIC. And it is possible that it is staring data in same part of the bad memory, as part of the process of "interpretting" the command, to execute it. In fact this is likely, since it would be pushing/pulling addresses from the stack, comparing one of more letters in the commands, to see what to then do with them, etc.
So if it does work the same, or similar, any interpreter command would fail the same way, regardless of whether in the monitor or BASIC.
I think so too. Keyboard entry and capture is going to be a ROM subroutine used by pretty much any ROM programs - otherwise you are duplicating code and taking up memory unnecessarily in a system where every byte was needed. When you hit the enter key, both the Basic Interpreter and the Monitor are looking for a command or data entry, and are going to execute a routine which pulls the text entered (as anohter old Apple II user, I believe this is done by checking the position of the cursor and pulling the text from the screen memory). If the hardware issue prevents that routine from successful completion for any reason, any time you hit enter will cause a crash.
I'd like to see that faulty RAM chip in your retro chip testers, maybe 2nd channel follow-up video? 🤔
At 14:13 and such, when you were trying to execute the sys commands with the fractional memory basic, you didn't put in a space between the number and the sys command. Maybe that was not the right way to call that as later on you added a space and it worked. It may have been trying to report a syntax error which is what was freezing the system.
Edit: Nevermind, saw it works later without a space normally.
I typed all that too, but then had to delete it - lol -.
I'd be just as giddy! XD
I think the romulator would be just as useful for developing new 6502 computers as for debugging old ones. I sometimes have thoughts of developing such a machine, but I'm starting on something else now.
Besides the romulator, I'm amazed at how debuggable the PET is with its norom line!
Love the fact you're using Topaz as your font in PuTTY!
Very thorough, great job!
Is Bill Seiler from Commodore the same Bill Seiler that wrote Spacewars for DOS? I remember the address in the game was some Town Houses next to the Golf course in Scotts Valley, CA.
There was already a socket for Bit 3 RAM? Did the removed/faulty bit 3 ram chip fail in the Retro Chip Tester Pro?
Great video. Must get me one of those romulator boards at some point.
Great job Adrian
Hooray!! Also, bonus Nerding Out for dessert!
Great video. I think there must be a better way to test the RAM using the romulator using a custom ROM and maybe some hacks. Maybe the FPGA could invert A14 to remap the real RAM up the memory map so it can be tested using a BASIC program?
Excellent video!
Might you check the wiring of your PET diagnostic connectors with the spec in the PET FAQ on Mr. Zimmerman's site - do they match?
I used the pinout on the schematics, which as far as I know are correct.
TL;DW: Just replace all the RAM chips in something this old. Otherwise watch Adrian's brilliant troubleshooting techniques!
Great adventure and experience 👍
I would think an even better diagnostic tool would be a USB-connected microcontroller which would fit in a 6502 socket and generate read and write requests and report the results to the connected machine. Using the built-in machine language monitor is great if the memory system is working well enough to make it work, but if e.g. the memory bus isn't working well enough to get that far, it won't help much. A device to simply generate memory requests from the "CPU" would be able to do so without regard for whether anything was working.
Yeah if we could emulate the 6502 entirely and take control of the address and data bus, then we could do all sorts of neat stuff. It's actually possible to load other custom ROMs onto the Romulator which can execute inside its own ROM space, so one could write some custom routines to do all sorts of testing.
@@adriansdigitalbasement Can the ROMulator do bank-switching in a way that would allow e.g. address range $9000-$9FFF to be mapped to other address ranges on the external bus?
@@adriansdigitalbasement Sigh...If only there was a board which could emulate both the 6502 and the motherboard RAM/ROMs.. :)
wish I had taken the logic and reasoning approach to fixing my old crusty heavily modified 3d printer(davinci 1.0), its cooling fan died and exploded the hotend into pieces all over the place.
while working on it, I worked out everything could go back together without replacement parts, and after re-soldering the fan back on, it worked, but I didn't bother to work out why the fan died in the first place and just assumed a broken solder joint...no it was a short from movement/rubbing futher up the cable.
5 minutes later it did the same thing again, and this time I have to replace the heatsink, bowden tube, tube couplers etc, and none are left inside the country, 2 month wait incoming for not doing due diligence.
Your methodology and penchant for saving stuff kinda makes you the more highly articulate, clean-cut, Shango066 of vintage computing... (In case of confusion, I mean that in a very very good way)