Author Topic: TSM Fix  (Read 306 times)

Offline OS923

  • Gold Member
  • *****
  • Posts: 305
TSM Fix
« on: August 12, 2018, 01:27:21 AM »
What is fixed by TSM Fix? Is this necessary on OS 9?

Offline IIO

  • Platinum Member
  • *****
  • Posts: 2012
  • new to the forums
Re: TSM Fix
« Reply #1 on: August 12, 2018, 01:49:21 PM »
there once was a discussion if that is still needed for OS 8.5 and later. i dont know, and i dont even have an opinion.

but i know that there were quite a few OS 9 applications which still install it - that probably means you might still need it under circumstances. :)

most of them were (or contained) INITs and do something which requries user input (such as controlling a menu with the mouse)

the author about its original purpose on 8.0: https://macgui.com/downloads/?file_id=23353
"It is true that the "pre-emptive multitasking" advantage present in OS X can be illustrated by downloading CD-ROM ISOs and rendering chaos theory formulas while simultaneously instant messaging and posting on FaceBook what you ate... but in reality, what did you create?"
- DieHard, random forum troll at macos9lives.com

Offline OS923

  • Gold Member
  • *****
  • Posts: 305
Re: TSM Fix
« Reply #2 on: August 14, 2018, 04:46:55 AM »
Quote
Tsm Fix 103

Date: Thu, 27 Jul 1995 01:33:31 -0400
From: Matt Slot <fprefect@engin.umich.edu>
Subject: TSM Fix 1.0.3

The operating system give low-level programmers a mechanism (called the jGNEFilter) for intercepting user events (mouse clicks, key downs, etc) and "filtering" or modifying them before the computer processes them. Many system extensions use this hook to implement special functionality in your computer -- such as SuperClock and ObiWan -- and work transparently to the  user.

This system extension remedies the problem by checking events as they are presented to the running programs. If an event has not passed through the installed filters, this extension sends it to be filtered before returning.

Distribution:
I wrote this to fix a bug that was plaguing users of certain programs I had written. I hope that it becomes widely used, so it is free to use and distribute. Also, if you have written software that suffers from such "Missing Clicks", you can freely add this extension and readme to your distribution. (Drop me a line if you do so... so I can send you an update as necessary).

Changes in 1.03:
  • Fixed another incompatibility with Optimem RAM Charger and Jasik's Debugger. This should take care of all your problems!
  • Started flushing the cache when necessary.

Matt Slot, fprefect@umich.edu - 7/26/95

README (General Use)   25 Jul 95 09:45 pm
TSM Fix 1.03   30 Jun 95 12:39 am
TSM Fix 1.03   25 Jul 95 09:50 pm
On my Mac a GNEFilter is only installed by CarbonLib and Keyboard. Then I may remove TSM Fix.

What is the meaning of TSM?

What is meant by "flushing the cache when necessary"?

Offline Naiw

  • Consistant Contributor
  • ***
  • Posts: 86
  • new to the forums
Re: TSM Fix
« Reply #3 on: August 14, 2018, 05:46:04 AM »
How do you "measure" what extensions/control panels or applications install a jGNEFilter? I used them pretty frequently in my applications/hacks back in the 90s and as far as I recall you just wrote to a specific low memory location to insert it in the chain.

TSM = Text Service Manager

GNEFilter = GetNextEventFilter

"Flushing when necessary" probably implies that his fix uses selfmodifying code and in such case it's necessary to flush the cache as soon as you modified your code on anything above 68030 for the generated code to get executed.

Offline Naiw

  • Consistant Contributor
  • ***
  • Posts: 86
  • new to the forums
Re: TSM Fix
« Reply #4 on: August 14, 2018, 05:55:33 AM »
And to answer the original questions, no TSM fix should not be necessary at least Mac OS 8.x or later.

I don't recall the exact details but I believe the original reason for it was that people started doing global floating windows,
TSM provided a call called NewServiceWindow which allowed for this- however it didn't support color so what people generally did was to patch NewServiceWindow to call NewCWindow instead of NewWindow. Of some reason (which I don't recall) TSM which owned those windows, sometimes ignored events in those cases which caused the click to go through the window and into the application beneath the window instead.

On later versions of Mac OS NewCServiceWindow was available and I can't recall I ever saw that issue. Applications that targeted 7.1 or later of course needed TSM fix still on those systems.

Offline OS923

  • Gold Member
  • *****
  • Posts: 305
Re: TSM Fix
« Reply #5 on: August 16, 2018, 05:39:16 AM »
I remember vaguely something about floating windows. Perhaps the error occurred only in floating windows with a text edit field?

Offline OS923

  • Gold Member
  • *****
  • Posts: 305
Re: TSM Fix
« Reply #6 on: August 16, 2018, 05:44:15 AM »
There's a similar problem with Acrobat and Reader. There you have a find dialog. If you type in this dialog, in some circumstances the characters won't appear in the window because they are sent to somewhere else. They use a GNEFilter and when they quit, this filter is not removed, which may block other programs from removing their GNEFilter, because if they do they will crash.

Offline IIO

  • Platinum Member
  • *****
  • Posts: 2012
  • new to the forums
Re: TSM Fix
« Reply #7 on: August 16, 2018, 06:14:59 AM »
even photoshop required it (but not sure up to which version)
"It is true that the "pre-emptive multitasking" advantage present in OS X can be illustrated by downloading CD-ROM ISOs and rendering chaos theory formulas while simultaneously instant messaging and posting on FaceBook what you ate... but in reality, what did you create?"
- DieHard, random forum troll at macos9lives.com