Hewlett-Packard HP 12792B 8-Channel Asynchronous Multiplexer Subsystem User's Manual
PDF
Dokument
Oglas
Oglas
LC HEWLETT
PACKARD
HP 12792B
8-Channel Asynchronous
Multiplexer Subsystem
User's Manual
For HP 1000 M/E/F-Series Computers
==
HP 12792B
8-Channel Asynchronous
Multiplexer Subsystem
г
HEWLETT
PACKARD
User’s Manual
HEWLETT-PACKARD COMPANY
Data Systems Division
11000 Wolfe Road
Cupertino, California 95014
MANUAL PART NO. 5955-8867
Printed in U.S.A. January 1983
E0183
PRINTING HISTORY
The Printing History below identifies the Edition of this Manual and any Updates that are included. Periodically, Update
packages are distributed which contain replacement pages to be merged into the manual, including an updated copy of this
Printing History page. Also, the update may contain write-in instructions.
Each reprinting of this manual will incorporate all past Updates, however, no new information will be added. Thus, the
reprinted copy will be identical in content to prior printings of the same edition with its user-inserted update information.
New editions of this manual will contain new information, as well as all Updates.
To determine what software manual edition and update is compatible with your current software revision code, refer to the
appropriate Software Numbering Catalog, Software Product Catalog, or Diagnostic Configurator Manual.
First Edition... ......... cin. Jan 1983
NOTICE
The information contained in this document is subject to change without notice.
HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS
MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANT-
ABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Hewlett-Packard shall not be liable for
errors contained herein or for incidental or consequential damages in connection with the furnishing,
performance or use of this material.
Hewlett-Packard assumes no responsibility for the use or reliability of its software on equipment that is
not furnished by Hewlett-Packard.
This document contains proprietary information which is protected by copyright. All rights are reserved.
No part of this document may be photocopied, reproduced or translated to another program language
without the prior written consent of Hewlett-Packard Company.
Copyright © 1983 by HEWLETT-PACKARD COMPANY
ii
Preface
This manual is designed as a technical reference for the Hewlett-Packard
12792B Eight Channel Asynchronous Multiplexer Subsystem for M/E/F-Series HP
1000 Computers. The Multiplexer interface is an efficient, high performance
interface for multiplexed terminal/device applications. It enhances
terminal communications by offering a low cost per channel, high speed, high
performance alternative to other point-to-point interface offerings.
This manual is intended for users knowledgeable in FORTRAN and the RTE-IVB
or RTE-6/VM operating system. The following is a brief description of the
content of each chapter.
The Overview provides general information concerning the multiplexer
subsystem and its interrelationships with HP 1000 products.
The User Interface outlines the control functions used to perform data
transfers to and from external devices, in addition to the control functions
necessary to accomplish I/O control. Examples are provided for each control
request.
Using the features of the multiplexer and error handling/recovery is covered
in Chapter 3, Using The Multiplexer.
The Device Driver chapter is directed at the advanced programmer who is
experienced with Assembly language. It provides the user with a tutorial on
device driver writing.
The Device Specific Considerations chapter explains the interfacing
requirements for using a non-HP device in the multiplexer subsystem.
iii/iv
Table of Contents
Chapter 1 Overview
Chapter 2 User Interface
General Considerations . . . + + + + + + + + + +
Request Code .. .. .…. e e + . + + . + »
Control Word .. . . + + ¢ + + + + + + + + e
Function Code e e e + + + + + + + + + + + +
Logical Unit Number . . . +. +. + + + + + + + +
1/0 Requests . . e e . . . . ® e e e e e © e
Standard I/0 EXEC Calling Sequences о. ©
EXEC Calls From Assembly Language о в оо
EXEC Calls From FORTRAN
EXEC Calls From PASCAL
EXEC Call Parameters
Control Requests To The MUX о о о о ее ое
Device Initialization
Interface Driver Control Requests о о ео
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Function
Code
Code
Code
Code
Code
Code
Code
Code
Code
Code
Code
Code
Code
Code
Code
OB: Dynamic Status . . . . o
10B:
12B:
20B:
21B:
22B:
26B:
27B:
30B:
31B:
32B:
33B:
34B:
36B:
37B:
loop Test . . « ¢« « «
Terminate Receive Buffer
Enable Scheduling . . .
Disable Schedule о. ©
Set Timeout . . . . o. e
Flush Input Buffer .
Set Program Address . .
Set Port ID . . + +. +. o
Connect Line о о о ео
Disconnect Line e oo ©
Configure Driver Responses
Set Port Configuration
Set Binary Length ое
Set Read Type о ое . e.
Chapter 3 Using The MUX
Normal Mode о о + + + + + + + + + + + + + + + +
Type-Ahead «. . . . + + + + + + + + + + + + + e e
Program Scheduling . о о о о о о ¢ o o o o
Common Type-Ahead Modes о о о о о о ес +» + + + +
No Type-Ahead Mode
o. . . . . . . . o .
Full Type-Ahead Mode . . о в с ое
Type-Ahead With Schedul ing Mode ое
Type-Ahead With Flush On Break Mode .
Error Recovery .
1/0 Status .
Failure Analysis
Read Errors
. . . . . . . . . o
Chapter 4 Device Driver Writing
Device Driver Writing
Device Driver/Interface Driver Concept =. « ¢ . +. + + +. o o
Reasons For Device Driver/Interface Driver Use . . «. «
Interface Tasks о о о + + + + + + + + + + e e e e e e +
Interface Driver Tasks . . o. + e o о о о о о о о o ooo
Interface control о ое + + + + + + + + + + + e e...
Operating System Interface © + + + + + + + + + + + >.
Device Driver Tasks e . + + + + + + + + + + + + + + + +
HP Implementations Of Device Drivers . . . + + о о ооо
Lineprinter Device Driver DDV12 о + + + + + + + + e
Block Mode Terminal Device Driver DDVOS . . . + + +. +
Device Driver Interface о о о ое + + + + + + e + + + + + + +
Device Drivers For HP 12792B Multiplexer .. о о о о, .
Restrictions And Requirements e e + + + + + + + + + + e
System Abort Requests e e e +0 + +0 + 0 + a so + + + + + à 45
Interface Definitions + +0 + + + + + + + + + + + + e + 4-6
Return To The Interface Driver .. . so o ….….…..... 46
Return To Interface Driver -- Device Driver EQT Extent. . 4-7
Return To Interface Driver -- A-Register . . . o e o . e 4-7
Exit Command + + + + + + + + + + + + + + + + + à 4-7
Function Modifier .. +... + +. . +... ....... 4-8
Return To Interface Driver -- B Register „ . . . . . . . 4-10
Return To Interface Driver -- EQT Entries e . . . e . e 4-10
Selected EQT Definitions And Uses + + + + + + + + e 4-10
Device Driver Address Table + + + + + + + + + + + © H-13
Location And Size Of Device Drivers 0 o + + + + + + © 4-14
Case Study: A Device Driver Writing Example + + + + + e 41-15
Task Definition + + + + + + + + + + + + + + + + + + + 4-15
Margin Set Up .. e "e + + + o oo o o + + e o + + + + 4-15
Cursor Position . . . ox. + + + + + + + + e e e e e e e 4-15
Cursor Tracking . . . e 0 0 + + + + + + + + + + + + . 4-16
Minor Tasks e e о . e + + + + + + + + + + + + + + » 4-16
Device Driver Operation e e e . . e e . + + + + + + + e 4-16
Operation Flow + + + + + + + + + + + + + + + + © 4-17
Set Up Device Driver EQT Extent Pointers .. . o o o 4-19
EQT Setup On First Entry + + + + + + + + + + + e 4-19
Subchannel Determination + + + + + + + + + + + . 4-20
Output a Setup String to the Terminal: ........ 4-20
Perform The Original User Request .. .. . …. . . . . 4-22
Read Cursor Position e e e * e . e e e e e e e e - e U-Q22
Final Completion Return to the Interface Driver. . . . 4-23
Device Driver Address Table e . e e e e . e e eo o o 4-23
Sample Device Driver Listing . . o. e e nr 0000.00. . 4-24
| |
Бобом = -
ТЕРЕК TT
Ш
UV = FE
Chapter 5 Device-Specific Considerations
Device-Specific Considerations
Handshaking e e e e * + + + + + + + + + + + + + + + + eo eo 4 5-1
DDV12 Lineprinter Driver . .. . +. + + + + + + + + + + e e e e De
DDVO5 Terminal Driver о о о ое + + + + + + + + + + + + + + + De
Black Box Considerations . . . + + + + + + + + + + + + + + + 5-3
Dumb Devices . . . +. + + + + + + + + + + + + + + + + + + 5-3
Modems . . .« e + + + + + + + + + + + + + + + + + + + + e Del
Appendix A Device Equipment Table
Appendix B Device Driver Interfaces
HP 26XX Screen Mode Device Driver + + + + + + + + , B-1
DDVO5 User Interface For HP 26XX Terminals . . « e e e e B-1
HP 7310 Line Printer Device Driver . . . e o e... .. Bd
Appendix C Glossary
Index
vii/viii
Chapter 1
Overview
The Hewlett-Packard 12792B Eight-Channel Multiplexer Subsystem for HP 1000
M-, E-, and F-Series computers provides multiple communications channels
through a single microprocessor-based interface, The multiplexer signifi-
cantly off-loads routine communication management overhead from the computer
for higher speed operation compared to the speed achieved when a separate
1/0 card is used for each channel. The HP 12792B is referred to as the
multiplexer, or MUX, in this manual unless its complete name is more
appropriate.
The multiplexer is used to route data from one of eight I/O devices to a
common destination in direct wired installations. It may also by used with
the Systems Modem (consisting of the HP 372144 Systems Modem Card Cage and
one or more modem cards) to provide up to seven high-quality modem ports
(one MUX port is used for systems modem controller card).
Modem operation ís asynchronous full-duplex at rates up to 1200 baud. It
also supports auto-answer for all seven ports. The subsystem includes local
analog loop-back capability to check the integrity of the modem links.
An example MUX configuration is shown in Figure 1-1.
1-1
CPU
USER INTERFACE
PGM. DRIVER
37214A
DEVICE SYSTEM MODEM
DRIVER #1
DEVICE
DRIVER n
2621A/P TERMINAL
2635A PRINTING
TERMINAL
BLACK
BOX
FE UN
2635A PRINTING
TERMINAL
2631A PRINTER
8200-174
Figure 1-1. Example Multiplexer Configuration,
The HP 12792B can be used with Hewlett-Packard devices that communicate with
the CPU with 1/0 specifications that meet RS-232-C or RS-423-A EIA
(Electronic Industries Association) standards and that are compatible with
the available software drivers in the HP 1000 computers. The commonly
used devices are terminals and printers. Furthermore, users may write
their own device drivers to handle any special control required by the
device or where an HP driver is not available.
1-2
Device drivers are simply subroutines of the interface driver which are used
to modify user requests and make them compatible with a specific device.
The interface driver, on the other hand, is basically responsible for the
transfer of information between the user programs, the appropriate device
driver, and the interface card.
Each channel of the multiplexer has a device driver associated with it. The
device driver performs the device-specific formatting of data, which
includes control characters for device requirements. When an EXEC call is
issued from the user program, the interface driver passes it to the device
driver. At this point the device driver can break up the user request into
a series of interface requests. For example, the device driver can instruct
the interface driver to wait for a buffer and inform the interface driver of
the buffer's destination. The information is taken from the appropriate
channel buffer and sent to the destination indicated by the device driver.
Up to 14 device drivers may be used, each of which can be associated with
one or more devices attached to one of the MUX cards in the system. HP
supplies two device drivers with the 12792B product -- DDVOS (26XX terminal
screen mode device driver) and DDV12 (2631/2635/7310 line printer device
driver).
Each MUX interface card contains 16k bytes of random access memory (RAM), of
which 8k bytes are allocated for channel buffers. This 8k byte portion of
memory is divided so that each channel contains four 254 byte buffers, two
for transmission and two for reception. Each MUX card provides two on-board
programmable baud rate generators which control channel transmission speeds
ranging from 50 to 19.2k baud. The total aggregate throughput must not
exceed 78.6k baud. This card may be inserted anywhere in the backplane of
the CPU, unless there is a privileged interrupt fence. In this case the
interface card should be inserted above the fence,
The maximum number of physical devices which will be supported in the
multiplexer subsystem is 61. There are 63 available EQT's in the system but
one EQT should be reserved for the system console and one for the disc. The
multiplexer does not offer system console support.
To increase the throughput of the MUX card, direct memory access (DMA) is
used. The MUX requires that DCPC is installed in the system CPU and in any
1/0 extender box that contains a MUX card. If all DMA channels are busy and
none can be allocated to the terminal/device channel within a 160
millisecond timeout period, the interface driver performs the read/write
function on a word-by-word basis, The word-by-word transfers are broken
into 64 character blocks,
The HP 12828A Multiplexer Panel contains eight RS-232-C ports. This
standard accessory panel is hardwired connecting port 0 to one baud rate
generator, and ports one through seven to the other baud rate generator.
The multiplexer panel is connected to the MUX card and can be at the CPU
(with the standard cable) or up to 91 metres (300 feet) away from the CPU
with custom cabling. RS-232-C compatible devices can then be connected to
the multiplexer panel by cables less than 39.7 metres (50 feet) in length.
The MUX will support asynchronous, full-duplex modems through the
systems modem (HP 37214A Card Cage and modem cards).
Chapter 2
User Interface
(General Considerations
This section describes the driver as seen by the user. Standard 1/0 EXEC
calls are used to transfer data to and from external I/O devices in addition
to performing various 1/0 control operations. Input, output and control
requests to the multiplexer are generally in the form of RTE EXEC calls
while control requests can be initiated either from EXEC calls or by using
the file manager CN command. EXEC calls can be made from Assembly Language
programs or from higher level languages such as FORTRAN and PASCAL.
Request Code
Parameter ICODE identifies the type of EXEC call request. There are eight
types of EXEC calls described in this manual; four normal I/O EXEC calls and
four Class I/O EXEC calls.
STANDARD EXEC CODE PARAMETERS
ICODE = 1 READ REQUEST
ICODE = 2 WRITE REQUEST
ICODE = 3 CONTROL REQUEST
ICODE = 13 1/0 STATUS REQUEST
CLASS 1/0 EXEC CODE PARAMETERS
ICODE = 17 READ REQUEST
ICODE = 18 WRITE REQUEST
ICODE = 20 WRITE/READ REQUEST
ICODE = 19 CONTROL REQUEST
Control Word
Control word (ICNWD) contains a five-bit function code and the logical unit
(LU) number of the device to which the user request is directed. It is
structured as follows:
15 10 6 5 0
O O O O OIFX A K V MIL L L L L L
k--funetion--> <--logical unit->
code number
Function Code
The octal value of the required function code is provided for each of the
request descriptions in the following sections. The user may choose any of
the methods described in this chapter to set the value of bits 10 through 6
of control word ICNWD. For example, if the function code value is octal 6,
add 600B to the value of the LU number.
The MUX driver examines the value of the function code to determine the
action taken by the interface driver in the processing of I/0 or device
control. The requests will vary depending on the function codes described
below. These function codes are used whenever an EXEC 1 (Read), EXEC 2
(Write), or EXEC 3 (Control) call is made, although the bit meanings differ
between read and write requests. Refer to Figure 2-1 for ICNWD bit names.
Logical Unit Number
The logical unit (LU) number is the system address for the I/O device to
which the user is directing a request. The user's system generation listing
enumerates the LU numbers of all 1/0 devices generated into the system.
For example, if the LU number is decimal 10 and the function is octal 6, the
value of ICNWD can be computed:
ICNWD = 10 + 600B = 612B
The B suffix is used to identify an octal number.
BIT 10 (X BIT) Transparent Mode Bit;
0 - DISABLED
1 - ENABLED
BIT 9 (ABIT) Special buffer control bit;
0 - DISABLED
1 - ENABLED
BIT 8 (KBIT) Echo Bit;
0 - DISABLE
1 - ENABLE
BIT 7 (V BIT) Honesty Bit;
О - DISABLE
1 - ENABLE
BIT 6 (M BIT) Binary Mode Bit;
0 - DISABLE
1 - ENABLE
Figure 2-1. 'ICNWD Function Code Bits.
IO Requests
1/0 requests are handled in a variety of ways. These requests are processed
differently depending on the value of the function code of the control word.
Three basic input functions are controlled by the value of ICNWD.
- editing
- echoing
- terminators
When editing is enabled, the control word bits 6 and 10 are set to zero. If
a delete key (rub out key) is struck, the contents of the user's receiving
buffer is erased. The backspace key deletes only the last character
entered, if any. If editing is disabled, the delete and backspace keys
would enter a 177B or 10B into the user's on-board buffer.
If a user is inputting data with editing enabled the interface card will
accept the data into the first of the channel's two 254-byte input buffers.
The multiplexer handles all the edits. User input and editing can continue
until the card's buffers are full or a valid terminator is detected.
At this point, the on-board buffer is off loaded to the CPU. Once the
buffer contents have been moved it cannot be edited. If the first buffer is
filled so that the input overflows into the second buffer, the user cannot
backspace or delete past its lower boundary into the last byte of the first
buffer.
In general, information is supplied to the multiplexer card in a character
mode format and echoed back to the user for visual inspection of the buffer.
This is not always desirable; the echo feature may be suppressed for
passwords and special requests,
The multiplexer card must be able to detect an end-of-record or valid
terminator when it is encountered. Figure 2-2 lists the valid terminators
used to signal the card to interrupt the CPU and transfer data to the user's
program buffer.
Figure 2-3 describes the control word bit combinations used to determine the
interface driver's action on a read request. It is here that valid
terminators, as well as input editing and echoing are specified. Figure 2-4
describes the valid buffer transfer terminators.
OCTAL VALUE OF
COMMON NAME RIGHT BYTE
carriage return CR 000015
device control 2 DC2 000022
record separator RS 000036
end of transmission EOT 000004
Figure 2-2. Valid Terminators
2-4
ICNWD BITS
10
ACTION TAKEN FOR READ REQUEST
editing enabled
echo disabled
CR is a valid buffer transfer terminator
CNTRL D results in an EOT status condition
and a zero length transmission log (zero
length buffer)
input editing enabled
echo enabled
CR is a valid transfer terminator
CNTRL D results in an EOT status condition
and a zero length transmission log (zero
length buffer)
input editing disabled
echo disabled
data transfer terminates only when the user
buffer is full
input editing disabled
echo enabled
data transfer terminates only when the user
buffer is full
input editing disabled
echo disabled
CR is a valid transfer terminator
input editing disabled
echo enabled
CR is a valid transfer terminator
special buffer transfer
same as the transfer with bit 9 (special
function bit) set to zero but data
resident in the card's buffer that
exceeds the end of the user buffer is
not destroyed. It may be accessed in
subsequent buffer transfers.
* echo, edit, etc. are defined by bits 6, 8,
and 10 above.
X = don't care condition
Figure 2-3. Read Request Function Codes.
2-5
ICNWD BITS
10 9 8 7 6 ACTION TAKEN FOR WRITE REQUESTS
0 X X X 0 An ASCII write request will have CR/LF
appended to the buffer if the last
character in the buffer is not " ",
If the underscore, 00137B, is appended to
the user's buffer it will not be printed.
X X X X 1 the entire buffer is transmitted as is,
1 X X X X no characters are appended to the user's
buffer,
X = don't care condition
Figure 2-4, Write Request Function Codes.
There are some areas of I/0 request handling that require special mention:
a. Zero-length keyboard entries will not be ignored by the interface
driver. A carriage return without data is a zero length record.
b. Function code 30B configures the multiplexer card to conduct 1/0
transfers in a specified character format. The terminal must be
configured accordingly for successful I/O processing to occur.
c. Read or write function codes of 35B bypass any modem connection checks,
Refer to the section on modems.
Standard I/O EXEC Calling Sequences
The following sections show the general formats used for making EXEC calls
from RTE Assembly, RTE FORTRAN IV and PASCAL/1000 programs. In the
following examples, the only names that must be used as given are EXEC and
ABREG. Other parameters used such as ICODE, ICNWD, and IPARM are simply
mnemonics used in this manual.
2-6
EXEC Calls From Assembly Language
The Assembly language calling sequence for EXEC calls is as follows:
EXT EXEC Declare EXEC as an external
JSB EXEC Transfer control to RTE
DEF RTN Return address
DEF ICODE Request code
DEF ICNWD Control word
DEF IPR1 Parameter 1, optional
DEF IPR2 Parameter 2, optional
RTN Return Point
* A register contains I/O status
* B register contains the length of the
* transmission log
ICODE DEC 1 Request code word (READ)
ICNWD OCT CNWD Control word. Control Function plus
* LU number assigned to the port.
IPR1 OCT pri Use depends on
IPR2 OCT pre type of call
The return point, labeled RTN,
must follow the DEF of the last parameter
used. EXEC uses this address to calculate the number
for those calls that have optional parameters.
of parameters passed
2-7
EXEC Calls From FORTRAN
To call EXEC as a subroutine from RTE FORTRAN IV, use the following calling
sequence:
ICODE = 3
ICNWD = 600B + LU
CALL EXEC(ICODE, ICNWD, IPARM1, IPARM2)
CALL ABREG(IA,IB)
EXEC can also be called as a function from RTE FORTRAN IV, using the
following calling sequence:
DIMENSION IREG(2)
EQUIVALENCE (REG,IREG),(IA,IREG),(IB,IREG(2))
REG = EXEC(ICODE,ICNWD,IPARM1,IPARM2)
The two different methods of calling EXEC from FORTRAN illustrate the two
ways of obtaining the A- and B-Register values from the EXEC call.
In the following sections, the examples used to illustrate the calls are
written using the CALL EXEC(...) method, with an example showing how to make
the control request from the File Manager using the CN command.
EXEC Calls From PASCAL
An EXEC call may be coded in PASCAL/1000 either as a procedure or as a
function, If it is coded as a function, the return value type must be a
two-word type to return the values of both the A- and B-Registers.
The PASCAL/1000 compiler does not treat an EXEC call in any special manner.
Therefore, it is possible to call EXEC directly if an external declaration
has been made with a set of formal parameters.
If the $HEAP 2$ compiler option is used, then the HEAPPARMS option must be
OFF for EXEC external declarations with VAR parameters.
An example of EXEC call in PASCAL is as follows:
program muxex;
EXEC 3 , a control request |)
is placed on LU 19. The 16 }
bit control word is stripped)
const
+0
lu control request code = 3
{
{
{
shift left six bits = 64 ; { of bits 15 -11, so that the }
{ function code, bits 10-6, }
lu_number = 19; { can be examined, In this }
{ case the function code 6 }
function code = 6 ; { is placing a status request }
{ to LU 19 }
type
int = -32768..32767; { single-word integer type }
bit = 0..1; ( single-bit type }
bit def = packed record { bit data type }
bit 15 : 0..1; { This allows the user to }
bit 14 : 0..1; { access each bit field }
bit 13 : 0..1; { individually. }
bit 12 : 0..1;
bit 11 : 0..1;
bit 10 : 0..1;
bit 9 : O..1;
bit 8 : 0..1;
bit 7 : 0..1;
bit 6 : 0..1;
bit 5 : 0..1;
bit 4 : 0..1;
bit 3 : 0..1;
2-9
var
procedure rte exec call $alias 'EXEC'$
(request code : int;
var control request : int;
var subfunction
bit 2 : O..
bit 1 : O..
bit 0 : O..
end;
word def = record
CASE int of
1: ( bits : bit def);
2 + ( word
end;
control word : int;
a8 Bo we
sub function : word def;
a_reg : word def,
b reg : word def;
51 : text;
int
{
{
{
{
word data type }
this double definition
allows the user to access }
the information bit by bit}
or as a word
: word def);
procedure get the a b registers $alias 'ABREG'$
procedure initialize sub function;
begin
sub function.bits.bit 15 :
sub_ function.bits. bit_ 14 :
sub_ function.bits, bit 13
sub_ function.bits. bit_ 12 :
sub function. bits. bit 11
sub function. .bits.bit 10 :
sub function.bits.bit 9
sub function.bits.bit 8
sub function.bits.bit 7
sub function.bits.bit 6
sub_ function.bits.bit —5
sub_ function.bits.bit 4
sub_ “function.bits.bit 3
sub_ function.bits.bit : 2
sub_ function.bits. bit 1
sub _ function.bits. bit 0
end;
2-10
{ initialize optional
parameters }
WO GO BE BO US 0090 0e 00e ФФ we
© © © © © © © © © © © © О о о ©
Ge Ve PO WS woe we
external;
}
}
(var a:word def; var b : word def); external;
begin { beginning of main program }
initialize sub function;
sub function.bits.bit 1
sub function.bits.bit 3 :
sub function.bits.bit 5
sub function.bits.bit 7 :
sub function.bits.bit 9
9
; { set the appropiate bits }
{ in the optional parm }
.
{ construct the control word }
control word := lu number+(function code*shift left six bits);
{ place the RTE EXEC call }
rte exec call (lu control request code,
control word, sub function);
get the a b registers (a reg,b reg);
begin { examine the A-register for the status of this channel |
reset (S1,'1');
{
}
if a reg.bits.bit 15 = 0
t hen
if a_reg.bits.bit 14 = 0
t hen
writeln (S1, 'unit available for use')
else
writeln (S1,'unit disabled')
else
if a reg.bits.bit 14 = O
then
writeln (S1,'unit currently in operation’)
else
writeln (S1, 'unit waiting for DMA channel');
2-11
end, { end of PASCAL example }
It may be necessary or desirable to use aliases for each EXEC service used
in a program for the following reasons:
- The name EXEC represents an entire class of services. A program
using EXEC calls will be more readable if a descriptive PASCAL/1000
name is given to each service,
- Each EXEC service requires a different set of parameters. Some
services (e.g., EXEC 11) have optional parameters. Each PASCAL/1000
routine must have a specific set of parameters.
EXEC Call Parameters
Request code ICODE and control word ICNWD, in that order, are the first two
parameters of an EXEC call. Other parameters, when needed, are described
for each request in the following sections,
Control Requests To The MUX
Control requests have the following general format:
CALL EXEC(ICODE,ICNWD,IPARM)
Request code ICODE has a value of 3 for all control requests. Each control
request has a different function code specified in ICNWD, and the value of
the IPARM parameter depends on the function code. Table 2-1 contains a
summary of the function codes and their meanings.
Equipment Table word five (EQT5) contains the status word. If a control
request is made to an unbuffered EQT (Equipment Table), the A-register will
contain the device's status, If the EQT is buffered, the A-Register is
meaningless. In either case the B Register is meaningless, except for
function code 6B This status request will return the length of the
type-ahead data in the B-register.
When issuing a function code command from the File Manager the following
format is used:
2-12
:CN,lu,fn[,pr]
lu = LU number
fn = function code
pr = optional control parameter
Table 2-1. Control Request Function Codes
CODE DESCRIPTION PARAMETERS REQUIRED
6B DYNAMIC STATUS OF PORT NO
10B INITIATE MODEM LOOP TEST YES
12B TERMINATE RECEIVE BUFFER NO
20B ENABLING SCHEDULING NO
21B DISABLE SCHEDULING NO
22B SET TIMEOUT YES
26B FLUSH INPUT BUFFER YES
27B SET PROGRAM ADDRESS YES
30B SET PORT'S ID YES
31B CONNECT MODEM LINE YES
32B DISCONNECT MODEM LINE YES
33B CONFIGURE DRIVER RESPONSES YES
34B SET PORT CONFIGURATION YES
36B SET READ BINARY LENGTH YES
37B SET READ TYPE YES
For example,
to place LU
19 in type-ahead mode with cancel on break, the
following control command is issued:
:CN, 19, 33B,23000B
2-13
Device Initialization
Device initialization is accomplished by executing the following three
control requests,
Typically this is done for each terminal from your WELCOM file, but can be
executed interactively:
- set port ID (required)
function code 30B
- configure driver responses (optional)
function code 33B
- enable scheduling (optional)
function code 20B
Interface Driver Control Requests
Function Code 6B: Dynamic Status
Dynamic Status can be used to find out the status of the previous request
and to determine the length of the type-ahead data in the input buffers.
An example of a dynamic status request to LU 42 is coded as follows:
ICODE 3
ICNWD = 600B+42
CALL EXEC(ICODE,ICNWD,IPARM1)
CALL ABREG(IA,IB)
If IPARM1 is set to zero, the B-register will contain the character count of
any type-ahead data. If IPARM1 is not set to zero, modem related port
status will be returned in the B-register (providing that a modem is being
used through the system's modem panel).
2-14
The status bits returned in the A-register are defined as follows:
Bits 15-8 Undefined
Bit 7 Last request timed out
Bit 6 Break key hit
Bit 5 EOT (control-D) entered on last request
Bit 4 Device failure (e.g., modem line down)
Bit 3 Parity error or overflow detected on last request
Bit 2 Type-ahead data available (length in B-register)
Bit 1 Program schedule enabled
Bit 0 0 Undefined
The modem related status returned in the B-register (if IPARM1 not zero) is
defined as follows:
Bits 15-8 Undefined
Bit 7 O = connected to systems modem panel
1 = hardwired (no systems modem panel)
Bit 6 1 = no response from systems modem
Bit 5 1 = modem not present
Bit 4 1 = being called
Bit 3 0 analogue loopback
remote digital loopback
Bit 2 = not in loopback mode
1 = loopback completed
Bit 1 O = low speed
1 = high speed
Bit 0 0 line disconnected
1 line connected
Note: On power-up, the B-register status equals 200B and it will remain so
if an HP 37214A modem panel is not connected to the MUX).
The dynamic status request is a call to the driver; therefore, it will wait
until any outstanding requests to that LU have completed.
2-15
Function Code 10B: Loop Test
Function Code 10B performs a local analog or a remote digital loop test when
using the HP 37213 Modem Card and only applies to this card in the HP 37214A
Systems Modem Card Cage. Refer to the manuals for the external modems for
loopback test instructions on them. For these tests, the ENQ/ACK handshake
and ECHO must be off.
After initiating a loop test, wait for approximately three seconds and then
confirm that the modem being tested has looped the data lines by reading the
port status (refer to Dynamic Status, Function Code 6B). After confirming
the loopback, the user can put the port in a type-ahead mode and then
perform the integrity check of the modem line by comparing the received data
against the transmitted data. After the test, the user can disable the
loopback by making another control request with function code 10B and with
IPARM1 set to 0.
Note that if a port's modem line status is "down", the driver DVMOO will
pass only the write request with function code 35B to the card. Therefore,
if the loopback port is "down", the user should use the write request with
function code 35B to send the loopback data to the card. The port's config-
uration should be set to "don't down the EQT on line failure" to prevent the
EQT from going down.
An example from file manager is:
: CN, LU, 10B, IPARM1
where, IPARM1 is
Bit 2: O = low speed (300 baud).
1 = high speed (1200 baud).
Bit 1: O = analog.
1 = remote digital.
Bit 0: disable loop test.
—
"uN
enable loop test.
The following is an example of a loopback test:
:%% ENABLE TYPE-AHEAD & DO NOT CHANGE READ CONFIGURATION EVERY
TIME MODE
: CN, LU, 33B, 20200B
:#% SPECIFY ECHO/EDIT OFF, END TRANSFER ON CARRAGE RETURN
: CN, LU, 37B, 100000B
:** INITIATE THE LOCAL ANALOG LOOPBACK MODE AT HIGH SPEED
2-16
: CN, LU, 10B,5
C#* WRITE DATA TO THE LU; USE 35B AS THE WRITE FUNCTION CODE
CALL EXEC(2, 3500B+LU, TBUFF , BUFLEN)
C## READ BACK THE DATA
CALL EXEC(1,3500B+LU, RBUFF,BUFLEN)
NOW COMPARE TBUFF WITH RBUFF (THEY SHOULD BE IDENTICAL)
:** DISABLE THE MODEM LOOPBACK TEST
: CN, LU, 10B, 0
:** CONFIGURE THE PORT BACK TO ITS NORMAL MODE OF OPERATION
: CN, LU, 33B, 10100B
Function Code 12B: Terminate Receive Buffer
Function code 12B instructs the interface card to immediately terminate
its active receive buffer. A subsequent read request will read the
terminated buffer with the length of the received data returned in the
B-register (i.e., transmission log).
If the active receive buffer on the interface card is empty when
function code 12B is issued, the buffer will be terminated and the driver
will be informed as soon as the first character is received. The
subsequent read request issued will be completed with a transmission log
of one byte.
This control request is useful to read incoming data which is not in a
format known to the multiplexer; e.g., ending on <CR>, <DC2>, <RS>
CNTL-D, or count. In other words, if a user does not know how many
characters to expect, and if the data does not have a record terminator
that 18 recognized by the MUX, function code 12B can be used to read
the data.
The following example shows how to read data from a device connected to
the multiplexer: (The length of the incoming data is not known ahead of
time and/or the record terminator is not recognized by the multiplexer.
Also the port must be configured to type-ahead mode and the character
count is set to 254.)
PROGRAM THE MUX PORT IN TYPE-AHEAD MODE & SPECIFY NOT TO
RECONFIGURE THE READ OPERATION ON A READ REQUEST.
©) ©) ©) ©)
CALL EXEC(3,3300B+LU,22200B)
С
С SET THE READ CONFIGURATION TO END ON A COUNT OF 254, ECHO & EDIT OFF
C
CALL EXEC(3,3600B+LU, 254)
CALL EXEC(3,3700B+LU, 4000B)
С
С THE FOLLOWING LOOP WILL TERMINATE & READ THE INCOMING DATA BUFFER
C
10 CALL EXEC(3,1200B+LU, 0)
CALL EXEC(1,LU,BUFF,-254)
CALL ABREG(ISTAT,LEN)
C
C LEN HAS THE LENGTH OF THE DATA RECEIVED
C
C
C PROCESS THE RECEIVED DATA
C
C
C READ SOME MORE DATA
GO TO 10
Instead of doing a read after the terminate request, a user may choose to
schedule a program when type-ahead data is available. This can be done by
setting bits 11-10 to "10" in a control request with function code 33B. The
program to be scheduled is specified by function code 27B. After the
terminate request is issued, the program will be scheduled as soon as the
type-ahead data is sent to the driver by the interface card. The scheduled
program will then read the data, and if desired, issue another terminate
request to read more data.
Function Code 20B: Enable Scheduling
Function code 20B enables the driver to schedule a program on interrupt.
The program to be scheduled is specified at generation or the driver can
interactively be informed of the address of the program's ID segment through
function code 27B. Scheduling will commence if the following conditions are
met:
1. Scheduling is enabled
2. The program to be scheduled is dormant (state 0)
3. A read operation is not in progress.
4, The port is not in type-ahead mode and any key is hit
—-or-
The port is in type-ahead mode and the break key is hit (see
control 33B regarding type-ahead and the break key).
—Or=
The port is in the type-ahead mode with "scheduling on data
available” and a valid terminator, or count, is received.
To enable scheduling and schedule a program on an unsolicited interrupt the
following request is issued:
ICODE = 3
ICNWD = 2000B+LU
CALL EXEC(ICODE,ICNWD)
or to enable scheduling on an unsolicited interrupt at LU 41:
CN, 41,20B
Function Code 21B: Disable Schedule
Function code 21B resets the flag set by function code 20B (enable
scheduling). When a terminal is disabled, striking a key on the keyboard
will not schedule the program specified at generation or by Control Request
27B. Once a port is disabled, programs will not be scheduled. At boot-up
time the default value of the schedule enable flag is disabled.
For example, to disable LU 41:
ICODE = 3
ICNWD = 2100B + 41
CALL EXEC(ICODE,ICNWD)
OR
:CN, 41,21B
To re-enable the terminal an "Enable Schedule" request must be issued:
: CN, 41,20B
Function Code 22B: Set Timeout
To alter the RTE device time-out value that was established at system
generation, use function code 22B. The time-out value can be set in 10
millisecond intervals by the integer provided as an additional parameter.
Time-out values can also be set by using the system TO command. The RTE
Programmer's Reference Manual describes how to use the TO command. When
using a control request or the File Manager CN command, be sure to specify
the channel or device by LU number; when you use the TO command, specify the
channel by the EQT number. The TO command checks for a lower limit of 500
milliseconds but function code 22B does not.
The timer specifies the number of tens of milliseconds to wait for keyboard
input. If this time is exceeded before a user keyboard input completes, the
driver sets bit 7 in the terminal's status byte and returns to the caller
with a zero length transmission log.
For example, to set the timeout of LU 41 to 25 seconds:
3
2200B + 41
ITO = 100 * 25
REG = EXEC(ICODE,ICNWD,ITO)
H
a
=
Lo,
"
OR
CN, 41, 22B, 2500
2-20
Function Code 26B: Flush Input Buffer
Function code 26B instructs the interface card to clear any data from the
channel's input buffer which might have accumulated in the type-ahead mode.
The value of IPARM indicates whether only the active buffer (IPARM=0) or all
of that port's receiving buffers (IPARM=1) should be cleared. Function code
26B ensures the user that the information requested is what is obtained,
eliminating the possibility of processing any outstanding data previously
entered. To flush only this channel's active buffer use IPARM=0. Setting
IPARM=1 will flush the two 254 byte input buffers on this port.
For example, to flush the two input buffers on LU 41:
ICODE = 3
ICNWD = 2600B+41
IPARM = 1
CALL EXEC(ICODE, ICNWD, IPARM)
OR
CN,41,26B,1
Function Code 27B: Set Program Address
Function code 27B saves the value of IPARM as the address of the ID segment
of a program to be scheduled on an unsolicited interrupt. If the value of
IPARM is zero or negative, program scheduling is disabled regardless of
function code 20B. This call will override for this particular port the
value set at system generation time. This function code is intended for
programmatic rather than interactive use.
A program's ID segment address can be found using the system utility
subroutine IDGET. Care should be exercised that the address supplied is
correct and points to an ID segment of a permanently loaded program. On
return, the B register is set to the address of the old ID segment. For
example, if IADDR contains the address of a program's ID segment, this
program will be scheduled on an unsolicited interrupt. IADDX will be set to
the previous program ID segment address, if the EQT is unbuffered.
2-21
ICODE = 3
ICNWD = 2700B+LU
CALL EXEC(ICODE,ICNWD,IADDR)
CALL ABREG (IA,IADDX)
OR
CN,LU,27B,IADDR
Function Code 30B: Set Port ID
Function code 30B establishes a logical connection between the logical unit
and the physical terminal connected to the interface, This function is
normally executed from the WELCOM file to initialize and configure ports 0
through 7, but can be done interactively. Function code 30B must be given
before any other request is given to that port. If other commands are sent
prior to this function call they may be ignored.
The value of IPARM for function code 30B is defined as follows:
Bits 15-14: # bits per character for transmission and reception.
This does not include parity.
O = 5 bits/char 2 = 6 bits/char
1 = 7 bits/char 3 = 8 bits/char
Bit 13: 1= Enable this port as a modem LU.
0 = Do not enable this port as a modem LU.
CAUTION: Do not set bit 13 if you are not using a modem in the
port since setting this bit causes port 7 to be assigned to the
37214A Systems Modem Card Cage prohibiting its (port 7) use
as a hardwired port. Conversely, if you want to use a modem
with the Systems Modem, do not configure port 7 with a function
code 30B.
Bit 12: Baud rate generator for this port:
baud rate generator 0
baud rate generator 1
1
Bits 11-10: # stop bits:
All data transfers to and from the interface card
require a delay between each character, For all
asynchronous transfers there is always at least
one stop bit.
0
1
reserved 2 = 1-1/2 bits
1 bit 3 = 2 bits
2-22
Bits 9-8:
Bit 7:
Bits 6-3:
Parity select:
none 2 = none
odd 3 = even
«>
ни
ENQ/ACK handshake enabled
ENQ/ACK handshaking disabled
ah
nu
Baud rate:
О = по change 8 = 1800
1 = 50 9 = 2400
2 = 75 10 = 4800
3 = 110 11 = 9600
4 = 134,5 12 = 19200
5 = 150 13 = reserved
6 = 300 14 = reserved
7 = 1200 15 = reserved
NOTES for Bits 6-3:
1. The 19200 baud rate is not supported on eight channels
simultaneously since it would exceed the maximum throughput of
the card (76800 baud). A baud rate parameter of zero will not
change any of the port's parameters (baud rate, parity, stop
bits, etc.).
2. The MUX card has two on-board baud-rate generators
providing baud rates to the eight ports. These eight ports can
be divided into two groups and connected to either of the two
generators, However, all ports on a given baud-rate generator
must be initialized to the same baud rate with the exception
that (75 and 150) or (300 and 1200) or (2400, 4800, and 9600)
can be simultaneously selected.
For example, assume that ports 0-3 are connected to baud-rate
generator 0 and ports 4-6 are connected to baud-rate generator
1; and that a modem card is plugged into port 5. If port O is
set to 9600 baud, then ports 1-3 must be set to either 2400 or
4800 or 9600 since they are on the same baud-rate generator.
Also if the modem is initialized to auto-answer, the modem must
be set to 1200 baud, and if the modem port is set to 1200 baud,
then the other ports on baud-rate generator 1 (ports 4 and 6)
must be set to either 300 or 1200 baud.
When the MUX is connected to the HP 37214A Systems Modem, the
firmware uses port 7 to communicate to the systems modem
controller at 1200 baud. Hence, port 7 should be grouped with
the modem ports which will be run at 300 or 1200 baud.
2-23
3. The baud rate should be set to 300 or 1200 baud as required
while originating a call. If you are in auto answer mode, the
baud rate should be initially set to 1200 baud. The firmware
will automatically change it to 300 baud if the systems modem
detects that the remote modem is calling in at low speed (300).
This is referred to as speed sensing.
Bits 2-0: Port number of this terminal (0-7)
For example, to set the port ID of an HP 2621 terminal on channel 0, as
LU 41, with a baud rate of 9600, ENQ/ACK handshaking enabled, and no parity
the following control request is issued:
CN, 41,30B, 142330B
Function Code 31B: Connect Line
Function code 31B connects a modem line when the systems modem panel is
being used. Once a Connect Line request has been executed on a given port,
the user need not do it again unless a power fail occurs or a Disconnect
Line request is executed. Even if the modem gets disconnected accidently,
the user will be able to call back and establish the connection. However,
in the case of an auto-dialed call, the user will have to make a Connect
Line request again to perform the auto dialing. When the line gets
disconnected the action taken by the driver is selected according to the
user specification of bits 15 and 14 in function code 33B. Connect Line
requests can be done from file manager or by EXEC request. For example:
: CN, LU, 31B,IPARM1
where IPARM1 is as follows:
2-24
Bit 15:
Bits 5-3:
Bit 2:
Bit 1:
Bit 0:
No Wait bit
driver will complete the request (i.e., return) only after
line has been connected.
0
driver will not wait for the line to be connected before
completing the request.
asd
ti
Configuration straps for the HP 37213A modem card. These
straps will not affect the configuration of the external modem
connected to the HP 37215A modem interface card. (The modem
cards are contained in the HP 37214A modem card cage.)
Bit = 10 bits
1 = 9 bits
Bit 0 = 212 mode
1 = V.22 mode
Bit O = guard tone off
1 guard tone on
0 = originate
1 = answer
0 = manual
1 = auto-díal
O = low speed (300 baud)
1 = high speed (1200 baud)
If the user wants to auto-dial, the number to be dialed is specified before
the Connect Line request by making a write request with function code 35B as
follows:
CALL EXEC
Where: LU
BUFR
BUF LN
Function code
(2, 3500B+LU, BUFR, BUFLN)
LU of the modem
buffer that contains the phone number (AUTO-DIAL BUFR)
length of BUFR
35B tells the driver that this is a special write buffer. The
AUTO-DIAL BUFR should start with a <T> or <P> for DTMF tone or pulse dialing
followed by a
string of numbers. The format of the BUFR is:
T+n+n+n+... N+N+N or P+n+n+n+... n+n+n
where + is a delimiter. Other valid delimiters are:
SPC),
- /
2-25
A delimiter need not be sent. Consistency of the choice of delimiters is
not needed and any number of delimiters may be sent.
n is a digit 0 to 9, or *
An * will cause an access pause of two seconds during dialing. Up to two
access pauses may be included. The total number of digits including pauses
cannot exceed 125.
Examples:
a. P /031/331 - 1000 (Pulse dial the number 031 331 1000).
b. T 9 # 0101 (916) 786 2001 (Tone dial 9 0101 916 786 2001 with an
acess pause after the first digit).
Function Code 32B: Disconnect Line
Function code 32B disconnects a line from being used as a modem line, Once
a Disconnect Line request is done, an incoming call cannot establish a
connection until a Connect Line request is executed unless the local modem
is programmed to auto-answer a call.
This request can be done from file manager as well as an EXEC call. For
example, from file manager:
: CN, LU, 32B,IPARM1
where IPARM1 is as follows:
Bit 15: No Wait bit.
O = driver will complete the request (i.e., return) only after
line has been disconnected.
1 = driver will not wait for the line to be disconnected before
completing the request.
Bit O: 1 = disable auto-answer.
Function Code 33B: Configure Driver Responses
Function code 33B uses the IPARM parameter to specify port parameters. The
value of IPARM will configure the driver without sending the parameters to
the card. The bit fields are defined as follows (all fields default to the
01 state at system boot time):
2-26
Bits 15-14
Bits 13-12
Bits 11-10
Bits 9-8
These bits are used to control responses to device or line
failures, such as the modem line going down.
00 = no change.
01 if the device or line goes down, set the device down
(e.q., IO NR).
10 = if the device or line goes down, don't down the device,
but abort the request, then return EOT and go into a hard
flush mode (i.e., ignore all subsequent I/0 requests.
Function code 6B will return additional information
regarding the failure.
These bits define the type-ahead feature of the MUX card.
00 = no change
01 = (default value) no type-ahead. Striking any key when
there is not a read request pending will gain the system's
attention, if enabled.
10 = Type-ahead data can be received without a pending read
request. The information on the card is saved until а
read request is made. At this point the data is
retrieved. Only the break key will gain the system's
attention unless type-ahead with scheduling is enabled.
These bits define the action to be taken when type-ahead data
becomes available. Type-ahead data is defined as "available"
when an End-of-Record is read by the card. Valid terminators
are defined by the previous read or through control request 37.
00 = no change
01 = (default value) bit 2 is set in the EQT status word.
10 = Bit 2 is set and scheduling is attempted.
These bits define the action to be taken when the BREAK key is
struck.
00 = no change
01 = (default value) if scheduling has been enabled via control
20, scheduling is attempted.
10 = cancels any type-ahead data and then attempts to schedule
the designated program.
2-27
Bits 7-6
Bits 5-1
Bits 3-0
For example,
LU 41:
These bits control the sending of read configuration
information to the card. Also see control 37B.
00 = no change
01 = This is a normal read operation. The driver examines bits
10-6 of the control word in the user's EXEC request which
specifies a unique read request type to the MUX card.
10 = This will not reconfigure the read operation. When bit 7
is set, the driver overlooks bits 10-6, and only the
device driver or a control 37 can modify the read
configuration type.
Reserved for future use, should be set to zero.
These bits define the device driver attached to this port.
Device driver number one is the default device driver that is
included as part of the interface driver. Driver number one
passes all of the user's request directly to interface driver.
Device drivers number two through n (n < 16) are defined at
system generation time. The device driver address table $DVTB
is established at generation time and defines the association
(relation) between a device driver number two through n and its
device driver (refer to "Device Driver Address Table" in
Chapter 4). For the HP 12792B Multiplexer Subsystem, device
driver number two defaults to the HP supplied driver DDV12 and
device driver number three defaults to HP supplied driver
DDVO5S. These drivers can be overrridden by the user. Exactly
one device driver is attached to each port at any time. If
zero is entered no change is made.
to configure the driver response for a full type-ahead mode on
ICODE = 3
ICNWD = 3300B+41
ТРАВМ = O22400B
CALL EXEC(ICODE, ICNWD, IPARM)
OR
CN,41,33B,022400B
NOTE: If any port is configured for a type-ahead mode, the break key must
be struck to schedule the LOGON prompt.
2-28
Function Code 34B: Set Port Configuration
Function code 34B uses the IPARAM parameter to specify port configuration
additional to function code 30B. The bit fields in IPARAM are defined as
follows:
Bits 15-1 : Reserved for future use and should be set to zero.
Bit 0 : Transmit pacing with XON/XOFF.
0 Disable XON/XOFF handshake
1 Enable XON/XOFF handshake
Transmit pacing is a mechanism by which the remote device can control (stop
and resume) the transmission of data from the multiplexer. If enabled,
transmit pacing is performed using XON and XOFF control codes. When the
multiplexer receives an XOFF code (ASCII DC3), it stops transmitting data.
When the multiplexer subsequently receives an XON code (ASCII DC1), it
resumes transmitting data.
For example:
: CN, LU, 34B, 1 (Enable XON/XOFF)
: DL, CRN (Causes a long output to the terminal)
CTRL-S (XOFF will cause the output to stop; e.g., if
. the user wants to stop to look at something)
CTRL-Q (XON resumes the output to the terminal)
Note: XON and XOFF codes can be issued through the keyboards to pace the
data transmitted to the terminal. The CNTL and Q keys (when pressed
simultaneously) generate an XON code and the CNTL and S keys generate
XOFF.
CAUTION
If XON/XOFF transmit pacing is enabled, all Cntrl-S
characters received by the MUX are treated as handshake
characters and therefore can't be used as data
characters. Similarly, each Cntrl-Q preceded by a
Cntrl-S is treated as a handshake character. A Cntrl-Q
received without a Cntrl-S is treated as a data
character, Some of the HP Software Programs; screen
mode EDIT and BASIC) use XON and/or XOFF characters to
perform line and/or page editing. It is advised that
these characters are not used for editing and
handshaking at the same time. A Cntrl-Q can be used for
editing as long as it is not preceded by a Cntrl-S.
Similarly, it is recommended that the XON/XOFF transmit
handshake is disabled while sending binary data (For
example, from a data cartridge) to the MUX.
2-29
Function Code 36B: Set Binary Length
Function 36B sets the physical buffer length for binary type read requests.
This information is normally provided by the driver from a user read (EXEC
1) request, but it may be overridden.
Function Code 37B: Set Read Type
Function code 37B sends configuration information to the interface card for
use in read (EXEC 1) operations. Under normal operation, this information
is provided by the interface driver as directed by the function field bits
10-6 of the EXEC request.
This call provides the user with a mechanism to override the interface
driver defined values or to configure a read operation on the card without
executing a read request. This is useful in type-ahead initialization. If
bit 7 in the driver configuration word (control 33B) is not set, the next
read operation will reset the read type. See Table 2-2 for a description of
the Set Read Type parameter.
For example, to establish a read type with a buffer transfer on a carriage
return for LU 41:
ICODE = 3
ICNWD = 3700B+41
ITYPE = 100000B
CALL EXEC(ICODE, ICNWD, ITYPE)
OR
CN, 41,37B, 100000B
2-30
Table 2-2. Set Read Type (Function 37B) Parameter Description.
Bit # Read Type
15 end transfer on a carriage return <CR>
14 end transfer on a record separator <RS>
13 end transfer on control-D
12 end transfer on DC2
10-11 00 - End transfer based on bits 15 - 12
01 - End transfer based on bits 15 - 12
10 - End transfer on count using control function 36B
11 — Reserved. *
9 enables input data editing
(backspace and delete)
8 enables input data echoing
0-7 reserved for future use,
should be set to zero
* If Bit 11 is set, a control 36B should also be issued
to set the length.
2-31/2-32
Chapter 3
Using the MUX
This chapter describes the features of the HP 12792B Multiplexer,
Type-ahead is explained, and the most commonly used type-ahead modes are
covered. Error handling and failure analysis in user-written programs are
also addressed.
Normal Mode
In the normal, non-type-ahead mode of operation, the subsystem will appear
identical to other non-multiplexed RTE terminal drivers. When a port is
inactive, the driver will set up a "read pending" on the terminal so that it
will be informed when any key is struck. The appropriate action (system
attention, program schedule, etc.) will then be taken.
Type-Ahead
Type-ahead is the ability of a system to accept data from the user's
terminal or device before it is requested by the CPU. The MUX card is a
buffered device and for each channel it is capable of holding up to two, 251
byte buffers of text in on-board memory.
An advantage of type-ahead is that applications programs can make the system
appear more responsive to the user, increasing total (system plus human)
throughput. This is done by having the application program prompt the user
to respond while processing the previous input. By the time the user has
finished typing, the system will have processed the last request and can
begin on the next, As long as the processing takes less time than the
typing, the user perceives instant response time.
While in type-ahead mode, the driver leaves a read request pending on the
card (not the EQT) at all times. This read allows the user to enter
data into the card even though the system does not have a read pending.
Upon receiving a record the card will interrupt the CPU, telling it that a
buffer of data is available. If no request has been posted to that port, a
flag is set in the status word and the driver returns to the system and
waits. When a request is issued, the driver reads the data from the card
and completes the user request.
3-1
Since keyboard characters are buffered on the card, system attention in
type-ahead mode cannot be gained by striking a terminal key. The BREAK key,
however, is not buffered and can be used to obtain system attention.
Since multi-line type-ahead is possible, two different type-ahead modes are
available. Full type-ahead, as described above, would cause successive read
requests to fetch successive lines of text from the multiplexer card. This
mode is useful for such tasks as text editing and using DBUGR. Typing can
be done as far ahead of the data processing as allowed by available
multiplexer buffer memory, up to and not exceeding two records.
In situations where system response could radically alter a user's next
command (FMGR error messages, for example) a full multi-line type-ahead may
cause problems. The following will illustrate this problem:
User types... ST,FILE, 8
while tape is moving, the user types:
PU, FILE
the tape runs out; the system downs the device
The user hits the BREAK key, the system issues a prompt and a read, the
system rather than FMGR reads the PU command from card buffer, and
tries to execute the FMGR command.
In the above example, the user merely gets back an "OP CODE ERR" from the
system the first time the request for system attention is made. It is
possible, however, for the commands stored on the card to have a disastrous
effect on the system.
The solution to the above problem is to configure the driver to cancel all
card data upon receiving a BREAK interrupt (refer to control function 33B).
This preserves the multi-line type-ahead feature, and reduces the chance of
data being read by the wrong process,
If an analogous situation could occur for user written programs, another
possible solution is for the user to issue a " "Flush Card Buffer" request
(control request 26B,1) prior to any sensitive read request. This will
clear the extra commands before they can be misread.
Note that type-ahead is also useful in non-terminal device communication.
The buffering on the card eliminates the need for stacking two or three
class read requests on an LU to prevent data loss, thus reducing program
size and complexity and the need for a large SAM (System Available Memory).
Type-ahead scheduling can be used to invoke a data processing program.
When data is available on the multiplexer card and there is no pending
request to accept it, a bit is set in the status word and program scheduling
will be attempted. Should the user program decide it doesn't want the data,
it can issue an input flush (control 26B) to remove the data.
Program Scheduling
Program scheduling is a mechanism whereby certain external events will cause
the interface driver to schedule a program in the system. This program is
given the address of EQT (Equipment Table) word 4 which provides adequate
information to determine at which port the event occurred.
Program scheduling is an optional feature which must be enabled to operate
via a control request. Function code 20B enables the driver to schedule a
program on interuupt and function code 21B disables it. The program to be
scheduled can be specified at generation or through function code 27B.
Function code 27B allows programmatic scheduling of MUX port programs where
the address of the program's ID segment ¡is stored as a parameter value in
the call statement. This program will override any program for the port
that was designated when the system was generated.
There are several events that can cause an interrupt which will schedule the
program for the MUX port as described below (refer to function code 33B,
bits 13, 12):
a. When the port has been set to "normal" mode it requires that either any
character key or the BREAK key on a terminal keyboard is struck (the
character struck will be ignored), or a character or BREAK is received
from a device,
b. When the port has been set to "type-ahead" mode it requires the receipt
of a BREAK to schedule the program because any characters received will
be saved in the port's data buffers.
c. The port can also be configured to schedule the program on receipt of a
buffer of data from the device, This type-ahead with scheduling mode
will also recognize the BREAK key.
A program scheduled by one of the above events is run with the CPU's B
register pointing to word-4 of the EQT entry that corresponds to the port
upon which the event took place. Library functions EQLU or TRMLU can be
used by the program to recover the Logical Unit (LU) of that port. This LU
can be used later to make I/O, function code, and status calls to that port.
The library subroutine RMPAR can be used to recover EQT words 4 through 8.
Note that both these routines require that the B register set by the driver
remain intact.
3-3
The programs PRMPT and R$PN$ are used for terminal break-mode command
processing, and are supplied with most RTE systems. These programs are an
example of the use of program scheduling.
In operation, PRMPT is the program which gets scheduled on interrupt from
the terminal. When invoked it finds the LU of the interrupting port and
writes the break-mode prompt to that LU. It then posts a class read against
that port and schedules the program R$PN$. R$PN$, waiting on a class GET,
receives a command from the user and executes it, returning to suspend on
the GET call for the next command.
User supplied programs may be written to process other schedule-driven
applications. These programs may either be included as the program to be
scheduled when the system is generated, or assigned on-line by a control
request.
Common Type-Ahead Modes
Function code 33B allows the user to provide control requests for the driver
responses by manipulating four fields to specify sixteen different
type-ahead combinations. However, the four following combinations are
sufficient for most user applications. If a specific application is
desired, the user can design a mode by manipulating the control-request word
bit fields using function code 33B.
The common operating modes are:
Normal Non-Type-Ahead Mode
Full Type-Ahead Mode
Type-Ahead with Flush on Break Mode
Type-Ahead with Scheduling Mode
Each mode is summarized below along with the run string necessary to
configure the user's terminal. Control requests and bit manipulation are
covered in the Interface Driver section.
No Type-Ahead Mode
No Type-Ahead Mode
CN, 0G, 33B,012400B
Control Parameters
Control Request
User's Terminal
This will return the port to a standard RTE mode. This mode is commonly
used in the WELCOM file so that the individual may later configure the port
to a specific application, If a key is struck while executing in this mode
and no request is pending on the terminal, the designated program will be
scheduled.
3.3.2 Full Type-Ahead Mode
Full Type-Ahead Mode
CN, 0G, 33B,022400B
Control Parameters
Control Request
User's Terminal
The type-ahead is a mode of operation enabling the interface to accept
strings of data from terminal devices even though the system did not request
any information. This information is stored in one of the two 254-byte
receiving buffers for that port and remains buffered until a program reads
the contents of the buffer. While in type-ahead the driver leaves a read
pending on the interface, looking for a valid terminator. The terminator
merely signals the interface driver that a complete record has been
encountered, and the interface card will interrupt the CPU.
In this mode, the only way to schedule the designated program is to strike
the break key. Data resident on the card, if any, is not disturbed.
Type-Ahead With Scheduling Mode
Type-Ahead with Scheduling Mode
:CN, 0G, 33B,024400B
Control Parameters
Control Request
User's Terminal
This mode configures the interface driver responses to utilize the
type-ahead mode. Scheduling will occur when an end-of-record is
encountered. Depressing the Break Key will always schedule the designated
program. Program specification is accomplished with control function 27 or,
more commonly, it is specified at generation time.
Type-Ahead With Flush On Break Mode
Type-Ahead with Flush on Break Mode
CN, 0G, 33B,0233000B
Control Parameters
Control Request
User's Terminal
In this mode when the break key is struck, the interface driver will flush
the contents of the input buffers and then the program designated by control
function 27 is scheduled. This mode of operation is the preferred
type-ahead mode because it reduces the possibility of having data misread.
The user has the option of "erasing" the contents of the buffers just
entered by hitting the break key or leaving the buffers alone allowing them
to execute when the next read request reads them.
NOTE: Flush on break may be used in conjunction with either full type-ahead
or type-ahead with scheduling.
Error Recovery
Dynamic status checking and 1/0 status checking allow the user to check on
the status of a multiplexer port for normal processing and error checking.
I/O status can provide the user with two of the device status words (EQT5
and EQT4) and an LU status word. Dynamic status checking provides the user
with the port's status and the length of any type-ahead data if present.
Function code 6B is described in Chapter 2, User Interface.
All errors associated with the Mux will appear as:
- time outs
- parity error or overflow
Parity and overflow errors are indistinguishable. As soon as an error is
encountered, the user's buffer is flushed. However, if a pending read or a
time-out occurs, the status returned will indicate a parity/overflow error,
1/0 Status
1/0 Status
The I/O status request, using a request code (ICODE) of 13, calls the RTE
operating system to provide information contained in system tables. This
EXEC call is not a call to the interface driver and therefore may not return
the current status of the port. The LU number of the port must be specified
in the control word (ICNWD). One additional parameter is required and two
more are optional. One, two, or three words are returned to the user's
program in the parameters passed. Table 3-1 lists the I/0 status request
returns.
A sample calling sequence for LU 41 is shown below:
ICODE 13
ICNWD = 41
CALL EXEC(ICODE,ICNWD,ISTA1,ISTA2,ISTA3)
When the call completes, the variables ISTA1, ISTA2, and ISTA3 contain the
1/0 status as shown in Table 3-1. ISTA1 is the status word (EQT5) and ISTA?
is also a status word (EQT4).
Failure Analysis
For failure analysis it is important to note that all errors appear as time
outs, parity or overflow errors, Current HP supplied device drivers will
not produce the following error message. User written device drivers may
use the EXIT command described in Chapter 4 to have the following error
message displayed at the system console.
1/0 XX L #x E #Y S iz
XX = NR
TO
PE
etc., as specified by device driver
In the above example x, y, and z are the Logical Unit number, EQT number,
and subchannel number respectively. If a device is down, any 1/0 control
request will wait for the operator to "UP" the EQT number.
For time-outs it may be that a simple time-out has occurred, indicating the
operator was too slow in responding to a read request. In this case, retry
the request.
If the device is not downed, control will return to the user program on
error and the user program should be structured to check for errors and
process accordingly. The "I/0 Status" request can be used to obtain the
status to test for various conditions.
Read Errors
If the last command issued was a read, a parity error or data overrun may
have occurred, Data Overrun indicates the multiplexer maximum throughput
rate has been exceeded and data on the LU with the overflow bit set was
lost. These errors are only detectable on a read operation.
Table 3-1. 1/0 Status-Request Returns
Word | Bits Description
ISTA1 | 15-14 | I/O controller availability indicator:
00 = Available for use
01 = EQT disabled (down)
10 = Device busy
1 3-8 Equipment Type code
7-0 Status: 1 =
7 Last request timed out
6 Break Key hit
5 Control D entered on the last request (EOT)
4 Modem line down
3 Parity error or overflow detected on the last
request
2 Type-ahead data available, control function 6B
will return the length of type-ahead data in
the B-Register
1 Program schedule enabled
0 Reserved for future use, always zero
ISTA2 15 Reserved for future use, always zero
14 1 = Automatic output buffering enabled
13 1 = Driver to process power fail (always 1)
12 1 = Driver to process time-out (always 1)
11 System communication flag
10-6 Last subchannel addressed
5-0 Select code of the Multiplexer Card
ISTA3 Logical Unit Status:
15 1 = LU down, O = LU up
14-5 Reserved for future use, should always be zero
4-0 EQT subchannel associated with the LU number
3-9/3-10
Chapter 4
Device Driver Writing
This chapter explains the writing and use of device drivers that can be
called by the 12792B Multiplexer Interface Driver, DVMOO. The basic
philosophy of using device drivers is explained to give the user a better
understanding of the steps involved.
Device Driver/Interface Driver Concept
An interface driver is a standard RTE driver that converts user EXEC
requests for input, output, and control ¡into a sequence of assembly level
instructions which control and pass data to an interface card through the
1/0 backplane of an HP-1000 computer. The interface driver need know
nothing about the device that is the eventual source or destination for the
data; the interface driver only communicates with the interface. The device
driver modifies user requests to make them compatible with the device. The
device driver is a subroutine that is called by the interface driver to
examine and modify user requests.
Reasons For Device Driver/Interface Driver Use
The device driver/interface driver concept offers several advantages over
the conventional monolithic driver. The use of device drivers allows
flexibility for system designers and users. Many different types of
equipment may be controlled by a single type of interface as long as they
are electrically compatible and use the same basic line protocol. For
example, any RS-232-C (electrical specification), asynchronous (basic line
protocol) device may be controlled by the 12792B MUX interface. Individual
device drivers for each of these devices may be easily written without
knowledge of the I/O card/backplane interface. New devices may be added to
a system without undertaking the monumental task of writing an entirely new
driver. The system programmer need only write a subroutine to add the
required character sequences to the user data to control the new device.
Differences between devices may be made transparent to user programs.
Applications programmers need only concern themselves with reading or
writing data to a "standard" device while the device driver takes care of
the control needed for the "exotic" device the program is actually
communicating with.
4—1
Some devices may be customized by using different device drivers for
different tasks. Printing terminals may be made to look like line printers
to the user program by writing a device driver to translate column one
carriage control into the proper escape sequences for the terminal. A
different device driver may then be used when an interactive terminal is
desired. These various device drivers may be dynamically switched in and
out by the user program or by the system manager when required.
A single driver written to control a large number of different devices
through a common type of interface would be very large. Requiring the use
of this driver would penalize users who only need a few of these devices.
By using device drivers a system manager need only include the driver code
needed for the devices on the system, thus saving space for other uses.
Interface Tasks
To write efficient device drivers it helps to have an understanding of the
responsibilities of the other components in the 1/0 interfacing subsystem.
In the HP 12792B Multiplexer Subsystem the HP 12792B MUX interface card is
primarily responsible for sending and receiving characters on the RS-232-C
line and for handling line protocol. When enabled to do so, it handles the
ENQ/ACK line protocol to prevent terminal buffer overruns; it transmits and
receives the characters to and from the terminal at the baud rate for which
it has been set by the driver; and it automatically packs the eight-bit
characters into 16-bit data words for efficient DMA transfer to the
computer, or unpacks the 16- bit words into eight-bit bytes for the
terminal. The card treats the parity bit as described in the Interface
Support statement in the Multiplexer Configuration Guide, and notifies the
driver when incorrect parity has been received.
Interface Driver Tasks
Interface Control
The interface driver DVMOO for the 12792B multiplexer subsystem is
responsible for controlling the MUX interface card via assembly level I/O
instructions to the computer I/O backplane. The driver interprets user
requests to properly initialize the card for baud rate, parity, character
length, number of stop bits, etc. Also it initializes and starts DMA
transfers between the computer memory and the card.
Operating System Interface
The interface driver receives EXEC level user requests from the RTE
operating system and passes them to the device driver for further
processing. The interface driver processes requests from the device driver,
returning to the device driver on each request completion. The interface
driver requests a DMA channel from the RTE operating system when a data
transfer is required either to send data to the card or receive data from
the card. When the device driver informs the interface driver that the user
request is complete, the interface driver returns to RTE with the correct
device status and transmission log or error code in the A and B Registers.
Device Driver Tasks
The device driver is entered on each new user request and on completion of
each device driver request. The device driver may do further checking on
request legality. If the device requires a special sequence of characters
prior to receiving or sending the user data, the device driver should format
the characters into a buffer and send them to the device via a device driver
request to the interface driver. When the user request is to be processed
the device driver tells the interface driver to start the request currently
in the EQT. When the entire request has completed, the device driver places
the correct status in the EQT and the transmission log in the B Register,
and then informs the interface driver that the request is complete.
HP Implementations Of Device Drivers
There are two examples of device driver applications that Hewlett-Packard
has implemented as part of the HP 12792B Multiplexer subsystem.
Lineprinter Device Driver DDV12
Device driver DDV12 makes HP 2631/2635/7310 printers look like typical line
printers to user programs. These devices use escape sequences and control
characters for carriage control while standard line printers interpret the
first character of each line as a carriage control character. The DDV12
device driver examines the user's first character and sends the proper
control character sequence to the printer. The first character is then
stripped from the data and the data is sent to the printer. The device
driver also changes the driver type in the EQT to type 12 for lineprinters,
Block Mode Terminal Device Driver DDV05
The device driver DDVO5 allows utilization of the block mode read
capabilities of an HP 264X or 262X terminal. The first time a read request
is made to the terminal its status is read to determine whether it is in
block or character mode. When a user read request is made the device driver
first issues a write to the interface driver to send a DC1 to the terminal.
If the terminal is in block mode the device driver issues a read to the
interface driver and examines the first returned character. If the
character is a DC2 the device driver knows that the terminal is in block
mode and trying to send data to the interface. A read is then issued for
the user buffer length with echo and character editing turned off. If the
returned character is not а DC2, the user program had probably issued a
program enabled block read (escape lower case d) and the program's data is
in the buffer just read.
If the terminal is in character mode, the user's request is executed "as is"
after the DC1 is sent (to enable the softkeys).
Device Driver Interface
An uncomplicated device-driver/interface-driver interface is provided making
it easy for systems programmers to write their own device drivers. All that
is required beyond the information given in this chapter is a basic
familiarity with the flow of I/0 requests in RTE and a thorough knowledge of
the particular device that is being communicated with,
Device Drivers For HP 12792B Multiplexer
The following points should be kept in mind when writing device drivers for
the HP 12792B Multiplexer subsystem. First, all read, write, and control
requests are passed to the device driver by the interface driver for
modification before they are sent to the interface card. The device driver
only has to make read, write, or control requests to the interface driver;
the device driver does not issue I/O instructions to the interface card.
The device driver requests are at the EXEC level, that is, a request word
(control word as defined for EQT word 6) buffer address and length, or
optional control request parameters are passed to the interface driver. A
device driver will typically make several of these requests for each user
EXEC request. After each device driver request completes the interface
driver will return to the device driver for the next request. It is up to
the device driver to tell the interface driver when the original user
request is complete. The device driver and interface driver pass parameters
back and forth between each other using the A and B Registers and the
portion of the EQT extent defined as the Device Driver EQT Extent.
Restrictions And Requirements
When a device driver issues read or write requests the data buffer must be
either within the device driver or in the same map as the user request
buffer. If the user request is unbuffered the user request buffer is in the
user map. If the user request is buffered, class I/0, REIO (re-entrant
1/0), or $XSIO (system I/O) the user request buffer is in the system map.
All requests are passed to the device driver prior to checking by the
interface driver. Device drivers should check only for control requests
that are defined for the device driver. Any unrecognized control requests
should be passed on to the interface driver with a command to execute the
request.
System Abort Requests
A system abort request may be issued to the interface driver at any time if
the user program currently doing 1/0 15 aborted for any reason. The device
driver may be entered with the system abort either as a new user request or
as a continuation request. If the device driver is entered as a new user
request with the system abort request, the device driver should treat it as
any unknown control request and pass it back to the interface driver.
However, if the device driver is entered as a continuation with the system
abort two problems may occur. If the device driver does not check for the
system abort on a continuation entry and subsequently issues a read or write
request to the user buffer, the buffer area may have been re-allocated for
other uses, Program corruption and system or subsystem crashes may occur.
1t is also possible to leave the device in an unknown state if an expected
user buffer is not written to the device. If this is a problem with a
device, the device driver should check for system abort requests and reset
the device to a known state,
In all cases the device driver should check for a system abort request prior
to issuing an 1/0 request to the user buffer area.
To test for a device driver system abort request check the contents of EQT
word 6 or word 2 of the extent for a 100003 octal ($XSIO control zero
request). The above tests are necessary if the device driver issues its own
read or write to or from the user buffer area on a continuation entry. If
the device driver is simply trying to execute the user's original request by
leaving it in the device driver EQT extent word 2, the test for system abort
request is not necessary. In this case the contents of device driver EQT
extent word 2 are changed to a control zero at the same time as EQT word 6.
Interface Definitions
Entry to the Device Driver
On entry to the device driver the following parameter locations are defined:
A Register, Bit 15: 1
0
initial entry on a new user request
continuation entry, signifying a previous
device driver request is complete
Bits 14-0: address of device driver EQT extent
(defined below)
B Register: Previous device driver request transmission log,
if any
The device driver EQT extent words 2-4 are set to the current user
request definition. These three words are copied from EQT words 6-8 on
each (new or continuation) entry to the device driver. See the expanded
definitions of the EQT words below.
Base page locations 1660 through 1672 are the addresses of the current
EQT words 1 though 11 and base page locations 1771 through 1774 are the
addresses of EQT words 12 through 15. |
On each entry EQT words 4-10 and 14 are defined per the RTE definitions
(expanded below). EQT words 9 and 10 (READ/WRITE optional rarameters)
are defined per RTE on new request entries only (A Register bit 15 = 1).
However, they are not defined on the subsequent continuation entries.
If their contents are required by the device driver on subsequent
entries, they should be saved in the device driver EQT extent on the new
request entry.
Return To The Interface Driver
On return to the interface driver the device driver must insure that the
proper parameters are passed back to the interface driver. The device
driver must differentiate between new user request entries and continuation
entries as the parameters returned to the interface driver are different for
each case. Also, the device driver must tell the interface driver when the
original user request is complete and set up the correct transmission log
and status indications for the calling program.
On return to the interface driver the following parameter locations are
defined:
A Register, Bits 15-3: Function modifier
Bits 2-0: Exit command
B Register: Request timer, or user transmission log
EQT 5, Bits 7-0: Status for user
Device driver EQT extent,
word 1: Physical record length in characters for read
requests if different from user buffer length
word 2: Request word as defined for EQT word 6 except
that bits 15-11 are not defined and should be
zero
word 3: Request buffer address
word 4: Request buffer length (positive number of words
or negative number of characters)
Return To Interface Driver — Device Driver EQT Extent
The physical record length (device driver EQT extent word 1) is used to
prepare the 12792B interface card for binary data read requests where the
device does not terminate the record with a special character such as
carriage return, The physical record length must be a positive number of
characters. If this parameter is not set, it defaults to the user buffer
length.
Words 2-4 of the device driver FQT extent may be changed by the device
driver to cause the interface driver to execute some other request, or they
may remain unmodified causing the interface driver to perform the initial
user request. Remember that on each entry words 2-4 of the device driver
EQT extent are restored to the original user request copied from EQT words
6-8.
Return To Interface Driver — A-Register
Exit Command
On return to the interface driver from the device driver the A Register bits
2-0 must be set up with the exit command. The exit command definition is
similar to the RTE definition for the A Register for a standard driver on
return to RTE. The exit command definition is as follows:
Exit command if entered with a new user request
(A Register bit 15 = 1 on entry)
0 = start request in device driver extent words 2-4;
B Register = time out value (-10s ms)
user I/O request is illegal, give IO07 error
user control request is illegal, ignore it
1/0 device not ready, down it and print IONR message
user request completed (immediate completion);
B Register = transmission log
= start request (same as 0)
+= со ГО —
HH un u
Exit command if entered after completion of a device driver
request (A Register bit 15 equals O on entry)
O = user request is complete; B Register = transmission log
1 = 1/0 device not ready, down it and give IONR message
2 = end of transmission (EOT) reached, down device and
give IOET message
3 = parity error, down device and give IOPE message
4 = device time out, down device and give IOTO message
5 = new request in device driver EQT extent words 2-4;
B Register = time out value (-10s ms)
Function Modifier
Error type exit commands (new request 1, 2, and 3 or continuation entry 1,
2, 3, and 4) are simply passed to RTE in the A Register by the interface
driver. Action taken (program abort, print error message, etc.) is
determined by RTE the same as for any standard driver.
For exit commands that initiate another device driver request (new request
exit command equals O or 5, continuation entry exit command = 5) a function
modifier may be placed in the A Register bits 15-3 to override and expand
the normal request function code contained in the device driver EQT extent
word 2, bits 10-6. Function modifiers are defined for read and write
operations. Write function modifiers contain read modification fields and
can be used to define the function modification for the next read or series
of read operations. The write function modifier bit fields are defined as
follows:
A Register bits 15-3
Bit 15: end transfer on carriage return (CR)
14: end transfer on record separator (RS)
13: end transfer on end of tape (EOT, control D)
12: end transfer on (DC2)
11: end transfer on specified character count
10: enable end on character specified in bits 15-12
enable character editing (backspace, delete, etc)
echo received characters
not defined, should be O
not defined, should be O
disable ENQ/ACK handshake this transfer only
add CR/LF to buffer if last character is not an
underline (137 octal)
3: use write overrides in bits 7-4, if bit 3 is 0,
bits 7-4 should be O
=U OV 00 ©
e
If bits 7-3 are zero (do not override) the write is configured by bits 10-6
in the device driver EQT extent word 2. These bits are defined as bits 10-6
in EQT word 6 and the ICNWD description in the EXEC write section of this
manual.
The read related fields in the write function modifier (bits 15-8) will
configure the card for any subsequent read operations. This eliminates the
"window" between writing and reading so that if the write triggers a
response from the device no data will be lost.
If enable end on character (bit 10) is set, one or more of bits 15-12 must
be set. Reads will complete on reception of any one of the specified
characters. If bit 10 is clear, bits 15-12 should be zero. If end on count
(bit 11) is set, the physical record length in device driver EQT extent word
1 should be set to a positive number of characters. If bit 11 is set, the
end on character bits 15-12 and 10 are ignored. Only one of bits 10,11
should be set.
For read functions the modifier bit fields are defined as follows:
A Register bits 15-8,3
Bit 15: end transfer on carriage return (CR)
14: end transfer on record separator (RS)
13: end transfer on end of tape (EOT, control D)
12: end transfer on (DC2)
11: end transfer on specified character count
10: enable end on character specified in bits 15-12
9: enable character editing (backspace, delete, etc)
8: echo received characters
7-4: reserved for future use, should be zero
3: use current card configuration
If enable end on character (bit 10) is set, one or more of bits 15-12 must
be set. Reads will complete on reception of any one of the specified
characters. If bit 10 is clear, bits 15-12 should be zero. If end on count
(bit 11) is set, the physical record length in device driver EQT extent word
1 should be set to a positive number of characters.
If bits 15-3 are all zero the read configuration will be determined from the
control word bits (10-6) in the device driver EQT extent word 2. These bits
are defined as in EQT word 6 and the ICNWD described in the EXEC read
section of this manual. Bit 9 of the EXEC request (EQT extent word 2) is
always used and must be valid, If bit 3 is set bits 15-4 should be zero.
4-9
Return To Interface Driver — B-Register
On return to the interface driver the device driver should set the
B register to be either the transmission log, or the device time out value.
If the initial user request is complete, the B register should contain the
transmission log to be returned to the user program. Transmission logs for
each device driver operation are returned to the device driver ín the
B register by the interface driver on each continuation entry. The device
driver may save one or more of these to return, or the device driver may
return any meaningful number. Convention requires that the transmission log
be a positive number, either a number of words if the initial user request
specified words (EQT word 8 is positive) or a number of characters if
characters were initially specified (EQT word 8 is negative).
If a new device driver request is to be initiated (exit command = 5 on
continuation, or 5 or 0 on initial entry) the В register should contain the
request time out value. This value will be a negative number of time base
ticks (10s of milliseconds). If the device driver needs to use the system
defined time out for the device, EQT word 14 should be copied into the
B Register.
Return To Interface Driver — EQT Entries
As a general rule it is not advisable for the device driver to modify the
EQT, except for the area defined as the device driver EQT extent. However
some EQT areas are routinely modified by device drivers. In EQT word 5 the
equipment type (bits 13-8) should be modified on the first entry to a device
driver to reflect the device type the device driver is emulating. On each
completion exit (new request exit command equals 4, or continuation entry
exit command equals 0) the status field in EQT word 5, bits 7-0 should be
updated to return status to the user. This field should be the same as is
defined for the device type the device driver is emulating.
After the user's request has been processed, if further interaction with the
interface driver is required EQT words 7 and 8 are available as convenient
temporary storage areas. It is common to store the transmission log in EQT
word 8 in these cases. Words 9 and 10 are used by the interface driver for
temporary storage and should not be modified by the device driver.
Selected EQT Definitions And Uses
EQT Word 4 —- Subchannel EQT word 4 bits 10-6 contain the currently
addressed subchannel. This information is required by device
drivers that perform different tasks for different sub-
channels,
4-10
EQT Word 5 —- Equipment Type Code and Status
00 to 07
00
01
02
05
07
10 to 17
10
10
11
12
13
15
20 to 35
23
24
30
31
32
33
36
37
47
EQT word 5 bits 13-8 contain the equipment type code as spec-
ified by the driver name at generation. The 12792B multiplexer
interface driver is DVMOO, and so the type code is 00, Device
drivers that emulate devices should use a type code correspond-
ing to the device they are emulating. On first entry the device
driver should change the type code in the EQT table, The type
codes and devices they represent are given below:
= terminals or paper tape devices
teleprinter or keyboard control device
photoreader
paper tape punch
intelligent terminal devices generally having block
mode capability (HP 264x and 262x terminals)
multipoint devices
other unit record devices
plotters (Calcomp or HP 7210)
plotters (Calcomp or HP 7210)
card readers
line printers
TV monitor
mark sense card readers
mag tape or mass storage devices
9 track mag tape
7 track mag tape
fixed head disc
7900 moving head disc
7905/6/20/25 moving head disc
flexible disc drives
writable control store (microcode execution space)
HPIB Interface
Multidrop FDL interface
EQT word 5 bits 7-0 contain the device status of the 12792B Multiplexer on
each entry to the device driver. This status is defined as follows:
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Time out, if the driver was entered on a time out this bit will
be set on entry to the device driver.
Break, if the 12792B Multiplexer card received a break
character from the terminal during the last operation this bit
will be set.
EOT, The End Of Tape bit will be set if an EOT (004 octal) was
received during the last read.
Modem line is down.
PE/OV, the Parity Error/Overflow bit will be set if either one
of these conditions occurred on the last read.
4-11
Bit 2 Type-ahead data, this bit will be set if type-ahead data is
available on the card.
Bit 1 Schedule, this bit indicates that program scheduling on
unsolicited interrupt has been enabled (interface driver
control function 20B).
Bit 0 Bit 0 is not currently used.
The above definitions apply whenever the device driver is entered from the
interface driver. The device driver is free to change any of the status
bits if emulation of other driver types is desired. On a user request
complete exit from the device driver the status bits (EQT word 5) will be
passed to the user program in the A Register.
EQT word 6 and device driver EQT extent word 2 contain the current request
word which is defined as follows:
Bits 15-14 Request type:
00 = standard user request
01 = automatic buffered user request (request
buffer is in system available memory)
10 = a system request ($XSIO)
11 = user Class I/0 request (request buffer is
in system available memory).
Bits 15-14 are only defined in EQT word 6. They are undefined in the
device driver EQT extent word 2 and should be set to zero if the
device driver modifies this word.
Bit 12 Z-bit indicates a second buffer is available on a read
or write. If set, EQT word 9 contains the address of
the buffer and EQT word 10 contains the length. If the
Z-bit is clear, EQT words 9 and 10 contain 1 word
optional parameters.
In the 12792B Multiplexer subsystem, the interface driver does not use
the double buffering feature, it is therefore available to the device
driver for use.
Bits 10-6 Subfunction, as defined in the EXEC request
section of this manual for the EXEC control
word.
Bits 1-0 Function:
01 read request
10
11
write request
control request.
Bits 13,11 These bits are undefined and should be set to
and zero if the device driver modifies the request
5-2 in the device driver EQT extent word 2.
4-12
EQT word 7 and device driver EQT extent word 3 is the user buffer address.
The interface/ device driver is always entered in the same map as the user
buffer, so the user buffer address is in the current map.
EQT word 8 and device driver EQT extent word 4 is the user buffer length.
The length is either a positive number of words or a negative number of
characters,
EQT word 9 is an optional parameter. If the Z-bit (EQT word 6 bit 12) is
set EQT word 9 is the address of a secondary user buffer which is in the
same map as the primary user buffer. If the Z-bit is clear, EQT word 9
contains the optional parameter or zero if no parameter was passed.
EQT word 10 is an optional parameter, If the Z-bit is set, EQT word 10 is
the length of the secondary user buffer. It is a positive number of words,
or a negative number of characters. If the Z-bit is clear, EQT word 10
contains the second optional parameter or zero if a second optional
parameter was not passed.
Both EQT words 9 and 10 are only available to the device driver on a new
request entry. These words must be saved in the device driver EQT extent if
they are required later by the device driver.
EQT word 14 contains the system defined time-out reset value for the device
(a negative number of time base ticks at multiples of 10 milliseconds).
This value is set by the system at generation or by the system TO command,
or by the interface driver by a control request of 22B. This word may also
be set directly by the device driver if desired.
EQT word 15 contains the time out clock count down counter. This word is
setup by the interface driver prior to returning to the system. This word
should not be modified by the device driver. On any device driver request
to the interface driver the time out count for EQT 15 should be passed in
the B Register, The value should be a negative number in multiples of 10
milliseconds, If the system defined time out is to be used, the device
driver must pass the contents of EQT word 14 to the interface driver in the
B Register.
Device Driver Address Table
The interface driver uses a device driver address table to find the correct
device driver when the device driver is selected with a control request of
33B. The device drivers are selected by numbers which are determined by
their positions in the device driver address table. Each device driver to
be used with the interface driver must have an entry in the device driver
address table To add device drivers to the device driver address table,
the user must create his own table.
The device driver address table should have the following format:
NAM $DVTB,8 DEVICE DRIVER ADDRESS TABLE
ENT $DVTB
EXT DVNM1,...,DVNMn
*
* DEVICE DRIVER ADDRESS TABLE
*
$DVTB DEC n NUMBER OF ENTRIES IN TABLE
DEF DVNM1+0 ADDRESS OF DEVICE DRIVER 2
DEF..... +0 e e e . . . . . . . . 3
DEF DVNMn+0 ADDRESS OF DEVICE DRIVER 1n+1
END
The names of the device drivers may be any valid label, as long as they do
not conflict with any other symbol in the system. Note that the first
device driver in the table is selected by a control request of 33B to use
device driver number two. This is because the value zero is reserved for
"no change", and one is used for the default device driver. Since the
device driver number field is four bits wide, the user is able to include
the default and up to 14 other device drivers in the system.
Location And Size Of Device Drivers
Since the device driver address table and device drivers themselves are
called directly by the interface driver, they must be resident within the
same map. This poses a few restrictions on the number and location of these
modules.
The interface driver requires approximately 1400 words of memory, so up to
600 words are left in a standard two page driver partition for the device
driver address table and the device drivers. If this is not enough room
either the driver partition can be changed to three or more pages, or one or
more device drivers and the table may be relocated into Table Area I. If
$DVTB is relocated into Table Area I, all device drivers will be forced to
Table Area I. The disadvantages are that the user available space in the
system is reduced. If the driver partition size is increased, the size of
the largest available user partition is reduced by an equal amount, and the
size change must be an incremental number of pages. If the modules are
relocated in Table Area I, the actual space used may not take away from user
space unless a page boundary is crossed, in which case a page will be taken
away from the largest available user partition. Device drivers relocated in
Table Area I will take space otherwise used as System Available Memory. In
the RTE-IVB operating system, only these two methods of gaining space for
device drivers will guarantee that the device driver and interface driver
will be in the same map and be mapped properly to handle all user requests.
The interface driver and device drivers and table could be all relocated
into the system driver area (SDA). More space is available to users, but
large background programs will not be able to make unbuffered requests to
the driver.
4-14
Case Study: A Device Driver Writing Example
The following is an example of device driver writing that illustrates some
of the problems, solutions, and steps involved in writing a typical device
driver. The device driver in this example is written to make a terminal
look like two separate terminals, sharing the keyboard, and splitting the
screen into two separate areas.
Task Definition
The tasks involved in interfacing with a device using a device driver should
be clearly defined and broken down into a sequence of logical steps. In
this example the object is to make an HP 26XX terminal appear as two
terminals for read and write requests, Requests made to an LU defined as an
EQT subchannel O will go to the left half of the terminal display, and
requests to subchannel 1 will go to the right half of the display.
Three major tasks are defined for the device driver while the interface
driver handles the user's actual read or write request. The three tasks all
involve sending specific character sequences to the terminal for
initialization in a classic device driver application,
Margin Set Up
The first task is to set the left and right margins on the terminal to keep
the following text on the respective side of the screen. Upon determination
of the subchannel for each new user request the device driver sends the
escape sequence to set the left and right margin at predetermined columns on
the terminal screen. Due to terminal idiosyncrasies the left margin must be
set first for subchannel 0 (left side) and the right margin must be set
first for subchannel 1 (right side).
Cursor Position
The second major task is to position the cursor so that the subsequent read
or write operations will appear at the correct place on the screen. The
escape sequence to position the cursor 1s formatted with the correct cursor
position for the left or right side of the screen. The device driver keeps
track of the current cursor position for each side in the device driver EQT
extent. Once the request buffer is formatted with the correct cursor
position the device driver passes it to the interface driver as a device
driver request.
Cursor Tracking
The third major task for the device driver is to find out where the user's
request has left the cursor for the side of the screen that was just
addressed. To do this the device driver writes a request for a cursor
position sense to the terminal and then reads back the result. The
resulting cursor position is separated from the escape sequence that
precedes it and stored away in the device driver EQT extent for the
subchannel that is addressed.
Minor Tasks
Additionally, in an effort to reduce overhead, the device driver is written
to not set the margins or position the cursor when the subchannel addressed
is the same as the previous subchannel. It is assumed that the cursor and
margins will remain in position between sequential requests to the
subchannel, In order to implement this step the device driver saves the
last addressed subchannel in the device driver EQT extent.
Finally the device driver patches the equipment type code into EQT word 5.
This patch will take place only the first time the device driver is accessed
for any particular EQT. Since either subchannel most closely resembled type
00 devices to the user the equipment type used is 00. This step is included
for illustration only. When any "Select New Device Driver" request is made
(CN, LU, 33B, XXXXXn where bits 3-0 = 0) the driver is reset to 00.
Device Driver Operation
Functionally the device driver makes a series of tests on each entry to
determine the action required. Processing a user request is a sequence of
actions that generally fall in the following order:
. Position left or right margin
. Set margin
. Position other margin
. Set margin
Position cursor
Perform user request
Request cursor position
Read cursor position
Save cursor position
O OY AU EWN —
e
Each action is handled by a separate routine that saves the address of the
next routine in the device driver EQT extent so that execution moves in a
step by step fashion on each continuation entry to the device driver.
4-16
Operation Flow
Figure 4-1 shows the complete device driver flowchart.
00500
SET UP
EQT POINTERS
FIRST
EVER
ACCESS
ACCESS
GET NEXT
ROUTINE
FROM DEX13
AND JUMP
Y
DS NO
pd
YES
Y
POSITION
CURSOR SET LEFT
FOR LEFT MARGIN
MARGIN
©
y
у
POSITION
CURSOR
FOR RIGHT
MARGIN
v
SET NEXT
ROUTINE TO
©
Ke
=O
7700-569
°С)
"0
С)
"Oo Te,
"©
ne
no
|
EXIT TO
CRTN
SET NEXT SET NEXT
ROUTINE TO ROUTINE TO
EXIT TO
CRTN
Figure 4-1. Device Driver Flow Chart
SET RIGHT
MARGIN
NO
SUBCHANNEL
=0
y
POSITION
CURSOR
PER
SUBCHANNEL
v
SET NEXT
ROUTINE
TO
©
SET NEXT
ROUTINE
TO
©
SET NEXT
ROUTINE
TO
©
| u
EXIT TO
CTRN
|
EXIT TO
CRTN
SEND CURSOR
SENSE REQUEST
SAVE XMIT
SET UP CURSOR
POSITION READ
SAVE CURSOR
POSITION PER
SUBCHANNEL
LOG
y
Г
SET NEXT
ROUTINE
TO
SET NEXT
ROUTINE
TO
©
GET XMIT LOG
AND SET
A COMPLETION
EXIT TO
CRTN
7700-570
Figure 4-1 (cont'd).
EXIT TO
CRTN
EXIT TO
DDS 00,1
Y
SET NEXT
ROUTINE
TO
©
E
GET TIME OUT
AND PASS USER
REQUEST
EXIT TO
DDS0G, |
CRTN
t
SAVE NEXT
ROUTINE ADDR
GET TIMEOUT
EXIT TO
DDS(g,1
Device Driver Flow Chart
Set Up Device Driver EQT Extent Pointers
On each entry to the device driver the device driver EQT extent addresses
are stored into a table in the device driver. On each entry the A register
contains the first device driver EQT extent address and bit 15 indicates new
or continuation entry. Bit 15 is saved for later testing and stripped from
the address before the addresses of the device driver extent are saved.
DDSOO NOP DEVICE DRIVER ENTRY POINT
STB TEMP SAVE B TEMPORARILY
CLE SAVE A[15]
ELA, RAR AND CLEAR IT
LDB DEXAD ADDRESS OF TABLE
LDX DM15 DECIMAL MINUS 15
*
* CREATE TABLE OF DD EXTENT ADDRESSES
*
DEXLP STA B,I A CONTAINS ADDRESS OF DD EXTENT WORD
INA B CONTAINS ADDRESS IN TABLE
INB X CONTAINS COUNT DOWN
ISX
JMP DEXLP
DEXAD DEF DEXO1 ADDRESS OF TABLE
DEXO1 NOP ADDRESS OF FIRST DD EXTENT WORD
DEX02 NOP
DEX15 NOP ADDRESS OF DD EXTENT WORD 15
After the initial setup is done on each entry the device driver then tests
the bit that indicates a new request entry that was saved in the E register.
Continuation entries go the next routine to be executed whose address is
always saved in the device driver EQT extent word 13. If it is not a
continuation entry the device driver tests to see if it is the first ever
entry for the EQT. Device driver EQT extension word 15 contains an ASCII
"50" if this is not the first ever entry.
EQT Setup On First Entry
On the first entry for any EQT the starting cursor positions for the left
and right sides of the screen are established. The cursor positions are
stored in ASCII format in the device driver EQT extent words 5 - 12. The
starting positions, upper left corner of each screen, are hard coded in
ASCII in the driver:
4-19
LDA ASO GET THE ASCII "SO"
STA DEX15,I SAVE IT TO INDICATE NOT FIRST ACCESS
JSB .CFER MOVE FOUR WORDS OF CURSOR POSITION
DEF DEX05,I TO THE DD EXTENT
DEF SORC FROM THE DEFINITION LOCATION
JSB .CFER MOVE FOUR WORDS FOR THE OTHER CURSOR
DEF DEXO9,I TO THE DD EXTENT
DEF SIRC FROM THE DEFINITION LOCATION
LDA EQT5,I GET THE EQT ENTRY WITH EQUIP TYPE
AND TMASK (14037B) MAKE THE TYPE 00
STA EQT5,1 SAVE IT
EQTS EQU 1644B
SORC ASC 4,000r000C STARTING ROW & COLUMN SUBCHANNEL O
SIRC ASC 4,000r042C STARTING ROW & COLUMN SUBCHANNEL 1
Subchannel Determination
On a new request entry the device driver determines what subchannel the
request is addressed to. The subchannel is in the EQT word 4 bits 10-6.
The subroutine GTSCH gets the subchannel and returns it in the A register.
GTSCH NOP
LDA EQTY,I GET FROM EQT WORD 4
AND B3. 7K (3700B) ONLY LOOK AT THE SUBCHANNEL BITS
ALF ,ALF
RAL, RAL POSITION TO RIGHT
JMP GTSCH, I RETURN
EQT4 EQU 1663B
Once the subchannel has been determined the device driver must save it in
the device driver EQT extent and then go set the left or right margin. Note
that although the driver specifies subchannel O or 1 it will use any even
subchannel as the left side or any odd subchannel as the right side.
JSB GTSCH GO GET THE SUBCHANNEL FROM THE EQT
STA DEX14,1 SAVE IT IN DD EXTENT WORD 14
SLA ODD OR EVEN?
JMP RMPOS,I ODD -- DO RIGHT FIRST
JMP LMPOS, I EVEN -- DO LEFT FIRST
Output a Setup String to the Terminal
The device driver routines to output various strings of characters that set
up the terminal are basically the same. They place the request in device
driver EQT extent words 2-4 and exit through a common return routine.
4-20
Device driver extent word 2 is set up with a read or write request code,
word 3 with a buffer address inside the device driver, and word 4 is set up
with the buffer length.
*
* POSITION CURSOR FOR LEFT MARGIN SET
*
LMPOS DEF *+1 ADDRESS OF ROUTINE
LDA BNWT GET THE CONTROL WORD FOR WRITE W/O CRLF
STA DEXO@,I PUT INTO DD EXTENT
LDB DEX14,1 GET THE SUBCHANNEL NUMBER
LDA LMPA GET THE LEFT MARGIN POSITION ADDRESS POINTER
SLB TEST ON SUBCHANNEL
INA ODD -- USE THE OTHER ONE
LDA A,I GET THE ADDRESS OF THE CHARACTER STRING
STA DEXO03,I PUT INTO DD EXTENT
LDA CMLNG GET THE CURSOR MOVE LENGTH WORD
STA DEXO4,1 PUT INTO DD EXTENT
LDB LMSET GET THE ADDRESS OF THE NEXT ROUTINE
LDA MODX1 GET THE WRITE MODIFIER/EXIT COMMAND
JMP CRTN GO TO THE COMMON RETURN ROUTINE
BNWT OCT 000102 CONTROL WORD FOR WRITE W/O CRLF
LMPA DEF LMPAD ADDRESS OF LEFT MARGIN POSITION TABLE
LMPAD DEF LMPAO EVEN SUBCHANNEL POSITION ADDRESS
DEF LMPA1 ODD SUBCHANNEL POSITION ADDRESS
LMPAO OCT 15446 ASCII "ESC E"
ASC 3, 000C COLUMN POSITION FOR LEFT SIDE LEFT MARGIN
LMPA1 OCT 15446 ASCII "ESC &"
ASC 3, 042C COLUMN POSITION FOR RIGHT SIDE LEFT MARGIN
CMLNG DEC 4
MODX1 OCT 102005 WRITE MODIFIER/EXIT COMMAND:
* DO REQUEST IN DEXO2-4, END NEXT READ ON CR
* DO NOT MODIFY WRITE IN DEXO?
The common return routine is used by all of the device driver routines that
initiate their own requests to the interface driver. The return routine
expects the address of the next routine to be in the B Register and the
modifier/exit command to already be in the A Register. The return routine
saves the next address in the device driver EQT extent word 13 and picks up
the time out value used for all setup requests.
CRTN STB DEX13,I SAVE NEXT ROUTINE ADDRESS IN DD EXT WORD 13
LDB TO GET TIME OUT FOR SETUP REQUESTS
JMP DDSO00,I RETURN TO INTERFACE DRIVER
Stepping from one routine to the next is made simple by always saving the
next routine address in device driver EQT extent word 13. On any
continuation entry the device driver only has to jump through the contents
of extent word 13 indirect:
4-21
DDSOO NOP DEVICE DRIVER ENTRY POINT
STB TEMP SAVE B TEMPORARILY
CLE
ELA,RAR SAVE A[15] FOR CONTINUATION TEST
. SET UP DD EXTENT ADDRESSES
LDB TEMP RESTORE B
SEZ ,RSS TEST FOR CONTINUATION
JMP CS00 IF E (WAS A[15]) IS SET, GO TO CONTINUATION
CS00 LDA DEX13,I GET NEXT ROUTINE ADDRESS
JMP A,I GO DO IT
Perform The Original User Request
Since the original user request is restored to the device driver EQT extent
words 2-4 on each entry to the device driver, processing the original
request is quite simple. Before returning to the interface driver, the
device driver only puts the system defined time out value in the B Register
and an exit command equals 5 in the A Register. In this device driver the
next routine address is also saved in the device driver EQT extent word 13
to keep the flow of requests going.
DORQ DEF %*+1 ADDRESS OF ROUTINE
LDB EQT14,I GET THE SYSTEM TIME OUT WORD
LDA SENCU GET THE NEXT ROUTINE ADDRESS
STA DEX13,I SAVE IT FOR RETURN
LDA MODXZ2 GET THE MODIFIER/EXIT COMMAND
JMP DDSO00,I RETURN DIRECTLY TO THE INTERFACE DRIVER
MODX2 OCT 000005 UNIVERSAL DON'T MODIFY ANYTHING/DO REQUEST
* IN THE DD EXT MODIFIER/EXIT COMMAND
EQT14 EQU 1773B
Since further requests to the interface driver are required after completion
of the original user request, the device driver must save the transmission
log from the user request. This is accomplished by storing the contents of
the B Register in EQT word 8, which was the original user request length (in
characters).
Read Cursor Position
SENCU senses where the cursor was left at the end of the user request. An
escape - lower case a - DC1 (binary write) is sent to the terminal,
requesting the terminal to send back the cursor position. The card 15
pre-configured for the next read by setting the high order bits in MODX1.
This demonstrates the read modifier on a write request:
4-22
SENCU DEF *+1 ADDRESS OF THE ROUTINE
STB EQT8,1 SAVE TRANSMISSION LOG IN EQT 8
LDA BNWT SET UP BINARY WRITE
STA DEXO?,I IN DEVICE DRIVER EQT EXT
LDA SENCA GET ADDRESS OF CURSOR SENSE
STA DEXO3,I FOR DD EQT EXT
LDA SENSL GET LENGTH FOR SENSE COMMAND
STA DEXO4,I PUT IT IN THE DD EQT EXT
LDA MODX1 WRITE MODIFIER/EXIT COMMAND
LDB RDCUS GET THE ADDRESS OF NEXT
JMP CRTN RETURN TO INTERFACE DRIVER
Final Completion Return to the Interface Driver
Completion is signified on return to the interface driver by a zero in the
A Register and the user request transmission log in the B Register.
LDB EQT8,1 RETRIEVE TRANSMISSION LOG
CLA SET COMPLETION EXIT COMMAND
JMP DDSOO,I RETURN TO INTERFACE DRIVER
EQT8 EQU 1667B
Device Driver Address Table
The following device driver address table is required to include the device
driver with the interface driver at generation time.
ASMB, Q
NAM $DVTB,8 DEVICE DRIVER ADDRESS TABLE
ENT $DVTB
ЕХТ 00500
*
* DEVICE DRIVER ADDRESS TABLE
*
$DVTB DEC 1 NUMBER OF ENTRIES IN TABLE
DEF DDS00+0 ADDRESS OF DEVICE DRIVER 2
END
The device driver is then selected via a control function 33B, 000002
request to the interface on either the subchannel 0 or 1 LU.
4-23
Sample Device Driver Listing
The
following sample device driver is
procedures
Driver (DVMOO).
given to illustrate the various
the 12792B Multiplexer Interface
example only and is not a supported
involved in
It
interfacing to
is intended as an
functioning product,
0001
0002%
0003*
0004#
0005%
0006*
0007*
0008*
0009*
0010%
0011
0012
0013
0014#
0015
0016
0017
0018
0019
0020
0021%
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038*
0039*
0040#*
0041
0042
4-24
ASMB,Q
MULTIPLEXER DEVICE DRIVER FOR SPLIT SCREEN OPERATION OF
A 264X TERMINAL. LEFT HALF OF SCREEN IS SUBCHANNEL O,
RIGHT HALF IS SUBCHANNEL 1. FUNCTION IS OTHERWISE DVMOO.
THIS DEVICE DRIVER WILL SET THE MARGINS FOR LEFT OR RIGHT
HALF OPERATION AND POSITION THE CURSOR TO IT'S LAST KNOWN
POSITION IN THE APPROPRIATE HALF OF THE SCREEN ACCORDING
TO THE SUBCHANNEL ADDRESSED ON EACH OPERATION,
00000 NAM DDS00,8 SPLIT SCREEN DEVICE DRIVER
ENT DDSOO
EXT .CFER
00000 A EQU O
00001 B EQU 1
01663 EQT4 EQU 1663B
01664 EQT5 EQU 1664B
01667 EQT8 EQU 1667B
01773 EQT14 EQU 1773B
00000 000001R DEXAD DEF DEXO1
00001 000000 DEXO1 NOP PHYSICAL RECORD LENGTH
00002 000000 DEXO? NOP EQT6 COPY
00003 000000 DEXO3 NOP EQT7 COPY
00004 000000 DEXO4 NOP EQT8 COPY
00005 000000 DEX05 NOP CURRENT SUB CH 0 ROW WORD 1
00006 000000 DEXO6 NOP " WORD 2
00007 000000 DEXOT7 NOP CURRENT SUB CH O COL WORD 1
00010 000000 DEXO8 NOP " WORD 2
00011 000000 DEXO9 NOP CURRENT SUB CH 1 ROW WORD 1
00012 000000 DEX10 NOP " WORD 2
00013 000000 DEX11 NOP CURRENT SUB CH 1 COL WORD 1
00014 000000 DEX12 NOP " WORD 2
00015 000000 DEX13 NOP NEXT ROUTINE ADDRESS
00016 000000 DEX14 NOP CURRENT (LAST) SUBCHANNEL
00017 000000 DEX15 NOP FIRST ACCESS FLAG = ASCII SO
SETUP ON EACH ENTRY
00020 000000 IDDSOO NOP
00021 000313R STB TEMP SAVE B TEMPORARILY
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052*
0053
0054
0055
0056%
0057*
0058*
0059
0060
0061
0062*
0063
0064
0065*
0066
0067
0068
0069
0070
0071
0072*
0073
0074
0075
0076*
0077*
0078*
0079*
0080
0081
0082
0083
0084
0085%
0086*
0087*
0088
0089
0090
0091
0092
0093
0094
00022
00023
00024
00025
00026
00027
00030
00031
00032
00033
00034
00035
00036
000040
001623
000000R
105745
000267R
000001
002004
006004
105760
000027R
000313R
002041
000254R
CLE
ELA,
LDB
LDX
DEXLP STA
INA
INB
ISX
JMP
LDB
SEZ,
JMP
RAR
DEXAD
DM15
B,l
DEXLP
TEMP
RSS
CS00
SAVE A[15] FOR CONTINUE TEST
SAVE EXTENT ADDRESSES
A = ADDRESS OF DD EQT EXT 1
B = ADDRESS OF DEXO1
DO FOR DEX01-15, ADDRESSES
OF DEVICE DD EXT WORDS 1-15
RESTORE B
TEST FOR CONTINUATION
GO DO CONTINUATION
SPECIAL PROCESSING TO SETUP EQT ON FIRST ACCESS
00037
00040
00041
00042
00043
00044
00045
00046
00047
00050
00051
00052
00053
00054
GET THE SUBCH AND DECIDE THE PATH
000017R
000277R
000250R
000277R
000017R
000001X
100005R
000300R
000001X
10001 1R
000304R
001664
000276R
001664
LDA
CPA
JMP
LDA
STA
JSB
DEF
DEF
JSB
DEF
DEF
LDA
AND
STA
DEX15,1
ASO
SUBCK
ASO
DEX15,1
. CFER
DEXOS,I
SORC
.CFER
DEXO9,I
SIRC
EQT5, 1
TMASK
EQT5, 1
SUB 1 SET RIGHT MARGIN FIRST)
00055
000261R
JSB
GTSCH
00056 000016R SVSCH STA DEX14,I
00057
000010
00060 000117R
00061
000062R
SLA
JMP
JMP
RMPOS, I
LMPOS, I
POSITION FOR LEFT MARGIN SET
00062
00063
00064
00065
00066
00067
00070
000063R LMPOS DEF #+1
000310R
000002R
000016R
000330R
004010
002004
LDA
STA
LDB
LDA
SLB
INA
BNWT
DEXO2,1
DEX14,1
LMPA
GET FIRST ACCESS FLAG
CONTAINS ASCII "50"
NOT FIRST ACCESS, CHECK SUBCH
FIRST ACCESS, SET UP FLAG
SET UP SUB CH O ROW AND COL
SET UP SUB CH 1 ROW AND COL
SET UP DRIVER TYPE
(SUB O SET LEFT MARGIN FIRST,
GO GET SUBCHANNEL
AND SAVE
ODD SUBCHANNEL?
YES, DO RIGHT MARGIN FIRST
NO, DO LEFT MARGIN FIRST
ADDRESS OF ROUTINE
SET UP BINARY WRITE
TO POSITION THE CURSOR
GET SUBCHANNEL
GET LEFT MARGIN POINTER
ODD SUBCH USE THE OTHER ONE
4-25
0095 00071 000000 LDA
0096 00072 000003R STA
0097 00073 000272R LDA
0098 00074 000004R STA
0099 00075 000100R LDB
0100 00076 000314R LDA
0101 00077 000256R JMP
0102%
0103% SET THE LEFT MARGIN
0104%
0105 00100 000101R LMSET DEF
0106 00101 000310R LDA
0107 00102 000002R STA
0108 00103 000332R LDA
0109 00104 000003R STA
0110 00105 000271R LDA
0111 00106 000004R STA
0112 00107 000016R LDA
0113 00110 000010 SLA
0114 00111 000114R JMP
0115 00112 000117R LDB
0116 00113 002001 RSS
0117 00114 000154R LDB
0118 00115 000314R LDA
0119 00116 000256R JMP
0120%
0121* POSITION CURSOR FOR
0122%
0123 00117 000120R RMPOS DEF
0124 00120 000310R LDA
0125 00121 000002R STA
0126 00122 000016R LDB
0127 00123 000345R LDA
0128 00124 004010 SLB
0129 00125 002004 INA
0130 00126 000000 LDA
0131 00127 000003R STA
0132 00130 000272R LDA
0133 00131 000004R STA
0134 00132 000135R LDB
0135 00133 000314R LDA
0136 00134 000256R JMP
0137%
0138* SET THE RIGHT MARGIN
0139*
0140 00135 0001368 RMSET DEF
0141 00136 000310R LDA
0142 00137 000002R STA
0143 00140 000347R LDA
0144 00141 000003R STA
0145 00142 000271R LDA
0146 00143 000004R STA
0147 00144 000016R LDA
4-26
А,1
DEX03,1
CMLNG
DEXO4,I
LMSET
MODX 1
CRTN
LES
BNWT
DEXO2, I
LMSTA
DEXO3,1
MSLNG
DEXO4,I
DEX14,I
RMPOS
CUPOS
MODX1
CRTN
*+1
BNWT
DEXO2,1
DEX 14,1
RMPA
A,1
DEX03,1
CMLNG
DEXO4,1
RMSET
MODX1
CRTN
#41
BNWT
DEXO2, I
RMSTA
DEXO3, I
MSLNG
DEXO4,I
DEX14,1
GET THE ADDRESS
PUT IT IN THE DD EXTENT
GET CURSOR MOVE LENGTH WORD
PUT IT IN THE DD EXTENT
GET L. MARGIN SET ADDRESS
WRITE MODIFIER/EXIT COMMAND
RETURN TO INTERFACE DRIVER
ADDRESS OF ROUTINE
SET UP BINARY WRITE
IN DEVICE DRIVER EQT EXT
GET ADDRESS OF L. MARGIN SET
FOR DD EQT EXT
GET LENGTH FOR MARGIN SET
PUT IT IN THE DD EQT EXT
GET SUBCHANNEL
ODD?
YES, GO POSITION CURSOR
NO, GET RIGHT MARGIN ADDRESS
GET CURSOR POSITION ADDRESS
WRITE MODIFIER/EXIT COMMAND
RETURN TO INTERFACE DRIVER
RIGHT MARGIN SET
ADDRESS OF ROUTINE
SET UP BINARY WRITE
TO POSITION THE CURSOR
GET SUBCHANNEL
GET R. MARGIN ADDRESS POINTER
ODD SUBCH USE THE OTHER ONE
GET
PUT
GET
PUT
THE ADDRESS
IT IN THE DD EXTENT
CURSOR MOVE LENGTH WORD
IT IN THE DD EXTENT
GET R. MARGIN SET ADDR
GET WRITE MODIFIER/EXIT
RETURN TO INTERFACE DRIVER
ADDRESS OF ROUTINE
SET UP BINARY WRITE
IN DEVICE DRIVER EQT EXT
GET ADDRESS OF R. MARGIN SET
FOR DD EQT EXT
GET LENGTH FOR MARGIN SET
PUT IT IN THE DD EQT EXT
GET THE SUBCHANNEL
0148
0149
0150
0151
0152
0153
0154
0155%
0156*
0157%
0158
0159
0160
0161
0162
0163
0164
0165
0166
0167
0168
0169
0170
0171
0172
0173
0174
0175%
0176%
0177%
0178
0179
0180
0181
0182
0183
0184#
0185*
0186#
0187
0188
0189
0190
0191
0192
0193
0194
0195
0196
0197
0198*
00145
00146
00147
00150
00151
00152
00153
POSITION CURSOR FOR
00154
00155
00156
00157
00160
00161
00162
00163
00164
00165
00166
00167
00170
00171
00172
00173
00174
00175
00176
000010
000151R
000154R
002001
000062R
00031 4R
000256R
000155R CUPOS
000310R
000002R
00001 6R
000360R
004010
002004
000000
000361R
105777
000272R
000000
000362R
000003R
000273R
000004R
000177R
000314R
000256R
SLA
JMP
LDB
RSS
LDB
LDA
JMP
#43
CUPOS
LMPOS
MODX1
CRTN
ODD?
YES, GO SET LEFT MARGIN
NO, GET CURSOR POS. ADDRESS
GET L. MARGIN POS. ADDRESS
WRITE MODIFIER/EXIT COMMAND
RETURN TO INTERFACE DRIVER
OPERATION ON A SUBCHANNEL
DEF
LDA
STA
LDB
LDA
SLB
INA
LDA
LDB
MVW
LDA
STA
LDA
STA
LDB
LDA
JMP
LES
BNWT
DEX02,1
DEX14, I
CPAD
A,1
CPVAD
D4
CPBFA
DEX03,1
CPLNG
DEXOUY,I
DORQ
MODX 1
CRTN
DO THE ORIGINAL USER REQUEST
00177
00200
00201
00202
00203
00204
000200R DORQ DEF #+1
001773
000205R
000015R
000315R
000020R
LDB
LDA
STA
LDA
JMP
EQT14, I
SENCU
DEX13,I
MODX2
DDS00, I
ADDRESS OF ROUTINE
SET UP BINARY WRITE
TO POSITION THE CURSOR
GET SUBCHANNEL
GET CURSOR ADDRESS POINTER
ODD SUBCH USE THE OTHER ONE
GET THE ADDRESS OF LAST
AND THE BUFFER FILL ADDRESS
MOVE THE LAST POSITION
GET THE WHOLE BUFFER ADDRESS
PUT IT IN THE DD EXTENT
GET CURSOR MOVE LENGTH WORD
PUT IT IN THE DD EXTENT
GET DORQ ROUTINE ADDRESS
WRITE MODIFIER/EXIT COMMAND
RETRURN TO INTERFACE DRIVER
ADDRESS OF THE ROUTINE
GET THE TIME OUTWORD
GET THE SENCU ROUTINE ADDRESS
SAVE IT FOR RETURN
GET THE EXIT COMMAND
RETURN DIRECTLY
USER REQUEST DONE, SENSE WHERE THE CURSOR WAS LEFT
00205
00206
00207
00210
00211
00212
00213
00214
00215
00216
00217
000206R SENCU DEF
001667
000310R
000002R
000363R
000003R
000270R
000004R
000314R
000220R
000256R
STB
LDA
STA
LDA
STA
LDA
STA
LDA
LDB
JMP
*+1
EQT8,I
BNWT
DEXO2, I
SENCA
DEXO3,1
SENSL
DEXO4,I
MODX 1
RDCUS
CRTN
ADDRESS OF THE ROUTINE
SAVE TRANSMISSION LOG IN EQT8
SET UP BINARY WRITE
IN DEVICE DRIVER EQT EXT
GET ADDRESS OF CURSOR SENSE
FOR DD EQT EXT
GET LENGTH FOR SENSE COMMAND
PUT IT IN THE DD EQT EXT
WRITE MODIFIER/EXIT COMMAND
GET THE ADDRESS OF NEXT
RETURN TO INTERFACE DRIVER
4-27
0199%
0200%
0201
0202
0203
0204
0205
0206
0207
0208
0209
0210
0211%
0212%
0213*
0214
0215
0216
0217
0218
0219
0220
0221
0222
0223
0224
0225
0226%
0227*
0228*
0229
0230
0231
0232
0233*
0234#
0235*
0236
0237
0238*
0239*
0240%
0241*
0242
0243
0244
0245%
0246%
0247%
0248
0249
4-28
READ THE SENSED CURSOR POSITION
00220
00221
00222
00223
00224
00225
00226
00227
00230
00231
COMPLETION ROUTINE,
00232
00233
00234
00235
00236
00237
00240
00241
00242
00243
00244
00245
00246
00247
TEST FOR SUBCHANNEL
00250 000261R SUBCK
00251
00252
00253
000221R RDCUS DEF
000311R
000002R
000366R
000003R
000273R
000004R
000232R
000315R
000256R
000233R COMPL
000016R
000360R
000010
006004
000001
005200
000375R
105765
000274R
000000
001667
002400
000020R
000016R
000177R
000056R
LDA
STA
LDA
STA
LDA
STA
LDB
LDA
JMP
*+1
RDWCR
DEX02,I
CRDBA
DEX03,I
CPLNG
DEX04,I
COMPL
MODX2
CRTN
ADDRESS OF ROUTINE
CONTROL WORD FOR READ W/CR
PASS TO I/F DRIVER
ADDRESS OF BUFFER
LENGTH
ADDRESS OF NEXT ROUTINE
GET THE EXIT COMMAND
RETURN TO INTERFACE DRIVER
SAVES RETURNED CURSOR POSITION AND EXITS
DEF
LDA
LDB
SLA
INB
LDB
RBL
LDA
MBT
LDB
CLA
JMP
*+1
DEX 14,1
CPAD
В, 1
CUBYT
D8
EQT8,1I
DDS00, I
ROUTINE ADDRESS
GET CURRENT SUBCHANNEL
GET CURSOR STORAGE POINTER
ODD SUBCHANNEL...
YES, USE THE OTHER ONE
GET THE ADDRESS
MAKE IT A BYTE ADDRESS
GET BYTE ADDRESS
MOVE BYTES
RETRIEVE THE TRANSMISSION LOG
SET EXIT COMPLETION COMMAND
ALREADY EQUAL, SKIP MOST OF SETUP
JSB
CPA
JMP
JMP
GTSCH
DEX 14,1
DORQ, I
SVSCH
CONTINUATION PROCESS SELECTION
00254 000015R CSOO LDA DEX13,I
00255
000000
JMP
A,I
GET REQUEST SUBCHANNEL
COMPARE TO LAST ONE ADDRESSED
SAME, GO DO USER REQUEST
DIFFERENT, GO SET UP TERMINAL
GET ADDRESS OF NEXT ROUTINE
GO DO IT
RETURN TO INTERFACE DRIVER ROUTINE A=MODIFIER/EXIT CMD,
B=NEXT ROUTINE ADDRESS
00256 000015R CRTN STB DEX13,I
00257
00260
000312R
000020R
LDB
JMP
TO
DDS00,I
SAVE NEXT ROUTINE ADDRESS
GET THE SETUP TIME OUT
SUBROUTINE TO RETURN THE SUBCH IN THE A REGISTER
00261 000000 GTSCH NOP
00262
001663
LDA
EQT4, I
GET SUBCHANNEL WORD
0250
0251
0252
0253
0254#
0255*
0256%
0257
0258
0259
0260
0261
0262
0263
0264
0265
0266
0267
0268
0269
0270
0271
0272
0273%
0274#*
0275
0276*
0277*
0278#
0279%
0280*
0281
0282
0283
0284#
0285
0286
0287
0288
0289
0290
0291
0292*
00263 000275R
00264
00265
00266 000261R
CONSTANTS AND
00267
00270
00271
00272
00273
00274
00275
00276
00277
00300
00301
00302
00303
00304
00305
00306
00307
00310
00311
00312
00313
00314
00315
TERMINAL COMMAND STRINGS
001727
001222
177761
177775
000001
000004
000006
000010
003700
014037
051460
030060
030162
030060
030103
030060
030162
030064
031103
000102
000001
177160
000000
102005
000005
AND
ALF,
RAL,
JMP
VARIABLES
DM15
DM3
D1
D4
D6
D8
B3.7K
TMASK
ASO
SORC
S1RC
BNWT
RDWCR
TO
TEMP
MODX1
MODX2
DEC
DEC
DEC
DEC
DEC
DEC
OCT
OCT
ASC
ASC
ASC
OCT
OCT
DEC
BSS
OCT
OCT
B3. 7K ONLY LOOK AT SUBCHANNEL BITS
ALF
RAL POSITION TO RIGHT
GTSCH, I
-15
-3
1
4
6
8
3700
14037
1,50
4,000r000C
4, 000rou2C
000102 CNWD FOR BINARY WRITE
000001 CNWD FOR READ TO CR, NO ECHO
-400 4 SEC TIME OUT ON SETUP
1
102005 WRITE MODIFIER/EXIT COMMAND
DO REQ. IN DEXO?, END READS
ON CR, DON'T MODIFY WRITE.
000005 UNIV. MODIFIER/EXIT COMMAND
DON'T MODIFY ANYTHING,
JUST START REQUEST IN EXTENT
00273 CPLNG EQU D6 LENGTH OF CURSOR POSITION RQ
00272 CMLNG EQU D4 LENGTH OF MARGIN REQUESTS
00271 MSLNG EQU D1 LENGTH OF MARGIN SET REQUESTS
00316 015446 LMPAO OCT 15446 (ESC&) POS. CURSOR FOR LEFT
00317 060440 ASC 3,a 000C MARGIN SET, SUB O
00320 030060
00321 030103
00322 015446 LMPA1 OCT 15446 (ESC&) POS. CURSOR FOR LEFT
00323 060440 ASC 3,a O42C MARGIN SET, SUB 1
00324 030064
00325 031103
00326 000316R LMPAD DEF LMPAO ADDRESS OF LEFT MARGIN, SUB 0
00327 000322R DEF LMPA1 ADDRESS OF LEFT MARGIN, SUB 1
00330 000326R LMPA DEF LMPAD ADDRESS OF ADDRESSES
4-29
0293
0294
0295%
0296
0297
0298
0299
0300
0301
0302
0303*
0304
0305
0306*
0307
0308
0309
0310
0311
0312
0313
0314
0315*
0316
0317
0318
0319
0320%
0321*
0322*
0323
0324
0325
0326
0327
0328
0329
0330
0331
* %
4-30
00331
00332
00333
00334
00335
00336
00337
00340
00341
00342
00343
00344
00345
00346
00347
00350
00351
00352
00356
00357
00360
00361
00362
00363
00364
00365
00270
015464
000331R
015446
060440
030063
033503
015446
060440
030067
034503
000333R
000337R
000343R
015465
000346R
015446
060440
000000
000005R
000011R
100356R
000352R
000350R
000364R
015541
010400
LMST
LMSTA
RMPAO
RMPA1
RMPAD
RMPA
RMST
RMSTA
CPBUF
CPVAL
CPADD
CPAD
CPVAD
CPBFA
SENCA
SENCC
SENSL
OCT
DEF
OCT
ASC
OCT
ASC
DEF
DEF
DEF
OCT
DEF
OCT
ASC
BSS
DEF
DEF
DEF
DEF
DEF
DEF
OCT
OCT
EQU
15464
LMST
15446
3,a 037C
15446
3,a 079C
RMPAO
RMPA1
RMPAD
15465
RMST
15446
1,a
Ц
DEX05
DEXO9
CPADD, I
CPVAL
CPBUF
SENCC
15541
10400
DM3
RETURN AREA FOR CURSOR SENSE
00366
00367
00370
00371
00372
00373
00374
00375
000367R CRDBA DEF CRDBF
000000 CRDBF NOP
000000
000000
000000
000000
000000
000761R
CUBYT
NOP
NOP
NOP
NOP
NOP
DBR
END
CRDBF+1
SET L. MARGIN COMMAND (ESC4)
AND ADDRESS
(ESC&) POSITION CURSOR FOR R.
MARGIN SET, SUB O
(ESC&) POSITION CURSOR FOR R.
MARGIN SET, SUB 1
ADDRESS OF R. MARGIN, SUB O
ADDRESS OF R. MARGIN, SUB 1
ADDRESS OF ADDRESSES
SET R. MARGIN COMMAND (ESC5)
AND ADDRESS
(ESC&) POSITION CURSOR FOR A
SUB CHANNEL FOR OPERATION
AREA TO PUT CURSOR COORD.
ADDR OF CURSOR COORD. SUB O
ADDR OF CURSOR COORD. SUB 1
ADDRESS OF ADDRESSES
ADDRESS OF COORDINATE STORAGE
ADDRESS OF BUFFER
ADDR OF SENSE CURSOR COMMAND
(ESCa) SENSE CURSOR COMMAND
DC1 SEND DATA
CHAR COUNT FOR SENSE COMMAND
CURSOR READ BUFFER ADDRESS
SPACE FOR ESC &
SPACE FOR aY
SPACE FOR YY
SPACE FOR rX
SPACE FOR XX
SPACE FOR C
BYTE ADDRESS OF RIGHT BYTE
NO ERRORS *TOTAL **RTE ASMB 92067-16011%*
Chapter 5
Device-Specific Considerations
The Multiplexer subsystem supports the following HP terminals: 2621A/P,
2626A, 2631A/B, 2635, 2675A, and 264X, as well as printer support for the
263X and the 7310A.
Other HP or non-HP devices may be used in conjunction with the 12792B
multiplexer subsystem. A prerequisite for HP support is the device must be
either point-to-point hardwired (or modem linked using the HP 37214A systems
modem subsystem), in an asynchronous, bit-serial environment. However, for
these devices it may be necessary for the user to write simple device
drivers to supplement line protocol and specific control characters.
Handshaking
Transmission and reception of data or instructions are coordinated by
firmware controlled handshaking. Handshaking can be approached from one of
two aspects; either from the multiplexer firmware or from the device acting
as the transmitter, Some line printers and other devices use hardware
handshaking between the computer and the terminal/device; these devices are
not supported.
The HP 12792B interface card uses firmware on the interface card rather than
a software driver to accomplish ENQ/ACK handshaking to provide and other
line protocol necessary to communicate between the MUX card and a
terminal/device. If the card configuration has ENQ/ACK handshaking enabled,
data is transferred to the terminal/device in the following manner:
The card sends data to the terminal/device in blocks of 80
characters. Between blocks an ENQ is sent and the firmware waits
up to five seconds for an ACK. If one block is received the next
block is sent. If no response is given, another ENQ is sent,
If the handshaking is disabled information is transmitted serially
(character by character) to the terminal/device.
The other type of handshaking is from the terminal/device to the Multiplexer
card and this is accomplished using DC1 and DC2 handshaking. DC1 and DC2
are used for CPU reception in block mode. This type of handshaking is
controlled by the terminal driver DDVO5.
5-1
The XON/XOFF handshake for pacing the data sent to a terminal is also
supported on the multiplexer. Control function 34B is used to enable and
disable XON/XOFF handshaking (refer to Chapter 2 under function 34B for
details).
The device control signals XON and XOFF that allow the user to control or
pace transmission from the terminal are treated by the multiplexer as
handshake characters. XON starts transmission when Control-Q is received by
the multiplexer and transmission stops when Control-S is received. Use of
XON and XOFF are enabled in the Port Configuration control request (refer to
function 34B in Chapter 2).
DDV12 Lineprinter Driver
HP supplies a line printer driver (DDV12) similiar to DVR12, although some
limitations are:
- no vertical form feed except top of form
- no over print carriage control ( # in col 1 )
- no status requests
DDV05 Terminal Driver
When using the HP 264X terminal in the Multiplexer subsystem, the device
expects to see 8-bits per character data transfers. Users wanting to
communicate with a 264X or 262X terminal with parity checking should
configure the interface card for a 7-bits per character data transfer, or
without parity use 8-bits per character. The 264X terminals require
handshaking with the ENQ/ACK protocol in order to preserve data integrity.
These terminals use a block mode handshaking scheme with the CPU receiving
DC1/DC2 protocol. A DC1 must be detected before the information can be sent
across the line.
Black Box Considerations
In order to connect a "black box" RS-232-C or RS-423-A device to the HP
12792B Multiplexer Interface, the following three criteria must be examined:
RS-232-C and RS-423-A Capability
Handshaking
Driver Considerations
HP offers support to most RS-232-C and RS-423-A compatible devices. HP
support is limited to correct passage of user's data to and from the user's
buffer and from and to the specified multiplexer channel data links with
insertion and deletion of specifying characters and parity information.
The user should be aware of the line protocol, control sequences, and
handshaking used by the device, The line protocol must match in order for
two way communication to exist, The user must understand how requests are
mapped in as control requests. The user must specify whether the
terminal/device uses character or block mode handshaking.
The last consideration requires the user to determine if the terminal/device
can function using the HP supplied drivers, or if it will require a user
written device driver. Any specialized control which is required by the
device not included in the user buffer indicates the need for a user written
device driver. When functioning with user written device drivers, support
is also limited to correct passage of EQT extent information to and from the
user's device driver and the correct execution of the device drivers
requests.
Dumb Devices
If the device requires no additional information beyond what is contained in
the user's buffer and does not use DC1 handshaking, the device can be
considered a "dumb" device and will be able to operate using DVMOO and the
default device driver (device driver number one). Some devices that are
normally considered dumb devices actually require CR/LF delays and will
require a user written device driver for proper operation. One example of
these devices is the common Teletype.
Modems
The HP 12792B Multiplexer has no modem control lines but it may be connected
to an HP 37214A systems modem subsystem and modem control and I/O cards for
full-duplex asynchoronous modem operation. The active control functions of
the modem are contained in the modem panel and the multiplexer and its
driver need only to take care of the passive functions, For example when
using modems, if the modem line is disconnected, the condition is detected
by the modem panel, not the multiplexer,
Be aware that if a user logs on under an RTE session and the line is
disconnected before the user logs off, anyone dialing into that port will be
re-connected to the session in progress at the time of the previous
disconnect,
Appendix A
Device Equipment Table
The HP 12792B Multiplexer Subsystem requires a Device Equipment Table (EQT)
entry for each port on the multiplexer. The entry consists of 15 words plus
an extension of 17 words, or a total of 32 words. The EQT entry is
configured into the RTE Operating System at system generation time.
During svstem operation, the device and interface drivers receive channel
configuration instructions, and passes information to each other through the
EQT entry for that channel. Table A-1 provides the function at each word in
the Equipment Table Entry in RTE-IVB and RTE-6/VM operating systems.
Table A-1. Equipment Table Entry.
EQT Words 1-8: standard in the RTE operating environment.
Word 5: the status word, bits 7-0 describe the channel's
status unless it is altered by a device driver:
Bit 7: Last request timed out
Bit 6: BREAK key hit
Bit 5: EOT (control-D entered)
Bit 4: Modem line down.
Bit 3: Parity error or overflow
Bit 2: Type-ahead data available
Bit 1: Program scheduling enabled
Bit 0: Reserved for future use,
should be set to zero
Word 9: On initiation entry this is an optional user
parameter to the device driver. Thereafter,
it is the starting address for transfers.
Word 10:
On initiation entry, this is an optional user
parameter to the device driver, Thereafter,
it is the character length of the data transfer,
Word 11: Port Status Word 1
Bit 15: Card is busy processing a command
Bit 14: Deferred abort in process
(system clear request)
Bit 13: Waiting for or using DCPC channel
Bit 12: Reserved for future use
Bit 11: Using DCPC channel 1 (select code = 6)
Bit 10: 1/0 transfer in process
Bit 9: Unsolicited interrupt in progress
Bit 8: Defer abort flag
Bit 7: End on CR
Bit 6: End on RS
Bit 5: End on CNTL D
Bit 4: End on DC2
Bit 3: End on Count
Bit 2: End on Character
Bit 1: Edit enable
Bit 0: Echo enable
Word 12:
Bit 15: This EQT is suspended on itself
Bits 14-0: The address of first EQT suspended,
waiting for access to the backplane,
Word 13: Address of EQT extension
Word 14: Standard usage: EQT time-out value reset
Word 15: Standard usage: EQT running timer
EQT extension words: (extension word 1 = EQT word 16)
Word 16: Address of the program to schedule
-1 if none
0 if the driver has not been entered
Word 17: Level 1 subroutine return address
Word 18: Level 2 subroutine return address
Word 19: Level 3 subroutine return address
Word 20: Port ID from control 30B optional parameter,
used in power fail recovery
Word 21: Driver configuration word (from control 33B)
Word 22: Reserved for future use
Word 23: Length of typed-ahead data, in characters
Word 24: Temporary, usually contains the character
length of the data remaining to be transferred
Word 25: Temporary, usually the second word of the card
command
Word 26:
Temporary, usually the length of the character
space left in the user buffer
Word 27:
Port Status Word 2:
Bit 15: Terminating character has not yet been
found
Bit 14,13: 00
01
control-D (terminating character)
<CR>
10 <DC2>
11 <RS>
Bit 12: Reserved for future use
Bit 11: Card reset in progress
Bits 10-9: Reserved for future use
Bit 8: Port has key
Bits 7-0: default status for word 5 bits 7-0
Word 28:
Device driver command to the interface driver
(A-Register)
Word 29:
Device driver timeout, -10's ms
Word 30:
Device driver EXEC request
Word 31:
Device driver 1/0 buffer address or control
requests optional parameter
Word 32:
Device driver buffer length (+words, -chars)
Any further storage used is defined by the device driver in use.
Appendix B
Device Driver Interfaces
HP 26XX Screen Mode Device Driver
This section describes the HP supplied 26XX Screen Mode device driver DDVO5
used with the Multiplexer interface driver DVMOO. The driver supports HP
terminals in both character and block mode. All screen mode functions (the
ENTER key, soft keys, etc) are supported. Peripheral devices (CTUs, etc.)
are NOT supported by this device driver.
The layout of the user I/O and Control calls are designed to be roughly
compatible with DVRO5. Since this subsystem is be able to support a far
wider range of terminal capabilities, differences are inevitable,
For generation and initialization information please refer to the
configuration guide.
DDVO05 User Interface For HP 26XX Terminals
The device driver DDVOS utilizes the block mode read capabilities of an
HP264X or 262X terminal. At boot-up time the device driver reads the
terminal straps. The strappings may vary between character, block line, or
block page mode. The character mode is a normal read operation, with a
carriage return or CNTL-D indicating an end-of-record. A carriage return
denotes an end-of-record in the block line mode, while a record separator
denotes an end-of-record in the block page mode. Prior to every read
request, the device driver instructs the interface driver to write a DC1
allowing the softkeys to be read.
Subchannel Assignment
No support for peripheral devices is given, therefore EQT subchannels are
ignored. However, for compatibility with existing and future products, the
subchannel field should be set to zero.
Control Request Definition
The control requests accepted by this driver perform various functions.
Some requests require additional data which is passed to the driver through
the optional EXEC parameter IPARM. Any control request not listed here is
passed on to the interface driver for execution, The various requests are
described as follows:
Control Function 11B, Line Spacing
Control function 11B sends a number of CR/LF's to the terminal's
display as determined by the value of the optional parameter. A maximum of
63 lines can be spaced in one request. Any value greater than 63 will be
truncated modulo 64. A zero or negative line count results in one CR/LF
sent,
Control Function 25B, Update Terminal Configuration
Control function 25B causes the driver to read the strap settings on HP
terminals. This information is used by the driver to assure correct
terminal handshake when doing block reads, etc. on HP terminals.
A control function 25B is automatically performed when the driver receives
its first read request. If the terminal straps are subsequently changed
manually or by escape sequences the user must issue another control function
25B to keep the driver posted of any changes, Failure to do so may result
in the terminal getting "hung up".
Input/Output Requests
The action taken by the driver in the processing of I/0 requests depends on
the function code specified in the EXEC call from the user. Bits 10 through
6 of the EXEC ICNWD define the function code for the request as follows:
109876 Action taken for READ request
OXOXO input editing enabled, echo off, end transfer
on <CR> or CTRL-D
0X 1X 0 input editing enabled, echo on
end transfer on <CR>, or CTRL-D
OX O X 1 input editing off, echo off, end transfer
on buffer full
O0 X 1 X 1 editing off, echo on, end
transfer on buffer full
1 X OX O editing off, echo off, end transfer on <CR>
1 X 1 X 0 editing off, echo on, end
transfer on <CR>
109876 Action taken for WRITE request
OX X X O0 end transfer on end of buffer, add CR/LF if
last char in buffer is NOT " ", " " is not printed if
present as the last char in buffer
X X X 1 end transfer on end of buffer, nothing is added to
the user's buffer
1 XXX end transfer on end of buffer, nothing is added to
the user's buffer
For all I/O requests note the following:
Zero length keyboard entries will not be ignored by the interface driver.
I/0 transfers use a character format set up by control fuction 30B, and
the terminal must be strapped accordingly.
Escape and Unit Separator characters are NOT stripped from the user's
buffer as is done under DVRO5.
Binary type transfers from the display may not be used when the terminal
is in a block mode,
B-3
Read function code 3000B "program enabled block read" is not required
when doing ESC-d screen reads. However, the driver is not as "forgiving"
as DVROS when terminal straps are changed without informing the driver.
Control function 25B must be issued in order to prevent the terminal from
being "hung up".
HP 7310 Line Printer Device Driver
Functional Overview
This section describes the HP 2631/2635/7310 Line Printer device driver
DDV12 for use under the Multiplexer driver DVMOO. The driver supports both
normal (column 1 as carriage control) and transparent (column 1 printed)
print modes. Carriage control includes Top-of-Form, single, double, and
triple spacing.
For Generation and Initialization information consult the HP 12792B
Multiplexer Subsystem Configuration Guide.
Write Request Processing
Write requests to the driver can be made either in a normal or transparent
mode. The device driver DDV12 is used to make HP 2631/2635/7310 printers
look like typical line printers to user programs. These devices use escape
sequences for carriage control while standard line printers interpret the
first character of each line as a carriage control character. The DDV12
device driver examines the user's first character and sends the proper
escape sequence to the printer. In normal mode the first character of the
line is used to direct the driver to perform carriage control. The
remainder of the line is transferred to the printer. Carriage control
characters recognized by the driver are:
man Go to Top-of-Form
"О" Space one extra line before printing (double space)
"- Space two extra lines (triple space)
all others Single space
B—4
Transparent mode is selected by setting bit 7 of the EXEC function code. In
this mode all data is shipped to the printer regardless of the data in
column 1.
It should be noted that no processing of the user data is performed other
than that described above. Since the printer always reacts to escape
sequences and protocol characters (e.g. ENQ), the user should be careful
not to place these in the user buffer. |
Control Request Processing
The only control request processed by this device driver is control function
11B. This is used to either move the paper up (line spacing) or move the
paper to top-of-form, depending on the value of the optional parameter.
IPARM > O move the paper up IPARM lines
IPARM = O move the paper up one line
IPARM < 0 go to top-of-form
The maximum number of lines that can be spaced in one request is 63. Ifa
request is made to send more than 63 lines the value will be truncated
modulo 64, (i.e 66 will send 2 lines.)
All other control requests are passed directly to the interface driver for
processing. Refer to Chapter 2 for descriptions.
B-5/B-6
ACK - Acknowledge
ASCII
ASYNCHRONOUS TRANSMISSION
BAUD
BS
CONTROL CHARACTER
CR
DC1 - Device control
DC? - Device control
Appendix C
Glossary
A transmission control character transmitted by a
receiver as an affirmative response to the
sender's block mode information.
American Standard Code for Information
Interchange.
Transmission in which time intervals between
transmitted characters may be of unequal length.
Transmission is controlled by start and stop
elements at the beginning and end of each
character.
A unit of signaling speed equal to the number of
discrete conditions or signal events per second.
In asynchronous transmission, the unit of
signaling speed corresponding to one unit
interval per second; that is, if the duration of
the unit interval is 20 milliseconds, the
signaling speed is 50 baud. Baud is the same as
"bits per second" only if each signal event
represents exactly one bit.
Backspace, Control H.
In the ASCII code, any of the 32 characters in
the first two columns of the standard code table,
Carriage return, Control M.
A device control character which is primarily
intended for turning on or starting a peripheral
device, The host is receiving information,
Control Q.
A device control character which is primarily
intended for turning on or starting a peripheral
device, Control R.
C-1
DIRECT MEMORY ACCESS (DMA) A facility that permits I/O transfers directly
DUMB DEVICE
DUPLEX
ECHO
ENQ - Enquiry
EOT
HALF-DUPLEX
INPUT EDITING
INTERFACE
MODEM
PARITY CHECK
С-2
into or out of memory independent of the
processor,
Device that processes one unit of information at
a time, It does not contain its own local
processing capability. In a smart device this is
typically accomplished with a microprocessor.
Simultaneous two-way independent transmission in
both directions, Also referred to as
ful l-duplex.
A method of checking the accuracy of transmission
of data in which the received data are returned
to the sending end for comparison with the
original data.
A transmission control character used as a
request for a response, Control E.
End-of-Transmission, Control D.
A circuit designed for transmission in either
direction but not both directions simultaneously.
When enabled, the backspace and delete key are
enabled and will affect the user's buffer. When
disabled, the keys are not executed but are
placed in the user's buffer,
The multiplexer card making possible
interoperation between the terminal/device and
the CPU.
A device that modulates and demodulates signals
transmitted over communications circuits.
Addition of non-information bits to data, making
the number of ones in each grouping of bits
either always odd for odd parity or always even
for even parity. This permits single error
detection in each group.
PROTOCOL
TRANSMISSION LOG
VALID TERMINATOR
A formal set of conventions governing the format
and relative timing of message exchange between
two communicating processes.
Length of buffer contents to or from the MUX
card.
End of data transfer, end of record, for example
a carriage return.
C-3/C-4
$DVTB device driver address table, 4-13, 4-14
$DVTB SAM, 4-14
$DVTB sample code, 4-23
$DVTB table area I, 4-14
20XX screen mode device driver
DDVO5, 4-4, B-1
7310 line printer device driver
DDV12, 4-3, B-4
A
A-register interface
driver, 4-7
driver returns, 4-6
B
B Register
device driver, 4-10
interface driver returns, 4-7
return to interface driver, 4-10
Baud rate
generators, 2-22
generators port specification, 2-22
specification, 2-23
Binary data reads
device driver EQT extent, 4-7
Black box
compatibility, 5-3
driver considerations, 5-3
handshaking, 5-3
HP support, 5-3
Break key action, 2-27
Index
Index-1
INDEX
C
Case study
cursor position, 4-15
cursor tracking, 4-16
device driver writing example, 4-15
margin set up, 4-15
minor tasks, 4-16
task definition, 4-15
Channel transmission, 1-3
Clear extraneous commands
control 26B, 3-2
Common type-ahead modes, 3-4
Configure driver responses
break key action, 2-27
defining a device driver to this port, 2-28
example, 2-28
function code, 2-26
general description, 2-26
scheduling, 2-27
sending read configuration into the card, 2-28
specifying unique read request type, 2-28
type-ahead action, 2-27
type-ahead feature specification, 2-27
Continuation entry
device driver, 4-19
system abort request, 4-5
test, 4-19
Control request
configure driver responses, 2-26
device initialization, 2-14
disable schedule, 2-19
dynamic status, 2-14
enable scheduling, 2-18
file manager format, 2-12
flush input buffer, 2-21
function codes, 2-13
general format, 2-12
required parameters, 2-13
set port's ID, 2-22
set program address, 2-21
set read type, 2-30
set timeout, 2-20
Control request to the MUX, B-5
full type-ahead, 3-5
no type-ahead, 3-5
write request, B-5
Control word
general, 2-1
read request, 2-5
write request, 2-6
Тпаех-2
MULTIPLEXER
MULTIPLEXER
Control Function
11B line spacing, B-2
25B update terminal configuration, B-2
Cur sor
position, 4-15
position case study, 4-15
tracking, 4-16
tracking case study, 4-16
Data
overrun error, 3-8
overrun error read error, 3-8
transfers packing, 4-2
transfers parity, 4-2
DC1/DC2, 5-2
DC1/DC2 handshaking, 5-2
DDVO5 vs DVRO5 comparison, B-1
DDVO5
block line mode, B-1
block mode terminal device driver, 4-4
block page mode, B-1
block read, 4-4
character mode, 4-4, B-1
control request definition, B-2
data transfers, 5-2
DC1, DC2, 4-4
editing, 4-4
handshaking requirements, 5-2
1/0 requests, B-2
line spacing, B-2
read requests, B-3
special I/O considerations, B-3
status checking, 4-4
subchannel assignment, B-2
terminal driver, 5-2
update terminal configuration, B-2
user interface for 26XX terminals, B-1
write requests, B-3
carriage control, 4-3, B-4
changing device type, 4-3
control request processing, B-5
functional overview, B-14
limitations, 5-2
DDV12
line printer driver, 5-2
line spacing, B-5
normal print mode, B-4
paper advance, B-5
transparent
mode selection, B-5
print mode, B-4
write request processing, B-4
INDEX
Index-3
INDEX MULTIPLEXER
Device driver
20XX screen mode device driver, B-1
7310 line printer device driver, B-14
A-register, 4-6
adding device drivers, 4-13
address table $DVTB, 4-13
address table format, 4-14
address table general description, 4-13
address table valid device driver labels, 4-14
B Register, 4-6
base page locations, 4-6
case study, 4-15
changing device type, 4-3
character mode, 4-4
concept, 4-1
continuation entry, 4-19
correct status, 4-3
customizing, 4-1
DDVO5, 4-4
DDV12, 4-3
device address table, 4-13
device driver address table, 4-23
device driver writing example, 4-15
double buffering, 4-12
dynamic switching, 4-1
EQT, 4-3
EQT extent binary data reads, 4-7
EQT extent general description, 4-7
EQT extent pointers set up, 4-19
EQT word 1, 4-7
EQT word 10, 4-6, 4-13
EQT word 14, 4-6, 4-13
EQT word 15, 4-13
EQT word 2, 4-7
EQT word 3, 4-7
EQT word 4, 4-7
EQT word 5, 4-11
EQT word 7, 4-12
EQT word 8, 4-13
EQT word 9, 4-6, 4-13
EQT words 2-4, 4-6, 4-7
EQT words 4-10, 4-6
EQT words 6-8, 4-6
equipment type code, 4-11
exit commands, 4-8
final completion return to the interface driver, 4-23
1/0 considerations, 4-4
interface, 4-4
interface driver concept, 4-1
interface general definition, 4-4
location and size of device drivers, 4-14
modify EQT, 4-10
operation, 4-16
operation flow, 4-18
output a set up string to terminal, 4-20
perform the original user request, 4-22
Index-4
MULTIPLEXER INDEX
read cursor position, 4-22
Read/Write control request considerations, 4-4
request legality, 4-3
request types. 4-12
restrictions and requirements, 4-5
return routine, 4-21
sample listing, 4-24
sequence of actions, 4-16
set up device driver EQT extent pointer, 4-19
set up on first entry, 4-19
special sequences, 4-3
status definitions, 4-11
subchannel determination, 4-20
system abort request, 4-5
tasks, 4-3
transmission log, 4-3
unrecognized control request, 4-5
use, 4-1
user request, 4-3
user written device driver considerations, 4-4
valid labels, 4-14
writing example, 4-15
Device initialization
configure driver responses, 2-14
enable scheduling, 2-14, 2-18
set port ID, 2-14
Disable schedule
example, 2-20
general description, 2-19
DMA, 4-3
DMA interface driver, 4-3
Dumb device, 5-3
D VMOO
interface driver, 4-2
Dynamic status
character length of any TA data, 2-14
general, 2-14
port's status, 2-14
E
Enable scheduling
conditions, 2-18
example, 2-19
general description, 2-18
EQT
set up on first entry, 4-19
word 10 device driver, 4-13
word 10 length of secondary buffer, 4-13
word 14 device driver, 4-13
word 15 device driver, 4-13
word 4 subchannel, 4-10
Index-5
INDEX
word
word
word
word
word
word
word
word
word
word
word
equipment type code and status, 4-11
interface driver, 4-7
status definitions, 4-11
double buffering, 4-12
request types, 4-12
7, 4-12
7 device driver, 4-12
8, 4-13
8 device driver, 4-13
9 address of secondary buffer, 4-13
9 device driver, 4-13
Oy ON UT UT UN
EQT
modify, 4-10
set up on first entry, 4-19
word
word
word
word
word
1, 4-7
10, 4-6, 4-13
14, 4-6, 4-13
15, 4-13
MULTIPLEXER
word 2, 4-7
word 3, 4-7
word 4, 4-7
word 5, 4-11
word 7, 4-12
word 8, 4-13
word 9, 4-6, 4-13
words 2-4, 4-6, 4-7, 4-10, 4-6, 6-8, 4-6
Equipment type
code, 4-11
code EQT word 5, 4-11
Error checking
dynamic status, 3-7
failure analysis, 3-8
1/0 status, 3-7
1/0 status request returns, 3-9
Error recovery, 3-7
EXEC call
control word, 2-1
function code, 2-2
request codes, 2-1
from Assembly language, 2-7
from FORTRAN, 2-8
from PASCAL, 2-9
Exit commands
device driver, 4-8
error types, 4-8
new device driver request, 4-10
F
Failure analysis, 3-8
Final completion
return to the interface driver sample code, 4-23
Flush input buffer
example, 2-21
Index-6
MULTIPLEXER INDEX
flush active, 2-21
flush all input buffers on that port, 2-21
Full type-ahead
example, 3-5
general description, 3-5
program scheduling, 3-5
Function code
EXEC call, 2-2
H
Handshaking
DC1, DC2, 5-1
enable/disable port for ENQ/ACK, 2-23
ENQ/ACK, 5-1
terminal, 5-2
HP supplied
device driver 26XX screen mode device driver, B-1
device driver 7310 line printer device driver, B-4
drivers, 4-3
drivers DDVO5, 4—4
drivers DDV12, 4-3
Hung up terminals, B-2
I
1/0 request
echoing, 2-4
editing, 2-4
general, B-2
terminators, 2-4
1/0 status
example, 3-7
general, 3-7
parameters, 3-7
request returns, 3-9
status word 4, 3-7
Interface definitions
A-register, 1-6
B Register, 4-6
base page location, 4-6
device driver, 4-6
EQT word 10, 4-6
EQT word 14, 4-6
EQT word 9, 4-6
EQT words 2-4, 4-6
EQT words 4-10, 4-6
EQT words 6-8, 4-6
general description, 4-6
Interface driver, 3-3
A-register, 4-3
A-register return, 4-6
B Register, 4-3
B Register return, 4-7
Index-7
INDEX
concept. 4-1
concept device driver, 4-1
device address table, 4-13
device driver, 4-14
device driver EQT word 1 return, 4-7
device driver EQT word 2 return, 4-7
device driver EQT word 3 return, 4-7
device driver EQT word 4 return, 4-7
DMA, 4-3
DVMOO, 4-2
EQT word 5, 4-7
EXEC call handling, 4-3
exit command, 4-8
memory requirements, 4-14
program scheduling, 3-3
read function modifiers, 4-8
request timer return, 4-7
return to the interface driver, 4-6
RTE, 4-3
status for user, 4-7
system abort requests, 4-5
tasks general description, 4-2
tasks interface control, 4-2
tasks operating system interface, 4-3
transmission log, 4-3
use, 4-1
user request and continuation entries, 4-6
user transmission log return, 4-7
write function modifier bits, 4-8
write function modifiers, 4-8
L
Line printer
device carriage control, 4-3
driver, 5-2
driver DDV12, 5-2
M
Margin setup
case study, 4-15
Memory requirements
requirements interface driver, 4-14
Minor tasks
case study, 4-16
Modems, 1-4
limitations, 5-4
session environment, 5-4
support, 5-4
Modes normal mode, 3-1
Modes type-ahead, 3-1
Multiplexer interface responsibilities, 4-2
Index-8
MULTIPLEXER
MULTIPLEXER
N
No type-ahead mode
example, 3-5
general, 3-5
standard RTE mode, 3-5
Normal mode
general description, 3-1
О
Operation flow
device driver, 4-18
Output a set up string “o terminal
sample code, 4-21
Outstanding data, 2-21
Overflow
error, 3-7
error error recovery, 3-7
Parity
error, 3-7
error error recovery, 3-7
PASCAL, 2-9
PASCAL example, 2-9
PRMPT, 3-4
PRMPT program scheduling, 3-4
Program scheduling
B Register, 3-3
break key, 3-3
EQLU, 3-3
EQT word 4, 3-3
explanation, 3-3
normal break mode, 3-3
PRMPT, 3-4
programmatic setting, 3-3
R$PN$, 3-4
TRMLU, 3-3
R
R$PN$, 3-4
R$PN$ program scheduling, 3-4
Re-enable schedule
example, 2-20
INDEX
Index-9
INDEX
Read
cursor position device driver, 4-22
cursor position sample code, 4-23
errors, 3-8
function modifier interface driver, 4-8
function modifiers bit field definitions, 4-9
function modifiers read configurations, 4-9
request, 2-5
Request
timer interface driver, 4-7
types EQT word 6, 4-12
Return
routine, 4-21
routine device driver, 4-21
to interface driver A-register, 4-7
to interface driver B Register, 4-10
RTE interface driver, 4-3
SAM, 4-14
SAM $DVTB, 4-14
Selected EQT definitions
equipment type code and status, 4-11
subchannels, 4-10
Set port
ID baud rate, 2-22, 2-23
ID ENQ/ACK handshaking, 2-23
ID example, 2-24
ID function code, 2-22
ID general description, 2-22
ID number of bits/char, 2-22
ID port number, 2-24
ID stop bits, 2-22
Set program address
example, 2-21
general description, 2-21
scheduling an unsolicited interrupt, 2-21
Set read type
configure a read without executing a read request, 2-30
example, 2-30
general, 2-30
Set timeout
example, 2-20
general description, 2-20
Set device up
EQT extent pointers, 4-19
EQT extent pointers sample code, 4-19
Special considerations
binary transfers, В-3
character format, B-3
Index-10
MULTIPLEXER
MULTIPLEXER
escape and unit separator treatment, В-3
screen reads, B-3
zero length reads, B-3
Standard RTE mode
no type-ahead, 3-5
Status
definitions, 4-11
definitions EQT word 5, 4-11
for user interface driver, 4-7
word 4, 3-7
word 4 I/O status, 3-7
Subchannel determination
new request entry, 4-20
sample code, 4-20
System abort request
continuation entry, 4-5
EQT word 2, 4-5
EQT word 6, 4-5
general description, 4-5
System defined timeout
EQT word 14, 4-13
System or subsystem crashes, 4-5
T
Table area
area I $DVTB, 4-14
Task definitions
definition case study, 4-15
Terminal driver
driver DDVO5, 5-2
Throughput, 1-3
Timeout clock
clock EQT word 15, 4-13
Timeouts, 3-7
Timeouts error recovery, 3-7
Transmission log
log B Register, 4-10
Transparent mode selection, B-5
Type-ahead with flush on break mode
control function 27, 3-6
example, 3-6
general, 3-6
Type-ahead
control function 27, 3-6
cancel type-ahead data, 2-27
description, 3-1
enable, 2-27
example, 3-2
schedule, 2-27
INDEX
Index-11
INDEX
U
User transmission log
interface driver, 4-7
User written device driver considerations, 4-4
W
Write function modifier bits
bits read related fields, 4-9
Write modifier
interface driver, 4-8
Write request, 2-6
Write request processing
normal mode, B-5
transparent mode, B-5
Index-12
MULTIPLEXER
READER COMMENT SHEET
Update No.
(if Applicable)
We welcome your evaluation of this manual. Your comments and suggestions help us improve our publications.
Please use additional pages if necessary.
FROM:
Name
Company
Address
Phone No. Ext.
| | | | NO POSTAGE
NECESSARY
IF MAILED
IN THE
UNITED STATES
BUSINESS REPLY MAIL
FIRST CLASS PERMIT NO. 141 CUPERTINO, CA.
— POSTAGE WILL BE PAID BY —
Hewlett-Packard Company
Data Systems Division
11000 Wolfe Road
Cupertino, California 95014
ATTN: Technical Publications
Product Line Sales/ Support Key
Key Product Line
A Analytical
CM Components
C Computer Systems Sales only
CH Computer Systems Hardware Sales and Services
CS Computer Systems Software Sales and Services
E Electronic Instruments & Measurement Systems
M Medical Products
MP Medical Products Primary SRO
MS Medical Products Secondary SRO
P Personal Computation Products
Sales only for specific product line
Support only for specific product line
IMPORTANT: These symbols designate general product line capability. They do not
insure sales or support availability for all products within a line, at all locations.
Contact your local sales office for information regarding locations where HP support
is available for specific products.
HP distributors are printed in italics.
HEADQUARTERS OFFICES
If there is no sales office listed for your area, contact one of these
headquarters offices.
NORTH/CENTRAL AFRICA
Hewlett-Packard S.A.
7, Rue du Bois-du-Lan
CH-1217 MEYRIN 2, Switzerland
Tel: (022) 83 12 12
Telex: 27835 hpse
Cable: HEWPACKSA Geneve
ASIA
Hewlett-Packard Asia Lid.
6th Floor, Sun Hung Kai Centre
30 Harbour Rd.
G.P.O. Box 795
HONG KONG
Tel: 5-832 3211
After Jan. 1, 1984
47th Floor, China Resources Bidg.
26 Harbour Rd., Wanchai
HONG KONG
Telex: 66678 HEWPA HX
Cable: HEWPACK HONG KONG
CANADA
Hewlett-Packard (Canada) Ltd.
6877 Goreway Drive
MISSISSAUGA, Ontario L4V 1M8
Tel: (416) 678-9430
Telex: 610-492-4246
EASTERN EUROPE
Hewlett-Packard Ges.m.b.h.
Lieblgasse 1
P.O.Box 72
A-1222 VIENNA, Austria
Tel: (222) 2365110
Telex: 1 3 4425 HEPA A
NORTHERN EUROPE
Hewlett-Packard S.A.
Uilenstede 475
P.0.Box 999
NL-1180 AZ AMSTELVEEN
The Netherlands
Tel: 20 437771
SOUTH EAST EUROPE
Hewlett-Packard S.A.
7, Rue du Bois-du-Lan
CH-1217 MEYRIN 2, Switzerland
Tel: (022) 83 12 12
Telex: 27835 hpse
Cable: HEWPACKSA Geneve
OTHER EUROPE
Hewlett-Packard S.A.
Р.О. Вох
150, Rte du Nant-D’Avril
CH-1217 MEYRIN 2, Switzerland
Tel: (022) 83 8111
Telex: 22486 hpsa
Cable: HEWPACKSA Geneve
MEDITERRANEAN AND
MIDDLE EAST
Hewlett-Packard S.A.
Mediterranean and Middle East
Operations
Atrina Centre
32 Kifissias Ave.
Paradissos-Amarousion, ATHENS
Greece
Tel: 682 88 11
Telex: 21-6588 HPAT GR
Cable: HEWPACKSA Athens
EASTERN USA
Hewlett-Packard Co.
4 Choke Cherry Road
ROCKVILLE, MD 20850
Tel: (301) 258-2000
MIDWESTERN USA
Hewlett-Packard Co.
5201 Tollview Drive
ROLLING MEADOWS, IL 60008
Tel: (312) 255-9800
SOUTHERN USA
Hewlett-Packard Co.
2000 South Park Place
P.O. Box 105005
ATLANTA, GA 30348
Tel: (404) 955-1500
WESTERN USA
Hewlett-Packard Co.
3939 Lankershim Bivd.
Р.О. Вох 3919
LOS ANGELES, CA 91604
Tel: (213) 506-3700
OTHER INTERNATIONAL
AREAS
Hewlett-Packard Co.
Intercontinental Headquarters
3495 Deer Creek Road
PALO ALTO, CA 94304
Tel: (415) 857-1501
Telex: 034-8300
Cable: HEWPACK
SALES & SUPPORT OFFICES
Arranged alphabetically by country
ANGOLA
Telectra
Empresa Técnica de Equipamentos
R. Barbosa Rodrigues, 41-1 DT.
Caixa Postal 6487
LUANDA
Tel: 355 15,355 16
EP
ARGENTINA
Hewlett-Packard Argentina S.A.
Avenida Santa Fe 2035
Martinez 1640 BUENOS AIRES
Tel: 798-5735, 792-1293
Telex: 17595 BIONAR
Cable: HEWPACKARG
A,E,CH,CS,P
Biotron S.A.C.IM. e |.
Av Paseo Colon 221, Piso 9
1399 BUENOS AIRES
Tel: 30-4846, 30-1851
Telex: 17595 BIONAR
M
AUSTRALIA
Adelaide, South Australia
Office
Hewlett-Packard Australia Ltd.
153 Greenhill Road
PARKSIDE, S.A. 5063
Tel: 272-5911
Telex: 82536
Cable: HEWPARD Adelaide
A* CH,CM, EMSP
Brisbane, Queensland Office
Hewlett-Packard Australia Ltd.
10 Payne Road
THE GAP, Queensland 4061
Tel: 30-4133
Telex: 42133
Cable: HEWPARD Brisbane
A,CH,CM,E,M,P
Canberra, Australia
Capital Territory
Office
Hewlett-Packard Australia Ltd.
121 Wollongong Street
FYSHWICK, A.C.T. 2609
Tel: 80 4244
Telex: 62650
Cable: HEWPARD Canberra
CH,CM,E,P
Melbourne, Victoria Office
Hewlett-Packard Australia Ltd.
31-41 Joseph Street
BLACKBURN, Victoria 3130
Tel: 895-2895
Telex: 31-024
Cable: HEWPARD Melbourne
A,CH,CM,CS,E,MS,P
Perth, Western Australia
Office
Hewlett-Packard Australia Ltd.
261 Stirling Highway
CLAREMONT, W.A. 6010
Tel: 383-2188
Telex: 93859
Cable: HEWPARD Perth
A,CH,CM,E,MS,P
El
©
Sydney, New South Wales
Office
Hewlett-Packard Australia Ltd.
17-23 Talavera Road
P.O. Box 308
NORTH RYDE, N.S.W. 2113
Tel: 887-1611
Telex: 21561
Cable: HEWPARD Sydney
A,CH,CM,CS,E,MS,P
AUSTRIA
Hewlett-Packard Ges.m.b.h.
Grottenhofstrasse 94
A-8052 GRAZ
Tel: (0316) 291 5 66
Telex: 32375
CH,E
Hewlett-Packard Ges.m.b.h.
Lieblgasse 1
P.O. Box 72
A-1222 VIENNA
Tel: (0222) 23 65 11-0
Telex: 134425 HEPA A
A,CH,CM,CS,E,MS,P
BAHRAIN
Green Salon
Р.О. Вох 557
Мапата
BAHRAIN
Tel: 255503-255950
Telex: 84419
P
Wael Pharmacy
P.O. Box 648
BAHRAIN
Tel: 256123
Telex: 8550 WAEL BN
ECM
BELGIUM
Hewlett-Packard Belgium S.A./N.V.
Bivd de la Woluwe, 100
Woluwedal
B-1200 BRUSSELS
Tel: (02) 762-32-00
Telex: 23-494 paloben bru
A,CH,CM,CS,E,MP,P
BRAZIL
Hewlett-Packard do Brasil 1.e.C. Ltda.
Alameda Rio Negro, 750
Alphaville
06400 BARUERI SP
Tel: (011) 421.1311
Telex: (011) 33872 HPBR-BR
Cable: HEWPACK Sao Paulo
A,CH,CM,CS,E,M,P
Hewlett-Packard do Brasil l.e.C. Ltda.
Avenida Epitacio Pessoa, 4664
22471 RIO DE JANEIRO-RJ
Tel: (021) 286.0237
Telex: 021-21905 HPBR-BR
Cable: HEWPACK Rio de Janeiro
A,CH,CM,E,MS,P"
ANAMED |1.C.E.1. Ltda.
Rua Bage, 103
04012 SAO PAULO
Tel: (011) 570-5726
Telex: 02 1-21905 HPBR-BR
M
(3
SALES & SUPPORT OFFICES
Arranged alphabetically by country
CANADA
Alberta
Hewlett-Packard (Canada) Ltd.
3030 3rd Avenue N.E.
CALGARY, Alberta T2A 6T7
Tel: (403) 235-3100
A,CH,CM,E* MS,P*
Hewlett-Packard (Canada) Ltd.
11120A-178th Street
EDMONTON, Alberta T5S 1P2
Tel: (403) 486-6666
A,CH,CM,CS,E,MS,P
British Columbia
Hewlett-Packard (Canada) Ltd.
10691 Shellbridge Way —
RICHMOND,
British Columbia V6X 2W7
Tel: (604) 270-2277
Telex: 610-922-5059
A,CH,CM,CS,E* MS,P*
Manitoba
Hewlett-Packard (Canada) Ltd.
380-550 Century Street
WINNIPEG, Manitoba R3H 0Y1
Tel: (204) 786-6701
A,CH,CM,E,MS,P*
Nova Scotia
Hewlett-Packard (Canada) Ltd.
P.O. Box 931
900 Windmill Road
DARTMOUTH, Nova Scotia B2Y 376
Tel: (902) 469-7820
CH,CM,CS,E* MS,P*
Ontario
Hewlett-Packard (Canada) Ltd.
3325 N. Service Rd., Unit 6
BURLINGTON, Ontario P3A 2A3
Tel: (416) 335-8644
CS,M*
Hewlett-Packard (Canada) Ltd.
552 Newbold Street
LONDON, Ontario N6E 2S5
Tel: (519) 686-9181
A,CH,CME* MS,P*
Hewlett-Packard (Canada) Ltd.
6877 Goreway Drive
MISSISSAUGA, Ontario L4V 1M8
Tel: (416) 678-9430
A,CH,CM,CS,E,MP,P
Hewlett-Packard (Canada) Ltd.
2670 Queensview Dr.
OTTAWA, Ontario K2B 8K 1
Tel: (613) 820-6483
A,CH,CM,CS,E* MS,P*
Hewlett-Packard (Canada) Ltd.
220 Yorkland Blvd., Unit #11
WILLOWDALE, Ontario M2J 1R5
Tel: (416) 499-9333
CH
Quebec
Hewlett-Packard (Canada) Ltd.
17500 South Service Road
Trans-Canada Highway
KIRKLAND, Quebec H9J 2M5
Tel: (514) 697-4232
A,CH,CM,CS,E,MP,P*
Hewlett-Packard (Canada) Ltd.
Les Galeries du Vallon
2323 Du Versont Nord
STE. FOY, Quebec G1N 402
Tel: (418) 687-4570
CH
CHILE
Jorge Calcagni y Cia. Ltda.
Av. Italia 634 Santiago
Casilla 16475
SANTIAGO 9
Tel: 222-0222
Telex: Public Booth 440001
A, CM,E,M
Olympia (Chile) Ltda.
Av. Rodrigo de Araya 1045
Casilla 256-V
SANTIAGO 21
Tel: (02) 22 55 044
Telex: 240-565 OL YMP CL
Cable: Olympiachile Santiagochile
CH,CS,P
CHINA, People’s Republic of
China Hewlett-Packard Rep. Office
P.O. Box 418
1A Lane 2, Luchang St.
Beiwei Rd., Xuanwu District
BEIJING
Tel: 33-1947, 33-7426
Telex: 22601 CTSHP CN
Cable: 1920
A,CH,CM,CS,E,P
COLOMBIA
Instrumentación
H. A. Langebaek & Kier S.A.
Carrera 4A No. 52A-26
Apartado Aereo 6287
BOGOTA 1, D.E.
Tel: 212-1466
Telex: 44400 INST CO
Cable: AARIS Bogota
CM, E,M
Casa Humboldt Ltda.
Carrera 14, No. 98-60
Apartado Aereo 51283
BOGOTA 1, D.E.
Tel: 256-1686
Telex: 45403 CCAL CO.
A
COSTA RICA
Cientifica Costarricense S.A.
Avenida 2, Calle 5
San Pedro de Montes de Oca
Apartado 10159
SAN JOSE
Tel: 24-38-20, 24-08-19
Telex: 2367 GALGUR CR
CM,E,M
CYPRUS
Telerexa Ltd.
P.0. Box 4809
14C Stassinos Avenue
NICOSIA
Tel. 62698
Telex: 2894 LEVIDO CY
EMP
DENMARK
Hewlett-Packard A/S
Datavej 52
DK-3460 BIRKEROD
Tel: (02) 81-66-40
Telex: 37409 hpas dk
A,CH,CM,CS,E,MS,P
Hewlett-Packard A/S
Rolighedsvej 32
DK-8240 RISSKOV, Aarhus
Tel: (06) 17-60-00
Telex: 37409 hpas dk
CH,E
DOMINICAN REPUBLIC
Microprog S.A.
Juan Tomás Mejía y Cotes No. 60
Arroyo Hondo
SANTO DOMINGO
Tel: 565-6268
Telex: 4510 ARENTA DR (RCA) P
ECUADOR
CYEDE Cia. Ltda.
Avenida Eloy Alfaro 1749
Casilla 6423 CCI
QUITO
Tel: 450-975, 243-052
Telex: 2548 CYEDE ED
CME,P
Hospitalar S.A.
Robles 625
Casilla 3590
QUITO
Tel: 545-250, 545-122
Telex: 2485 HOSPTL ED
Cable: HOSPITALAR-Quito
M
EGYPT
International Engineering Associates
24 Hussein Hegazi Street
Kasr-el-Aini
CAIRO
Tel: 23829, 21641
Telex: IEA UN 93830
CH,CS,E,M
EGYPOR
P.0.Box 2558
42 El Zahraa Street
CAIRO, Egypt
Tel: 65 00 21
Telex: 93 337
P
EL SALVADOR
IPESA de El Salvador S.A.
29 Avenida Norte 1216
SAN SALVADOR
Tel: 26-6858, 26-6868
Telex: 20539 IPESASAL
A,CH,CM,CS,E,P
FINLAND
Hewlett-Packard Oy
Revontulentie 7
PL 24
SF-02101 ESPOO 10
Tel: (90) 4550211
Telex: 121563 hewpa sf
CH,CM,CS,P
Hewlett-Packard Oy
(Olarinluoma 7)
PL 24
02101 ESPOO 10
Tel: (90) 4521022
A,E,MS
Hewlett-Packard Oy
Aatoksenkatv 10-C
SF-40720-72 JYVASKYLA
Tel: (941) 216318
CH
Hewlett-Packard Oy
Kainvuntie 1-C
SF-90140-14 OULU
Tel: (981) 338785
CH
FRANCE
Hewlett-Packard France
Z.|. Mercure B
Rue Berthelot
F-13763 Les Milles Cedex
AIX-EN-PROVENCE
Tel: 16 (42) 59-41-02
Telex: 410770F
A,CH,E,MS,P*
Hewlett-Packard France
64, rue Marchand Saillant
F-61000 ALENCON
Tel: 16 (33) 29 04 42
Hewlett-Packard France
Boite Postale 503
F-25026 BESANCON
28 rue de la Republique
F-25000 BESANCON
Tel: 16 (81) 83-16-22
CHM
Hewlett-Packard France
13, Place Napoleon Ill
F-29000 BREST
Tel: 16 (98) 03-38-35
Hewlett-Packard France
Chemin des Mouilles
Boite Postale 162
F-69130 ECULLY Cedex (Lyon)
Tel: 16 (78) 833-81-25
Telex: 310617F
A,CH,CS,E,MP
Hewlett-Packard France
Tour Lorraine
Boulevard de France
F-91035 EVRY Cedex
Tel: 16 6 077-96-60
Telex: 6923 15F
E
Hewlett-Packard France
Parc d’Activite du Bois Briard
Ave. du Lac
F-91040 EVRY Cedex
Tel: 16 6 077-8383
Telex: 692315F
E
Hewlett-Packard France
5, avenue Raymond Chanas
F-38320 EYBENS (Grenoble)
Tel: 16 (76) 25-81-41
Telex: 980124 HP GRENOB EYBE
CH
Hewlett-Packard France
Centre d'Affaire Paris-Nord
Bâtiment Ampère 5 étage
Rue de la Commune de Paris
Boite Postale 300
F-93153 LE BLANC MESNIL
Tel: 16 (1) 865-44-52
Telex: 211032F
CH,CS,E MS
Hewlett-Packard France
Parc d'Activités Cadera
Quartier Jean Mermoz
Avenue du Président JF Kennedy
F-33700 MERIGNAC (Bordeaux)
Tel: 16 (56) 34-00-84
Telex: 550105F
CH,E,MS
Hewlett-Packard France
Immueble “Les 3 B”
Nouveau Chemin de la Garde
ZAC de Bois Briand
F-44085 NANTES Cedex
Tel: 16 (40) 50-32-22
CH * *
FRANCE (Cont’d)
Hewlett-Packard France
125, rue du Faubourg Bannier
F-45000 ORLEANS
Tel: 16 (38) 68 01 63
Hewlett-Packard France
Zone Industrielle de Courtaboeuf
Avenue des Tropiques
F-91947 Les Ulis Cedex ORSAY
Tel: (6) 907-78-25
Telex: 600048F
A,CH,CM,CS,E,MP,P
Hewlett-Packard France
Paris Porte-Maillot
15, Avenue de L'Amiral Bruix
F-75782 PARIS CEDEX 16
Tel: 16 (1) 502-12-20
Telex: 613663F
CH,MS,P
Hewlett-Packard France
124, Boulevard Tourasse
F-64000 PAU
Tel: 16 (59) 80 38 02
Hewlett-Packard France
2 Allée de la Bourgonnette
F-35100 RENNES
Tel: 16 (99) 51-42-44
Telex: 740912F
CH,CM,E,MS,P*
Hewiett-Packard France
98 Avenue de Bretagne
F-76100 ROUEN
Tel: 16 (35) 63-57-66
CH** CS
Hewlett-Packard France
4 Rue Thomas Mann
Boite Postale 56
F-67033 STRASBOURG Cedex
Tel: 16 (88) 28-56-46
Telex: 89014 1F
CHE MSP"
Hewlett-Packard France
Le Péripole
20, Chemin du Pigeonnier de la
Cépiere
F-31083 TOULOUSE Cedex
Tel: 16 (61) 40-11-12
Telex: 531639F
A,CH,CS,E,P*
Hewlett-Packard France
9, rue Baudin
F-26000 VALENCE
Tel: 16 (75) 42 76 16
Hewlett-Packard France
Carolor
ZAC de Bois Briand
F-57640 VIGY (Metz)
Tel: 16 (8) 771 20 22
CH
Hewlett-Packard France
Immeuble Péricentre
F-59658 VILLENEUVE D'ASCQ Cedex
Tel: 16 (20) 91-41-25
Telex: 160124F
CH,E,MS,P*
GERMAN FEDERAL
REPUBLIC
Hewlett-Packard GmbH
Gescháftsstelle
Keithstrasse 2-4
D-1000 BERLIN 30
Tel: (030) 24-90-86
Telex: 018 3405 hpbin d
A,CH,E, MP
Hewlett-Packard GmbH
Geschäftsstelle
Herrenberger Strasse 130
D-7030 BOBLINGEN
Tel: (7031) 14-0
Telex:
A,CH,CM,CS,E,MP,P
Hewlett-Packard GmbH
Gescháftsstelle
Emanuel-Leutze-Strasse 1
D-4000 DUSSELDORF
Tel: (0211) 597 1-1
Telex: 085/86 533 hpdd d
A,CH,CS,E,MS,P
Hewlett-Packard GmbH
Geschäftsstelle
Schleefstr. 28a
D-4600 DORTMUND-Aplerbeck
Tel: (0231) 45001
Hewlett-Packard GmbH
Vertriebszentrale Frankfurt
Berner Strasse 117
Postfach 560 140
D-6000 FRANKFURT 56
Tel: (0611) 50-04-1
Telex: 04 13249 hpffm d
A,CH,CM,CS,E,MP,P
Hewlett-Packard GmbH
Geschäftsstelle
Aussenstelle Bad Homburg
Louisenstrasse 115
D-6380 BAD HOMBURG
Tel: (06172) 109-0
Hewlett-Packard GmbH
Geschäftsstelle
Kapstadtring 5
D-2000 HAMBURG 60
Tel: (040) 63804-1
Telex: 021 63 032 hphh d
A,CH,CS,E,MS,P
Hewlett-Packard GmbH
Geschäftsstelle
Heidering 37-39
D-3000 HANNOVER 61
Tel: (0511) 5706-0
Telex: 092 3259
A,CH,CM,E,MS,P
Hewlett-Packard GmbH
Geschäftsstelle
Rosslauer Weg 2-4
D-6800 MANNHEIM
Tel: (0621) 70050
Telex: 0462105
A,C,E
Hewlett-Packard GmbH
Geschäftsstelle
Messerschmittstrasse 7
D-7910 NEU ULM
Tel: 0731-70241
Telex: 0712816 HP ULM-D
ACE"
Hewlett-Packard GmbH
Geschäftsstelle
Ehhericherstr. 13
D-8500 NURNBERG 10
Tel: (0911) 5205-0
Telex: 0623 860
CH,CM,E,MS,P
Hewlett-Packard GmbH
Geschäftsstelle
Eschenstrasse 5
D-8028 TAUFKIRCHEN
Tel: (089) 6117-1
Telex: 0524985
A,CH,CM,E,MS,P
SALES & SUPPORT OFFICES
Arranged alphabetically by country 0)
GREAT BRITAIN
See United Kingdom
GREECE
Kostas Karaynnis S.A.
8 Omirou Street
ATHENS 133
Tel: 32 30 303, 32 37 371
Telex: 215962 RKAR GR
A,CH,CM,CS,E.MP
PLAISIO S.A.
G. Gerardos
24 Stournara Street
ATHENS
Tel: 36- 11-160
Telex: 221871
P
GUATEMALA
IPESA
Avenida Reforma 3-48, Zona 9
GUATEMALA CITY
Tel: 316627, 314786
Telex: 4192 TELTRO GU
A,CH,CM,CS EMP
HONG KONG
Hewlett-Packard Hong Kong, Ltd.
G.P.O. Box 795
Sth Floor, Sun Hung Kai Centre
30 Harbour Road
HONG KONG
Tel: 5-8323211
Telex: 66678 HEWPA HX
Cable: HEWPACK HONG KONG
E,CH,CS,P
CET Ltd.
1402 Tung Wah Mansion
199-203 Hennessy Rd.
Wanchia, HONG KONG
Tel: 5-729376
Telex: 85148 CET HX
CM
Schmidt E Co. (Hong Kong) Ltd.
Wing On Centre, 28th Floor
Connaught Road, C.
HONG KONG
Tel: 5-455644
Telex: 74766 SCHMX HX
AM
ICELAND
Elding Trading Company Inc.
Hafnarnvoli- Tryggvagotu
Р.О. Вох 895
IS-REYKJAVIK
Tel: 1-58-20, 1-63-03
M
INDIA
Computer products are sold through
Blue Star Ltd. All computer repairs and
maintenance service is done through
Computer Maintenance Corp.
Blue Star Ltd.
Sabri Complex II Floor
24 Residency Rd.
BANGALORE 560 025
Tel: 55660
Telex: 0845-430
Cable: BLUESTAR
A,CH*,CM,CS*,E
Blue Star Ltd.
Band Box House
Prabhadevi
BOMBAY 400 025
Tel: 422-3101
Telex: 011-3751
Cable: BLUESTAR
AM
Blue Star Ltd.
Sahas
4 14/2 Vir Savarkar Marg
Prabhadevi
BOMBAY 400 025
Tel: 422-6155
Telex: 011-4093
Cable: FROSTBLUE
A,CH",CM,CS *,E,M
Blue Star Ltd.
Kalyan, 19 Vishwas Colony
Alkapuri, BORODA, 390 005
Tel: 65235
Cable: BLUE STAR
A
Blue Star Ltd.
7 Hare Street
CALCUTTA 700 001
Tel: 12-01-31
Telex: 021-7655
Cable: BLUESTAR
AM
Blue Star Ltd.
133 Kodambakkam High Road
MADRAS 600 034
Tel: 82057
Telex: 041-379
Cable: BLUESTAR
AM
Blue Star Ltd.
Bhandari House, 7th/8th Floors
91 Nehru Place
NEW DELHI 110 024
Tel: 682547
Telex: 031-2463
Cable: BLUESTAR
A,CH*,CM,CS* EM
Blue Star Ltd.
15/16:C Wellesley Rd.
PUNE 411011
Tel: 22775
Cable: BLUE STAR
A
Blue Star Ltd.
2-2-47/1108 Bolarum Rd.
SECUNDERABAD 500 003
Tel. 72057
Telex: 0155-459
Cable: BLUEFROST
AE
Blue Star Ltd.
T.C. 7/603 Poornima
Maruthankuzhi
TRIVANDRUM 695 013
Tel: 65799
Telex: 0884-259
Cable: BLUESTAR
E
Computer Maintenance Corporation
Ltd.
115, Sarojini Devi Road
SECUNDERABAD 500 003
Tel: 310-184, 345-774
Telex: 031-2960
CH**
El
©
SALES & SUPPORT OFFICES
Arranged alphabetically by country
INDONESIA
BERCA Indonesia P.T.
P.0.Box 496/Jkt.
J. Abdul Muis 62
JAKARTA
Tel: 21-373009
Telex: 46748 BERSAL IA
Cable: BERSAL JAKARTA
P
BERCA Indonesia P.T.
P.0.Box 2497/Jkt
Antara Blag., 17th Floor
JI. Medan Merdeka Selatan 17
JAKARTA-PUSAT
Tel: 21-344-181
Telex: BERSAL IA
ACS EM
BERCA Indonesia P.T.
P.O. Box 174/SBY.
JI. Kutei No. 11
SURABAYA
Tel: 68172
Telex: 31146 BERSAL SB
Cable: BERSAL-SURABAYA
A" EMP
IRAQ
Hewlett-Packard Trading S.A.
Service Operation
Al Mansoor City 9B/3/7
BAGHDAD
Те!: 551-49-73
Telex: 212-455 HEPAIRAQ IK
CH,CS
IRELAND
Hewlett-Packard Ireland Ltd.
82/83 Lower Leeson Street
DUBLIN 2
Tel: 0001 608800
Telex: 30439
A,CH,CM,CS,E,M,P
Cardiac Services Ltd.
Kilmore Road
Artane
DUBLIN 5
Tel: (01) 351820
Telex: 30439
M
ISRAEL
Eldan Electronic Instrument Ltd.
P.O.Box 1270
JERUSALEM 91000
16, Ohaliav St.
JERUSALEM 94467
Tel: 533 221, 553 242
Telex: 25231 AB/PAKRD IL
A
Electronics Engineering Division
Motorola Israel Ltd.
16 Kremenetski Street
P.O. Box 25016
TEL-AVIV 67899
Tel: 3 88 388
Telex: 33569 Motil IL
Cable: BASTEL Tel-Aviv
CH,CM,CS,E, MP
ITALY
Hewlett-Packard Italiana S.p.A
Traversa 99C
Via Giulio Petroni, 19
1-70124 BARI
Tel: (080) 41-07-44
M
Hewlett-Packard italiana S.p.A.
Via Martin Luther King, 38/11
1-40132 BOLOGNA
Tel: (051) 402394
Telex: 511630
CH,E,MS
Hewlett-Packard italiana S.p.A.
Via Principe Nicola 43G/C
1-95126 CATANIA
Tel: (095) 37-10-87
Telex: 970291
CP
Hewlett-Packard Italiana S.p.A.
Via G. Di Vittorio 9
1-20063 CERNUSCO SUL NAVIGLIO
(Milano)
Tel: (02) 923691
Telex: 334632
A,CH,CM,CS,E,MP,P
Hewlett-Packard Italiana S.p.A.
Via C. Colombo 49
|-20090 TREZZANO SUL NAVIGLIO
(Milano)
Tel: (02) 445904 1
Telex: 322116
CM
Hewlett-Packard Italiana S.p.A.
Via Nuova San Rocco a
Capodimonte, 62/A
1-80131 NAPOLI
Tel: (081) 7413544
Telex: 710698
A,CH,E
Hewlett-Packard Italiana S.p.A.
Viale G. Modugno 33
1-16156 GENOVA PEGLI
Tel: (010) 68-37-07
Telex: 215238
E,C
Hewlett-Packard Italiana S.p.A.
Via Pelizzo 15
I-35128 PADOVA
Tel: (049) 664888
Telex: 430315
A,CH,E,MS
Hewlett-Packard Italiana S.p.A.
Viale C. Pavese 340
1-00144 ROMA EUR
Tel: (06) 54831
Telex: 610514
A,CH,CM,CS,E,MS,P*
Hewlett-Packard Italiana S.p.A.
Via di Casellina 57/C
|-50018 SCANDICCI-FIRENZE
Tel: (055) 753863
Hewlett-Packard Italiana S.p.A.
Corso Svizzera, 185
1-10144 TORINO
Tel: (011) 74 4044
Telex: 221079
CH,E
JAPAN
Yokogawa-Hewlett-Packard Ltd.
152-1, Onna
ATSUGI, Kanagawa, 243
Tel: (0462) 28-0451
CM,C*E
Yokogawa-Helwett-Packard Ltd.
Meiji-Seimei Bldg. 6F
3-1 Hon Chiba-Cho
CHIBA, 280
Tel: 472 25 7701
E,CH,CS
Yokogawa-Hewlett-Packard Ltd.
Yasuda-Seimei Hiroshima Bldg.
6-11, Hon-dori, Naka-ku
HIROSHIMA, 730
Tel: 82-24 1-0611
Yokogawa-Hewlett-Packard Ltd.
Towa Building
2-3, Kaigan-dori, 2 Chome Chuo-ku
KOBE, 650
Tel: (078) 392-4791
Yokogawa-Hewlett-Packard Ltd.
Kumagaya Asahi 82 Bidg
3-4 Tsukuba
KUMAGAYA, Saitama 360
Tel: (0485) 24-6563
CH,CM,E
Yokogawa-Hewlett-Packard Ltd.
Asahi Shinbun Daiichi Seimei Bldg.
4-7, Hanabata-cho
KUMAMOTO,860
Tel: (0963) 54-7311
CH,E
Yokogawa-Hewlett-Packard Ltd.
Shin-Kyoto Center Bidg.
614, Higashi-Shiokoji-cho
Karasuma-Nishiiru
Shiokoji-dori, Shimogyo-ku
KYOTO, 600
Tel: 075-343-0921
CH,E
Yokogawa-Hewlett-Packard Ltd.
Mito Mitsui Bldg
4-73, Sanno-maru, 1 Chome
MITO, Ibaraki 310
Tel: (0292) 25-7470
CH,CM,E
Yokogawa-Hewlett-Packard Ltd.
Sumitomo Seimei 14-9 Bldg.
Meieki-Minami, 2 Chome
Nakamura-ku
NAGOYA, 450
Tel: (052) 571-5171
CH,CM,CS,E,MS
Yokogawa-Hewlett-Packard Ltd.
Chuo Bldg.,
4-20 Nishinakajima, 5 Chome
Yodogawa-ku
OSAKA, 532
Tel: (06) 304-6021
Telex: YHPOSA 523-3624
A,CH,CM,CS,E,MP,P*
Yokogawa-Hewlett-Packard Ltd.
27-15, Yabe, 1 Chome
SAGAMIHARA Kanagawa, 229
Tel: 0427 59-1311
Yokogawa-Hewlett-Packard Ltd.
Daiichi Seimei Bldg.
7-1, Nishi Shinjuku, 2 Chome
Shinjuku-ku, TOKYO 160
Tel: 03-348-4611
CHE
Yokogawa-Hewlett-Packard Ltd.
29-21 Takaido-Higashi, 3 Chome
Suginami-ku TOKYO 168
Tel: (03) 331-611
Telex: 232-2024 YHPTOK
A,CH,CM,CS,E,MP,P*
Yokogawa-Hewlett-Packard Ltd.
Daiichi Asano Building
2-8, Odori, 5 Chome
UTSUNOMIYA, Tochigi 320
Tel: (0286) 25-7 155
CH,CS,E
Yokogawa-Hewlett-Packard Ltd.
Yasuda Seimei Nishiguchi Bldg.
30-4 Tsuruya-cho, 3 Chome
YOKOHAMA 221
Tel: (045) 312-1252
CH,CM,E
JORDAN
Mouasher Cousins Company
Р.О. Box 1387
AMMAN
Tel: 24907, 39907
Telex: 21456 SABCO JO
CHEMP
KENYA
ADCOM Ltd., Inc., Kenya
P.0.Box 30070
NAIROBI
Tel: 331955
Telex: 22639
EM
KOREA
Samsung Electronics HP Division
12 Fl. Kinam Bldg.
San 75-31, Yeoksam-Dong
Kangnam-Ku
Yeongdong P.O. Box 72
SEOUL
Tel: 555-7555, 555-5447
Telex: K27364 SAMSAN
A,CH,CM,CS,E,M,P
KUWAIT
Al-Khaldiya Trading & Contracting
P.0. Box 830 Safat
KUWAIT
Tel: 42-4910, 41-1726
Telex: 22481 Areeg kt
CHEM
Photo & Cine Equipment
P.0. Box 270 Safat
KUWAIT
Tel: 42-2846, 42-3801
Telex: 22247 Matin kt
P
LEBANON
G.M. Dolmadjian
Achratieh
P.O. Box 165.167
BEIRUT
Tel: 290293
MP" *
Computer Information Systems
P.O. Box 11-6274
BEIRUT
Tel: 89 40 73
Telex: 22259
С
LUXEMBOURG
Hewlett-Packard Belgium S.A./N.V.
Bivd de la Woluwe, 100
Woluwedal
B-1200 BRUSSELS
Tel: (02) 762-32-00
Telex: 23-494 paloben bru
A,CH,CM,CS,E,MP,P
MALAYSIA
Hewlett-Packard Sales (Malaysia)
Sdn. Bhd.
1st Floor, Bangunan British
American
Jalan Semantan, Damansara Heights
KUALA LUMPUR 23-03
Tel: 943022
Telex: MA31011
A,CH,E,M,P*
MAYLAYSIA (Cont'd)
Protel Engineering
P.0.Box 1917
Lot 6624, Section 64
23/4 Pending Road
Kuching, SARAWAK
Tel: 36299
Telex: MA 70904 PROMAL
Cable: PROTELENG
AEM
MALTA
Philip Toledo Lid.
Notabile Rd.
MRIEHEL
Tel: 447 47, 455 66
Telex: Media MW 649
EP
MEXICO
Hewlett-Packard Mexicana, S.A.
de C.V.
Av. Periferico Sur No. 6501
Tepepan, Xochimilco
16020 MEXICO D.F.
Tel: 6-76-46-00
Telex: 17-74-507 HEWPACK MEX
A,CH,CS,E,MS,P
Hewlett-Packard Mexicana, S.A.
de C.V.
Ave. Colonia del Valle 409
Col. del Valle
Municipio de Garza Garcia
MONTERREY, Nuevo Leon
Tel: 78 42 41
Telex: 038 410
CH
ECISA
José Vasconcelos No. 218
Col. Condesa Deleg. Cuauhtémoc
MEXICO D.F. 06140
Tel: 553-1206
Telex: 17-72755 ECE ME
M
MOROCCO
Dolbeau
81 rue Karatchi
CASABLANCA
Tel: 304 1-82, 3068-38
Telex: 23051, 22822
E
Gerep
2 rue d'Agadir
Boite Postale 156
CASABLANCA
Tel: 272093, 272095
Telex: 23 739
P
NETHERLANDS
Hewlett-Packard Nederland B.V.
Van Heuven Goedhartlaan 121
NL 1181KK AMSTELVEEN
P.O. Box 667
NL1180 AR AMSTELVEEN
Tel: (020) 47-20-21
Telex: 13 216 HEPA NL
A,CH,CM,CS,E,MP,P
Hewlett-Packard Nederland B.V.
Bongerd 2
NL 2906VK CAPELLE A/D IJSSEL
P.O. Box 41
NL 2900AA CAPELLE A/D IUSSEL
Tel: (10) 51-64-44
Telex: 21261 HEPAC NL
A,CH,CS,E
Hewlett-Packard Nederland B.V.
Pastoor Petersstraat 134-136
NL 5612 LV EINDHOVEN
Р.О. Вох 2342
NL 5600 CH EINDHOVEN
Tel: (040) 326911
Telex: 51484 hepae nl
A,CH** EM
NEW ZEALAND
Hewlett-Packard (N.Z.) Ltd.
5 Owens Road
Р.О. Вох 26-189
Epsom, AUCKLAND
Tel: 687-159
Cable: HEWPACK Auckland
CH,CM,E,P*
Hewlett-Packard (N.Z.) Ltd.
4-12 Cruickshank Street
Kilbirnie, WELLINGTON 3
Р.О. Вох 9443
Courtenay Place, WELLINGTON 3
Tel: 877-199
Cable: HEWPACK Wellington
CH,CM,E,P
Northrop Instruments & Systems Ltd.
369 Khyber Pass Road
P.O. Box 8602
AUCKLAND
Tel: 794-091
Telex: 60605
AM
Northrop Instruments & Systems Lid.
110 Mandeville St.
P.O. Box 8388
CHRISTCHURCH
Tel: 486-928
Telex: 4203
AM
Northrop Instruments & Systems Ltd.
Sturdee House
85-87 Ghuznee Street
P.O. Box 2406
WELLINGTON
Tel: 850-091
Telex: NZ 3380
AM
NORTHERN IRELAND
See United Kingdom
NORWAY
Hewlett-Packard Norge A/S
Folke Bernadottes vei 50
P.O. Box 3558
N-5033 FYLLINGSDALEN (Bergen)
Tel: 0047/5/16 55 40
Telex: 16621 hpnas n
CH,CS,E,MS
Hewlett-Packard Norge A/S
Osterndalen 16-18
P.O. Box 34
N-1345 OSTERÁS
Tel: 0047/2/17 11 80
Telex: 16621 hpnas n
A,CH,CM,CS,E,M,P
OMAN
Khimjil Ramdas
P.O. Box 19
MUSCAT
Tel: 722225, 745601
Telex: 3289 BROKER MB MUSCAT
P
Suhail & Saud Bahwan
P.0.Box 169
MUSCAT
Tel: 734 201-3
Telex: 3274 BAHWAN MB
SALES & SUPPORT OFFICES
Arranged alphabetically by country E
PAKISTAN
Mushko & Company Ltd.
1-B, Street 43
Sector F-8/1
ISLAMABAD
Tel: 51071
Cable: FEMUS Rawalpindi
AEM
Mushko & Company Ltd.
Oosman Chambers
Abdullah Haroon Road
KARACHI 0302
Tel: 524131, 524132
Telex: 2894 MUSKO PK
Cable: COOPERATOR Karachi
AEMP"
PANAMA
Electrénico Balboa, S.A.
Calle Samuel Lewis, Ed. Alfa
Apartado 4929
PANAMA 5
Tel: 63-6613, 63-6748
Telex: 3483 ELECTRON PG
A,CM,E,M,P
PERU
Cía Electro Médica S.A.
Los Flamencos 145, San Isidro
Casilla 1030
LIMA |
Tel: 41-4325, 41-3703
Telex: Pub. Booth 25306
CMEMP
PHILIPPINES
The Online Advanced Systems
Corporation
Rico House, Amorsolo Cor. Herrera
Street
Legaspi Village, Makati
P.O. Box 1510
Metro MANILA
Tel: 85-35-81, 85-34-91, 85-32-21
Telex: 3274 ONLINE
A,CH,CS,E,M
Electronic Specialists and Proponents
Inc.
690-B Epifanio de los Santos Avenue
Cubao, QUEZON CITY
P.O. Box 2649 Manila
Tel: 98-96-81, 98-96-82, 98-96-83
Telex: 40018, 42000 ITT GLOBE
MACKAY BOOTH
P
PORTUGAL
Mundinter
Intercambio Mundial de Comércio
SARL.
P.O. Box 2761
Av. Antonio Augusto de Aguiar 138
P-LISBON
Tel: (19) 53-21-31, 53-21-37
Telex: 16691 munter p
M
Soquimica
Av. da Liberdade, 220-2
1298 LISBOA Codex
Tel: 56 21 81/2/3
Telex: 13316 SABASA
Р
Telectra-Empresa Técnica de
Equipmentos Eléctricos S.A.R.L.
Rua Rodrigo da Fonseca 103
P.O. Box 2531
P-LISBON 1
Tel: (19) 68-60-72
Telex: 12598
CH,CS,E,P
PUERTO RICO
Hewlett-Packard Puerto Rico
Ave. Muñoz Rivera 4101
Esq. Calle Ochoa
HATO REY, Puerto Rico 00918
Tel: (809) 754-7800
Hewlett-Packard Puerto Rico
Calle 272 Edificio 203
Urb. Country Club
RIO PIEDRAS, Puerto Rico
Р.О. Вох 4407
CAROLINA, Puerto Rico 00628
Tel: (809) 762-7255
A,CH,CS
QATAR
Computearbia
P.O. Box 2750
DOHA
Tel: 883555
Telex: 4806 CHPARB
P
Eastern Technical Services
P.0.Box 4747
DOHA
Tel: 329 993
Telex: 4156 EASTEC DH
Nasser Trading é Contracting
P.0.Box 1563
DOHA
Tel: 22170, 23539
Telex: 4439 NASSER DH
M
SAUDI ARABIA
Modern Electronic Establishment
Hewlett-Packard Division
Р.О. Вох 22015
Thuobah
AL-KHOBAR
Tel: 895-1760, 895-1764
Telex: 671 106 HPMEEK SJ
Cable: ELECTA AL-KHOBAR
CH CS,E,M
Modern Electronic Establishment
Hewlett-Packard Division
P.0. Box 1228
Redec Plaza, 6th Floor
JEDDAH
Tel: 644 38 48
Telex: 4027 12 FARNAS SJ
Cable: ELECTA JEDDAH
CH CS,E,M
Modern Electronic Establishment
Hewlett-Packard Division
P.0.Box 22015
RIYADH
Tel: 491-97 15, 491-63 87
Telex: 202049 MEERYD SJ
CH CS,E,M
Abdul Ghani El Ajou
P.0. Box 78
RIYADH
Tel: 40 41 717
Telex: 200 932 EL AJOU
P
SCOTLAND
See United Kingdom
SINGAPORE
Hewlett-Packard Singapore (Sales)
Pte. Ltd.
#08-00 Inchcape House
450-2 Alexandra Road
P.O. Box 58 Alexandra Rd. Post Office
SINGAPORE, 9115
Tel: 631788
Telex: HPSGSO RS 34209
Cable: HEWPACK, Singapore
A,CH,CS,E,MS,P
Le
9
SALES 8: SUPPORT OFFICES
Arranged alphabetically by country
SINGAPORE (Cont'd)
Dynamar International Ltd.
Unit 05-11 Block 6
Kolam Ayer Industrial Estate
SINGAPORE 1334
Tel: 747-6188
Telex: RS 26283
CM
SOUTH AFRICA
Hewlett-Packard So Africa (Pty.) Ltd.
P.O. Box 120
Howard Place CAPE PROVINCE 7450
Pine Park Center, Forest Drive,
Pinelands
CAPE PROVINCE 7405
Tel: 53-7954
Telex: 57-20006
A,CH,CM,E,MS,P
Hewlett-Packard So Africa (Pty.) Ltd.
Р.О. Вох 37099
92 Overport Drive
DURBAN 4067
Tel: 28-4178, 28-4179, 28-4110
Telex: 6-22954
CH,CM
Hewlett-Packard So Africa (Pty.) Ltd.
6 Linton Arcade
511 Cape Road
Linton Grange
PORT ELIZABETH 6000
Tel: 041-302148
CH
Hewlett-Packard So Africa (Pty.) Ltd.
P.O.Box 33345
Glenstantia 0010 TRANSVAAL
1st Floor East
Constantia Park Ridge Shopping
Centre
Constantia Park
PRETORIA
Tel: 982043
Telex: 32163
СНЕ
Hewlett-Packard So Africa (Pty.) Ltd.
Private Bag Wendywood
SANDTON 2144
Tel: 802-5111, 802-5125
Telex: 4-20877
Cable: HEWPACK Johannesburg
A,CH,CM,CS,E,MS,P
SPAIN
Hewlett-Packard Española S.A.
Calle Entenza, 321
E-BARCELONA 29
Tel: 322.24.51, 321.73.54
Telex: 52603 hpbee
A,CH,CS,E,MS,P
Hewlett-Packard Española S.A.
Calle San Vicente S/No
Edificio Albia II
E-BILBAO 1
Tel: 423.83.06
A,CH,E,MS
Hewlett-Packard Española S.A.
Crta. de la Coruña, Km. 16, 400
Las Rozas
E-MADRID
Tel: (1) 637.00.11
CH,CS,M
Hewlett-Packard Española S.A.
Avda. S. Francisco Javier, S/no
Planta 10. Edificio Sevilla 2,
E-SEVILLA 5
Tel: 64.44.54
Telex: 72933
A,CS,MS,P
Hewlett-Packard Española S.A.
Calle Ramon Gordillo, 1 (Entlo.3)
E-VALENCIA 10
Tel: 361-1354
CH,P
SWEDEN
Hewlett-Packard Sverige AB
Sunnanvagen 14K
S-22226 LUND
Tel: (046) 13-69-79
Telex: (854) 17886 (via Spanga
office)
CH
Hewlett-Packard Sverige AB
Ostra Tullgatan 3
S-21128 MALMO
Tel: (040) 70270
Telex: (854) 17886 (via Spánga
office)
Hewlett-Packard Sverige AB
Vastra Vintergatan 9
S-70344 OREBRO
Tel: (19) 10-48-80
Telex: (854) 17886 (via Spänga
office)
CH
Hewlett-Packard Sverige AB
Skalholtsgatan 9, Kista
Box 19
S-16393 SPANGA
Tel: (08) 750-2000
Telex: (854) 17886
Telefax: (08) 7527781
A,CH,CM,CS,E,MS,P
Hewlett-Packard Sverige AB
Frötallisgatan 30
S-42132 VASTRA-FROLUNDA
Tel: (031) 49-09-50
Telex: (854) 17886 (via Spänga
office)
CH,E,P
SWITZERLAND
Hewlett-Packard (Schweiz) AG
Clarastrasse 12
CH-4058 BASEL
Tel: (61) 33-59-20
A
Hewlett-Packard (Schweiz) AG
7, rue du Bois-du-Lan
Case Postale 365
CH-1217 MEYRIN 2
Tel: (0041) 22-83-11-11
Telex:27333 HPAG CH
CH,CM,CS
Hewlett-Packard (Schweiz) AG
Allmend 2
CH-8967 WIDEN
Tel: (0041) 57 31 21 11
Telex: 53933 hpag ch
Cable: HPAG CH
A,CH,CM,CS,E,MS,P
SYRIA
General Electronic Inc.
Nuri Basha Ahnaf Ebn Kays Street
P.O. Box 5781
DAMASCUS
Tel: 33-24-87
Telex: 411215
Cable: ELECTROBOR DAMASCUS
E
Middle East Electronics
P.0.Box 2308
Abu Rumnaneh
DAMASCUS
Tel: 33 4 5 92
Telex: 411 304
M
TAIWAN
Hewlett-Packard Far East Ltd.
Kaohsiung Office
2/F 68-2, Chung Cheng 3rd Road
KAOHSIUNG
Tel: (07) 241-2318
CH,CS,E
Hewlett-Packard Far East Ltd.
Taiwan Branch
8th Floor
337 Fu Hsing North Road
TAIPEI
Tel: (02) 712-0404
Telex: 24439 HEWPACK
Cable:HEWPACK Taipei
A,CH,CM,CS,E,M,P
Ing Lih Trading Co.
3rd Floor, 7 Jen-Ai Road, Sec. 2
TAIPEI 100
Tel: (02) 3948191
Cable: INGLIH TAIPEI
A
THAILAND
Unimesa
30 Patpong Ave., Suriwong
BANGKOK 5
Tel: 235-5727
Telex: 84439 Simonco TH
Cable: UNIMESA Bangkok
A,CH,CS,E,M
Bangkok Business Equipment Ltd.
5/5-6 Dejo Road
BANGKOK
Tel: 234-8670, 234-8671
Telex: 87669-BEQUIPT TH
Cable: BUSIQUIPT Bangkok
P
TRINIDAD & TOBAGO
Caribbean Telecoms Ltd.
50/A Jerningham Avenue
Р.О. Вох 732
PORT-OF-SPAIN
Tel: 62-44213, 62-44214
Telex: 235,272 HUGCO WG
CM.EMP
TUNISIA
Tunisie Electronique
31 Avenue de la Liberte
TUNIS
Tel: 280-144
EP
Corema
1 ter. Av. de Carthage
TUNIS
Tel: 253-821
Telex: 12319 CABAM TN
M
TURKEY
Teknim Company Ltd.
Iran Caddesi No. 7
Kavaklidere, ANKARA
Tel: 275800
Telex: 42155 TKNM TR
E
EMA.
Medina Eldem Sokak No.4 1/6
Yuksel Caddesi
ANKARA
Tel: 175 622
Telex: 42 591
M
UNITED ARAB EMIRATES
Emitac Ltd.
P.O. Box 2711
ABU DHABI
Tel: 82 04 19-20
Cable: EMITAC ABUDHABI
Emitac Ltd.
P.0. Box 1641
SHARJAH
Tel: 591 181
Telex: 68136 Emitac Sh
CHCS,EMP
UNITED KINGDOM
GREAT BRITAIN
Hewlett-Packard Ltd.
Trafalgar House
Navigation Road
ALTRINCHAM
Cheshire WA14 1NU
Tel: 061 928 6422
Telex: 668068
A,CH,CS,E,M,MS,P
Hewlett-Packard Ltd.
Elstree House, Elstree Way
BOREHAMWOOD, Herts WD6 1SG
Tel: 01 207 5000
Telex: 8952716
E,CH,CS,P
Hewlett-Packard Ltd.
Oakfield House, Oakfield Grove
Clifton BRISTOL, Avon BS8 2BN
Tel: 0272 736806
Telex: 444302
CH,CS,E,P
Hewlett-Packard Ltd.
Bridewell House
Bridewell Place
LONDON EC4V 6BS
Tel: 01 583 6565
Telex: 298163
CH,CS,P
Hewlett-Packard Ltd.
Fourier House
257-263 High Street
LONDON COLNEY
Herts. AL2 1HA, St. Albans
Tel: 0727 24400
Telex: 1-89527 16
CH,CS
Hewlett-Packard Ltd.
Pontefract Road
NORMANTON, West Yorkshire WF6 1RN
Tel: 0924 895566
Telex: 557355
CH,CS,P
Hewlett-Packard Ltd.
The Quadrangle
106-118 Station Road
REDHILL, Surrey RH1 1PS
Tel: 0737 68655
Telex: 947234
CH,CS,E,P
GREAT BRITAIN (Cont’d)
Hewlett-Packard Ltd.
Avon House
435 Stratford Road
Shirley, SOLIHULL, West Midlands
B90 4BL
Tel: 021 745 8800
Telex: 339105
CH,CS,E,P
Hewlett-Packard Ltd.
West End House
41 High Street, West End
SOUTHAMPTON
Hampshire $03 300
Те!: 04218 6767
Telex: 477138
CH,CS,P
Hewlett-Packard Ltd.
Eskdale Rd.
Winnersh, WOKINGHAM
Berkshire RG11 5DZ
Tel: 0734 696622
Telex: 848884
E
Hewlett-Packard Ltd.
King Street Lane
Winnersh, WOKINGHAM
Berkshire RG11 5AR
Tel: 0734 784774
Telex: 847178
A,CH,CS,E,M,MP,P
Hewlett-Packard Ltd.
Nine Mile Ride
Easthampstead, WOKINGHAM
Berkshire, 3RG11 3LL
Tel: 0344 773100
Telex: 848805
CH,CS,E,P
IRELAND
NORTHERN IRELAND
Hewlett-Packard Ltd.
Cardiac Services Building
95A Finaghy Road South
BELFAST BT10 OBY
Tel: 0232 625-566
Telex: 747626
CH,CS
SCOTLAND
Hewlett-Packard Ltd.
SOUTH QUEENSFERRY
West Lothian, EH30 9TG
Tel: 031 331 1188
Telex: 72682
CH,CM,CS,E,M,P
UNITED STATES
Alabama
Hewlett-Packard Co.
700 Century Park South, Suite 128
BIRMINGHAM, AL 35226
Tel: (205) 822-6802
A,CH,M
Hewlett-Packard Co.
420 Wynn Drive
HUNTSVILLE, AL 35805
P.O. Box 7700
HUNTSVILLE, AL 35807
Tel: (205) 830-2000
CH,CM,CS,E,M*
Arizona
Hewlett-Packard Co.
8080 Pointe Parkway West
PHOENIX, AZ 85044
Tel: (602) 273-8000
A,CH,CM,CS,E,MS
Hewlett-Packard Co.
2424 East Aragon Road
TUCSON, AZ 85706
Tel: (602) 889-4631
CH,E,MS**
California
Hewlett-Packard Co.
99 South Hill Dr.
BRISBANE, CA 94005
Tel: (415) 330-2500
CH,CS
Hewlett-Packard Co.
Р.О. Вох 7830 (93747)
5060 E. Clinton Avenue, Suite 102
FRESNO, CA 93727
Tel: (209) 252-9652
CH,CS,MS
Hewlett-Packard Co.
Р.О. Вох 4230
1430 East Orangethorpe
FULLERTON, CA 92631
Tel: (714) 870-1000
CH,CM,CS,E,MP
Hewlett-Packard Co.
320 S. Kellogg, Suite B
GOLETA, CA 93117
Tel: (805) 967-3405
CH
Hewiett-Packard Co.
5400 W. Rosecrans Boulevard
LAWNDALE, CA 90260
P.O. Box 92105
LOS ANGELES, CA 90009
Tel: (213) 970-7500
Telex: 910-325-6608
CH,CM,CS,MP
Hewlett-Packard Co.
3155 Porter Oaks Drive
PALO ALTO, CA 94304
Tel: (415) 857-8000
CH,CS,E
Hewlett-Packard Co.
4244 So. Market Court, Suite A
P.O. Box 15976
SACRAMENTO, CA 95852
Tel: (916) 929-7222
A* CH,CS,E,MS
Hewlett-Packard Co.
9606 Aero Drive
P.O. Box 23333
SAN DIEGO, CA 92139
Tel: (619) 279-3200
CH,CM,CS,E,MP
Hewlett-Packard Co.
2305 Camino Ramon “C”
SAN RAMON, CA 94583
Tel: (415) 838-5900
CH,CS
Hewlett-Packard Co.
3005 Scott Boulevard
SANTA CLARA, CA 95050
Tel: (408) 988-7000
Telex: 910-338-0586
A,CH,CM,CS,E,MP
Hewlett-Packard Co.
5703 Corsa Avenue
WESTLAKE VILLAGE, CA 91362
Tel: (213) 706-6800
E* CH* CS"
Colorado
Hewlett-Packard Co.
24 Inverness Place, East
ENGLEWOOD, CO 80112
Tel: (303) 649-5000
A,CH,CM,CS,E,MS
SALES 8: SUPPORT OFFICES
Arranged alphabetically by country 7
Connecticut
Hewlett-Packard Co.
47 Barnes Industrial Road South
P.O. Box 5007
WALLINGFORD, CT 06492
Tel: (203) 265-7801
A,CH,CM,CS,E,MS
Florida
Hewlett-Packard Co.
2901 N.W. 62nd Street
P.O. Box 24210
FORT LAUDERDALE, FL 33307
Tel: (305) 973-2600
CH,CS,E,MP
Hewlett-Packard Co.
6177 Lake Ellenor Drive
P.O. Box 13910
ORLANDO, FL 32859
Tel: (305) 859-2900
A,CH,CM,CS,E,MS
Hewlett-Packard Co.
5750B N. Hoover Blvd., Suite 123
P.O. Box 15200
TAMPA, FL 33614
Tel: (813) 884-3282
A*,CH,CM,CS,E* M*
Georgia
Hewlett-Packard Co.
2000 South Park Place
P.O. Box 105005
ATLANTA, GA 30348
Tel: (404) 955-1500
Telex: 810-766-4890
A,CH,CM,CS,E,MP
Hawaii
Hewlett-Packard Co.
Kawaiahao Plaza, Suite 190
567 South King Street
HONOLULU, HI 96813
Tel: (808) 526-1555
A,CH,E,MS
Illinois
Hewlett-Packard Co.
304 Eldorado Road
Р.О. Вох 1607
BLOOMINGTON, IL 61701
Tel: (309) 662-9411
CH,MS* *
Hewlett-Packard Co.
1100 31st Street, Suite 100
DOWNERS GROVE, IL 60515
Tel: (312) 960-5760
CH,CS
Hewlett-Packard Co.
5201 Tollview Drive
ROLLING MEADOWS, IL 60008
Tel: (312) 255-9800
Telex: 910-687-1066
A,CH,CM,CS,E MP
Indiana
Hewlett-Packard Co.
7301 No. Shadeland Avenue
Р.О. Вох 50807
INDIANAPOLIS, IN 46250
Tel: (317) 842-1000
A,CH,CM,CS,E,MS
lowa
Hewlett-Packard Co.
1776 22nd Street, Suite 1
WEST DES MOINES, IA 50265
Tel: (515) 224-1435
CH,MS* *
Kansas
Hewlett-Packard Co.
7804 East Funston Road, #203
WICHITA, KS 67207
Tel: (316) 684-8491
CH
Kentucky
Hewlett-Packard Co.
10300 Linn Station Road, #100
LOUISVILLE, KY 40223
Tel: (502) 426-0100
A,CH,CS,MS
Louisiana
Hewlett-Packard Co.
160 James Drive East
ST. ROSE, LA 70087
P.O. Box 1449
KENNER, LA 70063
Tel: (504) 467-4100
A,CH,CS,E,MS
Maryland
Hewlett-Packard Co.
3701 Koppers Street
BALTIMORE, MD 21227
Tel: (301) 644-5800
Telex: 710-862-1943
A,CH,CM,CS EMS
Hewlett-Packard Co.
2 Choke Cherry Road
ROCKVILLE, MD 20850
Tel: (301) 948-6370
A,CH,CM,CS,E,MP
Massachusetts
Hewlett-Packard Co.
1775 Minuteman Road
ANDOVER, MA 01810
Tel: (617) 682-1500
A,C,CH,CS,CM,E,MP,P*
Hewlett-Packard Co.
32 Hartwell Avenue
LEXINGTON, MA 02173
Tel: (617) 861-8960
CH,CS,E
Michigan
Hewlett-Packard Co.
4326 Cascade Road S.E.
GRAND RAPIDS, MI 49506
Tel: (616) 957-1970
CH,CS,MS
Hewlett-Packard Co.
1771 W. Big Beaver Road
TROY, MI 48084
Tel: (313) 643-6474
CH,CS
Minnesota
Hewlett-Packard Co.
2025 W. Larpenteur Ave.
ST. PAUL, MN 55113
Tel: (612) 644-1100
A,CH,CM,CS,E,MP
Missouri
Hewlett-Packard Co.
11131 Colorado Avenue
KANSAS CITY, MO 64137
Tel: (816) 763-8000
A,CH,CM,CS,E,MS
Hewlett-Packard Co.
13001 Hollenberg Drive
BRIDGETON, MO 63044
Tel: (314) 344-5100
A,CH,CS,E,MP
О
SALES & SUPPORT OFFICES
Arranged alphabetically by country
UNITED STATES (Cont'd)
Nebraska
Hewlett-Packard
10824 Old Mill Rd., Suite 3
OMAHA, NE 68154
Tel: (402) 334-1813
CM,MS
New Jersey
Hewlett-Packard Co.
120 W. Century Road
PARAMUS, NJ 07652
Tel: (201) 265-5000
A,CH,CM,CS,E,MP
Hewlett-Packard Co.
60 New England Av. West
PISCATAWAY, NJ 08854
Tel: (201) 981-1199
A,CH,CM,CS,E
New Mexico
Hewlett-Packard Co.
11300 Lomas Blvd. N.E.
Р.О. Вох 11634
ALBUQUERQUE, NM 87112
Tel: (505) 292-1330
CH,CS,E,MS
New York
Hewlett-Packard Co.
5 Computer Drive South
ALBANY, NY 12205
Tel: (518) 458-1550
A,CH,E,MS
Hewlett-Packard Co.
9600 Main Street
P.O. Box AC
CLARENCE, NY 14031
Tel: (716) 759-8621
CH
Hewlett-Packard Co.
200 Cross Keys Office Park
FAIRPORT, NY 14450
Tel: (716) 223-9950
CH,CM,CS,E,MS
Hewlett-Packard Co.
7641 Henry Clay Bivd.
LIVERPOOL, NY 13088
Tel: (315) 451-1820
A,CH,CM,E,MS
Hewlett-Packard Co.
No. 1 Pennsylvania Plaza
55th Floor
34th Street & 8th Avenue
MANHATTAN NY 10119
Tel: (212) 971-0800
CH,CS,E* M*
Hewlett-Packard Co.
250 Westchester Avenue
WHITE PLAINS, NY 10604
Tel: (914) 684-6100
CM,CH,CS,E
Hewlett-Packard Co.
3 Crossways Park West
WOODBURY, NY 11797
Tel: (516) 921-0300
A,CH,CM,CS,E,MS
North Carolina
Hewlett-Packard Co.
5605 Roanne Way
P.O. Box 26500
GREENSBORO, NC 27420
Tel: (919) 852-1800
A,CH,CM,CS,E,MS
Ohio
Hewlett-Packard Co.
9920 Carver Road
CINCINNATI, OH 45242
Tel: (513) 891-9870
CH,CS,MS
Hewlett-Packard Co.
16500 Sprague Road
CLEVELAND, OH 44130
Tel: (216) 243-7300
A,CH,CM,CS,E,MS
Hewlett-Packard Co.
962 Crupper Ave.
COLUMBUS, OH 43229
Tel: (614) 436-1041
Eff: Nov. 25, 1983
675 Brooksedge Bivd.
WESTERVILLE, OH 43081
CH,CM,CS,E*
Hewiett-Packard Co.
330 Progress Rd.
DAYTON, OH 45449
Tel: (513) 859-8202
A,CH,CM,E* ,MS
Oklahoma
Hewlett-Packard Co.
304 N. Meridian, Suite A
P.O. Box 75609
OKLAHOMA CITY, OK 73147
Tel: (405) 946-9499
A* CH,E* MS
Hewlett-Packard Co.
3840 S. 103rd E. Avenue, #100
Р.О. Вох 35747
TULSA, OK 74153
Tel: (918) 665-3300
A* * .CH,CS,M*
Oregon
Hewlett-Packard Co.
9255 S. W. Pioneer Court
P.O. Box 328
WILSONVILLE, OR 97070
Tel: (503) 682-8000
A,CH,CS,E*,MS
Pennsylvania
Hewlett-Packard Co.
111 Zeta Drive
PITTSBURGH, PA 15238
Tel: (412) 782-0400
A,CH,CS EMP
Hewlett-Packard Co.
2750 Monroe Boulevard
P.O. Box 713
VALLEY FORGE, PA 19482
Tel: (215) 666-9000
A,CH,CM,EM
South Carolina
Hewlett-Packard Co.
Brookside Park, Suite 122
1 Harbison Way
Р.О. Вох 21708
COLUMBIA, SC 29221
Tel: (803) 732-0400
CH,E,MS
Hewlett-Packard Co.
Koger Executive Center
Chesterfield Bldg., Suite 124
GREENVILLE, SC 29615
Tel: (803) 297-4120
Tennessee
Hewlett-Packard Co.
224 Peters Road, Suite 102
P.O. Box 22490
KNOXVILLE, TN 37922
Tel: (615) 691-2371
A* CHMS
Hewlett-Packard Co.
3070 Directors Row
MEMPHIS, TN 38131
Tel: (901) 346-8370
A,CH,MS
Texas
Hewlett-Packard Co.
4171 North Mesa
Suite C-110
EL PASO, TX 79902
Tel: (915) 533-3555
CHE" MS**
Hewlett-Packard Co.
10535 Harwin Drive
P.O. Box 42816
HOUSTON, TX 77042
Tel: (713) 776-6400
A,CH,CM,CS,E,MP
Hewlett-Packard Co.
930 E. Campbell Rd.
Р.О. Вох 1270
RICHARDSON, TX 75080
Tel: (214) 231-6101
A,CH,CM,CS,E,MP
Hewlett-Packard Co.
1020 Central Parkway South
P.O. Box 32993
SAN ANTONIO, TX 78216
Tel: (512) 494-9336
CH,CS,E,MS
Utah
Hewiett-Packard Co.
3530 W. 2100 South
SALT LAKE CITY, UT 84119
Tel: (801) 974-1700
A,CH,CS,E,MS
Virginia
Hewlett-Packard Co.
4305 Cox Road
GLEN ALLEN, VA 23060
Р.О. Вох 9669
RICHMOND, VA 23228
Tel: (804) 747-7750
A,CH,CS,E,MS
Washington
Hewlett-Packard Co.
15815 S.E. 37th Street
BELLEVUE, WA 98006
Tel: (206) 643-4000
A,CH,CM,CS,E,MP
Hewlett-Packard Co.
Suite A
708 North Argonne Road
SPOKANE, WA 99212
Tel: (509) 922-7000
CH,CS
West Virginia
Hewiett-Packard Co.
4604 MacCorkle Ave.
Р.О. Вох 4297
CHARLESTON, WV 25304
Tel: (304) 925-0492
AMS
Wisconsin
Hewlett-Packard Co.
150 S. Sunny Slope Road
BROOKFIELD, WI 53005
Tel: (414) 784-8800
A,CH,CS,E* MP
URUGUAY
Pablo Ferrando S.A.C. e I.
Avenida Italia 2877
Casilla de Correo 370
MONTEVIDEO
Tel: 80-2586
Telex: Public Booth 901
ACMEM
VENEZUELA
Hewlett-Packard de Venezuela C.A.
3RA Transversal Los Ruices Norte
Edificio Segre 1,2 & 3
Apartado 50933
CARACAS 1071
Tel: 239-4133
Telex: 251046 HEWPACK
A,CH,CS,E,MS,P
Hewlett-Packard de Venezuela C.A.
Calle-72-Entre 3H y 3Y, No. 3H-40
Edificio Ada-Evelyn, Local B
Apartado 2646
4001, MARACAIBO, Estado Zulia
Tel: (061) 80.304
CE"
Hewlett-Packard de Venezuela C.A.
Calle Vargas Rondon
Edificio Seguros Carabobo, Piso 10
VALENCIA
Tel: (041) 51 385
CH,CS,P
Bioelectronica Medica C.A.
Calle Buen Pastor
Edif. Cota Mil-Piso 2 y Semi Solano 1
Boleita Norte
Apartado 507 10 CARACAS 1050A
Tel: 239 84 41
Telex: 26518
ZIMBABWE
Field Technical Sales
45 Kelvin Road, North
P.B. 3458
SALISBURY
Tel: 705 231
Telex: 4-122 RH
CEMP
July 1983 5952-690(
Indicates main office
HP distributors are printed in italics.
HEWLETT
Г) PACKARD
HEWLETT-PACKARD COMPANY
MANUAL PART NO. 5955-8867 Data Systems Division
Printed in U.S.A. January 1983 11000 Wolfe Road
E0183 Cupertino, California 95014
">
/
Preuzimanje
Samo prijateljski podsjetnik. Dokument možete pogledati ovdje. Ali što je najvažnije, naš AI ga je već pročitao. Može objasniti složene stvari jednostavnim riječima, odgovoriti na vaša pitanja na bilo kojem jeziku i pomoći vam da brzo navigirate čak i najdužim ili najkompliciranijim dokumentima.
Oglas