Mix TSR Demo
---------------------------------------------
This TSR demonstration for the MIX Power C compiler is an
adaptation of a series of two articles ("Writing Terminate and
Stay
Resident Programs") by Al Stevens which appeared in COMPUTER
LANGUAGE magazine, February and March of 1988. These original
articles described constructing TSRs for Borland International's
Turbo C and Microsoft's Quick C.
Mix includes an example TSR in its Power C book under the keep()
function. The major difficulty in implementing the TSR by Mr.
Stevens was that the interrupt entry point servicing routine
provided by MIX ($_INTENT - which is called at the outset of any
functions declared "interrupt") does not seem to be reentrant -
there may be a few bugs in it, too. This was a problem because
multiple interrupts are trapped by the TSR demo, rather than just
one in the keep() example.
Therefore, I was forced to abandon ISR (interrupt service
routines)
written in C in favor of assembly language versions. The
TSRASM.ASM file provides these ISRs. (In case you don't have the
source code option from MIX... which includes the assembler... I
have enclosed an object version of TSRASM.ASM.)
The files included in this archive are:
README.DOC This file you're reading
TSR.PRJ The make file for the TSR
TSR.H Function prototypes
TSR.C Main program (startup)
RESIDENT.C TSR functions to make it resident
TSRASM.ASM ISRs and other minor functions
TSRASM.MIX Object for TSRASM.ASM
CLOCK.C The TSR popup - a memory resident clock
TSR.EXE The TSR ready to go
Hints:
If you do not have the assembler (source code option),
remove the TSRASM portion from the TSR.PRJ file.
If you do have the assembler, verify the pathname used in
TSRASM.ASM.
If you adapt the functions to another application, check
the stack and heap sizes used in the link statement of the make
file. Also, you must use the I/O methods used in CLOCK.C.