The Sinclair QL (for Quantum Leap ) is a personal computer launched by Sinclair Research in 1984, as an upper-end counterpart to the ZX Spectrum .
98-648: The QL was aimed at the serious home user and professional and executive users markets from small to medium-sized businesses and higher educational establishments, but failed to achieve commercial success. While the ZX Spectrum has an 8-bit Zilog Z80 as the CPU, the QL uses a Motorola 68008 . The 68008 is a member of the Motorola 68000 family with 32-bit internal data registers, but an 8-bit external data bus . The QL
196-601: A MOS Technology 8502 . Zilog was later producing a low-power Z80 suitable for the growing laptop computer market of the early 1980s. Intel produced a CMOS 8085 (80C85) used in battery-powered portable computers, such as the Kyocera -designed laptop from April 1983, also sold by Tandy (as TRS-80 Model 100 ), Olivetti, and NEC. In following years, however, CMOS versions of the Z80 (from both Zilog and Japanese manufacturers) would dominate this market as well, in products such as
294-657: A 16-bit address register HL. In the 8080, this pairing was added to the BC and DE pairs as well, while HL was generalized to allow use as a 16-bit accumulator, not just an address register. The 8080 also introduced immediate 16-bit data for BC, DE, HL, and SP loads. Furthermore, direct 16-bit copying between HL and memory was now possible, using a direct address. The Z80 orthogonalized this further by making all 16-bit register pairs, including IX and IY, more general purpose, as well as allowing 16-bit copying directly to and from memory for all of these pairs. The 16-bit IX and IY registers in
392-505: A 68008 chip," Torvalds "despised PCs", but decided in autumn 1990 to purchase a 386 custom-made IBM PC compatible, which he did in January 1991. After Amstrad abandoned the QL in 1986, several companies previously involved in the QL peripherals market stepped in to fill the void. These included CST and DanSoft, creators of the Thor line of compatible systems; Miracle Systems , creator of
490-411: A Motorola 68008 processor clocked at 7.5 MHz, the QL included 128 KiB of RAM , which is officially expandable to 640 KiB and in practice, 896 KB. It can be connected to a monitor or TV for display. Sinclair recommended the " SINCLAIR VISION-QL " RGB monitor for usage with the QL. When connected to a normally-adjusted TV or monitor, the QL's video output overscans horizontally. This
588-417: A byte and two T-states for each occurrence. This naturally makes the index register unavailable for any other use, or else the need to constantly reload it would negate its efficiency. Kilobyte The kilobyte is a multiple of the unit byte for digital information . The International System of Units (SI) defines the prefix kilo as a multiplication factor of 1000 (10 ); therefore, one kilobyte
686-686: A completely rewritten operating system, offering improved speed, with multitasking SuperBASIC interpreters. Tony Tebby went on to produce another updated operating system, SMSQ/E , which has continued to be developed for the Sinclair QL and emulators, offering many more features. Several emulators and virtual QLs became available over time, of which Q-emuLator (Windows/Mac), QPC2 (Windows), SMSQmulator (Java), ZEsarUX (Windows/Mac/Linux) and sQLux (Windows/Mac/Linux) are actively maintained. Several distributions of emulators, applications and information have been produced, of which Black Phoenix and QL/E are
784-405: A copyright on their assembly mnemonics, a new assembly syntax had to be developed for the Z80. This time a more systematic approach was used: These principles made it straightforward to find names and forms for all new Z80 instructions, as well as orthogonalizations of old ones, such as LD BC,1234 . Apart from naming differences, and despite a certain discrepancy in basic register structure,
882-473: A day later, Faggin and Ungermann were kicking around ideas based on "integrated logic" when Ungermann said "how about Zilog?" Faggin immediately agreed, stating they could say it was the "last word in integrated logic". When they met the next day and both immediately recalled it, the company had its name. The first samples were returned from Mostek on March 9, 1976. By the end of the month, they had also completed an assembler -based development system . Some of
980-500: A high-level design, adding several concepts of his own. In particular, he used his experience on NEC minicomputers to add the concept of two sets of processor registers so they could quickly respond to interrupts . Ungerman began the development of a series of related controllers and peripheral chips that would complement the design. Through this period, Shima developed a legendary reputation for being able to convert logic concepts into physical design in realtime; while discussing
1078-600: A keyboard/joystick interface, RS-232 serial receivers and an audio generator. The 8049 was added at a late stage in the QL's design, as the ZX8302 was originally intended to include its functions. Two built-in Microdrive tape-loop cartridge drives provide mass storage, in place of the more expensive floppy disk drives found on similar systems of the era. Microdrives had been introduced for the ZX Spectrum in July 1983, although
SECTION 10
#17327719422421176-466: A low-cost product like this would not be able to compete with a design from a company with its own production lines, like Intel. They then began considering a more complex microprocessor instead, initially known as the Super 80, with the main feature being its use of a +5 V bus instead of the more common −5, +5 and 12 V used by designs like the 8080. The new design was intended to be compatible with
1274-458: A method using only the 8080-model registers. The Z80 also introduced a new signed overflow flag and complemented the fairly simple 16-bit arithmetics of the 8080 with dedicated instructions for signed 16-bit arithmetics. The 8080-compatible registers AF, BC, DE, HL are duplicated as a separate register file in the Z80, where the processor can quickly (four t-states, the least possible execution time for any Z80 instruction) switch from one bank to
1372-609: A month. The QL's CPU , ZX8301 and ZX8302 ASICs and Microdrives form the basis of One Per Desk (OPD). Built by International Computers Limited (ICL), it was also marketed by British Telecom as the Merlin Tonto and by Telecom Australia as the Computerphone . The result of a three-year collaboration between Sinclair Research, ICL and British Telecom, the One Per Desk adds a telephone handset at one end of
1470-720: A number of problems from the start. Early production QLs were shipped with preliminary versions of firmware containing numerous bugs , mainly in SuperBASIC . Part of the firmware was held on an external 16 KiB ROM cartridge also known as the " kludge " or " dongle ", until the QL was redesigned to accommodate the necessary 48 KiB of ROM internally, instead of the 32 KiB initially specified. The QL also suffered from reliability problems of its Microdrives . These problems were later rectified, by Sinclair engineers, especially on Samsung produced models, as well as by aftermarket firms such as Adman Services and TF Services, to
1568-460: A proposed feature, he would often interrupt and state how much room that would take on the chip and veto its addition if it was too large. The first pass at the design was complete by April 1975. Shima had completed a logic layout by the beginning of May. A second version of the logic design was issued on August 7 and the bus details by September 16. Tape-out was completed in November and converting
1666-422: A regular encoding (common with the 8080) is that each of the 8-bit registers can be loaded from themselves (e.g. LD A,A ). This is effectively a NOP . New block transfer instructions can move up to 64 kilobytes from memory to memory or between memory and I/O peripheral ports. Block instructions LDIR and LDDR ( l oa d , i ncrement/ d ecrement, r epeat) use HL to point to the source address, DE to
1764-506: A relative address ( JR instead of JP ) using a signed 8-bit displacement. Only the zero and carry flags can be tested for these new two-byte JR instructions. (All 8080 jumps and calls, conditional or not, are three-byte instructions.) A two-byte instruction specialized for program looping is also new to the Z80: DJNZ ( d ecrement j ump if n on- z ero) takes a signed 8-bit displacement as an immediate operand. The B register
1862-530: A system not using interrupts) it can be used as simply another 8-bit data register. The instructions LD A,R and LD A,I affect the Z80 flags register, unlike all the other LD (load) instructions. The Sign (bit 7) and Zero (bit 6) flags are set according to the data loaded from the Refresh or Interrupt source registers. For both instructions, the Parity/Overflow flag (bit 2) is set according to
1960-553: A total of $ 10 million for the entire industry being spent in all of 1975 (equivalent to $ 57 million in 2023). Someone from Exxon contacted the still-unnamed company, and arranged a meeting that eventually led to them providing an initial $ 500,000 funding in June 1975 (equivalent to $ 2.8 million in 2023). With funding being discussed, and a design to be built, Shima joined in February 1975. Shima immediately set about producing
2058-428: A variable base address (as in recursive stack frames ) and can also reduce code size by removing the need for multiple short instructions using non-indexed registers. However, although they may save speed in some contexts when compared to long/complex "equivalent" sequences of simpler operations, they incur a lot of additional CPU time (e.g., 19 T-states to access one indexed memory location vs. as little as 11 to access
SECTION 20
#17327719422422156-521: A week in order to meet the tight schedule given by the financial investors. The Z80 offered many improvements over the 8080: The Z80 took over from the 8080 and its offspring, the 8085 , in the processor market and became one of the most popular and widely used 8-bit CPUs. Some organizations such as British Telecom remained loyal to the 8085 for embedded applications, owing to their familiarity with it and to its on-chip serial interface and interrupt architecture. Likewise, Zenith Data Systems paired
2254-445: Is 1000 bytes. The internationally recommended unit symbol for the kilobyte is kB . In some areas of information technology , particularly in reference to random-access memory capacity, kilobyte instead typically refers to 1024 (2 ) bytes. This arises from the prevalence of sizes that are powers of two in modern digital memory architectures, coupled with the coincidence that 2 differs from 10 by less than 2.5%. A kibibyte
2352-701: Is 1024 bytes. In the International System of Units (SI) the metric prefix kilo means 1,000 (10 ); therefore, one kilobyte is 1000 bytes. The unit symbol is kB. This is the definition recommended by the International Electrotechnical Commission (IEC). This definition, and the related definitions of the prefixes mega ( 1,000,000 ), giga ( 1,000,000,000 ), etc., are most commonly used for data transfer rates in computer networks , internal bus, hard drive and flash media transfer speeds, and for
2450-440: Is also used as the command-line interpreter . The QL is bundled with an office suite , consisting of a word processor , spreadsheet , database , and business graphics written by Psion . According to Sinclair Research, it was the first mass-market computer with an OS featuring pre-emptive multitasking and a Windows -style operating system, predating Microsoft Windows 95 by 11 years, and Apple Computer Macintosh launch by
2548-488: Is also used for random-access memory capacity, such as main memory and CPU cache size, due to the prevalent binary addressing of memory. The binary meaning of the kilobyte for 1024 bytes typically uses the symbol KB, with an uppercase letter K . The B is sometimes omitted in informal use. For example, a processor with 65,536 bytes of cache memory might be said to have "64 K" of cache. In this convention, one thousand and twenty-four kilobytes (1024 KB)
2646-408: Is capable of switching between two different areas of memory for the frame buffer, thus allowing double buffering . However, this would use 64 KB of the standard machine's 128 KiB of RAM and there is no support for this feature in the QL's original firmware. The alternative and improved operating system Minerva provides full support for the second frame buffer. Internally, the QL comprises
2744-553: Is decremented, and if the result is nonzero, then program execution jumps relative to PC; the flags remain unaltered. To perform an equivalent loop on an 8080 requires separate DEC and conditional jump (to a two-byte absolute address) instructions (totalling four bytes), and the DEC alters the flag register. The index register (IX/IY, often abbreviated XY) instructions can be useful for accessing data organised in fixed heterogenous structures (such as records ) or at fixed offsets relative
2842-499: Is equal to one megabyte (1 MB), where 1 MB is one million bytes. The term 'kilobyte' has traditionally been used to refer to 1024 bytes (2 B). The usage of the metric prefix kilo for binary multiples arose as a convenience, because 1024 is approximately 1000. The binary interpretation of metric prefixes is still prominently used by the Microsoft Windows operating system. Binary interpretation
2940-553: Is equal to one megabyte (1 MB), where 1 MB is 1024 bytes. In December 1998, the IEC addressed such multiple usages and definitions by creating prefixes such as kibi, mebi, gibi, etc., to unambiguously denote powers of 1024. Thus the kibibyte, symbol KiB, represents 2 bytes = 1024 bytes. These prefixes are now part of IEC 80000-13. The IEC further specified that the kilobyte should only be used to refer to 1000 bytes. The International System of Units restricts
3038-510: Is in context unless carefully commented. Thus it is advisable that exchange instructions be used directly and in short discrete code segments. The Zilog Z280 instruction set includes JAF and JAR instructions which jump to a destination address if the alternate registers are in context (thus officially recognizing this programming complication). As on the 8080, 8-bit registers are typically paired to provide 16-bit versions. The 8080 compatible registers are: The new registers introduced with
Sinclair QL - Misplaced Pages Continue
3136-591: Is often referred to as the "alternate register set" (by some, the "primed" register file since the apostrophe character is used to denote them in assembler source code and the Zilog documentation). This emphasizes that only one set is addressable at any time. However, the 8-bit accumulator A with its flag register F is bifurcated from the "general purpose" register pairs HL, DE and BC. This is accomplished with two separate instructions used to swap their accessibilities: EX AF,AF' exchanges only register pair AF with AF', while
3234-591: Is produced and marketed by Derek Stewart (of former D&D Systems). Hardware add-ons such as new developments like the QL-SD (designed by Peter Graf) and reengineered or even expanded 1990s designs such as QubIDE interfaces (by José Leandro Novellón). Trump, Gold & Super Gold Cards (by Tetroid) are still being produced for the original QL. RWAP Software supplies various hardware and software upgrades and spare parts. Patched or reengineered versions of QDOS were produced, most notably Minerva which gradually evolved into
3332-458: Is reputed to have been due to the timing constants in the ZX8301 chip being optimised for the flat-screen CRT display originally intended for the QL. Two video modes are available, 256 × 256 pixels with 8 primary RGB colours and per-pixel flashing, or 512 × 256 pixels with four colours: black, red, green and white. Both screen modes use a 32 KiB framebuffer in main memory. The hardware
3430-561: Is the ZX81 , which lets it keep track of character positions on the TV screen by triggering an interrupt at wrap around (by connecting INT to A6). The interrupt vector register , I , is used for the Z80 specific mode 2 interrupts (selected by the IM 2 instruction). It supplies the high byte of the base address for a 128-entry table of service routine addresses which are selected via an index sent to
3528-414: Is used as the byte counter. The Z80 can input and output any register to an I/O port using register C to designate the port. (The 8080 only performs I/O through the accumulator A, using a direct port address specified in the instruction; a self-modifying code technique is required to use a variable 8080 port address.) The last group of block instructions perform a CP compare operation between
3626-564: The EXX instruction exchanges the three general purpose register pairs HL, DE and BC with their alternates HL', DE' and BC'. Thus the accumulator A can interact independently with any of the general purpose 8-bit registers in the alternate (or primed) register file, or, if HL' contains a pointer to memory, some byte there (DE' and BC' can also transfer 8-bit data between memory and accumulator A). This can become confusing for programmers because after executing EX AF,AF' or EXX what were previously
3724-729: The Amstrad NC100 , Cambridge Z88 and Tandy's own WP-2. Perhaps a key to the initial success of the Z80 was the built-in DRAM refresh, at least in markets such as CP/M and other office and home computers. (Most Z80 embedded systems use static RAM that do not need refresh.) It may also have been its minimalistic two-level interrupt system, or conversely, its general multi-level daisy-chain interrupt system useful in servicing multiple Z80 IO chips. These features allowed systems to be built with less support hardware and simpler circuit board layouts. However, others claim that its popularity
3822-586: The CP/M operating system and Intel's PL/M compiler for 8080 (as well as its generated code), would run unmodified on the new Z80 CPU. Masatoshi Shima designed most of the microarchitecture as well as the gate and transistor levels of the Z80 CPU, assisted by a small number of engineers and layout people. CEO Federico Faggin was actually heavily involved in the chip layout work, together with two dedicated layout people. According to Faggin, he worked 80 hours
3920-607: The Linux kernel , likewise having pre-emptive multitasking , in part to having owned a Sinclair QL in the 1980s. Because of the lack of support, particularly in his native Finland , Torvalds became used to writing his own software rather than relying on programs written by others. In part, his frustration with Minix on the Sinclair led years later to his purchase of a more standard IBM PC compatible on which he would develop Linux. In Just for Fun , Torvalds wrote, "Back in 1987, one of
4018-559: The Motorola 68040 and 68060 CPUs respectively, are much more powerful than the original QL and have the ability among other things (such as multimedia, high resolution graphics, Ethernet networking etc.) to run the Linux operating system. In 2013 Peter Graf announced that he was working on the Q68, a FPGA based QL compatible single board computer. The Q68 was first presented to the public in April 2014 and became available in autumn 2017. It
Sinclair QL - Misplaced Pages Continue
4116-469: The operating system for the machine, but switched to Domesdos , developed by Tony Tebby as an in-house alternative, before launch. GST's OS, designed by Tim Ward, was later made available as 68K/OS , in the form of an add-on ROM card. The tools developed by GST for the QL would later be used on the Atari ST, where GST object format became standard. At the time of the rushed launch, on 12 January 1984,
4214-406: The 8080); the four remaining codes are used extensively as opcode prefixes : CB and ED enable extra instructions, and DD or FD select IX+d or IY+d respectively (in some cases without displacement d) in place of HL. This scheme gives the Z80 a large number of permutations of instructions and registers; Zilog categorizes these into 158 different "instruction types", 78 of which are the same as those of
4312-430: The 8080, as the Z80 sometimes indicates signed overflow where the 8080 would indicate parity, possibly causing the logic of some practical 8080 software to fail on the Z80. ) This new overflow flag is used for all new Z80-specific 16-bit operations ( ADC , SBC ) as well as for 8-bit arithmetic operations, while the 16-bit operations inherited from the 8080 ( ADD , INC , DEC ) do not affect it. Also, bit 1 of
4410-445: The 8080, but add many of the nice features of the Motorola 6800 , including index registers and improved interrupts . While still being set up, the industry newsletter Electronic News heard of them and published a story on the newly formed company. This attracted the attention of Exxon Enterprises, Exxon 's high-tech investment arm. At the time, in the midst of the recession, there was very little venture capital available, with
4508-676: The 8085 with the 16-bit Intel 8088 in its first MS-DOS computer, the Zenith Z-100 , despite having previous experience with its pioneering Z80-based Heathkit H89 and Zenith Z-89 products. However, other computers were made integrating the Z80 with other CPUs: the Radio Shack TRS-80 Model ;16 with a Motorola 68000 , the DEC Rainbow with an 8088, and the Commodore ;128 with
4606-464: The CPU during an interrupt acknowledge cycle; this index is simply the low byte part of the pointer to the tabulated indirect address pointing to the service routine. The pointer identifies a particular peripheral chip or peripheral function or event, where the chips are normally connected in a so-called daisy chain for priority resolution. Like the refresh register, this register has also sometimes been used creatively; in interrupt modes 0 and 1 (or in
4704-543: The CPU, two ULAs (ZX8301 "Master Chip" and ZX8302 "Peripheral Chip") and an Intel 8049 microcontroller known as the IPC, or "Intelligent Peripheral Controller". The ZX8301 implements the video display generator and also provides DRAM refresh. The ZX8302 interfaces to the RS-232 ports (transmit only), Microdrives, QLAN ports, real-time clock and the 8049 via a synchronous serial link. The 8049 runs at 11 MHz and provides
4802-575: The Gold Card and Super Gold Card processor/memory upgrade cards and the QXL PC-based hardware emulator; and Qubbesoft, with the Aurora, the first replacement QL mainboard, with enhanced graphics modes. In the late 1990s, two partly QL-compatible motherboards named Q40 and Q60 (collectively referred to as Qx0 ) were designed by Peter Graf and marketed by D&D Systems. The Q40 and Q60, based on
4900-464: The Intel 8080 (allowing operation of all 8080 programs on a Z80). The Zilog documentation further groups instructions into the following categories (most from the 8080, others entirely new like the block and bit instructions, and others 8080 instructions with more versatile addressing modes, like the 16-bit loads, I/O, rotates/shifts and relative jumps): No explicit multiply instructions are available in
4998-435: The QL uses a different logical tape format. Interfaces include an expansion slot, ROM cartridge socket, dual RS-232 ports, proprietary QLAN local area network ports, dual joystick ports and an external Microdrive bus. The QL uses British Telecom type 631W plugs of similar design to British telephone sockets for serial cables except for QLs built by Samsung for export markets, which have DE-9 sockets. Joysticks connect to
SECTION 50
#17327719422425096-492: The QL was far from being ready for production—there being no complete working prototype in existence. Although Sinclair started taking orders immediately, promising delivery within 28 days, first customer deliveries only started, slowly, in April. This provoked criticism of the company and the attention of the Advertising Standards Authority . Because of its premature launch, the QL was plagued by
5194-552: The QL was officially discontinued. Apart from its reliability issues, the target business market was becoming wedded to the IBM PC platform, whilst the majority of ZX Spectrum owners were uninterested in upgrading to a machine which had a minimal library of games (with only about 70 titles, compared to the Spectrum's more than 4700). Sinclair's persistence with the non-standard Microdrive and uncomfortable keyboard did not endear it to
5292-503: The QL with similar type 630W plugs. Physically, the QL is the same black colour as the preceding ZX81 and ZX Spectrum, but introduced a new angular styling theme and keyboard design which would later be seen in the ZX Spectrum+. QDOS , a pre-emptive multitasking operating system primarily designed by Tony Tebby, is included on ROM , as is an advanced structured BASIC interpreter , named SuperBASIC designed by Jan Jones , which
5390-461: The Z80 and 8086 syntax are virtually isomorphic for a large portion of instructions. Only quite superficial similarities (such as the word MOV, or the letter X, for extended register) exist between the 8080 and 8086 assembly languages, although 8080 programs can be translated to 8086 assembly language by translator programs . The Z80 uses 252 out of the available 256 codes as single byte opcodes ("root instruction" most of which are inherited from
5488-584: The Z80 are fairly conventional, ultimately based on the register structure of the Datapoint 2200 . The Z80 was designed as an extension of the Intel 8080, created by the same engineers, which in turn was an extension of the 8008 . The 8008 was basically a PMOS implementation of the TTL-based CPU of the Datapoint 2200. The 2200 design allowed 8-bit registers H and L (High and Low) to be paired into
5586-469: The Z80 are primarily intended as base address-registers, where a particular instruction supplies a constant offset that is added to the previous values, but they are also usable as 16-bit accumulators, among other things. A limitation is that all operand references involving IX or IY require an extra instruction prefix byte, adding at least four clock cycles over the timing of an instruction using HL instead; this sometimes makes using IX or IY less efficient than
5684-424: The Z80 are: The refresh register , R , increments each time the CPU fetches an opcode (or an opcode prefix, which internally executes like a 1-byte instruction) and has no simple relationship with program execution. This has sometimes been used to generate pseudorandom numbers in games, and also in software protection schemes. It has also been employed as a "hardware" counter in some designs; an example of this
5782-400: The Z80 had an alternate register set that duplicated them, two 16-bit index registers and additional instructions including bit manipulation and block copy/search. Initially intended for use in embedded systems like the 8080, the Z80's combination of compatibility, affordability, and superior performance propelled it to widespread adoption in video game systems and home computers during
5880-494: The Z80 in April 2024 after nearly five decades of production. At Fairchild Semiconductor , and later at Intel , physicist and engineer Federico Faggin had been working on fundamental transistor and semiconductor manufacturing technology. He also developed the basic design methodology used for memories and microprocessors at Intel and led the work on the Intel 4004 , the Intel 8080 and several other ICs. Masatoshi Shima
5978-455: The Z80 support and peripheral ICs were under development at this point, and many of them were launched during the following year. Among them were the Z80 CTC (counter/timer), Z80 DMA (direct memory access), Z80 DART (dual asynchronous receiver–transmitter), Z80 SIO (synchronous communication controller), and Z80 PIO (parallel input/output). The Z80 was officially launched in July 1976. One of
SECTION 60
#17327719422426076-470: The Z80. However, this would likely be erroneous code on the 8080, as DAA was defined for addition only on that processor. The Z80 has six new LD instructions that can load the DE, BC, and SP register pairs from memory, and load memory from these three register pairs—unlike the 8080. As on the 8080, load instructions do not affect the flags (except for the special-purpose I and R register loads). A result of
6174-464: The alternate (primed) registers are now the main registers, and vice versa. The only way for the programmer to tell which set(s) are in context (while "playing computer" while scrutinizing the assembler source text, or worse, poring over code with a debugger) is to trace where each register swap is made at each point in the program. Obviously if many jump and calls are made within these code segments it can quickly become difficult to tell which register file
6272-412: The business market. Clive Sinclair later maintained that the Microdrive was "a marvellous approach", also claiming that he had really wanted to base the QL on the Z80, that others in the company had persuaded him to use the 68000, and that "there was nothing you could do on the 68000 that you couldn't do on the Z80". Software publishers were also reluctant to support the QL because Microdrive cartridges were
6370-456: The byte at (HL) and the accumulator A. Register pair DE is not used. The repeating versions CPIR and CPDR only terminate if BC goes to zero or a match is found. HL is left pointing to the byte after ( CPIR ) or before ( CPDR ) the matching byte. If no match is found the Z ;flag is reset. There are non-repeating versions CPI and CPD . Unlike the 8080, the Z80 can jump to
6468-432: The capacities of most storage media , particularly hard disk drives , flash -based storage, and DVDs . It is also consistent with the other uses of the metric prefixes in computing, such as CPU clock speeds or measures of performance . The international standard IEC 80000-13 uses the term "byte" to mean eight bits (1 B = 8 bit). Therefore, 1 kB = 8000 bit. One thousand kilobytes (1000 kB)
6566-502: The current state of the IFF2 flip-flop. Although the Z80 is generally considered an eight-bit CPU, it has a four-bit ALU , so calculations are done in two steps. The first Intel 8008 assembly language was based on a very simple (but systematic) syntax inherited from the Datapoint 2200 design. This original syntax was later transformed into a new, somewhat more traditional, assembly language form for this same original 8008 chip. At about
6664-415: The design directly. Faggin thought this would mean they could never compete even if they set up their own lines, and the agreement fell through. He then turned to Mostek, who agreed to a term of exclusivity while Zilog got their lines set up, and were eventually given the second source agreement. After considering many names for the new company, and finding them so unmemorable they could not recall them even
6762-482: The design. Sometime later, Shima was told by an engineer within NEC that the traps had delayed their copying efforts by six months. The successful launch allowed Faggin and Ungermann to approach Exxon looking for funding to build their own fab. The company agreed, and Zilog built a production line very rapidly. This allowed them to capture about 60 to 70% of the total market for Z80 sales. With their own line running, Mostek
6860-571: The destination address, and BC as a byte counter. Bytes are copied from source to destination, the pointers are incremented or decremented, and the byte counter is decremented until BC reaches zero. Non-repeating versions LDI and LDD move a single byte and bump the pointers and byte counter, which if it becomes zero resets the P/V ;flag. Corresponding memory-to-I/O instructions INIR , INDR , OTIR , OTDR , INI , IND , OUTI and OUTD operate similarly, except that B, not BC,
6958-526: The direction of Les Vadasz, further diluting the microprocessor's place in the company. That year, the 1973–1975 recession reached a peak and Intel laid off a number of employees. All of this led to Faggin becoming restless, and he invited Ungermann out for drinks and asked if he would be interested in starting their own company. Ungermann immediately agreed, and as he had less to do at Intel, left in August or September, followed by Faggin, whose last day at Intel
7056-486: The first customers was a buyer who, unknown to Zilog, worked for NEC. At the time, the Japanese electronics companies were well known for taking US chip designs and producing them without a license. The Zilog team had worried about this, and Faggin had come up with the idea of adding transistors that would be subtly modified to operate differently than a visual inspection would suggest. Shima added six of these "traps" around
7154-513: The flags register (a spare bit on the 8080) is used as a flag N that indicates whether the last arithmetic instruction executed was a subtraction or addition. The Z80 version of the DAA instruction (decimal adjust accumulator for BCD arithmetic) checks the N ;flag and behaves accordingly, so a (hypothetical) subtraction followed later by DAA will yield a different result on an old 8080 than on
7252-631: The introductory 2.5 MHz , via the well known 4 MHz (Z80A), up to 6 MHz (Z80B) and 8 MHz (Z80H). The NMOS version has been produced as a 10 MHz part since the late 1980s. CMOS versions were developed with specified upper frequency limits ranging from 4 MHz up to 20 MHz for the version sold today. The CMOS versions allowed low-power standby with internal state retained, having no lower frequency limit. The fully compatible derivatives HD64180 / Z180 and eZ80 are currently specified for up to 33 MHz and 50 MHz, respectively. The programming model and register set of
7350-418: The keyboard, and rudimentary Computer-Telephony Integration (CTI) software. This machine interested a number of high-profile business customers, including certain divisions of the former UK Customs and Excise Department , but its success was generally limited. In the late 1980s they were used in bingo halls to allow a country-wide networked bingo game. Linus Torvalds has attributed his eventually developing
7448-661: The late 1970s and early 1980s, fueling the personal computing revolution. Products it was used in include the Osborne 1 , Radio Shack TRS-80 , ColecoVision , ZX Spectrum and the Pac-Man cabinet; in later years it remained used in portables, best known for use in the Game Boy and TI-83 series . The Z80 was the brainchild of Federico Faggin , a key figure behind the creation of the Intel 8080. After leaving Intel in 1974, Faggin co-founded Zilog with Ralph Ungermann . The Z80
7546-405: The most actively maintained. Zilog Z80 The Zilog Z80 is an 8-bit microprocessor designed by Zilog that played an important role in the evolution of early computing. Launched in 1976 and software-compatible with the Intel 8080 , it offered a compelling alternative due to its better integration and increased performance. As well as the 8080's seven registers and flags register,
7644-432: The only available distribution medium for the QL, and the unfavourable pricing of the medium (production costs being given as over six times that of compact cassette) impacted profitability and made QL-based products uncompetitive. Dedicated magazines were published for the system, such as QL World (published from 1985 to 1994), QL User (published from 1984 to 1985), or QL Today (published from 1996 to 2013). Based on
7742-426: The original Z80 (being 1 clock slower than in the 8080/8085); nonetheless, they are about twice as fast as performing the same calculations using 8-bit operations, and equally important, they reduce register usage. It was not uncommon for programmers to "poke" different offset displacement bytes (which were typically calculated dynamically) into indexed instructions; this is an example of self-modifying code , which
7840-407: The original Z80, though registers A and HL can be multiplied by powers of two with ADD A,A and ADD HL,HL instructions (similarly IX and IY also). Shift instructions can also multiply or divide by powers of two. Different sizes and variants of additions, shifts, and rotates have somewhat differing effects on flags because most of the flag-changing properties of the 8080 were copied. However,
7938-483: The other; a feature useful for speeding up responses to single-level, high-priority interrupts. A similar feature was present in the 2200, but was never implemented at Intel. The dual register-set is very useful in the embedded role, as it improves interrupt handling performance, but found widespread use in the personal computer role as an additional set of general registers for complex code like floating-point arithmetic or home computer games. The duplicate register file
8036-418: The parity flag bit P of the 8080 (bit 2) is called P/V (parity/overflow) in the Z80 as it serves the additional purpose of a twos complement overflow indicator, a feature lacking in the 8080. Arithmetic instructions on the Z80 set it to indicate overflow rather than parity, while bitwise instructions still use it as a parity flag. (This introduces a subtle incompatibility of the Z80 with code written for
8134-536: The point where several QL users report the Samsung Microdrives in particular working perfectly even after almost 17 years of service; but in any case too late to redeem the negative image they had already created. Although the computer was hyped as being advanced for its time, and relatively cheap, it failed to sell well, and UK production was suspended in 1985, due to lack of demand. After Amstrad acquired Sinclair's computer products lines in April 1986,
8232-535: The same memory using HL and INC to point to the next). Thus, for simple or linear accesses of data, use of IX and IY tend to be slower and occupy more memory. Still, they may be useful in cases where the "main" registers are all occupied, by removing the need to save/restore registers. Their officially undocumented 8-bit halves (see below) can be especially useful in this context, for they incur less slowdown than their 16-bit parents. Similarly, instructions for 16-bit additions are not particularly fast (11 clocks) in
8330-517: The same time, the new assembly language was also extended to accommodate the additional addressing modes in the more advanced Intel 8080 chip (the 8008 and 8080 shared a language subset without being binary compatible ; however, the 8008 was binary compatible with the Datapoint 2200). In this process, the mnemonic L , for LOAD , was replaced by various abbreviations of the words LOAD , STORE and MOVE , intermixed with other symbolic letters. The mnemonic letter M , for memory (referenced by HL),
8428-481: The selling points of the QL was that it looked cool", because it was "entirely matte black, with a black keyboard" and was "fairly angular". He also wrote he bought a floppy controller so he could stop using microdrives, but the floppy controller driver was bad, so he wrote his own. Bugs in the operating system, or discrepancies with the documentation, that made his software not work properly, got him interested in operating systems. "Like any good computer purist raised on
8526-438: The tape into a production mask required two more months. Faggin had already started looking for a production partner. By this time, Synertek and Mostek had both set up the depletion-mode production lines that could be used to produce the design. Having talked to Synertek previously, Faggin approached them first. However, the president of Synertek demanded that the company be given a second source license, allowing them to sell
8624-409: The value should be used as a memory address (as mentioned below), while the 8086 syntax uses brackets instead of ordinary parentheses for this purpose. Both Z80 and 8086 use the + sign to indicate that a constant is added to a base register to form an address. Note that the 8086 is not a complete superset of the Z80. BX is the only 8086 register pair that can be used as a pointer. Because Intel claimed
8722-418: The world market since large companies like NEC , Toshiba , Sharp , and Hitachi started to manufacture the device (or their own Z80-compatible clones or designs). The Z80 continued to be used in embedded systems for decades after its introduction, with ongoing advancements. The latest addition to the Z80 family is the eZ80 , which was offered alongside successor chips. Zilog announced the discontinuation of
8820-407: Was Halloween 1974. When Shima heard, he asked to come to the new company as well, but having no actual product design or money, they told him to wait. The newly formed and unnamed company initially began designing a single-chip microcontroller called the 2001. They met with Synertek to discuss fabrication on their lines, and when Faggin began to understand the costs involved it became clear that
8918-513: Was conceived in 1981 under the code name ZX83 , as a portable computer for business users, with a built-in ultra-thin flat-screen CRT display similar to the later TV80 pocket TV, printer and modem . As development progressed it eventually became clear that the portability features were over-ambitious and the specification was reduced to a conventional desktop configuration. The electronics were primarily designed by David Karlin, who joined Sinclair Research in summer 1982. The industrial design
9016-658: Was done by Rick Dickinson , who already designed the ZX81 and ZX Spectrum range of products. The QL was designed to be more powerful than the IBM Personal Computer , and comparable to Apple's Macintosh . While the CPU clock speed is comparable to that of the Macintosh, and the later Atari ST and Amiga , the 8-bit databus and cycle stealing of the ZX8301 gate array limit the QL's performance. Sinclair had commissioned GST Computer Systems to produce
9114-454: Was due to the duplicated registers that allowed fast context switches or more efficient processing of things like floating-point math compared to 8-bit CPUs with fewer registers. (The Z80 can keep several such numbers internally, using HL'HL, DE'DE and BC'BC as 32-bits registers, avoiding having to access them from slower RAM during computation.) For the original NMOS design, the specified upper clock-frequency limit increased successively from
9212-460: Was given the go-ahead to start sales of their own versions, the MK3880, which provided a second-source for customers which Intel lacked. At the time, a second-source was considered extremely important as a start-up like Zilog might go out of business and leave potential customers stranded. Faggin designed the instruction set to be binary compatible with the 8080 so that most 8080 code, notably
9310-546: Was lifted out from within the instruction mnemonic to become a syntactically freestanding operand , while registers and combinations of registers became very inconsistently denoted; either by abbreviated operands (MVI D, LXI H and so on), within the instruction mnemonic itself (LDA, LHLD and so on), or both at the same time (LDAX B, STAX D and so on). Illustration of four syntaxes, using samples of equivalent, or (for 8086) very similar, load and store instructions. The Z80 syntax uses parentheses around an expression to indicate that
9408-531: Was regular practice on nearly all early 8-bit processors with non- pipelined execution units. The index registers have a parallel instruction to JP (HL) , which is JP (XY) . This is often seen in stack-oriented languages like Forth , which at the end of every Forth word (atomic subroutines comprising the language) must jump unconditionally back to their thread interpreter routines. Typically this jump instruction appears many hundreds of times in an application, and using JP (XY) rather than JP THREAD saves
9506-467: Was released in July 1976. With the revenue from the Z80, the company built its own chip factories . Zilog licensed the Z80 to the US-based Synertek and Mostek , which had helped them with initial production, as well as to a European second-source manufacturer SGS . The design was also copied by several Japanese, Eastern European and Soviet manufacturers. This won the Z80 acceptance in
9604-430: Was the principal logic and transistor-level designer of the 4004 and the 8080 under Faggin's supervision, while Ralph Ungermann was in charge of custom integrated circuit design. In early 1974, Intel viewed their microprocessors not so much as products to be sold on their own but as a way to sell more of their main products, static RAM and ROM . A reorganization placed many of the formerly independent sections under
#241758