The QL-HDD-Card was a hard disk interface from German company ABC Elektronic and designed by Jürgen Falkenberg.

The English version of the QL-HDD-Card Manual (dated 12/1991) (translated from the german original, which you can find further down) appears below:

The JFC QL-HDD-Card is a powerful and flexible interface card for the system bus of the SINCLAIR QL for operating a hard disk via an additional PC hard disk controller to be connected to the card.
The device driver for the new directory device win1_ is available in the HDD-Card and is available immediately after switching on. It supports fast disks of virtually any size.

MFM hard drives

One of the following MFM controllers is required to operate an MFM hard disk: OMTI: 5520A, 5520B
Western Digital: WD-1002A-WX1
DataTech: MFM Controller

RLL hard drives

RLL hard drives can be powered by one of the following RLL controllers: OMTI: 5527A, 5527B
Western Digital: WD-1002-27X, WD-1002A-27X

Power supply unit and housing

Due to the individually different expansion of many QLs, we have designed the structure of a hard disk system with the HDD card as an "open solution", without a hard disk of a certain size, power supply unit and housing. This allows the experienced hobbyist in particular a significant cost saving compared to the finished complete system. Of course we can deliver all required parts, also ready to plug in.

The hard disk controller to be connected is already supplied with power from the QL via the HDD card If you are still using the original QL power supply, you must ensure that it is not overloaded (especially if there are other peripherals on the QL). If it gets very hot and dark stripes move vertically across the screen, the power supply is overstrained and must be replaced by a stronger one.

For the hard disk an additional power supply with +5V and +12V DC voltage and the hard disk corresponding power design is required in any case. With QL systems, which were built into a PC housing with integrated power supply, this can usually also be used for the Winchester. A suitable housing for the hard disk drive is then already available here. Otherwise, you will need a sheet steel housing, with sufficient space for the additional power supply unit.

ROM port adapter

Since the Miracle Gold Card does not allow parallel operation of other QL cards on the system bus, the HDD-Card can be connected to the ROM port via a special adapter. Of course, the adapter can also be used if the system bus is otherwise occupied and you do not have/do not want to connect a BUS driver.

The QL HDD Card

Like all JFC peripheral cards, it does not support Sinclair's electrically and mechanically questionable concept with looped through system bus and automatic addressing of slave cards. In our opinion, an extended system with several cards should have a BUS driver with several slots.

In principle, the QL-HDD-Card can be connected directly to the QL system bus, the looped through bus of a QL card, any slot of the JFC BUS driver or any other (functional) QL bus driver or with the special ROM port adapter also to the QL ROM port.

Due to its dimensions, however, the board cannot be connected directly to the system bus as the first board if the QL motherboard is (still) accommodated in the original housing. In practice, however, the two will hardly occur together.

Addressing the card

As with all JFC peripheral cards, the HDD card is addressed transparently and individually by switches. It requires 16K address space and can be switched to one of the 17 expansion slots as well as three additional 16K blocks which are not supported by QDOS but are generally free. For this purpose, one of the valid combinations listed below must be set at switches 1 to 5:

When used with other QL peripheral cards, it is important to ensure that an expansion slot is not used twice.

512K RAM expansions are always in the $40000 to $BFFFF address range and can never lead to conflicts. Thanks to their configuration with switches, double address assignment with JFC cards can also be easily avoided. Expansion cards of other manufacturers are either on fixed addresses (eprom cards) or use the automatic addressing from $COOOOO and can only be configured by a modification or via the JFC BUS driver.

For a secure check, install your system first completely with the exception of the HDD card and check the intended address space by querying the decimal base address adr with the following command:

PRINT PEEK_W (adr),PEEK_W(adr+2).

If the numbers 19195 and 1 are output, the corresponding base address is already occupied.

Address restrictions with special QL cards

The Sandy SuperQBoard occupies 32K address space (two consecutive slots), whereby usually only its base address, i.e. the first slot, can be queried. When using a QBoard, the slot preceding the planned HDD card address (if from $COOOO) must also be checked as above.

If a JFC QL-ROM card is used as extended operating system ROM ($00000 to $17FFF, ROM card page 1, see ROM card manual}, of course it occupies the 16K blocks at $10000 and $14000.

The Miracle Trump Card uses the slots $10000, $14000 and $1COOO in principle. If it is equipped with 768K RAM, all slots from $COOOOO are occupied and the HDD card can only be addressed to $COOO (ROM port).

To use the HDD card with the Miracle Gold Card, the special ROM port adapter is required and the card must be installed on $COOO.

The addresses $10000, $14000 and $1COOO are not originally intended for extensions and are not checked by the standard QDOS so that the driver EPROM is not recognized. If you still want to use this address space (with the exception of the cases mentioned above), the Winchester driver must be explicitly included after system startup by the command CALL adresse+48, whereby the corresponding decimal value (65536, 81920 or 114688) must be used for address. If you have assembler and system knowledge, you can easily add an additional EPROM (ROM port or QL-ROM card) or an additional query for these addresses by modifying the operating system. The older QDOS versions (up to JM) even only check the ROM port ($COOO) and the first upper ROM slot ($COOOO) for extensions. The above restrictions then also apply to all extension addresses from $C4000.

Connecting the controller card

With the HDD card one of the Winchester controllers listed on page 1 can be used. The controller has a 62-pole contact plate, which is inserted into the 62-pole plug-in card connector on the HDD card. Make sure that the connection marked A1 on the controller is also connected to the contact marked A1 on the HDD card (the nearest to the QL bus connector). Both cards form a right angle with the sides of the component inside.

Connecting the hard disk

On the controller card, a 20-pin and 34-pin male connector are arranged next to each other, to which the hard disk is connected via two special ribbon cables. A possibly existing second 20-pin pin header below the first one can be ignored. The required flat cables are usually included with the hard disk, but can also be obtained from your specialist dealer or directly from us. When connecting, make sure that the pin 1 of the fast plate is connected to the pin 1 of the controller. The system is now complete and can be put into operation.

The driver in the eprom on the board adds the new directory device win1 to the QL. Like any other QL directory unit (floppy, microdrive, RAM disk), the hard disk can be used to back up, load, copy files. In addition to the many times higher storage capacity compared to normal 720K-QL-Floppies, a much faster file access is now also possible. The Winchester driver supports hard drives of any size. It has an extended filing system with real subdirectories that are strongly based on the Level-2 FLP system. If you have the Level-2 drivers (GOLD-Card or TrumpCard/QBoard with Level-2-Eprom), some of the additional commands (e.g. MAKE_DIR, but not the extended file attributes) can also be used with the hard disk.

Formatting the hard disk

Before the hard disk can be used in the newly installed system, it must first be formatted. For this purpose, the "WINform_exe" program, which formats the disk physically (low-level) and logically, is located on the media which is supplied. WINform is started (with TK2 loaded) with a parameter string consisting of eight plate-specific parameters, each separated by a space:

ex flp1_winform_exe; "cyls heads mode clsize rwc pcc interl name"

cyls Number of tracks (cylinder} of the disk. heads Number of heads. mode = 'M' or'R' determines the controller-dependent recording method (MFM/RLL). clsize specifies how many sectors each 512 bytes) are to be combined into a cluster. A cluster is the smallest amount of storage space that is allocated when a file is copied to the hard disk, regardless of how much storage it actually requires. Since one copy of the FAT (File Allocation Table) is always kept in QL memory, large clusters save memory, but files waste more physical disk space on average. Below 40MB 4 should be used for clsize, above 8, only powers of 2 (2, 4, 8, 16, 32, 64 and 128) are valid. rwc is the "reduced write currency start cylinder", from which write current is reduced (see data sheet of the disk), in case of doubt set = 0. pcc is the "precompensation start cylinder", from which the length of the inner tracks is changed (see data sheet}, in case of doubt set = 0. interl defines the sector offset and should be set = 2 or = 3. name is the medium name of the hard disk up to 10 characters long, which is displayed at DIR.

EX flp1_winform_exe; "615 4 M 4 0 0 2 QLHDD", for example, formats a Western Digital WD-362 or Seagate ST-225 and deletes all data stored on it. Formatting takes about one minute per 300 tracks, depending on the number of heads. Then start the program "WINtracks_bas" of the enclosed diskette with LRUN flp1_wintracks_bas to block the faulty disk sectors specified in the defectlist (usually attached to the disk case). The hard disk is then ready for use like a formatted diskette.


When the driver is mounted after power-on or a reset, the disk heads are moved to track 0 to check their proper function. If no disk is found or another error occurs, the driver is not initialized and no power-on message appears. If no controller is inserted into the HDD card, the driver remains "stuck" during initialization.

Automatic Boot

If a correctly formatted hard disk is detected during the check, the driver searches for the "boot" file and starts it automatically after pressing the <F1> or <F2> key as usual from Floppy or Microdrive. The autoboot routine is already implemented in the QL-internal ROM, whereby QDOS first attempts to load a basic program from a device "boot". If this is not available, the file "boot" on the device "mdv1_" is searched. The previous floppy drivers for the QL use this autostart option as follows: During initialization, the system checks whether a diskette is inserted in the drive. If yes, the floppy driver is first logged on under the name "mdv" (!) and the driver notes that the floppy must be renamed to "flp" the next time it is accessed. QDOS will now search for the boot device and then "mdv1_boot" and load and execute the file "boot" from the floppy. The driver immediately renames the floppy to "flp" and the user doesn't notice anything about the whole procedure. This procedure becomes problematic if there are other autostartable directory devices in the system. The hard disk (and the MOS driver of the QL-ROM card) go another way: In addition to the Winchester driver, the operating system of the HDD card also integrates the "boot" device, a short basic program that tries to load "win1 boot". This avoids name conflicts, since QDOS automatically knows and executes only the most recently entered ROM extension at the highest address, even if the boot device is logged on several times. By selecting the base address of each extension, the user can individually determine from which medium he wants to boot.

This inconsistent prevents a floppy from being renamed to "flp" because it has been inserted as "mdv", since QDOS will execute "boot" from the HDD driver and the FLP driver will not be given the correct name "flp" by calling "mdv1_boot". This can only be done the first time the floppy is accessed (which must be done via "mdv"). Therefore insert DIR mdv1_ or FLP_ USE flp into the boot program of the hard disk. Alternatively, the Winchester boot program can use the TK2 function FTEST(\mdv1_boot) to detect a disk inserted in the floppy and start its boot program, which is ultimately the most elegant method for redirected autostart.

If the hard disk boot program contains a major error that causes the system to crash or "get stuck" immediately, it can be stopped by repeatedly pressing <Ctrl> & <Space> before executing the first statement. However, it must not have been written without line numbers.

New Basic commands

The Winchester driver adds four new commands to Basic:

WIN USE "new" gives the hard disk the new device name new, so that the fast disk is always used for all subsequent accesses to new. To be able to use programs that are pre-installed for the use of certain units (e.g. flp) without reconfiguration, the name 'win' can be replaced by any three letters or another unit name.

PARK moves the heads of the plate to the parking position. To prevent the magnetic layer from being damaged by the heads sinking to the plate surfaces after switching off, the heads can be driven onto the (undescribed innermost) parking lane with PARK. In normal operation, this is only necessary for older drives, but in any case before each transport of the hard disk.

SYNC writes all not yet saved slave blocks to the hard disk. The driver fully utilizes the slave blocks provided in QDOS to buffer data and reduce comparatively slow physical access. Only if the processor has nothing else to do or the memory is used otherwise, the slave blocks are written to disk. This causes a serious acceleration of file accesses, especially when updating the same file, but is fatal if the system crashes or the power fails before all slave blocks have been written. SYNC should always be entered when starting a program that is at risk of crashing.

CALL_S adr[val1][,val2][,val3)[…] allows the machine language routine to be called at the address adr, similar to CALL. The parameters val1, val2,… are not transferred to the registers, but (in the correct order) written to the stack. CALL_S is helpful for direct sector access.

The directory of the hard disk

Since QDOS can only display a maximum of 32767 sectors (=16MB) for a directory unit, but hard disks generally have considerably more memory, the number of sectors in sectors per 10KB (=20 standard sectors per 512 bytes) is displayed in the directory of the hard disk: 583/2091 sectors indicates that 11660…11679 sectors of the just under21MB are still free. If the Level-2 Filing system is installed (GOLD-Card, TrumpCard/QBoard with L2- Eprom, see above) this change is not effective. It takes into account the high number of sectors of hard disks, so that QDOS can now also display higher number of sectors. A DIR of the above plate then delivers: 11660/41820 sectors.


With the large storage capacity of a hard disk with hundreds of files, the use of subdirectories is unavoidable. In QDOS, the directory name (path} is placed before the actual file name, e.g. "letter_" before all letter files. Directories can also be nested in several levels, resulting in a tree structure. However, you must ensure that the entire path and file name does not exceed 36 characters in length. You should therefore choose short directory names or not too deep nesting.

Unlike the Level 2 FLP drivers, the Winchester driver does not require a new Basic command to create a directory. This is inconsistent, but has the advantage that directories can also be created by application programs and not only from the basic level. If a file is created that contains a"&" in its name, a directory with the same name is generated, e.g. SAVE "win1_&newsubdir". All files "win1_newsubdir_" created below are automatically entered in this directory. The command DIR win1_ now shows only the directory "newsubdir"; the files contained in it are only visible by DIR win1_newsubdir_. This prevents the basic directory level from being confused with hundreds of files. Although the Winchester driver is not a true level 2 driver, Filing System 2 also supports the hard disk. If you have a GoldCard or a Trump-Card or a QBoard with Level-2 driver exchange EPROM, the above directory on the hard disk can also be created with MAKE_DIR win1_newsubdir (see flp-level-2 manual). If Filing-System-2 is active, the Winchester directories will also be indicated by an appended "→".

A subdirectory can be deleted with DELETE win1_subdir if it does not contain any files (anymore).

An individual file can be accessed either by entering the entire medium, path and file name in a less convenient way or by using the TK2 default device management with PROG_USE, DATA_USE, DEST _USE and the commands DUP and DDOWN for changing the directory level (see TK2 instructions).

Since many programs (e.g. Quill) do not accept more complex file names and ignore TK2 default devices, a working directory can be set up before the program starts. It is stored separately for each job and passed to child jobs so that a working directory (initially created in Basic) can be changed in the job itself. The working directory is defined by addressing a file with the "$" symbol inserted, e.g.: DIR "win1_quill_briefe_$". If Quill is now started, the driver automatically prepositions the working directory when loading (or saving) the file "Win1_meier1_doc", so that Quill actually accesses "win1_quill_briefe_meier1_doc", which would otherwise not be possible with the file names that are up to 8 characters long in Quill.

The workdirectory itself cannot be switched to a higher or lower directory level. It must first be deleted by a file command to "win1_!$" before it can be reconfigured with "$" as described above.

If the"…" switch is inserted into a file name, a directory level can be temporarily switched up. If the workdirectory is empty, LOAD loads "win1_basic_progs_$test_bas" in the directory "win1_baslc_progs" and sets "win1_basic_progs" as the workdirectory. MERGE "win1_.._subprogs_proc1_bas" then loads the file "proc1_bas" from the parallel directory "win1_basic_subprogs", the working directory remains unchanged.

With"!" as switch the set working directory and any previous name parts can be ignored: LOAD 'win1_egal_!boot" loads the boot program from the root directory (root directory, top level) regardless of which workdirectory is set.

It should be emphasized that the working directories are only an auxiliary concept for programs that do not accept long file names or the more practical TK2 default device management. A mixed use (one path half workdirectory, the other via TK2 default device) does not work and always leads to problems. You should therefore work with either the default devices or the work directories.

Included software

The data carrier enclosed with the HDD card contains programs and further information required or useful for hard disk operation:

winform_exe is the program already described for formatting the hard disk.

deftracks_bas allows the locking of faulty disk sectors after formatting.

winbak_exe, selbak_exe and bakread_doc are two PD programs for convenient hard disk backup together with instructions.

quillboot_bas is a demo boot program and illustrates the work with the working directory.

readme_doc is a Quill document for inventors and describes direct sector access to the disk.

Anleitung für die QL-HDD-Card von Jürgen Falkenberg Computertechnik.

Die JFC QL-HDD-Card ist eine leistungsfähige und flexible Interfacekarte für den System-Bus des SINCLAIR QL zum Betrieb einer Festplatte über einen zusätzlich an die Karte anzuschließenden PC-Festplatten-Controller. Der Einheitentreiber für das neue Directory Device win1_ ist in dem auf der HDD-Card befindlichen Eprom enthalten und steht sofort nach dem Einschalten zur Verfügung. Er unterstützt Fastplatten von praktisch beliebiger Größe.


Zum Betrieb einer MFM-Festplatte wird einer der folgenden MFM-Controller benötigt: OMTI: 5520A, 5520B Western Digital: WD-1002A-WX1 DataTech: MFM-Controller


RLL-Festplatten können über einen der folgenden RLL-Controller betrieben werden: OMTI: 5527A, 5527B Western Digital: WD-1002-27X, WD-1002A-27X

Netzteil und Gehäuse

Aufgrund des individuell verschiedenen Ausbaus vieler QLs haben wir den Aufbau eines Festplatten-Systems mit der HDD-Card als "offene Lösung" konzipiert, ohne Festplatte bestimmter Größe, Netzteil und Gehäuse. Dies ermöglicht insbesondere dem erfahrenen Bastler eine deutliche Kosteneinsparung gegenüber dem fertigen Komplett-System. Natürlich können wir auf Wunsch alle benötigten Teile, auch ansteckfertig liefern. Der anzuschließende HardDisk-Controller wird bereits vom QL über die HDD-Card stromversorgt Wenn Sie noch das Original-QL-Netzteil verwenden, müssen Sie (insbesondere bei weiterer Peripherie am QL) sicherstellen, daß es nicht überlastet wird. Wenn es sich stark erwärmt und dunkle Streifen vertikal über den Bildschirm wandern ist das Netzteil überfordert und muß durch ein stärkeres ersetzt werden. Für die Festplatte wird in jedem Fall ein zusätzliches Netzteil mit +5V und +12V Gleichspannung und der Festplatte entsprechender Leistungsauslegung benötigt. Bei QL-Systemen, die in ein PC-Gehäuse mit integriertem Netzteil eingebaut wurden, kann dieses meist auch für die Winchester verwendet werden. Hier ist dann auch schon ein geeignetes Gehäuse zur Unterbringung des Festplatten-Laufwerkes vorhanden. Andernfalls be-nötigen Sie noch ein Stahlblech-Gehäuse, zweckmäßigerweise mit ausreichendem Platz für das Zusatz-Netzteils.


Da die Miracle GOLD-Card keinen Parallelbetrieb anderer QL-Karten am System-Bus gestattet, kann die HDD-Card über einen speziellen Adapter an den ROM-Port angeschlossen werden. Der Adapter kann natürlich auch sonst verwendet werden, wenn der System-Bus sonst belegt ist und Sie keinen BUS-Treiber besitzen/anschließen wollen.

Die QL HDD Card

wie alle JFC Peripheriekarten unterstützt sie aber nicht das von Sinclair vorgesehene, elektrisch wie mechanisch fragwürdige Konzept mit durchgeschleiftem System-Bus und automatischer Adressierung von Folgekarten. Ein mit mehreren Karten solide erweitertes System sollte unserer Ansicht nach grundsätzlich über einen BUS-Treiber mit mehreren Steckplätzen verfügen.

Die QL-HDD-Card kann prinzipiell direkt am QL System-Bus, dem durchgeschleiften Bus einer QL-Karte, einem beliebigen Steckplatz des JFC BUS-Treibers oder eines anderen (funktionstauglichen) QL-Bus-Treibers oder mit dem speziellen ROM-Port-Adapter auch am QL ROM-Port angeschlossen werden.

Aufgrund ihrer Abmessungen kann die Karte jedoch nicht als erste Karte direkt am System-Bus angeschlossen werden, wenn die QL-Hauptplatine (noch) im Original-Gehäuse untergebracht ist. Beides wird in der Praxis aber kaum zusammen vorkommen.

Adressierung der Karte

Die Adressierung der HDD-Card erfolgt wie bei allen JFC Peripheriekarten transparent und individuell flexibel durch Schalter. Sie benötigt 16K Adressraum und kann auf einen der 17 Erweiterungs-Steckplätze sowie drei weitere 16K-Blöcke, die von QDOS nicht unterstützt werden im allgemeinen aber frei sind, geschaltet werden. Hierzu ist an den Schaltern 1 bis 5 eine der nachfolgend gelisteten gültigen Kombinationen einzustellen:

Bei der Verwendung mit anderen QL-Peripheriekarten müssen Sie beachten, dass ein Erweiterungsslot nicht doppelt belegt wird. 512K-RAM-Erweiterungen liegen grundsätzlich im Adressraum $40000 bis $BFFFF und können nie zu Konflikten führen. Durch ihre Konfiguration mit Schaltern kann eine doppelte Adressbelegung mit JFC-Karten auch leicht vermieden werden. Erweiterungskarten anderer Hersteller liegen entweder auf festen Adressen (Eprom-Karten) oder benutzen die automatische Adressierung ab $COOOO und können nur durch eine Modifikation oder über den JFC BUS-Treiber adresskonfiguriert werden. Zur sicheren Überprüfung installieren Sie Ihr System zunächst komplett mit Ausnahme der HDD-Card und überprüfen den vorgesehenen Adressraum durch Abfrage der dezimalen Basisadresse adr mit folgendem Befehl: PRINT PEEK_W (adr),PEEK_W(adr+2). Werden die Zahlen 19195 und 1 ausgegeben, ist die entsprechende Basisadresse bereits belegt.

Adressbeschränkungen mit speziellen QL-Karten

Das Sandy SuperQBoard belegt 32K Adressraum (zwei aufeinanderfolgende Slots), wobei meist nur ihre Basisadresse, also der erste Steckplatz, abgefragt werden kann. Bei Verwendung eines QBoards muß grundsätzlich auch der der geplanten HDD-Card-Adresse (wenn ab $COOOO) vorangehende Steckplatz wie oben überprüft werden. Wird eine JFC QL-ROM-Card als erweitertes Betriebssystem-ROM ($00000 bis $17FFF, ROM-Card-Seite 1, vgl. ROM-Card-Handbuch} verwendet, belegt sie natürlich die 16K-Blöcke bei $10000 und $14000. Die Miracle TrumpCard benutzt die Slots $10000, $14000 und $1COOO grundsätzlich. Ist sie mit 768K RAM ausgerüstet, sind auch alle Steckplätze ab $COOOO belegt und die HDD-Card kann nur noch auf $COOO (ROM-Port) adressiert werden. Zum Betrieb der HDD-Card mit der Miracle GOLD-Card ist der spezielle ROM-Port-Adapter nötig und die Karte muß auf $COOO installiert werden.

Die Adressen $10000, $14000 und $1COOO sind ursprünglich nicht für Erweiterungen vorgesehen und werden vom Standard QDOS nicht überprüft, sodaß das Treiber-Eprom nicht erkannt wird. Wollen Sie dennoch diesen (mit Ausnahme der oben genannten Fälle meist verschenkten) Adressraum nutzen, muß den Winchester-Treiber nach dem System-Start explizit durch den Befehl CALL adresse+48 eingebunden werden, wobei für Adresse der entsprechende Dezimalwert (65536, 81920 oder 114688) einzusetzen ist. Wer über Assembler- und Systemkenntnisse verfügt, kann leicht über ein Zusatz-Eprom (ROM-Port oder QL-ROM-Card) oder durch Modifikation des Betriebssystems eine zusätzliche Abfrage für diese Adressen einfügen. Die älteren QDOS-Versionen (bis JM) prüfen sogar nur den ROM-Port ($COOO) und den ersten oberen ROM-Slot ($COOOO) auf Erweiterungen. Die oben genannten Einschränkungen gelten dann also auch für alle Erweiterungsadressen ab $C4000.

Anschluß der Controller-Karte

Mit der HDD-Card kann einer der auf Seite 1 gelisteten Winchester-Controller verwendet werden. Der Controller verfügt über eine 62 polige Kontaktfläche, die in den 62 poligen Steckkartenverbinder auf der HDD-Card eingesteckt wird. Beachten Sie unbedingt, daß der am Controller mit A1 bezeichnete Anschluß in den auf der HDD-Card-Piatine ebenfalls mit A1 beschrifteten Kontakt (der zum QL-Bus-Stecker Nächstliegende) kommt. Beide Karten bilden einen rechten Winkel, wobei die Bauteileseiten innen liegen.

Anschluß der Festplatte

Auf der Controller-Karte sind eine 20 polige und 34 polige Stiftleiste nebeneinander angeordnet, an denen die Festplatte über zwei spezielle Flachbandkabel angeschlossen wird. Eine eventuell vorhandene zweite 20 polige Stiftleiste unterhalb der ersten kann ignoriert werden. Die erforderlichen Flachkabel befinden sich meist im Lieferumfang der Festplatte, können aber auch über Ihren Fachhändler oder direkt von uns bezogen werden. Beim Anschluß ist zu beachten, daß der jeweils mit Pin 1 bezeichnete Anschluß der Fastplatte mit dem mit Pin 1 bezeichneten Stift des Controllers verbunden wird. Das System ist jetzt komplett und kann in Betrieb genommen werden.

Der Treiber in dem auf der Karte befindlichen Eprom fügt dem QL das neue Directory Device win1 hinzu. Die Festplatte kann wie jede andere QL-Directory Einheit (Floppy, Microdrive, RAM-Disk) zum Sichern, Laden, Kopieren usw. von Dateien benutzt werden. Neben der gegenüber normalen 720K-QL-Floppies zigfach höheren Speicherkapazität ist nun auch ein wesentlich schnellerer Dateizugriff möglich. Der Winchester-Treiber unterstützt Festplatten beliebiger Größe. Er besitzt ein erweitertes Filing-System mit echten Unterverzeichnissen, die stark an das Level-2 FLP-System angelehnt sind. Wenn Sie die Level-2 Treiber (GOLD-Card oder TrumpCard/QBoard mit Level-2-Eprom) besitzen, lassen sich einige der zusätzlichen Befehle (z.B. MAKE_DIR, nicht jedoch die erweiterten File-Attribute) auch mit der Harddisk nutzen.

Formatieren der Festplatte

Bevor die Festplatte im neu installierten System verwendet werden kann, muß sie zunächst formatiert werden. Hierfür befindet sich auf dem mitgelieferten Datenträger das Programm "WINform_exe"., das die Platte physikalisch (low-level) und logisch formatiert. WINform wird (bei geladenem TK2) mit einem Paramaterstring gestartet, der aus acht je durch ein Leerzeichen voneinander getrennten plattenspezifischen Parametern besteht:

ex flp1_winform_exe; "cyls heads mode clsize rwc pcc interl name"

cyls Anzahl der Spuren (Zylinder} der Platte.

heads Anzahl der Köpfe.

mode = 'M' oder 'R' bestimmt das controller-abhängige Aufzeichnungsverfahren (MFM/RLL).

clsize gibt an, wieviele Sektoren je 512 Bytes) zu einem Cluster zusammengefasst werden sollen. Ein Cluster ist die kleinste Speicherplatzmenge, die beim Kopieren auf die Fest-platte vergeben wird, unabhängig wieviel Speicher eine Datei tatsächlich benötigt. Da immer eine Kopie der FAT (File Allocation Table, Tabelle aller Cluster) im QL Arbeitsspeicher gehalten wird, sparen große Cluster Arbeitsspeicher, Dateien verschwenden im Schnitt aber mehr physikalischen Plattenspeicher. Unter 40MB sollte 4 für clsize verwendet werden, darüber 8. Gültig sind nur 2er Potenzen (2, 4, 8, 16, 32, 64 und 128).

rwc ist der "reduced write currency start cylinder", ab dem mit geringerem Schreibstrom geschrieben wird (vgl. Datenblatt der Platte), im Zweifelsfall = 0 setzen.

pcc ist der "precompensation start cylinder", ab dem durch die kürze Länge der inneren Spuren verändert aufgezeichnet wird (vgl. Datenblatt}, im Zweifel = 0 setzen.

interl legt den Sektor-Versatz fest und sollte = 2 oder = 3 gesetzt werden.

name ist der bis zu 10 Zeichen lange Mediumname der Festplatte, der bei DIR angezeigt wird.

EX flp1_winform_exe; "615 4 M 4 0 0 2 QLHDD" beispielsweise formatiert eine Western Digital WD-362 oder Seagate ST-225 und löscht dabei natürlich alle auf ihr gespeicherten Daten. Das Formatieren dauert je nach Kopfzahl rund eine Minute je 300 Spuren. Starten Sie dann noch das Programm "WINtracks_bas" der beiliegenden Diskette mit LRUN flp1_wintracks_bas, um die in der (meist auf das Plattengehäuse aufgeklebten) Defectlist angegebenen fehlerhaften Plattensektoren zu sperren. Die Harddisk ist dann wie eine formatierte Diskette einsatzbereit.


Beim Einbinden des Treibers nach dem Einschalten oder einem Reset werden die Köpfe der Platte auf Spur 0 gefahren, um ihre ordnungsgemäße Funktion zu überprüfen. Wird keine Platte gefunden oder tritt ein anderer Fehler auf, wird der Treiber nicht initialisiert und es erscheint keine Einschaltmeldung. Wenn kein Controller in die HDD-Card eingesetzt ist, bleibt der Treiber beim initialisieren ganz "hängen".


Wenn bei der Überprüfung eine korrekt formatierte Festplatte erkannt wird, sucht der Treiber nach der Datei "boot" und startet sie nach dem Drücken der <F1>-oder <F2>-Taste wie von Floppy oder Microdrive gewohnt selbstständig. Die Autoboot-Routine ist bereits im QL-internen ROM implementiert, wobei QDOS prinzipiell zunächst versucht, von einem Device "Boot" ein Basic-Programm zu laden. Ist dieses nicht vorhanden, wird die Datei "boot" auf dem Device "mdv1_" gesucht. Die bisherigen Floppy-Treiber für den QL nutzen diese Autostartmöglichkeit wie folgt: Beim initialisieren wird überprüft, ob eine Diskette im Laufwerk eingelegt ist. Falls ja, wird der Floppy-Treiber zunächst unter dem Namen "mdv" angemeldet (!) und der Treiber vermerkt sich, daß die Floppy beim nächsten Zugriff in "flp" umzubenennen ist. QDOS wird nun beim Booten zunächst das Boot-Device und dann "mdv1_boot" suchen und dadurch die Datei "boot" von der Floppy laden und ausführen. Der Treiber nennt die Floppy sofort in "flp" um und der Anwender merkt nichts von der ganzen Prozedur. Problematisch wird dieses Verfahren, wenn sich weitere autostartfähige Directory-Devices im System befinden. Die Festplatte (und der MOS-Treiber der QL-ROM-Card) gehen einen anderen Weg: Das Betriebssystem der HDD-Card bindet neben dem Winchester-Treiber zusätzlich das Device "boot", ein kurzes Basic-Programm, das "win1 boot" zu laden versucht, ein. So kommt es zu keinen Namenskonflikten, da QDOS automatisch auch bei mehreren Anmeldungen für das Boot-Device nur das zuletzt eingetragene von der an der höchsten Adresse liegenden ROM-Erweiterung kennt und ausführt. Durch entsprechende Wahl der Basisadresse jeder Erweiterung kann der Anwender so individuell bestimmen, von welchem Medium er booten möchte.

Durch diese Inkonsistent wird die Rückbenennung einer infolge eingelegter Diskette als "mdv" angemeldeten Floppy in "flp" verhindert, da QDOS ja "boot" vom HDD-Treiber ausführen wird und der FLP-Treiber keine Gelegenheit erhält, sich durch Aufruf von "mdv1_boot" den korrekten Namen "flp" zu geben. Dies kann er erst beim ersten Zugriff auf die Floppy (der über "mdv" erfolgen muß) nachholen. Fügen Sie deshalb DIR mdv1_ oder aber FLP_ USE flp in das Boot-Programm der Festplatte ein. Alternativ kann das Boot-Programm der Winchester durch die TK2-Funktion FTEST(\mdv1_boot) eine in der Floppy eingelegte Disk erkennen und deren Bootprogramm starten, was letztendlich die eleganteste Methode für umgelenkten Autostart ist.

Enthält das Boot-Programm der Festplatte einen kapitalen Fehler, der zum sofortigen Systemabsturz oder "Hängenbleiben" führt, kann es durch ständig wiederholtes Drücken von <Ctrl> & <Space> vor Ausführung der ersten Anweisung angehalten werden. Es darf dann aber nicht ohne Zeilennummern geschrieben worden sein.

Neue Basic-Befehle

Der Winchester-Treiber fügt Basic vier neue Befehle hinzu:

WIN USE "new" gibt der Festplatte den neuen Gerätenamen new, sodaß für alle folgenden Zugriffe auf new grundsätzlich die Fastplatte verwendet wird. Um Programme, die auf die Benutzung bestimmter Einheiten (z.B. flp) vorinstalliert sind ohne Neukonfiguration einsetzen zu können, kann so der Einheitenname 'win' durch drei beliebige Buchstaben oder einen anderen Einheitennamen ersetzt werden.

PARK fährt die Köpfe der Platte in die Parkposition. Um eine Beschädigung der Magnetschicht durch die nach dem Abschalten auf die Plattenoberflächen absinkenden Köpfe zu verhindern, können die Köpfe mit PARK auf die (unbeschriebene Innerste) Parkspur zu fahren. Dies ist im Normalbetrieb nur bei älteren Laufwerken notwendig, in jedem Fall aber vor jedem Transport der Festplatte.

SYNC schreibt alle noch nicht gesicherten Slave-Blocks auf die Festplatte. Der Treiber nutzt die in QDOS vorgesehenen Slave-Blocks zur Datenzwischenspeicherung und Reduzierung der vergleichsweise langsamen physikalischen Zugriffe voll aus. Erst wenn der Prozessor nicht anderes zu tun hat oder der Speicher anderweitig gebraucht wird, werden die Slave-Blocks auf die Platte geschrieben. Dies sorgt insbesondere beim Updaten ein und derselben Datei zu einer gravierenden Beschleunigung der Dateizugriffe, ist jedoch verhängnisvoll, wenn das System abstürzt oder der Strom ausfällt, bevor alle Slave-Blocks geschrieben wurden. SYNC sollte immer eingegeben werden, wenn ein absturzgefährdetes Programm gestartet wird.

CALL_S adr [val1][,val2][,val3)[…] erlaubt den Aufruf der Maschinensprache-Routine an der Adresse adr, ähnlich wie CALL. Die Parameter val1, val2, … werden jedoch nicht in die Register übergeben, sondern (in der richtigen Reihenfolge) auf den Stack geschrieben. CALL_S ist bei direktem Sektorzugriff hilfreich.

Das Directory der Festplatte

Da QDOS bei einer Directory Einheit nur maximal 32767 Sektoren (=16MB) anzeigen kann, Festplatten im allgemeinen aber über wesentlich mehr Speicher verfügen, wird beim Directory der Festplatte die Sektoranzahl in Sektoren je 10KB (=20 Standardsektoren je 512 Bytes) angezeigt, dabei wird immer abgerundet: 583/2091 Sektoren zeigt an, daß noch 11660…11679 Sektoren der knapp 21MB frei sind. Wenn das Level-2 Filing-System installiert ist (GOLD-Card, TrumpCard/QBoard mit L2- Eprom, siehe oben) ist diese Änderung nicht wirksam. Es berücksichtigt die hohe Sektorenzahl von Festplatten, sodaß QDOS nun auch höhere Sektoranzahlen darstellen kann. Ein DIR der obigen Platte liefert dann: 11660/41820 Sektoren.


Bei der großen Speicherkapazität einer Festplatte mit hunderten von Dateien ist die Verwendung von Subdirectories unumgänglich. In QDOS wird hierzu der Verzeichnisname (Pfad} vor den eigentlichen Dateinamen gesetzt, z.B. "brief_" vor alle Briefdateien. Verzeichnisse können auch in mehreren Ebenen verschachtelt sein, wobei sich eine Baumstruktur ergibt. Es muß jedoch beachtet werden, daß der gesamte Pfad- und Dateiname 36 Zeichen Länge nicht überschreitet. Man sollte deshalb kurze Directorynamen oder keine zu tiefen Verschachtelungen wählen.

Anders als bei den Level-2-FLP-Treibern benötigt der Winchester-Treiber keinen neuen Basic-Befehl, um ein Verzeichnis anzulegen. Dies ist zwar inkonsistent, hat aber den Vorteil, daß Verzeichnisse auch von Anwendungsprogrammen und nicht nur von der Basic-Ebene aus angelegt werden können. Wird ein File erzeugt, daß ein "&", in seinem Namen enthält, wird ein gleichnamiges Directory generiert, z.B: SAVE "win1_&newsubdir". Alle nachfolgend erzeugten Dateien "win1_newsubdir_" werden automatisch in dieses Verzeichnis eingetragen. Der Befehl DIR win1_ zeigt nun nur das Verzeichnis "newsubdir"; die darin enthaltenen Dateien werden erst durch DIR win1_newsubdir_ sichtbar. So wird verhindert, daß die Verzeichnis-Grundebene nicht mit hunderten von Dateien unübersichtlich überfüllt wird. Wenngleich der Winchester-Treiber kein echter Level-2-Treiber ist. unterstützt das Filing System 2 dennoch auch die Festplatte. Wenn Sie eine GoldCard oder aber eine Trump-Card oder ein QBoard mit Level-2 Treiber Austausch-Eprom besitzen, kann das obige Verzeichnis auf der Festplatte auch mit MAKE_DIR win1_newsubdir angelegt werden (vgl. flp-level-2 Handbuch). Bei aktivem Filing-System-2 werden dann auch die Winchester-Verzeichnisse durch angehängtes "→", besonders kenntlich gemacht.

Ein Unterverzeichnis kann mit DELETE win1_subdir wieder gelöscht werden, wenn es keine Dateien (mehr) enthält.

Der Zugriff auf eine einzelne Datei kann entweder durch die wenig komfortable Angabe des gesamten Medium-, Pfad- und Dateinamens oder über die TK2-Default-Device-Verwaltung mit PROG_USE, DATA_USE, DEST _USE und den Befehlen DUP und DDOWN zum Wechsel der Verzeichnisebene erfolgen (vgl. TK2-Anleitung).

Da viele Programme (z.B. Quill) keine komplexeren Dateinamen akzeptieren und TK2- Default-Devices ignorieren, kann vor dem Programmstart ein Working-Directory eingerichtet werden. Es wird für jeden Job getrennt gespeichert und an Tochterjobs übergeben, sodaß ein (zunächst in Basic angelegtes) Working-Directory im Job selbst geändert werden kann. Das Working-Directory wird durch Ansprechen einer Datei mit eingefügtem "$"-Symbol, z.B: DIR "win1_quill_briefe_$", definiert. Wird nun Quill gestartet, stellt der Treiber beim Laden (oder Sichern) der Datei "Win1_meier1_doc" das Working-Directory automatisch voran, sodaß Quill tatsächlich auf "win1_quill_briefe_meier1_doc" zugreift, was bei den in Quill möglichen, max. 8 Zeichen langen Dateinamen sonst nicht möglich wäre.

Das Workdirectory selbst kann nicht verzeichnisebenenweise tiefer- oder höhergeschaltet werden. Es muß zunächst durch einen Dateibefehl auf "win1_!$" gelöscht werden, bevor es mit "$" wieder wie oben beschrieben neu eingerichtet werden kann.

Wird der Schalter ".." in einen Dateinamen eingefügt, kann temporär eine Verzeichnisebene hochgeschaltet werden. Bei leerem Workdirectory lädt LOAD "win1_basic_progs_$test_bas" beispielsweise "test_bas" im Verzeichnis "win1_baslc_progs" und stellt "win1_basic_progs" als Workdirectory ein. MERGE "win1_.._subprogs_proc1_bas" lädt dann die Datei "proc1_bas" aus dem parallel liegenden Verzeichnis "win1_basic_subprogs" hinzu, das Working-Directory bleibt unverändert.

Mit"!" als Schalter können das eingestellte Working-Directory und etwaige vorangehende Namensteile ignoriert werden: LOAD 'win1_egal_!boot" lädt das Boot-Programm aus dem Root-Verzeichnis (Grundverzeichnis, oberste Ebene) unabhängig, welches Workdirectory eingestellt ist.

Es soll betont werden, daß die Working-Directories nur ein Hilfskonzept für Programme sind, die weder lange Dateinamen noch die praktischere TK2-Default-Device-Verwaltung akzeptieren. Eine gemischte Verwendung (eine Pfadhälfte Workdirectory, die andere über TK2-Default-Device) funktioniert nicht und führt in jedem Falle zu Problemen. Es sollte deshalb entweder mit den Default-Devices oder den Workdirectories gearbeitet werden.

Mitgelieferte Software

Auf dem der HDD-Card beiliegenden Datenträger befinden sich für den Festplattenbetrieb erforderliche oder nützliche Programme und weitere Informationen:

winform_exe ist das bereits beschriebene Programm zum Formatieren der Festplatte.

deftracks_bas erlaubt nach dem Formatieren das Sperren fehlerhafter Plattensektoren.

winbak_exe, selbak_exe und bakread_doc sind zwei PD-Programme zum bequemen Festplatten-Backup nebst Anleitung.

quillboot_bas ist ein Demo-Bootprogramm und veranschaulicht die Arbeit mit dem Working-Directory.

readme_doc ist ein Quill-Dokument für Tüftler und beschreibt direkten Sektorzugriff auf die Platte.

  • qlwiki/qlhdd.txt
  • Last modified: 2018/04/26 07:29
  • by rwap