Browse Prior Art Database

Re-Entrancy of Subroutines in Interrupt Driven Systems With No Mask Capability

IP.com Disclosure Number: IPCOM000075618D
Original Publication Date: 1971-Oct-01
Included in the Prior Art Database: 2005-Feb-24
Document File: 2 page(s) / 66K

Publishing Venue

IBM

Related People

Franza, BD: AUTHOR

Abstract

Two examples of subroutine(s) are shown which are interposed between a requested subroutine(R) and the requesting programs. Either subroutine(s) is to be employed with machines which have an interrupt capability, but no masking feature, in a sensor based environment where different levels of execution and interrupt are necessary. Specifically, the requested subroutine (R) is one which may be used by two programs, which execute on different program levels.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 2

Re-Entrancy of Subroutines in Interrupt Driven Systems With No Mask Capability

Two examples of subroutine(s) are shown which are interposed between a requested subroutine(R) and the requesting programs. Either subroutine(s) is to be employed with machines which have an interrupt capability, but no masking feature, in a sensor based environment where different levels of execution and interrupt are necessary. Specifically, the requested subroutine (R) is one which may be used by two programs, which execute on different program levels.

The calls in the programs to the subject subroutine(R) are replaced by calls to the subroutine(S) in example 1, and by a call to subroutine(S) for the lower level program only in example 2.

On any such interrupt call, the subroutine(S) first checks whether the subroutine(R) is in operation as called by the other program. In example 1, this is step 10, and in example 2, this is step 40. In example 1, if subroutine(R) is not busy, it is called in step 11. If subroutine(R) is in operation, step 12 sets a pointer to return control to subroutine(S) upon completion of subroutine(R), and then returns control to subroutine(R) in steps 13 and 14 to force it to completion. Upon completion, the pointer at address 10F transfers control to subroutine(S) at step 15. Step 15 saves all registers and return address values of the completed subroutine(R) for later return to the first level of execution. Subroutine(S) cancels the pointer in step 16 and calls subroutine(R) in...