Umwandlung eines BBC-Mikrocomputers (1981) in einen Secure Disc Writer für 40.000 US-Dollar



Einführung



Eine der bekanntesten Sicherheitsgeschichten zu Disketten stammt von Dungeon Master . Dieses im Dezember 1987 veröffentlichte Spiel kombinierte das ausgeklügelte physische Festplattenformat (Fuzzy-Bits) mit verdeckten Sicherheitsüberprüfungen, die in das Gameplay selbst integriert waren.



Ich empfehle , diesen Artikel zu lesen , der einen hervorragenden Überblick über Disketten bietet, gefolgt von einem sehr detaillierten Überblick über den Dungeon Master-Fuzzy-Bit-Schutz für den Atari ST. Es gibt auch diesen großartigen Artikel , der detaillierter auf die Geschichten rund um die Verteidigung des Dungeon-Meisters eingeht. Es hat ein Zitat von einem der Dungeon Master-Autoren:



« , , 40 . , ».


Der Grund für diesen hohen Preis war höchstwahrscheinlich die Zeitgenauigkeit, die erforderlich ist, um zuverlässig Fuzzy-Bits zu erzeugen. Damals, als der größte Teil der Welt die Leistung in Mikrosekunden maß, wurde die erforderliche Genauigkeit in Nanosekunden gemessen.



Die BBC Micro hatte einen 6502-Prozessor mit 2 MHz und benötigte zwei Taktzyklen oder 1 Mikrosekunde, um ihre einfachsten Anweisungen auszuführen. Gibt es eine Hoffnung, dass es unter solchen Einschränkungen möglich sein wird, Fuzzy-Bits zu schreiben? Mal sehen, wie weit wir gehen können. Diese Arbeit wird als "Oiled Otter Project" bezeichnet.



Um Ihnen einen Eindruck vom Zeitgeist zu vermitteln, sehen Sie hier ein Bild eines 3,5-Zoll-Diskettenkopierers. Es ist erstaunlich, wie ähnlich er einem Fotokopierer ist, außer dass Sie Discs anstelle von Papier in den Behälter einlegen! Es sieht so aus, als hätten Advanced World Products Ihnen sogar eine solche Maschine verkauft .





BBC Micro Custom Port



BBC Micro war bekannt für seine hervorragende Erweiterbarkeit, einschließlich der Verwendung des sogenannten "Benutzerports". Dieser Port wird vom 6522 Versatile Interface Adapter gesteuert, der mit 1 MHz arbeitet. Der Port selbst verfügt über 8 Datenpins und 2 Steuerpins. Diese Kontakte boten ein sehr hohes Maß an Kontrolle. Die Datenpins können einzeln als Ein- und Ausgänge konfiguriert werden, und die Pinpegel können auf hoch oder niedrig eingestellt werden.



Warum ist uns der Benutzerport wichtig? Wir werden versuchen, das Laufwerk direkt darüber zu steuern. Durch Entfernen des Diskettencontrollers aus der Gleichung können wir ihn möglicherweise entfernen und eine direktere Kontrolle über das Laufwerk und die übertragenen Datenströme erlangen.





Benutzeranschluss zum Festplattenlaufwerk



Das obige Bild zeigt mein Kabel, das den Benutzeranschluss mit dem Festplattenlaufwerk verbindet. Die Anschlüsse sind Standard und die Drähte, die sie verbinden, sind nur Jumper. Ich bemühe mich aufrichtig, etwas zu schaffen, das „in jenen Tagen“ hergestellt werden könnte, deshalb verwende ich keine zusätzliche Elektronik.



Das Kabel ist wie folgt angeordnet:





Die wichtigste Erkenntnis aus diesem Diagramm ist, dass die Festplattenschnittstelle wahrscheinlich einfacher ist, als man denkt. Wir können das Laufwerk steuern und seinen wichtigen Status auf nur 8 Pins abfragen. Alles ist sehr einfach. Nehmen wir an, wir müssen den Antrieb drehen, dann reicht es aus, PB0 und PB1 ein niedriges Signal zu geben. Wenn Sie warten möchten, bis sich die Disc zum Anfang des Titels dreht, müssen Sie den Logikpegel auf PB6 abfragen, bis sich der Signalpegel von hoch nach niedrig ändert. Für eine schrittweise Bewegung reicht es aus, den Logikpegel "step in" gegenüber "step out" einzustellen und dann eine Pulsation eines niedrigen Signals am Kontakt "step" durchzuführen.



So weit so gut, wir haben die grundlegende Kontrolle über das Laufwerk, aber wir haben noch nichts aufgenommen.



Elektrische Probleme



Ein kurzer Exkurs zu elektrischen Problemen ist unabdingbar, da ich auf sie gestoßen bin. Durch das Verbinden zufälliger Komponentenpaare können sie funktionieren, manchmal sind jedoch Optimierungen erforderlich. Hier ist der Spannungsbereich, der anfänglich am W / DATA-Pin des Laufwerks beobachtet wurde:





Wir versuchen, Impulse in ein Laufwerk mit einer FM-Frequenz von 250 kHz zu schreiben. Die



Spannung von Logik 1 beträgt ungefähr 3,4 V und die Spannung von Logik 0 beträgt ungefähr 1,5 V. Dies ist ein ernstes Problem! Akzeptable TTL- Spannungspegel sind genau definiert:



„Das TTL-Eingangssignal wird als 'niedrig' betrachtet, wenn es eine Spannung zwischen 0 V und 0,8 V relativ zum Erdungsstift hat, und ist 'hoch', wenn es zwischen 2 V und VCC (5 V) liegt. Wenn ein Spannungssignal im Bereich von 0,8 V bis 2,0 V an den Eingang eines TTL-Elements angelegt wird, gibt das Element keine spezifische Antwort, und daher wird das Signal als "undefiniert" betrachtet. "


Eine logische 0-Spannung von 1,5 V wird als "undefiniert" betrachtet und verursacht keine Aktion. In der Tat hat mein Laufwerk mit diesem Signal nichts aufgezeichnet.



Das Problem wurde behoben, indem das Diskettenlaufwerkkabel EOL vom Laufwerk entfernt wurde . Hier ist ein Foto von meinem Laufwerk mit der rot umrandeten EOL-Baugruppe:





Dies löst das Problem der Spannungspegel gut, wonach alles funktioniert. Es sieht so aus, als hätten viele andere Anschlüsse des BBC Micro als der Festplattenanschluss nicht genug Strom, um das EOL-Kabel anzusteuern. Aber warten Sie - es gab wahrscheinlich einen Grund für die Installation dieses Widerstands? Ja. Das Entfernen hat zwei Tricks:



  • Achten Sie auf die Länge der Kabel. Ohne EOL-Widerstand neigen lange Kabel zu Signalverzerrungen.
  • Achten Sie auf Spannungspegel an nicht angeschlossenen Kabeln. Ich habe eine Spannung von 1,32 V am S / SEL-Aktuatorstift (Seitenauswahl) beobachtet. Dies ist nicht normal, da dieser Wert auch im TTL-Unsicherheitsbereich liegt. Wo schreibt das Laufwerk Daten? Vielleicht oben, vielleicht unten. Oder vielleicht gar keiner von ihnen! Das Problem wurde gelöst, indem jedes wichtige Kabel angeschlossen und ein hohes oder niedriges Signal an sie angelegt wurde.


Die Bandbreite muss erhöht werden



Das Problem, das wir bisher umgangen haben: Wie sende ich ein Signal an den W / DATA-Pin? Dies ist ein "harter" Kontakt. Es hat eine hohe Bandbreite und präzise Timing-Anforderungen. Hören wir für eine Sekunde auf, von Fuzzy-Bits mit einer Genauigkeit von Nanosekunden zu träumen, und versuchen wir, einfache FM-Impulse in das Laufwerk zu schreiben.



Die meisten Discs für BBC Micro sind in FM (auch bekannt als DFM, auch bekannt als Single Density) mit 250 kHz codiert. Das Aufnehmen eines FM-Tracks ist eigentlich ganz einfach. Es muss überprüft werden, ob sich der Antrieb dreht und ob die Aufzeichnungsklappe geöffnet ist. Danach führen wir alle 4 Mikrosekunden entweder eine W / DATA-Welligkeit zu niedrig und dann zurück zu einem hohen Signal (Bit 1) durch oder wir tun dies nicht (Bit 0). Meistens sollte jedes zweite Bit 1 sein (Synchronisationsbit, um das Timing und die Synchronisation aufrechtzuerhalten).



Die Steuerung von W / DATA über einen Prozessor ist eine hoffnungslose Aufgabe. 4 Mikrosekunden sind 8 Prozessortaktzyklen; Dies reicht definitiv nicht aus, um ein Byte zu laden, es zu verschieben, 0 und dann 1 auf die logischen Ebenen des Benutzerports zu schreiben. Eine einfache Schleife dauert wahrscheinlich mehr als 12 Mikrosekunden, was zu viel ist. Um W / DATA schnell genug zu schreiben, müssen wir die Funktionen des 6522 VIA-Chips nutzen.



Schieberegister 6522 VIA



Der offensichtlichste Kandidat für unsere Aufgabe ist ein Schieberegister. Das Schieberegister ist ein 8-Bit-Register. Im entsprechenden Modus zwingt das Laden des Schieberegisters den Chip, nacheinander 8 Bits an einem der Benutzerport-Pins zu übertragen. Das ist großartig - die Bits werden parallel zum Hauptprozessor verarbeitet, so dass der Prozessor sicher Zeit damit verbringen kann, einen neuen Satz von Bits zu erstellen, um mit dem Verschieben zu beginnen.



Leider konnte ich diese Schaltung nicht zum Laufen bringen. Der einzige Schaltmodus, der das Potenzial hat, relativ schnell zu laufen, ist die "Systemuhrverschiebung". Die Western Design Center 6522-Spezifikation hat einen schönen Umriss:





Der VIA-Systemtakt beträgt 1 MHz, der Offset-Takt beträgt also 500 kHz und die Ausgangsbitauflösung 250 kHz. Das ist gerade genug. Ich habe jedoch nicht herausgefunden, wie die Schaltuhr kontinuierlich und reibungslos funktioniert. Selbst nach dem Versuch, das Schieberegister genau zu laden, sah das Pin-Intervall des Schiebetakts immer so aus:





Es stellt sich heraus, dass in einem Einzelschaltmodus, der für unsere Experimente schnell genug ist, das Nachladen des Schieberegisters eine Verzögerung verursacht, bevor die Schaltung fortgesetzt wird. Es passt nicht zu uns.



6522 VIA-Impulsausgabemodus



Ein wenig bekanntes Merkmal des 6522 ist sein "Impulsausgangsmodus". Es ist nicht in den Spezifikationen aller 6522-Varianten beschrieben, aber hier ist ein kleiner Eintrag darüber in der MOS-Technologie- Spezifikation :





Schließlich haben wir eine Spezifikation gefunden, die das Verhalten genau beschreibt. Dieser Modus ist für uns sehr interessant, da eine Schreiboperation in VIA zwei separate Aktionen verspricht: Ein niedriges Logiksignal wird an den Ausgangspin angelegt und kehrt nach 1 Takt (1 Mikrosekunde) ohne unser Zutun zu einem hohen Signal zurück. Dies ermöglicht es uns , das 250-kHz-Ausgangssignal zu steuern. Die Prozessorressourcen sind sehr begrenzt - die Schleife löst das Problem in keiner Weise, aber der lineare Codeblock 6502 kann beispielsweise Folgendes bewältigen:



        \ &70 points to &FE60, aka. user 6522 VIA ORB register.
        STA (&70),Y        \ 8 cycles, pulse output
        STA (&70),Y        \ 8 cycles, pulse output
        STA (&70),Y        \ 8 cycles, pulse output
        LDA (&70),Y        \ 8 cycles, do not pulse output
        STA (&70),Y        \ 8 cycles, pulse output
        ...


Es wird klappen. Der Prozessor hat gerade genug Leistung dafür. 8 Taktzyklen sind 4 Mikrosekunden, was die kürzeste Zeit zwischen Plattenimpulsen ist.



Leider ist eine solche Operation extremnutzt aktiv den Speicher. Jedes codierte FM-Bit erfordert 2 Bytes 6502-Zeilencode. Jedes signifikante Datenbit besteht aus zwei FM-Bits, da jedes zweite Bit synchron ist. Eine Spur ist 3125 Byte lang, daher sind 3125 * 8 * 2 * 2 == 100 kB Zeilencode erforderlich. BBC Micro verfügt über 32 KB RAM, daher haben wir hier kein Glück. Es können einzelne (kleine) Sektoren geschrieben werden, einschließlich leistungsstarker neuer Festplattenschutzmechanismen. Wir können jedoch keine großen (1024 Byte) Sektoren oder vollständigen Spuren schreiben. Beide Vorgänge sind erforderlich, um eine große Anzahl von Discs korrekt zu schreiben. Darüber hinaus beträgt die Auflösung von Timings 1 Mikrosekunde, was nicht ausreicht, um viel komplexere Schutzfunktionen und Disc-Oberflächen aufzuzeichnen.



Wir können froh sein, dass wir es geschafft haben, angesichts solcher Einschränkungen zumindest etwas zum Laufen zu bringen, aber diese Lösung passt nicht ganz zu uns.



Hilfe von einem nicht vielversprechenden Ausgangsport



Zum Glück spreche ich mit klugen Leuten wie dem Bitshifters Collective . (Schauen Sie sich die neueste Demo an, Evil Influences !) In einem Gespräch über Slack schlug Tom Seddon (Autor des b2-Emulators ) vor, ... das



Video-zu-Disk-Adapterkabel für den RGB-Port (?) Zu verwenden ... das sieht man bei Amazon nicht jeden Tag.



Zuerst habe ich über diese Idee gelacht, aber je mehr ich darüber nachdachte, desto wahrscheinlicher schien es mir. Die BBC Micro verwendet den 6845-Videochip für das Timing . Wie der 6522 ist er ein launischer Prozessor, aber zumindest seine Funktionen sind dank der Bitshifters-Demo, die den 6845 gnadenlos ausnutzt, gut entschlüsselt. Ich habe auch rückentwickelt , um den jsbeeb-Emulator zu erzwingenHitachi 6845 korrekt emulieren. Schauen wir uns die Arbeit von Oiled Otter in diesem Video an und sagen uns dann, was wir gesehen haben:





Dank der ungewöhnlichen Konfiguration des 6845-Chips funktioniert alles. Der 6845 läuft mit 1 MHz, und das Frame-Timing ist auf eine Rasterzeile mit 32 Mikrosekunden / 32 Bytes pro „Frame“ eingestellt. Bei jedem Frame-Ausgang werden die Videospeicherregister des 6845 überschrieben, um die nächsten 32 Bytes von einem möglicherweise anderen Ort abzurufen. Das heißt, alle 32 Mikrosekunden wird ein anderes Ausgabemuster aus der Ausgabemustertabelle ausgewählt. Wir haben die RGB-Pins so konfiguriert, dass sie 8 Pixel pro Mikrosekunde übertragen, was 256 pro Ausgabemuster entspricht. Dies gibt uns eine große Anzahl verschiedener möglicher Ausgabemuster. Da wir jedoch 32 Mikrosekunden-Blöcke von FM-Festplattencodierungen aufzeichnen, sind nur wenige Muster für uns geeignet. In 32 Mikrosekunden können wir 8 FM-Impulse / Bits anpassen. 4 Bits werden synchronisiert und normalerweise sind sie alle 1.4 Bits sind Datenbits und es gibt nur 16 Kombinationen davon.



Wenn wir beispielsweise ein Nibble von Daten 0x5 schreiben, sollte die 32-Mikrosekunden-Ausgabe folgendermaßen aussehen:





Videodaten haben die Form 00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF. Das erste, zweite, vierte und fünfte 00 sind Synchronisationsbits. Zwischen den Synchronisationsbits befindet sich das Datenbitmuster 0101 oder 0x5.



CPU- und Speicherbeschränkungen sind gut ausbalanciert. Letztendlich ähnelt diese Schaltung derjenigen, die wir mit dem Schieberegister VIA versuchen würden, wenn sie funktionieren würde: Ein kleiner Coprozessor (Videochip) übernimmt die Übertragung des FM-Bit-Sets, und der Zentralprozessor kann das nächste Muster frei laden und bereitstellen. Die Speicheranforderungen sind durchaus vernünftig. Eine Tabelle der erforderlichen Ausgabefragmente für 32 Mikrosekunden passt dank eines speziellen linearen Adressierungsmodus gut in 1024 Bytes. Die Liste der Suchindizes für den gesamten Titel beträgt ungefähr 12 KB, was bedeutet, dass alles perfekt in die 32 KB BBC Micro RAM passt.



Eigenschaften von BBC Micro / 6845



Letzter Charakter / letzte Spalte 6845 Damit



dies funktioniert, müssen Sie natürlich auf einige "lustige" Funktionen stoßen. Das erste ist eine Funktion des 6845, die bewirkt, dass für das letzte Zeichen jeder Bitmap-Zeile Schwarz ausgegeben wird. Dies ist der Fluch der Demo-Entwickler, und jetzt scheinen es auch die Disc-Forscher. Hier ist eine Folie aus einem kürzlich gehaltenen Vortrag, in dem ich dieses Problem demonstriert habe:





Links ist ein Effekt aus der Demo zu sehen, der durch vertikale schwarze Balken zerstört wurde, die durch das Problem "Letztes schwarzes Zeichen / Spalte" verursacht wurden. Mehrere 6845-Rasterlinien passen in einen einzelnen Rasterdurchgang, und leider erscheinen ungewollt schwarze Streifen. Bei der Disc-Steuerung ist der Effekt viel schlimmer: Die schwarzen Balken werden durch unerwünschte Impulse ersetzt, die auf die Disc geschrieben werden.



Das Bild der Lösung ist rechts dargestellt: Die auf die Platte übertragene Welle wird einfach invertiert. Es ist jetzt normal, dass die letzte Spalte immer schwarz ist (mit einem orangefarbenen Umriss dargestellt), da dort immer eine Null erforderlich ist. Genau genommen verstößt dies gegen die Timing-Anforderungen einiger Festplattenlaufwerke zum Pulsieren von Signalen mit niedrigem W / DATA-Wert. Hier ist das Zeitdiagramm für ein Laufwerk aus dieser Zeit, einen Mitsubishi M4852 / M4853 :





Nach diesem Schema sollte die logische 0 bis zu 2100 ns gehalten werden. Erwarten Sie bei einer invertierten Wellenform 3000 ns oder mehr. Bei den Laufwerken geht es mir jedoch nur um fallende Datenimpulse, nicht um deren Dauer. Das ist nicht überraschend. Es gab ein paar Tricks, die ich hätte tun können, um die Macken des 6845 zu vermeiden und sicherzustellen, dass die Dauer mit der Spezifikation übereinstimmt, aber das stellte sich als optional heraus, also habe ich es nicht getan.



DRAM-



Korruption DRAM-Zerfall ist ein Albtraum. Es passiert, wenn wir den DRAM nicht rechtzeitig aktualisieren können. Zitat aus dem Wikipedia-Artikel zur Speicheraktualisierung :



"Dieser Vorgang wird automatisch im Hintergrund von einer elektronischen Speicherschaltung ausgeführt und ist für den Benutzer unsichtbar."


Dies gilt für moderne Systeme, nicht jedoch für BBC Micro. Bei BBC Micro ist das DRAM-Upgrade ein Nebeneffekt des Video-Subsystems. Es nutzt die Eigenschaft, dass Standardbildschirmmodi alle DRAM-Leitungen in kurzer Zeit iterativ durchlaufen. Sie haben wahrscheinlich bereits erraten, wohin das führt - unser spezieller Videomodus, mit dem Frames mit 32 Mikrosekunden angezeigt werden, ist nicht der Standardbildschirmmodus. Es kann nicht garantiert werden, dass alle DRAM-Leitungen umgangen werden, sodass eine DRAM-Beschädigung auftritt! DRAM-Korruption ist kein Scherz. Aufgrund einer ungeplanten DRAM-Beschädigung verlor ich verschiedene Programme und Disc-Inhalte. Ich zeige Ihnen zum Lachen ein BASIC-Programm, das sich in Sekundenbruchteilen DRAM-Schaden zufügt:





Das Traurige an der DRAM-Korruption ist, dass Sie leicht Daten verlieren können, wenn sie Sie befallen.



Wenn Sie jedoch eine DRAM-Beschädigung erwarten, können Sie diese normalerweise problemlos umgehen. Im Fall von Oiled Otter gibt es verschiedene kritische Zyklen, in denen sich der 6845 in einem ungewöhnlichen Zustand befindet. Um das DRAM-Update bei jedem dieser Zyklen zu speichern, funktioniert ein manuelles Inkrement des Empfangs von Daten aus dem Speicher.



Geöffnete Möglichkeiten



Was können wir damit tun, nachdem wir ein funktionierendes Disk-Write-System haben, das den Diskettencontroller umgeht? Im obigen Video haben wir bereits gezeigt, dass zufällige FM-codierte Discs gebrannt werden können.



Aber in dieser Studie hatten wir großes Glück. Aufgrund der Mängel des VIA-Schieberegisters mussten wir nach einer Lösung mit Videoausgangspins suchen und erhielten Zugang zu einer viel feineren Timing-Auflösung am W / DATA-Pin . Wir verwenden den MODE4 eines BBC Micro-Computers mit einem 8-MHz-Pixeltakt. Dies bedeutet, dass Sie alle 125 ns schwarze oder weiße Pixel ausgeben können, indem Sie Schreibimpulse mit einer Auflösung von 125 ns umschalten... Wenn wir etwas mehr zusätzlichen Speicher (den wir haben) für größere Tabellen ausgeben möchten, könnten wir MODE0 verwenden, das einen 16-MHz-Pixeltakt verwendet, der eine Auflösung von 62,5 ns bietet. Ich habe sichergestellt, dass 125 ns für alle getesteten Disc-Schutzfunktionen gut genug sind, aber es ist großartig, dass wir noch etwas Spielraum haben.



Long Track Protection



Mein Lieblings-Disc-Schutz ist der Long Track Protection . Sie war während des Amiga beliebt... Ich glaube nicht, dass es jemals auf der BBC Micro verwendet wurde. Ich mag den Long-Track-Schutz, weil er sehr grundlegend ist: Der Diskettencontroller hat eine große Toleranz für unterschiedliche Schreibgeschwindigkeiten (weil sich die Laufwerke mit unterschiedlichen Geschwindigkeiten drehen), aber er schreibt nur mit einer richtigen Geschwindigkeit.



Ein komplexerer Schutz bei langen Spuren besteht darin, zwei Sektoren auf eine Spur zu schreiben, wobei einer der Sektoren mit einer höheren Geschwindigkeit geschrieben wird. Die Kopierschutzprüfung ist die Zeit, die zum Lesen dieser beiden Sektoren benötigt wurde. Der mit einer höheren Geschwindigkeit geschriebene Sektor sollte viel schneller gelesen werden.



Kann Oiled Otter einen solchen Track aufnehmen? Ja und ziemlich einfach. Angesichts der Ausgangsauflösung von 125 ns ist es einfach, mehrere Ausgabetabelleneinträge ähnlich wie normal zu erstellen, jedoch mit 125 Nanosekunden, die aus jeder Mikrosekunde herausgeschnitten werden. Hier ist ein Video zum Erstellen eines Langzeitschutzes und zum Überprüfen der Festplattenlesevorgänge:







Schutz mit Fuzzy-Bits



Wahrscheinlich ist es höchste Zeit, dass wir dorthin zurückkehren, wo wir begonnen haben: Schutz mit Fuzzy-Bits. Kann Oiled Otter auf Hardware von 1981 Fuzzy-Bits erzeugen? Lass es uns versuchen. Hier ist ein Bild der Ergebnisse eines Paares von Sektorlesevorgängen, nachdem es vom FUZZ-Befehl des Oiled Otter-Systems geschrieben wurde.





Der FUZZ-Befehl schreibt ein Halbbyte 0x8, und das Datenbit wird schrittweise in Schritten von 125 ns beiseite gelegt. Dies ähnelt der Beschreibung, wie die Fuzzy-Bits des Dungeon-Masters aufgezeichnet wurden. Wie Sie dem Screenshot entnehmen können, werden 0x88-Datenbytes bald falsch und nicht deterministisch gelesen. Die Varianz ist jedoch nicht zu 100% zufällig wie bei den „schwachen Bits“. Die Varianz gibt an, ob das 0x8-Bit spät genug geschrieben wird, um möglicherweise übersehen zu werden. Wenn es weggelassen wird, können wir immer noch sehen, dass dieser Wahnsinn Muster und Logik enthält.



Die oben dargestellten Ergebnisse sind eine Anwendung der Fuzzy-Bit-Prinzipien auf FM-codierte Daten. Bei der FM-Codierung wird jedes Datenbit mit einem Synchronisationsbit verschachtelt. Dies führt dazu, dass sich manchmal Taktbits in den Datenstrom schleichen (siehe Bytes 0xFF im ersten Lauf - höchstwahrscheinlich handelt es sich um Taktbits). Die Verteidigung des Dungeon Masters verwendet Fuzzy-Bits in Verbindung mit MFM. Dies führt zu einer einfacheren Situation, in der sich Fuzzy-Bits zwischen zwei gültigen Datenbitcodierungen bewegen und die Synchronisationsbits nicht berühren! Natürlich kann Oiled Otter MFM, GCR und jede andere Codierung schreiben, die Sie sich vorstellen können. All dies sind nur verschiedene Protokolle eines grundlegenden Grundelements - die Fähigkeit, jederzeit einen Impuls mit guter Auflösung an das Laufwerk zu übertragen.



Um es richtig auszuwerten, geben wir die Ansicht der Fuzzy-Bits auf der Platte vom Oszilloskop aus. Die Maxima sind ziemlich ungleichmäßig, und wenn die beiden Impulse sehr nahe beieinander liegen (etwa 1 Mikrosekunde, zu nahe an einer Standardcodierung), beginnt die vom Antrieb erkannte Magnetisierungsumkehrkraft sogar zu schwinden.





Mission erfüllt



Wir haben die Möglichkeit, Plattenimpulse mit einer Auflösung von 125 ns aufzuzeichnen. Dies ist vollkommen ausreichend, um komplexe Disc-Schutzfunktionen zu erstellen, einschließlich langer Spuren, schwacher Bits und unscharfer Bits. Nicht schlecht für 1981 Hardware mit der schnellsten Befehlsausführungsgeschwindigkeit von 1 Mikrosekunde!



Siehe auch:






All Articles