34 years ago, when I was 14 I managed to get my first 100%-compatible PC (because by then we were speaking about the compatibility rate). It was an XT-compatible motherboard supporting 4.77 and 8 MHz which wouldn't work, nothing was happening. I let it heat for a maybe half an hour while measuring voltages everywhere, until I noticed an 74LS244 that was totally cold to the touch. That made no sense, so I concluded it had to be dead. I unplugged my power supply (a variable one which could already have fried half of the board), carefully desoldered the chip trying not to peel off tracks, cleaned the holes and soldered another one. I was delighted with a BIOS counting memory when replugging the PSU. I was very proud (and very happy). It has been my main PC for several years!
I admire the effort you put into repairing those old machines. They are without any practical use today. But they are kind of a historic artifact. Keeping them alive is a great service to history.
My father payed $ 3000 US Dollars for that exact machine when I was a kid. At first he even didnt let me get close it, but with time I became the owner of it hehehe.
Haha, I remember when my dad bought a 286 when PC prices dropped to more reasonable levels. I think he paid like 1700 for it, 1MB of RAM, a 40mb hard drive, and an amber monitor. But I was NOT allowed to touch it for many years, eventually I was forced to use it to run math blaster when I got older and stunk at math. We had that computer forever! finally upgraded to a Pentium 133 with Win95.... Talk about not upgrading. Running dos until the mid 90's... I was even doing school reports in dos with word perfect.
@@volvo09I was doing school papers on an IBM PS/2 286 with WordPerfect 5.1 and printed into traction paper with a ProPrinter II until January 1999, when we got an HP Pavilion with a P2 400 and a zip 100 drive!
I worked at IBM in the early 80's and had one of the first 5150 machines (with 16K ram). Since IBM was charging about $400 for a single diskette drive I used the cassette to load and save programs in Basic. It was a rock solid 1500 baud interface connected to almost any cassette drive using standard audio tapes. It worked great.
So I initually commented that IBM never released a 16k version of the 5150. But when I went to double check, low and behold they actually did. And cassette was a requirement. Floppy systems started with 64K as minimum. Very interesting. I couldn't see this being very functional unless there was a decent library of software.
Huh, that's fascinating, I never associate cassette storage with IBM, only older, smaller machines like the VIC-20 and Atari 8-bits and C-64 and such. Also 16K, that's kind of amazing. The Atari 400 came with that much (after a time). Funny that the internal user was given this rock-bottom configuration! Some kind of early dogfooding?
Yeah, my 5150 came with one bank of soldered-in 16K and 3 empty banks which were socketed (just like Adrian's except his was made slightly later and came with one bank of 64K soldered and 3 banks socketed). Adrian''s machine possibly came with a larger power supply as my machine came with an anemic 63 watt PS. I think after a while they no longer made machines with the cassette port as floppy drives came down in price. Just F.Y.I. the Basic interpreter in Rom was (of course) from Microsoft and had a notorious bug. If you formatted output using the "print using" function and added two and two together the answer was 3.999. Headlines all over read "IBM computer can't add correctly!" I also loved that 6 pound mechanical keyboard that it came with.
Well, for software used those computer Basic books and laboriously typed in long listings. Those were mostly text based listings as they didn't have many listings that had code for the CGA adapter. But really, you could type in programs from almost any other computer at that time and just make a few changes to get it to run on the 5150. Eventually someone came out with Turbo Basic ($60) which could compile your basic code into an exe file. That made your programs at least 10 times faster.
You're embarking on the exploration of a huge rabbit hole with the Intel and IBM data sheets. The 5150 is actually quite complicated, compared to the 8-bit systems of the time. I've read that 5150 manual forwards and backwards several times, and I still learn something new every time I mess with my 5150. This stuff is a blast to mess around with!
This is my favourite video to date I think. Even better than the field-found 64. Watching the learning process as you dig into the logic on an unfamiliar machine is incredibly satisfying. Thanks for sharing and thanks to whoever finds and shares the schematics so that this level of troubleshooting is possible. Looking forward to finding out who was the villain in part two.
Q0 in the datasheet means "output unchanged". It's hard to put in words (especially when English is not my first language), but the described outputs are state "Q1" - basically the next state, given the current state and its inputs. If it says Q0, it's referring to the outputs as they currently are.
Agree. The last line is saying that as long as you're not forcing the output with the PRE or CLR, and as long as the clock is low, the output won't change. The value of D is ignored. But TBT, I figured that out because I know how a D flipflop is supposed to work.
Correct-ish. Q0 is actually the previous state which was latched when CLK transitioned. On this chip; you see that Q0 is latched from the state of D on the rising edge of CLK. Clear in the truth table if you are familiar with how logic data sheets read. So in this case; the previous state of the flip flop/latch was last latched with D being low. OR CLR signal went low at some point initializing Q0 to low.
I always love your debugging videos.. You're one of the very few channels that go down to block level diagrams to figure out what's going on. Keep it up please!
At least it's now a step closer to being functional. Many people would probably have tossed it out as dead especially if they lack the electronics knowledge to poke around and figure out what is going on. I like how you're undaunted by the fact it's a machine you don't have a lot of experience with from a service and repair perspective.
Well, that's how you get experience! Nothing teaches you more than having to do the skull sweat and figure things out yourself. That's how i became a subject matter expert on equipment that i have had no training on. Just having to brute force repairs, and eventually you build up enough experience to actually understand how the bloody thing is supposed to work. This is the HARD way, but it certainly does work, if you have the patience to keep on banging your head into that wall. ^-^
@@Firthy2002 True that. Indeed, if he has 3 hours into this (incomplete) repair, at what point does he toss it out and go buy a $250 (made up number) tested motherboard?
I bought an original with no floppy disks because the original drives were single-side only. Then I bought double-sided drives which were completely compatible since the original PC used almost entirely off-the-shelf components. Never used the cassette port.
I worked for a computer startup starting in 1980. My company had a contract with IBM to sell their PCs. I had to go to Boca Raton FL for IBM PC class. Just board swapping but the class and the area were great!
That is a great feeling finding a fault and fixing it! Watching your videos like this gave me the courage to troubleshoot an Apple II+ motherboard also with multiple faults. Going backwards one issue at a time got it working again. Can't wait for part 2!
Ha, brings back memories. I used to know these chips by heart '00, '04, '08, '74, '175, etc. Still, I don't think I possessed your patience and tenacity. Also, it would have been an eye opener back then to consider chips going bad as I had never experienced that it in the 1980'es; faults were almost always broken wires or shorted pins. I look forward to the next chapter in this adventure.
This video couldn't have come out at a better time, as I have a 5150 with the exact same symptoms on my bench right now! Great diagnostics, as always. Working backwards is so important. I absolutely feel that high when you found the bad LS00!
I finally subscribed! Your channel brings me back to when I was young, working on my dads IBM & PS2. My first personal computer was a AT&T 6300 and my first bought system was a 386DX with the separate co-processor. Keep up the great work!
I appreciate the detail you go jnto talking about your troubleshooting process. There's a lot about circuit logic I don't understand, like why pull-up resistors work, or what the negative 5 and 12 volt rails mean. But as an IT professional, I applaud the time you take to start at the core problem and work back the why of the problem. Keep up the amazing videos.
im right there with you. i feel like i gain 1% more understanding of how the chips and board work with every video I watch. its a lot to take in from someone that has 0 experience with all this but wants to learn
Pull up/Pull down resistors are just a way to configure a resistor to hold a signal at a known voltage when nothing else is happening. For instance, if you have a Reset line that is active high and you don't want the computer to run without the rest of the system being out of reset, you might use a resistor of a few thousand ohms that "pulls" the voltage high to +5 volts and allows some current to flow. When something else pulls the Reset line to 0V, the resistor will separate the +5v from the line just enough that the signal is close to 0V and the Reset line sees a "low" signal. Pull up/Pull down resistors are pretty important as they ensure that each signal has a known default value and isn't floating. Many logic chips (especially older ones) will either "drive" the bus by increasing the voltage to Vcc (usually 5V) or they will "sink" the voltage by decreasing the voltage to Vss (usually 0V) depending on how their output transistors are configured. In some cases they don't effectively do both, hence pull down and pull up resistors. Many data sheets will recommend Pull up and Pull down resistors on certain signal lines for stability reasons.
arkanoid376970’s explanation is very thorough, but I will share the nugget which demystified pull up/down resistors for me: a pull up resistor connects directly to the 5V line. A pull down resistor connects directly to ground. They’re just default paths, which the chip can override. We use a resistor because it’s easier for the chip to override than a direct wire :) (If you’d like to learn more I highly recommend Ben Eater’s videos, as I believe it was one of his earlier videos which mentioned that nugget about pull up resistors and made everything click for me 😊)
You can think of a pull-up or pull-down resistor as a spring. It holds a "lever" in a default position. Pull-up is held high (+5V, for example) and pull-down is held low (Gnd). When something else is driving the signal, it overcomes the resistance of the "spring" and pulls the signal to a high or low state, as dictated by the signal. The pull-up/down resistor is then forced to whatever the signal is trying to do. (Let's just say "pull-up" now, and assume that could be a pull-up or pull-down resistor.) The pull-ups in this circuit are 4.7K, which is 4700 ohms of resistance. Pull-ups are typically between 1K and 100K, depending on a few factors. Lower resistances exert more "pressure" on the default signal level, so they take more current to overcome. As long as whatever is driving the signal has a strong enough output driver (the transistor responsible for outputting the signal), the lower resistance just results in more current passing through the pull-up resistor. It will get slightly warmer and use more power, which may be a concern in power-efficient (like battery-powered) designs. But, lower resistances are less susceptible to noise or spurious signals causing logic levels to change unexpectedly. OTOH, if you put a 1M resistor in a pull-up configuration, it will take very little current to override it. So little, in fact, that in an environment with sufficient noise, it could be overridden accidentally. So you have to pick a value in the sweet spot that doesn't cause excessive current draw, but also holds the default level sufficiently. There's usually a wide margin there, and I almost always go for 10K myself. Higher-speed circuits may also require either weaker pull-ups (to avoid forming a low-pass filter with the inherent stray capacitance in a logic circuit), or stronger output drivers to force the state to change decisively, since high speed logic, by its very nature, affords less transition time between samples. Everything in engineering is about balancing compromises.
Nice troubleshooting. Those were certainly simpler times. Long ago when I was a poor college student I spent a Saturday diagnosing my dead 486 motherboard and finally traced it to a bad diode. Fixing that was a proud moment!
S3 and S4 can be used to give the segment registers DS, CS, SS and ES separate address spaces. The Altos 8600 is the only machine I know of that actually did this although only to permit some small bit of per-segment memory protection. The functionality was removed in the 80186.
I always thought it would be intriguing to use those signals to map to separate physical 1MB banks. You could still overlay DS and ES for data sharing, but you could have a dedicated 1MB address space each for code and stack, for example. is that something like what the Altos did?
@@soulpa7ch Nope, they all share the same 1MB but it has a paging mmu which can set per-page permissions for which segment register is allowed to access the page. The manuals are at bitsavers if you want more info.
Onthe cassette drive thing, it amazes me to think that IBM PCs had such abilities to load & save data to cassette in the same way a speccy or a C64 could, for IBM, it seem a step backwards in technology, and yes, I know that tape backup devices were used commonly, but that's a different thing altogether...
The whole PC project can be seen as a step "backwards in technology", compared to many older IBM machines. They didn't even design most of it themselves, but used standard parts instead, Very unlike IBM. Because it was intended to compete against Apple II, TRS-80 and similar simple machines that were also mostly using standard ICs.
Great step-by-step wading through, backwards, the schematics and block diagrams. Where I usually bogged down is trying to understand signals that may not matter for the problem at hand, when really, what is required is to stay focused on only the path(s) that do matter. The trick is knowing the difference. You illustrate the technique well.
Thank you for a nice video. To understand some of the logic you through you have to go back to how d-ram works: 1) The addresses are split in 2 parts row and column and these values are sent to the chip with RAS and CAS asserted respectively, in that order. 2) When the row is addressed the whole row is read from the actual memory cells and put into a row register. When the column address is given it just picks the right bits from the register, not the memory cells. As a side not this is why 'fast page' works as any subsequent read / write within the 256 bytes of the page (the row) are accessed directly from this register. 3) The important thing to note is that when the cycle is finished, the whole row register is written back to the memory cells and this is what actually performs the refresh. So, what is needed to perform a refresh ? cycle through all the row adresses and assert the RAS line within the mix refresh time. The maximum refresh time depends on the chip used but is usually around 60uS. Some 'low power' chips increase this to reduce power consumption. Now comes the question: how is this done in different systems ? - Some systems that have shared main and video memory rely on the sequential video reads to satisfy the refresh conditions (Amstrad CPC). - Some systems use 100% custom logic - The PC uses a mix of Timer / DMA and glue logic The designers of the PC opted for this solution because the chips 8259 Timer and 8237 DMA were going to be used anyway and contrary to IBM standard they wanted to only use off the shelf parts. In a working system the BIOS sets up both chips to perform a 'fake access' to all the rows in turn to satisfy the refresh conditions. I am not sure if the BIOS is involved in any of this (receives an NMI interrupt from the 8259 and programs the 8237) but the complex glue logic you looked at is a timing logic making sure that sufficient time is given for the refresh to take place. Also, READY is meant for slow devices to insert wait states and force the CPU to wait until READY is asserted. The complex READY circuitry in the 8284 is apparently there the synchronize the signal with the current sub-cycle of the CPU it cannot be toggled willy nilly. If the refresh is not happening correctly I would check if the 8259 timer is working correctly. The fact that you get a repeating pulse on READY could mean that is is working (DMA wait for refresh).
4:40 Yes, I had a "Advance 86" with 128Kb of ram that I used in basic mode only until I saved the 500,- to by a 360kb floppy drive. My school mate bought a Lada 1200 for that money at the same time :-) Oh well both turned to e-waste ad Rust..
I didn't have this particular machine, the first computer I remember having at the home was a Heathkit Zenith computer. From what I've been able to find online, the Z-148 seems to be the closest match to my hazy memories. (Most of what I remember is a "store demo" program that came with it, but I haven't been able to find that at all, because I remember too little about it for Google to pull anything up.) But I'm always interested in seeing how these early computers functioned, so I love seeing these in-depth repair videos. Stay healthy, stay safe!
This video was a lot of fun to watch, it really feels good when you are able to locate the broken link in the chain that keeps things from working. The fact that it still doesn't work sucks big time, but hey, it's a fantastic opportunity to record another video in the near future.
That was quite a journey to get to the 74LS00. But you found it. Not easy at all with all that complex logic. Will tune in to see where the next fault is. Looking good.
One of the things I saw with these old IBM motherboards is broken traces near the memory chips. The board is not very well supported while inside the case, and a user adding memory could easily push the chips in with just a bit too much force. (And I mean seeing this back in the 80's.)
I loved this video 😂 I spent most of COVID lockdown designing and building my own "minimum mode" 8088 PC based on Sergey K. Xi8088 and I spent ages studying the 5150 and PCjr tech ref manuals (also a min mode machine) - tho I never really got my head round the DMA wait state logic, so great to see you tackle it too. Well done fining that IC I'm sure you must be getting closer. My guess next might be the tristate buffers for demuxing the data addr busses 😊
This was a spectacular video. So well done. I think this, more than any other video of yours I've seen, really highlights the benefits of your plan of attack when diagnosing these old boards. Even though you don't know the PC/ISA architecture the way you do the Commodore 64's, you were still able to walk the schematic and find key faults without mass chip swapping. Well done.
Hi Adrian. I saw my first 5150 at my first job. We definitely had that model, but they were all equipped with either 1 or 2 floppy drives already installed.
I just wanted to say, your videos are the best companion to my work days. I love the tech but unfortunately its not in my reality. But having your voice in the background doing stuff you clearly love is such a great ASMR for me to focus on working. And the occasional DK danceparty is just a bless. Hope this is ok to say lol. Thank you!
I had a 5150 in the early 90s surplus from my high school without a working MFM HDD, for a short period before I got a working HDD I used the BASIC ROM and a cassette recorder from my TRS-80 model I.
I did not own a 5150, but I was in a public tech school in 1983, and many of the 5150's in the computer lab were the 16K(?) no-drive variety. I’m sure these were cheaper and therefore easier to write an educational grant for. I took the very popular Basic Programming class, and we were required to use those machines at the beginning of the class. I think they assumed they would get the cassette tape completely working by the end of the semester (I tried to help since I had a new cheap-ified TI994a with a cassette interface at home), and we were close, but in the end they had to let us use the more expensive floppy machines. It’s a lot to expect a student to spent an entire lab entering 100s of lines of code for a class project to just turn off the computer and throw it all away.
Yes, the 8088/8086 has the maximum mode and minimum mode selection. It actually does more in minimum mode as it is closer to a microcontroller and is a 1-chip computer. Maximum mode strips away the internal DMA and IRQ controllers so you can add your own and provide more functionality yourself.
@@adriansdigitalbasement -- I didn't know about minimum mode and the unused internal hardware for some time. PCs always use Maximum mode. That means a timer, DMA controller, and IRQ controller need to be added to the board. I've never heard of Minimum mode being used, but I guess that would be for embedded applications. Telephone company equipment might have used it. However, the NEC V20 was more popular for that application. I've always admired that chip as it is fully compatible with the 8088, and it is 10-15% more efficient at running code. Like the 286, it adds a hardware multiplier and an address unit with its own adder. So memory accesses and multiplications take fewer cycles.
When debugging an early PC, hooking up the speaker will often tell you if you've got something seriously wrong. Back in the day, there was also something sold called a "POST" card. It had led lights that lit as the BIOS went through the power on self test. That would allow you to see exactly where the POST stopped. A nifty booklet gave further diagnosis by telling you what to look at with specific chips or areas of the board.
Amazing video, I really enjoyed the deep dive in the logic of that signal and can very much relate to the feeling when proper signal appears on the oscilloscope! Can't wait to see part 2!
To know if the 80c88 is actually doing something (pass the permanent infinite wait state you already fixed), I’d check ALE and M/IO pins. ALE (address latch enable) toggles every time the CPU is presenting an address in the A/D bus. That line latches the address to usually a 74ls373 (or some other transparent d-latch). If the CPU is stuck in a very short loop, the ALE will be toggling contrary to the most significant address lines, which were the ones you were probing. That would indicate the CPU is executing code. Also check if the DMA controller (8237) is sending hold requests to the CPU. If the DMA controller is sending hold requests to the CPU, that would indicate that all the logic and code for the RAM refresh was executed, thus validating the CPU is working or at least executing enough code to initialize the 82c37 (DMA controller, with accompanying DMA page registers), the 82c53 (timer), and 82c59 (interrupt controller). The DMA uses channel 0 for those, so I’d check DACK0 in the 82c37 to see those requests. After initial start, the BIOS writes to a bunch of the IO peripherals. I’d look to those getting their CS lines asserted, that would also indicate the CPU is writing/reading to/from those too. THE M/IO line indicates when the CPU is either accessing memory or an IO peripherals. If you see that toggling, then the CPU is stuck in a loop trying to get pass some IO device issue. That toggling indicates the CPU is going back and forth between memory (code) and the offending peripheral. The 80c88 has separate address spaces for IO devices and memory, sort the same as a Z80. M/IO line changes according to the type of access the CPU is doing, be that for memory or IO.
I wish I had the time to dig out that old dead 5150 board I've got somewhere around here and do some more troubleshooting. All I did when I got it was check for shorted tantalums and make sure the voltage rails were all good, then put it aside. Unfortunately I'm right in the middle of another electronics project, with plenty of others in the queue, so I'm not likely to get back to it any time soon. Anyway, always good to see your repair videos, even if we don't get that "it freakin works" moment. I'll be very interested to see what else is wrong with this board.
The IBM 5150 BIOS Post does several checks and they all must pass before it displays anything on the screen. If any of these test fails the BIOS will inmediatly halt the CPU. Some of these tests are: 8088 CPU Test, ROS Checksum Test, DMA controller check, Timer 1 check, RAM base 16k test, 8259 Int controller test.
Q0 on the flipflop chip, just means that the chip's internal state is being held. so if Q was high before, it remains high, and if it was low before, it will remain low.
PC-compatible clones "Elektronika MS-1502", "Poisk-1" from Soviet Ukraine also used cassette port. Still remember loading Dam Busters and Zaxxon off cassette.
And it's a 5150 with a hard drive. I had one as a kid (got it for $125 in the early 90s at a TRW surplus sale, back when their Carmel Mountain office was upgrading everything to HP-UX workstations) and it got me through fifth and sixth grade.
Any PC I came across back then always had floppy drives, never saw one with a cassette player attached. I think the tape support in BASIC was pretty brain dead too. Getting a machine code program into memory required jumping through hoops.
I'd check out S0-2 again at this point, but before that I would also connect a PC speaker. Allthough a lot of things on the 5150 fail silently with black screen, there's a bunch of stuff later in initialization that will give you beeps. And also, a POST diagnostic card will not work with 5150 PC and XT class machines, since a different IO port is used.
I recently got a clone of this board at VCFSW from the free pile. I hope the fact that half of the RAM is MT means that that part of the RAM is the fault. If not, I will definitely rewatch this series for some guidance.
One can hope! It seems later 256k MT RAM is quite reliable, it's mainly the slow and old 4164 that's bad. Half of your board probably has 64k DRAM though so at least just remove it from the board and see if it can work at 512k.
Just a nitpick here, but the CGA only did snow when you accessed memory during the raster scan, and (weirdly enough) it didn't happen in graphics mode. The IBM PC BIOS waited for the blanking interval before updating the screen, so you never saw the snow if you used BIOS or DOS screen output functions.
My 5150 actually started out as a diskless one. It had an extra ROM with Datalight ROMDOS on it, and ran software for the MicroTICCIT interactive TV system. I believe it came out of an Air Force base on the east coast, as it had a DoD tag on it and I remember reading about a training system which was trialed by the Air Force which used MicroTICCIT. That schematic is a bit weird- there are NAND gates which look like XNOR gates.
In the time that the IBM PC came out, my dad was working at a municipal automation center. I did a summer job there in 1985 and 1986, assembling IBM PC's. This was in the time that the AT was already released, so the original PC had been discontinued but the XT was still in the catalog. So I don't know for sure about the original 5150 PC (either the PC1 or PC2 which is what you have here) but I'm pretty sure that all XT's and AT's came from the VAR with floppy drives and hard disks installed according to the type number that you ordered. Of course there would also be the appropriate floppy disk and/or hard disk controller, but that was it. You had to add the display adapter (and set the dip switches accordingly of course), and the monitor and keyboard came in separate boxes too. I've never seen an IBM PC with no floppy drives. If you could afford an IBM PC, you could afford floppy drives and didn't need a cassette. The only official program that ever got released on cassette is the diagnostics program for the IBM PC; I've seen video's and pictures of it but I never had that in my hands, unlike a lot of other IBM PC related hardware.
I heard in another video that the BASIC in these ROMs doesn't work with floppy drives at all. You can only save your programs with the cassette interface. Also IBM continued to ship this BASIC in ROM long after their systems no longer had cassette interfaces making it completely useless since there was no way to load or save programs.
Yes that's correct, it can be called Cassette BASIC. You have to boot DOS from a disk and run basic from there to have a version where you can save to disk. (AFAIK, the DOS disk based BASIC still uses part of the ROM basic to save space on disk.) That may not be totally correct though!
i love watching these repair video's its very interesting even if i dont understand a lot of it. I especially like your enthusiasm and joy when you actually find the problem. As you say a lot "it freaking works!" when we hear that we know you got the job done! lol
~15 minutes in, the section you are reading is relevant to minimal mode. in this mode, you can only have one other master on the CPU local bus. The PC has min/mx pin strapped to maximal mode. On the pin schematic, the RQ/GT[01] column are the pins you should be looking at. They do this is so you can have DMA in addition to the math coprrocessor in the same system, as well as an external bus controller.
I've got a compaq portable with similar symptoms, though I don't have an oscilloscope to test with yet so I just keep replacing one chip at a time in the circuit until it works. My system speaker is squealing though and I'd be curious to find out if yours is too. I can't wait for the second half to see what you find! Hopefully your work will shed more light on my issue as well.
First thing I did when I got my 5150 was replace all the tantalum capacitors, they can go bad and short voltage rails to ground, Mouser sells identical looking ones. Also replace the ones on the cards. Next thing I did was re-cap the PSU, then replace the AMD 8088 with an Intel 8088, and add the Intel 8087.
Hi Adrian. I enjoy watching your videos. They have been a terrific distraction for me since my mom died earlier this year. I have a strange problem and am not sure if you would be able to provide some insight into solving it. The problem is a Samsung LCD monitor. It started to behave strangely a few months ago. I'd be watching something, the screen would blank briefly, then it would come back, then it would blank again and come back, and then it would blank and not come back -- just solid black. I opened up the monitor and looked around and everything seems fine. I bought an ESR meter to check what appear to be the little tin can SMD capacitors and they checked out. I know the chips must work because there is text on the screen. I wonder if I could send you a short video on what the screen looks like with the problem happening. Also, I could show you a photo I took of the board. I did some voltage measurements based on what was listed on the board and they checked out. I wonder if you or one of your viewers might have some insight for me. Thanks in advance. Jeff
I know what those multiplexed address status lines mean, it's related to the x86 memory segmentation scheme. The "Code or None" one means that the CPU is using the code segment register (CS) to store data that's being read from memory, or it's doing nothing in relation to the segment registers. The other ones should be fairly obvious, Data meaning that it's using the DS registers, the Stack one meaning it's using the SS register, the one that confuses me is "Alternate Data" which I think means it's using some general purpose register like FS, GS or possibly the accumulator.
I got a fun idea for a Commodore 64-related project you could try, if you’re interested in the challenge. Creating a C64 laptop, using whatever components (old or new) you have access to. Bonus points if you give it some kind of working sleep mode.
At 29:30 Adrian says that RDY1 at ground is fine but that would not be correct. That would mean it is waiting for DMA. That line should be high. At ~31:30 Adrian says he doesn't know what Q0 and /Q0 means. It means the state of the Q and /Q lines don't change. Their state will be whatever state they were in before the inputs changed to the H, H, L state.
It's starting to look more and more like this board might have experienced a PSU failure/lightning event and gotten spiked on certain rails, killing off the more voltage sensitive ic's. Then again given the clk gen chip was missing, who knows what other chips have been swapped around, what if its gonna turn out the roms are actually blank, or that the cpu is bad, unless you already tried a different cpu off camera.
The AMSTRAD PC1512 uses the same CPU and NDP as the machine you are working on but uses custom FPGA chips for to hold most of the logic found on IBM Compatible computers.
Actual FPGAs? Or ASICs? (The equivalent would be shipping (E)EPROMs rather than mask ROMs.) It certainly happened sometimes, but given Amstrad was so cost-conscious I’m just a bit surprised! Sometimes early units shipped FPGAs when they were waiting for the ASIC production line and needed to ship Now, but would them later switch to the cheaper ASIC once they had enough inventory. That would certainly be more what I’d expect from Amstrad. But maybe they used FPGAs the entire time!
the PC1512 was my first IBM-compatible system (1987, maybe). I had some weird stuff with it, like a Game Blaster audio card that's rare as heck now. Too bad I sold it in the mid 90s; I really miss it now.
34 years ago, when I was 14 I managed to get my first 100%-compatible PC (because by then we were speaking about the compatibility rate). It was an XT-compatible motherboard supporting 4.77 and 8 MHz which wouldn't work, nothing was happening. I let it heat for a maybe half an hour while measuring voltages everywhere, until I noticed an 74LS244 that was totally cold to the touch. That made no sense, so I concluded it had to be dead. I unplugged my power supply (a variable one which could already have fried half of the board), carefully desoldered the chip trying not to peel off tracks, cleaned the holes and soldered another one. I was delighted with a BIOS counting memory when replugging the PSU. I was very proud (and very happy). It has been my main PC for several years!
I admire the effort you put into repairing those old machines. They are without any practical use today. But they are kind of a historic artifact. Keeping them alive is a great service to history.
My father payed $ 3000 US Dollars for that exact machine when I was a kid. At first he even didnt let me get close it, but with time I became the owner of it hehehe.
Haha, I remember when my dad bought a 286 when PC prices dropped to more reasonable levels. I think he paid like 1700 for it, 1MB of RAM, a 40mb hard drive, and an amber monitor.
But I was NOT allowed to touch it for many years, eventually I was forced to use it to run math blaster when I got older and stunk at math.
We had that computer forever! finally upgraded to a Pentium 133 with Win95.... Talk about not upgrading. Running dos until the mid 90's... I was even doing school reports in dos with word perfect.
@@volvo09 Thats a beautifull story!. It brings so many memories to me... thank you very much my friend.
*paid
@@volvo09I was doing school papers on an IBM PS/2 286 with WordPerfect 5.1 and printed into traction paper with a ProPrinter II until January 1999, when we got an HP Pavilion with a P2 400 and a zip 100 drive!
I worked at IBM in the early 80's and had one of the first 5150 machines (with 16K ram). Since IBM was charging about $400 for a single diskette drive I used the cassette to load and save programs in Basic. It was a rock solid 1500 baud interface connected to almost any cassette drive using standard audio tapes. It worked great.
So I initually commented that IBM never released a 16k version of the 5150. But when I went to double check, low and behold they actually did. And cassette was a requirement. Floppy systems started with 64K as minimum. Very interesting. I couldn't see this being very functional unless there was a decent library of software.
Huh, that's fascinating, I never associate cassette storage with IBM, only older, smaller machines like the VIC-20 and Atari 8-bits and C-64 and such. Also 16K, that's kind of amazing. The Atari 400 came with that much (after a time).
Funny that the internal user was given this rock-bottom configuration! Some kind of early dogfooding?
Yeah, my 5150 came with one bank of soldered-in 16K and 3 empty banks which were socketed (just like Adrian's except his was made slightly later and came with one bank of 64K soldered and 3 banks socketed). Adrian''s machine possibly came with a larger power supply as my machine came with an anemic 63 watt PS. I think after a while they no longer made machines with the cassette port as floppy drives came down in price.
Just F.Y.I. the Basic interpreter in Rom was (of course) from Microsoft and had a notorious bug. If you formatted output using the "print using" function and added two and two together the answer was 3.999. Headlines all over read "IBM computer can't add correctly!" I also loved that 6 pound mechanical keyboard that it came with.
Well, for software used those computer Basic books and laboriously typed in long listings. Those were mostly text based listings as they didn't have many listings that had code for the CGA adapter. But really, you could type in programs from almost any other computer at that time and just make a few changes to get it to run on the 5150. Eventually someone came out with Turbo Basic ($60) which could compile your basic code into an exe file. That made your programs at least 10 times faster.
Wait, you worked at IBM, and they themselves didn't give you a disk drive?
You're embarking on the exploration of a huge rabbit hole with the Intel and IBM data sheets. The 5150 is actually quite complicated, compared to the 8-bit systems of the time. I've read that 5150 manual forwards and backwards several times, and I still learn something new every time I mess with my 5150. This stuff is a blast to mess around with!
youre ability to read, decode, and understand the schematic diagrams is amazing. im trying to get better but it still makes my head spin
This is my favourite video to date I think. Even better than the field-found 64.
Watching the learning process as you dig into the logic on an unfamiliar machine is incredibly satisfying. Thanks for sharing and thanks to whoever finds and shares the schematics so that this level of troubleshooting is possible.
Looking forward to finding out who was the villain in part two.
Q0 in the datasheet means "output unchanged". It's hard to put in words (especially when English is not my first language), but the described outputs are state "Q1" - basically the next state, given the current state and its inputs. If it says Q0, it's referring to the outputs as they currently are.
Agree. The last line is saying that as long as you're not forcing the output with the PRE or CLR, and as long as the clock is low, the output won't change. The value of D is ignored. But TBT, I figured that out because I know how a D flipflop is supposed to work.
Correct-ish. Q0 is actually the previous state which was latched when CLK transitioned. On this chip; you see that Q0 is latched from the state of D on the rising edge of CLK. Clear in the truth table if you are familiar with how logic data sheets read.
So in this case; the previous state of the flip flop/latch was last latched with D being low. OR CLR signal went low at some point initializing Q0 to low.
I always love your debugging videos.. You're one of the very few channels that go down to block level diagrams to figure out what's going on. Keep it up please!
At least it's now a step closer to being functional. Many people would probably have tossed it out as dead especially if they lack the electronics knowledge to poke around and figure out what is going on. I like how you're undaunted by the fact it's a machine you don't have a lot of experience with from a service and repair perspective.
Well, that's how you get experience! Nothing teaches you more than having to do the skull sweat and figure things out yourself. That's how i became a subject matter expert on equipment that i have had no training on. Just having to brute force repairs, and eventually you build up enough experience to actually understand how the bloody thing is supposed to work.
This is the HARD way, but it certainly does work, if you have the patience to keep on banging your head into that wall. ^-^
@@jeromethiel4323 It just seems to be a rarer thing these days with how new products seem to be made to be thrown away when they break.
@@Firthy2002 True that. Indeed, if he has 3 hours into this (incomplete) repair, at what point does he toss it out and go buy a $250 (made up number) tested motherboard?
I bought an original with no floppy disks because the original drives were single-side only. Then I bought double-sided drives which were completely compatible since the original PC used almost entirely off-the-shelf components. Never used the cassette port.
I worked for a computer startup starting in 1980. My company had a contract with IBM to sell their PCs. I had to go to Boca Raton FL for IBM PC class. Just board swapping but the class and the area were great!
That is a great feeling finding a fault and fixing it! Watching your videos like this gave me the courage to troubleshoot an Apple II+ motherboard also with multiple faults. Going backwards one issue at a time got it working again. Can't wait for part 2!
Ha, brings back memories. I used to know these chips by heart '00, '04, '08, '74, '175, etc. Still, I don't think I possessed your patience and tenacity. Also, it would have been an eye opener back then to consider chips going bad as I had never experienced that it in the 1980'es; faults were almost always broken wires or shorted pins. I look forward to the next chapter in this adventure.
This video couldn't have come out at a better time, as I have a 5150 with the exact same symptoms on my bench right now! Great diagnostics, as always. Working backwards is so important. I absolutely feel that high when you found the bad LS00!
I finally subscribed! Your channel brings me back to when I was young, working on my dads IBM & PS2. My first personal computer was a AT&T 6300 and my first bought system was a 386DX with the separate co-processor. Keep up the great work!
You always take a very systematic approach, and use Input/Conversion/Output as a basis for troubleshooting. That's how it should be. Well done!
I was there when the 5150 was born. 1980, It made the most beautiful sounds.
I appreciate the detail you go jnto talking about your troubleshooting process. There's a lot about circuit logic I don't understand, like why pull-up resistors work, or what the negative 5 and 12 volt rails mean. But as an IT professional, I applaud the time you take to start at the core problem and work back the why of the problem. Keep up the amazing videos.
im right there with you. i feel like i gain 1% more understanding of how the chips and board work with every video I watch. its a lot to take in from someone that has 0 experience with all this but wants to learn
Voltage is like pressure. So when you have it, it's higher positive pressure. The negative voltage is the opposite.
Pull up/Pull down resistors are just a way to configure a resistor to hold a signal at a known voltage when nothing else is happening. For instance, if you have a Reset line that is active high and you don't want the computer to run without the rest of the system being out of reset, you might use a resistor of a few thousand ohms that "pulls" the voltage high to +5 volts and allows some current to flow. When something else pulls the Reset line to 0V, the resistor will separate the +5v from the line just enough that the signal is close to 0V and the Reset line sees a "low" signal.
Pull up/Pull down resistors are pretty important as they ensure that each signal has a known default value and isn't floating. Many logic chips (especially older ones) will either "drive" the bus by increasing the voltage to Vcc (usually 5V) or they will "sink" the voltage by decreasing the voltage to Vss (usually 0V) depending on how their output transistors are configured. In some cases they don't effectively do both, hence pull down and pull up resistors. Many data sheets will recommend Pull up and Pull down resistors on certain signal lines for stability reasons.
arkanoid376970’s explanation is very thorough, but I will share the nugget which demystified pull up/down resistors for me: a pull up resistor connects directly to the 5V line. A pull down resistor connects directly to ground. They’re just default paths, which the chip can override.
We use a resistor because it’s easier for the chip to override than a direct wire :)
(If you’d like to learn more I highly recommend Ben Eater’s videos, as I believe it was one of his earlier videos which mentioned that nugget about pull up resistors and made everything click for me 😊)
You can think of a pull-up or pull-down resistor as a spring. It holds a "lever" in a default position. Pull-up is held high (+5V, for example) and pull-down is held low (Gnd). When something else is driving the signal, it overcomes the resistance of the "spring" and pulls the signal to a high or low state, as dictated by the signal. The pull-up/down resistor is then forced to whatever the signal is trying to do. (Let's just say "pull-up" now, and assume that could be a pull-up or pull-down resistor.)
The pull-ups in this circuit are 4.7K, which is 4700 ohms of resistance. Pull-ups are typically between 1K and 100K, depending on a few factors. Lower resistances exert more "pressure" on the default signal level, so they take more current to overcome. As long as whatever is driving the signal has a strong enough output driver (the transistor responsible for outputting the signal), the lower resistance just results in more current passing through the pull-up resistor. It will get slightly warmer and use more power, which may be a concern in power-efficient (like battery-powered) designs. But, lower resistances are less susceptible to noise or spurious signals causing logic levels to change unexpectedly.
OTOH, if you put a 1M resistor in a pull-up configuration, it will take very little current to override it. So little, in fact, that in an environment with sufficient noise, it could be overridden accidentally. So you have to pick a value in the sweet spot that doesn't cause excessive current draw, but also holds the default level sufficiently. There's usually a wide margin there, and I almost always go for 10K myself.
Higher-speed circuits may also require either weaker pull-ups (to avoid forming a low-pass filter with the inherent stray capacitance in a logic circuit), or stronger output drivers to force the state to change decisively, since high speed logic, by its very nature, affords less transition time between samples. Everything in engineering is about balancing compromises.
Nice troubleshooting. Those were certainly simpler times. Long ago when I was a poor college student I spent a Saturday diagnosing my dead 486 motherboard and finally traced it to a bad diode. Fixing that was a proud moment!
S3 and S4 can be used to give the segment registers DS, CS, SS and ES separate address spaces. The Altos 8600 is the only machine I know of that actually did this although only to permit some small bit of per-segment memory protection. The functionality was removed in the 80186.
I always thought it would be intriguing to use those signals to map to separate physical 1MB banks. You could still overlay DS and ES for data sharing, but you could have a dedicated 1MB address space each for code and stack, for example. is that something like what the Altos did?
@@soulpa7ch Nope, they all share the same 1MB but it has a paging mmu which can set per-page permissions for which segment register is allowed to access the page. The manuals are at bitsavers if you want more info.
That is some next-level troubleshooting! TTL logic fault-finding is always so fun :) (not really)
You do an amazing job bringing dead computers to life, I wish more dead systems could fall in your hands rather than landfills.
"Strap on your oscilloscopes"? Even those of us with a ten tonne beast from the 1950s? Their poor vertebrae.
Learn to love the "Single" Trigger mode on your oscilloscope for catching changes at power on.
Onthe cassette drive thing, it amazes me to think that IBM PCs had such abilities to load & save data to cassette in the same way a speccy or a C64 could, for IBM, it seem a step backwards in technology, and yes, I know that tape backup devices were used commonly, but that's a different thing altogether...
The whole PC project can be seen as a step "backwards in technology", compared to many older IBM machines. They didn't even design most of it themselves, but used standard parts instead, Very unlike IBM. Because it was intended to compete against Apple II, TRS-80 and similar simple machines that were also mostly using standard ICs.
Great step-by-step wading through, backwards, the schematics and block diagrams. Where I usually bogged down is trying to understand signals that may not matter for the problem at hand, when really, what is required is to stay focused on only the path(s) that do matter. The trick is knowing the difference. You illustrate the technique well.
Thank you for a nice video.
To understand some of the logic you through you have to go back to how d-ram works:
1) The addresses are split in 2 parts row and column and these values are sent to the chip with RAS and CAS asserted respectively, in that order.
2) When the row is addressed the whole row is read from the actual memory cells and put into a row register. When the column address is given it just picks the right bits from the register, not the memory cells. As a side not this is why 'fast page' works as any subsequent read / write within the 256 bytes of the page (the row) are accessed directly from this register.
3) The important thing to note is that when the cycle is finished, the whole row register is written back to the memory cells and this is what actually performs the refresh.
So, what is needed to perform a refresh ? cycle through all the row adresses and assert the RAS line within the mix refresh time.
The maximum refresh time depends on the chip used but is usually around 60uS. Some 'low power' chips increase this to reduce power consumption.
Now comes the question: how is this done in different systems ?
- Some systems that have shared main and video memory rely on the sequential video reads to satisfy the refresh conditions (Amstrad CPC).
- Some systems use 100% custom logic
- The PC uses a mix of Timer / DMA and glue logic
The designers of the PC opted for this solution because the chips 8259 Timer and 8237 DMA were going to be used anyway and contrary to IBM standard they wanted to only use off the shelf parts. In a working system the BIOS sets up both chips to perform a 'fake access' to all the rows in turn to satisfy the refresh conditions.
I am not sure if the BIOS is involved in any of this (receives an NMI interrupt from the 8259 and programs the 8237) but the complex glue logic you looked at is a timing logic making sure that sufficient time is given for the refresh to take place.
Also, READY is meant for slow devices to insert wait states and force the CPU to wait until READY is asserted.
The complex READY circuitry in the 8284 is apparently there the synchronize the signal with the current sub-cycle of the CPU it cannot be toggled willy nilly.
If the refresh is not happening correctly I would check if the 8259 timer is working correctly. The fact that you get a repeating pulse on READY could mean that is is working (DMA wait for refresh).
4:40 Yes, I had a "Advance 86" with 128Kb of ram that I used in basic mode only until I saved the 500,- to by a 360kb floppy drive. My school mate bought a Lada 1200 for that money at the same time :-) Oh well both turned to e-waste ad Rust..
Really impressed with the diagnostic working here - I love TTL fault finding though! :p
I didn't have this particular machine, the first computer I remember having at the home was a Heathkit Zenith computer. From what I've been able to find online, the Z-148 seems to be the closest match to my hazy memories. (Most of what I remember is a "store demo" program that came with it, but I haven't been able to find that at all, because I remember too little about it for Google to pull anything up.) But I'm always interested in seeing how these early computers functioned, so I love seeing these in-depth repair videos. Stay healthy, stay safe!
This video was a lot of fun to watch, it really feels good when you are able to locate the broken link in the chain that keeps things from working. The fact that it still doesn't work sucks big time, but hey, it's a fantastic opportunity to record another video in the near future.
That was quite a journey to get to the 74LS00. But you found it. Not easy at all with all that complex logic. Will tune in to see where the next fault is. Looking good.
One of the things I saw with these old IBM motherboards is broken traces near the memory chips. The board is not very well supported while inside the case, and a user adding memory could easily push the chips in with just a bit too much force. (And I mean seeing this back in the 80's.)
Bravo! Your debugging and diagnostic skills are impressive!
I used to work for computerland, and the only IBM PC's we sold without floppies, always came back within a day or two to buy floppy drives.
I loved this video 😂 I spent most of COVID lockdown designing and building my own "minimum mode" 8088 PC based on Sergey K. Xi8088 and I spent ages studying the 5150 and PCjr tech ref manuals (also a min mode machine) - tho I never really got my head round the DMA wait state logic, so great to see you tackle it too. Well done fining that IC I'm sure you must be getting closer. My guess next might be the tristate buffers for demuxing the data addr busses 😊
The first time I ever used any IBM PC was a 5150 in school in the early 80s and we saved and loaded our work on cassette tapes.
This was a spectacular video. So well done. I think this, more than any other video of yours I've seen, really highlights the benefits of your plan of attack when diagnosing these old boards. Even though you don't know the PC/ISA architecture the way you do the Commodore 64's, you were still able to walk the schematic and find key faults without mass chip swapping. Well done.
Wow, that was excellent hardware debugging and I love that you included to get confused by the CPU mode. What a brilliant episode!
Amazing watching how much you learn as you grow. This one is a nail biter. Multiple faults can be a fun chase.
Hi Adrian. I saw my first 5150 at my first job. We definitely had that model, but they were all equipped with either 1 or 2 floppy drives already installed.
In 2010 I purchased 10 IBM 5150 motherboards for $50. I only got one or two working in 2010 or so. I'll take a look at them again now.
Great video Adrian! That was like an exciting crime thriller ;)
I just wanted to say, your videos are the best companion to my work days. I love the tech but unfortunately its not in my reality. But having your voice in the background doing stuff you clearly love is such a great ASMR for me to focus on working. And the occasional DK danceparty is just a bless. Hope this is ok to say lol.
Thank you!
I had a 5150 in the early 90s surplus from my high school without a working MFM HDD, for a short period before I got a working HDD I used the BASIC ROM and a cassette recorder from my TRS-80 model I.
I did not own a 5150, but I was in a public tech school in 1983, and many of the 5150's in the computer lab were the 16K(?) no-drive variety. I’m sure these were cheaper and therefore easier to write an educational grant for. I took the very popular Basic Programming class, and we were required to use those machines at the beginning of the class. I think they assumed they would get the cassette tape completely working by the end of the semester (I tried to help since I had a new cheap-ified TI994a with a cassette interface at home), and we were close, but in the end they had to let us use the more expensive floppy machines. It’s a lot to expect a student to spent an entire lab entering 100s of lines of code for a class project to just turn off the computer and throw it all away.
Yes, the 8088/8086 has the maximum mode and minimum mode selection. It actually does more in minimum mode as it is closer to a microcontroller and is a 1-chip computer. Maximum mode strips away the internal DMA and IRQ controllers so you can add your own and provide more functionality yourself.
Wow. That's pretty sophisticated to be honest
@@adriansdigitalbasement -- I didn't know about minimum mode and the unused internal hardware for some time. PCs always use Maximum mode. That means a timer, DMA controller, and IRQ controller need to be added to the board.
I've never heard of Minimum mode being used, but I guess that would be for embedded applications. Telephone company equipment might have used it. However, the NEC V20 was more popular for that application. I've always admired that chip as it is fully compatible with the 8088, and it is 10-15% more efficient at running code. Like the 286, it adds a hardware multiplier and an address unit with its own adder. So memory accesses and multiplications take fewer cycles.
When debugging an early PC, hooking up the speaker will often tell you if you've got something seriously wrong. Back in the day, there was also something sold called a "POST" card. It had led lights that lit as the BIOS went through the power on self test. That would allow you to see exactly where the POST stopped. A nifty booklet gave further diagnosis by telling you what to look at with specific chips or areas of the board.
Amazing video, I really enjoyed the deep dive in the logic of that signal and can very much relate to the feeling when proper signal appears on the oscilloscope! Can't wait to see part 2!
To know if the 80c88 is actually doing something (pass the permanent infinite wait state you already fixed), I’d check ALE and M/IO pins. ALE (address latch enable) toggles every time the CPU is presenting an address in the A/D bus. That line latches the address to usually a 74ls373 (or some other transparent d-latch). If the CPU is stuck in a very short loop, the ALE will be toggling contrary to the most significant address lines, which were the ones you were probing. That would indicate the CPU is executing code. Also check if the DMA controller (8237) is sending hold requests to the CPU. If the DMA controller is sending hold requests to the CPU, that would indicate that all the logic and code for the RAM refresh was executed, thus validating the CPU is working or at least executing enough code to initialize the 82c37 (DMA controller, with accompanying DMA page registers), the 82c53 (timer), and 82c59 (interrupt controller). The DMA uses channel 0 for those, so I’d check DACK0 in the 82c37 to see those requests.
After initial start, the BIOS writes to a bunch of the IO peripherals. I’d look to those getting their CS lines asserted, that would also indicate the CPU is writing/reading to/from those too.
THE M/IO line indicates when the CPU is either accessing memory or an IO peripherals. If you see that toggling, then the CPU is stuck in a loop trying to get pass some IO device issue. That toggling indicates the CPU is going back and forth between memory (code) and the offending peripheral. The 80c88 has separate address spaces for IO devices and memory, sort the same as a Z80. M/IO line changes according to the type of access the CPU is doing, be that for memory or IO.
I wish I had the time to dig out that old dead 5150 board I've got somewhere around here and do some more troubleshooting. All I did when I got it was check for shorted tantalums and make sure the voltage rails were all good, then put it aside. Unfortunately I'm right in the middle of another electronics project, with plenty of others in the queue, so I'm not likely to get back to it any time soon.
Anyway, always good to see your repair videos, even if we don't get that "it freakin works" moment. I'll be very interested to see what else is wrong with this board.
The IBM 5150 BIOS Post does several checks and they all must pass before it displays anything on the screen. If any of these test fails the BIOS will inmediatly halt the CPU. Some of these tests are: 8088 CPU Test, ROS Checksum Test, DMA controller check, Timer 1 check, RAM base 16k test, 8259 Int controller test.
Q0 on the flipflop chip, just means that the chip's internal state is being held. so if Q was high before, it remains high, and if it was low before, it will remain low.
PC-compatible clones "Elektronika MS-1502", "Poisk-1" from Soviet Ukraine also used cassette port. Still remember loading Dam Busters and Zaxxon off cassette.
Yep, Ukraine 🇺🇦🔱🇺🇦 ruled!
Even being under the soviets occupation.
I worked with lots of these in business environments, and never saw a cassette attached to them. Always a floppy drive, and later hard drives as well.
And it's a 5150 with a hard drive. I had one as a kid (got it for $125 in the early 90s at a TRW surplus sale, back when their Carmel Mountain office was upgrading everything to HP-UX workstations) and it got me through fifth and sixth grade.
This was a suspenseful video! Can't wait for the second part :)
Any PC I came across back then always had floppy drives, never saw one with a cassette player attached. I think the tape support in BASIC was pretty brain dead too. Getting a machine code program into memory required jumping through hoops.
Yeah if it was BBC basic then inline assembly would be possible and easy! But nope ....
27:24 you defeated your mental stamina by forcing yourself to act
I'd check out S0-2 again at this point, but before that I would also connect a PC speaker. Allthough a lot of things on the 5150 fail silently with black screen, there's a bunch of stuff later in initialization that will give you beeps.
And also, a POST diagnostic card will not work with 5150 PC and XT class machines, since a different IO port is used.
it's a joy to watch how your analytic brain works, keep up the great work
Brilliant fault finding so far, looking forward to the next instalment.
I recently got a clone of this board at VCFSW from the free pile. I hope the fact that half of the RAM is MT means that that part of the RAM is the fault. If not, I will definitely rewatch this series for some guidance.
One can hope! It seems later 256k MT RAM is quite reliable, it's mainly the slow and old 4164 that's bad. Half of your board probably has 64k DRAM though so at least just remove it from the board and see if it can work at 512k.
Haha, I also picked up an 8088 machine at VCFSW (a PC XT clone) so I was also really excited to see this video come on my feed
Just a nitpick here, but the CGA only did snow when you accessed memory during the raster scan, and (weirdly enough) it didn't happen in graphics mode. The IBM PC BIOS waited for the blanking interval before updating the screen, so you never saw the snow if you used BIOS or DOS screen output functions.
Fantastic, yes pcs are really complicated beasts, dma usually goes iffy on those, amazing analysis technique, looking forward for next part, tank you
My 5150 actually started out as a diskless one. It had an extra ROM with Datalight ROMDOS on it, and ran software for the MicroTICCIT interactive TV system. I believe it came out of an Air Force base on the east coast, as it had a DoD tag on it and I remember reading about a training system which was trialed by the Air Force which used MicroTICCIT.
That schematic is a bit weird- there are NAND gates which look like XNOR gates.
"That schematic is a bit weird- there are NAND gates which look like XNOR gates" I SAW THAT TOO!!
In the time that the IBM PC came out, my dad was working at a municipal automation center. I did a summer job there in 1985 and 1986, assembling IBM PC's.
This was in the time that the AT was already released, so the original PC had been discontinued but the XT was still in the catalog. So I don't know for sure about the original 5150 PC (either the PC1 or PC2 which is what you have here) but I'm pretty sure that all XT's and AT's came from the VAR with floppy drives and hard disks installed according to the type number that you ordered. Of course there would also be the appropriate floppy disk and/or hard disk controller, but that was it. You had to add the display adapter (and set the dip switches accordingly of course), and the monitor and keyboard came in separate boxes too.
I've never seen an IBM PC with no floppy drives. If you could afford an IBM PC, you could afford floppy drives and didn't need a cassette. The only official program that ever got released on cassette is the diagnostics program for the IBM PC; I've seen video's and pictures of it but I never had that in my hands, unlike a lot of other IBM PC related hardware.
Two thumbs up. Good old, straight to it, Adrian educational debugging video.
Very enjoyable. I really admire your diagnostic ability.
I heard in another video that the BASIC in these ROMs doesn't work with floppy drives at all. You can only save your programs with the cassette interface. Also IBM continued to ship this BASIC in ROM long after their systems no longer had cassette interfaces making it completely useless since there was no way to load or save programs.
Yes that's correct, it can be called Cassette BASIC. You have to boot DOS from a disk and run basic from there to have a version where you can save to disk. (AFAIK, the DOS disk based BASIC still uses part of the ROM basic to save space on disk.) That may not be totally correct though!
i love watching these repair video's its very interesting even if i dont understand a lot of it. I especially like your enthusiasm and joy when you actually find the problem. As you say a lot "it freaking works!" when we hear that we know you got the job done! lol
Welcome to how my IT career began- oh so many years ago. Enjoy.
Thanks Adrian! Ive been waiting for a pc motherboard troubleshooting vid! Cant wait for part 2.🍺
Was enjoying this one dang that theres a cliffhanger can't wait for the next video!!
~15 minutes in, the section you are reading is relevant to minimal mode. in this mode, you can only have one other master on the CPU local bus. The PC has min/mx pin strapped to maximal mode. On the pin schematic, the RQ/GT[01] column are the pins you should be looking at. They do this is so you can have DMA in addition to the math coprrocessor in the same system, as well as an external bus controller.
Great video. Love the methodical debugging.
I've got a compaq portable with similar symptoms, though I don't have an oscilloscope to test with yet so I just keep replacing one chip at a time in the circuit until it works. My system speaker is squealing though and I'd be curious to find out if yours is too. I can't wait for the second half to see what you find! Hopefully your work will shed more light on my issue as well.
First thing I did when I got my 5150 was replace all the tantalum capacitors, they can go bad and short voltage rails to ground, Mouser sells identical looking ones. Also replace the ones on the cards. Next thing I did was re-cap the PSU, then replace the AMD 8088 with an Intel 8088, and add the Intel 8087.
I used the cassette port to turn on/off a mains relay which was then used to control a desk lamp.
Progress is progress!
I used to work on many of these CPU boards for a clone manufacturer back in the day as a side job.
Hi Adrian. I enjoy watching your videos. They have been a terrific distraction for me since my mom died earlier this year. I have a strange problem and am not sure if you would be able to provide some insight into solving it. The problem is a Samsung LCD monitor. It started to behave strangely a few months ago. I'd be watching something, the screen would blank briefly, then it would come back, then it would blank again and come back, and then it would blank and not come back -- just solid black. I opened up the monitor and looked around and everything seems fine. I bought an ESR meter to check what appear to be the little tin can SMD capacitors and they checked out. I know the chips must work because there is text on the screen. I wonder if I could send you a short video on what the screen looks like with the problem happening. Also, I could show you a photo I took of the board. I did some voltage measurements based on what was listed on the board and they checked out. I wonder if you or one of your viewers might have some insight for me. Thanks in advance. Jeff
Had them in school with no drive. My first semester was just the tape, but after that we had 5 1/4 floppy's and the tape.
I know what those multiplexed address status lines mean, it's related to the x86 memory segmentation scheme. The "Code or None" one means that the CPU is using the code segment register (CS) to store data that's being read from memory, or it's doing nothing in relation to the segment registers.
The other ones should be fairly obvious, Data meaning that it's using the DS registers, the Stack one meaning it's using the SS register, the one that confuses me is "Alternate Data" which I think means it's using some general purpose register like FS, GS or possibly the accumulator.
The first thing I do when touching a 5150 motherboard is to connect a speaker, since there's no post codes, the speaker is the first life sign.
I have a tube of 8284 chips, do you need a couple?
Strap on your oscilloscopes 😂. Reminds me of Joe’s Computer Museum lol.
I was kind of half paying attention and just heard *_MAXIMUM MODE._*
The first time I used a PC was in kindergarten. It was a 5150, and I remember the teacher loading games from cassettes.
The symbol for U52 is wrong, a 74LS00 is a quad 2 input NAND gate. The symbol on the schematic appears to be a NOR gate.
I had a 5150 from U of WA years ago. CGA, 1 fdd, and 1 ten mb seagate. Had 640K on it.
My mom had the XT model... I remember we used the floppy drive to save data, I can't remember where the programs were loaded from.
I got a fun idea for a Commodore 64-related project you could try, if you’re interested in the challenge.
Creating a C64 laptop, using whatever components (old or new) you have access to.
Bonus points if you give it some kind of working sleep mode.
Great vid! What is the PC-based oscilloscope that you’re using?
At 29:30 Adrian says that RDY1 at ground is fine but that would not be correct. That would mean it is waiting for DMA. That line should be high. At ~31:30 Adrian says he doesn't know what Q0 and /Q0 means. It means the state of the Q and /Q lines don't change. Their state will be whatever state they were in before the inputs changed to the H, H, L state.
It's starting to look more and more like this board might have experienced a PSU failure/lightning event and gotten spiked on certain rails, killing off the more voltage sensitive ic's.
Then again given the clk gen chip was missing, who knows what other chips have been swapped around, what if its gonna turn out the roms are actually blank, or that the cpu is bad, unless you already tried a different cpu off camera.
"A recapper?" I see what you did there.
The AMSTRAD PC1512 uses the same CPU and NDP as the machine you are working on but uses custom FPGA chips for to hold most of the logic found on IBM Compatible computers.
Actual FPGAs? Or ASICs? (The equivalent would be shipping (E)EPROMs rather than mask ROMs.) It certainly happened sometimes, but given Amstrad was so cost-conscious I’m just a bit surprised!
Sometimes early units shipped FPGAs when they were waiting for the ASIC production line and needed to ship Now, but would them later switch to the cheaper ASIC once they had enough inventory. That would certainly be more what I’d expect from Amstrad. But maybe they used FPGAs the entire time!
the PC1512 was my first IBM-compatible system (1987, maybe). I had some weird stuff with it, like a Game Blaster audio card that's rare as heck now. Too bad I sold it in the mid 90s; I really miss it now.
Q0 means "previous value of Q" i.e. the value is latched from whatever previous state it was in.