ZX Spectrum 128: Difference between revisions

Jump to navigation Jump to search
m
Proper name of Spectrum 128
m (Guesser moved page ZX Spectrum+ 128K to ZX Spectrum 128: change to correct branding)
m (Proper name of Spectrum 128)
Line 1: Line 1:
[[Category:Hardware]]
[[Category:Hardware]]
[[Category:Spectrum]]
[[Category:Spectrum]]
{{See Also|the "toastrack" 128K model|other Spectrum models with 128K of RAM|ZX Spectrum 128K models}}
{{See Also|the original Spectrum 128|other Spectrum models with 128kB of RAM|ZX Spectrum 128K models}}
{{Infobox computer
{{Infobox computer
| cpu = [[Z80|Z80A]] @ 3.5469MHz
| cpu = [[Z80|Z80A]] @ 3.5469MHz
Line 16: Line 16:


*Processor: Zilog Z80A microprocessor clocked at 3.5469MHz.
*Processor: Zilog Z80A microprocessor clocked at 3.5469MHz.
*ROM: 32KB ROM, arranged in 2 pages of 16KB.
*ROM: 32kB ROM, arranged in 2 pages of 16kB.
*RAM: 128KB of Dynamic RAM, arranged in 8 pages of 16KB.
*RAM: 128kB of Dynamic RAM, arranged in 8 pages of 16kB.
*Graphics: 256 × 192 pixels, 16 colours, attribute based. See [[Spectrum Video Modes]].
*Graphics: 256 × 192 pixels, 16 colours, attribute based. See [[Spectrum Video Modes]].
*Sound: [[AY-3-8912]] 3 channel, 8 octave Programmable Sound Generator and "beeper". Modulated onto video signal.
*Sound: [[AY-3-8912]] 3 channel, 8 octave Programmable Sound Generator and "beeper". Modulated onto video signal.
Line 26: Line 26:


==Paging==
==Paging==
The memory space of the Spectrum+ 128K is divided into four 16k pages. The 32k of ROM and 128k of RAM can be paged into the memory space as shown in the diagram below:
The memory space of the ZX Spectrum 128 is divided into four 16kB pages. The 32kB of ROM and 128kB of RAM can be paged into the memory space as shown in the diagram below:


<!-- table of memory pages -->
<!-- table of memory pages -->
Line 77: Line 77:
== HAL bugs ==
== HAL bugs ==


Reads from port 0x7ffd cause a crash, as the 128K's HAL10H8 chip does not distinguish between reads and writes to this port, resulting in a floating data bus being used to set the paging registers.
Reads from port 0x7ffd cause a crash, as the 128's HAL10H8 chip does not distinguish between reads and writes to this port, resulting in a floating data bus being used to set the paging registers.


Due to a bug either in the 128K's HAL10H8 chip or in the 128K PCB, memory banks 1, 3, 5 and 7 are contended (and the rest uncontended) as opposed to 4, 5, 6 and 7 as documented in the service manual.  Whereas the +2 (with grey case) shares this behaviour, the +2A and +3 apply contention to pages 4–7 instead.  The paging scheme documented in the manual would have been implemented as was (presumably) originally intended had the B0 and B2 inputs to the HAL10H8 been reversed, either on the 128K PCB or in the logic of the HAL itself.
Due to a bug either in the 128's HAL10H8 chip or in the PCB, memory banks 1, 3, 5 and 7 are contended (and the rest uncontended) as opposed to 4, 5, 6 and 7 as documented in the service manual.  Whereas the +2 (with grey case) shares this behaviour, the +2A and +3 apply contention to pages 4–7 instead.  The paging scheme documented in the manual would have been implemented as was (presumably) originally intended had the B0 and B2 inputs to the HAL10H8 been reversed, either on the Spectrum 128 PCB or in the logic of the HAL itself.


Later grey +2s were shipped with an updated HAL chip which corrects there issue whereby reads of port 0x7ffd would crash the machine[http://www.worldofspectrum.org/forums/discussion/35523].  It is not known whether this also updated the contention scheme to contend on pages 4–7.
Later grey +2s were shipped with an updated HAL chip which corrects there issue whereby reads of port 0x7ffd would crash the machine[http://www.worldofspectrum.org/forums/discussion/35523].  It is not known whether this also updated the contention scheme to contend on pages 4–7.


The 128K suffers from a "rain" effect when the Z80's I register is set to a memory address within the region of 0x4000–0x7fff.  Velesoft's "Umbrella" GAL[http://velesoft.speccy.cz/zx/umbrella/umbrella.htm] corrects this rain effect as well as the crash that results when reading from port 0x7ffd, although it does not change the set of pages that are contended. For the rain effect to be corrected, a flying lead must be connected between the Z80's {{overline|RFSH}} signal and the GAL.
The Spectrum 128 suffers from a "rain" effect when the Z80's I register is set to a memory address within the region of 0x4000–0x7fff.  Velesoft's "Umbrella" GAL[http://velesoft.speccy.cz/zx/umbrella/umbrella.htm] corrects this rain effect as well as the crash that results when reading from port 0x7ffd, although it does not change the set of pages that are contended. For the rain effect to be corrected, a flying lead must be connected between the Z80's {{overline|RFSH}} signal and the GAL.


== Keypad ==
== Keypad ==


The keypad released for Investronica's Spanish 128K has been found to be incompatible with at least some UK 128K machines.  Issue 6K boards provide the wrong voltage to the keypad.  This is fixed in Issue 6U by replacing R137.
The keypad released for Investronica's Spanish 128 has been found to be incompatible with at least some UK machines.  Issue 6K boards provide the wrong voltage to the keypad.  This is fixed in Issue 6U by replacing R137.

Navigation menu