General infos to the JIFFYDOS IEC bus routines:

b.i. = branches if

*xyz = diference between COMMODORE- and JIFFYDOS- KERNAL/DOS

lda $dd00  4  the number is the length of the order in microseconds (uS)

Because I have problems with "high/low" I use "active/inactive":

                active           inactive
                logical high     logical low
IEC-bus         0V               5V
1541 in&out     high             low
C64 outputs     high             low
C64 inputs      low              high

CBM saved money and didn't use input inverters at the C64.

The 1541 runs with 1 MHz
The (American) NTSC-C64 runs with 1.0227 MHz
The (European)  PAL-C64 runs with 0.9852 MHz

                                                       HD    HD
                                                      & no   &
                  CBM   JIFF  S-JI  JIFF  JIFF   FD   para  para   RAM-
                  1541  1541  1541  1571  1581  2000  cabl  cabl   LINK
Load 202 Blocks: 127,2  13,2   8,7   9,1   8,3   7,7   6,2   2,3   1,2
Save 154 Blocks: 105,3  43,4  21,0  41,8  20,7  19,6  15,7   3,0   2,4

C64 CIA port of serial bus $dd00:
bit 7  DATA-IN  (not inverted)
bit 6  CLOCK-IN  (not inverted)
bit 5  DATA-OUT  (inverted)
bit 4  CLOCK-OUT  (inverted)
bit 3  ATTENTION-OUT  ATN  (inverted)
bit 2  pin M of userport
bit 1&0 VIC-bank

1541 VIA port of serial bus $1800:
bit 7  ATTENTION-IN (inverted)
bit 6&5  jumper for device-number 8-11
bit 4  ATTENTION-ACKNOWLEDGE  ATNack  (doesn't set the ATN-line of the serial
           bus, but indirectly the data-line. If the logical status of the
           ATN-line of the serial bus is opposite to the status of this bit,
           then the 1541 sets (over an iverter chip) the data line to active.
           The activated data-line is the signal for the C64 that the floppy
           isn't ready and the C64 must wait.)
bit 3  CLOCK-OUT  (inverted)
bit 2  CLOCK-IN  (inverted)
bit 1  DATA-OUT  (inverted)
bit 0  DATA-IN (inverted)
Near Letter Quantity
Jochen Adler