DataMuseum.dk

Presents historical artifacts from the history of:

RC3500

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC3500

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦b0d3184af⟧ TextFileVerbose

    Length: 25344 (0x6300)
    Types: TextFileVerbose
    Names: »p1«

Derivation

└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system
    └─⟦72244f0ef⟧ 
        └─⟦this⟧ »p1« 

TextFileVerbose

\f


                                         i

        INDHOLD                                                           SIDE        ______________________________________________________________________

        1.  General Description............................................  2

        2.  Messages and Answers...........................................  3
            2.1  Fixed Types...............................................  3
            2.2  Control Messages..........................................  4
                 2.2.1  Sense Line.........................................  5
                 2.2.2  Line Control.......................................  5
                 2.2.3  Set Conversion.....................................  6
                 2.2.4  Set Timers.........................................  8
                 2.2.5  Reset..............................................  9
            2.3  Transput Messages.........................................  9
                 2.3.1  Input..............................................  9
                 2.3.2  output............................................. 11
            2.4  Results................................................... 11
            2.5  Treatment of Characters Received.......................... 12

        3.  LAM-Driver Process............................................. 13
\f


                                         1                                





                



















                ______ __________ ______                RC3502 LAM108/116 DRIVER
                

                ___________ ______ _________ _______                Preliminary Driver Reference Manual.

\f


                                         2                                





        ____________________________                                                1.      General Description.                                      1.

                

                The  RC3502  LAM-driver  supports  full  duplex  V.24
                asynchronous  communication  on  8  or  16 lines with
                transmission speed selectable  between  110  bps  and
                1200  bps  on  a  per line basis. The driver supports
                program controlled
                
                 - echoing,
                 - input continued, i.e. collection of characters
                   received before an input buffer arrives,
                 - input conversion,
                 - timeout monitoring,
                 - modem control,
                 - conversion table sharing between lines.
                
                Lines are numbered 0 to 7 or 0 to 15 for  both  input
                and output lines.

\f


                                         3                                





        _____________________________                                               2.      Messages and Answers.                                     2.

                

                All messages are signalled to the LAM-driver  general
                semaphore  and all answers are returned to the answer
                semaphore  except  when  the  driver  is  removed  or
                enteres an exception.
                
                The general format for messages is
                 
                      message           answer
                 u1   function          function
                 u2   not used          result
                 u3   lineno            lineno
                 u4   not used          unchanged
                

        ____________________                                                         2.1     Fixed Types.                                              2.1

                

                All message data types starts with first, last, next:
                integer   in  accordance  with  the  standard  driver
                convensions.
                 

\f


                                         4                                





                 line_status_type =
                   packed record
                     ?:           0..1;
                     line_speed:  0..3;
                       (* 0:  110 bps,
                          1:  300 bps,
                          2:  600 bps,
                          3: 1200 bps  *)
                     data_size:   0..3;
                       (* 0: 5 data bits / char,
                          1: 6 data bits / char,
                          2: 7 data bits / char,
                          3: 8 data bits / char  *)
                     stop_bits:   boolean;
                       (* true:  2 stop bits,
                          false: 1 stop bit  *)
                     pty_mode:    0..3;
                       (* 0: odd parity,
                          1: ignore parity, parity bits received
                             are stripped off and ignored; chars
                             xmitted has even parity bit supplied *)
                          2: even parity,
                          3: no parity, characters received and
                             xmitted without parity bit  *)
                     ?:           0..1;
                     rts, (* request to send, outgoing modem signal *)
                     dtr, (* data terminal ready, outg. modem signal *)
                     dcd, (* data carrier detect, inc. modem signal *)
                     rfs, (* ready for sending, inc. modem signal *)
                     dsr, (* data set ready, incomming modem signal *)
                     ?,?: boolean;
                
                   end;  (* line_status_type *)
                

        _________________________                                                    2.2     Control Messages.                                         2.2

                

                Control  messages  except  set  conversion are always
                executed and returned immediately.  Control  messages
                are common for the input and output lines.

\f


                                         5                                





        ___________________                                                            2.2.1   Sense Line.                                               2.2.1

                

                _______                Format:
                
                       message      answer
                 u1       0           0
                 u2       -         result
                 u3    lineno       lineno
                 u4       -         unchanged
                 buf:     -         line status
                 
                 sense_buffer_type =
                   record
                     f, l, n: integer;  (* not used *)
                     line_status: line_status_type;
                   end;
                
                _________                function:
                
                The  current  state  of  the  three  incomming  modem
                signals: DSR, RFS, and DCD is updated and the  answer
                is returned.

        _____________________                                                          2.2.2   Line Control.                                             2.2.2

                

                _______                Format:
                 
                      message      amswer
                 u1      4           4
                 u2      -         result
                 u3   lineno       lineno
                 u4      -         unchanged
                 buf  line_control line_status
                 
                 buffer_type =
                   record
                     f, l, n: integer;  (* not used *)
                     new_line_state,
                     actual_changes: line_status;
                   end;
                
                _________                Function:
                
                The  record, actual_changes, is inspected for true or
                non-zero  values  and  for  each  such   found,   the
                corresponding line_state is set.

\f


                                         6                                





                Finally the function, sense line,  is  executed,  the
                record,   new_line_state,  updated,  and  the  answer
                returned.

        _______________________                                                        2.2.3   Set Conversion.                                           2.2.3

                

                _______                Format:
                
                      message      answer
                 u1      8           8
                 u2      -         result
                 u3   lineno       lineno
                 u4      -         unchanged
                 buf  conv_spec    conv_spec
                 
                 conv_spec =
                   record
                     f, l, n: integer;  (* not used *)
                     conv_control: integer;
                       (* -2:   clear and push current conversion
                                buffer, if any, under this message
                                and  return this message,
                          -1:   set conv_tab in this buffer as conver-
                                sion table for this line. If a 
                                conversion table is already set for 
                                this line it is returned.
                          0-15: set the conversion table for the 
                                specified line as conversion table 
                                well. If a conversion table is already
                                set for this line, it is returned.  *)
                     end;
                 
                Conversion  is  executed  for  input  and   attention
                operations  only.  Incomming characters are converted
                and classified  using  the  value  of  the  incomming
                characters for table lookup in conv_tab.
                The type, conv_integer, in interpreted in one of  two
                ways  depending  on the value of conv_integer.normal-
                conv . If normal_conv is true the value is  used  for
                normal  classification  of incomming characters while
                special conversion is performed when  normal_conv  is
                false.
                
                 conv-integer =
                   packed record
                     normal-conv: boolean;
                       (* false: the value of conv-integer is used as
                                 index in conv-tab for the start-

\f


                                         7                                





                                 integer of a special conversion
                                 record,
                          true:  this element is used for conversion
                                 and classification of the received
                                 character. *)
                     attention: boolean;
                       (* true: this character is an attention char.
                          i.e: if an input-operation is present, it is
                          terminated and returned with status att.
                          with the value delivered, if specified.
                          If an attention-operation and no input-
                          operation is present, the attention-operation
                          is terminated and returned with the value
                          delivered, if specified.
                          If an input- or attention-operation is pre-
                          sent and an output-operation is being
                          executed, this output-operation is terminated
                          with status: attention.
                          Note however that if no input- or attention-
                          is present, the attention charecter is
                          stored in the internal buffer but not 
                          executed. *)
                     termination: boolean;
                       (* an input operation is terminated with this
                          character, which is delivered if specified.  *)
                     blind: boolean;
                       (* the value is not delivered *)
                     noecho: boolean;
                       (* the value is not echoed *)
                     erase_last: boolean;
                       (* if current buffer is empty, this character
                          is delivered, if specified, but not echoed.
                          If current buffer is non-empty, the last
                          stored character is erased and the received
                          character is delivered, if specified, and
                          echoed, if specified.  *)
                     erase_all: boolean;
                       (* all characters in the current buffer are
                          erased and the received character is
                          delivered, if specified, and echoed,
                          if specified.  *)
                     mark: boolean;
                       (* status mark is set in the result of the
                          current input buffer if value is stored. *)
                     conv_char: byte;
                       (* the value to be delivered and echoed.  *)
                   end;
                 
                If normal_conv is false, the binary  value  of  conv-
                integer is the index in conv_tab of the first integer

\f


                                         8                                





                of a special conversion record:
                
                 spec_conv_record =
                   packed record
                     spec_conv_integer: conv_integer;
                       (* values as normal conversion. *)
                     length: integer;
                       (* length of special echo (in bytes) *)
                     spec_echo: array (1..length) of byte;
                   end;
                
                _________                Function:
                
                Conversion   is   set  or  cleared  as  specified  in
                conv_spec. When an old conversion table  is  returned
                by a clear-function, this is done by PUSH'ing the old
                one under the clear-message and then returning  this.
                Then  an  old conversion table is returned by setting
                up a new one, this is done by returning the old one.

        ___________________                                                            2.2.4   Set Timers.                                               2.2.4

                

                _______                Format:
                
                      message      answer
                 u1     12           12
                 u2      -         result
                 u3   lineno       lineno
                 u4      -         unchanged
                 buf  timers       timers
                 
                 timers =
                   record
                     f, l, n: integer;  (* not used *)
                     itimer1: integer;
                       (* defines the timeout before first character
                          input to a buffer. *)
                     itimer2: integer;
                       (* defines the timeout between chars. input. *)
                     otimer1: integer;
                       (* defines the timeout per character output
                          from a buffer or echo. *)
                   end;
                 
                All timers are in units of 1 second and a zero  value
                means no timeout.
                Note however that the value n means a period  between
                n-1 and n seconds, e.g: the value 1 is senseless.

\f


                                         9                                





                
                _________                Function:
                
                The timer values are set and the answer returned.

        ______________                                                                 2.2.5   Reset.                                                    2.2.5

                

                _______                Format:
                
                      message      answer
                 u1     16           16
                 u2      -         result
                 u3   lineno       lineno
                 u4      -         unchanged
                 buf     -         unchanged
                
                _________                Function:
                
                All operations in progress on the  input  and  output
                line  are  terminated  and  all messages are returned
                with status: reset (= not processed  ).  Finally  the
                reset operation is returned with result: ok.

        __________________________                                                   2.3     Transput Messages.                                        2.3

                

                The  driver supports message data stacks of a maximal
                depth of 1, i.e. on stacked  (chained)  buffers.  All
                transput messages are formatted according to standard
                using first, last, and next indices.

        ______________                                                                 2.3.1   Input.                                                    2.3.1

                

                _______                Format:
                
                      message      answer
                 u1   inpfunc      inpfunc
                 u2      -         result
                 u3   lineno       lineno
                 u4      -         unchanged
                 buf     -         rec-data
                
                _________                Function:
                
                The  value  of inpfunc in u1 defines the actual input

\f


                                        10                                





                function for the message and is composed of a sum  of
                binary    numbers,    each    defining   a   specific
                characteristic of the input function:
                
                inpfunc   1 :       Basic input function.
                                    
                inpfunc  +2 :       Echoing of significant characters
                                    are to be performed.
                                    
                inpfunc  +4 :       Continuing input, i.e. characters
                                    received  from  returnal  of  the
                                    previous input operation and onto
                                    initiation of this input  message
                                    are accepted instead of skipped.
                                    
                inpfunc  +8 :       Attention, only characters, which
                                    are  classified  with  attention,
                                    are accepted.
                                    
                inpfunc +16 :       Flow  control  by  means of XON /
                                    XOFF   characters   are   to   be
                                    performed.  The  following action
                                    is taken:
                                    
                                       - When  the  driver  initiates
                                         execution  of a flow control
                                         input   message   an    XON-
                                         character    (dec: 17)    is
                                         output.
                                         
                                       - When the  driver  terminates
                                         execution  of a flow control
                                         input   message   an   XOFF-
                                         character    (dec: 19)    is
                                         output.
                                         

\f


                                        11                                





        ______________                                                                 2.3.2   output                                                    2.3.2

                

                _______                Format:
                
                       message      answer
                 u1       2           2
                 u2       -         result
                 u3    lineno       lineno
                 u4       -         unchanged
                 buf   data         unchanged
                
                _________                Function:
                
                The  data  in  the  buffer  is  output and the answer
                returned. A timeout condition or the  recognition  of
                an  attention  character  will  terminate the output-
                operation prematurely.

        ________________                                                             2.4     Results.                                                  2.4

                

                _____ ________                Basic Results:
                
                 0   operation executed succesfully.
                 1   operation not processed but returned by a reset
                      operation.
                 2   error described by result modification.
                 4   illegal function code or lineno.
                
                ______ ______________                Result Modifications:
                
                 +0   timeout. The operation is terminated.
                 +8   echo error. The operation continues.
                 +16  attention. The operation terminates.
                 +32  parity or stopbit error. The oper. continues.
                 +64  overrun or character lost, e.g: hardware overrun
                      or internal buffer overrun. The oper. terminates.
                 +128 mark. The operation continues.

\f


                                        12                                





        _________________________________________                                    2.5     Treatment of Characters Received.                         2.5

                

                Normally  characters  received  are  placed   in   an
                internal   buffer   until   an   input  operation  is
                available. They are then converted, if conversion  is
                defined,  echoed,  if  specified,  and  stored in the
                input buffer.
                If echoing or transmission of flow control characters
                are to be performed  and  the  output  line  is  busy
                executing an output operation no echoing is performed
                but status echo-error is set in the answer. The  same
                applies  to  a  timeout  error  during output of echo
                characters.
                A character received with parity or stop-bit error is
                substituted by the character SUB (dec: 26) and status
                parity is set in the answer.
                A received break signal is  treated  as  a  character
                with  conversion index -1 when conversion is defined.
                If conversion is not defined, however, a break signal
                is  treated  as  a  character with parity error and a
                SUB-character is stored.

\f


                                        13                                





        ___________________________                                                 3.      LAM-Driver Process.                                       3.

                

                The LAM driver process is created with the  following
                format:
                
                  PROCESS lamdriver(var lamsem: semaphore;
                                    lamlevel: integer);
                
                  where lamsem is the driver input semaphore, and
                        lamlevel is the interrupt level of the lam.
                
                  LAM-driver stack size: xxxx words.
                
                  Recommended LAM-driver priority: 0.
                

\f

\f

«eof»