8th Jan 2018, 6:11 pm | #41 |
Dekatron
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,225
|
Re: 8085 processor questions
I do quite enjoy tracing out schematics, but only for devices I own. So you will not convnce me to trace out the diagrams for this unit, unless somehow I get one.
As for the microcontrollers. One is in the keyboard, and is clearly for scanning the keyboard and probably providing a serial link to the rest of the unit. It is also not uncommon to have 2 microcontrollers in a printer, basically one to operate the stepper motors (carriage and paper feed) and one to fire the printhead pins/elements, with other functions spread between them. Look at the circuit of the venerable Epson MX80, for example. I agree a logic analyser would be useful, as I said in another thread I use them a lot. I have no direct experience of the USB units you use with a PC, but I have indirect experience in that I have been helping a friend in another country debug an early personal computer (HP9830, bit serial processor built from TTL) and that's what he used. It was certainly adequate for that and he knew how to use it to capture the signals I needed to see. |
8th Jan 2018, 7:59 pm | #42 |
Dekatron
Join Date: Feb 2005
Location: St.Ippolyts, Hitchin, Hertfordshire QRA IO91UW
Posts: 3,518
|
Re: 8085 processor questions
Thanks Roger,
I have attempted to remove various cards in order to isolate the faulty section - I will try this again and take some notes of my findings - in all permutations, there is not ever a situation where the screen displays sensible text, just differing quantities of rubbish. I am currently rebuilding the power supply with new electrolytics - reasoning that a noisy SMPSU will not help the processors lead a happy life. I am in touch with the owner of Kelvedon Hatch Nuclear Bunker, who has at least three of these machines, although I am unsure if any of them work - if one of them is functional, I will see if I can substitute my boards to try to narrow down the problem one. It is somewhat frustrating - I bought the machine from it's original owner, who used the machine right until the Telex network closed in the UK. I have to say the thought of drawing out the circuit does not fill me with glee. I am sure having a logic analyser would be helpful, but only if i knew what I was doing with one Cheers Sean
__________________
Engineers make things work and have spare bits when finished |
8th Jan 2018, 8:04 pm | #43 |
Dekatron
Join Date: Feb 2005
Location: St.Ippolyts, Hitchin, Hertfordshire QRA IO91UW
Posts: 3,518
|
Re: 8085 processor questions
Hi Tony,
It is certainly a challenge. I have the German manual for an almost identical machine, and it has explanations of operation within, sadly no schematics. I will translate some of the sections, and see if the theory of operation helps point me in the right direction. I had reasoned that the various microcontrollers in each section would have defined tasks, that would not mean a total system wide failure - perhaps I am hoping too much.
__________________
Engineers make things work and have spare bits when finished |
8th Jan 2018, 11:33 pm | #44 |
Nonode
Join Date: Oct 2008
Location: Warsaw, Poland and Cambridge, UK
Posts: 2,681
|
Re: 8085 processor questions
It does seem like a fearsomely complex design to do a really rather simple job! Drawing out the circuit would be a pain, but probably not necessary. This is how I'd tackle it if it was on my workbench. Most microprocessor systems of this era are very similar, so there are some general principles to apply. I do this a lot with arcade games of a similar vintage.
Check 8085 reset signal and clock oscillator. Reset signals are often generated using cheap electrolytics that dry up. Check ALE and R/W signals are active Check that all address and data bus lines are in sensible states at the CPU and not stuck. Get some idea of the memory map. An 8085 will have ROM at address 0 upwards, I think, but other things (RAM, video and so on) could be anywhere. Address decoding usually involves a 74LS138 somewhere! Check that the signals on its pins are making sense. Check that the ROM is getting enabled for at least a few clock cycles after reset. See if anything is trying to access the RAM - do its chip select lines ever go active? Is the reset signal pulsing? If so, there might be a watchdog timer firing. Find out what should reset the watchdog timer - there will be a flipflop somewhere triggered by access to a particular address. See if the processor is stuck in a tight loop. It should be possible to spot this on a scope by looking at the address bus. Looking at the state of the address lines will show where it's getting instructions from. Is that within the ROM address range? Check any bus buffers (74LS245 is a popular choice) and make sure their inputs and outputs are consistent some of them are bidirectional. The 8085 has a multiplexed address/data bus. Find the address latch (probably a 74LS374 or similar) and see if it's behaving itself. A quick-and-dirty method of checking RAM is to simply piggyback another chip on top of each one. This isn't 100% reliable but if it makes a difference, you know you've found a problem. In the case of this board with its 1-bit RAM chips, I might be tempted to remove them all and wire in a 6116 or similar to get it going and eliminate RAM from the equation. Spare ROM sockets can be handy for this - most of the pinout is the same. Pull out the ROM(s) and read them on an EPROM programmer. Do they look sane? Can you read any text in there? Even bizarre non-ASCII devices seem to often use ASCII text internally. Disassemble the first few bytes. Where does it jump to? These tests can give you a clue as to what's going on. Note that none of them use a logic analyser. My weapon of choice for this is a decent analogue scope, though a modern digital one that's good for troubleshooting would be even better. A bad digital scope will just be misleading. I don't know if any if this helps, but if I had the machine in front of me I'm sure we could get some life out of it! Chris
__________________
What's going on in the workshop? http://martin-jones.com/ |
9th Jan 2018, 7:12 pm | #45 | |
Dekatron
Join Date: Feb 2005
Location: St.Ippolyts, Hitchin, Hertfordshire QRA IO91UW
Posts: 3,518
|
Re: 8085 processor questions
Quote:
__________________
Engineers make things work and have spare bits when finished |
|
9th Jan 2018, 7:43 pm | #46 |
Dekatron
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,225
|
Re: 8085 processor questions
If you can get a dump of the EPROMs then there are a few 'sanity tests' that I apply by eye (by reading the hex dump)
1) Do all data bits appear both in the '0' and '1' state. That is, can you find bytes in the dump where bit 0 is a 0, some where it is a 1, then some where bit 1 is a 0 and others where it's a 1, etc. ROMs used for logic functons (such as address decoders) might fail this, but I have yet to see a firmware ROM for a microprocessor where one bit is always in the same state 2) Do all address inputs 'do something'. That is make sure the 2 halves of the ROM are not identical (meaning the highest address input has no effect), then for each half, make sure that the 2 halves of that are not identcal (meaning that the next highest address input has no effect) right down to odd and even bytes always being identical. These 2 tests will obviously not find random bit errors. But they will pick up the (suprisingly common) faults of a failure of the address decoder or data circuits (or their bond-out wires to the package pins). The problem with troubleshooting without a circuit diagram is that you can quickly get lost. For example, you find the processor is sitting in a tight loop of 4 or 5 instuctions. Disassembling that bit of code you see it is waiting for one bit of an I/O port to be set. But what is the I/O port? What does that bit mean? Is it that some device has not been initialised correctly due to problems elsewhere. Or a device has failed. Or something unrelated? By the time you have figured that out you have probably spend as much time as it would take to reverse-engineer the circuit diagram. In general doing that becomes easier if there are many large-ish ICs (provided you know what they are!) like microprocessors, USARTs, etc. The reason is that such devices can only be used in one way and will enable you to find address and data buses, etc. Worse are machines built from boards of TTL (a NAND gate can be used in many ways!) and worse still are discrete transistor machines (a transistor could be used for _anything_). I've done the lot, so it is possible! Since you have a logic probe and can get data sheets for the ICs (I assume), I would start by making sure all the following signals are pulsing -- that is not always high or low: On the 8085 CPU: ALE AD0 -- AD7 A8 -- A15 RD/ It would be interesting to see if WR/ is also not always high (if it's always low you have a problem!) but it may not indicate a fault if it is. On the EPROM(s) All address pins D0-D7 CS/ and OE/ If there are multiple firmware EPROMs then it's possible only one is selected so CS/ may be high all the time on some of them, but at least one should be being enabled. |
9th Jan 2018, 7:49 pm | #47 |
Dekatron
Join Date: Feb 2005
Location: St.Ippolyts, Hitchin, Hertfordshire QRA IO91UW
Posts: 3,518
|
Re: 8085 processor questions
Thanks Tony, Probably going to be the weekend before I get any further on this - lots of stuff to tax the grey matter here!
__________________
Engineers make things work and have spare bits when finished |
10th Jan 2018, 2:41 pm | #48 |
Octode
Join Date: Jan 2003
Location: Birmingham, West Midlands, UK.
Posts: 1,268
|
Re: 8085 processor questions
Just a thought, if you have a ROM burner try burning a test ROM with a simple program in it. IIRC you claim not to be a programmer, but a rom with a single op that just went jmp-to-the-start would mean you would expect to see first couple of address lines wiggling whilst the others should not. Knowing that would mean the basics of a working processor were there. Insert a second instruction that reads or writes a specific location and you can then test that.
If nothing else fill a ROM with NOP instructions (0x90 hex), you should then at least see consistant signals on the address line as the processor walks through the ROM. TTFN, Jon |
10th Jan 2018, 3:16 pm | #49 | |
Guest
Posts: n/a
|
Re: 8085 processor questions
Quote:
|
|
10th Jan 2018, 3:21 pm | #50 |
Dekatron
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
|
Re: 8085 processor questions
With no ROM fitted, the processor would read all data lines as 1. Not sure what instruction FF represents on the 8085 .....
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments. |
10th Jan 2018, 5:02 pm | #51 | |
Dekatron
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,587
|
Re: 8085 processor questions
Quote:
I would, also, make the third last byte in the eprom 0xC3 so that the last three bytes at the top end are C3 00 00, meaning, 'Jump back to address 0000'. If you don't do that the processor will run through the NOPs in the EPROM just once and then hurtle off out of control as it starts executing whatever jumps and conditional jumps it finds in the random content of the RAM. However, using the NOP + Jump to zero trick in an EPROM will limit the range of addresses being scanned through to whatever area is occupied by the EPROM and still won't be a good test for the upper address lines. To do that you'd need to add something which forces '00' (NOP) to be read by the CPU no matter what address is being accessed. You could do that by wiring a buffer (74LS244? 74LS245?) with all its outputs to the data lines, all its inputs held low and its enable pin enabled by combining _RD and _MREQ. Every other memory mapped device (such as Memory / Peripheral ICs) with their data pins sitting on D0-D7 would have to be removed for this test otherwise they would clash with the 'NOP' buffer as the address ran through their activation address range. For a cruder version of the above, just take a DIL socket of the appropriate size and fit lowish value resistors (100R, say) from each data line to ground and plug it into the EPROM socket. As above, you'd have to remove every other memory mapped device from the data bus to stop them from activating and (potentially) placing unwanted data on the bus. |
|
10th Jan 2018, 7:22 pm | #52 |
Dekatron
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,225
|
Re: 8085 processor questions
0xFF is on of the RST (Restart) instructions, basically a 1-byte subroutine call to a subroutine starting at 0x38.
Forcing that on the bus is a useful test in that the processor will keep on pushing 0x39, 0x00 (the return address, low byte first) onto the stack. It will do this throughout memory, so if the video system is memory-mapped (which I would think it is), it will fill it with a repeated 2 byte pattern. 0x39 probably displays as '9' (I am assuming ASCII), 0x00 could be anything. This was actually a suggested test in the technical manual of the TRS-80 Model 1 -- pull the ROMs and see if you got the expected pattern on the display. And of course after the first 0xFF, all subsequent ones are fetched from address 0x0038 (the start of the 'subroutine'). So provided that address is in the ROM area, it doesn't matter what other devices are on the bus (provided the address decoder is working properly) as they will never be addressed to provide an instruction. |
10th Jan 2018, 8:38 pm | #53 | |
Nonode
Join Date: Oct 2008
Location: Warsaw, Poland and Cambridge, UK
Posts: 2,681
|
Re: 8085 processor questions
Yes, a 465 is definitely a good scope!
Quote:
Chris
__________________
What's going on in the workshop? http://martin-jones.com/ |
|
10th Jan 2018, 8:44 pm | #54 |
Dekatron
Join Date: Feb 2005
Location: St.Ippolyts, Hitchin, Hertfordshire QRA IO91UW
Posts: 3,518
|
Re: 8085 processor questions
Thanks everyone - there's a lot here that I have little understanding of!
Bear with me, and I will try to get my head around it. In the meantime, I am going back to basics - I have ordered a load of new electrolytics for the power supply, and will also replace any that are lurking elsewhere - I think 35+ years is asking a lot of these components. Chris, Ah, ok , more Warsaw than Cambridge then The machine is a bit heavy for hand luggage Power supply parts are at the post office, so hopefully I can get that part finished off Friday evening, then carry out some of the testing that has been suggested. Really appreciate all the trouble everyone is going to. Sean
__________________
Engineers make things work and have spare bits when finished |
10th Jan 2018, 9:26 pm | #55 | ||
Octode
Join Date: Jan 2003
Location: Birmingham, West Midlands, UK.
Posts: 1,268
|
Re: 8085 processor questions
Quote:
Anyhow, writing minimal programs that loop while doing one specific thing is a way to tackle tracking down whats working or not. TTFN, Jon |
||
10th Jan 2018, 10:39 pm | #56 |
Dekatron
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,587
|
Re: 8085 processor questions
Here is the original 8085 family databook, courtesy of bitsavers. I actually have a real copy of this very book (somewhere).
http://www.bitsavers.org/components/...nual_Jan83.pdf |
14th Jan 2018, 3:23 pm | #57 |
Dekatron
Join Date: Feb 2005
Location: St.Ippolyts, Hitchin, Hertfordshire QRA IO91UW
Posts: 3,518
|
Re: 8085 processor questions
I've had a couple of minutes to hang a scope on the RAM, the video shows what happens when I press the CPU reset button.
Looks to me like the processor is at least partly functional. https://youtu.be/OLi1JKgBc7Q
__________________
Engineers make things work and have spare bits when finished |
19th Feb 2018, 11:08 am | #58 |
Heptode
Join Date: Apr 2011
Location: Gosport, Hampshire, UK.
Posts: 606
|
Re: 8085 processor questions
I too think running warm / even hot is not necessarily indicative of a fault. I seem to remember the bus controller in an 8080A system used to run so hot you'd think something was wrong with it but it seemed to be the norm!
__________________
GQRP Club 4704 - BVWS Member |
21st Feb 2018, 1:02 pm | #59 |
Dekatron
Join Date: Dec 2007
Location: Haarlem, Netherlands
Posts: 4,203
|
Re: 8085 processor questions
0x90 is NOP in the x86 architecture. Never know why they didn't just choose 0x00 or 0xFF.
|
21st Feb 2018, 3:56 pm | #60 |
Dekatron
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
|
Re: 8085 processor questions
00 or FF as NOP looks nice for humans, but might make the instruction-decoding logic more complicated.
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments. |