Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Intel 8085
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|8-bit microprocessor by Intel}} {{Use mdy dates|date=October 2011}} {{Infobox CPU | name = Intel 8085 | image = KL_Intel_P8085AH.jpg | caption = An Intel P8085AH-2 processor variant with black plastic and silver pins | produced-start = March 1976 | produced-end = 2000<ref>{{Cite web |title=The Life Cycle of a CPU |url=https://www.cpushack.com/life-cycle-of-cpu.html |website=www.cpushack.com}}</ref> | slowest = 3, 5 and 6 | slow-unit = MHz | manuf1 = [[Intel]] and several others | arch = 8085 | pack1 = 40-pin [[dual in-line package|DIP]] | predecessor = [[Intel 8080]] | successor = [[Intel 8086]] | size-from = [[3 μm process|3 μm]] | transistors = 6,500 | data-width = 8 bits | address-width = 16 bits | sock1 = [[dual in-line package|DIP40]] | support status = Unsupported }} The ''' Intel 8085''' ("''eighty-eighty-five''") is an [[8-bit]] [[microprocessor]] produced by [[Intel]] and introduced in March 1976.<ref>{{cite web|url=https://www.intel.com/pressroom/kits/quickrefyr.htm|title=Intel® Microprocessor Quick Reference Guide - Year|website=www.intel.com}}</ref> It is software-[[binary-code compatibility|binary compatible]] with the more-famous [[Intel 8080]]. It is the last 8-bit microprocessor developed by Intel. The "5" in the part number highlighted the fact that the 8085 uses a single +5-[[volt]] (V) power supply, compared to the 8080's +5, -5 and +12V, which makes the 8085 easier to integrate into systems that by this time were mostly +5V. The other major change was the addition of a [[serial port]], with separate input and output pins. This was often all that was needed in simple systems and eliminated the need for separate [[integrated circuit]]s to provide this functionality, as well as simplifying the [[computer bus]] as a result. The only changes in the [[instruction set]] compared to the 8080 were instructions for reading and writing data using these pins. The 8085 is supplied in a 40-pin [[Dual in-line package|DIP]] package. Given the new serial pins, this required [[multiplexing]] 8-bits of the address (AD<sup>0</sup>-AD<sup>7</sup>) bus with the data bus. This means that specifying a complete 16-bit address requires it to be sent as two 8-bit values, and one of those two has to be temporarily stored, or latched, using separate hardware. Intel manufactured several support chips with an address latch built in. These include the 8755, with an address latch, 2 KB of [[EPROM]] and 16 I/O pins, and the 8155 with 256 bytes of [[RAM]], 22 I/O pins and a 14-bit programmable timer/counter. The multiplexed address/data bus reduced the number of PCB tracks between the 8085 and such memory and I/O chips. While the 8085 was an improvement on the 8080, it was eclipsed by the [[Zilog Z80]] in the early-to-mid-1980s, which took over much of the desktop computer role. Although not widely used in computers, the 8085 had a long life as a microcontroller. Once designed into such products as the [[DECtape#DECtape II|DECtape II]] controller and the [[VT102]] video terminal in the late 1970s, the 8085 served for new production throughout the lifetime of those products. [[Image:Intel 8085A Die CPU Image.jpg|right|thumb|Intel 8085A CPU die]] ==Description== [[Image:Intel 8085 arch.svg|right|thumb|i8085 microarchitecture]] [[File:Anschlussbelegung 8085.svg|right|thumb|i8085 pinout]] The 8085 is a conventional [[Von Neumann architecture|von Neumann]] design based on the Intel 8080. Unlike the 8080 it does not multiplex state signals onto the data bus, but the 8-bit [[Bus (computing)|data bus]] is instead multiplexed with the lower eight bits of the 16-bit [[address bus]] to limit the number of pins to 40. State signals are provided by dedicated bus control signal pins and two dedicated bus state ID pins named S0 and S1. Pin 40 is used for the power supply (+5 V) and pin 20 for ground. Pin 39 is used as the Hold pin. The Intel 8085 processor was designed using [[NMOS logic|nMOS]] circuitry, with later "H" versions implemented in Intel's enhanced nMOS process known as [[Depletion-load NMOS logic#Intel HMOS|HMOS II]] ("High-performance MOS"), which was originally developed for fast static RAM products.<ref name="auto1">Intel Corporation, "New Products: HMOS MCS-85 Chips Uses 20 to 30 Percent Less Power", Solutions, July/August 1981, Page 22</ref> Unlike the 8080, the 8085 requires only a single 5-volt power supply, similar to its competing processors. The 8085 contains approximately 6,500 [[transistor]]s.<ref>The history of the microcomputer-invention and evolution, S Mazor - Proceedings of the IEEE, 1995</ref> The 8085 incorporates the functions of the 8224 (clock generator) and the 8228 (system controller) on chip, increasing the level of integration. A downside compared to similar contemporary designs (such as the Z80) is the fact that the buses require demultiplexing; however, address latches in the Intel 8155, 8355, and 8755 memory chips allow a direct interface, so an 8085 along with these chips is almost a complete system. The 8085 has extensions to support new [[interrupt]]s, with three maskable vectored interrupts (RST 7.5, RST 6.5 and RST 5.5), one [[non-maskable interrupt]] (TRAP), and one externally serviced interrupt (INTR). Each of these five interrupts has a separate pin on the processor, a feature which permits simple systems to avoid the cost of a separate interrupt controller. The RST 7.5 interrupt is edge triggered (latched), while RST 5.5 and 6.5 are level-sensitive. All interrupts except TRAP are enabled by the EI instruction and disabled by the DI instruction. In addition, the SIM (Set Interrupt Mask) and RIM (Read Interrupt Mask) instructions, the only instructions of the 8085 that are not from the 8080 design, allow each of the three maskable RST interrupts to be individually masked. All three are masked after a normal CPU reset. SIM and RIM also allow the global interrupt mask state and the three independent RST interrupt mask states to be read, the pending-interrupt states of those same three interrupts to be read, the RST 7.5 trigger-latch flip-flop to be reset (cancelling the pending interrupt without servicing it), and serial data to be sent and received via the SOD and SID pins, respectively, all under program control and independently of each other. SIM and RIM each execute in four clock cycles (T states), making it possible to sample SID and/or toggle SOD considerably faster than it is possible to toggle or sample a signal via any I/O or memory-mapped port, e.g. one of the port of an 8155. (In this way, SID can be compared to the SO ["Set Overflow"] pin of the 6502 CPU contemporary to the 8085.) Like the 8080, the 8085 can accommodate slower memories through externally generated [[wait state]]s (pin 35, READY), and has provisions for [[Direct Memory Access]] (DMA) using HOLD and HLDA signals (pins 39 and 38). An improvement over the 8080 is 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). The internal clock is available on an output pin, to drive peripheral devices or other CPUs in lock-step synchrony with the CPU from which the signal is output. The 8085 can also be clocked by an external [[Electronic oscillator|oscillator]] (making it feasible to use the 8085 in synchronous multi-processor systems using a system-wide common clock for all CPUs, or to synchronize the CPU to an external time reference such as that from a video source or a high-precision time reference). The 8085 is a [[binary compatible]] follow-up on the 8080. It supports the complete [[instruction set]] of the 8080, with exactly the same instruction behavior, including all effects on the CPU flags (except for the AND/ANI operation, which sets the AC flag differently).<ref>{{cite book|url=http://www.bitsavers.org/components/intel/MCS80/MCS80_85_Users_Manual_Jan83.pdf |archive-url=https://web.archive.org/web/20170829032438/http://www.bitsavers.org/components/intel/MCS80/MCS80_85_Users_Manual_Jan83.pdf |archive-date=2017-08-29 |url-status=live|title=The MCS-80/85 Family User's Manual|date=January 1983|publisher=[[Intel]]|at=pp. 1–8|quote=The 8085A CPU is 100% software compatible with the Intel 8080A CPU.}}</ref> This means that the vast majority of object code (any program image in ROM or RAM) that runs successfully on the 8080 can run directly on the 8085 without translation or modification. (Exceptions include timing-critical code and code that is sensitive to the aforementioned difference in the AC flag setting or differences in undocumented CPU behavior.) 8085 instruction timings differ slightly from the 8080—some 8-bit operations, including INR, DCR, and the heavily used MOV r,r instructions, are one clock cycle faster, but instructions that involve 16-bit operations, including stack PUSH (which decrements the 16-bit SP register) generally one cycle slower. Conditional jumps not taken are three clocks faster on the 8085. As mentioned already, only the SIM and RIM instructions were new to the 8085.<ref group="nb">Note that the Z80 assigns different instructions—two of the Z80's 6 relative jumps—to the opcodes that the 8085 uses for RIM and SIM, making 8085 programs that use these instructions generally unable to run on the Z80 without modification. Since use of these instructions usually relates to 8085-specific hardware features, the necessary program modification would typically be nontrivial.</ref> ===Programming model=== {| class="infobox" style="font-size:88%;width:34em;" |- |+ Intel 8085 registers |- | {| style="font-size:88%;" |- | style="width:10px; text-align:center;"| <sup>1</sup><sub>5</sub> | style="width:10px; text-align:center;"| <sup>1</sup><sub>4</sub> | style="width:10px; text-align:center;"| <sup>1</sup><sub>3</sub> | style="width:10px; text-align:center;"| <sup>1</sup><sub>2</sub> | style="width:10px; text-align:center;"| <sup>1</sup><sub>1</sub> | style="width:10px; text-align:center;"| <sup>1</sup><sub>0</sub> | style="width:10px; text-align:center;"| <sup>0</sup><sub>9</sub> | style="width:10px; text-align:center;"| <sup>0</sup><sub>8</sub> | style="width:10px; text-align:center;"| <sup>0</sup><sub>7</sub> | style="width:10px; text-align:center;"| <sup>0</sup><sub>6</sub> | style="width:10px; text-align:center;"| <sup>0</sup><sub>5</sub> | style="width:10px; text-align:center;"| <sup>0</sup><sub>4</sub> | style="width:10px; text-align:center;"| <sup>0</sup><sub>3</sub> | style="width:10px; text-align:center;"| <sup>0</sup><sub>2</sub> | style="width:10px; text-align:center;"| <sup>0</sup><sub>1</sub> | style="width:10px; text-align:center;"| <sup>0</sup><sub>0</sub> | style="width:auto;" | ''(bit position)'' |- |colspan="17" | '''Main registers''' |- style="background:silver;color:black" | style="text-align:center;" colspan="8"| A | style="text-align:center;background:#DDD" colspan="8"| [[Flag (computing)|Flags]] | style="width:auto; background:white; color:black;"| '''P'''rogram '''S'''tatus '''W'''ord |- style="background:silver;color:black" | style="text-align:center;" colspan="8"| B | style="text-align:center;" colspan="8"| C | style="background:white; color:black;"| '''B''' |- style="background:silver;color:black" | style="text-align:center;" colspan="8"| D | style="text-align:center;" colspan="8"| E | style="background:white; color:black;"| '''D''' |- style="background:silver;color:black" | style="text-align:center;" colspan="8"| H | style="text-align:center;" colspan="8"| L | style="background:white; color:black;"| '''H''' (indirect address) |- |colspan="17" | '''[[Index registers]]''' |- style="background:silver;color:black" | style="text-align:center;" colspan="16"| SP | style="background:white; color:black;"| '''S'''tack '''P'''ointer |- |colspan="17" | '''[[Program counter]]''' |- style="background:silver;color:black" | style="text-align:center;" colspan="16"| PC | style="background:white; color:black;"| '''P'''rogram '''C'''ounter |- |colspan="17" | '''[[Status register]]''' |- style="background:silver;color:black" | style="text-align:center; background:white" colspan="8" | | style="text-align:center;"| [[Sign flag|S]] | style="text-align:center;"| [[Zero flag|Z]] | style="text-align:center;"| - | style="text-align:center;"| [[Half-carry flag|AC]] | style="text-align:center;"| - | style="text-align:center;"| [[Parity flag|P]] | style="text-align:center;"| - | style="text-align:center;"| [[Carry flag|CY]] | style="background:white; color:black" | Flags |} |} The processor has seven 8-bit [[processor register|registers]] accessible to the programmer, named A, B, C, D, E, H, and L, where A is also known as the accumulator. The other six registers can be used as independent byte-registers or as three 16-bit register pairs, BC, DE, and HL (or B, D, H, as referred to in Intel documents), depending on the particular instruction. Some instructions use HL as a (limited) 16-bit accumulator. As in the 8080, the contents of the memory address pointed to by HL can be accessed as pseudo register M. It also has a 16-bit [[program counter]] and a 16-bit [[Stack-based memory allocation|stack pointer]] to memory (replacing the 8008's internal [[stack (data structure)|stack]]). Instructions such as PUSH PSW, POP PSW affect the Program Status Word (accumulator and flags). The accumulator stores the results of arithmetic and logical operations, and the flags register bits (sign, zero, auxiliary carry, parity, and carry flags) are set or cleared according to the results of these operations. The sign flag is set if the result has a negative sign (i.e. it is set if bit 7 of the accumulator is set). The auxiliary or half carry flag is set if a carryover from bit 3 to bit 4 occurred. The parity flag is set to 1 if the parity (number of 1-bits) of the accumulator is even; if odd, it is cleared. The zero flag is set if the result of the operation was 0. Lastly, the carry flag is set if a carryover from bit 7 of the accumulator (the MSB) occurred. ===Commands/instructions=== As in many other 8-bit processors, all instructions are encoded in a single byte (including register-numbers, but excluding immediate data), for simplicity. Some of them are followed by one or two bytes of data, which can be an immediate operand, a memory address, or a port number. A NOP "no operation" instruction exists, but does not modify any of the registers or flags. Like larger processors, it has CALL and RET instructions for multi-level procedure calls and returns (which can be conditionally executed, like jumps) and instructions to save and restore any 16-bit register-pair on the machine stack. There are also eight one-byte call instructions (RST) for subroutines located at the fixed addresses 00h, 08h, 10h,...,38h. These are intended to be supplied by external hardware in order to invoke a corresponding interrupt-service routine, but are also often employed as fast system calls. One sophisticated instruction is XTHL, which is used for exchanging the register pair HL with the value stored at the address indicated by the stack pointer. ====8-bit instructions==== All two-operand 8-bit arithmetic and logical (ALU) operations work on the 8-bit [[Accumulator (computing)|accumulator]] (the A register). For two-operand 8-bit operations, the other operand can be either an immediate value, another 8-bit register, or a memory cell addressed by the 16-bit register pair HL. The only 8-bit ALU operations that can have a destination other than the accumulator are the unary incrementation or decrementation instructions, which can operate on any 8-bit register or on memory addressed by HL, as for two-operand 8-bit operations. Direct copying is supported between any two 8-bit registers and between any 8-bit register and an HL-addressed memory cell, using the MOV instruction. An immediate value can also be moved into any of the foregoing destinations, using the MVI instruction. Due to the regular encoding of the MOV instruction (using nearly a quarter of the entire opcode space) there are redundant codes to copy a register into itself (''MOV B,B'', for instance), which are of little use, except for delays.<ref group="nb">Even so, there is no need for seven different effectively identical delay instructions, and they are also identical in effect and form to the NOP instruction, except that NOP conveniently has the opcode 00 hex.</ref> However, what would have been a copy from the HL-addressed cell into itself (i.e., ''MOV M,M'') instead encodes the [[HLT (x86 instruction)|HLT]] instruction, halting execution until an external reset or unmasked interrupt occurs.<ref group="nb">(The TRAP interrupt, being an [[Non-maskable interrupt|NMI]], can always bring the 8085 out of the HALT state.)</ref> <!-- It would be better if HLT were only mentioned here as regards opcode assignment and was explained operationally in a separate section about machine-control instructions--> ====16-bit operations==== Although the 8085 is an 8-bit processor, it has some 16-bit operations. Any of the three 16-bit register pairs (BC, DE, HL) or SP can be loaded with an immediate 16-bit value (using LXI), incremented or decremented (using INX and DCX), or added to HL (using DAD). LHLD loads HL from directly addressed memory and SHLD stores HL likewise. The XCHG operation exchanges the values of HL and DE. XTHL exchanges last item pushed on stack with HL. Adding HL to itself performs a 16-bit arithmetic left shift with one instruction. The only 16-bit instruction that affects any flag is DAD (adding BC, DE, HL, or SP to HL), which updates the carry flag to facilitate 24-bit or larger additions and left shifts. Adding the stack pointer to HL is useful for indexing variables in (recursive) stack frames. A stack frame can be allocated using DAD SP and SPHL, and a branch to a computed pointer can be done with PCHL. These abilities make it feasible to compile languages such as [[PL/M]], [[Pascal (programming language)|Pascal]], or [[C (programming language)|C]] with 16-bit variables and produce 8085 machine code. Subtraction and bitwise logical operations on 16 bits is done in 8-bit steps. Operations that have to be implemented by program code (subroutine libraries) include comparisons of signed integers as well as multiplication and division. ====Undocumented instructions==== A number of undocumented instructions and flags were discovered by two software engineers, Wolfgang Dehnhardt and Villy M. Sorensen in the process of developing an 8085 assembler. These instructions use 16-bit operands and include indirect loading and storing of a word, a subtraction, a shift, a rotate, and offset operations.<ref>{{cite journal | first1 = Wolfgang | last1 = Dehnhardt | first2 = Villy | last2 = M. Sorensen | title = Unspecified 8085 op codes enhance programming | journal = Electronics | publisher = McGraw-Hill | date = January 1979 | pages = 144–145 | issn = 0013-5070 | url = http://www.club100.org/memfiles/index.php?action=downloadfile&filename=UnDoc85.pdf&directory=Steve%20Adolph/undocumented_8085_opcodes }}</ref> By the time 8085 was designed but not yet announced, many designers found it to be inferior to the competing products already on the market. The next generation 16-bit 8086 CPU was already in development. Intel made a last minute decision to leave 10 out of 12 new 8085 instructions undocumented to speed up and simplify the design of the upcoming 8086 CPU.<ref> {{cite journal | first1 = Stanley | last1 = Mazor | title = Intel's 8086 | journal = IEEE Annals of the History of Computing | publisher = IEEE Computer Society | date = January–March 2010 | volume = 32 | pages = 75–79 | doi = 10.1109/MAHC.2010.22 | issn = 1058-6180 | url = https://ieeexplore.ieee.org/document/5430762 | url-access = subscription }} </ref> ===Input/output scheme=== The 8085 supports both [[Memory-mapped I/O|port-mapped and memory-mapped I/O]]. It supports up to 256 [[input/output]] (I/O) ports via dedicated Input/Output instructions, with port addresses as operands. Port-mapped IO can be an advantage on processors with limited address space. During a port-mapped I/O bus cycle, the 8-bit I/O address is output by the CPU on both the lower and upper halves of the 16-bit address bus. Devices designed for memory mapped I/O can also be accessed by using the LDA (load accumulator from a 16-bit address) and STA (store accumulator at a 16-bit address specified) instructions, or any other instructions that have memory operands. A memory-mapped IO transfer cycle appears on the bus as a normal memory access cycle. ===Development system=== {{Main|Intel system development kit}} Intel produced a series of development systems for the 8080 and 8085, known as the MDS-80 Microprocessor System. The original development system had an 8080 processor. Later 8085 and 8086 support was added including ICE ([[in-circuit emulator]]s). It is a large and heavy desktop box, about a 20" cube (in the Intel corporate blue color) which includes a CPU, monitor, and a single 8-inch floppy disk drive. Later an external box was made available with two more floppy drives. It runs the [[ISIS (operating system)|ISIS]] operating system and can also operate an [[emulator]] pod and an external [[EPROM]] programmer. This unit uses the Multibus card cage which was intended just for the development system. A surprising number of spare card cages and processors were being sold, leading to the development of the Multibus as a separate product. The later iPDS is a portable unit, about 8"{{times}}16"{{times}}20", with a handle. It has a small green screen, a keyboard built into the top, a 5¼ inch floppy disk drive, and runs the ISIS-II operating system. It can also accept a second 8085 processor, allowing a limited form of multi-processor operation where both processors run simultaneously and independently. The screen and keyboard can be switched between them, allowing programs to be assembled on one processor (large programs took a while) while files are edited in the other. It has a [[bubble memory]] option and various programming modules, including EPROM, and [[Intel 8048]] and [[Intel 8051|8051]] programming modules which are plugged into the side, replacing stand-alone device programmers. In addition to an 8080/8085 assembler, Intel produced a number of compilers including those for [[PL/M|PL/M-80]] and [[Pascal programming language|Pascal]], and a set of tools for linking and statically locating programs to enable them to be burned into [[EPROM]]s and used in [[embedded system]]s. A lower cost "MCS-85 System Design Kit" (SDK-85) board contains an 8085 CPU, an 8355 ROM containing a debugging monitor program, an 8155 RAM and 22 I/O ports, an 8279 hex keypad and 8-digit 7-segment LED, and a TTY (Teletype) {{val|20|ul=mA}} current loop serial interface. Pads are available for one more 2K×8 8755 EPROM, and another {{val|256|ul=byte}} RAM 8155 I/O Timer/Counter can be optionally added. All data, control, and address signals are available on dual pin headers, and a large prototyping area is provided. ===List of Intel 8085 Models=== {| class="wikitable" |- ! Model Number !! Technology Process || Process Node || Clock Speed || Temperature Range !! Current Rating || Power Tolerance || Package || Date of Release !! Price USD<ref group=list>In quantities of 100 and up</ref> |- | 8085A<ref name="auto1"/> || [[Depletion-load NMOS logic#Depletion-mode transistors|NMOS]] || [[3 μm process|3 micron]] || 3 MHz || || 170 mA || ± 5% || || || $6.25 |- | P8085AH<ref name="auto1"/> || [[Depletion-load NMOS logic#Intel HMOS|HMOS II]] || 2 micron || 3 MHz || || 135 mA || ± 10% || Plastic || July/August 1981 || $4.40 |- | 8085-2<ref name="January/February 1980">Intel Corporation, "New EPROM completes 5MHz capability for MCS-85™ family", Intel Preview, January/February 1980, p. 24.</ref> || || || 5 MHz || || || || || || |- | 8085A-2<ref name="auto1"/> || NMOS || 3 micron || 5 MHz || || 170 mA || ± 5% || || || $8.75 |- | P8085AH-2<ref name="auto1"/> || HMOS II || 2 micron || 5 MHz || || 135 mA || ± 10% || Plastic || July/August 1981 || $5.80 |- | P8085AH-1<ref name="auto1"/> || HMOS II || 2 micron || 6 MHz || || || || Plastic || July/August 1981 || $12.45 |- | ID8085<ref name="March/April 1979-p11">Intel Corporation, "Microcomputer Component: New industrial grade product line answers the demand for high-reliability components to operate in industrial applications.", Intel Preview, March/April 1979, p. 11.</ref> || || || 3 MHz || Industrial || || || || March/April 1979 || $38.75 |- | M8085A<ref name="auto">Intel Corporation, "Military Products: Intel marches on!", Intel Preview, March/April 1979, p. 19.</ref> || || || 3 MHz || Military || || || || March/April 1979 || $110.00 |- |} {{reflist|group=list}} ==Applications== The 8085 processor was used in a few early personal computers, for example, the [[TRS-80 Model 100 line]] used an OKI manufactured 80C85 (MSM80C85ARS). The [[CMOS]] version 80C85 of the NMOS/HMOS 8085 processor has several manufacturers. In the [[Soviet Union]], an 80C85 clone was developed under the [[Soviet integrated circuit designation|designation]] IM1821VM85A ({{langx|ru|{{ill|ИМ1821ВМ85А|ru|vertical-align=sup}}|italic=yes}}) {{as of|2016|alt=which in}} 2016 was still in production.<ref name=nzpp1821>{{cite web | title=Микропроцессорный комплект М1821 | trans-title=Microprocessor system M1821 | publisher=AO NZPP | place=Novosibirsk | url=http://www.nzpp.ru/product/page5.php | language=ru | access-date=31 May 2016 }}</ref> Some manufacturers provide variants with additional functions such as additional instructions.{{Citation needed|date=February 2011}} The [[Radiation hardening|radiation hardened]] 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 (satellite)|Polar]], [[FAST (satellite)|FAST]], [[Cluster (satellite)|Cluster]], [[HESSI]], the [[Mars Pathfinder|Sojourner]] Mars Rover,<ref>{{cite web|url=https://mars.jpl.nasa.gov/MPF/rover/descrip.html|title=Description of the Rover Sojourner|website=mars.jpl.nasa.gov}}</ref> and [[THEMIS (satellite)|THEMIS]]. The Swiss company SAIA used the 8085 and the 8085–2 as the CPUs of their PCA1 line of [[programmable logic controller]]s during the 1980s. Pro-Log Corp. put the 8085 and supporting hardware on an STD Bus format card containing CPU, RAM, sockets for ROM/EPROM, I/O and external bus interfaces. The included Instruction Set Reference Card uses entirely different mnemonics for the Intel 8085 CPU. The product was a direct competitor to Intel's [[Multibus]] card offerings. <gallery caption="Intel 8085 [[second source]]s" mode="packed" heights="150px"> image:AMD AM9085ADM 1.jpg|[[AMD]] Am9085 image:Ic-photo-Mitsubishi--M5L8085AP--(8085-CPU).png|[[Mitsubishi Electric|Mitsubishi]] M5L8085 image:NEC D8085A 1a.jpg|[[NEC μPD8085]] image:Soviet made processor KM1821VM85A.jpg|NZPP Novosibirsk IM1821VM85 (Soviet Union) image:Ic-photo-OKI--M80C85A-2--(8085-CPU).JPG|[[Oki Electric Industry|OKI]] M80C85 image:Siemens SAB8085A C 1.jpg|[[Siemens]] SAB8085 image:Toshiba TMP8085AP 1.jpg|[[Toshiba]] TMP8085 </gallery> ==MCS-85 family== The 8085 CPU is one part of a family of chips developed by Intel for building a complete system. Many of these support chips were also used with other processors. The original IBM PC based on the Intel 8088 processor used several of these chips; the equivalent functions today are provided by [[Very-large-scale integration|VLSI]] chips, namely the "[[Southbridge (computing)|Southbridge]]" chips. * 8085 – CPU * [[Intel 8231/8232|8231]] – Arithmetic Processing Unit * [[Intel 8231/8232|8232]] – Floating-Point Processor * 8205 – 1 of 8 Binary Decoder === Static RAM === * [[Intel 8255|8155]] – 2K-bit static MOS RAM with 3 I/O Ports and Timer. Multiplexed address/data. Active low CE. The industrial version of ID8155 was available for {{USD|37.50}} in quantities of 100 and up.<ref name="March/April 1979-p11" /><ref name="May/June 1980, p. 29">Intel Corporation, "8086 Available for industrial environment", Intel Preview Special Issue: 16-Bit Solutions, May/June 1980, p. 29.</ref> The military version of M8155 was available for {{USD|100.00}} in quantities of 100.<ref name="auto"/> There is a {{val|5|ul=MHz}} version of Intel 8155–2.<ref name="January/February 1980" /> The available 8155H was introduced using the [[Depletion-load NMOS logic#Intel HMOS|HMOS II]] technology which it uses 30 percent less power than the previous generation. The plastic package version of P8155H (3 MHz) and P8155H-2 (5 MHz) are available for {{USD|5.15}} and {{USD|6.40}} per 100 in quantities respectively.<ref name="auto1"/> * 8156 – 2K-bit static MOS RAM with 3 I/O Ports and Timer. Multiplexed address/data. Active high CE. The industrial version of ID8156 was available for {{USD|37.50}} in quantities of 100.<ref name="March/April 1979-p11" /><ref name="May/June 1980, p. 29" /> There is a {{val|5|u=MHz}} version of Intel 8156–2.<ref name="January/February 1980" /> The available 8156H was introduced using the HMOS II technology which it uses 30 percent less power than the previous generation. The plastic package version of P8156H (3 MHz) and P8156H-2 (5 MHz) are available for {{USD|5.15}} and {{USD|6.40}} per 100 in quantities respectively.<ref name="auto1"/> * 8185 – 1,024 x 8-bit static RAM packaged in a compact 18-pin DIP. It includes three chip selects and an internal address latch driven directly by the 8085's ALE. The {{val|5|u=MHz}} version of Intel 8185-2 was available for {{USD|48.75}} in quantity of 100.<ref name="January/February 1980" /> === ROM memory === * 8355 – 2,048 × 8-bit ROM, two 8-bit I/O ports. Multiplexed address/data. The industrial version of ID8355 was available for {{USD|22.00}} in quantities of 1000.<ref name="March/April 1979-p11" /> There is a {{val|5|u=MHz}} version of Intel 8355–2.<ref name="January/February 1980" /> * 8755 – 2048 x 8-bit [[EPROM]], two 8-bit I/O ports. Multiplexed address/data. The Intel 8755A-2 is the {{val|5|u=MHz}} version. That version was available for {{USD|81.00}} in quantity of 100.<ref name="January/February 1980" /> There was an Industrial Grade version Intel I8755A-8.<ref name="May/June 1980, p. 29" /> === RAM controllers === * 8202 – Dynamic RAM Controller. This supports the Intel 2104A, 2117, or 2118 DRAM modules, up to 128 KB of DRAM modules. Price was reduced to {{USD|36.25}} for quantities of 100 for the D8202 package style around May 1979.<ref>Intel Corporation, "Microcomputer Components: Intel reduces prices on the 8202, the first single chip, complete solution to dynamic RAM control", Intel Preview, May/June 1979, p. 11.</ref> * 8203 – Dynamic RAM Controller. The Intel 82C03 CMOS version dissipates less than 25 mA. It supports {{dubious-span|text=up to 16x 64K-bit RAM for a total capacity of up to {{val|256|u=KB}}|reason=16 × 65,536 bits = 1,048,576 bits, which equals 131,072 bytes, hence 128KB. The iffy 256KB value was originally added here https://en.wikipedia.org/w/index.php?title=Intel_8085&diff=prev&oldid=1036142833 and I cannot find the cited source.|date=February 2025}}. It refreshes every 10 to 16 microseconds. It supports multiplexing of row and column memory addresses. It generates strobes to latch the address internally. It arbitrates between simultaneous requests for memory access and refresh. It also acknowledges memory-access cycles to the system CPU. The 82C03 was available in either ceramic or plastic packages for {{USD|32.00}} in 100 pieces quantity.<ref>Intel Corporation, "New Product Focus Components: A Refreshing New Dynamic RAM Controller", Solutions, July/August 1984, Page 12.</ref> * 8207 – DRAM Controller === Periphery === * 8206 – Error Detection & Correction Unit * 8210 – TTL To MOS Shifter & High Voltage Clock Driver * 8212 – 8-bit I/O Port. The industrial version of ID8212 was available for {{USD|6.75}} in quantities of 100.<ref name="March/April 1979-p11" /> * 8216 – 4-bit Parallel Bidirectional Bus Driver. The industrial version of ID8216 was available for {{USD|6.40}} in quantities of 100.<ref name="March/April 1979-p11" /> * 8218/8219 – Bus Controller * 8226 – 4-bit Parallel Bidirectional Bus Driver. The industrial version of ID8226 was available for {{USD|6.40}} in quantities of 100.<ref name="March/April 1979-p11" /> * [[Intel 8237|8237]] – DMA Controller * [[Intel 8251|8251]] – [[Universal synchronous and asynchronous receiver-transmitter|USART]] Communication Controller * [[Intel 8253|8253]] – [[Programmable Interval Timer]] * 8254 – Programmable Interval Timer. The 82C54 CMOS version was outsourced to [[Oki Electric Industry|Oki Electronic Industry Co., Ltd]].<ref>Intel Corporation, "NewsBit: Intel Licenses Oki on CMOS Version of Several Products", Solutions, July/August 1984, Page 1.</ref> * [[Intel 8255|8255]] – Programmable Peripheral Interface * 8256 – Multifunction Peripheral. This multifunction chip uses [[Universal asynchronous receiver-transmitter|Serial Communications]], [[Parallel I/O]], [[Counter (digital)|Counter]]/Timers and [[Interrupt]]s. The Intel 8256AH was available for {{USD|21.40}} in quantities of 100.<ref>Intel Corporation, "New Product Focus Components: Peripheral Vision: The 8256AH Combines Four Chips In One", Solutions, July/August 1984, Page 13.</ref> This integrated circuit chip integrates the chips with the following functionality: ** [[Intel 8251]]A Programmable Communications Interface ** [[Intel 8253]] Programmable Interval Timer ** [[Intel 8255]]A Programmable Peripheral Interface ** [[Intel 8259A]] Programmable Interrupt Controller. * [[Intel 8257|8257]] – [[DMA controller|DMA Controller]] * [[Intel 8259|8259]] – [[Programmable Interrupt Controller]] * 8271 – Programmable Floppy Disk Controller * [[NEC μPD765|8272]] – Single/Double Density Floppy Disk Controller. It is compatible with [[IBM 3740]] and [[System 34]] formats and provides both [[Frequency Modulation]] (FM) or [[Modified Frequency Modulation]] (MFM). This version was available for {{USD|38.10}} in quantities of 100.<ref name="May/June 1980">Intel Corporation, "Intel peripherals enhance 8086 system design", Intel Preview Special Issue: 16-Bit Solution, May/June 1980, p. 22.</ref> * 8273 – Programmable [[HDLC]]/[[Synchronous Data Link Control|SDLC]] Protocol Controller. This device supports ISO/[[CCITT]]'s HDLC and IBM's SDLC communication protocols. These were available for {{USD|33.75}} ({{val|4|u=MHz}}) and {{USD|30.00}} ({{val|8|u=MHz}}) in quantities of 100.<ref name="May/June 1980" /> * 8274 – Multi-Protocol Serial Controller. This support three different protocols using the following feature of Asynchronous Operation, Byte Synchronous Operation and Bit Synchronous Operation. The Byte Synchronous mode is compatible to IBM's [[BiSync|Bisync]] signal protocol. The Bit Synchronous mode is compatible to IBM's [[Synchronous Data Link Control|SDLC]] and the International Standards Organization's [[HDLC]] protocol and is compatible with [[X.25|CCITT X.25]] international standard as well. It was packaged in 40-pin product using the Intel's [[Depletion-load NMOS logic#Intel HMOS|HMOS]] technology. The available version is rated up to 880 kilobaud for {{USD|30.30}} in the quantities of 100.<ref>Intel Corporation, "New Products: High-Speed Controller Supports Three Protocols", Solutions, July/August 1981, Page 18</ref> NEC μPD7201 was also compatible. * 8275 – Programmable CRT Controller. It refreshes the raster scan display by buffering from main memory and keeping track of the display portion. This version was available for {{USD|32.00}} in quantities of 100.<ref name="May/June 1980" /> * 8276 – Small System CRT Controller * 8278 – Programmable Key Board Interface * [[Intel 8279|8279]] – Key Board/Display Controller * [[Intel 8282|8282]] – 8-bit Non-Inverting Latch with Output Buffer * [[Intel 8283|8283]] – 8-bit Inverting Latch with Output Buffer * 8291 – [[GPIB]] Talker/Listener. This controller can operate from 1 to {{val|8|u=MHz}}. It was available for {{USD|23.75}} in quantities of 100.<ref name="May/June 1980" /> * 8292 – [[IEEE-488|GPIB]] Controller. Designed around Intel 8041A which it has been programmed as an controller interface element. It also controls the bus using three lock-up timers to detect issues on the GPIB bus interface. It was available for {{USD|21.25}} in quantities of 100.<ref name="May/June 1980" /> * 8293 – GPIB Transceiver. This chipset supports up to 4 different modes: Mode 0 Talker/Listener Control Lines, Mode 1 Talker/Listener/Controller Control Lines, Mode 2 Talker/Listener/Controller Data Lines, and Mode 3 Talker/Listener Data Lines. It was available for {{USD|11.50}} in quantities of 100. At the time of release, it was available in samples then full production in the first quarter of 1980.<ref>Intel Corporation, "Feature: 8293 Transceiver completes Intel GPIB family", Intel Preview, January/February 1980, p. 13.</ref> * 8294 – Data Encryption/Decryption Unit + 1 O/P Port. It encrypts and decrypts 64-bit blocks of data using the [[Federal Information Processing Standards|Federal Information Processing Data Encryption Standard]] algorithm. This also uses the [[National Bureau of Standards]] encryption algorithm. This DEU operates using a 56-bit user-specified key to generate 64-bit cipher words. It was available for {{USD|22.50}} in quantities of 100.<ref name="May/June 1980" /> * 8295 – Dot Matrix Printer Controller. This interfaces with LRC 7040 Series [[dot matrix printer]]s and other small printers as well. It was available for {{USD|20.65}} in quantities of 100.<ref name="May/June 1980" /> ==Educational use== In many engineering schools the 8085 processor is used in introductory microprocessor courses. Trainer kits composed of a printed circuit board, 8085, and supporting hardware are offered by various companies. These kits usually include complete documentation allowing a student to go from soldering to assembly language programming in a single course. Also, the architecture and instruction set of the 8085 are easy for a student to understand. Shared Project versions of educational and hobby 8085-based [[single-board computer]]s are noted below in the External Links section of this article. ==Simulators== Software simulators are available for the 8085 microprocessor, which allow simulated execution of opcodes in a graphical environment. ==See also== * [[IBM System/23 Datamaster]] gave IBM designers familiarity with the 8085 support chips used in the [[IBM PC]]. ==Notes== {{reflist|group="nb"}} ==References== {{Reflist}} ==Further reading== ;Books * {{cite book |first=William |last=Stallings |title=Computer Organization and Architecture: Designing for Performance |edition=8th |publisher=Prentice Hall |year=2009 |isbn=978-0-13-607373-4}} * {{cite book |first1=Abhishek |last1=Yadav |title=Microprocessor 8085, 8086 |publisher=Firewall Media |year=2008 |isbn=978-81-318-0356-1}} * {{cite book |first1=Ramesh |last1=Gaonkar |title=Microprocessor Architecture, Programming and Applications with the 8085 |publisher=Penram International Publishing |date=December 2000|isbn=81-87972-09-2}} * Bill Detwiler ''Tandy TRS-80 Model 100 Teardown'' Tech Republic, 2011 Web * {{cite book| title=8080A/8085 Assembly Language Programming |edition=1st |first=Lance |last=Leventhal |publisher=Adam Osborne & Associates |year=1978 |url=https://archive.org/details/8080a8085AssemblyLanguageProgramming/ }}{{dead link|date=November 2021}}; 495 pages * {{cite book| title=Microprocessor Interfacing Techniques |edition=3rd |first1=Rodnay |last1=Zaks |first2=Austin |last2=Lesea |publisher=Sybex |year=1979 |isbn=978-0-89588-029-1 |url=https://archive.org/details/MicroprocessorInterfacingTechniques_3rd_ed/ }}; 466 pages * {{cite book|title=Understanding 8085/8086 Microprocessors and Peripheral ICs Through Questions and Answers|edition=2nd |first1=S.K. |last1=Sen |publisher=New Age International Publishers |year=2010|isbn=978-8122429749 |url=https://archive.org/details/Understanding80858086Microprocessors/ }}{{dead link|date=November 2021}}; 303 pages ;Reference Cards * ''Intel 8085 Reference Card''; Saundby; 2 pages. <small>[http://saundby.com/electronics/8085/8085Ref.pdf (archive)]</small> * [https://sbc-85.com/download/8085-reference-card-hex/ Intel 8080 / 8085 Assembly Reference Card (HEX opcodes)] ==External links== * {{cite web |first=Ken |last=Shirriff |title=Reverse-engineering the 8085's ALU and its hidden registers |date=July 2013 |url=http://www.righto.com/2013/07/reverse-engineering-8085s-alu-and-its.html}} Simulators: * [https://gnusim8085.github.io/ GNUSim8085] - simulator, assembler, debugger Boards: * [https://archive.org/details/bitsavers_intel80859nualJul77_5544585 MCS-85 System Design Kit (SDK-85)] - Intel * [https://www.nutsvolts.com/magazine/article/build-a-pocket-sized-altair-computer Altaids] * [https://SBC-85.COM SBC-85] * [http://www.malinov.com/Home/sergeys-projects/minimax8085 Minimax] * [https://www.glitchwrks.com/2010/09/02/8085-sbc Glitchworks] * [https://github.com/omenmicro/alpha OMEN Alpha] {{Intel processors|discontinued}} {{Authority control}} [[Category:Intel microprocessors|8085]] [[Category:8-bit microprocessors]] [[Category:Computer-related introductions in 1977]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:As of
(
edit
)
Template:Authority control
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:Dead link
(
edit
)
Template:Dubious-span
(
edit
)
Template:Infobox CPU
(
edit
)
Template:Intel processors
(
edit
)
Template:Langx
(
edit
)
Template:Main
(
edit
)
Template:Navbox
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Times
(
edit
)
Template:USD
(
edit
)
Template:Use mdy dates
(
edit
)
Template:Val
(
edit
)