Intermec PEN*KEY 6100 Programmer's Reference Manual

Page 1
PEN*KEYR 6100 Computer
PROGRAMMER’S
REFERENCE GUIDE
"""""""""""""""""""""
P/N 977-054-001
Revision B
Page 2
" NOTICE The 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.
Page 3
CONTENTS
""""""""""""""""""""
Preface
Introduction 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Scope 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Flash Version 1.16 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Level of Expertise Needed 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
For the New User 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Related Publications 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Look at What has Changed (from previous editions) 2. . . . . . . . . . . . . . . . . . . . . . . . .
Recent Changes 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Information 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interrupt Index 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reprogramming Flash Memory 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Earlier Changes 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Organization in General 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sample Configuration Files 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Common 6000 Series Information 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Structure of the Book 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Locating Applications in this Book 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Customer Support 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Factory Service 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Customer Support Center 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Web Site 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bulletin Board Service 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SECTION 1
Getting Started
Introduction 1Ć1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
An Open System Environment 1Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction to the 6100 Computer 1Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How the Hardware is Different 1Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Processor 1Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Display 1Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
User Input 1Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Power Management 1Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Batteries 1Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Memory 1Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Input, Output, and Storage Devices More Varied 1Ć4. . . . . . . . . . . . . . . . . . . . . . . . .
PC Card 1Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Surface and Pin Connections 1Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Infrared Printing 1Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Serial Data Communications 1Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Keep the System Environment in Mind 1Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Hardware Ports 1Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tool Kit for the 6100 Computer 1Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
File Integrity Verification Utility: CRC32.EXE 1Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tips for Getting Started 1Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Configuration 1Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Minimum Development Configuration 1Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sample Configuration Files 1Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PEN*KEYR 6100 Computer Programmer’s Reference Guide i
Page 4
CONTENTS
Reprogramming Flash Memory 1Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Updating to Flash Version 1.16 or Later 1Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DOS Configurations 1Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows Configurations 1Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Prerequisites for IFL Card Creation 1Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a Master Mode Boot (IFL) Card 1Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Updating PEN*KEY 6100 Flash 1Ć9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a Custom Flash 1Ć9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Key Files Used in the Flash Upgrade Process 1Ć11. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Development Environments 1Ć11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DOS 1Ć12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PenDOS Handwriter Recognition System 1Ć12. . . . . . . . . . . . . . . . . . . . . . . . . . . .
PenPal (DOS) 1Ć12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PenRight! Pro (DOS) 1Ć12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows 1Ć13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Handwriting Recognition 1Ć13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CIC Handwriter Recognition System for Windows 1Ć13. . . . . . . . . . . . . . . .
Synaptics Handwriter Recognition HRĆ1200 1Ć13. . . . . . . . . . . . . . . . . . . . . .
Pen Extensions for Windows 1Ć14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Keyboard Options 1Ć14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Microsoft Visual Basic for Windows 1Ć14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Borland Delphi for Windows 1Ć15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Microsoft Visual C++ or Borland C++ for Windows 1Ć15. . . . . . . . . . . . . . . . . . . .
Other Environments 1Ć15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Some Screen Considerations 1Ć15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Some Keyboard Considerations 1Ć15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Some System Guidelines 1Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setup for PC Development 1Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Development Resources 1Ć18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PC Card Support 1Ć18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NORAND Card and Socket Services: ELANCSSS.EXE 1Ć18. . . . . . . . . . . . . . . .
NORAND PC Card Files 1Ć19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SystemSoft Card and Socket Services 1Ć20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SanDisk Support 1Ć21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Communications Via INTERLNK and INTERSVR 1Ć22. . . . . . . . . . . . . . . . . . . . . . .
INTERLNK 1Ć22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
INTERSVR 1Ć22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RAM Drive 1Ć23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Norand Utilities and Communications 1Ć24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Norand Utilities 1Ć24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a (Host) Download Include File 1Ć24. . . . . . . . . . . . . . . . . . . . . . . . . . . .
NPCP Network 1Ć25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TTY 1Ć25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NRInet 1Ć26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TFTP 1Ć26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Other Intermec Software 1Ć26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DOS Device Drivers 1Ć27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows Device Drivers 1Ć27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utility Programs 1Ć28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ELANAPM.EXE: APM BIOS Installation for DOS 1Ć28. . . . . . . . . . . . . . . .
CALIB.EXE: DOS Pen Calibration 1Ć28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PENALIGN.EXE: Windows Pen Calibration 1Ć28. . . . . . . . . . . . . . . . . . . . .
DOS Batch File Enhancers 1Ć28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BOOTDRV.COM: Determines Default Boot Drive 1Ć28. . . . . . . . . . . . . . . .
DD.EXE: Disk Duplicator 1Ć28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DELAY.EXE: Display Message, Wait, Pause, Return Error Level 1Ć29. .
FIXEMM.EXE: Fix for EMM386 Memory Management 1Ć30. . . . . . . . . . .
ISRAMDRV.COM: Determine if RAM Drive Exists 1Ć30. . . . . . . . . . . . . . .
MMBFLAG.COM: Set/Get ROM DOS Boot Flags 1Ć30. . . . . . . . . . . . . . . . .
RESET.EXE: Reset the System 1Ć30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ii PEN*KEYR 6100 Computer Programmers Reference Guide
Page 5
CONTENTS
SECTION 2
Supporting DOS Applications
Introduction 2Ć1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DOS Power Management Driver: NORDOSPM.EXE 2Ć2. . . . . . . . . . . . . . . . . . . . . . . . .
Overview 2Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation 2Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Command Line Switches 2Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ELAN Configuration Driver: ELANCFG.EXE 2Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage 2Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Command Line Switches 2Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Power States 2Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DOS Pen Driver: 61MOUSE.COM 2Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Overview 2Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation 2Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DOS Pen Calibration: CALIB.EXE 2Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Overview 2Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuration 2Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Required Calibration Files 2Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage 2Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DOS Scanner: 61PODSCN.EXE, 61THRSCN.EXE 2Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . .
Overview 2Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation 2Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuration 2Ć9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Required CONFIG.SYS Entry 2Ć9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Options 2Ć9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage 2Ć9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example Scanner Application 2Ć9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DOS NPCP Printing: PC4800.SYS 2Ć10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Overview 2Ć10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Driver Installation and Configuration 2Ć10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Required CONFIG.SYS Entry 2Ć10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Required AUTOEXEC.BAT Entry 2Ć10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Functionality and Usage 2Ć10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Notes 2Ć11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DOS IrDA Printing: PRDRV.SYS, IRDAPDRV.EXE 2Ć12. . . . . . . . . . . . . . . . . . . . . . . . . .
Overview 2Ć12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation and Configuration 2Ć14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Required CONFIG.SYS Entry 2Ć14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Required AUTOEXEC.BAT Entry 2Ć14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage 2Ć14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SECTION 3
Supporting Windows Applications
Introduction 3Ć1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NORAND Minimal Windows Installation 3Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation 3Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows Operating Modes 3Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuration 3Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Normal Startup (Standard Mode) 3Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DOSX.EXE Startup 3Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows Components 3Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NORAND Shell for Windows: NORSHELL.EXE 3Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation 3Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuration: WIN.INI Entries 3Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NORSHELL WIN.INI Examples 3Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Shutting Down Windows 3Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PEN*KEYR 6100 Computer Programmers Reference Guide iii
Page 6
CONTENTS
Windows Power Management Driver: NORWINPM.DRV, VPOWERD.386 3Ć6. . . . .
Installation 3Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuration 3Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fuel Gauge Settings 3Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Miser Settings 3Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Message Output Settings 3Ć9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NORWINPM.DRV SYSTEM.INI Configuration Example 3Ć10. . . . . . . . . . . . . .
User Notifications 3Ć10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation Messages 3Ć10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Informational Messages 3Ć10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fuel Gauge Display 3Ć10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NORAND Power Management Programming Interface for Windows 3Ć11. . . . . . .
Windows Power Management 3Ć11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CPU Power Management 3Ć11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Power Management by Windows Applications 3Ć11. . . . . . . . . . . . . . . . . . . . . . . .
Holding Off Suspend TimeĆouts 3Ć12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APM Event Broadcasts 3Ć12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Receiving APM Event Broadcasts 3Ć12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows Applications 3Ć12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows Installable Drivers 3Ć13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DOS RealĆMode Drivers and TSRs 3Ć13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows System Drivers 3Ć13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Standard APM Event Codes 3Ć13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APM Event Code Broadcast Values 3Ć14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows Pen Driver: UCLKPEN.DRV 3Ć15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pen Applications 3Ć15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation 3Ć15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuration 3Ć15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Required SYSTEM.INI Entries 3Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hardware Interface 3Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Digitizer Calibration 3Ć17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Display Orientation 3Ć18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SYSTEM.INI Configuration Example for UCLKPEN.DRV 3Ć19. . . . . . . . . . . .
Windows Pen Calibration: PENALIGN.EXE 3Ć19. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pen for Windows: PENWIN.DLL 3Ć19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Required SYSTEM.INI Entries 3Ć20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Required PENWIN.INI Entries 3Ć20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Integrated Scanner: 61SCAN.DRV 3Ć21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation 3Ć21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuration 3Ć21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SYSTEM.INI Entries 3Ć21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Entries in [scanner driver] Section of SYSTEM.INI 3Ć21. . . . . . . . . . . . . . . . . . .
Usage 3Ć22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NPCP Printing for Windows: NOR4800.DRV, UNIDRV.DLL 3Ć23. . . . . . . . . . . . . . . . . .
Installation 3Ć23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuration 3Ć23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Required WIN.INI Entries 3Ć23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Required SYSTEM.INI Entries 3Ć24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage 3Ć24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Communications Port Usage 3Ć24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Basic Windows Printing 3Ć25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Default Error Handling Mode 3Ć25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ApplicationĆDefined ErrorĆHandling Mode 3Ć25. . . . . . . . . . . . . . . . . . . . . . . . . . .
Printer Services API 3Ć26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Retrieving the API Entry Point PrtService 3Ć26. . . . . . . . . . . . . . . . . . . . . . .
Calling PrtService 3Ć26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Supported PrtService Options 3Ć27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Special Paper Handling 3Ć28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NPCP Printer Driver Error Codes and Messages 3Ć28. . . . . . . . . . . . . . . . . . . . . . . . .
iv PEN*KEYR 6100 Computer Programmers Reference Guide
Page 7
CONTENTS
IrDA Printing for Windows: NOR6805.DRV 3Ć30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation 3Ć30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuration 3Ć30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Required WIN.INI Entries 3Ć30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Required SYSTEM.INI Entries 3Ć31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage 3Ć32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Default ErrorĆHandling Mode 3Ć32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ApplicationĆDefined ErrorĆHandling Mode 3Ć32. . . . . . . . . . . . . . . . . . . . . . . . . . .
Printer Services API 3Ć33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Retrieving the API Entry Point PrtService 3Ć33. . . . . . . . . . . . . . . . . . . . . . .
Calling PrtService 3Ć33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Supported PrtService Options 3Ć34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Error Codes and Messages 3Ć34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SECTION 4
Power Management
Introduction 4Ć1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Power Management BIOS: ELANAPM.EXE 4Ć1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Overview 4Ć1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Power States 4Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Power State Management 4Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Device Power Control 4Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APM Software Interface 4Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APM Connection 4Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Power Management Events 4Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APM Include Files 4Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APMEVENT.H 4Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PMEVENTS.H 4Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Firmware Error Codes 4Ć9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SECTION 5
Communications and Device Support
Introduction 5Ć1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Communications Support 5Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using INTERLNK and INTERSVR 5Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NORAND Utilities: PSROM0C.EXE 5Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Setup Requirements 5Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NPCP 5Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TTY 5Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NRInet Using PSROM0C Version 3.xx 5Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . .
NRInet Using PSROM0C Version 2.xx 5Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . .
TCOM Session Overview 5Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Session Control File 5Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Download Request File 5Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Upload and Download Files 5Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PL/N File Descriptor for Binary Files 5Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage 5Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Upload Control File 5Ć9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Descriptions of File Entries 5Ć9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Minimum NRUPLD.CTL 5Ć10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Communications Log File 5Ć11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protocol Errors 5Ć12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Serial Communications 5Ć15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Option Connector 5Ć15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Serial Lid Installation 5Ć15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Serial Ports 5Ć15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PEN*KEYR 6100 Computer Programmers Reference Guide v
Page 8
CONTENTS
IrDA Communications 5Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6000 Series LAN Communications 5Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Overview 5Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4000 Backwards Compatibility 5Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Device Support 5Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6100 Display 5Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Screen Rotation 5Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Docks and Modems 5Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modem Device Driver: NORMOD.SYS 5Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Charge Indicator 5Ć17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RSĆ485 Connections 5Ć17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Port Definitions 5Ć17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terminal to Dock Connector Pinouts 5Ć18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6100 Docking Connector Pinout 5Ć18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6100 Single/Vehicle Dock 25ĆPin Female DĆSub Connector 5Ć18. . . . . . . . .
6100 Single/Vehicle Dock 9ĆPin DĆSub Female Connector 5Ć19. . . . . . . . . .
Keyboard Definition and Redefinition 5Ć19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References 5Ć19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Keyboard Definitions 5Ć19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Logical Keyboard 5Ć19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Physical Keyboard 5Ć20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Keyboard Redefinition 5Ć20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unshifted Keys 5Ć20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Yellow Shifted Keys 5Ć21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Remapping Keys for a Soft Reset 5Ć21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Keyboard Overlays 5Ć22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6100 Memory 5Ć23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Overview 5Ć23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Expanded Memory on the 6100 Computer 5Ć23. . . . . . . . . . . . . . . . . . . . .
Upper Memory Provider: ELANUMP.SYS 5Ć24. . . . . . . . . . . . . . . . . . . . . . . . . . .
SECTION 6
Conversions and Interfaces
Converting 4000 Series Applications 6Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Files No Longer Supported 6Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Files that Have Changed 6Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CONFIG.SYS 6Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CPLNI.COM 6Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PC4800.SYS 6Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PCĆDEXIO.BIN 6Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
New 6000 Series Files 6Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUTOEXEC.BAT 6Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4000API.EXE 6Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
VROTATE.EXE and FONTSEL.EXE 6Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
*.FNT 6Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IPLFMT.EXE 6Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MININET.EXE 6Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unchanged Files 6Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
C++ Application Changes 6Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Keyboard 6Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Display 6Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Files 6Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Drives 6Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Printers 6Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Communications 6Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reset 6Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Memory 6Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Power Management 6Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Norlib 6Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vi PEN*KEYR 6100 Computer Programmers Reference Guide
Page 9
CONTENTS
PL/N Application Changes 6Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
General Source Changes 6Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
KBDIO 6Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MEMIO 6Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PRTIO 6Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SYSIO 6Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
XLMEMIO 6Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Adding 6805 Printer Support to PL/N Applications 6Ć9. . . . . . . . . . . . . . . . . . .
Unsupported Standard Routines 6Ć10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
New Standard Routine Numeric Function IPFCMT6 6Ć10. . . . . . . . . . . . . . . . .
Power Management BIOS Interfaces: ELANAPM.EXE 6Ć11. . . . . . . . . . . . . . . . . . . . . . .
Overview 6Ć11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Power Device IDs 6Ć12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APM Function Summary 6Ć12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APM CPU Idle Interrupt 6Ć13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6100 BIOS Interfaces 6Ć13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Overview 6Ć13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Supported BIOS Interfaces 6Ć13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Timer Interface: Interrupt 08h 6Ć13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Standard Keyboard Interface: Interrupt 09h 6Ć14. . . . . . . . . . . . . . . . . . . . . . . . .
Display Services: Interrupt 10h 6Ć14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Equipment Determination: Interrupt 11h 6Ć14. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Memory Size Determination: Interrupt 12h 6Ć15. . . . . . . . . . . . . . . . . . . . . . . . . .
Disk Services: Interrupt 13h 6Ć15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Serial Communications Services: Interrupt 14h 6Ć15. . . . . . . . . . . . . . . . . . . . . .
System Services: Interrupt 15h 6Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Keyboard Services: Interrupt 16h 6Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Reboot: Interrupt 19h 6Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RealĆTime Clock: Interrupt 70h 6Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Locating 6100 BIOS Interrupts 6Ć16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NORAND Proprietary System Interfaces 6Ć17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unsupported PC, 4000 Series BIOS Functions 6Ć17. . . . . . . . . . . . . . . . . . . . . . . . . . .
Nonmaskable Interrupt (NMI) 02h 6Ć17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Print Screen Interrupt 05h 6Ć17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4000 Series Video BIOS Functions: Interrupts 12h & 14h 6Ć17. . . . . . . . . . . . .
4000 Series Disk BIOS Services: Interrupt 13h 6Ć18. . . . . . . . . . . . . . . . . . . . . . .
4000 Series Port Control BIOS Services: Interrupt 14h 6Ć18. . . . . . . . . . . . . . . .
4000 Series Multitasking BIOS Services: Interrupt 15h 6Ć18. . . . . . . . . . . . . . .
4000 Series Printer BIOS Functions: Interrupt 17h 6Ć19. . . . . . . . . . . . . . . . . . .
4000 Series Programming Interfaces: 4000API.EXE 6Ć19. . . . . . . . . . . . . . . . . . . . . . . . .
Overview 6Ć19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installation 6Ć19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Command Line Switches 6Ć19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Supported Programming Interfaces 6Ć20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
INT 10h: Display Services 6Ć20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
INT 14h: Serial Communications Services 6Ć20. . . . . . . . . . . . . . . . . . . . . . . . . . .
INT 15h: Multitasking Services (Description) 6Ć21. . . . . . . . . . . . . . . . . . . . . . . .
Tasks and Scheduling 6Ć21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Timeouts 6Ć21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Resource Arbitration and Task Communication 6Ć21. . . . . . . . . . . . . . . . . . .
Mailboxes 6Ć22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Queues 6Ć22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
INT 15h: Intermec Miscellaneous System Services 6Ć22. . . . . . . . . . . . . . . . . . . .
INT 15h: PCĆLike Miscellaneous System Services 6Ć22. . . . . . . . . . . . . . . . . . . .
INT 16h: Keyboard Services 6Ć22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Locating 4000API.EXE Interrupts 6Ć23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unimplemented 4000 Series BIOS APIs 6Ć23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PEN*KEYR 6100 Computer Programmers Reference Guide vii
Page 10
CONTENTS
4000 Series Screen Emulation: VROTATE.EXE, FONTSEL.EXE 6Ć24. . . . . . . . . . . . . .
VROTATE.EXE, Parameters and Command Line Switches 6Ć25. . . . . . . . . . . . . . .
PL/N Options 6Ć25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Norand Enhanced Video BIOS Functions 6Ć25. . . . . . . . . . . . . . . . . . . . . . . . . . . .
FONTSEL.EXE, Parameters and Command Line Switches 6Ć26. . . . . . . . . . . . . . .
BMP Conversion Utility: BMPUTIL 6Ć26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Locating 4000 Series Video Interrupts 6Ć27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unimplemented 4000 Series Video Functions 6Ć27. . . . . . . . . . . . . . . . . . . . . . . . . . . .
ATA BIOS: ATABIOS.SYS 6Ć28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Overview 6Ć28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage 6Ć28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Format 6Ć28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Definitions 6Ć28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Command Line Switches 6Ć28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CrossĆReference by Interrupt Numbers 6Ć28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interrupt Definitions 6Ć34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Standard Keyboard Interface: INT 09h 6Ć35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Display Services: INT 10h 6Ć36. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Video, Alternate Settings: (AH=12h) Interrupt 10h 6Ć51. . . . . . . . . . . . . . . . . . . . . . .
NorandĆSpecific Display Modes: Interrupt 10h 6Ć54. . . . . . . . . . . . . . . . . . . . . . . . . . .
Programmable Font Support: Interrupt 10h 6Ć56. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Norand Enhanced Video BIOS: Interrupt 10h 6Ć56. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Disk Services: Interrupt 13h 6Ć59. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Serial Communications Services: Interrupt 14h 6Ć64. . . . . . . . . . . . . . . . . . . . . . . . . .
System Services: Interrupt 15h 6Ć68. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Keyboard Services: Interrupt 16h 6Ć87. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Scan Codes 6Ć87. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Character Codes Returned by INT 16h, Functions 00h/01h 6Ć88. . . . . . . . . . . .
Timer and RealĆTime Clock Services: Interrupt 1Ah 6Ć97. . . . . . . . . . . . . . . . . . . . . .
Standard Mouse Interface: INT 33h 6Ć100. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SECTION 7
Reference, System Information
Introduction 7Ć1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ROM DOS 5 7Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Boot Process 7Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cold Booting 7Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BIOS Code is Shadowed 7Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PowerĆOn SelfĆTests (POSTs) are Run 7Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Video BIOS is Enabled 7Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Version Messages are Displayed 7Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Detection of Cold Boots Using the CMOS Signature 7Ć3. . . . . . . . . . . . . . .
Invalid RamDrive Message 7Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Testing XMS Memory Message 7Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Flash Memory Size Report 7Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BIOS Extensions are Scanned For and Installed 7Ć4. . . . . . . . . . . . . . . . . .
ROM DOS 5 is Booted 7Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Drives A through D are Initialized 7Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Boot Drives Supported 7Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CONFIG.SYS is Loaded and Processed 7Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
COMMAND.COM is Processed 7Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Drives Supported for Use 7Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Warm Booting (or Resetting) 7Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Master Mode Boot Sequence 7Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Boot Drive Selection 7Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Messages 7Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Audible Error Codes 7Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
viii PEN*KEYR 6100 Computer Programmers Reference Guide
Page 11
CONTENTS
Hardware Ports and Memory Maps 7Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hardware Ports 7Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IRQ and Other Hardware Interrupts 7Ć9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
I/O Map 7Ć10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BIOS/CMOS System Variables 7Ć11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ROM BIOS Data Area 7Ć11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CMOS Registers 7Ć13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SECTION 8
Reference, Open Systems Publications
Introduction 8Ć1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Application API Publications 8Ć1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DOS 5.0 API 8Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hardware Interface 8Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APPENDIX A
Sample Configuration Files
Introduction AĆ1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sample Boot Configurations Files AĆ1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUTOEXEC.BAT (Default) AĆ1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CONFIG.SYS (Default) AĆ2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Other Sample Configuration Files AĆ3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PENWIN.INI AĆ3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SYSTEM.INI AĆ4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SanDisk Card with Stacker AĆ13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
KEYS.INI (Key Remapping Parameter File) AĆ13. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setups for Third Party Applications AĆ14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Handwriting Recognition System Setup AĆ15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APM Event Code Broadcast Values AĆ16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BGI Support AĆ17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the N6100.BGI Driver AĆ17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bitmap Text Output AĆ18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APPENDIX B
Common PEN*KEY 6000 Series Information
Introduction BĆ1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Development Support Files BĆ2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NORAPM.H BĆ2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APMCODES.H BĆ3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sample Program Listings BĆ5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Charge Detection Demo Program: TESTCHRG.CPP BĆ5. . . . . . . . . . . . . . . . . . . . . .
Critical Error Handler: CRITICAL.C BĆ6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IDLE.CPP BĆ10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Keyboard Remapping, with ANSI.SYS BĆ11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example Key Redefinition BĆ11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Explanation of Example BĆ11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using ANSI.SYS BĆ12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Memory Overview (PEN*KEY 6000 Series Computer) BĆ12. . . . . . . . . . . . . . . . . . . . . . .
Background BĆ12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Standard PC Memory Overview BĆ13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Definition of Terms BĆ13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Summary of Memory Types BĆ14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Statements and Programs (CONFIG.SYS, AUTOEXEC.BAT) BĆ14. . . . . . . . . .
PEN*KEYR 6100 Computer Programmers Reference Guide ix
Page 12
CONTENTS
Windows, Storage Devices, and Memory BĆ15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How the 6000 Series PEN*KEY System Works BĆ16. . . . . . . . . . . . . . . . . . . . . . . . . .
Standard Mode Versus Enhanced Mode BĆ17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RAM Drive IntegrityĆProtection BĆ18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NonĆWindows Systems: PenPal and PenRight! BĆ18. . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows Environment BĆ18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A Brief History of Microsoft Windows BĆ18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows Architecture BĆ19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hardware BĆ19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BIOS BĆ20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DOS Device Drivers BĆ20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DOS BĆ21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows System Files BĆ22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Windows Device Drivers and APIs BĆ23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DLLs BĆ24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
INI Files BĆ25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Additional Windows Files BĆ26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Shell Applications BĆ26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fonts: What They Are and How They Impact BĆ26. . . . . . . . . . . . . . . . . . . . .
Applications BĆ27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pen Windows Files BĆ28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Handwriting Recognition BĆ29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Norand Value Adds BĆ29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BIOS (Basic Input Output System) BĆ29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SystemSoft Card and Socket Services BĆ29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NORAND Card and Socket Services BĆ29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Power Management BĆ30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NORAND Utilities BĆ30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pen Drivers BĆ30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Scanner Drivers BĆ30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NPCP Printer Drivers BĆ30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IrDA Printer Drivers BĆ30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PEN*KEY 6000 Series MemoryĆSizing Guidelines BĆ30. . . . . . . . . . . . . . . . . . . . . . .
All Systems BĆ30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Systems with RAM Drive Storage BĆ31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Systems with External Storage BĆ31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FIGURES
Figure 1Ć1 Location of Reset Button and PC Card Drives 1Ć17. . . . . . . . . . . . . . . . . . . . .
Figure 2Ć1 Power Management Software 2Ć2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Figure 3Ć1 Fuel Gauge Display 3Ć11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Figure BĆ1 Typical Memory Organization BĆ13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Figure BĆ2 Desktop/Laptop PC with Hard Disk BĆ15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Figure BĆ3 PC with RAM Disk BĆ15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Figure BĆ4 PEN*KEY with RAM Disk BĆ16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Figure BĆ5 PEN*KEY with PC Card BĆ17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
x PEN*KEYR 6100 Computer Programmers Reference Guide
Page 13
CONTENTS
TABLES
Table 1Ć1 NORAND Card and Socket Files 1Ć19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 1Ć2 NORAND Card and Socket Files 1Ć20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 1Ć3 Initialization Files 1Ć20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 1Ć4 Card Libraries 1Ć21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 1Ć5 DOS Device Drivers 1Ć27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 1Ć6 Windows Device Drivers 1Ć27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 1Ć7 DELAY.EXE Error Levels 1Ć29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 1Ć8 MMBFLAG.COM Error Levels 1Ć30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 3Ć1 Windows Startup and Shell Programs 3Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 3Ć2 Initialization Files 3Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 3Ć3 Windows System Kernel 3Ć3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 3Ć4 Windows Enhanced Mode Files 3Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 3Ć5 Windows System Device Drivers 3Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 3Ć6 Windows Installable Device Drivers 3Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 3Ć7 EGA Device Fonts 3Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 3Ć8 Popular System DLLs 3Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 3Ć9 Utilities 3Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 4Ć1 Power States (General Definitions) 4Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 4Ć2 Power States (Display) 4Ć4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 4Ć3 Power States (PC Card) 4Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 4Ć4 Power States (Serial Port) 4Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 4Ć5 Power States (Digitizer) 4Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 4Ć6 Power States (Pod) 4Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 4Ć7 Power States (PC Card Slot) 4Ć5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 4Ć8 Power States (System) 4Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 4Ć9 Power States (Backlight) 4Ć6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 4Ć10 Power Management Event Codes 4Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 4Ć11 Firmware Error Codes 4Ć9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 5Ć1 TTY Protocol Errors 5Ć12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 5Ć2 NPCP Protocol Errors 5Ć12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 5Ć3 MININET Protocol Errors 5Ć13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 5Ć4 NRInet Protocol Errors 5Ć14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 5Ć5 Docking Connector Pinout Descriptions (8ĆPin) 5Ć18. . . . . . . . . . . . . . . . . . . . .
Table 5Ć6 Unshifted Keys 5Ć20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 5Ć7 Yellow Shifted Keys 5Ć21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 6Ć1 APM Interrupt Summary 6Ć12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 6Ć2 6100 BIOS Interrupt Summary 6Ć17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 6Ć3 Programming Interrupt Summary 6Ć23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 6Ć4 Interrupts Supported by VROTATE.EXE 6Ć27. . . . . . . . . . . . . . . . . . . . . . . . . .
Table 6Ć5 Interrupt CrossĆReference 6Ć28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 6Ć6 Character Codes Returned by INT 16h, Functions 00h/01h 6Ć88. . . . . . . . . .
Table 7Ć1 System Messages 7Ć7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 7Ć2 Audible Error Codes 7Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 7Ć3 Hardware Ports 7Ć8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 7Ć4 COM1 Connector PinĆOuts 7Ć9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 7Ć5 Hardware Interrupts 7Ć9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 7Ć6 I/O Address and Devices 7Ć10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 7Ć7 BIOS Data in System RAM 7Ć11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Table 7Ć8 CMOS Register Assignments 7Ć13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
INDEX
PEN*KEYR 6100 Computer Programmers Reference Guide xi
Page 14
CONTENTS
xii PEN*KEYR 6100 Computer Programmers 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
Topic Page
Scope 1 Related Publications 2 Look at What has Changed (from previous editions) 2 The Structure of the Book 3
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 Book 5
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 Support 6
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.
PEN*KEYR 6100 Computer Programmers Reference Guide 1
Page 16
Preface
Level of Expertise Needed
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 Systems Publications.
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 Programmers 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 Programmers 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 Programmers 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
Application Description Section
4000API.EXE 4000 Series Programming Interfaces Conversions and Interfaces 61MOUSE.COM DOS Pen Driver Supporting DOS Applications 61PODSCN.EXE DOS Scanner Supporting DOS Applications 61SCAN.DRV Integrated Scanner Supporting Windows Applications
BOOTDRV.COM Other NORAND Software Getting Started CALIB.EXE Other NORAND Software Getting Started 6100DISP.DRV Other NORAND Software Getting Started CRC32.EXE Tool Kit for the 6100 Computer Getting Started DELAY.EXE Other NORAND Software Getting Started
ELANCFG.EXE ELAN Configuration Driver Supporting DOS Applications ELANAPM.EXE Power Management BIOS Power Management ELANAPM.EXE Power Management BIOS Interfaces Conversions and Interfaces ELANUMP.SYS Upper Memory Provider Communications and Device Support
FONTSEL.EXE 4000 Screen Emulation for the 6200 Conversions and Interfaces IRDAPDRV.SYS DOS IrDA Printing Supporting DOS Applications ISRAMDRV.COM Other NORAND Software Getting Started MININET.EXE 6000 Series LAN Communications Communications and Device Support
MMBFLAG.COM Other NORAND Software Getting Started NORDOSPM.EXE DOS Power Management Driver Supporting DOS Applications NORIRDA.DRV IrDA Printing for Windows Supporting Windows Applications NORMOD.SYS Docks and Modems Communications and Device Support NORNPCP.DRV NPCP Printing for Windows Supporting Windows Applications NORSHELL.EXE NORAND Shell for Windows Supporting Windows Applications NORWINPM.DRV Windows Power Management Driver Supporting Windows Applications
PEN*KEY
R
6100 Computer Programmers Reference Guide 5
Page 20
PREFACE
Preface
Application SectionDescription
PC4800.SYS DOS NPCP Printing Supporting DOS Applications PENALIGN.EXE Other NORAND Software Getting Started PENWIN.DLL Pen for Windows Supporting Windows Applications PRDRV.SYS DOS IrDA Printing Supporting DOS Applications PSROM0C.EXE NORAND Utilities Communications and Device Support
RAMDFMT.EXE The RAM Drive Getting Started UCLKPEN.DRV Windows Pen Driver Supporting Windows Applications VPOWERD.386 Windows Power Management Driver Supporting Windows Applications VROTATE.EXE 4000 Screen Emulation for the 6200 Conversions 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 Getting Started" 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 Programmers 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 Programmers Reference Guide 7
Page 22
PREFACE
Preface
R
8 PEN*KEY
6100 Computer Programmers 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.
Topic Summary
Topic Page
An Open System Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć2
Introduction to the 6100 Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć2
Tool Kit for the 6100 Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć4
Tips for Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć6
System Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć6
Reprogramming Flash Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć7
procedures for updating current flash version, a description of an INTERLNK session, and creating a custom flash
Development Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć11
environments available for developing applications and some brief descriptions of applications supported for the 6000 Series computers
Setup for PC Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć16
stepĆbyĆstep set up for development of 6100 Computer from the host PC
Development Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć18
PC Card Support including: NORAND Card and Socket services and
SystemSoft Card and Socket services SanDisk Support 1Ć21 Communications Using INTERLNK and INTERSVR 1Ć22 RAM Drive 1Ć23 Norand Utilities and Communications 1Ć24 Other Intermec Software 1Ć26
1Ć18
1. Getting Started
PEN*KEYR 6100 Computer Programmers Reference Guide 1-1
Page 24
1. Getting Started
An Open System Environment
SECTION 1Getting Started
The following list may be of assistance in locating other topics of interest:
List of Figures and Tables
Figure / Table Page
Figure 1Ć1, Location of Reset Button and PC Card Drives . . . . . . . . . . . . . . . . . 1Ć17
Table 1Ć1, NORAND Card and Socket Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć19
Table 1Ć2, CardSoft Files (SystemSoft) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć20
Table 1Ć3, Initialization Files (SystemSoft) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć20
Table 1Ć4, Card Libraries (SystemSoft) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć21
Table 1Ć5, DOS Device Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć27
Table 1Ć6, Windows Device Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć27
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 Programmers Reference Guide
Page 25
SECTION 1 Getting 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 Programmers 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 de­vice 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-001 6100 DOS (only) Tool Kit, WITH manual 215-597-001 6100 DOS (only) Tool Kit, WITHOUT manual 215-600-001 6100 DOS and Windows Tool Kit, WITH manual 215-599-001 6100 DOS and Windows Tool Kit, WITHOUT manual
R
1-4 PEN*KEY
6100 Computer Programmers Reference Guide
Page 27
SECTION 1 Getting 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 Programmers 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 Programmers Reference Guide
Page 29
SECTION 1 Getting 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 Programmers 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 Programmers Reference Guide
Page 31
SECTION 1 Getting 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,
C:\NORAND\6100\FLASH\BOOTCARD> PROG ..\61FL1000.BIN E:
PEN*KEY
R
6100 Computer Programmers Reference Guide 1-9
Page 32
1. Getting Started
SECTION 1Getting Started
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.
/FORMAT=[360|512|720|1024|1440|2048|2880|4096[K[B]]]
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 Programmers Reference Guide
Page 33
SECTION 1 Getting 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.EXE Writes data to flash " FLASH.BIN Flash 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 Programmers 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 Third Party Applications paragraph, in Appendix A, Sample Configuration Files.
R
1-12 PEN*KEY
6100 Computer Programmers Reference Guide
Page 35
SECTION 1 Getting 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
Manufacturer: Synaptics Software: Handwriting Recognition HR-1200
CIC Handwriter 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 Programmers 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 Programmers Reference Guide
Page 37
SECTION 1 Getting 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 [Pen Driver] 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 Programmers 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 Programmers Reference Guide
Page 39
SECTION 1 Getting 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 Programmers Reference Guide 1-17
Page 40
Development Resources
1. Getting Started
SECTION 1Getting Started
This paragraph covers the following topics:
Topics Page
PC Card Support 1Ć18
NORAND Card and Socket Services: ELANCSSS.EXE 1Ć18
configurations, usage, and descriptions of NORAND Card and Socket files
SystemSoft Card and Socket Services 1Ć20
descriptions of the SystemSoft Card and Socket files
SanDisk Support 1Ć21 Communications Using INTERLNK and INTERSVR 1Ć22 RAM Drive 1Ć23 Norand Utilities and Communications 1Ć24
Norand Utilities Download Include Files NPCP Network TTY ACN
Other Intermec Software 1Ć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 Programmers Reference Guide
Page 41
SECTION 1 Getting Started
EXAMPLE: The following is an example for ELANCSSS.EXE usage:
device=d:\norcs\elancsss.exe
EXAMPLE: The following are examples for SanDisk usage:
device=d:\norcs\atabios.sys /r device=d:\norcs\norata.sys
EXAMPLE: The following is an example for PC Card modem usage:
devicehigh=d:\norcs\normod.sys /c4 /s /d 16b 21 20
where:
/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
File Description
ATABIOS.SYS A 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.EXE The 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.SYS A DOS block device driver for removable hard disk media, for SanDisk support. NORMOD.SYS Loaded when you want to use a modem. This includes landline and wireless modems.
1. Getting Started
PEN*KEY
R
6100 Computer Programmers Reference Guide 1-19
Page 42
File Description
ATADRV.EXE /s:2 A block device driver that supports ATA type II flash or ATA type III hard disk PC
1. Getting Started
ATAINIT.EXE is a lowĆlevel format for SanDisk cards. It places a hard disk partition table onto a
CARDID.EXE Client device driver for the configuration of the PC Card slot/adapter and card on
CARDINFO.EXE helps diagnose problems with cards by verifying if the card is recognized. It is a
CS.EXE Card services driver to manage the configuration of the system PC Card resources. NORCSAPM.EXE Enabling TSR for communication between power management and card services
CSALLOC.EXE Resolution and assignment of system memory, I/O port, and IRQ resources for card
MTDDRV.EXE Memory technology driver that supports PC Card SRAM cards through the
MTSRAM.EXE Memory technology driver for PC Card SRAM cards. SSELAN.EXE Standard 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).
File Description
CARDID.INI Default settings for card identification CSALLOC.INI Used by CardSoft to determine which system resources may be used by PC Cards
R
1-20 PEN*KEY
6100 Computer Programmers Reference Guide
Table 1Ć3
Initialization Files
Page 43
SECTION 1 Getting Started
The following card libraries are for the support of modems and ATA drives:
Table 1Ć4
Card Libraries
File Description
GENATA.CLB Generic ATA drive library SUNDISK5.CLB SanDisk SDPL5 5-meg ATA drive library GENMODEM.CLB Generic 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 San­Disks, 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 Programmers 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 Programmers Reference Guide
Page 45
SECTION 1 Getting Started
You will see a chart similar to the one below. In this example, you would copy the files to drive H:.
Port=COM2
This Computer Other Computer
(Client) (Server) ––––––––––––––– –––––––––––––––––– F: equals A: G: equals B: H: equals C: I: equals D: (519Kb)
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.
ća address of RAM disk (in kilobytes) ćd drive number (0 = A, 1 = B, ... etc.) će number of directory entries ćs size of RAM drive (in kilobytes) ćh help
PEN*KEY
R
6100 Computer Programmers 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:
CONFIG.SYS ROMINIT.BAT 6X00DOS\PC4800.SYS MYAPP.EXE
R
1-24 PEN*KEY
6100 Computer Programmers Reference Guide
Page 47
SECTION 1 Getting Started
The following file names cannot be used in a download list file because they are used by Norand Utilities to perform communications:
" NRTLOG.DAT " PSROM0C.DAT " NRUPLD.CTL " PSROM0C.INI
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 the Communications 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:
MD A:\DATA COPY <include file> A:\DATA NCDIR.EXE A:\DATA
1. Getting Started
"
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 Programmers 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.
Other Intermec Software
Topic Page
DOS Device Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć27
Windows Device Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć27
Utility Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć28
ELANAPM.EXE: APM BIOS Installation for DOS CALIB.EXE: DOS Pen Calibration PENALIGN.EXE: Windows Pen Calibration
DOS Batch File Enhancers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Ć28
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 Programmers Reference Guide
Page 49
SECTION 1 Getting 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
Driver Description
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.EXE NORAND 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
Driver Description
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.DRV Windows APM driver PENALIGN.EXE Pen alignment for Windows UCLKPEN.DRV Windows Pen driver
PEN*KEY
R
6100 Computer Programmers 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 re­leased 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:
This program performs two simple DOS calls:
mov ax, 3305h ; Get boot drive int 21h ; DL = boot drive mov al, dl ; errorlevel = boot drive mov ah, 4Ch ; Exit( errorlevel ); int 21h
Batch file example:
BOOTDRV.COM SET BootDrive=A: IF ERRORLEVEL 2 SET BootDrive=B: IF ERRORLEVEL 3 SET BootDrive=C: IF ERRORLEVEL 4 SET BootDrive=D:
1=A, 2=B, 3=C, ...
DD.EXE: Disk Duplicator
This utility copies SRAM and diskette images.
R
1-28 PEN*KEY
6100 Computer Programmers Reference Guide
Page 51
SECTION 1 Getting Started
DELAY.EXE: Display Message, Wait, Pause, Return Error Level
Serves four functions:
" 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 Level Key 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 154 The values returned consist of the key value minus 30h.
255 No key was pressed; the time expired first
PEN*KEY
R
6100 Computer Programmers Reference Guide 1-29
Page 52
SECTION 1Getting Started
Simple examples:
Standard PC Function 6100 Command(s) Required to Perform Function
Pause DELAY.EXE Echo message" DELAY.EXE /0 message" Sleep 10 seconds DELAY.EXE /1000 Choice message" DELAY.EXE message"
IF ERRORLEVEL 3 GOTO InvalidDigit IF ERRORLEVEL 2 GOTO PressedTwo IF ERRORLEVEL 1 GOTO PressedOne IF ERRORLEVEL 0 GOTO PressedZero
Echo message two" Pause DELAY.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.
MMBFLAG.COM 0 (Drive A:) MMBFLAG.COM 1 (Drive B: MMBFLAG.COM 2 (Drive C:) MMBFLAG.COM 3 (Drive D:)
Error Level Meaning
131 Master Mode Boot from drive B (default boot drive is D) 130 Master Mode Boot from drive B (default boot drive is C) 129 Master Mode Boot from drive B (default boot drive is B) 128 Master Mode Boot from drive B (default boot drive is A) 3 Drive D is the default boot drive 2 Drive C is the default boot drive 1 Drive B is the default boot drive 0 Drive 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 Programmers 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
Topic Page
DOS Power Management Driver: NORDOSPM.EXE . . . . . . . . . . . . . . . . . . . . . 2Ć2
interface between applications and DOS APM BIOS
ELAN Configuration Driver: ELANCFG.EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Ć3
configuration utility that sets APM options for the AMD ELAN processor
DOS Pen Driver: 61MOUSE.COM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Ć6
emulates the standard INT 33h mouse interface
DOS Pen Calibration: CALIB.EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Ć7
for calibration of the pen interface for the 6100 Computer
DOS Scanner: 61PODSCN.EXE, 61THRSCN.EXE . . . . . . . . . . . . . . . . . . . . . . . . 2Ć8
provides support for collecting and passing scanned data to applications
DOS NPCP Printing: PC4800.SYS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Ć10
standard DOS character printing, using the NPCP protocol
DOS IrDA Printing: PRDRV.SYS, IRDAPDRV.EXE . . . . . . . . . . . . . . . . . . . . . . . 2Ć12
standard DOS character printing, using the IrDA protocol
R
6100 HandĆHeld Computers.
Topic Summary
2. DOS Applications
PEN*KEYR 6100 Computer Programmers Reference Guide 2-1
Page 54
SECTION 2Supporting DOS Applications
DOS Power Management Driver: NORDOSPM.EXE
Overview
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 Programmers Reference Guide
Page 55
SECTION 2 Supporting 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:
/? /An /Cn /Dn /En /Hn /In /Kn /Ln /Mn /Rn /Tn /Vn /Wx /S
Command Line Switches
The command line switches are described in partial detail, as follows:
/? Help screen: Displays brief command line switch descriptions. /An ATA 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.
/Cn Configure System Management:
Valid values for n: 0, 1, 2, 3, 4, and 5. 1= AutoĆContrast enabled 0= disabled 3= Battery Hot Swap enabled 2= disabled 5= Suspend In Dock enabled 4= disabled
7= INTs are NOT activity in DOZE 6= INTs are activity in
/Dn Set 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.
/En AC 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.
/Hn Set 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 Programmers Reference Guide 2-3
Page 56
/IOxn Set Activity to I/O Address: Configures the Programmable I/O range activity mask. Valid valĆ
/Kn Keyboard Activity Monitor: Configures Keyboard interrupt activity mask.
/Ln Set TimeĆout from Low Speed to Doze: Configures Low Speed PLL mode timer. Valid values
/Mn COM4 Activity Monitor: Configures Modem activity mask. Valid values for n: 0 and 1.
/P **UNUSED**
2. DOS Applications
/Rn Configures Ram drive access activity mask. Valid values for n: 0 and 1.
/S **UNUSED** /Tn Configures Timer ticks while in DOZE mode.
/Vn Configures the Video memory write activity mask. Valid values for n: 0 and 1.
/Wx Configures 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 Programmers Reference Guide
Page 57
SECTION 2 Supporting DOS Applications
Power States
ELANCFG.EXE has four power states:
High The processor is running full speed Low The processor is running at a reduced speed Doze The 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:
/H the time at High speed before going to Low speed /L the time at Low speed before going to Doze /D the 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 Programmers 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:
File Directory
ELANAPM.EXE \ (root) 61MOUSE.COM \ (root) CALIB.EXE \ (root)
SECTION 2Supporting DOS Applications
2. DOS Applications
"
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 Programmers Reference Guide
Page 59
SECTION 2 Supporting 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.
2. DOS Applications
Required Calibration Files
CALIB.EXE (calibration utility) N6100.BGI (BGI driver)
"
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 Programmers 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:
File Directory
ELANAPM.EXE \ (root) 61PODSCN.EXE \ (root) 61THRSCN.EXE \ (root) BIOSDOT.COM \ (root)
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 Programmers Reference Guide
Page 61
SECTION 2 Supporting 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:
Switches Description
-? or -H Either 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.
-E Enable scanner immediately, and permanently, not just when enabled via software API.
-Knn Define a keyboard key to be used to initiate the scanner, where nn = scancode for the key. For example: use -K0f for TAB key.
-On Power off delay, where n is the number of seconds from release of the trigger to the time power is removed from the scanner.
-PLN Use the PLN API interface.
-RESET Resets 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:
ćE enables the scanner immediately and permanently. ćA2 enables the aiming beam for a oneĆsecond interval. ćK16 defines 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 Programmers 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
Parameter Meaning
<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:
/in This 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 Programmers Reference Guide
Page 63
SECTION 2 Supporting 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 Programmers Reference Guide 2-11
Page 64
DOS IrDA Printing: PRDRV.SYS, IRDAPDRV.EXE
open attempts discovery of an IrDA device, and if discovery is successful, establishes an IrLMP conĆ
"
read returns any data sent by the system. A return count of zero implies that no data is available. write the written character is stored in a local coalescence buffer (with the IrLMP protocol header inĆ
2. DOS Applications
ioctl this 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.
IOCMD_STATUS : // 0x03 requestHeader.headerStatus = detailedErrorCode; break; IOCMD_ID : // 0x80 requestHeader.headerStatus = 0x0a; break; default : requestHeader.headerStatus = detailedErrorCode; break;
where detailedErrorCode is one of the following:
0 PREADY
device driver is open –– a printer connection is established.
50 IRLAP_DISCONNECT_ERROR
close failure –– a disconnect event state change failure occurred during the disconnect procedure processing.
51 DISCOVERY_FAILURE
open failure –– no devices responded during the discovery procedure.
52 LINK_MANAGEMENT_CONNECT_FAILURE
open failure –– a buffer flushing operation failed during the establishment of the link management session with a discovered device.
53 TX_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 Programmers Reference Guide
Page 65
SECTION 2 Supporting DOS Applications
54 BUFFER_GET_FAILURE
write failure –– could not get a transmit buffer to send the data to the printer.
55 BAD_CONNECTION_HANDLE
open, write, or close failure –– a defective connection handle was encountered during the flushing of the drivers coalescence buffer.
56 UNKNOWN_TRANSMIT_FAILURE
open, write, or close failure –– the link access protocol failed for unknown reasons during an attempt to flush the drivers coalescence buffer.
57 WRITE_WITH_PRINTER_NOT_READY
write failure –– a write was attempted to the driver while the driver is in an error state.
58 I_QUEUE_FULL
open, write, or close failure –– the driver could not get a queue for the transmission of an information frame.
59 CONNECT_FAILURE
open failure –– after a successful discover of an IrDA device, a connection could not be established.
60 DRIVER_CLOSED
write, read, ioctl, close failure –– an attempt was made to access the driver while the driver was in a closed state.
61 NO_RECURSION
write, read, ioctl, close failure. An attempt was made to recursively access the driv­er.
62 BAD_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.
63 LINK_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.
64 NOT_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.
65 RECEIVE_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.
66 READ_FAILURE_PRINTER_NOT_READY
read failure –– an attempt was made to read from the character stream with the connec­tion not in the ready state.
67 READ_FAILURE_PRINTER_IN_NDM
read failure –– an attempt was made to read from the character stream with the connec­tion in the normal disconnect mode.
68 READ_FAILURE_BAD_CONNECTION_HANDLE
read failure –– an attempt was made to read from the core, and the connection handle used is no longer valid.
69 READ_FAILURE_UNKNOWN_STATUS
read failure –– an attempt was made to read from the core that resulted in the core posting an unknown error.
70 WRITE_REQUEST_EXCEEDS_COALESCING_BUFFER
write failure –– the users 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
close The 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 Programmers 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:
device=d:\pathname\prdrv.sys install=d:\pathname\irdapdrv.exe –t6100
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.
bn REMOVES 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.
dn specifies 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.
fs defines 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.
n designates NO coalescing buffer support for devices that send data back to escape sequence.
R
2-14 PEN*KEY
6100 Computer Programmers Reference Guide
Page 67
SECTION 2 Supporting DOS Applications
rn specifies 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.
ts identifies the 6100 Computer as the IrDAĆequipped system, on which the driver is running. The
required string is 6100.
x specifies 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 Programmers Reference Guide 2-15
Page 68
SECTION 2Supporting DOS Applications
2. DOS Applications
R
2-16 PEN*KEY
6100 Computer Programmers 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.
Topic Summary
Topic Page
NORAND Minimal Windows Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Ć2
Normal Startup (Standard Mode) DOSX.EXE Startup Windows Components
NORAND Shell for Windows: NORSHELL.EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Ć5
Windows Power Management Driver: NORWINPM.DRV, VPOWERD.386 . . . 3Ć6 Standard APM Event Codes
Windows Pen Driver: UCLKPEN.DRV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Ć15
Hardware Interface Digitizer Calibration Display Orientation SYSTEM.INI Configuration Example
Windows Pen Calibration: PENALIGN.EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Ć19
Pen for Windows: PENWIN.DLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Ć19
Integrated Scanner: 61SCAN.DRV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Ć21
NPCP Printing for Windows: NOR4800.DRV, UNIDRV.DLL . . . . . . . . . . . . . . . . 3Ć23
IrDA Printing for Windows: NOR6805.DRV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Ć30
Applications
3. Windows
PEN*KEYR 6100 Computer Programmers Reference Guide 3-1
Page 70
SECTION 3Supporting Windows Applications
NORAND Minimal Windows Installation
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 Windows Components, 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 Programmers Reference Guide
Page 71
SECTION 3 Supporting 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
Component Description
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
Component Description
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
Component Description
SYSTEM/DOSX.EXE DPMI server. Required SYSTEM/WSWAP.EXE Swaps 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 Programmers Reference Guide 3-3
Page 72
SECTION 3Supporting Windows Applications
Table 3Ć4
Windows Enhanced Mode Files
Component Description (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.386 Windows 3.1 Enhanced Mode Power Management support. Required
Table 3Ć5
Windows System Device Drivers
Component Description
SYSTEM/COMM.DRV Windows 3.1 serial port driver. Required SYSTEM/KEYBOARD.DRV Windows 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 driver Optional SYSTEM/UNIDRV.DRV Windows 3.1 universal printer driver. Used by NOR4800.DRV.
Required
Required only if NOR4800.DRV for NPCP printing is used.
Component Description
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
Component Description
SYSTEM/EGAFIX.FON FixedĆpitch device font. Required SYSTEM/EGAOEM.FON OEM device font. Required SYSTEM/EGASYS.FON Proportional device font. Required
Table 3Ć6
Windows Installable Device Drivers
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 Programmers Reference Guide
Page 73
SECTION 3 Supporting Windows Applications
Table 3Ć8
Popular System DLLs
Component Description
SYSTEM/COMMDLG.DLL Provides common dialogs like file open, file save, and printing. Optional SYSTEM/LZEXPAND.DLL Functions for file expansion and copying. Optional SYSTEM/SHELL.DLL Basic services common to Windows 3.1 shell programs, such as
File Manager. SYSTEM/VER.DLL Windows versioning API. Optional SYSTEM/WIN87EM.DLL FloatingĆ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
Component Description
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 Programmers 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] NorShellRun=MYAPP.EXE /a switch /another switch NorShellRunDir=c:\app NorShellLaunch=clock.exe calc.exe
The following example WIN.INI file launches the Windows File Manager shell application, which launches the clock and calculator in turn.
[WINDOWS] NorShellRun=WINFILE.EXE run=clock.exe calc.exe
Applications
3. Windows
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 Programmers Reference Guide
Page 75
SECTION 3 Supporting 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.
[boot] drivers= power pen penwindows scanner npcp irda
where:
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:
[drivers] power=norwinpm.drv pen=uclkpen.drv [386 enh] device=vpowerd.386
where:
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 Programmers 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:
" 0x0001: Show battery life remaining percentage. 60%". " 0x0002: Show battery status: High/Low/Critical". " 0x0004: Show charge status: Charging". " 0x0008: Show AC status: AC".
Applications
3. Windows
Miser Settings
Miser
Valid values: 0, 1
Default value: 0
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 Programmers Reference Guide
Page 77
SECTION 3 Supporting 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.
Value Description
0 No 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.
1 NORWINPM.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.
Value Description
0 No 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.
1 Warnings: 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.
2 Infrequent 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.
5 A debug setting that displays messages that repeat frequently (every 10 seconds or so) but are
different each time. 8 Frequent, But NonĆRepeating Debug Information: 10 Frequent, 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). 15 All Messages:
Applications
3. Windows
PEN*KEY
R
6100 Computer Programmers 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.
APM Event <Hex APM Event ID>. APM OEM Event <Hex OEM Event ID>.
Fuel Gauge Display
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 Programmers Reference Guide
Page 79
SECTION 3 Supporting 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 Programmers 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 Programmers Reference Guide
Page 81
SECTION 3 Supporting 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 Programmers 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 Programmers Reference Guide
Page 83
SECTION 3 Supporting 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.
Installation
Place the files in the following directories:
File Directory
PENALIGN.EXE WINDOWS\ NORWINPM.DRV WINDOWS\SYSTEM UCLKPEN.DRV WINDOWS\SYSTEM PENWIN.DLL WINDOWS\SYSTEM
Configuration
You can configure the Windows pen driver by editing the appropriate entries in SYSTEM.INI. Unless otherwise noted, all entries are placed in the [Pen Driver]" 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 Programmers 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] power=norwinpm.drv pen=uclkpen.drv penwindows=penwin.dll
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 Programmers Reference Guide
1 = 2 MHz 2 = 14 MHz
Page 85
SECTION 3 Supporting 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 [pen driver] 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 Programmers 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 Programmers Reference Guide
Page 87
SECTION 3 Supporting 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 Programmers 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 sec­tion 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:
[Current] User=User 1 InkWidth=1 InkColor=0 SelectTimeout=500
SECTION 3Supporting Windows Applications
Applications
3. Windows
[*User 1] TryDictionary=100 ErrorLevel=25 EndRecognition=8000 TimeOut=500 WriteDirection=103 MenuDropAlignment=0 Preferences=0 IntlPreferences=0 Recognizer=mars.dll
[Dictionary List] MAINDICT.DLL=
[Recognizer List] MARS.DLL=
[MsSpell] MSSPELL.DLL=
[MsMainDict] enuMain=
[User List] User 1=
[sysges] C!=xx,0,{Ctrl}{Ins} P!=xx,0,{Shift}{Ins} X!=xx,0,{Shift}{Del} U!=xx,0,{Alt}{Bs}
[Pen Palette] SKBPos=15 92
[MS–DOS] EnableMSDOS=1
R
3-20 PEN*KEY
6100 Computer Programmers Reference Guide
Page 89
SECTION 3 Supporting Windows Applications
Integrated Scanner: 61SCAN.DRV
This is a Windows driver. NORAND integrated scanner support consists of two basic components:
" 61SCAN.DRV -- Windows device driver. " SYSTEM.INI -- file containing scannerĆspecific configuration information.
Installation
Place the scanning files in the following directories:
File Directory
SYSTEM.INI \windows NORWINPM.DRV \windows\system 61SCAN.DRV \windows\system
"
NOTE: NORWINPM.DRV needs to be loaded before 61SCAN.DRV.
The Windows scan driver, 61SCAN.DRV, currently supports the Pod scanner.
Configuration
SYSTEM.INI Entries
The following entry is required In the SYSTEM.INI file. It allows the opening and closing of the scanner by an application.
[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 order that it needs to be). The significant driver here, is scanner. This is just a token name for the driver.
The actual driver name is specified in the following [drivers] section of the SYSTEM.INI file:
[drivers] scanner=61SCAN.DRV
scanner=61SCAN.DRV tells Windows the actual name (61SCAN.DRV) of the installable driver named in the preceding [boot] section of the SYSTEM.INI file.
Entries in [scanner driver] Section of SYSTEM.INI
[Scanner Driver] ScannerHardwareType=PEN*KEY MessageBeepScanVerification=INTERNAL MessageBeepStatusNotification=INTERNAL MessageBoxStatusNotification=TRUE EnableScannerWhenDriverLoads=FALSE DisplayScanningDataDialog=TRUE ShowWindowOnLoad=TRUE EnableScanCodes=TRUE ;ScanKey = nnn ExternalFlashOnScan=FALSE AimingBeamDuration=0
Applications
3. Windows
PEN*KEY
R
6100 Computer Programmers Reference Guide 3-21
Page 90
Applications
3. Windows
SECTION 3Supporting Windows Applications
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 Programmers Reference Guide
call is issued, the scanner driver closes the dedicated
Page 91
SECTION 3 Supporting Windows Applications
An example of an OpenDriver call is as follows:
hDRVR = OpenDriver(61SCAN.DRV, (LPCSTR)NULL, (LPARAM)NULL);
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.
Installation
Place the files in the following directories:
File Directory
NORNPCP.DRV WINDOWS\SYSTEM NOR4800.DRV WINDOWS\SYSTEM UNIDRV.DLL WINDOWS\SYSTEM
Configuration
Required WIN.INI Entries
[windows] spooler= DosPrint=no device=NORAND 4800 Series,NOR4800,LPT1.DOS
where:
Applications
3. Windows
spooler= tells Windows not to use Print Manager to spool printing.
DosPrint=no tells Windows not print directly to the printer port.
device=NORAND 4800 Series,NOR4800,LPT1.DOS specifies the default printer for
Windows. See the following [PrinterPorts] and [devices] sections of the WIN.INI file.
[PrinterPorts] NPCP Printer=NOR4800,LPT1.DOS,15,45
PEN*KEY
R
6100 Computer Programmers Reference Guide 3-23
Page 92
SECTION 3Supporting Windows Applications
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).
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 (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).
[NPCP Driver] PrtPort= 0 deviceName=LPT1 CommAddress=0x318 CommVector=0x0C FIFODepth=16
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 Programmers Reference Guide
Page 93
SECTION 3 Supporting 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 Programmers 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 hInst instance handle to our application. WORD wOpt option for action you want to perform. LPARAM lParam1 doubleword that depends on the particular option. LPARAM lParam2 doubleword that depends on the particular option.
R
3-26 PEN*KEY
6100 Computer Programmers Reference Guide
Page 95
SECTION 3 Supporting 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:
if ( lpfnPrtService (hInst, PRT_ENABLE, (LPARAM)NULL, (LPARAM)NULL) < 1) { MessageBox( NULL, Unable to enable printer driver, ERROR”, MB_OK | MB_ICONEXCLAMATION ); return FALSE; }
Supported PrtService Options
PrtService provides the following services:
" 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 Programmers 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 Code Error Message Explanation
102 PNRDY Printer Not Ready
Check Connection
104 RXTMO Not Receiving
Check Connection
106 TXTMO Not Transmitting
Check Connection
R
3-28 PEN*KEY
6100 Computer Programmers Reference Guide
Printer not properly connected.
Printer stopped sending data in a packet.
Printer stopped receiving data in a packet.
Page 97
SECTION 3 Supporting Windows Applications
Error # ExplanationError MessageError Code
111 BADADR MAC Address Error Printer rejected MAC address sent in a packet. 112 GAPERR MAC Interchar Gap Error Length between bytes too long. 113 LSRPE MAC Length Parity Error Actual and declared packet sizes did not match. 120 IFTS Invalid Comm Frame Frame sent in wrong sequence. 121 NS_NE_VR NS <> VR Error Received NS did not match expected NR. 122 NR_NE_VS NR <> VS Error Received NR did not match expected NS. 123 RLENERR Receive Length Error Actual and declared packet sizes did not match. 124 MAC_CRCERR CRC Error Invalid CRC. 200 FRMERR Frame Reject Error Frame was rejected. 201 FRMERR_IF Invalid Frame Frame receive was invalid for current mode. 202 FRMERR_NR NR Mismatch NR did not match. 203 FRMERR_NS NS Mismatch NS did not match. 204 NDMERR Disconnect Error Printer is in NDM. 205 FRMERR_SF Frame Too Short Frame was too short. 206 FRMERR_LF Frame Too Long Frame was too long. 210 BINDERR Bind Error Invalid bind sequence. 221 IPLDUR Invalid PLDU Invalid 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. 255 DEVERR Device Error A device error occurred. XXX Unknown Error Unrecognized error occurred.
The following messages are applicable when DATA WAS RECEIVED:
Error # Error Code Error Message Explanation
222 HEADJAM1 Head Jam Head jam. All data was flushed. 223 PAPEROUT1 Paper Out Printer is out of paper. 224 LOWVOLTS1 Low Voltage Printer undervoltage condition. 225 HIVOLTS1 Over Voltage Printer overvoltage condition. 226 LOWBAT1 Low Battery Printer battery is low. 227 COVEROFF1 Cover Off Cover was removed.
The following messages are applicable when DATA WAS LOST:
Error # Error Code Error Message Explanation
242 HEADJAM2 Head Jam Head jam. All data was flushed. 243 PAPEROUT2 Paper Out Printer is out of paper. 244 LOWVOLTS2 Low Voltage Printer undervoltage condition. 245 HIVOLTS2 Over Voltage Printer overvoltage condition. 246 LOWBAT2 Low Battery Printer battery is low. 247 COVEROFF2 Cover Off Cover was removed.
Applications
3. Windows
PEN*KEY
R
6100 Computer Programmers 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.
Installation
Place the files in the following directories:
File Directory
NORIRDA.DRV WINDOWS\SYSTEM NOR6805.DRV WINDOWS\SYSTEM UNIDRV.DLL WINDOWS\SYSTEM
Configuration
SECTION 3Supporting Windows Applications
Applications
3. Windows
Required WIN.INI Entries
The sections of the WIN.INI file, that appear on the next few pages, are necesĆ sary to set up the printer device parameters for IrDA printing:
[windows] spooler= DosPrint=no device=IrDA Printer,NOR6805,LPT2.DOS
where:
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Ć
rameters for the printer.
[NORAND 6805,LPT2.DOS] PaperSize=256 SizeUnit=1 PaperWidth=480 PaperLength=1450
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 Programmers Reference Guide
Page 99
SECTION 3 Supporting 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.
[PrinterPorts] IrDA Printer=NOR6805,LPT2.DOS,15,45
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.
[IRDA Driver] deviceName=LPT2 UARTAddress=1000 UARTIRQ=14 Technology=6100 PrinterFlush=TRUE PrtPort=0
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 Programmers 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:
[NORAND 6805 Printer] DoGraphicsOnly=FALSE Timeout=10 WakeupChars=200
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 Programmers Reference Guide
Loading...