============================================================================
TBONES REVISION HISTORY:
-----------------------

PRE-RELEASE:
-----------

TBONES07 -  January 20,1991 (Robert Curtis Davis)
-------------------------------------------------

The following changes have been made in the current release:

* Upon detection of the HotKey, the DOS Keyboard buffer is now flushed to
        prevent passing keys through to DOS after TSR triggers.

* Interrupts are enabled in all our handlers where reasonable so that
        other critical interrupt processing is not locked out.

* Interrupt handlers now call prior handlers at outset of their
        code where reasonable.

* Cleaned up the "bellgate" stuff that prevents unnecessary re-entry
        into several portions of the code.

* Added a vital "cli" to be sure interrupts disabled in our INT13 handler
        when the simulated interrupt call to the prior handler is made.
        This is necessary to cover the potential problem of some other TSR
        chaining to the INT13 handler without insuring that interrupts
        are disabled. A normal INT 13 DOES disable interrupts but we
        cannot safely assume that we will always be entered via a normal
        interrupt. For example, our handler might be jumped to by someone
        who forgot that the interrupts were enabled. Our "cli" protects
        us from such mistakes.

* Fixed code so MASM v1.0 can assemble the ASM programs. The calculation
        of the number of paragraphs to make resident was handled improperly
        by MASM v1.0. The problem evidently was in its handling of the SHR 4
        function to divide resident bytes by 16 to obtain resident paragraphs.
        Using /16 in the current version cured the problem.

* 1-line TBONES description now included for use by archivers and BBSers.

* The pop bx in the DOSver1 area was a bug for DOS Version 1.x. It is
        unnecessary since the only way we get to DOSver1 is via the
        jump at the beginning of the TSRinit stuff and, there, no push bx
        is done. This was a definite bug for DOS Version 1.x users. Fixed
        by adding a push bx for the DOSver1 exit.

* TSRINT and TSRKEY now bail out gracefully (as did TSRBONES) on DOS
        Version 1.x.

* I HATE TSRS which leave only the unhelpful "N/A" under the owner
        column in the Mark/Release package's MAPMEM command. Therefore
        TSRINT and TSRKEY have been given a Pseudo-Environment to show
        a name. This costs only 16-bytes of resident RAM.

* Added pagination and Title and Subttl's to the programs TSRINT.ASM
        and TSRKEY.ASM to prettify their .LST listings.


TBONES06 -  December 29, 1990 (Robert Curtis Davis)
---------------------------------------------------

        E-mail exchanges with Roy Silvernail were most helpful in solving
a problem that TASM v.1.0 encountered in calculating the number of paragraphs
with which to go resident in the TSR initialization code. Thanks, Roy.

        Since there were only slight differences amongst them, and because
they served more to document my personal journey toward understanding TSRs
than to help other users, I have eliminated the programs TSRDOSOK, TSR1DOK,
and TSR1DHW which were included in earlier versions of the TBONES package.
ALL of the eliminated programs' features are incorporated into TBONES' new
flagship TSR program, TSRBONES.ASM.

        TSRBONES.ASM is the safest, most robust TSR program I currently know
how to make.

        TSRBONES.ASM incorporates the following improvements made since
the release of TBONES05:

* Patched in to the INT13h handler to set a flag which prevents TSR trigger
        during time-critical Disk accesses that should not be interrupted.

* InDOS flag can be ZERO when CritErr flag is non-zero. Test CritErr flag
	at +- 1 from InDOS flag (depending on DOS version) and make sure
	that IT is ZERO as WELL as InDOS flag before allowing TSR trigger.
        (Included code to find the CritErr flag depending on the DOS version.
         V2 has it at InDOS+1; V3 & V4 have it at InDOS-1.)

* TSRBONES gives a message and bails out without installing the TSR if
        DOS Version 1.x is in use. This only expands the nonresident code
        so it is Free as far as resident code size is concerned.

* Insured that InDOS is not more than 1 when in INT28h  before triggering TSR.

* TSR now will not trigger when a PrintScreen is in progress.
        Checks PrtScrn Status at 50:00h.

* Added README file.

* Added HISTORY file.

* Fixed BUG: Reason Bell in dummy User ROUTINE did not ring with Vanilla DOS
        was that the NumLock toggle was on. The KeyFlagByte checks toggles
        (NumLock, CapsLock, and ScrollLock); if any are on, the TSR
        WOULD NOT TRIGGER. I fixed it by masking out the Lock keys with
        LockKeyMask.


TBONES05 - December 5, 1990 (Robert Curtis Davis)
-------------------------------------------------

           Added TSR1DHW which, in addition to all the features of
           TSR1DOK, also includes a check of the the ISR in the 8259A PIC
           to prevent TSR triggering if any hardware interrupt (IRQ0 thru
           IRQ7) is being serviced.

           TSR1DHW calls prior interrupt handlers BEFORE servicing with the
           TSR's code. This is done instead of chaining to the old interrupt
           handlers after the TSR routine. This insures that we give those
           TSRs loaded before us (and including DOS's own handler) a chance
           to service the interrupt before our own routine can possibly
           do anything to bypass the other handlers. If all TSRs call prior 
           handlers first (considered good programming practice for interrupt
           handlers), potentially critical DOS handling is arrived at and
           performed in the speediest fashion.

           TSR1DHW de-allocates the often-big DOS Environment and 
           replaces it by a tiny ( one paragraph = 16 bytes) 
           "Pseudo-Environment" containing nothing but the TSR name.
           I did this primarily so Kim Kokkonen's excellent TSR Mark/Release
           package MAPMEM command would show the name of the TSR
           under its "owner" column instead of the uninformative "N/A"
           (Not Available) for TSRs which deallocate the DOS Environment.
           I certainly am willing to spend 16 bytes of memory to support
           this.        

           E-mail exchanges with Anto Prijosoesilo and with Richard Brittain
           were helpful in developing the "Pseudo-environment" idea.

           Updated documentation.

TBONES04  - Nov 26 90 (Robert Curtis Davis)
-------------------------------------------

            Integration of Toad Hall Tweaks into the code.
            David Kirschbaum's Toad Hall Tweaks have significantly improved
                TBONES' code.   

            Bug fix: System stack overflow problem incurred in TSRINT
                when PrtScrn key is held down has been solved. Problem
                arose when MANY interrupts occurred during Bell ringing.
                Solved through "Bell gate" stuff in TSRINT.ASM. 

            Edited documentation file (TBONES04.DOC).   


TBONES03  - Nov 25 90. Toad Hall communication to author. (David Kirschbaum)
----------------------------------------------------------------------------


TBONES02a - Nov 25 90.  Toad Hall Tweak (David Kirschbaum)
----------------------------------------------------------

                Compiled with Borland's TASM v1.0.
                Minor nonfunctional changes in all .ASM files.


TBONES02 - November 24, 1990. (Robert Curtis Davis)
---------------------------------------------------

                Added TSR1DOK for TSR activated by Hot Key when DOS is 
                either idle (InDOS flag = 0) or at "Busy Idle" Interrupt 28h.
                Further, the program code prevents multiple installation.

                Edited documentation file.

TBONES01 - November 17, 1990. (Robert Curtis Davis)
---------------------------------------------------

                Added TSRDOSOK for TSR activated by Hot Key when DOS is
                either idle (InDOS flag = 0) or at "Busy Idle" Interrupt 28h.

                Added documentation file.


TBONES00 - November 11,1990. (Robert Curtis Davis) 
--------------------------------------------------

                Included only TSRINT and TSRKEY, for raw hooked Interrupt
		TSR and raw Hot Key TSR, respectively.


*****************************************************************************
                         - THE END -

