Vortex Winchester Drive

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search

A Harddisk (HDD) solution for the CPC. The first for the CPC. Produced by the German company Vortex

The Harddisk was build about 1986. It has the same cases like the F1-S and the F1-D.

A big Power Supply which have about 1,5 Kilograms gives the power to the Harddrive.

It was shipped with the power supply, the harddisk itself, a built in 5,25" DD Diskdrive with 720KB and a controller.

The controller has two ports for two MFM Harddiscs (with 60MB capacity), two DD Floppys and a ROM board which give place for 2 Roms, which held the VDOS 2.0.

The VDOS used is specially adapted to support the hard disk.

The Contoller get it's power from the Harddisc.

The normal setup had a single 20 MB MFM Drive.

A Software Package consists of a few helpful tools:

  • Low level Format
  • Partition tools
  • Format partitions
  • Patch for CPM 2.2 and 3.0 (Plus) to support the Drive
  • File/Disccopy Tools
  • Disk format
  • Hex editor
  • and a few more...


CPCAI magazine claims the device has a WD1010 Winchester controller inside. It certainly seems to be WD1010 compatible.

The WD1010 has different commands and communication method compared to the Dobbertin (which appears to use SASI) and modern IDE (which uses ATA). It looks to be an ancester of the IDE because of the seperate cylinder and sector registers and a single command write to initiate commands but it's not the same as IDE/ATA.

Therefore the software & hardware is *not* compatible with other interfaces.

Port decoding appears to be:

bit 9 = wd1010 a2
bit 1 = wd1010 a1
bit 0 = wd1010 a0
bit 10 = 0 
bit 2 = 0

Except for bit 8, other bits are 1. It is not known which bits are decoded by the interface.

Bit 8 is 1 or 0, maybe it can't be either, but if it is set it could clash with other i/o. Maybe the ports chosen here don't clash.

Ports used and their function:

FBFA - wd1010 head/select (SDH) register (read/write)
FBFB - wd1010 write command (write)/wd1010 read status register (read) 
F9F8 - WD1010 data register (read/write) 
F9F9 = wd1010 precompensation register (write)
F9FA = wd1010 sector count register (read/write)
F9FB = wd1010 sector number register (read/write)
FAF8 = wd1010 cylinder low register (read/write)
FAF9 = wd1010 cylinder high register (read/write)
FAFA = drive/head select? drive bits match those in sdh. (write)

wd1010 documentation says head select/drive select not available as outputs.

"Description" sector: (incomplete)

byte 0: checksum of bytes 1 to 255 in sector
byte 7: ? not 0x0fe
byte 240: !=0 => no password, 0 => password
byte 241: password length in characters
byte 242: password characters CPLed (up to 10 characters?)
byte 252: drive id (0=a, 1=b, 2=c etc)

Furthur details:

  • MFM
  • 256 bytes per sector.
  • 32 sectors per cylinder
  • AMSDOS & CPM based filesystem
  • ROM doesn't autodetect hard disk. It asks you if it is connected and if you answer yes it accesses the drive. It can hang if no drive is connected.