S-JiffyDOS 1541 (SJD41) ist ein CBM-1541-Floppy-DOS-Betriebssystem, das in der 1541 in einem EPROM, in der 1541U, im Turbo-Chameleon64 und in Emulatoren läuft. Es ist ein Patch für JiffyDOS 1541 (JD41). Da es ein Patch für JiffyDOS 1541 ist, läuft das Patchprogramm ohne dieses gar nicht. Es benutzt die Original JD-IEC-Bus-Routinen, sodass es mit allen (Nur-CBM-) und JiffyDOS-Computern und -Beschleunigerkarten zusammenarbeitet. Es erreicht mit allen Normal-JiffyDOS-Computern und-Beschleunigerkarten die unten angegebenen Werte, d.h. man braucht im C64 nicht SJD64 zu haben. SJD in der 1541 funktioniert uneingeschränkt mit allen Normal-JiffyDOS-Computern (C64, C128, Flash8, S-CPU) und erreicht auch mit diesen die höhere Geschwindigkeit.
SJD41 ist absolut unabhängig von SJD64.
Hier die Werte von S-JiffyDOS1541 (im Vergleich zur CBM1541 und zu JiffyDOS1541):
- CBM1541 JD1541 SJD1541
- New/Format 35 Tracks 95,4 22,2 22,5
- load 202 Blocks 127,2 13,2 8,7
- (bei Gap) (9,5) (6) (4+)
- load 202 Blocks mit Gap 9,5 127,2 20,7 14,7
- save 154 Blocks 105,3 43,4 21,0
- scratch 202 Blocks 24,9 14,9 4,3
- scratch 664 Blocks 144 Files 361,7 260,3 17,9
- validate 664 Blocks 144 Files 239,0 139,6 10,9
- Suchen des 144. Files im Dir 5,3 4,7 1,1
- 100 Bytes IECOUT 0,146 0,0335 0,0335
- 100 Bytes IECIN 0,204 0,0216 0,0216
- kann 40 Tracks benutzen: zuerst @"et+ <return> dann @"n:dn,id eingeben (!formatiert Disk!).
- @"el @"eu lock/unlock von Files. Vorteil gegenüber JD: man kann mehrere Files bearbeiten mittels Jokern
- @"el:$ @"eu:$ lock/unlock der Disk
- @"v validiert GEOS Disks richtig
- @"vg- validiert normal (GEOS Disks falsch)
- @"sg+ scratcht GEOS VLIR Files richtig
- @"nv- formatiert eine Disk ohne Verify
- @"e erweiterter Floppy Status (+ ist ein, - ist aus)
. 02,sj+ ic+ dt- mb- em- .tk.gp,35,00
. sj = S-JiffyDOS ein/aus
. ic = IEC-BUS JD/CBM
. dt = erlaubt/verhindert das Schreiben von Files (nicht des Dirs) auf den Dir-Track 18. Beim Belegen von Blöcken auf Track 18 werden vorher sicherheitshalber die Dir-Blöcke in der BAM belegt. Das Dir kann immer (unabhängig von DT) auf Track 18 geschrieben werden. Bei DT geht es nur darum, dass, wenn eine Disk nicht mehr genügend freie Blöcke hat, damit ein File noch daraufpassen würde, man dieses File dann noch auf die freien Sektoren auf Track 18 schreiben kann (diese sind normalerweise nur für das Dir reserviert und können von normalen Files nicht belegt werden). Dies kann manchmal eine Möglichkeit sein, das letzte File gerade noch auf einer Disk unterzubringen. !Es besteht Datenverlustgefahr bei der Verwendung von Dir-Editoren!
. mb = mechanical bump = harter CBM-/fast weicher SJD-Bump
. em = execution of MB = MB bereits / noch nicht ausgeführt (nur falls MB-)
(MB und EM sind mehr für interne SJD41 Routinen. An diesen Werten braucht nichts geändert werden)
. tk = 35/40 Tracks
. gp = Gap, Interleave (00 bedeutet, dass SJD41 selbst den optimalen Interleave bestimmt)
./! = Track automatisch (nach Disk ID)/fixiert
Beispiel:
- @"es+ schaltet SJD Modus ein
- @"ei- schaltet JD-IEC-Bus Routinen aus
- @"e+ Default für EIN setzen
- @"e- Default für AUS setzen
- @"et automatische Track Erkennung: Erkennt eine 40 Track Disk an "4a" oder "4<"
- @"et+ fixiert 40 Tracks
- @"et- fixiert 35 Tracks
- @"eh:dn,id ändert Disk-Name und ID
- @"e<Zahl (4-30)> ändert die Device Nummer
- @"ec checkt eine Disk nach fehlerhaften Blöcken
- @"eca+ check&allocate checkt eine Disk nach fehlerhaften Blöcken und belegt sie in der BAM
- @"ec <Zahl (1-41)> checkt beginnend mit angegebenem Track
- spezielle LOAD Routine für PRGs, die mit dem CBM Gap 9,5 gespeichert wurden
- spezielle LOAD Routine, die während des Einlesens der GCR Bytes von der Disk diese ins HexDec Format wandelt. Schafft Gap 4
- der Bereich c000-dfff enthält (fast) alle Patches des 1541/2 DOSs, also auch die Fehlerbeseitigung des Save&Replace Bugs (Bei 1541alt nur wenn beide Eproms getauscht sind)
- fast Open schafft Gap 3 statt 22
- gibt die Zahlen der Fehlermeldung dreistellig aus, wenn sie grösser als 99 sein sollten
- Fast Reset ohne RAM und ROM Test
- Drive 1 belegt (fast) nie einen unnötigen Puffer
- Fast Save: Weil SJD41 die Original Routinen des C64 benutzen muss, und weil bei diesen der IRQ nicht gesperrt ist, sollte während des Savens keine Taste des C64-Keyboards gedrückt werden. Sonst würde der Interrupt des C64 länger dauern als von der 1541 angenommen und das Saven würde etwas verlangsamt. Fast Save verifiziert die geschriebenen Blöcke, d.h. der Speed geht nicht auf Kosten der Datensicherheit
- Fast-Scratch und -Validate bildet die Prüfsumme während des Einlesens der Daten von der Disk
- wenn man bei der 1541alt nur ein (statt zwei) Eproms tauscht muss man auf Check, Fast-Lock/Unlock, -Scratch, -Validate und -Save und die 1541/2 Fehlerpatches verzichten
- SJD benutzt den Bereich 8000-ffff (Bei der 1541/c und /2 immer; bei der 1541alt nur wenn beide Eproms getauscht sind (1541alt und nur ein getauschtes Eprom: a000-ffff))
Vielen Dank an '1570',der einen Online-Patcher programmiert hat, der JD zu SJD patcht: http://dtvforge.ath.cx/sjiffy/