8085 processor
supporting hardware, thus
allowing simpler and less expensive microcomputer
systems to be built.The "5" in the model number came from the fact
that the 8085 required only a +5-volt (V) power supply rather than the +5V, -5V and +12V supplies
the 8080 needed. Both processors were sometimes used in computers running the CP/M operating system, and the 8085 later saw
use as a microcontroller (much by virtue of its component
count reducing feature). Both designs were eclipsed for desktop computers by
the compatible but more capable Zilog Z80, which took over most of the CP/M computer
market as well as taking a large share of the booming home
computer market in the early-to-mid-1980s.
The 8085 had a very long life as
a controller. Once designed into such products as the DECtape
controller and the VT100
video terminal in the late 1970s, it continued to serve for new production
throughout the life span of those products (generally many times longer than
the new manufacture lifespan of desktop computers).
Description
The 8085 is a conventional von Neumann design based on the Intel
8080. Unlike the 8080 it had no state signals multiplexed onto the data bus,
but the 8-bit data
bus was instead multiplexed with the lower part of the 16-bit address bus
(in order to limit the number of pins to 40). The processor was designed using
nMOS circuitry and the later "H" versions were implemented in Intel's
enhanced nMOS process called HMOS, originally developed for fast static RAM
products. The 8085 used approximately 6,500 transistors[1].
The 8085 incorporated the functionality
of the 8224 (clock generator) and the 8228 (system controller), increasing the
level of integration. A downside compared to similar contemporary designs (such
as the Z80) was the fact that the buses required demultiplexing, however,
address latches in the Intel 8155, 8355, and 8755 memory chips allowed a direct
interface, so an 8085 along with these chips was almost a complete system.
The 8085 had extensions to
support new interrupts: It had three maskable interrupts (RST 7.5, RST 6.5 and
RST 5.5), one Non-Maskable interrupt (TRAP), and one
externally serviced interrupt (INTR). The RST n.5 interrupts refer to actual
pins on the processor-a feature which permitted simple systems to avoid the
cost of a separate interrupt controller.
Like the 8080, the 8085 could
accommodate slower memories through externally generated wait states
(pin 35, READY), and had provisions for Direct Memory Access (DMA) using HOLD and HLDA
signals (pins 39 and 38). An improvement over the 8080 was that the 8085 can
itself drive a piezoelectric crystal directly connected to
it, and a built in clock generator generates the internal high amplitude
two-phase clock signals at half the crystal frequency (a 6.14 MHz crystal would
yield a 3.07 MHz clock for instance).
With a slighly higher integration
and a single 5V power (using depletion mode load nMOS), the 8085 was a binary
compatible follow up on the 8080, the successor to the original Intel 8008.
The 8080 and 8085 used the same basic instruction
set as the 8008 (developed by Computer Terminal Corporation) and
they were source code compatible with their
predecessor. However, the 8080 added several useful and handy 16-bit operations
above the 8008 instruction set, while the 8085 added only a few relatively
minor instructions above the 8080 set.
The processor had seven 8-bit registers, (A, B, C, D, E, H, and L) where A was
the 8-bit accumulator and the other six could be used as either byte-registers
or as three 16-bit register pairs (BC, DE, HL) depending on the particular
instruction. Some instructions also enabled HL to be used as (a limited) 16-bit
accumulator. It also had a 16-bit stack pointer to memory (replacing
the 8008's internal stack), and a 16-bit program
counter.
Like in many other 8-bit
processors, all instructions were encoded in a single byte (including
register-numbers, but excluding immediate data), for simplicity. Some of them
were followed by one or two bytes of data, which could be an immediate operand,
a memory address, or a port number. Like larger processors, it had automatic
CALL and RET instructions for multi-level procedure calls and returns (which
could even be conditionally executed, like jumps) and instructions to save and
restore any 16-bit register-pair on the machine stack. There were also eight
one-byte call instructions (RST) for subroutines located at the fixed addresses
00h, 08h, 10h,...,38h. These were intended to be supplied by external hardware
in order to invoke a corresponding interrupt-service routine, but were also
often employed as fast system calls. The most sophisticated command was XTHL,
which was used for exchanging the register pair HL with the value stored at the
address indicated by the stack pointer.
Most 8-bit operations could only
be performed on the 8-bit accumulator (the A register). For dyadic 8-bit
operations, the other operand could be either an immediate value, another 8-bit
register, or a memory cell addressed by the 16-bit register pair HL. Direct
copying was supported between any two 8-bit registers and between any 8-bit
register and a HL-addressed memory cell. Due to the regular encoding of the
MOV-instruction (using a quarter of available opcode space) there were
redundant codes to copy a register into itself (MOV B,B, for instance), which
was of little use, except for delays. However, what would have been a copy from
the HL-addressed cell into itself (i.e., MOV M,M) was instead used to encode the
HLT instruction
(halting execution until an external reset or interrupt).
Although the 8085 was generally
an 8-bit processor, it also had limited abilities to perform 16-bit operations:
Any of the three 16-bit register pairs (BC, DE, HL) or SP could be loaded with
an immediate 16-bit value (using LXI), incremented or decremented (using INX
and DCX), or added to HL (using DAD). The XCHG operation exchanged the values
of HL and DE. By adding HL to itself, it was possible to achieve the same
result as a 16-bit arithmetical left shift with one instruction. The only 16
bit instructions that affect any flag is DAD, which sets the CY (carry) flag in
order to allow for programmed 24-bit or 32-bit arithmetics
(or larger), needed to implement floating point arithmetics, for
instance.if we ensert pendrive its process become fast because pendrive have
its own microprocessor
The 8085 supported up to 256 input/output
(I/O) ports, accessed via dedicated I/O instructionstaking port addresses as
operands. This I/O mapping scheme was regarded as an advantage, as it freed up
the processor's limited address space. Many CPU architectures instead use a
common address space without the need for dedicated I/O instructions, although
a drawback in such designs may be that special hardware must be used to insert
wait states as peripherals are often slower than memory. However, in some
simple 8080 computers, I/O was indeed addressed as if they were memory cells,
"memory mapped", leaving the I/O commands unused. I/O addressing
could also sometimes employ the fact that the processor would output the same
8-bit port address to both the lower and the higher address byte (i.e. IN 05h
would put the address 0505h on the 16-bit address bus). Similar I/O-port
schemes were used in the 8080-compatible Zilog Z80 as well as the closely
related x86 families of microprocessors.
Intel produced a series of
development systems for the 8080 and 8085, known as the Personal Development
System. The original PDS was a large box (in the Intel corporate blue colour)
which included a CPU and monitor, and used 8 inch floppy disks. It ran the ISIS
operating system and could also operate an emulator pod
and EPROM
programmer. The later iPDS was a much more portable unit featuring a small
green screen and a 5 inch floppy disk drive, and ran the ISIS-II operating
system. It could also accept a second 8085 processor, allowing a limited form
of multi-processor operation where both CPUs shared the screen,
keyboard and floppy disk drive. In addition to an 8080/8085 assembler, Intel
produced a number of compilers including PL/M-80 and Pascal languages, and a set of tools
for linking and statically locating programs to enable them to be burnt into EPROMs and used in embedded
systems. The hardware support changes were announced and supported, but the
software upgrades were not supported by the assembler, user manual or any other
means. At times it was claimed they were not tested when that was false.[citation needed]
For the extensive use of 8085 in
various applications, the microprocessor is provided with an instruction set
which consists of various instructions such as MOV, ADD, SUB, JMP etc. These
instructions are written in the form of a program which is used to perform
various operations such as branching, addition, subtraction, bitwise
logical and bit shift operations. More complex operations and
other arithmetic operations must be implemented in software. For example,
multiplication is implemented using a multiplication algorithm.
The 8085 processor has found
marginal use in small scale computers up to the 21st century. The TRS-80 Model 100 line uses a 80C85. The CMOS version 80C85 of
the NMOS/HMOS 8085 processor has/had several manufacturers, and some versions
(eg. Tundra Semiconductor Corporation's CA80C85B) have additional
functionality, eg. extra machine code instructions. One niche application for
the rad-hard
version of the 8085 has been in on-board instrument data processors for several
NASA and ESA space physics
missions in the 1990s and early 2000s, including CRRES, Polar,
FAST,
Cluster,
HESSI, Sojourner
(rover)[2], and THEMIS. The Swiss company SAIA used the 8085 and
the 8085-2 as the CPUs of their PCA1 line of programmable logic controllers during
the 1980s.
In many engineering schools in Iraq, Syria, Turkey, Bangladesh,
Iran, India, Pakistan, Brazil, Macedonia, Mexico, Germany, Greece, Hungary, Panama, Nepal, Malaysia and Bosnia and Herzegovina[2]
the 8085 processor is popularly used in many introductory microprocessor courses.
8085 simulators exist aplenty for
educational use. Freely available open source variants include GNUSim8085
and GSim85[3] working on both,
GNU/Linux and Windows, a freely available web based simulator (including
assembler) can be found here. Closed source freeware simulators
for the Microsoft Win32 platform include Win85
[4] (which also
emulates undocumented operations of the chip) and Sim8085.
The 8085 CPU was only one part of
a much larger family of chips developed by Intel, for building a complete
system. Although the 8085 CPU itself was not a great success, many of these
support chips (or their descendents) later found their use in combination with
the 8086
microprocessor, and are still in use today, although not as the chips
themselves, but with their equivalent functionality embedded into larger VLSI chips, namely the "Southbridge" chips of modern PCs.
By
courtesy of Wikipedia.