DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

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

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦b0d3184af⟧ TextFile

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

Derivation

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

TextFile

\f


                                         i

        INDHOLD                                                           SIDE\r        ______________________________________________________________________

        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                                





                \r



















                ______ __________ ______\r                RC3502 LAM108/116 DRIVER\r
                \r

                ___________ ______ _________ _______\r                Preliminary Driver Reference Manual.\r

\f


                                         2                                





        ____________________________                                        \r        1.      General Description.                                      1.\r

                \r

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

\f


                                         3                                





        _____________________________                                       \r        2.      Messages and Answers.                                     2.\r

                \r

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

        ____________________                                                 \r        2.1     Fixed Types.                                              2.1\r

                \r

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

\f


                                         4                                





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

        _________________________                                            \r        2.2     Control Messages.                                         2.2\r

                \r

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

\f


                                         5                                





        ___________________                                                    \r        2.2.1   Sense Line.                                               2.2.1\r

                \r

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

        _____________________                                                  \r        2.2.2   Line Control.                                             2.2.2\r

                \r

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

\f


                                         6                                





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

        _______________________                                                \r        2.2.3   Set Conversion.                                           2.2.3\r

                \r

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

\f


                                         7                                





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

\f


                                         8                                





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

        ___________________                                                    \r        2.2.4   Set Timers.                                               2.2.4\r

                \r

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

\f


                                         9                                





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

        ______________                                                         \r        2.2.5   Reset.                                                    2.2.5\r

                \r

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

        __________________________                                           \r        2.3     Transput Messages.                                        2.3\r

                \r

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

        ______________                                                         \r        2.3.1   Input.                                                    2.3.1\r

                \r

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

\f


                                        10                                





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

\f


                                        11                                





        ______________                                                         \r        2.3.2   output                                                    2.3.2\r

                \r

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

        ________________                                                     \r        2.4     Results.                                                  2.4\r

                \r

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

\f


                                        12                                





        _________________________________________                            \r        2.5     Treatment of Characters Received.                         2.5\r

                \r

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

\f


                                        13                                





        ___________________________                                         \r        3.      LAM-Driver Process.                                       3.\r

                \r

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

\f

\f

▶EOF◀