S-JIFFYDOS is a C64 operating-system, that works in a C64 or a Flash 8 (a German kind of S-CPU) in an eprom. It is a patch for JIFFYDOS. But don't be afraid, nobody must renounce for the original JIFFYDOS, this instruction describes, how You build CBM-, JIFFYDOS-, S-JIFFYDOS and, if You want also a German S-JIFFYDOS, into the C64 and the Flash 8. Because it's a patch for JIFFYDOS V6.01, it doesn't work without this at all. It uses the original JD IEC bus routines, so it works with all JD- und only-CBM floppies and reaches also the same speed. If You have JD, then try at once the program "test s-jiffydos" and look at the features:

Disadvantage to JD:
- no RS232 routines
- You must type the floppy orders in quotation marks (this is simplified by the F-keys because they print them on the screen)

Advantage to JD: - expanded F-keys: F1 @"$" Directory F3 /% intelligent load F5 ^Pfund intelligent start F7 @" : floppy status/order F2 @d list from disk F4 @t text from disk F6 <- save F8 @s: scratch CBM&F1 lI list CBM&F3 rU run CBM&F5 c=12:sY4096*c starts machine language program at $c000 CBM&F7 @l lock / unlock

- If there is no file name, intelligent load/start takes the first program from disk
- intelligent load routine:
SJD loads a program almost always correct, no matter it's a machinenlanguage- or a Basicprogram. It analyses the startadress of the program from the disk. If it is $0401 (VC20 or dir), $0801 (C64), $1001 (C16/+4) oder $1c01 (C128), then SJD loads to the basic begin, if not to the disk startadress. After the loading SJD tests, whether the basic begin is within the start- and the endadress of the loaded file; if yes it sets the basic end vector and at F5 generates additionally a RUN, if not , it makes nothing respectively a SYS . With F3 almost all programs of a disk are loaded correctly, even if You don't know whether it's a Basic- or a Ml-program, and F5 starts them correctly.
- shows the load adresses hexadezimal
- After a reset all mains of the IEC bus are inaktivated, so You can swap the device with CMD drives at once.
- All ram vectors are the same as CBM, so You can switch from CBM to SJD and back, without making the @x order before
- Ctrl & (Return) goes always to the begin of the line and ends the insert-, the quotation mark- and the revers-mode
- Ctrl & (Delete) deletes the rest of the line
- (Stop) ends the insert-, the quotation mark and the revers-mode
- the reset funktion is expandes:
& Space skips the CBM80 code test
& Stop like Stop & Restore
& q like Stop, but retains the ram vectors
& 1 & (arrow left) deletes the ram (don't do this in the test version because here is the SJD)
Instead of the reset button You often also can use the restore key
- shift & Ctrl & CBM shows the SJD status as a rasterbar
- shift & Ctrl & CBM & 1-4 changes the SJD status:
-1 off
-2 userport printer on
-3 JIFFYDOS wedge orders on
-4 function keys on
- there is also a kernal version with a German keyboard, which changes the German special characters correctly to Epson compatieble printers.
- supports a Centronics printer at the userport. Best is an Epson compatieble, because only with this the German special characters are printed correctly and the reverse Characters are changed to cursive ones (and not to international special characters). You should switch on the cursiv-character- charset at Your printer (and the German country specific charset). You must switch on that the printer makes at every carriage return an additional linefeed. At devicenumber 4 SJD test first, without changing anything at the userport, whether there is a seriell printer present. Only if this is not, it tests the presence of a userport printer and bypasses the IEC-OUT routine. The secundary adress makes:
- 0-7 seriell or paralell printer
- 8-11 only parallel printer (if You are shure that in a self written basic program a userport printer is present, You should take the secundary adress 8-11, to avoid a DEVICE NOT PRESENT ERROR when the printer buffer is full)
- 12-15 only seriell printer
You can have two printers permanently switched on at the C64 and determine with the secundary adress to which the print should go.
- 0 & seriell: no code change
- 0 & parallel: graficchars -> space / revers -> cursiv
- 1-3,11,15 no change
- 4,8,12 & US-Kernal: no change
- 4,8,12 & DE-Kernal: small <-> capital and German special chars change
- 5,9,13 small <-> capital change
- 6,10,14 graficc.->space / rev->cursiv
- 7 & seriell: no change
- 7 & parallel & US-kernal: small <-> capital change
- 7 & parallel & DE-kernal: small <-> capital a.germn.spcl.chr.change
If You want in a self written basic program on the one hand to change characters and on the other hand transmit ESC orders without change, You open two channels:
10 open4,4,11 : rem linearchannel
20 open4,4,9 : rem code change channel
and transmit the ESC orders with print#4 and the texts with print#5.
Basic listings are printed with "open 4,4,9:cmd4:list", because here reverse characters are changed to cursiv ones, and so f.e. a "Ctrl-L" doesn't cause a form feed.
At word processers You should take the linear channel, secundary adress 11.

More informations at http://home.t-online.de/home/dadler

Near Letter Quantity
Jochen Adler
Haeldestr. 9
D-74912 Kirchardt