throbber
United States Patent
`
`[19]
`
`[11] Patent Nmnher:
`
`5,915,106
`
`Ard
`
`[45] Date of Patent:
`
`Jun. 22, 1999
`
`US005915106A
`
`54] METHOD AND SYSTEM FOR OPERATING A
`SCANNER WHICH EMULATES A DISK
`DRIVE
`
`75]
`
`Inventor; Mark Ard’ San“, Clara’ Calif.
`
`73] Assignccsz Riwh Company, Ltd” Tokyo’ Japan;
`Ricoh Corporation’ San Jose’ Calif.
`
`21] Appl’ No’; 08/821343
`22]
`pi]6dz
`Man 20’ 1997
`51]
`Int. Cl.5 ............................. G06F 13/10; G06F 13/12
`52]
`U_S_ CL ppppppppppppppppppppppppp u 395/500; 395/308; 395/309
`58] Field of Search """"""""""""""""""“ 395/5gg’5/33052’
`’
`
`$6]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`/1996 Murata .................................. .. 358/442
`
`5,508,821
`
`Primary Examiner—Kevin J. Teska
`Assistant 1:7xamirter—Hugl1 Jones
`Attamey, Agent, or Firm—Oblon, Spivak, McClelland,
`Maier & Neustadt, P.C.
`
`[57]
`
`ABSTRACT
`,
`,
`,
`,
`,
`,
`A scanner is provided with a disk drive emulator and is
`attached to a general purpose computer via a SCSI bus. The
`disk drive emulator provides signals such that the general
`purpose computer identifies the scanner as a disk drive.
`Applications running on the generalpuipose computer direct
`operation of the scanner via standard operating system disk
`drive commands. To facilitate the transfer of commands to
`the scanner, a scanner parameters setup program, also
`known as an Application Program Interface (API), is pro-
`vided that is resident on the scanner and accessible to the
`general purpose computer via the disk drive emulator. When
`executed, the scanner parameters setup program provides a
`graphically oriented menu allowing a user to enter param-
`eters such as resolution, brightness, contrast, etc. Once
`entered, tho Parameters are saved to the scanner via a File
`Save command. An application running on the general
`purpose computer then operates the scaimer in accordance
`with the parameters thus saved by performing a File Open
`command on a file visible to the general purpose computer
`via the disk drive emulator and corresponding to the saved
`parameters. Image data resulting from operation of the
`scanner is transferred from the scanner via the disk drive
`emulator to the general purpose computer as if a file is being
`opened. Alternatively,
`the scanner is operated upon the
`saving of the parameters to the scanner, and image data
`resulting therefrom is saved as a file to a storage device
`accessible to the general purpose computer.
`
`22 Claims, 10 Drawing Sheets
`
`USER EXECUTES SCANNER PARAMETERS
`SETUP PROGRAM.
`
`51
`
`/— 63
`
`USER ENTERS PARAMETERS
`
`(RESOLUTION, BRIGHTNESS. CONTRASI, ETC].
`
`67
`
`Apple 1046
`
`U.S. Pat. 9,189,437
`
`
`
`
`SETUP PROGRAM WRI ES PARAMETERS TO
`SCANNER VIA FILE SAVE COMMAND.
`
`
`USER PERFORMS AN APPLICATION FILE
`OPEN
`OMNAND.
`
`
`SCANNER FIRMWARE OPERATES SCANNER
`BASED ON PARAMETERS CORRESPONDING TO
`THE FILE OPEN COMMAND, AND IMAGE
`DATA IS IRANSEERRED TO THE APPLICATION.
`
`
`
`
`
`EINISII
`
`Apple 1046
`U.S. Pat. 9,189,437
`
`

`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 1 of 10
`
`5,915,106
`
`FIG. 7
`
`PRIOR ART
`
`

`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 2 of 10
`
`601,519,5
`
`azzsm
`
`§§z_
`
`E5
`
`zo_E§§%5%8
`
`q.W.NV1W.WP\N._QN.b\2...............................
`
`RWVV
`
`
`7uuuuuuuu:1NJ5%ozéao
`
`IIIIIIIIIII|||_
`2m
`
`
`
`
`

`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 3 of 10
`
`5,915,106
`
`

`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 4 of 10
`
`5,915,106
`
`RICOH SCANNER CONTROL MENU
`
`PIXEL DEPTH
`
`8 BIT CRAY
`
`RESOLUTION
`
`200 PER INCH
`
`PAGE SIZE
`
`BRIGHTNESS
`
`FILE NAME
`
`EILE TYPE
`
`FIG’. 4
`
`

`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 5 of 10
`
`5,915,106
`
`azzsm
`
`3%
`
`gzzsmoz_E§$5is
`
`5%gem
`
`II
`
`II
`
`%.mm
`
`23%
`
`5%gem
`
`EOE:
`
`
`

`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 6 of 10
`
`5,915,106
`
`USER EXECUTES SCANNER PARAMETERS
`SETUP PROGRAM.
`
`61
`
`
`
`USER ENTERS PARAMETERS
`(RESOLUTION, BRIGHTNESS, CONTRAST, ETC).
`
`SETUP PROGRAM wRNES PARAMETERS T0
`SCANNER VIA FILE SAVE COMMAND.
`
`5;
`
`55
`
`USER PERFORMS AN APPLICATION FILE
`OPEN COMMAND.
`
`67
`
`SCANNER FIRMWARE OPERATES SCANNER
`BASED ON PARAMETERS CORRESPONDING TO
`
`59
`
`THE FILE OPEN COMMAND, AND IMAGE
`DATA IS TRANSEERRED TO THE APPLICATION.
`
`FIG’. 6‘
`
`

`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 7 of 10
`
`5,915,106
`
`gzzsm
`
`8_Eo
`
`gm
`
`E>_%
`
`2E_2<%_
`
`3%
`
`
`
`

`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 8 of 10
`
`5,915,106
`
`USER EXEGUTES SCANNER PARAMETERS
`SETUP PROGRAM.
`
`W
`
`MSER ENTERS PARAMETERS
`(RESOLUTION, BRIGHTNESS, CONTRAST, ETC).
`
`ACCORDANCE WITH PARAMETERS.
`
`SETUP PROGRAM MRTTES PARAMETERS To
`SCANNER, AND SCANNER oPERATES IN
`
`T03
`
`I05
`
`IMAGE DATA DIRECTED TO A FILE.
`
`107
`
`APPLICATION READS IMAGE DATA BY
`OPENING FILE ON STORAGE DEVICE.
`
`109
`
`FINISH
`
`FIG’. 6’
`
`

`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 9 of 10
`
`5,915,106
`
`START
`
`USER SELECTS AQUIRE EROM AN
`APPLICATION.
`
`m
`
`DLL LINK BOOTS UP SCANNER PARAMETERS
`SETUP PROGRAM.
`
`
`
`H3
`
`USER FILLS OUT PARAMETERS.
`
`H5
`
`SETUP PROORAM WRITES PARAMETERS TO
`THE SCANNER, AND THE SCANNER IS
`OPERATED ACCORDINGLY.
`
`APPLICATION.
`
`IMAOE DATA RESULTING FROM SCANNER
`OPERATION IS TRANSFERRED TO THE
`
`117
`
`N9
`
`FIG’. .9
`
`

`
`U.S. Patent
`
`Jun. 22, 1999
`
`Sheet 10 of 10
`
`5,915,106
`
` NUACH SCANNER TO SC3 BUS.
`
`TURN SCANNER POWER ON.
`
`
`
`
`
` 57
`
`TURN COMPUTER POWER ON.
`
`
`
`
`
`HNBH
`
`_1‘71’(§3. 7'45?
`
`

`
`5,915,106
`
`1
`METHOD AND SYSTEM FOR OPERATING A
`SCANNER WHICH EMULATES A DISK
`DRIVE
`
`BACKGROUND OF THE INVENTION
`
`FIELD OF THE INVENTION
`
`This invention relates to an interface structure for periph-
`eral devices such that those devices may be attached to any
`one of various computer systems without a specifically
`developed driver. The invention is more particularly related
`to an apparatus and interface structure which allows a
`computer to control a peripheral device connected to that
`computer by a Small Computer System Interface (SCSI) bus
`via standard operating system disk drive commands without
`utilizing a specifically developed device driver. The inven-
`tion is still further related to a scanning apparatus that can be
`connected between one of multiple computer and operating
`systems and which can be controlled either independently or
`from within a graphics application running on a host com-
`puter without a device driver installed on the host computer
`for the scanning apparatus.
`
`DISCUSSION OF THE BACKGROUND
`
`With the increasing use of computer peripheral devices in
`both the home and office environments, computer users and
`system maintainers are increasingly confronted with the
`tasks of installing new and upgraded peripherals and related
`software packages. Typically, because peripherals are not
`standardized as to an interface protocol between the periph-
`eral and a host computer, one of the related software
`packages that must be installed with a new peripheral device
`is a device driver.
`
`The device driver places communications between an
`application and peripheral device in the proper format
`required by the peripheral device. Thus, an application
`wishing to access a peripheral device makes an access
`request to the appropriate device driver which then formats
`communications as required by the peripheral device allow-
`ing communication between the peripheral device and the
`application. Device drivers are often referred to as software
`or peripheral drivers and are commonly included when
`peripheral devices are purchased. Device drivers for periph-
`eral devices are normally available free of charge from
`peripheral device manufacturers and can often be down-
`loaded off the Internet.
`
`While the installation of device drivers for a specific
`peripheral device is not a particularly difficult problem, it is
`complicated by a multitude of available peripheral devices,
`several available computer platforms and related operating
`systems, and multiple versions of each of the above.
`Because of the plurality of peripherals, platforms, systems
`and versions thereof, problems are often encountered when
`installing a new peripheral device which revolve around
`installation of the appropriate driver specific to the device
`and system on which the peripheral is being installed. These
`problems are typically manifested in desperate calls to help
`lines and desks of peripheral manufacturers and computer
`retailers where new and upgraded device drivers are distrib-
`uted.
`
`In addition to the installation of new peripheral devices,
`vintage peripheral devices of anywhere from one month to
`several years of age are often transferred from one computer
`to another. The same problems of obtaining proper device
`drivers to allow a host computer to communicate with the
`peripheral device are manifested again, but in this case to a
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`greater extent because of the potential that the device is no
`longer supported. Even if the appropriate device driver is
`available, the task of tracking that driver down may exceed
`the value of the peripheral.
`Furthermore, there are costs associated with the develop-
`ment of device drivers and assuring that the device drivers
`are included in software packages developed and offered for
`sale in the retail marketplace. As with the development of
`any software package, the development of a device driver
`requires hiring of engineers with appropriate experience.
`Once developed, drivers must undergo rigorous testing. If a
`released device driver does not properly operate a peripheral
`device, the peripheral device can effectively be rendered
`inoperative, thereby resulting in cost far beyond those asso-
`ciated with development of the device driver itself.
`Regarding the assurance that device drivers are included
`in software packages on the retail market, developers of
`software packages typically rely on a toolkit developer to
`maintain a library of drivers for multiple peripheral devices.
`The software package developer purchases a toolkit which is
`then linked into the developed software package, thus allow-
`ing the developed software package to access any peripheral
`device supported in that toolkit.
`Like the development of software drivers, toolkits are not
`free. Increased cost results from the fact that toolkit manu-
`
`facturers require peripheral developers to pay a fee in order
`to have their peripheral device driver included in the next
`toolkit release. In addition, developers of software packages
`must also pay the toolkit developers a royalty for each model
`peripheral device they wish to have included in the library
`they purchase.
`Because device drivers are utilized to format communi-
`
`cations between a computer and a peripheral device, prob-
`lems and added expense occur. The problems relate mainly
`to the location and installation of new and upgraded device
`drivers, and the added expense relates mainly to the same
`plus development and distribution costs of the device driv-
`ers.
`
`The present inventor has realized that the conventional
`solution of providing a software driver for formatting com-
`munications between an application executing on a host
`computer and a peripheral device attached thereto has draw-
`backs which are potentially either inconvenient, an added
`expense, or prohibitive to potential users of that peripheral
`device.
`
`SUMMARY OF THE INVENTION
`
`Accordingly, it is an object of this invention to provide a
`disk drive emulator attached to a peripheral device such that
`the peripheral may be operated from a host computer as a
`disk drive without the need of a device driver.
`
`It is another object of the invention to provide a setup
`program resident on a peripheral device and executable by
`a host computer allowing a user to enter operational param-
`eters and commands to direct operation of the peripheral
`device.
`
`These and other objects are accomplished by a disk drive
`emulator attached to or included in a peripheral device.
`Because the peripheral device has an attached disk drive
`emulator,
`the host computer interacts with the peripheral
`device as if it is a disk drive. Because a disk drive is a
`
`standard device, all operating systems are able to perform
`basic disk drive functions such as opening and saving a file.
`The disk drive emulator translates Open File and Save File
`commands received from the host computer and interprets
`those commands as functions to be performed by the periph-
`eral device.
`
`

`
`5,915,106
`
`3
`The disk drive emulator maintains a setup program which
`constitutes an Application Program Interface (API) enabling
`communications between a user and the peripheral device.
`The setup program is accessible by the host computer, and
`upon execution, a menu is provided in which the user may
`select various operational parameters and commands to
`direct operations of the peripheral device. The setup pro-
`gram then saves these operational parameters and com-
`mands to the disk drive emulator using a Save File com-
`mand. When the appropriate command is received via the
`disk drive emulator,
`the peripheral device is operated in
`accordance with that command and the parameters saved by
`the setup program.
`In one embodiment,
`the interface
`between the host computer and disk drive emulator is a SCSI
`interface, and the peripheral device is an optical scanner.
`The operational parameters and commands entered at the
`menu of the setup program and saved to the disk drive
`emulator are stored in a memory and are visible as a file to
`the operating system of the host computer. When an appli-
`cation running on the host computer performs a File open
`command on a file corresponding to saved operational
`parameters, the disk drive emulator directs operation of the
`optical scanner based upon the stored operational parameters
`and transfers data resulting from operation of the scanner to
`the application as if a file is being opened.
`Alternatively, when the operational parameters and com-
`mands are saved via a File Save command to the disk drive
`
`10
`
`15
`
`20
`
`25
`
`the optical scanner is operated in accordance
`emulator,
`thereof and data resulting from operation of the scanner is
`transferred to a file.
`
`30
`
`The operational parameters and commands entered or
`selectable by the user include Pixel Depth, Resolution,
`Brightness, Contrast, Gamma, Filter, Page Size, File Name,
`File Type, Feeder, and Flatbed parameters, and Scan, Open
`File, Save File, and Cancel commands.
`An application program having an Aquire command for
`retrieving image data from a scanner is provided with a DLL
`link to the setup program. The DLL link operates such that
`when the Aquire command is invoked the application calls
`the setup program. When the user completes entering opera-
`tional parameters and commands, they are written to the disk
`driver emulator utilizing a File Save command. The disk
`drive emulator then operates the optical scanner in accor-
`dance with the operational parameters and commands, and
`image data resulting from that operation is transferred from
`the scanner to a current window of the application program.
`To accommodate multiple computer platforms, multiple
`setup programs are provided, each setup program corre-
`sponding to a specific computer platform. An external
`switch is provided having multiple positions, each position
`identifying a type of computer platform and corresponding
`to one of the multiple setup programs. The disk drive
`emulator only allows a setup program corresponding to a
`computer platform identified by the external switch to be
`visible to the host computer.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`A more complete appreciation of the invention and many
`of the attendant advantages thereof will be readily obtained
`as the same becomes better understood by reference to the
`following detailed description when considered in connec-
`tion with the accompanying drawings, wherein:
`FIG. 1 illustrates a conventional computer workstation
`connected to an image scanner;
`FIG. 2 illustrates communications between an application
`executing on a computer workstation and a scanner;
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`FIG. 3 illustrates a scanner connected to a SCSI bus of a
`
`general purpose computer and the software components of
`the general purpose computer used to operate the attached
`scanner constructed in accordance with the present inven-
`tion;
`FIG. 4 illustrates a graphical scanner control menu in
`accordance with the present invention;
`FIG. 5 illustrates a scanner peripheral device according to
`the present invention;
`FIG. 6 is a flowchart of the operation of an embodiment
`of the present invention;
`FIG. 7 illustrates a scanner peripheral device according to
`the present invention including a disk drive attached to a
`SCSI bus;
`FIG. 8 is a flowchart of the process of operating a scanner
`peripheral device and saving image data to a file in accor-
`dance with the present invention;
`FIG. 9 is a flowchart of the process of operating an
`attached peripheral scanner in accordance with an alterna-
`tive embodiment of the present invention including a DLL
`link within a software application; and
`FIG. 10 is a flowchart of the process of connecting a
`scanner peripheral device to a host computer in accordance
`with the present invention.
`DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`
`Referring now to the drawings, wherein like reference
`numerals designate identical or corresponding parts
`throughout the several views, and more particularly to FIG.
`1 thereof, there is illustrated a conventional computer work-
`station 1 connected to a scanner 5 using a connecting cable
`3. As a peripheral device, the scanner 5 would likely be set
`up as shown in FIG. 2 with a graphics application 9, a
`peripheral driver 19, an interface card device driver 25, and
`an operating system 7, all hosted on computer workstation
`1.
`
`Graphics application 9 is any software application that
`would access scanner 5 to retrieve data or is capable of
`manipulating graphics data, such as Adobe Photoshop or
`Corel Draw, for example. Peripheral driver 19 is a software
`application that formats communications between the graph-
`ics application 9 and scanner 5. The interface card device
`driver 25 is a software application that formats communi-
`cations as required for transfer across the connecting cable
`3 to the scanner 5, similar to the operation of a SCSI driver
`in relation to a SCSI card. Operating system 7 is a software
`application that provides a user interface for invocation and
`a platform for operation of other software applications.
`The computer workstation 1 is also shown having an
`interface card 27 which receives communications from
`
`computer workstation 1, placing the communications on the
`connecting cable 3 as required for delivery to the scanner 5.
`The interface card 27 is attached to a computer bus 15
`thereby resulting in the connection of the computer work-
`station 1 to the scanner 5. The configuration of FIG. 2 allows
`the graphics application 9 to control
`the scanner 5 by
`communicating with the peripheral driver 19 which properly
`formats the scanner commands from the graphics applica-
`tion 9 and provides the properly formatted commands to the
`interface card device driver 25 which then packages those
`commands in a format for transportation to the interface card
`27 and across the connecting cable 3 to the scanner 5.
`A problem that exists in the prior art thus described is
`embodied in the peripheral driver 19 which must provide
`
`

`
`5,915,106
`
`5
`commands in proper format for the scanner 5 and is there-
`fore a specifically developed software application com-
`monly referred to as a device driver. The peripheral driver 19
`will almost assuredly need to be changed with any changes
`or upgrades to the scanner, computer, or operating system.
`For instance, peripheral driver 19 will need to be changed
`any time the scanner 5 is replaced with a different or newer
`version scanner (not shown), such as a new model or a
`model from a different manufacturer, or if the operating
`system 7 is upgraded, such as from DOS to Windows or
`Windows 3.1 to Windows 95, or if the computer workstation
`1 is changed, such as from an Intel based X86 processor to
`a Macintosh. Also, movement of the scanner 5 to another
`computer workstation (not shown), even though perhaps
`similar to the computer workstation 1, may require finding
`a peripheral driver matching the platform and operating
`system in accordance with that similar computer worksta-
`tion.
`
`In order to solve the problem in the prior art relating to
`locating and installing an appropriate driver for a peripheral
`device, such as a scanner, FIG. 3 illustrates a disk drive
`emulating scanner 6 attached to a general purpose computer
`2 wherein the operating system 7 is hosted and the graphics
`application 9 and a scanner parameters setup program 11 are
`executed. Both the scanner parameters setup program 11 and
`the graphics application 9 communicate with the disk drive
`emulating scanner 6 via the SCSI driver 13, the operating
`system 7, a computer system bus 15, a SCSI card 17 and a
`SCSI bus 4 using standard disk drive commands Open File
`and Save File.
`
`Both Open File and Save File commands are standardized
`commands that can be invoked by software applications
`executing in a computer environment based on any stan-
`dardized operating system. The Open File command directs
`the operating system to read a file stored on a storage device
`and provide the data contained therein to the software
`application invoking the command. The Save File command
`directs the operating system to store data from the software
`application invoking the Save File command to a file on a
`storage device.
`The scanner parameters setup program 11 is a software
`application that provides a scanner control menu 31 as
`shown in FIG. 4 on which a computer user may enter
`scanner parameters 33 and scanner commands 35 which will
`then be used in operation of the disk drive emulating scanner
`6. The scanner control menu 31 utilizes standard graphical
`pulldown menus, text boxes, slide bars, and buttons for input
`of the scanner parameters 33 and the scanner commands 35.
`The scanner parameters setup program 11 is originally
`resident within the disk drive emulating scanner 6 and is
`accessible by and executed on the general purpose computer
`2.
`
`FIG. 5 illustrates the major control and communication
`paths within the disk drive emulating scanner 6. A disk drive
`emulator 41 receives Open File or Save File commands sent
`from the general purpose computer 2 over the SCSI bus 4.
`Prior to execution, the scanner parameters setup program
`11 is stored in a setup program storage area 47A of a memory
`47 on the disk drive emulating scanner 6. When receiving an
`Open File command for the scanner parameters setup pro-
`gram 11, the disk drive emulator 41 retrieves the scanner
`parameters setup program 11 from setup program storage
`area 47A and transfers the scanner parameters setup program
`11 via the SCSI bus 4 to the general purpose computer 2 for
`execution. When receiving a Save File command for a file
`with the scanner parameters 33 and the scanner commands
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`35 entered by the user, the disk drive emulator 41 retrieves
`the scanner parameters 33 and the scanner commands 35
`contained therein. Thus, the scanner parameters setup pro-
`gram 11 constitutes an Application Program Interface (API)
`that enables communications between the user and the disk
`
`drive emulating scanner 6.
`Operation of the scanner optics 45, which includes, for
`example, a Charge Coupled Device (CCD),
`illuminating
`lamp, mirrors, a motor to move appropriate parts, etc., is
`commanded by the scanner control block 43. The scanner
`control block 43 is implemented as a programmable device
`operating based on a set of firmware instructions (not
`shown) stored in a firmware storage area 47B in the memory
`47. The firmware instructions stored in firmware storage
`area 47B are loaded into the scanner control block 43 upon
`power-up of the disk drive emulating scanner 6. The scanner
`optics 45 are operated in accordance with the firmware
`instructions and scanner parameters 33 upon transfer of
`those parameters to the scanner control block 43.
`Alternatively,
`the setup program storage area 47A is
`constructed from flash memory. Flash memory is a non-
`volatile memory that can be written to via software
`instructions, and therefore the contents of the memory (i.e.,
`the scanner parameters setup program 11, or applicable API)
`can then be upgraded via the general purpose computer 2.
`Similarly, the entire memory 47 including the setup program
`storage area 47A and the firmware storage area 47B are
`constructed from flash memory and upgradable via the
`general purpose computer 2.
`When utilizing flash memory, the disk drive emulator 41
`identifies if a file identified in a Save File command contains
`
`data or a program corresponding to a specific area of the
`memory 47. Identification is based upon a file name, or
`identifying specific file contents, for example, and is per-
`formed by identification device 30. Upon identification, the
`disk drive emulator 41 writes the contents of the file to the
`
`corresponding area of memory 47. For example, a file
`containing an upgraded version of the scanner parameters
`setup program 11 would be identified and stored in the setup
`program storage area 47A.
`In one embodiment, the disk drive emulator 41 saves the
`scanner parameters 33 to a file in the memory 47. Then, upon
`receiving a File Open command directed toward the opening
`of a file thus saved,
`the disk drive emulating scanner
`performs a scan in accordance with the saved parameters
`and transfers image data resulting therefrom to the general
`purpose computer as if the file were being opened.
`In more detail, the disk drive emulator 41 receives a File
`Open command from the SCSI bus 4 directed toward
`opening a file stored in the memory 47 containing the
`scanner parameters 33. The disk drive emulator 41 then
`retrieves the file, and transfers the scanner parameters 33
`contained therein to the scanner control block 43. The
`
`scanner control block 43 then commands operation of scan-
`ner optics 45 in accordance with the transferred parameters.
`The disk drive emulator 41 then returns image data resulting
`from the scan to the SCSI bus 4 for transfer to the general
`purpose computer 2.
`From a user standpoint, the present invention is easily
`operated. As shown in FIG. 6, operation of the present
`invention begins with step 61 wherein the user executes the
`scanner parameters setup program 11. The scanner param-
`eters setup program 11 is resident in the memory 47 in the
`setup program storage area 47A and is executed by any
`standard invocation such as a command issued at a com-
`
`mand prompt, via a File Manager (not shown), or via a link
`
`

`
`7
`
`8
`
`5,915,106
`
`to an icon displayed on a Program Manager (not shown). In
`the case of command prompt invocation under the Disk
`Operating System (DOS), the invocation would appear as:
`C>d:\setup.exe,
`where C> corresponds to the command prompt,
`d:\corresponds to the disk drive emulating scanner 6 emu-
`lating logical drive d, and setup.exe corresponds to the
`scanner parameters setup program 11. When executed, the
`scanner parameters setup program 11 displays the scanner
`control menu 31.
`
`At step 63, the user enters parameters on the scanner
`control menu 31 including resolution, brightness, contrast,
`etc, as desired. At step 65, the scanner parameters setup
`program 11 writes the parameters thus entered to the disk
`drive emulating scanner 6 via a File Save command. At step
`67, the user performs a File Open command from an active
`software application to read a file corresponding to the
`scanner parameters 33 and stored on the disk drive emulat-
`ing scanner 6. At step 69, the disk drive emulator 41 operates
`the disk drive emulating scanner 6 based on the parameters
`written to disk drive emulator 41 and corresponding to the
`File Open command in step 67. Image data resulting from
`the scanning operation is transferred to the application.
`FIG. 7 illustrates another embodiment of the present
`invention including a disk drive 23 attached to the SCSI bus
`4. In this embodiment, the disk drive 23 is utilized to store
`image data generated from scan operations of the disk drive
`emulating scanner 6. When the scanner optics 45 are oper-
`ated in accordance with the scanner parameters 33, image
`data resulting from that operation is directed by the disk
`drive emulator 41 to the disk drive 23 for storage in a file.
`Once stored, the image data can be read from the disk drive
`23 like any other file stored on a disk drive. If desired, the
`disk drive 23 is housed within the disk drive emulating
`scanner 6.
`
`The embodiment including disk drive 23 could alterna-
`tively be implemented without disk drive 23 by providing
`enough storage in the memory 47 (which may be imple-
`mented using any desired semiconductor memory and/or as
`a disk drive) for saving image files.
`In this alternative
`embodiment,
`image data resulting from operation of the
`scanner optics 45 is directed by disk drive emulator 41 to the
`memory 47 where the image data is stored as a file acces-
`sible to the general purpose computer 2.
`The operation, from a user standpoint, of the embodiment
`including disk drive 23 or alternatively utilizing the memory
`47 for storage of image data, is illustrated in FIG. 8. In FIG.
`8, at step 101, a user executes the scanner parameters setup
`program 11, which brings up the scanner control menu 31.
`At step 103, the user enters the scanner parameters 33 as
`desired, and at step 105,
`the scanner parameters setup
`program 11 writes the scanner parameters 33 to the disk
`drive emulating scanner 6 which is operated in accordance
`with the written parameters.
`At step 107, image data resulting from operation of the
`disk drive emulating scanner 6 is directed to and saved as a
`file. Once saved as a file, the image data is accessible to any
`application capable of reading image data. At step 109, an
`application reads the stored image data.
`In the above steps, illustrated in FIG. 8, the image data
`directed to a file is in one embodiment directed to a file on
`
`the disk drive 23. In an alternative embodiment, the image
`data is directed to a file in the memory 47, as described
`above.
`
`In yet another embodiment, an Aquire command (not
`shown) of the graphics application 9 is provided with a DLL
`link (not shown). A DLL link is an entry in an application
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`program’s Dynamic Link Library (DLL). A DLL link links
`the occurrence of external events (such as invocation of an
`Aquire command) to the execution of external programs
`(such as the scanner parameters setup program 11)
`to
`perform some function. The DLL link is setup to execute the
`scanner parameters setup program 11 upon invocation of the
`Aquire command. After the user enters the scanner param-
`eters 33, the disk drive emulating scanner is operated. Image
`data resulting from operation of the disk drive emulating
`scanner 6 in accordance with the scanner parameters 33 is
`transferred to a current window (not shown) in the graphics
`application 9.
`The operation of the DLL link embodiment is illustrated
`in FIG. 9. FIG. 9 begins at step 111 wherein the user invokes
`an Aquire command from the graphics application 9. The
`Aquire command initiates the startup of the scanner param-
`eters setup program 11 via the DLL link at step 113. As in
`the embodiments described above, a user fills out the scan-
`ner parameters 33, as desired, at step 115. At step 117, the
`scanner parameters 33 are written to disk drive emulating
`scanner 6 which is operated in accordance with the scanner
`parameters 33. And finally, at step 119, image data resulting
`from the above scan is transferred to the graphics application
`9.
`
`In another embodiment, the disk drive emulating scanner
`6 supports multiple operating systems and is provided with
`an O/S switch 29 to indicate the operating system 7 hosted
`on the general purpose computer 2 (See FIG. 5). The O/S
`switch 29 is constructed to have multiple positions, one
`position for each operating system supported. As one
`example, a four position switch is provided, one position for
`each of Operating System 2 (OS/2), Disk Operating System
`(DOS), Windows 3.1, and Windows 95 operating systems.
`The disk drive emulating scanner 6 further provides
`storage in the memory 47 in the setup program storage area
`47A for multiple versions of the scanner parameters setup
`program 11, one version corresponding to each operating
`system supported.
`The O/S switch 29 is connected to and provides an input
`to the disk drive emulator 41. In this embodiment, the disk
`drive emulator 41 allows only one of the multiple versions
`of the scanner parameters setup program 11 to be accessible
`to the operating system 7 and the general purpose computer
`2. The version of the scanner parameters setup program 11
`thus accessible is the version corresponding to the position
`of the O/S switch 29. Thus, a user utilizes O/S switch 29 to
`identify the operating system hosted on the general purpose
`computer 2, and the disk drive emulating scanner 6 is
`operable without further modification on any numb

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket