45559 90001_Portable_PLUS_Technical_Reference_Manual_Aug1985 90001 Portable PLUS Technical Reference Manual Aug1985

45559-90001_Portable_PLUS_Technical_Reference_Manual_Aug1985 manual pdf -FilePursuit

45559-90001_Portable_PLUS_Technical_Reference_Manual_Aug1985 45559-90001_Portable_PLUS_Technical_Reference_Manual_Aug1985

User Manual: 45559-90001_Portable_PLUS_Technical_Reference_Manual_Aug1985

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

Download45559-90001_Portable_PLUS_Technical_Reference_Manual_Aug1985 45559-90001 Portable PLUS Technical Reference Manual Aug1985
Open PDF In BrowserView PDF
HEWLETT- PAC.KARD
~

Technical

Reference Manual

•

+

•
•

•
•

• •

•

Portable PLUS

Technical
Reference Manual

Edition 1

August 1985

.....

---

-"

-----:-----:---.........,.-:---------------

Notice
Hewlett-Packard makes no warranty of any kind with regard to this material,
~
including, but not limited to, the implied warranty of merchantability and fitness for a " J
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.
(c)

Copyright 1985) Hewlett-Packard Company.
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 language without the prior written consent of Hewlett-Packard
Company. The information contained in this document is subject to change without
notice.
Restricted Rights Legend. Use) duplication) or disclosure by the Government is
subject to restrictions as set forth in paragraph (b)(3)(B) of the Rights in Technical
Data and Software clause in DAR 7-104. 9(a).

MS1M is a U.S. trademark of Microsoft Corporation.
1M

1- 2- 3

and Lotus

TM

.

are U.S. trademarks of Lotus Development CorporatIon.

Portable Computer Division
1000 N.E. Circle Blvd.
Corvallis, OR 97330, U.S.A.

Printing History

Edition 1

August 1985

Mfg. No. 45559-90001

~

Contents
Page

Chapter
1

Overview

1.1
1.2
1.2.1
1.2.2
1.3

About This Manual
Options for Accessing the System ..
Accessing the Display
Accessing Communications Devices ..
References .

2
2.1
2.2
2.3
2.3.1
2.3.2
2.4
2.4.r
2.4.2
2.4.3
2.4.4
2.4.5
2.4.6
2.4.7
2.4.8
2.5
2.6
2.7
2.8

Electrical Design

2.9
2.1 0
2.10.1
2.1 0.2
2.10.3

0

0

0

0

••••

•••••••••••

0

0

•••••

•

0

0

••

0

••

0

•••••••

0

0

••

0

0

0

•••••

0

0

•

•

•

•

•

•

•

•

•

•

•

0

•

••

0

••••••••

0

0

•

0

•••••••••••

0

•

0

0

•

0

0

0

••

0

0

•

0

••

•

•

•

0

•

0

0

0

•

••

0

•

0

•

•

•

•

•

0

0

0

••

0

0

0

Introduction
Memory Map
o.
Operating Modes
Sleep Mode
Stop Mode
o.
Mainframe Hardware .
CPU ..... o '
Clocking .
Ready Circuit ....
PPU - Peripheral-Processor Unit ...
Keyboard Interface
Power Supply
Memory Board
Configuration EPROM
Serial Interface
HP-IL Interface
Recharger Interface 0...................................
Video Connector
Modem Connector
Plug-In Ports
Generic Module Description
Electrical Specifications
Architectural Requirements
o.
0

•••••••

0

0

•

0

••

0

••••••

0

•

00'

0

••

0

0

0

••••••

0

••

0

•

0

0

0

0

•••••

•

•

•

0

0

•

0

••••••

0

0

•

0

•••••

00.

0

••

•

0

•••

000.

0

0

0

•

0

000.0

••••••••••

0

••

00

•••••••••••••

•••••

0

•••

0

0

•

0

0

••••••

•

•

•

•

•

•

•

•

•

•

•

••

•

•

•

•

•

•

•

•

•

•

•

••

0

0

0

0

0

0

0

0

0000.

0

•

0

0

0

0

0

•

0

0

0

0

0

0

o'

0

0

•••••

•

•••

0

••••

••••••••

0

••••

0

0

0

•

0

•

0

•••••••••••••

0

•

0

0

•••

0

••

o'

•••••

0

0

•

•

•

0

•

•

•

•

•••

0

0

0

0

•••••••••••••••••

••••••

0

••••••••••••••

0

.0

0

•••••

0

••••••••••••••••••

0

••••••

0

0

0

0

•

••

000.0

•

0

•

•

••

0

0

••

•••••••••••••

•••••••

0

••

0

0

0

••••••••••

••••••••••

0

••••••••••••••

0

••

••

0

0

••

•

••

0

0

0

••••••••••••••••••

••••••••••••••••••

0

•

•••

o ••

0

0

0

0

•

•

•

•

•

••

0

•

•

•

•

•

•

••

0

.00.

•

•

••

0

•••••••

0

0

•••••••

0

0

••••••••

0

••••••

Contents

1-1
1- 2
1- 2
1-3
1-4

2-1
2- 3

2-4
2- 5
2-7
2-7
2-9
2-9
2-9
2-9
2-10
2 -10
2- 10
2-10
2-13
2-19
2-19
2-23
2-25
2-28
2-28
2-28
2-41
3

3

Mechanical Design

3.1
3.2
3.3
3.4

Introduction
Mainframe
Modem
Plug-In Ports

3- 1
3- 2
3-4
3-6

~.,,,
.. ,.

J

4

Resetting the Portable PLUS

4.1
4.2
4.2.1
4.2.2
4.2.3
4.2.4
4.3
4.3.1
4.3.2

Introduction
4-1
Reset Options
4-2
Reset via (Shl ft ) (]lID ( Break)
4-2
Reset via (Shl f t ) (]lID ( Extend char)( Break)
'4-2
4-2
Reset via @
Reset via the Reset Button
. . . . . . . . . . . . . . . . . . . . . . .. 4-3
Re-Boot Screen
4-3
Memory Lost Message
4- 3
Standard Re-Boot Display
4-4

5
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24

BIOS Interrupts

4

Introduction
Print Screen Interrupt (Int 5h)
Video I/O Interrupt (lnt 10h)
Equipment Check Interrupt (lnt I1h)
Memory Interrupt (Int 12h)
Communications Interrupt (Int 14h)
Keyboard I/O Interrupt (Int 16h)
Print Byte Interrupt (Int 17h)
Reboot Interrupt (Int 19h)
Time Of Day Interrupt (lnt 1Ah)
Keyboard Break Interrupt (Int 1Bh)
Timer Tick Interrupt (Int 1Ch)
Graphics Character Extensions (Int IFh)
Modem Transmit Interrupt (Int 40h)
Modem Ring/Carrier Interrupt (Int 42h)
Timer 2 Interrupt (Int 43h)
Plug-in 1 Interrupt (Int 44h)
Plug-in 2 Interrupt (Int 45h)
PPU Alarm Interrupt (lnt 46h)
Death/Battery Cutoff Interrupt (Int 47h)
Keyboard Interrupt (Int 49h)
Serial Transmit Interrupt (Int 4Ah)
Serial Ring/Carrier Interrupt (lnt 4Bh)
HP-IL IRQ Interrupt (lnt 4Ch)
Contents

5- 1
5- 5
5-5
5-12
5-13
5-13
5-17
5-19
5-20
5-20
5-21
5-22
5-23
5-24
5-24
5-24
5-25
5-25
5-25
5-26
5- 27
5-28
5-28
5-28

-r

r

~

5.25
5.26
5.27
5.28
5.29
5.30
5.31
5.32
5.33
5.34
5.35
5.36
5.37
5.38
5.39
5.39.1
5.39.2

Low Battery Interrupt (Int 4Dh)
Modem Input Interrupt (Int 4Eh)
Serial Input Interrupt (Int 4Fh)
System Services Interrupt (Int 50h)
Modifier Key Interrupt (Int 52h)
Print Key Interrupt (Int 53h)
HP-IL Primitives Interrupt (Int 54h)
Sleep Interrupt (Int 55h)
Menu Key Interrupt (Int 56h)
System Key Interrupt (Int 57h)
Break Key Interrupt (Int 58h)
Enable/Disable Ring Interrupt (Int 59h)
AUX Expansion Interrupt (Int SOh)
CON Expansion Interrupt (Int 5Eh)
Fast Video Interrupt (Int SFh)
Fast Alpha
Fast Graphics

6
6.1
6.1.1
6.1.2
6.2
6.3
6.4
6.5
6.6
6.6.1
6.6.2
6.6.3

Built-In Device Drivers

7
7.1
7.2
7.3
7.3.1
7.3.2
7.3.3
7.3.4
7.3.5
7.3.6
7.3.7

Low-Level Hardware Interface

5-29
5-29
5- 30
5- 31
5-64
5-65
5-65
5-80
5-81
5-82
5-83
5-84
5-85
5-87
5-94
5-94
5-113

Introduction
Serial Operation
Modem Operation
AUX, COM1, COM2, COM3, and 82164A Devices
NUL Device
CLOCK Device
LPT1, LPT2, LST, PLT, and PRN Devices
CONsole Driver
CONsole Control Sequences
Keyboard Operation
CONsole I/O Control Functions
Introduction
I/O Memory Map
Multi-Controllers
Keyboard Interface
Interval Timer
Serial Port
Multi - Purpose Port
Registers - Overview
Registers - Keyboard Function
Registers - Serial Port

6-1
6- 2
6-7
6-9
6-21
6-22
6-22
6- 23
6-24
6-45
6-50

7-1
7-1
7-3
7-3
7-4
7- 5
7-7
. . . . . . . . . . . . . . . . . . . . .. 7-7
7-9
7- 12
Contents

5

7.3.8
7.3.9
7.4
7.5
7.5.1
7.5.2
7.5.3
7.5.4
7.5.5
7.5.6

Registers - Interval Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 7-16
Registers - Multi - Purpose Port
7-1 9
HP-IL Controller
7-22
Display Controller
7- 26
7-26
Display RAM Mapping - Graphics Mode
Display RAM Mapping - Alpha Mode
7- 29
Alpha Attribute Bits
7-33
Alpha Cursors
7- 33
Registers
7-34
Softkey Menu Display
7- 37

8
8.1
8.2
8.3
8.4

Memory Management

9

Plug-In ROM Design

9.1
9.2
9.3
9.4
9.5
9.6

In troduction
Plug-In ROM Format
ROM-Executable Code
ROM Boot Code
Constraints on Plug-In ROM Software
PAM Interface to Plug-In ROMs

10

PAM - The Personal Application Manager

10.1
10.2
10.2.1
10.2.2
10.3
10.3.1
10.3.2
10.3.3
10.4
10.4.1
10.4.2
10.4.3
10.4.4
10.4.5
10.4.6
10.4.7

Power-Up Sequence
The PAM Environment
PAM and AUTOEXEC.BAT Files
PAM Internal State
PAM And Application Programs
Installing Applications in PAM
The liDOS Commands" Application
PAM Execution of a Program
The PAM Configurations
The System Configuration
Main Memory and Edisc
External Disc Drives
Disc Write Verify
Power-Save Mode
Determining a Reasonable Status Limit Value
Display Timeout

6

Introduction
Edisc
ROM Disc
Summary of ROM Disc Access

Contents

~

)

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

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

9-1
9-2
9-6
9-7
9-7
9-8
10-1
10-1
10-2
10-3
10-4
10-4
10-4
10-5
10-6
10-6
10-6
10-7
10-7
10-7
10-8
10-9

~

}

r

r

10.4.8
10.4.9
10.4.10
10.4.11
10.4.12
10.4.13.
10.4.14
10.4.15
10.4.16
1004.17
10.5
10.5.1
10.5.2
10.6
10.7
10.8
10.8.1
10.8.2
10.9

10-10
Cursor Type
Console Mode
10-10
Tone Dura tion
10- 11
Plotter Interface
10-11
Printer Interface
10-11
Printer Mode
10-11
Printer Pitch, Line Spacing, and Skip Perforation
10-12
Datacom Interface
10-12
The Datacom Configuration
10-12
The Time and Date Configuration
. . . . . . .. 10-15
PAM And Alarms
10-16
The PAM.ALM File
. . . . . . . . . . . . . . . . . . .. 10-16
When an Alarm Occurs
10-16
Autoanswering: PAM and Ring Interrupts
10-17
The Battery Fuel Gauge
10-18
PAM Help Facility
10-19
Installing PAMHELP.COM
10-19
After PAMHELP.COM Is Installed
10-19
Bypassing PAM With COMMAND.COM
10-21

11

Boot Sequence Options

11.1
11.2
11.2.1
11.2.2
11.2.3
11.2.4
11.2.5
11.2.6
11.2.7
11.2.8
11.2.9
11.2.10
11.3

Introduction
Boot Sequence
Built -In Diagnostics
Recover From Sleep
. . . . . . . . . . . . . . . . . . . ..
ROM Slot 7 Boot Code Before Changing RAM
Config EPROM Boot Code Before Changing RAM
ROM Slot 7 Boot Code After Some Initialization
Boot Code From the Config EPROM After Initialization
Boot Using the CONFIG.SYS on the ROM in ROM Slot 7
Boot Using the CONFIG.SYS on the Default Drive
PAM Executes AUTOEXEC.BAT From ROM Slot 7
PAM Executes AUTOEXEC.BAT From Drive A:
The CONFIG.SYS File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..

12

Modem Interface

12.1
12.1.1
12.1.2
12.1.3
12.1.4
12.1.5

Overview
Command Mode and Data Mode
Commands
Baud Rate Selection
Transmission Settings
Auto-Answering

11-1
11-2
1 1-2
11-2
11-2
11-3
11-3
11-4
11-4
11-4
11-5
11-5
11-5
12-1
12-1
1 2- 2
12-3
12-4
12-4

Contents

7

12.1.6
12.2
12.3
12.4
12.5
12.6
12.7
12.7.1
12.7.2
12.7.3
12.7.4
12.7.5
12.8

Default State of the Modem
Modem Commands
Dialing
Modem Responses .
S-Register Description
Hayes Compatibility
Special Considerations for Programmatic Control
Modem Power-On Problem
Ignores Characters While Responding
Can't Dial Out While Receiving Ring .
Spurious Extra Characters Generated
Spurious Interrupts at Power-Up
Directly Connecting Two Modems ..

13

Keyboards and Keycodes

A
A.1
A.2
A.3
A.3.1
A.3.2
A.3.3
A.3.4
A.3.5
A.3.6
A.3.7
A.3.8
A.3.9
A.3.1 0

Comparison With the HP 110 o.
Comparison With the HP 150 .
Comparison With the IBM PC
VideoInterrupt(Int 10h)
Equipment Check Interrupt (Int 11 h)
Diskette/Disc Interrupt (Int 13h)
Communications Interrupt (lnt 14h)
Cassette Interrupt (Int ISh) ...
Keyboard Interrupt (Int 16h) .
Printer Interrupt (Int 17h)
Re-Boot Interrupt (Int 19h) .
Time-of-Day Interrupt (Int lAh)
Keyboard Break Interrupt (Jnt IBh)

B

Schematic Diagrams

C

Assembler LlsUng for Configuration EPROM

D

Character Sets

E

Using TERM in Batch Files

8

0

•

0

•••••••••

0

0

0

0

0

0

••

0

•

0

0

0

••••

0

•

0

•••

0

•

0

••

0

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

••

0

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

•

••

0

•

•

•

•

•

•

•

•

•

••

0

0

0

0

•••

0

0

•

0

••

0

0

•

•

•

••

0

•

••

•

0

•

•••

12-5
12-6
12-12
o. 12 -1 3
12-15
12-20
0..... 12-22
12- 22
12-22
12-23
12-23
12-23
12- 23

•

0

0

0

••••

••••

0

0

0

0

•

0

•••

•

0

•

0

•••••

•••

0

.0.

0

0

•

0

••••••••••

0

0

••

••••

0

0

••••

0

0

000

0

•

0

.0

0

0

.00.

Comparisons With Other Computers
0

•••

0

0

0

0

•••••

0

00.

•••••••

0

••••••••••••••••••

0

0

0

0.

0

0

Contents

•

0

•••••

000

o.

0

0.00

0

0

•••••

•••

••••

0

0

0

0

0

0

0.

0

0

•

••••••

0

0

••

•

0

••

0

•••••••••••

0

0

•

•

•

•

•

••

0

•

•

•

•

•

•

•

••

0

•

•

••

•

•

•

•

•

•

•

•

•

0

0

0

o.
o.

0

•

•••••••••••••••••••

•••••

0

••

•••••••

•••••

0

•••••

00

0

••••••••

o.

•••••••••••••••••••

0.0

••

0

•••••••

0

•

0

0

A-I
A-2
A-3
A-3
A- 5
A- 5
A-5
A- 6
A-6
A-6
A-6
A-7
A-7

~

r

F

Mass Storage

F.I
F.l.l
F.l.2
F.l.3
F.l.4
F.2
F.2.l
F.2.2

Disc Drive Options
Built-In Disc Drives
lIP 9114A HP-IL Disc Drive
HP-IB Disc Drives
Portable PLUS-Desktop Link
Media Compatability
Reading Other Discs on the Portable PLUS
Reading Portable PLUS Discs on Other Computers

G

Configuring Serial Printers

G.l
G.2
G.3
G.4
G.5
G.6
G.?
G.8

Introduction
The HP 2225D ThinkJet Printer
The HP 26QIA Printer
The HP 2686A LaserJet Printer
The IDS-560 Impact Printer - The Paper Tiger
The NEC Spinwriter 3510
The Xerox 61 OC 1 Memorywriter
The Xerox 625C Memorywriter

H

Portable PLUS-Desktop Link
Portable PLUS to HP 150

F-I
F-l
F-l
F-2
F-3
F-4
F-4
F-4

.. '

t

r

H.l
H.2
H.3
H.4

G-l
G-l
G-3
G-5
G-6
G- 8
G-I0
G-12

Portable PLUS to IBM PC/XT
Portable PLUS to IBM AT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
Portable PLUS to Portable (or Portable PLUS)

H-2
H-3
H-4
H-4

Parts
J

Escape Sequence Summary

K

Software Module Configurations

K.l

Overview
Plug-In ROMs and EPROMS
Detailed Description
ROM/EPROM Organization Options
Jumper and Socket Labeling
Jumpers and Socket Groups
Configuration of the Small Group .. . . . . . . . . . . . . . . . . . . . ..
Configuration of the Large Group

K.2

K.3
K.3.l
K.3.2

K.3.3
K.3.4
K.3.5

Contents

K -1
K-3
K- 5
K- 5
K-6
K-7
K-7
K-8

9

Illustrations
Figure

2-1
2-2
2-3
2-4
2- 5
2-6
2-7
2-8
2-9
2-10
2-11
2-12
2-13
2-14
2-15
3-1
3-2
3-3
5-1
5- 2
5-3
5-4
5-5
6-1
6-2
6-3
6-4
7-1
7-2
7- 3
8-1
8-2
10

Page

System Address Space
I/O Address Space
Portable PLUS Block Diagram
Configuration EPROM Addressing
Serial Connector
Modem Cable
Printer Cable
Automotive Recharger Schematic Diagram
Plug-In Connector
Plug-In Bus Read Cycle - Lower Memory
Plug-In Bus Write Cycle - Lower Memory
Plug-In Bus Read Cycle - I/O and Upper Memory
Plug-In Bus Write Cycle - I/O and Upper Memory
Plug-In Bus Interrupt Acknowledge Cycle
Plug-In Module Registers
Mainframe Dimensions
Modem PC Board
Plug-In PC Board
Interrupt 1Dh Attribute Byte
Fast Alpha Structures
Display Attribute Byte
Initial Font Load
Font Formats
Serial Interface Timing - Sheet 1
Serial Interface Timing - Sheet 2
Serial Interface Timing - Sheet 3
Keyboard Scancodes
I/OAddressSpace
Display RAM Mapping - Graphics Mode
Display RAM Mapping - Alpha Mode
RAM Organization
ROM Disc
Contents

2- 3
2-4
2-8
2-12
2-14
2-18
2-18
2-22
2-33
2-34
2-35
2-36
2-37
2-38
2-43
3-3
3-5
3-7
5-6
5-95
5-96
5-97
5-98
6-4
6-5
6-6
6-48
7-2
7-28
7- 32
8-2
8-8

~

}

,~

J

8-3
8-4

8-5
8-6
9-1
13-1
13-2
13-3

13-4
13-5
13-6
13-7

13-8
13-9

13-10
13-11
13-12
B-1
B-2
B-3
B-4
B-5
B-6
B-7

B-8
B-9
B-I0
K-l

ROM Disc FAT
8-11
ROM Disc Root Directory
8-12
ROM Disc Fixed Subdirectory Files
8-13
ROM Disc Plug-In File Data
. . . . . . . .. 8-14
Plug-In ROM Format
9-3
English (U.S.) Keyboard
~ . . . . . . . . . . . . . . . . . . . . . . . .. 1 3- 8
English (U.K.) Keyboard
13-11
French Keyboard
13-14
Belgian Keyboard
13-15
German Keyboard
13-18
Italian Keyboard
13-21
Dutch Keyboard
13-24
Swiss (German) Keyboard
13-27
Swiss (French) Keyboard
13- 30
Danish Keyboard ........•............................ 13-33
Norwegian Keyboard
13-36
Swedish Keyboard ...............................•..... 13-39
Motherboard PCA - Sheet 1
B-2
Motherboard PCA - Sheet 2 •.............................. B-4
Motherboard PCA - Sheet 3 ••••••••••••••••••••••••••••••• B-6
Motherboard PCA - Sheet 4 ••••••••••••••••••••••••.•••••• B-7
Memory Board PCA
;0:
B-8
Modem PCA
B-I0
Software Drawer PCA
B-12
Memory Drawer PCA - Sheet 1
B-14
Memory Drawer PCA - Sheet 2
B-16
Memory Drawer Piggy-Back PCA
B-18
Pin Configuration for Plug-In ROM
K-4

Contents

11

Tables
Table

1-1
2-1
2-2
2- 3
2-4
2-5
2-6
2-7
2-8
2-9
2-10
2-11
2-12
5-1
5-2
5-3
5-4
5-5
5-6
5-7
5-8
5-9
5-10
5-11
5-12
5-13
5-14
6-1
6-2
6-3
6-4
6-5
12

Page

Options for Display Access
1- 2
Serial Interface
2-14
Recharger DC Limits
2-20
Recharger Series Resistance Limits
2- 21
Video Signals
2-24
Video Specifications
2-24
Modem Connector
2-25
Specifications for Modem Port
2-27
Signals for Plug-In Ports .......•......................... 2-29
Plug-In Bus Loading
2-39
Plug-In Power Loads
2-40
Voltage Levels for Plug-In Bus
2-40
Requirements for Plug-In Drivers
2-41
Hardware and BIOS Interrupts
5-2
Video I/O Interrupt 10h Functions
5-7
Communications Interrupt 14h Functions
5-14
Keyboard I/O Interrupt 16h Functions
5-17
Print Byte Interrupt 17h Functions
5-19
Time Of Day Interrupt I Ah Functions
5-20
System Services Interrupt 50h Functions
5-31
System Services Int SOh Detailed Description
5-33
PPU Commands
5-54
HP-IL Primitives Interrupt S4h Functions
5-69
AUX Expansion Interrupt SOh Function
5-86
CON Expansion Interrupt SEh Functions
5-88
Fast Video Interrupt SFh Alpha Functions
5-99
Fast Video Interrupt SFh Graphics Functions
5-114
AUX I/O Control Commands
6-9
Control Characters
6-24
HP Two-Character Escape Sequences
6-26
HP Alpha Escape Sequences
6-31
HP Graphics Escape Sequences
6-36
Contents

/~

)

~

6-6
6-7
6-8
7-1
7-2
7-3
8-1
8-2
9-1
10-1
10-2
12-1
12-2
12-3
13-1
13-2
13-3
13-4
13-5
13-6
13-7
13-8
13-9
13-10
13-11
13-12
13-13
13-14
13-15
13-16
13-17
13-18
13-19
13-20
13-21
13-22
13-23
13-24
13-25
13-26
13-27
13-28

ANSI Escape Sequences
6-41
CONsole Write I/O Control Functions
6-50
CONsole Read I/O Control Functions
6-51
Multi-Controller Registers ..............•................. 7-8
UP - IL Registers
7- 22
Display Controller Registers
7- 35
Edisc Sector Oh
8- 5
8-9
ROM Disc Sector Oh
Plug-In ROM Sector Oh
9-4
PAM Internal State
10- 3
PAMUELP.COM Parameters
10-20
Modem Commands
1 2-7
Modem Responses
12-14
Modem S-Registers
12-15
UP Mode Character Codes
13-3
Alternate Mode Character Codes
13-5
Common UP Mode Character Codes •....................... 1 3-6
Common Alternate Mode Character Codes
13-7
English (U.S.) UP Mode Character Codes
13-9
English (U.S.) Alternate Mode Character Codes
13-10
English (U.K.) HP Mode Character Codes
13-12
English (U.K.) Alternate Mode Character Codes
13-13
French/Belgian HP Mode Character Codes
13-16
French/Belgian Alternate Mode Character Codes
13-17
German HP Mode Character Codes
13-19
German Alternate Mode Character Codes
13-20
Italian UP Mode Character Codes
13-22
Italian Alternate Mode Character Codes
13-23
Dutch HP Mode Character Codes
13-25
Dutch Alternate Mode Character Codes
13-26
Swiss (German) UP Mode Character Codes
13-28
Swiss (German) Alternate Mode Character Codes
13-29
Swiss (French) HP Mode Character Codes
13- 31
Swiss (French) Alternate Mode Character Codes
13-32
Danish HP Mode Character Codes
13- 34
Danish Alternate Mode Character Codes
. . . . . . .. 13-35
Norwegian UP Mode Character Codes . . . . . . . . . . . . . . . . . . . .. 13-37
Norwegian Alternate Mode Character Codes
13-38
Swedish HP Mode Character Codes
13- 40
Swedish Alternate Mode Character Codes
13-41
UP Mode Muted Character Codes
13-42
Alternate Mode Muted Character Codes
13-43
Contents

13

0-1
0-2
0-3
D-4
G-l
G-2
G-3
G-4
G-5
G-6

1-1
1-2
1-3
J-l
J-2
J-3
J-4
J-5
K-l
K-2
K-3

14

Roman8 Character Set ....•••.•.......•.•...........•... 0-2
Line-Drawing/Math Character Sets
0-3
Alternate Character Set ......•......•................... 0-4
Character Sets - Numeric Listing
0- 5
ThinkJet Switch Settings
0-2
HP 260lA Switch Settings ..•............................ 0-4
ID5-560 Switch Settings
0-7
5pinwriter 3510 Switch Settings
0-9
61 01 C 1 Memorywriter Option Settings
G-IO
625C Memorywriter Option Settings
G-13
Portable PLUS Accessories ..•............................. 1-1
Custom HP Parts
1-3
Standard Parts ..........•.............................. 1-3
Control Characters
J-l
Two-Character Escape Sequence Summary
J- 2
HP Alpha Escape Sequence Summary ..................•..... J-3
HP Graphics Escape Sequence Summary
J- 4
ANSI Escape Sequence Summary
J- 5
Wire Jumper Connections for ROMs/EPROMs
K- 2
Plug-In ROM Specifications
K- 3
ROM/EPROM Organization Options ......•.........•...... K- 5

Contents

'~

r

1

Overview

1. 1 About This Manual
This manual presents information that will help you to develop hardware and software
that operate on the Portable PLUS computer. The manual contains information about:
Hardware

• Electrical design.
• Mechanical design.
Software and Firmware:

C ·

Resetting the computer.

• BIOS interrupts.
• Built -in device drivers.
• Low-level hardware interface.
• Memory.
• Plug-in ROM design.
• PAM (Personal Applications Manager).
• Boot options.

r ·

Modem interface.

• Keyboards and keycodes.

Overview

1- 1

;1

In addition, appendixes include additional reference information about the Portable
PLUS.
Applications designed for the Portable PLUS may be designed to be compatible with
other computers also. (Refer to appendix A for detailed information about
compatibility.) The information in this manual will help you maximize compatibility.

.~

)

1.2 Options for Accessing the System
The following topics describe various ways you can access certain features of the
Portable PLUS. The method you choose will depend upon your particular application.
The individual choices are described in different parts of this manual.

1.2.1 Accessing the Display
The Portable PLUS provides six ways to access the display. The methods are listed in
table 1-1. They provide the programmer with options for satisfying the specific
requirements of a program.
Table 1-t Options for Display Access
Access Method

CON output via Int 21 h
CON output via Int 50h
Video I/O Int I Dh
Fast Video Int 4Fh
Fast Write via Int 50h
Direct hardware access

Speed

POWf'r

Usability

Graphics

1
2
3
4
5

3
3
2
4
1
5

Simple
Simple
Moderate
Moderate
Simple
Difficult

Full
Full
Limited
Full
None
Primitive

6

The preferred, most commonly encountered, and most portable method of sending data
to the display is CON output via the standard MS-DOS service interrupt, Int 21h.
(Refer to "References" below.) Display control can be, accomplished via a fairly
complete set of HP and ANSI escape sequences. A subset of standard HP graphics escape
sequences provides access to all major graphics functions.
Output via Int SOh, the System Services interrupt, offers about a 2.S-times speed
improvement over Int 21 h, but only by sacrificing output redirection, simultaneous
1- 2

Overview

,,~

1

printer hardcopy (via "'P printer on/off toggle») display start/stop control (via "'S/"'Q»)
and portability to other MS-DOS computers. (Refer to "System Services Interrupt" in
chapter S.)
The Video I/O interrupt, Int IOh) provides a subset of the IBM PC Video I/O functions.
(Refer to "Video I/O Interrupt" in chapter S.) Its compatability limitations are due
mainly to the 480x200 size of the LCD panel and other hardware differences between
the Portable PLUS and the IBM PC.
Fast Video (Int 5Fh) functions provide a level of display control similar to Int IOh, but
with much more functionality and flexibility. (Refer to "Fast Video Interrupt" in
chapter 5.) This set of routines provides very low-level) window-oriented control of
display memory in alpha mode, and a relatively full set of graphics manipulation
routines in graphics mode.

~:
.
,:

\

Int 50h Fast Write is a special service function that can be used to force short messages
onto the display without interfering with any other part of the system. (Refer to
"System Services Interrupt" in chapter 5.) This is used within the BIOS) for example) to
display the "Low Batteryr' warning. Fast Write is a very low-level function that simply
forces a specified attribute and string of characters into display RAM with no special
processing or safety checks, and should be used only in similar immediate-display
situations.
As with most computers) there is the option of "going straight to hardware." Performing
your own display control is potentially the fastest) most efficient way of getting the
screen to do what you want it to do) although such programming can easily become
quite complex) potentially dangerous, and can possibly interfere the normal display
operation if mixed with calls to other BIOS-resident display functions--unless you take
certain precautions. For the sake of safety and simplicity) applications should refrain
from directly accessing system hardware. (Refer to IIDisplay Controller" in chapter 7.)

1.2.2 Accessing Communications Devices
The Portable PLUS can address three communications devices through the system BIOS:
• The serial (RS-232) port.
• A SmartModem-Compatible 1200-BPS modem.
• An UP 82164A UP-IL/RS-232-C Interface.
Overview

1- 3

1

Each of these devices is supported by its own device driver, and data can be transferred
through them using any of the MS-DOS standard device operations. Various device
parameters can be configured through a standard set of IOCTL commands. (Refer to
"AUX, COM1, COM2, COM3, and 82164A Devices" in chapter 6.) Also, the MS-DOS
AUX device can be "redirected" to address any of the three individual devices.
In addition, the built-in serial port and the modem can be accessed through the IBM
PC-compatible software interrupt 14h. (Refer to "Communications Interrupt" in
chapter 5.) All IBM PC functions are supported, although some of the status
information returned by this interrupt must be interpreted differently due to hardware
incompatibilities. Interrupt 14h gives much better performance than the MS-DOS
device calls, but it can be cumbersome to use from high -level languages, and it is not
supported on all Hewlett-Packard products.
For applications that must get as close as possible to the hardware, interrupt 5Dh is
provided to allow access to each character as it comes into the communications port.
(Refer to "AUX Expansion Interrupt" in chapter 5.) This enables a program to achieve
the effect of taking over the hardware interrupt, but will not need to duplicate the
function of the BIOS.

1.3 References
Although this manual describes the Portable PLUS in detail, you may want to consult
additional references for other information. Owner's manuals describe how to operate
the system. Other references provide information about standards that are
implemented by the Portable PLUS.
• Hewlett-Packard Company. Using the Portable PLUS. HP part number
45711-90002, (cd 985.
• Hewlett-Packard Company. HP 82983A 300/1200 BPS Modem Owner's Manual.
HP part number 82983-90001, (cd 985.
• Hewlett-Packard Company. The HP-IL Interface Specification. HP part number
82166-90017, (cd 982.
• Hewlett-Packard Company. The HP-IL Integrated Circuit User's Manual. HP part
number 82166-90016, (cd 982.

1- 4

Overview

1

• Kane) Gerry) et aI. The HP-IL System: An Introductory Guide to the Hewlett-Packard
Interface Loop. Osborne/McGraw-Hill) Berkeley) California, (el 1982.
• Hewlett-Packard Company. HP 45419C Programmer)s Tool Kit) which contains:
-Series 100 Programmer's Reference Manual: Microsoft MS-DOS Programmer's
Reference Manual.
-Series 100 Macro Assembler Manual: Microsoft Macro Assembler Manual.

Overview

1- 5

1'.. ;:

:

.

'~

r

2

Electrical Design

2.1 Introduction
The Portable PLUS computer features a 25-line liquid-crystal display (LCD), a 76-key
full-size (3/4 throw) keyboard, 128K bytes of built-in RAM, 16K bytes of display
RAM, 8K bytes of built-in configuration EPROM (expandable to 16K bytes), and 192K
bytes of built-in ROM. HP-IL and serial interfaces are built in. A 1200-baud
direct-connect modem and an external video interface are optional.
The CPU is a CMOS 80C86 that runs at 5.33 MHz. RAM cycle time is 748 ns, with
ROM and I/O cycle times being 935 ns minimum. A secondary processor, a peripheral
processor unit (PPU), provides power supply and modem control, and also functions as a
real-time clock.

Electrical Design

2-1

Listed below are the main specifications for the Portable PLUS.
2

*

Size:

13 inches wide, 10 inches deep, 3 inches thick.

Weight:

8.9 pounds (with modern and two empty drawers).

LCD:

25 lines by 80 characters, alpha mode.
6 dots wide by 8 dots high font size.
200 dots high by 480 dots wide, bit-mapped graphics mode.

Keyboard:

Full size, 76 keys, 3/4 throw, embedded numeric pad.

Speaker:

Piezo-electric

CPU:

80C86, 16-bit CMOS processor, 5.33 MHz.

Memory:

128K bytes RAM.
192K bytes ROM.
16K bytes display RAM.
8K bytes configuration EPROM (16K bytes optional).

I/O:

HP-IL.
Serial (RS- 232 -C).
1200-baud direct-connect modem (optional).

Battery:

6-volt, 2.5 Amp Hour, three-cell, sealed, lead-acid.

Power
Consumption:

100-175 rnA ON/awake mode (typical)
285 uA sleep mode (typical)

Environment:

Operating temperature: 0° to 50°C.
Storage temperature: -25° to S5°C.*
RFI: FCC class B, VDE class B.

Humidity:

5 to 95 percent relative humidity.

Exposure to temperature below -SC may cause temporary cosmetic blemishes in the display.

2- 2

Electrical Design

2

2.2 Memory Map
The 80C86 has a 1M-byte system memory address space and a 64K-byte I/O address
space. High bytes have odd addresses; low bytes have even addresses. Memory space is
allocated as shown in figure 2-1.
Figure 2-1. System Address Space

OOOOOh
Built-In RAM (128K)
20000h

Plug-In RAM (384K)
80000h
84000h
90000h

Display RAM (16K)
Reserved (48K)

Plug-In RAM Disk or ROM (256K)
DOOOOh
Built-In ROM (192K)
FFFFFh

The mainframe uses I/O address space from OOOOh to 03FFh, and from 8000h to
BFFFh. Thus, the addresses from 0400h to 7FFFh and COOOh to FFFFh are available
for plug-in devices. I/O address space is represented in figure 2-2.

Electrical Design

2- 3

2

Figure 2-2. 1/0 Address Space

OOOOh
Reserved
0020h
HP-IL Interface
0040h
OOSOh
0060h

Serial Interface
Timer 1
PPU

0080h
Display Controller
OOAOh
OOBOh
OOCOh

Keyboard/Modem Interface
Timer 2
Plug-In Port 2

OOEOh
Plug-In Port
0100h
Reserved
0400h
8000h
COOOh
FFFFh

I
I
I

,

I
I
I

Available for plug-in modules
Configuration EPROM
Available for plug-in modules

2.3 Operating Modes
The computer has several operating modes, which are controlled by a single chip
micro-computer, known as the peripheral processor unit (PPU): The mainframe has two
5 volt supplies, known as VccS and VccDS. These supplies are switched on and off
depending on the mode the mainframe is in.

2- 4

Electrical Design

1~

• Awake Mode: Both 5 volt supplies are on. The display is turned on; the CPU is
running or idle. RAM is preserved.

2

• Sleep Mode: VccS is off (the display is turned off; most circuits are powered down).
VccDS is on but reduced to 3.25 volts nominal (RAM is preserved). The PPU remains
in a low power state) monitoring system events. This mode is used to prolong battery
life when the computer is not in use.
• Stop Mode: All internal power supplies are turned off. RAM memory is lost. All
digital logic in the mainframe) plug-in cards and modem are turned off. This mode
is only entered if a plug-in card is removed while the mainframe is in Awake Mode.
The following descriptions illustrate the system)s behavior under various conditions.

2.3.1 Sleep Mode
User Initiated sleep mode to remove plug-In module: System is awake; CPU
running. User wants to change a plug-in drawer.

Action Required:
User must put system into its sleep mode (by pressing the "Off" softkey in PAM).
System Behavior:
PAM accepts the "Off" command and then issues a sleep command to the PPU.
User removes plug-in drawer. PPU senses the removal and waits until both plug-in
drawers are present. During this wait) the PPU keeps updating the real time clock
and the battery charge level.
When the user has plugged in both drawers) he must press the @ key to wake the
system up. When the system wakes up) power is applied to the mainframe and
both plug-in drawers. The CPU is initially reset. When allowed to run) it reboots.

I

Caution

Any time a RAM plug-In module Is removed Its contents are lost. You
must back up the electronic disc before removing or installing a RAM
plug -in module.

Electrical Design

2- 5

User initiated Sleep Mode to conserve battery: System is awake; CPU running.

2

User wants to put system to sleep in order to save power.
Action Required:
User presses the "Off" softkey in PAM.
System Behavior:
The PPU unpowers the CPU and the LCD display. Built-in RAM,
display RAM, and plug-in RAM remain powered. The keyboard continues
to be scanned.
System remains in sleep mode until one of the following occurs:
Any key is depressed.
The alarm time is reaphed.
A system interrupt is generated (for example, modem ring detected, serial ring
detected, plug-in interrupt detected).
As the system wakes up, the CPU is initially reset. As it begins running, the BIOS
determines that the system was in sleep mode (as opposed to a cold start) and
restores the system to the state that existed before sleep mode was initiated.
Timeout initiated Sleep Mode to conserve battery: System is awake; CPU is
running. The battery charger is not plugged in. The program running (MS-DOS, PAM,
or an application) makes repeated calls to the keyboard driver's status without calling
other I/O drivers. (This occurs when a program is waiting for keyboard input--refer to
"Power-Save Mode" in chapter 10.)

System Behavior:
The BIOS monitors I/O driver "call" activity. If the keyboard driver's status is called
often enough (with no calls to other I/O device drivers), after the timeout period
has expired (set from PAM) the BIOS suspends operation of the current program,
does some housekeeping, and then issues the sleep command to the PPU.
The PPU unpowers the CPU and the LCD display. Built-in RAM, display RAM, and
plug-in RAM remain powered. The keyboard continues to be scanned.
System remains in sleep mode until one of the following occurs:
Any key is depressed.
The alarm time is reached.
A system interrupt is generated (for example, modem ring detected, serial ring
detected, plug-in interrupt detected).
As the system wakes up, the CPU is initially reset. As it begins running, the BIOS
determines that the system was in sleep mode (as opposed to a cold start) and
restores the system to its previous state (the LCD displays the same information as
before and the suspended program resumes where it left off).

2- 6

Electrical Design

~

}

~

,)

2

2.3.2 stop Mode

r

Situation: System is awake; CPU is running. User removes a plug-in drawer but
forgets to put the computer in sleep mode.

System Behavior:
Removal of a plug-in drawer while the system is awake causes the system to enter
stop mode. The power supply turns off completely, which turns off all mainframe
digital logic and removes power to both plug-in ports. (All built-in RAM, LCD
memory, and plug-in RAM data is lost. The real time clock is lost. The battery
charge level is lost.)
When both plug-in ports are again occupied, the power supply for the PPU energizes
and the PPU is reset.
The PPU waits until the (i) key is pressed before it wakes up the system (by
applying power to the mainframe and both plug-in ports). The CPU is initially
reset. When allowed to run, it reboots the BIOS (which reinitializes the RAM disk
and the real-time clock).
The battery charge level initially reads 0 percent.

2.4 Mainframe Hardware
The mainframe (illustrated in figure 2- 3) consists of the following assemblies:
• Motherboard (PCA), which contains the CPU and its associated circuitry, the
peripheral-processor unit (PPU), 2 multi-purpose controllers, LCD controller, video
interface, HP-IL interface, serial interface, the interface for the optional modem, and
the power supply.
• Memory board (peA), which contains built-in RAM, built-in ROM, the
configuration EPROM, address decoding circuitry, and two plug-in ports.
• Keyboard assembly, which consists of 76 keyswitches (but no active circuitry).

r' ·

Liquid -crystal display module.

• Piezo-electric speaker.
In addition, the mainframe has provisions for two types of optional hardware:
Electrical Design

2- 7

2

• 1200-baud modem, which contains the modem circuitry and its power supplies. It is
installed internally in the mainframe.
• Plug-in module, which usually contains additional RAM or ROM. It is installed in a
plug-in drawer, which is then inserted into one of two external plug-in ports.
Figure 2-3. Portable PLUS Block Diagram

DATA LIM!B - - - CONTROl.. LINES -

-

-

-

---,

I

r----

~

I

~

I

+~---I

I

I

I
I

L __
I

i

I

I

I
CClN"IIlUAATlllH
~

VIDEO
IHTl!AI'ACZ
CONNECTOR

LIQUID

OPTICIHAI..
ICllOEM

I

~

I
I
I

I
I

I
I
I

Pl..l»-INS

CRYST.....

DISPl.AY

The following sections describe the basic operation of the system components.

2- 8

Electrical Design

I,

~
,.•...::

..

2.4.1 CPU
2

The 80C86 CPU communicates on a multiplexed address-and-data bus (20-bit
addresses, 16-bit data). The 80C86 is strapped into minimum mode, and thus produces
its own bus-control signals.

2.4.2 Clocking
All mainframe clocking is contained on the motherboard. The 16-MHz crystal and the
oscillator circuit generate several clock frequencies: 5.33 MHz for the CPU, 2.67 MHz
for the multi-controllers, and 16 MHz for the binary counter, which generates a
2-MHz clock for the HP-IL controller.
The LCD controller has its own 5-MHz oscillator. The PPU has its own I-MHz crystal
and built-in oscillator, which always operates--even while the system is in sleep mode.
(The optional modem has its own oscillator circuit.)

2.4.3 Ready Circuit
The bus-cycle length can vary, depending on the address of the device being accessed.
This is accomplished using the CPU's READY input.
The lower 512K bytes of system memory runs with no wait states (cycle time of 748
ns). The upper 512K bytes of system memory and all I/O addresses operate with one
wait state minimum (cycle times of 935 ns minimum). These cycles are further
extended when the (open-drain) READY line is pulled low.

2.4.4 PPU - Peripheral-Processor Unit
The peripheral processor unit (PPU) is a single-chip microcomputer of the 6805 family.
It has 112 bytes of RAM and 2106 bytes of ROM. The PPU controls the power

supplies, operating modes, and the beeper, and it provides the real-time clock. It runs
even while the system is in sleep mode. The PPU can be accessed if needed via a system
service (Refer to Int 50h in chapter 5.)
A one-byte data transfer between the CPU and the PPU takes about 2.3 ms to
complete.

Electrical Design

2-9

2.4.5 Keyboard Interface
2

The keyboard assembly contains 76 key mechanisms, but no electronic components.
Hardware provides the key location; software maps the location into unique keycodes.
The keyboard is organized into an eight-by-nine matrix, plus three additional function
modifier keys. A matrix key connects a row line to a column line. The
multi-controller alternately cycles between activating all column drivers and sampling
the row lines, and activating all row drivers and sampling column lines.
The three function modifier keys each have an individual pullup resistor to the positive
supply. A closed key pulls the line to ground.

2.4.6 Power Supply
The power supply is overseen by the PPU and provides power for the entire mainframe,
the optional modern, and plug-in boards. Power supply conditions for each of the
system operating modes are:
• Awake mode. VccS and VccDS are +5V (± O.25V).
• Sleep mode. VccDS is +3.25V (± O.16V), VccS floats.
In addition to the two 5 volt supplies there is a negative voltage supply used to bias the
LCD display.

2.4.7 Memory Board
The memory board contains RAM, ROM, address decoding circuitry, the configuration
EPROM, and two plug-in ports. (The plug-in ports are described separately in this
chapter.)

2.4.8 Configuration EPROM
The configuration EPROM resides in I/O memory at even addresses from 8000h to
BFFFh. It is normally an 8Kx8 device (27C64), but it can be a 16Kx8 device (27C 128).
(A 32Kx8 EPROM can be used, but only the upper 16K bytes are addressable.) The
configuration EPROM contains information which the BIOS uses to properly configure
the system. The types of information it contains are:

2 - 10

Electrical Design

~.::

I

• Product Number
2

• serial Number
• Boot Information
• Country Specification
• Constants used by the BIOS
• Numeric Pad Map
• Font Loading Information
• Keyboard Matrix Maps
• System/Error Messages
• System Setup Information
• Option for Boot Code
Each supported language has a different version of the configuration EPROM.
Appendix C contains a listing of the English (U.S.) version. It is possible to customize
the main PAM screen and system/error messages by customizing the EPROM.
Discussion of the option for boot code is in Chapter 11. Because only 8K of I/O
memory is allocated to the configuration EPROM, special restrictions are required to
use a 16K EPROM. For a given I/O address in the EPROM space, a lIbytell access reads
from a different EPROM location than a "word" access reads. For a 16K EPROM, a
"wordll access reads from its upper 8K (2000h through 3FFFh internal), but only the
lower byte is valid; a "byte" access reads from its lower 8K (OOOOh through IFFFh
internal). For an 8K EPROM, both types of accesses read the same data (OOOOh through
IFFFh internal)--but for consistency only IIbytell accesses should be made to an 8K
EPROM. Figure 2-4 illustrates this.

Electrical Design

2- 11

2
Figure 2-4. Configuration EPROM Addressing

(Even Addresses Only)

8K
8000h

16K

OOOOh

8000h

OOOOh

Word Read
(in ax.dx)

Word Read*
(in ax.dx)
Byte Read
(in al.dx)
BFFEh

lFFFh

BFFEh

IFFFh

8000h

2000h

Byte Read
(in al,dx)

Only AL is valid after each read.
BFFEh
* Not recommended.

2 - 12

Electrical Design

3FFFh

2

2.5 Serial Interface
The computer operates as a Data Terminal Equipment (DTE) on its serial interface. The
interface complies with the following industry standards:
• EIA RS-232-C. Electrical specification (except that a 9-pin female connector is
used instead of a 25-pin male connector).
• CCITT V.28. Electrical specification.
• CCITT V.24. Electrical specification (for the nine implemented lines).

Electrical Design

2 - 13

2

Figure 2-5 shows the pin configuration for the nine-pin female serial connector. Table
2-1 lists the signals at the serial connector and relates the configuration to the EIA and
CCITT standards.
Figure 2-5. Serial Connector

5

Female 9-Pin D-Subminiature Connector

o .--- ISO metric M3 x 0.5

o
9

6

Table 2-1. Serial Interface
Pin
Number

Signal

1

Data Terminal Ready
Transmitted Data Out
Received Data In
Request To Send
Clear To Send
Data Set Ready
Ground Reference
Received Line Signal Detect
Ring Detect

2
3
4
5
6
7
8

9

Equivalent
RS-232-C
Pin

20
2
3
4

5
6

7
8

22

RS-232-C
Circuit
Designator

V.24
Circuit
Designator

CD
BA
BB
CA
CB
CC
AB
CF
CE

108/2
103
104
105
106
107
102
109
125

The serial interface function is shared by the multi -controller IC, the PPU, and the
HP-IL IC. The multi-controller IC controls the frame format and receiver/transmitter
status. The PPU controls power for the line drivers and controls the RTS and DTR
output lines. The HP-IL IC maintains the status of the CTS and DSR input lines. The
milti -controller is able to connect either the serial RxD line or its own serial output
line to the receiver's serial input. Thus, the multi-controller is able to isolate the
reciever from the serial RxD line. This is recommended during power-up or
power-down sequences and when serial power is off.
The multi-controller is powered in sleep mode, but is reset as the system comes out of
stop mod'e.
2 - 14

Electrical Design

~

Output Electical Characteristics.

The outputs are the TxD, DTR, and RTS

signals.

2

The low level output voltage, Vol, for the TxD signal is considered the logic 1 state. For
the DTR and RTS signals, it is considered the OFF state. 101 is the magnitude of the
current provided by an output when driving the signal to Vol. All voltages are specified
with respect to GND. The RS- 232-C and CCITT Recommendation V.28 limits are:

Vol (101

=0

rnA)

Vol (3000 ohms < LOAD < 7000 ohms)

-25 V min.
-15 V min.

-5 V max.
500 rnA max.

101 (output shorted to +15 V)

The actual limits guaranteed by the Portable PLUS serial interface design are:

Vol (101

a

0 rnA)

-15 V min.

Vol (101

a

2 mAl

-15 V min.

-6.6 V max.

2.5 rnA min.

45 rnA max.

101 (output shorted to +15 V)

The high level output voltage, Voh, for the TxD signal is considered the logic 0 state.
For the DTR and RTS signals, it is considered the ON state. loh is the magnitude of the
current provided by an output when driving the signal to Voh. The RS-232-C and
CCITT Recommendation V.28 limits are:

Voh (Ioh

=0

+25 V max.

rnA)

Voh (3000 ohms < LOAD < 7000 ohms)

+5 V min.

+15 V max.
500 rnA max.

Ioh (output shorted to -15 V)
The actual limits guaranteed by the serial interface design are:

Voh (Ioh

a

0 rnA)

Voh (Ioh

a

2 rnA)

Ioh (output shorted to -15 V)

+8 V max.

+5.2 V min.
10 rnA min.

+8 V max.

45 rnA max.

Electrical Design

2 - 15

2

Miscellaneous Output Characteristics. RS-232-C and CCITT Recommendation
V.28 require the following characteristics of output signal drivers:

Transition time (between -3 and +3 V):

200 nsec min.

Power-off impedance (+-2 V applied)

300 ohms min.

1.56 usec

ma~.

1.50 usec

ma~.

The actual limits guaranteed by the serial interface design are:

Transition time (between -3 and +3 V):

200 nsec min.

Power-off impedance (+-30 V applied) :

300 Kohms min.

Input Electrical Characteristics. The inputs are the RxD, DSR, CTS, RLSD, and
RING signals. All voltages are specified with respect to GND.

The low level input voltage, ViI, for the RxD signal is considered the logic 1 state. For
the DSR, CTS, RLSD, and RING signals, it is considered the OFF state. Vih is
considered the logic 0 state for the RxD signal and the ON state for the DSR, CTS,
RLSD, and RING signals. The RS-232-C and CCITT Recommendation V.28 require
that a device properly interpret input signals that fall within the following voltage
limits:

ViI (logic

state or OFF state)

Vih (logic 0 state or ON state)

-25 V min.

-3 V ma~.

+3 V min.

+25 V ma~.

However, the serial interface will properly interpret input signals which are within
these larger ranges:

ViI (logic

state or OFF state)

Vih (logic 0 state or ON state)

2 - 16

Electrical

Design

-25 V min.

+0.6 V ma~.

+3.0 V min.

+25 V ma~.

'~

When in SLEEP mode, the serial interface can respond to two of the input signal lines,
RING and RLSD. These signals are properly interpreted when their voltages are within
the following ranges:

ViI (OFF state)

-25 V min.

+0.3 V max.

Vih (ON state)

+2.4 V min.

+25 V max.

LOAD and EI. LOAD is DC resistance of an input signal line measured from that line
to GND. EI is the magnitude of the open-circuit voltage that an input signal line
generates. RS-232-C and CCITT Recommendation V.24 specify these quantities to be
within the following limits:

LOAD (-25 V to +25 V applied)

3000 ohms min.

EI

7000 ohms max.
2 V max.

The actual limits guaranteed by the serial interface design are:

LOAD (-25 V to +25 V applied)

EI

4400 ohms min.

5000 ohms max .
. 05 V max.

Electrical Design

2 - 17

2

Two cables are available for connecting the computer to serial devices: a
modem cable (OTE to DeE) and a printer cable (DTE to DTE). A gender converter (HP
92222F) is available to convert each cable from male to female. Figure 2-6 describes
the modem cable (HP 92221M).

Cables.

2

~

Figure 2-6. Modem Cable

Signal

9-Pin
Male
DTR (108/2) 1
2
TxD (103)
RxD (104)
3 III
RTS (105)
4
CTS (106)
5
DSR (107 ) 6 ..
GND (102)
7
RLSD (109) 8 III
RING (125 ) 9 ..
Shell l

-

25-Pin Signal
Male
20 DTR (108/2)
2 TxD (103)
3 RxD (104)
4 RTS (105)
5 CTS (106)
6 DSR (107)
7 GND (102)
8 RLSD (109)
22 RING ( 125)
Shell
-------- 1
~

Figure 2-7 describes the printer cable (HP 92221P).
Figure 2-7. Printer Cable

25-Pin Signal
9-Pin
Male
Male
6 DSR (107)
DTR (108/2) 1
3 RxD (104)
TxD (103)
2
RxD (104)
3 ...- - - - - - - 2 TxD (103)
8 RLSD (109)
RTS (105)
4
CTS (106)
5 ..
DSR (107)
6 III
20 DTR (108/2)
GND (102)
7
7 GND (102)
RLSD (109) 8 ..
4 RTS (105)
RING (125) 9
~
5 CTS (106)
Shell
Shell
Signal

--l

-r

2 - 18

Electrical Design

~

2

2.6 HP-IL Interface
The HP-IL interface conforms to the Hewlett-Packard Interface Loop standard, as
described in The HP-IL Interface Specification (HP part number 82166-90017).
Standard "INII and "OUTII HP-IL receptacles are provided on the I/O plate.

2. 7 Recharger Interface
Power may be applied to operate the computer and charge the internal battery pack
through a two pin jack (labelled "RCH") which is located on the rear panel. The RCH
connector is interfaced with the mainframe's internal battery charger circuitry. Both
computer operation and battery charging occur simultaneously when power is applied as
long as the power that is applied at the RCH input is more than the power that the
computer is using. If this is not the case, battery drain continues, but at a reduced rate.
Battery Charger Operation. The battery charger circuit was designed to work
with a specific group of AC adapters made by Hewlett-Packard. (The U.S. model is the
HP- 82059D.) These adapters provide current limiting; therefore the battery charger
circuit within the computer is designed without current limiting. Power that is applied
to the RCH input must therefore be adequately limited to ensure the survival of the
computer's circuitry. Excessive voltage can cause the DC rectifier to be damaged.
Excessive current can cause the battery fuse to blow. Excessive power applied when the
battery is nearly fully charged can damage the battery charger's voltage regulator.

Current from the recharger has two possible paths, the computer circuits, and the
battery. When the battery charger regulator is providing more current than the
computer circuits are using, excess current flows into the battery, charging it.
Otherwise, current flows out of the battery to satisfy the computer's needs.
The voltage applied to a fully charged battery by the internal voltage regulator is
selected to give optimum battery life. This optimum voltage (called "float" voltage)
varies with temperature. The battery charger regulator is designed to maintain the
proper float voltage over a temperature range of -10 to +55 C.

Electrical Design

2 - 19

The computer maintains a Battery Fuel Guage
(main PAM screen) which operates during battery charging. This indicator assumes a
certain minimum charge current from the regulator when an AC adapter is connected.
If less than this current is provided) the battery percentage indication may show a
higher percentage of charge than the battery actually has. It is intended that the
battery percentage indication always under-estimate the remaining battery charge)
rather than over-estimate it.
Battery Percentage Indicator.

2

DC Requirements of the RCH Port.

DC power may be applied to the RCH input
in the form of a DC voltage source with a series output resistance. The limitations on
the voltage source and series resistance are, in general) functions of temperature. This is
due to the varying response of the battery charger voltage regulator to temperature, as
required by the battery. The limits are listed in Table 2-2. The maximum input
current limitations are given for reference only.
Table 2-2. Recharger DC Limits

-10

o

10
20

25
30

40
50

60

Maximum Input
Voltage
(Volts)

Maximum Input
Current
(Amps)

Minimum Input
Voltage @ 0 Current
(Volts)

21
21
21
21
21
21
21
21
21

0.5
0.5
0.5
0.5
0.5
0.5
0.5
0.5
0.5

9.06
8.93
8.83
8.72
8.66
8.59
8.46
8.32
8.19

The limitations on series resistance given below guarantee that the maximum input
currents are not exceeded. The series resistance limitations are functions of the value of
the DC voltage source used to supply power to the RCH input. They are also functions
of battery charger circuit operating parameters which are not detailed here. Table 2-3
specifies the minimum and maximum limitations of the series resistance for a given DC
voltage source (open circuit voltage). Limitations are given for two operating
temperature ranges--a resticted office temperature range and the full operating
temperature range of the Portable PLUS.

2 - 20

Electrical Design

.~

,

Table 2-3. Recharger Series Resistance Limits

2
Office
Temperature Range
(15 to 35°C)

Voltage
(Volts)

9*
10*
11 *
12
13
14
15
16
17
18
19
20

Minimum
Resistance
(Ohms)

5.2
7.2
9.2
11.2
13.2
15.2
17.2
19.2
21.2
23.2
25.2
27.5

Full
Temperature Range
(-10 to 60°C)

Maximum
Resistance
(Ohms)

6.0
8.0
10.0
12.7
16.3
19.9
23.4
27.0
30.6
34.1
37.7
41.3

Maximum
Resistance
(Ohms)

Minimum
Resistance
(Ohms)

---

---

8.0
10.0
12.0
15.2
18.8
22.3
25.9

7.6
9.6
11.6
13.6
15.6
17.6
19.6
23.7
28.7
34.2
40.2

29.~

33.0
36.6
41.0

* Battery charging with these supply voltages is possible but not
recommended. It may result in PAM)s Battery Fuel Gauge over-estimating
the remaining capacity of the battery.

AC requirements of the RCH Port. AC power may be applied to the RCH input
in the form of an AC voltage source with a series output resistance. The source and
resistance should match the characteristics of the Hewlett-Packard AC adapters which
are designed to be used with the computer.

Output Voltage (open circuit)

11.6 ± 0.2 volts rms

Output Resistance

11.0 ± 0.5 ohms

Frequency

47.5 Hz minimum. 440 Hz maximum

Electrical Design

2- 21

2

Automotive Recharger. Conceptually, the circuit shown in figure 2-8 fulfills the
requirements for a 12 Vdc automobile recharger. This circuit has not been thoroughly
tested and Hewlett-Packard assumes no responsibility for its use. Other circuit
topologies are clearly possible.

Figure 2-8. Automotive Recharger Schema tic Diagram
AUTO
BATTERY

r
_

UGHTER PLUG
VI/FUSE & CABLE
PLUG

CURRENT UMITING
PTC

TRANSIENT
SUPPRESSOR

HP RECHARGER
CABLE W/PlUG
[5061-2221)

COMPUTER

THERMISTOR
FUSE
r-----v,""----'v\.r-----r----------~')

12

1.6KE18C

-VQC

PORTABLE
PLUS
or

HP110

• The automobile's voltage regulator must maintain a dc level between 11 and 16 volts
to provide effective and safe power.
• An automobile's 12 Vdc source can experience a short-duration transient of hundreds
of volts, or a high energy transient of up to 80 volts which may not decay for several
seconds. Thus, transient voltage suppression must be provided to protect the
computer. In addition, the HP recharger cable includes miniature back-to-back
27-volt Zener diodes in its plug--they may open or short when overstressed. (These
Zeners prevent a high voltage static discharge when the plug is inserted or removed.)
The transient suppressor should protect both the computer and the recharger plug's
Zener diodes. Placing the suppressor on the resistor's output side allows it to survive
the voltage transients it is designed to suppress. (The 1. 5KE 18C is manufactured by
General Semiconductor and Motorola.)
• The lighter plug must be fused to protect against a gross short. The fuse size (300
rnA) and type (slo-blo) should be chosen to survive high energy transients while still
blowing for a sustained high current condition. Note that a current ranging from
300 rnA (indefinitely long duration) to 1200 rnA (very short duration) may be
required to blow a 300 rnA fuse.

2 - 22

Electrical Design

~

• The thermistor/resistor combination must be bonded in intimate thermal contact; a
silicone heatsink compound is a good choice. The resistor limits the current during
normal operation and is large enough to sustain a direct short at the output--for
which the thermistor should then trip.
The thermistor's resistance is negligible when cool. Internal self heating and external
heating from the resistor combine in a high current condition (about 500 mAl to
IItrip" the thermistor into a high resistance state. The thermistor will maintain this
low current state until power is removed. (The ROE 18 5 is manufactured by
Raychem Corporation, Menlo Park, CA.)
• Although the HP recharger cable will plug into a number of :tIP computers,
calculators, and peripherals, a dc circuit designed for the Portable PLUS and HP 11 0
may not provide effective or safe power for other devices. (The recharger cable is
manufactured by Hewlett-Packard. Refer to appendix I for more information.)
• A package containing the thermistor, resistor and transient suppressor must be
designed to avoid overheating or melting while still sustaining a current not quite
large enough to blow the fuse. The package must also protect the user from possible
contact with any wire or component, and should provide adequate cable strain relief.

2.8 Video Connector
The video interface connector is located inside the battery compartment. Six of the
signals that drive the internal LCD are present at the video interface connector. These
signals can be used by an external driver to generate a video display. Table 2-4
describes the video signals.

Electrical Design

2 - 23

2

2

Table 2-4. Video Signals
Pin

Name

7
5
2
I
4
3
6,8

CL2
FLM
011
012
013
014
GND

Description

Dot Clock
Frame Clock
Upper-Left Quadrant Data
Upper-Right Quadrant Data
Lower-Left Quadrant Data
Lower-Right Quadrant Data
Ground Reference

Frequency

1.25 MHz
52 Hz
625 KHz max.
625 KHz max.
625 KHz max.
625 KHz max.

--

Note: Pin 1 is the left-most pin as you face the rear of the product.

Table 2-5 lists the voltage and timing specifications for the video signals.
Table 2-5. Video Specifications
Parameter

All: high output voltage
All: low output voltage
CL2: high pulsewidth
CL2: risetime
CL2: falltime
FLM: high setup to CL2 fall
FLM: high hold from CL 2 rise
DIl-DI4: Data setup to CL2 fall
DIl-DI4: Data hold from CL2 fall

2 - 24

Electrical Design

Specification

3.80 volts min.
0.95 volts max.
225 ns min.
160 ns max.
115 ns max.
280 ns min.
370 ns min.
210 ns min.
270 ns min.

2

2.9 Modem Connector
The modem connector, located on the motherboard, provides an internal interface
designed for the optional modem. The signals provided at the modem connector are
described in table 2-6. All data and control signals are CMOS-compatible. The AUX
Device Driver handles the low level modem control.

•

An asterisk in a signal name (*) indicates a negative-true signal (active
low).

N ote

Table 2-6. Modem Connector
Pin

r
2

3,5,7,11
4

r

Signal

Description

Direction

MRESET*

Modem Reset. A low voltage should
reset the modem. This line will be
driven low before MODEMON goes
low, and will remain low 50 ms
after MODEMON goes high.

~

Modem

MRING*

Modem Ring. Falling edge indicates
a ring signal on the phone line.
This line should function when the
modem is either on or off.
Mainframe has 47K pullup resistor
to VccDS on this line.

+-

Modem

GND

Ground Reference.

MSOUT

Modem Serial Out. Transmitted
data line from mainframe to
modem. Mark is 5V.

~

Modem

Electrical Design

2 - 25

Table 2-6. Modem Connector (Continued)
2

6

2 - 26

MSIN

Modem Serial In. Received data
line from modem to mainframe.
Mainframe has 47K pullup to
VccDS on this line. Mark is OV.

+-

Modem

.~

8

MCARRIER

Modem Carrier. Falling edge
indicates a loss of carrier on the
phone line. Required to function
only when the modem is on.
Mainframe has 47K pullup to
VccDS on this line.

+-

Modem

9

VBAT

Battery. Unregulated battery
positive supply line (fused on
motherboard). 5.6 to 7.5 Vdc.

~

Modem

10

MODEMON

Modem On. A high voltage on this
line should turn on the modem
power supply. When this line is low,
the modem should reduce its power
consumption to standby (microamp)
levels.

~

Modem

12

MRCM

Modem Return to Command Mode.
A high voltage on this line for 100
ms (or longer) returns the modem to
command mode.

~

Modem

Electrical Design

Table 2-7 lists the specifica tions for a circuit connected to the modem connector.
2

Table 2-7. Specifications for Modem Port

r

Signal
Input:
MSOUT

MRESET*

MODEMON

MRCM

Parameter

ViI
Vih
Vii
Vil
Vih
Vih
ViI
ViI
Vih
Vih
ViI
ViI
Vih
Vih

Open-Drain Outputs:
Vol
MSIN
Vol
MCARRIER
MRING*
Vol

Min

Max

DC Load

OV
4.25V
OV
OV
2AV
4.65V
OV
OV
2AV
4.65V
OV
OV
2.4V
4.65V

OAV
5.25V
0.1 V
OAV
5.25V
5.25V
0.1 V
OAV
5.25V
5.25V
0.1 V
OAV
5.25V
5.25V

101
loh
101
101
loh
loh
101
101
loh
loh
101
101
loh
loh

OV
OV
OV

0.9V
0.8V
0.8V

101
101
101

~
~

~

~
~

~
~
~
~

~
~
~
~
~

~
~

~

1.6 rnA
-1 SO uA
10 uA
800 uA
-2 rnA
-10 uA
10 uA
800 uA
-8 rnA
-10 uA
10 uA
800 uA
-2 rnA
-10 uA

113 uA
113 uA
113 uA

The modem interface takes on the following state in sleep mode:
MRCM: OV nominal.
MRESET*: OV nominal.
MODEMON: OV nominal.
MSIN: 47K pullup to 3.25V nominal.
MSOUT: 3.25V nominal
MRING*: 47K pullup to 3.25V nominal.
MCARRIER: 47K pullup to 3.25V nominal.

Electrical Design

2 - 27

2

2.10 Plug-In Ports
The Portable PLUS provides two plug-in ports that are each capable of accepting a
plug-in module, which becomes part of the system.

2.10.1 Generic Module Description
A plug-in module for the Portable Plus is a printed-circuit assembly mounted in a
"drawer" that fits into the m~inframe. This provides the capability to expand or
customize the hardware configuration of the computer. The modules become an
integral part of the computer bottom case.
These modules would typically be additional RAM or ROM for the computer system but
might also be a serial or parallel interface or any other custom circuit which can be
operated from the system bus.
The mainframe allows up to two plug-in modules to be plugged in at the same time.

2.10.2 Electrical Specifica tions
There are two categories of requirements which must be met in order for a plug-in
module to operate correctly. First, the module must provide the appropriate
identification and control registers to allow the system software to integrate the module
into the operating environment. The second set of requirements are associated with the
interfacing of the mainframe electrical circuitry with the circuitry of the module.
These specifications include such things as power consumption, drive capability, loading
limitations, digital signal timing, and environmental tolerances.

2 - 28

Electrical Design

Plug-In Connector.

The interface signals for the plug-in ports are listed in table

2-R

2

r- .,

An asterisk (*) in a signal name indicates a negative-true signal (active
low).

Note

Table 2-8. Signals for Plug-In Ports
Name

Direction

LAl9 - LAO

Latched address bus (20 bits). Low voltage on
LAO indicates data transfer on the low byte of
the data bus) 07-00. LAI9-LA16 are low
during I/O cycles.

-. Plug-In

LBHE*

Latched byte high enable. Low voltage
indicates data transfer on the high byte of the
data bus) 015-D8. This line switches with
LAI9-LAO.

-. Plug-In

LM/IO*

Latched memory or I/O signal. High implies
memory access; low implies I/O access. This
line switches with LA 19-LAO.

-. Plug-In

BALE

Buffered address latch enable. Pulses high to
signify start of CPU bus cycle. Occurs
without RO* or WR* pulsing low during
interrupt acknowledge cycles.

-. Plug-In

IOCS*

I/O space address decode. Low active. Sixteen
words wide. Pulses inactive at beginning of
cycle. Used to access the 10 and configuration
registers of the plug-in card.

-. Plug-In

015 - DO

Demultiplexed data bus (16 bits).

.. Plug-In

(",

r

Description

Electrical Design

2 - 29

Table 2-8. Signals for Plug-In Ports (Continued)

2

BRD*

Buffered CPU read strobe. Low active. Due
to a race in the 80C86 CPU, glitches may
appear on this line.

-+ Plug-In

BWR*

Buffered CPU write strobe. Low active.

-+ Plug-In

DEN*

Data bus driver enable. Low active. Timing
strobe to turn on data buffers when plug-in
card is addressed.

-+ Plug-In

DT/R*

Data bus buffer direction control. Low
voltage: plug-in buffers drive data out to the
mainframe. High voltage: plug-in buffers
drive mainframe data to plug-in card.

-+ Plug-In

READY

Handshake line that extends the length of a
CPU bus cycle. A low voltage on this line
extends the cycle (by inserting processor wait
states) until the READY line returns to a high
voltage. The processor bus cycle then ends
normally. READY should be driven with
open -drain devices only. The mainframe has
a 4.7K-ohm pullup resistor to VccS on the
line.

+- Plug-In

SLEEP*

A low voltage on this line indicates that the
system is going to sleep. Intended for use as a
reset line for devices on the VceS supply. In
response, a plug-in card should reduce power
to standby levels, prepare for VecS to float,
and the plug-in interface to assume its sleep
state. Low for 200 ms after VccS
re -energizes.

-+

2 - 30

Electrical Design

Plug-In

,~

Table 2-8. Signals for Plug-In Ports (Continued)

2

DSLEEP*

Deep sleep. Low voltage indicates that the
mainframe is preparing to have its plug-in
cards reinserted. Intended for use as a reset
line for devices on the VccDS supply. Driven
to VccDS in awake mode, and when both
plug-in cards are present in sleep mode.
Driven low when a plug-in card is removed in
sleep mode (so devices on VccDS must be able
to reset with 0 volts on DSLEEP* when
VccDS is at 3.25 volts). Stays low until both
plug-ins are inserted and the @ key is
pressed to wake up the system.

...... Plug-In

PRESENT*

Low-voltage signal to mainframe that card is
plugged in. Thus all cards should ground this
line. Care should be taken to minimize
leakage paths on this signal.

~

r

INT*

Negative-edge-triggerred interrupt line.
Mainframe has an internal 47K ohm pullup
resistor to DSLEEP* on this line. If the
plug-in's software driver has enabled this
interrupt, it can be used in a conventional
sense in awake mode, and can wake up the
system from sleep mode. (In sleep mode, the
plug-in should not pull this line low, unless it
desires to wake up the system.) INT* pullup is
sourcing current in sleep mode, except when a
plug-in card is removed. When this occurs,
DSLEEP* is switched to ground. This avoids a
possible latchup condition of having a high
voltage on INT* before the plug-in VccDS bus
energizes as the plug-in is inserted.

+- Plug-In

r

VccDS

+5 volts nominal (awake mode), +3.25 volts
nominal (sleep mode). Energized except when
the mainframe is in stop mode.

...... Plug-In

~

Plug-In

Electrical Design

2- 31

Table 2-8. Signals for Plug-In Ports (Continued)

2

VccS

+S volts nominal (awake mode). Energized
except when the mainframe is in sleep mode
or stop mode.

GND

Mainframe logic ground reference.

2 - 32

Electrical Design

..... Plug-In

Figure 2-9 shows the connector in the plug-in port. The even-numbered pins are on
the top row (toward the top case); the odd numbered pins are on the bottom. Pin 1 is
the lower-left pin when looking into the port; pin 62 is the upper-right pin.
Figure 2-9. Plug-In Connector

GND
06

62 61

VeeOS

07
04
05
VeeS 56 55 03
02 54 53 01
DO 52 51 VccOS
BWR* 50 49 LM/IO*
60 59
58 57

LBHE*
BALE
44 43 BRO*

LAO

48 47

GNO
OT/R*
OEN*
GNO

46 45

LA12
LAl0

28 27
26 25

LA8

24 23

42
40
38
36
34
32

41
39
37

READY

OSLEEP*
LA18
LA19
35 LA17
LA16
LA14
33 LA15
VeeS
31 IOCS*
GNO 30 29 INT*

VeeS 22 21
LA6
LA4
LA2
GND

014
012

20
18
16
14

19
17
15
13

LA13
LAll
LAg
LA7
LA5

LA3
LAl

SLEEP*

12 11
10

9

010

015
013
8 7 011
6 5 D9

08
GND

4
2

3
1

VeeS

VecDS
PRESENT*

Electrical Design

2- 33

2

The four timing diagrams on the following pages show timing
for the plug-in bus when the plug-in board contains RAM) ROM) and I/O space.

Bus Specifications.

2

The lower 1/2 megabyte in memory space runs with no CPU wait states. There is no
way to extend CPU bus cycles in this address range. The upper 1/2 megabyte of
memory space and all 64K bytes of I/O space run with a minimum of one wait state)
and can be further extended using the READY line.
For extended cycles:

BALE low to READY low:
289 ns max.
IOCS* low to READY low:
236 ns max.
READY tristate to data is valid: 138 ns max.
Figure 2-10. Plug-In Bus Read Cycle - Lower Memory

D~:J:"O) : ~
L~~~~~~~
L~~~~~

flOAT

~DA~\II ~

DlU YlliD

o
H

f

367 UI

I

//#j.;;-

BAlE

.....j

2 IIIN:>

148 IIset
549 NIH
313 Ill! ~

t5 IIIN:

~

~DA8I'\N ~

flOlT

§2

Ie::

'"

lDDAESS VALID

"-

L

MIN:>

Ie:

T

:i

r-151 NIH

2 III N

LL£7

I

2&5 111M ~

.1125 IIU

o

DElli

DI/AI

106 Ill! ~

:~
H

r<-2H 111M

L~

TIME IN NANOSECONDS.

2 - 34

373 IIU

IIIH

Electrical Design

~'--------------;(
I
I t09

~

...

11111

~I

~

Figure 2-11. Plug-In Bus Write Cycle - Lower Memory
2
DATlHL~
~",---

0<15:0>

~
-/~

D_A_J_A_Y_A_LI_D

~45

MIN

~

ADDRESS VALID

.I

-

15 II III

BALE

///"-90

J

5U 11111
H8NSEC

-

I
42 11111

37i! MIll

--;;.j

":\..
llJll~

IU !lAX

IE 223

!lAX

I

230 MI II ---.;;.
280 IlIN

;tIE

I

L U 2 11111

BlfR'

BRO'

loEoE,...------

352 III II

DEll'

: -d#....,..-r->.-----~-III-....II~'--------------J/

OJ fR'

:~

TIME IN NANOSECONDS.

Electrical Design

2-35

Figure 2-12. Plug-In Bus Read Cycle - I/O and Upper Memory
2

o

11111 ~

Ie

ADDRESS VALID

I

736 11111
500 UX ~

15 11111

//~,90

BAlE

J
~11l/

5H MAX

I

11111 - ; 0

~

/

US IlSEC

"

///////

IDCS'

/77
U7UX--;'

rlSI

IIIN~

.LLff

SIR.

452 11111

I

2 IIIH

"-( 312 IIAX

BRO.

/

~

373

lin

~ 293 MAX ----!Io
DENJ

I

"

214 11111

E

109 IIIN

;,1

DT IR.

~AX
READY

H
l

289 MAX

~

FLOAT

.1

~

13E
~FlDAT~

TIME IN NANOSECONDS.
NOTE: IOCS* PULSES LOW ONLY FOR 1/0 CYCLES WITH AN ADDRESS CORRESPONDING
TO THE 16 -WORD PLUG -IN PORT ADDRESS RANGE.

2-36

Electrical Design

Figure 2-13. Plug-In Bus Write Cycle - I/O and Upper Memory
2

DATA YAlIO

i'E-AS

"

I

////

1c<-90 IIIH

10CS-

~

~HIllN~
935 IISEC

15 IIIN
BAlE

IIIN

ADDRESS VALID

1

151 III1l

"
~

-I

~232 IIAX ~

"

/////

-223

IU lUX

~

II AX

Al7 IIIN-;OO

1

r

467 Ill"

URI

fE---

112 III1l

I

/

BRO'
539 11111

OEM.

~

/

9 II III "\.

r

DT IR.

~l]6 IIAX
~289

IIAX

~flOAT~

READY

TIME IN NANOSECONDS.
NOTE: IOCS* PULSES LOW ONLY FOR I/O CYCLES WITH AN ADDRESS CORRESPONDING
TO THE 16-WORD PLUG-IN PORT ADDRESS RANGE.

Electrical Design

2-37

2

During an interrupt acknowledge cycle, the plug-in bus receives normal BALE and
DEN'1' pulses, but BRD'1' and BWR * remain high. The READY line is still sampled by
the mainframe. The CPU cycle is in I/O address space, but the address bus is
indeterminate. If the address is that of the 10CS'1' space, the waveforms shown in figure
2-14 occur.
Figure 2-14. Plug-In Bus Interrupt Acknowledge Cycle

BALE

5V-

Jl

OV5VIOCS*

ov-

5V-

DT/R*
OV5V-

l

n
I
I

DEN*
OV5V-

BRD*

ov-

5V-

BWR*

ov-

The plug-in card may pull READY low (inactive) in response to the IOCS* low, but it
must release READY when IOCS* returns high so that the bus can complete
normally--bus operation will wait for READY to return high.
The addressed plug-in is allowed to drive the data bus to the mainframe in response to
DEN'1' and DT/R'1' low.

2 - 38

Electrical Design

Plug-In Bus Loads. Circuits connected to the plug-in ports should not exceed the
capacitive loads listed in table 2-9. (Be sure to add the plug-in connector load when
calculating the total capacitive load.)
Table 2-9. Plug-In Bus Loading
Signal

LAI9-LAI4
LAI3-LAI
LAO
LBHE*
LM/IO*
BALE
IOCS*
DI5-DO
DEN*
DT/R*
DSLEEP*
SLEEP*
READY
BRD*
BWR*

Capacitive Load

70 pF max.
60 pF max.

70
70
70
50
35
30
25
30
50
50
25
280
280

pF max.
pF max.
pF max.
pF max.
pF max.
pF max.
pF max.
pF max.
pF max.
pF max.
pF max.
pF max.
pF max.

DC Load

IS uA max.
15 uA max.
IS uA max.
15 uA max.
15 uA max.
IS uA max.
5 uA max.
10 uA max.
40 uA max.
40 uA max.
50 uA max.
50 uA max.
20 uA max.
40 uA max.
40 uA max.

Electrical Design

2 - 39

2

Plug-In Power loads.

The allowable power supply loads are listed in table 2-10.

2
Table 2-10. Plug-In Power Loads
Supply
Awake Mode:
VccDS (5V ± 5%)
VccS (5V ± 5%)
Sleep Mode:
VccDS (3.25V ± 5%)

*

DC Current

Capacitance

(75 rnA max.
VccDS) VccS combined)

25 uF max.
25 uF max.

300 uA max.*

This maximum current severely limits battery life in sleep mode. Typical plug-in
modules draw less than 50 uA in sleep mode.

•

N ote

Plug-in card software drivers are expected to provide power consumption
levels to the system using the appropriate INT 50h service) to ensure the
accuracy of the PAM battery fuel gauge.

Voltage Levels for Plug-in Bus.
voltage levels for the plug-in bus.

Table 2-11 shows the required input and output

Table 2-11. Voltage Levels for Plug-In Bus
Symbol

Vii
Vih
Vol
Voh

2 -40

Description

Input low voltage
Input high voltage
Output low voltage
Output high voltage

Electrical Design

Voltage

0.8V max.
Vcc - 1.0V min.
0.4V max.
Vec - O.SV min.

The plug-in boards are required to drive the
loads listed in table 2-12. (Be sure to exclude the connector and the board itself when
evaluating the plug-in device's drivers.)

Requirements for Plug-in Drivers.

Table 2-12. Requirements for Plug-In Drivers
Signal

Capacitive Load

DC Current Load

D15 - D8

248 pF max.

126 uA max.

D7 - DO

272 pF max.

128 uA max.

READY

85 pF max.

1.5 rnA max.

INT*

45 pF max.

118 uA max.

2.10.3 Architectural Requirements
Though the circuitry of a plug-in module is mostly unique to its specific function, the
architecture of the module must conform to the following interface specifications in
order to function properly in the mainframe environment. Identification and control
registers must be provided as described in the following two sections.
Each plug-in module slot has 16
word-wide I/O address locations assigned to it. These address locations are used for the
control and status information which is required by the system and by the application
for which the module is designed. This group of 16 address locations is unique for each
plug-in module slot, so there are two 16-word address spaces designated in the memory
map for the two slots.

Identification and Control Registers.

Since the two module slots are virtually identical, a module does not "need to know"
which of the two slots it is installed in. However, for the system to associate each of the
installed modules with the I/O address space into which it is mapped, the hardware
pre-decodes a "module select" line which is unique to each slot and is used by the
module to enable accesses to its control and identification registers. This "module select"
signal is called IOCS*. Thus of the signals going to the two plug-in module slots, one
signal that is not logically identical in both slots is the IOCS* signal, which is never
Electrical Design

2- 41

2

2

active in both module slots at the same time. (The only other signal that isn't identical
in both slots is the INT* signal.)
When the IOCS* signal of a module is active, the group of special I/O addresses
associated with a module installed in that particular slot is being selected. The module
can then execute the appropriate bus cycle using signals LA4-LA 1, LAO, and LBHE* to
select the specific address within the group and using signals BRD* and BWR* to
control the type (read or write) and timing of the data transfer. The timing of the
10CS* signal is logically equivalent to the BALE signal.

•

N ote

All modules must use the IOCS* signal to select their identification and
control registers, since this is the only mechanism by which the system can
uniquely identify and access these registers when two modules are
installed.

The 16 word-wide address locations selected by the IOCS* signal are referred to here as
"local I/O address locations"--that is, the I/O address range selected by 10CS* and the
specific location defined by address lines LA4-LAO and LBHE*.
Virtual Modules. An individual plug-in module is logically partitioned into two
"virtual modules", each with its unique identification and control registers. This allows
for the possibility of up to four uniquely controlled and operated virtual modules to be
configured into a system at once (two virtual modules per physical module).

The local I/O locations of a physical module are logically partitioned into two
sub-groups of eight address locations. One of these eight-word sub-groups is assigned
to each of the two virtual modules. Address signal LA4 is used to select one or the
other of the two sub-groups and signals LA3-LAO and LBHE* are used to address
individual bytes within the sub-group. Signal LA4 is therefore used to distinguish
between the control/status registers of the two virtual modules.
Of the eight I/O word addresses assigned to each virtual module, one byte-wide address
location is reserved for the identification register of that virtual module while the
remaining address locations are available to be used by the virtual module as needed by
the application for which the module was designed.
The identification registers of the two virtual modules are assigned to local I/O
addresses "00000" and "10000" binary (LA4-LAO, low byte). These "local" addresses
correspond to the system I/O addresses COh and DOh or EOh and FOh, depending on the
2- 42

Electrical Design

~

}

particular slot in which the module is installed. Figure 2-15 describes the
identification and general-purpose registers. You can read the module identification
using system services interrupt SOh (refer to chapter 5).

r

Figure 2-15. Plug-In Module Registers

Plug-In 2,
Virtual
Module A
Plug-In 2,
Virtual
Module B
Plug-In 1,
Virtual
Module A
Plug-In 1,
Virtual
Module B

OOCO

+---- Identification registers:
1------- General

0000

01000000
00100000
0001---00000000

RAM Module
ROM/EPROM Module
Reserved
No Module

Other registers:
General-purpose read/write

OOEO

OOFO

Plug-in port 1 1s behind the (Return) key.
Plug-in port 2 is behind the CII) key.
The identification register of each virtual
module is read by the system to determine the type of virtual module which is installed.
The identification number read from that location must conform to the standard
presented in figure 2-15 above. You can read the identification of a module using the
system services interrupt SOh.

Identification of Virtual Modules.

There must be an identification register for both virtual mopules within a physical
module. If only one virtual module is utilized» then the identification byte for the other
Electrical Design

2- 43

2

2

virtual module must be "00000000". An identification register is a single byte and is
generally "read-only" since it always returns the identification code.
Initialization of Virtual Modules. When a system is booted, the byte Oh is written
to the 16 high- and low-byte local I/O address locations of each virtual module with a
uROM" identification. For other types of virtual modules, only the 8 low-byte locations
are zeroed (the high-bytes aren't altered). All modules must respond by being disabled
and must not respond to any memory accesses other than to their local I/O addresses.
Since the initialization of ROM or RAM virtual modules is done by the system software,
these modules must strictly conform to certain standards, which are described next.
Special Requirements for ROM/EPROM Plug-In Modules. The single control
register for a ROM (EPROM) plug-in module is at the same location as its identification
register, local I/O address "xOOOO". The value written to this register can select one of
up to eight installed ROMs:

0-------

Module Disabled.

l----XXX

Module Enabled, Bank XXX Selected (000-11l).

The protocol for determining whether or not a ROM is installed in the selected ROM
socket involves initializing the module's data bus to zero (by reading the identification
register), and then reading from the first memory location of the ROM (or reading the
floating bus if no ROM is installed in the selected ROM socket). The first memory
location of ROMs are specifically non -zero, so that it can be determined whether or not
a ROM is installed in a particular socket position (as selected by the control register
contents).
The use of this procedure requires that the ROM data bus not be subject to current
leakage which would pull the bus to a logic 111 11 voltage level when it is not being
actively driven. It is therefore recommended that the design of any ROM drawer
include pull-to-ground resistors on the data bus of the module (typically lOOK-ohm),
thus helping to assure that the data bus retains a 110" state between the time when the
identification register is read and when the address location of the first byte of the
ROM is read.
Special ReqUirements for RAM Plug-In Modules. The presence of a control
register for a block of RAM does not imply that any RAM components are installed for
2 -44

Electrical Design

.~

that block. However, RAM must be installed in complete blocks of 128K bytes, and
these blocks must be installed such that their respective control registers are
consecutively located in the local I/O address space. In other words, the first block of
RAM installed in a virtual module must be installed in the position controlled by a
control register located at local I/O address "X OOOO" (block 0), the second at control
location "x0002" (block I), etc. Up to eight 128K-byte blocks of RAM can be installed
in each virtual module, providing the potential for a plug-in module (two virtual
modules) to contain up to 2M bytes of RAM.
The values written to the control registers determine the lower memory boundaries for
the corresponding 128K-byte blocks of RAM:

0-------

Module Disabled.

1---XXX-

Module Enabled, Lower Boundary for Block set at (XXX x 128K).

For reasons similar to those described in the preceding section, RAM modules should
include lOOK-ohm pull-to-ground resistors on each data bus where RAM may be
installed.
Plug-in devices should respond appropriately to three
operating conditions that are implemented by the mainframe:

Modes of Operation.

Awake Mode: The DSLEEP* and SLEEP* lines are both inactive (high voltage) so both
supplies (VccS and VccDS) are at 5 volts. The CPU is active. Plug-in cards should be
capable of handing long delays without bus cycle access, when the CPU is halted.
During 80C86 interrupt acknowledge cycles an I/O space cycle occurs. BALE pulses
normally, and the address is undetermined. DEN* and DT/R'1' pulse low normally.
BRD* and BWR* remain at high voltage levels. The addressed plug-in is free to drive
the data bus at this time.
Plug-in cards must handle occasional glitches to ground on the BRD* line after BRD'1'
has risen high normally at the end of a bus cycle.
Sleep Mode: To initiate sleep mode, the PPU drives the SLEEP'1' line from 5V to OV.
This resets the CPU (80C86). After 20 microseconds, power supply sequencing begins:
VcCS floats, and VccDS goes from 5V to 3.25V. VccDS reaches 3.25V after about 10
milliseconds, and VcCS drops to less than 1V after about 400 milliseconds.

Electrical Design

2- 45

2

2

In this state, the CPU is unpowered. Plug-in devices should reduce power consumption
to standby levels (in the microamp range). The plug-in bus takes on the following state
in sleep mode:
LAI9-LAO: Floating (with lOOK-ohm passive pulldowns to ground).
LM/IO*: Floating (with lOOK-ohm passive pulldown to ground).
LBHE*: Floating (with lOOK-ohm passive pulldown to ground).
D 15-00: Floating (with lOOK-ohm passive pulldowns to ground).
BALE: Floating (with lOOK-ohm passive pulldown to ground).
BRD*: Floating (with lOOK-ohm passive pulldown to ground).
BWR*: Floating (with lOOK-ohm passive pulldown to ground).
DEN*: Floating.
DT/R*: Floating.
DSLEEP*: Driven to high voltage (3.25V nominal).
SLEEP*: Driven to low voltage (OV nominal).
IOCS*: Floating (with lOOK-ohm passive pulldown to ground).
READY: Floating.
INT*: 47K-ohm series resistance to DSLEEP*.
VccDS: 3.25 volts nominal.
VccS: Floating.
The system remains in sleep mode until the @ key is pressed or a system interrupt is
generated (keyboard interrupt, RS-232 ring, modem ring, plug-in interrupt, or
real-time clock interrupt). The wakeup sequence depends upon the condition at that
time: no plug-in module has been removed, or a plug-in module has been removed.
If no plug-in module has been removed, VccS energizes to 5V, and VccDS rises from
3.2SV to SV. VccS reaches 5V after about 5 milliseconds, and VccDS reaches 5V in
about 8 milliseconds. After 200 milliseconds, the SLEEP* line goes high, and the CPU
begins executing instructions.
If a plug-in module has been removed, it triggers certain events at that time. DSLEEP*
is driven from 3.25V to OV to reset any module that's inserted and minimize latchup.
This signal also resets all devices operating on VccDS (3.25V) and disables all system
interrupts. The @ key can wake up the system only after a module has been installed
in the port. When the @ is pressed, DSLEEP* is raised to 3.25V, then the normal
wakeup sequence occurs.

Sleep mode is also active when power is first applied to the system by the battery
jumper. At this time, SLEEP* is at OV, and DSLEEP* follows VccDS. The system
doesn't wake up until after both plug-in ports are occupied and the @ key is pressed.

2 -46

Electrical Design

Then DSLEEP* pulses low for 80 microseconds, and the normal wakeup sequence
occurs.

2

Stop Mode: Removal of either one of the plug-in drawers while the system is awake
causes the mainframe to enter stop mode and shut down all of its power supplies. The
power supplies remain shut down until both plug-in drawers are plugged in again and
the (I) key is pressed. Then the normal wakeup sequence occurs.

Electrical Design

2 - 47

r

3

Mechanical Design

3. 1 Introduction
This chapter presents the mechancial specifications for the mainframe and for the
printed-circuit boards that connect to it:
• Modem printed -circuit board.
• Plug-in printed-circuit board.

Mechanical Design

3- 1

3.2 Mainframe

3

Figure 3-1 describes the outside dimensions of the Portable PLUS mainframe. The
keyboard is integrated into the main body of the unit. The display housing hinges from
the top-rear surface of the main body, allowing the user to adjust its angle for optimum
viewing. In its closed position, the display housing covers the keyboard, providing
protection for the display and keyboard.
The battery cover at the back of the computer provides access to the rechargeable
battery and the video connector. Connectors for the recharger, HP-IL interface, serial
interface, and optional modem are accessible at the back of the case.

3- 2

Mechanical Design

~

Figure 3-1. Mainframe Dimensions

3

265

163

_____ 119- - -- - -~

o
261 (INCl VIDEO CONNECTOR)

(DISPLAY
FULLY
OPEN)

0

- - - 398101S-PW-FULLY OPENf - - - - - - - -

------------------------------------------DIMENSIONS ARE IN MILLIMETERS.
OVERALL WIDTH WHEN VIEWED FROM FRONT: 330 MM.

Mechanical Design

3- 3

3.3 Modem

3

The modem interface, located inside the mainframe assembly, provides a connection to
an add-on printed-circuit board. This board connects to the motherboard and extends
to the modem cutout at the back of the case.
The "modem" PC board should have a 12-pin connector that connects to the
motherboard. The modem board is installed in the bottom case (without using the two
plastic spacers that are otherwise installed in that location). The case screws secure the
board in place. Figure 3-2 shows the physical specifications for the modem PC board.
(Refer to "Modem Connector" in chapter 2 for information about signals at the
connector.)
The PC board should have an electrostatic discharge (ESD) ground trace around its
perimeter. This trace should be wide (at least 50 mils), unmasked, and on the component
side of the board. It should overlap the mounting screw holes and the ESD ground stud
hole. A ground strap connects the ESD ground of this board to that of the motherboard.
The ground strap is connected using studs and flanged nuts. It is essential that the ESD
ground be separate from the logic signal ground.
Refer to appendix I for part numbers.

3- 4

Mechanical Design

~

}

Figure 3-2. Modem PC Board
1n.29

134.00
165.04

3

16.00~..---t'

112.00
I

-------------------------l--t2 HOLES
9.00 .,k.-@
~

4.22 OIA
ZERO CLEARANCE:
6.5 CIA TOP

28.51

13.0 OIA BOTTOM

I

I

94.51

:

1 HOLE

:

3.0201'\

I
I

fi
:

ZERO CLEARANCE
BOTTOM

I HOLE
3.0201'\
ZERO CLEARANCE:
9.0 DIA BOTTOM --++..."

23.70

61.00

124.00
118.49

98.43

I

6.0 ~6.0

I

6.3~

I

II

12 HOLES
0.86 CIA

.f+-

2.54
tHOLE
3.0201A
FOR ESD STUD

1'----.1'-

25.29

37.29

DIMENSIONS ARE IN MILLIMETERS.
COMPONENT SIDE IS SHOWN.
NOMINAL BOARD THICKNESS: 1.59 MM.
COMPONENT HEIGHT RESTRICTIONS VARY WIDELY.
THE LAYOUT MUST BE VERIFIED IN THE UNIT.

Mechanical Design

3- 5

3.4 Plug-In Ports

3

Plug-in expansion modules have three primary components: the plastic housing, the
metal protective cover with ground spring, and the printed circuit assembly. Variations
of these components may include multiple printed circuit assemblies, modified housing,
and/or modified cover to allow for supplementary electrical or physical access to the
circuitry.
Each plug-in port accepts one drawer, which is connected externally to the mainframe
system. A printed-circuit board can be installed in a blank drawer and then installed in
a plug-in port.
The "plug-in" board should have a 62-pin connector that connects to the mainframe.
The metal lid for each drawer acts as a charge sink for electrostatic discharge (ESD).
The lid is directly exposed to discharge at the bottom edge of the front face. To avoid
damage, components on the plug-in board should have high-frequency impedance to
the metal lid. The lid is retained by four screws (ISO M2 x 0.4 - 6g).
Before the pins of plug-in connector make contact with the memory board connector,
the metal lid makes contact with the mainframe's ESD-ground spring. This equalizes
the potential of the metal lid and the mainframe ground. In addition, the logic grounds
of the mainframe and the plug-in board should be at the same potential when the
board is plugged in. This can be achieved by including on the board a ground spring in
series with a long, narrow logic-ground trace (a 12-mil trace 3.5 inches long is
sUfficient). The spring should contact the metal lid. The trace inductance is sufficient
to retard the high-frequency electrostatic discharge; it also keeps the mainframe and
plug-in logic grounds at the same dc potential.
Plug-in drawers with external cable connections (or I/O ports) should connect the shield
ground to the plug-in's metal lid, or to the high inductance trace near the lid-shield
connection--not to the plug-in logic ground.
Refer to appendix I for part numbers.
Figure 3-3 shows the physical specifications for the plug-in PC board. (Refer to
"Plug-In Ports" in chapter 2 for information about signals at the connector.)

3- 6

Mechanical Design

Figure 3-3. Plug-In PC Board

r

2

103.00
I
I

..

93.30

I

'i

4.15

42.80

I
I

I

srI

I

93.30

I.

012.80

I
I

I

·fI

I
I
I

I

I

j

::\~-:::::::::::::t:::::::::::~_:

3

..t.
~_

I

I

6 HOlE$
2.4IDIA

81.00

"

r

COMPONENT HEIGHT
7.5 MAX

r-----'
I
I

::

~)??222222L222222?~~

'i

2.54

31-l0LES
1.47 DIA

SEcnON

2.0 MAX

----- --f

1.75 REF

FOR GROUND SPRING
(ANY LOCAnON)

----r::

1.20

DIMENSIONS ARE IN MILLIMETERS.
COMPONENT SIDE IS SHOWN.
NOMINAL BOARD THICKNESS: 1.59 MM.

Mechanical Design

3- 7

-:-:------:---"C~.;- ----o-~--.----

.

.

•.- . - ~ -

-~._--.

- - -

..

,

'.

.

r4

Resetting the
Portable PLUS

4.1 Introduction
Under certain conditions a reset to the Portable PLUS may be desirable. After changing
a plug-in drawer or creating a CONFIG.SYS file, a reset is necessary so that the system
will re-boot and recognize the new configuration.
Occasionally the computer may get into a state where it will not respond to particular
keys and a reset may be necessary. In this case, there are a few things to try before
resorting to resetting the computer.
• If the display is off and will not turn on, it is possible that the batteries are low. Plug
in the recharger and press a key to turn on the display. Do not attempt to operate
the computer on battery power alone until it has been recharged for at least one
hour. (We recommend that if the battery charge falls to the 5% level, the computer
should be fully recharged before operating it on battery power again.)
• If the computer appears to be "locked up" in the middle of an application, try
pressing the (]IIDrn) key combination. MS-DOS watches for this keystroke to
break out of the current process.

As an alternative, press (Shl f t )( Break l. This keystroke clears the input buffer and
then enters "'c «(]IIDCID). Sometimes MS-DOS examines only the first character
in the input buffer.
• Some applications may watch for the ~ ~ key combination to interrupt
the current process. When these keys are pressed, the BIOS Break Interrupt (Int IBh)
is called and may terminate the current application. This interrupt is a hook for
applications so its use will vary.

Resetting the Portable PLUS

4- 1

4.2 Reset Options
4.2.1 Reset via (shIft )6

AH=l
(Olh)

40 x 25 b&w)
80 x 25 Alpha. (IBM: 40 x 25 color)
80 x 25 Alpha. (IBM: 80 x 25 b&w)
80 x 25 Alpha. (IBM: 80 x 25 color)
480 x 200 Graphics. (IBM: 320 x 200 color)
480 x ~OO Graphics. (IBM: 320 x 200 b&w)
480 x 200 Graphics. (IBM: 640 x 200 b&w)
80 x 25 Alpha.

Set Cursor Type

5

Determines the type of alpha cursor to be displayed.
Specify:

If CL3 Underscore cursor.

CL

AH=2
(02h)

Set Cursor Position

Position the cursor for a specified page (each alpha page has its own
unique cursor).
Specify:

BH = Page number (0-1, must be a for graphics).
DH :: Row number (0 is top of screen, 24 is bottom).
DL = Column number (0 is left margin, 79 is right).

BIOS Interrupts

5-7

Table 5-2. Video I/O Interrupt 10h Functions (Continued)
AH a 3

Read Cursor Position

(03h)
Returns the cursor position for a specified page.
Specify:

BH :: Page number (0-1, must be 0 for graphics).
Returns:

CH :: Current cursor type (as set by function AH=l).
DH :: Row number (0 is top of screen, 24 is bottom).
DL :: Column number (0 is left margin, 79 is right).
AH=4

Read Light Pen Position

(04h)
Because there is no light Pen, this function always returns AH=O.
Returns:

AH=O Light pen switch not activated.

5

AH=5
(OSh)

Select Active Display Page

This function is valid only in alpha mode.
Specify:

AL :: New page number (0-1).
AH=6

Scroll Active Page Up

(06h)
Scrolls the display upwards. (No response in Graphics mode.)
Specify:

Number of lines to scroll (0 means blank entire window).
Attribute for scrolled -in blank lines.
Row number, top of scroll region (0-24).
Column number, left side of scroll region (0-79).
Row number, bottom of scroll region (0-24).
DL :: Column number, right side of scroll region (0-79).

AL
BH
CH
CL
DH

5-8

::
::
::
::

II

alos Interrupts

Table 5-2. Video 1/0 Interrupt 10h Functions (Continued)
Scroll Active Page Down

Scrolls the display downwards. (No response in Graphics mode.)
Specify:

AL :: Number of lines to scroll (0 means blank entire window).
BH :" Attribute for scrolled-in blank lines.
CH c Row number, top of scroll region (0-24).
CL :: Column number, left side of scroll region (0-79).
DH
Row number, bottom of scroll region (0-24).
DL :: Column number, right side of scroll region (0-79).
I:

Read Attribute/Character at Current Cursor Position

Returns the character and attribute bytes at the current cursor position
for a specified page. The cursor does not move.
Specify:

BH :: Display page (ignored in graphics mode).

"

5

Returns:

AL :: Character read.
AH :: Attribute of character (zero in graphics mode).

\

..: " " .

AH=9
(09h)

Write Attribule/Character at Current Cursor Position

Displays a new character and attribute at the current cursor position
for a specified page. The cursor does not move.
Specify:

AL :: Character to write.
BL = Attribute of character (in alpha mode).
Color of character (in graphics mode; see function 12).
BH = Display page (ignored in graphics mode).
CX = Count of characters to write.

BIOS Interrupts

5- 9

Table 5-2. Video I/O Interrupt 10h Functions (Continued)

AH·l0

Write Character Only at Current Cursor Position

(OAh)

Displays a new character at the current cursor position for a specified
page. The attribute byte at that position is left unchanged.
The cursor does not move.
Specify:

AL ;: Character to write.
BH :: Display page (ignored in graphics mode).
ex :: Count of characters to write.

AH a ll

Set Color Palette

(OBh)

This function is ignored.
AHz:12
(OCh)

Write Dot

Places a graphics dot at the specified position.

5

Specify:

AL ;: New pixel color (Oawhite, 1=black). If bit 7 is set, the new value
is exclusive-ORed with the current pixel value.
ex = Pixel column number (0-479).
ox = Pixel row number (0-199).
AH=13
(ODh)

Read Dot

Reads the graphics dot at the specified position.
Specify:

ex
ox

II

Pixel column number (0-479).

= Pixel row number (0-199).

Returns:

AL = Current pixel value (O=white, l=black).

5 -1 0

BIOS Interrupts

Table 5-2. Video I/O Interrupt 10h Functions (Continued)
AH-14
~
("

Write Teletype to Active Display Page

(OEh)
This function provides a teletype-like interface to the display. The
character in AL is displayed at the current cursor position, and the
cursor advances (right) to the next position. If the cursor moves past the
end of the line, a carriage return and line feed are performed.
Backspace, carriage return, line feed, and bell are handled as commands
rather than displayable characters.

,.',

Specify:
AL = Character

to output.
BL = Character color if in graphics mode (see function 12).

AH=15

Current Video State

(OFh)
Returns display information.
Returns:

AL

"\

c

Current mode (as set by function 0).

5

AH = Number of character columns on the screen (80).
BH = Currently active display page (0-1).

~

~

BIOS Interrupts

5 -11

5.4 Equipment Check Interrupt (lnt 11 h)
When an Int Ilh instruction is executed, system configuration information is returned
in register AX according to the current system parameter values.
The following status bits are returned in AU:

J b7

b6

1

bS

b4

b3

b2

bl

(AH)

t- - -L- 0010 ;: (Unused)
Number of RS-232 ports

I

=

- - - - - - - - 00

c

- - - - - - - - - - - - xx

a

5

(Unused)
Presence of active printer.
(If PAM Printer Interface is
set to IISerialll, these bits
are always 110 I".)

The following status bits are returned in AL:

I

b7

b6

bS

b4

I

b3

b2

bl

bO

I

I_lJ=_L

~

(AL)

1

11
10

o1
10
11

5 -1 2

BIOS Interrupts

System contains disc drives
(Unused)
;: At least 64K system RAM
= Video mode: 8Ox2 5 monochrome
with graphics ("color card")
a Two disc drives (A: and B:)
c Three disc drives
c Four or more disc drives
a

o ;:

~

"

5.5 Memory Interrupt (lnt 12h)
The Memory Interrupt can be used by an application to determine the total amount of
memory in the system, excluding ROM and internal Edisc. The interrupt returns in
register AX the number of 1K-byte blocks of system RAM.

5.6 Communications Interrupt (lnt 14h)
The AUX driver uses this interrupt for communications with the serial port, modem, or
current AUX device (as specified by PAM). The HP 82164A HP-IL/RS-232-C
Interface is not supported by this interrupt.
Table 5- 3 lists the functions provided by this interrupt.

5

BIOS Interrupts

5 - 13

Table 5-3. Communications Interrupt 14h Functions
Function

AH=O
(OOh)

Description
Initialize Communications Parameters

Defines communications parameters for the specified port.
Specify:

AL = Datacom initialization byte in the following form:

I

b7

b6

b5
,

b4

.

b3

b2

,

bl

bO

.

I

(AL)

,

L

10
11

o

5

1

= 7-Bit Word
IZ

8-Bit Word

IZ

1 Stop Bit

= 2 Stop Bits

)(0 = No Parity
01 = Odd Parity
11 = Even Parity
L--

ox =0 Initialize the serial port.

000

= 110 Baud
= 150 Baud

00 1
010 = 300 Baud
011 = 600 Baud
100 = 1200 Baud
101 = 2400 Baud
110 = 4800 Baud
111 = 9600 Baud

=1 Initialize the modem.
) 1 Initialize the current AUX device.
(If DX>1 and AUX device is 82164, serial port will be used.)
Returns:
AH = Port

data status (refer to function AH=3).
AL = Port handshake status (refer to function AH= 3).

5 - 14

BIOS Interrupts

Table 5-3. Communications Interrupt 14h Functions (Continued)

AHlll

Send Character

(Olh)

Sends the specified character over the selected communications line.
Specify:

Al =
OX = 0
=1
>1

Character to send.
Send character to the serial port.
Send character to the modem.
Send character to the current AUX device.
(If OX> 1 and AUX device is 82164, serial port will be used.)

Returns:

Al = Character sent.
AH = If bit 7 is set, an error has prevented the character from being
transmitted, and it should be sent again.
AH u 2

Read Character

(02h)

Reads a character from the specified datacom device buffer.

5

Specify:

OX=O Read character from the serial port.
=1 Read character from the modem.
) 1 Read character from the current AUX device.
(If OX> 1 and AUX device is 82164, serial port will be used.)
Returns:

Al = Character read (only if bit 7 of AH is "0").
AH = If bit 7 is set, no character was available.

BIOS Interrupts

5 -1 5

Table 5-3. Communications Interrupt 14h Functions (Continued)

AH·3

AUX Status

(03h)

Returns the status of the specified communications port
Specify:

DX=O Request status for the serial port.
1 Request status for the modem.
>1 Request status for the current AUX device.
(If DX>1 and AUX device is 82164, serial port will be used.)
I:

Returns:

AH

Port data status:
Bit 7: If set, the operation was not successful.
Bit 6: If set, the transfer shift register is empty, and the next
character can be sent.
Bit 5: (Unused).
Bit 4: If set, a break condition currently exists on the
communications line.
Bit 3: If set, a framing error has occurred.
Bit 2: If set, a parity error has occurred.
Bit 1: If set, a data overrun error has occurred.
Bit 0: If set, data is available to be read.
AL :: Port handshake status:
Bit 7: If set, RLSD line is true.
Bit 6: If set, Ring line is true.
Bit 5: If set, DSR line is true (serial port only).
Bit 4: If set, eTS line is true (serial port only).
Bit 3: If set, RSLD line has changed state since last Int 14h
AUX Status call.
Bit 2: If set, Ring line has changed state since last Int 14h
AUX Status call.
Bit 1: If set, DSR line has changed state since last Int 14h
AUX Status call.
Bit 0: If set, eTS line has changed state since last Int 14h
AUX Status call.

5

6 - 16

I:

BIOS Interrupts

5.7 Keyboard I/O Interrupt Ont 16h)
Keyboard I/O Interrupt 16h is supported in the limited manner described in table 5-4.
Specify the desired function code in AH. Only AX and flags change; all other registers
are preserved.
Table 5-4. Keyboard I/O Interrupt 16h Functions
Function

AH;:O
(OOh)

Description
Read Character

Reads the next character from the keyboard queue. Note that in
Scancode Mode the key queue will contain scancodes rather than ASCII
keycodes. Scancode and keycode information cannot be returned
simultaneously. If the queue is empty, this function will wait for a key
to be hit before returning.
Returns:

AL = Next character from the keyboard queue.
AH = O.
AH= 1
(Olh)

Read Character (Nondestructive)

Reads next character from keyboard queue without removing it from
queue. If the queue is empty, this function will return immediately
with the Zero flag (ZF) set.
Returns:

ZF= 1 No character is available to be read.

o Character code is available, and is in AX.

BIOS Interrupts

5 - 17

5

Table 5-4. Keyboard I/O Interrupt 16h Functions (Continued)
AH=2
(02h)

Read Shift Status

This function returns the current states of the three modifier keys, plus
on/off status for Insert Character Mode, Caps Lock, and the Numeric
Keypad. Note that the two shift keys are functionally identical and
cannot be independently read.
Returns:

AL = Current shift status with bits set as follows:

Bit
Bit
Bit
Bit
Bit
Bit
Bit
Bit

5

5 -18

BIOS Interrupts

7:
6:
5:
4:
3:
2:
1:
0:

Insert Character Mode is active.
Caps Lock is turned on.
Numeric keypad is active.
(Unused.)
(E x t en d ) key is depressed.
(]![b) key is depressed.
(sh 1 It) key is depressed.
(Shl It) key is depressed (same as Bit 1).

5.8 Print Byte Interrupt (lnt 17h)

~ Interrupt 17h provides a low-level method of sending one byte of data to the PAM

Printer Interface device. Table 5-5 describes the various Print Byte Interrupt
functions. Specify the desired function code in AH; all other registers are preserved.

(IBM compatability: The contents of DX. which normally indicate which printer is to be
addressed, are ignored. Also, the bytes at locations 0040:0008 through 0040:000D are
unused, rather than containing the base addresses of printer cards.)

Table 5-5. Print Byte Interrupt 17h Functions
Function
AH=O

Description
Print Character

(OOh)
The character in AL is sent to the current PAM Printer Interface
device.

5

Specify:

AL = Character to be sent to printer.
Returns:

AH =0 1h if an error occured.

DOh if the character was sent successfully.
AH= 1

Initialize Printer

(Olh)
The printer is configured as necessary for subsequent communications.
Returns:

AH=O 1h Initialization failed.

DOh Printer ready.
AH=2
(02h)

Return status

Returns a status byte indicating whether or not subsequent printer
communications is possible. This is essentially the same function as
AH=!.
Returns:

AH=O 1h Printer is not accessible.

DOh Printer is accessible.

BIOS Interrupts

5-19

5.9 Reboot Interrupt (Int 19h)
The Reboot Interrupt is roughly the programmatic equivalent of holding down the
contrast key for more than 15 seconds. The PPU is told to reset the system; all
hardware (except for RAM) is subsequently reset.

5.10 Time Of Day Interrupt (lnt 1Ah)

5

The Time Of Day Interrupt provides a means by which an application can perform
general purpose timing with approximately 1/18 second resolution. This interrupt has
no effect on any other part of the system; it is provided solely for application use. If
you use this interrupt to set the heartbeat timer to a new value, it will not change the
system's time-of-day clock (a separate timer maintained by the PPU). The current time
reported by MS-DOS, PAM, and the on-screen clock is read from the PPU and has no
relation to the heartbeat timer accessed by this interrupt. Table 5-6 describes the
functions of Int IAh. .
Table 5-6. Time Of Day Interrupt 1Ah Functions
Function

AH=O
(OOh)

Description
Read Heartbeat Timer

Returns the current double-word contents of the system heartbeat
timer. If the timer has overflowed past 24 hours, a I will be returned in
AL. This function clears the 24-hour overflow flag.
Returns:

AL :; 24-hour overflow flag.
ex = High portion of count.
ox :; Low portion of count.

5-20

BIOS Interrupts

~

Table 5-6. Time Of Day Interrupt 1Ah Functions (Continued)

AHs:1
(01h)

Set Heartbeat Timer

Loads the double-word system timer with a new value. Note that the
timer overflows and resets to zero whenever the count increments to
exactly 24 hours; if you set a value that is greater than 24 hours
(1,555,200 eighteenth-second intervals), the overflow will go undetected
and the timer will not be reset.
Specify:

ex = New high portion of count.
ox = New low portion of count.

5.11 Keyboard Break Interrupt (lnt 1Bh)

5

rn:rm

A Keyboard Break interrupt is generated whenever, in Alt mode, you press the
and (B reak) keys. Normally this interrupt flushes the key queue and then puts a ""C
(03h) in it. But by taking over Int 1Bh and pointing it at your own interrupt handler,
you can perform your own (CTRL)( Break) key processing. When the system branches
into your new interrupt handler, the state of the three modifier keys (at the time the
(Break) key was pressed) are available in AH; AL will contain OD4h, the Configuration
EPROM keymap Local Function code that caused the interrupt to be issued.
This interrupt is invoked by the keyboard driver responding to a keyboard hardware
interrupt. All general registers are available when the interrupt branches into your
handler; they need not be saved and restored (in general, however, you should always
save and restore any registers that you will use in servicing an interrupt.)

BIOS Interrupts

5 - 21

5. 1 2 Timer Tick Interrupt (lnt 1Ch)
Whenever a Heartbeat interrupt occurs, the system Heartbeat interrupt handler invokes
the Timer Tick interrupt (I Ch~ the Timer Tick vector points at code to be executed on
every heartbeat tick (nominally 18 times per second).
Normally this vector points at a dummy IRET instruction. If you take over this vector
and point it at your own Timer Tick handler, you should end your routine with an
IRET. As with any interrupt handler, you should also save and restore any registers
that your routine will use.

•

N ote

5

5 - 22

Do not re-enable interrupts within an interrupt handler unless you are

very carefuU In this particular case, the heartbeat interrupt has not yet
been cleared at the time Int ICh is called; turning on the interrupt system
will cause the heartbeat interrupt to recursively appear!

BIOS Interrupts

5.13 Graphics Character Extensions (Int 1Fh)

C

The Video I/O Interrupt (Int 10h) allows you to display alpha characters in graphics
mode. The font patterns for character codes in the range 0 to 127 are taken from the
first font table in the system ROMs, while the font patterns for character codes in the
range 128 to 255 are taken from a font table pointed to by the vector at interrupt IFh.
At reboot, this vector is initialized to 0000:0000; it is the user's responsibility to point
this vector at an appropriate 1K-byte font table.
Each character font in the table is represented by eight bytes of graphic information.
An alpha character must fit within a 6x8 cell, so only the high-order six bits of each
byte are meaningful. For example, the eight-byte table entry for the letter "E" might
look like this:

bit:
1st byte:
2nd byte:
3rd byte:
4th byte:
5th byte:
6th byte:
7th byte:
8th byte:

r

76 5 4 3 2

•••••
•• .
••
• • • •.
••
••
• • • • •.
•
•

•

•

0
•

= OF8h
= OCOh

5

:: OCOh
:: OCOh
:: OCOh
:: OCOh
:: OF8h
c OOOh

The rightmost two bits of each row are not used; the left dot-column and bottom
dot-row of the remaining 6x8 matrix are left blank to provide separation between
adjacent characters and lines on the display (although you can use the entire 6x8 cell if
necessary.)

W
Note

The Graphics Character Extensions table is only used in conjunction with
Video I/O Interrupt lOh. It is never accessed by Fast Alpha, system
services, or standard alpha and graphics CON output.

BIOS Interrupts

5- 23

5. 14 Modem Transmit Interrupt (Int 40h)
This interrupt is the same as Serial Transmit Interrupt 4Ah, but applies to the built-in
Modem interface. It operates in an identical manner, except that the I/O addresses are
in the Axh range instead of 4xh.

5.15 Modem Ring/Carrier Interrupt (lnt 42h)
This interrupt is the same as Serial Ring/Carrier Interrupt 4Bh, but applies to the
built-in Modem interface. It operates in an identical manner, except that the I/O
addresses are in the Axh range instead of 4xh.

5

5. 16 Timer 2 Interrupt (tnt 43h)
Interrupt 43H is generated whenever the second interval timer (at I/O addresses
4Eh-5Eh) is enabled and reaches zero. (For more detailed information on the interval
timer, refer to "Registers - Interval Timer" in chapter 7). To service the timer
interrupt, a 111" must be written to bit 0 of the Timer 2 Control Register (address 58h).
This will clear the current interrupt, load the value in the interval reference registers
into the counter registers, and restart the timer.
Whenever the modem is on, the BIOS starts Timer 2 running at a rate of 50 ticks per
second. The purpose of this is to allow software implementation of the modem's
Return -to-Command Mode feature. Whenever the modem is off, Timer 2 is availible
to application programs. However, any application that takes over Interrupt 43h must
save the old interrupt vector, and restore it before terminating, or the
Return -To-Command-Mode feature will not function properly the next time the
modem is used.

5 - 24

BIOS Interrupts

~

r

5.17 Plug -In 1 Interrupt (lnt 44h)
This hook is called whenever an interrupt is generated by the Plug-in 1 drawer.
Plug-in 1 is at configuration I/O address EOb or FOh, and is physically located on the
right side of the computer under the (Retu rn ) key.
This interrupt will not occur unless Plug-in 1 interrupts are enabled (refer to the Int
SOh "Alter Interrupt Control Register A2h" function). Once the interrupt occurs, the
service routine should clear the interrupt using the Clear Interrupt Request Register
(see hardware description in Chapter 7).

5. 18 Plug -in 2 Interrupt (Int 45h)
This hook is called whenever an interrupt is generated by the Plug-in 2 drawer.
Plug-in 2 is at configuration I/O address COb or DOh, and is physically located on the
left side of the computer under the aD key.
This interrupt will not occur unless Plug-in 2 interrupts are enabled (refer to the Int
SOh "Alter Interrupt Control Register A2h" function). Once the interrupt occurs, the
service routine should clear the interrupt using the Clear Interrupt Request Register
(see hardware description in Chapter 7).

5. 19 PPU Alarm Interrupt (lnt 46h)
If a PPU alarm has been set (via the PPU Set Alarm command), interrupt 46h will be
called when that alarm occurs. No special service action is required on the part of the
service routine.
The alarm interrupt is primarily used by PAM. For more information on what happens
when an alarm occurs, refer to "PAM And Alarms" in chapter 10.

BIOS Interrupts

5 - 25

5

5.20 Death/Battery Cutoff Interrupt (Int 47h)
The Battery Cutoff Interrupt is automatically called when the battery charge drops
below the 5 percent charge-remaining level. The default handler for this interrupt
forces the computer into a sleep state as quickly as possible to avoid any loss of data and
to permit the current application to be resumed once the battery level has come back
up.
If the battery cutoff point is reached and the computer is not put to sleep quickly
enough) the PPU will automatically shut the system down (and lose the state of the
current application). For this reason any application that takes over Int 47h should put
the system to sleep (via the Sleep Interrupt 55h) as soon as possible.

5

5 - 26

BIOS Interrupts

.~
'-

.

r

5.21 Keyboard Interrupt (lnt 49h)
All of the keys in the hardware keyboard matrix generate a hardware interrupt on both
upward and downward transitions. (Note that the (Shl f t ), C£m!J, and (Ex tend)
modifier keys, plus the contrast key, are not in the matrix.) The system keyboard
interrupt handler services these transitions by analyzing the states of the matrix and
modifier keys, and then performing an appropriate action.
If you plan to take over the keyboard hardware interrupt, your interrupt handler
should have the following form:

Kbd$INT:

Save all registers

mov
out
mov
out
mov
int

ai, 02h
OB8h,al
aX,80h
OAOh,al
bX,18h
SOh

:Clear and disable
: heartbeat interrupts
: Clear this keyboard
; matrix interrupt
; Disable keyboard
: matrix interrupts

5

Process the interrupt

mov
int
mov
out

aX,180h
SOh
al,l

OB8h,al

: Re -enable keyboard
; matrix interrupts
; Re-enable
; heartbeat interrupts

Restore all registers

iret
The system keyboard interrupt handler should never be invoked via a software
interrupt. For further information about using the keyboard, refer to
"Multi-Controllers" in chapter 7.

alos Interrupts

5 - 27

5.22 Serial Transmit Interrupt (Int 4Ah)
If the Serial Transmit Data Register Empty Interrupt has been enabled by writing a 0
to bit 7 of the Serial Interrupt Control register (address 4Ch), interrupt 4Ah will be
called by the system each time a character is transferred from the Serial transmit data
register to the transmit shift register. This indicates that the transmit data register is
empty--ready to accept the next character to be transmitted to the Serial interface.
If an application enables this interrupt, the service routine must write a 1 to bit 6 of
the Serial interrupt control register to clear and reenable the interrupt.

5

This interrupt is normally disabled by the system BIOS, since the same function can be
achieved by waiting for bit 1 (Transmitter Empty) of the Serial Status register (address
48h) to become a 111" before writing a data byte to the Transmit Data register. Note
that the transmitter must be empty before attempting to write to the Data register, or
else data could be lost.

5.23 Serial Ring/Carrier Interrupt (lnt 4Bh)
When the Serial RING signal becomes true, indicating a ring condition on the interface,
or the RLSD signal becomes false, indicating a loss of carrier, interrupt 4Bh is called by
the system. The interrupt service routine must read the Interrupt Status register
(address 40h) to determine which interrupt has occured. If bit 4 of this. register is a I,
the interrupt was caused by a ring condition. If bit 3 is a I, a loss of RLSD caused the
interrupt. To clear either of these interrupts, a 1 must be written to the appropriate bit
in the Clear Interrupt Request register (address 4Gh).

5.24 HP -IL IRQ Interrupt (lnt 4Ch)
The HP-IL IRQ Interrupt is generated as a system interrupt request by the HP-IL
Controller. The interrupt must have been enabled using the Int SOh service Modify
~
Interrupt Control Register 42h. Once the interrupt occurs, the interrupt routine should
,
then clear the interrupt using the Clear Interrupt Request Register (see hardware
description chapter 7).
5 - 28

BIOS Interrupts

A thorough description of HP-IL can be found in the Osborne/McGraw-Hill
publication, The HP-IL System: An Introductory Guide to the Hewlett-Packard
Interface Loop, by Kane, Harper, and Ushijima (1982).

r'---------------5.25 Low Battery Interrupt (lnt 4Dh)

The Low Battery Interrupt is issued by the BIOS to warn the user of a low battery
condition. If the display is currently in alpha mode when the condition is detected, the
default handler for this interrupt causes a blinking, inverse-video "Low Battery!"
message to be displayed in the lower left-hand corner of the screen. If the current
display is graphics, the display will blink a few times.
The hardware indicates a low-battery condition when the battery level drops below
about 5.8V (20 percent charge remaining).

,.~
,/ """"

••• •..

5

5.26 Modem Input Interrupt Unt 4Eh)
The Modem Input Interrupt is functionally identical to the Serial Input Interrupt 4Fh,
except that it is generated for each byte of data that arrives through the modem rather
than the serial port. Servicing the interrupt should be done in the same way as for the
serial port, except that the I/O addresses used are AAh instead of 4Ah, A 8h instead of
48h, and ACh instead of 4Ch.

BIOS Interrupts

5-29

5.27 Serial Input Interrupt (lnt 4Fh)
Interrupt 4Fh is generated whenever a character is received by the serial port while
interrupts are enabled for the corresponding UART. The received data is available to
be read in the Serial Received Data register at I/O address 4Ah.
It is the responsibility of the interrupt service routine to reset the serial port UART so

that subsequent characters can be received. The sample routine shown below illustrates
how this is done. Note that the service routine must maintain a local copy of the serial
port status register (which contains information about word length, stop bits, parity,
etc.); this is necessary since the actual status register cannot be read (i.e., it is
write-only).

Sin$INT:

Save all registers

in

al,4Ah

; Read the serial port data byte

Process the data

5

mov
or
out
in
or
and
out

al,SerConfig
aI, 2
48h,al
al,4Ch
al,10h
al,NOT 20h
4Ch,al

Restore all registers

iret

5 - 30

BIOS Interrupts

;Get our local copy of the serial port
; port status byte, set the "Clear Status"
; bit, and reset the serial port UART
; Get transmit/receive interrupt status,
; set the "Clear Interrupt" bit, and
; ~ero the "Disable Interrupt" bit
; Make serial port ready for next character

5.28 System Services Interrupt (Int 50h)
A number of system service functions are provided to allow the applications
programmer easy and fast access to a wide variety of unique system features. In most
cases, these service functions permit you to easily and safely perform tasks that would
otherwise be very difficult, dangerous, or impossible without communicating directly
with the hardware. In some cases, they provide you with faster, more efficient
alternatives to the usual methods of performing certain functions -- such as displaying
a string of characters or flushing the keyboard input buffer.
In any case, the programmer should be aware that use of these services tailors an
application to run efficiently on the Portable PLUS, while sacrificing portability to
other HP (or anyone else's) computers. In particular, The Portable (HP 110) does not
currently support any of these services; a Portable PLUS application that makes use of
any system service will not run on an H P 110.
All services are invoked by placing the service number in BX, additional parameters in
other registers as required, and performing an Int SOh.
Table 5-7 summarizes the routines provided by the system services interrupt. The table
which follows that describes these services in detail.
Table 5-7. System Services Interrupt SOh Functions
Function

00
01

02
03
04

05
06
07
08
09

OA

Service

Enable Plug-in ROM
Call Plug-in ROM
Format RAM Disc
Memory Initialization
Get RAM Disc Limit
Get Maximum System Size
Display String
Display Character
Flush Keyqueue
Initialize Alpha Display
Simulate Keyboard Input

BIOS Interrupts

5- 31

5

Table 5-7. System Services Interrupt 50h Functions (Continued)

08
OC
00

OE

OF
10
11
12
13
14
15
16

17
18
19

1A
18
1C
10
1E

5

1F
20
21
22

23
24

25
26

27

5- 32

Fast Write to Display
Add New Font
Display CONFIG ROM String
Get CONFIG ROM String
Update On-screen Clock
Restart Heartbeat
Wait for Interrupt
Read Timeout
Write Timeout
Read Status Limit
Write Status Limit
Return Card IDs
Alter Interrupt Control Register 42h
Alter Interrupt Control Register A2h
Conditonal Sleep
(Reserved)
PPU Communications
Set Plug-in Card Power Estimate
Read Clock or Alarm
Write Clock or Alarm
Read Time Zone
Write Time Zone
Read ROM Slot 7 Subdirectory Name
HP-IL Sleep
HP-IL Wake
Datacomm Sleep
Datacomm Wake
Security Enable
Security Disable

BIOS Interrupts

The system services are described in detail in table 5-8.
Table 5-8. System Services Int SOh Detailed Description
Function
BX=O

Description

Enable Plug-In ROM

(OOh)
This routine attempts to enable (or disable) a plug-in ROM.
The ROM can be specified by name or number. The ROM number is
dependent on slot and type, and in general will only be known
by being previously returned by this service.
Specify:

AL>O Number of plug-in ROM to be enabled (Olh-OFDh)
=0 Disable any currently enabled plug-in ROM
=OFFh Enable plug-in ROM named in specified string
=OFEh Return current ROM enabled status unchanged
OS: OX = Address of 8-byte string containing the name of
the ROM to be enabled (only if AL=OFFh)

5

Returns:

AH ;: Number of ROM enabled (0 if no ROM enabled)

Number of previously enabled ROM (0 if none enabled)
BX: 0 = Starting address of plug-in ROM space (BX=segment no.)
Cy=o ROM specified exists (or 0 is specified)
;: 1 The specified ROM does not exist (does not change the
status of currently enabled ROM)

AL

I:

Destroys:

Nothing

BIOS Interrupts

5- 33

Table 5-8. System Services Int SOh Detailed Description (Continued)

BX·l
(Olh)

Call Plug-In ROM

This routine passes control to a specified address in a
specified plug-in ROM and will allow control to be returned to
the point at which it was invoked. The service can be invoked
from anywhere including another plug-in ROM. The ROM can be
identified by name or number as with the enable ROM service
except that the specified ROM must be a full bank (a half bank
ROM cannot contain ROM executable code). Execution will be
passed to the specified paragraph number of the ROM. Note that
this requires all ROM entry points to begin on a paragraph
boundary, but allows the address to be specified with a single
word and frees the calling program from having to know the
address at which the ROM is mapped. The invocation will set
the segment address to the start of the code with the
offset address zero. The invoked code must exit with a far
return to restore the environment appropriately.

5

Specify:
~

Plug-in ROM number (FFh specifies the plug-in ROM named in
the string at DS:DX)
os: ox c Address of 8-byte string containing the name of the
desired ROM (only if AL=FFh)
CX a Address of code to invoke (paragraph number relative to
the start of the ROM)

AL

Returns:

AX=O Call failed due to erroneous parameter
CV c 1 Call failed due to erroneous parameter
If the call is successful: flag, register, and stack states
at time of return are determined by the invoked code. Note
that the invoked code should not return both AX=O and CY= I,
as this condition will make a successful call appear to have
failed.
Destroys:

BX

5 - 34

BIOS Interrupts

Table 5-8. System Services Int SOh Detailed Description (Continued)

BX·2
(02h)

Format Edisc

This routine initializes the Edisc (destroying any prior
contents). The size of the disc is determined from previously
established system variables. The structure of the Edisc
is described in chapter 8.
Specify:

AX=OBEACh Safety check to avoid inadvertent data loss
Returns:

Nothing
Destroys:

BX
BX=3

Memory Initialization

(03h)
This service initializes the plug-in cards, checks the
Edisc integrity, and sets up the memory parameters for the
Edisc and system memory. If the Edisc is corrupt then some
memory parameters are reset to maximum Edisc to prevent the
accidental destruction of Edisc data. Plug-in RAM cards
that contain system memory are enabled; all other RAM cards
are disabled.

5

Specify:

Nothing
Returns:

AX :: Number of paragraphs of total RAM memory in the machine
BX
Number of paragraphs of system memory in the machine
Cye 1 Edisc is corrupt
IS

Destroys:

Nothing

BIOS Interrupts

5- 35

Table 5-8. System Services Int SOh Detailed Description (Continued)
BX-4
(04h)

Get Edlsc Limit

This service examines the file allocation table of the
Edisc and finds the highest numbered sector that is not
available (is part of a file). This service returns the number
of sectors of Edisc needed to include all present data
without packing. This number will include the space required
for the special checksum sectors, and will also include at
least one sector for data beyond the root directory (even
on an empty disc).
Specify:

Nothing
Returns:

BX ;: Number of sectors required by the Edisc to retain
the current data
Destroys:

Nothing

5
BX=5
(OSh)

Get/Set Maximum System Size

This service allows the system size value (which is maintained
in the boot sector) to be set and retrieved. This service
maintains the checksum of the boot sector if the value is set.
The value is the number of 4K byte units of system memory
existing beyond 64K. This service does not check for a valid
value when setting the system size (whatever is passed to
the service will be set).
Specify:

AX = 0 (system size value returned; not set)
AX :# 0 (system size value to be set)
AL :: system size value: (system size - 64K)/4K
Returns:

AX :: Value of system size variable
Destroys:

BX

5 - 36

BIOS Interrupts

Table 5-8. System Services Int SOh Detailed Description (Continued)

BX c 6

Display String

(06h)
Output an asciz (null terminated) string to the display.
The string can contain control characters and escape sequences.
Specify:

OS: SI = Address of buffer containing asciz string
Returns:

Nothing
Destroys:

BX
BX= 7

Display Character

(07h)
Output a single character to the display. The character can
be a control character or part of an escape sequence.
Specify:

AL = Character to be displayed

5

5

Returns:

Nothing
Destroys:

BX
BX=8

Flush Keyqueue

(08h)
Empties out the keyboard type-ahead buffer.
Specify:

Nothing
Returns:

Nothing
Destroys:

BX

BIOS Interrupts

5 - 37

Table 5-8. System Services Int SOh Detailed Description (Continued)
BX·9
(09h)

Initialize Alpha Display

Resets the alpha display. UP mode is selected, softkey buffers
are initialized, and UP fonts are loaded. Display RAM is erased,
the screen is positioned at the first line of display RAM, and
the underscore cursor is placed at the upper left corner.
Specify:

Nothing
Returns:

Nothing
Destroys:

ax
BXII10
(OAh)

Simulate Keyboard Input

Simulates the pressing of a key on the keyboard, either by
forcing the keyboard driver to process a specified scancode
and modifiers, or by forcing a keycode into the key queue.
If the scancode/modifier approach is used, you can additionally
specify whether or not a Keyboard CON Expansion interrupt
will be generated.

5

To add character to key queue, specify:

DH

= Any negative value

DL

II

Character to be added to key queue

To simulate scancode/modlfler combination, specify:

Modifier bits (Bits 0/1/2 = Ctrl/Shift/Extend)
DL Scancode (0-71)
AH#O Bypass keyboard CON Expansion processing
0 Pass scancode and modifiers through CON Expansion
DH

II

II

II

Scancode/moditier simulation works only in normal keyboard
mode, and should not be used in Scancode or Modifier modes.
Returns:

Nothing
Destroys:

ax

5 - 38

BIOS Interrupts

Table 5-8. System Services Int SOh Detailed Description (Continued)

eX-II

Fast Write to Display

(OBh)

Displays an asciz (null terminated) string.
Characters are displayed verbatim; there is no escape
processing. The only control characters that are recognized
are carriage return and Iinefeed. Note that there also is
no end-of-line wrap; nothing prevents you from writing
IIbeyond" the right margin and into the font tables.
Specify:

AH = Attributes to go with each character
DH = Starting row (0- 24, screen -relative)
DL = Starting column (0-79)
05: 51 = Buffer containing asciz string to be displayed
Returns:

Nothing
Destroys:

BX

ex= 12

5

Add New Font

(OCh)

Replaces a current font table with a new one that has the
same ID. The new font table can be packed or unpacked,
and can define either 128 or 256 characters; it must, however
be the same size or smaller than the table it replaces.
If there currently is no font with the specified ID, an
attempt is made to install the new font in any available
(currently unused) fontspace.
Specify:

Font ID character (e.g., 'A')
Font ID number (e.g., 8)
Font table is packed (otherwise, unpacked)
Font table defines 128 characters (otherwise, 256)
05: 51
Address of new font table

DH c
DL
CH=O
CL=O
I:

I:

Returns:

Nothing
Destroys:

BX

BIOS Interrupts

5 - 39

Table 5-8. System Services Int 50h Detailed Description (Continued)
BX·13

Display Conflg EPROM String

(OOh)
Displays an asciz (null-terminated) string obtained from
the config EPROM. For ease of localization, the EPROM
contains many asciz strings along with a table of pointers
to the start of each string. By specifying the unique
number of the desired string, this service will send that
string to the display. The string can contain control
characters and escape sequences. Note that the string
number is not checked - - an invalid number will display
a garbage string.
Specify:

OX = String number
Returns:

Nothing
Destroys:

5

BX
BXe 12

Get Conflg EPROM String

(OEh)
Reads an asci7. (null-terminated) string obtained from
the config EPROM into a specified buffer. The entire string,
including the final null, is returned. Note that the string
number is not checked - - an invalid number will return
a garbage string (which may be VERY VERY long).
Specify:

OX

= String number

os: SI

= Address of buffer to receive string

Returns:

Specified string in buffer at OS: SI.
Destroys:

BX

5 -40

BIOS Interrupts

Table 5-8. System Services Int SOh Detailed Description (Continued)
BXII15
(OFh)

Update On-screen Clock

Updates the on-screen clock (the one at the bottom
center of the screen, among the softkey labels) to
display the current time as read from the PPU.
Specify:

Nothing
Returns:

Nothing
Destroys:

BX
BX= 16

Restart Heartbeat

(tOH)

Restarts the heartbeat timer at its normal
18-ticks-per-second rate.
Specify:

5

Nothing
Returns:

Nothing
Destroys:

ax
BX=17
(It H)

Wait for Interrupt

Causes the computer to execute a HLT instruction with
the interrupt system left enabled. Use of this service
is preferred over simply executing an STI followed by
a HLT since it informs the PPU of the halt, thereby
maintaining fuel gauge accuracy.
Specify:

Nothing
Returns:

Nothing
Destroys:

ax

BIOS Interrupts

5 -41

Table 5-8. System Services Int SOh Detailed Description (Continued)

BX-IS
(12h)

Read Timeout

Returns the current system timeout interval. This is
the number of seconds that must elapse during which
no I/O takes place in order for the system to go to sleep.

~

Specify:

Nothing
Returns:

OX

a

Current timeout interval (in seconds)

Destroys:

BX
BX=19
(13h)

Write Timeout

Sets the current system timeout interval. This is
the number of seconds that must elapse during which
no I/O takes place in order for the system to go to sleep.
If you specify an interval of zero, sleep is disabled (the
system never times out).

5

Specify:

OX

I:

New timeout interval (in seconds)

~
";j.

Returns:

Nothing
Destroys:

BX
BX=20
(14h)

Read Status Limit

Returns the current keyboard status-call limit required
to cause the system to enter a low-power halt (power-save
mode).
Specify:

Nothing
Returns:

OX

a

Current keyboard status-call limit

Destroys:

BX

5 -4 2

alos Interrupts

~

Table 5-8. System Services Int SOh Detailed Description (Continued)
BX-21
( 15h)

Write Status Limit

Sets the keyboard status-call limit required to cause
the system to enter a low-power halt (power-save mode).
This limit is the number of keyboard status requests
which must be made within one second before the system
will enter a halt state (extending battery life).
If the status limit is zero, both power-save mode and
system timeout are disabled. If the status limit is
greater than 2000h, only power-save mode is disabled.
Specify:

OX = New keyboard status-call limit
Returns:

Nothing
Destroys:

BX
5

BX=22
( 16h)

Return Card IDs

Returns the card IDs for each logical card so that its
enable address can be determined. This service should be
used instead of reading directly from the hardware since
the value read from a dummy drawer is related to the values
on the bus before the read. The only way to ensure that
a card is in the system is to use this service and check
the registers returned for the desired 10.
Specify:

Nothing
Returns:

AH = Card 2A (I/O address OCOh)
AL :: Card 2B (I/O address ODOh)
BH = Card 1A (I/O address 0E0h)
BL c Card IB (I/O address OFOh)
Destroys:

Nothing

BIOS Interrupts

5- 43

Table 5-8. System Services Int SOh Detailed Description (Continued)
BX-23
(17h)

Alter Interrupt Control Register 42h

Modifies I/O register 0042h to enable or disable selected
interrupts without modifying all the interrupts in the
register. The BIOS retains a copy of the current setting
of this register since it can not be read directly (see
hardware description Chapter 7). By using this service an
application can modify the ring interrupt control without
affecting the status of the carrier interrupt control.

OJ ~~Ill
765

RingSEtIAl
'carrier
4

~

3

Specify:

5

Al c Pattern of selected bits to change.
AH=O To disable the selected interrupts

1 To enable the selected interrupts
Returns:

Nothing
Destroys:

BX

5-44

BIOS Interrupts

2

1

0

Table 5-8. System Services Int SOh Detailed Description (Continued)

BX 24
II

~'

Alter Interrupt Control Register A2h

(18h)

Modifies I/O register OOA2h to enable or disable selected
interrupts without modifying all the interrupts in the
register. The BIOS retains a copy of the current setting
of this register since it can not be read directly (see
hardware description Chapter 7). By using this service an
application can modify the ring interrupt control without
affecting the status of the keyboard interrupt control.
I

Keyboard
Matrix

ttl

7

6

I

PLUG-IN

I

#2

5

MODIFIER KEYS
MODEM
Ring ICarrier Extendl Shift I Ctrl
4

3

o

2

Specify:

5

AL = Pattern of selected bits to change.
AH=O To disable the selected interrupts
1 To enable the selected interrupts
Returns:

Nothing
Destroys:

BX
BX=25

Conditional Sleep

( 19h)

Puts the unit into a sleep state to save power if the recharger
isn't plugged in or if the battery voltage drops below 5.8V
(80% level) (and if a modem or serial carrier signal isn't
present). Any interrupt will wake up the unit (key hit, alarm,
modem ring, etc.) and return it to the calling application.
Specify:

Nothing
Returns:

Nothing
Destroys:

BX

BIOS Interrupts

5- 45

Table 5-8. System Services Int SOh Detailed Description (Continued)
BX-27
(1 Bh)

PPU Communications

Communicates with the PPU to perform an assortment of
commands. Before exiting, this service will send a byte to
the PPU, read a byte from the PPU, or wait until the PPU
is not busy.
For the write service, the byte is sent to the PPU once it
is ready. For the read service, a byte is sent to the PPU
requesting data once it is ready. Then, when the data is
available, it is read and returned. The wait service will
return once the PPU is ready. The PPU wait service is handy
for making sure the PPU has completed a task. For example,
the Serial and Modern ON services take a relatively long time
to perform and you must make sure these devices are on before
sending data to them.
5
The system interrupts must be disabled during multi-byte
commands. Talking to the PPU is a very slow process--a one-

byte data transfer takes about 2.3 ms to complete. For very
long commands, the interrupts will be disabled for a long
period of time so the service polls the serial and modem ports
for input. This ensures that the system will not drop
incoming data during long commands.
Specify:

AH=O
1
2
AL
II

Read a single byte from the PPU
Write a single byte to the PPU
Wait until the PPU is not busy
Byte to send (when AH= 1)

Returns:

AH=O Byte read/written successfully
1 Read/write failed (PPU wait timeout)
AL
Byte read from PPU (when AHcO)
g

Destroys:

BX
Table 5-9, which follows this table of System Services, describes the
PPU commands.

5 -46

BIOS Interrupts

Table 5-8. System Services Int SOh Detailed Description (Continued)

BX·28

Set Plug-In Power Estimate

( lCh)
Sets the charge levels for a plug-in drawer for use in
calculating the battery percentile reading. The plug-in
drawers configuration address is used to select one of the
two possible drawers. To determine the configuraton address)
use the Return Plug-in Card IDs service. Cards lA and IB
are mapped to configuration address OEOH and Cards 2A and
28 are mapped to OCOH.
There are two power levels required) each calculated from its
current usage (rnA) according to the following formula) and
then converted to hex:
level (decimal)

1I

61.084 x current

Specify:

5

AX = Power usage when system is asleep

ex

z:

DL

c

Power usage when system is awake
Configuration address (OCOh or OEOh)

Returns:

Nothing
Destroys:

BX

BIOS Interrupts

5 -47

Table 5-8. System Services Int 50h Detailed Description (Continued)

BX-29
(IDh)

Read Clock or Alarm
Reads the current Clock or Alarm time information into
a 6-byte buffer.
Specify:

AH a 0 Read the clock
#0 Read the alarm
ES:SI :: Pointer to 6-byte buffer for return of the following:
Bytes 1&2 - (Word) Number of days since 1/1/1980
Byte 3 - Minutes (of the current hour, 0-59)
Byte 4 - Hour (of the current day, 0-23)
Byte 5 - 1/1 OO's of seconds (of current second, 0-99)
Byte 6 - Seconds (of the current minute, 0- 59)
Returns:

AH=O Clock/alarm read successfully
#0 Data read is invalid
Destroys:

BX

5

BX=30

Write Clock or Alarm

(1 Eh)

Resets the clock or alarm according to the information
supplied by the user in a 6-byte buffer.
Specify:

AH=O Write to the clock
# 0 Write to the alarm
ES: SI :: Pointer to 6-byte buffer containing the following data:
Bytes 1&2 - (Word) Number of days since 1/1/1980
Byte 3 - Minutes (of the current hour, 0-59)
Byte 4 - Hour (of the current day, 0-23)
Byte 5 - 1/ laO's of seconds (of current second, 0-99)
Byte 6 - Seconds (of the current minute, 0-59)
Returns:

AHIIO Clock/alarm written successfully

#0 Write failed
Destroys:

BX

5- 48

BIOS Interrupts

,

~.:.,

Table 5-8. System Services Int SOh Detailed Description (Continued)
BXII31
(1 fh)

Read Time Zone

Returns the current Time Zone setting. Only hourly time zones
are supported. The zone ranges from -12 (Alaska) to 0 (London)
to + 12 (USSR). When the clock or alarm is read, the time zone
is added to the value.
Once the time has been set to a currect local time, changing
the time zone causes the clock to be read in the correct value
for that zone. The alarm function is not affected by changing
time zones -- the alarm will go off at the initially specified
time (an alarll! set for 16:00 PST will go off at 15:00 MST).
The parameter is calculated from the time zone (relative to
Greenwich Mean Time) as:
parameter (decimal)

c

12 + time zone

5

Specify:

Nothing
Returns:

AH=O Valid time zone returned
¢O Invalid time zone read
AL II Parameter (see above)
04h Pacific Standard (- 8).
OSh Pacific Daylight.
OSh Mountain Standard (-7).
06h Mountain Daylight.
06h Central Standard (-6).
07h Central Daylight.
o7h Eastern Standard (- 5).
OSh Eastern Daylight.
OCh Greenwich Mean (+0)
ODh Europe (+ 1)
Destroys:

BX

BIOS Interrupts

5 -4 9

Table 5-8. System Services Int 50h Detailed Description (Continued)
BX-32

Write Time Zone

(20h)
Changes the current Time Zone setting. For further information
regarding time zones and the parameter required by this function,
see Read Time Zone above.
Specify:

AL = Parameter (see above)
04h Pacific Standard (-8)
OSh Pacific Daylight
OSh Mountain Standard (-7)
06h Mountain Daylight
06h Central Standard (-6)
o7h Central Daylight
o7h Eastern Standard (- 5)
OSh Eastern Daylight
OCh Greenwich Mean (+0)
ODh Europe (+ 1)

5

Returns:

AH =0 Time zone changed successfully
#0 Time zone not altered
Destroys:

BX
BX Il 33

Read ROM Slot 7 SUbdirectory Name

(21h)
Returns the name of the ROM in the special ROM Slot 7 (see
chapter 9) to the eight byte buffer. (Any ROM plugged
into this slot is treated differently at boot.)
Specify:

ES: 01 Pointer to 8-byte buffer to receive subdirectory name
Returns:

AX·O ROM not found in slot 7
#0 ROM found in slot 7
ES: 01 = Pointer to 8-byte buffer containing subdirectory name
Destroys:

BX

5 - 50

BIOS Interrupts

Table 5-8. System Services Int 50h Detailed Description (Continued)
BX=34

HP-IL Sleep

(22h)
Turns off the HP-IL interface. The state of the HP-IL controller
is saved) and the controller is powered down. This service
should not be called if the HP-IL controller is already asleep.
Specify:

Nothing
Returns:

Nothing
Destroys:

BX
BX=35

HP-IL Wake

(23h)
Turns on the HP-IL interface. The state of the HP-IL controller
is restored to the condition it had before being powered down.
Specify:

5

Nothing
Returns:

Nothing
Destroys:

BX
BX=36

Datacom Sleep

(24h)
If the serial port is currently on) it is turned off (including
the DTR and RTS lines). If the built-in modem is currently on)
the contents of the internal registers (plus some additional
state information) is saved) and the modem is turned off.
Specify:

Nothing
Returns:

Nothing
Destroys:

BX

BIOS Interrupts

5- 51

Table 5-8. System Services Int SOh Detailed Description (Continued)
BX-37

Datacom Wake

(25h)
If the serial port was turned on when the Datacom Sleep
service was called, it is turned on, restoring the state that
it was in before it went to sleep. If the serial port was
already off when the sleep service was last called, it remains
off. Similarly, if the built-in modem was turned on the last time
Datacom Sleep was called, it is turned on, restoring all
of its internal registers plus the state it was in before it
went to sleep. If the modern was already off when the sleep
service was last called, it remains off.
Specify:

Nothing
Returns:

Nothing
Destroys:

5

BX
BX:a38

Security Enable

(26h)
Puts the unit into a secured sleep state. The only valid
reset of a secured unit is waking from sleep. Any other
attempts at rebooting will result in having all the RAM
(including the internal Edisc) set to zeros. The service
to disable security must be called to disable the security
function. This service should be used very carefully due
to the potential for losing data.
Specify:

AX

:a

ABCDh

Returns:

Nothing
Destroys:

BX

5- 52

BIOS Interrupts

Table 5-8. System Services Int SOh Detailed Description (Continued)

BX·39

Security Disable

(27h)

Clears the security function. While the unit is secured) the
only valid reset is waking from sleep. Any attempts at
rebooting will result in having all the RAM (including the
internal Edisc) set to zeros.
Specify:

Nothing
Returns:

Nothing
Destroys:

BX

5

BIOS Interrupts

5- 53

The PPU commands which can be invoked by using the PPU Communications system
service (BX=27) are described in table 5-9.
Table 5-9. PPU Commands
Command
40h

Description

Serial On
Turns on the serial port power supply. The DTR and RTS outputs
should be initialized before this command is given.
Sequence:

Send opcode 40h
Wait until PPU is not busy before sending data
41h

Serial Off
Turns off the serial port power supply. The DTR and RTS and
TxD outputs will then float.

5

Sequence:

Send opcode 41 h
42h

DTR Off
Makes serial DTR output false (low voltage). If the serial port is
off) this will have no effect on the interface.
Sequence:

Send opcode 42h
43h

DTR On
Makes serial DTR output true (high voltage). If the serial port is
off) this will have no effect on the interface.
Sequence:

Send opcode 43h

5 - 54

BIOS Interrupts

Table 5-9. PPU Commands (Continued)

44h

r

RTS Off
Makes serial RTS output false (low voltage). If the serial port is
off, this will have no effect on the interface.
Sequence:

Send opcode 44h

45h

RTSOn
Makes serial RTS output true (high voltage). If the serial port is
off, this will have no effect on the interface.
Sequence:

Send opcode 45h

47h

Modem Reset On
Makes the modem reset line go active (low voltage). This
command does not depend on the state of the MODEMON pin.

r

5

Sequence:

Send opcode 47h

48h

Modem Reset Off
Makes the modem reset line go inactive (high voltage). This
command does not depend on the state of the MODEMON pin.
Sequence:

Send opcode 48h

4Bh

Reset CPU
Requests a reset. The recommended way to do this is through the
Re-Boot interrupt 19h. The PPU pulses the logic reset lines SLP
and DSLP active.
Sequence:

Send opcode 4Bh

BIOS Interrupts

5 - 55

Table 5-9. PPU Commands (Continued)
4Ch

Beep Frequency
Sets the beeper frequency. The frequency (in hertz) is inversely
proportional to the specified number and can be approximated by
the formula:
number (decimal)

:I

17925/(!requency - 23.71)

The decimal number must be converted to hex before being sent.
The highest frequency corresponds to 01 h, decreasing through
FFh, with the lowest frequency at OOh. The default value is 58h.
Sequence:

Disable Interrupts
Send opcode 4Ch
Send number (in hex)
Restore Interrupts
5
4Dh

Beep Duration
Sets the beeper duration. For durations greater than 100 ms, the
length of beep (in seconds) is approximately half the duration
value divided by the frequency (in Hertz). The shortest duration
corresponds to 10h, increasing through FFh, with the longest
duration at OOh. The default value is 80h periods.
Sequence:

Disable Interrupts
Send opcode 4Dh
Send duration (in hex)
Restore Interrupts

5 -56

BIOS interrupts

~

)

Table 5-9. PPU Commands (Continued)
4Eh

Power Initialize
Initializes the charge levels used to calculate the battery
percentile reading. Charge levels are kept for CPU running and
halted, serial interface, modem, and the two plug-in cards
(denoted by their configuration addresses COh and EOh), as well as
for the charge supplied by the ac recharger. The levels consist of
two bytes (with the most significant (MS) byte sent first). Each
level is calculated from its current usage (in rnA) as:
level (decimal) :: 61.084 x current

This value must be converted to hex before being sent.
Sequence:

Disable Interrupts
Send opcode 4Eh
Send MS byte for CPU running
Send LS byte for CPU running
Send MS byte for CPU halted
Send LS byte for CPU halted
Send MS byte for Sleep mode
Send LS byte for Sleep mode
Send MS byte for Deep Sleep mode
Send LS byte for Deep Sleep mode
Send MS byte for serial interface
Send LS byte for serial interface
Send MS byte for modem
Send LS byte for modem
Send MS byte for recharger
Send LS byte for recharger
Send MS byte for OCOh plug-in when system is awake
Send LS byte for OCOh plug-in when system is awake
Send MS byte for OCOh plug-in when system is asleep
Send LS byte for OCOh plug-in when system is asleep
Send MS byte for OEOh plug-in when system is awake
Send LS byte for OEOh plug-in when system is awake
Send MS byte for OEOh plug-in when system is asleep
Send LS byte for OEOh plug-in when system is asleep
Restore Interrupts

BIOS Interrupts

5

5 - 57

Table 5-9. PPU Commands (Continued)
50h

Pulse RCM
Modem returns to command mode. Pulses modem returnto-command line high for 100 ms and then returns it to the
inactive state (low). If the return-to-command line is already
high. this command leaves it high for 100 ms longer, then drops it
low. This command does not depend on the MODEMON pin
state.
Sequence:

Send opcode 5Dh
Wait until PPU is not busy (modem in command mode)
5th

RCMOn
Makes the modem return -to-command line go to a high voltage.
This command does not depend on the MODEMON pin state.
Sequence:

5

Send opcode 51h
52h

RCM Off
Makes the modem return-to-command line to go a low voltage.
This command does not depend on the MODEMON pin state.
Sequence:

Send opcode S2h
53h

Set Contrast
Sets the LCD contrast. Value DOh is the darkest, OFh is the
lightest. The highest four bits are discarded.
Sequence:

Disable Interrupts
Send opcode 53h
Send contrast (in hex)
Restore Interrupts

5 - 58

BIOS Interrupts

~

Table 5-9. PPU Commands (Continued)
62h

Interrupt Enable
Enables the PPU to interrupt the CPU for alarm) low battery and
shut down.
Sequence:

Send opcode 62h
63h

Interrupt Disable
Disables the PPU interrupt of the CPU. Internal PPU interrupts
are queued and will interrupt the CPU once PPU interrupts are
re -enabled.
Sequence:

Send opcode 63h
64h

Version
5

Returns the PPU version number) an ASCII character.
Sequence:

Disable Interrupts
Send opcode 64h
Read version
Restore Interrupts
65h

CPU Running
Tells the PPU that the CPU is running (not halted). This data is
used in the battery charge level calculations.
Sequence:

Send opcode 65h
66h

CPU Halted
Tells the PPU that the CPU is halted. This data is used in the
battery charge level calculations.
Sequence:

Send opcode 66h

BIOS Interrupts

5 - 59

Table 5-9. PPU Commands (Continued)
6Ch

Read Fuel Level
Returns the battery charge level) a one-byte quantity with FFh
denoting a full charge and DOh denoting no charge. This value is
calculated -- it is not a measured value.
Sequence:

Disable Interrupts
Send opcode 6Ch
Read fuel level
Restore Interrupts
6Dh

Interrupt Status
Returns the PPU internal interrupt status. This command should
only be sent during interrupt hardware polling so that no
interrupts are dropped. The PPU prioritizes its interrupts and
indicates only the highest priority one. The highest priority
interrupt is then cleared. If no interrupts are pending) a value of
zero is returned. The status byte indicates the cause of the
interrupt:
(highest priority)
04h: Shut down
02h: Low Battery
20h: Alarm
OOh: No interrupts pending

5

Sequence:

Disable Interrupts
Send opcode 6Dh
Read interrupt status
Restore Interrupts

5 -60

BIOS Interrupts

Table 5-9. PPU Commands (Continued)

76h

Set Accuracy
Sets the real-time clock accuracy adjust. The first byte is an
offset: FFh causes the clock to run slower, OOh causes it to run at
normal speed; Olh causes it to run faster. The next two bytes
specify a counter (in hex) of the number of seconds between
adjustments. The clock is adjusted by 0.0004 second each time
the counter cycles. The counter value can be calculated as 2103.8
divided by the adjustment in minutes per year, or 345.8 divided
by the adjustment in seconds per day.
Sequence:

Disable Interrupts
Send opcode 76h
Send offset
Send LS counter (in hex)
Send MS counter (in hex)
Restore Interrupts
77h

5

Read Accuracy
Returns the PPU accuracy adjust value. (Refer to the previous
command for a description of the parameter values.)
Sequence:

Disable Interrupts
Send opcode 77h
Read offset
Read LS counter
Read MS counter
Restore Interrupts
7Ah

Modem Off
Puts the modem ReM line to a low voltage. Sets modem reset
line active (low voltage). Then turns off modem power supplies.
Sequence:

Send opcode 7Ah

alos Interrupts

5 -61

Table 5-9. PPU Commands (Continued)

7Ch

Modem On
Sets modem ReM line to a low voltage. Turns on the modem
power supplies and auto-sequences its reset lines. There is a
built-in delay that allows the modem power supplies to stabilize
and its reset sequence to complete. After the delay, the modem is
ready for communication with the mainframe.
Sequence:

Send opcode 7Ch
Wait until PPU is not busy (modem then ready)
7Dh

Beep
Causes the beeper to beep at the current frequency and duration.
(Refer to commands 4Ch and 4Dh).
Sequence:

Send opcode 7Dh

5

5- 62

BIOS Interrupts

Table 5-9. PPU Commands (Continued)
7Eh

Read Status
Returns the PPU internal status byte. The parameter error bit
(bit 6) is cleared when the PPU is reset; it is set if an illegal value
is passed when setting the clock or alarm, the time zone, or
plug-in address in the Set 10 Drawer Power Service; it remains set
until the PPU is reset. Each bit is mapped accordingly:
Bit 7: Interrupts Enabled
Bit 6: Parameter Error
Bit 5: CPU ("11l:: runn ing "O"=halted)
Bit 4: Alarm Enabled
Bit 3: Timeout Disabled
Bit 2: Low Battery
Bit I: Shut Down Active
Bit 0: Always 0
Sequence:

Disable Interrupts
Send opcode 7Eh
Read status byte
Restore Interrupts

5

BIOS Interrupts

5 -6 3

5.29 Modifier Key Interrupt (Int 52h)
When the keyboard is in Scancode, Modifier, or Numeric Keypad mode, each up- and
down-transition of any modifier key (cm:m, (s6Ilt ), and (Extend)) generates a
Modifier Key interrupt S2h. In Scancode and Modifier modes, the default handler for
this interrupt responds to each transition by adding the resultant state of the modifier
keys, plus 80h, to the key Queue. The state is encoded in the low three bits of the
character, resulting in a byte of the following form:

o o o o

b2

bl

bO

I
D
D

5

D

enID key is depressed
(561 It) key is depressed
(Extend) key is depressed

Note that although the interrupt is generated by the transition of just one modifier key,
the byte that is added to the queue reflects the final states of all three modifier keys.
This means, for example, that if ~ and (561 It) are already down when the
(Extend) key is depressed, an 87h will be generated; if the (56! f t ) key is then
released, an 8Sh will be generated.
The system will call the Modifier Key Interrupt routine if the keyboard is in normal
mode (neither Scancode nor Modifier mode is active) only if the numeric keypad is
enabled. In this situation, the handler normally does nothing (it simply returns) except
under the following conditions:
• The system is in Alt mode.
• An upward transition by the

(EX tend)

key caused the interrupt.

• The last character typed (while the (Extend) key was depressed) was a digit on the
numeric keypad.
If all of these conditions are true, the handler adds the numeric-keypad-generated
character to the keyqueue.

5-64

BIOS Interrupts

~.

,

If you write your own Modifier Key Interrupt handler, the Modifier Key interrupt is the

result of a hardware interrupt; no special information is passed into the interrupt
handler. All registers used by your handler should be saved upon entry and restored at
exit, and the routine should end with an IRET instruction. Just prior to restoring
~ registers, you must clear the modifier key interrupt by writing a 07h to I/O address
\ . OAOh.

5.30 Print Key Interrupt (Int 53h)
The Print Key Interrupt is issued whenever, in normal keyboard mode, the (Prlnt) key
is pressed. The default handler for this interrupt causes the current contents of the
display to be dumped to the PAM Printer Interface device.
This interrupt is intended to be a hook by which an application can trap the (Prlnt)
key.
5

5.31 HP -IL Primitives Interrupt (Int 54h)
Both the Portable and Portable PLUS use the Hewlett-Packard Interface Loop (HP-IL)
to communicate with discs, printers and various other I/O devices. HP-IL can also be
used to control HP-IB (IEEE-488) devices through a HP82169 HP-IL/HP-IB interface.
Each device driver communicates with its device by calling HP-IL primitive routines.
Instruments and other devices not currently supported by MS-DOS device drivers may
also be controlled with a suitable application program. The application programmmer
can call these same HP-IL primitives to communicate with the device to be controlled.
Using these routines will simplify the program and allow the application to share the
bus with the MS-DOS drivers without conflict. It is recommended that devices which
have MS-DOS drivers be controlled through standard MS-DOS system calls and that
HP-IL primitives be used only for unsupported devices.
HP-IL Primitives Interrupt 54h is used to invoke the various primitive functions, which
in turn provide low level control of the HP-IL interface and serve to isolate from each
other the various routines that use HP-IL. For example, an application can read data
from an HP-IL voltmeter, use MS-DOS Int 2Ih functions to print the data, and save
the data on an HP-IL disc without any conflicts.

BIOS Interrupts

5- 65

By using Int S4h, the application programmer can do the following operations:
• Configure the loop and assign addresses to all the devices on it.
• Address any device to either send data or receive it.
• Send data bytes to any device on the loop.
• Receive data bytes from any device on the loop.
• Send or receive individual frames.
• Search for devices according to their accessory IDs.
• Set the expected time out period for each operation.
• Read interface status information.
5

• Read the Accessory 10 of any device on the loop.
• Search the loop for a device with a certain accessory ID.
Many instruments can be controlled by simply sending data bytes and receiving
information back. For example, to instruct an HP 3421A Data Acquisition unit to take
a voltage reading and report the results requires the following steps:
1. Configure the loop to put it into a known state.
2. Locate the UP 3421A and determine its address.
3. Address the Portable PLUS to talk and the UP 3421 A to listen.
4. Set the time out to an approriate value for the HP 3421A.

5. Send the data bytes "DCVlI.
6. Address the HP 3421A to talk and the Portable PLUS to listen.
7. Receive the data bytes that the HP- 3421A returns.
Other instruments may require the application to directly send HP-IL loop commands
and be able to respond to service requests. An application can directly send and receive
5- 66

BIOS Interrupts

HP-IL frames and so can generate any command sequence that an instrument may
require. A thorough description of HP-IL can be found in the Osborne/McGraw-Hill
publication, The HP-IL System: An Introductory Guide to the Hewlett-Packard
Interface Loop, by Kane, Harper, and Ushijima (1982).
The HP-IL primitives provide the low level control over the HP-IL interface in the
Portable PLUS. They permit an application to interleave I/O operations and allow
optimizations that lead to more efficient operation. The routines keep track of loop
information such as the time of the last frame transmission and the current state of the
loop. If a command is given that would be unnecessary due to the current state of the
loop then it will be safely ignored. For example if an application issues an Address
command for devices that are currently addressed then no frames will be sent.
Before each major group of operations (or any time the caller cannot be sure of the loop
configuration) the Config function must be called. No frames will be sent during this
call if it has been only a short time since the most recent loop operation. Note that
because this call checks the time since the previous loop operation) any HP-IL
operations performed immediately before the call will cause the Config call to be
ignored.
Each HP-IL function returns a completion code in AL and error status in the CY
(Carry) flag. The remaining flags and registers are not changed. If the function fails
due to a loop problem (ie. not connected or one or more devices turned off) then it will
set the carry flag and return an error code. The following bits will be set for errors:

I

0

0

0

0

0

b2

bt

bO

I

ill:

HP-IL Error Code Byte

Device/Loop not ready
Timeout
= Frame received not as sent
l:

l:

In most cases an error requires that the application use the Config command to restore
the loop to a known state. Applications that issue Send Frame and Get Frame
commands may have to process the error according to which command was sent over
the loop. For example if the application sends an autoaddress command frame it will be
modified by any devices in the loop and cause the HP-IL interface to issue a "Frame
Received Not as Sent" error. In this case) the error is expected and can be ignored by
the application. However, if a Config command fails, user intervention may be needed
to restore the loop.

BIOS Interrupts

5 -67

5

If a Timeout is indicated, the next call will generate a power up sequence (multiple IFCs

followed by a single RFC). This sequence is also performed before the first function call
after power on. This standard timeout recovery may not be overridden.
After configuring the loop the application must determine the address of the device
that it is controlling. If it is a HP-IB device that is connected via a HP 82169A
interface then the address will be the same as the HP-IB address. If the device is an
HP-IL device then it will be autoaddressed according to its position on the loop. Note
that the user should be careful when choosing HP-IB device addresses since it is possible
to have an HP-IB and an HP-IL device that both respond to the same address. Only
addresses 0 through 7 are allowed for HP-IB devices. HP-IL addresses will then start
at 8 and be sequentially assigned to all devices around the loop.

5

For HP-IL devices the best way for an application to determine the address of a device
is with Accessory IDs. If the device supports this feature then the application can issue
a Find command that will return the address of the desired device. An application that
uses the Find function will not be dependent on the order that the devices are placed on
the loop. An alternative way to locate devices is to request a device to talk and use the
Input Data Block command to enter a device 10. This is normally an ASCII string that
identifies the particular device.
Most of these routines require the Portable PLUS to be the active controller on the loop,
although some applications (such as HPLINK) use the computer as a non-controller.
Any application that passes control of the loop to another device must regain control
before making any MS-DOS calls that could require use of the loop.
A typical character device driver will call the HP-IL functions in the following order
for each character to be sent to the target device:

Config
Find
Address

;Configure the loop if necessary
; Find desired device
; Address device to listen

; No frames are sent above under normal conditions

SetTimeout
SendFrame

5- 68

BIOS Interrupts

;Set to reasonable value tor device
; Send byte ("Output" also valid here)

~

A typical block device driver will perform HP-IL operations in the following order:

Config
Find
SetTimeout
SendFrame

;Check loop configuration
; Find disk drive
;Use "SendFrame" for specific frame sequence

Table 5-10 describes the HP-IL primitives interrupt functions.
Table 5-10. HP-IL Primitives Interrupt 54h Functions
Function

AH=O

Description
Configure Loop

(OOh)
The Configure Loop primitive checks the elapsed time since the last
HP-IL operation and performs loop configuration if necessary. This
function should be called before each major group of loop operations to
ensure correct configuration. No frames are sent unless absolutely
necessary. Configuring the loop consists of giving each device an address
according to its position on the loop. The first device on the loop is
given address 8, the second device is address 9, and so on up through a
maximum of 23 devices. (Addresses 0-7 are reserved for HP-IB devices
that may be connected to the loop through a HP 82169A HP-IL/HP-IB
Interface.) If 23 or more devices exist on the loop, all devices beyond
the first 22 are assigned address 30 (decimal).
Returns:

AL = Completion code.

BIOS Interrupts

5- 69

5

Table 5-10. HP-IL Primitives Interrupt 54h Functions (Continued)

AH-l

Find Device

(Olh)

This primitive searches the loop starting at the address specified in BH)
looking for a device with an accessory ID that matches the one in BL. If
the value of BL is xFh, only a class match is performed (only the top
four bits are compared with the device accessory IDs). If a matching
device is found, its address is returned in BL. The BIOS maintains a
table of all devices that have been found on the loop and will return
data from this table if it is available. No frames are sent unless
absolutely necessary.
Specify:

BH
BL

= Starting address (OOh-lEh).
= Desired accessory ID (OOh-FFh, excluding FEh).

Returns:

AL = Completion code.
BL a Address of device (I Fh if not found).
Destroys:

5

BH

5 - 70

BIOS Interrupts

~

Table 5-10. HP-IL Primitives Interrupt 54h Functions (Continued)

AH-2

Get Accessory 10

(02h)

This primitive returns the accessory ID of the HP-IL device at the
address specified in BL. Several conditions exist that will cause a value
of FEh to be returned:
1) Addressed device does not support accessory ID.
2) Addressed device does not exist.
3) Addressed device has an accessory ID of FEh. FEh is the ID
for an Extended class, General device. A program that needs
to control a device with this ID will require some other
means to determine if the device is on the loop.
No frames will be sent unless absolutely necessary.
Specify:

BL = Device address.
Returns:

5

AL ;: Completion code.

BL ;: Accessory ID. (FEh = no device at address, device doesn't support
accessory ID, or accessory ID is FEh.)
Destroys:

BH

~
~,.

BIOS Interrupts

5 -7 1

Table 5-10. HP-IL Primitives Interrupt 54h Functions (Continued)

AH·3

Address

(03h)

This function prepares the loop for a data transfer between the
computer and a device on the loop. It is used before an Input Data
Block or Output Data Block primitive to select the device that will
either supply or receive data. The address of the selected device is sent
as either a talk or listen address while 1Fh designates the address for the
Portable PLUS itself. The BIOS keeps track of which devices are
currently addressed as talker and listener and will only send an address
command if they are changed. Setting both talk address and listen
address to IFh is a special case that sends UNTalk and UNListen
commands to all other devices on the loop.
These HP-IL primitives do not support direct data transfer between two
other devices on the loop. All transfers must go through the Portable
PLUS. If direct transfer is required then the application programmer
must use the Send Frame primitive to address the loop and start the
transmission of data.

5

Specify:

BH

a

BL

a

Talker address (OOh-lEh or 1Fh).
Listener address (OOh-lEh or IFh).

Returns:

Completion code.
Old talker address.
BL = Old listener address.

Al
BH

a

a

Destroys:

OX

5 - 72

BIOS Interrupts

Table 5-10. HP-IL Primitives Interrupt 54h Functions (Continued)
AH sa 4
(04h)

Output Data Block

The Output Data Block primitive causes the block of ex bytes of data
at location ES:DI to be sent over the loop. If the End Option is set to 1,
the last byte of data is sent as an END frame. If DI+CX is greater than
65536, a segment wraparound will occur and incorrect data may be
sent.
Specify:

ex
ox

I:

Byte count (0 - 65,536).

= End option (0 - 1).

ES: 01 = Address of buffer containing data to hI" sent.
Returns:

AL = Completion code.
ex = Number of bytes actually transfered.

5

BIOS Interrupts

5 -7 3

Table 5-10. HP-IL Primitives Interrupt 54h Functions (Continued)

AH-S

Input Data Block

(05h)
This primitive reads CX bytes of data from the loop into a buffer at
location ES:OI. If BX is a valid SOT frame) it is sent out to initiate the
transfer. If BX is OOh or not an SOT frame) the transfer is assumed to
have already been started. (Valid SOT frames include SDA) SST) SDI
and SAI(l». The transfer will terminate when all ex bytes have been
recei'.ed or when an ETO is received. If the buffer fills before ETO is
received) an NRD sequence is transmitted. There is an ambiguity that
occurs when the caller tries to input exactly 65536 bytes; this routine
will return CX=O for both the case of a successful operation and the case
where no bytes are received.

SOA
SST
SOl
SAl

5

560h
561h
562h
563h

Send Data
Send Status
Send Device 10
Send Accessory 10

Specify:

BX

= Optional SOT frame to be sent ("0" = none).

ex

II

Count of bytes to accept before NRO.

ES:Dl :: Pointer to data buffer.
Returns:

AL :: Completion code.

ex ::

5 -74

Count of bytes received.

BIOS Interrupts

'-,

Table 5-10. HP-IL Primitives Interrupt 54h Functions (Continued)
AH::6
(06h)

Send Frame

The specified frame is sent out over the loop and an error code is
returned. Frame is the frame value (0-2047) to be sent. The values and
their usage are defined in the HP-IL interface specification manual,
which should be consulted if the programmer needs this level of
interface control. The options supported are "Wait For Loop Ready
Before Transmit" (DX=O) and "No Wait Before Transmit" (OX= 1).
Specify:

BX

= Frame to be sen t (DOh -7FFh).

OX = Wait option (O=wait; l=no wait).
Returns:

AL ::: Completion code.
AH::7
(07h)

Get Frame

This primitive waits for a frame to be received» and returns it in BX. If
no frame is available from the HP-IL interface then OOh is returned.
Get Frame is normally used in conjunction with the Send Frame
primitive when the programmer must have complete control of the
Loop.
Returns:

AL = Completion code.
BX ::: Received frame (DABOh=Frame unavailable).

BIOS Interrupts

5- 75

5

Table 5-10. HP-IL Primitives Interrupt 54h Functions (Continued)

AH-S

Status

(OSh)
Returns current loop status in BX. If the loop is ready for a frame to be
sent) bit 0 will be set. If a frame is available) then bit 1 will be set.
Note that any operation that sends a frame will effectively erase the
frame available bit. The timeout is also tested if the loop is not ready
for a frame) and a timeout error is returned if necessary.
Returns:

5

AH=10

AL

z:

BX

I:

Completion code.
Status:
Bit 15-7: (Not used.)
Bit 6: Controller active.
Bit 5: Talker active.
Bit 4: Listener active.
Bit 3: Service request received.
Bit 2: (Not used.)
Bit 1: Frame available.
Bit 0: Loop ready for frame.

Set Timeout

(OAh)
An HP-IL device that sends data can perform a loop test on each byte
sent by comparing the byte it sends with the byte that returns after
traveling around the loop. By specifying a timeout interval) an
application can dictate how long the HP-IL driver should wait for a
response to each byte sent out over the loop. If a device response is not
detected by the time the timeout period has elapsed) an error is declared
and control is returned to the calling application.
Variable timeout periods allow the programmer to handle devices that
require a long period of time to complete their operation. For example a
printer may take 20 seconds to do a formfeed and hold up the loop
during that period of time.
Specify:

BX ;: New timeout (in 1/16 seconds).
Returns:
Al = Completion

code.
BX = Old timeout (in 1/16 seconds).

5 - 76

8105 Interrupts

~
,

Example: This program demonstrates using the BIOS HP-IL interrupt (54h) to talk to
a device on HP-IL. In this case, the device is an HP 3421A Data Acquisition/Control
Unit. The program:
1. Configures the loop and sets the loop timeout value.

2. Finds the HP 3421 's loop address.
3. Addresses the HP 3421 to listen and sends the "Read Voltage" command to it.

4. Addresses the HP 3421 to talk and enters the voltage reading.
5. Displays the voltage read.

6. Exits.
The program is structured to be run through EXE2BIN (converted to a .COM program)
and therefore doesn't set up DS, ES, or SS, since MS-DOS does that before passing
control to the program.
page 60,132
title INSTRUMENT CONTROL --- using the BIOS HP-IL interrupt
cseg

5t art

5t art

segment para public 'code'
assume

cs:cseg, ds:cseg

org

100h

proc

far

call

config

call

find

j

call

output

; send the READ VOLTAGE command

i configure the loop

find the HP 3421

call

enter

; enter the voltage

mov

dx,offset buffer

; address of string

mov

ah,9

; display it

int
mov

21h
aX,4cOOh

; terminate our program

int

21h

endp
page

CONFIG --- configures the loop into a known state and assigns addresses
terminates with ERRORLEVEL a l if timeout

BIOS Interrupts

5-77

5

config:
mov

ah,O

configure the loop

1nt

54h

BIOS HP-IL call

tut
jnz

al,?
errorl

not ready?
jif yu

mov

ah,lO

!>et timeout

mov

bX,64

int

54h

test

al,?

jnz

error1

ret

for 4 !>cconds (64* (1/16 )):04
not ready?
jif yu
ehe keep going

errort:
dX,offset 100pfaU

addres!> of error me!>sage

mov

mov

al,l

errorlevel:ol

error:

5

push

ax

$ave er rorlevel

mov

ah,9

DOS function to dhphy meuagc

int
pop

2th
ax

recover errorlevel code

mov

ah,4ch

terminate code

1nt
page

21h

terminate

FINO --- find!> a device on the loop by it!> acces!>ory 10
terminate!> with ERRORLEVEL c 2 if not found
find:
mov

ah,l

mov

bh,O

find function
!>Urt 1ng !>earch addre!>s

mov

bl,53h

accessory 10 for HP 3421

int

54h

test
jnz

al,?
error2

BIOS HP-IL call
not ready?
jif yu

cmp

bItt fh
error2

not found?

jz
mov

address,bl

else save the addrcss

dxtoffset nodcvice
al,2
error

address of error me!>s4gc
errorlcvel

jif yu

ret
error2:
mov
mov
jmp
page

5-78

BIOS Interrupts

,

~
..

OUTPUT --- sends the READ VOLTAGE command to the HP 3421.
terminates with ERRORLEVELa3 if fails.
output:
mov

ah,3

address the loop

mov

bl,address

get HP 3421 address (LISTENER)

mov

bh,1 fh

get PORTABLE address (TALKER)

int

S4h

BIOS HP-IL call

test

al,7

any problems?

jnz

error3

jif yes

mov

ah,4

send data block

mov

dx ,1

finhh with END frame

mov

cx,S

length of command

mov

di ,offset cOlTWlland

address of the command

int

S4h

test

al,7

any problems?

jnz

e r ro r3

jif yes

cmp

cX,S

all bytes transferred?

jnz

er ro r3

ji f no

5

ret
error3:
mov

dx ,offset sendfail

address of error message

mov

al,3

set errorlevel

jmp

er ror

page
ENTER --- read the voltage back from the HP 3421
terminate with errorlevel a 4 if fails.
enter:

~

mov

ah,3

do loop addressing

mov

bh,address

address of TALKER (HP 3421)

mov

bl,lfh

address of LISTENER (The PORTRBLE)

1nt

S4 h

BIOS HP-IL call

test

al,7

any problems?

jnz

er ror4

jif

mov

cx,32

maximum number of bytes to read

yes

mov

bx,S60h

SDA (Send DAta) command

mov

d1,offset buffer

address of scratch buffer

mov

ah,S

input data block

int

54h

BIOS Interrupts

5-79

test

al,7

jnz

error4

jif yes

mov

di,offset buffe r

address of start of data

add
mov

di,cx

any problems?

i

move to end of data

aX,OaOdh

CR/lF

al,36

ascii for $

stosw
mov
stosb

~
}.

terminate string

ret
error4 :
mov

dX,offset entrfail

address of error message

mov

al,4

error level

jmp

error

page

5

--..

loopfail

db

'loop failure' ,13,10, '$'

nodevice

db

'Device not found' ,13,10, '$'

sendfail

db

'Send failure' ,13,10, '$'

ent rfail

db

'Enter failure' ,13,10, '$'

conmand

db

'DCY' ,13,10

~

address db

?

address of HP 3421

buffer

db

32 dup (?)

scratch buffer

cscg

ends
end

start

5.32 Sleep Interrupt (lnt 55h)
This service is used to force the computer into a recoverable sleep state. Any
subsequent interrupt that occurs after the computer goes to sleep (keyhit, serial ring,
alarm, etc.) will wake the unit and return it to its state prior to the sleep. The computer
does not reboot. Before going to sleep, the states of the HP-IL hardware, modem, LCD
controller and the current stack are saved so that they may be restored upon waking.

5-80

BIOS Interrupts

~

r

5.33 Menu Key Interrupt (lnt 56h)
A Menu Key Interrupt is generated whenever, in HP mode, you press the (E[[[) key.
The default handler for this interrupt performs one of three functions:
• If the keyboard is in Modifier mode, adds an 8Ch to the key queue.
• If the softkey labels are turned on, turns them off.
• If the softkey labels are turned off, turns them on.

An application can use the Menu key interrupt in two ways:
• By taking over Int 56h and pointing it at your own Menu key interrupt handler, you
can perform your own Menu key processing. When the system branches into your
new interrupt handler, the state of the three modifier keys (at the time the (SYS tern)
key was pressed) are available in AH; AL will contain FCh, the Configuration
EPROM keymap Local Function code that caused the interrupt to be issued. This
interrupt is invoked by the keyboard driver responding to a keyboard hardware
interrupt. All general registers are available when the interrupt branches into your
handler; they need not be saved and restored (in general, however, you should always
save and restore any registers that you will use in servicing an interrupt).
• If you leave the Int 56h vector pointing at the default handler, you can
programmatically simulate the CBiBID key by issuing an Int 56h software interrupt.
No registers are altered by the default handler.

In Alt mode, the (E[[[) key represents function key CI[); the Menu key interrupt is
never generated. Two-byte codes will be added to the key queue according to the
following table (E=Extend, S=Shift, CcControI):

00 43

--C

-S-

-SC

E--

E-C

ES-

ESC

00 66

00 5C

00 66

00 70

00 70

00 70

00 70

BIOS Interrupts

5 - 81

5

The Configuration EPROM keymap entry that generates a Menu key interrupt is Local
Function FCh. Behavior in the various keyboard modes is summarized as follows:
Normal Mode: In UP mode, pressing (BiffiD generates a Menu key interrupt (56h); the

default handler toggles the softkey labels on or off. In Alt mode, an appropriate
two-byte code is added to the key queue.

CBiiiiD key adds its scancode, 17 decimal (llh) to the
key queue. The Menu key interrupt is not generated.

Scancode Mode: Pressing the

Modifier Mode: In HP mode, pressing the (BiffiD key generates a Menu key interrupt

(56h); the default handler adds an 8Ch to the key queue. In Alt mode, an appropriate
two-byte code is added to the key queue.

5.34 System Key Interrupt (Int 57h)
5

A System Key Interrupt is generated whenever, in HP mode, you press the
(Use r /Sys tem) key. If the keyboard is in Modifier Mode, the default interrupt handler
adds an 8Bh to the key queue; otherwise, it does nothing. An application can use the
System key interrupt in two ways:
• By taking over Int 57h and vectoring it to your own System key interrupt handler,
you can perform your own System key processing. When the system branches into
your new interrupt handler, the state of the three modifier keys (at the time the
System key was pressed) are available in AU; AL will contain FBh, the Configuration
EPROM keymap Local Function code that caused the interrupt to be issued. This
interrupt is invoked by the keyboard driver responding to a keyboard hardware
interrupt. All general registers are available when the interrupt branches into your
handler; they need not be saved and restored (in general, however, you should always
save and restore any registers that you will use in servicing an interrupt).
• If you leave the Int 57h vector pointing at the default handler, you can
programmatically simulate the System key by issuing an Int 57h software interrupt.
No registers are altered by the default handler.

5 - 82

BIOS Interrupts

~

In Alt mode, the System key represents function key (J]]J; the System key interrupt is
never generated. Two-byte codes will be added to the key queue according to the
following table (Er:Extend, S=Shift, Cr:ControI):
--C

00 44

00 67

-S00 50

-SC
00 67

E-00 71

E-C
00 71

ES00 71

ESC
00 71

The Configuration EPROM keymap entry that generates a System key interrupt is
Local Function FBh. Behavior in the various keyboard modes is summarized as follows:
Normal Mode: In HP mode, pressing (User ISystem) generates a System key interrupt
(57h); the default handler simply returns. In Alt mode, an appropriate two-byte code is
added to the key queue.
Scancode Mode: Pressing the (Use r ISYS tern) key adds its scancode, 16 decimal (l Dh)
to the key queue. The System key interrupt is not generated.
Modifier Mode: In UP mode, pressing the (Use r /SYS tern) key generates a System key
interrupt (57h); the default handler adds an 8Bh to the key queue. In Alt mode, an
appropriate two-byte code is added to the key queue.

5.35 Break Key Interrupt (lnt 58h)
A Break Key Interrupt is generated by the keyboard driver when you hold down the
(Shl ft) key and press (Break l. The default interrupt handler responds by first
flushing the key queue, and then putting a AC (D3h) in it. An application can use the
Break key interrupt in two ways:
• By taking over Int 58h and vectoring it to your own Break key interrupt handler,
you can perform your own Break key processing. This interrupt is invoked by the
keyboard driver responding to a keyboard hardware interrupt. All general registers
are available when the interrupt branches into your handler; they need not be saved
and restored (in general, however, you should always save and restore any registers
that you will use in servicing an interrupt).
• If you leave the Int 58h vector pointing at the default handler, you can
programmatically simulate (Shl f t )( Break) by issuing an Int 58h software
interrupt. No registers are altered by the default handler.

BIOS Interrupts

5 -8 3

5

(Shl f t)( Break) functions identically in both HP and Alt modes. The Configuration
EPROM keymap entry that generates a Break key interrupt is Local Function 09h.
Behavior in the various keyboard modes is summarized as follows:
Normal Mode: Pressing (Shl f t )( Break) generates a Break key interrupt (58h») which
normally flushes the key queue and then puts a AC (03h) in it.
Scancode Mode: Pressing the (Shl f t ) key causes the resultant state of all three
modifier keys) plus SOh) to be added to the key queue. Pressing the (Break) key adds
its scancode) 71 decimal (47h) to the key queue. The Break key interrupt is not
generated.
Modifier Mode: Pressing the (Shl f t ) key causes the resultant state of all three
modifier keys) plus SOh) to be added to the key queue. Subsequently pressing the
(Break) key adds an SDh to the key queue. The Break key interrupt is not generated.

5

5.36 Enable/Disable Ring Interrupt (Int 59h)
The Serial and Modem ring interrupts can be controlled by interrupt 59h. When this
service is called) AL specifies the action to be taken. If AL contains an odd value) both
the Modem and Serial Interface ring interrupts are enabled. When they are enabled)
the system will call interrupts 42h and 4Bh whenever the RING signal goes from a low
to a high state.
If AL contains an even value) the ring interrupts are disabled. Interrupts 42h and 4Bh
will then never occur, although the state of the RING line can still be read on a polled
basis from the Control Status register at I/O address 42h (for the serial port) or A2h
(for the modem).

5 -84

810S Interrupts

~

~

\:

5.37 AUX Expansion Interrupt (lnt SOh)
The AUX driver expansion interrupt (SDh) provides a means of examining) trapping,
and altering characters coming from the serial port or modem. The driver calls this
interrupt whenever a character has been read from the I/O port, but before the
character is put into the input queue. A typical application of the AUX Expansion
Interrupt might be to map incoming EBCDIC characters into ASCII.
The driver automatically performs any hardware handshaking required by the serial
port before interrupt SDh is called, so an application doesn't have to observe handshake
signals. At exit, if no character is to be placed in the input queue (indicated by
returning AX=-l), the driver ignores the normal XON/XOFF software protocol. The
application must perform this handshake if it)s required.

~

w

Note

An application should always return to the driver by using IRET. This
interrupt is called while processing the hardware interrupt that occurs
when a character is received. There are hardware-specific protocols that
must be observed in order to clear the interrupt.
An application must not alter any register except AX.

"
Note

If you plan to use Int SDh, you should turn the modem on before taking
over the expansion interrupt. If the modem is turned on after taking over
the interrupt) you must allow the first 12 characters to be passed through
and placed into the BIOS input queue. This is necessary because the BIOS
sends a string of 12 characters to power up and configure the modem) and
expects all 12 to echo back if the modem is present in the system. If fewer
than 12 characters return from the modem to the BIOS, the system will
assume the modem is not there.

("" Table 5-11 describes the AUX expansion interrupt function.

BIOS Interrupts

5- 85

5

Table 5-11. AUX Expansion Interrupt SOh Function
Function

AHaO
(OOh)

Description
Character Received By Serial Port

The character in AL has just been received through the serial port and
is about to be processed by the AUX driver. The expansion code can
inspect or alter the character before it is added to the input queue, or
discard the character by returning FFh in AX.
Register contents:

AL = Character received from serial port.
BL = Serial port status byte:

I b7

b5

b4

b3

b2 bl

bO I

1t L

Break being sent
Xmit data register empty
Break being received
' - - - - - - - - Framing Error
- - - - - - - - - - - Parity Error
' - - - - - - - - - - - Overrun Error
~-------------Data ready to be read

5

AH= 1
(Olh)

Character Received By Modem

The character in AL has just been received through the modem and is
about to be processed by the AUX driver. The expansion code can
inspect or alter the character before it is added to the input queue, or
discard the character by returning FFh in AX.
Register contents:

AL = Character received from modem.
BL = Modem status byte (same as "Serial Port Status Byte" above).

5 -86

BIOS Interrupts

( " 5.38 CON Expansion Interrupt (lnt 5Eh)
The CONsole driver expansion interrupt (SEh) provides a means by which user-written
applications can preprocess characters being manipulated by the CONsole driver,
perform additional Alpha Mode initialization, and perform additional Graphics Mode
initialization. This makes it possible for an application to process additional escape
sequences, remap characters before they are displayed, prohibit certain characters from
being seen by the CONsole driver, preprocess keyhits) replace default fonts, and cause
Alpha or Graphics mode to display a specific image immediately after it is reset.
The Interrupt SEh expansion code should check the AH register to determine why it
was called. If the code in AH is not one of interest) an IRET should immediately be
performed.

~

.,

Note

An application should always return to the driver by using IRET. This
interrupt may be called in the middle of processing a keyboard matrix
hardware interrupt. There are hardware-specific protocols that must be
observed in order to clear the interrupt.
An application must not alter any registers unless noted otherwise.

ei

'l
Note

~

CON expansion code must not call any built-in system drivers via standard
MS-DOS protocol. In order to output text to the display from within the
expansion code) for example, you must use Video I/O Interrupt 10h, Fast
Video Interrupt SFh, or System Utility Interrupt SOh rather than the usual
MS-DOS Interrupt 21h. The expansion code should also take care to avoid
recursion; CON output via service interrupt SOh (and in some cases SFh)
can cause the code to be entered recursively.

Table 5-12 lists the functions performed by this interrupt.

BIOS Interrupts

5- 87

5

Table 5-12. CON Expansion Interrupt 5Eh Functions
Function
AHIIO
(OOh)

Description
Output Character About To Be Processed

The character in AL is about to be processed by the CONsole output
driver. The expansion code can inspect, alter, or trap the character
before the driver sees it. When the expansion routine terminates (via
IRET), the driver examines ex to determine what it should do. If the
expansion code returns eX=-l) the character in AL is discarded; if
ex=o) the character in AL is passed on to the output driver (and escape
sequence parser) for normal processing; if CX>O) the character in AL is
processed normally and then the expansion code is rerun with the same
character in AL) AH=O, and ex still set to the same positive value. The
first time the expansion code is called with any given character) exco.

~

~

CON EXP
Is
Y
--+~~ Int SEh f---+ CX:;:-l?--+

5

N

N

~

~

Is
CONEXP
CX=O? ....- Int 5Eh ~ ~

Y

L..-

...--._

The AH=O CON Expansion interrupt was designed as one possible way to
add additional escape sequences to the CON driver. In general) the
expansion code examines incoming characters and optionally passes them
through or traps them in a buffer; ex can eventually be used as a loop
counter if it becomes necessary to pass a string of buffered characters to
the escape parser/display driver for normal processing in one fell swoop.

5 -88

BIOS Interrupts

Table 5-12. CON Expansion Interrupt 5Eh Functions (Continued)

AH·l

Alpha Initialization Completed

(Olh)

The display has just been put into Alpha mode, but it has not yet been
turned on. The display has been cleared, the cursor is at the home
position, and all of the fonts for the current mode have been reloaded.
Expansion code could be used here to replace default fonts with new
ones, enable Arabic mode, reposition the cursor, or display text.
AH=2

Graphics Initialization Completed

(02h)
The display has just been put into Graphics mode and cleared, but it has
not yet been turned on. The graphics cursor is off, the relocatable origin
is at (0,0), drawing mode is "set pixels", the linetype is 1 (solid), and the
pen is up.
AH=3

Matrix Key About To Be Processed

(03h)
A matrix key has been hit; its scancode is in DX. and the current states
of the three modifier keys are in the low three bits of AL. At this point,
the expansion code has the option of altering either or both of these
registers to make the key look like another key (by changing the
scancode in DX and/or the modifiers in AL). If the expansion code
passes back a -I in AX) normal matrix key processing is bypassed and
the keystroke will appear to have never happened.
Register contents:

AL :: Bit 0: State of the ~ key.
Bit I: State of the (sh~ f t ) key.
Bit 2: State of the (Extend) key.
OX :: Scancode of matrix key (0-71).

BIOS Interrupts

5-89

5

Table 5-12. CON Expansion Interrupt 5Eh Functions (Continued)
AH=4
(04h)

Display Character Just Processed

The character in AL has just been processed by the CONsole output
driver. CX contains the same value it had at the completion of the
AH::::Q expansion call (see the diagram for CON Expansion Function 0).
If, at this time, CX is passed back to the CON driver equal to zero,
output processing concludes normally. If CX is set to some non-zero
value, the character in AL will be resubmitted to the display output
routine (and escape sequence parser), passing once again through the
AH=O expansion call.
AH=S

Display Character and Attribute About To Be Stored

(OSh)
A character and attribute are about to be stored in display RAM (and
consequently displayed on the LCD). Expansion code has the option of
altering the character and attribute in BX.
Register contents:

5

BL

c

Character code.

= Attribute byte.
ES: 01 = LCD address at which character and attribute will be stored.

BH

"Ese &a?" to the CONsole driver.
After running this program (which stays resident), the printing of that escape sequence
to the console will cause the string uHP Portable PLUS..... to be printed in the escape
sequence's place. There are three states in which the program can be:
Example: This program adds the escape sequence

• State 0: No escape sequence is being printed (parsed).
• State 1: Parsing an escape sequence that matches (so far) the one we're looking for.
• State -1 (FFh): Printing a string of characters; either the previous part of an escape
sequence we didn't match (which we have saved in a buffer), or we're printing the
replacement string "HP Portable PLUS...II•
The console expansion interrupt will not work in conjunction with another program
which also tries to do console expansion, such as the TERM program on B:\BIN. To test
this example, run the program listed below, then (in MS-DOS commands) type
5-90

BIOS Interrupts

'~"""

J

ECHO

~

&&a1 (Return)

The first ampersand disappears and causes the escape character to be displayed--but
you have to type another ampersand for the escape sequence.
page 60,132
title CONSOLE EXPANSION --- adding an escape sequence to the console driver
cseg

segment para pUblic 'code'
assume

cs:cseg, ds:cseg

org

IOOh

start

proc

far

jmp

init

start

endp

do the init code

This is the CONSOLE EXPANSION interrupt (SEh) service routine.

We're only

concerned with console-expansion-call 0 (AH=O) which is character output.
intSe:

5
push

ds

push

es

push

cs

pop

ds

push

cs

pop

es

save data seg reg
set up our data segment
set up our extra segment
char about to be processed?

cmp

ah,O

jnz

bailout

jif no

cmp

byte pt r state,O

are we parsing an escape sequence?

jnz

instate

ji f yes

cmp

cx,O

first time here?

jnz

sornebad

jif no, something wrong

cmp

al,27

character to be output an escape?

jnz

bailout

jif no, ignore it, let CON do it

mov

word ptr buffptr.O
byte ptr state,1

init buffer pointer

mov

set state to parsing escape seq

savechar:
push

di

save register

mov

di,buffptr

get buffer pointer

mov

[di+buffer] ,al

push char into buffer

inc

di

cmp

byte ptr [di+escseq] ,0

got entire escape sequence?

jz

itsours

jif yes, now do our thing

BIOS Interrupts

5-91

mov

buffptr,di

pop

di

mov

cX,Offffh

,; save new pt r value

&omebad:
tell CON to ignore it

bailout:
pop

es

pop

ds

iret

restore data seg reg
return back to con driver

itsours:
mov

word ptr buffptr,offset ourmsg

mov

byte ptr state,Offh

set state to output mode

; address of our message

pop

di

restore register

mov

cx ,I

set flag for CON

push

51
si,buffptr

save register

out loop:

mov
lodsb

5

get pointer to next char
get next char of output

mov
pop

buffptr,si
si

save output ptr
resto re reg

cmp

al,O

done?

jnz

bailout

jif no

mov

byte ptr state,O

clear state flag

jmp

somebad

exit, with CON flag to ignore

cmp

byte ptr state,Offh

are we 1n output state?

jz

outloop

jif yes

push

di

save register

mov

di,buffptr

get buffe r pt r

cmp

aI, [di+escseq]

does new char match next char?

jnz
pop

notours

jif no, dump our buffer

di

resto re reg

jmp

savechar

put the char in our buffer

mov

[di+bufferl,al

save the char

inc

di

instate:

notours:

5-92

mov

byte ptr (di+buffer],O

mov

word ptr bUffptr,offset buffer

; terminate buffer

mov

byte ptr state,Offh

; point to the start of saved

set output state

pop

di

restore register

jmp

outloop

output what we've saved

BIOS Interrupts

buffer

db

32 dup (1)

escape sequence buffer

buffptr dw

?

pointer to next hole in buffer

state

db

1

current parsing state

esc$eq

db

27,'&a1' ,0

escape sequence we're adding

ourms9

db

'HP Port able PLUS ... , ,13,10,0

; our message

end of resident code

endkeep:

init:

cseg

mov

byte ptr state,O

mov

dX,offset int5e

add re s S

normal state: not parsing

mov

aX,25Seh

take the Se interrupt vector

int

21h

0

f

0

ur int 5e ISR

mov

dX,offset endkeep

mov

cl,4

shr

dX,cl

inc

dx

round up one for remainder

mov

ax,3100h

terminate but stay resident

int

2Ih

address of end of code to keep
get size in I6-byte paragraphs

with ERRORLEVEL

5

=0

ends
end

start

BIOS Interrupts

5-93

5.39 Fast Video Interrupt (Int 5Fh)
The liquid-crystal display (LCD) can be quickly manipulated through calls to the Fast
Video service interrupt (5Fh). This interrupt provides facilities for cursor positioning,
character and/or attribute reading and writing, management of user-defined windows,
and various graphics functions such as pixel placement and line drawing.
Fast Video is composed of two distinct groups of functions: Fast Alpha and Fast
Graphics.

5.39.1 Fast Alpha
Fast Alpha operates on four structures as shown in figure 5-2.

5

• The Arena is the display database, the display RAM in which the Window and
Logical Rectangle (defined below) can be moved. The Arena bounds are fixed by
hardware at 62 lines of 80 characters per line. Most Fast Alpha coordinates are
Arena-relative, with (0,0) being the (row,column) of the upper left corner. The
Arena is of fixed size and origin; it cannot be altered.
• The Window is the physical display, the area within the Arena that the user actually
sees. The Window size is fixed by hardware at 25 lines of 80 characters per line
(except when softkey labels are displayed -- it is then 23 lines). The Window origin,
however, is variable in the Y (or row) direction and can be moved to any
Arena-relative coordinate with the constraint that no part of the Window extends
outside the Arena.
• The Logical Rectangle is the Fast Alpha workspace. Nearly all Fast Alpha routines
manipulate this region or its contents. The user can define both the size and the
arena-relative origin of the LR (with the constraint that no part of the LR extends
outside the Arena); note that the LR and the Window are completely independant.
• The Cursor is a pointer to a particular row and column within the current Logical
Rectangle. The cursor moves within the bounds of the LR; it mayor may not be
visible within the Window.

5- 94

BIOS Interrupts

'J..

Figure 5-2. Fast Alpha Structures

0,0

Arena

0,0

Window

0,0

79,24
5

Logical
Rectangle

o Cursor
)(,y

m,n
79,61

BIOS Interrupts

5 - 95

Many of the Fast Alpha functions deal with characters and attributes. A character can
take on any value from 0 to 255 (one byte); each character byte is stored in display
RAM with an associated attribute byte. The attribute byte defines the various
characteristics of the character, as shown in figure 5- 3. (Note that bits 5 and 4 aren't
interpreted as a binary form.)

~

Figure 5-3. Display Attribute Byte

bO

b7

I
OO=Font
IO=Font
XI=Font

FlO F2

!}-1

UL IV BL

I

1~

Blinking
Inverse Video
Underlined

5

I

Caution

Use caution In mixing Fast Alpha, Video I/O Interrupt 10h and CON
output. The CONsole driver makes Internal use of several Fast Alpha
facilities, and may subsequently corrupt current Logical Rectangle,
Cursor, and Window settings. Video I/O Interrupt 10h calls may
similarly affect Fast Alpha and CONsole driver variables. Also. while
Fast Alpha permits the cursor to be moved off screen, anything
output via the CONsole driver may force the window to be adjusted
to bring the cursor back into view.
l

Display RAM resides at segment BOOOh. Fast alpha places the first line of the Arena at
BOOO:0200h and extends down 62 lines to BOOO:3FOOh. Display RAM from 8000:0000h
through 8000:0 IFFh is reserved for softkey label storage, is not touched by any Fast
Alpha routines, and should not be used. (If you prefer to think of the first line as offset
OOOOh, consider alpha memory as starting at segment 8020h instead of BOOOh.)
Alpha mode can simultaneously support three 256-character fonts (or six
128-character fonts, depending how you look at it). These fonts are stored in a reserved
area of display RAM which is subdivided into three 256-character regions: LCD font
regions 0, 1, and 2. When an alpha character is stored in display RAM, two bits of its
attribute byte specify which LCD font region is to be used; the sign bit of the character

5 -96

BIOS Interrupts

~

byte specifies whether that character is in the low half or high half of that region.
(Refer also to "Display Controller" in chapter 7.)
Fast Alpha provides the user with total access to the character fonts in any of the three
regions by requiring the user to explicitly specify each character's attribute byte. This
means that, in order to achieve desired results, the user must know precisely what font
resides in each of the font regions. The exact arrangement of fonts is determined by the
Initial Font Load table in the configuration EPROM, plus any font changes that may
have been made by CON Expansion code or by the user's application itself. Barring any
such changes, the Initial Font Load will look like that shown in figure 5-4.

Figure 5-4. Initial Font Load

HP Mode
High Half
Low Half
Font Region 0

r

Font Region
Font Region 2

HP RomanS Bold
Linedraw

I Mathdraw

HP RomanS Light

Al t Mode
Alt Bold
5

Al t Bold
Al t Light

The configation EPROM provides separate Initial Font Load tables for HP and Alt
modes.
Video I/O Interrupt 10h (described earlier in this chapter) generally accesses only fonts
in region O. The exception here is graphics mode; characters with codes of 128-255
come from a user-supplied table pointed to by a double word vector for interrupt 1Fh.
Standard CON output works in terms of Primary and Alternate fonts. The primary
font generally resides in Font Region 0; the alternate font is in Font Region 1. The
characters in Font Region 2 are stick figures used to mimic the halfbright
enhancement; if halfbright is enabled, characters that normally use fonts from Region 0
and 1 are automatically mapped into Font Region 2. (The only place this could present
a problem is in the halfbright enhancement of HP mode line and math symbols, which
have no equivalents in Font Region 2.)
Whenever alpha mode is initialized (at system reboot, in response to "ESC E", or at exit
from graphics mode) the font tables are reloaded as directed by the Initial Font Load
tables in the configuration EPROM. After everything has been initialized, but before
BIOS Interrupts

5-97

the display is turned on, CON Expansion code is given a chance to alter (remove,
modify, or add to) the newly loaded fonts. The first font that was loaded becomes the
Primary Font The second font loaded becomes the Alternate Font
In display RAM, fonts are stored in an eight-byte format in which only the high six bits
of each byte are significant When installing fonts, you have the option of specifying
the new font table in either the same eight-byte form or in a more space-efficient
six-byte (packed) form. The two formats are shown in figure 5-5.

~

Figure 5-5. Font Formats

Significant

o0
5

Significant

0 000

o0

00000 0

1 1 1 1 1 1

1 1

2 2 2 222
333 3 3 3
4 4 4 4 4 4

2 2
3 3
4 4

1 1 1 1
1 1 1 1 2 2

5 5 5 5 5 5
666666
7 7 7 7 7 7

5 5
6 6
7 7

6xS Matrix
Unpacked Format
(8 bytes)

o0

22222 2
33333 3
33444 4
4 4 4 455
55555 5

6xS Matrix
Packed Format
(6 bytes)

In the unpacked case, bytes 0 through 7 define eight six-bit dotrows from top to bottom
of the 6x 8 matrix; the rightmost two bits of each byte are ignored. In the packed case,
bytes 0 through S define the same eight dotrows in a raster-scan format, starting with
the most significant bit of the first byte at the upper left corner of the matrix.
Subsequent bits are found by moving to the right, wrapping to the left end of the next
dotrow down as the matrix becomes filled.
All of the ROM-resident system default fonts are stored in the packed format. A word
in the configuration EPROM specifies the segment address of the first system font table;
subsequent font tables follow.

5-98

BIOS Interrupts

~

Graphics mode consumes all of the font regions for use as display RAM. Therefore, an
appropriate escape sequence or service function should always be used to switch from
graphics back to alpha to insure that the correct fonts will be reloaded.
Table 5-13 lists the Fast Alpha functions for Interrupt 5Fh. Specify the desired
function code in AH, with additional parameters passed in other registers as indicated.
All registers except AX are preserved unless otherwise noted.
A subset of the Fast Alpha functions described in table 5-13 can be accessed from
high-level languages such as Lattice Ct MS Pascal, and MS Fortran through libraries
that will be provided with these products. Two such libraries provide a standard
interface that allows rapid output while maintaining portability of code. The HP-UX
Fast Alpha library (fa.lib) provides compatibility among the Portable PLUS, the Integral
PC, and other HP computers featuring HP-UX. This library is designed so that it can be
implemented on MS-DOS computers. The peD library (pcdfa.lib) offers greater
functionalitYt but provides compatibility between only the Portable PLUS and the
Integral PC. This library probably wontt be implemented on future HP computers.
Table 5-13. Fast Video Interrupt 5Fh Alpha Functions

r ...

F.u.n.c.t.io_n

AH=O
(OOh)

.D_e.s.c.ri.p.t.io.n

5
- - - - -..

Get Arena (GETAR)

Returns the size of the Fast Alpha Arena.
Returns:

CL • Arena width (80 columns).
= Arena height (62 lines).

CH

AH=l
(Olh)

Get Window (GETW)

Returns the current Window size and origin.
Returns:

BL = Window
c Window
CL = Window
CH = Window
BH

X-origin (Arena column 0).
Y -origin (Arena line, 0-60.
width (80 columns).
height (23/25 lines with/without softkey labels).

BIOS Interrupts

5- 99

Table 5-13. Fast Video Interrupt 5Fh Alpha Functions (Continued)

AH-2

Get Logical Rectangle (GETLR)

(02h)
Returns the current Logical Rectangle size and origin.
Returns:

BL
LR X-origin (Arena column, 0-79).
BH = LR Y-origin (Arena line, 0- 61).
CL a LR width (columns).
CH
LR height (lines).
II

:I

AHr:3

Get Cursor Position (GETCUR)

(03h)
Reads the current LR-relative cursor position.
Returns:

BL
Cursor column (LR column).
BH • Cursor row (LR line).
:I

5

AH a 4

Set Window (SETW)

(04h)
Repositions the Window within the Arena. If any part of the new
Window falls outside of the Arena, the desired Window origin will be
adjusted to ensure that the entire window is within the Arena bounds.
Specify:

BL
BH

:I
:I

Desired Window X-origin (Arena column, 0-79 - - ignored).
Desired Window Y-origin (Arena line, 0-61).

Returns:

BL
BH

5 -1 00

~

Actual Window X-origin (Arena column 0).

= Actual Window Y-origin (Arena line).

BIOS Interrupts

~

)

Table 5-13. Fast Video Interrupt 5Fh Alpha Functions (Continued)

AH·S

Set Logical Rectangle (SETLR)

(OSh)
Redefines the current LR. If any part of the new LR falls outside the
Arena, the LR size will be clipped to fit within the Arena bounds. The
cursor will be positioned at the upper left corner (LR coordinate [0,0]) of
the new LR.
SpecifY:

BL :: Desired LR
BH • Desired LR
CL :: Desired LR
CH II: Desired LR

X-origin (Arena column, 0-79).
Y-origin (Arena line, 0-6 1).
width (columns).
height (lines).

Returns:

BL :: Actual LR
BH a Actual LR
CL :: Actual LR
CH :: Actual LR
AH=6

X-origin (Arena column).
Y-origin (Arena line).
width (columns).
height (lines).
5

Set Cursor Position (SETCUR)

(06h)
Moves the cursor to a new LR coordinate. If the new position is outside
of the current LR, nothing happens.
SpecifY:

AL :: 0
1
2
3
> 3
BL
c
BH
::

AH=7

Turn off cursor.
Turn on primary cursor.
Turn on block cursor as primary.
Turn on underscore cursor as primary.
Don't change cursor.
Cursor column (LR column).
Cursor row (LR line).

Read Character (GETC)

(07h)
Reads the single character at the specified LR coordinate. The cursor
does not move.
Specify:

BL a LR column.
BH :: LR line.
Returns:

DL :: Character at specified LR coordinate.

BIOS Interrupts

5 - 10 1

Table 5-13. Fast Video Interrupt 5Fh Alpha Functions (Continued)

AH·a

Read Attribute (GETA)

(08h)
Reads the single attribute at the specified LR coordinate. The cursor
does not move.

.~

Specify:

BL 1: LR column.
BH ;: LR line.
Returns:

DH

AH=9

Attribute at specified coordinate.

1:

Read Attribute/Character (GETCA)

(09h)
Reads the single attribute and character at the specified LR coordinate.
The cursor does not move.
Specify:

BL • LR column.
BH ;: LR line.

S

Returns:

DL
DH

AH=10
(OAh)

Character at specified coordinate.
Attribute at specified coordinate.

1:
1:

~

Read Character at Cursor (GETCM)

Reads the single character at the current cursor position. The cursor
advances to the next LR position, possibly causing the LR to scroll up
one line.
Returns:

DL
AH·ll

Character at cursor.

D

Read Attribute at Cursor (GET AM)

(OBh)
Reads the single attribute at the current cursor position. The cursor
advances to the next LR position, possibly causing the LR to scroll up
one line.
Returns:

DH

5 -102

D

Attribute at cursor.

BIOS Interrupts

~

Table 5-13. Fast Video Interrupt 5Fh Alpha Functions (Continued)
AH-12

Read Attribute/Character at Cursor (GETCAM)

(OCh)
Reads the single attribute and character at the current cursor position.
The cursor advances to the next LR position, possibly causing the LR to
scroll up one line.
Returns:

DL
DH
AH=13

II
II

Character at cursor.
Attribute at cursor.

Write Character (PUTC)

(ODh)
Writes a single character at a specified LR coordinate. The existing
attribute at that position stays unchanged; the cursor does not move.
Specify:

BL II LR column.
BH
LR line.
DL :: Character to be displayed.
II

AH=14

5

Write Attribute (PUT A)

(OEh)
Writes a single attribute at a specified LR coordinate. The existing
character at that position stays unchanged; the cursor does not move.
Specify:

BL = LR column.
BH :: LR line.
DH II Attribute to be displayed.
AH::15

Write Attribute/Character (PUTCA)

(OFh)
Writes a single attribute and character at a specified LR coordinate. The
cursor does not move.
Specify:

BL
LR column.
BH
LR line.
DL :: Character to be displayed.
DH :: Attribute to be displayed.
II

l:

BIOS Interrupts

5 - 103

Table 5-13. Fast Video Interrupt 5Fh Alpha Functions (Continued)

AH·16

Write Character at Cursor (PUTCM)

(10h)

Writes a single character at the current cursor position. The existing
attribute at that position stays unchanged; the cursor advances to the
next LR position, possibly causing the LR to scroll up one line.
Specify:

DL

AH=17
( 11 h)

= Character to be displayed.

Write Attribute at Cursor (PUT AM)

Writes a single attribute at the current cursor position. The existing
character at that position stays unchanged; the cursor advances to the
next LR position, possibly causing the LR to scroll up one line.
Specify:

DH = Attribute to be displayed.
5

AH=18

Write Attribute/Character at Cursor (PUTCAM)

( 12h)

Writes a single attribute and character at the current cursor position.
The cursor advances to the next LR position, possibly causing the LR to
scroll up one line.
Specify:

DL ::: Character to be displayed.
OH ::: Attribute to be displayed.

AH=19

Read Character String (GETCS)

(13h)

Reads a string of characters from the current LR, starting at the
specified coordinate. Attempts to read past the end of a line will wrap to
the next line; reading past the bottom of the LR will produce blanks.
The cursor does not move; text within the LR never scrolls.
Specify:

5 -1 04

BL
BH

II

ex

I:

05: 51

a

II

alas Interrupts

LR column.
LR line.
Number of characters to read.
Address of buffer to receive string.

~

Table 5-13. Fast Video Interrupt 5Fh Alpha Functions (Continued)

r

AH-20
(14h)

Read Attribute String (GET AS)

Reads a string of attributes from the current LR, starting at the
specified coordinate. Attempts to read past the end of a line will wrap to
the next line; reading past the bottom of the LR will produce blanks.
The cursor does not move; text within the LR never scrolls.
Specify:

BL
BH

:: LR column.
LR line.
a Number of bytes to read.
ex
DS:DI a Address of buffer to receive string.

AH=21
(15h)

II

Read Character and Attribute Strings (GETCAS)

Reads a string of attributes and characters from the current LR, starting
at the specified coordinate. Attempts to read past the end of a line will
wrap to the next line; reading past the bottom of the LR will produce
blanks. The cursor does not move; text within the LR never scrolls.

~

Specify:

BL
BH

ex

DS:DI
DS:SI
AH=22
(16h)

= LR column.
a
a
::

a

LR line.
Number of characters to read.
Address of buffer to receive attribute string.
Address of buffer to receive character string.

Read Character String at Cursor (GETCSM)

Reads a string of characters from the current LR, starting at the current
cursor position. Attempts to read past the end of a line will wrap to the
next line; reading past the bottom of the LR will produce blanks. The
cursor advances with each character read, possibly scrolling the text in
the LR.
Specify:

~

ex

I:

DS:SI

c

Number of characters to read.
Address of buffer to receive character string.

BIOS Interrupts

5 - 105

5

Table 5-13. Fast Video Interrupt 5Fh Alpha Functions (Continued)
AH-23
(17h)

Read Attribute String at Cursor (GETASM)

Reads a string of attributes from the current LR) starting at the current
cursor position. Attempts to read past the end of a line will wrap to the
next line; reading past the bottom of the LR will produce blanks. The
cursor advances with each attribute read) possibly scrolling the text in
the LR.
Specify:

AH=24
( 18h)

ex

II

OS: 01

II

Number of bytes to read.
Address of buffer to receive attribute string.

Read Character and Attribute Strings at Cursor (GETCASM)

Reads a string of attributes and characters from the current LR) starting
at the current cursor position. Attempts to read past the end of a line
will wrap to the next line; reading past the bottom of the LR will
produce blanks. The cursor advances with each character read, possibly
scrolling the text in the LR.

5

Specify:

ex

- Number of characters to read.
OS: 01 = Address of buffer to receive attribute string.
OS: SI = Address of buffer to receive character string.
AH=25
( 19h)

Write Character String (PUTCS)

Writes a string of characters into the current LR) starting at the
specified coordinate. Attempts to write past the end of a line will wrap
to the next line; writing past the bottom of the LR will be ignored. The
cursor does not move; text within the LR never scrolls.
Specify:
BL

- LR column.
- LR line.
- Number of characters to write.
ex
OS:SI
Address of character string buffer.

BH

R

5 -1 06

BIOS Interrupts

Table 5-13. Fast Video Interrupt 5Fh Alpha Functions (Continued)
AHII26
( 1Ah)

Write Attribute String (PUTAS)

Writes a string of attributes into the current LR, starting at the
specified coordinate. Attempts to write past the end of a line will wrap
to the next line; writing past the bottom of the LR will be ignored. The
cursor does not move; text within the LR never scrolls. Before being
written to the display, the specified attribute byte is ANDed with the
mask in DH, then XORed with a second mask in DL.
Specify:

BL

c

BH

a

LR column.
LR line.
a Number of bytes to write.
ex
;: First attribute mask (AND).
DH
a Second attribute mask (XOR).
DL
DS:DI ;: Address of attribute string buffer.
AH=27
(1 Bh)

Write Character and Attribute Strings (PUTCAS)

5

Writes a string of attributes and characters into the current LR, starting
at the specified coordinate. Attempts to write past the end of a line will
wrap to the next line; writing past the bottom of the LR will be ignored.
The cursor does not move; text within the LR never scrolls. Before
being written to the display, the specified attribute byte is ANDed with
the mask in DH, then XORed with a second mask in DL.
Specify:

BL

= LR column.

LR line.
Number of characters to write.
:: First attribute mask (AND).
DH
:: Second attribute mask (XOR).
DL
DS:DI Address of attribute string buffer.
DS:SI a Address of character string buffer.
BH

ex

II

a

iii

BIOS Interrupts

5 - 107

Table 5-13. Fast Video Interrupt 5Fh Alpha Functions (Continued)

AH·28

Write Character String With One Attribute (PUTCOS)

(1 Ch)

Writes a string of characters with a single attribute into the current LR,
starting at the specified coordinate. Attempts to write past the end of a
line will wrap to the next line; writing past the bottom of the LR will be
ignored. The cursor does not move; text within the LR never scrolls.
Specify:

:: LR column.
LR line.
:: Number of characters to write.
ex
:: Attribute.
DH
DS:SI :: Address of character string buffer.
BL

BH

AH::29

II

Write Character String at Cursor (PUTCSM)

(lDh)

Writes a string of characters into the current LR, starting at the current
cursor position. Attempts to write past the end of a line will wrap to the
next line. The cursor advances with each character written, possibly
scrolling the text in the LR.

5

Specify:

ex

:: Number of characters to write.

DS: SI :: Address of character string buffer.
AH::30
(1 Eh)

Write Attribute String at Cursor (PUT ASM)

Writes a string of attributes into the current LR, starting at the current
cursor position. Attempts to write past the end of a line will wrap to the
next line. The cursor advances with each character written, possibly
scrolling the text in the LR. Before being written to the display, the
specified attribute byte is ANDed with the mask in DH, then XORed
with a second mask in DL.
Specify:

ex

II

Number of bytes to write.

DH

• First attribute mask (AND).

DL

II

Second attribute mask (XOR).

DS:DI :: Address of attribute string buffer.

5 -1 08

BIOS Interrupts-

~

Table 5-13. Fast Video Interrupt 5Fh Alpha Functions (Continued)

AH=31

Write Character and Attribute Strings at Cursor (PUTCASM)

(lFh)

Writes a string of characters and attributes into the current LR, starting
at the current cursor position. Attempts to write past the end of a line
will wrap to the next line. The cursor advances with each character
written, possibly scrolling the text in the LR. Before being written to
the display, the specified attribute byte is ANDed with the mask in DH,
then XORed with a second mask in DL.
Specify:

CX

DH
DL

= Number of characters to write.
= First attribute mask (AND).
= Second attribute mask (XOR).

DS:DI :: Address of attribute string buffer.
DS:SI :: Address of character string buffer.
AH=32
(20h)

Write Character String With One Attribute at Cursor
(PUTCOSM)

5

Writes a string of characters with a single attribute into the current LR,
starting at the current cursor position. Attempts to write past the end of
a line will wrap to the next line. The cursor advances with each
character written, possibly scrolling the text in the LR.
Specify:

CX

:: Number of characters to write.

DH
:: Attribute.
os: SI Address of character string buffer.
I:

AH=33
(21h)

Scroll Window (TERMSCROLL)

Scrolls the characters and attributes in the Window by moving the
window relative to the Arena. (Note that since the Window width equals
the Arena width, left and right Window scrolling is meaningless.)
Specify:

AL :: Scroll direction ("U " p, "d"own, 1I}'left, or "r"ight).
CL = Number of lines/columns to scroll.

BIOS Interrupts

5 - 109

Table 5-13. Fast Video Interrupt 5Fh Alpha Functions (Continued)

AH-34
(22h)

Scroll Logical Rectangle (SCROLLN)

Scrolls characters and attributes within the Logical Rectangle. The
vacated lines or columns are filled with blanks.
Specify:

AH-35
(23h)

AL

a

CL

a

Scroll direction ("UUp, "duown, "l"ert, or "r U ight).
Number of lines/columns to scroll.

Scroll/Fill Logical Rectangle (SCROLLNA)

Scrolls characters and attributes within the Logical Rectangle. The
vacated lines or columns are filled with blanks and the specified
attribute.
Specify:

CL

= Scroll direction (UUUp, "d"own, "l" eft, or "r"ight).
= Number of lines/columns to scroll.

DH

a

AL

5

AH=36
(24h)

Attribute to use for blank fill.

Scroll Logical Rectangle One Line (SCROLL)

Scrolls characters and attributes within the Logical Rectangle one line
or column. The vacated line or column is filled with blanks.
Specify:

AL = Scroll direction ("U"p, "d"own, "I"ert, or "r"ight).

AH c 37
(25h)

Scroll/Fill Logical Rectangle One Line (SCROLLA)

Scrolls characters and attributes within the Logical Rectangle one line
or column. The vacated line or column is filled with blanks and the
specified attribute.
Specify:

AL = Scroll direction ("U"p, "d"own, "l"ert, or "r"ight).
DH = Attribute to use for blank fill.

5 - 11 0

BIOS Interrupts

Table 5-13. Fast Video Interrupt 5Fh Alpha Functions (Continued)

AH-=38
(26h)

Fill Logical Rectangle With Character (FILLC)

Fills the entire current Logical Rectangle with a single character and no
attribute.
Specify:

DL :: Fill character.

AH=39
(27h)

Fill Logical Rectangle With Attribute (FILLA)

Fills the entire current Logical Rectangle with a specified attribute.
Specify:

DH

AH=40
(28h)

II

Fill attribute.

Fill Logical Rectangle With Attribute/Character (FILLCA)

Fills the entire current Logical Rectangle with a single character and a
specified attribute.
Specify:

DL :: Fill character.
DH :: Fill attribute.

AH=41
(29h)

Read Character Font (GETFONT)

Reads a single character font from the LCD font storage area. The
character)s font matrix is returned in eight bytes. Only the leftmost six
bits of each byte are significant.
Specify:

ex

IZ

DL

= Character code of initial character (0-255).

DH

= LCD font region (0- 2).

1.

DS:SI :: Pointer to start of buffer to receive font matrix.

BIOS Interrupts

5 - 11 1

5

Table 5-13. Fast Video Interrupt 5Fh Alpha Functions (Continued)

AH-42
(2Ah)

Write Character Font (PUTFONT)

Writes one or more character fonts into the LCD font storage area.
Each character's matrix is specified in either six or eight bytes (packed
and unpacked formats). In unpacked (eight-byte) format, only the
leftmost six bits of each byte are significant. Packed (six-byte) format
eliminates the two unused bits from each byte, shifting subsequent bytes
into the vacated bit positions. You can specify either a user font table
or a system ROM font table.
Specify:

AL

< 0 Use packed user table (6-byte format).

0
1
• 2
3
• 4

II

II

II

5

:I

5

6
7
8
= 9
=10

II
II

II

ex
OL

OH
OS: SI

5 - 112

:I
II
II
II

BIOS Interrupts

Use unpacked user table (8-byte format).
Use HP Bold characters 0-127 (ROM font table 1).
Use HP Bold characters 128-255 (ROM font table 2).
Use HP Thin characters 0-127 (ROM font table 3).
Use HP Thin characters 128-255 (ROM font table 4).
Use Alt Bold characters 0-127 (ROM font table 5).
Use Alt Bold characters 128-255 (ROM font table 6).
Use Alt Thin characters 0-127 (ROM font table 7).
Use Alt Thin characters 128-255 (ROM font table 8).
Use Line Draw characters 0-127 (ROM font table 9).
Use Math Draw characters 0-127 (ROM font table 10).
Number of characters to write.
Initial character code within LCD font region (0-255).
LCD font region (0-2).
Pointer to user font table (if AL<=O).

~

"

5.39.2 Fast Graphics
Fast Graphics functions work in essentially the same space as Video Interrupt lOh
graphics, except that the origin (0,0) is at the lower left of a 480x200 display area
rather than at the upper left as it is in the Int 10h service. The X axis increases to the
right; the Y axis increases upward.
Display RAM resides at segment 8000h. In graphics mode, the byte at the upper left
corner of the display is at 8000:0000h, with byte addresses increasing as you move to
the right; the rightmost byte on the top line is therefore at 8000:004Bh. The next
dotrow begins at 8000:0050h. The dotrow pitch is 64 bytes/line, but only the first 60
bytes are visible.
The Fast Graphics functions support two special pointing devices: a graphics "pen", and
a graphics "cursor". The two pointers are not the same. The graphics cursor is similar to
the alpha cursor. except that it appears on the display as a small arrow pointing up and
to the left. When the keyboard is in normal mode, the graphics cursor can be manually
positioned using the G), CD, (l). and (E) keys. The graphics cursor can be
programmatically turned on and off, moved to new coordinates, and have its current
coordinates read. Additionally, any text that is sent to the graphics display will appear
at the graphics cursor.
The graphics pen is never visible. It serves only as a pointer to the final endpoint of the
last line drawn using the Write Pen function (AH=52) or -a line-drawing escape
sequence. To draw a line using the graphics pen, you specify only the target
coordinates; the line is drawn from the current pen position to the specified coordinate,
and the pen is then moved to the new endpoint in preparation to draw another segment.
Table 5-14 lists the Fast Graphics functions for Interrupt 5Fh. Specify the desired
function code in AH, with additional parameters in registers as required. Nothing is
destroyed unless otherwise indicated.

BIOS Interrupts

J
5- 113

5

Table 5-14. Fast Video Interrupt 5Fh Graphics Functions
Function
AH·43

Description
Reset Display (GRESET)

(2Bh)
Selects and initialize the specified display mode.
Specify:

ALcO Initialize Alpha mode.

#0 Initialize Graphics mode.
AH c 44

Read Display Specs (GSPECS)

(2Ch)
Returns graphics display parameters.
Returns In Alpha Mode:

AL=O Alpha mode.

ax It Display RAM offset of top-left corner of screen.
DH - Lines on screen (23 or 25).
DL - Columns on screen (80).

5

Returns in Graphics Mode:

ALI:: 1 Graphics mode.
ax = Display width (480).

ox :: Display height (200).

AH c 45

Graphics Erase (GERASE)

(2Dh)
Either sets or clears the graphics display, erasing or filling any image in
that area. Note that the functions for clearing and setting the entire
display will execute quickly; the coordinate-bound erase function will
be considerabl¥ slower since it works on a pixel-by-pixel basis.
Specify:

AL <0 Clear area specified by BX, DX, 51, and DJ.
-0 Clear entire display.

>0 Set entire display.
It Area top left corner X coordinate (0-479) for AL0: The specified number of characters are read
into the string (following the end of this
escape sequence, after softkey label characters,
if any).
Softkey Definition Label Length
ESC & f value 0
Specifies the number of characters in the label for

the key being defined in this escape sequence.
-1: The old label erased.
0: The old label is left unchanged.
>0: The specified number of characters are read
into the label (following the end of this escape
sequence).
Softkey Labels Off
ESC

&j @

If softkey labels are currently on, turn then off. In
graphics mode, nothing happens.

6

Softkey Labels On
ESC

&j B

If softkey labels are currently off, turn then on. In
graphics mode, nothing happens.

Clear /Set Alt Mode Keyboard
ESC & k 0 \
Clear Alt Mode Keyboard (set HP Mode).
ESC & k 1 \

Clear/Set Auto LF
ESC & k 0 A
ESC & k 1 A
Clear /Set Bell Enable
ESC & k 0 0
ESC

6 - 34

& kID

Built -In Device Drivers

Set AU Mode Keyboard (clear HP Mode).
Turn off auto line feed.
Turn on auto line feed.
Disable the AG bell.
Enable the AG bell.

~

,

Table 6-4. HP Alpha Escape Sequences (Continued)
Clear /Set Keyboard Modes
ESC & k {O ••• 3} 0
Selects keyboard modes.

0: Turn off numeric pad, keycode, and Modifier
modes.
1: Turn on numeric keypad mode.
2: Turn on keycode mode.
3: Turn on Modifier mode.
Clear/Set Caps Lock
ESC

& k {O/l} P

Permits the caps lock key to be programmatically
turned on and off.
0: Turn off caps lock.
1: Turn on caps lock.

Clear /Set Transmit Functions (Strap A)
ESC & s {O/l} A
Enables or disables the transmission of key codes for

local function keys.
0: Turn off Transmit Functions.
1: Turn on Transmit Functions.
Clear /Set Inhibit End-of-Line Wrap (strap C)
ESC & s {O/1} C
Sets end -of-line wrap.

0: Enable end-of -line wrap. Printing a character
in column 80 causes an implicit carriage return
and line feed to occur.
1: Disable end-of-line wrap. The cursor will
"stick" in column 80. Subsequent characters
will overwrite the character in that column.

~

.
~<.

"

Built -In Device Drivers

6 - 35

6

HP Graphics Escape Sequences. The CONsole driver uses the HP escape
sequences listed in table 6- 5 to control the graphics display. In sequences requiring
numeric parameters, each parameter is optional--if a parameter is omitted, it defaults
to zero.

U~I

The term "HP Graphics Escape Sequences" refers to those sequences that
begin with the two characters "ESC ~I; the name does not imply that all
such sequences necessarily perform a IIgraphicll function.

"

Note

Table 6-5. HP Graphics Escape Sequences
Description

Escape Sequence

Clear Graphics Memory
ESC
d A
Clear all pixels in the display if in graphics mode.

*

Set Graphics Memory
ESC
d B
Set all pixels in the display if in graphics mode.

*

Graphics On
ESC
d C

*

6
Graphics Off
ESC
d 0

*

Alpha On
ESC
d E

*

Alpha Off
ESC
d F

*

6-36

Switch to graphics mode (if not already there) and turn on
the graphics display, making visible existing graphics screen
data.
Turn off the graphics display. Screen data is retained. This
sequence is ignored in alpha mode.
Switch to alpha mode (if not already there) and turn on the
alpha display, making visible existing alpha screen data.
Turn off the alpha display. Screen data is retained. This
sequence is ignored in graphics mode.

Built-In Device Drivers

Table 6-5. HP Graphics Escape Sequences (Continued)
Alpha Cursor Block/Graphics Cursor On
ESC
d K
In alpha mode, set the primary cursor to IIblockll and turn it

*

on. In graphics mode, turn on the graphics cursor.

Alpha Cursor Underline/Graphics Cursor Off
ESC
d L
In alpha mode, set the primary cursor to lI underline" and

*

turn it on. In graphics mode, turn off the graphics cursor.
Position Graphics Cursor (Absolute)
ESC
d x y 0
Move the graphics cursor to the specified absolute

*

coordinates (O< B>

Any of the 256 dot -row blocks in display RAM can be put to the top of the display
screen by writing the appropriate (l6-bit) value to register 2/3. To distinguish 256
dot-rows, the row specifier must be 8 bits (OR7-0RO). Because each dot-row block of
RAM is 64 bytes wide, the value written to register 2/3 must be (GR 7-0RO)(64), as
~Shown:

Register 3

b7

I

x

bO

•

Register 2

• II

b7

bO

x GR7 GR6 GR5 GR4 GR3 GR211GRI GRO

0

0

0

0

0

0

I
7

In graphics mode, the two most-significant bits of register 2/3 are don't-cares. It is the
responsibility of the graphics driver to ensure that bits 0 thru 5 of register 2/3 are "0".
Non-zero values in these bits can put the display controller into states that require a
hard reset of the chip in order to recover.
~

\

Each dot in the display RAM can be addressed by an 8-bit row specifier (OR7-0RO)
and a 9-bit column specifier (OC8-GCO). (The left edge of the display screen is
dot-column 0 and the right edge of the display screen is dot-column 479 (IDFh).) The
byte to be accessed is addressed (relative to display RAM space) by:

low -level Hardware Interface

7 - 27

a15

I

x

a8
x

a7

aO

GR7 GR6 GR5 GR4 GR3 GR21lGRl GRO Gee Ge7 GC6 GC5 GC4 GC31

The bit within this byte is specified by subtracting the binary values:

( 1

1 ) - (GC2 GCl GCO)

The display RAM dot-row block pointed to by the top-of -page register (register 2/3)
will appear at the top of the display screen. Display RAM dot-row blocks of increasing
address will be displayed successively down the screen. The display RAM is treated as a
continuous cylinder, wrapping from dot-row block 255 (FFh) to dot-row block 0 as
neCe".3ary. Figure 7-2 shows the relative addresses of all bytes in the graphics display.
Figure 7-2. Display RAM Mapping - Graphics Mode

Not Displayed

Columns
8-15

464- 472471 479

Row 0

0000 0001

003A 003B

003C 0030 003E 003F

Row 1

0040 0041

007A 007B

007C 0070 007E 007F

Row 2

0080 0081

OOBA OOBB

aOBC OOBD OOBE OOBF

Row 254

3F80 3F81

3FBA 3FBB

3FBC 3FBD 3FBE 3FBF

Row 255

3FCO 3FCl

3FFA 3FFB

3FFC 3FFD 3FFE 3FFF

0-7

7

.4---

7 - 28

60 Bytes - - - - - +• •4-- 4 Bytes - -...

Low -level Hardware Interface

7.5.2 Display RAM Mapping - Alpha Mode
~

"

In alpha mode~ the dot pattern displayed on the screen is continuously created lion the
fly" by the· controller's interpretation of display RAM. The display RAM is divided into
text storage and font storage areas.
In the text storage area, each character is represented by a 16-bit word. The low byte of
this word contains an 8-bit character code (C7leO) specifying the character ("A", "7",
"I/", ...). The high byte contains attribute bits that define how the character will be
displayed.
...- - - - High Byte - - - - -...'••- - - - - Low Byte - - - - -...

b7

IXI

bO

b7

bO

XO FlO F2 0 UL IV BL IIC7 C6 C5 C4 C3 C2 Cl CO I
Character Word

Bit 3 of the high byte of the character word must be "0" to prevent long-term
degradation of the LCD.
The font storage area contains the bit patterns for forming characters on the display
screen. The mapping for text and font storage areas is illustrated in figure 7-3.
Each display line in alpha mode will be 80 characters wide. The character codes and
attribute bits will occupy the 160 least significant bytes in each 256-byte block of
display RAM. The least-significant word in each 256-byte block will define the
left-most character on the display line.
With 16K bytes of display RAM and 256 bytes per alpha line, 64 alpha lines can be
stored in display RAM. This will constitute 2.5 pages for the 25-line display. The BIOS
normally reserves the first 2 lines for softkey labels.

~ Any of the 64 alpha lines can be put at the top of the display screen by writing the
.

appropriate (16 bit) value to register 2/3~ the top-of-page register. A six-bit row
specifier is required for 64 lines (AR5\ARO). Because 256 bytes separate the start of
successive lines, the value written to register 2 must be (AR5\ARO)(256~
Low -Level Hardware Interface

7 - 29

7

••- - - - Register 3

bO

b7

I°

----~.~.t__---

0 AR5 AR4 AR3 AR2 ARI AROII

Register 2 - - - -...

bO

b7

°

0

0

0

0

0

0

°I

It is the responsibility of the alpha driver to see that bits 14 and 15 are "0" and that bits
a thru 7 are "0". Non -zero values in these bits will lead to improper operation of the
controller.
The address for a character word is derived from a six-bit alpha-row pointer
(AR5\ARO) and a seven -bit character column pointer (AC6\ACO) by:

a15

I

x

Column

as
x

a7

aO

AR5 AR4 AR3 AR2 ARI AROIIAC6 ACS AC4 AC3 AC2 ACI ACO

0

I

a will be displayed at the left edge of the screen.

The display RAM is treated as a continuous cylinder, wrapping from the bottom of
display RAM to the top of display RAM. (Refer to "Softkey Menu Display" below for a
complete description of the top of display RAM.)

7

A character font block on the display screen is 6 dots wide and 8 dots high. The block is
meant to contain a 5x7 dot character font, with the bottom dot row for descenders and
underlines. No character separation is provided in hardware. Character separation must
be provided by leaving one edge of the font block blank--usually, the left edge is used
as the character separator. Hardware is indifferent to the choice made.

7 - 30

Low -Level Hardware Interface

~

~

(

Each character font will be stored in eight adjacent bytes of display RAM. The two
least-significant bits of each byte are don't cares. Bit 7 of each byte maps to the left
edge of the font block. The least significant byte will map to the top of the font block.
A 111 11 will turn its corresponding dot on to black. A "0" will turn its corresponding dot
off to white. The font for a lip" would be stored as:
0 • • • •0

O.DCO.
C.DOO.
O• • • • c

C.COCD
O.CDDD
O.DDDD
DDCODD

•
•
•
•
•
•
•
•

011110xx
010001xx
010001xx
011110xx
010000xx
010000xx
010000xx
OOOOOOxx

78h
44h
44h
78h
40h
a 40h
= 40h
a OOh

II

=
=
=
=

•
•
•
•
•
•
•
•

Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte

0
1
2

3

4
5
6
7

Character/attribute storage uses only 160 bytes of each 256-byte block of display
RAM. This leaves RAM space for three blocks of font definitions, 256 characters (2048
bytes) in each block. A character code can be interpreted through any of the three font
blocks, depending on the attribute bits FlO and F2.
Font block 0 will be selected by attribute bits F 10=0 and F2cO. This font block will be
stored as eight fonts (64 bytes) in each 2S6-byte block of display RAM. The entire font
block will be contained in the 32 least-significant 256-byte blocks. The eight fonts in
each 256-byte block will occupy addresses xxAOh thru xxDFh. The top font byte for
character code 0 will occupy address OOAOh. The bottom font byte for character code
FFh will occupy display RAM address 1FDFh. (See figure 7- 3.) Given an eight-bit
character code (C7\CO), a three-bit font dot-row pointer (DR2\DRO), and the attribute
bits F 10=0 and F2=0, the appropriate font byte is located at the address:
a15

I
~

\..

K

as

K

a7

7

aO

FlO C7 C6 C5 C4 call I C2 C2* C!

CO OR2 DR! ORol

Font block 1 is selected by F 10= I and F2=O. This block is mapped to display RAM in
the same manner as font block 0 with the exception that it occupies space in the 32
most significant 256-byte blocks of RAM. (See figure 7- 3.) The mapping from
character code, dot-row pointer and attribute bits is of the same form as for font block
O. The top font row for character code 0 is stored at display RAM address 20AOh. The
bottom font-row for character code FFh is stored at display RAM address 3FDFh.

Low -Level Hardware Interface

7 - 31

Font block 2 is specified by F2= 1. (F lOis a don't care when F2= 1.) The third font block
is stored as four fonts (32 bytes) in each 256-byte block of display RAM. This font
block occupies addresses xxEOh thru xxFFh in all 64 display RAM blocks. The top font
~.,.
row for character code 0 is at display RAM address OOEOh. Thebottom font row of
character code FFh occupies address 3FFFh. (See figure 7-3.) The mapping from
,
character code and dot row pointer to font byte address for F2= 1 is:

a'S

Ix

as
x

C7

C6

C5

C4

C3

a7

aO

C211.._1

C_l_C_0_O_R_2_0_R_l_0_R....

ol

Figure 7-3. Display RAM Mapping - Alpha Mode

Alpha Character

o

1

Fonts 0/1

Font 2

79

Row 0

0000

0002

Row 1

0100

0102

...
.. .

009E

OOAO

. ..

OOOF

OOEO

OOFF

OlEO

. ..
. ..

019E

01AO

...

010F

lFFF

01FF

Font 0

7

Row 31

lFOO

lF02

...

lF9E

lFAO

. ..

lFDF

lFEO

. ..

Row 32

2000

2002

.. .

209E

20AO

...

20DF

20EO

. .. 20FF

.

Font 1
Row 62

3EOO

3E02

Row 63

3FOO

3F02

+ 4 - - - SO

7 - 32

.. .
...

.

3E9E

3EAO

.. .

3EDF

3EEO

3F9E

3FAO

. ..

3FOF

3FEO

Words - -...

Low -Level Hardware Interface

+ - 64 Bytes -+ + -

32

...
. ..

3EFF
3FFF

Bytes -+

7.5.3 Alpha Attribute Bits
~.

"

Three bits in each character word affect the manner in which that character will be
displayed. Any given character on the display can be independently displayed with any
combination of inverse video) underlining, and blinking.
Bit 8 of each character word controls blinking, bit 9 controls inverse video and bit 10
controls underline. For each of the three bits, a "1" is the active state and a "0" is the
inactive state. All eight combinations of the attribute bits are both valid and unique.
When blinking alone is asserted, the affected character will be normal for 2/3 of the
blink period and will be turned off (all dots in the 6x8 font block are white) for 1/3 of
the blink period. The blink period will be about 1 second, depending on the input clock
to the chip. (The blink period will be exactly (4,608)OOO)(T» where T is the period of
the input clock.) When inverse video alone is asserted, all dots in the 6x8 font block are
reversed in sense. A normally black character on a white background will appear as a
white character on a black background.
An inverse-video blinking character will be inverse video for the "normal" 2/3 of the
cycle and will blink to all dots black in the "blanking" 1/ 3 of the cycle.

~. When underline alone is asserted, the bottom dot-row in the 6x 8 font block is displayed
as all on (black). This will overwrite any descenders in the row.

The underline will be affected in the same way as the rest of the character when
blinking is also asserted. It will turn off during the blanking portion of the cycle.
Inverse video will force the underline to appear as a white bar on a black field.
7

7.5.4 Alpha Cursors
Cursor display is handled by hardware in the IC. The display RAM location of the
character to be cursored is specified by registers 4 and 5. Register 4 contains the column
of the cursored character) and so must be a value in the range 0 thru 79 decimal (Oh
thru 4Fh). Values in the range 80 thru 255 (SOh thru FFh) will turn off the cursor.
~ Register 5 contains the display RAM row of the character to be cursored. The value in
,.
register 5 must be in the range 0 thru 63 (Oh thru 3Fh) or the cursor will not be
displayed.
The column in register 4 always corresponds to the cursor column on the display.
(Column 0 is the left edge of the display.) However, the cursor row on the display will
Low -Level Hardware Interface

7 - 33

not match the value in register 5 unless the top-of -page is at display RAM address O.
Pointing the cursor to an alpha row that is not currently on the screen will result in no
cursor being displayed.
Either of two cursor displays can be selected by setting or clearing bit 2 in register O.
Clearing the bit causes the underline cursor to be displayed. Setting the bit causes the
box cursor to be displayed.
The underline cursor affects only the bottom dot-row in the 6x8 font block. At the
cursor position) the bottom dot row will alternate between normal and inverse video
with a period of about 0.7 seconds and a 50% duty cycle. In the "normal" period of the
cycle) the character appears according to the three attribute bits only. During the active
period of the cycle) the inversion is asserted on top of the attribute bit effects. For
example) inverse video will be re-inverted and a "blanked character during blink will
have an underline asserted. The block cursor affects the entire 6x8 font block. At the
cursor position) the font block will alternate between inverse-video and inverse-video
blank. The period is about 0.7 seconds and the duty cycle is 50%. The blinking attribute
is entirely overridden by the block cursor. The inversion impressed by the block cursor
is asserted after the inverse-video attribute bit) so a double inversion to "normal" is
possible.
ll

7.5.5 Registers
The lLM3 contains five register bytes. All five bytes are read/write accessible. The
registers are all cleared to 11011 when the machine reboots. They are unaffected by sleep
mode. Any register can be accessed with either a byte or word operation from the
8086.
7

Registers 0 through 5 are located at I/O addresses 0080h through 0085h) as listed in
table 7-3. Within the ILM3) the registers are accessed via addresses 0 thru 5 when
CSIO* is asserted (only the three least significant address bits are internally decoded).
The byte at address 111 11 is unused. Writing to this location has no effect. Reading this
location will, in general) return meaningless data.

,

~

7 - 34

Low -Level Hardware Interface

Table 7-3. Display Controller Registers
1/0 Address

0080h
008lh
0082h
0083h
0084h
008Sh

Function

Control (register 0)
(Reserved)
Top of page - low byte (register 2)
Top of page - high byte (register 3)
Cursor column position (register 4)
Cursor row position (register 5)

Control Regi$ter (0080h).

The bits in register 0 have the following effects:

Bit 0 cleared to "0" will blank the display. All four LCD data streams are held low, but
the 4 LCD clocks are unaffected. Furthermore, no RAM accesses for LCD refresh will
occur. This will allow faster access of display RAM by the CPU. Bit 0 set to 111 11 will
allow data to flow to the LCD. The chip powers on in blanked mode at boot time.
Bit 1 cleared to "Oil will cause the data in display RAM to be interpreted in alpha mode.
Bit 1 set to "111 will cause the display RAM data to be interpreted in graphics mode. The
chip powers on in alpha mode at boot time.
Bit 2 selects the type of cursor to be displayed in alpha mode (this bit is a don't care in
graphics mode). Bit 2 cleared to a 11011 causes the underline cursor to be displayed. Bit 2
set to a 111 11 causes the box cursor to be displayed. The power on state is underline cursor
mode at boot time.
Bits 3 and 4 specify the number of lines of alpha memory to be locked to the bottom of
the display. Zero to three lines may be specified, with bit 3 the least significant bit of
the count. These two bits are don't cares in graphics mode. The "no memory lockll
option is the power on state at boot time.
Bit 5 set to a Ill" causes the LCD M-clock output to become an input clock to the
internal counter controlling the cursor and attribute blink rates. This feature is
implemented for the benefit of automatic testing only. The assertion of this bit in
normal operation can result in permanent damage to the LCD. This bit is cleared to a
110" at power on and at boot time.

Low -Level Hardware Interface

7 - 35

7

Bits 6 and 7 are don't cares. They are both accessible via read and write and can be used
by the system at will.
Top of Page Registers (0082h/0083h). Registers 2 and 3 are normally accessed
at I/O address 0082h by a word access. They contain the address of the line in display
RAM to be displayed at the top-of-page. In graphics mode, the valid line numbers
range from 0 through 255 (FFh). Because each line uses 64 bytes of display RAM, the
address in these registers must be (line #)(64). The six least significant bits of register 2
must be "0".

J

In alpha mode, the valid line numbers range from 0 through 63 (3Fh)--each line needs
256 bytes of display RAM. The value in register 2/3 must be (line #)(256). All eight bits
in register 2 must be "0" in alpha mode. Non -zero values in these bits can get the chip
into a state recoverable only by rebooting.
Bits 6 and 7 of register 3 are don't cares in graphics mode. In alpha mode, on the other
hand, a "1" in either of these two bits will suppress the cursor.
These registers specify the location
of the cursor on the display. Register 4 specifies the display screen column in which the
cursor appears. Valid values for register 4 range from a through 79 (4Fh). Any value
larger than 79 will effectively turn off the cursor. Note that bit 7 of register 4 can be
used as a cursor disable without affecting the column number in the other 7 bits.
Cursor Position Registers (0084h/0085h).

7

The value in register 5 specifies the display RAM alpha row in which the cursor
appears. Valid values in register 5 range from a thru 63 (3Fh). Any value above 63 will
suppress the cursor. Note that the top-of -page pointer must be subtracted from the
register 5 alpha row pointer (modulo 64) to find the physical display row the cursor will
appear on. (Physical display row 0 is the top of the display.) If register 5 points to an
otherwise valid alpha row that is not currently on the display screen, no cursor will
appear. No other adverse effects will occur.
In graphics mode, both registers 4 and 5 are don't cares and may be used by the system
at will.

7 - 36

Low -Level Hardware Interface

~

)

7.5.6 Softkey Menu Display
~

"

The system can lock one, two, or three alpha rows at the bottom of the display screen to
serve as fixed menu labels. The alpha lines locked will be the lines at address OOOOh, or
OOOOh and 01 OOh, or OOOOh and 01 DOh and 0200h. The row at address OOODh will be
the top of the locked display. The top-of-page pointer (registers 2/3) will have no
effect on the screen position of the locked rows.
The number of alpha rows locked at the bottom of the screen is determined by the
2-bit binary value in bits 3 and 4 of register 0 (bit 3 being least significant).
The normal end-of-display-RAM wrapping will not occur with softkey menu lock in
effect. Display RAM row 3FDOh will be followed by alpha row 01 OOh, 0200h or 0300h,
as appropriate, if a wrap is necessary. However, it is the responsibility of the software
driver to jump the top-of-page pointer over the softkey display rows. Pointing the
top-of-page register into the softkey memory area with softkey lock selected will cause
two copies of the locked RAM space to be displayed.

7

Low -Level Hardware Interface

7 - 37

r

8

Memory Management

8.1 Introduction
Memory consists of a variable amount of both ROM and RAM. The ROM portion
consists of ROM -resident code (including the boot code) diagnostics, and parts of the
BIOS), and a ROM disc. The ROM disc is a logical entity that consists of data extracted
from both fixed and plug-in ROMs. The RAM portion consists of up to 512K bytes of
contiguous memory as well as a noncontiguous 128K space in which additional RAM
can be enabled (l28K bytes at a time). See figure 8-1. The RAM contains a portion
allocated for use by the operating system (system RAM) or main memory) and a portion
that is allocated to an Edisc (sometimes called RAM disc). Only memory in the first
5 12K contiguous block (called low RAM) can be allocated to the operating system. The
Edisc can use the low RAM as well as the 128K blocks of noncontiguous memory (called
high RAM). A separate block of RAM exists for use by the display hardware. This
display memory (discussed under "Display Controllerll in chapter 7) is not manipulated
by the memory management functions.
In addition to being allocated to system RAM and Edisc, part of RAM is allocated to
Edisc checksums. PAM includes the checksum space as part of the Edisc when displaying
the size of the Edisc.

Memory Management

8 -1

Figure 8-1. RAM Organization

Built-In

j

~

00000

System RAM

RAM

20000

t

1 Movable

Bound
Low RAM

40000

Plug-In
RAM
60000

Edisc

,~

80000

AOOOO

COOOO

D

r----'
I
L ____

r----'

I ••• I
.I

I

1._--_.1

High RAM (Swapped)
The memory management code handles the following tasks:
• Identifying if the data contained in the Edisc is valid (via checksum).
8

• Identifying the amount of total RAM in the system and the portion that is dedicated
to system memory.,~
• Formatting the Edisc.

8- 2

Memory Management

• Performing I/O on the Edisc (including enabling and disabling the RAM
appropriately as required by the access).
Identifying plug-in ROMs and constructing the necessary internal tables to configure
the logical ROM disc.
• Performing I/O on the ROM disc.
• Enabling and disabling plug-in ROMs.
• Passing control to (and returning control from) plug-in ROMs.
• Identifying the amount of contiguous unused space on the Edisc.
A system memory driver handles all of the disc I/O functions. The remaining functions
are handled by system service routines. Formatting the Edisc can be done through either
a system service routine (refer to "BIOS Interrupts" in chapter 5) or through an I/O
control write to the driver.

~

8.2 Edisc
The Edisc occupies all the RAM that is not dedicated to use by the operating system.
(See figure 8-1.) This includes RAM beyond the first 512K bytes (if any) as well as any
of the first 512 Kbytes beyond the end of the operating system. (The operating system
consumes a contiguous block of memory beginning at address 0.) The bound between the
operating system and the Edisc is controlled by the Personal Applications Manager
(PAM). The bound may be set at any 4K boundary in the first S12K bytes of RAM so
long as the minimum sizes for operating system memory and Edisc memory are not
violated. The minimum size for the operating system is 80K bytes. The minimum size
of the Edisc is between 3K and 8.SK bytes) depending upon the total amount of RAM
installed. (The Edisc must be large enough to contain the boot sector) the file allocation
table (FAT») and the root directory.)

Although the Edisc is logically a single contiguous block of memory) the Edisc is
( ' " physically composed of two distinct types of RAM:

8

• RAM that is addressed in the first 512K of the address space above the operating
system memory. This memory is contiguous from the S12K point down to the end of
the operating system memory.

Memory Management

8- 3

• RAM that is on plug-in RAM cards, which are enabled one block (l28K bytes) at a
time at a fixed location in the high half of the address space. (None of this second
type of RAM can be used as operating system memory since it is not contiguous with
the lower memory space.)
As plug-in memory is added, it is used to fill out the lower SI2K bytes. If SI2K bytes
of RAM are already in the system) additional plug-in RAM is placed in the pool of
swappable memory blocks.
The sectors of the Edisc are assigned to physical memory beginning with the swappable
plug-in blocks (if any). The end of the Edisc is that portion resident in the low SI2K
bytes of memory space (if any). Sectors within this space begin at the high end and work
towards lower addresses; thus the last sector on the Edisc (assuming it is in the low
Sl2K-byte space) is adjacent to the top end of operating system memory.
Memory blocks that are dedicated solely to the Edisc are disabled when the memory
management code exits as a safety precaution to minimize the risk of a program
inadvertantly overwriting the Edisc memory. Since system memory must always be
enabled) a block of memory that contains both the last sector of Edisc and the high end
of system memory will always be left enabled and be vulnerable to program errors.
This danger can be avoided by setting the system memory size to a multiple of 12 8K
bytes.

~.

)

When the memory management code is first entered) it enables all of the low SI2K
bytes of RAM and the first block of the swappable RAM. Other blocks of RAM are
swapped into the address space as required. Since the first swappable block will contain
the boot sector, the file allocation table, the root directory, and any space reserved for
checksums, it is likely to be the most frequently accessed and is therefore enabled by
default when the memory management code is accessed.

8

Checksums are automatically provided on Edisc access. Checksums are generated and
saved whenever a sector is written and checked whenever a checksum is read. The
checksum for a sector is a single byte that is generated by summing all of the bytes in
the sector with a wrap-around carry (the sum is incremented whenever a carry occurs
in summing the bytes). The checksum is the complement of this value (it is the value
that when added to the sum produces a value of OFFh).
The checksums are stored in the boot sector and (if more space is required) in memory)
reserved above the boot sector (which is otherwise at the high end of its memory bank).
The boot sector can store 384 checksums (enough for a I 92K-byte Edisc)--additional
checksum space is allocated in blocks of SI 2 bytes with enough total space allocated to
cover the maximum Edisc size for the amount of memory present. This is independent
8-4

Memory Management

of the amount that is actually allocated for Edisc at the time. Note that the checksum
for sector Oh (the boot sector) is computed on only the first 128 bytes of the sector (it
excludes the checksum data).
As for the checksums) the amount of space required by the file allocation table (FAT) is
dependent on the total amount of memory. With one sector per cluster) each sector of
FAT has enough entries for a little over 170K bytes of Edisc. Enough sectors of FAT
are allocated to cover the maximum sized Edisc that can exist given the total amount of
memory.
The root directory of the Edisc is defined to have 64 allowable entries and occupies four
sectors immediately following the FAT sectors. This information) together with the rest
of the Edisc configuration data, is contained in the BIOS parameter block (BPB) in the
boot sector (sector Oh).
Table 8-1 describes the boot sector (sector Oh) of the Edisc.
Table 8-1. Edisc Sector Oh

~

Oh-2h

Dummy Jump to Boot Code

3h-Ah

OEM Name and Version

Bh)Ch

Bytes per Sector

(OEBh) 01Ch) 090h)
(45711)
(512)

Sectors per Cluster

(1)

Eh)Fh

Reserved Sectors

(1)

10h

Number of FATs

(1)

Dh

~\

Description (Value)

Byte
Number

(64)

Ilh)12h

Number of Root Directories

13h)14h

Total Number of Sectors
Depends upon the Edisc size that is set by PAM

iSh

8

(OFAh)

Media Descriptor

Memory Management

8- 5

Table 8-1. Edisc Sector Oh (Continued)

16h,17h

Number of Sectors per FAT
Depends upon total memory size, and is large enough to cover the
maximum Edisc size (l to 12).

I Sh-7Fh

Reserved
Ignored by the operating system. Can contain miscellaneous system
information.

SDh -1 FFh

Checksums
Allocated one byte for each RAM disc sector starting at offset 80h
and proceeding forward) possibly overflowing into additional
checksum area above the boot sector.

Bytes DBh thru 17h of this sector contain the BPB for the disc. The Edisc has 51 2 bytes
per sector, 1 sector per cluster) 1 reserved sector (sector Oh» I file allocation table (FAT»
64 allowable entries in the root directory (two sectors worth» and a media descriptor of
DFAh.
The number of sectors per FAT depends on total memory size and is a value from 1 to
12. The total number of sectors in the Edisc is determined from a variable set by PAM.
The default is the value that results from setting the system size to its minimum value
(maximum Edisc).
The last 384 bytes of sector Oh are dedicated to checksum information for the RAM.
Each sector of the Edisc has a checksum contained in a byte within this area (or in the
area immediately above the sector) if needed). The mapping of checksums into this
region is such that the checksum for sector 0 is at offset SOh in sector Dh; the checksum
for sector 1 is at offset 81 h; and so forth. After the checksum for sector 383 (which is
offset IFFh in sector Dh» the checksums overflow into the. area above sector Dh) which
is allocated as required in blocks of 512 bytes for this purpose.
8

Since cluster numbers are 12 bit quantities and each cluster of the Edisc occupies 512
bytes) there is a maximum of 4K clusters (2 megabytes) that can belong to the Edisc
(independent of the amount of physical memory in the machine).

8- 6

Memory Management

8.3 ROM Disc
The ROM disc appears to the operating system as the second unit (8:) of the block
device defined by the memory driver. It appears to have a reserved boot sector at sector
Oh, 12 sectors allocated to a FAT, a root directory having a maximum of 16 entries (one
sector), followed by file data. All files in the root directory are subdirectories. The data
for these subdirectories appears to immediately follow the root directory. Following the
data for the subdirectory files is the data for the files in the first subdirectory. This will
be a system subdirectory containing system files. Last is file data for any remaining
subdirectories. This structure is shown in figure 8- 2.

8

Memory Management

8- 7

Figure 8-2. ROM Disc

Sector

Oh

Contents
Boot Sector

lh
FAT

Ch
Dh

Root Directory

Eh
Subdirectory
Files
2Dh
2Eh
System
Subdirectory
File Data

lE9h
lEAh
Plug-In
Subdirectory
File Data

lFE9h

8

Actually, the data that appears in the boot sector, the FAT, the root directory, and some
of the data in the root's subdirectory files is not actually present in a ROM, but rather
~.,.:.
is computed on the fly from data in the system ROM, plug-in ROMs, and in previously"
initialized tables in system RAM. The ROM disc appears permanently
write-protected--all attempts to write to the ROM disc will result in a write-protect
error.

8- 8

Memory Management

The first 24 bytes of sector Dh are formatted as a boot sector as specified by the
operating system. This includes a 3-byte jump instruction, followed by an 8-byte field
for OEM name and version, followed by a 13-byte BIOS parameter block. The BIOS
parameter block (BPB) contains information defining the format of the logical ROM
disc. This structure is described in table 8- 2.
Table 8-2. ROM Disc Sector Oh
Description (Value)

Byte
Number

Oh-2h

Dummy Jump to Boot Code

3h-Ah

OEM Name and Version

Bh,Ch

Bytes per Sector

(45711)
(512)

Sectors per Cluster

(2)

Eh,Fh

Reserved Sectors

(1)

10h

Number of FATs

(1)

Dh

~

(OEBh, OICh, 090h)

(16)

Ilh,12h

Number of Root Directories

13h,14h

Total Number of Sectors
Clusters are numbered from 2h to OFEFh beginning at sector OEh.
With two sectors per cluster, this gives 81 70 sectors total.

ISh
16h,17h
18h - 1FFh

(OFAh)

Media Descriptor

(12)

Number of Sectors per FAT
Undefined
Ignored by the operating system. All bytes are zeros.

8

The file allocation table (FAT) in sectors 1h through Ch defines the apparent structure
of the ROM disc. Each of these sectors is computed on the fly when requested. The
entire range of valid cluster numbers from 2h to FEFh is mapped into the ROM disc's
logical address space. The first two entries define the media descriptor. Starting with
Memory Management

8-9

cluster 2 (the first data cluster) the FAT allocates 16 clusters for subdirectory files of
the root directory. Following this) 222 clusters are allocated for the files in the system
subdirectory.
Following the system subdirectory files are 15 blocks of 256 clusters each allocated for
plug-in ROMs. Every plug-in ROM is mapped into one of these 15 blocks of 256
clusters. This effectively puts an upper limit of 15 ROM applications that can be
plugged in at once (independent of whether they are full-bank or half-bank). The
number of slots available in the ROM drawers may impose additional limits. Figure 8-3
shows the logical layout of the FAT sectors. (Each FAT entry contains 12 bits.)

8

8 -10

Memory Management

Figure 8-3. ROM Disc FAT

~

Sector
th

2h
3h
4h
Sh

r

6h
7h
8h
9h
Ah
Bh
Ch

r

Bytes
Oh-2h
3h-1Ah
lBh-167h
168h-1FFh
Oh-E7h
E8h-1FFh
Oh-67h
68h-1E7h
tE8h-1FFh
Oh-167h
168h-1FFh
Oh-E7h
E8h-1FFh
Oh-67h
68h-1E7h
lE8h-1FFh
Oh-t67h
t68h-1FFh
Oh-E7h
E8h-1FFh
Oh-67h
68h-1E7h
tE8h-1FFh
Oh-167h
t68h-1FFh
Oh-E7h
E8h-IFFh
Oh-67h
68h-1E7h
lE8h-1FFh

Contents

]

First Two FAT Entries (FAh. FFh. FFh)
Cluster Allocation for Root Subdirectories
Cluster Allocation for System File Data
Cluster Allocation for Plug-In It Data

] Cluster Allocation

for Plug-In 12 Data

Cluster Allocation for Plug-In 13 Data
Cluster Allocation for Plug-In 14 Data

]
] Cluster Allocation
] Cluster Allocation

for Plug-In 15 Data
for Plug-In D6 Data

Cluster Allocation for Plug-In 17 Data
Cluster Allocation for Plug-In 18 Data

]
] Cluster Allocation

for Plug-In 19 Data

] Cluster Allocation for

Plug-In #A Data

Cluster Allocation for Plug-In IB Data
Cluster Allocation for Plug-In DC Data

]
] Cluster Allocation
] Cluster Allocation

for Plug-In 10 Data
for Plug-In IE Data

Cluster Allocation for Plug-In IF Data
Not Used

8

The root directory resides in sector Dh of the ROM disc. When needed, this sector is
created on the fly. The sector contains enough room for 16 directory entries. Each
directory entry takes 32 bytes and defines a subdirectory file. The first entry defines
the subdirectory for the system files. The data for this entry is extracted from system
Memory Management

8-11

ROM. Each of the following entries (up to 15 maximum) defines a subdirectory for one
of the occupied plug-in ROM slots. The variable data for these entries is extracted from
the corresponding plug-in ROM. The ordering of the subdirectories depends upon the
number of plug-in applications in "lower" slots. All entries in the root directory are
contiguous (all vacant entries are grouped following the occupied ones). The root
directory is shown in figure 8-4.
Figure 8-4. ROM Disc Root Directory

Sector
Oh

Bytes

Contents

Oh-1Fh
20h-3Fh
40h-5Fh
60h-7Fh
80h-9Fh
AOh-BFh
COh-OFh
EOh-FFh
100h-11Fh
120h-13Fh
140h-15Fh
160h-17Fh
180h-19Fh
lAOh-1BFh
lCOh-10Fh
1EOh-1FFh

Directory
Directory
Directory
Directory
Directory
Directory
Directory
Directory
Directory
Directory
Directory
Directory
Directory
Directory
Directory
Directory

Entry
Entry
Entry
Entry
Entry
Entry
Entry
Entry
Entry
Entry
Entry
Entry
Entry
Entry
Entry
Entry

for
for
for
for
for
for
for
for
for
for
for
for
for
for
for
for

System Subdirectory
Plug-In 11 Subdirectory
Plug-In 12 Subdirectory
Plug-In 13 Subdirectory
Plug-In 14 Subdirectory
Plug-In 15 Subdirectory
Plug-In 16 Subdirectory
Plug-In 17 Subdirectory
Plug-In 18 Subdirectory
Plug-In 19 Subdirectory
Plug-In IA Subdirectory
Plug-In IB Subdirectory
Plug-In IC Subdirectory
Plug-In #0 Subdirectory
Plug-In IE Subdirectory
Plug-In IF Subdirectory

Each entry in the "root directory" defines a subdirectory file that is one cluster in
length and resides in one of the 16 clusters that immediately follows the root
directory". These files therefore occupy the first 32 data sectors of the ROM disc
(clusters 2h through Ilh; sectors Eh through 2Dh). When needed, these sectors are
generated on the fly from data in the "root directory" of the corresponding plug-in
ROM. The specified cluster numbers within the "root directory" of the plug-in ROM are
mapped into the corresponding locations within the logical sector space dedicated to
that plug-in. The subdirectory files in the "root directory'l of the ROM disc have a fixed
size of one cluster; therefore, the "root directoryll in each of the plug-in ROMs must be
fixed at one cluster (two sectors) and can therefore have a maximum of 64 entries. The
layout of the subdirectory files is shown in figure 8-5.

'~

II

8

8 -1 2

Memory Management

~

Figure 8-5. ROM Disc Fixed Subdirectory Files

~

Cluster (Sectors)
2h
3h
4h
Sh
6h
7h
8h
9h
Ah
Bh
Ch
Oh
Eh
Fh
10h
11 h

(Eh-Fh)
(10h-11h)
(12h-13h)
(14h-1Sh)
(16h-17h)
(18h-19h)
(lAh-1 Bh)
(1 Ch-1 Oh)
( 1Eh-1 Fh)
(20h-21h)
(22h-23h)
(24h-2Sh)
(26h-27h)
(28h-29h)
(2Ah-2Bh)
(2Ch-20h)

Content
Subdirectory
Subdirectory
Subdirectory
Subdirectory
Subdirectory
Subdirectory
Subdirectory
Subdirectory
Subdirectory
Subdirectory
Subdirectory
Subdirectory
Subdirectory
Subdirectory
Subdirectory
Subdirectory

File
File
File
File
File
File
File
File
File
File
File
File
File
File
File
File

for
for
for
for
for
for
for
for
for
for
for
for
for
for
for
for

System Files
Plug-In #1
Plug-In #2
Plug-In #3
Plug-In #4
Plug-In #5
Plug-In #6
Plug-In #7
Plug-In #8
Plug-In #9
Plug-In #A
Plug-In #B
Plug-In #C
Plug-In #0
Plug-In #E
Plug-In #F

Plug-in ROMs can contain 256K of data, which is separated into 512 sectors of 512
bytes each. There is a root directory in the plug-in ROM that describes the organization
of its files. The file data itself is not altered by the memory driver except for
subdirectories, which specify cluster numbers (within the plug-in ROM) that must be
remapped into the appropriate values for the ROM disc. Each of the plug-in ROMs has
a reserved bank of 512 sectors (256 clusters) in the ROM disc for its file data. Figure
8-6 shows the allocation of the ROM disc clusters to the plug-in file data. (The format
for the data on the plug-in ROM itself is covered in chapter 9, "Plug-In ROM Design.")

8

Memory Management

8 - 13

Figure 8-6. ROM Disc Plug-In File Data

Clusters (Sectors)
FOh-1EFh
lFOh-2EFh
2FOh-3EFh
3FOh-4EFh
4FOh-5EFh
5FOh-6EFh
6FOh-7EFh
7FOh-8EFh
8FOh-9EFh
9FOh-AEFh
AFOh-BEFh
BFOh-CEFh
CFOh-DEFh
DFOh-EEFh
EFOh-FEFh

(IEAh-3E9h)
(3EAh-5E9h)
(5EAh-7E9h)
(7EAh-9E9h)
(9EAh-BE9h)
(BEAh-DE9h)
(DEAh-FE9h)
(FEAh-l1E9h)
(1IEAh-13E9h)
(13EAh-15E9h)
(15EAh-17E9h)
(17EAh-19E9h)
(19EAh-1BE9h)
(lBEAh-1DE9h)
(IDEAh-1FE9h)

Contents
Plug-In
Plug-In
Plug-In
Plug-In
Plug-In
Plug-In
Plug-In
Plug-In
Plug-In
Plug-In
Plug-In
Plug-In
Plug-In
Plug-In
Plug-In

11
12
13
14
IS
16
17
18
19
IA
IB
IC
10
IE
IF

File
File
File
File
File
File
File
File
File
File
File
File
File
File
File

Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data

Area
Area
Area
Area
Area
Area
Area
Area
Area
Area
Area
Area
Area
Area
Area

8.4 Summary of ROM Disc Access
The memory driver accesses ROM disc sectors in the following ways:
• If sector Dh is requested, then the boot sector is composed from fixed data in the
system.
II

8

If a sector in the FAT is requested (sectors Ih through Ch), then the sector range
being mapped is determined and the FAT table entry for those sectors is computed
and returned on the fly. The FAT entry for sectors in the plug-in ROM directories or
in the system file data is extracted from fixed data within the system. The FAT entry
for sectors within a plug-in ROM's file data is computed from the mapping of that
plug-in ROM together with data in the root directory of that plug-in.

• If sector Dh is requested, then the root directory of the ROM disc is computed on the

fly from data within the root directory of each plug-in ROM and from fixed data
within the system.
8 - 14

Memory Management

~.,

J

• Sectors Eh and Fh specify the subdirectory for the system files, which is generated on
the fly by the memory management code.

~.

sectors lOh through 2Dh specify subdirectory files for plug-in ROMs. These sectors
are composed on the fly from data within the root directory of the corresponding
plug-in ROM.

• Sectors 2Eh through lE9h contain the file data for the system files. The contents
(and mapping) of these sectors are fixed and are returned directly.
• sectors 1EAh through 1FE9h are mapped into the data files of the plug-in ROMs. If
the sector is from a subdirectory file within the plug-in ROM (which can be
determined from data within the plug-in ROM's boot sector), then the cluster
specifications (which are at fixed offsets in the sector) must be remapped by adding
an offset appropriate to the particular plug-in. If the sector is not part of a
subdirectory, then the data is returned as is.

8

Memory Management

8 - 15

~

.

.

.'

rg

I

.
.

.

.

~

.

Plug-In ROM Design

9. 1 Introduction
A plug-in ROM can contain up to 256K bytes of data. This data can be divided into
three distinct parts:
• ROM boot code.
• A logical ROM disc.
• ROM -executable code.
The logical ROM disc occupies the low memory within the plug-in ROM.
ROM -executable code is placed at the high end. ROM boot code occupies the first sector
within the plug-in ROM. The memory driver does not check for this division; the
entire plug-in ROM is treated as a 256K-byte partition of its ROM disc.
The plug-in ROM can be implemented as either a half-bank ROM or a full-bank
ROM. In a half-bank implementation, only one ROM is provided (instead of two).
Because the ROM is 8 bits wide and the data bus is 16 bits wide, a half -bank
implementation will occupy either the even bytes or the odd bytes of the address
space--depending upon which socket the ROM occupies in the ROM drawer. (A
different half-bank ROM may occupy the other half, or the other half may be
unoccupied.) The memory driver automatically handles the special requirements of
ROM disc accesses to half-bank ROMs.
The address ranges and byte numbering conventions used in the following descriptions
assume a full-bank implementation. A half -bank implementation operates in the same
way, except that every other location contains an undefined byte (which is discarded by
the routine that reads the ROM bank). Thus, the address range for a half-bank
implementation is effectively half that of a full-bank implementation. Half-bank
ROMs may not (in general) have any ROM-executable code.

Plug -In ROM Design

9- 1

9.2 Plug-In ROM Format
The plug-in ROM resides in a 256K address space--some of which may not be
occupied, depending on ROM size and whether the implementation is a half-bank or
full- bank. The address space is divided into 512 logical sectors of 512 bytes each. The
sectors are paired into clusters of 1024 bytes each. On a normal disc, the cluster
numbering begins at 2h immediately following the root directory. In the plug-in ROM,
the boot sector is in sector Oh, sector lh is occupied by a one-sector FAT, and the root
directory i~ in sectors 2h and 3h. Therefore, cluster 2h begins in sector 4h, and the first
sector of all clusters is twice the cluster number.

r"

The information in these first four sectors is used by the ROM -disc driver to make the
files in the plug-in ROM appear as a subdirectory in the ROM disc. As a result, all of
the explicit cluster specifications in the plug-in ROM must be remapped into the
cluster space of the ROM disc that has been allocated to the particular plug-in. The
cluster numbers that occur in the FAT and root directory are at fixed points and easily
handled by the memory driver.
Cluster numbers are also specified in subdirectory files. To facilitate the mapping of
these cluster specifications, the plug-in ROM format requires that all subdirectory
sectors occur before any non -subdirectory sectors (a word in the boot sector is defined
to identify this boundary). If the plug-in ROM contains any ROM-executable code,
then this code should be placed after the last sector of file data. This format is shown in
figure 9-1.

9
9-2

1.

Plug -In ROM Design

~

)

r

Figure 9-1. Plug-In ROM Format

Cluster

Sector

Contents

OOOOOh
00200h

Oh

Boot Sector

lh

FAT

(Oh)

00400h
2h
(1 h)

Root Directory
3h

00800h
2h

Subdirectory Files

4h

l------~
l------~

~\

3FFFFh

I FFh

lFFh

I

Non-Directory Files
ROM-Executable Code

Sector Dh occupies addresses Dh through IFFh of the plug-in ROM. It is not really a
boot sector in that the system does not attempt to boot from it--however, it does have a
name and version field and a BIOS parameter block that are defined the same as on a
disc boot sector. The sector also contains some information for configuring the plug-in
ROM into the ROM disc, and it can contain some ROM boot code that executes during
the boot sequence. The format of sector Dh is described in table 9-1.

Plug-In ROM Design

9-3

Table 9-1. Plug-In ROM Sector Oh
Byte
Number

Oh-lh

Description (Value)

ROM-Existence Bytes

2h

Plug-In Status
Only one bit is defined. Bit I is set to indicate that there is boot code
provided starting at byte 30h. (Refer to "ROM Boot Code" below.)

3h-Ah

OEM Name and Version
Set up by ROM developer for identification purposes. Ignored by the
system.

Bh,Ch

Bytes per Sector

(512)

Sectors per Cluster

(2)

Eh,Fh

Reserved Sectors

(1)

IOh

Number of FATs

(1)

Dh

Ilh,12h

Number of Root Directories

13h,I4h

Total Number of Sectors

ISh

Media Descriptor

(32)
(512)
(OFAh)
(1)

16h,17h

Number of Sectors per FAT

18h-IDh

Extended Device Parameters
Ignored by the operating system.

1Eh, 1Fh

Last Directory Sector
The sector number of the last sector of the last directory file. Because
subdirectories must precede all other files, this value identifies the
boundary between sectors that contain explicit cluster specifications
that must be remapped and those that do not.

9
9-4

Plug -In ROM Design

.~

.~

Table 9-1. Plug-In ROM Sector Oh (Continued)

20h-27h

Subdirectory Name
Identification name for the plug-in ROM. This name is given to the
subdirectory that is created by the memory driver for this plug-in
ROM. The root directory of the ROM will appear in the ROM disc as
a subdirectory with this name.

28h-2Bh

Time and Date Stamps
Used while setting up the subdirectory entry for this plug-in ROM in
the ROM disc root directory and in the ".11 and ".." subdirectories in
the plug-in ROM's subdirectory file. The format for these bytes is the
same as for the corresponding entries in a directory entry.

2Ch- 2Fh

Checksum

30h-I FFh

Boot Code (Optional)

The first two bytes of sector Oh contain the ROM-existence bytes, which are used to
determine if a valid ROM exists and whether it is a full-bank ROM (B2h,Blh), a
half-bank ROM occupying the even addresses (B3h,XX), a half-bank ROM occupying
the odd addresses (XX,B3h), or two separate half-bank ROMs (B3h,B3h). To implement
this, the first byte in the actual ROM that contains the even address range of a
full-bank implementation must be OB2h; the first byte of the ROM that contains the
odd addresses of a full-bank implementation must be OBlh; and in the ROM that
defines a half-bank implementation, the first byte must be OB3h and the second byte is
undefined. (The first byte in a ROM is at address 0 if the ROM is plugged into the
even -address socket, or at address 1 if the ROM is plugged into the odd -address socket.)
Bytes OBh through 17h contain a BIOS parameter block as defined by the operating
system. All of these values are ignored by the system, but the data must be formatted as
described in table 9-1.
Bytes 2Ch through 2Fh contain the ROM checksum. The checksum is computed in two
parts. One checksum is a 16-bit quantity in 2Ch and 2Eh that covers the
even-addressed bytes. The other checksum is a 16-bit quantity in 2Dh and 2Fh that
covers the odd-addressed bytes. In a half-bank implementation the two values should
be equal. In all cases, the checksum is the value that will produce a -I (OFFFFh) when
all of the bytes in the given half of the ROM are added together in 16-bit pairs with a

Plug -In ROM Design

9-5

wraparound carry. When the BIOS verifies the checksum of a ROM it checks at the 8K,
16K) 32K, 64K and 128K boundaries and stops when it gets a valid checksum.
If bit 1 of the status byte (byte 2) is set, then boot code begins at byte 30h. Boot code is
ROM -executable code that is invoked during the boot process. (Refer to
"ROM-Executable Code" and "ROM Boot Code" below.)

~

)

The file allocation table (FAT) in the plug-in ROM occupies sector Ih. The plug-in
ROM maps into a logical address space of 256 clusters (512 sectors). If the plug-in ROM
contains ROM-executable code) or if it is a half-bank implementation, then the space
available for files may be considerably less, though the files may not use all of the
available space. All bytes in the FAT sector beyond those that actually map clusters of
file data should be set to zero.
The root directory is a normal directory as defined by the operating system. Three
limitations are placed on the directory data of plug-in ROMs:
• All subdirectory data must occur in the ROM before any non-directory file data.
This limitation applies only to the file data itself, not to the ordering within the root
directory.
• A plug-in ROM's root directory may not have a volume label. The root directory of
the plug-in ROM is mapped into a subdirectory within the ROM disc, and a
subdirectory can)t have a volume label.
• The root directory of a plug-in ROM may have a maximum of 30 entries. The
subdirectory size is fixed at two sectors, which can contain a maximum of 32
directory entries, and "." and ".." directories must be added to create a subdirectory.

9.3 ROM-Executable Code
ROM -executable code is placed in full bank ROMs following the file data. This code is
accessed by a user program through the System Services Interrupt SOh functions. (Refer
to "System Services Interrupt" in chapter 5.) The plug-in ROM developer may layout
this code as desired, provided it all follows the ROM disc portion of the plug-in ROM.
This code will reside in some logical sector of the plug-in ROM file space; however,
since the sector is not part of a file, it will be marked by the FAT as an unused sector,
and since the sectors are logically (as well as physically) write-protected, the sectors
containing ROM-executable code should never be accessed by the file system.
9
9 -6

Plug -In ROM Design

~

)

9.4 ROM Boot Code
' " The ROM status byte contains one bit indicating whether or not the ROM has boot code
that is to be executed when the system is booted. The boot code resides in sector 0, bytes
30h - Iffh. At boot, this code is copied into display RAM and called. The ROM may
be either a full bank or half bank. This code is called only if the ROM is in the special
ROM slot 7. (Refer to chapter II, "Boot Sequence Options.")

9.5 Constraints on Plug-In ROM Software
Though a plug-in ROM is formatted in the standard disc format defined by the
operating system, there are several constraints imposed on its contents. While these
constraints should not be particularly burdensome, it is important that they be
re((ognized and followed.
• The low memory locations of a plug-in ROM must appear as disc media to the
system. This is true even if no files are being supplied. This requires a boot sector,
FAT, and root directory, followed by the file data. The boot sector and FAT must
define the media as 512 bytes/sector, 2 sectors per cluster, I reserved sector, 1 FAT)
32 entries in the root directory, a number of sectors appropriate to the amount of
data contained, a media descriptor of OFAh, and I sector/FAT. The boot sector, FAT)
and root directory must be configured appropriately for the specified disc format and
the files therein (~s described under "Plug-In ROM Format" above).
• The boot sector must contain special information necessary to determine various
attributes of the ROM and the subdirectory being defined. Included here are explicit
values to determine that the ROM exists, the optional checksum value) the name of
the subdirectory, the total number of sectors of directory files) and a status byte (as
described under "Plug-In ROM Format" above).
• The files in the plug-in ROM must be arranged so that the data for all directory files
occurs on the ROM before any data for non-directory files.
• Programs may not access data in plug-in ROMs through the use of explicit sector
numbers. This is required because the sector numbers within the plug-in ROM are
remapped into different numbers within the system ROM disc.

Plug -In ROM Design

9-7

II

• The explicit pathname for accessing files is the "B: unit with the subdirectory name
defined in bytes 20h to 27h of the ROM. Use of explicit pathnames may limit the
portability of applications: there is no guarantee that all machines that will accept
the ROM will provide the same pathname configuration.
• The subdirectory name must be unique for every plug-in ROM. Developers should
therefore exercise care in selecting the subdirectory name. Names that incorporate a
company name or a trademarked product name are good choices. Names such as
"games", "userll, " etC", lldatall, " code ll, "libl" "sys", IIlang", "edit ll, and lldict" should be
avoided. The system subdirectory is "BIN
II

•

• The root directory may not contain a volume label. This occurs because the plug-in
ROM is mapped into a logical subdirectory file of the ROM disc. However, the
developer does have complete freedom in the use of the OEM name and version field
and the special version number field. In addition, the time and date stamps can
indicate different versions.
• The plug-in ROM is limited to a maximum of 30 entries in the root directory. These
together with "." and II• •" entries will total 32 entries, which fill the two sectors
allotted to the plug-in ROM's subdirectory file. Subdirectories aren't limited in size
or number.

9.6 PAM Interface to Plug-In ROMs
PAM scans the plug-in ROM directories for a PAM.MNU file. This enables applications
to be invoked from PAM in the same manner as disc-based applications. (Refer to
chapters 10 and 11.) The PAM.MNU file must be in the root directory of the plug-in
ROM. The root directory of the plug-in ROM is set up in the PATH variable by PAM
All programs in the root directory are directly executable.

9-8

Plug -In ROM Design

..~
'-

.

.... .

I

"

I

.

.~:

",.

.....:.

~.

~

".
."
.

.

. .....

PAM - The Personal
AlPplication Manager
The Personal Application Manager (PAM) is a "user-friendly" shell that provides the
user with an alternate interface to MS-DOS. It also provides additional functionality to
the system, allowing system parameters and configurations to be easily set and changed,
alarms, and some extended datacom capability in the form of auto-answer batch files.
This chapter explains how PAM interfaces to the system BIOS, and how some of its
features are implemented.

10.1 Power-Up Sequence
Every time the system is booted via the reset button or the C'PTRJJ( Shl ft)( Break)
combination, PAM is invoked by MS-DOS as the default shell after all of the internal
and installable drivers have been initialized. (This assumes that the system has not been
taken over by some alternate boot method, such as a boot ROM in slot 7, and that the
shell hasn't been changed. Refer to chapter 11, "Boot Sequence Options".)

10.2 The PAM Environment

~

~

When PAM is started, its first operation is that of building the enviroment that it will
use and pass to any program that is executed under it. The MS-DOS enviroment
consists of a list of strings of the form NAME=parameter. Some common environment
variables are PATH, which defines the path to search for commands; and PROMPT,
which specifies the DOS prompt. At the minimum, the enviroment must have the
string "COMSPEC=B:\BIN\COMMAND.COM". This tells MS-DOS where to reload the
transient part of COMMAND.COM from. The string can be changed if you want to use
an alternate command processor.
When building the enviroment, PAM will scan drive A (the Edisc) for a file named
PAM.ENV. If this file is found, the contents will be read into the PAM enviroment

PAM - The Personal Application Manager

10-1

"

10

space and passed to other programs. This file must have the COMSPEC line described
above, and the line must be in upper case.
You can also define a new path, prompt, and any other environment variables you need.
The PAM.ENV file can be a maximum of 255 characters. If the file is longer than this)
the message "PAM.ENV too big" will appear, and the default PAM environment will be
used

~

)

Lines in the PAM.ENV file are normally limited to 80 characters in length--additional
characters are normally ignored. However, if a line must be longer than 80 characters,
you can include a control-J (.... J) or control-Z (....Z) character in the line before the 80th
character. Each time PAM encounters one of these characters, it accepts 80 additional
characters in that line.
If there is no PAM.ENV file on drive A, or if it is invalid, PAM will build a default

environment. This consists of the standard COMSPEC line, the standard prompt
(defined by "pROMPT=$t$h$h$h$h$h$h [$p} $S"), and a path. The PAM path is
defined by the plug-in ROMs in the system. In the minimal system, with no external
ROMs, the path is set to PATH=A:\;B:\BIN. When external ROMs are present, they are
added to the path in the order in which they appear in the directory. Also, they are
inserted between the A:\ and the B:\BIN, so that a plug-in ROM can replace a system
program if desired. For example, if there is a plug-in ROM with the directory name of
LOTUS 123, the PAM path would be A:\;B:\LOTUS 12 3;B:\BIN.
In addition to occurring at boot time, this environment construction process occurs
every time PAM is restarted.

10.2.1 PAM and AUTOEXEC.BAT Files
At boot time, after the environment has been constructed, PAM looks for
AUTOEXEC.BAT files on the ROM Disc and Edisc. First, if there is a ROM in slot 7,
PAM will execute any AUTOEXEC.BAT file that resides on that subdirectory. If there
is no AUTOEXEC.BAT file on the slot 7 ROM, PAM will attempt to execute
AUTOEXEC.BAT from the root directory of drive A. The batch file can do the usual
commands, and it can either do a normal termination and return to PAM, or invoke
some alternate program that will take control of the system.

10-2

PAM - The Personal Application Manager

~

,;

10

r'

•

:1

_N_o_t_e

The AUTOEXEC.BAT file is executed before PAM configures the system
as specified in the Datacom Configuration and System Configuration
m_en_u_s_.
_

10.2.2 PAM Internal Sta te
When PAM finally begins its main execution phase, it puts the console in a known state
so that it can process softkeys and display information. The state of the console and the
commands required to set it up is given in table 10-1.
Table 10-1. PAM Internal state
state

Insert Char Off
Transmit Functions On
EOL Wrap Disabled
Underscore Cursor
HP Primary Font
HP Console Mode
Display Functions Off
MS-DOS Raw Mode

Command

ESC R
ESC &s lA
ESC &s1C
ESC *dL
ESC [10m
ESC &kO\
ESC Z
MS-DOS Function 44h

PAM - The Personal Application Manager

10-3

10

10.3 PAM And Application Programs
10.3.1 Installing Applications In PAM
At boot, and every time PAM is restarted (after an application or command terminates),
the internal and external discs are scanned for PAM.MNU files. These files specify
what appears in the application labels (inverse video blocks) of the PAM Main screen, as
well as the command to be executed when that application is selected. The format of a
PAM.MNU file is as follows:
Title
Command
Title
Command
#Comment

Where "Title" is the wording that will appear in the application label, and "Command" is
the actual command to be executed. The line containing "Title" can be up to 80
characters long) but only the first 14 are used. "Command" can be up to 80 characters
and must be a valid MS-DOS command. If any line in the PAM.MNU file begins with
the "#" character) that line is regarded as a comment and ignored. The PAM.MNU file
must be in the top-level directory of a disc or plug-in ROM.

10.3.2 The "DOS Commands" Application
Even if there are no PAM.MNU files in the system) PAM will generate an application
label with the title "DOS Commands" which, when selected) runs
B:\BIN\COMMAND.COM. This label will always be the first application label on the
screen; it cannot be removed or altered.

10-4

PAM - The Personal Application Manager

10

10

10.3.3 PAM Execution of a Program
Once PAM displays its main command screen) an application program can be invoked
either by the selection of the appropriate application label on the screen) or by typing
the program name on the command line. If the application is selected from a screen
label) the current default drive is changed to be the disc that the corresponding
PAM.MNU file was found on. (Note that this is not true for ROM-based
applications--the default drive is left unchanged for applications that reside on drive
B.)

In either case) PAM then issues various configuration commands to set the machine into
a known) user-specified state. All of the Datacom Config settings are invoked so that
the communication port parameters (such as baud rate and data bits) are configured
properly. The System parameters for Disc Write Verify, Power-Save Mode, Display
Timeout) Console Mode) Cursor Type) and Tone Duration are set to their current
choices. The printer configuration commands for Line Spacing) Pitch) and Skip Perf are
sent to the current PRN device. For more detailed descriptions about the configuration
commands that are issued) see the following topic) liThe PAM Configurations."
After the system is properly configured) the application or command will be executed.
First, PAM releases all but 2K bytes of the memory allocated to itself in order to give
the application as much room as possible. Then) the program or command is executed
by invoking the command interpreter (COMMAND.COM) with the program name
passed as a parameter. For example) if "MemoMakr" is typed on the command line, the
actual invocation is "COMMAND.COM IC MemoMakr When an application
terminates) control returns to the resident part of PAM, which then reloads the full
PAM.COM from the ROM disc and restarts itself. When PAM restarts, it behaves
exactly as if a power-up occurred) except that AUTOEXEC.BAT files are not executed.
ll

•

There is the capability in MS-DOS for an application to terminate and at the same time
stay resident in the system memory. When control returns to PAM to restart itself)
PAM will find that it can not get all of the system memory back. In this case, PAM
will force a re-boot to get the system memory that it requires. This can be
demonstrated by going into DOS Commands and running the application PRINT.
PRINT terminates but keeps a small amount of its program resident. When exiting to
PAM) PAM will re-boot instead of simply restarting.
Note that is is possible to invoke PAM from PAM. This is not recommended, however,
since PAM has no way of terminating its execution. If PAM is invoked as an
application from PAM) it will"stack Up" the resident part of the first PAM as well as
the resident portion of COMMAND.COM, removing about 5K bytes from availible
system memory.
PAM - The Personal Application Manager

10 - 5

10

10.4 The PAM Configurations
PAM allows the user to configure several aspects of the system. There are three
categories: System Configuration, which defines the memory size, external peripherals
and other parameters of the system; Datacom Configuration, which give the user a
simple means of altering the system data communication settings; and Time and Date
Configuration, which defines the system clock.

10.4.1 The System Configuration
The fields of the system configuration menu are described below. When the System
Config menu is exited, the computer will go through the reboot process before returning
to the main PAM screen. This is necessary due to the nature of certain parameters, such
as the Main Memory/Edisc partition, which must be set before MS-DOS and PAM gain
control of the system.

10.4.2 Main Memory and Edisc
The Main Memory/Edisc field defines the partition between system RAM (main
memory), which is the amount of RAM availible to applications, and the electronic disc.
The first number in the field is the number of kilobytes allocated to the system RAM,
and the second number is the computed Edisc allocation. The sum of system RAM and
the Edisc equals the total RAM in the computer (user RAM). The default state, and the
minimum state, is 8DK system RAM, with all other available RAM allocated to the
Edisc. The 8DK represents the minimum amount of RAM in which PAM can run and
provide its full functionality.
The upper limit of this field is variable, depending on the amount of space currently
free on the Edisc. PAM will allow the user to increase the system RAM until there is
one sector free on the Edisc. This prevents the accidental loss of data. If additional
space is required for system memory, files must be deleted from the Edisc, or it must be
packed (via the PACK command) to close any "holes" on the disc. The actual setting of
the new partition is done when the "Exit" key is pressed in the System Configuration
screen. PAM calls the system memory management function to set the Edisc size, and
then re-boots. When the system restarts, the new partition is in effect.

10-6

PAM - The Personal Application Manager

10

10.4.3 External Disc Drives
The number of CS80 protocol disc drives is specified here. This number does not
include any other drives, such as the Amigo family. At system boot time, the BIOS
CS80 driver looks at this number and allocates that many units in its device header.
The drive letters for the external drives begin at "C", and continue to a maximum of IIJII,
since the CS80 driver can access a total of eight drives.
If the number of external drives is set to 0, the CS80 block driver is removed from the

BIOS device list. This is sometimes useful for speeding up the operation of PAM, since
PAM will try to find PAM.MNU files on every external drive. If there are no external
drives in the system, PAM will return from its search quickly, since it does not have to
wait for the disc driver to time-out or return data. If there are no external drives
specified, however, you cannot access any CS80 disc drives at any time, unless you have
installed your own driver.

10.4.4 Disc Write Verify
~

\:

This option allows the user to set and clear the MS-DOS Verify flag. If this parameter
is set to "0n", MS-DOS will call the disc driver "Write With Verify" routine instead of
the normal"Write with No Verify" code. A verified write is a write that performs a
read after each disc write and compares the two blocks of data. If there is an error, the
user is given the option to abort, retry or ignore the error. This is normally used only
when you are writing critical data to a disc, or if you are unsure of the integrity of the
disc (such as a disc that is flashing the "Media Monitor" light on an UP Disc Drive).
Usually, since disc errors are infrequent, and since the read after each write slows the
disc operation, this parameter is set to "0ff." Also, this setting does not affect the
operation of the internal drives (Drives A: and B: will never be verified).

10.4.5 Power-Save Mode
If an application frequently checks for keyboard activity, battery life can be improved

,...
'\

significantly by allowing the system to enter a low-power halt known as Power-Save
Mode. In this mode, the CPU is halted; the PPU is made aware of the halt and adjusts
its power consumption calculations to account for the reduced system activity.
Subsequent hardware interrupts force the CPU out of the halt; the interrupt is serviced
as usual, and a check is made to determine if the system should again be halted.
Two situations can cause the low-power halt to occur. The first situation is a keyboard
read request when the key queue is empty; the application wants a key, and since the
PAM - The Personal Application Manager

10-7

10

queue is empty the system halts until a key becomes available. The second situation is
an application checking keyboard input status more than a specified number of times
within one second.
In the first case, the application requires a key in order to continue; if no key is
available, the only logical thing to do is wait for the user to press one. The keyboard
driver could wait for a key by continuously testing its own input buffer, waiting for a
key to appear; with power-save mode, however, as soon as the driver determines that
there is nothing in the buffer, it halts the processor. Whenever a subsequent interrupt
occurs, the interrupt is processed, the buffer is rechecked and, if it is still empty, the
processor halts again.

~

In the second case, the application expects a key, but rather than letting the keyboard
driver wait for it, the application does the waiting by repetitively reading keyboard
input status from the keyboard driver. If power-save mode is enabled, the keyboard
driver keeps count of the number of input status requests made within a one second
interval; if that count reaches a set limit, the keyboard driver forces the processor into
the low power halt. When a subsequent interrupt occurs, the interrupt is processed, the
status request counter is reset, and the application again gets control.
System service functions 14h and ISh allow the application to read and write the
current value of the keyboard input status request limit. If the limit is set equal to
zero, power-save mode and system timeout are both disabled. Keyboard input status
requests-per-second will not be counted; if the timeout interval elapses, the system will
not go to sleep. The low power halt, however, will still be entered if a keyboard read
request is attempted when the key queue is empty. If the limit is set above 2000h,
power-save mode is disabled. If the limit is set to any other value, it specifys the
minimum number of keyboard status requests that must be made within a one second
interval in order to enter the low power halt.

10.4.6 Determining a Reasonable Status Limit Value
If an application frequently checks keyboard input status without actually requesting a
key from the key queue, it is possible for the system to enter the power-save mode low
power halt at times when the halt is unwanted (the limit is set too low); similarly,
although the user wants the system to halt and eventually time out (go to sleep), the
application might actively wait for a key forever (the limit is set too high). By altering
the input status limit, such situations can be avoided; choosing an appropriate limit,
however, can be somewhat tricky.

10-8

PAM - The Personal Application Manager

~

10

When PAM runs an application (or enters DOS Commands) and Power-Save Mode is
enabled, it sets the input status limit to 300h. For most applications, this will be a
reasonable value. In some cases, howevert it may be too high, causing a program which
makes regular but far apart keyboard status checks to never enter the halt (and
consequently never allow the computer to go to sleep). It "appears" to the system that
the application is doing some intense computing, and so it is permitted to keep on
running. PAM disables Power-Save Mode by setting the input status limit to 3000h.
In most programs, the only indication to the user that the status limit value is
reasonable is in seeing whether or not the system goes to sleep (if it's supposed to) after
the specified timeout interval. The general rule of thumb, then, for determining a new
value for the Power-Save mode keyboard input status limit is:
• If the system never goes to sleep when the application is running (but it is supposed to
time out), lower the limit.
• If the system goes to sleep (or appears to slow down) at unexpected moments while
the application is running, raise the limit.

r

10.4.7 Display Timeout
Display Timeout is the computer's main means of conserving battery power. It is
similar to Power-Save Mode in that it is based on the duration of keyboard inactivity,
but instead of simply entering a low-power halt, most of the system is electrically shut
down, or put to sleep. The CPU, modem, LCD display, and serial and HP-IL interfaces
are turned off; only display RAM, built-in RAM, plug-in RAM, keyboard hardware,
and the PPU remain on. To the user, the computer will appear to be completely turned
off.
Timeout occurs when the systemts time counter, which increments once each second,
reaches a preset timeout limit. The timeout limit can be set from PAM's System
Configuration menu, or by an application through a system service function. The time
counter is only allowed to increment when the system is in Power-Save Mode or
keyboard -wait low-power halt (see "Power-Save Mode" above); any I/O activity other
than keyboard input status checks resets the time counter to zero.
System service functions I 2h and 13h allow an application to read and write the
current value of the timeout limit. If the timeout limit is set to zero, display timeout is
disabled. Any other value specifies the timeout interval in seconds.

PAM - The Personal Application Manager

10-9

10

The time counter is a one-word value at address 40h:70h. All built-in device drivers
zero out this counter each time they are accessed; installed drivers should be written to
do the same.

If a recharger is plugged into the system and the battery level is greater than 80%, or if
a serial or modem carrier signal is present, then the display timeout feature is disabled.
It can also be disabled for long periods of use by selecting the "Ofr' choice in the
configuration.

10.4.8 Cursor Type
This field controls the shape of the cursor outside of PAM. Within PAM, the cursor is
always an underscore. When an application or command is executed, however, PAM
sends out the appropriate escape sequence to the console to force the cursor type to
match the current PAM selection. The sequences and corresponding choices are shown
in the following list:
Selection

Underscore
Box

ESC *dL
ESC *dK

10.4.9 Console Mode
The Console Mode specifies the operation of the console during the execution of an
application or command. While PAM is running, the console is always in HP mode,
which means that the base font is HP Roman 8, and the special function keys generate
HP sequences. In Alt mode, the base font is the Alternate font, and the keyboard
generates IBM-style key codes. The escape sequences sent to the console for each mode
are shown in the following list:

HP

ALT

10-10

PAM - The Personal Application Manager

ESC &kO
ESC &k1

ESC [10m
ESC [11m

~

10

10.4.10 Tone Duration
Whenever an ASCII AG (character code 7) is sent to the console, the computer will beep.
The duration of this beep is selectable. The frequency of the beep is always constant,
set by writing a Beep Frequency command to the PPU followed by a parameter of 58h.
When a "Long" beep is selected, PAM writes a Beep Duration command to the PPU,
followed by an AOh. In "Short" mode, the duration is set to ISh. For further
information, refer to the "PPU Communcations" (Int SOh) system service description.

10.4.11 Plotter Interface
This field selects the actual comminucation interface associated with the MS-DOS PLT
device. The choices are HP-IL) the HP 82164A HP-IL/RS-232-C Interface) HP-IB
(addresses 0-31, accessed through an HP-IL/HP-IB interface), and the built-in serial
port. The actuat" redirection is accomplished by the system at boot time) when the
MS-DOS device list is modified to associate the name "PLT' with the currently selected
interface.

10.4.12 Printer Interface
The PRN device can be associated with one of several physical devices) and is redirected
in the same manner as the PLT device) described above.

10.4.13 Printer Mode
The printer mode variable affects only the operation of the Print Screen function,
which is accessed by pressing the (p rln t ) key, by sending "ESC 0" to the display, or by
issuing an Int 5h or Int 53h from an application program. In Alpha Only mode, only
alpha (non-graphics) screens will appear on the printer if a Print Screen is invoked. In
Alpha and HP Graphics modes, alpha screens will be dumped as alpha data to the
printer, and graphic screens will be dumped as graphic data in HP Raster Graphic
format (this means the printer must understand the ESC *rA, ESC *rB, and ESC *bW
commands). In HP Graphics Only mode, all screens will be dumped as graphic data. A
dump of an alpha screen will produce an exact copy of the screen, including the current
font, and any inverse video and underlined text.

PAM - The Personal Application Manager

10 - 11

10

10.4.14 Printer Pitch, Line Spacing, and Skip Perforation
The printer can be configured by the user to several combinations of these three
parameters. Initially, all of these choices are set to "No Configuration", which implies
that PAM simply does not send a configuration to the PRN device. Otherwise, the
following escape sequences are sent to the PRN device whenever an application or
command is executed from PAM:

Printer Pitch:
Normal
Expanded
Compressed
Expanded-Compressed

ESC
ESC
ESC
ESC

Print Line Spacing:
6 Lines/inch
8 Lines/inch

ESC &160
ESC &180

Printer Skip Perforation:
On
Off

ESC &11L
ESC &10L

~

&kOS
&klS
&k2S
&k3S

10.4.15 Datacom Interface
The MS-DOS AUX device can be associated with either the built-in RS-232 port, the
HP 82164A interface, or the internal modem (if present). This field allows the user to
specify which device AUX will address. The redirection is done at boot time in the
same way as the PRN and PLT devices.

10.4.16 The Datacom Configuration
The PAM Datacom Configuration screen allows the user to set the UART parameters
for the three serial communication devices in the system: the built-in RS-232C
interface (COMl), the HP 82164A HPIL/RS-232-C Interface (COM2), and the internal
1200/300 BPS modem (COM3). All of the choices in this menu are implemented by
sending the appropriate IOCTL commands to the COMl,COM2 and COM3 devices (An

10-1 2

PAM - The Personal Application Manager

,~

10

IOCTL command is sent to a device via the MS-DOS Int 2Ih function 44h--for more
information about these commands, refer to "AUX Device Driver" in chapter 6.)

r

Transmission Rate (BPS):

Choice
110
134.5
150
300
600
1200
1800
2400
3600
4800
7200
9600
19200

~

Command Sent to DeVice
SB3;
SB4;
SB5;
SB6;
SB7;
SB8;
SB9;
SBA;
SBB;
SBC;
SBD;
SBE;
SBF;

Word Length:

Choice
7 bits
8 bits

Command Sent to Device
SW1 ;
SWO;

Stop Bits:

Choice
1 bit
2 bits

Comma"nd Sent to DeVice
S50;
S51 ;

Parity:

Choice

Even

~

Odd

None

Command Sent to Deyice
PO;
P1;
P4;

PAM - The Personal Application Manager

10 - 1 3

10

XON/XOFF Pacing:

Choice

Command Sent to Device

On

C2:
CO:

Off
CTS Line Handshaking:
This field does not apply to the internal modem.

Choice

Command Sent to Device

Observe
Ignore

SL1:

SL2:

DSR Line Handshaking:
This field does not apply to the internal modem.

Choice

Command Sent to Deyice

Observe
Ignore

SL5:
SL6:

DCD Line Handshaking:
This field does not apply to the internal modem.

Choice

Command Sent to Device

Observe
Ignore

10 -1 4

PAM - The Personal Application Manager

SL3:
SL4:

10

Power to Interface:
In addition to controlling the power to the modem and serial ports, this field serves as
an indicator of the current state of the interface. This is useful for conserving battery
power, since applications (or the user) can turn the ports on, and then forget about
them. For examples selecting the serial port as the system printer interface can cause
the port to be powereds increasing battery consumption. The Power field can then be
used to turn off the port.

There is no entry for the UP 82164A, since it is an HP-IL device that has no significant
power requirements from the mainframe.

Choice

On

Command Sent to Deyice
M2 ; (Se ria 1)
M4; (Modem)

Off

M3 ; (Se ria 1)
M5; (Modem)

10.4.17 The Time and Da te Configuration
The system clock can be set with this configuration menu. Everything is fairly
straightforward. While in the Time and Date Config menu, the "Current Choices" are
actually the settings that were in effect when the screen was activated. If the "Exit"
key is pressed without changing any parameters, the time and date continue running
unchanged. If any changes have been made with the Next/Previous Choice keys, the
system clock will be set to the new values after the "Exit" key is pressed.
Also at exit, the softkey clock numbers (displayed in the PAM screens) are synchronized
to the closest minute. This means that if the clock was set to 12:00:29, the softkeys will
show 12:00 for one minutes advance to 12:0 Is and continue to advance at one minute
intervals. If the softkey clock is to correspond exactly to the system clocks the seconds
must be set to 0 before exiting.
After the softkey clock is synchronized, alarms are rescheduled as necessary to account
for the new time. For more information on alarms, refer to the next topic.

PAM - The Personal Application Manager

10 - 1 5

10

10.5 PAM And Alarms
The PPU chip in the Portable PLUS allows the scheduling of interrupts that will be
generated at a given date and time in the future. PAM gives the user a simple means of
accessing this feature. along with the capability to display a message or perform a
command when an alarm occurs.

10.5.1 The PAM.ALM File
When PAM is started, re-entered, or changes the clock. drive A: is searched for a file
named PAM.ALM in the root directory. If this file eXists, PAM will attempt to read it.
Each line in the file must be of the form:

MM/DD/YY HH:SS Text
The hours must be specified in 24-hour time. PAM will only process the first eight
alarms in the file. and they must be in chronological order, with the first alarm on the
first line. The time and date are decoded and, if they are in the future, sent to the PPU
in a SET ALARM command. The text of the line is copied to a file named PAM.MSG,
which is created on the Edisc. If the text begins with the ">" character, the rest of the
line will be interpreted as an MS-DOS command to be executed when the alarm occurs.
Otherwise, the text will be displayed to the user.

10.5.2 When an Alarm Occurs
When the PPU generates an alarm interrupt, the system issues an Int 46h, which in turn
calls the PAM alarm interrupt service routine. This routine does the "warbling" sound
that is heard when an alarm occurs. This noise will continue for about ten seconds or
until a key is pressed. After this, the routine sets a flag for the main part of PAM
which indicates that an alarm has occurred. If there are any more alarms to be set
(defined in the PAM.ALM file), the interrupt service routine sets the next one before
exiting.
If an alarm occurs while the machine is in PAM, the alarm screen will immediately
appear. If the alarm had a message associated with it in the PAM.ALM file, the message
is read from the PAM.MSG file and displayed to the user. PAM will wait for a key to
10-16

PAM - The Personal Application Manager

~,

J

10

be pressed before resuming execution. If the alarm had a command, it is executed, and
PAM is re-started when the command or program terminates.

r

If the alarm occurs when an application other than PAM is executing, the ringing will
happen, but no other action will be taken until PAM is re-entered. When PAM restarts,
it will see that an alarm has occurred, and behave as described in the above paragraph.
If an alarm occurs when the machine is in the sleep state, it will wake up as if a key
had been pressed, and then proceed as described above.

•

N ote

When the PAM.ALM file is created, PAM must be restarted in order for
the alarms to be set. If the file is created in an editor that is invoked from
the PAM command line or by selecting an application label, then the file
will be seen since PAM will restart as soon as the editor terminates. But, if
you invoke MS-DOS, and then create the PAM.ALM file, you must "exit"
to PAM so it can see the file.

Also, the alarm must be set for at least 2 seconds in the future. If you set an alarm for
12:00, and set the time to 11:59: 59, you will get an alarm at 12: 0 1, since PAM takes
more than a second to set the alarms. If you set the time to 11: 59: 58, you will get an
alarm at 12:00, as expected.

10.6 Autoanswering: PAM and Ring Interrupts
Both the internal modem and an external modem connected to the serial port can
generate "ringn interrupts when they are called by another phone or computer. PAM
handles these interrupts, and allows a batch file to be run when a ring interrupt is
generated. When the system detects a ring interrupt, an Int 4Bh (serial) or Int 42h
(modem) is performed, depending on which device is generating the ring signal. PAM's
Ring Interrupt Service routine is then invoked. The routine makes a ringing sound with
the beeper, and sets a flag for the rest of PAM indicating that a ring has occurred.
If a ring occurs while PAM is running, PAM will attempt to execute a file named
AUTOANSR.BAT. This file must be in the root directory of drive A (the Edisc), and if
it is present it is executed just as if it had been typed on the command line. It can do
anything a standard MS-DOS batch file is allowed to do. When it terminates, PAM is
restarted.

PAM - The Personal Application Manager

10-17

10

If the ring interrupt occurs when PAM is not running. such as during the execution of
an application. the ringing Bound will occur. but no other action will be taken. PAM
will ignore any rings that occur while it is not running. If a ring interrupt occurs while

the machine is in the sleep state. it will wake up. If it is in PAM. then the
AUTOANSR.BAT file will be executed if possible. If PAM is not running. the machine
will act as if it had be awakened by a key.

~

}

1 o. 7 The Battery Fuel Gauge
The current status of the "Battery Fuel Gauge" is displayed for the user on the main
PAM screen. A value of 100% represents 2.5 amp-hours, the full capacity of the
battery. The PPU estimates and maintains this variable. No actual measurement of the
battery capacity is made by the PPU; instead, a value is calculated based on the needs of
particular circuits and their status. When no recharger is connected, the PPU
decrements the "Battery Fuel" value at various rates that correspond to the estimated
current that the computer is drawing from the battery. A series of constants is
provided which represent battery current drain for the computer when it is in sleep
mode, awake mode, when the serial interface is on, when the modem is on, when the
recharger is plugged in, and when a particular plug-in module is installed. (For
additional information on the battery fuel gauge. refer to appendix B of Using the
Portable PWS.)

There is a system service (Int SOh) that should be used by a plug-in module driver to set
the power consumption level of the plug-in.

10-18

PAM - The Personal Application Manager

~

)

10

1 0.8 PAM Help Facility
10.8.1 Installing PAMHELP.COM
PAM allows an optional on -line help file to be installed in the system. Whenever the
environment is built or the discs are searched for PAM.MNU files, PAM will look for a
file named PAMHELP.COM. Not all discs are searched for this file, however.
PAMHELP can reside on only a plug-in ROM or the Edisc (drive A). The plug-in
ROMs are searched in the order they appear in the directory of B:, so if there are two or
more PAMHELP files on the ROMs, the last one found will be the one used by PAM.
After the ROM disc is searched, and whenever the external discs are read, drive A (the
Edsic) is examined. If there is a PAMHELP file on the Edisc, it will take precedence
over any ROM-based help programs.

10.8.2 After PAMHELP.COM Is Installed
When a PAMHELP file has been found, the aD function key, which is normally
blank, will have a "Help" label. On almost every PAM screen, the Help key will be
visible. If the user presses this key, the last PAMHELP.COM file found will be executed
by PAM. The execution of PAMHELP differs slightly from the normal application or
command invocation. PAM does not "shrink"; rather, it remains resident and executes
COMMAND.COM as a subprocess, with a parameter of PAMHELP.COM. Note that this
imposes a restriction on the minimum system memory size in which the help program
can run - the system must have at least 92K of RAM allocated to memory. The 80K,
84K, and 88K systems will not allow PAMHELP to run--the execution will fail even
before PAMHELP.COM is loaded.
When PAMHELP.COM is executed, PAM will pass a parameter to the help program.
This parameter will be an ASCII string of numbers, and represents the particular screen
that PAM was displaying when help was requested. The parameter can be obtained by
the PAMHELP program by examining the PSP parameter area which is located at
address CS:80h. The byte at CS:80h is a count of the number of bytes in the parameter,
and the bytes themselves begin at address CS:8Ih. (For more information about the PSP
and parameters, refer to the MS-DOS programmer's reference). Table 10-2 lists all
possible values for the parameter and the screen that corresponds to each value.

PAM - The Personal Application Manager

10-19

10

Table 10-2. PAMHELP.COM Parameters

Parameter
0

4
5
6
7
8
9

10
11
13
14

Screen

The Main PAM screen
File Manager Print File/Dir
File Manager Delete
File Manager Make Dir
File Manager Choose Dir
File Manager Format
File Manager Copy
File Manager Rename
Time and Date Configuration
Datacom Configuration
System Configuration

Codes 1, 2, 3, and 12 are currently unused.
The PAMHELP.COM program is responsible for setting up its own user interface. It can
do whatever it likes to the system, but it must restore the system to the state listed above
under "PAM Internal State"
When the help program is executed, the system is in the PAM internal state, and it must
be in the same state when the program terminates. If it isn't, PAM will not function
correctly until it is restarted.

10-20

PAM - The Personal Application Manager

10

10.9 Bypassing PAM With COMMAND.COM
If you wish to replace PAM with COMMAND.COM so that the Portable PLUS will
power up as an elementary MS-DOS machine) create a CONFIG.SYS file on drive A
that contains the following line:

SHELL=B:\BIN\COMMAND.COM /P

B:\BIN

This instructs MS-DOS to use the COMMAND.COM (located on drive B:) as the new
shell. To use something other than PAM or COMMAND.COM as your shell) create a
CONFIG.SYS that has the appropriate SHELL command in it. (Refer to liThe
CONFIG.SYS Filell in chapter 11.) Note that any program that is to be used as a shell
has to provide some additional functionality that is not usually found in applications.
Consult the MS-DOS programmer)s reference for more details.

~

"
Note

Whenever the shell is changed from the default (PAM)) the system will not
be configured as specified in the PAM System Configuration and Datacom
Configuration menus.

PAM - The Personal Application Manager

10 - 21

Boot Sequence Options
11. 1 Introduction
The Portable PLUS was designed as flexibly as possible to allow for changes in the
future without requiring a new BIOS. Several hooks were placed in the boot process to
provide additional features or to replace the boot process completely. The various hooks
into the system are summarized below in the order in which they occur during the boot
sequence.
• Boot into the built-in diagnostics if the (Shl f t )( Ex tend cha r) aD key
combination is pressed.
• Recover from sleep mode.
• Execute boot code from the ROM in ROM Slot 7 of the drawer underneath the
key (either full or half bank) before any system RAM is changed. (AX c 0)

aD

• Execute boot code from the Configuration EPROM before any system RAM is
changed. (AX 0)
51

• Execute boot code from the ROM in ROM Slot 7 (either full or half bank) after the
hardware initialization is completed by the BIOS. (AX m 1)
• Execute boot code from the Configuration EPROM after the hardware initialization
is completed by the BIOS. (AX c 1)
• Search for the file CONFIG.SYS on the ROM in ROM Slot 7 and if found) boot
MS-DOS 2.11 using this file.

,.,--

If a CONFIG.SYS file was not found in ROM Slot 7) boot MS-DOS 2.11 searching for
a CONFIG.SYS on the default drive.

• PAM searches and executes the file AUTOEXEC.BAT if found on ROM Slot 7.

Boot Sequence Options

1 1-1

11

• If an AUTOEXEC.BAT file was not found on ROM Slot 7) PAM searches and
executes the file AUTOEXEC.BAT if found on drive A:.

11.2 Boot Sequence
11.2.1 Built-In Diagnostics
The built-in Diagnostic routines are accessed by the user by pressing the
(Shlft)( Extend char )CfI) key combination with the display turned off. The
instructions to exit the built-in diagnostics are provided on the display and will result
in a reset to the cpu.

11.2.2 Recover From Sleep
The Portable PLUS has a power-save mode which will turn off the display and cut
power to the CPU. This is initiated by calling the Sleep Interrupt (Int SSh) or the
Conditional Sleep Service (Int SOh). When waking from sleep, the BIOS recovers from a
sleep state to the state that it was in before the sleep was initiated. The word stored iA
RAM at 40h:O is loaded into the Stack Pointer and the word at 40h:2 is loaded into the
Stack Segment before a far return is executed.

11.2.3 ROM Slot 7 Boot Code Before Changing RAM
There is a designated ROM position in the HP 82982A Software Drawer which has
special considerations by the BIOS and PAM. This ROM position is referred to as ROM
Slot 7 and can be indentified by the user by holding a ROM drawer while facing the
connector. ROM Slot 7 is in the lower-right-hand corner of the drawer. (Refer to
chapter 9 for a description of the plug-in ROMs.)
The BIOS sets up a stack at the end of display RAM, disables all plug-in cards and reads
the card IDs for future use. The display RAM is used for several steps of this process
and must be initialized before the LCD is turned on. System RAM has not been
touched since the reset.
If the HP 82984A is plugged into the slot under the CITJ key and the ROM in ROM
Slot 7 contains executable boot code (indicated by the ROM status byte) the ROM
address 90030h through 901FFh is copied into display RAM at address BOOOOh. This
1 1- 2

Boot Sequence Options

~

}

code is called via a far call with AX;:: 0 to indicate that the system RAM has not been
modified since the reset. If the ROM in ROM Slot 7 is only a half bank, the code is
copied into the display RAM byte by byte, throwing away the unused low or high bytes.
If there are two half bank ROMs in ROM Slot 7, the low address ROM (in the corner) is
treated as the ROM in ROM Slot 7.
The executable code may then take over the boot process completely or it may do a far
return to the BIOS boot code which will continue booting the system.

11.2.4 Config EPROM Boot Code Before Changing RAM
The configuration EPROM has a boot code status byte which indicates if it contains
executable boot code and the length and starting address of the boot code. (Refer to
appendix C for a listing of the configuration EPROM.) If there is boot code, it is copied
into display RAM at address 80000h. This code is called via a far call with AX ;:: 0 to
indicate that the system RAM has not been modified since the reset. The stack pointer
is still positioned to the end of display RAM.
The code may then take over the system or do a far return to the BIOS to complete the
boot.

11.2.5 ROM Slot 7 Boot Code After Some Initializa tion
The boot code in ROM Slot 7 is given another oppurtunity to take over the system after
the BIOS has completed the hardware initialization and set up some of the system
interrupts. The following events occur before the ROM boot code is called again.
• Download the BIOS RAM code and jump into RAM to execute.
• Disable all hardware interrupts (1LK 5, PPU).
• Initialize interrupt vectors 0'- IFh and 40h - 5Fh to an IRET instruction.
• Initialize interrupt vectors for sleep, low battery, dead battery, system services and
the hardware interrupt (Int OFFh).
("'" • Initialize the LCD contrast if the reset occured due to the reset button being pushed
or the contrast key being held down for several seconds.

Boot Sequence Options

1 1- 3

11

• Initialize the PPU power load constants.
11

• The current country pointer is initialized from information provided in the
Configuration EPROM.
The same process of copying the executable code into display RAM occurs but this time
AX::: 1 to indicate that some system initialization has occurred and the system RAM
has been modified.

11.2.6 Boot Code From the Config EPROM After Initialization
If there is boot code in the configuration EPROM, it is given control again after the

memory management initializaton. The boot code is copied into display RAM using the
method described earlier. This time AX = 1 to indicate that some of the system has
been initialized and the system RAM has been modified. At the time of the call, the
DX register contains the size of system memory (not including the Edisc) in paragraphs.
When (and if) this call returns, the size of system memory is modified to the value
returned in DX to provide a mechanism of grabbing some RAM that is outside both the
Edisc and the MS-DOS system.

11.2.7 Boot Using the CONFIG.SYS on the ROM in ROM Slot 7
If we have made it this far, then the operating system to be booted is MS-DOS 2.11.
MS-DOS will search and use a CONFIG.SYS file, if found, on ROM Slot 7.

11.2.8 Boot Using the CONFIG.SYS on the Default Drive
If a CONFIG.SYS file was not found in ROM Slot 7, then the default drive is checked

for a CONFIG.SYS file. The default drive is usually the Edisc, A:. There are two ways
to change the default drive to the ROM disc, B:. If the boot occurs by pressing the
(Shl f t )rnmIJ( Ex tend char)( Break) key combination then the default drive is B:.
When booting with a corrupt Edisc, the user has the option of reformatting the Edisc
and booting from A: or continuing with the corrupt Edisc and booting from B:.

1 1- 4

Boot Sequence Options

11.2.9 PAM Executes AUTOEXEC.BAT From ROM Slot 7
11
If the shell was not changed, the default shell PAM will be booted. PAM looks on the
ROM in ROM Slot 7 for the file AUTOEXEC.BAT. If this file is found. PAM executes
COMMAND.COM to run the batch file at boot.

11.2.10 PAM Executes AUTOEXEC.BAT From Drive A:
If there is not an AUTOEXEC.BAT file on the ROM in ROM Slot 7, drive A: is checked
for the batch file. If found. PAM executes COMMAND.COM to run the batch file at
boot.

11.3 The CONFIG.SYS File
Every time the system is booted) MS-DOS searches for a configuration file named
CONFIG.SYS. The first directory searched is in the special ROM position, ROM Slot 7.
If this directory is not found. the default directory (either A: or B:) is then searched.
The configuration file is simply an ASCII file that has certain commands for MS-DOS
boot. The following commands can be included in the CONFIG.SYS file to alter the
default state of the system after booting:
Defaults:

BREAK:
BUFFERS:
FILES:
SHELL:

OFF
2
10

B:\BIN\PAM.COM

=

~

\

Break

The Break command controls when MS-DOS looks for "C to break out of an executing
program. When it is set to Off, the check is made only during certain MS-DOS calls
(console input, output among others). If Break is set to On, every time MS-DOS is
called, the check will be made.

=

Buffers

This is the number of MS-DOS buffers that are allocated at boot. A buffer is used by
MS-DOS as a temporary transfer area when reading from or writing to a disc. The size
of memory used by MS-DOS is increased by 1040 bytes for each additional buffer.
Boot Sequence Options

1 1- 5

11

Device = 
The Device command is used to install the device driver  into the system at
boot. The driver must be in the MS-DOS driver format specified in the Programmer's
Toolkit.
Flies = 
This is the number of open files that system calls (Int 2Ih) 2Fh through SFh can access.
The size of memory used by MS-DOS is increased by approximately 40 bytes for each
file opened above 10.
Shell = 
The shell command specifies that execution begins with the shell (top-level command
processor) in . To boot using COMMAND.COM as the shell, enter the
following line in a CONFIG.SYS file.

SHELL-B:\BIN\COMMAND.COM B:\BIN /P
This command sets the shell to COMMAND.COM. The B:\BIN argument tells
COMMAND.COM where to look for itself when it needs to re-read from disc. The IP
parameter tells COMMAND.COM that it is the first program running on the system so
that it can process the MS-DOS EXIT command.
Whenever the shell is changed from the default, PAM, the system will not be configured
as specified in the PAM System Configuration and Datacom Configuration menus.
Example: A CONFIG.SYS file might look like

BREAK=ON
FILES=14
DEVICE=B:\BIN\AMIGO.SYS
SHELL=B:\BIN\COMMAND.COM B:\BIN /P

11- 6

Boot Sequence Options

~ 12

Modem Interface

1 2. 1 Overview
The optional modem implements commands and responses that enable it to perform the
most common modem functions. The commands are a superset of the Hayes
Smartmodem command set. Many software packages that use the Hayes Smartmodem
are able to operate with the optional modem and use its capabilities to full advantage.
The following paragraphs give an overview of the operation of the modem. Detailed
information about commands and responses are presented later.

12.1.1 Command Mode and Data Mode
The modem provides two modes of operation: Command Mode and Data Mode. In
Command Mode, the modem is ready to receive and execute commands from the
mainframe or to auto-answer an incoming phone call. In Data Mode, the modem can
pass data only from the mainframe to the phone line and from the phone line to the
mainframe. The modem will not treat any of the data as commands--it ignores the
data as it passes the data on through.
The modem automatically moves into Data Mode when it has established a valid data
connection with another modem. This occurs when the modem answers an incoming
call and successfully handshakes with the calling modem, or when it places a call and
successfully handshakes with the answering modem. (Note that if a command is
followed by a semicolon (;), the modem will always remain in command mode.)
The modem can also be placed into Data Mode by the execution of the ATO command
(go on -line as the originating modem) or the ATA command (go on-line as the
answering modem) if the ensuing handshake is successful.
The modem will return to Command Mode any time carrier is lost. (Loss of carrier can
be caused by severe noise on the line, the remote modem turning off carrier, or a break
in the connection.) It will also return to Command Mode if an "Any Key Abort" (AKA)
command is executed, or if the modem is reset.

Modem Interface

12- 1

12

An AKA command occurs if any byte of data is sent to the modem while it is trying to
dial a number or handshake with another modem, but before it has entered into Data
mode. When an AKA is executed, the command in progress is terminated immediately
and the modem returns to Command Mode. For example, if the command to dial a host
computer has been issued but the data connection has not yet been established and the
mainframe sends another byte to the modem, the modem will terminate the call, hang
up the phone, and return to Command Mode.

~

The one other way to return to Command Mode from Data mode is to assert the RCM
(Return to Command) line to the modem. This is used when you want to change some
setting in the modem without breaking the data connection. (All other ways of returning
to Command Mode break the data connection.) After the RCM line is asserted, the
modem issues the "OK" response, returns to Command Mode, but maintains the data
connection. You may then return to Data Mode by issuing the ATO or ATA command,
as appropriate. The state of RCM has no effect when the modem is in Command Mode.
Note that the RCM function replaces the "Stop Action" sequence (pause +++ pause) of
the Hayes-compatible modems. (The S2 and S12 registers used by Hayes-compatible
modems for the "Stop Action" sequence exist in the modem, but they have no effect on
modem operation.) Although the modem itself doesn't implement the IIStop Action"
sequence, the AUX driver does detect this sequence and asserts the RCM line--so the
"Stop Actionll sequence can be used by the user.

12.1.2 Commands
All commands to the modem must be preceeded by capital-A capital-T (AT) and must
be followed by a carriage return (CR). The only exception to this rule is the "repeat last
command line" command, which is invoked by a capital A slash (AI) and executes
immediately upon receipt of the slash character.
Multiple commands may be given to the modem in one command line. A command line
consists of one command prefix (AT), followed by up to 40 additional characters (which
may be either upper or lower case), and ended with a carriage return (CR). If more than
43 characters are received (the AT plus 40 more plus the carriage return), the modem
ignores all of the characters and issues an error message.
If an AT is given, followed immediately by a (CR) (no command given), the modem
returns the "OKII response. This can be used to test if the modem is functioning in
Command Mode.

1 2- 2

Modem Interface

.~

The backspace character has the effect of erasing the most recent character received by
the modem. However) the backspace will not erase the AT command prefix once it has
been received.

12.1.3 Baud Rate Selection
The baud rate selection for the modem is handled by the modem itself. When the AT
command prefix is sent, the modem samples the incoming data stream and
automatically determines the baud rate and the parity of the AT command prefix data.
The modem then assumes that the remainder of that command line will be sent at the
same baud rate. This automatic sampling of the baud rate occurs for every command
line prefix (AT). Thus) it is possible to issue one command line at 1200 baud and then
issue the next at 300 baud without doing anything to the modem in between. (Of
course, the mainframe baud rate must be changed.)
The baud rates that the modem will recognize while in Command mode are:
• 110 bps.
• 150 bps.
• 300 bps.
• 1200 bps.
The modem will not recognize any other baud rates while in Command mode. However,
once a data connection has been established for Bell 103J mode, it will receive and
transmit at 0 through 300 bps in a transparent manner.
If the mainframe is talking to the modem at one baud rate and the phone line data
connection is made at a different baud rate, there is a speed compatibility problem.
When this occurs, there are three different ways the modem will react, based on the
response mode selected.
If the minimum response set has been selected (XO command), the modem will issue the
"NO CARRIER" error) hang up the phone, terminate the handshake) and return to
command mode. The modem will make no attempt to harmonize the transmission
speeds.
In the extended response mode (X I command), the modem will issue the IICONNECT"
response when a 300 baud connection is made or it will issue the "CONNECT 120011
Modem Interface

12- 3

12

response when a 1200 baud connection is made. It then enters the Data Mode. In this
case, the user at least knows what type of connection has been established and can take
intelligent action based on that knowledge.

12

In the full response mode (X2 command), the modem will notify the mainframe that a
speed mismatch is in existence by issuing the "SET 1200" response (when the connection
is at 1200 bps and the mainframe has been talking to the modem at 300 bps or less) or
else the IISET 300" response for the opposite case. The modem then remains in the
Command Mode while also maintaining the data connection which has been established.
The user (or system) may then change the baud rate appropriately. and then issue an
ATA (or ATO) command to enter the Data Mode at the new baud rate. Alternately,
any other command could be issued to the modem, including the command to break the
connection.

~

12.1.4 Transmission Settings
In addition to the baud rate, these additional transmission settings are recognized by the
modem:
• Parity: Odd, even, or none (must be "none ll at 1200 bps and 8 data bits).
• Data Bits: 7 or 8 bits.
• Start Bit: Must be 1 bit.
• Stop Bits: 1 or 2 bits.
Note that even if the baud rates match for the mainframe and phone, it's still possible
for the number of data bits, start bits, stop bits, or parity to be out of sync. Any
mismatch in these areas can sometimes result in garbled data.

12.1.5 Auto-Answering
The modem will auto-answer an incoming phone call if register SO is not equal to 11011.
After the number of rings specified by register SO have been received, the modem will
answer the phone and attempt to establish a valid data connection using the auto-speed
selection specified for Bell 212A modems.
If the modem has just been powered up and has not received an AT since power up, it

will still auto-answer and establish the data connection at 1200 bps. However, it will
12- 4

Modem Interface

~

not issue any response to the mainframe, including the "RING" responses normally
issued prior to answering the phone. It will simply start passing data using default
parameters (1200 bps, 7 data bits, even parity, 1 stop bit). There will be no response if
the connection is interrupted. No response occurs until an AT is received in Command
mode.
If the modem has received an AT since power up, then it will issue the appropriate

12

responses as described in detail in other sections of this document.

"
Note

If the modem thinks that an incoming call is being received (S 1 '# 0), it will
not allow a dial (ATD) or an originate (ATO) command to be executed.
This is significant when accessing some of the dial-back security systems.
To get around this, set the modem register S1 to zero before dialing
(ATS 1=ODnnnn, where nnnn is the dialing sequence).

12.1.6 Default State of the Modem
Following a power-on cycle, a hardware reset (via MRESET*), or the execution of an
ATZ (software reset) command, the default state of the modem is as follows:
• Command Mode. The modem will be "on -hook" and in Command Mode. This means
that the modem is ready to recieve and execute commands from the mainframe or to
answer an incoming phone call--whichever occurs first.
• Full Response Set. The modem's full response set is available for communication with
the mainframe. This response set is a superset of the Hayes capabilities. This state is
the same as if an ATX2 command had been issued to the modem.
• Verbose Response Mode. The modem will communicate to the mainframe in its
verbose mode. This means that all responses will be English words preceded and
followed by carriage return, line feed (CR LF). This state is the same as if an ATV 1
command had been issued to the modem.

~.

Echo Commands On. The modem will echo to the mainframe any bytes received
from the mainframe while in Command Mode. This is the same as if an ATE 1
command had been sent to the modem.

Modem Interface

12- 5

• Tone Dialing. The modem defaults to tone dialing. All dial commands will be
executed using tone dialing unless the lip" (pulse) dialing parameter is used in the dial
command. (Refer to "Modem Commands" for more details.)

12

• S-Register Defaults. All of the S-registers have default values. Refer to liS-Register
Description" for the details of each register and its default value. Note that the S18
register is not affected by a software reset (ATZ command); it is only re-initialized
by a hardware reset.
• Baud Rate Defaults. The modem has the ability to sample the incoming data from
the mainframe and automatically determine the baud rate and parity of the
mainframe system. Consequently, the mainframe need not worry about the baud
rate settings of the modem under most circumstances. There are two exceptions.
First, if the modem has just been powered up (or reset), no commands have been sent
from the mainframe to the modem, and the modem auto-answers an incoming call,
then the modem defaults to 1200 bps, 7 data bits, even parity, and 1 stop bit. The
mainframe must be set to the same transmission characteristics to avoid garbled
communication.
Second, if the modem answers an incoming call and the calling modem is set at a
different baud rate than the caller, a speed mismatch will occur. There are several
possible results of a speed mismatch. Refer to "Baud Rate Selectionll above.
All of these defaults can be overridden by issuing the appropriate commands to the
modem, as discussed below. (For example, ATX 1VOEO sets the modem to the extended
response set, terse response mode, with command echoing disabled.)

1 2.2 Modem Commands
The modem implements a set of "smart-modem" commands. Table 12-1 presents
information about each of the commands. The commands can be executed only in
Command Mode.
Each command line must begin with "AT I and must end with a carriage return (CR).
Multiple commands may be issued in the same command line.
If a command that requires a numeric parameter is issued without one (for example,
ATE(CR», the modem interprets it as selecting the "Oil parameter.
1 2-6

Modem Interface

~

If the parameter for a command is outside the range specified, the "ERRORII response
will be returned, no action will be taken on that command, and the rest of the
command line will be ignored.
If a command line contains invalid characters, the modem will simply ignore those
characters. (For example, ATWYK(CR) will result in an 1I0KII response but no other
action.)

12

Whenever the modem attempts to go off-hook (A, D, H, and 0 commands), it will
always check that a valid telephone line is connected. If there isn't a valid telephone
line, the "LINE?" error response will be sent to the mainframe in the X2 response mode;
the "NO CARRIERII response will be sent in either XO or X 1 response mode.
Table 12-1. Modem Commands
Command
Answer
A

Description

This command is most useful when auto-answer has been disabled
(SO:::O), the local phone is ringing, and you want the modem to answer.
Upon receipt of this command, the modem goes off-hook and puts the
answer tone on the telephone line to initiate handshake with the remote
modem. When a successful data connection has been established, the
modem sends the "CONNECTII or "CONNECT 1200" response to the
system and enters Data Mode.
If no data connection is established within 17 seconds, the modem hangs
up the line, issues the "NO CARRIER" respone, and remains in
Command Mode.

Dial

o

This command dials an outgoing call. The command must be followed by
other characters that indicate the number and other options. Refer to
"Dialingll section which follows this table.

Modem Interface

1 2-7

Table 12-1. Modem Commands (Continued)
Command Echo

EO

No echo.
Echo (default).

E1

This command controls whether or not commands sent to the modem
are echoed back to the mainframe. EO (or E) disables this echo function
while E 1 enables it.

12

Data Echo
FO
This command is not implemented in the modem--transmit data is

never echoed back to the mainframe. Entering an FO or Fl command
generates an "OKII response, but the effect is a NOP.

Fl
Hang Up

HO
HI
H2

Hang up the phone (go on -hook) (default).
Pick up the phone (go off-hook),
No effect.
HO (or H) causes the modem to go on-hook (hang up the phone). HI
causes the modem to go off-hook but remain in the Command Mode.
H2 has no function but does return an 1I0K" response.

1 2 -8

Modem Interface

Table 12-1. Modem Commands (Continued)
Interrogate
10
Modem identity.
Modem status.
11

I or 10 causes the modem to send a modem ID string to the mainframe.
This string varies depending on the response set chosen. In X0 or Xl,
the string is compatible with the Hayes 5martmodem:
(delimiter) 1 2 3 (delimiter)

In X2, the string is six bytes long:
(delimiter) H P P C (space) r (delimiter)
where r is the software revision level (A).
11 causes the modem to return a status string of the form
(delimiter) s s s s (delimiter) I (delimiter) p (delimiter)

where ssss is the baud rate (0110, 0150, 0300, or 1200), I is the
character length (7 or 8 data bits), and p is the parity ("0" odd, "Ell even,
and "N" none).
The delimiter is CR in terse mode and CR LF in verbose mode.
Monitor
MO
Ml
M2

This command isn't implemented in the modem because the modem
doesn't have a speaker. The command is treated as a NOP and simply
returns the "0KlI response.

Originate

o

~

(

.'.".

The 0 command attempts to place the modem into Data Mode as the
originating (dialing) modem. The modem first tests for a good telephone
line and then goes off -hook. In the case where the modem has been
forced into Command mode by use of RCM during a data connection, 0
returns the modem to the Data Mode.
If the modem is on-hook, the 0 command causes the modem to go
off-hook and attempt to handshake with a remote modem. If the data
connection is not made within the time spceified by register 57, the
modem will go back on-hook and send the appropriate response message
to the mainframe.

Modem Interface

12-9

12

Table 12-1. Modem Commands (Continued)
Quiet Responses
QO
Enables responses (default).
Q1
Disables responses.

Q or QO enables the modem to send responses. Ql prevents the modem

12

from sending any responses. Responses include information returned in
reply to a command) such as I or Sr1.
Reversel Answer
R
Entering an R in a dialing sequence or in the same command line as

an 0 command causes the modem to handshake as the answer modem
instead of as the originate modem. This reversal lasts only for
the duration of that specific data connection.
Display S-Register
Sr ?
This command causes the modem to return the current contents of the
S-register specified by the r parameter. The value is sent as a
three-digit ASCII-coded decimal number (000 through 255), most

significant digit first, followed by an "0K" response. The r parameter
may have a value from 0 through 18. If a value higher than 18 is
given, an "ERRORII response is sent to the mainframe.
Set S-Register
S r 1:1 x
This command sets the S-register specified by the parameter r (0
through 18) to the value x. All S-registers have default values that are

set at power on. Loss of power or a hardware reset will return all
S-registers to their default values. The Z command will reset all
S-registers except the S 18 register. This command causes the lIOK"
response to be sent to the mainframe upon its completion.
Entering an r value greater than 18 or an x value greater than allowed
for the specific register (refer to liS-Register Description" below) will
cause the "ERROR" response to be sent to the mainframe and will leave
the S-register unchanged. The x value entered must be the
ASCII-coded digits of a decimal number.

1 2 -1 0

Modem Interface

Table 12-1. Modem Commands (Continued)
Verbosity

VO
Vl

Terse mode.
Verbose mode (default).
V or VO causes the modem to send terse responses to the mainframe
(single character) preceded and followed by a delimiter, which is defined
as carriage return (CR). V 1 allows the modem to send verbose responses
to the mainframe (English words) preceded and followed by a delimiter,
which is defined as carriage return, line feed (CR LF).

Vocabulary
XO
Minimum response set.
X1
Extended response set.
X2
Full response set (default).

X or XO limits the modem responses to the minimum response set. This
provides Hayes Smartmodem 300 compatibility. X 1 limits the modem
responses to the extended response set. This provides Hayes
Smartmodem 1200 compatibility. X2 allows the modem to use the full
response set, including tone detection, call progressing, and baud rate
compatibility responses.
Responses are described under "Modem Responses below.
ll

In X2 mode, the modem always tries to sense a dial tone before
attempting to dial. If a connection already exists, the modem will issue
the IINO TONEIl response and hang up. This behavior may cause
difficulty if the modem is used with security systems which require that
an access code be IIdialed" after an initial phone call has been made.
Setting the modem to either XO or X 1 mode will solve this problem.

Note:

Zap

Z

This command resets S-registers 0 through 17 to their default values,
reinitializes all other defaults, ensures that the modem is on-hook, and
places the modem in Command Mode.

Modem Interface

1 2 -1 1

12

Table 12-1. Modem Commands (Continued)
(Backspace)

Not a command, the backspace character deletes the previous character
in the command line received by the modem. It will not, however,
delete the AT command line prefix once the AT has been received.

" '..
. ,

12

1 2.3 Dialing
The first D command in a command line causes the modem to test for a valid phone
line, go off-hook, wait for the time specified by register 86, then proceed to dial. If
tone detection is enabled (X2 mode), the modem also waits for the dial tone before
dialing. If the 56 time is exceeded before dial tone has been detected, the call is aborted
and the "NO TONE" response is issued.
If the modem thinks an incoming call is being received (5 I # 0), a D command will
cause an "ERROR" reponse to be issued. If you want to dial under these circumstances
(after a ring is received but before a data connection is made), first set 51 to zero and
then dial (AT5l c ODnnnn, where nnnn is the dial sequence).

~

J

If a data connection already exists (such as if the modem has answered an incoming call
and established carrier), a D command will cause an "ERROR" response to be issued but
will not interrupt the data connection.
Dialing sequences always begin with a D and end with either a semi-colon (" ; ") or a
carriage return (CR).
The ASCII digits "0" through "9", the pound sign "11", and the asterisk "*" can all be
dialed. (The "11" and "*" are ignored during pulse dialing.)
The "D", "R", "T", IIpll, II , ", and II; II characters can also be used in a dialing sequence. In
X2 mode, "D" can be used within a dialing sequence to require additional dial tone
sensing. "T" selects tone dialing. "p" selects pulse dialing ("11" and 11*" are ignored). "R" is
the reverse command and is described in the previous table. A II , II inserts a pause of the
length specified in the 58 register. Almost any other punctuation character is ignored.
Note that once a dialing mode has been set (either tone or pulse), it becomes the default
mode for all subsequent dial commands. The new default remains in effect until the
1 2 -1 2

Modem Interface

~

modem is reset or another liT" or "F parameter is issued as part of a dial sequence. The
modem defaults to tone dialing.
I

Note also that in order to set the dialing default, the "T" or "pll parameter must be
issued outside of the dial command string. For example, ATPD7572000 sets the default
dialing mode to be pulse dialing and pulse dials the number. On the other hand,
ATDP7 572000 leaves the default dial mode unchanged but pulse dials this one number.
As a final example, assuming that you are in X2 mode, ATTDP9DPll6D7572000
causes the default dial mode to be set to tone dialing, pulse dials 9, waits for another
dial tone, pulse dials 116, waits for another dial tone and tone dials 7572000.
A II ; " causes the modem to remain in Command Mode after dialing, instead of
automatically trying to handshake with a remote modem and then going into Data
Mode. The 0 or A commands could then be used to complete the data connection. If
the full response set (X2) has been selected, the modem will report the telephone line
status (tone sensing) after every dialing sequence ending in a
The";" can also be
used to have the modem auto-dial voice calls when another telephone is connected to
the same line.
II ; II.

1 2.4 Modem Responses
Table 12-2 below summarizes all of the responses the modem is capable of issuing.
Note that all of the XO responses are available when in X 1 mode. Similarly, all of the
XO and X I responses are available when in X2 mode. In other words, each higher mode
simply adds more possible responses to the modem vocabulary. Also note that the call
monitoring responses (BUSY, VOICE, RR) are sent only when the modem aborts a call
bacause it didn't establish a data connection or the modem is told to remain in
command mode through the use of the semi -colon (:).
Each response is preceded and followed by a delimiter. In terse mode, the delimiter is
carriage return (CR). In verbose mode, the delimiter is carriage return, line feed (CR
LF).

Modem Interface

1 2 -1 3

12

Table 12-2. Modem Responses
Terse
Response

Verbose
Response

Condition When Issued

.~

Mode XO
12

0

OK

Normal response to the successful execution of
an internal command line.

CONNECT

Data connection established and Data Mode
entered. In XO (minimum response) mode, this
response means that any valid data connection
has been established. In X 1 or X2 modes, this
response means that only a Bell 103 type (300
bps or slower) data connection has been
established.

2

RING

Incoming call ringing detected.

3

NO CARRIER

Call terminated, data connection lost, and
back in Command Mode. In XO or X1 modes,
this response also means that there isn't a valid
phone line.

4

ERROR

Error in executing a command.

CONNECT 1200

Data connection established at 1200 bps and
Data Mode entered.

6

SET 1200

Mainframe speed set to slow, change to 1200
bps.

7

SET 300

Mainframe speed set to fast, change to 300
bps.

~

Mode Xl

5
Mode X2
(Default)

12-14

Modem Interface

~

Table 12-2. Modem Responses (Continued)

r
;~;

8

TONE

Unrecognized tone on the telephone line.

9

NO TONE

Expected tone not received.

BUSY

Busy tone detected.
12

VOICE

Voice detected on the telephone line.

<

RR

Remote ring: the called nurnber is ringing.

?

LINE?

Telephone line not working or not connected
to the modem.

12.5 S-Reglster Description
The modem stores 19 registers of information that govern the detailed behavior of the
modem. These S-registers (SO through S 18) can be read with the Sr? command and
changed with the Sr=x command. Registers 0 through 17 are reset during power-on, a
hardware reset, or execution of a Z command. Register 18 is reset only at power-on or
at a hardware reset. Table 12-3 summarizes the operation of the S-registers. Note that
"range" and "default" numbers are in decimal and need to be sent to and received from
the modem as ASCII -coded decimal numbers.
Table 12-3. Modem S-Registers
Register

SO

Range
(Default)

0-255 (2)

Description

Rings to Auto-Answer

Sets the number of rings before the modem
auto-answers an incoming call. A value of 0 disables
auto-answer.

Modem Interface

12-15

Table 12-3. Modem S-Reglsters (Continued)

51

0-255 (0)

Ring Count

This register contains the count of how many local rings
have occured. It is automatically reset 8 seconds after
the last ring is detected. When the value in S1 equals
the value in SO, the modem answers the call.

12

52

0-255 (43)

Stop Action Character Code

This register specifies the character that will be
recognized as the "Stop Action" character. The default
character code of 43 corresponds to the 11+11 character.
This "stop action" function is not implemented in the
modem software. Consequently, this register is
effectively a NOP. (Refer to "Overview" above.)
53

0-127 (3)

Carriage Return Character

This register specifies the character that is used as the
carriage return character. The default character code of
13 is equivalent to . . . M.
54

0-127 (0)

Line Feed Character

This register specifies the character that is used as the
line feed character. The default value of lOis
equivalent to "'J.
55

0-127 (8)

Backspace Character

This register specifies the character that is used as the
backspace character. The character value must be a
decimal number from 0 to 32, or 127. Backspace is
disabled if the value is greater than 127 ( I 28- 255). The
default value of 8 is equivalent to . . . H.

1 2 -1 6

Modem Interface

~

Table 12-3. Modem S-Registers (Continued)

S6

2-255 (2)

r-'

Wait Time for Dial Tone

The modem will wait to sense the dial tone before
dialing. If the dial tone is not detected within the
number of seconds specified by this register, the dialing
sequence is aborted.
S7

1-255 (30)

Wait Time

The modem will allow the number of seconds specified
by this register to establish a valid data connection.
When the time expires (or an "Any Key Abort" occurs),
the modem goes back on-hook and issues the appropriate
"NO CARRIER", "BUSY", "VOICE", or "RR" response.
S8

0-255 (2)

Pause Time for Comma

When a comma (",") is encountered in a dial command
sequence, the modem pauses for the number of seconds
specified by this register. Multiple commas result in
multiple pauses.

~
S9

0-255 (0)

Reserved

S10

3-255 (3)

Carrier Off Hang-Up Delay

When carrier is lost, the modem will wait for the time
specified by this register before going on- hook. (Each
unit represents 0.1 second.) While waiting, the modem
will not send any data, and data received from the
mainframe is ignored, preventing any inadvertent
passage of data into the command line buffer. At the
end of this time, the modem goes on-hook, returns to
Command Mode, and issues the "NO CARRIER" response
to the mainframe.
S11

0-255 (0)

Reserved

Modem Interface

1 2 -17

12

1 2 -1 8

Modem Interface

Table 12-3. Modem S-Registers (Continued)

Sl6

0-2 (0)

r

Local Analog Loopback Control

Local Analog Loopback (LAL) is used as a self-test of
the modem modulation and demodulation circuitry. In
LAL, the modem sends the carrier to itself and echoes
data back to the mainframe. During LAL, all of the
circuitry except the telephone interface, the final output
amplifier stage, and the first input amplifier stage is
exercised.
This register defaults to a value of 0, allowing normal
modem usage. A value of 1 enables LAL. A value of 2 is
a NOP.
During LAL, the modem does not use the phone line and
does not generate any responses to the mainframe.
When LAL is initiated at 1200 bps, there are a few
"spurious" characters output by the modem. This is a
result of the type of encoding used by the Bell 212A
standard. Any test software needs to filter out these
initial bad characters.

~.

Note that while in LAL, sending ATSI6=0 has no effect.
It is treated as data by the modem.

The RCM line may be used to end LAL, reset register
S16, and return to Command Mode.
Sl7

0-255 (0)

Reserved

Modem Interface

1 2 -1 9

12

Table 12-3. Modem S-Reglsters (Continued)

S18

0-2 (0)

EIA Control Signals

Originally designed to dictate the control of the DSR,
CTS, DeDI and DTR lines of an RS-232 interface, this
register affects only the MCARRIER output of the
modem. Values of 0 and 1 enable the MCARRIER
output to follow the actual carrier. A value of 2 forces
MCARRIER to always be true (as for a "dumb"
terminal).

12

This register is not affected by the Z command.

12.6 Hayes Compatibility
The modem is compatible with most communications software written for the Hayes
Smartmodem 1200, but there are some significant differences. These differences are
described below.
Auto-Answer. Unlike the Smartmodem, which defaults to auto-answer on the first
ring or not at all (switch controlled), the modem defaults to auto-answer on the second
ring. This allows extra time to answer manually if desired. You can set the
auto-answer to occur on any ring from the first to the 255th, or not at all. To match
Smartmodem behaviorl set SO to liD" or "III, depending on the switch setting desired.

The modem has the minimum and extended response sets of the
Smartmodem (XO and X 1). In addition, it has the full response set (X2), which provides
many more features. To fully emulate the Smartmodem, select either the XO or Xl
response set.

Response Sets.

The modem commands are consistent with the Smartmodem with
the following exceptions:

Command Set.

12- 20

Modem Interface

• Cn: Amateur radio application isn't supported.
• Fn: Data echoing isn't supported.

~.

• H2: Special off- hook isn't provided.
• 10: Modem ID is sent in full response mode.

12

• I 1: Status of transmission settings is provided.
• X2: Full response set is provided.
• EIA: Hardware control of the EIA interface signals CTS, DTR, DSR, DCD isn't
provided.
Configuration Switches. Unlike the Smartmodem, the optional modem provides no
configuration switches. In most cases, the equivalent capability is provided by
S-registers and commands, as shown below. (Remember that the modem returns to the
default values when turned off, hardware reset, or issued a Z command.)
Smartmodem Switch

Modem Equivalent

Switch 1: DTR Control

DTR not implemented in hardware.

Switch 2: Response Type
Down
Up

V Command.
VO: Terse response mode.
V I: Verbose response mode.

Switch 3: Response Inhibit
Down
Up

Q Command.
QO: Responses sent.
Q 1: Responses inhibited. (After

power-on, no responses are sent
until a command has been
received.)
Switch 4: Command Echo
Down
Up

ECommand.
EO: Commands not echoed.
E 1: Commands echoed.

Modem Interface

1 2 - 21

Switch 5: Auto-Answer
Down
Up

12

S- Register O.
SQ;:O: Auto-Answer disabled.
S111:1: Auto-Answer first ring.
Default: Auto-Answer second ring.

Switch 6: RS-232 Control Signals
Down (CTS, DSR, DCD true)
Up (CTS true; DSR, DCD follow
carrier)

S-Register 18
oeD only signal provided.
S18=0: Mcarrier(DCD) follows carrier
S18::::2: Mcarrier(DCD) always true

Switch 7: A-Lead Control Enable

Always enabled.

Switch 8: Command Recognition

Commands always recognized.

,

~.

1 2. 7 Special Considerations for Programmatic Control
12.7.1 Modem Power-On Problem
When the BIOS turns on the modem (using an I/O control call or sending a character to
the AUX driver via Int 14h), the BIOS does not wait for the response from the modem
before it returns. This means that an application program could potentially try to send a
command to the modem at the same time the modem is sending its response to being
turned on. In this case the command from the application program would not work
(refer to next topic). The fix is to wait for at least 21 milliseconds after the BIOS
returns (1 character + 21 ms after response complete), or to wait for a linefeed
character to be received plus an additional 20 milliseconds.

12.7.2 Ignores Characters While Responding
When the modem is in Command Mode and is sending a response to the BIOS, it will
ignore any incoming characters from BIOS. After the modem completes an action and
issues a response, it is necessary to wait for a minimum of 20 ms before sending it the
next command or data. This wait is caused by the modem·s auto-baud rate sensing
logic.

1 2 - 22

Modem Interface

~,""

'J

12.7.3 Can't Dial Out While Receiving Ring
The modem will not allow you to dial when it is receiving a ring from an incoming call
(51#0). If you try to dial when S1#0 (the modem thinks there is a call coming in), the
modem will return the IIERROR" response. You can trick the modem by setting 51=0
and then dialing (ATS 1cODnnnn, where nnnn is the dialing sequence). This becomes an
issue with some of the "Defenderll type security systems that call you back and yet
expect a certain tone before establishing the connection.

12.7.4 Spurious Extra Characters Generated
When the modem is set up for 8 data bits, 1 stop bit, and no parity, the UART will
occasionally produce an additional character (OFFh) when receiving back -to-back
characters from the host.
A fix for this problem is to ensure that characters sent to the modem are separated by
at least an 8.33-millisecond delay.

12.7.5 Spurious Interrupts at Power-Up
This problem is a concern only if you bypass the AUX driver when doing data
communications (that is, if you write your own driver).
When first powering up the modem, there will be a spurious interrupt generated on the
MCARRIER line and, if there is a phone line connected, the MRING* line. These
spurious interrupts need to be masked out. The MCARRIER interrupt occurs
approximately 2S msec after the MRESET* line is taken high. The MRING* interrupt
occurs immediately after power is applied to the modem.

1 2.8 Directly Connecting Two Modems
The Portable (HP 110) and the Portable PLUS modems sense the DC line current in
order to determine if a "valid" phone line is connected. Therefore it is not possible to
connect two of these modems back-to-back using a simple phone cable. You can create
the needed DC bias voltage by connecting a 4.0-volt DC supply (with AC bypass
coupling) in series with either the tip or ring wire.
This also applies when hooking up a "long haul ll phone line simulator box.
Modem Interface

1 2 - 23

12

J~

I

I

' " .. ." .'.
~

.

-

,

13

.,

'

~

.

Keyboards and Keycodes

This chapter describes the available keyboard language options and lists the
corresponding character code mappings.
Each unit is equipped with one keyboard language option. A corresponding internal
configuration EPROM maps each key location to one character code or a sequence of
character codes. This localized mapping enables the computer to provide operation
that's compatible with many local languages.
The character codes that are generated for each key depend upon the mode of the
CONsole driver: HP mode or Alternate mode. (Refer to IICONsole Driver" IIKeyboard
Modesll in chapter 5.) The tables in this chapter are organized in pairs, showing the
responses in HP mode and Alternate mode.
The first four tables below list the character codes that are generated for keys that are
shared by all keyboard versions. The first two list codes for non -character keys (English
labels are listed; other keyboards use the same key locations). The next two tables list
codes for "commonll character keys.
For each language, the following information is presented:
• A figure showing the keyboard layout.
• A table listing character codes for HP mode--for keys that aren't IIcommon".
• A table listing character codes for Alternate mode--for keys that aren't "common".
The last two tables in the chapter list the "mutedll character codes. Muted keys are
indicated in the main character code tables as 11 __ 11. When one of these keys is pressed,
no character code is generated, but the next key generates a character code according to
the "muted key" table, rather than the main table.

Keyboards and Keycodes

1 3-1

.

.

~ ~':.

-

.

.

-

The following information applies to the character code tables in this chapter:
• All character codes are shown in hexadecimal form.
• A blank entry indicates that no character code is generated and no response occurs.
• Many keys generate more than one character code. The sequences of codes for these
keys are listed in the order they're generated.

13

13 - 2

Keyboards and Keycodes

Table 13-1. HP Mode Character Codes

Ext-

ShiftExt-

CTRL

CTRL

(cursor) (beep)

(beep)

(beep)

1B 71

1B 71 (dsp fcn) (beep)

(beep)

(beep)

1B 72

18 72

1B 72
(ESC r)

(ESC K)

1B 48

1B 48
(ESC K)

(ESC K)

(ESC K)

1B 73

18 73

1B 73

1B 73

18 4A

lB 4A

1B 4A

18 4A

em

18 14

18 74

1B 74

1B 74

18 4C

1B 4C

1B 4C

1B 4C

aD

18 75

18 75

1B 75

1B 75

1B 40

18 40

1B 40

ern

1B 76

1B 76

1B 76

1B 51

18 51

18 51

QD

18 77

CD

18 41

CD

1B 42

English
Keycap Normal

Shift

CTRL

ern

18 70

18 70

1B 70
(ESC p)

(ESC p)

18 71

18 71

1B 72

(ESC p)

ern
em

(ESC q)

(ESC r)

C!!)

(ESC 5)

(ESC t)

(ESC u)

(ESC v)

(ESC w)

(ESC A)

(ESC B)

CB

18 43

G)

(ESC p)

(ESC q)

(ESC r)

(ESC 5)

(ESC t)

(ESC u)

1B 76

(ESC v)

(ESC q)

(ESC r)

(ESC 5)

(ESC t)

(ESC u)

(ESC v)

CTRL
18 70

ShiftExt

Ext

(ESC q)

(ESC 5)

(ESC t)

(ESC u)

(ESC v)

(ESC J)

(ESC L)

(ESC M)

(ESC Q)

(ESC J)

(ESC L)

(ESC M)

(ESC Q)

1B 48
(ESC J)

(ESC L)

(ESC M)

(ESC Q)

18 51

(ESC Q)

18 50

1B 50
(ESC P)

(ESC P)

18 50

1B 50
(ESC P)

(ESC P)

lB 53

1B 41

1B 41

18 56

18 56

1B 56

1B 56

lB 54

18 42

1B 42

18 55

18 55

1B 55

18 55

1B 43

1B 46

18 46
(ESC F)

(ESC F)

(ESC F)

1B 68

1B 68

1B 68

18 68

(ESC S)

(ESC

T)

(ESC A)

(ESC

B)

(ESC w)

(ESC A)

(ESC B)

18 43

1B 44

18 44

18 44
(ESC D)

(ESC D)

*

*

*

*

(ESC D)

(ESC C)

(ESC C)

1B 44

(ESC \I)

(ESC U)

(ESC F)

(ESC

h)

(ESC \I)

(ESC U)

(ESC

h)

(ESC \I)

(ESC U)

1B 46
(ESC

h)

(~S/"Q)

(break)(C-break)(reset)
INT 58h
INT IBh
INT I9h

13/11

13/11

(Enter)

18 64

(~rint)

18 64

(~rint)

NT 53h

("P)

(menu)
INT 56h

(menu)
INT 56h

I(mer6~ )

10

NT 53h

("P)

(menu)
INT 56h

I(men~ )

(~rint)

NT 53h

(menu)
INT 56h

(ESC \I)

(ESC U)

1B 46
(ESC

h)

(numpad)(numpad)(numpad) (numpad)

13/11

*

lB 40

(ESC M)

1B 77

lB 43

(menu)
INT 56h

(ESC L)

18 77

~

CBifiID

(ESC J)

(ESC w)

18 77

(ESC C)

(ESC d)

18 48

(ESC w)

(ESC C)

(ESC D)

(Select)

Shift-

("S/"Q)

(ESC d)

(~S/"Q)

13/11

("S/"Q)

10

(reset)
INT 19h
(~rint)

NT 53h

(menu)
INT 56h

Generates three character codes: 1B 26 50 (ESC & P).

Keyboards and Keycodes

13- 3

13

Table 13-t HP Mode Character Codes (Continued)

English
Keycap Normal
(System) (syst)
INT 57h

CEEJ

18

(ESC)

(ED
13

09

(AI)

(Return)
(Backsp)

13-4

00

(AM)

08

(AH)

ShiftShift
(syst)

INT 57h

CTRL
(syst)

INT 57h

7F

(DEL)

18 69

(ESC

i)

00

(AM)

08

(AH)

Keyboards and Keycodes

18

(ESC)

09

(AI)

00

(AM)

08

(AH)

CTRL
(syst)

INT 57h

7F

(DEL)

1B 69

(ESC i)

00

(AM)

08

(AH)

Ext
(syst)

I NT 57h

18

(ESC)

09

(AI)

00

("M~

08

(AH)

ShiftExt
(syst)

INT 57h

7F

(DEL)

18 69
(ESC i)

00

(AM)

08

(AH)

Ext-

ShiftExt-

CTRL

CTRL

(syst)

INT 57h

18

(ESC)

09

(AI)

00

(AM)

08

(AH)

(syst)

INT 57h

7F

(DEL)

18 69
(ESC i)

00

(AM)

08

(AH)

Table 13-2. Alternate Mode Character Codes

English
Keycap Normal

Shift

CTRL

ShiftCTRL

Ext

ShiftExt

./

ern

aD

aD

em

em
em
ClD
em
CD

CD
CE)
G)

r-..

(Select)



/

?

c
m

c

60
31
32
33
34
35
36
37
38
39
30
20
3D
71
77
79
58
50
5C
61
38
27
7A
60
2C
2E
2F

Shift
7E
21
40
23
24

CTRL

Sh1ftCTRL

00

00

lE

1E

25

c
c
c

c
c
c

5E
26
2A
28
29
5F
2B
51
57
59
7B
70
7C
41
3A
22
SA
40
3C
3E
3F

ShiftExt

Ext
FB
88
40
23
F7
F8
5E
5C
5B

FD
B8
40
23
F7
F8
5E
5C
78
70
89
80
FE

50

1F

1F

11
17
19
1B
10
1C
01

11
17
19
1B
10
1C
01

lA
00

1A
00

89
F6
FE
7E
m -83
7C

CTRL

ShiftExtCTRL

00

00

1E
lC
1B
10

lE
1C
1B
10

IF

IF

Ext-

7E
A-

AA

83
7C

c 04
AF
60

c DO
AF
27

FA
3C
3E
SF

FA
3C
3E
5F

Affected by ~ key.
Mute character (as shown). Character code generated next keystroke.

Keyboards and Keycodes

1 3-9

13

Table 13-6. English (U.S.) Alternate Mode Character Codes

ShiftCTRL

ShiftCTRL

00 03

00 03

Keycap
Char

Normal

,

~

60

1

!

2

@

31
32

3 #
4 $
5 %
,..
6
7
8
9
0

13

&

*
(
)

- = +
Q

H
Y
[
]

{
}

\

I
A

,.,

.

c

II

Z

M

, <

.

>
?

/
c

c
c
c

c
c

33
34
35
36
37
38
39
30
20
3D
71
77
79
5B
50
5C
61
3B
27
7A
60
2C

Shift

c
c
c

c
c
c

2E

3E

2F

3F

Affected by the

1 3 -1 0

7E
21
40
23
24
25
5E
26
2A
28
29
SF
2B
51
57
59
7B
70
7C
41
3A
22
5A
40
3C

~

1E

1E

1F

IF

11
17
19
1B
10

11
17
19
1B
10
1C
01

1e

01
lA

1A

00

00

key.

Keyboards and Keycodes

Ext
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

78
79
7A
7B
7C
70
7E
7F
80
81
82
83
10
11
15

Shift-

Ext-

Ext-

Ext

CTRL

CTRL

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

78
79
7A
7B
7C
70
7E
7F
80
81
82
83
10
11
15

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

78
79
7A
7B
7C
70
7E
7F
80
81
82
83
10
11
15

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

78
79
7A
7B
7C
70
7E
7F
80
81
82
83
10
11
15

00 1E

00 1E

00 1E

00 1E

00 2C
00 32

00 2C
00 32

00 2C
00 32

00 2C
00 32

Figure 13-2. English (U.K.) Keyboard

13

Keyboards and Keycodes

1 3 - 11

Table 13-7. English (U.K.) HP Mode Character Codes

Keycap
Char
, ,..,

13

1
2
3
4
5
6
?
8
9

!
II

£
$

%
&
A

(
)

=

0

+

?

,

/
Q

H
Y
[
]

{
}

< >
A
@

*

I

\

Z

M

, ,.

.

:

- c
m

Normal
60
31
32
33
34
35
36
37
38
39
30
26
27
c 71
c 77
c 79
58
50
3C
c 61
2A
SC
c 7A
c 6D
2C
2E
20

Shift

c
c
c

c
c
c

CTRL

7E
21
22
BB
24
25
26
5E
28
29
30
3F
2F
51
57
59
78
70
3E
41
40
7C
SA
40
36
3A
SF

ShiftCTRL

ShiftExt

Ext
FB
B8
40
23
F7
F8

1E

1E

11
17
19
1B
10

11
17
19
18
10

01
00

01
00

lC

lC

1A
00

1A
00

1F

1F

FO
B8
40
23
F7
Fa

SE

5E

5C
58
50
B9
F6
FE

5C
7B
70
B9

7E
m -83
7C

ExtCTRL

ShiftExtCTRL

00

00

1E
1C
18
10

1E
1C
16
10

IF

IF

BO
FE
7E
A-

AA

83
7C

c 04
AF
60

c DO
AF
27

FA
3C
3E
SF

FA
3C
3E
SF

Affected by ~ key.
Mute character (as shown). Character code generated next keystroke.

1 3 -1 2

Keyboards and Keycodes

Table 13-8. English (U.K.) Alternate Mode Character Codes

ShiftKeycap
Char
"
1
2

,..,

3
4
5
6

£
$

1

..

%
&

7
8
9

A

0
+

=

(
)

?

,

/
c
c
c

Q

H
Y

[
]

{
}

<

>
c

A
@

*

I

\

Z
M

, ,·
. ·

- c

Normal

c
c

60
31
32
33
34
35
36
37
38
39
30
28
27
71
77
79
5B
50
3C
61
2A
5C
7A
60
2C
2E
20

Shift

CTRL

ShiftCTRL

7E
21
22
9C
24
25
26

5E
28
29
3D
3F
2F
c 51
c 57
c 59
7B
70

1E

1E

11
17
19
1B
10

11
17
19
18
1D

01
00 03
1C

01
00 03
1C
1A
OD

Shift-

Ext-

ExtCTRL

CTRL

78
79
7A
78
7C
70
7E
7F
80
81
82
83
10
11
15

00 78
00 79
23
00 78
00 7C
00 70
00 7E
00 7F
00 80
00 81
00 82
00 83
00 10
00 11
00 15

00 78
00 79
23
00 78
00 7C
00 70
00 7E
00 7F
00 80
00 81
00 82
00 83
00 10
00 11
00 15

00 1E

00 1E

00 1E

00 1E

00 2C
00 32

00 2C
00 32

00 2C
00 32

00 2C
00 32

Ext
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

Ext

78
79
7A
78
7C
70
7E
7F
80
81
82
83
10
11
15

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

3E

c 41
40
7C
c SA
c 40
38

Affected by the

lA

00

3A

SF
~

lF

1F

key.

Keyboards and Keycodes

13 - 13

13

Figure 13-3. French Keyboard

~

~"O

(I) C

-,!
..(I)

13

~

~"O
(l)C

...

-,(1)
..Q)

1 3-1 4

Keyboards and Keycodes

Figure 13-4. Belgian Keyboard

~Q.

aI 0

a» ..
.uti)
'a
C

..

a» z:
aI
..
)C ()
w

13

"..c:a»
)C

w

~

aI

~
()

Keyboards and Keycodes

1 3 - 15

Table 13-9. French/Belgian HP Mode Character Codes

Keycap
Char

Shift
c BB
c 31

£

c 24

1
2

c 26

II

, 3

c 22

4
;
§ 6

c 27
c 28

e"
1
c;
a"

?
8

)

0

C9
21
85
C8
c 29
c 20
c 61
c 7A
c 79
me-c 60
c 3C
c 71
c 60
c C8
c 77

$
&,
e

(

13

Normal

9
0

- A
Z

..

Y
A

"

*

>

<
Q

M
u"

,

%
H
?

.

,·

·
=
c
m

/
+

c C5

c 32
c 33
c 34

c
c
c
c
c
c

c 80

c
c
c
c

c
c
c
c

2C

38
3A
3D

CTRL

ShiftCTRL

A

35
36
37
38

Ext

ShiftExt

c FB

c FO

88
40
23
F7
F8
5E
5C
58
c

88
40
23
F7
Fa
5E

5C
c 7B
c 70

39
30

c 50
B9

B9

c 83
c 5F

c F6

c 80
FE

c 41
c SA
c 59
mc-c 2A
c 3E
c 51
c 40

1F
01
1A

..

c 25
c 57

c 3F
c 2E
c 2F

c 28

19

11
00
17

1F
01
1A
19

11
00

FE
7E

m

--

ExtCTRL

ShiftExtCTRL

00

00

1E
1C
18
10

1E
1C
18
10

1F

lF

7E
A

AA

83
7C

83
7C

c 04
AF
c 60

c DO

FA
3C
3E
SF

FA
3C
3E
5F

AF
c 27

17

Affected by ~ key.
Mute character (as shown). Character code generated next keystroke.

1 3 -1 6

Keyboards and Keycodes

Table 13-10. French/Belgian Alternate Mode Character Codes

Keycap
Char
$
&,

e

£

1
2

II

, 3

4

5
6
7

(

§,
e
!

8

,~

9

a

0

)

0

- A
Z

Y
A

,

..
*

< >
Q
,M

%

u

H

,
,·

·

=
c
m

?

.

/
+

Normal

Shift

c 24
c 26
c 82
c 22
c 27
c 28
c 15
c 8A
c 21
c 87
c 85
c 29
c 20
c 61
c 7A
c 79
me-c 60
c 3C
c 71
c 60
c 97
c 77
c 2C
c 3B
c 3A
c 3D

c
c
c
c

A

9C
31
32
33
c 34
c 35
c 36
c 37
c 38
c 39
c 30
c F8
c 5F
c 41
c 5A
c 59
mc-c 2A
c 3E
c 51
c 40
c 25
c 57
c 3F
c 2E
c 2F
c 28

CTRL

00 03

..

ShiftCTRL

00 03

1E

lE

Ie

Ie

1B
10

1B
10

1F
01
1A
19

IF
01
1A
19

Ext
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

78
79
7A
7B
7C
70
7E
7F
80
81
82
83
1E
2C
15

ShiftExt

ExtCTRL

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

00 78
40
23
00 7B
00 7C
5E
5C
58

78
79
7A
78
7C
70
7E
7F
80
81
82
83
1E
2C
15

ShiftExtCTRL

81
82
83
IE
7E
00 15

00 78
40
23
00 7B
00 7C
5E
5C
78
70
00 81
00 82
00 83
00 1E
7E
00 15

7C

7C

50

00
00
00
00

OD

11
00

00 10
00 32

00 10
00 32

00 10
00 32

00 10
00 32

17

17

00 11

00 11

00 11

00 11

11

Affected by C9ID key.
Mute character (as shown). Character code generated next keystroke.

Keyboards and Keycodes

1 3 - 17

13

Figure 13-5. German Keyboard

-=0.
.s
mU)
"c
-8.c
c.s!
~=

13

ll.2

'au
c._
OG»

UJN

1 3 -1 8

Keyboards and Keycodes

Table 13-11. German HP Mode Character Codes

Keycap
Char

Normal

5 %

3C
31
32
33
34
35

6
?
8
9
0

&

36

/

fa

?
"

37
38
39
30
DE
27
71
77
7A
CF
2B
BB
61
CE

<
1
2

)

!
II

3 §
$

4

(
)

=

,

c
c
c
c

Q
H
Z

U
+
£
A

*
A

0

A
Y
M

, ,·

. ·

- -·
c

m

c
c
c cc
c 79
c 60
2C
2E
20

Shift

c
c
c
c

3E
21
22
BD
24
25
26
2F
28
29
3D
3F
60
51
57
5A
DB
2A
5E
41
DA
08
59

c
c
c
c
c 40
38
3A
SF

CTRL

11
17
1A
1E
01

ShiftCTRL

11
17
1A

ShiftExt

Ext
FB
B8

FO
B8

40

40

23
F7
F8
SE
SC
5B
50
89
F6
FE

23
F7

7E
m -83
7C

ExtCTRL

ShiftExtCTRL

00

00

Fa

SE
SC
78
70
89
BO
FE

IE

IE

1e
18
10

1e
1B
10

IF

1F

7E
A

AA

83
7C

1E
01

c 04
AF
60

19
00

00

1F

IF

c DO
AF
27

19
FA
3C
3E
SF

FA
3C
3E
SF

Affected by ~ key.
Mute character (as shown). Character code generated next keystroke.

Keyboards and Keycodes

1 3 - 19

13

Table 13-12. German Alternate Mode Character Codes

Keycap
Char

Normal

>
!

<
1
2

II

3 §
$

4

5 %
13

6
7
8

&

9

)
=
?,

/
(

0
l3

,

c
c
c
c

Q
H

Z

U
+
£
A

*
A

0

A

y

M

, ,.

.

:

c

-

c
c
c
c
c

3C
31
32
33
34
35
36
37
38
39
30
E1
27
71
77
7A
81
28
9C
61
94
84
79
60
2C
2E
20

Shift
3E
21
22
15
24
25
26
2F
28

00 03

00 03

29

c
c

c
c
c

c
c
c
c

Affected by the

1 3-20

CTRL

ShiftCTRL

3D
3F
60
51
57
5A
9A
2A
5E
41
99
8E
59
40
38

78
79
7A
78
7C
70
7E
7F
80
81
82
83
10
11
2C

ShiftExtCTRL

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

00 78
40
23
00 78
00 7C
00 70
5C
58
50
00 81
00 82
00 83
00 10
7E
00 2C

00 78
40
23
00 78
00 7C
00 70
5C
78
70
00 81
00 82
00 83
00 10
7E
00 2C

7C

7C

78
79
7A
78
7C
70
7E
7F
80
81
82
83
10

1C
18
10

11
17
1A

11
17
1A

1E
01

1E
01

00 lE

00 1E

00 1E

00 1E

19
00

19
00

00 15
00 32

00 15
00 32

00 15
00 32

00 15
00 32

1F

1F

C9:m key.

Keyboards and Keycodes

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

ExtCTRL

1C
18
10

3A

SF

Ext

ShiftExt

11

2C

Figure 13-6. Italian Keyboard

Keyboards and Keycodes

1 3 - 21

Table 13-13. Italian HP Mode Character Codes

Keycap
Char

< )
£, 1
e 2
II
, 3
4

;

(
13

6

"e

7

A

8
9

~

a"

0

)

0

-

+

Q

Z
Y

"
1

=

&
§

$

*

A
M

u"

ShiftNormal

Shift

c 3C

22
27
28
5F
C9
5E

c
c
c
c
c
c
c
c
c

B5

c

C8
29
20
71
7A
79
09
24
2A
61
60
CB
77
2C
38
3A
CA

c

c BB
c C5

c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

%

c

,.

?

.

c
c
c

:

/
!

c

,

H

0"

c
m

c

c
c
c
c

c
c

c
c
c
c
c
c
c
c
c
c

CTRL

3E
31
32
33
34
35
36
37
38
39
30
B3
28
51
SA
59
30
26
SO
41
40
25
57
3F
2E
2F
21

1F

CTRL

Ext

ShiftExt

lF

c FB
B8
40
23
F7
F8
5E
5C
c 58
c 50
B9
c F6
FE

c FO
88
40
23
F7
F8
5E
SC
c 78
c 70
89
c 80
FE

1E

1E

11
1A
19

11
lA
19

01
00

01
00

17

17

7E
m -83
7C

Ext-

ShiftExt-

CTRL

CTRL

00

00

1E

1C
1B
10

1E
1C
18
10

1F

IF

7E
A

AA

83
7C

c 04
AF
c 60

c 00
AF
c 27

FA
3C
3E
5F

FA
3C
3E
SF

Affected by CQID key.
Mute character (as shown). Character code generated next keystroke.

1 3 - 22

Keyboards and Keycodes

Table 13-14. Italian Alternate Mode Character Codes

Keycap
Char

<

)

£,

1

e

2

(

3
4
5
6
7

..,

"e

A.

8

,c;
a

9

)

0

0

-

+

Q

Z
Y
,

1

$

*

=

&
§

A
M
,
u ~
H
, ?

,·

,·

0

c

.

/
1

Normal

Shift

c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

3C
9C
82
22
27
28

SF
8A

SE
87
85
29
20
71
7A
79
80

24
2A
61
60
97
77
2C
3B
3A
95

3E
31
32
33
34
35
36
37
38
39
30

CTRL

ShiftCTRL

00 03

00 03

1F
lC
IE
10

1F
1C

11
lA
19

11

18

10

Fa
28
51
SA
59
3D
26
15
41
40
25
57
3F
2E
2F
21

1A
19

EKt
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

78
79
7A
78
7C
70
7E
7F
80
81
82
83
10
2C
15

ShiftExt

ExtCTRL

ShiftExtCTRL

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

00 78
40
23
00 78
00 7C
00 70
5C
58
50
00 81
00 82
00 83
00 10
7E
00 15

00 78
40
23
00 78
00 7C
00 70
5C
78
70
00 81
00 82
00 83
00 10
7E
00 15

78
79
7A
78
7C
70
7E
7F
80
81
82
83
10
2C
15

01
00

01
00

00 IE
00 32

00 IE
00 32

17

17

00 11

00 11

7C

7C

00 IE
00 32
60
00 11

00 1E
00 32
60
00 11

Affected by ~ key.

Keyboards and Keycodes

1 3 - 23

13

Figure 13-7. Dutch Keyboard

~a.

alo

GJ.mU)
"..c .c
)( u

~

G)

&V

W

".. .cca
C

~

G)

ac u
w

13- 24

Keyboards and Keycodes

Table 13-15. Dutch HP Mode Character Codes

Keycap
Char
@

1

§
!
II

2

3
4
5 %
#
$

6
7
8

C-

9

,)

&

0

/

?

I \
Q

..

H
Y
A

<

>

~

I

A

·,

Z
M

+
'\

, ,.
*
-· =
c
m

Normal

Shift

40
31
32
33
34
35
36
37
38
39
30
2F
7C
c 71
c 77
c 79
m -3C
B5
c 61

BO
21
22
23
24
25
26
SF
28
29
27
3F
5C
c 51
c 57
c 59
m -3E
BE
c 41
28 ,

3A

m -c 7A
c 60
2C
2E
20

..
,

CTRL

ShiftCTRL

00

00

1F

1C
11
17
19

1F

lC

FB

FO
B8
40
23
F7
F8
5E
5C
78
70

01

40
23
F7
F8
5E
5C
58
50
89
F6
FE

ExtCTRL

ShiftExtCTRL

00

00

1E
1C
18
10

1E
1C
18
10

IF

IF

89

BO
FE

11
17

19

01

m --

3D

Ext
88

A.

c SA
c 40
38
2A

ShiftExt

1A

lA

00

00

7E
m -83
7C

7E
A

AA
83

7C

c 04
AF
60

c DO
AF
27

FA
3C
3E
SF

FA
3C
3E
SF

Affected by C9ill key.
Mute character (as shown). Character code generated next keystroke.

Keyboards and Keycodes

1 3 - 25

13

Table 13-16. Dutch Alternate Mode Character Codes

Keycap
Char
@

§

1

!

2

II

3 #
4 $
5 %
&

6
7
8

13

T
)
,

9
0

/

?

I \
Q
H
Y

..

A

<

>

C;

J

A

··,

+

,

Z
M

, ,.

-· =
*

c
m

Normal

Shift

CTRL

ShiftCTRL

40
31
32
33
34
35
36
37
38
39
30
2F
7C
c 71
c 77
c 79
m -3C
87
c 61
3A ,

15
21
22
23
24
25
26
SF
28
29
27
3F
5C
c 51
c 57
c 59

00 03

00 03

..

m --

m --

c 7A
c 60
2C

c 5A
c 40
3B
2A
3D

2E

20

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

17
19

01

01

00 1E

00 1E

00 1E

00 1E

1A
00

1A

00 2C
00 32

00 2C
00 32

60
00 2C
00 32

60
00 2C
00 32

18
10
1C
11

78
79
7A
78
7C
70
7E
7F
80
81
82
83
10
11
15

00
00
00
00
00

78
79
7A
78
7C
SE
00 7E
58
50
00 81
00 82
00 83
00 10
7E
00 15

78
79
7A
78
7C
5E
00 7E
7B
70
00 81
00 82
00 83
00 10
7E
00 15

00
00
00
00
00

A-

OD

Affected by the ~ key.
Mute character (as shown). Character code generated next keystroke.

13-26

ShiftExtCTRL

1C
11
17
19

1E
1F

78
79
7A
78
7C
70
7E
7F
80
81
82
83
10
11
15

ExtCTRL

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

1E
1F
18
10

3E
9F
c 41
2B ,

m --

Ext

ShiftExt

Keyboards and Keycodes

Figure 13-8. Swiss (German) Keyboard

~a.

11 0
!mU)

~.!

'au
C._
OeD
U)N

13

~.!

l.g

at:

Keyboards and Keycodes

1 3 - 27

Table 13-17. Swiss (German) HP Mode Character Codes

Keycap
Char
§
1
2

0

BO

+

31
32
33
34
35
36
37

II

3 '*
4

~

5 %
13

&

6
7
8

/
(
)

9

, ?=

0

,

A

Normal

Q
H

Z ,
U e

..

1

$

£

38

39
30
27
m -c 71
c 77
c 7A
CF

A-

..

Shift
B3
28
22
2A
85
25
26
2F
28
29
3D
3F ,
m -c 51
c 57
c 5A
C9
21
BB
c 41
C5
C8
c 59
c 40
3B

, ,.

m -24
c 61
CE
CC
c 79
c 60
2C

:

2·E

3A

20

5F

A ,
e
a a,
0

y
M

.

- c
m

CTRL

ShiftCTRL

ShiftExt

Ext
FB

FO

B8

B8

40
23
F7
F8
5E
5C
58
50

40
23
F7
Fa
5E
5C
7B
70
89
BO
FE

B9
F6

FE
11
17

11
17

lA

lA

01
19
00
1F

01
19
00
IF

--

ShiftExtCTRL

00

00

IE
1C

IE
lC

1B

1B

10

10

IF

IF

7E

7E
A-

83

AA
B3

7C

7C

c 04
AF
60

c DO

FA

FA

3C
3E

3C
3E

5F

SF

m

ExtCTRL

AF
27

Affected by C9ID key.
Mute character (as shown). Character code generated next keystroke.

1 3-28

Keyboards and Keycodes

Table 13-18. Swiss (German) Alternate Mode Character Codes

CTRL

ShiftCTRL

00 03

00 03

Keycap

Char
§
1
2

0

+
II

3 *
4 ~
5 %
6
?
8
9
0

&

A

"

/
(
)

, =
?

Q
H
Z
U e"

..

!

$

£

A ,
e
a a"
y
M

a

, ,·
. ··
-

c

m

Normal

Shift

15
31
32
33
34
35
36
37
38
39
30
27
m -c 71
c 77
c 7A
81
m -24
c 61
94
84
c 79
c 60
2C
2E
20

F8
28
22
2A
87
25
26
2F
28
29
3D
3F
m -- "
c 51
c 57
c 5A
8A
21
9C
c 41
82
85
c 59
c 40
38
3A
SF

;At.

..

1E
1C
18
10

1E
1C
1B
10

11
17
1A

11
17
1A

Ext
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

78
79
7A
76
7C
70
7E
7F
80
81
82
83
10
11
2C

ShiftExt

ExtCTRL

ShiftExtCTRL

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

00 78
40
23
00 78
00 7C
5E
5C
58
50
00 81
00 82
00 83
00 10
7E
00 2C

00 78
40
23
00 78
00 7C
5E
5C
78
70
00 81
00 82
00 83
00 10
7E
00 2C

78
79
7A
78
7C
70
7E
7F
80
81
82
83
10
11
2C

7C
01

01

00 1E

00 1E

19
00

19
00

00 15
00 32

00 15
00 32

IF

IF

7C

00 lE

00 1E

60
00 15
00 32
3C
3E

60
00 15
00 32
3C
3E

Affected by the ~ key.
Mute character (as shown). Character code generated next keystroke.

Keyboards and Keycodes

1 3 - 29

13

Figure 13-9. Swiss (French) Keyboard

::J
::J"O

.C

-,.1

--

13

::J
::J'U

e

C

-'.1

--

1 3-30

Keyboards and Keycodes

Table 13-19. Swiss (French) HP Mode Character Codes

Keycap

Char
0

§
1
2

+
II

3 *

4

~

"

5

&

6
7
8
9

/

(
)

=
?,

0

,

,..
Q

H

,Z

e

..

U
!

$

£

,A

e,
a

y
M

0

a

, ,·

. ·
- c
m

Normal

Shift

BO
31
32
33
34
35
36
37
38
39
30
27

83
2B
22
2A
B5
25
26
2F
28
29
3D
3F
m -c 51
c 57
c SA
CF
21
BB
c 41
CE
CC
c 59
c 40
3B
3A
SF

m --

c 71
c 77
c 7A
C9
m -24
c 61
C5
C8
c 79
c 60
2C
2E
20

A

..

CTRL

ShiftCTRL

ShiftExt

Ext
FB
B8
40
23
F7
Fa
5E

FO
B8
40
23
F7
F8
5E
5C
78
70
89
80
FE

5C
5B
50
89
F6
FE

"

11
17
1A

11
17
1A

83
7C

01

01

19
00

19
00

1F

1F

ShiftExt-

CTRL

00

00

1E
1C
1B
10

lE
lC

IF

IF

1B
10

7E

7E
m --

ExtCTRL

A

AA
83

7C

c 04
AF
60

c DO
AF
27

FA
3C
3E
SF

FA
3C
3E
SF

Affected by ~ key.
Mute character (as shown). Character code generated next keystroke.

Keyboards and Keycodes

1 3 - 31

13

Table 13-20. Swiss (French) Alternate Mode Character Codes

Keycap
Char
§

0

1

+

2

II

3

1(

4

C;

5 %
13

6

&

7
8

/
(
)

9

, ?=

0
A

"
Q

H
Z

..

e"

U

1

$ £
,A
e 0
a" a
y
M

, ,·

. ·
- ·
-

c
m

Normal
15
31
32
33
34
35
36
37
38
39
30
27

m -c 71
c 77
c 7A
SA
m -24
c 61
82
85
c 79
c 60
2C

Shift
F8
28
22
2A
87
25
26
2F
28
29
3D
3F

A

..

m --

CTRL

ShiftCTRL

00 03

00 03

1E
1C
1B
10

lE
1C
18
10

11
17
1A

11
17
1A

,

c 51
c 57
c SA
81
21
9C
c 41
94
84
c 59
c 40
3A

20

SF

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

78
79
7A
7B
7C
70
7E
7F
80
81
82
83
10
11
2C

ExtCTRL

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

00 78
40
23
00 7B
00 7C
5E
5C

78
79
7A
78
7C
70
7E
7F
80
81
82
83
10
11
2C

50
00 81
00 82
00 83
00 10
7E
00 2C

00 78
40
23
00 78
00 7C
5E
5C
78
70
00 81
00 82
00 83
00 10
7E
00 2C

7C

7C

58

01

00 1E

00 1E

00 1E

00 1E

19
00

19
00

00 15
00 32

00 15
00 32

60
00 15
00 32
3C

60
00 15
00 32
3C

3E

3E

1F

1F

Affected by the ~ key.
Mute character (as shown). Character code generated next keystroke.

1 3 - 32

Keyboards and Keycodes

ShiftExtCTRL

01

38

2E

Ext

ShiftExt

Figure 13-10. Danish Keyboard

13

Keyboards and Keycodes

1 3 - 33

Table 13-21. Danish HP Mode Character Codes

Keycap
Char

<
1
2

Normal

Shift

3C
31
32
33
34
35
36
37
38
39
30
28 ,

3E
21
22

>
!

..

3 §
4 $
5 %
6 &
? /

13

(
)

8

9

=

0
+,

?

"

..

Y
A
A-

A
}E

f6
Z
M

, ,.

.

:

- c

71
77
79
04

m --

1(

@

m

m -c
c
c
c

Q
H

c
c
c
c
c

..

40
61
07
06

24
25
26
2F
28
29
3D
3F ,
m -c 51
c 57
c 59
c

11
17
19

11
17
19

1E

00
01

1E
00
01

lA
00

1F

DO
5E
2A

60
2C
2E
20

5F

ShiftExt

Ext
F8
B8
40
23
F7
F8
5E
5C
5B
50
89
F6
FE

BO

c 41
c 03
c 02
c SA
c 40
38

7A

CTRL

ShiftCTRL

7E
m -83
7C

FO
88
40
23
F7
F8
5E

5C
78
70
89
80
FE

CTRL

ShiftExtCTRL

00

00

1E
1C
1B
10

1C
18
10

1F

lF

Ext-

7E
A

AA

83
7C

c 04
AF
60

c DO
AF
27

00

FA
3C

FA
3C

3E

3E

1F

SF

SF

lA

3A

cmD key.
Mute character (as shown). Character code generated next keystroke.

Affected by

1 3 - 34

Keyboards and Keycodes

lE

Table 13-22. Danish Alternate Mode Character Codes

Keycap
Char

<

>

1

!

2

II

3
4
;
6

§
$

%
&

/

7
8
9
0
+,

(
)

=
?
"

Q
H
Y

..

A
A

@

A

*

}E

~++

Z
M

, ,
. ··

- c
m
++

Normal
3C
31
32
33
34
35
36
37
38
39
30
28 ,

m --

c 71
c 77
c 79
c 86
m -40
c 61
c 91
c 6F
c 7A
c 60
2C
2E

20

..

Shift
3E
21
22
15
24
25
26
2F
28
29
30
3F
m -- "
c 51
c .57
c 59
c SF
5E

c
c
c
c
c

2A
41
92
4F
5A
40
38
3A
5F

CTRL

ShiftCTRL

1C
18
10

1C
18
10

11
17
19

11
17
19

Ext

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

78
79
7A
78
7C
70
7E
7F
80
81
82
83
10
11
15

ShiftExt

ExtCTRL

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

00 78
00 79
23
00 78
00 7C
00 70
5C
58
50
00 81
00 82
00 83
00 10
7E
00 15

78
79
7A
78
7C
70
7E
7F
80
81
82
83
10
11
15

7C

ShiftExtCTRL
00 78
00 79
23
00 78
00 7C
00 70
5C
78
70
00 81
00 82
00 83
00 10
7E

00 15
7C

1E
00 03
01

1E
00 03
01

00 IE

00 1E

00 IE

00 IE

1A
00

1A
00

00 2C
00 32

00 2C
00 32

60
00 2C
00 32

27
00 2C
00 32

1F

1F

Affected by the C9R:D key.
Mute character (as shown). Character code generated next keystroke.
Coded as normal"Q" bacause tI~1I doesn't exist in Alternate mode character set.

Keyboards and Keycodes

1 3 - 35

13

Figure 13-11. Norwegian Keyboard

~~

·0

! ...

IIIfI)

'U
c ..
Q)CD
. . .&:.

)Co
W

13

'U
C"
Q)CD
. . .&:.

)Co
W

1 3-36

Keyboards and Keycodes

Table 13-23. Norwegian HP Mode Character Codes

Keycap
Char

<
1

ShiftNormal

Shift

3C
31
32
33
34
35
36
37
38
39
30
28 ,

3E
21
22

>
!
II

2
3

#-

4 $
5 %
6 &
7 /
8 (
)

9
0
+,

=

?,

Q

H

..

Y
A

"

@

c 51
c 57
c 59
c DO
5E
2A
c 41
c 02
c 03
c 5A
c 40
38
3A
SF

"It

A

flJ
IE

Z
M

, ,·

. ·
- ·
-

c
m

c
c
c
c
c
c
c
c
c

40
61
06
07
7A
60
2C
2E
20

..

Ext
FB

FO
88
40
23
F7
F8
5E
5C
78
70
B9
80
FE

B8

40
23
F7
Fa

24
25
26
2F
28
29
3D
3F ,

m --

m --

CTRL

23

m --

71
77
79
04

CTRL

ShiftExt

5E

5C
58
50
B9

F6
FE
11
17
19

11
17
19

lE
00
01

lE
00

7C

83
7C

01

c 04
AF
60

c DO
AF
27

lA

1A
00

FA

FA

1F

3C
3E
SF

3C
3E
SF

00

1F

ShiftExt-

CTRL

00

00

lE

1C
1B
10

lE
1C
1B
10

lF

1F

7E

7E
m -B3

ExtCTRL

A

AA

Affected by ~ key.
Mute character (as shown). Character code generated next keystroke.

Keyboards and Keycodes

1 3 - 37

13

Table 13-24. Norwegian Alternate Mode Character Codes

Keycap
Char

<
1
2

>
!

3

#

4

$

6
7

&

8

9

(
)

0

=

~

/

+

?,

,

H

Y

A

@

m --

*

40
61
6F
91
7A
60
2C

(6++
}E

Z
M

, ,.

.

:

- c
++

71
77
79
86

A.

A

m

m -c
c
c
c

Q

..

3C
31
32
33
34
35
36
37
38
39
30
2B ,

II

;
13

Normal

c
c
c
c
c

2E
20

..

Shift
3E
21
22
23
24
25
26
2F
28
29
3D
3F
,
m -c 51
c 57
c 59
c SF
5E
2A
c 41
c 4F
c 92
c 5A

CTRL

1C
1B
10

ShiftCTRL

1C
18
10

Ext
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

78
79
7A
7B
7C
70
7E
7F
80
81
82
83
10
11
15

ShiftExt
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

78
79
7A
7B
7C
70
7E
7F
80
81
82
83
10
11
15

ExtCTRL
00
00
00
00
00
00

78
79
7A
7B
7C
70
5C
58
50
00 81
00 82
00 83
00 10
7E
00 15

ShiftExtCTRL
00
00
00
00
00
00

78
79
7A
78
7C
70
5C
7B
70

00
00
00
00

81
82
83
10
7E
00 15

11
17
19

11
17
19

lE
00 03
01

1E
00 03
01

00 1E

00 1E

00 1E

00 1E

c 40

1A
00

1A
00

00 2C
00 32

00 2C
00 32

60
00 2C
00 32

27
00 2C
00 32

38
3A
SF

1F

1F

7C

7C

Affected by the C9]D key.
Mute character (as shown). Character code generated next keystroke.
Coded as normal 11011 because 11(611 doesn't exist in Alternate mode character set.

1 3-38

Keyboards and Keycodes

Figure 13-12. Swedish Keyboard

~Q.

·0
!.,

m(l)
'a

c ..
~ II
..
.c

N ()
W

'a

.

c ..

~

.. .I:

N()
W

Keyboards and Keycodes

1 3 - 39

Table 13-25. Swedish HP Mode Character Codes

Keycap
Char
<
1
2

..

3

#

Normal

)

!

4 $
5 %
13

6

&

7

/

8

(
)

9
0
+

=
?

E

c
c
c
c
c
c

Q
H

Y
A

,U
A

*

5
A
Z

M

, ,.

.

:

c

m

-

3C
31
32
33
34
35
36
37
38
39
30
2B
C5
71
77
79
04
CF
27
61
CE

c
c
c cc
c 7A
c 60
2C
2E
20

Shift

c

c
c
c
c

c

CTRL

3E
21
22
23
24
25
26
2F
28
29
3D
3F
DC
51
57
59
DO
DB
2A
41

ShiftCTRL

Ext
FB
B8
40
23
F7
Fa
5E
SC
5B

11
17
19

11
17
19

c
c DA
c D8
c SA

01

c 40

00

lA
00

1F

IF

1A

01

38

3A
SF

ShiftExt
FO
B8
40
23
F7
F8
5E
5C
7B

50

70

89
F6
FE

89
BO

--

ShiftExtCTRL

00

00

1E
1C
1B
1D

1E
1C
18
10

IF

1F

FE

7E

m

ExtCTRL

7E
A

AA

83
7C

83
7C

c D4

c DO

AF

AF

60

27

FA
3C

FA
3C

3E

3E

SF

SF

Affected by 
1
II

3 #
$

4
5 %
&

6
7
8

/
(
)

9
0
+

E

=
?

c
c
c
c
c
c

Q

H

Y
A

,

{j

A

*

0

A
Z
M

, ,.

.

c

:

-

c
c
c
c
c

3C
31
32
33
34
35
36
37
38
39
30
2B
82
71
77
79
86
81
27
61
94
84
7A
60
2C
2E
20

Shift

c
c
c
c
c
c

3E
21
22
23
24
25
26
2F
28
29
3D
3F
90
51
57
59
8F
9A
2A
41
99

c
c
c BE
c SA
c 40

Affected by the

CTRL

ShiftCTRL

00 03

00 03

lE
lC
18
10

lE
1C

11
17
19

11
17
19

18

10

Ext
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

78
79
7A
78
7C
70
7E
7F
80
81
82
83
10
11
15

ShiftExt

ExtCTRL

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00

00 78

78
79
7A
78
7C
70
7E
7F
80
81
82
83
10
11
15

ShiftExtCTRL

40

00 7A
00 78
00 7C
5E
5C
58
50
00 81
00 82
00 83
00 10
7E
00 15

00 78
40
00 7A
00 78
00 7C
5E
5C
78
70
00 81
00 82
00 83
00 10
7E
00 15

7C

7C

01

01

00 1E

00 1E

00 1E

00 1E

1A
00

1A
00

00 2C
00 32

00 2C
00 32

60
00 2C
00 32

60
00 2C
00 32

IF

1F

38

3A
5F
~

key.

Keyboards and Keycodes

13 - 4 1

13

When a mute key (as defined for the local keyboard) is pressed, that mute character
becomes "pendingll• A character code isn't generated until the following key is pressed.
The generated character code depends upon the pending mute character and the key
~~~~~~t~~~sed next. (Refer to the following tables.) The following rules apply to mute

.~
"'--

• The mute mapping is in effect for only the key that immediately follows the mute
character.
• Only one mute can be pending at a time. If another mute character is pressed, that
character becomes the pending mute character.
13

• If the key following a mute character is held down to invoke a repeated key
function, then the outgoing muted character code is repeated.
Table 13-27. HP Mode Muted Character Codes

*

Next Keycap
Character

,

space (20h)
a (61 h)
e (65h)
(69h)
i
n (6Eh)
(6Fh)
0
u (75h)
y (79h)
A (41 h)
E (45h)
I (49h)
N (4Eh)
0 (4Fh)
U (55h)
Y (59h)
other

27
C4
C5

Pending Mute Character
,
A

05

6E
C6
C7
79
EO
DC
E5
4E
E7
ED
59

*

60
C8
C9
09

5E

CO
C1
01
6E
C2

6E

CA
CB
79
A1

C3

79
A2

A3

A4
A6
4E
DF

E6
4E
E8
AD

AE
59

59

*

*
ll

Character code is same as that for "other character.

1 3 -42

Keyboards and Keycodes

..

-

20
CC
CO
DO
6E
CE
CF
EF

7E
E2
65
69
B7
EA
75
79
E1
45
49
B6

08

AS
A7
4E
DA
DB

E9

EE

55
59

*

*

Table 13-28. Alternate Mode Muted Character Codes

*

Next Keycap
Character

,

space (20h)
a (61h)
e (65h)
(69h)
i
n (6Eh)
(6Fh)
0
u (75h)
A (41h)
E (45h)
N (4Eh)
0 (4Fh)
U (55h)
other

..

-

20

7E
61

Pending Mute Character
"

A

27
AO
82
A1
6E
A2
A3
41
90
4E
4F
55

60
85
SA
80

5E
83
88

6E
41
45
4E
4F

6E
93
96
41
45
4E
4F

55

*

*

95
97

84
89
8B

8e

65

69

6E

A4

94
81
8E

6F
75
41
45

45
4E

13

AS

55

99
9A

4F
55

*

*

*

Character code is same as that for "other" character.

Keyboards and Keycodes

13 - 4 3

. "
•

",

~

" . "", :~,<: :~"~~"~.-\ :~!:--: . :.~-."

"" '
•

,

•

•

~

+

~

•

..

' . . .

•

Comparisons With
Other Computers
A.1 Comparison With the HP 110
The HP 110 (The Portable) is largely compatible with the Portable PLUS. However,
some of the advanced capabilities of the Portable PLUS cause some differences, which
are described below.
The HP 110 provided a general-purpose, escape-sequence driven software interface.
The Portable PLUS has a more flexible and expanded operating system that provides
this same interface plus a complete BIOS interface. To a great extent, software is
"upward compatible" between these products--HP 110 software is largely compatible
with the Portable PLUS.
Differences in hardware components introduced some incompatibilities. The 25-line
display is an obvious change from the 16-line display of the HP 110. However, most
"well-behaved" applications written for the HP 110 will run without modification on
the Portable PLUS using a 16-line format. Applications that are less 'well-behaved
may require changes.
ll

The following list describes the main areas of incompatibility:
• Reading Serial Numbers and Device ID. The Portable PLUS reads the serial number
using the Read Device ID escape sequence, unlike the HP 110. The HP 110 product
number (11 OA) is returned for all three of the values specified in the escape
sequence. (Refer to the "HP Graphics Escape Sequences" table in chapter 6.) The
device ID returned for the Portable PLUS is 45711 .
• Accessing the Display. The Portable PLUS provides an expanded software interface
to the display in both alpha and graphics modes. (Refer to IIVideo I/O Interrupt" in
chapter 5 and "CONsole Driver" in chapter 6.) In addition, it uses a different LCD
controller than the HP 110. (Refer to "Display Operation" in chapter 7.)

Comparisons With Other Computers

A-1

• Accessing the Modem. The modem is an optional addition to the Portable PLUS,
whereas it was standard in the HP 110. This means that applications will have to
check for the presence of a modem. (Refer to the "AUX I/O Control Commands"
table in chapter 6.)
• Detecting a Modem Carrier. Unlike the HP 110, the Portable PLUS generates a
software interrupt when a modem carrier signal is detected. (Refer to "Int 42h" in
chapter 5.)
• Reading from the Aux Device. The Portable PLUS AUX device does not block
characters. For example, when a driver call is made to the AUX device to read 10
characters, it will return immediately with the 10 or less characters that it has
already buffered. In the same situation the HP 110 will wait in the driver until it
has the full 10 characters to return.

A

• Using Device Names. The HP 110 shared the COM 1 device name between the serial
interface and the built-in modem. The Portable PLUS uses the COM 1 name for only
the serial port, and uses the new COM 3 name for the optional modem. (Refer to
"Introduction" in chapter 6.)

A.2 Comparison With the HP 1 50
There are some fundamental differences between the HP 150 and the Portable PLUS
that may make it difficult to move programs between the two.
• Display Size. The Portable PLUS has a 25 x 80 character display, while the UP 150
has a 27 x 80 character display. Similarly, the Portable PLUS has a 480 x 200 pixel
graphics display, while the HP 150 has a 512 x 390 pixel graphics display.
• Display Buffers. The HP 150 has two seperate display buffers, one for alpha and one
for graphics. The Portable PLUS has one display buffer which can be either alpha or
graphics.
• Touch Screen. The Portable PLUS does not have the touch screen provided on the HP
150.
• Accessing the Display. Methods of communicating to the display also differ. The
Portable PLUS is a simple, character mode terminal which accepts the escape
sequences listed in "CONsole Driver" in chapter 6, including simple graphics escape
sequences. There are alternate ways to communicate with the console such using as
A- 2

Comparisons With Other Computers

the Video I/O Interrupt, the System Service Interrupt and other BIOS interrupts.
The HP 150 implements the HP 2623 terminal escape sequences which support block
mode and full graphics capabilities. It has its own alternate method of
communicating with the console, AGIOS, which is not implemented on the Portable
PLUS. The various BIOS interrupts on the Portable PLUS do not exist on the HP 150.
• Keyboard. The keyboard layout is obviously different on the two computers. The HP
150 has some keys that the Portable PLUS does not, but most of the functions can be
generated by using the modifier keys. For example, the ( Inse rt char) key is a
seperate key on the HP 150 but it is accessed on the Portable PLUS by pressing the
(Extend char)( +char) key combination.
• Reading from the Aux Device. The Portable PLUS AUX device does not block
characters. For example, when a driver call is made to the AUX device to read 10
characters, it will return immediately with the 10 or fewer characters that it has
already buffered. In the same situation the HP 15 a will wait in the driver until it
has the full 10 characters to return.
A

( " A.3 Comparison With the IBM PC
The Portable PLUS is designed to have a subset of the IBM PC BIOS Interrupts. Due to
differences in hardware, it is not completely BIOS interrupt compatable with the IBM
PC. Programs that run on the IBM PC by talking directly with the hardware will not run
on the Portable PLUS without modification. Many of the programs that run on the IBM
PC by talking to the BIOS interrupts will run on the Portable PLUS with little or no
modifications. The differences in the Portable PLUS BIOS interrupts and the IBM PC
BIOS interrupts are listed below.

A.3.1 Video Interrupt (Int 10h)
• The Portable PLUS LCD controller allows for two display modes, 80 x 25 Alpha and
480 x 200 Graphics. The IBM PC can display three Alpha modes (40 x 2S BW, 40 x
25 color and 80 x 2S BW) and three Graphics modes (320 x 200 color, 320 x 200 BW
and 640 x 200 BW) depending on the hardware configuration. All references to
graphics bits beyond 480 are ignored on the Portable PLUS.
• The Portable PLUS provides two cursors, underline and box. The IBM PC allows for a
configurable cursor from a single underline, a double underline, a triple
underline- -all the way to a full box.
Comparisons With Other Computers

A- 3

• The Portable PLUS has two pages of alpha display memory. The IBM PC has eight
pages of alpha display memory.
• The Portable PLUS does not have a light pen; it will always indicate not triggered.
• The attribute bytes are mapped differently on the Portable PLUS and the IBM PC as
shown below.
Portable PLUS Attribute Byte

I

b7

b6

b5

b4

b3

b2

b1

bO

I

LJ;;oo:

=
=
111 =
1 =

1
A

Underline
Halfbright (light font)
Inverse
Blink

IBM PC Attribute Byte

I

b7

b6

b5

b4

b3

b2

bl

bO

I

t

Foreground color
(underline)
" - - - - - - - - Intensity
- - - - - - - - - - Background color
" " " " - - - - - - - - - - - - - - - Blink

1

• The function to write characters in graphics mode works differently on the Portable
PLUS than on the IBM PC. On the Portable PLUS) when a character is written to the
display in graphics mode) it is ORed with the current character. When a character is
written in graphics mode on the IBM PC) the current character is erased and the new
character is written.

A- 4

Comparisons With Other Computers

~"

J

A.3.2 Equipment Check Interrupt (tnt 11h)
The result of the equpiment check interrupt is dependent on the settings in the PAM
System Configuration Menu rather than an actual poll of the hardware. There are a
few items to keep in mind when interpreting the status.
• If the selected Printer Interface is HP-IL or HP-IB, then the number of printers
attatched is reported to be one if there are one or more printers on the loop. If no
printer is found, then the number of printers is zero. If the selected Printer Interface

is Serial then the number of printers reported is always one.
• The number of disc drives reported is two greater than the number of External Disc
Drives selected in the PAM System Configuration Menu in order to include drives A:
and B:.
• The initial video mode reported is 80 x 25 using Color Card, although there are no
color capabilities.
A

A.3.3 Diskette/Disc Interrupt (tnt 13h)
The diskette interrupt is not implemented on the Portable PLUS. If called) it will
simply return.

A.3.4 Communications Interrupt (lnt 14h)
• The Communications Interrupt can be directed on the Portable PLUS towards the
serial port (DX = 0), the modem (DX = 1) or the current AUX device as specified in
the PAM System Configuration Menu (OX> 1). The Communications Interrupt on
the IBM PC can be used to select one of two RS- 232 cards (DX = 0 or DX = 1).
• The status bits returned by the Portable PLUS are very similar to the status bits
returned by the IBM PC, but there is a major difference in what the status means.
The Portable PLUS buffers the input of characters. The status returned is the current
status for the port) not necessarily the status of the port when the character was read.
The IBM PC does not buffer its input; therefore, the status returned with each
character is both the current status of the port and the status of the port when the
character was read.

Comparisons With Other Computers

A- 5

A.3.5 Cassette Interrupt (Int 15h)
The cassette interrupt is not implemented on the Portable PLUS. If called) it will
simply return.

A.3.6 Keyboard Interrupt (tnt 16h)
• The keyboard scan codes on the Portable PLUS do not match the keyboard scan codes
on the IBM PC. The Portable PLUS always returns a scan code of 0 for the Keyboard
Interrupt.
• The keyboard status bits differ slightly on the Portable PLUS and the IBM PC. The
IBM PC returns the status of the left and right shift keys seperately. The Portable
PLUS can not distinguish between the left and right shift keys) so the status of the
two always match. The IBM PC returns one additional status bit) the Scroll Lock
State) which is not implemented on the Portable PLUS.
A

A.3.7 Printer Interrupt (Int 17h)
• The IBM PC provides an area in RAM (40h:08h) called Printer_Base) which contains
the base address of the printer cards available. The Printer Interrupt can then be
directed to one of three printer cards on the IBM PC. The same Printer_Base area
has been reserved by the Portable PLUS although it is not actually used. The Printer
Interrupt is always directed to the Printer Interace specified in the PAM System
Configuration Menu.
• The IBM PC also provides a data area that may be modified to alter the printer
time-out. The Portable PLUS reserves this data area but does not use the
information. Printer timeouts may not be altered in the Portable PLUS.
• The printer status byte returned by the Portable PLUS will always indicate "0" for
Out-of-Paper (bit 5) and I/O Error (bit 3).

A.3.8 Re-Boot Interrupt (Int 19h)
The Portable PLUS forces a hardware reset when the Re-boot interrupt is called. The
IBM PC loads in track 0) sector 1 to the boot location and jumps to it.

A- 6

Comparisons With Other Computers

A.3.9 Tlme-of-Day Interrupt (Int 1Ah)
• The Portable PLUS maintains a separate time-of-day count and system clock.
Writing to the Time of Day Interrupt on the Portable PLUS does not reset the system
clock as it does on the IBM PC.
• Counts occur on the Portable PLUS at 18 times per second. Counts occur on the IBM
PC at 18.2 times per second.

A.3.10 Keyboard Break Interrupt (lnt 1Bh)
The default action for the Portable PLUS is to flush the key Queue and then put a "'C
(03h) in it. The default action for the IBM PC is no action.

A

Comparisons With Other Computers

A -7

B

Schematic Diagrams

This chapter presents schematic diagrams for the Portable PLUS and certain plug-in
extensions. The following diagrams are included:
• Motherboard printed-circuit assembly (four figures).
• Memory board printed-circuit assembly.
• Modem printed-circuit assembly.
• Software (ROM) drawer printed-circuit assembly.
• Memory.(RAM) drawer printed-circuit assembly (two figures).
• Memory drawer piggy-back printed-circuit assembly.

Schematic Diagrams

B-1

Figure B-1. Motherboard peA - Sheet 1

,--------------------------------------------------------,
:

ADDRESS

!

LA

T~H.ES
:1'
:I~

IU

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

!

I~C31Z

LULl

mm
· mm
m·
I'

•

:::

r---+~-~---tt-i m.:(:~. ~:~

\~~

l

~:.
I

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

,ccs-ll.~~

BUILT

IZCIZ

i

:ICCS~CC

;:

IN

"I~

:::ttl)I---::'+:I::---'
mHi---::'+:II:--.l

m
lU

1t.::H-·~-.:;t'I·=+:.z..r-.I

uu

HMCUI

U4

~m
:'::

L!!... II/II I

,ccs

US3

mm
m::: ::t:~=====~~~~~:5.;1=~
H'!------;:-:;:+t-~
::: m
m:t. ~

I * -_ _

ICCS-U-ICC
Sl

!

--lL

B

l:::

lI.

IC

------------------,
..USIP

U

:::s·...lL ',lce m:
:l::: • : ::I:l~S'
u ••
It I 'u
l:: J: Hi I~ :~:c:

i

•

Il

t

Ia..z.-_-t
tti
r----"'Hutr
•. ..,....--1
11l

tft - t - - - - - - - lDi'f:,rl---1

~
U21

1(S1'~

CPU
CIRCUITRY

I

IU'

~R3S

B-2

cn.~.c

I

•

~H.~~-==--=~-fl;D';J*I:=_~:l

UI4

n. n'~lc

U1

D,'lrl' ~IUr-----_"U-' .U• trtr,:r/.
1::1. lll
us

n I+IC
n '~IC

:~I':::~'

I

III

IUl mI-!+------;~H::~
m H+-----f:*oD:--1
,~:.
:

::1:

.4---1- 110

~~

--:-l:~:~

---lL ~

I-¥-----::-!'H-~

AD}

,

II
~:J1"

·::::m l:lt===~::~I:=:j
UUU..

I/O

CHIP~

r---

Schematic Diagrams

RS
~

LU

'41

I

LCUCS

R32

'''~IC

~

._._._. .

~

MOTHER BOARD TO MEIIORY BOAAO
CONNECTORS

...
"'

Jj

rees

uu
lIl1

U.
u,u".
ues

'LL:,11

rees

•

:::

'US
SUI"
01
It

n

II

recos
J2
II •
ill

~::

:

lit
LUlU.

...

Ulll12 •
UU
'CCS

"'

UO
'LUlU.
liD

OJ
IS

OJ
II

recos
J3

: ~ .. _-----_.-

UO
lit

.111.

......

IUD!

ALl
IeLi
IOUI
III

..

OU.
,CC.

11

fOD

i
ii

rOD
fOD

.,.,:~

liD
liD
liD

~

..

4

UII
UII

,cc.
II'
II
LU

U'

LU
110
II.
DU

YIDE 0

l._.__I.~~.E.~~~.~~

•

~~~

.11
II

~

recos

B

J4
lill.

1--L...J'------L....I1I/1I.

If'"
DSlH'

•

LU'
lIll
'CC,

'LUIIIU.
1111111 •
LU
LIS

~:

:

.15
DU
011

"'

~~~~~II

lie"

S '" 'SHUTS

TO
SHEE 1
1110

DATA
BUS

L...~.~~.~~.~ ... ~~~~_.

DUll

•

.

j

Schematic Diagrams

B-3

Figure B-2. Motherboard peA - Sheet 2

r-- -- - ------- - ---- -- - ---- - - - - -- - - - - -- - - - - - - - - - -- - -- - - - - - - -- - - - - - - - - -- - - -- - - - - - - - - - --""

I

I

I

I

!
I

OSlEEP *

R20
41K

41K

R21

*

5
4
J1
J6
43

EIIINTt
ElTINT2 *
F lXRD
IIR
DSlEEP
SLEEP ..
2.6111Hl

*

*

*

44

23
35

READY

LA4
LA3
LA2
LlI

H
41
40
39
38

U5CS *

R115
R& 16
R5 t7
R418
RJ 19
R220
AI21
RO 22
IIPP1
6
C7 1
IIPP6
IIPP5
C6 B
C5 9
Ro *
C410
!fA
C3 II
RST
C212
SLEEP*
IICLK
C1 13
READY
CO 14
IIPP2 4B
IIPPO 46
RS3
RS2
IIPPI 41
RSI
RSO
CS *

U16
IU5

R5
1 100K SIP

32

J3

R5 lOOK SIP
r-------------,

01
06
05
04
03
02
DI
DO

!:~

1I00EII
1I00EII
1I00EII

,.

-1 r3--'---'---' uL_L_U~ -1
2
IL...--t-

SOUl
RING *
CARRIER

VCCDS VCCDS

r- - - - - - - - - -p- -

12

,

13

R S23 2

RI 5

IV

L--,r,r--'3

8910"1:1:2

r--------:I:-:':N-:-I--:*~~

:::j

i"

-~ ! -~ -,lJ

~

I~
:
:

:

:~

IIPPO Rvccas
IIPPI .!LvccDs
SIN 45

J'

L

1

2

1"5
I L

lllS

SOUT

25

-+-_-.:3:.::.5-r, EA OY

IIPP&

5

lrl--:t=-:::~j-----f--~:~~ :~~
Irt--::t,-,:,-:~~-----+-----:;:-::-1 : ~ ~
L-f-...:.:R.:,,:S2=..:3:.::,.2:.:CS:'-"~_-4-_"",,"J:.:8-1 C5

*

U1B
illS

4

f

6

C7 7
C&""""8

~~:t
C3
C2
CI

26 01
2706
2805
29 D4
30 OJ
3102
3201
33 DO

'--

:u:

I
L_

13

'--- -- ----

:

~
~

-

:
-

_.I

1~7

~S1A08E

J::t
E

6~00

if

J!-

#-

tr~

IIPP2
........~ WCCDS

---

II

DUll
DUT2

5.6V

6

OSR

3
6

110
IOTA

OU13 8
RTS
Y+ ..!.,Ly +232
LTI032 YI
232 T T C 9
5 IN2
&N 0
,--::DUH
C B ~ ¢' 330pF
IMJ
_
4
J30pFCB.C9NDIL010ED

~2 INI

=:L1.-

r

11 '---

IL1"c

l

ON/orr

U1 9

RS232 ON

Ii·:,.--:.:.:.==.:.:;,.----------------------------i
[------------";-8;5;mu m_ --- m __u __u_m__mumuum
.I,:
oJ

I ~

VOO~CCS

SOlTlJN

I

l:~ :~~~ S~~LD4~

RB

,.---------.1 2

R4
41K
~ YCCOS'
~
veCS:
16

R7
A&
A5
A4
AJ

:~

I

10

v

RIO

J

---1 U22

---

~ GNO

VR5

,~

}~6.. 0 AESP
1 ~vvrr
J 114

f

4.1K SIP:

RS232 SOUT

r---

383

L--------------------

1 U1:
i,~:

T1

IRU 1010 19
7
10
25 ESEH
R9383
~-i
22 SClU101120
•
~TXREF
:
2& RU
I'
9
I
:
21 IlR
C3
VR1
NO PJN 2 1
28 CS *
6.2Y ~
--,
,
3 RS2
!LB3 220pF T T
.~.
VR2
I
~'
4 RSI
~ ~2~0~F ~ ~ 6.2Y NC 4 1 J6
:
5 RSD
- : '
~ :~~~ ROXO 18
6 T 1 12
16 T 1 1
6 RIREF
1

SLEEP ..
211HZ
RO"
IlA
LB3CS.
LlJ
L12
LAI

*

I

11

*

:m:==t=
:~~~
~BUS3

ROIl

~BUSI

LCI

~BUS2

17

tt

1
NC

15K
R6
NC

TO
DATA
BUS
.J!..L-----!!- ~~CCS
SHE ET -+~----~Lr=:IIA~1S~CCH::-;:E-:;'~.::.:0N=::AI0lMRo:"::'RL~ES=-=s:------:I"lHI':"":"":'P---:"'S:r"'l'L"":"E"='CTnS:---.-If-+oI
U1 5

~
4

: ,

I :

I

e

•

13
VR3
33Y

R7
15 K

J

II

'.,

I; t
14

Jas ~O

5

RUN

VR4
3lY
PIN FOR PINS 3. It

HP - I l I N TE R F ACE

:
4'
:
:
:

!

__________________________________________________________________________.J

ONE

8-4

Schematic Diagrams

r

CTS

L__

.:W ++F:f'~
co

01
06
D5
D4
DJ
D2
01
DO

:

"

NOILOADEO

L-f-+=-::':~::-:;:.~*"':H.,.;;:~--+-+---.:~:.:;.~-r:IILCi~P *
a..++::.R,:.:EA:.::O..:..Y

9 ~

8RLSD

61

R10
r - oJ

_

B~.J

l.-tff

,.......-;

*

43 RSl

::,

---u'2-o-----.J
14HCI4

NC

UK SIP

I NT E RF ACE

VCCOS~

.J

IL

I~Sr;9::-----~-a'

6

Lv/lJ

'--

r----------------------------------------------------------,
L.J..UOl SIP
J7

----------------3-3-0.JFCC~0

,

~C13

u' --3{-1,

U

-:-=~f~:::~~~~~~::::1:-~-~I--:':':'~~:'3:':';:' -

/ __L_

9

i:

•

: .-.. . . .---+-_........
~~I--_J_5
-+...===.=..-----

::
U21 B

SOUl 2S
IIPP4 3
IIPP3 2

lI-f-+-'-::fVI~:*'FR=-D*'-+-+--+--+--~~ ~:--I: ~:
DSLEEP *

-' --'---' --'

&yNC~ ~cc~;':.:'~:=~~-~:'~:==~-;;:'~S:I~=::_:':':'I-

* 3445

26
27
28
29
30
31

t!

5

INI
SIN

07
D6
05
04
DJ
D2
D1
DO

B

i'rt-' u3 _tu

I

11122122 23 ~
13 RB
14 R7
15 A6
1& R5
17 R4
18 A3
19 A2
20 RI
I C9
2 CB
3 C7
4 C6
5 C5
6 C4
7 C3
8 C2
9 C1
24 C12
25 CII
26 CIO

INTERFACE

**

:i
i

KEYBOARD

NC

~-------------

II!

--- - - - -- -- ------- -- -- -- -- - -- ----------- ------ ---- ----- -- -- - ------ -- --------.,

,. __~!]__ ~~~_:l.." __,

R5 tOOIC SIP
i---------ll

MOD EM

t:

~_~~ ~~bll~-Lumm~:_T_E_~~~:_Em__u

7)

1,

"'1-L~

v

6

I

UJN

f

----t-----:----~--_--t-t-_+__-_-_-_-_-___-_-_-_-_-_-__-_-_-_-_-__-_-_-___-+---+--+-+-~:~~~~ ~~~-*...-;~ : ~~~ ~
l

I

~

YCCOs:

14

10

CIJ
CID
SYSJNT*

I

9

UI 4

7

J6 P07
IB PB6
IS PBJ

J

~~: t-:~~~-t-t-+----lf--..,...I

NUll

22~ 6 ~ .,,39 DSC.
Y2

PD2r=:J..:..I_+-...;---~

JBOSC2

C7

3:

STEP4

POI t-=:J-.D--+_..
'6~

STEP2

I

poa 29

STEPI

I

PCI 27

PCJ~

22pF

,
B
9:
'
7 ,74C906
IIC ..-------- -_.. U22

pca 2B

U21

SlEEP

DSLEEP

14------;1

*

: 74HCI4 :
: YCCOS :
,
14 I

*

: 6

PC. 24
pcs 2J

R3 B

tOOl

HUH

PC7 21

r--------.J
-+-_ _-+- - I _ . _ _~BU~S:....:..T_~1.!_l7PBS

10 Pal

~----...;_~o:.;.&~Tl1___lC;!;L~I-~1~2~PBD
...;_~D:.;.l~Tl~~JN:::-__;1..;.....l4PB 2
OlTl

OUI

IJ

PB I

L

AESEl .. 1 PIUI..

L

I~ 9

I

BEEP

U21

I

R~;---'

47K SIP

PPU

A27 331 HCDS

~ 'CCDS
SI

TC5

..L:'

CIRCUITRY

I t -TAB

-.L
-=r-------------------------------------------------E2

BEEP" 13 2

BEEP 51 0

-rr:fl
~~ 2II~J06

A33

l--_ _
l--

.t, ~

f()

471

PAl

(TO SHEET 3)

CUAREIIT .. :
CAADSIN .. I

.. ---------------------t-t---.1

U17
oSLP

r-----..

19 PB 7

B

I

POUR

LOW BUTERT
SHUT DOn

vm;L~:::I46BDm r:~ 2

S:

PONER
SUPPLY
INTERFACE

1
I"

R11

1Il~

----=L..:.C:.,:oO:.,::Il:.......;:;...*~
...

r

K

~YSS

+

AU
MRESET"
MOoEIlON
L.--------f..-lfAf .... ~-

PO S r=:3.. .:. 4+-+-+_""""::"':''="="=,....
.._-_--_-_-.-._-_-..;.,--::S.::.,LE!:..:E:,,:,P_-4
PC2 f-=,2~6~-+ __y--lC_CD_S
-I--l_L~iiS~io.::.f~21J~il_---'1~...
PH...l....- __ r-fr~-------1 RJ7
YCCDS:
Po3...."J"""'2--t_......'....,2'-t
I
'~TEPB I

T::I: JRQ ..

74H&02

IIRCIl
12
MAESEl.. I
1l0oEIlON
10

Pl2 9
Po43J
PC6 22

40 YDo
YCCoS--nt"TIIIER

B

*

..-_ _+-........-+~...!.Il!.!:.C~AR!!.!!A!..!.I~ER!!...-~ IlCARAI EA

----+-------r---I-t-;-

CPUJNTR

:

~6No

I

T IOu' r
.¢

*

J

.1

Schematic Diagrams

8-5

Figure B-3. Motherboard peA - Sheet 3

~------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

lUlU
CU,

Tnll

III1Il

+

C5I

lUlU

un

..

cn

25'

fl :::mL

~1I'

LJ

CRII
lUlU

153
II

BATTERY
CHARGER

IICSU
CUI

.I,
CU2
lUlU

UI

110

--1"

I

~

)

nn

25'

JOI
JDFF

.111
un

CURUlt

D!!_(H:!_l_I

__________________________________l_._ _

A..

IIU

POIEU
11 an PII 25

11~:DI

-b

~

[SD

LOUC

FLOlI'

UI1 PII 22

S_"_£_~l__2

:~_~~£_~l_~

B

~~~~~~

~~~~:~

r'
:
I

j

~-----------------------ii}~--C~~~:~fljs--l

RS232

~
/'.~~J

SUPPLIES

."...

nll

*T

'm

¥

IIiC
1111

l

!

114151
,m

I~:~~'

~

-..-,.,-

C1
33 :

i

,

:I

151

i'lu

CI4
nil

:
.B-

"212

10 . ..., I

'"

PII "

cu T

nil

9

~ .i

nil
CII

as212Dlj

Met 400 t

UI1PII U

10 SHEn 2

'·lU
10 UHT 2
Iltl PII'

SLHP

un

PIIU

lD SHEEl 2

B-6

Schematic Diagrams

"

Figure 8-4. Motherboard peA - Sheet 4

vce

nAT

REGULATOR

21110~SHll'DD"
In
1115

1

Ull '1121
IOSH£[' 2

u 2222l

'l UU IU -~-~"':":'::-=--~"""--I-.I-f

~2 , II J3
FlU SIlEElI

I

AU

PlUC 111$ -I---~::"":-_+--+--"...-':""----H

nil

H Pilil
FAU SHEEt I

YeCDS

fCCS

IU

'I

.1..Jw.-1
113

nl •

.1..Jw.-1
sun
IU

nl.

. . - - - - - ~uu

to IU Ollil

017'11 H
FlDI sun 2

All

nl.

~

YeCS

B
.---_-4--~

UAT

"mJ~",

Ull PII,.
FaDl SHEEI 2

unUl
11111
II

LCD
NEGATIVE

SUPPLY

Schematic Diagrams

B-7

Figure 8-5. Memory Board peA

PCA

PCA

MEMORY

PCA
TO

MOTHER

J2

BOARD

PCA

ntH H

Jl

Leues

LII'
LIII
LAn
Lltl

31
H
B
H

t: ~:

~~

lAU
LAU
lUI
LIII

2:

llJ
LU

2:

~::

::

III

.

OU

II

I~

I
Lli
ll/'iOI CI
lutl u

01

DI

at

oe
D3
D2
01
01

J::

21

n

Ole
013
012
011
011
Of
01

~::n

n

t::

LA3
LA2

t::1
LIII
LAU

,

1,1
I

:

t:~

LU
LAe
lA)
LU
lit
LAO
ll/'iOI
llHtI
015
ole
013
OU

:::
at

01

~: I:

3

l::3

~::3
~::21

LAlt
llD

H-'

~: ~

~~: ~

~:

:

l::

J3·U
H- e

19

33-31
H-B

A
LAD
110
IHt
015
e
013
01

~3: I:
H-t

J.

H-I

01:

J}-.:

0:

51

07

II
51
51

01

5
5e

1

5)

52

U2

B

:

:

I:

8-8

Schematic Diagrams

::
::
I
"

011

os

UB
Iua 3
luau
UIA I

:gff

UIOU II

U12

U13

U14

U16
XUt 6

U15

a.
~
a

I:;

ilIA I

IIl1

:::::

I"

Ilf

II
AI

II
IS

•

It

g ::

II
II at

U

:~

::

I

I[

~:::I~I n:I~1 n:I~1

11111111111111111111111111111111
SUI SUI
SUI
SUI
SUI
SU,
SU.
SUI
Ult

;:~ ... ::

U

... ::

lUll

... ::

...

JA~"l

.,
CSI

I

:::

Wlr~ ~~

110

S I

I

DU

~1:~U;gi {U

l .. lL

n

Rtt==-1t H

103
JU
IDI
101

...

U.I
II

II
U

~a.
~a3
~al

~m~m
u BO,: II 1-'3=--_~-+-+~

-L

fees
',~:O
<)--L n 0

1L

::

++-++_

H-fr-t>+-:
__

:~ ...-z----++-++-

'--

-

U16

--

01 ••• PIIUUUc>

"'.U L• AU

yceDS

1

yceDS

·1

Te1 TC2
"¢ lQ1J V IOJl

B
120

rrttt
U21

U28

U29

U30

U31

U32

U33

I( •

DE •

01.·27
01.-11
01.-25
0/1-21
011-21
oIl-U
011-21
011-21

~+!­

E!-!--

- .11

""-

~'-

,-

~:::: ~,.­
~::n

'

.II-II] ,
.l1-n

-n

8-14

Schematic Diagrams

---- ---- -

"UP

1/.11
IZDl
IZDI
IZDS
IZU
IZU
IZDZ

...............

•

.

ID 5
I

lOB

II
11
II
II
II
21

SO
TO
PAGE

n

1110

n

YCCDS

~l~
U13
_.
I
fCCDS..!l- fCC
s

IC~f5

~~ ~

I

~

g~

~

I4

I

GO
PA 6E

--t_ _...Lt.:.:.:...._
cs
I

4-

"'----

BALE
lUI
lUI
UI1
lU5
lU
lU4

---------+++++++++-------------_HH-1------------+--t-iH-+-----2
r-+-++-+--t------4

rct~t
I

"""Cdt

TVO
JI-U
JI-37
JI-31
JI-35
JI-35
JI-n
JI-H

60 TO
PA6 E
TIl 0

--------H-H-+-+-++~------------++++----------_H+++-+------3

H

TO

C UO

B

rcffi- rcffi- rcffi- cht rJft cffiC£I

eEl

C£I

eEl

eEl

C£I

U36

U37

U3B

U39

U40

U41

fCC

U

no

U34

- - - -__+:2HIE

U35

60
5

TO

PAGE

TVO

*

uDlu*

FIIl:.:.,1.:.:'l-H-.t.=-t

tI

J/DI
1101

II
J

1/05
1/04
I ZD3

I
5
13
2

lin

J..ill..
~14

"----15

60

TO

PAGE

TID

---- ----

a07
101
105
104
103
102
IDI
I

I
J

I
I
II

II
n

u

60
TO
PA 6E

T If 0

unUlfP

Schematic Diagrams

8-15

Figure B-9. Memory Dr awer peA - Sheet 2

I2
""'---H
-!-:~::~DII";'''!-I

31.

--------------------------------------,

I

•• U

H

1

• I 1
•
21

)2

nn
R2

;

J2 ~~~:~:t4-H-t~1----------------------------t-It_HH----i1r-J\lrv--t

J,.,

~

I

41.1

I-.I,,~'-!:~~H:------+f------.---------------HH-iH-iH-l~

I~n~u nil
II 1·1 U ID'

: :D:I
::~I

I

n •

II .ul
~

recos::::H::
reCDS

rec~ rec

II

~

::n:

'CCD~

<)--ll._ _ P----t>

::

-----j-HU

I 5 41 • I 0 23

~

"--------t"uH

'""'~:-----;:~D7;.:./..::.Il.:....---....,

~~~==l:~:4~====~....,

AI,

:.!

lID

HLl;L

13 ~

'------..........,.i

.... t

~

-

,--1.!!ll.!!L..

R3tlll

R6

I

J

"-----t:r1
3 ::

I

DII

~

rec~e:c~UIO:U tt' :::~.*
'-----1+ ::
:: H~:-----!-!::!+':::------'
L...----~::H::
::, ::::

1111

L...------+t H
4 :~
L...------""""'u"-t.3
-

H
~
&3..!-....!!!

~

- 2 ••• 11tC

~~t;~::~;~,=:::::J~~~~~~~~==============ii~: (2:: ~H~ ~:~!i:~i :H-i=_=-=_:.:. ~-f:-4:~-f:-4t~-+:-4t~-+:-+~-+=
t -=_=-=_=-=_=-=_=-=_=-=_=-=_=-=_=-=_=-=_=-=_=-=_=-=_=-=_=-:+t:+-:+t:+-:...~t-:_=...:t_~+-- ~

14:-!-•.;l:D!f'1~~--......,t_HH-if-------_t:H~::
4;-.I .-:;uETi-,
H
: ':D~.r;.~---......,t_Hf-------_t:+t::~
HoI T
- - - - - + - 1 - - - - - - - - ; - 2H
13
'
J3

B

:

:D:'

reu
...L.-t>
.ll.-.t>

MA 13
MU2
HAll
HAlO
MA9
HAB
MA 7
MA6
MA5
MA4
MA3
MA2
MA 1
ND7
NO 6
NOS
NO 4
M03
MD 2
NO 1
NO 0

vee OS

C1 02
8-18

C10 1

C109

*

H+-

**

o1

UF

DECOUPLING

Schematic Diagrams

-it-

** ~
*

***
*
***
**
***

*

27
22
Ne - t 23
21
24
25
3
4
5
6
7
8
9
10
19
18
17
t6
15
13
12
11

CAPACITORS

WE
DE
NC
A12

*

*

AU
Ato
A9
A8
A7

A6
AS
A4
A3
A2
Al
A0
I/O 8
1/07
1/06
I/O 5
I/O 4
I/O 3
I/O 2
I/O 1

*

20
CEt

I---

*

J-

I--

10-

~

I--

~

~

--

--

I--

.--

I--

~

~

---I HM6264LFP
~

-

fo~

U10 4

fo~

-

~

-

~

~

~

~

~

~
~
~

---

CS 4

*

-

---

*

20
CE t

*

-

l-

l-

I~

-

U1 0 3

~

~

*

20
CEt

-

~

~

-

I--

-

~

-

U1 06

-

-

-

.--

-

-

-

fo-

-

--

--

fo-

~

~

--

-

.--

I-

U 1 0 fofo1 -

-

.--

fo-

I--

~

~

CS2

*

*

20

*

vec CEt
6N 0
eE2

C5 4

CEt

I--

20
VCCOS

1t---C>
MVH
MR0 *
16
~vceos *

T

*

--tl-

es 1

~VCCDS
~

-L

CS2

20

J.l.-

i+--

*

VCC CEl
6N 0
26
CE2
27
NE
22
DE
N C - t - NC
Ai2
23
All
21
A10 U
24
A9
25
AB
1
3
A7
4
A6
0
5
A5
6
A4
2
1
A3
8
A2
9
AI
10
A0
19
I/O 8
18
I /0 1
17
1/06
16
I/O 5
15
1/04
13
1/03
12
I/O 2
11
I/O 1

VCCDS

H015
Mo14
M013
M0 12
MOll
Mol0
M09
NO 8
MO 7
NO 6
NOS
N04
M03
N02
MOl
MOO

8

B

**
***
*
***
**

CS0
CS3
CS5
C56
CS7
CS 4
CS2
CS1
MA13
MA 12
MA 11
MAlO
MA9
MA8
MA7
MA 6
MA5
MA 4
MA3
MA2
MA 1
M8HE
MAO

Il-

U105

--

I-

~

~

~

I-

---

-

.-~

--

fo-

II-

r-r--

l-

I-

I--

fofo-

I~

~

l-

I--

~

II-

~

r-r--

fo-

~

~

I-

~

~

I-

r-r--

fo-

I-

-

~

es 7

*

es 6

*

20
CEl

*

U10 8

eS5

*

20
eEl

*

U11 0

e S3

*

20
CEl

*

U112

e S0

*

20

eEl

*

U 11 4

20

eEl

*

U11 6

B

20
eEl

20

20

20

20

U109

U111

U11 3

U11 5

*

U107

Schematic Diagrams

8-19

;.,

·

.

..

:.... ::

.

.

.

..

..

Assembler Listing for
Configuration EPROM

c

This chapter presents the assembler listing for the u.s. English version of the
configuration EPROM code. The listing contains the following parts, which begin on
the pages listed.
Page

Information

C-2
C-3
C-3
C-3
C-3
C-4
C-4
C-5
C-6
C-7
C-7
C-7
C-8
C-8
C-8
C-9
C-IO
C-IO
C-ll
C-17

Product number and Edisc boot sector.
Serial number.
Initial liquid-crystal display contrast.
Configuration EPROM boot code information.
Country-specific information.
Timer reference and key repeat rates.
Console status indicators.
PAM variable defaults.
Mute tables.
Configuration EPROM checksum.
Built-in RAM.
International country code.
Numeric keypad map.
System power specifications.
Baud rate table.
Initial font load.
TERM softkey string.
Keyboard character code maps.
System string addresses.
System strings.

Assembler Listing for Configuration EPROM

C-1

..

name
page

crom
84,132

***********************************
CROM.ASM
Portable PLUS Configuration EPROM
--U.S. version [Rev B: 6/20/1985]

***********************************
0000

CROM

0000

SEGMENT BVTE
ASSUME CS:CROM,DS:CROM,ES:NOTHING,SS:NOTHING
ORG
0

jl*I****.I##.*.IIII.I••*I*I.I***#•••***.I****I••• *••I.#.#•••1

;•••••1.1
P 0 r tab 1 e P l U S
'1*****1
;1••**...
.*.*11.*
;'1*11111 CON FIG U RAT ION E PRO M
1#1••••1
;.111111••••••••••111•••••••••••••1.1.*•••••••••••••••*1"'"
= 8000

CROMioaddr

equ

8000h

Config EPROM I/O base address

= 0300

KEVMAPorg

equ

0300h

HP and Alternate mode keyboard
character code maps are assembled
at this address, but do not appear
in this listing.

OCOO

STRINGorg

equ

OCOOh

PAM and TERM strings are assembled
at this address.

0000
0000
OOOA
001B

NULL
CR
LF
ESC

equ
equ
equ
equ

OOh
ODh
OAh
IBh

Null character
Carriage return
Line feed
ESCape

IOaddr

macro
local
.sall
temf =
.xa 1
dw
endm

addr
temp
(offset &addr-offset $Header) shl I

+

CROMioaddr

temp

.11st
; •••••••1••••••••••••••••••

*••••••••••••••••••••••••1•••••••1•• ;

; PRODUCT NUMBER AND EoISC BOOT SECTOR

;

~ This is the information that normally appears in a disc boot ~

; sector. It must be the first data in the Config EPROM.
;••••••••••*••••••••••••••
**•••••••••••••••••••••••••••••1 ••••• ;;
0000
0003

C

OOOA
OOOB
0000
OOOE
0010
0011
0013
0015

0016
0018
aOIA
OOIC
OOIE
001F

C-2

$Heade r
EB lC 90
34 35 37 31 31 20
20
42
0200
01
0001
01
0040
015F
FA
0005
0001
0001
0000
F4
$Spa rei
FF

(Jump around header)
Product number

db
db
db
dw
db
dw
db
dw
dw
db
dw
dw
dw
dw
hIt
db

'B'
512
1
1
1
64
351

OFAh
5
1

I

0

-1

Assembler Listing for Configuration EPROM

0

0

N
0

A

L

T
T
E
R

Config EPROM rev letter (6/20/85]
Bytes per sector
Sectors per allocation unit
Reserved sectors
Number of FATs
Entries in root directory
Number of sectors

~~~6:rd~~c~~ft~~ctors

Sectors per track
Number of heads
Number of hidden sectors
HALT instruction
-unused-

***********************************
SERIAL NUMBER

This 32-byte string contains each
machine's unique serial number.

***********************************
= 0020
0020
002A
002C
0020
002E
002F

OA
20 20
42
20
00
12 [

FF

FF

SSerialNumber
STRserialnum

equ
db

this byte
10 dup (-1)
20h,20h

serialspares

db
db
db
db
db

"B"

o

18 dup (-1)

10-byte Serial Number
two spaces
hardware version
U.S. designator ("space")
zero termlnated
-spares-

;*****************************************;
; INITIAL LIQUID CRYSTAL DISPLAY CONTRAST ;
;*****************************************;
0041

07

$Contrast

db

; Range is 0 (darkest) to 15 (lightest)

;************************************************************
; CONFIGURATION EPROM BOOT CODE INFORMATION

; If the Bootflag is nonzero~ the BootAddress and Bootlength
; words indicate the Config tPROM starting I/O address and
; length to be downloaded during system boot.

;************************************************************

= 0042
0042
0043
0045
0045

"
.

('

./,."

00
0000
8084

$Bootlnfo

equ

this byte

BOOTflag
BOOTlength
BOOTaddress:

db
dw
IOaddr
dw

o
o

$BootInfo
??OOOO

O=No Boot, 1=Boot
Boot code length (in bytes)
Boot code I/O ada,ess

;*************************************************************;
COUNTRY -SPECI FIC INFORMAT ION

......

:

32 bytes of country-specific data required by MS-DOS.
Tables (0) through (5) are loaded from ROM into RAM during
system boot; then the "SCount ryTable" values below overlay
table (5) to allow for changes to one of these ROM tables.
For example, if the U.S. ROM table requires changes then
"CurrentCount ry" should be set to '5' (rather than '0') and
; the desired ISCountryTable" values should be substituted.
,

,

;*************************************************************;
0047

00

CurrentCountry

$CountryTable

0048

db

o

Selects U.S.
0: US
1: UK
2: Germany

equ this byte

table
3: France

4: I t a I y

5: Spain (modified below)

values below overlay table (5)

; For the US,UK,Fra,Ger,Ita & Spa Config EPROMs, table (5) remains
; Spain--unless one of these ROM tables requires changes.
0048

0001

LOCALtimedate

dw

004A
004F
0051
0053
0055
0057

50
2E
2C
2F
2E
03

LOCALcurrency
LOCALthousands
LOCALdecimal
LOCAldate
LOCAL time
LOCALbits

db
db
db
db
db
db

0058
0059

02
01

LOCALcents
LOCAL24hourclk

db
db

2

005A
005C
005E

08C8

LOCALcasemap

3B 00

LOCALdatalist

dw
dw
db

08C8h
OOOOh

0060

08

LOCALspares

db

74 73 00 00
00
00
00
00

0000

FF

'Pt s' ,0,0

, .' ,0
, " ,0
'I'
,00
,
I

3'

,

1

';' ,0

8 dup (-1)

Time & Date format (2 bytes)
o - h:m:s m/d/y IUS)
1 - h:m:s d/m/y Europe)
2 - y/m/d h:m:s Japan)
Asciz currency (5 bytes)
Asciz thousands separator (2 bytes)
Asciz decimal separator (2 bytes)
Asciz date separator (2 bytes)
Asciz time separator (2 bytes)
Currency symbol position (1 byte)
o - s~bol precedes amount, no space
1 - s~bol follows amount, no space
2 - s~bol precedes amount, one space
3 - symbol follows amount, one space
Number of digits after declmal (1 byte)
12/24 hour flag (1 byte)
o - 12 hour; 1 - 24 hour
Case mapper offset (4 bytes)
(do not change)
Asciz data list separator (2 bytes)
'comma' if lOCALdecimal is 'period'
'semicolon' if LOCALdecimal is 'comma'
Round out to 32 bytes total

Assembler Listing for Configuration EPROM

C-3

c

***************************************************************
TIMER REFERENCE AND KEY REPEAT RATES
The one-second reference (3 bytesl is based on I master clock
frequency of 2.667 MHZ, and is ca culated as (2667000/6).

= 0068

One Second = 444500 (06C854h)
1/50 Second = 8890 (0022BAh)
***************************************************************
equ
STimer50
this byte

0068 BA
0069 22
G06A 00

One50thLow
One50thMiddle
One50thHigh

db
db
db

OBAh
022h
OOOh

1/50 Second, low byte
middle byte
high byte

STimerTick

equ

this byte

ooac

0060

76
60
00

HeartLow
HeartMiddle
Hear tHigh

db
db
db

76h
60h
0

Hea rtbe at (t imer tick)
in t e rv aIr e f e re nc e
(1/18 second)

006E
006F

12
10

TicksPerSec
KeyRepRates

db
db

12h
10h

Heartbeat rate (18 ticks per second)
Ker repeat interval:
-- st re~eat interval (low nibble)
(0 tic s = 13/18 second)
--succeeding repeats (high nibble)
(1 tick = 1/18 second)

:a

0068

0068

;**********************************************************;
;
; CONSOLE STATUS INDICATORS
.
.
;
; These 16 bytes deflne the screen locatlon of the console ;
;
; status indlcators (when activel' Column numbers range
; from
to 79; row numbers shou d be
or 1 (for the 1st ;
; or 2nd line of the softkey label area). 'C represents ;
; 'caps lock on'; 'I' represents 'insert character on';
;
; and 'N' represents 'numeric keypad on'.
;
;

°

°

;**************~*******************************************;

= 0070
0070
0072
0074
0077
007A
0070

00
00
43
49
4E
01

007F

11

54

48
00 4E
00 50
01 48
4C

$Indicators

equ

'this byte

INDcursorcol
INDcursorrow
INDcapslock
INOinschar
INOnumpad
INOtimeofday

db
db
db
db
db
db

°0,42*2
36*2
'C',O,39*2

'I ' ,0,40*2
'N' 1 36*2
1,3~*~

Cursor's column location displayed here
Cursor's row location displayed here
'caps lock' indicator on 1st line,col 39
'insert char' indicator on 1st line,col 40
'numeric pad' indicator on 2nd line,col 36
Time-of-day clock positioned here

INDSpare

db

?

-unused-

c

.... -...:."

C-4

Assembler Listing for Configuration EPROM

;***********************;
; PAM VARIABLE DEFAULTS;
;***********************;
0080

2A

$PAMinfo

db

42

0081

04

PAM_partition

db

0082
0083
0084
0085

01
01
00
00

PAN extdrives
PAN:verify
PAM powersave
PAM:timeout

db
db
db
db

00S6
0087
00S8

00
00
00

PAM cursor
PAM-conmode
PAM:beep

db
db
db

o
o
o
o
o

00S9

IF

PAMplotter

db

31

OOSA
008B

IF
00

PAMprinter
PANprmode

db
db

008C

00

PAMprpitch

db

0080

00

PAMprspacing

db

OOSE

00

PAMprskip

db

(Bytes that follow)
SYSTEM CONFIG:
Main Memory/Edisc partition--number of 4K
byte blocks (berOnd 64K) of Main Memory
Number of externa CSSO dlSC drives
Disk write verify (0=enabled 1 l=disabled)
Power save mode (O=enabled, l=disabled)
Display timeout (12=1 min, 0=5 min, 5=10 min,
6=15 min, 9=30 min, 10=never times out)
Cursor type (O=Underscore, l=Box)
Console mode (O=HP, I=Alternate)
Tone duration (O=long beep, l=short beep)
PLOTTER:
Plotter interface (0-30=HPIB absolute
address, 31=HPIl, 32=serial port,33=HP82164A)
PRINTER:
Printer interface (same values as PAMplotter)
Screen dump mode (O=Alpha and HP Graphics,
I=HP Graphics only, 2=Alpha only)
Print pitch (O=unspeci~~ed I=Normal, 2=Expanded, 3=Compressed, 4=Expanded-CompresSed)
Line spacing (O=unspeclfied, 1=6 lines/inch,
2=8 lines/inch)
Perforation skip (O=unspecified, I=enabled,
2=disabled)
SERIAL PORT:
Baud rate (2=110 4=150 5=300~ 7=1200, 9=2400,
11=4800, 13=96 60 1 14= i 9200 B~S)
Word length (0=7 blts, 1=8 bits)
Stop bits (0=1 stop blt~ 1=2 stop bits)
Parity (O=Even, 1=Odd ~=None)
XON/XOFF lo=enabled, i=disabledj
ers line O=ignored, l=observed
oSR line O=ignored, l=observed
oCD line (O=ignored, l=obse~ved
Power to serial port (O=Of~ 1= n)
HP82164A:
Baud rate (same values as PANserbaud)
Word length (0=7 bits, 1=8 bits)
Stop bits (0=1 stop blt~ 1=2 stop bits)
Pa r it y (O=Even, 1=Odd, ~=None)
XONjXOFF lo=enabled, l=disabled)
eTS line O=ignored, l=observed)
DSR line O=ignored, l=observed)
oCD line O=ignored, l=observed)
Power (not used)
MODEM:
Baud rate (2=110, 4=150 5=300, 7=1200 BPS)
Word length (0=7 bits, i =8 bits)
Stop bits (0=1 stop blt~ 1=2 stop bits)
Parity (O=Even, l=Odd ~=None)
XON/XOFF lo=enabled, l=disabled)
ers line not used1
OSR line not used
OCD line (not used
Power to modem (0= ff, I=On)
Aux Device (O=Serial Port, 1=HP82164A, 2=Modem)

4

1

1

31

o
o
o
o

OOSF

00

PAMserbaud

db

13

0090
0091
0092
0093
0094
0095
0096
0097

00
00
00
00
00
00
00
00

PAMserword
PAMserstop
PAMserparity
PAMserxon
PAMsercts
PAMserdsr
PAMserdcd
PAMserpower

db
db
db
db
db
db
db
db

o
o
o
o
o
o
o
o

0098
0099
009A
009B
009C
0090
009E
009F
OOAO

00
00
00
00
00
00
00
00
00

PAM82164baud
PAM82164word
PAM82164stop
PAM82164parity
PAM82164xon
PAM82164cts
PAM82164dsr
PAM82164dcd
PAM82164power

db
db
db
db
db
db
db
db
db

o
o
o
o
o
o
o
o

OOAI
00A2
00A3
00A4
00A5
00A6
00A7
00A8
00A9
OOAA

07
00
00
00
00
00
00
00
00
00

PAMmodbaud
PAMmodword
PAMmodstop
PAMmodparity
PAMmodxon
PAMmodcts
PAMmoddsr
PAMmoddcd
PAMmodpower
PAMauxdev

db
db
db
db
db
db
db
db
db
db

o
o
o
o
o
o
o
o

PAMspares

db

17 dup (-1)

FF]

13

7

°

OOAB

11

OOSC

00C8

AUX_RetryCount

dw

200

OOSE

OF60

PANaddr

dw

OF60h

c

i -unused-

Retry count for AUX driver (in multiples
of 50 ms, so 200 = 10 seconds)
Address of PAM data from offset
(used by diagnostics)

Assembler Listing for Configuration EPROM

C-5

~.*

•••• ***********************************************************

; MUTE TABLES

;

;
;
;
;
•
;
;

The first word is the I/O address of an appropriate asciz
string of characters (generally vowels) to be muted. The next
six words are IOaddr pointers to mute tables for local function
keycodes 20h-25h. Each mute table must have the same number of
entries as the number of characters in the Mutables list.
The first seven 10addr pointers apply to HP mode; the second
seven IOaddr pointers apply to Alternate (ANSI) mode.

;*****************************************************************

= OOCO

GOCO

$MuteTableHP
81B8

+

OOC2 8108
OOC4 81F8
OOC6 8214

+

QOC8

+

OOCA
OOCC

826E

+

IOaddr
IOaddr
dw
IOaddr
dw
IOaddr

dw

$MuteTableIBM

= OOCE

OOCE

828C

+

0000

82AC

+

0002

82CA

+

0004

82E8

+

0006

8306

+

0008

8324

+

OOOA

8342

+

HPMutables
??OOOI
HPAcc ut eAcce nt
??0002
HPGraveAccent

dw

+

+

this byte

IOaddr

dw

+

8232
8250

equ

??0003

HPCircumflex
??0004

HPUmlaut
??0005

IOaddr
dw
IOaddr
dw
equ

HPTilde

IOaddr
dw
IOaddr
dw
IOaddr
dw
IOaddr
dw
IOaddr
dw
IOaddr

IBMMu1ables

dw

IOaddr
dw

??0006

~~~~6~S pa r e
this byte
??0008

IBMAccuteAccent

??0009

IBMG r aveAcce nt
??OOOA
IBMCi rc umflex
??OOOB
IBMUmlau1
??OOOC
IBMTilde
??OOOO
IBMMuteSpare
??OOOE

;*********************;
; HP MODE MUTE TABLES ;
;*********************;
OODe

20 61 65 69 6E 6F
75 79 41 45 49 4E
4F 55 59 00

HPMutables

db

OOEC
OOFI

27 C4 C5 05 SE
C6 C7 79 EO DC
E5 4E E7 ED 59

HPAccuteAccent

039,196,197,213,110
198,199,121,224,220
229,078,231,237,089

0100
0105

OOFB

60 C8 C9 09 6E
CA CB 79 Al A3
E6 4E E8 AD 59

HPGraveAccent

db
db
db
db
db
db

010A
010F
0114

5E CO Cl 01 6E
C2 C3 79 A2 A4
A6 4E OF AE 59

HPCi rcumflex

094,192,193,209,110
194,195,121,162.164
166,078,223.174,089

0119
011E
0123

20 CC CD 00 6E
CE CF EF 08 A5
A7 4E OA DB EE

HPUmlaut

db
db
db
db
db
db

0128
0120
0132

7E E2 65 69 B7
EA 75 79 El 45
49 B6 E9 55 59

HPTilde

126,226,101,105,183
234,117,121,225,069
073,182,233,085,089

0137
013C
0141

7E E2 65 69 87
EA 7S 79 El 45
49 86 E9 55 59

HPMu1eSpare

db
db
db
db
db
db

OOF6

c

C-6

II

aeinouyAElNOUV",O

096,200,201,217.110
202,203,121.161,163
230,078,232,173,089

032,204,205,221,110
206,207,239,216,165
167,078,218,219,238

126,226.101,105,183
234,117.121.225,069
073.182,233.085,089

Assembler Listing for Configuration EPROM

aein
ouyAE
INOUV
aein
ouyAE
INOUV

aein
INOUV
aein
ouyAE
INOUV

OUYAE

****************************
ALTERNATE MODE MUTE TABLES
****************************
0146

20 61 65 69 6E 6F
75 79 41 45 49 4E
4F 55 59 00

IBMMutables

0156
015B
0160

27 AO 82 Al 6E
A2 A3 79 41 90
49 4E 4F 55 59

IBMAccuteAccent db
db
db

027h,OAOh,082h,OAlh,06Eh
OA2h,OA3h,079h,041h,090h
049h,04Eh,04Fh,055h,059h

aein
OUOAE
IN UV

0165
016A
016F

60 85 8A 80 6E
95 97 79 41 45
49 4E 4F 55 59

IBMGraveAccent

db
db
db

060h,085h,08Ah,080h,06Eh
095h,097h,079h,041h,045h
049h,04Eh,04Fh,055h,059h

aein
OUOAE
IN UV

0174
0179
017E

5E 83 88 8C 6E
93 96 79 41 45
49 4E 4F 55 59

IBMCi rcumflex

db
db
db

05Eh,083h,088h,08Ch,06Eh
093h,096h,079h,041h,045h
049h,04Eh,04Fh,055h,059h

aein
OUOAE
IN UV

0183
0188
0180

20 84 89 88 6E
94 81 79 8E 45
49 4E 99 9A 59

IBMUmlaut

db
db
db

020h,084h,089h,08Bh,06Eh
094h,081h,079h,08Eh,045h
049h,04Eh,099h.09Ah.059h

aein
OUOAE
IN UV

0192
0197
019C

7E 61 65 69 A4
6 F -75 79 41 45
49 A5 4F 55 59

IBMTilde

db
db
db

07Eh,061h.065h.069h,OA4h
06Fh,075h,079h,041h,045h
049h,OA5h,04Fh,055h,059h

aein
OUOAE
IN UV

OIAl
01A6
01AB

7E 61 65 e9 A4
6F 75 79 41 45
49 AS 4F 55 59

IBMMuteSpare

db
db
db

07Eh,061h.065h,069h,OA4h
06Fh,075h.079h,041h,045h
049h.OA5h.04Fh,055h,059h

aein
OUOAE
IN UV

db

" aeinouyAEINOUV·,O

;******************************;
; CONFIGURATION EPROM CHECKSUM ;
;******************************;

r

= 01BO
01BO
01BB
01BO
01BE

3F 3F 3F 3F 3F 20
3F 3F 3F 3F 3F
41 30
00
FFFF

$ROMinfo

equ

this byte

ROMpartnumber

db

"?????-?????"

-Reserved-

ROMrevcode

db
db
dw

'AO'

-Re se rved-Re se rvedCon fig EPROM checksum

ROMchecksum

°OFFFFh

;**************************************************************
; BUILT-IN RAM

; This byte specifies how much RAM (excluding display memory
; and plug-in RAM drawers) is built into the machine.

;*********************************************~****************

= 01CO
01CO

01

OlCl

00 [ FF ]

$RAMinfo

equ

this byte

RAMbuiltin

db

1

Number of 128K byte blocks

RAMspares

db

13 dup (-1)

-unused-

;****************************;
; INTERNATIONAL COUNTRY CODE ;
;****************************;
01CE

18

$ C0 U n t r yS i ze

db

24

OlCF

22

$CountryCode

db

34

c

Bytes of data in $CountryTable
(excluding unused LOCALspares)
$CountryCode remains 34 for all
Config EPROM language versions

Assembler Listing for Configuration EPROM

C-7

***************************************************************
NUMERIC KEYPAD MAP
This string of 32 bytes specifies the scancodes and keycodes
generated when the numeric keypad is active. The keycodes
have an implied attribute of SOh ( transmit character").
(See "Keyboard Ope ration" in Chapter 6.)
ll

***************************************************************
0100
0108
OlEO
OlE8

2A
32
23
3C
25
3D
2F
3E

37
2F
34
2A
31
20
30
2B

db

42 , , 7 ' ,43 , ,8 ' ,49 , , 9 ' ,50 , , / '

2C 35 34 36

db

35 , ,4 ' ,44 , •5 • , 52 , ' 6 ' ,60 , , *'

20 32 35 33

db

37 , , 1 ' ,45, '2' ,53, , 3' ,61 , ' -'

37 2C 36 2E

db

47 , '0 ' , 55 , , , ' , 54 , , . ' ,62 , , + '

28 38 31 39

SNumPadMap

;*********************************************************;i

; SYSTEM POWER SPECI FICATIONS

;
;
i High byte then low byte for each entry calculated as
;
; actual current (milllamps x 61~084). the battery ~-age ;
; on PAM's main screen is computed from these values.
;

;*********************************************************;
= 01FO

01FO
01F2
01F4
01F6
OIFS
01FA
01FC
01FE
0200
0202

0204
0206

26
16
00
05
05
OA
42
01
00
01
00
FF

20
AB
23
F7
OF
BO
DO
AC
05
01
00
FF

SPowerSpecs

equ

this byte

CURRENT REQUIREMENTS

POWER run
POWERwai t
POWERsleep
POWERdee ~s lee p
POWERrs2 2
POWERmodem
POWE Rc ha r ge r
POWERramactive
POWERramstdby
POWERromactive
POWERromstdby
POWERspare

db
db
db
db
db
db
db
db
db
db
db
db

026h,020h
016h,OABh
000h,023h
005h,OF7h
005h,OOFh
OOAh,OBOh
042h,ODOh
00Ih,OACh
OOOh,005h
001h,001h
~~~~iOOOh

Ope rat i ng
160 ma
Wait
95 ma
Sleep
.57 ma
Deep sleep
25 ma
RS-232
21.2 ma
Modem
45 ma
Charger input 280 ma
RAM active
7 ma
RAM standby
.09 ma
ROM active
4.2 ma
ROM standby
.003 ma
-unused -

;****************************************************;
; BAUD RATE TABLE
;

. .
;
; Each 3-byte entry  speclfles a baud ;
; rate based on a 2.667 MHz master clock. The codes;
; correspond to HP-UX (tm) stty codes.
;

;

;****************************************************;
SBaudRates

= 0208

C

0208
020B
020E
0211
0214
0217
021A
0210
0220
0223
0226
0229
022C
022F
0238

00
01
02
03
04
05
06
07
08
09
OA
OB
OC
00
OE
OF
IE
IF

023E

FFFF

0232

0235
0238

C-8

00
2A
71
58
DO
B8
5B
AD
56
E4
28
71
15
88
8A
44
00
00

00
68
45
2F
26
22
11
08
04
02
02
01
01
00
00
00
00
00

equ

this byte

db
db
db
db
db
db
db
db
db
db
db
db
db
db
db
db
db
db

0,0 0
1,4 23104
2,11 469
3,88 7
4,22i ,38
5,184 34
6,91 i 7
7,173 8
8,86 4
9 22 S,2
16,43 2
It,113{1
12,21
13,184,0
14,138 0
15,68 6
30,0, 6
31,0,0

bO
b50
b75
bl10
b134
b150
b300
b600
b1200 (default)
b1800
b2400
b3600
b4800
b7200
b9600
b19200
external a
external b

dw

-1

END OF TABLE

Assembler Listing for Configuration EPROM

**********************************************************
INITIRL FONT LOAD

FONTsegment is the system ROM segment address where the
default font tables start. The load table follows, and
each entry is four bytes lon~. The first two bytes give
a font entry's ID (its "name'). The next byte lndicates
where the font table begins in the ROM font segment (0 =
first set of 128 chars, 1 = second set of 128 chars, and
so on). The fourth byte defines the size of the font
(0 = 128 characters, and 1 = 256 characters).
As the table is processed. display RAM font areas are
filled in order, starting with the low half of Area 0
and ending with the high half of Area 2.

,**********************************************************

= 0240
0240

$FontInfo

equ

this byte

FONTsegment

dw

OFEOOh

FEOO

FONT
10

; Font table segment address

I BLOCK
ROM I 0=128
1=256 I

I--- ---- ---0242
0246
024A
024E
0252
0256
025A

08
00
00
09
FF
FF
FF

55
4C
40
55
FF
FF

00
08
09
02
FF
FF

01
00
00
01
FF
FF

HPFONTbase

025B
025F
0263
0267
026B
026F
0273

08
08
09
FF
FF
FF
FF

41
FF
41
FF
FF
FF

04
04
06
FF
FF
FF

01
01
01
FF
FF
FF

ALTFONTbase

db
db
db
db
db
db
db

8, 'U',
0, 'L' ,
0, 'M',
9, 'U'.
-1 , -1 ,
-1 , -1 ,
-1

db
db
db
db
db
db
db

8, 'A',
8. -1.
9, 'A'.
-1 , -1 ,
-1 , -I.
-1 , -I.
-1

0,

8.
9,
2,
-1 ,
-1 ,
4,
4,
6.
-1 ,
-1 ,

-1 •

1
0
0
1
-1
-1
1
t

1
-1
-1
-1

Neither table may
exceed 6*128 characters
(extras are ignored!)

,II

l

#1
#2
#3
#4
#5
#6
E~DP6~-HP TABLE (6*128 entries max)

256
HP Bold
Line Draw 128
Math Set
128
HP Thin
1256
-empty-

chars)

cha rs

chars
chars

#1
RLl Bold 1256 chars)
#2
RLl Bold aSain)
#3
RLl Thin 2 6 chars)
#4
-empt y#5
-empt y#6
E~DP~~- AL T lABLE (6*128 entries max)

c

Assembler Listing for Configuration EPROM

C-9

C
C
C
C
C
C
C
C
C
C
C
0274
027C
0284
028C
0294
029C
02A4
02AC
02B4
02BC
02C4
02CC
0204
020C
02E4
02EC
02F4

20
20
20
20
20
20
20
20
20
20
20
20
20
65
20
20
20
20
20
20
20
20
20
20
44
79
46
73
20
20
20
20
00

20
20
20
20
20
20
20
20
46
20
4E
20
52
20
20
20
20
20
20
20
4C
20
45
20
69
20
75
20
20
20
20
20

46 72 6F 60
48 6F 73 74
20 54 6F 20
48 6F 73 74
69 6C 65 20
61 60 65 73
65 60 6F 74
40 6F 64 65
41 75 74 6F
20 4C 46 20
6F 63 61 6C
63 68 6F 20
73 70 6C 61
6E 63 74 6E
20 20 20 20
45 78 69 74

include
.list

STRTERM.CRM

C
C
C
C
C
C

C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

(Rev 3/13/1985]

This asciz string (ioaddr STRING NUMBER 182 of file STRADDR.CRM)
contains soft key labels for the TERM ~ro9ram. Each label must
contain 16 characters, and the last c aracter must be a space.

*******************************************************************

C STRsoftkeys
C
C
C
C
C

C
C

strterm.crm

*******************************************************************
TERM SOFTKEY STRING

db

From

II

Host

db "
db

To

db
db

Host

db

II

II

File
Names
" Remote

db
db
db

II

Auto

db

II

LF

II

Mode

db

II

Local

db

II

Echo

db "Display "
db Functns
II

II

db
db

Exit

db 0

zero terminated

.list

c

C
C
C
C
C
C
C
C
C
0300

C-10

*******************************************
KEYBOARD CHARACTER CODE MAPS
HP and Alternate mode keyboard character
code maps are assembled at this address,
but do not appear in this listing. (See
the character code tables in Chapter 13
and "Keyboard Operation" in Chapter 6.)

*******************************************
org

KEYMAPorg

Assembler Listing for Configuration EPROM

OCOO

org

c
c
c

C
C
C
C
C
C
C
C
C
C

:: OCOO

OCOO

9BOO

OC02

8040

OC04

9AF8

OC06

9BOC

STRINGorg

include straddr.crm
.list

******************************************************************
SYSTEM STRING ADDRESSES
STRADDR.CRM

[Rev 3/13/1985]

Each of these is an I/O address pointer to a corresponding asciz
(i.e.~ null-terminated) string of STRINGS.CRM or STRTERM.CRM.
An I/u address pointer is the word offset (low byte, high byte)
multiplied by two and added to SOOOh. The STRING NUMBER WhlCh
identifies each string follows the comment delimiting semicolon.

******************************************************************

C

SStringPtrs

equ

this byte

C

STRProgExited

equ

STRNull

C

; System strings

C

ioaddr

STRMachineID

C

ioaddr

STRSerialNum

C+
C+

string 7 is not used
STRING NUMBER

o-

"45711"

- Machine serial number

C

ioaddr

STRSelectKey

C

icaddr

STRMemLost

3

C

ioaddr

STRReformatA

4

C

ioaddr

STRLowBattery

5 - " Low bat t e r y! "

6 - " Press any key to exit thIs pro

C+
C+

ocoa

9C66

C+

OCOA

9CC6

C+

2 - Select key default: ESC,"&P"
II

WARNING:

Memory 1, t! Hi t [fl]

Reformatting drive A:

all

HP Link Messages
OCOC

9CE4

OCOE

9AFE

C

ioaddr

STRAnyKeyExit

C

ioaddr

STRProgExited

7 -

C

ioaddr

STRCantFormat

8 - "Disks cannot be formatted using

C

ioaddr

STRNull

9 - Null string

C+
C+

OCI0

9D2E

C+

OC12

9AFE

C+

C

OC14

9E66

OC16

9EC8

OCIS

9F68

OCIA

9FEO

OCIC

9FF6

OCIE

A052

OC20

A096

OC22

AIOC

OC24

AIA4

OC26

AIF8

OC2S

A21S

OC2A

A27S

OC2C

A28C

OC2E

A9EC

Equa·~d

to STRNull (not used)

PAM Messages

C

ioaddr

STRpam_main~sg

C

ioaddr

STRpam_sel_msg

11 - "Move the pointer to the desired

C

ioaddr

STRreread_msg

12

C

ioaddr

STRloadl_msg

13 - , Loading

C

ioaddr

STRpam_nxt

14 - "Press [Next]/[Prev] to see more

C

ioaddr

STRpam_exit

15 - " Type 'exit' to return to P.A.M

C

ioaddr

STRno_print

16 - "Background print can be used

C

ioaddr

STRno_set

17 - "Th is command can onl y be used

C

ioaddr

STRpam_max

18 - "Maximum number of applications

C

ioaddr

STRfree_msg

19 -

20 - "PAM.ENV file too long."

C+
C+

C+
C+
C+
C+
C+
C+

C+
C+
C

10 - " Personal Applications Manager
"Reading all inserted discs to

II

bytes free on "

C

ioaddr

STRenv_too_big

C

ioaddr

STRparam

21 -

C

ioaddr

STRserial

22 - "Serlal"

C

ioaddr

STRmvptror

23 -

C+
C+

C+
C+

II

II

c

Par ame t e r "
Mo vet he po in t e r to,

0

r type

C

Assembler Listing for Configuration EPROM

C-11

System String Addresses
OC30
OC32

A29A

OC34

A308

OC36

A330

ioaddr

STRpress~sg

24 - "Press

C

ioaddr

STRmodem

25 - "Modem"

C

ioaddr

STRdir_print

26 - "Printing directory."

C

ioaddr

STRpls_wait_msg

27 -

C

ioaddr

STRfile_print

28 - "Printing file."

C

ioaddr

STRcntmes

29 - "Printer not ready."
30 - "File or directory does not

C+
C+
C+

C+
C+

OC38

A34E

OC3A

9E40

OC3C

A36C

C+

OC3E

A3BO

C+

OC40

A3D8

OC42

A468

OC44

A486

OC46

c

A2A6

C

A4D2

C+

C

ioaddr

STRdoesnt_exist

ioaddr

STRdir_delete

31 - "Deleting directory."

C

ioaddr

STRdir_del_err

32 - "Directory is not empty, or is

C+

C

ioaddr

STRfile_delete

33 - "Deleting file."

C

ioaddr

STRfile_wrt_prt

34 - "File or directory is write pro

C

ioaddr

STRdir_make

3S - "Making directory."

C

ioaddr

STRmkdir_err

36 - "Directory could not be created.

C

ioaddr

STRdir_choose

37 - "Choosing directory."

C

ioaddr

STRdisc_format

38 - "Formatting disc."

C

ioaddr

STRtoo_long

39 - "Error: line too long."

C

ioaddr

STRno_format_b

40 - "Cannot format drive B: (read

C

ioaddr

STRfile_copy

41 - "Copying specified file(s)."

C

ioaddr

STRfm_press_any

42 - "Press any key to return to P.A.N.

C+
C+
C+
C+

A4F6
A536

OC4C

A55E

OC4E

A580

OC50

A5AC

OCS2

ASFE

C+

OCS4

A634

C+

OCS6

A67A

C+

OC58

ASB8

C+

OC5A

A6D6
A75A

A7AA

OC60

A82E

OC62

A8AA

OC64

A8CA

OC66

A918

OC6S

A95A

GC6A

A97A

OCSC

A994

OC6E

A9BO

OC70

A9BA

OC72

A9EO

OC74

AA4E

OC76

AA86

OC78

AAAO

C-12

Please wait."

C

OC4A

OCSC

if information is

C

OC48

OC5E

Start

C+
C+
C+

C

C+

C

ioaddr

STRno_dest

43 - "No destination file specified."

C

ioaddr

STRfile_rename

44 - "Renaming file."

C

ioaddr

STRalready_ex

45 - "New name already exists, is a

C

ioaddr

STRenter_wcard

46 - "Enter new wild card and press

C+

C+

C

ioaddr

STRno_wild

47 - "No wild cards allowed in this

C

ioaddr

STRuse_wild

48 - "More files in directory than

C

ioaddr

STRdisp_dir

49 - "D i s p I a ye d d i r: "
50 - "Press [Next]/[Prev] to see more

C+

C+
C+

C

C

ioaddr

STRfm_nxt

C

ioaddr

STRno_files

51 - "The directory contains no files

C

STRcompany
STRbattery

52 - "Hewlett-Packard"

C

ioaddr
ioaddr

C

ioaddr

STRfmgrmsg

54 - " File Manager"

C

ioaddr

STR frrrna.in

55 - "Main"

C

ioaddr

STRselfunc

56 - "Select a function.

C

ioaddr

STRfmprint

57 - "Print"

C

ioaddr

STRtoprint

58 - "file or directory to print."

C

ioaddr

STRprfile

59 - "Print file:

C

ioaddr

STRfmdel

60 - "Delete"

C

ioaddr

STRtodel

61 - "file or directory to delete."

C+
C+

C+

C+
C+
C+
C+

C+
C+
C+

C

C+

Assembler Listing for Configuration EPROM

53 -

Battery"

1I

II

System String Addresses

r
"

OC7A

AAAE

OC7C

AAE8

OC7E

AB04

acso AB22
OC82

AB5C

OC84

AB84

OC86

FlBFl6

OC88

FlB02

OC8A

FlCOO

OC8C

FlCOE

OC8E

908A

OC90

AC90

OC92

ACB4

OC94

AC02

OC96

ACOC

OC98

ACF8

OC9A

Fl01C

OC9C

A03E

OC9E

A05C

~OCAO

A06A

OCA2

A08A

OCA4

FlOBE

OCA6

AOOA

OCA8

ADFC

OCAA

AE28

OCAC

AE56

OCAE

AE74

OCBO

AE84

OCB2

AEAC

OCB4

AED6

OCB6

FlEFA

OCBS

FlF1A

OCBA

FlF46

OCBC

AF5E

~OCBE

AF78

~"'

~CCO

FlF94

OCC2

FlFB8

OCC4

FlFD2

C+
C

ioaddr

STRdelfile

62 - "0e l e te file: II

C

ioaddr

STRfrrmak

63 - IIMake Directoryll

C

ioaddr

STRtomake

64 - "Type t he new di rec to ry name. II

C

ioaddr

STRmakefile

65 - "Directory to make: II

C

ioaddr

STRfmchs

66 - IIChoose Oirectory"

C

ioaddr

STRtochs

67 - "directory to display."

C

ioaddr

STRchsfile

C

ioaddr

STRfmfor

68 - "Directory to display: "
69 - Fo rma t

C

ioaddr

STRtofor

70 - "Enter the disc to format.

C

ioaddr

STRLabPrmt

71 - "Volume label (11 characters,

C

ioaddr

STRdrive

72

C

ioaddr

STRvolume

73 - "Volume label:

C

ioadd r

STRfmcp

74 - "Copy"

C

ioaddr

STRcpyfr

75 - "file to copy."

C

ioaddr

STRcpyto

76 - "destination file."

C

ioaddr

STRfrom

77

C

ioaddr

STRto

78 - "Copy to file:

C

ioaddr

STRfmren

79 - "Rename

C

ioaddr

STRtoren

80 - "file to rename.

C

ioaddr

STRname

C+
C+

C+
C+
C+
C+

C+
C+

C

C+
C+

C+
C+

C+
C+
C+
C+
C+
C+

C

C+

II

fI

"Drive to format: "
II

"Copy from flie:

II

II

II

1I

C

ioaddr

STRoldnm

81
"Type the new file name.
82 - liRe name fi Ie:

C

ioaddr

STRnewnm

83

II

C

ioaddr

STRsyscnf

84 -

II

System Configuration

Datacom Configuration"

C+
C+
C+
C+

:

II

C

ioaddr

STRcomcnf

85 -

II

ioaddr

STRclkcnf

86

II

Time and Date"

C

ioaddr

STRalarm

87 -

II

Alarm

C

ioaddr

STRmemEdisc

88 - "Main Memory / Edisc

C

C+
C+
C+

ll

ioaddr

STRextdisc

89 - "External Disc Drives"

ioadd r

STRdiscVer

90 - "0i sc Wri te Ve ri fy"

C

ioaddr

STRpwrSav

91 - "Power Save Mode"

C

STRdisptime

C

ioaddr
ioaddr

STRcursor

92 - "0isp Timeout (min)"
93 - "Cu rsor Type

C

ioaddr

STRconsole

94 - "Console Mode"

C

ioaddr

STRbeepcnf

95 - "Tone Duration"

C

ioaddr

STRPLTdev

96 - "Plotter Interface

C

ioaddr

STRprinter

97 - "Printer Mode"

C

ioaddr

STRPRNdev

98 - "Printer Interface

C+

C+
C+
C+

C+
C+
C+

C+
C+

ll

II

C
C

C+

1I

II

Re name f i let 0

C

C+

(All

c

II

ll

ll

Assembler Listing for Configuration EPROM

C-13

System String Addresses

C

oecs

AFF6

OCC8

B012

OeCA

B03C

OCCC

B06E

OCCE

B092

OCDO

BOC2

OCD2

BOE8

OCD4

BOFC

OCDS

810A

GeD8

B12A

OCDA

813C

OCDC

814E

OCDE

8160

OCEO

8186

OCE2

818E

OCE4

8196

OCES

81AC

OCES

B184

OCEA

81CO

OCEC

BleC

OCEE

81F8

OCFO

821A

OCF2

B230

OCF4

8252

OCFS

8260

OCF8

B272

OCFA

B288

OCFC

8280

OCFE
0000

82BA
82C4

0002

B2CE

0004

B2DE

OOOS

B2EE

0008

8302

OOOA
ODOC

8324
B346

OOOE

8352

C-14

C
C+
C
C
C+
C
C+
C
C+
C
C+
C
C+
C
C+
C
C+
C

C+
C
C+
C
C+
C
C
C+
C
C+
C
C+
C
C+
C
C+
C
C+
C
C+
C
C+
C
C+
C
C+
C
C
C+

, 99 - "Printe r Pitch"

ioaddr

STRpi tch

ioaddr

STR linespc

; 100 - "Printe r Line Spacing"

ioaddr

STRskipperf

;101

ioaddr

STRAuxCnf

ioaddr

STRbaudRate

,102 - "Datacom Interface"
;103 - uTransmission Rate (BPS)"

-

"Pr i nt e r Ski p Pe r for at ion

ioaddr

STRwo rdlen

,104 - "Word Length (bits)"

ioaddr

STRstopbits

; 105 - "Stop Bits"

ioaddr

STRparity

; 106 - "Parity"

ioaddr

STRxonxoff

ioaddr

STRctsline

,107 - "XON/XOFF Pacing"
,108 - "CTS Line"

ioaddr

STRdsrline

; 109 - "DSR Line"

ioaddr

STRdcdline

ioaddr

5 rRpower

,110 - tlDCD Line"
;111 - "Power to Interface

ioaddr

STRon

ioaddr

STRoff

ioaddr

STRundersc

; 112 - "On"
; 113 - "Off tl
; 114 - "Unde rsco re"

ioaddr

STRboxc

; 115 - "Box

ioaddr

STRlongbeep

ioaddr

STR sho r tbeep

; 116 - "Long "
j 117 - "Short"

ioaddr

STRgraphalph

ioaddr

STRgraph

; 120 - "Alpha Only"
; 121 - "No Configuration"
; 122 - "Normal"

STRalph

ioaddr

STRnoconf

ioaddr

C

ioaddr

STRno rm
STRexpan

ioaddr

STRcompr

j

ioaddr

STRexpcompr

j

ioaddr

STReven

; 126 - "Even"

ioaddr
ioaddr

STRodd
STRnone

10addr

STRIgnore

;127 - "Odd "
; 128 - "None"
; 129 - "Ignore

ioaddr

STRObserve

; 130 - "Obse rye"

ioaddr

STR82164

ioaddr
ioaddr

STRSlines

;131 - "HP 821S4A"
; 132 - tiS lines per inch"
; 133 - "8 lines per inch"
; 134 - "HP-IL"
;135 - NHptI

C

C+
C

ioaddr
ioaddr
ioaddr

STR8lines
STRhpil
STRHP
STRal t

Assembler Listing for Configuration EPROM

ll

; 118 - "Alpha and HP Graphics"
j 119 - "HP Graphics Only"

ioaddr

C+
C
C+
C
C+
C
C+
C
C+
C
C+
C
C+
C
C
C+
C
C+
C
C+
C
C+
C
C+

)

ll

C

C+
C
C+

It

; 123 - "Expanded"
124 - "Compre ssed"
125 - "Expanded-Compressed"

It

;136 - "Alternate"

J

System String Addresses
0010

8358

0012

836C

0014

8380

~OD16

B38A

0018

B39A

001A

B3AA

001C

83B6

ODIE

B3BE

0020

9DEC

0022

9E16

C+
C
C+
C
C+
C
C+
C
C
C+
C
C+
C
C+
C
C+
C
C+
C
C+
C

0024

B3C8

0026

B3EA

0028

B40C

002A

B42E

002C

B494

002E

B4B6

0030

B408

0032

B4FA

0034

B51C

0036

B53E

0038

B560

OD3A

B582

003C

B5A4

003E

B5CS

0040

B450

0042

B472

~OD44

B5E8

0046

B60A

0048

B62C

C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C

ioaddr

STRtirnezone

ioaddr

STRhour

;137 - IITime Zone"
;138 - IIHour

ioaddr

STRminutes

; 139 - "Minutes"

ioaddr

STRseconds

; 140 - "Seconds"

ioaddr

STRmonth

ioaddr

STRday

; 141 - "Month"
; 142 - 1I0 ay "

ioaddr

STRyear

; 143 - IIYear"

ioaddr

STRreading

ioaddr

STRwriting

; 144 - "E r ro r reading drive "
; 145 - "E r ro r wri t ing drive "

ioaddr

SFKbl a nk

; 146 -

ioaddr

SFKnelp

; 147

ioaddr

SFKchdir

; 148 - " Choose "

ioaddr

SFKstover

; 149 -

ioaddr

SFKmai nkeys

; 150 - " Start

ioaddr

SFKmainf2

;151 -

ll

PAM Softkey labels

ioaddr
ioaddr

SFKmainf3
SFKmainf4

Oir

" Start
" Over

" Applic "

;152 - II Time

& "

Date

;

; 153 -

Help

"'

" Reread

..
ioaddr
ioaddr

SFKmai nf5

; 154 -

SFKmainf6

; 155 -

ioaddr

SFKmainf8

~156

-

ioaddr

SFKcnff3

; 157

-

II

Oat acorn

II

Con fig II

ll

II

II

Off

ioaddr

SFKcnff4

h58 - "Previous"

ioaddr

SFKc nff5

;159 -

ioaddr

SFKexi t

; 160 -

io add r

SFK s tar t

hSI -

ioaddr

SFKst prn

ioaddr

SFKdeffl

; 162 - " Stop
" Print
h63 -

ioaddr

SFKdeff2

; 164 - IICopy up

Choice

II

Discs
System

II

Con fig

II

Next
II

II

File

"Manager "

Choice

C

..

II

Default"
" Values II

"

Exit

II

to char

" Start
"

Copy 1 "
char

II

ll

Assembler Listing for Configuration EPROM

C-15

System String Addresses
OD4A

B64E

OD4C

B670

004E

B692

0050

86B4

0052

B606

0054

B6F8

0056

871A

0058

873C

ODSA

875E

005C

8780

OOSE

87A2

0060

87C4

0062

B7E6

0064

B808

0066

8854

0068

B832

006A

8864

C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C
C+
C
C+
C
C+
C
C
C+
C

006C

84E8

-

ioaddr

SFkdeff3

;165

ioaddr

SFKdeff4

~166 -

ioaddr

SFKdeffS

; 167

SFKdeff6

; 168

-

ioaddr

SFkdeff7

b69

-

ioaddr

SFKdeff8

; 170

-

ioaddr

SFKfmgfl

;171

-

ioaddr

SFKfmgf2

887E

0070

88EE

0072

8900

0074

8910

0076

8938

0078

8962

007A 8988
= OD7C

C-16

II

It

ioaddr

SFkfmgf3

It

;

II

II

Void
input
New
line

Print

-

Make

;174

-

Dir

ioaddr

SFKfmgf5

ioaddr

SFKfmgf6

; 175

-

Copy

ioaddr

SFKfmgf7

~176 -

File

ioaddr

SFKchdf3

;177

STRwrite_fail

;
;178-

ll

tt
Delete "
IIFile/Dir"

II

ioaddr

-

Skip 1 "
char

II

Toggle II
insert II

;

;173

.

to char tt

,;172 - "File/Oir

Format II

II Rename
File

Set

1t

"Wildcard
Disc write failure." ;Not softkey

ioaddr

STRcur_set

,179-"Setting" ;Not softkey

ioaddr

STRcancel

;180 -

STRdos_com

,
" Change "
; 181- "DOS Corrrnands II ; No t so ft key

ioaddr

No

TERM Soft key labels and Messages
ioaddr

C

C+

STRsoftkeys

182 - All eight soft key labels:

C

II
II

C
C

ioaddr

C+

From
Host
File
Names

To
Host
" Remote ..
Mode

.. local
Auto
Echo
lF
"Display ..
"Functns
Exit
FROM HOST to file: II

STRhost
,
; 184 -

TO HOST from file: "
t e rmse nd"

C
C

ioaddr

STRsend

C

ioaddr

STRlog

C

ioaddr

STRaux

C

ioaddr

STRram

C

ioaddr

STRtransmit

;187 - " Insufficient RAM."
;188 Transmit failure."

C

ioaddr
equ

STRaccess

;189 - , Cannot access "'

C+
C+

C+

C+
C+
C+

C

..

ll

C

006E

all

It

ioaddr

Copy

- "Skip .up

C
C
C
C
C
C
C
C
C

c

It

SlastMssg

this byte

Assembler Listing for Configuration EPROM

II

;185 - "termlog"
;186 - .. Cannot open AUX.

II

II

and

r':

C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

007C

18 26 50

007F

00

0080

34 35 37 31 31 00

0086

20
4E
60
6F
50
58
6F
72
72
3A
00
20
72
20
20
65
65
65
74
74
20
00
20
75
6F
69
61
72
6E
61
75
20

57
47
6F
73
72
66
20
60
69
20
OA
28
6F
64
6F
73
20
20
6F
69
20
OA
77
74
72
6E
74
6F
20
79
6C
20

41
3A
72
74
65
31
72
61
76

52
20
79
21
73
50
65
74
65

4E
40
20
20
73
20
66
20
20

49
65
4C
20
20
74
6F
64
41

64
79
61
72
73
73
62
20
6E

65
69
74
20
20
70
61
63
75

73
6E
61
70
74
61
72
6F
65

74
67
29
72
68
63
20
6E
20

69
20
60
67
61
72
41
20
74
00

74
72
61
20
20
73
3A
72
29

68
65
74
28
65
20
20
65
2E

6F
66
74
64
72
6F
60
73
20

20
60
67
65
2E
20
64
79

52
61
20
20
2E
64
65
65

65
74
44
41
20
61
73
64

66
74
72
3A
61
74
74
2E

6F
69
69
20
6C
61
72
20

72
6E
76
2E
6C
20
6F
00

00F8
OOFA

OE33

STRINGS.CRN

[Rev 6/17/1985]

These PAM and TERM asciz strings are referenced
by ioaddr pointers in file STRAOOR.CRM.

*************************************************

C SStringTexts

007C

OOBE
OOCO

include strings.crm
.list

*************************************************
SYSTEM STRINGS

equ

this byte

If the Memomaker editor is used, then GET and SAVE this
file as an 'ASCII File' (rather than 'Document File')
to preserve non-usascii Roman8 characters.
The number in brackets [ ~ following a message refers to
its ioaddr STRING NUMBER 1n file STRADDR.CRM.
No message line may exceed 80 characters. Be careful to
preserve leading and trailing spaces exactly as shown.
Additional restrictions on individual messages are noted.
If CAUTION! appears after a message, then any non-usascii
character in that message will be d1splayed incorrectly if
"Alternate Console Mode has been selel.ted.
tl

C
C
C

;*****************;
; System Messages ;
;*****************;

C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

STRSelectKey
[ 2]
STRNul1
[ 9]
STRMachineIO
[ 0]
STRMemLost db

db ESC,lI&p

lI

Do not change.

db 0

Do not change.

db 1145711 11 ,0

Do not change.

.. WARNING: Memory Lost!

Press

[f 1]

to reformat drive A:

..

db CR, LF
db
(destroying data) or press the space bar to continue
II

C

C

C

C
C
C
C
C
C
C
C
C
C
C
C

db CR, LF
db .. without reformatting (data errors on A: may result).

" ,0

C

C
C ; [ 3]
; Each of the three lines must be exactly the same length.
C
C STRReformatA db
Reformatting Drive A: ... all data destroyed. 11,0
C
C
C
C
C
C
C
[ 4)
II

Assembler Listing for Configuration EPROM

C-17

c

System St r1ng5
OE63

20 4C 6F 77 20 42
61 74 74 65 72 79
21 20 00

g STRLow8attery db
; [ 5]

C

C

;******************;
; HP Link Messages ;
;******************;

C
C

STRAnyKeyExi t

C

OE72

20
20
65
65
68
6F

50
61
79
78
69
67

72
6E
20
69
73
72

65
79
74
74
20
61

73
20
6F
20
70
60

73
68
20
74
72
2E

44
63
20
72
64
67
20
61

89
61
62
60
20
20
70
60

73
6E
65
61
75
74
72
2E

68
6E
20
74
73
68
6F

73
6F
66
74
69
69
67

20
74
6F
65
6E
73
72

00

OE97

00

75
62
31
61
2C
75
6F
65

60
65
20
63
20
72
72
29

C

C

C

; [ 6]

C

STRCantFormat

C

; [ 8]

i**************i
; PAM Messages ;
;**************;
STRLabPrmt

C
C
C

OEF6

45
72
67
65

72
65
20
20

72 6F 72 20
61 64 69 6E
64 72 69 76
00

C
C
C
C

STRreading

OF08

45
77
67
65

72
72
20
20

72 6F 72 20
69 74 69 6E
64 72 69 76
00

C

STRwriting

OF20

50 72 69 6E 74 65
72 20 6E 6F 74 20
72 65 61 64 79 2E

OF33

20
6E
70
69
61
20
40
20
00

50
61
6C
6F
6E
28
2E
20

65
6C
69
6E
61
50
29
40

72
20
63
73
67
2E
20
61

73
41
61
20
65
41
20
69

6F
70
74
40
72
2E
20
6E

40
68
6E
6F
64
64
69
6E
6E
70
18
74
70
18

6F
65
74
20
65
20
63
2C
20
72
26
61
70
26

76
20
65
74
73
61
61
20

65
70
72
68
69
70
74
74

20
6F
20
65
72
70
69
68

74
69
74
20
65
6C
6F
65

65
64
72
6C
64

73
42
74
69
40

73
20
20
63
2E

20
53
41
20
00

C-18

CAUTION!

C

65
6C
63
74
58
6E
20
3F

OF96

db "Disks cannot be formatted using this program. ",0

C

C
C

6C
61
31
72
73
74
66
6E

OF64

CAUTION!

C
C
C

6F
6C
28
61
72
65
20
6F

c

db " Press any key to exit this program.",O

C

56
20
20
68
65
52
50
6E
00

00

Max 31 chars.

CAUTION!

C

C
C

OEC5

" Low Battery! ",0

C

db "Volume label (11 Characters, [Return] for none)?",O

C

C
C
C
C
C

C

C

C
C

C
C
C
C
C
C
C
C

C

C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

i [71]

CAUTION!
db "Error reading drive ",0

i [144]

db "Error writing drive ".0

; [145]
STRcntmes

db "Printer not ready.",O

; [29]
STRparn_rnain_rnsg db

II

Personal Applications Manager (P.A .M.)

Main",O

; [10]
; Maximum 52 characters
STRpam_sel_rnsg db "Move the pointer to the desired application, then

db "press ",27,"&dB Start Applic ",27,"&d@.",O
[11 ]

Escape sequence places

Assembler Listing for Configuration EPROM

Start Applic

in inverse video.

II

System Strings
OF84

OFE2
OFFO

20
5E
20
74
73
20
59
5e
61
61
2E

52
67
69
65
63
66
6E
65
70
74
00

65
20
6E
64
73
69
73
64
70
69

61
51
73
20
20
5E
74
20
6C
6F

64
6C
65
64
74
64
61

69
5C
72
59
5F
20
5C

69 63
6E 73

20 4C 6F 61 64 59
6E 67 20 22 00

OFF8

50
58
2F
50
55
65
59
6E

72
4E
58
20
65
20
63
73

65
65
50
74
20
61
61
2E

73
78
72
6F
60
70
74
00

73
74
65
20
6F
70
69

20
50
76
73
72
6C
6F

1029

20
27
20
74
6F
40

54
65
74
75
20
2E

79
78
6F
72
50
20

70
69
20
6E
2E
00

65
74
72
20
41

20
27
65
74
2E

1048

54
6F
20
6E
20
66
18
4F
50
18

68
60
63
6C
75
72
26
53
61
26

69
60
61
79
73
6F
64
20
6E
64

73
61
6E
20
65
60
42
43
64
40

20
6E
20
62
64
20
20
6F
73
2E

63
64
6F
65
20

106E

1086

44
60
20
00

50
20
54
64
72
74
61
60
65
7S
61
45
5C

41
50
73
20
6F
20
62
75
20
73
20
4E
65

54
52
2C
65
6E
76
6C
73
73
69
50
56
2E

48
4F
20
6E
50
61
65
74
65
6E
41
20
00

73
40
61
76
65
72
73
20
74
67
40
66

2C
50
6E
69
5E
69
20
62
20
20
2E
69

1002

40
60
65
61
61
20
5C

61
20
72
70
74
69
6C

78
6E
20
70
69
6E
65

69
75
6F
6C
6F
73
64

60
60
66
69
6E
74
2E

75
62
20
63
73
61
00

10FC

20 62 79 74 65 73
20 66 72 65 65 20
5F 6E 20 00

10BC

g

STRreread.JTlsg db

It

Reading all inserted discs to find installed

II

C
C

C

C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

db "applications.".O
; [12]

STRloadl_msg

,0

; [14]

db II Type 'exit' to return to P.A.M. 11.0

e ; [15]

C

II'

II

c

C
C
C
C
C
C
C
C
C
C

db ' loading

CAUTION!
~TRpam_nxt
db "Press [Next]/[Prev] to see more applications. ,O
. [13]

CAUTION!
db "This cOrmland can only be used from II

db 27, "&d8 DOS Corrmands ",27, "&d@. ,0
II

; [16]

CAUTION!
; Escape sequence places" DOS Conmands

II

in inverse video.

C
C STRno_set db IIpATHs, PROMPTs, and environment variables must be set"
C
C

c
e

C
C
C
C
C

db "using a PAM.ENV file.",O

e

C
C
C
C
C
C
C
C
C
C
C
C
C
C

; [17]

CAUTION!
db "Maximum number of applications installed. ,O
II

c

; [18]

db " bytes free on ",0
i

Max 16 spaces

[19]

Assembler Listing for Configuration EPROM

C-19

System St rings
41
20
74
6E
78
32
61
72

40
66
6F
67
69
35
72
73

2E
69
6F
20
60
36
61
29

45
6C
20
28
75
20
63
2E

4E
65
6C
60
60
63
74
00

110C

50
56
20
6F
61
20
68
65

113C

50 61 72 61 60 65
74 65 72 00

1146

53 65 72 69 61 6C
00

1140

40 SF 64 65 60 00

1153

50 72 65 73
IB 26 64 42
74 61 72 74
26 64 40 20
20 69 6E 66
60 61 74 69
20 69 73 20
63 6F 72 72
74 2E 00

1178

73 20
20 53
20 18
69 66
6F 72
6F 6E
65 63

1184

50
6E
65
2E

1198

20 20 50 6C 65 61
73 65 20 77 61 69
74 2E 00

l1A7
l1B6

1108

llEC

c
1218

72 69 6E 74 69
67 20 64 69 72
63 74 6F 72 79
00

50 72 69 6E 74 69
6E 67 20 66 69 6C
65 2E 00
6C
64
6F
65
20

65
69
72
73
65
2E 00

20
72
79
20
78

6F
65
20
6E
69

46
,2
63
64
6F
73

69
20
74
SF
74
74

44
6E
65
2E

65 6C 65 74 69
67 20 64 69 72
63 74 6F 72 79
00

44
6F
20
60
6F
77
70
74
6F
63
74
63
00

69
72
6E
70
72
72
72

65

72
75
20
74

72
79
6F
74
20
69
6F
64
20
72
64
6F

65
20
74
79
69
74
74
2C
69
72
69
72

63
69
20
2C
73
65
65
20
73
65
72
79

74
73
65
20
20
20
63
20
6E
65
2E

1234

44 65 6C 65 74 69
6E 67 20 66 69 6C
65 2E 00

1243

46
72
63
69
74
74
2E

C-20

69
20
74
73
65
65
00

6C
64
6F
20
20
63

65
69
72
77
70
74

20
72
79
72
72
65

6F
65
20
69

6F
64

C STRenv_too_big db IIPAM.ENV file too long (maximum 256 characters)." ,0

C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

; [20]
STRparam
STRserial
; [22]

db IISer ial ,O

STRmodem

db "ModemI', 0

C . [25]
C ~T~press_ms9
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

C

C

ll

db "Press 1I,27,II&dB Start ",27,II&d. if information is "

db "correct.II,O
j

[24]

STRdi r_print

j

Escape sequence places" Start

II

in inverse video.

db "printing directory.",O

; [26]
Please wait.",O

Must have 2 leading spaces.

; [27]
db "Printing file.",O

C

C
C

db IParameter",O

; [21]

; [28]

C
C STRdoesnt_exist db "File or directory does not exist. II ,O
C
C
C
C
C

C

C
C

C
C
C

; [30]
STRdir_delete

db "Deleting directory.",O

; [31]

C STRdir_del_err db "Directory is not empty, or is write protected, "
C
C
C
C
C
C
C
db 1I 0r is current directory.",O
C
C
C
C

C

C
C
C
C
C
C
C
C
C
C
C
C

j

[32]

STRfile_delete

db "Deleting file. .O
II

; [33]
STRfile_wrt_prt db "File or directory is write protected. ,0
II

[34]

Assembler Listing for Configuration EPROM

System Strings
1269

40 61 68 69 6E 67
20 64 69 72 65 63
74 6F 72 79 2E 00

127B

44
6F
75
74
72
2E

69
72
6C
20
65
00

129B

43
6E
65
2E

68 6F 6F 73 69
67 20 64 69 72
63 74 6F 72 79
00

12AF
12CO

1206

12FF

131A

1330

135C
136B

1394

13AO

72
79
64
62
61

65
20
20
65
74

63
63
6E
20
65

74
6F
6F
63
64

46 6F 72 60 61 74
74 69 6E 67 20 64
69 73 63 2E 00
45
20
74
6E

72
6C
6F
67

72
69
6F
2E

6F 72 3A
6E 65 20
20 6C 6F
00

43
20
74
65
72
6E
73

61
66
20
20
65
6C
63

6E
6F
64
42
61
79
29

6E
72
72
3A
64
20
2E

6F
60
69
20
20
64
00

74
61
76
28
6F
69

43
67
69
66
29

6F
20
66
69
2E

70
73
69
6e
00

79
70
65
65

69
65
64
28

6E
63
20
73

50
61
79
65
74
2E

72
6E
20
74
6F
40

65
79
74
75
20
2E

73
20
6F
72
50
20

73
68
20
6E
2E
00

20
65
72
20
41

4E
74
6F
65
69
00

6F
69
6E
20
66

20
6E
20
73
69

64
61
66
70
65

65
74
69
65
64

73
69
6C
63
2E

52 65 6E 61 60 69
6E 67 20 66 69 6e
65 2E 00
4E 65
60 65
65 61
78 69
20 69
64 69
6F 72
6F 72
6C 64
20 62
65 61
00

77
20
64
73
73
72
79
20
20
65
74

20 6E
61 6e
79 20
74 73
20 61
65 63
2C 20
63 6F
6E 6F
20 63
65 64

61
72
65
2e
20
74

45
6E
6C
64
70
58
6E

74
77
20
61
65
65
2E

65
20
63
6E
73
74
00

20
69
72
20
20
72

6E
65
64
20
72
52
50

72
77
61
64
73
75

75
74

72
2E

C STRdi r_make

e
C
e

db "Making

C
C
C
C
C
C

STRmkdi r_er r

C
C

STRdir_choose

C
C
C
C
C
C

STRdi sc_format

e
e

db "Choosing directory.",O

; [37]
db "Formatting disc.",O

; [38]
db "Error: line too long. ".0

C
C
C
C
C
C

db "Directory could not be created.",O

; [36]

e

e

dire~tory.".O

; [35]

; [39]
db "Cannot format drive 8: (read only disc) .",0

e

C

e

C
C

; [40]

e STR fi Ie_copy
e

db" Cop yi ng s pe c i fie d f i Ie ( s) .

II •

0

C
C
C

; [41]

C

STRfm_press_any db "Press any key to return to P.A .M. ",0

e

e

e
e

e
C
C
C
C
C
C

; [42]

CAUTION!
db "No destination file specified.",O

e

e ; [43]

C
C

e
C
C
C
C
C

STRfile_rename

db "Renaming file.".O

; [44]
STRal ready_ex

db "New name already exists, is a directory,

c

II

e
C
C
C

db "or could not be created. ,O

C
C

C
C
C
C
C
C
C
C
C
C
C

II

; [45]
STRenter_wcard

db "Enter new wild card and press [Return].",O

[46]

Assembler Listing for Configuration EPROM

C-21

System 5t rings
1305

4E
64
73
77
20
66
6F
6C
72
20
66
61

6F
20
20
65
74
75
6E
65
65

40
69
6E
63
74
61
64
79
73
144A 77
61

6F
6C
20
74
68
6E
69
65
65
69
72

140C
1417

1455
1465

20
63
61
64
68
6E
2E
61
74

77
61
6C
20
69
63
20
73
79

69
72
6C
69
73
74
20
65
70

6C
64
6F
6E
20
69
50
20
65

69 6C 65 20 6E
60 65 2E 00
72
65
64
6F
61
20
73
64
20
6C
64

65
73
69
72
6E
62
70
20

20
20
72
79
20
65
6C
20

66
69
65
20
63
20
61
75

64 20 63
2E 00

44 69 73 70 6C 61
79 65 64 20 64 69
72 3A 20 00
50
58
2F
50
65
65
73

72
4E
58
20
65
20
2E

65
65
50
74
20
66
00

73
78
72
6F
60
69

73
74
65
20
6F
6C

20
50
76
73
72
65

148C

54
72
79
61
6F
73

68
65
20
69
20
2E

65
63
63
6E
66
00

20
74
6F
73
69

64
6F
6E
20
6C

69
72
74
6E
65

14AO

48 65 77 6C 65 74
74 20 50 61 63 68
61 72 64 00

1480

20 20 20 20 20 42
61 74 74 65 72 79

00

14CA

c

20 46 69 6C 65 20
40 61 6E 61 67 65
72 00

1408

40 61 69 6E 00

1400

53 65 6C 65 63 74
20 61 20 66 75 6E
63 74 69 6F 6E 2E
00

14FO

50 72 69 6E 74 00

14F6
14F8

18
40
68
6E
6F
74
68
65
74

C-22

48

6F
65
74
2C
79
65
20
68

76
20
65
20
70
20
6F
65

65
70
72
6F
65
6E
66
20

20
6F
20
72
20
61
2C

00

74
69
74
20
74
60
20

g

STRno_wild db -No wild cards allowed in this function.

Please re type "

C
C
C

C
C

C
C
C
C
C
C
C

C
C
C
C

db "file name.·.O

; [47]

STRuse_wild db "More files 1n directory than can be displayed--use "

C

C
C

C

C
C

C

db "wild card.".O

; [48]

C STRdisp_dir

C
C
C
C
C

db "Displayed dir: • .0

; [49]

db "Press [Next]/[Prev] to see more files.".O

C

C
C
C
C
C
C
C
C
C
C
C

C

C
C

C

C
C
C
C
C
C
C

; [50]

STRno_files

; [51]

STRcompany
STRbattery

db

It

Batteryll.O

Exactly 12 spaces. right justified.

; [53]

STRfmgrmsg
; [54]

C

~T~~;lfunc

C
C
C
C
C
C
C
C
C

db "Hewlett-Packard".O

i [52]

C

C
C
C

db "The directory contains no files.".O

STRfnmain

i [56]
5TRfmprint
· [57]
STRmvptror

db " File Manager".O
db IIMain ll t O
; Max 18 chars.
db "Select a function."tO

db "Print".O

; Max 18 chars.

db 27 t "K"
i Clears to EOL--do not change.
db "Move the pOlnter tOt or type the name oft the " ,0

C

C
C
C
C
C
C
C

[23]

Max 80 chars when combined with "file or directory to print."
or "file or directory to delete." or "directory to display."
or "file to copy. or "destination file. or "flle to rename."
II

Assembler Listing for Configuration EPROM

II

System Strings
1527

66
72
63
74
6E

69
20
74
6F
74

6C
64
6F
20
2E

65
69
72
70
00

20
72
79
72

6F
65
20
69

g

STRtoprint

e
C
e ; [58]
e
1543 50 72 69 6E 74 20 e STRprfi Ie
66 69 6C 65 3A 20
00

c

1550

44 65 6C 65 74 65
00

1557

66
72
63
74
65

c STRfmdel
e ; [60]
c
c STRtodel
c

1574
1582
1591

69
20
74
6F
74

6C
64
6F
20
65

65
69
72
64
2E

20
72
79
65
00

6F
65
20
6C

44 65 6C 65 74 65
20 66 69 6e 65 3A
20 00
40 61 68 65 20 44
69 72 65 63 74 6F
72 79 00
54
68
20
74
61

79
65
64
6F
60

15AE

44
6F
20
20

69 72 65 63 74
72 79 20 74 6F
60 61 68 65 3A
00

15C2

43 68 6F 6F 73 65
20 44 69 72 65 63
74 6F 72 79 00

1503

64
6F
20
61

69
72
64
79

72
79
69
2E

65 63 74
20 74 6F
73 70 6C
00

15E9

44
6F
20
61

69
72
64
79

72
79
69
3A

65
20
73
20

1600

46 6F 72 60 61 74
00

1607

45
74
69
20
74
6e
61
68
63
77
65
2E

1639
1648
165A

6E
68
76
66
2E
6C
20
65
20
69
20
29

70
20
69
72
65

74
65
65
6F
20
20
6F
20

65
6E
72
79
2E

65
20
20
72
20
64
6E
64

20
65
65
20
00

74
77
63
6E

63 74
74 6F
70 6C
00

72
64
74
60
28
61
20
69

20
72
6F
61
41
74
74
73

6C 6e 20 62
6C 6F 73 74
00

44 72 69 76 65 20
74 6F 20 66 6F 72
60 61 74 3A 20 00
56 6F 6C 75 60 65
20 6C 61 62 65 6C
3A 20 00

C
C

db IIfile or directory to print. II ,O

db "Print file: ",0

; [59]

db IIDelete ,O
ll

; Max 18 chars.

db IIfile or directory to delete. II ,O

C

C
C

C
C
C
C
C
C

c

; [61]

STRdelfile

db IIDelete file: II ,0

; [62]

STRfnmak

e ; [63]
c

c STRtomake
C

db IIMake Directoryll,O

Max 18 chars.

db IIType the new directory name. 11,0

e

c
e ; [64]
e
e STRmake fi Ie db "Directory to make: ",0
C
e
c ; [65]
e
e STRfmchs
db IIChoose Directory",O
Max
c
c ; [66]
e
db IIdirectory to display.II,O
c STRtochs
c
C
C
C

c
e
c
c
c
c
c
c
c
e
c
c
c
c
e
e
e
c
c
e
C
c
e
C
C
C

C

C

18 chars.

; [67]

STRchsfile

db IIDirectory to display: 11,0

; [68]

STRfmfor
; [69]
STRtofor

db IIFormat".O

; Max 18 chars.

db IIEnter the drive to format.

(All data on the disc II

c
db II will be 10st.)1I,0
; [70]

STRdrive

db "Drive to format: ",0

; [72]

STRvolume

db "Volume label: 11,0

; (73)

Assembler Listing for Configuration EPROM

C-23

System St rings
43 6F 70 79 00

166E

66 69 6C 65 20 74
6F 20 63 6F 70 79
2E 00

167C

64 65 73 74 69 6E
61 74 69 6F 6E 20
66 69 6C 65 2E 00

168E

c

C STRfmcp

1669

43 6F 70 79 20 66
72 6F 60 20 66 69
6C 65 3A 20 00

169F

43 6F 70 79 20 74
6F 20 66 69 6C 65
3A 20 00

16AE

52 65 6E 61 60 65
00

1685

66 69 6C 65 20 74
6F 20 72 65 6E 61
60 65 2E 00

l6C5
16C7

18
54
68
20
6E

16DF

52 65 6E 61 60 65
20 66 69 6C 65 3A
20 00

t6EO

52 65 6E 61 60 65
20 66 69 6C 65 20
74 6F 3A 20 00

l6FE

20
60
69
69

53
20
67
6F

79
43
75
6E

73 74 65
6F 6E 66
72 61 74
00

1714

20
6F
66
74

44
60
69
69

61
20
67
6F

74
43
75
6E

1728

20 54 69 60 65 20
61 6E 64 20 44 61
74 65 00

173A

20 41
20 00

1742

40
65
2F
63

61 69 6E 20 40
60 6F 72 79 20
20 45 64 69 73
00

1756

45
61
63
65

78
6C
20
73

1768

44 69 73 63 20 57
72 69 74 65 20 56
65 72 69 66 79 00

1770

50 6F 77 65 72 20
53 61 76 65 20 40
6F 64 65 00

1780

44
79
6F
69

C-24

48
79
65
66
61

69
20
75
6E

70
20
69
60

ac

65
6E
6C
65

20
65
65
2E

74
77
20
00

61 63
6F 6E
72 61
00

61 72 60

74 65 72 6E
20 44 69 73
44 72 69 76
00

73
54
74
29

70 6C 61
69 60 65
20 28 60
00

gC ~T~~~~fr

db "Copy",O

Max 18 chars.

db "file to copy.",O

g ; [75]

C STRcpyto

C

db -destination file.-,O

g ; [76]

C
C
C
C
C

STRfrom

db "Copy from file: .. ,0

; [77]

STRto

C
C ; [78]
C
C STRfmren
C ; [79]
C

db ·Copy to file: ",0

C STRtoren
C
C ; [80]
C
C STRname
C
C
C
C ; [81]
C
C STRoldnm
C
C ; [82]
C
C STRnewnm
C
C ; [83]
C
C STRsyscnf
C
C
C ; [84]
C
C STRcomcnf
C
C
C ; [85]
C
C STRclkcnf
C
C ; [86]
C
C STRalarm
C ; [87]
C
C STRmemEdisc
C
C
C ; [88]
C
C STRextdisc
C
C
C ; [89]
C
C STRdiscVer
C
C ; [90]
C
C STRpwrSav
C
C ; [91]
C
C STRdisptime
C
C
C ; [92]

db "Renamell.O

; Max 18 chars.

db "file to rename. .O
II

db 27."K"
i Clears to EOl--do not change.
db "Type the new Tile name.",O

db "Rename file: 11,0
db lIRename fi Ie to: ",0
db " System Configuration".O

db " Datacom Configurationll.O

db

II

Time and Date",O

db

II

Alarm ", 0

db "Main Memory / Edisc",O

*****************
Messages
[88] - [102]
26 chars max.

db "External Disc Drives",O

These are
[System Config]
Prompts.

*****************
db "Disc Write Verify",O
db "Power Save Mode" ,0
db "Display Timeout (min)",O

Assembler Listing for Configuration EPROM

System Strings
17A3
17AF

17BC
17CA
170C
17E9
17FB

43 75 72 73 6F 72
20 54 79 70 65 00
43 6F 6E 73 SF 6C
65 20 40 6F 64 65
00
54 6F 6E 65 20 44
75 72 61 74 69 6F
6E 00
50 6C 6F 74 74 65
72 20 49 6E 74 65
72 66 61 63 65 00
50 72 69 6E 74 65
72 20 40 6F 64 65
00
50 72 69 6E 74 65
72 20 49 6E 74 65
72 66 61 63 65 00
50 72 69 6E 74 65
72 20 50 69 74 63
68 00

1809

50 72
72 20
20 53
6E 67

69 6E 74 65
4C 69 6E 65
70 61 63 69
00

18lE

50 72
72 20
20 50
72 61
00

69 6E 74 65
53 68 69 70

1837
1849

65 72 66 6F
74 69 6F 6E

44 61 74 61 63 6F
60 20 49 6E 74 65
72 66 61 63 65 00
54 72 61 6E 73
~9 6F
20 52 61 74 65
28 42 50 53 29

69 73 73

60
6E
20
00

1861

57 6F 72 64 20 4C
65 6E 67 74 68 20
28 62 69 74 73 29
00

1874

53 74 6F 70 20 42
69 74 73 00

187E

50 61 72 69 74 79
00

1885

58 4F 4E 2F 58 4F
46 46 20 50 61 63
69 6E 67 00

1895

43 54 53 20 4C 69
6E 65 00

189E

44 53 S2 20 4C 69
6E 65 00

18A7

44 43 44 20 4C 69
6E 65 00

18BO

50 6F 77 65 72 20
74 6F 20 49 6E 74
65 72 66 61 63 65
00

C STRcursor
C ; [93]

C
C
C

C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

C
C
C
C
C
C
C
C
C

STRconsole

db "Cursor Type",O
db "Console Mode",O

; [94]

STRbeepcnf

db "Tone Ouration",O

; [95]

STRPLTdev

db "Plotter Interface",O

; [96]

STRprinter

db "Printer Mode",O

; [97]

STRPRNdev

db "Printer Interface",O

; [98]

STRpitch

db "Printer Pitch",O

; [99]

STRlinespc

db "Printer line Spacing" ,0

; [100]
STR5kipperf

db "Printer Skip Perforation",O

; [101]
STRAuxCnf

db "Datacom Interface",O

; (102)

STRbaudRate

db "Transmission Rate (BPS)" ,0

[103] - [111]
25 chars max.

; [103]
STRwordlen

db "Word Length (bits)II,O

; [104]
STRs t 0 pb its
; [105]
STparity
; [106]
STRxonxoff

******************
Messages
These are
[Oat acorn Config]
prompt s.

******************
db "Stop 8its",O
db "Parity",O
db "XON/XOFF Pacing",O

; [107]
STRctsline
; [108]

db "CTS line",O

CCITT V.24 106

STRdsrline
; (109)

db "OSR line",O

CCITT '.1.24 107

STRdcdline
; [110]

db "DCD Line",O

CCITT "1.24 109

STRpower

db "Power to Interface",O

; [111]

Assembler Listing for Configuration EPROM

C-25

System St rings
18C3

4F 6E 20 00

18C7

4F 66 66 00

18C8

55 6E 64 65 72 73
63 6F 72 65 00

1806

42 6F 78 00

180A

4C 6F 6E 67 20 00

18EO

53 68 6F 72 74 00

18E6

41
61
20
69

18FC

c

6C
6E
47
83

70
64
72
73

68 61 20
20 48 50
61 70 68
00

48 50 20 47 72 61
70 68 69 63 73 20
4F 6E 6C 79 00

1900

41 6C 70 68 61 20
4F SE 6C 79 00

1918

4E 6F 20 43 6F 6E
66 69 67 75 72 61
74 69 6F 6E 00

1929

4E SF 72 60 61 6C
00

1930

45 78 70 61 6E 64
65 64 00

1939

43 6F 60 70 72 65
73 73 65 64 00

1944

45
65
70
64

1958

45 76 65 6E 00

1950

4F 64 64 20 00

78 70 61 6E 64
64 20 43 6F SO
72 65 73 73 65
00

1962

4E 6F 6E 65 00

1967

49 67 6E 6F 72 65
20 00

196F

4F 62 73 65 72 76
65 00

1977

48 50 20 38 32 31
36 34 41 00

1981
1992

36 20 6C 69 6E 65
73 20 70 65 72 20
69 6E 63 68 00
38 20 6C 69 6E 65
73 20 70 65 72 20
69 6E 63 68 00

19A3

48 50 20 49 4C 00

19R9

48 50 00

19AC

41 6C 74 65 72 6E
61 74 65 00

19B6

54 69 60 65 20 SA
6F 6E 65 00

19CO

48 6F 75 72 00

19C5

40 69 6E 75 74 65
73 00

C-26

db liOn" ,0

C STRon

g ~T~~}~]
gC ~T~~~~lrsc

(112), [113]
must be the
same length

db "Off",O

These are
(System Config]
response s.

~T~~~:~

C

C
C

~TRshortbeep db "Short",O

C
C

~TRgraphalph db "Rlpha and HP Graphics",O

C
C
C

C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

C

C
C

C

C
C
C
C
C

db "Box",O

· [115]
. [116]

~TRlon9beep db "Long ",0

[116], (117] must
be s arne 1e ng t h

; [118]
db "HP Graphics Only",O

STRgraph
; [119]
STRalph
; [120]

db "Alpha Only",O

STRnoconf

db "No Configuration",O

; [121]
STRnorm
i [122]

db "Normalu,O

STRexpan
i [123]

db "Expandedll,O

STRcompr
; [124]

db "Compressed", 0

STRexpcompr

db IIExpanded':"Compressed" , 0

i [125]

~TRodd

~T~~~~l

db "Even",O
db "Odd ",0

db "None" , 0
lTR[!1
~28no] re db II I gno re ",0
~
i [1 9]

i**************************************

; Messages [126] - [130] 15 chars max.
i These are [Datacom Config] responses.

~

STR6lines

;******~******************************

db "6 lines per ineh",O

; [132]

; 2.36 lines/cm

STR8lines

db "8 1ines pe r inch II ,0

; [133]

; 3.15 lines/em

STRhpil

1 [134]
~TRHP
.i [135]
~TRalt

i [136]

~T~~~~~tes
; [139]

i*****************

i Messages
; [ 131 ] - [136 ]
; 34 chars max.

~ These are
[System Config)
; prompts.

i*****************

db "H P- I L.. ,0
db "HP" ,0
db "Alternate",O

STRtimezone db IITirne Zone",O
; [137]
STRhour

[126] - [128] must be same length.

i [129] .and [1~0] must be same length.

STRObserve db "Observe",O
C i [130]
C
C STR82164 db IIHP 82164AII,O
C ; [131]

C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

*****************

. [117]

STReven
C 1 [126]
C
C

[112] - [125]
34 chars max.

db "Underscore" ,0

C
C
C
C

C

*****************
Messages

db "Hour",O
db "Minutes",O

Assembler Listing for Configuration EPROM

**************************
Messages (137] - (143]
22 chars max. These Ire
[Time & Date] prompts.

**************************

System Strings
19CD

53 65 63 6F 6E 64
73 00

1905

40 6F 6E 74 68 00

1908

44 61 79 00

190F

59 65 61 72 00

C STRseconds
C ; [140]
C
C STRmonth
C ~ (141]
C
TRda~
C . [14 ]
C STRrear
C ; [43]
C

C

C

19E4
19EC
19F5
19FO
lR06
lROE
lR17
UHF
lR28
lR30
lR39
lR41
lR4A
lR52
lR5S
lR63
lR6C
lR74
lA70
lRSS
lR8E
lA9S
lA9F
lAA7
".1

lASO
lAB8

20
20
20
20

20 20 20 20 20
20
20 20 20 20 20
20 00

20
20
20
20

20 20 20 20 20
20
20 48 65 6C 70
20 00

20
65
20
20

43 68 6F 6F 73
20
20 44 69 72 20
20 00

20
20
20
20

53 74 61 72 74
20
20 4F 76 65 72
20 00

20
20
20
20

20 20 20 20 20
20
20 45 78 69 74
20 00

20
20
20
20

20 20 20 20 20
20
53 74 61 72 74
20 00

20
20
20
63

53 74 61 72 74
20
41 70 70 6C 69
20 00

20
20
20
65

20 46 69 6C 65
20
40 61 6E 61 67
72 00

20
26
20
20

54 69 60 65 20
20
20 44 61 74 65
20 00

20
64
20
20

52 65 72 65 61
20
44 69 73 63 73
20 00

20
6F
20
67

44 61 74 61 63
60
43 6F 6E 66 69
20 00

20
60
20
67

53 79 73 74 65
20
43 SF 6E S6 69
20 00

20
20
20
20

20 20 20 20 20
20
20 4F 66 66 20
20 00

C
C
C
C
C
C

C
C
C

SFKblank
; [146]

SFKhelp

; [148]

C

SFKstover

C
C

SFKexit

; [160]
C
C SFKstart
C

C

C

C ; [161 ]
C
C SFKmainkeys
C
C
C
C
C
C

; [150]

SFKmainf2
; (151 ]

C SFKmainf3

C

C
C ; (152]
C
C SFKmainf4
C
C
C ; [153]
C
C SFKmainf5
C
C
C ; [154]
C

C SFKmainf6
C
C

C
C

C
C
C

C

db "
db "
db

; (155]

SFKmainf8

Help

II

db
db

,0

; leave blank

11,0
II

II

,0

II

Start

II

Over

.. ,0

Exit

11,0

db ..
db "
db

II

db

II

Start

II

,0

II

,0

db .. Start
Appl ic

db

II

db

II

db

II

File
Manager" ,0

db " Time & ..
db
Date ... 0
II

C
db

II

Re read

II

db

II

Discs

II

.0

db

II

Datacomll

db

II

Config ".0

db

II

System

db

II

Config ",0

II

db ..
db

; [156]

II

Choose
db
db .. oir

; [149]

C

C
C
C

db ..

II

C

C
C
C
C

db "Yearll,O

; [147]

SFKchdir

C

db "Mont h" ,0
db "Day" ,0

;**************************************;
; PAM Soft keys (exactly 16 characters) ;
;**************************************;

C
C

C
C

db "Seconds" .0

II

Off

11.0

Assembler Listing for Configuration EPROM

C-27

20
20
20
65

20 4E 65 78 74
20
43 68 SF 69 63
20 00

tAD2

50
75
20
65

72 65 76 69 6F
73
43 68 6F 69 63
20 00

44
74
20
73

65 66 61 75 6C
20
56 61 6C 75 65
20 00

20
20
20
20

53 74 6F 70 20
20
SO 72 69 6E 74
20 00

C

20
31
20
20

43 6F 70 79 20
20
20 63 68 61 72
20 00

C SFKdeffl
C
C
C ; [163]

db .. Copy 1 ..
db
char 11,0

***************
Messages

43
70
20
61

6F 70 79 20 75
20
74 6F 20 63 68
72 00

SFKdeff2

db "Copy up ..
db .. to charll,O

***************

20
20
20
20

20 43 6F 70 79
20
20 61 6C 6C 20
20 00

20
31
20
20

53 68 69 70 20
20
20 63 68 61 72
20 00

53
70
20
61

68 69 70 20 75
20
74 6F 20 63 68
72 00

20
20
20
20

56 6F 69 64 20
20
69 6E 70 75 74
20 00

20
65
20
74

54 6F 67 67 6C
20
69 6E 73 65 72
20 00

20
20
20
20

20 4E 65 77 20
20
20 6C 69 6E 65
20 00

20
20
46
69

SO 72 69 6E 74
20
69 6C 65 2F 44
72 00

20
65
46
69

44 65 6C 65 74
20
69 6C 65 2F 44
72 00

20
20
20
20

20 40 61 68 65
20
20 44 69 72 20
20 00

20
20
20
74

20 20 20 20 20
20
46 6F 72 60 61
20 00

lADA
1AE3
lAE8
lAF4
lAFC
1805
1800

1816
181E
1827
lB2F
1838
1840
1849
1851
IBSA
1862
1868
1873
IB7C

C

System St rings
db N

IAC1
1AC9

1884
1880
1895
189E
t8A6
IBAF
IBB7
IBCO
18C8

C-28

C SFKcnff3

C
C
C
C

; [157]

C SFKcnff4

C
C
C ; [158]
C
C SFKcnff5
C
C
C
C
C
C
C
C

C
C
C
C
C

C

; [159]
SFKstprn
; [162]

; [164]

C

SFKdeff3

C
C
C
C

; [165]

C
C

C
C
C
C

C

SFKdeff4

SFKdeff5

C ; (167]
C
C SFKdeff6
C
C
C ; (168]
C

C SFKdeff7
C
C

C ; (169]
C
C SFKdeff8
C
C

II

Next
Choice ",0

db " Choice ",0
db MOefaul t

II

db .. Values ",0
db " Stop
db .. Print

M,O

II

db

II

Copy

..

db

II

all

",0

db " Skip 1 II
db .. char
,0
db "Skip up ..
db .. to charll,O
Void
db
db .. input

Toggle II
db
db II insert ",0
II

db II

New

db II

line

II ,0

db II Print

C
C ; (171]
C
C SFKfmgf2

db IIFile/Dir ll ,0

C
C

db IIFile/Oir .O

C
C
C
C
C
C
C
C
C
C

~

",0

C SFKfmgfl

C

[163] - [170]
are MSDOS
softkey
labels.

II

; [170]

C

~

db " Previous M

II

; [166]

C

C
C

db

db II Delete II
ll

; [172]

SFKfmgf3

db II

Make

II

db

Dir

11,0

II

; [173]

SFKfmgf5
; [174]

db II
db .. Format 11.0

Assembler Listing for Configuration EPROM

J

System 5t rings
20
20
20
20

20 43 6F 70 79
20
20 46 69 6C 65
20 00

20
65
20
20

52 65 6E 61 60
20
20 46 69 6C 65
20 00

20
20
57
72

20 S3 65 74 20
20
69 6C 64 63 61
64 00

lC04

20
77
66
65

44
72
61
2E

lC19

20
20
20
65

20 20 4E 6F 20
20
43 68 61 6E 67
20 00

1801
1809
IBE2
18EA
IBF3
IBF8

lC21
lC2A
lC32

lC3F
lC47
lC5C
lC61
lC76

~,/
",'

\:1;

69 73 63 20
69 74 65 20
69 6C 75 72
00

53 65 74 74 69 6E
67 00
44 4F 53 20 43 SF
60 60 61 6E 64 73
00

18
78
20
20
74
65
18
20
4F
6F
65
00

5B
59
20
48
6F
3A
26
20
53
60
3A

73 18 26 61
46
4F
20
20
61
54
54
20
20

52 4F 40
53 54 20
66 69 6C
58
4F
20
66

OA
20 48
66 72
69 6C

lC77

74 65 72 60 73 65
6E 64 00

lC80

74 65 72 60 6C 6F
67 00

lCSS

20
74
20
OA

43 61 6E 6E 6F
20 6F 70 65 6E
41 55 58 2E 00
00

lC9C

20
66
74
00

49
69
20
OA

lCBl

20 54 72 61 6E 73
60 69 74 20 66 61
69 6C 75 72 65 2E
00

1CC4

6E 73 75 66
63 69 65 BE
S2 41 40 2E
00

~~ ~g ~t ~~ ~~ ~~

73 73 20 22 00

C SFKfmgf6
C
C
C ; [175]

db

II

Copy

db

II

File

C SFKfmgf7
C
C
C ; [176]

db

II

Rename

II

db

II

File

II

C SFKchdf3

db

II

Set

C
C

db ItWildcard",O

C

C
C

C

; [177]

C 5TRwrite_fail
C
C
C ; [178]
C

II

,0

,0

db It Disc write failure.",O

db It

No

C STRcancel
C
C
C ; [180]

db

C STRcur set
C ; [179T

db "Setting".O

C

C
C
C
C

STRdos_com

II

TERM message

Change

It

,0
; Config screens heading

db "DOS Comnands",O

; Max 14 chars

; [181]

C ;***************;
C ; TERM Messages ;
(STRsoftkeys [182) is in file STRTERM.CRM)
C ;***************;
C STRhost
db ESC," [s",ESC. "&axY
Do not change.
C
db
FROM HOST to fi Ie: II
C
Exactly 21 spaces.
C
C
C
C
Do not change.
C
Exactly 21spaces.
C
C
C
C
db 0
C ; [183]
It

It

C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

C
C
C
C
C

STRsend
; [184]

db IItermsend",O

Default filename for

TO HOST from file:

STRlog
; [185]

db "termlog",O

Default filename for

FROM HOST to file:

STRaux

db

II

Cannot open AUX.",CR,LF,O

db

II

Insufficient RAM.",CR,LF,O

db

II

Transmit failure.",O

c

; [186]
STRram
; (187]
STRtransmit
; [188]
STRaccess

db ' Cannot access "' ,0

; [189]
.1ist
CROM ENDS
END

Assembler Listing for Configuration EPROM

C-29

D

Character Sets

This chapter lists the character sets provided by the computer.
HP Mode:

• Roman 8 set.
• Line-drawing/math sets.
Alternate Mode:

• Alternate set.
The Roman 8 and alternate character sets are present in normal (bold) form and in light
(8lhalfbright") form. (Refer to IIFast Video Interruptll in chapter 5.)

Character Sets

0 -1

Table 0-1. RomanB Character Set

DECIMAL

~ ~ ~ ~ ~ ~ ~

0

,.-

cx)~OCOC\lcx)~O
C\I~COl'-o)OC\l~

'r-,.-,-,.-,.-C\IC\IC\I

00000000

COO)..
B '1

~

a

::::: 9 ... U ...

T

IT

T

n =t n =t
it m m

L r+

E

1=1=

.II.

+

.II.

+-+-

+ =It :,

"11'

:, 1\

Q

~

8 ;>.. 8
-x '1 -x

=t 1 =t 1

+- .. ..
t I

coO)O)«aJOQWLL

::
...- 13 ±

~ E

a~

L .LL

li

1 Ii

.L

ie

e fE
a ta0

a

•

0
T
Il I lti

.-

«

TT
LL 1T

r

1
.i

:E

r

-t
+

0 Q~
F C5 J
2:
Q
i
JJ
~I ~
2
:::::
9 U
n I~ ++

" ,..

~

g l.

=I
r ~I

~

t

0

*. ne ••

e0
e () ,

II

~

;,

1r

&

..r

~ !.I

I~

(I)

rt

i ¢
f £

¥ i .LI
A I\- « :I
~

~

S

rr
oiL

r

•
- •

-

I

¢a ;a:

I e •
...
» ..
• fI
oiL

1r

Table 0-4. Character Sets - Numeric Listing

HP
Char
~
~
~
~
~

Line
Char

Alt

Char

~

0
I

•"
.

'"

-t
t

I}

a

"
If.

II,

0

~

B

T

d'

fi:

'i'

v

'R
%
~

t

n
~

D

.,.

D.

-4

~
~
~

!!

L

tte
~

Fe
~
~

-i
~
~
~

I}
~

Code
Dec Hex

~

qr
§

•
1
t

+

.
-+

L.

.

++

•

Line

Alt

Char

Char

~~

1 ~1
2 92
3 93
'I 9'1
5 95
S 9S
1 91
8 ~8
9

~9

19
11
12
13
111
15
16
17
18
19
29
21
22
23
21125

9ft
~B

9C
9D
9E
9F
19
11
12
13
111
15
16
11
18
19

26 1ft

21
29
29
39
31

HP

Char

18
lC
lD
IE
IF

!
II

#

t
i

!
II

#

$

...

$

%
&

It
-II

%
&

T

I

:;:

I

(
)

::!:

II

(
)

*

t

*

,

+
-

,·

l
I
t

,·

T

9
I
2
3

.&.

II

~

5
6
1
8
9

+

-

9
1
2

3
II

5
6

1
8
9

+
l.-I

T
-L

=
I

··, < it

+

,

-

·<·,

r =
)

=
)

=t=

1

=It

1

Code
Dec Hex

32
33
311
35
36
31
38
39
'19
111
112
113
1111
liS
116
111
118
119
59
51
52
53
511
5S
56
51
59
59
69
61
62
63

2~

21
22
23
211
2S
26
21
28
29
2ft
2B
2C
2D
2E
2F
39
31
32
33
311
35
36
31
39
39
3ft

38
3t
3D
3E
3F

Character Sets

o

0-5

Table 0-4. Character Sets - Numeric Listing (Continued)

HP
Char

Line
Char

~

@

Alt
Char

Code
Dec
Hex

@

611
6S
66
67
68
69
79
71
12
13
111
15
16
11
1:8
79
89
81
82
83
911
95
86
81
88
99
99
91
92
93

ft

L

R

8

-I-

8

C

I
I
I

C

D
E

F

D
E
L

.J

F

G
H
I

-,

J

T

J

n
m

t::

t::
L
M

H
(I

=I

+
+

=t
J

P

g

R

S

r

U

U
W
X
V

G
H
I
L
M

H
(I

P

r

g

..r
,

R

1
i-

.

•

1

S

r

U

U
W
X
V

, .. ,

D

Z

Z

[

[

M

liE

n

IIF
59
51
52
53
511
55
56
51
S8
S9
SR
58
5C
SD

0

~

a

L

b

-I-

c
d

e

I
I
I

Alt
Char

...

a
b
c
d
e

f

L

f

9

.J

9

h
i

-,

j

T

j

k

n
m

k

1

p
q

r
5

t
1.1
II)

!AI

=I

+
+
=t
J
r

.r

h
i

1
M

n
0

p
q

r

,

5

1
i-

u

.

"y 1•

t
....
IAI

"y

=I

{

I

-..

}

..u.

}

z
{

..u.

]

A

-

A

911 5E

I¥

11'

-

95 5F

I

Character Sets

Line
Char

....

119
111
112
113
1111
115
116
111
118
119
IIR
118
IIC
liD

]

-

D- 6

=I

HP
Char

,-

z
I
I¥

0

Code
Dec
Hex

96
97
99
99
199
191
192
193
1911
195
196
191
199
199
119
111
112
113
1111
115
116
111
118
119
129
121
122
123
1211
12S
126
127

69
61
62
63
611
65
66
61
68
69
6ft
68
6C
6D
!BE

6F
19
71
12
13
111
15
76
11
18
19
7ft
18
lC

1D
7E

7F

Table 0-4. Character Sets - Numeric Listing (Continued)

HP
Char

-4

.

...
~

!.I
11

rr

Math
Char

Alt
Char

Code
Hex
Dec

~

122
129
139
131
132
133
1311
135
136
131
138
139
1119
1111
1112
1113
11111
1115
1116
1111
1118
1119
159
151
152
153
1511
155
156
151
158
159

(j

e
a
a
a
i

~

~

~I

~

-

e
e

I~

i
i

oiL

1r

--

II

:..

oiL

A
it

1r

•t
•

E
ire

••

fE
.0

r

Q

L

U

.

..

.-.L

ctg

T

0
0

I-

¢

-I

+

I

£
¥
I\:

I

29
81
82
83
811
85
86
81
88
89
8A
8B
8C
8D
8E
9F
99
91
92
93
911
95
96
91
98
99
9A
9Ec
9C
9D
9E
9F

HP
Char

Math
Char

Alt
Char

a
A
II

.f

E
t
E:

§

t
I
J'

...

I

v
±

«

r

:::::

A

IT

~

If

..

v
()

i:

-

r
i

....:.

r-

,

~
~

i

«
:to

~

:2:

".-I

~
~

5
Ii

£

l-

I

~

~

2

1

II

ti
i
l-

~

2:

0

0

~

1
0
U
ti

.,

B
9

Q
A

~
~I

n
=I
~I

II

¥
§

«I

11
!.I

J

.&.I

I

t

:I

¢

E

..

Code
Dec
Hex

169
161
162
163
1611
165
166
161
16e
169
119
111
112
173
1111
175
116
111
119
119
199
191
182
183
1811
195
196
191
199
189
199
191

A9
Al
A2
A3
All
fl5
A6
Al
Ae
fl9
AA
AEe
AC
AD
AE
AF
B9
Bl
B2
B3
BII
B5
B6
Bl
B9
Ec9
EcA
EcEe
BC
EeD
BE
BF

Character Sets

o

0-7

Table 0-4. Character Sets - Numeric Listing (Continued)

HP
Char

1fT

..

@

0:

.L

e.
Q
a
e

a

a
e

...

. -I+
.....

E:

a
;=-..

Y"J

~
I~
~

rr

0

...
8

U

l(

1r

w

I~

a

oiL

-

=

e

v

0
li

v

1r

p

~

-

1r

oiL

.&.

.u.

i

v

,.

~

e-

n
u.

i
1

.-.:

t

~

F

€I

IJ.
8
-x

IT

.e

~

A
~
(I

0
E
i
S

ta

0-8

Alt
Char

a

6
li

D

Math
Char

a

\)

i;

.,.

+
T
+

....

++

*.r

I

•
I
I

•

Character Sets

Code
Hex
Dec

192
193
1911
195
196
197
198
199
299
291
292
293
2911
295
296
297
298
299
219
211
212
213
2111
215

C9
Cl
C2
C3
CII
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF
D9
Dl
D2
D3
DII
D5
DE:
D7

HP
Char

Alt
Char

~

1fT

C<

Ii
i

0:

13

a

r

.....

..

1J

E:

C5

:t
0
0
6

a

-r"
t
e

6

8

n

5
S

'K

&

(J

a
t

v
y

g
I
~

;=-..
Y"J

l-

((I

v

¢'

v

E

p

fI

1r

v

±

e-

2:i

e

-t

r

~

J

a

!4

8
-x
u
i;

~

D9
DA
DB
DC
DD
DE
[IF

2:

2

E

IJ.I

-

216 D8

217
218
219
229
221
222
223

Math
Char

~
0

•
•

«

.,.

I

+

t"I

:to

T

2

±

+
1\

....

•

Code
Dec
Hex

2211
225
226
227
229
229
239
231
232
233
2311
235
236
237
239
239
2119
2111
2112
2113
21111
2115
2116
2117

E9
El
E2
E3
Ell
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
F9
Fl
F2
F3
FII
F5
F6
F7

211a F8

2119
259
251
252
253
2511
255

F9
FA
FB
FC
FD
FE
FF

Using TERM
in Batch Files

~E

You can somewhat automate file uploading by using TERM in an MS-DOS batch file.
If you specify a filename on the command line when you invoke TERM, the first thing
TERM will do when it comes up is attempt to open that file and transmit it to the host.
The effect is exactly the same as if you had run TERM, pressed the "File Names"
function key, typed a filename into the liTO HOSTII field, pressed "File Names" again to
save the filename definition, and then pressed liTo Host" to start the transfer.
term filename

The various upload protocols that are normally accessed by using the (Sh 1 f t ) and
(]I!b) keys together with liTo Host" can be specified by prefixing the command line
~. filename with a special protocol selection character:
I:;

+

"Equals" indicates a Wait For Echo upload.
After each character is transmitted, TERM waits
for the host to echo back the exact same character
before proceeding with the next character. This is
the same as pressing (Sh 1 f t ) along witil the
liTo Host" key.
"Plus" indicates an XON -triggered upload.
Whenever TERM sends out a carriage return, it
stops transmitting data until it sees an XON (DC I)
from the host. This is the standard handshake used
by an HP3000. An equivalent keystroke would be to
press cmI) together with the liTo Host" key.
"Comma" indicates that after the upload completes,
TERM should exit and leave the datacom device power
turned on. This is the same as pressing (Sh 1 f t )
along with the "Exitll key.

Using TEAM in Sa tch Files

E- 1

"Semicolon" indicates that after the upload completes,
TERM should exit and turn off the datacom device power.
This is the same as simply pressing the "Exit" key.
You can combine these special characters in any order to specify the upload action you
desire; the only restriction is that they appear immediately before the name of the file
to be uploaded (without any separating spaces).
term [+=,: ]filename

Note that these options only affect the way by which a file is sent to the host--TERM
does not provide any means of checking incoming data. Consequently, you cannot
configure TERM to wait, as an example) for the host to send a particular string of
characters) or to recognize errors in the incoming data and request the host to
retransmit. Along the same lines) TERM assumes that what it sends out is always sent
correctly; there is no facility for retransmiting data if the host detects an error.

•

N ote

If the file you specify as a TERM command line parameter contains) as the
first thing) commands to the built-in modem) it may be necessary to begin
the file with a blank line. For example, if you wanted to autodial
.~
Information by typing TERM INFO, the file should contain two lines:
,- .


ATDT1,5551212
(The blank line mayor may not be necessary) depending on the version of
modem firmware and system AUX driver.)

E-2

Using TERM in Batch Files

Example: Upload an assembler listing to the HP3000 using EDIT/3000.

echo off
rem **************************************************************
rem BATCH FILE TO UPLOAD TEXT FILES TO AN HP3000
rem
t03000 localfile remotetile [localfile remotefile ... ]
rem
rem
rem You should already be logged onto the 3000 before running this
rem batch file; each local file uploaded can be a maximum of 10000
rem lines in length, with each line not to exceed 132 characters.
rem This batch file requires a small amound of Edisc to work,
rem as it sends commands to the 3000 editor via a file on drive A.
rem Also, the file being uploaded should NOT contain a "II", since
rem this will cause the 3000's editor to stop accepting text.
rem **************************************************************
: BEGIN
if x%l==x goto help
if x%2=cx goto badparm2
if not exist %1 90to badparm1
echo >a:upload.ctl editor
echo »a:upload.ctl set length=132
echo »a:upload.ctl set right=132
echo »a:upload.ctl set size=10000
echo »a:upload.ctl addq
term +,a:upload.ctl
term +,%1
echo >a:upload.ctl II
echo »a:upload.ctl :purge %2
echo »a:upload.ctl keepQ %2,unn
echo »a:upload.ctl exit
term +,a:upload.ctl
del a:upload.ctl
goto nextparm
:BADPARM2
echo No remote file specified to receive "%1"
:HELP
echo usage: t03000 localfile remotefile [localfile remotefile ... ]
goto end
:BADPARM1
echo "%1" does not exist
:NEXTPARM
Using TEAM in Ba tch Files

E- 3

shift
shift
if not x%t==x soto begin
: END

E-4

Using TERM in Batch Files

F

Mass storage

F.1 Disc Drive Options
There are several options for adding disc drives to the Portable PLUS. Four alternatives
are discussed below. The assigning of drive letters (such as A:, B:) may seem confusing at
first, but it follows a very specific scheme.
The built-in disc drives are always A: and B:. The external disc drives specified in the
PAM System Configuration Menu use the next letters. For example, if there are two
discs selected they will be C: and D:, even if there are no physical disc drives attatched.
The disc drives accessed by these letters are the HP-IL disc drives and the newer HP-IB
disc drives. If a device driver is downloaded using a CONFIG.SYS file to talk to other
disc drives (such as the Amigo driver discussed later), it will take the next available
letters.

F.1.1 Built-In Disc Drives
The Portable PLUS has a built-in disc drive consisting of two separate drives. The first
is the Edisc (drive A:, also referred to as the RAM disc or Electronic disc), which is
similar to any removable disc except that it works at lightning speed and is silent.
There is also a ROM disc (drive B:), which contains the system files used in the Portable
PLUS. This disc is similar to any removable disc that is write-protected. You can read
from the ROM disc but you can not write to it.

F .1.2 HP 9114A HP-IL Disc Drive
The UP 9114A is a portable, battery-powered disc drive that packs over 700,000
characters on one double-sided 3.5-inch disc. Simply connect it with HP-IL cables and
set the PAM System Configuration Menu entry for External Discs to one. This disc
drive becomes drive C:.

Mass Storage

F-1

F

F.1.3 HP-IB Disc Drives
The HP-IB disc drives may be used with the Portable PLUS with an HP 82169A
HP-IL/HP-IB Interface for hardware compatibility.
If you put everything together correctly and you get a "bad unit" error
message, you probably have an older HP-IL/HP-IB converter. It will need

"
Note

to be updated with a new processor. Converters with serial numbers before
240lAOOOOO have the old processors. Contact Hewlett-Packard regarding
the update.

In the United States:
Hewlett-Packard Company
Corvallis Service Center
P.O. Box 999
Corvallis. Oregon 97339
(503) 757-2002

In other coyntries:
Contact a local HP office
for information.

The device driver for the newer HP-IB disc drives is built into the BIOS. The newer
HP-IB disc drives include the HP 9122, the HP 9125, the HP 9133/40, the HP
9133/4H, the HP 91 33/4L, and the HP 91 53/4. These disc drives are connected as
follows:
1. Connect the disc drives via HP-IB to the HP-IL/HP-IB converter and connect the
converter at any position in the HP-IL loop.
2. Set all the switches on the converter to zero, then connect the converter to ac

power.
3. Set the number of external disc drives in the PAM System Configuration Menu to

the appropriate number (depending on the configuration) to include the newer
HP-IB disc drives.
The older HP-IB disc drives implement a different command set (called "Amigo"
protocol) than the newer disc drives. An Amigo device driver is included with the
Portable PLUS which will support the following Amigo disc drives: the UP 9121 O/S,
the HP 8290IM/2M, all versions of Winchester drive (5MB I or 4 volume) 10MB) and
15MB), and the HP 9895A 8-inch floppy. To connect any of these disc drives) proceed
as follows:
F- 2

Mass Starage

.~

F

1. Connect the disc drives via HP-IB to the HP-IL/HP-IB converter and connect the

converter at any position in the HP-IL loop.
~
... , . ,

(

2. Set all the switches on the converter to zero, then connect the converter to ac
power.
3. If the disc drive(s) are all dual floppy drives, include the following line in a
CONFIG.SYS file on the A: drive:

DEVICE=B:\BIN\AMIGO.SYS
If the disc drive(s) are not dual floppies, the HP-IB address and number of volumes
at each address must be provided. The following line should be included in a
CONFIG.SYS file on the A: drive:

DEVICE=B:\BIN\AMIGO.SYS

10*4,2#1

The arguments imply that there is a four-volume disc at HP-IB address zero and a
single-volume disc at address two. Note the space after IISYS".
4. Re-boot the Portable PLUS by pressing the ~ ( Sh 1 f t )( Brea k ) key
combination to install the driver. The driver will automatically assign the
appropriate drive letter to each disc drive. "Amigo" drives are assigned letters that
follow the letters for "newer" external disc drives specified in the System
Configuration Menu.

F.1.4 Portable PLUS-Desktop Link

r
.

If you already own an IBM PC, IBM XT, or HP 150, the best solution may be to buy one
of the Portable PLUS-Desktop Links. These inexpensive products include an HP-IL
interface for the desktop, plus software for the desktop that makes it behave like a
peripheral for the Portable PLUS. The Portable PLUS can use the desktop's disc drives
or printer as though they were directly connected. This allows easy file interchange
(although desktop programs will not necessarily run on the Portable P LUS) and gives the
Portable PLUS access to IBM-formatted discs. The software also allows the desktop to
connect to HP-IL printers, disc drives, tape drives, and plotters.

The Portable PLUS-Desktop Link is described in further detail in appendix H, "Portable
PLUS-Desktop Link.1I

Mass Storage

F-3

F

F.2 Media Compatability
F.2.1 Reading Other Discs on the Portable PLUS
The Portable PLUS, when equipped with the appropriate external disc drive, will read
discs that are "HP MS-DOSII format. This includes both single and double-sided
3.S-inch flexible discs, S.25-inch discs, and Winchester discs. All of these should have
been formatted by an HP MS-DOS computer such as the HP 110 or HP 150. Data files
will be directly usable, but programs are not necessarily compatible. (Refer to appendix
A, "Comparisons With Other Computers.")
The Portable PLUS will not read non-MS-DOS discs such as the Integral or HP-86
discs, and may not directly read non-HP MS-DOS discs. However, the Portable
PLUS-Desktop Link described in appendix H will allow the Portable PLUS to read and
write on IBM PC discs.
The HP 9ll4A Disc Drive is capable of reading either single- or double-sided discs, so
single-sided discs from an HP lSOA can be used by the Portable PLUS. A single-sided
disc modified by the Portable PLUS will still be usable by the HP 150 on a single-sided
drive.

~

}

To transfer data from a computer with incompatible discs, use the Portable PLUS
modem or RS- 232 interface to do a file transfer.

F.2.2 Reading Portable PLUS Discs on Other Computers
The HP l50B and HP l50C supports either single- or double-sided discs. Therefore
discs formatted by the Portable PLUS are readable by these computers. Again, data on
the disc is usable by either machine, but programs are not necessarily compatible. (Refer
to appendix A, "Comparisons With Other Computers.")
With a Portable PLUS-Desktop Link, an IBM PC can connect to an HP 9ll4A and read
discs formatted by the Portable PLUS. This gives PC owners access to a more rugged
and portable storage media.
The HP lSOA does not support double-sided, 3.5-inch disc drives. However, an HP
ISO-readable single-sided disc can be formatted on a double-sided drive by following
this procedure:
F -4

Mass Storage

~

}

F

1. Insert the blank disc to be formatted in drive C:.
2. Type format c: Iw and press the (Return) key twice. There will be a delay
while one side of the disc is formatted and checked for bad sectors.
3. When prompted, type any valid volume label and press the (Re tu rn ) key or
simply press the (Rely rn) key for no volume label.

4. Press the CD key to format another single-sided disc or press the
the formatting process.

em key to stop

Anything subsequently stored on this disc will be readable by an HP 150A with a
3.5-inch single-sided disc drive.

"
Note

~

The HP ISO's disc drive must be turned off and on again before switching
to the Portable PLUS discs. This forces the HP 1SO to reconfigure for the
new disc format.

\

Mass Storage

F-5

o

,

~

. "

.

.

.

I

.": .

.

Configuring
Serial Printers
G. 1 Introduction
This section provides information on using seven different serial printers with the
Portable PLUS. The printers covered are:
• HP 2225D ThinkJet Printer.
• HP 26DIA Letter Quality Printer.
• HP 26 86A LaserJet Printer.
• IDS-560 Impact Printer.
• NEe Spinwriter 3510.

• Xerox 61 DC 1 Memorywriter.
• Xerox 625C Memorywriter.
Other serial printers may be used with the Portable PLUS by following procedures
similiar to those described in this section.

G.2 The HP 2225D ThinkJet Printer
The minimum equipment required to use this printer
with the Portable PLUS is listed below:

Hardware Requirements.

The Portable PLUS.
HP 2225D ThinkJet Printer with power cord, printhead, and paper.
HP 92221P Printer Cable.

Configuring Serial Printers

G- 1

G

Connecting the Printer. To connect the ThinkJet Printer to the Portable PLUS,
plug the 9 pin connector of the HP 9222lP Printer cable into the serial port on the
back of the computer. Then plug the 25-pin connector into the back of the printer.

~

.

./

Configuring the Printer. To configure the ThinkJet Printer for use with the
Portable PLUS, use the information in appendix I of the ThinkJet Printer Owner's
Manual. Change the switch settings listed in table G-l to the values specified.
Table G-1. ThinkJet Switch Settings
Segment

Setting

1
2
3
4
5

DOWN
DOWN
DOWN
DOWN
DOWN

Description

Enable Software Handshaking {XON/XOFF}
Segment 2 & 3
No Parity Checking, 8 bit word
Segment 4 & 5
Select 9600 Baud

Configuring the Portable PLUS. To configure the Portable PLUS, the following
values must be set up in the PAM Datacom Configuration Menu and System
Configuration Menu.
Datacom Configuration

Transmission Rate (BPS)
Word Length (bits)
Stop Bits
Parity
XON/XOFF Pacing
eTS Line
OSR Line
OeD Line

G- 2

Configuring Serial Printers

9600
8
1

None

On
Ignore
Ignore
Ignore

System Configuration

G

Printer Interface
Printer Mode

Serial
Alpha and HP Graphics

Datacom Interface

Serial

G.3 The HP 2601A Printer
The minimum equipment required to use this printer
with the Portable PLUS is listed below:

Hardware Requirements.

The Portable PLUS.
HP 2601A Printer with power cord and paper.
HP 92221P Printer Cable.
To connect the HP 2601A Printer to the Portable PLUS)
plug the 9-pin connector of the HP 92221P Printer cable into the serial port on the
back of the computer. Then plug the 2S-pin connector into the back of the printer.

Connecting the Printer.

To configure the HP 2601A for use with the Portable
pages 2-3 and 2-4 in section 2 of the 260JA Installation
and Reference Manual. Change the switch settings listed in table 0-2 to the values
specified. The switches that need to be changed are found under the front access cover.

Configuring the Printer.

PLUS, use the

informatio~ on

Configuring Serial Printers

G- 3

G

Table G-2. HP 2601A Switch Settings
Segment

Setting

1
2
3
4
5

ON
ON
ON
OFF
OFF

6
7
8

OFF
OFF

ON

Description

Select FULL Duplex mode
Enable parity checking & transmission
Select 300 Baud
This segment is not used
1200 Baud is not selected
Select Even Parity
Paper out sensing is enabled
This segment is not used

To configure the Portable PLUS, the following
values must be set up in the PAM Datacom Configuration Menu and System
Configuration Menu.

Configuring the Portable PLUS.

Datacom Configuration

Transmission Rate (BPS)
Word Length (bits)
Stop Bits
Parity
XON/XOFF Pacing
CTS Line
OSR Line
OeD Line

300
7
1

Ev"en
On
Ignore
Ignore
Ignore

System Configuration

G- 4

Printer Interface
Printer Mode

Serial
Alpha Only

Datacom Interface

Serial

Configuring Serial Printers

r

G

G.4 The HP 2686A LaserJet Printer
The minimum equipment required to use this printer
with the Portable PLUS is listed below:

Hardware Requirements.

The Portable PLUS.
HP 2686A LaserJet Printer with power cord and paper.
HP 92221P Printer Cable.
To connect the LaserJet Printer to the Portable PLUS,
plug the 9-pin connector of the HP 92221P Printer cable into the serial port on the
back of the computer. Then plug the 2S-pin connector into the back of the printer.

Connecting the Printer.

To configure the LaserJet Printer for use with the
Portable PLUS, there is nothing that the user needs to (or can) do. This printer comes
from the factory set to the following specifications:

Configuring the Printer.

Baud Rate
Parity
Databits
Stop Bits
Handshake

9600
None
8
1

Both Software {XON/XOFF}
& Hardware {OTR}

Configuring Serial Printers

G- 5

G

Configuring the Portable PLUS. To configure the Portable PLUS) the following
values must be set up in the PAM Datacom Configuration Menu and System
Configuration Menu.
Datacom Configuration

Transmission Rate (BPS)
Word Length (bits)
Stop Bits
Parity
XON/XOFF Pacing
eTS Line
DSR Line
OeD Line

9600
8
1

None
On
Ignore
Ignore
Ignore

System Configuration

Printer Interface
Printer Mode

Serial
Alpha Only

Datacom Interface

Serial

G.5 The ID8-560 Impact Printer - The Paper Tiger
The minimum equipment required to use this printer
with the Portable PLUS is listed below:

Hardware Requirements.

The Portable PLUS.
IDS-560 Paper Tiger with power cord and paper.
HP 92221P Printer Cable.
HP 92222F female-to-female gender converter.

G -6

Configuring Serial Printers

To connect the 105-560 Paper Tiger to the Portable
PLUS, plug the 9-pin connector of the HP 92221P Printer cable into the serial port on
the back of the computer then connect the HP 92222F female to female gender
converter to the 25-pin connector. Finally, plug the 25-pin connector of the HP
92222F converter into the back of the printer.

Connecting the Printer.

'"
\:

To configure the Paper Tiger for use with the Portable
PLUS, use the information in section 3 of the printer manual to change the option
items listed in table G- 3 to the values specified.

Configuring the Printer.

Table G-3. IDS-560 Switch Settings

f:'

.,

Segment

Setting

1

ON

2

OFF

3

ON
ON

Note

4
5
6
7

OFF
OFF

ON

Description

Segments 1, 2 & 3 select 11 11 paper
Segments 4 & 5 combine to select
9600 Baud transmission rate
Select Even Parity
Enable Parity Checking

This printer comes with a DB-25S (female 25-pin RS-232) connector and
can be configured as either a serial or parallel printer. The instructions for
selecting serial or parallel operation are covered in the printer manual in
section 2.3.2 IIInterface Configuration Strapping.1I

Configuring Serial Printers

G-7

G

G

Configuring the Portable PLUS. To configure the Portable PLUS, the following
values must be set up in the PAM Datacom Configuration Menu and System
Configuration Menu.
Datacom Configuration

Transmission Rate (BPS)
Word Length (bits)
Stop Bits
Parity
XON/XOFF Pacing
CTS Line
OSR Line
OeD Line

9600
7
1

Even
On
Ignore
Ignore
Ignore

System Configuration

Printer Interface
Printer Mode

Serial
Alpha Only

Datacom Interface

Serial

G.6 The NEe Spinwrlter 3510
The minimum equipment required to use this printer
with the Portable PLUS is listed below:

Hardware Requirements.

The Portable PLUS.
NEC Spinwriter 3510 with power cord and paper.
HP 92221P Printer Cable.
To connect the NEe Spinwriter 3510 to the Portable
PLUS, plug the 9-pin connector of the HP 92221P Printer cable into the serial port on
the back of the computer. Then plug the 25-pin connector into the back of the printer.

Connecting the Printer.

G -8

Configuring Serial Printers

To configure the NEC Spinwriter 3S 10 for use with the
Portable PLUS, use the information in section 3 of the printer manual to change the
option items listed in table G-4 to the values specified.
Configuring the Printer.

r

Table G-4. Splnwriter 3510 Switch Settings
Segment

Setting

1
2

OFF

ON
ON
ON

3
4

Description

Local Line Feed
Select Even Parity
Enable Parity Checking
Select FULL Duplex

Configuring the Portable PLUS. To configure the Portable PLUS, the following
values must be set up in the PAM Datacom Configuration Menu and System

Configuraton Menu.
Datacom Configuration

Transmission Rate (BPS)
Word Length (bits)
Stop Bits
Parity
XON/XOFF Pacing
eTS Line
DSR Line
OeD Line

1200
7
1

Even
On
Ignore
Ignore
Ignore

System Configuration

Printer Interface
Printer Mode

Serial
Alpha Only

Datacom Interface

Serial

Configuring Serial Printers

G-9

G

G

G. 7 The Xerox 61 OC 1 Memorywriter
The minimum equipment required to use this printer
with the Portable PLUS is listed below:

Hardware Requirements.

The Portable PLUS.
Xerox 61 DC 1 Memorywriter with power cord and paper.
HP 92221P Printer Cable.
To connect the 61 OC 1 Memorywriter to the Portable
PLUS, plug the 9-pin connector of the HP 92221P Printer cable into the serial port on
the back of the computer. Then plug the 25-pin connector into the back of the printer.

Connecting the Printer.

Configuring the Printer.

To configure the Memorywriter for use with the Portable

PLUS, follow the steps below:
1. Turn on the Memorywriter.

2. Use the information in the reference section on page 21 of the 610C 1
Memorywriter Communications Handbook for the Memorywriter to change the
option items listed in table G- 5 to the values specified.
Table G-5. 6101C1 Memorywriter Option Settings
Memorywriter
Code

Default

1200

6

300 [(4)]

Even
Off
Off
On
Orf
On
Orf

e
[Space Bar]
[Space Bar]
x

Even
Off
Orf
Ofr [Space Bar]
On
On (Allow Esc. Seq's)

[Space Bar]

orf

Option

Setting

Baud Rate
Parity
Echo
Caplock
Carrier Return
Auto Linefeed
ESC
Answ~r Back (ENQ)

G - 10

Configuring Serial Printers

x

[Space Bar]

3. After pressing the printer's ~ key to exit the modification routine, the
Memorywriter will be set to the proper state to communicate with the Portable
PLUS. Note that the printer will stay in this state until you deliberately change an
option or leave the Memorywriter turned off or unplugged for five days. (An
internal battery maintains the settings.)
To configure the Portable PLUS, the following
values must be set up in the PAM Datacom Configuration Menu and System
Configuraton Menu.

Configuring the Portable PLUS.

Datacom Configuration

Transmission Rate (BPS)
Word Length (bits)
Stop Bits
Parity
XON/XOFF Pacing
eTS Line
DSR Line
OeD Line

1200

7
1

Even
On
Ignore
Ignore
Ignore

System Configuration

Printer Interface
Printer Mode

Serial
Alpha Only

Datacom Interface

Serial

Configuring Serial Printers

G- 11

G

G

G.8 The Xerox 625C Memorywrlter
The minimum equipment required to use this printer
with the Portable PLUS is listed below:

Hardware Requirements.

The Portable PLUS.
Xerox 62 5C Memorywriter with power cord and paper.
HP 92221P Printer Cable.
To connect the 625C Memorywriter to the Portable
PLUS, plug the 9-pin connector of the HP 92221P Printer cable into the serial port on
the back of the computer. Then plug the 25-pin connector into the back of the printer.

Connecting the Printer.

Configuring the Printer.

To configure the Memorywriter for use with the Portable

PLUS, follow the steps below:
1. Turn on the Memorywriter.

2. Using the procedure described under "Changing Options Settings" on page 26 of
the 625C Memorywriter Communication Handbook for the Memorywriter, change
the option items listed in table 0-6 to the values specified.

G- 12

Configuring Serial Printers

')

Table G-6. 625C Memorywrlter Option Settings

Option

Echo
Cap Lock
Line Cntrl Char
Line Control
Point-to-Point
Baud Rate
Duplex
Parity
Auto Line Feed
Stop Bits
Answer Back

Alpha
Identifier

a
b
c
d
e
f
g
h
i
j
k

Setting

OFF
OFF
CR
OFF
OFF
1200

FULL
EVEN
OFF
1
OFF

Setting
Code

0
0
0
0

0
5
1
1

0
0
0

G

Default

OFF
OFF
CR
OFF
OFF
300 [(3)]

FULL
EVEN
ON [(1)]
2 [(2)]

OFF

3. After pressing the printer's ~ key to exit the modification routine, the
Memorywriter will be set to the proper state to communicate with the Portable
PLUS. Note that the printer will stay in this state until you deliberately change an
option or leave the Memorywriter turned off or unplugged for five days. (An
internal battery maintains the settings.)

Configuring Serial Printers

G -1 3

To configure the Portable PLUS, the following
values must be set up in the PAM Datacom Configuration Menu and System
Configuraton Menu.
Configuring the Portable PLUS.

G

Da.tacom Configuration

Transmission Rate (BPS)
Word Length (bits)
Stop Bits
Parity
XON/XOFF Pacing
CTS Line
DSR Line
DCD Line

300
7
1

Even
On
Ignore
Ignore
Ignore

System Configuration

G - 14

Printer Interface
Printer Mode

Serial
Alpha Only

Datacom Interface

Serial

Configuring Serial Printers

Portable PLUSDesktop Link
The Portable PLUS-Desktop Link (PDL) is much more than a wire connection between
a desktop computer and the Portable PLUS. It is the key to a powerful portable and
desktop companion relationship. Compatibility of machines is brought about by the
sharing of information and peripherals. The investment ~ade in higher capability
peripherals such as Winchester discs and letter quality printers can be spread across
several machines by using the PDL with a desktop computer. The POL makes it easy to
transfer information to or from the Portable PLUS.
The PDL is the necessary hardware and software on a desktop computer that enables
the Portable PLUS to easily communicate with the desktop computer. The hardware
provides a low cost communications link using HP-IL. The software) which is provided
("'" by the POL, is executed on the desktop computer.
Information can be transferred from the Portable PLUS to or from a disc that is
attached to the desktop. The desktop computer simply passes the information to or
from its disc drive to the Portable PLUS. The Portable PLUS can also use a printer
which is attached to the desktop computer as if it were directly tied to the Portable
PLUS. In those circumstances when it is more convenient to display the information on
the screen rather than print it) you can treat the display on the desktop like a printer.
Another capability which is provided for the desktop computer is the capability of
using HP-IL peripherals such as the Hewlett-Packard ThinkJet Printer with the HP-IL
interface. The PDL deals only with the connection between the Portable PLUS and the
desktop.

~
"
,

(

Portable PLUS -Desktop Link

H-1

H. 1 Portable PLUS to HP 150
The Portable PLUS-Desktop Link is implemented on the HP 150 by the HP 45643A
Extended I/O Accessory. This product also provides a parallel printer interface. A
cable for the printer is available separately.
H

The POL provides the capability to pass information between the Portable PLUS and
the HP 150 and allows the Portable PLUS to access the desktop's peripherals. In
addition, the HP 150 may drive HP-IL peripherals.
Example: An executive who is out of the office a few days each week needs to write

letters and reports while she is on the road. In her office, her secretary has an HP 150
with a letter quality printer. Her problem is to use the printer to print her letters
without copying them first to the disc drives on the HP 150. The executive has no need
to retain copies of most of her letters on a disc. She just wants to get letter quality
printouts of her text using the printer connected to the HP 150.
Equipment needed:
HP 150 with dual disc drives.
Printer attached to the HP 150 that is installed as the PRN device.
HP 45643A Extended I/O Accessory.
The Portable PLUS.
2 HP-IL Cables.
1. Install the HP 45643A Extended I/O Accessory in the HP 150.

2. Connect the HP 150 to the Portable PLUS using HP-IL cables.
3. On the HP 150 insert the HP 45643A disc into drive A: and run HPLINK. When
(Return) for printer.
requested to select a device, type

m

4. On the Portable PLUS, create and store a memo in the file A:MEMO.
5. Print the file MEMO on the Portable PLUS using PAM's File Manager Print File

function.
6. After the memo has been printed, exit HPLINK on the HP 150 by typing

the HP 150 keyboard.

H- 2

Portable PLUS -Desk top Link

CD on

~

"-

H.2 Portable PLUS to IBM PC/X'T
On the IBM PC/XT, the Portable PLUS-Desktop Link is implemented by the HP
82973A HP-IL Interface Card. The hardware combined with the software provided
with the POL enables the Portable PLUS to efficiently transfer information to or from
a desktop and utilize peripherals on the desktop computer. Using the driver provided,
the IBM PC/XT may drive HP-IL peripherals.
Example: A food brokerage firm has five sales representatives who call on different

wholesalers. The firm has developed a spreadsheet using 1- 2- 3 from Lotus on their
IBM PC. This spreadsheet contains ordering information, discount levels, and other
relevant information about the products represented by this brokerage. Each of the
sales representatives has the Portable PLUS, which they carry with them on their sales
calls. When the sales representative leaves the call, he will have a completed record of
the call. The problem that the firm has is how to transfer a spreadsheet template from
the IBM PC's disc drives to the Portable PLUS.
Equipment needed:
IBM PC with two flexible disc drives.
HP 82973A UP-IL Interface Card.
1-2-3 from Lotus for the IBM PC.
The Portable PLUS.
2 HP-IL Cables.
1. Install the UP 82973A interface card in the IBM PC.
2. Using 1-2-3 from Lotus, create a spreadsheet on the IBM PC and store it as the
file "CALLER" on a disc in drive B.
3. Connect the IBM PC to the Portable PLUS using HP-IL cables.

4. On the IBM PC, insert the HP 82973A disc into drive A and run HPLINK. When
requested to select a device, type OJ (Return) for disc.
5. On the Portable PLUS, copy D:CALLER to A:. (Drive D: addressed from the
Portable PLUS is the same as drive B: as addressed from the IBM PC.)
6. After the file has been copied and a message to that effect is displayed, return
control of the IBM PC to the operating system by typing CD on the IBM PC.
Portable PLUS -Desktop Link

H- 3

H

H.3 Portable PLUS to IBM AT

H

The Portable PLUS-Desktop Link interface card for the IBM PC/XT (HP 82973A) can
be used in the IBM AT. However) due to the differences in the disc formats in MS-DOS
3.00 and MS-DOS 2.11) it is necessary that the Portable PWS be configured as a disc
drive that can be read and written to by the IBM AT. Do this by running the built-in
HPLINK program. The IBM AT can load the HPIL.SYS driver provided by the PDL and
access the Portable PLUS and other HP-IL peripherals.

H.4 Portable PLUS to Portable (or Portable PLUS)
The Portable PLUS can be linked to the Portable (HP 110) or to another Portable PLUS
via HP-IL cables. The software necessary to pass information is built into both
computers. Simply run HPLINK on one of the computers to simulate a disc drive and
provide access to its built-in RAM and ROM discs through HP-IL. (Refer also to
chapter 6 in Using the Portable PLUS.)

H- 4

Portable PLUS -Desktop Link

~

~'~ .
.

:

. -,. ~.

.:'

~.

'..
.'

:

.

!

.

Parts
This appendix lists accessories and parts that you can use with the Portable PLUS. The
lists are separated into three groups:
• Accessories used with the Portable PLUS.
• Custom Hewlett-Packard parts, which may be made available to independent
hardware vendors through HP sales offices. For information about becoming an
independent hardware vendor, contact your local Hewlett-Packard sales office.
• Standard parts, which are available from non-HP vendors.

~ Table 1-1. Portable PLUS Accessories
Model Number

HP
HP
HP
HP
HP
HP
HP
HP
HP
HP
HP

82983A
82982A
82981A
82984A
82985A
9114A
88014A
2225B
82199A
922050
92189A

HP
HP
HP
HP

92221M
92221P
92221F
92204E

Description

300/1200 BPS Modem (internal)
Software Module (ROM drawer)
128K Memory Module
128K Memory Card (add -on)
Video Interface
Portable 3-1/2" Disc Drive (battery-powered)
Replacement battery
ThinkJet Personal Printer (battery-powered)
Replacement battery
Acoustic Coupler
Keyboard overlays (package of five)
Serial interface cables:
Modem cable (5-foot)
Printer cable (5-foot)
Female adapter (gender converter)
Interface reconfiguration device

Parts

1-1

Table 1-1. Portable PLUS Accessories (Continued)

HP 82973A
HP 45643A
HP
HP
HP
HP
HP
HP
HP
HP

82167A
82167B
821670
82164A
82169A
13269U
13269V
13269W

HP 821590
HP 82066B
HP 82067B
HP 82067B Opt 001
HP 82068B
HP 82069B
HP 45419C
45711-60055
45711-60056
45711-60057
45711-60058

1-2

Parts

Portable-Desktop Link (HP-IL card for IBM PC/XT)
Portable-Desktop Link (HP-IL card for HP ISO)
HP-IL cables:
Cable (0.5-meter)
Cable (I-meter)
Cable (5-meter)
HP-IL/RS-232-C Interface
HP-IL/HP-IB Interface
Leather conformal case
System carrying bag
Attache computer/brief case
AC Rechargers:
u.S. (110 Vac)
Europe (220 Vac)
U.K. (220 Vac)
U.K. with RSA plug (220 Vac)
Australia (220 Vac)
Europe (110 Vac)
Programmer's Tools
Owner's documentation (English)
Owner's documentation (French)
Owner's documentation (German)
Owner's documentation (Italian)

Table 1-2. Custom HP Parts
Part Number

5001-6303
45711-80021
0535-0063
5061-4323
5001-6301
82982-00001
0515-0346
0515-1369
5001-6302
5061-2211

Description

Software Module:
ROM DIP carrier
Modem parts:
Ground strap
Flanged hex nut (M3xO.5, 3.7 mm thick)
Plug-in module parts:
Plastic drawer with inserts
Memory (RAM) module cover
Software (ROM) module cover
PCB screw (M2x0.4 x 4 mm, Torx T6)
Cover screw (M2x0.4 x 5 mm, Torx T6)
ESD ground spring
Recharger:
Cable with built-in plug

Table 1-3. Standard Parts
Part Number

520252-2
10-91-2624
15-29-5012
10375-1
65000-116

Description

RJ 11 C phone jack, right angle, PC mount:
AMP Inc., Harrisburg, PA
Plug-in drawer connector, 62-pin male:
Molex Products Co., Lisle, IL
Modem board connector, 12-pin male:
Molex Products Co., Lisle, IL
AMP Inc., Harrisburg, PA
Dupont Connector Systems, New Cumberland, PA

Parts

1-3

.

,"

I

.

.

i

Escape Sequence
Summary
This appendix summarizes the following escape sequences and control characters:
• Portable PLUS Control Characters
• HP Two-Character Escape Sequences
• HP Alpha & Graphics Escape Sequences
Table J-t Control Characters

Description

Char
CTRL
CTRL
CTRL
CTRL
CTRL
CTRL
CTRL
CTRL
CTRL
CTRL
CTRL

@

G
H
I
J
M
N
0

Q
S
[

Null
Bell
Backspace
Horizontal Tab
Line Feed
Carriage Return
Select Alternate Font
Select Primary Font
Resume Output
Stop Output
Escape

Escape Sequence Summary

J-1

Table J-2. Two-Character Escape Sequence Summary

Seq

J

ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC

J-2

Description

0
A
B
C
0

E
F
H
I
J

K
L
M
P
Q
R
S
T
U
V
Y
Z
A

'
a
d
h
i

Print Screen
Cursor Up
Cursor Down
Cursor Right
Cursor Left
Reset Console
Home Down
Home Up
Tab Forward
Clear to End Of Display Memory
Clear to End Of Line
Insert Line
Delete Line
Delete Character
Insert Character ON
Insert Character OFF
Roll Up
Roll Down
Next Page
Previous Page
Display Functions ON
Display Functions OFF
Read Primary Status
Read Relative Cursor Position
Read Absolute Cursor Position
Enter Line
Home Up
Tab Backward

Escape Sequence Summary

Table J-3. HP Alpha Escape Sequence Summary

Escape Sequence

~"'"

\:

Description

ESC
ESC
ESC
ESC
ESC
ESC
ESC

&a
&a
&a
&a
&a
&a
&a

0 •• 79
O•• 61
O•• 79
0 •• 24

C

+/-n
+/-n

C

ESC
ESC
ESC
ESC
ESC
ESC

&d
&d
&d
&d
&d
&d

{@-O}

ESC
ESC
ESC
ESC

&f
&f
&f
&f

0 .. 2
-1 •• 80
1..8
-1 •• 80

1..2

R
X

Y

R
D

Select Display Enhancement
Normal
Blinking only
Inverse Video only
Underline only
Halfbright only

@

A
B

0
H

ESC & i
ESC & i

A

D
K
L
@

B

&k
&k
&k
&k

0 .. 1
0 .. 1
0 .. 1
0 .. 3

ESC & k

0 .. 1

P

ESC & s
ESC & s

0 .. 1
0 .. 1

A

ESC
ESC
ESC
ESC

Move to Absolute Column
Move to Absolute Row
Move to Screen Column
Move to Screen Row
Move to Relative Column
Move to Relative Row
Arabic/Latin Mode Select

\
A

D
0

C

Softkey
Softkey
Softkey
Softkey

J

Attribute
Label Length
Key Select
String Length

Softkey Labels OFF
Softkey Labels ON
Alt Mode Keyboard OFF/ON
Auto Linefeed OFF/ON
Bell OFF/ON
Select Keyboard Mode o Turn off keyboard modes
1 Turn on Numeric Keypad
2 Turn on Scancode Mode
3 Turn on Modifier Mode
Caps Lock OFF/ON
Transmit Functions OFF/ON
End -Of-Line Wrap ON/OFF

Escape Sequence Summary

J-3

Table J-4. HP Graphics Escape Sequence Summary

Escape Sequence

*d
*d
*d
*d
*d
*d
*d
*d
* d x,y
* d x,y
* d o.. 1
*d
ESC * m O•• 4
ESC * m 1.. 10
p,s
ESC * m
x,y
ESC * m
ESC * m
ESC * m
ESC * m
ESC * p
ESC * p
ESC * p
ESC * p
ESC * p
ESC * p
ESC * p
ESC * p
ESC * p
x,y
ESC * p
ESC * s 1/110
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC
ESC

J

J-4

Description
A

B

C
D
E
F

K
L

0
P
Q
R

A

B

C
J

K
L
R

Clear Graphics Memory
Set Graphics Memory
Graphics ON
Graphics OFF
Alpha ON
Alpha OFF
Block Cursor/Gcursor ON
Uline Cursor/Gcursor OFF
Position Gcursor Absolute
Position Gcurosr Relative
Alpha Primary/Secondary Cursor
Alpha Cursor OFF
Set Drawing Mode
Set Line Type
Set Line Pattern and Scale
Set Relocatable Origin
Set ReI Origin At Pen Position
Set ReI Origin At Gcursor
Set Graphics Defaults

Lift Pen
Lower Pen
Move Pen to Gcursor Position
D Draw Dot at Pen Position
E Set ReI Origin at Pen Position
F Use ASCII Absolute Format
G Use ASCII Incremental Format
H Use ASCII Relocatable Format
Z NOP/Synch
Move Pen

A

B
C

S

Read Model/Serial Number

Escape Sequence Summary

Table J-5. ANSI Escape Sequence Summary

Escape Sequence

"
\

Description

ESC [
ESC [
ESC [
ESC [
ESC [
ESC [

pl
pl
pl
pl
pl;p2
pl

A
B

ESC [

pl

K

ESC [
ESC [
ESC [
ESC [
ESC [
ESC [
ESC [
ESC [

pl
pl
pl
pl;p2
pl
pl
pl;p2
pl

M
P
R
U
V
f
h

C
D
H
J

L

Cursor Up  Lines (CUU)
Cursor Down  Lines (CUD)
Cursor Right  Columns (CUR)
Cursor Left 

Columns (CUL) Move to Absolute Position (CUP) Erase Display o Clear to end of display I Clear to start of display 2 Clear entire display Erase Line o Clear to end of line 1 Clear to beginning of line 2 Clear entire line Insert

Lines (IL) Delete Lines (DL) Delete

Characters (DCH) Cursor Position Report (CPR) Next Pages (NP) Previous

Pages (PP) Move to Absolute Position (HVP) Set Mode 4 Insert Character ON :::0 Alpha Mode ON ::: I Alpha Mode ON :::2 Alpha Mode ON ::: 3 Alpha Mode ON =4 Graphics Mode ON ::: 5 Graphics Mode ON :::6 Graphics Mode ON :::7 End-Of-Line Wrap ON ::: 8 Alpha Mode ON ::: 10 Graphics Mode ON ?7 End-Of-Line Wrap ON J ..", Escape Sequence Summary J-5 Table J-5. ANSI Escape Sequence Summary (Continued) ESC [ 1'1 1 ESC [ 1'1 m ESC ESC ESC 6 n J J-6 [ [ [ s u Escape Sequ~nce Reset Mode4 Insert Character OFF =0 Alpha Mode OFF =I Alpha Mode OFF =2 Alpha Mode OFF =3 Alpha Mode OFF =4 Graphics Mode OFF =5 Graphics Mode OFF =6 Graphics Mode OFF =7 End-Of-Line Wrap OFF =8 Alpha Mode OFF =10 Graphics Mode OFF ?7 End-Of-Line Wrap OFF Set Graphics Rendition o All attributes OFF 1 Halfbright ON 4 Underline ON 5 Blinking ON 7 Inverse ON 10 Use HP Fonts 11 Use AU Fonts Device Status Report (DSR) Save Cursor Position (SCP) Restore Cursor Position (RCP) Summary K Software Module Configurations K. 1 Overview The HP 82982A Software Plug-in Module for the Portable PLUS provides a means for integrating additional ROM-based software into the computer system. This module has a storage capacity of 1.5M-bytes and supports up to twelve IIROM-disc" software packages. The configuration of the module can be modified to accept a variety of combinations of ROMs and EPROMs. The ROM/EPROM Module is shipped from the factory configured to accept 6 pairs of ROMs. These ROMs can be a variety of sizes, as long as they meet the pin -out and performance requirements described in a following section. They can be matched pairs (allowing the possibility for executing code directly out of ROM/EPROM) or a pair can be two independent applications, each formatted as a stand-alone directory of files. The configuration of the module can be modified by re-positioning one or more of the six jumpers wires mounted between the ROM/EPROM sockets. The positioning of these jumpers for all possible configurations is described in table K-1. Two, four, or six of the ROM-socket pairs can be configured to accept 32Kx8 EPROMs instead of ROMs. These banks can be treated independently (as if they were ROMs) or the jumpers can be configured to allow 4 pairs of EPROMs to be cascaded, allowing them to be mapped into the entire 256K-bytes of memory space allocated for a ROM bank. This feature allows emulation of two 128K-byte ROMs using eight 32K-byte EPROMs (or potentially eight 32K-byte ROMs). The remaining two socket pairs always operate as independent banks. Software Module Configurations K-1 Table K-t Wire Jumper Connections for ROMs/EPROMs Wire Jumper Connections Configuration XWI XW2 XW3 XW4 XW5 XW6 Small Group: Banks 0 and 1 Independent ROM Pairs = Independent EPROM Pairs a A B - Large Group: 4, 5, 6, 7 B~~ks a Independent ROM Pairs = Independent EPROM Pairs Bank 7*= Up = Up to 4 cascaded pairs of 32Kx8 ROMs to 4 cascaded pairs of 32Kx8 EPROMs - A B A - A B A A A A A A B B B B B B B B Notes: A A_" in a particular column means that the jumper does not affect the bank configuration. K Banks 2 and 3 are not present in this module. The factory configuration is for all independent ROM pairs (all jumpers in position A). * When the jumpers are configured for cascaded pairs of 32K-byte ROMs/EPROMs, the ROMs/EPROMs must be installed in the order 5-6-7-4 (that is, sockets 5H, 6H, 7H, 4H become bank 7H, and sockets 5L, 6L, 7L, 4L become bank 7l). Banks 4, 5, and 6 are not present in this configuration. K- 2 Software Module Configurations K.2 Plug-In ROMs and EPROMS " ..••...r · · . ( ROMs (or EPROMs) that are to be installed in the HP 82982A Software Drawer must meet certain specifications to ensure proper system operation. These specifications are listed in table K- 2. Table K-2. Plug-In ROM Specifications Paremeter Specification Physical: ICpackage Operating temperature Storage temperature ROM: 12 8K x 8 through 8K x 8 EPROM: 32K x 8 Jedec 28-pin dual in -line 0° to 55°C (32° to 131°F) -25° to 55°C (-13° to 131°F) Electrical: Access time (CS* to data valid) Output enable time (OE* to data valid) Data hold time Deselect time (CS* high) Cycle time Address setup time (address valid to CS*) Output capacitance (data lines) Output capacitance (address lines) Power supply voltage Operating current Stand -by current 363 ns max. (150 pF load) 363 ns max. (150 pF load) o ns min. 90 ns min. 935 ns o ns min. 15 pF max. 10 pF max. 5 Vdc ± 5% 50 mA max. 1 mA max. K ,. r-' '::! .' Software Module Configurations K-3 Figure K-1 illustrates the pin configuration for ROMs and EPROMs used in the software drawer. A jumper in the drawer determines the connection for pin 1 based on whether the Ie is a ROM or an EPROM. Figure K-t Pin Configuration for Plug-In ROM ++ 1 A12 A7 A6 2 3 4 5 6 AS A4 A3 A2 7 S 9 Al AO DO 01 02 GNO K Key: Note: " Note K -4 28 27 26 25 24 10 11 12 13 14 Cs* OE* VPP Vcc A14 A13 AS A9 23 All 22 21 20 19 18 17 16 15 A16/0E* Al0 CS* 07 06 05 04 ++ 03 Set by jumper ROM: A15 EPROM: Vpp = Chip Select (asserted low) = Output Enable (asserted low) c EPROM secondary supply voltage (operating: 5 volts) The numbering scheme used for the address signals shown on this diagram and used by integrated circuit manufacturers is offset by one in relation to the signal names shown on the schematic diagram of the ROM module. The pin labeled AO in this diagram is connected to signal MAlon the schematic diagram, At to MA2, etc. It is generally possible to use a ROM/EPROM with secondary "Chip Select*" (asserted low) lines in the positions of "No Connect" pins which are otherwise used as address lines by larger memory components. Mirror images are not required by the system and these address lines will be driven low when accessing these ROMs/EPROMs. Software Module Configurations ~ . } K.3 Detailed Description K.3.1 ROM/EPROM Organization Options A software package can be stored in a variety of configurations depending on its size, whether or not code is to be executed directly out of ROM/EPROM, and whether the package is to be stored in ROM or EPROM. The typical storage configurations of a single software package are described in the following table. Memory sizes shown in table K-3 refer to the number of bytes of storage in the ROM/EPROM (memory components organized to have 8-bit parallel access). These memory sizes are rounded up to correspond to the size of typically-used parts. The abbreviations "hbu and "fb refer to "Half-Banku and "Full-Bankll, respectively. These terms are described in the text following the table. Note that only 32K-byte EPROMs can be used in this module (any size ROM can be used). ll T.able K-3. ROM/EPROM Organization Options Typical Storage Options: ROM EPROM Software Package Size 32K 33K-64K 65K-128K 129K-256K 257K+ K 32K ROM 1 hb 32K EPROM 128K ROM 2 fb or hb 32K EPROMs 128K ROM 3-4 hb 32K EPROMs 128K ROMs 5-8 fb 32K EPROMs Software package must be partitioned into 2 or more pseudo -independent packages, each


Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.6
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.0-c321 44.398116, Tue Aug 04 2009 14:24:30
Modify Date                     : 2010:12:31 11:09:48-08:00
Create Date                     : 2010:12:30 23:07:45-08:00
Metadata Date                   : 2010:12:31 11:09:48-08:00
Creator Tool                    : ScanSnap Manager #S1500M
Format                          : application/pdf
Document ID                     : uuid:6f828b95-393f-a047-abe8-801b97d46d95
Instance ID                     : uuid:c8a3a237-3945-c240-9473-908249928b0b
Producer                        : Adobe Acrobat 8.25 Paper Capture Plug-in
Has XFA                         : No
Page Count                      : 550
Creator                         : ScanSnap Manager #S1500M
EXIF Metadata provided by EXIF.tools

Navigation menu