CHAPTER 19
     
     
                    MISC HARDWARE REGISTERS AND INFORMATION
     
     
     VERTICAL LINE COUNTER
     
     The ANTIC chip has a vertical line counter at $0D4B (54283).  This
     counter shows the high 8 bits of a 9 bit counter.  This gives two line
     resolution.  The value of this counter is placed into PENV [$D40D
     (54285)] when a joystick trigger is pressed.
     
     SERIAL PORT REGISTERS
     
     The POKEY chip has some registers which control the serial port.
     
     The serial port control register, SKCTL [$D20F (53775)], controls the
     serial port configuration and the game paddle scan mode.  and some
     keyboard circuitry.
     
                       The serial port control register
     
                 7 6 5 4 3 2 1 0
                -----------------
      SKCTL     | | | | | | | | |
                -----------------
                 1 6 3 1 8 4 2 1
                 2 4 2 6
                 8
     
       bits
     
          0    1 = enable keyboard debounce
          1    1 = enable keyboard scan
          both 0 = set initialization mode.
          2    1 = fast pot scan
          3    1 = serial output is two tone (for cassette)
                instead of logical true/false
          4\
          5 >- serial port mode control
          6/
          7    1 = forced logical 0 on output
     
     If the serial port control register is read from it gives the serial
     port status.  The register is then called SKSTAT
     
                          Serial port status register
     
           7 6 5 4 3 2 1 0
          -----------------
          | | | | | | | |1|
          -----------------
           1 6 3 1 8 4 2 1
           2 4 2 6
           8
     
       bits
     
          0    not used, reads 1
          1    0 = serial input shift register busy
          2    0 = last key is still pressed
          3    0 = shift key pressed
          4    0 = direct from serial input port
          5    0 = keyboard over-run
          6    0 = serial data input over-run
          7    1 = serial data input frame error
     
     The serial port status is latched and must be reset by writing any
     number to its' reset register, SKRES [$D20A (53770)].
     
     SERIAL PORT INPUT AND OUTPUT DATA
     
     When a full byte of serial input data has been received, it is read
     from the serial input data register, SERIN [$D20D (53773).  Serial
     output data is written to the same register, which is then called the
     serial output data register, SEROUT.  This register is usually written
     to in response to a serial output data interrupt (bit 4 of IRQST).
     
     HARDWARE CHIP MEMORY ALLOCATION
     
     The addresses for the hardware chips are not completely decoded.  For
     example, the PIA needs only four bytes of memory but is active from
     $D300 - D3FF.  Enough room for 64 PIA chips.  A second pair of
     parallel ports could be added by accessing the address bus and further
     decoding the address for a second PIA.  (This would also require a
     small modification of the computer's circuit board to disable the
     original PIA when the new one is active.)  Similarly, there is room
     for 15 more POKEY or ANTIC chips and 7 gtia chips, should you ever
     need them.  (GTIA uses $D000 - D0FF, POKEY uses $D200 - $D2FF and
     ANTIC uses $D400 - $D4FF.)
     
                   Useful data base variables and OS equates
     
     
     
     SKRES  $D20A     (53770): serial port status reset
     SEROUT $D20D     (53773): serial output data
     SERIN  $D20D     (53773): serial input data
     SKCTL  $D20F     (53775): serial port control
     SKSTAT $D20F     (53775): serial port status
     VCOUNT $D40B     (54283): vertical line counter
     
     
                              Os shadow registers
     

     SSKCTL $0232       (562): SKCTL

------------------------------------------------------------
[BACK] [CONTENTS] [NEXT]