Envoy Application Programming Manual

Table Of Contents
BISYNC Multipoint Tributary Protocol
Envoy Application Programming Manual427159-001
5-13
Select List
The low-order seven bits of the first byte of the station address must match the low-order
seven bits of POLLADDR or SELADDR as specified in the I/O configuration entry with
SYSGEN.
The example in Example 5-2
has the following components:
The address list contains six entries.
The address list is defined as a STRING array so that individual byte elements can
be initialized.
Each station address consists of five characters; therefore, a trailing null character is
appended to each address.
The first two entries (poll^count) make up the poll list; the last four entries
(num^entries minus poll^count) make up the select list.
Note that the select list contains multiple entries per station. These multiple entries
permit the application process to represent a station having multiple devices (such as
printers or card punches). Note also that the poll and select states for all entries are
initially set to inactive. This is done because a station does not have data to send at
the time the list is defined.
Example 5-2. Address List Example
LITERAL addr^size = 3, ! address size in words.
num^entries = 6, ! number of address-list entries.
ENQ = 5, ! ASCII ENQ character.
SYN = %26, ! ASCII SYN character.
poll^count = 2, ! number of poll-list entries.
inactive = %200; ! sets stations to "inactive."
STRING
.saddr^list[ 0 : addr^size * num^entries * 2 - 1] :=
! address list.
[inactive + "A","A01", ENQ, 0, ! entry 0, station 1 poll.
inactive + "B","B01", ENQ, 0, ! entry 1, station 2 poll.
inactive + "a","a01", ENQ, 0, ! entry 2, station 1,
! device 1 select.
inactive + "a","a02", ENQ, 0, ! entry 3, station 1,
! device 2 select.
inactive + "b","b01", ENQ, 0, ! entry 4, station 2,
! device 1 select.
inactive + "b","b02", ENQ, 0]; ! entry 5, station 2,
! device 2 select.
INT .addr^list := @saddr^list ’>>’ 1; ! redefine as INT array.
CALL DEFINELIST (linefnum,addr^list,addr^size,num^entries,
poll^count,poll^type);
IF < THEN ...