It was written by Gary Kildall while he worked as a consultant for Intel. The Z80 was also faster. ;Jump to 'loop:' if the zero-flag is not set. The interrupt system state (enabled or disabled) is also output on a separate pin. The XCHG[7] instruction exchanges the values of the HL and DE register pairs. It uses the same basic instruction set and register model as the 8008 (developed by Computer Terminal Corporation), even though it is not source code compatible nor binary code compatible with its predecessor. It’s a relatively simple database format that allows for a convenient, portable way to store map tile data. One thing to notice is that, in the cases in which there are two bytes of data for the instruction, we have to present the data from the buffer in reverse order (such as is the case with the LXI operation). I have to point out that the Z80 isn’t a strict superset of the 8080. The processor is requested to switch the data and address bus to the high impedance ("disconnected") state. The 8080 is in our sights today, thanks to [DeviceGuru], who was sent down memory lane by thoughts of the 6502-based KIM-1 from his master’s thesis project. > The hugely popular Zilog Z80 … is fully 8080 code compatible. By then the 8080’s need for several support chips made it somewhat outdated, but from his perspective the chip could be had from Radio Shack without too much outlay. A faster variant 8080A-1 (Sometimes called the 8080B) beca… The old 8080 is what they taught us during my college years in the 80s. It is also used to support the hardware-based step-by step debugging mode. Whereas the 8008 required the use of the HL register pair to indirectly access its 14-bit memory space, the 8080 added addressing modes to allow direct access to its full 16-bit memory space. It seemed only natural to get started by writing a disassembler for the 8080 to get things started. Why, through the DIP pins of course. Wait (indicates that the processor is in the waiting state), The address bus; can switch into high impedance state on demand. The HP 2647 is a terminal which runs the programming language BASIC on the 8080. Due to the regular encoding of the MOV instruction (using a quarter of available 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. With that in mind, let’s set up the basic program structure: This code should be pretty straightforward, so I won’t spend too much time going over it. The one you’re most likely to run into is that the Z80 overloads the 8080’s P flag to report overflow in arithmetic operations. This led to memories of the 8080 Abie computer that he built for himself in 1979, for which he provides us some details and hand-drawn schematics. Prof. Sirichote has a whole bunch of trainers for all kinds of different CPUs, including Z80, 6502, 8086, etc, Many of Intel's main phone numbers also take a similar form: xxx-xxx-8080, This page was last edited on 12 October 2020, at 21:05. The 8080's large 40-pin DIP packaging permits it to provide a 16-bit address bus and an 8-bit data bus, allowing easy access to 64 KiB of memory. Released in 1974, the Intel 8080 microprocessor was the second of the 8-bit microprocessor chips released by Intel. Bidirectional data bus. ; DE - Address of source data block, ; HL - Address of target data block, ;Copy B to A (so as to compare BC with zero). Using the two additional pins (read and write signals), it is possible to assemble simple microprocessor devices very easily. Write (the processor writes to memory or output port). This brings us to our switch statement. SDKs I bought from Don Lancaster a couple of decades ago…, Nope, it was 3 8086 SDKs I bought from DL…, https://en.wikipedia.org/wiki/Intel_System_Development_Kit#/media/File:MYSTEM_86.JPG. The address bus has its own 16 pins, and the data bus has 8 pins that are usable without any multiplexing. It was manufactured in a silicon gate process using a minimal feature size of 6 µm. The Z80’s “normal” interrupt mechanism’s extreme versatility and configurability was unmatched as well, and has not been duplicated since. Thus, the 8080, via its instruction set architecture (ISA), made a lasting impact on computer history. All instructions are encoded using a single byte and it’s a little endian architecture. [DeviceGuru] tells us about the 8080 Microprocessor kit from [Wichit Sirichote] in Thailand which is a single board computer in the 1970s vein, hex keypad and all. Incidentally, I just livecoded an 8080 assembler. The Auto-COM instruments also include an entire automated film cutting, processing, washing, and drying sub-system – quite a feat, both then and in the 21st century, to all be accomplished successfully with only an 8-bit microprocessor running at a clock speed of less than 1 MHz with a 64 KB memory limit. Sends pictures better tho. This signal is required to pass through additional logic before it can be used to write the processor state word from the data bus into some external register, e.g., Direct memory access confirmation. no need for a separate 2-phase clock driver chip, and no need for a bus interface chip. During each iteration of the loop we disassemble the current spot of the buffer and increment the program counter by the amount returned by our disassemble function. As with many other 8-bit processors, all instructions are encoded in one byte (including register numbers, but excluding immediate data), for simplicity. Even though I am one. The hugely popular Zilog Z80 as found in retrocomputers such as the RC2014 is fully mostly 8080 code compatible, indeed some of us learned about microprocessors that way because 8080 books were discounted in 1983 and Z80 ones weren’t. Had much enjoyment getting hands on experience using the MMD1 and MMD2 trainers. Because of the well-known Push Button Get Bacon device. As you might expect, the 8080 hasn’t appeared in many projects here due to its rarity. I think what’s going on here in this switch statement is pretty straightforward. This will hopefully become more clear after we dig into the disassemble function. Additionally, we will need a method that will take a reference to that buffer and the current position in the buffer that will disassemble the current opcode. This is also supported by NEC's V30 (a similarly enhanced 8086 clone). Some instructions also enable the HL register pair to be used as a (limited) 16-bit accumulator, and a pseudo-register M can be used almost anywhere that any other register can be used, referring to the memory address pointed to by the HL pair. Even in 1979 after introduction of the Z80 and 8085 processors, five manufacturers of the 8080 were selling an estimated 500,000 units per month at a price around $3 to $4 each.[10]. When the IBM PC came along we used them with Z80 cards – it seems wired to ‘downgrade’ the 8088 based system to run 8080 development. Only certain instructions affect the flags. We create a pc variable and initialize it to a value of 0. Later Intel issued the assembly-language compatible (but not binary-compatible) 16-bit 8086 and then the 8/16-bit 8088, which was selected by IBM for its new PC to be launched in 1981. The 8080 supports up to 256[8] input/output (I/O) ports, accessed via dedicated I/O instructions taking port addresses as operands. Anyone remember Baby Blue? As with any software project, it’s best if we sit down and do some pre-planning before we just start banging on the keyboard.