437 lines
11 KiB
Plaintext
437 lines
11 KiB
Plaintext
**************************************
|
|
* *
|
|
* 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
|
|
|