**************************************
*                                    *
*     Apple-Cat  Modem  A.P.I.       *
*                                    *
*     By: The Tailpipe               *
*                                    *
**************************************
This is a disk copy of what is in the
Cat-API book..
Register Index
Hex        Decimal    Read     Write
---------------------------------------
$C080     -16256     SWBYT     DACBYT
$C081     -16255     TONBYT    SQUBYT
$C082     -16254     ---       SHBYT
$C083     -16253     ---       BSRBYT
$C089     -16247     ---       RECBYT
$C08A     -16246     ---       CON
$C08B     -16245     INDAT     SPDBYT
$C08C     -16244     ---       COM
$C08D     -16243     ACBYT     XMBYT
$C08D     -16242     ---       OUTDAT
$C08F     -16241     STATUS    DEVBYT
212 CARD
$C080     -16256     ---       212BYT
* ADD $N0 to hex address or 16*N to 
decimal base address (where N=slot of 
apple cat or 212 card) to obtain slot
adjusted address.
---------------------------------------
BIT COMPONENT INDEX
Bit Component               Register
---------------------------------------
Audio detect                  SWBYT
BSR 60 Hz input               SWBYT
BSR 120 KHz output            BSRBYT
Carrier detect                SWBYT
Carrier detect timing         RECBYT
Clear DV                      SHBYT
Clear to send                 ACBYT
DAC bits                      DACBYT
DV from touch tone            SWBYT
Fiarmware switches            SWBYT
From UART tdx to              DEVBYT
IRQ 29.1 Hz enable            XMTBYT
IRQ 29.12 Hz enable           RSRBYT
IRQ 29,12 Hz status           TONBYT
Microphone squelch            SQUBYT
Mode control bits             RECBYT
Receive baud rate             SPDBYT
Receive data from UART        INDAT
Ring detect                   ACBYT
Speaker squelch               SQUBYT
Swith hook                    SHBYT
Tape recorder motor cont.     SQUBYT
Touch tone bits               TONBYT
Transmit baud rate            SPDBYT
Transmit data to UART         OUTDAT
Transmitter mode              XMTBYT
UART command receiver         COM
UART command transmitter      COM
UART control parity mnable    CON
UART control parity           CON
UART control #stop bits       CON
UART control #data bits       CON
UART rxd to                   DEVBYT
UART status overrun error     STATUS
UART status framing error     STATUS
UART status parity error      STATUS
UART status tx data           
         register empty       STATUS
UART status rx data
        register full         STATUS
UART status transmit IRQ      STATUS
UART status receive IRQ       STATUS
UART status ring IRQ          STATUS
212 analog loopback           212JYT
212 carrier                   ACBYT
212 character length          212BYT
212 digital loopback          212BYT
212 enable                    SQUBYT
212 mode                      SQUBYT
212 remote digital loopback   212BYT
212 reset option              212BYT
--------------------------------------
               SWBYT
               $C080
               -16256
               READ
---------------------------------------_
BIT #       
7  DV FROM TOUCHTONE
     1 valid touch tome present
     0 no valid touch tone present
       (CLRDV high)
6  BSR 60 HZ INPUT
     continuous 1 no 60 Hz
     alternation 60Hz
5  CARRIER DETECT
     1 carvier present
     0 no carrier present
4  AUDIO DETECT*
     1 no audio present
     0 audio present
3  FIRMWARE SWITCH 4
     1 open (off)
     0 closed (on)
2  FIRMWARE SWITCH 3
     1 open (off)
     0 closed (on)
1  FIRMWARE SWITCH 2
     1 open (off)
     0 closed (on)
0  FIRMWARE SWITCH 1
     1 open (off)
     0 closed (on)
* Audio detect input changes with 
speach, dial tone, and busy signal. 
The input to the audio detector is the 
output of the receiver filter.
---------------------------------------
               TONBYT
               $C081
               -16255
               READ
---------------------------------------
7  NOT USED
6  NOT USED
5  NOT USED
4  IRQ29.12 HZ STATUS
3  TOUCH TONE BIT D8
2  TOUCH TONE BIT D4
1  TOUCH TONE BIT D2
0  TOUCH TONE BIT D1
--------------------------------------
               SQUBYT
               $C081
               -16255
               WRITE
--------------------------------------
7  212 ENABLE*
     1 212 disable
     0 212 enable
6  NOT USED
5  212 MODE
     1 212 originate
     0 212 answer
4-2 TAPE RECORDER MOTOR CONT.
     111 motor on
     000 motor off
1 SPEAKER SQUELCH
     1 not squelched
     0 squelched
0  MICROPHONE SQUELCH
     1 squelched
     0 not squelched
* 212 ENABLE is sut to 1 in 212 analog
loopgack test (see 212BYT)
NOTE: When changing ANS/ORIG dome, first
write word with bit 5 in desired state
and with bit 7 high; then wait 5-10 msec
and write word with same state for bit 
5 but with bit 7 low. Bit 7 must be 
left enabled (low) whenever operating
212.
--------------------------------------
               SHBYT
               $C082
               -16254
               WRITE
--------------------------------------
7  NOT USED
6  NOT USED
5  NOT USED
4  NOT USED
3  NOT USED
2  NOT USED
1 SWITH HOOK
     1 off hook (holding line)
     0 on hook (not holding line)
0  CLEAR VD (reset touch tone)
     1 clear DV to 0
     0 DV set
--------------------------------------
               BSRBYT
               $C083
               -16253
               WRITE
--------------------------------------
7  NOT USED
6  NOT USED
5  NOT USED
4  NOT USED
3  NOT USED
2  IRQ 29.12 HZ ENABLE
     1 IRQ disabled/rest*
     0 IRQ enabled
1  BSR 120 KHZ OUTPUT
     1 disabled
     0 enabled
0  NOT USED
* To clear IRQ< Bit 2 nust be disabled,
then enabled immediately.
--------------------------------------
               RECBYT
               $C089
               -16247
               WRITE
--------------------------------------
7  NOT USED
6  CARRIER DETECT TIMING*
     1 normal carrier
     0 fast carrier
5-0 MODE CONTROL BITS
     mode                       value
  103 ANS                        $64
  103 ANS (mark carrier detect)  $60
  103 ORIG                       $65
  103 ORIG(mark carrier detect)  $61
  202                            $5C
  202(mark carrier detect)       $58
  DEAF(TDD)                      $2D
  ANS V.21                       $66
  ANS V.21(mark carrier detect)  $62
  ORIG V.21                      $67
  ORIG V.21(mark carrier detect) $63
  900 Hz detect                  $6F
  dial tone & busy signal*       $7E
* This mode does not detect dial tone
or busy but simply puts the receiver
filter in the frequency range of dial
ton, busy signals and ringing. The 
audio detect bit (SWBYT bit 4) should
be looked at to determine what is dial
tone, busy, or speech.
---------------------------------------
               CON
               $C08A
               -16246
               WRITE
--------------------------------------
7  NOT USED
6  PARITY ENABLE
     1 enabled
     0 disabled
5-4 PARITY*
     Z1
 mark
     10 odd
     01 space
     00 even
3-2 NUMBER OF STOP BITS
     11-
     10  2
     01  1.5
     00  1
1-0 NUMBER OF DATA BITS
     11 8
     10 6
     01 7
     00 5
*  The parity bit is additional to the 
number of data bits.
--------------------------------------
               SPDBYT
               $C08B
               -16245
               WRITE
--------------------------------------
7-4 TRANSMIT BAUD RATE*
3-0 RECEIVE BAUD RATE*
  baud         bit          value
  rate         time
  1200          .831ms        $0
   600          1.66ms        $1
   300          3.33ms        $2
   150          6.65ms        $3
   110          9.15ms        $5
    75          13.3ms        $6
    50          20.0ms        $7
    45.5        22.0ms        $4
* Transmit and receive baud rates are
independent.
--------------------------------------
               COM
               $C08C
               -16244
               WRITE
--------------------------------------
7  NOT USED
6  NOT USED
5  NOT USED
4  NOT USED
3-2 TRANSMITTER
     11 xmit off
     10 xmit on, enable IRQ
     01 xmit on, disable IRQ
     00 xmit bread (space)
1-0 RECEIVER
     11 --
     10 receiver on, enable IRQ
     01 reveiver on, disable IRQ
     00 receiver off
--------------------------------------
               ACBYT
               $C08D
               -16243
               READ
--------------------------------------
7  NOT USED
6  NOT USED
5  NOT USED
4  NOT USED
3  CLEAR TO SEND
     printer handshake (busy)
     Follows input
2  212 CARRIER DETECT
     1 carrier present
     0 no carrier present
1  NOT USED
0  RING DETECT*
     1 ring present
     0 ring not present
* If IRQ enabled on ring, IRQ occurs on 
leading edge of ring (when RING goes
high)
--------------------------------------
               XMTBYT
               $C08D               
               -16243
               WRITE
--------------------------------------
7  NOT USED
6  NOT USED
5 NOT USED
4 IRQ RING ENABLE*
     1 disabled/reset
     0 enabled
3-0 TRANSMITTER MODE
   function                  value
   103 ANS                    $0
   103 ORIG                   $1
   CCITT ANS                  $2
   CCITT ORIG                 $3
   DEAF (TDD)                 $4
   202 SOFT CAR           $5
   202 U.S. OR CCITT V.23     $6
   REV CHAN ING (VIEWDATA)        $7
   disabled                  >$7
* To clear IRQ, write 1 then 0
--------------------------------------
               STATUS
               $C08F
               -16241
               READ
--------------------------------------
7  OVMRRUN ERROR
     1 error
     0 ok
6  FRAMING ERROR
     1 error
     0 ok
5  PARITY ERROR
     1 error
     0 ok
4  TX DATA REG EMPTY
     1 empty
     0 full
3  RX DATA REF FULL
     1 full
     0 empty
2  TRANSMIT IRQ
     1 transmit IRQ
     0 no transmit IRQ
1  RECEIVE IRQ
     1 receive IRQ
     0 no receive IRQ
0  RING IRQ
     1 no IRQ
     0 IRQ
--------------------------------------
               DEVBYT
               $C08F
               -16241
               WRITE
--------------------------------------
7  NOT USED
6  NOT USED
5  NOT USED
4  NOT USED
3-2 FROM UART TXD TO
     11 --
     10 add-on 212
     01 printer port
     00 main modem
1-0 UART RDX TO
     11 --
     10 add-on 212
     01 printer prot
     00 main modem
* Register must be written to when 
entering 212 mode
--------------------------------------
               212BYT
               $C080
               -16256
               WRITE
--------------------------------------
7  NOT USED
6  NOT USED
5  ANALOG LOOPBACK
     1 analog loopback
     0 normal
4  DIGITAL LOOPBACK
     1 digital loopback
     0 normal
3  REMOTE DIGITAL LOOPBACK
     1 remote digital loopback
     0 normal
2-1 212 CHARACTER LENGTH*
     10 10 bits
     01  9 bits
0  RESET
     1 normal
     0 reset option
* Length includes one start and one
stop bit.
NOTE: 1) Write with bits as desired and
bit 0 low
      2) Delay at least 500ms
      3) Write with bit 0 high, all
other bits unchanged
---------------------------------------
         CALL THE PITSTOP 10 MEG
           AE/CAT-FUR LINE
            
