mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-12-29 07:29:15 +00:00
81 lines
2.8 KiB
Plaintext
81 lines
2.8 KiB
Plaintext
|
;
|
|||
|
; File: InvalMenuBarPatch.a
|
|||
|
;
|
|||
|
; Contains: implementation of the InvalMenuBar trap as a patch
|
|||
|
;
|
|||
|
; Written by: Darin Adler
|
|||
|
;
|
|||
|
; Copyright: <09> 1990, 1992 by Apple Computer, Inc., all rights reserved.
|
|||
|
;
|
|||
|
; This file is used in these builds: BigBang
|
|||
|
;
|
|||
|
; Change History (most recent first):
|
|||
|
;
|
|||
|
; <SM2> 5/20/92 TN Moved new InvalMenuBar routines to MenuMgrExtensions.a
|
|||
|
; <7> 4/16/91 KSM dba,#86852: Add reentrancy bit to fix case where Think Pascal
|
|||
|
; patches DrawMenuBar to call HiliteMenu and we die in a recursive
|
|||
|
; patch conflict.
|
|||
|
; <6> 3/29/91 JSM dba, #85831: Add support for MenuBarGlobalInvalidBit in
|
|||
|
; ValidateMenuBarWhenDrawing and ValidateMenuBar.
|
|||
|
; <5> 7/25/90 dba fix bug that shows up in THINK Pascal (which patches DrawMenuBar
|
|||
|
; to call HiliteMenu) by clearing the invalid bit before calling
|
|||
|
; DrawMenuBar; also get rid of the patch to CheckUpdate that calls
|
|||
|
; validate, since the Layer Manager<65>s CheckUpdate has a call
|
|||
|
; inside of it now
|
|||
|
; <4> 7/13/90 KSM Add ValidateMenuBar call for WindowMgr's CheckUpdate comefrom
|
|||
|
; patch and to save a tiny bit of code.
|
|||
|
; <3> 7/9/90 KSM Changed InvalMenuBar proc to use opword.
|
|||
|
; <2> 6/7/90 EMT Fix module names so they won<6F>t be likely to conflict with other
|
|||
|
; patches.
|
|||
|
; <1> 4/9/90 dba new to the system today
|
|||
|
;
|
|||
|
; To Do:
|
|||
|
; roll into Menu Manager and Window Manager source
|
|||
|
;
|
|||
|
|
|||
|
load 'StandardEqu.d'
|
|||
|
include 'LinkedPatchMacros.a'
|
|||
|
include 'MenuMgrPriv.a'
|
|||
|
|
|||
|
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; DrawMenuBar clear MenuBarInvalidBit and MenuBarGlobalInvalidBit
|
|||
|
;
|
|||
|
; Note: We depend on the fact that this patch gets invoked after the Process Mgr patch that
|
|||
|
; determines whether or not to actually draw the menu bar. Otherwise, we could clear the global
|
|||
|
; dirty even if the DrawMenuBar never happens, which we don<6F>t want to do.
|
|||
|
|
|||
|
; Clear the low memory bits whenever we draw the menu bar.
|
|||
|
|
|||
|
ValidateMenuBarWhenDrawing PatchProc _DrawMenuBar,(Plus,SE,II,Portable,IIci)
|
|||
|
|
|||
|
bclr #MenuBarInvalidBit,MenuBarInvalidByte ; clear the local invalid bit
|
|||
|
bclr #MenuBarGlobalInvalidBit,MenuBarGlobalInvalidByte ; clear the global invalid bit <6>
|
|||
|
jmpOld
|
|||
|
|
|||
|
EndProc
|
|||
|
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; MenuSelect draw menu bar if invalid
|
|||
|
|
|||
|
DrawMenuBarIfInvalidOnMenuSelect PatchProc _MenuSelect,(Plus,SE,II,Portable,IIci)
|
|||
|
|
|||
|
IMPORT ValidateMenuBar
|
|||
|
jsr ValidateMenuBar
|
|||
|
jmpOld
|
|||
|
|
|||
|
EndProc
|
|||
|
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
; HiliteMenu draw menu bar if invalid
|
|||
|
|
|||
|
DrawMenuBarIfInvalidOnHiliteMenu PatchProc _HiliteMenu,(Plus,SE,II,Portable,IIci)
|
|||
|
|
|||
|
IMPORT ValidateMenuBar
|
|||
|
jsr ValidateMenuBar
|
|||
|
jmpOld
|
|||
|
|
|||
|
EndProc
|
|||
|
|
|||
|
end
|