Das SPEEDY-System#

Teil 1#

von Peter Bee

In dieser Serie möchten wir Ihnen alles Wissenswerte über Floppy-Speeder im allgemeinen, und über die SPEEDY 1050 und die Mini-SPEEDY im besonderen vermitteln. Wir werden uns dabei aber nicht auf Werbung oder Werbeaussagen beschränken. Wir denken vielmehr an eine Reihe von Artikeln die von den verschiedenen Autoren geschrieben werden sollen.

Hier mal eine kleine Übersicht über das, was Sie alles in dieser Serie erwartet:

  • Eine allgemeine Einführung in die Problematik der Floppy-Speeder
  • Die Entwicklungsgeschichte der SPEEDY
  • Der Hardware-Ausbau der SPEEDY
  • Das Betriebssystem der SPEEDY
  • Die Sprungtabelle der SPEEDY
  • Möglichkeiten der Programmierung
  • Programm-Beispiele
  • u.s.w.

Wir werden uns allerdings nicht unbedingt an diese Reihenfolge halten! Und mal sehen, wenn Ihr Interesse groß genug ist, können wir vielleicht noch ausführlicher auf die einzelnen Themen eingehen und die Serie fortsetzen.

DIE SPEEDY 1050#

Die Entwicklungsgeschichte der SPEEDY reicht bis in das Jahr 1985 zurück. Damals gab es für die Atari 1050 nur das Happy-Board als Floppy-Speeder. Aber fangen wir am Anfang an. Was ist überhaupt ein Floppy-Speeder, und was macht er?

Als Atari die ersten Computer in Deutschland verkaufte, wurde zu diesen Computern das Laufwerk mit der Bezeichnung 810 angeboten. Dieses Laufwerk war sehr robust in der Mechanik, äußerst präzise in der Anwendung. Gab es in der ersten Zeit einige Schwierigkeiten durch Datenverlust, wurde dieser Fehler durch Einbau eines Datenseparators sehr schnell beseitigt. Seit dieser Zeit gilt das Wort Datenverlust bei Atari 810 Besitzern als Fremdwort.

So gut dieses Laufwerk auch war, hatte es doch einen entscheidenden Fehler: Man konnte nur 88 kByte auf einer Diskette speichern. Dieses Single-Density Format wurde von Atari bei den 810er Laufwerken eingeführt.

Es gab auch, laut Atari Katalog, ein Laufwerk mit der Bezeichnung 815. Dieses Laufwerk wurde jedoch nie in Serie produziert. Es bestand aus zwei 810er Laufwerken die übereinander angeordnet waren. Außerdem verfügten diese Laufwerke über eine verbesserte Elektronik, die Double Density, also 176 kByte pro Diskettenseite, zuließ. Aber leider sind diese Laufwerke nie ausgeliefert worden.

Eine Verbesserung der Speicherkapazität versprach sich die Atari Welt von der Einführung des neuen Atari 1050 Laufwerks. Aber obwohl die Double Density (176 kByte) von Atari selber bei den 810er Laufwerken eingeführt wurde, "vergaß" Atari diese Speicherdichte bei den 1050er Laufwerken wieder und schraubte die Speicherkapazität auf 127 kByte herunter. Dieses etwas seltsame, Atari eigene Format bezeichnet man als Dual- oder Medium-Density.

Man kann also sagen, Atari hat hier den Anschluß an die Marktentwicklung verschlafen! Denn zu diesem Zeitpunkt gab es in den USA mehrere Fremdhersteller von Disketten-Laufwerken, die die Double-Density bereits seit Jahren nutzten. Als Beispiele seien hier nur die Laufwerke von RANA und TRAK, und die hervorragenden INDUS Laufwerke erwähnt, die teilweise sogar von Hause aus mit einem Floppy-Speeder ausgerüstet waren. Auch in Deutschland gab es zu diesem Zeitpunkt eine Firma, die doppelseitige BASF Laufwerke für den Anschluß an den Atari 800 lieferte. Mit diesen Laufwerken hatte man damals bereits das, was Atari heute mit der XF-551 liefert.

Aber die Laufwerke der Serien 810 und 1050 haben noch eine zweite große Schwäche: Die Geschwindigkeit. Zwar sind die Atari Laufwerke nicht gerade die langsamsten, aber man würde sich doch eine etwas höhere Arbeitsgeschwindigkeit wünschen. Auch hier waren die Laufwerke der Fremdhersteller wesentlich leistungsfähiger. Die 810 und die 1050 verfügen nur über 256 Byte RAM, also gerade genug um einen Sektor zwischenzuspeichern und um den Prozessor Platz zum arbeiten zu geben. Manche Fremdlaufwerke verfügten aber schon über 2 kByte und mehr! Dadurch ließ sich auch die Arbeitsgeschwindigkeit deutlich steigern.

Aus diesen Gründen, zu kleiner Speicherplatz, zu langsame Datenübertragung, sind seit dem Erscheinen der ersten Atari Laufwerke der Serie 810 verschiedene Bemühungen unternommen worden, den Laufwerken sowohl mehr Speicherplatz, als auch eine höhere Geschwindigkeit zu geben.

Für die 810 gab es zum Beispiel Umrüstsätze, damit dieses Laufwerk mit zwei Schreib-/Leseköpfen arbeiten konnte. Man konnte durch diesen Umrüstsatz nun auch die Unterseiten der Disketten beschreiben. Abgesprochen wurde diese Unterseite dann als Laufwerk 2.

Ein weiterer Grund für den Einbau eines Hardwarezusatzes ist, daß das normale Laufwerk von einem Programmierer nicht für seine eigenen Zwecke programmiert werden kann. Auch wollten viele Anwender von ihren kopiergeschützten Disketten gerne Sicherheitskopien anfertigen. Auch das geht mit einem normalen Atari Laufwerk nicht.

Wen wundert es also, daß bereits ziemlich früh einige findige Leute nach Auswegen aus diesem Dilemma suchten.

Eine der ersten Firmen, die eine gute Lösung für diese Probleme anbot, war die amerikanischen Firma Happy-Computer Inc. aus Kalifornien.

Mit Hilfe ihrer Happy 810 wurde die Arbeitsgeschwindigkeit der 810 verdreifacht. Mit diesem Board wurde auch erstmals ein Trackbuffer eingeführt. Dieser hatte die Größe von 4 kByte, konnte aber vom Anwender nicht bzw. nur sehr umständlich programmiert werden, da alle Unterlagen, insbesondere Programmbeispiele, hierfür fehlten. Es gab auch des öfteren Probleme mit dem Trackbuffer, der ab und zu Daten einfach "verschluckte". Doch die Steigerung der Arbeitsgeschwindigkeit war enorm und man konnte nun von kopiergeschützter Software Kopien anfertigen.

Es gab dann noch einige andere Floppy-Speeder, aber keiner erreichte den Bekanntheitsgrad der Happy. Als da waren zum Beispiel:

Aus Amerika: Archiver 810
Aus Deutschland: Clone a Disc

Die Happy 810 war ein großer Erfolg für Happy Computer Inc. Wen wunderts also, daß, etwa ein Jahr nach dem Erscheinen der ersten Atari 1050 Laufwerke, Happy Computer Inc. die ersten Happy 1050 auslieferte. Nun wurde durch die Happy 1050 nicht nur die Arbeitsgeschwindigkeit verdreifacht, sondern auch der Speicherplatz von 127 kByte auf 180 kByte erhöht. Das Problem mit dem Trackbuffer blieb den Happy 1050 Besitzern aber erhalten. Besonders bei manchen DOS-Arten.

Auch hier gab es innerhalb kurzer Zeit mehrere Produkte, die aber wiederum nicht an den Bekanntheitsgrad oder die Leistungsfähigkeit der Happy heranreichte. Beispiele:

  • US - Doubler von ICD
  • Archiver 1050 von ICD (reine Software, funktioniert nur in Zusammenarbeit mit der Happy 1050!)
  • The Duplicator von Duplicator Technologie Inc.

Zu diesem Zeitpunkt (1985) haben auch wir uns das erste Mal mit diesem Thema beschäftigt. Natürlich kannten wir die Happy 810 und die Happy 1050, hatten wir sie doch in unseren Laufwerken. Wir kannten aber auch die Probleme und waren mit den amerikanischen Produkten sehr unzufrieden. Zu hoher Datenverlust durch den Trackbuffer, zu langsame Arbeitsgeschwindigkeit, diverse Fehler im Betriebssystem, es gab keine Dokumentation für und über die Happy und somit sahen wir auch keine Möglichkeit, größere Programme für diesen Speeder zu schreiben. Kleinere Programme hatten wir ja schon eine ganze Reihe geschrieben.

Also versuchten wir mit dem Hersteller der Happy, Mr. Adams, in Verbindung zu treten und die entsprechenden Unterlagen, bzw. die entsprechende Unterstützung von ihm zu bekommen. Aber leider scheiterten wir an der Angst des Herrn Adams vor Nachbauten. Und so unberechtigt war diese Angst ja auch nicht, sieht man sich den deutschen Markt einmal genauer an. Es gibt in Deutschland ja mehr Kopien von der Happy als Originale. Das Verhältnis dürfte so bei 1:1000 liegen. So entstand bei uns der Plan, einen eigenen Floppy-Speeder zu entwickeln, der die Unzulänglichkeiten der Happy nicht haben sollte.

Die Forderungen für die Entwicklung waren von Anfang an klar:

  • Die Arbeitsgeschwindigkeit sollte größer als bei anderen sein
  • Die Datensicherheit sollte sehr groß sein
  • Erweiterbar sollte der Speeder sein
  • Das Betriebssystem sollte dokumentiert werden
  • Volle Programmierbarkeit sollte gewährleistet sein
  • Dem Benutzer sollte genügend RAM für eigene Programme zur Verfügung stehen
  • Bei zukünftigen Software-Versionen sollten auch alte Programme noch laufen
  • Wir wollten ein für den Anwender offenes System schaffen. Ein System mit dem jeder, der damit arbeiten wollte, dieses auch können sollte, ohne ständig Angst vor Datenverlusten haben zu müssen.

So begannen wir also mit der Entwicklung. Am Anfang benutzen wir ein umgebautes Happy-Board um unser Betriebssystem zu testen. Schnell merkten wir aber, daß wir damit nicht mehr auskamen. Unsere Software war für höhere Arbeitsgeschwindigkeiten ausgelegt als die der Happy. So hatten wir ja bereits von Anfang an einen 65SC02 als CPU für die SPEEDY vorgesehen (warum und wieso erfahren Sie in einem der nächsten Artikel).

Die Happy verfügte aber nur über einen 6502. Das zweite Problem war der Trackbuffer. Unsere Software wurde für 8 kByte ausgelegt, die Happy hatte nur 6 kByte. Schließlich, nach 4 Monaten, stand der erste Probeaufbau unserer eigenen Hardware und wurde in eine 1050 eingebaut. Zwei weitere Monate Fehlersuche (Debuggen) in der Software und auf dem Board, A- und B-Testläufe in den verschiedensten Laufwerken, unter den verschiedensten Bedingungen, und wir hatten es geschafft! Das hört sich jetzt leicht und einfach an, aber wir wollten so manches mal das Handtuch werfen! Denn es gab beträchtliche Probleme mit der Arbeitsgeschwindigkeit.

Am Anfang war sie von uns höher ausgelegt worden als sie jetzt ist, aber es gab zu viele Laufwerke die mit dieser hohen Datenübertragung nicht klar kamen. So mußten wir an einigen Punkten zurückstecken. Nur bei einem nicht: die Datensicherheit!

Nach einer alles in allem 8 monatigen Entwicklungszeit, wurden die ersten SPEEDY 1050N von uns ausgeliefert. Das war am 1. Juli 1986 Gleichzeitig erhielten die bekanntesten Fachzeitungen je eine Version zum testen.

Seit diesem Zeitpunkt ist das SPEEDY-System ständig erweitert und verbessert worden. Die Systemsoftware der SPEEDY erlebte bereits 5 Updates. Dank der modularen Bauweise können Update-Versionen innerhalb von wenigen Sekunden ausgetauscht werden und stellen somit kein Problem dar.

Die Spitze dieser Entwicklungen liegt nun mit der Mini-SPEEDY vor. Hier wurde die Datensicherheit gegenüber der SPEEDY noch einmal erhöht. Auch der neue Cache-Speicher, in dem die 4 Bootsektoren und die Directory ständig im Speedy-RAM gehalten werden, hat nochmal eine Geschwindigkeitssteigerung und eine Erhöhung der Datensicherheit gebracht. Aber auch das Betriebssystem der Mini-SPEEDY läßt sich ohne Probleme in die SPEEDY 1050 übernehmen, so daß auch die Besitzer der SPEEDY diese Vorzüge nutzen können.

Heute benutzen Programmierer, Fachzeitungen, Computerclubs und Softwarehersteller SPEEDY Laufwerke zum Erstellen ihrer Disketten oder zum Schützen ihrer Software. Sehr viele geben sich dabei mit einer SPEEDY nicht zufrieden, 5 oder gar 6 Laufwerke mit SPEEDY sind die Regel. Manche besitzen auch schon Spezialversionen der SPEEDY, die nicht jedermann zugänglich sind und den Preis einer SPEEDY leicht auf 900,00 DM steigern.

Die SPEEDY ist dabei so leistungsfähig, daß mit ihrer Hilfe ein Kopierschutz erstellt werden kann, den selbst industrielle Kopierwerke nicht erzeugen können!

Ein Ende der Entwicklungen für das SPEEDY-System ist derzeit noch nicht abzusehen. Viele Programmierer nutzen heute auch die Möglichkeit, die wir ihnen mit der Programmierung der SPEEDY gegeben haben und schreiben eigene Programme. Zum Beispiel arbeitet einer dieser Programmierer an einer Parallelversion der SPEEDY, die in der Lage sein soll, 180 kByte Daten in 13 Sekunden in den Computer zu lesen. Natürlich werden solche Programmierer von uns mit Rat und Tat unterstützt.

Das war der erste Teil unserer Serie über die SPEEDY. Ich hoffe, der kleine Ausflug in die Vergangenheit und die Geschichte der SPEEDY haben Sie nicht gelangweilt. Im nächsten Monat geht es dann weiter. Bis dahin viel Spaß!

Das SPEEDY-System, Teil 2#

von E. Reuß

Es fing alles mit einer ATARI 810 Floppy an. Dieses damals sehr teure und ebenso langsame Laufwerk verlangte einfach nach einem Speeder. Es dauerte eine ganze Zeit, bis die ersten Entwicklungen auf dem Markt auftauchten. Es ist heute leider nicht mehr genau nachvollziehbar, welches Produkt als erstes auf den Markt kam, fest steht jedoch, daß Ähnlichkeiten untereinander nicht auszuschließen waren. So fand man einige Routinen in der Software der 'Backup Machine', dem Vorgänger der Turbo 1050, auch in der 'Replica'.

Beide Speeder nutzten lediglich ein verändertes Diskettenformat, genauer gesagt eine andere Anordnung der Sektoren um eine Geschwindigkeitssteigerung zu erreichen. Die Erhöhung der Geschwindigkeit betrug nur etwa 10%. Wichtiger jedoch war die Tatsache, daß es nun auch möglich war, Kopien von kopiergeschützter Software anzufertigen.

Bald kam die Sensation aus Amerika: Die Happy 810. Mit diesem Speeder wurde erstmals eine echte Geschwindigkeitssteigerung erreicht. Happy Computers Inc. baute 4 kByte RAM auf die etwa 800.-- DM teure Erweiterung. Hierdurch konnten die Daten eines kompletten Tracks zwischengespeichert werden. Dieser Trackbuffer erwies sich jedoch als sehr problematisch, da die Elektronik keinen Diskettenwechsel feststellen konnte. Es passierte deshalb sehr oft, daß man das Directory auf einer anderen Diskette wiederfand.

Der hohe Preis und die schlechte Beschaffbarkeit einer originalen 'HAPPY 810' förderte die Erstellung von Raubkopien. Die HAPPY 810 bestand aus Standard-Bauteilen was den Nachbau natürlich vereinfacht hat. Es gab wohl kaum einen Besitzer einer 810, der nicht einen solchen HAPPY-Nachbau in seiner Floppy hatte. Auch ich besaß damals eine solche Erweiterung, woher auch immer. Schon bald versuchte ich die Fehler in der Software der HAPPY 810 zu beseitigen, doch zur damaligen Zeit hatte ich noch keine so große Erfahrung in der Maschinensprach-Programmierung und ich konnte das Problem mit dem Diskettenwechsel nur durch Einbau einer kleinen Zusatzschaltung beseitigen.

Die HAPPY 810 wurde zur Super-Kopierstation. Hier wurde nun endlich auch die serielle Übertragungsrate vom und zum Computer heraufgesetzt. Mit der 'WARP-SPEED' konnten Disketten für damalige Verhältnisse rasend schnell kopiert werden. Das 'WARP-SPEED-DOS', ein modifiziertes DOS 2.0, erlaubte die hohe Geschwindigkeit auch vom Basic aus zu nutzen.

Das HAPPY-Backup war das Beste überhaupt. Mit Hilfe einer kleinen Zusatzschaltung konnte die Geschwindigkeit des Antriebsmotors vom Backup gesteuert werden. Hierdurch war es möglich, Disketten zu kopieren, bei denen alle anderen Kopiersysteme versagten.

Bald kamen die ersten 1050 Laufwerke auf den Markt. ATARI hatte leider wieder an der Hardware gespart und auch in dieses Laufwerk keinen Speeder fest eingebaut. Noch viel schlimmer, statt nun endlich das echte DOUBLE-Density Format zu nutzen, wurde ein Zwischenformat eingeführt, DUAL-Density, 26 Sektoren pro Track mit 128 Bytes pro Sektor. Der Einbau eines größeren RAM hätte genügt, um das Laufwerk auch DOUBLE-Density fähig zu machen.

Auch hier waren die Entwickler gefordert, einen Speeder für dieses Laufwerk zu entwickeln. Alles wartete also auf die Entwicklung der HAPPY 1050. Die Enttäuschung war groß, als die ersten Originale in Deutschland eintrafen und sich auf der Platine ein Spezialchip befand. Dieses war ein maskenprogrammiertes 8k ROM, das in zwei 4k Bänke unterteilt war. Ein paar schlaue Entwickler hatten schon bald die Lösung für das Problem mit dem Nachbau. 5 TTL Chips besorgten die notwendige Umschaltung und die Verwendung eines 8k EPROMs.

Schon bald erschienen die Raubkopien der HAPPY 1050 in rauhen Mengen, wußte doch keiner, wie er an ein Original aus Amerika kommen sollte. Auch ich arbeitete damals mit solch einer Raubkopie. Datensicherheit wurde bei Happy anscheinend immer sehr klein geschrieben. Auch bei der HAPPY 1050 war die Gefahr sehr groß, bei einem Diskettenwechsel Daten zu verlieren, obwohl das Laufwerk einen Wechsel sofort meldet.

Mit der HAPPY 1050 wurde es endlich möglich, echte DOUBLE-Density (180k) auf eine Diskettenseite zu bringen. Die maximale Übertragungsrate war leider bei der Original Happy 1050 genau so hoch wie das 'WARP-SPEED' der Happy 810. Auf der Happy 1050 Systemdiskette befand sich eine Datei, mit der es möglich war, die Übertragungsrate noch einmal zu erhöhen. Ultra-Speed war der neue Standard, eingeführt von ICD mit dem US Doubler.

Ein besonders pfiffiger Programmierer brachte es fertig, die Ultra-Speed Routinen fest in das Happy-EPROM einzubrennen. Nun mußte nicht jedesmal die Systemdiskette eingeladen werden, um die hohe Datenübertragung der Ultra Speed nutzen zu können. Doch das war nicht alles. Eine Trackanzeige war von HAPPY Computer Inc. ebenfalls nicht vorgesehen gewesen. Auch die hierzu notwendigen Routinen wurden nachträglich in die Original-Software integriert. Beide Erweiterungen, Ultra-Speed und Trackanzeige, stammten nicht von HCI.

Kopieren konnte jeder die Hard- und Software der Happy 1050, kaum einer brachte es jedoch fertig, die Fehler in der Software zu beseitigen. HCI hatte die Software im EPROM der Happy leider so kompliziert geschrieben, daß kaum einer durch die zum Teil sehr umständlichen Routinen durchgeblickt hat. Unnützerweise hatte HCI das 8k EPROM noch durch Bankswitching in zwei 4k Bereiche aufgeteilt, obwohl der 6502 Prozessor auf der Platine 64 kByte adressieren kann.

Hier war der Punkt gekommen, an dem wir uns ernsthaft Gedanken zu einem eigenen Floppyspeeder machten. Um die Software zu diesem Projekt zu entwickeln, mußte erst einmal die Hardware stehen, um die Hardware zu entwickeln, mußten erst einmal die Teile der Software existieren. Unser erster Probeaufbau befand sich bald auf einer umgebauten Happy-Platine. Einige Änderungen waren notwendig um unser Konzept zu realisieren. Der 6502 Prozessor der Happy 1050 wurde durch den um mehrere Befehle erweiterten C-MOS Prozessor 65C02 ersetzt. Das aufwendige Bankswitching wurde vollständig eingespart. Für die Grundversion der SPEEDY 1050 wurden also nur noch 5 IC's benötigt. Die einzige Ähnlichkeit zur Happy 1050 bestand zum Schluß nur noch in der Adressierung der Bausteine, hier konnte keine Änderung vorgenommen werden, ein 6502-System verlangt nun mal nach einem ROM im oberen Adressbereich.

Die Grundversion der SPEEDY 1050 besteht somit aus dem Prozessor 65C02, dem EPROM 2764, dem RAM 4264, einem Gatterbaustein 74LS00 zur Erzeugung des RAM-Read/Write Signals und dem 74LS139 zur Adressdekodierung. Die Speedy-Platinen waren ursprünglich nur für 8 kByte EPROM vorgesehen. Da in der Hardware aber ein 16k-Bereich für ROM vorgesehen ist, konnte die normale SPEEDY durch das Legen einer Drahtbrücke schnell für das SPEEDY-S oder -D System vorbereitet werden.

In der Hardware der SPEEDY 1050 wurde direkt die Trackanzeige integriert. Der Adressdekoder 74LS139 stellt die hierzu benötigten Selektsignale zur Verfügung. Der Summer, oder besser gesagt Pieper wurde zum Schluß eingebaut. Die Idee hierzu kam uns, nachdem wir mehrfach die Diskette zu früh aus dem Laufwerk genommen hatten. Ein akustisches Signal sollte dem Anwender anzeigen, daß er die Diskette schnell wieder in das Laufwerk stecken soll.

Alle Bauteile, die für den Betrieb der Trackanzeige und des Miniaturlautsprechers notwendig sind, kamen mit auf die SPEEDY Grundplatine. Das Display wurde mit einem Flachbandkabel und einem Steckverbinder mit der Grundplatine verbunden.

Die Mini-Speedy ist im Prinzip eine normale Speedy 1050 ohne die Bauteile, die für die Trackanzeige und dem Miniaturlautsprecher notwendig sind. Ein paar Änderungen wurden jedoch zur normalen Speedy vorgenommen. 16k-Eproms können direkt eingesetzt werden. Zwei weiter IC's sind für die Anfang '89 vorgesehene 32k-Version vorgesehen.

Dieses war nun unsere Einführung in die Hardware der Speedy. Für Sie als zukünftige Programmierer der Speedy ist nun noch die Aufteilung der Speicherbereiche wichtig. Die Programmierung der einzelnen Bausteine wird in den folgenden Teilen unserer Serie über die SPEEDY 1050 erklärt.

Adresse:	belegt mit:
0000	-	0080	RAM
0100	-	0180	RAM (0000-0080 gespiegelt)
0280	-	029F	PIO 6532
0400	-	0403	Controller WD2793
 	 	4000	Trackdisplay 1er
 	 	4001	Trackdisplay 10er
 	 	4002	Trackdisplay Density
 	 	4003	Miniaturlautsprecher
8000	-	9FFF	RAM 8 kByte
C000	-	FFFF	EPROM 16 kByte
oder
E000	-	FFFF	EPROM 8 kByte
Zusätzliche Bereiche bei der MINI-Speedy 32k-Version:
 	 	1000	 
+	 	2000	Umschaltung der 16k-Bänke
C000	-	FFFF	2 mal 16 kByte ROM