" 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.
1996 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 is a registered trademark, and other CIC product names, service names, slogans or logos referenced are
trademarks or registered trademarks of Communication Intelligence Corporation.
Handwriter is a registered trademark 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.
SystemSoft is a registered trademark and CardSoft and CardID are trademarks of SystemSoft Corporation.
XMS is a registered trademark of Lotus, Intel, Microsoft, and AST Research.
PEN*KEYR 6100 Computer Programmer’s Reference Guide xi
Page 14
CONTENTS
xii PEN*KEYR 6100 Computer Programmer’s Reference Guide
Page 15
Preface
""""""""""""""""""""
Introduction
This section is intended to help you to navigate through the book, as well as othĆ
er useful topics to assist you in your development of your 6100 Computer.
Topic Summary
TopicPage
Scope1
Related Publications2
Look at What has Changed (from previous editions)2
The Structure of the Book3
this is an overview of how this publication is structured. If you are unfamiliar
with this Programmer's Reference Guide, this section could be of assistance in
getting around.
Locating Applications in this Book5
Lists several ways to locate information for any application described in this
book. There is a table showing all of the applications and where you can find the
descriptions of these applications.
Customer Support6
This paragraph provides the telephone numbers you may need if you discover a
problem or need assistance in developing applications for your 6100 Computer.
There is also a detailed list of the steps needed for access to the Intermec BBS.
PREFACE
Scope
The Contents (just previous to this section) and the individual Topic Summaries
(in each section in this publication) could be useful in assisting you in your
search for information in this book. For example, the Topic Summary in the
Supporting DOS Applications section would be helpful in locating the details of a
particular DOS application, because it provides the name of each DOS applicaĆ
tion and the page number where it is described.
The material presented in this publication pertains to the PEN*KEYR 6100
HandĆHeld Computer. A few paragraphs are common to the PEN*KEY 6000 SeĆ
ries Computers, in general. These differences are obvious by their use in the
text.
Flash Version 1.16
This publication has been updated for the drivers in flash version 1.16, but can
be useful for units containing later flash versions. Refer to your Tool Kit for the
latest information relating to the applications included in your version of flash.
The majority of this material is intended for experienced application programĆ
mers.
PREFACE
For the New User
If you need further instruction before delving into the more detailed sections of
this publication, then consider some of the available resources. The Reference,Open Systems Publications section lists several publications that could be useful
for additional research.
Also, Intermec Technologies Corporation provides training and support for purĆ
chasers of our products. Refer to the Customer Support paragraph, on page 6,
in this section.
Refer to Appendix B, Common PEN*KEY 6000 Series Information, for informaĆ
tion that may be of interest to new users. For example, the Memory Overview
and The Windows Environment paragraphs contain valuable information for new
users.
Related Publications
PEN*KEY Model 6100 HandĆHeld Computer User's Guide; P/N: 961Ć028Ć085.
Look at What has Changed (from previous editions)
Changes have taken place, in an effort to make this publication more usable and
to provide easier access to information. Obviously, some of you are already familĆ
iar with finding information in previous editions; this may cause you some grief.
However, please take time to become familiar with the new organization. These
changes are based on input from readers, and for the most part were implementĆ
ed to make the task of locating information easier for the reader. Unfortunately,
we made these changes in several steps. We apologize for that; however, as readĆ
ers tell us what works and what does not, we try to improve the reading environĆ
ment.
The following examples may help you to understand where (and why) some of
these changes have been implemented.
Recent Changes
System Information
The system reference information was originally located in several places in the
book; and some information was hidden in sections whose title did not reveal
what topics it contained. Therefore, the Reference section was split into two secĆ
tions, to provide more visibility to the material contained therein. The new secĆ
tion titles became: Reference, System Information and Reference, Open SystemsPublications.
With edition 2.0, all of the system information was moved into the Reference,System Information section. The title for the section (from which the system inĆ
formation was extracted) became: Communications and Device Support.
R
2 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 17
Preface
Interrupt Index
With edition 1.4, the alphabetical index for the interrupts is removed from the
end of the Conversions and Interrupts section, and relocated to the end of the InĆdex section, primarily because we changed to another desktop publishing proĆ
gram, which causes extra maintenance for an index to exist somewhere other
than the Index section. The title of that index is now: Interrupt Index, and is loĆ
cated at the very end of the book so you can easily find it.
With edition 1.4, the Interrupt Reference Table" was relocated to the Index"
section, under Interrupt Index". With edition 2.0, it was then reorganized so
you can find interrupts (alphabetically) by topic. The original order was by verb,
which I discovered was totally useless.
Reprogramming Flash Memory
This material is moved to the Getting Started section, since it is similar to the
types of information contained in that section.
Earlier Changes
Organization in General
When the 6100 Programmer's Reference Guide was first developed from the origiĆ
nal PEN*KEY Programmer's Reference Guide, a review by some representatives
of various Intermec departments agreed the organization needed to be changed.
Comments from readers (of the original manual) seemed to confirm that informaĆ
tion was hard to find.
PREFACE
Sample Configuration Files
This information is removed from the Getting Started section and relocated to
Appendix A, because it constitutes information to which statements in several
different paragraphs need to refer. It also simplified the task of updating this
information with each new edition.
Common 6000 Series Information
This information is collected from several places in the book and relocated to ApĆ
pendix B. This is necessary to preserve it from extinction. New users still need
some of this information. And placing it in the back of the book prevents experiĆ
enced PEN*KEY users from tripping over it.
The Structure of the Book
The following shows how this publication is structured. The topics listed below
consist of the actual names of the sections in this publication:
" Getting Started - contains information to help you to become familiar
with the 6100 Computer. It describes the 6100 open system environment,
the Tool Kit, tips for getting started, how to reprogram flash memory, how
to setup for development from the PC, and some development environments
and resources.
" Supporting DOS Applications - describes some DOS applications supĆ
ported for the 6100 Computer, as well as printing and power management
for DOS.
" Supporting Windows Applications - describes the minimal Windows
installation, the NORAND Windows shell, several Windows applications
that are supported for the 6100 Computer, printing and power manageĆ
ment for Windows.
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 3
Page 18
PREFACE
Preface
" Power Management - describes the Advanced Power Management (APM)
supported on the 6100 Computer as it relates to the APM BIOS, power
states, device power control, and firmware error codes.
" Communications and Device Support - describes the following:
" Communications Support: INTERLNK and INTERSVR,
NORAND Utilities, serial, and LAN communications.
" Device Support: an overview of the 6100 memory, including upper
memory management utility, keyboard definitions, and the 6100 disĆ
play.
" Conversions and Interfaces - the first part of this section is devoted to
porting 4000 applications to the 6100 Computer. The second part includes
a detailed Interrupt CrossĆReference and a list of interrupts, organized by
interrupt number. There is a white tab at the beginning of the second part:
" Conversions: this is a set of paragraphs applicable to converting
4000 Series applications for use on the 6100 Computer.
" CrossĆReference by Interrupt Numbers: provides a handy means
of locating interrupts, by the interrupt number.
" Interrupt Definitions: a comprehensive list of interrupts supported
for the 6100 Computer, including the definitions for using them.
" Reference, System Information - includes system hardware information
such as: messages, errors, IRQ and I/O maps, system variables, ROM DOS
5 operating system, and boot process.
" Reference, Open Systems Publications - includes a list of publications
which are referenced from other places within this document, or that may
be useful for developing applications for the 6100 Computer.
" Appendix A, Sample Configuration Files - provides examples of configĆ
uration files for your 6100 Computer.
" Appendix B, Common PEN*KEY 6000 Series Information - contains
information that is common to all (or most) of the PEN*KEY 6000 Series
Computers. This information could be useful to new users:
" Memory Overview: is an overview of the memory system and some
noteworthy design aspects of the PEN*KEY 6000 Series system.
" The Windows Environment: an overview of the way in which WinĆ
dows, BIOS, the applications, the drivers, and hardware all work toĆ
gether. It also includes an approach for determining the memory reĆ
quirements for the WindowsĆbased PEN*KEY 6000 Series systems.
" Index - a fairly comprehensive list of indexes to topics and items of interest
for the entire publication:
" General Index: includes all of the indexes within this publication,
except for the Files Index (below) and the Interrupt Index (below).
" Files Index: a fairly comprehensive index of the names of applicaĆ
tions and other files mentioned within this publication.
" Interrupt Index: an alphabetical index of all interrupts. These inĆ
dexes are alphabetized by nouns, as well as most verbs.
However, no indexing has been done for verbs such as: Read, Get, and
Set, which include so many interrupts they get in the way when
searching for other interrupts.
R
4 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 19
Locating Applications in this Book
There are several ways to locate the information for a desired application:
" The Contents (previous to this section) contains entries to all of the applicaĆ
tions documented in this publication.
" The Files Index lists most of the occurrences of each file name included in
this publication, including the application program names. All file names
are listed under the topic, Files:", in the Index.
" If you know whether a particular application is a DOS or Windows applicaĆ
tion, then you may find it either in the Supporting DOS Applications secĆ
tion or in the Supporting Windows Applications.
" The table, below, is another method of locating an application. It is proĆ
vided to assist you in locating the applications supported for the 6100 ComĆ
puter. The names of the applications are listed in the Application" column.
Next, the Description" column is the actual paragraph title where the apĆ
plication is described. And finally, the Section" column lists the section
where the application description is located.
Preface
PREFACE
ApplicationDescriptionSection
4000API.EXE4000 Series Programming InterfacesConversions and Interfaces
61MOUSE.COMDOS Pen DriverSupporting DOS Applications
61PODSCN.EXEDOS ScannerSupporting DOS Applications
61SCAN.DRVIntegrated ScannerSupporting Windows Applications
BOOTDRV.COMOther NORAND SoftwareGetting Started
CALIB.EXEOther NORAND SoftwareGetting Started
6100DISP.DRVOther NORAND SoftwareGetting Started
CRC32.EXETool Kit for the 6100 ComputerGetting Started
DELAY.EXEOther NORAND SoftwareGetting Started
ELANCFG.EXEELAN Configuration DriverSupporting DOS Applications
ELANAPM.EXEPower Management BIOSPower Management
ELANAPM.EXEPower Management BIOS InterfacesConversions and Interfaces
ELANUMP.SYSUpper Memory ProviderCommunications and Device Support
FONTSEL.EXE4000 Screen Emulation for the 6200Conversions and Interfaces
IRDAPDRV.SYSDOS IrDA PrintingSupporting DOS Applications
ISRAMDRV.COMOther NORAND SoftwareGetting Started
MININET.EXE6000 Series LAN CommunicationsCommunications and Device Support
MMBFLAG.COMOther NORAND SoftwareGetting Started
NORDOSPM.EXEDOS Power Management DriverSupporting DOS Applications
NORIRDA.DRVIrDA Printing for WindowsSupporting Windows Applications
NORMOD.SYSDocks and ModemsCommunications and Device Support
NORNPCP.DRVNPCP Printing for WindowsSupporting Windows Applications
NORSHELL.EXENORAND Shell for WindowsSupporting Windows Applications
NORWINPM.DRVWindows Power Management DriverSupporting Windows Applications
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 5
Page 20
PREFACE
Preface
ApplicationSectionDescription
PC4800.SYSDOS NPCP PrintingSupporting DOS Applications
PENALIGN.EXEOther NORAND SoftwareGetting Started
PENWIN.DLLPen for WindowsSupporting Windows Applications
PRDRV.SYSDOS IrDA PrintingSupporting DOS Applications
PSROM0C.EXENORAND UtilitiesCommunications and Device Support
RAMDFMT.EXEThe RAM DriveGetting Started
UCLKPEN.DRVWindows Pen DriverSupporting Windows Applications
VPOWERD.386Windows Power Management DriverSupporting Windows Applications
VROTATE.EXE4000 Screen Emulation for the 6200Conversions and Interfaces
Refer to the paragraphs and sections listed above for details of these applicaĆ
tions. Also, refer to the Development Resources" paragraph, in the GettingStarted" section, for details of applications listed as Other NORAND Software"
in the Description" column of this table.
Customer Support
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.
R
6 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 21
Preface
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)
319Ć369Ć3516 (28.8 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.
PREFACE
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 7
Page 22
PREFACE
Preface
R
8 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 23
Section 1
Getting Started
""""""""""""""""""""
Introduction
This section contains information to help you become familiar with your 6100
HandĆHeld Computer (HHC), so you can start building applications.
If you are not familiar with the structure of the PEN*KEYR 6000 Series ProĆ
grammer's Reference Guides, be sure to turn back to the introduction section and
read Structure of the Book and Locating Information.
PC Card Support including: NORAND Card and Socket services and
SystemSoft Card and Socket services
SanDisk Support1Ć21
Communications Using INTERLNK and INTERSVR1Ć22
RAM Drive1Ć23
Norand Utilities and Communications1Ć24
Other Intermec Software1Ć26
The 6100 Operating System consists of standard MSĆDOS, version 5.0, and WinĆ
dows, version 3.1.
One of the major benefits of this openĆsystem approach is that you can acquire
development equipment and software from many different vendors, including
Intermec Technologies Corporation. This provides you with wide latitude in seĆ
lecting 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 and/or Windows programming experience, you will quickly feel
comfortable with the PEN*KEY 6100 platform.
Introduction to the 6100 Computer
From the viewpoint of an application, the 6100 Computer is like other PCs (386
33 MHz), with some exceptions, as described below.
How the Hardware is Different
The 6100 Computer is a ruggedized, ergonomic, batteryĆpowered, touchĆbased
computer, with input from finger touch, stylus, keyboard, or scanner. It has inteĆ
grated communications and various combinations of external and/or internal peĆ
ripherals. It is designed for a mobile environment.
Processor
The 6100 Computer contains an AMD ELAN 386 33 MHz processor.
Display
The 6100 Computer features a backlit, LCD, touchĆsensitive display. The normal
mode is landscape, but most applications use a rotated screen (portrait mode).
The physical display is the size of a 1/4 VGA (240 x 320 pixels). However, it uses
a CGA controller.
User Input
The keyboard consists of a builtĆin numeric keypad with control keys. Much of
the user input is done using touch, pen, or barĆcode scanning.
R
1-2 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 25
SECTION 1Getting Started
Power Management
Advanced Power Management (APM) is critical. It contains one main battery
and one backup battery. This combination of software and batteries provides a
smart battery pack.
Beginning with flash version 1.11, the following features have been added to the
APM BIOS:
" Suspend/resume coordination (Suspend/resume key mapped to I/O key if
IO2SUS.COM is loaded):
" To work with NORAND Card and Socket services
" For radio integration
" Added OEM calls to match the portable APM specification
" Updated fuel gauging to support all pack types
" Updated idling functionality for lower runĆtime power
A new power management system (with version 1.15) has improved the capabiliĆ
ty of resuming or waking the terminal; and it is highly recommended for all 6100
Computers, and especially if you have a PC Card modem.
Batteries
1. Getting Started
B
CAUTION:This terminal has ONE primary power source, the MAIN Battery. The only function of
the Backup Battery is to maintain power to RAM while changing Main Batteries. 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 is used, even in suspend mode, to maintain RAM, RTC, and
CMOS settings. When the terminal 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 overĆ
night or for a long weekend. This presumes that it has a fully charged and funcĆ
tioning Main and Backup Battery.
"
NOTE:A discharged Backup Battery takes 14 hours to recharge. A discharged Main Battery takes 2
hours to recharge.
System Memory
System memory is provided via DRAM and Flash memory modules.
" Flash memory provides storage for executable and system files.
" For flash versions prior to 1.11, flash memory can be expanded up to eight
megabytes. It is expected that on a future release the flash will be availĆ
able in larger amounts.
" For flash version 1.11 and later, a 1 megabyte flash was used. Currently,
only a 1 megabyte configuration is supported.
"
NOTE:If you upgrade a system that had a flash version prior to 1.11, you will also need to upgrade
the flash. Refer to the Reprogramming Flash Memory instructions on page 1-7.
" DRAM can be expanded up to 16 megabytes.
" An MSĆDOS 5 RAM disk may be created out of DRAM for fast, temporary
storage of data and program files.
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 1-3
Page 26
SECTION 1Getting Started
Input, Output, and Storage Devices More Varied
PC Card
Two PC Card type II slots, or one type III slots are available. These slots are for
nonĆvolatile SRAM, flash or hard disk data storage, radio or land modems, or
other devices. System resources, which are available to the applications, may
also store on the flash drive.
"
NOTE:Throughout this publication, cards that conform to the PC Card interface standard (the new
standard), or the PCMCIA interface standard (the old standard), are commonly referred to
as: “PC Card”, or “PC Card xxxxx” (where xxxxx consists of “ modem”, “drive”, or other device type). This is done because PC Card is rapidly becoming the accepted industry term for
a storage medium that conforms to one of these standards.
1. Getting Started
Surface and Pin Connections
These connections support battery charge, printers, scanners, and other periphĆ
erals.
Infrared Printing
IrDA printing is also available.
Serial Data Communications
Communications takes place through standard UART ports.
Keep the System Environment in Mind
The 6100 system environment should be kept in mind, while writing applications
for it. The 6100 Computer has no external keyboard port, uses a flash memory
file system, and has a builtĆin VGA viewing screen.
Applications programmers need to remember the constraints listed previously,
and the flash file system is usually kept writeĆprotected, to prevent overwriting.
The Hardware Ports
For information relating to the communication ports, addresses, IRQs, and deĆ
vices supported for these ports, refer to the Reference, System Information section
of this publication.
T ool Kit for the 6100 Computer
The file complement in the Tool Kit for the 6100 Computer differs from one
release to the next. For an accurate list of Tool Kit files, refer to the
RELNOTES.TXT file, included in the Tool Kit distribution package.
The Tool Kit contains DOS and Windows resources for configuration, power manĆ
agement, communications, and peripherals. Tool Kits are available, as follows:
Part Number (P/N)Description
215-598-0016100 DOS (only) Tool Kit, WITH manual
215-597-0016100 DOS (only) Tool Kit, WITHOUT manual
215-600-0016100 DOS and Windows Tool Kit, WITH manual
215-599-0016100 DOS and Windows Tool Kit, WITHOUT manual
R
1-4 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 27
SECTION 1Getting Started
The files and documentation in the Tool Kit are available to purchasers of the
6100 Computer, who hold the following licenses:
" NORAND Operating System (P/N: 999Ć001Ć014)
" MSĆDOS and Microsoft Windows (P/N: 999Ć001Ć041)
" MSĆDOS (P/N: 999Ć001Ć042)
The DOS Tool Kit requires a DOS license only.
The 6100 Computer, as shipped from the factory, has preloaded flash memory
with the files required for booting and telecommunicating.
At a minimum, DOS 5.0 is preloaded In flash. To create the environment reĆ
quired by your application software, select any other system files needed from
the Tool Kit and copy them to the 6100 Computer.
The Tool Kit does not include application software. You may obtain such softĆ
ware from Intermec, from thirdĆparty suppliers, or you can 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 Tool Kit assume that you
will install all files on the RAM drive. Other methods of arranging files are posĆ
sible. And in some cases, this requires substitution of the appropriate drive letĆ
ter, in place of D:, for the RAM drive.
File Integrity Verification Utility: CRC32.EXE
The Tool Kit contains a utility, CRC32.EXE, for verifying the integrity of the files
provided on the Tool Kit diskettes. 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. Factory CRCs are found in the file CRC.ALL , also in the Tool Kit.
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 file to be processed. Wildcard processing is not
allowed (in the pathname specified after the @" symbol, nor any of the pathĆ
names within the argument file). A valid argument file has the same format as
an argument for the IPLFMT.EXE program.
1. Getting Started
/s indicates all subdirectories should be searched for matching file names.
@ is (optionally) included in front of the filename to indicate it is an argument
file, which contains names of files to be checked.
Refer to the RELNOTES.TXT file in the Tool Kit for the CRC values for each of
the modules used on the 6100 Computer.
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 1-5
Page 28
Tips for Getting Started
1. Getting Started
SECTION 1Getting Started
As applications are developed for the 6100 Computer (or port existing applicaĆ
tions), keep in mind the following basic considerations, ideas, and suggestions:
1.ROM DOS 5 is the operating system, with Windows 3.1.
2.Understanding how the system configuration files are used in the 6100 enĆ
vironment 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. FurtherĆ
more, 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. Instead, try to use buttons, item
lists, and pullĆdown menus for common tasks.
5.When designing a penĆcentric interface, use 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 designaĆ
tions. 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 the penĆoriented 6100 ComputĆ
er: flash memory file system, builtĆin CGA screen and keyboard, 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
Tool Kit for them. If not found there, try one of the Product Forums on the
Intermec BBS.
9.Finally, for development purposes you may consider using certain external
devices. Keep in mind whether these items are available (or practical) for
the application to use in the field.
System Configuration
Minimum Development Configuration
Note that the following paragraphs apply to the standard configuration for the
6100 Computer; but keep in mind that it can be configured to meet your specific
needs. Additional RAM can be obtained to bring total RAM to 2, 4, 8, or 16 MB.
The following configuration items are needed for a minimum development, exĆ
cept for items 4 and 5, which are only useful if you do not have a docking station.
1.PEN*KEY 6100 Computer, with two megabytes of system RAM for DOS (or
4 MB of system RAM for Windows) and 1 MB of flash RAM.
2.The DOS Tool Kit or the Windows Tool Kit for the 6100 Computer.
3.Main batteries: at least one.
4.One 2Ć or 4ĆMB SRAM card (see Note 1). 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 (see Note 2).
R
1-6 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 29
SECTION 1Getting Started
"
NOTE 1:SunDisk has been changed to SanDisk.
"
NOTE 2:The 6100 Computer supports SRAM PC Cards natively — meaning, no extra device driv-
ers to load. However, SanDisk cards are not supported through the 6100 BIOS and thus,
need Card and Socket services to be loaded before they can be used.
5.PC Card reader/writer (for example, DataBook card readerĆwriter or noteĆ
book computer that can read/write PC cards).
6.Cable for connecting 6100 Dock to a PC (NULL modem cable).
7.If printing is needed, cable for connecting dock to serial or 4815 Printer.
8.Single dock or wall charger.
Sample Configuration Files
The configuration files, CONFIG.SYS and AUTOEXEC.BAT, are required for an
appropriate environment for the 6100 Computer.
Some examples of configuration files, used to configure the 6100 Computer for
DOS or Windows, are detailed in Appendix A, Sample Configuration Files.
Reprogramming Flash Memory
"
NOTE:Always keep the 6100 Computer on charge while performing any setup, reprogramming, or
reflashing.
Updating to Flash Version 1.16 or Later
If you have a flash version older than 1.16, it is highly recommended that you
obtain an upgrade to the latest version of flash.
A selfĆextracting executable archive file, found in the Tool Kit contains the entire
flash load. Run this executable from a temporary directory on a desktop PC. AfĆ
ter running the executable, a file is produced that explains how to reprogram the
flash (which is essentially the same information presented here).
1. Getting Started
The selfĆextracting archive also contains 61FL1000.BIN, the 6100 Initial Flash
Load (IFL) card image, and PROG.BAT, an automatic reflashing batch file.
These two files create an IFL card, which in turn installs the flash image on
6100 Computer.
"
NOTE:If you are updating from an older flash to version, and you have an 8 MB system, you must
format the RAM drive to a size of zero. Otherwise the system may lockup. The only way to
recover from this, once it occurs, is to remove the DRAM board.
DOS Configurations
Yo u must change the following:
" All system files should be accessed from drive D:
" for IRDAPDRV, remove the -b??? switch and add the -x switch
" for ELANCFG.EXE, remove the /C /R switches.
" ELANCSSS.EXE is needed, no matter what kind of card you have
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 1-7
Page 30
1. Getting Started
SECTION 1Getting Started
You now have the option to change the following:
" You can replace CardSoft drivers with NORCS drivers
" ATABIOS.SYS is needed for SanDisk support
" NORATA.SYS is needed for SanDisk support
" NORMOD.SYS is needed for modem card support
" ELANCFG.EXE, you can set the /L switch to a value greater than one.
Windows Configurations
Yo u should change the following:
" Power driver to NORWINPM.DRV
" EMM to exclude range C000 to C3FF (if using NORCS drivers)
" Pen driver from UCLKPEN.DLL to UCLKPEN.DRV
You need to remove the following:
" SystemSoft drivers (if you are using NORCS drivers)
" MMSYSTEM.DLL
" all .WAV files (optional)
Prerequisites for IFL Card Creation
The following items are required for creating an IFL card:
" Disk file 61BCxxxx.EXE contains the new flash archive. The first two charĆ
acters of the filename indicate the model number for the hardware configuĆ
ration of the 6100 Computer. The next two characters indicate the upgrade
configuration. For example, BC means Boot Card (IFL) version. The last
four characters indicate the version of the flash. For example, 0116 would
indicate flash version 1.16.
" A 2Ćmegabyte (or larger) SRAM card with battery installed.
" A PC Card reader/writer adapter (drive) for a standard PC, together with
the associated software, or a PC that can access PC Cards.
" A standard PC for use with the PC Card reader/writer or a PC that can acĆ
cess PC Cards. If the card drive is an external unit, you can use a laptop or
notebook computer.
" The PROG.BAT utility and the 61FL1000.BIN.
Creating a Master Mode Boot (IFL) Card
Use the PROG.BAT utility, included in the release package, to copy the IFL card
image to the SRAM card by entering the following at the DOS command prompt:
PROG 61FL1000.BIN d:
where d" is the drive letter of the PC card drive. This command copies the conĆ
tents of 61FL1000.BIN to the SRAM card in the format needed to perform a
master mode boot. After successfully creating the IFL card, writeĆprotect it.
"
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 (which is part of
the PROG.BAT process) is designed to place every byte in a specific location on the media;
these DOS commands are not.
"
NOTE:The PROG.BAT file performs a write operation followed by a verify operation. It is possible
for the write operation to succeed and the verify to fail. This is particularly true when using a
DataBook TMD–500–03. If you are using such a card drive, this problem can be corrected
by downloading updated drivers from the DataBook BBS.
R
1-8 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 31
SECTION 1Getting Started
Updating PEN*KEY 6100 Flash
Preferred Approach
To boot the IFL card, place it in drive B (this is the drive closest to the display),
then press the Reset button.
Follow the prompts on the display to update the PEN*KEY 6100 Flash. To
verify that you have updated the Flash, look for PEN*KEY 6100 FLASH
61FL1000" and the current version number on the top line of the display when
starting from the ROM drive D. See the release notes for information on
changes in this version of Flash.
Master Mode Boot Approach
It is possible to boot an IFL card even if the flash in your PEN*KEY has never
been programmed or has been corrupted. Use this procedure if the preferred apĆ
proach above does not work.
To perform a master mode boot, insert the IFL card in drive B. Then, press and
hold the Suspend/Resume key(I/O), while holding down the reset button. The
screen displays Master Mode Boot" for a few seconds, while performing the
memory test. (If you do not see Master Mode Boot", try to reset again.)
Follow the prompts on the display to update the PEN*KEY 6100 Flash. To
verify that you have updated the Flash, look for PEN*KEY 6100 FLASH
61FL1000" and the current version number on the top line of the display when
starting from the ROM drive D. See the release notes for information on
changes in this version of Flash.
1. Getting Started
Creating a Custom Flash
If necessary to create a custom flash for an application, a flash customization
utility is available. Use the following procedure to create the custom flash:
1.Obtain the flash customization utility from the BBS 6100 forum. If you do
not have access to this, contact your field technical support person to forĆ
ward it on to you. This is a .zip file that has the file structure of the flash
plus the BIOS files that need to be built into the image.
2.Extract this file with PKUNZIP using the -d option to a subdirectory on
your hard drive, such as C:\6100\CUSTOM\. A subdirectory, FLASH, has
been created. This is where you can modify files, add files and subdirectoĆ
ries, and delete files.
"
NOTE:Be aware! DO NOT attempt to add files beyond the 1 MB limit for disk space on the 6100
Computer. This does not check disk space for you.
For recommendation on usage of necessary power drivers to be loaded in
the boot files, refer to the Power Management section, of this publication.
It would be a good idea to modify the first line of the CONFIG.SYS with
some comment about the version of your custom flash for easy reference.
3.Once the files in the FLASH subdirectory are the way you want them, run
the RELEASE.BAT file in the root directory. This creates the file,
61FL1000.BIN. This is the image of the master mode boot program.
4.Using the included PROG.BAT batch file, program a 2M or larger SRAM
card with the file, 61FL1000.BIN. This is located in the BOOTCARD subĆ
directory in the flash on your 6100 Computer. For example,
5.Now, place the 6100 Computer on EXTERNAL CHARGE. (Or verify that
the battery is fully charged) This is a very important, because you canĆ
not afford to lose power during this procedure.
6.Place the 2M SRAM card in the front slot (B:, the slot closest to the display)
and press the reset button.
7.The 6100 Computer will boot from the card, and ask you to verify that you
want to reflash the terminal. Once you press `3', the unit will reflash.
When it is done, remove the card, and press the reset button again.
8.Verify that your new flash has been loaded.
While RELEASE.BAT program is running, the file, 61FL1000.BIN, is created by
IMAGE.EXE. Use the information below to configure your custom flash.
Imager for DOS, Version 2.2
Creates or modifies a disk image file.
IMAGE imgfile [switches] [filelist]
imgfile and the pathname of the image to create or modify.
When creating a new file, specify the format and size using the switches below:
/BOOTSEC=pathname
Specifies the pathname of a binary file used to define the logical boot sector. If
this switch is not specified, a DOS 5.0 compatible boot sector with English error
messages is supplied.
/DATE=mm/dd/yy[yy]
When this switch is used, all files and subdirectories have their datestamp set to
the supplied value. This switch does not affect the corresponding timestamp. If
this switch is not supplied, the datestamp for all files and subdirectories is copied
from the source and the datestamp for the volume label is set to today's date.
/FATS=[1|2]
Normally DOS allocates two file allocation tables (FAT) as does this program. To
conserve space in the image file, use one FAT instead of two.
/FILES=n
Specify how many files can be stored in the root directory.
Defines which disk format to use within the image. The default format is 720K.
/LABEL=[“]volume name[”]
Defines the disk volume label. If not supplied, the image has no label.
/ORG=n[[K[B]]
This switch changes which cluster is to next store data. All format parameters
specified after an ORG switch are ignored.
/SPC=n
Specify how many sectors per cluster to use.
R
1-10 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 33
SECTION 1Getting Started
/TIME=hh:mm:ss
When this switch is used, all files and subdirectories have their timestamp set to
the supplied value. The corresponding datestamp is not affected. If this switch
is not supplied, the timestamp for all files and subdirectories is copied from the
source and the timestamp for the volume label is set to the current time.
/VOLSER=xxxx[–]xxxx
Defines the volume serial number to be placed in the logical boot sector of the
disk image. If this switch is not supplied a pseudoĆrandom volume serial number
is generated.
@pathname
Since the DOS command line is limited to about 128 characters, this switch proĆ
vided so that switches may be specified in a file.
pathname (with wild card characters)
Any parameter other than those specified above is treated as a pathname of files
that should be added to the image. When a subdirectory name is supplied, the
entire subdirectory tree is added to the image. All format parameters specified
after a pathname are ignored. Note that the only way to create a subdirectory is
to add a subdirectory that has children subdirectories.
1. Getting Started
(a final comment)
DOS environment variables can be used either on the command line or within an
argument filename simply by enclosing the environment variable in percent
signs as in .BAT files. For example %TEMP% evaluates to the current value of
the TEMP environment variable.
Key Files Used in the Flash Upgrade Process
The following files are necessary for reflashing a 6100 Computer:
" FLASH.EXEWrites data to flash
" FLASH.BINFlash image that goes into flash
Development Environments
The following development environments are supported on the 6100 Computer:
Microsoft DOS 5.0
" PenPal (DOS), by PenPal Associates, Inc.
" PenRight! Pro (DOS), by PenRight Corporation
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
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 1-11
Page 34
1. Getting Started
SECTION 1Getting Started
DOS
The 6100 Computer can run any mouseĆaware DOS program using only DOS.
The Tool Kit provides a DOS mouse driver (61MOUSE.COM), and is used with
any mouseĆaware application, meaning the program runs in landscape mode.
Screen rotation can be handled several different ways. Two examples are:
" Using VROTATE.EXE and FONTSEL.EXE
" For Borland graphics, using the BGI driver (for more information on this,
refer to the DOS Pen Calibration paragraph, in the Supporting DOS ApĆ
plications section, and the BGI Support paragraph, in Appendix A, Sample
Configuration Files)
PenDOS Handwriter Recognition System
CIC's PenDOS Handwriter Recognition System is a DOS application. It is not
included in the Tool Kit. A license for CIC's PenDOS (specific to the PEN*KEY
6000 Series computers) can be obtained through Intermec. To order PenDOS,
contact a 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 a 6100 ComĆ
puter. PenPal handles dBase, ASCII, and text files.
"
NOTE:PenPal Associates no longer provides enhancement support for PenPal in the environment in
which PEN*KEY 6000 Series Computers operate, except for bug fixes. This means if you
continue to use PenPal with the display configuration in which your 6100 Computer was
shipped, it continues to serve you well; but, if you want to use PenPal with a different display
configuration, PenPal Associates will not necessarily provide you with a version that works
with your configuration.
For an example of setting up PenPal (DOS), refer to the Setups for Third Party
Applications paragraph, in Appendix A, Sample Configuration Files.
PenPal runs with CIC's Handwriter for PenDOS, or with no recognizer. With no
recognizer, signature capture is available and character recognition is disabled.
PenPal runtime licenses (specific to the PEN*KEY 6000 Series computers) can
be obtained through Intermec. To order PenPal runtime licenses, contact a InĆ
termec sales representative. PenPal development packages can be ordered from
the manufacturer, PenPal Associates.
For an example setup for Handwriting Recognition System, refer to paragraph,
Handwriting Recognition Setup, in Appendix A, Sample Configuration Files.
PenRight! Pro (DOS)
PenRight! is a development environment that also includes screenĆdrawing capaĆ
bility, as well as C code. These tools make it possible for an experienced C proĆ
grammer to add extra functionality to an application. PenRight! Pro was also
developed specifically for mobile systems, and creates programs of a manageable
size for a 6100 Computer. PenRight!, which is slightly harder to use than PenĆ
Pal, has dBase support, as well as ASCII text files. PenRight Pro! development
kits can be obtained through the manufacturer, PenRight!.
For an example of setting up PenRight! (DOS), refer to the Setups for ThirdParty Applications paragraph, in Appendix A, Sample Configuration Files.
R
1-12 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 35
SECTION 1Getting Started
Windows
The 6100 Computer can run any mouseĆaware Windows application. Note that
the Windows configuration provided by Intermec is not a fullĆfeatured Windows.
You may find that files you need have not been included. Add the files if needed.
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 opĆ
tion is provided by a product from Communication Intelligence Corp. (CIC); the
other option is provided by a product from Synaptics. For descriptions, refer to
the CIC Handwriter Recognition System for Windows paragraph and the SynapĆtics Handwriter Recognition HRĆ1200 paragraph, on page 1Ć13.
If signature capture (bit maps) is required, but handwriting recognition is not
required, this can be done with regular Windows. Simply 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 ProfesĆ
sional Edition has an example of catching ink" in this way. The extra files for
enabling the Pen Extensions are provided in the Tool Kit.
1. Getting Started
Standard and Enhanced modes for Windows are discussed the in Memory OverĆ
view 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:
Manufacturer: Communication Intelligence Corp. (CIC)
Software: Handwriting Recognition System for Windows
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, about 720K bytes 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 is a more limited recognizer. It requires only one file to be installed,
which is about 200K bytes in size.
It can run in standard or enhanced mode Windows. It only recognizes handwritĆ
ing in boxed or hashed edits, which are Pen Windows controls.
Boxed edit (bEdit) looks similar to the following, and each letter goes in a box:
Hashed edit (hEdit) looks similar to the following, and each letter goes in a slot:
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 1-13
Page 36
1. Getting Started
SECTION 1Getting Started
A Pen Extensions for Windows program, PENPAL.EXE, (or Pen Palette) makes
use of the hashed edit, and can enable applications that are not written for handĆ
writing 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 on the fourth diskette of the Tool Kit.
Pen Extensions for Windows
Pen Extensions for Windows consists of standard Windows with extra files, 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.
Keyboard Options
Even though the onscreen keyboard, SKB.EXE, from Microsoft Windows for Pen
Computing is available in the Tool Kit, it is too wide for the PEN*KEY 6100 porĆ
traitĆsize screen. If you need an onscreen keyboard, you could write your own
keyboard application or consider ordering another keyboard application that
runs in portrait mode.
The Configurable PEN Popup Keyboard from Intermec is one that is suitable for
portrait screens, and was created to provide a universal means of enabling keyĆ
intensive operations for any of the NORAND pen computers (such as the 6100
Computer). It runs on any Windows 3.1Ćcompatible system that supports Pen
Windows. It is totally configurable and uses a tabbedĆnotebook metaphor, where
each notebook tab represents an independent, configurable subĆkeyboard. A file
(.INI) configures the keyboard. The keyboard kit contains default .INI files for
several of the PEN*KEY 6000 Series Computers, including the 6100 Computer.
The keyboard automatically creates the proper number of tabs based upon the
contents of the .INI file. The legends that appear on the tabs are userĆdefined.
The tabbed notebook metaphor permits a large, complex keyboard to be subdiĆ
vided in any way desired, which minimizes the screen space required when the
keyboard is active. All Windows key functions are supported except for multiple
shifts (e.g., Ctrl+Alt+F1). For each keyboard you can specify the Windows font,
basic key cell size, key layout, any combination of doubleĆwide and doubleĆhigh
keys, the legend displayed on the key for normal, shifted, AltĆshifted, and CtrlĆ
shifted operation, and the key sequence that is sent to Windows. This means
that the keyboard can be configured to send macros of up to 255 characters each,
each of which can be sent by pressing a single key.
The User's Guide and software comes in one package using the following part
number: P/N 215Ć601Ć001. See your Intermec sales representative for informaĆ
tion on licenses and pricing.
Microsoft Visual Basic for Windows
Microsoft Visual Basic (VB), for Windows, is an easyĆtoĆuse tool that lends itself
to quick creation of prototype screens for customer demos and reviews. It inĆ
cludes screen drawing plus an easy method for inserting code to control the apĆ
plication. 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.
R
1-14 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 37
SECTION 1Getting Started
When you encounter a Visual Basic program, you should be aware of some comĆ
mon requirements.
" All Visual Basic applications require VBRUNxxx.DLL, where xxx correĆ
sponds to the version of Visual Basic used to develop the application (e.g.,
VBRUN300.DLL is required for applications developed under VB V3.00).
" Files with the VBX extension are Visual Basic custom controls. These files
support common features (such as command buttons, list boxes, pen edit
boxes, dataĆaware controls, etc.) that are frequently seen in Windows apps.
They are typically distributed with the application that requires them.
" Programs written in Visual Basic V4.0 or higher must be compiled in 16Ćbit
mode; PEN*KEY 6100 Windows does not support 32Ćbit mode programs.
"
NOTE:Be aware that the 6100 Computer is a 386-based system. Performance with Visual Basic
may be an issue, especially with the latest Visual Basic offerings.
Borland Delphi for Windows
Delphi is a Borland product that allows quick application development with PasĆ
cal support.
1. Getting Started
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 operĆ
ating systems, may potentially be used to develop software for the 6100 ComputĆ
er. However, not all of the development environments will necessarily work as
well, nor are they recommended. This is mainly, because of size and speed limiĆ
tations of the 6100 Computer.
Some Screen Considerations
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 6100 Computer. You need to make
changes in the SYSTEM.INI file for correctly aligning the pen. Look in the [PenDriver] section of SYSTEM.INI. Refer to the 6100 forum on the BBS for more
details and a sample configuration.
Some Keyboard Considerations
Even though the onscreen keyboard from Pen Windows (SKB.EXE) is available
in the Tool Kit, it is too wide for the portraitĆsize screen on the 6100 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 either
write your own keyboard application or consider ordering another keyboard apĆ
plication.
You might want to consider the Configurable Pen Popup Keyboard available
from Intermec, for an extra charge. The part number for this product is P/N
215Ć601Ć001. Documentation is included.
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 1-15
Page 38
1. Getting Started
SECTION 1Getting Started
Some System Guidelines
There are other usable development environments. Here are some guidelines
that can help to determine whether a particular environment is viable for a 6100
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 handĆheld 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 three
megabytes of DLLs in addition to Windows just to run the Hello World proĆ
gram. 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 inforĆ
mation is stored as separate files, you will 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 6100 Computer uses a 33 MHz 386 processor. Test the performance of
your application on a comparable computer.
"
NOTE:A typical development machine (60 100 MHz 486) hides some speed issues that is evident
on a slower 386 machine.
Setup for PC Development
"
NOTE:Always keep the 6100 Computer on charge while performing any setup.
The following steps outline a general approach for equipment setup:
1.Connect power to the single dock.
2.Connect a NULL modem cable between the dock and a serial port on the
desktop or portable PC.
3.If the PC Card slots contain cards, remove the cards.
4.Install the main battery.
5.Insert the 6100 Computer into the dock.
6.As the 6100 Computer starts the boot process, you will hear one of the
following beep signals:
" one beep: boot files are moved into shadow RAM from an SRAM card
in drive B: (master mode boot cycle)
" two beeps: shadow RAM receives files through a download process
through a communications port.
" three beeps: shadow RAM receives files from flash memory.
7.Verify that the 6100 Computer has booted. It should show a box with
NORAND UTILITIES" at the top.
If this is not the case, then press the reset switch on the 6100 Computer.
The reset switch is located under the top lid, to the left of the PC Cards,
near the front eject button (slot 1). For a diagram showing the location of
the reset button and PC Card drives, refer to Figure 1Ć1, page 1Ć17.
R
1-16 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 39
SECTION 1Getting Started
8.After the initial double beep, hold the [I/O] key down until the following
ROM DOS 5 Start from" menu comes up.
ROM DOS 5
Start from:
1) Memory card 1 =A:
2) Memory card 2 =B:
3) RamDrive =C:
4) RomDrive =D:
9.Press the 4" key to choose option 4. The 6100 Computer should boot to
the Norand Utilities screen.
10.Press YES at the Norand Utilities copyright 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 option 2 to select a communication option from a drop down menu,
then press option 1 from the main menu to initiate a communication sesĆ
sion. For getting started, the most common option is to use INTERSVR.
For a complete description of navigating the screens in the Norand Utilities
program, refer to the PEN*KEY Model 6100 User 's Guide.
1. Getting Started
11.Prepare the CONFIG.SYS and AUTOEXEC.BAT files for initial program
load. For an example CONFIG.SYS file or an example AUTOEXEC.BAT
file, refer to Appendix A, Sample Configuration Files. At a minimum, the
CONFIG.SYS file needs the following lines:
device=d:\elanapm.exe
device=d:\nordospm.exe
The content of these configuration files depends on the type of application
being loaded. Examples for DOS and Windows can also be found on the
Tool Kit diskettes.
12.Using one of the communication options, described later in this section,
transfer the application program files to the 6100 Computer. Following a
successful communication session, the Norand Utilities program executes
the application program files.
3
Location of Reset Button and PC Card Drives
1
2
1. Drive B: (upper) PC Card slot
2. Drive A: (lower PC Card slot
3. Reset switch
Figure 1Ć1
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 1-17
Page 40
Development Resources
1. Getting Started
SECTION 1Getting Started
This paragraph covers the following topics:
TopicsPage
PC Card Support1Ć18
NORAND Card and Socket Services: ELANCSSS.EXE1Ć18
configurations, usage, and descriptions of NORAND Card and Socket files
SystemSoft Card and Socket Services1Ć20
descriptions of the SystemSoft Card and Socket files
SanDisk Support1Ć21
Communications Using INTERLNK and INTERSVR1Ć22
RAM Drive1Ć23
Norand Utilities and Communications1Ć24
Norand Utilities
Download Include Files
NPCP Network
TTY
ACN
Other Intermec Software1Ć26
DOS Device Drivers
Windows Device Drivers
APM BIOS Installation (DOS)
DOS Pen Calibration (CALIB.EXE)
Windows Pen Calibration (PENALIGN.EXE)
DOS Batch File Enhancers
1-18 PEN*KEY
PC Card Support
NORAND Card and Socket Services: ELANCSSS.EXE
Support for the AMD ELAN PC card (accessory card) controller is provided via
the NORAND Card and Socket services product, ELANCSSS.EXE. This product
is configured, integrated, and tested in the 6100 Computer, and supports ATA
and COM cards on the 6100 Computer. It is used in conjunction with PC card
device drivers that use card services.
For a listing of the full PC Card socket and card services support, refer to the
RELNOTES.TXT file in the Tool Kit.
ELANCSSS is used if you need to access ATA or modem cards.
If you are using ATA cards, you must also load ATABIOS.SYS, then
NORATA.SYS, in that exact order.
For details of ATABIOS.SYS device driver, refer to the ATA BIOS paragraph, in
the Conversions and Interfaces section.
If you are using a modem (landline or wireless), then you need to load
NORMOD.SYS.
For details of NORMOD.SYS device driver, refer to the Docks and Modems paraĆ
graph, in the Communications and Device Support section.
R
6100 Computer Programmer’s Reference Guide
Page 41
SECTION 1Getting Started
EXAMPLE:The following is an example for ELANCSSS.EXE usage:
device=d:\norcs\elancsss.exe
EXAMPLE:The following are examples for SanDisk usage:
/c4 = install as COM4
/s = save and restore UART values for COM4 on SUSPEND/RESUME
/d m n t = delay t ticks (where m = man code and n = man info)
16b 21 = refers to the Erickson PIA radio
NORAND Card and Socket services can replace CardSoft completely.
Under the FORMAT RAM DRIVE option, the drive letter of the RAM drive is deĆ
termined by its media type. SRAM cards are recognized as drives A and B. ATA
cards are recognized as drives E and F. If you select the option to format an
SRAM card, when an ATA card is actually in the slot, you will get an Error code
4 (invalid media).
NORAND PC Card Files
The following list contains a brief description of each of the files in the integrated
and tested distribution:
Table 1Ć1
NORAND Card and Socket Files
FileDescription
ATABIOS.SYSA PC card device driver. It identifies and configures cards with a device ID of 0Dh
and a function code of 4 (FIXED_DISK_CARD) and takes over the INT 13 interĆ
face for these cards. It is used with NORATA.SYS (see the ATA BIOS paragraph,
in the Conversions and Interfaces section, for details.
ELANCSSS.EXEThe NORAND Card and Socket services product. It is smaller, faster, less costly, and
better power coordinated than SystemSoft. The SystemSoft services are also inĆ
cluded with the 6100 Computer.
NORATA.SYSA DOS block device driver for removable hard disk media, for SanDisk support.
NORMOD.SYSLoaded when you want to use a modem. This includes landline and wireless modems.
1. Getting Started
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 1-19
Page 42
FileDescription
ATADRV.EXE /s:2A block device driver that supports ATA type II flash or ATA type III hard disk PC
1. Getting Started
ATAINIT.EXEis a lowĆlevel format for SanDisk cards. It places a hard disk partition table onto a
CARDID.EXEClient device driver for the configuration of the PC Card slot/adapter and card on
CARDINFO.EXEhelps diagnose problems with cards by verifying if the card is recognized. It is a
CS.EXECard services driver to manage the configuration of the system PC Card resources.
NORCSAPM.EXEEnabling TSR for communication between power management and card services
CSALLOC.EXEResolution and assignment of system memory, I/O port, and IRQ resources for card
MTDDRV.EXEMemory technology driver that supports PC Card SRAM cards through the
MTSRAM.EXEMemory technology driver for PC Card SRAM cards.
SSELAN.EXEStandard Socket Services driver interface to the ELAN host controller chip.
SECTION 1Getting Started
SystemSoft Card and Socket Services
CardSoft files (by SystemSoft) were used in early releases, and can continue to
be used. The SystemSoft files are available in the D:\CS directory on the 6100
Computer. They are not loaded, by default. The following is a list of those files
and their descriptions:
Table 1Ć2
NORAND Card and Socket Files
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 technolĆ
ogy driver (MTDDRV.EXE) that follows, thus preventing the creation of new
drive letters as additional memory technology drivers are installed. With this
approach, all memory technology can be referenced as E: and F: for PC Card
slots 0 and 1.
blank ATA drive. This utility initializes the ATA drive as FDISK does with a
standard hard drive. Note: use with CardSoft drivers only
card insertion detection. Also frees allocated system resources upon detection of
card removal.
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 drivĆ
ers. Note: use with CardSoft drivers only.
software for the correct processing of suspend/resume requests.
services.
MTSRAM.EXE driver and allows for the sharing of letters between the different
types of memory cards (SRAM and ATA).
FileDescription
CARDID.INIDefault settings for card identification
CSALLOC.INIUsed by CardSoft to determine which system resources may be used by PC Cards
R
1-20 PEN*KEY
6100 Computer Programmer’s Reference Guide
Table 1Ć3
Initialization Files
Page 43
SECTION 1Getting Started
The following card libraries are for the support of modems and ATA drives:
Table 1Ć4
Card Libraries
FileDescription
GENATA.CLBGeneric ATA drive library
SUNDISK5.CLBSanDisk SDPL5 5-meg ATA drive library
GENMODEM.CLBGeneric modem library
These drivers provide audio feedback when a card is inserted or removed from
the card slot. When the 6100 Computer recognizes that a card is 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 an AUTOEXEC.BAT file, that
drive is made the current drive and AUTOEXEC.BAT is processed immediately.
No Norand Utilities program screens are seen.
SanDisk Support
To support SanDisk cards loaded with STACKER, the CONFIG.SYS file in flash
loads STACKER.DRV (if it is present). In this case, the AUTOEXEC.BAT file on
the stacked volume of the card is processed.
Note that the Norand Utilities program does NOT process a CONFIG.SYS file on
the card. If the card is an SRAM card, it is possible to change the default boot
drive to be the card rather than the flash in order to process the CONFIG.SYS
file on the card.
If an application requires a CONFIG.SYS file different from the one in the flash,
the AUTOEXEC.BAT file on the card must copy the new CONFIG.SYS file to the
RAM drive and reboot from the RAM drive. Any drivers specified in the new
CONFIG.SYS that are not in the flash must also be copied to the RAM drive.
To access a SanDisk card loaded with Stacker from a laptop computer that supĆ
ports PC Cards, you must do 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 accesses the stacked porĆ
tions of the SanDisk card without needing to modify the CONFIG.SYS file.
Start Stacker Anywhere by typing STACKER" and exit by typing EXIT."
1. Getting Started
"
NOTE:The version Stacker that is shipped on the SanDisks is incompatible with Windows 95. If
your development environment is Windows 95 and you need to leave Stacker on the SanDisks, then when you copy files over to the SanDisk, you need to boot a previous version of
DOS in order to access the card.
When loading Stacker and INTERLNK, be sure that Stacker is loaded before
INTERLNK in the CONFIG.SYS file. Also, in order to write files to the SanDisk
card using INTERLNK, both the 6100 Computer and the development PC need
to have Stacker loaded. If a SanDisk card becomes corrupted by INTERLNK, it
can be restored by reformatting it using FORMAT.COM from DOS 5 (also
supplied in the Programmer's Tool Kit).
"
NOTE:All data will be lost when the card is formatted.
Also note that you will need to boot a previous version of DOS in order to run INTERLNK, if
you have a Windows 95 development environment.
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 1-21
Page 44
1. Getting Started
SECTION 1Getting Started
Communications Via INTERLNK and INTERSVR
INTERLNK is a device driver that interconnects a PEN*KEY 6000 Series ComĆ
puter and a PC, via serial ports. INTERSVR is the INTERLNK server, a comĆ
munication option in the Norand Utilities program. These two resources are proĆ
vided with ROM DOS 5 and are shipped with the 6100 Tool Kit. The cable that
connects the PC to the 6100 Computer is a standard null modem cable. A TTY
TCOM cable also works. And, you need a dock for the 6100 Computer.
INTERLNK causes the 6100 Computer 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 more details relating to
INTERLNK and INTERSVR topics, refer to the DOS online help text.
The following instructions assume that when you installed the 6100 flash, all
files from the archive were placed in C:\PENKEY\FLASH on your host PC. If
you have files in a different location, adjust these instructions accordingly.
Read all instructions below before proceeding.
INTERLNK
INTERLNK, which is part of MSĆDOS supplied with your PC operating system,
can be installed on a PC, using the following statement in the CONFIG.SYS file
on your host PC:
device=c:\dos\interlnk.exe /drives:4
The above statement assumes that MSĆDOS is located in the C:\DOS directory
on your host PC. The /DRIVES:4" parameter allows mapping of four drives
from your 6100 Computer. This statement should be inserted at the end of the
CONFIG.SYS file (after any other statement that creates a drive letter).
After rebooting your host PC, you can copy the application files to the 6100 ComĆ
puter, with INTERLNK.
"
NOTE:If you are running Windows 95 on your 6100 Computer, you may want to consider an alterna-
tive method of running INTERLNK/INTERSVR, such as booting to an earlier version of DOS.
INTERSVR
Begin with the 6100 Computer at the NORAND UTILITIES LOAD PROĆ
GRAMS/ DATA menu. It may be necessary to force the unit to start from the
ROM Drive (D:) by pressing the reset button, then pressing [I/O] while the startĆ
up messages are being displayed. This brings up a menu that allows selection of
the startĆup drive. Select [4] to start from the 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 2 MB (or larger) RAM Drive on 6100 Computer. After completion,
return to the LOAD PROGRAMS/DATA menu and select option 2, COMM.
From the COMM menu select option 6 INTERSVR. Now select option 1,
BEGIN COMM SESSION.
4.Establish the INTERSRV connection to your desktop/laptop PC, using a
PEN*KEY single dock and cable, IrDA Dongal or direct serial cable.
5.Copy all files in C:\PENKEY\FLASH to the RAM Drive (C:) on 6100 ComĆ
puter. To determine what drive on your PC corresponds to the 6100 RAM
Drive, execute INTERLNK at the DOS prompt, as follows:
C:\WIN>INTERLNK
R
1-22 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 45
SECTION 1Getting Started
You will see a chart similar to the one below. In this example, you would copy
the files to drive H:.
6.Once the files are transferred, exit InterSvr on 6100 Computer by pressing
[Esc]. The unit automatically resets at this time.
7.When the unit resets, it begins the flash update process. You are prompted
to put the unit on charge and press a key. And then you are prompted to
press the 3" key to begin the reflashing process.
8.After reflashing, the 6100 Computer resets itself and boot back to the deĆ
fault drive. To confirm the Flash version, observe the screen while booting
from drive D. If necessary, refer to the instructions above for overriding the
default boot drive.
9.You must now remove the flash files from your ramdrive by following the
procedures above for formatting a ramdrive or by starting another interlink
session and deleting the files manually.
To terminate INTERSVR, press the ESC key. See the release notes for informaĆ
tion on changes in this version of Flash.
1. Getting Started
RAM Drive
RAMDFMT.EXE creates a RAM Drive on the computer. 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 this 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 corĆ
responding 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 exĆ
tended 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
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 1-23
Page 46
"
NOTE:Reboot the HHC after the RAM drive is created (or altered), to make the change effective.
1. Getting Started
SECTION 1Getting Started
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 4 MB. For lower system RAM capacities, only 1 MB 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 1 MB 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."
Norand Utilities and Communications
Norand Utilities
For a description of the Norand Utilities, refer to that topic in the CommunicaĆ
tions and Device Support section.
Creating a (Host) Download Include File
Most of the communication options for performing an initial program load reĆ
quire a download include file on the host computer. However, to create a downĆ
load include file, you first need to create a download list file.
Create a download list file, as follows:
A download list file contains the names of the files to be sent to the 6100
Computer. Each line in the file specifies one name. The file names may
include path information so that all of the files need not be in the same diĆ
rectory on the host. However, the file is transmitted without the source
path information, and placed in the current directory of the 6100 Computer.
To specify a destination path or to rename a file on the 6100 Computer, use
a line with the following format:
“newname=oldname”
This causes the file oldname" to be read from the PC and transmitted to
the 6100 Computer with the name newname". Both oldname" and new-name" may include path information.
EXAMPLE:The following is a sample download list file:
Now, you are ready to create the download include file. Execute the following
command:
IPLFMT.EXE <list file> <include file>
where:
<list file> is the name of the download list file created, above.
<include file> is 6100IPL.INC. This file is created by IPLFMT.EXE.
It should be noted that IPLFMT.EXE can be found in the Tool Kit.
IPLFMT.EXE concatenates files listed in the list file, inserting appropriate
Norand file headers for download. Refer to TCOM Session Overview, in theCommunications and Device Support section, for file header descriptions.
NPCP Network
NPCP is the NORAND Portable Communications Protocol. This protocol is supĆ
ported by the 492x Tcom Packages, 6920 Communications Server, 498x Network
Communication Controllers, and 6980/6985 Network Managers. You would subĆ
stitute 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:
NOTE:4000 Series applications are copied to a BOOT directory.
6000 Series applications are copied to the DOWNLOAD directory.
"
NOTE:NCDIR.EXE is included in the 4980 Boot Toolkit.
Norand Utilities Internals
The Norand Utilities program, 2.00 and later, first attempts a session to
NORAND_SERVER, which allows the application to be retrieved from a 498x
controller. If the application is not stored on the 498x controller, a session is
initiated to
NORAND_HOST, which connects to the host.
TTY
TTY is another NORAND proprietary protocol, also supported by the commuĆ
nications servers.
" Create a 4920 boot disk, as described in the preceding paragraphs for the
NPCP Network.
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 1-25
Page 48
1. Getting Started
SECTION 1Getting Started
NRInet
NRInet is a protocol that performs a Norand file transfer session over TCP/IP
Ethernet. It is supported by the 6920 Communications Server.
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 information required by the
handĆheld computer, 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 handĆheld computer. A DHCP server can also
provide a domain name and IP addresses of domain name servers, which
allows you to enters a host name rather than an IP address. If the
SERVER_NAME field on the handĆheld computer is left blank, a connection
to the name Norand6920" is attempted, as a default.
Version 2.xx of the Norand Utilities program creates a NET.CFG file and a
PCTCP.INI file on the RAM drive. These NET.CFG and PCTCP.INI files are not
erased, so they may be used by applications.
TFTP
TFTP (Trivial File Transfer Protocol) is a standard TCP/IP protocol supported on
many TCP/IP servers.
1.A TFTPD service must be running on a TCP/IP server.
2.Optionally, configure a DHCP server to provide information required by the
handĆheld computer (IP addresses of the client, router, and subnet mask).
Any information not provided must be entered manually on the computer.
A DHCP server can also provide a domain name and IP addresses of
domain name servers, which allows the handĆheld computer user to enter a
server name rather than an IP address. If the SERVER NAME field on the
handĆheld computer 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 service. The list file must be named
<workgroup>.BCF where <workgroup> is the value of the WORKGROUP
field in the UNIT ID menu.
BOOTDRV.COM: Determine Default Boot Drive
DD.EXE: Disk Duplicator
DELAY.EXE: Display Message, Wait, Pause, Return Error Level
FIXEMM.EXE: Fix for EMM386 Memory Management
ISRAMDRV.COM: Determine if RAM Drive Exists
MMBFLAG.COM: Set/Get ROM DOS Boot Flags
RESET.EXE: Reset the System
R
1-26 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 49
SECTION 1Getting Started
DOS Device Drivers
The following are DOS drivers, for screen rotation, power management, pen acĆ
tivity, scanning, etc.
Table 1Ć5
DOS Device Drivers
DriverDescription
4000API.EXE TSR needed to provide 4000 compatible API interfaces, such as the DOS NPCP
Printer driver
61MOUSE.COM DOS Pen driver
61PODSCN.EXE DOS Scanner for the pod scanning method
61THRSCN.EXE DOS Scanner for the tethered scanning method
ATABIOS.SYS A DOS block device driver for removable hard disks (e.g., PC Card ATA drives)
CALIB.EXE Pen alignment utility for DOS
ELANAPM.EXE APM BIOS installation for DOS
ELANCFG.EXE ELAN configuration utility for power management
ELANCSSS.EXE NORAND ELAN card and socket driver, for supporting ATA and COM cards on the
6100 Computer.
FONTSEL.EXE NORAND DOS font selection utility (used with VROTATE)
IRDAPDRV.EXE DOS IrDA Printer driver
NORATA.SYS NORAND ATA card support (such as SanDisk)
NORDOSPM.EXENORAND DOS APM driver
NORMOD.SYS NORAND PC Card modem support
PC4800.SYS Standard DOS 4800 Series Printer driver
PRDRV.SYS DOS IrDA Printer driver
VROTATE.EXE DOS portrait mode display driver (text only)
1. Getting Started
Windows Device Drivers
The following are drivers, for screen rotation, power management, scanning, etc.
Table 1Ć6
Windows Device Drivers
DriverDescription
6100DISP.DRV Windows CGA display driver
61MAG.DRV Windows magnetic stripe reader driver (see note, below).
61SCAN.DRV Windows Scanner driver
NOR4800.DRV Standard Windows 4800 Series Printer driver
NOR6805.DRV Standard Windows 6800 Series Printer driver
NORIRDA.DRV Windows IrDA Printer driver
NORNPCP.DRV Windows NPCP Printer driver
NORWINPM.DRVWindows APM driver
PENALIGN.EXE Pen alignment for Windows
UCLKPEN.DRV Windows Pen driver
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 1-27
Page 50
"
NOTE:Be aware that the Magnetic Stripe Reader (MSR) software is still evolving. It reads most
1. Getting Started
SECTION 1Getting Started
common codes, but is currently being modified to work with some of the less common codes.
Which means, if you write an application for the current MSR, then when a new MSR is released at a later date, your application will be tied to the way the old MSR works, and may
not work with the new MSR.
Utility Programs
ELANAPM.EXE: APM BIOS Installation for DOS
This is a DOS TSR (taking no parameters) that installs an APM BIOS for the
6100 Computer. This program is needed if you want to run NORDOSPM.EXE.
ELANAPM.EXE and NORDOSPM.EXE could be called from the
AUTOEXEC.BAT file. But the alternate and preferred method is to place the
following statement in the CONFIG.SYS file.
device=d:\elanapm.exe
device=d:\nordospm.exe
CALIB.EXE: DOS Pen Calibration
This is a DOS penĆcalibration utility. For more information, refer to the
NORAND DOS Pen Driver paragraph, in the Supporting DOS Applications
section.
PENALIGN.EXE: Windows Pen Calibration
This is a Windows penĆcalibration utility. For more information, refer to the
NORAND Windows Pen Driver paragraph, in the Supporting Windows ApplicaĆ
tions section.
DOS Batch File Enhancers
BOOTDRV.COM: Determines Default Boot Drive
This application was for use in batch files that have a requirement to determine
which drive was the default drive when the system was first booted. It returns
an error level indicating which drive is the boot drive:
" Display a message to the screen (like the Echo command)
" Wait for some amount of time to expire before continuing (like a Sleep comĆ
mand or DOS 6 Choice command with a timeĆout specified)
" Pause system execution until a key is pressed (like the Pause command)
" 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 deĆ
vice driver. Since the error level concept does not apply to CONFIG.SYS processĆ
ing, the fourth function applies only to command line (or batch file) execution.
1.To display the message Press any key to continue. . ., no command line paĆ
rameters are required. 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 (") can be used to disĆ
play a blank line. To keep the cursor positioned immediately following the
last character displayed, do not supply the trailing quote ("). To simply disĆ
play a message without waiting for either a timeĆout or a key press, specify
a delay timeĆout of zero (/0).
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 specificalĆ
ly geared to make it easy to tell which numeric key was pressed.
1. Getting Started
Table 1Ć7
DELAY.EXE Error Levels
Error LevelKey Pressed
0`0'
1`1'
2`2'
3`3'
4`4'
5`5'
6`6'
7`7'
8`8'
9`9'
10`:'
11`;'
12 to 154The values returned consist of the key value minus 30h.
255No key was pressed; the time expired first
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 1-29
Page 52
SECTION 1Getting Started
Simple examples:
Standard PC Function6100 Command(s) Required to Perform Function
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..."
1. Getting Started
FIXEMM.EXE: Fix for EMM386 Memory Management
This is a utility that fixes a CPU idling problem in EMM386.EXE. It hooks the
APM CPU IDLE calls to prevent problems from using HLT" with EMM386.
ISRAMDRV.COM: Determine if RAM Drive Exists
Returns an error level that answers the question, Do I have a RAM drive?" If
the error level is zero, then a RAM drive exists. This is for batch files that have
a requirement to determine whether a RAM drive has already been formatted.
Batch file example:
MMBFLAG.COM: Set/Get ROM DOS Boot Flags
ISRAMDRV.COM
IF ERRORLEVEL 1 GOTO NoRamDrive
IF NOT ERRORLEVEL 1 GOTO RamDrivePresent
This program satisfies a couple of batch file requirements:
" 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.
" Supply a command parameter to change the default boot drive.
NORATA.SYS automatically determines which drive letter to supply, based
on the media type. Drives E through H are also supported.
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
Provides the means for batch files or other software to reset the system.
R
1-30 PEN*KEY
6100 Computer Programmer’s Reference Guide
Table 1Ć8
MMBFLAG.COM Error Levels
Page 53
Section 2
Supporting DOS Applications
""""""""""""""""""""
Introduction
This section contains information about applications that run under DOS on the
PEN*KEY
NORDOSPM.EXE, which is part of the Advanced Power Management (APM)
system when running under DOS, is the DOS power management driver interĆ
face between applications and the APM BIOS. NORDOSPM.EXE must be
installed as a device driver at system startup time.
NORDOSPM.EXE gathers information from the APM BIOS and broadcasts it to
APMĆaware applications. It also monitors DOS function calls and notifies the
APM BIOS when the system is busy. In addition, NORDOSPM.EXE allows the
configuration of certain power management settings at installation time.
Figure 2Ć1 below is a simplified diagram of Power Management Software:
2. DOS Applications
NORDOSPM.EXE
ELANAPM
BIOS
Hardware
Figure 2Ć1
Power Management Software
The DOS power management driver.
The APM BIOS installation for DOS.
The system BIOS.
The 6100 Computer hardware.
Installation
NORDOSPM.EXE, which is installed as a device driver in the CONFIG.SYS file,
requires ELANAPM.EXE and must be installed after ELANAPM.EXE. The
following would be a typical entry in the CONFIG.SYS file:
device=elanapm.exe
device=nordospm.exe
Refer to the APM BIOS Interfaces: ELANAPM.EXE paragraph, in the ConverĆ
sions and Interfaces section for a detailed description of ELANAPM.EXE, the
APM BIOS driver.
Command Line Switches
Refer to the Microsoft documentation for the APM applications command line
switches.
R
2-2 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 55
SECTION 2Supporting DOS Applications
ELAN Configuration Driver: ELANCFG.EXE
ELANCFG.EXE is a DOS command line configuration utility that sets various
APM options for the AMD ELAN processor. It is intended to be executed at
startĆup, but may be executed (or reexecuted) at any time.
Usage
ELANCFG.EXE <optional arguments>
Optional arguments may be any number of the following:
The command line switches are described in partial detail, as follows:
/?Help screen: Displays brief command line switch descriptions.
/AnATA Primary Activity Monitor: Configures ATA/HDD access activity mask. Valid values for
n: 0 and 1.
0= processor will timeĆout during ATA/HDD access.
1= count down timer is reset to zero when ATA/HDD activity is detected.
/CnConfigure System Management:
Valid values for n: 0, 1, 2, 3, 4, and 5.
1= AutoĆContrast enabled0= disabled
3= Battery Hot Swap enabled2= disabled
5= Suspend In Dock enabled 4= disabled
7= INTs are NOT activity in DOZE 6= INTs are activity in
/DnSet TimeĆout from Doze to Sleep: Configures Doze mode timer. Valid values for n: 0, 4-1024
(nearest multiple of four seconds are used). Where n is the number of seconds between Doze
mode and Sleep mode.
0= timeĆout is disabled. If any activity is detected during timeĆout period, processor goes back to
High speed PLL mode and timer is reset to zero. For any other valid values, timer is set.
/EnAC Power Activity Monitor: Configures External power (charge) activity mask. Valid values
for n: 0 and 1.
0= processor does not count down or timeĆout, when external charge is detected.
1= processor continues to count down and timeĆout, while external power is detected.
/HnSet TimeĆout from High Speed to Low Speed: Configures the High Speed PLL mode timer.
Valid values for n: 0, 1-16 (seconds). Where n is the number of seconds between High Speed PLL
mode and Low Speed PLL mode.
0= value disables the timeĆout. If any activity is detected during the countdown period, the timer
is reset to zero. This may be thought of as the amount of time the processor spends in High
Speed PLL Mode if no activity is detected. If the High Speed PLL timer is disabled, the
processor stays in High speed mode, and never enters Low Speed PLL mode. The Low Speed
PLL mode count down timer starts when the processor enters Low speed PLL mode.
Therefore the processor never enters Low Speed PLL mode, Doze, or Sleep mode when the
High Speed PLL timer is disabled. The same is true of all other successive timeĆouts. The
High speed PLL mode timer starts counting down when no activity is detected, and reset to
zero when activity is detected.
All other valid values set the timeĆout.
DOZE
2. DOS Applications
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 2-3
Page 56
/IOxn Set Activity to I/O Address: Configures the Programmable I/O range activity mask. Valid valĆ
/LnSet TimeĆout from Low Speed to Doze: Configures Low Speed PLL mode timer. Valid values
/MnCOM4 Activity Monitor: Configures Modem activity mask. Valid values for n: 0 and 1.
/P**UNUSED**
2. DOS Applications
/RnConfigures Ram drive access activity mask. Valid values for n: 0 and 1.
/S**UNUSED**
/TnConfigures Timer ticks while in DOZE mode.
/VnConfigures the Video memory write activity mask. Valid values for n: 0 and 1.
/WxConfigures the programmable Resume (WakeĆup) event mask. Valid values for x: R, 0, 3, 4, and 8.
SECTION 2Supporting DOS Applications
ues for n: 0 and I/O addresses in the range of 001h to 3FFh.
0= programmable I/O device activity does not reset the count down timer.
Otherwise, n is the 8 bit starting I/O address that is checked for activity. The address range exĆ
tends to 7 addresses past the starting address (8 total). If activity is detected in this I/O range,
the countĆdown timer is reset to zero.
(e.g., /IOx380 sets up I/O addresses 380h through 387h as activity).
Valid values for n: 0 and 1.
1= processor continues to count down and timesĆout during keyboard activity.
0= timer is reset to zero when ever keyboard activity is detected (at COM4, port 2Eh).
for x: 0, 1-16. Where n is the number of seconds between Low Speed PLL mode and Doze mode.
0 = disables the timeĆout.
For any other valid values, timer is set. If any activity is detected during the count down period,
the processor goes back to High Speed PLL mode and the timer is reset to zero.
0= count down timer continues during modem access.
1= count down timer is reset to zero when modem activity is detected.
0 = count down timer continues during ram drive access.
1 = count down timer is reset to zero when Ram drive access is detected.
0 = no timer ticks occur while in Doze mode.
1 = timer ticks occur while in Doze mode.
2 = Extended timer ticks occur while in Doze.
0 = the processor continues to count down and timeĆout during video memory access.
1 = timer is reset to zero whenever video memory access is detected.
Note that Windows frequently accesses video memory to repaint screens, etc. The processor will
probably not timeĆout in Windows unless the Video activity mask is set to zero.
R = a ringĆin causes the processor to wake up.
0 = all resume masks are disabled.
3 = IRQ 3 causes the processor to wake up.
4 = IRQ 4 causes the processor to wake up.
8 = IRQ 8 causes the processor to wake up.
R
2-4 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 57
SECTION 2Supporting DOS Applications
Power States
ELANCFG.EXE has four power states:
HighThe processor is running full speed
LowThe processor is running at a reduced speed
DozeThe processor is halted --
the backlight turns off, if it was on;
the display is still up and the touch is still up;
power is still supplied to terminal and external devices.
Suspend
(sleep)
The processor is halted - the display turns off;
power to PC cards is turned off;
power to communication devices is turned off;
power to the touch screen and keyboard has some power on.
The only way to resume/wake the unit is through the I/O button (Suspend/Resume) or the waĆ
keup events.
The transition times for power states can be customized through the use of
ELANCFG.EXE. The settings concerning timeĆouts are:
/Hthe time at High speed before going to Low speed
/Lthe time at Low speed before going to Doze
/Dthe time at Doze before going to Sleep
For example, if you want to set the backlight to be on for 30 seconds, and then
suspend the unit at 60 seconds Ċ one way to configure this is as follows:
elancfg.exe /H10 /l20 /d30
This keeps the 6100 Computer operating at High speed for 10 seconds. Then, if
no activity is perceived at 11 seconds, it switches to Low speed for 20 seconds.
Then, if there is still no activity perceived (after that 20 seconds), it switches to
Doze and the backlight turns off. Finally, after 30 seconds has passed, the unit
switches to Suspend.
Also, you can restrict the 6100 Computer from reaching one of the lower states if
a parameter of 0 (zero) is used at any of these levels. That means the 6100 ComĆ
puter is locked" at that power state, and cannot go to lower states.
For example, if you have a PC Card radio that needs to be active all the time,
then you might consider restricting your power management to not use the Sleep
mode. By using the following call, you disable the 6100 Computer from autoĆsusĆ
pending, and let it run at high speed for 10 seconds and, at low speed for 10 secĆ
onds, then remains in Doze mode indefinitely until activity is perceived, a PowerĆ
fail event occurs, or a uses request suspend occurs:
elancfg /H10 /L10 /D0
Obviously, these settings have a large impact on your battery life. So they
should be made with battery needs in mind.
2. DOS Applications
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 2-5
Page 58
DOS Pen Driver: 61MOUSE.COM
Overview
The pen driver is actually a DOS mouse driver. It interprets the standard interĆ
rupt 33h mouse interface. Not all mouse functions are supported. Refer to the
Conversions and Interfaces section, in the Standard Mouse interface: INT 33
paragraph, for a list of functions available.
Also refer to the Ralf Brown's Interrupt list for detailed information relating to
the Standard Mouse Interface: INT 33 (see the Reference, Open Systems PublicaĆtions section for ordering information).
Installation
Ensure the following files are located in the root directory on the 6100 Computer:
The pen driver installs as a TSR as a result of placing the following statement in
the AUTOEXEC.BAT file:
61MOUSE.COM
If the drive and directory for this driver is not in your path, include that informaĆ
tion, as follows:
d:\path\61MOUSE.COM
where:
d: is the driver and \path\ is the directory path to the driver.
After installation, the driver displays the following message:
Driver installed
6100 Digitizer enabled
NOTE:Always load IrDA driver before the pen driver.
R
2-6 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 59
SECTION 2Supporting DOS Applications
DOS Pen Calibration: CALIB.EXE
Overview
CALIB.EXE is the DOS Pen Calibration utility. It performs calibration of the
pen interface for the 6100 Computer, as well as other PEN*KEY computers.
Calibration is simply the alignment of the location of the cursor to the same locaĆ
tion where a finger or pen is placed on the touch screen. The 6100 Computer
comes with default settings that are normally acceptable for most applications.
However, some applications, such as signature capturing, may require a calibraĆ
tion adjustment to compensate for variations in touch panel alignment and user
preferences.
Configuration
Configuration settings are stored in CMOS. If CMOS contains invalid informaĆ
tion, the program displays the calibration screen, regardless of the existence of
the calibrate command-line option.
CALIB.EXE is a DOS application program and can be invoked from the AUTOĆ
EXEC.BAT file or from the DOS command line. The appropriate mouse driver
must be installed. The driver contains extensions to the standard Mouse API
which provides digitizer information, screen resolution, and raw coordinate
points, which is required for this implementation of CALIB.EXE.
NOTE:See BGI Support in Appendix A, Sample Configuration Files for BGI driver information
Usage
CALIB.EXE begins the calibration process by placing one of four targets at a
fixed location on the screen and waits for the user to press the pen at the center
of the target three times. It is important during this process to apply moderate
pressure while pressing the target. Lightly tapping or placing too much pressure
generates incorrect results. The unit beeps after each successful press of the
pen. Therefore, if a beep is not heard when the pen is down, lift and press again.
Also use care to not allow fingers or any other object to touch the screen. When
the program has acquired three good data points for the target, it then displays
the next target.
When data for all four targets are acquired, the program then displays a screen
which checks the calibration results. Check the match of the cursor with the
location of the pen near the four corners of the screen. The best way to do this is
to place the pen down near each corner of the display and see if the cursor apĆ
pears at the location of the pen. If the cursor is offset from the pen location by
some fixed amount, adjust it by pressing the appropriate UP, DOWN, LEFT, or
RIGHT buttons on the screen. (The user may prefer to add some amount of offĆ
set to place the cursor away from the pen using the same buttons.) If the cursor
position varies significantly from the pen location, as the pen is placed at the difĆ
ferent corners, the four target calibration process was not successful. Restart the
program and pay closer attention to how the pen is pressed against the targets.
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 2-7
Page 60
DOS Scanner: 61PODSCN.EXE, 61THRSCN.EXE
2. DOS Applications
SECTION 2Supporting DOS Applications
When satisfied with the calibration, press the SAVE button on the screen to store
the results. The results are then available for use by the pen/mouse driver. You
may choose to not save the results by pressing the CANCEL button. In either
case, the program exits. If for some reason the calibration program is unable to
recognize the pen, you can press the Escape key and the program exits. In this
case, the new calibration values are not stored.
Overview
61PODSCN is the pod scanner. 61THRSCN is the tethered scanner.
The pod scanner collects and passes scanned data to an application via the stanĆ
dard DOS typeĆahead buffer, where the scanned bar code is available to an apĆ
plication as simple keystrokes. The program also manages power for the scan
operations. The tethered scanner behaves just like the pod scanner, except:
" I/O is through the serial lid;
" There is no way to reprogram a key as a trigger;
" Does not display anything on the screen;
" Can be used if you need a fully decoded RSĆ232 scanner.
61PODSCN is generally installed from AUTOEXEC.BAT by this statement:
61PODSCN [–option[value]] ...
The program must be installed after the CardSoft drivers and TSRs are installed
(if they are used) and after ELANAPM.EXE is installed. Also, if CardSoft drivĆ
ers and TSRs are present in the system, the command line option on NORĆ
DOSPM.EXE that fixes" some CardSoft bugs (/ss:1) must not be used on NORĆ
DOSPM.EXE, but instead used as an option to 61PODSCN.
2-8 PEN*KEY
Installation
Ensure the following files are located in the root directory on the 6100 Computer:
The driver, ELANAPM.EXE, needs to be loaded first, and BIOSDOT.COM needs
to be loaded before 61PODSCN.EXE or 61THRSCN.EXE. ELANAPM.EXE
should already be located on the flash, all of the other files listed above can be
found in the Tool Kit.
BIOSDOT.COM handles printing a window to the screen scanning" when the
trigger is pulled. This program is only needed in a graphics environment, and
not for a text environment
R
6100 Computer Programmer’s Reference Guide
Page 61
SECTION 2Supporting DOS Applications
Configuration
Required CONFIG.SYS Entry
The following entry is REQUIRED in the CONFIG.SYS file, for DOS scanning:
device=elanapm.exe
device=nordospm.exe
Options
61PODSCN recognizes the following options:
SwitchesDescription
-? or -HEither of these options results in a help screen that briefly describes the various options.
-A[n]Enable aiming beam for 1/2 second intervals (if supported). The n is optional (as noted by
the [brackets]), and if used, it specifies the number of intervals desired.
-EEnable scanner immediately, and permanently, not just when enabled via software API.
-KnnDefine a keyboard key to be used to initiate the scanner, where nn = scancode for the key.
For example: use -K0f for TAB key.
-OnPower off delay, where n is the number of seconds from release of the trigger to the time
power is removed from the scanner.
-PLNUse the PLN API interface.
-RESETResets scanner configuration to the factory default on start-up.
-SCANBIOS Use the SCANBIOS API interface.
2. DOS Applications
Usage
The DOS scanner uses command line switches to drive the desired functions.
For example:
61PODSCN –E –A2 –K16
where:
ćEenables the scanner immediately and permanently.
ćA2enables the aiming beam for a oneĆsecond interval.
ćK16defines a keyboard key that can be pressed to initiate the scanner.
Example Scanner Application
This example scanner testware enables the scanner, then displays the DOS keyĆ
strokes until the return or newline character is encountered, where we exit.
#include <dos.h>
#include <stdio.h>
#include <conio.h>
void main (void) {
int c;
_AH = 0x80;// collect only one scan – 4500 compatible
geninterrupt(0x7a); // thread thru scan tsr
//
while ((c != ‘\n’) && (c != ‘\r’)) {
while (kbhit()){
c = getch();
putchar(c);
if (c == ‘\n’ || c == ‘\r’) break;
}
}
}
//
//
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 2-9
Page 62
DOS NPCP Printing: PC4800.SYS
Overview
NPCP printing support under DOS consists of the DOS device driver
PC4800.SYS, that allows DOS and PL/N applications written for the 6100 ComĆ
puter to print to NORAND 4810, 4815, and 4820 Printers, using NPCP.
Driver Installation and Configuration
Required CONFIG.SYS Entry
PC4800.SYS is installed as a device driver in the CONFIG.SYS file.
For example:
device=pc4800.sys LPT1 1 /i1
If PC4800.SYS is not in the root directory, be sure to include the path.
The format of the command line for PC4800.SYS is as follows:
PC4800.SYS [<device name> [<port number> [/in ]]]
SECTION 2Supporting DOS Applications
"
2. DOS Applications
ParameterMeaning
<device name>The name that opens the device. This name can be anything except PRN, and can be
<port-number>The communications port number that the driver uses for output. Valid values are:
/inThis switch enables support for the interrupt 17h interface. This is needed for PL/N
NOTE:The order of the command line parameters is important (for example, specify a
<device name> in order to specify a <port number>.
The following table lists the meaning of each of the parameters:
up to eight characters long. The default name is NP4800.
1 = COM1, 2 = COM2, etc. The default is COM1.
applications. `n' is a digit that specifies the LPT port that accesses the device. For exĆ
ample, /I1 indicates that interrupt 17h calls for LPT1 are intended for this device drivĆ
er. Note: The interface provided is not 100 percent PCĆcompatible. It is intended only
to support PL/N applications. NonĆPL/N applications should not use this switch.
Required AUTOEXEC.BAT Entry
PC4800.SYS requires that the 4000API.EXE TSR is loaded to function correctly.
Refer to the 4000API documentation in the Conversions and Interfaces section,
for installation instructions.
Functionality and Usage
Intermec Technologies Corporation supplies PL/N and C standard printer rouĆ
tines that handle critical errors and the printing of text to NORAND printers.
The following information is for those who might want to create their own print
routines.
PC4800.SYS must be opened before it can be used. For example, in the C proĆ
gramming language, you can use fopen(). Use the correct open call for the lanĆ
guage being used that allows writing to the device. Also, the open call used
should return an error if the device does not exist. Some open calls will create a
file if the device driver is not present.
R
2-10 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 63
SECTION 2Supporting DOS Applications
To write to the device, use any appropriate output function that can be directed
to the device (for example, in C programming language, you can use
fprintf()).
You should install a critical error handler that process 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 by bypassing DOS and calling the driver directly
from the error handler.
Ioctl calls (DOS Function AH = 44h, AL = 02h) are supported by the device drivĆ
er (refer to a DOS technical reference manual for detailed information relating to
this function). Calls require the handle number of the printer device in register
BX, a data item with the following structure pointed to by DS:DX, and the numĆ
ber of bytes to be read in register CX.
struct ioargs {
far *unsigned char ioctl_cmd;
far *unsigned char ioctl_buf;
};
The following commands may be pointed to by the ioctl_command field for execuĆ
tion 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 reĆ
turned data represents any error encountered during the call. If the call was
successful, this byte is set to zero. If the call was unsuccessful, this byte repreĆ
sents the extended error. The format of the rest of the data is described in the
documentation for the printer being communicated with.
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
NPCP. Applications should status (ioctl 3) the printer after the last line of a reĆ
port 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 multitasking. If the application needs to take full advanĆ
tage of this feature, it must enable time slicing through the appropriate call to
INT 15h (refer to the 4000API documentation).
2. DOS Applications
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 to the printer is made.
You should perform a ioctl status call before all closes to ensure that the driver
print buffer is sent to the printer successfully, since DOS closes to character deĆ
vices do not perform output flushes as part of the close operation. The driver
flushes the buffer for you upon a close, but no error is returned if the flush is unĆ
successful.
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 2-11
Page 64
DOS IrDA Printing: PRDRV.SYS, IRDAPDRV.EXE
openattempts discovery of an IrDA device, and if discovery is successful, establishes an IrLMP conĆ
"
readreturns any data sent by the system. A return count of zero implies that no data is available.
writethe written character is stored in a local coalescence buffer (with the IrLMP protocol header inĆ
2. DOS Applications
ioctlthis processing is specific to Intermec Technologies Corporation and is intended to support printĆ
SECTION 2Supporting DOS Applications
Overview
IrDA printing support under DOS consists of the device driver, PRDRV.SYS, plus
IRDAPDRV.EXE, the actual driver handler, link management wrapper, and proĆ
tocol stack. Together these two software components form the IrDA printer soluĆ
tion, providing a standard DOS character driver to support IrDA printers.
The IrDA printer driver supports the following DOS device driver entry points,
compatible with the standard input and output libraries provided by DOS comĆ
pilers, handling the request as indicated by the summarized processes details:
nection for a printer with the device discovered.
NOTE:Only one open connection is allowed at this time.
serted) until the frame size is reached, at which time 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 inĆ
serted without any attempt at local coalescence.
ing 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 reĆ
sponds 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 currently implemented.
device driver is open –– a printer connection is established.
50IRLAP_DISCONNECT_ERROR
close failure –– a disconnect event state change failure occurred during the disconnect
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 the 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.
R
2-12 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 65
SECTION 2Supporting DOS Applications
54BUFFER_GET_FAILURE
write failure –– could not get a transmit buffer to send the data to the printer.
55BAD_CONNECTION_HANDLE
open, write, or close failure –– a defective connection handle was encountered during
the flushing of the driver’s coalescence buffer.
56UNKNOWN_TRANSMIT_FAILURE
open, write, or close failure –– the link access protocol failed for “unknown” reasons
during an attempt to flush the driver’s coalescence buffer.
57WRITE_WITH_PRINTER_NOT_READY
write failure –– a write was attempted to the driver while the driver is in an error
state.
58I_QUEUE_FULL
open, write, or close failure –– the driver could not get a queue for the transmission
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.
63LINK_MANAGEMENT_CONTROL_FRAME_EXPECTED
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.
64NOT_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 the 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 is 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 user’s write buffer is too large to fit in the local coalescing
buffer and is being rejected. Present the data to the driver with a buffer size of
less than 128 bytes at this time.
2. DOS Applications
closeThe coalescence buffer is sent to the printer and, after having verified that all data is sent to the
printer, the IrLMP and IrLAP disconnects are performed (if there is a coalescence buffer being
used, see the -n switch for details).
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 2-13
Page 66
SECTION 2Supporting DOS Applications
Installation and Configuration
Make sure the following files are on the system:
IRDAPDRV.EXE
PRDRV.SYS
If your system was delivered with an application requiring these files, they
should already be in flash. If not, they can most likely be found in the Tool Kit.
Required CONFIG.SYS Entry
The following entries are required in the CONFIG.SYS file:
where d:\pathname is your specific path to the directory where the printer drivĆ
ers exist; and where
driver is used.
Required AUTOEXEC.BAT Entry
There are no required entries in the AUTOEXEC.BAT file for IRDAPDRV.EXE.
t6100 is the technology" for the platform on which this
2. DOS Applications
"
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 reĆ
spond. If this option is used, the f option (for IRDAPDRV.EXE) must be used,
and the optional name selected must match this name string exactly. The deĆ
fault is IRDALPT.
IRDAPDRV [ –? –bn –dn –fs –n –rn –t6100 –x ]
?provides information about version, revision level, a command line example, a list of the availĆ
able switches, and brief descriptions of each.
NOTE:Use only the switches shown here. This driver is a multi-platform program, providing fea-
tures for all of the 6000 Series platforms. None of the other switches are intended for the
6100 Computer and could cause a malfunction, if used on this platform.
bnREMOVES a baud rate from consideration for data transfer rate negotiated during connect.
The (n) part of this parameter is one of 19200, 38400, 57600, or 115200. This switch is accumuĆ
lative and can REMOVE any, or all, of the above baud 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 completion of the negotiation.
dnspecifies the disconnect time (in seconds) requested during negotiation. The (n) part of this paĆ
rameter is one of 3, 8, 12, 16, 20, 25, 30, or 40. This switch is accumulative 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.
fsdefines the file name to be used by the driver. This string must be supplied, and must match the
driver name option used with PRDRV.SYS when it was loaded (if used). The default name for
this driver is IRDALPT.
ndesignates NO coalescing buffer support for devices that send data back to escape sequence.
R
2-14 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 67
SECTION 2Supporting DOS Applications
rnspecifies the number of discovery retries done at the DOS open command by the driver. For
each (n) count, the user is allowed approximately 500 milliseconds to bring the system within
range of the printer for data transfer discovery. The default is 2 retries.
tsidentifies the 6100 Computer as the IrDAĆequipped system, on which the driver is running. The
required string is 6100.
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.
2. DOS Applications
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 2-15
Page 68
SECTION 2Supporting DOS Applications
2. DOS Applications
R
2-16 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 69
Section 3
Supporting Windows Applications
""""""""""""""""""""
Introduction
This section contains information about Windows Applications for the
PEN*KEY
tion required for a Windows configuration, components required for this Windows
installation, and a discussion of the NORAND
R
6100 Computer. Included is a description of the minimal installaĆ
R
Shell for Windows, and some
Windows applications that are designed for the 6100 Computer.
The following paragraphs describe the Windows 3.1 configuration on the 6100
Computer. NorandĆspecific issues are emphasized. General information on
installing and configuring Windows 3.1 itself is available from Microsoft CorporaĆ
tion and other organizations.
"
NOTE:Before loading Windows, be sure to unload VROTATE.EXE, if previously loaded. Otherwise,
the results could be unpredictable. To unload VROTATE, issue the VROTATE –d command.
Installation
You can install Windows on a 6100 Computer by copying the Windows diskette to
a memory card or by copying the files to the RAM drive. You can then start WinĆ
dows by running the WIN.COM program. A table in subparagraph WindowsComponents, on page 3Ć3, lists the files provided by Intermec Technologies CorĆ
poration, as well as a brief description of each.
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.
Applications
3. Windows
Windows Operating Modes
The Windows 3.1 minimal configuration is shipped with all the files necessary for
operating Windows in both 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 StanĆ
dard mode by using the /s" option when running WIN.COM. For more informaĆ
tion on files that can be removed from the configuration, if Enhanced mode is not
required (refer to Windows Components, on page 3Ć3).
Configuration
The Windows 3.1 package, supplied by Intermec Technologies Corporation, is
shipped with a default configuration appropriate for the 6100 Computer. It
should require no further configuration to run.
Normal Startup (Standard Mode)
The Windows startup sequence is as 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, the
standardĆmode DPMI server.
4.DOSX.EXE loads WSWAP.EXE and launches KRNL386.EXE, the Windows
kernel for 32Ćbit processors.
5.KRNL386.EXE initializes GDI.EXE, USER.EXE, the 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 configuĆ
ration settings.
R
3-2 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 71
SECTION 3Supporting Windows Applications
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
launches the user application, which, in this case, is the Windows 3.1 File
Manager. Windows startup is now complete and the File Manager is open.
DOSX.EXE Startup
As mentioned earlier, you can start Windows 3.1 standard mode by running
WIN.COM.
An alternative method is to run DOSX.EXE directly. If run directly, the
WIN.COM and WSWAP.EXE files can be left out of the system to save space.
Note that the standard mode configuration does not support execution of DOS
programs. For a more detailed discussion of Windows startup, refer to chapter 1
of the book Windows Internals, by Matt Pietrek, published by AddisonĆWesley.
Windows Components
The following tables list the Windows 3.1 files for 6100 Computer. The table
titles indicate the category. Files marked Optional may be deleted from the conĆ
figuration if the running applications do not need them.
Table 3Ć1
Windows Startup and Shell Programs
ComponentDescription
WIN.COM DOS program that launches Windows.Optional
WINTITLE.RLE Default desktop wallpaper. Displays Windows 3.1 logo.Optional
NORSHELL.EXE Norand shell program.Optional
WINFILE.EXE Windows File Manager shell, launched by NORSHELL.EXE.Optional
Table 3Ć2
Initialization Files
ComponentDescription
SYSTEM.INI Initialization file for Windows system and drivers. [BOOT.DESCRIPTION]
section of this file has version strings for drivers and applications.
WIN.INI Initialization file for Windows applications.Required
WINFILE.INI Initialization file for WINFILE.EXE.Optional
Table 3Ć3
Windows System Kernel
ComponentDescription
SYSTEM/DOSX.EXE DPMI server.Required
SYSTEM/WSWAP.EXESwaps out standardĆmode Windows when a DOS application is run.
Optional, if no DOS applications are run during a Windows session.
SYSTEM/KRNL386.EXE Windows 3.1 kernel for 32Ćbit systems.Required
SYSTEM/GDI.EXE Windows 3.1 Graphical Device Interface code.Required
SYSTEM/USER.EXE Windows 3.1 user interface.Required
Required
Optional
Applications
3. Windows
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 3-3
Page 72
SECTION 3Supporting Windows Applications
Table 3Ć4
Windows Enhanced Mode Files
ComponentDescription (All files in this group are needed only for Enhanced mode.)
SYSTEM/WIN386.EXE Virtual machine manager and default virtual device drivers.Required
SYSTEM/VTDAPI.386 Virtual timer device API. Needed for Enhanced mode multimedia.Required
SYSTEM/NORVKD.386 Windows 3.1 system file. Runs Windows in enhanced mode.Required
SYSTEM/VPOWERD.386Windows 3.1 Enhanced Mode Power Management support.Required
Table 3Ć5
Windows System Device Drivers
ComponentDescription
SYSTEM/COMM.DRV Windows 3.1 serial port driver.Required
SYSTEM/KEYBOARD.DRVWindows 3.1 keyboard driver.Required
SYSTEM/SYSTEM.DRV Windows 3.1 system driver.Required
SYSTEM/YESMOUSE.DRV Windows 3.1 driver reports a mouse is available.Required
SYSTEM/6100DISP.DRV PEN*KEY 6100 portrait video driver.Required
SYSTEM/SOUND.DRV Windows 3.1 sound driverOptional
SYSTEM/UNIDRV.DRV Windows 3.1 universal printer driver. Used by NOR4800.DRV.
Required
Required only if NOR4800.DRV for NPCP printing is used.
ComponentDescription
SYSTEM/NORWINPM.DRV Windows Advanced Power Management (APM) driver for 6100
Applications
3. Windows
SYSTEM/UCLKPEN.DRV Pen driver for 6100 Computer. Provides pen input for Microsoft
SYSTEM/61SCAN.DRV Scanner driver for 6100 Computer. Provides barĆcode scanning
SYSTEM/NORNPCP.DRV Provides NPCP printing support under Windows 3.1. Optional
SYSTEM/NORIRDA.DRV Provides IrDA printing capabilities. Optional
SYSTEM/NOR4800.DRV Windows 3.1 4800 series printer driver, supports NPCP printing.Optional
SYSTEM/NOR6805.DRV Windows 3.1 6800 series printer driver, supports IrDA printing.Optional
Required
Computer. Provides interface to power management and system
control hardware. Requires APM BIOS (ELANAPM.EXE).
Required
Windows for Pen Computing 3.1, mouse input for Windows 3.1.
Optional
capabilities for Windows.
Table 3Ć7
EGA Device Fonts
R
3-4 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 73
SECTION 3Supporting Windows Applications
Table 3Ć8
Popular System DLLs
ComponentDescription
SYSTEM/COMMDLG.DLLProvides common dialogs like file open, file save, and printing.Optional
SYSTEM/LZEXPAND.DLLFunctions for file expansion and copying.Optional
SYSTEM/SHELL.DLL Basic services common to Windows 3.1 shell programs, such as
File Manager.
SYSTEM/VER.DLL Windows versioning API.Optional
SYSTEM/WIN87EM.DLLFloatingĆpoint emulator.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
Table 3Ć9
Utilities
ComponentDescription
PENALIGN.EXE PEN*KEY 6000 Series pen calibration application.Optional
Optional
NORAND Shell for Windows: NORSHELL.EXE
The Windows shell replacement program, NORSHELL.EXE, provides system
management functions that are specific to PEN*KEY 6000 Series Computers.
NORSHELL.EXE, which must be loaded in all Windows configurations, provides
a method for launching multiple applications when Windows starts; this is funcĆ
tionality that is similar to that provided by the standard Windows shells (ProĆ
gram Manager and File Manager).
Installation
To install NORSHELL.EXE as the Windows shell program, edit the shell=" line
in SYSTEM.INI, as shown in the following example:
shell=norshell.exe
Configuration: WIN.INI Entries
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.IĆ
NI in order to launch an application. You may also specify any command
line switches that required by the application.
" 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 so that conflicts with other Windows shell programs can be
avoided. For example, use the Windows File Manager as your application
and have it process the WIN.INI run=" and load=" lines.
Applications
3. Windows
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 3-5
Page 74
SECTION 3Supporting Windows Applications
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 that is
used by the standard Windows shell programs. The utilities or application
programs are run in the same order as they appear in the WIN.INI file; and
are displayed with the SW_SHOWMINIMIZED setting. Refer to the Windows
3.1 documentation for the ShowWindow function.
NORSHELL WIN.INI Examples
All of the examples in this paragraph assume the SYSTEM.INI entry docuĆ
mented in the preceding paragraphs. The following example WIN.INI file demĆ
onstrates running an application, MYAPP.EXE, after changing to drive C" and
directory \app." Before running the application, the Windows clock and calculaĆ
tor programs are executed.
Windows Power Management Driver:
NORWINPM.DRV, VPOWERD.386
Shutting Down Windows
Windows shuts down automatically whenever the shell program exits. However,
because NORSHELL does not exit (in that sense), it shuts Windows down whenĆ
ever 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.
The NORWINPM.DRV driver provides a Windows interface to the APM BIOS
extensions, for both the Standard and Enhanced modes. VPOWERD.386 is also
included for the Enhanced mode. The driver's functions include the following:
" Idling the CPU when Windows has nothing to do.
" 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.
The information in this paragraph corresponds to version 1.05 of NORĆ
WINPM.DRV.
R
3-6 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 75
SECTION 3Supporting Windows Applications
Installation
NORWINPM.DRV is a Windows 3.1 installable driver. It requires that the APM
1.1 BIOS extensions be installed before Windows is started. The APM BIOS
(that NORWINPM needs) may come from the builtĆin system BIOS or from a
separate DOS TSR, ELANAPM.EXE, which must be run before starting WinĆ
dows.
To install NORWINPM.DRV:
Place a keyword on the drivers=" line and add a line to the [drivers]" section of
SYSTEM.INI, equating the keyword with the actual path to NORWINPM.DRV.
This is the typical approach. The power management entry should come first on
the
drivers=" line.
The following is an example of a section of the SYSTEM.INI file, showing the use
of the SYSTEM.INI commands.
drivers= tells Windows to load the installable drivers. This list of drivers is the
standard driver list (in the order that it needs to be). The significant drivers
here, are power and pen. These are merely token names for the drivers. The
actual driver names are specified in the following [drivers] section of the
SYSTEM.INI file:
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, NORDOSPM.EXE, if the 6100 Computer is
running Windows.
Configuration
NORWINPM.DRV supports the SYSTEM.INI entries described below. Place
them in the [POWER Driver] section of SYSTEM.INI. Note: case is insignificant.
Fuel Gauge Settings
WindowX, WindowY
Valid value:0
Applications
3. Windows
It defaults to the lower right corner of screen (last position).
These entries set the initial screen position of the fuel gauge. They can be set to
offscreen coordinates, as well, so the gauge can be hidden, if desired. These enĆ
tries are updated whenever the user moves the fuel gauge.
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 3-7
Page 76
SECTION 3Supporting Windows Applications
OnTop
Valid values:0, 1
Default value:1
This determines whether the fuel gauge is a topmost" window or not. A topĆ
most" window appears above all other nonĆtopmost windows, typically floating
above the active window. Setting this entry to 0 allows other windows to cover
the fuel gauge whenever they are selected.
TextOptions
Valid values:0x0000 to 0x000F
Default value:0x0006
This is an Options Bitmap that indicates the items to be displayed in text form
beneath the fuel gauge icon. The bits are:
This entry enables the Power Miser by setting this entry to 1. The power miser
can increase battery life when running an application that does not allow the
Windows kernel to idle. It does this by forcing the Windows kernel to idle at apĆ
propriate times. If the busy" bar on the fuel gauge icon is always topped out,
try enabling this entry. The Miser can be somewhat invasive so the best apĆ
proach is to implement a well powerĆmanaged application that allows the system
to idle on its own. See the description below, for MiserLimit.
MiserLimit
Valid values:0 to 255
Default value:2
As mentioned above, the Miser mode can be invasive to the system. It might
force too many idles to occur. This entry limits the amount of idling that Miser
mode forces. Higher values cause fewer idles. If it appears that the Miser is
slowing down or interfering with an application, increase this value to lessen the
interference (which also lowers power savings.) If the interference cannot be
cleared, disable the miser mode.
R
3-8 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 77
SECTION 3Supporting Windows Applications
Message Output Settings
ApmSuspendDialog
Valid values:0, 1
Default value:1
When the user presses the on/off button, NORWINPM.DRV polls all of the drivĆ
ers and programs in the system with a USERSUSPEND message (see below) to
determine if it is OK to suspend. This configuration entry determines whether
NORWINPM.DRV displays a dialog notifying the user if an application or driver
refuses to suspend.
ValueDescription
0No warnings or debug messages, 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 suspends the system after
finishing the critical activity in which it was involved. It is very impolite to ignore the button
press and not give the user any feedback.
1NORWINPM.DRV notifies the user that the suspend request failed by displaying a message (see
messages below) in a dialog box. Execution continues after the user presses an OK button.
MsgLevel
Valid values:0, 1, 2, 8, 10, 15 (see table below)
Default value:1
This configuration entry indicates which APM events cause a dialog to be preĆ
sented to the user by NORWINPM.DRV. Note that each dialog level includes all
the messages from the levels below it.
ValueDescription
0No Warnings or Debug Messages: appropriate when an application wants to control the timing
and presentation of power management event notification. The application would catch the
WM_POWER" messages broadcast by NORWINPM.DRV and deal with them accordingly.
1Warnings: only display dialogs for APM warnings, such as battery status. See
MsgRepeatMinutes below. This is the driver default. Note that if the user does not clear the
dialog by pressing the OK button or by pressing a key, the dialogs continue to stack up.
2Infrequent Dialog Information: display dialogs for warnings and informational messages, such as
suspend/resume, etc. This is a debugĆmode switch. The only messages that it does not show are
messages that repeat frequently. In addition, this setting causes the system to beep periodically
when system activity is detected such as keystrokes, pen activity, or communications messages.
This can determine if suspend or backlight timeĆouts are held off correctly.
5A debug setting that displays messages that repeat frequently (every 10 seconds or so) but are
different each time.
8Frequent, But NonĆRepeating Debug Information:
10Frequent, Repeating Debug Information: a debug setting that additionally displays messages
that repeat frequently and do not vary. This setting usually causes a steady stream of dialogs to
appear at short intervals (10 seconds or less).
15All Messages:
Applications
3. Windows
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 3-9
Page 78
SECTION 3Supporting Windows Applications
NORWINPM.DRV SYSTEM.INI Configuration Example
To display only warnings (the typical mode), turn on the power miser, and allow
other windows to cover the fuel gauge, place the lines shown below into
SYSTEM.INI:
[Power Driver]
MsgLevel=1
Miser=1
OnTop=1
User Notifications
Installation Messages
The following messages are displayed in a dialog box when an error occurs while
NORWINPM.DRV is initializing.
Could not find APM BIOS, Windows power management not installed!
APM BIOS connect failed!
Power management disabled!
Could not allocate a timer for polling APM BIOS!
Power management disabled!
Applications
3. Windows
The message below appears in a dialog when the user presses the On/Off" (SusĆ
pend/Resume) button and the system cannot suspend because a Windows apĆ
plication, driver, or DOS TSR refused the suspend request.
An application or driver is refusing to suspend
Informational Messages
The messages below appear in a dialog box whenever the ApmEventDialogs
entry in SYSTEM.INI (see above) is set to the value of 2, or higher. They are inĆ
tended for power management debugging. See the Standard APM Event Codes
paragraph, on page 3Ć13, for descriptions of APM event codes.
The NORWINPM.DRV fuel gauge icon, depicted below, shows all of the possible
elements:
" The battery (on right side of gauge) displays the charge level. When it is
completely filled in, the battery is fully charged.
" The top terminal of the battery contains a +" symbol when charging.
" The smaller column to the left of the battery is the Busy Meter". It conĆ
tains a bar that moves up when the system is busy. If the bar pegs", a
blinking dash " symbol appears at the top of the bar to show that the sysĆ
tem is not idling.
The optional text below the battery and busy meter can be enabled or disabled
with the TextOptions SYSTEM.INI entry.
Keep in mind that the position of the fuel gauge on the screen is controlled by
parameters in the SYSTEM.INI file. And, is therefore under application control.
It can be located anywhere on the screen or can be moved off of the screen, using
the parameters in the SYSTEM.INI file. In addition, the user can move it
around at will, simply by dragging it around with the finger or stylus.
R
3-10 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 79
SECTION 3Supporting Windows Applications
Also, the Always on Top" feature can be enabled or disabled, using the OnTop="
setting in the [
Figure 3Ć1 depicts a 6100 Computer screen with a typical location for the fuel
gauge, showing an expanded view of the gauge details to the right of the screen.
Power Driver]" section of the SYSTEM.INI file.
Figure 3Ć1
Fuel Gauge Display
NORAND Power Management Programming
Interface for Windows
Windows Power Management
The APM operating system driver, NORWINPM.DRV, cooperates with the APM
BIOS, to save as much power as possible without application or driver intervenĆ
tion. This allows a system to be built with reasonable power consumption, withĆ
out needing to create powerĆaware drivers and applications. Even better power
management can often be achieved by cooperating with applications and drivers.
CPU Power Management
NORWINPM.DRV monitors the Windows task scheduler to determine when the
CPU is idle. When idleness is detected, the CPU and other components are
placed into a low power state until the next hardware interrupt occurs. The sysĆ
tem then returns to full speed to process the interrupt and any Windows events
created by the interrupt. When an application is idle, 95% of CPU current can
usually be saved.
Power Management by Windows Applications
Windows applications can benefit from system power management, because it
frees up the Windows kernel and allows NORWINPM.DRV to idle the CPU.
Avoiding busy loops is a requirement to maintain system response in a cooperaĆ
tive multitasking system like Windows;. but busy loops also waste system power.
Applications should be careful to never perform busyĆwait when implementing
timeĆouts or polling routines. Instead, use an eventĆbased approach. Perhaps by
acquiring a system timer, so the system can idle during periods of inactivity.
Applications
3. Windows
PeekMessage() loops are often used instead of the usual GetMessage() loop whenĆ
ever an application has background processing to do. An application that uses
PeekMessage() must be careful to call GetMessage() or WaitMessage() whenever
there are no messages waiting and there is no background processing to do. ApĆ
plications that call PeekMessage() continuously does allow other Windows apĆ
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 3-11
Page 80
SECTION 3Supporting Windows Applications
plications to run if they have messages, which keeps your application WindowsĆ
friendly. But if there are no pending message for anyone, PeekMessage()
immediately returns to its caller and does not allow the Windows kernel to beĆ
come idle. The result is an application that calls PeekMessage() more or less conĆ
tinuously with short breaks while other applications process their messages. In
other words, a cooperative busy loop" is the result. The powerĆfriendly way to
implement a PeekMessage() loop is to implement the following:
Call PeekMessage()
if no mess ages, perform bac kground processing
if there is no background proc essing to do, then
call GetMessage()
or
call WaitMessage()
"
NOTE:Some Windows application libraries are not written with mobile computing in mind and may
make use of PeekMessage() busy-loops in their message handlers.
Holding Off Suspend Time-outs
If an application is busy with communication or processing, for extended periods
of time with no user interaction, the system might time out into suspend during
processing. In order to prevent this, the application should fail SUSPENDREĆ
QUEST broadcasts while performing CPUĆbound tasks. As mentioned above,
USERSUSPEND requests can also be failed, but the application should inform
the user about this type of action, otherwise the user may think that the system
is locked up (since the Suspend/Resume button does not work) and might reset
the system or take some other drastic measure.
Applications
3. Windows
APM Event Broadcasts
The APM BIOS specification defines event codes for various power management
events. NORWINPM.DRV collects these events from the APM BIOS and either
handles them directly or broadcasts them to the system components (Windows
drivers, applications and DOS TSRs). System components can use the events to
monitor system power state changes. Some APM events have responses which
can implement cooperative power management.
Receiving APM Event Broadcasts
NORWINPM.DRV broadcasts APM events to Windows applications, system drivĆ
ers, installable drivers, VxDs, DOS drivers, and DOS TSRs loaded installed in
the System VM. Each device has a different broadcast API. The most common
APIs are documented below.
Windows Applications
Windows applications receive APM event broadcasts via the message procedures
of any topĆlevel windows that they own. The message format is:
Msg:WM_POWER (defined in WINDOWS.H)
wParam:PWR_* event code defined in APMCODES.H or WINDOWS.H.
lParam:Undefined
Returns:Application should return PWR_FAIL (from WINDOWS.H) if it wishes to
reject an event. Otherwise, PWR_OK should be returned.
R
3-12 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 81
SECTION 3Supporting Windows Applications
Windows Installable Drivers
Windows installable drivers receive APM event broadcasts via their DriverProc
entry points. The message format is:
Msg:DRV_POWER (defined in WINDOWS.H)
lParam1:PWR_* event code defined in APMCODES.H or WINDOWS.H.
lParam2:Undefined
Returns:The driver should return PWR_FAIL or PWR_OK
DOS Real-Mode Drivers and TSRs
DOS realĆmode system components receive APM event broadcasts through softĆ
ware interrupt 2Fh. A driver or TSR that hooks the broadcast should nest to
previous owners of the interrupt before handling it; even if it wants to fail the
call. This approach allows other drivers an opportunity to see the event; even if
it results in failing. The message format is:
AX:530Bh, the APM event broadcast ID
BX:APM_* event code defined in APMCODES.H.
CX:DX:Optional 32Ćbit Norand APM event parameter
Returns BX:Set BX to 0 for success or 80h to fail the event.
Windows System Drivers
Windows system drivers receive APM event broadcasts through a defined entry
point. NORWINPM.DRV does not currently broadcast to system drivers, since
none of them has this entry point.
Standard APM Event Codes
These are the most common APM event codes defined and is described in the
Intel/Microsoft APM Specification, versions 1.0 and 1.1. There are additional
events, but these are the ones typically handled by drivers and applications.
Events marked (1.1)" are only valid in APM 1.1, and may not be present on
open systems that only implement 1.0 events. Additional clarification of
NORWINPM.DRV's use of these events is given below. There are other APM
codes that may also be broadcast.
SUSPENDREQUEST, System Suspend Request Notification
A suspend timeĆout is pending. Drivers and applications should fail the event if
they are busy. If the event is failed, NORWINPM.DRV restarts the suspend timeĆ
out suspend request but does not suspend the system.
SUSPENDRESUME, Normal Resume System Notification
The system has returned from a suspend timeĆout or a user suspend. Drivers
and applications should respond to system changes at this time.
PWRCHANGE, Power Status Change Notification
Applications
3. Windows
Power status has changed. The optional parameter of this event message conĆ
tains the first four bytes of the current
the Tool Kit). You can use the message to determine whether the system is runĆ
ning on battery power or line power without having to poll NORWINPM.DRV.
PEN*KEY
tagPOWER_STATUS (refer to NORAPM.H, in
R
6100 Computer Programmer’s Reference Guide 3-13
Page 82
SECTION 3Supporting Windows Applications
BATLOW, Battery Low Notification
The system battery is running low. The optional parameter of this event mesĆ
sage contains the last four bytes of the current tagPOWER_STATUS . Use the
message to determine the current battery status without polling NORĆ
WINPM.DRV.
USERSUSPEND, User System Suspend Request Notification
The user has pressed the suspend/resume switch and wants to suspend the sysĆ
tem. Drivers or applications that attempt to fail this request probably become
an annoyance to the user unless the drivers put up some sort of polite explanaĆ
tion as to why the system does not turn off when the switch is pressed. In any
case, the driver or application must prepare for an impending suspend because
the APM driver is allowed to override the fail request and suspend the system.
TIMEUPDATE, Update Time Notification
This event is issued whenever the time has been updated to correct for timeĆ
warp" that is not due to a suspend. Applications that perform processing tied to
real time should check the time whenever they see this event, in addition to
checking the time whenever they see any of the resume events.
Applications
3. Windows
CRITICALSUSPEND, Critical System Suspend Notification
This event is never broadcast. NORWINPM.DRV immediately suspends the sysĆ
tem when it receives it and broadcasts a CRITICALRESUME event upon resumĆ
ing.
CRITICALRESUME, Critical Resume System Notification
The system was suspended without sending a notification broadcast in advance.
This event is usually caused by a power failure. Drivers should typically disable
and reenable themselves when receiving this message.
STANDBYREQUEST, System Standby Request Notification
Because of the efficacy of the suspend mode, NORAND systems do not currently
implement a standby mode. In addition to STANDBYREQUEST, the USERSTANDBY
and USERSTANDBYRESUME messages are also ignored or are never generated.
APM Event Code Broadcast Values
Refer to the APM Event Code Broadcast Values paragraph, in Appendix A, SamĆ
ple Configuration Files, for a listing of the event codes and their values.
Generally, Intermec Technologies Corporation attempts to use APM 1.1 stanĆ
dardized event codes whenever appropriate. However, Intermec Technologies
Corporation may choose to make additional events available on systems with exĆ
tended functionality. The OEM codes listed in APMCODES.H represent currentĆ
ly defined codes, but does not imply that all or any OEM events are available on
any particular Intermec system.
R
3-14 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 83
SECTION 3Supporting Windows Applications
Windows Pen Driver: UCLKPEN.DRV
The Windows pen driver (UCLKPEN.DRV) interfaces the pen digitizer to WinĆ
dows 3.1. The digitizer may be based on resistive touchĆpanel technology; or it
may use active electronics.
Pen Applications
When Microsoft Windows for Pen Computing is executing, the driver acts as a
pen device. At other times, the driver acts as a mouse device. Usually, the pen
simply appears as a mouse device. Any Windows application that can use a
mouse can use the pen. Note that penĆdown" is equivalent to pressing the left,
or inner," button on a desktop mouse.
If Microsoft Windows for Pen Computing is loaded, the pen can appear to be both
a mouse and an ink device. The Microsoft Windows for Pen Computing developĆ
er's kit documents the inking API that captures and manipulates ink input.
Now, which mode should your application use: mouse or inking device? In generĆ
al, applications that do not require handwriting recognition should simply treat
the pen as a mouse. Mouse input is quite adequate for pointing and drawing
tasks such as signature capture. Microsoft Windows for Pen Computing requires
additional storage and processing resources; therefore, it should be used when
handwriting recognition is a requirement.
You can configure the Windows pen driver by editing the appropriate entries in
SYSTEM.INI. Unless otherwise noted, all entries are placed in the [PenDriver]" section of SYSTEM.INI.
To install UCLKPEN.DRV, place a keyword on the drivers=" line, in the
[boot] section of SYSTEM.INI, and add a line to the
SYSTEM.INI equating the keyword with the actual path to UCLKPEN.DRV. If
you are using Microsoft Windows for Pen Computing, place the pen driver entry
in the [boot] section of SYSTEM.INI (drivers=...) before the (penwindows) entry,
in the [drivers] section of the SYSTEM.INI. Although the following example
shows Microsoft Windows for Pen Computing being installed, it is not required
for digitizer use.
[drivers]" section of
Applications
3. Windows
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 3-15
Page 84
SECTION 3Supporting Windows Applications
Required SYSTEM.INI Entries
SYSTEM.INI:
[boot]
drivers= power irda pen penwindows scanner npcp
drivers= tells Windows to load the installable drivers. This list of drivers is the
standard driver list (in the required order). The significant driver here, is
penwindows. This is just a token name for the driver. The actual driver name
is specified in the [drivers] section of the SYSTEM.INI file:
pen=UCLKPEN.DRV tells Windows the actual name of the installable driver
named in the [boot] section of the SYSTEM.INI file.
penwindows= tells Windows the name of the installable PENWIN driver.
Refer to the example in the SYSTEM.INI Configuration Example paragraph or
see the [Pen Driver] section in the example SYSTEM.INI file, in Appendix A,Sample Configuration Files, for further details on how to configure the Windows
Pen driver.
Applications
3. Windows
Hardware Interface
These entries, in the SYSTEM.INI file, initialize the hardware interface for the
PEN*KEY 6000 Series Computer.
Unless otherwise specified, any of these entries used should go into the [pen drivĆ
er] section of the SYSTEM.INI file.
Most of these hardware interfaces default to the values needed for the PEN*KEY
6000 Series Computer and should not need to be set. Note the required values".
PortAddr
Valid values:0 to 1023
Default value:520
Required value for 6100 Computer:512
This entry sets the decimal digitizer base I/O port address.
IrqLevel
Valid values:0 to 15
Default value:12
Required value for 6100 Computer:14
This entry sets the decimal IRQ level used by digitizer.
BaseClock
Valid values:0 = 33 MHz
Default value:0
"
NOTE:This entry sets the base clock value for Gazelle/Logitech digitizer. The only value that is sup-
ported by the PEN*KEY 6000 Series Computer is the default value of 0.
R
3-16 PEN*KEY
6100 Computer Programmer’s Reference Guide
1 = 2 MHz
2 = 14 MHz
Page 85
SECTION 3Supporting Windows Applications
PointsPerSecond
Valid values:1 to approximately 200
Default value:50
This entry sets the initial digitizing rate, in packets per second. The default valĆ
ue is sufficient when using the pen only as a pointing device. Values between
100 and 150 give better results, when using handwriting recognition, such as
when Microsoft Windows for Pen Computing is installed. This value must be in
the range of 120-150 for handwriting recognition.
MaxIPS
Valid values:0 to approximately 150
Default value:75
This entry sets the fastest movement allowed, in inches per second. The default
value should be adequate for PEN*KEY 6000 Series Computers.
Digitizer Calibration
These entries, in the SYSTEM.INI file, set the calibration of the digitizer for the
PEN*KEY 6000 Series Computer.
Unless otherwise specified, any of these entries used should go into the [pendriver] section of the SYSTEM.INI file. Most of these hardware interfaces deĆ
fault to the values needed for the PEN*KEY 6000 Series Computer, and should
not need to be set. Note the required values".
cxRawWidth
Valid values:0 to 32767
Default value:4500
This entry sets the physical width of the digitizer, in thousandths of an inch, in
the display's native (nonĆrotated) hardware orientation. The default value
should be adequate for PEN*KEY 6000 Series Computers.
cyRawHeight
Valid values:0 to 32767
Default value:3000
This entry sets the actual height of the digitizer, in thousandths of an inch, in
the display's native (nonĆrotated) hardware orientation. It should not need to be
specified for the PEN*KEY 6000 Series Computers.
wDistinctWidth
Valid values:0 to 32676
Default value:3500
This entry sets the width of the display, in its nonĆrotated orientation, in digitizĆ
ing units. It is set by the PENALIGN.EXE calibration applet.
wDistinctHeight
Applications
3. Windows
Valid values:0 to 32767
Default value:3045
This entry sets the height of the display, in its nonĆrotated orientation, in digitizĆ
ing units. It is set by the PENALIGN.EXE calibration applet.
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 3-17
Page 86
SECTION 3Supporting Windows Applications
wOffsetX
Valid values:0 to 32767
Default value:1000
This entry sets the digitizer value that corresponds to the leftmost point on the
rotated display, plus 1000. Negative offsets, to 1000, are specified by using valĆ
ues less than 1000.
wOffsetY
Valid values:0 to 2767
Default value:1000
This entry sets the digitizer value that corresponds to the uppermost point on
the rotated display, plus 1000. Negative offsets to -1000 are specified by using
values less than 1000.
UseNV
Valid values:0, 1
Default value:1
When this entry is nonzero, Norand nonvolatile memory reads and stores the
digitizer calibration information.
When this entry is set to 0, it overrides the calibration stored in nonvolatile storĆ
age, with the calibration values from SYSTEM.INI.
Applications
3. Windows
Display Orientation
These entries, in the SYSTEM.INI file, match the orientation of the PEN*KEY
6000 Series digitizer to the screen display. The Pen driver must take into acĆ
count any rotation of the screen display, as well as additional rotational offset of
the digitizer relative to the display. The calibration values given above are
swapped and flipped to match the final user orientation of the digitizer.
Unless otherwise specified, any of these entries used should go into the [pen drivĆ
er] section of the SYSTEM.INI file.
DisplayOrientation
Valid values for degrees of rotation: 0 = 0
1 = 90 (default)
2 = 180
3 = 270
This entry specifies the value for the orientation of the display. 0 is the default
hardware orientation. Values from 1 to 3 indicate successive 90Ćdegree clockwise
rotations. Locate this entry in the [display driver] section of SYSTEM.INI.
PenOrientation
Valid values for degrees of rotation: 0 = 0
1 = 90
2 = 180 (default)
3 = 270
This entry specifies additional rotation of the pen digitizer orientation relative to
the display, which may already be rotated by the preceding DisplayOrientation
value. The pen orientation, relative to the default hardware display orientation,
is the DisplayOrientation value (preceding) added to the PenOrientation value.
R
3-18 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 87
SECTION 3Supporting Windows Applications
FlipX
Valid values:0, 1
Default value:0
Required value for 6100 Computer:1
When nonzero, the XĆaxis values are inverted.
SYSTEM.INI Configuration Example for UCLKPEN.DRV
The following is an example section of SYSTEM.INI, to configure the 6100 ComĆ
puter with the default values for the Windows Pen Driver:
[Pen Driver]
; Increase wOffsetX to move cursor down relative to pen.
wOffsetX=696
; Increase wOffsetY to move cursor to left relative to pen.
wOffsetY=709
; Increase wDistinctWidth to make cursor move slower relative to pen in the
; up/down direction on screen.
wDistinctWidth=3504
; Increase wDistinctHeight to make cursor move slower relative to pen in the
; left\right direction on screen.
wDistinctHeight=3680
; Sets initial digitizing rate (packets / second)
; Range: 1 200.
; Set to 120 150 if you install handwriting recognition.
PointsPerSecond=135
; Set to required value.
PortAddr=512
; Set to required value.
IrqLevel=14
PenOrientation=3
FlipX=1
DoEOI=SMART
UseNV=1
cxRawWidth=4500
cyRawWidth=3000
[Display Driver]
DisplayOrientation=1
Windows Pen Calibration: PENALIGN.EXE
PENALIGN.EXE is the Windows penĆcalibration utility (with no parameters).
There are two screens, the first prompts to tap three times in marked screen
locations; the second prompts to overlay (match) the cursor and the pen position.
Alternatively, you can set the calibration by adjusting the calibration entries in
SYSTEM.INI. This is a fairly tedious approach that requires an understanding
of digitizer orientation and digitizer coordinate systems. To enable use of the calĆ
ibration entries in SYSTEM.INI, set the UseNV setting to 0.
Pen for Windows: PENWIN.DLL
The Windows pen program, properly known as Microsoft Windows for Pen ComĆ
puting, can be installed and used on the 6100 Computer. The Pen for Windows
files are located on the fourth diskette in the Tool Kit. Place the PENWIN.DLL
file into the WINDOWS\SYSTEM directory.
Applications
3. Windows
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 3-19
Page 88
Required SYSTEM.INI Entries
[boot]
drivers= power irda pen penwindows scanner npcp
drivers= tells Windows to load the installable drivers. This list of drivers is the
standard driver list. The significant driver is penwindows," a token name for
the driver. The actual driver name is in the SYSTEM.INI [drivers] section:
[drivers]
penwindows=PENWIN.DLL
penwindows=PENWIN.DLL tells Windows the actual name of the installable
driver named in the [boot] section of the SYSTEM.INI file (listed above).
"
NOTE:A recognizer must be purchased and installed for this application to be useful. Intermec
Technologies Corporation offers both CIC and Synaptics. Refer to the “Getting Started” section of this publication for information on handwriting recognition.
Required PENWIN.INI Entries
This is a sample PENWIN.INI file to use with Windows 3.1 on a 6100 Computer:
ScannerHardwareType: Controls the type of hardware the scanner is using.
This value must be set or the driver does not load. There is no default value.
Valid values are PEN*KEY/33, PEN*KEY, and TETHERED.
MessageBeepScanVerification: Controls the type of beep generated when a good
scan is obtained. Valid values are OFF, INTERNAL, EXTERNAL, and ALL.
ALL has the same effect as both internal and external.
MessageBeepStatusNotification: Controls the type of beep generated when a staĆ
tus change occurs. Valid values are OFF, INTERNAL, EXTERNAL, and ALL.
ALL has the same effect as both internal and external.
MessageBoxStatusNotification: Controls whether or not a message box is generĆ
ated when a status change occurs. Valid values are TRUE and FALSE.
EnableScannerWhenDriverLoads: Controls conditions under which the scanner
is enabled. Valid values are TRUE and FALSE. If this parameter is set to
TRUE, the following conditions are in effect:
" The scanner is enabled when it is loaded by Windows, and is always active
until Windows shuts down.
" Scanned data is directed to the keyboard buffer, so applications can pick up
scanned data as if it had been input through the keyboard.
" OpenDriver and CloseDriver calls are not required to be issued by the apĆ
plication to use the scanner.
" Multiplexing of the scanner and external COM2 connections is not allowed.
" This option uses more power.
DisplayScanningDataDialog: Controls whether or not the Scanning Data... diaĆ
log is displayed when the trigger is pulled. Valid values are TRUE and FALSE.
ShowWindowOnLoad: Controls whether or not the scanner window icon is disĆ
played on the screen. If this is FALSE, it is not possible to get to the scanner
window. Valid values are TRUE and FALSE.
EnableScanCodes: Controls whether or not the scanner includes Scan Codes in
the key messages that it generates. Valid values are TRUE and FALSE.
ScanKey: nn" is the hexadecimal scan code value for the key to fire the scanner
(i.e., you can program the Enter" key to fire the scanner).
ExternalFlashOnScan: Controls whether the Good Scan light is flashed manualĆ
ly by the scanner driver when the data is received. Valid values are TRUE and
FALSE.
AimingBeamDuration: Controls the length of time (in milliseconds) that a longĆ
range scanner using a dedicated UART emits an aiming beam. All other scanĆ
ners should have this option set to 0 (the default value).
Usage
Because the integrated scanner has its own dedicated UART, the communicaĆ
tions with the scanner are completely separated from the external communicaĆ
tions ports on the 6100 Computer.
When an OpenDriver is issued to the scanner, the dedicated UART hardware is
initialized.
When the CloseDriver
UART communications hardware. Any application multiplexing with the inteĆ
grated scanner is required to open" the UART hardware, to initialize it at a latĆ
er time when communications to the scanner is needed.
R
3-22 PEN*KEY
6100 Computer Programmer’s Reference Guide
call is issued, the scanner driver closes the dedicated
The scanner is powered on, and scanner data is delivered to the application with
the input focus as WM_CHAR messages. These messages are distinguishable
from standard" WM_CHAR messages in that the virtual key code in wParam is
the ASCII value of a scanned character and lParam is sent as 0x00000000 (in
particular, the OEM nibble (bits 16ć23) that contains the OEM scan code of 0).
An example of an CloseDriver call is as follows:
CloseDriver(hDRVR, (LPARAM)NULL, (LPARAM)NULL);
This turns the scanner off.
"
NOTE:See the Borland C++ help for OpenDriver / CloseDriver. See also Windows 3.1 SDK for
additional information.
NPCP Printing for Windows: NOR4800.DRV,
UNIDRV.DLL
NPCP printing support under Windows consists of DOS device driver
NORNPCP.SYS, a DOS TSR NORPAPI.EXE, and Windows printer driver
NOR4800.DRV/UNIDRV.DLL. These device drivers work together to provide
transparent NPCP printing. Applications use the standard Windows printing
API (StartDoc(), EndDoc(), etc.) to print to a printer set up for LPT1.DOS output.
NPCP Printer=NOR4800,LPT1.DOS,15,45 tells Windows that there is a printer
named NPCP Printer that uses the NOR4800 printer driver to print, using the
DOS device LPT1 with 15Ćsecond device timeĆout and 45Ćsecond retry timeĆout.
[devices]
NPCP Printer=NOR4800,LPT1.DOS
NPCP Printer=NOR4800, LPT1.DOS tells Windows that there is a printer
named NPCP Printer that uses the NOR4800 printer driver to print, using the
DOS device LPT1. This section is included for compatibility with older Windows
applications and should match the entry in the [PrinterPorts] section of the
WIN.INI file (listed above).
drivers= tells Windows to load the installable drivers. This list of drivers is the
standard driver list (in the order that it needs to be). The significant driver here,
is npcp. This is just a token name for the driver. The actual driver name is speĆ
cified in the following [drivers] section of the SYSTEM.INI file:
[drivers]
npcp=nornpcp.drv
npcp= tells Windows the actual name of the installable driver named in the
[boot] section of the SYSTEM.INI file (listed above).
PrtPort= PrtPort specifies the printer port to use; 0=LPT1, 1=LPT2, 2=LPT3.
This option must match the options set in the CONFIG.SYS file and the
WIN.INI file (above).
Applications
3. Windows
3-24 PEN*KEY
deviceName= name of printer device to output to (LPT1, LPT2, or LPT3).
ComAddress= Communications port address.
ComVector= Communications IRQ vector.
FIFODepth= Determines FIFO usage on UART.
Usage
Communications Port Usage
The NPCP printer driver uses COM1 communication hardware directly. The
COM1 hardware is initialized and the external RSĆ232 driver hardware is powĆ
ered on, thus allowing the driver a free and clean" data path to the printer.
This makes it necessary to be careful when sharing the COM1 hardware with
any other driver. Currently, there is no method of arbitrating COM1 access, so
drivers must be enabled and disabled only when they are needed. This means
that printing in the background and trying to use another driver that talks to
the COM1 hardware causes undetermined problems.
R
6100 Computer Programmer’s Reference Guide
Page 93
SECTION 3Supporting Windows Applications
Basic Windows Printing
Once Windows is loaded, printing is accomplished through the standard printing
API. No special processing by the application is needed. The following sequence
demonstrates the correct method for printing under Windows:
1.Create a device context for the printer. GetPrinterDC() creates the device
context.
2.Set up the device context with the desired fonts, etc. Keep in mind that difĆ
ferent fonts cause Windows to print completely in graphics mode, which
may provide less performance than desired. SelectObject(...) sets the deĆ
sired font.
3.Set an abort procedure to handle errors during printing and allow the user
to cancel the print job. SetABortProc(...) sets an abort procedure.
4.Begin the printing operation by calling StartDoc(...) to inform GDI that you
want every output to be one job.
5.Begin each page of output by calling StartPage(...) to allow GDI to begin
sending data to the printer on a pageĆbyĆpage basis.
6.Create your page using standard GDI API like TextOut(...). The output opĆ
erations used take text and other objects and convert them into a binary
data stream that contains printerĆspecific escape codes. This data is
spooled" until the entire page is composed.
7.Use EndPage(...) to finish off a page. The entire page is then sent to the
printer. A form feed is generated to move the paper to the top of the next
page.
8.Use EndDoc() to complete the printing operation. AbortDoc() can cancel a
job. GDI cleans things up, if possible.
9.Free the instance of your abort procedure using FreeProcInstance(...).
Refer to the Windows SDK manual for more API information.
Default Error Handling Mode
Once the drivers are loaded as defined above, no special processing by the apĆ
plication is needed. This makes it possible for offĆtheĆshelf packages to take adĆ
vantage of NPCP. In this mode, all printerĆrelated errors are handled by the
NPCP driver. A message is displayed and the user has the ability to Cancel or
Retry. If the user selects Retry, the driver attempts to continue printing. If the
user selects Cancel, the driver attempts to clean up as best it can. The standard
Windows API returns a standard error, indicating that a problem occurred. This
is the application's signal to abort the print job.
Application-Defined Error-Handling Mode
This is probably the most common mode of operation. In this mode, the applicaĆ
tion can link to the NPCP driver in the same manner that it would link to any
Windows DLL. Once linked, the application can use the driver's API to perform
various operations. The application registers a callback with the driver. The apĆ
plication needs to perform the following actions to define a new error handler:
1.Link to driver and obtain PrtService entry point.
2.Call PrtService to enable the driver using PRT_ENABLE (0x0001).
3.Call PrtService to register the new handler using PRT_SETPROC (0x0010)
and the address of the new handler. The new handler should have the
following prototype:
extern “C” WORD _export FAR PASCAL ShowPrtError (WORD wCurErr)
Applications
3. Windows
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 3-25
Page 94
SECTION 3Supporting Windows Applications
This callback is called for each error and must return IDCANCEL (0x02),
IDRETRY (0x04), or 0. If the application returns 0, the default handler
processes the error. For consistency, the application should handle all the
errors. You can use any method for displaying the message you want. It is
best to make your dialog model if possible. Remember that, depending on
the method of displaying the message, you may need to translate the return
values into IDCANCEL or IDRETRY so the printer driver knows how to
deal with it. See the Error Codes and Messages topic later in this subsecĆ
tion for the various error conditions that can occur.
4.Perform normal printing operations.
5.Call PrtService to remove the error handler, using PRT_SETPROC(0x0010) and a NULL value for the handler address.
6.Call PrtService to disable the driver, using PRT_DISABLE (0x0002).
See the following Printer Services API topic for more information about available
printer services.
Printer Services API
The NPCP printer driver includes an Applications Program Interface (API) to
provide access to the features of the NPCP driver that are not available through
the standard Windows API.
Applications
3. Windows
Retrieving the API Entry Point PrtService
To use the API, the application must first obtain the entry point for the
PrtService procedure as described in the following code fragment:
hInstNorPrnt = LoadLibrary( “NORNPCP.DRV” );
if ( hInstNorPrnt <= HINSTANCE_ERROR ) {
MessageBox( NULL,
“Could not open printer driver.”, “ERROR”,
MB_OK | MB_ICONEXCLAMATION );
return FALSE;
}
lpfnPrtService =
(fpPrtService)GetProcAddress(hInstNorPrnt, “PrtService”);
if ( lpfnPrtService == NULL ) {
MessageBox( NULL,
“Unable to get address for\nPrtService”,“ERROR”,
MB_OK | MB_ICONEXCLAMATION );
return FALSE;
}
Calling PrtService
NORNPCP.DRV contains an exported procedure PrtService (HINSTANCE hInst,
WORD wOpt, LPARAM lParam1, LPARAM lParam2) that provides the API for
the driver. The parameters to the procedure are as follows:
HINSTANCE hInstinstance handle to our application.
WORD wOptoption for action you want to perform.
LPARAM lParam1doubleword that depends on the particular option.
LPARAM lParam2doubleword that depends on the particular option.
R
3-26 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 95
SECTION 3Supporting Windows Applications
The value returned by PrtService depends on the option selected. See specific
options for more details. The entry point can be called just like any Windows
procedure, as shown in the following fragment:
" Enable Driver. Enables the driver and installs the default error handler.
wOpt should be PRT_ENABLE (0x0001)
1Param1 should be 0
1Param2 should be 0
" Disable Driver: Disables the driver.
wOpt should be PRT_DISABLE (0x0002)
lParam1 should be 0
lParam2 should be 0
" Query Driver for support of an option: Determines whether the driver supĆ
ports a particular feature.
wOpt should be PRT_GETSUPPORT (0x0003)
lParam1 should be the value of the option you want to check.
lParam2 should be 0
" Install/Remove External Error handler: Installs or removes the applicaĆ
tions error handler.
wOpt should be PRT_SETPROC (0x0010)
lParam1 should be far pointer to your error handling procedure. A value
of 0 removes the handler. Call MakeProcInstance(...) to obtain the value.
lParam2 should be 0
" Flush Driver: Flushes all the data buffers so that everything that has been
sent to the printer actually gets printed.
wOpt should be PRT_FLUSH (0x0020)
lParam1 should be 0
lParam2 should be 0
" Forward: Advances the paper a certain number of lines. Use this option
with caution because Windows is not aware of the paper movement.
wOpt should be PRT_FORWARD(0x0030)
lParam1 should be the number of lines to advance
lParam2 should be 0
" Rewind: Rewinds the paper back into the printer a certain number of lines.
Use this option with caution because Windows is not aware of the paper
movement. It may also cause a head jam.
wOpt should be PRT_REVERSE(0x0040)
lParam1 should be the number of lines to advance
lParam2 should be 0
Applications
3. Windows
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 3-27
Page 96
Applications
3. Windows
SECTION 3Supporting Windows Applications
Special Paper Handling
The PrtService API supports two paperĆhandling options, PRT_FORWARD and
PRT_REVERSE, that should be used with care. They are provided to allow reĆ
ports to be voided" after they have been printed and inspected. Windows mainĆ
tains an internal value that knows" where the current page is relative to the top
of form and end of form. If you use these options, Windows can get confused.
The printer also knows where it is on the page (every 11 inches is a new page,
which may not match the actual paper if the topĆofĆform button is used incorrectĆ
ly). Windows always produces a form feed at the end of a page to advance the
paper to the top of the next page. These options are typically used around the
printers topĆofĆform marker, which confuses things even more. Different sizes of
paper behave differently and may jam the printer.
1.Generate your entire page (may be only half of the page) and call EndĆPage(...). This flushes everything printed to the printer and performs a
form feed. This places the print position up at the top of the next page.
2.Call StartPage(...) to reset the Windows device context so that you can do
more output.
3.Use PRT_FORWARD to advance the paper far enough so that the user can
determine whether the page is correct. Use a small number of lines, if you
can, especially if you are using multipart forms. If possible, do not advance
at all. This may be possible if you have not printed on the bottom inch of
the page or if the information is not critical. Ask the user to determine
whether the page is correct.
4.Use PRT_REVERSE to rewind the paper back into the printer the same
number of lines used in step 3 (assuming the paper is advanced in step 3).
This moves the print position to the top of the form.
5.Use PRT_REVERSE to rewind the paper back into the printer to get to the
spot at which to print your validation information. Rewind past the topĆofĆ
form marker so that the EndPage(...) in step 7 moves the print position to
the top of the next page. If not rewinded far enough, EndPage(...) causes it
to skip an entire page. To print on the last line of the page, a value of 2
works, assuming TextOut(...) starts at 0 for the Y value.
6.Use EndPage(...) to flush everything printed to the printer and performs a
form feed. The print position moves to the top of the next page and, if
right, Windows is reset so that the next StartPage(...) gets things going
again.
Print something on the page regardless of whether the user said the page was
correct. This validates the page only if the valid message is on the page. Errors
can occur while the system attempts to print the void message which may not
appear on the paper. If the absence of a void message means that it is valid, an
invalid page may be accepted as valid if the void message can not be printed.
NPCP Printer Driver Error Codes and Messages
Error #Error CodeError MessageExplanation
102PNRDYPrinter Not Ready
Check Connection
104RXTMONot Receiving
Check Connection
106TXTMONot Transmitting
Check Connection
R
3-28 PEN*KEY
6100 Computer Programmer’s Reference Guide
Printer not properly connected.
Printer stopped sending data in a packet.
Printer stopped receiving data in a packet.
Page 97
SECTION 3Supporting Windows Applications
Error #ExplanationError MessageError Code
111BADADRMAC Address ErrorPrinter rejected MAC address sent in a packet.
112GAPERRMAC Interchar Gap ErrorLength between bytes too long.
113LSRPEMAC Length Parity ErrorActual and declared packet sizes did not match.
120IFTSInvalid Comm FrameFrame sent in wrong sequence.
121NS_NE_VRNS <> VR ErrorReceived NS did not match expected NR.
122NR_NE_VSNR <> VS ErrorReceived NR did not match expected NS.
123RLENERRReceive Length ErrorActual and declared packet sizes did not match.
124MAC_CRCERR CRC ErrorInvalid CRC.
200FRMERRFrame Reject ErrorFrame was rejected.
201FRMERR_IFInvalid FrameFrame receive was invalid for current mode.
202FRMERR_NRNR MismatchNR did not match.
203FRMERR_NSNS MismatchNS did not match.
204NDMERRDisconnect ErrorPrinter is in NDM.
205FRMERR_SFFrame Too ShortFrame was too short.
206FRMERR_LFFrame Too LongFrame was too long.
210BINDERRBind ErrorInvalid bind sequence.
221IPLDURInvalid PLDUInvalid Presentation Layer Data Unit.
222-227 (see below)(see below)Messages for DATA WAS RCVD.
242-247 (see below)(see below)Messages for DATA WAS LOST.
255DEVERRDevice ErrorA device error occurred.
XXXUnknown ErrorUnrecognized error occurred.
The following messages are applicable when DATA WAS RECEIVED:
Error #Error CodeError MessageExplanation
222HEADJAM1Head JamHead jam. All data was flushed.
223PAPEROUT1Paper OutPrinter is out of paper.
224LOWVOLTS1Low VoltagePrinter undervoltage condition.
225HIVOLTS1Over VoltagePrinter overvoltage condition.
226LOWBAT1Low BatteryPrinter battery is low.
227COVEROFF1Cover OffCover was removed.
The following messages are applicable when DATA WAS LOST:
Error #Error CodeError MessageExplanation
242HEADJAM2Head JamHead jam. All data was flushed.
243PAPEROUT2Paper OutPrinter is out of paper.
244LOWVOLTS2Low VoltagePrinter undervoltage condition.
245HIVOLTS2Over VoltagePrinter overvoltage condition.
246LOWBAT2Low BatteryPrinter battery is low.
247COVEROFF2Cover OffCover was removed.
Applications
3. Windows
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 3-29
Page 98
IrDA Printing for Windows: NOR6805.DRV
The IrDA printing support, under Windows, consists of the DOS device driver,
NORIRDA.DRV, and the Windows printer driver, NOR6805.DRV. These device
drivers work together to provide transparent IrDA printing. Applications use
the standard Windows printing API (StartDoc(), EndDoc(), etc.) to print to a
printer set up for LPT2.DOS output.
spooler= tells Windows not to use Print Manager to spool printing.
DosPrint=no tells Windows not to print directly to the printer port.
device=IrDA Printer,NOR6805,LPT2.DOS specifies the default printer for WinĆ
dows.
The following section of the WIN.INI file are necessary to set up the paper paĆ
where:
PaperSize= specifies the size that Windows uses. For the 6805 Printer -- 258
selects standard roll", which has a fixed width of 1.89 inches and a fixed length
of 11 inches. 256 selects a userĆdefined paper size, which mandates the use of
the SizeUnit, PaperWidth, and PaperLength statements.
SizeUnit= establishes the units that specify paper width and length. For the
6805 Printer:
" 1" indicates a unit of 0.1 millimeter (the default)
" 2" indicates a unit of 0.01 inch
PaperWidth= For the NORAND 6805 Printer, paper width is fixed at 480 (SiĆ
zeUnit=1; 48 millimeters = 1.89 inch) or 189 (for SizeUnit=2)
R
3-30 PEN*KEY
6100 Computer Programmer’s Reference Guide
Page 99
SECTION 3Supporting Windows Applications
PaperLength= For the NORAND 6805 Printer, length values can be from 60 to
2794 (6 to 279.4 millimeters for SizeUnit=1) or 24 to 1100 (0.24 to 11.00 inches
for SizeUnit=2. A value of 1450 for SizeUnit=1 sets the length at 5.7 inches.
NORAND 6805=NOR6805,LPT2.DOS,15,45 tells Windows that there is a printĆ
er named NORAND 6805 that uses the NOR6805 printer driver to print, using
the DOS device LPT2 with 15Ćsecond device timeĆout and 45Ćsecond retry timeĆ
out.
[devices]
NORAND 6805=NOR6805,LPT2.DOS
The following [PrinterPorts] and [devices] sections of the WIN.INI file
sets up the printer name and printer driver.
where:
IrDA Printer=NOR6805,LPT2.DOS,15,45 tells Windows that there is a printer
named IrDA Printer that uses the NOR6805 printer driver to print, using the
DOS device LPT2 with 15Ćsecond device timeĆout and 45Ćsecond retry timeĆout.
[devices]
IrDA Printer=NOR6805,LPT2.DOS
where:
IrDA Printer=NOR6805,LPT2.DOS tells Windows that there is a printer named
IrDA Printer that uses the NOR6805 printer driver to print, using the DOS deĆ
vice LPT2. This section is included for compatibility with older Windows applicaĆ
tions and should match the entry in the [PrinterPorts] section of the WIN.INI
file (listed previously).
Required SYSTEM.INI Entries
[boot]
drivers= power irda pen penwindows scanner npcp
where:
drivers= tells Windows to load the installable drivers. This list of drivers is the
standard driver list (in the required order). The significant driver here, is irda.
This is a token driver name. The actual driver name is specified in the [drivers]
section of SYSTEM.INI:
[drivers]
irda=norirda.drv
irda= tells Windows the actual name of the installable driver named in the
[boot] section of the SYSTEM.INI file.
DeviceName= is the name of the printer device for output (LPT1, LPT2, LPT3).
This option must match settings in WIN.INI (listed previously).
UARTAddress= sets the base address on which the driver looks for the IR UART.
The default setting is 760 (2f8h). Valid settings are 1016 (3f8h for COM1), 760
(2f8h for COM2), 1000 (3e8h for COM3). Required setting for the 6100 ComputĆ
er: 1000 (3e8h for COM3).
Applications
3. Windows
PEN*KEY
R
6100 Computer Programmer’s Reference Guide 3-31
Page 100
SECTION 3Supporting Windows Applications
UARTIRQ= sets the IRQ line on which the UART interrupts. The default setĆ
ting is 3 (COM2). Other valid settings: 4 (COM1), 14. Required setting for the
6100 Computer: 14.
Technology= sets the type of the handĆheld computer. The default setting is
PENKEY. Required setting for the 6100 Computer is: 6100.
PrinterFlush= tells Windows to flush the printer's input buffer, as part of the
printer initialization stream.
PrtPort= PrtPort specifies the printer port to use; 0=LPT1, 1=LPT2, 2=LPT3.
This option must match the options set in CONFIG.SYS and WIN.INI.
The following section of the SYSTEM.INI file sets up the parameters for the
NORAND 6805 printer:
DoGraphicsOnly= forces the drivers to use Graphics commands for the entire
document. The default value is FALSE. Valid settings are TRUE and FALSE
(that is, graphics commands are used whenever device fonts are not used).
Applications
3. Windows
Timeout= sets idle time in seconds for a period of printer inactivity, after which a
wakeup is issued to the printer. Default is 10. Valid settings are 10 to 50.
WakeupChars= controls the number of NULL characters sent to the printer after
the Initialize command, for it to wake up properly. Default is 200. Valid settings
are 200 to 500. Setting a lower value may disrupt graphics printing, resulting in
garbled output to printer.
Usage
Default Error-Handling Mode
Once the drivers are loaded as defined in the preceding paragraphs, no special
processing by the application is needed. This makes it possible for offĆtheĆshelf
packages to take advantage of the IrDA protocol. In this mode, all printerĆreĆ
lated errors are handled by the IrDA driver. A message is displayed and the user
has the ability to Cancel or Retry. If the user selects Retry, the driver attempts
to continue printing. If the user selects Cancel, the driver attempts to clean up.
The standard Windows API returns a standard error, indicating that a problem
occurred. This is the application's signal to abort the print job.
Application-Defined Error-Handling Mode
This is probably the most common mode of operation. In this mode, the applicaĆ
tion can link to the IrDA driver in the same manner that it would link to any
Windows DLL. Once linked, the application can use the driver's API to perform
various operations. The application registers a callback with the driver.
The application needs to perform these actions to define a new error handler:
1.Link to driver and obtain PrtService entry point.
2.Call PrtService to enable the driver, using PRT_ENABLE (0x0001).
3.Call PrtService to register the new handler, using PRT_SETPROC (0x0010)
and the address of the new handler. The new handler should have the
following prototype:
extern “C” WORD _export FAR PASCAL ShowPrtError( WORD wCurErr )
R
3-32 PEN*KEY
6100 Computer Programmer’s Reference Guide
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.