



















                                   M D L M

                              An IBM P.C. Based
                                Multi-Channel
                             RS-232 Asynchronous
                              Data Line Monitor





                                 Release 1.0

                              Revised 25-Sep-01










                         Dunfield Development Systems
                         ----------------------------
                            High quality tools for
                             Embedded Development
                                at low prices.

                           http://www.dunfield.com


                      Copyright 1989-2005 Dave Dunfield
                             All rights reserved



                       Multi-channel Data Line Monitor

                              TABLE OF CONTENTS


                                                                        Page

    1. INTRODUCTION                                                        1

       1.1 What is MDLM?                                                   1
       1.2 Hardware Required                                               1

    2. HARDWARE SETUP                                                      2

       2.1 IBM P.C. serial ports                                           2
       2.2 Serial Port Settings                                            3

    3. USING MDLM                                                          4

       3.1 Begin data capture                                              4
       3.2 Review captured data                                            5
       3.3 Clear capture buffer                                            6
       3.4 Signal monitor                                                  6
       3.5 Serial port parameters                                          6
       3.6 Disk transfer functions                                         7
       3.7 Post-Processor menu                                             7
       3.8 Edit comment                                                    7
       3.9 Exit to DOS                                                     7

    4. COMMAND LINE OPTIONS                                                8


    5. CONFIGURATION FILE                                                  8

       5.1 Video attributes                                                8
       5.2 Other directives                                               10

    6. DEBUGGING TIPS                                                     13

       6.1 Hardware Connections                                           13
       6.2 Speed and Data format                                          13
       6.3 Flow Control                                                   14

    7. FILE FORMAT                                                        16


    8. ASCII code chart                                                   17

   Multi-channel Data Line Monitor                                  Page: 1


   1. INTRODUCTION

      1.1 What is MDLM?

            MDLM is an easy to use DATA LINE MONITOR for  use  on  the  IBM
         P.C. which can simultaneously record data and signal changes on up
         to 24 serial lines.  As many as 32767 events can be  recorded  for
         later review.

            Recorded data may be saved to disk,  allowing a problem  to  be
         captured in the field,  and the results viewed at another time and
         place.  Since the data is stored as a standard DOS file, it may be
         transmitted over a modem and  viewed  (using  MDLM)  at  a  remote
         location.  This allows an engineer at the main office  to  provide
         better (and faster) support to a technician in the field, since he
         can also SEE the problem.

            It supports ASYNCHRONOUS operation at speeds up to  57600  BPS;
         5,6,7 and 8 data bits; Even, Odd, Mark, Space and No parity; and 1
         or 2 stop bits.  The DTE configuration may be set independently of
         the DCE configuration for split speed/format operation.

            MDLM's configuration is loaded from a disk file,  allowing  you
         to have several  "canned"  setups,  and to easily  switch  between
         them.

            In  addition  to  the  data   line   monitor   function,   MDLM
         incorporates a SIGNAL MONITOR (LIGHT BOX) for real time monitoring
         of the hardware signals.

      1.2 Hardware Required

            All that is required to use MDLM is an IBM P.C. (or compatible)
         with one or more serial ports.  You must have a  serial  port  for
         each channel that you wish to monitor.
   Multi-channel Data Line Monitor                                  Page: 2


   2. HARDWARE SETUP

         Before you use MDLM,  you must install enough serial ports in your
      computer for the number of channels that you wish to monitor.  The PC
      architecture supports only 4 standard serial ports, however there are
      a add-on cards available which provide additional serial ports beyond
      this number.

      2.1 IBM P.C. serial ports

            The serial ports of the IBM P.C.  are RS-232 DTE configuration,
         and will be in either a 25 or 9 pin configuration.  The ports have
         the following pinout:

           Signal name                Origin   25-Pin(PC)  9-Pin(AT)
           ---------------------------------------------------------
           Transmit Data       (TXD)   DTE         2           3
           Receive Data        (RXD)   DCE         3           2
           Request To Send     (RTS)   DTE         4           7
           Clear To Send       (CTS)   DCE         5           8
           Data Set Ready      (DSR)   DCE         6           6
           Signal Ground       (GND)   ---         7           5
           Data Carrier Detect (DCD)   DCE         8           1
           Data Terminal Ready (DTR)   DTE        20           4
           Ring Indicator      (RI )   DCE        22           9

            Note that since the PC serial port is  a  DTE,  it  drives  the
         signals with DTE origin, and monitors the signals with DCE origin.
         Therefore,  all connections to the line being monitored will be to
         the DCE signals of the COMM port.
   Multi-channel Data Line Monitor                                  Page: 3


      2.2 Serial Port Settings

            MDLM communicates directly with the serial port hardware, which
         must be a standard 8250 (or compatible) UART device.

            The four standard PC serial ports addresses are:

                           03F8 = COM1, Interrupt=4
                           02F8 = COM2, Interrupt=3
                           03E8 = COM3, Interrupt=4
                           02E8 = COM4, Interrupt=3

            Note that COM1 and COM3 share an interrupt,  and that COM2  and
         COM4 also share an interrupt.  The way the  PC  shares  interrupts
         allows only one of the COM ports sharing an interrupt to use it at
         any one time,  which is quite restrictive.  MDLM works around this
         problem by not using interrupts on any of the COM  ports,  and  in
         fact turns all COM port interrupts OFF.

            For compatibility with standard software,  the first  4  serial
         ports installed in your PC should be configured for the  addresses
         and interrupts listed above.  MDLM  can  be  configured  with  any
         serial  port  address,  allowing  additional  serial  port  to  be
         installed at any available location  (Remember  that  each  serial
         port occupies 8 locations in the  I/O  map  ...ie:  COM1  at  03F8
         actually uses addresses from 03F8 to 03FF).
   Multi-channel Data Line Monitor                                  Page: 4


   3. USING MDLM

         To set up MDLM,  connect all of the devices to be monitored to the
      "DCE" inputs of the corresponding PC serial ports.  NOTE: MDLM cannot
      prevent the PC from driving the DTE outputs of the  ports,  so  these
      should NOT be connected.  You will probably have to make  up  special
      "one way" cables for this.

         Execute MDLM from the DOS command line,  and you will  be  greeted
      with The following menu:

                   +-------------------------+
                   | Begin data capture      |
                   | Review captured data    |
                   | Clear capture buffer    |
                   | Signal monitor          |
                   | Serial port parameters  |
                   | Disk transfer functions |
                   | Post Processor menu     |
                   | Edit comment            |
                   | Exit to DOS             |
                   +-------------------------+

         Each of the above menu items is described below:

      3.1 Begin data capture

            This option causes MDLM to begin monitoring the data lines. Any
         data or signal transitions detected  are  displayed  in  a  "multi
         line"  screen format  (in real time),  as well as recorded in  the
         circular capture buffer.

            The data stream appears in sets of lines on  the  screen,  with
         each entry shown in chronological order,  positioned in  the  line
         corresponding to the channel where the event occurred. The Channel
         1 line is shown in a different color,  which makes it easy to  see
         the logical groups of data lines on the screen.

            Signal transitions and line errors occurring on a  channel  are
         displayed using a different color indicator,  as specified in  the
         MDLM  configuration  file.  The  actual  signal/error  status   is
         recorded and can be viewed later in  the  "Review  captured  data"
         function.

            A vertical  "cursor"  through all channel lines  indicates  the
         next location on the screen where an event will be recorded.

            The F1 key can be used to  cycle  between  the  loaded  display
         fonts.  This is normally used to view data in HEX,  or as  Control
         characters.

            Press ESCAPE at any time to exit this function,  and return  to
         the main menu.
   Multi-channel Data Line Monitor                                  Page: 5


      3.2 Review captured data

            In this function,  the same  "multi line"  screen as  above  is
         displayed,  however it shows data  previously  captured.  You  may
         press F1 to toggle between the display fonts.

            The ARROW keys may be  used  to  move  the  cursor  around  the
         display.  The PGUP and PGDN keys may be used to advance and backup
         by entire screens.  The HOME key returns you to the  beginning  of
         the buffer,  the END key positions you on the last  entry  in  the
         buffer.

            When the cursor is positioned under an entry,  details of  that
         entry will be displayed in the title bar at the top of the screen:

               REVIEW: ... fn  ne:sp  cp:cn  hx  si  ti

               ...     = Key prompts
               fn      = Font name (if one selected)
               ne      = Total number of entries captured
               sp      = Position of first entry shown on screen
               cp      = Position of entry under cursor
               cn      = Channel number of entry under cursor
               hx      = Hex value of data character (-- if none)
               si      = Signal indicators (BFPODCRSC - *1)
               ti      = Time index *2

      *1  The  signal  indicators  are  programmable   through   the   MDLM
         configuration file,  but always have this meaning  (in this  order
         from left to right), shown with the default indicator characters:

               F   - Framing error
               P   - Parity error
               O   - Overrun error
               D   - Data is present
               c   - Carrier detect
               r   - Ring indicator
               S   = data Set ready
               C   = Clear to send


      *2 This marks the time  (in seconds)  at which  this  entry  occurred
         relative to the first entry in the buffer.  Note that although the
         display shows 1/100th seconds,  the actual resolution of the timer
         is approx 55ms.  Also,  the timestamp wraps  to  zero  after  3640
         seconds (slightly over one hour).

            Press ESCAPE at any time to exit this function,  and return  to
         the main menu.
   Multi-channel Data Line Monitor                                  Page: 6


      3.3 Clear capture buffer

            This function  removes  any  data  which  has  been  previously
         recorded from the  "capture"  buffer.  It is useful to remove  old
         data before starting a new monitoring session,  otherwise any  new
         data will be appended to the old data already in the buffer.

            When you execute this function,  MDLM displays  the  number  of
         entries currently residing in the capture buffer.  Press ENTER  to
         clear the buffer, or ESCAPE to exit and leave it unchanged.

      3.4 Signal monitor

            This function provides a  "light-box",  which shows all of  the
         hardware signals and indicators being monitored.  Each signal  has
         an indicator which will be 'Y' if the signal is asserted,  and 'n'
         if the signal is not asserted.

            Changes  occurring  in  the  signal   states   are   shown   in
         "real-time",  so that the display always reflects the actual state
         of the line signals.

            Press ESCAPE at any time to exit this function,  and return  to
         the main menu.

      3.5 Serial port parameters

            This function allows you to set the speed and  data  format  of
         the serial ports.  In order for MDLM to correctly monitor the data
         lines,  these parameters must be set up the same  as  the  devices
         being monitored.

            The following functions are provided:

           Up/Down     = Select port to change
           Left/Right  = Fine adjust of port baudrate
           PgUp/PgDn   = Course adjust of port baudrate
           D           = Cycle data bits: 5-6-7-8
           P           = Cycle parity: ODD-EVEN-MARK-SPACE-NONE
           S           = Cycle stop bits: 1-2
           N           = Edit port/signal names
           ESC         = Exit back to main menu
   Multi-channel Data Line Monitor                                  Page: 7


      3.6 Disk transfer functions

            This function provides you with a sub-menu, which allows you to
         load/save configuration or captured data to/from disk files:

                   +--------------------+
                   | Load Configuration |
                   | Load Data Image    |
                   | Save Data Image    |
                   +--------------------+

            Once you select a transfer operation,  you will be prompted for
         a file name. The following special keys may be used:

           Left arrow      - Move to left
           Right arrow     - Move to right
           Home            - Move to beginning of name
           End             - Move to end of name
           PgUp            - Clear entire field
           PgDn            - Clear from cursor to end of field
           ESC             - Cancel and return to higher menu
           ENTER           - Accept filename & perform operation

      3.7 Post-Processor menu

            Brings up a menu of installed post-processors.  Post-processors
         are  external  program  which  are  used  to  provide   additional
         processing and/or specialized views of the captured data.

            Use  the  arrow  keys  to  position   the   cursor   over   the
         post-processor you wish to activate and press ENTER.

      3.8 Edit comment

            Allows you to edit the comment,  which is  saved  in  the  data
         capture files.  This  provides  a  convienent  way  to  provide  a
         permanent description of the captured data.

      3.9 Exit to DOS

            This function terminates MDLM,  and returns to the DOS  command
         prompt.
   Multi-channel Data Line Monitor                                  Page: 8


   4. COMMAND LINE OPTIONS

         MDLM accepts the following options on the command line when it  is
      started:

           /C      - Begin immediate capture. Causes MDLM to enter the Data
                     capture function immediately upon starting.
           C=file  - Specify configuration file to load (default: MDLM.CFG)
           D=file  - Specify data capture  file to load (default: none)

   5. CONFIGURATION FILE

         MDLM loads it's initial configuration  from  a  text  file  called
      MDLM.CFG.  You may also load a configuration file  of  your  choosing
      from the "Disk transfer menu".

         The format of the MDLM configuration file is as follows:

         Blank lines, as well as any line beginning with ';' (comments) are
      ignored.

         The following statements may occur in the MDLM configuration file:

      5.1 Video attributes

            The following statements set video attributes (colors)  for the
         various screen components of MDLM.  <colors>  is  a  2  digit  hex
         value,  which specifies forground/background colors.  To  see  the
         available  colors  and  corresponding  hex  values,   please   run
         VIDEO.COM included with this package.

            Some commands also specify a character value in hex. To see the
         available characters and  corresponding  hex  values,  please  run
         CSET.COM included in this package.

            MDLM supports the use of dual character set VGA fonts to  allow
         the captured data to be shown in a different  character  set  than
         the MDLM title and prompts...  If this feature is  activated  (See
         FONT directive), you must observe the rule that Bit3 is set in the
         DATA colors,  and ONLY the data colors..  The TITLE,  MAIN,  MENU,
         BACKGROUND, ENDATA and CURSOR/BACKGROUND colors must all have Bit3
         clear.

         5.1.1 TITLE <colors>

               Sets the colors for the TITLE bar,  which occurs at the  top
            of most MDLM screens.

         5.1.2 MAIN <colors>

               Sets the colors for the main window/text display screens.

         5.1.3 MENU <colors>

               Sets the colors for pop-up menus.
   Multi-channel Data Line Monitor                                  Page: 9


         5.1.4 BACKGROUND <first_colors> <other_colors> <signal_character>

               Sets the colors  for  the  background  (non-data)  items  in
            CAPTURE/REVIEW modes.  The first value is the  colors  for  the
            first channel  (Channel 1),  the second value is the colors for
            the other channels  (2-24),  and the third value is  the  ASCII
            character value to be  shown  in  a  channel  position  when  a
            non-data event (signal transition) occurs.

         5.1.5 DATA <first_colors> <other_colors>

               Sets the colors for the data  receiption  events  which  are
            shown in CAPTURE/REVIEW modes.  The first value is  the  colors
            for the first channel  (Channel 1),  the second  value  is  the
            colors for the other channels (2-24).

         5.1.6 ENDATA <first_colors> <other_colors> <end_character>

               Sets  the  colors   for   the   end-of-data   indicator   in
            CAPTURE/REVIEW modes. This is the vertical bar shown across all
            channels which marks the next  location  on  the  screen  where
            events will be recorded in capture mode,  and marks the end  of
            the buffer in review mode.  The first value is the  colors  for
            the first channel  (Channel 1),  the second value is the colors
            for the other channels (2-24).

         5.1.7 CURSOR <data_colors> <background_colors>

               Sets the colors for the review cursor  which  indicates  the
            currently selected position in the capture buffer during review
            mode.  The first value is  the  colors  for  channel  positions
            containing data,  the second value is the  colors  for  channel
            positions not containing data.
   Multi-channel Data Line Monitor                                  Page: 10


      5.2 Other directives

         5.2.1 PORT <addr> <speed> <Dbits> <Parity> <Sbits> <Signals>

               MDLM supports monitoring of up to 24 serial ports  for  data
            capture.

               <addr> is the base address of the serial port.

               <speed>  is the serial  speed  (max  57600)  which  will  be
            monitored.  If the value specified cannot be achieved with  the
            PC hardware,  MDLM will issue a warning and adjust the speed to
            the closest available one.

               <Dbits>  <Parity>  and  <Sbits>  defined  the  DATA  FORMAT:
            Data-bits(5-8), Parity(O/E/M/S/N) and Stop-bits(1-2) which will
            be monitored.

               <signals>  defines the signal indicator characters which are
            shown in the review title bar and signal monitor  screens  when
            the corresponding  signal  is  active.  The  physical  hardware
            signals may also have an optional name assigned,  which will be
            available passed to any post-processors  (MDLM itself does  not
            use the signal names). The character values shown below are the
            defaults used if none are assigned.

               T[:name]    = Indicator/name for CTS input
               S[:name]    = Indicator/name for DSR input
               R[:name]    = Indicator/name for RI  input
               C[:name]    = Indicator/name for CD  input
               D           = Indicator for DATA present
               O           = Indicator for OVERRUN
               P           = Indicator for PARITY error
               F           = Indicator for FRAMING error
               B           = Indicator for BREAK detect

         5.2.2 FONT <filename> <Y|N> <name>

               MDLM allows up to 4  VGA  fonts  to  be  loaded,  and  later
            selected when in the CAPTURE or REVIEW modes.

               <filename>  is the name of the  file  containing  the  font.
            These .DLF files may be created and edited  with  the  included
            DLMFE  font  editor...  Note  that  the  "Special   Characters"
            included with the font and used by the DLM program are  ignored
            by MDLM.

               <Y|N>  is a Yes/No flag which indicates  if  dual  character
            sets should be activated for this  font.  When  dual  character
            sets are active,  only video attributes with Bit3 set are shown
            in the selected font.  Those attributes  with  Bit3  clear  are
            shown in the standard PC font.  This provides a way to show all
            data  characters  without  corrupting  the  MDLM  cursors   and
            prompts...

               <Name>  is the font name  (max 8 chars)  to be shown on  the
            CAPTURE/REVIEW title bar when this font is selected.
   Multi-channel Data Line Monitor                                  Page: 11


         5.2.3 COMMENT <text>

               Defines  a  comment  line  (max  80  chars)  which  will  be
            displaued on the MDLM main screen,  and written  as  the  first
            item in the data capture files.

         5.2.4 LINES <video lines>

               Overrides  the  number  of  lines  detected  for  the  video
            screen...  Not  normally  required  as  this   information   is
            retrieved from the BIOS,  however you can use this  command  to
            override such detection of the BIOS does not  correctly  report
            the screen size.

         5.2.5 TEMPFILE <filespec>

               Defines a filename which MDLM  will  use  to  pass  data  to
            program spawned via the Post-Processor menu.

               <filespec>  is the path/name of the temporary file.  To make
            it possible to create unique temporary files, MDLM will perform
            the following substitutions on  '%'  sequences occuring in  the
            file specification.

               %Y  = Year   of last capture: 4 digits
               %E  = yEar   of last capture: 2 digits
               %M  = Month  of last capture: 4 digits
               %D  = Day    of last capture: 4 digits
               %H  = Hour   of last capture: 4 digits
               %I  = mInute of last capture: 4 digits
               %S  = Second of last capture: 4 digits
               %C  = Count of tempfiles created: 4 digits
               %O  = cOunt of tempfiles created: 2 digits
               %K  = Keep tempfile (do not delete)
   Multi-channel Data Line Monitor                                  Page: 12


         5.2.6 PROCESS <menu text>| <filename> <command tail>

               MDLM  allows  up  to  10  post-processor  programs   to   be
            configured and selected via the  "Post-processor"  menu.  These
            program are normally used to provide customized  views  of  the
            data.  The MDLM data can  be  accessed  by  the  post-processor
            program by reading it directly from memory,  or via a temporary
            file (See TEMPFILE directive).

               <menu text>  is the name  (max 50 chars)  to be shown on the
            menu to identify this  post-processor.  The  name  may  include
            spaces, and must be terminated with the '|' character.

               <filename>  is the fill path  (including  extension)  of  an
            executable file  to  be  called  when  this  post-processor  is
            selected.

               <command tail> contains any command line arguments which are
            to be passed to the program.  The  remainder  of  the  line  is
            copied "as is", with the following substitutions:

               %S = Segment address of uart/line status segment
                    Channel/data segment is +4096
                    Timestamp segment is +8192
               %R = Buffer read pointer
               %W = Buffer write pointer
                    Valid data (words) exists between Read and Write
                    pointer in circular 64K segments.
                   %# = Number of channels defined
                   %D = MDLM Data segment
               %C = Offset to array of channel structs
               %N = Offset to comment/Name
               %T = Offset to Year/Month/Day/Hour/Minute/Second (words)
               %F = Name of temp file / saves data to file before exec
               %M = Like %F but frees/reallocates data capture segments.
                    Reloads segments from temp file after process runs.
                    Slower, but provides extra 192k of memory to process.
               %% = Single '%'
   Multi-channel Data Line Monitor                                  Page: 13


   6. DEBUGGING TIPS

         Here  are  several  common  problems  which  occur   with   serial
      communications, and information on how you could use MDLM to diagnose
      them:

      6.1 Hardware Connections

            You can easily check out the  hardware  signals  by  using  the
         "Signal monitor".

            Connecting a DTE to a monitoring port should  "raise"  the  DTR
         and RTS signals.  If this is not the case, either your connections
         are incorrect, or the DTE device is not online properly.  (In some
         rare cases this may be a normal state for the device).

            Connecting a DCE to the monitoring port should "raise"  the DSR
         and CTS signals.  If this is not the case, either your connections
         are incorrect,  or the DTE device is not online properly.  (RI and
         DCD are not always ON,  so you  can't  expect  them  to  be  in  a
         particular state).

            Once you get the above signals correctly connected,  switch  to
         "Begin data capture".

      6.2 Speed and Data format

            If the speed of the two sending and receiving  devices  is  not
         the same, no communication will occur.  Assuming you know what the
         speed SHOULD be,  it is easy to recognize  data  at  an  incorrect
         speed with MDLM.

            Capture a good sample of ASCII data with MDLM set to the  speed
         and format which you think the communication should  be  occurring
         at, and then look at it in review mode.

            If the data  completely  readable,  the  speed  and  format  is
         correct.

            If the data is partly legible, but about half of the characters
         seem to be corrupted, the speed is correct, but you have incorrect
         PARITY.

            If the data is completely unreadable, examine the HEX values of
         several characters (by moving the cursor and looking at the status
         line).  If the data has the high bit set (80-FF),  check to see if
         it would be readable without the high bit  set.  If  this  is  the
         case, the speed is correct, but the data format (Data bits/Parity)
         is incorrect. DATA BITS is the most likely suspect.
   Multi-channel Data Line Monitor                                  Page: 14


            If the above test does not reveal any readable data,  the speed
         is probably incorrect.  This will also manifest itself with "lots"
         of 'F'raming and 'O'verrun errors.

      6.3 Flow Control

            Many  modern  devices  are  not  capable  of   receiving   data
         continuously at the highest speeds supported on the interface.  An
         example of this is a  printer  which  prints  200  Characters  per
         second (CPS),  and has a serial interface running at 9600 bits per
         second which is about 960 CPS.

            Such devices usually have an  internal  buffer,  which  absorbs
         data at full speed,  and stores it so that it can be printed at  a
         slower speed.  When this buffer approaches being full, the printer
         will assert FLOW CONTROL on the sending device, which causes it to
         stop sending data until it is later instructed to proceed.

            If flow control is not working properly,  the usual symptom  is
         that the first few lines of data are  correctly  received  by  the
         device, after which symptoms vary from "lost data" to "lock up".

            There are two common forms of flow control,  one uses  hardware
         signals,  and is called HARDWARE  FLOW  CONTROL.  The  other  uses
         reserved data characters, and is called SOFTWARE FLOW CONTROL.

         6.3.1 Hardware Flow Control

               With  HARDWARE  flow  control,  the  receiving  device  will
            deassert  one  of  its  hardware  output  leads   (DTE=DTR/RTS,
            DCE=DSR/CTS)  to inform the sender to stop sending.  When it is
            ready to receive more data,  it will reassert the  signal,  and
            transmission will proceed.

               Using MDLM, you can monitor the hardware signals during data
            transmission, and see if one of them is lowered to perform flow
            control.  You can also see if the sending devices  responds  to
            the flow control  (stops sending),  and how quickly it responds
            (by noting how  many  characters  are  sent  after  the  signal
            drops).

               If the signal dropping appears to have no effect on the data
            stream,  then you know that hardware flow control is not  being
            recognized or acted upon.
   Multi-channel Data Line Monitor                                  Page: 15


         6.3.2 Software Flow Control

               With SOFTWARE flow control, the receiving device transmits a
            character to the sending device to command it to stop  sending.
            This character is usually CONTROL-S ($13).  When it is ready to
            receive more data,  a different character is transmitted.  This
            character is usually CONTROL-Q ($11).

               Using MDLM,  you can  monitor  the  data  to  and  from  the
            receiving device,  and check for flow control  characters.  You
            can also see if the sending device responds to the flow control
            (stops sending), and how quickly is responds (by noting how may
            characters are sent after the CONTROL-S is received).

               If a CONTROL-S is transmitted,  and it appears  to  have  no
            effect on the data stream,  then you know  that  software  flow
            control is not being recognized or acted upon.
   Multi-channel Data Line Monitor                                  Page: 16


   7. FILE FORMAT

         This section describes the format of the data file which is  saved
      by the "Save Data Image" function, should you have need to manipulate
      this data from an external program. All WORD entries occur in "little
      endian" format (low order byte occurs first).

       MDLM File format:
           c... - Data comment/name (variable length ASCII - up to 80 bytes)
           0    - Delimits end of comment/name     (byte with value 0)
           n    - # of configured channels         (byte)
           n*66 - 'n' channel control entries      (66*n bytes):
               word:   Uart status register I/O address (base address + 5)
               word:   Last status read from uart *1
               word:   Offset to first video line on screen
               byte10: Indicators for bit signals (+ 0 terminator)
               word:   Uart baudrate divisor
               byte:   Number of data bits: 5-8
               byte:   Parity: 0=OFF 1=Even 2=MARK 3=SPACE 4=NONE
               byte:   Number of stop bits: 1-2
               byte9:  Channel name (+ 0 terminator)
               byte9:  Ring-Indicator name (+ 0 Terminator)
               byte9:  Carrier-Detect name (+ 0 Terminator)
               byte9:  Data-Set-Ready name (+ 0 Terminator)
               byte9:  Clear-to-Send  name (+ 0 Terminator)
           yy   - Year of last capture             (word)
           m    - Month of last capture            (byte)
           d    - Day of last capture              (byte)
           h    - Hour of last capture             (byte)
           m    - Minute of last capture           (byte)
           s    - Second of last capture           (byte)
           e    - Number of capture entries        (word)
           e*6  - Data capture entries             (6*e bytes):
               byte:   Channel number: 0-(n-1)
               byte:   Uart line  status register *1
               byte:   Uart modem status register *1
               byte:   Data value *2
               word:   Lower 16 bits of BIOS timer at time of event

           *1= All status bits except for
                   Line  status: Break/Framing/Overrun/Parity/Data
                   Modem status: Cts/Rts/Ri/Cd
               are masked to zero unless no capture has ever taken place,
               in which case these read as $FF.

           *2= If 'Data' bit is not set in uart line status, this value
               will be indeterminate.
   Multi-channel Data Line Monitor                                  Page: 17


   8. ASCII code chart





                            Most Significant Figure

             HEX||  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |
             ===++=====+=====+=====+=====+=====+=====+=====+=====+
              0 || NUL | DLE |     |  0  |  @  |  P  |  `  |  p  |
             ---++-----+-----+-----+-----+-----+-----+-----+-----+
              1 || SOH | DC1 |  !  |  1  |  A  |  Q  |  a  |  q  |
         L   ---++-----+-----+-----+-----+-----+-----+-----+-----+
         e    2 || STX | DC2 |  "  |  2  |  B  |  R  |  b  |  r  |
         a   ---++-----+-----+-----+-----+-----+-----+-----+-----+
         s    3 || ETX | DC3 |  #  |  3  |  C  |  S  |  c  |  s  |
         t   ---++-----+-----+-----+-----+-----+-----+-----+-----+
              4 || EOT | DC4 |  $  |  4  |  D  |  T  |  d  |  t  |
         S   ---++-----+-----+-----+-----+-----+-----+-----+-----+
         i    5 || ENQ | NAK |  %  |  5  |  E  |  U  |  e  |  u  |
         g   ---++-----+-----+-----+-----+-----+-----+-----+-----+
         n    6 || ACK | SYN |  &  |  6  |  F  |  V  |  f  |  v  |
         i   ---++-----+-----+-----+-----+-----+-----+-----+-----+
         f    7 || BEL | ETB |  '  |  7  |  G  |  W  |  g  |  w  |
         i   ---++-----+-----+-----+-----+-----+-----+-----+-----+
         c    8 || BS  | CAN |  (  |  8  |  H  |  X  |  h  |  x  |
         a   ---++-----+-----+-----+-----+-----+-----+-----+-----+
         n    9 || HT  | EM  |  )  |  9  |  I  |  Y  |  i  |  y  |
         t   ---++-----+-----+-----+-----+-----+-----+-----+-----+
              A || LF  | SUB |  *  |  :  |  J  |  Z  |  j  |  z  |
         F   ---++-----+-----+-----+-----+-----+-----+-----+-----+
         i    B || VT  | ESC |  +  |  ;  |  K  |  [  |  k  |  {  |
         g   ---++-----+-----+-----+-----+-----+-----+-----+-----+
         u    C || FF  | FS  |  ,  |  <  |  L  |  \  |  l  |  |  |
         r   ---++-----+-----+-----+-----+-----+-----+-----+-----+
         e    D || CR  | GS  |  -  |  =  |  M  |  ]  |  m  |  }  |
             ---++-----+-----+-----+-----+-----+-----+-----+-----+
              E || SO  | RS  |  .  |  >  |  N  |  ^  |  n  |  ~  |
             ---++-----+-----+-----+-----+-----+-----+-----+-----+
              F || SI  | US  |  /  |  ?  |  O  |  _  |  o  | DEL |
             ---++-----+-----+-----+-----+-----+-----+-----+-----+
