TESampleGlue.a

;
;   Apple Macintosh Developer Technical Support
;
;   MultiFinder-Aware Simple TextEdit Sample Application
;
;   OOPTESample
;
;   TESampleGlue.a      -   Asm Source
;
;   Copyright © 1988, 1989 Apple Computer, Inc.
;   All rights reserved.
;
;   Versions:       
;                   1.00                    04/89
;                   1.10                    02/90
;                   1.11                    10/92
;
;   Components:     
;                   BuildOOPTESample            February 1, 1990
;                   MTESample.p                 February 1, 1990
;                   OOPTESample.make            February 1, 1990
;                   TECommon.h                  February 1, 1990
;                   TESampleGlue.a              February 1, 1990
;                   TESample.r                  February 1, 1990
;                   TMLRules.make               February 1, 1990
;                   UApplication.p              February 1, 1990
;                   UApplication.inc1.p         February 1, 1990
;                   UDocument.p                 February 1, 1990
;                   UDocument.inc1.p            February 1, 1990
;                   UTEDocument.p               February 1, 1990
;                   UTEDocument.inc1.p          February 1, 1990
;                   UTESample.p                 February 1, 1990
;                   UTESample.inc1.p            February 1, 1990
;
 
;
;   AsmClickLoop
;
;   This routine gets called by the TextEdit Manager from TEClick.
;   It calls the old, default click loop routine that scrolls the
;   text, and then calls our own Pascal routine that handles
;   tracking the scroll bars to follow along.  It doesn't bother
;   with saving registers A0 and D0, because they are trashed
;   anyway by TextEdit.
;
 
AsmClickLoop    PROC        EXPORT
 
            IMPORT      GETOLDCLICKLOOP
            IMPORT      PASCALCLICKLOOP
            
            MOVEM.L     D1-D2/A1,-(SP)      ; D0 and A0 need not be saved
            
            CLR.L       -(SP)               ; make space for procedure pointer
            JSR         GETOLDCLICKLOOP     ; get the old clickLoop
            MOVEA.L     (SP)+,A0            ; into A0
            
            MOVEM.L     (SP)+,D1-D2/A1      ; restore the world as it was
            JSR         (A0)                ; and execute old clickLoop
 
            MOVEM.L     D1-D2/A1,-(SP)      ; D0 and A0 need not be saved
            JSR         PASCALCLICKLOOP     ; do our clickLoop
            MOVEQ       #1,D0               ; clear the zero flag so TextEdit keeps going
            MOVEM.L     (SP)+,D1-D2/A1      ; restore the world as it was
            RTS
 
            END