home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
- RS - An RS-232 Port Status Utility
-
- Author: Fred E. Davis
-
-
-
- What RS does.
-
-
- RS is an uncomplicated utility that prints a full
-
- status report of a selected RS-232 'COM' port. It provides
-
- information about the communications protocol, handshake,
-
- line, error and interrupt status.
-
-
-
- How to call RS.
-
- RS is called by entering 'RS' followed by either no
-
- argument or a '1' or '2' then <enter>. The argument
-
- specifies which COM port you wish to view; '1' will select
-
- COM1 and '2' will select COM2. When no argument is given or
-
- an illegal value is used, the result will be the same as
-
- entering '1'. If the specified COM port is not present (or
-
- not responding), RS will notify you with a 'not installed!'
-
- message. The command syntax is:
-
- [d:][pathspec]RS [1 | 2]<enter>
-
-
-
- What it all means.
-
- The report is divided into five sections: A. Protocol,
-
- B. Handshake Status, C. Line Status, D. Error Status and E.
-
- Interrupt Status.
-
- A. Protocol
-
-
-
-
- Fred E. Davis 26 June 1986
-
-
-
-
-
-
-
-
- An RS-232 Port Status Utility 2
-
-
- Protocol lists six items: Data Bits, Stop Bits,
-
- Parity, Rate, Stick and Break. The first four items are
-
- those values set by the DOS 'mode COMx:' command.
-
-
-
- 1. Data Bits refers to the number of binary bits used
-
- to send data. The choices are 5, 6, 7 and 8. Five and
-
- six are rarely used. Most text can be communicated with
-
- 7 bits. An exception is a Wordstar formatted text file
-
- that uses the eighth bit. Most binary files and
-
- programs are transmitted with 8 data bits.
-
-
-
- 2. Stop Bits are used to identify the end of
-
- transmission of one character. The possibilities are 1,
-
- 1.5 and 2 stop bits. Most protocols request one stop
-
- bit; some older (and slower) protocols required 1.5 or
-
- 2 stop bits.
-
-
-
- 3. Parity is used in an error detection function to
-
- identify a character distorted during transmission. The
-
- choices are none, even and odd. All of these are likely
-
- to be encountered. None is most often used with eight
-
- data bits; odd and even with seven data bits.
-
- Practically any combination is possible and you should
-
- refer to the specific protocol requested by an
-
- application to determine which is right.
-
-
-
-
-
- Fred E. Davis 26 June 1986
-
-
-
-
-
-
-
-
- An RS-232 Port Status Utility 3
-
-
- 4. Rate refers to the timing of the bits being
-
- transmitted. The choices are many, though the more
-
- common ones are 1200, 2400, 4800 and 9600 baud, or bits
-
- per second. If the rate isn't right you'll soon find
-
- out! You'll receive either nothing or garbage.
-
-
-
- 5. Stick refers to making the parity bit (if used) to
-
- "stick" at logical 1 or 0. If 'stick' is 'normal',
-
- the parity bit function will follow the message in item
-
- 3. If 'stick' is 'set' and 'parity' is 'even', the
-
- parity bit will be forced to a logical zero. If 'stick'
-
- is 'set' and 'parity' is 'odd', the parity bit will be
-
- forced to logical one.
-
-
-
- 6. Break forces the transmitted data output to stay on.
-
- It is used mostly in computer terminal communications
-
- to grab the attention of a computer. If set, any data
-
- to be transmitted is ignored.
-
-
-
- B. Handshake Status
-
- There are six handshake lines: DTR, RTS, CTS, DSR, CD
-
- and RI. These handshake lines are often used to control the
-
- transfer of information between the communicating systems,
-
- but not always. They are more frequently used between
-
- computers and modems, especially CD and RI. The directions
-
- 'In' and 'Out' used here are relative to the COM port. Some
-
-
-
- Fred E. Davis 26 June 1986
-
-
-
-
-
-
-
-
- An RS-232 Port Status Utility 4
-
-
- communications rely on software handshake protocols such as
-
- XON/XOFF, ETX/ACK and XMODEM (which goes beyond
-
- handshaking). If hardware handshaking is used, DTR and/or
-
- RTS must be high to enable the external device to receive.
-
- Likewise CTS and DSR should be high to enable the COM port
-
- to transmit.
-
-
-
- 1. DTR Out is often used in hardware handshake
-
- protocols to indicate Data Terminal Ready. Data
-
- Terminal is an old term referring in this case to the
-
- computer (PC).
-
-
-
- 2. RTS Out notifies the external device that the COM
-
- port is Ready To Send.
-
-
-
- 3. CTS In is the Clear To Send line. It is used often
-
- in hardware handshake protocols with the DTR line.
-
-
-
- 4. DSR In refers to Data Set Ready. It is often used to
-
- inform a Data Terminal (or computer) that a Data Set
-
- (such as a modem) is ready to communicate.
-
-
-
- 5. CD In is the Carrier Detect input from a modem. It
-
- is asserted when a communications link is established
-
- with another modem.
-
-
-
-
-
- Fred E. Davis 26 June 1986
-
-
-
-
-
-
-
-
- An RS-232 Port Status Utility 5
-
-
- 6. RI In refers to Ring Indicate from a modem. It is
-
- used primarily for auto-answer operations so the
-
- computer can accept incoming telephone calls (even on a
-
- specific number of rings by counting RI transitions).
-
-
-
- C. Line Status
-
- The four Line Status bits, Receive Buffer, Transmit
-
- Buffer, Break Status and Loop Back, refer to the state of
-
- internal registers and a test function.
-
-
-
- 1. Receive Buffer is the register that holds incoming
-
- data. When holding data that hasn't been read, a 'full'
-
- message will be displayed, otherwise it will be
-
- 'empty'.
-
-
-
- 2. Transmit Buffer holds data to be sent. When not
-
- currently holding information waiting to be sent it
-
- will indicate 'empty'; if data is waiting to be sent it
-
- will show 'full'.
-
-
-
- 3. Break Status indicates the presence of a 'Break'
-
- signal from the sender. This often initiates some form
-
- of interrupt to normal communications. (See A.6.)
-
-
-
- 4. Loop Back is a special state for internal testing
-
- and verification of hardware and register function.
-
-
-
- Fred E. Davis 26 June 1986
-
-
-
-
-
-
-
-
- An RS-232 Port Status Utility 6
-
-
- When 'set', the internal output registers are connected
-
- to the input registers (and vice versa) such that
-
- transmitted data is immediately received. It must
-
- indicate 'normal' if communications are to take place.
-
-
-
- D. Error Status
-
- The three error status lines, Overrun, Parity and
-
- Frame, are set by the COM ports receiver to indicate a
-
- communications problem.
-
-
-
- 1. Overrun 'set' means that another character has been
-
- received before the first one has been read by the PC.
-
- A possible cause for this is a baud rate too high.
-
-
-
- 2. Parity 'set' means that the last character
-
- transmission was corrupted somehow. It obviously is
-
- significant only when parity checking has been enabled
-
- (See A.3.). Possible causes can be noise in the
-
- communications lines or improper parity polarity (odd
-
- or even).
-
-
-
- 3. Frame errors occur when a character was received
-
- without a valid stop bit. Possible causes include
-
- improper communications protocol (See A.).
-
-
-
- E. Interrupt Status
-
-
-
- Fred E. Davis 26 June 1986
-
-
-
-
-
-
-
-
- An RS-232 Port Status Utility 7
-
-
- Several conditions in the COM port cause cause
-
- interrupts to the PCs Microprocessor to demand some service.
-
- The four conditions are: Received Data Ready (See C.1.),
-
- Transmit Buffer Empty (See C.2.), Line Status (See D.) and
-
- Modem Status (See B.).
-
-
-
- 1. Output refers to an interrupt control signal that
-
- can enable or disable all interrupt requests from the
-
- COM port. If interrupts are to be used, it must show
-
- 'enable'.
-
-
-
- 2. Data Ready, if enabled, causes an interrupt when the
-
- Received Data Buffer is full (See C.1.).
-
-
-
- 3. Xmit Empty, if enabled, causes an interrupt when the
-
- Transmit Data Buffer is empty and another character can
-
- be sent.
-
-
-
- 4. Line Status would cause an interrupt, when enabled,
-
- if C.1., C.2., C.3., D.1., D.2. or D.3. are asserted.
-
-
-
- 5. Modem Status, like Line Status, causes an interrupt
-
- if B.3., B.4., B.5. or B.6 are asserted.
-
-
-
-
-
- How RS works.
-
-
-
- Fred E. Davis 26 June 1986
-
-
-
-
-
-
-
-
- An RS-232 Port Status Utility 8
-
-
- RS is written in assembly language, which explains its
-
- small size. The speed limitation on its execution is imposed
-
- by the BIOS and DOS display routines. RS is not a memory
-
- resident program; it does not trap any interrupts; it uses
-
- only BIOS and DOS display interfaces; it does not alter the
-
- port configuration.
-
- After displaying the title message, RS checks the
-
- 'command tail' (any characters entered after the 'RS'
-
- command) to see if any arguments are being passed. If a '2'
-
- is present, RS will access COM2: starting at port 2F8h. If a
-
- '1', no argument or an illegal value is passed, RS will use
-
- COM1: starting at port 3F8h.
-
- RS then reads all of the port registers and buffers
-
- into temporary RAM buffers used by RS. The Line Control
-
- Register is read, altered, and restored. RS checks to see if
-
- a port really exists there by verifying the read/write
-
- operation. Once all the registers are read, RS then scans
-
- the values in the RAM buffers to generate the messages to
-
- the display. This minimizes interruption of port activity.
-
- In the case of the baud rate, RS first compares the rate
-
- divisor to a table of standard values. If the port's rate is
-
- not found, the actual baud rate is calculated and displayed.
-
- RS terminates with a type 4Ch function call to DOS Int
-
- 21h. If the program executed normally a value 00h is
-
- returned. If the COM port is not installed or functional, a
-
- value of 01h is returned.
-
-
-
- Fred E. Davis 26 June 1986
-
-
-
-
-