mirror of
https://github.com/elliotnunn/BuildCubeE.git
synced 2026-01-23 04:16:18 +00:00
262 lines
6.8 KiB
C
262 lines
6.8 KiB
C
/************************************************************
|
|
|
|
Created: Sunday, January 6, 1991 at 9:34 PM
|
|
OSUtils.h
|
|
C Interface to the Macintosh Libraries
|
|
|
|
|
|
Copyright Apple Computer, Inc. 1985-1990
|
|
All rights reserved
|
|
|
|
************************************************************/
|
|
|
|
|
|
#ifndef __OSUTILS__
|
|
#define __OSUTILS__
|
|
|
|
#ifndef __TYPES__
|
|
#include <Types.h>
|
|
#endif
|
|
|
|
|
|
enum {
|
|
|
|
useFree = 0,
|
|
useATalk = 1,
|
|
useAsync = 2,
|
|
useExtClk = 3, /*Externally clocked*/
|
|
useMIDI = 4,
|
|
|
|
/**** Environs Equates ****/
|
|
curSysEnvVers = 2, /*Updated to equal latest SysEnvirons version*/
|
|
|
|
/* Machine Types */
|
|
envMac = -1,
|
|
envXL = -2,
|
|
envMachUnknown = 0,
|
|
env512KE = 1,
|
|
envMacPlus = 2,
|
|
envSE = 3,
|
|
envMacII = 4,
|
|
envMacIIx = 5,
|
|
envMacIIcx = 6,
|
|
envSE30 = 7,
|
|
envPortable = 8,
|
|
envMacIIci = 9,
|
|
envMacIIfx = 11,
|
|
|
|
/* CPU types */
|
|
envCPUUnknown = 0
|
|
};
|
|
enum {
|
|
env68000 = 1,
|
|
env68010 = 2,
|
|
env68020 = 3,
|
|
env68030 = 4,
|
|
env68040 = 5,
|
|
|
|
/* Keyboard types */
|
|
envUnknownKbd = 0,
|
|
envMacKbd = 1,
|
|
envMacAndPad = 2,
|
|
envMacPlusKbd = 3,
|
|
envAExtendKbd = 4,
|
|
envStandADBKbd = 5,
|
|
envPrtblADBKbd = 6,
|
|
envPrtblISOKbd = 7,
|
|
envStdISOADBKbd = 8,
|
|
envExtISOADBKbd = 9,
|
|
false32b = 0, /*24 bit addressing error*/
|
|
true32b = 1, /*32 bit addressing error*/
|
|
|
|
/* result types for RelString Call */
|
|
sortsBefore = -1, /*first string < second string*/
|
|
sortsEqual = 0, /*first string = second string*/
|
|
sortsAfter = 1 /*first string > second string*/
|
|
};
|
|
|
|
|
|
enum {dummyType,vType,ioQType,drvQType,evType,fsQType,sIQType,dtQType};
|
|
typedef unsigned short QTypes;
|
|
|
|
enum {OSTrap,ToolTrap};
|
|
typedef unsigned char TrapType;
|
|
|
|
|
|
struct SysParmType {
|
|
char valid;
|
|
char aTalkA;
|
|
char aTalkB;
|
|
char config;
|
|
short portA;
|
|
short portB;
|
|
long alarm;
|
|
short font;
|
|
short kbdPrint;
|
|
short volClik;
|
|
short misc;
|
|
};
|
|
|
|
typedef struct SysParmType SysParmType;
|
|
typedef SysParmType *SysPPtr;
|
|
|
|
struct QElem {
|
|
struct QElem *qLink;
|
|
short qType;
|
|
short qData[1];
|
|
};
|
|
|
|
typedef struct QElem QElem;
|
|
typedef QElem *QElemPtr;
|
|
|
|
struct QHdr {
|
|
short qFlags;
|
|
QElemPtr qHead;
|
|
QElemPtr qTail;
|
|
};
|
|
|
|
typedef struct QHdr QHdr;
|
|
typedef QHdr *QHdrPtr;
|
|
|
|
struct DateTimeRec {
|
|
short year;
|
|
short month;
|
|
short day;
|
|
short hour;
|
|
short minute;
|
|
short second;
|
|
short dayOfWeek;
|
|
};
|
|
|
|
typedef struct DateTimeRec DateTimeRec;
|
|
|
|
struct SysEnvRec {
|
|
short environsVersion;
|
|
short machineType;
|
|
short systemVersion;
|
|
short processor;
|
|
Boolean hasFPU;
|
|
Boolean hasColorQD;
|
|
short keyBoardType;
|
|
short atDrvrVersNum;
|
|
short sysVRefNum;
|
|
};
|
|
|
|
typedef struct SysEnvRec SysEnvRec;
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#define GetSysPPtr() ((SysPPtr) 0x01F8)
|
|
pascal void SysBeep(short duration)
|
|
= 0xA9C8;
|
|
pascal long KeyTrans(const void *transData,short keycode,long *state)
|
|
= 0xA9C3;
|
|
#pragma parameter __D0 DTInstall(__A0)
|
|
pascal OSErr DTInstall(QElemPtr dtTaskPtr)
|
|
= 0xA082;
|
|
#define GetMMUMode() (* (char*) 0x0CB2)
|
|
#pragma parameter SwapMMUMode(__A0)
|
|
pascal void SwapMMUMode(char *mode)
|
|
= {0x1010,0xA05D,0x1080};
|
|
#if SystemSixOrLater
|
|
#pragma parameter __D0 SysEnvirons(__D0,__A0)
|
|
pascal OSErr SysEnvirons(short versionRequested,SysEnvRec *theWorld)
|
|
= 0xA090;
|
|
#else
|
|
pascal OSErr SysEnvirons(short versionRequested,SysEnvRec *theWorld);
|
|
#endif
|
|
#pragma parameter __D0 ReadDateTime(__A0)
|
|
pascal OSErr ReadDateTime(unsigned long *time)
|
|
= 0xA039;
|
|
#pragma parameter GetDateTime(__A0)
|
|
pascal void GetDateTime(unsigned long *secs)
|
|
= {0x20B8,0x020C};
|
|
#pragma parameter __D0 SetDateTime(__D0)
|
|
pascal OSErr SetDateTime(unsigned long time)
|
|
= 0xA03A;
|
|
#pragma parameter SetTime(__A0)
|
|
pascal void SetTime(const DateTimeRec *d)
|
|
= {0xA9C7,0xA03A};
|
|
#pragma parameter GetTime(__A0)
|
|
pascal void GetTime(DateTimeRec *d)
|
|
= {0x2038,0x020C,0xA9C6};
|
|
pascal void Date2Secs(const DateTimeRec *d,unsigned long *secs);
|
|
#pragma parameter Secs2Date(__D0,__A0)
|
|
pascal void Secs2Date(unsigned long secs,DateTimeRec *d)
|
|
= 0xA9C6;
|
|
#pragma parameter Delay(__A0,__A1)
|
|
pascal void Delay(long numTicks,long *finalTicks)
|
|
= {0xA03B,0x2280};
|
|
#pragma parameter __A0 GetTrapAddress(__D0)
|
|
pascal long GetTrapAddress(short trapNum)
|
|
= 0xA146;
|
|
#pragma parameter SetTrapAddress(__A0,__D0)
|
|
pascal void SetTrapAddress(long trapAddr,short trapNum)
|
|
= 0xA047;
|
|
pascal long NGetTrapAddress(short trapNum,TrapType tTyp);
|
|
pascal void NSetTrapAddress(long trapAddr,short trapNum,TrapType tTyp);
|
|
#pragma parameter __A0 GetOSTrapAddress(__D0)
|
|
pascal long GetOSTrapAddress(short trapNum)
|
|
= 0xA346;
|
|
#pragma parameter SetOSTrapAddress(__A0,__D0)
|
|
pascal void SetOSTrapAddress(long trapAddr,short trapNum)
|
|
= 0xA247;
|
|
#pragma parameter __A0 GetToolTrapAddress(__D0)
|
|
pascal long GetToolTrapAddress(short trapNum)
|
|
= 0xA746;
|
|
#pragma parameter SetToolTrapAddress(__A0,__D0)
|
|
pascal void SetToolTrapAddress(long trapAddr,short trapNum)
|
|
= 0xA647;
|
|
#pragma parameter __A0 GetToolboxTrapAddress(__D0)
|
|
pascal long GetToolboxTrapAddress(short trapNum)
|
|
= 0xA746;
|
|
#pragma parameter SetToolboxTrapAddress(__A0,__D0)
|
|
pascal void SetToolboxTrapAddress(long trapAddr,short trapNum)
|
|
= 0xA647;
|
|
pascal OSErr WriteParam(void);
|
|
pascal Boolean EqualString(ConstStr255Param str1,ConstStr255Param str2,
|
|
Boolean caseSens,Boolean diacSens);
|
|
Boolean equalstring(char *str1,char *str2,Boolean caseSens,Boolean diacSens);
|
|
pascal void UprString(Str255 theString,Boolean diacSens);
|
|
void uprstring(char *theString,Boolean diacSens);
|
|
#pragma parameter Enqueue(__A0,__A1)
|
|
pascal void Enqueue(QElemPtr qElement,QHdrPtr qHeader)
|
|
= 0xA96F;
|
|
#pragma parameter __D0 Dequeue(__A0,__A1)
|
|
pascal OSErr Dequeue(QElemPtr qElement,QHdrPtr qHeader)
|
|
= 0xA96E;
|
|
long SetCurrentA5(void)
|
|
= {0x200D,0x2A78,0x0904};
|
|
#pragma parameter __D0 SetA5(__D0)
|
|
long SetA5(long newA5)
|
|
= 0xC18D;
|
|
pascal void Environs(short *rom,short *machine);
|
|
pascal short RelString(ConstStr255Param str1,ConstStr255Param str2,Boolean caseSens,
|
|
Boolean diacSens);
|
|
short relstring(char *str1,char *str2,Boolean caseSens,Boolean diacSens);
|
|
pascal OSErr HandToHand(Handle *theHndl);
|
|
#pragma parameter __D0 PtrToXHand(__A0,__A1,__D0)
|
|
pascal OSErr PtrToXHand(const void *srcPtr,Handle dstHndl,long size)
|
|
= 0xA9E2;
|
|
pascal OSErr PtrToHand(const void *srcPtr,Handle *dstHndl,long size);
|
|
#pragma parameter __D0 HandAndHand(__A0,__A1)
|
|
pascal OSErr HandAndHand(Handle hand1,Handle hand2)
|
|
= 0xA9E4;
|
|
#pragma parameter __D0 PtrAndHand(__A0,__A1,__D0)
|
|
pascal OSErr PtrAndHand(const void *ptr1,Handle hand2,long size)
|
|
= 0xA9EF;
|
|
#pragma parameter __D0 InitUtil
|
|
pascal OSErr InitUtil(void)
|
|
= 0xA03F;
|
|
pascal Boolean SwapInstructionCache(Boolean cacheEnable);
|
|
pascal void FlushInstructionCache(void);
|
|
pascal Boolean SwapDataCache(Boolean cacheEnable);
|
|
pascal void FlushDataCache(void);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|