US5487158A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method and procedure call mechanism for calling 16-bit functions from 32-bit functions
Assignee: International Business Machines Corp
•
Filing: 1994-09-06
•
Granted: 1996-01-23
•
Expires: 2014-09-06
Abstract
Abstract In the field of mixed 16-bit and 32-bit code, a method and mechanism are provided to implement alterations in the dynamic portion of memory containing the data objects used by code in the 32-bit environment so that such data is accessible to code from the 16-bit environment. Once the data objects in the stack are accesible to the 16-bit code, a function in the 32-bit code can successfully call a function in 16-bit code.
Inventors
- 👤 Iam R. Amelina
- 👤 David M. Mooney
- 👤 Kevin A. Stoodley
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-01 03:40
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/541; G06F9/44; G06F9/448; G06F9/4482; G06F9/4484; G06F9/461
Claims Analysis
Total Claims: 24
Claim 1
Independent Claim
95 words
In a computing environment, a method for calling a 16-bit code from a 32-bit subroutine, in which at least one stack frame in a memory stack is allocated to the 32-bit subroutine, comprising the computer implemented steps of: defining a consecutive series of 64K byte boundaries in the stack; providing means for accessing variables and data objects spanning any 64K byte boundary defined in the stack from below the 64K byte boundary; building a parameter list in the stack in 16-bit form; and allocating stack space for data to be used by the 16-bit code.
Claim 2
Dependent Claim
95 words
In a computing environment, a method for calling a 16-bit code from a 32-bit subroutine, in which at least one stack frame in a memory stack is allocated to the 32-bit subroutine, comprising the computer implemented steps of: defining a consecutive series of 64K byte boundaries in the stack; providing means for accessing variables and data objects spanning any 64K byte boundary defined in the stack from below the 64K byte boundary; building a parameter list in the stack in 16-bit form; and allocating stack space for data to be used by the 16-bit code.
Claim 3
Dependent Claim
60 words
A method, according to claim 1, wherein the means provided for accessing variables and data objects below the 64K byte boundary comprises: first means for determining if any variables or data objects span any 64K byte boundary in the stack; and second means for copying any variable or data object spanning a 64K byte boundary below that 64K byte boundary.
Claim 4
Dependent Claim
33 words
A method, according to claim 2, further comprising the step of creating a record of original register values in the stack before copying any variables or data objects below any 64K byte boundary.
Claim 5
Dependent Claim
71 words
A method, according to claim 3, wherein the step of creating a record of original register values in the stack comprises the steps of: locating a stack pointer indicative of a layout in the stack; and reserving the original value of said stack pointer on the top of the stack, whereby to permit restoration of the original layout of the stack, following procedure exit of the 16-bit code from the stack.
Claim 6
Dependent Claim
32 words
A method, according to claim 3, wherein the step of creating a record of original register values in the stack comprises constructing a separate record of all processor registers in the stack.
Claim 7
Dependent Claim
20 words
A method according to claim 1, wherein the stack space is allocated in a separate stack from the 32-bit stack.
Claim 8
Dependent Claim
21 words
A method according to claim 1, wherein stack space is reallocated from the 32-bit stack for use by the 16-bit code.
Claim 9
Dependent Claim
106 words
A procedure call mechanism for implementing calls to 16-bit code from 32-bit code in a computer program in which at least one stack frame in a memory stack is allocated to the computer program, the procedure call mechanism comprising: a transition preparation element having means for locating in the stack frame any variables or data objects spanning any 64K byte boundary in the stack, and including means for accessing any located variables or data objects which span a 64K byte boundary from below the 64K byte boundary; and control transfer means for allocating stack space for use by the 16-bit code called by the 32-bit code.
Claim 10
Dependent Claim
106 words
A procedure call mechanism for implementing calls to 16-bit code from 32-bit code in a computer program in which at least one stack frame in a memory stack is allocated to the computer program, the procedure call mechanism comprising: a transition preparation element having means for locating in the stack frame any variables or data objects spanning any 64K byte boundary in the stack, and including means for accessing any located variables or data objects which span a 64K byte boundary from below the 64K byte boundary; and control transfer means for allocating stack space for use by the 16-bit code called by the 32-bit code.
Claim 11
Dependent Claim
64 words
A procedure call mechanism, according to claim 8, wherein the transition preparation element comprises: means for defining a consecutive series of 64K byte boundaries in the stack; means for examining the stack to locate any variables or data objects spanning any 64K byte boundary defined in the stack; and means for copying any located variables or data objects below its associated 64K byte boundary.
Claim 12
Dependent Claim
41 words
A procedure call mechanism, according to claim 9, wherein the transition preparation element further comprises recording means for creating a least one record of a stack pointer value and processor registers prior to defining the consecutive series of 64K byte boundaries.
Claim 13
Dependent Claim
29 words
A procedure call mechanism, according to claim 8 wherein the control transfer means further comprises means for building a parameter list compatible with 16-bit code calling in the stack.
Claim 14
Dependent Claim
32 words
A procedure call mechanism, according to claim 8 or 11, wherein the control transfer means further comprises recording means for creating at least one record of 32-bit parameters from the stack frame.
Claim 15
Dependent Claim
27 words
A procedure call mechanism, according to claim 8, wherein the transition preparation element and control transfer means are normally located in a runtime library of a compiler.
Claim 16
Dependent Claim
54 words
A procedure call mechanism, according to claim 13, wherein the transition preparation element is responsive to the compiler locating at least one call to 16-bit code from the 32-bit code in the program, and wherein the control transfer means is responsive to any call to 16-bit code from the 32-bit code in the program.
Claim 17
Dependent Claim
146 words
In a computer system, a method for providing a 16-bit function with access to data objects in a memory stack shared with at least one 32-bit subroutine, the method including the computer system-implemented steps: compiling a 32-bit subroutine; during compilation of the 32-bit subroutine, recognizing a call to a 16-bit function and issuing to the 32-bit subroutine a call to a preparation routine; executing the 32-bit subroutine; calling the 16-bit function from the 32-bit subroutine; prior to execution of the 16-bit function, calling the preparation routine; executing the preparation routine by: defining 64K byte boundaries in the memory stack; identifying at least one data object which spans a 64K byte boundary; and copying the at least one data object to an area of the memory stack in which the at least one data object does not span a 64K byte boundary; and, executing the 16-bit function.
Claim 18
Dependent Claim
146 words
In a computer system, a method for providing a 16-bit function with access to data objects in a memory stack shared with at least one 32-bit subroutine, the method including the computer system-implemented steps: compiling a 32-bit subroutine; during compilation of the 32-bit subroutine, recognizing a call to a 16-bit function and issuing to the 32-bit subroutine a call to a preparation routine; executing the 32-bit subroutine; calling the 16-bit function from the 32-bit subroutine; prior to execution of the 16-bit function, calling the preparation routine; executing the preparation routine by: defining 64K byte boundaries in the memory stack; identifying at least one data object which spans a 64K byte boundary; and copying the at least one data object to an area of the memory stack in which the at least one data object does not span a 64K byte boundary; and, executing the 16-bit function.
Claim 19
Dependent Claim
140 words
A combination operable in conjunction with a digital processing apparatus to provide a 16-bit function with access to data objects in a memory stack shared with at least one 32-bit subroutine, the combination including: compiler means for compiling a computer readable program code embodying a 32-bit subroutine; the compiler means placing in the 32-bit subroutine a call to a 16-bit function; and preparation routine means responsive to the call to the 16-bit function and executable prior to execution of the 16-bit function for: defining 64K byte boundaries in a memory stack shared by the 16-bit function and the 32-bit subroutine; identifying at least one data object which spans a 64K-byte boundary; and copying the at least one data object to an area of the memory stack in which the at least one data object does not span a 64K-byte boundary.
Claim 20
Dependent Claim
140 words
A combination operable in conjunction with a digital processing apparatus to provide a 16-bit function with access to data objects in a memory stack shared with at least one 32-bit subroutine, the combination including: compiler means for compiling a computer readable program code embodying a 32-bit subroutine; the compiler means placing in the 32-bit subroutine a call to a 16-bit function; and preparation routine means responsive to the call to the 16-bit function and executable prior to execution of the 16-bit function for: defining 64K byte boundaries in a memory stack shared by the 16-bit function and the 32-bit subroutine; identifying at least one data object which spans a 64K-byte boundary; and copying the at least one data object to an area of the memory stack in which the at least one data object does not span a 64K-byte boundary.
Claim 21
Dependent Claim
127 words
A combination operable in conjunction with a digital processing apparatus to provide a 16-bit function with access to data objects in a memory stack shared with at least one 32-bit code function, the combination including: a 32-bit code function including a call to a 16-bit function; and preparation routine means responsive to the call to the 16-bit function and executable prior to execution of the 16-bit function for: defining 64K byte boundaries in a memory stack shared by the 16-bit function and the 32-bit code routine; identifying at least one data object which spans a 64K byte boundary; and copying the at least one data object to an area of the memory stack in which the at least one data object does not span a 64K boundary.
Claim 22
Dependent Claim
127 words
A combination operable in conjunction with a digital processing apparatus to provide a 16-bit function with access to data objects in a memory stack shared with at least one 32-bit code function, the combination including: a 32-bit code function including a call to a 16-bit function; and preparation routine means responsive to the call to the 16-bit function and executable prior to execution of the 16-bit function for: defining 64K byte boundaries in a memory stack shared by the 16-bit function and the 32-bit code routine; identifying at least one data object which spans a 64K byte boundary; and copying the at least one data object to an area of the memory stack in which the at least one data object does not span a 64K boundary.
Claim 23
Dependent Claim
140 words
A preparation routine code product operable in conjunction with a digital processing apparatus to provide a 16-bit function with access to data objects in a memory stack shared with at least one 32-bit code routine, the preparation routine code product including: means for receiving a call from a 32-bit code routine to a 16-bit function; and means responsive to the call to the 16-bit function for: defining 64K byte boundaries in a memory stack shared by the 16-bit function and the 32-bit code routine; identifying at least one data object which spans a 64K byte boundary in the memory stack; and copying the at least one data object to an area of the memory stack in which the at least one data object does not span a 64K byte boundary; and a 16-bit subroutine means for calling the 16-bit function.
Claim 24
Dependent Claim
140 words
A preparation routine code product operable in conjunction with a digital processing apparatus to provide a 16-bit function with access to data objects in a memory stack shared with at least one 32-bit code routine, the preparation routine code product including: means for receiving a call from a 32-bit code routine to a 16-bit function; and means responsive to the call to the 16-bit function for: defining 64K byte boundaries in a memory stack shared by the 16-bit function and the 32-bit code routine; identifying at least one data object which spans a 64K byte boundary in the memory stack; and copying the at least one data object to an area of the memory stack in which the at least one data object does not span a 64K byte boundary; and a 16-bit subroutine means for calling the 16-bit function.
References Cited (Backward Citations)
US4297743A
Cited
US4445173A
Cited
US4569018A
Cited
US4928237A
Cited
US5127103A
Cited
US5097533A
Cited
US5146593A
Cited
US5144551A
Cited
US5129070A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1999-01-22 | 1999-07-24 | 2000-01-23 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2003-01-22 | 2003-07-24 | 2004-01-23 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2007-01-22 | 2007-07-24 | 2008-01-23 | $7700.00 | Window Closed / Lapsed |