mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-25 09:30:50 +00:00
66 lines
1.2 KiB
C
66 lines
1.2 KiB
C
|
/*
|
||
|
File: M68K.h
|
||
|
|
||
|
Contains: M680x0 macros and inline functions
|
||
|
|
||
|
Written by: Craig Prouse
|
||
|
|
||
|
Copyright: © 1993 by Apple Computer, Inc., all rights reserved.
|
||
|
|
||
|
Change History (most recent first):
|
||
|
|
||
|
<1> 11/10/93 fau first checked in
|
||
|
<SMG2> 10/26/93 chp Added an inline NOP function. This corresponds to a PowerPC
|
||
|
EIEIO under 68K emulation.
|
||
|
<1> 8/30/93 chp first checked in
|
||
|
|
||
|
*/
|
||
|
|
||
|
#ifndef __M68K__
|
||
|
#define __M68K__
|
||
|
|
||
|
|
||
|
#ifdef m68k
|
||
|
|
||
|
// WARNING: Items defined in this file are not portable. Inclusion of this file has no
|
||
|
// effect unless compiling with the MPW 68K C compiler, which predefines the m68k flag.
|
||
|
|
||
|
|
||
|
typedef unsigned short StatusRegister;
|
||
|
typedef void *AddressRegister;
|
||
|
|
||
|
|
||
|
#pragma parameter __D0 GetA0
|
||
|
AddressRegister GetA0 (void) =
|
||
|
{
|
||
|
0x2008 // MOVE.L A0,D0
|
||
|
};
|
||
|
|
||
|
#pragma parameter __D0 GetA1
|
||
|
AddressRegister GetA1 (void) =
|
||
|
{
|
||
|
0x2009 // MOVE.L A1,D0
|
||
|
};
|
||
|
|
||
|
#pragma parameter __D0 DisableInterrupts
|
||
|
StatusRegister DisableInterrupts (void) =
|
||
|
{
|
||
|
0x40C0, // MOVE SR,D0
|
||
|
0x007C, 0x0700 // ORI #$0700,SR
|
||
|
};
|
||
|
|
||
|
#pragma parameter RestoreStatusRegister (__D0)
|
||
|
void RestoreStatusRegister (StatusRegister) =
|
||
|
{
|
||
|
0x46C0 // MOVE D0,SR
|
||
|
};
|
||
|
|
||
|
void NOP (void) =
|
||
|
{
|
||
|
0x4E71 // NOP
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif m68k
|
||
|
#endif __M68K__
|