[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

ADKCON is the write-only address and ADKCONR is the read-only address for
this register.  Not all of the bits are dedicated to the disk.  Bit 15 of
this register allows independent setting or clearing of any bit or bits.
If bit 15 is a one on a write, any ones in positions 0-14 will set the
corresponding bit.  If bit 15 is a zero, any ones will clear the
corresponding bit.


               Table 8-8: ADKCON and ADKCONR Register

     Bit
     Number  Name       Function
     ------  ----       --------
     15      SET/CLR    Control bit that allows setting or clearing of
                        individual bits without affecting the rest of
                        the register.

                        If bit 15 is a 1, the specified bits are set.
                        If bit 15 is a 0, the specified bits are cleared.

     14      PRECOMP1   MSB of Precompensation specifier
     13      PRECOMP0   LSB of Precompensation specifier

                        Value of 00 selects none.
                        Value of 01 selects 140 ns.
                        Value of 10 selects 280 ns.
                        Value of 11 selects 560 ns.

     12      MFMPREC    Value of 0 selects GCR Precompensation.
                        Value of 1 selects MFM Precompensation.

     10      WORDSYNC   Value of 1 enables synchronizing and starting of
                        DMA on disk read of a word.  The word on which to
                        synchronize must be written into the  DSKSYNC 
                        address ($DFF07E).  This capability is highly
                        useful.

     9       MSBSYNC    Value of 1 enables sync on most significant bit
                        of the input (usually used for GCR).

     8       FAST       Value of 1 selects two microseconds per bit cell
                        (usually MFM).  Data must be valid raw MFM.
                        0 selects four microseconds per bit (usually GCR).

     7-0                These bits are used by the audio subsystem for
                        volume and frequency modulation.


The raw MFM data that must be presented to the disk controller will be
twice as large as the unencoded data.  The following table shows the
relationship:

               1 -> 01
               0 -> 10   ;if following a 0
               0 -> 00   ;if following a 1

With clever manipulation, the blitter can be used to encode and decode the
MFM.

In one common form of GCR recording, each data byte always has the most
significant bit set to a 1.  MSBSYNC, when a 1, tells the disk controller
to look for this sync bit on every disk byte. When reading a GCR formatted
disk, the software must use a translate table called a nybble-izer to
assure that data written to the disk does not have too many consecutive
1's or 0's.


[Back to Amiga Developer Docs]