A brief overview of some contemporary
controllers for use with external
storage media for the ZX-Spectrum
(C) Gartfelder Denis
In this short review, I tried to collect information on the
new controller for use with external storage media that can be
connected to the ZX-Spectrum. The described devices have a
number of distinctive features that make them and ended up in
this review:
1. They are designed by Western manufacturers and little known
among the "Eastern" (former Soviet) spektrumistov;
2. They are not products of industrial production, their device
is not normally very complicated and they can be collected
independently;
3. They use modern common storage media and built
available on the microcontroller, which facilitates their
assembly;
4. They are open and constantly improves the projects, and all
information about them available to everyone.
Much of the material for the review was
taken me from the English Spectrum-Journal
"ZX FORMAT" (namesake of domestic electronic edition) and was
supplemented with information from the sites of the developers
themselves. Using this opportunity to advise users of
English-speaking and having the opportunity to use the Internet
to get acquainted with this wonderful magazine to:
http://www.cwoodcock.co.uk/zxf
Just want to warn readers that
I have to put it mildly, not expert
iron and Spectrum periphery. Therefore,
ask advanced in these matters readers not much kick me
(mentally) because the use of inaccurate translations of
technical terms or any more significant errors in the article.
After all, her goal is not transfer of technical data and
disclosure principles of the devices, and
bring information about their existence
to the attention of those people who do not know
English or are unable to
read the foreign press.
Flash Disk for ZX
Developer: Roelof Koning (Roelof.Koning @ 12move.nl)
Using CompactFlashCard volume
128 Mb instead of the hard disk.
Memory card is inside
computer, connect the wire to the address bus (A7, A8, A14,
A15), the data bus, signals / RD, / WR, / IORQ. CFC Construction
requires no additional interface (1 resistor, 2 diode), one wire
end connected to the bus, while others are just stuck in the
female-socket card.
Operation is carried out through the IN / OUT on the
following ports:
A7 A15 A14 A8 Port Action
0 0 0 0 127 read / write of an even byte
0 0 0 1383 read / write odd byte
0 0 1 0 16511 Sector count
0 0 1 1 16 767 Number of sectors
0 1 0 0 32 895 Number of cylinder (Jr. B)
0 1 0 1 33 151 Number of cylinder (item B)
0 1 1 0 49 279 head
0 1 1 1 49 353 Status / Command
Sector size - 512 bytes read / write operations occur through
sektorbufera.
Since the card with 16-bit access,
information is divided into relatively "even" and
"Odd" byte. Once the port
127 were produced reading "even" bytes into it copies the value
of the "odd" port 383. Registers are responsible for rates head
/ cylinder / sector also support logical addressing (Mode
LBA).
Some (basic) commands:
Code Team
# EC Identification of the device (reading from sektorbufera
512 bytes of information on the manufacturer)
# 20 Reading sector
# 30 Write sector
The value of bits in the status register:
Bit Flag Meaning
0 ERR Error
1 0 Not used (always 0)
2 CORR necessary data correction
3 DRQ expected data
4 DSC Ready
5 DWF write error
6 RDY Ready to take command
7 BUSY Busy
In the normal state should be included
only 6 and 4-th bits.
Special software
to work with the card does not exist, the use of registers
suggests that writing routines read / write from card presents
no difficulty. Below is a sample program in BASIC-e, which
reads the card placed there sektorbufera team-identifiable
information:
10 CLEAR 39999: LET T = 40000
20 IF IN 49535 <> 80 THEN STOP: REM Check availability maps
30 OUT 49535,236: REM sends a command to identify the # EC
40 POKE T +1, IN 127: POKE T, IN 127: REM Reading "even" and
"Odd" byte of sektorbufera
50 IF IN 49535 <> 80 THEN LET T = T +2: GOTO 1940: REM cycle
will
continue for as long as the card will not give a signal
ready (after reading all 512 bytes)
1960 REM output the read information
70 FOR F = 40000 TO 400512
80 PRINT F; ""; PEEK F, CHR $ PEEK F AND PEEK F> 31
1990 NEXT F
In this example, line 50 not checking for errors that occur,
simply expected state of "ready." In reality, however, may
experience various errors, and they need to track.
ZXCF
Developer: Sami Vehmaa (user.tninet.se/ўvjz762w /)
Using CompactFlashCard as a universal drive.
Unlike the previous version, in which the map acts as a
"Zhelezopodkreplennogo ramdisk"
This development is a complete controller for use with CFC.
Accordingly, complicated and circuit portion, so that the
category of "do- himself, "this development can be attributed
to the large interference.
This system allows you to work in the operating system
ResiDOS or in specially adapted +3 e for Amstard ZX Spectrum
3 + (both the OS developer - Garry Lancaster). Nevertheless,
the controller will work on any Sinclair-compatible machines.
ResiDOS can not work with directories, but it can create
partitions (partitions). The controller also allows the use of
multi-(16 Kb) access to built-in RAM 512 or 1024 Kb.
The controller is connected to the system
jack (its dimensions, he somehow looks like a tombstone:)).
When you click on NMI button upload their own Task
Manager, one of the notable features
which is the ability to make snapshots of memory (up to 16
images in 48 mode with built-in memory in
1 Mb), switch between them and save them, both on the
CompactFlash-card and in memory of the device. Since the power
ZXCF autonomous, it can store information in its internal
memory as much as it will make the battery (which will last for
3 years and then have to apply some skill with a soldering iron
to replace it). You can download the game, go through several
levels, take a picture, save it in memory of the device, turn
off the computer and forget about it for a couple of months and
then turn and continue the game from the very
the place where she was the last time
preserved. Use as a device for saving maps CFC allows
perpetuate their playing record:).
The developer notes that the device is tested with several
types of CFC-drives of different capacities from different
manufacturers, and not all of them earned.
The page developer can find necessary for the independent
production of the device files (PCB Boards and concept).
YABUS.ZX
Developer: Jarek Adamski (zx@yarek.com)
Universal interface for connecting
external devices.
Connected to the system connector of a miniature controller
with two connectors, allowing you to connect and run in
parallel with different specialized modular devices (YAMOD). A
distinctive feature of the modules is their
zhelezonezavisimost; YABUS can be connected to the ZX 81, ZX
Spectrum, Timex, SAM Coupe, MSX, Amstard CPC. Besides the
version YABUS.ZX, the developer proposes interfaces for Amstard
ZX Spectrum +3 and Timex, probably will be a version for the
Commodore Amiga. The development interface that allows
"parasite" on the PC-hardware.
Working with some of the devices available in standard mode,
but to complete the work recommended special operating systems:
SRM22QED (Extended version of CP / M 2.2), ZXVGS (operating
system developed by the author this interface).
The author has developed the following modules:
Module Purpose
YAMOD.ATBUS IDE-controller that lets you connect HDD, CD
ROM, CFC. In addition, may carry on board
Nonvolatile clock with independent power supply
and
can generate an interrupt with a given
intervals (needed, for example, for the disk
Dov computers Timex)
YAMOD.EPROG was conceived as a programmer EEPROM and mikrokon
trollerov 8751, but in essence is a universal
nym parallel 30-bit port, allowing
msya communicate with the computer data about the
tocol ECP.
YAMOD.IDE8255 more simple (less fast) IDE-controller
YAMOD.ZXINPUT Allows you to connect a keyboard and mouse from
the PC.
Also allows you to generate an interrupt, so
as is done in the SAM Coupe (before each of the
191 screen lines)
YAMOD.KJ Connection Kempston-joystick
YAMOD.KMOUSE Connection Kempston-mouse (need a mouse on the
Amiga)
YAMOD.FDC765A floppy drive controller. The drive can operate in
two modes: as a ZX Spectrum +3, or as an ISA
Multi I / O
YAMOD.AY sound module. Additionally completed
I2C bus, and allows you to connect 8k EEPROM,
used the employed operating system ZXVGS
YAMOD. EPLIP Some smart parallel port with FIFO-Buffet
ramie
YAMOD.8250 serial port (like a PC). Through ZXVGS
You can work with connected thereto PC-mouse
YAMOD.8211 PC-like printer port
YAMOD.MB02 Port Programmable I / O Connector 8255
emom DB37 as a disk interface MB-02
YAMOD. PCMOUSE Simple RS-232 PC-mouse with a speed of 1200
or 19200 bps
YAMOD.SIO For professionals in the radio - allows
turn the computer into a TNC-modem (if you have
ku drink BayCom modem). What is it, I honestly
speaking, I do not know.
YAMOD.ETHERNET Allows you to connect several network modules
(Www.embeddedethernet.com), do not require a PC
for
their work. Perhaps it is more expensive
fun ...
Unfortunately, this project is commercial, and
developer fails to provide the public
access to basic circuits and devices
its modules. You can buy them from him for quite reasonable
prices.
Additional Information:
http://zx.yarek.com/dYABUS-en.html
Info on the operating system ZXVGS:
http://zxvgs.yarek.com
zxUSB
Developer: Dave "The Lurker" Mills
Controller for USB-devices
on the ZX Spectrum.
Trying to create a working USB-controller to connect to the
Spectrum-compatible machines of different devices, equipped with
Interface USB, first portable memory drives (USB FlashDrive).
Controller based on the chips National Semiconductor USBN9603
allows you to connect one device via a standard USB connector
to the system bus computer. Perhaps that will be developed
version for Connection via YABUS.ZX.
The base address of the controller - # 91. By
additional reprogramming of the controller and write the
program-handler nonmaskable interrupt NMI can be used to
control data transmission. Consumed by the connected device
power disabilities PSU Spectrum (current strength is not more
than 100mA).
Software to work with
device does not currently exist. All the necessary information,
including Files PCB layout, schematic diagram of the device
documentation USBN9603, can be found at:
http://8bitorbust.info/sinclair/spectrum/hardware/zxUSB/.
ZXATASP
Developer: Sami Vehmaa (user.tninet.se/ўvjz762w /)
16-bit interface to external drives.
ZXATASP a 16-bit IDE-controller
based on a programmable module NEC
D8255AC-5, allowing you to connect to a computer hard drive and
CompactFlash Card. It connects to the system connector and runs
on all Spectrum-machines from ZX Spectrum 16 without a hardware
revision computer. Has on board 128/512 Kb of memory, you can
load to it any flash ROM, select and work with one of the them.
8255 module features three 8-bit register
(A, B, C) and status register (CWR), which allows to monitor
the status of ports syazannyh with these three registers:
Register Port Value
A # 009F Byte
B # 019F High Byte
C # 029F Condition IDE / MEM
CWR # 039F control register
Register CWR allows for switching
read / write registers A and B (case
C is always in write mode):
OUT 927,146 - switch registers as a result
bench reading
OUT 927,128 - switch registers as a result
bench press record
The values of the flags register C:
Value
Bit
Non-Latched Latched
0 A0
1 A1
Page 2 A2
3 / IOWR
4 / IORD
5 / CS0 first channel IDE / CS0
6 Latch clock
7 / CS0 second channel IDE MEM on / off
Examples of routines that write / read data through the IDE:
10 REM Write data to IDE
20 REM Sets the value of early register bus IDE (D00-D07)
30 LET DATALOW = 139
40 REM Sets the value of older register bus IDE (D00-D07)
50 LET DATAHIGH = 217
60 REM Switch to record the port
1970 OUT 927,128
80 REM Shipment value junior and senior registers
bus to the appropriate ports
1990 OUT 159, DATALOW
100 OUT 415, DATAHIGH
110 REM Get access to the register state IDE
120 OUT 671,55
130 REM Reset all control flags
140 OUT 671,0
10 REM Read data from IDE
20 REM Switch to read from the port
1930 OUT 927,146
1940 REM Get access to the register state IDE
1950 OUT 671,55
1960 REM Read the values of younger and older registers
tires from the corresponding pores
70 LET DATALOW = IN 159
80 LET DATAHIGH = IN 415
90 REM Reset all control flags
100 OUT 671,0
The device is equipped with a low-capacity memory of 128 or
512 Kb. Zero memory page contains a boot loader and utilities
for working with the IDE, the first - a few modified firmware
ROM. The principle of operation is to be loaded with IDE, and
then substitute for zero loading page "native" or any another
ROM (with enough memory to store their few dozen). For this
purpose the second bit of register C in the set condition, and
the number memory pages given by bits 0-4 of this
same case:
OUT 617 (64 + page number)
To disable this feature using the seventh bit of register C,
and should be included, and the sixth, and seventh bits and
bits from zero to four must be Always turn off (and the
controller properly initialized command OUT 927, 128 or OUT
927, 146). If this was not to be, then "with the second IDE
channel can happen anything bad "(quote from the technical
documentation to device).
Download to your device firmware
ROM is as follows: in
certain position set the jumpers on the device itself, then the
device is initialized and configured by register C, then the
image ROM can be loaded into the memory using POKE 016,383 or
LDIR.
Glossary
I ¤ C - Inter-IC, the communication interface between the inter
grated circuits.
IDE - Integrated Device Electronics, type
interface disk drives in
which the control electronics time
was placed in the drive, does not require
buoy special adapter card.
CFC - Compact Flash Card, memory card, it
bone 1-512 Mb. The interface is sufficient
but versatile format CF susches
tvuet many devices - modems, FD
tokamery, network adapters, GSM model
Dooley and hard drives. Used
Some handheld computers.
EEPROM - Electrically Erasable Programmab
le ROM, electrically-erasable prog
rammiruemoe ROM.
FIFO - First-In-First-Out, a buffer, from which
rogo are released on the same
row, as they did (so called.
buffer FIFO).
RS-232 - Recommended Standard 232, Industrial
lenny standard for serial
compounds, identifies specific
lines and signal characteristics, study
the employed controller sequence
Tel'nykh compounds.
USB - Universal Serial Bus, Universal
Serial Bus.