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

  1. {
  2.     File:        RTLib.p
  3.  
  4.     Copyright:    © 1983-1993 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Version:    System 7.1 for ETO #11
  8.     Created:    Tuesday, March 30, 1993 18:00
  9.  
  10. }
  11.  
  12. {$IFC UNDEFINED UsingIncludes}
  13. {$SETC UsingIncludes := 0}
  14. {$ENDC}
  15.  
  16. {$IFC NOT UsingIncludes}
  17.  UNIT RTLib;
  18.  INTERFACE
  19. {$ENDC}
  20.  
  21. {$IFC UNDEFINED UsingRTLib}
  22. {$SETC UsingRTLib := 1}
  23.  
  24. {$I+}
  25. {$SETC RTLibIncludes := UsingIncludes}
  26. {$SETC UsingIncludes := 1}
  27. {$IFC UNDEFINED UsingTypes}
  28. {$I $$Shell(PInterfaces)Types.p}
  29. {$ENDC}
  30. {$SETC UsingIncludes := RTLibIncludes}
  31.  
  32.  
  33. CONST
  34.     {
  35.             Error Codes
  36.     }
  37.     eRTNoErr                = 0;
  38.     eRTBadVersion        = 2;
  39.     eRTInvalidOp        = 4;
  40.     eRTInvalidJTPtr    = 6;
  41.  
  42.     {
  43.             Action Codes
  44.     }
  45.     kRTSysErr    = 0;
  46.     kRTRetry        = 1;
  47.     kRTContinue    = 2;
  48.  
  49.     {
  50.             Runtime Operations
  51.     }
  52.     kRTGetVersion            = 10;
  53.     kRTGetVersionA5        = 11;
  54.     kRTGetJTAddress        = 12;
  55.     kRTGetJTAddressA5        = 13;
  56.     kRTSetPreLoad            = 14;
  57.     kRTSetPreLoadA5        = 15;
  58.     kRTSetSegLoadErr        = 16;
  59.     kRTSetSegLoadErrA5    = 17;
  60.     kRTSetPostLoad            = 18;
  61.     kRTSetPostLoadA5        = 19;
  62.     kRTSetPreUnload        = 20;
  63.     kRTSetPreUnloadA5        = 21;
  64.     kRTPreLaunch            = 22;
  65.     kRTPostLaunch            = 23;
  66.  
  67.     {
  68.             Version Definitions
  69.     }
  70.     kVERSION32BIT            = $FFFF;
  71.     kVERSION16BIT            = $0000;
  72.     
  73.  
  74. TYPE
  75.     {
  76.             RTState Definition
  77.     }
  78.     RTState = RECORD 
  79.         fVersion:    INTEGER;                        { run-time version }
  80.         fSP:            Ptr;                                { SP: &-of user return address }
  81.         fJTAddr:        Ptr;                                { PC: &-of called jump table entry }
  82.         fRegisters: Array[0..14] of LONGINT;    { registers D0-D7 and A0-A6 when }
  83.                                                             {        _LoadSeg was called }
  84.         fSegNo:        INTEGER;                            {    segment number }
  85.         fSegType:    ResType;                            {    segment type (normally 'CODE') }
  86.         fSegSize:    LONGINT;                            {    segment size }
  87.         fSegInCore:    BOOLEAN;                            {    true if segment is in memory }
  88.         fReserved1:    BOOLEAN;                            { (reserved for future use) }
  89.         fOSErr:        OSErr;                            {    error number }
  90.         fReserved2:    LONGINT;                            { (reserved for future use) }
  91.     END;
  92.     
  93.     RTStatePtr = ^RTState;    
  94.     
  95.     {
  96.             Runtime Parameter Block
  97.     }
  98.     
  99.     RTParam = (RTGetVersionParam, RTGetJTAddrParam, RTSetSegLoadParam);
  100.     
  101.     RTPB = RECORD 
  102.         fOperation:        INTEGER;                        { operation }
  103.         fA5:                Ptr;                            { A5-world }
  104.         CASE RTParam OF
  105.             RTGetVersionParam:
  106.                 (fVersion:    INTEGER);                { run-time version (returned) }
  107.  
  108.             RTGetJTAddrParam:
  109.                 (fJTAddr:    Ptr;                        { ptr to jt entry }
  110.                 fCodeAddr:    Ptr);                        { code address w/i jt entry (returned) }
  111.                 
  112.             RTSetSegLoadParam:
  113.                 (fUserHdlr:        Ptr;                    { ptr to user handler }
  114.                 fOldUserHdlr:    Ptr);                    { ptr to old user handler (returned) }
  115.         END;
  116.     
  117.     RTPBPtr = ^RTPB;
  118.  
  119.  
  120. FUNCTION Runtime (runtime_parms: RTPBPtr): OSErr;
  121.  
  122.  
  123. {$ENDC}    { UsingRTLib }
  124.  
  125. {$IFC NOT UsingIncludes}
  126.     END.
  127. {$ENDC}
  128.  
  129.