nick@aimed.UUCP (Nick Pemberton) (12/08/90)
Well, after much waiting, dialing, etc, I finally have a copy of
WRITEFAX.MAN, which is a guide to programming the ZOOM MX 2400S modem,
amongst others. I have had a number of requests for this file, so I
thought I'd post it (its not that large anyway....)
------------snip----------snip--------snip---------
SendFax Application Software Interface Specification Rev 2
Contents
1.0 Introduction
2.0 Physical interface
3.0 Command set
4.0 Data format
5.0 Example sessions
.pa
.he SendFax Application Software Interface Specification
1.0 Introduction
This document defines the specifications for the application
software interface to a PC Fax/Modem board incorporating Sierra's
SC11046, 2400 bps modem with Send only Fax at 4800 bps (SendFax)
chip.
The device is intended to be used in internal cards for the IBM
PC or compatible computers or for use in standalone modems
interfacing to any computer using a standard RS232 port.
Functions and commands are defined to allow an extension to Fax
receive mode in the future.
The Fax/Modem board is designed such that it appears to the PC as
a serial port. The address of the board is user selectable to be
one of four ports, COM1, COM2, COM3 or COM4. The DCE hardware
makes and terminates calls, manages the communications session
and transmits image data in accordance with the procedures
defined in the CCITT recommendation T.30. The image data is in
modified Huffman compressed format as described in the CCITT
recommendation T.4.
The application software running in the DTE will provide the
functions of user interface, conversion of user data files in
various formats to fax format per CCITT T.4 specification and
transfer of data to the DCE for modulation according to the
protocol defined in this document.
.pa
2.0 Physical Interface
2.1 Internal PC version
The hardware appears to the PC as a serial port at an address
that is user selectable to be one of four ports. Table 1 lists
the addresses and interrupt levels for various port selections.
To the application software, the hardware appears as an
8250/16450 type UART. The application software writes or reads
data to and from registers in the UART. Table 2 shows the
various registers and their addresses. DTR and OUT2 bits in MCR
must be set before communicating with the hardware. The software
sends commands and data to the hardware by writing to the
transmitter holding register (THR) in the UART. Data can be
written to THR when THRE and/or TSRE bits in LSR are set. It
receives responses or data from the hardware by reading the
receive buffer register (RBR). Software should first check the
LSR to see if DR bit is set indicating data is available in RBR.
Interrupts can also be used to inform the software that
transmitter is empty or data is available in the receiver. Refer
to the 8250/16450 data sheet or the IBM technical reference
manual for more information on programming, reading and writing
to the UART.
2.2 RS232 Standalone version
The UART in the SC11011 controller can be configured by changing
one bit (Bit3) in the code to present its serial port to the
outside world. To enable the DTR control function, the AT&D2
command must be issued befoer entering the fax mode.
The standard 2400 bps modem command set is extended for the Fax
application using a format of AT#F... These commands were developed
in accordance with the original set proposed in the TIA T30 committee
in spring of 1989. Sierra is continuing to work with the T29.2 committee
to define teh ultimate standard command set for fax and data modems.
In the idle state the hardware is in the normal 2400 bps modem
mode. The UART is programmed at speeds from 300 to 2400 bps to
communicate with the hardware. In the fax mode, the DTE is set to 19.2Kbps.
Four states are defined to allow a clear understanding of the
hardware control process:
1. Modem command mode: AT commands accepted
2400 bps max
modem data mode entered online
2. Modem data mode: +++ escapes to modem command mode
2400 bps max
3. Fax command mode: entered from modem command mode
with #F1
19.2 kbps only
4. Fax data mode: commands and data at 19.2kbps only
return to fax command by:
sending command #F
end of call/ call disconnect
dropping DTR
After power-up the hardware is in the normal 2400 bps modem
command mode.
A special command puts the hardware in the Fax mode. Once in
the Fax mode, the UART must be programmed for 19,200 bps data
rate, 8 bits and no parity. This is because the image data must
be sent to the hardware at a rate that is faster than line
transmission rate. For 4800 bps synchronous transmission line
rate, the UART rate must be at least 9600 bps. To allow for the
future accomodation of 9600 bps line transmission rate, the UART
speed in Fax mode is fixed at 19,200 bps. The UART speed is
programmed by setting the DLAB bit in the modem control register
(MCR) and by writing appropriate values to the divisor latches
DLL and DLM. Table 3 provides the DLL, DLM speed selection
values. Flow control (XON/XOFF or RTS/CTS) is required to
synchronize the flow of information between the DTE and the DCE
during image data transmission and HDLC frame reception. In the
data transmission mode, software must not send data when CTS bit
is off or when <XOFF> is received. Data can be sent after
receiving <XON> or when CTS bit is set.
.pa
Table 1. COM port addresses
COM1 3F8 - 3FF IRQ4
COM2 2F8 - 2FF IRQ3
COM3 3E8 - 3EF IRQ4
COM4 2E8 - 2EF IRQ3
Table 2.1 UART registers
I/O decode (Hex)
COM1 COM2 COM3 COM4 R/W DLAB Register
----------------------------------------------------------------
3F8 2F8 3E8 2E8 W 0 THR
3F8 2F8 3E8 2E8 R 0 RBR
3F8 2F8 3E8 2E8 R/W 1 DLL
3F9 2F9 3E9 2E9 R/W 1 DLM
3F9 2F9 3E9 2E9 R/W 0 IER
3FA 2FA 3EA 2EA R 0 IIR
3FB 2FB 3EB 2EB R/W 0 LCR
3FC 2FC 3EC 2EC R/W 0 MCR
3FD 2FD 3ED 2ED R/W 0 LSR
3FE 2FE 3EE 2EE R/W 0 MSR
Table 2.2 Register bit defintions
Register 7 6 5 4 3 2 1 0
---------------------------------------------------------------
THR -------- TRANSMIT DATA (DLAB = 0) ---------
RBR -------- RECEIVE DATA (DLAB = 0) ---------
DLL ---- DIVISOR LATCH LS BYTE (DLAB = 1) -----
DLM ---- DIVISOR LATCH MS BYTE (DLAB = 1) -----
IER 0 0 0 0 MSI LSI THRE DA
IIR 0 0 0 0 0 ID1 ID0 IP/
LCR DLAB SB SP EPS PEN STB WLS1 WLS0
MCR 0 0 0 LOOP OUT2 OUT1 RTS DTR
LSR 0 TSRE THRE BI FE PE OR DR
MSR RLSD RI DSR CTS DRLS TERI DDSR DCTS
---------------------------------------------------------------
Table 3. Speed selection table
SPEED (BPS) DLM (HEX) DLL (HEX)
----------------------------------------
300 01 80
1200 00 60
2400 00 30
4800 00 18
9600 00 0C
19200 00 06
----------------------------------------
3.0 Command Set
Extensions to the Hayes AT command set for Fax mode operation are
defined in this section.
General
1) All extended commands start with the # prefix. This represents
a major change from previous versions which utilized the +
prefix. The change was made to provide upward compatibility with
future TIA command sets which are expected to use the + symbol.
For the immediate future, the firmware will accept either prefix.
2) All extended commands have only one alpha character followed
by a numeric value in the range of decimal 0 to 255. Value 0 may
be omitted.
3) Fax mode assumes XON/XOFF or CTS flow control in data mode.
&D2 command must be issued for DTR controlled abort.
4) Once the hardware enters the Fax mode, it will remain in Fax
mode ( and accept commands at 19.2 kbps ) until one of following
occurs :
a) software issues a #F request to return to command mode
b) a call disconnect frame is received
c) application software issues an abort by dropping DTR
COMMANDS
#Bn Speed control
#B/B0 Reserved
#B1 Reserved
#B2 Reserved for V.23
#B3 Reserved for V.23
#B4 Fax transmission speed of 2400 bps
#B5 Fax transmission speed of 4800 bps
#B6 Fax transmission speed of 7200 bps
#B7 Fax transmission speed of 9600 bps
This command is used to specify the initial speed at which the
hardware will attempt to connect to the remote Fax machine. For
the SC11046 based hardware this will normally be 4800 bps, so B5
command will be used. However, the user at his option can
specify a lower initial speed of 2400 bps by issuing B4. If the
higher initial speed is specified, the hardware will attempt to
establish connection at the higher speed and will fallback to the
lower speed if unsuccessful.
En Received frame display format selection
E/E0 Disable display of received HDLC frames
E1 Display frame in binary format
E2 Display frame in 2 digit ASCII Hex format
Fn Mode control
F/F0 Return to normal modem mode (300 to 2400 bps data rate)
F1 Enter Fax mode (19,200 bps data rate)
Kn DTE flow control
K/K0 Disable flow control
K3 Enable CTS flow control
K4 Enable XON/XOFF flow control
Mn Speaker Control
M0 Speaker Always Off
M1 Speaker Off after Connect Message
M2 Speaker Always On
M3 Speaker Off during Dial
Pn Number of pages to be transmitted (n = 1 to 255)
Rn Resolution control
R/R0 Send document with normal resolution
R1 Send document with fine resolution
Tn Test modes
T/T0 End test mode
T1 Enter test mode 1. This mode is used to dial a remote
Fax machine and automatically send a message stored
in EPROM.
.pa
FAX result codes
During the Fax session the hardware will report the status of the
call with result codes. An action by the software may or may not
be necessary depending on the response.
All the normal Hayes result codes will also be reported.
Verbose Digit Usage
CED a Ansertone detected
CFR g Remote machine confirmation to receive
CONNECT 2400/FAX w Connection speed 2400 bps
CONNECT 4800/FAX x Connection speed 4800 bps
CONNECT 7200/FAX y Connection speed 7200 bps
CONNECT 9600/FAX z Connection speed 9600 bps
CRC ERROR e Error in received frame
CRP c Repeat request
CSI - Remote machine Identification
DCN d Disconnect
DIS b Remote machine capabilities frame
FTT f Failure to train
INVALID FRAME i Received frame is invalid
MCF m Message received OK
RTN h Message not received OK
RTP j Retrain positive
.pa
4.0 Data format
The Transmit Subscriber Identification data encoded in the T.30
negotiation will be taken from the nvram location Z3.
Image data will be in compressed format with one dimensional
coding rules in accordance with the CCITT specification T.4.
Data will be coded assuming the receiving Fax machine is capable
of a scan time of 0 milliseconds per line. Each line of data
must terminate with a minimum of 3 bytes of zeroes before the
EOL sequence. The zeroes must be byte aligned. The software
will detect the zero bytes at the end of each line and fill
in the required number of zeroes based on the speed of
connection and the minimum scan time per line specified by the
receiving Fax machine. Data must be coded with MSB the first
bit to be transmitted from DTE to modem.The modem sends the
data LSB first to the phone line.. Transmission of data
will be synchronized using flow control (XON/XOFF or CTS). After
sending the last byte of page data, software will wait for a
response from the hardware before issuing a command or sending
data for the next page.
5.0 Example sessions
In the following example sessions, the response is enclosed
within <> brackets. The defaults are B3 (4800 bps), P1 (single
page), R0 (normal resolution) and T0 (no test mode).
Each command line terminates with a CRLF, a response begins and
terminates with a CRLF.
i) Send 1 page of document with normal resolution
Command Response
ATX4&D2#B3#P1#R0#T0#F1 <OK> ; Enter Fax mode
<XOFF> CTS -> 0
ATDT4082639337 <OK> ; Dial a Fax machine
; any AT response valid
<CED>
; Answertone detected
<CSI = 408 263 1234>
; Called machine
; identification
<DIS>
; Capabilities
; frame received
<CFR>
; OK to send page data
<CONNECT 4800/FAX>
; Connection speed
<XON> CTS -> 1
; Page 1 data is sent
; using flow control
---DATA--SENT---
<XOFF> CTS -> 0
---DATA STOPPED---
<XON> CTS -> 1
---DATA--SENT---
; No more data for page 1
; tx underflow
<XOFF> CTS -> 0
<MCF>
; Page 1 transmission OK
<NO CARRIER>
; Call terminated, return to
; command mode
no new commands
until here
ii) Send 2 pages of document with normal resolution
Command Response
ATX4&D2#B3#P2#R0#T0#F1 ; Enter Fax mode
<XOFF> CTS -> 0
<OK>
ATDT4082639337 <OK> ; Dial a Fax machine
; any AT response valid
<CED>
; Answertone detected
<INVALID FRAME>
; Received frame invalid
<CSI = 408 263 1234>
; Called machine
; identification
<DIS>
; Capabilities
; frame received
<CFR>
; OK to send page data
<CONNECT 4800/FAX>
; Connection speed
<XON> CTS -> 1
; Page 1 data is sent
; using flow control
---DATA--SENT---
<XOFF> CTS -> 0
---DATA STOPPED---
<XON> CTS -> 1
---DATA--SENT---
; No more data for page 1
; tx underrun
<XOFF> CTS -> 0
<MCF>
; Page 1 transmission OK
<XON> CTS -> 1
; Page 2 Data is sent
; using flow control
---DATA--SENT---
<XOFF> CTS -> 0
---DATA STOPPED---
<XON> CTS -> 1
---DATA--SENT---
; No more data for page 2
; tx underrun
<XOFF> CTS -> 0
<MCF>
; Page 2 transmission OK
<NO CARRIER>
; Call terminated, return to
; command mode
no new commands
until here
--
Nick Pemberton uucp: !{lsuc, uunet!mnetor}!aimed!nick
AIM, Inc bus: (416) 429-1085
Toronto, Ontario, Canada Home: (416) 690-0647