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
.
Page Count: 505
| Download | |
| Open PDF In Browser | View 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 : 505EXIF Metadata provided by EXIF.tools