Multiprocessing

ZXNet echo conference «zx.spectrum»

From Igor Maznitsa To All 3 August 1997


St.Petersburg codepage 866
Sunday August 03 1997
11:56

Hello comrade All!

It’s been lying around for a long time, I decided to throw it out for discussion

=== Cut ===
▓▓▓▓▓▓
▓▓ ▓
▓▓ ▓ ▓
▓▓▓▓▓▓ ▓▓▓▓▓ ▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓▓▓▓ ▓ ▓ ▓ ▓
▓▓ ▓▓ ▓▓▓ ▓ ▓ ▓ ▓▓▓ ▓ ▓▓▓ ▓ ▓▓▓▓▓
▓▓ ▓▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓
▓▓ ▓▓ ▓▓▓▓ ▓ ▓▓▓▓ ▓▓▓▓ ▓ ▓▓▓▓ ▓ ▓▓▓▓▓▓
▓
▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

┌────────── ┌────────── ┌──────────── ┌────────────
┌─── ┌─── ┌─── ┌─── ┌─── ┌───
┌─── ┌─── ┌─── ┌─── ┌───
┌────────── ┌─── ┌─── ┌─────── ┌───
┌─── ┌─── ┌─── ┌─── ┌───
┌─── ┌─── ┌─── ┌─── ┌───
┌─── ┌─── ┌─── ┌─── ┌─── ┌───
┌────────── ┌────────── ┌─── ┌───


(c) Copyright by Igor A. Maznitsa (2:5030/153.31)

------------------------------------------------------------------------------

Color expander for ZX-Spectrum

----------------------------------------------------------------------------

For many years, the Spectrum was the most common household-class computer in Russia, but recently its capabilities have ceased
satisfying the average user (and the user began to look towards other platforms). What the companies producing Spectrum
compatible computers have not done to keep user: they connected a hard drive, a modem, a writing keyboard, a music card, but the main drawback was not really corrected. This drawback is pseudo-color graphics (i.e. 16 colors for an 8x8 pixel square). There are many developments and schemes that improve Specky graphics, but all of them for one reason or another did not catch on.

If you take a branded computer (for example, the well-known Scorpio) and
connect to it three more of the same Scorpio, each of which works with
its own color (R, G, B) and the main one works with brightness (Y) (I feel like you are already twirling your finger at my temple in relation to me, but don’t rush. This idea came to me at the very beginning), then we get 16 color Specky with 16 color graphics
and without the slightest slowdown in the speed of graphics output to the screen, despite
the increased total volume of video RAM.

After simplification and optimization, this block diagram was obtained

┌────────────────────┐
│ │ ┌──────────┐ R
│ Brand board │────────│ Board │───────││ computer bus ││││││││││││││││││││││││││││││││││││ ┌─────────────┐
│ │ │ ┌────────┐ ║ │┌──────────┐ │
│ │ │ │ Board │ G ║ R,G,B,Y ││Display │ │
│ │ │ ││││││││││││││││││││││││ │ ║ ║ │└────────┘ │
│ │ │ │ └─────────┘ ║ ║ └───────────────────────────────────────────────────────────│ -║
╚══════════════════════════ ═══════════════════════ў

The branded board remains practically without modifications, except that here and there something needs to be buffered, it is necessary to install an ATTRIBUTES/RGBY multiplexer and
organize another port. All boards ©1,2,3 are: processor,
RAM (should be the same amount and the same as on the branded model), video signal generator
(must be implemented in the same way as on the branded version) and
several m/c multiplexers and bus shapers.

Operating principle

After switching on, a RESET signal is sent from the proprietary computer (hereinafter referred to as the main board) to
all additional boards. The signal must arrive
to all processors strictly synchronously. All processors on additional
boards are connected in parallel to the input system buses of the processor
on the main board (CLK, INT, NMI and etc.).Their address and system output buses
(RFSH, M1, etc.) are not connected to anything. The point is that the processors
on the main and additional boards work STRICTLY in parallel, which is
achieved by general synchronization and RESET. The data bus of the additional
processors is connected to its own RAM, located on the same board as this
processor and, through a bus buffer with the direction MAIN BOARD -
OPTIONAL BOARD, connected to the data bus of the main processor.
DuringWhen the main processor reads information from ROM or ports, additional
processors are connected to the main data bus and read the same
data (Since they all work with the same commands, the
address buses of additional processors are not needed, all address information
is generated by the main processor).
Address and signal buses of RAM on additional boards are connected
to similar signal and address buses on the main board (with the exception
of the write enable signal, which is generated separately) and the write
and data read buses are connected only to the data bus of the additional processor
installed on this board.
Each of the additional boards has a video generator absolutely
identical to the video generator on the main board. Load and byte shift
signals come from similar inputs of the video generator on the main board.
The outputs of all video generators are driven to a multiplexer to which
attribute signals are input on the main board. In the extended color mode, the multiplexer instead of attributes begins to output RGBY signals for each point to the video amplifiers of the main board
Unfortunately, this whole kitchen requires another configuration port which, after
turning on, switched the machine to standard mode and switched to
extended graphics mode.
Bit assignment configuration port:
0 - Graphicmode (0 - standard)
1 -\ Bits that control the permission of writing to memory on additional boards
2 -| and the main board
3 -|
4 -/
5 - reserved
6 - reserved
7 - reserved

All boards work strictly in parallel and execute the same
commands. In this mode, the difference between a regular Specky and this “monster”
is imperceptible, but we loaded a program adapted for a computer with
this configuration. First into the main memory and onto additional boards simultaneously
the main code block of the program is loaded. Then we disable recording on
additional boards. board and load sprites into the main RAM (and only
the brightness component of the pictures is loaded here). Then we turn off writing to the main RAM
and enable writing to the RAM of the additional board ©1. Here we load the
Red component of the sprites. We repeat the same operations for the Green and
Blue components, respectively. memory of boards ©2 and ©3.After loading, we enable
writing in RAM on all boards, switch to extended graphics mode,
reset the flags, install the stack and switch to the first
command of the code block that we loaded at the very beginning into all RAM.
As a result, on the screen we see a full-fledged 16-color game. Here we need
immediately make a reservation that a program running in extended graphics mode
MUST NOT check what it displays otherwisethe results will be
unpredictable.
Using the above principle allows you to make color
any two-color game that uses uncompressed sprites and does not check the output results on the screen. I assume that the old Laser Basic package will run freely on this device. Games developed for this device will run freely on unfinished Spectrums in black and white option.

Strelna 06/09/97 I.A. Maznitsa (Igor A. Maznitsa)

Send all questions about this material to 2:5030/153.31
=== Cut ===


Sincerely yours Igor

>> Together We will put an end to all bourgeois evil spirits!!!!!
E-Mail : ray...@itm.spb.su