A process executed on a host computer and a PCMCIA card, said host computer having a PCMCIA card slot engaged with a PCMCIA card having at least a barcode decoder circuit and nonvolatile auxiliary memory thereon, comprising:
- booting said host computer to put an operating system into execution, and executing one or more PCMCIA card management programs and a barcode driver program on said host computer to control said host computer to find and manage said PCMCIA card and assign an interrupt number thereto and map various data storage registers and said nonvolatile auxiliary memory on said PCMCIA card into a memory address space of said host computer and to map one or more data registers on said PCMCIA card that store alphanumeric characters output by said barcode decoder circuit into an I/O address space of said host computer starting at an assigned base address in said I/O space and to store said interrupt number and the start address of a PCMCIA interrupt service routine which controls said host computer to retrieve said alphanumeric characters from said PCMCIA card in an interrupt vector table used by said operating system to launch interrupt service routines, and to store said base address of said one or more data registers in said I/O space in a memory on said host computer in such a way that said base address can be retrieved by said PCMCIA interrupt service routine, said PCMCIA card either having data written to one or more of said various data storage registers by said PCMCIA card management programs or defaulting to a data state at boot time to force said PCMCIA card into memory mode such that said auxiliary nonvolatile memory can be accessed via memory cycles;
- receiving a command from a user to launch a barcode application program that needs alphanumeric data entered by keyboard or through scanning a barcode, and responding thereto by loading and executing an application program to control said host computer to use keyboard data entered by a keyboard of said host computer or other alphanumeric data retrieved from said PCMCIA card such as alphanumeric data decoded by said PCMCIA card from the signals output by a barcode scan engine;
- receiving a command from said user by entering a command to said barcode application program or to said operating system to scan a barcode and passing a message to said barcode driver program indicating scanning of a barcode is desired;
- controlling said host computer using said barcode driver program so as to send a start signal to said PCMCIA card indicating scanning of a barcode is desired;
- receiving said start signal on said PCMCIA card and sending a start signal to a barcode scan engine or applying power thereto so as to activate scanning;
- detecting signals arriving from said barcode scan engine at said barcode decoder circuit and determining the type of barcode being scanned and the direction of the scan and decoding one or more alphanumeric characters from the signals arriving from said barcode scan engine and storing said alphanumeric characters in said one or more data resisters on said PCMCIA card mapped into the I/O space of said host computer;
- generating an interrupt signal on said PCMCIA card and sending said interrupt signal to said host computer after at least one alphanumeric character has been successfully decoded;
- and
- executing said PCMCIA interrupt service routine on said host computer and one or more of said PCMCIA card management programs to control said host computer to send data to predetermined data storage registers on said PCMCIA card to force said card into I/O mode and to execute one or more I/O cycles to retrieve said decoded alphanumeric character or characters from said PC card and do whatever is desired with said character such as pass the character to said application program or place said character in a keyboard buffer memory of said host computer or write the character into a nonvolatile memory on said PC card while using one or more of said various data storage registers on said PCMCIA card to store the signal state in said memory mode of various signals on said PCMCIA bus that are on pins that carry first predetermined signals in memory mode and second predetermined signals in I/O mode such that after said I/O cycles are completed, memory cycles can be resumed to access said auxiliary nonvolatile memory without rebooting said host computer;
- and
- using memory cycles to access said auxiliary nonvolatile memory during intervals when said PCMCIA bus is not tied up with performing I/O cycles.