Wie hat man Programme beim PC vor oder in der Anfangszeit der DOS Ära auf 5,25" Disketten gespeichert?
-
Hm, leider hilft mir das bei der Beantwortung meiner Fragen nicht weiter, aber dennoch danke für den Link.
-
Es gibt ein Paket fuer Debian namens "cpmtools". Damit kannst du auf cp/m dateisysteme zugreifen.
Wie es unter anderen Systemen aussieht weiss ich leider nicht. Aber zumindest bei anderen Unix-Derivaten wird sich wohl was finden...Hoffe das hilft dir weiter.
-
THX, ich werde das mal testen.
Dann habe ich noch eine Frage, gibt es irgendwo eine Dokumentation wie man 5,25" Floppy Laufwerke direkt ansteuert?
-
Treiberquellen?
-
Ja, natürlich, die sind ne nette Idee wenn man Infos zu ganz kryptischer unbekannter Hardware benötigt.
Aber ne anständige Doku für das Diskettenlaufwerk des IBM PCs sollte doch wohl
überall verfügbar sein.
-
Erzaehl doch mal was du machen willst, dann kann dir vielleicht jemand weiterhelfen...
-
Niklas Cathor schrieb:
Erzaehl doch mal was du machen willst, dann kann dir vielleicht jemand weiterhelfen...
Ich habe ein altes Computerspiel auf 5.25" Disketten damals gekauft und
das verwendet kein MS-DOS, sondern bootet das Spiel direkt ohne Dos.Und jetzt würde ich gerne davon eine funktionierende Sicherungskopie in Form eines Disk Images erstellen, so daß ich die Sicherungskopie auf ein haltbares Medium archivieren und z.B. mit einem x86 Emulator jederzeit spielen kann.
Das Problem ist jetzt, daß die 5.25" Disketten ja nicht mehr lange halten, immerhin sind die schon > 18 Jahre alt und ein 5.25" Laufwerk habe ich auch nur ein einziges, das auch irgendwann nicht mehr funktionieren dürfte.
Erschwerend kommt hinzu, daß es sich wie schon gesagt um kein DOS Spiel handelt
und das Spiel nur dann bootet, wenn das 5,25" Laufwerk das Laufwerk A: ist.
Wenn das 5.25" Laufwerk das Laufwerk B: ist, dann bootet das Spiel nicht, auch dann nicht, wenn man irgendwelche Tricks anwendet die die Laufwerksbuchstaben vor dem Booten vertauschen.
Leider reicht es auch nicht, das Spiel einfach auf 3,5" Disketten zu kopieren,
da das Spiel auch noch zu allem Überdruß einen Laserlock Kopierschutz hat.
Die Idee ist also, von dem Spiel eine Image Datei als Sicherungskopie zu erstellen und den Programmcode so umzuzweigen, daß die Kopierschutzabfrage übersprungen wird, so daß das Spiel anschließend auf einem x86 Emulator läuft und sich dort mindestens als virtuelle Diskette booten läßt.
Wenn man das Spiel in eine DOS EXE oder COM Datei noch einbetten könnte, so daß es auch mit der DOSBox läuft, dann wäre das natürlich noch besser.Jetzt ist die eigentliche Frage wie das Spiel auf der 5,25" Diskette gespeichert ist.
Habe ich, wenn ich eine RAW Image Datei erstelle, den ganzen Programmcode an einem Stück in Form eines ganzen Blocks, oder liegt der Programmcode in der RAW Image Datei in einem Dateisystem eingebettet vor, weil das Spiel vielleicht selbst irgendein Dateisystem verwendet hat?
Dann wäre es nämlich um ein ganzes Stück nocheinmal schwieriger den Programmcode umzuzweigen, da man zwischen Dateisystem und Programmcode unterscheiden müßte. (FAT12 und FAT16 ist es nicht)
Desweiteren müßte ich natürlich wissen, wann auf das Laufwerk zugegriffen wird
um die Kopierschutzabfrage überspringen zu können und dazu müßte ich erstmal wissen, wie man auf einem PC auf ein Laufwerk überhaupt in Assembler direkt zugreift, ohne irgendwelche HighLevel oder DOS int21 Funktionen zu verwenden.
Eventuell nutzt das Spiel zum Zugriff auf das Diskettenlaufwerk vielleicht auch BIOS Funktionionen, da wäre es dann interessant, wie man das am besten feststellen kann.
Kann der Emulator BOCHS eventuelle Zugriffe auf ein Bios feststellen und loggen?
Wenn ja, dann wäre dieser hier sehr hilfreich.Selbstverständlich habe ich das Spiel Original und die Motivation so etwas zu machen, ist neben dem Zweck der Archivierung auch der Ansporn so etwas
mal zum reinen Lernen, dem privaten Forschen und zur Weiterbildung zu machen, da kann man nämlich sicher sehr viel dabei lernen und seine Fähgikeiten in der Assemblerprogrammierung vertiefen.
Und wenn das Spiel dann hinterher funktioniert, dann hat sich das ganze auch noch gelohnt.
-
Dann wuerde ich dir folgendes empfehlen:
Du benutzt am besten ein UNIX-System (von DOS hab ich nicht viel Ahnung) und erstellst erstmal ein rohes image:
dd if=/dev/fd0 of=image.iso
Dann hast du zumindest schonmal die Rohdaten der Diskette. Wenn es dann wirklich ein cp/m dateisystem da drauf ist kannst du das image dann mounten (erst die cpmtools installieren).
Danach wuesste ich auch nicht weiter... musst mal kucken, was du so findest an Daten. Vielleicht funktioniert ja dekompilieren.
Es waere vielleicht auch interessant den Hersteller mal anzuschreiben (falls er noch exisitert) was die dazu sagen. Vielleicht sind sie ja bereit den Quellcode rauszuruecken nach so langer Zeit
-
Also dd habe ich schon probiert, damit ging es nicht, da dd grundsätzlich abbricht, sobald nur noch lauter 0 geliefert werden.
Das Problem ist nämlich leider auch, das das Spiel zwischendrin gar keine Daten hat und erst ein paar Spuren weiter wieder Daten abgelegt hat.
-
Du kannst auch noch
dd_rescue if=/dev/fd0 of=spiel.img cat /dev/fd0 > spiel.img
probieren.