6322916_PC_Network_Technical_Reference_Sep84 6322916 PC Network Technical Reference Sep84

User Manual: 6322916_PC_Network_Technical_Reference_Sep84

Open the PDF directly: View PDF PDF.
Page Count: 505

Download6322916_PC_Network_Technical_Reference_Sep84 6322916 PC Network Technical Reference Sep84
Open PDF In BrowserView PDF
---- ---_.-

---- - ---- --- -- --

Personal Computer
Hardware Reference
Library

Technical
Reference
PC Network

First edition (September 1984)
The following paragraph does not apply to the United Kingdom or any country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES
CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT
WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some
states do not allow disclaimer of express or implied warranties in certain transactions,
therefore, this statement may not apply to you.
This publication could include technical inaccuracies or typographical errors. Changes are
periodically made to the information herein; these changes will be incorporated in new
editions of the publication. IBM may make improvements and/or changes in the product(s)
and/or program( s) described in this publication at any time.
It is possible that this publication may contain reference to, or information about, IBM
products (machines and programs), programming, or services that are not announced in
your country. Such references or information must not be construed to mean that IBM
intends to announce such IBM products, programming, or services in your country.

Products are not stocked at the address below. Requests for copies of this publication and
for technical information about IBM Personal Computer products should be made to your
authorized IBM Personal Computer dealer or your IBM Marketing Representative.
The following paragraph applies only to the United States and Puerto Rico: A Reader's
Comment Form is provided at the back of this publication. If the form has been removed,
address comments to: IBM Corporation, Personal Computer, P.O. Box 1328-C,
Boca Raton, Florida 33432. IBM may use or distribute any ofthe information you supply
in any way it believes appropriate without incurring any obligations whatever.

© Copyright International Business Machines Corporation 1984

FEDERAL COMMUNICATIONS
COMMISSION RADIO FREQUENCY
INTERFERENCE STATEMENT
The equipment described herein has
been certified to comply with the limits for a Class
B computing device, pursuant to Subpart J of
Part 15 of FCC rules. Only peripherals (computer
input/output devices, terminals, printers, etc.)
certified to comply with the Class B limits may be
attached to the computer. Operation with
non-certified peripherals is likely to result in
interference to radio and TV reception. If
peripherals not offered by IBM are used with the
equipment, it is suggested to use shielded grounded
cables with in-line filters if necessary.

Warning:

INSTRUCTIONS TO USER
This equipment generates and uses radio frequency
energy and if not installed and used properly, i.e., in
strict accordance with the operating instructions,
reference manuals, and the service manual, may cause
interference to radio or television reception. It has been .
tested and found to comply with the limits for a Class B
computing device pursuant to Subpart J of Part 15 of
FCC Rules, which are designed to provide reasonable
protection against such interference when operated in a
residential installation.

iii

If this equipment does cause interference to radio or
television reception, which can be determined by
turning the equipment off and on, the user is encouraged
to try to correct the interference by one or more of the
following measures:

•

Reorient the receiving antenna.

•

Relocate the equipment with respect to the receiver.

•

Move the equipment away from the receiver.

•

Plug the equipment into a different outlet so that
equipment and receiver are on different branch
circuits.

•

Ensure that all cables and connecting hardware are
properly installed.

•

If peripherals not offered by IBM are used with this
equipment, it is suggested that you use shielded,
grounded cables with in-line filters, if necessary.

If necessary, consult your dealer service representative
for additional suggestions.
The manufacturer is not responsible for any radio or
TV interference caused by unauthorized modifications
to this equipment. It is the responsibility of the user to
correct such interference.
CAUTION
The product described herein is equipped with a
grounded plug for the user's safety. It is to be used
in conjunction with a properly grounded receptacle
to avoid electrical shock.

iv

About This Book

The IBM PC Network Technical Reference provides
network design information on the components that
comprise the IBM PC Network, and information on the
fundamentals of designing an IBM PC Network. This
book also includes the IBM PC Network Adapter Basic
Input Output System (BIOS) interface with listings.
This book is written for engineers, programmers,
telecommunications professionals, and those interested
in how the IBM PC Network is designed.

How This Book is Organized
This book has four chapters and five appendixes:
Chapter 1 is an introduction to the IBM PC Network:
•

What the IBM PC Network is
What the IBM PC Network does for you

Chapter 2 is a detailed reference about the software for
the IBM PC Network adapter:
•

Network software layers

•

IBM PC Network software Network Control Block
(NCB) commands

v

Chapter 3 is a detailed description of each of the IBM
PC Network components:
•

PC Network Adapter

•

Translator Unit

•

PC Network Cable System

Chapter 4 discusses the fundamentals of network
design:
•

How to calculate network parameters to obtain the
desired signal levels

•

Configuration considerations

•

A vailable tools

Appendix A IBM PC Network adapter and The IBM
Translator Unit schematics
Appendix B. Tables of IBM PC Network specifications
Appendix C. The IBM PC Network protocols and
pseudo code for the NCB commands
Appendix D. Adapter BIOS listings
Appendix E. Multitasking considerations
Glossary of Terms
Bibliography

vi

IBM Personal Computer program license
agreements permit the use of a program on a single
machine. The customer is responsible for ensuring
that each system user in the network is
appropriately licensed to use any programs shared
over the network.

vii

viii

Contents

Chapter 1. The IBM PC Network .............
What the IBM PC Network Is ...........
Basic Components ................
Hardware Configuration ............

1-1
1-3
1-7
1-9

Chapter 2. IBM PC Network Software Description 2-1
Introduction ..................... 2-3
IBM PC Network Adapter Data Transfer ... 2-5
Physical Layer ................... 2-7
Link Layer ...................... 2-7
Network Layer ................... 2-9
Transport Layer .................. 2-9
Session Layer .................... 2-9
Programming The IBM PC Network Adapter 2-11
IBM PC Network Adapter
Characteristics ................. 2-11
Network Control Block (NCB) ......... 2-14
NCB Field Description ............ 2-15
NCB Commands ..................... 2-23
General Commands .............. 2-25
Name Support ................... 2-37
Session Support .......... . . . . . . .. 2-44
Datagram Support ................ 2-70
Remote Program Load for the IBM PC
Network .......................... 2-80
RPL Request Format ............. 2-80
Sample Programs ................ 2-82
Two Adapter Cards In the Same
Personal Computer .............. 2-88
Error Recovery ...................... 2-90
Chapter 3. IBM PC Network Hardware Description 3-1
Introduction ..................... 3-5
IBM PC Network Adapter .............. 3-6
Digital Section ................... 3-8
IBM PC Network Adapter
Characteristics ................. 3 -1 0

ix

Interrupt Structure ...............
Programming Interface ............
Interface Control ................
Primary Commands ..............
Host-Initiated Commands ..........
Adapter-Initiated Commands .......
Modem Interface Section ..........
Communications Controller Section ..
CSMA/CD Technique ............
RF Modem Section ...............
Adapter Interface Signals ..........
Power-On Self-Tests (POST) .......
Configurable Hardware Options .....
Traffic And Error Statistics ........
Specifications ...................
IBM Translator Unit ..................
Functional Description ............
The IBM PC Network Cable System .....
Cable System Components .........
Connection Hardware .............
Base Expander ..................
Short Distance Kit ...............
Medium Distance Kit .............
Long Distance Kit ................
IBM Coaxial Cable ...............
Cable Network Specifications .......

3-12
3-20
3-25
3-39
3-42
3-44
3-47
3-48
3-48
3-50
3-61
3-63
3-70
3-72
3-73
3-74
3-74
3-79
3-79
3-82
3-84
3-86
3-88
3-91
3-94
3-96

Chapter 4. Network Design .................. 4-1
Introduction ......................... 4-3
Reviewing Your Needs ............. 4-4
Surveying the Physical Layout ....... 4-5
Physical Layout .................. 4-6
Component Description ............ 4-7
Computing Signal Levels and Network
Attenuation ..................... 4-9
Signal Level Margins ............... 4-9
Network Attenuation ............. 4-10
Design Procedure .................... 4-11
Choosing a Topology ............. 4-12
Future Needs ....................... 4-21
Adding Outlets to the System ....... 4-21
Adding Branches to the System ..... 4-21
Test Equipment ..................... 4-22

x

RF Sweep Generator .............
RF Sweep Receiver ...............
RF Voltmeter ...................
Checking a Network ..................
Where to Check .................
When to Check ..................
How to Check ...................
What to Look for when Testing .....

4-22
4-23
4-23
4-24
4-25
4-25
4-25
4-31

Appendix A. IBM PC Network Schematics ...... A-3
IBM PC Network Adapter Schematics ..... A-3
IBM PC Network Translator Unit Schematics A-9
Appendix B. IBM PC Network Specifications .... B-1
Environmental Specifications ........ B-1
IBM PC Network Adapter Specifications B-2
Network Cable Characteristics ....... B-5
IBM Translator Unit Specifications ... B-7
Physical and Mechanical Characteristics B-10
Appendix C. IBM PC Network Protocols ........ C-1
Purpose of the Protocols ............ C-1
General timing of packet exchanges ....... C-7
Session Establishment .............. C-7
Data Transfer .................... C-8
Session Termination ............... C-9
Packet Processing ................ C-10
Pseudo Code for NCB Commands ....... C-13
RESET ........................ C-13
STATUS ....................... C-14
ADDNAME ................... C-16
ADD GROUP NAME ............ C-18
DELETE NAME ................ C-20
CALL ......................... C-21
LISTEN ....................... C-23
HANG UP ..................... C-25
SEND ......................... C-27
CHAIN SEND .................. C-28
RECEIVE ..................... C-29
RECEIVE ANY ................. C-30
SESSION STATUS ............... C-32
SEND DATAGRAM ............. C-33
SEND BROADCAST DATAGRAM . C-34

xi

RECEIVE DATAGRAM .......... C-35
RECEIVE BROADCAST
DATAGRAM .................. C-37
Timer Expiration Processing ............ C-38
Packet Reception Processing ........... C-42
Field Definitions ................. C-50
Packet Types, Formats and Functions .... C-56
Protocol Interactions ................ C-135
Session to Transport Layer
Interactions ................... C-135
Network Layer Interaction ........ C-137
Packet Reception Procedures ...... C-141
Appendix D. Adapter BIOS .................. D-l
Appendix E. Multitasking Considerations ........ E-l
Glossary

......................••... Glossary-l

Bibliography ......•............... Bibliography-l
Index .....•....................•..... Index-l

xii

Chapter 1. The IBM PC Network

Contents
What the IBM PC Network Is ................
Basic Components ......................
The IBM PC Network Adapter .........
The IBM Translator Unit ..............
The IBM Base Expander ..............
The IBM Short, Medium, or Long Distance
Kits ..............................
Hardware Configuration .................

1-3
1-7
1-7
1-8
1-8

1-8
1-9

The IBM PC Network 1-1

1-2 The IBM PC Network

What the IBM PC Network Is
The IBM PC Network is a broadband local area
network that allows multiple Personal Computers to
communicate with each other.
Some of the major features of the IBM PC Network are
as follows:
•

Many types of IBM Personal Computers can be
connected to the network with an IBM PC
Network Adapter in each computer.

•

Each IBM PC Network Adapter is a highly
intelligent device that can communicate on a single
coaxial cable at a data rate of 2 million bits per
second.

•

The circuitry on the adapter includes an IntePM
80188 microprocessor, an Intel 82586
communications controller, and other related
circuitry.

•

The IBM PC Network cable kit components can be
used to simplify the installation of the IBM PC
Network. A fully extended network using IBM
components supports data transmissions for up to
72 nodes within a 1000 foot radius.

•

You can choose to design your own data and video
cable network. The network can contain up to
1000 nodes at a maximum distance of up to 5
kilometers with the proper cable specifications and
a commercially available frequency translator. The
performance of a large network depends on the
load that is placed on the network by each
computer.

•

Communication with the IBM PC Network
Adapter is through a BIOS interface that is
operating system independent.

The IBM PC Network 1-3

•

The high level BIOS interface and a separate
processor off-loads work from each computer on
the network. This high level interface improves the
computers performance, reduces memory
requirements, and simplifies programming.

•

The adapter BIOS supports a Remote Program
Load feature to boot a Personal Computer from a
remote server computer on the network.

•

The software on the adapter is implemented as
protocol layers. The software represents a
broadband implementation of the lower 5 protocol
layers (physical through session).

•

Communication can occur by addressing other
computers on the network by using ordinary names
like John or Mary instead of physical addresses.

Broadband
The term broadband is used here to describe a type of
local area network. Broadband networks are similar to
Cable TV (CATV) networks in use today. One
difference between CATV and Broadband networks is
that CATV systems only transmit many one-way
frequencies at the same time on a single coaxial cable.
Broadband networks use different frequencies to
provide a simultaneous communication link between
each attached computer.
Major components used in CATV and broadband
networks are similar, such as the coaxial cable,
directional taps, and splitters. The difference is in the
main component used in both types of networks called
the frequency translator. This component does what its
name implies; it translates from one frequency to
another but leaves the information that is carried by the
frequency intact. Most of the CATV frequency
translators in use today do the same thing, but not in a
bi-directional way like the IBM PC Network.

1-4 The IBM PC Network

The frequency translator used in the IBM PC Network
is made up of a frequency translator, a directional tap,
and an 8-way splitter. These components, when
connected together, make up what is called the IBM
Translator Unit.

Local Area Network
This term is used to denote the physical size of the
network. CATV networks, in general, cover part or all
of an entire city. Broadband networks are limited in
size to cover a cluster of computers within a building or
even between buildings, if the cable limitations are not
exceeded.
For the IBM PC Network, each computer connects to
the network by a single coaxial cable connection similar
to that for CATV. The physical layout of the cable can
vary from installation to installation. You can think of
the basic layout as a tree, with the frequency translator
at the base of the tree. The main cable is the trunk of
the tree
The computers are connected to the main
cable through branches O. Each computer on the
network is referred to as a node G. Each node
includes a personal computer, an IBM PC Network
Adapter, and the necessary software. See Figure 1-1
for a diagram of a basic network.

e.

The IBM PC Network 1-5

Translator
Unit

®

Figure 1-1 Basic Network layout

1-6 The IBM PC Network

The advantage of a tree network is that it continues to
operate even though one or more of the nodes or
branches are not active.
In general, the IBM PC Network is a reliable, efficient
means to communicate programs, data, and messages
between two or more computers. The following is a
brief description of the software and hardware
components that make up the IBM PC Network.

Basic Components
Basic components of the IBM PC Network are:
•

An IBM PC Network Adapter and BIOS with a
white adapter cable

•

An IBM Translator Unit with connection hardware

•

The IBM Base Expander

•

An IBM Short, Medium, or Long Distance Kit

•

IBM Coaxial Cable in lengths of 25,50, 100, or
200 feet

The IBM PC Network Adapter
Each computer on the network must have an IBM PC
Network Adapter. The adapter contains a radio
frequency (RF) modem, a Basic Input Output System
(BIOS) ROM, and two processors (Intel 80188 and
82586), to ensure reliable two-way communication
with the other computers on the network. The
hardware portion of the adapter is described in Chapter
3. In Chapter 2, the BIOS and programming features
of the IBM PC Network Adapter are detailed. Some of
the information covered in Chapter 2 is as follows:
•

A layered approach to the network software

The IBM PC Network 1-7

•

Session and datagram support to connect the
computers together

•

Sample programs and aids to programming with
the BIOS

The IBM Translator Unit
All transmissions pass through an electronic device
called a Translator Unit. The unit receives
transmissions from the devices attached to the network,
amplifies them, raises their frequency into a higher
range, and retransmits them over the same cable.
Each IBM PC Network must have one Translator Unit.
The connection hardware that comes with the IBM
Translator Unit supports up to eight computers. Each
computer can be located up to 200 feet away from the
Translator Unit's eight-way splitter.

The IBM Base Expander
Use this device when you need to connect more than
eight computers to the network or when a distance
greater than 200 feet between the Translator Unit and a
computer is required. The Base Expander allows you to
connect any combination of Short, Medium, or Long
Distance Kits to the Translator Unit. Up to eight kits
can be connected to the Base Expander.

The IBM Short, Medium, or Long Distance
Kits
These kits allow you to connect up to eight additional
computers to the network. Each kit must connect to
the Base Expander to function properly on the network.

1-8 The IBM PC Network

There are three types of kits for the IBM PC Network:
Short, Medium, or Long. Each type of kit is selected
for the distance you need to locate each computer from
the Translator Unit.
•

The Short Distance Kit connects directly to the
Base Expander. Cable can be added between the
Short Distance Kit and the computer for a distance
of up to 200 feet.

•

The Medium Distance Kit attaches to the Base
Expander through 400 feet of cable. This cable
must be added between this kit and the Base
Expander for proper operation. Cable can be
placed between the Medium Distance Kit and the
computer for a distance of up to 200 more feet.
The maximum allowable distance for each
computer using this kit is 600 feet from the
Translator Unit.

•

The Long Distance Kit connects to the Base
Expander like the Medium Distance Kit. 800 feet
of cable must be added between this kit and the
Base Expander for proper operation. Cable can be
added between the Long Distance Kit and the
computer for a distance of up to 200 additional
feet. The maximum allowable distance for each
computer using the Long Distance Kit is 1000 feet
from the Translator Unit.

Hardware Configuration
The minimum IBM PC Network configuration consists
of two computers and one IBM PC Network Translator
Unit. Both computers contain an IBM PC Network
adapter, and a 3-meter white adapter cable that
connects them to the Translator Unit.
To expand this simple system, you can add up to 6
more computers. For more distance or more than 8
computers, you can add IBM cable, the IBM Base

The IBM PC Network 1-9

Expander, and any combination of IBM Short, Medium,
or Long Distance Kits. Also, you must add an IBM PC
Network Adapter for each computer.
You can expand the IBM PC Network, with the kits, up
to a maximum of 72 nodes by installing the hardware
needed to connect them. See "The IBM PC Network
Cable System" on page 3-79 for details about using the
cable kits.
Because the IBM PC Network is a broadband network,
you can simultaneously use the network for other
applications.
The IBM Translator Unit can only be used on a
network that transmits and receives data. It does not
allow or support any of the following functions. To
support these functions, you must acquire a different
frequency translator.
•

Additional data channels

•

Video conferencing

•

Closed circuit TV (CCTV)

•

Area and building access control

•

Security and fire alarm systems

•

Energy management and conservation

1-10 The IBM PC Network

Notes:

The IBM PC Network 1-11

Notes:

1-12 The IBM PC Network

Chapter 2. IBM PC Network Software
Description

Contents
2-3

Introduction
IBM PC Network Adapter Data Transfer .......
Physical Layer .........................
Link Layer .. . . . . . . . . . . . . . . . . . . . . . . . . ..
CSMA/ CD ........................
Network Layer ........................
Transport Layer .......................
Session Layer .........................

2-5
2-7
2-7
2-7
2-9
2-9
2-9

Programming The IBM PC Network Adapter ....
IBM PC Network Adapter Characteristics ..
Data Transfer .....................
Name Support .....................
Using the Network ..................

2-11
2-11
2-12
2-12
2-12

Network Control Block (NCB) ..............
NCB Field Description .................
Network Control Block (NCB) Format ..
NCB COMMAND ................
NCB-RETCODE .................
NCB-LSN .......................
NCB-NUM ......................
NCB-BUFFER@ .................
NCB-LENGTH ..................
NCB-CALLNAME ...............
NCB NAME.....................
NCB-RTO ......................
NCB-STO .......................
NCB-POST@ ....................
NCB-LANA NUM ..............
NCB-CMD CPLT ...............
NCB-RESERVE ..................

2-14
2-15
2-15
2-16
2-18
2-18
2-19
2-19
2-20
2-20
2-20
2-21
2-21
2-21
2-22
2-22
2-22

Software Description 2-1

NCB Commands .........................
General Commands ....................
RESET ..........................
CANCEL ........................
ADAPTER STATUS ................
UNLINK .........................
Name Support ........................
ADD NAME ......................
ADD GROUP NAME ...............
DELETE NAME ...................
Session Support .......................
CALL ...........................
LISTEN ..........................
HANG UP ........................
SEND ...........................
CHAIN SEND .....................
RECEIVE ........................
RECEIVE ANY ...................
SESSION STATUS .................
Datagram Support .....................
SEND DATAGRAM ................
SEND BROADCAST DATAGRAM ...
RECEIVE DATAGRAM ............
RECEIVE BROADCAST DATAGRAM

2-23
2-25
2-25
2-27
2-29
2-35
2-37
2-38
2-40
2-42
2-44
2-45
2-48
2-52
2-55
2-58
2-61
2-64
2-67
2-70
2-71
2-73
2-75
2-78

Remote Program Load for the IBM PC Network.
RPL Request Format ..................
Sample Programs ......................
Sample Program Set 1 ...............
Sample Program Set 2 ...............
Two Adapter Cards In the Same Personal
Computer ...........................
Adapter Presence Test ...............

2-80
2-80
2-82
2-82
2-85
2-88
2-88

Error Recovery .......................... 2-90

2-2 Software Description

Introduction
The IBM PC Network is a broadband local area
network designed to logically and physically connect
two or more Personal Computers together. The
software on the adapter presents a high level interface
to the programmer eliminating the need to know
network protocol details. This high level interface
improves system performance by off-loading network
programs onto the adapter. Also, this off-loading
feature saves memory because the network programs
are in the adapter's memory and not in the Personal
Computer's memory. Concepts that are designed
within the network are as follows:
•

Peer network-This means that each member is
treated equally and on a first-come, first-served
basis. There is no "host" concept as in
telecommunication operations. There are no
required centralized facilities of any type on the
network other than the Translator Unit. Peers on
the network can be connected with a reliable,
point-to-point connection called a virtual circuit.

•

Names on the network-When each member is
physically connected to the network, a name is
given to represent that peer. The names used can
be general names, such as "John", instead of
specialized names or numbers. Names can also be
clustered into logical groups.

•

Session services-After the names for each peer
are specified, two of the peers communicate with
each other in a mode called a session. Sessions are
very similar to a telecommunication reliable
point-to-point, full-duplex type of connection. For
the IBM PC Network, a session can also be
referred to as a virtual circuit. Once the session is
established, the transfer of data through the
network can begin.

•

Datagram service-The IBMPC Network also
supports messages called datagrams. Datagram

Software Description 2-3

services do not provide a point-to-point
connection. The datagrams are only sent once.
Acknowledgment and retransmissions are the
responsibility of the user.

2-4 Software Description

IBM PC Network Adapter Data
Transfer
This section describes the IBM PC Network Adapter
software. The adapter supports all network and
software protocol functions to assure that messages and
data are sent from one computer to another on the
network. It also provides the mechanism for returning
command status to the Personal Computer following
command execution.
The IBM PC Network adapter supports five layers of
the data transfer protocols. Each layer comprises one
or more protocol services. Each layer communicates
only with the layer immediately above and below it.
This structure allows a modular design of the protocols.
The layers supported by the adapter are as follows:

•

Physical layer

•

Link layer

•

Network layer

•

Transport layer

•

Session layer

The physical layer is implemented using the RF modern
on the adapter and the interface logic to the Intel 82586
Communications Controller. For detailed information
on the physical layer, refer to the Intel 82586 iAPX
manual and refer to Chapter 3 for the RF Modern logic.
The link layer is primarily implemented in hardware by
using the Intel 82586.
The other three layers (network, transport and session)
are implemented using the Intel 80188 processor and
ROMs on the adapter. Also, the layers provide a
reliable virtual connection service, a name support
facility, and a low-overhead datagram service.

Software Description 2-5

The following figure provides a general overview of the
protocol services provided by the Physical, Link,
Network, Transport, and Session layers.

Personal
Computer A

Personal
Computer B

r-----------,

r - - - - - - - - - --1

I

I

I

I

I

I

I

I

I

Adapter A

I
I
I

I
I

I

•

I
I

I
I

I

I

T

Adapter B

l

I

I
I
I
I (Connection II

Transport

•

I

I
I
I

t

T

I

(Packet)

•
•
I

t

Transport
I

t

Network

I

+

I

t
Link

Session

I

I

I

Network

t

I

I

I

I

I (Message) I
I

Session

I

I

I

(Data units)

t
Link

I
I
I
I

I
I
I

I

I
I

Broadband Cable
Network
(Physical)

L __________ _

Figure 2·1.

Adapter Software layers

2-6 Software Description

(Bits)
I
I

Broadband Cable
Network
(Physical)

I
I
I

I
IL ___________ .-II
I

The following description provides a general overview
of the protocol services provided by the Physical, Link,
Network, Transport, and Session layers. Detailed
specifications and standard message formats can be
found in Appendix C of this book.

Physical Layer
The physical layer is implemented in hardware
providing a 2 Mbit per second physical channel on the
broadband network through a single-channel RF
modem. This layer is mostly implemented using the RF
transmit and receive circuits along with the Sytek Serial
Interface Controller (SIC). The RF modem transmits
on one channel and receives on another.

Link Layer
The link layer uses a connection-less oriented link layer
protocol. This link layer protocol is similar in function
to the IEEE 802.3 medium access control protocol.
The link layer is largely responsible for assembling the
bits, transmitted by the network layer or received from
the physical layer, into data units. When the physical
layer has received a transmission of bits from the cable,
it is the responsibility of the link layer to check and
assemble the bits.
When the network layer has a packet to transmit, the
link layer has the responsibility to put the data into the
correct format and detects any errors that might occur.
The data units are further organized by either adding or
removing any necessary start or end bytes. A final
CRC check is performed on the organized bits.

CSMA/CD
One method of regulating transmissions is called a
channel arbitration protocol. One such protocol is

Software Description 2-7

called Carrier Sense, Multiple Access with Collision
Detection or CSMA/CD. CSMA/CD operates in the
following way:
The carrier sense multiple access with collision
detection (CSMA/ CD) technique is used to resolve
contentions and allows the sharing of the common
channel on the broadband cable in an orderly and
equitable manner.

Carrier Sense
•

Each adapter continuously monitors traffic on the
channel, even when transmitting.

Multiple Access
•

Anytime there is a pause on the channel (no one
transmitting), any device can begin transmitting.

•

If only one device begins transmitting during a

pause, that device gains control of the channel and
transmits its messages without interruptions.
•

After that transmission is ended, the channel is
clear again, and all devices waiting to transmit
again contend for the channel.

Collision Detection
•

If two or more devices begin transmitting during

the same pause, their signals collide and the
garbled data is detected by both receivers (collision
detection).
•

When the collision is detected, the devices stop
transmitting and wait for some random time
interval before retransmitting. During the time

2-8 Software Description

interval before retransmitting, any other device can
attempt to transmit over the network, using the
CSMA/ CD protocol.
The IBM PC Network uses the CSMA/ CD method for
all data transmissions on the network.

Network Layer
The network layer has the responsibility of correctly
routing the packets. When a message is passed from
the transport layer, this layer selects the correct routing
convention for the message. The packet is then passed
on to the link layer for processing.
When this layer has received a data unit from the link
layer, the Network layer determines if the packet is a
datagram or if it belongs to a virtual connection and
passes the packet up to the transport layer for further
processing.

Transport Layer
The transport layer primarily has the responsibility of
creating a reliable point-to-point connection between
two adapters on the network. This layer supports data
transmissions and acknowledgments, and handles any
necessary flow control or pacing required to maintain a
reliable virtual circuit. This layer transmits messages
for the session layer using services of the network layer.

Session Layer
The session layer presents the adapter interface to the
network for all Personal Computer programs.
Responsibilities of this layer include establishing a
session using two names in the appropriate name tables
and interpreting commands in the form of a Network
Control Blocks (NCBs). The concept of an adapter
being known by many names is implemented in this
layer.

Software Description 2-9

Chapter 2 outlines the specific interface to this layer.

2-10 Software Description

Programming The IBM PC Network
Adapter
The first section, "IBM PC Network Adapter
Characteristics", describes basic concepts of how to
program your adapter using the IBM PC Network
Adapter Basic Input Output System (BIOS) and its
interface to the IBM Personal Computer. Even though
the network software is composed of many layers, the
BIOS presents one interface to the user program.
When programming the adapter, you should use the
BIOS interface.
The next section, "Network Control Block (NCB)",
describes how to interface your program with the BIOS
by using a collection of fields to form a NCB. Once a
command is presented to the BIOS in the NCB format,
a response is returned to the program in the form of a
return code. These return codes are also described in
this section.
The last section, "Remote Program Load for the IBM
PC Network", describes how to program and setup a
Personal Computer as a program load computer for the
network. The section also has instructions for the
sample programs included with this book.
Before you program, you need to understand some
additional characteristics of the adapter.

IBM PC Network Adapter Characteristics
All of the communication functions from the physical
layer through the session layer are handled on the
adapter.
The BIOS is a software interface between the IBM PC
Network adapter and the Personal Computer programs.
The BIOS places the unique features of a local area
network into a standard format.

Software Description 2-11

IBM PC Network security is not built into the BIOS.
Instead, it is the responsibility of the operating system
or application program to make sure that data or
devices are secure on the IBM PC Network.

Data Transfer
Two basic types of data transfer are supported.
Reliable data transfer is provided by the session layer.
If data is lost or if the line drops, the BIOS will return
an error code.
Data transfer using datagram support goes directly to
the link layer. This type of transfer does not contain
any features such as those found in the session or the
transport layer. The most common use of this type of
data transfer is for broadcast messages.

Name Support
You must communicate on the network by using names.
Each adapter can hold up to 16 selectable names and 1
permanent node name. Each name has a length of 16
characters and all 16 characters are always used in a
name. A permanent name is always present and
consists of 10 bytes of binary zeros followed by the
unique adapter unit ID number. The next 16 names can
be added to the name table.

Using the Network
To use the network you must:
1.

Add your name to the table of names on the
adapter. This is the name that you are known by
on the network. Skip this step if you wish to use
the permanent node name.

2-12 Software Description

2.

Establish a session with another name on the
network. This gives you a logical connection with
another name. The other name can be in your
name table or in a name table of another adapter.

3.

Send and receive messages using that session.

As an alternative to session support, you can use
datagram support.

Software Description 2-13

Network Control Block (NCB)
This section describes how to create an NCB, how to
handle interrupts, and how to recover from error
situations.

Note: The following section assumes that you are
familiar with assembler language and its concepts.
Commands are presented to the BIOS in the form of a
Network Control Block (NCB). The following is the
basic concept and format to present NCB commands to
the BIOS:
1.

Build and fill in all required fields of an NCB.
When you build a new NCB, set all fields to binary
zeros. See section "NCB Field Description" on
page 2-15 for the required fill character for each
field.

2.

Allocate any necessary buffers specified in the
required NCB fields.

3.

Make sure that there are at least 20 bytes of stack
space left for each outstanding NCB command.

4.

Place the address of the NCB in the ES:BX
register pair. Issue a software interrupt to vector
5C hex (i.e. INT 5CH).

5.

Once an NCB is issued, Do Not change or move it
until it has completed.

6.

After the command is processed, control is
returned to the caller. The result of the process is
in either the AL register or the return code field of
the NCB.

2-14 Software Description

NCB Field Description
The following is a list of the NCB fields and the
description of each field. See the following figure for
the correct format of the fields.
Note: An" @" is used to represent the word
"address" in the following list of descriptions.

Network Control Block (NCB) Format
Field Name

Coding and Meaning

NCB

DB OOH

; NCB command
; field

NCB- RETCODE

DB OOH

; NCB return code
; field

NCB- LSN

DB OOH

NCB local session
; number field

NCB

DB OOH

; NCB number of
; your name

NCB_BUFFER@

DO OOOOOOOOH

; NCB pointer to
; message buffer
; address
~ (offset:segment)

NCB

OW OOOOH

; NCB buffer length
; (in bytes)

DB 16DUP(O)

;
;
;
;
;
;
;
;
;

- COMMAND

- NUM

-

LENGTH

NCB- CALLNAME

NCB name on local
or remote adapter.
For CHAIN SEND,
the first 2 bytes
indicates length
of second buffer.
The next 4 bytes
indicates the second
buffer address.

Figure 2-2 (Part 1 of 2). Network Control Block Format

Software Description 2-15

Field Name

Coding and Meaning

NCB

- NAME

DB 16DUP(0)

; NCB name on local
; adapter.

NCB

- RTO

DB OOH

; NCB receive timeout
; value

NCB

- STO

DB OOH

; NCB send timeout
; value

NCB_POST@

DO OOOOOOOOH

; NCB pointer to post
; routine
; (offset:segment)

NCB

DB OOH

;
;
;
;

DB OOH

; NCB command
; status field

DB 14 DUP (0)

; NCB reserved area

- LANA-

NUM
NCB

- CMD-

NCB adapter number
for first adapter.
Use 01 H for second
adapter.

CPLT
NCB

RESERVE

Figure 2-2 (Part 2 of 2) Network Control Block Format

NCB

COMMAND

A 1-byte field for the command code to execute. Each
command can be executed in either a wait or no-wait
mode. If the high order bit is set to 1, the no-wait
option is selected. If the high order bit is is set to 0, the
wait option is selected. The remaining 7 bits are used
to specify the command that you want the adapter to
execute.
For maximum throughput between the IBM PC
Network Adapter and the Personal computer, the
no-wait option is preferable. In addition, the no-wait
option allows multiple commands to be queued for
execution within the adapter.
The programming interface to the IBM PC Network
Adapter BIOS is different depending upon the selection
of the wait/no-wait option. For example; when issuing

2-16 Software Description

the instruction INT 5CH using the wait option, control
is not returned to the next instruction until the adapter
completes the command. When the command does
complete, check either the AL register or the
NCB RETCODE field for the status of the completed
command.
If you choose the no-wait option for the INT 5CH
instruction, you will receive 2 return codes. One code
is returned immediately after you issue the instruction.
The following is a list of the possible return codes that
can be found in the AL register:

Immediate Return Codes
•
•
•
•
•
•
•
•
•

OOH-Good return
03H-Invalid command
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB- LANA- NUM field
24H-Command completed while cancel occurring
26H-Command not valid to cancel
4XH-Unusual network condition
(50-FE)H-Adapter malfunction

If the immediate return code is OOH, a final return code
is posted to the user when the adapter has executed the
command. The posting of the return code can be done
by having the adapter interrupt the user application
program or by the user application program checking
the NCB CMD CPLT field. If the NCB POST@
field is non-zero, the adapter interrupts the user
application program at the address specified in the
NCB POST@ field. If the NCB POST@ field is
zero, the adapter does not interruptthe program and
command completion must be determined by checking
the NCB CMD CPLT field.

When the adapter interrupts the user application
program upon command completion, the final return
code can be obtained from either the AL register or the
NCB RETCODE field. If checking the

Software Description 2-17

NCB CMD CPLT field, a change in value from
FFR(pendingstatus) indicates command completion.
This value represents the final return code. The final
return code varies from command to command.
If the immediate return code is other than OOR, the

adapter cannot execute the requested command and
adapter processing terminates. See "Error Recovery"
on page 2-90 for the definitions and the recommended
actions for each return code.

NCB

RETCODE

A I-byte field indicating the return code of a command.
If the return code is OOR, the operation was successful.

Any other number means that the operation failed or
has not completed. If the no-wait option is used
without being interrupted on command completion, the
NCB CMD CPLT field not the NCB RETCODE
field contains the final return code. Whena command
has not completed, the return code is FFR. See section
"Error Recovery" on page 2-90 in this chapter for the
definitions and the recommended actions for each
return code.
When a command is completed, your routine is
interrupted by the adapter at the post address. You can
choose to check the AL register instead of the return
code field.
Never go into a program loop on the
NCB RETCODE field looking for a command to
comp\ete. Loop on the NCB_CMD_CPLT field for
this purpose.

NCB

LSN

A I-byte field indicating the local session number. This
is the number of the session you have with another
name on the network. This is only valid after a CALL
or LISTEN command has successfully completed. For

2-18 Software Description

SEND and RECEIVE commands under session
support, this field must always be correctly filled in.
For datagram support, the LSN does not apply.
The NCB LSN field is assigned a number in a
round-robin Modulo 254 technique ranging from 1 to
254. OOH and FFH are never returned.
The RESET command uses this field to indicate the
maximum number of sessions supported.

NCB

NUM

A I-byte field indicating the number returned to you
after an ADD NAME, ADD GROUP NAME
command is executed. This number, not the name,
must be used with all datagram support commands and
and for RECEIVE ANY commands.
The NCB NUM field is assigned a number in a
round-robin Modulo 255 technique ranging from 2 to
254. The permanent node name number is always 1.
OOH and FFH are never retuned.
The RESET command uses this field to indicate the
maximum number of command blocks to be supported.

NCB_BUFFER@
Note: An "@" is used to represent the word
"address" in the following list of descriptions.
A 4-byte field indicating a pointer to the buffer you
wish to use with a command. This field is in Define
Double-Word format (offset:segment) and must be a
valid address in memory. See the IBM Macro
Assembler manual for references to define double-word
format (DD).

Software Description 2-19

NCB

LENGTH

A 2-byte field indicating the length, in bytes, of the
data you want transferred.
For a RECEIVE, RECEIVE ANY, ADAPTER
STATUS, SESSION STATUS, RECEIVE
BROADCAST DATAGRAM, and RECEIVE
DATAGRAM command, this field is used and updated
to indicate the number of bytes that are actually
received. For a SEND, CHAIN SEND, SEND
DATAGRAM, and SEND BROADCAST
DATAGRAM command, this field is used to indicate
the number of bytes to be sent.

NCB

CALLNAME

A 16-byte field indicating the name with whom you
want to communicate. All 16 bytes are used. The
name can be either on your adapter or any other
adapter.
For a CHAIN SEND command, the first 6 bytes are
used to specify the second buffer. In these 6 bytes, the
first 2 bytes specify the length and the last 4 bytes
specify the buffer address. These are specified in the
same format as the NCB LENGTH and
NCB BUFFER@ fields.- The remaining bytes in this
field are reserved.

NCB

NAME

A 16-byte field indicating the name that you are known
by on the network. All 16 bytes must always be used.
The table on the adapter can hold up to 16 names. You
are always known by the permanent node name on the
network. The permanent node name is 10 bytes of
binary zeros, followed by 6 bytes returned by the
ADAPTER STATUS command.

2-20 Software Description

NCB

RTO

A I-byte field used by the CALL and LISTEN
commands to specify a time-out period for all
RECEIVES associated with that session. The receive
time-out is the maximum amount of time allowed
before a RECEIVE command returns a time-out error.
The time-out value is specified in increments of 500 ms.
If binary zero (OOH) are specified, the default is no
time out. The time-outs can also be different for each
session, but are fixed once the session is established.

NCB

STO

I-byte field used by the CALL and LISTEN commands
to signify a send time-out. The send time-out is the
maximum amount of time allowed before a SEND
command returns a time-out error. The time-out is
specified in increments of 500 ms. SEND time-outs
should be used with caution because they will always
drop the session if they expire. If binary zero (OOH)
are specified, the default value is no time-out.

NCB_POST@
A 4-byte field indicating the address of the routine that
is to be executed when the adapter has completed
processing a command. This field is used in no-wait
options only. This field is in Define Double-Word
format (offset segment) and must be a valid address in
memory. Your post routine must establish DS and any
other registers you need. Only AL, CS, ES, and BX
registers are set for the NCB being completed. The
post routine is called by the adapter interrupt level with
interrupts masked. To return, issue an IRET. Your
post routine should be short and return immediately,
unless you unmask interrupts.
If the post address is specified as all binary zero, a post

does not occur. This allows a program to do other work

Software Description 2-21

and then loop waiting for·the NCB CMD CPLT
field to see when it changes from FFH. When the
change from FFH occurs, either the command
completed or an error code is returned. Do not check
the NCB RETCODE because it will change before
the command is actually complete. This can be useful
in a BASIC program by using PEEK and POKE.

NCB

LANA

NUM

A I-byte field indicating which adapter you want to
use. A value of OOH directs the command block to the
first IBM PC Network adapter. A value of 0IH directs
the command block to the second IBM PC Network
adapter.

NCB

CMD

CPLT

A I-byte field indicating the command status. A value
of OFFH in this field indicates the command is pending.
A value of OOH means that the command is complete.
Any other value means that the command completed
with an error. See section "Error Recovery" on page
2-90 for a complete description of the error codes.
This byte is only useful if the NCB POST@ was
specified as all zero's and you are using a no-wait
option command. Otherwise, check the
NCB RETCODE field.

NCB

RESERVE

A I4-byte reserved field. This space should be
allocated because the BIOS uses this field to store
temporary variables.

2-22 Software Description

NCB Commands
NCB commands control the adapter on the network.
The commands are divided into four categories:
•

General

•

N arne support

•

Session support

•

Datagram support

Within each category, all of the commands, except for
the RESET and CANCEL commands, are further
divided into wait and no-wait options. The wait option
means that when you issue the command, the processor
waits until the command is completed before returning
to the next instruction. The no-wait option means that
the processor returns immediately after processing the
command and is interrupted at the post address when
the command is completed.
You must fill in either all required parameters or use the
default values for some of the commands in the
Network Control Block (NCB). Command codes and
return codes are represented by hexadecimal values.

Wait Option
When you use the wait option, check either the
NCB RETCODE field or the AL register for the
return code. See Appendix E for multitasking
considerations.

No-Wait Option
When using the no-wait option, the issued command
returns to the next instruction after the INT 5C. The

Software Description 2-23

AL register should be checked for a good return code
OOH. Refer to the description of each command issued
for any other values returned.
If the command was accepted with AL = OOH, an

interrupt will occur when the command is completed.
Either the AL register or the NCB RETCODE may
be checked for the return value. If the command is
accepted but not complete, the NCB RETCODE
field should contain a FFH.
Your program should handle one special case of the
no-wait option. The no-wait post is on an interrupt
level with interrupts masked. It is possible to get the
command complete interrupt before your main routine
has finished processing the accepted command.
Be sure to specify each NCB COMMAND field
correctly or you will receive a 03H return code.

2-24 Software Description

General Commands
General commands are used to enable your adapter on
the network, to read status, or to control other
outstanding commands.

RESET
Reset local adapter status and clear the name and
session tables. This command allows you to change the
number of sessions and NCB command blocks
supported by the adapter. You can specify a value from
1 to 32 for sessions and a value from 1 to 32 for NCB
command blocks. At power-on time, the default values
are 6 sessions and 12 commands. Session and NCB
command blocks take space away from the data buffers
on the adapter and reduce the packet size on the
network. For best performance, only configure the
number of sessions and commands that you actually
need. If the specified values exceed the limits, the
maximum values are used. If binary zeros are specified,
the default values are used.
Once a RESET is completed, the ADAPTER STATUS
command can be used to see the resulting maximum
data packet size allowed by the adapter. Since overall
performance is related to the number of packets sent on
the network, you can choose to optimize your message
size to fit into one packet. If two adapters are reset to
different command and session sizes, the resulting
packet sent on the network will always be the smaller of
the two.
This command does not reset traffic and error statistics.
Only a power-on reset will reset these statistics.
Cmd code

32H-Wait for the command
to be completed.

Fields Required

NCB LSN (Number of
sessions to be supported.)

Software Description 2-25

NCB NUM (Number of
command blocks to be
supported. )
NCB LANA NUM
(Number of theadapter you
want to reset.)
Field Returned

NCB

RETCODE

Return Codes:
Final Return Codes
OOH-Good return
03H-Invalid command
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

2-26 Software Description

CANCEL
This command requests that the command, whose NCB
can be found at the address given by
NCB_BUFFER@, be canceled.
Commands that are not valid to CANCEL are: ADD
NAME, ADD GROUP NAME, DELETE NAME,
SEND DATAGRAM, SEND BROADCAST
DATAGRAM, SESSION STATUS, RESET, and
CANCEL. Use caution when canceling a SEND
command because completing it will always drop the
session.
Cmd Code

35H-Wait for the command
to be completed.

Fields Required

NCB LANA NUM
(Number of theadapter you
want to cancel.)
NCB BUFFER@ (Address
of the NCB you want
canceled.)

Field Returned

NCB

RETCODE

Software Description 2-27

Return Codes:
Final Return Codes
OOH-Good return
03H-Invalid command
23H-Invalid number in NCB - LANA- NUM field
24H-Command completed while cancel occurring
26H-Command not valid to cancel
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

2-28 Software Description

ADAPTER STATUS
Receive adapter status. This command gives the status
information for a local or remote adapter by specifying
the name in the NCB CALLNAME field. If an * is
specified in the first byte of the NCB CALLNAME
field, the information for the local adapter is returned.
This information is placed in the specified buffer
address, NCB BUFFER@, and the length field is
updated to indicate the number of bytes of information
received.
The minimum number of bytes in the status buffer is 60
bytes. The maximum number of bytes required to hold
the status buffer is 348 bytes when 16 names are in use.
In general, 60 + 18 (X) = the number of bytes that are
required, where X is the number of names in use.
Note: A return code of 06H is posted in the
NCB RETCODE field if the receive buffer is not
large enough for the data. The remaining data is
lost at this point.
Cmd code

33H-Wait for the command
to be completed.
B3H-Return immediately and
post when the command is
completed.

Fields Required

NCB_BUFFER@
NCB LENGTH
NCB-CALLNAME (local,
remote, or an * for local)
NCB POST@ (If no-wait
option used)
NCB LANA NUM
(Number of theadapter for the
status.)

Field Returned

NCB

RETCODE

Data that is returned in the data buffer field contains
the following information.

Software Description 2-29

*

Unit identification number-6 bytes

This number is part of the permanent node name. The
unit identification number is represented as follows:
Byte
Byte
Byte
Byte
Byte
Byte

*

0:
1:
2:
3:
4:
5:

Low word, low byte
Low word, high byte
Middle word, low byte
Middle word, high byte
High word, low byte
High word, high byte

External jumper status-l byte

The status of the external jumpers are represented as
follows:
7

6

543

2

1

0

IW21W11xIxIxIxIxIxi
Where:

X = Reserved
W2 = 1 Jumper W2 on adapter
W2 = 0 Jumper W2 off adapter
W1 = 1 Jumper W1 on adapter
W1 = 0 Jumper W1 off adapter

Figure 2-3 Jumper Status Byte

*

Results of last self-test-l byte

See "Power-On Self-Tests (POST)" on page 3-63 for a
description of the tests.

2-30 Software Description

*

Software version-2 bytes

The software version of the protocol layers are
represented as follows:
ByteO:
Byte1:

*

Major version number
Minor version number

Traffic and error statistics-48 bytes

1.

Duration of reporting period (in minutes)-2 bytes
After the counter reaches a value of OFFFFH, it
will roll over to O.

2.

Quantity of CRC errors received-2 bytes After
the counter reaches a value of OFFFFH, they will
not increment further. 1

3.

Quantity of alignment errors received-2 bytes
After the counter reaches a value of OFFFFH, they
will not increment further. 1

4.

Quantity of collisions encountered-2 bytes
After the counter reaches a value of OFFFFH, it
will roll over to O.

5.

Quantity of aborted transmissions-2 bytes A
transmission can be aborted due to excessive
collisions or for some other cause. 1 After the
counter reaches a value of OFFFFH, it will roll
over to O.

6.

Number of successfully transmitted packets-4
bytes After the counter reaches a value of
OFFFFFFFFH, it will roll over to O.

1 This is supplied by the Intel 82586 chip, See the Intel 82586
Reference Manual, "System Control Block" section for further
information.

Software Description 2-31

7.

Number of successfully received packets-4 bytes
After the counter reaches a value of
OFFFFFFFFH, it will roll over to O.

8.

Number of retransmissions-2 bytes After the
counter reaches a value of OFFFFH, it will roll
over to O.

9.

Number of times the receiver exhausted its
resources-2 bytes After the counters reach a
value of OFFFFH, they do not increment further. 1

*

Adapter resource statistics

1.

Reserved for internal use-8 bytes

2.

Free command blocks-2 bytes

3.

Configured maximum NCBs-2 bytes

4.

Maximum number of command blocks free
command blocks-2 bytes

5.

Reserved for internal use-4 bytes

6.

Pending sessions-2 bytes A pending session is
either a CALL-pending, a LISTEN-pending, a
session established, session aborted, HANG
UP-pending, or HANG UP (complete).

7.

Configured maximum pending sessions-2 bytes

8.

Total maximum of possible sessions-2 bytes

9.

Maximum session data packet size-2 bytes

*

Quantity of names in the local name table-2
bytes

2-32 Software Description

*

Local name table-16 entries of 18 bytes each

The first 16 bytes of each entry represent the name,
and the last 2 bytes represent the name status. This
first byte is equal to the name number. The second
byte denotes the status when it is masked with an 87H.
The mask is used to get the most significant bits and the
last 3 bits of the byte. The other bits are reserved and
can have nonzero values.

= Trying to register a name

•

NXXXXOOO

•

NXXXXlOO = A registered name

•

NXXXX101 = A de-registered name

•

NXXXX110 = A detected duplicate name

•

NXXXX111 = A detected duplicate name with
de-register pending
Where:

x = Reserved bit
N = 0 The name is a unique name
N = 1 The name is a group name

Return Codes:
Immediate Return Codes
OOH-Good return
03H-Invalid command
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition

Software Description 2-33

(50-FE)H-Adapter malfunction

Final Return Codes
OOH-Good return
03H-Invalid command
01H-Illegal buffer length
05H-Command timed out
06H-Message incomplete
OBH-Command canceled
19H-Name conflict detected
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

2-34 Software Description

UNLINK
This command is only used with the remote program
load (RPL) feature. The command applies only if a call
to IBMNETBOOT was made at power up time of this
computer. The session with IBMNETBOOT is dropped
when this command is issued. The BIOS also ends the
INT 13 redirect or to the network. For more
information refer to the Remote Program Load section
in this book.
Cmd code

70H-Wait for the command
to be completed.

Fields Required

NCB LANA NUM
(Number of the adapter you
want to unlink.)

Field Returned

NCB

RETCODE

Return Codes:
Immediate Return Codes
OOH-Good return
03H-Invalid command
21H-Interface busy
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction

Software Description 2-35

Final Return Codes
OOH-Good return
03H-Invalid command
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

2-36 Software Description

Name Support
N arne support commands allow your personal computer
to be known by a name on the network. A name can be
a unique name or a group name on the network. The
adapter checks to see if a name is unique on an ADD
NAME and returns an error if anyone else is using the
name you want to add. When using an ADD GROUP
NAME, the same name can be added by many adapters
on the network.
The adapter can have up to 16 names in the local name
table. A permanent node name is always present and
consists of 10 bytes of binary zero followed by the
unique adapter unit ID number. This permanent node
name is also unique on the network. You can find its
value by issuing an ADAPTER STATUS NCB for a
local status by putting an asterisk (*) in the callname
field. Look at the first 6 bytes returned in the buffer
specified. Append this number to 10 bytes of binary
zeros to make a total of 16 bytes for the permanent
node name. This permanent name does not show up as
an entry in the local name table returned by the
ADAPTER STATUS NCB command.
The RESET command deletes all names from the
specified adapter with the exception of the permanent
node name.
Reserved Names
The following names are reserved and cannot be added
or deleted:

* in ASCII or OOH.

•

Any name starting with an

•

It is recommended that you should not use any

name starting with IBM.

Software Description 2-37

ADD NAME
Add a 16-character name to the table of names. The
name you add cannot be used by anyone else on the
network.
When the adapter processes this command, it sends a
broadcast request on the network repeatedly. If no
reply is received, the name is assumed to be unique and
is added to the table of names. The command returns
to you the number of your name in the NCB NUM
field. This number is used in datagram support and for
RECEIVE ANY commands.
Cmd Code

30H-Wait for the command
to be completed.
BOH-Return immediately and
post when the command is
completed.

Fields Required

NCB NAME
NCB-POST@(lfno-wait
option used)
NCB LANA NUM
(Number of the adapter for the
add name.)

Fields Returned

NCB RETCODE
NCB-NUM

Return Codes:
Immediate Return Codes
OOH-Good return
03H-Invalid command
21H-Interface busy
22H-Too many commands outstanding

2-38 Software Description

23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(SO-FE)H-Adapter malfunction

Final Return Codes
OOH-Good return
03H-Invalid command
ODH-Duplicate name in local name table
OEH-Name table is full
ISH-Name not found, cannot specify an
orOOH

*,

I6H-Name in use on remote adapter
I9H-N arne conflict detected
2IH-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(SO-FE)H-Adapter malfunction
Note: The X can be any number.

Software Description 2-39

ADD GROUP NAME
Add a 16-character name to the table of names. The
name you add cannot be used by anyone else on the
network as a unique name but can be added by anyone
as a group name.
When the adapter processes this command, it sends a
broadcast request on the network repeatedly. If no
unique name replies, the name is added. The command
returns to you the number of the name in the
NCB NUM field. This number is used in datagram
support and for RECEIVE ANY commands.
Cmd Code

36H-Wait for the command
to be completed.
B6H-Return immediately and
post when the command is
completed.

Fields Required

NCB NAME
NCB-POST@ (If no-wait
option used)
NCB LANA NUM
(Number of the adapter for the
add group name.)

Fields Returned

NCB
NCB

RETCODE
NUM

Return Codes:
Immediate Return Codes
OOH-Good return
03H-Invalid command
21H-Interface busy
22H-Too many commands outstanding

2-40 Software Description

2SH-Reserved name specified
4XH-Unusual network condition
(SO-FE)H-Adapter malfunction

Final Return Codes
OOH-Good return
03H-Invalid command
ODH-Duplicate name in local name table
OEH-N arne table is full
ISH-Name not found, cannot specify an
orOOH

*,

I6H-Name in use on remote adapter
2IH-Interface busy
22H-Too many commands outstanding
2SH-Reserved name specified
4XH-Unusual network condition
(SO-FE)H-Adapter malfunction
Note: The X can be any number.

Software Description 2-41

DELETE NAME
Delete a 16-character name from the table of names
kept in the adapter. You should use the HANG UP
command before you delete the name. If the name has
active sessions when this command is issued, the name
is flagged as de-registered and the status, "command
completed, name has active sessions" is returned to the
user. The DELETE delays until all sessions associated
with the name are closed or abnormally terminated. If
the name has only pending non-active session
commands when the DELETE NAME command is
issued, the name is removed and the "command
completed" status is returned to the user. The pending
non-active session commands are terminated
immediately with the "name was deleted" status.
Non-active session commands are: LISTEN, RECEIVE
ANY, DATAGRAM RECEIVE, RECEIVE
BROADCAST DATAGRAM.
A name flagged as de-registered continues to occupy an
entry in the local name table until the de-registration is
completed.
Cmd Code

31H-Wait for the command
to be completed.
B1H-Return immediately and
post when the command is
completed.

Fields Required

NCB NAME
NCB-POST@ (If no-wait
optionused)
NCB LANA NUM
(Number of theadapter for the
delete name.)

Field Returned

NCB

Return Codes:

2-42 Software Description

RET CODE

Immediate Return Codes
OOH-Good return
03H-Invalid command
2IH-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB- LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction

Final Return Codes
OOH-Good return
03H-Invalid command
OFH-Command completed, name has active
sessions and is now de-registered
I5H-Name not found, cannot specify an
orOOH

*,

2IH-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

Software Description 2-43

Session Support
Session support commands allow you to establish a
logical connection (session) on the network, send and
receive messages, end sessions, and read session status.
More than one command can be outstanding because
the connection is in two-way simultaneous transmission
mode.
Sessions are established between any two names on the
network. These names can be on your adapter or any
other adapter. Names are used to establish sessions,
but a 1-byte number is used to refer to each session
after they are established. This number is found in the
NCB LSN field that is returned when a session is
established. A maximum of 32 sessions are allowed.
The same name pair can be used to establish more than
one session. The difference between the session pairs
are the different LSN fields. If you create a local
session, two session entries are used instead of one.
One side of the local session has a LSN number
associated with it and the other side has a different
LSN number. To establish a session with yourself,
make the CALLNAME equal to the NAME field.
Session support gives you reliable data transfer and
receipt of a message. Messages can range from
0-65,535 characters in length. The RESET command
aborts all sessions.

2-44 Software Description

CALL
This command opens a session with another name
specified by the NCB CALLNAME field using the
local name specified bythe supplied NCB NAME.
The name that you call must have a LISTEN command
outstanding for the session to be established. You can
establish a session with either a local or a remote name.
Multiple sessions can be established with the same pair
of names. All SEND and RECEIVE commands for this
session will abort if they are unsuccessful after the
specified time-out intervals. The time-out intervals are
specified in 500 millisecond units (a value of zero
means that no time-out will occur). The CALL
command will abort, if unsuccessful after the system
time-out intervals. The system time-out intervals and
retry count are constants in the adapter software.
When the CALL is completed, a local session number
(LSN) is assigned and used thereafter to refer to the
established session.
Local session numbers (NCB LSN) are assigned in a
round-robin technique, starting from the next available
value within the range of 1 to 254.
Cmd Code

lOR-Wait for the command
to be completed.
90R-Return immediately and
post when the command is
completed.

Fields Required

NCB CALLNAME
NCB-NAME
NCB-RTO (Specified in 500
ms increments. If the field is
set to OOR, no receive time-out
occurs.)
NCB_STO (Specified in 500
ms increments. If the field is
set to OOR, no send time-out
occurs.)
NCB POST@ (If no-wait
option used)

Software Description 2-45

NCB LANA NUM
(Number of the adapter you
want to call.)
Fields Returned

NCB RETCODE
NCB-LSN

Return Codes:
Immediate Return Codes
OOH-Good return
03H-Invalid command
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction

Final Return Codes
OOH-Good return
03H-Invalid command
05H-Command timed-out
09H-No resource available
OBH-Command canceled
11 H-Local session table full
12H-Session open rejected
14H-Cannot find name called or no answer

2-46 Software Description

I5H-Name not found, cannot specify an
orOOH

*,

I8H-Session ended abnormally
I9H-N arne conflict detected
IAH-Incompatible remote device
2IH-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB- LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

Software Description 2-47

LISTEN
This command enables a session to be established with
the name specified in the NCB CALLNAME field,
using the name specified by the NCB NAME field. If
the CALLNAME field has a name starting with an * , a
session is established with any network node that issues
a CALL to the local name.
LISTEN for a specific name has priority over a
LISTEN for any name. Sessions can be established
with either a local or a remote name. Multiple sessions
can be established with the same pair of names.
All SEND and RECEIVE commands for this session
abort if they are unsuccessful after the specified
time-out intervals. If a SEND times-out, the session is
abnormally terminated.
The time-out intervals are specified in 500 millisecond
units (a value of zero means that no time-out will
occur). A LISTEN command does not time-out but, a
LISTEN occupies a session entry and is considered a
pending session in information returned on an adapter
status command. Local session numbers (LSN) are
assigned in a round-robin technique starting with the
next available value within the range from 1 to 254.
Also, if an * is used for the called name, the name that
made the call will be returned in the CALLNAME
field.
The error "Name conflict detected" is returned if,
during the completion of a LISTEN command, a unique
name exists in more than one table. All nodes with the
name registered, except for the one where the LISTEN
command has returned successfully, will report the
error "Name conflict detected".
Cmd Code

2-48 Software Description

llH-Wait for the command
to be completed. Use this
carefully because it does not

time out and your program
hangs until the command is
satisfied.
91 H-Return immediately and
post when the command is
completed.
Fields Required

NCB CALLNAME (This
can bespecified in the first
byte as an *. The * is used to
listen for a call from anyone to
your name. If a name is
specified in this field, it takes
priority over a name of * .)
NCB NAME
NCB-RTO (Specified in 500
ms increments. If the field is
set to OOH, no receive time-out
occurs.)
NCB STO (Specified in 500
ms increments. If the field is
set to OOH, no send time-out
occurs.)
NCB POST@ (If no-wait
option used)
NCB LANA NUM
(Number of the adapter you
want to listen.)

Fields Returned

NCB RETCODE
NCB-LSN
NCB-CALLNAME (If listen
any used. Specified with an * .)

Software Description 2-49

Return Codes:
Immediate Return Codes
OOH-Good return
03H-Invalid command
2IH-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction

Final Return Codes
OOH-Good return
03H-Invalid command
09H-No resource available
OBH-Command canceled
llH-Local session table full
I5H-Name not found, cannot specify an
orOOH
I7H-N arne was deleted
I8H-·Session ended abnormally
I9H-Name conflict detected
IAH-Incompatible remote device
2IH-Interface busy

2-50 Software Description

*,

22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

Software Description 2-51

HANG UP
This command closes the session with another name on
the network indicated by the local session number. A
II Good return II status is returned on a normal close and
a "Session closed" status or an illegal local session
number is returned if the session is already closed or
never existed.
When a HANG UP command is received, all pending
local RECEIVE commands are terminated and returned
to the issuer with "Session closed" in the
NCB RETCODE field. The termination is valid
regardless of whether or not any data had been
transferred by the pending command. If a local SEND
command is pending, the HANG UP commands delays
until the SEND is completed or until approximately 20
seconds have elapsed. This delay occurs whether or not
the command has begun to transfer data or is waiting
for the remote computer to issue a RECEIVE
command. The HANG UP is performed if any of the
following conditions occur:
•

The SEND is completed

•

The SEND has aborted

•

The SEND fails because the session was
terminated by the other computer with a HANG
UP.

•

The SEND fails because of the time-out specified
when the session was opened.

If one of the above conditions does not occur within 20

seconds after the HANG UP command is executed, the
HANG UP command is returned with a "Command
timed-out" status and the session is aborted.
When a session closes, all SEND and RECEIVE
commands pending on the closed session are returned
to the issuer with a "Session closed" status. Also, if a
RECEIVE ANY command is pending on the local

2-52 Software Description

name used by the session, it is returned to you with a
"Session closed" status. Only a single RECEIVE ANY
command is returned even though many RECEIVE
ANY commands may be pending. Even though a single
RECEIVE ANY command is returned, many SEND or
RECEIVEs can be returned when pending.
When a session abnormally terminates, all outstanding
commands on that session are returned to the issuer
with a "Session ended abnormally" status.
CmdCode

12H-Wait for the command
to be completed.
92H-Return immediately and
post when the command is
completed.

Fields Required

NCB LSN
NCB-POST@ (If no-wait
option used)
NCB LANA NUM
(Number of the adapter you
want to hang up.)

Field Returned

NCB

RETCODE

Return Codes:
Immediate Return Codes
DOH-Good return
03H-Invalid command
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition

Software Description 2-53

(50-FE)H-Adapter malfunction

Final Return Codes
OOH-Good return
03H-Invalid command
05H-Command time-out
08H-Illegallocal session number
OAH-Session closed
OBH-Command canceled
I8H-Session ended abnormally
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

2-54 Software Description

SEND
This command sends data by the session number
indicated in the local session number (LSN). The data
is taken from the buffer indicated by the
NCB BUFFER @ for the indicated number of bytes.
The buffer is limited to a size starting with 0 and up to
65,535 bytes in length.
When a session is closed by the remote computer, all
SEND commands pending on the closed session are
returned with a "Session closed" status. If a local
HANG UP command is issued with any pending SEND
commands, the HANG UP is delayed until the SEND
commands are completed.
If a session aborts, a "Session ended abnormally" status
is returned. If the SEND time-out expires, the session

is aborted and a "Command timed-out" status is
returned. Time-out values for the SEND are associated
with the session when a CALL or LISTEN was issued
and cannot be specified here.
If more than one SEND is pending, the data is

transmitted in a first-in, first-out (FIFO) order within a
session.
If the SEND cannot complete for any reason, the

session ends abnormally and the session is dropped.
The reason for this is to guarantee data integrity.
SEND commands without corresponding RECEIVEs,
consume resources on the adapter. It is not advisable
to issue many SENDs without corresponding
RECEIVEs.
Cmd Code

14H-Wait for the command
to be completed.
94H-Return immediately and
post when the command is
completed.

Fields Required

NCB

LSN

Software Description 2-55

NCB BUFFER@
NCB-LENGTH
NCB-POST@ (If no-wait
option used)
NCB LANA NUM
(Number of the adapter you
want to send.)
Field returned

NCB

RETCODE

Return Codes:
Immediate Return Codes
OOH-Good return
03H-Invalid command
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB- LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Final Return Codes
OOH-Good return
03H-Invalid command
05H-Command timed-out
08H-Illegallocal session number
OAH-Session closed
OBH-Command canceled

2-56 Software Description

I8H-Session ended abnormally
2IH-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

Software Description 2-57

CHAIN SEND
This command sends data by the session number
indicated in the local session number (LSN). The data
is taken from the buffers for the indicated number of
bytes. Two buffers can be chained together with this
command.
The data in the second buffer is concatenated to the
data in the first buffer and sent as a single message.
The NCB CALLNAME is used to specify the length
and address of the second buffer. The length must be
specified in the first 2 bytes and the second buffer
address is the next four bytes.
When a session is closed by the remote computer, all
CHAIN SEND commands pending on the closed
session will be returned with a "Session closed" status.
If a local HANG UP command is issued with any
pending CHAIN SEND commands, the HANG UP is
delayed until the SEND commands are completed.
If a session abnormally terminates, a "Session ended
abnormally" status is returned. If the CHAIN SEND

time-out expires, the session is aborted and a
"Command timed-out" status is returned. Timeout
values for the SEND are associated with the session
when a CALL or LISTEN is issued.
Messages are limited to a size starting with 0 and up to
65,535 bytes in length.
If more than one CHAIN SEND is pending, the data is

transmitted in a first-in, first-out (FIFO) order within a
session.
Cmd Code

17H-Wait for the command
to be completed.
97H-Return immediately and
post when the command is
completed.

Fields Required

NCB

2-58 Software Description

LSN

NCB BUFFER@
NCB-LENGTH
NCB-CALLNAME (The
formatfor the second buffer is
specified as follows:)
1) NCB LENGTH2
DWQOOOH
2) NCB BUFFER2@
DD OOOOOOOOH
NCB POST@ (If no-wait
optioiiUsed)
NCB LANA NUM
(Number of theadapter you
want to chain send.)
Field returned

NCB

RETCODE

Return Codes:
Immediate Return Codes
OOH-Good return
03H-Invalid command
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Final Return Codes
OOH-Good return
03H-Invalid command
OSH-Command timed-out

Software Description 2-59

08H-Illegallocal session number
OAH-Session closed
OBH-Command canceled
18H-Session ended abnormally
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

2-60 Software Description

RECEIVE
Receive data from a specified session. If more than one
RECEIVE command is outstanding, they are posted
according to the following hierarchy: RECEIVE,
RECEIVE ANY for a specified name, and RECEIVE
ANY for any name. Once the commands are sorted
according to hierarchy, all of the RECEIVE commands
are processed in a first-in, first-out order. Time-out
values for RECEIVE are specified during a CALL or
LISTEN and cannot be specified here.
When a session is closed, either by a local session close
command or by the remote adapter closing the session,
all pending NCBs for that session are returned with a
session closed status.
Note: A return code of 06H is posted in the
NCB RETCODE field if the receive buffer is not
large enough for the message being sent. You can
issue another receive to obtain the rest of the
information before a time-out occurs.
Cmd Code

15H-Wait for the command
to be completed.
95H-Return immediately and
post when the command is
completed.

Fields Required

NCB LSN
NCB_BUFFER@
NCB LENGTH
NCB-POST@ (If no-wait
option used)
NCB LANA NUM
(Number of the adapter you
want to receive.)

Fields Returned

NCB
NCB

RETCODE
LENGTH

Software Description 2-61

Return Codes:

Immediate Return Codes
OOH-Good return
03H-Invalid command
2IH-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(SO-FE)H-Adapter malfunction
Final Return Codes
OOH-Good return
03H-Invalid command
OSH-Command timed-out
06H-Message incomplete
08H-Illegallocal session number
OAH-Session closed
OBH-Command canceled
I8H-Session ended abnormally
2IH-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field

2-62 Software Description

4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

Software Description 2-63

RECEIVE ANY
Receive data from anyone with whom you have a
session. You must use your name number instead of
your name when issuing this command. Your name
number (NCB NUM) was returned when you issued
the ADD NAME or ADD GROUP NAME command.
If more than one RECEIVE command is outstanding,
they are completed in a first-in, first-out (FIFO) order
according to the following hierarchy: RECEIVE,
RECEIVE ANY for a specified name, and RECEIVE
ANY for any name.
If a session is closed by the local or remote computer,
or session aborted, one RECEIVE ANY or RECEIVE
name wiIl be posted with "session closed" or "session
aborted" status regardless of the number of session
receives that can be pending. If a RECEIVE ANY or
RECEIVE name is pending, it is posted as "Session
closed" with the LSN field posting the session that
closed. A RECEIVE ANY with no name specified is
posted only if no RECEIVE ANY name is pending for
the session with that name.

Note: A return code of 06H is posted in the
NCB RETCODE field if the receive buffer is not
large enough for the message being sent. You can
issue another RECEIVE to obtain the rest of the
information.
Application programs should not use a RECEIVE
ANY to any name because this command can
receive messages from other programs running in
the Personal Computer.
Cmd Code

2-64 Software Description

16H-Wait for the command
to be completed. Use this
carefully because it does not
time-out.
96H-Return immediately and
post when the command is
completed.

Fields Required

NCB BUFFER@
NCB-LENGTH
N CB-NUM (If this field =
FFH;tiien receive from any
remote name, that you have a
session with, for any of your
names.)
NCB POST@ (If no-wait
optionused)
NCB LANA NUM
(Number of the adapter you
want to receive for any name.)

Fields Returned

NCB LSN
NCB-RETCODE
NCB-NUM (If FFH is
specified. )
NCB LENGTH

Return Codes:
Immediate Return Codes
OOH-Good return
03H-Invalid command
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction

Final Return Codes
OOH-Good return
03H-Invalid command

Software Description 2-65

06H-Message incomplete
OAH-Session closed
OBH-Command canceled
13H-Illegal name number
17H-N arne deleted
18H-Session ended abnormally
19H-Name conflict detected
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

2-66 Software Description

SESSION STATUS
Receive status of all active sessions for your name.
This command optionally gives the status for all of the
names in the local name table if an * is specified in the
first byte of the NCB NAME field. The minimum
buffer length possibleis' 4 bytes.
Note: A return code of 06H is posted in the
NCB RETCODE field if the receive buffer is not
large enough for the data being sent. The
remaining data is lost at this point.
Cmd Code

34H-Wait for the command
to be completed.
B4H-Return immediately and
post when the command is
completed.

Fields Required

NCB BUFFER@
NCB-LENGTH
NCB-NAME (Specify an *
for alTnames.)
NCB POST@ (If no-wait
option used)
NCB LANA NUM
(Number of the adapter for
session status.)

Fields Returned

NCB RETCODE
NCB-LENGTH

Data areas returned contain the following:
1.

Name number of sessions being reported-l byte

2.

Number of sessions with this name-l byte

3.

Number of RECEIVE DATAGRAM and
RECEIVE BROADCAST DATAGRAM
commands outstanding-l byte

Software Description 2-67

4.

Number of RECEIVE ANY commands
outstanding-l byte

5.

Information that is returned about a session-36
bytes for each session
a.

Local session number-l byte

b.

State of the session-l byte

This byte is represented as follows:
LISTEN pending
CALL pending
Session established
HANG UP pending
HANG UP complete
Session Aborted

OlH
02H
03H
04H
05H
06H

c.

Local name-16 bytes

d.

Remote name-16 bytes

e.

Number of RECEIVE commands
outstanding-l byte

f.

Number of SEND and CHAIN SEND
commands outstanding-l byte

Return Codes:
Immediate Return Codes
OQH-Good return
03H-Invalid command
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field

2-68 Software Description

4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Final Return Codes
OOH-Good return
03H-Invalid command
0lH-Illegal buffer length
06H-Message incomplete
15H-Name not found, cannot specify an
orOOH

*,

19H-N arne conflict detected
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB- LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

Software Description 2-69

Datagram Support
Datagram support commands allow you to send a
message to a name, a group name, or to broadcast a
message to everyone. These commands also allow you
to receive a datagram message from a name, a group
name, or from anyone on the network. Datagram
support differs from session support in several ways.
The message is never acknowledged by the receiver's
adapter, so it is up to the sender and receiver to agree
on their own network protocols. Messages are limited
in size starting with 0, up to 512 bytes in length. If you
specify more than 512 bytes for a RECEIV~
DATAGRAM or RECEIVE BROADCAST you will
only receive the maximum that is allowed for a SEND
DATAGRAM or SEND BROADCAST.
Datagrams are smaller than session SENDs and require
additional protocol interaction for reliable data
transmissions. For reliable transmissions, sessions
should always be used.

2-70

Softw~re

Description

SEND DATAGRAM
Send datagram to a unique name or group name for
receipt at a local node or remote node.
Cmd Code

20H-Wait for the command
to be completed.
AOH-Return immediately
and post when the command is
completed.

Fields Required

NCB_BUFFER@
NCB LENGTH
NCB-NUM
NCB-CALLNAME
NCB-POST@ (If no-wait
option used)
NCB LANA NUM
(Number of the adapter for the
send datagram.)

Field Returned

NCB

RETCODE

Return Codes:
Immediate Return Codes
OOH-Good return
03H-Invalid command
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction

Software Description 2-71

Final Return Codes
OOH-Good return
03H-Invalid command
0lH-Illegal buffer length
13H-Illegal name number
I9H-N arne conflict detected
2IH-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

2-72 Software Description

SEND BROADCAST DATAGRAM
Send a message to everyone who has a RECEIVE
BROADCAST DATAGRAM command outstanding.
If the remote adapter does not have a RECEIVE
BROADCAST DATAGRAM outstanding, it does not
get the message. If a computer issues a SEND
BROADCAST DATAGRAM and the computer has a
RECEIVE BROADCAST DATAGRAM command
outstanding, the adapter receives its own message. If
the adapter has several broadcast messages pending the
next SEND BROADCAST command issued satisfies all
RECEIVE BROADCAST commands.
Cmd Code

22H-Wait for the command
to be completed.
A2H-Return immediately
and post when the command is
completed.

Fields Required

NCB BUFFER@
NCB-LENGTH
NCB-NUM
NCB-POST@ (If no-wait
option used)
NCB LANA NUM
(Number of theadapter for the
send broadcast datagram.)

Field Returned

NCB

RETCODE

Return Codes:
Immediate Return Codes
OOH-Good return
03H-Invalid command
21H-Interface busy
22H-Too many commands outstanding

Software Description 2-73

23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction

Final Return Codes
OOH-Good return
03H-Invalid command
OlH-Illegal buffer length
13H-Illegal name number
19H-Name conflict detected
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

2-74 Software Description

RECEIVE DATAGRAM
Receive a datagram message from any name or anyone
on the network directed to you. There is no time-out
associated with this command. If you do not have a
RECEIVE DATAGRAM command outstanding at the
time a SEND DATAGRAM is issued, you will lose
data.
This command does not receive a broadcast datagram
but will receive a group name.
Note: A return code of 06H is posted in the
NCB RETCODE field if the receive buffer is not
large enough for the data being sent. The
remaining data is lost at this point.
Cmd Code

2lH-Wait for the command
to be completed. Use with
care since all processing halts
until the datagram is received.
AIH-Return immediately
and post when the command is
completed.

Fields Required

NCB BUFFER@
NCB-LENGTH
NCB-NUM (If this field =
FFH;tiien receive a datagram
from any other name for any
of your names.)
NCB POST@ (If no-wait
option used)
NCB LANA NUM
(Number of the adapter for the
receive datagram.)

Fields Returned

NCB RETCODE
NCB-LENGTH
NCB-CALLNAME

Software Description 2-75

Return Codes:

Immediate Return Codes

OOH-Good return
03H-Invalid command
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction

2-76 Software Description

Final Return Codes
OOH-Good return
03H-Invalid command
06H-Message incomplete
OBH-Command canceled
13H-Illegal name number
17H-Name deleted
19H-Name conflict detected
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

Software Description 2-77

RECEIVE BROADCAST DATAGRAM
Receive a message from anyone who issues a SEND
BROADCAST DATAGRAM command. There is no
time-out for this command.
Note: A return code of 06H is posted in the
NCB RETCODE field if the receive buffer is not
large enough for the data being sent. The
remainder of the data is lost.
Cmd Code

23H-Wait for the command
to be completed. Use with
care since all processing halts
until the datagram is received.
A3H-Return immediately
and post when the command is
completed.

Fields Required

NCB_BUFFER@
NCB LENGTH
NCB-NUM
NCB-POST@ (If no-wait
option used)
NCB LANA NUM
(Number of the adapter for the
receive broadcast datagram.)

Fields Returned

NCB RETCODE
NCB-LENGTH
NCB-CALLNAME

Return Codes:
Immediate Return Codes
OOH-Good return
03H-Invalid command
21H-Interface busy

2-78 Software Description

22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction

Final Return Codes
OOH-Good return
03H-Invalid command
06H-Message incomplete
OBH-Command canceled
13H-Illegal name number
17H-N ame deleted
19H-N ame conflict detected
21H-Interface busy
22H-Too many commands outstanding
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
Note: The X can be any number.

Software Description 2-79

Remote Program Load for the IBM PC
Network
To remotely load an IBM Personal Computer on the
IBM PC Network you must have a program written to
service the Remote Program Load (RPL) request issued
by the adapter and an IBM PC Network adapter that
has jumper WI removed. See "Configurable Hardware
Options" on page 3-70 for a detailed description of the
jumper settings. Included on the diskette are sample
programs that can be used to service the remote
program load request. See "Sample Programs" on page
2-82 for a description of the sample programs.
The BIOS on the IBM PC Network Adapter provides
the capability to load a computer from the IBM PC
Network. The IBM PC Network BIOS redirects the
initial diskette read requests to the network if there are
no other drives enabled and the RPL jumper on the
adapter is removed. The boot request goes to a special
IBM name on the network called IBMNETBOOT. The
IBMNETBOOT name must be active and it must
handle the RPL requests from remote IBM Personal
Computers. This function does not depend on the
operating system and can operate with any operating
system that uses RPL during bootstrap. The only
restriction is that the operating system must use only
INT 13 requests and not try to use the diskette
hardware directly.

RPL Request Format
If there are no drives ready on the Personal Computer

and the RPL jumper is removed, the following requests
are issued:
1.

The BIOS issues a RESET command to allow the
maximum number of sessions and commands.

2-80 Software Description

2.

A CALL to IBMNETBOOT is issued by the BIOS.
If this step fails, the computer will come up in

ROM BASIC.
3.

If the call to IBMNETBIOS succeeds, the BIOS

sends an II-byte message to IBMNETBOOT with
the following format:

Start

End

I I I I BX ICarry flagl

lAX CX DX ES

Figure 2-4 Boot Record Format

Note: The BIOS intercepts and reformats all
INT 13 requests to the system. When the
reformatting is done, the above format is used
to send the information to IBMNETBOOT.
The BIOS will then issue a RECEIVE for an II-byte
reply message.
4.

In order to issue the request on the network, the
BIOS uses lK of RAM from the highest memory
address. This lK memory location is assigned
using the memory size word from the ROM BIOS
data area during power-up.

5.

After the above steps are finished, every INT 13
request is sent to IBMNETBOOT. If the request is
a Read, a RECEIVE is issued for an II-byte
header plus the data. For a Write request,
II-bytes plus data are sent.

6.

The following INT 13 requests are not sent by the
BIOS:
•

All format requests (diskette and fixed disk)

•

Read long (fixed disk)

Software Description 2-81

7.

The INT 13 redirection to the network can be
turned off by using the UNLINK command. This
will allow a program to use other forms of a drive
redirection to the network.

Sample Programs
Two sets of sample programs are included on the
diskette in this book. The first sample is a listing with a
simple example of how to use the BIOS. The second
set of programs is an example of a working network
using the BIOS and the remote program load features
of the adapter.

Sample Program Set 1
This example uses two files on the Network Sample
Program diskette in the back of this book. Print out the
files CALL.LST and LISTEN.LST with the DOS
TYPE command and refer to the following description
of the programs.
To get started:
•

You do not need to issue a RESET command if the
default parameters are acceptable.

•

Create an NCB with your name in the name field
and issue an ADD NAME command. All other
fields should be zero.

•

Call NETBIOS by issuing an INT 5C.

To send data to someone using sessions:
•

Create a CALL NCB inserting binary zeros in all
unused fields.

•

Issue INT 5C.

2-82 Software Description

•

Check the return code in the AL register when the
command is finished.

•

You can use the old CALL NCB, change the
command to SEND and then fill in the correct
fields. Wait or no-wait options can be used.

•

Point the NCB buffer address (offset:segment) to
the data you wish to send.

•

Issue INT 5 C

•

When you are finished sending data, issue a
HANG UP command.

To receive data, using the no-wait option, from someone
who calls you:
•

Issue a LISTEN NCB using the no-wait option.

•

When someone calls you, the post address in the
NCB is your starting address. You will be
executing on an interrupt level with interrupts
masked.

•

After you are called, issue a RECEIVE command
to the name of the caller and obtain data. Either
wait or no-wait options can be used.

•

A RECEIVE ANY command can also be used to
obtain data from anyone you have a session with.

To receive status about active sessions, adapter status, or
errors:
Issue either a session status or adapter status NCB
request.
To broadcast a message:
Issue a SEND BROADCAST DATAGRAM command
NCB

Software Description 2-83

To Receive a Broadcast message:

•

Issue a RECEIVE BROADCAST NCB.

•

A RECEIVE BROADCAST command must be
outstanding or the message is lost.

2-84 Software Description

Sample Program Set 2
This set of programs is an example of a working
network using the remote program load (RPL) feature
on the adapter. These programs are only intended to be
examples and may not work in all environments or
operating systems. The intent of this example is to
allow a programmer to learn more about the network
and the BIOS.
Before you begin, the environment needs to be defined.
The following lists is the equipment needed to perform
the example network:
•

One Personal Computer with l28K, a fixed disk,
and an IBM PC Network Adapter. This computer
is used as a dedicated computer to serve the
network. When this computer is properly
configured, it is known on the network as the
Server computer.

•

At least one Personal Computer with 64K and with
an IBM PC Network Adapter. These computers
can be any configuration. Also, each IBM PC
Network Adapter must have jumper Wl removed
to enable the RPL feature. See "Configurable
Hardware Options" on page 3-70 for the location
of the Wl jumper.

•

An IBM PC Network Translator Unit.

•

IBM PC Network cable.

•

DOS 3.0 diskettes.

•

Blank diskettes.

Getting Started
Once the network hardware is set up, the following
steps will help you configure the software for the
example:

Software Description 2-85

1.

Start with the Server computer. Install the IBM
PC Network Adapter in this computer.

2.

Using the DOS 3.0 Make Directory command
(MD), create a directory called IMAGES in the
root directory of the fixed disk.

3.

Use the DOS COPY command to copy the
programs IMGUTIL.COM and RPLS.EXE from
the sample program diskette to the IMAGES
directory.

4.

At the C> prompt, format adiskette and copy the
system onto it. Copy the programs MUSIC.BAS
and BASIC. COM from the DOS 3.0 diskettes onto
this diskette.

5.

Type CD \ IMAGES at the C> prompt.

6.

At the C> prompt, type IMGUTIL. This program
creates an image of a diskette on the fixed disk.
The entire diskette is copied, so be sure there is
enough room on the fixed disk for the images you
want to store.

7.

The image utility prompts you for the name you
want the image to have. At this prompt, type
MUSIC. Insert into drive A the diskette you
created from the previous step. Now you have an
image called MUSIC on the Server's fixed disk.
This image contains the directory of the diskette,
including any programs, data, and free space that
was on the diskette.

8.

After the program has copied the diskette to the
Server computer's fixed disk, type RPLS at the C>
prompt. Now the Server computer is dedicated to
serve each computer loading from the network.

9.

For the other computers in the network, install an
IBM PC Network Adapter in each with jumper WI
removed. See "Configurable Hardware Options"
on page 3-70 for information about the jumpers.

2-86 Software Description

10. Now switch one of the remote computers on the
network ON. If the jumper WI is removed, the
computer will try to load in the following order:
a.
b.
c.
d.

From the diskette
From the fixed disk (if available)
From the network
From ROM BASIC

11. When operating correctly, the remote computer
should display the word MUSIC at the top of the
screen. If you created other images on the Server's
fixed disk, these images would also be displayed on
the screen. These images are on the Server's fixed
disk and can be used as if the files were on your A:
drive. For example, if one of the images displayed
was called NETWORK, you could use the DOS
DIR command and display the directory of that
image.
12. You should have the A> prompt on the bottom of
the screen. Type DIR MUSIC at the A> prompt.
You should see the contents of the image you just
selected.
If you want to copy more diskette images onto the

Server's fixed disk, repeat step 4 for each diskette you
create. Each diskette must have DOS copied onto it in
order for the program to work. The maximum number
of images you can store on the Server's fixed disk is 6.
The above set of programs is an example of how the
network uses the RPL feature, so these programs must
be used with caution. You can have errors when two or
more computers are trying to write to the same image at
the same time because there is no protection built into
the sample program.

Software Description 2-87

Two Adapter Cards In the Same Personal
Computer
You can install two IBM PC Network adapters in the
same Personal Computer. The second adapter must be
set so the BIOS knows which adapter is the second
adapter. Jumper positions are identified in Chapter 3,
"Configurable Hardware Options" on page 3-70.
Whenever you issue an NCB, the NCB LANA
NUM field must be OOH to "talk" to thefirst adapter.
See "NCB Field Description" on page 2-15 for a
description of the NCB LANA NUM field. Use
01H to "talk" to the second adapter.

Adapter Presence Test
A test can be issued in software to check for a working
adapter in a computer. The following is the method to
check for an adapter.

Test Method
1.

Check interrupt vector 5C.

2.

If the location contains all binary zeros, an adapter

is not present in the computer.
3.

If the location contains a value other than all

binary zeros, issue either command 7FH or FFH.
4.

If a code of 03H is returned, the adapter is present.

5.

If a code other than 03H is returned, check the list

below to see if the code returned is one of the
following to make sure that the adapter is present.

2-88 Software Description

a.
b.
c.
d.
e.

OOH-Good return
23H-Invalid number in NCB - LANA- NUM field
4XH-Unusual network condition
(50-FE)H-Adapter malfunction
FFH-Command pending status

Note: The X can be any number.

Software Description 2-89

Error Recovery
The following table lists the return codes and
recommended actions.

Hex
Val

Return Code
Name

Return Code
Meaning

Recommended
Actions

OOH

Good return

Command
complete

No action required.
This is normal after
each successful
command.

01H

Illegal buffer length
for SEND
DATAGRAM,
SEND
BROADCAST,
ADAPTER
STATUS, or
SESSION
STATUS.

ASEND
BROADCAST or
SEND
DATAGRAM
cannot send more
than 512 bytes.
For ADAPTER and
SESSION
STATUS, the
buffer length
specified was less
than the minimum
required.

Specify the correct
size for the buffer
and try again.

03H

Invalid command

The command
code used was
incorrect.

Reissue the correct
command code.

Figure 2-5 (Part 1 of 7). Return Codes and Recommended
Actions

2-90 Software Description

Hex
Val

Return Code
Name

Return Code
Meaning

Recommended
Actions

OSH

Command
timed-out

The return code
field has following
meanings: 1)FOr a
CALL or for
2)ADAPTER
STATUS, the
system time-out
period has elapsed.
3)For a SEND or
for 4)RECEIVE, the
time-out period
specified for the
CALL or LISTEN
has elapsed. 5)For
a HANG UP, the
time-out period
has expired for an
outstanding SEND
to complete.

1)For a CALL, try
again later. 2)For an
ADAPTER STATUS,
make sure you are
using a correct
name. 3)For a
SEND, the session
has been terminated
abnormally.
Establish another
session and reissue
a SEND. 4)For a
RECEIVE, reissue
the command. 5)For
a HANG UP the
session has been
terminated
abnormally.

06H

Message
incomplete

You received part
of a message
because your
specified buffer
length is not big
enough to receive
the full message.

You must reissue
another RECEIYE or
RECEIVE ANY
command to get the
rest of the message
before the remote
computer times-out.
For ADAPTER
STATUS; SESSION
STATUS, RECEIVE
DATAGRAM, and
RECEIVE
BROADCAST
DATAGRAM, the
remaining data is
lost.

Figure 2-5 (Part 2 of 7). Return Codes and Recommended
Actions

Software Description 2-91

Hex
Val

Return Code
Name

Return Code
Meaning

Recommended
Actions

OSH

Illegal local session
number

The session
number you
specified is not one
of the active
sessions.

Specify an active
session number
when you issue a
command.

09H

No resource
available

Not enough space
available in the
adapter for the
session.

Reissue the
command at a later
time.

OAH

Session closed

The session has
been closed from
either the local or
remote computer.

No action is
required. This is
notification for a
pending SEND or
RECEIVE command
that the session has
been closed. For a
HANG UP, the
session was closed
by the remote
computer.

OSH

Command
canceled

Notification
received that the
command was
canceled. If the
command that was
canceled was a
SEND or a CHAIN
SEND,the session
is abnormally
terminated.

No action is
required.

OOH

Duplicate name in
local name table

You tried to specify
a name that is
already in the local
name table.

Specify another
name.

OEH

Name table full

Up to 16 names
have already been
added.

Wait until a delete
name is issued so an
entry will become
available.

Figure 2-5 (Part 3 of 7). Return Codes and Recommended
Actions

2-92 Software Description

Hex
Val

Return Code
Name

Return Code
Meaning

Recommended
Actions

OFH

Command
completed, name
has active sessions
and is now
de-registered.

The name to be
deleted is active in
a session now, but
is de-registered.
When the name is
marked
de-registered and
has active
sessions, it still
occupies a slot in
the table. Name is
unusable.

Close all sessions
using this name for
the DELETE
command to
complete.

11H

Local session table
full

There are no
available entries in
the session table.
(The number of
sessions for a table
is user- specified.)

1) Wait until a
session has closed
so an entry becomes
available. 2) Refer to
the RESET
command to alter
values.

12H

Session open
rejected

No LISTEN
command is
outstanding on the
remote computer.

Wait until a LISTEN
is issued on the
remote computer.

13H

Illegal name
number

Invalid name
number.

You must use the
original name
number that was
assigned to the
name.

14H

Cannot find name
called or no answer

The call name
specified cannot be
found or did not
answer.

Verify that the call
name used is
correct. Retry with
the correct or a
different call name
or reissue if the
remote computer is
busy.

Figure 2-5 (Part 4 of 7). Return Codes and Recommended
Actions

Software Description 2-93

Hex
Val

Return Code
Name

Return Code
Meaning

Recommended
Actions

15H

Name not found,
cannot specify * ,
or OOH.

Either the name
you specified was
not in the table or
you specified an
asterisk in column
1 of the name field
or you specified
OOH.

An asterisk or OOH in
column 1 is not
allowed. Retry with
another name and
verify that it is the
correct name.

16H

Name in use on
remote adapter.

Unique riames can
only be used once
on the network.

Specify another
name.

17H

Name deleted

This occurs when a
name is deleted
and there are no
outstanding
LISTEN, RECEIVE
ANY, RECEIVE
DATAG RAM, or
RECEIVE
BROADCAST
DATAGRAM
commands for that
name.

No action required.

18H

Session ended
abnormally

Either the remote
computer is
powered off, the
cable link is
broken, the session
SEND or CHAIN
SEND has
timed-out, or the
SEND or CHAIN
SEND was
canceled, or a
HANG UP
timed-out waiting
for a SEND to
complete.

1) Check the remote
end for status and
check the cable.
2) For a SEND or
CHAIN SEND, or
RECEIVE or
RECEIVE ANY,
reestablish the
session.

Figure 2-5 (Part 5 of 7). Return Codes and Recommended
Actions

2-94 Software Description

Hex
Val

Return Code
Name

Return Code
Meaning

Recommended
Actions

19H

Name conflict
detected

Network protocol
has detected two
or more identical
names on the
network.

Everyone on the
network should
delete that name
immediately.

1AH

Incompatible
remote device

Unexpected
protocol packet
received.

Verify that all units
on the network
agree with the
network protocols.

21H

Interface busy

You called the
BIOS out of an
interrupt handler
routine in process.

Return from the
interrupt handler and
try again later.

22H

Too many
commands
outstanding

The maximum
number of
commands are
outstanding.

If not at maximum
number, refer to
RESET. If at
maximum number,
retry at a later time.

23H

Invalid number in
NCB LANA
NUM field.

You tried to specify
a number other
than OOH or 01 H.

Specify either OOH
for the first adapter
or 01 H if you have
and want to use the
second adapter.
Correct the number
and try again.

24H

Command
completed while
cancel occurring

You tried to cancel
a command that
already completed,
or never existed.

No action required.

26H

Command not valid
to cancel

You tried to cancel
a command that is
invalid to cancel.

See CANCEL
command for the list
of commands not
valid to cancel.

Figure 2-5 (Part 6 of 7). Return Codes and Recommended
Actions

Software Description 2-95

Hex
Val

Return Code
Name

Return Code
Meaning

Recommended
Actions

4XH

Unusual network
condition Note:
The X can be any
Hex value.

The BIOS has
detected an
unusual condition
in the network.

Either retry or reset
the command. If the
error is displayed
again, refer to your

IBM Guide to
Operations for the
appropriate action.

50FEH

FFH

Adapter
malfunction

The adapter has
detected an
internal problem.

Retry the operation.
If you receive the
code again, contact
your authorized
dealer.

Command pending
status

The command is
still pending.

No action is
required. See
NCB_POST@ and
NCB
- RETCODE
for descri ption of
this return code.

Figure 2-5 (Part 7 of 7) Return Codes and Recommended
Actions

2-96 Software Description

Notes:

Software Description 2-97

Notes:

2-98 Software Description

Chapter 3. IBM PC Network Hardware
Description

Contents
Introduction

3-5

IBM PC Network Adapter ................... 3-6
Digital Section ......................... 3-8
The 80188 Microprocessor ............ 3-8
Personal Computer Interface Circuits .... 3-9
RF Modern Interface Circuits .......... 3-9
Adapter RAMs .................... 3-10
Adapter ROMs and PROM ........... 3-10
IBM PC Network Adapter Characteristics .. 3-10
Data Transfer ..................... 3-11
DMA Operations ................... 3-11
Interrupt Structure .................... 3-12
Host Interrupts .................... 3-13
Adapter Interrupts .................. 3-16
Summary ......................... 3 -18
Adapter Initialization ................ 3-19
Programming Interface ................. 3-20
Interface Protocol .................. 3-20
Host Sends a Command Block to the
Adapter .......................... 3-21
Adapter Asks Host To Transfer Message
Data ............................. 3-22
Adapter Asks Host To Accept Updated
Command Block ................... 3-24
Interface Control ...................... 3-25
Data Transfer ..................... 3-28
Status Register (SR) ................ 3-29
Parameter Register (PR) ............. 3-32
Data Register (DR) ................. 3-33
Host Interface Register (HIR) ......... 3-34
Adapter Interface Register (AIR) ...... 3-37
Primary Commands .................... 3-39

Hardware Description 3-1

Host-Initiated Commands ...............
Transfer Command Block to Adapter ...
Abort Secondary Command .... . . . . . ..
Reconfigure Adapter ................
Adapter-Initiated Commands ............
Initialization Complete ..............
Transfer Data To Host ...............
Transfer Command Block To Host .....
Transfer Data To Adapter ............
Error Report To Host ...............
Modem Interface Section ...............
Communications Controller Section .......
CSMA/CD Technique .................
RF Modem Section ....................
Transmitter Description ..............
Transmitter Characteristics ...........
Receiver Description ................
Receiver Characteristics .............
Adapter Interface Signals ...............
Power-On Self-Tests (POST) ............
Operational Self-Test ................
Configurable Hardware Options ..........
Traffic And Error Statistics ..............
Specliications ........................
Electrical Power Requirements ........
Environmental Specifications ...... . . ..

3-42
3-42
3-43
3-43
3-44
3-44
3-44
3-45
3-46
3-46
3-47
3-48
3-48
3-50
3-51
3-53
3-56
3-58
3-61
3-63
3-69
3-70
3-72
3-73
3-73
3-73

IBM Translator Unit ......................
Device Description .... . . . . . . . . . . . . ..
Functional Description .................
Input/Output Circuits ...............
Reception Circuits ..................
Local Oscillator Circuits .............
Transmission Circuits ...............

3-74
3 -74
3-74
3-76
3-76
3-77
3-77

The IBM PC Network Cable System .......••.
Cable System Components ..............
Connection Hardware ..................
Electrical Specifications ..............
Base Expander .......................
Electrical Specifications ..............
Short Distance Kit .....................
Electrical Specifications ..............

3-79
3-79
3-82
3-83
3-84
3-85
3-86
3-87

3-2 Hardware Description

Medium Distance Kit .................. 3-88
Electrical Specifications .............. 3-90
Long Distance Kit ..................... 3-91
Electrical Specifications .............. 3-93
IBM Coaxial Cable .................... 3-94
Cable Characteristics ................ 3-94
Electrical Specifications .............. 3-95
Cable Network Specifications ............ 3-96
Electrical Specifications ............. 3 -1 00

Hardware Description 3-3

3-4 Hardware Description

Introduction
This chapter provides a description of each of the
components that make up the IBM PC Network. The
IBM PC Network Adapter connects a Personal
Computer to a broadband local area network. The IBM
PC Network Translator Unit is used by all of the
Personal Computers to communicate with each other.
The Translator Unit also has connection hardware for
up to eight Personal Computers. Up to 72 nodes within
a 1000 foot radius are supported by using the IBM
Translator Unit and the IBM cable kits.
The IBM PC Network Coaxial Cable system is also
detailed in this chapter.

Hardware Description 3-5

IBM PC Network Adapter
The adapter plugs into one of the I/O slots within the
Personal Computer. All required network signals and
protocols are controlled by the adapter.
The adapter has two major sections, Digital and RF
Modem. The following block diagram shows how the
internal data path is structured within the adapter.

3-6 Hardware Description

Intel

Intel 82586

80188

Communications

Microprocessor

Controller

32 x 8
ID ROM

16K x 8
Data
RAM

32Kx8
Adapter
ROM

A
d
a
p
t
e
r
D
a
t
a
B
u
s

a
n
d
Sytek
SIC
B
u
s

RF
Modem

PC Interface
Controller
HIC

8Kx8
BIOS
ROM

Figure 3-1 Functional Block Diagram

Hardware Description 3-7

Digital Section
This section consists of the following components:
•

Intel 80188 microprocessor

•

Personal Computer / Host Interface Controller
(HIC)

•

Intel 82586 Local Communications Controller
(LCC)

•

Sytek Serial Interface Controller (SIC)

•

A 16K x 8 of Data RAM

•

A 32K x 8 Adapter ROM

•

A 32 x 8 ID PROM

•

An 8K x 8 BIOS ROM

(K = 1024 bytes)
All components in this section are connected within the
adapter by an 8-bit wide internal data bus except the
8K x 8 BIOS ROM. The 8K x 8 ROM is directly
accessed through the HIC.

The 80188 Microprocessor
The 80188 contains two independent direct memory
access (DMA) channels, programmable timers, a
programmable interrupt controller, and bus interface
logic on a single integrated circuit. Additional
information may be obtained in the publications listed
in the bibliography. Communication between the
Personal Computer and the adapter logic is
accomplished through the Personal Computer / Host
Interface Controller (HIC).

3-8 Hardware Description

The microprocessor uses one of the two DMA channels
to transfer data between the Personal Computer's
interface registers and the local buffer memory. The
microprocessor accepts four external peripheral
interrupt requests. Two of these interrupts come from
the Personal Computer interface. Another interrupt
comes from the Sytek Serial Interface Controller (SIC)
and the other is from the Intel 82586 (LCC). The
interrupt priority scheme is programmable, but is fixed
by the adapter's microcode.
The 80188 provides three memory select signals to
select three different ROM/RAM devices. Also, there
are three peripheral select signals to select the local
communication controller, the Personal Computer HIC,
or the Sytek SIC.

Personal Computer Interface Circuits
The Personal Computer interface circuit comprises the
HIC and several TTL bus transceivers and drivers. It
allows the IBM PC Network Adapter to appear as an
array of I/O address spaces in the Personal Computer.
These circuits contain a set of interface registers and
necessary control logic to transfer commands and data
between the Personal Computer memory and the local
buffer memory.

RF Modem Interface Circuits
The Sytek Serial Interface Controller (SIC) and the
82586 (LCC) comprise the interface to the RF Modem
portion of the IBM PC Network Adapter. Together,
they interface data and commands from the parallel
internal data bus to the serial network. They also
implement the link layer protocols required by the
network. Additional information on the 82586 can be
obtained in the publications listed in the bibliography.

Hardware Description 3-9

Adapter RAMs
The IBM PC Network Adapter uses 16K x 8 of RAM
as its buffer memory. This is dynamic RAM and the
circuitry on the adapter does the refresh operation. The
circuitry is controlled by a programmable timer in the
80188.
This memory is used for the IBM PC Network
Adapter's internal scratch memory, stacks, protocol
control, and for buffering transient data to and from
the Personal Computer interface registers.

Adapter ROMs and PROM
The BIOS ROM is located on the adapter in a single
24-pin, 8K x 8 bit integrated circuit. It is an extension
of the Personal Computer's software for network
support. It can be accessed by the Personal Computer
and can be disabled by removing jumper W8 on the
adapter. See "Configurable Hardware Options" on
page 3-70 for a description of the jumper positions.
The ROM has separate output control and enable
control lines. Whenever an access is made to the
adapter BIOS by the Personal Computer, this ROM is
selected by the control lines.
The 32K x 8 Adapter ROM contains program and
protocol information for the 80188 microprocessor.
The 32 x 8 ID PROM contains information about the
adapter's ID. This number is the network node address
of the adapter and is unique for each adapter. The
address is also referred to as the permanent node name.

IBM PC Network Adapter Characteristics
The following paragraphs describe the characteristics of
the IBM PC Network Adapter. These characteristics
also apply to many different types of Personal

3-10 Hardware Description

Computers that can have an IBM PC Network Adapter
installed. The following paragraphs refer to this as
either a "host" or a "host computer", meaning any
Personal Computer with an IBM PC Network Adapter
installed.

Data Transfer
The fundamental software interface between a host's
processor and the IBM PC Network Adapter's
processor is provided by a set of interface registers in
the HIC. One of the interface registers is the data
register, a bidirectional, 2-byte FIFO register. The data
register holds data to be transferred between a host and
the IBM PC Network Adapter. The data register is
readable and writable by both the host and the adapter.
Specific operations being performed determine which
processor reads and which processor writes.
There are three basic methods to transfer data through
the data register from host memory to adapter memory.
Note that the transfer of data from adapter to host is
analogous to the transfer of data in the opposite
direction. Both the host processor and the adapter
processor can choose to use any of these three methods
independently. The three methods are:
•

Polled I/O

•

Interrupt I/O

•

DMA transfers

DMA Operations
For best performance, the primary method for
transferring data between the host and adapter is
accomplished by DMA operations. There are two
separate DMA controllers that can access this interface.
The host DMA controller is used for transferring data
between host memory and the data register. The

Hardware Description 3-11

two-channel DMA controller within the Intel 80188 is
used in the adapter for transferring data between
adapter memory and the 2-byte FIFO data register.
The maximum transfer rate oUhe Intel 80188
integrated DMA controller is 1.0 Mbytes per second.

DMA Scheme
The Personal Computer HIC provides two DMA
requests, one to the IBM PC Network Adapter
processor and one to the Personal Computer processor.
The Personal Computer's DMA controller is
responsible for moving data and commands between
the Personal Computer's system memory and the
adapter interface data register. When instructed, the
80188's DMA controller moves data and commands
between the local buffer memory and the interface data
register.
To ensure reliable data transfer, handshake signals such
as DMA REQUEST, DATA REGISTER FULL, and
DATA REGISTER EMPTY are used to synchronize
the data flow to and from both sides.
Upon completion of a host DMA transfer, a DMA
complete interrupt can be sent to the host processor
through the adapter.
The Intel 80188's integrated DMA controller is
controlled by the adapter processor. It accepts a 20-bit
address, a 2-byte transfer length and an I/O address
from the adapter processor. Also upon completion of
DMA transfer, a DMA complete interrupt is sent to the
adapter processor.

Interrupt Structure
Another method of communication between the host
and the adapter is through vectored interrupts. These
are asynchronous events, which cause a change in the
flow of program control of the processor (either the

3-12 Hardware Description

host or the adapter) being interrupted. Each processor
can be interrupted both by events external to it, such as
a request for service from the interface or by internal
events such as the completion of an operation initiated
by the same processor.
A processor may, for various reasons, want to prevent
interrupts from occurring. For example, interrupts
usually are not allowed while a critical data structure or
piece of status information is being updated. Also, a
particular application program or operating system may
not be equipped to deal with interrupts. For this
reason, each processor has the ability, by the setting of
certain bits in its interface registers, to enable and
disable the various interrupts on an individual basis.
There are six distinct types of interrupts that each
processor may receive. These are discussed separately
for the host and for the adapter.

Host Interrupts
1.

The first type of interrupt received by the host
informs it that it has received control of the
interface to the adapter and may place data in the
Interface registers.
The purpose of this interrupt is to free the host
from having to wait for the adapter to yield control
of the interface. The host processes some other
task until the interface becomes free. Then the
host is notified by the interrupt. Upon receipt of
this interrupt, the host issues a command to the
adapter and then relinquishes control of the
interface. This interrupt occurs when the following
three conditions are satisfied:
a.

The host has requested control of the interface
by setting the Host Control Request (HCR)
bit in the Host Interface register.

Hardware Description 3-13

2.

b.

The adapter has allowed host control of the
interface by setting the Host Control Enable
(HCE) bit in the Adapter Interface register.

c.

The host has enabled this interrupt by setting
the Host Control Interrupt Enable (HCI) bit
in the Host Interface register.

The second kind of interrupt the host can receive is
caused by a request from the adapter for service or
attention. This interrupt usually occurs as a result
of the host's having instructed the adapter to
perform a function. While the adapter is executing
a function, it requires support from the host. For
example, if the host orders the adapter to send a
message to another point on the network, the
adapter must request that the host transfer the data
to the adapter. This request is necessary because
the adapter is not permitted to control the host's
data bus, and thus is unable to perform the transfer
without the cooperation of the host.
This interrupt to the host occurs when the adapter,
after gaining control of the interface, sets the GO
bit in the Status register. To receive the interrupt,
the host must have enabled it by setting the Go
Interrupt Enable (GI) bit in the Host Interface
register. After servicing the adapter's request, the
host clears the GO bit, and then the adapter
relinquishes control of the interface.

3.

The third type of interrupt sent to the host is
triggered by the same bit as the previous one.
When the adapter, after executing a command
issued by the host, clears the GO bit in the Status
register, the host receives an interrupt. This
interrupt is received only if the host has enabled it
by setting the GI bit in the Host Interface register.
Upon receipt of the interrupt, the host either issues
another command to the adapter, or relinquishes
control of the interface by clearing the Host
Control Request (HCR) bit in the HostInterface
register.

3-14 Hardware Description

4.

The next two types of interrupts seen by the host
are related to the transfer of data between the
adapter and the host. All such transfers take place
through the Data register.
When one processor writes data into the Data
register, whether under control of the processor
itself or of its DMA hardware, the interface
hardware sets the Data Register Full (DRF) bit in
the Status register. This informs the other
processor that 1 or 2 bytes of data are available for
reading.
Similarly, when the Data register is read by the
other processor, the hardware sets the Data
Register Empty (DRE) bit in the Status register,
indicating that one or two bytes of data may now
be written to the Data register.
Two bits in the Host Interface register control
interrupts that are related to data transfer. The
first of these is the Data Transfer Interrupt Enable
(DTI) bit. Setting this bit causes an interrupt when
the Data Register Empty or Full (DRE or DRF)
bits are set depending on the setting of the second
bit.
The second bit is the Data Direction (DD) bit,
which indicates the direction of data flow through
the Data register.
By setting the Data Transfer Interrupt Enable
(DTI) and the Data Direction (DD) bit in the Host
Interface register, the host can arrange to receive
an interrupt every time a byte of data is written to
the Data register by the adapter. Likewise, setting
the DTI bit but clearing the DD bit causes the host
to receive an interrupt each time a byte of data
written to the Data register by the host is read by
the adapter. Both the Data Register Full and the
Data Register Empty (DRF and DRE) bits may be
set at the same time; the two conditions are not
mutually exclusive.

Hardware Description 3-15

5.

The final type of interrupt sent to the host is
caused by the termination of a DMA operation
between the host and the adapter. Such operations
are to send command blocks from the host to the
adapter, to return completed command blocks to
the host, or to transfer message between the host
and the adapter. If the host transfers data to and
from the adapter through DMA operations (it does
not need to do so), it has the option of receiving an
interrupt upon completion of the operation. This
can be done by setting both the Terminal Count
Interrupt Enable (TCl) and the Data Transfer
DMA Enable (DTD) bits in the Host Interface
register. Whenever the DMA transfer mode is
being used, the adapter interface detects the host
signal indicating DMA completion on DMA
channel 3 and sets the Terminal Count (TC) bit in
the Status register. If the TCI bit is set, this will
cause an interrupt to the host.

The adapter can receive a set of interrupts similar to
that seen by the host. These interrupts are described in
the following paragraphs.

Adapter Interrupts
1.

The first type of interrupt that can be sent to the
adapter is analogous to the one received by the
host when it has acquired control of the interface
to the adapter. When the adapter requires control
of the interface, it sets the Host Relinquish
Interrupt Enable (HRl) bit in the Adapter
Interface register. When the host yields the
interface by clearing the Host Control Request
(HCR) bit in the Host Interface register, an
interrupt is sent to the adapter. The adapter
should have previously cleared the Host Control
Enable (HCE) bit in the Adapter Interface register
so that once the host gives up control of the
interface it is prevented from regaining it until the
adapter finishes using the interface and again sets

3-16 Hardware Description

the HCE bit. Like the corresponding host
interrupt, this interrupt allows the adapter to
continue other processing while waiting for control
of the interface.
2.

The second kind of interrupt sent to the adapter
results from the host's sending the adapter a
request for service or attention. These requests
usually take the form of a command block
constructed by the host's application program.
The adapter receives this interrupt, if it is enabled,
when the host, after acquiring control of the
interface, sets the GO bit in the Status register.
The adapter enables the interrupt by setting the Go
Interrupt Enable (GI) bit in the Adapter Interface
register. After the adapter has received the
interrupt and serviced the host's request, it clears
the GO bit; the host then gives up control of the
interface.

3.

The third type of interrupt sent to the adapter is
also triggered by the GO bit in the Status register.
When the host, after executing a command issued
by the adapter, clears the GO bit in the Status
register, the adapter receives an interrupt. This
interrupt is received only if the adapter has enabled
it by setting the GI bit in the Adapter Interface
register. Upon receipt of the interrupt, the adapter
can elect either to issue another command to the
host or to relinquish control of the interface by
setting the BCE bit in the Adapter Interface
register.

4.

The next two interrupts that the adapter can
receive correspond to the host's Data
register-related interrupts. If the Data Transfer
Interrupt (DTI) bit is set in the Adapter Interface
register an interrupt is sent to the adapter each
time the DRF or DRE bits are set in the Status
register, depending upon the setting of the DD bit
in the Adapter Interface register.

Hardware Description 3-17

5.

The last type of interrupt seen by the adapter is an
internal one, not dependent on the host. When the
adapter performs a DMA transfer to or from the
host, it instructs its own DMA controller hardware
as to the source and destination addresses, length
of transfer and mode of operation. If instructed to
do so, the DMA hardware sends an interrupt to the
adapter when the transfer count has been
decremented to zero. This completes the DMA
operation.

Summary
As discussed above, each processor can receive six
different types of interrupts related to the interaction
between the host and the adapter. The following rules
govern interrupts between host and adapter.
•

Each of these interrupts can be disabled by the
host or adapter on an individual basis.

•

Each processor can receive an interrupt when it
acquires control of the interface registers.

•

Each processor can be interrupted by a request
from the other processor for service or attention,
and the recipient is responsible for clearing the GO
bit.

•

Each processor can receive an interrupt, when the
other processor clears the GO bit, in response to
the setting of the GO bit by the first processor.

•

Each processor can be informed when a new data
byte is available in the Data register and when a
byte it has written there has been read by the other
processor.

•

Finally, each processor can receive an interrupt
when its DMA hardware has completed a transfer.

3-18 Hardware Description

Adapter Initialization
The IBM PC Network Adapter executes initialization
and self-test routines whenever it detects a hardware
reset signal from the Personal Computer during
power-up or when it detects that the software control
reset bit in the Personal Computer HIC is set. The
Personal Computer controls the reset and initialization
of the IBM PC Network Adapter during system
operations. The following is a description of what
occurs during a software reset.
The adapter is held in the reset state whenever the
Reset Adapter (RES) bit in the Host Interface register
is set. The Reset Adapter bit is set when the RESET
DRV signal from the host is active. Setting this bit
does not require that the host have control of the
interface, because the reason for performing the reset
may be to force an errant adapter to give up interface
control. This capability must be used carefully.
When the adapter is released from reset by clearing the
reset bit, the following actions occur:
1.

A self-test is performed.

2.

All internal data structures and command queues
are reinitialized.

3.

All names are deleted from the name table.

4.

All sessions are aborted.

The adapter then sends an Adapter Initialization
Complete primary command to the host. The host
acknowledges the command by clearing the GO bit in
the Adapter Interface register, allowing the host to gain
control of the interface.

Hardware Description 3-19

Programming Interface
This section discusses the programming interface
between the host computer and the adapter. This
includes the interface protocol, primary and secondary
commands, DMA considerations, interrupts, aliases,
broadcasting, resetting the adapter, and aborting
commands.

Secondary Commands
These commands are known as Network Control
Blocks (NCBs). See Chapter 2 for a complete
description of the NCBs.

Interface Protocol
This section describes the interface protocol between
the adapter and the host computer's BIOS (Basic Input
Output System). It discusses the basic transactions
between the adapter and the host and the steps required
to conduct these transactions. Interrupts and interface
registers are mentioned, but not described in detail.
Detailed descriptions of these aspects are contained in
later sections.
There are three main transactions between the host and
the adapter as follows:
1.

The host sends a command block to the adapter.

2.

Adapter asks host to transfer message data.

3.

The adapter asks the host to accept an updated
command block.

These transactions are described in the following
paragraphs.

3-20 Hardware Description

Host Sends a Command Block to the Adapter
Most of the communication between the host and the
adapter is initiated by the host. The host requests the
adapter to execute a particular command, such as
opening a session. These commands are sent as
command blocks to be interpreted by the adapter. The
command blocks are sent using the following steps:
1.

The host's application program constructs a
network command block (NCB) and invokes
BIOS. This method of construction is specified in
detail in Chapter 2 and is not described here.

2.

BIOS requests control of the adapter interface by
setting the Host Control Request bit in the Host
Interface register. If the Host Control Interrupt
Enable bit in the Host Interface register is set, an
interrupt is issued to the host when interface
control is granted.

3.

After receiving control of the interface, BIOS
writes the I-byte primary command code followed
by the address of the command block (32 bit
address in DD format) and the length of the
command block (2 bytes) to the Parameter
register. The BIOS then sets the GO bit in the
Status register. This issues the command by
causing an interrupt, when enabled, to be sent to
the adapter.

4.

BIOS sends the command block to the adapter
through the Data register. This may be done by
setting up a DMA transfer or through programmed
IIO (the host processor writes a byte at a time to
the Data register), at the option of the host BIOS.
If using programmed I/O, the host can also choose
whether to receive an interrupt as each byte is read
by the adapter.

5.

The adapter finds, either through an interrupt or by
polling, that the GO bit is set.

Hardware Description 3-21

6.

The adapter reads the information in the Parameter
registers.

7.

The adapter obtains the command block, either
through programmed 110 (with or without using
interrupts) or through DMA.

8.

The adapter clears the GO bit and loads the
primary command completion code in the Status
register.

9.

The host finds, either through an interrupt or by
polling, that the GO bit was cleared; the host then
releases the interface by clearing the Host Control
Request bit in the Host Interface register. This
may cause an interrupt to the adapter, informing it
that the interface is now available.

10. The adapter queues the new command internally.
If the queue is full, the adapter clears the Host
Control Enable bit in the Adapter Interface
register and sets the Set Command Queue Full
(SQF) flag. This prevents the host from issuing
any more commands until some commands have
been processed.

Adapter Asks Host To Transfer Message
Data
Most commands involve a transfer of message data
either from the host to the adapter (for example,
session send) or from the adapter to the host (for
example, session receive). In either case, the adapter
must ask the host to transfer the data, since the adapter
cannot gain control of the host's data bus. When the
adapter wishes to transfer data between itself and the
host, the following events occur:
1.

The adapter gains control of the interface by
clearing the Host Control Enable bit in the
Adapter Interface register and waits for the Host

3-22 Hardware Description

Control bit in the Status register to be cleared. If
the adapter chooses, it receives an interrupt when
interface control is granted.
2.

The adapter loads the command followed by the
address of the data buffer and length of the
transfer (previously obtained from the command
block) into the Parameter register. It then sets the
GO bit in the Status register. This issues the
command by causing an interrupt, if enabled, to be
sent to the host.

3.

The adapter starts its part of the data transfer
through the Data register, either through
programmed I/O (with or without interrupts) or
through DMA.

4.

The host finds, either through an interrupt or by
polling, that the GO bit is set.

5.

The host reads the information in the Parameter
registers.

6.

The host performs the data transfer, either through
programmed II0 (with or without interrupts) or
through DMA.

7.

The host clears the GO bit and loads the primary
command completion code in the Status register.

8.

The adapter finds, either through an interrupt or by
polling, that the GO bit was cleared; the adapter
then releases the interface by setting the Host
Control Enable (HCE) bit in the Adapter
Interface register. This can cause an interrupt to
the host if it had previously requested control of
the interface.

Hardware Description 3-23

Adapter Asks Host To Accept Updated
Command Block
The final operation in completing a command is the
transfer of the updated command block to the host.
This is done with the following steps:
1.

The adapter updates the command block with
completion status and other information,
depending on the particular command.

2.

The adapter gains control of the interface by
clearing the Host Control Enable bit in the
Adapter Interface register and waits for the Host
Control bit in the Status register to be cleared. If
the adapter wishes, it receives an interrupt when
interface control is granted.

3.

The adapter writes the command code 43H
followed by the address and length of the
command block to the Parameter register; it then
sets the GO bit in the Status register. This issues
the command, causing an interrupt, if it is enabled,
to be sent to the host.

4.

The adapter starts its part of the data transfer
through the Data register, either through
programmed I/O (with or without interrupts) or
through DMA.

5.

The host finds, either through an interrupt or by
polling, that the GO bit is set.

6.

The host reads the information in the Parameter
register.

7.

The host transfers the command block to its
memory, either through programmed I/O (with or
without interrupts) or through DMA.

8.

The host clears the GO bit in the Status register.

3-24 Hardware Description

9.

The adapter finds, either through an interrupt or by
polling, that the GO bit was cleared; the adapter
then releases the interface by setting the Host
Control Enable bit in the Adapter Interface
register. This can cause an interrupt to the host if
it has previously requested control of the interface,
and has enabled this interrupt.

10. The host BIOS returns the updated command
block to the host application program.

Interface Control
There are four types of interface registers in the
Personal Computer interface controller:
•

Status register

•

Parameter register

•

Data register

•

Hostl Adapter Interface register

Each register has two addresses depending on the
setting of jumpers W5, W6 and W7. See section
"Configurable Hardware Options" on page 3-70 for a
detailed description of the jumper positions. The
Personal Computer 110 register addresses are as
follows:

Hardware Description 3-25

Register name

Low
address
range

High
address
range

Status register

360H

368H

Parameter register

361H

369H

Data register

362H

36AH

Host/Adapter Interface
register

363H

36BH

Figure 3-2 Register Addresses

The adapter interface registers are used to pass
commands, parameters, and data between the host and
the adapter. Both the host and adapter may desire to
pass information through this interface. There is only
one set of registers, so a mechanism to resolve conflicts
over register use must be included in the interface.
Determination of who is in control of the interface is
made by examining the Host Control (HC) bit in the
Status register. When this bit is set, the interface is
under control of the host. When the HC bit is not set
the interface is either under control of the adapter or is
idle.
When the adapter desires control of the interface, it
clears the Host Control Enable (HCE) bit in the
Adapter Interface register. Clearing the HCE bit
inhibits the HC bit from being set. However, if the HC
bit is already set the adapter must wait until the host
has cleared the Host Control Request (HCR) bit,
causing the HC bit to be cleared. When the HCE and
HC bits are both cleared, the adapter is in control of
the interface and can use the interface registers. When
the adapter is finished with the interface, it sets the
HCE bit in the Adapter Interface register. This allows
the host to gain control of the interface.
When the host desires control of the interface it sets the
Host Control Request (HCR) bit in the Host Interface

3-26 Hardware Description

register. If the HCE bit has been set by the adapter in
the Adapter Interface register, the Host Control (HC)
bit is immediately set in the Status register. If the HCE
in the Adapter Interface register is not set, the HC bit is
not set until the adapter sets the HCE bit. Once the
HC bit has been set, the interface is considered to be
under control of the host. When the host is finished
with the interface it clears the HCR bit in the Host
Interface register. This causes the Host Control (HC)
bit to be cleared in the Status register.
The following table gives the state of the interface for
various combinations of the HCE, HCR, and HC bits.

HC

HCR

a
a
a

a
a

1
1

HCE

State

1

Idle
Adapter in control

1

a
a

1

1

Host in control

1

a

Host in control, adapter waiting for control

Adapter in control, host waiting for control

Figure 3-3 Interface Control States

Hardware Description 3-27

Data Transfer
Bulk data transfers between the host and the adapter
occur through the Data register. Each side of the
interface can elect to transfer data through this register
using DMA, interrupts, or polling. The Data Direction
(DD), Data Transfer Interrupt (DTI), and Data
Transfer DMA (DTD) bits in the interface registers are
used to select the transfer mode independently for each
side. The following table summarizes the use of these
bits.

DO

OTi

OTO

Operation

X

0

0

Polled I/O

0

1

0

Host to adapter using interrupts

1

1

0

Adapter to host using interrupts

0

0

1

Host to adapter using OMA

1

0

1

Adapter to host using OMA

X

1

1

Illegal

Figure 3-4 Interface Registers Transfer Control Bits

In addition the Terminal Count Interrupt (TCl) bit in
the Host Interface register can be set to interrupt the
host when terminal count has been reached in the host
DMA.

3-28 Hardware Description

Status Register (SR)
Addresses:
360H or 368H
OOH

Host:
Adapter:
MSB

7

LSB

6

543

2

o

Go

' - - - - - - Command Completion Code
' - - - - - - - - _ Command Queue Full
'----------~

Data Register Empty

'------------~ Data Register Full
'------------_~

Terminal Count

'--_ _ _ _ _ _ _ _ _ _ _ _ _.... Host Control

Figure 3-5 Status Register

Go (GO)

Indicates the command is now ready for execution. If
the GI bit is set for a side, that side is interrupted
whenever the other side sets or clears this bit. It is
cleared by the side receiving the primary command
when the command has been completed. This bit can
be read and written to by both sides and is cleared upon
a reset.

Command Completion Code (CCO-CCl)
Used to pass the primary command completion code.
These bits are cleared when GO is set on command

Hardware Description 3-29

initiation, and set to the appropriate value when the GO
bit is cleared by the side receiving the command. The
following completion codes are as follows:
OOH - Primary command completed successfully.
OlH - Invalid primary command or parameter.

02H - Unable to complete primary command.
03H - Reserved
These bits can be read and written to by both sides and
are cleared upon a reset.

Command Queue Full (CQF)
This bit is set as a result of setting the Set Command
Queue Full (SQF) bit in the Adapter Interface register
and indicates to the host that the adapter cannot accept
any commands at this time. The bit is read-only for
both sides, and is cleared upon a reset.

Data Register Empty (DRE)
This bit is set by the interface whenever a byte can be
written to the data register. This bit can cause
interrupts or DMA cycles to occur to the host or the
adapter if the appropriate DTD, DTI, and DD bits are
set as described in Figure 3-8 on page 3-34. This bit is
always read-only and is set upon a reset.

Data Register Full (DRF)
This bit is set by the interface whenever a byte can be
read from the data register. This bit can cause
interrupts or DMA cycles to occur to the host or the
adapter if the appropriate DTD, DTI, and DD bits are
set as described in Figure 3-8 on page 3-34. This bit is
always read-only and is cleared upon a reset.

3-30 Hardware Description

Terminal Count (TC)
This bit indicates that terminal count has been reached
on the host DMA channel while transferring data to or
from the adapter. For this bit to be set the DTD bit
must be set in the Host Interface register and the TC
and DACK3 signals must be asserted on the host
peripheral bus. If the TCI bit is set in the Host
Interface register when this bit is set, an interrupt is
sent to the host. This bit is cleared when the DTD bit is
cleared in the Host Interface register. This bit is always
read-only and is cleared upon a reset.

Host Control (HC)
This bit indicates that the host has control of the
interface. The setting of this bit causes an interrupt to
the host if the Host Control Interrupt (HCI) is set in
the Host Interface register. The HC bit is cleared when
the host clears the HCR bit in the Host Control
Register. If the Host Relinquish Interrupt (HRI) bit is
set in the the Adapter Interface register, the clearing of
the HC bit causes an interrupt to be sent to the adapter.
This bit is always read-only, and is cleared upon a reset.

Hardware Description 3-31

Parameter Register (PR)
The Parameter register is a 7-byte shift register used to
pass primary commands and their parameters. Because
this register operates as a true shift register and not as a
first-in, first-out (FIFO), it is necessary that 7 bytes
always be written when passing parameters. This
register is read/write by both sides but should only be
written to by the side controlling the interface.
Addresses:
Host:
Adapter:

361H or 369H
02H

MSB

7

LSB

6

543

2

o

Parameter Bits 0-7

Figure 3-6 Parameter Register

3-32 Hardware Description

Data Register (DR)
The Data register is a 2-byte FIFO used to pass data
between the host and the adapter. When data is
available to be read from this register, the Data Register'
Full (DRF) bit is set in the Status register. When data
can be written to this register, the Data Register Empty
(DRE) bit is set in the Status register. Because this
register is double buffered, both of these bits can be set
at the same time. The setting of these bits can cause
interrupts and DMA cycles to occur depending on the
setting of enable bits in the interface registers. This
register is read/write by both sides. Depending on the
command being performed, a determination is made as
to which processor should read or write this register.
Addresses:
362H or 36AH
04H

Host:
Adapter:

LSB

MSB

7

6

5

4

3

2

o

Data Bits 0-7

Figure 3-7 Data Register

Hardware Description 3-33

Host Interface Register (HIR)
The Host Interface register is used by the host to
control interrupt and DMA requests going to the host,
to force the adapter to be reset, and to request control
of the interface. This read/write register is only
accessible by the host. Interrupts to the host occur on
either IRQ2 or IRQ3, depending on the setting of
jumpers W3 and W4 on the adapter. DMA requests
occur on DRQ3 with acknowledgments on DACK3.
Addresses:
Host:
Adapter:

363H or 36BH
Inaccessible

MSB

7

LSB

6

5

4

3

o

2

Go Interrupt Enable
L..._ _....

Host Control Request

L...._ _ _ _~

Reset Adapter

L..._ _ _ _ _ _~

Data Direction

'---------~ Data Transfer Interrupt

Enable
' - - - - - - - - - - - Data Transfer DMA Enable
L..._ _ _ _ _ _ _ _ _ _ _.....

Terminal Count Interrupt

' - - - - - - - - - - - - - - - . Host Control Interrupt
Enable

Figure 3-8 Host Interface Register

Go Interrupt Enable (GI)
If this bit is set, an interrupt is sent to the host if the

GO bit is set or cleared by the adapter. The interrupt is

3-34 Hardware Description

cleared by the host's reading the Status register. This
bit is cleared upon a reset.

Host Control Request (HCR)
This bit is set by the host when it wants to gain control
of the interface. When host control is granted, the Host
Control (HC) bit is set in the Status register. Clearing
this bit clears the HC bit in the Status register. This bit
is cleared upon a reset.

Reset Adapter (RES)
If this bit is set by the host, the adapter executes a

hardware reset and is held in the dormant state until
this bit is cleared by the host. This bit is set anytime
the RESET DRV signal from the host channel interface
becomes active.

Data Direction (DD)
This bit is set by the host to indicate the direction of
data transfer between the host and adapter and works
in conjunction with the DTI and DTD in controlling
interrupts and DMA requests to the host. If this bit is
set, data transfer is from the host to the adapter. If this
bit is cleared, transfer is from the adapter to the host.

Data Transfer Interrupt Enable (DTI)
If this bit is set, an interrupt is sent to the host

whenever the Data Register Empty (DRE) or Data
Register Full (DRF) bit is set, depending on the setting
of the Data Direction (DD) bit. If the appropriate
DRE or DRF bit is already set when this bit is set, an
immediate interrupt occurs. This interrupt is cleared by
the host's accessing the Data register or by clearing the
DTI bit. This bit is cleared upon a reset.

Hardware Description 3-35

Data Transfer DMA Enable (DTD)
If this bit is set, a DMA request is sent to the host

whenever the Data Register Empty (DRE) or Data
Register Full (DRF) bit is set depending upon the
setting of the Data Direction (DD) bit. If the
appropriate DRE or DRF bit is already set when this
bit is set, an immediate DMA request occurs. This
DMA request is cleared by the DACK3 signal or
clearing the DTD bit. This bit is cleared upon a reset.

Terminal Count Interrupt (TCI)
If this bit is set, an interrupt is sent to the host

whenever the Terminal Count (TC) bit is set in the
Status register. If the TC bit is already set when this bit
is set, an immediate interrupt occurs. The interrupt is
cleared by the host's reading the Status register or
clearing the TCl bit. This bit is cleared upon a reset.

Host Control Interrupt Enable (HCI)
If this bit is set, an interrupt is sent to the host

whenever the Host Control (HC) bit is set in the Status
register. If Host Control is already set, an immediate
interrupt occurs. This interrupt is cleared by the host's
reading the Status register. This bit is cleared upon a
reset.

3-36 Hardware Description

Adapter Interface Register (AIR)
The Adapter Interface register is used by the adapter to
control interrupt and DMA requests going to the
adapter, and to control acquisition of the interface by
the host. The adapter can read/write this register, but
it is inaccessible from the host.
Addresses:
Inaccessible
06H

Host:
Adapter:
MSB

7

LSB

6

5

4

3

o

2

I HRIISQFIDTDI DTII DD I X IHCEI GI I
Go Interrupt Enable
~--~
'----.-;~

Host Control Enable
Not Used

~------~ Data Direction
'"""----------i~

Data Transfer Interrupt
Enable
'----------~ Data Transfer DMA Enable
' " " " - - - - - - - - - - - -__ Set Command Queue Full
'--------------~

Host Relinquish Interrupt
Enable

Figure 3-9 Adapter Interface Register

Go Interrupt Enable (GI)
If this bit is set, an interrupt is sent to the adapter if the

GO bit is set or cleared by the host. The interrupt is
cleared by the adapter's reading the Status register.
This bit is cleared upon a reset.

Hardware Description 3-37

Host Control Enable (HCE)
This bit allows the adapter to control the granting of
interface control to the host. The HC bit is not set in
the Status register in response to a Host Control
Request (HCR) unless this bit is set. If the HCR bit is
already set in the Host Interface register when this bit is
set, the HC bit is immediately set in the Status register.
Clearing this bit does not cause the HC bit to be
cleared if it has already been set, but prevents it from
being set again after it is cleared. The adapter must
clear this bit before using the interface to prevent a
control conflict. This bit is cleared upon a reset.

Data Direction (DD)
This bit is set by the adapter to indicate the direction of
data transfer between the host and adapter, and works
in conjunction with the DTI and DTD in controlling
interrupts and DMA requests to the adapter. If this bit
is set, data transfer occurs from the host to the adapter.
If this bit is cleared, transfer is from the adapter to the
host.

Data Transfer Interrupt Enable (DTI)
If this bit is set, an interrupt is sent to the adapter

whenever the Data Register Empty (DRE) or Data
Register Full (DRF) bit is set, depending on the setting
of the Data Direction (DD) bit. If the appropriate
DRE, or DRF bit is already set when this bit is set, an
immediate interrupt occurs. This interrupt is cleared by
the adapter's accessing the Data register or clearing the
DTI bit. This bit is cleared upon a reset.

Data Transfer DMA Enable (DTD)
If this bit is set, a DMA request is sent to the adapter

whenever the Data Register Empty (DRE) or Data

3-38 Hardware Description

Register Full (DRF) bit is set, depending on the setting
of the Data Direction (DD) bit. If the appropriate
DRE or DRF bit is already set when this bit is set, an
immediate DMA request occurs. This DMA request is
cleared by the adapter's accessing the Data register or
clearing the DTD bit. This bit is cleared upon a reset.

Set Command Queue Full (SQF)
The setting of this bit is reflected in the Command
Queue Full (CQF) bit in the Status register. The
adapter sets this bit to indicate to the host that
commands cannot currently be accepted by the adapter.
This bit is cleared upon a reset.

Host Relinquish Interrupt Enable (HRI)
If this bit is set, an interrupt is sent to the adapter
whenever the Host Control (HC) bit is cleared in the
Status register. If the HC bit is already cleared, an
immediate interrupt will occur. The interrupt is cleared
by the adapter's reading the Status register. This bit is
cleared upon a reset.

Primary Commands
Primary commands are those passed directly through
the adapter's Parameter register. These commands are
used to perform the most primitive level of
communication between the adapter and the host.
Before a command is issued by either the host or the
adapter, it must gain control of the interface. When the
adapter desires control, it clears the Host Control
Enable (HCE) bit in the Adapter Interface register and
waits for the Host Control Request (HCR) bit in the
Status register to be cleared.
When the host desires control, it requests control by
setting the HCR bit in the Host Interface register and

Hardware Description 3-39

waits for the Host Control (HC) bit to be set in the
Status register. The adapter can prevent the host from
obtaining control of the interface by clearing the Host
Control Enable bit in the Adapter Interface register.
Normally the adapter prevents the host from gaining
control only when the adapter is itself using the
interface. However, when there is no memory space in
the adapter to hold any more command blocks, the
adapter can prevent the host from gaining control of
the interface until memory space becomes available.
The primary commands and their parameters are passed
through the Parameter register. This register holds the
primary command followed by up to 6 bytes of
parameter data in a 7-byte shift register. Because of
the nature of this register, exactly 7 bytes must be
written to it. In cases where there are less than 7 bytes
of parameter data, additional dummy bytes must be
written after the real parameters to bring the total
number of bytes written to 7. When reading this
register it is not necessary to read these dummy bytes.
The parameter data consists of a true 32-bit address of
host memory.
After interface control has been obtained and the
command and parameters have been written to the
Parameter register, the GO bit is set in the Status
register.
The side receiving the command can read the command
and parameters and perform the desired action. If the
command requires data to be transferred, the data is
transferred through the Data register using the Data
Register Full (DRF) and Data Register Empty (DRE)
bits in the Status register to provide synchronization.
On both sides of the interface, data can be transferred
using DMA, interrupts, or polled I/O with each side
able to independently select its mode of transfer.
When the side receiving the command has completed
the command, it clears the GO bit to indicate the
primary command has been completed and includes the

3-40 Hardware Description

primary command completion code in the Status
register. Clearing the GO bit does not mean that
secondary commands, that were passed by the primary
command, have been accepted or completed.

Hardware Description 3-41

Host-Initiated Commands
Transfer Command Block to Adapter
Command code:

OlH

Parameters:

Command block address:
low byte
Command block address:
high byte
Command block address:
low byte
Command block address:
high byte
Length low byte
Length high byte

low word,
low word,
high word,
high word,

This command requests the adapter to accept a
command block of the specified length that is stored in
the host memory at the specified address.
After issuing the command, the host begins writing data
to the Data register, whenever the Data Register Empty
(DRE) bit is set in the Status register, until the entire
command block has been transferred. The host waits
for the GO bit to be cleared by the adapter.
The adapter, after reading the command, reads the
parameters and performs whatever setup is required. It
then reads the Data register when the Data Register
Full (DRF) bit is set in the Status register and stores
the data in its memory until the command block has
been transferred. The adapter then clears the GO bit
and loads the command completion code in the Status
register to indicate the transfer has been completed.
At some later time, the command block is examined by
the adapter and any secondary command is executed, if
possible.

3-42 Hardware Description

Abort Secondary Command
Command code:

02H

Parameters:

Command block address: low word,
low byte
Command block address: low word,
high byte
Command block address: high word,
low byte
Command block address: high word,
high byte
Secondary command code byte

This command requests the adapter to abort the
secondary command found in the command block
identified by the specified host address. After the abort
has been attempted, the GO bit is cleared and the result
placed into Status register bits CCO and CC 1.

Reconfigure Adapter
Command code:

OSH

Parameters:

Number of sessions
Number of command blocks

This command determines the allocation of the
adapter's RAM. It specifies the number of sessions and
command blocks that the adapter should allocate (and
hence the number of data buffers it can allocate). This
command causes all current sessions and names to be
removed from the name table.
A maximum of 32 sessions and 32 command blocks can
be specified. If more are specified, only 32 are
allocated. If 0 is specified, the adapter uses its internal
default value, (6 sessions and 12 command blocks).

Hardware Description 3-43

Adapter-Initiated Commands
Initialization Complete
Command code:

41H

Parameters:

Initialization status in the Parameter
register
80H-Successful completion
81H-Processor test failed
82H-ROM checksum test failed
83H-Unit ID PROM test failed
84H-RAM test failed
85H-Host interface·test failed
86H-± 12V test failed
87H-Digitalloopback test failed
8EH-Possible constant carrier
8FH-Analog loopback test failed

This command is issued by the adapter when it has
completed its initialization after being released from the
reset. Before issuing any commands to the adapter, the
host waits for the adapter to issue this command. See
"Power-On Self-Tests (POST)" on page 3-63 for a
description of the tests.

Transfer Data To Host
Command code:

42H

Parameters:

Buffer address: low word, low byte
Buffer address: low word, high byte
Buffer address: high word, low byte
Buffer address: high word, high byte
Length low byte
Length high byte

This command requests the host to accept the number
of bytes of data specified by the length field, and to
store this data starting at the specified address. After

3-44 Hardware Description

issuing the command the adapter begins writing data to
the Data register, whenever the Data Register Empty
(DRE) bit is set in the Status register, until all the data
has been transferred. The adapter then waits for the
GO bit to be cleared.
After reading the command, the host reads the
parameters and performs whatever setup is required. It
then reads the Data register when the Data Register
Full (DRF) bit is set in the Status register and stores
the contents of the Data register in memory until all the
data has been transferred. The host then clears the GO
bit in the Status register to indicate the command has
been completed, and places the command completion
code in the Status register.

Transfer Command Block To Host
Command code:

43H

Parameters:

Command block address:
low byte
Command block address:
high byte
Command block address:
low byte
Command block address:
high byte
Length low byte
Length high byte

low word,
low word,
high word,
high word,

This command operates in the same manner as the
Transfer Data to Host command except that a
command block is being passed back. The appropriate
host response to this command is to clear the GO bit.
The GO bit is cleared after the transfer has been
completed and before the control block is examined.
This is to prevent tying up the adapter interface
unnecessarily.

Hardware Description 3-45

Transfer Data To Adapter
Command code:

44H

Parameters:

Buffer address: low word, low byte
Buffer address: low word, high byte
Buffer address: high word, low byte
Buffer address: high word, high byte
Length low byte
Length high byte

This command requests that the host transfer the
number of bytes of data specified by the length and
starting at the specified address to the adapter. After
issuing the command, the adapter waits for the data to
be written to the Data register and continues reading
the Data register until all the data has been received.
The adapter then waits for the GO bit to be cleared by
the host.
After reading the command, the host reads the
parameters and performs whatever setup is required. It
then writes the requested data to the Data register until
all the data has been transferred. The host then clears
the GO bit in the Status register to indicate the
command has been completed and places the command
completion code in the Status register.

Error Report To Host
Command code:

45H

Parameters:

Error status in the Parameter register
41H-Continuous carrier detected
(Not this adapter)
42H-Continuous carrier detected
(This adapter)
43H-No carrier detected
50H-FEH-Internal software error

3-46 Hardware Description

This command is issued by the adapter when it detects
an irrecoverable error occurring after initialization. The
host performs a report of the error to the operator and
waits for manual intervention such as reset of the host,
or a host diagnostic program that will reset the adapter
and test for a specific failure symptom.

Modem Interface Section
The Sytek Serial Interface Controller SIC connects the
RF modem to the Intel 82586 Local Communications
Controller (LCC). The functions performed are as
follows:
•

Generate a 2 MHz transmit clock (TXC) for the
82586.

•

Encode the transmit data (TXD) from the 82586
to the required non-return-to-zero-inverted
(NRZI) format specified for the modem.

•

Decode the NRZI data received from the modem
to the format needed by the 82586, receive data
(RXD).

•

Recover the receive clock from the received data
and drive the receive clock (RXC) function of the
82586.

•

Perform the collision detect function while
transmitting, and drive the CDT pin of the 82586.

•

Drive the carrier sense (CRS) pin of the 82586.

•

Detects network failures and reports the failure to
the 80188 through an interrupt.

•

Place the SIC in a loopback/ diagnostic mode
under control of the 80188 CPU.

Hardware Description 3-47

Communications Controller Section
This section uses the Intel 82586 and the Sytek Serial
Interface Controller (SIC). The 82586 manages the
process of transmitting and receiving packets. On the
microprocessor side, this controller operates as a bus
master. This means that both the 80188
microprocessor and the 82586 can access the IBM PC
Network Adapter's local memory.
There are two major control units in the 82586, the
command unit and the receive unit. The two units are
controlled and monitored by the microprocessor by a
shared memory structure called the system control
block.
•

The command unit executes commands given by
the microprocessor and manages packet
transmissions.

•

The receive unit handles all activities related to
packet reception such as; buffer management,
packet and address recognition, and CRC
checking.

The other two memory structures used by the 82586
are the command block list and the receive packet area.
The adapter memory holds the list of commands to be
executed by the 82586, and all received packets.
Pointers to these two structures are stored in the system
control block along with the contents of the status
register, the value of certain counters, and control
commands for the 82586.

CSMA/CD Technique
A protocol that is widely used for broadband local
networks is the carrier sense with multiple access and
collision detection (CSMA/ CD) method. This method
is supported in hardware on the adapter. The RF
modem section detects the presence of a carrier. The
Sytek Serial Interface Controller (SIC) detects

3-48 Hardware Description

collisions. The 82586 Local Communications
Controller (LCC) supports the higher levels of the
protocol after proper configuration for slot time,
back-off algorithm, retries, address filtering, data
encapsulation, error detection, and other parameters.
A method of detecting collisions in a broadband
network is based on a comparison between the data
sent by a node and the data received after a round-trip
delay to the headend. This technique cannot guarantee
100% detection of all collisions. A capture effect
found in all frequency modulation systems allows the
possibility that a particularly strong transmitter can
capture the channel and take it away from a weaker
transmitter. For power differences greater than 6 dB,
the weak node backs off and the strong node assumes it
has seized a quiet network. Proper cable system design
effectively eliminates these undetected collisions. In
any case, if an undetected collision occurs, the Link
Access Protocol detects this as a CRC failure and
retransmission occurs. The overall statistical behavior
of the network is unaffected. When a collision has
been detected by the SIC, it asserts the Collision
Detected (CDT) input to the LCC.

Hardware Description 3-49

RF Modem Section
This section describes the RF Modem and its circuitry.
The modem consists of a single coax tap modulatordemodulator (modem) with a data transfer rate of 2M
bits per second to and from the network. The modem
transmits to and receives from the network on separate
channels. Each channel has a 6 MHz bandwidth,
separated by a frequency offset of 168.25 MHz. The
transmit center frequency is 50.75 MHz; the receive
center frequency is 219.00 MHz. Both frequences are
shared on the broadband network cable by all nodes
through the use of the carrier sense multiple access with
collision detection (CSMA/CD) technique. These
frequencies are aligned with CATV channels T-14 and
J.
The following is a block diagram of the RF Modem
section:

Sytek
SIC

Transmitter
Circuits

Receiver
Circuits

,0

F
p
I

e
x
e

R F Modem Section

Figure 3·10 RF Modem Block Diagram

3-50 Hardware Description

t
e
r

Coax
Port

tol
from
Lan

Transmitter Description
This section describes the transmitter circuits of the RF
Modem. A block diagram of the transmitter section is
as follows:

Transmitter Key Line
from Adapter

Transmit Data Line
from Adapter

Voltage
Controlled
Oscillator

Gain
Controlled
and Output
Amplifier

Low Pass
Filter

Diplexer Filter

Figure 3-11 Transmitter Block Diagram

•

Modulator Driver
The NRZI-encoded serial TTL data is applied to a
driver stage that converts the TTL levels into mark
and space voltages. These voltages are applied to
the frequency-shift key (FSK) oscillator. The
driver stage also functions as a low-pass filter to

Hardware Description 3-51

remove the unwanted harmonic signals from the
modulating signal. The modulation adjustment is
factory set for a 2 MHz shift.
•

Voltage-Controlled Oscillator (VCO)
The mark and space voltages are used to frequency
shift key the VCO. The VCO operates at 50.75
MHz. Also, the oscillator is temperature
compensated to provide the necessary frequency
stability.
Within the VCO, are the following circuits:
Buffer/ Amplifier
The output of the oscillator is buffered with a
two-stage amplifier to minimize oscillator
pulling and to provide sufficient level to
overcome the loss in the bandpass filter.
Bandpass Filter
The bandpass filter is used to band-limit the
FSK signal. It also removes unwanted
sidebands and harmonic signals at the
amplifier output.

•

Gain-Controlled Amplifier
The gain-controlled amplifier is factory adjusted
and can provide up to 17 dB of gain. This stage is
used to set the transmitter's output level.

•

Output Amplifier
The output amplifier provides 10 dB of gain and
the high-level output needed to drive the cable
system.

•

Low-Pass Filter

3-52 Hardware Description

The low-pass filter is used to remove the harmonic
signals generated by the amplifiers and the PIN
diode switch. It also forms one leg of the band
separator, which combines the transmitted and
received signals on the coax cable.

Transmitter Characteristics
•

Output Impedance
The output impedance in the transmit channel is 75
ohms nominal.

•

Return Loss
The return loss is greater than or equal to 14 dB in
the transmit channel with either power on or off.

•

Transmitter Load
The transmitter can operate continuously into an
open or short circuit without damage. Also, it can
operate continuously into a cable system where
other modem transmitters are enabled at the same
time without damage.

•

Power Level
The transmitter output level is set to 56 dBm V ± 1
dB. The transmitter output level variation is within
± 3 dB of its initial setting.

•

Frequency Allocation
The transmitter operates on a center frequency of
50.75 MHz.

•

Frequency Stability
The frequency stability is ±0.6% of the transmit
channel frequency.

Hardware Description 3-53

•

Modulation Technique
The modulation technique used is frequency-shift
keying (FSK).

•

Frequency Shift
The frequency shift is 2 MHz ± 200 kHz centered
about 50.75 MHz.

•

Carrier Turn-on Delay
The transmitter can reach 90% of full output
power within 3 to 9 J-LS of TX Key going low.

•

Carrier Turn-off Delay
The transmitter can reach 10% of full output
power within 3 to 9 J-LS of TX Key going high.

•

Envelope Overshoot
The maximum envelope overshoot is 25 % during
turn on and off.

•

Off Condition Output
In the off state, the carrier signal level is -20
dBm V or less.

•

Spurious Output Levels
From 5-10 MHz and from 100-900 MHz, the
spurious output levels are -10 dBmV or 60 dB
down from the carrier level; whichever is the
greater signal level.
From 10-100 MHz, the spurious output levels
are-21dBmV or 78 dB down from the carrier
level; whichever is the greater signal level.

•

Spectrum Shape (Bandwidth)

3-54 Hardware Description

The modulated output spectrum is greater than or
equal to 40 dB down at ±3 MHz from the center
frequency. The out-of-band power is 40 dB or
more below reference carrier level at ±4 MHz
from the center frequency.

Hardware Description 3-55

Receiver Description
This section describes the receiver circuits of the RF
Modem. A block diagram of the receiver section is as
follows:
Signal from Diplexer Filter

Tuned Circuit

Data Output
to Adapter

DCD Output
to Adapter

Figure 3-12 Receiver Block Diagram

3-56 Hardware Description

•

High-Pass Filter and One-Half Diplexer Filter
The incoming signal to the modem is separated
from the outgoing signal by the high-pass filter.

•

Bandpass Filter
The bandpass filter passes the 6 MHz bandwidth
that is centered on the 219 MHz frequency.

•

RF Amplifier
The RF amplifier increases the signal level to
compensate for the loss in the bandpass filter.

•

Mixer
The mixer combines the incoming 219 MHz signal
with the 179.5 MHz local oscillator to provide a
39.5 MHz intermediate frequency (IF).

•

Crystal Oscillator
The crystal oscillator starts the local oscillator
chain at 89.75 MHz.

•

Doubler
The doubler multiplies the output of the crystal
oscillator from 89.75 MHz to 179.5 MHz to
provide the local oscillator injection for the mixer.

•

First IF Amplifier
The first IF amplifier provides about 23 dB of gain
to compensate for the loss through the saw filter.

•

Saw Filter
The saw filter selects signals only within the
desired IF pass-band and attenuates signals outside
this band.

Hardware Description 3-57

•

Second IF Amplifier
The second IF amplifier provides 30 dB of gain
needed for the necessary input level for the
limiter/demodulator circuit.

•

Tuned Circuit
The tuned circuit provides impedance matching
and increases out-of-band attenuation.

•

Limiter/Discriminator
The limiter/discriminator provides amplitude
limiting of the input signal and demodulates the
FSK signal with a quadrature detector. The limiter
also provides a relative signal strength indication to
operate the data carrier detect (DCD) comparator.

•

Data Comparator
The data comparator converts the analog signal
into a TTL-compatible digital signal.

•

DCD Comparator
The DCD comparator produces a TTL-compatible
output signal to indicate the presence of an
incoming signal.

Receiver Characteristics
•

Input Impedance
The standard impedance is 75 ohms nominal.

•

Return Loss
The return loss is 14 dB or more in the receive
channel with power on. With power off, the return
loss is 8 dB or more in the receive channel.

3-58 Hardware Description

•

Frequency Allocation
The receiver operates on a center frequency of
219.0 MHz.

•

Frequency Stability
The frequency stability after a lO-minute warm-up
period is within 0.01 % of the receive channel
frequency.

•

Reception Acceptance Range
The receiver demodulates incoming signals within
± 0.177 % of the receive channel center frequency.

•

Channel Bandwidth
The receiver has a 3.6 MHz channel bandwidth.

•

Sensitivity
The normal input level is +8.5 dBmV. Operating
range is -7 dBmV to +24 dBmV. The input
sensitivity for 20 dB SIN at the demodulator
output is less than or equal to -13 dBmV.
Minimum quieting at 0 dBmV is 30 dB. The
maximum sustained input level without damage to
the receiver is +61.25 dBmV.

•

Recovered Data
The jitter on the demodulated data out of the
receiver data comparator does not exceed ± 150 ns
with an input signal of -7 dBmV modulated with a
1 MHz square wave.

•

Receive Carrier Detect
The carrier detect threshold is between -20 and -8
dBmV. The DCD line will go true within 4.0 IJ-S of
a -7 dBmV signal being present at the input of the

Hardware Description 3-59

modem. The rise and fall time for the output of
the DCD comparator from 10% to 90% of the
steady state output is less than or equal to 500 ns.

3-60 Hardware Description

Adapter Interface Signals
Each input line to the IBM PC Network Adapter
presents a maximum of one LS TTL load to the
Personal Computer bus. All IBM PC Network Adapter
output signals to the Personal Computer bus are driven
by tri-state drivers.
Without WAIT states being generated, all Personal
Computer processor-generated memory read/write
cycles take four time (T) states. All Personal
Computer processor-generated I/O read/write and
DMA transfers require five T states. See your IBM
Technical Reference for more information about your
computers DMA transfers.
The following Personal Computer interface signals are
used by the IBM PC Network Adapter.

Signal

I/O

Description

AO-A19

I

These lines are used to address the BIOS
memory and adapter I/O interface registers.

00-07

I/O

These lines provide a bidirectional data bus for
the Personal Computer processor, Personal
Computer memory, and adapter.

ALE

I

Address latch enable, which is used as an
indicator of a valid Personal Computer processor
address to the adapter.

lOR

I

This command line instructs the adapter to drive
its data onto the Personal Computer data bus.

lOW

I

This command line instructs the adapter to read
the data from the Personal Computer data bus.

MEMR -

I

This command line instructs the BIOS ROM to
drive its data onto the Personal Computer data
bus.

IRQ2 and
IRQ3

0

Interrupt request 2 or 3 is used to signal the
Personal Computer processor that the adapter
requires attention.

-

Figure 3-13 (Part 1 of 2). Personal Computer/ Adapter
Interface Signals (from Adapter)

Hardware Description 3-61

Signal

I/O

Description

DRQ3

0

DMA Request 3 is used by the adapter to gain
DMA service from the Personal Computer.

DACK3-

I

DMA Acknowledge 3 is used to acknowledge
DRQ3 which is requested by the adapter.

I/O CH RDY

0

I/O Channel ready is used to allow the Personal
Computer to generate WAIT states to extend the
Personal Computer clock cycle up to a maximum
of 2.1 J.Lsec.

RESET DRV

I

This line is used to reset or initialize the adapter
logic upon power-up or after a low line voltage
outage.

T/C

I

Terminal Count: This line provides a pulse that is
gated with DACK3_ which may generate a
Personal Computer interrupt request whenever
the terminal count for the Personal Computer's
DMA channel 3 is reached.

Figure 3-13 (Part 2 of 2) Personal Computer/ Adapter Interface
Signals (from Adapter)

3-62 Hardware Description

Power-On Self-Tests (POST)
The IBM PC Network Adapter provides a pass/fail
indication to the Personal Computer, as long as the
interface is functioning. If the adapter is functioning
but the adapter-Personal Computer interface fails, the
error is posted at power-on time. The adapter responds
to any requests for remote status from other computers
on the network indicating that a failure has occurred.
The following is a list of tests, in order, that are
performed by the adapter.
1.

Microprocessor Self-test
The 80188 microprocessor performs limited
self-test of its functions and certain peripheral
circuits that are integrated within the 80188
microprocessor.
The tests are conditional jump test and register
write test. The conditional jump test verifies the
proper execution of all conditional jump
instructions when the corresponding status flags
are in the set/reset conditions. The register write
test verifies the entire register set by writing and
then chain-copying a certain data pattern (and its
complement) to all registers, and then reading and
comparing the register's final contents with the
original data pattern.
The peripheral tests are interrupt mask test,
spurious interrupt test, and timer 1 test. The
interrupt mask test performs the write, read and
compare operations to the Interrupt Mask Register
(IMR) by using both all ones and all zero patterns.
The spurious interrupt test verifies that no spurious
interrupts are generated by the hardware when all
interrupt masks are off. The timer 1 test verifies
the proper operation of timer 1 and timer interrupt.
Timer 1 is used as the lO-ms clock in the system.

Hardware Description 3-63

If the adapter fails the microprocessor self-test, it

will execute a halt instruction.
2.

ROM Checksum
Following the microprocessor self-test, a ROM
checksum is performed using simple modulo
addition expecting an all zeros result. This
assumes that a precalculated checksum byte stored
in the ROM will provide a zero result.
The adapter executes a halt instruction, if the
results of the addition are not correct.

3.

Unit ID PROM Test
Following the ROM checksum test, the unit ID
PROM is tested by verifying that the byte at
location lAH in the PROM has the value of OOH.
The unit ID is also checked for having a low bit of
zero (because it must be even).

4.

RAM Test
Once the microprocessor, PROM, and ROM have
passed their tests, the RAM is tested and also the
RAM refresh is tested. The dynamic RAM is
refreshed by DMA 1, which is driven by timer 2
periodically. The RAM test verifies the operation
of the RAM, DMA 1, timer 2, and timer interrupt.
If the RAM is not functional, the adapter cannot

perform its intended application. An error is
reported by using the adapter-Personal Computer
interface. Since both digital and analog cable
loop backs require functioning RAM, the adapter
does not perform these tests and continues on to
the adapter-Personal Computer interface test
reporting that the RAM test failed.
5.

Host Interface Tests

3-64 Hardware Description

This test is functionally separated into five
sub-tests. The first portion of the Host Interface
register test is a stand-alone test that requires no
involvement from the host software. The
subsequent tests require synchronization and
cooperation with the host software. The five
sub-tests are as follows:
a.

Host interface register test

b.

GO interrupt test

c.

Data transfer interrupt test

d.

Data transfer DMA test

e.

Host interface control test

The adapter requires an initial synchronization
from the BIOS ROM. Within 500 ms. of the host's
clearing the reset bit, the BIOS sets the CCl and
GO bits in the Status register.
a.

Host Interface Register Test
This test verifies the various functions and
characteristics of the Data register, the
Parameter register, the Adapter Interface
register and the Status register. The Host
Interface register is not accessible from the
adapter. Therefore, the testing of the Host
Interface register is done by the BIOS.
Proper operation of the Data register is
verified by writing, reading, and comparing a
AAH/55H data pattern in a certain sequence.
In addition, the DRF and DRE flags are
verified accordingly.
Proper operation of the Parameter register is
tested by writing, reading, and comparing with
a AAH/55H/xxH/xxH/xxH/xxH/xxH data
pattern where (xx) is a don't care value.

Hardware Description 3-65

Proper operation of the Adapter Interface
register is verified by writing, reading, and
comparing with a AAH/ SIH data pattern. In
addition, the CQP flag is tested accordingly.
Proper operation of the Status register is
tested by writing a OSH (and then a 02H) to
the Status register, reading the Status register
and testing for ISH (and then 12H). Note
that the write with 02H provides a means to
synchronize with the host software.
b.

GO Interrupt Test
This test verifies that the GO interrupt is sent
by the host and is received by the adapter.
This test also verifies that the GO interrupt is
sent by the adapter and is received by the
host. This test requires cooperation with the
host's software.

c.

Data Transfer Interrupt Test
This test verifies that the data transfer
interrupts (both read and write interrupts) are
received by the adapter when the Status
register and Adapter Interface register are
properly configured. This test also verifies
that the data transfer interrupts are received
by the host. This test requires cooperation
with the host's software. Note that this test
verifies the interrupt mechanism, not the
integrity of the data being transferred through
the interrupts.

d.

Data Transfer DMA test
This test verifies that two data bytes are
transferred to the adapter by DMA with a
DMA interrupt. This test also verifies that the
two data bytes are returned to the host with
the TC interrupt. The host's software is
required to test and validate the data bytes

3-66 Hardware Description

returned from the adapter to ensure the
integrity of the data transfers. This is
performed by the BIOS after a reset.
e.

Host Interface Control Test
This test verifies the various functions that are
related to the ownership of the interface.
Functions tested include the following:

6.

1)

The adapter's inability to acquire control
of the interface when the interface is
controlled by the host.

2)

The adapter's ability to acquire control of
the interface after the host relinquishes
control of the interface.

3)

The host's ability to acquire control of
the interface after the adapter
relinquishes control of the interface.

4)

The host's inability to acquire control of
the interface when the interface is
controlled by the adapter.

5)

Generation of the Host Control interrupt
and the Host Relinquish interrupt. This
test requires cooperation with the host's
software.

+ 12 Volt and -12 Volt Presence Test
This test checks the presence of the Personal
Computer's + 12 V and -12 V power supplies.
When either of the two supplies are below the
sense level voltage, a ± 12V not present
condition is provided to the IBM PC Network
Adapter microprocessor. When both of the
supplies are above the sense level voltage, a ±
12V present condition is provided to the IBM PC
Network Adapter microprocessor.
I

I

I

I

Hardware Description 3-67

7.

Digital Serial Loopback
After first initializing the 82586, a test is
performed using the loop back points of the SIC
integrated circuit. The two circuits tested are the
integrated circuit and the adapter interface circuits.
The following tests or error states are created and
tested in loopback mode.
•

Diagnose Command of the 82586

•

No Error Packet

•

Short Frame

•

CRC Error

The adapter cannot perform its function if the
digital serial interface is not functioning. The
analog cable loopback test cannot be performed if
the digital serial interface is not working properly.
The adapter reports the status of a failure to the
Personal Computer.
8.

Analog Cable Test
At this point, all tests have been performed
independent of external equipment and support.
To perform the analog cable loopback test, a
frequency translator is needed to provide
frequency translation. The test also assumes that
the cable can contain active functional traffic, so
the adapter must respect the cable protocol. The
adapter tries to send a test packet addressed to
itself. Because collisions might occur, this test will
try eight times to send a packet and receive it back.
If the analog self-test fails, the adapter reports a
cable loop back test failure to the Personal
Computer. At this point, the adapter may have
errors, but it functions normally with respect to the
Personal Computer.

3-68 Hardware Description

A failure at this point could be because of a
problem in the RF Modem section or an external
failure. The test fails if eight consecutive tries end
in collisions or the test packet did not return. The
adapter reports the status of a failure to the
Personal Computer.

Operational Self-Test
This test is run under normal operation of the adapter
and will generate a return code posting the error.
Constant Carrier Detection-The Sytek SIC contains
circuitry to detect a constant carrier and to inform the
IBM PC Network Adapter processor. The adapter
processor causes the 82586 to abort any transmitting
packet in progress. The constant carrier status is
reported to the Personal Computer by the primary
command Error Report.

Hardware Description 3-69

Configurable Hardware Options
This adapter contains six configurable jumper positions.
•

Jumper Wi is the remote program load (RPL)
feature. Removing the jumper enables the feature.

•

Jumper W2 is a reserved jumper.

•

Either jumper W3 or W4 is used to select IRQ.
The interrupt must be different from any adapter
in your computer. With the jumper in the W3
position, interrupt level 2 is selected. With the
jumper in the W4 position, interrupt level 3 is
selected.

•

One jumper W6 on the center pins of W5 and W7
selects the high I/O base address. Use two
jumpers, W5 and W7, to select the low I/O base
address. See Figure 3-2 on page 3-26 for the
addresses of the registers.

•

One jumper W8 is used to disable or enable the
BIOS ROM. When the jumper is installed, the
BIOS ROM is enabled.

The state of jumpers Wi and W2 is reported back to
the Personal Computer. See network control block
ADAPTER STATUS in Chapter 2 for more
information.
The following figure illustrates the jumper positions on
the adapter.

3-70 Hardware Description

Figure 3-14 Adapter Jumper Positions

Hardware Description 3-71

Traffic And Error Statistics
The adapter keeps and reports on demand some of the
following statistics:
•

Duration of reporting period

•

Quantity of CRC errors received

•

Quantity of alignment errors received

•

Quantity of collisions encountered

•

Quantity of aborted transmissions

•

Quantity of successfully transmitted packets

•

Quantity of successfully received packets

•

Number of times the receiver exhausted its
resources

The reporting period for the IBM PC Network Adapter
is from last reset as expressed in minutes. No provision
is made for resetting the statistics other than a Personal
Computer reset of the adapter or power-up of the
Personal Computer. See network control block
ADAPTER STATUS in Chapter 2 for more
information.

3-72 Hardware Description

Specifications
This section summarizes basic specifications of the
hardware of the IBM PC Network Adapter.

Electrical Power Requirements
The specifications of the power requirements are as
follows.

Voltage

Tolerance

Ripple

Total
Current Used

+ 12.0V

±5%

100 mVpp

0.36A

+5.0V

±5%

100 mV pp

1.40 A

-12.0V

±10%

100 mV pp

0.03 A

Environmental Specifications
Temperature

The operating temperature range is from
10 to 35°C, (50 to 91°F) ambient. The
storage temperature range is from -40 to
60°C, (-40 to 140°F).

Humidity

The operating humidity range is from
8% to 80% non-condensing. The
storage humidity range is from 5 % to
100% non-condensing.

Altitude

The operating altitude is -305 to 2135
meters (-1000 to 7,000 feet).

Hardware Description 3-73

IBM Translator Unit
This section describes the specifications of the
translator unit for the IBM PC Network
The translator unit provides the basic frequency
translation and amplification required in a broadband
network. A single translator unit can serve a network
comprising many local area network adapters and their
attached devices.

Device Description
This section briefly describes the translator unit and
discusses its functions as shown on a block diagram.
This translator unit is implemented on a printed circuit
board that fits inside an enclosure designed to meet
FCC Class B. The enclosure also includes the required
power supply circuits. The translator unit is designed
for high reliability, and has no "field" adjustments.

Functional Description
The function of this unit is to translate a channel with
an input center frequency of 50.75 MHz from the
network into a channel with an output center frequency
of 219 MHz, with the required spectral purity and
signal level. The entire 6 MHz channel is translated
from the lower band to the upper band.

3-74 Hardware Description

The following is a block diagram of the IBM Translator
Unit.

Signals from LAN

I
I

Diplexer Filter

I
I

Oscillator
Output
BPF (F2T)

I

RF Amplifier

BPF/
Amplifier

Amplifier
and Filter

I

RF
Amplifier
BPF
(F1 T)

I
I

Mixer

I
I

Figure 3-15 Translator Unit Block Diagram

Hardware Description 3-75

The block diagram can be divided into four main parts
discussed in the following sections:
•

Input/Output circuits

•

Reception circuits

•

Local oscillator circuits

•

Transmission circuits

Input/ Output Circuits
Diplexer Filter

A conventional low-loss band
separator with a stop-band
attenuation of 25 dB. Its
function is to prevent the
transmitted signals from
entering the reception path,
and to limit the amount of
unwanted signals entering the
translator.

Reception Circuits
Bandpass Filter FIR

Has a center frequency of
50.75 MHz and a bandwidth of
approximately 6 MHz. This
device filters out most
out-of-band signals, lowering
the input intermodulation
requirements of the amplifier
that follows it.

RF Amplifier

A 25 dB low-noise amplifier
providing the required signal
level to the mixer, for best
intermodulation and low loss

3-76 Hardware Description

performance. Its output is
matched to the mixer's 50 ohm
impedance.
Mixer

A high-performance
double-balanced mixer. Its
local oscillator tap requires a
+ 7 dBm signal level for
optimal operation.

Local Oscillator Circuits
Crystal Oscillator

A common emitter oscillator
whose frequency is controlled
by a high-stability crystal. This
oscillator provides the required
frequency stability for the unit.

Amplifier and Filter

Provides a + 7 dBm signal to
the local oscillator's mixer tap
with the required spectral
purity for having the lowest
spurious level from the mixer.

Transmission Circuits
A typical output signal level of +50.25 dBmV is
provided to the trunk, after a translator gain of 36 dB
(typical).
Bandpass Filter Fl T

Removes unwanted
out-of-band products from the
mixer's output, and matches
the amplifier's input impedance
to the mixer's 50 ohm
impedance.

RF Amplifier

Amplifies the signal to the
required output level, providing

Hardware Description 3-77

25 dB gain. It is based on a
low-distortion solid state
design.
Bandpass Filter F2T

3-78 Hardware Description

Removes unwanted products
generated in the amplifier and
provides the ultimate
attenuation of all unwanted
out-of-band signals reaching it.

The IBM PC Network l:able ~ystem
This section describes the cable system components
used in the IBM PC Network. The connection
hardware and kits used in the IBM PC Network are
compatible with broadband cable TV components.
Signal levels are pre designed to provide the necessary
tolerance for each IBM PC Network Adapter. A fully
configured network, using IBM components, can
support 72 nodes with a maximum radius of 1000 feet.

Cable System Components
The cable system consists of six components:
•

The Translators Unit's connection hardware

•

Base Expander

•

Short Distance Kit

•

Medium Distance Kit

•

Long Distance Kit

•

IBM coaxial cable in either 25, 50, 100, or 200
feet increments

Translator Unit's connection hardware
These components allow attachment of up to eight
computers to the Translator Unit. A directional coupler
is provided within the components to allow connection
for the IBM Base Expander.

Base Expander
When this component is attached to the connection
hardware, it allows connection for up to eight Short,

Haroware Description 3-79

Medmm, or Long Distance Kits. Signal levels at the
taps on the Base Expander are not compatible with the
Adapters. A Test Tool is provided for diagnostic
purposes.

Short Distance Kit
This kit attaches to any of the eight taps on the Base
Expander. The kit allows you to connect up to eight
computers.

Medium Distance Kit
This kit attaches to any of the eight taps on the Base
Expander through an additional 400 feet of cable. The
kit provides connection for up to eight computers.

Long Distance Kit
This kit attaches to any of the eight taps on the Base
Expander Kit through an additional 800 feet of cable.
The kit provides connection for up to eight computers.

IBM Coaxial Cable
The cable is standard RG-11 type coaxial cable
providing different lengths: 25, 50, 100, and 200 feet.
These cable increments can be combined to provide the
400 and 800 foot lengths required by the Medium or
Long Distance Kits. For the 400 feet length, you must
use either four 100 foot lengths or two 200 foot
lengths. For the 800 foot length, you must use four
200 foot lengths. In addition, up to 200 feet of cable
can be installed between the kit and each computer on
the network. For the 200 foot lengths, you must not
use eight 25 foot cables.
The following figure illustrates how the previously
described components are connected together.

3-80 Hardware Description

r---------------l

,
I

I
I
I

0

I

"

I

I BM Translator
Unit

I

I
I
I
I

I
I
,

,

,

,
I
I
,
I
I

I
I
I

I
I
I

,

L_________ ----,

I

Ill.

I

L __ ~

IBM Base
Expander

IBM Short
Distance Kit
400 Feet

800 Feet

IBM Medium

IBM Long
Distance Kit

\
Hardware Description 3-81

Connection Hardware
The connection hardware consists of a 5 foot black
RG-6 cable, a directional coupler, a one foot beige
RG-6 cable, and an 8-way splitter. The taps on the

8-way splitter provide the signal levels compatible with
the adapters. The expansion tap on the directional
coupler provides an unattenuated signal for attachment
of a Base Expander. If a tap on the 8-way splitter is to
be used, the terminator must be removed. If a tap is to
be discontinued, the terminator must be replaced.

o

5 Foot Cable

~

1 Foot Cable

Cable from
- - Adapters
connect here

Directional
Coupler

t

Expansion Tap

3-82 Hardware Description

Electrical Specifications
-Impedance, (any node)

75 ohms
nominal

-Attenuation, (forward path)

*

39.9 dB ± 1.5
39.9 dB ± 1.5

-Attenuation, (reverse path) *
-Insertion loss, (forward path)

**

0.7 dB
maximum

-Insertion loss, (reverse path) **

0.5 dB
maximum

-Isolation, node to node

18 dB
minimum
(forward and
reverse
paths)

-Return loss, (any node)

14 dB
minimum
(forward and
reverse
paths)

Note: Forward path is 219 MHz. Reverse path is
50.75 MHz.

* Translator Unit tap to any tap on the 8-way
splitter.
** Translator Unit tap to the expansion tap.

Hardware Description 3-83

Base Expander
This component consists of an 8-way splitter and a
male adapter. The taps on the 8-way splitter provide
signal levels compatible with either the Short, Medium,
or Long Distance Kits. The signal levels at the taps of
the splitter have not been attenuated enough to allow
attachment of an adapter. A 30 dB attenuator is
provided as a test connector for diagnostic purposes.
The test tool allows connection for an adapter to the
Base Expander.

o

Expansion Tap-.....
(Connection for
~
either the. Short,
IBM B
Medium, or Long ---.e\0 0 0 0 r a s e
• 0 0 0 0
Expander
D·ISt anc e K't
I s)
Note:
For the Medium and Long Distance kits, 400
or 800 feet of cable must be installed between
the kit and the Base Expander.

3-84 Hardware Description

Electrical Specifications
-Impedance, (any node)

75 ohms
nominal

-Attenuation, (forward path)

9.5 dB ±0.5

-Attenuation, (reverse path)

9.5 dB ±0.5

-Isolation, (node to node)

18 dB
minimum
(F orward and
reverse
paths)

-Return loss, (any node)

14 dB
minimum
(Forward and
reverse
paths)

Note: Forward path is 219 MHz. Reverse path is
50.75 MHz.

Hardware Description 3-85

Short Distance Kit
This kit consists of a 1 foot beige RG-6 cable, a 20 dB
attenuator, and an 8-way splitter. The taps on the
8-way splitter provide signal levels compatible with the
adapters.

o

--..,

I
I

Cable from
Adapters
connect here
I

I

I
I

...I

Note:
Up to 200 feet of cable may be installed between
the Adapter and the 8-way splitter.

3-86 Hardware Description

Electrical Specifications
-Impedance, (any node)

75 ohms
nominal

-Attenuation, (forward path)

29.8 dB ± 1.0

-Attenuation, (reverse path)

29.6 dB ± 1.0

-Isolation, (node to node)

18 dB

minimum
(forward and
reverse
paths)
-Return loss, (any node)

14 dB

minimum
(forward and
reverse
paths)
Note: Forward path is 219 MHz. Reverse path is
50.75 MHz.

Hardware Description 3-87

Medium Distance Kit
This kit consists of a 10 dB tilt attenuator, an 8 dB
attenuator, a 1 foot beige RG-6 cable, and an 8-way
splitter. The taps on the 8-way splitter provide signal
levels compatible with the adapters. The 10 dB tilt
attenuator compensates for the attenuation versus
frequency characteristics of the 400 foot length of cable
between the Medium Distance Kit and the Base
Expander.

3-88 Hardware Description

o

--,
I

I
I
Cable from
Adapters
connect here
I

I

Tilt
Attenuator
(10 dB)
Note:
Up to 200 feet of cable may be installed between
the Adapter and the 8-way splitter.

Hardware Description 3-89

Electrical Specifications
-Impedance, (any node)

75 ohms
nominal

-Attenuation, (forward path)

19.7 dB ±l.1

-Attenuation, (reverse path)

26.6 dB

-Isolation, (node to node)

18 dB
minimum
(forward and
reverse
paths)

-Return loss, (any node)

14 dB
minimum
(forward and
reverse
paths)

± 1.8

Note: Forward path is 219 MHz. Reverse path is
50.75 MHz.

3-90 Hardware Description

Long Distance Kit
This kit consists of a 5 dB tilt attenuator, a male
adapter, a 10 dB tilt attenuator, a 1 foot beige RG-6
cable and an 8-way splitter. The taps on the 8-way
splitter provide signal levels compatible with the
adapters. The 5 and 10 dB tilt attenuators compensate
for the attenuation versus frequency characteristics of
the 800 foot length of cable between the Long Distance
Kit and the Base Expander.

Hardware Description 3-91

o

--,

I

Connection
for any tap
on Base
Expander

I
I
I
I
I

I
I

Cable
from Adapters
connect here
800 feet

I
I
I

I
I
I
I
I

I

__ ...JI
Tilt
Attenuator - - - - - - '
(5dB)
Tilt
Attenuator
(10 dB)
Note:
Up to 200 feet of cable may be installed between
the Adapter and the 8-way splitter.

3-92 Hardware Description

Electrical Specifications
-Impedance, (any node)

75 ohms
nominal

-Attenuation, (forward path)

12.7 dB ±0.8

-Attenuation, (reverse path)

23.0 dB ± 1.8

-Isolation, (node to node)

18 dB
minimum
(forward and
reverse
paths)

-Return loss, (any node)

14 dB
minimum
(forward and
reverse
paths)

Note: Forward path is 219 MHz. Reverse path is
50.75 MHz.

Hardware Description 3-93

IBM Coaxial Cable
All cable lengths are RG-l1 coaxial cable with male
connectors on both ends of the cable. One end has a
female-to-female adapter and a 75 ohm terminator
attached to the male connector. Cables can be
combined by removing the 75 ohm terminator and
joining the male end of one cable to the female adapter
of the other. When building the 400 and 800 foot
lengths of cable required by the Short and Medium
Distance Kits, use 200 foot increments of cable to limit
the number of cable connections required. When
building cable lengths for installation between an
Adapter and an 8-way splitter, no more than 3 cables
should be combined.

Cable Characteristics
The IBM Cable has the following characteristics:
•

RG-ll

•

Copper-covered steel-center conductor

•

Gas-expanded polyethylene dielectric

•

Inner shield of aluminum-polypropylene-aluminum
laminated tape bonded to the dielectric

•

#34 A WG bare aluminum braid wire

•

Non-bonded aluminum-polypropylene-aluminum
tape

•

#34 A WG bare aluminum braid wire

•

Jacket of polyvinylchloride

•

Nominal outside diameter 0.405 inch (10.29 mm).

3-94 Hardware Description

Electrical Specifications
-Impedance

75 ohms
nominal

-Attenuation (at 20° C per 100 ft.)
5 MHz
55 MHz
83 MHz
187 MHz
211 MHz
250 MHz
300 MHz

0.29 dB
0.96 dB
1.18 dB
1.75 dB
1.90 dB
2.05 dB
2.25 dB

-Return Loss (5-300 MHz)

30 dB
minimum

Hardware Description 3-95

Cable Network Specifications
•

Channel Assignments

Return Channel T -14
Forward Channel J
•

50.75 MHz
219 MHz

RF Connector
The RF connector is a type F connector. The RF
connector is grounded on the adapter and is
grounded on the Translator Unit.

•

RF Input/ Output
The RF input/output is transformer coupled.

•

RF Modem Signal Timing
Figure 3-16 shows typical modem signal timing.

3-96 Hardware Description

~t2..l

:-'t4.J
I

I

1-jt3
I

I
I
I

I

TX.KEY

-+-lt1t-

I I

I

I!
TX.CARRIERI
RECEIVED
CARRIER

I

~ t9 ~

DCD

:

~------------~~LI_________________!~I
:
-f1

DATA

~ t5
I
I

+-l t10 l"+
____

~~

I

I

It11-: ~

!--t11

i~

: ~:

4

I

I
I

I

I
I

I
I

~t6-1I

I

I
I
I

:-t7--l

I

t1 = 1.5 11 sec
t2,t4 = Channel Propogation Delay
t3 = 1 11 sec
t5 = 1.3 11 sec
t6,t8 = 1.3 11 sec

I

l-t8~

I I
I

I

I
I

I

I

t7 = 3.5 11 sec
t9=±1J1sec
t10 = ± 1.7511 sec
t11 = ± 150 11 sec

Figure 3-16 RF Modem Typical Timing Diagram

Hardware Description 3-97

•

Error Rate Versus SiN Ratio
The minimum input for a bit error rate of 1 in 108
is -7 dBmV with an input SiN ratio of at least 33

dB.
If these minimum conditions are met, then the IBM

PC Network adapter has a bit error rate of less
than 1 error in 1013 bits after CRC detection and
retry.
•

Complete Cable Network overview

Figure 3-17 shows the complete network signal losses
and attenuation values. See Appendix B for the
complete network specifications.

3-98 Hardware Description

ce·
"c

...
CD

...,

Co)

-..J

n

o
3
"C
CD

LANA

N[TloIOflI( ATfEIfJ ....nON

nOUTPUT

REVERSE

HETWCJ!I< ATTENUATION

1... 2">!1dB ....

,,~V~~~~R~~dB

LMIA

AX !IflJT

AMPliFIER GAIN
MAX ~STA11£D_

LEVEL OIlHU.rr
DAMAGE

...

CD

n
II)

C'"

CD
2:
CD

~

...o

"

-'}
-"

CD THRESHOLD

Electrical Specifications
The following specifications apply to any version of the
cable network, from a minimum 8-node configuration
to a maximum configuration of 72 nodes.
-Impedance, (any node)
-Attenuation, (forward path)
-Attenuation, (reverse path)

75 ohms
nominal

*
*

41.75 dB
±4.5
41.75 dB
±3.0

-Isolation, (node to node)

18 dB
minimum
(forward and
reverse
paths)

-Return loss, (any node)

14 dB
minimum
(forward and
reverse
paths)

Note: Forward path is 219 MHz. Reverse path is
50.75 MHz.
Note: (*) Includes all cable between the
Translator Unit and the Adapter.

3-100 Hardware Description

Notes:

Hardware Description 3-101

Notes:

3-102 Hardware Description

Chapter 4. Network Design

Contents
Introduction ............................. 4-3
Reviewing Your Needs .................. 4-4
Surveying the Physical Layout . . . . . . . . . . . .. 4-5
Expanding Beyond the Cable Kit .. . . . . .. 4-5
Physical Layout ........................ 4-6
Component Description ................. 4-7
Splitters ........................... 4-7
Directional Taps .................... 4-7
Tilt Compensators ................... 4-8
Terminator ......................... 4-8
Attenuators ........................ 4-8
Computing Signal Levels and Network
Attenuation ........................... 4-9
Signal Level Margins .................... 4-9
Network Attenuation .................. 4-10
Design Procedure ........................
Choosing a Topology ..................
Star Topology .....................
Bus Topology ......................
Extended Coverage .................

4-11
4-12
4-12
4-15
4-20

Future Needs ............................ 4-21
Adding Outlets to the System ............ 4-21
Adding Branches to the System ........... 4-21
Test Equipment ..........................
RF Sweep Generator ...................
RF Sweep Receiver ....................
RF Voltmeter ........................
More Specialized Equipment ..........

4-22
4-22
4-23
4-23
4-24

Checking a Network ...................... 4-24
Where to Check ...................... 4-25
When to Check ....................... 4-25

Network Design 4-1

How to Check ........................
Method 1: Forward Path Test .........
Method 2: Return Path Test ..........
Method 3: Walk-through Test .........
What to Look for when Testing ..........
What Can Be Changed if a Problem Is
Found ...........................

4-2 Network Design

4-25
4-25
4-27
4-28
4-31
4-32

Introduction
This chapter discusses how to design a Local Area
Network using the IBM Translator Unit, and IBM PC
Network Adapters within each of the Personal
Computers. Most of this information deals with the use
of either the Short, Medium, or Long Distance Kits and
how to combine components in a facility to connect
your Personal Computers. The components in the IBM
PC Network cable system are designed to easily
connect up to 72 nodes. The Translator Unit can only
be used on a passive data type of network. If the Short,
Medium, or Long Distance Kits do not meet your
network requirements, then the information here will
assist you in designing your own network. If your
requirements are for other simultaneous network
services, then you must use another commercially
available frequency translator with the proper filters.
The basic principles used in network design are
described. Following the procedures described here
will help you to configure a network using either the
Short, Medium, or Long Distance Kits. If you need to
expand beyond the capabilities of the kits, the same
principles apply to larger networks. You can design
larger networks that will work properly if the proper
signal level is delivered from the Translator Unit to
each node, and to the Translator Unit from each node.
When the necessary signal level cannot be delivered to
a node, you can add amplifiers to extend the range of
the network but not with the IBM Translator Unit.
However, the design of such networks is beyond the
scope of this book. Professional broadband or CATV
network design engineers should be consulted to ensure
the successful design of such networks. It is
recommended that any network extending beyond the
range possible with the cable kit be designed, or at least
the plans reviewed, by an experienced network/ CATV
design professional. Such a consultation can help to
identify possible problems with installation, design and
use, both now and in the future.

Network Design 4-3

Network design involves many steps. The design task
using the IBM PC Network is much simpler than if you
were starting from scratch. The medium, topology,
access method, and frequencies are all defined. If you
choose to design your own network, you need to
consider the following approach to the design:
•

Reviewing your needs

•

Surveying the physical layout

•

Designing the network

•

Installation of the network

•

Certification of the layout

Reviewing Your Needs
The first step in designing your IBM PC Network is to
decide how the network will be used, who will use it,
and where they will use it.
The IBM PC Network is used to transfer data among
different Personal Computers within a local area. In
addition, with the proper frequency translator, a
network like this can also be used to carry voice and
video signals. Keep these additional applications in
mind when deciding where to place the outlets and run
the cable.
If you have an existing base of Personal Computers and

you want to connect these to the network, part of your
survey is already done. You know who will use the
network and where some of the outlets need to be. If
you do not have any Personal Computers currently
installed, you need to determine where they will be
located. Estimate where additional nodes for future
expansion should be placed, and plan your layout
accordingly.

4-4 Network Design

Surveying the Physical Layout
The following procedures can guide you in the
surveying task.
1.

Obtain a scaled drawing of the entire facility.
Architect's blueprints are best, but if you're only
interested in wiring a suite of offices, a small
sketch that you draw yourself will suffice.

2.

Mark the locations that you know will be network
outlets. These locations could be areas that
already contain Personal Computers or will have
them in the future. Mark these locations on the
drawing as close as possible to where the actual
connection outlet will be required.

3.

Add to this drawing one cable outlet for every
desk, or one that could be shared by a cluster of
desks. Planning for this kind of expansion might
seem excessive now, but it could save extensive
rewiring later.

4.

Note hallways and other areas suitable for routing
the main cable from the Translator Unit to the
outlets. Mark possible paths on the drawing for
selection of the routes.

5.

Decide on a location for the frequency translator.
In a larger network, place the frequency translator
in a central location to keep cable branches short.
Also, mark the location of the power outlet for the
translator.

Expanding Beyond the Cable Kit
When your network requires more taps or a longer
cable run than is possible to achieve with the cable kit,
you must verify that the signal level delivered to each
node on the network, including the frequency
translator, is correct. If you cannot verify this yourself,

Network Design 4-5

you can obtain help from broadband/CATV design
engineers or from cable installation consultants that
have the capability.

Physical Layout
The purpose of the building survey is to plan distances
for the network. Check the materials and construction
of the facility's walls, ceilings, and floors wherever you
install the cable. From this survey, a more detailed plan
for where to place and how to secure the cable should
evolve. Many options are possible, above a false
ceiling, in a conduit raceway, or cable clamped to the
wall. If this is a bigger job than you can or want to
handle, call in a contractor. If you don't know exactly
what is required by local building codes, some advice
from a professional consultant is well worth the cost.
The drawings for the building can be helpful to a
contractor because they reveal materials used, they
show what is behind walls, ceilings, and floors, and they
help identify cable pathways. There might be existing
cable conduit or trays for installing such wiring. The
drawings should show these in detail.
When installation starts, make any changes to the
original drawing as they occur. This is very helpful
when you are using the drawing for problem
determination.
The cost of the installation depends on many factors.
A contractor experienced in laying cable knows the
right questions to ask, and might suggest some
alternative approaches. The complexity of the
installation is also affected by your requirements, such
as:
•

Local Fire and Electrical codes

•

How the cable will be routed

•

Whether outlet boxes and plates will be used

4-6 Network Design

Component Description
The following describes some of the components used
in broadband networks. Some general specifications
are also described. When designing a network, you
need to identify these specifications in order to select
the correct components.
Passive components are used to distribute the signal
power to the necessary outlets. Each component has its
own function as follows:

Splitters
Splitters divide or combine power. The power division
causes an insertion loss of approximately 10 log n(dB)
where "n" equals the number of power splits. The
splitter has internal losses caused by impedance
mismatches and resistive losses. Isolation prevents any
power passing between the lines that have been split.
For a two-way splitter, signals and power are
symmetrically divided into two separate lines. When a
two-way splitter is used, the line that was split will have
a 3 dB level reduction and a 0.5 dB internal loss. The
total insertion loss is approximately 3.5 dB.

Directional Taps
The directional tap removes a small amount of power
from the line input, causing an insertion loss to the line
output. A directional tap is a 3 connector device
consisting of a line input, line output, and a tap off port.
The directional tap removes a small amount of power
from the line input and directs it to the tap-off port.
The difference in amplitudes between the line input and
the tap off port is referred to as the tap attenuation
value. Efficient removal of required signal levels leaves
the majority of line power intact, capable of suppling
many more taps.

Network Design 4-7

The insertion loss in the tap occurs between the line
input and the line output. The tap attenuation occurs
between the line input and the directional tap port. The
isolation occurs between the directional tap port and
the line output port.

Tilt Compensators
Coaxial cables have attenuation that varies with
frequency. The higher the frequency, the higher the
attenuation. This effect is known as tilt. Tilt
compensators have attenuation that varies with
frequency. The higher the frequency, the lower the
attenuation.
These devices equalize cable tilt so that the attenuation
at both the high and low frequencies are the same. The
tilt compensator has the inverse tilt relationship as the
cable it is equalizing. Tilt compensators have
symmetrical insertion loss and can be used in either
direction.
Tilt compensators have different tilt specifications over
different frequency bandwidths. Selecting a
compensator that has a different bandwidth
specification can provide the value of fixed equalization
that is desired if the value of cable tilt that you are
looking for is not a standard value.

Terminator
This device is used to prevent reflections of power back
into the cable system.

Attenuators
Attenuators provide a constant attenuation over a wide
range of frequencies. This attenuation is symmetrical

4-8 Network Design

from either end. It does not matter in which direction
the attenuator is connected.

Computing Signal Levels and Network
Attenuation
This section discusses signal levels in an IBM PC
Network. The design of the network includes providing
a signal path between the frequency translator and user
devices, to ensure adequate signal strength at each
node. Each layout design drawn on paper can be
checked for providing proper signal amplitude by taking
the transmitter output level and subtracting the required
receiver signal level. The design must achieve nominal
attenuation values that satisfy the level difference
requirements between the transmitter and the receiver.

Signal Level Margins
This section discusses signal level margins allowed at
each node. The cause of a signal loss in the network
and how to account for it is also described.
The specified values are as follows:
Adapter input range:

-7 to 24 dBmV-operating
range
8.5 dBmV-nominal
61.25 dBmV-maximum
input without damage.

Adapter output:

56 dBmV ±4 dB
56 dBmV-nominal

Frequency Translator
input range:

7.25 dBmV to 21.25 dBmV
14.25 dBmV-nominal
60 dBmV-maximum input
without damage.

Frequency Translator

Network Design 4-9

36dB±4dB
36 dB -nominal

gain:

Network
Attenuation:

41.75 ±3 dB @ 50.75 MHz
41.75 ±4.5 dB @ 219 MHz

Network Attenuation
Passive loss is the attenuation caused by all the passive
components in the network. This loss is constant across
the entire frequency spectrum on the network. Cable
loss is the attenuation caused by the coaxial cable.
Cable loss increases with frequency and is called cable
tilt. The IBM PC Network Medium and Long Distance
Kits have built-in tilt compensation. Different tilt
compensation is required for different types and lengths
of coaxial cable.

The cable attenuation for the IBM PC Network in the
forward path (219 MHz) is 1.95 dB per 100 feet and in
the reverse path (50.75 MHz) is 0.95 dB per 100 feet.
A 100 foot length of RG-11 U cable has 1.95 dB of
attenuation at 219 MHz, and 0.95 dB of attenuation at
50.75 MHz. If you connected an equalizer that had
0.95 dB of attenuation at 219 MHz, and 1.95 dB at
50.75 MHz to the length of coax, the resultant
equalized flat loss would be 2.9 dB from 50.75 MHz
through 219 MHz. Flat loss in an equalized cable is
equivalent to passive loss.
Network balancing consists of adjusting the passive loss
in the path to each node to obtain signals within the
acceptance range at the PC Network Adapter receiver
and at the frequency translator receiver. The loss in a
path can be adjusted by changing component values,
cable length, or the distribution structure.
•

Splitters divide power for symmetrical separation.

4-10 Network Design

•

Equalized cable loss transports the signal with a
minimum of tilt.

•

Attenuators decrease signal level.

•

Directional taps remove a small amount of signal
power from a signal line and produce a tap signal
level lower than the supplying line. Taps are rated
by an attenuation value.

•

Fine tuning of level (changing level by less than 3
dB) can be accomplished by either changing the
length of cable or by using precision attenuators.

Design Procedure
This section provides a checklist of steps to follow
when designing a network.
1.

Survey the facility to determine the required
installation effort, and to identify cable pathways
and outlet locations.

2.

Determine the physical layout of the cable system.

3.

Mark the cable path on the drawing from the
frequency translator through the facility to each
outlet.

4.

Compute or estimate the length of each cable
segment and calculate the cable loss of each
segment.

5.

Calculate the signal level delivered to each outlet
from the frequency translator. Calculate the signal
level delivered to the frequency translator from the
farthest node on each branch.

After completing this design procedure, a design
consultant can check over your facility and your design.

Network Design 4-11

A design review before installation by a qualified
broadband/ CATV engineer can identify any po~sible
problems you might face during installation and use.

Choosing a Topology
The first step in any design of a network is to define the
cable routing topology. If all of the nodes are located
in clusters, a star topology can be the most appropriate.
If the nodes are adjacent to a long run, similar to offices
on each side of a long hallway, a bus topology is most
appropriate. If uniform outlet distance for a large area
is required, a tree or multiple bus topology should be
used.

Star Topology
The star topology is the simplest network to design and
install because the attenuation path is a single line
between the Translator Unit and the node. This
topology is made up of mostly cable series attenuation
and has a straight-forward control on errors.

4-12 Network Design

Where:

( 0--)

Represents a node

Figure 4-1 Sample Star Layout

The component tolerances add to provide one simple
uncertainty. This aspect of the topology simplifies the
transparent network design requirement. The star
topology's main trade off is that it requires large
amounts of cable to implement a large-scale network.
For a small-scale network, this can be the most
cost-effective solution.

Network Design 4-13

Example:
Problem--Design a network that supports
two nodes that are two hundred
feet apart.
Solution--Locate the Translator Unit in
the center of the two nodes
and route a hundred feet of
RG-ll/U coaxial cable to each
node. A two-way splitter
provides the outputs with a
minimum of error. Place an
attenuator on each end of the
splitter and connect the
cable to the attenuators.
The design example is the simplest solution to the
problem. The design does not allow for expansion.
This network would require redesign when you decide
to connect additional nodes. If the two-way splitter has
an insertion loss of 3.5 dB to each output, and the
coaxial cable has an attenuation of 0.95 dB per 100 feet
at 50.75MHz (return path) and an attenuation of 1.95
dB per 100 feet at 219MHz (forward path), the
attenuation value can be calculated. The IBM PC
Network devices require a network attenuation of
41.75 ± 3 dB in the return path and an attenuation of
41.75 ±4.5 dB in the forward path.
If the attenuation of the splitter, cable and the

attenuators are within the network specifications, the
design is acceptable. A quick check of the component
errors reveals that the splitter has a ±0.25 dB tolerance
and the tilt of the coaxial cable is 1.0 dB. The total
possible component error is less than the required
network tolerance. The design will work if the nominal
attenuation of the design example does not introduce
additional error.
Solving for the attenuator value, we find that the ideal
attenuator has 37.30 dB in the return path and 36.30
dB in the forward path. Since attenuators are passive
devices the least error would result if the average value

4-14 Network Design

of 36.80 dB was used. This would present a problem to
the designer since the value of 36.80 is not a standard
value. To make sure that the selected standard value
attenuator works, perform an error analysis.
As the standard values of attenuators are 3, 6, 10, and
20 dB, cascading certain values produce a 36 ± 1 dB
attenuator. If this value is added to the attenuation of
the splitter and the cable, the design meets the path
attenuation by 0.45 dB. You can verify this by adding
the splitter, cable and attenuators, attenuation, and
tolerances together and comparing the result to the
network specification for return path loss.

Bus Topology
When the outlet design suggests a bus topology, the
material cost may be lower than the star topology. The
bus topology requires only one main feeder cable that
distributes the proper signal levels to the outlets by
providing the proper attenuation.
The bus topology has a slightly different design
approach than a star approach. The attenuation path to
an outlet of a bus network can include the insertion loss
of several devices in cascade. The insertion loss of the
passive device may have a small dependency on
frequency. When the passive device is placed in
cascade, the dependency may accumulate into a large
path attenuation error. It is very important to select
parts that have insertion loss information at several
frequencies. This information reduces the design error
in the network.

Network Design 4-15

Frequency
Translator

Where:
((--)

p--)

Represents a terminator

R.p""." • .,d.

Figure 4-2 Sample Bus Layout

Passive components have tolerance specifications for
insertion loss, frequency response, and tap attenuation.
The insertion tolerance can accumulate when placed in
cascade. When designing a network, it is important to
control these tolerances. If the network is to be
implemented from paper to practice and the network is
not going to be tested for path attenuation at all nodes,
limit the number of cascaded insertions. If the design is

4-16 Network Design

tested in both paths, it can have cumulative insertion
tolerances that exceed the allowable path attenuation
error. The network can require field selection of
components and slight reconfiguration in the field to
bring the network within specifications.

Translator
Unit

a
a
a

Level

=4

Level

=4

- 2A ± 28

- A ± 8

Level = 4
Where:
Insertion = A
I nserti on tolera nee = ± 8
(O) __ --Means a node

Figure 4-3 Cumulative Insertion Error on a Bus Structure

Note: Neglect the cable and assume that all taps
have the same nominal tap attenuation value.
In the figure, all of the taps have the same insertion
attenuation of "A", with an insertion tolerance of "B".
The taps following the first tap have a higher
attenuation value, due to the cascaded insertions. Also
note that the figure neglects the cable attenuation. If
the insertion loss "A" is made smaller, the difference
between the taps will be smaller. In the cascade shown,
the center tap has the average attenuation difference
between the first and the last taps. This assumption is
good for tap-to-cable insertion attenuation ratios as

Network Design 4-17

small as 0.5 : 1. If the average tap is designed to have
the nominal path attenuation, then a symmetrical error
occurs in the first and the last taps.
The previous discussion made the assumption that the
insertion attenuation "A" was made as small as
possible. High tap isolation values have the smallest
insertion losses. Smaller insertion losses introduce less
cascade error to the next tap of the same isolation
value. High tap isolation values can only be used when
large signal levels are fed into the bus. The trade-off of
this error-control method is poor power utilization.
Many more nodes can be accommodated when the tap
isolation range is between 20-30 dB, without incurring
the large insertion errors of the low isolation directional
couplers.
The transition between tap attenuation values can also
be studied to minimize cascaded error. At the last value
of tap insertion "A", the attenuation from the nominal
tap is two insertions and two cable length insertions
from the input of the next cascade tap attenuation
value. The advantage of the insertion loss being
incurred after a tap can help the next 3 dB lower tap
attenuation value to be closely centered about the
nominal path attenuation. If the second group of three
taps has the same insertion attenuation as the first
group of three taps, the nominal value would fall in the
middle. If the cable attenuation and the tap insertion
added up to 1 dB, this method reduces errors. Use this
method when it is not required to have taps located in
exact locations. Therefore, if the taps can be made
location independent, the error accumulated in a bus
structure can be reduced below the tap selection
increments of 3 dB. This method, for example,
recovers 1 dB of error that would have been used in
permitting taps to be located in any position along the
bus.
If the cable length between the taps is held relatively

constant for a given tap insertion value, the bus can be
modeled as a replicating unit that has one cable
insertion and one tap insertion. This concept allows the

4-18 Network Design

replicating units to be cascaded like lamp extension
cords. The first cascade of three values uses one tap
attenuation value, while the next cascade of three taps
uses the next three dB lower tap attenuation value. If
the insertion loss of the tap increases, the tap spacing
can be decreased. If the bus requires tilt compensation,
the structure can be repeated.
If two groups of three cascaded taps are implemented,

the nominal levels appear on the second tap of each
group of three taps. When the cable attenuation
non-linearities are considered, it may be better to
design the nominal of the first group of three to have a
higher return attenuation, and the nominal of the
second group of three to have a lower forward
attenuation. If these nominal errors are symmetrical
around the nominal network attenuation, the lowest
error approximation can be achieved. Verification of
these concepts can be time consuming.
Another method of reducing the insertion attenuation
effect on cascaded output levels is to increase the tap
from a one-way to a two-, four-, or eight-way. This
change does not increase cascaded insertion error.
These devices use a single insertion tap connected to a
power splitter, providing more outputs with fewer
insertions.
Drop-line cable errors from any feeder cable must be
taken into account when designing the bus distribution.
It is best to make all drop cables the same length.
Minimum drop cable tolerances allow an increase in the
amount of insertion tolerance permitted.
If feeder cable tilt error becomes too large to

accommodate, tilt compensation is required. Periodic
spacing results in the least amount of nominal
attenuation error to the outlets. Normally an
uncompensated bus has too little attenuation in the
return path and too much attenuation in the forward
path. When tilt compensators are used in a distribution
bus, it is possible to over compensate the bus. This
requires that the return path be checked for over

Network Design 4-19

attenuation and the forward path be checked for under
attenuation. This is in addition to the two conditions
mentioned for uncompensated bus topologies.
If tilt compensation is required in a cable layout, it is

easier to compensate a branch than it is a feeder line.
Branches are used to distribute signal power to the
feeders. This is analogous to a highway, providing
access to individual neighborhoods. The highway is the
branch, the neighborhood street is the feeder, the
driveway is the drop lines, and the garage is the node
(outlet) of the network.
A tree topology allows the functional separation of
responsibilities. The branch divides the signal power
among the feeder cables, and the feeder cables
distribute that power to the outlets. An example of a
tree topology is a two-way splitter that branches into
two bus feeder lines. The branch can resemble a small
feeder bus, except that its outputs branch into other bus
topology feeder lines. The branch is a logical extension
of the bus design discussed previously.

Extended Coverage
The limiting factors in extending the range of the
network are the cable attenuation in the forward path,
equalization limitations of the fixed equalizers, and
tolerances of the component values. The difference in
cable attenuation does not cause a problem when using
the IBM kits, because the longest cable run possible is
1000 feet from translator to adapter.
Rigid aluminum low-loss cable or amplifiers would have
to be used. Both of these alternatives are beyond the
scope of this book.
When designing cable networks, include expansion into
the design. The simplest way to expand the network is
to design unused splitters or taps into the branches.

4-20 Network Design

Future Needs
This section contains some notes on planning for future
expansion of your network, including extending the
coverage to add new nodes and connection to other
networks.

Adding Outlets to the System
The easiest way to expand an existing network is by
connecting new Personal Computers to existing nodes
that were designed into the network and left idle. It is
best to design your system with expansion in mind.
One of the most common techniques used to design for
expansion is to leave idle taps on every multi-tap in the
system. When four taps on every eight-port tap are left
idle, the network has a 100% expansion capability.
In some areas covered by the network, you should leave
room for more expansion if multiple services are to be
added in the future. Incorporating video or voice into a
network can lead to a need for two or three taps in each
office requiring such services. For most small office
applications, planning for one tap for each desk in the
facility plus some extra taps, should satisfy most
requirements.

Adding Branches to the System
For networks that require major expansion, outlets
might not provide enough connectivity. For such
networks, splitters can be inserted into the signal path
where a major branch might be required in the future.
One leg of the splitter could be terminated for that
future need. The other leg of the splitter feeds the
existing network. Computing signal levels properly for
this portion of the network allows you to add entire
branches with many branches and nodes of their own.
Then a new portion can be designed, installed, tested

Network Design 4-21

separately, and attached to the main network at the
reserved expansion leg of the splitter. This is the type
of implementation used in the IBM PC Network.

Test Equipment
This section lists the basic items of test equipment that
can be used to check out the passive network functions.
The two items covered here are the RF sweep generator
and the RF voltmeter.

RF Sweep Generator
This type of generator produces signals of the proper
frequency and amplitude for transport over the
network. Transmitting a fixed-frequency and
fixed-amplitude carrier signal over the cable allows you
to check nominal attenuation levels in the forward and
reverse paths. When the sweep generator is used in the
sweep mode, it can locate either compressed cables or
loose connections that are causing frequency response
irregularities.
The generator's frequency range may be set to either
the forward or reverse bandpass, depending on its
location either at the translator or at the outlets. Its
amplitude is also set depending on whether it feeds the
network, or whether it feeds the outlets.
Set the sweep generator to sweep the forward
frequencies at the translator unit location. At this
location, the generator supplies signals that can be used
to test each outlet on the network. The generator can
normally be set to supply the same level as the
translator, so that the level at the outlets are the same
as the network device. The generator can also be
connected to any outlet in the network. In this case it
should be set to the reverse frequency band. It should
transmit at the same level as the devices connected to
the network.

4-22 Network Design

RF Sweep Receiver
The device that monitors the sweep generator output is
the sweep receiver. This device is normally controlled
automatically (range, frequency) by the sweep
generator. Investigate any discontinuities or excessive
losses at any frequencies in the band to ensure that they
are not causing degraded network performance.
This type of receiver allows reception of sweep
generator signals and analysis of network path
attenuation for a predetermined range of frequencies.

RF Voltmeter
The RF voltmeter or field strength meter (FSM) is a
popular test instrument. It measures the amplitude of
an RF signal at a specific frequency. This device is easy
to operate and can be used for measuring signal levels,
verifying signals, and troubleshooting. The output
meter is calibrated in dBmV. Connection to the
network is made through an RF cable directly to an
outlet or tap port. The frequency is selected by setting
the appropriate tuning dials or by entering numbers on
a keypad, and the signal level is read on an analog or
digital meter. Some RF voltmeters also have built-in dc
voltmeters.
The following list covers typical specifications for an
RF voltmeter.
Amplitude

-40 dBmV to +60 dBmV

Frequency

4 to 460 MHz

Temperature

o to 120 degrees F

Accuracy:
Frequency
Amplitude

± 100 kHz to ± 1 MHz
±0.5 dB at 68 degrees F,
± 1 dB over full frequency

Network Design 4-23

range
DC

Voltage ± 10%.

IF Bandwidth

280 kHz to 600 kHz

Power

Battery

Calibration

Built-in

More Specialized Equipment
An RF radiation monitor measures RF energy radiated
by equipment or components of the network. This
instrument pinpoints areas where the system radiates
RF energy, most often through a poor connection, a
corroded connector, or a damaged cable. When
radiation occurs, you can assume that the system is
more susceptible to signal ingress. Signal ingress could
hinder the proper operation of the network.
The cable reflectometer is used in locating cable faults
caused by physical breaks, bends, or kinks in a given
span of cable. This instrument can indicate the location
of the fault to within a few feet. Cable system
troubleshooting time is minimized by the combined use
of a reflectometer and accurate, scaled drawings of the
cable layout.

Checking a Network
The following uses the IBM PC Network as an example
on how to check a network. RF signal levels can be
checked at each outlet to ensure that the distribution
system is working as desired. This checkout can be
done with a sweep generator and a sweep receiver.

4-24 Network Design

Where to Check
If a known working Personal Computer with adapter

does not work when it is connected to a suspected
outlet, check the outlet. Also check the outlet if the
Personal Computer obviously works only marginally
(that is, much lower throughput or slower response
from the network when sending data to other nodes,
compared to the performance when it is connected
elsewhere.)

When to Check
•

When first installing the network, check signal
levels at all or selected outlets. Ensure that every
branch can carry RF signals.

•

Check the network whenever a problem is
suspected, such as when a noticeable performance
degradation occurs, and the computer checks out
OK otherwise.

How to Check
Method 1: Forward Path Test
This puts the generator at the translator unit location
and can check that each adapter receives the proper
signal level.
1.

Remove the network's RF cable from the
translator and connect a 9 dB directional coupler
(RMS CA-1090-M or equivalent) as shown in
Figure 4-4 on page 4-26.

2.

Set the generator to sweep frequencies from 150 to
300 MHz. Set the generator for an amplitude of
60dBmV.

Network Design 4-25

Method 2: Return Path Test
This puts the generator at an outlet in the network, and
tests the IBM Translator Unit on both the forward and
reverse paths of the cable system. You can check that
each adapter receives the proper signal level.
1.

Connect the sweep receiver at the -9 dB sweep
coupler.

2.

Remember to notch out channels T-14 or a
degradation in performance can result for the
duration of the test.
Note: Performing this test on an active
network may have adverse affects on
performance and could cause system errors in
some Personal Computer's. Consider
performing this test when the network usage is
low.

3.

Program the return parameters into the sweep
generator. Set the sweep to cover a 5 to 116 MHz
frequency range at a 60 dBmV level. The return
attenuation should be measured near a flat portion
of the frequency spectrum near channel T-14. The
network attenuation is 41.75 dB ±3 dB for the
return path. Remember to take the additional 9 dB
of attenuation into account when measuring
network attenuation.

4.

When the test is complete, remove the -9 dB
coupler.
Note: The network attenuation used in this
example corresponds to the attenuation used in the
IBM Translator Unit and the cable kits

Network Design 4-27

Method 3: Walk-through Test
I

This procedure is useful for isolating a trouble spot.
1.

Set up the sweep generator for a continuous wave
(C W) single frequency at the Translator Unit
location. Couple the generator through the 9 dB
coupler as described in the forward path sweep
test. The frequency should be in the forward path
near channel J. An example frequency would be
225 MHz at an amplitude of 60 dBmV.

2.

Set the RF voltmeter to its highest amplitude scale
and set the frequency to the same frequency
setting as the C W frequency set on the sweep
generator.
Note: When the sweep transmitter is in C W
mode, only one frequency is transmitted over
the network. A presence of this frequency
can quickly determine an open, short, or a
poor connection.

3.

Take the RF voltmeter and a copy of your system
drawing to the splitter in question, and check
which nodes are working. This is accomplished by
lowering the scale on the meter until a reading can
be obtained. If you find a node without a signal,
check at least one or two surrounding nodes.

4-28 Network Design

4.

Test the signal into the splitter.

-9 dB

r

----------'

I

-5 dB

I
L ________ _

I
I

Sweep
Generator
Sweep
Receiver

0= Outlet

Figure 4-5 Splitter Test

Network Design 4-29

5.

If no signal is present, test for a signal into the
cable going to the splitter. If a signal is present,

the last part tested is not working properly.

IBM Translator Unit

r---------------------,

I
I

I

I

I
I

I

I

I

I

I

-9 dB

I
I
I

IL

________ _

r

_________ J

I
I

-5 dB

I
I

--~

g

~
00
00

o

Sweep
Generator
Sweep
Receiver

0= Outlet

Figure 4-6 Cable Test

4-30 Network Design

6.

If no signal is present, test for a signal into the
cable going to the Base Expander.

I

I
I

_...I

·5 dB

8
i t!8
ox
o

00

o

Sweep
Generator

00
00
0

Sweep
Receiver

0= Outlet

Figure 4-7 Base Expander Test

7.

If no signal is present, test for a signal from the
directional coupler.

What to Look for when Testing
Look for widely-varying signal levels between nearby
outlets, signal levels outside the specified range, and
extreme variations in signal levels from expected values
(a map of the system with expected levels recorded
when the system was working properly is desirable).
Also, check the following for any other problems:

Network Design 4-31

•

Cut cables

•

Loose or corroded connectors

•

Shorted cables

•

Unterminated trunk lines

What Can Be Changed if a Problem Is Found
Change cables after isolating the problem.
Change connectors or passive components.
Change the adapter (most RF problems with the
adapter would be found by the self-test).
Change the translator if it is not working.

4-32 Network Design

Notes:

Network Design 4-33

Notes:

4-34 Network Design

Appendixes

Contents
Appendix A. IBM PC Network Schematics ...... A-3
IBM PC Network Adapter Schematics .......... A-3
IBM PC Network Translator Unit Schematics .... A-9
Appendix B. IBM PC Network Specifications
B-1
Environmental Specifications ............. B-1
IBM PC Network Adapter Specifications .... B-2
Electrical Power Requirements ......... B-2
Adapter RF Modem Specifications ...... B-3
Network Cable Characteristics ............ B-5
IBM Translator Unit Specifications ......... B-7
Electrical Specifications ............... B-7
Physical and Mechanical Characteristics .... B-10
Appendix C. IBM PC Network Protocols ........ C-l
Purpose of the Protocols ................. C-1
Hierarchical Implementation of Protocols . C-2
General timing of packet exchanges ............ C-7
Session Establishment ................... C-7
Data Transfer ......................... C-8
Session Termination .................... C-9
Packet Processing ..................... C-10
Pseudo Code for NCB Commands ............
RESET .............................
STATUS ............................
ADD NAME .........................
ADD GROUP NAME .................
DELETE NAME .....................
CALL ..............................
LISTEN .. . . . . . . . . . . . . . . . . . . . . . . . . . ..
HANG UP ..........................

C-23
C-13
C-14
C-16
C-18
C-20
C-21
C-23
C-25

A-I

SEND ..............................
CHAIN SEND .......................
RECEIVE ...........................
RECEIVE ANY ......................
SESSION STATUS ....................
SEND DATAGRAM ..................
SEND BROADCAST DATAGRAM ......
RECEIVE DATAGRAM ...............
RECEIVE BROADCAST DATAGRAM ...
Timer Expiration Processing

C-27
C-28
C-29
C-30
C-32
C-33
C-34
C-35
C-37

................ C-38

Packet Reception Processing ................ C-42
Field Definitions ...................... C-50
Packet Types, Formats and Functions

......... C-56

ProtocolInteractions .....................
Session to Transport Layer Interactions ...
Network Layer Interaction .............
Packet Reception Procedures ...........

C-135
C-135
C-137
C-141

Appendix D. Adapter BIOS .................. D-l
Appendix E. Multitasking Considerations ........ E-l

A-2

Appendix A. IBM PC Network
Schematics

IBM PC Network Adapter Schematics

Schematics A-3

SHE."
SHE."
SHE."
SHE."
SHE."

~~~:

:

SHr. ..
SHE.Z

~~t ~

SHE."
SHE."
-QW(l
SHE."
SHE."+RESETImI

SYSIiESEl
~~}(u1

SHE. 1
SHE. 1
5HE.1
SHE.Z.l

rw

SI£.l
SHE. 1

~tfil/
L(S/

SHE. 1
SHE. 1
SHE. 2

'"
l!~

SHE.'Z.l
SHE. 1
SHE.Z.1

'"

SHE. 2.1
SHE. 2.1
SHE.Z.1
SHE.Z.1

."'

:!~

'"
'"
IIIIIWIIWlIIl!llIIllIIlflllE]

:

... '.1

~C(

"18

GND=9

~416-20

U22

4416-20
U2I

IDO-107

LCCRDY

"

RI20

SHE. I

SHE.~

HOO-H07

SHE. I

+00-+07

SHE-4

10K

'"
flrTfZw7IL'llwlL'llTfZw712lL7IL71
20

~~

AI2

19

~\h

CESHE .1

22 A,q
2

.0,8
I A7
2 .0,6

U29
810S
ROM

~ A') MlOt>OOO

4 A4

, Al
,

A2

7 AI
8 AD

I/C("2~
GND= 12

>
I

~

(SHE. I )

lKs

~

10

AI

~

;a
....
....
'"

,
•
•
,
'"'"

lAO

00

IAl
lA,

,

IA.
1A7

(SHE. I) IAo-IAI4

lAO
\IA8
lAID

~

21

"

2
2
2.

llA12

lA"
IA"

(SHE. U

27

RW,
(SHE.';)

RxO

OCO

(Sl-E.I)

..
A2
A'

A7

AS

20
CEVCC=28

GNO lit
272%

""

~~

D2~\
D~ ~ "llL'I17ZlZl,7rZ'-ZZlL'-ZZln7Z'-ZZ7Z'lllTL'lllL'L
O'~~7
IO')
r
106

IDO-IOO (SHE.

I)

Dii

g~

AO
All

ID7

I'J

All
Al2

AI'

~.

RD!

(SHE.")

(51£1)
(9£.1)

AD
AI

ROI
WRI

Pm

10K

+"

RIZ1
lOOK

202'tZ'iZI2b2722:

~ RdfRTS lXD RXOCDTCRS Txe g?

9

:::ClfA
J~I

7~

GNO=I.14

INT 16

:

ir:;:===========

RTSTxO
INn

(SHE.I)
(51£.0;)
(SHE.I)

...,.,
..
AI

(SHE. I)

+ RESET DVR

(SHE. 1)

+ IRQZ

(SHE. C;)

-IZ'I

(SHE. C;)

+IZ'I

(SHE. Z)
(SHE. l.Z)

B2

..

-lOW
-lOR

(SHE. I )

-DACKl

(SHE.I)

+OOQl

Ab
A7

B7

AS

CARD-EDGE

BIZ
B"

-MEMR

(SHE. I )

A2

...

"

BIS
Bib

~NE(lOR

AIO
All
AI2
AI
Ak

AI,
Alb
AI7
AI6
A~

A20
AI
A22
A ,

A4
(SHE. I)

+IRQl

B"

(SHE. I)

+ T /e

B27

~
~

+GND

++

:>
I

.......

~

1

~~6~*i1~ ~~:rF

d:(I6I_d:CI63F+:16\+.(16~FfCl,)Z;+~I,)'
T:OIIlFT~OIUF .00uF .OIIlF .IIlF .luF

A
A2b
A27
A26
A2'l
A;o

'"
f:IC;~~CI'i6F+(I,)'JF{(16~+CI10F+~171;
+~172
.Olu
.I/.IF .I/.IF
.luF
.1/.1F
.luF
.1)4.F

+07
+06
+",
+Il'>
+D'
+02
+01
+DO
+l/O (HRDY
+AEN

"T

(SHE. 2)
(SHE. I)
(SHE. Z)

+AI'J
+A18

+AI1
+A16
+AIC;

+AIl+
+AH
+AIZ
+AII

+A1Q
+A'J

(SHE. Z)
(SHE. I,Z)

.. B
+A7
+Ab

+"
+A4
+A;
+A2

+AI

.. 0

(SHE.I,Z)

'"

~.lpr

>I
oc
00

~

llr'r

,

'"
"'"

~

=-

('I)

8

~

.....

Jbgl

(;"

'"

'"

,n

w!
Cll

,n

."

,eo

t---j-+Y01K(§HE..1l
RI02

--4--","_-j-_{~2:E.")
n"

+1'

10

Non:s:
Rii{

ALL CAPACITORS IN I.JF UNLESS OHIERWISE
NOTED.

ALL INDUCTOFIS IN Mfl UNLESS OTHERWISE
1

(SKE·")i
GND

~ J(~lg

SHf3I!TS _ _ _
S~T

3

TXO

ALL RESISTERS IN OHMS UNLESS
OTHERWISE NOTED.

IBM PC Network Translator Unit
Schematics

Schematics A-9

.~~

,.

!

!!

I

=

.~

pi
• ~5

5 g~

r-r----------...,

I
I

--------------1

~Il

I
I
I
I

~;

I

I

I

I
I

I

I

!~

I
I
I
I

I
I

I
I

I

I
I
I

I
I
I
I

I
I

I
I

I

I

I

I
I
I
I

I
I
I

I

I
I

I
I
I

I
I
I
I
I
I

C=~C-----'

.l

il-O

:~It"

e~f.i~~~

, "i •
,.~

ir.r t..

ill~,1~~

"~
I
IL_______
, _

.~ .5

A-tO Schematics

r·
I

~It.r~

Appendix B. IBM PC Network
Specifica tions

This appendix is a list of specifications for the IBM PC
Network hardware:

Environmental Specifications
The following lists the environmental specifications of
the IBM PC Network adapter and the IBM Translator
Unit.
Temperature

The operating temperature range is
from 10 to 35°C, (50 to 91°F)
ambient. The storage temperature
range is from -40 to 60°C, (-40 to
140°F).

Humidity

The operating humidity range is from
8 % to 80% non-condensing. The
storage humidity range is from 5 %
to 100% non-condensing.

Altitude

The operating altitude is from -305
to 2135 meters, (-1000 to 7,000
feet).

Specifications B-1

IBM PC Network Adapter Specifications
This section summarizes the basic specifications of the
adapter.

Electrical Power Requirements
The specifications for the power requirements of the
adapter from the three power supplies are as follows:

Ripple

Total
Current Used

Voltage

Tolerance

+ 12.0V

±5%

100 mV pp

0.36 A

+S.OV

±5%

100 mV pp

1.40 A

-12.0V

±10%

100 mV pp

0.03 A

B-2 Specifications

Adapter RF Modem Specifications
The following is a list of the specifications for the RF
modern on the adapter. See "RF Modern Section" on
page 3-50 for a complete list of specifications for the
RF modern section.

• Input/output impedance

75 ohms typical

.• Return loss:
- With power ON (T-14, J)
- With power OFF (T-14)
- With power OFF (J)

~
~

~

14 dB
14 dB
8 dB

• Transmit channel

T-14 (50.75
MHz)

• Modulation technique

Frequency shift
keying (FSK)

• Frequency shift

±2 MHz ±200
kHz centered
about 50.75 MHz.

• Transmit output level (ON)

56 dBmV ±4 dB

• Transmit output level (OFF)

~

• Receive channel

J (219.0 MHz)

• Receive bandwidth

3.6 MHz
(nominal)

• Receiver Input level

8.5 dBmV

• Input level range

-7 dBmV to 24
dBmV

• Maximum input level

61.25 dBmV

-20 dBmV

Specifications B-3

• Carrier detect threshold

-20 to -8 dBmV

• Maximum number of adapters
supported

1000

• Maximum distance supported

Up to 5 kilometers
with the proper
network design .

..

B-4 Specifications

Network Cable Characteristics
The IBM PC Network hardware communicates on a
75-ohm coaxial cable network. This section defines the
characteristics of that network.

• Input/output impedance

75 ohms typical

• Tap reflection coefficient
(from 10 to 350 MHz)

2= 14 dB

• Transport echo delayed more
than 25 ns.

-30 dB maximum

• Port ac-dc power
characteristic

Blocked

• Transport channel (6 MHz)
flatness (peak to valley)

2dB

• Transport phase delay in
channels T -14 and J,
round trip:

±25 ns :::; 100 f.LS

• Transport second order
intermodulation
distortion

-56 dBC max
(Note 1)

• Transport third order distortion
maximum (Note 1)

-56 dBC
composite

• Forward carrier-to-noise ratio
(Note 2)

53 dB minimum

• Reverse carrier-to-noise ratio

53 dB minimum

Specifications B-5

• Transport carrier-to-hum ratio

40 dB minimum

• Transport Transfer Characteristics (Includes cable
and tap):
The output level variation over nominal system loss in
the return path must be within ±3 dB of the input
level. The forward path must be within ±4.5 dB of
the input level. Both specifications apply to the
corresponding system channel.
• Forward noise floor in channel J ~ -24 dBmV
with all transmitters OFF at worst (Note 2)
case mode:

Note: 1) Referred to available forward tap level.
Note: 2) For a network having a 47.5 dB nominal
network attenuation from the adapter transmitter
to the adapter receiver and having 1000 adapters
on the network.

B-6 Specifications

IBM Translator Unit Specifications
This section defines the electrical specifications of the
Translator Unit.

Electrical Specifications

• Input/output impedance

75 ohm typical

• Trunk feed levels (typical)
- Forward
- Return

+50.25 dBmV
+14.25 dBmV

• Trunk feed return loss

14 dB minimum

• Reflection coefficient
bandwidth

4 MHz minimum

• Channel Allocation
- Input center frequency
- Output center frequency
- Channel bandwidth

50.75 MHz
219 MHz
6 MHz

• Input (receive) characteristics
- Minimum input level
- Maximum input level

7.25 dBmV
21.25 dBmV

- Selectivity
3dB bandwidth
30dB bandwidth

;:::6 MHz
~24 MHz

- The maximum sustained
input level without
damage

60 dBmV

Specifications B-7

• Output characteristics
- Maximum carrier output
level

61.25 dBmV

• Translator oscillator frequency
characteristics
- Long term stability
(until the end of
life over environmental range)

±80 ppm

- Center frequency
accuracy

±11.7 kHz

- Spurious level at
6 MHz from carrier

-40 dBC

• Translation characteristics
- N ominalloop gain

36 dB

- Loop gain setting
accuracy

±ldB

- Gain variation until
end of life and over
environmental range

±3 dB

- Pass-band bandwidth

±3MHz

- In band level ripple
(peak to valley)

1.5 dB

- Group delay

±25 ns max.

- Phase delay

200 ns

B-8 Specifications

- Carrier to noise ratio
(at typical carrier
output level, with the
specified signal source
at the input)

47 dB min.

- Noise figure (for
rated loop gain)

9dB

• Maximum adapters supported
by the Translator Unit:

256

- Pass-band spurious
level
(referred to maximum
carrier output, with
the specified signal
source at the input)

-40 dBC max

- Carrier to hum ratio

40 dB min

• Power supply requirements
- Line voltage variation

14.5-23.4 Vac
RMS

- Power consumption max

11 watts

Specifications B-9

Physical and Mechanical Characteristics

• RF Connectors:
(The F connector is
grounded through
the AC transformer)

type F (female)

• Physical dimensions

256.5 x 158.8 x 44.5 mm
10.1 x 6.3 x 1.8 in.
(L x W x H)

B-I0 Specifications

Appendix C. IBM PC Network Protocols

This appendix provides information about the IBM PC
Network protocols. 1 The following list describes the
formats of the packets that are carried by the network
in response to command requests.
Note: The information provided here is for
reference only. Specific details may vary slightly
from the actual implementation.

Purpose of the Protocols
Personal Computers can exchange data with each other
using the communication services provided by the IBM
PC Network Adapters. These adapters accomplish
communication functions through the implementation
of a common set of protocols.
•

Protocols are rules to govern communication over
the network. These rules include such functions as
data transmission, reception, and acknowledgment
over the cable.

•

Protocols are needed because multiple computers
share a common cable medium. The computers
must communicate with each other over the cable
medium reliably without interference from one
another. The protocols aid in reliable
communications, provide addressing for all
computers on the network, and control the flow of
data traveling to other computers on the network.

•

These common protocol functions are available to
all computers on the network.

1 Copyright of Sytek, Inc. and the IBM Corp.

Protocols C-l

To be compatible with the network, all computers must
follow the PC Network protocol procedures and must
understand the protocol formats.

Hierarchical Implementation of Protocols
An implementation of the PC Network protocols can
be modularly structured in a hierarchical fashion.
Compatibility between nodes does not require that the
internal implementation of the adapter protocols within
each nodes be identically structured. It is only required
that they follow the same procedures and protocol
formats.
Within the adapter, the software implementation of the
protocols are hierarchically organized according to the
specific protocol function.
•

The adapter's protocol implementation comprises
five separate layers of protocol modules.

•

Software is arranged in a hierarchy of protocol
layers. Each layer communicates with one layer
above and one layer below it. Each layer provides
specific services to the other layers.

•

Layered structure allows easy development and
change of the protocol software, and clear
straightforward communication with other devices
on the cable.

•

The lowest layer is the hardware that transmits and
receives signals over the cable. It converts the
dtgital data to analog signals for transmission over
the cable, and receives analog signals and converts
them to digital data for use by the adapter.

•

The highest layer communicates with the software
resident in the host computer. The layer conveys
the necessary data to the user application program.

•

Data transmission process is as follows:

C-2 Protocols

The top layer of the adapter's protocol
software receives data to be sent over the
network from the host computer's interface
software.
Each layer of the protocol software adds
control information to the data it receives
from the next higher layer, and passes this
data packet down to the next lower layer.
The packet that is transmitted over the cable
has the original data, and all of the specific
control information to be interpreted by the
receiving adapter's protocol software.
•

Data Reception Process:
The bottom layer of the adapter's protocol
implementation receives a signal from the
network's cable.
This layer converts the incoming analog signal
into digital data, and passes this data to the
next higher layer of the protocol.
Each layer of the protocol software·in the
adapter reads and interprets control
information inserted by the corresponding
layer of the transmitting unit. Each layer then
passes the contents of its data packet up to the
next higher layer.
The top layer delivers the original data to a
layer of communication software in the host
computer. This data in turn will correspond to
the user which sent the data from the
originating computer.

The following is a list of the IBM PC Network adapter
protocols under the appropriate layers:
•

Link Layer

Protocols C-3

Link Access Protocol (LAP)2- provides basic
CSMA/CD, packet framing, addressing, and error
detection services. LAP is responsible for the
exchange of data frames between two nodes. LAP
is used to provide service for the Packet Transfer
Protocol (PTP)2.
Network Layer

•

Packet Transfer Protocol (PTP)2-provides
routing, address discovery, and unacknowledged
packet transfer services. PTP is used by the
Reliable Stream Protocol (RSP)2 and Datagram
Transport Protocol (DTP)2.
Transport Layer

•

Reliable Stream Protocol (RSP)2-provides
error-free virtual connection services to other users
through end-to-end acknowledgements and
retransmissions. RSP provides transport layer
services to the Session Management Protocol
(SMP)2.
Datagram Transport Protocol (DTP)2-provides
unacknowledged datagram services between
session layer entities, including the User Datagram
Protocol (UDP)2 and the Diagnostic and
Monitoring Protocol (DMP)2.
•

Session Layer
Session Management Protocol (SMP)2-provides
support for user sessions between nodes. SMP
allows users to establish connection to a named
process (names) and is responsible for interacting
with the Name Management Protocol (NMP)2
within the local node to determine the address of
the named process. Once the destination node

2 Copyright of Sytek, Inc.

C-4 Protocols

address is determined, the initiating SMP can
communicate with the SMP within the destination
node to provide session level services to both users.
User Datagram Protocol (UDP)2-provides
support for user datagrams between nodes. UDP
allows users to send datagrams to a named process
(alias) and is responsible for interacting with the
NMP within the local node to determine the
address of the named process. Once the
destination node address is determined, the
initiating UDP can exchange datagrams with the
UDP within the destination node.
Name Management Protocol (NMP)1-provides
the binding of alias names and network addresses
within the entire local network. NMP provides all
name management services, including the
translation of remote names to network addresses,
to both SMP and UDP.
Diagnostic and Monitoring Protocol
(DMP)l-provides protocol mechanisms that
allow the collection of diagnostic and status
information, and provides support for other
network management functions.
SMP, UDP, NMP, and DMP services are
accessible to the Host Interface Process.
The relationship between the various protocol services
is shown in the following illustration.

Protocols C-5

Session

Name

Datagram Status

_~_~_r_N_e_tw_o_rk__s_eli_c_es___s_e_rr_ce_s___s_e_rv_T Seres

T · Ul~DM~
==J
:J
C ==J

s_Le_a~_S!_~_n____
Transport
Layer

I

I

I

I

NMp :

RSP

DTP

---.-----,--Network
Layer

Link
Layer

Physical
Layer

PTP

I

LAP

I

Broadband Network

Figure C-1 Relationship Between the Various Protocol Services

C-6 Protocols

General timing of packet exchanges
The following three sections describe the packet
exchange interactions for session establishment, data
transfer, and session termination.

Session Establishment
The session initiator sends an Open Request to the
responder who returns an Open Ack. The initiator then
sends a Session request that is followed by a Session
Accept or Session Reject.

Session Establish
Initiator

----->
<--------->
<-----

Responder

Open Request
Open Ack
Session Request
Session Accept or Reject

----->
<--------->
<-----

Protocols C-7

Data Transfer
Both sides of a session exchange Data and Ack / Nack
packets during a session's lifetime. Data packets have
increasing sequence numbers, and are retransmitted if
not acknowledged. Ack / Nack packets may request
retransmission of specific packets. Data packets always
have the same sequence number when retransmitted.

Data Transfer
Initiator

Responder

----->
<--------->
----->

Data

<-----

Ack / Nack

C-8 Protocols

Ack / Nack
Data
Data
(Retransmitted)

----->
<--------->
----->
<-----

Session Termination
Either side of a session can initiate termination. This is
accomplished through an exchange of specific Ack /
N ack, Close, and Closed messages.

Session Termination
Initiator

<--------->
<-----

Responder

Close
Close
Closed

<--------->
<-----

Protocols C-9

Packet Processing
This section describes the processing performed by the
IBM PC Network adapter. These actions are described
by pseudo code listings of processing initiated by the
host commands, by processing that is initiated by timer
expirations, and by processing initiated by received
packets.
The following basic internal mechanisms of the adapter
are required for the processing of the adapter protocols:
•

The name table in the local adapter is the table that
contains the names that are currently being
supported by the local node. Names are added to
the table upon successful completion of an ADD
NAME or ADD GROUP NAME command.
Names are removed upon successful completion of
a DELETE NAME command. The user can refer
to a current entry within the local name table by
using the name number (NAME_NUM).

•

Several types of packets within the adapter
protocols must be retransmitted if a timely
response is not received. Each such transmitted
packet will have an associated timer and a counter.
The timer starts when a packet is transmitted.
When expiration time for a timer is reached, the
packet will be retransmitted provided that the
maximum number of transmissions has not been
reached. The maximum number of transmissions is
a system parameter known as "maxRetransmit".

•

Each node on the network is assigned a unique
identifier known by its permanent node name. In
the following protocol descriptions, the permanent
node name of the local node is simply referred to
as the "local node name".

•

Packets can be directed specifically to a node by
using the permanent node name. The packets can
also be directed to a group of nodes by using a

C-IO Protocols

group address. Group addresses are derived from
a 16-byte name by using the function (f) defined
as follows:

f(name)

0000.(N1 XOR N2 . . . N5 XOR N6).FF

Where:
N1 . . . N5 are the first through the fifth
3 byte fields which make up the
name, and N6 is the last byte of
the name concatenated with two
bytes of zeros.
XOR

represents a logical exclusive
or operation.

The period (.) represents the
concatenation operation.
Group addresses are also derived from the permanent
node name by using the function (g) as follows:

g(permanent node name) = 0000.(103 102 101).FF
Where:
103

. 101 are the three low-order bytes
of the permanent node name.
The period (.) represents the
concatenation operation.

The adapter processing can be described in an event
driven manner where the three types of events are as
follows:
1.

Receipt of a command block from the host.

Protocols C-ll

Such events are processed by using command specific
procedures which are identified below as
"PROCEDURE command type (command block)".
Command type is the name of the specific type of
command,and the command block includes all the
parameters associated with thecommand as it is passed
from the host to the adapter.
Also note that "return ... to user" indicates the return
of a completion of the processing associated with that
command. Although certain fields within a returned
command block can be inspected and used to provide
the necessary information to the user, it does not
indicate that there will be no further adapter activity
associated with the processing of that command.
2.

Expiration of the timers.

Such timer activity is always associated with a specific
prior packet transmission and the action taken by the
adapter in response to such timer activity depends on
the original associated packet type.
3.

Reception of a packet.

The processing performed by the adapter depends on
the type of packet received as well as the values of
specific control fields within the packet.
The next section describes the adapter processing for
each of the above mentioned types of events.

C-12 Protocols

Pseudo Code for NCB Commands

RESET

PROCEDURE Reset (command block);
{set configuration parameters}
BEGIN
IF either of the two configuration
parameters are equal to zero THEN;
set configuration parameters to default values
{6 sessions, and 12 commands}
ELSE
BEGIN
set configuration parameters in configuration table;
return command completed status to user;
END
END;

Protocols C-13

STATUS

PROCEDURE Status (command block);
{get LANA configuration parameters and status}
BEGIN
IF buffer length is illegal THEN;
return illegal buffer length status to user;
ELSE
--IF name in conflict THEN;
return name conflict status to user;
ELSE IF name is local name or name is * THEN;
BEGIN
get configuration parameters and status of local LANA;
return configuration parameters and status;
return actual length of configuration
parameter and status;
IF size of user buffer is smaller than the configuration
parameter and status THEN;
return message incomplete status to user;
ELSE
return command completed status to user;
END
-ELSE
BEGIN
send status request packet to remote node;
wait for response from remote node;
{remote node send status response packet}
IF status response packet is received within the timeout
interval THEN;
BEGIN
extract configuration parameters and
status of remote LANA;
return configuration parameters and status;
return actual length of configuration
parameter and status;
IF size of user buffer is smaller than the configuration
parameter and status THEN;
return message incomplete status to user;
ELSE
return command__ completed status to user;

C-14 Protocols

END
ELSE
return command

timed_out status to user;

END
END;

Protocols C-15

ADD NAME

PROCEDURE Add Name (command block);
{request local registration of name}BEGIN
IF name begins with * or null THEN;
return illegal name status to user;
ELSE
BEGIN
search for name in local name table;
IF name is found THEN;
BEGIN
IF name in conflict THEN;
return name conflict status to user;
ELSE
return existing name number to user;
return duplicate_name status to user;
END
ELSE
IF local name table is full THEN;
return name table_full status to user;
ELSE
BEGIN
REPEAT
BEGIN
broadcast name claim packet to network;
wait for responsefrom remote node in network;
{all remote nodes search for name in their
local name tables and send name claim_response
packet if found}
END
UNTIL name claim response packet is received
or number of timesto broadcast is reached;
IF name claim response packet is not
received THEN;BEGIN
enter name to local name table;
return name number to user;
return command_completed status to user;
END

C-16 Protocols

ELSE
return name_in_use status to user;

END
END
END;

Protocols C-17

ADD GROUP NAME

PROCEDURE Add Group Name (command_block);
{request local registrationof name}
BEGIN
IF name begins with * or null THEN;
return illegal name status to user;
ELSE
BEGIN
search for name in local name table;
IF name is found THEN;
BEGIN
IF name in conflict THEN;
return name conflict status to user;
ELSE
return existing name number to user;
return duplicate_name status to user;
END
ELSE
IF local name table is full THEN;
return name table_full status to user;
ELSE
BEGIN
REPEAT
BEGIN
broadcast add group name claim
packet to network; wait for response from remote node in network;
{all remote nodes search for name in their
local name tables and send name claim response
packet if found}
-END
UNTIL name claim response packet is received or
number of times tobroadcast is reached;
IF name claim response packet is not
received THEN;BEGIN
enter name to local name table;
return name no to user;
return command_completed status to user;

C-18 Protocols

END
ELSE
return name_in_use status to user;

END
END
END;

Protocols C-19

DELETE NAME

PROCEDURE Delete Name (command block);
{request local de-registration of nameT
BEGIN
IF name begins with * or null THEN;
return illegal name status to user;
ELSE
BEGIN
search for name in local name table;
IF name is found THEN;
BEGIN
check for pending non active session commands;
IF non active session command is found THEN;
terminate the non active session command;
check the session count in table entry;
IF session count is zero THEN;
BEGIN
remove name from local name table;
return command complete status to user;
END
ELSE
BEGIN
change status of name to de-registered;
{name will be removed from local name
table when session count reaches zero}
return command_completed_name_has_
active_session status to user;
END
END
ELSE
return illegal_name status to user;
END
END;

C-20 Protocols

CALL

PROCEDURE Call (command block);
{open user session with remote name using name supplied}
BEGIN
IF local resource is not available THEN;
return no resource_available status to user;
ELSE
BEGIN
search for name in local name table;
IF name is not found THEN;
return illegal name status to user;
ELSE
IF name is marked "conflict detected" THEN;
return name conflict_detected status to user;
ELSE
IF local session table is full THEN;
return local session table_full status to user;
ELSE
BEGIN
search for remote name in local name table;
BEGIN
REPEAT
BEGIN
IF name is not found THEN
broadcast name query packet to network;
ELSE loop back name query packet;
wait for response from remote node or
timeout;
{all remote nodes search for name
in their local name tables and send
name_query_response packet if found}
END
UNTIL name query response packet is received
or number of times to broadcast is
reached;
IF name_query_response packet is not
received THEN;
return unknown remote_name status to user;
END

Protocols C-21

BEGIN
send session request packet to destination
node;
{destination node search for pending
LISTEN command, if found, return
session accept packet, else, return
session-reject packet}
IF network error THEN;
return "session aborted" to user;
IF response from destination is received
within the timeout interval THEN;
CASE response OF
session accept packet:
BEGIN
set session established indicator
in sessiontable;
return local session number
to user;
return command_completed status
to user;
END
{session established}
session reject packet:
return session_open_rejected status
to user;
END {case}
ELSE
return command timed_out status to user;
END
END
END
END;

C-22 Protocols

LISTEN

PROCEDURE Listen (command block);
{open user session with remotename, using
name supplied}
BEGIN
IF local resource is not available THEN;
return no resource_available status to user;
ELSE
BEGIN
search for name in local name table;
IF name is not found THEN;
return illegal name status to user;
ELSE
IF name is marked "conflict detected" THEN
return "name conflict detected" status to user;
ELSE
IF local session table is full THEN;
return local session table full status to user;
ELSE
BEGIN
REPEAT
BEGIN
wait for session request packet
or name conflict detection;
IF LISTENspecific isspecified THEN;
check source of session request packet;
IF source of session request pack is
same as remote name THEN;
set session request completed indicator;
{LISTEN specific satisfied}
ELSE
reset session request_completed
indicator;
{LISTEN not satisfied, continue
to wait}
ELSE
IF LISTEN any specified THEN
set session request completed indicator;
{LISTEN ANY satisfied}

Protocols C-23

END
UNTIL session request completed indicator is set
or name conflict detected;
IF name conflict detected for outstanding
LISTEN THENELSE IF network error THEN;
return "session aborted" status to user;
ELSE
send session accept packet to source;
wait for firstpacket on session;
set session established
indicator in session table;
return source of session request packet to user;
return local session number to user;
return command completed status to user;
{session established}
END
END
END;

C-24 Protocols

HANG UP

PROCEDURE Hang Up (command block);
{close user session indicated by local session_number}
BEGIN
IF local session number is illegal THEN;
return illegal session number status to user;
ELSE
IF session is already closed and session closed status has
not been reported THEN;
return session closed status to user;
ELSE
IF session is already aborted and session aborted
status has not been reported THEN; return session_aborted status to user;
ELSE
BEGIN
REPEAT
IF a RECEIVE command is pending THEN;
terminate RECEIVE command with a
session closed status to user;
UNTIL all pending RECEIVE commands
are terminated;
REPEAT
IF a SEND or CHAIN SEND command
is pending THEN;
wait until the SEND, CHAIN SEND, or
HANG UP has completed or
timed out;
IF the SEND command was timed out THEN
abort the session;
UNTIL all pending SEND and CHAIN SEND
commands are completed or timed out;
send close packet to destination node;
wait for close packet from destination node or
close timeout;
{destination node close the session
and send close packet}
IF close packet is received before the close

Protocols C-2S

timeout interval THEN;
BEGIN
close the session;
return command_completed status to user;
END
ELSE
BEGIN
abort the session;
return session_aborted status to user;
END
IF RECEIVE to name command is pending THEN;
terminate RECEIVE to name command with
session closed or session_aborted status;
ELSE
IF a RECEIVE ANY or to any name command
is pending THEN
Terminate the RECEIVE ANY command
with session closed or session
aborted status;
END
END;

C-26 Protocols

SEND

PROCEDURE Send (command block);
{send data through user sessionas indicated by
local session number}
BEGINIF local session number is illegal THEN;
return illegal_Iocal_session_number
status to user;
ELSE
IF session is closed and session closed status has not
been reported THEN;
return session closed status to user;
ELSE
IF session is aborted and session aborted status has
not been reported THEN;
return session aborted status to user;
ELSE
BEGIN
send session data packet(s) to destination node;
wait for ack packet(s) from destination node
or for timeout;
IF session data is sent successfully within the
timeout interval for session send THEN;
return command completed status to user;
ELSE
BEGIN
abort the session;
return command timed_out status to user;
END
END
END;

Protocols C-27

CHAIN SEND

PROCEDURE Chain Send (command block);
{send data through user session as indicated by
local session_number}
BEGIN
IF local session number is illegal THEN;
return illegal local session number status to user;
ELSE
--IF session is closed and session closed status
has not been reported THEN;
return session closed status to user;
ELSE
IF session is aborted and session aborted
status has not been reported THEN;
return session aborted status to user;
ELSE
BEGIN
send session data packet(s) to destination node;
wait for ack packet(s) from destination node
or for timeout;
IF session data is sent successfully within the
timeout interval for session send THEN;
return command_completed status to user;
ELSE
BEGIN
abort the session;
return command timed_out status to user;
END
END
END;

C-28 Protocols

RECEIVE

PROCEDURE Receive (command block);
{receive data through user sessionas indicated by
local session number}
BEGINIF local session number is illegal THEN;
return illegal_local session number
status to user;
ELSE
IF session is closed and session closed status has not
been reported THEN;
return session_closed status to user;
ELSE
IF session i~ aborted and session_aborted status has
not been reported THEN;
return session_aborted status to user;
ELSE
BEGIN
wait for session message (data packet(s))
from source node;
IF session data is received within the timeout
interval for session receive THEN;
BEGIN
send ack packets(s) to source node;
transfer session data to user buffer
of appropriate length;
.
return actual length of transfer to user;
IF size of user buffer is smaller than
received session data THEN;
return message incompiete status to user;
ELSE
return command_completed status to user;
END
ELSE
return command timed_out status to user;
{session data received}
END
END;

Protocols C-29

RECEIVE ANY

PROCEDURE Receive Any (command block);
{receive any data sentto the
specified name number}
BEGIN
IF name number is illegal THEN;
return illegal_name_number
status to user;
ELSE
IF session is closed and session closed
status has not been reported THEN;
return session closed status to user;
ELSE
IF session is aborted and session aborted
status has not been reported THEN;
return session aborted status to user;
ELSE
BEGIN
REPEAT
BEGIN
wait for a session message (data packet(s»;
IF RECEIVE specific is specified THEN;
BEGIN
check recipient name in session message;
IF recipient name in session message is
same as local name THEN;
set receive completed indicator;
{receive toSpecific name satisfied}
ELSE
reset receive completed indicator;
{receive to specific not satisfied,
continue to wait}
END
ELSE
set receive completed indicator;
{receive toany name satisfied}

C-30 Protocols

END
UNTIL receive completed indicator is set;
IF "conflict detected" error THEN;
return name conflict_detected status to user;
ELSE
send ack packet(s) to sending node;
transfer session data to user buffer
of appropriate length;
return actual length of transfer to user;
return recipient name number to user;
return local session number to user;
IF size of user bufferls smaller than
received session data THEN;
return message incomplete status to user;
ELSE
return command completed status to user;
{session data received}
END
END;

Protocols C-31

SESSION STATUS

PROCEDURE Session Status (command block);
{obtain status of session indicated by name}
BEGIN
IF buffer length is illegal THEN;
return illegal buffer length status to user;
ELSE
BEGIN
IF name in conflict THEN
return "name conflict detected" status to user;
IF name does not start with * THEN;
search for name in local name table;
return number of pending sessions;
return number of pending datagram receives;
IF name or * is found THEN;
BEGIN
get session status in session table
for each session on the name or;
for all session if * ;
return session status to user;
return actual length of session status;
IF size of user buffer is smaller than
size of session status data THEN;
return message incomplete status to user;
ELSE
return command_completed status to user;
END
ELSE
return illegal_name status to user;
END
END;

C-32 Protocols

SEND DATAGRAM

PROCEDURE Send Datagram (command block);
{send datagram to remote node with thespecified
name registration}
BEGIN
IF buffer length is illegal THEN;
return illegal buffer length status to user;
ELSE
BEGIN
search for name corresponding to name number
in local name table;
IF name in conflict THEN;
return name conflict status to user;
ELSE
IF name is not found THEN;
return illegal name number status to user;
ELSE
-BEGIN
send datagram to destination node;
return command_completed status to user;
END
END
END;

Protocols C-33

SEND BROADCAST DATAGRAM

PROCEDURE Send Broadcast Datagram (command
block);
{send broadcast datagram to all nodes on the network}
BEGIN
IF buffer length is illegal THEN;
return illegal buffer length status to user;
ELSE
BEGIN
search for name in local name table;
IF name in conflict THEN;
return name_conflict status to user;
ELSE
IF name is not found THEN;
return illegal name number status to user;
ELSE
-BEGIN
broadcast datagram to all nodes on the network;
return command completed status to user;
END
END
END;

C-34 Protocols

RECEIVE DATAGRAM

PROCEDURE Receive Datagram (command block);
{receive datagram from any node on the network}
BEGIN
search for name corresponding to name number
in local name table;
IF name is not found THEN;
return illegal name number status to user;
ELSE
-BEGIN
REPEAT
BEGIN
wait for arrival of datagram;
IF datagram receive specific is specified THEN;
BEGIN
check recipient name in datagram message;
IF recipient name in datagram message is same
as name specified by local name
number THEN;
set receive completed indicator;
{datagram receive to
specific name satisfied}
ELSE
reset receive completed indicator;
{datagram receive not satisfied,
continue to wait}
END
ELSE
set receive completed indicator;
{datagram receive to any name satisfied}
END
UNTIL receive completed indicator is set;
IF "conflict detected" error THEN;
return name conflict_detected status to user;
ELSE
transfer datagram data to user buffer
of appropriate length;
return actual length of transfer to user;
return local name_number to user;

Protocols C-35

return sender's name to user;
IF size of user buffer is smaller than
received datagram THEN;
return message incomplete status to user;
{data received, unable to
transfer entire message}
ELSE
return command completed status to user;
{datagram received}
END
END;

C-36 Protocols

RECEIVE BROADCAST DATAGRAM

PROCEDURE Receive Broadcast Datagram (command
block);
{receive broadcast datagram from
any node in the network}
BEGIN
search for name corresponding to name number in
local name table;
IF name is not found THEN;
return illegal name number status to user;
ELSE
-wait for arrival of broadcast datagram;
IF "conflict detected" error THEN;
return name conflict_detected status to user;
ELSE
transfer datagram to user buffer
of appropriate length;
return actual length of transfer to user;
return sender's name to user;
IF size of user buffer is smaller than received
datagram THEN;
return message incomplete status to user;
{broadcast datagram received, unable to return
entire message}
ELSE
return command completed status to user;
{broadcast datagram received}
END;

Protocols C-37

Timer Expiration Processing
This section describes the pseudo code processing that
is performed when a timer expires.

PROCEDURE packet associated timer expiration
BEGIN
-CASE outstanding packet type OF
name query:
IF retransmit counter is less than
maxRetransmit THEN;
increment retransmit counter;
reset and restart timer;
send another name query packet;
ELSE
IF non-accept query response
received THEN
return non-accept query
status to user;
ELSE
return unknown remote name
status to user;
send name_query_cancel packet;
name claim:
IF retransmit counter is less than
maxRetransmit THEN
increment retransmit counter;
reset and restart timer;
send another name claim packet;
ELSE
return name number and command
completed"Status to user;
nonexclusive name claim;
IF retransmit counter is less than
maxRetransmit THEN
increment retransmit counter;
reset and restart timer;

C-38 Protocols

send another nonexclusive name
claim packet;
ELSE
return name number and command
completedStatus to user;
session request:
IF retransmit counter is less than
maxRetransmit THEN
increment retransmit counter;
reset and restart timer;
send another session_request packet;
ELSE
return command timed_out status to user;
session accept:
IF retransmit counter is less than
maxRetransmit THEN
increment retransmit counter;
reset and restart timer;
send another session accept packet;
ELSE
send abort packet;
return session_aborted to user;
positive name query response:
release connection resources;
IF name not registered more than once THEN
return name conflict status to user;
data:
IF retransmit counter is less than
maxRetransmit THEN;
increment retransmit counter;
reset and restart timer;
IF retransmit queue is empty THEN
format and send ack packet with
POLL set;
ELSE
send last packet in the retransmit
queue with POLL set;
ELSE

Protocols C-39

abort the session;
return session aborted, no
response status to user;
close:
IF retransmit counter is less than
maxRetransmit THEN
increment retransmit counter;
reset and restart timer;
send another close packet;
ELSE
abort the session;
return session aborted, no
response status to user;
status request:
IF retransmit counter is less than
maxRetransmit THEN
increment retransmit counter;
send another status_request packet;
ELSE
return no_response status to user;
END CASE

C-40 Protocols

PROCEDURE packet associated timer expiration
BEGIN
CASE outstanding packet type OF
session send:
sendahort packet;
return session send with command
timed out status;
session send multiple:
sendahort packet;
return session send multiple
with command timed out status;
session receive:
return session receive with
command timed out status;
END

Protocols C-41

Packet Reception Processing
This section describes the receipt of packets by the
protocol software. The conditions for this type of
processing are as follows:
•

The packet has been received.

•

The packet has gone through CRC checking.

•

The address of this node has matched the address
in the packet.

PROCEDURE packet received
BEGIN
CASE packet type OF
name query:
IF DNODEID does not match local node name or any
currently enabled group address THEN;
ignore packet;
ELSE
IF packet arrived with same SNODEID
and DID THEN;
ignore this packet;
ELSE
IF DNAME is stored in local name table THEN
IF resources exist for a new session THEN
send positive name query response
packet to sender andstart timer;
ELSE
send negative name query response
packet to sender; ELSE
ignore packet and send no response;
name claim:
IF DNODEID does not match local node name or any
currently enabled group address THEN
ignore packet;

C-42 Protocols

ELSE
IF packet arrived with same SNODEID
and DID THEN
ignore this packet;
ELSE
IF DNAME conflicts with a name
in local name table THEN
send name claim_response packet to sender;
ELSE
ignore packet and send no response;
nonexclusive name claim:
IF DNODEID does not match local node name or any
currently enabled group address THEN
ignore packet;
ELSE
IF packet arrived with same SNODEID
and DID THEN
ignore this packet;
ELSE
IF DNAME conflicts with a name exclusively
registered in local name table THEN
send name claim response packet to sender;
ELSE
ignore packet and send no response;
positive name query response:
match this packet with the originating active open;
cancel timer associated with previous name query;
identify the session established by the SNCID and the
CONNID values;
send session request packet;
start timer for session request packet;
negative name query response:
match this packet with the originating active open;
cancel timer associated with previous name query;
return command completed, session
open rejected to user
name query cancel:
match this packet with any half-established connection
(SNODEID and SCONNID);

Protocols C-43

IF match is found THEN

release associated connection resources;
issue tear down to lower layer;
ELSE
ignore this packet;
name claim response:
remove name from local name table;
cancel timer associated with previous name claim;
return name in_use status to user;
session request:
cancel positive name query response timer;
IF passive open specific is outstanding with remote name
equal to SNAME and local name equal to DNAME THEN
send session_accept packet over session;
start timer for session accept;
choose local session-no for this session;
return command completed status to user;
ELSE
IF passive open non-specific is outstanding with local name
equal to DNAME THEN
send session accept packet over session;
start timer forsession accept;
choose local session-number
for this session;
set remote name = SNAME;
return command completed status to user;
ELSE
send session_rejected packet over session;
session accept:
cancel timer associated with previous session request;
choose local session number for this session;
return local session number to user;
return command completed status to user;
{session established}
session reject:
cancel timer associated with previous session request;
return session_open_rejected status to user;

C-44 Protocols

session data:
remove all acknowledged packets from retransmit queue;
note remote entity's current window value (WIN);
cancel all associated timers;
IF SEQ is not the next expected value THEN
IF nack packet has not been sent THEN
send nack packet;
ELSE
ignore packet;
ELSE
{SEQ is next expected}
IF POLL is indicated THEN
send ack;
transfer session data to user buffer
specified in session receive
command;
IF size of user buffer is smaller than
received session data THEN
return message incomplete status to user;
ELSE
{EOM is indicated}
return actual amount received to user;
return command completed status to user
REPEAT for each outstanding session send and
session send multiple command;
IF all datahas been acked THEN
return command with success status;
UNTIL all session send and session send_multiple
commands have been examined;
IF no session send or session send multiple
commands are pending AND session close is
pending THEN
send a close packet;

a

ack:
remove all acknowledged packets from the retransmit
queue;
note remote entity's current window value (WIN);
restart timers on unacknowledged packets;
cancel timers on acknowledged packets
REPEAT for each outstanding session send and
session send multiple command;
IF all datahas been acked THEN

Protocols C-45

return command with success status;
UNTIL all session send and session send multiple
commands have been examined; IF no session send or session send multiple
commands are pending AND session close is
pending THEN
send a close packet;

a

nack:
remove all acknowledged packets from the retransmit
queue;
note remote entity's current window value (WIN);
restart timers on unacknowledged packets;
cancel timers on acknowledged packets;
retransmit last unacknowledged (last) packet(s);
REPEAT for each outstanding session send and
session send multiple command;
IF all data has been acked THEN
return command with success status;
UNTIL all session send and session send multiple
commands have been examined; IF no session send or session send multiple
commands are pending AND session close is
pending THEN
send a close packet;

a

close:
IF local user initiated the close THEN
send closed packet;
close the session;
return command completed status to user
ELSE
{close packet received from close initiator}
initialize~retry counter;
initialize retransmission timer;
send close packet to close initiator
closed:
notify user that connection is closed;
user datagram:
IF DNAME is not *broadcast THEN
BEGIN {non-broadcast datagram received}

C-46 Protocols

IF previous packet arrived with
same SNODEID and DID THEN
ignore this packet
IF no pending datagram receive command exists THEN
ignore packet
REPEAT
{check if received datagram matches a
receive specific}
choose next pending datagram receive specific
IF DNAME = local name THEN
BEGIN
{datagram receive to specific name
satisfied}
transfer datagram data to user buffer
of appropriate length;
return actual length of transfer to user;
return local name number to user;
return SN AME to user;
IF size of user buffer is smaller than
received datagram THEN
BEGIN
return message incomplete status to user;
{datagram received, unable to transfer
entire message}
END
ELSE
return command completed status to user
{datagram received}
END
UNTIL all datagram receive specific commands checked
{datagram receive to any name satisfied}
transfer datagram data to user buffer;
return actual length of transfer to user;
return local name number to user;
return SNAME tOuser;
IF size of user buffer is smaller than
received datagram THEN
BEGIN
return message incomplete status to user;
{datagram received, unable to
transfer entire message}
END
ELSE

Protocols C-47

return command completed status to user
{datagram received}
END {non-datagram received}
ELSE {broadcast datagram received}
BEGIN
IF broadcast datagram is sent by the
same local name THEN
ignore datagram
{broadcast datagram receive no satisfied,
continue to wait}
ELSE
IF previous packet arrived with
same SNODEID and DID THEN
ignore this packet
IF no broadcast datagram receive
command outstanding THEN
ignore packet
ELSE
choose next pending broadcast datagram receive
transfer broadcast datagram to user buffer;
return actual length of transfer to user;
return sender's name to user;
IF size of user buffer is smaller than received
datagram THEN
return message incomplete status to user;
{broadcast datagram received, unable to
return entire message}
ELSE
return SNAME to user;
return command completed status to user
{broadcast datagram received}
END {broadcast datagram received}
status request:
IF DNODEID does not match local node name or any
currently enabled group address THEN
ignore packet
ELSE
IF previous packet recently arrived with same
SNODEID and DID THEN
ignore this packet
ELSE
search for name in local name table;

C-48 Protocols

IF name is found THEN
send status response'packet;
ELSE
ignore this packet;
status response:
IF DNODEID does not match local node name or any
currently enabled group address THEN
ignore packet
ELSE
IF previous packet arrived with same SNODEID
and DID THEN
ignore this packet
ELSE
cancel timer associated with previous status
request;
return configuration parameters and status;
return actual length of configuration parameter
and status;
IF size of user buffer is smaller than the
configuration parameter and status THEN
return message incomplete status to user;
ELSE
return command_completed status to user
END CASE;

Protocols C-49

Field Definitions
This section describes the fields found within the
protocol packet types.

Field

Meaning

ACK

This field is an 8-bit field that
includes the sequence number + 1
modulo 256 of the last correctly
received packet.

ALGNERRS

This is a I6-bit field specifying the
number of packets received with
alignment errors.

ALIASNAME

This is the I6-byte field containing
the name.

ALIASNR

This is an 8-bit specifying the
number that is assigned to a given
name.

ALIASTAT

The low order 4-bits specify the
status of a name. See "* Local
name table-16 entries of 18
bytes each" on page 2-35 for the
numbers that are returned in this
field.

CLREAS

This is an 8-bit reason code
indicating the reason for a
connection being closed.
CLREAS = OOH indicates a
normal close.

CMDRESP

This is a I-bit flag indicating
whether the packet contains a
command or a response to a
command.

C-50 Protocols

COLLISIONS

This is 16-bit field specifying the
number of transmitted packets
that experienced collisions.

CONNID

This is a 16-bit identifier used to
determine which session a packet
is assigned to.

CRC

This is a 32-bit field containing the
cyclic redundancy check for the
packet according to the Autodin-II
32-bit polynomial generator.

CRCERRS

This is a 16-bit field specifying the
number of CRC errors being
reported.

DADDR

This 48-bit field is used to identify
the destination Link level address
of the packet. A value of all
binary ones indicates a broadcast.
All other adapter addresses will
have the 16 highest bits set to
zero. A value whose least
significant bits are hex FF
indicates a group address of the
form f(name).

DATA

DATA is a variable length field
containing user data.

DID

DID is a 16-bit field that is
incremented with each
retransmission of a name query,
name claim, and a get status
packet.

OLEN

This 16-bit field contains the
length of the data field specified in
bytes of the Link level packet.

Protocols C-51

is a 16-bit field that identifies
the name of a destination (ASCII
characters) .

Ul"iAlVI.r,

ThIS

DNCID

This is a I6-bit field used with the
CONNID to determine the session
for each packet or to identify a
datagram.

DNODEID

This is a 48-bit field indicating the
Link level address of an intended
destination.

EFD

This is an 8-bit end frame
delimiter flag ( 7EH ).

EOM

This is a I-bit end of message
indicator. The bit marks the end
of a user's logical message.

JUMPSTATI

This is the I-bit field indicating
the status of jumper WI. When
set to 1, jumper WI is in place.

JUMPSTAT2

This is the I-bit field indicating
the status of jumper W2. When
set to 1, jumper W2 is in place.

NACKREAS

This is the 8-bit reason code
indicating the reason why a packet
was not successfully delivered.
The following is a list of the codes
that can be contained in this field.

•
•
•
•
•
•
•

OOH-No specific reason
I8H-Nack response to an unexpected open
request
20H-Incompatible RSP version
22H-Bad service ID
24H-Invalid RSP control information
26H-No remote resources
32H-OK
34H-Name claim rejected

C-52 Protocols

•

35H-Name query rejected

NODEIDMASK

This is a 6-byte mask used in a
logical AND operation to get the
destination node name.

NODEIDMATCH

This is the 6-byte match value to
use in the operation: permanent
node name AND NODEIDMASK
equals NODEIDMATCH.

NRALIAS

This is the 16-bit field specifying
the number of names to follow.

PKTSIZE

This is a 16-bit field indicating the
maximum packet size that an
initiating session node is willing to
accept.

PNCID

This is a 16-bit field used with the
CONNID to determine the
network connection with which a
packet is associated at a previous
node or to identify a datagram.

PNODEID

This is a 4S-bit field indicating the
Link level address of the previous
node.

POLL

This is a I-bit field when set to
OSH, indicates that a return packet
should be generated back to the
sender. OOH indicates no poll.

RECVMSGS

This is a 32-bit field specifying the
number of packets that have been
successfully received for a given
period of time.

REPORTPD

This is a 16-bit field specifying the
period of time, in minutes, for the
statistical data that was gathered.

Protocols C-53

RVAL

This is an 8-bit value indicating
the reason why a requested session
was rejected. RVAL = 3
indicates no matching LISTEN
command. RVAL = 4 indicates
incompatible version.

SADDR

This is a 48-bit field identifying
the source Link level address of
the packet.

SCONNID

This is a 16-bit identifier used to
determine the session number for
a packet.

SEQ

SEQ is an 8-bit session packet
sequence number. It is
incremented with each new data
transmission.

SHORTFRAMES

This is a 16-bit field specifying the
number of short frames being
reported.

SNAME

This is a 16-bit field containing the
name of a source node. (Specified
in ASCII characters)

SNCID

This is a 16-bit field used with the
CONNID to determine the
network connection with which a
packet is associated at a source
node or to identify a datagram.

SNODEID

This is 48-bit field indicating the
Link level address of a source
node.

STD

STD is an 8-bit start delimiter flag
(7EH ).

C-54 Protocols

TRANSID

This is a 16-bit field indicating the
transaction ID for status and
status response packets.

WIN

WIN is a 4-bit field that indicates
the number of packets beyond the
ones already acknowledged that
the sender is willing to accept.

XMITABRTS

This is a 16-bit field specifying the
number of transmitted packets
that were aborted.

XMITMSGS

This is a 32-bit field specifying the
number of packets that were
successfully transmitted for a
given period of time.

Protocols C-55

Packet Types, Formats and Functions
With the previously defined field semantics, the
following describes the protocol packet types and their
functions.

Name Query Packet

Name Query Packet
Field Name
STD

Offset Length
DB7EH
OOH

DADDR

01H
03H
05H

DW?
DW?
DW?

Low address
Mid address
Hi address

SAD DR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 5000H

Fixed value for
this position of
packet

N/A

llH

DB lOH

Fixed value for
this position of
packet

12H

DBO?H

Low-order 4-bits
define number of
packets

WIN

C-56 Protocols

Comments
Start delimiter
flag byte

Name Query Packet
Field Name
CONNID

Offset Length
13H
DW?

Comments
Field ID for
packet

N/A

ISH

DW 0202H

Fixed value for
this position of
packet

N/A

17H

DWXXXXH

Don't-care value
for this
position of
packet

N/A

19H

DW 0100H

Fixed value for
this position of
packet

N/A

IBH

DWXXXXH

Don't-care value
for this
position of
packet

N/A

IDH

DWXXXXH

Don't-care value
for this
position of
packet

N/A

IFH

DW 10XXH

Fixed value for
this position of
packet

N/A

21B

DWXXlOH

Fixed value for
this position of
packet

DNAME

23H

DB 16 DUP(?)

ASCII Name for
destination

SNAME

33H

DB 16 DUP(?)

ASCII Name for
source

Protocols C-57

Name Query Packet
Field Name
PNCID

Offset Length
43H
DW?

DID

45H

DW?

Number that is
incremented by
1 for each
packet

SNCID

47H

DW?

Field ID for
packet

DNODEID

49H
4BH
4DH

DW?
DW?
DW?

Low address
Mid address
Hi address

SNODEID

4FH
51H
53H

DW?
DW?
DW?

Low address
Mid address
Hi address

PNODEID

55H
57H
59H

DW?
DW?
DW?

Low address
Mid address
Hi address

CRe

5BH

DD?

Check byte

EFD

5FH

DB7EH

End-of-packet
byte

Comments
; (See definition)

DADDR

This equals f(remote name).

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

WIN

This equals the current value indicating
the number of packets the sender is
willing to accept.

C-58 Protocols

CONNID

Choose a new CONNID value on the
first transmission or repeat the previous
CONNID on retransmissions.

xxxx

The X's represent a don't-care value.

DNAME

This is equal to the remote name.

SNAME

This is equal to the source name.

DID

Use the next DID value.

SNCID

Use the next SNCID value on the first
transmission or repeat the previous
SNCID value on retransmission.

PNCID

Low-byte of PNCID equals the
low-byte of SNCID.

DNODEID

This is equal to f(remote name).

SNODEID

This is equal to the local node name

PNODEID

This is equal to SNODEID

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-59

Name Claim and Name Claim Cancel Packet

Name Claim and Name Claim Cancel Packet
Field Name

Offset Length

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

01H
03H
05H

DW?
DW?
DW?

Low address
Mid address
Hi address

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 5000H

Fixed value for
this position of
packet

N/A

llH

DB?

lOH = Name Claim
packet. AOH =
Name Claim
Cancel Packet

WIN

12H

DBO?H

Low-order 4-bits
define number of
packets

CONNID

13H

DW?

Field ID for
packet

C-60 Protocols

Comments

Name Claim and Name Claim Cancel Packet
Field Name

Offset Length

Comments

N/A

ISH

DW 0202H

Fixed value for
this position of
packet

N/A

17H

DWXXXXH

Don't-care value
for this
position of
packet

N/A

19H

DW 0400H

Fixed value for
this position of
packet

N/A

IBH

DWXXXXH

Don't-care value
for this
position of
packet

N/A

IDH

DWXXXXH

Don't-care value
for this
position of
packet

N/A

IFH

DW lOXXH

Fixed value for
this position of
packet

N/A

21H

DWOOOOH

Fixed value for
this position of
packet

DNAME

23H

DB 16 DUP(?)

ASCII Name for
destination

PNCID

33H

DW?

Equal to SNCID

Protocols C-61

Name Claim and Name Claim Cancel Packet
Field Name

Offset Length

Comments

DID

35H

DW?

Number that is
incremented by
1 for each
packet

SNCID

37H

DW?

Field ID for
packet

DNODEID

39H
3BH
3DH

DW?
DW?
DW?

Low address
Mid address
Hi address

SNODEID

3FH
41H
43H

DW?
DW?
DW?

Low address
Mid address
Hi address

PNODEID

45H
47H
49H

DW?
DW?
DW?

Low address
Mid address
Hi address

CRC

4BH

DD?

Check byte

EFD

4FH

DB7EH

End-of-packet
byte

DADDR

This equals the group address of
f(remote name).

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

WIN

This equals the current value indicating
t4e number of packets the sender is
willing to accept.

C-62 Protocols

CONNID

Choose a new CONNID value on the
first transmission or repeat the previous
CONNID on retransmissions.

xxxx

The X's represent a don't-care value.

DNAME

This is equal to the remote name.

PNCID

This is equal to SNCID.

DID

Use the next DID value.

SNCID

Use the next SNCID value on the first
transmission or repeat the previous
SN CID value on retransmission.

DNODEID

This is equal to f(remote name).

SNODEID

This is equal to the local node name

PNODEID

This is equal to SNODEID

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-63

Nonexclusive Name Claim and Nonexclusive Name
Claim Cancel Packet

Nonexclusive Name Claim and
Nonexclusive Name Claim Cancel Packet
Field Name

Offset Length

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

OIH
03H
05H

DW?
DW?
DW?

Low address
Mid address
Hi address

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 5000H

Fixed value for
this position of
packet

N/A

llH

DB?

IOH=Nonexclusive
Name Claim
Packet. AOH=Nonexclusive Name
Claim Cancel
packet

I2H

DBO?H

Low-order 4-bits
define number of
packets

WIN

C-64 Protocols

Comments

Nonexclusive Name Claim and
Nonexclusive Name Claim Cancel Packet
Comments

Field Name

Offset Length

CONNID

13H

DW?

Field ID for
packet

N/A

15H

DW 0202H

Fixed value for
this position of
packet

N/A

17H

DWXXXXH

Don't-care value
for this
position of
packet

N/A

19H

DW0600H

Fixed value for
this position of
packet

N/A

IBH

DWXXXXH

Don't-care value
for this
position of
packet

N/A

IDH

DWXXXXH

Don't-care value
for this
position of
packet

N/A

IFH

DW 10XXH

Fixed value for
this position of
packet

N/A

21H

DW OOOOH

Fixed value for
this position of
packet

23H

DB 16 DUP(?)

ASCII Name for
destination

DNAME

Protocols C-65

Nonexclusive Name Claim and
Nonexclusive Name Claim Cancel Packet
Field Name

Offset Length

Comments

PNCID

33H

DW?

Equal to SNCID

DID

35H

DW?

Number that is
incremented by
1 for each
packet

SNCID

37H

DW?

Field ID for
packet

DNODEID

39H
3BH
3DH

DW?
DW?
DW?

Low address
Mid address
Hi address

SNODEID

3FH
41H
43H

DW?
DW?
DW?

Low address
Mid address
Hi address

PNODEID

45H
47H
49H

DW?
DW?
DW?

Low address
Mid address
Hi address

CRC

4BH

DD?

Check byte

EFD

4FH

DB7EH

End-of-packet
byte

DADDR

This equals the group address of
f(remote name).

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

C-66 Protocols

WIN

This equals the current value indicating
the number of packets the sender is
willing to accept.

CONNID

Choose a new CONNID value on the
first transmission or repeat the previous
CONNID on retransmissions.

xxxx

The X's represent a don't-care value.

DNAME

This is equal to the remote name.

PNCID

This is equal to SNCID.

DID

Use the next DID value.

SNCID

Use the next SNCID value on the first
transmission or repeat the previous
SNCID value on retransmission.

DNODEID

This is equal to f(remote name).

SNODEID

This is equal to the local node name

PNODEID

This is equal to SNODEID

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-67

Positive Name Query Response

Positive Name Query Response
Field Name Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

0IH
03H
05H

DW?
DW?
DW?

Low address
Mid address
Hi address

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 3000H

Fixed value for
this position of
packet

N/A

llH

DB20H

Fixed value for
this position of
packet

WIN

I2H

DBO?H

Low-order 4-bits
define number of
packets. Highorder 4-bits are
fixed value.

CONNID

I3H

DW?

Field ID for
packet

C-68 Protocols

Positive Name Query Response
Field Name Offset Length
SCONNID 15H

Comments

DW?

Connection
ID of session

N/A

17H

DWXXXXH

Don't-care value
for this
position of
packet

N/A

19H

DWOlOIH

Fixed value for
this position of
packet

N/A

IBH

DWXXXXH

Don't-care value
for this
position of
packet

N/A

IDH

DWXXXXH

Don't-care value
for this
position of
packet

N/A

IFH

DW 10XXH

Fixed value for
this position of
packet

N/A

21H

DWOOlOH

Fixed value for
this position of
packet

DNAME

23H

DB 16 DUP(?)

ASCII Name for
destination

SNAME

33H

DB 16 DUP(?)

ASCII Name for
source

Protocols C-69

Positive Name Query Response
Field Name Offset Length

Comments

DNCID

43H

DW?

Number used to
determine
the session for
packet or to
identify datagram

SNCID

45H

DW?

Field ID for
packet

SNODEID 47H
49H
4BH

DW?
DW?
DW?

Low address
Mid address
Hi address

CRC

4DH

DD?

Check byte

EFD

51H

DB7EH

End-of-packet
byte

DADDR

This equals the address of the queried
node.

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

WIN

This equals the current value indicating
the number of packets the sender is
willing to accept.

CONNID

This field is equal to the appropriate
connection ID indicating the session
and associated packet.

C-70 Protocols

SCONNID

This field is equal to the connection ID
indicating the session of the requesting
node.

xxxx

The X's represent a don't-care value.

DNAME

This is equal to the remote name.

SNAME

This is equal to the source name.

DNCID

This field is equal to the session
identifier for the destination node.
This field is used with CONNID to
specify the destination session.)

SNCID

This field is equal to the session
identifier for the source node.

SNODEID

This is equal to the local node name

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-71

Negative Name Query Response

Negative Name Query Response
Field Name Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

01H
03H
05H

DW?
DW?
DW?

Low address
Mid address
Hi address
This is the
next node
address
(initiator's
address)

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 4000H

Fixed value for
this position of
packet

N/A

llH

DB30H

Fixed value for
this position of
packet

12H

DBO?H

Low-order 4-bits
define number of
packets. Highorder 4-bits are
fixed value.

WIN

C-72 Protocols

Negative Name Query Response
Field Name Offset Length
CONNID

Comments

13H

DW?

Field ID for
packet

N/A

15H

DWXXXXH

Don't-care value
for this
position of
packet

NACKREAS

17H

DBOOH

Reason why
packet nacked.

N/A

18H

DBXXH

Don't-care value
for this
position of
packet

N/A

19H

DWOlOIH

Fixed value for
this position of
packet

N/A

21H

DWXXXXH

Don't-care value
for this
position of
packet

N/A

23H

DWXXXXH

Don't-care value
for this
position of
packet

N/A

25H

DW 10XXH

Fixed value for
this position of
packet

N/A

27H

DWXXI0H

Fixed value for
this position of
packet

Protocols C-73

Negative Name Query Response
Field Name Offset Length

Comments

DNAME

29H

DB 16 DUP(?)

ASCII Name for
destination

SNAME

39H

DB 16 DUP(?)

ASCII Name for
source

DNCID

49H

DW?

Number used to
determine
the session for
packet or to
identify datagram

CRC

4BH

DD?

Check byte

EFD

4FH

DB7EH

End-of-packet
byte

DADDR

This equals the address of the queried
node.

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

WIN

This equals the current value indicating
the number of packets the sender is
willing to accept.

CONNID

This field is equal to the appropriate
connection ID indicating the session
and associated packet.

xxxx

The X's represent a don't-care value.

C-74 Protocols

NACKREAS

This is set to indicate the reason why a
packet was nacked.

DNAME

This is equal to the remote name.

SNAME

This is equal to the source name.

DNCID

This field is equal to the session
identifier for the destination node.
This field is used with CONNID to
specify the destination session.)

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-7S

Name Claim Response

Name Claim Response
Field Name Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

01H
03H
05H

DW?
DW?
DW?

Low address
Mid address
Hi address
This is the
next node
address
(initiator's
address)

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 4000H

Fixed value for
this position of
packet

N/A

llH

DB30H

Fixed value for
this position of
packet

12H

DBO?H

Low-order 4-bits
define number of
packets. Highorder 4-bits are
fixed value.

WIN

C-76 Protocols

Name Claim Response
Field Name Offset Length
CONNID

Comments

13H

DW?

Field ID for
packet

N/A

15H

DWXXXXH

Don't-care value
for this
position of
packet

NACKREAS

17H

DB?

Reason why
packet nacked.

N/A

18H

DBXXH

Don't-care value
for this
position of
packet

N/A

19H

DW0401H

Fixed value for
this position of
packet

N/A

1BH

DWXXXXH

Don't-care value
for this
position of
packet

N/A

1DH

DWXXXXH

Don't-care value
for this
position of
packet

N/A

1FH

DW 10XXH

Fixed value for
this position of
packet

N/A

21H

DWOOOOH

Fixed value for
this position of
packet

Protocols C-77

Name Claim Response
Field Name Offset Length

Comments

DNAME

23H

DB 16 DUP(?)

ASCII Name for
destination

DNCID

33H

DW?

Number used to
determine
the session for
packet or to
identify datagram

CRC

35H

DD?

Check byte

EFD

39H

DB7EH

End-of-packet
byte

DADDR

This equals the group address of
remote name.

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

WIN

This equals the current value indicating
the number of packets the sender is
willing to accept.

CONNID

This field is equal to the app~opriate
connection ID indicating the session
and associated packet.

NACKREAS

This is set to indicate the reason why a
packet was nacked.

XXXX

The X's represent a don't-care value.

C-78 Protocols

DNAME

This is equal to the remote name.

SNAME

This is equal to the source name.

DNCID

This field is equal to the session
identifier for the destination node.
This field is used with CONNID to
specify the destination session.

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-79

Name Query Cancel Packet

Name Query Cancel Packet
Field Name
STD

Offset Length
OOH
DB7EH

DADDR

0IH
03H
05H

DW?
DW?
DW?

Low address
Mid address
Hi address
This is the
next node
address
(initiator's
address)

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 5000H

Fixed value for
this position of
packet

N/A

llH

DBAOH

Fixed value for
this position of
packet

WIN

I2H

DBO?H

Low-order 4-bits
define number of
packets

CONNID

I3H

DW?

Field ID for
packet

C-80 Protocols

Comments
Start delimiter
flag byte

Name Query Cancel Packet
Field Name
N/A

Offset Length
ISH
DW 0202H

Comments
Fixed value for
this position of
packet

N/A

17H

DWXXXXH

Don't-care value
for this
position of
packet

N/A

19H

DWOI00H

Fixed value for
this position of
packet

N/A

IBH

DWXXXXH

Don't-care value
for this
position of
packet

N/A

IDH

DWXXXXH

Don't-care value
for this
position of
packet

N/A

IFH

DW 10XXH

Fixed value for
this position of
packet

N/A

21H

DWXXI0H

Fixed value for
this position of
packet

DNAME

23H

DW 16 DUP(?)

ASCII Name for
destination

SNAME

33H

DW 16 DUP(?)

ASCII Name for
source

PNCID

43H

DW?

; (See definition)

Protocols C-81

Name Query Cancel Packet
Field Name
DID

Offset Length
45H
DW?

Comments
Number that is
incremented by
1 for each
packet

SNCID

47H

DW?

Field ID for
packet

DNODEID

49H
4BH
4DH

DW?
DW?
DW?

Low address
Mid address
Hi address

SNODEID

4FH
51H
53H

DW?
DW?
DW?

Low address
Mid address
Hi address

PNODEID

55H
57H
59H

DW?
DW?
DW?

Low address
Mid address
Hi address

CRC

5BH

DD?

Check byte

EFD

5FH

DB7EH

End-of-packet
byte

DADDR

This equals the group address of
remote name.

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

WIN

This equals the current value indicating
the number of packets the sender is
willing to accept.

C-82 Protocols

CONNID

Choose a new CONNID value on the
first transmission or repeat the previous
CONNID on retransmissions.

xxxx

The X's represent a don't-care value.

DNAME

This is equal to the remote name.

SNAME

This is equal to the source name.

PNCID

Low-order byte of PNCID equals
low-order byte of SNCID.

DID

Use the next DID value.

SNCID

Use the next SNCID value on the first
transmission or repeat the previous
SN CID value on retransmission.

DNODEID

This is equal to f(remote name).

SNODEID

This is equal to the local node name

PNODEID

This is equal to SNODEID

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-83

Session Request

Session Request
Field Name Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

01H
03H
OSH

DW?
DW?
DW?

Low address
Mid address
Hi address
This is the
next node
address
(initiator's
address)

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 0040H

Fixed value for
this position of
packet

POLL

IlH

DBO?H

(OO-07)H
means no poll
(08-0F)H
means to send
a return packet.

C-84 Protocols

Session Request
Field Name Offset Length

Comments

WIN

I2H

DBO?H

Low-order 4-bits
define number of
packets. Highorder 4-bits are
fixed value.

CONNID

13H

DW?

Field ID for
packet

SEQ

I5H

DB?

Session packet
sequence
number

ACK

I6H

DB?

Number that includes number
+ 1 modulo 256
of last
correctly
received packet

I7H

DWOOOIH

Fixed value for
this position of
packet

I9H

DW?

Packet size that
can be accepted
from the remote
node.

N/A

IBH

DWOOOOH

Fixed value for
this position of
packet

N/A

IDH

DW 1010H

Fixed value for
this position of
packet

N/A

PKTSIZE

Protocols C-85

Session Request
Field Name Offset Length

Comments

SNAME

1FH

DB 16 DUP(?)

ASCII Name for
source

DNAME

2FH

DB 16 DUP(?)

ASCII Name for
destination

DNCID

3FH

DW?

Number used to
determine
the session for
packet or to
identify datagram

CRC

41H

DD?

Check byte

EFD

45H

DB7EH

End-of-packet
byte

DADDR

This equals the address of the next
node of a network connection.
(Possibly the destination node.)

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

POLL

When this byte is set to (08-0F)H, the
receiver is requested to send a return
packet. When this byte is set to
(OO-07)H, indicates no poll.

WIN

This equals the current value indicating
the number of packets the sender is
willing to accept.

C-86 Protocols

CONNID

This field is equal to the appropriate
connection ID indicating the session
and associated packet.

SEQ

This field is equal to the session packet
sequence number for this packet.

ACK

This field is equal to the
acknowledgment sequence number. This
number indicates the next expected
sequence number to be received.

PKTSIZE

Set this size to the maximum that an
initiating session entity will accept.

SNAME

This is equal to the source name.

DNAME

This is equal to the destination name.

DNCID

This field is equal to the session
identifier for the destination node.
This field is used with CONNID to
specify the destination session.)

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-87

Session Accept

Session Accept
Field Name Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

OlH
03H
OSH

DW?
DW?
DW?

Low address
Mid address
Hi address
This is the
next node
address
(initiator's
address)

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DWOO40H

Fixed value for
this position of
packet

POLL

llH

DBO?H

(OO-07)H
means no poll
(08-0F)H
means to send
a return packet.

C-88 Protocols

Session Accept
Field Name Offset Length

Comments

WIN

12H

DBO?H

Low-order 4-bits
define number of
packets. Highorder 4-bits are
fixed value.

CONNID

13H

DWDUP(O)

Field ID for
packet

SEQ

15H

DB?

Session packet
sequence
number

ACK

16H

DB?

Number that includes number
+ 1 modulo 256
of last
correctly
received packet

17H

DW 0OO2H

Fixed value for
this position of
packet

PKTSIZE

19H

DW?

Packet size that
can be accepted
from the remote
node.

DNCID

lBH

DW?

Number used to
determine
the session for
packet or to
identify datagram

CRC

lDH

DD DUP(O)

Check byte

N/A

Protocols C-89

Session Accept
Field Name Offset Length
EFD

22H

DB 7EH

Comments
End-of-packet
byte

DAD DR

This equals the group address of the
responding node.

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

POLL

When this byte is set to (08-0F)H, the
receiver is requested to send a return
packet. When this byte is set to
(OO-07)H, indicates no poll.

WIN

This equals the current value indicating
the number of packets the sender is
willing to accept.

CONNID

This field is equal to the appropriate
connection ID indicating the session
and associated packet.

SEQ

This field is equal to the session packet
sequence number for this packet.

ACK

This field is equal to the
acknowledgment sequence number. This
number indicates the next expected
sequence number to be received.

PKTSIZE

Set this size to the maximum that an
initiating session entity will accept.

C-90 Protocols

DNCID

This field is equal to the session
identifier for the destination node.
This field is used with CONNID to
specify the destination session.)

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-91

Session Reject

Session Reject
Field Name Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

OlH
03H
OSH

DW?
DW?
DW?

Low address
Mid address
Hi address
This is the
next node
address
(initiator's
address)

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 4000H

Fixed value for
this position of
packet

POLL

llH

DBO?H

(OO-07)H
means no poll
(08-0F)H
means to send
a return packet.

C-92 Protocols

Session Reject
Field Name Offset Length

Comments

WIN

I2H

DBO?H

Low-order 4-bits
define number of
packets. Highorder 4-bits are
fixed value.

CONNID

13H

DW?

Field ID for
packet

SEQ

I5H

DB?

Session packet
sequence
number

ACK

I6H

DB?

Number that includes number
+ 1 modulo 256
of last
correctly
received packet

N/A

17H

DB03H

Fixed value for
this position of
packet

RVAL

I8H

DB?

Value to indicate
why session was
rejected.

DNCID

I9H

DW?

Number used to
determine
the session for
packet or to
identify datagram

CRC

IBH

DD?

Check byte

Protocols C-93

Session Reject
Field Name Offset Length
EFD

IFH

DB 7EH

Comments
End-of-packet
byte

DADDR

This equals the group address of the
responding node.

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

POLL

When this byte is set to (08-0F)H, the
receiver is requested to send a return
packet. When this byte is set to
(OO-07)H, indicates no poll.

WIN

This equals the current value indicating
the number of packets the sender is
willing to accept.

CONNID

This field is equal to the appropriate
connection ID indicating the session
and associated packet.

SEQ

This field is equal to the session packet
sequence number for this packet.

ACK

This field is equal to the
acknowledgment sequence number. This
number indicates the next expected
sequence number to be received.

RVAL

This field indicates the reason code for
the session reject.

C-94 Protocols

DNCID

This field is equal to the session
identifier for the destination node.
This field is used with CONNID to
specify the destination session.)

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-95

Ack Packet

Ack Packet
Field Name Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

OlH
03H
OSH

DW?
DW?
DW?

Low address
Mid address
Hi address
This is the
next node
address
(initiator's
address)

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW4000H

Fixed value for
this position of
packet

POLL

llH

DB4?H

(40-47)H
means no poll.
(48-4F)H
means to send
a return packet.

C-96 Protocols

Ack Packet
Field Name Offset Length

Comments

WIN

I2H

DBO?H

Low-order 4-bits
define number of
packets. Highorder 4-bits are
fixed value.

CONNID

13H

DW?

Field ID for
packet

SEQ

I5H

DB?

Session packet
sequence
number

ACK

I6H

DB?

Number that includes number
+ 1 modulo 256
of last
correctly
received packet.

N/A

I7H

DBXXH

Don't-care value
for this
position of
packet

DNCID

I8H

DW?

Number used to
determine
the session for
packet or to
identify datagram

CRC

IAH

DD?

Check byte

EFD

IEH

DB7EH

End-of-packet
byte

Protocols C-97

DADDR

This equals the group address of the
responding node.

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

POLL

When this byte is set to (48-4F)H, the
receiver is requested to send a return
packet. When this byte is set to
(40-47)H, indicates no poll.

WIN

This equals the current value indicating
the number of packets the sender is
willing to accept.

CONNID

This field is equal to the appropriate
connection ID indicating the session
and associated packet.

SEQ

This field is equal to the session packet
sequence number for this packet.

ACK

This field is equal to the
acknowledgment sequence number. This
number indicates the next expected
sequence number to be received.

DNCID

This field is equal to the session
identifier for the destination node.
This field is used with CONNID to
specify the destination session.)

CRC

This is the cyclic redundancy check for
the packet.

C-98 Protocols

Nack Packet

Nack Packet
Field Name

Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

01H
03H
05H

DW?
DW?
DW?

Low address
Mid address
Hi address

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 4000H

Fixed value for
this position of
packet

POLL

llH

DB5?H

(50-57)H
means no poll.
(58-5F)H
means to send
a return packet.

WIN

12H

DBO?H

Low-order 4-bits
define number of
packets. Highorder 4-bits are
fixed value.

CONNID

13H

DW?

Field ID for
packet

Protocols C-99

Nack Packet
Field Name

Offset Length

SEQ

I5H

DB?

Session packet
sequence
number

ACK

I6H

DB?

Number that includes number
+ 1 modulo 256
of last
correctly
received packet.

NACKREAS

I7H

DB?

Reason why
packet not
received.

DNCID

I8H

DW?

Number used to
determine
the session for
packet or to
identify
datagram

CRC

IAH

DD?

Check byte

EFD

IEH

DB7EH

End-of-packet
byte

Comments

DADDR

This equals the group address of the
responding node.

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

C-lOO Protocols

POLL

When this byte is set to (S8-SF)H, the
receiver is requested to send a return
packet. When this byte is set to
(SO-S7)H, indicates no poll.

WIN

This equals the current value indicating
the number of packets the sender is
willing to accept.

CONNID

This field is equal to the appropriate
connection ID indicating the session
and associated packet.

SEQ

This field is equal to the session packet
sequence number for this packet.

ACK

This field is equal to the
acknowledgment sequence number. This
number indicates the next expected
sequence number to be received.

NACKREAS

This field is equal to the code
indicating the reason for the nacked
packet.

DNCID

This field is equal to the session
identifier for the destination node.
This field is used with CONNID to
specify the destination session.)

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-l 0 1

Close Packet

Close Packet
Field Name Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

OlH
03H
OSH

DW?
DW?
DW?

Low address
Mid address
Hi address
This is the
next node
address
(initiator's
address)

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 4000H

Fixed value for
this position of
packet

POLL

llH

DB6?H

(60-67)H
means no poll.
(68-6F)H
means to send
a return packet.

C-I02 Protocols

Close Packet
Field Name Offset Length

Comments

WIN

12H

DBO?H

Low-order 4-bits
define number of
packets. Highorder 4-bits are
fixed value.

CONNID

13H

DW?

Field ID for
packet

SEQ

ISH

DB?

Session packet
sequence
number

ACK

16H

DB?

Number that includes number
+ 1 modulo 256
of last
correctly
received packet.

N/A

17H

DBXXH

Fixed value for
this position of
packet

DNCID

I8H

DW?

Number used to
determine
the session for
packet or to
identify
datagram

CRC

lAH

DD?

Check byte

EFD

IEH

DB7EH

End-of-packet
byte

Protocols C-103

DADDR

This equals the address of the next
node of a network connection.
(Possibly the destination node.)

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

POLL

When this byte is set to (68-6P)H, the
receiver is requested to send a return
packet. When this byte is set to
(60-67)H, indicates no poll.

WIN

This equals the current value indicating
the number of packets the sender is
willing to accept.

CONNID

This field is equal to the appropriate
connection ID indicating the session
and associated packet.

SEQ

This field is equal to the session packet
sequence number for this packet.

ACK

This field is equal to the
acknowledgment sequence number. This
number indicates the next expected
sequence number to be received.

DNCID

This field is equal to the session
identifier for the destination node.
This field is used with CONNID to
specify the destination session.)

CRC

This is the cyclic redundancy check for
the packet.

C-104 Protocols

Closed Packet

Closed Packet
Field Name Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

OIH
03H
05H

DW?
DW?
DW?

Low address
Mid address
Hi address
This is the
next node
address
(initiator's
address)

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 4000H

Fixed value for
this position of
packet

N/A

lIH

DB70H

Fixed value for
this position of
packet

12H

DBO?H

Low-order 4-bits
define number of
packets. Highorder 4-bits are
fixed value

WIN

Protocols C-I05

Closed Packet
Field Name Offset Length

Comments

CONNID

I3H

DW?

Field ID for
packet

SEQ

I5H

DB?

Session packet
sequence
number

ACK

I6H

DB?

Number that includes number
+ 1 modulo 256
of last
correctly
received packet.

CLREAS

17H

DB?

Reason why
connection
closed.

DNCID

I8H

DW?

Number used to
determine
the session for
packet or to
identify datagram

CRC

IAH

DD?

Check byte

EFD

IEH

DB7EH

End-of-packet
byte

DADDR

This equals the group address of
remote name.

SADDR

This equals the address of the
transmitting node.

C-I06 Protocols

DLEN

This equals the length of the Link level
packet data field.

WIN

This equals the current value indicating
the number of packets the sender is
willing to accept.

CONNID

This field is equal to the appropriate
connection ID indicating the session
and associated packet.

SEQ

This field is equal to the session packet
sequence number for this packet.

ACK

This field is equal to the
acknowledgment sequence number. This
number indicates the next expected
sequence number to be received.

CLREAS

This field is equal to the code
indicating the reason for the
connection being closed.

DNCID

This field is equal to the session
identifier for the destination node.
This field is used with CONNID to
specify the destination session.)

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-I07

Data Packet

Data Packet
Field Name Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

OlH
03H
OSH

DW?
DW?
DW?

Low address
Mid address
Hi address
This is the
next node
address
(initiator's
address)

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 4000H

Fixed value for
this position of
packet

POLL

llH

DBO?H

(OO-07)H
means no poll.
(08-0F)H
means to send
a return packet.

C-108 Protocols

Data Packet
Field Name Offset Length

Comments

WIN

I2H

DBO?H

Low-order 4-bits
define number of
packets. Highorder 4-bits are
fixed value.

CONNID

13H

DW?

Field ID for
packet

SEQ

I5H

DB?

Session packet
sequence
number

ACK

I6H

DB?

Number that includes number
+ 1 modulo 256
of last
correctly
received packet.

EOM

17H

DB?OH

End-of-message indicator.
(80-FO)H equals
end-of-message.

DATA

I8H

DB?? DUP(?)

Variable length
field.

DNCID

XXH

DW?

Number used to
determine
the session for
pa.cket or to
identify datagram

CRC

XXH

DD?

Check byte

Protocols C-I09

Data Packet
Field Name Offset Length
EFD

XXH

DB7EH

Comments
End-of-packet
byte

DADDR

This equals the next node of a network
connection. (Possibly the destination
node.)

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

POLL

When this byte is set to (08-0F)H, the
receiver is requested to send a return
packet. When this byte is set to
(OO-07)H, indicates no poll.

WIN

This equals the current value indicating
the number of packets the sender is
willing to accept.

CONNID

This field is equal to the appropriate
connection ID indicating the session
and associated packet.

SEQ

This field is equal to the session packet
sequence number for this packet.

ACK

This field is equal to the
acknowledgment sequence number. This
number indicates the next expected
sequence number to be received.

EOM

When this bit is set to 1, packets
contains the end of the user's logical

C-IIO Protocols

message. When this bit is set to 0,
packet does not contain the end of the
message.
DATA

This is a variable field containing user
data.

DNCID

This field is equal to the session
identifier for the destination node.
This field is used with CONNID to
specify the destination session.)

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-lll

Datagram Packet

Datagram Packet
Field Name Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

OIH
03H
05H

DW?
DW?
DW?

Low address
Mid address
Hi address

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 5100H

Fixed value for
this position of
packet

N/A

llH

DWOlOOH

Fixed value for
this position of
packet

N/A

I3H

DWOOOIH

Fixed value for
this position of
packet

N/A

I5H

DW IOlOH

Fixed value for
this position of
packet

C-112 Protocols

Datagram Packet
Field Name Offset Length

Comments

N/A

17H

DWOOOOH

Fixed value for
this position of
packet

SNAME

19H

DB 16 DUP(?)

N arne of source
node in ASCII

DNAME

29H

DB 16 DUP(?)

ASCII Name for
destination

DATA

39H

DB?? DUP(?)

Variable length
field.

PNCID

XXH

DWFFFEH

Equal to
SNCID

DID

XXH

DW?

Number that is
incremented by
1 for each
packet

SNCID

XXH

DWFFFEH

Field ID for
packet

DNODEID XXH
XXH
XXH

DW?
DW?
DW?

Low address
Mid address
Hi address

SNODEID XXH
XXH
XXH

DW?
DW?
DW?

Low address
Mid address
Hi address

PNODEID XXH
XXH
XXH

DW?
DW?
DW?

Low address
Mid address
Hi address

eRC

DD?

Check byte

XXH

Protocols C-113

Datagram Packet
Field Name Offset Length

EFD

XXH

DB7EH

Comments

End-of-packet
byte

DADDR

This equals the group address of
remote name.

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

SNAME

This field is equal to the source name.

DNAME

This field is equal to a destination name
or a " *broadcast" for a broadcast all.

DATA

This is a variable field containing user
data.

PNCID

This field is equal to the datagram
identifier for the previous node.

DID

This field is equal to the next DID
value.

SNCID

This field is equal to the datagram
identifier for the source node.

DNODEID

This is equal to the destination node
name.

SNODEID

This is equal to the local node name.

PNODEID

This field is equal to the SNODEID
field.

C-114 Protocols

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-115

Get Status Packet

Get Status Packet
Field Name Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

01H
03H
05H

DW?
DW?
DW?

Low address
Mid address
Hi address

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 5100H

Fixed value for
this position of
packet

N/A

llH

DW 0300H

Fixed value for
this position of
packet

N/A

13H

DWOOO3H

Fixed value for
this position of
packet

DB?2H

(02-72)H =
command.
(82-F2)H =
response.

CMDRESP 15H

C-116 Protocols

Get Status Packet
~ield

Name Offset Length

Comments

N/A

16H

DBXXH

Fixed value for
this position of
packet

N/A

17H

DW 8001H

Fixed value for
this position of
packet

N/A

19H

DW 8001H

Fixed value for
this position of
packet

IBH

DW?

ID for status
and status response packet

IDH

DB lOH

Fixed value for
this position of
packet

lEH

DB 16 DUP(?)

ASCII Name for
destination

N/A

2EH

DBOOH

Fixed value for
this position of
packet

N/A

2FH

DW OOOOH

Fixed value for
this position of
packet

PNCID

31H

DWFFFEH

Equal to
SNCID

DID

33H

DW?

Number that is
incremented by
1 for each
packet

TRANSID

N/A

DNAME

Protocols C-117

Get Status Packet
Field Name Offset Length
SNCID

35H

Comments

DWFFFEH

Field ID for
packet

DNODEID 37H
39H
3BH

DW?
DW?
DW?

Low address
Mid address
Hi address

SNODEID 3DH
3FH
41H

DW?
DW?
DW?

Low address
Mid address
Hi address

PNODEID 43H
45H
47H

DW?
DW?
DW?

Low address
Mid address
Hi address

CRC

49H

DD?

Check byte

EFD

4DH

DB7EH

End -of-packet
byte

DADDR

This equals the group address of
remote permanent node name.

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

CMDRESP

When this bit is set to 1, the packet is a
response. When set to 0, the packet is
a command.

TRANSID

This field contains the transaction
identification number.

C-118 Protocols

DNAME

This field is equal to a destination
name.

PNCID

This field is equal to the datagram
identifier for the previous node.

DID

Use the next DID value.

SNCID

This field is equal to the datagram
identifier for the source node.

DNODEID

This is equal to the destination node
name.

SNODEID

This is equal to the local node name.

PNODEID

This field is equal to the SNODEID
field.

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-119

Status Response Packet

Status Response Packet
Field Name

Offset Length

STD

OOH

DB7EH

DADDR

01H
03H
05H

DW?
DW?
DW?

SADDR

07H
09H
OBH

DW?
DW?
DW?

DLEN

ODH

DW?

N/A

OFH

DW 5100H

N/A

llH

DW0300H

N/A

13H

DWOOO3H

N/A

15H

DB82H

N/A

16H

DBOOH

N/A

17H

DW 8001H

N/A

19H

DW 8001H

IBH

DW?

IDH

DB 10H

lEH

DW 16 DUP(?)

2EH

DBOOH

TRANSID
N/A
DNAME
N/A

C-120 Protocols

Status Response Packet
Field Name

Offset Length

STATLEN

2FH

DW?

DNODEID

31H
33H
35H

DW?
DW?
DW?

JUMPSTAT

37H

DB?

SELFTEST

38H

DBOOH

SWVERSION

39H

DW?

REPORTPD

3BH

DW?

CRCERRS

3DH

DW?

ALGNERRS

3FH

DW?

COLLISIONS

41H

DW?

XMITABRTS

43H

DW OOOOH

XMITMSGS

45H

DD?

RECVMSGS

49H

DD?

REXMITCNT

4DH

DW?

NORESOURCES 4FH

DW?

N/A

51H

DWXXXXH

N/A

53H

DWXXXXH

N/A

55H

DWXXXXH

N/A

57H

DWXXXXH

Protocols C-121

Status Response Packet
Field Name

Offset Length

N/A

59H

DWXXXXH

N/A

5BH

DWXXXXH

N/A

5DH

DWXXXXH

N/A

5FH

DWXXXXH

N/A

61H

DWXXXXH

N/A

63H

DWXXXXH

N/A

65H

DWXXXXH

N/A

67H

DWXXXXH

N/A

69H

DWXXXXH

NRALIAS

6BH

DB?

ALIASNAME

6CH

DB 16 DUP(?)

ALIASNR

7CH

DB?

ALIAS TAT

7DH

DB?

0

XXH

0

0

XXH

0

0

XXH

0

ALIASNAME

XXH

DB 16 DUP(?)

ALIASNR

XXH

DB?

ALIASTAT

XXH

DB?

C-122 Protocols

Status Response Packet
Field Name

Offset Length

PNCID

XXH DWFFFEH

DID

XXH DW?

SNCID

XXH DWFFFEH

DNODEID

XXH DW?
XXH DW?
XXH DW?

SNODEID

XXH DW?
XXH DW?
XXH DW?

PNODEID

XXH DW?
XXH DW?
XXH DW?

CRC

XXH DD?

EFD

XXH DB7EH

DADDR

This equals the group address of
remote node (g(requesting
node».

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the
Link level packet data field.

TRANSID

This is the transaction
identification number

DNAME

This is equal to the destination
name.

Protocols C-123

STATLEN

This is equal to the offset value
of NRALIAS minus I2H.

DNODEID

This is equal to the responding
nodeID.

JUMPSTAT

Two high order bits, when set to
1, indicates that jumpers W2
and WI are in place. The
highest order bit corresponds to
jumper W2.

SELFTEST

This byte is the result code of
the selftest of the node.

SWVERSION

These bytes are used to indicate
the software version currently
used.

REPORTPD

This is indicated in minutes for
the time since the last hardware
reset.

CRCERRS

Number of received packets
with failed CRC checks.

ALGNERRS

Number of received packets out
of alignment.

COLLISIONS

Number of collisions
encountered on transmission
packets.

XMITABRTS

Number of transmitted packets
that aborted.

XMITMSGS

Number of packets successfully
transmitted by the Link level.

RECVMSGS

Number of successfully received
packets.

REXMITCNT

Count of packets retransmitted.

C-124 Protocols

NO RESOURCES

Count of receive failures due to
lack of resources.

NRALIAS

Number of alias names to follow
in the packet. The next three
fields, ALIASNAME,
ALIASTAT, and ALIASNR,
are repeated in sequence with
the number given in the
NRALIAS field. This fields
offset can be calculated by using
the STATLEN field offset and
adding 12H to it.

ALIASNAME

Alias name for 16 bytes.

ALIASNR

Number assigned to the alias
name.

ALIASTAT

This byte indicates the status of
the name specified in the
ALIASNAME field. See "*
Local name table-16 entries of
18 bytes each" on page 2-33 for
the values in this field.

PNCID

This field is equal to the
datagram identifier for the
previous node.

DID

Use the next DID value.

SNCID

This field is equal to the
datagram identifier for the
source node.

SNODEID

This is equal to the local node
name.

PNODEID

This field is equal to the
SNODEID field.

Protocols C-125

CRC

C-126 Protocols

This is the cyclic redundancy
check for the packet.

Abort Packet

Abort Packet
Field Name Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

01H
03H
OSH

DW?
DW?
DW?

Low address
Mid address
Hi address
This is the
next node
address
(initiator's
address)

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 4000H

Fixed value for
this position of
packet

POLL

IlH

DB9?H

(90-97)H
means no poll.
(98-9F)H
means to send
a return packet.

Protocols C-127

Abort Packet
Field Name Offset Length

Comments

WIN

12H

DBO?H

Low-order 4-bits
define number of
packets. Highorder 4-bits are
fixed value.

CONNID

13H

DW?

Field ID for
packet

SEQ

15H

DB?

Session packet
sequence
number

ACK

16H

DB?

Number that includes number
+ 1 modulo 256
of last
correctly
received packet.

N/A

17H

DBXXH

Don't-care value
for this
position of
packet

DNCID

18H

DW?

Number used to
determine
the session for
packet or to
identify datagram

CRC

lAH

DD?

Check byte

EFD

lEH

DB7EH

End-of-packet
byte

C-128 Protocols

DADDR

This equals the address of the next
node of a network connection.
(Possibly the destination node.)

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

POLL

When this byte is set to (98-9F)H, the
receiver is requested to send a return
packet. When this byte is set to
(90-97)H, indicates no poll.

WIN

This equals the current value indicating
the number of packets the sender is
willing to accept.

CONNID

This field is equal to the appropriate
connection ID indicating the session
and associated packet.

SEQ

This field is equal to the session packet
sequence number for this packet.

ACK

This field is equal to the
acknowledgment sequence number. This
number indicates the next expected
sequence number to be received.

DNCID

This field is equal to the session
identifier for the destination node.
This field is used with CONNID to
specify the destination session.)

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-129

Self-Test Packet

Self-Test Packet
Field Name Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

0IH
03H
05H

DW?
DW?
DW?

Low address
Mid address
Hi address

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid· address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DWFOOOH

Fixed value for
this position of
packet

CRC

llH

DD?

Check byte

EFD

I5H

DB7EH

End-of-packet
byte

DADDR

This equals the address of the
transmitting node.

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link level
packet data field.

C-130 Protocols

CRC

This is the cyclic redundancy check for
the packet.

Protocols C-131

Ident Packet

Ident Packet
Field Name Offset Length

Comments

STD

OOH

DB7EH

Start delimiter
flag byte

DADDR

OlH
03H
05H

DW?
DW?
DW?

Low address
Mid address
Hi address

SADDR

07H
09H
OBH

DW?
DW?
DW?

Low address
Mid address
Hi address

DLEN

ODH

DW?

Length of Link
level packet

N/A

OFH

DW 5100H

Fixed value for
this position of
packet

N/A

llH

DW0300H

Fixed value for
this position of
packet

N/A

13H

DWOOO3H

Fixed value for
this position of
packet

CMDRESP 15H

DB?1H

41 H = command
C 1H = response

16H

DBOOH

Fixed value for
this position of
packet

N/A

C-132 Protocols

Ident Packet
Field Name Offset Length

Comments

N/A

17H

DW 8001H

Fixed value for
this position of
packet

N/A

19H

DW 8001H

Fixed value for
this position of
packet

1BH

DW OOOOH

ID for status
and status response packet

1DH

DB 10H

Fixed value for
this position of
packet

1EH

DB 16 DUP(?)

ASCII Name for
destination

2EH

DBOOH

Fixed value for
this position of
packet

NODEIDMASK

2FH
31H
33H

DW?
DW?
DW?

Mask value

NODEIDMATCH

35H
37H
39H

DW?
DW?
DW?

Match value

PNCID

3BH

DWFFFEH

Equal to
SNCID

DID

3DH

DW?

Number that is
incremented by
1 for each
packet

TRANSID

N/A

DNAME
N/A

Protocols C-133

Ident Packet
Field Name Offset Length
SNCID

3FH

Comments

DWFFFEH

Field ID for
packet

DNODEID 4IH
43H
45H

DW?
DW?
DW?

Low address
Mid address
Hi address

SNODEID 47H
49H
4BH

DW?
DW?
DW?

Low address
Mid address
Hi address

PNODEID 4DH
4FH
5IH

DW?
DW?
DW?

Low address
Mid address
Hi address

CRC

53H

DD?

Check byte

EFD

57H

DB7EH

End-of-packet
byte

DADDR

This is a broadcast address for
requests. For a response, this is
the group address of the initiators
permanent node name.

SADDR

This equals the address of the
transmitting node.

DLEN

This equals the length of the Link
level packet data field. node.

CMDRESP

When this byte is set to C IH, the
packet is a response. When set to
41H, the packet is a command.

C-134 Protocols

TRANSID

This field contains the
transaction identification
number.

DNAME

This field is equal to a destination
name.

NODEIDMASK

Mask value to use against
destination node name.

NODEIDMATCH

Match value to request a
response.

PNCID

This field is equal to FFFEH.

DID

Use the next DID value.

SNCID

This field is equal to FFFEH.

DNODEID

This is equal to the destination
node name.

SNODEID

This is equal to the local node
name.

PNODEID

This field is equal to the
SNODEID field.

CRC

This is the cyclic redundancy
check for the packet.

Protocols C-135

Protocol Interactions
This section provides pseudo-code descriptions of the
interactions of various layers of the communications
protocols.

Session to Transport Layer Interactions
This section is a description of the transfer of data
between the session and transport layers of the protocol
architecture. Once a session has been requested by the
host, the session layer software calls the transport layer
software to establish a reliable connection between the
source and destination computers.

PROCEDURE open RSP connection
{sourceServiceID, destServiceID,
networkAddr} ;
BEGIN
initialize retry count = maxRetransmissions;
REPEAT
decrement retry count;
set open request timer;
make Send Establish call to PTP;
{sends open request packet to PTP}
REPEAT wait for response from remote node;
UNTIL open request timer = 0 or
response received;
UNTIL retry count = 0 or response received;
IF openAck re'teived THEN
{validate that packet was expected}
IF openAck unexpected THEN ignore it
ELSE
store returned destination connection ID;
return successful open RSP connection call
with proper connection ID to use;
ELSE IF openNack received THEN
return failed open_RSP connection call

C-136 Protocols

with reason code;
ELSE
return failed open_RSP connection call with
no response status to user;
END;

Protocols C-137

Network Layer Interaction
This section describes the interactions between the
network layer protocol entities in two adapter cards.

PROCEDURE send PTP packet (NCID, bufAddr, bufLen)
{requests that the specified buffer be sent to the
specified N CID}
BEGIN
check for parameter error;
check status of connection
IF NCID is not valid THEN
return call as failed with invalid NCID code;
ELSE IF no connection exists THEN
return call as failed with connection not;
established code;
ELSE IF connection requested
by remote source THEN
format and send route completion packet;
send LAP frame (bufAddr, bufLen, destNodeID)
ELSE
format and send connection data packet;
send_LAP_frame (bufAddr, bufLen, destNodeID)
END;

PROCEDURE send LAP frame (bufAddr,
bufLen, destN odeID){send a buffer of data as the data field of a frame
to the indicated destination node name}
BEGIN
assemble frame
set destination link level
address = destNodeID;
set data field = data buffer;
generate CRC word for contents of buffer;
REPEAT
monitor receiver's carrier sense signal

C-138 Protocols

UNTIL no carrier detected for
interframe wait_time bits;
transmit frame;
monitor channel for at least
collision byte count bytes following preamble;
IF collision detected or carrier lost THEN
jam channel;
increment retransmission counter;
IF retransmission counter = max THEN
do not reschedule frame for
retransmission
ELSE
reschedule frame for later
transmission;
ELSE
continue transmission to end of frame;
END;

PROCEDURE receive LAP frame
{LAP takes the bits presented to it from the physical
layer and transfers a valid frame to PTP}
BEGIN
LAP allocates buffer for next incoming frame;
LAP receives frame from physical layer;
check DLAddr;
IF frame is not for this LANA THEN
ignore frame;
reallocate buffer
ELSE
check CRC;
IF CRC of frame is :F to calculated CRC THEN
ignore frame;
ELSE
received frame (bufAddr, bufLen,
rcvdChanID,
reception_type {, groupAddr})
END;

Protocols C-139

PROCEDURE receive LAP frame
{LAP takes the bits presented to it from the physical
layer and transfers a valid frame to PTP}
BEGIN
LAP allocates buffer for next incoming frame;
LAP receives frame from physical layer;
check DLAddr;
IF frame is not for this LANA THEN
ignore frame;
reallocate buffer
ELSE
check CRC;
IF CRC of frame is =F to calculated CRC THEN
ignore frame
ELSE
received frame (bufAddr, bufLen,
rcvdChanID,
reception_type {, groupAddr} )
END;

PROCEDURE received frame (bufAddr, bufLen,
rcvdChanID, receptionType {,
groupAddr} )
{send data buffer from link to network layer and
interpret network layer header and trailer. Pass data
on to transport layer}
BEGIN
check packet type
IF type is route tear down THEN
notify network entity to erase route from
memory;
ELSE IF type is connection data THEN
set NCID to nextLID field in packet's trailer;
received_call (PID, bufAddr, bufLen)
ELSE IF type is route completion THEN
set nextLID = received packet's trailer's

C-140 Protocols

prevID field;
set nextNodeID to received packet's prevNodeID
field;
received call (PID, bufAddr, bufLen)
{connection established}
ELSE IF type is discovery THEN
IF destNodeID field does not match adapter's
permanent node name or any currently enabled group
address THEN
ignore packet;
ELSE
validate packet using discovery table
IF packet is a duplicate THEN
ignore packet
ELSE IF packet is a datagram type THEN
received_call (PID= 1, bufAddr, bufLen)
ELSE
{packet is route establishing type}
allocate entry in network connection
table;
set NCID to index of this entry;
set entry's nextLID to packet's
prevLID;
set entry's nextNodeID to source
permanent node name;
received call (PID=O, bufAddr, bufLen)
END·,
-

Protocols C-141

Packet Reception Procedures
This section describes the receipt of packets by the
transport and session layer entities from the network
layer entity. At this point, the packet has been received
and determined to be for this node.

PROCEDURE received_call (PID, bufAddr, bufLen)
BEGIN
IF protocolID = 1 {datagram} THEN
CASE packet type OF
user datagram:
search for sender's name in remote name
table;
IF sender's name is not found THEN
set unknown remote name indicator
{unable to determine sender's name}
IF datagram receive specific is
specified THEN
check recipient alias number in
datagram message;
IF recipient alias number in datagram
message is same as local alias number
THEN
set receive completed indicator
{datagram receive to specific
alias satisfied}
ELSE
reset receive completed indicator
{datagram receive not satisfied,
continue to wait}
ELSE
set receive completed indicator
{datagram receive to any alias
satisfied}
transfer datagram data to user buffer;
return actual length of transfer to user
return local alias no to user;
IF unknown remote name indicator
is set THEN

C-142 Protocols

return unknown remote name status to
user;
{datagram received, unable to
determine sender's name}
ELSE
return sender's name to user
IF size of user buffer is smaller than
received datagram THEN
return
message incomplete status to user;
{datagram received, unable to transfer
entire message}
ELSE
return command completed status to user
{datagram received}
name query:
IF name is stored in local name table THEN
send name_query_response packet to
sender;
ELSE
ignore packet;
name query response:
check total number of query response
packets received;
IF one query_response packet is received
THEN
enter information to remote name
table;
send datagram to remote node;
return command_completed status to
user;
ELSE
send name conflict packets to
nodes that responded with
query response packet;
return unknown remote name status to
user;
name claim:
IF name is in local name table THEN
send name claim_response packet to

Protocols C-143

sender;
ELSE
ignore packet;
name claim response:
return alias name_in_use status to user;
status request:
IF alias name is * THEN
IF local alias table is empty THEN
return no valid aliases status
to user;
ELSE
REPEAT
search for alias name in local alias
table;
get session status is session table;
return session status to user
UNTIL all alias names are found;
return actual length of session
status;
IF size of user buffer is smaller than
session status THEN
return
message incomplete status to user;
ELSE
return command_completed status to
user;
ELSE
search for alias name in local alias
table;
IF alias name is found THEN
get session status in session table;
return session status to user;
return actual length of session
status;
IF size of user buffer is smaller than
session status THEN
return
message incomplete status to user;
ELSE
return command_completed status to
user;

C-144 Protocols

ELSE
return illegal_alias
user;

name status to

status response:
IF status response packet is received
withinthe timeout interval THEN
get configuration parameters and
status of responding adapter;
return configuration parameters and
status;
return actual length of configuration
parameter and status;
IF size of user buffer is smaller than
the configuration parameter and status
THEN
return message incomplete status
to user;
ELSE
return command_completed status to
user;
ELSE
return command timed out status to
user;
END CASE;

Protocols C-145

IF protocolID = 0 {session} THEN
CASE packet type OF
open request:
IF open request packet is a duplicate THEN
return appropriate response again (open
ack or open nack) to sender
ELSE
IF specified service exists and can
provide resources THEN
send open ack to sender;
notify RSP user with
new connection from remote call
ELSE
send open nack with reason;
open ack:
validate that open ack packet was expected
(open request was issued with the given
source connection ID);
IF open ack was not expected THEN
ignore packet
ELSE
return user's call successfully with
connection ID;
open nack:
return error indication to user's open call;
return error reason;
ack:
remove the acknowledged packet form the
retransmit queue;
update the last acknowledged variable;
nack:
remove all acknowledged packets form the
retransmit queue;
retransmit all unacknowledged packets (up
to the current set window_size value);

C-146 Protocols

close:
IF close packet received from close
initiator THEN
send close packet to close initiator;
ELSE
{close packet received form close
non-initiator}
acknowledge receipt of close packet;
send closed packet;
notify user that connection is closed;
closed:
notify user that connection is closed;
session request:
REPEAT
IF passive open specified is specified THEN
check source of session request packet;
IF source of session request
packet is same as remote name THEN
set session request completed
indicator; {passive open specified satisfied}
ELSE
reset session request completed
indicator; {passive open not satisfied,
continue to wait}
ELSE
set session request completed indicator
{passive open any satisfied}
UNTIL session_request_completed indicator
is set;
send session accept packet to source;
set session established indicator in
session table;
return source of session_request packet to
user;
return local session no to user;
return command completed status to user
{session established}

Protocols C-147

session accept:
set session established indicator in
session table;
return local session no to user;
return command completed status to user
{session established}
session reject:
return session

open_rejected status to user;

session data:
IF session data is received within the
timeout interval for session received THEN
transfer session data to user buffer;
return actual length of transfer
to user;
IF size of user buffer is smaller than
received session data THEN
return
message incomplete status to user;
ELSE
return command_completed status to
user;
ELSE
return command timed out status to user
{session data received};
END CASE;
END

C-148 Protocols

\ppendix D. Adapter BIOS
1
2
3
4
5
6
1
8
9
10
11
12

TIT LE LANA ROS POD

13
14

15
16
11

16
19

20
21
22
23
24

;;;;;;;;

25
26
21
2.
29
30

0000

31
32

0028
0028

01

[

002A

01

[

002e

01

[

002E

01

[

;~H~~0~;t~gb~~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DATA
INTR_2

SEGMENT AT 0
ORG
OAH*4
OW 1 DUP

(?)

; I NT 2 VECTOR AODRESS
;CONTAINS OFFSET OF INT 2 HANDLER

33
34

35
36

37
38
39
40
41
42

OW

002e

1 OUP (1)

; I NT 3 VECTOR ADDRESS

OBH*4

ORG

;CONTAINS CS FOR 2

OW

;CONTAINS OFFSET OFF

1 DUP (?l

INT 3 HANDLER

43
44

45
46
41
48

49
50

004C

51
52

Q04C

01

[

004E

01

[

53
54
55

ow
ORG
HARD_FILCBIOS

59

;CONTAINS CS FOR

(?)

13H"4
OW
1 OUP (1)

ow

"5158
60

lour

lour

(?)

1 DUP

(?)

;HARD FILE

18H*4

0060

0060

01

[

0062

01

[

OW

; IPL

vector address

61
62
63
64

1 OUP (?)

65
66
67
6.

0070

69

0070

10
71
12

0170
0170

lCH*4

; INT lC TIMER TICK

LABEL
ORG
01

[

13

LANA_Bi~S_I

WORD

05CH*4
NT

OW

lour (7)

; LANA BIOS SOfT INT
;CONTAINS OFFSET OFF 5C

7111

14

15

01

76
17

[

;CONTAINS CS

1 OUP (?)

7111

18

19
80

81
82

83
84

85
86
81
88
89
90
91

1000

ORG

1000

1000

01

[

RAM_AREA
I NT _OCCUR?

1001

01

[

I NTS_ACT I VE

1002

01

[

1003

01

[

1004

01

[

1005

01

[

1006

01

1007

1000H
LABEL
OB

BYTE

1 DOP (7)

1

Doe

;80= I NT

(7)

; CONT A I NS THE

I NT LEVELS FOUND ACT I VE

92
93
94
95

96

;08

1 OUP (7)

INT 3 04=INT 2
; USE FOR DEBUG

91
96

99
100
101
102
103
104
105
106
101
10.
109
110
111
112
113
114
115
116
111
118
119
120
121
122
123
124
125
126

1 OUP (7)

;DMA WRITES HERE

1 DUP (1)

; 2ND BYTE DHA

FAI L - FLAG

1 DUP (?)

; 80=HARDWARE FA I LURE

[

RF_TEST

1 OUP (?)

;80=HOT RF TEST

01

[

SAVE_MASK

1 OUP

(7)

; I MR MASK FOR 1 ST

I NT CH I P

1008

01

[

SAVE_MASKA

1 OUP (1)

; I MR MASK FOR 2ND

I NT CH I P

1009

01

[

SAVE_ TICK - INT

1 OUP (?)

;OFFS[T OF TICK HANDLER IN BIOS

DATA_XFER

IN PROCESS

Adapter BIOS D-1

127
128
129
130
131

132

1008

1000

133

134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151

lOOF

01 I

01 I

1 OUP (1

1010

01 I

1011

01 I

178

1012

231
232
233
234
235
236
237
238
239
240
241
242
243

DB

1 OUP (")

;GROSS T I ME OUT FLAG:80=FA I L

DB

1 OUP (.,)

;10 BYTE

01 I

;--INT 2 '" BIT 2,--INT 3 " BIT 3
TEMP_INT
DB
1 OUP (1)

;HOLOS CURREtn ACTIVE

IHT LEVEL

DB

1 OUP (1)

IHT LEVEL FOR LANA

1 OUP (1)

;CONTAINS ACTIVE

INT LEVEL FOR LANA 1

1 OUF- (? J

; 0= LANA NOT ACT I VE

01 I

01 I

101')

01 I

lOU? (., J

;80 = HOT

1016

01 I

DB

11

IN SYNC FAILURE

; SAVE AREA FOR POST VECTORS

1018

01 I

lOlA

01 I

SAVE_I N12

1111

lOlC

01 I

SAYE_I NTJ

ow

1 OUP (?)

; OFFSET

1 OUP (?)

; SEGMENT

ow

1 OUP (?)

; OFFSET

ow

1 OUP (?)

; SEGMEIH

I NT 2

I NT 3

1111

1111

101£

01 I

OB

1 OUP (?)

;MOV

lon

01 I

OB

1 oup (?)

; MOV SECOND BYTE HERE

1020
1020

RAM AREA END
DATA
[tiDS

LABEL

OMA DATA HERE

BYTE

;;;;;;;;;;;;;;;; ~bM.. fE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

.... , ................................................................... ,

"""""""""""""""""""""""""""""""""""'"
'" D08F

'"
'"
'"
"
'"
"

0000
0003
0004
OOOA
0062
OOFB

'" OQF7
" OOF3

'" aOrD

" 0020
" 0088
" 008A
'" DOSE
" 0088

'" 0020
=: 0021
"

OOAl

'" 0010
'" 0028
" 002e
'" OQ4C

" 0170
'" 0218
"

04A2

'" 04A3

" Dooe
" D08e

" 0360
== 0361
" DOOE
'" OOFe

"
'"
";
"
'"
"
"
==
'"

0362
0363
0085
0004
0080

FFfF

0333
0089
0222
OOfE

D-2 Adapter BIOS

a

;CO/'HAINS ACTIVE

??

1014

2 11'1

245
246
247
248
249
250
251
252

;COUNTER FOR TIMER TICKS

1013

179

230

J

11

177

180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229

; CODE SEG OF BIOS

11

155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176

1 oUP (1)

1117

01

152
153
154

ow

1111

ANALOG_FA I L
DMA
OMA_CHAN3
DMA MASK
DMA::::S INGLE_MASK
OMA_3_PAGE
ENABLE I NT2
ENABLE-I NTJ
ENABLe I NT2_3
ENABLE_I NT9
EOI
FAI L_ERR_REPORT
FAI L GO
HOT FlF
HOST_DETECT_HIC
INTAOO
INTAOl
INTBOl
I NTJ FLAG
I NT2-VECT
INT3-VECT
I NT1"LVECT
I NT5C VEeT
INT86=:VECT
LANA_O_STATS
LANA_l_STATS
MASIC I RQ2_3
NO_CRO_PRESENT
STATUS_REG
PARAMETER_REG
PC_I D_ADD
PC3
DATA REG
HOST-I NTR REG
HOST::::FAILRESET
RESET_INT_REQ
ROS_CODE
RF _COUNT
SYNC FAILED
T_O_CHT
TIMER_INT_ENA

EQU
EQU
EQU
EOU
EOU
[OU
EQU
EQU
[QU
EOU
[QU
[QU
EOU
EQU
[QU
[QU
EQU
[QU
EQU
EQU
EQU
EOU
EQU
EQU
EQU
EQU
Equ
EOU
EQU
EQU
EqU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
[QU
EQU
EQU
EQU

SFH
OOH

03H
04H
OAH

82H
OFBH
OF7H
OF3H
OFDH

20H

BBH

8AH

BEH
BBH

020H
021H
OA1H

10H
028H
02CH
04CH
170H
2l8H
4A2H
4A3H

OCH
BCH
360H
361H

OEH
OFCH
362H
363H
085H

04H
80H
OFFFFH
333H

89H
222H
OFEH

ANALOG FAILURE AS REPORTED BY LANA
BASE ADDRESS OF OMA
SELECTS CHAN 3 DMA
BIT FOR MASK I NG Of DMA REQUESTS
ADD OF SINGLE MASK
PAGE REG FOR OMA CHAN 3
USE FOR I MR TO ENABLE I NT REQ 2
USE TO ENASBLE I NT 3
ENABLE GENERAL INTERRUPTS
CMO 41 010 NOT REPORT CORRECTLY
FAILED TO GET A GO BIT
FLAG FOR POSS I BLE HOT CARR I ER
ERROR NUMBER FOR HOST DETECT I NG HI C
GH I P 1
CH I P 1
INT LEVEL 3 ACTIVE
PHYS I CAL ADD FOR I NT VECTOR 2 (A*4)
"
"",,"
3 (B*4)
"
""""
13( 13H*4)
"
5C( 5CH*4)
"
86(86H*4)
OFFSET FOR BIOS STATUS LANA
OFFSET FOR BIOS STATUS LANA 1
MASK FOR DISABLE INT REQ 2,3
ERROR CODE FOR NO CARD PRESENT
STATUS REGISTER FIRST CARD

a

OFFSET FOR PC
PC3 10

IOENTY

FLAG FOR HOST TEST FA I L
RESET BIT IN HIR
HC'" 1 IN STATUS RE'G :RESET REQ'S
PO IIHER INTO ROS
45 SEC HOT RF DELAY
WE DID NOT GET IN SYNC
30 SECS (18.2 * 30 '" 546 '" 222Hl
ENABLE MASK FOR ! NT 0 ~ T I MER

253
2,"
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
2'6
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
32'
330
331
332

EXTRN
EXTRN
EXTRN

m

336
337
338
339
34a
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373

374
375
376
377
378

:810S HANDLER fOR SOfT INT 5C
: I NTERCEPT HARD fiLE SOfT I NT 13
; B' OS HANDLER fOR I PL

PUBLIC RAS_START
NETWORK

0000

ASSUME
ASSUME
ASSUME
ASSUME

SEGMENT PARA PUBL I G
CS: NETWORK
DS:OATA
SS:NOTHING
ES: NOTH I NG

;;;;;;;;;;;;;;;;

b66~;

'ceOE'

HiH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;

0000
0000
0001
0002
0003
0003
0005

D02A

0032
0032
0032
0033
0035
0037

HOST_INTERfACE
MOD_ID

55

PROC
DB
DB
DB

M
10

;GENERIC BIOS HEADER

;#

OF 512 BYTE BLOCKS

JMP

SHORT H 11

;JMP TO START OF CODE

31
20
49
49
52
38

08

'6360715 (C) COPYRIGHT

IBM CORP.

34 2F 31 39 2F
34

DB

'04(19/84'

EB 20

36
35
43
47
42
50
34
30
38

33
20
4F
46
40
2E

36
28
50
54
20
20

30
43
59
20
43
31

37
29
52
20
4F
39

1984'

;COPYRIGHT NOTICE

RAS_START:
Hll :

'"

FB
33 CO

XOR

BE 08

MOV
MOV

BE CO

OOJA

0039

FC
Bf 1000 R

0030
0040

89 0021
Fl/ M

0042
0046

26: A2 04A2
26: A2 04A3

004A

: ENABLE 1NTERRUPTS
;ESTABLISH SEG REG

AX,AX
OS,AX
ES,AX

CLO
MOV
MOV
REP

OI,OfFSET RAM_AREA
:GET STARTING RAM LOCATION
CX, (RAM_AREA_ENO-RAM_AREA) + 1
; RAM SIZE
STOSB
; CLEAR THE WORK AREA

MOV
MOV

ES:LANA_O_STATS,AL
ES: LANA_1_STATS, AL

MOV
MQV
MOV
MOV
PUSH
POP
MOV
IN
MOV

AX, ROS_CODE
OS,AX
ex, PC 10 ADO
AL, (BX] ES
OS
PC IO,AL
AL~INTA01
SAVE_MASK, AL

PC_TYPE:

004A

B8 fFFF

0040
004F
0052

BE 08

BB OOOE
8A 07

0054
0055

06

0056
0059

A2 1010 R

0058

A2 1007 R

D05E

£8 0708 R
[8 07FF R

1F

£4 21

;---INSURE

0061
0064
0067
0069
0068
0060

FAR
055H
OAAH
160

START:

CALL
CALL
CALL
IN
JMP
AND
OUT

£8 DB8E R

£4 21
EB 00
24 FE

£6 21

; ROS PO I NTER FOR OS
;GET PC

INFO

; DS=ES
; SAVE I T FOR LATER USE
; IMR 1ST INT CHIP

INT 2,3 MASKED Off

MASK I NT 2 3
SAVCI NT::::VECT
SU_UP_TIME_TICK
AL,INTA01
SHORT $ + 2
AL, TIMER_INT_ENA
IIHA01,AL

;MASK INT 2 & 3
; SAVE 2 &, 3
;POINT TIME TICK TO LANA
;GET IMR
; DELAY
; ALLOW I NT D TO RUN
;WRITE THE MASK

; ------RESET LANA CAROS------

333

334

MAIN:NEAR
HARD_flLE:NEAR
REM_I PL: NEAR

006f

33 DB

0071
0073

BO 04

0076
0077
D07A
0078
D07E

DOH

SA 0363
EE
SA 0368
EE
89 Dorr

'0'
Mav

bx, OX

MOV

g~: ~~ST_I NTR_REG

AL, RESET

OUT

Mav
OUT

Mav

£2 FE

;RESET BIT FOR HIR
; AOO OF FIRST CARD
; RESET I ST CARD
; ADD OF 2ND CARD
; RESET 2ND CARD
;OELAY TIME

DX,HOST_INTR_REG + 8
DX,AL
CX,OFFH

LOOP

; DELAY

; LANAO PRESENT?

0080
0083

SA 0363
[8 06F8 R

MOV
CALL

OX, HOST I NTR REG
LANA_PRESENT?

; ADO FOR LANA 0
; SEE I F INSTALLED

0086
0088
0088

73 03
£9 0148 R

JNC
JMP

S2
ANY _MORE_LANAS

;JMP LANA 0 INSTALLED
; SEE I F LANA 1 I NST ALLED

008B

£8 079C R
EB 13

S2:
; LANAO ADAPTER INSTALLED
;--REMOVE RESET FROM LANA 0

DOBE

CALL
JMP

PRIMARY CARD

REMOVE_RESETO
SHORT RR1A

; DO THE DOUBLE RESET TO LANAO
; TEST LANAO ADAPTER

; --REMOVE RESET FROM LANA 1
LANA1

0090
0090
0093
0095

SA 0363
03 03
£8 06f8 R

0098

73 03
£9 0148 R

D09A

PRESENT7
MOV
ADD
CALL
JNC
JMP

LANA1_RE~cl~A1

0090

OX, HOST I NTR REG
oX,ex LANA_PRESENT?

; H IR REG
;OFfSET FOR LANA1
;LANA 1 INSTALLED?

LANA1_RESET
ANY _MORE_LANAS

;LANA 1 INSTALLED,
; COMMON HANDLER

REMOVE RESET

INSTALLED TEST ADAPATER

0090

E8 07AD R

CALL

REMOVCRESETl

; 00 THE DOUBLE RESET TO LANA1

OOAO

E8 0708 R

CALL

MASK_INT_2_3

; TURN OF

; ; ;; ;; ;; ;; ;;; ; ;;

~tH;

i

M~~~ib~; ~b; u..~i;;

I NTS

; ;;; ;; ;; ;; ; ;; ;; ; ;; ;; ;; ; ;; ;; ; ;; ;; ;

Adapter BIOS D·3

379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iii;;;;;;;;;;;;;;;;
QOA3
QOAl

£8 02F8 R

OOA6

73 23

RR1A:
CALL
JNC

H! FT TEST
PR I ME_CMO

;TEST THE HIF PLA
;JMP NO ERROR IN HIF TEST

; I NTERFACE TEST FAI LEO

QOM
GOAD

80 3E lOaF R 80
74 08

eM'

; T I ME OUT OCCUR?
;JMP YES

JZ

;HOST DETECTED A DATA FAILURE -1'(0 TIME OUT 8c CARRY SET
;NO INTERROGATION OF CMD 41

aOAr

80 88

DOBl

E8 070F R

0084

E9 0148 R

OOB7

MOV
CALL
JMP

AL,ilOST_DETECT_HIC
PC_ERROR
ANY_MORE_LANAS

; FA I LURE fLAG
;DISPLAY 30XX OR 31>0<
; ANY MORE fOR TEST?

IN_SYNC?:

;010 LANA GET IN SYNC
00B7

80 3E 1015 R 80

Doae

75 00

CMP
JNZ

NO_SYNC,80H
PRIME_CMO

; IS THE FAILEO TO SYNC fLAG SET?
;JMP
If IT DID GET iN SYNC

;010 NOT SYNC IN-ARE GO BIT AND CMD 41 ACTIVE
; I F YES LANA HAS STATUS TO REPORT
DOSE

£8 02DF R

OOCl

72 33

; RETURN WI TH CF SET I F BOTH ACT I VE
;JMP ACTIVE-GET 2ND BYTE OF CMD 41
; FAILEO TO SYNC

OOC3
DOCS

ooce

80 89
E8 a70F R

f9 0148 R

MOV
CALL
JMP

IN AND NO GO BIT ACTIVE

AL,SYNC_FAILEO
PC ERROR
ANY _MORE_L'INAS

: GO D I SPLAY ERROR
; SEE I F ANY MORE ADAPTERS TO TEST

1114

415
416
417
418
419
420
421
422
423
424
425
426
427
428
429

430
431
432
433
434
435
436
437
438
439
440
441

OOCS
OOCB
DOCE

SA 0360
03 03

0000
0001

AS 01

0003

75 OF

0005

80 3E loaf R 80

DODA

75 F4

DODe
DODE

80 8A
E8 070F R

00[1

EB 68 90

MOV
ADD

00E9

[C

oorE
Doro

80 88
f8 070F R

OOF3

EB 56 90

OOF6
DOF6
OOF9

[8 D8FE R
BA 0361

oorc

03 03
EC

DOFF

50

0100
0103
0105

465

0107

466
467
468
469
470
471

0108

BA 0360
03 03
BO 00
EE
58

0109
010B

3C 80
74 11

MOV
CALL
JMP

AL, FA I l ERR REPORT
PC ERROR
ANY_.MORE_LANAS

;CMD 41 REPORT FAILURE
;30XX OR 31M

CALL
MOV
ADO
IN

STOP T I MER
ox, PARAMETER REG
OX, BX
AL.DX

; GROSS T I ME OUT

I NACT I VE

;OFFSET
: GET 2ND BYTE OF PARAMETER REG

PUSH
MOV
ADO
MOV
OUT
POP

AX
OX, STATUS REG
OX, BX
AL.OO
DX,AL

;SAVE GMO 41

INFO

: ADD OFFSET
; CC BITS = 0 AND GO == 0
; PASS IT

AX

eM'

; 80=SUCCESSFUL
;JMP LANA POST OK

J2

;LANA SELF TEST UN3UCCESSFUL -

0100
010F

3C 8E

75 08

eM'

JNZ

TEST FOR POSSIBLE HOT RF
;JMP NOT HOT RF

;GO TEST RF

0111

E8 0617 R

CALL

HOT_RF?

0114
0116

7308
EB 33 90

JNC
JMP

P C5
ANY_MORE_LANAS

E8 070F R
EB 20

; GO SORT THE ERRROR
CALL
PC ERROR
JMP
SHORT ANY_MORE_LANAS

;TEST RF IF HOT IlISPLAY 3X41/42
; RF NOT HOT • THEN CF NOT SET
; IF RF NOT HOT INIT LANA
OR 3X41 OR 3X42

0119

0119
011C

; GO SORT THE ERROR AND D! SPLAY IT
;CHECK FOR ANOTHER LANA

........... .. .......................................
.........
, .. "."".,.".,., .. ",.",.,., ..
... "., .. ,.,."." ..... ,.,...... .,
,

493
494
011 E

;--up

497

498

; IS IT INIT COMPLETE CMO?
;JMP YES

;WHAT WERE THE RESULTS

49l
492

499
500
501
502
503
504

:OFFSET

;RETURN STATUS TO CMD

1172

495
496

'"

eM'

JZ

CHECK CMO

OX, PARAMETER_REG
DX,BX
AL,DX
AL,041H
P_C4

; --WAS LANA SELF TEST SUCCESSFUL

DOFE

487
488
489
490

; NEVER GO A GO BIT
;DISPLAY 30XX OR 31XX

;GO BIT AND NOT CMD 41

457
"58
459
460
461
462
463
464

486

:JMP NO TIME OUT

AL, FAI L_GO
PC ERROR
ANY_MORE_LANAS

;GO BIT ACTIVE

BA 0361
3C 41

478
479
480
481
482
483
484
485

MOV
CALL
JMP

03 03

74 08

476
477

;GET THE STATUS REG
:15 THE GO BIT ON
;JMP GO ON

00[4

aGEe

473
474
475

:OFFSET

Al, OX
Al,OlH
P C2
T::::O_FLAG, BOH
P_C1

DOE?
DOEA

455
456

OX,BX

IN
TEST
JNZ
CMP
JNZ

00[4

41~2

450
451
452
453
1'54

ox, STArUS_REG

AOO

;TIME OUT AND NO GO BIT

443
444
445
446
1,47
448

449

PRIME CMD;
MOV

0000

011E
0120
0123

BO 80

MOV

83 FB 00
75 15

eM'

0125

26: A2 04A2

MOV

,

,

"".".,."

DATE BIOS STATUS--LANA

JNZ

X OK---

; PRESENT BIT
;THIS LANA 0 ?
;JMP NO

;LANA 0 BIOS STATS

D-4 Adapter BIOS

;BIOS INFO FOR LANA 0

,

,

,05

0129

'0'
iD7

Q12C

A2 1012 R

012F
0133
0135
0138
013A

08
32
A2
fB

013A
013£
0141
0144
0147

26: A2 D4A3
AO 1011 R
A2 lon R
A2 1014 R
08 06 1001 R

i08

i09

PO

~1l

MOV
MOV

AO lOll R

06 1001 R
CO
1011 R
11

OR
XOR
MOV
JMP

AL, TEMP_I NT
LANA_D_I NT, AL
I NTS_ACT I VE, AL
AL,AL
TEMP_INT,AL
SHORT ANY_MORE_LANAS

ACTIVE LEVEL FOR LANA 0
SAVE I NT LEVEL ACT I VE
CLEAR FOR TEST OF LANA 1

)12

"3
)14
515
516
511
518
519

;LANA 1 BIOS STATS
MOV
MOV
MOV
MOV

OR

520
521

;

ES: LANA 1 STATS, AL
AL, TEMP=INT
LANA_l_1 NT, AL
LANA_'_ACT I VE,AL
INTS_ACTIVE,AL

;BIOS INFO FOR LANA 1
; ACT I VE LEVEL FOR LANA 1
; + = LANA 1 ACTIVE
; SAVE THE LEVEL

HAVE BOTH LANAS BEEN TESTED?

522

523
52'
525
52'
521
52'
529

0''''6

5"

0148

83 FB 00

ANY _MORE_LANAS:
eMP

; IS OFFSET=D= LANA 0
;JMP BOTH LANAS TESTED
;OFFSET=8= LANA 1
; GO TEST LANA 1

BX,O
ALL TESTED
aX,08H
LANA1_PRESENT?

014E

75 06

",Z

0150

BB 0008

0153

£9 0090 R

MOV
JMP

0156
0156
015C

26: F6 06 04A2 80
75 16

ALL_TESTED:
TEST
JNZ

BYTE PTR ES:LANA_0_STATS,80H
PR2

; LANA 0 TEST SUCCESSFUL?
;JMP YES
TO PR2

015£
0164

26: f6 06 04A3 80
75 DE

TEST
JNZ

BYTE PTR ES:LANA_1_STATS,80H
PR2

; LANA 1 TEST SUCCESFUL?
;JMP YES

;

ALL LANAS HAVE BEEN TESTED

530

532
533
53'
535
53'
531
538
539

5'0
,"1

;NO LANA INIT, WAS ANY ERROR REPORTED?

0166
0168

80 3£ 1005 R 80
74 OA

eMP

FAIL_FLAG,80H

JZ

AP3

; 80=HAROWARE FA I LURE
;JMP ERROR REPORTED

,"2

5",

'"'
'"5

'"'
,"1

;NO LANA INIT, 8: NO ERR REPORTED,

0160

SO Be

016F
0172

£8 070r R
E8 03

MOV
CALL
JMP

PRESENCE TEST FAILURE

AL,NO_CRO_PRES£!H
PC ERROR
SHORT AP3

; UN I QUE ERROR CODE
;GO DISPLAY ERROR CODE

5",

'"9
550

551
552
553
55'
555
556
551
558
559
560
5"
562
563
56'
565
566
561
56'
569

PR2:

0174

SET_BIOS_INTS

;GO SET UP THE LANA BIOS INTERRUPTS

0177
0179

33 DB
£8 OBoe R

XOR
CALL

ax, BX
SPEC I AL_CLR

; LANA 0
; 0 I SABLE ALL I NTS FROM LANA 0

017e
017F

BB 0008
£8 OBDG R

MOV
CALL

BX,08H
SPEC I AL_CLR

; LANA 1
;OISABLE ALL INTS FROM LANA'

CALL
CALL

RESTORE TICK VECTOR
RESTORe I NT2=3

; RESTORE

CLEAR_WORK_AREA

; GO CLEAR RAM USED

0174

£8 DB1C R

0177

AP3:

PR3 :

0182
0182
0185

£8 07CO R
£8 07CF R

0188
£8 0198 R

0188

CB

""
516
515

on

51'
519
580

581
582
583
58'
585

586
581
58'
589
590
591
592

593
59'
595

596
591

598

599

600

601
602

603
60'
605
606

601
60'
609

610
611
612
613
61'
615
616
611
618
619
620
621
622
623
62'

'25

626
621
628

'29

630

I N TEST

; RETURN TO CALL I NG POST
HOST

018C

510
511
512

573

I NT VECTORS 8: I NT MASKS

PR5:

0188

INTERFACE

ENDP

; PROCEDURES

018C
a18C

018F

bL~;u..hi; jh~§;;; ~kbb;;; ;h~ik;;;;';;;;;;; :bL~ik; ih~;u..hi; jh~;k~bG~H§;;;;;;;;;;;
-

SA 0360

03 03

0191
0192

EC
EB 00

0194
0196
0197
0198

DC 80
EE
C3

MOV
ADO
IN
JMP
OR
OUT

RET
ENOP
...............................................................................

blEAR~wORK~AREA"""'"

0198

Fe

elO

0199

33 CO

XOR

0198

SF 1000 R

019£
OlAl
OlA3

89 0021
F3/ AA
C3

MOV
MOV
REP

b;~~u..~;;;;;;;; ;~kbb;;; ;~~~h;;;';;;;;;;; ;b;~~iJY ~':MH~M;;;;;;;;;;;;;;;;;;

50

OlA5

53

0186
01B6
01B8
01BA
01BC
01BO

ENOP

CLEAR_WORK_AREA

OlA4
OlAIj

OlAF

PRob"" NEAR"" iClEARs'low' RAM' uSEb' bURi N6' LANA' pOR'"

; INCREMENT
AX,AX
,
OI,OFFSET RAM_AREA
;STARTING BYTE OF RAM WORK AREA
CX, (RAM_AREA_ENO-RAM_AREA) + 1
;RAM SIZE
STOSB
; CLEAR THE AREA

RET

01A4

01 Bl
01B3
0184
01 B5
01B6

;ADO OFFSET
;GET THE STATUS REG
; DELAY
; OR IN BIT TO TURN OF I NT REQUESTS
;CLEAR INT REQUEST FROM LANA CARD

AL,DX
SHORT S + 2
AL, RESET I NT REQ
DX,AL
-

CLR_LANA_I NTS

0198

01A6
01A6
01A9
01AA
OlAB
OlAE

ox, STATUS_REG
ox, ax

PUSH
PUSH

2E: 8A 04
46
50
E8 01B6 R
58
3C OA
75 F3
5B
58
C3

AX
BX
MOV
INC
PUSH
CALL
POP
CM?
JNE
POP
POP

AL,CS:(Slj
SI
AX
PRT HEX
AX AL,lO

PROC
Mav
MOV
INT

NEAR
AH,14
BH,O
10H

en

B4 OE
8700
CO 10
C3

; PUT CHACTER

IN AL

; SAVE PR I NT CHAR
;CALL VIDEO 10
; RECOVER PR I NT CHAR
;WAS IT A LINE FEED?
;NO KEEP PRINTING

P 1
BX
AX

;PISPLAY CHAR

RET
ENDP

iii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .

.. . . . .. .. ... . . .. ... . .. .. .. .. . ... . . .. . . .. . .

""""""""""""""""""""",

;--PRIMARY CARD-01BO
01C3
01C9
01Cf
0105
010B
01El
OlE?
01ED
OlF3
01F9

33
33
33
33
33
33
33
33
33
33
33

30
30
30
30
30
30
30
30
30
30
30

30
30
30
3D
30
30
30
30
30
31
31

31 00 OA
32 00 OA
33 00 OA
34 00 OA
35 00 OA
36 00 OA
37 00 OA
38 00 OA
3900 OA
3D 00 OA
31 OoOA

M1
M2

M3

M'
M5

M6
M1

M'
M9
M10
M11

DB

0'
OB
0'
D'
OB

OB
DB

OB

D'

DB

'3001' ,13,10
'3002',13,10
'3003',13,10
'3004',13,10
'3005' ,13, 10
'3006',13,10
'3007',13,10
'3008',13,10
'3009',13,10
'3010',13,10
'3011',13,10

CPU FAILURE
ROS FAILURE
10
FAILURE
RAM FAILURE
HIC
FAILURE
+-12V FAILURE
DIGITAL LOOPBACK FAILURE
HOST DETECTED HIC FAILURE
SYNC FAIL 8: NO GO BIT
HIC TEST OK 8: NO GO BIT
GO BIT 8: NO CMo 41

Adapter BIOS D-5

631

632
633

634

01FF

33 30 31 32 00 01.

H12

OB

0205

33 30 31 33 00 OA

H13

08
08

33 30 34 31 0001.

H50
M51

08

020B

33 30 31 35 00 01.

H15

'3012',13.10
'3013',13,10
'3015',13,10

;CARO NOT PRESENT
:OlGITAL fAILURE (FALL THRU)
;ANALOG fAILURE

'3041',13,10
'3042',13,10

;HOT CARRIER NOT ME
;HOT CARRIER MEl

635

636
637
638
639
640

0211

0217

33 30 34 32 00 OA

08

; --SECONDARY CARO--

641

642
643
644
645
'46
647
648

649
650
651
652

'53
654
655
656

0210
0223
0229
022F
0235
0238
0241
0247
0240
0253
0259
025F
0265
026B

33
33
33
33
33
33
33
33
33
33
33
33
33
33

31
31
31
31
31
31
31
31
31
31
31
31
31
31

30
30
30
30
30
30
30
30
30
31
31
31
31
31

31
32
33
34
35
36
37
36
39
30
31
32
33
35

0001.
00 OA
00 OA
00 01.
00 01.
00 OA
00 01.
00 01.
00 OA
00 01.
00 OA
00 OA
00 OA
00 OA

0271
0277

33 31 34 31 00 OA
33 31 34 32 00 OA

H21
M22

08

OB

M23
M24
M25
M26
M21

DB

OB
DB

OB
DB

OB

M2'

M29
M30
M31
M32

DB
DB

OB
DB

OB

M33

M35

DB

M60

DB

M61

OB

'3101',13,10
'3102' ,13, 10
'3103' ,13, 10
'3104' ,13, 10
'3105',13,10
'3106' ,13,10
'3107',13,10
'3108',13,10
'3109' ,13, 10
'3110',13,10
'3111',13,10
'3112',13,10
'3113',13,10
'3115',13,10

;CPU fAILURE
:ROS FAILURE
; 10 FAILURE
;RAM FAILURE
;Hle fAILURE
;+-12V fAILURE
;OIGITAL lOOPBACK FAILURE
;HOST DETECTED HIC FAI'LURE
:SYNC fAILED &: NO GO BIT
;HIC TEST OK iii:: NO GO BIT
;GO BIT .Ii! NO CMO 41
; CARD NOT PRESENT
;DIGITAL fAILURE (FELL THRU)
;ANALOG fAI LURE 2ND CARD

'3141',13,10
'3142',13,10

; HOT CARR I ER NOT ME
;HOI CARRIER MEl

651

658
659

660
661
662
663
664
665
666
661
668
669
670
611
672
673
674
675
676
671
678
619
680
681
682
663
684
685
686
681
688
689

6~ti6bkt~~;;;;; ~kbb;;;; ~tik;;;;;;;;;;;; ;bb~ttk~; ~tb; i~6; b~~~H; ~b; ~b; ~it;

0270

;CALLED WITH SEGMENT(CS OR OS)
;80 OffSET IN Dt

0270
0280

69 0004
03 CO

0282
0284
0287

6A C8
60 E1 OF
24 FO

0289

03 C7

0288

0280
02aF
0291
0293
0295
0297
0299
0298
0290
029f

12 CD

HOV
ROl
MOV
ANa
AND

CX,4
AX,Cl
CL,Al
CL,OOfH
AL,OFOH

;CH=O,Cl::ROl COUNT
;AX=A<11: :00, 15:: 12>
;CX::( 0, 0,A<3: : 0, 15: : 12»
;CX"'SEG (0,0,0,A<19:: 16»
;AX=SEG (A<15: :04>,0)

ADO
AOC

AX,DI
CL,CH
DMA + OCH, AL
SHORT $ + 2
DMA + 6,AL
AL,AH
SHORT $ + 2
OMA + 6,Al
SHORT S + 2
AL,CL
DMA_3_PAGE,Al

; AX=REAL (A<15:: 00» &eX'" SEGMENT AOJ
;CX=REAL (0,0,O,A<19: :16»
;SET THE BYTE FIr
; DELAY
;OUT A <07: :00>

[6 OC

OUT

EB 00

JM'

[6 06

OUT

8A C4
EB 00

£6
EB
8A
[6
C3

MOV
JM'

06

OUT

00

JM'
MOV

Cl
82

OUT

RET

DMA_ADDRESS

02AO

t~i~Lt;

02AO

-

; DELAY
;OUT A<15: :08>
; OELAY
:OUT A

ENoP

j ~t~:;; ;; ~kbb;;; ;; ;; ;~H~;;; ;;; ;; ;;;; ;;; ;; ;; ; ;; ;; ;;;;;;; ;;; ;; ;;;;; ;;;;; ;
; I F LANAO ENABLE I NTS 2 80 3 & 9
; I F LANA 1 DETERM I NE I NT USED BY LANAO Be ENABLE THE REMA I N I NG I NT
;WITH lANAO MASKED OfF

690

691

692

02AO

83 FB 00

02A3

74 21

CM'
JZ

BX,O
Ell

;LANA 0 ?
;JMP LANAO

TEST
JNZ

lANA_O_1 HT, 08
E 12

; IS LANAO ON INT 31
;JMP YES

693

694
695
696
691

02A5

26: f6 06 04A2 80

02A8

74 19

698

02AO
02B2

F6 06 1012 R 08
75 09

699
700

701
102

103
104
105
706

701
708
109

110

; LANAO ON I NT 2
;MASK OF INT R£Q 2
02B4
02B6
02B8
02BA
02BC

E4
24
fB
E6
C3

21

IN
ANa
JM'

F7

00
21

02BD

OUT

RET

AL,lNTAOl
AL, ENABLE_I N13
SHORT $ + 2
INTA01,AL

; GET CURRENT MASK
; EHABLE I NT 3

; NEW MASK

3 ON 2 OFF

EI2:
;LANAO IS ON INT 3
;MASK OF INT REQ 3

711
712

113
114

115
116
111
11.
119
120
121
722
123
124

02BO
02BF
02Cl
02C3
02e5
02C6

E4
24
EB
[6
C3

21
FB
00

'JM'
""A

21

OUT

RET

AL,INTAOl
AL, ENABLE_I HT2
SHORT $ + 2
IIHA01,AL

;GET CURRENT MASK
; ENABLE I NT 2
; NEW MASK 2 ON 3 OFF

E13:
; LANAO ENABLE tNT 2 iii:: 3
IN
AL,INTAOl
AHD
AL, ENABLE_I NT2_3
JMP
SHORT $ + 2
OUT
INTA01,Al

21
F3
00
21

02C6
02C8
02GA
02ec

E4
24
EB
E6

02CE
0203

80 3E 1010 R FC
75 09

CM'
JNZ

0205
0207
020A
020C
020E
020£
020F

E4
A2
24
E6

IN

125

126
121
12.
129

130
131

732

133

134
135

136

131
13.
139
140
141
142
143
144

145
146

JON A PC-3?

Al
1008 R

,"

153
154

155

15'

AND

OUT

El4:
C3

; FC"'3
;JMP NOT'" 3
Al, I NTBOl
SAVE_MASKA,AL
AL, ENABLE_I NT9
INTB01,AL

;GET IMR 2ND CHIP
:SAVE IT
; ENABLE 9

RET

[NABLE_ I NTS

ENOP

020F
020F
02£2
02E4
02E5
02£7

BA
03
EC
A8
74

0360
03

02E9

0361
03

02EE
02EF
02F1

BA
03
EC
3C
75

02f3

F9

01
00

141
14.

149
150
151

MOV

Fa
Al

MOV
ADD
IN
TEST
JZ

OX, STATUS_REG
OX, BX
AL,OX
AL,Ol
GBCl

;GO BIT ACTIVE

onc

41
03

D-6 Adapter BIOS

ibb;;

IN AX

MOV
ADD
IN
CM'
JNZ

51C

;GET THE GO BIT FROM
; THE STATUS REG

~gg ;~i ~~i

ACTIVE EXIT

CHECK FOR CMD 41

OX, PARAMETER_REG
OX,BX
AL,DX
AL,041H
GBCl

~ OFfSET
; IS IT INIT COMPLETE CMO?
;JMP NO
;GO BIT ACTIVE AND CMD 41

757
758

759
760
761
762
763
764
765
766
767

02f4
02F6
02F6

02f7
02F7
02ra

[8 01
GBC2:

C3

771

772
773
774
775
776
777
778
77.
78Q

800
801
802
803
804
805
806
807
808

80'
810
811
812
813
814
815
816
817
818
81'
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834

835
836
837
838
83.
840
841
842
843
844
845
846
847
848

849
850
851
852
853
854
855
856
857
858
85.
860
861
862
863
864
865
866
867
868
86'
870
871

872

873

874

EXITS FROM PROC
1. SUCCESSFUL ***RETURN TO CALLER WI TH CARRY FLAG CLEAR

2. FA I LUR£***RETURN TO CALLER 101 I TH CARRY fLAG SET
......................................................
, ..................... .

iFi-'TEST""" 'PRoc" "NEAR""""""",·,"""""""""'" """'" '"

02F8

-

XOR

02F6

32 [4

02FA

C6 06 1002 R 80

02fF
0302
0304
0305
0307

SA
03
EC
3C
75

0309

0300
0310

FE 06 1002 R
SA 0362
03 03

MOY

0312

BO AA

MOY

AH,AH

; ----VER I FY STATUS REG 10H--

HOY
HOY

0360
03

AOO

IN

eM'

10
6A

JNZ

COUNT ,eOH
OX, STATUS_REG
DX,8X
Al, OX
AL,10H
HIFT_FAILl

; INITIALIZE THE COUNT
;AOO
;GET
;ORE
; JMP

(

80)

OFFSET FOR I/O ADDRESS
STATUS REG
SHOULD 8E THE ONLY ACTIVE 81T
NON COMPARE

;---WRT/REAO DATA REG---AND TEST DRF &: DRE--

0314

EE

0315

EB 00

lNe
AOD
OUT

JM'

COUNT

g~:g~TA_REO
AL,OAAH
DX,AL
SHORT S + 2

0317

f6 00

NOT

AL

0319

EE

OUT

DX,Al

; (81

)

:AOD OFFSET FOR I/O ADDRESS
; TEST BYTE
; WR I TE FIRST 8YTE
;DELAY
;AA TO 55
;WRITE 2ND 8YTE
55

; --TEST oRF &: DRE---

OllA
0310
03lf

SA 0360
03 03
EC

0320
0322

3C 20
75 4F

0324

FE
SA
03
EC
3C
75

MOY
AOO

1N

eM.
JN2

OX, STATUS REG
OX, BX
AL,DX
AL,20H
HIFT_FAIL1

; CET SR
;DRF:01
ORE'" 0
; JMP ERROR

;--GET FIRST DATA BYT£--

0328
0328
0320
Ol2E
0330

06 1002 R

0362
03

MOY
ADO

IN

eM.

AA
41

JNZ

COUNT
OX,OATA_REG
OX,8X
AL, OX
AL,OAAH
HIFT_FAILl

; (82

)

)FIRST DATA BYTE
iJMP DATA liON COMPARE

;--TEST ORF &: ORE AGAIN

0332

SA 0360

0335
0337

03 03
EC

0338
OllA

3C 30
75 37

033C
033F
0341
0342
0344

SA
03
EC
3C
75

MOY
AOO

IN

eM.
JNZ

OX, STATUS_REG
DX,8X
AL,DX
AL,30H
HIFT_FAIL1

;GET SR
; ORf '" 1 ORE" 1
;JMP NON COMPARE

; --GET 2ND DATA 6YTE--

0362
03

HOY

AOO
1N

eM.

55
20

JNZ

g~:~~TA_REG
AL, OX
AL,055H
HIFT_FAIL1

;GET DATA
iJMP DATA NON COMPARE

;--TEST ORF &: ORE FOR THE LAST TIME--

MOY
AOO
IN

g~: ~~ATUS_REG

0346

SA 0360

0349
0348
034C
034E

03 D3
EC
3C 10
75 23

eM.

0350

SA 0362

0353

03 03

MOV
ADO

OX,OATA REG
OX,BX-

0355
0357
0358
Ol5A

BO FF
EE
EB 00
[C
3C fF

MOY

AL,OFFH
OX,AL
SHORT S +2
AL,DX
AL,OFFH
HIFT_FAlll
AL,OlH
OX,AL
SHORT S + 2
AL,OX
Al,OlH
HIFT fAIL1
AL,OOH
OX,AL
SHORT S + 2
AL,DX
AL,OOH
RR4

JNZ

AL, OX
AL,10H
HIFT_FAIL1

iGET THE STATUS
;ORf "0
ORE'" 1
;JMP NON COMPARE

;--TEST REMAINING DATA:"--

0358
0350
Ol5F
0361
0362
0364
0365
0367
0369
0368
036C
036E
036F
0371
0373
0373

75
BO
EE
EB
EC
3C
75
BO
EE
EB
EC
3C
74

OUT
JM'
IN

eM.

JNZ

14
01

MOY

OUT
JM'
IN

00

eM.

01
OA
00

JNZ
MOY
OUT

JM.
1N

00

00
03

£9 0600 R

eM.

JZ
HIFT_FAIL1:
JM.

875

HIFT_FAIU.O

;TEST BYTE
;WRITE fiRST BYTE
; DELAY
;GET THE DATA

01

:JMP DATA NO COMPARE
; TEST BYTE
;WRITE fiRST BYTE
00
; DELAY
;GET THE DATA
;JMP DATA NO COMPARE
; END OF PROC

;----TEST PARAMETR REG--------

876

877
878
87'
880
881
882

HOT ACTIVE

OF 0 IN BX FOR LANA 0, AND A OFFSET OF 8 FOR LANA 1, TH I S ROUT I NE TESTS THE;
HIF PLA REGISTERS AND CONTROL LOGIC.
1. VER I FY THE STATUS OF REG I STERS FOLLOW I NG RESET
2.WRITE/READ TO REGS AND VERIFY STATUS BITS
THE FOLLOWING STEPS ARE DONE IN CONJUNCTION WITH THE LANA CPU
1. SET I NT TO LANA (HOST SETS 00 61 T)
2.WAIT FOR INT FROM LANA(LANA CLEARS GO BIT)
3.DTI INTIDATA XFER LANA TO HOST)
4.0RE INT (DATA REG EMPTY INT LANA)
5.0ATA XFER (HOST-->LANA INT)
6.0RE (LANA READS DATA CAUSES INT TO HOST)
7. WR I TE TO LANA CAUSE I NT
8.0MA XFER HOST --> LANA 2 BYTES
9.DMA XFER LANA --> HOST TEST 2 8YTES DATA

770

7.'

;GO BIT*CMD 41

RET

;:;:; ; ;t~l~; l~; i; bb~~b~; ~~bb; ~b~: u..~;.,: b: ~; i: t~~; ~~bb; H; biLL~b; ~H~; i; bHHt;

768

7"
7,2
7.3
7.4
7.5
7.6
7'7
7'8

SHORT GBC2

eLe

~~;~ ~ i;~~~; i i; ;; ~~~~;;;;; ;; ;; ;;:; ;; ;; ;; ;:;;; ;: ;; ;;; ;;;;; ;;:;; ;; ;; ;;; ;;;; ;;; ;; ;;

76.

781
782
783
784
785
786
787
788
78'
7'0

JMP
GBC1:

Fa

RR4:

0376
0376
037A
0370
037F

FE
BA
03
BO

06 1002 R
0361
03
AA

lNe
MOY
AOO
MOY

COUNT
OX, PARAMETER_REG
DX,8X
Al,OAAH

: (83

)

; ADD OfFSET FOR I/O ADDRESS

Adapter BIOS D-7

683
664
685
666
667
668
669
690
691
692
893
694
695
696
697
698
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
9'5
916
917
918
919
920
921
922
923
924
925
926
9<7
928
929

930
931
932
933
934
935
936
937
938
939

940

941
942
943

944
945
946
947
948
949
950

951
952
9>3
954

0381
0382
0384

[[

0387
0389
0388

80 FF

G38C
038E

80 01
EB 00

0390

EE
BO 00
EB 00

0391
0393
0395
0396
0398
0399
0398

OOT
MOV
JMP
OUT
MOV
JMP
OUT
MOV
JMP
OUT
MOV
JMP
OUT
JMP
OUT
JMP
OUT

EE

80 55
EB 00

0386

EB 00
[[

[[

E6 00
[[

EB 00
[[

no

971
972
973
974

975

976
977
978
979
960
981
982
983
9""
985
986
967
988
989
990
991
992
993
994
995
996
99T
996
999
1000
1001
1002
1003
1004
1005
1006
1007
1008

SHORT

$

+2

2

DX,Al
AL,OrFH
SHORT S +2
DX,Al

55

3

FF

4

01

AL,OlH
SHORT S + 2

OX,AL
AL,Da
SHORT

$ +

2

aX,Al
SHORT S

DX,Al
SHORT

+ 2

$ +

5

00

6

00

7

00

2

aX,AL

; --VERI FY THE OATA-----

039C
039E

EB 00
Ee

JMP

SHORT S + 2

039F

3C AA

75 20
EB 00

eMP
J.z
JMP

"
"

AL,OX
AL,OAAH

a3Al
G3A3
03A')
03A6

OlA8
03M
O.lAC
G3AD
OJAf

Ee

3C 55
75 26

HIFT FAIL2
SHORT S + 2

AL,DX

CMP
JNZ
JMP

EB 00
EC
3C FF

AL,055H
HIFT FAIL2
SHORT S + 2
AL,OX

IN

75 1F

eMP
JNZ
JMP

AL,OFFH

"

AL,OX
AL,Q1H
Ii I FT FAIl2

EB 00

0383

Ee

0384
0366

3C 01
75 18
[8 00

eMP
JNZ
JMP

Ee
3C 00
75 11
EB 00
Ee

IN

AL, OX

eMP
JNZ
JMP

Al, DOH

"

AL,

0388
03BA

0388
0380
03BF

Ole1
03C2
03G4
03G6
03G8
03C9
03CB
03CO
0300
0300

SHORT

Ee
3C 00
75 03
EB 04 90

$ +

2

01

SHORT $+2
00

HIFT fAIL2
SHORT S + 2

eMe
JNZ
JMe
IN
eM?
JN2
JMP

3C 00
75 OA
fB 00

55

HI FT FAIL2

0381

ox

AL,OOH
HIFT FAIL2
SHORT S + 2
AL, OX
Al,OOH
HI FT_FAI L2

00

00

RR6

HIFT_FAll2:

JM?

E9 0600 R

HIFT_FAllED

;---TEST THE HOST
0303
0303
0307
03DA
030C
030E
03E1
03E4

FE
BA
03
BO
E8
£8
75

06 1002 R
0363
03
AA
0955 R
0796 R
40

JNZ

03E6
03E8
03EB
03EE

BO
E8
E8
75

52
0955 R
0796 R
43

JNZ

03FO
03F2
03F5
03F8

80 FB

MOV

£8 0955 R
E8 0796 R
75 39

CALL
CAll

03FA
03FC
03FF
0402

BO
E8
E8
75

01
0955 R
0796 R
2F

MOV

0404
0406
0409
040C

BO
E8
E8
75

00
0955 R
0796 R
25

MOV

040E
0!112
0415
0417
0419
041C
041 F
0421
0423

FE
BA
03
BO
E8
E8
211
3C
75

06 1002 R
0360
03
02
0955 R
0796 R
07
02
DE

INC
MOV
AOO
MOV

0425
0427
042A
0420
042F
0431

80
E8
E8
24
3C
74

05
0955 R
0796 R
01
05
03

; END OF PROC

I NTERFACf REG---

RR6:

I Ne
MOV
AOO
MOV

COUNT
OX, HOST_I NTR_REG
OX,BX
AL,OAAH
WRT REG
READ REG
HI FT=FAIl3

CAll
CAll

MOV

;( 84

I

52M

Al,052H
WRT REG
READ REG
HIFT=FAIl3

CAll
CALL

AL,OFBH
WRT REG
READ_REG
HIFT_FAIL3

JNZ

955

956
957
958
959
960
961
962
963
964
965
966
967
968
969

DX,AL

AL,055H

; 01M

Al,01H
WRT_REG
READ_REG
HI FT FAIL3

CAll
CAll

JNZ

-

Al,OOH
WRT REG
READ_REG
HIFT_FAIL3

CALL
CALL

JNZ

;---T£ST THE STATUS REGISTER--

CALL
CAll

ANa
eMP
JNZ
MOV

AL,05H
WRT_REG
READ REG
AL,07H
Al,05H

CAll
CAll

,"0
eMP
JZ
;;; lEAVE SR

0433
0433

COUNT
OX, STATUS_REG
OX,BX
AL,02H
WRT_REG
READ REG
AL,07H
Al,02H
HIFT_FAIL3

ITO
'=

;(

85

:GO WRITE THE STATUS REG
; READ IT
; REMOVE UNWANTED BITS

:GO WRITE THE STATUS REG
;READ IT
; REMOVE UNWANTED BITS

: status ok

05-TEllS LANA THAT HOST ATTACHED;;;;

HIFT_FAIL3:

JMP

E9 0600 R

HI FT FAI LED

-

; ----HOST INTERFACE I HTERRUPT TESTS
;WAlT FOR THE LANA TO SET THE CCO BIT

0436
0436
0436
043A
0430
0440
0442
0442
0447

I

IN STATUS REGISTER

I NTERRUPT_ TESTS:
ITO:
FE
E8
SA
03

lNe

06 1002 R
08f5 R
0360
03

CAll

MOV
AOO

COUNT
START TIMER
ox, STA.TUS_REG
OX, BX

;(

B6

;AOO OffSET FOR

I
I/O ADDRESS

IT_l :
80 3E lOOF R 80
75 08

D-S Adapter BIOS

; --ADDEO-T_0_FLAG.80H
IT_ 1A

eMP
JNZ

:JMP NO TIME OUT

02

05

1009
1010
lOll
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
10118
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104

1105
1106
1107
1108
1109
1110
1111

1112
1113
1114
1115
" 16
1117
1118
1119

1120
1121
1122
1123
1124
1125
1126
1127
1128
1129

0449
044E

C6 06 1015 R 80
E9 04ED R

;TIME OUT HAS Fl_ASPEO SET FAIL TO SYNC FLAG
MOV
NO_SYNC,80H
;SET FLAG
JMP
HIFT_FAIL4
;JMP GROSS TIME OUT

0451
0451
0452
0454

EC
A8 02
74 EC

IN
TEST
JZ

I T_'

1N

; ---SET VECTORS FOR 2 & 3----0456

E8 08B2 R

CALL

SET_VECT 2 3

; --SET THE G I ENABLE FOR THE HOST--0459
045C
045E
01160

BA 0363
03 03
BO 01
EE

0461

(8 01ec R

MOV
ADO
MOV
OUT

OX, HOST_I NTR_REG
,
OX,BX
;AOO OFFSET
AL,Ol
;GO INTERRUPT ENABLE FOR HOST
OX, AL
; ENABl E THE HOST I NT

; 10-23
;CLEAR ANY
; --ENABLE

INTS THAT MAY BE SET

I NT 2 OR 3------------

; 10-16
01164
0467
0468
0469
046A
046B

(8 02AO R
90
90
90
90
C6 06 1000 R 00

ENABLE_I NTS

;LANAO"'INT 2,3 LANA1"'INT ?

NO'
NO'
NO'
NO'
MOV

: CLEAR THE FLAG

;------S[1 GO BIT TO LANA---0470
0473
0475
0477
0478

BA 0360
03 03
BO 01

MOV
ADD
MOV
OUT
INC

EE

FE 06 1002 R

OX, STATUS_REG
OX,BX
AL,01
DX,AL
COUNT

;AOO OFFSET
;00 BIT INTERRUPT
;THIS SHOULD CAUSE A LANA INT
; (87
)

;---NOW TEST THE CLEAR GO INTERRUPT TO THE HOST-;---WAIT FOR THE LANA TO CLt:AR GO ANO CAUSE A HOST

047C
047F
0481
0484
0486
0488

£8
74
80
74
EB

093A R
FB
FC 80
02
65

CALL
JZ
CMP
JZ
JMP
; --SAVE

I NT

0488
0488
0480
0490
0493

83
74
AO
A2
EB

Fe 00
09
1011 R
1013 R
07 90

CMe

JMe

8X,0
ITSA
AL,TEMP_lrH
LAriA_l_INT,AL
I T8B

0496
0496
0499

AO 1011 R
A2 1012 R

MOV
MOV

AL,TEMP_lriT
LANA_O_I NT, AL

049C

JZ
MOV
MOV

T I ME OUT OR I NT?
IT 7AH-;-SOH
ITS
SHORT HIFT_FAIL4

INT

; SEE I F GROSS T I ME OUT OR
;JMP NO T a OR INT
;WAS IT A tNT?
;JMP I NT OCCURRED

I NT OCCURRED

I NFO----; WORK I NG ON LANA O?
;JMP YES
; SAVE THE

; SAVE THE

I Nl

LEVEL LANA 0

I TSB:

;DATA REGISTER INTERRUPT
; TEST I NTERRUPTS TO HOST AND LANA
; DATA XF(R
LANA ----> HOST
049C
04AO

FE 06 1002 R
C6 06 1000 R 00

INC
MOV

04A5
04A7
04AA
04AC

BO 10
BA 0363
03 03
EE

MOV
MOV
AOD
OUT

COUNT
INT_OCCUR?,OOH

; (88
)
;CLEAR THE

INT FLAG

; DATA XFER

INTERRUPT ENABLE OTI

;AOO OFFSET
; ENABLE HOST FOR OT I

; 'riAl T FOR THE

I NT FROM LANA

I NT FROM LANA

04AO
04AD
04BO
01182
04B5
04B7

E8
74
80
74
EB

093A R
FB
FC 80
02
34

CALL

; SEE
;JMP
;WAS
; JMP

JZ
CMP

"

I F GROSS T I ME OUT OR
NO T_O OR INT
IT A INT?
I NT OCCURRED

I NT OCCURRED

JMP

0489
;---READ BYTE FROM DATA REG (ORE) CAUSE
0489
04BO
04CO
04C2

FE 06 1002 R
BA 0362
03 03
EC

INC
MOV
ADD
IN

COUNT
OX, DATA_REG
OX, BX
AL, OX

;--CLEAR THE OTI
04C3
04C6
04C8
04CA

BA 0363
03 03
BO 00
EE

MOV
ADD
MDV
OUT

; (89

INT TO LANA
)

:AOD OFFSET
;REAO DATA REGI CAUSE ORE liNT LANA

SIT

IN HIR

OX, HOST_I NTR_REG
OX, BX
AL,OOH
OX,AL

;ADO OFFSET
;CLEAR THE OTI
; DO IT

BIT

;--SYNG THE LANA WITH CCO 8IT-04CB
04CO
0400
0402

BO 02
BA 0360
03 03
EE

0403

C6 06 1000 R 00

0408
04DB
0400
040F

BA 0363
03 D3
BO 08
EE

MOV
MOV
ADO
OUT

AL,02H
OX, STATUS_REG
OX,8X
OX,AL

;SET CGO =

1

; OFFSET
;SYNC IT

; ---DATA XFER HOST--->LANA

1130
1131
1132
1133
,134

;GET THE STATUS REGISTER
; LANA SETS CCO '" 1 TO SYNC
;JMP IF CCO NOT SET YET

AL,OX
AL,02H

OX, HOST

oX,ax

-

I NTR REG

-

AL,08H
OX,AL

;--NOW ENABLE THE OTI
04ED
04E2

80 18
EE

; CLEAR THE FLAG

INT_OCCUR?,OOH
MOV
ADD
MOV
OUT

MOV
OUT

AL,18H
OX,AL

;AOO OFFSET
; OO=l=HOST TO LANA
INTERRUPT-;00"'1 AND OTI = 1

Adapter BIOS D-9

1135
1136

1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167

; "-SHOULD GET A ORE I NTERRUPT-04[3
04E3
04E6
04E8
04E8
04EO
04EO

ITl1 :
E8
74
80
74

;SEE
;JMP
:WAS
:JMP

AH,80H
ITl2

E9 0600 R

04FO

If GROSS TIME OUT OR INT OCCURRED
NO T_O OR INT
IT A INT?
INT OCCURRED

; END OF PROC
ITt2:
; ---CLEAR OT 1---

04FO
04f2
04f5
04F7

80 08
SA 0363
03 03

;CLEAR THE OTI LEAVE DO = 1

AL,08H
ox, HOST I NTR REG
DX,BX DX,AL

MOV
MOV

ADD
OUT

EE

~CLEAR

THE DTI

IN HIR

;---WRITE TO DATA REG, CAUSE LANA IIH
04f8
04FB
04fD

SA 0362
03 03

OX, DATA_REG
OX,BX
OX,AL

MOV

ADD
OUT

EE

~AOO

OFfSET

;4.3.6.4 DATA REGISTER OMA

;;:; ;; ;; ;; ;;; ;; ;; ;;

1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
117a
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260

i{~~_OUT_OR_I NT?

093A R
fa
fC 80
03

CHAN 0
00 R/W ADDRESS
01 R/W WD/CNT

,n;;;;;

b~i; ibb~~~~j ~b;;

02
03

CHAN 1
R/W ADDRESS
R/W WD/CNT

;; ; ;; ;; ; ;; ;; ;; ; ;; ;; ;; ;; ;; ;;;;; ;; ;;;;

04
05

CHAN Z
R/W ADDRESS
R/W WO/CNT

08 READ STATUS REG
WR I TE COMMAND REG
09 WR I TE REQUEST REG
OA WRITE SINGLE MASK REG BIT
OS WRITE MODE REG
DC CLEAR BYTE POINTER Flf
00 READ TEMPORARY REG
MASTER CLEAR
OE
ILLEGAL
Of WRITE ALL MASK REG BITS

CHAN 3
R/W ADOORE
R/W WO/CNT

06
07

;,;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;::;;:;;;:
;DHA XFER HOST ---> LANA

(2 BYTES M/55 )

; SET UP THE DMA
04fE

FE 06 1002 R

I HC
COUNT
; MASK OF DMA CHAN 3

0502
0504

SO 07
E6 OA

MOV
OUT

0506

C6 06 1000 R 00

MDV

; (8A

)

AL,DMA_MASK + OMA_CHAN3 ;MASK OFF OMA3 REQUESTS
OMA_SI NGl[_MASK, AL
; CLEAR THE I NT FLAG

;SUPPLY THE 20 BIT OMA ADDRESS
050B
0510

C6 06 tOlE R 55
c6 06 101f R AA

MOV
MOY

DMA_DATA,0.55H
DMA_DATA + l,OMH

0515
0517
051A

33 CO
SF 101E R
E8 0270 R

XOR
MOY
CALL

AX,AX
OI,OFFSET OHA_OATA
DMA_ADDRESS

;SUPPLY DATA FOR OMA XFER
;fOR CONVERSION ROUTINE
;SUPPLY THE OMA WITH ADDRESS

; SET THE WORD COUNT
0510

E8 08CO R

CALL

SET_WO_CNT

; GO SET WORD COUNT FOR XFER Of 2

0520

c6 06 1000 R 00

MOV

I NT_OCCUR?, OOH

;CLEAR THE INT FLAG

; SET THE MOOE FOR READ
0525
0527

SO 4B
E6 DB

MOV

OUT

AL,4SH
DMA + OBH, AL

: SET HI R FOR OMA XFER

;SINGLE MODE,ADO INC,AUTO DIS,READ,03
;WRITE THE MODE REGISTER
fROM HOST TO LANA

0529
052C
052E

SA 0363
03 03
BO 6B

MOV
MOV

OX, HOST_I NTR_REG
DX,ex
AL,68H

0530

EE

OUT

DX,AL

ADO

; ADO OffSET
,DO=l=HOST TO LANA
; DTO=l=oMA
;TC1=1o=TERMINAL COUNT INT TO HOST
;SET UP HIR

; REMOVE THE MASK FROM CHAN 3
0531
0533

BO 03
E6 OA

MDV
OUT

Al,03
OMA + OAH,AL

; CLEAR MASK BIT FOR CHAN 3
; WRT SINGLE MASK REG
;2 DAM XFERS SHOULD OCCUR

; FIELD THE I NT FROM TERM I NAL COUNT
0535

OMA' :

0535
0538
053A
0530
053f
0541

E8
74
80
74
£8

0541
0545
0547
054A
054C

FE
BO
SA
03

093A R
FB
FC 80
02
50

CALL
JZ

6~~~_OUT_OR_1 NT?

eMP

AH,80H
DMAZ
SHORT HlfTJAIL5

JZ
JMP

; SEE
;JMP
;WAS
;JMP

I F GROSS TIME OUT OR I NT OCCURRED
NO T_O OR INT
IT A INT?
INT OCCURRED

DMAZ:
;-~CLEAR

EE

06 1002 R
08
0363
03

INC
MOV
MOV

ADD
OUT

THE OTO BIT-COUNT
AL,08H
g~: ~~ST_I NTR_REG

: (8S
)
; CLEAR THE OTO B IT LEAVE DO ON FOR NOW
;AOD OFFSET

DX,AL

;M-CLEAR THE DO BIT -0540
054F

BO 00

MOV
OUT

EE

D-IO Adapter BIOS

;

~--OMA

Al, ~OH
DX,AL
XFER LANA --->HOST

; MASK OF OMA CHAN 3

~ DTO

AND DO BOTH CLEAR HOW

1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1366
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386

0550
0552

80 07
[6 OA

MOV
OUT

AL,OMA_MASK + OMA_CHAN3 ;MASK OFF OMA3 REQUESTS
OMA_S INGLE_MASK, Al

0554

C6 06 1000 R 00

MOV

I NT _OCCUR? ,DOH

; CLEAR THE

I NT FLAG

; SET DMA I,OORESS
0559
055C
055£

8f 1003 R
33 CO
[8 0270 R

0561

[8

MOV
XOR
CALL

OI,OFFSET OATA_XFER
AX,AX
OMA_ADORESS

; PUT THE OMA DATA HERE
; SEGMENT'" 0
; CONVERT SEGMENT & OFFSET TO 20 BI T ADD

; SET THE WORD COUNT

oaco

R

CALL

SET_WD_CNT

; SET FOR XFER 2 BYTES

; SET THE MODE FOR WR I TE
0564
0566

BO 47
£6 OB

MOV
OUT

AL,47H
OMA + OBH,AL

;SINGLE MOOE,ADO INC,AUTO OIS,'o'IRITE,03
;WRITE THE MODE REGISTER

; SET HI R FOR OMA XFER LANA TO HOST
0568
056B
0560

BA 0363
03 03
BO 60

MOV
ADD
MOV

OX, HOST I NTR REG
;
OX,8X ;ADD OFFSET
AL,60H
; OD=O=LANA TO HOST
; OTO=l=OMA
;TC1=1=TERMINAL COUNT
OX,AL
; SET UP HIR

OUT

056F

INT TO HOST

; REMOVE THE MASK FROM CHAN 3
0570
0572

80 03
E6 OA

MOV
OUT

; CLEAR MASK BIT FOR CHAN 3
;WRT SINGLE MASK REG

AL,03
OMA + OAH, AL

; FIELD TERM I NAL COUNT
0574
0574
0577
0579
057C
057E

I NTERRUPT FROM OMA XFER

OMA3:
E8
74
80
74
FB

093A R
FB
FC 80
02
1F

CALL
JZ
CMP
JZ
JMP

0580
0584
0586
0589
0580

FE
BO
BA
03
EE

06 1002 R
00
0363
03

INC
MOV
MOV
ADD
OUT

058C
05BE
0590
0593
0595
0597
059A
059C

33
BE
AD
3C
75
AO
3C
74

CO
DB
1003 R
55
07
1004 R
AA
03

XOR

059E
059E

EB 60 90

05A'
05A 1
05A4
05A6

BA 0362
03 03
EC

T I ME OUT OR I NT?
OMA3AH,BOH
OMA4
SHORT HIFT_FAIL5
THE OTD AND TCI

;~-CLEAR

;

BIT--

COUNT
AL,OOH
OX, HOST_I NTR_REG
OX,
DX,AL

ax

THE DATA FROM THE DMA XFER

~-CHECK

AX,AX
OS,AX
AL,OATA_XFER
AL,055H
HI FT FAI L5
AL,OATA_XFER +1
AL,OAAH
OMA5

MOV
MOV
CMP

JNZ
MOV
CMP
JZ

)
; (BC
;CLEAR THE HIR
;OFFSET

;SET UP OS
;GET THE FIRST DATA BYTE
;JMP DATA DOESN'T COMP
; GET SECOND BYTE
;JMP DATA COMPARE

HIFT FAIL5:
JMP
OMA5:
MDV
ADD
IN

;4.3.6.5.

OX,DATA REG
OX, BX AL, OX

;CLEAR THE DATA REG

INTERFACE CONTROL

IC4:

05A7

;GET READY TO

INT ON THE HOST CONTROL REQ BEING ENABLED

05A7
05AB

FE 06 1002 R
C6 06 1000 R 00

INC
MDV

COU~T

05BO
05B3
0565

BA 0363
03 03
80 82

MOV
AOO
MDV

OX, HOST_I NTR_REG
OX,BX
AL, B2H

EE

OUT

DX,AL

I NT_OCCUR? ,00

;FIELO THE

; (80
)
; CLEAR THE FLAG
;ADD OFFSET
;HCI=1=INT ON HOST CONTROL
;f-ICR=l"HOST CONTROL REQUEST
; SET

05B8
05BC
05BF
05C1
05C4
05G6

FE
EB
74
80
74
EB

05CB
05C8
05C9
05ce
05CO

A8 80

06 1002 R
093A R
F7
FC 80
02
45

I NC
CALL
JZ
CMP
JZ
JMP
;~-cHECK

COUNT
T I ME OUT OR I NT?
I C5 -AH,BOH
I C5A
SHORT HIFT_FAILED
THE HC BIT

; (BE
)
; SEE I F GROSS T I ME OUT OR
;JMP NO T_O OR INT
;WAS IT A INT?
;JMP INT OCCURRED

I NT OCCURRED

IN STATUS REG--

IC5A:
IN
TEST
JNZ
JMP

EC
75 03
EB 3E 90

AL,DX
AL, BOH
IC6
HIFTJAILED

;GET STATUS REG
;HC SHOULD BE ACTIVE
;JMP HC ACTIVE
;HC NOT ACTIVE

;--WAIT FOR LANA TO SET CCO BIT =

°

IC6:

0500

050A
050A
0500
050F
05EO
05E2

UP THE HOST

INT

IC5:

058B

0500
0505
0507

IF GROSS TIME OUT OR
T_O OR INT
IT A INT?
I NT OCCURRED

~O

OMA4:

0580

05B7

;SEE
;JMP
;WAS
;JMP

; --ADOED-CMP
T_O_FLAG,BOH
JNZ
IC6A
JMP
HI FT_FAI LED

80 3E 100F R 80
75 03
EB 34 90

;JMP NO TIME OUT
; JMP GROSS T I ME OUT

IC6A:
SA
03
EC
AS
75

0360
03
02
EC

MOV
ADO
IN
TEST
JNZ

DX,STATUS_REG
OX, BX
AL,DX
AL,02H
IC6

GET STATUS REG
ISCCO=O
JMP IF CCO '" 1

Adapter BIOS D-ll

1387
1388

1389
1390

1391
1392
1393

;GENERATE A HC CLEAR
05E4
05E7
05E9
05EB

BA 0]63
03 03
BO 00
EE

MOY
AOO
MOY

OUT

; -- r NSURE

1394
1396

05EC
05ED

1397

05H

1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450

05fO

90
80 02
EE
90

05f1
05f5
05f8
05fA
05fB
05fD

fE 06 1002 R
BA 0360
03 03
EC
AS 80
75 DE

05ff
0603
0605
0608
060A
060B
060C

fE
BO
BA
03
EE
f8
C3

1395

;AOD OfFSET
; TURN OFf THE HOST CONTROL REQUEST
; INTERRUPT THE LANA

HCR I S NOT ACCEPTED WHEN LANA HAS HCE '" 0

AL,02H
DX,AL

; HOST CONTROL REQUEST
;REQUEST HOST CONTROL

NOP

;--VERlfY NO HC SET-I NC
COUNT
MOV
ox, STATUS REG
ADD
OX,BX
IN
AL,DX
TEST
AL,80H
JNZ
HIFT_FAILED

; (8F

)

;GET THE STATUS REGISTER
; I S THE HC SET
;JMP
FAILURE HC IS ON

;--NOI-I CLEAR THE HIR--I NC
COUNT
MOV
AL,OO
MOV
ox, HOST I NTR REG
ADO
DX,BX OUT
DX.AL

06 1002 R
00
0363
03

; (90

)

;AOD OFFSET
; CLEAR THE HI R REG
; fLAG SET FOR GOOD RETURN

ClC

RET

0600
0600
060F
0612
0614
0615
0616
0617

~g~

OUT

INT TO LANA

ox, HOST_I NTR_REG
OX,BX
AL,OO
OX,AL

BO 00
BA 0363
03 03
EE
F9
C3

HI FTJAI LED:
;--CLEAR THE HIR---INSURE HCR
MOV
AL.OO
MOV
OX, HOST I NTR REG
ADD
OX,BX OUT
DX. AL

IS OFF SO LANA CAN GET INTERFACE

STC

RET

;ADD OFFSET
; CLEAR THE HI R REG
; FLAG SET FOR ERROR RETURN

HI FT_TEST

ENDP
...............................................................................
" " " " "ROC' " 'NEAR' , ., , , ., ." , ; "" , • , , ., , •• , ., " • " • , , •

HbT~RF?'

0617

>, • , , , , >, , > • >

;LANA RETURNED A 8E ERROR CODE, INDICATING A POTENTIAL HOT CARRIER
;LOOK FOR THE GO BIT AND CMD 45.
LANA MAY TAKE UP TO 45 SECONDS TO
;RETURN A HOT CARRIER, IF AfTER 45 SECONDS NO CMD 45 THEN NORMAL EXIT.
; I r CMD 45 DETERM I NE
I F HOT CARR I ER ON TH I S CARD OR
iON THE NET. DISPLAY THE APPRO lATE MESSAGE.
0617
061A

E8 08F5 R
C6 06 1006 R 80

061F
061 F
0622
0624
0625
0627
0629
062E
0630

CALL
MOV

START TIMER
RF_TEST, 80H

; INITIALIZE THE TIME
,SET FLAG fOR
'TICKS PROC'
; INDICATES THAT HOT CARRIER TEST
; PROCESS

BA 0360
0] 03
EC
A8 01
75 OA

MOV
ADD
IN
TEST
JNZ

OX, STATUS REG
OX, BX
AL.DX
AL,01
HR2

~ OFFSET
;GET STATUS REG
;GO BIT ON?
;JMP YES

80 3E 100F R 80
75 Ef
EB 58 90

CMP
JNZ
JMP

T_O_FLAG,80H
HR1
HC8

; HAS 45 SEC'S ELASPEO?
;JMP NO-CONTINUE TO LOOK
;JMP TIME EXPIERED-EXIT NORMAL

BA
03
[C
3C
74

0361
D3

MOY
ADD

45
11

CMP
JZ

HRl :

0633
;GO BIT ON -

1451

CMO 45 ?

1452

1453
1454

1455
1456

1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
148]
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512

0633
0636
0638
0639
0638

IN

OX, PARAMETER_REG
OX,BX
AL, OX
AL,45H

HCS

; NOT CMD 45
; NEVER SHOULD GET HERE
0630
0640
0642
0645
0648
0648
0648
064E
064E
064F
0651
0653
0656
0658
0658
065E
065E
0661

83
75
BE
EB

FB 00
06
0205 R
45 90

0666

BX,O

HC,

; 'DIGITAL FAILURE'
; ERROR

MOY
JMP

S I, OFFSET 10133

;

HR3

SI,OFFSET M13

HR3:
BE 0265 R
E8 3f 90

IN

EC
3C 41
75 11
83
75
BE
EB

CMP
JNZ

; CET SECOND BYTE OF PARAM REG
; CC NOT ME?

AL.OX
AL.41H

HC6

;COInINUOUS CARRIER &
CMP
BX,O

FB 00
06
0211 R
2f 90

~~~

~?:~FFSET

JMP

HC9

MOY
JMP

HC,

CMP
JNZ

HC7

IT'> NOT ME

M50

]C 42
75 11

83
75
BE
EB

FB 00
06
0217 R
lA 90

;CONTINUOUS CARRIER ME?

AL,42H

CMP
JNZ
MOY
JMP

BX,O
HC6A
SI,OfFSET 10151

MOY
JMP

SI,OFFSET 10161

HC6A:
BE 0277 R
EB 14 90

I TS ME

(3X42)
; FIRST CARD?
;3042

HC'
:3142

HC,

HC7:
83
75
BE
EB

;DMA FAILURE?
CMP
BX,O
JNZ
HC7A
MOV
SI,OFFSET
JMP
HC9

FB 00
06
0205 R
09 90

;FIRSTCARO
M13

;3013

HC7A:
MOY
JMP

BE 0265 R
EB 03 90

S I, OFfSET "133

HC,

Hca:

068A

;NO HOT CARRIER EXIT
068A

;3141
;ERROR EXIT

S I, OFFSET M60

HC6:

0679
0679
067C
061£
0681
0684
068L!
0687

(3X41)
;FIRST CARD

; 3041
; ERROR

HC5A;
BE 0271 R
EB 29 90

; CONT I "lUOUS CARR I ER AND
0668
0668
0660
0670
0673
0673
0676

OIGITAL FAILURE'

HC'

HC5:

0664

06154

CMP
JNZ
MOY
JMP

f8

D-12 Adapter BIOS

ClC

;3113

IN

1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638

RET

0688
068C

C3

068C
068F
0694
0695
0696
0697

E8 01A4 R
C6 06 1005 R 80
DE
50
F9
C3

HC9:

068E
06C1
06C3
06C4
06C6
06C8
06C9
06CB
06CD
06CE
06CF
0600
0601
0602
0602
0602
0603
0604
0605
0606
0608
06DA
060r
06E4
06E7
06E9
06EA
06EC
06E[
06EF
06F1
06F3
06F4
06F5
06F6
06F7
06F8

ENOP

;80 = FAILURE OCCURED
;PUT THE CS 10 IN SP
~ FAI lURE
;

i~f~b~~;;;;;;;;; ~~bb;;;; ~~i~;;;;;;;;;;;; ~tgt; j ~t~h~b~t; ~iitb§; ~b~; bb~~tiH§;;;
80 3E 1014 R 00
74 08

CMP
JZ

LANA_'_ACTIVE,O
10_2

AD 1013 R
38 06 1012 R
75 02
F9
C3

MOV

Al, lANA_l_1 NT
lANA_O_INT,AL
10_2

; IS 2NO LANA INSTALLED AND ACTIVE 1
;JMP NO

STC

;ARE LANAS ON DIFFERENT INT lEVELS?
;JMP YES
;CARRY FLAG SET FOR ERROR RETURN

CLC

; CARRY FLAG SET FOR GOOD RETURN

CMP

JHZ

RET

F8
C3

RET

ENOP
............................................................................
".

06AC
06AC
06AC
06AO
06AE
06AF
0680
0682
06B4
0689

RET

HOT_RF?

0698
0698
0698
0690
069F
069F
06A2
06A6
06A8
06A9
06AA
06AA
06A8

;ERROR EXIT
CALL
DISPLAY
MOV
FAI l_FLAG, 80H
PUSH
CS
POP
8P
STC

52
53
lE
50
33
8E
c6
c6
BA
03
EC
EB
OC
EE
BO
E6
58
IF
5B
5A
CF

iNT:2""""'" FRoc···· NEAR············; i NT' HANoLER' FOR' iNT' 2""",·,",·····
PUSH
OX
PUSH
ax
os

PUSH
PUSH
XOR
MOV

AX
AX,AX
OS,AX

:REESTABLISH OS

~g~

{~~p~r~~~b4~OH

;SET FLAG TO INDICATE A INT OCCURRED
;FlAG FOR INT 2 ACTIVE

0360
03

MOV
ADD
IN

00
80

JMP
OR
OUT

20
20

MDV

OX, STATUS_REG
OX.BX
AL.DX
SHORT S + 2
Al. RESET_I NT_REQ
DX,Al
Al.EDI
INTADO.Al
AX

CO
08
06 1000 R 80
06 1011 R 04

OUT
PDP
POP
POP
POP

;ADD OFFSET
;GfT THE STATUS REG
; DELAY
; OR IN BIT TO TURN OF I NT REQUESTS
; CLEAR I NT REQUEST FROM LANA CARD
; ENABLE GENERAL INTERRUPTS
; RESTORE REGS

OS
BX

OX

IRET
ENDP
j~t~;;;;;;;;;;; ~~bb;;;; ~~i~;;;;;;;;;;;; ~ j~t; ~l~bt~~; ~b~;

52
53
1E
50
33
8E
c6
C6
BA
03
EC
EB
DC
EE
BO
£6
58
1F
58
5A
CF

CO
08
06 1000 R 80
0/5 1011 R 08
0360
03

j ~t;~;;;;;;;;;;;;;;;;;

PUSH
PUSH
PUSH
PUSH
XOR
MOV

OX
BX
OS
AX
AX. AX
OS.AX

~g~

+~~p~7~¥~b8~DH

; SET FLAG TO I NO I CATE A I NT OCCURRED
;FLAG INDICATING INT 3 ACTIVE

OX, STATUS_REG
OX,BX
Al,DX
SHORT S + 2
Al, RESET_I NT_REQ
OX,Al
Al,EOI
I tHAOO,AL

;ADO OFFSET
;GET THE STATUS REG
; DELAY
;OR IN BIT TO TURN OF INT REQUESTS
;ClEAR INT REQUEST fROM lANA CARD
;ENABlE GENERAL INTERRUPTS

ADD
IN

00
80

JMP
OR
OUT

20
20

MOV
OUT
POP
POP
POP
POP

AX
OS
BX

;REESTABlISH OS

; RESTORE REGS

OX

IRET
ENOP
...............................................................................

LANA~FRESE:NH'"

06F8
06F8
06FA
06FO
06FE
06FF
0700
0702
0704
0705
0706

B1
B8
50
58
EC
3A
75
F8
C3

0706
0707
0708

F9
C3

04
FFFF

MOV
MOV

PUSH
POP

IN
CMP

C1
02

JNZ
eLe

FRec"" NEAR"""""" ;ci..LLEo'wiTH· HiR' ;'ob' iN' ox"""""'"

CL,04
AX,OFFFFH
AX
AX

AL,OX
AL,Cl
LP1

RET

; LANA PRESENT = NC **NOT PRESENT = CF
;RESET BIT ,SAVE FOR LATER USE
; GARBAGE
;TOGGEl THE INTERFACE
;GET HIR REG
;AL=04=PRESENT
;JMP NOT PRESENT
;AOAPTER PRESENT

LP1:
; LANA NOT PRESENT

0708
0708
070A
070C
070E
070r

STC

RET
ENDP
...............................................................................

LANA_PRESENT?

FRee"" NEAR"',·,',·,,· ;",;'sk' iNTERRuPTS""',·,,·,""",·,'"

E4 21
OC OC
E6 21
C3

RET

;GET IMR
;MAKE SURE INT 2,3 ARE DISABLED
;TURN THEM OFF

~~~~7~~:7~7~ •••• :~~: • • . • • • • . . . • . • . • . • . . • . • . • . . . . • • . • . • . • . . • . . . . • . • • • . • • • • • • • • • •
pC~ERR6R""""

070F
070F
0711

HA.Si(iNT~2~3·'"
IN
AL,lNTAOl
OR
AL.HASK_IRQ2_3
OUT
INTA01,Al

3C 8F
75 OF

PRec'·'· NEAR',·,·,·,·,",·,·,""""',·,"",·,",·,",·,·,·,'

eMP
JNZ

;ANAlOG FAILURE=8F
;JMP NOT ANALOG

;"30'5"
; 0 I SPLAY IT

;"3115"
;OISPLAY IT

0713
0713
0716

83 FB 00
75 05

0718
071B

BE 020B R
EB 66

;ANALOG FAILURE
CMP
BX,O
JNZ
PC_2
; 1ST CARD HAD ANALOG FAilURE
MOV
SI,OFFSET M15
JMP
SHORT P_E3

BE 0268 R
EB 61

;ANALOG FAILURE 2ND CARD
MOV
S I • OFFSET M35
JMP
SHORT
P_E3

; PRIMARY CARD?
;JMP SECONDARY CARD

0710
0710
0720
0722
0722
0725
0727
072A

;OIGITAl FAilURE
83
75
BE
EB

FB 00
05
0180 R
03

CMP

JNZ
HOV
JMP

BX,O
P_E1
S I. OFFSET M1
SHORT P_E2

;WAS IT THE PRIMARY CARD?
;JMP NO
;POINT TO PRIMARY ERROR LIST

Adapter BIOS D-13

1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764

072C
072C

BE 0210 R

HOV

SI,OFfSET M21

072f
072F
0731
0733
0736
0738
073A
0730
073F
0741
0744
0746
0746
074B
0740
074F
0752
0754
0756
0759
075B
0750

3C
74
83
3C
74
83
3C
74
63
3C
74
83
3C
711
83
3C
74
83
3C
74
83

eMP

AL,81H

06

AOO

0760
0762
0764

3C B8
74 1 F
83 c6 06

eHP

0767
0769
076B

3C 89
74 18
83 C6 06

eMP
AOO

SI,6

:SYNC FAIL &: NO GO BIT
; 3X09

076E
0770
0772

3C SA
74 11
63 C6 06

eMP

AL,8Ah
P_E3
SI,6

:HIC TEST OK 3: NEVER GOT GO BIT
; 3X10

0775
0777
0779

3C 8B
74 OA
83 C6 06

eMP

AL,8Bh
P_E3
S! ,6

;GO BIT 3: NO CMD 41
; 3X1 1

077C
077E

3C 8C
74 03

eMP

JZ

AL, BCh
P_E3

;FAILED PRESENCE TEST

0780

83 C6 06

ADD

SI,6

; FELL THRU SHOULD NOT GET HERE

0783
0783

E8 01A4 R

CALL

D I SPLAY

0786
0786
0787
0788
0780
0790
0793
0794

OE
50
C6 06 1005 R 80
AD 1002 R
BA 0362
EE
EE

PUSH
POP
MOV
MOV
MOV
OUT
OUT

CS
BP
FAIL_fLAG,BOH
AL, COUNT
OX,DATA_REG
DX,AL
DX,Al

0795

C3

81
50
C6
82
49
C6
63
42
C6
64
36
C6
65
311
C6
86
20
C6
87
26
c6

06

P E3

AOO
eMP

SI,6

06

ADO
eMP

JZ
06

06

;ROS FAILED
;3X02

;10 MODULE FAILED
;3X03

ADO
eMP

AL,84H
P_E3
SI.6
AL,85H

; RAM FA I LURE
;3X04

JZ

P~E3

;HIC FAILURE
; 3X05

SI,6
AL,86h

AOO
eHP

06

SI,6
AL,83H
P E3

51,6

AOO
eMP

JZ
06

; PROCESSOR ERROR
:3XOl

AL, B2H
P E3

JZ

JZ

P~E3

;+ - 12V FAILURE

AOO
eHP

SI,6
AL,67h
P_E3
SI,6

;DIGITAL WRAP FAILURE
; 3X07

AL, B8h
P_E3
SI,6

;HOST DETECTED HIC FAILURE
;3X08

JZ

JZ
ADO

:3X06

AL,89h
P E3

JZ

JZ
AOD

JZ
AOO

0796
0796
0796
0798
0799
079B
079C

JZ

...... ,.,.,., ........ , ...

REAb~REG""""
8A EO
EC
3A EO
C3

; PO I NT TO SECONOARY ERROR LIST

MOV
IN

3X13

:ERROR 10
"Fl" STOP
; SET THE FA I LED FLAG
; GET ERROR LOG
;2 BYTES TO DATA REGISTER

...... , ..

"

3X12

,"

..

,.,

...

,','

..

,,,'

...

,,"""""""'"

PRo6"""""" NEAR""; ENTEREo' wiTH' BAsE' iio' 1..00' iN' ox""'"
;& DATA TO BE COMPARED IN AL
;GET THE DATA

AH,AL
AL,OX

~~~
AH,AL
;RETURN WITH FLAGS
ENDP
M~b~tH§Hb;; ~~bb;;; M;"~;;;;;;;;;;;;;; ;M~b~~;
~~bh; U~i; b:;;;;;;;;;;;;;

READ_REG

MHt;

079C
079C
079E
07Al

33 CO
BA 0363
EE

XOR

AX, AX

; REMOVE THE RESET BIT IN HI R/ AH=OO

~~¥

g~:~~ST_ltfTR_REG

;REMOVE THE RESET FROM LANA 0

07A2

EB 00

JMP

07A4

MOV

07M
07A7

BO 04
EE
EB 00

OUT
JHP

AL, RESET
DX,AL
SHORT $ + 2

07A9
07AB

32 CO
EE

XOR
OUT

AL,AL
OX,Al

07AC
07AD

C3

; 2ND RESET TO CARD
SHORT $ + 2

; REMOVE RESET

RET

.... ... ENOP.... ..

REMOVE_RESETO
.,.,.,,'

,

REMovE~RESEi-1'"

07AO
CO
0363
03

,.,

,

,.,.,

33
BA
03
EE
EB

00

AOD
OUT
JMP

07B7
07B9
07BA

BO 04
EE
EB 00

OUT
JMP

AL, RESET
DX,AL
SHORT $ + 2

07BC
07BE

32 CO
EE

XOR
OUT

AL,AL
OX,AL

07Bf
07CO

C3

XOR

..

,.,

.... , . , . , . , " , .... , .... , .. , ...

07CO
07CO
07Cl
07C4
07C7
07CA
07CO
07CE
07CF

FA
At
A3
Al
A3
FB
C3

1009
0070
100B
0072

AX,AX
OX, HOST_I NTR_REG
ox, BX
OX,AL
SHORT $ + 2

;AOO OFFSET FOR I/O ADDRESS
; REMOVE THE RESET FROM LANA 1

:RESET LANA 1 2ND TIME

; REMOVE RESET

R
R
R
R

07CF
07CF

FA

eLi
; RESTORE LEVEL 2

0700

Al 1016 R

HOV

D-14 Adapter BIOS

..

,',

..... ,

; LANA ADO 368-368
; REMOVE THE RESET BIT IN HI R/ AH=OO

; 2ND RESET TO CARD

HOV

"

PRoc'" NEAR"""""'" ;REMov[' THE' REsET' FRoM' LANA';"""""

07AD
07AF
07B2
07B4
07B5

MOV

; RESET LANA 0 2ND T I ME

AX,SAVE_1NT2

;GET ORIGINAL OFFSET LVL 2

1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890

0703
0707
07DA
070E

26: A3 0028
A1 1018 R
26: A3 002A

070E
07El
07E5
07E8

A1 lOlA R

07EC
07EF
07Fl
OH6
07F8
07FB
07FD
OHO
07FE
07fF

AO
E6
80
75
AO
E6

; RESTORE IT
; GET SEGMENT
; RESTORE IT

HOV
HOV
HOV

Rll:
; RESTORE LEVEL 3
M,SAVE_INT3
ES: INT3 VECT,AX
AX, SAVel NT3+2
ES: INT3::::VECT+2,AX

HOV
HOV
HOV
HOV

26: A3 002C
101C R
26: A3 002E

A1

;GET ORIGINAL OFFSET LVL 3
; RESTORE IT
; GET SEG
; RESTORE IT

,RESTORE I NT MASKS
1007 R
21
3E 10lD R FC
05
1008 R
Al

AL, SAVE_MASK
INTA01,AL
~~210,PC3

MOV
OUT
eMP

JHZ

AL, SAVE_MASKA
I NTB01, AL

MOV
OUT

;GET ORIGINAL IMR MASK 1ST CHIP
; RESTORE IT
;ISTHISAPC3
; JMP NO
;GET ORIGINAL MASK FOR 2ND INT CHIP
; RESTORE IT

R 12:
FB
e3

5TL

RET

RESTORE_I NT2_3

ENDP
...............................................................................

sAvE~iNT~VECi-'"

07FF

PRoc"""""" NEAR""; sAvE:' f,osi 'vEcToRs' FOR' iNT' 2' &e' 3""'"
; INT VECroRS WILL BE RESTORED ON EXIT
; TO POST

07FF
0803
0806
080A

26: A1 0028
A3 1016 R
26: A1 002A
A3 1018 R

; INT 2 SAVE
MOV
AX, ES: I NT2_ VECT
MOV
SAVE_INT2,AX
MOV
AX, ES: I NT2_VECT.;.2
MOV
SAVE_INT2+2,AX

0800
0811
0814
0818

26: A1 002C
A3 lOlA R
26: AT 002E
A3 101C R

; INT 3 SAVE
MOV
AX, ES: I Nn_VECT
MOV
SAVE_INT3,AX
MOV
AX, ES: I NT3 VECT+2
MOV
SAVE_INT3.;.2,AX

081B
081C

e3

;GET INT 2 OFFSET
; SAVE IT
; GET SEG
;SAVE IT
;GET II'll 3 OFFSET
; SAVE IT
; GET SEG
; SAVE IT

RET

SAVE_1NT_VECT

ENOP
...............................................................................

sE:i-~Bios~;NTS'"

081C

PRoc"""""" NEAR"" ;A' cARb'TEsTEb' oK: sET' oPERAi-i NO' SYSTEM'
; I HTS, 18, 5C, LANAO, LANA 1,13

;MOVE INT 18{ IPL) TO 86 (BASIC)
0810
0820
0824
0827

A1 0060 R
26: A3 0218
A1 0062 R
26: A3 021A

MOV
MOV
MOV
HOV

0828
0831
0833

C7 06 0060 R 0000 E
8C C8
A3 0062 R

MOV
MOV
MOV

0836
0837
0830
083F

FA

eLi

C7 06 0170 R 0000 E
8C C8
A3 0172 R

MOV
HOV
HOV

AX,INT_18
ES: INT86_VECT,M
AX,INT 18 +2
ES: I NT86_VECT+2, AX

;GET ORIGINAL OFFSET FOR INT 18
; MOVE I T TO BAS I C VECTOR 86
; GET OR I G I NAL SEGMENT
;MOV IT TO 86 +2

;NOW POINT 18 TO BIOS HANDLER
INT_18,OFFSET REM_IPl
AX, CS
INT_18+2,AX

;OFFSET OF 810S HANDLER TO 18
; GET CODE SEG
;MOV SEG TO 18

; NOW PO I NT THE SOFT VECTOR (j NT 5C) TO LANA B I OS

LANA_BIOS_1NT,OFFSET MAIN
AX,CS
LANA_BIOS_INT .;. 2,M

;SET INT lEV INFO FOR BIOS
;lANA_X_STATUS BIT 4=O=INT 2,BIT 4=1"'INT 3
; IS LANAO
0842
0848

26: F6 06 04A2 80
74 00

TEST
JZ

084A
084F

80 3E 1012 R 04
74 06

eHP

26: 80 OE 04A2 10

OR

ACT I VE?

BYTE PTR ES: LANA_O_STATS, 80H
; lANAO ACT IVE ?
SBI_2
;JMP NOT ACTIVE

; SET LANA 0

I NT FLAG FOR B I OS

LANA 0 INT,04
SBI_2 -

JZ

; I SLANA 0 ON lEVEL 2 1
;JMP YES, lEAVE BIT 04 = 0

0851
; SET LANA 0 FOR lEVEL 3
0851

BYTE PTR ES:lANA_0_STATS,INT3_FLAG

0857
;ANY IIH lEVEL FOR LANA 11
0857
0850

26: F6 06 04A3 80
74 00

TEST
JZ

085F
0864

80 3E 1013 R 04
74 06

eMP

26: 80 DE 04A3 10

OR

Q86C
086F
0873
0876

A1 OOLIC R

26: A3 04A6

MOV
MOV
MOV
MOV

087A
087F

80 3E 1010 R FC
74 DB

JZ

BYTE PTR ES:LANA_l_STATS,80H
SBI_3A
;JMP NO

; LANA 1 ACT IVE 1

; LEVEL 2 ACT I VE ON lANA 1 ?
;JMP YES ,lEAVE BIT 4=0

JZ

0866
;SET lANA 1 FOR INT 3
0866

BYTE PTR ES:LANA_)_STATS, INT3_FLAG

086C
; MOVE THE HARD FilE I NT VECTOR TO
; lANA RESERVED lO MEMORY
26: A3 04A4
A1 004E R

AX, HARO_F I LE_B I OS
ES:lANA_l_STATS';' 1,AX
AX,HARD FilE BIOS +2
ES: LANA::::l_STATS + 3, AX

;GET
;MOV
; GET
,MOV

OFFSET
TO LANA AREA
CS
TO LANA AREA

; ARE WE ON A PC 3
eMP

;FC=3
;JMP YES

;REDIRECT HARD FilE SOFT INT 13
; CAllS TO 0 I SKETTE AND HARD FilE DONE THRU 13
0881
0887
0889

C7 06 004C R 0000 E
8C C8
A3 004E R

088C
088C
0880

FB
e3

MOV
MOV
MOV

HARD_FILE_BIOS,OfFSET HARD_FILE; IHT13
AX,CS
;
HARD_F I lE_B I OS + 2, AX ; CODE SEG

HANDLER

5T1

RET

088E

SET_BIOS_INTS

088E

Ht~~~fjM~fjb~;;;;;;; ~~bb;;;; Mi~;;;;; ~it~; fjM~;

ENOP

Hbk; j~Pt~g6~; i~b;;;;;;;;;

Adapter BIOS D-15

1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
19;>1
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016

;REDIRECT THE VECTOR TO LANA
;--SAVE BIOS VECTOR lC-088E
0890
0893
0896
069A
0890
08Al

33 CO
A3 1000 R
A2 100F R
26: A1 0070 R
A3 1009 R
26: A1 0072 R
A3 100B R

08A4
08A5
08AB
08AO
08BO
08Bl
08B2

FA
C7 06 0070 R 0'906 R
8e C8
A3 0072 R
F8
C3

XOR
"OV
MOV
MOV
MOV
MOV
MOV

; CLEAR THE TICK COUNT
;CLEAR THE TIME OUT fLAG
;GET 8105 OFfSET FOR 1C
;SAVE IT, PGM WILL RESTORE ON EXIT
;GET THE BIOS CS FOR INT 1C
;SAVE IT

;REDIRECT TIMER TICK VECTOR TO ME

08B2
06B2
08B3
08BA
08BF
08C6
08CS
08ce
DB CO
06CD
08CD
08cr
0801
08D3
0805
08D7
08D9
08DB
08DC
08DC
08DC
06DO
08ED
03E2
08[3
06E5
08E7
08E6
08EB
08ED
08EE
06FO
08F2
08F3
08F4
08F5

08FE
08FE
08FF
0901
0904
0905
0906

STI
RET
SET_UP_ T IME_T I CK

SET_VECT_2_3

26: C7 06 002C 0602 R
26: 8C DE 002E
FB
C3

ES: INT2_VECT.OFFSET INT_2
ES: INT2_VECT + 2.CS

; INT HANDLER FOR LEVEL 2

MOV
MOV

ES: INT3_VECT.OFFSET INT_3
ES: INT3_VECT + 2.CS

; INT HANDLER FOR LEVEL 3

STI

RET
Ht~tbM;;;
OUT
JMP
MOV
OUT
JMP
XOR
OUT
RET
SET_WD_CNT

;;; ~kbb;;; ;Mik;';; ;;;; ;;; ;bH;b~i;~; ~bk;~;~~H;k~&k; ;;;; ;;; ;;;;;
DMA + OCH.AL
SHORT $ + 2
AL.01
OMA + 7.AL
SHORT $ + 2
AL. AL
DMA + 7,Al

; CLEAR F/F •• Al DOSN"T MATTER
; DELAY
;COUNT N-1
;WRITE THE lSB
; DELAY
; MSB
; WORD COUNT 0002

...............................................................................
SPEci
AL' CLR" '" PROC" ., NEAR' ., ., ., ••••••• , ., ••• , •••• , •• , •••••• , ." ••• , ••• , ., , ,
fA
SA
03
EC
24
EB
EE
BA
03
EC
E6
OC
EE
F8
C3

-Cli
MOV
ADO

0363
D3

'"

DC
00

AND
JMP
OUT

0360
03

MOV
AOD

00
80

JMP
OR
OUT

IN

'"
SPEC I Al_ClR

OX, HOST_I NTR_REG

Dx.ax

AL. OX
Al. 000011 008
SHORT $ + 2
OX,Al

;SET HIR

DX.STATUS REG
OX, BX
Al, OX
SHORT $ + 2
AL. RESET I NT REQ
DX,Al
-

;GET STATUS REG
; DELAY
; OR IN BIT TO CLEAR
; CLEAR I NT REQ

; GET CURRENT REG
;MASK OF INT 8ITS.OMA ENABlE.HCR

I NT REQUESTS

RET

ENDP

Hikt~IMk;;;;; ~kbe;;; ~Hk;;;;;;;;;;;;; t~i~L&; ~Ub; ~bk;
33 CO
A3 100D R
A2 100F R
C3

XDR
MOV
MOV
RET
START_TIMER

ENDP

§~b~~~jMk;;;;;; ~hbb;;;; ~Hk;;;;;;;;;;;;
FA
33 CO
A3 1000 R
FB
C3

Cli

~gC
STI

bkb§b; HM; b6~;;;;;;;;

;RESETS TIME COUNT VALUES AND FLAGS
; FLAG TESTED IN TICKS
; CLEAR THE T I ME COUNT
; CLEAR THE FLAG

;bj bi~L&; ~u..b; ~bk; bkb§b; ~j~~; b6~;;;;;;;
;DISABLE INT

~~C~~.AX

;TIMER COUNT TO ZERO

RET

STOP _ T I MER

ENDP

ilbk~l~;;;;;;;;; ~kbb;;;; ~ik;;;;;;;;;;;;;; ~i~bL~b; i~~;+l~~k;

0906
0906
0907

50
1E

PUSH
PUSH

AX
OS

0908
090A

33 CO
8E 06

XOR
MOV

AX. AX
OS,AX

090C

FF 06 100D R

,"e

; I SHOT RF TEST
0910
0915

NEAR

MOV
MOV

SET _ VECT_2_J
OC
00
01
07
00
CO
07

ENDP

PROC

eLi

FA
26: C7 06 0028 06AC R
26: 8C DE 002A

E6
EB
BO
E6
EB
32
E6
C3

;DONT
LET ANY INT IN
TlCK_INT,OFrSET TrCK_IT
;OFFSET Of LANA lC HANDLER
AX. CS
; LANA CS
TICK_INT +2,AX
;lC NOW POINTS TO LANA
;LET INT IN

................................................................................
.... ,', .. ,', .. ,.,', ... , ... , ... , ............... , ....... , ...... , ....... , .. ,
,,",

08F5
08F5
08F7
08FA
08FO
08FE

eLi
MOV
MOV
MOV

60 3E 1006 R 60
75 OA

ilbk; j ~i; ;b;;;;;;;;;

; SAVE SEGMENT REGS

{ESTA8lISH OS

I N PROCESS?

eMP

RF _TEST .80H

JHZ

TlO

;80=SUSPECT HOT RF
;JMP NO HOT RF TEST

; HOT RF TEST -HAS 45 SECONDS EXP I RED
0917
0910

81

77 DC

eMP
JA

Til

; HAS 45 SECONDS EXP I RED
;JMP TiME EXPIRED -SET FLAG

091F

E8 12

3E 1000 R 0333

JMP

SHORT T 12

;EXIT-TIME HAS NOT EXPIRED

0921

TICKS.RF_COUNT

TIO:

0921
0927

81

77 02

; GENERAL T I ME OUT TEST
CMP
TICKS. T_O. CNT
JA
Til

: 30 SEC'S ELASPED?
;JMP YES-SET TIME OUT FLAG

0929

E8 08

JMP

;EXIT-TIME HAS NOT EXPIRED

; T I ME HAS EXP I RED SET FLAG
MOV
T_O_FLAG.80H
MOV
TICKS.AX

;SET TIME OUT INDICATOR
; ZERO THE TICK COUNT

3E 1000 R 0222

0928
092B
0930

C6 06 100F R 80
A3 100D R

~

0933

T12:

0933
0935

80 20
E6 20

0937
0938
0939
093A

H

"

POP
POP
IRET

eF
TICK_ IT

Al. EOI
INTAOO.AL

; ENABLE GENERAL INTERRUPTS

OS

; RESTORE SEGS

AX
ENOP

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;

093A

093A

;EXIT
MOV
OUT

NEAR

32 E4

D-16 Adapter BIOS

AH,AH

; TEST FOR A GROSS T I ME OUR OR I NT
;& RETURN WITH STATUS IN AH
;&:AH=80'" I NT**AH"'06"'T_O**AH=0"'NE I THER

2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039

093C
0941
0943
0946
0947
0947
094C
094E
0950
0951
0951
0954
0955
0955
0955
0956
0957

80 3E lOOF R 80
75 04
80 CC 08

CM'

; JMP NO GROSS T I ME OUT
; SET T I ME OUT FLAG

JNZ

OR
RET

Cl
TOOI1:
80 3E 1000 R 80
74 03
32 E4

CM'

Cl

XOR

RET

I NT _OCCUR?, 80H
TOOl2
AH,AH

OR

AH,80H

JZ

; JMP I NT OCCUR
; AH=OO

TOOI2:
80 CC 80

Cl

; SET I NT FLAG
; AH=80

RET

TIME OUT OR INT?

ENDP
...............................................................................

WR'r~REG·

"

, • " , , , , PROC' , , , , , , , " , 'NEAR' , , , ; ENTERED' wi 'rH' I/o' ADD' 'I N' ox; , DATA' iN' At..

OUT

Cl

OX, AL

RET

WRT _REG ENDP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

0957

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ENDS
START
TITLE

NET810S MAIN
NETB I OS. ASM
tlETBIOS MAltl SOURCE.

MODULE: NETWORK
COMPONENT : NETWORK B I OS
NETBIOS IS THE NETWORK BIOS. IT RESIDES IN A ROM.
NETWORK SERVICES ARE THEtl
PROVIDED VIA THE INT NET INT
SERVICES PROVIDED ARE:
RESET
ADAPTER STATUS
CANCEL
ADD_NAME
ADD_GROUP _NAME
DELETE tlAME
CALL L.I STEN
HANG UP
SENDCHA I N SEND
RECEIVE
RECE IVE_ANY
SESSION STATUS

-

RESET AND RECONFIGURE NETWORK ADAPTER CARD
RECEIVE LOCAL OR REMOTE ADAPTER STATUS
CANCEL THE COMMAND STARTED BY TH I S NCB
ADD NAME TO NAME TABLE
ADD A GROUP NAME TO NAME TABLE
DELETE NAME FROM NAME TABLE
OPEN A SESSION WITH A REMOTE OR LOCAL NAME
WAI T FOR tlAME/ANYONE TO OPEN SESSION TO YOU
CLOSE A SESSION WITH THE GIVEN NAME
SEND DATA THROUGH A SPEC I F I C SESS I ON
SEND TWO SEPARATE BUFFERS
RECEIVE DATA FROM A SPECIFIC SESSION
,
RECEIVE DATA FROM ANY SESSION SENDING TO YOU:
RECEIVE STATUS OF ALL ACTIVE SESSIONS
:
FOR YOUR NAME
SEND_DATAGRAM
- SEND DATAGRAM TO tlAME
RECEIVE_DATAGRAM
- RECEIVE DATAGRAM FROM NAME
SEND BROADCAST DATAGRAM
- SEND BROADCAST DATAGRAM TO
EVERYONE
RECEIVE_BROAOCAST DATAGRAM
- RECEIVE BROADCAST DATAGRAM FROM
ANYONE

THE FOLLWING CONVENTIONS SHOULD BE FOLLOWED:

____________ l ___ ~~~~:: __ l __________________________________________ _
ES:

ex

CONST: ADDRESS OF NCB TO PROCESS
RESULT
: NETB I OS RETURN CODE

AL

NETBIOS.LIB CONTAINS THE NETBIOS INTERFACE EQUATES AND STRUCTURES
LANAS.INC CONTAINS THE LANA INTERFACE EQUATES AND STRUCTURES

0000

, CODE'

NETWORK
ASSUME
ASSUME
ASSUME
ASSUME

CS: NETWORK
OS: tlOTH I NG
SS:tlOfHING
ES:tlOTHING

EXTRN
EXTRN
EXTRN

LANA 0 HNDLR
NEAR
PROGRAM_IO_CHUNK
NEAR
LANA 1 HNDLR
NEAR

;
;
;

PUBL I C
PUBLIC
PUBliC
PUBLIC

g~~NSTART_UP

; COMMON RTN TO STARTUP DMA XfER'S
I NT 5C ENTRY PO I NT
CHECK TO SHARE DMA WI TH HARD FILE
CHECK I F REMOTE I PL REQUESTED

HARD FILE
REM_IPL

NEAR
NEAR
NEAR
NEAR

LANA O'S INTERRUPT HANDLER
LANA 0'5 CODE TO DO PROGRAM
LANA 1 's INTERRUPT HANDLER

I/O

• LIST
'" DOFF

NCBNOT_DONE?

EQU

OFFH

'" DOFF

ALL_B I TS

EQU

OFfH

CONFIG CPLT TO
RESET_CPLT_TO
CANCEL CPLT TO
ORE LIMIT GO_LIMIT
DMA LIMIT
HC_LIMIT
W_TI L_ACC

EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU

OOOOH
OOOOH
OOOOH
OOOOH
OOOOH
OOOOH
00 DOH
OOOOH

ENABLE_I NT2
ENABLE_INT3
ENABLE INT9
I NTA01I NTBOl
1NTR_2
INTR_3
PC_I D_ADD

OFBH
OF7H
OFDH
021H
OA1H
028H
02CH

:=

0000

= 0000
'" 0000
'" 0000
'" 0000
:= 0000
'" 0000
'" 0000

NCB I S NOT DONE YET

HOW
HOW
HOW
HOW
HOW
HOW

LONG
LONG
LONG
LONG
LONG
LONG

TO
TO
TO
TO
TO
TO

WAIT
WA I T
WAIT
WAIT
WAIT
WA I T

ROS_CODE

'" 9080
'" 9180

DEV BUSY WA I T
DEV::::BUSY::::POST

EQU
EQU

9080H

= 0013

HARD_I NT
HARD_' NT8

EQU
EQU

013H
HARD_! NT*4

DISK I/O
OffSET fOR THIS

INT_'8H

EQU

""

ROM BASIC

OOFB
DOF7
OOFO
0021

'"
'"
'"
'"
'"

0028
002C
DOOE
OOFC
FFFF

:=

004C

'" 0018

PCl

DE"

OfCH
OfffFH

RESET TO COMPLETE
CANCEL TO COMPLETE
DATA REGISTER
GO BIT TO CLEAR
DMA TO COMPLETE
HG TO BE SET

USE fOR I MR TO ENABLE I NT REQ 2
USE TO ENABLE I NT 3
FOR I NTERUPT 2 NEED TO SET I NT 9
OMA CHIP 1
DMA CHIP 2
PHYSICAL ADDRESS FOR INT VECTOR 2 (A*4)
PhYS I CAL ADDRESS fOR I NT VRCTOR 3 (B*4)
OfFSET FOR PC 10
PC3 10
PO I "ITER I "ITO ROS

EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU

'"
'"
'"
'"

= OOAl

FOR
FOR
FOR
fOR
FOR
FOR

9180H
INTERUPT

Adapter BIOS D-17

PHYSICAL ADORES OF

INT lBH

'" 0060
'" 0086
'" 0218

PHYSICAL ADORES OF INT 86H TO STORE VALUE OF

== 0000

SEGMENT PO I liTER TO LOW MEMORY
; REMOTE

0000
0001

2A
49 42 40 4E 45,54

I PL VALUES

LOCAL_STAT
SERVER_NAME
TH RPLS

DB
DB

LST_4_6YTE
MEMORY SIZE
BOOT_LOCH

EOU
EOU
DO

TlK

OW

USE TO GET LOCAL ADAPTER STATUS
USE BY RPL ROUTIOHE TO GET SESSION STABLISHEO WI

"I BMNETBOOT"

42 41' 41' 54
'" 0013
'" 0013
OOOB
00 7C 00 00
OOOf 0400

;
;

0011
0019
0021

ff
FF
ff
1'1'
2C
OA

0029

fF

0031

FF
lA

FF
0039
0041
0049

FF
fF
2A
2A
FF
FF
1'1'

0059
0061

FF
ff
FF
FF

ff
0069
0071

FF
FF
FF

fF fF Ff f f FF

0013H
0013H
00007COOH
0400H

;
;

LOCATION FOR MEMORY SIZE IN K-BYTES
LOCATION WHERE TO LOAO BOOT RECORD
MULTIPLIER FOR 11< BYTES
-

VALID COMMANDS TABLE OFFH INDICATES NOT VALID COMMAND
ANY OTHER VALUE INDICATES VALID COMMANO
THIS VALUE IS USED TO INOICATE HOW MUCH OF THE NCB NEEDS
BE SENT OVER TO LANA.

COMMAI'IO_ TBL

DB

OFFH,

OFFH.

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH

f f 1'1' f f fF

COMMAND_08

DB

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH

03 fF OA OA

COMMANO_TO

44,

44,

3,

OFFH,

10,

w,

TO,

16

FF FF FF FF

COMMANO_18

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH

OA lA FF fF

COMMAND_20

FF FF FF FF

COMMANO_28

2C lA 2A 00

COMMAND_3D

FF FF Ff FF

COMMANO_38

FF FF FF FF

COMMAND_40

ff
ff
FF
2C
10
FF
FF
lA
FF
FF
FF
2A
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF

DB

DB

26,

26,

10,

26,

OFFH,

OFFH,

OFFH,

OFFH

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH

42,

42,

44,

26,

42,

0,

42,

OFFH

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH

OFfll,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH

OFFH,

OFFH,

FF FF FF FF

COMMAND_48

OFFIl,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH

FF FF FF Ff

COMMAND_50

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH

FF fF FF FF

COMMAND_58

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH

FF fF FF FF

COMMAND_60

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH

1'1' FF FF FF FF
1'1'
FF FF 1'1' FF 1'1'
FF
~~ FF 1'1' 1'1' Ff

COMMANO_66

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OfFH,

OFFH

COMMAND_70

0,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OfFH,

OFFH,

OFFH

DB

1'1' fF
0079
0081
0069

1'1'
FF
00
fF
~~

COMMAND_7B

DB

,

5

0099
OOAl
00A9
OOBl
00B9
OOCl
00C9
0001
0009
OOEl
00E9

FF
1'1'
fF
FF
2C
OA
Ff
1'1'
lA
FF
Ff
FF
2A
2A
FF
FF

1'1'
FF
FF
FF
FF
FF
FF
FF

OOFl

1'1'
FF

00F9

FF
Ff
fF
fF
FF
FF

0101
OT09

FF
1'1'
1'1'
FF
2C
10
ff
FF
lA
fF
FF
FF
2A

7
F

o

9
0091

FF f f 1'1' FF

COMMAND_80

DB

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFfH,

OFFH,

OFFH

DB

OFFH,

OFFIl,

OFFH,

OFFH,

OFFIl,

OFFH,

OFFH,

OFFH

44,

44,

3,

OFFH,

w,

10,

10,

16

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFfH,

OFFH

FF FF FF 1'1'

COMMAND_B8

03 Ff OA OA

COMMAND_90

ff Ff FF FF

COMMANO_98

OA lA FF f f

COMMAND_AD

26,

26,

10,

26,

OFFH,

OFFH,

OFFH,

OFFH

fF FF FF FF

COMMAND_A8

OFFH,

OFFH,

OFFH,

OFFIl,

OFFH,

OFFH,

OFFH,

OFFH

fF 1A 2A FF

COMMAND_BO

42,

42,

OFFH,

26,

42,

OFFH,

42,

OFFH

fF FF FF FF

COMMAND_B8

DB

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH

FF FF Ff fF

COMMAND_CO

DB

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFfH,

OFFH

FF 1'1' Ff fF

COMMAND_C8

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH

fF FF FF FF

COMMAND_DO

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH

FF FF Ff FF

COMMAND_DB

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

OfFH,

OFFH

FF FF FF FF

COMMAND_EO

OFFH,

OfFH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH,

FF ff FF FF

COMMAND_E8

DB

OFFH,

OFFH,

OFfH,

OFFH,

OFFH,

OFFH,

OFFH,

OFFH

fF fF FF FF

COMMAND_FO

DB

OfFH,

OFFH,

OFFH,

OFFH"

OfFH,

OFFH,

OFFH,

OFFH

FF FF FF FF

COMMAND_FF

DB

OFFH,

OFFH,

OFFH,

OfFH,

OFFH,

OFFH,

OFFH,

OFFH

DB

1'1'
FF
FF
fF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF

DB

; MAIN
HANDLES

INT NET_' NT

INSTRUCTIONS.

THE FOLLWING CONVENTIONS SHOULD BE FOLLOWED:
_~:~~:~:~ ___ + ___ ~??:::

ES: BX
AL

:
:

__ l _____________________________ _____________ _

CONST: ADDRESS OF NCB TO PROCESS
RESULT
: NETB I OS RETURN CODE:
:
SEE NElBIOS INTERFACE SPEC

INTERRUPTS WilL BE MASKED BY EXECUTING THE

0111
0112
0113
0114
0115

lE
51
52
56
57

D-18 Adapter BIOS

INT

INSTRUCTION.

; It; NETBIOS MA I N HANDLER ENTRY

MAIN

0111

SAVE
PUSH
PUSH
PUSH
PUSH
PUSH

INT



os

ex

ox

Sl
DI

;

FC

ESTABLISH GLOBAL ASSUMPTIONS

0116
0117
011A

B8 0040
8E 08

011C

B4 00

MOV

011E
0123

26: C6 41 01 fF'
26: C6 41 31 FF

MOV
MOV

CLO
MOV

STRING GO UP
POINT TO lO_MEP'CSEG LATER
OS PTS TO LANA lO_MEM BYTES

MOV

; DEFAULT RETURN CODE IS NCBGOOD_RET?

;

AH. NCBGOOD_RET?

fLAG NCB AS "NOT DONE"
ES: BYTE PTR [BXj. NCB_RETCODE. NCBNor_DONE?
ES:BYTE PTR [BXj.NC8_CMO_CPlT.NCBNOT_00NE?

; CHECK FOR ANY I,....EDIATE ERRORS (lie GET ADAPTOR PARMS)
0128
012B

26: 8A Of
E8 01A5 R

012E
0131
0133
0134

80 FC 00
14 04

0137
013A
013C
013f

80
75
[8
E8

F9 32
06
028[ R
511 90

0142
0145
0147
014A

80
15
E8
E8

F9 35
06
03CB R
49 90

0140
01110
0150
0152
0155

80 F9 70
75 06
E8 08BA R
EB 3E 90

0158

E8 036B R

MOV
CAll

Cl, ES: [BXI. NCB_COMMAND
CHK_STATE

CMP
JE

AH. NCBGOOO_RET?
CONFIG?

JMP

BIOS_EXIT

; SAVE COMMAND VALUE FOR LATER USE
; INITIALIZE CARD IF IT NEEDS TO BE ,AND
; CHECK FOR ERRORS
;010 EVERY THING GO OK
; YES GO AND PERFORM COMMAND
; ENABLE I NTERUPTS
; LEAVE AND REPORT ERROR

CONF I G?:

CMP
JNE
CAll
JMP

Cl. NCBRESET
CANCEL?
CONFIG
BIOS_EXIT

; I SIT A RESET COMMAND
; NO GO AND CHECK FOR CANCEL
;GO AND RESET ANO RECONFIGURE CARD
; DONE WITH RESET THEN LEAVE

CANCEL? :

CMP
JNE
CAll
JMP

NO_CHK:

F.

STI

ES 5f 90

; "CANCEL" CMD?

;

Cl, NCBCANCEl
RDRCT_DIO
CANCEl_CMD
BIOS_EXIT

; I SIT A CANCEL COMMAND
;NO GO AND CHECK fOR UNLINK COMMAND
; PERFORM CANCEL COMMAND
;DONE WITH CANCEL THEN LEAVE

IS IT CHANGE DISK I/O REDIRECTION

RDRCT_DIO:
CMP
JNE
CAll
JMP

;

; I SIT UNLI NK COMMAND
; NO GO NAO CHECK FOR OTHER COMMANDS
; PERFORM UNLI NK COMMAND
;DONE WITH UNLINK THEN LEAVE

IT IS A NORMAL CMD.
; GO AND PERFORM ANY OF THE OTHER COMMANDS

; ANY ERRORS?
015B
015E

80 FC 00
75 35

BIOS_CHK:

CMP
JNE
;

0160
0163

F6 Cl 80
75 38

;ANY IMMEDIATE ERRORS TO REPORT
; GO REPORT ERROR AND LEAVE

NOPE.

TEST
JNZ

CL,NCSNO_WAIT
BIOS_EXITl

; YES.
0165
0168
016A

IS IT A WAIT CASE?

B8 9080
CD 15

MOV

F.

STI

WEll THEN...

AX, DEV_BUSY_HAI T

15M

INT

; IS IT A NO_WAIT COMMAND
; IF IT IS LEAVf.

WAIT.
; INDICATE THAT WE ARE GOING INTO A WAIT LOOP
ENABLE I NTERRUPTS I N CASE THEY ARE OFF

; CHECK I F ANY ERRORS OCCURED
; WH I LE WAT I NG FOR COMMAND TO COMPLETE
016B
0160
016f

8A 04
A8 04
14 DE

NCB_DONE?: ~~~T

. . 40

MOV
TEST
JZ
PUSH

0171
0173
0175
0171
0178
017B
011C
011E

5A

011F
011F
0184

26: 80 7F 31 FF
14 E5

0186
018A

26: 8A 67 01
EB 09 90

A8 02
74 16

52
83 C2 02
EC
8A EO

0180

AL,DS:ISli
AL, LANA_HARD_ERR
NCB_DONE1?

JZ

AH, NCBSYS_ERR?
AL, LANA_HARO_ERRl
CHK_EXIT_ERR
OX
OX.OR
AL,DX
AH,AL
OX

ADD

IN
MOV
POP

; GET STATUS FOR LANA_X (X=O OR 1)
;010 NAY HARDWARE ERRORS OCCUR
; NO ERROR GO AND KEEP WA I T I NG FOR
; COMMAND TO COMPLETE
; ASSUME A TIMEOUT ERROR
; THEN CHECK ERROR REPORTED fROM LANA
;NO ERROR REPORT THEN IT WAS A TIMEOUT ERROR
;POINT TO DATA REGISTER
; AND GET VALUE OF ERROR REPORTED BY LANA

NCB_DONE1? :
CMP
JE
MOV
JMP

CHK_EX IT_ERR:

50

0180
018E
0191
0193
0194

F.
58

0195
0199

26: 88 67 31
26: 88 67 01

BIOS_EXIT: MOV
MOV

ES:[BX].NCB_CMO_CPLT,AH
E5: I BX]. NCB_RETCODE,AH

; UPDATE COMMAND COMPLETED FIELD AND
; UPDATE RETURN CODE FIELD

0190

8A C4

BIOS_EXIT1: MOV

AL,AH

;MAKE SURE AL CONTAINS VALUE FOR RETURN CODE

PUSH
MOV
INT

B8 9180
CO 15

AX

AX,OEV_BUSY_POST

15M

STI
POP

; ALL

; INDICATE THAT WE ARE COMMING OUT OF WAIT LOOP
; MAKE SURE I NTERRUPS ARE ENABLE

AX
~ONE.

UPDATE RETURN CODE

; RETURN
019F
01AO
01Al
01A2
01A3

"

1F

RESTORE
POP
POP
POP
POP
POP

01A4

CF

IRET

01A5

5E
5A
59

MAIN


01
51
OX
CX

OS

END.

ENDP

Adapter BIOS D-19

CHICSTATE
CHECKS FOR ANY IMMEDIATELY D[TECTABLE PROBLEMS.
TH[ FOLLWI NG COliVENT IONS SHOULD BE fOLLOWED:
_~:~~~~:~

___ l ___ ~:::~~ __ L_______________ ~~~~: _____________________ _
CONST
CONST
CONST
R[SUL T
R[SUL T
RESULT
DESTROY

OS

ES:BX

eL
OX

01
DS:SI

AL

VAR

AM

:
:
:
:
:
:
:
:
:
:
:
:

LO_MEM_SEG
NCB 0
NCB_COMMAND
LANA'S BASE PORT (LANA_X_SR) 'I
LANA X HIR PORT 0
LANA-X-STATUS @
INTERNAL
NETBIOS RETURN CODE:
NCBLANA_NUM?
NCBSYS ERR?
NCB LANA LOCKED?
NCBBA03:MO?

INTERRUPTS SHOULD BE MASKED ON ENTRY.

01A5

01A5
OlAA
01AC
OlAE

26: 80 7F 30 01
76 05
B4 23
E9 02BO R

OlBl
01 B3
01B6
01 B9
01BO
01CO
01C3
01C6

74
BA
BF
80
EB
BA
BF
80

eMP
JNA
MOV
JMP

;
00
0360
0363
36 00A2
4C 90
0368
036B
36 00A3

SET_LANA:

YES.

F6
74
E9
F6
75
B4
E9
F6
75
50
B8
8E
C7
8C
A3
58
EB

04 01
03
028C R
04 80
05
23
02BO R
04 10
15

01F6
01 F7
01 FA
01 FC
0202
0204
0207
0208

50
88
8E
C7
8C
A3
58
EB

0208
020E
0210
0213
0215
0217
021A
0210
021 F
0220
0223
0225
022B
0220
0230
0231

F6
75
f6
75
B4
E9
F6
75
50
88
8E
C7
8C
A3
58
EB

0234
0235
0238
023A
0240
0242
0245
0246

50
B8
8E
C7
8C
A3
58
EB

0249
024B
0240
024F

E4
24
EB
E6

0251
0252
0253
0254
0257
0259
0?5A
0250
025f
0260
0261
0263
0265
0267
0269
026B
0260

1E
53
50
B8 FFFF
8E 08
58
BS OOOE
8A 07
58
IF
3C FC
75 13
E4 A1
24 FD
[8 00
E6 Al
EB 09 90

GET LANA'S BASE PORT,

HIR PORT, & STATUS BYTE @'S
; (S IT LANA 1 GO AND SET UP
; LANA_O GET BASE ADDRESS=360H
; LANA_O HI R AOORESS=363H
;POINT TO LANA_O STATUS
; GO AND SEE I f i T I S PRESENT

JE
MOV
MOV

LEA

JMP

;~~~=~ ef~ :~g~E~~~~~~~

I S_LANA_': MOV
MOV

LEA
;

01CA
01CO
OlCF
0102
0105
0107
0109
01DC
OlOF
01 El
01 E2
01E5
01 E7
OlEO
01 EF
01 F2
01F3

ES: BYTE PTR {BX]. NCB_LANA_NUM, 01 H ; CHECK fOR VAll 0 LANA NUMBER
SET_LANA
;VALID LANA GO AND SETUP
AH, NCBLANA_NUM?
; BAD LANA NUMBER
CHK_EXI T ;LEAVE AND REPORT ERROR

PRESENT1?:

TEST
JZ
JMP

CHK P INIT:

TEST
JNZ
MOV
JMP

L 1_1 RQ:

;POINT TO LANA_' STATUS

I NSURE LANA

TEST
JNZ

I S PRESENT

I N MACH I NE

BYTE PTR DS:{SIJ,LANA_INIT iHAS LANA_l BEEN INITIALIZE
CHK_P_INIT
;NO,THEN GO AND SEE IF IT IS PRESENT
C_ERR?
; PRESENT AND I NIT I AL I ZE, GO AND CHECK fOR ERRORS
BYTE PTR OS:] SI ], LANA_PRESENT; IS LANA_' PRESENT
Ll IRQ
;YES THEN GO AND CHECK INTERRUPT LEVEL
AH:-NCBLANA_NUM?
; BAD LANA NUMBER ERROR
CHK_EXI T ; LEAVE AND REPORT ERROR
BYTE PTR DS:[SIJ,LANA_IRQ
;IS THIS LANA RUNNING USING INTERRUPT LEVEL 2
~~_IRQ3
;NO THEN IT MUST BE THREE

PUSH

MOV

0000
08
06 0028 0000 E
C8
002A

MOV
MOV
MOV
MOV
PDP
JMP

54 90
Ll_IRQ3:
0000
08
06 002C 0000 E
C8
002E
66 90
04 01
7C
04 80
05
23
02BD R
04 10
15

LO_IRQ:

0000
08
06 0028 0000 E
C8
002A
16 90
LO_I RQ3:
0000
08
06 002C 0000 E
C8
002E
28 90

E 12:

~~2

:GO AND ENABLE HARDWARE

INTERRUPT 2

PUSH
MOV
MOV
MOV
MOY
MOV
POP
JMP

AX

TEST
JNZ
TEST
JNZ
MOY
JMP
TEST
JNZ
PUSH
MOV
MOV
MOV
MOV
MOY
POP
JMP

BYTE PTR DS:\SI J,LANA_INIT ;HAS LANA_O BEEN INITIALIZE
C_ERR?
; PRESENT AND I NIT IALI ZE, GO AND CHECK fOR ERRORS
BYTE PTR OS: [S I ], LANA_PRESENT ; IS LANA_O PRESENT
lO_IRQ
.
;YES THEN GO AND CHECK INTERRUPT LEVEL
AH, NCBLANA_NUM?
; BAD LANA NUMBER ERROR
CHK EXIT
;lEAVE AND REPORT ERROR
BYTE PTR DS:]SIJ,LANA_IRQ
;IS THIS LANA RUNNING USING INTERRUPT LEVEL 2
LO_I RQ3
; NO THEN I T MUST BE THREE

PUSH
MOV
MOV
MOV
MOV
MOY
POP
JMP

AX
AX, I NTERRUPT VECTOR SEGMENT
OS,AX
; POINT TO LOW MEMORY SEGMENT
DS:WORD PTR INTR_3,OFfSET LANA_O_HNOLR; POINT TO INTERRUPT HANDLER FOR LANA_O
AX,CS
OS:WORO PTR lNTR_3+2,AX
;SEGMENT OF INTERRUPT HANDLER
AX
EI3
;CO NAD ENABLE HARDWARE INTERRUPT 3

;
21
FB
00
21

AX, INTERRUPT VECTOR SEGMENT;
; PO I NT TO LOW MEMORY SEGMENT
OS, AX
OS:WORO PTR INTR_2,OFFSET LANA_1_HNOLR;POINT TO IIHERRUPT HANDLER FOR LANA_1
AX,CS
;
; SEGMENT OF I NTERRUPT HANDLER
OS: WORD PTR I NTR_2+2, AX

AX, I NTERRUPT_YECTOR_SEGMENT;
DS,AX
; POINT TO LOW MEMORY SEGMENT
DS:WORD PTR INTR_3,OFFSET LANA_'_HNDlR;POINT TO INTERRUPT HANDLER FOR LANA_'
AX,CS
os: INTR_3+2,AX
;SEGMENT OF INTERRUPT HANDLER
AX

E 13

; GO NAO ENABLE HARDWARE 1NTERRUPT 3

AX

AX,INTERRUPT_VECTOR_SEGMENT
DS,AX
;POINT TO LOW MEMORY SEGMENT
DS;WORO PTR INTR_2,OFFSET LANA_O_HNDLR;POINT TO INTERRUPT HANDLER FOR LANA_O
AX, CS
OS: INTR_2+2,AX
;SEGMENT Of INTERRUPT HANDLER
AX
EI2
;GO AND ENABLE HARDWARE !NTERRUPT 2

ENABLE

IN
AND
JMP

OUT
PUSH
PUSH
PUSH
MOV
MOV
PDP
MOV
MOV
PDP
POP
eMP
JNZ

IN
AND
JMP

OUT
JMP

D-20 Adapter BIOS

Al.INTA01
AL, ENABLE_I NT2

$+2
INTA01,AL

;ENABLE HARWARE

INTERRUPT 2

OS
BX
AX
AX, ROS CODE
OS,AX AX
8X, PC_I D_ADD
AL,] BX]
BX

; PO I NT TO ROS CODE AREA
; CHECK WHAT PC ARE WE RUNN! NG ON

OS
AL, PC3
ENABLE GO I NT
AL, I NTB01AL, ENABLE_I NT9

; IS IT A pe3
;NO , THEN GO AND ENABLE GO

$+2
INTB01,AL
ENABLE_GO_I NT

; ENABLE INTERRUPT 9
;GO AND ENABLE GO INTERRUPT

INTERRUPT

0270
0272
0274
0276
0278
0278
0279
027C
027E
027F

E4
24
ED
E6

21
F7
00
21

50
B8 0040
8E 08

"

E13:

IN

AL,lNrAOl
AL, EN.ABLE_I NT3

JMP
OUT

$'2

AND

ENABlE_GO_1 NT:
PUSH
MOY
MOY
POP

80 OC 01
87 fA

XCHG

Ee

IN
JMP

028C
028E
0290
0292
0294
0296
0298
0299
029C
0290
029f
02AO

8A 04
A8 04

EB 00
OC 01
EE
87 07

OR
OUT
XCHG
;
C_ERR?:

"

B4 40
A8 02
74 25

52
83 C2 02

EC
8A EO

5A
EB 18 90

A8
74
B4
EB

40
05
21
12 90

INTERRUPT 3

lOCKED?:

TEST
JZ

;
BAD_CMO?:

; ENABLE GO

INTERRUPT

Al,DS:[Slj
Al, lANA_HARD_ERR
lOCKED?
AH, NCBSYS ERR?
Al, LANA_HARD_ERRl
CHK EXI T
OX DX, DR
Al, OX
AH,Al

GET lANA_X_STATUS BYTE
TEST FOR ANY HAROAWARE ERRORS
I F NOT, CHK OTHER TH I NGS
ASSUME A TIMEOUT ERROR
CHECK FOR fATAL ERROR REPORTED BY LANA
NO, THEN IT WAS A TIMEOUT
POINT TO DA1A REGISHR
GET VALUE fOR FATAL ERROR

OX
CHK_EXI T

LEAVE AND REPORT ERROR

Al, lANA_lOCKED
BAD CMD?
AH, NCBlANA_lOCKED?
CHK_EX I T

CHECK fOR I NTERFACE BUSY
IF N01, CHK CMD CODE
I NTERFACE BUSY
lEAVE AND REPORT ERROR

VAL I 0 NETB I OS COMMAND?

02AC
02AC
02AO
02Af
0284
0286

8A Cl
2E: 801EOOll R
2E: 07
3C 00

0288
0289
028B

70 02
B4 03

BAO_CMD:

SAVE
PUSH
MOY
LEA
XLAT
eMP
RESTORE
POP
JGE
MOV

0280

e3

CHK_EXI T:

RET

50

;POINT TO HIll.

$<2
Al,GO
DX,AL
OX,OI

IS TH I S LANA lOCKED?

MOY
JMP

53

ol,OX
AL,OX

HAS TH I S lANA HAD A HARDWARE ERROR?

MOV
TEST
JZ
MOY
TEST
JZ
PUSH
AOO
IN
MOY
POP
JMP
;

02A3
02A5
02A7
02A9

; EN.ABLE HATDWARE

BYTE PTR OS:[SI},LANA_INIT ;S[T UP FLAG fOR LANA PRESENT AND INIT1ALlZED

0282
0284
0285
0287
0289
028A

74

INTA01,AL
AX
AX, lO MEM SEG
OS,A'>C
AX

<8X>
8X
AL, Cl
BX, CS: COMMAND_ TBl
CS: COMMAND TBl
AL,O
<8X>
BX
CHK EXI T
AH, NCBBAD_ CMO?

GET COMMAND VALUE
POINT TO COMMAND TABLE
VAL I 0 COMMAND
;
;

LEAVE AND CONT I NUE PROCESS I NG COMMAND
REPORT BAD COMMAND ERROR

CHK_STATE

02BE

RECONfiGURES THE SPECIFIED LANA.

GIVES LANA UP TO

35

SECONDS TO COMPLETE.

THE FOll\ollNG CONVENTIONS SHOULD BE FOLLOWED:

____________ l ___ ~::::: __ l----- ________________________ -------------OS
DS:SI
OX
DI
Al
AH

CONST
:
CONST
:
CONST
:
CONST
:
DES1ROY ,
VAR

lO MEM SEG
lANA X~STATUS @
lANATS~BASE PORT (LANA_X_SR) @
lANA X HIll. PORT @
INTERNAL
NETB I OS RETURN CODE:
NCBSYS_ERR?

INTERRUPTS SHOULD BE UNMASKED ON ENTRY.

CONFt G

02BE

NEAR
SAVE
PUSH
PUSH
PUSH
PUSH
PUSH

02BE
028f
02CO
02C1
02C2

"

02C3

E8 062C R

02C6
02C9
02CB

80 FC 00

eMP

74 03
E9 0365 R

JZ

02CE
0200
0201
0203
0205
0207
0208
020A
020C
0200

87 FA

XCHG

020f
02EO
02E3
02E5
02E6
02EA
Q2EC

52

06

57
52

53

JMP



ex
ES
01

ox

BX

GET_INTERFACE

TRY TO GET HOLD OF LANA_X

AH, NCBGOOD RET?
SPIO lANA ~
CONFTG_EXI

DID WE GET HOLD OF INTERfACE
If SO THEN CONTINUE WITH RESET COMMAND
LEAVE AND REPORT ERROR

02CE
;

Ee
24
OC
EB
EE
OC
EB
EE
87

C6
08
00
00
00
07

'"

ANO
OR
JMP
OUT
OR
JMP
OUT
XGHG
;

83 C2 01
BO 05
EE
26: SA 47 02
EB 00
EE

SETUP FOR PROGRAMMED

1/0 FROM LANA

01, DX
AL, OX
AL, All. B I TS- I 0 METHOD-DO BIT -G t
Al, PC_TO~LANA -

;
;
;

POIT TO HIR
GET CURRENT I NTERFACE SETUP
MASK OFf AREA OF INTEREST
FIRST SET DIRECTION

;

THEN SET

$"

DX,Al
Al, PROGRAMMEO_I 0

I/O METHOD

$"

OX,Al
DX,OI

SETUP PR FOR "RE_CONFIG" PRIMARY CMD

SAVE
PUSH
ADO
MOV
OUT
MOV
JMP
OUT


OX
OX, PR
Al, RE_CONF I G
OX, AL
AL, ES: BYTE PTR
$+2
DX,Al

PO I NT TO PARAMETERS REG I STEil.
CMD CODE

r BX]. NCB_lSN

NUMBER OF SESS IONS

Adapter BIOS D-21

02EO
02Fl
02F3
02F4
02F6
02F7
02Fg
02FA
02FC
02FD
02FF

MOV

26: 8A 47 03
£600
EE
fB 00
H
EB 00
H
EB 00
H
EB 00
H

0300

,.

JMP
OUT
JMP
OUT
JMP
OUT
JMP
OUT
JMP
OUT
RESTORE
POP

0301
0303
0305

BO 01
EB 00
H

JMP
OUT

AL. ES: BYTE PTR [BXI. NCB_NUM
$+2
OX,AL
$+2
DX,AL
$+2
OX,AL
$+2
DX,AL
$+2
OX,AL

OX

; NUMBER Of CB' S

PAD TO 7·8YTES fULL

; SAY GO

MOV

AL,GO
$+2
OX,AL

; TELL LANA THAT WE HAVE A COMMAND
; READY FOR EXECUT I ON

; WA I T ON COMMAND ACCEPTED
0306
0309
030A
030C
030E
0310
0313

69 0000

MOV

CX, W_ T I L_ACC

EC

IN
TEST
JZ
LOOP
CALL
JMP

AL,OX
AL,GO
CMD_ACC
WAIT ACC
CAT ASTROPH I C_ERROR
CONFIG_EXIT

AS 01

74
E2
E8
E6

08
F9
05A6 R
3A 90

; INDICATE WAIT TIMEOUT
;WAIT FOR GO TO CLEAR INDICATING CMO ACCEPTED
; I F TIME OUT THEN WE MUST HAVE HARDWARE ERROR
; LEAVE AND REPORT ERROR

; CLEAR HCR
0316
0318
0319
0316
0310
031E

87 FA

0320

66 OOOA

CMO_ACC:

EC

24 FO
EB 00
H
87 07

XCHG
IN
ANO
JMP
OUT
XGHG

OI,OX
AL,DX
AL, ALL B I TS-HCR
$+2
DX,AL
OX,OI

;POINT TO HIR
; RELEASE INTERfACE

; NOW WAIT UP TO A WHILE FOR RE_COFIG TO COMPLETE.

0323
0323
0326
0326
0327
0329
032B
0320
032E
0330
0333

MOV

BX,10

CONf IG_CPLTO?:
69 0000
EC

A8 01

75 06
E2 F9

MOV
CONFIG_CPLT?:
IN
TEST
JNZ
LOOP

4B

OEC

75 F3
E8 05.4.6 R
E6 1A 90

JNZ
CALL
JMP

; SET UP T I ME OUT VALUE
AL,DX
AL,GO
INIT_CPlT?
CONFIG CPLT?
BX
CONr,G_CPLTO?
CATASTROPH I C_ERROR
CONFIG_EXIT

033F
0340
0343

E8 05.4.6 R
E8 OA 90

; "INITIALIZATION COMPLETE" CMO?

I NI T_CPL T?: SAV~USH
OX
AOO
OX, PR
IN
AL,OX
CMP
AL,INIT_CPLT
JE
CPLT_OK?

RESTORE
POP
OX
CALL
CATASTROPH I C_ERROR
JMP
CONrIG_EXIT

0346

EC

CPLT_OK?:

0347
0348
034A
034C

'A

0336
0336
0337
033A
0336
0330

'283 C2 01
EC

3C 41
74 07

'A

; DID INIT COMPLETE OK?

3C 80
74 03
E8 05A6 R

IN
RESTORE
POP
CMP
JE
CALL

AL,OX

OX
AL,INIT_CPLT_RET
CONFIG_EXIT
CATASTROPH IC_ERROR

; ACKNOWLEDGE HOST INT + TURN GI BACK ON
034f
034F
0350
0352
0354

DC 80
EB 00
EE

0355
0357
0359

BO 00
E6 00
H

MOV
OUT

AL,OOH
$+2
OX,AL

035A
035C
0350
035f
0361

87 FA
DC 01
EB 00
H

XtHG
IN
OR
JMP
OUT

OI,DX
Al,DX
AL,GI
$+2
OX,AL

0362

80 24 SF

AND

EC

CONFIG_EXIT:
IN
OR
JMP

OUT
JMP

EC

AL,OX
AL,80H
$+2
OX,AL

; UNLOCK INTERfACE
BYTE PTR as: [SI J,ALL_BITS-LAIiA_LOCKED

; RETURN
0365
0365
0366
0367
0368
0369
036A
0368

CONFIG_EXI:
RESTORE
POP
POP
POP
POP
POP

5B
5A

5F

07
59



ax

OX
01
ES

CX

RET

C3

CONFIG

ENOP

; NORMAL_CMO
SETS UP THE NCB_RESERVE AREA &= SENDS THE NCB OVER TO THE LANA.
THE fOLL\o/lNG CONVENTIONS SHOULD BE FOLLOWED:

D-22 Adapter BIOS

_~:~~:~:~

___ L __ ~~~:::__ L _______________ ~:~~: _____________________ _

OS
ES:BX
OS:SI
OX
01
CL
AL
AH

CONST
CONST
I
CaNST
:
CONST
1
CONST
:
CaNST
:
DESTROY 1
VAR:
:

1

:~i~~~~~i; ~7~~LgE B5N:~~~g
NORMAL_CMD PROC

0368
0368

;
036C
036F
0372

0374

E8 062C R
80 FC 00
75 48

53

0365

58

CMP

JNE

ADJUST DEFAULTS,

;

GET NCB LENGTH (SANS POSTa &: RESERVE)

LEA

60 1E 0011 R

MOV
XLAT
MOV
MOV
RESTORE

POP
;

0366

BO 01
E8 0475 R

CALL

0366

E8 053A R

CALL
;

038E
0391
0393
0397
039B
039F

80 FC 00
74 29
26: FF 77
26: 8F 47
26: fF 77
26: 6F 47

03A3
03A6
03A6

26: SA 07
24 7F
3C 17

75 10
26:
26:
26:
26:

03BC
03BE
03BF
03C1
03C3
03C4
03C6

87 FA

Ff
8F
FF
6F

77
47
77
47

EC

38
04
3A
06

RESTORE NCB_BUFFER@ TO SEG:OFF

AH, NCBGOOD_RET?
NORM_EXIT
;NO ERROR CONTINUE WITH CMD.
ES: WORD PTR [BX [ • NCB_RESERVE_BUFFER@
ES:WORD PTR [BX]. NCB_BUFFER@
ES:WORD PTR [BX].NCB_RESERVCBUFFER@+2
ES:WDRD PTR [BX}.NCB_BUFFER@+2

MOV
CMP

AL, ES: [BX]. NCB_COMMAND
AL,7FH
AL, NCBSENOMULT I PLE

JNZ

NORM_EX I T

PUSH
POP
PUSH
POP

ES:WORD PTR (BX].NCB_RESERVE_8UFFER2@
ES:WORO PTR [8X].NCB_BUFFER@+8
ES:WORD PTR [BX]. NCB_RESERVE_BUFFER2@+2
ES:WORO PTR [BX]. NCB_BUFFER@+OAH

OI,DX
AL,DX
AL,AlL BITS-HCR
$+2
DX,AL
OX,OI
BYTE PTR os: [S I

'N

EE

OUT

87 07
80 24 Bf

XCHG
AND

;

; GET COMMAND
;CLEAR HIGH ORDER BIT
; I F COMMAND WAS A CHA I N SEND THEN
; RESTORE SECOND BUFFER
;NO THEN CONTINUE PROCESSING

RELEASE 8:: UNLOCK INTERFACE

NORM EX IT: XCHG

-

;PRIMARY COMMAND INDICATING TRANSfER
;OF NCB TO LANA
;SET UP LANA_X HIR &: PR FOR SOME PRIMARY CHO.

PROGRAM_10_NCB

AND

3C
DC
3E
DE

;POINT TO COMMAND TABLE
; GET COMMAND VALUE
; GET LENGTH OF NCB TO BE SENT OVER TO LANA

I/O THE NCB OVER TO THE LANA

I F ERRORS,

AND
JMP

59

snu? _H I R_AND_PR

PROGRAM

24 FD
E8 00

C3


BX
BX, CS: COMMAND_ TBL
AL,CL
CS: COMMAND_ T8L
CL,AL
CH,O

BX

CMP
JE
PUSH
POP
PUSH
POP

;

03C9
03CA

;CHANCES BUFFERS8 TO 32-81T ADDR.

AL,NCB_TO_LANA

;

TRY AND GET HOLD OF LANA_X
ERROR TRYING TO GET HOLD OF LANA_X
LEAVE AND REPORT ERROR

BUfFER@, & RESERVE AREA

SETUP HI R &: PR FOR "XFER NCB TO LANA" CMD

03B8

03AC
03BO
0384
03B8

;
;
;

;

ADJUST_NCB

SA C1

03AA

INTERFACE

GET_ltHERfACE
AH, NCBGOOD_RET?
NORM_EX I T

CALL

SAVE
PUSH

2E: D7
6A C6
B5 00

2E:

(EXCEPT FOR SET_PARM).


CX

GET AND LOCK

E8 0589 R

0377
0378
0370
037F
0361
0363

g~ ~~T~~

NEAR

SAVE
PUSH

51

LO_MEM_SEC
NCB it
LANA x STATUS Q
LANATS-BASE PORT (LANA_X_SRJ Q
LANA_X_H I R PORT ..
NCB_COMMAND
INTERNAL
N£TBIOS RETURN CODE:
NCBMAX_CMO?
NCBSYS_ERR?

; POINT TO H1R
; TURN OFF HCR

J, ALL_B I TS-LANA_LOCKED

; CLEAR

t NTERFACE BUSY FLAG

RETURN

RESTORE
POP


CX

RET

03CS

THE FOlLW1NG CONVENTlONS SHOULD BE fOLLOWED:

_~:~~~~:~

___ L __ ~~~:~~ __ L _______________ ~:~~: __________ -__________ _

OS
ES: BX
DS:SI

ox

DI
AL
AH

CONST
:
CONST
:
CONST
:
CONST
l
CaNST
:
DESTROY :
VAR:
:
:

1

LO_MEM_SEG
NCB @
LANA x STATUS @
LANATS-BASE PORT (LANA_X_SR) @
LANA_X_H I R PORT @
J NTERNAL
NETBlOS RETURN CODE;
NCBCMO_CNL?
NCBMAX CMD?
NCBSYS=ERR?

INTERRUPTS SHOULD BE MASKED ON ENTRY.
INTERRUPTS WILL BE UNMASKED ON EXIT.

CANCEL_CMD PROC

03ca
03Ga

51

SAVE
PUSH

NEAR

CX

Adapter BIOS D-23

03CC
03CO

06
53

ES

PUSH
PUSH
; GET

BX

INTERFACE

(RETURN RC IF ERROR)

03CE
0301

E8 062C R
80 FC 00

CALL
eMP

GET_INTERFACE
AH, NCBGOOO_RET?

; TRY TO GET HOLD OF LANA_X
;010 WE GET INTERFACE TO LANA X

0304
0306

74 03
E9 0471 R

JZ
JMP

GET_NCB_C
CAN_EXIT

; YES ,THEN GO AND DO CANCEL
; NO, LEAVE AND REPORT ERROR

;

PT TO NCB Of CMO TO CANCEL

0309

26: C4 5F 04

LES

BX, ES: {BX]. NCS_BUFFER@

; GET ADDRESS OF COMMAND TO BE CANCEL

0300
03EO

26: 8A 07
24 7F

MOV
AND

AL, ES: {BX]. NCB_COMMAND
AL,7FH

; GET VALUE OF COMMAND TO BE CANCEL
;GET HIGH ORDER BIT OUT Of THE WAY

03E2
03E4
03E6
03EB

3C
75
B4
EB

32
05
26
7A 90

eMP
JHZ
MOV
JMP

AL, NCBRESET
I S_CNCL
AH, NCBNO_CNL?
CAN_EXIT2

;
;
;
;

03EB
03EO
03EF
03F1

3C
75
B4
EB

35
05
26
71 90

IS_CNCL:

eMP
JNZ
MOV
JMP

AL, NCBCANCEL
IS DTGRM
AH-';-NCBNO_CNL?
CAN - EXI T2

; I SIT
;NO,GO
; ERROR
; LEAVE

A CANCEL COMMAND
AND CHECK I F SEND DATAGRAM
COMMAND NO VAL I 0 TO CANCEL
AND REPORT ERROR

03F4
03F6
03F8
03FA

3C
75
B4
EB

20
05
26
68 90

IS_DTGRM:

SEND DATAGRAM
AND CHECK IF SEND BROADCAST
COMMAND NOT VAL I 0 TO CANCEL
AND REPORT ERROR

03FO
03FF
0401
0403

3C 22
75 05
B4 26
EB 5F 90

0406
0408
040A
040C

3C
75
B4
EB

040F
0411
0413
0415

3C 36
7505
B4 26
EB 40 90

I S_AODGNME: CMP

0418
041A
041C
041E

3C
75
84
EB

31
05
26
44 90

0421
0423
042,}
';427

3C
75
B4
EB

34
05
26
3B 90

042A
042C
042F

1-10 02
:>6: 8A OF
1'8 0475 R

0432
0434
0436

lO 01
E B 00
EE

30
05
26
56 90

GET_NCB_C:

MOV
JMP

AH-';-NCBNO_CNL?
CAN - EXIT2

; I SIT
;NO,GO
; ERROR
; LEAVE

IS_BDGRM:

eMP
JNZ
MOV
JMP

AL, NCBSENOBROAOCAST
IS AOONME
AH-;-NCBNO_CNL?
CAN_ EXIT2

; I SIT A SEND BROADCAST
; NO, GO AND CHECK IF AODNAME
; ERROR COMMAND NOT VAL I 0 TO CANCEL
; LEAVE AND REPORT ERROR

I S_AODt1ME:

eMP
JNZ
MOV
JMP

AL, NCBAOOt1AME
IS AOOGNME
AH-';-NCBNO_CNL?

;15 IT AN ADONAME

CAN - EXI T2

;NO,GO AND CHECK IF ADDGROUPNAME
; ERROR COMMAND NOT VAL I 0 TO CANCEL
; LEAVE AND REPORT ERROR

JNZ
MOV
JMP

AI, NCBADDGROUPNAME
IS DNM[
AH-';-NCBNO_CNl?
CAN_ EXI T2

;IS IT
;NO,GO
; ERROR
; LEAVE

AN AODGROUP NAME
AND CHECK fOR DELETE NAME
COMMAND t10T VAL I 0 TO CANCEL
AND REPORT ERROR

I S_DNME:

eMP
JNZ
MOV
JMP

Al, NCBDElETENAME
IS SSTAT
AH-';-NCBNO_CNL?
CAN_EX I T2

; I SIT
;NO,GO
; ERROR
; LEAVE

A DELETE NAME
CHECK SESSION STATUS
COMMAND NOT VAL I 0 TO CANCEL
AND REPORT ERROR

I S_SSTAT:

eMP
JNZ
MOV
JMP

AL, NCBSESS I ON STATUS
START CAN
AH, tIICBr'lO_CNL?
CAN - EXI T2

; IS IT
;NO,GO
; ERROR
; LEAVE

A SESSION STATUS
TRY TO CANCEL OUTSTANDING COMMAND
COMMAND NOT VAL I D TO CANCEL
AND REPORT ERROR

JNZ

;

0000
00

0443
0446

E8 05A6 R
EB lC 90

01
08
F9

AL,GO

$.2
OX,AL

$+2

JZ

LOOP

AND

0461

E8 05A6 R

OTHERR:

0464
01166
0467
0469
046B
046C
046E

87
EC
24
EB
EE
87
80

CAN_EX I T2: XCHG

eMP

JE
eMP
JNZ
MOV
JMP

0475

; EVERY TH I NG OK THEN LEAVE
; ERROR COMMAND COMPLETED WH I LE CANCEL OCCURR I NG
; LEAVE AND REPORT ERROR

JNZ
MOV
JMP

CALL

CATASTROPH I C_ERROR

;SHOULD NOT GET OTHER COMPLJTION CODES

RELEASE

IN
FO
00

AND
JMP
OUT

07
24 BF

XCHG

&,

UNLOCK

INTERFACE

OI,DX

;POINT TO HIR

~t:~~L_BITS-HCR

:TURN OFF HCR

DX,Al
DX,OI
BYTE PTR OS: (S I

RETURN

RESTORE

RET

POP
POP
POP

CANCEL_CMD ENOP

D-24 Adapter BIOS

; ERROR COMMAND NOT VAL I 0 TO CANCEL
; LEAVE AND REPORT ERROR

$.2

AND

CAN_EXIT:

;CET COMPLITION CODE

;010 IT COMPLETE OK

T02

CMP

;
5B
07
59
C3

; TIMEOUT THEN I NTERFACE ERROR
; LEAVE AND REPORT ERROR

AH,NCBCMD CNL?
CAN_EX I T2AL,CANT_CPLT?
OTHERR
AH, NCBNO_CNl?
CAN_EX I T2

;

0471
0471
0472
0473
0474

TIMEOUT ON CANCEL

CATASTROPHIC ERROR
CAN_EX I T2
-

AI ,CPI T_CODE
AL, GOOD_RET?
CAN_EX I T2
AL, BAO_PARM?

24
3C
74
3C
75
B4
EB
3C
75
84
EB

FA

; SET UP TIME OUT VALUE

-

I F COMPLETED WI TI1 ERROR,

0449
0446
0440
044r
0451
0453
0455
0458
045A
045C
045E

T02:

-

AL, OX
AL,GO
CNCL OK?
CNCL:::CPlT?

CATASTROPHIC ERROR.

CALL
JMP

;

FOR LANA TO COMPLETE THE CANCEL

CX,CANCEL CPLT TO

MOV
JMP

CNCL CPLT?:IN
TEST

CNCL_OK?:

; TELL LANA COMMAND READY FOR EXECUT I ON

WA I T UPT TO "AWH I LEt!

;

06
00
15
02
05
24
00 90
04
05
26
04 90

; PR I MARY COMMAND FOR ABORT NCB
;SET UP LANA_X HIR AND PR FOR SOME PRIMARY COMMAND

TELL LANA TO GO

MOV
JMP
OUT

;
B9
EB
EC
A8
74
E2

SETUP HIR &: PR FOR "ABORT NCB" PRIMARY CMD
AL, ABORT_NCB
CL, ES: [BX I. NCB_COMMAND
SETUP _H I R_AND_PR

;

0437
043A
043C
0430
043F
0441

~~, ~g~~~NDDATAGRAM

eMP

I SIT A RESET COMMAND
NO, THEN SEE I FIT I S CANCEL COMMAND
ERROR COMMAND NOT VAL I 0 TO CANCEL
LEAVE AND REPORT ERROR


BX

ES

ex

L

;
ALL_B I TS-LANA_LOCKED ; CLEAR

I NTERFACE BUSY FLAG

SETS UP THE LANA'S HIR &: PR PORTS FOR SOME PRIMARY CMD.
THE FOLLWING CONVENTIONS SHOULD BE FOLLOWED:
:

ACCESS

:

CONST
CONST
CONST
CONST

:
:
:
:

USAGE

------------+-----------+------------------------------------------ES: BX
CONST
: NCB @
AL
CX

ox
01

SETUP _H I R_AND_PR PROC

0475
0475

50

SAVE
PUSH

0476
0477
047A

52

SAVE
PUSH

;

ADD

EE

OUT

;
0117B
0'-170
047F
0480
0482
0484
0486
0487
0489
0488
048c

SETUP

XCHG
JMP
IN
AND
OR
JMP
OUT
OR
JMP
OUT
XCHG

87 FA
EO 00
EC

24 C7
DC 08
EB 00

EE
DC 00
EB 00

EE
87 07

NEAR

AX

PUT CMD CODE

83 C2 01

PR I MARY COMMAND CODE
DEPENDS ON CMD (NCB LEN OR 
OX
OX, PR
DX,AL

;POINT TO PR
; SEND PR I MARY COMMAND

INTERFACE FOR PROGRAMMED

OI,DX
;POINT
$+2
AL, ox
AL, ALL_B I TS- I O_METHOD-DO_B I T
AL,.PC •• TO_l.ANA
$+2
ox, AL
AL.,PROGRAMMED_LO
$+2
DX,AL
ox, 0 I

XLATE NCB@ TO 32-BIT AD DR &: PUT
048E
048F
0491
0493
0495
0497
0499
049B
0490
049F
04AO
04A2
04A4
04A5
04A9
04AB
04AO
04AE
04BO
04B2

SAVE
PUSH
MOV
MDV

5'

8C CO

"'

04

24

Fa

RDL

03 CO
8A C8

MDV
AND
ADD
JNC

03 C3
73 02
FE C1
TOP _4_0K:

'"C

8A C4
EB 00

OUT
MOV
JMP

EE

OUT

EE

"' "

OOOF

THEN SET

I/O METHOD

IN PR



cx

AX,ES
CL,4
AX,Cl.
CL, AL
AL,OFOH
AX,ax
TOP 4 OK
CL
DX,AL
AL,AH

$.2
OX, Al
AL,CH

MOV

$.2

EE

J

CX PUT NCB_LENGTH/ IN PR MOV OUT MOV JMP EE OUT RESTORE 5A POP ; 04BO 04BE RETURN RESTORE POP 58 RET C3 AX 04BF STARTS UP A DMA XFER WITH A LANA. THE FOLLWING CONVENTIONS SHOULD BE FOLLOWED: ACCESS os : CONST : CONST : CONST : DESTROY: DESTROY : DESTROY : ES:DI OX CX AH AL LO MEM SEG ADDRESS OF REMAINING DATA LANA X HI R PORT @ LENGTH-OF REMAINING DATA PR I MARY CMO CODE INTERNAL INTERRUPTS SHOULD BE MASKED ON ENTRY. INTERRUPTS WI Ll BE MASKED ON EXIT. OMA_START_UP PROC 04BF 04BF SAVE PUSH 50 ; 04CO 04C5 04C7 04C9 04CE 0401 0401 80 3C 75 80 Ea DE OOA 1 80 01 08 DE 00A2 20 06 90 80 DE OOA3 20 NEAR AX STOP OTHERS FROM USING OMA OR THE DR CMP JNZ OR JMP INTERFACE (TIL OMA DONE) BYTE PTR OS: [LANA_HARDWARE J, DMA_3_BUSY ; SET DMA BUSY FLAG AL,01 ; lS IT LANA_O REQUEST SET_1 ;1'10 THEN IT IS LANA_1 REQUEST BYTE PTR OS: [LANA_O_STATUS), LANA_DHAI NG ; SET FLAG FOR LANA_O DMA DMA_CONT BYTE PTR OS: [LANA_'_STATUS]'LANA_DMAING ;SET FLAG FOR LANA_' 0406 ; MASK DREQ_3 WH I LE SEll I NG UP DMA Adapter BIOS D-25 0406 0408 BO 01 E6 OA HOV OUT AL,DHA_MASK+OMA_CHNL_3 DMA_MASK_CHNL,AL ; SET MODE OF DMA_3 CHANNEL 040A 040C 040F 04E1 04E3 04E6 04E8 BO 80 74 DC EB DC E6 43 FC 44 OS 04 03 90 08 OS AL, OMA_S INGLE_MODE +OMA_CHNL_3 AH,OATA TO LANA OHA_READ AL, DHA_WR ITE_XFER OUT_MODE AL,DMA_READ_XFER OMA_MODE, AL 04EA 04EC 04EE BO FF EB 00 E6 DC MOV AL,ALL_BITS JM' $'2 04FO 04Fl 04F3 04FS 04F1 04F9 49 DEC MOV CM' JE OHA_READ: OUT_HOOE: OR JM' OR OUT ; CLEAR "HI/LO" FLIP/FLOP J MAINLY FOR DELAY OMA_H I_LO_FF ,AL OUT ; OUT ANYTH I NG TO DO CLR ; OUT "LENGTH OF REMAINING DATA" TO OMA COUNT REGISTER 8A E6 SA EB E6 C1 07 CS 00 07 MOV OUT MOV CX AL,CL OMA_3_COUNT,AL AL,CH JM' $'2 ; COUNT IS N-1 DMA_3_COUNT,AL OUT ; CONVERT £S:OI TO 20-BIT ADOR & 04F6 04FD OSOO 0502 OS04 OS07 8C B9 03 SA 80 24 CO 0004 CO C8 £1 OF FO 0509 050B OSOO 050F 0511 OS13 0515 0517 0519 03 12 E6 SA EB E6 8A EB E6 C7 CO 06 C4 00 06 Cl 00 82 ADO AOC OUT MOV AX,OI CL, CH OMA_3_BASE,AL AL,AH JM' $'2 OUT MOV DMA_3_BASE,AL AL,CL JM' $'2 ROL 051B 051C 051E 051 F 0521 0524 0526 0528 0528 0520 052£ 0530 0532 58 EB 00 EC 24 80 74 OC EB OC C7 FC 44 05 00 03 90 08 EE TO LANA: SET_DO: DC 60 ES 00 EE 0533 0535 0537 SO 03 ES 00 E6 OA 0539 C3 TO DMA BASE & PAGE REGISTERS ~~~~~:tl :~~~; :~~~ ! & CF",SEGMENT ADJ. OUT A<07:: 00> ; OUT A<15: :08> OMA_3_PAGE,AL OUT ; our AX=SEG! A<19::16>, A<1S::04> CH=O, CL",ROL COUNT AX=SEGI A<15: :04>, A<19:: 16> CX"'SEG 0, X, A<19:: 16> CX=SEG 0, 0, A<19:: 16> AX=SEG A<15: :04>, 0 MOV AND AND AX, ES CX,4 AX,CL CL,AL CL,OOFH AL,OFOH MOV MOV ; OUT A<19:: 16> SETUP HIR FOR DMA IN INDICATED DIRECTION RESTORE POP AX JMP $+2 IN AL,DX AND AL,ALL_BI TS-I O_METHOO-OD_B I T CMP AH,OATA_TO_LANA ;WHICH WAY ARE WE GOING JE TO_LANA ;GOING TO LANA OR AL, LANA_ TO_PC ; ENABLE 0 I RECTI ON LANA_ TO_PC JMP SET_DO ;GO INDICATE DIRECTION OR AL,PC_TO_.LANA ;ENABLE DIRECTION PC_TO_LANA OUT DX,AL OR AL,DMA_IO+TCI JMP $+2 OUT OX.f,i.., ; UNMASK DREQ_3 TO START DMA MOV JMP OUT ; AL, DMA_CHNL_3 $+2 DMA_MASK_CHNL, AL RETURN RET 053A PROGRAM_IO_NCB PROGRAM I/O'S THE NCB OVER TO THE LANA. THE FOlLWING COJiVENTIONS SHOULD BE FOLLOWED: _~:~:~~:~ ___ L __ ~~~:~~ __ L _______________ ~:~~: _____________________ _ OS ES: BX DS:Sl OX 01 CX CONST : CONST : CONST : CONST : COIiST : DESTROY : DESTROY : VAR: : AL AH LO_MEM_SEG NCB @ LANA X STATUS @ LANATS-BASE PORT (LAIiA X SR) @ LANA_X_H I R PORT @ - NCB LENGTH (SANS POSTa & RESERVE) INTERNAL NETBIOS RETURN CODE: NCBSYS_ERR? INTERRUPTS SHOULO BE UNMASKED ON ENTRY. PROGRAM_IO_NCB PROC OS3A 053A 53 SAVE PUSH 053B 80 OC 08 OR NEAR BX ; SET "XFERR I NG NCB TO LANA" FLAG BYTE PTR OS: [S I 1, LANA_GETT lNG_NCB ; SETUP FOR XFER OS3E 053F 0540 OS41 0542 OS43 0545 0547 0549 OS4B OS4E 1E 56 57 50 52 8C CO 8E 08 88 F3 88 FA 83 C2 02 B4 10 SAVE PUSH PUSH PUSH PUSH PUSH OS MOV MOV MOV MOV ADO MOV AX,ES DS,AX SI,BX OI,OX DX,DR AH, ORE ; D-26 Adapter BIOS Sl 01 "" DX PUT 1 ST 2 BYTES OF NCB I NTO DR ; DS:Sl '" NCB 0 = LANA_X_SR PORT 0 '" LANA_X_DR PORT 0 = FLAG TO TEST ; 01 ; OX ; AH (ASSUMES ROOM FOR 2) 0550 0551 0552 0553 0555 0556 lOOSB AC EE AC 0", EE JMP OUT 83 E9 02 SUB ; 0559 055B 055D 055E 0560 0562 0564 OX,Al ;WRIET TO DATA RAGISTER A BYTE lOOSB E8 00 87 FA EB 00 $+2 OX,AL CX,2 ; ANOTHER BYTE OI,OX ;POINT TO SR SAY GO XCHG JMP $+2 EC IN 24 79 OC 01 EB 00 AND OR Al, OX Al,NOT (CPlT_COOE+HC} Al,GO $+2 JMP OUT EE OX,Al ; CHECK I F ROOM FOR ANOTHER BYTE NOW 0565 0567 0568 056A 056C 056E 056F 0570 0572 0574 EB 00 EC 84 C4 74 OB 87 07 AC EE $+2 JMP DATA ROOM?: IN TEST JZ COT_ROOM: XCHG LOOS8 OUT 87 FA E2 F3 EB 14 90 XCHG LOOP JMP AL,OX AL,AH NO ROOM OX-:-OI :CHECK I F ROOM FOR ANOTHER BYTE ; NO ROOM GO WA I T UNT I L ROOM AVA I LABLE ;POINT TO DATA REGISTER OX,AL 01, OX DATA ROOM? GO_CLR? ; SEND A BYTE ; POI T TO SR ; GO SEE I F WE CAN SEND ANOTHER BYTE ;GO WAIT FOR GO TO CLEAR ; WA I T FOR ROOM FOR NCB BYTE 0577 057A 0578 0570 057F 0580 BB 0000 EC NO ROOM: ROOM_NOW?: 84 C4 75 EO 4B 75 F8 MOV IN TEST JNZ BX,ORE_lIMIT AL,DX AL,AH GOT_ROOM DEC BX JNE RESTORE 0582 0583 0584 0585 0586 0587 SA POP POP POP POP POP 5B 5F 5E 1F EB 18 90 058A 058A 0588 058C 0580 058E 058F 0592 0595 0597 0599 GO_CLR?: RESTORE POP POP POP POP POP 5A 5F 5E 0000 04 08 05 F9 06 90 DI 51 OS OX AX DI 51 OS eX,GO_LIMIT BYTE PTR OS:[SI],LANA_GETTING_NCB OK CPLT? CLR_NOW? NCB_ERROR MOV ClR_NOW?: AX WA I T FOR GO TO CLEAR 5B 1F 89 F6 74 E2 EB ROOM NOW? OX NCB_ERROR JMP ; ; SET T I ME OUT VALUE TEST JZ LOOP JMP 059C 059F F6 04 06 74 03 OK_CPLT?: ; HOW DID THE XFER COMPLETE? TEST OS:BYTE PTR {SI ],CPLT_COOE JZ PROG_EX I T 05A1 E8 05A6 R NCB_ERROR: CALL ; ERROR XFERR I NG NCB TO LANA CATASTROPH I C_ERROR ; RETURN 05A4 05A4 05A5 PROG_EX IT: 5B C3 05A6 RESTORE POP ax RET PROGRAM_IO_NCB ENDP ; CATASTROPHIC_ERROR HANDLES CATASTROPHIC INTERFACE ERRORS. THE FOLLWING CONVENTIONS SHOULD BE FOLLOWEO: _~~~~:~~~ ___ L__ ~~~:~: __ l________________ ~:~~: _____________________ _ CONST : CONST : CaNST : CaNST ' DESTROY OS OS: 51 OX DI AL AM VAR CATASTROPHIC_ERROR PROC 05A6 ; 87 FA RELEASE THE 05A6 05A8 05A9 05A8 05AO 05AE EE JMP OUT 87 07 XCHG 05BO 80 oe 04 0583 EC 24 FO EB 00 80 24 8F XCHG IN AND 05B6 05B8 B4 40 C3 NEAR INTERFACE 01, OX AL, OX AL, ALl_B I TS-HCR ;POINTTOHCR ; CLEAR HCR $+2 OX,Al DX,OI ; SET HARDWARE ERROR FOR TH I SLANA ; UNLOCK 1NTERFACE BYTE PTR OS: [S I I, LANA_HARD_ERR AND ; 0589 LO MEM SEG lANA X-STATUS @ lANATS-BASE PORT (LANA X SRI @ LANA X HIR PORT @ -INTERNAL NETB I OS RETURN CODE: NCBSYS_ERR? (ALWAYS!) BYTE PTR 05:{SI ; SET FLAG HARDWARE ERROR LALl_BITS-LANA~LOCKEO ;CLEAR IN LANA_X INTERFACE BUSY FLAG RETURN MOV RET ;REPORT TIMEOUT ERROR CATASTROPH I C_ERROR ENDP Adapter BIOS D-27 ADJUST_NCB CHANGES BUFFER@ TO 32-BIT ADDR. THE FOLLWI NG CONVENT IONS SHOULD BE FOLLOWED: -~:~~~~:~---t--~~~::: ES:8X CL 05B9 05B9 05BA 05BB : \ ADJUST_NCB PROC 51 51 ~ NCB @ NCB_COMMAND NEAR SAVE PUSH PUSH PUSH 50 __ __________________________________________ _ CONST CONST AX ex ex SETUP NCB RESERVE AREA 05BC 05BC 05CO 05C4 05C8 05CC 0500 26 26 26 26 26 26 89 8C 8B 89 8B 89 5F 47 47 47 47 47 34 36 04 38 06 3A SET RESERVE: MOV ES: ES: AX, ES: AX, ES: MaY MaY MaY MaY MaY [BX). NCB_RESERVE_NCOO, BX [BX]. NCB_RESERVE_NCB@+2, ES ES: [ax]. NCB_BUF FER@ [BX J • NCB_RESERVE_BUFFER@,AX ES: [ax] . NCB_BUFFER@+2 [ex] . NCB_RESERVE_BUFFER@+2,AX FOR POST I NG TO RESTORE SEG:OFF TYPE ADOR ON CPLT ; CHANGE BUFFER@ TO 32-81T ADDRESS 0504 0508 0508 0500 05DF 05E2 26: B9 03 8A 80 05E4 05E8 05£A 05EE 05F2 05F3 05F6 05F9 JN2 05F8 05FF 0603 0607 26: 88 47 DC 26: 89 47 3C 26: 8B 47 DE 26: 89 47 .3E MOV MOV MOV MOV AX, ES: AX, ES: 0608 060F 0612 0614 0616 0619 26: 88 47 DE 89 0004 03 8A C8 80 E1 OF 24 Fa ; CHANGE BUFFER@ TO 32-BIT ADDRESS MOV AX,ES:WORD PTR [BX).NCB_BUFFER@+OAH; MOV CX,4 ; ROL AX,CL ; MOV CL,AL ; ANO CL,OOFH ; AND AL,OFOH ; 0618 061 F 0621 0625 26: 03 47 DC 12 CD 26: 89 47 OC 26: 89 4F DE AOO ADe MOY MOY 88 47 06 0004 CO C8 [1 OF 24 Fa MaY ANa ANa AX,ES:WORD PTR [BX).NCB_BUFFER@+2 CX,4 AX,CL CL,AL CL,OOFH Al,OFOH 26: 03 47 04 12 CD 26: 89 47 04 26: 89 4F 06 ADO ADe MaY Mav AX,ES:WORD PTR [BX).NCB_BUFfER@ Cl,CH ES:WORO PTR [BX].NCB_BUFFER@,AX ES:WORD PTR {BX].NCB_BUFfER@+2,CX 59 POP ex 80 E1 7F 80 F9 17 75 2( ANa eMP CL,7FH CL, NCBSENDMUL T I PLE ADJUST_NCB_EX I T MaY MaY NOL AX;SEGI A<19:: 16>, A<15: :04> CH;O, CL=ROL COUNT AX:SEGI A<15: :04>, A<19: 16> CX-SEG 0, X, A<19. 16> ~~~~g I l A<1g;:04~: A<19:.16~ MASK OfF HIGH ORDER BIT IS COMMAND IS MULTIPLE SEND NO THEN LEAVE OTHERWI SE TAKE CARE Of SECOND BUFFER ADD co ES: [BX]. NCB_BUfFER@+8 {BX]. NCB_RESERVE_BUFFER2@,AX [S: [BX]. NCB_BUFFER@+OAH [BX I. NCB_RESERVE_BUFFER2@+2,AX ~:~~:WORD PTR [BX].NCB_BUFFER@+8 TO RESTORE SEG:OFF TYPE ADOR ON CPLT AX=SEGI CH;O, AX;SEGI CX=SEG CX;SEG AX=SEG A<19::16>, A<15::04> CL;ROL COUNT A<15: :04>, A<19:: 16> 0, X, A<19:: 16> 0, 0, A<19:: 16> A<15::04>, 0 ~~=~~t! :~~§; ~~~~ I &: CF=SEGMENT ADJ. ES:WORD PTR [BX).NCB_BUFFER@+8,AX ES:WORO PTR [BX].NCB_BUFFER@+OAH,CX ADJUST _NCB_EX I T: 0629 ; RETURN 0629 062A 0628 RESTORE POP POP 59 58 RET e3 062C CX AX ADJUST_NCB ENOP GET_INTERFACE GETS &: LOCKS THE SELECTED LANA'S INTERFACE. IF CQF CMD I SN' T RESET OR CANCEL, AN ERROR I S RETURNED. IS SET AND THE THE FOLLWING CONVENTIONS SHOULD BE FOLLOWED: _~:~~~~:~ ___ ~ ___ ~~~:~: __ L _______________ ~~~~: _____________________ _ OS DS:SI OX 01 CL AL AH CONST \ LO MEM SEG CONST : LANA X-STATUS @ CONST : LANATS-BASE PORT (LANA_X_SR) 0 CONST : LANA_X_H I R PORT 0 CONST : NCB COMMAND DESTROY : INTERNAL VAR NETBIOS RETURN CODE: NC8MAX CMD? NCBSYS::::ERR? I NTERRUPTS SHOULD BE MASKED ON ENTRY. INTERRUPTS WILL BE UNMASKED ON EX IT. GET~ 062C 062C 0620 53 51 062E 0631 80 DC 40 fB INTERFACE PRoe NEAR SAVE PUSH PUSH BX CX ; LOCK ON STI ; "HER FACE &: ENABLE D-28 Adapter BIOS INTERRUPTS BYTE PTR DS:[SI LLANA_LOCKED ;SET INTERFACE BUSY FLAG ; MAINLY TO ALLOW DMA COMPLETION If LANA'S DMAING, GIVE IT A CHANCE TO FINISH l I 0632 0635 0637 063A 0630 F6 74 E6 60 75 04 20 06 0666 R FC 00 3E 063F 0642 0644 0647 80 74 80 74 F9 32 12 F9 35 00 TEST JZ CALL BYTE PTR DS:!SI],LANA_OMAING A_RESET? WAIT_ON_DMA AH,NCBGOOD_RET? T [MEOUT eMP JNE ; DON'T CHECK COF A_RESET?: CMP CMP JE ; 0649 064A 064C 064E 0651 0653 CQF?: EC 74 80 B4 EB 06 24 BF 22 30 90 87 fA CA MOV JMP REQUEST IT:XCHG CU IN OR JMP REQUEST EC OC 02 ~~ 00 DOT BB OOOA B9 0000 0670 0670 067E 067F 0682 0685 0685 0686 0687 INTERFACE OWNERSHI P 01, OX ;POINT TO HIR ; 0 I SABLE INTERRUPTS AL, ox AL, HCR $+2 DX,AL ; I NFORM LANA THAT WE WANT 8X,10 CX,HC_LIMIT ; SET TIMEOUT VALUE ;SET TIMEOUT VALUE IS HC SET YET? 46 DEC 75 E8 JNZ RESTORE POP POP CALL JMP CX ax CATASTROPHIC ERROR GET_EXIT2- JMP He_SET?: EC IN TEST JNZ XCHG IN TEST XCHG JZ LOOP EC A8 87 74 E2 02 07 DE FO TIMEOUT: " 56 £8 05A6 R EB 03 90 " 56 c3 INTERFACE INTERRUPTS OX,OI $+2 AL, ox AL,HC GET_EXIT 01, ox AL, OX AL, HCR OX,OI REQUEST IT HC SET?6XHC_LOOP EB 00 IT SETUP TO WAI T ON HC WAIT_mCHC:MOV HC_LOOP: MOV A8 80 75 16 87 fA A RESET COMMAND IS THEN THEN GET INTERFACE AND DO A CANCEL COMMAJiO IS THEN GET INTERFACE AND DO IT ; ENABLE XCHG ; 0668 066A 066B 0660 066F 0671 0672 0674 0676 0678 067A 067B I SIT IF IT I SIT IF IT AL,DX ; GET LANA'S SR VALUE AL,CQF ; IS THERE ROOM FOR MORE COMMANDS REQUEST IT ;YES THEN GO REQUEST FOR THE INTERFACE BYTE PTR DS:[SI],ALL_BITS-LANA_LOCKED ; UNLOCK THE INTERFACE AH,NCBMAX_CMO? ;ERROR MAX. NUMBER Of CMOS OUTSTANDING GET_EXIT ;LEAVE AND REPORT ERROR STI FB 87 07 ; 0662 0665 ; ; ; ; IF COF SET. AND ; 0656 0658 0659 065A 065C 065E 065F 0660 ERROR IN TEST JZ AS 08 I F RESET OR CANCEL "CMO" CL, NCBRESET REQUEST IT CL, NCBCANCEL REQUEST_I T JE CHECK LANA_X DMAIN FLAG NOT DHA I NG CHECK I F WE HAVE A RESET COMMAND IF OMAING GO AND WAIT A WHILE FOR DMA TO FINISH I MEOUT ON OMA? F SO, COMPLAI N GET_EX IT: ; RETURN RESTORE PDP GET_EXIT2: RET PO I NT TO SR DID WE GET THE INTERFACE IF SO, WE'RE DONE POINT TO HIR PDP GET_INTERFACE ENoP 0688 ; WAIT ON OMA WAfT UP TO "x" FOR LANA TO FINISH OMAING. THE FOLLW I NG CONVENT IONS SHOULD 8E FOLLOWED: ____________ l ___ OS:SI AH ~~~:~: __ l _____________________________ _____________ _ GONST VAR LANA X STATUS @ NErBiOS RETURN CODE: NC8SYS~ERR? INTERRUPTS SHOULD 8E UNMASKED ON ENTRY. WA I T ON OMA fROG 0688 0688 51 0689 89 0000 068C 068F 0691 F6 04 20 74 04 E2 F9 0693 84 40 0695 0695 0696 0697 SAVE PUSH NEAR CX ; SETUP DMA TIME LIMIT ; I SLANA OMA DONE YET? CX,DMA_LIMIT DMA_DONE?: TEST JZ LOOP BYTE PTR OS:[SI],LANA_DMAING ;IS LANA_X DONE OMAING WAIT EXIT ; IF SO, LEAVE ;WAIT SOME MORE DMA_DONE? ; TIMEOUT ON DMA WAIT ; RETURN AH, NGBSYS_ERR? WAIT_EXIT: " RESTORE POP ; SET UP TIMEOUT VALUE ; IF TIMEOUT WAITING FOR OMA TO ; COMPLETE REPORT ERROR ex RET C3 WAIT ON OMA ENOP -~;~~-;~ ~~ ~ - ------------------------------------------------------------------i THIS ROUTINE ALLOWS THE SHARING OF DMA CHANNEL 3 8ETWEEN LANA AND HARD 0 I SI( ON PGXT. I NT 13H is SETUP TO PO I NT TO HERE ON PG1 AND PCXT - -- -- -- - -- -- -- - -- -- --- -- --- -- ---- -- - -- -- -- -- -- ---- -- --- -- ---- ---- - -- - -- ----- - i Adapter BIOS D-29 0697 HARD_F I LE PROC NEAR F8 STI 1E OS AX 58 PUSH PUSH MOY MOY POP 06AO 06A3 80 fA 80 72 3C CMP JNAE DL,80H 01 SKETTE OM5 " PUSH MOY 06A9 06AE 0680 0681 0683 0684 06B5 0688 066A 0666 068f 06C2 06C6 06C9 f6 06 OOA' 80 74 1A 0697 0698 0699 069A 0690 069f 50 B8 0040 8E 08 AX, LO_MEM_SEG OS,AX PO I NT TO SEGMENT 40H AX ;TEST If fiXED DISK ; IF 0 I SKETTE NO NEED TO CHECK fOR OHA SHAR I NG ; CHECK FOR BUSY OMA 06A6 89 ffff 49 75 f6 1E 50 B8 0040 8E 08 " 80 36 00A2 80 DC 04 80 36 00A3 80 DC 04 1F TRY_OHA_3H: TEST JZ OEC JNZ PUSH PUSH MOY MOY POP LEA OR LEA OR POP 06CA 06CB " 0600 0601 0602 0606 0607 060C 0600 9C pUSHF FA FF If 00A4 CU 9c 060E EB 08 90 06El 06E2 06E3 06(7 .C 80 DE OOAl 80 GET OMA 3H: POP OR CALL PUSHF ANO pOpF POP 80 26 OOAl 7F 90 1F CX CX,OFFfFH ; SET UP TIMEOUT VALUE BYTE pTR OS: lLANA_HARDWARE I, OMA_3_BUSY ; CHECK TO SEE 'F OMA BUSY GET_OMA_3H ;NOT BUSY GO AND GET HOLD OF IT CX TRY_OMA_3H ;WAIT SOME MORE OS AX AX, LO_HEM_SEG OS,AX ; PO I NT TO SEGMENT 40H AX SI,DS:LANA_O_STATUS ; BYTE PTR OS: [5 I J. LANA_HARD_ERR ; 1fT I MfOUT REPORT ERROR ON LANA_O SI, OS: LANA_'_STATUS ; g~TE PTR OS: [S I J. LANA_HARD_ERR ~~~~N L~~AA~D PERFORM 0 I SK REQUEST CX BYTE PTR OS: [LANA_HARDWARE], DMA_3_BUSY ;SET OMA BUSY FLAG DWORO PTR OS: [ LANA_HARD_I NT I ; GO SERV I CE HARD 0 I SK REQUEST BYTE PTR OS: [ LANA_HARDWARE l,ALL_B I TS-OMA_3_BUSY ; RELEASE OHA JM' DISKETTE: pUSHf CU FA FF 1£ 00A4 CALL POP 1F 06E8 HARO_f I LE_ENO: 06£8 HARO_f I LE ENOl' 06E& DUMMY PROC DUMMY ENOl' OWORO PTR OS: [LANA_HARD_I NT I ; GO PERFORM 01 SKETTE REQUEST OS FAR 06E8 06EB -----:;~:~~;;;;;;;~;;;:i;;:~:i;;:;;i:;;;:i:;::;:;i;-;:~-:::-::::::-:::-------- i"" TO SOME FORM Of A DISKETTE SERVER THAT WILL HANDLE THIS REQUESTS k7;~~7 N;:~3-;~~~----- --NE~R------- ---- -- ----------- ---- ------ -- -- ----- ---------- : 06EB 06EB 06EC 06ED SAYE PUSH PUSH PUSH 1E " 57 OS 51 01 CHECK fOR I NT 13H REQUEST NOT SUPPORTED 06EE 06Fl 06F3 06F6 06F8 06FB 06fD 0700 0702 0705 80 74 80 74 80 74 80 74 80 75 FC 14 FC OF FC OA FC 05 FC 06 05 07 OA OB 0700 0700 070E 070F 0712 0714 0719 071A 07lB 0710 071E 07U 0722 0724 0125 0726 0727 012B AH,05 ~~~O~MO_113 BAO_CMO_113 AH,07 BAD CMO 113 AH,OAH BAO_CMD_113 AH,DBH DO_REQUEST ; IS IT FORMAT DES!REO TRACK ;YES,GO REPORT I NYAlID COMMAND ; IS IT A READ LONG ;YES,GO REPORT INYALIO COMMAND ; IS IT A WRITE LONG ;NO,GO AND PERFORM REQUEST BAO_CMO_lll: 0707 0707 0709 070A CM' JZ CM' JZ CMP JZ CM' JZ CMP JNZ 06 B4 01 MOY F, STC E9 0895 R JM' AH,Ol RIPL_INT13_EXIT : ERROR BAD COMMAND ;SET CARRY fLAG TO INDICATE ERROR ;GO REPORT ERROR DO_REQUEST: PUSH PUSH MOY MOY 1E 50 B8 0040 8E 08 TEST POP POP JNZ PUSH PUSH MOY MOV POP PUSHF f6 06 OOAl 40 5' 1F 75 12 1E 50 B8 0040 8E 08 5' 9C FA ClI CALL POP JMp FF lE 00A4 1F onc E9 0885 R 012f 072F 0730 0731 50 53 06 ROIR: D-30 Adapter BIOS SAYE PUSH PUSH PUSH OS AX AX, LO MEM SEG DS,A>C - ; PO I NT TO SEGMENT 40H BYTE PTR DS:[LANA_HARDWAREI.ACTV_RIPL ; IS REMOTE IPL ACTIVE AX OS RDIR ;YES,THEN REDIRECT INT 13H REQUEST OS AX AX,LO MEM SEG ; PO I NT TO SEGMENT 40H DS,AX-AX CWORD PTR OS: [LANA_HARD_I NT I ; HANDLE I NT 13H LOCALLY OS ENO_RORC ; DONE THEN LEAVE AX BX ES "2 £8 0898 R CALL CALC_ TOPM "5 26: c6 07 14 MOV ES: {aX I. NCB_COMMAND, NCBSEND; SET NCB WITH SEND COMMAND '" B8 C3 MOV ADO MOV AX,ex 05 0041 66 FO ,"0 26: 89 47 04 Be co 26: 89 47 06 26: C7 47 08 0008 MOV MOV MOV MOV ES: r3B r3E ,"4 '"6 r4A 26: 89 4C 02 26: 89 54 04 26: 89 04 MOV MOV POP MOV POP MOV MOV POP MOV 76A 50 PUSH 766 CO 5C 760 772 26: 80 7F 01 00 75[ 762 766 767 56 26: 89 44 06 56 26: 89 44 08 26: 88 44 OA 56 1775 " ,776 '778 177A 80 00 £9 oa7F R ,773 [ax J. NCB_BUfFER@,AX AX,ES ES: [ex I. NCB_BUFFER@+Z.AX ES: I ax I. NCB_LENGTH, 11 F9 84 80 80 Fe 02 1780 75 6c 26: C6 07 88 C6 1782 )786 )188 nBC nSE ; SEND 11 BYTES ox, [S, ex, '7 ES:WORO PTR [SI"'2J,CX ES;WORD PTR {SI+4[,DX ; CH-TRACK NUMBER, CL-SECTOR NUMBER ; DH-HEAD NUMBER, DL-DR I VE NUMBER IV< ;,~:WORD ES VALUE PTR [SI+6],AX ES;WORD PTR {SI+8],AX PTR [SI+OAHJ,AL ; ES:WORD PTR [51 LAX ;AH-COMMAND,AL-NUMBER OF SECTORS ex VALUE i~:BYTE IV< ; ISSUE A CALL TO NETB I OS TO PERFORM THE SEND eMP POP JZ STe MOV MOV JMP 74 08 1770 ; BUFFER AREA LOACT[O NEXT TO NCB AX, LEN_NCB 51 ,AX ; BUFfER CONS I 5T Of AX, ex, 750 754 756 75' 750 ;CALCULATE ADDRESS fOR NCB AND BUFFER USED BY RPL DO_RCVl: " 26: 89 47 04 Be co ES: [BX] . NCB_R£TCODE, NCBGOOD_RET? ; 0 I 0 DO_RCVl AH,80H AL,OOH END_RORC_E ;YES THEN GO DO A RCV FOR A REPLY ;OTHERWISE SET CARRY BIT TO INDICATE ERROR ;SET RETURN CODE TO ATTACHMENT FAILED TO REPONO ; LEAVE AND REPORT ERROR eMP JNZ MOV MOV AH,02H ; IS IT A READ DATA DO_SND? ;NO THEN IS IT A WRITE DATA ES: [BX]. NCB_COMMAND, NCBRECE I VE AX,SI MOV MOV MOV MOV ES: [ax I. NCB_BUFFER@,AX AX,ES ES: [ex]. NCB_BUFFER@+2,AX ES: [BX] . NCB_LENGTH, 11 )192 26: 89 47 06 26: C7 47 08 00 DB )798 CD 5C INT NET_INT J79A HA2 26: 80 7f 01 00 26: 88 04 75 03 )7A4 £9 Da7F R eMP MOV JNZ JMP ES; (ex]. Nce_RETCODE, NCBGOOD_RET? AX,ES;WORD PTR [SI] MSG I NCPLP ENO=RDRC_E J79F MSG_INCPlT?: )7A7 )7A7 )7AC 07AE 07AF £9 087F R 26: C6 07 15 07BA 26: 88 44 08 07BE 26: 89 IH 04 26: 88 44 06 26' 89 47 06 26: 88 04 07CF 0701 0703 80 00 DO_RCV2: B4 00 B1 09 03 EO 26: 89 47 08 0707 CD 5C 0709 070E 07El 26: 80 7F 01 00 26: 88 04 75 03 07U JZ 5Te MOV MOV F9 B4 60 07Bl )783 07GA 07GO CHP 26: 80 7f 01 06 74 08 0786 07C2 07C6 I T COMPLETE OK AX F9 07E7 07E9 B4 80 80 00 07E8 [9 0885 R 07EE 80 Fe 03 07F1 07f3 75 50 26: C6 07 14 26: 86 44 08 ; MESSAGE INCOMPLETE ;YES, THEN GO AND DO OTHER RCV ;OTHERI-IISE SET CARRY BIT TO INDICATE ERROR ;SET RETURN CODE TO ATTACHMENT FAILED TO REPOND ; LEAVE AND REPORT ERROR MOV MOV ES; [ex] . NCB_COMMAND, NCBRECE I VE AX,ES:WORD PTR [51+8] MOV MOV MOV MOV MOV MOV 5"L MOV ES: [BX]. NCB_BUFFER@,AX AX,ES:I-IORD PTR [SI+61 ES: (BX) • NCB_BUF FER@+2,AX AX,ES;I-IORD PTR (SI) AH,OO CL,09 AX,CL ES: (ex J. NCB_LENGTH, AX eMP MOV JNZ ES: [ ax]. NCB_RETCODE, NCBGOOD_RET? AX,ES:I-IORD PTR [SI] ERROR_R? JMP STe MOV MOV JMP AH, BOH AL, DOH END_ROKC 6X ; AZ ;CALCULAlIc Li:.NGTH OF BUfFER EXPECTED ;NUMBER OF SECTORS*512 BYTES/SECTOR NET_INT E9 0885 R 07E6 ES: [ax I. NCB_RETCODE, 06H DO_RCV2 AH,80H AL,OOH END_RDRC_E ERROR_A? : ;0I ° I T COMPLETE OK END_RDRC ;SET CARRY BIT TO INDICATE ERROR CONDITION ;SET RETURN CODE TO ATTACHMENT FAILED TO REPONO ; LEAVE AND REPORT ERROR MOV MOV AH,03 ;15 IT A I-IRITE DATA SM ELSE ;CHECK FOR OTHER REQUESTS ES:[BX].NCB_COMMAND,NCBSENO;YES, THEN SEND DATA TO BE USED FOR I-IRITE AX,ES:WORD PTR [51+8] BX DaDA OBoe DaDE 0810 26: 89 47 04 26: 88 44 06 26: 69 47 06 26: 88 04 B4 00 B1 09 03 co 26: 89 47 08 MOV MOV MOV MOV MOV MOV ROL MOV ES: [ax]. NCB_BUFFER@,AX AX,ES:I-IORD PTR [SI+6] ES: [ BX I. NCB_BUFfER@+2,AX AX,ES:WORD PTR [51] AH,OO CL,D9 AX,CL ES:! BX I. NCB_LENGTH, AX INT 07F7 OHB 07FF 0603 0807 DO_SND? : eMP JNZ DO_SND: ; ES ; IV< ;CALCULATE LENGTH OF BUFFER EXPECTED ; NUMBER OF SECTORS*512 BYTES/SECTOR ;ISSUE A CALL TO NETBIOS 0814 CD 5C 0816 26: 80 7F 01 00 0818 75 28 JNZ 0810 26: C6 07 15 MOV ES:[BX].NCB_COMMANO,NCBRECEIVE ;YES, THEN 00 A RECEIVE TO REGISTERS ;USED !N tHE OPERATION 0821 88 C6 MOV AX,SI 26: 89 47 04 ES: [BX] • NCB_RETCODE, NCBGOOD_RET? ; 0 I 0 0823 0827 Be co 0829 OB20 26: 89 47 06 26: C7 41 08 OOOB MOV MOV MOV MOV ES: [BX). NCB_BUfFER@,AX AX,ES ES:[BX}.NCB BUFfER@+2,AX ES:[BX].Nce=LENGTH,11 0833 CD 5C INT NET_INT 26: 80 7F 01 00 26: 88 04 75 09 Fe 00 14 41 eMP MOV JNZ eMP JZ 5Te ES: [BX J. NCB_RETCODE, NCBGOOD_RET? AX,ES:I-IQRO PTR [SIJ ERROR_W? AH,OQ END_RDRC 0835 083A 0830 083F 0842 0844 BO F9 I T COMPLETE OK ; NO THEN GO AND REPORT ERROR ;ASK FOR 11 BYTES Adapter BIOS 0-31 0845 END_RDRC JMe E8 3E 90 ERROR_Ii'? : 0848 0849 0848 0840 B4 80 BO 00 (B 36 90 0850 0850 0654 26: C6 07 88 C6 0856 065A 065C 0660 26: 89 47 04 8C CO 26: 89 'f7 06 26: C7 47 08 OOOB 0866 CD 5C '9 STC MOV MOV ;00 A RECflVE '5 or ; LEAVE AND REPORT ERROR 11 BYTES TO STATUS OF INf 13H REQUEST MOV Mav ES: ! BX). JiC8_COMMAND, NCBRECE I VE AX,SI MOV MOV MOV MOV ES:[BX].NCB_BUFFER@,AX AX, ES ES:[BXJ.NCB_BUFFER@+2,AX [S: [ BXJ . NCB_LENGTH, 11 NET_INT " 0868 0860 0870 0874 0876 0879 0876 ;SET CARRY BIT TO INDICATE ERROR COJiDITION ;SET RETURN COOE TO ATTACHMENT FAILED TO REPONI AH,80H AL,OOH END_RDRC JMP CMP MOV MOV JNl CMP JZ 00 ES: [BX] . NCB,_RETCOOE, NCBGOOD_RET? AX,rS:WORD PTR [SI 1 BL,ES:BYTE PTR [51+101 ERROR W? BL,OOEND_RDRC STC EB 07 90 087F 087F 0882 80 FC 00 088 ' • '9 eMP JZ 7!! 01 AH,OOH ENO_RDRe '" ;RESTORt REGISTERS 0885 0889 0880 0891 26 : 88 4C 26 : 88 54 26: 88 :-C 26: 8E 'II! 02 04 END,_RDRC: PTR PrR PTR em MOV MOV 08 Mev 06 MOV I NT13_EXI T: 089:- RESTORE POP POP POP 5F 5E H 0898 FAR 0898 REf 0898 OUMMY1 0898 ENDP CALC TOPM: LOOK IN LOW 5TRORAGE (0040H:0013H) AND GET NUMBER OF lK-BYTES ON THIS MACHINE MULTIPLY BY 1024 TO GET NUMBER OF K-BYTES. lK-BYTES HAVE Al.READY BEEN SUBTRACTED fROM THIS VALUE TO BE USED FOR NCBS AND BUFfER SPACE FOR RPL. ES:BX WILL POINT TO BEGINNING OF THIS MEMORY SPACE PROC NEAR 089C 0890 089E "" CAlC_ TO PM 52 50 PUSH PUSH PUSH PUSH OS CX DX 089F 08A2 08A4 B8 0040 BE 08 A1 0013 MOV MOV MOV AX, LO MEM SEG OS, AX; PO I NT TO SEGMENT 40H AX,WORD PTR DS:MEMORY_SIZE ; LOCATION WHERE MEMMORY SIZE OSA7 08A8 OE PUSH POP CS OS 0898 089[3 08A9 OeAD 08AF 08Bl 0883 08B5 08B6 OB87 0888 0889 H F7 26 OOOf R MUl MOV SHl 81 OC 03 £2 OS: T1 K IS RECORDED ;MULTYPLY BY 1024 TO GET K-BYTES Mev 8E C2 8B 08 MOV POP 58 5A 59 POP POP H POP C3 RET OBBA CALC_TO PM [NOP ----------------------------------------------------------------------------- i CHG RDRC: USED BY UNLINK COMMAND '1'0 STOP REDIRECTION FO FROM GOING OUT TO THE NETWORK. , OBBA 08BA 08BB OBBC INT 13H REQUESTS -------------~-----------------.--------------------------------------------- : " 06 53 SAVE PUSH PUSH PUSH BYTE PTR OS: [I.ANA_HARDWAREI,ACTV_RIPl. ;00 ONLY IF RPL IS ACTIVE END CIIG RORe ; NOT ACT I VE THEN LEAVE BYTE PT"R OS: [LANA_HARDWARE L ALL_B I TS-ACTV_R I PL ; CLEAR RPL ACT IVE FLAG 08BO 08C2 08C4 f6 06 00A1 40 74 10 80 26 (lOA] BF TEST JZ ANO 08C9 08CC 0800 E8 089B R 26 : C6 07 CO 5C CAl.L MOV 0802 84 00 " D-32 Adapter BIOS INT MOV os ES BX ;LOCATE RPL WORKING AREA CALC_TOPM [S:{BX).NCB_COMMAND,NCBHANGUP ;CLOSE THE SESSION WITH NET_INT ; ASSUME GOOD RETURN IBMNET800T END_CHG_RORC: '04 RESTORE \04 IDS 106 58 07 1F ~D7 C3 Foe FOF FOF BX ES OS ~D6 8U8 808 NEAR 809 aDe seE ;RIS10RE INTERRUPT 18H 8<2 8E6 8EA 8EE 8F1 8F5 ;5£T [lACK 10 ZEROS CHECK FOR M[MORY IN SYSTfM AND SUBTRACI lK TO B[ USeD BY NCBS AND BUFFER SPACE FOR RPl B8 8[ A1 MOY NUMBER OF K-BYTFS IN SYSrEM SU, '" A3 )907 ; PO I N r TO S[GMUH 40H MUY MUY MUY [8 089B R CAl.C __ fOPM ; LOCATE RPL WORKING AREA CLEAR NCB ARFA BEfORE USING ;POINT 10 BEGINNING OF ; CLEAR ALL OF NCI:3 NCB DO AN ADAPTOR STATUS TO GEl NODE ID IN oRO[R 10 fORM PERMANeNT NOOf NAME MOY MOY MDV ADO MOY MOY MOY MOY MOV 06 08 ;MINIMUN LENGHl FO ADAPTER STATUS 'NT ; CHECK ,OR REMOTE 0934 26: 0939 74 03 JZ 00. RESET 0938 £9 0909 R JMP 0o_1 NTt8 r6 1.4 04 40 ES;BYTE PTR [SI+4j,RIPL_OFF ; DO AN ADAPTER RESEl MAX SESSION MAX COMMANOS 26 : (;6 07 32 093E 0942 26: c6 47 07 20 MOV 0947 26 : C6 47 03 20 MOY 094C CD 5C MOV 7F 24 47 04 094E 0952 0956 0958 0958 095C 095D F3/ A4 095F OE 1F 0960 0961 0966 DO_RESET: 2E: ; FOR NAME USE 80 36 0001 R 26: C6 07 10 096A 0960 89 OOOB 26 : 80 7F DA 0971 f3/ A4 0973 0975 0979 26: 88 47 2A 26: 88 47 28 0970 CO 5C MOV LEA '0 FO 097F eX,11 D I , [S: [ BX J • NC~B_CALLNAM( ; fOR CALL NAME USE" I BMNEfBOOT" MOY MUY MUV eMF DO JZ 0984 0986 JMF 90 INTERRUPT 0989 098A 0988 098E PERMANENT NODE NAME 06 FA C 113: 13H REQUEST TO NETWO~K PUSH eLF ;CLEAR 88 0000 BOY AX, I NTERRU PI _VECTOR_SEGMENT BE CO MOV ES,AX INTERRUPTS WHILE WE CHANGE INT 13H Adapter BIOS D-33 0990 26: C7 06 004C 06E6 R MOV ES:HARD_'NTO,OFFSET R'PL_'NT13 ;POINT INT 13H TO ROUTINE THAT SENDS ; THESE REQUESTS OVER NETWORK 0997 0998 0990 099E OE ,. PUSH POP CS ES:HARD_'NT0+-2 07 POP 099f 09AO 09A3 09A5 1E B8 0040 8E 08 80 DE OOAl 40 09M 1F PUSH MOV MOV OR POP 09AB 09AE 09Ar 09Bl 0963 09B5 09B8 09BA 0960 09CO 09C3 09CS 09C7 09C8 09CA B9 0004 73 05 E2 E2 JNO LOOP R I PL_ACTV GET_BOOT IF SUCCESFULL GO AND EXECUTE BOOT RECORD DO I T FOR RETRY T t MES 09CC EB DB 90 JMP DO_'NT18 TIMEOUT GOTO ROM BAS I C 09Cf 09Cf 0902 B8 0000 8E 08 MOV MOV AX,OOOOH OS,AX 0904 2E: JMP BOOT_LOCN 26: 8f 06 004E STI ; GtT _BOOT: 51 B4 CD 64 BB 8E B6 BA B9 BO CD 00 13 02 0000 C3 7COO 0000 0001 01 13 OS ; PO I NT TO SEGMENT 40H OS,AX BYTE PTR OS: [LANA_HARDWAREj,ACTV_RI PL ;SET UP FLAG TO INDICATE RPL ACTlVE OS AX, LO_MEM_SEG DO A REQUEST FOR BOOT RECORD ex AH,O 13M AH,02 BX,O ES,BX BX,7COOH OX,O BOOT LOCATION DRIVE 0, HEAD a SECTOR 1, TRACK 0 READ ONE SECTOR DISKETTE I/O CX,Ol AL,l 13M INT ex POP 59 SET RETRY COUNT SAVE RETRY COUNT RESET 0 I SK DISKETTE I/O READ I N A 5 I HGLE SECTOR TO THE BOOT LOCATION CX,04 MOV PUSH MOV INT MOV MOV MOV MOV MOV MOV MOV R I PL_ACTV: fF 2E OOOB R 0909 ; 0909 09DG 09DE 09El 09E4 09E7 09£9 B8 8E Al 05 A3 CO 09EA 09EA " RESTORE THE 1 K TAKEN OUT AX, LO MEM SEG MOV MOV MOV ADD MOV INT I RET 0040 08 0013 0001 0013 18 REM_I PL ENDP NETwORK ENOS DS,A>CAX,WORO PTR DS:MEMORY SIZE AX,D1H WORD PTR DS:MEMORY_SIZE,AX 18H ;GO TO ROM BASIC ,"0 TITLE LANA~O I NTERRUPT HANDLER LANA_O. ASM LANA a's IN"TERRUPT HANDLER. MODULE: LAN"A_D_HNDLR COMPONENT : NETWORK B I OS HANDLES THE LANA 0 (IRQ2 OR INTERRUPT ARE: IRQ3) INTERRUPT. VALID REASOt'{S FOR A LANA DMA COMPLErE COMMAND COMPLETE --> COULD CAUSE A NErBIOS POST LAN"A REQUEST FOR DATA FROM PC LANA REQUEST TO XFER DATA TO PC ALL REGISTtRS AND FLAGS ARE PRESERVED. NETB lOS. LIB CONT A I NS THE NETB I OS I NTERFACE EQUATES AND STRUCTURES LANAS. INC CONTAINS THE LANA INTERFACE EQUATES AND STRUCTURES 0000 NETWORK SEGMENT ASSUME ASSUME ASSUME ASSUME 'CODE' CS:NETWORK DS:NOTHING SS:NOTHING £S: NOTH I NG EXTRN STARTS UP A DMA XFER WITH A LANA PUBLIC PUBLIC LANA LANA o's o's INTERRUPT HANDLER PROGRAM I/O'ER • LI ST " 0020 ALL_BITS THE 8259 £01- EQU EQU EQU OFFH 20H 20H ; AID TO MASKING OFF BITS ; 8259 PORT TO SEND [0 I CMD TO ; CMO CODE FOR EO I " 0000 " 0070 AWHILE CHUNK_S I ZE EQU EQU OOOOH 0070H ; ; " " DOFF 0020 AMOUN"T OF T I ME TO WAIT ON I NT(RFACE MAX. SIZE OF A PROGRAM 1/0'0 "CHUNK" '" 9180 LANA_O_HNDLR HANDLES THE LANA_O (I RQ2 OR INTERRUPT ARE: I RQ3) INTERRUPT. VAL I D REASONS FOR A LANA DMA COMPLETE COMMAND COM-PLETE --> COULD CAUSE A NETBIOS POST LANA REQUEST FOR DATA FROM PC LANA REQUEST TO XFER DATA TO PC ALL REGISTERS AND FLAGS ARE PRESERV£D. 0000 D·34 Adapter BIOS NEAR 0000 0001 0002 SAVE PUSH PUSH PUSH 50 52 1£ AX OX OS SET UP GLOBAL ASSUMPTIONS rc 0003 0004 0007 BB 0040 6E 08 CLD MOV MOV 0009 0006 BO 20 E6 20 MOV OUT 0000 0010 0012 BA 0360 EB 00 EC MOV 0013 0014 0016 0016 0019 50 PUSH OR ; ; ; ; All STRINGS GO UP POlriT TO LO_MEM_SEG LATER OS PTS TO LAriA RESERVED MEMORY TELL THE 8259 TO STAAT LATCHlriG THIS IriTEAAUPT AGAlri AL,EOI THE_8259.AL ; GET LANA STATUS IN OC 80 EB 00 58 JMP OUT POP F6 06 00A2 08 74 11 TEST JZ EE ; 001A DOH ox, LANA_D_SR $+2 AL,OX JMP AL.80H $+2 DX,AL 60 AS 74 60 EB 0032 0034 AS 60 75 73 7F OE 00A2 04 76 90 ; HC_SET?: 0036 0038 003B 003C 003E 0040 8A BA EC 24 22 74 EO 0363 0042 0045 F6 C4 01 74 3B 41 C4 67 F6 C4 40 74 16 ; ; 60 26 00A2 OF 80 26 OOA' 7F AH,AL OX, LANA_O_H I R AL,OX AL,TCI+GI AL, AH LANA_EX I T INSURE THIS BA 0363 EC 24 8F EB 00 EE EB 3F 90 INTERRUPT LANA MUST BE ASK I NG PC TO DO A CMD DMA COMPLETE TEST AH, TC LANA_REQUEST JZ YES. ; OMA TERM I NAL COUNT REACHED? RELEASE OMA AND AND BYTE PTR DS:(LANA_O_STATUS),ALL_BITS-LANA_DMAING 8YTE PTR OS: [ LANA_HARDWARE), ALL_B I TS-OMA_3_BUSY DISABLE DMA COMPLETE NOT DMA COMPLETE. ; ; LANA ISN'T DMAING ANYMORE SO DMA I S NO LONGER BUSY INTERRUPTS (IN CASE SOMEONE ELSE USES DMA_3) OX, LANA_O_HI R AL, OX Al,ALL BITS-TCI-IO METHOD $+2 ~ OX, AL CLEAR_GO MOV IN AND JMP OUT JMP ; INTERRUPT? GET CURRENT PC ; INTERFACE REGISTER TURN OFF "TERMINAL COUNT" INTERRUPT ENABLE GET THE CODE FOA THE CMD THAT LANA REQUESTS LANA_REQUEST: 0062 0062 0065 IS A "i'lr.AL" TEST JZ ; 0056 0059 005A 005C 005E 005F I F PC OWNS INTERFACE THEN IGNORE TH I S INTERRUPT IGNORE UN-ENABLED INTERRUPTS MOV MOV IN AND AND JZ ; 004C 0051 EXIT IGNORE INTERRUPTS WHILE PC IS (PC IS POLLING SR FOR GO=O) ; MAYBE. 0047 004A SET COMPLETE CODE. BYTE PTR OS: i LANA_O_STATUS J, ALL_B I TS-LANA_GETT lNG_NCB AL, CPL T _CODE LANA_EX I T BYTE PTA OS: ( LANA_O_STATUS J, LANA_HARD_EAR LANA_EXIT JNZ ; I NTEARUPT TO LANA BYTE PTA OS; [LANA_O_STATUS), LANA_GETT lNG_NCB HC_SET? TEST ; ACKNOWLEDGE I F LANA IS GETT I NG AN NCB THEN AND TEST JZ OA JMP 26 00A2 F7 06 ; AX GOT NCB. 0021 0026 0028 002A 002F ; GET TH I SLANA'S STATUS POAT ADOA AX SA 0361 EC MOV IN OX, LANA_O_PR AI.., OX ; ; PO I NT TO LANA a's PARAMETER REG I STER GET THE "CMD CODE" I T A "REQUEST DATA TO/FROM LANA" CMD? 0066 0068 OOM 006C 3C 74 3C 74 44 2C 42 28 CMP JE CMP JE 006E 0070 3C 43 74 lE CMP JE ; ; 0072 0074 0076 0077 0078 0078 007C 0070 3C 45 75 DC EC 52 BA 0362 EE 5A 80 OE 00A2 02 E8 0249 R 0085 0088 0089 008B 0080 BA 0360 EC A8 80 74 13 EB lA 90 MAYBE A "NCB COMPLETE" THEN? AL, NCB_CPL T CMO_CPLT ERROR REPORT FROM LANA CMP JNZ IN· PUSH MOY OUT POP OR ; 0082 NOPE. AL, DATA_TO~LANA OATA_REQ AL, DATA FROM LANA OATA_REQ- INVALID Al, ERROR FROM LANA INT BAD - AL,OX OX OX, LANA_O~OR DX,AL OX BYTE PTR INTERRUPT. ; SAVE FATAL ERROR REPORT ; IN DATA REGISTER FOR LATER VIEWING as: (LAtoIA_D_STATUS), LANA_HARO_ERR1 CATASTROPHIC ERROR! CATASTROPH IC_ERROR ; OETERM I NE WHETHER TO CLEAR GO MOV IN 1 EST JZ GET THIS LANA'S STATUS PORT VALUE DOES LANA OWN I toITERFACE? I F YES, CLEAR_GO JMP ; HANDLE "NCB COMPLETE" CODE Adapter BIOS D-35 CMD_CPL T: CALL JMP COMMAND_CPLT LANA_EXIT ; CLEARS GO ; PROCESS "REQUEST DATA TO/FROM LANA" CMD ; OON'T CLEAR GO INTERNALLY IF USING OMA fEST JHZ ; CLEAR GO: TELL LANA REQUEST MOY ; GET CURRENT Sf{ PORT YALUE TURN OFF THE GO BIT $,2 OX,AL OUT LANA_EX IT: IS COMPLETE OX, LANA_D_SR AL, OX AL, ALL_B ITS-GO IN ANa JMP I NTERRUPT RETURN RESTORE POP POP POP COMMAND_CPLT lID'S THE NCB (OF THE. COMPLETED eMD) OVER ~ROM THE LANA. IS NO-WAil TYPE, fHE POST ROUTINE IS INVOKED. PROGRAM IF THE. NCB THE FOLLWING CONVENTIONS SHOULD BE FOLLOWED: REGIS'IER os OX AX INTERRUPTS SHOULD BE MASKED ON ENfRY. NOTE: CLEARS GO COMMAND_CPLT OOAO OOAE OOAF OOBO 00B1 06 53 0082 0087 80 DE OOA2 40 CB 0088 OOBB E8 0260 R 26: C4 70 ""'6 ; INTERNALLY. PROC NEAR I,QCK INTERFACl &: ENASI.E INTE.RRUPTS gyrE PTR DS:[LANA_O~STATUS1,LANA_LOCKED OR Oft GET NCB'S DESTINATION AD DR &: LENGrH 3', ; GET REAL NCB ES: BX ; 57 ; snup BA 0363 INTERFACE FOR PROGRAMMED MOV EC '" ANO <'4 C7 OC 00 EB 00 Of< JMP OU1 [E SETU P TO READ SA BE MOV A4 MOV 87 IS IT READY? IF NOT, JMP TO WAITER GET NCB BYTE; XCHG IN SfOSB ; 00E3 00[3 00[6 00[6 OOE7 00E9 OOlB OOEC OOEE BYTE OF NCB " B7 06 E.e OOEO WAIT FOR (THE NEXT) EG 84 C4 74 09 AA OODE I N THE NCB FROM THE LANA MOV ; 0003 0003 0005 0006 0008 F3 " " EB LOOP LOOP JMP 90 OX, S I AL,OX I f MORE NCB 10 READ NCB NOT READY: MOV EC NCB NOT R[ADYZ: IN 84 C4 75 EF 48 JNZ F8 JNt E8 0249 B D-36 Adapter BIOS TEST OEC ; IN NEXT NCB BYTE NCB_XFERD BYTE NOT READY. BB 0000 " SAVE BASE OF NCB FOR LATER I/O FROM LANA WAIT UP TO "AWHILE" BX,AWH I LE AL,OX AL,AH GET NCB BYTE BX NCB_NOT_REAOY2 rlMEOUT WHILE WAITING. CATASTROPHIC ERROR! CATASTROPH I C_ERROR ; SEl NCB RETURN CODE TO NCBSYS_ERR? RESTORE OOFl 00F2 OOF? 26: c6 47 01 40 EB 02 90 JM' ; OOFA 00 FA NCB_xfERD: 56 NCB TRANSFERRED. RESTORE POP ; MASK OOFB FA OOFe 80 26 00A2 BF BA 0360 '"0 Ee '" '"0 0101 0104 0105 0107 0109 CLEANUP: EB 00 26: 26: 26: 26: 88 89 8B 89 47 47 41 41 UNLOCK INTERFACE, SAVED FROM 0 I TELL LANA WE'RE DONE BYTE PTR OS:! LANA_O_Sl A TUS), ALL_B I TS-LANA_LOCKEO OX, LANA 0 SR Al, ox Al, ALL 8 I IS-GO $+2 DX,AL JM' OOT EE ; INTERRUPTS, SAVED FROM D I GET NCB BASE ADDRESS BX May 24 FE ; l BX). NCB_RETCODE, NCBSVS_ERR? CLI ; 01QA 010E 011? 0116 <8X> 8X ES: BYTE PTR CLEANUP Mav '0' 56 RESTORE BUFFER@ TO SEC:OFF TYPE AD DR 38 Mav Olt MOV May Mav 3A 06 IF NCB FOR MUl.TIPI[ SEND RESTORE SECOND BUFFfR@ TO SEG:OfF TYP£: AD DR 011A 0110 011 f 0121 Mev 07 ANO CMP J" 0123 0127 0128 012F 26 : 26: 26: 26: 01B 26: 8A 47 01 26: 88 47 31 8B 89 88 89 47 3C 41 oc 4-' 3E 117 DE MOY MOV MOV MOV ;UPDA1E NCB CMD CPLT 0137 UOT RCD' AL , ,-S: [ BX J • NCB.,REl coot:: [S:BYTE PTR [BX].NCB_CMD_CPU,AI MOV MOV ; POST TH I S NCB? 00 WE CMD_t::X I J ;CHlCK fOR POST ADDRESS BEIGN ZERO (NO._WAIT,NO .. POSTI 014A 014F 0151 0156 26: 83 7F 2C 00 75 (J"! 26 : 83 7F 2f 00 0158 015C 0150 26: 8A NO_WAIT?: 74 09 CMP JNZ eMP JE ; 1~7 01 G[f RElCODE & POST YlS. POST: (AS AN INTERRUPT) AL, FS: [BX). NCB_Rf TCOOE 9C 26: FF 5F 2C [S: DWORD PTR I BX). NCB .POST@ ; 0161 0161 0162 0163 0164 0165 0166 FS:WOKO PTK !BX].NC8 POS1@,OOOOH POST ES:WOfW P1R [I3X].NCB __ POST@+2,OOOOH CMD_EXll RETURN "" SF 58 07 e3 0167 INltRRUPTS SHOULD BE MASKED ON ENTRY. 0167 0161 0168 0169 51 016A SA EO 016C 80 OE OOA2 40 06 57 ; 0171 E8 0260 R SAVE' CMO CODE FOR LAT[I{ AH,AL ; LOCK INTERFACE ; GET DATA'S PC ADOR &: LEN BYTE PTR OS: [ LANA_O_ST A TUS] l_ANA__ LOCKED AODR_AND_LEN Adapter BIOS D-37 ; SETUP FOR PROGRAMMED I/O (HAY LATER CHANGE TO DMA) BA 0363 0114 0117 011B 011A 0110 017f 0161 0184 0166 24 SO 75 OC E6 DC EE 0187 018C F6 06 OOAl 60 74 16 Ee C7 fC 44 05 06 03 90 00 IN ANO ; GET CURRENT INTERFACE SETUP ; MASK OFF AREA OF INTEREST ; I SIT TO OR FROM THE LANA? eMP JNE OR TO LANA JMP fROM LANA: OR OIR3ET: OUT ; BYTE PTR os: GET_DMA_3 ; YElL 018E Ol8F 0192 F. E8 0169 R FA 0193 0198 F6 06 OOA2 04 75 16 IN THE CORRECT DIRECTION MOY FROM LANA r LANA_HARDWARE], DHA_3_BUSY PROGRAM I/O A "CHUNK" PROGRAM_IO:STI CALL ; ALLOW INTERRUPTS &. HOPE THAT OHA fREES UP eLi ; CATASTROPHIC ERROR HAPPEN? TEST JNZ BYTE PTR OS: DATA_EXIT ; NOPC 019A 019D 83 F9 00 74 11 JZ 019F 01A2 01A4 83 F9 70 73 £3 E6 E8 CMP JNB JMP 01A6 01A9 BA 0363 ; 01M 01AC OlAF 01BO 80 26 00A2 BF 0185 0186 0187 0188 07 59 D~TA r LANA_O_STATUS L ; LANA_HARO_ERR IF SO, EXIT LEFT TO XFER? eMP ; ; YES. 50 BO 01 E8 0000 E 5. MORE I F NOT, EXIT WORTH TRY I NG FOR OMA? CX,CHUNK SIZE TRY_DMA_3 PROGRAM_' 0 SETUP &: START OMA (OF REMAINING DMA) GET_DMA_3: MOV PUSH OX, LANA_O_H I R AX CALL AL, 01 OMA_START_UP POP AX MOV INDICATES LANA REQUESTING DMA ; UNLOCK I NTERFAGE AND RETURN DATA_EXI T: AND RESTORE 5F BYTE PTR OS: [LANA_O_STATUS], ALL_B ITS-lANA_LOCKED 01 ES POP POP POP e3 ex RET 01B9 LANA_OATA_REQ ENOP PROGRAM I/O'S A "CHUNK" OF THE REMAINING OATA BETWEEN THE PC Eo LANA. THE FOLLWING CONVENTIONS SHOULD BE FOLLOWED: _~:~~~~:~ ___ L__ ~??:~~ __ l________________ ~~~~: _________ . _______ . ___ _ : : : : : AM ES:OI ex OX CONST CONST VAR VAR DESTROY : : : : : LO MEMEORY SEGMENT CMD CODE OF LANA REQ START OF "CHUNK" I N MEMORY LENGTH Of REMAINING DATA INTERNAL INTERRUPTS SHOULD BE UNMASKED ON ENTRY. 01B9 01B9 alBA 01B6 PROGRAM_' O_CHUNK PROC NEAR SAVE PUSH PUSH PUSH 56 50 53 51 AX .X SETUP CHUNK SIZE, DATA PORT ADOR, UPDATE "REMAINING OATA" SIZE 018C 018F OlCl 01C3 01C5 BA 38 73 68 28 0070 CA 02 01 CA 01C7 01C8 01CA 88 CA BA 0362 MOV MOV OlCD 0100 80 FC 44 75 4F eMP 51 OX, CHUNK SIZE MOV eMe ex, ox JM' MOY GOT CHUNK DX,C;X CX,OX GOT_CHUNK: SUB SAVE PUSH - ex CX,DX OX, LANA~O_DR ; DATA TO LANA? AH, OATA_ TO_LANA FROM_LANA2 JNE ; YEP. 0102 66 f7 01014 0105 0106 0107 0108 OlDB 0100 06 1E 07 1F SF 0360 B4 10 EB OA 90 OlEO 01E;2 01E3 01E5 87 FA MOV SWAP PUSH PUSH POP POP MOY MOY JMP ; Ee 64 C4 74 09 SETUP SOURCE PTR &: PORT ADDRS 51,01 ES, OS ES OS ES OS 01, lANA_O~SR AH, ORE OUT_ TO_LANA2 ROOM IN DATA REGISTER? DATA ROOM? :XCHG IN TEST JZ DI,DX AL,DX AL,AH NO_ROOM ; STUfF BYTE INTO DATA REGISTER 01E7 01E7 87 07 OUT TO LANA: XCHG D-38 Adapter BIOS DX,OI ; ROOM IN DATA REGISTER? 01E9 01E9 01 EA AC 01 EB 01 ED E2 F3 EB 15 90 OHO 01F3 01F4 01 F6 01F8 01 F9 BB 0000 01FB 01 FC 06 OUT_TO_LANA2: LOOSe OUT EE ; ; EC 84 C4 75 EF DATA_ROOM? LANA_GOT_AlL? WAIT UP TO "AWHILE" FOR ORE ex, AWHILE NO ROOM: MOV ROOM_NOW?: IN TEST AL, OX AL,AH OUT TO LANA BX ROOM NOW? ES, OS ES JNZ "' OEC JNE 75 F8 SWAP PUSH PUSH POP POP MOV JMP 1E OHD 07 01FE 01FF 0201 1F 88 FE EB 3E 90 ; 0204 0204 0205 0206 0207 0208 020A 020C 020E 020F 0211 ox, AL lOOP I F MORE "CHUNK" TO SEND LOOP JMP as ES os 01,51 10_ TIMEOUT HAS LANA GOT ALL OF THE "CHUNK" YET? LANA_GOT_AL~~~p IF MOV IN TEST JZ ; NO. 0213 0216 0216 0217 0219 0218 021C 021 E B8 0000 0221 0224 8E 0360 84 20 FROM_LANA2: MOV MOV 0226 0228 0229 022B 87 06 ANY_DATA?: XCHG IN TEST 84 C4 74 29 DX,OI 01, SI AH,ORF AL, OX AL,AH CHUNK_DONE MOV 84 C4 74 31 EC os ES as MOV EC AL, ox AL, AH CHUNK DONE JZ OEC BX JNE GOT ALL NOW? 10_TIMEOUT JMP ; DATA REGISTER TOTALLY EMPTY? I F SO, CHUNK I S DONE FOR LANA TO GET ALL OF IT aX,AWHILE MOV 08 ; ; WAIT UP TO "AWHILE" GOT _ALL_NOW?~ IN TEST 75 F8 EB 21 90 RESTORE REG I STERS TO "ON ENTRY" SETUP ES, OS ES PUSH PUSH POP POP 06 1E 07 88 07 8B FE 84 20 TIMEOUT EXP I REO? IF NOT, TRY AGAIN RESTORE REGISTERS TO "ON ENTRY" SETUP DATA REGISTER TOTALLY EMPTY? I F SO, CHUNK I S DONE TIMEOUT EXPIRED? IF NOT, TRY AGAIN - SETUP FOR I/O FROM LANA ; OATA BYTE WAITING? EC 84 C4 74 09 ; 0220 0220 022F 0230 0231 0233 87 F2 EC AA E2 F3 EB OF 90 B8 0000 EC NO DATA: DATA_NOW?: 84 C4 75 EF OEC TIMEOUT WAITING ON E8 0249 R 0245 0246 0247 0248 " 5B C3 0249 I/O. DATA BYTE WAITING NOW? IF SO, GO GET IT TIMEOUT EXP I RED? IF NOT, TRY AGAIN CATASTROPHIC ERROR RETURN CHUNK_DONE: RESTORE POP RESTORE POP POP POP RE7 '8 5E FOR DATA BYTE FROM LANA CATASTROPH I C_ERROR ; CHUNK DONE. 0244 0244.. IF MORE DATA REMAINS BX, AWH I LE AL,DX AL,AH I N FROM LANA BXDATA_NOW? JNE 75 F8 LOOP ANY DATA? CHUNK_DONE WAIT UP TO "AWHILE" JNZ 08 IT, SI,DX AL,DX MOV IN TEST ; 0241 YES. AL,OX AL,AH NO_DATA GET IT, STORE I N FROM LANA: XCHG IN STOSS LOOP JMP ; 0236 0239 023A 023C 023E 023F OX,~I JZ CX BX AX Sl PROGRAM_ID_CHUNK ENDP CATASTRDPH I C_ERROR HANDLES CATASTROPHIC INTERfACE ERRORS. THE FOLLW I NG CONVENT IONS SHOULD BE FOLLOWED: _~:~~~~:~ OS : AX : CONST DESTROY DESTROY , : LO MEMEORY SEGMENT INTERNAL INTERNAL CATASTROPHIC_ERROR PROC NEAR 0249 ; 0249 024c 0240 024F 0251 0253 0255 ___ •__ ~~~~::: __ l ______ ~ _________ ~~~~: ________________ ~ ____ _ : ox IF LAMA OWNS BA 0360 EC A8 BO MOV 75 A8 74 24 JNZ 09 01 05 F9 IN TEST TEST JZ ANO INTERFACE (WITH GO SET), ox, LANA 0 SR AL,OX - AL,HC SET_SPCL AL,GO SET SPCL AL, ALL_B I TS~CPLT_CODE SET CPLT_CODE TO "CANT_CPLT?" DOES LANA OWN INTERFACE? IF NOT, DON'T SET CPLT_CODE IS LANA WAITING ON THE PC? ~~S~~T MAg~N ~~F Si~E~P6~-~~~~REST Adapter BIOS D-39 0251 0259 OC 04 EE OR ; AL,CANT_CPLT? OX, AL OUO ; REPORT A HARDWARE ERROR ; RETURN AND SET AS DES I RED 025.60 025.60 80 DE 00.602 04 RET 025F 0260 CATASTROPH IC_ERROR ENDP CETS A 32-81T ADDRESS AND 16-81T LENGTH FROM LANA_D'S PR PORT. HIE 32-81T ADDRESS IS CONVERTED INTO A SEGMENT:OFFSET PAIR. THE FOLLWI NG CONVENT IONS SHOULD BE FOLLOWED: ____________ REGISTER -t ___________ ACCESS -t _____________________________ - - - - - ________ _ : LANA'S PR PORT ADOR , ADDRESS IN SEGMENT:OFFS[T LENGTH FORM 0260 0260 SAVE PUSH 50 AX CET 32-B I T ADDRESS EC 8A C8 81 E1 OOOF 88 F9 8A C8 EC 8A E8 C8 01 F9 01 E9 01 E9 01 E9 EC 01 ; ex GEf LOWEST 4 BITS OF ADDR GET NEXT 12 BITS (TOP 4 8ITS=0) SA EO EC 01 01 D1 01 " AX BECOMES SEGMENT 1YPE ADDR 03 OF ec 8A C8 EC 8A E8 0?91 0292 58 C3 0293 ADDR_AND_LEN [NDP 0293 NETWORK ENDS END TITL[ LANA_1 INTERRUPT HANDLER LANA_' . ASM S INTERRUPT HANDLER. MODUI E : COMPONENT: LANA_ 1. HNOLR NETWORK BIOS HANDLES THE. L.ANA_1 INTERRUPT ARE: (IRQ::: OR IRQ3) INTERRUPT. VALID REASONS FOR A LANA OMA COMPLETE COMMAND COMPLETE --> COULD CAUSE A NETBIOS POST LANA REQUEST FOR DATA FROM PC LANA REQUEST TO XFER DATA TO PC ALL RfG I STERS AND FLAGS ARE PRESERVED. NETB I OS. LIB CONT A I NS THE NETB I OS I NHRrACE EQUATES MoW STRUCTURES LANA~. INC CONTAINS THE LANA IIHERFACE EQUATES AND SrRUCrURES ;---------------------1]000 PARA PUBLIC ' CODE' ASSUME ASSUME ASSUME ASSUME CS: NETWORK DS:NOTHING SS:N01HING ES:NOTHING EXTRN DMA__ START_UP NEAR STARTS UP A DMA XFER WITH A LANA LANA 1 HNDLR NEAR LANA 1'S I N1ERRUPT HANDLER • LIST '" 0020 '" 0020 ALL_B I TS EOU DFFH AID 10 MASKING OFF BITS fHE_8259 EOU EQU 20R 20R 8259 PORT TO SEND EO I EO' D-40 Adapter BIOS CMO CODE FOR EO' = 0000 = 0070 AWHILE CHUNICSIZE EQU lQU OOOOH 0070H ; AMOUNT OF TIME TO WAIT ON INTERFACE ; MAX. SIZE OF A PROGRAM '/0'0 "CHUNK" = 9180 LANA_l_HHOLR HANDLES THE LANA_' INTERRUPT ARE: (.RQ2 OR 'RQ3) INTERRUPT. VAltD REASONS FOR A LANA OMA COMPLETE COMMAND COMPLHE --> COULO CAUSE A NETBIOS POST LANA REQUEST FOR DATA FROM PC LANA REQUEST TO XFER DATA TO PC ALL REGISTERS AND FLAGS ARE PRESERVED. 0000 0000 000' 0002 LANA_l_HNDLR PROC NEAR SAVE PUSH PUSH PUSH 50 52 1E AX OX os SET UP GLOBAL ASSUMPT IONS 0003 0004 0007 Fe B80040 8E 08 CLO MOV MOV ; AX, LO_MEM_SEC OS,AX TELL THE 8259 TO START LATCHING THIS 0009 0008 80 20 E6 20 MOV OUT 0000 0010 0012 SA 0368 [6 00 EO MOV OX, LANA_l_SR JMP $+' IN AL,DX 0013 0014 0016 0018 0019 50 PUSH OR AX GET LANA STATUS (JUST ONCE + ONCE MORE ; DC 80 (B 00 JMP EE OUT OX,AL 58 POP AX ; OOlA OOlF F6 06 00A3 08 14 AL,8DH I F LANA 80 26 00A3 F1 A8 06 747F 80 OE 00A3 04 EB 18 90 0032 0034 A8 80 1573 ; EO 0036 0038 003B 003C 003E 0040 8A BA EO 24 22 74 0042 0045 F6 C4 01 74 3B 036B 41 C4 67 JNZ MOV MOV IN AND AND JZ F6 C4 40 74 16 80 26 00A3 OF 80 26 OOA' 7F BA 036B EO 24 8F EB 00 EE EB 3F 90 TEST BA 0369 EO I F PC OWNS IIHERFACE THEN IGNORE THIS INTERRUPT INTERRUPTS AH,AL oX,LANA_'_HIR AL,OX AL, TCI+GI AL,AH LANA_EXt T INTERRUPT OMA COMPLETE ; LANA MUST BE ASK I NG PC TO DO A CMD ; OMA TERM I NAL COUNT REACHED? INTERRUPT? AH, TC LANA_REQUESl YES. AND AND BYTE PTR OS: [LANA_l_STATUSI.ALL_BITS-LANA_OMAING BYTE PTR OS: [ l.ANA_HARDWARE J. ALl_B I TS-DMA_3_BUSY DISABLE OMA COMPLETE MOV IN AND JMP OUT JMP ; 0062 0062 0065 IN CONTROL AL,HC LANA_EXIT INSUR[ THIS IS A "REAL" JZ ; 0056 0059 005A 005C 005E 005F EXIT TEST ; 004C 0051 INTERRUPT TO LANA JZ ; MAYBE. 0047 004A SET COMPLETE CODE. IGNORE UN-ENABLED ; ACKNOWLEDGE BYTE PTR OS: [ LANA_l_STATUS!. ALL_B I TS-LANA_GETT INC_NCB AL, CPLT CODE LANA ExTT BYTCPTR OS: [LANA_'_STATUS). LANA_HARD_ERR LANA_EX I T ICNORE INTERRUPlS WHILE PC IS (PC IS POLLING SR FOR CO=O) TEST ; ; BYTE PTR OS: [LANA_l_STATUSl.LANA_CETTING_NCB HC_SET? rEST JZ OR JMP HC_SET?: GET THIS LANA'S srATUS PORT AOOR I S CElT I NC AN NCB THEN GOT NCB. 0021 0026 0028 002A 002F IF CLR GO) ; $+2 TEST JZ l' INTERRUPT AGAIN AL,EOI lHE __ 8259,AL DX, LANA 1 HI R Al,oX ~AL, Al.l._B I TS-TC! -la_METHOD $+2 OX,AL Cl.EAR_GO NOT OMA COMPLETE. 3C 74 3C 74 44 2C 42 28 CMP JE CMP JE 006t: 0070 3C 43 74 lE eMP JE ; ; GET CURRENT PC ; I NTERFAC£ REG I STER TURN OFF "TERM! NAl. COUNT" I NTERRUPT ENABLE ; PO I NT TO LANA l ' S PARAMETER REG [STER ; GET THE "CMD CODE" I S IT A "REQUEST DATA TO/FROM LANA" CMO? 0066 0068 006A 006C ; l.ANA ISN'T DMAING ANYMORE SO OMA I S NO LONGER BUSY GET THE CODE FOR THE CMD THAT LANA REQUESTS LANA REQUEST; MOV IN ; ; ; INTERRUPTS (IN CASE SOMEONE El.SE USES OMA_3) NOPE. AL, OATA_TO~lANA DATA_REQ AL,OATA_FROM_lANA OATA_REQ MAYBE A "NCB COMPLETE" THEN? AL,NCB_CPLT CMD_CPLT ERROR REPORT fROM l.ANA Adapter BIOS D-41 0072 0074 0076 0077 0078 007B 007C 0070 lC 45 75 OC 0082 E8 0249 R 0085 0088 0089 0086 0080 SA 0368 MOV EC A8 80 74 1l EB 'A 90 IN TEST JZ 0090 0093 E8 OOAD R EB 14 90 AL, ERROR_FROM_LANA INT BAD AL, OX OX CMP JNZ IN PUSH EC 52 SA 036A g~: ~NA_'_DR MOV EE OUT POP 5A 80 DE OOAl 02 OX BYTE PTR OS:[LANA_'_STATUSJ,LANA_HARD_ERRl OR ; INVALID INTERRUPT. CALL I NT_BAD: CATASTROPHIC ERROR I CATASTROPH I C_ERROR ; OETERM I NE WHETHER TO CLEAR GO DX,LANA_'_SR AL,DX AL, HC CLEAR GO LANA3XIT JMP GET THIS LANA'S STATUS PORT VALUE DOES LANA OWN INTERFACE? I F YES, CLEAR_GO ; HANDLE "NCB COMPLETE" CODE CMO_CPLT: CALL ; 0096 E8 0167 R 0099 009E F6 06 00A3 20 75 09 COMMAND CPLT LANA_EXTT JMP DATA_REQ: ; CLEARS GO INTERNALLY PROCESS "REQUEST DATA TO/FROM LANA" CMD CALL ; DON'T CLEAR GO IF USING DMA TEST JNZ ; OOAO OOAl 00A4 00A6 00A8 BA Ol68 CLEAR_GO: EC MOV ANO OX, LANA 1 SR AL, OX - AL, ALL_B ITS-GO JMP OUT DX,AL " 24 FE EB 00 EE ; 00A9 00A9 OOAA 00A6 OOAC LANA_EXI T: I NTERRUPT RETURN OS POP POP POP 58 CF ; GET CURRENT SR PORT VALUE ; TURN OFF THE GO BIT $'2 RESTORE 1F 5A OOAD BYTE PTR OS: [ LANA_1_STATUS J, LANA_OMA I NG LANA_EXIT TELL LANA REQUEST I S COMPLETE OX AX IRET LANA_'_HNOLR ENOP ; COMMANO CPLT PROGRAM i/O'S THE Nce (OF THE COMPLETED CMD) OVER FROM THE LANA. IF THE NCB IS NO-WAIT TYPE, THE POST ROUTINE IS INVOKEO. THE FOLLWING CONVENTIONS SHOULD BE FO(..LOW£O: -~:?~~~:~ ___ +___ OS : : : OX AX ~~:::: __ L _______________ CONST DESTROY DESTROY ~:~?: _________ -___________ _ : LO MEMEORY SEGMENT : LANA'S PR PORT ADDR : INTERNAL I NTERRUPTS SHOULD BE MASKED ON ENTRY. NOTE: CLEARS GO INTERNALLY. OOAD COMMANO_CPLT PROC OOAD OOAE OOAF OOBO OOB' 06 53 56 SAVE PUSH PUSH PUSH PUSH PUSH 00B2 0067 80 OE 00A3 40 OR FB STi 00S8 006S E8 0260 R 26! C4 70 34 CALL DOBF 57 SAVE PUSH OOCO OOC3 OOC4 OOC6 OOC8 OOCA BA 036B MOV EC 24 C7 DC 00 EB 00 IN AND OR 57 51 NEAR ES BX DI CX 51 LOCK INTERfACE 8: ENABLE INTERRUPTS BYTE PTR OS: [LANA_'_STATUS],LANA_LOCKED ; GET NCB'S DESTINATION ADDR 8: LENGTH LES ADDR AND LEN 01, ES: [DT I. NCB_RESERVE_NCB@ <0 I > ; GET REAL NCB ES: BX ; SAVE BASE OF NCB FOR LATER 01 ; SETUP I tHERFACE FOR PROGRAMMED 1/0 FROM LANA EE JMP OUT BA Ol6A BE 0368 B4 20 MOY MOV MOV ~~: 6~NA_1_H I R ; GET CURRENT I NTERFACE SETUP AL,ALL_BI TS-I O_METHOO-OD_BI T ; MASK OFF BITS OF INTEREST AL, PROGRAMMED 10+LANA TO PC ; AND SET THEM AS WE WANT IT $+2 -OX,AL ;, SETUP TO READ I N THE NCB FROM THE LANA ooce OOCE ODD' OX, LANA_'_DR SI,LANA_'_SR AH,DRF ; 'riA I T fOR (THE NEXT) BYTE OF NCB 0003 OOOl 0005 0006 0008 87 F2 EC 84 C4 74 09 NEXT_NCB_BYTE: XCHG IN TEST JZ SI,DX AL,DX AL,AH NCB_NOT_READY ; GET ANO STORE BYTE OODA DODA DODC DODD 87 06 EC AA GET_NeB_BYTE: XCHG IN STOSB D-42 Adapter BIOS OX, S I Al,DX I S IT READY? If NOT, JMP TO WAITER ; lODE )OEO " LOOP ; )0[3 )0[3 )OE6 )OE6 JOE7 )OE9 )OEB JOEC I F MORE NCB TO READ LOOP JMP F3 EB 18 90 BYTE NOT READY. NCB_NOT_READY; MOV NCB_NOT _READY2: BB 0000 WAIT UP TO "AWHILE" FOR IT BX, AWH 1LE IN Ee 84 C4 75 EF JNZ 4B DEC AL,DX AL,AH GET NCB BYTE ex - 75 F8 JNE NCB_NOT _READY2 TEST ; OOEE E8 0249 R CALL OOFl 00F2 58 RESTORE POP MOV DOn 26: C6 47 01 40 EB 02 90 00 FA OOFA 58 - TIMEOUT WHILE WAITING. ; SET NCB RETURN CODE TO NCBSYS_ERR? NCB TRANSFERRED. 26: 26: 26: 26: OllA 0110 011 F 0121 26: 8A 07 24 7F 3C 17 75 10 0123 0127 012B 012F 26: 26: 26: 26: 88 89 88 89 0133 0137 26: 26: 8A 47 01 88 47 31 AND MOV IN AND JMP OUT EB 00 EE ; 47 47 47 47 38 04 3A 06 IF NCB FOR MULTIPLE SEND RESTORE SECOND BUFFER@ TO SEG:OFF TYPE ADDR UDT_RCO: 014A 014F 0151 0156 26: 83 7F 2C 00 75 07 26: 83 7F 2E 00 74 09 0158 015C 0150 26: 8A 47 01 TEST ES:BYTE PTR [BX).NCB_COMMAND,NCBNO_WAIT NO WAIT? AX-;-OEV_BUSY _POST MOV INT 15M JMe CMD_EXI T CMP [S:WORD PTR (BX].NCB_POST@,OOOOH POST ES: WORD PTR [BX]. NCB_POST@+2,0000H CMD_EX I T cu NO_WA I T1 : JNZ CMP JE YES. GET RETCOOE &< POST (AS AN MOV PUSHF CALL 9C rF 5F 2C ; 0167 AL, ES: ( ex J. NCB_RETCODE ES;8YTE PTR [BX].NCB_CMD_CPLT,AL 00 WE POST TH I S NCB? JNZ ; 0161 0161 0162 0163 0164 0165 0166 AL, ES: [ax]. NCB_COMMAND AL,7FH AL, ~CBSENDMULTI PLE UOT_RCD MOV MOV : 26: AX, ES:WORD PTR [BX]. NCB_RESERYE_BUFFER@ ES:WORD PTR [BXj.NCB_BUFFER@,AX AX, ES: WORD PTR [8X J. NCB_RESERVCBUFFER@+2 ES:WORD PTR [BXj.NCB_BUFFER@+2,AX MOV AX, ES: WORD PTR [ax]. Nca_RESERVE_BUFFER2@ MOV ES:WORD PTR [BX).NCB_aUFFER@+8,AX MOV AX, ES: WORD PTR [BX). NCB_RESERVE_BUFFER2@+2 MOV ES:WORD PTR [BX).NCB_BUFFER@+OAH,AX ;UPDATE NCB_CMD_CPLT 3C OC 3E DE 26: F6 07 80 75 09 B8 9180 CO 15 FA EB 18 90 SAVED FROM D I TELL LANA WE'RE DONE RESTORE BUFFER@ TO SEG: OFF TYPE ADDR MOV AND CMP JNZ 013B 013F 0141 0144 0146 0147 I NTERFACE, BYTE PTR OS: [LANA_'_STATUS] ,ALL_BITS-LANA_LOCKED OX LANA 1 SR AL, ox AL, ALL_B ITS-CO $+2 ox, AL MOV MOV MOV MOV ; 47 47 47 47 ; UNLOCK W EC 24 FE 8B 89 88 89 SAVED FROM 0 I GET NCB BASE ADDRESS BX ; MASK I NTERRUPTS, 010A 010E 0112 0116 ; BX ES: BYTE PTR [BX]. NCB_RETCODE, NC8SYS_ERR? CLEANUP JMe ; FA 80 26 00A3 BF BA 0368 CATASTROPHIC ERROR! CATASTROPH I C_ERROR NCB_XFERD: RESTORF POP oorB OOFC 0101 0104 0105 0107 0109 IN NEXT NCB BYTE NCB_XFERD CMD_EX IT: 5E 59 5F 58 07 INTERRUPT) AL, ES: [ BX J . NCB_RETCODE ES:DWORD PTR (BX] NCB_POST@ RETURN <51 ,CX,DI, BX, ES> RESTORE POP POP POP POP POP " ex 0' BX ES RET e3 COMMAND_CPU ENOP LANA_OATA_REQ SETS UP &< STARTS A TRANFER Of DATA BETWEEN THE PC AND THE LANA. WHILE DMA IS BUSY, THE PC WILL XfER "CHUNKS" VIA PROGRAMMED I/O. WHEN DMA IS FREE, A DMA XFER OF THE REMAINDER WILL BE SETUP AND STARTED. THE FOLLW I NG CONVENT IONS SHOULD BE FOLLOWED: _~:~~:~:~ ___ L __ ~~~::: __ L ______________________________ --------___ _ OS ox AL AH : : : 1 CONST DESTROY DESTROY DESTROY : LO MEMEORY SEGMENT : LANA 'S PR PORT ADDR : CMO CODE OF LANA REQUEST : INTERNAL I NTERRUPTS SHOULD BE MASKED ON ENTRY. 0167 LANA_DATA_REQ PROC SAVE NEAR Adapter BIOS D-43 PUSH PUSH PUSH 0167 0168 0169 51 06 57 016A SA EO CX ES 01 SAVE CMD CODE FOR LATER AH,AL LOCK 016C BYTE PTR OS: [LANA_'_STATUS]'LANA_LOCKED 80 OE 00A3 40 ; 0171 INTERFACE GET OA1A'S PC ADOR & LEN ADDR_AND_LEN E8 0260 R SETUP FOR PROGRAMMED 0174 0177 0178 017A 0170 017F 0181 0184 0186 BA 036B r~ov EC IN ANO 24 C7 eMF 80 Fe 44 75 OC EB OC 05 08 03 90 00 EE JNE 0' JMP FROM LANA: 01 R3:ET: OR OUT ; 0187 O18C F6 06 OOAl 80 TRY_DMA_3: TEST YEP. 018E O18F 0192 eA E8 0189 R FA 0193 0198 F6 06 00A3 Oll FROM LANA BYTE PTR DS:[LANA_HARLJWARE],DMA_3_EUSY GET _ DMA_3 ; ALLOW I ~TERRUPTS 11< HOPE THAT OMA FREES UP CLI CATASTROPHIC ERROR HAPPEN? 75 16 TEST J~l 83 f9 00 eMP 74 TO LANA PROGRAM 1/0 A "CHUNK" 10: ST I CALL ; 019A 0190 IN THE CORRECT DIRECTION GET CURRENT I NT£RFACE SETUP MASK OFf AREA OF I!HEREST IS IT TO OR FROM THE LANA? DMA_3 BUSY? JZ !4 18 I/O (MAY LATER CHANGE TO OMA) DX,LANA 1 HIR AL, OX - At, ALL_B I TS- I O_METHOD-DO .B I T AH,OATA "TO LANA FROM LANA AL, PROGRAMMED_IO+PC • .TO_LANA 01 R SET AL, PROGRAMMED._I O+l.ANA_ TO_PC DX,AL '1 CX, D DATA_EXIT JZ ; Byn: PTR DS: [LANA_'_STATUS] DATA_EXIT YES. LANA HARD ERR IF SO, EXIT I F "lOT, [XI T WORTH TRYING fOR OMA? eMF 83 F9 70 73 E3 JNB JMP EEl E8 SUUP 11< START DMA (OF REMAINING DMA) BA 036B 50 ; INDICATES LANA 2 REQUESTING DMA SERVICE 80 02 E8 0000 E " 80 26 00A3 BF 01B5 01B6 01B7 0186 I ~T[RFACE AND DATA_E.XIT: OF 07 " AND RESTORE 'OF FOF RET C3 RETlJR~ FOF LANA_DATA_HEQ ENOP 0189 PROGRAM_I 0 _CHUNK PROGRAM IIO'S A "CHUNK" OF THE REMAINING DATA BETWEEN THE PC 11< LANA. THE FDI.LWING CONVENTIONS SHOULD BE FOLLOWED: ____ ~ _______ + ___ ~~~::: __ OS l _________________________ ___ __________ __ _ ~ : : : : : ~ LO MEMEORY SEGMENT CMD CODE OF LANA REQ START OF "CHUNK" I N MEMORY LENGTH OF REMAINING DATA I ~TERNAL INTERRUPTS SHOULD BE UNMASKED ON ENTRY. 01B9 01B9 01 BA 01BB SAVE PUSH PUSH PUSH 56 50 53 <5I,AX,EX> " AX BX SETUP CHUNK SIZE, MOV BA 3B 73 eMP JNB Mav 8B 2B 51 GOT_CHUNK: SUB SAVE PUSH 88 CA BA 036A Mav 80 FC 44 CMF MOV ; OlCO 0100 75 4F YEP. 0102 8B F7 Mav 0104 06 0105 1C 0106 07 SWAP PUSH PUSM FOP D-44 Adapter BIOS UPDATE "REMAINING DATA" SIZE oX,ex CX, OX ex CX, OX OX, LANA_'_DR DATA TO LANA? JNE ; DATA PORT ADDR, OX,CHUNK_S1ZE ex, OX G01._CHUNK AH,DATAn.TO_LANA FROM_LANA2 SETUP SOURCE PTR &: PORT ADORS S 1,01 ES, OS ES " ES OlD7 0108 010B 01 DO H SF 0368 POP ; 01 [0 01 E2 01E3 01 E5 87 FA E7 E7 E9 E9 EA 87 07 AC EE £2 JZ " 01F6 OH8 01 F9 75 OHB 06 DlfG 01 FD onr OlFf 0201 LOOP ROOM IN DATA REGISTER? INTO DATA REGISTER OX,O I OX, AL I F MORE: "CHUNK" LOOP JMP '3 EB 15 90 aB 0000 £C 84 C4 £F 4e SlUFF BYTE OUT TO LANA: XCHG OUT_TO_LANA2: lOOSB OUT ; OHO 01F3 OH4 01, OX Al, OX Al,AH NO._ROOM " TEST ; OHB 01 ED OUT_TO_LA:~A2 ROOM It-I DATA REGISTER? DATA_ROOM? :XCHG £C 84 C4 74 09 ; 01 01 01 01 01 OS OI,lAt-IA_l __ SR AH, ORE MOV MOV JMP B4 10 ES OA 90 OArA ROOM? LANA~GOT_AlL? WAIT UP TO "AWHILE" fOR DR!: NO_ROOM: ROOM_t-IO\.J? : F8 TO "ON ENTRY" Sl TUP 1[ 07 " 88 FE EB 3t: 90 ; HAS LANA GO"I AU_ OF THE "CHUNK" R[:>IURE RlGISfERS 10 "ON ENTRY" SETUP 06 1E 0' " BB 88 D7 Fe. B4 20 cc 84 C4 74 31 DATA R[GIS1[R fOTAlLY EMPTY? I F SO, CHUNK I S DONE WAIT UP 10 "AWHIUc" 0;;>13 0216 0216 0217 0219 BS 0000 fOR LANA TO GET ALL OF IT BX, AWH I Ll FC 84 C4 74 29 48 DEC JNE 75 F8 EB 21 90 JMP SETU P FOR 0221 0224 BE 0368 B4 20 0226 0228 0229 022B 84 C4 74 09 FROM LANA2: MOV MOV I/O FROM LANA S I, lANA __ 1 AH,DRF 87 06 EC ; YES, GET IT, SlORE IT, LOOP IF MORt DATA REMAINS 87 F2 EC S I ,OX AL, OX AA E2 F3 ANY DATA? CHUNK_DONE Eo OF 90 BB 0000 FC ; WAI f UP 10 "AWHILE" ; TIMEOUT WAITING ON FOR DATA BYH fROM LANA NO_DATA: DATA_NOW? : 84 C4 7'; n "" 75 FB 0241 E8 0249 R 10_ TIMEOUT: CALL ; 0244 0244 02(15 0246 0247 0248 0249 110. CATASTROPHIC ERROR CAT ASTROPH I C_ERRQR CHUNK [JONE " 5B 58 5E C3 PROGRAM_IO._CHUNK ENOP CA TASTROPH I C_ERROR HAt-IDLES CATASTROPHIC It-ITERFAGE ERRORS. THE fOLlW I NG CONVEN r IONS SHOULD BE fOLLOWED: ACCESS : ------------+-----------+------------------,------------------------OS CONST DESTROY : LO MEMEORY SEGMENr : INTERNAL Adapter BIOS D-45 AX ; 0257 0259 DESTROY INTERNAL CATASTROPH I C_ERROR PROC NEAR 0249 0249 024C 0240 024f 0251 0253 0255 : IF LANA OWNS INTERfACE (WITH GO SET), SET CPLT_CODE TO "CANT_CPLT?" BA 0368 NOV Ee AS 80 1M 75 A8 74 24 DC ox, LANA_l_SR AL,DX AL,HC SET SPCL AL,GO SET_SPCL AL, ALL_81 TS-CPLT_CODE AL,CANT_CPLT? DX,AL TEST JMZ 09 01 05 f9 04 TEST JZ AMO OR 0", " ; ; ; ; ; : DOES LANA OWN INTERfACE'! IF NOT, DON'T SET CPLT_CODE IS LANA WAITING ON THE PC? IF NOT, DON'T SET CPLT_CODE ELSE, MASK OFF AREA OF INTEREST AND SET AS DES I RED 025A 025A 80 DE 00A3 04 025f e3 ; RETURN RET 0260 CATASTROPHIC_ERROR ENDP ADOR_AltO_LEN GETS A 32-BI T ADDRESS AND 16-8 IT LENGTH FROM LANA_1' S PR PORT. THE 32-BIT ADDRESS IS CONVERTED INTO A SEGMENT:OFFSET PAIR. THE FOLLWI NG CONVENT IONS SHOULD BE FOLLOWED: _~:~~:~:~ ___ L __ ~~~:~: __ L _______________ ~~~~: _____________________ _ OX [S:OI CX ADOR_ANO_LEN PROC 0260 0260 SAVE PUSH 50 CONST: LANA'S PR PORT AOOR RESULT: ADDRESS IN SEGMENT:OFFS(T FORM RESULT: LENGTH NEAR AX ; GET 32-B 1T ADDRESS 0261 Ee 0262 0264 0268 026A 026C 0260 026F 0270 0272 0274 0276 0278 0279 027B 027C 027E 0280 0282 0284 0287 0289 8A 81 88 8A 1M C8 E1 OOOF F9 C8 MOV ANO MOV MOV " Ee MOV 8A E8 C8 01 01 eLe SHR SHR SHR SHR EO EO 01 E9 01 E9 Ee " " 8A EO MOV Ee 01 EO 01 01 EO 01 EO SHL SHL SHL SHL EO ANO ADO MOV 25 FOOD 03 C1 8E CO AL,DX CL,AL CX,OOOFH DI,CX CL,AL AL, OX CH,AL eX,1 CX,l eX,1 eX,1 AL,DX AH,AL AL, ox AX,1 AX,l AX,1 AX,l AX, OFOOOH AX,CX ES,AX ; GET 16-81T LENGTH AND RETURN 0288 028C 028E 028F 0291 0292 Ee 8A C8 Ee 8A E8 " IN MOV IN MOV AL,OX eL, AL AL,OX eH,AL RESTORE POP AX RET e3 0293 AODR_AND_LEN ENDP 0293 NETWORK ENDS ENO D-46 Adapter BIOS ; 0 I GET LOWEST 4 BITS OF AOOR ex GET NEXT 12 BITS (TOP 4 8ITS=0) ; AX BECOMES SEGMENT TYPE ADOR Appendix E. Multitasking Considera tions If you use the wait option for the commands in a multitasking environment, a "hook" is provided for the multitasking program using interrupt 1SH. When either a busy or wait loop occurs in NET BIOS, a "hook" is provided for the program to break out of the loop. To distinguish individual calls, look at the ES:BX register which points to the NCB. The "hook" is also used when NET BIOS is servicing an interrupt, that in turn causes a corresponding wait loop, providing a means to break out of the loop. The steps necessary to service interrupt 1SH are as follows: When programming in the multitasking environment, the program has the responsibility to check the AX register for the following function codes: Multitasking E-l AH contains: AL contains: 90H BaH 91H BaH Figure E-1 AX Register Function Codes The program must pass all other functions through to the previous user of interrupt I5H. This can be accomplished by either a JMP or a CALL. With either a 90H or 9IH function code in the AH register, the program performs the necessary processing and returns using an IRET instruction. An 80H in the AL register indicates that NET BIOS issued the interrupt. 9080H This function code is in the AX register whenever NET BIOS is about to enter either a busy or a wait loop. NET BIOS also issues an interrupt I5H at this time to signal the program of the loop. When this occurs, the program saves the task status and dispatches another task. This allows overlapping execution of tasks when the hardware is busy. 9180H This function code is in the AX register whenever NET BIOS has set an interrupt flag for a corresponding busy loop. NET BIOS also issues an interrupt I5H at this time. This code is used to signal a POST condition and the program sets the task status to "ready to run" before returning. E-2 Multitasking Glossary active circuit. A circuit or device that requires electrical power to operate. address. A number specifying a particular user device attachment point. alias. An alternate name that you can be known by on the network. allocations. The assignments of frequencies by the FCC for various communications uses (for example; television, radio, land-mobile, defense, microwave, etc.) The assigned frequencies are to achieve a fair division of the available spectrum and to minimize interference among users. amplifier. A device used to boost the strength (dB level) of an electronic signal. Amplifiers are spaced at intervals throughout a cable system to rebuild the strength of TV or data signals that weaken as they pass through the cable network. Midsplit configurations use a forward and a reverse amplifier in the same enclosure to boost signals in both directions. balancing (signal). A method of equalizing the attenuation that a particular signal encounters through the network (forward direction) so that the signal level is essentially the same at all outlets. Balancing also produces near equal inputs to the frequency translator from a fixed level transmitter (reverse), no matter where the transmitter is attached to the network. bandwidth. A measure of spectrum (frequency) use or capacity. For instance, a voice transmission by Glossary-l telephone requires a bandwidth of about 3000 cycles per second (3 kHz). A TV channel occupies a bandwidth of 6 million cycles per second (6 MHz). BIOS. Basic Input Output System. branch. An intermediate cable distribution line in a broadband coaxial network that either feeds or is fed from a main trunk. Also referred to as a feeder. bridge. A specialized device containing programs and network attachments. It is used to route messages between the same network, on a different broadband network or both. broadband. A general term used to describe wide bandwidth equipment or systems that can carry a large proportion of the electromagnetic spectrum. A broadband communications system can accommodate all broadcast and many other services. cable kit. An 8-port splitter device used to connect the Personal Computers to the network. cable loss. The amount of rf signal attenuation by coaxial cable transmission. The amount of cable attenuation is a function of frequency and cable distance. High frequencies have a greater loss than low frequencies and follow a logarithmic function. Cable losses are usually calculated for the highest frequency carried on the cable. Cable powering. Supplying operating power to active CATV equipment by using the coaxial cable to carry this power along with the information signal. cable tilt. A reduction in the level of an RF sweep signal passing through a cable as it sweeps from low to Glossary-2 high frequency. This "tilt" is caused by the increase in cable attenuation as the frequency increases. A specific fixed length of cable and a fixed frequency range produces a fixed amount of tilt. Cable TV. Previously called Community Antenna Television (CATV). A communication system that distributes broadcast programs simultaneously via a coaxial cable. carrier sense multiple access with coUision detection (CSMA/CD). A technique by which many independent nodes can share a common broadcast communication channel without requiring a central transmission allocation authority. CATV. See Cable TV. composite video signal. The complete video signal. For monochrome, it consists of the picture signal, blanking and synchronizing signals. For color, additional color synchronizing signals and color picture information are added. coaxial cable. Coaxial means that two conductors and the dialectic share the same axis - the center of the cable. One conductor is the center wire, while the other is the shield and is referenced to ground. The shield and center conductor are separated by an insulating dialectic made of polyethylene. CRe. See cyclic redundancy check. cross modulation. A form of signal distortion in which modulation from one or more RF carrier(s) is imposed on another carrier. Glossary-3 CSMA/CD. See carrier sense multiple access with collision detection cyclic redundancy check. A numeric value derived from the bits in a message that is used to check a message for any bit errors in transmission. datagram. A particular type of information encapsulation at the network layer of the adapter protocol. No explicit acknowledgment for the information is sent by the receiver. Instead, transmission relies on the "best effort" of the link layer. data rate. The rate at which data is transferred within a processor and between a processor and an external device. This rate is usually expressed in units of bits per second (bps). dB. An abbreviation for decibel, used as a relative unit of measure between two signals on a logarithmic basis. dB is an expression of a ratio between an input level and an output level. dBmV. An abbreviation for decibel millivolt. The level at any point in a system expressed in dB's above or below a 1 millivolt/75 ohm standard is the level in decibel millivolts(dBmV). Zero dBmV is equal to 1 millivolt across 75 ohms. default. The default value of a setting is the original one, which is in effect until other instructions are entered. directional coupler. A high quality tapping device providing isolation between a single tap outlet drop line and external devices (can be more than one). distribution amplifier. An amplifier used to increase rf signal levels to overcome cable and flat loss for user distribution. Glossary-4 DMA. Direct Memory Access. drop cable. A flexible coaxial cable that extends from a tap on the coaxial network. The end of the drop cable has the network outlet connector, which is used to attach an external device. Also referred to as a drop line. drop-line device. Any external device attached to the coaxial network through a drop cable, for example a TV set, audio modulator, or adapter. echo. See reflections. equalization. A means of modifying the frequency response of an amplifier or network, thereby resulting in a flat overall response. It is slope compensation done by a module within an amplifier enclosure. F connector. A type of connector used by the CATV industry to connect a coaxial cable to equipment. FDM. Frequency Division Multiplex. See frequency division multiplexing. feeder (cable). Same as a branch. filter. A circuit that selects one or more components of a signal depending on their frequency. Used in trunk and branch lines for special cable services such as two-way operation. flat loss. Equal loss at all frequencies, such as that caused by attenuators. flooded cable. A special CATV cable containing a corrosion-resistant gel between the outer aluminum Glossary-5 sheath and the outer jacket. The gel flows into imperfections in the aluminum to prevent corrosion in high moisture areas. forward direction. The direction of signal flow away from the frequency translator. frequency. The number of times an electromagnetic signal repeats an identical cycle in a unit of time, usually one second. One Hertz (Hz) is one cycle per second. A kHz (Kilohertz) is one thousand cycles per second; a MHz (Megahertz) is one million cycles per second; a GHz (Gigahertz) is one billion cycles per second. frequency division multiplexing. A method of dividing a communication channel bandwidth among several sub channels with different carrier frequencies. Each sub channel can carry separate data signals. frequency response. The change of gain with frequency. frequency translator. In a mid-split configuration, an active electronic circuit in the headend that picks up information signals on one 6 MHz channel, coming in from the reverse direction-converts them to another 6 MHz channel above the mid-split frequency and sends them out in the forward direction. FSK. Frequency Shift Keying. full duplex. A connection on the network that allows transmissions in both directions at the same time. gateway. A protocol-translating interface between an adapter (and its protocols) and an external network that uses a distinctly different protocol suite. Glossary-6 harmonic distortion. Form of interference involving the generation of harmonics according to the frequency relationship f = (n)f for each frequency present, where n is a whole number equal to 21 or more. headend. The location of the frequency translator or an electronic control center, generally located at the antenna site of a CATV system, usually including antennas, preamplifiers, frequency converters, demodulators, modulators and other related equipment that amplify, filter and convert incoming broadcast TV signals to cable system channels. See also frequency translator. high frequencies. Frequencies from 160MHz to 400MHz allocated for the forward direction in a mid-split system. host concept. Many protocols such as IBM's SNA for example, employ some large data processing facility as part of the network. hub. The same as a headend for bidirectional networks, except that it is more centrally located within the network. insertion loss. Additional loss in a system when a device such as a directional coupler is inserted; equal to the difference in signal level between input and output of such a device. isolation loss. The amount of signal attenuation in a passive device from input port to tap outlet port. LAN. Local Area Network. LANA. Local Area Network Adapter. Glossary-7 local session number. The number assigned to each session established by an adapter. Each session receives a unique number that distinguishes it from any other active sessions. low frequencies. Frequencies from 5MHz to 116MHz allocated for the return direction in a mid-split system. LSN. See local session number. main trunk. The major link(s) from the headend (or hub) to downstream branches. message. A message is a logical partition of the user device's data stream to and from the adapter. mid-band. The part of the frequency band that lies between television channels 6 and 7, reserved by the FCC for air, maritime and land mobile units, FM radio and aeronautical and maritime navigation. Mid-band frequencies, 108 to 174 MHz, can also be used to provide additional channels on cable television systems. mid-split. A method of frequency division that allows two-way traffic on a single cable. Incoming signals go to the frequency translator between 5-116MHz; outgoing signals go from the frequency translator between 168-400MHz. No signals are present between 116-162MHz. multitap. A passive distribution component composed of a directional coupler and a splitter with two or more output connections. node. Consists of a personal computer, an adapter with a cable and other adapters to the Personal Computer (such as; disk drives, printers, and plotters). Along with the Personal Computer hardware, the necessary software must be available. Glossary-8 noise. The word "noise" is a carry-over from audio practice. Refers to random spurts of electrical energy or interference. noise figure. A measure of the amount of noise in dB generated at the input of an amplifier as compared with the noise generated by a 75-ohm resistor. packet. A unit of the protocol used by the transport layer. The packet contains header control information, as well as user data. parity. The checksum of each data byte transmitted or received. Each 1 bit is counted in a byte. The number of odd or even 1 bits in the byte is the parity. Parity may be even, odd, or none. passive circuit. A circuit or device that does not require electrical power to operate. point-to-point. A connection between two and only two nodes on a network. PROM. Programmable Read Only Memory. protocol. A procedure for ordering the exchange of formatted information packets between correspondents. Protocols are "interpreted" by hardware and software within the adapter. See the protocol section in Chapter 2. RAM. Random Access Memory. receiver isolation. The attenuation between any two receivers that are connected to the system. rf. Radio frequency. Glossary-9 rf modem. A modulator-demodulator device that codes or decodes a digital information signal. The modulator part of the rf modem codes the digital information onto an analog signal by varying the frequency of the carrier signal. The demodulator part extracts the digital information from a modulated carrier signal. reflections. Signal waves reflected from components within the network, which are the result of impedance or mismatches in the transmission coax medium. Also called echoes. return loss. Reflection coefficient expressed in dB. return path. See reverse direction. reverse direction. The direction of signal flow toward the frequency translator. reverse path. See reverse direction. ROM. Read Only Memory. session. The data transport connection resulting from a call between two user devices. signal ingress. This is a signal or signals that enter into the cable or cable system from an outside source, such as an RF transmitting tower (AM or FM). signalleveJ. The root-mean-square (rms) voltage measured during the peak of the RF signal. It is usually expressed in microvolts referred to an impedance of 75 ohms, or in dBmV. signal-to-noise ratio. The relative power of the signal to the noise on the cable. Glossary-l 0 slope. The difference between the signal levels at the highest frequency and the lowest frequency in a network. Slope is sometimes referred to as spectrum tilt. slope compensation. The action of a slope-compensated gain control. The gain of an amplifier and the slope of the amplifiers equalization circuit are simultaneously changed to provide the correct cable equalization for different lengths of cable. This is normally specified in terms of cable loss. splitter. A passive, 5 MHz-300 MHz or 800 MHz bandpass device. The device is coupled in-line to a main trunk or branch for splitting the power and the information signal two or more ways on a coaxial network. Splitters always pass through 60Hz power to the network, if used. subsplit. A method of frequency division that allows two-way traffic on a single cable. Incoming signals go to the frequency translator between 5-30MHz; outgoing signals go from the frequency translator between 54-400MHz. No signals occupy 30-54MHz. tap. A passive 5 MHz-300 MHz box-like device, normally installed in line with a broadband branch cable. Passive circuits tap off only the information signal to its small Type F outlet ports. tap outlet. A Type F connector port on a tap used to attach a drop cable. The information signal is carried through this port. The number of outlets on a branch line tap normally varies from 2 to 8. TDM. See time division multiplexing. terminator. A 75-ohm resistive connector used to terminate the end of a cable or an unused tap. The device is used to minimize cable reflections. Glossary-II tilt compensation. See slope compensation. time division multiplexing. A method of sharing a communication channel among several users by allowing each to use the channel for a given period of time in a defined, repeated sequence. trunk line. See main trunk. unity gain. A standard design parameter used in CATV network amplifiers. The amplifier is designed to compensate for cable signal loss and flat loss. It also implies that the output of any amplifier is equal to or less than the output of the previous cascaded amplifier (forward or reverse) in the network. virtual connection. A connection between two nodes on the network that is established using the transport layer and provides reliable data transfer between the nodes. Glossary-12 Bibliography The following is a list of related publications. • Intel 82586 Reference Manual • Intel iAPX188 Data Sheets • Sytek Serial Interface Controller (SIC) Data Sheet • The IBM Macro Assembler Bibliograpby-l BihJiography-2 INDEX Special Characters ± 12 V presence test 3-67 A abort secondary command 3-43 adapter BIOS D-l adapter data transfer link layer C-3, C-4 physical layer 2-7 session layer C-4 transport layer C-4 adapter ID ROM 3-10 adapter initialization 3-19 adapter initiated commands error report to host command (45H) 3-46 initialization complete command (41 H) 3-44 transfer command block to host command (43H) 3-45 transfer data to adapter command (44H) 3-46 transfer data to host command (42H) 3-44 adapter interface register (AIR) 3-37 adapter interface signals ALE 3-61 AO-AI9 3-61 DACK3 3-62 DRQ3 3-62 DO-D7 3-61 I/O CH RDY 3-62 INDEX-l lOR 3-61 lOW 3-61 IRQ 2(3 ) 3-61 MEMR 3-61 RESETDRV 3-62 TIC 3-62 adapter interrupts description 3-16 resetting the adapter 3-19 adapter jumpers 2-88 adapter power specifications 3-73 adapter presence test 2-88 adapter RAMs 3-10 adapter receiver description 3-56 adapter ROMs and PROM 3-10 adapter self-tests (POST) 3-63 adapter software characteristics 2-11 adapter to host update protocol 3-24 adapter transfer protocol 3-22 adapter transmitter description 3-51 ALE 3-61 analog cable test 3-68 attenuators 4-8 AO-A19 3-61 B base expander 3-84 Basic Input Output System (BIOS) v BIOS adapter data transfer 2-5 adapter software characteristics 2-11 BIOS programming 2-11 programming samples 2-12 sample programs 2-82 two adapters 2-88 brief design procedure 4-11 broadband local area network 1-3 bus topology 4-15 INDEX-2 c cable loss 4-10 cable loss formula 4-20 cable network specifications 3-96 cable reflectometer 4-24 cable system description 3-79 cable tilt 4-10 Cable TV 1-4 CATV 1-4 coaxial cable 3-94 command completion code bits (CCO-CCl) 3-29 command queue full bit (CQF) 3-30 communications controller section 3-48 components of IBM PC network 1-7 connection hardware 3-82 constant carrier test 3-69 CSMA/CD csma/ cd technique 2-7 description 2-7 layer support C-4 protocol 3-48 usage 3-50 D DACK3 3-62 data direction bit (DD) 3-35, 3-38 data register (DR) 3-33 data register address 3-25 data register empty bit (DRE) 3-30 data register full bit (DRF) 3-30 data transfer DMA enable bit (DTD) 3-36, 3-38 data transfer interrupt enable bit (DTI) 3-35, 3-38 datagram service 2-3 datagram support commands receive broadcast datagram 2-78 receive datagram 2-75 send broadcast datagram 2-73 INDEX-3 send datagram 2-71 digital loop back test 3-68 digital section adapter functional block diagram 3-7 adapter reset 3-19 description 3-6 Intel 80188 3-8 Intel 82586 3-8, 3-48 modem interface section 3-47 ROM and RAM 3-10 directional taps 4-7 DMA operation description 3-11 DMA scheme 3-12 DRQ3 3-62 DO-D7 3-61 E environmental specifications 3-73 error codes 2-90 error recovery table 2-90 error report command 3-46 error report command usage 3-69 example configuration of cable components 3-81 examples of checking a network 4-24 expanding the network 4-5 F field strength meter 4-23 future network needs 4-21 INDEX-4 G general commands cancel 2-27 reset 2-25 status 2-29 unlink 2-35 glossary 1 go bit (GO) 3-29 go interrupt enable bit (GI) 3-34,3-37 H hardware data transfers 3-11 hardware options 3-70 hardware protocols for interface 3-20 hardware specifications environmental 3-73 power specifications 3-73 host control bit (HC) 3-31 host control enable bit (HCE) 3-38 host control interrupt enable bit (HCI) 3-36 host control request bit (HCR) 3-35 host initiated commands abort secondary command (02H) 3-43 reconfigure adapter (05 H) 3-43 transfer command block (01H) 3-42 host interface controller (HIC) 3-8 host interface register (HIR) 3-34 host interface tests 3-64 host interrupt description 3-13 host relinquish interrupt enable bit (HRI) 3-39 host to adapter protocol 3-21 Host/ Adapter interface register address 3-25 how to start RPL feature 2-80 INDEX-5 I I/O CH RDY 3-62 IBM base expander 1-7 IBM cable system description base expander 3-84 cable specifications 3-96 coaxial cable 3-94 component description 3-79 connection hardware 3-82 example configuration 3-81 long distance kit 3 -91 medium distance kit 3-88 short distance kit 3-86 IBM coaxial cable brief description 1-5 configuration 1-9 IBM long distance kit 1-7 IBM medium distance kit 1-7 IBM PC Network Adapter 1-7 brief description 1-7 IBM PC network brief description 1-3 IBM short distance kit 1-7 IBM translator unit 1-7 block diagram 3-74 brief description 1-8 description 3 -74 input/ output circuits 3 -7 6 local oscillator circuits 3-77 reception circuits 3-76 transmission circuits 3-77 implementation of CSMA/CD 3-48 initialization complete command 3-44 interface control description 3-25 interface control states 3-27 interface register control bits 3-28 interface registers 3-25 interrupt description 3-12 lOR 3-61 lOW 3-61 IRQ2(3) 3-61 INDEX-6 J jumper description 3-70 jumper WI 3-70 jumper W2 3-70 jumper W3 3-70 jumper W4 3-70 jumper W5 3-70 jumper W6 3-70 jumper W7 3-70 jumper W8 3-70 L layers 2-5 license agreement vii link layer C-3, C-4 link layer description 2-7 long distance kit 3-91 M medium distance kit 3-88 MEMR 3-61 methods of network design 4-4 microprocessor self-test 3-63 modem interface description 3-47 multiple bus topology 4-12 multitasking E-l INDEX-7 N name support commands add group name 2-40 add name 2-38 delete name 2-42 names on the network 2-3,2-12 NCB commands add group name 2-40 add name 2-38 call 2-45 cancel 2-27 chain send 2-58 delete name 2-42 hang up 2-52 listen 2-48 receive 2-61 receive any 2-64 receive broadcast datagram 2-78 receive datagram 2-75 reset 2-25 send 2-55 send broadcast datagram 2-73 send datagram 2-71 session status 2-67 status 2-29 unlink 2-35 NCB LANA NUM field usage 2-88 network channelassignments 3-96 network components description 4-7 Network Control Block (NCB) NCB field description 2-14 NCB format 2-15 NCB BUFFER@ field 2-19 NCB-CALLNAME field 2-20 NCB-COMMAND field 2-16 NCB-LANA NUM field 2-22 NCB-LENGTH field 2-20 N CB-LSN field 2-18 NCB-NAME field 2-20 NCB-NUM field 2-19 NCB=POST@ field 2-21 INDEX-8 NCB RESERVE field 2-22 NCB-RETCODE field 2-18 NCB-RTO field 2-21 NCB-STO field 2-21 return codes and recommended actions 2-90 network design 4-3 network layer description 2-9 network protocols C-1 network sample program set 1 2-82 network sample program set 2 2-85 network test equipment cable reflectometer 4-24 description 4-22 RF generator 4-22 RF radiation monitor 4-24 RF sweep receiver 4-23 RF voltmeter 4-23 network testing isolation 4-32 o operational self-test 3-69 organization of book v p parameter register (PR) 3-32 parameter register address 3-25 passive loss 4-10 peers 2-3 personal computer interrupt description 3-13 physical layer 2-7 power-on self-tests (POST) ± 12 V presence test 3-67 analog cable test 3-68 digitalloopback test 3-68 host interface tests 3-64 microprocessor test 3-63 INDEX-9 RAM test 3-64 ROM checksum test 3-64 unit ID test 3 -64 preparing for network design 4-6 primary commands 3-39 protocols for the interface adapter to host update protocol 3-24 adapter transfer of data 3-22 host to adapter 3-21 pseudo code C-13 R RAM test 3-64 reconfigure adapter command 3-43 remote program load (RPL) 2-80 reset adapter bit (RES) 3-35 RESET DRV 3-62 RF generator 4-22 RF modem description 3-50 RF modem section description 3-50 modem receiver description 3-56 modem transmitter description 3-51 receiver characteristics 3-58 RF modem block diagram 3-50 transmitter characteristics 3-53 RF radiation monitor 4-24 RF sweep receiver 4-23 RF voltmeter 4-23 ROM checksum 3-64 s Schematics A-3 secondary commands 3-20 session layer C-4 session layer description 2-9 INDEX-tO session services 2-3 session support commands call 2-45 chain send 2-58 hang up 2-52 listen 2-48 receive 2-61 receive any 2-64 send 2-55 session status 2-67 set command queue full bit (SGF) 3-39 short distance kit 3-86 signal level computations 4-9 specifications B-1 splitters 4-7 star topology 4-12 starting RPL feature 2-85 starting sample programs 2-82 status register (SR) 3-29 status register address 3-25 Sytek serial interface controller (SIC) 3-9 T TiC 3-62 terminal count bit (TC) 3-31 terminal count interrupt bit (TCI) 3-36 terminators 4-8 test equipment description 4-22 tilt compensators 4-8 topology description 4-12 traffic and error statistics 3-72 transfer command block to host command 3-45 transfer data to adapter command 3-46 transfer data to host command 3-44 transfer of commands 3-42 translator unit block diagram 3 -74 translator unit circuits 3-76 translator unit description 3-74 transport layer C-4 INDEX-ll transport layer description 2-9 tree topology 4-12,4-20 two adapters 2-88 u unit ID PROM test 3-64 uses of IBM PC Network I-tO INDEX-12 --- - -------------,- The Personal Computer Hardware Reference Library Reader's Comment Form Technical Reference, PC Network 6322916 Your comments assist us in improving the usefulness of our publication; they are an important part of the input used for revisions. IBM may use and distribute any of the information you supply in any way it believes appropriate without incurring any obligation whatever. You may, of course, continue to use the information you supply. Please do not use this form for technical questions regarding the IBM Personal Computer or programs for the IBM Personal Computer, or for requests for additional pUblications; this only delays the response. Instead, direct your inquiries or request to your authorized IBM Personal Computer dealer. Comments: 111111 NO POSTAGE NECESSARY IF MAILED IN THE UNITED STATES BUSINESS REPLY MAIL FIRST CLASS PERMIT NO. 321 BOCA RATON, FLORIDA 33432 POSTAGE WILL BE PAID BY ADDRESSEE IBM PERSONAL COMPUTER SALES & SERVICE P.O. BOX 1328-C BOCA RATON, FLORIDA 33432 SJS4 PIO.::! sdel. Continued from inside front cover SOME STATES DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT APPLY TO YOU. THIS WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS AND YOU MAY ALSO HAVE OTHER RIGHTS WHICH VARY FROM STATE TO STATE. IBM does not warrant that the functions contained in the program will meet your requirements or that the operation of the program will be uninterrupted or error free. However, IBM warrants the diskette(s) or cassette(s) on which the program is furnished, to be free from defects in materials and workmanship under normal use for a period of ninety (90) days from the date of delivery to you as evidenced by a copy of your receipt. LIMITATIONS OF REMEDIES IBM's entire liability and your exclusive remedy shall be: I. 2. the replacement of any diskette( s) or cassette(s) not meeting IBM's "Limited Warranty" and which is returned to IBM or an authorized IBM PERSONAL COMPUTER dealer with a copy of your receipt, or if IBM or the dealer is unable to deliver a replacement diskette( s) or cassette( s) which is free of defects in materials or workmanship, you may terminate this Agreement by returning the program and your money will be refunded. IN NO EVENT WILL IBM BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING ANY LOST PROFITS, LOST SAVINGS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE SUCH PROGRAM EVEN IF IBM OR AN AUTHORIZED IBM PERSONAL COMPUTER DEALER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. SOME STATES DO NOT ALLOW THE LIMIT ATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU. GENERAL You may not sublicense, assign or transfer the license or the program except as expressly provided in this Agreement. Any attempt otherwise to sublicense, assign or transfer any of the rights, duties or obligations hereunder is void. This Agreement will be governed by the laws of the State of Florida. Should you have any questions concerning this Agreement, you may contact IBM by writing to IBM Personal Computer, Sales and Service, P.O. Box 1328-W, Boca Raton, Florida 33432. YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS. YOU FURTHER AGREE THAT IT IS THE COMPLETE AND EXCLUSIVE STATEMENT OF THE AGREEMENT BETWEEN US WHICH SUPERSEDES ANY PROPOSAL OR PRIOR AGREEMENT, ORAL OR WRITTEN, AND ANY OTHER COMMUNICATIONS BETWEEN US RELATING TO THE SUBJECT MATTER OF THIS AGREEMENT. ------ -- ----------------_.-® International Business Machines Corporation P.O. Box 132S-C Boca Raton, Florida 33432 6322916 Printed in the United States of America


Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19
Create Date                     : 2017:02:06 11:31:48-08:00
Modify Date                     : 2017:02:06 11:45:40-08:00
Metadata Date                   : 2017:02:06 11:45:40-08:00
Producer                        : Adobe Acrobat 9.0 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:abe18d6f-0bb1-e842-999b-1c6622022cd0
Instance ID                     : uuid:f635c4a1-6d33-9047-a7d0-330c7e15c28d
Page Layout                     : SinglePage
Page Mode                       : UseOutlines
Page Count                      : 505
EXIF Metadata provided by EXIF.tools

Navigation menu