JiffyDOS im C64/C128

Neben den Video-Schnipsel auf YouTube möchte ich hier für Interessierte zusammenfassen, was JiffyDOS eigentlich ist und was es kann. Ich gebe Anwendungsbeispiele, bei dem Umgang von Dateien und Unterverzeichnissen (ja wirklich, gab es damals schon). Viele Links findet Ihr am Ende dieses Beitrags.

Was sagt denn das 64er Magazin in 1992 und das Wiki heute dazu?

JiffyDOS ist ein serielles Schnellladesystem der Firma Creative Micro Designs, das 1985 entwickelt wurde und die Geschwindigkeit des Ladevorgangs bei der Kombination C64/1541 um den Faktor 6 bis 10 beschleunigt. Es ist ein Floppy-Schnelllader und enthält Kommandoerweiterungen für das Diskettenlaufwerk VC1541.[1]

64’er Magazin 11/1992, Beschleunigung tut not, Module und Einbau-Speeder in der Übersicht, Seite 22ff

JiffyDOS muss sowohl in die Floppy, als auch in den C64 eingebaut werden. Es handelt sich um einen Speeder des zweiten Typs. Der Einbau ist relativ einfach, allerdings muss in jedem Gerät ein Loch gebohrt werden, um einen Schalter aufzunehmen. Dieser Schalter ermöglicht ein Umschalten auf das alte Betriebssystem. Dieses ist fertig gebrannt auf dem EPROM mit dabei. Dadurch ist das System zu 100 % kompatibel. Für jedes Gerät ist das optimale Betriebssystem mit in der Hardware verbaut. Die Beschleunigung ist für einen seriellen Speeder gut, beim Laden ist die VC1541 damit um den Faktor 10 schneller, das Speichern benötigt nur noch etwa ein Drittel der Zeit. Ähnliche Werte ergeben sich beim Formatieren und Validieren einer Diskette.

Zusätzliche beinhaltet JiffyDOS eine Reihe von Zusatzfunktionen. So sind nicht nur die Funktionstasten vorbelegt und alle Floppybefehle ohne OPEN- und CLOSE-Anweisung erreichbar. Verschiedene Laufwerke lassen sich einfach erreichen, Basic- und ASCII-Dateien können direkt von der Diskette gelistet und Dateien kopiert werden. Weiter unterstützt JiffyDOS als einziger Speeder auch die von Creative Micro Designs stammende Hard Disk und stört auch den GEOS-Betrieb in keiner Weise.

https://de.wikipedia.org/wiki/JiffyDOS

Was genau kann JiffyDOS denn jetzt?

OK, wir müssen also den Kernel-Chip austauschen oder einen modernen Kernelumschalter verwenden. Du wirst da nichts löten müssen – nur in den seltensten Fällen ist das Kernel gelötet. Eine Anleitung zum Einbau findest Du z.B. hier. Heute gibt es sehr viele von den Kernelumschalter und ich kann den nur empfehlen – denn einen Nachteil hat JiffyDOS: Wenn der JiffyDOS Kernel aktiv ist, kannst Du Deine Datasette nicht mehr benutzen. Wirklich? Du benutzt die noch? 🙂

JiffyDOS ist zu 99% kompatibel und ich habe sehr selten ein Spiel oder Kopierschutz gefunden, der sich mit JiffyDOS nicht verträgt. Auch ein Vorteil ist, wenn Du ein Schnelllader im Kernel hast, alle Deine Erweiterung- und User-Ports am C64 sind frei. Die sogenannten DOS-Wedge Befehle stellen im Grunde das da, was die MS-DOS Befehle fortgeführt haben und das bereits Mitte-/Ende 1980 …

Deine F-Tasten sind mit Kurzfunktionen belegt:

Das interessanteste, neben der erheblichen Beschleunigung, kommt zu tragen wenn Du eine Festplatte oder ein 1581 Laufwerk dein Eigen nennst. Die Navigation in Unterverzeichnisse und das kopieren von einzelnen Dateien oder einer ganzen Diskette, ohne ein Kopierprogramm.

Gerade wenn Du 2, 3, oder 5 Laufwerke angeschlossen hast und egal ob dabei ein SD2IEC oder Ultimate1541II+ mit dabei ist. JiffyDOS erleichtert Dir die Navigation innerhalb der Laufwerke. Bevor ich das alles jetzt umständlich aufschreibe. Ich hatte das in einem kleinen Schnipsel mal in YouTube gezeigt:

File Handling, virtueller und echter Laufwerke sowie RAMLink

OK, das macht die Handhabung im Gegensatz zum normalen BASIC aber erheblich einfacher! Weitere Informationen zu dem genannten DiskFix Tool, findet Ihr auch hier auf der Webseite.

Und wie ist das jetzt mit den Unterverzeichnissen? Es gab von der Firma CMD bereits für das 1541 / 1571 ein Programm, mit dem Unterverzeichnisse auch dort angelegt werden konnten. Richtig Sinn macht das jedoch erst ab einer 1581 oder einer CMD-HD (Festplatte) oder dem CMD RAMLink. Denn die Blockanzahl auf den 1541 und 1571 ist nicht wirklich so groß, als das es wirklich Sinn machen würde.

Ich benutze in den Beispielen ein 1581 und lege direkt nach der Formatierung der Diskette Unterverzeichnisse an. Aus heutiger Sicht würde ich das eher wie eine „Partition“ ansehen. Man kann das natürlich „zu fuß“ machen, schauen wir dazu mal ins Handbuch

Werfen wir einen Blick in das Handbuch die 1581

6.8. PARTITIONEN UND UNTERVERZEICHNISSE

Der 1581 ermöglicht es dem Benutzer, Partitionsbereiche auf der Festplatte zu erstellen.
Partitionen wurden ursprünglich implementiert, um einen Mechanismus für
einen bestimmten Teil der Festplatte leicht zu schützen. Das ist
nützlich, um einen Teil der Festplatte dauerhaft für Dinge zuzuweisen
wie BOOT-Sektoren, CP/M-Arbeitsbereich oder Platzreservierung für Benutzer
definierte Zufallsdateien.
Normalerweise können Sektoren auf der Festplatte durch Einstellung als verwendet markiert werden
das entsprechende Bit im RAM (am einfachsten mit dem BLOCK-
ALLOCATE-Befehl). Das verhindert, dass sie überschrieben werden. Buchstabe a
Der Befehl VALIDATE de-alloziert diesen Bereich jedoch. Zum Schutz
diese speziellen Blöcke werden während einer VALIDIERUNG nicht zugewiesen,
Platzieren Sie sie in einem benutzerdefinierten Partitionsbereich. Der Befehl VALIDATE
in der 1581 überspringt automatisch Dateieinträge, die
Partitionsdateien (Dateityp = CBM), was die beabsichtigte
Die Fläche ist und bleibt zugewiesen.
Partitionsbereiche werden vom Benutzer beim ersten Erstellen benannt.
Sie erscheinen im Hauptverzeichnis als Dateityp CBM.
Ein Partitionsbereich wird mit dem folgenden Befehl erstellt:

PRINT#15,“/0:partition name,“+CHR$(Startspur)+CHR$
(Startsektor)+CHR$(<# der Sektoren)+CHR$(># der Sektoren)+“,C“

Ausreichend große Partitionen können auch als Unterverzeichnisse verwendet werden.
Es gibt jedoch bestimmte Einschränkungen, wenn ein Partitionsbereich
als Unterverzeichnisbereich verwendet werden.

1) Die Partition muss mindestens 120 Sektoren groß sein.
2) Der Startsektor muss 0 sein.
3) Der Endsektor muss ein Vielfaches von 40 sein.
4) Der zuzuweisende Bereich darf keine Spur 40 enthalten (die
Original-Systemspur).

Partitionen können auch mit einer Partition erstellt werden. Das bedeutet
dass Unterverzeichnisse erstellt werden können, wenn ihre Partitionen treffen
die oben genannten Regeln. Grafisch sieht es so aus:

WURZEL (/)
|
———————————- … ———-
| | | |
/0:TEIL1 /0:TEIL2 /0:TEIL3 ….. /0:PARTn
|
———————
| |
/0:TEIL2 /0:TEIL2
/0:TEIL21 /0:TEIL22

Teilungsbereiche, die die Qualifikation erfüllen, ein Sub-
Verzeichnis kann dann mit dem folgenden Befehl ausgewählt werden:

PRINT#15,“/0:Partitionsname“

Einmal ausgewählt, kann die Partition nicht als Unter-
Verzeichnis, bis es formatiert ist. Die Befehle HEADER oder NEW sind
verwendet, um diesen Sub-Disk-Bereich zu formatieren. Stellen Sie sicher, dass Sie
Diesen Partitionsbereich vor der Formatierung erfolgreich ausgewählt. Wenn
nicht, der falsche Verzeichnisbereich wird neu formatiert. Sie können überprüfen
wenn der Bereich durch Überprüfen des Fehlers erfolgreich ausgewählt wurde
Kanal. Wenn alles in Ordnung wäre, würde der Fehlerkanal lauten:

02, AUSGEWÄHLTE PARTITION,erster Track#,letzter Track#

Wenn der Bereich, den Sie auswählen möchten, nicht die
Qualifikationen eines Unterverzeichnisses, dann würde der Fehlerkanal
Rückkehr:

77, AUSGEWÄHLTE PARTITION ILLEGAL,00,00

Es kann nur eine Ebene des Unterverzeichnisses gleichzeitig ausgewählt werden. Zu
Von der WURZEL zu PART21 müssten Sie den Befehl ausführen
zweimal.

DRUCK#15,“/0:TEIL2″
PRINT#15,“/0:TEIL21″

Verzeichnisse können nur in Vorwärtsrichtung durchquert werden. Zu
zum Unterverzeichnis, das sich auf einem Knoten über dem aktuellen befindet
ausgewählter Knoten des Baums, müssen Sie das ROOT-Verzeichnis auswählen und
Arbeiten Sie sich den Baum hinunter und wählen Sie einen Ast nach dem anderen aus. Um zu bekommen
in das ROOT-Verzeichnis direkt von einem beliebigen Knotentyp:

DRUCK#15,“/“

Wenn der Benutzer einen bestimmten Unterverzeichnisbereich auswählt, wird er dann
wird zum Standardarbeitsbereich. Zugriff auf die Festplatte für
Verzeichnisse, Laden von Dateien, Speichern von Dateien usw. werden alle erledigt
innerhalb dieses Bereichs. Dateien außerhalb des ausgewählten Bereichs sind
effektiv unsichtbar.
Datei- und lokale BAM-Informationen für Unterverzeichnisse werden gespeichert
innerhalb der Unterverzeichnisbereiche selbst. Die Informationen sind
auf der ersten zugewiesenen Spur des Partitionsbereichs gespeichert und
hat das gleiche Format wie Track 40. Beim Erstellen von Partitionen und
Unterverzeichnisse innerhalb von Unterverzeichnissen, es liegt in der Verantwortung
des Benutzers, um sicherzustellen, dass er dies nicht überschreibt
Informationen! Das DOS überprüft nur, um sicherzustellen, dass Sie nicht
versuchen, diese Informationen für das ROOT-Verzeichnis zu überschreiben
(Spur 40). Es liegt an dem Benutzer, sicherzustellen, dass dies
Informationen sind in den Unterverzeichnissen nicht beschädigt.
Geteilte Bereiche können einfach durch SCRATCHING der
Partitionsdateieintrag im entsprechenden Verzeichnis. Wenn die
Partition wurde als Unterverzeichnis verwendet, alle Dateien in
dieses Unterverzeichnis wird verloren gehen.

http://www.zimmers.net/anonftp…drives/1581-manual.txt.gz

1581 Subpartitions Tool von CMD

Ich nutze da lieber ein CMD Tool: 1581 Subpartition Aid. Auf der gleichen Seite findet Ihr dazu eine Erklärung. Dazu mal ein Screenshot – ist wirklich intuitiv zu meistern und es ist kein Problem 3 Partitionen zu erzeugen. Der Leistungsumfang ist im Menü dargestellt und wird durch die Erstellung geführt.

Erstaunlich finde ich, das die Firma CMD Ihren eigenen „Farbcode“ gefunden hat. Weiss, Cyan und grün waren auf schwarzem Hintergrund war irgendwie Ihr Ding.

Navigation in Sub-Partitionen mit JiffyDOS

Die Navigation in und aus Unterverzeichnisse ist mit JiffyDOS dann wirklich kein Problem mehr. Aufgrund der Anzahl der Blocks auf der 1581 habe ich immer gern 2 Partitionen pro Diskette. Eine Partition enthält allgemeine Tools und in der Hauptpartition finden sich dann die Speicherstände der Betaversionen, die ich am C64 erzeuge (ich programmiere ja nicht am PC/Mac oder so). Also schauen wir uns das mal an:

  1. @$ Directory (Haupt-Partition) des aktiven Laufwerk aufrufen (F1)
  2. @/0:name In das Directory oder die Sub-Partition wechseln
  3. @/ Zurück auf die Haupt-Partition wechseln und mit F1 aufrufen.

Das ist dann auch schon alles um auf Datenträger zu navigieren 🙂

JiffyDOS Befehlsübersicht

@ = Fehlerkanal des aktiven Laufwerks auslesen
@I = Aktives Laufwerk initialisieren
@UJ = Aktives Laufwerk Soft-Reset ausführen
@$ = Directory der aktiven Disk (BASIC PRG im Speicher bleibt erhalten!)
@N:diskname,ID  = Formatieren einer Diskette (ID kann auch weggelassen werden)
@C:newfile = Kopieren einer Datei auf der gleichen Diskette 
@R:newname=oldname  = umbenennen eines Files
@S:file1{,file2}…  = Scratch a file (or files) 
@V  = validieren einer Diskette (gelöschte Blocks freigeben)
@#device  = Aktives Laufwerk setzen (oder CTRL-D direkt umschalten)
@Xdevice  = Setzt das Ziellaufwerk (fürs kopieren)
  = Kopieren eines PRG (Langversion: *”filename”type)
@D:filename  = Listet BASIC PRG von Disk auf (BASIC PRG im Speicher bleibt erhalten!)
@L:filename  = Lock/Unlock – vor dem Löschen schützen
@O  = Un-NEW holt ein BASIC PRG in den Speicher zurück
@T:filename  = Auflisten eines ASCII file von der Diskette

———————————- Zusätzliche JiffyDOS Command
@B  = Das Kopfrattern des 1541 beim formatieren ausschalten
@F  = Funktions-Tasten-Belegung ausschalten
@G  = Interleave gapsize setzen
@P  = Printer output umschalten

———————————- Kürzel
CTRL+A  = Toggle all files for copy 
CTRL+D  = Default drive toggle
CTRL+P  = Screen dump
CTRL+W  = Toggle single file for copy
SHIFT+RUN/STOP  = Load & run first program on disk

———————————- Abkürzungszeichen
 /filename   = Laden eines BASIC PRG 
~filename   = Laden und starten eines BASIC PRG
%filename   = Laden eines Assembler PRG 
filename   = Speichern eines BASIC PRG

|filename   Load and run an ML file 
’filename   Verify a file

———————————- SYS Befehle
SYS 58451 Re-enable der JiffyDOS Befehle (64 mode)
SYS 58551 Re-enable the JiffyDOS F-Tasten und Befehle (64 mode) 
SYS 65137 Re-enable the JiffyDOS Befehle (128 mode)

Links für noch mehr Informationen

Bitte setz keine kopierten oder inoffizielle JiffyDOS Kernel ein. Bitte kaufe Original beim deutschen Lizenzhändler: Restore-Store.

%d