mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-22 04:31:30 +00:00
103 lines
2.7 KiB
C
103 lines
2.7 KiB
C
|
/************************************************************
|
|||
|
|
|||
|
Created: Saturday, July 27, 1991 at 7:21 PM
|
|||
|
Timer.h
|
|||
|
C Interface to the Macintosh Libraries
|
|||
|
|
|||
|
|
|||
|
Copyright Apple Computer, Inc. 1985-1993
|
|||
|
All rights reserved
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Change History (most recent first):
|
|||
|
|
|||
|
<13> 7/7/93 DTY Change USES68KINLINES to USESROUTINEDESCRIPTORS. Add CallXProc
|
|||
|
and NewXProc macros.
|
|||
|
<12> 6/7/93 EPT More ProcPtr/UPP work.
|
|||
|
<11> 6/3/93 EPT Fixed TimeMgrTask definition.
|
|||
|
<10> 6/3/93 EPT Synch up with NuReality.
|
|||
|
<9> 4/14/93 DTY More ProcPtr work.
|
|||
|
<8> 2/24/93 JDR Added kTMTaskActive according to Inside Mac VI.
|
|||
|
<7> 2/15/93 KIP Change #ifdef USESROUTINEDESCRIPTORS to #ifndef
|
|||
|
USESROUTINEDESCRIPTORS to help Dean out.
|
|||
|
<6> 2/9/93 DTY If we’re using routine descriptors, typedef ’ProcPtrs to be
|
|||
|
UniversalProcPtrs so that the caller can pass a real routine
|
|||
|
address, or a pointer to a routine descriptor. This causes
|
|||
|
parameter type checking to be lost, which is why we only do this
|
|||
|
if routine descriptors are used.
|
|||
|
<5> 7/31/91 JL Updated Copyright.
|
|||
|
<4> 1/27/91 LN Checked in Database generate file from DSG.
|
|||
|
<3> 12/3/90 JDR <dba> Use #pragma parameter and inlines.
|
|||
|
|
|||
|
************************************************************/
|
|||
|
|
|||
|
|
|||
|
#ifndef __TIMER__
|
|||
|
#define __TIMER__
|
|||
|
|
|||
|
#ifndef __TYPES__
|
|||
|
#include <Types.h>
|
|||
|
#endif
|
|||
|
|
|||
|
#ifndef __OSUTILS__
|
|||
|
#include <OSUtils.h>
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
typedef struct TMTask TMTask, *TMTaskPtr;
|
|||
|
|
|||
|
#if USESROUTINEDESCRIPTORS
|
|||
|
enum {
|
|||
|
uppTimerProcInfo = kRegisterBased | REGISTER_PARAM_FIELD(1, kA1, kFourByteCode)
|
|||
|
};
|
|||
|
|
|||
|
typedef pascal void (*TimerProcPtr)(TMTaskPtr tmTaskPtr);
|
|||
|
typedef UniversalProcPtr TimerUPP;
|
|||
|
|
|||
|
#define CallTimerProc(userRoutine, tmTaskPtr) \
|
|||
|
CallUniversalProc(userRoutine, uppTimerProcInfo, tmTaskPtr)
|
|||
|
#define NewTimerProc(userRoutine) \
|
|||
|
(TimerUPP) NewRoutineDescriptor(userRoutine, uppTimerProcInfo, GetCurrentISA())
|
|||
|
#else
|
|||
|
typedef pascal void (*TimerProcPtr)(void);
|
|||
|
typedef TimerProcPtr TimerUPP;
|
|||
|
|
|||
|
#define CallTimerProc(userRoutine, tmTaskPtr) \
|
|||
|
(*userRoutine)()
|
|||
|
#define NewTimerProc(userRoutine) \
|
|||
|
(TimerUPP) (userRoutine)
|
|||
|
#endif
|
|||
|
|
|||
|
#define kTMTaskActive (1<<15) /* high bit of qType is set if task is active */
|
|||
|
|
|||
|
struct TMTask {
|
|||
|
QElemPtr qLink;
|
|||
|
short qType;
|
|||
|
TimerUPP tmAddr;
|
|||
|
long tmCount;
|
|||
|
long tmWakeUp;
|
|||
|
long tmReserved;
|
|||
|
};
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
extern "C" {
|
|||
|
#endif
|
|||
|
#pragma parameter InsTime(__A0)
|
|||
|
pascal void InsTime(QElemPtr tmTaskPtr)
|
|||
|
= 0xA058;
|
|||
|
#pragma parameter InsXTime(__A0)
|
|||
|
pascal void InsXTime(QElemPtr tmTaskPtr)
|
|||
|
= 0xA458;
|
|||
|
#pragma parameter PrimeTime(__A0,__D0)
|
|||
|
pascal void PrimeTime(QElemPtr tmTaskPtr,long count)
|
|||
|
= 0xA05A;
|
|||
|
#pragma parameter RmvTime(__A0)
|
|||
|
pascal void RmvTime(QElemPtr tmTaskPtr)
|
|||
|
= 0xA059;
|
|||
|
#ifdef __cplusplus
|
|||
|
}
|
|||
|
#endif
|
|||
|
|
|||
|
#endif
|