System 6 Chooser: Device, Name, Zone, Memory Limits


This article discusses device, zone, and name limits as displayed and
controlled through the System 6 Chooser DA window (which would correspond
to version 3.x of the Chooser itself).

The following information pertains to Chooser versions 3.x:

The Chooser DA window consists of five separate sections:

1) The device type list.
2) The AppleTalk zone list (visible only if there are multiple zones).
3) The user name box.
4) The AppleTalk active/inactive controls.
5) The available devices name list.


1) The Chooser is able to display a maximum of 16 items in the Chooser
device type list. This is the limit that is imposed by the Chooser
itself, not by something interfering with the operation of the Chooser.

2) The Chooser allocates memory for the zone list dynamically, up to 32K.
Each entry in the zone list uses 1 byte of memory for each character in
the zone name, plus 1 byte. The Chooser uses this extra byte as a length
byte. For example, the 7-character zone name "My Zone" uses 8 bytes of
memory: 7 bytes for the characters and 1 byte for the length byte. The
maximum length of a zone name is 32 characters. A 32-character zone
name uses 33 bytes of memory.

Based on this information, if every zone had a 32-character name, it
would be possible to have a maximum of 992 zones listed in the Chooser
(32K / 33 = 992.97, remove the remainder). The maximum number of zones
that can be displayed in the Chooser is wholly dependent on the length
of the zone names being used.

3) The user name can be a maximum of 31 characters.

4) This one is self-explanatory; it controls whether or not AppleTalk is
active.

5) Determining the maximum number of visible Chooser device names:

System 5.x and 6.x Choosers allocate a 512-byte buffer for the Chooser's
list of available AppleTalk network device names. Each name in the
buffer is embedded in an AppleTalk Name Binding Protocol (NBP) packet
received by the Chooser from the selected device type. The NBP packet
is called a "lookup reply", and is sent in answer to the Chooser's lookup
broadcast for the selected device. An example is the selection of the
device type LaserWriter driver, and the displayed LaserWriter object
names.

When the 512-byte buffer is filled, this sometimes causes various
names in the Chooser selection window to appear and disappear. When
selecting the LaserWriter driver in this situation, a LaserWriter
disappears and another appears approximately once each 1.5 seconds. This
happens whenever there are more names than the buffer can hold. Because
the lookups are usually sent in a series, whenever a device does not fit
on the display list, the first reply received from a previous lookup is
removed and replaced with the name of the device that did not fit. This
process continues for each following lookup broadcasted by the Chooser.
While the display list is also limited to 32 names, this is never
reached when displaying devices like LaserWriters, because even with 1
character per name, the buffer is filled when 22 LaserWriters are
displayed.

If you encounter the constantly appearing and disappearing LaserWriter
situation, you can either break the network up into zones containing smaller
numbers of the particular device, or reduce the length of some or all of the
device names.

The buffer space used by each returned AppleTalk device is the length
of the NBP reply packet returned by the device to the Chooser's lookup.

NBP LaserWriter Lookup Reply Packet Definition
----------------------------------------------
Function and Tuple Count: 1 byte
NBP ID: 1 byte
Network Number: 2 bytes
Node ID: 1 byte
Socket Number: 1 byte
Enumerator: 1 byte
Object Field Length: 1 byte
Object: length of name
Type Field Length: 1 byte
Type: 11 bytes for type "LaserWriter"
Zone Field Length: 1 byte
Zone: 1 byte for zone "*" the NBP reply default
----------------------------------------------------------------------
TOTAL 22 bytes + length of the LaserWriter name

A calculation for determining the maximum number of visible LaserWriters
in a zone:

Number of visible LaserWriters = trunc(512/(22+(sum of name lengths /
Number of LaserWriters))


If the LaserWriter names are all the same length, the calculation is
simplified to trunc(512/(22+length)). The mean calculation (sum of name
lengths / Number of LaserWriters) is not necessary in this case.

(NOTE: Trunc indicates that decimal values should be ignored. That is, a
result of 12.8 indicates 12 LaserWriters.)

The calculation can be used for any other type of AppleTalk device, if
the type length and the mean of the device names are known.

In Chooser 3.3.1 selecting the Apple LaserWriter driver displays:

Mean Name Length Max Number of Visible LaserWriters
---------------- ----------------------------------
30 9
25 10
20 12
15 13
10 16
5 18

For information on the System 7 Chooser limits, search on System 7 Chooser.


Published Date: Feb 18, 2012