|
|
|
| United States Patent | 4597058 |
| Link to this page | http://www.wikipatents.com/4597058.html |
| Inventor(s) | Izumi; Hideki D. (Saratoga, CA);
Beravol; Devender R. (Santa Clara, CA) |
| Abstract | A cartridge programming system is provided for loading selected computer
programs into a reprogrammable plug-in cartridge memory. A host computer
controls a plurality of remote programming terminals. The terminals
contain a library of programs. The consumer can select one and have it
loaded into a blank cartridge. The terminal verifies the integrity of the
copy and records the transaction. The host can send new programs to the
terminals via dial-up telephone lines and can request data on
copying-transactions. Various security measures help assure accurate
accounting of copies made, thereby assuring authors and their assignees
that proper royalties can be billed. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 4597058 |
|
|
Cartridge programming system |
|
|
|
|
|
| Publication Date |
June 24, 1986 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Parent Case |
This application is a continuation-in-part of a patent application entitled
Cartridge Programming System and Method, Ser. No. 493,000, filed May 9,
1983, now abandoned, assigned to the assignee of this invention. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
Description  |
|
|
This application is related to a patent application entitled Reprogrammable
Cartridge Memory and Method, Ser. No. 476,383, filed Mar. 17, 1983,
assigned to the assignee of this invention, which is hereby incorporated
by reference.
This invention relates generally to computer memory devices and more
particularly the invention relates to an apparatus and method for
programming reprogrammable plug-in cartridge memories.
Plug-in cartridge memories are generally used in calculators and personal
computers to provide a greater variety of software than the owners of such
computers could otherwise have convenient access to. Conventionally, the
software is permanently imbedded in semiconductor chips which are housed
in a cartridge. Any one of a library of programs can be run in the
computer by inserting a selected program cartridge into a receptacle in
the computer designed for this purpose. Accordingly, users have had to
maintain a number of cartridges equal to the programs in his library.
Further, the computer cartridge memory retailers have had to maintain a
sizeable inventory of programmed cartridges to satisfy the growing needs
of personal computer users.
The present invention is directed to an apparatus for retaining a library
of programs and for selectively loading these programs into reprogrammable
cartridge memories. Thus, rather than maintaining a physically large
collection of cartridges, a user can have a small number of cartridges
which can be reprogrammed as desired. Importantly, the retailer can
dispense with maintaining a large inventory of permanently programmed
cartridge memories. Using the disclosed cartridge programming system the
retailer can have any program selected by a customer loaded into a blank
cartridge from a library of such programs. The user may either purchase a
blank cartridge or provide his own reprogrammable cartridge memory for
loading of the desired program.
A preferred embodiment of the present invention includes a combination of
security measures and an electronic accounting system for ensuring
accurate accounting of all copies made of each program, thereby assuring
authors and other interested parties that proper royalties can be billed.
Accordingly, an object of the invention is to provide an improved cartridge
programming system and method for storing a library of programs and for
loading a selected program or set of programs onto reprogrammable
cartridge memories.
Another object of the invention is to provide a method of maintaining a
program library without requiring a large inventory of memory cartridges.
A further object of the invention is to provide a system for programming a
cartridge memory without removing the semiconductor memory chip from the
cartridge.
In one embodiment, there is provided a cartridge programming system having
a host computer which communicates with and controls a plurality of remote
programming terminals (RPTs). RPTs are designed to be able to load
selected computer programs (selected from a library or contained in
another cartridge) onto blank reprogrammable cartridges for a variety of
computer systems. Each RPT has a modem for receiving and transfering data
between the host and RPT. The RPT has a central processing means (CPM)
with an operating system for controlling the functions of the RPT. There
is a disk storage device for retaining a library of programs and a battery
back-up memory for retaining a record of transactions performed by the
RPT. A keyboard is used to select a program to be loaded into the
cartridge and to initiate the loading. A cartridge receptacle couples the
cartridge to the other components of the RPT.
The invention and objects and features thereof will be more readily
apparent from the following detailed description and appended claims when
taken with the drawings, in which:
FIG. 1 depicts a functional block diagram of a cartridge programming system
including a host computer and several remote programming terminals.
FIG. 2 depicts a functional block diagram of a remote programming terminal.
FIG. 3 is a flowchart of the operation of the cartridge programming system.
The terms plug-in cartridge memory module, cartridge memory, cartridge, and
plug-in memory module are used interchangeably herein and generally refer
to any apparatus including cartridge housing means, memory means in the
cartridge housing means and connector means at least partially in the
cartridge housing means for coupling the memory means to a computer
apparatus. Cartridge memory means typically comprise either electrically
programmable, ultraviolet light erasable, read only memory (EPROM), or
electrically programmable, electrically erasable, read only memory
(EEPROM).
The terms program and software are used herein to refer to two distinct
sets or types of computer programs. While these terms are normally
interchangeable, they are used distinctly here for pedagogical purposes.
Thus the computer programs which comprise elements of the invention will
be called software means. These control the operation of the host computer
and the remote programming terminals. The term programs, on the other hand
will be used to refer to the data retained in the host and remote
programming terminals for transfer to plug-in cartridge memory modules in
accordance with the method of the present invention. In this context
programs include all types of computer programs and data which can be
usefully retained in a cartridge memory. Typical applications are programs
for home video games, educational computer programs, special purpose data
sets such as a telephone directory, or statistics on all the players and
teams of a particular professional sports league, and other computer
programs and data sets whose expected usefulness to the cartridge owner is
of limited duration.
Referring now to FIG. 1, the cartridge programming system 11 is controlled
by a host computer 12. Host 12 can be any minicomputer or other data
processing system capable of handling the peripheral devices described
below. Operation of the hose 12 is initiated by use of console 13. Reports
and other printed matter can be generated by the host 12 on a printer 16.
A data base 14 of programs is maintained in a mass storage medium such as
magnetic disks or magnetic tape. Further the host has a plurality of
input-output (I/O) ports 15 which are connected to modems 21 for
communication with remote programming terminals (RPTs) 41. In one
embodiment, each host 12 can support four to sixty-four I/O ports 15.
Additional ports 15 can be supported by providing additional host systems
12 or by multiplexing each port 15 to multiple modems 21. Multiple ports
15 can communicate through a single pair of modems 23 in conjunction with
a data compressor/multiplexor 22 and 29 at each end. Single-port modems 21
typically operate in conjunction with an ordinary telephone line 24 for
communication to an RPT 41 through a corresponding modem 26 on the RPT
side of the telephone line. Multiple ports 15-1, 15-2, 15-3 can
communicate to corresponding terminals 41-1, 41-2, 41-3 through a single
pair of modems 23 and 28 by using data compressor/multiplexors 23 and 29
at each end of the communication line 25. The data compressor/multiplexors
23 and 29 compress multiple transmissions onto a single line, decode
compressed signals and direct the decoded data to the proper RPT 41 or
port 15. The higher bandwidth requirements of a multiple-port modem 23 may
require the use of a dedicated line 25 for communication with the RPTs 41.
Generally, the host 12 operates by dialing up the RPTs 41, using automatic
dialing features common in modems 21, and establishing the identity to the
RPT 41. The library of programs stored in the RPT may then be updated
through a series of commands and by the transmission of new programs to
the RPT 41. In addition the host 12 can request and process a record of
all program-copying transactions performed by the RPT 41 since the last
such communication. Furthermore, the host 12 can respond to calls
initiated by an RPT 41 where, for example, the RPT 41 requests that the
host download a specific program not in the RPT's library.
Referring to FIG. 2, each remote programming terminal (RPT) 41 is
controlled by a central processing unit (CPU) 42, typically an Intel 8088
16-bit microprocessor. A library of programs are stored in a set of floppy
disks which are accessed by floppy disk drives 48 in conjunction with a
disk controller 49, typically an Intel 8272 or NEC 765 floppy disk
controller. Memory means include both non-volatile memory 62 for retaining
an operating system and volatile random access memory 47 for general use
by the CPU 42. Back-up memory 51 is a battery backed up random access
memory or bubble memory for storing a record of copying transactions by
the RPT 41. Battery back-up means prevents loss of data if the RPT 41 is
cut off from its normal power supply. A cartridge adapter 45 provides a
receptacle for coupling cartridges to the RPT 41.
In the preferred embodiment cartridge adapter 45 includes a set of nine
distinct cartridge slots and a programmable power supply. Each cartridge
slot has edge connector means adapted to receive the cartridge memory
associated with a particular computer model or set of computer models
using similar cartridges. For convenience each slot is labeled with the
name of the computer model(s) whose cartridge is compatible with the
slot's edge connector. The programmable power supply in this embodiment
can supply any voltage between 4.9 and 26 volts, under the direction of
the CPU 42, as required to program the particular model of EPROM used in
the cartridge to be programmed. Thus, a single RPT can be used to record
and sell programs for a large number of distinct computer models with
incompatible cartridge designs and even with a variety of EPROMs having
different programming voltage requirements.
A programmer interface 44 buffers the cartridge adapter 45 and a keyboard
46 from the CPU 42. The keyboard 46 is used to select the program or
programs in the library disks 48 or memory 47 to be loaded into a
cartridge 61, and for initiating the loading operation. (In the preferred
embodiment a copy of a small number of the most popular programs in the
RPT library is kept in random access memory 47 to reduce the time required
for completing the most frequent cartridge loading transactions.) The
keyboard 46, in conjunction with the modem's automatic dialing feature,
can also be used to send messages to the host 12 to request the
transmission of a specific program not in the RPT's library, to order new
cartridges to replenish the retailer's inventory, or to send a message to
the host 12 regarding maintenance problems. A display 53, in conjunction
with a display controller 52, provides visual assistance and confirmation
of commands given at the keyboard 46. A printer 56 is optionally provided
for printing compilations of transactional data.
A security lock 55 prevents use of the RPT 41 by persons not having a key
to the system. Modem 26 operates in conjunction with a communications
controller 54, typically an Intel 8274 or NEC MPP 7201 device for
converting serial data to data usable by the CPU 42, for communication
with the host computer 12 over a telephone line 24. As is well known in
the art, modems 26 convert digital signals into analogue signals for
telephone line transmission and reconvert transmitted analogue telephone
line signals back into digital form. Communications controllers 54 convert
the serial digital signals from the modem 26 into a parallel format
acceptable to the CPU 42 and convert CPU 42 parallel signals into serial
format for transmission by the modem 26. Finally, a programmable read only
memory (EPROM) eraser 59 may be provided for exposing the EPROM in a
cartridge 61 to intense ultraviolet light to erase the contents of the
EPROM (where the cartridge memory means is an EEPROM the programmer 44
will be used to accomplish erasing electrically).
Referring now to FIGS. 1, 2 and 3, the cartridge programming system works
as follows. For each host system 12 a plurality of RPTs 41 are located in
retail outlets. The host 12 and RPTs 41 communicate on an occasional basis
via normal dial-up telephone lines. On such occasions the host can delete
old programs from the RPT's library, transfer new programs to it, and
gather data on transactions at the particular RPT 41 since the last such
communication. Programs are typically transmitted to the RPT 41 with error
correcting encoding to help ensure data integrity. Encryption of the
transmitted programs can be used to help deter unauthorized copying of the
proprietary programs. Similarly the programs in the RPT 41 are stored in a
floppy disk library 48 with a file system designed to be incompatible with
other computers, thereby deterring unauthorized copying of the library
programs.
Further security measures include a proprietary communication protocol
inhibiting unauthorized access to each RPT 41 or host computer 12. Each
RPT 41 has a unique internal identifier necessary for establishing
communication with the host 12. Finally, the RPT 41 may be designed to
receive a down-loaded program from the host 12, specially designed not to
work in non-RPT systems, necessary for receiving and storing programs from
the host 12.
All the above described security measures are designed to assure that both
the author and distributor are informed of all copies made of each
program, thereby assuring that proper royalties can be billed. In other
words, each part of the system is designed to foil attempts to make
unauthorized copies of programs and to ensure that a record of each copy
is automatically received by a central host system 12. The operation of
the system 11 is thus consistent with preserving the copyrights of authors
and their assignees.
At the retail store, operation of the RPT 41 of FIG. 2 is as follows. The
user or store employee enables operation of the RPT 41 by putting the
proper key into the security lock 55. Then a program is selected from the
RAM 47 or the library 48 using the keyboard 46 and display 53 (for visual
feedback). A blank cartridge 61 is inserted into the cartridge adapter 45.
The loading of the program into the cartridge 61 is initiated from the
keyboard 46 and the cartridge memory is then read to verify that a correct
copy was recorded in the cartridge 61 memory. A record of the transaction
is stored in the battery back-up memory 51.
Software means in RPT 41 controls the program selection and loading
process. In the preferred embodiment this software means includes a series
of menu driven selection routines which, using attractive graphics and
simply worded instructions, guide the user through the selection process.
Between transactions, the display 53 is kept in an attract mode during
which there is displayed, alternately, a short segment from a popular
video game, or a preview of several video games or other programs
available from the RPT's library, and instructions on how to use the RPT
41. Pushing any key on keyboard 46 initiates display of the first menu.
From the first menu the user selects the computer model for which he would
like to purchase a program by pushing one or more keys on keyboard 46. For
each such computer model the RPT 41 has a library of programs designed to
run on that machine.
Next the RPT 41 displays a menu of programs currently available for the
computer model selected along with the retail price for loading a copy of
each program into a cartridge memory. If the wrong computer model was
selected the user can return to the first menu by pushing the proper key
on keyboard 46. After the user selects the program he would like to buy
(by pushing the proper keys), the display 53 instructs the user to insert
a blank cartridge 61 in the proper cartridge slot of cartridge adapter 45.
If the wrong program was selected the user can return to the second menu
by pushing the proper key on keyboard 46. The RPT 41 then checks that the
inserted cartridge is in fact a functional blank cartridge. If the
cartridge is functional but not blank, that fact is announced on the
display 53, and if the cartridge is defective a message to that effect is
displayed. Thus, the RPT 41 can distinguish between defective cartridges
and non-defective, non-blank cartridges. A record of defective cartridges
is kept for cartridge reliability and quality assurance purposes. After
the RPT 41 confirms that a good blank cartridge 61 has been inserted into
the proper slot the cartridge memory is loaded with the selected program.
If the customer brings in a programmed cartridge 61 for reprogramming the
store may either erase the cartridge 61 in a PROM erasure unit 59 before
reprogramming it or exchanging the old cartridge 61 in for a blank one. In
the latter circumstance, the programmed cartridge 61 may be erased later,
either at the store or at a separate facility. Such a central erasing
facility can help keep track of program loading transactions independently
of the computerized system described earlier. Before exchanging cartridges
61 the store can plug the cartridge 61 into the RPT 41 and test its
integrity, thereby avoiding losses due to the exchange of good cartridges
61 for defective ones.
If the customer wishes to copy a program on one cartridge 61 onto another
the RPT 41 can be used to record the program in the first cartridge 61
memory and copy it onto a blank cartridge 61. The RPT 41 is designed to
copy programs from only those cartridges which have sufficient
identification of the program to ensure proper accounting of the copying
transaction. Thus, programs not in the RPT library can be copied in a
manner consistent with copyrights in the programs.
Both the host 12 and RPTs 41 have software means to generate a variety of
reports from the transactional data stored in back-up memory 51. The RPT
41 in the preferred embodiment has a printer 56 on which reports can be
printed summarizing transactions performed by that particular RPT 41.
Daily, weekly and monthly reports can be generated showing which programs
were sold most often, which computer models generated the most sales, how
many defective cartridges were found, gross receipts on sales, royalties
due to the vendor, and other relevant information. RPTs not equipped with
printers can display similar reports on the display 53.
The host 12 periodically calls up each RPT 41 and obtains a copy of all the
transactional data stored in each RPT's battery back-up memory 51. From
this information the host 12 can generate reports of sales by each RPT 41,
and the corresponding royalties due to the vendor, sales of each program
and the royalties due thereon to the copyright licensors, popularity
trends, and other similar types of analyses.
A cartridge programming system in accordance with the invention enables
flexibility and economy in use both by the retailer and the computer user.
While the system has been described with reference to a specific
embodiment, the description is illustrative of the invention and is not to
be construed as limiting the invention. For instance, the materials loaded
into the cartridge memories may be data rather than computer programs.
Various modifications and applications may occur to those skilled in the
art without departing from the true spirit and scope of the invention as
defined by the appended claims.
* * * * *
|
|
|
|
|
Description  |
|