`
`
`
`U.
`
`
`
` oEomam-mum:_m._..m:2:vH_m3<m<&<aFzmsmoqzqz:....:LozfimmmoomaSS\GwmPmzofiqfimamm.S.zqmooma
`
`mm:CB5
`
`-_2<mooEm:mAmo<mo.6
`zoE..mon_»m_«:51.omsmam7.
`
`2C2:zoaamomm:
`
`
`_mm
`
`
`
`
`
`ozca-s_<moomn.
`
`
`
`.1.zofimon.uzofimoasm:m>mozfiqmmaoE8%.Eur=umn.m
`
`
`mm_t99.
`
`cm....
`
`.1~...sxmuo_S3
`
`
`2m903,m.mzofimoaP
`
`
`
`
`
`
`><._n.mBE395EEHEo:.mzo<_2orzummm'.s_<mooEWEm
`
`m.
`
`Page 00002
`
`
`
`
`S”U
`
`LlH6cl3P.
`
`Apr. 7, 1992
`
`Sheet 2 of 10
`
`5,103,392
`
`
`
`
`
`
`
` >Sn_maom<om>.uv_mm.._.Z_m&ofimzoqsT9y.2&%_m_
`
`xma
`
`
`
`ZOFEOQExuoo
`
`.oz_mm_ooEmm._m___OHmm.
`.mm.,.0
`
`
`
`
`
`E2:or__w_m_mm
`
`
`
`mm.moéom
`
`-mmm:
`
`
`
`:2:zoaamoH,..:.l
`
`
`
`
`
`Z0:.mOn_sm.»m>mozEEm_n_o
`
`pzpouoqbsmoqzqs
`
`z.Em_Bml
`
`m.m.E
`
`zoimoa
`
`
`.&OOn_zéooma
`
`.1-cl
`
`
`
`ozfiwmmoomm<._.<DnzOC.<._.m
`
`_mE<m<mn_<
`
`Page 00003
`
`Page 00003
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 7, 1992
`
`Sheet 3 of 10
`
`5,103,392
`
`F79. 3A
`
`Fig. 3
`
`Fig.3C Fig.3D
`
`2lOa
`
`210b
`
`2IOc
`
`2lOd 2'0
`
`DISCOUNT
`PROPRIETOR PROGRAM USE
`DE
`’
`RC3
`NTIFNCHA E RATE
`IDENTIF’N
`
`.
`'
`
`DISCOUNT
`
`PROCESSING
`
`1
`
`Page 00004
`
`Page 00004
`
`
`
`U.S. Patent
`
`Apr. 7, 1992
`
`Sheet 4 of 10
`
`5,103,392
`
`Fig. 3B
`
`I
`
`KEYBOARD
`
`17
`
`PROGRAM POOL
`STATION
`
`I32
`
`1
`/0
`PROCESSING
`
`
`
`DISPLAY
`
`BALANCE
`INCREASE
`FETCHING
`
`,
`
`llOa
`
`320
`
`BALANCE
`STORAGE
`~
`
`A
`
` E3330
`
`(ADDER)
`
`'
`
`POI NTE R
`
`STORAGE
`
`Page 00005
`
`Page 00005
`
`
`
`U.S. Patent
`
`Apr. 7, 1992
`
`Sheet 5 of 10
`
`Fig. 3C
`
`H —_ “
`250 USE
`POSSIBILITY
`CH ECKI N G
`
`DISPLAY
`
`OK
`BALANCE
`STORAGE
`26° UPDATING
`
`27
`0
`
`POINTER
`
`UPDATING
`
`280
`
`U SE DETAI. LS
`
`STORAGE WRITING
`
`
`OPERATING
`SYSTEM
`
`RE S PONSE
`
`PROCESSING
`
`
`
`
` I
`
`Page‘ 00006
`
`Page 00006
`
`
`
`U.S. Patent
`
`Apr. 7, 1992
`
`Sheet 5 of 10
`
`5,103,392
`
`UID'-USER IDENTIFICATION
`PIDI PROGRAM IDENTIFICATI
`PNOI PROGRAM NUMBER
`CHG :USE CHARGE
`
`0 an
`
`H .... Igg
`0 .... (DETAILS
`I
`R .... sromcs
`
`W
`
`_-. __ _.
`300 _0
`T
`LERCESS CON ROL)
`
`A
`
`.
`I
`
`Page 00007
`
`Page 00007
`
`
`
`4..HetaP.&U
`
`Apr. 7, 1992
`
`Sheet 7 of 10
`
`5,103,392
`
`vat
`
`at...“25
`
`Page 00008
`
`Page 00008
`
`
`
`U.S. Patent
`
`Apr. 7, 1992
`
`Sheet 8 of 10
`
`Fig. 5A
`
`4 210
`
`42 1 b
`
`421 C
`
`421d
`
`PROPRIETOR PROGRAM U SE
`IDENTIF ’ N
`IDENTI F 'N CHARGE
`
`RETURN-SALE
`RATE
`
`4 2'
`
`437 1/0 PROCESSING
`
`1 .
`NCE R
`STORAGE
`
`‘
`
`'
`
`4m:
`
`9
`
`
`
`COMPARISON
`
`' ' OCESS] NG
`
`
`
`-
`
`SUBSEQUENT
`PROCES S
`DECISIO N
`
`
`
`NO
`
`UPDATE PROCESS!
`I STORAGE
`ADDITION I
`PROCESSING
`.[
`I
`429
`430 OPERATING SYSTEM
`3'3?
`PONSE PROCESSING DETAILS
`
`PROGRAM TABLE
`IJIIIIEEESIEIIEI
`
`
`
`PURCHASEABILITY
`CHECK PROCESSING
`
`
`TO ODER’-‘.TING
`SYSTEM
`BALANCE STORAGE
`
`
`
`PROCESSING —l
`
`1
`
`STORAG E
`
`PROCESSING
`
`438
`
`
`
`Page00009
`
`.
`
`‘
`
`Page 00009
`
`
`
`U.S. Patent
`
`Apr. 7, 1992
`
`Sheet 9 of 10
`
`Fig. 5B
`
`4'6
`
`423
`_/
`
`PROGRAM CHARACT'C
`
`DATA READ
`
`N
`
`.
`
`PROCESSING
`
`RETURN-SALE
`PRICE
`
`CALCULATION
`
`NEGATIV E
`
`
`
`
`ADDITION
`
`PROCESSING
`
`REGISTRATION
`CANCEL
`
`~
`
`434
`
`435
`
`
`
`PROCESSING I
`
`PROCESSIN G E
`
`STORAGE
`
`
`
`OPERATING QSTEM
`RESPONSE PRCXSESSING
`
`436
`
`Page 00010
`
`Page 00010
`
`
`
`U.S. Patent
`
`Apr. 7, 1992
`
`Sheet 10 of 10
`
`5,103,392
`
`
`
`sm»m>mZHS20...
`
`om<om>mxvoh
`
`mozfinmo.
`
`
`
`ZOE.<uBz_
`
`zofiomumm
`
`ZOH.2UEZH
`
`mo...
`
`NON
`
`um:&02.
`
`oo\.\ZO:<oHQZH
`
`omqu
`
`
`
`mn._o<n._m01
`
`NON_O\.
`
`
`
`ZOEHUCCzme
`
`9.5
`
`Page 00011
`
`Page 00011
`
`
`
`
`
`
`1
`
`5,103,392
`
`SYSTEM FOR STORING HISTORY OF USE OF
`PROGRAMS INCLUDING USER CREDIT DATA
`AND HAVING ACCESS BY THE PROPRIETOR
`
`This application is a continuation of application Ser.
`No. 07/281.882. filed Dec. 8. I988. now abandoned. is a
`continuation of co-pending application Ser. No. 129,867
`filed on Dec. 4, 1987 and Ser. No. 657,794 filed on Oct.
`4, 1984. both now abandoned.
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`The present invention relates to a system for storing
`the history of use of marketable programs (software)
`such as marketable computer programs. By storage of
`the history of use, proprietors of marketable programs
`can charge for the exact amount of use of the software.
`Specifically.
`the system allows proprietors to obtain
`information on the exact state of use of software by a
`specific user and charge appropriately for that use, thus
`making the use of such software more attractive to
`users.
`
`2. Description ofthe Prior Art
`In general, it is difficult for a proprietor of software
`such as a computer program to protect and to extract
`the full benefits of his software rights. Once software is
`passed into the hands of a customer, the proprietor has
`no way of knowing how the software is used. He there-
`fore cannot stop unauthorized use or copying, and can-
`not utilize a system of charges based on the amount of
`actual use. This has not only resulted in relatively high
`charges for the use of software, but has also discouraged
`software suppliers from the production of good soft-
`ware and promotes a general decline in the quality of
`software on the market. Obviously,
`this situation is
`detrimental to progress and the wider use of software in
`the future.
`A method has been proposed for preventing unautho-
`rized copying of computer programs. in which the pro-
`gram is coded for the particular computer unit on
`which use is authorized. This method is disclosed, for
`example.
`in Japanese Examined Patent Publication
`(Kokoku) No. 53-17849. The program can be used only
`when this code corresponds to that of the computer on
`which use is attempted. This prevents use of unautho-
`rized copies of the program on other computer units.
`The control and management of such computer codes,
`however. is not easy or practical in the case where the
`computer program is mass-marketed.
`SUMMARY OF THE INVENTION
`
`It is an object of the invention to provide a system in
`which the use of a program is recorded every time the
`program is used.
`It
`is another object of the invention to provide a
`system in which the proprietor of a program can charge
`for the exact amount of use of his program and can
`‘ claim damages upon unauthorized use thereof.
`It is a still further object of the invention to provide a
`system in which the users of a program are actually
`encouraged to copy the program, whereby extensive
`utilization of well-designed programs is promoted.
`In accordance with a fundamental aspect of the pres-
`ent invention. there is provided a system for storing
`data on the history of use of programs. including a data
`processing apparatus used by a user and program stor-
`age means for storing a program acquired from a pro-
`
`5
`
`IO
`
`l5
`
`20
`
`25
`
`30
`
`35
`
`45
`
`55
`
`65
`
`2
`prietor and program-specific data. The data processing
`apparatus includes user-specific credit data storage
`means for storing data identifying the user of the data
`processing apparatus and indicating credit for payment
`capacity, use time length. or the like of the user of the
`data processing apparatus. Also included is use decision
`means for determining permission to use the program
`on the data processing apparatus on the basis of pro-
`gram-specific data supplied from the program storage
`means or user-specific credit data supplied from the
`user-specific credit data storage means, the use decision
`means delivering either an afiinnative or negative signal
`corresponding to results of the decision. Also included
`is program use history storage means connected to the
`use decision means for storing program use history data
`derived from the program-specific data or the user-
`specific credit data. In this system, the program use
`history data is rendered accessible to the proprietors of
`the programs used in the data processing apparatus.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`In the drawings.
`FIG. 1 is a block diagram of a system for storing data
`on the history of use of computer programs according
`to the present invention;
`FIG. 2 is a block diagram of more detailed structure
`of the embodiment of the system shown in FIG. 1;
`FIG. 3 an even more detailed block diagram of the
`structure and operation of the system shown in FIG. 1;
`FIG. 4 is a block diagram of another example of the
`structure and operation of the system shown in FIG. 1;
`FIG. 5 is a block diagram of a further example of the
`structure and operation of the system shown in FIG. 1;
`and
`FIG. 6 is a block diagram of a password inspection
`device which can be used in association with the system
`shown in FIG. 1.
`
`DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`
`A system for storing data on the history of use of
`programs according to an embodiment of the present
`invention is shown in FIG. 1. The system shown in
`FIG. 1 includes a data processing apparatus 1 such as a
`computer used by a previously approved user, market-
`able program storages 21, 22,
`.
`.
`. 2n such as magnetic
`tapes or magnetic disks, and a program registration and
`management unit 4.
`The data processing apparatus 1 is operated when one
`of the program storages 21, 22 .
`.
`. Zn is entered into the
`data processing apparatus 1.
`The data processing apparatus 1 includes a use deci-
`sion unit 11, a user-specific credit data storage 12, a use
`history storage 13, and an operating system portion 14.
`One of the program storages 21, 22, .
`.
`. 2n is entered
`into the .use decision unit 11. The user-specific credit
`data storage 12 is connected to the use decision unit 1].
`The use decision unit 11 supplies an OK./NG (no good)
`signal to the operating system portion 14 and an output
`signal to the use history storage 13 and receives a signal
`from the use history storage 13.
`An output signal of the use history storage 13 can be
`supplied to the program registration and management
`unit 4, which can send a signal to the user-specific credit
`data storage 12. In addition to the program for operat-
`ing the user's computer. the program storages 21, 22, .
`.
`.
`, 2n store the program-specific data of portions 211,
`212, .
`.
`. 2n.
`
`Page 00012
`
`Page 00012
`
`
`
`5,103,392
`
`3
`The user-specific credit data storage 12 stores data
`indicating the user's authorization to use the program to
`be entered into the computer I. the user's ability to pay
`for the use ofthe program, the period oftime the user is
`allowed to use the program. and the like. When, for
`example. the program-specific data from the program
`storage 21 is supplied to the use decision unit 11, the use
`decision unit 1] compares the program-specific data
`from the program-specific data portion 211 with the
`user-specific credit data from the user-specific credit
`data storage 12 and decides whether the user may use
`the program.
`If the decision is affirmative, an OK signal is supplied
`to the operating system portion 14 to allow the subse-
`quent operation of the computer to proceed. A data
`signal is supplied to the use history storage 13 to cause
`the program-specific data from the program-specific
`data portion 211 and/or the user-specific credit data
`from the user-specific credit storage 12 to be stored in
`the use history storage 13.
`If the decision is negative, an NG (no good) signal is
`supplied to the operating system portion 14 to prevent
`subsequent operation of the computer from taking
`place.
`Once the program-specific data or the user-specific
`credit data is stored in the use history storage 13, the
`program use history data is accessible to the proprietor
`of the programs executed on the data processing appa-
`ratus the Therefore, the proprietor can obtain the infor-
`mation necessary for charging the user for the exact
`amount of use of his program.
`It is also possible to transmit the data stored in the use
`history storage 13 to the program registration and man-
`agement unit 4, which is outside of the data processing
`apparatus 1. After predetermined data processing oper-
`ations in the program registration and management unit
`4, output data can be transmitted to the user-specific
`credit data storage 12 to update or change the data
`stored therein.
`The detailed structure of the system shown in FIG. 1
`is shown in FIG. 2. The user-specific credit data storage
`12 is divided into two portions. One is a storage portion
`121 for storing the user-specific code, the other is a
`storage ponion 122 for storing data of the charge pay-
`able by the user as well as a currency unit, such as yen,
`dollars, or pounds. The use history storage 13 includes
`a main portion 13] of the use history storage 13, an
`input/output processing portion 132, and a timer por-
`tion 133. The data processing apparatus 1 also includes
`a magnetic disk device 15, a printer 16, a keyboard 17,
`and a display device 18.
`The program registration and management unit 4 in
`the system shown in FIG. 1 is a program pool station 5
`in the embodiment shown in FIG. 2. The program pool
`station 5 includes a registration portion 51, a manage-
`ment docket 52, and an account portion 53.
`A proprietor of a program enters a bank account
`number at the registration portion 51 and receives a
`program-specific code (program proprietor identifica-
`tion code). The data prooessed in the registration por-
`tion 51 is written in and read from the management
`docket 52.
`The account portion 53 is connected with the input-
`/output processing portion 132 of the use history stor-
`age 13 in the data processing apparatus 1. The informa-
`tion of the charge payable by the user stored in the use
`history storage 131 may be a predetermined limit on the
`amount of cumulative charges of a user. The content of
`
`l0
`
`l5
`
`20
`
`25
`
`30
`
`35
`
`45
`
`55
`
`65
`
`4
`the use history storage 131 can be emptied when the
`data to be stored into the use history storage 13] ex-
`ceeds the predetermined limit of the capacity of storage
`of data. When the charge to the user for use of the
`program in the data processing apparatus 1 is very high,
`information concerning such expensive use can be
`transmitted through the input/output processing por-
`tion 132 to the account portion 53 in the program pool
`station 5. Also, information on the balance of the charge
`payable by the user stored in the use history storage 131
`can be revised to raise the limit of the cumulative
`charges stored in the use history storage 131 by instruc-
`tions supplied through the input/output processing
`portion 132 from the account portion 53 in the program
`pool station 5.
`The data transmission through the input/output pro-
`cessing portion 132 may be realized through various
`means, such as on-line data transmission, a magnetic
`card, or an IC card including a microprocessor therein.
`The program storages 21, 22. .
`.
`. are mass-marketed
`by the proprietors of the programs 31, 32, 33,
`.
`.
`.
`.
`Before this. the proprietors register their programs at
`the program pool station 5. Later, they obtain accounts
`of the use of their programs by the users from the sta-
`tion 5. For example, the program-specific data is stored
`in the program-specific portion 211 of the program
`storage 21. The program-specific data includes the pro-
`gram-specific code supplied from the program pool
`station 5, the version number of the program, and the
`charge for use of the program.
`It is possible to include information on a special con-
`tract concerning the use of the program in the program-
`specific data. In this case, the use decision unit 11 deliv-
`ers an affirmative decision only when the data stored in
`the user-specific credit data storage 12 includes infor-
`mation indicating a special use contract code corre-
`sponding to the special contract information.
`The information concerning such a special contract is
`usually supplied to the program pool station 5. Hence, it
`is possible for the proprietor of the program to obtain
`information concerning the use of his program, for
`which the special contract is designated, from the pro-
`gram pool station 5.
`The system shown in FIG. 2 operates as follows. The
`entry of the marketable program storage 21 in the data
`processing apparatus 1 is detected by the operating
`system portion 14 by interpreting the job control lan-
`guage in the storage. Upon detection, the use decision
`unit 11 commences a comparison operation. The data
`from the user-specific code storage 121 and the payable
`charge storage 122 are compared with the program-
`specific data from the program storage 21.
`A user balance in the data from the payable charge
`storage 122 has subtracted from it the charge for use of
`the program in the program-specific data. When the
`result of the subtraction is a negative number, this infor-
`mation is supplied to the operating system portion 14 to
`cause the display device to indicate that use of the pro-
`gram is impossible because the charge of use exceeds
`the balance. When the result of the subtraction is either
`zero or a positive number, information including the
`result of the subtraction, the program-specific code, the
`charge for use of the program, the user-specific code.
`and a new user balance is stored in the use history stor-
`age I3. Also, information of the continuation of the
`operation of the computer is supplied to the operating
`system to allow the operation of the computer to pro-
`ceed.
`
`Page 00013
`
`Page 00013
`
`
`
`5,103,392
`
`5
`Thus. in the use history storage 13. data of the user
`balance, i.e.. the result of the subtractions of charges for
`uses of programs, the data of the program-specific code,
`and the data of the user-specific code stored. It is also
`possible to and determine, from the stored data,
`the
`total amount which should be paid by the user to the
`proprietors of the used programs.
`The program pool station 5 can be controlled by an
`organization such as an association of the proprietors of
`computer programs. When the program pool station 5 is
`controlled by a proprietor association, the association
`obtains the information on the use of the programs
`stored in the use history storage 131.
`It is possible to establish a contract between a pro-
`gram proprietor and a user to refund 10% of the charge
`for use of a program if the user gives the information on
`the program use to the proprietor. With such a contract,
`assuming, for example, prepayment by the user, it is in
`user's interest to give information on the program use to
`the proprietor. Therefore, collection of charges for use
`of the proprietor’s program is ensured with a high prob-
`ability.
`Upon receipt of the information on use of the pro-
`gram from the user's data processing apparatus 1, the
`proprietor association collects the charge for use of the
`program from the user and transfers it to the bank ac-
`count registered in the management docket 52 in the
`program pool station 5.
`A similar procedure can be followed using an inte-
`grated circuit (IC) card. In such a case, the IC card is
`adopted as the means for data transmission through the
`input/output processing portion 132. It is possible for
`the program proprietor to contract with a user having
`an IC card so that the user brings back the card to the
`proprietor association in return for a cash refund. The
`amount of the cash refund payment may be l0% of the
`total of the charges for use of the program and the
`remainder of the user balance if a payable charge was
`prepaid by the user.
`With such a contract, it is in the interest of the holder
`of the IC card to bring back his 1C card to the propri-
`etor association to obtain at least the 10% refund on the
`total of the charges for the use of the program, even if
`the remainder of the payable charge, i.e., user balance.
`is zero. Upon receipt of the IC card from the user. the
`proprietor association arranges for transfer of funds to
`the bank account of the proprietor.
`With the proprietor association, the proprietor of a
`program can receive the charge for use of his program
`at his bank account through the proprietor association.
`Even if unauthorized copying of the program is carried
`out and the copied program is used, under a properly
`organized system, the charges for use of the copied
`program will be transferred to the bank account of the
`program proprietor through the proprietor association,
`since the program-specific data including the program
`proprietor identification code is stored in the program
`storage. Accordingly, use of the unauthorized copy
`does not detract from, but adds to the profit of the
`program proprietor.
`Also, even if unauthorized copying of the program is
`carried out and an incorrect program proprietor identi-
`fication code is unlawfully attached, the use history of
`the copy can be detected from the data stored in the use
`history storage 13], and hence damages can be claimed
`against the program proprietor identified by the incor-
`rect program proprietor code.
`
`5
`
`‘.0
`
`I5
`
`20
`
`25
`
`30
`
`35
`
`45
`
`55
`
`65
`
`6
`An example’ of detailed structure and functions of the
`system shown in FIG. 2 is illustrated in FIG. 3. The use
`history and payable charge data storage 110 includes a
`balance storage 1100, a pointer storage 110b, a use de-
`tails storage llllc, and an access control portion 300 for
`the use details storage 110c. There is provided a pro-
`gram data memory 210 which includes a program pro-
`prietor identification code storage 2100, a program
`identification data storage 210b, a use charge storage
`210c, and discount rate storage 210d.
`There are provided a discount process 220, a balance
`checking portion 230, a use details storage range check-
`ing portion 240. a use possibility checking ponion 250,
`and a balance storage updating portion 260. There are
`also provided a pointer updating portion 270, a use
`details storage writing portion 280, and an operating
`system response processing portion 290. There are also
`provided a user checking ponion 310, a balance in-
`crease fetching portion 320. an adder portion 330. a
`pointer checking portion 340, a use history storage
`reading portion 350, a transfer ponion 360, and a
`pointer decrement ponion 370.
`The operation of the system shown in FIG. 3 will
`now be described. First, the routine of the use of the
`program will be described. Upon receipt of an instruc-
`tion from the keyboard 17, the information of the bal-
`ance stored in the balance storage 110a is checked in the
`balance checking portion 230. When the result of the
`checking is either negative or zero, BALANCE ZERO
`is indicated on the display device 18. When the result of
`the checking is neither negative not zero, the infonna-
`tion stored in the pointer storage 110b is checked for
`whether or not the predetermined elements of the infor-
`mation exceed the maximum limit values. The maxi-
`mum limit values may be detennined by the number of
`items in the use details storage 110: or the sum for the
`charge of use of the program not reported to the propri-
`etor association.
`’
`When the predetermined elements of the information
`exceed the maximum limit values. REMAINING CA-
`PACITY OF USE DETAILS STORAGE INSUFFI-
`CIENT. PLEASE SEND USE DETAILS TO PRO-
`PRIETOR ASSOCIATION. (or PLEASE CHANGE
`IC CARD AT PROPRIETOR ASSOCIATION) is
`indicated on the display device 18.
`~
`When the predetermined elements of the information
`do not exceed the maximum limit values, the discount
`processing portion 220 calculates the charge for use of
`the program, by using the use charge from the use
`charge storage 210c, the discount rate from the discount
`rate storage 2104', and the user-specific code from the
`user-specific code storage 121. It is possible to set the
`charge for use of the program to provide a special dis-
`count for a special user, or a special discount. including
`no charge, for a user for a predetermined number of
`uses. Of course, when no information of a con-
`tract is detected in the user-specific credit data, THIS
`PROGRAM NOT AVAILABLE, BECAUSE OF
`ABSENCE OF CONTRACT may be indicated on the
`display device 18.
`The use possibility checking portion 250 subtracts
`from the balance output by the balance storage 110a a
`calculated charge output by the the discount processing
`ponion 220 and checks whether or not the result of the
`subtraction is a negative number. When the result is a
`negative number, BALANCE SI-IORTAGE is indi-
`cated on the display device 18. When the result is not a
`negative number, the balance storage-updating portion
`
`Page 00014
`
`Page 00014
`
`
`
`5,103,392
`
`7
`260 updates the value of the balance storage 1100, and
`the pointer updating portion 270 updates the value of
`the pointer storage 11% to increment the value by I.
`Then. the use details storage writing ponion 280 stores
`the user identification code.
`the program proprietor
`identification data from the portion 210a, the program
`identification data from the portion 210b, and the
`amount of the calculated charge, including the currency
`unit, into the use details storage llllc. This storage into
`the use details storage 1l0c is carried out at the storage
`location designated by the pointer for the access control
`portion 300 stored in the pointer storage 11%. After
`that. the operating system response processing portion
`290 delivers a signal indicating approval of use of the
`program to the operating system portion 14.
`Instead of the above-described subtraction of the
`payable charge each time a program is used, it is possi-
`ble to maintain the initial payable charge, i.e., not sub-
`tract the charges for use of the program, and to deliver
`the information of the result of subtraction from the
`initial payable charge of the sum of the charges for use
`of a program only when the delivery of the result is
`required.
`Next, the routine for increasing of the value of the
`balance storage 110a will be described. Upon receipt of
`an instruction from the keyboard 17, the user checking
`portion 310 checks whether or not the user is entitled to
`use the program. For example, coincidence between the
`password code from the keyboard 17 and a code from
`the user-specific code storage 121 is checked. When no
`coincidence is found. PLEASE INPUT PASSWORD
`AGAIN is indicated on the display device 18. When
`coincidence is found, the amount of the balance which
`is to be increased is fetched in the balance increase
`fetching ponion 320 using the signal from the input-
`/output processing ponion 132, This can be done by
`obtaining information concerning the amount of the
`balance to be increased from the keyboard 17 after
`exchanging on-line information concerning the pass-
`word with the program pool station or by using an IC
`card connected to the input/output processing portion
`132 for obtaining information concerning the amount by
`which the balance is to be increased.
`The amount of by which the balance to be increased
`is added to the balance in the balance storage 110a by
`the adder portion 330, and the result of the addition in
`the adder portion 330 is stored in the balance storage
`uoa.
`Next, the routine of the transfer of data from the use
`history storage 110 to the program pool station 5 will be
`described. Upon receipt of an instruction from the key-
`board H, the pointer value checking portion 340 checks
`the data in the pointer storage llflb for whether or not
`the pointer value is greater than zero. When the result
`of the check is that the pointer value is not greater than
`zero. TRANSFER OF USE DETAILS STORAGE
`DATA COMPLETED is indicated on the display de-
`vice l8. When the result of the check is that the pointer
`value is greater than zero. the reading ponion 350 reads
`the data of the use details storage llflc in the range
`designated by the pointer in the pointer storage 110b,
`and the transfer portion 360 transfers the read data
`directly to the program pool station 5 via the input/out-
`put processing portion 132. In the case where an IC
`card is used, the data is recorded on the IC card.
`Then, the pointer value decreasing portion 370 de-
`creases the pointer value by 1, and the process returns
`to the pointer checking portion 34-0. Thus, the process is
`
`the value of the pointer storage llflb
`repeated until
`reaches zero. Accordingly. all of the data in the use
`details storage INC is transmitted to the program pool
`station 5.
`
`It is possible to change the maximum limit value in
`the use details storage range checking portion 240 in
`accordance with the degree of credit of the user. Hence,
`it is possible to designate a relatively long interval for
`reports of the data in the use details storage 110: for a
`user with an excellent credit standing and to designate a
`relatively short interval for reports of the data in the use
`details storage 110:‘ for a user with a poor credit stand-
`mg.
`An embodiment of the system in which an IC card is
`used is shown in FIG. 4. The system shown in FIG. 4
`includes a central processing system 530 having a main
`memory 537. a central processor unit 538, a channel
`device 539. an input/output control device 536, and a
`keyboard 510; an IC card reader 550; and an IC card
`570 having a microprocessor unit 573, a use history
`storage 571, an EPROM 574, an input/output port 575,
`and a bus 576. The use history storage 571 includes a
`balance storage 571a, a pointer storage 571b, and a use
`details storage 571:.
`In the system shown in FIG. 4. whether or not the
`program can be used is checked by using the balance
`storage 571a. When the result of the check is affirma-
`tive, the data in the balance storage 5710 is updated, by
`subtraction, and the details of the use of the program are
`stored in the use details storage 57lc.
`The purchase price of the IC card 570 paid by the
`user to the proprietor association is stored in the balance
`storage 571a in the IC card 570. After using the IC card
`to close to the extent allowed by the payable charge, the
`user returns the IC card 570 to the proprietor associa-
`tion. Assuming. for example, prepayment of the pur-
`chase price. upon receipt of the IC card 570. the propri-
`etor association returns the balance stored in the bal-
`ance storage 571a and l0% of the total of the charges
`for use of the program. It is possible accordingly for the
`proprietor association to pay the charge of use for a
`program to the proprietor.
`It is possible to store in the EPROM 574 a program
`which forbids processing in the direction of increase of
`the balance in the balance storage 571a. It is also possi-
`ble to encipher the program-specific data and distribute
`the enciphered program-specific data through the pro-
`gram. Such enciphered program-specific data is deci-
`phered by using the key information stored in the IC
`card 570. These measures can prevent unauthorized use
`of the IC card 570. It is also possible to omit use of the
`user identification code to ensure the privacy of the
`user.
`
`I0
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`55
`
`65
`
`Another possibility is to adopt a system in which an
`indication that the amount of the balance in the balance
`storage 571a is approaching zero is displayed. It is also
`possible to allow the use of a program up to a predeter-
`mined negative balance in the balance storage 57141 with
`an indication that the user is in such a negative condi-
`tion. It is also possible for the proprietor association to
`cancel the service of the proprietor association for a
`user who has exceeded the above-mentioned predeter-
`mined negative balance. It is also possible to store, in the
`balance storage 5710. information concerning the in-
`crease of the payable charge in response to the insertion
`of coins.
`
`It is possible either that the function of the use deci-
`sion unit 11 in association with the user-specific credit
`
`Page 00015
`
`Page 00015
`
`
`
`5,103,392
`
`9
`data storage 12 and the use history storage 13 is in-
`cluded in the functions of the data processing apparatus
`1 or that the above-mentioned function is carried out by
`a program service unit consisting of a use decision unit,
`a user-specific credit data storage. and a use history
`storage. this program service unit constituting a portion
`of the data processing apparatus 1.
`It is also possible to encipher the marketable program
`and store in the IC card 570 key data for deciphering
`the enciphered marketable program. in order to prevent
`the program registration data from being changed at
`random without authorization.
`Another example of the detailed structure and the
`functions of the system shown in FIG. 2 is illustrated in
`FIG. 5. The system shown in FIG. 5 includes a program
`data storage 421, a decision and registration processing
`unit 422. a use history and payable charge data storage
`411. and a registration cancel processing unit 423. The
`use history and payable charge data storage 411 in-
`cludes a balance storage 411a, a purchased program
`table 411b, and a use details storage 411c.
`The program data storage 421 stores program propri-
`etor identification information 421a, a program-specific
`code 4211:, program charge information 421:‘. and re-
`tum-sale rate information 421d. The decision and regis-
`tration processing unit 422 includes a comparison pro-
`cessing portion 424, a subsequent process decision por-
`tion 425. a purchaseability check processing portion
`426. a balance storage update processing portion 427, a
`storage processing portion 428, and an addition process-
`ing portion 429.
`A registration cancel processing unit 423 includes a
`program characteristic data read processing ponion
`431. a retum-sale price calculation portion 432, an addi-
`tion processing portion 433. a registration cancel pro-
`cessing portion 434, and a storage processing ponion
`435. The