" NOTICEThe information contained herein is proprietary and is provided solely for the purpose of allowing customers to
operate and service Intermec manufactured equipment and is not to be released, reproduced, or used for any
other purpose without written permission of Intermec.
Disclaimer of Warranties. The sample source code included in this document is presented for reference only.
The code does not necessarily represent complete, tested programs. The code is provided AS IS WITH ALL
FAULTS." ALL WARRANTIES ARE EXPRESSLY DISCLAIMED, INCLUDING THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
We welcome your comments concerning this publication. Although every effort has been made to keep it free of
errors, some may occur. When reporting a specific problem, please describe it briefly and include the book title
and part number, as well as the paragraph or figure number and the page number.
Send your comments to:
Intermec Technologies Corporation
Publications Department
550 Second Street SE
Cedar Rapids, IA 52401
ANTARES, INTERMEC, NORAND, NOR*WARE, PEN*KEY, ROUTEPOWER, TRAKKER, and TRAKKER
ANTARES are registered trademarks and ENTERPRISE WIRELESS LAN, INCA, Mobile Framework, TE 2000,
UAP, and UNIVERSAL ACCESS POINT are trademarks of Intermec Technologies Corporation.
1998 Intermec Technologies Corporation. All rights reserved.
Acknowledgments
ActiveX, Microsoft, MS, and MSĆDOS, Windows, and Windows NT are registered trademarks and MSDN, Visual
Basic, Visual C++, and Windows for Pen are trademarks of Microsoft Corporation.
Borland, dBase , and Turbo Pascal are registered trademarks and Borland C and C++ for Windows are
trademarks of Borland International, Inc.
CIC and Handwriter are registered trademarks, and other CIC product names, service names, slogans or logos
referenced are trademarks or registered trademarks of Communication Intelligence Corporation.
Intel is a registered trademark of Intel Corporation.
PenRight! and PenRight! Pro are trademarks of PenRight Corporation.
SanDisk is a trademark of SanDisk Corporation.
XMS is a registered trademark of Lotus, Intel, Microsoft, and AST Research.
PEN*KEYR 6200/6300 Hand-Held Computer Programmer’s Reference Guide xi
Page 14
CONTENTS
xii PEN*KEYR 6200/6300 Hand-Held Computer Programmer’s Reference Guide
Page 15
Preface
""""""""""""""""""""
This publication was written to assist you in the development, or porting, of endĆ
user applications for use on PEN*KEY
If you are unfamiliar with the structure of the 6000 Series Programmer's ReferĆ
ence Guides, be sure to read Locating Information, to simplify the task of finding
topics of interest.
Most of the material in this publication pertains to both the 6200 and 6300 SeĆ
ries computers. This especially applies to material for which model numbers are
not mentioned. Whenever 6200 is mentioned, that information applies to the
6200 Series. Whenever 6300 is mentioned, that information applies to the 6300
Series. For information relating only to a specific model, the appropriate model
is identified in the text. For cases not mentioned here, the applicability of any
particular piece of information is obvious by its use in the text.
This publication applies for flash versions 1.40 through 1.5x. The installation,
configuration, functionality, and usage for applications described herein apply to
the versions of device drivers supplied in a typical release for this flash version.
See the RELNOTES.TXT file in the Toolkit for version numbers of the individual
device drivers for your particular configuration. See C++ Application Changes, in
Section 6, for additional information on versions that apply to specific models.
Level of Expertise Needed
The information in this book is intended for experienced application programĆ
mers. However, you should find writing applications for the 6200 and 6300 SeĆ
ries Computers very much like writing applications for most standard PCs, with
some differences. For information relating to these differences, see the IntroducĆtion to the 6200 and 6300 Series Computers paragraph in Section 1.
For the New User
If you discover you need further assistance in developing applications, consider
the available resources, such as those listed in Section 8.
Also, Intermec Technologies Corporation provides training and support for purĆ
chasers of our products. See the Support Available paragraph, later in this secĆ
tion.
See Appendix B for additional information. For example, the Memory Overview
and The Windows Environment paragraphs contain valuable information for new
users.
Related Publications
PEN*KEY Model 6200 HandĆHeld Computer User's Guide P/N 961Ć028Ć075
The following overview describes the structure of this publication.
Section 1, Getting Started
Contains information to help you become familiar with your 6200 or 6300 ComĆ
puter. It describes the 6200 and 6300 Systems, the DOS and Windows environĆ
ments, how to reprogram flash memory and set up your system, using thirdĆ
party applications, and some development resources.
Section 2, Supporting DOS Applications
Describes several DOS applications supported for the 6200 and the 6300 ComĆ
puters, as well as printing and power management for the DOS environment.
Section 3, Supporting Windows Applications
Describes the minimal Windows installation, the NORANDR Windows shell,
several Windows applications supported for the 6200 and the 6300 Computers,
as well as printing and power management in the Windows environment.
Section 4, Power Management
Describes Advanced Power Management (APM), supported for the 6200 and
6300 Computers.
Preface
Preface
Section 5, Communications and Device Support
This section includes the following information:
" Communications Support
Norand Utilities, Novell ODI Ethernet, INTERLNK and INTERSVR
" Device Support
Devices that are supported for both DOS and Windows, including the upper
memory management utility and the keyboard.
Section 6, Conversions and Interfaces
Porting 4000 Series applications to the 6000 Series Computers, a list of interĆ
rupts including detailed definitions.
" Interrupt CrossĆReference (by number)
A crossĆreference table indexed directly to each of the interrupts (organized
by interrupt number).
Section 7, System Information
Including the boot process, the DOS operating system, H8 Downloads hardware
reference information, such as: messages, audible alerts, IRQ and I/O maps, and
system variables.
Section 8, Open Systems Publications
A list of publications which were referenced from other places within this book,
and others useful for developing applications for your computer.
Appendix A, Sample Configuration Files
Provides examples of configuration files for your computer.
Appendix B, Common PEN*KEY 6000 Series Information
Contains information common to most (or all) of the PEN*KEY 6000 Series comĆ
puters:
" Memory Overview
Some noteworthy design aspects of the PEN*KEY 6000 Series system.
" Windows Environment
An overview of Windows, describing the manner in which Windows, BIOS,
the applications, the drivers, and the hardware all work together, including
an approach for determining the memory requirements for a WindowsĆ
based PEN*KEY 6000 Series system.
" Design Notes for PEN*KEY WAN Power Management
Describes the application programming interface (API) for power manageĆ
ment of the NORAND WideĆArea Network (WAN) implementation for a
PEN*KEY 6000 Series computer.
Index
This section is partitioned into the following subsections:
" General Index
Consists of a variety of useful topics in this publication, excluding those topĆ
ics listed in the following subsections.
" Files Index
This is a fairly comprehensive list of the file names, applications, and device
drivers that are described (or mentioned) in this publication.
" Interrupt Index
A complete list of interrupts defined in this publication, organized alphabetĆ
ically by topic.
Locating Information
Describes several documentation tools to assist you in navigating through the
information in this book.
Contents
The Contents section is a good place to begin searching for information in this
publication, since it is an outline of the book.
Topic Summaries
There is a Topic Summary at the beginning of each section in this publication. It
provides a (miniature) table of contents for the section. For example, the TopicSummary in Section 2 provides an index to each of the DOS applications, includĆ
ing a topic title, the name of each application, and the page number where that
topic is described.
Tabs
Since various paragraphs throughout the book see information in other sections,
the bleed tabs" (located along the right margin) are provided to assist you in loĆ
cating sections quickly.
The Index section, at the end of this publication, also provides a quick method of
locating information. It is divided into three subsections, as previously deĆ
scribed.
Locating Files and Applications
There are several ways to locate the information for a particular file:
" The Files Index is probably the most useful source, because it is a fairly
comprehensive list of the names of all files, application programs, device
drivers, batch files, and utilities described in this book.
" The Contents is another source for locating applications. If the topic deĆ
scribes an application, the name of that application is included in the paraĆ
graph title.
" The Topic Summary (at the beginning of each section) is a miniĆTable of
Contents for the topics included in that section. If the topic describes an
application, the name of that application is included in the Topic Summary.
" If you know the file is a DOS application, look in Section 2. Check out
the Topic Summary, first.
" If you know the file is a Windows application, look in Section 3. Check
out the Topic Summary, first.
The following items are lists of files and applications:
" The Key Files Used in Flash Upgrade paragraph, in Section 1, contains
a list of files, on page 1Ć14.
" CardSoft Utilities, in Section 1, contains a list of SystemSoft files, beginĆ
ning on page 1Ć22.
" DOS Device Drivers are listed in Section 1, on page 1Ć32, including a brief
title of the software driver.
" Windows Device Drivers are listed in Section 1, on page 1Ć32, including a
brief title of the software driver.
" A few Utility Programs are briefly defined in Section 1, on page 1Ć33.
" Some Batch File Enhancers are briefly defined in Section 1, beginning on
page 1Ć33.
" Windows Components are listed in Section 3, beginning on page 3Ć4.
Preface
Locating Interrupt Definitions
There are several ways to locate the information for an interrupt.
" The Contents contains entries that can lead you to the general location
where each set of interrupts is documented. For example, System Timer
Interrupt, Display Services Interrupt, Standard Mouse Interface.
" The Interrupt CrossĆReference table, in Section 6, is organized by interĆ
rupt number and includes page numbers to the locations where these interĆ
rupts are defined.
" The Interrupt Index (at the end of this publication) lists all of the interĆ
rupt definitions included in this book, organized alphabetically by topic.
" See Section 8 for the names of publications that provide information about
As you pursue your PEN*KEY 6000 Series computer development activity, you
can obtain information and personal assistance from various resources.
This Programmer's Reference Guide pulls together, under one cover, many diĆ
verse and separate topics related to PEN*KEY 6000 Series development activity.
"
NOTE:Other related information is available from third-party suppliers. Many of these sources are
identified in Section 8.
Factory Service
If your unit is faulty, you can ship it to the nearest authorized Service Center for
factoryĆquality service.
Customer Support Center
The Intermec Customer Support Center (technical support) telephone number is
800Ć755Ć5505 (U.S.A. or Canada) or 425Ć356Ć1799. The facsimile number is
425Ć356Ć1688. Email is support@intermec.com.
If you email or fax a problem or question include the following information in
your message: your name, your company name and address, phone number and
email to respond to, and problem description or question (the more specific, the
better). If the equipment was purchased through a ValueĆAdded Reseller please
include that information.
Web Site
The Customer Support File Libraries, including Hot Tips and Product Awareness
Bulletins, are available via the Intermec Product Support page at this URL:
http://norbbs.norand.com/index.htm. New users can sign up for a new account
on this page.
PDF versions of Intermec manuals can be found at this URL:
http://corp.intermec.com/manuals/english.htm.
Bulletin Board Service
The Customer Support Bulletin Board (BBS), maintained by Intermec TechnoloĆ
gies Corporation, provides software and documentation:
" Phone number: 319Ć369Ć3515 (14.4 Kbps modem)
" Protocol: Full duplex, ANSI or ANSIĆBBS; 300 to 28,800 bps; v.32bis; 8
bits, no parity, 1 stop bit. For highĆspeed modems, disable XON/XOFF and
enable RTS/CTS.
This is the same location available via the web site. If your web access uses
highĆspeed phone lines, the web interface provides a faster response.
This section contains information to help you become familiar with your 6200 or
6300 Series HandĆHeld Computer (HHC), so you can start building applications.
R
If you are not familiar with the structure of the PEN*KEY
Programmer's Reference Guides, be sure to turn back to the introductory section
and read Structure of the Book and Locating Information.
The operating systems for the 6200 and 6300 Series computers consist of
standard MSĆDOS and Windows, as described in a later paragraph in this
section, entitled, Toolkit for the 6200 and 6300 Computers.
One of the major benefits of this openĆsystems approach is that you are able to
acquire development equipment and software from many different vendors,
including Intermec. This provides you with wide latitude in selecting the
equipment and software tools that are best suited to your particular
development needs. The challenge lies in finding pieces that work well together,
especially when you are working in the areas of communications and interfaces.
If you have DOS or Windows programming experience, you can quickly feel
comfortable with the PEN*KEY 6000 Series platform.
Introduction to the 6200 and 6300 Series Computers
From the viewpoint of an application, the 6200 and 6300 Series computers are
like other PCs, with some exceptions, as described below.
Operating System
The operating systems in these computers are very much like standard PCs.
However, keep in mind, the 6200 Computers are DOS only. The 6300 Computers
are DOS and Windows. See also Section 7, Reference, System Information.
How the Software is Different
For a description of operating systems, see the Development Environments
paragraph, page 1Ć15.
How the Hardware is Different
These computers are ruggedized, ergonomic, batteryĆpowered, touchĆbased
computers, with input from finger touch, stylus, keyboard, or scanner. They are
designed for a mobile environment.
The 6200 Series computer contains a 80386SL 25 MHz processor. The standard
processor for the 6300 Series computer is an 80386SX 25 MHz processor. It can
be ordered with an 80486SL processor, with the option of either 25 MHz (6325
Computer) or 50 MHz (6350 Computer). Some models, such as 6210 and 6350
Computers, use TI 486 processors.
Display
The normal display, for all models in the 6200 and 6300 Series, is landscape.
However, most applications use a rotated (portrait mode) screen. Features and
option:
" 6200 Computer Ċ Backlit display and touch screen options.
" 6300 Computer Ċ Comes equipped with the backlit display.
The number of pixels:
" 6200 Computer Ċ 160 (width) x 200 (length) pixels
" 6300 Computer Ċ 320 (width) x 480 (length) pixels
The 6360 Computer has a larger screen than the 6350 Computer.
1. Getting Started
User Input
All models have builtĆin keypads. The 6200 Series computers come with either a
numeric or alphanumeric keypad, and the 6300 Series computers have numeric
keypads. See Section 5 for details. Most user input is done using touch, pen, or
bar code scanning.
Power Management
Advanced Power Management (APM) is critical. It consists of a main battery
and a backup battery. This combination of APM software and batteries provides
a smart battery pack.
B
CAUTION:These computers have ONE primary power source. That is the MAIN Battery. The
only function for the Backup Battery is to maintain power to RAM while changing the
Main Battery. At all times, during operation and while being stored (overnight, long
periods of time, and even while in suspend), the unit must have its Main Battery
installed.
The Main Battery, even in suspend mode, maintains RAM, RTC, and CMOS
settings. When the HHC is off charge, the Main Battery also supplies any
needed charge to the Backup Battery.
The Backup Battery is for emergencies only. The Backup Battery should not be
relied upon, for extended periods, to support the system with no Main Battery.
A unit with functioning Main and Backup Batteries can be left off charge
overnight or for a long weekend, presuming it has fully charged and functioning
Main and Backup Batteries.
"
NOTE:A discharged Backup Battery takes 14 hours to recharge. A discharged Main Battery takes 2
System memory is provided via DRAM and flash memory modules.
" Flash memory provides storage for executable and system files.
" 6200 Series computers have 512 KB, except the 6210 with 1 MB
" 6300 Series computers have 1 MB
At the time of this publication, the following flash versions were available:
" 6200 and 6210, 0.5 MB flash, version 1.61
" 6210, 1 MB flash, version 1.00
" 6300 and 6360, 1 MB flash, version 1.60
" DRAM memory:
" 6200 Computer has 2 MB, and can be expanded to 4 MB.
" 6210 Computer can have 2, 4, 6, 8, or 12 MB of system RAM.
" 6300 Series computers have 4 MB, and can be expanded to 12 MB.
Input, Output, and Storage Devices
PC Card
The PC Card slots are used for nonvolatile SRAM or flash data storage, radio,
radio or land modems, or other devices. System resources, which are available to
the applications, may also be stored on the flash drive. PC Card supports one
ATA type III flash or two ATA type II cards.
"
NOTE:Throughout this publication, cards that conform to the PC Card interface standard (new stan-
dard) or the PCMCIA interface standard (old standard) are commonly referred to as, “PC
Card xxxxx” (where xxxxx consists of modem, drive, or other device type), or “PC Card” (referring to the standard or to a card). This is because PC Card is becoming the accepted industry term for a storage medium that conforms to one of these standards.
Infrared Printing
IrDA printing is also available.
Serial Data Communications
Data communications (TCOM) takes place through standard ports. Transfer of
data takes place on a regular basis; in most applications, it is one or more times
daily; and in wireless applications, it is on a realĆtime basis. Intermec supplies
methods and utilities for management of communications.
System Environments
The 6200 and 6300 System Environments should be kept in mind, while writing
applications for them. Each of the HHCs may have different processors with
different speeds. They each use a flash memory file system, and have a builtĆin
VGA viewing screen. Application programmers need to remember the
constraints listed previously; and the flash file system, which is usually kept
writeĆprotected and to which cannot be written.
The 6200 Series computers have no external keyboard capability. Each of the
computers contains a builtĆin keypad with a limited number of keys. Most of the
scan codes returned are the same as standard PCs.
Hardware Ports
For information relating to the communication ports, addresses, IRQs, and
devices supported for the hardware ports, see Section 7.
The file complement in the toolkit for the 6200 or 6300 Series computer differs
from one release to the next. For an accurate list of toolkit files, see the
RELNOTES.TXT file, included in the toolkit distribution package.
The following available toolkits contain DOS and Windows resources for
configuration, power management, communications, and peripherals:
Part NumberDescription
P/N 215Ć452Ć0016200/6300 DOS (only) toolkit
P/N 215Ć455Ć0016300 DOS and Windows toolkit
The files and documentation in the toolkit are available to those who hold
licenses for the operating systems for the 6200 or 6300 Series computers.
As shipped from the factory, flash memory in the 6200 and 6300 Computers are
preloaded with files for booting and telecommunicating. At a minimum, ROM
DOS 5 is preloaded in flash memory. To create the environment required by your
application software, select any other system files needed from the toolkit and
copy them to the HHC.
Some files mentioned in this publication may not exist in flash memory. Most of
these files are in the toolkit. If not, try one of the BBS Product Forums. The
toolkit does not include application software. You may obtain such software from
Intermec, from thirdĆparty suppliers, or design your own.
The files necessary to run Windows and the application software are often loaded
onto the RAM drive. The instructions included in the toolkit assume that you
will install all files on the RAM drive. Other methods of arranging files are
possible. And in some cases, this requires substitution of the appropriate drive
letter in place of the drive letter of the RAM drive.
1. Getting Started
File Integrity Verification Utility: CRC32.EXE
The toolkit contains a utility, CRC32.EXE, for verifying the integrity of the files
provided on the toolkit disks. CRC32.EXE calculates a 32Ćbit CRC value for a
file. This value may then be compared with the factory CRC value for the file.
Usage is as follows:
CRC32 [filename | pathname] [/s]
where:
filename is the name of the file on which the CRC is calculated. One or more
files or directories can be processed at one time.
pathname is the location of the filename to be processed. Wildcard processing
is not allowed, either in the pathname specified after the @" symbol, nor any of
the pathnames within the argument file. An example of a valid argument file is
the same as those used by the IPLFMT program.
/s indicates that all subdirectories should be searched for matching file names.
@ is (optionally) included in front of a filename to indicate that it is an argument
file, containing names of files to be checked by CRC32.EXE.
There is a list of the factory CRC values for the released files included in the
As you prepare to develop applications for your HHC (or port existing
applications), keep the following basic suggestions in mind:
1.The operating system for your HHC is most likely ROM DOS 5 with
Windows 3.1. If you are experienced with these operating systems, you
should easily start developing or porting applications.
2.Understanding how the system configuration files are used in the HHC
environment provides easier application development. These files include
DOS configuration files: CONFIG.SYS and AUTOEXEC.BAT; and Windows
configuration files: SYSTEM.INI and WIN.INI.
3.Become familiar with the tools and techniques for power management.
Monitoring the state of battery power can be an especially critical function.
4.When developing for pen input, remember that interpreting handwriting is
still a developing field; accuracy has not yet reached 100 percent.
Furthermore, interpreting and storing the results puts an additional load
on the processor. Excessive use of handwriting recognition software can
slow down an otherwise speedy application. Use buttons, item lists, and
pullĆdown menus for common tasks, instead.
5.When designing a pencentric interface, make full use of the area provided
by the VGA screen. Make buttons, pullĆdown menus, text entry fields, etc.
large enough for easy, accurate use in a mobile or highĆpressure
environment.
6.Make your applications driveĆindependent. Do not hardĆcode drive
designations. Utilize the many available PC Card storage solutions,
remembering that the devices can be moved about as required by different
configurations. The PC Card slots can accept nonvolatile SRAM, flash,
hard disk devices, RF devices, radio or land modems, and other devices.
7.Keep in mind the general system design of your penĆoriented HHC: flash
memory file system, a CGA screen and keyboard that are builtĆin, etc.
8.There are some files listed in this publication that could be useful for your
configuration or application. If you need any of these files, first look in the
toolkit for them. If not found there, try one of the Product Forums on our
BBS.
9.Finally, for development purposes regarding the external devices, note
whether these items are available (or practical) for the application to use in
the field.
Note that the following paragraphs apply to the standard configuration for the
6200 or 6300 Series computer; but keep in mind that both of these computers
can be configured to meet your specific needs. For example, additional RAM can
be obtained to bring the total RAM up to the maximum capability.
The following constitutes the configuration items needed for a minimum
development, except for items 4 and 5, which are only useful if you do not have a
docking station.
1.A 6200 or 6300 Series computer, with the minimum number of megabytes
of system RAM (as specified in the Introduction to the 6200 and 6300 SeriesComputers paragraph).
2.DOS or Windows toolkit.
3.Main and backup batteries; at least one of each.
4.One 2 MB or 4 MB SRAM card. You need at least one 2 MB SRAM card,
which is useful when you need to update the flash software. For larger
storage, SanDisk flash memory cards are available.
5.PC Card reader/writer (for example, Databook card readerĆwriter or
notebook computer that can read/write PC Cards).
6.NULL modem cable for connecting the PEN*KEY dock to a PC.
7.Cable for connecting the PEN*KEY dock to a serial printer, or to a 4800
Series or 6800 Series Printer (if printing is required).
8.Single dock with wall charger.
1. Getting Started
Sample Configuration Files
The configuration files, CONFIG.SYS and AUTOEXEC.BAT (for 6300 Computer)
and the CONFIG.SYS and ROMINIT.BAT (for the 6200 Computer), are required
for an appropriate environment for the 6200 and 6300 Series computers.
For examples of configuration files for these computers, see Appendix A, SampleConfiguration Files.
"
NOTE:The name SunDisk has been changed to SanDisk.
Please read through all the following instructions before performing them.
Computer Model Numbers
When a particular model is not specified in the text, the information applies to
all of the computers in the 6200 and 6300 Series. Also, keep in mind that when
6200 Computer" is specified, this refers to all computers in the 6200 Series.
And when 6300 Computer" is specified, this refers to all computers in the 6300
Series. Finally, when HHC" is used, it refers to any computer in the 6200 or
6300 Series.
Information that applies to a particular model is designated by the number of
that model, such as 6210 Computer" or 6360 Computer."
Executable Archive File
The files associated with this procedure (usually supplied in an archive file
provided by Intermec) update from a previous version of the flash memory on the
HHC.
For new flash versions, a selfĆextracting executable archive file, included in the
toolkit, contains the entire flash load for your current version of flash. Run the
executable archive file from a temporary directory on a desktop or laptop (host)
PC. After executing the archive, a text file is produced (among others) that
explains how to reprogram the flash, which is essentially the same information
presented below.
Updating Older Configurations
Intermec recommends you upgrade to the latest flash version. Check with your
Intermec sales representative to find out what flash version is currently being
shipped. You can order flash memory updates on disk or SRAM cards, or
download the update files from our Bulletin Board. For details of the Bulletin
Board, see the Support Available paragraph, in the introductory section of this
publication. Contact an Intermec sales representative to obtain the preferred
media.
Determining Which Archive File to Use
There are two procedures currently available for updating the contents of the
flash memory on a 6200 or 6300 Series computer: the IFL Card Creation
method and the Direct Copy method. The Direct Copy method has two options.
It can be performed either from a host PC or from a network.
IFL Card Creation
Use this method if your flash is corrupt. Use the selfĆextracting archive file,
62B0100B.EXE, which contains a special utility to copy a binary file (supplied by
Intermec) to an SRAM card mounted in a PC Card drive connected to a
development PC (referred to hereafter as, host PC). This step creates an InitialFlash Load (IFL) card. The IFL card is then plugged into your HHC and the
image is transferred to the flash memory.
The selfĆextracting archive file contains the following files:
" 62BIxxxx.BIN, the 6200/6300 Initial Flash Load (IFL) card image.
" PROG.BAT, an automatic reflashing batch file.
" DD.EXE, the application used to do the copying.
" README.TXT, the IFL Card Update procedure (duplicated below).
" RELNOTES.TXT, notes on the current version of flash.
The batch file, PROG.BAT, is used with the .BIN and DD.EXE to create an IFL
card, which in turn installs the flash image on your HHC.
Direct Copy from Host PC
Use this method if your HHC is currently working properly, with no corruption of
the current contents of flash memory, use the selfĆextracting archive files,
62B0100I, which transfer the files directly from the host PC.
Establish an INTERLNK session to transfer files from a host PC to a RAM drive
on the HHC. Reset your HHC. The selfĆextracting archive file contains a
number of useful files, including README.TXT, that explain the procedure for
copying files (duplicated below) and RELNOTES.TXT, notes on the current
version of flash.
1. Getting Started
Direct Copy from a Network
Use this method if your HHC is currently working properly, with no corruption of
the current contents of flash memory, you can the selfĆextracting archive file,
62B0100N, which transfers the files directly from a network.
Use INTERSVR, as a communication option in the Norand Utilities to transfer
files from the network to a RAM drive on the HHC. Reset your HHC. The
selfĆextracting archive file contains a number of useful files, including
README.TXT, that explain the procedure for downloading files (duplicated
below) and RELNOTES.TXT, notes on the current version of flash.
"
NOTE:Always keep the HHC on charge while performing any setup, reprogramming, or reflashing,
to preclude the possibility of corrupting the flash due to a battery failure.
IFL Card Creation
Prerequisites for IFL Card Creation
The following items are required for creating an IFL card for the 6200 Computer:
" A formatted 1 MB (or larger) SRAM card with battery installed.
" A PCĆcompatible computer that can read/write PC Cards.
" A PC directory that contains the new flash file, the utility PROG.BAT, and
the utility DD.EXE (extracted from the selfĆextracting archive file).
For the 6200 Computer, the new flash file would be 62BIxxxx.BIN . For
the 6300 Computer, the new flash file would be PKBIxxxx.BIN. Either file
is usually provided in a selfĆextracting archive file set.
" A paper clip or similar long thin probe for activating the reset switch.
B
CAUTION:When resetting the HHC, use a solid probe, such as a ball point pen. DO NOT use the
point of a pencil, since it can break off and jam the reset condition.
NOTE:The PROG.BAT file performs a write operation followed by a verify operation. It is possible
SECTION 1Getting Started
Creating a Master Mode Boot (IFL) Card
To create an IFL card, use the PROG.BAT utility to copy the IFL card image to
the SRAM card by entering the following at the DOS command prompt:
for the 6200 Computer, enter: PROG 62BIxxxx.BIN d:
for the 6300 Computer, enter: PROG PKBIxxxx.BIN d:
where:
d" is the drive letter of the PC Card drive.
xxxx" is the version of flash.
This command copies the contents of the .BIN file to the SRAM card in the
format needed to perform a master mode boot. After successfully creating the
IFL card, writeĆprotect it.
for the write operation to succeed and the verify operation to fail. This is particularly true
when using a DataBook TMD-500-03.
If you are using such a card drive, download updated drivers from the DataBook
BBS to correct this problem. For instructions on updating your software, see the
Updating the Databook Software on Your PC paragraph on page 1Ć11.
"
NOTE:Do not use the DOS COPY or XCOPY command to create the IFL card. Master mode boot-
ing requires certain files at specific locations on the SRAM card. DD.EXE is designed to
place every byte in a specific location on the media; these DOS commands are not.
Updating 6210 Flash (preferred approach)
To boot the IFL card, place it in drive B (the drive furthest from the display).
Press and release the reset button. Repeatedly press and release the [
until you hear a key beep and then press and hold the [
F4] key until the ROM
F4] key
DOS 5 boot menu is displayed. Press the [2] key in order to boot from drive B.
Follow the prompts on the display to update the 6210 Flash. To verify that you
have updated the flash, look for the text, PEN*KEY 6210 FLASH," and the
current version number on the display when starting from drive D.
For information about changes in this version of flash, see the release notes in
the RELNOTES.TXT file in the toolkit.
Updating 6210 Flash (Master Mode Boot)
It is possible to boot an IFL card even if the flash in your 6210 Computer has
never been programmed or has been corrupted. Use this procedure if the
preferred approach above does not work.
To perform a master mode boot on a 6210 Computer, insert the IFL card in drive
B (the drive furthest from the display). Press and hold the [
holding the [
ON] key, press and release the reset button. When you are
successful, the screen displays Master Mode Boot," then release the [
ON] key. While
ON] key (if
you do not see the words Master Mode Boot," try it again).
Follow the prompts on the display to update the 6210 Flash. To verify that you
have updated the flash, look for the text, PEN*KEY 6210 FLASH," and the
current version number on the display when starting from drive D.
For information about changes in this version of flash, see the release notes in
the RELNOTES.TXT file in the toolkit.
If the verify step performed by PROG.BAT (using DD.EXE) indicates that the
programmed card is not identical to the source file, then you probably need to
update the PC Card drivers on your PC. To obtain updated drivers for the
DataBook TMDĆ500Ć03 you can follow the procedures documented here.
1.Prepare your modem to use:
" 9600 B or 19.2 KB (other baud rates may also work)
" 8 data bits
" no parity
" 1 stop bit
2.Call 508Ć777Ć9819 to log into the DataBook BBS. You will supply your
name, password, and other such details the first time you log in.
3.From the file area, download the file:
File nameSizeDateDescription
T650_315.ZIP1,036,41603/31/95CardTalk V3.15 for TMD650/550
1. Getting Started
4.Create a new directory and use PKZIP to unarchive this file into that new
directory. Then run the INSTALL.EXE program to update your drivers.
5.Reboot with the new drivers loaded.
Direct Copy Method
INTERLNK Procedure for 6200/6300 Computers
General Precautions
B
CAUTION:Do not attempt to perform this update procedure on F-model or preproduction model
6300 Computers or on 6300 Computers with 512K flash memory (P/N 225-505-xxx/001
or /002. Further, older 6300 Computers (with a red [NO] key) cannot be updated to the
current flash version at the time of this writing. Attempts to do so renders these
computers unusable. Contact your Intermec sales representative.
Do not attempt to use the files associated with the INTERLNK procedure to
perform a master mode boot. To use the INTERLNK procedure, you must have a
working 6200 Computer. If flash memory is corrupted (or has not been
programmed), you must perform a master mode boot using an IFL card.
To minimize the possibility of flash memory's being corrupted by a power failure,
connect the 6200 Computer to an external power supply (such as a docking
station) during the update procedure.
INTERSVR Installation
You may use the following instructions only if you currently have a version of
flash that includes INTERSVR as a possible communication option in the
Norand Utilities application. If you do not have INTERSVR support, you must
update flash using an Initial Flash Load (IFL) card. These instructions assume
that you have placed all of the files needed by this procedure in a uniquely
named directory (C:\PK6200\FLASH for the 6200 Computer) and
(C:\PK6300\FLASH for the 6300 Computer). If the files are in a directory of a
different name, adjust these instructions accordingly.
The host PC must be running INTERLNK, which is part of MSĆDOS 6.x. Load
INTERLNK as a device driver in the CONFIG.SYS file, using this statement:
DEVICE=C:\DOS\INTERLNK.EXE /DRIVES:4
The above statement should be inserted at the end of the CONFIG.SYS file
(after any other statement that creates a drive letter) and assumes that MSĆDOS
6.x is in the C:\DOS directory on the host PC. The
/DRIVES:4" parameter
allows the mapping of four drives between the host PC and the HHC.
Begin at the NORAND UTILITIES LOAD PROGRAMS/DATA menu, on your
HHC. You may need to force the HHC to start from the ROM Drive (D:) by
activating the reset switch (see the Setup for PC Development paragraph, in this
section, for position of reset switch).
Then press and hold the [F4] key (6200 Computer) or the [Next] key (6300
Computer) while the startup messages are displayed. This action brings up a
menu that allows selection of the startĆup drive. Select [
4] to start from ROM
Drive (D:).
1.Press [Enter] at the main menu to advance to the LOAD
PROGRAMS/DATA menu. Select Option 9 ADVANCED UTILITIES."
2.Select Option 3 FORMAT RAM DRIVE."
3.Create a RAM drive on the HHC:
" For the 6200 Computer:
The RAM drive is 960 KB. If you already have a RAM drive that is
smaller, you may want to continue, to reformat with a larger size.
" For the 6300 Computer, the RAM drive is 2 MB.
4.After completion, return to the
option
select option
2, COMM. At the COMM menu, select option 6, INTERSVR. Now
1, BEGIN COMM SESSION.
LOAD PROGRAMS/DATA menu and select
5.Establish the INTERSVR connection to the host PC, using:
" For the 6200 Computer, a 6210 Single Dock and cable or a
6210ĆtoĆserialĆport cable.
" For the 6300 Computer, a PEN*KEY 6000 Series
computerĆtoĆserialĆport cable.
6.Copy all the files from the uniquely named directory on the host PC to the
RAM drive (C:) on the HHC. This could be one of the following (for
example, C:\PK6210\FLASH, C:\PK6200\FLASH, C:\PENKEY\FLASH,
etc.), whatever name you have chosen:
" For the 6200 Computer:C:\PK6200\FLASH
" For the 6300 Computer:C:\PENKEY\FLASH
To identify the host PC drive that corresponds to the RAM drive on the
HHC, type INTERLNK" at the DOS prompt.
C:\>INTERLNK
A chart, like the following example, is displayed (files are copied to drive H):
7.Once the files are transferred, press [No] to exit INTERSVR on the HHC.
The HHC automatically resets at this time.
8.When the unit resets, it begins the flash update process. You are not
prompted further unless an error occurs or a file is missing.
9.After reflashing, the HHC resets itself and boots to the default drive. To
confirm the flash version, observe the screen while booting from drive D. If
necessary, see the above instructions or those instructions provided in the
Boot Drive Selection paragraph of the Communications and Device Support
section, for overriding the default boot drive.
Booting to the PC Card
Use a PC Card in either a standard boot cycle or a Master Mode Boot cycle. The
Master Mode Boot cycle provides a reboot technique for an HHC that does not
have functioning software in flash memory (absent or corrupted contents).
If there is a problem with the IFL image, see the To Update the DatabookSoftware on Your PC paragraph, on page 1Ć11, for possible remedies.
Standard Boot Cycle
1.Insert the IFL card into drive B (the slot farther from the display). Activate
the reset switch.
2.Press and release the [F4] key (6200 Computer) or the [Next] key (6300
Computer), until you hear a key beep, then press and hold the same key
until the ROM DOS 5 boot menu is displayed.
3.Press the [2] key to boot from drive B:. Follow the prompts on the display
to update the flash memory. To verify that the update has occurred, look
for the following message on the top line of the display when you start from
ROM drive D.
" For the 6200 Computer:
PEN*KEY 6200 FLASH 62BInnnn (and current version #)
" For the 6300 Computer:
PEN*KEY 6300 FLASH PKBInnnn (and current version #)
1. Getting Started
Master Mode Boot Cycle
You can boot from an IFL card even if the flash memory in the HHC has never
been programmed or if it has been programmed but has become corrupted. This
method is called a Master Mode Boot.
1.Insert the IFL card into drive B (the slot farther from the display).
" For the 6200 Computer:
Press and release the gold key; then, press and hold the [YES] key.
While pressing the [YES] key, activate the reset switch.
" For the 6300 Computer:
Press and release the Suspend/Resume key, and activate the reset
switch. When you see the message Master Mode Boot" on the
display, release the key. If the message fails to appear, redo this step.
2.Follow the prompts on the display to update the flash memory.
3.To verify that the update has occurred, look for the following message on
the top line of the display when you start from ROM drive D.
" For the 6200 Computer:
PEN*KEY 6200 FLASH 62BInnnn(and current version #)
" For the 6300 Computer:
PEN*KEY 6300 FLASH PKBInnnn (and current version #)
Should you find it necessary to create a custom flash for a particular application,
a utility is available to help you. The following is a general procedure for
creating that custom flash:
1.For the 6200 Computer, FLASH.BIN is a 525 KB file.
Program a 1 MB or larger SRAM card with the FLASH.BIN file that is reĆ
leased in the INTERLNK update version or that is on an IFL card update
version of the flash. This becomes the actual contents of the flash.
For the 6300 Computer, FLASH.BIN is a 1.1 MB file.
2.Add, delete, or modify the files on the SRAM card to achieve the desired
configuration. That is, modify the CONFIG.SYS or AUTOEXEC.BAT files
and add other files as necessary.
3.Read the files on the SRAM card into a 1 MB (6200 Computer) or 2 MB
(6300 Computer) image file for the flash.
4.For a Master Mode Boot update configuration, program the released Master
Mode Boot image file 62BInnnn.BIN or PKBInnnn.BIN or to a 2 MB or
larger SRAM card. Update the FLASH.BIN file that is now written to the
2 MB SRAM card with the custom image file produced in step 3. This is
now a Master Mode Boot (Initial Flash Load) card.
5.Finally, read the image of this card to another 2 MB image file. This is the
new file that can program 2 MB SRAM cards as custom Initial Flash Load
cards.
Some batch files and the two image files are available as aids for customizing
flash. The main batch file is named CUSTOM.BAT.
This requires a PC Card reader/writer and a 2 MB or larger SRAM card. It
creates only the Master Mode Boot format IFL card.
Put the exact file structure desired on the flash drive of the HHC in a
subdirectory called CUSTOM, within CUSTOM.BAT. Place the custom
AUTOEXEC.BAT and CONFIG.SYS files in this subdirectory. Execute the batch
file CUSTOM.BAT once everything is in place.
A file, PKBICSTM.BIN, is the binary image of the IFL card.
Key Files Used in Flash Upgrade
The following files are necessary for reflashing a 6200 or 6300 Series computer:
DD.EXECopies data to flash.
6xBIxxxx.BINFlash image that goes into flash.
EEPFIX.EXEChecks and, if necessary, sets EEPROM as required by the new flash
DOS is supported as a development environment, as well as numerous DOS
applications, in both the 6200 and 6300 Series computers:
Microsoft DOS 5.0
" PenPal (DOS), by PenPal Associates, Inc.
" PenRight! Pro (DOS), by PenRight Corporation
Windows is supported as a development environment for the Windows version of
the 6300 Computer, as well as numerous DOS and Windows applications:
Microsoft Windows 3.1
" Microsoft Pen Extensions, for Windows
" Microsoft Visual Basic, for Windows
" Borland Delphi, for Windows
" Microsoft Visual C++ or Borland C++, for Windows
Other Environments:
Considerations for other environments are also described in this section.
1. Getting Started
DOS
The 6200 Computer can run mouseĆaware DOS programs, using only DOS. And
the 6300 Computer can run mouseĆaware programs using DOS and Windows.
The toolkit provides DOS pen drivers for the 6200 and 6300 Series computers
(See Sections 2 and 3 for the names of these drivers). The pen drivers, which
emulate a mouse driver, can be used with most mouseĆaware applications. This
means the program would run in landscape mode on the 6300 Computer. If you
use Borland graphics, there is a BGI driver, PENKEY.BGI, in the toolkit to
enable portrait orientation.
PenDOS Handwriter Recognition System
CIC's PenDOS Handwriter Recognition System is a DOS application. It is not
included in the toolkit. A license for CIC's PenDOS (specific to the PEN*KEY
6000 Series computers) can be obtained through Intermec. To order PenDOS,
contact an Intermec sales representative.
PenPal (DOS)
Use PenPal to quickly draw screens and develop small, simple applications and
prototypes. PenPal provides an easyĆtoĆuse interface for both experienced and
relatively inexperienced programmers. It uses a simple proprietary language for
defining the functionality of the application. PenPal was developed specifically
for mobile systems. Because of this, it is of a manageable size for any of the
PEN*KEY 6000 Series computers. PenPal handles dBase, ASCII, and text files.
"
NOTE:PenPal Associates no longer provides enhancement support for PenPal in the environment in
which our PEN*KEY 6000 Series computers operate, except for bug fixes. This means that if
you want to continue to use PenPal with the display configuration with which your HHC was
shipped, it continues to serve you well; but, if you want to use PenPal with a different display
configuration, PenPal Associates does not provide you with a version that necessarily works
with that configuration.
PenPal runs with CIC's PenDOS Handwriter Recognition System, or with no
recognizer at all. With no recognizer, signature capture is still available and
character recognition is disabled.
See the Setups for Third Party Applications paragraph, in Appendix A, Sample
Configuration Files, for an example of setting up PenPal (for DOS).
PenPal runtime licenses (specific to the PEN*KEY 6000 Series computers) can
be obtained through Intermec. To order PenPal runtime licenses, contact an
Intermec sales representative. PenPal development packages can be ordered
from the manufacturer, PenPal Associates.
For an example setup for the Handwriting Recognition System, see the
Handwriting Recognition System Setup paragraph in Appendix A, Sample
Configuration Files.
PenRight! Pro
PenRight! is a development environment that can be used across both DOS and
Windows platforms. It includes screenĆdrawing and C code capability. These
tools make it possible for an experienced C programmer to add extra
functionality to an application. PenRight! Pro was also developed specifically for
mobile systems, and creates programs of a manageable size for any of the
PEN*KEY 6000 Series computers. PenRight!, which is slightly harder to use
than PenPal, has dBase and communications support, as well as ASCII text files.
PenRight Pro! development kits can be obtained through the manufacturer,
PenRight! Corporation. The resource file, 63PENRT.RSC, is included in the
toolkit (for DOS) on the DOSUTIL disk.
See the Setups for Third Party Applications paragraph in Appendix A, SampleConfiguration Files, for an example of setting up PenRight! (DOS).
Windows
The 6200 and 6300 Series computers can run any mouseĆaware Windows
application. Note that the Windows configuration provided by Intermec is not a
fullĆfeatured Windows package. This was done to save space in flash memory.
Add the needed files if they were not included.
Borland's C compiler includes a utility called TDUMP. You can run TDUMP on
an executable file to display the files or libraries called by the executable.
Handwriting Recognition
If handwriting recognition is required, there are two options available. One
option is provided by a product from Communication Intelligence Corp. (CIC);
the other option is provided by a product from Synaptics. See the CIC
Handwriter Recognition System for Windows paragraph and the Synaptics
Handwriter Recognition HRĆ1200 paragraph, below, for product descriptions.
If signature capture (bit maps) is required, but handwriting recognition is not
required, this can be done with regular Windows. Trap the mouseĆmove and
mouseĆpressed events and manually draw the ink. The ink then can be saved as
bit maps and compressed, if necessary. Microsoft Visual Basic Professional
Edition has an example of catching ink" in this way. The extra files for enabling
the Pen Extensions are provided in the toolkit.
Standard and Enhanced modes for Windows are discussed the in MemoryOverview topic, in Appendix B, Common PEN*KEY 6000 Series Information.
Contact your Intermec sales representative to order software and manuals. Any
of the following handwriter recognition packages can be ordered:
" Handwriting Recognition System for Windows by Communication
This system is a fullĆfeatured recognizer which includes a trainer" that provides
a means to train the recognizer to better recognize your handwriting.
"
NOTE:This product only works in the ENHANCED mode.
This software also requires numerous files to be installed, which may take up
720 KB of disk space. Once loaded, it recognizes handwriting in any text field.
In addition, it recognizes standard Pen Extensions for Windows 1.0 gestures.
Synaptics Handwriter Recognition HR-1200
This system requires only one file to be installed, which is about 200 KB in size.
It can run in standard or enhanced mode Windows.
This recognizer is limited, in that it only recognizes handwriting in boxed or
hashed edits, which are Pen Windows controls.
Boxed edit (or bEdit) looks like the following, and each letter goes in a box:
Hashed edit (or hEdit) looks like the following, and each letter goes in a slot:
A Pen Extensions for Windows program, PENPAL.EXE, (or Pen Palette) makes
use of the hashed edit, and can enable applications not written for handwriting
recognition. This program allows a user to write in the boxes, then send the
characters to the application with the current focus. This file and the Pen
Extensions for Windows files can be found in the toolkit.
Pen Extensions for Windows
Pen Extensions for Windows consists of standard Windows with extra files and
some changes to SYSTEM.INI and a new file called PENWIN.INI. Pen
Extensions for Windows provides character recognition and an easier interface
for capturing ink. A handwriting capture engine must be purchased separately,
either through Intermec or other sources.
1. Getting Started
PenRight! Pro (Windows)
PenRight! is a development environment used across both DOS and Windows
platforms. See the previous description under DOS.
Pen Extensions for Windows is standard Microsoft Windows with extra files,
some changes to SYSTEM.INI, and a new file (PENWIN.INI). Pen Extensions
for Windows provides character recognition and an easier interface for capturing
ink. Two handwritingĆrecognition engines are supported for Windows on our
handĆheld computers: Synaptics and CIC. These products are not in the toolkit.
If handwriting recognition is required, it can be ordered from Intermec. To order,
contact an Intermec sales representative.
If signature capture is required, but handwriting recognition is not required, this
can be done with regular Windows. Trap the mouseĆmove and mouseĆpressed
events and manually draw the ink. The ink then can be saved as bit maps and
compressed, if necessary. Visual Basic 3.0 Professional Edition has an example
of catching ink" in this way. The extra files for enabling the Pen Extensions are
provided in the toolkit.
See the Memory Overview paragraph, in Appendix B, Common PEN*KEY 6000Series Information, for a description of Standard and Enhanced modes for
Windows.
Microsoft Visual Basic for Windows
Microsoft Visual Basic (VB), for Windows, includes screenĆdrawing plus an easy
method for inserting code to control the application. It is very easy to program
for Windows with this tool. A few warnings, however, are in order. If frequently
used forms are not preloaded, the screen drawing may be slow. Also, the
dataĆaware controls are very nice, but supporting a database with these controls
consumes a lot of memory. VB can handle a large number of databases,
including dBase, Access, Paradox, and Foxpro. It can also handle ASCII and
text files.
"
NOTE:Be aware! The performance of the processor in the HHC, used with Visual Basic may be an
issue, especially with the latest Visual Basic offerings.
In addition, keep in mind that Visual Basic writes directly to the screen, instead of through the
BIOS. If you install an application that places annunciators on the screen, Visual Basic may
write over them.
Borland Delphi for Windows
Delphi is a Borland product, that allows quick application development with
Pascal support.
Microsoft Visual C++ or Borland C++ for Windows
These are tools for experienced C Windows programmers. The foundation class
libraries or the object windows library can be used; just make sure to keep an
eye out for space limitations. Windows programs in general grow to a large size
quickly and require a lot of extra DLLs or VBXs.
Other Environments
Obviously, any development environment, that runs on the aforementioned
operating systems, may potentially be used to develop software for the HHC.
However, not all of the development environments necessarily work as well, nor
are they recommended. This is mainly because of size and speed limitations of
the HHC.
Some of the standard Windows dialog boxes are too large. For example, the file
open dialog does not fit. Running in landscape mode requires a different display
driver, VGAP.DRV. This is the standard display driver for Windows and is not
customized to the smaller screen of the 6200 or 6300 Series computer. You need
to make changes in the SYSTEM.INI file for correctly aligning the pen. Look in
the [Pen Driver] section of SYSTEM.INI. See the 6300 Forum on the BBS for
more details and a sample configuration.
Keyboard
Even though the onscreen keyboard from Microsoft Windows for Pen Computing
(SKB.EXE) is available in the toolkit, it is too wide for the portraitĆoriented
screen on both of the 6200 and 6300 Series computers. Since it is impossible to
use both landscape and portrait modes within the same application in Windows,
it is not advisable to run SKB.EXE in landscape mode. If you need an onscreen
keyboard that runs in portrait mode, you may want to write your own keyboard
application or consider ordering another keyboard application.
The Configurable Popup Keyboard from Intermec is suitable for portrait screens.
The User's Guide and software come in one package using the following part
number: P/N 215Ć601Ć001.
1. Getting Started
System Guidelines
There are other useable development environments. Here are some guidelines
that can help you determine whether a particular environment is viable for a
6200 or 6300 Application.
1.How much space is required?
Many environments assume that the target machine is a desktop or laptop
with virtually unlimited hard drive space. This is certainly not the case
with a PEN*KEY 6000 Series computer; memory is still at a premium. For
example, Power Builder is a very popular environment for development.
However, just to get an application started, Power Builder uses more than
3 MB of DLLs in addition to Windows just to run a program to display
Hello World" on the screen. Power Builder applications tend to be large
and slow; at this time, it is not recommended.
2.(Windows) How are the dialogs being stored?
This is a question you must ask if you want to use a tool that provides one
environment for both DOS and Windows applications. If the dialog
information is stored as separate files, you may find it very hard to get
adequate response time for drawing the screens. Also, some of these tools
insulate you from the Windows APIs; consequently, it becomes very difficult
to use any of the APIs that are provided for you.
3.The 6200 and 6300 Series computer uses a processor that is common to
many recent PCs, as described in the Introduction to the 6200 and 6300Series Computers paragraph. But, be sure to test the performance of your
application on a comparable computer.
"
NOTE:A PC development computer (60 to 100 MHz 486) may hide some potential speed issues
that would become evident on a PEN*KEY 6000 Series computer with a slower processor.
4.(Windows) Standard Mode Windows is smaller and runs faster than
Enhanced Mode Windows. However, you should use Enhanced Mode only if
a particular program or environment requires it. Some applications and
communications protocols require the Enhanced Mode.
NOTE:Always keep the HHC on charge while performing any setup.
1. Getting Started
SECTION 1Getting Started
1.Connect power to the single dock.
2.Connect a NULL modem cable between the dock and the serial port on the
desktop or portable PC. For a 6300 Computer, connect the cable to the
COM1 port on the dock.
3.For a 6300 Computer, you can connect an auxiliary keyboard to the dock.
The auxiliary keyboard is not required. Also note that the onĆboard
keyboard is not functional when an auxiliary keyboard is attached.
However, the backlight and contrast keys continue to work normally.
4.If the PC Card slots contain cards, remove the cards (see the User's Guide
for your HHC, to locate the PC Card slots).
5.Install backup and main batteries. The backup battery for the 6300
Computer is installed at the factory. A switch behind the HHC's memory
card door turns the battery on and off (see Figure 1Ć1 below, for location of
switch and batteries).
1
2
ON
Ö
OFF
1. Main battery compartment
2. Backup battery switch
Figure 1Ć1
Location of Battery Compartment and Switch
6.Insert the HHC into the dock.
7.Verify the HHC has booted. If a box is displayed at the top of the screen,
with NORAND UTILITIES", then skip to step 10. Otherwise, proceed
with step 8.
8.If the Norand Utilities screen is not displayed, press the reset switch on the
HHC. The reset switch is located behind the memory card door at the top
of the HHC. On a 6300 Computer, the access hole for the switch is located
behind the card slots and close to the battery door. On a 6200 Computer,
the hole is located about 1.5 inches from the top of the HHC (see the User
Manual for your HHC, for further assistance in locating the reset switch).
"
NOTE:The reset button on the 6210 HHC is located at the top of the unit next to the 15-pin connec-
tor. It is recessed in a small hole and can be accessed using a paper clip.
9.As the HHC boots and you hear a clicking sound:
" On a 6300 Computer, with no external keyboard attached, press the
[NEXT] key, or press the [Alt] key on the external keyboard.
10.The HHC should display the Start From" menu, similar to the following:
ROM DOS 5
Start from:
1) Memory card 1=A:
2) Memory card 2=B:
3) RamDrive=C:
4) RomDrive=D:
Press the [4] key to choose option 4. The HHC should boot to the Norand
Utilities screen.
11. Press [
YES] at the Norand Utilities banner screen to open the main menu.
The Norand Utilities program supports a variety of communication options
for loading application programs. Each option is explained later.
Press [2] to select a communication option from a drop down menu, then
press [1] from the main menu to initiate a communication session. For getĆ
ting started, the most common option is INTERSVR.
For a complete description of navigating the screens in the Norand Utilities
program, see the User's Guide for your particular HHC.
12.Prepare the files required for initial program load. For a 6300 Computer,
the standard configuration files are CONFIG.SYS and AUTOEXEC.BAT.
For a 6200 Computer, the standard configuration files are CONFIG.SYS
and ROMINIT.BAT (see Appendix A, Sample Configuration Files, for a
listing of these files).
At a minimum, the CONFIG.SYS file needs the following line:
device=d:\norapm.exe
The AUTOEXEC.BAT file needs only to execute the application. Actually,
the content of these files depends upon the type of application being loaded.
Examples for DOS and Windows can be found on the toolkit disks.
13.Using one of the communication options described later in this section,
transfer the application program files to the HHC. Following a successful
communication session, the Norand Utilities program executes the
application program files.
CardSoft files (by SystemSoft), used in early releases, can continue to be used.
This product has been configured, integrated, and tested in the PEN*KEY 6000
Series product line. In flash, it is a minimal configuration of the full CardSoft
product offering.
See the RELNOTES.TXT file in the toolkit for a listing of the full CardSoft 3.1
Card and Socket Services support.
Table 1Ć1
SystemSoft Files
FileDescription
ATADRV.EXE /s:2 A block device driver that supports ATA type II flash or ATA type III hard disk PC
Cards. ATA drives are allocated the drive letters of E: and F: when this driver loads.
The /s:2 option installs this ATA driver as a slave to the memory technology driver
(MTDDRV.EXE) that follows, thus preventing the creation of new drive letters as
additional memory technology drivers are installed.
ATAINIT.EXEThis is a lowĆlevel format for SanDisk cards. It places a hard disk partition table onto
a blank ATA drive. This utility initializes the ATA drive the same as FDISK does with
a standard hard drive. Note: use with CardSoft drivers only.
CARDID.EXEClient device driver for the configuration of the PC Card slot/adapter and card on card
insertion detection. Also frees allocated system resources upon detection of card
removal.
CARDINFO.EXEHelps diagnose problems with cards by verifying if the card is recognized. It is a DOS
utility that scans the PC Card slots on the system and lists information about the
cards in the slots. It also lists any warnings or error messages that may have
occurred during the configuration of the cards by the CardSoft drivers. Note: use
with CardSoft drivers only.
CS.EXECard services driver to manage the configuration of the system PC Card resources.
CS_APM.EXEEnabling TSR for communication between power management and card services
software for the processing of suspend/resume requests.
CSALLOC.EXEResolution and assignment of system memory, I/O port, and IRQ resources for card
services.
MTDDRV.EXEMemory technology driver; supports PC Card SRAM cards through MTSRAM.EXE
and allows for drive letter sharing between different types of memory cards (SRAM
and ATA).
MTSRAM.EXEMemory technology driver for PC Card SRAM cards.
SSCIRRUS.EXEStandard Socket Services driver interface to the Cirrus CLĆPD67xx host controller
chip.
1. Getting Started
The following initialization files are provided:
FileDescription
CARDID.INIDefault settings for card identification.
CSALLOC.INIUsed by CardSoft to determine which system resources may be used by PC Cards.
The following card libraries for the support of modems and ATA drives:
NOTE:ASSIGN.COM is a DOS utility that accesses drives E and F by reassigning drives A and B
1. Getting Started
SECTION 1Getting Started
The CardSoft device drivers cause memory cards in the card slots to be accessed
as drives E and F.
as E and F.
These drivers also provide audio feedback when a card is inserted or removed
from the card slot. When the HHC recognizes that a card has been inserted, it
sounds like booĆBEEP." When a card is removed, it sounds like BEEĆboop."
Before the Norand Utilities program is executed, each accessory card slot
(E and F) is checked. If a card is present and contains the appropriate startup
file (ROMINIT.BAT or AUTOEXEC.BAT), that drive is made the current drive
and the .BAT file is processed immediately. No Norand Utilities program screens
are seen.
Please note that the Norand Utilities program does not process a CONFIG.SYS
file on the card. If an application requires a CONFIG.SYS file that differs from
the one in flash, it is necessary to either boot directly from an SRAM card or boot
from the RAM drive.
Booting from an SRAM Card
When booting from an SRAM card, the CardSoft package cannot be installed.
The reconfiguration of the Cirrus controller, during a driver load process, causes
a loss of the use of the SRAM card that was being booted from. You must boot
from the RAM drive to use a CONFIG.SYS file that installs the CardSoft
package.
To boot from an SRAM card, add the following lines to the AUTOEXEC.BAT (or
ROMINIT.BAT) file on the SRAM card:
REM Determine which drive was booted
BOOTDRV.COM
REM If A: was booted, continue with application
REM processing
IF NOT ERRORLEVEL 2 GOTO CONTINUE
REM Make A: the default boot drive
MMBFLAG.COM 0
REM Reset the computer
RESET.EXE
:CONTINUE
. . .
Booting from the RAM Drive
There are several configurations that provide booting from the RAM drive. See
the SanDisk Card with Stacker paragraph, in Appendix A, Sample ConfigurationFiles.
To support SanDisk cards loaded with STACKER, the CONFIG.SYS file in flash
loads STACKER (if it is present). In this case, the startup file (AUTOEXEC.BAT
or ROMINIT.BAT), on the stacked volume of the card, is processed.
Access a SanDisk card loaded with Stacker from a laptop computer that supports
PC Cards, doing one of two things:
" Install the Stacker device driver on the laptop. This is done by running
SINSTALL from the SanDisk drive. SINSTALL is on the unstacked portion
of the SanDisk drive, or
" Run Stacker Anywhere, which is a TSR shell that allows you to access the
stacked portions of the SanDisk card without having to modify the
CONFIG.SYS file. Start Stacker Anywhere by typing STACKER" and exit
by typing EXIT."
"
NOTE:The version of Stacker, shipped on SanDisk cards, is incompatible with Windows 95. If your
development environment is Windows 95, and you need to leave Stacker on the SanDisk
card, then when you copy files over to the SanDisk card, boot a previous version of DOS to
access the card.
When loading Stacker and INTERLNK, be sure that Stacker is loaded before
INTERLNK, in the CONFIG.SYS file. Also, to write files to the SanDisk card
using INTERLNK, both the HHC and the development PC need Stacker loaded.
If a SanDisk card becomes corrupted by INTERLNK, it can be restored by
reformatting it using FORMAT.COM from ROM DOS 5 (also supplied in the
Programmer's toolkit).
1. Getting Started
"
NOTE:All data is lost when the card is formatted. You need to boot a previous version of DOS to
run INTERLNK, if you have a Windows 95 development environment.
See Appendix A, Sample Configuration Files, for an example a configuration that
demonstrates a configuration for a 6300 Computer that uses a SanDisk card
with Stacker and a custom CONFIG.SYS file.
Communication using INTERLNK and INTERSVR
INTERLNK, a device driver that interconnects an HHC and a host PC via serial
ports, and INTERSVR, the INTERLNK server, are provided with ROM DOS 5
and DOS 6 and also are shipped with the 6200 and 6300 Toolkit. The cable that
connects the PC to the HHC is a standard null modem cable. A NULL modem
TTY TCOM cable also works.
INTERLNK causes the HHC drives to appear as virtual drives on the PC, with
drive letters that are immediately beyond the highest drive letter currently used
on the PC. Typing INTERLNK" from the PC command line displays the
designations of the redirected drives. For details on the INTERLNK and
INTERSVR topics, see the DOS online help text.
INTERLNK is installed on the PC by the following declaration in the
CONFIG.SYS file:
device=c:\dos\interlnk.exe /drives:4
INTERSVR is provided as a communication option in the Norand Utilities
program.
You can now copy the application files to the HHC. To terminate INTERSVR,
press the [NO] key. If an external keyboard is attached, press <Alt> + [F4].
Example Boot Files
See Appendix A, Sample Configuration Files, for examples of CONFIG.SYS,
AUTOEXEC.BAT, and ROMINIT.BAT files.
RAMDFMT.EXE creates a RAM Drive on the HHC. This RAM drive is a block of
system memory that is treated as DOS drive C:. The data stored on the RAM
drive is maintained as long as power is supplied to the system and the drive is
not reformatted.
When a RAM drive is created, this results in less extended memory available for
programs. No additional conventional memory is required for the RAM drive.
Because the support for accessing the RAM drive is embedded in the DOS BIOS,
no additional drivers need to be loaded. The extended memory test (with the
corresponding boot messages) reserves memory for the RAM drive. Only one
RAM drive can be created.
The size selected for the RAM drive represents the total memory required by the
RAM drive, not the free space that is available on the drive. DOS file system
overhead reduces the specified memory by the size of the file allocation table
(FAT) and root directory created.
If CONFIG.SYS loads HIMEM.SYS and sets DOS=HIGH, the first 64 KB of
extended memory is used for the High Memory Area. As a result, the maximum
size of the RAM drive is 64 KB less than total extended memory.
The following switches are allowed for RAMDFMT.EXE. All values are in
decimal. You must specify either size or address, but not both.
ćaaddress of RAM disk (in kilobytes)
ćddrive number (0 = A, 1 = B, ... etc.)
ćenumber of directory entries
ćssize of RAM drive (in kilobytes)
ćhhelp
"
NOTE:Reboot the HHC after the RAM drive is created (or altered), to make the change effective.
If a communications option other than Accessory Card is selected, the Norand
Utilities program automatically creates a RAM drive if one does not already
exist. If the accessory card option is selected, the startup files on the card must
create a RAM Drive if one is needed.
For a system with 6 MB (or more) of total memory, Norand Utilities creates a
RAM drive of size 3 MB plus 960 KB, that is, 64KB less than 4MB to ensure
room for the High Memory Area. For lower system RAM capacities, only 1 MB
plus 64 KB of RAM is reserved for conventional use and the remainder is
allocated to the RAM drive.
The Norand Utilities program provides a menu that allows the RAM drive to be
formatted in 64 KB increments.
The RAM drive created by Norand Utilities allocates 128 directory entries, that
is, it specifies će128 as a parameter to RAMDFMT.EXE.
When NPCP, TTY, NRInet, TFTP, TCP/IP bootp, or Novell communication
options are used, another choice exists for creating a RAM drive. If the
RAMDFMT.CTL file is downloaded, Norand Utilities executes the program
RAMDFMT.EXE to create a RAM drive. RAMDFMT.CTL is a text file that must
contain the commandĆline parameters for RAMDFMT.EXE.
For example, if RAMDFMT.CTL contains the ćs2048 line, then Norand Utilities
executes RAMDFMT.EXE ćs2048", which creates a 2 MB RAM drive.
When processing RAMDFMT.CTL, if RAMDFMT.EXE cannot be executed or
returns an error, the communication session fails with error F 0." Also, if the
parameters in RAMDFMT.CTL cause the RAM drive to be removed (such as
-s0"), the communication session fails with error F 0."
See the Norand Utilities paragraph in Section 5 for a description of calling
Norand Utilities from an application, to perform data communications.
The following paragraphs describe the use of Norand Utilities for Initial Program
Load.
Creating a (Host) Download Include File
Most of the communication options for performing an initial program load
require a download include file to be used on a host computer.
First, to create a download include file, create a download list file.
You create a download list file, as follows:
A download list file contains the names of the files to be sent to the HHC. Each
line in the file specifies one name. The file names may include path information
so that all the files need not be in the same directory on the host. However, the
file is transmitted to the HHC without the source path information and placed in
the current directory of the HHC.
1. Getting Started
To specify a destination path on the HHC or to rename a file, use a line of the
“newname=oldname” format. This causes the file oldname" to be read from the
PC and transmitted to the HHC with the name
newname" may include path information.
newname." Both oldname" and
The following is a sample download list file (6200 Computer):
The following filenames cannot be used in a download list file because they are
used by Norand Utilities to perform communications:
NRTLOG.DAT
NRUPLD.CTL
PSROM0C.DAT
PSROM0C.INI
Execute the following command to create the download include file:
IPLFMT.EXE <list file> <include file>
where:
<list file> is the name of the download list file created, above.
<include file> is the name of the download include file. The Norand
Utilities program specifically requests a file named <workgroup>.INC, where
<workgroup>.INC is the value of the WORKGROUP field in the UNIT ID menu.
For the 6200 Computer, the default for this field is 6200IPL; for the 6300
Computer, the default is 6300IPL. This file is created by IPLFMT.EXE.
Please note that IPLFMT.EXE can be found in the toolkit.
IPLFMT.EXE concatenates files listed in the list file, inserting appropriate
Intermec file headers for download. See TCOM Session Overview in Section 5 for
a description of file headers.
NPCP is the NORAND Portable Communications Protocol. This protocol is
supported by the 492x Tcom Packages, 6920 Communications Server, 498x
Network Communication Controllers, and 6980/6985 Network Managers. You
would substitute the name of your include file for the text, <include file>."
1.Create a download include file, as described in the preceding paragraphs.
2.Create either Boot Disk, if necessary:
" 4920 Boot Disk:
The only file on a 4920 Boot Disk is a download include file. The
include file is copied to the DOWNLOAD subdirectory of the 4920.
" 4980 Boot Disk:
Be aware there is limited space on the 4980 System. Place the 4980
System Files on the 4980 Boot Disk in the same way as is done for
4000 Series applications (using the 4980 Boot Toolkit, for example).
Execute the following to place the download include file on the disk:
The following errors may be displayed on the 6200 or 6300 Series Computer,
when a Novell connection is attempted:
Error Description
LnnnConnection to host failed. nnn is one of the following:
100 Network drive did not mount successfully. Verify the network connection and that a
NORAND login name exists.
TnnnFile transfer failed. nnn is one of the following:
0Unexpected end of transmission, verify network connection.
101 Could not access include file.
102 Could not allocate needed memory.
Norand Utilities Internals
The Norand Utilities program creates a NET.CFG file on the RAM drive. The
NET.CFG file is not erased. It is left on the RAM drive so that it may be used by
applications.
NRInet
NRInet is a protocol that performs a NORAND file transfer session over TCP/IP
Ethernet. It is supported by the Norand 6920 Communications Server. See the
Norand Utilities paragraph in Section 5 for a description of a NORAND file
transfer session and for a list of errors that may be displayed when an NRInet
session is attempted.
1. Getting Started
Setup
1.Create a download include file, as described in the preceding paragraphs,
and place it in the download directory of the 6920 Communications Server.
2.Optionally, configure a DHCP server to provide some or all of the
information required by the HHC, including the IP addresses of the client,
router, and subnet mask. Any information not provided by DHCP must be
entered manually by the user on the HHC. A DHCP server can also
provide a domain name and IP addresses of domain name servers, which
allows the HHC user to enter a host name rather than an IP address. If
the SERVER_NAME field on the HHC is left blank, a connection to the
name Norand6920" is attempted, as a default.
Norand Utilities Internals
Version 2.xx of the Norand Utilities program creates NET.CFG and PCTCP.INI
files on the RAM drive. The NET.CFG and PCTCP.INI files are not erased, so
they may be used by applications. For a description of the contents of these files,
see the Norand Utilities paragraph in Section 5.
TFTP
TFTP (Trivial File Transfer Protocol) is a standard TCP/IP protocol supported on
many TCP/IP servers.
Setup
1.A tftpd service must be running on a TCP/IP server.
2.Optionally, configure a DHCP server to provide some or all of the
information required by the HHC (IP addresses of the client, router, and
subnet mask). Any information not provided by DHCP must be entered
manually by the user on the HHC. A DHCP server can also provide a
domain name and IP addresses of domain name servers, which allows the
HHC user to enter a server name rather than an IP address. If the
SERVER NAME field on the HHC is left blank, a connection is attempted
to the name NorandTftp" as a default.
3.Create a download list file, as described previously, and place it in the
default working directory for the tftpd server. The list file must be named
<workgroup>.BCF where <workgroup> is the value of the WORKGROUP
field in the UNIT ID menu.
The following errors may be displayed when attempting a TFTP connection:
Error Description
1PSROB0C.EXE could not be loaded
100TCP/IP Kernel is not loaded
101Invalid client IP address
201TFTP.EXE failed
202TFTP.EXE not found
203Unknown server
204Remote file name is invalid
205Local file name is invalid
206File not found on server
207Timeout
TCP/IP Bootp
"
NOTE:This option applies only to Norand Utilities program versions prior to V2.00. In V2.00 and
later, this option is replaced by the TFTP option described above.
The following setup is required for TCP/IP Bootp:
1.Bootpd and tftp services must be running on a TCP/IP server.
2.On the bootpd server, add entries for the HHCs to the bootpd configuration
file, usually named bootptab. The following would be a typical entry in this
file on a UNIX server:
bf = Bootfile. This should be 6200IPL.BCF or 6300IPL.BCF.
ht = Hardware type.
ha = Hardware address. This is the Ethernet address of the HHC. This
address is displayed on the HHC when TCP/IP is selected in the Norand
Utilities program.
hd = Home directory. This specifies the directory where the bootfile is
located.
ip = IP address.
3.Create a download list file, as described previously, and place it in the
directory specified by the hd parameter in bootptab.
On the 6200 or 6300 Series Computer, the following errors may be displayed
when attempting a TCP/IP connection:
Error: Lnnn
Description: Connection to host failed. nnn is one of the following:
101Could not allocate memory.
102Novell TCP/IP driver not loaded.
103Could not create a socket.
104Unknown host.
105Error trying to bind BOOTPC port.
106Could not get MAC address.
107Error accessing vendor file.
108Error sending to server.
109No response from server.
Error: Tnnn
Description: File transfer failed. nnn is one of the following:
1. Getting Started
201The tftp service is not defined.
202Could not create a socket.
203Bind error.
204Unknown host.
205Error sending to server.
206Error receiving from server.
207Receive timeout.
208Server error.
209Error writing to file.
Norand Utilities Internals:
The Norand Utilities program creates a NET.CFG file on the RAM drive, then
broadcasts a bootp request with the PEN*KEY 6000 Series Ethernet address
included. The bootpd server sends a response that includes an IP address and
boot file name. Norand Utilities then uses tftp to download the boot file from the
tftpd server. If the boot file name is blank, the Norand Utilities program
requests 6200IPL.BCF or 6300IPL.BCF.
The boot file is expected to be a download list file. The Norand Utilities program
uses tftp to download each file in the list. However, if the boot file has an
extension of .INC, it is processed as a download include file.
The NET.CFG file is not erased. It is left on the RAM drive so that it may be
used by applications.
These device drivers are used in the DOS environment:
Table 1Ć4
DOS Device Drivers
DriverDescription
62MOUSE.COMDOS pen driver for 6200 Computer
63MOUSE.COMDOS pen driver for 6300 Computer
62CALIB.EXEDOS pen calibration, 6200 Computer
CALIB.EXEDOS pen calibration, 6300 Computer
CLOCK.EXEDOS power management clock driver
IRDAPDRV.EXEDOS IrDA printer support
MININET.EXEDOS NPCP LAN
NGENMOD.SYSDOS PC Card modem driver
NGENWAN.SYSDOS PC Card WAN power management
NORAPM.EXEDOS NORAND ATA card support
NORATA.SYSDOS NORAND ATA card support
NORMOD.SYSDOS PC Card modems driver
NPOWER.EXEDOS power management
PC4800.SYSDOS NPCP printing support
PRDRV.SYSDOS IrDA printing support
SCANTSR.EXEDOS scanner support
Windows Device Drivers
These device drivers are used in the Windows environment:
Table 1Ć5
Windows Device Drivers
DriverDescription
MMSYSTEM.DLLWindows multimedia extensions
NOR4800.DRVWindows NPCP printing support
NORNPCP.DRVWindows NPCP printing support
NOR6805.DRVWindows IrDA printing support
NORIRDA.DRVWindows IrDA printing support
NORAPM.DLLWindows APM driver
NORPEN.DLLWindows pen driver
NORSCAN.DRVWindows scanner support
NORSHELL.EXEWindows shell
PENALIGN.EXEWindows pen driver
UNIDRV.DLLWindows NPCP printing support
NORAPM.EXE APM BIOS Installation for DOS
This is a DOS TSR (taking no parameters) that installs an APM BIOS for the
PEN*KEY 6000 Series computers. It is needed for running NPOWER.EXE. See
the DOS Power Management paragraph in Section 2 for details for installing
NPOWER.EXE.
62CALIB.EXE DOS Pen Calibration utility (6200 Computer) See the DOS Pen
Calibration paragraph in Section 2 for more information.
CALIB.EXE DOS Pen Calibration utility (6300 Computer)
See the DOS Pen Calibration paragraph in Section 2 for more information.
PENALIGN.EXE Windows Pen Calibration
A Windows penĆcalibration utility. See the Windows Pen Calibration paragraph
in Section 2 for more information.
DOS Batch File Enhancers
BOOTDRV.COM Determine Default Boot Drive
This application is for use in batch files that have a requirement to know which
drive was the default drive when the system was first booted. It returns an error
level indicating which drive is the boot drive:1=A, 2=B, 3=C, ...
This program performs two simple DOS calls:
mov ax, 3305h; Get boot drive
int 21h; DL = boot drive
mov al, dl; errorlevel = boot drive
mov ah, 4Ch; Exit( errorlevel );
int 21h
Batch file example:
BOOTDRV.COM
SET BootDrive=A:
IF ERRORLEVEL 2 SET BootDrive=B:
IF ERRORLEVEL 3 SET BootDrive=C:
IF ERRORLEVEL 4 SET BootDrive=D:
DD.EXE Disk Duplicator
This utility copies SRAM and disk images.
1.Display a message to the screen (like the Echo command).
2.Wait for some amount of time to expire before continuing (like a Sleep
command or DOS 6 Choice command with a timeout specified).
3.Pause execution of the system until a key is pressed, such as Pause."
4.Return an error level based on which key, if any, was pressed (like the DOS
6 Choice command).
The first three functions can be performed even when DELAY is loaded as a
device driver. Since the error level concept does not apply to CONFIG.SYS
processing, the fourth function applies only to command line (or batch file)
execution. To perform each of these functions:
1.No command line parameters are required to display the message Press anykey to continue . . . To display one or more different messages, supply the
new messages in double quotes on the command line. Each quoted text
string displays on a separate line. A null message (") displays a blank line.
To keep the cursor positioned immediately following the last character
displayed, do not use the trailing quote ("). To display a message without
waiting for a timeout or a key press, specify zero (/0) for a delay timeout.
2.To force DELAY to exit after a period of time has elapsed, even if no key has
been pressed, specify a /nnnn" switch on the command line anywhere, even
within quoted text. The value of nnnn is the decimal value for how many
hundredths of seconds that must elapse before DELAY automatically exits.
The maximum delay is about 640 seconds (or about 10 minutes).
3.No command line parameter is required to cause this program to wait for a
key press. DELAY always exits whenever a key is pressed, even if it is
waiting for time to elapse first.
4.When DELAY is executed from a command shell, as opposed to being
loaded as a device driver, the error level set upon return is based on the
key, if any, that was pressed prior to exiting. The return value is
specifically geared to make it easy to tell which numeric key was pressed.
Table 1Ć6
DELAY.EXE Error Levels
Error LevelKey Pressed
00"
11"
22"
33"
44"
55"
66"
77"
88"
99"
10:"
11;"
12 to 154Values returned for these keys consist of key value minus 30h.
IF ERRORLEVEL 3 GOTO InvalidDigit
IF ERRORLEVEL 2 GOTO PressedTwo
IF ERRORLEVEL 1 GOTO PressedOne
IF ERRORLEVEL 0 GOTO PressedZero
Echo message two
PauseDELAY.EXE message two" Press any key to continue... "
FNDRAMD.COM Identify RAM Drive
This utility identifies the drive letter that corresponds to your RAM drive. The
drive letter is returned by way of the errorlevel:
0 = No RAM drive found
1 = Drive A is the RAM drive
2 = Drive B is the RAM drive
etc.
FNDROMD.COM Identify ROM Drive
This utility identifies the drive letter that corresponds to your ROM drive. The
drive letter is returned in the same way that FNDRAMD.COM does.
ISRAMDRV.COM Determine if RAM Drive Exists
This program returns an error level that answers the question, Do I have a
RAM drive?" If the error level is set to zero, then a RAM drive exists. Use this
command in batch files to indicate whether a RAM drive was already formatted.
Batch file example:
ISRAMDRV.COM
IF ERRORLEVEL 1 GOTO NoRamDrive
IF NOT ERRORLEVEL 1 GOTO RamDrivePresent
MMBFLAG.COM Set/Get ROM DOS Boot Flags
This program satisfies a couple of batch file needs:
1.The error level returned by MMBFLAG.COM indicates the current value of
the ROM DOS boot flags. The boot flags keep track of the default boot
drive and serve as an indicator of Master Mode Booting.
2.You can change the default boot drive by supplying a simple command
parameter:
131Master Mode Boot from drive B (default boot drive is D)
130Master Mode Boot from drive B (default boot drive is C)
129Master Mode Boot from drive B (default boot drive is B)
128Master Mode Boot from drive B (default boot drive is A)
3Drive D is the default boot drive
2Drive C is the default boot drive
1Drive B is the default boot drive
0Drive A is the default boot drive
RESET.EXE Reset the System
Enables batch files or other software to reset the system.
THISDRV.COM Identify the current drive
This utility identifies the drive letter that corresponds to your current drive. The
drive letter is returned in the same way that FNDRAMD.COM does.
Detailed definitions of the interrupts are located in Section 6. They are matrixed
into the entire set of interrupts, in the Interrupt Definitions paragraph, and are
identified by a symbolic notation.
To locate interrupts by number, see the Interrupt CrossĆReference table in Section
6. To locate interrupts alphabetically, see the Interrupts Index.
DOS Power Management Drivers: NPOWER.EXE,
NORAPM.EXE
Device drivers, NPOWER.EXE and NORAPM.EXE, are part of the Advanced
Power Management (APM) system when running under DOS.
NPOWER broadcasts APM events to applications, notifies the APM BIOS when
the system is busy performing DOS calls, and provides a command line interface
for configuring APM settings (most of which are managed by NORAPM).
NORAPM.EXE is the interface between applications and the APM BIOS. It
installs an APM BIOS; then gathers information from this BIOS and broadcasts
the information to APMĆaware applications. It also monitors DOS function calls
and notifies the APM BIOS when the system is busy.
For more information, see Section 4.
Installation
To run NPOWER.EXE and NORAPM.EXE, they must be installed as device
drivers, in the CONFIG.SYS file, at system startup time. NORAPM.EXE takes
no parameters and must be installed prior to NPOWER.EXE.
2. DOS Applications
"
These would be a typical entry in the CONFIG.SYS file:
After installation, NPOWER displays the program name and version, similar to
the following:
NORAND Power Monitor Extension
Version n.nn
Copyright (C) nnnn by Norand Corporation
NOTE:In future revisions of this product, the name, Intermec Technologies Corporation, may appear
after the Copyright in the line above.
Operational Switches for NPOWER.EXE
NPOWER provides switches for both installation and command line operation.
The table on the next page enumerates the states that are valid for certain
switches, as per the APM BIOS specification. Remember, as you read the
installation descriptions that follow for any particular INT 15h call, NPOWER
may report an error, based on the configuration of the HHC.
For example, if a command to set the POD power on a 6200 Computer is issued,
NPOWER does not report an error because that option is not supported on the
6200 Computer.
At installation time, use switches to set various power parameters. The
following line is an example:
device=npower.exe /BL:120
The switch /BL controls backlight timeout. The preceding line would set the
backlight timeout to 120 seconds. After 120 seconds with no activity, the
backlight would be turned off.
More than one switch can be set on the same line. For example:
device=npower.exe /BL:300 /SY:600
This line would set the backlight timeout to 300 seconds and the system suspend
timeout to 600 seconds.
The switches in the following table are valid for installation:
"
NOTE:Each italicized element is a value you supply.
SwitchDescription
/B1:nnnWhen the main battery is expected to go critical in less than 10 minutes, then 10 minute
warnings are broadcast at regular intervals.
The value of nnn defines how often those warnings are broadcast.
The default is 60 seconds.
/B2:nnnWhen the main battery is expected to go critical in less than 20 minutes, then 20 minute
warnings are broadcast at regular intervals.
The value of nnn defines how often the warnings are broadcast.
The default is 120 seconds.
/B3:nnnWhen the main battery is expected to go critical in less than 30 minutes, then 30 minute
warnings are broadcast at regular intervals.
The value of nnn defines how often those warnings are broadcast.
The default is 120 seconds.
/B4:nnnWhen the main battery low warnings are posted by the APM BIOS, but the time remaining is
more than 30 minutes, low main battery warnings are broadcast at regular intervals.
The value of nnn defines how often those warnings are broadcast.
The default is 160 seconds.
/BB:nnnWhen the backup battery is low, warnings are broadcast at regular intervals. The value of
nnn defines how often those warnings are broadcast.
Note that the H8 sends backup battery warnings at a rate of about once every 10 seconds. If
the warning interval specified is less than 10 seconds, then somewhat erratic behavior results.
The default is 60 seconds. For example, suppose /BB:3 is specified as:
TIME Event
startFirst H8 notification of a low backup battery occurs.
+0 sec NPOWER broadcasts a low backup report
+3 sec NPOWER broadcasts a low backup report
+7 sec Second H8 notification of a low backup battery occurs.
+0 sec NPOWER broadcasts a low backup report
+3 sec NPOWER broadcasts a low backup report
+7 sec Third H8 notification of a low backup battery occurs.
etc.
/BL:nnThe value of nn defines how soon the backlight is turned off after a period of inactivity. The
/GBL:nnGlobal backlight timeout in minutes. Normally the backlight is automatically turned back on
upon resume or when a key is pressed. Twenty minutes after turning on the backlight, the
light turns off. You then need to manually turn the backlight back on to start the timer going
again. The twenty minutes are measured only while the terminal is on. To disable this feaĆ
ture entirely, set a timeout of zero. To simply change the timeout period, specify a new timeĆ
out in minutes.
The default is 20 minutes.
/SS:nSets SystemSoft flag to 0 or 1. If using SystemSoft for PC Cards, set it to the value of 1.
Due to a bug in Card Soft version 3.12 software, suspend notifications must be broadcast
somewhat differently when Card Soft is loaded. When this switch is supplied the following
translations are applied prior to broadcasting APM events:
APM_SUSPEND_REQ is changed to APM_USER_SUSPEND.
All OEM specific broadcast messages are disabled.
The default is 0 (disabled).
Command Line Switches
There are some switches that you can use at any time to change the
configuration of NPOWER.EXE:
2. DOS Applications
SwitchDescription
/AC:bl,ch,clSets the three activity masks maintained by the APM BIOS (NORAPM). The definition
/Cp:sSets communications port x to power management state n.
/ID:nnSystem idle timeout in seconds. The value of nn defines how long the terminal runs full
/AC /Cp /ID /L1 /PCM /Sp /Pp /SW /SY /WU
To use a command line switch, type NPOWER, followed by the setting that you
want to change; for example:
NPOWER /SY:100
Use these command line switches at any time. Valid values for the state s" are
shown in the Operational Switches for NPOWER.EXE paragraph, page 2Ć2.
for each mask value is defined by the APM SetActivityMask function, (INT 15h,
AX=5380h, BH=2Eh). The values for bl, ch, and cl are in hex and are described in the
APM BIOS description.
To disable power to the selected COM port (p,) set the state (s) for that COM port
to OFF (3). For example: /C1:3
To enable power to the selected COM port (p,) set the state (s) for that COM port
to ON (0). For example: /C2:0
This switch is equivalent to performing an APM Set Power State function call for the seĆ
lected COM port (INT 15h, AX=5307h, BH=04h, BL=com port, CX=power state). The deĆ
faults are determined by APM BIOS (NORAPM).
speed with no activity. Once idle, activity is required before the idle loop ends. Activity is
defined by the activity masks. Various DOS function calls also prevent the terminal from
idling. An idle timeout of zero prevents background system idling. An application can
still perform idling to save power.
A timeout value of zero is appropriate for all PL/N applications.
A value of 0 disables idle detection. The default is 2 seconds.
Enable power to the onboard LAN controller by setting the state (s) to On (0).
For example: /L1:0.
Disable power to the onboard LAN controller by setting the state (s) to Off (3).
For example: /L1:3.
The default is determined by APM BIOS (NORAPM).
/Pp:sSets POD p to power management state s. Valid POD values for (p) are 0 and 1. The
following examples show the most likely values that work:
To enable power to a selected POD (p) set the state (s) to On (0).
For example, to enable power POD1: /P1:0.
To disable power to a selected POD (p) set state (s) to Off (3).
For example, to enable power POD2: /P2:3.
This switch is equivalent to performing an APM Set Power State function call for the seĆ
lected OEMĆdefined power device (INT 15h, AX=5307h, BH=0E0h, BL=pod number,
CX=power state).
The defaults are determined by APM BIOS (NORAPM).
/PCM:sSets PC Card to power management state n.
To enable APM for all PC Card sockets set the power management state (s) to On
(0). For example: /PCM:0.
To disable APM for all PC Card sockets set the power management state (s) to Off
(3). For example: /PCM:3.
This switch is equivalent to performing an APM Set Power State function call for the priĆ
mary PC Card controller, (INT 15h, AX=5307h, BX=0200h, CX=power state). The deĆ
fault is determined by APM BIOS (NORAPM).
2. DOS Applications
/Sp:sSets PC Card socket (p) to power management state (s). The following examples show the
valid socket (p) values that work:
To enable power to a selected PC Card socket (p) set the power management state
(s) for that socket to ON (0). For example, to enable power to socket 1 (drive B:): /S1:0
To disable power to a selected PC Card socket (p) set the power management state
(s) for that socket to OFF (3). For example, to disable power to socket 0 (drive B:): /S0:3
This switch is equivalent to performing an APM Set Power State function call for the seĆ
lected PC Card socket, (INT 15h, AX=5307h, BH=06h, BL=socket, CX=power state). DeĆ
fault value for state (s) is ON (0).
/SW:sSets SWV power management to state s (5 volts to keyboard connector).
To enable power to switch V+ (SWV+) set the power management state (s) for that
socket to ON (0). For example: /SW:0
To disable power to switch V+ (SWV+) set the power management state (s) for
that socket to OFF (3). For example: /SW:3
This switch is equivalent to performing an APM Set Power State function call for the seĆ
lected PC Card socket, (INT 15h, AX=5307h, BH=06h, BL=socket, CX=power state).
The default value is OFF (3).
/SY:nnnSystem timeout in seconds. The value of (nnn) defines how long the terminal remains
awake with no activity. No activity for this time causes the HHC to suspend. Setting the
timeout to zero prevents sleep from occurring prior to a critically low battery condition.
The default is determined by APM BIOS (NORAPM).
/WU:blSets the wakeĆup mask maintained by the APM BIOS.
The value of (bl) defines which activities wakes a terminal up from suspend. The BL valĆ
ue is defined by the SetWakeupMask APM function: (INT 15h, AX=5380h, BH=2Fh). The
value of (bl) is in hex. The default is determined by APM BIOS (NORAPM).
NPOWER uses the 2Fh software interrupt to broadcast certain power
management messages. NPOWER places 0530Bh in register AX and the event
code in BX before issuing the 2F interrupt. Any messages not shown in the
following paragraphs likely results in NPOWER reporting they are not valid.
Interrupt Vectors Supported by NPOWER.EXE
NPOWER.EXE interrupts are identified by the symbolic notation, NPOWER,
within each interrupt definition. The following paragraphs describe the
interrupt vectors that NPOWER hooks to achieve its resident functionality.
Broadcast Event
To modularize the broadcasting of APM events this procedure was added. The
special processing required by the retail CardSoft product is handled here.
Whenever the /SS:1 switch is specified:
" No OEM events are broadcast
" System suspend events are translated to user suspend events prior to
broadcasting them. This is done because CardSoft only acts on low
numbered events; and in the case of a Suspend event we would rather that
CardSoft did nothing. By converting it to a larger value, it does just that.
SystemResumeNotification
Use this procedure whenever there is any reason to perform resume processing.
It in turn checks before performing any processing to make sure that a
redundant call has not occurred. Assuming this is not a redundant call, the
following occurs:
" INT 6Ch is issued to restore DOS clock from the RTC
" Resume notification is broadcast (see also BroadcastEvent).
INT 08h ISR: Timer T ick
When NPOWER is disconnected from the APM BIOS, the timer tick ISR
installed by NPOWER does nothing but pass it on. When NPOWER is connected
to the APM BIOS, it continues to pass on the interrupt as the first thing it does.
Upon return from the previous handler it performs the following functions:
1.Turn off the backlight after a period of inactivity.
2.Manage the global backlight timer.
3.Turn on the backlight if the global backlight timer is enabled, and an event
has occurred that signals that the backlight should be turned back on.
4.Poll the APM BIOS event queue (details covered in the following
paragraphs).
Other than decrementing counters, the work performed by the timer ISR is done
after swapping to a local stack and incrementing the DOS busy flag. Recursion
is allowed, but only within the section of code that updates the counters. None of
the previous four functions are acted on when NPOWER is disconnected from the
APM BIOS. NPOWER connects to the APM BIOS when it loads (as a device
driver) and stays connected unless an INT 2Fh call is issued to perform a
disconnect.
The standard APM events are those for which NPOWER performs specific
actions. Any APM event not listed is simply broadcast. These are descriptions of
all of the interrupt vectors that NPOWER hooks to achieve its resident
functionality. The event code values are hex.
A Get Power Status call is issued to determine if the terminal is on charge. If the terminal is on charge
then the event is simply ignored. If the /SS:1 switch was specified, then a userĆsuspend event is broadcast
instead of a system suspend; otherwise, a systemĆsuspend event is broadcast via Int2Fh.
0003Normal Resume System Notification(APM_NORM_RESUME)
If the backlight was on when the HHC was suspended and the global backlight timer was enabled, then
the backlight is turned back on using a Set Power State call with the OEM device ID of 0E200h. INT 6Ch
is issued to restore the DOS clock from the RTC. This is the normal resume notification that is broadcast.
0004Critical Resume System Notification
If the backlight was on when the terminal was suspended, and the global backlight timer was enabled,
then the backlight is turned back on using a Set Power State call with the OEM device ID of 0E200h.
INT 6Ch is issued to restore the DOS clock from the RTC. The critical resume notification is broadcast.
0005Main Battery Low Notification
The broadcast of low main warnings is maintained by a timer that is updated every timer tick. There are
two variables used for control when a warning is issued, together with a table of values to arm those two
variables. The first variable is a flag that indicates whether or not warnings are to be issued at all. The
second is a counter that indicates whether it is time for another warning to be broadcast.
When warnings are enabled and the counter has counted down to zero, a warning is broadcast. At that
time, a Get Power Status call is issued to determine whether or not to rearm the counter for another
warning. The Get Power Status call returns how much time is left. That value determines which timeout
period (if any) should be used for the next warning. It also determines which warning to broadcast.
The default values for the table are:
Time RemainingBroadcast ValueNew Timeout Period
10 minutes or less020Dh (OEM)60 seconds
20 minutes or less020Eh (OEM)120 seconds
30 minutes or less020Fh (OEM)180 seconds
over 30 minutes0005hdisable warnings
The first main battery low notification received starts the warning process. If warnings are already enĆ
abled, additional main battery notifications are ignored. The warning process is started by enabling the
flag and then performing the same process described above. A Get Power Status call determines which
value to immediately broadcast as well as when the next broadcast is performed.
0006Power Status Change Notification(APM_PWR_CHANGE)
A Get Power Status call determines if the terminal was placed on or removed from ac power. If the termiĆ
nal is on battery power then the power status change event is simply broadcast. If the terminal is on ac
power, but was previously suspended, then a resume notification event is broadcast. After the power staĆ
tus change event is broadcast, the return value is checked for an audible signal. If the return value of BH
is nonzero, then a beep is issued via the APM OEM BIOS extension (Int 15h, AX=5380h, BH=11h).
2. DOS Applications
0007Update Time Notification
Fix the DOS Clock. Broadcast the time update.
0008Critical System Suspend Notification(APM_CRIT_SUSPEND)
A Get Power Status call determines if the terminal is on charge. If the terminal is on charge then the
event is simply ignored. The critical system suspend event is broadcast via Int. 2Fh. A Set Power State
command is issued to the APM BIOS to suspend all power managed devices.
000A User System Suspend Request Notification(APM_USER_SUSPEND)
A Get Power Status call determines if the terminal is on charge. If the terminal is on charge then the
event is simply ignored. The user suspend event is broadcast via Int. 2Fh. The value returned in BH
from the broadcast call determines if the suspend request is rejected. If zero is returned in BH, then a Set
Power State command is issued to the APM BIOS to suspend all power managed devices. Otherwise, a
beep is issued via the APM OEM BIOS extension (Int 15h, AX=5380h, BH=11h).
000B User System Suspend Request Notification(APM_USER_SUSPEND)
A Get Power Status call determines if the terminal is on charge.
0203Pod 1 Ring Detect(APM_OEM_POD1)
If the terminal was previously suspended, then all of the processing normally performed for a Normal ReĆ
sume System Notification is performed. Unless the /SS:1 switch has been specified, the Pod 1 Ring Detect
is also broadcast.
0204Pod 2 Ring Detect(APM_OEM_POD2)
If the terminal was previously suspended, then all of the processing normally performed for a Normal ReĆ
2. DOS Applications
sume System Notification is performed. Unless the /SS:1 switch has been specified, the Pod 2 Ring Detect
is also broadcast.
0205COM1 Ring Detect(APM_OEM_EXTRING)
If the terminal was previously suspended, then all of the processing normally performed for a normal reĆ
sume system notification resume notification is performed. Unless the /SS:1 switch was specified, the
COM1 Ring Detect is also broadcast.
0206PCMCIA Ring Detect(APM_OEM_PCMCIA)
If the terminal was previously suspended, then all of the processing normally performed for a Normal ReĆ
sume System Notification is performed. Unless the /SS:1 switch has been specified, the PCMCIA Ring
Detect is also broadcast.
0207RealĆTime Clock (RTC) Alarm(APM_OEM_ALARM)
If the terminal was previously suspended, then all of the processing normally performed for a Normal ReĆ
sume System Notification is performed. Unless the /SS:1 switch has been specified, the RTC Alarm Detect
is also broadcast.
020BBackup Battery Low
Backup battery low warnings are handled significantly different from main battery warnings. First of all,
there is no way for NPOWER to query the state of the backup battery. That means that once a warning is
received, there is no way to query the system to determine when warnings are no longer required. The
only way to determine if warnings are still required is the absence of additional warnings being received
from the APM BIOS. Thus, low backup battery warnings are broadcast:
" Each time a warning is received from the APM BIOS.
" Each time a timer expires after having broadcast the first" warning.
" At regular intervals (based upon the warning timer) so long as another warning is received
0214Backlight On Pressed(APM_OEM_EL)
If backlight management is enable (via the /BL switch), a backlight change event from the APM BIOS
causes NPOWER to perform a Get Power State to get the current state, and then rearms the countdown
timers (including the global backlight counter). This event is not broadcast.
SECTION 2Supporting DOS Applications
OEM Extended APM Event Processing
Any APM event in the range of 200h to 2FFh is defined to be an OEM extension
by the APM standard. Below are the OEM extended APM events for which
NPOWER will perform specific actions. APM events not listed are broadcast:
from the APM BIOS while the timer is still counting
NPOWER monitors several functions using this interrupt vector, but it does not
act on any of them unless NPOWER is actively connected to APM BIOS.
" APM BIOS: Set Power State for OEM Backlight
(AX=5307h, BX=0E200h)
When NPOWER is loaded and connected to the APM BIOS, it may manage
the backlight timeout. Backlight management can be disabled using the
/BL:0 and /GBL:0 switches. With backlight management this function
keeps track of three possible states for the backlight: on, suspended, and off
(CX=0, 2, or 3 respectively). Standby (CX=1) is treated the same as off.
Resume from the suspended state causes the backlight to automatically
turn back on. A backlight resume occurs either when the terminal itself
resumes or when a key is pressed (assuming the global backlight timer is
enabled and active).
" APM OEM BIOS: Set Idle Timeout
(AX=5380h, BX=3107h)
This function is intercepted because NPOWER has to set the APM idle
timeout every time it connects to the APM BIOS. All that is done with this
interceptor is to keep track of the last value used to set the timeout. After
recording the new value, the function is passed on to the APM BIOS.
" APM OEM BIOS: Set Backlight Timeout
(AX=5380h, BX=3110h)
When NPOWER is loaded and connected to the APM BIOS, it manages the
backlight timeout. This function call is intercepted to keep track of what
timeout value to use to control the backlight.
" Key Post Ċ (AX=9102h)
This function call is issued whenever the keyboard BIOS puts a key in the
keyboard buffer. This occurs either in response to a keyboard interrupt, or
an INT 16h call that specifically requests that a key be posted. Scanner
drivers use the INT 16h call to place keys into the keyboard buffer that are
received from the scanner.
This interceptor uses this function as a sign of activity that causes the
backlight to come back on if the global backlight timer is enabled.
" Key Pend Ċ (AX=9002h)
This function call is repetitively issued whenever the keyboard BIOS is
about to check for a key in the keyboard queue. Unfortunately it is issued
prior to checking at least once. This interceptor first checks to see if there
is a key pending. If not, it issues a CPU Idle call prior to returning that the
wait operation has completed. Note that if there is no key available, the
keyboard BIOS continues to issue this call repeatedly, so there is no need
for NPOWER to perform any looping. This interceptor can be disabled
using the /WA:0 command line parameter.
2. DOS Applications
" Wait for any System Event Ċ (AX=4100h)
INT 15h function AH=41h is defined as Wait for External Event." When
AL=00h, the event that is to be waited on is any external event." This
function call is not frequently used in the PC compatibles environment, but
it has been used by NORAND
function call simply issues a CPU Idle.
This interceptor can be disabled using the /WA:0 command line parameter.
Note this one switch is disabling two separate, but similar, functions.
NOTE:If NPOWER is disconnected, this interrupt is not intercepted.
This interrupt is intercepted as a means of monitoring when the system is busy.
A lookup table determines which system function represents activity. For each of
the functions whose AH values are marked in that table, NPOWER performs a
read from a system busy port" prior to passing that function on to DOS for
execution. The default value used as the system busy port" is 3ffh; the scratch
pad register for COM1. This default can be changed automatically by the APM
BIOS, simply by supporting the APM OEM BIOS extension Int 15h, AX=5380h,
BX=C200h. This is a relatively new addition to the portable APM OEM BIOS
specification, so it is expected that it is not supported at first, thus the need for a
default port value to use when the function call is not supported.
Function 40h (Write to File or Device) is handled somewhat differently. With
that function, BX is also checked to see which file handle is used. Only those file
handles greater than or equal to three denote system activity. In other words,
writing to stdout is not recorded as activity.
The lookup table is used by INT 28h to determine when idling is performed. For
functions between 00h and 0Ch, the lookup value is saved each time a call is
intercepted. See INT 28h for how that value is used.
SECTION 2Supporting DOS Applications
2. DOS Applications
INT 28h API: DOS Idle API
This interrupt is issued by DOS from the standard input/output functions
whenever it believes that it is idle. Unfortunately, that includes situations such
as the time spent polling on a COM port when data is being sent to or received
from a COM port, as in the case where the console is redirected via TTY. Thus, a
write string call directed to a COM port would run very slowly if idling occurred
every time INT 28h is invoked. If NPOWER is disconnected, this interrupt is not
intercepted.
To prevent a slow down, INT 28h looks at the value saved by INT 21h to
determine which function was last performed. Only those DOS functions that
perform input from the console are allowed to cause idling out of INT 28h. By
modifying that saved value under some circumstances, INT 28h idles if:
" The last recorded DOS call is an input function and at least two INT 28h
calls have been issued since that time. The second call is first to idle.
" If the last recorded DOS call was function 0Ch (Flush Buffer and Read
Standard Input), idling occurs with the first INT 28h call received.
Note only those DOS calls in the range of 00h through 0Ch are even recorded.
These DOS function calls represent the functions to be recorded as activity:
AHALFunction description
11Find first matching file using FCB
12Find next matching file using FCB
13Delete file using FCB
14Sequential read from FCB file
15Sequential write to FCB file
16Create or truncate file using FCB
17Rename file using FCB
21Read random record from FCB file
22Write random record to FCB file
27Random block read from FCB file
28Random block write to FCB file
93Create subdirectory
3ARemove subdirectory
3CCreate or truncate file
3FRead from file or device
40Write to file or device (if file handle >= 5)
41Delete file
4BLoad and/or execute program
4B05Set execution state
4EFind first matching file
4FFind next matching file
56Rename file
5ACreate temporary file
5BCreate new file
INT 2Fh API: DOS Multiplex Interrupt
Windows Release Virtual Machine Time Slice — (AX=1680h)
"
NOTE:If NPOWER is disconnected, this function is not intercepted.
This function saves power when the system is idle and performs a CPU Idle call
prior to passing on the interrupt.
NPOWER.EXE Multiplex Handle — (AH=54h)
NPOWER is basically implementing a subset of the following function calls. The
function 547Fh is a new function that is unique to NPOWER. The following is a
list of the functions implemented by NPOWER. See the Interrupt Definitions
paragraph in Section 6 for further details.
This interrupt is intercepted to turn the backlight back on when the global
backlight timer is enabled. A touchscreen driver must be installed and that
driver must pass the interrupt on to NPOWER rather than handling the EOI.
2. DOS Applications
Interrupts Supported by NORAPM.EXE
The definitions of the 4000 Series interrupts supported by NORAPM.EXE, the
APM BIOS, are identified by the symbolic notation, NORAPM.
"
NOTE:These interfaces are reserved solely for internal use and application use of these methods
may affect application portability. Therefore, applications should not use them.
NORAPM.EXEĆsupported APM interrupts are listed in Table 2Ć1. Note that
NORAPM can be configured with certain switches to ignore specific interrupts.
NOTE:Table 2-1 assumes no switches are used and includes the NORAND Proprietary Interrupts,
as indicated by “Yes” in the “Proprietary” column.
Table 2Ć1
Power Management Interrupts Supported
INT#
15h
2. DOS Applications
NORAPM Interrupts
System ServicesRegister ValuesProprietary
APM Installation CheckAX=5300h
APM Real Mode Interface ConnectAX=5301h
APM Interface DisconnectAX=5304h
CPU IdleAX=5305h
CPU BusyAX=5306h
Set Power StateAX=5307h
Enable/Disable Power ManagementAX=5308h
Get Power StatusAX=530Ah
Get PM EventAX=530Bh
Get Power StateAX=530Ch
Enable/Disable Device Power MgmtAX=530Dh
Driver Version, APM v1.1AX=530Eh
Set VPP1AX=5380hBH=09hYes
Set VPP2AX=5380hBH=0Ah Yes
Contrast AdjustAX=5380hBH=0Dh Yes
Backlight AdjustAX=5380hBH=0Eh Yes
Read IDAX=5380hBH=0Fh Yes
Set ClickAX=5380hBH=10h Yes
System ResetAX=5380hBH=1Dh Yes
Write EEPROMAX=5380hBH=25hYes
Read EEPROMAX=5380hBH=26h Yes
Set COM2 MuxAX=5380hBH=28h Yes
Set Pen CalibrationAX=5380hBH=2Ch Yes
Get Pen CalibrationAX=5380hBH=2Dh Yes
Set Activity MaskAX=5380hBH=2Eh Yes
Set Wakeup MaskAX=5380hBH=2Fh Yes
Set IDAX=5380hBH=30hYes
Set TimeoutAX=5380hBH=31h Yes
Set Dock Port ControlAX=5380hBH=32h Yes
Get TimeoutAX=5380hBH=33hYes
Get Dock ControlAX=5380hBH=34h Yes
Get Wakeup MaskAX=5380hBH=35hYes
Get Activity MaskAX=5380hBH=36h Yes
Main VoltageAX=5380hBH=37hYes
Backup Battery VoltageAX=5380hBH=38h Yes
Charge VoltageAX=5380hBH=39hYes
NORAND Proprietary System functions are part of the INT 15h interface for the
PEN*KEY 6000 Series platforms. These interrupt functions are provided by
NORAPM.EXE and are callable only after NORAPM.EXE is loaded.
The interrupts can convert applications from the 4000 Series platform to the
PEN*KEY 6000 Series platforms. See the Interrupts paragraph in Section 6.
When creating new applications, see the APM BIOS Interface Specification 1.1
publication from Intel Corporation for portable definitions of the functions
required for these system interfaces, rather than using the following interrupts.
Calling Convention
Call these functions by loading register AX with 5380h, loading the other
registers in the function description, and issuing a call to INT 15h. Each
function returns with the carry flag cleared and AH equal to zero if the function
succeeds. If the function fails, each function returns with the carry flag set and
AH set to an error code.
Supported Proprietary System Interrupts
A list of the NORAND Proprietary System interrupts, supported by the Power
Management BIOS, are included with the other Power Management interrupts,
as shown in Table 2Ć1 on page 2Ć12. The Power Management interrupts are
identified by the symbolic notation, NORAPM.
2. DOS Applications
Power Management Clock Driver: CLOCK.EXE
CLOCK.EXE is part of the APM system when running under DOS. CLOCK is a
device driver that replaces the standard DOS clock driver. It must be installed
as a device driver at system startup time.
Besides the normal clock driver functions, CLOCK makes sure that the date and
time are maintained during suspends. It does this by forcing a read from the
CMOS realĆtime clock upon Resume.
Installing CLOCK.EXE
CLOCK is installed as a device driver in the CONFIG.SYS file. CLOCK should
be installed after NPOWER.EXE. A typical entry in CONFIG.SYS to install
CLOCK would look like this:
The PEN*KEY touchĆscreen driver, for DOS applications, emulates the standard
INT 33h mouse interface. The driver for the 6200 Series computer, is
62MOUSE.COM, and the driver for the 6300 Series computer, is
63MOUSE.COM. Most mouseĆaware applications should work properly on
either the 6200 Computer or the 6300 Computer, using the touch screen.
See Standard Mouse Interface: INT 33, in the Conversions and Interfaces section
of this publication, for the details on the available function calls.
Installation
The pen driver installs as a TSR, by placing the following statement in the
AUTOEXEC.BAT file, for the 6200 Series computer:
62MOUSE.COM
and the following statement for the 6300 Series computer:
63MOUSE.COM
After installation, the driver displays the following message:
/AxxxSet port base address (hex)208
/VxxxSet API interrupt number (hex)33
/SSecondary interrupt level cascade requiredćććć
/GIgnore Hardwarećććć
/WxxxSet wait count (decimal)4
/MxxxSet maximum motion tolerance (decimal). Ignore point if difference from last
/HList commandsćććć
NOTE:APM driver should be loaded before the mouse driver.
Configuration and Options
The installed default values for the driver are satisfactory installing either
mouse driver. However, for special applications, you can use the following
switches to control the driver's operation:
Detailed definitions of the INT 33h are identified by the symbolic notation,
MOUSE.
Table 2Ć2
INT 33h Interrupts Supported
INT#
33h
MOUSE Interrupts
Standard Mouse InterfaceRegister Values
Mouse Reset and StatusAX=0000h
Show CursorAX=0001h
Hide CursorAX=0002h
Get Button Status and Mouse PositionAX=0003h
Set Cursor PositionAX=0004h
Get Button Press InformationAX=0005h
Get Button Release InformationAX=0006h
Set Minimum and Maximum x Cursor PositionAX=0007h
Set Minimum and Maximum y Cursor PositionAX=0008h
Set Graphics Cursor BlockAX=0009h
Set Text CursorAX=000Ah
Read Motion CountersAX=000Bh
Set Interrupt Subroutine Call Mask and AddressAX=000Ch
Light Pen Emulation Mode OnAX=000Dh
Light Pen Emulation Mode OffAX=000Eh
Set Mickey to Pixel RatioAX=000Fh
Conditional OffAX=0010h
Set DoubleĆSpeed ThresholdAX=0013h
Swap Interrupt SubroutinesAX=0014h
Get Status Block SizeAX=0015h
Save Driver StatusAX=0016h
Restore Driver StatusAX=0017h
Set Alternate Subroutine Call Mask and AddressAX=0018h
Get User Alternate Interrupt AddressAX=0019h
Set Mouse SensitivityAX=001Ah
Get Mouse SensitivityAX=001Bh
Set Mouse Interrupt RateAX=001Ch
Set Display Page NumberAX=001Dh
Get Display Page NumberAX=001Eh
Disable Mouse DriverAX=001Fh
Enable Mouse DriverAX=0020h
Software ResetAX=0021h
Set Language for MessagesAX=0022h
Get Language NumberAX=0023h
Get Driver Version, Mouse Type, and IRQ NumberAX=0024h
The only difference between the Pen Calibration program (62CALIB.EXE) for
the 6200 Computer and the Pen Calibration program (CALIB.EXE) for the 6300
Computer, is the screen size it is designed to operate within.
When running the calibration program, you are requires to touch each of the four
crosshairs three times on the screen as they appear. Then press YES to save the
settings.
"
NOTE:Even though the HHC can be run without performing a pen calibration, the calibration is rec-
ommended to obtain better results.
There are two command line switches:
SwitchDescription
ćvThis displays the current calibration values.
ć?This displays the help screen.
2. DOS Applications
DOS Scanner: SCANTSR.EXE
"
The program SCANTSR.EXE collects and passes scanned data to an application
via the standard DOS typeĆahead buffer, where the scanned bar code is available
to an application as simple keystrokes. The program also manages power for the
scan operations.
SCANTSR is installed from the AUTOEXEC.BAT file via this statement:
scantsr [/option:value] ...
Install this program after the CardSoft drivers and TSRs are installed (if they
are used) and after NORAPM.EXE is installed.
NOTE:If CardSoft drivers and TSRs are present in the system, the command line option on NPOW-
ER.EXE that “fixes” some CardSoft bugs (/ss:1) must not be used on NPOWER.EXE, but
instead used as an option to SCANTSR.
SCANTSR is activated by an application generating an interrupt on 0x7A with
the processor register AH set equal to 0x80. This results in one scan decode
event, where the scanned data becomes available to the application as if the user
had typed the bar code. If for any reason a symbology is not scannable, the user
may use the keyboard to key in the data. However, upon detecting a key press,
SCANTSR disengages itself to prevent the corruption of the data being keyed in
by the user; the program must then be reactivated to collect another scan.
SCANTSR recognizes the following /option:value pairs:
For both the tethered and integrated scanners:
/ss:1Fix" the SystemSoft bugs that NPOWER normally fixes. SCANTSR must
be loaded after NPOWER and any CardSoft drivers and TSRs used.
For the integrated scanner only:
/aim:nnnSet the aiming beam duration (in milliseconds) for the longĆrange
integrated scanner. The aiming beam is a narrower, brighter scan,
allowing the user to position the scanning beam correctly. Note during the
aiming time, no symbology decoding is attempted. This option does not
result in a narrower, brighter, beam on the standard range integrated
scanner; but it still has the effect of not decoding the symbology while
aiming. It should not be used with a standardĆrange scanner.
Example
/* This scanner testware enables scanner, then displays the DOS
keystrokes until the return or newline character is encountered,
where we exit.
*/
delay(250);// do not accidentally see the enter key that
// launched the test program as the user’s
// desire to enter the symbol manually
_AH = 0x80;// collect only one scan — 4500 compatible
geninterrupt(0x7a);// enable scan tsr
for (;;) {// look for keystrokes until \n
while (kbhit()) { // or \r
c = getch();
putchar(c);
if (c == ’\n’ || c == ’\r’) break;
}
if (c == ’\n’ || c == ’\r’) break;
PC4800.SYS is a DOS device driver that allows DOS and PL/N applications
written for the 6200 and 6300 Computers to print to NORAND 4810, 4815, and
4820 Printers, using the NPCP protocol.
Driver Installation and Configuration
Required CONFIG.SYS Entry
To install the DOS driver for the 4815 or 4810 Printers, place the following
statement in the CONFIG.SYS file and reboot. If PC4800.SYS is not in the root
directory, be sure to include the path.
device=PC4800.SYS LPT1 1 /I1
NP4800 is the default name for the device driver that opens the device. By using
PC4800.SYS, a specific device driver is specified.
You can override this by adding a command line parameter (
the preceding statement. The driver is then accessed via this name when the
device is opened. You can call it whatever you want (except PRN), using up to
eight characters. You can add a second parameter that indicates the
communications port number to use for output: 1 = COM1, 2 = COM2, etc.
To set the communications port number, specify the device name. Parameter
order is important. The default port is COM1. By default, PC4800.SYS supplies
only the DOS device driver interface to NPCP printers.
To support PL/N applications, INT 17h interface must also be installed. To do so,
add an /I switch to the command line, as shown in the preceding statement. The
digit that appears after the I" refers to the LPT port that gets redirected to the
device driver at the INT 17h prompt. For example, if a 1" is specified, all INT
17h calls for LPT1 are redirected to the PC4800.SYS device driver.
LPT1), as shown in
Required AUTOEXEC.BAT Entry
In addition to loading PC4800.SYS from the CONFIG.SYS file, also place the
following line in the AUTOEXEC.BAT file on the boot drive. This line installs
the NORAND API kernel and is necessary for the correct functioning of the
driver for PL/N applications:
and for nonĆPL/N applications: 4000API.EXE /c3 /pc /10 /14 /16
where: /c3 means treat COM3 as COM3, not COM1
/pc is PC emulation
/10 /14 /16 means ignore INT 10, INT 14, and
INT 16 interrupts.
4000API.EXE /c3
Functionality and Usage
Intermec Technologies Corporation supplies PL/N and C standard printer
routines that handle critical errors and the printing of text to Norand printers.
This information is for those who might want to create their own print routines.
The DOS driver for the 4815 and other NPCP printers must be opened before it
can be used. Use the correct open call, for the language being used. For
example, there are two open calls available:
Open Mode FunctionDescription of Function
1 Opens a device (file) (only if existing)Checks for the existence of the device and returns
an error if it is not there.
2 Creates files when opening (not existing)Creates a file upon opening.
To write to the device, use any appropriate output function that can be directed
to the device (for example, in C you can use
fprintf()).
You should install a critical error handler that processes errors from the printer.
The printer driver returns only device not ready" errors to DOS for the sake of
compatibility with the standard PRINT program supplied with DOS. You can
retrieve the extended error if you bypass DOS and call the driver directly from
the error handler. See the example listing of CRITICAL.C and errors returned
in Appendix B, Common PEN*KEY 6000 Series Information.
IOCTL calls (DOS Function AH = 44h, AL = 02h) are supported by the device
driver (see the DOS technical reference manual). Calls require the handle
number of the printer device in register BX, a data item with this structure
pointed to by DS:DX, and the number of bytes to be read in register CX.
struct ioargs {
far *unsigned char ioctl_cmd;
far *unsigned char ioctl_buf;
};
These commands may be pointed to by the ioctl_command field to be executed by
the driver:
ONLINE = 2
STATUS = 3
GET DEVICE FEATURES = 4
SELFTEST = 5
RESET= 6
GET CURRENT CONFIGURATION =7
XTENDED ERROR = 255
Data is returned to the buffer pointed to by the ioctl_buf, for the number of bytes
specified in register CX when the IOCTL call is made. The first byte of the
returned data represents any error encountered during the call. If the call was
successful, this byte is zero. If the call was unsuccessful, this byte represents the
extended error. The format for the rest of the data is described in the
documentation for the printer.
2. DOS Applications
Notes
The printer driver must be opened and closed for each report transaction with
the printer if you want to take advantage of the lineĆloss detection features of the
NPCP protocol. Applications should do an (ioctl 3) status call to the printer
after the last line of a report or a series of reports are sent to the printer to
ensure that all lines were printed successfully by the printer.
The printer driver is multiĆtasking. For the application to take full advantage of
this feature, it must enable timeĆslicing through the appropriate call to INT 15h.
(See the 4000API documentation.)
If timeĆslicing is not activated, the last line buffered by the driver is not sent to
the printer until the device is closed or an IOCTL status call is made to the
printer. Perform an IOCTL status call before all closes to ensure the driver print
buffer is sent to the printer successfully, because DOS closes to character devices
do not perform output flushes as part of the close operation. The driver flushes
the buffer upon a close, but no error is returned if the flush is unsuccessful.
The printer driver intercepts INT 17h (Printer BIOS Services) and translates the
requested functions to provide PL/N support. The BIOS interface for INT 17h is
not 100 percent PC compatible, it is meant to be compatible with PL/N. The
support provided by the BIOS interface for standard applications is unknown.
The 6210 Computer supports IrDA printing under DOS. It consists of the device
driver, PRDRV.SYS, plus IRDAPDRV.EXE, the driver handler, link management
wrapper, and protocol stack. Together these form the IrDA printer solution,
providing a standard DOS character driver to support IrDA printers.
Installation and Configuration
Make sure the IRDAPDRV.EXE and PRDRV.SYS files are on the system. If the
system was delivered with an application requiring these files, they should
already be in flash. If not, look in the toolkit.
Required CONFIG.SYS Entry
The following entries are required in the CONFIG.SYS file:
where d:\pathname is the specific path to the directory where your printer
drivers exist; and where
driver is used. In the case of the 6200 Computer,
6300 Computer,
xxxx should be 6300.
Required AUTOEXEC.BAT Entry
There are no required entries in the AUTOEXEC.BAT file for IRDAPDRV.EXE.
xxxx is the technology" for the platform on which this
xxxx should be 6210. For the
Device Driver Entry Points
The IrDA printer driver supports the following DOS device driver entry points,
compatible with the standard input and output libraries provided by DOS
compilers, handling the request as indicated by the summarized processes
details (open, read, write, IOCTL, and close), as described:
open ćAttempts discovery of an IrDA device, and if found, establishes an IrLMP
connection for a printer with the device.
"
NOTE:Only one open connection is allowed.
read ćReturns data sent by the system. A return count of zero implies that no
data is available.
write ćThe written character is stored in a local coalescence buffer (with the
IrLMP protocol header inserted) until the frame size is reached, when the
frame is transmitted to the printer. If the ćn switch is used, each user
write byte count is sent with the IrLMP protocol header inserted without
any attempt at local coalescence.
IOCTL ć This processing is specific to NORAND products and supports printing
applications. A printing program may hook the DOS INT 24 critical error
interrupt and then call the driver's IOCTL directly using the information
provided by INT 24. The driver responds by setting an extended error code
in the application's memory, using a pointer that was passed to it through
the IOCTL interface. The following IOCTL call switch is implemented.
Device driver is open Ċ a printer connection is established.
50IRLAP_DISCONNECT_ERROR
Close failure Ċ a disconnect event state change failure occurred during the disĆ
connect procedure processing.
51DISCOVERY_FAILURE
Open failure Ċ no devices responded during the discovery procedure.
52LINK_MANAGEMENT_CONNECT_FAILURE
Open failure Ċ a buffer flushing operation failed during establishment of the
link management session with a discovered device.
53TX_BUFFER_DESC_GET_FAILURE
Write failure Ċ could not get a transmit buffer descriptor to send the data to the
printer.
54BUFFER_GET_FAILURE
Write failure Ċ could not get a transmit buffer to send the data to the printer.
2. DOS Applications
55BAD_CONNECTION_HANDLE
Open, write, or close failure Ċ a defective connection handle was encountered
while flushing the driver's coalescence buffer.
56UNKNOWN_TRANSMIT_FAILURE
Open, write, or close failure Ċ the link access protocol failed for unknown" reaĆ
sons during an attempt to flush the driver's coalescence buffer.
57WRITE_WITH_PRINTER_NOT_READY
Write failure Ċ attempted a write to the driver while the driver was in an error
state.
58I_QUEUE_FULL
Open, write, or close failure Ċ the driver could not get a queue for the transmisĆ
sion of an information frame.
59CONNECT_FAILURE
Open failure Ċ after a successful discover of an IrDA device, a connection could
not be established.
60DRIVER_CLOSED
Write, read, IOCTL, close failure Ċ an attempt was made to access the driver
while the driver was in a closed state.
61NO_RECURSION
Write, read, IOCTL, close failure. An attempt was made to recursively access
the driver.
62BAD_LINK_CONTROL_FRAME_SIZE
Open failure, link management failure Ċ the system did not receive the correct
frame size for a connect confirmation by IrLMP after the IrLAP link session was
established with the remote device.
Open failure, link management failure Ċ the system did not receive an IrLMP control
frame from the remote device after the IrLAP link session was established.
64NON_LINK_MANAGEMENT_CONNECT_CONFIRM
Open failure, link management failure Ċ the system did not receive an IrLMP
connect confirm frame from the remote device after the IrLAP link session was
established.
65RECEIVE_FRAME_FAILURE
Open failure, link management failure Ċ the system did not receive the IrLMP
connect confirm frame from the remote device that had a successful IrLAP link
established.
66READ_FAILURE_PRINTER_NOT_READY
Read failure Ċ an attempt was made to read from the character stream with the
connection not in ready state.
67READ_FAILURE_PRINTER_IN_NDM
Read failure Ċ an attempt was made to read from the character stream with the
connection in the normal disconnect mode.
68READ_FAILURE_BAD_CONNECTION_HANDLE
Read failure Ċ an attempt was made to read from the core, and the connection
handle used was found to be no longer valid.
69READ_FAILURE_UNKNOWN_STATUS
Read failure Ċ an attempt was made to read from the core that resulted in the
core posting an unknown error.
70WRITE_REQUEST_EXCEEDS_COALESCING_BUFFER
Write failure Ċ the write buffer is too large to fit in the local coalescing buffer and is
rejected. Present the data to the driver with a buffer size less than 128 bytes.
close ćThe coalescence buffer is sent to the printer and, after having verified that
all data is sent to the printer, IrLMP and IrLAP disconnects are performed
(if there is a coalescence buffer being used, see the -n switch for details).
Usage
Both PRDRV.SYS and IRDAPDRV.EXE have optional parameters.
PRDRV.SYS [fileNameToUse]
where fileNameToUse is the name of the device to which this driver should
respond. If this option is used, the f" option for IRDAPDRV.EXE must be used,
and the optional name selected must match this name string. The default is
IRDALPT.
IRDAPDRV [ –? –bn –dn –fs –n –rn –ts –x ]
-?Provides information about version, revision level, a command line example, a
list of the available switches, and brief descriptions of each.
"
NOTE:Use only the switches shown here. This driver is a multiplatform program, providing features
for all of the 6000 Series platforms. None of the other switches are intended for the 6200 or
6300 Computer and could cause a malfunction, if used on this platform.
-bn Removes a baud rate from consideration for data transfer rate negotiated during
connect. The (n) parameter is one of 19200, 38400, 57600, or 115200. This
switch is cumulative and can REMOVE any, or all, of the above rates from the
default negotiables. When the two systems negotiate, the largest common value
is selected and that baud rate is used for communication after negotiation.
-dn Specifies the disconnect time (in seconds) requested during negotiation. The (n)
parameter is one of 3, 8, 12, 16, 20, 25, 30, or 40. This switch is cumulative and
can add any, or all, of the preceding disconnect times to the default of 3. The two
systems negotiating select the largest common value.
-fs Defines the file name used by the driver. This parameter string (s) must be supĆ
plied, and must match the driver name option used with PRDRV.SYS when it
was loaded (if used). IRDALPT is default name for this driver.
-nDesignates no coalescing buffer support for devices that send data back to escape
sequence queues.
-rn Specifies the number of discovery retries done at the DOS open command by the
driver. For each (n) count, the user has 500 ms to bring the system within range
of the printer for data transfer discovery. The default is two retries.
-ts Identifies the IrDAĆequipped system on which the driver is running. The options
for the (s) parameter are: 6210, 6300 (see comments above in RequiredCONFIG.SYS Entry).
-xSpecifies that the driver should disable interrupts not in the open state. This
implies that the core is not discoverable and connectable, and therefore cannot
perform that role.
PC Card Modem Driver: NGENMOD.SYS
NGENMOD.SYS is a DOS device driver that enables PC Card modems. The
driver allows applications to specify when the modem is powered on and off via
standard interfaces, thereby conserving battery power.
Driver Installation
Place the following line in the CONFIG.SYS to install the driver:
device=ngenmod.sys
NGENMOD.SYS defaults to installing the PC Card modem as COM3 at base
address 3E8h. By default, it expects the modem to be in socket 1 (slot B) and
assigns IRQ5 as the system interrupt for COM3. It also utilizes IRQ14 to detect
card change events. The driver name is MODEM."
Most default settings are overridden by switches on the driver install line in
CONFIG.SYS. The following switches are defined:
SwitchFunctionDescription
-Ndevice nameUp to 8 characters long. Default name is MODEM.
-Ssocket (in hex)0ć3 supported. Choose based on the number of slots in your system. Slot A is
socket 0. Default socket is 1.
-CCOM PORT
(in hex)
-IIRQ for COM3
(in hex)
1ć4 supported. For 6300 and 6200 HHCs, select only 3 or 4. Default COM
port is COM3.
Must be properly chosen to avoid IRQ conflicts in the system. Default IRQ is
IRQ5.
2. DOS Applications
For example the following installation line sets the driver name to MYMOD,
installs the modem on socket 0, selects IRQ12 for the modem, and selects COM4.
All applications that use UMP.SYS must exclude C800 and CC00 segments.
These are used by the NGENMOD for PC Card access. NGENMOD.SYS
requires NORAPM.EXE V2.20 or higher. Otherwise, the device driver cannot
operate correctly. The following configuration information is important to the
proper operation of NGENMOD.SYS in PL/N and DOS environments.
PL/N applications require 4000API.EXE and NORAPM.EXE for proper operation
of NGENMOD.SYS. Install NORAPM.EXE as a device driver in the
CONFIG.SYS before installing NGENMOD.SYS and install 4000API.EXE as a
TSR after NGENMOD.SYS.
DOS applications require NORAPM.EXE to properly operate NGENMOD.SYS.
Install NORAPM.EXE as a device driver in the CONFIG.SYS prior to installing
NGENMOD.SYS. DOS applications using 4000API.EXE with NGENMOD.SYS
must install 4000API as a TSR after NGENMOD.SYS is installed.
4000API.EXE must have the /C3 switch set, when using PC Card modems,
which tells 4000API.EXE to treat COM3 calls as COM3 instead of COM1 with
no modem control signals.
2. DOS Applications
See the DOS NPCP Printing paragraph, page 2Ć18, for examples of
AUTOEXEC.BAT entries, using the /C3 and other switches.
Qualifying PC Card Modems
Several modems have been tested with NGENMOD and are known to contain a
valid CIS that allows NGENMOD to properly enable and disable the PC Card
modem. The following modems have qualified:
" AMP 14.4
" AMP 9600
" Microcom
This list is constantly changing as new modems become available. For
information on the latest qualifying PC card modems, call the Customer Support
Center at 800Ć755Ć5505 (U.S.A. or Canada) or 425Ć356Ć1799.
Application Interfaces and Device Behavior
This driver allows applications to power the modem on by application request.
This is supported by the following methods.
" DOS OPEN command
" INT 14h, function 0 (SERIAL BIOS INITIALIZE)
" INT 14h, function FF01h (SERIAL BIOS PORT POWER ON)
" APM function 5307h (SET DEVICE POWER STATE) to the correct serial
port and power state
The modem can be turned off by application request. Use the following methods:
" DOS close command
" INT 14h, function FF00h (SERIAL BIOS PORT POWER OFF)
" APM function 5307h (SET DEVICE POWER STATE) to the correct serial
The modem driver monitors the system voltage and refuses to enable the modem
during powerĆon operations if battery voltage is too low. The battery level, below
which the modem cannot operate correctly, is 7.0 volts for the 6300 Computer
and 6.0 volts for the 6200 Computer. If the modem fails to respond while an
application is improperly functioning, the application should check this voltage
level to determine if that is the cause of the problem.
Power is also be removed from the modem on any ejection of the card. Card
power is not applied on insertion of the card. Applications are expected to
recover from modem ejection and installation via protocol errors.
"
NOTE:To recover properly, applications must always power-down (CLOSE) the modem before mo-
dem power-up (OPEN).
Once the driver is opened, power is maintained to the PC Card as long as the
card is in the slot and batteryĆlow or powerĆfail events are not detected. On
detection of batteryĆlow or powerĆfail events, power is removed from the card and
the application is to recover from modem failure by detection of protocol errors.
It is not be possible to SUSPEND the system, while the modem driver is opened.
The modem driver suspends the request to preserve the communications session.
"
NOTE:The driver owns the slot and only a modem device can exist in the socket.
Supported DOS Driver IOCTL_IN Functions
The driver supports DOS init, open, close, and IOCTL functions. Open and close
are standard language functions. IOCTL_IN calls (reqpk.cmd = 3) exist to get
the driver command line parameters, the modem manufacturer's ID, and the
Version 1 product information string. The following is the structure of the DOS
request packet to the driver for IOCTL_IN (in C" format):
typedef struct{
unsigned char reqlen;// length of request structure
unsigned char unit;// sub unit code for block devices only
unsigned char cmd;// driver command
unsigned status;// error returned by driver
long rsrv1;// area reserved by DOS
long rsrv2;// area reserved by DOS
unsigned char media;// area reserved by DOS
IOCTLPARMS far* ioctl; // ioctl buffer
unsigned len;// length of ioctl buffer
} reqpk;
The structure of an IOCTLPARMS buffer is defined as follows in C"
typedef struct {
unsigned char far *cmd;// pointer to a command value
unsigned char far *buf;// pointer to a buffer to place data in
} IOCTLPARMS;
The cmd" values are defined as follows for the modem driver. For each
command, the buffer buf" must have the minimum size specified. This length
must be inserted into the reqpk.len field.
2. DOS Applications
Cmd Value Buffer Length Description
112Return the command line parameters
216Return the manufacturer ID string
364Return the product version 1 information string
42Return the current extended device error
The buffer returned, for the command line parameters, has the following format:
struct cmdline {
unsigned char len;// length of data returned
unsigned char devname[8];// device driver name.
unsigned char socket;/ / PC Card socket device to load in
unsigned char IRQ;// syst em irq associated with modem
unsigned int base;// base i/o address of modems UART
}
CMD 2: Manufacturer ID String
Manufacturer IDs are assigned by the PCMCIA standards committee. Each
modem manufacturer is required to provide their ID in the card CIS for
examination by software. Consult the PCMCIA specification for the format of
the TUPLE string returned by this call.
CMD 3: Product Version 1 Information String
Each PC Card manufacturer is required to provide a Version 1 Information
TUPLE in the card CIS for examination by software. Consult the PCMCIA
specification for the format of the TUPLE string returned by this call.
2. DOS Applications
Status VariableValue Meaning
SUCCESS0x00
BAD_ADAPTER0x01Possibly the device in the slot is not a modem.
BAD_ATTRIBUTE0x02Possibly the device in the slot is not a modem.
BAD_BASE0x03The requested COM port is already assigned.
BAD_IRQ0x06The requested IRQ is already assigned.
BAD_SOCKET0x0BRequested socket is already owned by another device.
BAD_TYPE0x0DPossibly the device in the slot is not a modem.
NO_CARD0x14No card is present in the socket
IN_USE0x1ERequested configuration is already in use.
NO_MORE_ITEMS0x1FRequested configuration did not match configurations
POWER_ERR0xF0Modem power was removed because of a power event.
NOT_INITIALIZED 0xF1Card ejected or inserted after driver was opened.
"
CMD 4: Return Extended Error
Status of the modem driver or an extended error can be retrieved via this call.
IOCTL_IN Sample Code
NOTE:The following sample code is written for the modem device, if you are using this code for the
wireless WAN card, make the appropriate changes.
#include <stdio.h>
#define GET_DRIVER_PARMS 0x01// ret urn the command line parameters
#define GET_MFGID0x02// ret ur n manufacturer ’s ID string
#define GET_PRODINFO0x03/ / return produc t vers 1 int o string
typedef struct {
unsigned char far *ioctl_cmd;// points to the ioctl cmd
unsigned char far *ioctl_buf;// points to the argument buffer
unsigned ioctl_len;// length of ioctl_buf
} IOARGS;
IOARGS ioargs;
UC buffer[64];// this buffer is pointed to by ioargs.ioctl_cmd
// do DOS IOCTL_IN CALL. Inline assembler works for Microsoft C.
// Other C compilers may support IOCTL directly.
void Ioctl(int handle, IOARGS *args, UI len)
{
_asm
{
mov cx,len; cx is the length of the buffer
mov bx,handle; bx is the file handle
mov dx,args; dx is the pointer to our IOARGS buffer
mov ax,4402h; 4402h is the DOS function to call
int 21h; this is the DOS software interrupt call
}
}
// print a buffer
void printbuf()
{
int i;
for (i = 0; i < 64; i++ ) {
printf (“%2.2x ”,buffer[i]);
if (i % 16 == 0) printf (“\n”);
}
printf(“\n”);
}
// get manufacturer’s ID
void GetMfgId()
{
buffer[0] = GET_MFGID;// insert the command
Ioctl(hndl,&ioargs,63);
printf(“mfgid = \n”);// display the returned data
printbuf();
}
// get the product information
#define GET_PRODINFO
void GetProdInfo()
{
buffer[0] = GET_PRODINFO;// insert the command
Ioctl(hndl,&ioargs,63);
printf(“prodinfo = \n”);// display the returned data
printbuf();
}
// get the command line parameters
void GetDriverParms()
{
buffer[0] = GET_DRIVER_PARMS;// insert the command
Ioctl(hndl,&ioargs,63);
printf(“driverparms = \n”);// display the returned data
printbuf();
}
void main()
{
ioargs.ioctl_cmd = &buffer[0];// assign pointer to cmd buffer
ioargs.ioctl_buf = &buffer[1];// assign pointer to argument buffer
// open the driver;
// this applies power to the modem and initializes the PC Card.
GetDriverParms();
GetMfgId();
GetProdInfo();
fclose(modem);// close driver to conserve power
}
Device Driver Errors
The following errors are returned to DOS applications:
0x0100 Command OK.
0x8102 Device not ready. Indicates card not in slot.
0x8103 Unknown DOS command.
0x810c General failure; All other errors and power too low to run device.
SECTION 2Supporting DOS Applications
2. DOS Applications
"
Interrupts Supported by NGENMOD.SYS
The 4000 Series interrupts supported by NGENMOD.SYS are identified by the
symbolic notation, NGENMOD.
INT 14h
INT 14h interfaces manage modem power or get error codes dealing with the
modem powerĆon sequence. The supported INT 14h functions are intercepted
when DX+1 represents the COM port specified on the modem driver line.
The list of INT 14 functions supported by the NGENMOD device driver is as
follows:
NGENWAN.SYS is a DOS device driver that enables and powerĆmanages PC
Card wireless Wide Area Network (WAN) cards; and allows applications to
specify the power state of network cards, allowing various system power states.
Driver Installation
Place the following line in the CONFIG.SYS file to install the device driver:
The following is a list of options for this device driver. Note that all numbers
must be hexadecimal.
SwitchFunctionDescription
-IxIRQ for COM3 (in hex) Must be properly chosen to avoid IRQ conflicts in the system. Default
IRQ is IRQ5.
-CxCOM PORT (in hex)1ć4 supported. For 6300 and 6200 HHCs, select only 3 or 4. Default
COM port is COM3.
-Sxsocket (in hex)Only 0ć3 supported. Choose based on the number of slots in your sysĆ
tem. Slot A is socket 0. Default socket is 1.
-VxVpp StateSets the Vpp state to the socket, where x =0 (vpp off)
1 (vpp on)
-RxRing ActiveAllows the network card to wake up the system from suspend, based on
the value of x. If x = 0, the feature is disabled. If x = 1, the feature is
enabled.
-OxSlot power controlx =0 (inactive)
1 (active)
See page 2Ć30, for information about the values for this option.
-PxPOD 2 power controlx =0 (inactive)
1 (active)
-Nname device nameUp to 8 characters. Default name is MODEM.
-MxManufacturer IDx =0 (WAN card is Ericsson Mobidem (default))
1 (Use INT 2Fh broadcast for APM event processing)
2. DOS Applications
By default, NGENWAN.SYS by installs the PC Card network card as COM3 at
base address 3E8h. It expects the modem to be in socket 1 (slot B) and assigns
IRQ5 as the system interrupt for COM3. It also utilizes IRQ14 to detect card
change events. The driver name is MODEM."
Configuration Information
All applications that use UMP.SYS must exclude C800 and CC00 segments.
These are used by the NGENWAN for PC Card access.
NGENWAN.SYS requires NORAPM.EXE V3.00 or higher. Otherwise, the device
driver cannot operate correctly.
The following configuration information is important for proper operation of
NGENWAN.SYS in PL/N and DOS environments.
PL/N applications require 4000API.EXE and NORAPM.EXE for proper operation
of NGENWAN.SYS. NORAPM.EXE must be installed as a device driver in
CONFIG.SYS prior to the installation of NGENWAN.SYS; 4000API.EXE must
be installed as a TSR after NGENWAN.SYS. 4000API.EXE must have the /C3
switch set, which tells 4000API.EXE to treat COM3 calls as COM3 instead of
COM1 with no modem control signals.
DOS applications require only NORAPM.EXE for proper operation of
NGENWAN.SYS. NORAPM.EXE must be installed as a device driver in
CONFIG.SYS prior to the installation of NGENWAN.SYS. DOS applications
that need to use 4000API.EXE with NGENWAN.SYS must install 4000API as a
TSR after NGENWAN.SYS is installed. 4000API.EXE must have the /C3 switch
set, which tells 4000API.EXE to treat COM3 calls as COM3 instead of COM1
with no modem control signals.
Qualifying Wireless WAN Cards
Several PC Card Wireless WAN cards have been tested with NGENWAN and are
known to contain a valid CIS that allows NGENWAN to properly enable/disable
the Wireless WAN PC card. The IBM ARDIS, IBM CDPD, and ERICSSON
MOBIDEM cards do qualify.
This information is constantly changing as new cards become available. For
information on the latest qualifying PC Card Wireless WAN cards, call the
Customer Support Center at 800Ć755Ć5505 (U.S.A. or Canada) or 425Ć356Ć1799.
"
2. DOS Applications
"
NOTE:See page 2-24 for application interfaces and device behavior information. Be sure to make
“modem” to “wireless WAN card” changes where necessary.
While the wireless WAN card driver is opened, it is possible to SUSPEND the
system. The behavior of the network card during suspend is based on the device
driver's -O option.
" If the -O option is set active, the driver removes all power (Vcc, Vpp and
POD2) during suspend. It is the responsibility of the application or
middleware to open the driver and reinitialize the COM port settings after
power is restored. If the -O option is set active, the -R option has no effect.
" If the -O option is set inactive, all power (specified by -V and -P options)
remains on during suspend. If the -R option is also set active, the STSCHG
PC Card pin causes the HHC to resume and the driver is not reset or does
not reinitialize the radio on resume. If the -R option is inactive, then the
radio cannot resume the HHC, but can still receive and buffer messages.
The wireless WAN card driver configuration is specified on the device driver
command line. The socket, COM port, driver name and system IRQ are global
system resources. No other PC Card can use these system resources.
NOTE:The driver owns the slot and only a wireless WAN card device can exist in the socket.
See page 2Ć25 for supported DOS driver IOCTL_IN functions. Be sure to make
modem" to wireless WAN card" changes where necessary.
Interrupts Supported by NGENWAN.SYS
The 4000 Series interrupts supported by NGENWAN.SYS are identified by the
symbolic notation,
The INT 14h function, Turn Wireless WAN Card Power Off/On, is intercepted
and processed entirely by the driver when DX + 1 equals the COM port specified
on the driver command line.
"
NOTE:See page 2-28 for INT 14h and INT 15h information.
This section contains information about Windows Applications for the Windows
version of the PEN*KEY
R
6300 HandĆHeld Computer. Included is a description
of the minimal installation required for a Windows configuration, the
components required for this Windows installation, and a discussion of the
NORAND
The following paragraphs describe the Windows 3.1 installation and
configuration for the 6300 Computer.
General information relating to the installing and configuring of Windows 3.1 is
available from vendors, such as Microsoft Corporation.
SECTION 3Supporting Windows Applications
Applications
3. Windows
Standard SRAM Installation
The standard installation uses SRAM. The following descriptions relate only to
this type of installation.
You can install Windows on a 6300 Computer by copying the Windows disk to a
memory card or by copying the files to the RAM drive on the 6300 Computer.
You can then start Windows by running the WIN.COM program. Table 3Ć1 in
the Windows Components paragraph, page 3Ć4, describes the files provided by
Intermec Technologies Corporation.
To illustrate a complete boot sequence from DOS into Windows, the Windows
configuration also includes DOS startup files such as COMMAND.COM,
AUTOEXEC.BAT, and CONFIG.SYS.
The Windows 3.1 package is shipped with a default configuration appropriate for
the 6300 Computer and should require no further configuration to run.
Configurations for drivers provided are described in Sections 2 and 3.
Custom SanDisk or PC Card Installation
If you are running Windows from a SanDisk or PC Card hard drive or other ATA
device, take note of the following differences.
1.The CONFIG.SYS file on the card is not processed because these types of
cards are not recognized until the CONFIG.SYS file is processed. Thus,
the boot drive is actually the flash drive, drive D:\. The default
AUTOEXEC.BAT file on drive D:\ tries to execute the AUTOEXEC.BAT on
a card in drive B:\ (slot 0 Ċ farthest from the display). Note that the drive
letter for the device is drive E:\ or F:\, pending on which slot the card is in.
2.Change all references to drive A:\, in the AUTOEXEC.BAT file, so they
reference drive E:\.
3.Remove the WINFILE.INI file in the sample configuration. This file makes
reference to the A:\ drive when one does not exist. A default WINFILE.INI
file is created when Windows starts up.
4.If the CONFIG.SYS from the D:\ drive is inadequate, you may create a
small RAM drive. Copy over your boot files, and reset the device. This can
be done automatically by modifying the AUTOEXEC.BAT on the root
directory of your card. Put the desired CONFIG.SYS and AUTOEXEC.BAT
files in a subdirectory of the card, DRIVEC for example. Determine the
proper CONFIG.SYS and AUTOEXEC.BAT by consulting the sample boot
files in the toolkit. Locate the utility program, RESET.EXE and put it in
the root directory of the card. Then use the following AUTOEXEC.BAT (do
not include comments in parenthesis):
D:\RAMDFMT –s300(This creates a ramdrive (drive C:) to size of 300 KB)
D:\MMBFLAG 2(Ramdrive (drive C:) becomes the boot drive)
COPY E:\DRIVEC\*.* C:\(Your boot files are copied to the ramdrive)
E:\RESET(Automatically resets the device)
The RAM drive is persistent, it survives resets. So the only time the RAM drive
creation process takes place is if you lose main and backup batteries.
Other Custom Installations
If you have another type of custom installation, not mentioned here, call the
Customer Support Center at 800Ć755Ć5505 (U.S.A. or Canada) or 425Ć356Ć1799.
Windows Operation Modes
The Windows 3.1 minimal configuration is shipped with all the files necessary for
operating Windows in Standard and Enhanced modes. Where possible, you
should run Windows in Standard mode. Standard mode can be configured into a
much smaller footprint and can provide better performance. You can start
Standard mode by using the /s" option when running WIN.COM. For more
information on files that can be removed from the configuration if Enhanced
mode is not required, see the Windows Components topic, on page 3Ć4.
Normal Startup (Standard Mode)
The Windows startup sequence follows:
1.MSĆDOS boots and processes CONFIG.SYS and AUTOEXEC.BAT.
2.AUTOEXEC.BAT runs WIN.COM.
3.WIN.COM displays the Windows 3.1 logo and launches DOSX.EXE
(standardĆmode DPMI server).
4.DOSX.EXE loads WSWAP.EXE and launches KRNL386.EXE (Windows
kernel for 32Ćbit processors).
5.KRNL386.EXE initializes GDI.EXE, USER.EXE (system drivers Ċ mouse,
keyboard, etc.), and the installable drivers. During and after this step, the
SYSTEM.INI file is referenced to locate drivers and driver configuration
settings.
6.KRNL386.EXE now loads the Windows shell program. In this case,
NORSHELL.EXE is loaded.
7.After referring to the WIN.INI initialization file, NORSHELL.EXE
immediately launches the user application, which, in this case, is the
Windows 3.1 File Manager. Windows startup is now complete and you are
left in the File Manager.
As mentioned earlier, you can start Windows 3.1 StandardĆMode simply by
running WIN.COM. An alternative method is to run DOSX.EXE directly. If you
run DOSX.EXE directly, the WIN.COM and WSWAP.EXE files can be left out of
the system to save space. This configuration does not support execution of DOS
programs. For a more detailed discussion of Windows startup, see chapter 1 of
the book Windows Internals, by Matt Pietrek.
Windows Components
The components included for the 6300 Computer systems equipped with
Windows 3.1 are listed below.
Each of the files in these tables are marked Optional" or Required." Any of the
Optional" components may be deleted from the configuration if you decide that
you can get along without them. This helps to conserve space on the system.
Table 3Ć1
Windows Startup and Shell Programs
ComponentDescription
CONFIG.SYSMinimal DOS configuration. Sets SHELL to D:COMMAND.COM and
AUTOEXEC.BAT Minimal DOS startup. Sets path, runs H8 download, APM BIOS, then
20.BATRuns WIN.COM with /S switch to force Windows into Standard Mode.
21.BATRuns WIN.COM with /3 switch to force Windows into Enhanced Mode.Optional
22.BATRuns WIN.COM with no switches so that Windows can pick the run mode
911.BATMinimal Windows command menu.Required
WIN.COMOur version of WIN.COM (DOS program that launches Windows) with roĆ
Applications
3. Windows
WINTITLE.RLEDefault desktop wallpaper (Windows 3.1 logo).Optional
NORSHELL.EXE NORAND shell program, replaces Program ManagerOptional
WINFILE.EXEWindows File Manager shell. WINFILE.EXE is launched by
ComponentDescription
SYSTEM.INIInitialization file for Windows system and drivers. A
WIN.INIInitialization file for Windows applications.Required
WINFILE.INIInitialization file for WINFILE.EXE.Optional
SYSTEM\DOSX.EXEDPMI server.Required
SYSTEM\WSWAP.EXESwaps out StandardĆMode Windows when DOS applications are
SYSTEM\KRNL386.EXE Windows 3.1 kernel for 32Ćbit systemsRequired
SYSTEM\GDI.EXEWindows 3.1 Graphical Device Interface code.Required
SYSTEM\USER.EXEWindows 3.1 user interface.Required
Required
loads D:HIMEM.SYS.
Required
911.BAT.
Optional
according to available resources.
Optional
tated logo.
Optional
NORSHELL.EXE.
Table 3Ć2
Initialization Files
Required
[BOOT.DESCRIPTION] section may contain version strings for
some drivers and applications developed by Intermec Technologies.
Optional
run. Optional, if DOS applications are not run during Windows session
The Table 3Ć3 files are required only in the Enhanced mode.
Table 3Ć3
Windows Enhanced Mode Files
ComponentDescription
SYSTEM\WIN386.EXE Virtual machine manager and default virtual device drivers.Required
SYSTEM\VTDAPI.386Virtual Timer Device API. Needed for Enhanced Mode multimedia.Required
SYSTEM\VPWRD.386Virtual Power Device. Needed for Enhanced Mode Power ManageĆ
ment.
Table 3Ć4
Windows System Device Drivers
ComponentDescription
SYSTEM\COMM.DRV Windows 3.1 serial port driver.Required
SYSTEM\KEYBOARD.DRV Windows 3.1 keyboard driver.Required
SYSTEM\SYSTEM.DRVWindows 3.1 system driver.Required
SYSTEM\YESMOUSE.DRV Windows 3.1 mouse driver that reports that a mouse is
available. NORPEN.DLL generates the actual mouse and pen
events.
SYSTEM\PKROTATE.DRVPEN*KEY portrait VGA video driver.Required
SYSTEM\MMSOUND.DRVWindows 3.1 sound driver.Required
SYSTEM\SPEAKER.DRVWindows 3.1 PC speaker multimedia driver.Optional
SYSTEM\NOR4800.DRVWindows 3.1 printer driver to support printing to NORAND
4800 Series Printers.
SYSTEM\NOR6805.DRVWindows 3.1 printer driver to support IrDA printing.Optional
SYSTEM\UNIDRV.DLLWindows 3.1 universal printer driver; used by NOR4800.DRV
and NOR6905.DRV. Required only if NOR4800.DRV or
NOR6805.DRV is used for printing.
Required
Required
Optional
Required
Table 3Ć5
Windows Installable Device Drivers
ComponentDescription
SYSTEM\NORAPM.DLLPEN*KEY Advanced Power Management (APM) driver for
Required
Windows. Provides interface to power management and system
control hardware. APM BIOS must be loaded (currently, this is
NORAPM.EXE).
SYSTEM\NORPEN.DLLPEN*KEY pen driver. Provides mouse input for Windows 3.1 and
Required
pen input for Windows for Pen Computing 3.1, if used.
SYSTEM\NORSCAN.DRV PEN*KEY scanner driver, provides bar code scanning support
Optional
under Windows 3.1.
SYSTEM\NORNPCP.DRV Provides NPCP printing support under Windows 3.1.Optional
SYSTEM\NORIRDA.DRVWindows 3.1 driver to support IrDA printing. Required only if
SYSTEM\COMMDLG.DLL Provides common dialogs, such as file open, file save, printing.Optional
SYSTEM\LZEXPAND.DLL Functions for file expansion and copying.Optional
SYSTEM\SHELL.DLL Basic services common to Windows 3.1 shell programs, such as
Optional
File Manager.
SYSTEM\VER.DLL Windows versioning API.Optional
SYSTEM\WIN87EM.DLL FloatingĆpoint emulator.Optional
SYSTEM\MMSYSTEM.DLL Multimedia extensions.Optional
SYSTEM\OLECLI.DLL Object Linking and Embedding client.Optional
SYSTEM\OLESVR.DLL Object Linking and Embedding server.Optional
SYSTEM\DDEML.DLL Dynamic Data Exchange.Optional
SYSTEM\TOOLHELP.DLL Debugging services.Optional
NORSHELL.EXE, the Windows shell replacement, provides system management
functions specific to NORAND handĆheld computers. NORSHELL.EXE, which
must be loaded in all Windows configurations, provides a method for launching
multiple applications when Windows startsĆfunctionality similar to that provided
by the standard Windows shells (Program Manager and File Manager).
Installation and Configuration
To install NORSHELL.EXE as the Windows shell program, edit the shell=" line
in SYSTEM.INI to
SYSTEM.INI:
shell=norshell.exe
To configure NORSHELL.EXE, make the following entries in the [WINDOWS]"
section of the WIN.INI Windows initialization file:
" NorShellRun
Add the NorShellRun=<application command line>" line to WIN.INI to
launch an application. Specify command line switches if required.
" NorShellRunDir
If you need to specify a startup drive and directory for an application, add
the NorShellRunDir=<drive:directory>" line to WIN.INI. NORSHELL
changes the default drive and directory, as needed.
" NorShellLaunch
Note that NORSHELL does not interpret the run=" and load=" lines in
WIN.INI to avoid conflicts with other Windows shell programs. For
example, you might want to use the Windows File Manager as your
application and have it process the WIN.INI run=" and load=" lines.
If you do need to launch several utilities or applications before starting a
particular application, add a NorShellLaunch=<program list>" line to
WIN.INI. This line is formatted identically with the run= line used by
the standard Windows shell programs. The programs are run in the order
they appear and are displayed with the SW_SHOWMINIMIZED setting.
(See the Windows 3.1 documentation for the ShowWindow function.)
shell=norshell.exe", as shown in the following example:
Applications
3. Windows
NORSHELL WIN.INI Example
All examples in this section assume the SYSTEM.INI entry documented in the
preceding paragraphs. The WIN.INI example shows running an application,
MYAPP.EXE," after changing to drive C" and directory \app." The Windows
clock and calculator programs are executed before running the application.
Windows shuts down automatically when the shell program exits. However,
because NORSHELL does not exit, it shuts Windows down when it detects that
the application from the
NorShellRun line no longer exists. An application may
shut down Windows on its own by calling the Windows 3.1 ExitWindows
function. This is the preferred method.
Windows Power Management Driver
The NORAPM.DLL driver provides a Windows interface to the APM BIOS
extensions. The driver's functions include the following:
" Idling the CPU when Windows has nothing to do.
" TimingĆout the backlight and suspending the computer after periods of user
inactivity.
" Warning the user about critical power management events, such as low
batteries, unless an application wants to take over that responsibility.
" Broadcasting APM event codes to Windows applications and drivers and
DOS TSRs.
" Providing a Windows API for APM functions, such as setting and getting
the power state of system components.
The NORAPM.DLL version number is logged into the NORAPM.DLL= entry in
the [boot.description] area of the SYSTEM.INI file each time Windows is started.
SECTION 3Supporting Windows Applications
Applications
3. Windows
Installation and Configuration
NORAPM.DLL is a Windows 3.1 installable driver. The APM 1.1 BIOS
extensions are required to be installed before Windows is started. The APM
BIOS (that NORAPM needs) may come from the builtĆin system BIOS or from a
separate DOS TSR, NORAPM.EXE, which must be run before Windows is
started. To install NORAPM.DLL:
Place a keyword (e.g., power) on the drivers=" line, and add a line to the
[drivers]" section of SYSTEM.INI, equating that keyword with the actual
path to the power management driver. However, if this path is included in
the DOS path, then use the name of the power management driver,
NORAPM.DLL. Also, the power management keyword should be first on
the drivers=" line.
The following is an example of a section of the SYSTEM.INI file, showing a
typical installation.
[boot]
drivers= power pen penwindows scanner npcp irda
[drivers]
power=norapm.dll
pen=norpen.dll
drivers= Tells Windows to load the installable drivers. This list of drivers is the
standard set (and organized in the exact order shown in the example above).
The significant drivers here, are power and pen. These are token names for the
drivers. The actual driver names are defined in the
SYSTEM.INI file (e.g., power=, pen=, etc.).
power= Tells Windows the actual name of the installable Power Management
driver named in the [boot] section of the SYSTEM.INI file (listed above).
pen= Tells Windows the actual name of the installable Pen driver named in the
[boot] section of the SYSTEM.INI file (listed above).
"
NOTE:Do not load the DOS Power Management driver, NPOWER.EXE, if the 6300 Computer is
running Windows.
NORAPM.DLL supports the SYSTEM.INI entries described in the following
paragraphs. Place the entries in a SYSTEM.INI section entitled
Driver]". Note that case is not important.
ApmSuspendDialog
[Power
Valid values:0, 1
Default value: 1
When you press the suspend/resume switch (I/O switch), NORAPM.DLL polls all
the drivers and programs in the system with a USERSUSPEND message to
determine whether it is OK to suspend. This configuration entry determines
whether or not NORAPM.DLL displays a dialog if an application or driver
refuses to suspend. If this entry is not present, the default setting is 1.
0Do not display any dialogs if the user suspend request fails. It is assumed that the
system component that fails the request either notifies the user on its own or susĆ
pend the system itself after finishing whatever critical activity it was involved in.
It is very impolite to ignore the switch press and not give the user some feedback.
1NORAPM.DLL notifies the user that the suspend request failed by displaying a
message in a dialog box. Execution continues after the user presses an OK button.
ApmEventDialogs
Valid values:0, 1, 2, 8, 10, 15
Default value: 1
This configuration entry indicates the APM events that causes NORAPM.DLL to
display a dialog. If this entry is not present, the default setting is 1. Note that
each dialog level includes all the messages from the levels below it.
0Display critical errors only. This setting is appropriate when an application
wants to control the timing and presentation of power management event
notification. The application catches the WM_POWER" messages broadcast by
NORAPM.DLL and deal with them accordingly. Errors are still displayed by
NORAPM.DLL.
1Display dialogs only for APM warnings, such as battery status. (See
MsgRepeatMinutes) This is the driver default.
2Display dialogs for warnings and informational messages that appear frequently,
such as suspend/resume, etc. This is a debugĆmode switch.
8A debug setting that displays frequent nonrepeating messages.
10A debug setting that displays frequent repeating messages. This setting causes
messages to appear at a steady interval.
15A debug setting that causes the system to beep when it detects system activity or
charge. This can determine whether the power management software is
detecting activity correctly in order to hold off power management timeouts.
When ApmEventDialogs=1 , warning dialogs are displayed. The
MsgRepeatMinutes entry indicates the interval at which the warnings should be
repeated, if the warning condition remains. The default value is one minute
when this switch is not present. A value of zero causes the messages to display
every time the warning condition is checked.
SuspendSeconds
Valid values:0 to 65535
Default value: 60
Sets the suspend timeout length by indicating the number of seconds that must
pass with no user or system activity before the system automatically suspends.
A value of zero disables suspend timeouts.
Applications
3. Windows
BacklightSeconds
Valid values:0 to 65535
Default value: 30
Sets the display backlight timeout length by indicating the number of seconds
that must pass with no user (pen or keyboard) activity before the backlight is
turned off. A value of zero disables backlight timeouts.
ApmAcDebouceMs
Valid values:0 to 65535
Default value: 1000
This entry sets the debounce period for power change broadcasts, which typically
occur when the unit is inserted into or removed from the dock. The debounce
period starts after a power change is seen and ends when no further power
changes are seen for the debounce period. This should not need adjusting.
ApmDosOemEvents
Valid values:0, 1
Default value: 1
This entry disables the broadcast of APM events (defined by us) to DOS drivers
and TSRs. Windows drivers and applications are not affected. This disabling is
done to sidestep broken behavior in some DOS TSRs and drivers that monitor
power management event broadcasts, specifically the current PC Card
management software from SystemSoft.
DOS drivers examine only the lower eight bits of the event ID. OEMĆdefined
events are 16 bits, so the broken DOS drivers misidentify the events. This entry
defaults to 1 if not present, but sets it to 0 if using the SystemSoft PC Card
drivers. Also, if the
ApmFixSystemSoft entry is set to 1, this entry is forced to 0.
This entry enables the workarounds required by the current SystemSoft PC
Card software. This switch makes the following changes to standard APM 1.1
behavior:
SUSPEND event notifications to DOS convert to USER_SUSPEND events.
Windows drivers and applications are not affected.
This entry defaults to 0 if not present but set it to 1 if you are using the
SystemSoft PC Card drivers. This procedure is applicable until further revisions
of the SystemSoft drivers are made available.
ApmDebugOutput
Valid values:0, 1
Default value: 0
Setting this entry to 1 causes NORAPM.DLL to output debug messages to the
Windows debug port. Uses the OutputDebugString() function. You can view
output by hooking up a serial debug terminal or by running the DBWIN.EXE
utility shipped with the Windows 3.1 SDK. See the SDK documentation of the
Windows 3.1 kernel debugger for details (chapter 5 of SDK Programming Tools
manual). Debug output is not intended for use on production systems.
EXAMPLE:The following lines are an example of SYSTEM.INI:
[Power Driver]
ApmEventDialogs=1; Display warnings only (typical)
MsgRepeatMinutes=15; Repeat war nings ever y 15 minutes
BacklightSeconds=15; Timeout backlight after 15 seconds of inactivity
=30; Suspend sy st em after 30 sec onds of inactivity
User Messages and Alerts
" Installation error
" Battery Status and Failure
" APM Events
" Audible Alerts
Message Window
All user messages appear in a fullĆscreen window and are accompanied by an
audio alert, usually a simple beep. The message window contains one button
labeled Continue. Pressing this button (or pressing the space bar) causes the
message window to close or to display the next waiting message. The message
window is an alwaysĆonĆtop window. Periodically it repositions itself at the top of
the window stack. If you need to see the underlying windows while a message is
displayed, move the message window temporarily by dragging the title bar.
The following messages may be displayed in a dialog box if errors occur while
NORAPM.DLL is initializing:
" APM BIOS not found!
" Could not connect to APM BIOS!
" Could not disable APM BIOS!
" Could not allocate a timer for polling APM BIOS!
" Could not enable power management of serial ports!
" Could not load multimedia extensions!
" Could not install system activity monitor!
Battery Status
The following messages are displayed in a dialog box when the warning
condition occurs. These messages are not displayed again until the interval set
by the MsgRepeatMinutes entry in SYSTEM.INI (page 3Ć10) is reached and the
condition persists.
" Main battery is low!
" Only <0 . . 60> minutes of battery life remaining!
" Only <0 . . 60> seconds of battery life remaining!
" Power failure!
" Dead or missing backup battery!
Applications
3. Windows
Suspend Errors
These messages appear in a dialog when you press the suspend/resume switch
and the system cannot suspend, because external charge is present or because a
Windows application, driver, or DOS TSR refused the suspend request.
" System does not suspend while charge is applied
" An application or driver is refusing to suspend
Event Messages
The following messages appear in a dialog box whenever the ApmEventDialogs
entry in SYSTEM.INI (page 3Ć11) is set to 2" or above. These messages are
intended for power management debugging. See the Standard APM Event Codes
paragraph, on page 3Ć16, for APM event code descriptions.
NORAPM.DLL can alert you to various system events either by issuing beeps or
by playing Windows 3.1 WAV" audio files through the system speaker. If WAV
files are to be played, you must Install the Windows 3.1 multimedia extensions.
See Installing Windows Multimedia Extensions, page 3Ć28.
NORAPM.DLL can issue an audible alert whenever it detects a change in the ac
online status. For example, this kind of status change occurs when the HHC is
inserted into or removed from the dock or when a wall charger is connected or
disconnected. NORAPM debounces the status change for approximately two
seconds before issuing the alert. Note that some systems delay notification of
power changes for up to ten seconds. Alerts could therefore take up to about 12
seconds to sound on these systems.
If you want to attach multimedia audio alerts (WAV files) to ac status changes,
insert the following entries into the
configuration file.
These entries identify the WAV files that play when ac online status changes
occur. If an entry is blank or missing, the default system beep is substituted. If
WAV files are to play, Windows 3.1 multimedia extensions must be installed.
Windows Background Power Management
As the APM operating system driver, NORAPM.DLL cooperates with the APM
BIOS to save as much power as possible without application or driver
intervention. This arrangement lets you build a system with reasonable power
consumption without having to create powerĆaware drivers and applications.
You can often achieve even better power management by cooperating with
applications and drivers. See Power Management Programming Interface forWindows, on page 3Ć17, for details.
Windows Power States
Four power states are currently implemented in Windows by NORAPM.DLL.
Each state may see the system as a whole or to individual devices, such as a
LAN interface or a serial port. However, unless otherwise specified, the terms
for these states see the entire system.
" On
System or peripheral device is running at full speed.
" Idle
System or device is placed in a lowĆpower state from which it returns when
activity occurs. For example, the CPU is idled between hardware
interrupts.
" Off
System or device is powered completely off. It loses all volatile state
information and does not respond to any external events until power is
reapplied. This state is not typically supported for the system itself in
NORAND products, because the Suspend state draws so little power. Some
peripheral devices, however, may support this state.
System or device is placed in a lowĆ or noĆpower state from which it cannot
resume without special system or user intervention (button press, etc.). All
volatile state information is maintained; most external events are not
detected. Also, events detected during suspend typically resume the
system; they may not be processed. For example, a suspended system may
be configured to resume when an RI is seen on a PC Card modem.
However, the first ring might just wake the system up and might not be
detected by the communications software. The second ring would probably
be seen by the software because time had elapsed for the system to resume
and continue processing.
CPU Power Management
NORAPM.DLL monitors the Windows task scheduler to detect the CPU idle
state. When the idle state is detected, the CPU and other components are placed
into a lowĆpower state until the next hardware interrupt occurs. The system
then returns to full speed to process the interrupt and any Windows events
created by the interrupt.
When an application is idle, 95 percent of the CPU current can usually be saved.
This saving is in addition to the power savings from other system components
that are idled or that consume less power because they are not being gated by
the CPU. See Power Management Programming Interface for Windows, page
3Ć17, for suggestions on maximizing power savings in an application or driver.
Applications
3. Windows
System Power Management
NORAPM.DLL attempts to save power by monitoring user and system activity.
User Activity
User activity consists of direct input from the user, such as keyboard or digitizer
input. The presence of user activity implies that user interface devices such as
the digitizer, keyboard, display, and backlight should remain active. (See the
BacklightSeconds entry on page 3Ć10.)
System Activity
System activity consists of user activity plus activity generated by ongoing
processing or communications. Examples of system activity, aside from user
input, are serial communications and direct calls made to the NORAPM
SystemActivity() function by busy applications. The presence of system
activity implies that the system is actively processing and may not be suspended,
although the user interface devices may be turned off if no user activity is
detected. (See the
NORAPM.DLL monitors the following types of activity. Monitoring is subject to
the configuration settings described in the preceding paragraphs.