8085 IO ports

Tony Duell ard.p850ug1 at gmail.com
Sun Jan 15 08:38:29 CST 2017

On Sun, Jan 15, 2017 at 1:02 PM, Adrian Graham
<witchy at binarydinosaurs.co.uk> wrote:
> On 15/01/2017 03:04, "allison" <ajp166 at verizon.net> wrote:
>> On 01/14/2017 08:18 PM, dwight wrote:
>>> If it is not doing I/O and waiting for something, it is likely waiting for an
>>> interrupt.
>>> Dwight

But do you know it''s not doing I/O. OK IO/M is never going into the
right state for
I/O, but what that _really_ means is that the 8085 is never executing
any IN or OUT
type instructions. But of course memory mapped I/O is possible
(storing or loading
at particular locations that happen to be I/O devices) on any processor that can
access memory (including the 8085). I've seen small 8085 and Z80 control systems
with only memory-mapped I/O.

> Apologies for all the daft sounding questions (this goes to Dwight, Tony and
> Chuck too) but historically I'm a high level programmer so getting right

I don't think I've seen any daft questions yet!

> down into silicon level is something I've only been doing for 18 months or
> so. I can sit with a reference book and read assembler listings, draw up a
> logic flow, watch activity/read voltages on a scope but then there's
> applying that to what the hardware is doing too, a fun learning curve.
>>> STC Executel fun continues and I'm at the point where I'm fairly sure code
>>> is running but it's stuck in a tight loop waiting for something to happen.
>> And maybe waiting for a interrupt?
> I've thought of that which is why I'm chasing down details on the Viewdata
> chip and the D8741A which I assume is being used as a keyboard controller.

Why do you assume it's a keyboard controller? It might be, but it could
be other things; THe 8741 is the EPROM version of the 8041. It's a
8048-like microcontroller with a couple of latches on-chip so it can be
used as a peripheral from another processor (here the 8085). You need
to trace the I/O lines from the 8741 to see if they go to the keyboard.

> There are also 3 modules on the phone side which I can't find anything
> about, marked "NKT NMC1515", NMC1516 and NMC1517.

Are these potted blocks, or can you see the components on them?

> 3 interrupts are in use:
> TRAP is hardwired to GND.
> INTR is pulled low via a 1kohm resistor.
> RST7.5 is clock driven. If my disassembled code is to be believed the first
> thing it does after PUSHing PSW, B, D and H onto the stack is a RIM
> instruction which reads from SID, this is directly wired to one of the NKT
> modules I mentioned, possibly checking for an incoming phone call.

Could this be part of the serial data transfer? There will be incoming data
at 1200 baud. There should be some kind of demodulator (maybe one of the
modules) and a serial-to-parallel converter You've not mentioned a serial chip
(is there one), if not then I would expect it to be simulated in software. Maybe
on the 8085, maybe on the 8741.

> RST6.5 is from the Teletext chip, wired to the video status outputs.
> RST5.5 is from the D8741A, again from a pair of status outputs (IBF/OBF)

The last basically says that either the 8741 has data to send to the 8085
(OBF = Output Buffer Full) or is ready for data from the 8085 (IBF = Input
Buffer Full)

>> A current project for myself has the 8085 runnign a simple multitasking OS
>> and the loop runs through the task table and every task retruns to the loop.
>> Interrupts are real time events or priority events that need out of
>> sequence attention.  The 8085 makes that fairly simple.
>> I'd bet the Executel is doing that, refershing display and scanning for
>> events
>> with some interrupt driven for out of sequence response.

I would be surprised if a 'closed' system like this did anything so complicated.
More likely to be doing things like shifting characters around and
then responding
to an interrupt for keypress or incoming character.


More information about the cctalk mailing list