• Please review our updated Terms and Rules here

Kaypro PIO puzzle

pavery

Experienced Member
Joined
Dec 29, 2008
Messages
160
Location
New Zealand
Greetings all

I thought I'd give my Kaypro II a 'heat soak' test while I waited for another keyboard/parts.

All went well for about 5 hours, then the screen showed wierd characters. On re-boot, the screen just fills with wierd characters, many of them flashing. It obviously doesn't get very far into its boot-up sequence.

Out with the logic probe, I soon discovered /Int was held low, ie active all the time. Pulling the PIOs, I found the printer PIO to be the culprit. However rather ominously, with this PIO out of the circuit and /Int now Hi, the cpu doesn't seem to get any further with boot.

I swapped the PIO with the other (SYSPIO) - no change. I checked clock signals with the scope - fine.

My question is "Should this PIO be trying to Int? There's nothing connected to it, is it trying to get initial settings?"

Where should I go from here?

If you'd like to look at good schematics, these are here.

Many thanks for any assistance

Philip
 
How did you determine it was PIO?
The schematics show that the INTs are (as typical) daisy-chained... meaning that ANY of those devices (including the SIO) could be responsible.
OR...

The device CLOSEST to the CPU (or the CPU itself even) may be heat-failing...

If you have spare devices try substitution(s)...
I did not look to see the entire 'chain' but try the SIO first... then the PIOs....

whichever is 'farthest' in the chain...

FWIW... :)
 
Yikes Philip,

I see you are not out of the woods with this Kaypro yet. Keep me posted. If nothing comes of the discussion here, we might have to get together again so you can measure what goes on in a working machine and compare.

One thing that seems to be missing regarding Kaypro docs is a detailed explanation of how the thing works at the chip level. Something equivalent to "Understanding your Apple II". This goes into deep detail as exactly how the hardware works and what the signals do as they whiz around the mainboard.

Tez
 
How did you determine it was PIO?
The schematics show that the INTs are (as typical) daisy-chained... meaning that ANY of those devices (including the SIO) could be responsible.

Thanks leeb. I determined this by taking a guess. I could see only 3 i/cs that could generate an INT, and started pulling. As soon as the printer PIO was pulled, INT went inactive. Plus when I plugged it back in, but with the INT pin bent outside of the socket, its INT pin went active. I did swap by substitution (see my 1st post) with the SYSPIO - same symptom.

I'm now thinking this INT signal maybe a red-herring. I suddenly remembered that the first instruction the Z80 executes is probably a DI (Disable Interrupts), so it would ignore this... assuming the Z80 is getting code from ROM. That's where I'm going now - checking to see Boot ROM is enabled/working.

@Tezza: Yikes indeed! It's not meant to be easy this VC hobby, otherwise *everyone* would be doing it - that would ruin things. Always got your running machine in the back of my mine for comparisons/swaps if I get really stuck. However I'll keep plugging away (literally) - learning lots in the process.

Thanks you two
Philip
 
Last edited:
Philip,
It sounds like a cold start no longer works? So there a hard failure at this point, apparently induced by the burn-in test? After the normal power and clock checks, you are right to start with the basics. The problem could be anything at this point.

Remember that patience is a virtue! (I'd better run and duck before you throw hot solder at me after that inane comment). :)
 
Philip,
It sounds like a cold start no longer works? So there a hard failure at this point, apparently induced by the burn-in test? After the normal power and clock checks, you are right to start with the basics. The problem could be anything at this point.
Thanks Dave. Reset signal is fine. Power supply good, clock good. Get all the scope signals (Figs 1-6) as depicted by the schematics. I'm assuming the PIO Int is nothing to worry about?

I thought I had it. I tested nothing on A0 of the Z80 CPU - just dead. Didn't believe it as I've never seen a dead Z80 - in my limited experience. Swapped it out - got a good swinging A0, along with A1-A15 and D0 to D7. Still no change, screen full of garbage, mostly flashing. Swapped back old Z80 just to verify - sure enough A0 dead - unbelievable. Got a good (hopefully, as its untested) Z80 back in.

Checked /CE on eprom U47. Pulses low on Reset then stays Hi. I assume that means that part of the boot is working (ie. copies EPROM to RAM & executes from there?)

Getting tricky. Any leads of where to go next?

Philip
 
No, the stuck PIO interrupt request is a bad sign as is the inactive /CE. The flashing display is trying to give us a clue, but what??

The printer port should not be requesting service and if it did, the CPU is not responding properly. Question: on the second port of the PIO, what are all the E points shown in the schematic? Are they test points or??

I would think there would be some activity on the EPROM at least until the system fully boots from floppy. Have you read that the EPROM only runs for a short time? I am unfamiliar with the Kaypro.
I assume the video screen is 25 lines by 40 characters? Then the blinking may be caused by the video RAM being toggled between the two 1K buffers which have not been intitialzed.

All this implies that the system is is getting lost somewhere in the boot process and yet you see good addresses. So perhaps a bad EPROM? Is there such a thing as a diagnostic test ROM for this machine? If you can find a file on the web, it should be easy to burn a 2732.
-Dave
 
No, the stuck PIO interrupt request is a bad sign as is the inactive /CE. The flashing display is trying to give us a clue, but what??
The two PIOs and SIO all never get /CE pulse. That with the flashing display, I think too, means getting lost in early boot, perhaps looping.

The printer port should not be requesting service and if it did, the CPU is not responding properly. Question: on the second port of the PIO, what are all the E points shown in the schematic? Are they test points or??
I dunno. They're unused, just come out to empty pads.

I would think there would be some activity on the EPROM at least until the system fully boots from floppy. Have you read that the EPROM only runs for a short time? I am unfamiliar with the Kaypro.
I'm hoping a Kaypro gonzo will enlighten us with the boot up process.

All this implies that the system is is getting lost somewhere in the boot process and yet you see good addresses. So perhaps a bad EPROM? Is there such a thing as a diagnostic test ROM for this machine? If you can find a file on the web, it should be easy to burn a 2732.
-Dave
Easiest way for me to test the EPROM is go knocking on Tezza's door - try his, or mine in his machine (checking they're the same type first - a jumper is involved)
I'm coming to the same conclusion Dave, it's getting lost in early boot stages, nothing is getting initialized.

@Tezza: Can you check a signal for me? /CE (pin 18 ) on U47 EPROM 81-149C. Mine pulses low for like 0.25 sec on Reset, then stays Hi. Try with no floppy, and with a boot floppy please.

Many thanks
Philip
 
I'm hoping a Kaypro gonzo will enlighten us with the boot up process.
Yes, we need a Kaypro boffin!

Too bad the RAM memory is organized with 64K X 1 chips. If there is a bad one, switching chips around may not help. On my PET they are organized with 16K X 1 so swapping a bad chip from low RAM to high RAM can get the thing to boot.
-Dave
 
Thanks for those links, Chuck - they're going to be handy. A quick look at the disassembly reveals 'Kaypro II - Please insert your diskette into Drive A' is generated by the ROM. Looks like a visit to Tezza's to verify this ROM is in order (Tezza willing).

One puzzle thou: this ROM failing shouldn't have caused a booted-up machine to crash, ROM would have been switched out.

Philip
 
Thanks leeb. I determined this by taking a guess. I could see only 3 i/cs that could generate an INT, and started pulling. As soon as the printer PIO was pulled, INT went inactive. Plus when I plugged it back in, but with the INT pin bent outside of the socket, its INT pin went active. I did swap by substitution (see my 1st post) with the SYSPIO - same symptom.

I'm now thinking this INT signal maybe a red-herring. I suddenly remembered that the first instruction the Z80 executes is probably a DI (Disable Interrupts), so it would ignore this... assuming the Z80 is getting code from ROM. That's where I'm going now - checking to see Boot ROM is enabled/working.

@Tezza: Yikes indeed! It's not meant to be easy this VC hobby, otherwise *everyone* would be doing it - that would ruin things. Always got your running machine in the back of my mine for comparisons/swaps if I get really stuck. However I'll keep plugging away (literally) - learning lots in the process.

Thanks you two
Philip

Let me make sure I understand... the PIN of the PIO goes active when bent up...?
No surprise there...

What about the INT line itself? This PIO is the last in the chain (did some more looking...) and would likely be attempting INT anyway...
True, the DI is likely the 1st code executed...

Further down you say you swapped out the CPU... did you retry the PIOs? W/o that U54 PIO in, INTs will not be working correctly...
 
@Tezza: Can you check a signal for me? /CE (pin 18 ) on U47 EPROM 81-149C. Mine pulses low for like 0.25 sec on Reset, then stays Hi. Try with no floppy, and with a boot floppy please.

Philip,

Just got home from seeing Avatar 3D in Wellington. Awesome! However, didn't get back until late so now in bed checking emails and the VCF.

Sure I'll test those things tomorrow night when I'll have a moment in the computer shack. Anything else you want me to test?

Tez
 
One puzzle thou: this ROM failing shouldn't have caused a booted-up machine to crash, ROM would have been switched out.

How do you figure that? If the ROM is bad, the CPU executes junk until it hits something that stops it dead in its tracks. (a loop, an I/O instruction, a HLT...)

I'd burn a known-good EPROM and try it. The worst it can do is give you a spare.
 
Chuck,
I think what Philip is saying is that he was running for 5 hours when the fault first occured. If it is true that nothings runs from EPROM after boot, then something else caused the initial fault. I hope a power glitch at the 5 hour point didn't take out several things. I agree that replacing the EPROM would be a good step.

Philip, until more is known about the problem, it might be best to replace the EPROM with a newly programmed unit rather than risk good assets. Have you guys obtained a PROM burner yet?
-Dave
 
I think what Philip is saying is that he was running for 5 hours when the fault first occured. If it is true that nothings runs from EPROM after boot, then something else caused the initial fault. I hope a power glitch at the 5 hour point didn't take out several things. I agree that replacing the EPROM would be a good step.

But that was my point--if the EPROM went belly-up, you'll never be able to boot again, regardless of how long you ran after the last time you successfully booted.

Didn't Philip already find a bad Z80? It seems to me that there might be a few things wrong. In that case, I'd start checking everything I could, including the power supply voltages. If one has an EPROM burner, it might be useful to write a few small boot diagnostics, just to verify the operation of the memory components.
 
Let me make sure I understand... the PIN of the PIO goes active when bent up...?
No surprise there...
That's right

What about the INT line itself? This PIO is the last in the chain (did some more looking...) and would likely be attempting INT anyway...
True, the DI is likely the 1st code executed...
With the PIO pin bent up (or the entire PIO) out of the circuit, int /INT line goes Hi (inactive). Even on Reset, with the PIO out, the /INT line doesn't even pulse low. Why would the PIO be interrupting on power up? To be initialized?

Further down you say you swapped out the CPU... did you retry the PIOs? W/o that U54 PIO in, INTs will not be working correctly...
Yes, tried with & without PIO in. No change to boot-up (or lack of), just the status of /INT.

Philip
 
But that was my point--if the EPROM went belly-up, you'll never be able to boot again, regardless of how long you ran after the last time you successfully booted.

Didn't Philip already find a bad Z80? It seems to me that there might be a few things wrong. In that case, I'd start checking everything I could, including the power supply voltages. If one has an EPROM burner, it might be useful to write a few small boot diagnostics, just to verify the operation of the memory components.
Warning! Noobie in action? I *thought* the Z80 to be defective because A0 appeared dead on my probe. However could this just be tristate at work? But why only A0? (A1-15 were swinging away at the same time). Plus, when I replaced the Z80, A0 began swinging as well.

Checked power supply voltages & ripple early on - fine.

Tez & I have yet to acquire a burner. Will be getting one soon. In the meantime I consider it quite safe to try my ROM in his Kaypro, agree?

Thanks for your continued help guys - always appreciated.

Philip
 
Warning! Noobie in action? I *thought* the Z80 to be defective because A0 appeared dead on my probe. However could this just be tristate at work? But why only A0? (A1-15 were swinging away at the same time). Plus, when I replaced the Z80, A0 began swinging as well.

Weird. If this symptom is consistant between the Z80 swaps then everything points to the original being defective. I wonder if something happened (power surge?) that took several ICs out.

This problem looks particularly nasty.

Tez
 
Philip,
It sounds like a cold start no longer works? So there a hard failure at this point, apparently induced by the burn-in test? After the normal power and clock checks, you are right to start with the basics. The problem could be anything at this point.

Remember that patience is a virtue! (I'd better run and duck before you throw hot solder at me after that inane comment). :)

It certainly does seem 2b pointing toward the boot ROM.... or possibly the buffers between it and the CPU... A0 should be toggling practically 24-7 as long as memory/IO are being accessed...

Good luck tho I dont have anything else useful to contribute.... being a 4p-kinda-guy...
 
Back
Top