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
.
Page Count: 550
| Download | |
| Open PDF In Browser | View 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