GB2268293A - Installing a resident part of a Terminate and Stay Resident program. - Google Patents

Installing a resident part of a Terminate and Stay Resident program. Download PDF

Info

Publication number
GB2268293A
GB2268293A GB9212892A GB9212892A GB2268293A GB 2268293 A GB2268293 A GB 2268293A GB 9212892 A GB9212892 A GB 9212892A GB 9212892 A GB9212892 A GB 9212892A GB 2268293 A GB2268293 A GB 2268293A
Authority
GB
United Kingdom
Prior art keywords
program
resident
resident program
computer
terminate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB9212892A
Other versions
GB9212892D0 (en
Inventor
Graham Bryan Short
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Ltd
Original Assignee
Texas Instruments Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Ltd filed Critical Texas Instruments Ltd
Priority to GB9212892A priority Critical patent/GB2268293A/en
Publication of GB9212892D0 publication Critical patent/GB9212892D0/en
Priority to EP19930304593 priority patent/EP0575127A3/en
Publication of GB2268293A publication Critical patent/GB2268293A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • G06F9/44542Retargetable
    • G06F9/44547Fat binaries

Description

2268293 A METHOD OF PROVIDING A RESIDENT PROGRAM PART OF A TERMINATE AND
STAY RESIDENT PROGRAM The present invention relates to a method of executing a computer program in a computer where the computer has one of a number of different possible central processing units (microprocessors). A particular type of computer program with which the invention is concerned is that known as a terminate and stay resident program.
Terminate and stay resident programs are used to provide in the memory of a computer some resident code that can subsequently be called by the operating system or an application program. The function provided by the resident code could be, for example, to drive a peripheral unit.
Terminate and stay resident programs when loaded into the computer and run for the first time execute a number of initial operations that ensure that the resident code is available in memory to be subsequently called by the operating system or an application program. Typically the initial operations include reserving memory space for the resident code so that it is not overwritten later by other programs when they are entered or during their execution, and providing some means of enabling the execution address or addresses of the resident code to be made available to the operating system or an application program that wishes to call the resident code.
Having developeed a terminate and stay resident program, which, for example. drives a particular make of printer, it is common to provide that program on a carrier (e.g. a floppy disc) in a number of different versions suitable for use with computers having different central processing units. This causes a problem for users of the program since they have to select the appropriate version. from those on the carrier for their particular computer system, and the user may not know exactly which central processing unit is in his computer system and consequently which version to select.
It is an object of the present invention to relieve the user of the need to make that choice, by enabling a single version of the program to be run on computer systems having any of a number of different central processing units.
According to the present invention there is provided a method of providing a resident program part of a terminate and stay resident program, in a computer having memory means and a particular type of central processing unit, the terminate and stay resident program including an initialisation program part, and a plurality of different resident program parts each of the plurality of different resident program parts being arranged to be correctly executable by each of a plurality of different types of central processing units respectively, the method including entering the terminate and stay resident program into the memory means of the computer and executing its initialisation part, that execution causing the computer to perform a number of operations including, providing an indication of the identity of the particular central processing unit in the computer, selecting that one of the plurality of resident program parts that is arranged to be correctly executable by the type of central processing unit identified as being in the computer, and preserving the selected resident program part in the memory means of the computer.
Each of the different resident program parts may be present as such within the terminate and stay resident program or may be assembled from an appropriate selection from a number of program blocks.
The program blocks may contain program code or data or both and at least some program blocks may be common to two or more resident program parts.
The memory reserved for the selected program part nay be at one end of the space in the memory means to which the terminate and stay resident program was entered.
There will now be described, by way of example only, a method of providing in a computer a resident program part of a terminate and stay resident program. Reference wil 1 be made to the accompanying drawings of which:FIGURE 1 shows an example of a terminate and stay resident program specially structured for use with a method according to the present invention; FIGURE 2 illustrates how it is necessary to reserve only the memory required for the selected resident program part.
FIGURE 3 shows another example of a specially structured terminate and stay resident program; and FIGURE 4 shows the assembly of the selected resident program part from a number of program blocks.
A method according to the present invention makes use of a terminate and stay resident (TSR) program that has within it an initialisation program part and a number of different resident program parts. Each of the resident program parts is designed to be executed by a different type of central processing unit. on the other hand, the initialisation program part can be executed by any of those central processing units. After running the initialisation program part of the TSR program leaves in a computer only that one of the different resident program parts that is designed to be executed by the particular type of central processing unit that is present in the computer. The initialisation program part is terminated after it has been run.
Figure.1 shows an example of a TSR program that is designed to work with a computer having an 8086, an 80296 or an 80836 microprocessor as its central processing unit. The program has an initialisation program part 1 and three program blocks 2,3,4, containing reusable programs that are specially designed for the 80386, $0286 and 8086 microprocessors respectively. Each program block contains all the data necessary, in the correct order, for the block to be used as the resident program part that is left behind by the method after running the initialisation program part.
The instruction sets of the three different microprocessors are to some extent compatible in that code written for the 8086 can also be executed by the 80286 and the 80386. Use is made of that fact in the design of the initialisation program part which can be executed by all three microprocessors.
To use the TSR program the user loads the program into a computer having one of the three microprocessors as its central processing unit and executes the initialisation part. Normally both those operations will be carried out for the user by the operating system of the computer when he gives a command to the operating system to execute a file containing the TSR program.
The execution of the initialisation part causes a number of operations to be performed by the computer including identifying the type of microprocessor in the computer, selecting the particular program block that is designed for that microprocessor and installing the selected block as the resident program part, so that it can be used and reused by the operating system or an application program after the execution of the initialisation segment has terminated. The program blocks that are not selected are no longer required and are either deliberately erased from the memory of the computer or the locations in the memory where they are stored are left unprotected from being overwritten.
Selecting a specially designed resident program part has the advantage over providing a general resident program part that can be executed by any of a contemplated group of central processing units that each specially designed resident program part can make full use of any instructions which are specific to the particular central processing unit for which it is intended, thereby enabling each resident program part to be optimised.
Another alternative to selecting one of a number of separate resident program parts to be installed as the resident program is to provide a single resident program part that consists of a number of portions some of which can be executed by any of the central processing units and others of which are designed for execution by only one type of central processing unit. on execution by a computer the initialisation part identifies the type of central processing unit present in the computer and selects the portions that can be executed by the particular type of processing unit identified. The selected portions are collected together to form the resident program and the remaining portions are either discarded or allowed to be overwritten.
A method according to the present invention has the advantage that it is necessary to reserve only enough memory for the selected resident program part. Figure 2 shows how this can be applied to the example of Figure 1. The case illustrated is one in which the type of microprocessor present within the computer is identified as being an 80286. In the figure, the space in the memory in which the TSR program is loaded is marked by a dashed line. When the microprocessor has been identified as being of the type 80286 memory space appropriate to that type is reserved at 5 at the lower end of the part of memory occupied by the TSR program as a whole. That would for example make the reserved memory 5 contiguous with other reserved memory below the program. Next the 80286 program block 3 is copied 6 into the reserved memory space 5. 'As an alternative the segment could be copied first and the memory space reserved afterwards.
It can be seen that once the execution of the initialisation segment has terminated the memory above the memory space 5 reserved for the 80286 program block is free for other uses.
Of course, if the microprocessor of the computer were only of type 8086. reservation of memory space would have been required and copying of the segment would not have been required, because the 8086 program block is already in the desired location.
In the above example there is a simple correspondence between the three program blocks for the three different types of microprocessors and the three resident program parts; in fact the three program blocks are the same as the three program parts. That will not always be so, as will be seen below in the discussion of Figures 3 and 4. Because the program blocks and the program parts are the same it is a simple matter to arrange for the selected resident program part left behind after the execution of the initialisation part to be in the correct order with all the code and data that it requires.
The data required for the operation of a particular resident program part, when selected. 'may be different frora that required by the other prograra parts. if that were the case in the example of Figure 1. it would be convenient to include in each of the three program blocks the data that it requires so that. when necessaryo the program block can be moved as a whole. that is, including code and data.
However,, it may be that some of the data is common to more than one resident program part. In that case it may be convenient to have the common data in a separate program block that is always installed as part of the selected resident program part. This is illustrated in Figures 3 and 4.
Figure 3 shows another example of a TSR program. The program is divided into five parts: an initialisation prograra part. three program blocks 2,, 3,'..4,1 to be executed by 803861 80286 and 8086 microprocessors respectively and a common data program block 7. Each of the three program blocks 2',,3,1,41' is shown as having both a code part 8 and a data part 9.
This program is used by a method according to the present invention in a similar way to that of Figure 1. When the TSR program is loaded and the initialisation program part If is executed, the type of microprocessor present in the computer is identified. As an example it will be taken that it is identified as being of the type 80386. Figure 4 illustrates the subsequent steps taken. First, memory space 10 is reserved for the common data program block 7 and the 80386 program block 20. The memory space reserved is located at, for example. the lower end of the region occupied by the TSR program as a whole. The 80386 program block 21 is then moved as indicated by the arrow 11 into the reserved memory space 10 above the common data program block 7 which is already in position in the reserved memory space 10. Again it would# of course. be possible to move the 80386 program block 2f before reserving the memory space 10.
As explained above, although it is possible for there to be a simple one to one relationship between the different resident program parts. contained within a TSR program for use with a method according to the present invention, and the program blocks into which the TSR program is divided, it is not necessary for that to be the case. In some circumstances it may be more convenient to assemble a resident program part from a number of program blocks in the TSR program only when that particular part is selected. Some or all of those program blocks can also be used to make up others of the resident program parts when those program parts are selected.. It isr of course. likely that certain usable program blocks consist of only one of the program parts.
Whatever the organisation of the program blocks there will usually be some that are not used in the selected resident program part. After the execution of the initialisation part terminates only the selected resident program part is of any further use and is located in reserved memory space. That leaves the remaining unreserved space in the memory of the computer free for other uses. In Figures 2 and 4 the memory left free is the area in dashed outline that is not occupied by the selected resident program part.
Although as described above the memory space 5,10 being reserved lies within the region in the memory of the computer occupied by the original TSR program as a whole, -it would be possible for the space to be reserved elsewhere in the memory.
A method according to the present invention requires the type of central processing unit present within a computer to be identified. In many cases it will be possible to differentiate between types of central processing units by examining their responses to certain instruction codes. An example of how that may be done for the 8086, 80286 and 80386 microprocessors is given on pages 167 to 182 of UInside DOS: A programmer's guide" by Michael J. Young and published by SYBEX.
The resident part of a TSR program is commonly called via an interrupt, the initialisation program part changing a vector or vectors held by the operating system to point to the execution address or execution addresses of the resident part. If a resident program part is to provide a large number of functions in respect of a single vector it is a common technique for the resident program part to respond to an interrupt entry via that vector by returning the address of a jump table. The jump table gives the execution addresses within the resident program of routines performing each of the functions; this allows those routines to be called quickly and easily after an initial 9 use of the interrupt.
Such a jump table is an example of the data that could be contained within a program block and the routines are examples of code contained within program blocks. It may not be worthwhile rewriting simple ones of those routines for all the processors and these could be left As single versions in a program block common to all the different resident program parts.
1

Claims (7)

CLAIMS:
1. A method of providing a resident program part of a terminate and stay resident program, in a computer having memory means and a particular type of central processing unit, the terminate and stay resident program including an initialisation program part, and a plurality of different resident program parts each of the plurality of different resident program parts being arranged to be correctly executable by each of a plurality of different types of central processing units respectively, the method including entering the terminate and stay resident program into the memory means of the computer and executing its initialisation part, that execution causing the computer to perform a number of operations including, providing an indication of the identity of the particular central processing unit in the computer, selecting that one of the plurality of resident program parts that is arranged to be correctly executable by the type of central processing unit identified as being in the computer, and preserving the selected resident program part in the memory means of the computer.
2. A method according to claim 1 wherein at least one of the plurality of different resident program parts includes assembling the program blocks forming the selected resident program in correct order.
3. A method according to claim 2 wherein at least one program block includes program code.
4. A method according to claim 2 or claim 3 wherein at least one program block includes data.
5. A method according to any one of claims 2 to 4 wherein at least one program block is included in two or more of the plurality of different resident program parts.
6. A method.according to any one of the preceding claims wherein the method includes arranging for the selected program part to be at one end of the space in the memory means in which the terminate and stay resident program was stored.
7. A method of providing a resident program part of a terminate and stay resident program substantially as described herein and as illustrated by the accompanying drawings.
1
GB9212892A 1992-06-17 1992-06-17 Installing a resident part of a Terminate and Stay Resident program. Withdrawn GB2268293A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
GB9212892A GB2268293A (en) 1992-06-17 1992-06-17 Installing a resident part of a Terminate and Stay Resident program.
EP19930304593 EP0575127A3 (en) 1992-06-17 1993-06-14 A method of providing a resident program part of a terminate and stay resident program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9212892A GB2268293A (en) 1992-06-17 1992-06-17 Installing a resident part of a Terminate and Stay Resident program.

Publications (2)

Publication Number Publication Date
GB9212892D0 GB9212892D0 (en) 1992-07-29
GB2268293A true GB2268293A (en) 1994-01-05

Family

ID=10717284

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9212892A Withdrawn GB2268293A (en) 1992-06-17 1992-06-17 Installing a resident part of a Terminate and Stay Resident program.

Country Status (2)

Country Link
EP (1) EP0575127A3 (en)
GB (1) GB2268293A (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2301687A (en) * 1995-06-02 1996-12-11 Dsc Communications Machine control module for a processor
US5696766A (en) * 1995-06-02 1997-12-09 Dsc Communications Corporation Apparatus and method of synchronizing a transmitter in a subscriber terminal of a wireless telecommunications system
US5742595A (en) * 1995-06-02 1998-04-21 Dsc Communications Corporation Processing CDMA signals
US5745496A (en) * 1995-06-02 1998-04-28 Dsc Communications Corporation Apparatus and method of establishing a downlink communication path in a wireless telecommunications system
US5761429A (en) * 1995-06-02 1998-06-02 Dsc Communications Corporation Network controller for monitoring the status of a network
US5786770A (en) * 1995-06-02 1998-07-28 Dsc Communications Corporation Message handling in a telecommunications network
DE19701199A1 (en) * 1997-01-15 1998-08-06 Volker Heerich Group of light beams conditioning method
US5809093A (en) * 1995-06-02 1998-09-15 Dsc Communications Corporation Apparatus and method of frame aligning information in a wireless telecommunications system
US5815798A (en) * 1995-06-02 1998-09-29 Dsc Communications Corporation Apparatus and method of controlling transmitting power in a subscriber terminal of a wireless telecommunications system
US5828339A (en) * 1995-06-02 1998-10-27 Dsc Communications Corporation Integrated directional antenna
US5915216A (en) * 1995-06-02 1999-06-22 Dsc Communications Corporation Apparatus and method of transmitting and receiving information in a wireless telecommunications system
US6061365A (en) * 1995-06-02 2000-05-09 Airspan Communications Corporation Control message transmission in telecommunications systems
GB2344445A (en) * 1998-12-04 2000-06-07 Pittway Corp Communication

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08286893A (en) * 1995-03-15 1996-11-01 Eastman Kodak Co Computer file for execution of plurality vendors and plurality of architectures and its formation method
JP2914320B2 (en) * 1996-09-06 1999-06-28 日本電気株式会社 Module switching type image compression / playback device
JPH10111792A (en) * 1996-10-03 1998-04-28 Nec Corp Picture processor
US5835775A (en) * 1996-12-12 1998-11-10 Ncr Corporation Method and apparatus for executing a family generic processor specific application
US6295645B1 (en) 1997-12-22 2001-09-25 Texas Instruments Incorporated Method and apparatus for providing downloadable functionality to an embedded coprocessor
US6253076B1 (en) * 1999-02-25 2001-06-26 Ericsson Inc. Manufacturing method for wireless communications devices employing potentially different versions of integrated circuits
GB2384066A (en) * 2002-01-09 2003-07-16 Hewlett Packard Co Installation of software components having multiple implementations

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0532643B1 (en) * 1990-06-04 1998-12-23 3Com Corporation Method for optimizing software for any one of a plurality of variant architectures

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM Tech Bulletin, vol 22, no 10, March 1980, J A Aiken, "Configuration-sensitive load", pp4351-4352 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815798A (en) * 1995-06-02 1998-09-29 Dsc Communications Corporation Apparatus and method of controlling transmitting power in a subscriber terminal of a wireless telecommunications system
US5915216A (en) * 1995-06-02 1999-06-22 Dsc Communications Corporation Apparatus and method of transmitting and receiving information in a wireless telecommunications system
US5742595A (en) * 1995-06-02 1998-04-21 Dsc Communications Corporation Processing CDMA signals
US5745496A (en) * 1995-06-02 1998-04-28 Dsc Communications Corporation Apparatus and method of establishing a downlink communication path in a wireless telecommunications system
GB2301687A (en) * 1995-06-02 1996-12-11 Dsc Communications Machine control module for a processor
US5786770A (en) * 1995-06-02 1998-07-28 Dsc Communications Corporation Message handling in a telecommunications network
US5696766A (en) * 1995-06-02 1997-12-09 Dsc Communications Corporation Apparatus and method of synchronizing a transmitter in a subscriber terminal of a wireless telecommunications system
US6061365A (en) * 1995-06-02 2000-05-09 Airspan Communications Corporation Control message transmission in telecommunications systems
US5761429A (en) * 1995-06-02 1998-06-02 Dsc Communications Corporation Network controller for monitoring the status of a network
US5828339A (en) * 1995-06-02 1998-10-27 Dsc Communications Corporation Integrated directional antenna
US5809093A (en) * 1995-06-02 1998-09-15 Dsc Communications Corporation Apparatus and method of frame aligning information in a wireless telecommunications system
US5923668A (en) * 1995-06-02 1999-07-13 Airspan Communications Corporation Apparatus and method of establishing a downlink communication path in a wireless telecommunications system
DE19701199A1 (en) * 1997-01-15 1998-08-06 Volker Heerich Group of light beams conditioning method
GB2344445A (en) * 1998-12-04 2000-06-07 Pittway Corp Communication
US6366215B1 (en) 1998-12-04 2002-04-02 Pittway Corporation Communications systems and methods
GB2344445B (en) * 1998-12-04 2002-06-19 Pittway Corp Communications systems and methods

Also Published As

Publication number Publication date
EP0575127A2 (en) 1993-12-22
GB9212892D0 (en) 1992-07-29
EP0575127A3 (en) 1994-02-09

Similar Documents

Publication Publication Date Title
GB2268293A (en) Installing a resident part of a Terminate and Stay Resident program.
EP0463251A1 (en) Software installation
US6772419B1 (en) Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
US5038281A (en) Acceleration of system interrupts between operating systems in guest-host relationship
US5598563A (en) Method of loading device drivers from ROM without requirement of system to have any harddisks or floppy drives and without using config.sys file
JP4298728B2 (en) Device for executing multiple program segments
US5375241A (en) Method and system for dynamic-link library
US5526523A (en) Interface between operating system and operating system extension
US4493034A (en) Apparatus and method for an operating system supervisor in a data processing system
EP0499394A1 (en) Device drivers for multitasking operating system
AU775007B2 (en) Method and apparatus for building a calling convention prolog and epilog code using a register allocator
CN1151414C (en) Modifiable partition boot record for computer memory device
EP0100140A2 (en) Data processing system and method of starting up system
BR9904242A (en) Operation method for a motor vehicle management computer system
JPS621036A (en) Execution of program for multimode microprocessor and operating system
US4126893A (en) Interrupt request controller for data processing system
US5774730A (en) Method and apparatus for improving colorability of constrained nodes in an interference graph within a computer system
US5261062A (en) Register allocation system adaptive for pipelining
US5825649A (en) Kernel substitution method in multi-processor system and multi-processor system having kernel substitution function
JPH05216689A (en) Computer apparatus and computer-apparatus operating method
JP3179536B2 (en) How to operate a digital computer
JP2007035066A (en) Multi-os configuration method
US6128590A (en) Method for the migration of hardware-proximate, subprogram-independent programs with portable and non-portable program parts
WO1993013477A1 (en) Computer protection device
Shanley Protected mode software architecture

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)