This is a complete list of all known hardware register on the Atari
ST, including the STE hardware list. It is a tranlsation of a german
article that appered in ST-magazine. We've put (STE) after each new
specific register on the STE. Since we do not have an STE to test
this we're not sure that every thing is correct, if you discover an
error, please let us know.


-------------
Configuration

ff8000 R/W  !------------xxxx!      Memory configuration
                         !!!!
                          --------- Bank 0      Bank 1 (not used)
                         xx00                   128 Kbyte
                         xx01                   512 Kbyte
                         xx10                     2 Mbyte
                         xx11                   Reserved
                         00xx       128 Kbyte
                         01xx       512 Kbyte
                         10xx         2 Mbyte
                         11xx       Reserved

-------
Display

ff8200 R/W  !--------xxxxxxxx!      Video base high
ff8202 R/W  !--------xxxxxxxx!      Video base mid

ff8204 R/W  !----------xxxxxx!      Video adress counter high (STE)
ff8206 R/W  !--------xxxxxxxx!      Video adress counter mid (STE)
ff8208 R/W  !--------xxxxxxx-!      Video adress counter low (STE)

The Video adress counter is can now be changed on the spot so be
careful to only change this on VBL interrupts.

ff820a R/W          !------xx!      Sync mode
                           !!
                           ! -------      Externl/_internal sync
                            --------      50 Hz/ 60 Hz Field rate

ff820c R/W  !--------xxxxxxx-!      Video base low (STE)

This register contains low byte of the screen, enables word alignment
of the video base and therefore also smooth vertical scrolling.


ff820e R/W  !--------xxxxxxxx!      Linewidth (STE)

With this you can have an offset added to video adress counter after
a pixelline is displayed.

ff8240 R/W  !----032103210321!      Palette color 0/0 (Border)
                 !!!!!!!!!!!!
                  !!! !!! !! --- Inverted/ normal monochrome
                  !!! !!! !!!
                  !!! !!!  ----- Blue
                  !!!  --------- Green
                   ------------- Red

The format of 0321 is needed to keep compatible with the standard ST.

ff8242 R/W  !----032103210321!      Palette color 1/1
ff8244 R/W  !----032103210321!      Palette color 2/2
ff8246 R/W  !----032103210321!      Palette color 3/3
ff8248 R/W  !----032103210321!      Palette color 4
ff824a R/W  !----032103210321!      Palette color 5
ff824c R/W  !----032103210321!      Palette color 6
ff824e R/W  !----032103210321!      Palette color 7
ff8250 R/W  !----032103210321!      Palette color 8
ff8252 R/W  !----032103210321!      Palette color 9
ff8254 R/W  !----032103210321!      Palette color 10
ff8256 R/W  !----032103210321!      Palette color 11
ff8258 R/W  !----032103210321!      Palette color 12
ff825a R/W  !----032103210321!      Palette color 13
ff825c R/W  !----032103210321!      Palette color 14
ff825e R/W  !----032103210321!      Palette color 15

ff8260 R/W          !------xx!      Shift mode
                           !!
                           00       320 x 200, 4 plane
                           01       640 x 200, 2 plane
                           10       640 x 400, 1 plane
                           11       Reserved

ff8264 R/W  !------------xxxx!     Horizontal scroll (STE)

This determines how many bits the screendisplay will be shifted when
it's displayed, special made for smooth horizontal scrolling together
with a suitable value in register ff820e.


--------
Reserved

ff8400      !----------------!      Reserved


--------
DMA/Disk

ff8600      !----------------!      Reserved
ff8602      !----------------!      Reserved

ff8604 R/W  !--------xxxxxxxx!      Disk controller (Word access)
ff8606 R    !-------------xxx!      DMA Status (Word access)
                          !!!
                          !! ---- Error status
                          ! ----- Sector count zero status
                           ------ Data request inact status

ff8606 W    !-------xxxxxxxx-!      DMA Mode control (Word access)
                    !!!!!!!!
                    !!!!!!! ---- A0
                    !!!!!! ----- A1
                    !!!!! ------ HDC / FDC register select
                    !!!! ------- Sector count register select
                    !!! -------- 0, Reserved
                    !! --------- Disable / enable DMA
                    ! ---------- FDC / HDC
                     ----------- Write / read

ff8609 R/W          !xxxxxxxx!      DMA base and counter high
ff860b R/W          !xxxxxxxx!      DMA base and counter mid
ff860d R/W          !xxxxxxxx!      DMA base and counter low


-----
Sound

ff8800 R            !xxxxxxxx!      PSG read data
                     !!!!!!!!          I/O port B
                      ----------- Parallel interface data
ff8800 W            !xxxxxxxx!      PSG Register select
                         !!!!
                          --------- Register number
                         0000       Channel A fine tune
                         0001       Channel A coarse tune
                         0010       Channel B fine tune
                         0011       Channel B coarse tune
                         0100       Channel C fine tune
                         0101       Channel C coarse tune
                         0110       Noise generator control
                         0111       Mixer control - I/O enabled
                         1000       Channel A amplitude
                         1001       Channel B amplitude
                         1010       Channel C amplitude
                         1011       Envelope period fine tune
                         1100       Envelope period coarse tune
                         1101       I/O port A (output only)
                         1111       I/O port B

ff8802 W            !xxxxxxxx!      PSG write data
                     !!!!!!!!         I/O port A
                     !!!!!!! ----- Floppy side 0/1 select
                     !!!!!! ------ Floppy drive 0 select
                     !!!!! ------- Floppy drive 1 select
                     !!!! -------- RS232 request to send
                     !!! --------- RS232 data terminal ready
                     !! ---------- Centronics STROBE
                     ! ----------- General purpose output
                      ------------ Reserved
                     !!!!!!!!         I/P port B
                      ------------ Parallel interface data


--------------------
Extra joystick ports

ff9200 R    !------------xxxx!      Fire 0-3    (STE)
                         !!!!
                         !!! ---- Firebutton joystick 0
                         !! ----- Firebutton joystick 2
                         ! ------ Firebutton joystick 1
                          ------- Firebutton joystick 3
ff9202 R/W  !xxxxxxxxxxxxxxxx!      Joystick 0-3  (STE)
             !!!!!!!!!!!!!!!!
             !!!!!!!!!!!!!!! ---- Joystick 0, right
             !!!!!!!!!!!!!! ----- Joystick 0, left
             !!!!!!!!!!!!! ------ Joystick 0, down
             !!!!!!!!!!!! ------- Joystick 0, up
             !!!!!!!! ----------- Joystick 2, same as above
             !!!! --------------- Joystick 1, same as above
              ------------------- Joystick 3, same as above
Joystick 1 and 3 are the two old ports and 0, 2 are the new ones,
only 0 and 2 can be written to.

ff9210 R    !--------xxxxxxxx!      X paddle 0  (STE)
ff9212 R    !--------xxxxxxxx!      Y paddle 0  (STE)
ff9214 R    !--------xxxxxxxx!      X paddle 1  (STE)
ff9216 R    !--------xxxxxxxx!      Y paddle 1  (STE)

You can attach two pairs of paddles to the new joyports, giving you a
total of four paddles. Fire is the same as for joystick, trigger for
paddles are in bit 0 and bit 1 of adress ff9202.

ff9220 R    !------xxxxxxxxxx!      Light X  (STE)
ff9222 R    !------xxxxxxxxxx!      Light Y  (STE)

This is for lightpen or lightgun that can be placed in joystickport 0
. Y cordinate is always exact but X has a lower resolution then the
screen.
            4 pixel in 320x200 mode
            8 pixel in 640x200 mode
           16 pixel in 640x400 mode
Therefore you will also have to multiply the X cordinate result with
2 or 4 when you are in medium or high resolution.


---------
Sound-DMA

ff8900 R/W  !-------------xxx!      Sound DMA control  (STE)
                           !!
                            ------
                           00       Sound-DMA turned off
                           01       Sound-DMA on, play and stop
                           10       Sound-DMA on, play and repeat

ff8902 R/W  !----------xxxxxx!      Framebase high    (STE)
ff8904 R/W  !--------xxxxxxxx!      Framebase mid     (STE)
ff8906 R/W  !--------xxxxxxx-!      Framebase low     (STE)

Start of sample to be played.

ff8908 R    !----------xxxxxx!      Frame adress counter high (STE)
ff890a R    !--------xxxxxxxx!      Frame adress counter mid  (STE)
ff890c R    !--------xxxxxxx-!      Frame adress counter low  (STE)

ff890e R/W  !----------xxxxxx!      Frame end adress high (STE)
ff8910 R/W  !--------xxxxxxxx!      Frame end adress mid  (STE)
ff8912 R/W  !--------xxxxxxx-!      Frame end adress low  (STE)

ff8920 R/W  !--------x-----xx!      Sound mode control    (STE)
                     !     !!
                     !      ------- Sample frequence
                     !      00        6258 Hz
                     !      01       12517 Hz
                     !      10       25033 Hz
                     !      11       50066 Hz
                      ------------- Stereo(0)/Mono(1) mode

In stereo the sample frequency is halfed.

ff8922 R/W  !xxxxxxxxxxxxxxxx!      Microwire data   (STE)
ff8924 R/W  !xxxxxxxxxxxxxxxx!      Microwire mask   (STE)

The Microwire interface allows for future chip expansion, one is
already present. The LMC1992-computer takes care of tone and volume
of DMA sample-sounds. LMC1992 has the device adress of 01. To use it
you must always put $7fff into the mask register.
The command is placed into the dataregister in the following form:

-- 01 011 xxx xxx -     Set main volume
          000 000 -     -80 dB
          010 100 -     -40 dB      (2 dB resolution)
          101 000 -     0 dB

-- 01 101 -xx xxx -     Set left volume
           00 000 -     -40 dB
           01 010 -     -20 dB      (2 dB resolution)
           10 100 -     0 dB

-- 01 100 -xx xxx -     Set right volume
           00 000 -     -40 dB
           01 010 -     -20 dB      (2 dB resolution)
           10 100 -     0 dB

-- 01 010 --x xxx -     Set treble
            0 000 -     -12 dB
            0 110 -     0 dB        (2 dB resolution)
            1 100 -     +12 dB

-- 01 001 --x xxx -     Set bass
            0 000 -     -12 dB
            0 110 -     0 dB        (2 dB resolution)
            1 100 -     +12 dB

-- 01 000 --- -xx -     Define mixing
               00 -     -12 dB
               01 -     Mix with GI sound chip
               10 -     Don't mix with GI sound chip
               11 -     Reserved


-------
MC68xxx

fffa01              !xxxxxxxx!      MFP general purpose I/O
fffa03              !xxxxxxxx!      MFP active edge
fffa05              !xxxxxxxx!      MFP data direction
fffa07              !xxxxxxxx!      MFP interrupt enable A
fffa09              !xxxxxxxx!      MFP interrupt enable B
fffa0b              !xxxxxxxx!      MFP interrupt pending A
fffa0d              !xxxxxxxx!      MFP interrupt pending B
fffa0f              !xxxxxxxx!      MFP interrupt in-service A
fffa11              !xxxxxxxx!      MFP interrupt in-service B
fffa13              !xxxxxxxx!      MFP interrupt mask A
fffa15              !xxxxxxxx!      MFP interrupt mask B
fffa17              !xxxxxxxx!      MFP vector
fffa19              !xxxxxxxx!      MFP timer A control
fffa1b              !xxxxxxxx!      MFP timer B control
fffa1d              !xxxxxxxx!      MFP timers C & D control
fffa1f              !xxxxxxxx!      MFP timer A data
fffa21              !xxxxxxxx!      MFP timer B data
fffa23              !xxxxxxxx!      MFP timer C data
fffa25              !xxxxxxxx!      MFP timer D data
fffa27              !xxxxxxxx!      MFP sync character
fffa29              !xxxxxxxx!      MFP USART control
fffa2b              !xxxxxxxx!      MFP receiver status
fffa2d              !xxxxxxxx!      MFP transmitter status
fffa2d              !xxxxxxxx!      MFP USART data


------
MC68xx

fffc00              !xxxxxxxx!      Keyboard ACIA control
fffc02              !xxxxxxxx!      Keyboard ACIA data

fffc04              !xxxxxxxx!      MIDI ACIA control
fffc06              !xxxxxxxx!      MIDI ACIA data


