Small-C is both a subset of the C programming language , suitable for resource-limited microcomputers and embedded systems , and an implementation of that subset. Originally valuable as an early compiler for microcomputer systems available during the late 1970s and early 1980s, the implementation has also been useful as an example simple enough for teaching purposes.
86-625: The original compiler, written in Small-C for the Intel 8080 by Ron Cain, appeared in the May 1980 issue of Dr. Dobb's Journal . James E. Hendrix improved and extended the original compiler, and wrote The Small-C Handbook . Ron bootstrapped Small-C on the SRI International PDP 11 /45 Unix system with an account provided by John Bass for Small C development. The provided source code
172-528: A wave soldering machine and an assembly line at the new location. In January 1972, Popular Electronics merged with another Ziff-Davis magazine, Electronics World . The change in editorial staff upset many of their authors, and they started writing for a competing magazine, Radio-Electronics . In 1972 and 1973, some of the best construction projects appeared in Radio-Electronics . In 1974, Art Salsberg became editor of Popular Electronics . It
258-408: A 16-bit stack pointer to memory, replacing the 8008's internal stack , and a 16-bit program counter . The processor maintains internal flag bits (a status register ), which indicate the results of arithmetic and logical instructions. Only certain instructions affect the flags. The flags are: The carry bit can be set or complemented by specific instructions. Conditional-branch instructions test
344-517: A 4K static memory that was plug-in compatible with the Altair 8800 and sold for $ 255. His company was Processor Technology , one of the most successful Altair compatible board suppliers. Their advertisement in the July 1975 issue of Popular Electronics promised interface and PROM boards in addition to the 4K memory board. They would later develop a popular video display board that would plug directly into
430-525: A computed pointer can be executed with PCHL . LHLD loads HL from directly addressed memory and SHLD stores HL likewise. The XCHG instruction exchanges the values of the HL and DE register pairs. XTHL exchanges last item pushed on stack with HL. then if A 4-7 > 9 OR Cy = 1 then A ← A + 0x60 The 8080 supports up to 256 input/output (I/O) ports, accessed via dedicated I/O instructions taking port addresses as operands. This I/O mapping scheme
516-559: A copy of the kit. The calculator was successful and was followed by several improved models. The MITS 1440 calculator was featured in the July 1973 issues of Radio-Electronics . It had a 14-digit display, memory, and square root function. The kit sold for $ 200 and the assembled version was $ 250 . MITS later developed a programmer unit that would connect to the 816 or 1440 calculator and allow programs of up to 256 steps. In 1972, Texas Instruments developed its own calculator chip and started selling complete calculators at less than half
602-453: A corresponding interrupt service routine , but are also often employed as fast system calls . The instruction that executes slowest is XTHL , which is used for exchanging the register pair HL with the value stored at the address indicated by the stack pointer. All 8-bit operations with two operands can only be performed on the 8-bit accumulator (the A register). The other operand can be either an immediate value, another 8-bit register, or
688-472: A decade, colleges had required science and engineering majors to take a course in computer programming, typically using the FORTRAN or BASIC languages. This meant there was a sizable customer base who knew about computers. In 1970, electronic calculators were not seen outside of a laboratory, but by 1974 they were a common household item. Calculators and video games like Pong introduced computer power to
774-562: A kit. The first 50 IMSAI computers shipped in December 1975. The IMSAI 8080 computer improved on the original Altair design in several areas. It was easier to assemble: The Altair required 60 wire connections between the front panel and the motherboard ( backplane ). The IMSAI required only two soldered connections between the front panel and power supply. The MITS motherboard consisted of 4 slot segments that had to be connected together with 100 wires. The IMSAI motherboard implemented 22 slots on
860-411: A larger number of customers. Much of the development effort was spent trying to integrate the functionalities of the 8008's supplemental chips into one package. It was decided early in development that the 8080 was not to be binary-compatible with the 8008, instead opting for source compatibility once run through a transpiler, to allow new software to not be subject to the same restrictions as the 8008. For
946-637: A letter to its sales force stating that the MITS Altair 8800 computer used standard Intel 8080 parts. The sales force should sell the Intellec system based on its merits and that no one should make derogatory comments about valued customers like MITS. The letter was reprinted in the August 1975 issue of MITS Computer Notes. The "cosmetic defect" rumor has appeared in many accounts over the years although both MITS and Intel issued written denials in 1975. For
SECTION 10
#17328020050271032-479: A memory address, or a port number. Like more advanced processors, it has automatic CALL and RET instructions for multi-level procedure calls and returns (which can even be conditionally executed, like jumps) and instructions to save and restore any 16-bit register pair on the machine stack. Eight one-byte call instructions ( RST ) for subroutines exist at the fixed addresses 00h, 08h, 10h, ..., 38h. These are intended to be supplied by external hardware in order to invoke
1118-456: A memory byte addressed by the 16-bit register pair HL. Increments and decrements can be performed on any 8 bit register or an HL-addressed memory byte. Direct copying is supported between any two 8-bit registers and between any 8-bit register and an HL-addressed memory byte. Due to the regular encoding of the MOV instruction (using a quarter of available opcode space), there are redundant codes to copy
1204-509: A modest success and MITS wanted to try a kit that would appeal to more hobbyists. The November 1970 issue of Popular Electronics featured the Opticom, a kit from MITS that would send voice over an LED light beam. As Mims and Cagle were losing interest in the kit business, Roberts bought his partners out, then began developing a calculator kit. Electronic Arrays had just announced the EAS100,
1290-706: A register into itself ( MOV B,B , for instance), which are of little use, except for delays. However, the systematic opcode for MOV M,M is instead used to encode the halt ( HLT ) instruction, halting execution until an external reset or interrupt occurs. Although the 8080 is generally an 8-bit processor, it has limited abilities to perform 16-bit operations. Any of the three 16-bit register pairs (BC, DE, or HL, referred to as B, D, H in Intel documents) 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 ). By adding HL to itself, it
1376-417: A self-made simulator for the 8080 on a PDP-10 mainframe computer . They figured that they had 30 days before someone else beat them to the punch, and once they had a version working on the simulator, Allen flew to Albuquerque to deliver the program, Altair BASIC (aka MITS 4K BASIC), on a paper tape . The first time it was run, it displayed "READY", then Allen typed "PRINT 2+2", and it immediately printed
1462-534: A serial interface board and at least one or two 4096 word memory boards, depending on the language variant. MITS Price List, Popular Electronics , August 1975. MITS had no competition in the US for the first half of 1975. Their 4K memory board used dynamic RAM and it had several design problems. The delay in shipping optional boards and the problems with the 4K memory board created an opportunity for outside suppliers. An enterprising Altair owner, Robert Marsh, designed
1548-474: A set of six large scale integrated (LSI) circuit chips that would make a four-function calculator. The MITS 816 calculator kit used the chipset and was featured on the November 1971 cover of Popular Electronics . This calculator kit sold for $ 175 , or $ 275 assembled. Forrest Mims wrote the assembly manual for this kit and many others over the next several years. As payment for each manual he often accepted
1634-492: A single segment. The IMSAI replaced the Altair's one-shot clock generator with the Intel 8224. The IMSAI also had a larger power supply to handle the increasing number of expansion boards used in typical systems. The IMSAI advantage was short lived because MITS had recognized these shortcomings and developed the Altair 8800B, which was introduced in June 1976. In 1977, Pertec Computer Corporation purchased MITS and began to market
1720-769: A terminal Altair could be programmed using its front-panel switches. While serving at the Air Force Weapons Laboratory at Kirtland Air Force Base , Ed Roberts and Forrest M. Mims III decided to use their electronics background to produce small kits for model rocket hobbyists. In 1969, Roberts and Mims, along with Stan Cagle and Robert Zaller, founded Micro Instrumentation and Telemetry Systems (MITS) in Roberts' garage in Albuquerque, New Mexico , and started selling radio transmitters and instruments for model rockets. The model rocket kits were
1806-529: A two-piece case. The backplane and power supply were mounted on a base plate, along with the front and rear of the box. The "lid" was shaped like a C, forming the top, left, and right sides of the box. The front panel , which was inspired by the Data General Nova minicomputer, included a large number of toggle switches to feed binary data directly into the memory of the machine, and a number of red LEDs to read those values back out. Programming
SECTION 20
#17328020050271892-501: A wider variety of support chips were available; its instruction set was enhanced over the 8008; and its full 16-bit address bus (versus the 14-bit one of the 8008) enabled it to access 64 KB of memory, four times more than the 8008's range of 16 KB. It was used in the Altair 8800 and subsequent S-100 bus personal computers until it was replaced by the Z80 in this role, and was
1978-843: Is also supported by NEC's V30 (a similarly enhanced 8086 clone). Thus, the 8080, via its instruction set architecture (ISA), made a lasting impact on computer history. A number of processors compatible with the Intel 8080A were manufactured in the Eastern Bloc : the KR580VM80A (initially marked as КР580ИК80) in the Soviet Union , the MCY7880 made by Unitra CEMI in Poland , the MHB8080A made by TESLA in Czechoslovakia ,
2064-469: Is for a subroutine named memcpy that copies a block of data bytes of a given size from one location to another. The data block is copied one byte at a time, and the data movement and looping logic utilizes 16-bit operations. The address bus has its own 16 pins, and the data bus has 8 pins that are usable without any multiplexing. Using the two additional pins (read and write signals), it is possible to assemble simple microprocessor devices very easily. Only
2150-464: Is indeed addressed as if they were memory cells, "memory-mapped", leaving the I/O commands unused. I/O addressing can also sometimes employ the fact that the processor outputs 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 are used in the backward-compatible Zilog Z80 and Intel 8085, and
2236-519: Is 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 arithmetic (or larger), needed to implement floating-point arithmetic . BC, DE, HL, or PSW can be copied to and from the stack using PUSH and POP . A stack frame can be allocated using DAD SP and SPHL . A branch to
2322-474: Is regarded as an advantage, as it frees up the processor's limited address space. Many CPU architectures instead use so-called memory-mapped I/O (MMIO), in which a common address space is used for both RAM and peripheral chips. This removes 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
2408-486: Is that the Altair was originally going to be named the PE-8 (Popular Electronics 8-bit), but Les Solomon thought this name to be rather dull, so Les, Alexander Burawa (associate editor), and John McVeigh (technical editor) decided that: "It's a stellar event, so let's name it after a star." McVeigh suggested " Altair ", the twelfth brightest star in the sky. Ed Roberts had designed and manufactured programmable calculators and
2494-499: Is the primary 8-bit accumulator. The other six registers can be used as either individual 8-bit registers or in three 16-bit register pairs (BC, DE, and HL, referred to as B, D and H in Intel documents) depending on the particular instruction. Some instructions also enable the HL register pair to be used as a (limited) 16-bit accumulator. A pseudo-register M, which refers to the dereferenced memory location pointed to by HL, can be used almost anywhere other registers can be used. The 8080 has
2580-443: Is the successor to the 8008 . It uses the same basic instruction set and register model as the 8008, although it is neither source code compatible nor binary code compatible with its predecessor. Every instruction in the 8008 has an equivalent instruction in the 8080. The 8080 also adds 16-bit operations in its instruction set. Whereas the 8008 required the use of the HL register pair to indirectly access its 14-bit memory space,
2666-516: The BASIC programming language for the machine. He called the company and reached a private home, where no one had heard of anything like BASIC. In fact the letter had been sent by Bill Gates and Paul Allen from the Boston area, and they had no BASIC yet to offer. When they called Roberts to follow up on the letter he expressed his interest, and the two started work on their BASIC interpreter using
Small-C - Misplaced Pages Continue
2752-565: The Intellec-8 Microprocessor Development System that typically sold for a very profitable $ 10,000 . It was functionally similar to the Altair 8800 but it was a commercial grade system with a wide selection of peripherals and development software. Customers would ask Intel why their Intellec-8 was so expensive when that Altair was only $ 400 . Some salesmen said that MITS was getting cosmetic rejects or otherwise inferior chips. In July 1975, Intel sent
2838-489: The Railway Express Agency . However, it never arrived due to a strike by the shipping company. Solomon already had a number of pictures of the machine and the article was based on them. Roberts got to work on building a replacement. The computer on the magazine cover is an empty box with just switches and LEDs on the front panel. The finished Altair computer had a completely different circuit board layout than
2924-506: The x86 and DOS for the PC a decade later). In 1979, even after the 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. The first single-board microcomputers , such as MYCRO-1 and the dyna-micro / MMD-1 (see: Single-board computer ) were based on the Intel 8080. One of the early uses of
3010-523: The +12 V pin being connected to +5 V and the −5 V pin to ground. The pin-out table, from the chip's accompanying documentation, describes the pins as follows: A key factor in the success of the 8080 was the broad range of support chips available, providing serial communications, counter/timing, input/output, direct memory access, and programmable interrupt control amongst other functions: The 8080 integrated circuit uses non-saturated enhancement-load nMOS gates, demanding extra voltages (for
3096-493: The 8080 added addressing modes to allow direct access to its full 16-bit memory space. The internal 7-level push-down call stack of the 8008 was replaced by a dedicated 16-bit stack-pointer (SP) register. The 8080's 40-pin DIP packaging permits it to provide a 16-bit address bus and an 8-bit data bus , enabling access to 64 KiB (2 bytes) of memory. The processor has seven 8-bit registers (A, B, C, D, E, H, and L), where A
3182-406: The 8080 microprocessor. The first commercially-available arcade video game to incorporate a microprocessor was Gun Fight , Midway Games ' 8080-based reimplementation of Taito 's discrete-logic Western Gun , which was released in November 1975. (A pinball machine which incorporated a Motorola 6800 processor, The Spirit of '76 , had already been released the previous month. ) The 8080
3268-531: The 8080 saw greater success in a wider set of applications, and is largely credited with starting the microcomputer industry. Several factors contributed to its popularity: its 40-pin package made it easier to interface than the 18-pin 8008, and also made its data bus more efficient; its NMOS implementation gave it faster transistors than those of the P-type metal–oxide–semiconductor logic (PMOS) 8008, while also simplifying interfacing by making it TTL-compatible ;
3354-647: The 8080 was made in the late 1970s by Cubic-Western Data of San Diego, California, in its Automated Fare Collection Systems custom designed for mass transit systems around the world. An early industrial use of the 8080 is as the "brain" of the DatagraphiX Auto-COM (Computer Output Microfiche) line of products which takes large amounts of user data from reel-to-reel tape and images it onto microfiche. The Auto-COM instruments also include an entire automated film cutting, processing, washing, and drying sub-system. Several early video arcade games were built around
3440-603: The 8080APC made by Tungsram / MEV in Hungary , and the MMN8080 made by Microelectronica Bucharest in Romania . As of 2017 , the 8080 is still in production at Lansdale Semiconductors. The 8080 also changed how computers were created. When the 8080 was introduced, computer systems were usually created by computer manufacturers such as Digital Equipment Corporation , Hewlett-Packard , or IBM . A manufacturer would produce
3526-511: The Altair name, which editor Les Solomon later told the audience at the first Altair Computer Convention (March 1976), is that the name was inspired by Les's 12-year-old daughter, Lauren. "She said why don't you call it Altair – that's where the Enterprise is going tonight." The Star Trek episode is probably " Amok Time ", as this is the only one from The Original Series which takes the Enterprise crew to Altair (Six). Another explanation
Small-C - Misplaced Pages Continue
3612-458: The Altair via the front panel could be a tedious and time-consuming process. Programming required the toggling of the switches to positions corresponding to the desired 8080 microprocessor instruction or opcode in binary, then used the "DEPOSIT NEXT" switch to load that instruction into the next address of the machine's memory. This step was repeated until all the opcodes of a presumably complete and correct program were in place. The only output from
3698-596: The Altair. A consulting company in San Leandro, California, IMS Associates, Inc. , wanted to purchase several Altair computers, but the long delivery time convinced them that they should build their own computers. In the October 1975 issue of Popular Electronics , a small advertisement announced the IMSAI 8080 computer. The ad noted that all boards were " plug compatible " with the Altair 8800. The computer cost $ 439 as
3784-675: The Canadian company Micro Computer Machines); the National Semiconductor IMP-8 and IMP-16 required external hardware; the Motorola 6800 was still in development. So he chose the 8-bit Intel 8080 . At that time, Intel's main business was selling memory chips by the thousands to computer companies. They had no experience in selling small quantities of microprocessors. When the 8080 was introduced in April 1974, Intel set
3870-514: The January issue of Popular Electronics , MITS was flooded with inquiries and orders. They had to hire extra people just to answer the phones. In February MITS received 1,000 orders for the Altair 8800. The quoted delivery time was 60 days but it was months before they could meet that. Roberts focused on delivering the computer; all of the options would wait until they could keep pace with the orders. MITS claimed to have delivered 2,500 Altair 8800s by
3956-489: The January launch date. So during the construction of the second model, he decided to build most of the machine on removable cards, reducing the motherboard to nothing more than an interconnect between the cards, a backplane . The basic machine consisted of five cards, including the CPU on one and memory on another. He then looked for a cheap source of connectors and came across a supply of 100-pin edge connectors . The S-100 bus
4042-426: The July 1974 cover of Radio-Electronics . The computer trainer was put on hold and the editors looked for a real computer system. ( Popular Electronics gave Jerry Ogden a column, Computer Bits , starting in June 1975.) One of the editors, Les Solomon, knew MITS was working on an Intel 8080 based computer project and thought Roberts could provide the project for the always popular January issue. The TV Typewriter and
4128-565: The Mark-8 computer projects were just a detailed set of plans and a set of bare printed circuit boards. The hobbyist faced the daunting task of acquiring all of the integrated circuits and other components. The editors of Popular Electronics wanted a complete kit in a professional-looking enclosure. Ed Roberts and his head engineer, Bill Yates, finished the first prototype in October 1974 and shipped it to Popular Electronics in New York via
4214-715: The UNIX C Standard I/O Library—the ones that pertained to the CP/M environment. This became version 2.1 and the subject of The Small C Handbook. Intel 8080 The Intel 8080 ( "eighty-eighty" ) is the second 8-bit microprocessor designed and manufactured by Intel . It first appeared in April 1974 and is an extended and enhanced variant of the earlier 8008 design, although without binary compatibility . Although earlier microprocessors were commonly used in mass-produced devices such as calculators , cash registers , computer terminals , industrial robots , and other applications,
4300-491: The Z80. At Intel, the 8080 was followed by the compatible and electrically more elegant 8085 . 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. Later NEC made the NEC V20 (an 8088 clone with Intel 80186 instruction set compatibility) which also supports an 8080 emulation mode. This
4386-426: The back-end code generator and the library to operating system interface calls be rewritten for the target processor. "In May of 1980 Dr. Dobb's Journal ran an article entitled "A Small C Compiler for the 8080s" in which Ron Cain presented a small compiler for a subset of the C language. The most interesting feature of the compiler besides its small size was the language in which it was written—the one it compiled. It
SECTION 50
#17328020050274472-511: The bitwise logical operators & (AND) and | (OR) were used instead. But even with these limitations, it was a very capable language and a delight to use, especially compared to assembly language. Recognizing the need for improvements, Ron encouraged me to produce a second version, and in December 1982 it also appeared in Dr. Dobb's Journal. The new compiler augmented Small C with (1) code optimizing, (2) data initializing, (3) conditional compiling, (4)
4558-460: The closely related x86 microprocessor families. One of the bits in the processor state word (see below) indicates that the processor is accessing data from the stack. Using this signal, it is possible to implement a separate stack memory space. This feature is seldom used. For more advanced systems, during the beginning of each machine cycle, the processor places an eight bit status word on the data bus. This byte contains flags that determine whether
4644-482: The computer, without changes (except for branding), as the PCC 8800 in 1978. In the first design of the Altair, the parts needed to make a complete machine would not fit on a single motherboard , and the machine consisted of four boards stacked on top of each other with stand-offs. Another problem facing Roberts was that the parts needed to make a truly useful computer were not available, or would not be designed in time for
4730-472: The cover of the January 1975 issue of Popular Electronics and was sold by mail order through advertisements there, in Radio-Electronics , and in other hobbyist magazines. According to Harry Garland, the Altair 8800 was the product that catalyzed the microcomputer revolution of the 1970s . It was the first commercially successful personal computer. The computer bus designed for the Altair
4816-433: The end of May. The number was over 5,000 by August 1975. MITS had under 20 employees in January but had grown to 90 by October 1975. The Altair 8800 computer was a break-even sale for MITS. They needed to sell additional memory boards, I/O boards and other options to make a profit. The system came with a "1024 word" (1024 byte) memory board populated with 256 bytes. The BASIC language was announced in July 1975 and required
4902-408: The extern storage class, (5) the for, do/while, switch, and goto statements, (6) combination assignment operators, (7) Boolean operators, (8) the ones' complement operator, (9) block local variables, and (10) various other features. Then in 1984 Ernest Payne and I developed and published a CP/M compatible run-time library for the compiler. It consisted of over 80 functions and included most of those in
4988-442: The general public. Electronics hobbyists were moving on to digital projects such as digital voltmeters and frequency counters. The Altair had enough power to be actually useful, and was designed as an expandable system that opened it up to all sorts of applications. Ed Roberts optimistically told his banker that he could sell 800 computers, while in reality they needed to sell 200 over the next year just to break even. When readers got
5074-543: The i8228 bus controller. The 8080 is implemented in N-type metal–oxide–semiconductor logic (NMOS) using non-saturated enhancement mode transistors as loads thus demanding a +12 V and a −5 V voltage in addition to the main transistor–transistor logic (TTL) compatible +5 V. Microprocessor customers were reluctant to adopt the 8008 because of limitations such as the single addressing mode, low clock speed, low pin count, and small on-chip stack, which restricted
5160-403: The layout in August 1973. After the development of NMOS logic fabrication, a prototype of the 8080 was completed in January 1974. It had a flaw, in that driving with standard TTL devices increased the ground voltage because high current flowed into the narrow line. Intel had already produced 40,000 units of the 8080 at the direction of the sales section before Shima characterized the prototype. It
5246-411: The load-gate bias). It was manufactured in a silicon gate process using a minimal feature size of 6 μm. A single layer of metal is used to interconnect the approximately 4,500 transistors in the design, but the higher resistance polysilicon layer, which required higher voltage for some interconnects, is implemented with transistor gates. The die size is approximately 20 mm . The 8080
SECTION 60
#17328020050275332-446: The memory or I/O port is accessed and whether it is necessary to handle an interrupt. The interrupt system state (enabled or disabled) is also output on a separate pin. For simple systems, where the interrupts are not used, it is possible to find cases where this pin is used as an additional single-bit output port (the popular Radio-86RK computer made in the Soviet Union , for instance). The following 8080/8085 assembler source code
5418-413: The original target CPU for CP/M operating systems developed by Gary Kildall . The 8080 directly influenced the later x86 architecture . Intel designed the 8086 to have its assembly language be similar enough to the 8080, with most instructions mapping directly onto each other, that transpiled 8080 assembly code could be executed on the 8086. The initial specified clock rate or frequency limit
5504-416: The permission to develop it nine months later. Faggin hired Masatoshi Shima , who helped design the logic of the 4004 with him, from Japan in November 1972. Shima did the detailed design under Faggin's direction, using the design methodology for random logic with silicon gate that Faggin had created for the 4000 family and the 8008. The 8080 was explicitly designed to be a general-purpose microprocessor for
5590-508: The price of other commercial models. MITS and many other companies were devastated by this, and Roberts struggled to reduce his quarter-million-dollar debt. In addition to calculators, MITS made a line of test equipment kits. These included an IC tester, a waveform generator, a digital voltmeter, and several other instruments. To keep up with the demand, MITS moved into a larger building at 6328 Linn NE in Albuquerque in 1973. They installed
5676-416: The programs was the patterns of lights on the panel. Nevertheless, many were sold in this form. Development was already underway on additional cards, including a paper tape reader for storage, additional RAM cards, and an RS-232 interface to connect to a proper teletype terminal . Ed Roberts received a letter from Traf-O-Data asking whether he would be interested in buying what would eventually be
5762-452: The prototype shown in the magazine. The January 1975 issues appeared on newsstands a week before Christmas of 1974 and the kit was officially (if not yet practically) available for sale. The typical MITS product had a generic name like the " Model 1440 Calculator " or the " Model 1600 Digital Voltmeter ". Ed Roberts was busy finishing the design and left the naming of the computer to the editors of Popular Electronics . One explanation of
5848-399: The registers named A , B , C , and D and many of the flags used to control conditional jumps. 8080 assembly code can still be directly translated into x86 instructions, since all of its core elements are still present. Altair 8800 The Altair 8800 is a microcomputer designed in 1974 by MITS and based on the Intel 8080 CPU . Interest grew quickly after it was featured on
5934-478: The same reason, as well as to expand the capabilities of stack-based routines and interrupts, the stack was moved to external memory. Noting the specialized use of general-purpose registers by programmers in mainframe systems, Faggin with Shima and Stanley Mazor decided the 8080's registers would be specialized, with register pairs having a different set of uses. This also allowed the engineers to more effectively use transistors for other purposes. Shima finished
6020-432: The scale and complexity of software. There were several proposed designs for the 8080, ranging from simply adding stack instructions to the 8008 to a complete departure from all previous Intel architectures. The final design was a compromise between the proposals. Federico Faggin , the originator of the 8080 architecture in early 1972, proposed the chip to Intel's management and pushed for its implementation. He finally got
6106-428: The separate IO space, interrupts, and DMA need added chips to decode the processor pin signals. However, the pin load capacity is limited; even simple computers often require bus amplifiers. The processor needs three power sources (−5, +5, and +12 V) and two non-overlapping high-amplitude synchronizing signals. However, at least the late Soviet version КР580ВМ80А was able to work with a single +5 V power source,
6192-416: The single unit price at $ 360 ($ 2220 in 2023). "That figure had a nice ring to it," recalled Intel's Dave House in 1984. "Besides, it was a computer, and they usually cost thousands of dollars, so we felt it was a reasonable price." Ed Roberts had experience in buying OEM quantities of calculator chips and he was able to negotiate a $ 75 price ($ 460 in 2023) for the 8080 microprocessor chips. Intel made
6278-449: The various flag status bits. The accumulator and the flags together are called the PSW, or program status word. PSW can be pushed to or popped from the stack. As with many other 8-bit processors, all instructions are encoded in one byte (including register numbers, but excluding immediate data), for simplicity. Some can be followed by one or two bytes of data, which can be an immediate operand,
6364-463: The whole computer, including processor, terminals, and system software such as compilers and operating system. The 8080 was designed for almost any application except a complete computer system. Hewlett-Packard developed the HP 2640 series of smart terminals around the 8080. The HP 2647 is a terminal which runs the programming language BASIC on the 8080. Microsoft 's founding product, Microsoft BASIC ,
6450-431: Was 2 MHz , with common instructions using 4, 5, 7, 10, or 11 clock cycles. As a result, the processor is able to execute several hundred thousand instructions per second . Two faster variants, the 8080A-1 and 8080A-2, became available later with clock frequency limits of 3.125 MHz and 2.63 MHz respectively. The 8080 needs two support chips to function in most applications: the i8224 clock generator/driver and
6536-484: Was Salsberg's goal to reclaim the lead in electronics projects. He was impressed with Don Lancaster 's TV Typewriter ( Radio Electronics , September 1973) article and wanted computer projects for Popular Electronics . Don Lancaster did an ASCII keyboard for Popular Electronics in April 1974. They were evaluating a computer trainer project by Jerry Ogden when the Mark-8 8008 -based computer by Jonathan Titus appeared on
6622-423: Was a self-compiler! (Although this is commonplace today, it was a fairly novel idea at the time.) With a simple, one-pass algorithm, his compiler generated assembly language for the 8080 processor. Being small, however, it had its limitations. It recognized only characters, integers, and single dimension arrays of either type. The only loop controlling device was the while statement. There were no Boolean operators, so
6708-456: Was eventually acknowledged by the professional computer community and adopted as the IEEE-696 computer bus standard. The Altair bus consists of the pins of the Intel 8080 run out onto the backplane. No particular level of thought went into the design, which led to disasters such as shorting from various power lines of differing voltages being located next to each other. Another oddity
6794-583: Was familiar with the microprocessors available in 1974. He thought the Intel 4004 and Intel 8008 were not powerful enough (in fact several microcomputers based on Intel chips were already on the market: the Canadian company Microsystems International 's CPS-1 built-in 1972 used a MIL MF7114 chip modeled on the 4004, the Micral marketed in January 1973 by the French company R2E and the MCM/70 marketed in 1974 by
6880-425: Was originally programmed for the 8080. The 8080 and 8085 gave rise to the 8086, which was designed as a source code compatible , albeit not binary compatible , extension of the 8080. This design, in turn, later spawned the x86 family of chips, which continue to be Intel's primary line of processors. Many of the 8080's core machine instructions and concepts survive in the widespread x86 platform. Examples include
6966-487: Was released as requiring Low-power Schottky TTL (LS TTL) devices. The 8080A fixed this flaw. Intel offered an instruction set simulator for the 8080 named INTERP/80 to run compiled PL/M programs. It was written in FORTRAN IV by Gary Kildall while he worked as a consultant for Intel. There is only one patent on the 8080 with the following names: Federico Faggin, Masatoshi Shima, Stanley Mazor. The Intel 8080
7052-414: Was released with management permission into the public domain . Small-C was important for tiny computers in a manner somewhat analogous to the importance of GCC for larger computers. Just like its Unix counterparts, the compiler generates assembler code , which then must be translated to machine code by an available assembler . Small-C is a retargetable compiler . Porting Small-C requires only that
7138-533: Was that the system included two unidirectional 8-bit data buses , when the normal practice was for a single bidirectional bus (this oddity did, however, allow a later expansion of the S-100 standard to 16 bits bidirectional by using both 8-bit buses in parallel). A deal on power supplies led to the use of +8 V and ±18 V, which had to be locally regulated on the cards to TTL (+5 V) or RS-232 (±12 V) standard voltage levels. The Altair shipped in
7224-482: Was then used in later Midway arcade video games and in Taito's 1978 Space Invaders , one of the most successful and well-known of all arcade video games. Zilog introduced the Z80 , which has a compatible machine language instruction set and initially used the same assembly language as the 8080, but for legal reasons, Zilog developed a syntactically-different (but code compatible) alternative assembly language for
7310-493: Was to become a de facto standard in the form of the S-100 bus , and the first programming language for the machine was Microsoft 's founding product, Altair BASIC . The Altair 8800 had no built-in screen or video output, so it would have to be connected to a serial terminal (such as a VT100 -compatible terminal) to have any output. To connect it to a terminal a serial interface card had to be installed. Alternatively to using
7396-554: Was used in many early microcomputers, such as the MITS Altair 8800 Computer, Processor Technology SOL-20 Terminal Computer and IMSAI 8080 Microcomputer, forming the basis for machines running the CP/M operating system (the later, almost fully compatible and more able, Zilog Z80 processor would capitalize on this, with Z80 and CP/M becoming the dominant CPU and OS combination of the period c. 1976 to 1983 much as did
#26973