WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method for operating a local terminal to execute a downloaded application program    
United States Patent4724521   
Link to this pagehttp://www.wikipatents.com/4724521.html
Inventor(s)Carron; James M. (Aiea, HI); Uechi; Brian K. (Honolulu, HI); Khan; Mohammed A. (Honolulu, HI); Royston, III; Clifton W. (Honolulu, HI); Abel; Jay A. (Honolulu, HI); Ferlane; Bradley J. (Honolulu, HI); Loui; Robert K. L. (Honolulu, HI); Pape, III; William R. (Papaaloa, HI)
AbstractThe present invention provides methods for operating a local terminal which includes a programmable computer so that the terminal executes a pre-arranged application program. More specifically, the present invention provides methods for operating a local terminal according to a pre-arranged application program which is created on a remote computer, then communicated by a communication channel to the local terminal where it is stored for execution.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 4724521
Method for operating a local terminal to execute a downloaded

     application program - US Patent 4724521 Drawing
Method for operating a local terminal to execute a downloaded application program
Inventor     Carron; James M. (Aiea, HI); Uechi; Brian K. (Honolulu, HI); Khan; Mohammed A. (Honolulu, HI); Royston, III; Clifton W. (Honolulu, HI); Abel; Jay A. (Honolulu, HI); Ferlane; Bradley J. (Honolulu, HI); Loui; Robert K. L. (Honolulu, HI); Pape, III; William R. (Papaaloa, HI)
Owner/Assignee     Veri-Fone, Inc. (Honolulu, HI)
Patent assignment
All assignments
Publication Date     February 9, 1988
Application Number     06/819,186
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     January 14, 1986
US Classification     717/175 379/91.01 379/93.06 379/93.17 709/203 709/219 717/142 717/176 902/24 902/37
Int'l Classification     G06F 015/16
Examiner     Zache; Raulfe B.
Assistant Examiner    
Attorney/Law Firm     Bergstedt; Lowell C.
Address
Parent Case    
Priority Data    
USPTO Field of Search     364/200 MS File 364/300
Patent Tags     operating local terminal execute downloaded application program
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4459662
Skelton
711/100
Jul,1984

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. In a method for operating a local terminal which includes a local computer system comprising a central processor unit, a read only memory coupled to said central processor unit, a random access memory coupled to said central processor unit, and a communication channel coupled to said central processor unit for communicating with a remote computer system, the steps of:

a. establishing a set of general purpose operation routines to be executed by said local computer system, each of said general purpose operation routines comprising a set of instructions for execution by said central processor unit in a prearranged manner to accomplish a specific task;

b. storing said set of general purpose operation routines in said read only memory;

c. defining a set of commands where each command of said set of commands is associated with a specific general purpose operation routine and including at least an operation code of a plurality of operation codes relating said command to said specific general purpose operation routine, each of said commands having an associated command code length which is either equal to or, in most cases, substantially less than the code length of said specific general purpose operation routine;

d. establishing at said remote computer system at least one application program module comprising a prearranged sequence of said commands;

e. communicating said application program module from said remote computer system to said local computer system via said communication channel, including the step of storing for each of said set of commands said operation code associated with said prearranged sequence of commands in said random access memory; and

f. establishing in said local computer system a program execution routine for enabling said central processor unit to execute said application program module by repetitively performing the steps of:

(1) reading said associated operation code stored in said random access memory;

(2) accessing a specific general purpose operation routine associated with said read operation code; and

(3) executing said specific general purpose operation routine.

2. In a method for operating a local terminal which includes a local computer system comprising a central processor unit, a read only memory coupled to said central processor unit, a random access memory coupled to said central processor unit, and a communication channel coupled to said central processor unit for communicating with a remote computer system, the steps of:

a. defining a set of different specific tasks to be carried out by said local computer system;

b. establishing a set of general purpose operation routines to be executed by said local computer system, each comprising a set of instructions for execution by said central processor unit in a prearranged manner to accomplish one of said specific tasks;

c. storing said set of general purpose operation routines in said read only memory;

d. defining a set of commands where each command of said set of commands is associated with a specific one of said general purpose operation routines and including at least an operation code relating said command to said specific general purpose operation routine, each of said commands having an associated command code length which is either equal to or, in most cases, substantially less than the code length of said associated general purpose operation routine;

e. establishing at said remote computer system at least one application program module comprising a prearranged sequence of said commands defining a desired functional feature for said local terminal;

f. communicating said application program module from said remote computer system to said local computer system via said communication channel, including the step of storing for each of said set of commands said operation code associated with said prearranged sequence of commands in said random access memory; and

g. establishing in said local computer system a program execution routine for enabling said central processor unit to execute said application program module by repetitively performing the steps of:

(1) reading said associated operation code stored in said random access memory;

(2) accessing a specific general purpose operation routine associated with said associated operation code; and

(3) executing said specific general purpose operation routine.

3. In a method for operating a local terminal to perform a set of predefined functions, said local terminal including a local computer system comprising a central processor unit, a read only memory coupled to said central processor unit, a random access memory coupled to said central processor unit, and a communication channel coupled to said central processor unit for communicating with a remote computer system, and input means for selecting one of said predefined functions, the steps of:

a. establishing a set of general purposes operation routines to be executed by said local computer system, each of said general purpose operation routines comprising a set of instructions for execution by said central processor unit in a prearranged manner to accomplish a specific task;

b. storing said set of general purpose operation routines in said read only memory;

c. defining a set of commands where each command of said set of commands is associated with a specific general purpose operation routine and including at least an operation code relating said commands to said specific general purpose operation routine, each of said commands having an associated command code length which is either to or, in most cases, substantially less than the code length of said specific general purpose operation routine;

d. establishing at said remote computer system a plurality of application programs, each of said application programs comprising a different set of application program modules which together define a different set of predefined functions for a local terminal to perform, each of said application program modules comprising a prearranged sequence of said set of commands to provide one of said predefined functions;

e. communicating a preselected application program from said remote computer system to said local computer system via said communication channel, including the step of storing for each of said set of commands said operation code associated with said prearranged sequence of commands in each of said application program modules of said preselected application program in said random access memory; and

f. establishing in said local computer system a program execution routine for enabling said central processor unit to execute a selected one of said application program modules in response to said input means by repetitively performing the steps of:

(1) reading said associated operation code associated with said selected application program module stored in said random access memory;

(2) accessing a specific general purpose operation routine associated with said associated operation code; and

(3) executing said specific general purpose operation routine.

4. The method of claim 1, wherein said step

a. includes the steps of:

(1) establishing as a first one of said general purpose operation routines a START PROGRAM routine comprising machine instructions for calling for execution of a specified application program module;

(2) and establishing as a second one of said general purpose operation routines a WAIT routine comprising machine instructions for suspending execution of an application program module in which an operation code corresponding to said WAIT routine appears;

step d. comprises establishing a plurality of application program modules each comprising a sequence of said operation code, at least a first one of said application program modules including an operation code associated with said START PROGRAM routine for calling for execution of a specified second one of said application program modules, and at least one of said first and second application program modules including an operation code associated with said WAIT routine;

said method further comprising the steps of:

g. defining a program data structure format comprising a plurality of data elements associated with execution of an application program module by said program execution routine;

h. establishing in said random access memory an array storage area for storing a program data structure array comprising a plurality of application program module slots each having said program data structure format;

i. establishing in said random access memory an area for storing scheduler data program structures comprising a WAIT data element for storing define "wait" or "continue" data values, and a plurality of ACTIVE PROGRAM data elements each associated directly with one of said program slots in said program data structure array and storing one of two defined data values indicating whether or not said associated program slot contains data elements associated with an active application program module;

j. establishing in said local computer system a program scheduling routine for enabling said central processor unit to carry out the step of scheduling the sequential execution of application program modules one at a time based on the data values stored in said ACTIVE PROGRAM data elements, said execution of each active application program module continuing until said WAIT data element contains a wait data value or until the currently executing application program module has completed its execution;

said START PROGRAM routine including instructions for loading one of said ACTIVE PROGRAM data elements with a data value indicating presence of an active application program module and for loading into said array storage are of said random access memory a corresponding program data structure associated with said application program module called for execution by said routine; and

said WAIT operation routine including instructions for storing said "wait" data value in said wait data element of said scheduler data structure.

5. The method of claim 4, wherein said program data structure array established in step h. is a fixed array with a fixed number of application program module slots;

said ACTIVE PROGRAM data elements in said scheduler data structure established in step i. comprise an ACTIVE PROGRAM fixed bitmap data structure with each bit location in said bitmap corresponding to as associated application program module slot in said program data structure array and storing one of a first bit value or a second bit value indicating the presence or absence, respectively, of an active application program module in the associated application program module slot;

said START PROGRAM routine includes a parameter specifying which application program module slot should be utilized for storing data structures for execution of said associated application program module.

6. The method of claim 5, wherein said wait data element established in step i. may also store a defined "HALT" data value; said step a. further includes the step of:

(3) establishing as another one of said general purpose operation routines a DONE routine comprising instructions for loading said wait data element with a HALT data value and loading the bit location in the ACTIVE PROGRAM bitmap of the application program module which includes said DONE routine with said second bit value indicating the absence of an active application program module in the associated application program module slot;

and each of said application program modules which completes execution without branching to another application program module includes an operation code corresponding to said DONE routine as a last command therein.

7. The method of claim 6, wherein

said scheduler data structure established in step i. further comprises a BACKGROUND bitmap having bit locations corresponding to application program module slots in said program data structure array established in step h. and storing one of first or second bit values indicating whether the active application program module in a corresponding bit location in the ACTIVE PROGRAM bitmap has a background or foreground attribute;

said program data structure array established in step h. includes a first slot which comprises a main slot into which data structures for a main application program module are loaded;

said DONE routine includes instructions for loading all bit locations in said ACTIVE PROGRAM bitmap with said second bit value indicating the absence of an active application program module except those bit locations corresponding to bit locations in said BACKGROUND bitmap having a first bit value indicating a background attribute for said active application program module; and

said step a. includes the step of:

(4) establishing as another one of said general purpose operation routines a START BACKGROUND routine comprising instructions for calling for execution of a specified application program module in a specified slot number with background attribute, including instructions to load the bit location in said ACTIVE PROGRAM bitmap with a first bit value indicating an active application program module in the specified slot number and to load the bit location in said BACKGROUND bitmap with a first bit value indicating a background attribute for said active application program module.

8. The method of claim 4, wherein

said local terminal includes at least one other input device coupled to said central processor unit in addition to said communication channel;

said scheduler data structure established in step i. further comprises a plurality of REALTIME PROGRAM data elements each associated with one of said program data structures in said program data array and storing in a specific bit location one of two data values indicating whether or not an active application program module in a corresponding slot of said program data structure array is waiting for input from one of said communication channel or said other input device;

said step a. includes the steps of:

(3) establishing a plurality of said general purpose operation routines include machine instructions utilizing inputs from said communication channel or said other input device; and

(4) establishing at least one general purpose operation routine which includes instructions for loading the bit location in said REALTIME PROGRAM data element corresponding to the application program module in which said general purpose operation routine is executed with a data value indicating that said application program module is waiting for input from said communication channel or said other input device;

and said scheduling program routine established in step j. enables said central processor unit to carry out the steps of:

(1) determining whether any input from said communication channel or said other input device is waiting to be read;

(2) when input is not waiting to be read, performing said step of scheduling the sequential execution of active application program modules one at a time based solely on the data values stored in said ACTIVE PROGRAM data elements in said schedule data structures, said execution of each active application program module continuing until said WAIT routine is executed or until said program module has completed execution;

(3) when input is waiting to be read, performing the steps of:

(a) reading an input from said communication channel or said input device; and

(b) scheduling the execution of only said active application program modules having a data value in a corresponding REALTIME PROGRAM data element which indicates that said application program module is waiting for input until said read input is used by one of said application program modules and then returning to said step (1) above.

9. The method of claim 8, wherein

said data structure format defined in step g. includes a plurality of DEVICE data elements each associated with said communication channel or said other input device and storing one of a first or a second data value indicating whether or not the specified application program module needs input from said communication channel or said other input device;

said step a. includes the step of:

(4) establishing as one of said general purpose operation routines a NEED INPUT routine which includes instructions for loading a specified set of said DEVICE data elements in an associated application program module with said first data value indicating that said application program module needs input from said communication channel or said other input device;

and said step (b) includes the steps of:

scheduling for execution one at a time in sequence each of said application program modules having a first data value in the corresponding REALTIME PROGRAM data element;

examining the DEVICE data element corresponding to the source of said input in said program data structure associated with each scheduled application program module to determine whether or not said scheduled application program module needs said read input;

if said DEVICE data element indicates that said read input is needed, proceeding to execute said scheduled application program module; and

if said DEVICE data element indicates that said read input is not needed, returning to step above to schedule the next appropriate application program module.

10. The method of claim 1, wherein

said step a. includes the steps of:

(1) establishing a subset of parameter dependent general purpose operation routines, each of said parameter dependent general purpose operation routines including instructions that use a predefined set of parameters, including a subset of parameters that are required to be supplied by an associated one of said set of commands, each of said parameters comprising one or both of a parameter address or a parameter value; and

(2) establishing for each of said parameter dependent general purpose operation routines a set of parsing routines for determining the address and value of each parameter in said subset of parameters;

said step c. includes the step of:

defining a subset of parameter dependent commands, each of said parameter dependent commands being associated with one of said parameter dependent general purpose operation routines and including both a defined operation code and an ordered list of parameter types corresponding to said subset of parameters required to be supplied by said command;

said step d. includes the step of:

establishing for each use of said parameter dependent commands in said application program module an ordered list of actual parameter specifiers corresponding to said ordered list of parameter types;

said step e. includes the step of:

storing, in association with each of said set of commands of said operation code associated with a parameter dependent command, said ordered list of actual parameter specifiers;

said step f. (3) includes first performing with respect to each of said actual parameter specifiers the steps of:

(a) reading said parameter specifiers;

(b) executing an associated one of said parsing routines to obtain the address and value of said parameter;

(c) storing said parameter address and value;

followed by the step of executing said associated operation routine using one or both of said parameter address and value for each of said parameters.

11. The method of claim 1 where said general purpose operation routines have a specification of parameters, further comprising the steps of:

g-11. defining a set of data types that may be used to satisfy said specification of parameters utilized in said general purpose operation routines;

h-11. defining a set of parameter types that may be utilized in said general purpose operation routines, including defining for each of said parameter types an associated subset of said data types which may be used to satisfy said parameter types and a corresponding set of different data type values which may be utilized to specify said data types in said subset; one group of said parameter types being non-varying parameter types having an associated subset of only one of said data types, and another group of said parameter types being varying parameter types having an associated subset of a plurality of said data types;

i-11. establishing a set of data type parsing routines each comprising a set of instructions for obtaining at least the address and value of a parameter satisfied by an associated one of said data types;

j-11. establishing a set of parsing control routines each associated with one of said parameter types and comprising instructions for selectably executing one of a subset of said data type parsing routines corresponding to said associated subset of said data types, said subset having a single member when a parsing control routine is associated with one of said non-varying parameter types;

k-11. establishing a set of associated command parsing modules where each associated command parsing module is associated with at least one of said general purpose operation routines and comprising instructions for calling the execution of a subset of said parsing control routines in pre-established ordered sequence, said subset being a null subset in the case of each of said general purpose operation routines that do not utilize any of said parameter types;

l-11. storing each of said data type parsing routines, said parsing control routines, and said command parsing modules in said read only memory;

and wherein said step a. includes the steps of:

(1) establishing for each of said general purpose operation routines an operation routine which utilizes one or both of the address and value of a subset of said parameter types, said subset being null in the case of each operation routine that does not require any command specified parameters;

(2) incorporating into each of said general purpose operation routines a specific command parsing module; and

said step b. includes the step of:

storing said operation routine for each of said general purpose operation routines in prearranged relation to said specific command parsing module;

said step c. includes the step of:

defining for each of said commands a subset of said parameter types in an ordered list corresponding to one of said ordered sequences, said subset being a null subset when each command associated with an operation routine has an associated null subset of parameter types;

said step d. includes the step of:

establishing for each use of each of said commands in said application program module a subset of actual parameter type specifiers which are in the form of an ordered list and a set of data type data elements which are in the form of an ordered sequence of data elements corresponding to varying parameter types in said ordered list of actual parameter type specifiers, each of said data type data elements having a value designating which of said data types said actual parameter type specifiers are associated with;

said step e. includes the step of:

storing said ordered list and said ordered sequence established for each usage of each command in said random access memory in predetermined relation to said operation code;

said step f. (3) includes the steps of:

(a) first executing said associated command parsing module, including executing associated parsing control routines and data type parsing routines based on said ordered sequence to obtain the address and value of each parameter required by said operation routine; and

(b) storing the address and value of each of said parameters as they are obtained through execution of said data type parsing routines in prearranged locations in said random access memory; and

(c) then executing said operation routine associated with one of said general purpose operation routine utilizing one or both of said address and value of each of said parameters.

12. The method of claim 11, wherein said data type parsing routines, said parsing control routines, said command parsing modules, and said operation routines are stored in separate areas of said read only memory with each of said routines having a predetermined starting address;

said step c. comprises the steps of:

(1) assigning to each of said general purpose operation routines operation codes comprising a numerical value in sequential numerical order; and

(2) establishing an operation code jump table comprising a sequential listing of a first and a second address element for each of said operation codes in the same numerical order as said assigned order of operation code values, the first address element comprising the starting address of an associated one of said command parsing modules and the second address element comprising the starting address of an associated one of said operation routines;

said step f. (2) comprises looking up in said operation code jump table the first address element at the position in said jump table corresponding to said numerical value of said operation code; and

said step f. (3) (a) comprises executing the associated one of said command parsing modules located at said first address element looked up in said operation code jump table; and

said step f. (3) (c) comprises executing the one of said operation routines located at said second address element following said first address element.

13. The method of claim 12, wherein a plurality of said general purpose operation routines have a set of associated parameters comprising a null set; one of said command parsing modules comprises a null command parsing module which calls a null set of parsing control routines and returns to carry out step f. (3) (c).

14. The system of claim 1, wherein said step b. comprises storing each of said general purpose operation routines at a prearranged location within said read only memory having an associated starting memory address;

said step c. comprises the steps of:

(1) assigning to each of said general purpose operation routines an operation code comprising a numerical value in sequential numerical order; and

(2) establishing an operation code jump table comprising a sequential listing of said starting

memory address for each of said operation codes; and wherein said step f.(2) comprises looking up in said operation code jump table the starting memory address of said associated general purpose operation routine at the listing in said jump t able corresponding to said numerical value of said operation code and said step f.(3) comprises the step of sequentially executing the instructions stored in said read only memory beginning at said starting memory address.

15. The system of claim 1, further comprising the step of:

g-15. defining an operation code system comprising a plurality of opcode sets and a plurality of corresponding opcodes within each of said sets, such that each operation code comprises an opcode set designation and an opcode designation;

h-15. defining an object code command syntax comprising at least one data element having a set of possible values each designating one of said opcode sets and at least a second data element having a set of possible values each designating one of said operation codes;

and wherein said step c. includes the steps of:

(1) assigning each of said commands to a specific one of said opcode sets and assigning to each of said commands in each opcode set a different opcode in sequential numerical order;

(2) establishing a set of associated opcode jump tables each corresponding to one of said opcode sets and comprising a sequential listing of operation routine pointers each comprising starting memory addresses for the general purpose operation routines associated with the commands assigned to said corresponding opcodes;

(3) storing said set of opcode jump tables in said read only memory at prearranged starting addresses for each of said tables in said set;

(4) establishing an opset pointer table comprising a sequential listing of said starting memory addresses for said associated opcode jump tables; and

(5) storing said opset pointer table in said read only memory at a prearranged starting address;

said step e. includes the step of:

storing said one data element and said second data element in associated locations in said random access memory;

said step f. includes establishing a command execution data structure including an opset data structure element and an opcode data structure element; said step f.(1) includes the steps of:

(a) reading said one data element and storing the read value in a opset data structure element; and

(b) reading said second data element and storing the read value in said opcode data structure element;

and said step f.(2) includes the steps of:

(a) calculating the pointer address of an opset pointer from said starting memory addresses of said opset pointer table and said value stored in said opset data structure element;

(b) reading the value stored at said pointer address;

(c) calculating the opcode pointer address of said opcode pointer from said read value and said value stored in said opcode data structure element; and

(d) reading the value stored at said opcode pointer address:

and said step f.(3) comprises the step of:

executing the general purpose operation routines stored in read only memory at the addresses corresponding to the read value at said pointer address.

16. The method of claim 1 wherein said general purpose operation routines have a specification of parameters, further comprising the steps of:

g-16. defining a set of data types that may be used to satisfy said specification of parameters utilized in said general purpose operation routines;

h-16. defining a set of parameter types that may be utilized in said general purpose operation routines, including defining for each of said parameter types an associated subset of said data types which may be used to satisfy said parameter types and a corresponding set of different data type values which may be utilized to specify said data types in said subset; one group of said parameter types being non-varying parameter types having an associated subset of only one of said data types; and another group of said parameter types being varying parameter types having an associated subset of a plurality of said data types;

i-16. establishing a set of data type parsing routines each comprising a set of instructions for obtaining the address and value of a parameter satisfied by an associated one of said data types;

j-16. establishing a set of parsing control routines each associated with one of said parameter types and comprising instructions for selectably executing one of a subset of said data type parsing routines corresponding to said associated subset of said data types, said subset having a single member when a parsing control routine is associated with one of said non-varying parameter types;

k-16. establishing a set of command parsing modules each associated with at least one of said general purpose operation routines and comprising instructions for executing of a subset of said parsing control routines in pre-established ordered sequences, said subset being a null subset when each of said general purpose operation routines do not utilize any of said parameter types;

l-16. storing each of said data type parsing routines, said parsing control routines, and said command parsing modules in said read only memory;

g-16. defining an operation code system comprising a plurality of opcode sets and a plurality of opcodes within each of said sets, such that each operation code comprises an opcode set designation and an opcode designation;

h-16. defining a object code command syntax comprising a set of bitmap bytes, a set of opcode bytes, and a set of parameter type specifier bytes, each of said bitmap bytes and said opcode bytes having a set of common bit positions comprising a byte-type flag and storing a first numeric value in each bitmap byte and a second numeric value in each opcode byte, each of said bitmap bytes also having a set of common bit positions comprising opset specifier data elements and a plurality of sets of common bit positions comprising data type data elements; each of said opcode bytes having a set of common bit positions comprising opcode specifier data elements; said opset specifier data elements in said set of bitmap bytes together identifying the opcode set of the command as a particular one of said opcode sets, said data type data elements in said set of bitmap bytes together identifying the data type values for all varying parameter types in the command that do not comprise the default data type value; said opcode specifier data elements in said set of opcode bytes together identifying the opcode of the command as one of said opcodes;

and wherein said step a. includes the steps of:

(1) establishing for each of said general purpose operation routines an operation routine which utilizes a subset of said parameter types, said subset being null for each operation routine that does not requires any command specified parameters;

(2) incorporating into each of said general purpose operation routines one of said command parsing modules; and

said step b. includes the step of:

storing said operation routine for each of said general purpose operation routines in prearranged relation to said command parsing modules associated therewith;

said step c. includes the step of:

(1) defining for each of said commands a subset of said parameter types in an ordered list corresponding to one of said ordered sequences of parsing control routines in one of said command parsing modules, said subset being a null subset when each command associated with an operation routine has an associated null subset of parameter types;

(2) assigning each of said commands to a specific one of said opcode sets and assigning to each said command in each opcode set a different opcode in sequential numerical order;

(3) establishing a set of opcode jump tables each corresponding to one of said opcode sets and comprising a sequential listing of operation routine pointers each comprising starting memory addresses for the one of said general purpose operation routines associated with the command assigned to said corresponding opcode;

(4) storing said set of opcode jump tables in said read only memory at prearranged starting addresses for each of said tables in said set;

(5) establishing an opset pointer table comprising a sequential listing of said starting memory addresses for said opcode jump tables; and

(6) storing said opset pointer table in said read only memory at a prearranged starting address;

said step d. includes the step of:

establishing for each use of each of said commands in said application program module object code commands in accordance with said object code command syntax;

said step e. includes the step of:

storing each of said object code commands in said application program module in said random access memory;

said step f. includes establishing a command execution data structure including an opset data structure element, an opcode data structure element, an array of data type data structure elements, an array of parameter address and value data structure elements, a variable parameter tracking data element, and a current parameter tracking data element;

said step f.(1) includes the step of:

decoding said set of bitmap bytes and said set of opcode bytes to obtain an opset value and store said opset value in said opset data structure element, to obtain an opcode value and store said opcode value in said opcode data structure element, and to obtain data type values and store data type values of all of said data type data elements in individual ones of said data type data structure elements;

and said step f.(2) includes the steps of:

(a) calculating the address of an opset pointer from said starting address of said opset pointer table and said value stored in said opset data structure element;

(b) reading the value stored at said opset pointer address;

(c) calculating the address of said opcode pointer from said read opset pointer value and said value stored in said opcode data structure element; and

(d) reading the value stored at said opcode pointer address as the address of the one of said general purpose operation routines associated with said command;

said step f.(3) includes the steps of:

(a) first executing said command parsing module associated with said general purpose operation routine at said address read in step f.(2) (d) above, including executing associated parsing control routines and data type parsing routines based on said data type values stored in said data type data structure elements to read the parameter types in said object code command and to obtain the address and value of each parameter required by said operation routine; and

(b) storing the address and value of each of said parameters as they are obtained through execution of said data type parsing routines in individual ones of said parameter and address data structure elements;

(c) then executing said operation routines associated with said general purpose operation routines utilizing one or both of said address and value of each of said parameters.

17. In a method for programming a local terminal, the steps of:

establishing a tokenized interpretive programming language having a plurality of commands and corresponding syntax including a source level command and parameter syntax, an associated object level command and parameter syntax including a defined operation code for each of said commands, a program module structure, application modules and a compiler for translating source level commands in said application modules to said object level command capable of being assembled and linked into binary code;

establishing a set of operation routines for execution by said terminal to perform a set of terminal tasks;

storing said operation routines in said local terminal;

defining a set of commands using said source level command and parameter syntax, each being associated with one of said operation routines;

creating an application program comprising a sequence of said source level command in accordance with said program module structure;

compiling said application program using said compiler;

assembling and linking said program using a standard machine code assembler and linker program;

communicating said program to said terminal for storage in local memory therein; and

operating said terminal using said application program.

18. The method of claim 17, wherein said step of compiling comprises the steps of establishing a first section of compiled code comprising a fixed code structure that defines the environment of the application program and a variable code structure that comprises portions of the application program that vary with the content of the program created in said creating step whereby said

assembling and linking step creates a corresponding fixed binary code section and a variable binary code section;

and said step of communicating said application program comprises first communicating said fixed binary code section and storing it at the local terminal and then communicating said variable binary code section and storing it in the local terminal;

said fixed binary code section stored in said local terminal providing information for accessing portions of said application program in said variable binary code section stored in said local terminal while performing said step of operating said terminal using said application program.
 Description Submit all comments and votes
 
Previous Patent (Modular multiport data hub)Next Patent (Method and apparatus for modification of corn...)
Custom CD - PDFs of patents similar to US4724521 - Method for operating a local terminal to execute a downloaded application program
$19.95 (free shipping)
4724521 Title References