
     DESIGN SPECIFICATION FOR THE TT INTERRUPT CONTROLLER (SCU)
     Atari part #:

Incarnations:  National AAD rev. A
            *National ADS rev. B
            *Styra ST-4129 (rev. B only)

          *May be used in production.

Pin Description

A0-A31    cmos input     address bus from CPU
     (change to TTL if chip ever revised)

FC0-FC2   cmos input     CPU function codes
     (change to TTL if chip ever revised)

SIZ0-1    cmos input     CPU data size code
     (change to TTL if chip ever revised)

XAS  cmos input     Address strobe from CPU
     (change to TTL if chip ever revised)

XDS  cmos input     data strobe from CPU
     (change to TTL if chip ever revised)

CLK  cmos input     16 Mhz clock input

RXW  cmos input     CPU read write line
     (change to TTL if chip ever revised)

XPOR TTL input power on reset (active low), clears all internal
               registers and interrupt masks.

D0-D7     TTL bi-dir     CPU data bus

XFPUCS    output         chip select to FPU (active low)
XIOCS1    output         general IO select 1 (active low)
XIOCS2    output         general IO select 2 (active low)
XMFP1     output         chip select to MFP1 (active low)
XMFP2     output         chip select to MFP2 (active low)

XDSACK1   ts output data size acknowledge

XBERR     ts output bus error output, goes low after 256 clocks
if XAS
               remains low

XVIRQ1-7 ttl input  VME bus interrupt inputs lines

HSYNC     ttl input horizontal sync pulse, generates system
interrupt 2
VSYNC     ttl input vertical sync pulse, generates system
interrupt 4

XSIRQ5-7 ttl input  system interrupt inputs

XIPL0-2   output         interrupt output lines to CPU

XSYSI     output         system iack signal to VME circuit, when
low a system
               interrupt is being acknowledged, else a VME
interrupt
               is being acknowledged

XAVEC     ts output auto-vector acknowledge, terminates system
interrupt
               acknowledge cycles for levels 1,2,3,4, and 7

XIACK5-6 output          Interrupt ackowledge outputs, low
indicates a
               interrupt ackowledge cycle is in progress for
               system interrupt levels 5 or 6



PACKAGE
The circuit needs 77 signal pins. Package is a 84 pin PLCC.

PIN-OUT
1  - XIOCS2    22 - A6        43 - A25  64 - XIPL1
2  - XIOCS1    23 - A7        44 - A26  65 - XIPL2
3  - XMFP2     24 - A8        45 - A27  66 - XSIRQ
4  - XMFP1     25 - A9        46 - A28  67 - XSYSI
5  - XFPUCS    26 - A10  47 - A29  68 - XSIRQ5
6  - XDSACK1   27 - A11  48 - A30  69 - XSIRQ6
7  - XBERR     28 - A12  49 - A31  70 - XSIRQ7
8  - SIZ1 29 - A13  50 - FC0  71 - XVIRQ1
9  - SIZ0 30 - A14  51 - FC1  72 - XVIRQ2
10 - CLK  31 - A15  52 - FC2  73 - XVIRQ3
11 - VDD  32 - XPOR 53 - VDD  74 - VDD
12 - VSS  33 - VSS  54 - VSS      **75 - TMC
13 - XAS  34 - A16  55 - D0        76 - XVIRQ4
14 - XDS  35 - A17  56 - D1        77 - XVIRQ5
15 - RXW  36 - A18  57 - D2        78 - XVIRQ6
16 - A0        37 - A19  58 - D3        79 - XVIRQ7
17 - A1        38 - A20  59 - D4        80 - HSYNC
18 - A2        39 - A21  60 - D5        81 - VSYNC
19 - A3        40 - A22  61 - D6        82 - XIACK5
20 - A4        41 - A23  62 - D7        83 - XIACK6
21 - A5        42 - A24  63 - XIPL0     84 - XAVEC

** pin 75 is connected to a test mode control in the National
   AAD and ADS parts, it is not connected in the ST-4129. It
   should always be open in the system.

=================================================================
=

          TT INTERRUPT CONTROLLER (SCU)


-----------------------------------------------------------------
-
GLUE FUNCTIONS

xxFFA000-xxFFA1FF   GENERATES XIOCS1    uncommitted IO 
xxFFA200-xxFFA3FF   GENERATES XIOCS2

XFPUCS is generated for CPU space cycles with ID 01.
(FC0=FC1=FC2=A17=A13= 1  A19=A18=A16=A15=A14= 0)

xxFFFA00-xxFFFA3F   GENERATES MFP1
xxFFFA80-xxFFFABF   GENERATES MFP2

Where xx is A24-A31 = 00h or FFh

XBERR is driven low when XAS remains low for more than 256
clocks.

-----------------------------------------------------------------
-
INTERRUPT CONTROLLER

ADDR      D7  -  D0
xxFF8E01  XXXX XXX0 SYSTEM INTERRUPT MASK
                    0 in a bit position masks the corresponding
                    system interrupt. Reset state is all masked.

xxFF8E03  XXXX XXX1 SYSTEM INTERRUPT STATE
                    Inverse of the actual state of the system
                    interrupts taken before the mask gates.

xxFF8E05  XXXX XXX* SYSTEM INTERRUPTER REGISTER
                    Setting bit 0 will generate system
                    interrupt 1 unless masked.
                    Otherwise all bits are general read/write.

xxFF8E07  XXXX XXX* VME INTERRUPTER REGISTER
                    Setting bit 0 will cause XSIRQ to go low
                    if not masked by system interrupt mask 3.
                    Otherwise all bits are general read/write.

xxFF8E09  XXXX XXXX GENERAL PURPOSE REGISTER 1
                    8 bit read/write.

xxFF8E0B  XXXX XXXX GENERAL PURPOSE REGISTER 2
                    8 bit read/write.

xxFF8E0D  XXXX XXX0 VME INTERRUPT MASK
                    0 in a bit position masks the corresponding
                    VME interrupt. Reset state is all masked.

xxFF8E0F  XXXX XXX0 VME INTERRUPT STATE
                    Inverse of the actual state of the VME
                    interrupts taken before the mask gates.

There are two ways each interrupt level can be generated; via the
system
or local interrupt source or by the XVIRQx input pins. The system
interrupt sources are masked by the system interrupt mask
register bits.
The XVIRQx inputs are masked by the VME interrupt mask register
bits.

Interrupt 1 is caused by setting bit 0 in the system interrupter
register or a low on XVIRQ1. The bit must be explicitly reset or
the
external interrupt removed or masked to clear.

Interrupt 2 is caused by a rising edge on HSYNC or a low on
XVIRQ2. If caused by HSYNC it is reset by an IACK 2 cycle else
the
external interrupt must be removed or masked. Caution should be
taken
that an IACK 2 cycle as a result of XVIRQ2 does not clear a
subsequent
HSYNC interrupt.

Interrupt 3 is caused by setting bit 0 in the VME interrupter
register or a low on XVIRQ3. The bit must be explicitly reset or
the
external interrupt removed or masked to clear.

Interrupt 4 is caused by a rising edge on VSYNC or a low on
XVIRQ4. If caused by VSYNC it is reset by an IACK 4 cycle else
the
external interrupt must be removed or masked. Caution should be
taken
that an IACK 4 cycle as a result of XVIRQ4 does not clear a
subsequent
VSYNC interrupt.

Interrupts 5 and 6 are caused by a low on XVIRQ5 or XVIRQ6 
respectivly. An IACK 5 or IACK 6  cycle will generate a low on
XIACK5
or XIACK6 respectivly only if the XSIRQ5 or XSIRQ6 inputs are
low.
The external interrupt must be removed or the interrupt masked to
clear.

A low on XSIRQ7 or XVIRQ7 will cause interrupt 7. The external
interrupt
must be removed or the interrupt masked to clear.

During the interrupt acknowledge cycle, if the local interrupt
state
exists for the level being acknowledged (ie. VSYNC, HSYNC, the
interrupter
bits set, or the appropriate XSIRQ pin low), then the XSYSI line
is
driven low and either the XIACK pin for level 5 or 6, or the
XAVEC pin
for levels 1,2,3,4,or 7, is driven low. If the local interrupt
state is
not present, the interrupt must have come from the VME bus. In
this case
the XSYSI pin remains high and both the XIACK pins and the XAVEC
pin
remain high.

