← Back to Patent Explorer
US4646234A Expired / Lapsed US ⏱️ 0.0 years remaining

Anti-piracy system using separate storage and alternate execution of selected proprietary and public portions of computer programs

Assignee: Brigham Young University
•
Filing: 1984-02-29
•
Granted: 1987-02-24
•
Expires: 2004-02-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system for computer software protection includes a random access memory (RAM) device and one or more read-only memory (ROM) devices. The RAM and ROMs are connected in parallel to a data transfer bus, and to an address bus. Selected proprietary portions of a program are pre-stored in the ROMs prior to distribution to system users, and the remaining portions of the program are stored on an external storage medium such as a diskette which is made available for access and use by system users. When using the program, the portion of the program stored on the external storage medium is loaded into the RAM. In executing the program, the system commences executing, in turn, each program instruction contained in the RAM until it is instructed to transfer to one of the ROMs for execution of the proprietary portions of the program stored in the ROMs. If a system user makes an unauthorized copy of the portion of the program stored on the external storage medium, since the proprietary portions of the program are stored in the ROMs, the unauthorized copy will be incomplete and will not be able to run without the proprietary portions of the program which are maintained in the ROMs.

Inventors

  • 👤 J. Leonard Tolman
  • 👤 Joseph J. Ekstrom

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 17:16
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/10; G06F21/12; G06F21/121; G06F21/123

Claims Analysis

Total Claims: 12
Claim 1
Independent Claim 228 words
In a computer system having first and second electronic memory means which together are used to store a program comprising executable instructions, a method of protecting against unauthorized duplication of selected proprietary portions of said program, the method comprising the steps of: pre-storing in said first memory means prior to distribution to a system user said selected proprietary portions of said executable program, whereby said selected proprietary portions of said program are not readily susceptible to access and duplication by a system user; pre-storing prior to distribution to a system user the remaining portion of said executable program on an external storage medium, said external storage medium being available for access and use by system users; and when running said executable program in its entirety on said computer system, said computer system automatically performing the steps of: (a) loading said remaining portion of the executable program from said external storage medium to said second memory means; (b) commencing with execution, in turn, of each instruction contained in said second storage means until instructed to transfer to said first storage means; (c) thereafter executing, in turn, the selected proprietary portions of said program stored in said first memory means; (d) thereafter returning to said second memory means and continuing with execution of said remaining portions of the program; and (e) repeating steps (a)-(d) until said program is completely executed.
Claim 2
Dependent Claim 228 words
In a computer system having first and second electronic memory means which together are used to store a program comprising executable instructions, a method of protecting against unauthorized duplication of selected proprietary portions of said program, the method comprising the steps of: pre-storing in said first memory means prior to distribution to a system user said selected proprietary portions of said executable program, whereby said selected proprietary portions of said program are not readily susceptible to access and duplication by a system user; pre-storing prior to distribution to a system user the remaining portion of said executable program on an external storage medium, said external storage medium being available for access and use by system users; and when running said executable program in its entirety on said computer system, said computer system automatically performing the steps of: (a) loading said remaining portion of the executable program from said external storage medium to said second memory means; (b) commencing with execution, in turn, of each instruction contained in said second storage means until instructed to transfer to said first storage means; (c) thereafter executing, in turn, the selected proprietary portions of said program stored in said first memory means; (d) thereafter returning to said second memory means and continuing with execution of said remaining portions of the program; and (e) repeating steps (a)-(d) until said program is completely executed.
Claim 3
Dependent Claim 79 words
A method as defined in claim 1 wherein said step (c) of executing said selected proprietary portions of said program stored in said first memory means comprises the step of commencing execution at an address in said first memory means that also corresponds to an address in said second memory means, and identifying said address as pertaining to said first memory means rather than said second memory means when commencing execution of said selected proprietary portions of said program.
Claim 4
Dependent Claim 48 words
A method as defined in claim 1 wherein said first memory means comprises a plurality of read-only memories (ROMs) and wherein said step of pre-storing said selected proprietary portions of said program comprises the step of storing separate parts of said selected portions in each of said ROMs.
Claim 5
Dependent Claim 50 words
A method as defined in claim 3 wherein said second memory means comprises a random access memory (RAM) and wherein said step (a) of loading the remaining portion of said program from said external storage medium comprises the step of loading said remaining portion of said program into said RAM.
Claim 6
Dependent Claim 91 words
A method as defined in claim 4 wherein said step (c) of executing said selected proprietary portions of said program comprises the steps of: identifying at least one program instruction stored in each ROM with an address that also corresponds to at least one program instruction stored in said RAM; identifying said address as pertaining to one of said ROMs when commencing execution of a part of said selected proprietary portions of said program; and commencing execution of said proprietary part of said program at said address identified for said ROM.
Claim 7
Dependent Claim 235 words
A computer system for protecting against unauthorized duplication of selected proprietary portions of a computer program adapted for execution on said computer system, said computer system comprising: a data transfer bus; a first memory means connected to said data transfer bus for accessing selected proprietary portions of said program which have been pre-stored on said first memory means prior to distribution to system users, whereby said proprietary portions are not readily susceptible to access and duplication by a system user; an external storage medium on which the remaining portion of said program is pre-stored prior to distribution to system users, said external storage medium being available for access and use by system users; a second memory means into which said remaining portion of said program is loaded from said external storage medium when it is desired to run said program on said computer system, said second memory means being connected to said data transfer bus in parallel with said first memory means; and means for controlling and selecting said first and second memory means so as to commence executing, in turn, each program instruction stored in said second memory means until instructed to transfer to said first memory means, and thereafter transferring to said first memory means and executing said selected proprietary portions of said program and then returning to said second memory means to complete the execution of said remaining portions of said program.
Claim 8
Dependent Claim 235 words
A computer system for protecting against unauthorized duplication of selected proprietary portions of a computer program adapted for execution on said computer system, said computer system comprising: a data transfer bus; a first memory means connected to said data transfer bus for accessing selected proprietary portions of said program which have been pre-stored on said first memory means prior to distribution to system users, whereby said proprietary portions are not readily susceptible to access and duplication by a system user; an external storage medium on which the remaining portion of said program is pre-stored prior to distribution to system users, said external storage medium being available for access and use by system users; a second memory means into which said remaining portion of said program is loaded from said external storage medium when it is desired to run said program on said computer system, said second memory means being connected to said data transfer bus in parallel with said first memory means; and means for controlling and selecting said first and second memory means so as to commence executing, in turn, each program instruction stored in said second memory means until instructed to transfer to said first memory means, and thereafter transferring to said first memory means and executing said selected proprietary portions of said program and then returning to said second memory means to complete the execution of said remaining portions of said program.
Claim 9
Dependent Claim 38 words
A system as defined in claim 6 wherein said first memory means comprises a plurality of read-only memories (ROMs) and wherein each said ROM is adapted for separately storing separate parts of said proprietary portions of said program.
Claim 10
Dependent Claim 19 words
A computer system as defined in claim 7 wherein said second memory means comprises a random access memory (RAM).
Claim 11
Dependent Claim 99 words
A computer system as defined in claim 8 wherein said means for controlling said first and second memory means comprises: an address bus; a first bus driver for interfacing said RAM to said data transfer bus; a second bus driver for interfacing said ROMs to said data transfer bus; and said memory control circuit electronically connected to said address bus and electronically connected to said first and second bus drivers, said memory control circuit enabling one of said bus drivers to permit transfer from said RAM to one of said ROMs when executing a part of said proprietary program.
Claim 12
Dependent Claim 72 words
A computer system as defined in claim 9 wherein said means for controlling and selecting said first and second memory means comprises a ROM select circuit electronically connected to each said ROM and to said memory control circuit, said ROM select circuit enabling and selecting one of said ROMs so as to permit part of said proprietary program to be transferred to said data transfer bus for execution by said computer system.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1990-02-23 1990-08-25 1991-02-24 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1994-02-23 1994-08-25 1995-02-24 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1998-02-23 1998-08-25 1999-02-24 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag