home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Interfaces / PInterfaces / Retrace.p < prev    next >
Encoding:
Text File  |  1994-11-11  |  2.6 KB  |  125 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Retrace.p
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7.      Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. }
  16.  
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT Retrace;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __RETRACE__}
  27. {$SETC __RETRACE__ := 1}
  28.  
  29. {$I+}
  30. {$SETC RetraceIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {    ConditionalMacros.p                                            }
  38.  
  39. {$IFC UNDEFINED __OSUTILS__}
  40. {$I OSUtils.p}
  41. {$ENDC}
  42. {    MixedMode.p                                                    }
  43. {    Memory.p                                                    }
  44.  
  45. {$PUSH}
  46. {$ALIGN MAC68K}
  47. {$LibExport+}
  48.     
  49. TYPE
  50.     VBLTaskPtr = ^VBLTask;
  51.  
  52.     {
  53.         VBLProcPtr uses register based parameters on the 68k and cannot
  54.         be written in or called from a high-level language without the help of
  55.         mixed mode or assembly glue.
  56.  
  57.         In:
  58.          => vblTaskPtr      A0.L
  59.     }
  60.     VBLProcPtr = ProcPtr;  { PROCEDURE VBL(vblTaskPtr: VBLTaskPtr); }
  61.     VBLUPP = UniversalProcPtr;
  62.  
  63.     VBLTask = RECORD
  64.         qLink:                    QElemPtr;
  65.         qType:                    INTEGER;
  66.         vblAddr:                VBLUPP;
  67.         vblCount:                INTEGER;
  68.         vblPhase:                INTEGER;
  69.     END;
  70. CONST
  71.     uppVBLProcInfo = $00009802; { Register PROCEDURE (4 bytes in A0); }
  72.  
  73. FUNCTION NewVBLProc(userRoutine: VBLProcPtr): VBLUPP;
  74.     {$IFC NOT GENERATINGCFM }
  75.     INLINE $2E9F;
  76.     {$ENDC}
  77.  
  78. PROCEDURE CallVBLProc(vblTaskPtr: VBLTaskPtr; userRoutine: VBLUPP);
  79.     {$IFC NOT GENERATINGCFM}
  80.     {To be implemented:  Glue to move parameters into registers.}
  81.     {$ENDC}
  82.  
  83. FUNCTION GetVBLQHdr: QHdrPtr;
  84.     {$IFC NOT GENERATINGCFM}
  85.     INLINE $2EBC, $0000, $0160;
  86.     {$ENDC}
  87. FUNCTION SlotVInstall(vblBlockPtr: QElemPtr; theSlot: INTEGER): OSErr;
  88.     {$IFC NOT GENERATINGCFM}
  89.     INLINE $301F, $205F, $A06F, $3E80;
  90.     {$ENDC}
  91. FUNCTION SlotVRemove(vblBlockPtr: QElemPtr; theSlot: INTEGER): OSErr;
  92.     {$IFC NOT GENERATINGCFM}
  93.     INLINE $301F, $205F, $A070, $3E80;
  94.     {$ENDC}
  95. FUNCTION AttachVBL(theSlot: INTEGER): OSErr;
  96.     {$IFC NOT GENERATINGCFM}
  97.     INLINE $301F, $A071, $3E80;
  98.     {$ENDC}
  99. FUNCTION DoVBLTask(theSlot: INTEGER): OSErr;
  100.     {$IFC NOT GENERATINGCFM}
  101.     INLINE $301F, $A072, $3E80;
  102.     {$ENDC}
  103. FUNCTION VInstall(vblTaskPtr: QElemPtr): OSErr;
  104.     {$IFC NOT GENERATINGCFM}
  105.     INLINE $205F, $A033, $3E80;
  106.     {$ENDC}
  107. FUNCTION VRemove(vblTaskPtr: QElemPtr): OSErr;
  108.     {$IFC NOT GENERATINGCFM}
  109.     INLINE $205F, $A034, $3E80;
  110.     {$ENDC}
  111. {}
  112. { Custom Glue for 68k.}
  113. {}
  114.  
  115. {$ALIGN RESET}
  116. {$POP}
  117.  
  118. {$SETC UsingIncludes := RetraceIncludes}
  119.  
  120. {$ENDC} {__RETRACE__}
  121.  
  122. {$IFC NOT UsingIncludes}
  123.  END.
  124. {$ENDC}
  125.