Contended memory

Last updated

Contended memory is Sinclair's name for a portion of the ZX Spectrum's 64 KB addressable memory space. With the full 64 KB, the Z80 microprocessor is the exclusive bus master, so it reads and writes operate at its full bus speed, but contended memory space is shared between the ULA and the Z80, with the ULA having higher priority. Contended memory occupies addresses 0x4000..0x7FFF of the Z80 memory map. This is the first 16 KB of RAM in the 48 KB machine and the entire RAM of the 16 KB machine.

Contents

Contention occurs as a result of the ULA reading the display and attributes data in this RAM to produce the TV video display. Contention therefore does not occur during horizontal flyback, vertical flyback or during the screen border.

Accesses to I/O also contend if the ULA must read contended memory while the Z80 accesses a ULA I/O port. ULA I/O ports are those with an even address (address bit 0 is a 0).

The Z80 must wait whenever the ULA needs to access contended memory before proceeding with its own contended memory read or write. The effect to the user is that programs that make use of contended memory or contended I/O run slower than those that avoid it.

Snow Bug

The ULA must wait for a Z80 read or write to complete before it can stop the Z80's clock and access the memory; it will stop the Z80's clock only during the first clock cycle of a machine cycle. [1]

Early Spectrums make the assumption that at most one contended memory access will occur in a machine cycle: this isn't true in instruction fetch cycles if the programmer has configured the interrupt vector table to fall within the contended area. In that case the ULA will decline to load its video address and the video byte displayed will be whatever the processor was reading. The consequence of this is random noise on the display, or 'snow'. [1]

Since this effect did not occur under normal operation — it required a programmer's deliberate intervention [2] — it was very seldom seen, being used only in some games [which ones?] as a special graphical effect. [1]

Later versions of the Spectrum, including all 128kb versions, correct the bug. [1]

Circuit

The ULA does not use the Z80's bus request/grant mechanism to become bus master during its contended memory accesses. Instead, it extends the high period of the Z80 clock input to stop all microprocessor activity. While this is less elegant than performing a bus request, it does gain contended memory access to fewer Z80 clocks. This removes any need for the ULA to read display data in advance, a benefit with the crowded circuitry in the full ULA.

The ULA connects directly to the memory system ICs while the Z80 connects to them through isolating series current-limit resistors. This allows the ULA and memory to drive each other while the Z80 is also driving the memory. Using resistors instead of tristate bus driver ICs reduces the expense of the circuit but does take a higher average I/O pin current from the Z80, ULA and memory ICs.

Related Research Articles

<span class="mw-page-title-main">Jupiter Ace</span> British home computer of the early 1980s

The Jupiter Ace by Jupiter Cantab was a British home computer of the early 1980s. The Ace differed from other microcomputers of the time in that its programming environment used Forth instead of the more popular BASIC.

<span class="mw-page-title-main">Zilog Z80</span> 8-bit microprocessor

The Z80 is an 8-bit microprocessor introduced by Zilog as the startup company's first product. The Z80 was conceived by Federico Faggin in late 1974 and developed by him and his 11 employees starting in early 1975. The first working samples were delivered in March 1976, and it was officially introduced on the market in July 1976. With the revenue from the Z80, the company built its own chip factories and grew to over a thousand employees over the following two years.

<span class="mw-page-title-main">ZX80</span> Popular and inexpensive home computer launched in 1980

The Sinclair ZX80 is a home computer launched on 29 January 1980 by Science of Cambridge Ltd.. It is notable for being one of the first computers available in the United Kingdom for less than a hundred pounds. It was available in kit form for £79.95, where purchasers had to assemble and solder it together, and as a ready-built version at £99.95.

<span class="mw-page-title-main">ZX Spectrum</span> 1982 series of home computers

The ZX Spectrum is an 8-bit home computer that was developed by Sinclair Research. It was released in the United Kingdom on 23 April 1982, and became Britain's best-selling microcomputer.

<span class="mw-page-title-main">ZX81</span> Inexpensive home computer by Sinclair Research, 1981

The ZX81 is a home computer that was produced by Sinclair Research and manufactured in Dundee, Scotland, by Timex Corporation. It was launched in the United Kingdom in March 1981 as the successor to Sinclair's ZX80 and designed to be a low-cost introduction to home computing for the general public. It was hugely successful; more than 1.5 million units were sold. In the United States it was initially sold as the ZX-81 under licence by Timex. Timex later produced its own versions of the ZX81: the Timex Sinclair 1000 and Timex Sinclair 1500. Unauthorized ZX81 clones were produced in several countries.

In computer architecture, 8-bit integers or other data units are those that are 8 bits wide. Also, 8-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers or data buses of that size. Memory addresses for 8-bit CPUs are generally larger than 8-bit, usually 16-bit. 8-bit microcomputers are microcomputers that use 8-bit microprocessors.

<span class="mw-page-title-main">Static random-access memory</span> Type of computer memory

Static random-access memory is a type of random-access memory (RAM) that uses latching circuitry (flip-flop) to store each bit. SRAM is volatile memory; data is lost when power is removed.

<span class="mw-page-title-main">Intel 8085</span> 8-bit microprocessor by Intel

The Intel 8085 ("eighty-eighty-five") is an 8-bit microprocessor produced by Intel and introduced in March 1976. It is software-binary compatible with the more-famous Intel 8080 with only two minor instructions added to support its added interrupt and serial input/output features. However, it requires less support circuitry, allowing simpler and less expensive microcomputer systems to be built. The "5" in the part number highlighted the fact that the 8085 uses a single +5-volt (V) power supply by using depletion-mode transistors, rather than requiring the +5 V, −5 V and +12 V supplies needed by the 8080. This capability matched that of the competing Z80, a popular 8080-derived CPU introduced the year before. These processors could be used in computers running the CP/M operating system.

<span class="mw-page-title-main">Intel 4040</span> 4-bit microprocessor introduced in 1974 by Intel

The Intel 4040 microprocessor was the successor to the Intel 4004. It was introduced in 1974. The 4040 employed a 10 μm silicon gate enhancement load PMOS technology, was made up of 3,000 transistors and could execute approximately 62,000 instructions per second. General performance, bus layout and instruction set was identical to the 4004, with the main improvements being in the addition of extra lines and instructions to recognise and service interrupts and hardware Halt/Stop commands, an extended internal stack and general-purpose "Index" register space to handle nesting of several subroutines and/or interrupts, plus a doubling of program ROM address range.

<span class="mw-page-title-main">SAM Coupé</span> 8-bit British home computer released in late 1989

The SAM Coupé is an 8-bit British home computer that was first released in late 1989. It was based on and designed to have compatibility with the ZX Spectrum 48K and marketed as a logical upgrade from the Spectrum. It was originally manufactured by Miles Gordon Technology (MGT), based in Swansea in the United Kingdom.

<span class="mw-page-title-main">Zilog Z8000</span> 16-bit microprocessor

The Z8000 is a 16-bit microprocessor introduced by Zilog in early 1979. The architecture was designed by Bernard Peuto while the logic and physical implementation was done by Masatoshi Shima, assisted by a small group of people. In contrast to most designs of the era, the Z8000 did not use microcode which allowed it to be implemented in only 17,500 transistors.

<span class="mw-page-title-main">Timex Sinclair 1000</span> Home computer launched in 1982

The Timex Sinclair 1000 was the first computer produced by Timex Sinclair, a joint venture between Timex Corporation and Sinclair Research. It was launched in July 1982, with a US sales price of US$99.95, making it the cheapest home computer at the time; it was advertised as "the first computer under $100". The computer was aimed at regular home users. As purchased, the T/S 1000 was fully assembled and ready to be plugged into home televisions, which served as a video monitor. The T/S 1000 was a slightly modified version of the Sinclair ZX81 with an NTSC RF modulator, for use with North American TVs, instead of PAL for European TVs. The T/S 1000 doubled the onboard RAM from 1 KB to 2 KB; further expandable by 16 KB through the cartridge port. The T/S 1000's casing had slightly more internal shielding but remained the same as Sinclair's, including the membrane keyboard. Just like the ZX81, the T/S 1000 had black-and-white graphics and no sound.

<span class="mw-page-title-main">Enterprise (computer)</span> Zilog Z80-based home computer

The Enterprise is a Zilog Z80-based home computer announced in 1983, but through a series of delays, not commercially available until 1985. The specification as released was powerful and one of the higher end in its class. This was due to the use of ASICs for graphics and sound which took workload away from the CPU, an extensive implementation of ANSI BASIC and a bank switching system to allow for larger amounts of RAM than the Z80 natively supported. It also featured a distinctive and colourful case design, and promise of multiple expansion options. Ultimately it was not commercially successful, after multiple renames, delays and a changing market place. Its manufacturer calling in the receivers in 1986 with significant debt. It was developed by British company Intelligent Software and marketed by Enterprise Computers. Its two variants are the Enterprise 64, with 64 kilobytes of Random Access Memory (RAM), and the Enterprise 128, with 128 KB of RAM.

<span class="mw-page-title-main">Fairchild F8</span> 8-bit microprocessor first shipped in 1975

The Fairchild F8 is an 8-bit microprocessor system from Fairchild Semiconductor, announced in 1974 and shipped in 1975. The original processor family included four main 40-pin integrated circuits (ICs); the 3850 CPU which was the arithmetic logic unit, the 3851 Program Storage Unit (PSU) which contained 1 KB of program ROM and handled instruction decoding, and the 3852 Dynamic Memory Interface (DMI) or 3853 Static Memory Interface (SMI) to control additional RAM or ROM holding the user programs or data. The 3854 DMA was an optional system that added direct memory access into the RAM controlled by the 3852.

<span class="mw-page-title-main">Beta BASIC</span> BASIC interpreter for the Sinclair Research ZX Spectrum microcomputer

Beta BASIC is a BASIC interpreter for the Sinclair Research ZX Spectrum microcomputer, written by Dr Andrew Wright in 1983 and sold by his one-man software house BetaSoft. BetaSoft also produced a regular newsletter/magazine, BetaNews.

<span class="mw-page-title-main">Timex Computer 2048</span> 1984 computer developed by Timex Portugal

The Timex Computer 2048 or TC 2048 is a 1984 computer developed by Timex Portugal, at the time part of Timex Sinclair. It was based on the Timex Sinclair 2048 prototype, with a similar redesign case, composite video output, Kempston joystick interface, and additional video modes, while being highly compatible with the Sinclair ZX Spectrum computer.

The Kay 1024 was a Russian ZX Spectrum clone introduced in 1998. Created by the NEMO company of St. Petersburg, it has 1024 KB of RAM. It was a rival to Scorpion ZS 256, having a slightly lower price. It offered a controller for a PC keyboard and HDD, but not for floppy disks. Adding a General Sound card was easy, and the CPU had a 7 Mhz turbo mode.

Each time Intel launched a new microprocessor, they simultaneously provided a System Development Kit (SDK) allowing engineers, university students, and others to familiarise themselves with the new processor's concepts and features. The SDK single-board computers allowed the user to enter object code from a keyboard or upload it through a communication port, and then test run the code. The SDK boards provided a system monitor ROM to operate the keyboard and other interfaces. Kits varied in their specific features but generally offered optional memory and interface configurations, a serial terminal link, audio cassette storage, and EPROM program memory. Intel's Intellec development system could download code to the SDK boards.

The NEC μCOM series is a series of microprocessors and microcontrollers manufactured by NEC in the 1970s and 1980s. The initial entries in the series were custom-designed 4 and 16-bit designs, but later models in the series were mostly based on the Intel 8080 and Zilog Z80 8-bit designs, and later, the Intel 8086 16-bit design. Most of the line was replaced in 1984 by the NEC V20, an Intel 8088 clone.

References

  1. 1 2 3 4 Awan, Hassan. "What Are Snow Bugs?". Home Claver. Admin. Retrieved 2022-01-29.
  2. "ZX Spectrum ULA – SinclairFAQ – The Snow Effect". faqwiki.zxnet.co.uk. Retrieved 2018-09-13.