Hudson Soft HuC6280
Encyclopedia
The HuC6280 8-bit
microprocessor
is Japanese company Hudson Soft
's improved version of the WDC 65C02
CPU
. The most notable product using the HuC6280 is NEC's TurboGrafx 16 video game console
.
, a timer
, an 8-bit parallel I/O port, and a Programmable Sound Generator
. The processor operates at two speeds, 1.78 MHz and 7.16 MHz.
space and a 2 MB physical address space. To access this entire memory space, the HuC6280 uses an MMU (Memory Management Unit) that splits the memory space into segments
of 8 KB. The logical address space is split as follows:
page 0 -> $0000-$1FFF
page 1 -> $2000-$3FFF
page 2 -> $4000-$5FFF
page 3 -> $6000-$7FFF
page 4 -> $8000-$9FFF
page 5 -> $A000-$BFFF
page 6 -> $C000-$DFFF
page 7 -> $E000-$FFFF
Each logical 8 KB segment
(or page) is associated with an 8-bit register (MPR0-7) that contains the index of the 8 KB segment
(or bank) in physical memory to map in this page. Two special instructions are used to access these registers:
TAMi, transfer the content of the accumulator (A) into an MPR register (0-7).
TMAi, transfer an MPR register into the accumulator.
0-1 - Waveform playback
Frequency modulation (channel 1 muted)
2-3 - Waveform playback only
4-5 - Waveform playback
White noise generation
Waveform playback is the most common and allows a 32 byte, 5 bit unsigned linear sample to be played back at selected frequencies. Frequency modulation
takes this one step further, allowing the playback frequency to be dynamically adjusted according to a specified pattern. White noise
is used to simulate percussion instruments and effects, such as explosions, by means of a pseudo-random square wave
.
Alternatively, each channel can be individually switched to "Direct D/A" mode in which the programmer can send data directly to the sound mixer, allowing more complex sound patterns to be generated, such as speech. Inevitably, this requires more programming effort and CPU time.
8-bit
The first widely adopted 8-bit microprocessor was the Intel 8080, being used in many hobbyist computers of the late 1970s and early 1980s, often running the CP/M operating system. The Zilog Z80 and the Motorola 6800 were also used in similar computers...
microprocessor
Microprocessor
A microprocessor incorporates the functions of a computer's central processing unit on a single integrated circuit, or at most a few integrated circuits. It is a multipurpose, programmable device that accepts digital data as input, processes it according to instructions stored in its memory, and...
is Japanese company Hudson Soft
Hudson Soft
, formally known as , is a majority-owned subsidiary of Konami Corporation is a Japanese electronic entertainment publisher headquartered in the Midtown Tower in Tokyo Midtown, Akasaka, Minato, Tokyo, Japan, with an additional office in the Hudson Building in Sapporo. It was founded on May 18, 1973...
's improved version of the WDC 65C02
WDC 65C02
The Western Design Center WDC 65C02 microprocessor is an upgraded CMOS version of the popular NMOS-based MOS Technology 6502 8-bit CPU — the CMOS redesign being made by Bill Mensch of the Western Design Center...
CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...
. The most notable product using the HuC6280 is NEC's TurboGrafx 16 video game console
Video game console
A video game console is an interactive entertainment computer or customized computer system that produces a video display signal which can be used with a display device to display a video game...
.
Description
The HuC6280 contains a 65C02 core which has several additional instructions and a few internal peripheral functions such as an interrupt controller, a Memory management unitMemory management unit
A memory management unit , sometimes called paged memory management unit , is a computer hardware component responsible for handling accesses to memory requested by the CPU...
, a timer
Timer
A timer is a specialized type of clock. A timer can be used to control the sequence of an event or process. Whereas a stopwatch counts upwards from zero for measuring elapsed time, a timer counts down from a specified time interval, like an hourglass.Timers can be mechanical, electromechanical,...
, an 8-bit parallel I/O port, and a Programmable Sound Generator
Programmable sound generator
A Programmable Sound Generator is a sound chip that generates sound waves by synthesizing multiple basic waveforms, and often some kind of noise generator, and combining and mixing these waveforms into a complex waveform, then shaping the amplitude of the resulting waveform using...
. The processor operates at two speeds, 1.78 MHz and 7.16 MHz.
Memory mapping
The HuC6280 has a 64 KB logical addressLogical address
In computing, a logical address is the address at which an item appears to reside from the perspective of an executing application program....
space and a 2 MB physical address space. To access this entire memory space, the HuC6280 uses an MMU (Memory Management Unit) that splits the memory space into segments
Memory segment
x86 memory segmentation refers to the implementation of memory segmentation on the x86 architecture. Memory is divided into portions that may be addressed by a single index register without changing a 16-bit segment selector. In real mode or V86 mode, a segment is always 64 kilobytes in size . In...
of 8 KB. The logical address space is split as follows:
page 0 -> $0000-$1FFF
page 1 -> $2000-$3FFF
page 2 -> $4000-$5FFF
page 3 -> $6000-$7FFF
page 4 -> $8000-$9FFF
page 5 -> $A000-$BFFF
page 6 -> $C000-$DFFF
page 7 -> $E000-$FFFF
Each logical 8 KB segment
Memory segment
x86 memory segmentation refers to the implementation of memory segmentation on the x86 architecture. Memory is divided into portions that may be addressed by a single index register without changing a 16-bit segment selector. In real mode or V86 mode, a segment is always 64 kilobytes in size . In...
(or page) is associated with an 8-bit register (MPR0-7) that contains the index of the 8 KB segment
Memory segment
x86 memory segmentation refers to the implementation of memory segmentation on the x86 architecture. Memory is divided into portions that may be addressed by a single index register without changing a 16-bit segment selector. In real mode or V86 mode, a segment is always 64 kilobytes in size . In...
(or bank) in physical memory to map in this page. Two special instructions are used to access these registers:
TAMi, transfer the content of the accumulator (A) into an MPR register (0-7).
TMAi, transfer an MPR register into the accumulator.
HuC6280's PSG
The PSG provides 6 sound channels, which can be conveniently paired according to the functionality they provide:0-1 - Waveform playback
Frequency modulation (channel 1 muted)
2-3 - Waveform playback only
4-5 - Waveform playback
White noise generation
Waveform playback is the most common and allows a 32 byte, 5 bit unsigned linear sample to be played back at selected frequencies. Frequency modulation
Frequency modulation
In telecommunications and signal processing, frequency modulation conveys information over a carrier wave by varying its instantaneous frequency. This contrasts with amplitude modulation, in which the amplitude of the carrier is varied while its frequency remains constant...
takes this one step further, allowing the playback frequency to be dynamically adjusted according to a specified pattern. White noise
White noise
White noise is a random signal with a flat power spectral density. In other words, the signal contains equal power within a fixed bandwidth at any center frequency...
is used to simulate percussion instruments and effects, such as explosions, by means of a pseudo-random square wave
Square wave
A square wave is a kind of non-sinusoidal waveform, most typically encountered in electronics and signal processing. An ideal square wave alternates regularly and instantaneously between two levels...
.
Alternatively, each channel can be individually switched to "Direct D/A" mode in which the programmer can send data directly to the sound mixer, allowing more complex sound patterns to be generated, such as speech. Inevitably, this requires more programming effort and CPU time.
External links
- http://shu.emuunlim.com/download/pcedocs/pce_cpu.html
- http://www.magicengine.com/mkit/
- http://www.interlog.com/~daves/pce_info/info.html