|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 25344 (0x6300) Types: TextFile Names: »p1«
└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system └─⟦72244f0ef⟧ └─⟦this⟧ »p1«
\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◀