mirror of
https://github.com/elliotnunn/sys7.1-doc-wip.git
synced 2025-01-13 17:30:09 +00:00
happy commit
This commit is contained in:
parent
33cd9271f4
commit
2e2dcbd827
@ -1,3 +1,10 @@
|
||||
#
|
||||
# Hacks to match MacOS (most recent first):
|
||||
#
|
||||
# <Sys7.1> 8/3/92 Added rule to build .Display_Video_Apple_TFB DRVR from TFBDriver.a
|
||||
# 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
#
|
||||
|
||||
#
|
||||
# File: VideoDrivers.make
|
||||
#
|
||||
@ -358,6 +365,10 @@ VideoDriverObjs = "{ObjDir}JMFBDriver.a.o" ∂
|
||||
"{IntAIncludes}ComVideoEqu.a"
|
||||
Asm {StdAOpts} -o "{Targ}" "{VideoDriverDir}TFBDriver.a"
|
||||
|
||||
# <Sys7.1>
|
||||
"{RsrcDir}TFBDriver.a.rsrc" ƒ "{ObjDir}TFBDriver.a.o"
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} "{ObjDir}TFBDriver.a.o"
|
||||
|
||||
|
||||
"{ObjDir}TFBPrimaryInit.a.o" ƒ "{VideoDriverDir}TFBDepVideoEqu.a" ∂
|
||||
"{VideoDriverDir}TFBPrimaryInit.a" ∂
|
||||
|
@ -1,3 +1,11 @@
|
||||
#
|
||||
# Hacks to match MacOS (most recent first):
|
||||
#
|
||||
# <Sys7.1> 8/3/92 Restored missing source files to the Backlight DRVR build
|
||||
# Made build rule for linked patch file backlightpatch.a
|
||||
# 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
#
|
||||
|
||||
#
|
||||
# File: Backlight.make
|
||||
#
|
||||
@ -20,13 +28,20 @@
|
||||
# Backlight driver
|
||||
|
||||
BL_DRVR_OBJ = "{ObjDir}backlight.c.o" ∂
|
||||
"{ObjDir}backlight.a.o"
|
||||
"{ObjDir}backlight.a.o" ∂
|
||||
"{ObjDir}pwm.c.o" # <Sys7.1> ∂
|
||||
"{ObjDir}register.c.o" # <Sys7.1> ∂
|
||||
"{CLibraries}StdCLib.o" # <Sys7.1>
|
||||
|
||||
"{ObjDir}backlight.a.o" ƒ "{AIncludes}SysEqu.a" ∂
|
||||
"{AIncludes}SysErr.a" ∂
|
||||
"{BackLightDir}backlight.a"
|
||||
Asm -o {Targ} "{BackLightDir}backlight.a" {StdAOpts}
|
||||
|
||||
# <Sys7.1>
|
||||
"{ObjDir}backlightpatch.a.o" ƒ "{BackLightDir}backlightpatch.a"
|
||||
Asm -o {Targ} "{BackLightDir}backlightpatch.a" {StdAOpts}
|
||||
|
||||
"{ObjDir}backlight.c.o" ƒ "{BackLightDir}backlight.h" ∂
|
||||
"{BackLightDir}PowerMgr.h" ∂
|
||||
"{CIncludes}SysEqu.h" ∂
|
||||
|
@ -1,3 +1,13 @@
|
||||
/*
|
||||
Hacks to match MacOS (most recent first):
|
||||
|
||||
<Sys7.1> 8/3/92 Reverted Horror and SuperMario changes
|
||||
Brought Get_AtoD/Get_PGEButton/GetPortableValues/PotControl back from backlightinput.c
|
||||
Recreated PWMStatus (similar code to PWMControl)
|
||||
Reduced the amount of indirection through global procedure pointers
|
||||
9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
*/
|
||||
|
||||
/*
|
||||
File: PWM.c
|
||||
|
||||
@ -78,30 +88,86 @@
|
||||
#include "PowerMgr.h"
|
||||
#include "backlight.h"
|
||||
|
||||
/* <Sys7.1> copied from backlightcpu.c */
|
||||
#define BACKLIGHT_POT_CHANNEL 0
|
||||
#define STATUS 0
|
||||
#define POWERBYTE 1
|
||||
#define TEMPBYTE 2
|
||||
|
||||
/* <Sys7.1> reclaimed from backlightinput.c */
|
||||
#define READ_ATOD_CHANNEL 0xD8
|
||||
#define READ_BUTTON_VALUE 0xD9
|
||||
extern short PotInputRangeShiftTblPWM[];
|
||||
|
||||
/* <Sys7.1> enable access to these assembly "procedures" (really tables) */
|
||||
extern unsigned char timTblLow[];
|
||||
extern unsigned char timTbl[];
|
||||
extern unsigned char asahiTbl[];
|
||||
extern short PWMMaxTbl[];
|
||||
|
||||
/*page
|
||||
***************************************************************************************************
|
||||
** PWM software ***********************************************************************************
|
||||
***************************************************************************************************
|
||||
*/
|
||||
|
||||
OSErr InitPWMControls(driverGlobalPtr globalPtr)
|
||||
/* <Sys7.1> don't return OSErr */
|
||||
/* <Sys7.1> reverted to old-style tables despite <H8> */
|
||||
void InitPWMControls(driverGlobalPtr globalPtr)
|
||||
|
||||
{
|
||||
unsigned int startvalue;
|
||||
int boxFlag;
|
||||
|
||||
/* <Sys7.1> setup default values */
|
||||
globalPtr->flyByWire = true;
|
||||
globalPtr->freeflag = true;
|
||||
globalPtr->dualTable = true;
|
||||
globalPtr->userInputSampleRate = 10;
|
||||
globalPtr->maximumTable = &PWMMaxTbl;
|
||||
globalPtr->settingTableLow = &timTblLow;
|
||||
globalPtr->settingTable = globalPtr->settingTableHigh = &timTbl;
|
||||
|
||||
/* <Sys7.1> override for some specific machines */
|
||||
boxFlag = *(unsigned char *)0xCB3;
|
||||
switch (boxFlag)
|
||||
{
|
||||
case 18: // PowerBook 100, Asahi
|
||||
globalPtr->freeflag = false;
|
||||
globalPtr->dualTable = false;
|
||||
globalPtr->settingTable = &asahiTbl;
|
||||
break;
|
||||
case 15: // PowerBook 170, TIM
|
||||
if (*JAWS_SPEED_FSTN_REG_PTR & JAWS_FSTN)
|
||||
globalPtr->dualTable = false;
|
||||
break;
|
||||
}
|
||||
|
||||
/* initialize dual table variables */
|
||||
if (globalPtr->dualTable)
|
||||
{
|
||||
globalPtr->slewLimit = true; /* maximum change per/accrun */
|
||||
(*globalPtr->tableProc)(globalPtr); /* determine table based on current charger state */
|
||||
|
||||
/* <Sys7.1> determine table directly instead of using a tableProc */
|
||||
globalPtr->lowThreshold = 163;
|
||||
globalPtr->hiThreshold = 173;
|
||||
globalPtr->tableProc = ChargerAdjust;
|
||||
globalPtr->lowTable = LowTable(globalPtr);
|
||||
if (globalPtr->lowTable)
|
||||
globalPtr->settingTable = globalPtr->settingTableLow;
|
||||
};
|
||||
|
||||
/* initialize backlight hardware */
|
||||
startvalue = (*globalPtr->userInputProc)(globalPtr); /* <H8> */
|
||||
globalPtr->userBrightness = -1;
|
||||
globalPtr->userBrightness = (*globalPtr->setlevelproc)(startvalue,globalPtr); /* <H8> */
|
||||
/* <Sys7.1> not really sure why these procs weren't being set */
|
||||
globalPtr->setlevelproc = SetPWM;
|
||||
globalPtr->userInputProc = PotControl;
|
||||
globalPtr->closeProc = PWMCloseRoutine;
|
||||
globalPtr->controlProc = PWMControl;
|
||||
globalPtr->statusProc = PWMStatus;
|
||||
|
||||
return(noErr);
|
||||
/* initialize backlight hardware */
|
||||
startvalue = PotControl(globalPtr); /* <H8> */
|
||||
globalPtr->userBrightness = -1;
|
||||
globalPtr->userBrightness = SetPWM(startvalue,globalPtr); /* <H8> */
|
||||
};
|
||||
|
||||
/*
|
||||
@ -113,10 +179,155 @@ OSErr InitPWMControls(driverGlobalPtr globalPtr)
|
||||
int PWMCloseRoutine (driverGlobalPtr globalPtr)
|
||||
|
||||
{
|
||||
(*globalPtr->setlevelproc)(globalPtr->settingTable->minimum,globalPtr);
|
||||
SetPWM(0,globalPtr); /* <Sys7.1> no global setlevelproc */
|
||||
return(0);
|
||||
};
|
||||
|
||||
/*
|
||||
***************************************************************************************************
|
||||
*
|
||||
*
|
||||
***************************************************************************************************
|
||||
*/
|
||||
|
||||
/* <Sys7.1> moved from bottom of file and edited */
|
||||
/* <Sys7.1> reverted to old-style tables despite <H8> */
|
||||
int SetPWM(int new,driverGlobalPtr globalPtr)
|
||||
{
|
||||
PMgrPBlock pb; /* power manager pb */
|
||||
unsigned char val; /* hardware value setting */
|
||||
|
||||
PEG_TO_LIMITS(new, globalPtr->maximumTable[globalPtr->powerRange], 0); /* <H8> use new tables */ /* limit value to valid range */
|
||||
val = globalPtr->settingTable[new]; /* look up value from table */
|
||||
|
||||
if ((globalPtr->userBrightness >= 0) && (val == globalPtr->lastHWSetting)) return(new);/* nothing to do; 90/05/15 just turn on; 90/07/02 avoid touching */
|
||||
if (globalPtr->slewChange)
|
||||
{
|
||||
if (abs(globalPtr->lastHWSetting - val) > globalPtr->slewLimit)
|
||||
val = globalPtr->lastHWSetting + ((globalPtr->lastHWSetting > val) ? -globalPtr->slewLimit : globalPtr->slewLimit);
|
||||
else
|
||||
globalPtr->slewChange = false;
|
||||
};
|
||||
globalPtr->lastHWSetting = val; /* save the new hardware setting */
|
||||
|
||||
pb.pmgrCmd = ScreenSetCmd; /* <Sys7.1> don't do what they do */ /* everyone else uses "set brightness" */
|
||||
pb.pmgrCnt = 1;
|
||||
pb.pmgrXPtr = &val;
|
||||
pb.pmgrRPtr = nil;
|
||||
PMgr(&pb); /* set the pwm */
|
||||
|
||||
return(new); /* return the current value */
|
||||
};
|
||||
|
||||
/*page
|
||||
***************************************************************************************************
|
||||
*
|
||||
*
|
||||
***************************************************************************************************
|
||||
*/
|
||||
|
||||
/* <Sys7.1> verbatim from backlightinput.c */
|
||||
unsigned char Get_AtoD(int channel)
|
||||
{
|
||||
PMgrPBlock pb; /* power manager pb */
|
||||
char atodChannel; /* a to d channel to read [0-8] */
|
||||
unsigned char value; /* return value */
|
||||
OSErr error; /* pmgr error */
|
||||
|
||||
|
||||
atodChannel = channel; /* load channel value into buffer */
|
||||
|
||||
pb.pmgrCmd = READ_ATOD_CHANNEL; /* load read channel command */
|
||||
pb.pmgrCnt = 1; /* transmit buffer count is 1 byte */
|
||||
pb.pmgrXPtr = &atodChannel; /* pointer to transmit buffer */
|
||||
pb.pmgrRPtr = &value; /* pointer to receive buffer */
|
||||
|
||||
error = PMgr(&pb);
|
||||
|
||||
return( (error) ? 0 : value);
|
||||
};
|
||||
|
||||
/*page
|
||||
***************************************************************************************************
|
||||
*
|
||||
*
|
||||
***************************************************************************************************
|
||||
*/
|
||||
|
||||
/* <Sys7.1> verbatim from backlightinput.c */
|
||||
unsigned char Get_PGEButton(int channel)
|
||||
{
|
||||
PMgrPBlock pb; /* power manager pb */
|
||||
char atodChannel; /* a to d channel to read [0-8] */
|
||||
unsigned char value; /* return value */
|
||||
OSErr error; /* pmgr error */
|
||||
|
||||
|
||||
atodChannel = channel; /* load channel value into buffer */
|
||||
|
||||
pb.pmgrCmd = READ_BUTTON_VALUE; /* load read channel command */
|
||||
pb.pmgrCnt = 1; /* transmit buffer count is 1 byte */
|
||||
pb.pmgrXPtr = &atodChannel; /* pointer to transmit buffer */
|
||||
pb.pmgrRPtr = &value; /* pointer to receive buffer */
|
||||
|
||||
error = PMgr(&pb);
|
||||
|
||||
return( (error) ? 0 : value);
|
||||
};
|
||||
|
||||
/*page
|
||||
***************************************************************************************************
|
||||
*
|
||||
*
|
||||
***************************************************************************************************
|
||||
*/
|
||||
/* <Sys7.1> verbatim from backlightinput.c */
|
||||
unsigned char GetPortableValues(int parameter)
|
||||
{
|
||||
|
||||
PMgrPBlock pb; /* power manager pb */
|
||||
OSErr err; /* power manager error */
|
||||
unsigned char rbuf[3]; /* buffer for send command */
|
||||
|
||||
pb.pmgrCmd = BatteryStatusImmCmd; /* on old pmgr, read battery status (immediate not averaged) */
|
||||
pb.pmgrCnt = 0;
|
||||
pb.pmgrXPtr = nil;
|
||||
pb.pmgrRPtr = rbuf;
|
||||
|
||||
err = PMgr(&pb);
|
||||
return( (err) ? 0 : rbuf[parameter]); /* return 0 if error, else read value */
|
||||
}
|
||||
|
||||
/*page
|
||||
***************************************************************************************************
|
||||
*
|
||||
*
|
||||
***************************************************************************************************
|
||||
*/
|
||||
/* <Sys7.1> modified from backlightinput.c */
|
||||
int PotControl (driverGlobalPtr globalPtr)
|
||||
|
||||
{
|
||||
#pragma unused (globalPtr)
|
||||
|
||||
unsigned int potvalue;
|
||||
|
||||
/* <Sys7.1> no proc for this in driver globals */
|
||||
potvalue = globalPtr->freeflag ? Get_AtoD(BACKLIGHT_POT_CHANNEL) : GetPortableValues(TEMPBYTE);
|
||||
|
||||
if (abs(globalPtr->lastatod - potvalue) <= 5) /* was the change less than 100mv */
|
||||
potvalue = globalPtr->lastatod; /* is less than, the use old value */
|
||||
|
||||
globalPtr->lastatod = potvalue; /* update last a to d value */
|
||||
potvalue >>= 3; /* scale to 0 to 31 */
|
||||
if (potvalue) /* if non-zero, check for subrange limiting */
|
||||
{
|
||||
potvalue >>= PotInputRangeShiftTblPWM[globalPtr->powerRange]; /* rescale in low power levels */
|
||||
if (!potvalue) potvalue = 1; /* make sure we don't change the backlight state */
|
||||
};
|
||||
return(potvalue);
|
||||
};
|
||||
|
||||
/*page
|
||||
***************************************************************************************************
|
||||
*
|
||||
@ -144,7 +355,7 @@ OSErr PWMControl(CntrlParam *ctlPB,driverGlobalPtr globalPtr) /* 'open' entry p
|
||||
{
|
||||
case kSetScreenBrightness: /* set brightness level */
|
||||
tempvalue = ctlPB->csParam[0];
|
||||
globalPtr->userBrightness = (*globalPtr->setlevelproc)(tempvalue,globalPtr);
|
||||
globalPtr->userBrightness = SetPWM(tempvalue,globalPtr); /* <Sys7.1> no proc for this in driver globals */
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -154,37 +365,44 @@ OSErr PWMControl(CntrlParam *ctlPB,driverGlobalPtr globalPtr) /* 'open' entry p
|
||||
return(error);
|
||||
};
|
||||
|
||||
/*
|
||||
/*page
|
||||
***************************************************************************************************
|
||||
*
|
||||
* The status routine…
|
||||
*
|
||||
* return:
|
||||
* noErr - task completed successfully
|
||||
* statusErr - illegal status selector
|
||||
*
|
||||
*
|
||||
***************************************************************************************************
|
||||
*/
|
||||
|
||||
int SetPWM(int new,driverGlobalPtr globalPtr)
|
||||
/* <Sys7.1> recreated from scratch */
|
||||
OSErr PWMStatus(CntrlParam *ctlPB,driverGlobalPtr globalPtr)
|
||||
{
|
||||
PMgrPBlock pb; /* power manager pb */
|
||||
unsigned char val; /* hardware value setting */
|
||||
OSErr error;
|
||||
|
||||
PEG_TO_LIMITS(new, globalPtr->maximumTable[globalPtr->powerRange], globalPtr->settingTable->minimum); /* <H8> use new tables */ /* limit value to valid range */
|
||||
val = globalPtr->settingTable->table[new]; /* look up value from table */
|
||||
error = noErr;
|
||||
|
||||
if ((globalPtr->userBrightness >= 0) && (val == globalPtr->lastHWSetting)) return(new);/* nothing to do; 90/05/15 just turn on; 90/07/02 avoid touching */
|
||||
if (globalPtr->slewChange)
|
||||
switch(ctlPB->csCode)
|
||||
{
|
||||
if (abs(globalPtr->lastHWSetting - val) > globalPtr->slewLimit)
|
||||
val = globalPtr->lastHWSetting + ((globalPtr->lastHWSetting > val) ? -globalPtr->slewLimit : globalPtr->slewLimit);
|
||||
else
|
||||
globalPtr->slewChange = false;
|
||||
case kGetScreenBrightness: /* get brightness level */
|
||||
ctlPB->csParam[0] = globalPtr->userBrightness;
|
||||
break;
|
||||
|
||||
case kGetBrightnessRange:
|
||||
ctlPB->csParam[0] = 31;
|
||||
ctlPB->csParam[1] = 0;
|
||||
break;
|
||||
|
||||
case kGetMaximum:
|
||||
ctlPB->csParam[0] = globalPtr->maximumTable[globalPtr->powerRange];
|
||||
break;
|
||||
|
||||
default:
|
||||
error = statusErr;
|
||||
};
|
||||
globalPtr->lastHWSetting = val; /* save the new hardware setting */
|
||||
|
||||
pb.pmgrCmd = SetBrightnessCmd; /* everyone else uses "set brightness" */
|
||||
pb.pmgrCnt = 1;
|
||||
pb.pmgrXPtr = &val;
|
||||
pb.pmgrRPtr = nil;
|
||||
PMgr(&pb); /* set the pwm */
|
||||
|
||||
return(new); /* return the current value */
|
||||
};
|
||||
|
||||
return(error);
|
||||
}
|
||||
|
@ -1,3 +1,11 @@
|
||||
/*
|
||||
Hacks to match MacOS (most recent first):
|
||||
|
||||
<Sys7.1> 8/3/92 Reverted Horror and SuperMario changes
|
||||
Brought ChargerAdjust/LowTable back from backlight.c
|
||||
9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
*/
|
||||
|
||||
/*
|
||||
File: register.c
|
||||
|
||||
@ -117,7 +125,10 @@ typedef struct
|
||||
char keymodifiers;
|
||||
short unused;
|
||||
} posteventtype, *posteventtypeptr;
|
||||
extern setTableType PortableTbl5V;
|
||||
extern posteventtype postEventData;
|
||||
extern unsigned char PortableTbl5V[];
|
||||
extern unsigned char PortableTable7V[];
|
||||
extern short PortableMaxTbl[];
|
||||
|
||||
int GetBacklightInfo(short mask, short shift);
|
||||
void SaveBacklightInfo(short new,short mask, short shift);
|
||||
@ -125,23 +136,86 @@ void SaveBacklightInfo(short new,short mask, short shift);
|
||||
TurnOnOff(Boolean on);
|
||||
setNewKeys(int keycombo);
|
||||
|
||||
/*page
|
||||
***************************************************************************************************
|
||||
*
|
||||
*
|
||||
***************************************************************************************************
|
||||
*/
|
||||
/* <Sys7.1> verbatim from backlight.c */
|
||||
void ChargerAdjust (driverGlobalPtr globalPtr)
|
||||
{
|
||||
unsigned int oldTable;
|
||||
|
||||
oldTable = globalPtr->lowTable; /* save the current table being used */
|
||||
globalPtr->lowTable = LowTable(globalPtr); /* get the new table to use */
|
||||
if (globalPtr->lowTable == oldTable) return; /* are we changing tables ???, no exit */
|
||||
|
||||
globalPtr->slewChange = true; /* if change, set tmp slew on */
|
||||
globalPtr->settingTable = globalPtr->lowTable ? globalPtr->settingTableLow :globalPtr->settingTableHigh ;
|
||||
};
|
||||
|
||||
/*page
|
||||
***************************************************************************************************
|
||||
*
|
||||
*
|
||||
***************************************************************************************************
|
||||
*/
|
||||
/* <Sys7.1> verbatim from backlight.c */
|
||||
unsigned int LowTable (driverGlobalPtr globalPtr)
|
||||
|
||||
{
|
||||
PmgrGlobals **pmgrglobalhdl; /* handle to power manager globals */
|
||||
Boolean wasLowTable; /* current table being used */
|
||||
Boolean hiTable; /* use hi level table now */
|
||||
|
||||
pmgrglobalhdl = (PmgrGlobals **) 0x0D18; /* handle to power manager globals */
|
||||
|
||||
wasLowTable = globalPtr->lowTable; /* current table */
|
||||
hiTable = false; /* assume low table */
|
||||
if ((wasLowTable && ((*pmgrglobalhdl)->BatAvg >= globalPtr->hiThreshold)) ||
|
||||
(!wasLowTable && ((*pmgrglobalhdl)->BatAvg >= globalPtr->lowThreshold)))
|
||||
{
|
||||
hiTable = (*pmgrglobalhdl)->Charger & 0x01; /* qualify table with charger */
|
||||
};
|
||||
return(hiTable ? 0 : 1); /* return 1 if low table, 0 if high */
|
||||
};
|
||||
|
||||
/*page
|
||||
***************************************************************************************************
|
||||
** Register control software **********************************************************************
|
||||
***************************************************************************************************
|
||||
*/
|
||||
|
||||
OSErr InitRegControls(driverGlobalPtr globalPtr)
|
||||
/* <Sys7.1> don't return OSErr */
|
||||
/* <Sys7.1> reverted to old-style tables despite <H3> */
|
||||
void InitRegControls(driverGlobalPtr globalPtr)
|
||||
|
||||
{
|
||||
int SetBrightness();
|
||||
int KbdControl();
|
||||
int RegisterClose();
|
||||
unsigned int pramBrightness;
|
||||
OSErr RegisterStatus(CntrlParam *, driverGlobalPtr);
|
||||
OSErr RegisterControl(CntrlParam *, driverGlobalPtr);
|
||||
int pramBrightness;
|
||||
void ShutdownBacklight();
|
||||
posteventtypeptr postdataptr;
|
||||
|
||||
|
||||
if (BACKLIGHTSIGREG & TABLE_5V) globalPtr->settingTable = &PortableTbl5V;
|
||||
postdataptr = &postEventData;
|
||||
postdataptr->keysActive = 0;
|
||||
postdataptr->keymodifiers = 0;
|
||||
|
||||
globalPtr->userInputSampleRate = 1;
|
||||
|
||||
globalPtr->settingTable = (BACKLIGHTSIGREG & TABLE_5V) ? PortableTbl5V : PortableTable7V;
|
||||
|
||||
globalPtr->maximumTable = &PortableMaxTbl;
|
||||
globalPtr->setlevelproc = SetBrightness;
|
||||
globalPtr->userInputProc = KbdControl;
|
||||
globalPtr->closeProc = RegisterClose;
|
||||
globalPtr->statusProc = RegisterStatus;
|
||||
globalPtr->controlProc = RegisterControl;
|
||||
|
||||
globalPtr->keycodes = GetPramKeyData();
|
||||
pramBrightness = GetPramBrightness(); /* get pram setting */
|
||||
@ -149,13 +223,14 @@ OSErr InitRegControls(driverGlobalPtr globalPtr)
|
||||
setNewKeys(globalPtr->keycodes);
|
||||
if (pramBrightness < 0) /* check for valid brightness value */
|
||||
{
|
||||
pramBrightness = globalPtr->settingTable->minimum+1; /* <H3> load default brightness */
|
||||
SaveBrightness(globalPtr->settingTable->minimum+1); /* <H3> validate, as save new brightness */
|
||||
pramBrightness = 1; /* <H3> load default brightness */
|
||||
SaveBrightness(1); /* <H3> validate, as save new brightness */
|
||||
};
|
||||
|
||||
|
||||
globalPtr->userBrightness = globalPtr->settingTable->maximum; /* <H3> */
|
||||
globalPtr->userBrightness = SetBrightness(globalPtr->settingTable->minimum,globalPtr); /* <H3> initialize pot */
|
||||
globalPtr->userBrightness = 30; /* <H3> */
|
||||
globalPtr->lastHWSetting = globalPtr->settingTable[30];
|
||||
globalPtr->userBrightness = SetBrightness(0,globalPtr); /* <H3> initialize pot */
|
||||
globalPtr->userBrightness = SetBrightness(pramBrightness,globalPtr); /* set brightness level */
|
||||
|
||||
if (BACKLIGHTSIGREG == BACKLIGHTSIG_UPGRD)
|
||||
@ -166,8 +241,6 @@ OSErr InitRegControls(driverGlobalPtr globalPtr)
|
||||
};
|
||||
|
||||
ShutDwnInstall( (ShutDwnProcPtr) ShutdownBacklight,sdRestartOrPower); /* install shutdown task */
|
||||
|
||||
return(noErr);
|
||||
};
|
||||
|
||||
/*page
|
||||
@ -266,6 +339,7 @@ TurnOnOff(Boolean on)
|
||||
*
|
||||
***************************************************************************************************
|
||||
*/
|
||||
/* <Sys7.1> reverted to old-style tables despite <H3> */
|
||||
int SetBrightness(int new, driverGlobalPtr globalPtr)
|
||||
{
|
||||
unsigned char regvalue;
|
||||
@ -274,20 +348,16 @@ int SetBrightness(int new, driverGlobalPtr globalPtr)
|
||||
char signature;
|
||||
Boolean onBitHigh;
|
||||
Boolean countDownBit;
|
||||
int current;
|
||||
unsigned char tablevalue;
|
||||
Boolean initialize;
|
||||
|
||||
|
||||
|
||||
initialize = (globalPtr->userBrightness < 0);
|
||||
PEG_TO_LIMITS(new, globalPtr->maximumTable[globalPtr->powerRange], globalPtr->settingTable->minimum); /* <H3> limit value to valid range */
|
||||
current = (initialize)
|
||||
? globalPtr->settingTable->minimum /* <H3> */
|
||||
: globalPtr->userBrightness;
|
||||
PEG_TO_LIMITS(new, globalPtr->maximumTable[globalPtr->powerRange], 0); /* <H3> limit value to valid range */
|
||||
|
||||
tablevalue = globalPtr->settingTable->table[new]; /* <H3> look up value from table */
|
||||
if (!initialize && (tablevalue == globalPtr->lastHWSetting) )
|
||||
tablevalue = globalPtr->settingTable[new]; /* <H3> look up value from table */
|
||||
if (tablevalue == globalPtr->lastHWSetting)
|
||||
return(new); /* nothing to do; 90/05/15 just turn on; 90/07/02 avoid touching */
|
||||
|
||||
/* setup control bits */
|
||||
@ -297,13 +367,13 @@ int SetBrightness(int new, driverGlobalPtr globalPtr)
|
||||
backlightreg = (Ptr) PORTABLE_HW;
|
||||
regvalue = COUNT_BIT + L_CS_BIT; /* start with count and CS inactive */
|
||||
|
||||
if ((onBitHigh && (new != globalPtr->settingTable->minimum)) || (!onBitHigh && (new == globalPtr->settingTable->minimum))) /* <H3> */
|
||||
if ((onBitHigh && new) || (!onBitHigh && !new)) /* <H3> */
|
||||
regvalue |= ON_BIT; /* upgrade has opposite polarity */
|
||||
|
||||
if ((countDownBit && (new <= current)) || (!countDownBit && (new >= current)))
|
||||
if ((countDownBit && (new <= globalPtr->userBrightness)) || (!countDownBit && (new >= globalPtr->userBrightness)))
|
||||
regvalue |= COUNTDN_BIT; /* set the count down bit if new > current */
|
||||
|
||||
strobes = (new == globalPtr->settingTable->minimum) /* <H3> */
|
||||
strobes = (new == 0) /* <H3> */
|
||||
? MAXSTROBECOUNT /* if minimum, bang against stops */
|
||||
: abs(globalPtr->lastHWSetting - tablevalue);
|
||||
|
||||
@ -407,11 +477,12 @@ int KbdControl (driverGlobalPtr globalPtr)
|
||||
*
|
||||
***************************************************************************************************
|
||||
*/
|
||||
/* <Sys7.1> reverted to old-style tables despite <H3> */
|
||||
int RegisterClose (driverGlobalPtr globalPtr)
|
||||
|
||||
{
|
||||
globalPtr->userBrightness = globalPtr->settingTable->maximum; /* <H3> */
|
||||
globalPtr->userBrightness = SetBrightness(globalPtr->settingTable->minimum,globalPtr); /* <H3> initialize pot */
|
||||
globalPtr->userBrightness = 30; /* <H3> */
|
||||
globalPtr->userBrightness = SetBrightness(0,globalPtr); /* <H3> initialize pot */
|
||||
|
||||
SleepQRemove(&globalPtr->sleepQelement); /* remove sleep task */
|
||||
ShutDwnRemove( (ShutDwnProcPtr) ShutdownBacklight); /* remove shutdown task */
|
||||
@ -445,7 +516,7 @@ OSErr RegisterControl(CntrlParam *ctlPB,driverGlobalPtr globalPtr) /* 'open' en
|
||||
{
|
||||
case kSetScreenBrightness: /* set brightness level */
|
||||
tempvalue = ctlPB->csParam[0];
|
||||
globalPtr->userBrightness = (*globalPtr->setlevelproc)(tempvalue,globalPtr);
|
||||
globalPtr->userBrightness = SetBrightness(tempvalue,globalPtr); /* <Sys7.1> no proc for this in driver globals */
|
||||
break;
|
||||
case kSaveScreenBrightness: /* save brightness level */
|
||||
SaveBrightness(globalPtr->userBrightness);
|
||||
@ -488,15 +559,25 @@ OSErr RegisterStatus(CntrlParam *ctlPB,driverGlobalPtr globalPtr) /* 'open' en
|
||||
error = noErr;
|
||||
switch(ctlPB->csCode)
|
||||
{
|
||||
case kGetScreenBrightness: /* <Sys7.1> */
|
||||
ctlPB->csParam[0] = globalPtr->userBrightness;
|
||||
break;
|
||||
case kGetBrightnessKeys: /* return current saved brightness */
|
||||
ctlPB->csParam[0] = globalPtr->keycodes;
|
||||
break;
|
||||
case kGetBrightnessRange: /* <Sys7.1> */
|
||||
ctlPB->csParam[0] = 30;
|
||||
ctlPB->csParam[1] = 0;
|
||||
break;
|
||||
case kGetPBacklight:
|
||||
ctlPB->csParam[0] = GetPramBrightness();
|
||||
break;
|
||||
case kGetPKey:
|
||||
ctlPB->csParam[0] = GetPramKeyData();
|
||||
break;
|
||||
case kGetMaximum: /* <Sys7.1> */
|
||||
ctlPB->csParam[0] = globalPtr->maximumTable[globalPtr->powerRange];
|
||||
break;
|
||||
|
||||
default:
|
||||
error = statusErr;
|
||||
@ -508,11 +589,15 @@ setNewKeys(int keycombo)
|
||||
|
||||
{
|
||||
char newKey;
|
||||
posteventtypeptr postdataptr;
|
||||
|
||||
newKey = 0;
|
||||
if (keycombo & 0x01) newKey |= 0x10;
|
||||
if (keycombo & 0x02) newKey |= 0x02;
|
||||
if (keycombo & 0x04) newKey |= 0x08;
|
||||
|
||||
/* <Sys7.1> would interact with (alas unused) MyPostEvent patch */
|
||||
postdataptr = &postEventData;
|
||||
postdataptr->keymodifiers = newKey;
|
||||
};
|
||||
|
||||
|
@ -1,3 +1,14 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted Horror and SuperMario changes
|
||||
; For some reason, <6> needed to be put back in
|
||||
; Guessed the name of the unused _PostEvent patch
|
||||
; Removed tables for DB and Dartanian
|
||||
; Removed per-machine tables (in favour of C init code)
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: backlight.a
|
||||
;
|
||||
@ -92,6 +103,40 @@ VBLEntry PROC EXPORT
|
||||
rts
|
||||
|
||||
|
||||
;----------------------------------------------------------------------------------
|
||||
;
|
||||
MyPostEvent PROC EXPORT ; <Sys7.1>
|
||||
movem.l d1/a1,-(sp)
|
||||
lea postEventData,a1
|
||||
move.l a0,d1
|
||||
tst.b 5(a1) ; postEventData.keymodifiers
|
||||
beq.s @noKey
|
||||
cmp.w #3,d1
|
||||
beq.s @specialMode
|
||||
tst.b 4(a1) ; postEventData.keysActive
|
||||
beq.s @noKey
|
||||
cmp.w #5,d1
|
||||
bne.s @noKey
|
||||
bra.s @return
|
||||
@specialMode move.w $17A,d1
|
||||
rol.w #1,d1 ; d1=1 if command key down
|
||||
cmp.b 5(a1),d1
|
||||
bne.s @noKey
|
||||
|
||||
@yesKey st 4(a1) ; postEventData.keysActive
|
||||
bra.s @return
|
||||
|
||||
@noKey sf 4(a1) ; postEventData.keysActive
|
||||
move.l 0(a1),a1
|
||||
jsr (a1)
|
||||
|
||||
@return movem.l (sp)+,d1/a1
|
||||
rts
|
||||
|
||||
EXPORT postEventData
|
||||
postEventData dcb.b 8,0 ; see struct in Register.c
|
||||
|
||||
|
||||
;-----------------------------------------------------------------------------------
|
||||
;
|
||||
;
|
||||
@ -105,28 +150,11 @@ SleepEntry PROC EXPORT
|
||||
move.l (sp)+,d0
|
||||
clr.l d0
|
||||
rts ;
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
GetBkltPrimInfo proc export
|
||||
with PmgrRec,PmgrPrimitivesRec
|
||||
|
||||
movea.l PmgrBase,a0 ; point to power manager globals
|
||||
LoadTbl BklightTblPtr,a0,a0 ; get backlight table pointer in a0
|
||||
move.l a0,d0 ; move pointer to d0 for C return
|
||||
rts
|
||||
|
||||
|
||||
|
||||
|
||||
END
|
||||
|
||||
;-----------------------------------------------------------------------------------
|
||||
;
|
||||
PortableTable7V PROC EXPORT
|
||||
dc.w 0 ; minimum value <H7>
|
||||
dc.w @end - @start ; <H7>
|
||||
|
||||
@start dc.b 0 ; 0 <H7>
|
||||
dc.b 0 ; 0 ; ex<H7> <Sys7.1>
|
||||
dc.b 1 ; 1
|
||||
dc.b 2 ; 2
|
||||
dc.b 3 ; 3
|
||||
@ -156,16 +184,14 @@ PortableTable7V PROC EXPORT
|
||||
dc.b 36 ; 27
|
||||
dc.b 40 ; 28
|
||||
dc.b 45 ; 29
|
||||
@end dc.b 50 ; 30 <H7>
|
||||
dc.b 50 ; 30
|
||||
dc.b 0
|
||||
|
||||
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
PortableTbl5V PROC EXPORT
|
||||
dc.w 0 ; minimum value <H7>
|
||||
dc.w @end - @start ; <H7>
|
||||
@start
|
||||
dc.b 0 ; 0 <H7>
|
||||
dc.b 0 ; 0 ; ex<H7> <Sys7.1>
|
||||
dc.b 2 ; 1
|
||||
dc.b 5 ; 2
|
||||
dc.b 7 ; 3
|
||||
@ -195,55 +221,62 @@ PortableTbl5V PROC EXPORT
|
||||
dc.b 66 ; 27
|
||||
dc.b 70 ; 28
|
||||
dc.b 75 ; 29
|
||||
@end dc.b 80 ; 30 <H7>
|
||||
dc.b 80 ; 30
|
||||
dc.b 0
|
||||
|
||||
|
||||
;-------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
; <Sys7.1> moved from lower down in the file
|
||||
PortableMaxTbl PROC EXPORT ; power range
|
||||
dc.w 30 ; 0
|
||||
dc.w 15 ; 1
|
||||
dc.w 15 ; 2
|
||||
dc.w 7 ; 3
|
||||
dc.w 3 ; 4
|
||||
|
||||
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
asahiTbl PROC EXPORT
|
||||
dc.w 0 ; minimum value <H7>
|
||||
dc.w @end - @start ; <H7>
|
||||
|
||||
@start dc.b 0 ; 0 <H7>
|
||||
dc.b 1 ; 1
|
||||
dc.b 2 ; 2
|
||||
dc.b 3 ; 3
|
||||
dc.b 4 ; 4
|
||||
dc.b 5 ; 5
|
||||
dc.b 6 ; 6
|
||||
dc.b 7 ; 7
|
||||
dc.b 8 ; 8
|
||||
dc.b 9 ; 9
|
||||
dc.b 10 ; 10
|
||||
dc.b 11 ; 11
|
||||
dc.b 12 ; 12
|
||||
dc.b 13 ; 13
|
||||
dc.b 14 ; 14
|
||||
dc.b 15 ; 15
|
||||
dc.b 16 ; 16
|
||||
dc.b 17 ; 17
|
||||
dc.b 18 ; 18
|
||||
dc.b 19 ; 19
|
||||
dc.b 20 ; 20
|
||||
dc.b 21 ; 21
|
||||
dc.b 22 ; 22
|
||||
dc.b 23 ; 23
|
||||
dc.b 24 ; 24
|
||||
dc.b 0 ; 0 ; ex<H7> <Sys7.1> and redo <6>
|
||||
dc.b 5 ; 1
|
||||
dc.b 6 ; 2
|
||||
dc.b 7 ; 3
|
||||
dc.b 8 ; 4
|
||||
dc.b 9 ; 5
|
||||
dc.b 10 ; 6
|
||||
dc.b 10 ; 7
|
||||
dc.b 11 ; 8
|
||||
dc.b 12 ; 9
|
||||
dc.b 13 ; 10
|
||||
dc.b 14 ; 11
|
||||
dc.b 15 ; 12
|
||||
dc.b 15 ; 13
|
||||
dc.b 16 ; 14
|
||||
dc.b 17 ; 15
|
||||
dc.b 18 ; 16
|
||||
dc.b 19 ; 17
|
||||
dc.b 20 ; 18
|
||||
dc.b 20 ; 19
|
||||
dc.b 21 ; 20
|
||||
dc.b 22 ; 21
|
||||
dc.b 23 ; 22
|
||||
dc.b 24 ; 23
|
||||
dc.b 25 ; 24
|
||||
dc.b 25 ; 25
|
||||
dc.b 26 ; 26
|
||||
dc.b 27 ; 27
|
||||
dc.b 28 ; 28
|
||||
dc.b 29 ; 29
|
||||
dc.b 30 ; 30
|
||||
@end dc.b 31 ; 31 <H7>
|
||||
dc.b 31 ; 31
|
||||
|
||||
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
timTbl PROC EXPORT
|
||||
dc.w 0 ; minimum value <H7>
|
||||
dc.w @end - @start ; <H7>
|
||||
|
||||
@start dc.b 31 ; 0 <H7>
|
||||
timTbl PROC EXPORT ; ex<H7> <Sys7.1>
|
||||
dc.b 31 ; 0
|
||||
dc.b 30 ; 1
|
||||
dc.b 29 ; 2
|
||||
dc.b 28 ; 3
|
||||
@ -274,15 +307,13 @@ timTbl PROC EXPORT
|
||||
dc.b 3 ; 28
|
||||
dc.b 2 ; 29
|
||||
dc.b 1 ; 30
|
||||
@end dc.b 0 ; 31 <H7>
|
||||
dc.b 0 ; 31
|
||||
|
||||
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
timTblLow PROC EXPORT
|
||||
dc.w 0 ; minimum value <H7>
|
||||
dc.w @end - @start ; <H7>
|
||||
|
||||
@start dc.b 31 ; 0 <H7>
|
||||
timTblLow PROC EXPORT ; ex<H7> <Sys7.1>
|
||||
dc.b 31 ; 0
|
||||
dc.b 30 ; 1
|
||||
dc.b 30 ; 2
|
||||
dc.b 29 ; 3
|
||||
@ -313,16 +344,8 @@ timTblLow PROC EXPORT
|
||||
dc.b 11 ; 28
|
||||
dc.b 11 ; 29
|
||||
dc.b 10 ; 30
|
||||
@end dc.b 10 ; 31 <H7>
|
||||
dc.b 10 ; 31
|
||||
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
PortableMaxTbl PROC EXPORT ; power range
|
||||
dc.w 30 ; 0
|
||||
dc.w 15 ; 1
|
||||
dc.w 15 ; 2
|
||||
dc.w 7 ; 3
|
||||
dc.w 3 ; 4
|
||||
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
@ -342,289 +365,4 @@ PotInputRangeShiftTblPWM PROC EXPORT
|
||||
dc.w 2 ; 3
|
||||
dc.w 3 ; 4
|
||||
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
dbTbl PROC EXPORT ; <H2>
|
||||
dc.w 0 ; minimum value <H7>
|
||||
dc.w @end - @start ; <H7>
|
||||
|
||||
@start DC.B 127 ; 0 <H7>
|
||||
DC.B 89 ; 1
|
||||
DC.B 87 ; 2
|
||||
DC.B 86 ; 3
|
||||
DC.B 84 ; 4
|
||||
DC.B 82 ; 5
|
||||
DC.B 81 ; 6
|
||||
DC.B 79 ; 7
|
||||
DC.B 77 ; 8
|
||||
DC.B 76 ; 9
|
||||
DC.B 74 ; 10
|
||||
DC.B 71 ; 11
|
||||
DC.B 69 ; 12
|
||||
DC.B 67 ; 13
|
||||
DC.B 66 ; 14
|
||||
DC.B 64 ; 15
|
||||
DC.B 62 ; 16
|
||||
DC.B 61 ; 17
|
||||
DC.B 59 ; 18
|
||||
DC.B 57 ; 19
|
||||
DC.B 56 ; 20
|
||||
DC.B 54 ; 21
|
||||
DC.B 52 ; 22
|
||||
DC.B 51 ; 23
|
||||
DC.B 49 ; 24
|
||||
DC.B 47 ; 25
|
||||
DC.B 46 ; 26
|
||||
DC.B 44 ; 27
|
||||
DC.B 42 ; 28
|
||||
DC.B 41 ; 29
|
||||
DC.B 39 ; 30
|
||||
@end DC.B 38 ; 31 <H7>
|
||||
|
||||
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
DartTable proc export
|
||||
dc.w 0 ; minimum value
|
||||
dc.w @end - @start
|
||||
|
||||
@start dc.b 3 ; 0
|
||||
dc.b 2 ; 1
|
||||
dc.b 1 ; 2
|
||||
@end dc.b 0 ; 3
|
||||
|
||||
;
|
||||
;
|
||||
DartMaxTbl PROC EXPORT ; power range
|
||||
dc.w 3 ; 0
|
||||
dc.w 2 ; 1
|
||||
dc.w 2 ; 2
|
||||
dc.w 1 ; 3
|
||||
dc.w 0 ; 4
|
||||
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
; generic exit for non-supported functions
|
||||
;
|
||||
StandardExit PROC EXPORT
|
||||
rts
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
; list to supported cpu's (boxflags)
|
||||
;
|
||||
cpuTable PROC EXPORT
|
||||
|
||||
dc.w boxPortable
|
||||
dc.l Portableinfo - cpuTable
|
||||
|
||||
dc.w boxPowerBook100
|
||||
dc.l PowerBook100info - cpuTable
|
||||
|
||||
dc.w boxPowerBookDuo250 ; <SM3>
|
||||
dc.l PowerBookDuoinfo - cpuTable
|
||||
|
||||
dc.w boxDBLite20
|
||||
dc.l PowerBookDuoinfo - cpuTable
|
||||
|
||||
dc.w boxPowerBookDuo210
|
||||
dc.l PowerBookDuoinfo - cpuTable
|
||||
|
||||
dc.w boxPowerBookDuo230
|
||||
dc.l PowerBookDuoinfo - cpuTable
|
||||
|
||||
dc.w boxPowerBook140 ; cpu id
|
||||
dc.l PowerBook170info - cpuTable
|
||||
|
||||
dc.w boxPowerBook170 ; cpu id
|
||||
dc.l PowerBook170info - cpuTable
|
||||
|
||||
dc.w boxPowerBook180
|
||||
dc.l PowerBook180info - cpuTable
|
||||
|
||||
dc.w boxPowerBook160
|
||||
dc.l PowerBook180info - cpuTable
|
||||
|
||||
dc.w boxYeagerFSTN ; <SM3>
|
||||
dc.l PowerBookDuoinfo - cpuTable
|
||||
|
||||
dc.w boxPowerBookDuo270C ; <SM3>
|
||||
dc.l PowerBookDuoinfo - cpuTable
|
||||
|
||||
|
||||
dc.w -1
|
||||
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
;
|
||||
import StandardExit
|
||||
import SetBrightness,KbdControl,InitRegControls,RegisterClose,RegisterControl,RegisterStatus
|
||||
import SetPWM,PotControl,InitPWMControls,PWMCloseRoutine,PWMControl,GenericStatus,PortableBacklightValue
|
||||
import SetDart,GetDart,InitTimControls,InitDartControls,PowerMgrPot,ChargerAdjust
|
||||
import PGE_button
|
||||
|
||||
with backlightflags
|
||||
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
;
|
||||
Portableinfo
|
||||
dc.l (0 << disableHWinput)\ ; operating flag (stops user input)
|
||||
+(0 << kbdactive)\ ; operating flag (kbd control inprogress)
|
||||
+(1 << vbl_ok)\ ; operating flag (allow vbl operations)
|
||||
+(0 << flyByWire)\ ; config flag (hardware input)
|
||||
+(0 << freeflag)\ ; (n/a) unused flag
|
||||
+(0 << dualTable)\ ; config flag (use multi tables)
|
||||
+(0 << lowTable)\ ; operating flag (currently using low table)
|
||||
+(0 << slewChange) ; operating flag (table transition inprogress)
|
||||
dc.l SetBrightness - Portableinfo ; set routine
|
||||
dc.l KbdControl - Portableinfo ; get user input routine
|
||||
dc.l InitRegControls - Portableinfo ; initialization routine
|
||||
dc.l RegisterClose - Portableinfo ; close routine
|
||||
dc.l RegisterControl - Portableinfo ; control routine
|
||||
dc.l RegisterStatus - Portableinfo ; status routine
|
||||
dc.l StandardExit - Portableinfo ; (n/a) charger state change routine
|
||||
dc.l PortableMaxTbl - Portableinfo ; table of maximum value for different power ranges
|
||||
dc.l PortableTable7V - Portableinfo ; low range table
|
||||
dc.l PortableTable7V - Portableinfo ; high range table
|
||||
dc.l PowerMgrPot - Portableinfo ; hardware dependent var
|
||||
dc.w 1 ; vbl count SampleRate
|
||||
dc.w 0 ; (n/a) lowThreshold
|
||||
dc.w 0 ; (n/a) hiThreshold
|
||||
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
;
|
||||
PowerBook100info
|
||||
dc.l (0 << disableHWinput)\ ; operating flag (stops user input)
|
||||
+(0 << kbdactive)\ ; operating flag (kbd control inprogress)
|
||||
+(1 << vbl_ok)\ ; operating flag (allow vbl operations)
|
||||
+(1 << flyByWire)\ ; config flag (hardware input)
|
||||
+(0 << freeflag)\ ; unused flag
|
||||
+(0 << dualTable)\ ; config flag (use multi tables)
|
||||
+(0 << lowTable)\ ; operating flag (currently using low table)
|
||||
+(0 << slewChange) ; operating flag (table transition inprogress)
|
||||
dc.l SetPWM - PowerBook100info ; set routine
|
||||
dc.l PotControl - PowerBook100info ; get user input routine
|
||||
dc.l InitPWMControls - PowerBook100info ; initialization routine
|
||||
dc.l PWMCloseRoutine - PowerBook100info ; close routine
|
||||
dc.l PWMControl - PowerBook100info ; control routine
|
||||
dc.l GenericStatus - PowerBook100info ; status routine
|
||||
dc.l StandardExit - PowerBook100info ; (n/a) charger state change routine
|
||||
dc.l PWMMaxTbl - PowerBook100info ; table of maximum value for different power ranges
|
||||
dc.l asahiTbl - PowerBook100info ; low range table
|
||||
dc.l asahiTbl - PowerBook100info ; high range table
|
||||
dc.l PortableBacklightValue- PowerBook100info; hardware dependent var
|
||||
dc.w 10 ; vbl count SampleRate
|
||||
dc.w 0 ; (n/a) lowThreshold
|
||||
dc.w 0 ; (n/a) hiThreshold
|
||||
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
;
|
||||
HITABLETHRESHOLD170 equ (685 - 512)
|
||||
LOWTABLETHRESHOLD170 equ (675 - 512)
|
||||
|
||||
PowerBook170info
|
||||
dc.l (0 << disableHWinput)\ ; operating flag (stops user input)
|
||||
+(0 << kbdactive)\ ; (n/a) operating flag (kbd control inprogress)
|
||||
+(1 << vbl_ok)\ ; operating flag (allow vbl operations)
|
||||
+(1 << flyByWire)\ ; config flag (hardware input)
|
||||
+(1 << freeflag)\ ; (n/a)
|
||||
+(0 << dualTable)\ ; config flag (use multi tables)
|
||||
+(0 << lowTable)\ ; operating flag (currently using low table)
|
||||
+(0 << slewChange) ; operating flag (table transition inprogress)
|
||||
dc.l SetPWM - PowerBook170info ; set routine
|
||||
dc.l PotControl - PowerBook170info ; get user input routine
|
||||
dc.l InitTimControls - PowerBook170info ; initialization routine
|
||||
dc.l PWMCloseRoutine - PowerBook170info ; close routine
|
||||
dc.l PWMControl - PowerBook170info ; control routine
|
||||
dc.l GenericStatus - PowerBook170info ; status routine
|
||||
dc.l ChargerAdjust - PowerBook170info ; charger state change routine
|
||||
dc.l PWMMaxTbl - PowerBook170info ; table of maximum value for different power ranges
|
||||
dc.l timTblLow - PowerBook170info ; low range table
|
||||
dc.l timTbl - PowerBook170info ; high range table
|
||||
dc.l PowerMgrPot - PowerBook170info ; hardware dependent var
|
||||
dc.w 10 ; vbl count SampleRate
|
||||
dc.w LOWTABLETHRESHOLD170 ; voltage threshold before switching from high to low table
|
||||
dc.w HITABLETHRESHOLD170 ; voltage threshold before switching from low to high table
|
||||
|
||||
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
;
|
||||
PowerBook180info
|
||||
dc.l (0 << disableHWinput)\ ; operating flag (stops user input)
|
||||
+(0 << kbdactive)\ ; (n/a) operating flag (kbd control inprogress)
|
||||
+(1 << vbl_ok)\ ; operating flag (allow vbl operations)
|
||||
+(1 << flyByWire)\ ; config flag (hardware input)
|
||||
+(1 << freeflag)\ ; (n/a)
|
||||
+(1 << dualTable)\ ; config flag (use multi tables)
|
||||
+(0 << lowTable)\ ; operating flag (currently using low table)
|
||||
+(0 << slewChange) ; operating flag (table transition inprogress)
|
||||
dc.l SetPWM - PowerBook180info ; set routine
|
||||
dc.l PotControl - PowerBook180info ; get user input routine
|
||||
dc.l InitPWMControls - PowerBook180info ; initialization routine
|
||||
dc.l PWMCloseRoutine - PowerBook180info ; close routine
|
||||
dc.l PWMControl - PowerBook180info ; control routine
|
||||
dc.l GenericStatus - PowerBook180info ; status routine
|
||||
dc.l ChargerAdjust - PowerBook180info ; charger state change routine
|
||||
dc.l PWMMaxTbl - PowerBook180info ; table of maximum value for different power ranges
|
||||
dc.l timTblLow - PowerBook180info ; low range table
|
||||
dc.l timTbl - PowerBook180info ; high range table
|
||||
dc.l PowerMgrPot - PowerBook180info ; hardware dependent var
|
||||
dc.w 10 ; vbl count SampleRate
|
||||
dc.w LOWTABLETHRESHOLD170 ; voltage threshold before switching from high to low table
|
||||
dc.w HITABLETHRESHOLD170 ; voltage threshold before switching from low to high table
|
||||
|
||||
PowerBook180infoHWControl
|
||||
dc.l (0 << disableHWinput)\ ; operating flag (stops user input)
|
||||
+(0 << kbdactive)\ ; operating flag (kbd control inprogress)
|
||||
+(1 << vbl_ok)\ ; operating flag (allow vbl operations)
|
||||
+(1 << flyByWire)\ ; config flag (hardware input)
|
||||
+(1 << freeflag)\
|
||||
+(0 << dualTable)\ ; config flag (use multi tables)
|
||||
+(0 << lowTable)\ ; operating flag (currently using low table)
|
||||
+(0 << slewChange) ; operating flag (table transition inprogress)
|
||||
dc.l SetPWM - PowerBook180info ; set routine
|
||||
dc.l PotControl - PowerBook180info ; get user input routine
|
||||
dc.l InitDartControls - PowerBook180info ; initialization routine
|
||||
dc.l PWMCloseRoutine - PowerBook180info ; close routine
|
||||
dc.l PWMControl - PowerBook180info ; control routine
|
||||
dc.l GenericStatus - PowerBook180info ; status routine
|
||||
dc.l 0 ; (n/a) charger state change routine
|
||||
dc.l DartMaxTbl - PowerBook180info ; table of maximum value for different power ranges
|
||||
dc.l DartTable - PowerBook180info ; low range table
|
||||
dc.l DartTable - PowerBook180info ; high range table
|
||||
dc.l PowerMgrPot - PowerBook180info ; hardware dependent var
|
||||
dc.w 10 ; vbl count SampleRate
|
||||
dc.w 0 ; (n/a) lowThreshold
|
||||
dc.w 0 ; (n/a) hiThreshold
|
||||
|
||||
;--------------------------------------------------------------------------------------------------------------
|
||||
;
|
||||
;
|
||||
PowerBookDuoinfo
|
||||
dc.l (0 << disableHWinput)\ ; operating flag (stops user input)
|
||||
+(0 << kbdactive)\ ; operating flag (kbd control inprogress)
|
||||
+(1 << vbl_ok)\ ; operating flag (allow vbl operations)
|
||||
+(1 << flyByWire)\ ; config flag (hardware input)
|
||||
+(1 << freeflag)\
|
||||
+(0 << dualTable)\ ; config flag (use multi tables)
|
||||
+(0 << lowTable)\ ; operating flag (currently using low table)
|
||||
+(0 << slewChange) ; operating flag (table transition inprogress)
|
||||
dc.l SetPWM - PowerBookDuoinfo ; set routine
|
||||
dc.l PotControl - PowerBookDuoinfo ; get user input routine
|
||||
dc.l InitPWMControls - PowerBookDuoinfo ; initialize routine
|
||||
dc.l PWMCloseRoutine - PowerBookDuoinfo ; close routine
|
||||
dc.l PWMControl - PowerBookDuoinfo ; control routine
|
||||
dc.l GenericStatus - PowerBookDuoinfo ; status routine
|
||||
dc.l StandardExit - PowerBookDuoinfo ; (n/a) charger state change routine
|
||||
dc.l PWMMaxTbl - PowerBookDuoinfo ; table of maximum value for different power ranges
|
||||
dc.l dbTbl - PowerBookDuoinfo ; low range table
|
||||
dc.l dbTbl - PowerBookDuoinfo ; high range table
|
||||
dc.l PGE_button - PowerBookDuoinfo ; hardware dependent var
|
||||
dc.w 10 ; vbl count SampleRate
|
||||
dc.w 0 ; (n/a) lowThreshold
|
||||
dc.w 0 ; (n/a) hiThreshold
|
||||
|
||||
END
|
||||
|
@ -1,3 +1,13 @@
|
||||
/*
|
||||
Hacks to match MacOS (most recent first):
|
||||
|
||||
<Sys7.1> 8/3/92 Reverted Horror (except <H2>) and SuperMario changes
|
||||
Constants used instead of boxFlag equates for clarity
|
||||
GetBacklightInfo/SaveBacklightInfo recreated from disassembly
|
||||
ChargerAdjust/LowTable put back into PWM.c
|
||||
9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
*/
|
||||
|
||||
/*
|
||||
File: backlight.c
|
||||
|
||||
@ -166,18 +176,14 @@ cpuDependentInfoPtr GetBkltPrimInfo();
|
||||
***************************************************************************************************
|
||||
*/
|
||||
|
||||
/* <Sys7.1> many changes */
|
||||
pascal OSErr DRVROpen(CntrlParam *ctlPB,DCtlPtr dCtl) /* 'open' entry point */
|
||||
|
||||
{
|
||||
#pragma unused (ctlPB)
|
||||
register driverGlobalPtr globalPtr; /* pointer to globals */
|
||||
PmgrGlobals **pmgrglobalhdl; /* handle to power manager globals */
|
||||
OSErr error;
|
||||
cpuDependentInfoType *cpuinfo;
|
||||
OSErr (*openProc)();
|
||||
|
||||
cpuinfo = GetBkltPrimInfo();
|
||||
if (!cpuinfo) return(openErr);
|
||||
char boxFlag;
|
||||
|
||||
globalPtr = (driverGlobalPtr) NewPtrSysClear(sizeof(driverGlobaltypes));
|
||||
if (!globalPtr) return(openErr); /* not enough memory, return error */
|
||||
@ -188,45 +194,25 @@ pascal OSErr DRVROpen(CntrlParam *ctlPB,DCtlPtr dCtl) /* 'open' entry point *
|
||||
/* setup variables */
|
||||
globalPtr->version = DRIVERVERSION; /* driver version number, in globals for easy patching */
|
||||
|
||||
*((unsigned int *)(((int)&(globalPtr->version)) + sizeof(globalPtr->version))) = cpuinfo->bkltinfo->flags;
|
||||
globalPtr->lowThreshold = cpuinfo->bkltinfo->lowThreshold; /*low hysteresis threshold */
|
||||
globalPtr->hiThreshold = cpuinfo->bkltinfo->hiThreshold; /* high hysteresis threshold */
|
||||
globalPtr->userInputSampleRate = cpuinfo->bkltinfo->userInputSampleRate; /* sample every 160ms */
|
||||
globalPtr->vbl_ok = true;
|
||||
|
||||
globalPtr->lastLevel = (*pmgrglobalhdl)->LastLevel; /* get current power level */
|
||||
// globalPtr->userRange = 0; /* allow full power level */
|
||||
globalPtr->powerRange = Larger(globalPtr->lastLevel,globalPtr->userRange);
|
||||
|
||||
/* initialize tables */
|
||||
globalPtr->maximumTable = (short *) (cpuinfo->bkltroutines->maxTable);
|
||||
globalPtr->settingTableLow = (setTableType *) (cpuinfo->bkltroutines->lowTable); /* <H8> */
|
||||
globalPtr->settingTableHigh = (setTableType *) (cpuinfo->bkltroutines->hiTable); /* <H8> */
|
||||
globalPtr->settingTable = globalPtr->settingTableHigh;
|
||||
|
||||
/* initialize vectors */
|
||||
globalPtr->setlevelproc = (intFunction) (cpuinfo->bkltroutines->setProc); /* proc to set level */
|
||||
globalPtr->userInputProc = (intFunction) (cpuinfo->bkltroutines->getProc); /* proc to read user input */
|
||||
openProc = (osFunction) (cpuinfo->bkltroutines->open); /* routine to close pwm hardware */
|
||||
globalPtr->closeProc = (intFunction) (cpuinfo->bkltroutines->close); /* routine to close pwm hardware */
|
||||
globalPtr->controlProc = (osFunction) (cpuinfo->bkltroutines->control); /* passed control routine */
|
||||
globalPtr->statusProc = (osFunction) (cpuinfo->bkltroutines->status); /* passed status routine */
|
||||
globalPtr->hardwareDependentPtr = (Ptr) (cpuinfo->bkltroutines->hwDependentVar);
|
||||
globalPtr->tableProc = (voidFunction) (cpuinfo->bkltroutines->tableProc);
|
||||
|
||||
|
||||
/* call custom initialization routine */
|
||||
if (openProc)
|
||||
/* <Sys7.1> */
|
||||
boxFlag = *(char *)0xCB3;
|
||||
switch (boxFlag)
|
||||
{
|
||||
error = (*openProc)(globalPtr);
|
||||
if (error)
|
||||
{
|
||||
DisposPtr((Ptr) globalPtr); /* release memory */
|
||||
dCtl->dCtlStorage = NULL;
|
||||
return(error); /* clear out saved value for next open */
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
case 4: // Portable
|
||||
InitRegControls(globalPtr);
|
||||
break;
|
||||
case 15: // PowerBook 170, TIM
|
||||
case 18: // PowerBook 100, Asahi
|
||||
default:
|
||||
InitPWMControls(globalPtr);
|
||||
break;
|
||||
}
|
||||
|
||||
globalPtr->brightnessVbl.globals = (Ptr) globalPtr;
|
||||
globalPtr->brightnessVbl.vblpb.qType = vType;
|
||||
@ -257,7 +243,6 @@ pascal OSErr DRVRClose(CntrlParam *ctlPB,DCtlPtr dCtl) /* 'open' entry point *
|
||||
|
||||
globalPtr = (driverGlobalPtr) dCtl->dCtlStorage; /* set context to my global data area */
|
||||
|
||||
globalPtr->slewChange = false; /* always turn off slew during close <H6> */
|
||||
VRemove((QElemPtr) &globalPtr->brightnessVbl.vblpb); /* remove vbl task */
|
||||
if (globalPtr->closeProc != NULL) /* if hw close proc … */
|
||||
(*globalPtr->closeProc)(globalPtr); /* … call close proc */
|
||||
@ -375,6 +360,7 @@ OSErr GenericControl(CntrlParam *ctlPB,driverGlobalPtr globalPtr)
|
||||
*
|
||||
***************************************************************************************************
|
||||
*/
|
||||
/* <Sys7.1> removed kGetUserInput/kGetScreenBrightness/kGetBrightnessRange/kGetMaximum */
|
||||
pascal OSErr DRVRStatus(CntrlParam *ctlPB,DCtlPtr dCtl) /* 'open' entry point */
|
||||
|
||||
{
|
||||
@ -390,27 +376,10 @@ pascal OSErr DRVRStatus(CntrlParam *ctlPB,DCtlPtr dCtl) /* 'open' entry point
|
||||
globalPtr->vbl_ok = false; /* disable vbl task */
|
||||
switch(ctlPB->csCode)
|
||||
{
|
||||
case kGetUserInput:
|
||||
ctlPB->csParam[0] = globalPtr->
|
||||
userInputProc( globalPtr ); /* Get the button inputs */
|
||||
break;
|
||||
|
||||
case KGetVersion:
|
||||
ctlPB->csParam[0] = globalPtr->version; /* return current driver version */
|
||||
break;
|
||||
|
||||
case kGetScreenBrightness: /* <H4> return current saved brightness */
|
||||
ctlPB->csParam[0] = globalPtr->userBrightness;
|
||||
break;
|
||||
|
||||
case kGetBrightnessRange: /* <H4> return range of brightness values */
|
||||
ctlPB->csParam[0] = globalPtr->settingTable->maximum;/* <H4> using new tables, return max setting */
|
||||
ctlPB->csParam[1] = globalPtr->settingTable->minimum;/* <H4> using new tables, return min setting */
|
||||
break;
|
||||
case kGetMaximum: /* <H4> */
|
||||
ctlPB->csParam[0] = globalPtr->maximumTable[globalPtr->powerRange];
|
||||
break;
|
||||
|
||||
default:
|
||||
error = (*globalPtr->statusProc)(ctlPB,globalPtr);
|
||||
};
|
||||
@ -526,7 +495,7 @@ PowerChange (driverGlobalPtr globalPtr, int currentPowerLevel)
|
||||
{
|
||||
if (!globalPtr->flyByWire && userInput) /* if only software controls and backlight on */
|
||||
{
|
||||
userInput >>= 1; /* reduce power by 1/2 */
|
||||
userInput = globalPtr->userBrightness >> 1; /* reduce power by 1/2 */
|
||||
if (!userInput) userInput = 1; /* insure at least on */
|
||||
};
|
||||
};
|
||||
@ -539,47 +508,22 @@ PowerChange (driverGlobalPtr globalPtr, int currentPowerLevel)
|
||||
*
|
||||
***************************************************************************************************
|
||||
*/
|
||||
|
||||
/*page
|
||||
***************************************************************************************************
|
||||
*
|
||||
*
|
||||
***************************************************************************************************
|
||||
*/
|
||||
unsigned int LowTable (driverGlobalPtr globalPtr)
|
||||
|
||||
/* <Sys7.1> from scratch */
|
||||
int GetBacklightInfo(short mask, short shift)
|
||||
{
|
||||
PmgrGlobals **pmgrglobalhdl; /* handle to power manager globals */
|
||||
Boolean wasLowTable; /* current table being used */
|
||||
Boolean hiTable; /* use hi level table now */
|
||||
unsigned char buf;
|
||||
ReadXPram(0x74, sizeof(buf), &buf);
|
||||
return (buf & mask) >> shift;
|
||||
}
|
||||
|
||||
pmgrglobalhdl = (PmgrGlobals **) 0x0D18; /* handle to power manager globals */
|
||||
|
||||
wasLowTable = globalPtr->lowTable; /* current table */
|
||||
hiTable = false; /* assume low table */
|
||||
if ((wasLowTable && ((*pmgrglobalhdl)->BatAvg >= globalPtr->hiThreshold)) ||
|
||||
(!wasLowTable && ((*pmgrglobalhdl)->BatAvg >= globalPtr->lowThreshold)))
|
||||
{
|
||||
hiTable = (*pmgrglobalhdl)->Charger & 0x01; /* qualify table with charger */
|
||||
};
|
||||
return(hiTable ? 0 : 1); /* return 1 if low table, 0 if high */
|
||||
};
|
||||
|
||||
/*page
|
||||
***************************************************************************************************
|
||||
*
|
||||
*
|
||||
***************************************************************************************************
|
||||
*/
|
||||
void ChargerAdjust (driverGlobalPtr globalPtr)
|
||||
/* <Sys7.1> from scratch */
|
||||
void SaveBacklightInfo(short new, short mask, short shift)
|
||||
{
|
||||
unsigned int oldTable;
|
||||
|
||||
oldTable = globalPtr->lowTable; /* save the current table being used */
|
||||
globalPtr->lowTable = LowTable(globalPtr); /* get the new table to use */
|
||||
if (globalPtr->lowTable == oldTable) return; /* are we changing tables ???, no exit */
|
||||
|
||||
globalPtr->slewChange = true; /* if change, set tmp slew on */
|
||||
globalPtr->settingTable = globalPtr->lowTable ? globalPtr->settingTableLow :globalPtr->settingTableHigh ;
|
||||
};
|
||||
int addr = 0x70;
|
||||
unsigned char buf;
|
||||
ReadXPram(addr + 4, sizeof(buf), &buf);
|
||||
buf &= ~mask;
|
||||
buf |= (new << shift) & mask;
|
||||
WriteXPram(addr + 4, sizeof(buf), &buf);
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,12 @@
|
||||
/*
|
||||
Hacks to match MacOS (most recent first):
|
||||
|
||||
<Sys7.1> 8/3/92 Reverted Horror and SuperMario changes
|
||||
Left out boxFlag definitions, because they use obscure codenames
|
||||
Version somehow increased from 1.0.1 to 1.0.2
|
||||
9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
*/
|
||||
|
||||
/*
|
||||
File: backlight.h
|
||||
|
||||
@ -65,7 +74,7 @@
|
||||
*
|
||||
*/
|
||||
#define DRIVERMAJORVERSION 0x0100
|
||||
#define DRIVERMINORVERSION 0x0001
|
||||
#define DRIVERMINORVERSION 0x0002
|
||||
#define DRIVERVERSION (DRIVERMAJORVERSION + DRIVERMINORVERSION)
|
||||
|
||||
/* Control Calls */
|
||||
@ -154,13 +163,6 @@ typedef struct
|
||||
VBLTask vblpb;
|
||||
} vblstruct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
short minimum;
|
||||
short maximum;
|
||||
unsigned char table[];
|
||||
} setTableType; /* <H8> new structure for tables */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
SleepQRec sleepQelement; /* sleep queue element, MUST stay on top */
|
||||
@ -187,9 +189,9 @@ typedef struct
|
||||
short slewLimit;
|
||||
unsigned short lowThreshold;
|
||||
unsigned short hiThreshold;
|
||||
setTableType *settingTable; /* <H8> pointer to record now */
|
||||
setTableType *settingTableLow; /* <H8> pointer to record now */
|
||||
setTableType *settingTableHigh; /* <H8> pointer to record now */
|
||||
unsigned char *settingTable;
|
||||
unsigned char *settingTableLow;
|
||||
unsigned char *settingTableHigh;
|
||||
short *maximumTable;
|
||||
|
||||
short lastLevel; /* last power level */
|
||||
@ -203,8 +205,6 @@ typedef struct
|
||||
short mousedownTicks; /* first notice of mouse down in tick count */
|
||||
short keycodes; /* key combinations */
|
||||
short lastatod; /* last raw a to d value */
|
||||
|
||||
Ptr hardwareDependentPtr; /* private storage for hardware dependent code */
|
||||
} driverGlobaltypes, *driverGlobalPtr;
|
||||
|
||||
typedef struct
|
||||
@ -248,20 +248,20 @@ typedef struct
|
||||
#define SaveBrightness(new) SaveBacklightInfo(new+1,VALUE_MASK, 0)
|
||||
#define SaveKeyData(new) SaveBacklightInfo(new,KEY_MASK, 5)
|
||||
|
||||
/* <H8> new ponti defintions */
|
||||
#define PONTILMPCTLREG *((unsigned char *) 0x50f96C00)
|
||||
#define PONTILMPON 0
|
||||
#define PONTILMPHWCTL 1
|
||||
#define PONTILMPMUX0 2
|
||||
#define PONTILMPMUX1 3
|
||||
|
||||
typedef int (*intFunction)();
|
||||
typedef OSErr (*osFunction)();
|
||||
typedef void (*voidFunction)();
|
||||
|
||||
int abs(int);
|
||||
unsigned char GetPortableValues(int parameter);
|
||||
OSErr InitPWMControls(driverGlobalPtr globalPtr);
|
||||
void InitPWMControls(driverGlobalPtr globalPtr);
|
||||
unsigned char Get_AtoD(int channel);
|
||||
unsigned char Get_PGEButton(int channel);
|
||||
int SetPWM(int new, driverGlobalPtr globalPtr);
|
||||
void InitRegControls(driverGlobalPtr globalPtr);
|
||||
int PotControl (driverGlobalPtr globalPtr);
|
||||
int PWMCloseRoutine (driverGlobalPtr globalPtr);
|
||||
OSErr PWMControl(CntrlParam *ctlPB,driverGlobalPtr globalPtr);
|
||||
OSErr PWMStatus(CntrlParam *ctlPB,driverGlobalPtr globalPtr);
|
||||
unsigned int LowTable (driverGlobalPtr globalPtr);
|
||||
void ChargerAdjust (driverGlobalPtr globalPtr);
|
||||
|
@ -1,3 +1,10 @@
|
||||
#
|
||||
# Hacks to match MacOS (most recent first):
|
||||
#
|
||||
# <Sys7.1> 8/3/92 Un-#included the missing files Serial.make and SerialDMA.make
|
||||
# 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
#
|
||||
|
||||
#
|
||||
# File: Drivers.make
|
||||
#
|
||||
@ -22,9 +29,6 @@ BackLightDir = {DriverDir}BackLight:
|
||||
|
||||
#include {SonyDir}Sony.make
|
||||
|
||||
#include {SerialDir}Serial.make
|
||||
#include {SerialDMADir}SerialDMA.make
|
||||
|
||||
#include {NewAgeDir}NewAge.make
|
||||
|
||||
#include {IOPDir}IOP.make
|
||||
|
@ -1,3 +1,10 @@
|
||||
#
|
||||
# Hacks to match MacOS (most recent first):
|
||||
#
|
||||
# <Sys7.1> 8/3/92 Made build rule for linked patch file SonyPatches.a
|
||||
# 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
#
|
||||
|
||||
#
|
||||
# File: Sony.make
|
||||
#
|
||||
@ -41,3 +48,8 @@
|
||||
"{RsrcDir}Sony.rsrc" ƒ "{ObjDir}SonyHdr.a.o"
|
||||
Link {StdLOpts} {StdAlign} -o "{Targ}" "{ObjDir}SonyHdr.a.o" -sn Main=".Sony" -rt DRVR=4
|
||||
|
||||
|
||||
# <Sys7.1>
|
||||
"{ObjDir}SonyPatches.a.o" ƒ "{SonyDir}SonyPatches.a"
|
||||
Asm {StdAOpts} -o "{Targ}" -d SonyNonPortable=1 -d onMac32=1 "{SonyDir}SonyPatches.a"
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <SM2>
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: TFBDriver.a
|
||||
;
|
||||
@ -811,11 +818,11 @@ SetGamma ; <C522/15Dec86> DAF
|
||||
MOVE.L D0,A1 ; get pointer to new gamma table
|
||||
|
||||
TST.L GVersion(A1) ; version, type = 0?
|
||||
BNE BadCtl ; => no, return error <SM2> CSS
|
||||
BNE.S BadCtl ; => no, return error <SM2> CSS <Sys7.1>
|
||||
CMP #8,GDataWidth(A1) ; is data width 8?
|
||||
BNE BadCtl ; => no, return error <SM2> CSS
|
||||
BNE.S BadCtl ; => no, return error <SM2> CSS <Sys7.1>
|
||||
CMP #256,GDataCnt(A1) ; 256 values per channel?
|
||||
BNE BadCtl ; => no, return error <SM2> CSS
|
||||
BNE.S BadCtl ; => no, return error <SM2> CSS <Sys7.1>
|
||||
|
||||
; if new table is different size, reallocate memory
|
||||
|
||||
|
5
Interfaces/AIncludes/ATalkEqu.a
Normal file
5
Interfaces/AIncludes/ATalkEqu.a
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
; Shim to point source to a compatible include file
|
||||
;
|
||||
|
||||
INCLUDE 'AppleTalk.a'
|
1
Interfaces/AIncludes/ATalkEqu.a.idump
Normal file
1
Interfaces/AIncludes/ATalkEqu.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <SM2>
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: AppleTalk.a
|
||||
;
|
||||
@ -136,7 +143,7 @@ lengthErr EQU -4
|
||||
;
|
||||
; SCC interrupt priority Should NEVER MOVE.W this value, just ORI.W <SM2> rb
|
||||
;
|
||||
sccLockout EQU $600 ; This value works on both Mac and Lisa <SM2> rb
|
||||
sccLockout EQU $2600 ; This value works on both Mac and Lisa <SM2> rb <Sys7.1>
|
||||
;
|
||||
;
|
||||
;+ MPP (control calls to NBP, DDP and ABLAP)
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <SM2>
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
; Version: 2.96
|
||||
; Created: Friday, October 20, 1989 at 9:18:00 PM
|
||||
;
|
||||
@ -122,7 +129,7 @@ maxHFSTrap EQU 17 ; Highest TFS trap dispatch index
|
||||
hfsVars EQU $36A ; Start of TFS variables in RAM version
|
||||
; (previously RgSvArea)
|
||||
hfsTmpSize EQU 16 ; Additional temporary space for TFS
|
||||
hfsStkLen EQU 1792 ; Allocate a decent-sized chunk of memory <SM2>
|
||||
hfsStkLen EQU 1280 ; Allocate a decent-sized chunk of memory <SM2> <Sys7.1>
|
||||
HFSStkTop EQU $36A ; Temporary location of pointer to top of Stack
|
||||
HFSStkPtr EQU $36E ; Temporary location of TFS Stack pointer
|
||||
WDCBsPtr EQU $372 ; Working Directory queue header
|
||||
@ -384,7 +391,7 @@ btcNodeSize EQU 42 ; BTree node size in bytes (word)
|
||||
btcKeyLen EQU 44 ; max key length (word)
|
||||
btcNNodes EQU 46 ; total number of nodes (long)
|
||||
btcFree EQU 50 ; number of free nodes (long)
|
||||
LenBTCB EQU 74 ; length of a BTCB <SM2>
|
||||
LenBTCB EQU 54 ; length of a BTCB <SM2> <Sys7.1>
|
||||
|
||||
;
|
||||
; BTree Variables (btVars) layout
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Recreated gestaltIconUtilities equate (no 'Attr') for compatibility
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;__________________________________________________________________________________________________
|
||||
;
|
||||
; File: GestaltEqu.a
|
||||
@ -515,6 +522,7 @@ gestaltTranslationAttr EQU 'xlat' ; Translation manager attributes
|
||||
gestaltTranslationMgrExists EQU 0 ; TRUE if translation manager exists
|
||||
|
||||
gestaltIconUtilitiesAttr EQU 'icon' ; Icon Utilities attributes
|
||||
gestaltIconUtilities EQU 'icon' ; Recreated for old code <Sys7.1>
|
||||
gestaltIconUtilitiesPresent EQU 0 ; true if icon utilities are present
|
||||
|
||||
gestaltCompressionMgr EQU 'icmp' ; returns version of the Image Compression Manager
|
||||
|
5
Interfaces/AIncludes/PackMacs.a
Normal file
5
Interfaces/AIncludes/PackMacs.a
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
; Shim to point source to a compatible include file
|
||||
;
|
||||
|
||||
INCLUDE 'Packages.a'
|
1
Interfaces/AIncludes/PackMacs.a.idump
Normal file
1
Interfaces/AIncludes/PackMacs.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
5
Interfaces/AIncludes/PaletteEqu.a
Normal file
5
Interfaces/AIncludes/PaletteEqu.a
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
; Shim to point source to a compatible include file
|
||||
;
|
||||
|
||||
INCLUDE 'Palettes.a'
|
1
Interfaces/AIncludes/PaletteEqu.a.idump
Normal file
1
Interfaces/AIncludes/PaletteEqu.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
5
Interfaces/AIncludes/PrEqu.a
Normal file
5
Interfaces/AIncludes/PrEqu.a
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
; Shim to point source to a compatible include file
|
||||
;
|
||||
|
||||
INCLUDE 'Printing.a'
|
1
Interfaces/AIncludes/PrEqu.a.idump
Normal file
1
Interfaces/AIncludes/PrEqu.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
5
Interfaces/AIncludes/PrintCallsEqu.a
Normal file
5
Interfaces/AIncludes/PrintCallsEqu.a
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
; Shim to point source to a compatible include file
|
||||
;
|
||||
|
||||
INCLUDE 'PrintTrapsEqu.a'
|
1
Interfaces/AIncludes/PrintCallsEqu.a.idump
Normal file
1
Interfaces/AIncludes/PrintCallsEqu.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
5
Interfaces/AIncludes/QDOffscreenEqu.a
Normal file
5
Interfaces/AIncludes/QDOffscreenEqu.a
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
; Shim to point source to a compatible include file
|
||||
;
|
||||
|
||||
INCLUDE 'QDOffscreen.a'
|
1
Interfaces/AIncludes/QDOffscreenEqu.a.idump
Normal file
1
Interfaces/AIncludes/QDOffscreenEqu.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
5
Interfaces/AIncludes/QuickEqu.a
Normal file
5
Interfaces/AIncludes/QuickEqu.a
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
; Shim to point source to a compatible include file
|
||||
;
|
||||
|
||||
INCLUDE 'QuickDraw.a'
|
1
Interfaces/AIncludes/QuickEqu.a.idump
Normal file
1
Interfaces/AIncludes/QuickEqu.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
5
Interfaces/AIncludes/SCSIEqu.a
Normal file
5
Interfaces/AIncludes/SCSIEqu.a
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
; Shim to point source to a compatible include file
|
||||
;
|
||||
|
||||
INCLUDE 'SCSI.a'
|
1
Interfaces/AIncludes/SCSIEqu.a.idump
Normal file
1
Interfaces/AIncludes/SCSIEqu.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
5
Interfaces/AIncludes/ScriptEqu.a
Normal file
5
Interfaces/AIncludes/ScriptEqu.a
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
; Shim to point source to a compatible include file
|
||||
;
|
||||
|
||||
INCLUDE 'Script.a'
|
1
Interfaces/AIncludes/ScriptEqu.a.idump
Normal file
1
Interfaces/AIncludes/ScriptEqu.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
5
Interfaces/AIncludes/ShutDownEqu.a
Normal file
5
Interfaces/AIncludes/ShutDownEqu.a
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
; Shim to point source to a compatible include file
|
||||
;
|
||||
|
||||
INCLUDE 'ShutDown.a'
|
1
Interfaces/AIncludes/ShutDownEqu.a.idump
Normal file
1
Interfaces/AIncludes/ShutDownEqu.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
5
Interfaces/AIncludes/SlotEqu.a
Normal file
5
Interfaces/AIncludes/SlotEqu.a
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
; Shim to point source to a compatible include file
|
||||
;
|
||||
|
||||
INCLUDE 'Slots.a'
|
1
Interfaces/AIncludes/SlotEqu.a.idump
Normal file
1
Interfaces/AIncludes/SlotEqu.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
@ -1,3 +1,11 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Removed the struct elements inserted by <H3>. Worked around
|
||||
; hasPwrControls/hasPowerMgr being incorrectly set on Plus/Portable.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: SonyEqu.a
|
||||
;
|
||||
@ -362,7 +370,7 @@ chipState EQU sonyVarEnd ; Byte holds flag to indicate IWM on or off
|
||||
sonyVarEnd SET chipState+2 ; end of sony vars excluding DCD
|
||||
ENDIF
|
||||
|
||||
IF hasPwrControls | hasPowerMgr THEN ; <1.1>
|
||||
IF (hasPwrControls | hasPowerMgr) and NOT onHcMac and NOT onMac THEN ; <1.1> <Sys7.1>
|
||||
chipState EQU sonyVarEnd ; Bit7 - saved VIA dir, 6..0 - pmgr enables <1.1>
|
||||
diskSleepQEL EQU chipState+2 ; sleep/wakeup queue element
|
||||
sonyVarEnd SET diskSleepQEL+SleepqRec.SleepqSize ; end of sony vars excluding DCD
|
||||
@ -371,9 +379,7 @@ sonyVarEnd SET diskSleepQEL+SleepqRec.SleepqSize ; end of sony vars excluding
|
||||
IF forDiskDup THEN
|
||||
fmtParams EQU sonyVarEnd ;pointer to parameters for special format command
|
||||
gcrFmtByte EQU fmtParams+4 ; saved GCR format byte for duplicator
|
||||
clock32Mhz EQU gcrFmtByte+2 ; ( 1) Clock speed: $FF=32Mhz, $00=16Mhz <H3><SM4>
|
||||
DisableRetries EQU clock32Mhz+1 ; ( 1) $FF=Don't perform retries, $00=normal <H4><SM4>
|
||||
sonyVarEnd SET DisableRetries+1
|
||||
sonyVarEnd SET gcrFmtByte+1 ; <Sys7.1> removed clock32Mhz <H3> and DisableRetries <H4> (1 byte each)
|
||||
ENDIF
|
||||
|
||||
|
||||
|
5
Interfaces/AIncludes/ToolEqu.a
Normal file
5
Interfaces/AIncludes/ToolEqu.a
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
; Shim to point source to a compatible include file
|
||||
;
|
||||
|
||||
INCLUDE 'ToolUtils.a'
|
1
Interfaces/AIncludes/ToolEqu.a.idump
Normal file
1
Interfaces/AIncludes/ToolEqu.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
@ -1,3 +1,11 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Restored SwapMMUMode/StripAddress/Translate24To32 to OPWORDs, as they
|
||||
; were before <SM9>.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
; Version: 3.29
|
||||
; Created: Friday, October 20, 1989 at 10:06:13 PM
|
||||
;
|
||||
@ -2110,17 +2118,9 @@ _HGetState OPWORD $A069
|
||||
_HSetState OPWORD $A06A
|
||||
_InitFS OPWORD $A06C
|
||||
_InitEvents OPWORD $A06D
|
||||
|
||||
Macro ; SuperMario is a 32-bit only ROM
|
||||
_SwapMMUMode
|
||||
EndM
|
||||
Macro ; SuperMario is a 32-bit only ROM
|
||||
_StripAddress
|
||||
EndM
|
||||
Macro ; SuperMario is a 32-bit only ROM
|
||||
_Translate24To32
|
||||
EndM
|
||||
|
||||
_SwapMMUMode OPWORD $A05D ; ex<SM9> <Sys7.1>
|
||||
_StripAddress OPWORD $A055 ; ex<SM9> <Sys7.1>
|
||||
_Translate24To32 OPWORD $A091 ; ex<SM9> <Sys7.1>
|
||||
_SetAppBase OPWORD $A057
|
||||
_SlotVInstall OPWORD $A06F
|
||||
_SlotVRemove OPWORD $A070
|
||||
|
5
Interfaces/AIncludes/VideoEqu.a
Normal file
5
Interfaces/AIncludes/VideoEqu.a
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
; Shim to point source to a compatible include file
|
||||
;
|
||||
|
||||
INCLUDE 'Video.a'
|
1
Interfaces/AIncludes/VideoEqu.a.idump
Normal file
1
Interfaces/AIncludes/VideoEqu.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
@ -1,3 +1,9 @@
|
||||
/*
|
||||
Hacks to match MacOS (most recent first):
|
||||
|
||||
<Sys7.1> 8/3/92 Worked around accRun double define in Devices.h and Desk.h
|
||||
9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
*/
|
||||
|
||||
/************************************************************
|
||||
|
||||
@ -45,7 +51,9 @@ Created: Saturday, July 27, 1991 at 2:53 PM
|
||||
enum {
|
||||
|
||||
accEvent = 64,
|
||||
#ifndef __DEVICES__ // <Sys7.1>
|
||||
accRun = 65,
|
||||
#endif
|
||||
accCursor = 66,
|
||||
accMenu = 67,
|
||||
accUndo = 68,
|
||||
|
@ -1,3 +1,10 @@
|
||||
/*
|
||||
Hacks to match MacOS (most recent first):
|
||||
|
||||
<Sys7.1> 8/3/92 Worked around accRun double define in Devices.h and Desk.h
|
||||
9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
*/
|
||||
|
||||
/************************************************************
|
||||
|
||||
Devices.h
|
||||
@ -173,7 +180,9 @@ enum {
|
||||
/* special csCodes */
|
||||
goodBye = -1,
|
||||
killCode = 1,
|
||||
#ifndef __DESK__ // <Sys7.1>
|
||||
accRun = 65
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
/*
|
||||
Hacks to match MacOS (most recent first):
|
||||
|
||||
<Sys7.1> 8/3/92 Reverted <60> by removing inline glue for NewGestalt and ReplaceGestalt
|
||||
9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
*/
|
||||
|
||||
/************************************************************
|
||||
|
||||
Created: Sunday, January 6, 1991 at 9:27 PM
|
||||
@ -646,25 +653,19 @@ typedef pascal OSErr (*SelectorFunctionProcPtr)(OSType selector, long *response)
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
pascal OSErr NewGestalt(OSType selector,SelectorFunctionProcPtr gestaltFunction);
|
||||
pascal OSErr ReplaceGestalt(OSType selector,SelectorFunctionProcPtr gestaltFunction,SelectorFunctionProcPtr *oldGestaltFunction);
|
||||
|
||||
#if SystemSevenOrLater
|
||||
|
||||
#pragma parameter __D0 Gestalt(__D0,__A1)
|
||||
pascal OSErr Gestalt(OSType selector,long *response)
|
||||
= {0xA1AD,0x2288};
|
||||
|
||||
#pragma parameter __D0 NewGestalt(__D0,__A0)
|
||||
pascal OSErr NewGestalt(OSType selector,SelectorFunctionProcPtr gestaltFunction)
|
||||
= {0xA3AD};
|
||||
|
||||
#pragma parameter __D0 ReplaceGestalt(__D0,__A0,__A1)
|
||||
pascal OSErr ReplaceGestalt(OSType selector,SelectorFunctionProcPtr gestaltFunction,SelectorFunctionProcPtr *oldGestaltFunction)
|
||||
= {0x2F09, 0xA5AD, 0x225F, 0x2288};
|
||||
|
||||
#else
|
||||
|
||||
pascal OSErr Gestalt(OSType selector,long *response);
|
||||
pascal OSErr NewGestalt(OSType selector,SelectorFunctionProcPtr gestaltFunction);
|
||||
pascal OSErr ReplaceGestalt(OSType selector,SelectorFunctionProcPtr gestaltFunction,SelectorFunctionProcPtr *oldGestaltFunction);
|
||||
|
||||
#endif
|
||||
|
||||
|
517
Interfaces/CIncludes/Sound.h
Normal file
517
Interfaces/CIncludes/Sound.h
Normal file
@ -0,0 +1,517 @@
|
||||
/*
|
||||
Hacks to match MacOS (most recent first):
|
||||
|
||||
<Sys7.1> 8/3/92 Copied from MPW Interfaces because SoundMgr and headers are missing from
|
||||
SuperMario ROM source (header preserved below)
|
||||
*/
|
||||
|
||||
/************************************************************
|
||||
|
||||
Created: Monday, January 28, 1991 at 6:54 PM
|
||||
Sound.h
|
||||
C Interface to the Macintosh Libraries
|
||||
|
||||
|
||||
Copyright Apple Computer, Inc. 1986-1990
|
||||
All rights reserved
|
||||
|
||||
************************************************************/
|
||||
|
||||
|
||||
#ifndef __SOUND__
|
||||
#define __SOUND__
|
||||
|
||||
#ifndef __TYPES__
|
||||
#include <Types.h>
|
||||
#endif
|
||||
|
||||
#ifndef __FILES__
|
||||
#include <Files.h>
|
||||
#endif
|
||||
|
||||
|
||||
enum {
|
||||
|
||||
swMode = -1, /* Sound Driver modes */
|
||||
ftMode = 1,
|
||||
ffMode = 0,
|
||||
|
||||
|
||||
#define synthCodeRsrc 'snth' /* Resource types used by Sound Manager */
|
||||
#define soundListRsrc 'snd '
|
||||
|
||||
#define twelfthRootTwo 1.05946309434
|
||||
|
||||
rate22khz = 0x56EE8BA3, /* 22254.54545 in fixed-point */
|
||||
rate11khz = 0x2B7745D1, /* 11127.27273 in fixed-point */
|
||||
|
||||
/* synthesizer numbers for SndNewChannel */
|
||||
squareWaveSynth = 1, /*square wave synthesizer*/
|
||||
waveTableSynth = 3, /*wave table synthesizer*/
|
||||
sampledSynth = 5, /*sampled sound synthesizer*/
|
||||
|
||||
/* old Sound Manager MACE synthesizer numbers */
|
||||
MACE3snthID = 11,
|
||||
MACE6snthID = 13,
|
||||
|
||||
/* command numbers for SndDoCommand and SndDoImmediate */
|
||||
nullCmd = 0,
|
||||
initCmd = 1,
|
||||
freeCmd = 2,
|
||||
quietCmd = 3,
|
||||
flushCmd = 4,
|
||||
reInitCmd = 5,
|
||||
|
||||
waitCmd = 10,
|
||||
pauseCmd = 11,
|
||||
resumeCmd = 12,
|
||||
callBackCmd = 13
|
||||
};
|
||||
enum {
|
||||
syncCmd = 14,
|
||||
emptyCmd = 15,
|
||||
|
||||
tickleCmd = 20,
|
||||
requestNextCmd = 21,
|
||||
howOftenCmd = 22,
|
||||
wakeUpCmd = 23,
|
||||
availableCmd = 24,
|
||||
versionCmd = 25,
|
||||
totalLoadCmd = 26,
|
||||
loadCmd = 27,
|
||||
|
||||
scaleCmd = 30,
|
||||
tempoCmd = 31,
|
||||
|
||||
freqDurationCmd = 40,
|
||||
restCmd = 41,
|
||||
freqCmd = 42,
|
||||
ampCmd = 43,
|
||||
timbreCmd = 44,
|
||||
getAmpCmd = 45,
|
||||
|
||||
waveTableCmd = 60,
|
||||
phaseCmd = 61
|
||||
};
|
||||
enum {
|
||||
|
||||
soundCmd = 80,
|
||||
bufferCmd = 81,
|
||||
rateCmd = 82,
|
||||
continueCmd = 83,
|
||||
doubleBufferCmd = 84,
|
||||
getRateCmd = 85,
|
||||
|
||||
sizeCmd = 90,
|
||||
convertCmd = 91,
|
||||
|
||||
stdQLength = 128,
|
||||
dataOffsetFlag = 0x8000,
|
||||
|
||||
waveInitChannelMask = 0x07,
|
||||
waveInitChannel0 = 0x04,
|
||||
waveInitChannel1 = 0x05,
|
||||
waveInitChannel2 = 0x06,
|
||||
waveInitChannel3 = 0x07,
|
||||
|
||||
/* channel initialization parameters */
|
||||
initPanMask = 0x0003, /* mask for right/left pan values */
|
||||
initSRateMask = 0x0030, /* mask for sample rate values */
|
||||
initStereoMask = 0x00C0, /* mask for mono/stereo values */
|
||||
initCompMask = 0xFF00, /* mask for compression IDs */
|
||||
|
||||
initChanLeft = 0x0002 /* left stereo channel */
|
||||
};
|
||||
enum {
|
||||
initChanRight = 0x0003, /* right stereo channel */
|
||||
initNoInterp = 0x0004, /* no linear interpolation */
|
||||
initNoDrop = 0x0008, /* no drop-sample conversion */
|
||||
initMono = 0x0080, /* monophonic channel */
|
||||
initStereo = 0x00C0, /* stereo channel */
|
||||
initMACE3 = 0x0300, /* MACE 3:1 */
|
||||
initMACE6 = 0x0400, /* MACE 6:1 */
|
||||
|
||||
initChan0 = 0x0004, /* channel 0 - wave table only */
|
||||
initChan1 = 0x0005, /* channel 1 - wave table only */
|
||||
initChan2 = 0x0006, /* channel 2 - wave table only */
|
||||
initChan3 = 0x0007, /* channel 3 - wave table only */
|
||||
|
||||
stdSH = 0x00, /* Standard sound header encode value */
|
||||
extSH = 0xFF, /* Extended sound header encode value */
|
||||
cmpSH = 0xFE, /* Compressed sound header encode value */
|
||||
|
||||
notCompressed = 0, /* compression ID's */
|
||||
twoToOne = 1,
|
||||
eightToThree = 2,
|
||||
threeToOne = 3,
|
||||
sixToOne = 4,
|
||||
|
||||
outsideCmpSH = 0 /* MACE constants */
|
||||
};
|
||||
enum {
|
||||
insideCmpSH = 1,
|
||||
aceSuccess = 0,
|
||||
aceMemFull = 1,
|
||||
aceNilBlock = 2,
|
||||
aceBadComp = 3,
|
||||
aceBadEncode = 4,
|
||||
aceBadDest = 5,
|
||||
aceBadCmd = 6,
|
||||
sixToOnePacketSize = 8,
|
||||
threeToOnePacketSize = 16,
|
||||
stateBlockSize = 64,
|
||||
leftOverBlockSize = 32,
|
||||
|
||||
firstSoundFormat = 0x0001, /* general sound format */
|
||||
secondSoundFormat = 0x0002, /* special sampled sound format (HyperCard) */
|
||||
|
||||
dbBufferReady = 0x00000001, /* double buffer is filled */
|
||||
dbLastBuffer = 0x00000004, /* last double buffer to play */
|
||||
|
||||
sysBeepDisable = 0x0000, /* SysBeep() enable flags */
|
||||
sysBeepEnable = 0x0001,
|
||||
|
||||
unitTypeNoSelection = 0xFFFF, /* unitTypes for AudioSelection.unitType */
|
||||
unitTypeSeconds = 0x0000
|
||||
};
|
||||
|
||||
|
||||
/* Structures for Sound Driver */
|
||||
|
||||
|
||||
typedef unsigned char FreeWave[30001];
|
||||
|
||||
struct FFSynthRec {
|
||||
short mode;
|
||||
Fixed count;
|
||||
FreeWave waveBytes;
|
||||
};
|
||||
|
||||
typedef struct FFSynthRec FFSynthRec;
|
||||
typedef FFSynthRec *FFSynthPtr;
|
||||
|
||||
struct Tone {
|
||||
short count;
|
||||
short amplitude;
|
||||
short duration;
|
||||
};
|
||||
|
||||
typedef struct Tone Tone;
|
||||
|
||||
|
||||
typedef Tone Tones[5001];
|
||||
|
||||
struct SWSynthRec {
|
||||
short mode;
|
||||
Tones triplets;
|
||||
};
|
||||
|
||||
typedef struct SWSynthRec SWSynthRec;
|
||||
typedef SWSynthRec *SWSynthPtr;
|
||||
|
||||
|
||||
typedef unsigned char Wave[256];
|
||||
typedef Wave *WavePtr;
|
||||
|
||||
struct FTSoundRec {
|
||||
short duration;
|
||||
Fixed sound1Rate;
|
||||
long sound1Phase;
|
||||
Fixed sound2Rate;
|
||||
long sound2Phase;
|
||||
Fixed sound3Rate;
|
||||
long sound3Phase;
|
||||
Fixed sound4Rate;
|
||||
long sound4Phase;
|
||||
WavePtr sound1Wave;
|
||||
WavePtr sound2Wave;
|
||||
WavePtr sound3Wave;
|
||||
WavePtr sound4Wave;
|
||||
};
|
||||
|
||||
typedef struct FTSoundRec FTSoundRec;
|
||||
typedef FTSoundRec *FTSndRecPtr;
|
||||
|
||||
struct FTSynthRec {
|
||||
short mode;
|
||||
FTSndRecPtr sndRec;
|
||||
};
|
||||
|
||||
typedef struct FTSynthRec FTSynthRec;
|
||||
typedef FTSynthRec *FTSynthPtr;
|
||||
|
||||
|
||||
typedef pascal void (*SndCompletionProcPtr)(void);
|
||||
|
||||
/* Structures for Sound Manager */
|
||||
|
||||
struct SndCommand {
|
||||
unsigned short cmd;
|
||||
short param1;
|
||||
long param2;
|
||||
};
|
||||
|
||||
typedef struct SndCommand SndCommand;
|
||||
|
||||
|
||||
typedef long Time; /* in half milliseconds */
|
||||
|
||||
|
||||
|
||||
typedef struct SndChannel SndChannel;
|
||||
typedef SndChannel *SndChannelPtr;
|
||||
|
||||
|
||||
typedef pascal void (*SndCallBackProcPtr)(SndChannelPtr chan, SndCommand cmd);
|
||||
|
||||
struct SndChannel {
|
||||
struct SndChannel *nextChan;
|
||||
Ptr firstMod; /* reserved for the Sound Manager */
|
||||
SndCallBackProcPtr callBack;
|
||||
long userInfo;
|
||||
Time wait; /* The following is for internal Sound Manager use only.*/
|
||||
SndCommand cmdInProgress;
|
||||
short flags;
|
||||
short qLength;
|
||||
short qHead; /* next spot to read or -1 if empty */
|
||||
short qTail; /* next spot to write = qHead if full */
|
||||
SndCommand queue[stdQLength];
|
||||
};
|
||||
|
||||
/* MACE structures */
|
||||
struct StateBlock {
|
||||
short stateVar[stateBlockSize];
|
||||
};
|
||||
|
||||
typedef struct StateBlock StateBlock;
|
||||
typedef StateBlock *StateBlockPtr;
|
||||
|
||||
struct LeftOverBlock {
|
||||
unsigned long count;
|
||||
char sampleArea[leftOverBlockSize];
|
||||
};
|
||||
|
||||
typedef struct LeftOverBlock LeftOverBlock;
|
||||
typedef LeftOverBlock *LeftOverBlockPtr;
|
||||
|
||||
struct ModRef {
|
||||
unsigned short modNumber;
|
||||
long modInit;
|
||||
};
|
||||
|
||||
typedef struct ModRef ModRef;
|
||||
|
||||
struct SndListResource {
|
||||
short format;
|
||||
short numModifiers;
|
||||
ModRef modifierPart[1]; /*This is a variable length array*/
|
||||
short numCommands;
|
||||
SndCommand commandPart[1]; /*This is a variable length array*/
|
||||
char dataPart[1]; /*This is a variable length array*/
|
||||
};
|
||||
|
||||
typedef struct SndListResource SndListResource;
|
||||
typedef SndListResource *SndListPtr;
|
||||
|
||||
struct SoundHeader {
|
||||
Ptr samplePtr; /* if NIL then samples are in sampleArea */
|
||||
unsigned long length; /* length of sound in bytes */
|
||||
Fixed sampleRate; /* sample rate for this sound */
|
||||
unsigned long loopStart; /* start of looping portion */
|
||||
unsigned long loopEnd; /* end of looping portion */
|
||||
unsigned char encode; /* header encoding */
|
||||
unsigned char baseFrequency; /* baseFrequency value */
|
||||
char sampleArea[1];
|
||||
};
|
||||
|
||||
typedef struct SoundHeader SoundHeader;
|
||||
typedef SoundHeader *SoundHeaderPtr;
|
||||
|
||||
|
||||
struct CmpSoundHeader {
|
||||
Ptr samplePtr; /* if nil then samples are in sample area */
|
||||
unsigned long numChannels; /* number of channels i.e. mono = 1 */
|
||||
Fixed sampleRate; /* sample rate in Apples Fixed point representation */
|
||||
unsigned long loopStart; /* loopStart of sound before compression */
|
||||
unsigned long loopEnd; /* loopEnd of sound before compression */
|
||||
unsigned char encode; /* data structure used , stdSH, extSH, or cmpSH */
|
||||
unsigned char baseFrequency; /* same meaning as regular SoundHeader */
|
||||
unsigned long numFrames; /* length in frames ( packetFrames or sampleFrames ) */
|
||||
extended AIFFSampleRate; /* IEEE sample rate */
|
||||
Ptr markerChunk; /* sync track */
|
||||
Ptr futureUse1; /* reserved by Apple */
|
||||
Ptr futureUse2; /* reserved by Apple */
|
||||
StateBlockPtr stateVars; /* pointer to State Block */
|
||||
LeftOverBlockPtr leftOverSamples; /* used to save truncated samples between compression calls */
|
||||
unsigned short compressionID; /* 0 means no compression, non zero means compressionID */
|
||||
unsigned short packetSize; /* number of bits in compressed sample packet */
|
||||
unsigned short snthID; /* resource ID of Sound Manager snth that contains NRT C/E */
|
||||
unsigned short sampleSize; /* number of bits in non-compressed sample */
|
||||
char sampleArea[1]; /* space for when samples follow directly */
|
||||
};
|
||||
|
||||
typedef struct CmpSoundHeader CmpSoundHeader;
|
||||
typedef CmpSoundHeader *CmpSoundHeaderPtr;
|
||||
|
||||
struct ExtSoundHeader {
|
||||
Ptr samplePtr; /* if nil then samples are in sample area */
|
||||
unsigned long numChannels; /* number of channels, ie mono = 1 */
|
||||
Fixed sampleRate; /* sample rate in Apples Fixed point representation */
|
||||
unsigned long loopStart; /* same meaning as regular SoundHeader */
|
||||
unsigned long loopEnd; /* same meaning as regular SoundHeader */
|
||||
unsigned char encode; /* data structure used , stdSH, extSH, or cmpSH */
|
||||
unsigned char baseFrequency; /* same meaning as regular SoundHeader */
|
||||
unsigned long numFrames; /* length in total number of frames */
|
||||
extended AIFFSampleRate; /* IEEE sample rate */
|
||||
Ptr markerChunk; /* sync track */
|
||||
Ptr instrumentChunks; /* AIFF instrument chunks */
|
||||
Ptr AESRecording;
|
||||
unsigned short sampleSize; /* number of bits in sample */
|
||||
unsigned short futureUse1; /* reserved by Apple */
|
||||
unsigned long futureUse2; /* reserved by Apple */
|
||||
unsigned long futureUse3; /* reserved by Apple */
|
||||
unsigned long futureUse4; /* reserved by Apple */
|
||||
char sampleArea[1]; /* space for when samples follow directly */
|
||||
};
|
||||
|
||||
typedef struct ExtSoundHeader ExtSoundHeader;
|
||||
typedef ExtSoundHeader *ExtSoundHeaderPtr;
|
||||
|
||||
struct ConversionBlock {
|
||||
short destination;
|
||||
short unused;
|
||||
CmpSoundHeaderPtr inputPtr;
|
||||
CmpSoundHeaderPtr outputPtr;
|
||||
};
|
||||
|
||||
typedef struct ConversionBlock ConversionBlock;
|
||||
typedef ConversionBlock *ConversionBlockPtr;
|
||||
|
||||
struct SMStatus {
|
||||
short smMaxCPULoad;
|
||||
short smNumChannels;
|
||||
short smCurCPULoad;
|
||||
};
|
||||
|
||||
typedef struct SMStatus SMStatus;
|
||||
typedef SMStatus *SMStatusPtr;
|
||||
|
||||
struct SCStatus {
|
||||
Fixed scStartTime;
|
||||
Fixed scEndTime;
|
||||
Fixed scCurrentTime;
|
||||
Boolean scChannelBusy;
|
||||
Boolean scChannelDisposed;
|
||||
Boolean scChannelPaused;
|
||||
Boolean scUnused;
|
||||
unsigned long scChannelAttributes;
|
||||
long scCPULoad;
|
||||
};
|
||||
|
||||
typedef struct SCStatus SCStatus;
|
||||
typedef SCStatus *SCStatusPtr;
|
||||
|
||||
struct AudioSelection {
|
||||
long unitType;
|
||||
Fixed selStart;
|
||||
Fixed selEnd;
|
||||
};
|
||||
|
||||
typedef struct AudioSelection AudioSelection;
|
||||
typedef AudioSelection *AudioSelectionPtr;
|
||||
|
||||
struct SndDoubleBuffer {
|
||||
long dbNumFrames;
|
||||
long dbFlags;
|
||||
long dbUserInfo[2];
|
||||
char dbSoundData[1];
|
||||
};
|
||||
|
||||
typedef struct SndDoubleBuffer SndDoubleBuffer;
|
||||
typedef SndDoubleBuffer *SndDoubleBufferPtr;
|
||||
|
||||
|
||||
typedef pascal void (*SndDoubleBackProcPtr) (SndChannelPtr channel,
|
||||
SndDoubleBufferPtr doubleBufferPtr);
|
||||
|
||||
struct SndDoubleBufferHeader {
|
||||
short dbhNumChannels;
|
||||
short dbhSampleSize;
|
||||
short dbhCompressionID;
|
||||
short dbhPacketSize;
|
||||
Fixed dbhSampleRate;
|
||||
SndDoubleBufferPtr dbhBufferPtr[2];
|
||||
SndDoubleBackProcPtr dbhDoubleBack;
|
||||
};
|
||||
|
||||
typedef struct SndDoubleBufferHeader SndDoubleBufferHeader;
|
||||
typedef SndDoubleBufferHeader *SndDoubleBufferHeaderPtr;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
pascal OSErr SndDoCommand(SndChannelPtr chan,const SndCommand *cmd,Boolean noWait)
|
||||
= 0xA803;
|
||||
pascal OSErr SndDoImmediate(SndChannelPtr chan,const SndCommand *cmd)
|
||||
= 0xA804;
|
||||
pascal OSErr SndNewChannel(SndChannelPtr *chan,short synth,long init,SndCallBackProcPtr userRoutine)
|
||||
= 0xA807;
|
||||
pascal OSErr SndDisposeChannel(SndChannelPtr chan,Boolean quietNow)
|
||||
= 0xA801;
|
||||
pascal OSErr SndPlay(SndChannelPtr chan,Handle sndHdl,Boolean async)
|
||||
= 0xA805;
|
||||
pascal OSErr SndAddModifier(SndChannelPtr chan,ProcPtr modifier,short id,
|
||||
long init)
|
||||
= 0xA802;
|
||||
pascal OSErr SndControl(short id,SndCommand *cmd)
|
||||
= 0xA806;
|
||||
|
||||
pascal void SetSoundVol(short level);
|
||||
#pragma parameter GetSoundVol(__A0)
|
||||
pascal void GetSoundVol(short *level)
|
||||
= {0x4218,0x10B8,0x0260};
|
||||
pascal void StartSound(const void *synthRec,long numBytes,SndCompletionProcPtr completionRtn);
|
||||
pascal void StopSound(void);
|
||||
pascal Boolean SoundDone(void);
|
||||
|
||||
pascal NumVersion SndSoundManagerVersion(void)
|
||||
= {0x203C,0x000C,0x0008,0xA800};
|
||||
pascal OSErr SndStartFilePlay(SndChannelPtr chan,short fRefNum,short resNum,
|
||||
long bufferSize,void *theBuffer,AudioSelectionPtr theSelection,ProcPtr theCompletion,
|
||||
Boolean async)
|
||||
= {0x203C,0x0D00,0x0008,0xA800};
|
||||
pascal OSErr SndPauseFilePlay(SndChannelPtr chan)
|
||||
= {0x203C,0x0204,0x0008,0xA800};
|
||||
pascal OSErr SndStopFilePlay(SndChannelPtr chan,Boolean async)
|
||||
= {0x203C,0x0308,0x0008,0xA800};
|
||||
pascal OSErr SndChannelStatus(SndChannelPtr chan,short theLength,SCStatusPtr theStatus)
|
||||
= {0x203C,0x0010,0x0008,0xA800};
|
||||
pascal OSErr SndManagerStatus(short theLength,SMStatusPtr theStatus)
|
||||
= {0x203C,0x0014,0x0008,0xA800};
|
||||
pascal void SndGetSysBeepState(short *sysBeepState)
|
||||
= {0x203C,0x0018,0x0008,0xA800};
|
||||
pascal OSErr SndSetSysBeepState(short sysBeepState)
|
||||
= {0x203C,0x001C,0x0008,0xA800};
|
||||
pascal OSErr SndPlayDoubleBuffer(SndChannelPtr chan,SndDoubleBufferHeaderPtr theParams)
|
||||
= {0x203C,0x0020,0x0008,0xA800};
|
||||
|
||||
pascal NumVersion MACEVersion(void)
|
||||
= {0x203C,0x0000,0x0010,0xA800};
|
||||
pascal void Comp3to1(const void *inBuffer,void *outBuffer,unsigned long cnt,
|
||||
const void *inState,void *outState,unsigned long numChannels,unsigned long whichChannel)
|
||||
= {0x203C,0x0004,0x0010,0xA800};
|
||||
pascal void Exp1to3(const void *inBuffer,void *outBuffer,unsigned long cnt,
|
||||
const void *inState,void *outState,unsigned long numChannels,unsigned long whichChannel)
|
||||
= {0x203C,0x0008,0x0010,0xA800};
|
||||
pascal void Comp6to1(const void *inBuffer,void *outBuffer,unsigned long cnt,
|
||||
const void *inState,void *outState,unsigned long numChannels,unsigned long whichChannel)
|
||||
= {0x203C,0x000C,0x0010,0xA800};
|
||||
pascal void Exp1to6(const void *inBuffer,void *outBuffer,unsigned long cnt,
|
||||
const void *inState,void *outState,unsigned long numChannels,unsigned long whichChannel)
|
||||
= {0x203C,0x0010,0x0010,0xA800};
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
1
Interfaces/CIncludes/Sound.h.idump
Normal file
1
Interfaces/CIncludes/Sound.h.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
176
Interfaces/CIncludes/Sound.h.rdump
Normal file
176
Interfaces/CIncludes/Sound.h.rdump
Normal file
@ -0,0 +1,176 @@
|
||||
data 'MPSR' (1005) {
|
||||
$"0009 4D6F 6E61 636F 0042 01E3 01CF 026E" /* ..Monaco.B.....n */
|
||||
$"01CF 027E 0000 0000 0000 0000 8200 0014" /* ...~............ */
|
||||
$"0001 0006 0004 002A 0003 0142 01E3 002A" /* .......*...B...* */
|
||||
$"0003 0142 01E3 A42B A620 0000 0000 0000" /* ...B...+. ...... */
|
||||
$"0000 0000 0000 0100" /* ........ */
|
||||
};
|
||||
|
||||
data 'MPSR' (1007) {
|
||||
$"0076 0000 01BE 0000 0202 0773 774D 6F64" /* .v.........swMod */
|
||||
$"6500 0000 0203 0000 0212 0766 744D 6F64" /* e..........ftMod */
|
||||
$"6500 0000 0213 0000 0222 0766 664D 6F64" /* e........".ffMod */
|
||||
$"6500 0000 0225 0000 027B 0D73 796E 7468" /* e....%...{.synth */
|
||||
$"436F 6465 5273 7263 0000 027C 0000 0298" /* CodeRsrc...|.... */
|
||||
$"0D73 6F75 6E64 4C69 7374 5273 7263 0000" /* .soundListRsrc.. */
|
||||
$"030D 0000 0359 0972 6174 6531 316B 687A" /* .....Y.rate11khz */
|
||||
$"0000 0387 0000 03CE 0F73 7175 6172 6557" /* .........squareW */
|
||||
$"6176 6553 796E 7468 0000 03CF 0000 0415" /* aveSynth........ */
|
||||
$"0F77 6176 6554 6162 6C65 5379 6E74 6800" /* .waveTableSynth. */
|
||||
$"0000 0416 0000 2BB9 0D73 616D 706C 6564" /* ......+..sampled */
|
||||
$"5379 6E74 6800 0000 0492 0000 2E8C 0B4D" /* Synth..........M */
|
||||
$"4143 4533 736E 7468 4944 0000 04A8 0000" /* ACE3snthID...... */
|
||||
$"04BD 0B4D 4143 4536 736E 7468 4944 0000" /* ...MACE6snthID.. */
|
||||
$"04F9 0000 0509 076E 756C 6C43 6D64 0000" /* .......nullCmd.. */
|
||||
$"050A 0000 051A 0769 6E69 7443 6D64 0000" /* .......initCmd.. */
|
||||
$"051B 0000 052B 0766 7265 6543 6D64 0000" /* .....+.freeCmd.. */
|
||||
$"052C 0000 053D 0971 7569 6574 436D 6400" /* .,...=.quietCmd. */
|
||||
$"0000 053E 0000 054F 0966 6C75 7368 436D" /* ...>...O.flushCm */
|
||||
$"6400 0000 0550 0000 0562 0972 6549 6E69" /* d....P...b.reIni */
|
||||
$"7443 6D64 0000 0564 0000 0575 0777 6169" /* tCmd...d...u.wai */
|
||||
$"7443 6D64 0000 0576 0000 0588 0970 6175" /* tCmd...v.....pau */
|
||||
$"7365 436D 6400 0000 0589 0000 059C 0972" /* seCmd..........r */
|
||||
$"6573 756D 6543 6D64 0000 059D 0000 05B1" /* esumeCmd........ */
|
||||
$"0B63 616C 6C42 6163 6B43 6D64 0000 05BC" /* .callBackCmd.... */
|
||||
$"0000 05CD 0773 796E 6343 6D64 0000 05CE" /* .....syncCmd.... */
|
||||
$"0000 05E0 0965 6D70 7479 436D 6400 0000" /* .....emptyCmd... */
|
||||
$"05E2 0000 05F5 0974 6963 6B6C 6543 6D64" /* .......tickleCmd */
|
||||
$"0000 05F6 0000 060E 0F72 6571 7565 7374" /* .........request */
|
||||
$"4E65 7874 436D 6400 0000 060F 0000 0624" /* NextCmd........$ */
|
||||
$"0B68 6F77 4F66 7465 6E43 6D64 0000 0625" /* .howOftenCmd...% */
|
||||
$"0000 0638 0977 616B 6555 7043 6D64 0000" /* ...8.wakeUpCmd.. */
|
||||
$"0639 0000 064F 0D61 7661 696C 6162 6C65" /* .9...O.available */
|
||||
$"436D 6400 0000 0650 0000 0664 0B76 6572" /* Cmd....P...d.ver */
|
||||
$"7369 6F6E 436D 6400 0000 0665 0000 067B" /* sionCmd....e...{ */
|
||||
$"0D74 6F74 616C 4C6F 6164 436D 6400 0000" /* .totalLoadCmd... */
|
||||
$"067C 0000 068D 076C 6F61 6443 6D64 0000" /* .|.....loadCmd.. */
|
||||
$"068F 0000 06A1 0973 6361 6C65 436D 6400" /* .......scaleCmd. */
|
||||
$"0000 06A2 0000 06B4 0974 656D 706F 436D" /* .........tempoCm */
|
||||
$"6400 0000 06B6 0000 06CF 0F66 7265 7144" /* d..........freqD */
|
||||
$"7572 6174 696F 6E43 6D64 0000 06D0 0000" /* urationCmd...... */
|
||||
$"06E1 0772 6573 7443 6D64 0000 06E2 0000" /* ...restCmd...... */
|
||||
$"06F3 0766 7265 7143 6D64 0000 06F4 0000" /* ...freqCmd...... */
|
||||
$"0704 0761 6D70 436D 6400 0000 0705 0000" /* ...ampCmd....... */
|
||||
$"0718 0974 696D 6272 6543 6D64 0000 0719" /* ...timbreCmd.... */
|
||||
$"0000 072C 0967 6574 416D 7043 6D64 0000" /* ...,.getAmpCmd.. */
|
||||
$"072E 0000 0744 0D77 6176 6554 6162 6C65" /* .....D.waveTable */
|
||||
$"436D 6400 0000 0745 0000 0756 0970 6861" /* Cmd....E...V.pha */
|
||||
$"7365 436D 6400 0000 0762 0000 0774 0973" /* seCmd....b...t.s */
|
||||
$"6F75 6E64 436D 6400 0000 0775 0000 0788" /* oundCmd....u.... */
|
||||
$"0962 7566 6665 7243 6D64 0000 0789 0000" /* .bufferCmd...... */
|
||||
$"079A 0772 6174 6543 6D64 0000 079B 0000" /* ...rateCmd...... */
|
||||
$"07B0 0B63 6F6E 7469 6E75 6543 6D64 0000" /* ...continueCmd.. */
|
||||
$"07B1 0000 07CA 0F64 6F75 626C 6542 7566" /* .......doubleBuf */
|
||||
$"6665 7243 6D64 0000 07CB 0000 07DF 0B67" /* ferCmd.........g */
|
||||
$"6574 5261 7465 436D 6400 0000 07E1 0000" /* etRateCmd....... */
|
||||
$"07F2 0773 697A 6543 6D64 0000 07F3 0000" /* ...sizeCmd...... */
|
||||
$"0807 0B63 6F6E 7665 7274 436D 6400 0000" /* ...convertCmd... */
|
||||
$"0809 0000 081E 0B73 7464 514C 656E 6774" /* .......stdQLengt */
|
||||
$"6800 0000 08B4 0000 08D0 1177 6176 6549" /* h..........waveI */
|
||||
$"6E69 7443 6861 6E6E 656C 3300 0000 08FA" /* nitChannel3..... */
|
||||
$"0000 094A 0B69 6E69 7450 616E 4D61 736B" /* ...J.initPanMask */
|
||||
$"0000 094B 0000 0998 0D69 6E69 7453 5261" /* ...K.....initSRa */
|
||||
$"7465 4D61 736B 0000 0999 0000 09E6 0F69" /* teMask.........i */
|
||||
$"6E69 7453 7465 7265 6F4D 6173 6B00 0000" /* nitStereoMask... */
|
||||
$"09E7 0000 0A31 0D69 6E69 7443 6F6D 704D" /* .....1.initCompM */
|
||||
$"6173 6B00 0000 0A33 0000 0A78 0D69 6E69" /* ask....3...x.ini */
|
||||
$"7443 6861 6E4C 6566 7400 0000 0A83 0000" /* tChanLeft....... */
|
||||
$"0AC9 0D69 6E69 7443 6861 6E52 6967 6874" /* ...initChanRight */
|
||||
$"0000 0ACA 0000 0B13 0D69 6E69 744E 6F49" /* .........initNoI */
|
||||
$"6E74 6572 7000 0000 0B14 0000 0B5F 0B69" /* nterp........_.i */
|
||||
$"6E69 744E 6F44 726F 7000 0000 0B60 0000" /* nitNoDrop....`.. */
|
||||
$"0BA4 0969 6E69 744D 6F6E 6F00 0000 0D47" /* ...initMono....G */
|
||||
$"0000 0D94 0969 6E69 7443 6861 6E33 0000" /* .....initChan3.. */
|
||||
$"0D96 0000 0DEA 0573 7464 5348 0000 0DEB" /* .......stdSH.... */
|
||||
$"0000 0E3F 0565 7874 5348 0000 0E40 0000" /* ...?.extSH...@.. */
|
||||
$"0E96 0563 6D70 5348 0000 0E98 0000 0EDA" /* ...cmpSH........ */
|
||||
$"0D6E 6F74 436F 6D70 7265 7373 6564 0000" /* .notCompressed.. */
|
||||
$"0EDB 0000 0EEC 0974 776F 546F 4F6E 6500" /* .......twoToOne. */
|
||||
$"0000 0EED 0000 0F02 0D65 6967 6874 546F" /* .........eightTo */
|
||||
$"5468 7265 6500 0000 0F03 0000 0F16 0B74" /* Three..........t */
|
||||
$"6872 6565 546F 4F6E 6500 0000 0F17 0000" /* hreeToOne....... */
|
||||
$"0F28 0973 6978 546F 4F6E 6500 0000 0F2A" /* .(.sixToOne....* */
|
||||
$"0000 0F6A 0D6F 7574 7369 6465 436D 7053" /* ...j.outsideCmpS */
|
||||
$"4800 0000 0F75 0000 0F89 0B69 6E73 6964" /* H....u.....insid */
|
||||
$"6543 6D70 5348 0000 0F8A 0000 0F9D 0B61" /* eCmpSH.........a */
|
||||
$"6365 5375 6363 6573 7300 0000 0F9E 0000" /* ceSuccess....... */
|
||||
$"0FB1 0B61 6365 4D65 6D46 756C 6C00 0000" /* ...aceMemFull... */
|
||||
$"0FB2 0000 0FC6 0B61 6365 4E69 6C42 6C6F" /* .......aceNilBlo */
|
||||
$"636B 0000 0FC7 0000 0FDA 0B61 6365 4261" /* ck.........aceBa */
|
||||
$"6443 6F6D 7000 0000 0FDB 0000 0FF0 0D61" /* dComp..........a */
|
||||
$"6365 4261 6445 6E63 6F64 6500 0000 0FF1" /* ceBadEncode..... */
|
||||
$"0000 1004 0B61 6365 4261 6444 6573 7400" /* .....aceBadDest. */
|
||||
$"0000 1034 0000 1052 1574 6872 6565 546F" /* ...4...R.threeTo */
|
||||
$"4F6E 6550 6163 6B65 7453 697A 6500 0000" /* OnePacketSize... */
|
||||
$"10D0 0000 112A 1173 6563 6F6E 6453 6F75" /* .....*.secondSou */
|
||||
$"6E64 466F 726D 6174 0000 112C 0000 1175" /* ndFormat...,...u */
|
||||
$"0D64 6242 7566 6665 7252 6561 6479 0000" /* .dbBufferReady.. */
|
||||
$"1176 0000 11C2 0D64 624C 6173 7442 7566" /* .v.....dbLastBuf */
|
||||
$"6665 7200 0000 11C4 0000 120C 0F73 7973" /* fer..........sys */
|
||||
$"4265 6570 4469 7361 626C 6500 0000 122A" /* BeepDisable....* */
|
||||
$"0000 1281 1375 6E69 7454 7970 654E 6F53" /* .....unitTypeNoS */
|
||||
$"656C 6563 7469 6F6E 0000 1282 0000 129E" /* election........ */
|
||||
$"0F75 6E69 7454 7970 6553 6563 6F6E 6473" /* .unitTypeSeconds */
|
||||
$"0000 12DE 0000 1305 0946 7265 6557 6176" /* .........FreeWav */
|
||||
$"6500 0000 1307 0000 139D 0B46 4653 796E" /* e..........FFSyn */
|
||||
$"7468 5265 6300 0000 139F 0000 1404 0554" /* thRec..........T */
|
||||
$"6F6E 6500 0000 1407 0000 1420 0554 6F6E" /* one........ .Ton */
|
||||
$"6573 0000 1422 0000 14A3 0B53 5753 796E" /* es...".....SWSyn */
|
||||
$"7468 5265 6300 0000 14A6 0000 14C7 0557" /* thRec..........W */
|
||||
$"6176 6500 0000 14C8 0000 14DE 0757 6176" /* ave..........Wav */
|
||||
$"6550 7472 0000 14E0 0000 1662 0B46 5453" /* ePtr.......b.FTS */
|
||||
$"6F75 6E64 5265 6300 0000 16EC 0000 171E" /* oundRec......... */
|
||||
$"1553 6E64 436F 6D70 6C65 7469 6F6E 5072" /* .SndCompletionPr */
|
||||
$"6F63 5074 7200 0000 175A 0000 17D2 0B53" /* ocPtr....Z.....S */
|
||||
$"6E64 436F 6D6D 616E 6400 0000 17D5 0000" /* ndCommand....... */
|
||||
$"181B 0554 696D 6500 0000 181F 0000 1AE9" /* ...Time......... */
|
||||
$"0B53 6E64 4368 616E 6E65 6C00 0000 1B01" /* .SndChannel..... */
|
||||
$"0000 1B85 0B53 7461 7465 426C 6F63 6B00" /* .....StateBlock. */
|
||||
$"0000 1B87 0000 1C37 0D4C 6566 744F 7665" /* .......7.LeftOve */
|
||||
$"7242 6C6F 636B 0000 1C39 0000 1C9A 074D" /* rBlock...9.....M */
|
||||
$"6F64 5265 6600 0000 1C9C 0000 1E3E 0F53" /* odRef........>.S */
|
||||
$"6E64 4C69 7374 5265 736F 7572 6365 0000" /* ndListResource.. */
|
||||
$"1E40 0000 20C9 0B53 6F75 6E64 4865 6164" /* .@.. ..SoundHead */
|
||||
$"6572 0000 20CC 0000 27B3 0F43 6D70 536F" /* er.. ...'..CmpSo */
|
||||
$"756E 6448 6561 6465 7200 0000 2D81 0000" /* undHeader...-... */
|
||||
$"2E64 0F43 6F6E 7665 7273 696F 6E42 6C6F" /* .d.ConversionBlo */
|
||||
$"636B 0000 2E66 0000 2F05 0953 4D53 7461" /* ck...f../..SMSta */
|
||||
$"7475 7300 0000 2F07 0000 304A 0953 4353" /* tus.../...0J.SCS */
|
||||
$"7461 7475 7300 0000 3266 0000 33CE 1553" /* tatus...2f..3..S */
|
||||
$"6E64 446F 7562 6C65 4275 6666 6572 4865" /* ndDoubleBufferHe */
|
||||
$"6164 6572 0000 33F8 0000 3459 0D53 6E64" /* ader..3...4Y.Snd */
|
||||
$"446F 436F 6D6D 616E 6400 0000 345A 0000" /* DoCommand...4Z.. */
|
||||
$"34AE 0F53 6E64 446F 496D 6D65 6469 6174" /* 4..SndDoImmediat */
|
||||
$"6500 0000 3523 0000 3575 1153 6E64 4469" /* e...5#..5u.SndDi */
|
||||
$"7370 6F73 6543 6861 6E6E 656C 0000 3576" /* sposeChannel..5v */
|
||||
$"0000 35C9 0753 6E64 506C 6179 0000 35CA" /* ..5..SndPlay..5. */
|
||||
$"0000 3631 0F53 6E64 4164 644D 6F64 6966" /* ..61.SndAddModif */
|
||||
$"6965 7200 0000 3632 0000 3672 0B53 6E64" /* ier...62..6r.Snd */
|
||||
$"436F 6E74 726F 6C00 0000 3674 0000 369A" /* Control...6t..6. */
|
||||
$"0B53 6574 536F 756E 6456 6F6C 0000 369B" /* .SetSoundVol..6. */
|
||||
$"0000 3703 0B47 6574 536F 756E 6456 6F6C" /* ..7..GetSoundVol */
|
||||
$"0000 3704 0000 3763 0B53 7461 7274 536F" /* ..7...7c.StartSo */
|
||||
$"756E 6400 0000 3764 0000 3781 0953 746F" /* und...7d..7..Sto */
|
||||
$"7053 6F75 6E64 0000 3B33 0000 3BB0 1353" /* pSound..;3..;..S */
|
||||
$"6E64 506C 6179 446F 7562 6C65 4275 6666" /* ndPlayDoubleBuff */
|
||||
$"6572 0000 3E6B 0000 3F39 0745 7870 3174" /* er..>k..?9.Exp1t */
|
||||
$"6F36" /* o6 */
|
||||
};
|
||||
|
||||
data 'MPSR' (1008) {
|
||||
$"002A 0003 0142 01E3 002A 0003 0142 01E3" /* .*...B...*...B.. */
|
||||
$"0000 0000 0000 0000 0000 0000 0000" /* .............. */
|
||||
};
|
||||
|
||||
data 'vers' (1, purgeable) {
|
||||
$"0320 8000 0000 0533 2E32 2E30 2433 2E32" /* . .....3.2.0$3.2 */
|
||||
$"2E30 20A9 2041 7070 6C65 2043 6F6D 7075" /* .0 . Apple Compu */
|
||||
$"7465 722C 2049 6E63 2E20 3139 3835 2D39" /* ter, Inc. 1985-9 */
|
||||
$"31" /* 1 */
|
||||
};
|
||||
|
||||
data 'vers' (2, purgeable) {
|
||||
$"0320 8000 0000 0333 2E32 074D 5057 2033" /* . .....3.2.MPW 3 */
|
||||
$"2E32" /* .2 */
|
||||
};
|
||||
|
461
Interfaces/PInterfaces/Sound.p
Normal file
461
Interfaces/PInterfaces/Sound.p
Normal file
@ -0,0 +1,461 @@
|
||||
{
|
||||
Hacks to match MacOS (most recent first):
|
||||
|
||||
<Sys7.1> 8/3/92 Copied from MPW Interfaces because SoundMgr and headers are missing from
|
||||
SuperMario ROM source (header preserved below)
|
||||
}
|
||||
|
||||
{
|
||||
Created: Monday, December 2, 1991 at 5:09 PM
|
||||
Sound.p
|
||||
Pascal Interface to the Macintosh Libraries
|
||||
|
||||
Copyright Apple Computer, Inc. 1986-1991
|
||||
All rights reserved
|
||||
}
|
||||
|
||||
|
||||
{$IFC UNDEFINED UsingIncludes}
|
||||
{$SETC UsingIncludes := 0}
|
||||
{$ENDC}
|
||||
|
||||
{$IFC NOT UsingIncludes}
|
||||
UNIT Sound;
|
||||
INTERFACE
|
||||
{$ENDC}
|
||||
|
||||
{$IFC UNDEFINED UsingSound}
|
||||
{$SETC UsingSound := 1}
|
||||
|
||||
{$I+}
|
||||
{$SETC SoundIncludes := UsingIncludes}
|
||||
{$SETC UsingIncludes := 1}
|
||||
{$IFC UNDEFINED UsingTypes}
|
||||
{$I $$Shell(PInterfaces)Types.p}
|
||||
{$ENDC}
|
||||
{$IFC UNDEFINED UsingFiles}
|
||||
{$I $$Shell(PInterfaces)Files.p}
|
||||
{$ENDC}
|
||||
{$SETC UsingIncludes := SoundIncludes}
|
||||
|
||||
CONST
|
||||
swMode = -1; { Sound Driver modes }
|
||||
ftMode = 1;
|
||||
ffMode = 0;
|
||||
|
||||
synthCodeRsrc = 'snth'; { Resource types used by Sound Manager }
|
||||
soundListRsrc = 'snd ';
|
||||
|
||||
twelfthRootTwo = 1.05946309434;
|
||||
rate22khz = $56EE8BA3; { 22254.54545 in fixed-point }
|
||||
rate11khz = $2B7745D1; { 11127.27273 in fixed-point }
|
||||
|
||||
{ synthesizer numbers for SndNewChannel }
|
||||
squareWaveSynth = 1; {square wave synthesizer}
|
||||
waveTableSynth = 3; {wave table synthesizer}
|
||||
sampledSynth = 5; {sampled sound synthesizer}
|
||||
|
||||
{ old Sound Manager MACE synthesizer numbers }
|
||||
MACE3snthID = 11;
|
||||
MACE6snthID = 13;
|
||||
|
||||
{ command numbers for SndDoCommand and SndDoImmediate }
|
||||
nullCmd = 0;
|
||||
initCmd = 1;
|
||||
freeCmd = 2;
|
||||
quietCmd = 3;
|
||||
flushCmd = 4;
|
||||
reInitCmd = 5;
|
||||
|
||||
waitCmd = 10;
|
||||
pauseCmd = 11;
|
||||
resumeCmd = 12;
|
||||
callBackCmd = 13;
|
||||
syncCmd = 14;
|
||||
emptyCmd = 15;
|
||||
|
||||
tickleCmd = 20;
|
||||
requestNextCmd = 21;
|
||||
howOftenCmd = 22;
|
||||
wakeUpCmd = 23;
|
||||
availableCmd = 24;
|
||||
versionCmd = 25;
|
||||
totalLoadCmd = 26;
|
||||
loadCmd = 27;
|
||||
|
||||
scaleCmd = 30;
|
||||
tempoCmd = 31;
|
||||
|
||||
freqDurationCmd = 40;
|
||||
restCmd = 41;
|
||||
freqCmd = 42;
|
||||
ampCmd = 43;
|
||||
timbreCmd = 44;
|
||||
getAmpCmd = 45;
|
||||
|
||||
waveTableCmd = 60;
|
||||
phaseCmd = 61;
|
||||
|
||||
soundCmd = 80;
|
||||
bufferCmd = 81;
|
||||
rateCmd = 82;
|
||||
continueCmd = 83;
|
||||
doubleBufferCmd = 84;
|
||||
getRateCmd = 85;
|
||||
|
||||
sizeCmd = 90;
|
||||
convertCmd = 91;
|
||||
|
||||
stdQLength = 128;
|
||||
dataOffsetFlag = $8000;
|
||||
|
||||
waveInitChannelMask = $07;
|
||||
waveInitChannel0 = $04;
|
||||
waveInitChannel1 = $05;
|
||||
waveInitChannel2 = $06;
|
||||
waveInitChannel3 = $07;
|
||||
|
||||
{ channel initialization parameters }
|
||||
initPanMask = $0003; { mask for right/left pan values }
|
||||
initSRateMask = $0030; { mask for sample rate values }
|
||||
initStereoMask = $00C0; { mask for mono/stereo values }
|
||||
initCompMask = $FF00; { mask for compression IDs }
|
||||
|
||||
initChanLeft = $0002; { left stereo channel }
|
||||
initChanRight = $0003; { right stereo channel }
|
||||
initNoInterp = $0004; { no linear interpolation }
|
||||
initNoDrop = $0008; { no drop-sample conversion }
|
||||
initMono = $0080; { monophonic channel }
|
||||
initStereo = $00C0; { stereo channel }
|
||||
initMACE3 = $0300; { MACE 3:1 }
|
||||
initMACE6 = $0400; { MACE 6:1 }
|
||||
|
||||
initChan0 = $0004; { channel 0 - wave table only }
|
||||
initChan1 = $0005; { channel 1 - wave table only }
|
||||
initChan2 = $0006; { channel 2 - wave table only }
|
||||
initChan3 = $0007; { channel 3 - wave table only }
|
||||
|
||||
stdSH = $00; { Standard sound header encode value }
|
||||
extSH = $FF; { Extended sound header encode value }
|
||||
cmpSH = $FE; { Compressed sound header encode value }
|
||||
|
||||
notCompressed = 0; { compression ID's }
|
||||
twoToOne = 1;
|
||||
eightToThree = 2;
|
||||
threeToOne = 3;
|
||||
sixToOne = 4;
|
||||
|
||||
outsideCmpSH = 0; { MACE constants }
|
||||
insideCmpSH = 1;
|
||||
aceSuccess = 0;
|
||||
aceMemFull = 1;
|
||||
aceNilBlock = 2;
|
||||
aceBadComp = 3;
|
||||
aceBadEncode = 4;
|
||||
aceBadDest = 5;
|
||||
aceBadCmd = 6;
|
||||
sixToOnePacketSize = 8;
|
||||
threeToOnePacketSize = 16;
|
||||
stateBlockSize = 64;
|
||||
leftOverBlockSize = 32;
|
||||
|
||||
firstSoundFormat = $0001; { general sound format }
|
||||
secondSoundFormat = $0002; { special sampled sound format (HyperCard) }
|
||||
|
||||
dbBufferReady = $00000001; { double buffer is filled }
|
||||
dbLastBuffer = $00000004; { last double buffer to play }
|
||||
|
||||
sysBeepDisable = $0000; { SysBeep() enable flags }
|
||||
sysBeepEnable = $0001;
|
||||
|
||||
unitTypeNoSelection = $FFFF; { unitTypes for AudioSelection.unitType }
|
||||
unitTypeSeconds = $0000;
|
||||
|
||||
TYPE
|
||||
{ Structures for Sound Driver }
|
||||
|
||||
|
||||
FreeWave = PACKED ARRAY [0..30000] OF Byte;
|
||||
|
||||
FFSynthPtr = ^FFSynthRec;
|
||||
FFSynthRec = RECORD
|
||||
mode: INTEGER;
|
||||
count: Fixed;
|
||||
waveBytes: FreeWave;
|
||||
END;
|
||||
|
||||
Tone = RECORD
|
||||
count: INTEGER;
|
||||
amplitude: INTEGER;
|
||||
duration: INTEGER;
|
||||
END;
|
||||
|
||||
|
||||
Tones = ARRAY [0..5000] OF Tone;
|
||||
|
||||
SWSynthPtr = ^SWSynthRec;
|
||||
SWSynthRec = RECORD
|
||||
mode: INTEGER;
|
||||
triplets: Tones;
|
||||
END;
|
||||
|
||||
|
||||
Wave = PACKED ARRAY [0..255] OF Byte;
|
||||
WavePtr = ^Wave;
|
||||
|
||||
FTSndRecPtr = ^FTSoundRec;
|
||||
FTSoundRec = RECORD
|
||||
duration: INTEGER;
|
||||
sound1Rate: Fixed;
|
||||
sound1Phase: LONGINT;
|
||||
sound2Rate: Fixed;
|
||||
sound2Phase: LONGINT;
|
||||
sound3Rate: Fixed;
|
||||
sound3Phase: LONGINT;
|
||||
sound4Rate: Fixed;
|
||||
sound4Phase: LONGINT;
|
||||
sound1Wave: WavePtr;
|
||||
sound2Wave: WavePtr;
|
||||
sound3Wave: WavePtr;
|
||||
sound4Wave: WavePtr;
|
||||
END;
|
||||
|
||||
FTSynthPtr = ^FTSynthRec;
|
||||
FTSynthRec = RECORD
|
||||
mode: INTEGER;
|
||||
sndRec: FTSndRecPtr;
|
||||
END;
|
||||
|
||||
{ Structures for Sound Manager }
|
||||
|
||||
SndCommand = PACKED RECORD
|
||||
cmd: INTEGER;
|
||||
param1: INTEGER;
|
||||
param2: LONGINT;
|
||||
END;
|
||||
|
||||
|
||||
Time = LONGINT; { in half milliseconds }
|
||||
|
||||
|
||||
|
||||
SndChannelPtr = ^SndChannel;
|
||||
SndChannel = PACKED RECORD
|
||||
nextChan: SndChannelPtr;
|
||||
firstMod: Ptr; { reserved for the Sound Manager }
|
||||
callBack: ProcPtr;
|
||||
userInfo: LONGINT;
|
||||
wait: Time; { The following is for internal Sound Manager use only.}
|
||||
cmdInProgress: SndCommand;
|
||||
flags: INTEGER;
|
||||
qLength: INTEGER;
|
||||
qHead: INTEGER; { next spot to read or -1 if empty }
|
||||
qTail: INTEGER; { next spot to write = qHead if full }
|
||||
queue: ARRAY [0..stdQLength - 1] OF SndCommand;
|
||||
END;
|
||||
|
||||
{ MACE structures }
|
||||
StateBlockPtr = ^StateBlock;
|
||||
StateBlock = RECORD
|
||||
stateVar: ARRAY [0..stateBlockSize - 1] OF INTEGER;
|
||||
END;
|
||||
|
||||
LeftOverBlockPtr = ^LeftOverBlock;
|
||||
LeftOverBlock = RECORD
|
||||
count: LONGINT;
|
||||
sampleArea: PACKED ARRAY [0..leftOverBlockSize - 1] OF Byte;
|
||||
END;
|
||||
|
||||
ModRef = RECORD
|
||||
modNumber: INTEGER;
|
||||
modInit: LONGINT;
|
||||
END;
|
||||
|
||||
SndListPtr = ^SndListResource;
|
||||
SndListResource = RECORD
|
||||
format: INTEGER;
|
||||
numModifiers: INTEGER;
|
||||
modifierPart: ARRAY [0..0] OF ModRef; {This is a variable length array}
|
||||
numCommands: INTEGER;
|
||||
commandPart: ARRAY [0..0] OF SndCommand; {This is a variable length array}
|
||||
dataPart: PACKED ARRAY [0..0] OF Byte; {This is a variable length array}
|
||||
END;
|
||||
|
||||
SoundHeaderPtr = ^SoundHeader;
|
||||
SoundHeader = PACKED RECORD
|
||||
samplePtr: Ptr; { if NIL then samples are in sampleArea }
|
||||
length: LONGINT; { length of sound in bytes }
|
||||
sampleRate: Fixed; { sample rate for this sound }
|
||||
loopStart: LONGINT; { start of looping portion }
|
||||
loopEnd: LONGINT; { end of looping portion }
|
||||
encode: Byte; { header encoding }
|
||||
baseFrequency: Byte; { baseFrequency value }
|
||||
sampleArea: PACKED ARRAY [0..0] OF Byte;
|
||||
END;
|
||||
|
||||
CmpSoundHeaderPtr = ^CmpSoundHeader;
|
||||
CmpSoundHeader = PACKED RECORD
|
||||
samplePtr: Ptr; { if nil then samples are in sample area }
|
||||
numChannels: LONGINT; { number of channels i.e. mono = 1 }
|
||||
sampleRate: Fixed; { sample rate in Apples Fixed point representation }
|
||||
loopStart: LONGINT; { loopStart of sound before compression }
|
||||
loopEnd: LONGINT; { loopEnd of sound before compression }
|
||||
encode: Byte; { data structure used , stdSH, extSH, or cmpSH }
|
||||
baseFrequency: Byte; { same meaning as regular SoundHeader }
|
||||
numFrames: LONGINT; { length in frames ( packetFrames or sampleFrames ) }
|
||||
AIFFSampleRate: Extended80; { IEEE sample rate }
|
||||
markerChunk: Ptr; { sync track }
|
||||
futureUse1: Ptr; { reserved by Apple }
|
||||
futureUse2: Ptr; { reserved by Apple }
|
||||
stateVars: StateBlockPtr; { pointer to State Block }
|
||||
leftOverSamples: LeftOverBlockPtr; { used to save truncated samples between compression calls }
|
||||
compressionID: INTEGER; { 0 means no compression, non zero means compressionID }
|
||||
packetSize: INTEGER; { number of bits in compressed sample packet }
|
||||
snthID: INTEGER; { resource ID of Sound Manager snth that contains NRT C/E }
|
||||
sampleSize: INTEGER; { number of bits in non-compressed sample }
|
||||
sampleArea: PACKED ARRAY [0..0] OF Byte; { space for when samples follow directly }
|
||||
END;
|
||||
|
||||
ExtSoundHeaderPtr = ^ExtSoundHeader;
|
||||
ExtSoundHeader = PACKED RECORD
|
||||
samplePtr: Ptr; { if nil then samples are in sample area }
|
||||
numChannels: LONGINT; { number of channels, ie mono = 1 }
|
||||
sampleRate: Fixed; { sample rate in Apples Fixed point representation }
|
||||
loopStart: LONGINT; { same meaning as regular SoundHeader }
|
||||
loopEnd: LONGINT; { same meaning as regular SoundHeader }
|
||||
encode: Byte; { data structure used , stdSH, extSH, or cmpSH }
|
||||
baseFrequency: Byte; { same meaning as regular SoundHeader }
|
||||
numFrames: LONGINT; { length in total number of frames }
|
||||
AIFFSampleRate: Extended80; { IEEE sample rate }
|
||||
markerChunk: Ptr; { sync track }
|
||||
instrumentChunks: Ptr; { AIFF instrument chunks }
|
||||
AESRecording: Ptr;
|
||||
sampleSize: INTEGER; { number of bits in sample }
|
||||
futureUse1: INTEGER; { reserved by Apple }
|
||||
futureUse2: LONGINT; { reserved by Apple }
|
||||
futureUse3: LONGINT; { reserved by Apple }
|
||||
futureUse4: LONGINT; { reserved by Apple }
|
||||
sampleArea: PACKED ARRAY [0..0] OF Byte; { space for when samples follow directly }
|
||||
END;
|
||||
|
||||
ConversionBlockPtr = ^ConversionBlock;
|
||||
ConversionBlock = RECORD
|
||||
destination: INTEGER;
|
||||
unused: INTEGER;
|
||||
inputPtr: CmpSoundHeaderPtr;
|
||||
outputPtr: CmpSoundHeaderPtr;
|
||||
END;
|
||||
|
||||
SMStatusPtr = ^SMStatus;
|
||||
SMStatus = PACKED RECORD
|
||||
smMaxCPULoad: INTEGER;
|
||||
smNumChannels: INTEGER;
|
||||
smCurCPULoad: INTEGER;
|
||||
END;
|
||||
|
||||
SCStatusPtr = ^SCStatus;
|
||||
SCStatus = RECORD
|
||||
scStartTime: Fixed;
|
||||
scEndTime: Fixed;
|
||||
scCurrentTime: Fixed;
|
||||
scChannelBusy: BOOLEAN;
|
||||
scChannelDisposed: BOOLEAN;
|
||||
scChannelPaused: BOOLEAN;
|
||||
scUnused: BOOLEAN;
|
||||
scChannelAttributes: LONGINT;
|
||||
scCPULoad: LONGINT;
|
||||
END;
|
||||
|
||||
AudioSelectionPtr = ^AudioSelection;
|
||||
AudioSelection = PACKED RECORD
|
||||
unitType: LONGINT;
|
||||
selStart: Fixed;
|
||||
selEnd: Fixed;
|
||||
END;
|
||||
|
||||
SndDoubleBufferPtr = ^SndDoubleBuffer;
|
||||
SndDoubleBuffer = PACKED RECORD
|
||||
dbNumFrames: LONGINT;
|
||||
dbFlags: LONGINT;
|
||||
dbUserInfo: ARRAY [0..1] OF LONGINT;
|
||||
dbSoundData: PACKED ARRAY [0..0] OF Byte;
|
||||
END;
|
||||
|
||||
SndDoubleBufferHeaderPtr = ^SndDoubleBufferHeader;
|
||||
SndDoubleBufferHeader = PACKED RECORD
|
||||
dbhNumChannels: INTEGER;
|
||||
dbhSampleSize: INTEGER;
|
||||
dbhCompressionID: INTEGER;
|
||||
dbhPacketSize: INTEGER;
|
||||
dbhSampleRate: Fixed;
|
||||
dbhBufferPtr: ARRAY [0..1] OF SndDoubleBufferPtr;
|
||||
dbhDoubleBack: ProcPtr;
|
||||
END;
|
||||
|
||||
|
||||
FUNCTION SndDoCommand(chan: SndChannelPtr;cmd: SndCommand;noWait: BOOLEAN): OSErr;
|
||||
INLINE $A803;
|
||||
FUNCTION SndDoImmediate(chan: SndChannelPtr;cmd: SndCommand): OSErr;
|
||||
INLINE $A804;
|
||||
FUNCTION SndNewChannel(VAR chan: SndChannelPtr;synth: INTEGER;init: LONGINT;
|
||||
userRoutine: ProcPtr): OSErr;
|
||||
INLINE $A807;
|
||||
FUNCTION SndDisposeChannel(chan: SndChannelPtr;quietNow: BOOLEAN): OSErr;
|
||||
INLINE $A801;
|
||||
FUNCTION SndPlay(chan: SndChannelPtr;sndHdl: Handle;async: BOOLEAN): OSErr;
|
||||
INLINE $A805;
|
||||
FUNCTION SndAddModifier(chan: SndChannelPtr;modifier: ProcPtr;id: INTEGER;
|
||||
init: LONGINT): OSErr;
|
||||
INLINE $A802;
|
||||
FUNCTION SndControl(id: INTEGER;VAR cmd: SndCommand): OSErr;
|
||||
INLINE $A806;
|
||||
|
||||
PROCEDURE SetSoundVol(level: INTEGER);
|
||||
PROCEDURE GetSoundVol(VAR level: INTEGER);
|
||||
PROCEDURE StartSound(synthRec: Ptr;numBytes: LONGINT;completionRtn: ProcPtr);
|
||||
PROCEDURE StopSound;
|
||||
FUNCTION SoundDone: BOOLEAN;
|
||||
|
||||
FUNCTION SndSoundManagerVersion: NumVersion;
|
||||
INLINE $203C,$000C,$0008,$A800;
|
||||
FUNCTION SndStartFilePlay(chan: SndChannelPtr;fRefNum: INTEGER;resNum: INTEGER;
|
||||
bufferSize: LONGINT;theBuffer: Ptr;theSelection: AudioSelectionPtr;theCompletion: ProcPtr;
|
||||
async: BOOLEAN): OSErr;
|
||||
INLINE $203C,$0D00,$0008,$A800;
|
||||
FUNCTION SndPauseFilePlay(chan: SndChannelPtr): OSErr;
|
||||
INLINE $203C,$0204,$0008,$A800;
|
||||
FUNCTION SndStopFilePlay(chan: SndChannelPtr;async: BOOLEAN): OSErr;
|
||||
INLINE $203C,$0308,$0008,$A800;
|
||||
FUNCTION SndChannelStatus(chan: SndChannelPtr;theLength: INTEGER;theStatus: SCStatusPtr): OSErr;
|
||||
INLINE $203C,$0010,$0008,$A800;
|
||||
FUNCTION SndManagerStatus(theLength: INTEGER;theStatus: SMStatusPtr): OSErr;
|
||||
INLINE $203C,$0014,$0008,$A800;
|
||||
PROCEDURE SndGetSysBeepState(VAR sysBeepState: INTEGER);
|
||||
INLINE $203C,$0018,$0008,$A800;
|
||||
FUNCTION SndSetSysBeepState(sysBeepState: INTEGER): OSErr;
|
||||
INLINE $203C,$001C,$0008,$A800;
|
||||
FUNCTION SndPlayDoubleBuffer(chan: SndChannelPtr;theParams: SndDoubleBufferHeaderPtr): OSErr;
|
||||
INLINE $203C,$0020,$0008,$A800;
|
||||
|
||||
FUNCTION MACEVersion: NumVersion;
|
||||
INLINE $203C,$0000,$0010,$A800;
|
||||
PROCEDURE Comp3to1(inBuffer: Ptr;outBuffer: Ptr;cnt: LONGINT;inState: Ptr;
|
||||
outState: Ptr;numChannels: LONGINT;whichChannel: LONGINT);
|
||||
INLINE $203C,$0004,$0010,$A800;
|
||||
PROCEDURE Exp1to3(inBuffer: Ptr;outBuffer: Ptr;cnt: LONGINT;inState: Ptr;
|
||||
outState: Ptr;numChannels: LONGINT;whichChannel: LONGINT);
|
||||
INLINE $203C,$0008,$0010,$A800;
|
||||
PROCEDURE Comp6to1(inBuffer: Ptr;outBuffer: Ptr;cnt: LONGINT;inState: Ptr;
|
||||
outState: Ptr;numChannels: LONGINT;whichChannel: LONGINT);
|
||||
INLINE $203C,$000C,$0010,$A800;
|
||||
PROCEDURE Exp1to6(inBuffer: Ptr;outBuffer: Ptr;cnt: LONGINT;inState: Ptr;
|
||||
outState: Ptr;numChannels: LONGINT;whichChannel: LONGINT);
|
||||
INLINE $203C,$0010,$0010,$A800;
|
||||
|
||||
|
||||
{$ENDC} { UsingSound }
|
||||
|
||||
{$IFC NOT UsingIncludes}
|
||||
END.
|
||||
{$ENDC}
|
||||
|
1
Interfaces/PInterfaces/Sound.p.idump
Normal file
1
Interfaces/PInterfaces/Sound.p.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
@ -1,3 +1,11 @@
|
||||
/*
|
||||
Hacks to match MacOS (most recent first):
|
||||
|
||||
<Sys7.1> 8/3/92 Reverted <SM4>: replaced new 'actb' with old, and old with older
|
||||
Referred to the MPW 3.2 version of this file (1990, E.T.O. #4)
|
||||
9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
*/
|
||||
|
||||
/*
|
||||
File: Types.r
|
||||
|
||||
@ -148,23 +156,15 @@ type 'acur' {
|
||||
#ifdef oldTemp
|
||||
/*--------------------------actb • Alert Color old Lookup Table--------------------------*/
|
||||
type 'actb' {
|
||||
unsigned hex longint = 0; /* ctSeed */
|
||||
integer = 0; /* ctFlags */
|
||||
unsigned hex longint; /* ctSeed */
|
||||
integer; /* ctFlags */
|
||||
integer = $$Countof(ColorSpec) - 1; /* ctSize */
|
||||
wide array ColorSpec {
|
||||
integer wContentColor, /* value */
|
||||
wFrameColor,
|
||||
wTextColor,
|
||||
wHiliteColor,
|
||||
wTitleBarColor,
|
||||
wHiliteLight,
|
||||
wHiliteDark,
|
||||
wTitleBarLight,
|
||||
wTitleBarDark,
|
||||
wDialogLight,
|
||||
wDialogDark,
|
||||
wTingeLight,
|
||||
wTingeDark;
|
||||
wTitleBarColor;
|
||||
unsigned integer; /* RGB: red */
|
||||
unsigned integer; /* green */
|
||||
unsigned integer; /* blue */
|
||||
@ -174,7 +174,7 @@ type 'acur' {
|
||||
/*----------------------------actb • Alert Color Lookup Table----------------------------*/
|
||||
type 'actb' {
|
||||
unsigned hex longint = 0; /* ctSeed */
|
||||
integer = 1; /* ctFlags */
|
||||
integer = 0; /* ctFlags */
|
||||
integer = $$Countof(ColorSpec) - 1; /* ctSize */
|
||||
wide array ColorSpec {
|
||||
integer wContentColor, /* value */
|
||||
|
@ -1,3 +1,12 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <SM2> by uncommenting talkCmd and listenCmd
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
; Clean diff against SuperMario
|
||||
;
|
||||
|
||||
;
|
||||
; File: AppleDeskBusPriv.a
|
||||
;
|
||||
@ -48,8 +57,8 @@ __INCLUDINGAPPLEDESKBUSPRIV__ SET 1
|
||||
|
||||
maskADBCmd EQU $0C ; Mask for ADB command
|
||||
resetCmd EQU $00 ; Command for Bus Reset
|
||||
; <SM2> rb talkCmd EQU $0C ; Command for Talk R0
|
||||
; <SM2> rb listenCmd EQU $08 ; Command for Listen R0
|
||||
talkCmd EQU $0C ; Command for Talk R0 ex<SM2> <Sys7.1>
|
||||
listenCmd EQU $08 ; Command for Listen R0 ex<SM2> <Sys7.1>
|
||||
kbdAddr EQU $02 ; keyboard type device
|
||||
mouseAddr EQU $03 ; mouse type device
|
||||
numFDBAdr EQU 16 ; number of avaiblae FDB address
|
||||
|
@ -1,3 +1,12 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <SM2>, slimming CTBBlock back down
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
; Clean diff against SuperMario
|
||||
;
|
||||
|
||||
;
|
||||
; File: CommToolboxPriv.a
|
||||
;
|
||||
@ -260,7 +269,7 @@ private DS.W 1 ; INTEGER;
|
||||
appList DS.L 1 ; CRMAppRecPtr;
|
||||
resFiles DS.L 1 ; ResFileRecHdl;
|
||||
toolResChain DS.L 1 ; ResourceMapHandle;
|
||||
CommToolBoxTable DS.L 1 ; ptr to table
|
||||
; ex<SM2> <Sys7.1>
|
||||
secret DS.L 16 ; LONGINT
|
||||
CTBBlockSize EQU *
|
||||
ENDR
|
||||
|
@ -1,3 +1,12 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Restored the misspelt 'signiture' that was corrected by <19>
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
; Clean diff against SuperMario
|
||||
;
|
||||
|
||||
;
|
||||
; File: Decompression.a
|
||||
;
|
||||
@ -195,6 +204,7 @@ maxReplacement EQU 6 ;end of substitution list.
|
||||
;
|
||||
;---------------------------------------------------------------------------------
|
||||
ExtendedResource Record 0
|
||||
signiture ;<Sys7.1>
|
||||
signature DS.L 1 ;used for robustness. Tells if data is compressed now.
|
||||
headerLength DS.W 1 ;length of this header in bytes.
|
||||
headerVersion DS.B 1 ;number of items in this header. ( must be < 128 ).
|
||||
|
5
Internal/Asm/DecompressorPatchEqu.a
Normal file
5
Internal/Asm/DecompressorPatchEqu.a
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
; Shim to point source to a compatible include file
|
||||
;
|
||||
|
||||
INCLUDE 'Decompression.a'
|
1
Internal/Asm/DecompressorPatchEqu.a.idump
Normal file
1
Internal/Asm/DecompressorPatchEqu.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
@ -1,3 +1,16 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Restored the machine-specific equates for Plus/SE/Portable/"Universal
|
||||
; 16-bit", which required some of the default equates to be
|
||||
; conditionalised for onMac32 ("Universal 32-bit") to prevent double-
|
||||
; defines. Restored vBufD equate for SE. Reconstructed some of the
|
||||
; "private sound defines" that <SM27> moved to the lost SoundPrivate.a.
|
||||
; Commented out a small number of newer equates that conflict with other
|
||||
; files.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;__________________________________________________________________________________________________
|
||||
;
|
||||
; File: HardwarePrivateEqu.a
|
||||
@ -218,6 +231,25 @@ __INCLUDINGHARDWAREPRIVATEEQU__ SET 1
|
||||
|
||||
|
||||
|
||||
; <Sys7.1> Assume onMac32 unless one of the old machines is defined
|
||||
IF (&TYPE('onMac') = 'UNDEFINED') THEN
|
||||
onMac: EQU 0
|
||||
ENDIF
|
||||
IF (&TYPE('onMacPP') = 'UNDEFINED') THEN
|
||||
onMacPP: EQU 0
|
||||
ENDIF
|
||||
IF (&TYPE('onHcMac') = 'UNDEFINED') THEN
|
||||
onHcMac: EQU 0
|
||||
ENDIF
|
||||
IF (&TYPE('onMac16') = 'UNDEFINED') THEN
|
||||
onMac16: EQU 0
|
||||
ENDIF
|
||||
IF (&TYPE('onMac32') = 'UNDEFINED') THEN
|
||||
onMac32: EQU NOT (onMac OR onMacPP OR onHcMac OR onMac16)
|
||||
ENDIF
|
||||
|
||||
|
||||
|
||||
;__________________________________________________________________________________________
|
||||
;
|
||||
; Welcome to the New Hardware Equates File. By following some simple procedures this file
|
||||
@ -432,6 +464,34 @@ sDTIME EQU $140
|
||||
|
||||
sTEST equ $180
|
||||
|
||||
;---------------------------------------------------
|
||||
; Apple Sound Chip register offsets ex<SM27> <Sys7.1>
|
||||
;---------------------------------------------------
|
||||
|
||||
ascVersion EQU $800 ; [byte]
|
||||
ascMode EQU $801 ; [byte] 2 means waveform
|
||||
ascChipControl EQU $802 ; [byte]
|
||||
ascFifoControl EQU $803 ; [byte]
|
||||
ascFifoInt EQU $804 ; [byte]
|
||||
ascWaveOneShot EQU $805 ; [byte]
|
||||
ascVolControl EQU $806 ; [byte]
|
||||
ascClockRate EQU $807 ; [byte]
|
||||
ascPlayRecA EQU $80a ; [byte]
|
||||
ascPlayRecB EQU $80b ; [byte]
|
||||
ascTestReg EQU $80f ; [byte]
|
||||
|
||||
bmSrcTimeIncrA EQU $f04 ; [byte]
|
||||
bmSrcTimeIncrB EQU $f24 ; [byte]
|
||||
bmLeftScaleA EQU $f06 ; [byte]
|
||||
bmLeftScaleB EQU $f26 ; [byte]
|
||||
bmRightScaleA EQU $f07 ; [byte]
|
||||
bmRightScaleB EQU $f27 ; [byte]
|
||||
bmFifoControlA EQU $f08 ; [byte]
|
||||
bmFifoControlB EQU $f28 ; [byte]
|
||||
bmIntControlA EQU $f09 ; [byte]
|
||||
bmIntControlB EQU $f29 ; [byte]
|
||||
|
||||
|
||||
;__________________________________________________________________________________________
|
||||
;
|
||||
;
|
||||
@ -651,7 +711,9 @@ vPCR EQU $1800 ; PERIPH. CONTROL REG.
|
||||
vIFR EQU $1A00 ; INT. FLAG REG.
|
||||
vIER EQU $1C00 ; INT. ENABLE REG.
|
||||
vBufA EQU $1E00 ; BUFFER A
|
||||
IF onMac32 THEN ; <Sys7.1> Prevent double-define below
|
||||
vBufD EQU vBufA ; disk head select is buffer A <3.5>
|
||||
ENDIF ; <Sys7.1>
|
||||
|
||||
;---------------------------------------------------
|
||||
; VIA IFR/IER bits
|
||||
@ -673,7 +735,9 @@ ifIRQ EQU 7 ; any interrupt
|
||||
|
||||
vSound EQU $7 ; sound volume bits (0..2) (output)
|
||||
|
||||
IF onMac32 THEN ; <Sys7.1> Prevent double-define below
|
||||
vTestJ EQU 0 ; Burn In Test jumper (input)
|
||||
ENDIF ; <Sys7.1>
|
||||
|
||||
vCpuId0 EQU 1 ; CPU Identification bit 0 (input)
|
||||
vCpuId1 EQU 2 ; CPU Identification bit 1 (input)
|
||||
@ -2235,20 +2299,28 @@ MEMCRefresh EQU MEMCconfig+4 ; DRAM refresh rate register
|
||||
; Interrupt Masks
|
||||
;---------------------------------------------------
|
||||
|
||||
IF onMac32 THEN ; <Sys7.1> Prevent double-define below
|
||||
hiIntMask EQU $0700 ; programmer switch only
|
||||
ENDIF ; <Sys7.1>
|
||||
pwrOffEnbl EQU $2500 ; mask to allow poweroff interrupts
|
||||
IF onMac32 THEN ; <Sys7.1> Prevent double-define below
|
||||
sccIntMask EQU $0400 ; SCC interrupt level
|
||||
sccEnblMask EQU $FBFF ; mask to enable SCC interrupts
|
||||
ENDIF ; <Sys7.1>
|
||||
slotIntMask EQU $0200 ; slot's interrupt level <v1.4><1.9>
|
||||
IF onMac32 THEN ; <Sys7.1> Prevent double-define below
|
||||
viaIntMask EQU $0100 ; VIA1 interrupt level
|
||||
loIntMask EQU $0100
|
||||
ENDIF ; <Sys7.1>
|
||||
|
||||
|
||||
;---------------------------------------------------
|
||||
; Hardware Base Addresses
|
||||
;---------------------------------------------------
|
||||
|
||||
IF onMac32 THEN ; <Sys7.1> Prevent double-define below
|
||||
WrOffs EQU 0 ; SCSI write addrs are same as read base
|
||||
ENDIF ; <Sys7.1>
|
||||
MskIOP1 EQU 1 ; IOP 1 (SWIM) is level 1 interrupt
|
||||
MskVIA1 EQU 1 ; VIA 1 is level 1
|
||||
MskADB EQU 1 ; ADB is level 1
|
||||
@ -2336,23 +2408,30 @@ CACR_WA_030 EQU 13 ; bit # of write allocate enable on 030s <T8>
|
||||
|
||||
|
||||
|
||||
IF onMac32 THEN ; <Sys7.1> Prevent double-define below
|
||||
Machine EQU 7 ; new Machine number for patches <18>
|
||||
ENDIF ; <Sys7.1>
|
||||
|
||||
;---------------------------------------------------
|
||||
; System Software Information
|
||||
;---------------------------------------------------
|
||||
|
||||
IF onMac32 THEN ; <Sys7.1> Prevent double-define below
|
||||
numOsTrap EQU 256 ; number of os traps
|
||||
ToolTable EQU $0E00 ; start of toolbox trap table
|
||||
numTbTrap EQU 1024 ; number of toolbox traps
|
||||
numTrapMask EQU numTbTrap-1 ; mask for number of tb traps
|
||||
ENDIF ; <Sys7.1>
|
||||
JMemMgr24 EQU $1E00 ; jump vector start for 24 bit Memory Manager <v1.9>
|
||||
JMemMgr32 EQU $1F00 ; jump vector start for 32 bit Memory Manager <v1.9>
|
||||
IF onMac32 THEN ; <Sys7.1> Prevent double-define below
|
||||
HeapStart EQU $2800 ; Low mem is now 10k bytes <SM13>
|
||||
defSysHeap EQU $18000 ; Default size of the system heap
|
||||
nDfltStackSize EQU $6000 ; Default stack size
|
||||
ENDIF ; <Sys7.1>
|
||||
|
||||
**** maybe not so temporary to allow things to build **** <3.5>
|
||||
IF onMac32 THEN ; <Sys7.1> Prevent double-define below
|
||||
oneSecConst EQU 8 ; gets converted to $80000 for onesec constant<3.5>
|
||||
IF BlackBirdDebug THEN
|
||||
ROMStart EQU $40000000 ; ••PN BlackBirdstarting address of final ROM code <3.5>
|
||||
@ -2362,13 +2441,15 @@ ROMStart EQU $40800000 ; starting address of final ROM code <3.5>
|
||||
snd2MemTop EQU $300 ; SoundLow to Memtop
|
||||
pwm2MemTop EQU $2FF ; PWMBuffer to MemTop
|
||||
bufWorldSize EQU 8192 ; total size of the BufPtr world <H16>
|
||||
ENDIF ; <Sys7.1>
|
||||
|
||||
;--------------------------------------------------- <SM4> rb, start
|
||||
; Sound parameters <P4>
|
||||
; <Sys7.1> Commented out because they conflict with TextEditPriv.a
|
||||
;---------------------------------------------------
|
||||
sampleSize equ 4 ; number of bytes per sample
|
||||
bufferSize equ 960 ; number of samples per buffer
|
||||
sampleRate equ 24 * 1024 ; 24KHz sample rate
|
||||
;sampleSize equ 4 ; number of bytes per sample
|
||||
;bufferSize equ 960 ; number of samples per buffer
|
||||
;sampleRate equ 24 * 1024 ; 24KHz sample rate
|
||||
|
||||
;---------------------------------------------------------------------
|
||||
; Whitney Sound Register Offsets (from ASC base in UniversalTables.a)
|
||||
@ -2718,7 +2799,11 @@ pdspSet equ 7 ; "0" clears, "1" sets for any bit field [0:6] containing a
|
||||
; ???
|
||||
;---------------------------------------------------
|
||||
|
||||
IF onMac OR onMacPP THEN ; <Sys7.1> Work around this definition being moved up here
|
||||
seRegs EQU $3FFC80 ; <Sys7.1>
|
||||
ELSE ; <Sys7.1>
|
||||
seRegs EQU $0C30 ; offset to Sys Error Regs w/o Overlay
|
||||
ENDIF ; <Sys7.1>
|
||||
|
||||
;---------------------------------------------------
|
||||
; Hardware configuration bits.
|
||||
@ -2932,16 +3017,16 @@ PrattSysStatReg EQU $50080007
|
||||
btst.b #PrattFlashLBit,PrattSysStatReg ; Is this a flash rom system
|
||||
ENDM
|
||||
|
||||
ForAmusementOnly equ 0
|
||||
If ForAmusementOnly then
|
||||
;__________________________________________________________________________________________
|
||||
;
|
||||
;
|
||||
; Old 16 bit Equates for onMac, onMacPP, and onHcMac
|
||||
; <Sys7.1> Removed forAmusementOnly conditional, and restored onMac etc
|
||||
;
|
||||
;
|
||||
;__________________________________________________________________________________________
|
||||
|
||||
IF onMac THEN ; <Sys7.1>
|
||||
;=======================================;
|
||||
; Macintosh Plus Hardware Information ;
|
||||
;=======================================;
|
||||
@ -3063,8 +3148,10 @@ halfSec EQU onesec/2 ; *** patch only ***
|
||||
stlDelay EQU $30 ; default bus settle delay *** patch only ***
|
||||
ROMDoEject EQU $40001E ; jump to DoEject utility *** patch only ***
|
||||
dACKRd EQU $200 ; offset of psuedo-DMA - READ *** patch only ***
|
||||
ENDIF ; onMac <Sys7.1>
|
||||
|
||||
|
||||
IF onMacPP THEN ; <Sys7.1>
|
||||
;=======================================;
|
||||
; Macintosh SE Hardware Information ;
|
||||
;=======================================;
|
||||
@ -3102,6 +3189,7 @@ vAInit EQU (1)|\ ; sound volume level initially 1
|
||||
(1<<vPage2)|\ ; main screen buffer selected
|
||||
(0<<vSCCWrReq) ; SCC write/request line is an input
|
||||
|
||||
vBufD EQU vBufA ; disk head select is buffer A <Sys7.1> restored
|
||||
|
||||
|
||||
; === VIA1 BUFFER B ===
|
||||
@ -3182,8 +3270,10 @@ HeapStart EQU $1600 ; Aladdin starting point
|
||||
|
||||
defSysHeap EQU $18000 ; Default size of the system heap
|
||||
nDfltStackSize EQU $2000 ; Default stack size
|
||||
ENDIF ; onMacPP <Sys7.1>
|
||||
|
||||
|
||||
IF onHcMac THEN ; <Sys7.1>
|
||||
;===========================================;
|
||||
; Macintosh Portable Hardware Information ;
|
||||
;===========================================;
|
||||
@ -3299,8 +3389,10 @@ numTrapMask EQU numTbTrap-1 ; mask for number of tb traps
|
||||
HeapStart EQU $1E00 ; Portable starting point <1.2>
|
||||
DefSysHeap EQU $18000 ; Default size of the system heap
|
||||
NDfltStackSize EQU $2000 ; Default stack size
|
||||
ENDIF ; onHcMac <Sys7.1>
|
||||
|
||||
|
||||
IF onMac16 THEN ; <Sys7.1>
|
||||
;===================================================;
|
||||
; Universal 16 bit Macintosh Hardware Information ;
|
||||
;===================================================;
|
||||
@ -3365,11 +3457,10 @@ numTrapMask EQU numTbTrap-1 ; mask for number of tb traps
|
||||
HeapStart EQU $1E00 ; Laguna starting point <1.2>
|
||||
DefSysHeap EQU $18000 ; Default size of the system heap
|
||||
NDfltStackSize EQU $2000 ; Default stack size
|
||||
ENDIF ; onMac16 <Sys7.1>
|
||||
|
||||
|
||||
|
||||
ENDIF ; ForAmusementOnly
|
||||
|
||||
HardwarePrivate EQU 1
|
||||
|
||||
ENDIF ; __INCLUDINGHARDWAREPRIVATEEQU__
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Added superseded boxFlag equates for code compatibility.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: InternalOnlyEqu.a
|
||||
;
|
||||
@ -645,6 +652,7 @@ boxQuadra700 EQU 16 ; Spike (25MHz 040)
|
||||
boxClassicII EQU 17 ; Apollo
|
||||
boxPowerBook100 EQU 18 ; Asahi (Its a Sony!) Portable <2>
|
||||
boxPowerBook140 EQU 19 ; TimLC 16 Mhz Tim; no FPU
|
||||
boxZydeco EQU 20 ; code-compatibility equate <Sys7.1>
|
||||
boxQuadra950 EQU 20 ; a Mac Quadra 950 (33MHz 040, 5 slots+PDS, VIA1&2, Orwell MCA, 2 IOPs, SCSI 2*53c96) <H18>
|
||||
boxLCIII EQU 21 ; Vail (25 MHz, 030, optional FPU, 1 PDS, Sonora) <H14><SM41>
|
||||
boxSoftmacSUN EQU 22 ; Softmac on Sun, (recycled, was boxCarnation33) <SM52>
|
||||
|
5
Internal/Asm/ROMPrivateEqu.a
Normal file
5
Internal/Asm/ROMPrivateEqu.a
Normal file
@ -0,0 +1,5 @@
|
||||
;
|
||||
; Shim to point source to a compatible include file
|
||||
;
|
||||
|
||||
INCLUDE 'PowerPrivEqu.a'
|
1
Internal/Asm/ROMPrivateEqu.a.idump
Normal file
1
Internal/Asm/ROMPrivateEqu.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
@ -1,3 +1,14 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted ExpandMem to <66> (version $128, size $1F4) by moving the
|
||||
; "size" equate. By leaving newer fields in the record after "size", we
|
||||
; keep newer code building. Restored emNumer and emDenom as removed by
|
||||
; <84>. Restored emFFSwapMMUMode, which was repurposed to
|
||||
; emButtonIntGlobals by <SM22> (and not used anywhere).
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: SysPrivateEqu.a
|
||||
;
|
||||
@ -336,7 +347,9 @@ emItlSysCachePtr ds.l 1 ; pointer to system itl cache <7><20>
|
||||
emScriptMapPtr ds.l 1 ; pointer to script mapping/sorting data <8>
|
||||
emLangMapPtr ds.l 1 ; pointer to language mapping/sorting data <8>
|
||||
|
||||
emNumer ; Resurrect the field below... <Sys7.1>
|
||||
ds.l 1 ; was emNumer (obsolete), now unused <11><84>
|
||||
emDenom ; Resurrect the field below... <Sys7.1>
|
||||
ds.l 1 ; was emDenom (obsolete), now unused <11><84>
|
||||
emIconCluts ds.l 1 ; Ptr to global icon info <13>
|
||||
emScriptAppGlobals ds.l 1 ; Handle to application-specific script globals <16><20><21>
|
||||
@ -388,6 +401,7 @@ emPrintingGlobals ds.l 1 ; Tsunami Printing Manager non-swapped printing gl
|
||||
|
||||
emCursorGlobals ds.l 1 ; Ptr to CursorDev globals <46>
|
||||
|
||||
emFFSwapMMUMode ; Resurrect the field below... <Sys7.1>
|
||||
emButtonIntGlobals ds.l 1 ; Ptr to Button Interrupt globals. previously Ptr to "real" SwapMMUMode routine <SM22> CSS
|
||||
|
||||
emAppleTalkInactiveOnBoot ds.w 1 ; True if AppleTalk was inactive on boot <48>
|
||||
@ -398,6 +412,9 @@ emLowMemoryPrintingGlobals ds.l 1 ; Handle to globals used by LowMemoryPrinti
|
||||
|
||||
emNetBootGlobals ds.l 1 ; Handle to globals used by emNetBootGlobals for Network Booting and Appletalk stuff. <65>
|
||||
|
||||
emRecSize equ * ; size for this version <Sys7.1>
|
||||
size equ *
|
||||
|
||||
emFndrDeskRgn ds.l 1 ; Handle to region maintained by Bungee Finder if fndrDeskRgnTracking is true <67> <69>
|
||||
|
||||
emFndrDeskRgnTracking ds.w 1 ; If true, the Bungee Finder will keep an up-to-date region handle in fndrDeskRgn of the icons on the desktop <67> <69>
|
||||
@ -440,10 +457,7 @@ jSWModemSoundVector ds.l 1 ; Vector to control routine for software modem s
|
||||
; (currently {CInternal}ExpandMemPriv.h is the one)
|
||||
; Be sure to update the Reality sources when you change this file (and the version number)
|
||||
|
||||
emCurVersion EQU $0133 ; version
|
||||
|
||||
emRecSize equ * ; size for this version
|
||||
size equ *
|
||||
emCurVersion EQU $0128 ; version <Sys7.1>
|
||||
|
||||
ENDR
|
||||
|
||||
|
@ -1,3 +1,11 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted MaxPseudoCmd to disregard the new Egret commands from <SM3> and
|
||||
; later.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
Eject
|
||||
************************************************************************
|
||||
; EGRET Manager Equates
|
||||
@ -273,7 +281,7 @@ EnDisPDM equ $21 ; Enable/Disable PowerDown Message <T2>
|
||||
RdWrIIC equ $22 ; Read or Write IIC (I sqared C) <SM3>[rbm]<3>
|
||||
WakeUpMode equ $23 ; Enable/Disable WakeUpMode <P1>
|
||||
TimerTickle equ $24 ; ShutDown Timer Tickle <P1>
|
||||
MaxPseudoCmd equ TimerTickle ; largest possible pseudo command number <P1>
|
||||
MaxPseudoCmd equ EnDisPDM ; largest possible pseudo command number <P1><Sys7.1>
|
||||
|
||||
;
|
||||
;__________________________________________________________________________________________________
|
||||
|
653
Make/ForceRomBindOrder.a
Normal file
653
Make/ForceRomBindOrder.a
Normal file
@ -0,0 +1,653 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Generated using information extracted from the System file
|
||||
;
|
||||
|
||||
INCLUDE 'LinkedPatchMacros.a'
|
||||
|
||||
; This proc is included in the input of LinkPatch to force a known-good order on
|
||||
; the RomBind table. This was needed to get round-tripping working, because
|
||||
; LinkPatch orders this table as ROM$*$ strings appear in object file dictionary
|
||||
; records. The proc itself is not included in the final binary.
|
||||
|
||||
ForceRomBindOrder PROC ENTRY
|
||||
CASE ON
|
||||
|
||||
dcROM ROMVCBLOOP ; entry $000, lpch 1 (Plus)
|
||||
dcROM AFTERGETBLOCKINGETBMBLK ; entry $001, lpch 1 (Plus)
|
||||
dcROM AFTERGETBMBLKINREADBM ; entry $002, lpch 1 (Plus)
|
||||
dcROM AFTERSECTRECTINCALLCONTROL ; entry $003, lpch 1 (Plus)
|
||||
dcROM ROMNOTRGN ; entry $004, lpch 1 (Plus)
|
||||
dcROM ROMNOTFR ; entry $005, lpch 1 (Plus)
|
||||
dcROM PLUSSETHSIZE ; entry $006, lpch 1 (Plus)
|
||||
dcROM PLUSPUTRGNDONE ; entry $007, lpch 1 (Plus)
|
||||
dcROM PLUSNOTRECT ; entry $008, lpch 1 (Plus)
|
||||
dcROM ROMFROMHBLOCK ; entry $009, lpch 1 (Plus)
|
||||
dcROM ROMFROMRELOCREL ; entry $00a, lpch 1 (Plus)
|
||||
dcROM ROMFROMCOMPACT ; entry $00b, lpch 1 (Plus)
|
||||
dcROM ROMFROMPURGEHEAP ; entry $00c, lpch 1 (Plus)
|
||||
dcROM ROMFROMMAKEPTR ; entry $00d, lpch 1 (Plus)
|
||||
dcROM ROMBACKMPS ; entry $00e, lpch 1 (Plus)
|
||||
dcROM ROMFROMCGZ ; entry $00f, lpch 1 (Plus)
|
||||
dcROM ROMFROMBCS ; entry $010, lpch 1 (Plus)
|
||||
dcROM GETMAXLOADAFTERPRELOCK ; entry $011, lpch 1 (Plus)
|
||||
dcROM SIZEFITS ; entry $012, lpch 1 (Plus)
|
||||
dcROM GETMAXLOAD@4 ; entry $013, lpch 1 (Plus)
|
||||
dcROM AFTERMAXBLOCKINGETMAXLOAD ; entry $014, lpch 1 (Plus)
|
||||
dcROM AFTERDISPOSEHANDLEINUPDATERESFILE ; entry $015, lpch 1 (Plus)
|
||||
dcROM AFTERNEWHANDLEINUPDATERESFILE ; entry $016, lpch 1 (Plus)
|
||||
dcROM AFTERBSRREADDATAINNEWMAP ; entry $017, lpch 1 (Plus)
|
||||
dcROM AFTERREADINRDDATA ; entry $018, lpch 1 (Plus)
|
||||
dcROM DONEGNE ; entry $019, lpch 1 (Plus)
|
||||
dcROM AFTERBTOPENINACCESSBT ; entry $01a, lpch 3 (Plus,SE)
|
||||
dcROM AFTER2NDACCESSBTINMOUNTVOL ; entry $01b, lpch 3 (Plus,SE)
|
||||
dcROM MTCHECK ; entry $01c, lpch 3 (Plus,SE)
|
||||
dcROM AFTERREADBMINUPDATEFREE ; entry $01d, lpch 3 (Plus,SE)
|
||||
dcROM AFTERUPDATEFREEINMTCHECK ; entry $01e, lpch 3 (Plus,SE)
|
||||
dcROM ROMCOLORMAP ; entry $01f, lpch 3 (Plus,SE)
|
||||
dcROM ROMRSECT ; entry $020, lpch 3 (Plus,SE)
|
||||
dcROM ROMTRIMRECT ; entry $021, lpch 3 (Plus,SE)
|
||||
dcROM ROMSHIELDCURSOR ; entry $022, lpch 3 (Plus,SE)
|
||||
dcROM ROMINITRGN ; entry $023, lpch 3 (Plus,SE)
|
||||
dcROM ROMXORSLAB ; entry $024, lpch 3 (Plus,SE)
|
||||
dcROM ROMFASTSLABMODE ; entry $025, lpch 3 (Plus,SE)
|
||||
dcROM ROMSLABMODE ; entry $026, lpch 3 (Plus,SE)
|
||||
dcROM ROMPATEXPAND ; entry $027, lpch 3 (Plus,SE)
|
||||
dcROM ROMSEEKMASK ; entry $028, lpch 3 (Plus,SE)
|
||||
dcROM ROMMASKTAB ; entry $029, lpch 3 (Plus,SE)
|
||||
dcROM ROMDRAWSLAB ; entry $02a, lpch 3 (Plus,SE)
|
||||
dcROM ROMDRAWRECT ; entry $02b, lpch 3 (Plus,SE)
|
||||
dcROM ROMFRPOLY ; entry $02c, lpch 3 (Plus,SE)
|
||||
dcROM ROMPUSHVERB ; entry $02d, lpch 3 (Plus,SE)
|
||||
dcROM AFTERRELEASERESOURCEINGETNEWCONTROL ; entry $02e, lpch 3 (Plus,SE)
|
||||
dcROM AFTERRELEASERESOURCEINGETNEWWINDOW ; entry $02f, lpch 3 (Plus,SE)
|
||||
dcROM FLUSHAPPLVBLS ; entry $030, lpch 3 (Plus,SE)
|
||||
dcROM ROMDONEINSERT ; entry $031, lpch 4 (II)
|
||||
dcROM ROMCALLMBARPROC ; entry $032, lpch 4 (II)
|
||||
dcROM ROMGETA1LIST ; entry $033, lpch 4 (II)
|
||||
dcROM ROMIIGETHINDEX ; entry $034, lpch 4 (II)
|
||||
dcROM ROMIIGETHA0LIST ; entry $035, lpch 4 (II)
|
||||
dcROM ROMGETINDEX ; entry $036, lpch 4 (II)
|
||||
dcROM ROMIIGETA0LIST ; entry $037, lpch 4 (II)
|
||||
dcROM SETITEMPROPERTY ; entry $038, lpch 4 (II)
|
||||
dcROM GETITEMPROPERTY ; entry $039, lpch 4 (II)
|
||||
dcROM ROMFINDPARENTEND ; entry $03a, lpch 4 (II)
|
||||
dcROM AFTERSYSERRINMENUKEY ; entry $03b, lpch 4 (II)
|
||||
dcROM AFTERSYSERRININITMENUS ; entry $03c, lpch 4 (II)
|
||||
dcROM MKEYDONE ; entry $03d, lpch 4 (II)
|
||||
dcROM HMINMENUKEY ; entry $03e, lpch 4 (II)
|
||||
dcROM ROMHLNONE ; entry $03f, lpch 4 (II)
|
||||
dcROM TURNINDEXOFF ; entry $040, lpch 4 (II)
|
||||
dcROM RESTOREALLBITS ; entry $041, lpch 4 (II)
|
||||
dcROM FLASHFEEDBACK ; entry $042, lpch 4 (II)
|
||||
dcROM GETITEMRECORD ; entry $043, lpch 4 (II)
|
||||
dcROM GETMENUPTR ; entry $044, lpch 4 (II)
|
||||
dcROM CHOOSEITEM ; entry $045, lpch 4 (II)
|
||||
dcROM RESETRECTSCROLLDATA ; entry $046, lpch 4 (II)
|
||||
dcROM MENUCHANGED ; entry $047, lpch 4 (II)
|
||||
dcROM CALLMBARPROC ; entry $048, lpch 4 (II)
|
||||
dcROM SETTICKCOUNTERS ; entry $049, lpch 4 (II)
|
||||
dcROM DONECHECKDRAG ; entry $04a, lpch 4 (II)
|
||||
dcROM RESTORESOMEBITS ; entry $04b, lpch 4 (II)
|
||||
dcROM DRAWTHEMENU ; entry $04c, lpch 4 (II)
|
||||
dcROM CALLDRAWMDEF ; entry $04d, lpch 4 (II)
|
||||
dcROM ROMNULLMDEFPROC ; entry $04e, lpch 4 (II)
|
||||
dcROM DIRTYMENUSIZE ; entry $04f, lpch 4 (II)
|
||||
dcROM GETHA0LIST ; entry $050, lpch 4 (II)
|
||||
dcROM GOTRMENU ; entry $051, lpch 4 (II)
|
||||
dcROM TWOBYTEXIT ; entry $052, lpch 4 (II)
|
||||
dcROM FOUNDRMENU ; entry $053, lpch 4 (II)
|
||||
dcROM GETINDEX ; entry $054, lpch 4 (II)
|
||||
dcROM FOUNDHMENU ; entry $055, lpch 4 (II)
|
||||
dcROM GETHINDEX ; entry $056, lpch 4 (II)
|
||||
dcROM AFTERSECTRECTINCALLDRAWMDEF ; entry $057, lpch 4 (II)
|
||||
dcROM RTSINDRAWTHEMENU ; entry $058, lpch 4 (II)
|
||||
dcROM ROMINSERTTHEITEM ; entry $059, lpch 4 (II)
|
||||
dcROM ROMIIGETITEMRECORD ; entry $05a, lpch 4 (II)
|
||||
dcROM ROMJUMPINTOINSERTTHEITEM ; entry $05b, lpch 4 (II)
|
||||
dcROM ROMDODELENABLEBIT ; entry $05c, lpch 4 (II)
|
||||
dcROM ROMSKIPDELENABLEBIT ; entry $05d, lpch 4 (II)
|
||||
dcROM TENBYTEXIT ; entry $05e, lpch 4 (II)
|
||||
dcROM CLOSEITEM ; entry $05f, lpch 4 (II)
|
||||
dcROM SPECIALCHAR ; entry $060, lpch 4 (II)
|
||||
dcROM ROMFINDCENTRY ; entry $061, lpch 4 (II)
|
||||
dcROM ROMMENUCTBLSANITYCHK ; entry $062, lpch 4 (II)
|
||||
dcROM AFTERLOADRESOURCEINGETTHEMPROC ; entry $063, lpch 4 (II)
|
||||
dcROM AFTERRESTORESETPORTINDRAWITEM ; entry $064, lpch 4 (II)
|
||||
dcROM AFTERGETAUXWININCLOSEDIALOG ; entry $065, lpch 4 (II)
|
||||
dcROM ATNODITLINCLOSEDIALOG ; entry $066, lpch 4 (II)
|
||||
dcROM AFTERDETACHRESOURCEINDOCOLOR ; entry $067, lpch 4 (II)
|
||||
dcROM AFTERSETWINCOLORINGOTSTORAGE ; entry $068, lpch 4 (II)
|
||||
dcROM AFTERFIXDIVINCHAREXTRA ; entry $069, lpch 4 (II)
|
||||
dcROM AFTERSTACKSPACEINRGNOP ; entry $06a, lpch 4 (II)
|
||||
dcROM AFTERBUFFERSIZECALCINRGNOP ; entry $06b, lpch 4 (II)
|
||||
dcROM AFTERGETKEYSINGETPINMOUSE ; entry $06c, lpch 4 (II)
|
||||
dcROM AFTERMOVEGWKEYMAPINGETPINMOUSE ; entry $06d, lpch 4 (II)
|
||||
dcROM AFTERHILITEWINDOWINDOACTIVATE ; entry $06e, lpch 4 (II)
|
||||
dcROM ROMINITADBDRVR ; entry $06f, lpch 6 (SE,II)
|
||||
dcROM KBDDRVR ; entry $070, lpch 6 (SE,II)
|
||||
dcROM FINDFDBINFO ; entry $071, lpch 6 (SE,II)
|
||||
dcROM GEMPTYADDR ; entry $072, lpch 6 (SE,II)
|
||||
dcROM TRYSYSEVENT ; entry $073, lpch 6 (SE,II)
|
||||
dcROM FROMWAITFORDSK ; entry $074, lpch 7 (Plus,SE,II)
|
||||
dcROM AFTERLOADRESOURCEINCALLCONTROL ; entry $075, lpch 7 (Plus,SE,II)
|
||||
dcROM AFTERDISPOSEHANDLEINCLOSEDIALOG ; entry $076, lpch 7 (Plus,SE,II)
|
||||
dcROM AFTERVALIDRECTINSETITEXT ; entry $077, lpch 7 (Plus,SE,II)
|
||||
dcROM AFTERBSRDOCOMPACTINGOCONT ; entry $078, lpch 7 (Plus,SE,II)
|
||||
dcROM COMPACTMEM ; entry $079, lpch 7 (Plus,SE,II)
|
||||
dcROM MOVEREST ; entry $07a, lpch 7 (Plus,SE,II)
|
||||
dcROM FILLSTKBUF ; entry $07b, lpch 7 (Plus,SE,II)
|
||||
dcROM DOCOMPACT ; entry $07c, lpch 7 (Plus,SE,II)
|
||||
dcROM FINDRGNTOP ; entry $07d, lpch 7 (Plus,SE,II)
|
||||
dcROM MNSFINISH ; entry $07e, lpch 7 (Plus,SE,II)
|
||||
dcROM CKDRVNUM ; entry $07f, lpch 7 (Plus,SE,II)
|
||||
dcROM SEEK ; entry $080, lpch 7 (Plus,SE,II)
|
||||
dcROM AFTERLOADRESOURCEINCALLWINDOW ; entry $081, lpch 7 (Plus,SE,II)
|
||||
dcROM ROMSTDPOLYRTN ; entry $082, lpch 8 (Portable)
|
||||
dcROM ROMSTDPOLYNOTPIC ; entry $083, lpch 8 (Portable)
|
||||
dcROM SOMESLEEPPROC ; entry $084, lpch 8 (Portable)
|
||||
dcROM ALLCLOSE ; entry $085, lpch 8 (Portable)
|
||||
dcROM INITSCSI ; entry $086, lpch 8 (Portable)
|
||||
dcROM KBDRESET ; entry $087, lpch 8 (Portable)
|
||||
dcROM DOQUEUE ; entry $088, lpch 8 (Portable)
|
||||
dcROM GETDRIVE ; entry $089, lpch 8 (Portable)
|
||||
dcROM INVALTRKCACHE ; entry $08a, lpch 8 (Portable)
|
||||
dcROM SETCHIPMODE ; entry $08b, lpch 8 (Portable)
|
||||
dcROM ADRANDSTRB ; entry $08c, lpch 8 (Portable)
|
||||
dcROM RECALSLOW ; entry $08d, lpch 8 (Portable)
|
||||
dcROM ADRANDSENSE ; entry $08e, lpch 8 (Portable)
|
||||
dcROM PULSE ; entry $08f, lpch 8 (Portable)
|
||||
dcROM WAIT100 ; entry $090, lpch 8 (Portable)
|
||||
dcROM ROMStdRgnRtn ; entry $091, lpch 10 (SE,Portable)
|
||||
dcROM ROMStdRgnNotPic ; entry $092, lpch 10 (SE,Portable)
|
||||
dcROM ROMTrimRect ; entry $093, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMRSect ; entry $094, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMDPUTPICBYTE ; entry $095, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMPUTPICRGN ; entry $096, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMXRGNBLT ; entry $097, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSETUPSTRETCH ; entry $098, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMBACKTOROM ; entry $099, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMPUTPICDATA ; entry $09a, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMPUTPICWORD ; entry $09b, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMPUTPICLONG ; entry $09c, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMPUTPICBYTE ; entry $09d, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSTDBITSNOTPIC ; entry $09e, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSTDBITSOK ; entry $09f, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSTDBITSSTART2 ; entry $0a0, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSTDRECTRTN ; entry $0a1, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSTDRECTNOTPIC ; entry $0a2, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSTDLINERTN ; entry $0a3, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSTDLINENOTPIC ; entry $0a4, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSTDRRECTRTN ; entry $0a5, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSTDRRECTNOTPIC ; entry $0a6, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSTDOVALRTN ; entry $0a7, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSTDOVALNOTPIC ; entry $0a8, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSTDARCRTN ; entry $0a9, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSTDARCNOTPIC ; entry $0aa, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSTDCOMMENT ; entry $0ab, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMEQUALRGN ; entry $0ac, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMCOPYRGN ; entry $0ad, lpch 11 (Plus,SE,Portable)
|
||||
dcROM OPENPICTPTCHENTRY ; entry $0ae, lpch 11 (Plus,SE,Portable)
|
||||
dcROM OPENPICTDONE ; entry $0af, lpch 11 (Plus,SE,Portable)
|
||||
dcROM CLOSEPICTPTCHENTRYNEW ; entry $0b0, lpch 11 (Plus,SE,Portable)
|
||||
dcROM CLOSEPICTGOHOME ; entry $0b1, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSHOWCRSR ; entry $0b2, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMSEEDFILL ; entry $0b3, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMGOHOME ; entry $0b4, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMXCLIP ; entry $0b5, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMXCLIP2 ; entry $0b6, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMXPNSIZE ; entry $0b7, lpch 11 (Plus,SE,Portable)
|
||||
dcROM OVALEND ; entry $0b8, lpch 11 (Plus,SE,Portable)
|
||||
dcROM XORIGIN ; entry $0b9, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMLNOK ; entry $0ba, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMTEXTOP ; entry $0bb, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMRECTOP ; entry $0bc, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMRRECTOP ; entry $0bd, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMOVALOP ; entry $0be, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMARCOP ; entry $0bf, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMPOLYOP ; entry $0c0, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMRGNOP ; entry $0c1, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMBITS ; entry $0c2, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMCOMMENTOP ; entry $0c3, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMLONGCOM ; entry $0c4, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMGETRECT ; entry $0c5, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMKILL1 ; entry $0c6, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMABORT ; entry $0c7, lpch 11 (Plus,SE,Portable)
|
||||
dcROM ROMDONE ; entry $0c8, lpch 11 (Plus,SE,Portable)
|
||||
dcROM AFTERTEAUTOVIEWINSETNEWEDIT ; entry $0c9, lpch 11 (Plus,SE,Portable)
|
||||
dcROM AFTERLOADRESOURCEINSYSTEMCLICK ; entry $0ca, lpch 15 (Plus,SE,II,Portable)
|
||||
dcROM RWPOWERUP ; entry $0cb, lpch 15 (Plus,SE,II,Portable)
|
||||
dcROM BACKTOGETCSTRING ; entry $0cc, lpch 16 (IIci)
|
||||
dcROM THEDONELABEL ; entry $0cd, lpch 16 (IIci)
|
||||
dcROM ROM@GETSELWRAP ; entry $0ce, lpch 16 (IIci)
|
||||
dcROM ROM@FINDLINEFINIS ; entry $0cf, lpch 16 (IIci)
|
||||
dcROM ROMINFINDLINE ; entry $0d0, lpch 16 (IIci)
|
||||
dcROM ROM@SETUP ; entry $0d1, lpch 16 (IIci)
|
||||
dcROM ROMGETCURSTYLE ; entry $0d2, lpch 16 (IIci)
|
||||
dcROM ROMSETSTYLE ; entry $0d3, lpch 16 (IIci)
|
||||
dcROM ROMTEHITTESTHOOK ; entry $0d4, lpch 16 (IIci)
|
||||
dcROM ROMPIXEL2CHAR ; entry $0d5, lpch 16 (IIci)
|
||||
dcROM ROMFINDWORD ; entry $0d6, lpch 16 (IIci)
|
||||
dcROM ROMTEEOLHOOK ; entry $0d7, lpch 16 (IIci)
|
||||
dcROM ROMANYNULLSTYLE ; entry $0d8, lpch 16 (IIci)
|
||||
dcROM ROMGETSTYLE ; entry $0d9, lpch 16 (IIci)
|
||||
dcROM ROMSETRSRVED ; entry $0da, lpch 16 (IIci)
|
||||
dcROM ROM@DONEINKEYBD2FONT ; entry $0db, lpch 16 (IIci)
|
||||
dcROM ROMGETDIRECTION ; entry $0dc, lpch 16 (IIci)
|
||||
dcROM ROM@FIXSTACK ; entry $0dd, lpch 16 (IIci)
|
||||
dcROM ROM@USEC2P ; entry $0de, lpch 16 (IIci)
|
||||
dcROM ROMDOUBLEBYTE ; entry $0df, lpch 16 (IIci)
|
||||
dcROM ROMDEFWORDBRK ; entry $0e0, lpch 16 (IIci)
|
||||
dcROM ENDTEINIT ; entry $0e1, lpch 16 (IIci)
|
||||
dcROM ROM@NOMORESTYLES ; entry $0e2, lpch 16 (IIci)
|
||||
dcROM ROM@BAILTOLEFT ; entry $0e3, lpch 16 (IIci)
|
||||
dcROM ROMAFTER@HITIT ; entry $0e4, lpch 16 (IIci)
|
||||
dcROM ROMFINDDONE ; entry $0e5, lpch 16 (IIci)
|
||||
dcROM ROMTEDRAWHOOK ; entry $0e6, lpch 16 (IIci)
|
||||
dcROM ROMFREEFMTORDERARRAY ; entry $0e7, lpch 16 (IIci)
|
||||
dcROM ROMINDOHILITE ; entry $0e8, lpch 16 (IIci)
|
||||
dcROM ROMPREAMBLE ; entry $0e9, lpch 16 (IIci)
|
||||
dcROM ROMPTRTOLINE ; entry $0ea, lpch 16 (IIci)
|
||||
dcROM ROMNEXTLINERECT ; entry $0eb, lpch 16 (IIci)
|
||||
dcROM ROMPREPLINE ; entry $0ec, lpch 16 (IIci)
|
||||
dcROM ROMINVERTHOOK ; entry $0ed, lpch 16 (IIci)
|
||||
dcROM ROMTESTLINEENDS ; entry $0ee, lpch 16 (IIci)
|
||||
dcROM ROMSETRUN ; entry $0ef, lpch 16 (IIci)
|
||||
dcROM ROMENDTEFMTORDER ; entry $0f0, lpch 16 (IIci)
|
||||
dcROM ROMGETFORMATORDERING ; entry $0f1, lpch 16 (IIci)
|
||||
dcROM ROMGETLRPOSITION ; entry $0f2, lpch 16 (IIci)
|
||||
dcROM ROM@DONE ; entry $0f3, lpch 16 (IIci)
|
||||
dcROM BACKTODOMEASURE ; entry $0f4, lpch 16 (IIci)
|
||||
dcROM ROM@MEASUREDONE ; entry $0f5, lpch 16 (IIci)
|
||||
dcROM ROMINMEASUREIT ; entry $0f6, lpch 16 (IIci)
|
||||
dcROM ROM@PLAINMEASURE ; entry $0f7, lpch 16 (IIci)
|
||||
dcROM ROMMEASUREWIDTH ; entry $0f8, lpch 16 (IIci)
|
||||
dcROM ROMTEHILITETEXT ; entry $0f9, lpch 16 (IIci)
|
||||
dcROM ROM@TESTENDS ; entry $0fa, lpch 16 (IIci)
|
||||
dcROM BACKTOTESTRUNDIRECTION ; entry $0fb, lpch 16 (IIci)
|
||||
dcROM ROMFINDLINEHITE ; entry $0fc, lpch 16 (IIci)
|
||||
dcROM ROMSELVIEW ; entry $0fd, lpch 16 (IIci)
|
||||
dcROM ROMDRAWCARET ; entry $0fe, lpch 16 (IIci)
|
||||
dcROM ROMSTDEXIT ; entry $0ff, lpch 16 (IIci)
|
||||
dcROM ROMALTSETRSRVED ; entry $100, lpch 16 (IIci)
|
||||
dcROM ROMDELETESTYLE ; entry $101, lpch 16 (IIci)
|
||||
dcROM ROMCONCATSTYLES ; entry $102, lpch 16 (IIci)
|
||||
dcROM ENDDELGUTS ; entry $103, lpch 16 (IIci)
|
||||
dcROM OldPBSoundClose ; entry $104, lpch 16 (IIci)
|
||||
dcROM OldPBSoundStatus ; entry $105, lpch 16 (IIci)
|
||||
dcROM ROMEPILOG4 ; entry $106, lpch 16 (IIci)
|
||||
dcROM ROMSETSTYLSCRAP ; entry $107, lpch 16 (IIci)
|
||||
dcROM ROMSTDEXIT2 ; entry $108, lpch 16 (IIci)
|
||||
dcROM ROMTESTYLINSERT ; entry $109, lpch 16 (IIci)
|
||||
dcROM OldPBSoundControl ; entry $10a, lpch 16 (IIci)
|
||||
dcROM OldPBSoundPrime ; entry $10b, lpch 16 (IIci)
|
||||
dcROM OldPBSoundOpen ; entry $10c, lpch 16 (IIci)
|
||||
dcROM ROMPSTSTYLGUTS ; entry $10d, lpch 16 (IIci)
|
||||
dcROM ROMCONCATRUNS ; entry $10e, lpch 16 (IIci)
|
||||
dcROM ROMRECALDRAW ; entry $10f, lpch 16 (IIci)
|
||||
dcROM ROMINTEDISPATCH ; entry $110, lpch 16 (IIci)
|
||||
dcROM ROMINTEGETTEXT ; entry $111, lpch 16 (IIci)
|
||||
dcROM ROMINTESETTEXT ; entry $112, lpch 16 (IIci)
|
||||
dcROM ROMINTECALTEXT ; entry $113, lpch 16 (IIci)
|
||||
dcROM ROMINTECOPY ; entry $114, lpch 16 (IIci)
|
||||
dcROM ROMINTECUT ; entry $115, lpch 16 (IIci)
|
||||
dcROM ROM@GOHOME ; entry $116, lpch 16 (IIci)
|
||||
dcROM ROMINTEPASTE ; entry $117, lpch 16 (IIci)
|
||||
dcROM ROMAFTERINSERT ; entry $118, lpch 16 (IIci)
|
||||
dcROM ROMMUNGESETUP ; entry $119, lpch 16 (IIci)
|
||||
dcROM ROMINSRSRVED ; entry $11a, lpch 16 (IIci)
|
||||
dcROM ROMINTESETJUST ; entry $11b, lpch 16 (IIci)
|
||||
dcROM ROMGETLINEHITES ; entry $11c, lpch 16 (IIci)
|
||||
dcROM ROMINTESELVIEW ; entry $11d, lpch 16 (IIci)
|
||||
dcROM ROMINTEAUTOVIEW ; entry $11e, lpch 16 (IIci)
|
||||
dcROM ROM@KEYBDOK ; entry $11f, lpch 16 (IIci)
|
||||
dcROM ROMEPILOG8 ; entry $120, lpch 16 (IIci)
|
||||
dcROM ROMDRAWIT ; entry $121, lpch 16 (IIci)
|
||||
dcROM ROMCLEANUPSEL ; entry $122, lpch 16 (IIci)
|
||||
dcROM ROM@NOSYNCHINSETSELECT ; entry $123, lpch 16 (IIci)
|
||||
dcROM ROMCLEARRSRVED ; entry $124, lpch 16 (IIci)
|
||||
dcROM ROMHILITE ; entry $125, lpch 16 (IIci)
|
||||
dcROM ROMHIDECARET ; entry $126, lpch 16 (IIci)
|
||||
dcROM ROMCLICKEXPAND ; entry $127, lpch 16 (IIci)
|
||||
dcROM ROMDOTEXT ; entry $128, lpch 16 (IIci)
|
||||
dcROM ROMSHOWCARET ; entry $129, lpch 16 (IIci)
|
||||
dcROM ROMADDRTABLE ; entry $12a, lpch 16 (IIci)
|
||||
dcROM ROMSELSORT ; entry $12b, lpch 16 (IIci)
|
||||
dcROM ROMTEFEATUREFLAG ; entry $12c, lpch 16 (IIci)
|
||||
dcROM ROMTEGETPOINT ; entry $12d, lpch 16 (IIci)
|
||||
dcROM ROMTESETSTYLE ; entry $12e, lpch 16 (IIci)
|
||||
dcROM ROMGETHITE ; entry $12f, lpch 16 (IIci)
|
||||
dcROM ROMGETLINE ; entry $130, lpch 16 (IIci)
|
||||
dcROM ROMLINERECT ; entry $131, lpch 16 (IIci)
|
||||
dcROM ROMINTEGETPOINT ; entry $132, lpch 16 (IIci)
|
||||
dcROM ROM@DOENDOFLINE ; entry $133, lpch 16 (IIci)
|
||||
dcROM ROM@DOTHEJUSTTHING ; entry $134, lpch 16 (IIci)
|
||||
dcROM ROMPASTEGUTS ; entry $135, lpch 16 (IIci)
|
||||
dcROM ROM@MOREROOM ; entry $136, lpch 16 (IIci)
|
||||
dcROM ROMINGETHANDLE ; entry $137, lpch 16 (IIci)
|
||||
dcROM ROMONECURSOR ; entry $138, lpch 16 (IIci)
|
||||
dcROM ROM@LINEEND ; entry $139, lpch 16 (IIci)
|
||||
dcROM ROM@INRLMIDDLE ; entry $13a, lpch 16 (IIci)
|
||||
dcROM ROM@RLDONE ; entry $13b, lpch 16 (IIci)
|
||||
dcROM ROMINSETUP2RECTANGLES ; entry $13c, lpch 16 (IIci)
|
||||
dcROM ROMFIXFORMATEND ; entry $13d, lpch 16 (IIci)
|
||||
dcROM ROMMEASUREIT ; entry $13e, lpch 16 (IIci)
|
||||
dcROM ROM@ROMANTRIM ; entry $13f, lpch 16 (IIci)
|
||||
dcROM ROMGETNUMSTYLES ; entry $140, lpch 16 (IIci)
|
||||
dcROM ROM@ZEROWIDTH ; entry $141, lpch 16 (IIci)
|
||||
dcROM ROM@GOERASE ; entry $142, lpch 16 (IIci)
|
||||
dcROM ROM@JUSTMEASURE ; entry $143, lpch 16 (IIci)
|
||||
dcROM ROM@HILITEOFFSETRUN ; entry $144, lpch 16 (IIci)
|
||||
dcROM ROM@EXIT ; entry $145, lpch 16 (IIci)
|
||||
dcROM ROM@HILITERUN ; entry $146, lpch 16 (IIci)
|
||||
dcROM ROMHILITELINEENDS ; entry $147, lpch 16 (IIci)
|
||||
dcROM ROMXEOLHOOK ; entry $148, lpch 16 (IIci)
|
||||
dcROM ROMXDRAWHOOK ; entry $149, lpch 16 (IIci)
|
||||
dcROM ROMGETSIZE ; entry $14a, lpch 16 (IIci)
|
||||
dcROM ROMSETDIRECTION ; entry $14b, lpch 16 (IIci)
|
||||
dcROM ROMINTENEW ; entry $14c, lpch 16 (IIci)
|
||||
dcROM ROMMYNEWHANDLE ; entry $14d, lpch 16 (IIci)
|
||||
dcROM ROMGETDEFSTYLE ; entry $14e, lpch 16 (IIci)
|
||||
dcROM ROMINTESTYLNEW ; entry $14f, lpch 16 (IIci)
|
||||
dcROM ROMFINDLINE ; entry $150, lpch 16 (IIci)
|
||||
dcROM ROMSTAGE2Y ; entry $151, lpch 16 (IIci)
|
||||
dcROM ROMSTAGE2A ; entry $152, lpch 16 (IIci)
|
||||
dcROM ROMCLRLINESTS ; entry $153, lpch 16 (IIci)
|
||||
dcROM ROMINPTTOLINE ; entry $154, lpch 16 (IIci)
|
||||
dcROM ROMINDOFIND ; entry $155, lpch 16 (IIci)
|
||||
dcROM ROMINPINDISPLAY ; entry $156, lpch 16 (IIci)
|
||||
dcROM ROMINREFRESH ; entry $157, lpch 16 (IIci)
|
||||
dcROM RONINTEXTBOX ; entry $158, lpch 16 (IIci)
|
||||
dcROM ROMAFTERGETFINFOINTEXTBOX ; entry $159, lpch 16 (IIci)
|
||||
dcROM AFTERMOVETOINTEXTBOX ; entry $15a, lpch 16 (IIci)
|
||||
dcROM ROMGO14EXIT ; entry $15b, lpch 16 (IIci)
|
||||
dcROM ROMAFTERGETFINFOINGETSIZE ; entry $15c, lpch 16 (IIci)
|
||||
dcROM ROMINTEDISPOSE ; entry $15d, lpch 16 (IIci)
|
||||
dcROM AFTERHILITETEXT ; entry $15e, lpch 16 (IIci)
|
||||
dcROM CHECKDESKHOOK ; entry $15f, lpch 16 (IIci)
|
||||
dcROM DONESCLICK ; entry $160, lpch 16 (IIci)
|
||||
dcROM SYSTEMCLICKCONTINUE ; entry $161, lpch 16 (IIci)
|
||||
dcROM AFTERSETRETRYFLAGINMMHPROLOGUE ; entry $162, lpch 16 (IIci)
|
||||
dcROM ROMBACKTORESRVMEM24 ; entry $163, lpch 16 (IIci)
|
||||
dcROM ROMBACKTONEWPTR24 ; entry $164, lpch 16 (IIci)
|
||||
dcROM ROMBACKTOMOREMASTERS24 ; entry $165, lpch 16 (IIci)
|
||||
dcROM ROMBACKTOA24HMAKEMOREMASTERS ; entry $166, lpch 16 (IIci)
|
||||
dcROM ROMA24ACTUALS ; entry $167, lpch 16 (IIci)
|
||||
dcROM ROMA24GROWZONE ; entry $168, lpch 16 (IIci)
|
||||
dcROM ROMA24PURGEBLOCK ; entry $169, lpch 16 (IIci)
|
||||
dcROM ROMSUBTRACTFREE ; entry $16a, lpch 16 (IIci)
|
||||
dcROM ROMA24ALLOCBK ; entry $16b, lpch 16 (IIci)
|
||||
dcROM ROMA24GETSIZE ; entry $16c, lpch 16 (IIci)
|
||||
dcROM ROMHBLOCKMOVE ; entry $16d, lpch 16 (IIci)
|
||||
dcROM ROMRELEASEMP ; entry $16e, lpch 16 (IIci)
|
||||
dcROM ROMADJUSTFREE ; entry $16f, lpch 16 (IIci)
|
||||
dcROM ROMBACKTORESRVMEM32 ; entry $170, lpch 16 (IIci)
|
||||
dcROM ROMBACKTONEWPTR32 ; entry $171, lpch 16 (IIci)
|
||||
dcROM ROMBACKTOMOREMASTERS32 ; entry $172, lpch 16 (IIci)
|
||||
dcROM ROMBACKTOA32HMAKEMOREMASTERS ; entry $173, lpch 16 (IIci)
|
||||
dcROM ROMA32ACTUALS ; entry $174, lpch 16 (IIci)
|
||||
dcROM ROMA32GROWZONE ; entry $175, lpch 16 (IIci)
|
||||
dcROM ROMA32PURGEBLOCK ; entry $176, lpch 16 (IIci)
|
||||
dcROM ROMA32ALLOCBK ; entry $177, lpch 16 (IIci)
|
||||
dcROM ROMA32GETSIZE ; entry $178, lpch 16 (IIci)
|
||||
dcROM SLPQINSTALL ; entry $179, lpch 16 (IIci)
|
||||
dcROM SLPQREMOVE ; entry $17a, lpch 16 (IIci)
|
||||
dcROM ROMCHECKAPPLETALK ; entry $17b, lpch 16 (IIci)
|
||||
dcROM CLOSEAPPLETALK ; entry $17c, lpch 16 (IIci)
|
||||
dcROM DIDQUEUE ; entry $17d, lpch 16 (IIci)
|
||||
dcROM SETSUPERVISORMODE ; entry $17e, lpch 16 (IIci)
|
||||
dcROM BATINTCONT ; entry $17f, lpch 16 (IIci)
|
||||
dcROM ROMPMGROP ; entry $180, lpch 16 (IIci)
|
||||
dcROM AFTERFIRSTDISPOSED0 ; entry $181, lpch 16 (IIci)
|
||||
dcROM AFTERSECONDDISPOSED0 ; entry $182, lpch 16 (IIci)
|
||||
dcROM AFTEROPENCPORTINNEWGWORLD ; entry $183, lpch 16 (IIci)
|
||||
dcROM FROMPUTPICPIXPAT ; entry $184, lpch 16 (IIci)
|
||||
dcROM FROMPUTPMDATA ; entry $185, lpch 16 (IIci)
|
||||
dcROM AFTERGETSCREENBASEINCOPYBITS ; entry $186, lpch 16 (IIci)
|
||||
dcROM AFTERCOPYBITSCALLSITSELFTOFLATTEN ; entry $187, lpch 16 (IIci)
|
||||
dcROM FROMNEWTEMPSCREENBUFFER ; entry $188, lpch 16 (IIci)
|
||||
dcROM FROMNEWGWORLD ; entry $189, lpch 16 (IIci)
|
||||
dcROM NEWTEMPSCREENBUFFERPARAMERROR ; entry $18a, lpch 16 (IIci)
|
||||
dcROM NEWGWORLDPARAMERROR ; entry $18b, lpch 16 (IIci)
|
||||
dcROM CICLOSEPORTENTRY ; entry $18c, lpch 16 (IIci)
|
||||
dcROM CIOPENPIXMAP ; entry $18d, lpch 16 (IIci)
|
||||
dcROM CIINITPIXMAP ; entry $18e, lpch 16 (IIci)
|
||||
dcROM AFTEROSEVENTAVAILINCHECKACTIVATE ; entry $18f, lpch 16 (IIci)
|
||||
dcROM AFTERSYSTEMUSERWINDOWINCHECKACTIVATE ; entry $190, lpch 16 (IIci)
|
||||
dcROM ROMINTERNALRAMDISKSTRING ; entry $191, lpch 16 (IIci)
|
||||
dcROM CheckPic ; entry $192, lpch 20 (II,IIci)
|
||||
dcROM PutPicWord ; entry $193, lpch 20 (II,IIci)
|
||||
dcROM PutPicLong ; entry $194, lpch 20 (II,IIci)
|
||||
dcROM DPutPicOp ; entry $195, lpch 20 (II,IIci)
|
||||
dcROM DPutPicByte ; entry $196, lpch 20 (II,IIci)
|
||||
dcROM PutPicData ; entry $197, lpch 20 (II,IIci)
|
||||
dcROM GETCVARIANTINCALLCONTROL ; entry $198, lpch 20 (II,IIci)
|
||||
dcROM OWNERPORTINROM ; entry $199, lpch 20 (II,IIci)
|
||||
dcROM AFTERDRAGTHERGNINDRAGCONTROL ; entry $19a, lpch 20 (II,IIci)
|
||||
dcROM AFTERFRAMERECTINFASTPAINT ; entry $19b, lpch 20 (II,IIci)
|
||||
dcROM AFTERSETCTLCOLORINNEWCONTROL ; entry $19c, lpch 20 (II,IIci)
|
||||
dcROM AFTERPLOTCICONINDOALERT ; entry $19d, lpch 20 (II,IIci)
|
||||
dcROM BEGININWIND ; entry $19e, lpch 20 (II,IIci)
|
||||
dcROM SETUPTEXT ; entry $19f, lpch 20 (II,IIci)
|
||||
dcROM RESTORETE ; entry $1a0, lpch 20 (II,IIci)
|
||||
dcROM ENDINWIND ; entry $1a1, lpch 20 (II,IIci)
|
||||
dcROM DIALOGSTDEXIT ; entry $1a2, lpch 20 (II,IIci)
|
||||
dcROM AFTERGETRESOURCEINDOCOLOR ; entry $1a3, lpch 20 (II,IIci)
|
||||
dcROM AFTERPAINTONEINSETWINCOLOR ; entry $1a4, lpch 20 (II,IIci)
|
||||
dcROM SETGUTSINROM ; entry $1a5, lpch 20 (II,IIci)
|
||||
dcROM SETCTLCOLORAFTERSETGUTS ; entry $1a6, lpch 20 (II,IIci)
|
||||
dcROM SETENDINROM ; entry $1a7, lpch 20 (II,IIci)
|
||||
dcROM AFTERUNIONRGNINSETWTITLE ; entry $1a8, lpch 20 (II,IIci)
|
||||
dcROM AFTERPAINTONEINSETDESKCPAT ; entry $1a9, lpch 20 (II,IIci)
|
||||
dcROM OPENSLOTS ; entry $1aa, lpch 20 (II,IIci)
|
||||
dcROM SYNCCALLRTN2 ; entry $1ab, lpch 22 (SE,II,IIci)
|
||||
dcROM FMTTRKRET2 ; entry $1ac, lpch 22 (SE,II,IIci)
|
||||
dcROM EMPTYPD2 ; entry $1ad, lpch 22 (SE,II,IIci)
|
||||
dcROM AFTERFREEZETIMEINRMVTIME ; entry $1ae, lpch 24 (Portable,IIci)
|
||||
dcROM MULTANDMERGE ; entry $1af, lpch 24 (Portable,IIci)
|
||||
dcROM AFTERFREEZETIMEINPRIMETIME ; entry $1b0, lpch 24 (Portable,IIci)
|
||||
dcROM AFTERFREEZETIMEINTIMER2INT ; entry $1b1, lpch 24 (Portable,IIci)
|
||||
dcROM AFTERNMTASKINSYSTEMTASK ; entry $1b2, lpch 24 (Portable,IIci)
|
||||
dcROM AFTERLOADRESOURCEINCALLMDEFPROC ; entry $1b3, lpch 24 (Portable,IIci)
|
||||
dcROM AFTERCALLTOMDEFINCALLMDEFPROC ; entry $1b4, lpch 24 (Portable,IIci)
|
||||
dcROM PMGRRECV ; entry $1b5, lpch 24 (Portable,IIci)
|
||||
dcROM PMGRSEND ; entry $1b6, lpch 24 (Portable,IIci)
|
||||
dcROM GETLEVEL ; entry $1b7, lpch 24 (Portable,IIci)
|
||||
dcROM REMOVEMSG ; entry $1b8, lpch 24 (Portable,IIci)
|
||||
dcROM INSTALLMSG ; entry $1b9, lpch 24 (Portable,IIci)
|
||||
dcROM FROMDRAWARC ; entry $1ba, lpch 27 (Plus,SE,Portable,IIci)
|
||||
dcROM ROMGETA0LIST ; entry $1bb, lpch 28 (II,Portable,IIci)
|
||||
dcROM ROMGETMENUPTR ; entry $1bc, lpch 28 (II,Portable,IIci)
|
||||
dcROM ROMGETITEMRECORD ; entry $1bd, lpch 28 (II,Portable,IIci)
|
||||
dcROM ROMUPCHAR ; entry $1be, lpch 28 (II,Portable,IIci)
|
||||
dcROM ROMGOTMKEY ; entry $1bf, lpch 28 (II,Portable,IIci)
|
||||
dcROM ROMKEYNOTFOUND ; entry $1c0, lpch 28 (II,Portable,IIci)
|
||||
dcROM ROMGETHA0LIST ; entry $1c1, lpch 28 (II,Portable,IIci)
|
||||
dcROM ROMGETHINDEX ; entry $1c2, lpch 28 (II,Portable,IIci)
|
||||
dcROM AFTERUPRSTRINGINUPCHAR ; entry $1c3, lpch 28 (II,Portable,IIci)
|
||||
dcROM ClearASCInt ; entry $1c4, lpch 28 (II,Portable,IIci)
|
||||
dcROM DisableASCInts ; entry $1c5, lpch 28 (II,Portable,IIci)
|
||||
dcROM EnableASCInts ; entry $1c6, lpch 28 (II,Portable,IIci)
|
||||
dcROM SEEKCK ; entry $1c7, lpch 30 (SE,II,Portable,IIci)
|
||||
dcROM INITADBDRVR ; entry $1c8, lpch 30 (SE,II,Portable,IIci)
|
||||
dcROM ALLOCFAKERGNS ; entry $1c9, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM SCSILOAD ; entry $1ca, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM FLUSHVFILES ; entry $1cb, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMCACHERDIP ; entry $1cc, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMCHKNODE ; entry $1cd, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMLOCREC ; entry $1ce, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMBUILDKEY ; entry $1cf, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMFSQUEUE ; entry $1d0, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMDTRMV3 ; entry $1d1, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMEXTOFFLINCK ; entry $1d2, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMCMDDONE ; entry $1d3, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMBTDELETE ; entry $1d4, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMLOCCNODE ; entry $1d5, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMBTUPDATE ; entry $1d6, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMUPDVCNTS ; entry $1d7, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMMARKVCB ; entry $1d8, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMCMFLUSH ; entry $1d9, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMBTINSERT ; entry $1da, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMLOCCREC ; entry $1db, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMUPDRTCNTS ; entry $1dc, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMUPDCNAME ; entry $1dd, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMGT1STFCB ; entry $1de, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMGTNXTFCB ; entry $1df, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMFSQUEUESYNC ; entry $1e0, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMCKFILMOD ; entry $1e1, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMTFSVCBTST ; entry $1e2, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMCHGMFLLOCK ; entry $1e3, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMCMUPDATECN ; entry $1e4, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERSYSERRORINDSHOOK ; entry $1e5, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM DSEXIT ; entry $1e6, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM DTRMV2 ; entry $1e7, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERVOLCHECKINRENAME ; entry $1e8, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM RNMVOL1 ; entry $1e9, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMCVFLGS ; entry $1ea, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM RNMVOL@70 ; entry $1eb, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMDTRMV1 ; entry $1ec, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM CMRENAMECN ; entry $1ed, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERCMGETCNINRENAME ; entry $1ee, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMPOPCNAME ; entry $1ef, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERCMSETUPINCMCREATECN ; entry $1f0, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERCMSETUPINCMUPDATECN ; entry $1f1, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERCMSETUPINCMDELETECN ; entry $1f2, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERCMSETUPINCMMOVECN ; entry $1f3, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERCMSETUPINCMRENAMECN ; entry $1f4, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERCMRENAMECNINRENAME ; entry $1f5, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM FOPEN1 ; entry $1f6, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMFINDDRIVE ; entry $1f7, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM MARKVCBDIRTY ; entry $1f8, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM FLUSHMDB ; entry $1f9, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM OLDMTVOLAFTERFSQUEUE ; entry $1fa, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMCKEXTFS ; entry $1fb, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM EJECTIT ; entry $1fc, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM OFFLINEEJECTCALLSMFSFLUSH ; entry $1fd, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM OFFLINEEJECTCALLSFLUSHBUFFERS ; entry $1fe, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM FLUNMNTAFTERMFSCHECK ; entry $1ff, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM FLUNMNTCALLSFLUSHBUFFERS ; entry $200, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM FCLOSE ; entry $201, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM DSPOSVBLKS ; entry $202, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM DSPOSVCB ; entry $203, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMBTGETRECORD ; entry $204, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMBTSEARCH ; entry $205, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMXFFLUSH ; entry $206, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMGT1STWDCB ; entry $207, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMFNDFILNAME ; entry $208, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMGTNXTWDCB ; entry $209, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMFILLWDCB ; entry $20a, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMFLUSHCACHE ; entry $20b, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMGT1STMATCH ; entry $20c, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMGTNXTMATCH ; entry $20d, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERTRUNCATEFILE ; entry $20e, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMPUSHCNAME ; entry $20f, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMLOCBTCB ; entry $210, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMROTATELT ; entry $211, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMSPLITLT ; entry $212, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMUPDDREC ; entry $213, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMCMGETCN ; entry $214, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMINITNODE ; entry $215, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMBUILDIREC ; entry $216, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMGETMAXKEY ; entry $217, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMINSERTREC ; entry $218, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMBTSETUP ; entry $219, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMTREESEARCH ; entry $21a, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMDELETEREC ; entry $21b, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMGETLTSIB ; entry $21c, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMGETRTSIB ; entry $21d, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMLOCTPR ; entry $21e, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMGETRECA ; entry $21f, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMUPDIKEY ; entry $220, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMCMSETUP ; entry $221, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMCLRNODE ; entry $222, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMBTCLEANUP ; entry $223, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM MTVOLOK ; entry $224, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM FIXPTSTDENTRY ; entry $225, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ATLABEL2INFIXATAN ; entry $226, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM GOTSTVISINSETCTITLE ; entry $227, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERSETHANDLESIZEINSETCTITLE ; entry $228, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ERASECONTROLINDISPOSECONTROL ; entry $229, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERERASECONTROLINDISPOSECONTROL ; entry $22a, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM SYSEVTAFTERFRONTWINDOW ; entry $22b, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM SYSEVTDONESEVT ; entry $22c, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM SEARCHWINDOW ; entry $22d, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERFRONTWINDOWINSYSTEMCLICK ; entry $22e, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERTRACKGOAWAYINSYSTEMCLICK ; entry $22f, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM CLAIMEVENT ; entry $230, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM FRAMEOUT ; entry $231, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM DIALOGSTDENTRY ; entry $232, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMINITDIALOGCONTINUE ; entry $233, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMISDIACLAIMEVENT ; entry $234, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ISDIAAFTERCLAIMEVENT ; entry $235, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ISDIANOTDLGEXIT ; entry $236, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM DSAFTERCLAIMEVENT ; entry $237, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM DSNOTMINEEXIT ; entry $238, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM TEKEYFROMEVENTAD ; entry $239, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERH2HINDOSTATIC ; entry $23a, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMSKIPPARAM ; entry $23b, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM STD1ENTRY ; entry $23c, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM REFHANDLE ; entry $23d, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM RRENTRY6 ; entry $23e, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM RDDATA ; entry $23f, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM RSTDEXIT ; entry $240, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM WRDATA ; entry $241, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM SPACEAT ; entry $242, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM SAVEREGS ; entry $243, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM CHECKGROWAT1 ; entry $244, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ADDNEWREFWITHOUTUPDATE ; entry $245, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ADDNAME ; entry $246, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM STDZENTRY ; entry $247, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERSTDZENTRYINCREATERESFILE ; entry $248, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMOPENRFPERM ; entry $249, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERCREATEINCREATERESFILE ; entry $24a, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTEROPENRFINORFCOMMON ; entry $24b, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERSETEOFINCHECKGROW ; entry $24c, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERSETHANDLESIZEINRESIZEMAP ; entry $24d, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERRESIZEMAPINRMVENAME ; entry $24e, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM GETRSRCCNT ; entry $24f, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AT9INRMVENAME ; entry $250, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM DOPUTAPPENDMEM ; entry $251, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM PUTSCRAPEXIT ; entry $252, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM DOPUTAPPENDFILE ; entry $253, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM SYNCCALLRTN ; entry $254, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM FMTTRKRET ; entry $255, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM EMPTYPD ; entry $256, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERGETMOUSEINGETNEXTEVENT ; entry $257, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERGETRESOURCEINTRYFKEY ; entry $258, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTEROSEVENTAVAILINGETNEXTEVENT ; entry $259, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERGETOSEVENTINGETNEXTEVENT ; entry $25a, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERKILLCONTROLSINCLOSEWINDOW ; entry $25b, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERSHOWHIDEINSHOWWINDOW ; entry $25c, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM FROMPAINTONE ; entry $25d, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM TESTCLIP ; entry $25e, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERCLIPABOVE ; entry $25f, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM FROMDRAGWINDOW ; entry $260, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM CLIPGABOVE ; entry $261, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM NOBTF0 ; entry $262, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM STARTROMWMGR ; entry $263, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ENDROMWMGR ; entry $264, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM FROMSELECTWINDOW ; entry $265, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM BTF1 ; entry $266, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM MAKEDEACTIVE ; entry $267, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM POSTDOACTIVATE ; entry $268, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM PRESKIPUNHILITE ; entry $269, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM FROMBTF1 ; entry $26a, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM FROMGETNEWWIND ; entry $26b, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM FROMGETADHNDL ; entry $26c, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM CALLWINDOW ; entry $26d, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM CALLWCALC ; entry $26e, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM INSERTWINDOW ; entry $26f, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM NODESKHOOK ; entry $270, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM IVALCOMMON ; entry $271, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERSECTRGNINGOPAINTONE ; entry $272, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM SKIPERASEINROM ; entry $273, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ERASEINROM ; entry $274, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERPAINTBEHINDINDRAWNEW ; entry $275, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERPAINTBEHINDINSENDBEHIND ; entry $276, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERPAINTONEINMOVEWINDOW ; entry $277, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERPAINTONEINBRINGTOFRONT ; entry $278, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERPENMODEINDRAGTHERGN ; entry $279, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM AFTERCALCVBEHINDINSENDBEHIND ; entry $27a, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM ROMGETRSRCCNT ; entry $27b, lpch 31 (Plus,SE,II,Portable,IIci)
|
||||
dcROM SWAPROMMAP ; entry $27c, lpch 31 (Plus,SE,II,Portable,IIci)
|
551
Make/System.make
Normal file
551
Make/System.make
Normal file
@ -0,0 +1,551 @@
|
||||
#
|
||||
# Hacks to match MacOS (most recent first):
|
||||
#
|
||||
# <Sys7.1> 8/3/92 Written from scratch to replace missing makefile
|
||||
#
|
||||
|
||||
SysVersMajor = 7 # 0-99
|
||||
SysVersMinor = 1 # 0-9
|
||||
SysVersBugfix = 0 # 0-9
|
||||
SysVersStage = final # develop/alpha/beta/final=release (only first letter counted)
|
||||
SysVersPre = 0 # 0-255
|
||||
LangInt = 0 # 0=US
|
||||
|
||||
# Built-in Video Monitors (cdev) Extension for IIci and IIsi
|
||||
VidExtVers = 1.0.1
|
||||
|
||||
# Directory variables for source code (trailing : essential)
|
||||
BuildDir = {Sources}BuildResults:System:
|
||||
ImageDir = {BuildDir}Image:
|
||||
RsrcDir = {BuildDir}Rsrc:
|
||||
LibDir = {BuildDir}Lib:
|
||||
ObjDir = {BuildDir}Obj:
|
||||
TextDir = {BuildDir}Text:
|
||||
IfObjDir = {ObjDir}Interface:
|
||||
MakeDir = {Sources}Make:
|
||||
ResourceDir = {Sources}Resources:
|
||||
DeclDir = {Sources}DeclData:
|
||||
ToolDir = {Sources}Tools:
|
||||
ToolSrcDir = {Sources}Tools:ToolSource:
|
||||
MiscDir = {Sources}Misc:
|
||||
TidbitsDir = {Sources}Tidbits:
|
||||
DriverDir = {Sources}Drivers:
|
||||
PatchDir = {Sources}Patches:
|
||||
LinkPatchDir = {Sources}LinkedPatches:
|
||||
ProcessMgrDir = {Sources}ProcessMgr:
|
||||
|
||||
# Directory variables for Asm/C/Pascal/Rez headers
|
||||
AIncludes = {Sources}Interfaces:AIncludes:
|
||||
CIncludes = {Sources}Interfaces:CIncludes:
|
||||
PInterfaces = {Sources}Interfaces:PInterfaces:
|
||||
RIncludes = {Sources}Interfaces:RIncludes:
|
||||
IntAIncludes = {Sources}Internal:Asm:
|
||||
IntCIncludes = {Sources}Internal:C:
|
||||
IntPInterfaces = {Sources}Internal:Pascal:
|
||||
IntRIncludes = {Sources}Internal:Rez:
|
||||
Libraries = {Sources}Libs:Libraries:
|
||||
CLibraries = {Sources}Libs:CLibraries:
|
||||
PLibraries = {Sources}Libs:PLibraries:
|
||||
|
||||
# Resource and Rez files included by Sys.r into the System file
|
||||
SystemResourceFiles = ∂
|
||||
{MiscDir}APTK57.rsrc ∂
|
||||
{MiscDir}SystemSounds.r ∂
|
||||
{MiscDir}VM.rsrc ∂
|
||||
{OSDir}Keyboard:Kbd.r ∂
|
||||
{RsrcDir}AliasMgr.rsrc ∂
|
||||
{RsrcDir}AppleEventMgr.rsrc ∂
|
||||
{RsrcDir}Backlight.rsrc ∂
|
||||
{RsrcDir}BalloonPack.a.rsrc ∂
|
||||
{RsrcDir}BeforePatches.a.rsrc ∂
|
||||
{RsrcDir}BootAlerts.a.rsrc ∂
|
||||
{RsrcDir}BootBlocks.a.rsrc ∂
|
||||
{RsrcDir}BootCode.a.rsrc ∂
|
||||
{RsrcDir}BuiltInVideoExtension.p.rsrc ∂
|
||||
{RsrcDir}ButtonCDEF.a.rsrc ∂
|
||||
{RsrcDir}Choose.p.rsrc ∂
|
||||
{RsrcDir}Choose.r.rsrc ∂
|
||||
{RsrcDir}ChooseHelp.r.rsrc ∂
|
||||
{RsrcDir}ColorPicker.p.rsrc ∂
|
||||
{RsrcDir}CommResourceMgr.c.rsrc ∂
|
||||
{RsrcDir}CommToolboxINIT.r.rsrc ∂
|
||||
{RsrcDir}CommToolboxLDEF.p.rsrc ∂
|
||||
{RsrcDir}CommToolboxUtilities.c.rsrc ∂
|
||||
{RsrcDir}ConnectionMgr.c.rsrc ∂
|
||||
{RsrcDir}DAHandler.rsrc ∂
|
||||
{RsrcDir}DeCompressDefProc.a.rsrc ∂
|
||||
{RsrcDir}DeCompressDefProc1.a.rsrc ∂
|
||||
{RsrcDir}DictionaryMgr.a.rsrc ∂
|
||||
{RsrcDir}DiskCache.a.rsrc ∂
|
||||
{RsrcDir}DiskInit.rsrc ∂
|
||||
{RsrcDir}DITL.p.rsrc ∂
|
||||
{RsrcDir}EditionMgr.rsrc ∂
|
||||
{RsrcDir}FileTransferMgr.c.rsrc ∂
|
||||
{RsrcDir}GenericIcons.rsrc ∂
|
||||
{RsrcDir}Gestalt.rsrc ∂
|
||||
{RsrcDir}GreggyBitsDefProc.a.rsrc ∂
|
||||
{RsrcDir}IconLDEF.a.rsrc ∂
|
||||
{RsrcDir}IconUtils.rsrc ∂
|
||||
{RsrcDir}International.rsrc ∂
|
||||
{RsrcDir}InternationalPACK.a.rsrc ∂
|
||||
{RsrcDir}itl4Roman.a.rsrc ∂
|
||||
{RsrcDir}KbdInstall.a.rsrc ∂
|
||||
{RsrcDir}LayerWDEF.c.rsrc ∂
|
||||
{RsrcDir}LinkedPatches.rsrc ∂
|
||||
{RsrcDir}LinkedPatchLoader.a.rsrc ∂
|
||||
{RsrcDir}ListMgrPACK.a.rsrc ∂
|
||||
{RsrcDir}MACE3.c.rsrc ∂
|
||||
{RsrcDir}MACE6.c.rsrc ∂
|
||||
{RsrcDir}Meter.c.rsrc ∂
|
||||
{RsrcDir}mNote.c.rsrc ∂
|
||||
{RsrcDir}mSamp.c.rsrc ∂
|
||||
{RsrcDir}mWave.c.rsrc ∂
|
||||
{RsrcDir}Note.c.rsrc ∂
|
||||
{RsrcDir}ParityINIT.a.rsrc ∂
|
||||
{RsrcDir}PartySamp.c.rsrc ∂
|
||||
{RsrcDir}PatchIIciROM.a.rsrc ∂
|
||||
{RsrcDir}PatchIIROM.a.rsrc ∂
|
||||
{RsrcDir}PatchPlusROM.a.rsrc ∂
|
||||
{RsrcDir}PatchPortableROM.a.rsrc ∂
|
||||
{RsrcDir}PatchSEROM.a.rsrc ∂
|
||||
{RsrcDir}PictButtonCDEF.a.rsrc ∂
|
||||
{RsrcDir}PictUtilities.rsrc ∂
|
||||
{RsrcDir}PictWhap.a.rsrc ∂
|
||||
{RsrcDir}PictWhapSound.rsrc ∂
|
||||
{RsrcDir}PopupCDEF.c.rsrc ∂
|
||||
{RsrcDir}PopupCDEFMDEF.a.rsrc ∂
|
||||
{RsrcDir}PopupTriangle.r.rsrc ∂
|
||||
{RsrcDir}PPCBrowser.a.rsrc ∂
|
||||
{RsrcDir}PreventSwitchLaunch.a.rsrc ∂
|
||||
{RsrcDir}PrintDriver.a.rsrc ∂
|
||||
{RsrcDir}QDciPatchROM.a.rsrc ∂
|
||||
{RsrcDir}QuickDrawPatchII.rsrc ∂
|
||||
{RsrcDir}RomanITL2.a.rsrc ∂
|
||||
{RsrcDir}RoundedWDEF.a.rsrc ∂
|
||||
{RsrcDir}ROvr.a.rsrc ∂
|
||||
{RsrcDir}Scheduler.rsrc ∂
|
||||
{RsrcDir}ScriptMgrExtensions.rsrc ∂
|
||||
{RsrcDir}ScriptMgrPatch.rsrc ∂
|
||||
{RsrcDir}ScriptMgrROMPatch.rsrc ∂
|
||||
{RsrcDir}ScrollBarCDEF.a.rsrc ∂
|
||||
{RsrcDir}SinDrvr.a.rsrc ∂
|
||||
{RsrcDir}SinHighLevel.rsrc ∂
|
||||
{RsrcDir}SnarfMan.a.rsrc ∂
|
||||
{RsrcDir}SnthLoading.rsrc ∂
|
||||
{RsrcDir}SoundInputProc.rsrc ∂
|
||||
{RsrcDir}SoundPFDProc.rsrc ∂
|
||||
{RsrcDir}StandardFile.rsrc ∂
|
||||
{RsrcDir}StandardMBDF.a.rsrc ∂
|
||||
{RsrcDir}StandardMDEF.a.rsrc ∂
|
||||
{RsrcDir}StandardNBP.p.rsrc ∂
|
||||
{RsrcDir}StandardNBP.r.rsrc ∂
|
||||
{RsrcDir}StandardNBPHelp.r.rsrc ∂
|
||||
{RsrcDir}StandardNBPLDEF.p.rsrc ∂
|
||||
{RsrcDir}StandardWDEF.a.rsrc ∂
|
||||
{RsrcDir}StartSystem.a.rsrc ∂
|
||||
{RsrcDir}SystemFonts.rsrc ∂
|
||||
{RsrcDir}TerminalClick.r.rsrc ∂
|
||||
{RsrcDir}TerminalMgr.c.rsrc ∂
|
||||
{RsrcDir}TextLDEF.a.rsrc ∂
|
||||
{RsrcDir}TFBDriver.a.rsrc ∂
|
||||
{RsrcDir}UserAlerts.a.rsrc ∂
|
||||
{RsrcDir}Wave.c.rsrc ∂
|
||||
{ToolBoxDir}ColorPicker:ColorPicker.r ∂
|
||||
{ToolBoxDir}ColorPicker:ColorPickerWedge.r ∂
|
||||
|
||||
# Object files that make up the (big) 'lpch' resources
|
||||
LinkedPatchObjs = ∂
|
||||
{ObjDir}ForceRomBindOrder.a.o ∂
|
||||
{ObjDir}PatchProtector.a.o ∂
|
||||
{ObjDir}ProcessManagerSegmentTweaks.a.o ∂
|
||||
{ObjDir}PatchROMAlarmNotify.a.o ∂
|
||||
{ObjDir}GestaltExtensions.a.o ∂
|
||||
{ObjDir}ShutDownMgr.a.o ∂
|
||||
{ObjDir}HwPriv.a.o ∂
|
||||
{ObjDir}MMUPatches.a.o ∂
|
||||
{ObjDir}DispatchHelper.a.o ∂
|
||||
{ObjDir}VMPatches.a.o ∂
|
||||
{LibDir}TimeMgr.lib ∂
|
||||
{LibDir}AliasMgr.lib ∂
|
||||
{LibDir}SCSI.lib ∂
|
||||
{LibDir}HFS.lib ∂
|
||||
{LibDir}FontMgr.lib ∂
|
||||
{LibDir}BTreeMgr.lib ∂
|
||||
{LibDir}PPC.lib ∂
|
||||
{LibDir}NotificationMgr.lib ∂
|
||||
{LibDir}MenuMgr.lib ∂
|
||||
{ObjDir}MungerPatches.a.o ∂
|
||||
{LibDir}SlotMgr.lib ∂
|
||||
{ObjDir}TextEditPatch.a.o ∂
|
||||
{ObjDir}TextEditPatchIIciROM.a.o ∂
|
||||
{LibDir}SoundMgr.lib ∂
|
||||
{LibDir}IconUtils.lib ∂
|
||||
{ObjDir}ADBMgrPatch.a.o ∂
|
||||
{ObjDir}KbdPatches.a.o ∂
|
||||
{ObjDir}AllBWQDPatch.a.o ∂
|
||||
{ObjDir}CheckDevicesINIT.a.o ∂
|
||||
{LibDir}CommToolboxPatch.Lib ∂
|
||||
{LibDir}ControlMgr.lib ∂
|
||||
{ObjDir}DeskMgrPatches.a.o ∂
|
||||
{ObjDir}DeviceLoop.a.o ∂
|
||||
{LibDir}DialogMgr.lib ∂
|
||||
{ObjDir}GetMgrPatches.a.o ∂
|
||||
{ObjDir}LayerMgr.c.o ∂
|
||||
{ObjDir}MemoryMgrPatches.a.o ∂
|
||||
{ObjDir}MiscPatches.a.o ∂
|
||||
{LibDir}ModalDialogMenuPatches.lib ∂
|
||||
{ObjDir}Mouse.a.o ∂
|
||||
{ObjDir}OpenResFile.a.o ∂
|
||||
{ObjDir}PaletteMgrPatches.a.o ∂
|
||||
{ObjDir}PowerMgrPatches.a.o ∂
|
||||
{ObjDir}PrintGlue.a.o ∂
|
||||
{ObjDir}LowMemoryPrintingPatches.a.o ∂
|
||||
{ObjDir}QuickDrawPatches.a.o ∂
|
||||
{LibDir}ResourceMgr.lib ∂
|
||||
{ObjDir}SaveRestoreBits.a.o ∂
|
||||
{ObjDir}ScrapMgrPatches.a.o ∂
|
||||
{ObjDir}SegmentLoaderPatches.a.o ∂
|
||||
{ObjDir}SonyPatches.a.o ∂
|
||||
{LibDir}ComponentMgr.lib ∂
|
||||
{LibDir}ToolboxEventMgr.lib ∂
|
||||
{LibDir}WindowMgr.lib ∂
|
||||
{ObjDir}backlightpatch.a.o ∂
|
||||
{ObjDir}BrightnessPatches.a.o ∂
|
||||
{LibDir}HelpMgr.lib ∂
|
||||
{LibDir}TextServicesMgr.lib ∂
|
||||
{ObjDir}FontFolderExtension.a.o ∂
|
||||
{ObjDir}ResourceOverridePatches.a.o ∂
|
||||
{ObjDir}EDiskLocalNamePatch.a.o ∂
|
||||
{ObjDir}LateLoad.a.o ∂
|
||||
{CLibraries}StdCLib.o ∂
|
||||
{IfObjDir}interface.o ∂
|
||||
{Libraries}Runtime.o ∂
|
||||
{ObjDir}FinalInitialization.a.o ∂
|
||||
|
||||
# Conditional compilation booleans for Asm/C/Pascal/Rez
|
||||
Conds = ∂
|
||||
BlackBirdDebug=FALSE ∂
|
||||
CubeE=TRUE ∂
|
||||
DBLite=FALSE ∂
|
||||
forADBKeyboards=TRUE ∂
|
||||
forPDMDebug=FALSE ∂
|
||||
forPDMProto=FALSE ∂
|
||||
forROM=FALSE ∂
|
||||
forRomulator=FALSE ∂
|
||||
forSmurf=FALSE ∂
|
||||
forSTPnop=FALSE ∂
|
||||
hasADBKeyLayouts=TRUE ∂
|
||||
hasAppleEventMgr=TRUE ∂
|
||||
hasAsyncSCSI=FALSE ∂
|
||||
hasBalloonHelp=TRUE ∂
|
||||
hasBitEdit=FALSE ∂
|
||||
hasCommToolbox=TRUE ∂
|
||||
hasDataAccessMgr=TRUE ∂
|
||||
hasDisplayMgrWindows=FALSE ∂
|
||||
hasEditionMgr=TRUE ∂
|
||||
hasEgret=FALSE ∂
|
||||
hasHMC=FALSE ∂
|
||||
hasJaws=FALSE ∂
|
||||
hasLayerlessApps=FALSE ∂
|
||||
hasManEject=FALSE ∂
|
||||
hasMMU=FALSE ∂
|
||||
hasMSC=FALSE ∂
|
||||
hasNiagra=FALSE ∂
|
||||
hasNonADBKeyLayouts=TRUE ∂
|
||||
hasPortableKeyLayouts=FALSE ∂
|
||||
hasPowerMgr=FALSE ∂
|
||||
hasPwrControls=TRUE ∂
|
||||
hasPwrMgrClock=TRUE ∂
|
||||
hasRISCV0ResMgrPatches=FALSE ∂
|
||||
hasSlotMgr=TRUE ∂
|
||||
hasSplineFonts=TRUE ∂
|
||||
IopADB=FALSE ∂
|
||||
NewBuildSystem=TRUE ∂
|
||||
nonSerializedIO=TRUE ∂
|
||||
padForOverPatch=FALSE ∂
|
||||
Pre70=FALSE ∂
|
||||
PwrMgrADB=TRUE ∂
|
||||
ROMFastTraps=FALSE ∂
|
||||
Supports24Bit=TRUE ∂
|
||||
SystemSevenOrLater=TRUE ∂
|
||||
SystemSixOrLater=TRUE ∂
|
||||
TheFuture=FALSE ∂
|
||||
ViaADB=TRUE ∂
|
||||
|
||||
# Stop newer MPW versions from using Symantec C
|
||||
C = C
|
||||
|
||||
# Housekeeping defs not to be overriden by the Build script
|
||||
MAOpts = -d TRUE=1 -d FALSE=0 -d Alignment=4 -d CPU=20 -blksize 62 -w
|
||||
MCOpts = -d TRUE=1 -d FALSE=0 -d Alignment=4 -d CPU=00 -b3 -mbg off
|
||||
MPOpts = -mbg off -r -noload # -r suppresses bounds checks, -noload ignores dirty 'unit' resources
|
||||
|
||||
# Build all targets if none is specified
|
||||
All ƒ FeatureSet {BuildDir}System {BuildDir}ProcessMgrINIT
|
||||
|
||||
# Shell vars and precompiled headers first (Build script will always specify FeatureSet)
|
||||
FeatureSet ƒ RealFeatureSet {ObjDir}StandardEqu.d {ObjDir}ProcessMgrIncludes.D
|
||||
RealFeatureSet ƒ
|
||||
Set Exit 1
|
||||
Set StageChar `Echo {SysVersStage} | StreamEdit -d -e "/•r/ Pr 'f'; /•f/ Pr 'f'; /•b/ Pr 'b'; /•a/ Pr 'a'; /•d/ Pr 'd'"`
|
||||
Set StageHex `Echo {SysVersStage} | StreamEdit -d -e "/•r/ Pr '0x80'; /•f/ Pr '0x80'; /•b/ Pr '0x60'; /•a/ Pr '0x40'; /•d/ Pr '0x20'"`
|
||||
Set StageInt `Evaluate {StageHex}`
|
||||
Set VersString `Echo {SysVersMajor}.{SysVersMinor}.{SysVersBugfix}{StageChar}{SysVersPre} | StreamEdit -e "/≈/ Rep /f0∞/ ''; Rep /(≈)®1.0/ ®1"`
|
||||
Set VersInt `Evaluate 0x{SysVersMajor}{SysVersMinor}{SysVersBugfix}`
|
||||
Set VersCommon "-d SysVers={VersInt} -d StageInt={StageInt} -d LangInt={LangInt}"
|
||||
Set FeatureSet "`Echo {Conds} | StreamEdit -e "/≈/ Replace -c ∞ /([A-Za-z0-9]+=[A-Za-z0-9]+)®1/ '-d ' ®1"`" ; Export FeatureSet
|
||||
Set Commands {ToolDir},{Commands}
|
||||
Set ObjDir {ObjDir} ; Export ObjDir
|
||||
Set RsrcDir {RsrcDir} ; Export RsrcDir
|
||||
Set TextDir {TextDir} ; Export TextDir
|
||||
Set MiscDir {MiscDir} ; Export MiscDir
|
||||
Set TidbitsDir {TidbitsDir} ; Export TidbitsDir
|
||||
Set AIncludes {AIncludes}
|
||||
Set CIncludes {CIncludes}
|
||||
Set PInterfaces {PInterfaces}
|
||||
Set RIncludes {RIncludes}
|
||||
Set Libraries {Libraries}
|
||||
Set CLibraries {CLibraries}
|
||||
Set PLibraries {PLibraries}
|
||||
Set IntAIncludes {IntAIncludes} ; Export IntAIncludes
|
||||
Set IntCIncludes {IntCIncludes} ; Export IntCIncludes
|
||||
Set IntPInterfaces {IntPInterfaces} ; Export IntPInterfaces
|
||||
Set IntRIncludes {IntRIncludes} ; Export IntRIncludes
|
||||
Set StdAOpts "{MAOpts} {FeatureSet} -i {IntAIncludes} {AOpts} -i {ObjDir} {VersCommon} -d &SysVersion=∂∂'{VersString}∂∂'"
|
||||
Set StdCOpts "{MCOpts} {FeatureSet} -i {IntCIncludes} {COpts} -n {VersCommon} -d SYS_VERSION=∂∂'{VersInt}∂∂'"
|
||||
Set StdCPOpts "{MCPOpts} {FeatureSet} -i {IntCIncludes} {COpts} {VersCommon} -d SYS_VERSION=∂∂'{VersInt}∂∂'"
|
||||
Set StdPOpts "{MPOpts} {FeatureSet} -i {IntPInterfaces} {POpts}"
|
||||
Set StdROpts "{MROpts} {FeatureSet} -i {IntRIncludes} {ROpts} -i {RIncludes} {VersCommon} -d SysVersion=∂∂∂"{VersString}∂∂∂" -d LIntVers=0x{SysVersMajor},0x{SysVersMinor}{SysVersBugfix},{StageHex},`Evaluate -h {SysVersPre}`"
|
||||
Set StdLOpts "-w {LOpts} -mf -t rsrc -c RSED -sg Main"
|
||||
Set StdLibOpts "-w {LibOpts} -mf"
|
||||
Set StdAlign "{Align}"
|
||||
Set StdEquAOpts "-d StandardEquROMFastTraps=0 -d StandardEquSupports24Bit=1" # Compat with new conditionals in SuperMario headers
|
||||
|
||||
|
||||
# For the Build script -- but easier just to trash BuildResults
|
||||
Clean ƒ
|
||||
Delete -i `Files -f -r -o -s {BuildDir}` ≥ Dev:Null
|
||||
|
||||
# Make's default rules with XOpts replaced by StdXOpts (defined as a Shell variable above)
|
||||
.a.o ƒ .a
|
||||
{Asm} {StdAOpts} -o {Targ} {DepDir}{Default}.a
|
||||
|
||||
.c.o ƒ .c
|
||||
{C} {StdCOpts} -o {Targ} {DepDir}{Default}.c
|
||||
|
||||
.p.o ƒ .p
|
||||
{Pascal} {StdPOpts} -o {Targ} {DepDir}{Default}.p
|
||||
|
||||
.cp.o ƒ .c
|
||||
{CPlus} {StdCPOpts} -o {Targ} {DepDir}{Default}.cp
|
||||
|
||||
# Bring in other variables and rules
|
||||
# (MainCode.make is for ROM, but it brings in other stuff)
|
||||
#include {DriverDir}Drivers.make
|
||||
#include {MakeDir}MainCode.make
|
||||
#include {DeclDir}DeclData.make
|
||||
#include {ResourceDir}Resources.make
|
||||
#include {ProcessMgrDir}ProcessMgr.make
|
||||
|
||||
|
||||
########################################################################
|
||||
# Build tools
|
||||
########################################################################
|
||||
|
||||
{RsrcDir}SysDF ƒ {ToolDir}SysDF.c {IfObjDir}Interface.o
|
||||
C {COpts} -o {ObjDir}SysDF.c.o {ToolDir}SysDF.c
|
||||
Link -o {Targ} -t 'MPST' -c 'MPS ' {ObjDir}SysDF.c.o {IfObjDir}Interface.o {CLibraries}StdCLib.o {Libraries}Runtime.o
|
||||
|
||||
|
||||
########################################################################
|
||||
# The System file
|
||||
########################################################################
|
||||
|
||||
# Hacks adapt Sys.r to the changed build system
|
||||
{BuildDir}System ƒ {ResourceDir}Sys.r {SystemResourceFiles} {PatchDir}LoadPatches.a {RsrcDir}SysDF
|
||||
Set Misc {MiscDir}; Export Misc
|
||||
Set ColorPicker {ColorPickerDir}; Export ColorPicker
|
||||
Set DataAccessMgr {DataAccessDir}; Export DataAccessMgr
|
||||
Set Keyboard {OSDir}Keyboard:; Export Keyboard
|
||||
Set RealObjDir {ObjDir}; Set ObjDir {RsrcDir}
|
||||
Rez {StdROpts} -t zsys -c MACS -d VidExtVers=∂"{VidExtVers}∂" {ResourceDir}Sys.r -o {Targ}
|
||||
Set ObjDir {RealObjDir}
|
||||
# Get rid of all the "Main" segment names
|
||||
#DeRez {Targ} ∂
|
||||
# | StreamEdit -d -e '/•data ([¬ ]+)®1 ∂(([¬,]+)®2,≈∂"Main∂"/ Print "Change "®1" ("®2") to $$Type ($$Id, $$Attributes);"' ∂
|
||||
# | Rez -a -o {Targ}
|
||||
# Compatibility code (and credits) in the data fork
|
||||
Asm {StdAOpts} -o {ObjDir}LoadPatches.a.o {PatchDir}LoadPatches.a
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {RsrcDir}LoadPatches.a.rsrc {ObjDir}LoadPatches.a.o
|
||||
{RsrcDir}SysDF {Targ} {RsrcDir}LoadPatches.a.rsrc
|
||||
|
||||
|
||||
########################################################################
|
||||
# Classical PTCH resources
|
||||
########################################################################
|
||||
|
||||
# Patches and patch installation code for all ROMs (PTCH 0)
|
||||
{RsrcDir}BeforePatches.a.rsrc ƒ {PatchDir}BeforePatches.a
|
||||
Asm {StdAOpts} -o {ObjDir}BeforePatches.a.o {PatchDir}BeforePatches.a
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}BeforePatches.a.o
|
||||
|
||||
PatchOpts = -d SonyNonPortable -i {PatchDir} -i {GestaltDir} -i {QDPatchesDir} -i {Sources}QuickDraw: -i {DriverDir}Video:
|
||||
|
||||
# PTCH $75 (117) for Plus
|
||||
{ObjDir}PatchPlusROM.a.o ƒ {PatchDir}PatchPlusROM.a
|
||||
Asm {StdAOpts} {PatchOpts} -o {Targ} {PatchDir}PatchPlusROM.a
|
||||
{RsrcDir}PatchPlusROM.a.rsrc ƒ {ObjDir}PatchPlusROM.a.o
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}PatchPlusROM.a.o
|
||||
|
||||
# PTCH $178 (376) for II
|
||||
{ObjDir}PatchIIROM.a.o ƒ {PatchDir}PatchIIROM.a
|
||||
Asm {StdAOpts} {PatchOpts} -o {Targ} {PatchDir}PatchIIROM.a
|
||||
{RsrcDir}PatchIIROM.a.rsrc ƒ {ObjDir}PatchIIROM.a.o
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}PatchIIROM.a.o
|
||||
|
||||
# PTCH $276 (630) for SE
|
||||
{ObjDir}PatchSEROM.a.o ƒ {PatchDir}PatchSEROM.a
|
||||
Asm {StdAOpts} {PatchOpts} -o {Targ} {PatchDir}PatchSEROM.a
|
||||
{RsrcDir}PatchSEROM.a.rsrc ƒ {ObjDir}PatchSEROM.a.o
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}PatchSEROM.a.o
|
||||
|
||||
# PTCH $37a (890) for Portable
|
||||
{ObjDir}PatchPortableROM.a.o ƒ {PatchDir}PatchPortableROM.a
|
||||
Asm {StdAOpts} {PatchOpts} -o {Targ} {PatchDir}PatchPortableROM.a
|
||||
{RsrcDir}PatchPortableROM.a.rsrc ƒ {ObjDir}PatchPortableROM.a.o
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}PatchPortableROM.a.o
|
||||
|
||||
# PTCH $676 (1660) for IIci
|
||||
{ObjDir}PatchIIciROM.a.o ƒ {PatchDir}PatchIIciROM.a
|
||||
Asm {StdAOpts} {PatchOpts} -o {Targ} {PatchDir}PatchIIciROM.a
|
||||
{RsrcDir}PatchIIciROM.a.rsrc ƒ {ObjDir}PatchIIciROM.a.o
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}PatchIIciROM.a.o
|
||||
|
||||
|
||||
########################################################################
|
||||
# The LinkedPatch mechanism
|
||||
########################################################################
|
||||
|
||||
# Link LinkPatch, the LinkedPatch linker (object only, no source code!)
|
||||
{RsrcDir}LinkPatch ƒ {LinkPatchDir}LinkPatchLib.o {ObjDir}LinkPatch.a.o
|
||||
Link -t MPST -c 'MPS ' -o {Targ} {LinkPatchDir}LinkPatchLib.o {ObjDir}LinkPatch.a.o
|
||||
|
||||
# LinkPatch needs to know some constants in LinkedPatchMacros.a
|
||||
{ObjDir}LinkPatch.a.o ƒ {LinkPatchDir}LinkPatch.a
|
||||
Asm {StdAOpts} -o {Targ} {LinkPatchDir}LinkPatch.a
|
||||
|
||||
# Combine the linked patch objects into one lib...
|
||||
{LibDir}LinkedPatches.lib ƒ {LinkedPatchObjs}
|
||||
Lib {StdLibOpts} -o {Targ} {LinkedPatchObjs}
|
||||
|
||||
# ...and link them into several 'lpch' resource
|
||||
{RsrcDir}LinkedPatches.rsrc ƒ {RsrcDir}LinkPatch {LibDir}LinkedPatches.lib
|
||||
# -l for some table, -v for counts, -p for patches, -w for ?warnings-off
|
||||
{RsrcDir}LinkPatch -l -w -o {Targ} {LibDir}LinkedPatches.lib > {TextDir}LinkPatchJumpTbl
|
||||
|
||||
# Assemble the runtime linked patch loader...
|
||||
{ObjDir}LinkedPatchLoader.a.o ƒ {LinkPatchDir}LinkedPatchLoader.a
|
||||
Asm {StdAOpts} -o {Targ} {LinkPatchDir}LinkedPatchLoader.a
|
||||
|
||||
# ...and link it into a 'lodr' resource
|
||||
{RsrcDir}LinkedPatchLoader.a.rsrc ƒ {ObjDir}LinkedPatchLoader.a.o
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}LinkedPatchLoader.a.o
|
||||
|
||||
|
||||
########################################################################
|
||||
# LinkedPatch objects not built by another makefile
|
||||
########################################################################
|
||||
|
||||
# My hack to ensure byte-perfect lpch builds
|
||||
{ObjDir}ForceRomBindOrder.a.o ƒ {Sources}Make:ForceRomBindOrder.a
|
||||
Asm {StdAOpts} -o {Targ} {Sources}Make:ForceRomBindOrder.a
|
||||
|
||||
# A patch to SetTrapAddress and GetTrapAddress that “protects” come-from patches
|
||||
{ObjDir}PatchProtector.a.o ƒ {LinkPatchDir}PatchProtector.a
|
||||
Asm {StdAOpts} -o {Targ} {LinkPatchDir}PatchProtector.a
|
||||
|
||||
# Do smarter loading of Process Manager segments to reduce system heap fragmentation
|
||||
{ObjDir}ProcessManagerSegmentTweaks.a.o ƒ {PatchDir}ProcessManagerSegmentTweaks.a
|
||||
Asm {StdAOpts} -o {Targ} {PatchDir}ProcessManagerSegmentTweaks.a
|
||||
|
||||
# Patches to backgroung printing when memory is low
|
||||
{ObjDir}LowMemoryPrintingPatches.a.o ƒ {PatchDir}LowMemoryPrintingPatches.a
|
||||
Asm {StdAOpts} -o {Targ} {PatchDir}LowMemoryPrintingPatches.a
|
||||
|
||||
# Patch Classic .Screen drvr to error on "GetScreenState" status call
|
||||
{ObjDir}BrightnessPatches.a.o ƒ {PatchDir}BrightnessPatches.a
|
||||
Asm {StdAOpts} -o {Targ} {PatchDir}BrightnessPatches.a
|
||||
|
||||
# RamDisk internal name localizer
|
||||
{ObjDir}EDiskLocalNamePatch.a.o ƒ {PatchDir}EDiskLocalNamePatch.a
|
||||
Asm {StdAOpts} -o {Targ} {PatchDir}EDiskLocalNamePatch.a
|
||||
|
||||
# Responsible for mounting slow SCSI drives on TERROR machines
|
||||
{ObjDir}LateLoad.a.o ƒ {TidbitsDir}LateLoad.a
|
||||
Asm {StdAOpts} -o {Targ} {TidbitsDir}LateLoad.a
|
||||
|
||||
# "Secondary initialization" patches
|
||||
{ObjDir}FinalInitialization.a.o ƒ {PatchDir}FinalInitialization.a
|
||||
Asm {StdAOpts} -o {Targ} {PatchDir}FinalInitialization.a
|
||||
|
||||
|
||||
########################################################################
|
||||
# Misc System file resources
|
||||
########################################################################
|
||||
|
||||
# Deep shit alerts for booting
|
||||
{RsrcDir}BootAlerts.a.rsrc ƒ {TidbitsDir}BootAlerts.a
|
||||
Asm {StdAOpts} -o {ObjDir}BootAlerts.a.o {TidbitsDir}BootAlerts.a
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}BootAlerts.a.o
|
||||
|
||||
# Deep shit alerts (for after booting)
|
||||
{RsrcDir}UserAlerts.a.rsrc ƒ {TidbitsDir}UserAlerts.a
|
||||
Asm {StdAOpts} -o {ObjDir}UserAlerts.a.o {TidbitsDir}UserAlerts.a
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}UserAlerts.a.o
|
||||
|
||||
# Built-in Video Monitors (cdev) Extension for IIci and IIsi
|
||||
{RsrcDir}BuiltInVideoExtension.p.rsrc ƒ {TidbitsDir}BuiltInVideoExtension.p
|
||||
Pascal {StdPOpts} -o {ObjDir}BuiltInVideoExtension.p.o {TidbitsDir}BuiltInVideoExtension.p
|
||||
Link {StdLOpts} {StdAlign} -m ENTRY -rt RSRC=0 -o {Targ} {ObjDir}BuiltInVideoExtension.p.o {LibraryDir}StandardLib.o {IfObjDir}interface.o
|
||||
|
||||
# The standard decompression DefProc
|
||||
{RsrcDir}DeCompressDefProc.a.rsrc ƒ {PatchDir}DeCompressDefProc.a
|
||||
Asm {StdAOpts} -o {ObjDir}DeCompressDefProc.a.o {PatchDir}DeCompressDefProc.a
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}DeCompressDefProc.a.o
|
||||
|
||||
# The standard decompression defproc for byte sized data
|
||||
{RsrcDir}DeCompressDefProc1.a.rsrc ƒ {PatchDir}DeCompressDefProc1.a
|
||||
Asm {StdAOpts} -o {ObjDir}DeCompressDefProc1.a.o {PatchDir}DeCompressDefProc1.a
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}DeCompressDefProc1.a.o
|
||||
|
||||
# Decompress defProc for GreggyBits decompression
|
||||
{RsrcDir}GreggyBitsDefProc.a.rsrc ƒ {PatchDir}GreggyBitsDefProc.a
|
||||
Asm {StdAOpts} -o {ObjDir}GreggyBitsDefProc.a.o {PatchDir}GreggyBitsDefProc.a
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}GreggyBitsDefProc.a.o
|
||||
|
||||
# Code to put up a dialog if we have a parity troubles
|
||||
{RsrcDir}ParityINIT.a.rsrc ƒ {TidbitsDir}ParityINIT.a
|
||||
Asm {StdAOpts} -o {ObjDir}ParityINIT.a.o {TidbitsDir}ParityINIT.a
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}ParityINIT.a.o
|
||||
|
||||
# FKEY that will save the screen as a PICT file
|
||||
{RsrcDir}PictWhap.a.rsrc ƒ {TidbitsDir}PictWhap.a
|
||||
Asm {StdAOpts} -o {ObjDir}PictWhap.a.o {TidbitsDir}PictWhap.a
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}PictWhap.a.o
|
||||
|
||||
# Sound resource which is played when FKEY 3 is executed
|
||||
{RsrcDir}PictWhapSound.rsrc ƒ {TidbitsDir}PictWhapSound.r
|
||||
Rez {StdROpts} -o {Targ} {TidbitsDir}PictWhapSound.r
|
||||
|
||||
# Prevents switch launching from System 6 to System 7
|
||||
{RsrcDir}PreventSwitchLaunch.a.rsrc ƒ {TidbitsDir}PreventSwitchLaunch.a
|
||||
Asm {StdAOpts} -o {ObjDir}PreventSwitchLaunch.a.o {TidbitsDir}PreventSwitchLaunch.a
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}PreventSwitchLaunch.a.o
|
||||
|
||||
# ROM resource override code
|
||||
{RsrcDir}ROvr.a.rsrc ƒ {TidbitsDir}ROvr.a
|
||||
Asm {StdAOpts} -o {ObjDir}ROvr.a.o {TidbitsDir}ROvr.a
|
||||
Link {StdLOpts} {StdAlign} -rt RSRC=0 -o {Targ} {ObjDir}ROvr.a.o
|
||||
|
||||
{RsrcDir}SystemFonts.rsrc ƒ {MiscDir}SystemFonts.r
|
||||
Rez {StdROpts} -o {Targ} {MiscDir}SystemFonts.r
|
@ -1,3 +1,10 @@
|
||||
/*
|
||||
Hacks to match MacOS (most recent first):
|
||||
|
||||
<Sys7.1> 8/3/92 Reverted the <SM4> fix.
|
||||
9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
*/
|
||||
|
||||
/*
|
||||
File: GestaltLookup.c
|
||||
|
||||
@ -247,7 +254,7 @@ findLong(ulong selector, int* index)
|
||||
min = 0;
|
||||
max = GestaltPtr->slotsUsed-1;
|
||||
do {
|
||||
i = min + ((max - min) >> 1); /* get middle of range */
|
||||
i = min + ((max - min) > 1); /* get middle of range ex<SM4> <Sys7.1> */
|
||||
if (tablePtr[i][0] > selector) /* are we too high? (is that possible?) */
|
||||
max = i;
|
||||
else if (tablePtr[i][0] < selector) /* are we too low? */
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Conditionalized the 'bra fcExit' from <SM4> as forROM (all other SM changes are forROM)
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: DiskCache.a
|
||||
;
|
||||
@ -453,7 +460,6 @@ fcFile MOVEA.L FCBSPtr,A1 ; A1 = FCB ptr
|
||||
BNE.S @1 ; br if so (go flush)
|
||||
BTST #noFlushBit,FHFlags(A4) ; avoid intermediate flushes? <08Dec85>
|
||||
BEQ.S @1 ; br if not (go flush) <08Dec85>
|
||||
bra.s fcExit ; exit if so (skip flush) <SM4>
|
||||
|
||||
IF NOT forROM THEN ; We don't need MacPlus ROM check <SM3> rb <SM4>
|
||||
MOVE.L ROMBase,A3 ;<11Dec86> make sure we have the correct ROM
|
||||
@ -463,6 +469,7 @@ fcFile MOVEA.L FCBSPtr,A1 ; A1 = FCB ptr
|
||||
BNE.S fcExit ; exit if not (skip flush) <08Dec85>
|
||||
ELSE ; <SM3> rb
|
||||
; if FlushFlag is 0, then if this file is control file skip flushing
|
||||
bra.s fcExit ; exit if so (skip flush) <SM4> <Sys7.1>
|
||||
ENDIF ; <SM3> rb
|
||||
|
||||
@1 BSR FlushFCache ; flush the A4 cache
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <SM1> by putting back the "ROM" prefixes.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: BTPScan.a
|
||||
;
|
||||
@ -215,7 +222,7 @@ GetMultNodes: proc
|
||||
MOVE.L D2, fcbCrPs(A3) ; put our current pos back into fcb
|
||||
|
||||
@RdTop:
|
||||
jsrRom CACHERDIP ; go do the read
|
||||
jsrRom ROMCACHERDIP ; go do the read ex<SM1><Sys7.1> Put back "ROM"
|
||||
@1: BNE.S @Exit
|
||||
ADD.L D6, D5 ; advance current file position
|
||||
ADD.L D6, ioActCount(A0) ; and tally up bytes read
|
||||
@ -348,7 +355,7 @@ ValidateNode: proc
|
||||
|
||||
MOVE.L A4, D2 ; save PSR around ChkNode
|
||||
MOVEA.L PSR.btcbPtr(A4), A4 ; A4 = ptr(BTCB)
|
||||
jsrRom CHKNODE ; is this node valid?
|
||||
jsrRom ROMCHKNODE ; is this node valid? ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVEA.L D2, A4 ; restore PSR
|
||||
BNE.S @more ; not valid, get another node
|
||||
|
||||
@ -447,7 +454,7 @@ BTGetPhys: proc
|
||||
MOVE.W PSR.curRec(A4), D1 ; D1 = record we want
|
||||
ADDQ.W #1, PSR.curRec(A4) ; advance to next record for next time <8>
|
||||
MOVEA.L PSR.btcbPtr(A4), A4 ; A4 = ptr(BTCB)
|
||||
jsrRom LOCREC
|
||||
jsrRom ROMLOCREC ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
@1: MOVEA.L (A6)+, A4 ; restore PSR ptr
|
||||
@Exit:
|
||||
MOVE.L (A6)+, -(A7) ; restore return address
|
||||
|
@ -1,3 +1,11 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <SM1> by putting back the "ROM" prefixes, and de-inlining
|
||||
; romGtNxt/1stFCB. Reverted <SM2> word branches.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: BTreeFuncs.a
|
||||
;
|
||||
@ -521,8 +529,7 @@ GNMLoop CMP.W D1,D3 ; same FCB?
|
||||
MOVE.L FCBBTCBptr(A1,D1),D0; D0 = ptr(BTCB)? <12Jan92 #39>
|
||||
BNE.S BOpened ; found it <12Jan92 #39>
|
||||
|
||||
GtNxtMatch ADD.W FSFCBLen,D1 ; go to next FCB <03Feb87><SM1>
|
||||
CMP.W (A1),D1 ; reached the end yet? <SM1>
|
||||
GtNxtMatch jsrROM ROMGTNXTFCB ; go to next FCB <03Feb87><SM1><Sys7.1> De-inlined and put back "ROM"
|
||||
BCS.S GNMLoop ; loop thru them all
|
||||
|
||||
;; This is the first time open
|
||||
@ -619,8 +626,7 @@ xBTClose BCLR #btAsyncBit,D1 ; sync only
|
||||
BNE.S @NxtMatch ; <28Mar90>
|
||||
CMP.L FCBVPtr(A1,D1),A3 ; on the same volume? <28Mar90>
|
||||
BEQ.S @BCOpened ; found it <28Mar90>
|
||||
@NxtMatch ADD.W FSFCBLen,D1 ; go to next FCB <SM1>
|
||||
CMP.W (A1),D1 ; reached the end yet? <SM1>
|
||||
@NxtMatch jsrROM ROMGTNXTFCB ; go to next FCB <SM1><Sys7.1> De-inlined and put back "ROM"
|
||||
BCS.S @BCLoop ; loop thru them all <28Mar90>
|
||||
|
||||
IF btDebug THEN ; no match ??!! <28Mar90>
|
||||
@ -871,7 +877,7 @@ xBTGetRec BSR ExtBTQueue
|
||||
CMP.L BTCWcount(A4),D1 ; validate it
|
||||
BEQ.S @GetRec2 ; OK
|
||||
MOVE.L BTCWcount(A4),ioBTHint1(A3) ; return current Wcount
|
||||
BRA GetExit ; invalid marker <SM2> CSS
|
||||
BRA.S GetExit ; invalid marker <SM2> CSS <Sys7.1>
|
||||
@2
|
||||
MOVE.L btcFNode(A4),D2 ; user wants to read the 1st record
|
||||
@GetRec2 MOVE.L D2,btcNodeM(A4) ; get record in this node, (change the node marker)
|
||||
@ -1077,8 +1083,7 @@ xBTCleanUp
|
||||
MOVE cbPBufULen(A2),D4 ; D4=ext. FCB unit size
|
||||
LEA fcbPBufData(A2),A2 ; A2=ext. fcb array
|
||||
MOVE FSFCBLen,D5 ; D5=FCB len
|
||||
MOVE.L FCBSPtr,A1 ; A1=FCB ptr <SM1>
|
||||
MOVEQ #2,D1 ; D1=FCB index <SM1>
|
||||
jsrROM ROMGT1STFCB ; A1=FCB ptrm, D1=FCB index <SM1><Sys7.1> De-inlined and put back "ROM"
|
||||
|
||||
; First close all the open files belong to this process:
|
||||
; A1=FCBptr, A2=Ext. FCBptr, D1.W=RefNum, D2=id2, D3.W=loop index, D4.W=ext FCBlen,
|
||||
|
@ -1,3 +1,10 @@
|
||||
#
|
||||
# Hacks to match MacOS (most recent first):
|
||||
#
|
||||
# <Sys7.1> 8/3/92 Gently reordered BTreeMgrObjects.
|
||||
# 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
#
|
||||
|
||||
#
|
||||
# File: BTreeMgr.make
|
||||
#
|
||||
@ -12,12 +19,12 @@
|
||||
# <SM1> 12/14/92 CSS Checkout to add BTreeGlue.a build which is required by DictionaryMgr.rsrc.
|
||||
|
||||
|
||||
BTreeMgrObjects = "{ObjDir}BTreeAlloc.a.o" ∂
|
||||
"{ObjDir}BTreeFuncs.a.o" ∂
|
||||
BTreeMgrObjects = "{ObjDir}BTreeFuncs.a.o" ∂
|
||||
"{ObjDir}BTreeAlloc.a.o" ∂
|
||||
"{ObjDir}BTreeMaint1.a.o" ∂
|
||||
"{ObjDir}BTreeMaint2.a.o" ∂
|
||||
"{ObjDir}BTreeQueue.a.o" ∂
|
||||
"{ObjDir}BTreeSvcs.a.o"
|
||||
"{ObjDir}BTreeSvcs.a.o" ∂
|
||||
"{ObjDir}BTreeQueue.a.o"
|
||||
|
||||
|
||||
"{LibDir}BTreeMgr.lib" ƒ {BTreeMgrObjects}
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Re-routed the unused function ExtBTUpdate through the trap table.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: BTreeSvcs.a
|
||||
;
|
||||
@ -1234,6 +1241,9 @@ BSExit1
|
||||
;__________________________________________________________________________________
|
||||
|
||||
ExtBTUpdate
|
||||
MOVE.L jBTUpdate,-(SP) ; jumptable entry for vBTUpdate <25Oct85> <Sys7.1>
|
||||
RTS ; go there <25Oct85> <Sys7.1>
|
||||
vExtBTUpdate ; <Sys7.1>
|
||||
|
||||
MOVE.L (SP)+,-(A6) ; save return address on A6 stack
|
||||
MOVEM.L D1/A0-A1/A4,-(A6) ; save regs
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <SM1> by putting back the "ROM" prefixes.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: CatSearch.a
|
||||
;
|
||||
@ -872,7 +879,7 @@ CheckCSPB proc export
|
||||
;__________________________________________________________________________________
|
||||
CMCatSearch: proc export
|
||||
|
||||
jsrRom FSQUEUE ; queue up the request
|
||||
jsrRom ROMFSQUEUE ; queue up the request ex<SM1><Sys7.1> Put back "ROM"
|
||||
SUBA.W #CSSR.size, A6 ; allocate a CSSR on A6 moved here <1.3>
|
||||
CLR.B CSSR.flags(A6) ; clear the flags moved here <1.3>
|
||||
MOVEA.L A6, A3 ; move CSSR ptr to a safe register <12>
|
||||
@ -881,7 +888,7 @@ CMCatSearch: proc export
|
||||
move.l ioSearchTime(a5), d0 ; get max search time (time mgr count) <12>
|
||||
bsr StartTimer ; start a timer, if needed, right away <12>
|
||||
|
||||
jsrRom DTRMV3 ; find vol using ioNamePtr & ioVRefNum (D023/A234 trashed)
|
||||
jsrRom ROMDTRMV3 ; find vol using ioNamePtr & ioVRefNum (D023/A234 trashed) ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVEA.L A6, A3 ; reload pointer to CSSR (doesn’t hurt CCs) <12>
|
||||
BNE @Exit ; (DtrmV3 puts VCBPtr in A2)
|
||||
MOVE.W vcbSigWord(A2), D0 ; Check out the volume signature
|
||||
@ -891,7 +898,7 @@ CMCatSearch: proc export
|
||||
BRA @Exit ; and cruise
|
||||
|
||||
@ItsHFS:
|
||||
jsrRom EXTOFFLINCK ; Is this volume on-line and one of ours? <1.2>
|
||||
jsrRom ROMEXTOFFLINCK ; Is this volume on-line and one of ours? <1.2> ex<SM1><Sys7.1> Put back "ROM"
|
||||
BEQ.S @VolumeIsCool ; Keep going if so <1.2>
|
||||
BRA @Exit ; Go home if not (with extFSErr or volOffLinErr in D0) <1.2>
|
||||
|
||||
@ -1007,7 +1014,7 @@ CMCatSearch: proc export
|
||||
@notBufferOnStack:
|
||||
ADDA.W #CSSR.size, A6 ; deallocate CSSR
|
||||
suba.l a3, a3 ; clear WDCB pointer for external file systems <17>
|
||||
jmpRom CMDDONE
|
||||
jmpRom ROMCMDDONE ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
_CSDebugRts 'CMCatSearch', 0
|
||||
endproc
|
||||
|
@ -1,3 +1,13 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <SM1> by putting back the "ROM" prefixes and removing the
|
||||
; copied-in routines. Reverted the branch changes in <SM2> and <SM3>.
|
||||
; Reverted <SM4> by changing pascalRegs back to interruptRegs (i.e. not
|
||||
; saving a2/a3/d3).
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: DTDBMgr.a
|
||||
;
|
||||
@ -258,213 +268,7 @@ DTKeyDescriptor: proc
|
||||
proc
|
||||
_DTDebugRts 'DTDBQueueManager', 0
|
||||
endproc
|
||||
;________________________________________________________________________________ <SM1>
|
||||
; <36>
|
||||
; Routine: DesktopCloseDownProc
|
||||
;
|
||||
; Inputs param block to _Unmount
|
||||
;
|
||||
; Outputs: (none)
|
||||
;
|
||||
; Function: Close the desktop database on _Unmount calls
|
||||
;
|
||||
;________________________________________________________________________________
|
||||
; Rolled into TFS.a for SuperMario <SM1> FM
|
||||
; Called by UnMountVol in TFSVol.a
|
||||
|
||||
DesktopCloseDownProc Proc Export
|
||||
import FindDTVol
|
||||
@regs reg a0/a1/a3/d0/d1 ; <43>
|
||||
|
||||
movem.l @regs, -(sp)
|
||||
|
||||
movea.l a0,a3 ; save the user's pb <42>
|
||||
|
||||
; d0 - pascal length byte of string <43>
|
||||
; d1 - size of string allocated on stack <43>
|
||||
|
||||
moveq.l #0,d1 ; assume no string on stack <43>
|
||||
move.l ioNamePtr(a3),d0 ; d0 = caller’s name ptr <43>
|
||||
beq.s @noName ; bail on nil <43>
|
||||
movea.l d0,a0 ; get ready to copy <43>
|
||||
moveq.l #0,d0 ; clear high bytes <43>
|
||||
move.b (a0),d0 ; d0 = string length <43>
|
||||
beq.s @noName ; bail on zero length (d0.l has nil) <43>
|
||||
|
||||
move.b d0,d1 ; d1 = copy of string length byte <43>
|
||||
addq.b #2,d1 ; add length byte and rounding fodder <43>
|
||||
bclr.l #0,d1 ; make it even <43>
|
||||
suba.w d1,sp ; allocate a string of the right length <43>
|
||||
movea.l sp,a1 ; point to it <43>
|
||||
|
||||
@1: move.b (a0)+,(a1)+ ; <43>
|
||||
dbra d0,@1 ; copy string length+1 bytes <43>
|
||||
|
||||
move.l sp,d0 ; point to it again <43>
|
||||
|
||||
@noName:
|
||||
suba.w #ioHVQElSize,sp ; get a pb <42>
|
||||
movea.l sp,a0 ; point to it <42>
|
||||
move.w ioVRefNum(a3),ioVRefNum(a0) ; copy caller's vRefNum <42>
|
||||
move.l d0,ioNamePtr(a0) ; our version of the caller's name <42>
|
||||
move.w #-1,ioVolIndex(a0) ; by name&vRef, please <42>
|
||||
_GetVolInfo ; <42>
|
||||
bne.s @done ; <42>
|
||||
|
||||
move.w ioVRefNum(a0), d0 ; grab the volume that's going away
|
||||
bsr FindDTVol ; try to find a DTDBQElt for this volume
|
||||
bne.s @done ; no work to do if the DTDB is closed
|
||||
sub.w #ioDTQElSize, sp ; allocate a DT param block
|
||||
movea.l sp, a0
|
||||
move.w DTDBQElt.DTRefNum(a3), ioRefNum(a0) ; stash the DTRefNum for this volume
|
||||
_DTCloseDown
|
||||
add.w #ioDTQElSize, sp ; deallocate the param block
|
||||
|
||||
@done:
|
||||
adda.w #ioHVQElSize,sp ; deallocate the pb <42>
|
||||
adda.w d1,sp ; deallocate the string <43>
|
||||
movem.l (sp)+, @regs
|
||||
rts
|
||||
endproc
|
||||
;__________________________________________________________________________________
|
||||
;
|
||||
; Allocate the DTDBMgr's globals block
|
||||
;
|
||||
; FSVars has been allocated by btree patches.
|
||||
;__________________________________________________________________________________ <SM1>
|
||||
DTDBMgrInit proc export
|
||||
export QMInit
|
||||
|
||||
move.l #DTGlobals.size, d0 ; we need this much space for DT manager
|
||||
_NewPtr sys, clear
|
||||
bne @fail ; no? Run away.
|
||||
move.l FSVarsPtr, a1 ; a1 = ptr(FSVars block)
|
||||
move.l a0, FSVars.DTDBMgr(a1) ; stuff ourselves into our slot in FSVars
|
||||
rts
|
||||
|
||||
@fail
|
||||
moveq.l #dsMemFullErr, d0 ; sys heap is full, so punt
|
||||
_SysError
|
||||
|
||||
; Allocate the Queue Manager's globals block
|
||||
QMInit
|
||||
|
||||
; Allocate a block big enough of all of the Queue Manager's needs:
|
||||
; Queue manager globals
|
||||
; Desktop manager QMRec
|
||||
; Compatibility layer QMRec
|
||||
; Desktop manager stack
|
||||
; Compatibility layer stack
|
||||
|
||||
move.l #QMGlobals.size+QMRec.size*2+DTStackSize+clStackSize, d0
|
||||
_NewPtr sys, clear
|
||||
bne.s @fail ; fail if we can't get memory
|
||||
|
||||
move.l FSVarsPtr, a1 ; a1 = ptr(FSVars block)
|
||||
move.l a0, FSVars.QMgr(a1) ; leave a pointer to globals in FSVars
|
||||
move.l a0, a1 ; a1 = ptr(FSVars.QMgr)
|
||||
adda.l #QMGlobals.size, a0 ; skip over globals
|
||||
move.l a0, QMGlobals.DTQueuePtr(a1); stuff pointer to DTMgr's QMRec
|
||||
adda.l #QMRec.size, a0 ; skip over DTMgr's QMRec
|
||||
move.l a0, QMGlobals.CLQueuePtr(a1); stuff pointer to Comp Layer's QMRec
|
||||
|
||||
adda.l #QMRec.size+DTStackSize, a0 ; skip over QMRec and Stack
|
||||
move.l QMGlobals.DTQueuePtr(a1), a1 ; a1 = ptr(DTMgr's QMRec)
|
||||
move.l a0, QMRec.stackBase(a1) ; store stack address (stack grows down)
|
||||
move.w #desktopQType, QMRec.qType(a1) ; set queue type/refnum
|
||||
|
||||
adda.l #CLStackSize, a0 ; skip to end of CLStack
|
||||
move.l FSVarsPtr, a1 ; a1 = ptr(FSVars)
|
||||
move.l FSVars.QMgr(a1), a1 ; a1 = ptr(QM globals)
|
||||
move.l QMGlobals.CLQueuePtr(a1), a1 ; a1 = ptr(Comp Layer's QMRec)
|
||||
move.l a0, QMRec.stackBase(a1) ; store stack address (stack grows down)
|
||||
move.w #fsCompatQType, QMRec.qType(a1) ; set queue type/refnum
|
||||
|
||||
rts
|
||||
|
||||
@fail:
|
||||
moveq.l #dsMemFullErr, d0 ; sys heap is full, so punt
|
||||
_SysError
|
||||
endproc
|
||||
|
||||
; <SM1> FM needed for GetVolParms
|
||||
;________________________________________________________________________________ <SM1>
|
||||
;
|
||||
; Routine: CheckDesktopSupport
|
||||
;
|
||||
; Input: a2 - pointer to local volume's vcb
|
||||
; Output: zero flag clear if we support the desktop on this volume
|
||||
; zero flag set if we don't
|
||||
;
|
||||
; Function: Indicate whether a volume can support the desktop manager calls
|
||||
;
|
||||
; Only call this on local hfs volumes
|
||||
;
|
||||
; The rule: A local volume gets desktop support if it is either
|
||||
; 1) non-ejectable
|
||||
; 2) ejectable but bigger than DTMinVolSize
|
||||
;
|
||||
; AlkBlkSiz is stored as a long and used as a word throughout HFS
|
||||
;________________________________________________________________________________
|
||||
CDSRegs reg d0/d1/a1
|
||||
CheckDesktopSupport proc export
|
||||
|
||||
movem.l CDSRegs, -(sp)
|
||||
|
||||
;
|
||||
; Is this an MFS volume?
|
||||
;
|
||||
cmp.w #SigWord,vcbSigWord(a2) ; is this an MFS volume?
|
||||
beq.s @NoSupport ; yes, so use the exciting resource file technique
|
||||
;
|
||||
; Is this volume bigger than DTMinVolSize?
|
||||
;
|
||||
move.w vcbNmBlks(a2), d0 ; d0 = # of allocation blocks on this volume
|
||||
move.w vcbAlBlkSiz+2(a2), d1 ; d1 = allocation block size
|
||||
; AlkBlkSiz is used as a word throughout HFS
|
||||
mulu.w d1, d0 ; d0 = # bytes on this volume
|
||||
cmp.l #DTMinVolSize, d0 ; is this a big volume?
|
||||
bhs.s @SupportsDT ; then we always support the DTDB
|
||||
;
|
||||
; It's not a big volume, but check and see if the volume is ejectable
|
||||
;
|
||||
move.l DrvQHdr+qHead, a1 ; a1 = ptr (1st drive in Drive Queue)
|
||||
|
||||
move.w vcbDrvNum(a2), d0 ; d0 = drive number for this volume (if online)
|
||||
bne.s @SearchDrvQ ; if it's online, we can go straight to the search
|
||||
|
||||
move.w vcbDRefNum(a2), d1 ; d1 = + or - DrvNum (since we know we're not online)
|
||||
cmp.w d0, d1 ; = means volume is ejected
|
||||
beq.s @NoSupport ; which means it gets no DT support
|
||||
move.w d1, d0 ; d0 now = -DrvNum (since we know it's offline)
|
||||
neg.w d0 ; d0 now = DrvNum, so we can search the drive Q
|
||||
;
|
||||
; We now have the drive number in d0, and we know that the drive is not big enough to
|
||||
; automatically get DT support. We need to see if it is ejectable, and if it is a small
|
||||
; non-ejectable volume (say, a ramdisk) we support it.
|
||||
;
|
||||
@SearchDrvQ:
|
||||
cmp.w dQDrive(a1), d0 ; is this the dQ entry we want?
|
||||
beq.s @GotDQ
|
||||
move.l qLink(a1), d1 ; get the next dQ entry (test for zero)
|
||||
movea.l d1, a1 ; move to an A reg where we can use it
|
||||
bne.s @SearchDrvQ ; and keep going if there is one
|
||||
move.w #nsvErr, d0 ; if we have a real vcb, we should find a dQ entry
|
||||
bra.s @NoSupport ; but if we ever don't, let's return 'no support'
|
||||
|
||||
@GotDQ:
|
||||
cmp.b #8, -3(a1) ; drive queue entry flag bytes => 8 (signed) are non-ejectable <19><51>
|
||||
blt.s @NoSupport ; we don't support DT on small ejectable volumes
|
||||
|
||||
@SupportsDT:
|
||||
moveq.l #1, d0 ; clear the zero flag
|
||||
bra.s @CDSExit
|
||||
|
||||
@NoSupport:
|
||||
moveq.l #0, d0 ; set the zero flag
|
||||
@CDSExit: movem.l (sp)+, CDSRegs
|
||||
rts
|
||||
endproc
|
||||
; ex<SM1><Sys7.1> Removed DesktopCloseDownProc, DTDBMgrInit and CheckDesktopSupport
|
||||
;________________________________________________________________________________
|
||||
;
|
||||
; Routine: BottleNeckIO
|
||||
@ -499,9 +303,7 @@ BottleNeckIO proc export
|
||||
move.l a0, FSVars.dtOwnCall(a1); leave a bread crumb for FileShare <17>
|
||||
|
||||
moveq.l #desktopQType, d2 ; our queue type/refnum
|
||||
move.l a4,-(sp) ; save a4 <SM3> CSS
|
||||
bigjsr GetQMRecPtr,a4 ; a1 = ptr(QMRec) <SM3> CSS
|
||||
move.l (sp)+,a4 ; recover a4 <SM3> CSS
|
||||
bsr GetQMRecPtr ; ex<SM3><Sys7.1>
|
||||
move.l a6, QMRec.curStack(a1) ; save current alt stack pointer
|
||||
; •• do high water mark checking here
|
||||
|
||||
@ -530,25 +332,19 @@ BottleNeckIO proc export
|
||||
|
||||
completionRoutine:
|
||||
moveq.l #desktopQType, d2 ; our queue type/refnum
|
||||
MACHINE mc68020
|
||||
move.l a4,-(sp) ; save a4 <SM3> CSS
|
||||
bigjsr GetQMRecPtr,a4 ; a1 = ptr(QMRec) <SM3> CSS
|
||||
move.l (sp)+,a4 ; recover a4 <SM3> CSS
|
||||
bsr GetQMRecPtr ; ex<SM3><Sys7.1>
|
||||
move.l a6, -(sp) ; save a6 for a sec
|
||||
movea.l QMRec.curStack(a1), a6 ; get our a6 back
|
||||
bset.b #0, hasContinued(a6) ; mark that we've been back
|
||||
movea.l (sp)+, a6 ; restore a6
|
||||
beq.s anRTSInstruction ; if we haven't returned from the trap, rts to driver
|
||||
|
||||
movem.l pascalRegs, -(sp) ; save all regs that pascal callers need saved <SM4>pdw
|
||||
pea restorePascalRegs ; and get in the chain to restore them later <SM4>pdw
|
||||
movem.l interruptRegs, -(sp) ; save all regs that pascal callers need saved <SM4>pdw<Sys7.1>
|
||||
pea restoreInterruptRegs ; and get in the chain to restore them later <Sys7.1>
|
||||
|
||||
contDeskThread:
|
||||
moveq.l #desktopQType, d2 ; our queue type/refnum
|
||||
MACHINE mc68020
|
||||
move.l a4,-(sp) ; save a4 <SM3> CSS
|
||||
bigjsr GetQMRecPtr,a4 ; a1 = ptr(QMRec) <SM3> CSS
|
||||
move.l (sp)+,a4 ; recover a4 <SM3> CSS
|
||||
bsr GetQMRecPtr ; ex<SM3><Sys7.1>
|
||||
movea.l QMRec.curStack(a1), a6 ; restore alt stack pointer
|
||||
adda.w #Lsize, a6 ; clear off the locals
|
||||
movem.l (a6)+, BottleNeckRegs ; restore desktop thread registers
|
||||
@ -563,8 +359,8 @@ contAppThread:
|
||||
; continue without saving registers
|
||||
rts ; return async time to application
|
||||
|
||||
restorePascalRegs: ; <SM4>pdw
|
||||
movem.l (sp)+, pascalRegs ; restore the regs that we saved last time through
|
||||
restoreInterruptRegs: ; <SM4>pdw<Sys7.1>
|
||||
movem.l (sp)+, interruptRegs ; restore the regs that we saved last time through <Sys7.1>
|
||||
rts ; back to the app thread
|
||||
|
||||
_DTDebugTail 'Completion',0
|
||||
@ -760,7 +556,7 @@ DTDone: proc
|
||||
;
|
||||
;________________________________________________________________________________
|
||||
DTVolExtFSCheck: proc
|
||||
jsrROM DTRMV3 ; Excuse me, Mr. FS, please find us a volume
|
||||
jsrROM ROMDTRMV3 ; Excuse me, Mr. FS, please find us a volume ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne.s @LocalErr ; early trouble is a sign to leave
|
||||
|
||||
tst.w vcbFSID(a2) ; is this a local volume?
|
||||
@ -775,10 +571,10 @@ DTVolExtFSCheck: proc
|
||||
bne.s @ExternalExit ; if not, just let'em have the call
|
||||
|
||||
@GrabAnFCB:
|
||||
jsrROM GT1STFCB ; get (A1,D1) pointing to first FCB
|
||||
jsrROM ROMGT1STFCB ; get (A1,D1) pointing to first FCB ex<SM1><Sys7.1> Put back "ROM"
|
||||
@1 tst.l FCBFlNm(a1,d1) ; FCB unused?
|
||||
beq.s @GotFCB ; br if so
|
||||
jsrROM GTNXTFCB ; get next one until we run out
|
||||
jsrROM ROMGTNXTFCB ; get next one until we run out ex<SM1><Sys7.1> Put back "ROM"
|
||||
bcs.s @1
|
||||
|
||||
moveq.l #TMFOErr,d0 ; too many files open
|
||||
@ -793,7 +589,7 @@ DTVolExtFSCheck: proc
|
||||
|
||||
@LocalErr:
|
||||
tst.l (sp)+ ; discard the return address to DTMgr caller
|
||||
jmpROM CMDDONE ; leave through the file system
|
||||
jmpROM ROMCMDDONE ; leave through the file system ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
@LocalVolume:
|
||||
move.l FSVarsPtr, a3 ; a3 = ptr(file system global area)
|
||||
@ -840,7 +636,7 @@ DTRfnExtFSCheck: proc
|
||||
|
||||
@LocalErr:
|
||||
tst.l (sp)+ ; discard the return address to DTMgr caller
|
||||
jmpROM CMDDONE ; leave through the file system
|
||||
jmpROM ROMCMDDONE ; leave through the file system ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
@LocalVolume:
|
||||
rts ; this call is for us
|
||||
@ -1313,7 +1109,7 @@ FindDTRegs reg d4/a0/a2/a3
|
||||
move.w d3,ioVRefNum(a0) ; vRef of volume to look at
|
||||
clr.w ioVolIndex(a0) ; no indexing; use VRef only
|
||||
go_HGetVInfo
|
||||
bne Error ; punt on errors <SM2> CSS
|
||||
bne.s Error ; punt on errors <SM2> CSS <Sys7.1>
|
||||
|
||||
move.w bigPB+ioVAtrb(a6), d0 ; get the volume attributes
|
||||
btst.l #15, d0 ; software locked?
|
||||
@ -1800,7 +1596,7 @@ SetFileAttribs: proc
|
||||
; False = were just created
|
||||
;________________________________________________________________________________
|
||||
DTOpenInform: proc export
|
||||
jsrROM FSQUEUESYNC ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUESYNC ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTVolExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue
|
||||
bsr RealOpenDT ; d1 true/false for dtExisted
|
||||
@ -1823,7 +1619,7 @@ DTOpenInform: proc export
|
||||
; open for the specified volume, return its refNum.
|
||||
;________________________________________________________________________________
|
||||
DTGetPath: proc export
|
||||
jsrROM FSQUEUESYNC ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUESYNC ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTVolExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue
|
||||
bsr RealOpenDT
|
||||
@ -1878,7 +1674,7 @@ LSize equ *-bigPB
|
||||
endr
|
||||
|
||||
@DTCloseDownRegs reg a0-a4/d1-d2
|
||||
jsrROM FSQUEUESYNC ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUESYNC ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTRfnExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue
|
||||
|
||||
@ -1924,7 +1720,7 @@ DTAddIcon: proc export
|
||||
StandardLocals AddIconLocals, IconDRec ; normal locals w/icon sized data rec
|
||||
|
||||
@AddIconRegs reg a0-a4/d1-d2 ; set of regs to save around AddIcon
|
||||
jsrROM FSQUEUE ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUE ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTRfnExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue ; Wait our turn.
|
||||
|
||||
@ -2051,7 +1847,7 @@ DTGetIcon: proc export
|
||||
StandardLocals GetIconLocals, IconDRec
|
||||
|
||||
@GetIconRegs reg a0-a4/d1-d2 ; set of regs to save around AddIcon
|
||||
jsrROM FSQUEUE ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUE ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTRfnExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue ; Wait our turn.
|
||||
|
||||
@ -2122,7 +1918,7 @@ DTGetIconInfo: proc export
|
||||
StandardLocals GetIconInfoLocals, IconDRec
|
||||
|
||||
@GetIconInfoRegs reg a0-a4/d1-d2 ; set of regs to save around this call
|
||||
jsrROM FSQUEUE ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUE ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTRfnExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue ; Wait our turn
|
||||
|
||||
@ -2472,7 +2268,7 @@ AddAPPLCallback: proc
|
||||
DTAddAPPL: proc export
|
||||
|
||||
@AddAPPLRegs reg a0-a4/d1-d2 ; set of regs to save around this call
|
||||
jsrROM FSQUEUE ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUE ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTRfnExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue ; Wait our turn
|
||||
|
||||
@ -2696,7 +2492,7 @@ RemoveAPPLCallback: proc
|
||||
DTRemoveAPPL: proc export
|
||||
@RemoveAPPLRegs reg a0-a4/d1-d2
|
||||
|
||||
jsrROM FSQUEUE ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUE ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTRfnExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue ; wait our turn
|
||||
|
||||
@ -2792,7 +2588,7 @@ DTGetAPPL: proc export
|
||||
StandardLocals GetAPPLLocals, APPLRec
|
||||
|
||||
@GetAPPLRegs reg a0-a4/d1-d2 ; set of regs to save around GetAPPL
|
||||
jsrROM FSQUEUE ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUE ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTRfnExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue ; Wait our turn
|
||||
|
||||
@ -2881,7 +2677,7 @@ DTSetComment: proc export
|
||||
StandardLocals SetCommentLocals, CommentRec
|
||||
|
||||
@SetCommentRegs reg a0-a4/d1-d2 ; set of regs to save around SetComment
|
||||
jsrROM FSQUEUE ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUE ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTRfnExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue ; Wait our turn
|
||||
|
||||
@ -2945,7 +2741,7 @@ DTGetComment: proc export
|
||||
StandardLocals GetCommentLocals, CommentRec
|
||||
|
||||
@GetCommentRegs reg a0-a4/d1-d2 ; set of regs to save around GetComment
|
||||
jsrROM FSQUEUE ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUE ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTRfnExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue ; Wait our turn
|
||||
|
||||
@ -3008,7 +2804,7 @@ DTRemoveComment: proc export
|
||||
StandardLocals RemoveCommentLocals, 0 ; we only need a pb and a key here. Zero Data
|
||||
|
||||
@RemoveCommentRegs reg a0-a4/d1-d2 ; set of regs to save around RmvCmt
|
||||
jsrROM FSQUEUE ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUE ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTRfnExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue ; Wait our turn
|
||||
|
||||
@ -3056,7 +2852,7 @@ LSize equ *-bigPB
|
||||
endr
|
||||
|
||||
@DTFlushRegs reg a0/a3-a4
|
||||
jsrROM FSQUEUE ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUE ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTRfnExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue ; wait our turn
|
||||
|
||||
@ -3108,7 +2904,7 @@ LSize equ *-bigPB
|
||||
endr
|
||||
|
||||
@DTResetRegs reg a0-a4/d1-d2
|
||||
jsrROM FSQUEUE ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUE ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTRfnExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue ; wait our turn
|
||||
|
||||
@ -3224,7 +3020,7 @@ LSize equ *-bigPB
|
||||
|
||||
@DTDeleteRegs reg a0-a4/d1-d2
|
||||
|
||||
jsrROM FSQUEUE ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUE ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTVolExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue ; wait our turn
|
||||
|
||||
@ -3299,7 +3095,7 @@ LSize equ *-bigPB
|
||||
endr
|
||||
|
||||
@DTGetInfoRegs reg a0-a4/d1-d2
|
||||
jsrROM FSQUEUE ; just to check for external file systems
|
||||
jsrROM ROMFSQUEUE ; just to check for external file systems ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr DTRfnExtFSCheck ; find the right volume and hope it's ours
|
||||
bsr DeskMgrQueue ; wait our turn
|
||||
|
||||
|
@ -1,3 +1,11 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <SM3> by changing pascalRegs back to interruptRegs (i.e. not
|
||||
; saving a2/a3/d3).
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: ExternalMakeFSSpec.a
|
||||
;
|
||||
@ -115,8 +123,8 @@ myCompletionRoutine:
|
||||
movea.l (sp)+, a6 ; restore a6
|
||||
beq.s anRTSInstruction ; if we haven't returned from the trap, rts to driver
|
||||
|
||||
movem.l pascalRegs, -(sp) ; save all regs that pascal callers need saved <LW2>pdw
|
||||
pea restorePascalRegs ; and get in the chain to restore them later <LW2>pdw
|
||||
movem.l interruptRegs, -(sp) ; save all regs that pascal callers need saved <LW2>pdw <Sys7.1>
|
||||
pea restoreInterruptRegs ; and get in the chain to restore them later <LW2>pdw <Sys7.1>
|
||||
|
||||
myContCompatThread:
|
||||
move.w #fsCompatQType, d2 ; our queue type/refnum
|
||||
@ -136,8 +144,8 @@ myContAppThread:
|
||||
; continue without saving registers
|
||||
rts ; return async time to application
|
||||
|
||||
restorePascalRegs: ; <LW2>pdw
|
||||
movem.l (sp)+, pascalRegs ; restore the regs that we saved last time through
|
||||
restoreInterruptRegs: ; <LW2>pdw <Sys7.1>
|
||||
movem.l (sp)+, interruptRegs ; restore the regs that we saved last time through <Sys7.1>
|
||||
rts ; back to the app thread
|
||||
endproc
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <SM1> by putting back the "ROM" prefixes.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: FileIDs.a
|
||||
;
|
||||
@ -115,30 +122,30 @@ FileIDs PROC EXPORT
|
||||
;_______________________________________________________________________
|
||||
|
||||
CreateFileIDRef:
|
||||
jsrROM FSQUEUE ; first wait our turn
|
||||
jsrROM ROMFSQUEUE ; first wait our turn ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
jsrROM FNDFILNAME ; parse pathname(IN: A0=prmblk OUT: D0=err D2.L=namLen D6=dirID
|
||||
jsrROM ROMFNDFILNAME ; parse pathname(IN: A0=prmblk OUT: D0=err D2.L=namLen D6=dirID ex<SM1><Sys7.1> Put back "ROM"
|
||||
; D7=cathint A1=volBuffer A2=vcb A3=WDCB A4=cname A5=fileDirEntry)
|
||||
BNE.S @Exit
|
||||
|
||||
jsrROM EXTOFFLINCK ; is the volume online and used by us (not ExtFS)? (IN: A2=vcb OUT: D0=err)
|
||||
jsrROM ROMEXTOFFLINCK ; is the volume online and used by us (not ExtFS)? (IN: A2=vcb OUT: D0=err) ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @Exit
|
||||
|
||||
jsrROM TFSVCBTST ; it better be an HFS volume (IN: A2=vcb)
|
||||
jsrROM ROMTFSVCBTST ; it better be an HFS volume (IN: A2=vcb) ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @NotHFSErr
|
||||
|
||||
MOVEA.L A0, A3 ; sure paramblock ptr for later
|
||||
jsrROM PUSHCNAME ; Put name on A6 stack (IN: A4=name D2.W=len OUT: A0=name D2=len)
|
||||
jsrROM ROMPUSHCNAME ; Put name on A6 stack (IN: A4=name D2.W=len OUT: A0=name D2=len) ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVE.W D2,-(A6) ; Save rounded source name length
|
||||
|
||||
jsrROM CVFLGS ; is the volume writable? (IN: A2=vcb OUT: D0=err)
|
||||
jsrROM ROMCVFLGS ; is the volume writable? (IN: A2=vcb OUT: D0=err) ex<SM1><Sys7.1> Put back "ROM"
|
||||
BEQ.S @DoCreate
|
||||
|
||||
MOVE.W D0, D7 ; save the error
|
||||
MOVE.L D6, D0 ; dirID or parent dirID
|
||||
JSR FIDGetID ; get the ID (IN: A0=cname D0=dirID A2=vcb OUT: D0=err D1=fthd)
|
||||
MOVE.W (A6)+,D2 ; Recover rounded source length
|
||||
jsrROM POPCNAME ; Remove dest. name string (IN: A6=string D2=rndLen OUT: D2=len)
|
||||
jsrROM ROMPOPCNAME ; Remove dest. name string (IN: A6=string D2=rndLen OUT: D2=len) ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVE.L D1, ioFileID(A3) ; set the fileID back in the paramblock ptr
|
||||
TST.W D0
|
||||
BEQ.S @existsErr ; the fileID exists on the locked volume
|
||||
@ -150,7 +157,7 @@ CreateFileIDRef:
|
||||
@DoCreate MOVE.L D6, D0 ; dirID or parent dirID
|
||||
JSR FIDCreateID ; and do it (IN: A0=cname D0=dirID A2=vcb OUT: D0=err D1=fthd)
|
||||
MOVE.W (A6)+,D2 ; Recover rounded source length
|
||||
jsrROM POPCNAME ; Remove dest. name string (IN: A6=string D2=rndLen OUT: D2=len)
|
||||
jsrROM ROMPOPCNAME ; Remove dest. name string (IN: A6=string D2=rndLen OUT: D2=len) ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVE.L D1, ioFileID(A3) ; set the fileID back in the paramblock ptr
|
||||
TST.W D0
|
||||
BEQ.S @Exit ; no errors, get out
|
||||
@ -169,7 +176,7 @@ CreateFileIDRef:
|
||||
BRA.S @Exit
|
||||
@NotHFSErr MOVEQ #wrgVolTypErr, D0
|
||||
|
||||
@Exit jmpROM CMDDONE ; will also put the D0 result in ioResult(A0)
|
||||
@Exit jmpROM ROMCMDDONE ; will also put the D0 result in ioResult(A0) ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
|
||||
;_______________________________________________________________________
|
||||
@ -188,17 +195,17 @@ CreateFileIDRef:
|
||||
|
||||
DeleteFileIDRef:
|
||||
|
||||
jsrROM FSQUEUE ; first wait our turn
|
||||
jsrROM ROMFSQUEUE ; first wait our turn ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
jsrROM DTRMV3 ; get the vcb by vrefnum or name(IN: A0=prmblk OUT:A2=vcb D0=err)
|
||||
jsrROM ROMDTRMV3 ; get the vcb by vrefnum or name(IN: A0=prmblk OUT:A2=vcb D0=err) ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @Exit ; D2=nameLen? D3=volName? A3=WDCB A4=pathName)
|
||||
|
||||
jsrROM CVFLGS ; is the volume writable? (IN: A2=vcb OUT: D0=err)
|
||||
jsrROM ROMCVFLGS ; is the volume writable? (IN: A2=vcb OUT: D0=err) ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @Exit
|
||||
jsrROM EXTOFFLINCK ; is the volume online and used by us (notExtFS)? (IN: A2=vcb OUT: D0=err)
|
||||
jsrROM ROMEXTOFFLINCK ; is the volume online and used by us (notExtFS)? (IN: A2=vcb OUT: D0=err) ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @Exit
|
||||
|
||||
jsrROM TFSVCBTST ; it better be an HFS volume (IN: A2=vcb)
|
||||
jsrROM ROMTFSVCBTST ; it better be an HFS volume (IN: A2=vcb) ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @NotHFSErr
|
||||
|
||||
MOVE.L ioFileID(A0), D0 ; file id
|
||||
@ -219,7 +226,7 @@ DeleteFileIDRef:
|
||||
BRA.S @Exit
|
||||
@NotHFSErr MOVEQ #wrgVolTypErr, D0
|
||||
|
||||
@Exit jmpROM CMDDONE ; will also put the D0 result in ioResult(A0)
|
||||
@Exit jmpROM ROMCMDDONE ; will also put the D0 result in ioResult(A0) ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
;_______________________________________________________________________
|
||||
;
|
||||
@ -237,14 +244,14 @@ DeleteFileIDRef:
|
||||
|
||||
ResolveFileIDRef:
|
||||
|
||||
jsrROM FSQUEUE ; first wait our turn
|
||||
jsrROM ROMFSQUEUE ; first wait our turn ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
jsrROM DTRMV3 ; get the vcb by vrefnum or name (IN: A0=prmblk OUT:A2=vcb D0=err)
|
||||
jsrROM ROMDTRMV3 ; get the vcb by vrefnum or name (IN: A0=prmblk OUT:A2=vcb D0=err) ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @Exit1 ; <SM2> CSS D2=nameLen? D3=volName? A3=WDCB A4=pathName?)
|
||||
jsrROM EXTOFFLINCK ; is the volume online and used by us (notExtFS)? (IN: A2=vcb OUT: D0=err)
|
||||
jsrROM ROMEXTOFFLINCK ; is the volume online and used by us (notExtFS)? (IN: A2=vcb OUT: D0=err) ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @Exit1 ; <SM2> CSS
|
||||
|
||||
jsrROM TFSVCBTST ; it better be an HFS volume (IN: A2=vcb)
|
||||
jsrROM ROMTFSVCBTST ; it better be an HFS volume (IN: A2=vcb) ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @NotHFSErr
|
||||
|
||||
MOVEA.L A0, A3 ; save paramblock ptr for later
|
||||
@ -265,7 +272,7 @@ ResolveFileIDRef:
|
||||
BRA @Exit1
|
||||
|
||||
@Exit MOVE.L D1, ioSrcDirID(A3) ; put it back in paramblock
|
||||
@Exit1 jmpROM CMDDONE ; will also put the D0 result in ioResult(A0)
|
||||
@Exit1 jmpROM ROMCMDDONE ; will also put the D0 result in ioResult(A0) ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
;_______________________________________________________________________
|
||||
;
|
||||
@ -289,9 +296,9 @@ PBHExchangeFiles:
|
||||
; A2 = vcb, A3 = destName, A4 = cmvars/scratch, A5 = srcName
|
||||
; D2 = srcCatHint, D3 = destCatHint, D4 = destFileNum, D5 = srcFileNum, D6 = destDirID, D7 = srcDirID
|
||||
|
||||
jsrROM FSQUEUE ; first wait our turn
|
||||
jsrROM ROMFSQUEUE ; first wait our turn ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
jsrROM FNDFILNAME ; parse pathname(IN: A0=prmblk OUT: D0=err D2.L=namLen D6=dirID
|
||||
jsrROM ROMFNDFILNAME ; parse pathname(IN: A0=prmblk OUT: D0=err D2.L=namLen D6=dirID ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE @Exit ; D7=cathint A1=volBuffer A2=vcb A3=WDCB A4=cname A5=fileDirEntry)
|
||||
MOVE.L D6, D1 ; save src dirID for later
|
||||
MOVE.L D2, D5 ; save the rounded source name length for later
|
||||
@ -302,7 +309,7 @@ PBHExchangeFiles:
|
||||
move.l ioSrcDirID(a0), -(a6) ; save caller's ioSrcDirID value <bb/dnf 8>
|
||||
MOVE.L ioDestNamePtr(A0), ioFileName(A0)
|
||||
MOVE.L ioDestDirID(A0), ioSrcDirID(A0)
|
||||
jsrROM FNDFILNAME ; parse pathname(IN: A0=prmblk OUT: D0=err D2.L=namLen D6=dirID
|
||||
jsrROM ROMFNDFILNAME ; parse pathname(IN: A0=prmblk OUT: D0=err D2.L=namLen D6=dirID ex<SM1><Sys7.1> Put back "ROM"
|
||||
; D7=cathint A1=volBuffer A2=vcb A3=WDCB A4=cname A5=fileDirEntry)
|
||||
move.l (a6)+, ioSrcDirID(a0) ; restore caller's ioSrcDirID value <bb/dnf 8>
|
||||
move.l (a6)+, ioFileName(a0) ; restore caller's ioFileName value <dd/dnf 8>
|
||||
@ -314,22 +321,22 @@ PBHExchangeFiles:
|
||||
CMP.L A2, A3 ; better be the same volumes if specified by pathnames
|
||||
BNE @difVolErr
|
||||
|
||||
jsrROM CVFLGS ; is the volume writable? (IN: A2=vcb OUT: D0=err)
|
||||
jsrROM ROMCVFLGS ; is the volume writable? (IN: A2=vcb OUT: D0=err) ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE @PopAndErr ; no ->
|
||||
jsrROM EXTOFFLINCK ; is the volume online and used by us (notExtFS)? (IN: A2=vcb OUT: D0=err)
|
||||
jsrROM ROMEXTOFFLINCK ; is the volume online and used by us (notExtFS)? (IN: A2=vcb OUT: D0=err) ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE @PopAndErr
|
||||
jsrROM TFSVCBTST ; and it better be an HFS volume (IN: A2=vcb)
|
||||
jsrROM ROMTFSVCBTST ; and it better be an HFS volume (IN: A2=vcb) ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE @NotHFSErr
|
||||
|
||||
; set up the names properly
|
||||
|
||||
MOVE.L (A6)+, A5 ; get the src name off the A6 stack before it changes
|
||||
jsrROM PUSHCNAME ; Put dest name on A6 stack (IN: A4=name D2.W=len OUT: A0=name D2=len)
|
||||
jsrROM ROMPUSHCNAME ; Put dest name on A6 stack (IN: A4=name D2.W=len OUT: A0=name D2=len) ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVE.L A0, A3 ; save the dest name
|
||||
MOVE.L A5, A4 ; get the src name
|
||||
MOVE.L D2,-(A6) ; Save dest rounded name length
|
||||
MOVE.L D5, D2 ; get the src name length
|
||||
jsrROM PUSHCNAME ; Put src name on A6 stack (IN: A4=name D2.W=len OUT: A0=name D2=len)
|
||||
jsrROM ROMPUSHCNAME ; Put src name on A6 stack (IN: A4=name D2.W=len OUT: A0=name D2=len) ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVE.L D2,-(A6) ; Save rounded name length
|
||||
|
||||
; grab the File ID numbers to use later for fcb searching on open files
|
||||
@ -340,7 +347,7 @@ PBHExchangeFiles:
|
||||
MOVEA.L A0, A5 ; keep the src name
|
||||
MOVE.L D7, D0 ; set the src dir ID
|
||||
MOVEQ #0, D2 ; no cat hint
|
||||
jsrROM LOCCREC ; search the catalog (IN: A2=vcb A4=cmvars A0=name D0=dirID D2=catHInt
|
||||
jsrROM ROMLOCCREC ; search the catalog (IN: A2=vcb A4=cmvars A0=name D0=dirID D2=catHInt ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE @ExchErr ; OUT: D0=err D1=size D2=catHint A0=ckr A1=cdr)
|
||||
MOVE.L D2, D4 ; save the src cat hint
|
||||
MOVE.L filFlNum(A1), D5 ; save src file ID
|
||||
@ -348,7 +355,7 @@ PBHExchangeFiles:
|
||||
MOVEA.L A3, A0 ; set the dest name
|
||||
MOVE.L D6, D0 ; set the dest dir ID
|
||||
MOVEQ #0, D2 ; no cat hint
|
||||
jsrROM LOCCREC ; search the catalog (IN: A2=vcb A4=cmvars A0=name D0=dirID D2=catHInt
|
||||
jsrROM ROMLOCCREC ; search the catalog (IN: A2=vcb A4=cmvars A0=name D0=dirID D2=catHInt ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE @ExchErr ; OUT: D0=err D1=size D2=catHint A0=ckr A1=cdr)
|
||||
MOVE.L D2, D3 ; save the dest cat hint
|
||||
|
||||
@ -370,7 +377,7 @@ PBHExchangeFiles:
|
||||
|
||||
; FINE TUNING: Flag if either file is open. THEN after FidExchangeFiles, if none, skip fcb walking.
|
||||
|
||||
jsrROM GT1STFCB ; get the first fcb (uses A1, D1)
|
||||
jsrROM ROMGT1STFCB ; get the first fcb (uses A1, D1) ex<SM1><Sys7.1> Put back "ROM"
|
||||
@loop CMP.L fcbVPtr(A1, D1), A2 ; better be correct volume
|
||||
BNE.S @nxtFCB
|
||||
CMP.L fcbFlNm(A1, D1), D5
|
||||
@ -390,10 +397,10 @@ PBHExchangeFiles:
|
||||
; update the file number in the buffer header after the exchange
|
||||
MOVE.L VCBBufAdr(A2), A1
|
||||
ST CacheFlag ; really flush
|
||||
jsrROM FLUSHCACHE ; release the buffers to free buffer pool
|
||||
jsrROM ROMFLUSHCACHE ; release the buffers to free buffer pool ex<SM1><Sys7.1> Put back "ROM"
|
||||
movem.L (a6)+, a1/d1 ; restore refnum and FCBSPtr after flush <dnf 5>
|
||||
|
||||
@nxtFCB jsrROM GTNXTFCB
|
||||
@nxtFCB jsrROM ROMGTNXTFCB ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
BCS.S @loop ; loop thru them all
|
||||
|
||||
; we are almost ready to roll...FINALLY!...
|
||||
@ -419,7 +426,7 @@ PBHExchangeFiles:
|
||||
|
||||
; exchange fcb info (file number, file name, and file parID only!)
|
||||
|
||||
jsrROM GT1STFCB ; get the first fcb (uses A1, D1)
|
||||
jsrROM ROMGT1STFCB ; get the first fcb (uses A1, D1) ex<SM1><Sys7.1> Put back "ROM"
|
||||
@loop1 CMP.L fcbVPtr(A1, D1), A2 ; better be correct volume
|
||||
BNE.S @nxtFCB1
|
||||
CMP.L fcbFlNm(A1, D1), D5
|
||||
@ -455,7 +462,7 @@ PBHExchangeFiles:
|
||||
MOVEA.L A4, A1 ; Restore A1
|
||||
|
||||
|
||||
@nxtFCB1 jsrROM GTNXTFCB
|
||||
@nxtFCB1 jsrROM ROMGTNXTFCB ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
BCS.S @loop1 ; loop thru them all
|
||||
|
||||
BRA.S @PopAndExit
|
||||
@ -480,11 +487,11 @@ PBHExchangeFiles:
|
||||
|
||||
@PopAndExit ADD #lenCMVars, A6 ; get the temp storage back needed by LocCRec
|
||||
MOVE.L (A6)+,D2 ; Recover rounded length
|
||||
jsrROM POPCNAME ; Remove src name string (IN: A6=string D2=rndLen OUT: D2=len)
|
||||
jsrROM ROMPOPCNAME ; Remove src name string (IN: A6=string D2=rndLen OUT: D2=len) ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVE.L (A6)+,D2 ; Recover rounded length
|
||||
jsrROM POPCNAME ; Remove dest name string (IN: A6=string D2=rndLen OUT: D2=len)
|
||||
jsrROM ROMPOPCNAME ; Remove dest name string (IN: A6=string D2=rndLen OUT: D2=len) ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
@Exit jmpROM CMDDONE ; will also put the D0 result in ioResult(A0)
|
||||
@Exit jmpROM ROMCMDDONE ; will also put the D0 result in ioResult(A0) ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <SM1> by putting back the "ROM" prefixes.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: FileIDsSvcs.a
|
||||
;
|
||||
@ -141,14 +148,14 @@ FIDCreateID:
|
||||
MOVEM.L FIDCrRegs, -(A6) ; save registers
|
||||
MOVE.L D0,D6 ; save the par ID
|
||||
MOVEA.L A0,A3 ; save the cname ptr
|
||||
jsrROM CMSETUP ; set up key storage pointed to by A4
|
||||
jsrROM ROMCMSETUP ; set up key storage pointed to by A4 ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVEQ #0,D5 ; clear fileID, in case we return early due to errors
|
||||
CLR.L VCBDirIDM(A2) ; invalidate current DirID marker
|
||||
;
|
||||
; locate the file record
|
||||
;
|
||||
MOVEQ #0,D2 ; no catalog hint
|
||||
jsrROM LOCCREC
|
||||
jsrROM ROMLOCCREC ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE @CrExit ; it's not there, just exit with what's in D0
|
||||
CMPI.B #cdrFilRec, cdrType(A1); better be a file (type=2)
|
||||
BNE.S @CrNotAFileErr
|
||||
@ -161,7 +168,7 @@ FIDCreateID:
|
||||
MOVE.L D0,D5 ; keep fileID for later
|
||||
SUBA.L A0,A0 ; use NULL for fthread key name
|
||||
LEA ckrOff(A4), A1 ; use this storage for the fthread key
|
||||
jsrROM BUILDKEY ; fill in the key
|
||||
jsrROM ROMBUILDKEY ; fill in the key ex<SM1><Sys7.1> Put back "ROM"
|
||||
;
|
||||
; and do the data of the file thread
|
||||
;
|
||||
@ -176,7 +183,7 @@ FIDCreateID:
|
||||
|
||||
MOVEA.L A3, A0 ; the cname ptr
|
||||
LEA thdCName(A1), A1
|
||||
jsrROM UPDCNAME
|
||||
jsrROM ROMUPDCNAME ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
;
|
||||
; Insert the file thread in the catalog btree
|
||||
;
|
||||
@ -184,7 +191,7 @@ FIDCreateID:
|
||||
MOVE.W #lenthd, D1
|
||||
LEA cdrOff(A4), A1
|
||||
LEA ckrOff(A4), A0
|
||||
jsrROM BTINSERT
|
||||
jsrROM ROMBTINSERT ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @CrBTErr ; could be disk full, so stop
|
||||
;
|
||||
; finally, turn on thread flag in file CNode. Too bad, gotta find it again
|
||||
@ -192,16 +199,16 @@ FIDCreateID:
|
||||
MOVE.L D4, D2 ; use saved cat hint
|
||||
MOVE.L D6, D0 ; dirID or parent dirID
|
||||
MOVEA.L A3, A0 ; CName pointer
|
||||
jsrROM LOCCREC ; we know it's there
|
||||
jsrROM ROMLOCCREC ; we know it's there ex<SM1><Sys7.1> Put back "ROM"
|
||||
BSET #fThreadFlag,FilFlags(A1); set the flag
|
||||
|
||||
MOVE.W VCBCtRef(A2),D0 ; refnum of catalog file
|
||||
jsrROM BTUPDATE
|
||||
jsrROM ROMBTUPDATE ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @CRExit ; if there was an error, catalog could be shot!
|
||||
;
|
||||
; get it out to disk
|
||||
;
|
||||
jsrROm CMFLUSH ; flush the catalog
|
||||
jsrROm ROMCMFLUSH ; flush the catalog ex<SM1><Sys7.1> Put back "ROM"
|
||||
BRA.S @CrExit
|
||||
;
|
||||
; handle errors
|
||||
@ -217,7 +224,7 @@ FIDCreateID:
|
||||
MOVE.L D5,D0 ; file number <11Jan91 #10>
|
||||
SUBA.L A0,A0 ; no Cname <11Jan91 #10>
|
||||
MOVEQ #0,D2 ; no hint <11Jan91 #10>
|
||||
jsrROM LOCCREC ; locate thread record <11Jan91 #10>
|
||||
jsrROM ROMLOCCREC ; locate thread record <11Jan91 #10> ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @7 ; bad time for error <11Jan91 #10>
|
||||
|
||||
CMP.B #cdrfThdRec,cdrType(A1) ; file thread type? <11Jan91 #10>
|
||||
@ -247,9 +254,9 @@ FIDCreateID:
|
||||
@5 TST.W D3 ; have we changed the file? <11Jan91 #10>
|
||||
BNE.S @7 ; no <11Jan91 #10>
|
||||
@6 MOVE.W VCBCtRef(A2),D0 ; refnum of catalog file (input = D0/D2) <11Jan91 #10>
|
||||
jsrROM BTUPDATE ; mark the node (D2) dirty <11Jan91 #10>
|
||||
jsrROM ROMBTUPDATE ; mark the node (D2) dirty <11Jan91 #10> ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @CrExit ; bad time for error <11Jan91 #10>
|
||||
jsrROm CMFLUSH ; flush the catalog (input = A2) <11Jan91 #10>
|
||||
jsrROm ROMCMFLUSH ; flush the catalog (input = A2) <11Jan91 #10> ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @CrExit ; bad time for error <11Jan91 #10>
|
||||
|
||||
@7 MOVE.W #CMExists,D0 ; Translate error "CMExists = cnode already there"
|
||||
@ -270,7 +277,7 @@ FIDCreateID:
|
||||
; A3 = user's file name
|
||||
; Output: BEQ if 2 names are the same
|
||||
LEA thdCName(A1), A1
|
||||
jsrROM UPDCNAME
|
||||
jsrROM ROMUPDCNAME ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
|
||||
;_________________________________________________________________________________
|
||||
@ -299,7 +306,7 @@ FIDDeleteID:
|
||||
;
|
||||
MOVE.L (SP)+,-(A6) ; save return address on A6 stack
|
||||
MOVEM.L FIDDelRegs,-(A6) ; save registers
|
||||
jsrROM CMSETUP ; set up key storage pointed to by A4
|
||||
jsrROM ROMCMSETUP ; set up key storage pointed to by A4 ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVE.L D0, D5 ; save fileID
|
||||
MOVEQ #0, D7 ; save error in here, if CNode for file is missing
|
||||
CLR.L VCBDirIDM(A2) ; invalidate current DirID marker
|
||||
@ -308,7 +315,7 @@ FIDDeleteID:
|
||||
;
|
||||
MOVEQ #0, D2 ; no catalog hint
|
||||
SUBA.L A0, A0 ; use NULL for fthread key.
|
||||
jsrROM LOCCREC
|
||||
jsrROM ROMLOCCREC ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @DlNoThdErr ; it's not there
|
||||
CMPI.B #cdrFThdRec, cdrType(A1); better be a file
|
||||
BNE.S @DlNotAFileErr
|
||||
@ -318,7 +325,7 @@ FIDDeleteID:
|
||||
MOVEQ #0, D2 ; no catalog hint
|
||||
MOVE.L thdParID(A1), D0 ; get file's dir id from fthread data
|
||||
LEA thdCName(A1), A0 ; and it's name
|
||||
jsrROM LOCCREC
|
||||
jsrROM ROMLOCCREC ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
BEQ.S @DlUnsetFlg
|
||||
MOVE.W D0, D7 ; need to return the error later
|
||||
BNE.S @DlDelThd ; whoops, it's not there...well, delete the thread
|
||||
@ -329,7 +336,7 @@ FIDDeleteID:
|
||||
;
|
||||
@DlUnsetFlg BCLR #fThreadFlag,FilFlags(A1)
|
||||
MOVE.W VCBCtRef(A2), D0 ; refnum of catalog file
|
||||
jsrROM BTUPDATE ; tell the btree
|
||||
jsrROM ROMBTUPDATE ; tell the btree ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @DlExit ; if there's an error, the catalog could be shot!
|
||||
;
|
||||
; Delete the file thread in the catalog btree
|
||||
@ -337,17 +344,17 @@ FIDDeleteID:
|
||||
@DlDelThd MOVE.L D5, D0 ; file id
|
||||
SUBA.L A0,A0 ; use NULL for fthread key
|
||||
LEA ckrOff(A4), A1 ; use this storage for fthread key
|
||||
jsrROM BUILDKEY ; fill in the key
|
||||
jsrROM ROMBUILDKEY ; fill in the key ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
LEA ckrOff(A4), A0 ; get the storage again
|
||||
MOVE.W VCBCtRef(A2), D0 ; refnum of catalog file
|
||||
jsrROM BTDELETE ; delete file thread
|
||||
jsrROM ROMBTDELETE ; delete file thread ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @DlExit ; we know it exists, so must be IOError...
|
||||
; ...Oh well, leave the cnode's fthread flag off.
|
||||
;
|
||||
; get it out to disk.
|
||||
;
|
||||
jsrROM CMFLUSH ; flush the catalog
|
||||
jsrROM ROMCMFLUSH ; flush the catalog ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVE.W D7, D0 ; should be clear, unless file CNode was missing
|
||||
BRA.S @DlExit
|
||||
;
|
||||
@ -397,14 +404,14 @@ FIDGetID:
|
||||
;
|
||||
MOVE.L (SP)+,-(A6) ; save return address on A6 stack
|
||||
MOVEM.L FIDGtRegs, -(A6) ; save registers
|
||||
jsrROM CMSETUP ; set up key storage pointed to by A4
|
||||
jsrROM ROMCMSETUP ; set up key storage pointed to by A4 ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVEQ #0, D5 ; clear fileID, in case we return early due to errors
|
||||
CLR.L VCBDirIDM(A2) ; invalidate current DirID marker
|
||||
;
|
||||
; locate the file record
|
||||
;
|
||||
MOVEQ #0, D2 ; no catalog hint
|
||||
jsrROM LOCCREC
|
||||
jsrROM ROMLOCCREC ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE @GtExit ; it's not there, just exit with what's in D0
|
||||
CMPI.B #cdrFilRec, cdrType(A1); better be a file
|
||||
BNE.S @GtNotAFileErr
|
||||
@ -462,7 +469,7 @@ FIDResolveID:
|
||||
MOVE.L (SP)+,-(A6) ; save return address on A6 stack
|
||||
MOVEM.L FIDResRegs,-(A6) ; save registers
|
||||
MOVE.L D0,D3 ; save fileID
|
||||
jsrROM CMSETUP ; set up key record and data storage
|
||||
jsrROM ROMCMSETUP ; set up key record and data storage ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVEA.L A0, A3 ; save cName ptr
|
||||
CLR.L VCBDirIDM(A2) ; invalidate current DirID marker
|
||||
;
|
||||
@ -470,7 +477,7 @@ FIDResolveID:
|
||||
;
|
||||
;; MOVEQ #0, D2 ; no catalog hint <23Aug90>
|
||||
SUBA.L A0, A0 ; use NULL for file name.
|
||||
jsrROM LOCCREC
|
||||
jsrROM ROMLOCCREC ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @RsExit ; it's not there, pass error on up
|
||||
CMPI.B #cdrFThdRec, cdrType(A1); better be a file
|
||||
BNE.S @RsNotAFileErr
|
||||
@ -480,7 +487,7 @@ FIDResolveID:
|
||||
LEA thdCName(A1), A0 ; and it's name
|
||||
MOVEM.L D0/D2/A0,-(A6) ; save dirID/hint/name <23Aug90>
|
||||
MOVEQ #0, D2 ; no catalog hint <23Aug90>
|
||||
jsrROM LOCCREC ; does the file exist? <23Aug90>
|
||||
jsrROM ROMLOCCREC ; does the file exist? <23Aug90> ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVEM.L (A6)+,D1/D2/A0 ; restore dirID/hint/name <23Aug90>
|
||||
BNE.S @dangling ; it's not there <23Aug90>
|
||||
|
||||
@ -489,7 +496,7 @@ FIDResolveID:
|
||||
BNE.S @dangling ; it's not <21Sep90>
|
||||
|
||||
MOVEA.L A3, A1 ; the cname ptr
|
||||
jsrROM UPDCNAME
|
||||
jsrROM ROMUPDCNAME ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVEQ #0, D0 ; to be safe
|
||||
;
|
||||
; cleanup and exit
|
||||
@ -577,7 +584,7 @@ FIDExchangeFiles:
|
||||
; locate the source file, test for extents in extent file, and copy the cat record for later
|
||||
;
|
||||
CLR.W extFlgsOff(A4) ; assume no extents in extents file
|
||||
jsrROM LOCCREC ; A0, D0, D2 already set up from input
|
||||
jsrROM ROMLOCCREC ; A0, D0, D2 already set up from input ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE @ExExit ; either CNode not there or io error
|
||||
CMPI.B #cdrFilRec, cdrType(A1); better be a file
|
||||
BNE @ExNotAFileErr
|
||||
@ -608,7 +615,7 @@ FIDExchangeFiles:
|
||||
MOVE.L D7, D2 ; catalog hint
|
||||
MOVE.L destDIDOff(A4), D0 ; it's dir id
|
||||
MOVEA.L A3, A0 ; it's name
|
||||
jsrROM LOCCREC ; keep the cat hint in D2 for the BTUpdate later
|
||||
jsrROM ROMLOCCREC ; keep the cat hint in D2 for the BTUpdate later ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE @ExExit ; either CNode not there or io error (callee knows it's there!)
|
||||
CMPI.B #cdrFilRec, cdrType(A1); better be a file
|
||||
BNE @ExNotAFileErr
|
||||
@ -689,14 +696,14 @@ FIDExchangeFiles:
|
||||
@ExGetOut MOVE.L D6, D2 ; catalog hint
|
||||
MOVEA.L A5,A0 ; it's name
|
||||
MOVE.L srcDIDOff(A4), D0 ; it's dir id
|
||||
jsrROM LOCCREC
|
||||
jsrROM ROMLOCCREC ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE @ExBusted
|
||||
|
||||
LEA destCNode(A4), A0 ; from saved dest (A0) to memory src (A1)
|
||||
BSR CopyCNodeInfo
|
||||
|
||||
MOVE.W VCBCtRef(A2), D0
|
||||
jsrROM BTUPDATE ; tell the btree
|
||||
jsrROM ROMBTUPDATE ; tell the btree ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE @ExExit ; if there's an error, the catalog could be shot!
|
||||
|
||||
;
|
||||
@ -705,14 +712,14 @@ FIDExchangeFiles:
|
||||
MOVE.L D7, D2 ; catalog hint
|
||||
MOVEA.L A3, A0 ; it's name
|
||||
MOVE.L destDIDOff(A4), D0 ; it's dir id
|
||||
jsrROM LOCCREC ; keep cat hint in D2 for the BTUpdate later
|
||||
jsrROM ROMLOCCREC ; keep cat hint in D2 for the BTUpdate later ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE @ExBusted
|
||||
|
||||
LEA srcCNode(A4), A0 ; from saved src (A0) to memory dest (A1)
|
||||
BSR CopyCNodeInfo
|
||||
|
||||
MOVE.W VCBCtRef(A2), D0
|
||||
jsrROM BTUPDATE ; tell the btree
|
||||
jsrROM ROMBTUPDATE ; tell the btree ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE @ExExit ; if there's an error, the catalog could be shot!
|
||||
BRA.S @ExFinishUp
|
||||
|
||||
@ -757,8 +764,8 @@ FIDExchangeFiles:
|
||||
; STEP 5: ALL DONE....ALMOST...
|
||||
;
|
||||
@ExFinishErr
|
||||
jsrROM CMFLUSH ; flush the catalog
|
||||
jsrROM XFFLUSH ; flush the extent file (unneeded for common case, but it's cheap)
|
||||
jsrROM ROMCMFLUSH ; flush the catalog ex<SM1><Sys7.1> Put back "ROM"
|
||||
jsrROM ROMXFFLUSH ; flush the extent file (unneeded for common case, but it's cheap)
|
||||
MOVE.W #dskFulErr, D0 ; well, report the original error even if the flushes croaked.
|
||||
BRA.S @ExExit
|
||||
@ExNotAFileErr
|
||||
@ -771,8 +778,8 @@ FIDExchangeFiles:
|
||||
;
|
||||
@ExFinishUp
|
||||
MOVEQ #0, D0 ; no errors....yet...
|
||||
jsrROM CMFLUSH ; flush the catalog
|
||||
jsrROM XFFLUSH ; flush the extent file (unneeded for common case, but it's cheap)
|
||||
jsrROM ROMCMFLUSH ; flush the catalog ex<SM1><Sys7.1> Put back "ROM"
|
||||
jsrROM ROMXFFLUSH ; flush the extent file (unneeded for common case, but it's cheap)
|
||||
@ExExit ADD #lenFIDSwapVars,A6 ; de-allocate memory for CM vars
|
||||
MOVEM.L (A6)+, FIDExchRegs ; restore regs
|
||||
|
||||
@ -932,18 +939,18 @@ DeleteExts:
|
||||
@DXNxtDelete
|
||||
MOVEQ #0, D2 ; no hint (after BTDelete) <09Aug90>
|
||||
MOVE.W VCBXTRef(A2), D0 ; extents file refnum
|
||||
jsrROM BTSEARCH ; search BTree for extent record
|
||||
jsrROM ROMBTSEARCH ; search BTree for extent record ex<SM1><Sys7.1> Put back "ROM"
|
||||
CMP.W #BTNotFound, D0
|
||||
BNE.S @DXExit ; has to be an ioerror!
|
||||
MOVEQ #0, D1 ; get what it's pointing at
|
||||
MOVE.W VCBXTRef(A2), D0 ; extents file refnum
|
||||
jsrROM BTGETRECORD ; this is the first record we want for this file
|
||||
jsrROM ROMBTGETRECORD ; this is the first record we want for this file ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @DXBtErr
|
||||
CMP.L xkrFNum(A0), D6
|
||||
BNE.S @DXExit ; Yippie!!! We're done!
|
||||
|
||||
MOVE.W VCBXTRef(A2), D0 ; extent file's refnum
|
||||
jsrROM BTDELETE ; and delete from btree (AO has key)
|
||||
jsrROM ROMBTDELETE ; and delete from btree (AO has key) ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @DXExit
|
||||
|
||||
LEA tempKeyOff(A4), A0 ; look again
|
||||
@ -1010,7 +1017,7 @@ extSize EQU lenxkr+lenxdr
|
||||
|
||||
@MvNextBatch MOVE.W VCBXTRef(A2), D0 ; extents file refnum
|
||||
MOVEQ #0, D2 ; no hint
|
||||
jsrROM BTSEARCH ; search BTree for extent record.
|
||||
jsrROM ROMBTSEARCH ; search BTree for extent record. ex<SM1><Sys7.1> Put back "ROM"
|
||||
CMP.W #BtNotFound, D0 ; it won't exist the first time thru the loop
|
||||
BEQ.S @MvGoOn
|
||||
TST.W D0
|
||||
@ -1022,7 +1029,7 @@ extSize EQU lenxkr+lenxdr
|
||||
LEA extOff(A4), A3 ; extent ptr
|
||||
|
||||
@MvNextRec MOVE.W VCBXTRef(A2), D0 ; extents file refnum
|
||||
jsrROM BTGETRECORD ; this is the first record we want for this file
|
||||
jsrROM ROMBTGETRECORD ; this is the first record we want for this file ex<SM1><Sys7.1> Put back "ROM"
|
||||
CMP.W #BtNotFound, D0 ; if xkrFNum(A0) is cleared on this error, then this test is bogus!
|
||||
BEQ.S @MvNoMoreExts
|
||||
TST.W D0
|
||||
@ -1050,7 +1057,7 @@ extSize EQU lenxkr+lenxdr
|
||||
MOVEQ #lenxdr, D1 ; data length
|
||||
@2 MOVE.L D7, xkrFNum(A0) ; change only the id in the key to dest ID
|
||||
MOVE.W VCBXTRef(A2), D0 ; extent file's refnum
|
||||
jsrROM BTINSERT ; insert in btree
|
||||
jsrROM ROMBTINSERT ; insert in btree ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @MvBTInsertErr
|
||||
ADDA.W #extSize, A0
|
||||
ADDA.W #extSize, A1
|
||||
|
@ -1,3 +1,11 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <SM1> by putting back the "ROM" prefixes. Reverted <SM2> by
|
||||
; saving ConsultCatalog registers on the normal stack.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: MakeFSSpec.a
|
||||
;
|
||||
@ -9,11 +17,6 @@
|
||||
;
|
||||
; Change History (most recent first):
|
||||
;
|
||||
; <SM2> 11/7/93 pdw ConsultCatalog was assuming totally synchronous behavior (i.e.
|
||||
; it was using the A7 stack instead of A6). Changed register
|
||||
; saving and return address handling to use HFS stack.
|
||||
; <SM1> 4/15/92 kc Removed the "ROM" prefix from the RomBind routines.
|
||||
; • Pre-SuperMario comments follow •
|
||||
; <12> 1/6/91 dnf (fjs) Add code to check for terminating ::'s on pathname
|
||||
; parsing.
|
||||
; <11> 9/22/90 dnf Add ExtOffLinCheck
|
||||
@ -106,8 +109,7 @@ CopyCName: proc
|
||||
ConsultCatalog: proc
|
||||
ConsultCatalogRegs reg d2/a0/a1/a4
|
||||
|
||||
move.l (SP)+,-(A6) ; save return address on A6 stack <SM2> pdw
|
||||
movem.l ConsultCatalogRegs,-(A6) ; <SM2> pdw
|
||||
movem.l ConsultCatalogRegs,-(sp) ; ex<SM2> pdw <Sys7.1>
|
||||
lea.l FSSpec.name(a3), a0 ; a0 = ptr(CName)
|
||||
tst.b (a0) ; zero length name?
|
||||
bne.s @NotZeroLength
|
||||
@ -116,7 +118,7 @@ ConsultCatalogRegs reg d2/a0/a1/a4
|
||||
@NotZeroLength:
|
||||
move.l FSSpec.parID(a3), d0 ; move parID to input reg for GetCN
|
||||
move.l d7, d2 ; move catalog hint to input reg for CMGetCN
|
||||
jsrROM CMGETCN ; go consult with the expert
|
||||
jsrROM ROMCMGETCN ; go consult with the expert ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne.s @Exit ; errors are good cause to leave
|
||||
|
||||
move.l ckrParID(a0), FSSpec.parID(a3) ; set parID for directory name case
|
||||
@ -128,9 +130,8 @@ ConsultCatalogRegs reg d2/a0/a1/a4
|
||||
|
||||
@Exit:
|
||||
move.l d2, d7 ; restore catalog hint
|
||||
movem.l (A6)+, ConsultCatalogRegs ; <SM2> pdw
|
||||
move.l (A6)+,-(SP) ; Restore the return address <SM2> pdw
|
||||
tst.w d0 ; set condition codes
|
||||
movem.l (sp)+, ConsultCatalogRegs ; ex<SM2> pdw <Sys7.1>
|
||||
rts
|
||||
endproc
|
||||
|
||||
@ -193,20 +194,20 @@ ConsultCatalogRegs reg d2/a0/a1/a4
|
||||
;_______________________________________________________________________
|
||||
MakeFSSpec: proc export
|
||||
|
||||
jsrROM FSQUEUE
|
||||
jsrROM ROMFSQUEUE ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
jsrROM DTRMV3 ; get at least the volume
|
||||
jsrROM ROMDTRMV3 ; get at least the volume ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne @Exit
|
||||
|
||||
moveq.l #wrgVolTypErr, d0 ; assume the worst
|
||||
jsrROM TFSVCBTST ; split HFS/MFS volumes
|
||||
jsrROM ROMTFSVCBTST ; split HFS/MFS volumes ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne @Exit ; go handle MFS in the compatibility layer
|
||||
|
||||
moveq.l #0, d6 ; no input dirID
|
||||
move.l d6, d7 ; no catalog hint
|
||||
|
||||
bset.b #SkipPMSP,HFSFlags ; Don't bother with PMSP for this operation
|
||||
jsrROM FNDFILNAME ; parse things up
|
||||
jsrROM ROMFNDFILNAME ; parse things up ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
; After FndFilName, registers are:
|
||||
; a2 - vcb ptr
|
||||
@ -322,7 +323,7 @@ MakeFSSpec: proc export
|
||||
clr.l (a1)+ ; clear the volume & high word of directory
|
||||
clr.l (a1)+ ; clear the directory & length byte of string
|
||||
@1:
|
||||
jmpROM CMDDONE
|
||||
jmpROM ROMCMDDONE ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
endproc
|
||||
end
|
||||
|
@ -1,3 +1,12 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <SM1> by putting back the "ROM" prefixes. Rolled in the 6/22/92
|
||||
; <R58> change that was made to the TFSRFN2.a version of ClosePatch:
|
||||
; namely, disabled the patch with a short branch.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: FileMgrPatches.a
|
||||
;
|
||||
@ -274,48 +283,48 @@ BuildHFS70Init default 0
|
||||
|
||||
romAfterExtFSHook ROMBind (Plus,$029f2), (SE,$04434), (II,$07edc), (IIci,$0f0e0), (Portable, $096e0)
|
||||
romBTFlush ROMBind (Plus,$068c2), (SE,$08398), (II,$0be5c), (IIci,$13242), (Portable, $0d802)
|
||||
BUILDKEY ROMBind (Plus,$065d8), (SE,$080a0), (II,$0BB64), (IIci,$12f40), (Portable, $0d50a)
|
||||
BTDELETE ROMBind (Plus,$0671c), (SE,$081e6), (II,$0bcaa), (IIci,$13090), (Portable, $0d650)
|
||||
BTGETRECORD ROMBind (Plus,$06928), (SE,$083fc), (II,$0bec0), (IIci,$132A6), (Portable, $0d866)
|
||||
BTINSERT ROMBind (Plus,$069ea), (SE,$084b4), (II,$0bf78), (IIci,$1335E), (Portable, $0d91e)
|
||||
BTSEARCH ROMBind (Plus,$06d4a), (SE,$0880c), (II,$0c2d0), (IIci,$136B6), (Portable, $0dc76)
|
||||
BTUPDATE ROMBind (Plus,$06dd6), (SE,$08896), (II,$0c35a), (IIci,$13740), (Portable, $0dd00)
|
||||
CACHERDIP ROMBind (Plus,$07b2a), (SE,$0967e), (II,$0d13e), (IIci,$1459C), (Portable, $0eb44)
|
||||
ROMBUILDKEY ROMBind (Plus,$065d8), (SE,$080a0), (II,$0BB64), (IIci,$12f40), (Portable, $0d50a) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMBTDELETE ROMBind (Plus,$0671c), (SE,$081e6), (II,$0bcaa), (IIci,$13090), (Portable, $0d650) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMBTGETRECORD ROMBind (Plus,$06928), (SE,$083fc), (II,$0bec0), (IIci,$132A6), (Portable, $0d866) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMBTINSERT ROMBind (Plus,$069ea), (SE,$084b4), (II,$0bf78), (IIci,$1335E), (Portable, $0d91e) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMBTSEARCH ROMBind (Plus,$06d4a), (SE,$0880c), (II,$0c2d0), (IIci,$136B6), (Portable, $0dc76) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMBTUPDATE ROMBind (Plus,$06dd6), (SE,$08896), (II,$0c35a), (IIci,$13740), (Portable, $0dd00) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMCACHERDIP ROMBind (Plus,$07b2a), (SE,$0967e), (II,$0d13e), (IIci,$1459C), (Portable, $0eb44) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
romChgMFlLock ROMBind (Plus,$046de), (SE,$06812), (II,$0a2e8), (IIci,$11694), (Portable, $0bc7c)
|
||||
CHKNODE ROMBind (Plus,$072c2), (SE,$08e22), (II,$0c8e6), (IIci,$13D42), (Portable, $0e2ec)
|
||||
ROMCHKNODE ROMBind (Plus,$072c2), (SE,$08e22), (II,$0c8e6), (IIci,$13D42), (Portable, $0e2ec) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
romCkExtFS ROMBind (Plus,$03638), (SE,$050be), (II,$08b80), (IIci,$0fefa), (Portable, $0a4e2)
|
||||
romCkFilMod ROMBind (Plus,$0497a), (SE,$06420), (II,$09eec), (IIci,$11298), (Portable, $0b880)
|
||||
CMDDONE ROMBind (Plus,$0295e), (SE,$043a0), (II,$07e48), (IIci,$0f04c), (Portable, $0964c)
|
||||
CMFLUSH ROMBind (Plus,$06606), (SE,$080ce), (II,$0BB92), (IIci,$12f6e), (Portable, $0d538)
|
||||
CMGETCN ROMBind (Plus,$06238), (SE,$07d04), (II,$0b7c8), (IIci,$12ba2), (Portable, $0d16e)
|
||||
CMSETUP ROMBind (Plus,$065a0), (SE,$08068), (II,$0bb2c), (IIci,$12f06), (Portable, $0d4d2)
|
||||
ROMCMDDONE ROMBind (Plus,$0295e), (SE,$043a0), (II,$07e48), (IIci,$0f04c), (Portable, $0964c) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMCMFLUSH ROMBind (Plus,$06606), (SE,$080ce), (II,$0BB92), (IIci,$12f6e), (Portable, $0d538) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMCMGETCN ROMBind (Plus,$06238), (SE,$07d04), (II,$0b7c8), (IIci,$12ba2), (Portable, $0d16e) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMCMSETUP ROMBind (Plus,$065a0), (SE,$08068), (II,$0bb2c), (IIci,$12f06), (Portable, $0d4d2) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
romCMUpdateCN ROMBind (Plus,$0656c), (SE,$08036), (II,$0bafa), (IIci,$12ed4), (Portable, $0d4a0)
|
||||
CVFLGS ROMBind (Plus,$03a76), (SE,$05502), (II,$08FCA), (IIci,$10344), (Portable, $0a92c)
|
||||
ROMCVFLGS ROMBind (Plus,$03a76), (SE,$05502), (II,$08FCA), (IIci,$10344), (Portable, $0a92c) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
romDtrmV1 ROMBind (Plus,$03650), (SE,$050e2), (II,$08ba4), (IIci,$0ff1e), (Portable, $0a50c)
|
||||
DTRMV3 ROMBind (Plus,$03642), (SE,$050ce), (II,$08b90), (IIci,$0ff0a), (Portable, $0a4f8)
|
||||
EXTOFFLINCK ROMBind (Plus,$04aba), (SE,$06560), (II,$0A02C), (IIci,$113d8), (Portable, $0b9c0)
|
||||
ROMDTRMV3 ROMBind (Plus,$03642), (SE,$050ce), (II,$08b90), (IIci,$0ff0a), (Portable, $0a4f8) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMEXTOFFLINCK ROMBind (Plus,$04aba), (SE,$06560), (II,$0A02C), (IIci,$113d8), (Portable, $0b9c0) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
romFindDrive ROMBind (Plus,$03414), (SE,$04e9A), (II,$08956), (IIci,$0FC6C), (Portable, $0A258)
|
||||
FNDFILNAME ROMBind (Plus,$04990), (SE,$06436), (II,$09f02), (IIci,$112ae), (Portable, $0b896)
|
||||
ROMFNDFILNAME ROMBind (Plus,$04990), (SE,$06436), (II,$09f02), (IIci,$112ae), (Portable, $0b896) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
romFSAsync ROMBind (Plus,$02912), (SE,$04354), (II,$07dfc), (IIci,$0f000), (Portable, $09600)
|
||||
FSQUEUESYNC ROMBind (Plus,$028a6), (SE,$042e8), (II,$07d90), (IIci,$0ef94), (Portable, $09594)
|
||||
FSQUEUE ROMBind (Plus,$028aa), (SE,$042ec), (II,$07d94), (IIci,$0ef98), (Portable, $09598)
|
||||
ROMFSQUEUESYNC ROMBind (Plus,$028a6), (SE,$042e8), (II,$07d90), (IIci,$0ef94), (Portable, $09594) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMFSQUEUE ROMBind (Plus,$028aa), (SE,$042ec), (II,$07d94), (IIci,$0ef98), (Portable, $09598) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
romGt1stMatch ROMBind (Plus,$04002), (SE,$05a9c), (II,$0955c), (IIci,$108d6), (Portable, $0aebe)
|
||||
romLocCNode ROMBind (Plus,$06678), (SE,$0813e), (II,$0BC02), (IIci,$12FDE), (Portable, $0d5a8)
|
||||
LOCCREC ROMBind (Plus,$06698), (SE,$0815e), (II,$0bc22), (IIci,$12FFE), (Portable, $0d5c8)
|
||||
LOCREC ROMBind (Plus,$07538), (SE,$0908c), (II,$0cb50), (IIci,$13FAC), (Portable, $0e556)
|
||||
ROMLOCCREC ROMBind (Plus,$06698), (SE,$0815e), (II,$0bc22), (IIci,$12FFE), (Portable, $0d5c8) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMLOCREC ROMBind (Plus,$07538), (SE,$0908c), (II,$0cb50), (IIci,$13FAC), (Portable, $0e556) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
romMarkVCB ROMBind (Plus,$02d1e), (SE,$04766), (II,$0820e), (IIci,$0F524), (Portable, $09b10)
|
||||
romMarkVCBTime ROMBind (Plus,$02d20), (SE,$04768), (II,$08210), (IIci,$0F526), (Portable, $09b12)
|
||||
POPCNAME ROMBind (Plus,$04288), (SE,$05d28), (II,$097EA), (IIci,$10b96), (Portable, $0b17e)
|
||||
PUSHCNAME ROMBind (Plus,$04258), (SE,$05cf8), (II,$097BA), (IIci,$10b66), (Portable, $0b14e)
|
||||
ROMPOPCNAME ROMBind (Plus,$04288), (SE,$05d28), (II,$097EA), (IIci,$10b96), (Portable, $0b17e) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMPUSHCNAME ROMBind (Plus,$04258), (SE,$05cf8), (II,$097BA), (IIci,$10b66), (Portable, $0b14e) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
romRfnCall ROMBind (Plus,$05352), (SE,$06e04), (II,$0a8c8), (IIci,$11C86), (Portable, $0c26e)
|
||||
TFSVCBTST ROMBind (Plus,$04ec6), (SE,$06968), (II,$0a43e), (IIci,$117ea), (Portable, $0bdd2)
|
||||
UPDCNAME ROMBind (Plus,$066c2), (SE,$0818c), (II,$0BC50), (IIci,$1302C), (Portable, $0d5f6)
|
||||
ROMTFSVCBTST ROMBind (Plus,$04ec6), (SE,$06968), (II,$0a43e), (IIci,$117ea), (Portable, $0bdd2) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMUPDCNAME ROMBind (Plus,$066c2), (SE,$0818c), (II,$0BC50), (IIci,$1302C), (Portable, $0d5f6) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
romUpdRtCnts ROMBind (Plus,$065be), (SE,$08086), (II,$0BB4A), (IIci,$12f24), (Portable, $0d4f0)
|
||||
romUpdVCnts ROMBind (Plus,$065ae), (SE,$08076), (II,$0BB3A), (IIci,$12f14), (Portable, $0d4e0)
|
||||
XFFLUSH ROMBind (Plus,$05ed0), (SE,$0799a), (II,$0B45E), (IIci,$1282a), (Portable, $0ce04)
|
||||
GT1STFCB ROMBind (Plus,$03ff2), (SE,$05a8c), (II,$0954c), (IIci,$108c6), (Portable, $0aeae)
|
||||
GTNXTFCB ROMBind (Plus,$03ffa), (SE,$05a94), (II,$09554), (IIci,$108ce), (Portable, $0aeb6)
|
||||
FLUSHCACHE ROMBind (Plus,$076c6), (SE,$0921a), (II,$0ccdc), (IIci,$1413a), (Portable, $0e6e2)
|
||||
ROMXFFLUSH ROMBind (Plus,$05ed0), (SE,$0799a), (II,$0B45E), (IIci,$1282a), (Portable, $0ce04) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMGT1STFCB ROMBind (Plus,$03ff2), (SE,$05a8c), (II,$0954c), (IIci,$108c6), (Portable, $0aeae) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMGTNXTFCB ROMBind (Plus,$03ffa), (SE,$05a94), (II,$09554), (IIci,$108ce), (Portable, $0aeb6) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
ROMFLUSHCACHE ROMBind (Plus,$076c6), (SE,$0921a), (II,$0ccdc), (IIci,$1413a), (Portable, $0e6e2) ;ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
; The following addresses are needed for ROM B*Tree writecount patch: <2.3 kst>
|
||||
romBuildIRec ROMBind (Plus,$072a0), (SE,$08E00), (II,$0C8C4), (IIci,$13D20), (Portable,$0E2CA)
|
||||
@ -581,8 +590,8 @@ A60DispTbl: proc
|
||||
;________________________________________________________________________________
|
||||
; This routine was rolled into into the file TFS.a. <SM1>
|
||||
VolumeCall: proc
|
||||
jsrROM FSQUEUE ; Patiently wait our turn
|
||||
jsrROM DTRMV3 ; Determine the volume being referred to
|
||||
jsrROM ROMFSQUEUE ; Patiently wait our turn ex<SM1><Sys7.1> Put back "ROM"
|
||||
jsrROM ROMDTRMV3 ; Determine the volume being referred to ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne ToCmdDone ; Punt at the slightest hint of trouble
|
||||
|
||||
move.l a2,ReqstVol ; Point to the volume being referred to
|
||||
@ -602,7 +611,7 @@ VolumeCall: proc
|
||||
entry RefNumCall
|
||||
RefNumCall:
|
||||
import RefNumCheck
|
||||
jsrROM FSQUEUE ; chill in line
|
||||
jsrROM ROMFSQUEUE ; chill in line ex<SM1><Sys7.1> Put back "ROM"
|
||||
move.w ioRefNum(a0),d0 ; Pick up the refNum
|
||||
jsr RefNumCheck ; Check the refNum supplied
|
||||
bne ToCmdDone ; Punt at first hint of trouble
|
||||
@ -629,7 +638,7 @@ RefNumCall:
|
||||
; This routine was rolled into into the file TFS.a. <SM1>
|
||||
entry UnknownCall
|
||||
UnknownCall:
|
||||
jsrROM FSQUEUE ; Wait our turn
|
||||
jsrROM ROMFSQUEUE ; Wait our turn ex<SM1><Sys7.1> Put back "ROM"
|
||||
; <REALLY Fudge ReqsVol here later...>
|
||||
movea.l VCBQHdr+qHead, a2 ; Pick up pointer to first VCB
|
||||
move.l a2, ReqstVol ; Point someplace semi-innocuous
|
||||
@ -649,8 +658,8 @@ UnknownCall:
|
||||
entry OpenCall
|
||||
OpenCall:
|
||||
import OpenAttemptHook
|
||||
jsrROM FSQUEUE ; Wait our turn
|
||||
jsrROM DTRMV3 ; Determine the volume being referred to
|
||||
jsrROM ROMFSQUEUE ; Wait our turn ex<SM1><Sys7.1> Put back "ROM"
|
||||
jsrROM ROMDTRMV3 ; Determine the volume being referred to ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne.s ToCmdDone ; Punt at the slightest hint of trouble
|
||||
|
||||
move.l a2,ReqstVol ; Point to the volume being referred to
|
||||
@ -658,10 +667,10 @@ OpenCall:
|
||||
beq.s ParamErrExit ; It's an unknown trap for a local volume
|
||||
|
||||
bsr OpenAttemptHook ; let ourselves know we're trying <38>
|
||||
jsrROM GT1STFCB ; get (A1,D1) pointing to first FCB
|
||||
jsrROM ROMGT1STFCB ; get (A1,D1) pointing to first FCB ex<SM1><Sys7.1> Put back "ROM"
|
||||
@1 tst.l FCBFlNm(a1,d1) ; FCB unused
|
||||
beq.s @90 ; br if so
|
||||
jsrROM GTNXTFCB ; get next one until we run out
|
||||
jsrROM ROMGTNXTFCB ; get next one until we run out ex<SM1><Sys7.1> Put back "ROM"
|
||||
bcs.s @1
|
||||
|
||||
moveq.l #TMFOErr,d0 ; too many files open
|
||||
@ -678,7 +687,7 @@ ParamErrExit:
|
||||
moveq.l #paramErr, d0 ; It's an unknown trap for a local volume
|
||||
|
||||
ToCmdDone:
|
||||
jmpROM CMDDONE ; And call it a day.
|
||||
jmpROM ROMCMDDONE ; And call it a day. ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
endproc
|
||||
|
||||
@ -771,17 +780,17 @@ OpenDF: proc
|
||||
SetFilLock: proc export
|
||||
export RstFilLock
|
||||
|
||||
JSRRom FSQUEUE ; wait our turn
|
||||
JSRRom ROMFSQUEUE ; wait our turn ex<SM1><Sys7.1> Put back "ROM"
|
||||
ST FLckUnlck ; want to lock it
|
||||
BRA.S SRFLck
|
||||
|
||||
RstFilLock:
|
||||
jsrROM FSQUEUE
|
||||
jsrROM ROMFSQUEUE ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
CLR.B FLckUnlck
|
||||
|
||||
SRFLck jsrROM romCkFilMod ; look for file and see if we can mod it
|
||||
; (doesn't return on errors)
|
||||
JSRROM TFSVCBTST ; Are we dealing with a TFS volume? <01Oct85>
|
||||
JSRROM ROMTFSVCBTST ; Are we dealing with a TFS volume? <01Oct85> ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNEROM romChgMFlLock ; Nope - do it the old fashioned way
|
||||
MOVEQ #FNFErr,D0 ; Expect the worst
|
||||
CMP.B #cdrFilRec,cdrType(A5) ; Is this a file entry?
|
||||
@ -804,7 +813,7 @@ SRFLXit1 MOVE.L D7,D2 ; Get a hold of the catalog hint
|
||||
BRA.S SRFLXit3 ; If EQ, we're all set.
|
||||
|
||||
SRFLXit2 MOVEQ #0,D0
|
||||
SRFLXit3 jmpROM CMDDONE
|
||||
SRFLXit3 jmpROM ROMCMDDONE ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
endproc
|
||||
|
||||
@ -823,7 +832,7 @@ GetParallelFCBFromRefnum proc export
|
||||
import ParallelFCBFromRefnum
|
||||
import RefNumCheck
|
||||
|
||||
jsrROM FSQUEUE ; wait our turn
|
||||
jsrROM ROMFSQUEUE ; wait our turn ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
move.w ioRefNum(a0),d0 ; Get the file reference number
|
||||
move.w d0,d1 ; Keep a copy in another register
|
||||
@ -835,7 +844,7 @@ GetParallelFCBFromRefnum proc export
|
||||
move.l a1,ioFDirIndex(a0) ; Return the pointer in ioMisc
|
||||
moveq #noErr,d0 ; No error
|
||||
@exitGetParallelFCB
|
||||
jmpROM CMDDONE ; outa here
|
||||
jmpROM ROMCMDDONE ; outa here ex<SM1><Sys7.1> Put back "ROM"
|
||||
endproc
|
||||
|
||||
;________________________________________________________________________________
|
||||
@ -907,6 +916,15 @@ ClosePatch PatchProc _Close
|
||||
movem.l @ClosePatchRegs,-(sp) ; save regs we use
|
||||
movea.l sp,a2 ; for safe, quick stack pointer restore
|
||||
|
||||
; <Sys7.1>:
|
||||
; *** NOTE: THIS PATCH IS DISABLED *** ; <R58>
|
||||
; This patch was broken in System 7, and fixed with change <53>. The fix ; <R58>
|
||||
; causes some third-party applications (QuicKeys, Retrospect Remote) to stop ; <R58>
|
||||
; working because they are unable to close files. For Cube-E, we’ll re-break this ; <R58>
|
||||
; patch and revisit the entire issue later. ; <R58>
|
||||
; <R58>
|
||||
bra.s @DoClosePop ; <58> Disable this patch ; <R58>
|
||||
|
||||
; check the refnum for validity. and locate the parallel FCB array element
|
||||
move.w ioRefNum(a0),d0 ; get refnum being closed
|
||||
bsr RefNumCheck ; is it legit?
|
||||
@ -1063,7 +1081,7 @@ AccumulateDiskSwitchRectIntoUpdateRect comefrompatchproc _SetPort, DSExit
|
||||
; Here we fix case 1 - rename of a volume. Fixed at the head of Rename:
|
||||
; This patch was rolled into TFSDIR2.a <SM1>
|
||||
FixVolumeRenames PatchProc _Rename
|
||||
jsrROM FSQUEUE ; what a queue command!
|
||||
jsrROM ROMFSQUEUE ; what a queue command! ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
move.l ioNewName(a0),d2 ; check out the new name
|
||||
jsrROM DtrmV2 ; find what volume the new name is on
|
||||
@ -1079,7 +1097,7 @@ FixVolumeRenames PatchProc _Rename
|
||||
|
||||
RNmVol:
|
||||
cmp.w #nsvErr,d0 ; make sure it's no-such-vol error
|
||||
bneROM CMDDONE
|
||||
bneROM ROMCMDDONE ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
tst.w d2 ; name length should be zero
|
||||
bne.s BadNewNam
|
||||
RNmVol1:
|
||||
@ -1088,25 +1106,25 @@ RNmVol1:
|
||||
jmpROM RNmVol1 ; go let'em do it like they used to
|
||||
|
||||
tst.w d3 ; Volume name must have been specified
|
||||
beqROM CMDDONE
|
||||
jsrROM DTRMV3 ; Check source volume
|
||||
bneROM CMDDONE ; Punt if no such thing
|
||||
jsrROM CVFLGS ; Can it be modified?
|
||||
bneROM CMDDONE ; Nope - punt now.
|
||||
jsrROM TFSVCBTST ; Is it a TFS volume?
|
||||
beqROM ROMCMDDONE ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
jsrROM ROMDTRMV3 ; Check source volume ex<SM1><Sys7.1> Put back "ROM"
|
||||
bneROM ROMCMDDONE ; Punt if no such thing ex<SM1><Sys7.1> Put back "ROM"
|
||||
jsrROM ROMCVFLGS ; Can it be modified? ex<SM1><Sys7.1> Put back "ROM"
|
||||
bneROM ROMCMDDONE ; Nope - punt now. ex<SM1><Sys7.1> Put back "ROM"
|
||||
jsrROM ROMTFSVCBTST ; Is it a TFS volume? ex<SM1><Sys7.1> Put back "ROM"
|
||||
beq.s @checkExtFS ; Yes - make sure it's not ext. FS
|
||||
tst.w vcbDrvNum(a2) ; Volume on-line?
|
||||
beqROM CMDDONE ; No - just forget it
|
||||
beqROM ROMCMDDONE ; No - just forget it ex<SM1><Sys7.1> Put back "ROM"
|
||||
jmpROM RNMVol@70 ; Yes - go and rename it
|
||||
|
||||
@checkExtFS:
|
||||
jsrROM EXTOFFLINCK ; Our file system, on-line volume?
|
||||
bneROM CMDDONE ; If not, get out now
|
||||
jsrROM ROMEXTOFFLINCK ; Our file system, on-line volume? ex<SM1><Sys7.1> Put back "ROM"
|
||||
bneROM ROMCMDDONE ; If not, get out now ex<SM1><Sys7.1> Put back "ROM"
|
||||
jmpROM RNMVol@70 ; Otherwise, same as ever
|
||||
|
||||
BadNewNam:
|
||||
moveq.l #bdNamErr,d0 ; get the error code
|
||||
jmpROM CMDDONE ; outa here
|
||||
jmpROM ROMCMDDONE ; outa here ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
endproc
|
||||
|
||||
@ -1115,12 +1133,12 @@ BadNewNam:
|
||||
; bugs where we formerly didn’t rename the root directory and allowed a '' name.
|
||||
|
||||
SetVolInfoPatch proc
|
||||
jsrROM FSQUEUE ; Wait our turn
|
||||
jsrROM ROMFSQUEUE ; Wait our turn ex<SM1><Sys7.1> Put back "ROM"
|
||||
jsrROM romDtrmV1 ; Determine volume by drvnum/refnum
|
||||
bne SVIDone ; Punt on errors
|
||||
jsrROM CVFLGS ; Check if volume can be modified
|
||||
jsrROM ROMCVFLGS ; Check if volume can be modified ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne SVIDone ; Give up easily
|
||||
jsrROM EXTOFFLINCK ; Check if volume is on-line, non ext. FS
|
||||
jsrROM ROMEXTOFFLINCK ; Check if volume is on-line, non ext. FS ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne SVIDone ; Be a wimp - give up now.
|
||||
|
||||
move.l ioVNPtr(a0),d2 ; New name specified?
|
||||
@ -1166,7 +1184,7 @@ SetUserFields:
|
||||
|
||||
move.l ioVNPtr(a0), d1 ; grab ptr to caller's name
|
||||
|
||||
jsrROM TFSVCBTST ; Is it a TFS volume?
|
||||
jsrROM ROMTFSVCBTST ; Is it a TFS volume? ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne.s @skipHFS ; br if not - MFS VCBs don't have this info
|
||||
move.l ioVClpSiz(a0),vcbClpSiz(a2) ; Volume clump size
|
||||
move.l ioVBkup(a0),vcbVolBkup(a2) ; Last backup date
|
||||
@ -1187,7 +1205,7 @@ SetUserFields:
|
||||
move.b d0, (a1)+ ; jam our length byte
|
||||
_BlockMove ; change the name
|
||||
|
||||
jsrROM TFSVCBTST ; Are we dealing with an MFS volume?
|
||||
jsrROM ROMTFSVCBTST ; Are we dealing with an MFS volume? ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne.s @skipRootRename ; if so, no root to rename
|
||||
|
||||
; rename the root
|
||||
@ -1204,7 +1222,7 @@ SetUserFields:
|
||||
moveq.l #noErr,d0 ; All went well...
|
||||
|
||||
SVIDone:
|
||||
jmpROM CMDDONE
|
||||
jmpROM ROMCMDDONE ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
endproc
|
||||
|
||||
;__________________________________________________________________________________
|
||||
@ -1301,12 +1319,12 @@ myCMSetUp PatchProc jCMSetup,(Plus,SE,II,IIci,Portable)
|
||||
@BugOut ; clean up A6 & A7 stacks and jump back to rom
|
||||
addq.w #4,A7 ; remove return addr to Rename
|
||||
move.l (A6)+,D2 ; recover rounded string length
|
||||
jsrRom POPCNAME ; remove name from A6 stack
|
||||
jsrRom ROMPOPCNAME ; remove name from A6 stack ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
@RNmExit cmp.w #BTExists,D0 ; B*-Tree error?
|
||||
bne.s @FinalExit
|
||||
moveq #dupFNErr,D0 ; If entry exists, give better error code
|
||||
@FinalExit jmpRom CMDDONE ; and now back to our regularly scheduled broadcast...
|
||||
@FinalExit jmpRom ROMCMDDONE ; and now back to our regularly scheduled broadcast... ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
|
||||
; CMSvcs calls "MarkVCBTime", which only set the mod time but doesn't mark VCB dirty.
|
||||
@ -1521,7 +1539,7 @@ dirCreateTrapWord equ selectDirCreate
|
||||
suba.l a0, a0 ; go after the parent
|
||||
move.l (a6)+,d0 ; retrieve target parent directory
|
||||
|
||||
jsrROM LOCCREC
|
||||
jsrROM ROMLOCCREC ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne.s @dirNotFound
|
||||
cmpi.b #cdrThdRec,cdrType(a1) ; is it a directory thread?
|
||||
beq.s @fileNotFound ; yes, so it was just the leaf that was missing
|
||||
@ -1664,7 +1682,7 @@ OpenAttemptHook: proc
|
||||
; This patch was rolled into TFSDIR1.a
|
||||
PreflightFileOpen proc
|
||||
|
||||
jsrROM FSQUEUE ; serialize things
|
||||
jsrROM ROMFSQUEUE ; serialize things ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr OpenAttemptHook ; tell'em we're trying
|
||||
ST RegRsrc ; open regular part of file <39>
|
||||
jmpROM FOpen1
|
||||
@ -1685,7 +1703,7 @@ PreflightFileOpen proc
|
||||
; This patch was rolled into TFSDIR1.a
|
||||
PreflightOpenRF PatchProc _OpenRF
|
||||
|
||||
jsrROM FSQUEUE ; serialize things
|
||||
jsrROM ROMFSQUEUE ; serialize things ex<SM1><Sys7.1> Put back "ROM"
|
||||
bsr OpenAttemptHook ; tell'em we're trying
|
||||
clr.b RegRsrc ; open resource part of file <39>
|
||||
jmpROM FOpen1
|
||||
@ -1733,7 +1751,7 @@ PreflightOpenRF PatchProc _OpenRF
|
||||
AllocateFCBs proc
|
||||
import MoreFCBs
|
||||
|
||||
jsrROM FSQUEUE ; wait our turn
|
||||
jsrROM ROMFSQUEUE ; wait our turn ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
moveq.l #-1,d0 ; more FCBs than we'll ever have
|
||||
bsr CountFCBs ; count all of them
|
||||
@ -1757,7 +1775,7 @@ AllocateFCBs proc
|
||||
move.w d3,d2 ; otherwise, just grow as much as we can
|
||||
|
||||
@grow:
|
||||
bsr MoreFCBs ; try to get the FCBs
|
||||
jsr MoreFCBs ; try to get the FCBs ex<SM1><Sys7.1> Put back "ROM"
|
||||
beq.s @gotSome ; leave with a smile
|
||||
|
||||
asr.w #1,d2 ; try to get half that many
|
||||
@ -1778,7 +1796,7 @@ AllocateFCBs proc
|
||||
beq.s @noFCBsAvailable ; if none are left, report the problem
|
||||
moveq.l #noErr,d0 ; if some are left, we're happy
|
||||
|
||||
@exit: jmpROM CMDDONE
|
||||
@exit: jmpROM ROMCMDDONE ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
@noFCBsAvailable:
|
||||
moveq.l #tmfoErr,d0
|
||||
@ -1945,7 +1963,7 @@ FixDtrmV3: PatchProc jDtrmV3,(II,IIci,Portable)
|
||||
; This patch was rolled into TFSVOL.a
|
||||
MountVolFor1991 PatchProc _MountVol
|
||||
|
||||
jsrROM FSQUEUESYNC
|
||||
jsrROM ROMFSQUEUESYNC ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
movea.l a0, a5 ; save caller's pb
|
||||
move.w ioDrvNum(a5), d2 ; where FindDrive likes it
|
||||
@ -2030,7 +2048,7 @@ Remount:
|
||||
move.w d2,vcbDrvNum(a2) ; drive number
|
||||
move.w d1,vcbDRefNum(a2) ; driver RefNum
|
||||
|
||||
jsrROM TFSVCBTST ; remounted a TFS volume? <32>
|
||||
jsrROM ROMTFSVCBTST ; remounted a TFS volume? <32> ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne.s NoErrExit ; Nope - don't mess with the MDB <33>
|
||||
btst.b #vcbWrProt,vcbAtrb+1(a2); Is volume write protected? <32>
|
||||
bne.s NoErrExit ; If so, don't try to flush the MDB <33>
|
||||
@ -2053,7 +2071,7 @@ EarlyExit:
|
||||
btst.b #fsNoAllocate, FSVars.fsFlags(a1)
|
||||
beqROM OldMtVolAfterFSQueue ; join the ROM (BTW, skipping the _Offline heroics)
|
||||
@1:
|
||||
jmpROM CMDDONE
|
||||
jmpROM ROMCMDDONE ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
endproc
|
||||
|
||||
;_______________________________________________________________________
|
||||
@ -2076,18 +2094,18 @@ EarlyExit:
|
||||
; These patches were rolled into TFSVOL.a
|
||||
NoCloseOnOffline PatchProc _Offline
|
||||
import OfflineEjectCommon
|
||||
jsrROM FSQUEUESYNC ; wait until all current calls are done
|
||||
jsrROM ROMFSQUEUESYNC ; wait until all current calls are done ex<SM1><Sys7.1> Put back "ROM"
|
||||
st NoEject ; -1 = send offline but don't eject
|
||||
jmp OfflineEjectCommon ; share code with Eject
|
||||
endproc
|
||||
|
||||
NoCloseOnEject PatchProc _Eject
|
||||
export OfflineEjectCommon
|
||||
jsrROM FSQUEUESYNC ; wait until all current calls are done
|
||||
jsrROM ROMFSQUEUESYNC ; wait until all current calls are done ex<SM1><Sys7.1> Put back "ROM"
|
||||
clr.b NoEject ; 0 = offline + eject
|
||||
|
||||
OfflineEjectCommon
|
||||
jsrROM DTRMV3 ; check name, drive number, etc.
|
||||
jsrROM ROMDTRMV3 ; check name, drive number, etc. ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne.s ejectNotMounted ; br if drive not mounted (why flush?)
|
||||
jsrROM romCkExtFS ; see if it's for an external fs
|
||||
bne.s EjectDone ; exit if so
|
||||
@ -2103,7 +2121,7 @@ ejectDrvNum:
|
||||
beqROM EjectIt ; OK, OK; it's going already...
|
||||
|
||||
ejectDone:
|
||||
jmpROM CMDDONE ; we're done . . .
|
||||
jmpROM ROMCMDDONE ; we're done . . . ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
ejectMounted:
|
||||
lea.l vcbDrvNum(a2),a1 ; point into VCB at drive number
|
||||
@ -2138,13 +2156,13 @@ ejectOnLine:
|
||||
@5: st FlushOnly ; only flushing (don't close . . .)
|
||||
jsrROM FlushVFiles ; flush all files on this volume
|
||||
|
||||
jsrROM TFSVCBTST ; Are we dealing with a TFS volume?
|
||||
jsrROM ROMTFSVCBTST ; Are we dealing with a TFS volume? ex<SM1><Sys7.1> Put back "ROM"
|
||||
bneROM OfflineEjectCallsMFSFlush ; Nope, so join ROM to do MFS right
|
||||
|
||||
; note that the following line is the opposite of the ROM code. We only want to flush
|
||||
; these files, since _Unmount will close them later. However, we do want to mark the
|
||||
; vcb consistent as it goes offline.
|
||||
jsrROM CVFLGS ; Is volume write protected? <31>
|
||||
jsrROM ROMCVFLGS ; Is volume write protected? <31> ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne.s @1 ; If so, don't try to mark it dirty <31>
|
||||
bset.b #vcbAtVOK,vcbAtrb(a2) ; Indicate vol was unmounted ok <31>
|
||||
jsrROM MarkVCBDirty ; mark VCB dirty so it will be written <31>
|
||||
@ -2240,15 +2258,15 @@ DesktopCloseDownProc: proc
|
||||
;_______________________________________________________________________
|
||||
UnmountForTheNineties: PatchProc _UnMountVol
|
||||
|
||||
bsr DesktopCloseDownProc ; go take care of the desktop database <36>
|
||||
jsr DesktopCloseDownProc ; go take care of the desktop database <36> ex<SM1><Sys7.1>
|
||||
|
||||
; The desktop file hack should no longer be necessary for the 7.0 version of the AppleShare client.
|
||||
IncludeAppleShareDesktopHack equ 0
|
||||
|
||||
jsrROM FSQUEUESYNC ; Get in sync...
|
||||
jsrROM ROMFSQUEUESYNC ; Get in sync... ex<SM1><Sys7.1> Put back "ROM"
|
||||
clr.b FlushOnly ; Setup same as UnmountVol
|
||||
jsrROM DTRMV3 ; Call DtrmV3 to do setup stuff
|
||||
bneROM CMDDONE ; and split on errors
|
||||
jsrROM ROMDTRMV3 ; Call DtrmV3 to do setup stuff ex<SM1><Sys7.1> Put back "ROM"
|
||||
bneROM ROMCMDDONE ; and split on errors ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
moveq #0,d0 ; Initialize result code
|
||||
btst #HFSBit,ioTrap(a0) ; Unconditional unmount?
|
||||
@ -2292,19 +2310,19 @@ IncludeAppleShareDesktopHack equ 0
|
||||
@5
|
||||
movem.l (sp)+,a1/d1/d2 ; Restore regs
|
||||
tst.w d0 ; Were files open?
|
||||
bneROM CMDDONE ; and quit on errors
|
||||
bneROM ROMCMDDONE ; and quit on errors ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
FlUnMnt:
|
||||
jsrROM romCkExtFS ; see if it's for an external fs
|
||||
bneROM CMDDONE ; and split on errors
|
||||
bneROM ROMCMDDONE ; and split on errors ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
jsrROM FlushVFiles ; flush all files on this volume
|
||||
bneROM CMDDONE ; and split on errors
|
||||
bneROM ROMCMDDONE ; and split on errors ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
; All files on this volume are flushed now. Update the volume information as
|
||||
; appropriate, depending on the file structure:
|
||||
|
||||
jsrROM TFSVCBTST ; is this a TFS volume?
|
||||
jsrROM ROMTFSVCBTST ; is this a TFS volume? ex<SM1><Sys7.1> Put back "ROM"
|
||||
beq.s @1 ; br if so
|
||||
jmpROM FlUnMntAfterMFSCheck ; the ROM has is right for MFS volumes
|
||||
|
||||
@ -2342,7 +2360,7 @@ BackInFlUnMnt:
|
||||
moveq.l #noErr,d0 ; no error
|
||||
|
||||
FlVolExit
|
||||
jmpROM CMDDONE
|
||||
jmpROM ROMCMDDONE ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
endproc
|
||||
|
||||
|
||||
@ -3029,7 +3047,7 @@ ProcessMgrExists proc export
|
||||
|
||||
TagFileWithPSN
|
||||
; Open traps can be (and are!) called before Process Mgr is init'd
|
||||
bsr ProcessMgrExists ; is Process Mgr ready?
|
||||
jsr ProcessMgrExists ; is Process Mgr ready? ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne.s @CantRecord ; Process Mgr is not ready yet
|
||||
|
||||
; find the current PSN
|
||||
@ -3089,7 +3107,7 @@ FSCleanupRegs REG A2-A3/D2-D6
|
||||
MOVE cbPBufULen(A2),D4 ; D4=ext. FCB unit size
|
||||
LEA fcbPBufData(A2),A2 ; A2=ext. fcb array
|
||||
MOVE FSFCBLen,D5 ; D5=FCB len
|
||||
jsrROM GT1STFCB ; A1=FCB, D1=1st RefNum
|
||||
jsrROM ROMGT1STFCB ; A1=FCB, D1=1st RefNum ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
; First close all the open files belong to this process:
|
||||
; A1=FCBptr, A2=Ext. FCBptr, D1.W=RefNum, D2=id2, D3.W=loop index,
|
||||
@ -3187,8 +3205,8 @@ clearPB MOVEA.L A0,A3 ; A3=A0=iopb
|
||||
;_______________________________________________________________________________________
|
||||
; This patch was rolled into TFSVOL.a
|
||||
OpenWDPatch Proc export
|
||||
jsrROM FSQUEUE ; Wait for our turn to come
|
||||
jsrROM FNDFILNAME ; Look for the indicated directory
|
||||
jsrROM ROMFSQUEUE ; Wait for our turn to come ex<SM1><Sys7.1> Put back "ROM"
|
||||
jsrROM ROMFNDFILNAME ; Look for the indicated directory ex<SM1><Sys7.1> Put back "ROM"
|
||||
BEQ.S @1 ; Br if found
|
||||
CMP.W #BdNamErr,D0 ; Was it a bad filename? <21Sep85>
|
||||
BNE.S opnWDExit ; If not, there's no more hope <21Sep85>
|
||||
@ -3211,7 +3229,7 @@ OpenWDPatch Proc export
|
||||
@2 MOVE.W VCBVRefNum(A2),ioVRefNum(A0) ; Return the VRefNum as WDRfn <21Sep85>
|
||||
|
||||
opnWDOK MOVEQ #0,D0 ; Call it a success <21Sep85>
|
||||
opnWDExit jmpROM CMDDONE ; we're finished . . .
|
||||
opnWDExit jmpROM ROMCMDDONE ; we're finished . . . ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
; Look for a matching working directory, starting with the third (the first two are
|
||||
; reserved to hold the system-wide volume and directory defaults).
|
||||
@ -4018,7 +4036,7 @@ DontTruncateMultiForks ComeFromPatchProc $A0DB,,(Plus,SE,II,Portable,IIci) ; <11
|
||||
MOVE.L FCBFlNm(A1,D3.W),D2 ; D2.L = our file number <11Dec90 #17>
|
||||
move.b fcbMdRByt(a1,d3.w),d4 ; d4.b = our fork's misc info <44>
|
||||
|
||||
jsrROM GT1STFCB ; get (A1,D1) pointing to first FCB <11Dec90 #17>
|
||||
jsrROM ROMGT1STFCB ; get (A1,D1) pointing to first FCB <11Dec90 #17> ex<SM1><Sys7.1> Put back "ROM"
|
||||
@1 CMP.W D1,D3 ; same FCB? <11Dec90 #17>
|
||||
BEQ.S @3 ; skip ourself if it is <11Dec90 #17>
|
||||
CMP.L FCBFlNm(A1,D1),D2 ; file numbers match? <11Dec90 #17>
|
||||
@ -4029,7 +4047,7 @@ DontTruncateMultiForks ComeFromPatchProc $A0DB,,(Plus,SE,II,Portable,IIci) ; <11
|
||||
eor.b d4,d0 ; see how it compares against ours <44>
|
||||
btst.l #fcbRscBit,d0 ; are we the same? <44>
|
||||
beq.s @7 ; if so, then there's another open path <44>
|
||||
@3 jsrROM GTNXTFCB ; get next one until we run out <11Dec90 #17>
|
||||
@3 jsrROM ROMGTNXTFCB ; get next one until we run out <11Dec90 #17> ex<SM1><Sys7.1> Put back "ROM"
|
||||
BCS.S @1 ; continue if more <11Dec90 #17>
|
||||
|
||||
; No second open path found, so do the truncate
|
||||
@ -4741,7 +4759,7 @@ BDUpdDepth
|
||||
|
||||
MOVEQ #0,D1 ; locate key and data for 1st record <10Oct85>
|
||||
MOVEA.L A3,A1 ;
|
||||
jsrRom LOCREC ; ... in node <10Oct85>
|
||||
jsrRom ROMLOCREC ; ... in node <10Oct85> ex<SM1><Sys7.1> Put back "ROM"
|
||||
MOVE.L (A1),BTCRoot(A4) ; new root = child node <10Oct85>
|
||||
;
|
||||
; release the previous root node
|
||||
@ -4905,13 +4923,13 @@ GetVolParms: proc export
|
||||
@GetVolRegs reg d2/d3/a1-a4
|
||||
|
||||
bclr #asyncTrpBit, ioTrap(a0) ; force synchronous (wrong. See note, above)
|
||||
jsrRom FSQUEUE ; Patiently wait our turn in line
|
||||
jsrRom ROMFSQUEUE ; Patiently wait our turn in line ex<SM1><Sys7.1> Put back "ROM"
|
||||
movem.l @GetVolRegs, -(a6) ; save regs on FS stack
|
||||
suba.w @VolParmsBufferSize, a6 ; allocate a GetVolParms buffer on the stack
|
||||
;
|
||||
; Find the VCB in question:
|
||||
;
|
||||
jsrRom DTRMV3 ; find vol using ioNamePtr & ioVRefNum (D023/A234 trashed)
|
||||
jsrRom ROMDTRMV3 ; find vol using ioNamePtr & ioVRefNum (D023/A234 trashed) ex<SM1><Sys7.1> Put back "ROM"
|
||||
bne.s @GetVolParmsExit ; (DtrmV3 puts VCBPtr in A2)
|
||||
|
||||
tst.w vcbFSID(a2) ; Check: external file system? (•• TFSVCBTst?)
|
||||
@ -4961,7 +4979,7 @@ GetVolParms: proc export
|
||||
|
||||
@GetVolParmsExit:
|
||||
movem.l (a6)+, @GetVolRegs ; restore regs
|
||||
jmpROM CMDDONE ; Go home
|
||||
jmpROM ROMCMDDONE ; Go home ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
; This buffer contains the appropriate values for local HFS volumes.
|
||||
@HFSVolParmsBuffer:
|
||||
@ -5057,7 +5075,7 @@ WriteCountInit
|
||||
MOVE.L VCBQHdr+QHead,D0 ; search the VCB queue
|
||||
BEQ.S wcEndq ; br if end of queue reached
|
||||
CkVol: MOVE.L D0,A2 ; next VCB pointer
|
||||
jsrRom TFSVCBTST ; is this a HFS volume?
|
||||
jsrRom ROMTFSVCBTST ; is this a HFS volume? ex<SM1><Sys7.1> Put back "ROM"
|
||||
BNE.S @6 ; No, don't bother
|
||||
TST vcbFSID(A2) ; internal HFS? (do we need to test this?)
|
||||
BNE.S @6 ; No, don't bother
|
||||
@ -5121,7 +5139,7 @@ GrowFileSystemStack:
|
||||
|
||||
moveq.l #0,d0 ; use selector 0
|
||||
move.w #$a060,d1 ; and pretend we're trap _HFSDispatch
|
||||
jsrROM FSQUEUE ; and sync up with the file system
|
||||
jsrROM ROMFSQUEUE ; and sync up with the file system ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
; first we use the old equate to get the pointer block's base address
|
||||
move.l HFSStkTop,a0 ; current stack top
|
||||
@ -5136,7 +5154,7 @@ GrowFileSystemStack:
|
||||
move.l a0,HFSStkTop ; Store pointer in lo-mem
|
||||
|
||||
moveq.l #noErr,d0 ; success!
|
||||
jmpROM CMDDONE
|
||||
jmpROM ROMCMDDONE ; ex<SM1><Sys7.1> Put back "ROM"
|
||||
|
||||
@bail:
|
||||
moveq.l #dsMemFullErr, d0 ; sys heap is full, so punt
|
||||
@ -5237,7 +5255,7 @@ InstallVectors PROC export
|
||||
leaResident vAfterFSQHook, a0 ; get addr just past call to fsQueueHook (in fsQueueHook patch)
|
||||
move.l a0, ExpandMemRec.jAfterFSQHook(a1)
|
||||
|
||||
leaROM CMDDONE , a0 ; get addr of CmdDone (still in ROM)
|
||||
leaROM ROMCMDDONE, a0 ; get addr of CmdDone (still in ROM) ex<SM1><Sys7.1> Put back "ROM"
|
||||
move.l a0, ExpandMemRec.jCmdDone(a1)
|
||||
leaResident fsGeneralWakeUp, a0 ; get addr of general purpose File System kickstart
|
||||
move.l a0, ExpandMemRec.jDispatchNext(a1)
|
||||
|
@ -1,3 +1,14 @@
|
||||
#
|
||||
# Hacks to match MacOS (most recent first):
|
||||
#
|
||||
# <Sys7.1> 8/3/92 Removed TFS.a (i.e. HFS) from the lpch build altogether -- all the
|
||||
# supported ROMs have it. Moved DiskCache.a back from the lpch to ptch 41.
|
||||
# Removed BTreeMgr.lib from here, to be included in the lpch build
|
||||
# elsewhere. Added (Later)FileMgrPatches.a and CMSvcsExtras.a back to the
|
||||
# lpch build.
|
||||
# 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
#
|
||||
|
||||
#
|
||||
# File: HFS.make
|
||||
#
|
||||
@ -19,36 +30,42 @@ HFSBTreeDir = {HFSExtensionsDir}BTreeMgr:
|
||||
#include {HFSBTreeDir}BTreeMgr.Make
|
||||
|
||||
|
||||
HFSObjs = "{LibDir}BTreeMgr.lib" ∂
|
||||
HFSObjs = ∂
|
||||
"{ObjDir}BTAlloc.a.o" ∂
|
||||
"{ObjDir}BTMaint1.a.o" ∂
|
||||
"{ObjDir}BTMaint2.a.o" ∂
|
||||
"{ObjDir}BTSVCS.a.o" ∂
|
||||
"{ObjDir}QMgr.a.o" ∂
|
||||
"{ObjDir}cache.a.o" ∂
|
||||
"{ObjDir}TFS.a.o" ∂
|
||||
"{ObjDir}cacheio.a.o" ∂
|
||||
"{ObjDir}cmmaint.a.o" ∂
|
||||
"{ObjDir}cmsvcs.a.o" ∂
|
||||
"{ObjDir}FXM.a.o" ∂
|
||||
"{ObjDir}ExternalMakeFSSpec.a.o" ∂
|
||||
"{ObjDir}BTPScan.a.o" ∂
|
||||
"{ObjDir}BTSVCS.a.o" ∂
|
||||
"{ObjDir}cache.a.o" ∂
|
||||
"{ObjDir}cacheio.a.o" ∂
|
||||
"{ObjDir}CacheControl.a.o" ∂
|
||||
"{ObjDir}CatSearch.a.o" ∂
|
||||
"{ObjDir}cmmaint.a.o" ∂
|
||||
"{ObjDir}cmsvcs.a.o" ∂
|
||||
"{ObjDir}CMSvcsExtras.a.o" # <Sys7.1> ∂
|
||||
"{ObjDir}DTDBMgr.a.o" ∂
|
||||
"{ObjDir}ExternalMakeFSSpec.a.o" ∂
|
||||
"{ObjDir}FileMgrPatches.a.o" # <Sys7.1> ∂
|
||||
"{ObjDir}LaterFileMgrPatches.a.o" # <Sys7.1> ∂
|
||||
"{ObjDir}FileIDs.a.o" ∂
|
||||
"{ObjDir}FileIDsSvcs.a.o" ∂
|
||||
"{ObjDir}FSpDispatch.a.o" ∂
|
||||
"{ObjDir}FSSpecCalls.c.o" ∂
|
||||
"{ObjDir}FXM.a.o" ∂
|
||||
"{ObjDir}MakeFSSpec.a.o" ∂
|
||||
"{ObjDir}QMgr.a.o" ∂
|
||||
"{ObjDir}vsm.a.o" ∂
|
||||
"{ObjDir}DTDBMgr.a.o" ∂
|
||||
"{ObjDir}DiskCache.a.o"
|
||||
|
||||
|
||||
"{LibDir}HFS.lib" ƒ {HFSObjs}
|
||||
Lib {StdLibOpts} -o "{Targ}" {HFSObjs}
|
||||
|
||||
|
||||
# <Sys7.1>
|
||||
"{RsrcDir}DiskCache.a.rsrc" ƒ "{ObjDir}DiskCache.a.o"
|
||||
Link {StdLOpts} {StdAlign} -o "{Targ}" -rt RSRC=0 "{ObjDir}DiskCache.a.o"
|
||||
|
||||
|
||||
"{ObjDir}BTAlloc.a.o" ƒ "{ObjDir}StandardEqu.d" ∂
|
||||
"{AIncludes}SonyEqu.a" ∂
|
||||
"{HFSDir}BTAlloc.a"
|
||||
@ -212,3 +229,16 @@ HFSObjs = "{LibDir}BTreeMgr.lib" ∂
|
||||
"{IntAIncludes}DiskCachePriv.a" ∂
|
||||
"{IntAIncludes}FileMgrPrivate.a"
|
||||
Asm {StdAOpts} -o "{Targ}" "{HFSCacheDir}DiskCache.a"
|
||||
|
||||
|
||||
# <Sys7.1>
|
||||
"{ObjDir}CMSvcsExtras.a.o" ƒ "{HFSExtensionsDir}CMSvcsExtras.a"
|
||||
Asm {StdAOpts} -o "{Targ}" "{HFSExtensionsDir}CMSvcsExtras.a"
|
||||
|
||||
# <Sys7.1>
|
||||
"{ObjDir}FileMgrPatches.a.o" ƒ "{HFSDir}FileMgrPatches.a"
|
||||
Asm {StdAOpts} -o "{Targ}" -d SonyNonPortable -i "{HFSDir}Extensions:" "{HFSDir}FileMgrPatches.a"
|
||||
|
||||
# <Sys7.1>
|
||||
"{ObjDir}LaterFileMgrPatches.a.o" ƒ "{HFSDir}LaterFileMgrPatches.a"
|
||||
Asm {StdAOpts} -o "{Targ}" "{HFSDir}LaterFileMgrPatches.a"
|
||||
|
@ -1,3 +1,10 @@
|
||||
#
|
||||
# Hacks to match MacOS (most recent first):
|
||||
#
|
||||
# <Sys7.1> 8/3/92 Added rule for MMUPatches.a, which is separately linked into the lpch.
|
||||
# 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
#
|
||||
|
||||
#
|
||||
# File: MMU.Make
|
||||
#
|
||||
@ -49,3 +56,8 @@ MMUObjs = "{ObjDir}MMU.a.o" ∂
|
||||
Asm {StdAOpts} -o "{Targ}" "{MMUDir}GetReal.a"
|
||||
|
||||
|
||||
# <Sys7.1>
|
||||
"{ObjDir}MMUPatches.a.o" ƒ "{MMUDir}MMUPatches.a"
|
||||
Asm {StdAOpts} -o "{Targ}" "{MMUDir}MMUPatches.a"
|
||||
|
||||
|
||||
|
491
OS/PPC/PPCDsp.c
Normal file
491
OS/PPC/PPCDsp.c
Normal file
@ -0,0 +1,491 @@
|
||||
/*
|
||||
Hacks to match MacOS (most recent first):
|
||||
|
||||
<Sys7.1> 8/3/92 Decompiled from scratch
|
||||
*/
|
||||
|
||||
#ifndef __TYPES__
|
||||
#include <Types.h>
|
||||
#endif
|
||||
|
||||
#ifndef __FILES__
|
||||
#include <Files.h>
|
||||
#endif
|
||||
|
||||
#ifndef __MEMORY__
|
||||
#include <Memory.h>
|
||||
#endif
|
||||
|
||||
#ifndef __ERRORS__
|
||||
#include <Errors.h>
|
||||
#endif
|
||||
|
||||
#ifndef __RESOURCES__
|
||||
#include <Resources.h>
|
||||
#endif
|
||||
|
||||
#ifndef __TOOLUTILS__
|
||||
#include <ToolUtils.h>
|
||||
#endif
|
||||
|
||||
#ifndef __OSUTILS__
|
||||
#include <OSUtils.h>
|
||||
#endif
|
||||
|
||||
#ifndef __DEVICES__
|
||||
#include <Devices.h>
|
||||
#endif
|
||||
|
||||
#ifndef __POWER__
|
||||
#include <Power.h>
|
||||
#endif
|
||||
|
||||
#include <BTEqu.h>
|
||||
#include "UserGroup.h"
|
||||
|
||||
#ifndef __APPLETALK__
|
||||
#include <AppleTalk.h>
|
||||
#endif
|
||||
|
||||
#ifndef __ADSP__
|
||||
#include "ADSP.h"
|
||||
#endif
|
||||
|
||||
#ifndef __PPCTOOLBOX__
|
||||
#include <PPCToolBox.h>
|
||||
#endif
|
||||
|
||||
#ifndef __STDDEF__
|
||||
#include <StdDef.h>
|
||||
#endif
|
||||
|
||||
#include "PPCCommon.h"
|
||||
|
||||
|
||||
OSErr OpenADSPDriver(short *refNum) //26cc4
|
||||
{
|
||||
// ROM:00126CC4 link a6,#0
|
||||
// ROM:00126CC8 subq.l #2,sp
|
||||
// ROM:00126CCA pea unk_126CDC
|
||||
// ROM:00126CCE move.l 8(a6),-(sp)
|
||||
// ROM:00126CD2 ori.b #$D7,d0
|
||||
// ROM:00126CD6 move.w (sp)+,d0
|
||||
// ROM:00126CD8 unlk a6
|
||||
// ROM:00126CDA rts
|
||||
return OpenDriver("\p.DSP", refNum);
|
||||
}
|
||||
|
||||
OSErr CreateConnectionListener(Ptr ccbPtr, //8
|
||||
DSPParamBlock *dsp, //c
|
||||
unsigned short dspDrvrRef, //10
|
||||
unsigned char socket, //12
|
||||
Boolean async, //14
|
||||
ProcPtr compRoutine) //16 //26ce2
|
||||
{
|
||||
// ROM:00126CE2
|
||||
// ROM:00126CE2 link a6,#0
|
||||
// ROM:00126CE6 movem.l a3-a4,-(sp)
|
||||
// ROM:00126CEA movea.l $C(a6),a3
|
||||
// ROM:00126CEE lea $22(a3),a4
|
||||
// ROM:00126CF2 move.w $12(a6),$18(a3)
|
||||
// ROM:00126CF8 move.w #$FB,$1A(a3)
|
||||
// ROM:00126CFE move.l $1C(a6),$C(a3)
|
||||
// ROM:00126D04 move.l 8(a6),(a4)
|
||||
// ROM:00126D08 moveq #0,d0
|
||||
// ROM:00126D0A move.l d0,4(a4)
|
||||
// ROM:00126D0E clr.w 8(a4)
|
||||
// ROM:00126D12 clr.w $E(a4)
|
||||
// ROM:00126D16 move.l d0,$A(a4)
|
||||
// ROM:00126D1A move.l d0,$10(a4)
|
||||
// ROM:00126D1E move.l d0,$14(a4)
|
||||
// ROM:00126D22 move.b $17(a6),$18(a4)
|
||||
// ROM:00126D28 move.l a3,-(sp)
|
||||
// ROM:00126D2A subq.l #2,sp
|
||||
// ROM:00126D2C move.l a3,-(sp)
|
||||
// ROM:00126D2E move.b $1B(a6),-(sp)
|
||||
// ROM:00126D32 ori.b #$DF,d5
|
||||
// ROM:00126D36 move.w (sp)+,d0
|
||||
// ROM:00126D38 ext.l d0
|
||||
// ROM:00126D3A move.l d0,-(sp)
|
||||
// ROM:00126D3C ori.b #$20,d0 ; jsr DMFix
|
||||
// ROM:00126D40 movem.l -8(a6),a3-a4
|
||||
// ROM:00126D46 unlk a6
|
||||
// ROM:00126D48 rts
|
||||
struct TRinitParams *params = &(dsp->u.initParams);
|
||||
|
||||
dsp->ioCRefNum = dspDrvrRef;
|
||||
dsp->csCode = dspCLInit;
|
||||
dsp->ioCompletion = compRoutine;
|
||||
|
||||
params->ccbPtr = ccbPtr;
|
||||
params->userRoutine = NULL;
|
||||
params->sendQSize = 0;
|
||||
params->recvQSize = 0;
|
||||
params->sendQueue = NULL;
|
||||
params->recvQueue = NULL;
|
||||
params->attnPtr = NULL;
|
||||
params->localSocket = socket;
|
||||
|
||||
return DMFix(PBControl(dsp, async), dsp);
|
||||
}
|
||||
|
||||
OSErr ListenConnectionRequest(DSPParamBlock *dsp,
|
||||
Boolean async,
|
||||
ProcPtr compRoutine) //26d4a
|
||||
{
|
||||
// ROM:00126D4A link a6,#0
|
||||
// ROM:00126D4E movem.l a3-a4,-(sp)
|
||||
// ROM:00126D52 movea.l 8(a6),a4
|
||||
// ROM:00126D56 lea $22(a4),a3
|
||||
// ROM:00126D5A move.w #$F9,$1A(a4)
|
||||
// ROM:00126D60 move.l $10(a6),$C(a4)
|
||||
// ROM:00126D66 clr.b $A(a3)
|
||||
// ROM:00126D6A clr.w 8(a3)
|
||||
// ROM:00126D6E clr.b $B(a3)
|
||||
// ROM:00126D72 move.l a4,-(sp)
|
||||
// ROM:00126D74 subq.l #2,sp
|
||||
// ROM:00126D76 move.l a4,-(sp)
|
||||
// ROM:00126D78 move.b $F(a6),-(sp)
|
||||
// ROM:00126D7C ori.b #$DF,d5
|
||||
// ROM:00126D80 move.w (sp)+,d0
|
||||
// ROM:00126D82 ext.l d0
|
||||
// ROM:00126D84 move.l d0,-(sp)
|
||||
// ROM:00126D86 ori.b #$20,d0
|
||||
// ROM:00126D8A movem.l -8(a6),a3-a4
|
||||
// ROM:00126D90 unlk a6
|
||||
// ROM:00126D92 rts
|
||||
struct TRopenParams *params = &(dsp->u.openParams);
|
||||
|
||||
dsp->csCode = dspCLListen;
|
||||
dsp->ioCompletion = compRoutine;
|
||||
|
||||
params->filterAddress.aNode = 0;
|
||||
params->filterAddress.aNet = 0;
|
||||
params->filterAddress.aSocket = 0;
|
||||
|
||||
return DMFix(PBControl(dsp, async), dsp);
|
||||
}
|
||||
|
||||
|
||||
void RejectConnectionRequest(DSPParamBlock *dsp, Boolean async, ProcPtr compRoutine) //26d94
|
||||
{
|
||||
// ROM:00126D94 link a6,#0
|
||||
// ROM:00126D98 move.l a4,-(sp)
|
||||
// ROM:00126D9A movea.l 8(a6),a4
|
||||
// ROM:00126D9E move.l $10(a6),$C(a4)
|
||||
// ROM:00126DA4 move.w #$F8,$1A(a4)
|
||||
// ROM:00126DAA move.l a4,-(sp)
|
||||
// ROM:00126DAC subq.l #2,sp
|
||||
// ROM:00126DAE move.l a4,-(sp)
|
||||
// ROM:00126DB0 move.b $F(a6),-(sp)
|
||||
// ROM:00126DB4 ori.b #$DF,d5
|
||||
// ROM:00126DB8 move.w (sp)+,d0
|
||||
// ROM:00126DBA ext.l d0
|
||||
// ROM:00126DBC move.l d0,-(sp)
|
||||
// ROM:00126DBE ori.b #$20,d0
|
||||
// ROM:00126DC2 movea.l -4(a6),a4
|
||||
// ROM:00126DC6 unlk a6
|
||||
// ROM:00126DC8 rts
|
||||
dsp->ioCompletion = compRoutine;
|
||||
dsp->csCode = dspCLDeny;
|
||||
|
||||
DMFix(PBControl(dsp, async), dsp);
|
||||
}
|
||||
|
||||
OSErr RemoveConnectionListener(unsigned char abortFlag,
|
||||
Boolean async,
|
||||
ProcPtr compRoutine,
|
||||
DSPParamBlock *dsp) //26dca
|
||||
{
|
||||
// ROM:00126DCA link a6,#0
|
||||
// ROM:00126DCE movem.l a3-a4,-(sp)
|
||||
// ROM:00126DD2 movea.l $14(a6),a4
|
||||
// ROM:00126DD6 lea $22(a4),a3
|
||||
// ROM:00126DDA move.w #$FA,$1A(a4)
|
||||
// ROM:00126DE0 move.l $10(a6),$C(a4)
|
||||
// ROM:00126DE6 move.b $B(a6),(a3)
|
||||
// ROM:00126DEA move.l a4,-(sp)
|
||||
// ROM:00126DEC subq.l #2,sp
|
||||
// ROM:00126DEE move.l a4,-(sp)
|
||||
// ROM:00126DF0 move.b $F(a6),-(sp)
|
||||
// ROM:00126DF4 ori.b #$DF,d5
|
||||
// ROM:00126DF8 move.w (sp)+,d0
|
||||
// ROM:00126DFA ext.l d0
|
||||
// ROM:00126DFC move.l d0,-(sp)
|
||||
// ROM:00126DFE ori.b #$20,d0
|
||||
// ROM:00126E02 movem.l -8(a6),a3-a4
|
||||
// ROM:00126E08 unlk a6
|
||||
// ROM:00126E0A rts
|
||||
struct TRcloseParams *params = &(dsp->u.closeParams);
|
||||
|
||||
dsp->csCode = dspCLRemove;
|
||||
dsp->ioCompletion = compRoutine;
|
||||
|
||||
params->abort = abortFlag;
|
||||
|
||||
return DMFix(PBControl(dsp, async), dsp);
|
||||
}
|
||||
|
||||
OSErr CreateConnectionEnd(TRCCB *ccbPtr,
|
||||
ProcPtr userRoutine,
|
||||
unsigned short sendQSize,
|
||||
unsigned char *sendQ,
|
||||
unsigned short recvQSize,
|
||||
unsigned char *recvQ,
|
||||
unsigned char *attnPtr,
|
||||
unsigned char socket,
|
||||
short drvrRef,
|
||||
Boolean async,
|
||||
ProcPtr compRoutine,
|
||||
DSPParamBlock *dsp) //26e0c
|
||||
{
|
||||
// ROM:00126E0C link a6,#0
|
||||
// ROM:00126E10 movem.l a3-a4,-(sp)
|
||||
// ROM:00126E14 movea.l $34(a6),a3
|
||||
// ROM:00126E18 lea $22(a3),a4
|
||||
// ROM:00126E1C move.w $2A(a6),$18(a3)
|
||||
// ROM:00126E22 move.w #$FF,$1A(a3)
|
||||
// ROM:00126E28 move.l $30(a6),$C(a3)
|
||||
// ROM:00126E2E move.l 8(a6),(a4)
|
||||
// ROM:00126E32 move.l $C(a6),4(a4)
|
||||
// ROM:00126E38 move.w $12(a6),8(a4)
|
||||
// ROM:00126E3E move.w $1A(a6),$E(a4)
|
||||
// ROM:00126E44 move.l $14(a6),$A(a4)
|
||||
// ROM:00126E4A move.l $1C(a6),$10(a4)
|
||||
// ROM:00126E50 move.l $20(a6),$14(a4)
|
||||
// ROM:00126E56 move.b $27(a6),$18(a4)
|
||||
// ROM:00126E5C move.l a3,-(sp)
|
||||
// ROM:00126E5E subq.l #2,sp
|
||||
// ROM:00126E60 move.l a3,-(sp)
|
||||
// ROM:00126E62 move.b $2F(a6),-(sp)
|
||||
// ROM:00126E66 ori.b #$DF,d5
|
||||
// ROM:00126E6A move.w (sp)+,d0
|
||||
// ROM:00126E6C ext.l d0
|
||||
// ROM:00126E6E move.l d0,-(sp)
|
||||
// ROM:00126E70 ori.b #$20,d0
|
||||
// ROM:00126E74 movem.l -8(a6),a3-a4
|
||||
// ROM:00126E7A unlk a6
|
||||
// ROM:00126E7C rts
|
||||
struct TRinitParams *params = &(dsp->u.initParams);
|
||||
|
||||
dsp->ioCRefNum = drvrRef;
|
||||
dsp->csCode = dspInit;
|
||||
dsp->ioCompletion = compRoutine;
|
||||
|
||||
params->ccbPtr = ccbPtr;
|
||||
params->userRoutine = userRoutine;
|
||||
params->sendQSize = sendQSize;
|
||||
params->recvQSize = recvQSize;
|
||||
params->sendQueue = sendQ;
|
||||
params->recvQueue = recvQ;
|
||||
params->attnPtr = attnPtr;
|
||||
params->localSocket = socket;
|
||||
|
||||
return DMFix(PBControl(dsp, async), dsp);
|
||||
}
|
||||
|
||||
OSErr OpenConnectionEnd(unsigned short remoteCid,
|
||||
AddrBlock *remoteAddr,
|
||||
AddrBlock *filterAddr,
|
||||
unsigned long sendSeq,
|
||||
unsigned short sendWindow,
|
||||
unsigned long attnSendSeq,
|
||||
unsigned char ocMode,
|
||||
Boolean async,
|
||||
ProcPtr compRoutine,
|
||||
DSPParamBlock *dsp) //26e7e
|
||||
{
|
||||
PPCGlobalParamsPtr ppcglobPtr = getGlobal();
|
||||
struct PPCConfigInfo *myptr = &(ppcglobPtr->configData);
|
||||
|
||||
struct TRopenParams *params = &(dsp->u.openParams);
|
||||
|
||||
dsp->csCode = dspOpen;
|
||||
dsp->ioCompletion = compRoutine;
|
||||
|
||||
params->remoteAddress.aNet = remoteAddr->aNet;
|
||||
params->remoteAddress.aNode = remoteAddr->aNode;
|
||||
params->remoteAddress.aSocket = remoteAddr->aSocket;
|
||||
params->filterAddress.aNet = filterAddr->aNet;
|
||||
params->filterAddress.aNode = filterAddr->aNode;
|
||||
params->filterAddress.aSocket = filterAddr->aSocket;
|
||||
params->ocMode = ocMode;
|
||||
params->sendSeq = sendSeq;
|
||||
params->sendWindow = sendWindow;
|
||||
params->attnSendSeq = attnSendSeq;
|
||||
params->remoteCID = remoteCid;
|
||||
params->ocInterval = myptr->adspTimeout;
|
||||
params->ocMaximum = myptr->adspRetries;
|
||||
|
||||
return DMFix(PBControl(dsp, async), dsp);
|
||||
|
||||
// ROM:00126E7E link a6,#-4
|
||||
// ROM:00126E82 movem.l a3-a4,-(sp)
|
||||
// ROM:00126E86 movea.l $2C(a6),a3
|
||||
// ROM:00126E8A ori.w #$9406,a1 // getGlobal
|
||||
// ROM:00126E8E movea.l d0,a4
|
||||
// ROM:00126E90 lea $CC(a4),a0
|
||||
// ROM:00126E94 move.l a0,-4(a6)
|
||||
// ROM:00126E98 lea $22(a3),a4
|
||||
|
||||
// ROM:00126E9C move.w #$FD,$1A(a3)
|
||||
// ROM:00126EA2 move.l $28(a6),$C(a3)
|
||||
|
||||
// ROM:00126EA8 movea.l $C(a6),a0
|
||||
// ROM:00126EAC move.w (a0),4(a4)
|
||||
// ROM:00126EB0 movea.l $C(a6),a0
|
||||
// ROM:00126EB4 move.b 2(a0),6(a4)
|
||||
// ROM:00126EBA movea.l $C(a6),a0
|
||||
// ROM:00126EBE move.b 3(a0),7(a4)
|
||||
|
||||
// ROM:00126EC4 movea.l $10(a6),a0
|
||||
// ROM:00126EC8 move.w (a0),8(a4)
|
||||
// ROM:00126ECC movea.l $10(a6),a0
|
||||
// ROM:00126ED0 move.b 2(a0),$A(a4)
|
||||
// ROM:00126ED6 movea.l $10(a6),a0
|
||||
// ROM:00126EDA move.b 3(a0),$B(a4)
|
||||
|
||||
// ROM:00126EE0 move.b $23(a6),$1E(a4)
|
||||
// ROM:00126EE6 move.l $14(a6),$C(a4)
|
||||
// ROM:00126EEC move.w $1A(a6),$10(a4)
|
||||
// ROM:00126EF2 move.l $1C(a6),$16(a4)
|
||||
// ROM:00126EF8 move.w $A(a6),2(a4)
|
||||
|
||||
// ROM:00126EFE movea.l -4(a6),a0
|
||||
// ROM:00126F02 move.b 8(a0),$1F(a4) adspTimeout
|
||||
// ROM:00126F08 movea.l -4(a6),a0
|
||||
// ROM:00126F0C move.b 9(a0),$20(a4) adspRetries
|
||||
|
||||
// ROM:00126F12 move.l a3,-(sp)
|
||||
// ROM:00126F14 subq.l #2,sp
|
||||
// ROM:00126F16 move.l a3,-(sp)
|
||||
// ROM:00126F18 move.b $27(a6),-(sp)
|
||||
// ROM:00126F1C ori.b #$DF,d5
|
||||
// ROM:00126F20 move.w (sp)+,d0
|
||||
// ROM:00126F22 ext.l d0
|
||||
// ROM:00126F24 move.l d0,-(sp)
|
||||
// ROM:00126F26 ori.b #$20,d0
|
||||
// ROM:00126F2A movem.l -$C(a6),a3-a4
|
||||
// ROM:00126F30 unlk a6
|
||||
// ROM:00126F32 rts
|
||||
}
|
||||
|
||||
OSErr RemoveConnectionEnd(unsigned char abortFlag,
|
||||
Boolean async,
|
||||
ProcPtr compRoutine,
|
||||
DSPParamBlock *dsp) //26f34
|
||||
{
|
||||
struct TRcloseParams *params = &(dsp->u.closeParams);
|
||||
|
||||
dsp->csCode = dspRemove;
|
||||
dsp->ioCompletion = compRoutine;
|
||||
|
||||
params->abort = abortFlag;
|
||||
|
||||
return DMFix(PBControl(dsp, async), dsp);
|
||||
// ROM:00126F34 link a6,#0
|
||||
// ROM:00126F38 movem.l a3-a4,-(sp)
|
||||
// ROM:00126F3C movea.l $14(a6),a4
|
||||
// ROM:00126F40 lea $22(a4),a3
|
||||
// ROM:00126F44 move.w #$FE,$1A(a4) dspRemove
|
||||
// ROM:00126F4A move.l $10(a6),$C(a4)
|
||||
// ROM:00126F50 move.b $B(a6),(a3)
|
||||
// ROM:00126F54 move.l a4,-(sp)
|
||||
// ROM:00126F56 subq.l #2,sp
|
||||
// ROM:00126F58 move.l a4,-(sp)
|
||||
// ROM:00126F5A move.b $F(a6),-(sp)
|
||||
// ROM:00126F5E ori.b #$DF,d5
|
||||
// ROM:00126F62 move.w (sp)+,d0
|
||||
// ROM:00126F64 ext.l d0
|
||||
// ROM:00126F66 move.l d0,-(sp)
|
||||
// ROM:00126F68 ori.b #$20,d0
|
||||
// ROM:00126F6C movem.l -8(a6),a3-a4
|
||||
// ROM:00126F72 unlk a6
|
||||
// ROM:00126F74 rts
|
||||
}
|
||||
|
||||
|
||||
OSErr WriteToConnection(unsigned short reqCount,
|
||||
unsigned char *dataPtr,
|
||||
unsigned char eom,
|
||||
unsigned char flush,
|
||||
Boolean async,
|
||||
ProcPtr compRoutine,
|
||||
DSPParamBlock *dsp) //26f76
|
||||
{
|
||||
struct TRioParams *params = &(dsp->u.ioParams);
|
||||
|
||||
dsp->csCode = dspWrite;
|
||||
dsp->ioCompletion = compRoutine;
|
||||
|
||||
params->reqCount = reqCount;
|
||||
params->dataPtr = dataPtr;
|
||||
params->eom = eom;
|
||||
params->flush = flush;
|
||||
|
||||
return DMFix(PBControl(dsp, async), dsp);
|
||||
// ROM:00126F76 link a6,#0
|
||||
// ROM:00126F7A movem.l a3-a4,-(sp)
|
||||
// ROM:00126F7E movea.l $20(a6),a4
|
||||
// ROM:00126F82 lea $22(a4),a3
|
||||
// ROM:00126F86 move.w #$F5,$1A(a4)
|
||||
// ROM:00126F8C move.l $1C(a6),$C(a4)
|
||||
|
||||
// ROM:00126F92 move.w $A(a6),(a3)
|
||||
// ROM:00126F96 move.l $C(a6),4(a3)
|
||||
// ROM:00126F9C move.b $13(a6),8(a3)
|
||||
// ROM:00126FA2 move.b $17(a6),9(a3)
|
||||
|
||||
// ROM:00126FA8 move.l a4,-(sp)
|
||||
// ROM:00126FAA subq.l #2,sp
|
||||
// ROM:00126FAC move.l a4,-(sp)
|
||||
// ROM:00126FAE move.b $1B(a6),-(sp)
|
||||
// ROM:00126FB2 ori.b #$DF,d5
|
||||
// ROM:00126FB6 move.w (sp)+,d0
|
||||
// ROM:00126FB8 ext.l d0
|
||||
// ROM:00126FBA move.l d0,-(sp)
|
||||
// ROM:00126FBC ori.b #$20,d0
|
||||
// ROM:00126FC0 movem.l -8(a6),a3-a4
|
||||
// ROM:00126FC6 unlk a6
|
||||
// ROM:00126FC8 rts
|
||||
}
|
||||
|
||||
OSErr ReadFromConnection(unsigned short reqCount,
|
||||
unsigned char *dataPtr,
|
||||
Boolean async,
|
||||
ProcPtr compRoutine,
|
||||
DSPParamBlock *dsp) //26fca
|
||||
{
|
||||
struct TRioParams *params = &(dsp->u.ioParams);
|
||||
|
||||
dsp->csCode = dspRead;
|
||||
dsp->ioCompletion = compRoutine;
|
||||
|
||||
params->reqCount = reqCount;
|
||||
params->dataPtr = dataPtr;
|
||||
|
||||
return DMFix(PBControl(dsp, async), dsp);
|
||||
// ROM:00126FCA link a6,#0
|
||||
// ROM:00126FCE movem.l a3-a4,-(sp)
|
||||
// ROM:00126FD2 movea.l $18(a6),a4
|
||||
// ROM:00126FD6 lea $22(a4),a3
|
||||
|
||||
// ROM:00126FDA move.w #$F6,$1A(a4)
|
||||
// ROM:00126FE0 move.l $14(a6),$C(a4)
|
||||
|
||||
// ROM:00126FE6 move.w $A(a6),(a3)
|
||||
// ROM:00126FEA move.l $C(a6),4(a3)
|
||||
|
||||
// ROM:00126FF0 move.l a4,-(sp)
|
||||
// ROM:00126FF2 subq.l #2,sp
|
||||
// ROM:00126FF4 move.l a4,-(sp)
|
||||
// ROM:00126FF6 move.b $13(a6),-(sp)
|
||||
// ROM:00126FFA ori.b #$DF,d5
|
||||
// ROM:00126FFE move.w (sp)+,d0
|
||||
// ROM:00127000 ext.l d0
|
||||
// ROM:00127002 move.l d0,-(sp)
|
||||
// ROM:00127004 ori.b #$20,d0
|
||||
// ROM:00127008 movem.l -8(a6),a3-a4
|
||||
// ROM:0012700E unlk a6
|
||||
// ROM:00127010 rts
|
||||
}
|
@ -1,3 +1,11 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 EXPORT the resident SCSIBusyVector so that install code can set it.
|
||||
; This was broken before, but by which change?
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;_______________________________________________________________________________________
|
||||
;
|
||||
; File: SCSILinkPatch.a
|
||||
@ -493,6 +501,7 @@ SCSIBusyCommon
|
||||
;
|
||||
; In SuperMario, this is part of SCSIGlobals.
|
||||
|
||||
EXPORT SCSIBusyVector ; <Sys7.1>
|
||||
FreeHookPending dc.l 0 ; location of pending free-hook flag
|
||||
SCSIBusyVector dc.l 0
|
||||
|
||||
|
@ -1,3 +1,11 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Partly reverted <SM10>, removing check for 040+VM from MOVE16 workaround
|
||||
; Ripped out the (conditional) nops from <SM8>
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: SCSIMgr96.a
|
||||
;
|
||||
@ -622,12 +630,7 @@ dataCommon_96
|
||||
|
||||
|
||||
@data_end
|
||||
cmpi.b #cpu68040,CPUFlag ; Do we have an 040? <SM10>
|
||||
bne.s @TheRealExit ; -> No. No MOVE16. No Problem.
|
||||
cmpi.l #-1,VMGlobals ; VM running?
|
||||
beq.s @TheRealExit ; -> No, no VM, no problem
|
||||
|
||||
|
||||
; ex<SM10> <Sys7.1> Don't restrict this workaround to 040s running VM
|
||||
;--- Flush the cache line that contains location 8 (because of MOVE16 bug) <3> thru next <3>
|
||||
|
||||
movem.l D0-D2, -(sp)
|
||||
@ -673,9 +676,6 @@ DoSCSIComplete_96
|
||||
bne.w @phaseErr ;
|
||||
@inPhase ; we should be in status phase.
|
||||
move.b #cCmdComp, rCMD(a3) ; load cmd complete code
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
jsr WaitForSCSIIntrp ; Wait for intrp w/ timeout
|
||||
; on exit d5 = rF0S|rINT|0|rSTA
|
||||
beq.w @noStatus ; Branch if timedout
|
||||
@ -695,9 +695,6 @@ DoSCSIComplete_96
|
||||
; ;bne.s @cmdErr <T8> from last <T8>
|
||||
|
||||
move.b #cMsgAcep, rCMD(a3) ; load msg accepted code which de-asserts *ACK
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
jsr WaitForSCSIIntrp ; Wait for intrp w/ timeout
|
||||
; on exit d5 = rFOS|rINT|0|rSTA
|
||||
beq.w @badAcpt ; Branch if timedout
|
||||
@ -835,9 +832,6 @@ Select_96
|
||||
; Set up chip for select process (flush FIFO, init dest ID)
|
||||
move.b d0, rDID(a3) ; load select bus ID w/ target ID
|
||||
move.b #cFlshFFO, rCMD(a3) ; Flush FIFO, make sure it's empty
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
|
||||
btst.l #16, d0 ; is this a Sel w/Atn?
|
||||
bne.s @withAtn
|
||||
@ -847,9 +841,6 @@ Select_96
|
||||
move.b zeroReg, rXCM(a3) ; tell chip that we will be sending 1
|
||||
move.b #1, rXCL(a3) ; DMA byte (in command phase)
|
||||
move.b #cDMASelWOAtn, rCMD(a3) ; issue Select w/o Atn cmd
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
bset.b #NeedCmdSent, G_State96(a4) ; flag=expect to see a COMMAND phase next <T9>
|
||||
bra.s @2
|
||||
|
||||
@ -858,9 +849,6 @@ Select_96
|
||||
move.b zeroReg, rXCM(a3) ; tell chip that we will be sending 2
|
||||
move.b #1, rXCL(a3) ; DMA bytes (1 in msg_out, 1 in command)
|
||||
move.b #cDMASelWAtn, rCMD(a3) ; issue Select w/ Atn cmd
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
bset.b #NeedMsgOut, G_State96(a4) ; flag=expect to see a MESSAGE_OUT phase next <T9>
|
||||
@2
|
||||
bset.b #SelInProg, G_State96(a4) ; set flag->select is in prog, expect intrpt <T8><T9>
|
||||
@ -899,11 +887,7 @@ Select_96
|
||||
;———————————————————
|
||||
@waitLoop
|
||||
; Check for a REQ from the target (within valid phase)
|
||||
IF forPDMDebug THEN ; <SM8>
|
||||
move.b (a0), d5 ; read DAFB regr (a0=DAFB register addr)
|
||||
ELSE
|
||||
move.l (a0), d5 ; read DAFB regr (a0=DAFB register addr)
|
||||
ENDIF
|
||||
move.b G_bitDREQ(a4),d0 ; load DREQ bit position <4> jab
|
||||
btst.l d0, d5 ; DREQ ? <4> jab
|
||||
bne.s @gotDREQ ; yes: then we have a REQ for Msg_Out or Cmd byte
|
||||
@ -1016,9 +1000,6 @@ SendCMD_96
|
||||
@btmLoadFIFO ; <T9>
|
||||
dbra d2, @loadFIFO ; last byte in order to satisfy the c96's DMA <T2>
|
||||
; circuitry & get us that intrp. <T2>
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
|
||||
btst.b #NeedCmdSent, G_State96(a4) ; were we expecting a command phase here? <2> thru next <2>
|
||||
beq.s @skipDMA
|
||||
@ -1039,9 +1020,6 @@ SendCMD_96
|
||||
and.b rSTA(a3), d1 ; get phase bits before sending last byte <2> from prev <2>
|
||||
|
||||
move.b (a2)+, rDMA(a3) ; Use psuedo DMA to load last byte <T2>
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
|
||||
bclr.b #NeedCmdSent,G_State96(a4) ; no longer need command sent and, <T9>
|
||||
bset.b #FCIntPend,G_State96(a4) ; now we can expect a FunctionCmplt interrupt <T9>
|
||||
@ -1059,9 +1037,6 @@ SendCMD_96
|
||||
moveq.l #noErr, d0 ; no error <T9>
|
||||
@cmdExit ; At this point, we're out of cmd phase
|
||||
and.b #$FF-SlowCableMode,rCF1(a3) ; turn-off Slow cable mode <T9>
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
tst.w d0 ;
|
||||
rts
|
||||
|
||||
@ -1095,9 +1070,6 @@ SendCMD_96
|
||||
bclr.b #NeedMsgOut, G_State96(a4) ; and Message_Out <Taa>
|
||||
bclr.b #NeedCmdSent, G_State96(a4) ; and Command expected flags <Taa>
|
||||
move.b #cFlshFFO, rCMD(a3) ; flush the FIFO of unused Command bytes
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
@phaseErr
|
||||
moveq.l #scPhaseErr, d0 ; phase error <T5>
|
||||
move.l #scsiCmd, d6 ; load proc ID <T5>
|
||||
@ -1132,9 +1104,6 @@ GetMsg_96
|
||||
bne.s @phaseErr ;
|
||||
|
||||
move.b #cIOXfer, rCMD(a3) ; load Transfer cmd byte in CMD regr
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
jsr WaitForSCSIIntrp ; Wait for intrp w/ timeout <T3>
|
||||
; on exit d5 = xxxx|rSQS|rSTA|rINT
|
||||
beq.s @timedOut ; Branch if timedout
|
||||
@ -1142,9 +1111,6 @@ GetMsg_96
|
||||
move.b rFFO(a3), d2 ; xfer fifo msg byte into d2 w/ *ACK still asserted
|
||||
; now, unconditionally accept the message byte
|
||||
move.b #cMsgAcep, rCMD(a3) ; load msg accepted code which de-asserts *ACK
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
jsr WaitForSCSIIntrp ; Wait for intrp w/ timeout <T3>
|
||||
; on exit d5 = rFOS|rINT|0|rSTA
|
||||
beq.s @timedOut ; Branch if timedout
|
||||
@ -1204,9 +1170,6 @@ SendMsg_96
|
||||
@inPhase ; We probably got here from Select w/ATN which means
|
||||
; ATN is deasserted prior to transfer of msg byte
|
||||
move.b d2, rFFO(a3) ; xfer msg byte
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
bclr.b #NeedMsgOut,G_State96(a4) ; did we send a Select w/ATN?
|
||||
beq.s @needXfer ; no - just split
|
||||
bset.b #NeedCmdSent,G_State96(a4) ; yes - we took care of MsgOut, now we need to send command
|
||||
@ -1303,14 +1266,14 @@ CyclePhase_96 ; (accessed thru jvCyclePhase)
|
||||
moveq.l #iPhaseMsk, d0 ; load mask bits for phase value
|
||||
and.b rSTA(a3), d0 ; get phase bits
|
||||
|
||||
; cmp #iDataOut, d0 ;
|
||||
beq.s @inDataPhase ;
|
||||
|
||||
cmp #iDataIn, d0 ;
|
||||
beq.s @inDataPhase ;
|
||||
|
||||
cmp #iDataOut, d0 ;
|
||||
beq.s @inDataPhase ;
|
||||
|
||||
cmp #iCommand, d0 ;
|
||||
beq @shoveCommand ;
|
||||
beq.s @shoveCommand ;
|
||||
|
||||
cmp #iMsgOut, d0 ;
|
||||
beq.w @shoveMsgOut ;
|
||||
@ -1360,9 +1323,6 @@ CyclePhase_96 ; (accessed thru jvCyclePhase)
|
||||
; Dump out data_out bytes until we've gone into another phase
|
||||
@shoveDataOut
|
||||
move.b #$EE, rFFO(a3) ; load filler byte into FIFO
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
jsr Xfer1Byte ; xfer 1 byte and wait for intrp w/o timeout
|
||||
; on exit d5 = rFOS|rINT|0|rSTA
|
||||
bne.s @xferErr ; bra. on xfer error
|
||||
@ -1374,9 +1334,6 @@ CyclePhase_96 ; (accessed thru jvCyclePhase)
|
||||
bclr.b #NeedCmdSent, G_State96(a4) ; did we expect this?
|
||||
beq.s @nonDMA ; no - bra, do xfer using FIFO
|
||||
move.b #$EE, rDMA(a3) ; yes - use DMA (since chip is waiting for it)
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
bset.b #FCIntPend,G_State96(a4) ; we took care of cmd, now expect FC interrupt
|
||||
jsr WaitForSCSIIntrp
|
||||
beq.s @timedOut ; bra if timedout
|
||||
@ -1386,9 +1343,6 @@ CyclePhase_96 ; (accessed thru jvCyclePhase)
|
||||
bra.s @2 ; trying again is as good as anything else
|
||||
@nonDMA
|
||||
move.b #$EE, rFFO(a3) ; load filler byte into FIFO
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
jsr Xfer1Byte ; xfer 1 byte and wait for intrp w/o timeout
|
||||
bne.s @xferErr ; bra. on xfer error
|
||||
@2
|
||||
@ -1398,9 +1352,6 @@ CyclePhase_96 ; (accessed thru jvCyclePhase)
|
||||
; Dump out message_out bytes until we've gone into another phase
|
||||
@shoveMsgOut
|
||||
move.b #$08, rFFO(a3) ; load filler byte into FIFO (NOP message)
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
bclr.b #NeedMsgOut, G_State96(a4) ; did we expect this?
|
||||
beq.s @needXferCmd ; no - branch
|
||||
bset.b #NeedCmdSent,G_State96(a4) ; yes - taking care of MsgOut, now we need cmd
|
||||
@ -1418,9 +1369,6 @@ CyclePhase_96 ; (accessed thru jvCyclePhase)
|
||||
bne.s @xferErr ; bra. on xfer error
|
||||
move.b rFFO(a3), d0 ; just empty the FIFO
|
||||
move.b #cMsgAcep, rCMD(a3) ; load msg accepted code which de-asserts ACK
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
jsr WaitForSCSIIntrp ; Wait for intrp w/ timeout
|
||||
; on exit d5 = rFOS|rINT|0|rSTA
|
||||
bra.s @checkNextPhase
|
||||
@ -1449,11 +1397,7 @@ CyclePhase_96 ; (accessed thru jvCyclePhase)
|
||||
@pDMAread
|
||||
btst.b #bINT, rSTA(a3) ; poll for intrp hopefully from TC zero
|
||||
bne.s @readAll ; bra. if we got one
|
||||
IF forPDMDebug THEN ; <SM8>
|
||||
move.b (a0), d5 ; read DAFB regr (a0=DAFB register addr)
|
||||
ELSE
|
||||
move.l (a0), d5 ; read DAFB regr (a0=DAFB register addr)
|
||||
ENDIF
|
||||
move.b G_bitDREQ(a4),d0 ; load DREQ bit position <4> jab
|
||||
btst.l d0, d5 ; DREQ ? <4> jab
|
||||
beq.s @pDMAread ; bra. if inactive
|
||||
@ -1470,18 +1414,11 @@ CyclePhase_96 ; (accessed thru jvCyclePhase)
|
||||
@pDMAwrite
|
||||
btst.b #bINT, rSTA(a3) ; poll for intrp hopefully from TC zero
|
||||
bne.s @writeAll ; bra. if we filled all data
|
||||
IF forPDMDebug THEN ; <SM8>
|
||||
move.b (a0), d5 ; read DAFB regr (a0=DAFB register addr)
|
||||
ELSE
|
||||
move.l (a0), d5 ; read DAFB regr (a0=DAFB register addr)
|
||||
ENDIF
|
||||
move.b G_bitDREQ(a4),d0 ; load DREQ bit position <4> jab
|
||||
btst.l d0, d5 ; DREQ ? <4> jab
|
||||
beq.s @pDMAwrite ; bra. if inactive
|
||||
move.w #$EEEE, rDMA(a3) ; load filler data into FIFO
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM8>
|
||||
endif
|
||||
bra.s @pDMAwrite
|
||||
@writeAll ; Intrp will occur when REQ is asserted for the next phase
|
||||
jsr WaitForIntNoTime ; Expecting an intrp, clear it when occurs
|
||||
@ -1534,11 +1471,7 @@ TestForDREQ
|
||||
jsr SwapMMU ; (sets up d0 with previous mode)
|
||||
|
||||
move.l G_SCSIDREQ(a4), a0 ; G_SCSIDREQ contains DREQ regr address
|
||||
IF forPDMDebug THEN ; <SM8>
|
||||
move.b (a0), d5 ; read DAFB regr (a0=DAFB register addr)
|
||||
ELSE
|
||||
move.l (a0), d5 ; read DAFB regr (a0=DAFB register addr)
|
||||
ENDIF
|
||||
|
||||
jsr SwapMMU ; return to previous mode (in d0)
|
||||
|
||||
|
@ -1,3 +1,13 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <SM9> boxFlag checks and tacked-on flags from <SM14>/<SM16>
|
||||
; Commented out the nonSerializedIO nops from <SM7> and <SM12>, and
|
||||
; restored a short branch that the nops blew out
|
||||
; Restored useless MaxBusErr code to Transfer_96 (from SCSIMgrHW96BIOS.a)
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: SCSIMgrHW96.a
|
||||
;
|
||||
@ -166,13 +176,13 @@ InitHW_SCSI96
|
||||
|
||||
move.b #cRstSChp, rCMD(a3) ; Reset the Chip (not the bus)
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM12>
|
||||
; nop ; Force write to complete. <SM12><Sys7.1>
|
||||
endif
|
||||
move.b #cNOP, rCMD(a3) ; C96 NOP required after HW or SW reset
|
||||
move.b #cFlshFFO, rCMD(a3) ; Flush FIFO
|
||||
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM12>
|
||||
; nop ; Force write to complete. <SM12><Sys7.1>
|
||||
endif
|
||||
move.b #initCF1, rCF1(a3) ; load init config. value which affects:
|
||||
; busID, SCSI reset reporting & parity checking
|
||||
@ -181,47 +191,20 @@ InitHW_SCSI96
|
||||
|
||||
move.b #initCF3, rCF3(a3) ; load init config. value
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
|
||||
; Check whether or not we're 25 or 33MHz and set SCSI bus speed values appropriately <T6> thru next <T6>
|
||||
|
||||
TestFor VIA2Exists ; see if we should check 25/33MHz VIA2 bit
|
||||
beq @dontChk ; if there's not a VIA2, don't do it.
|
||||
beq.s @dontChk ; if there's not a VIA2, don't do it. ex<SM9> <Sys7.1>
|
||||
TestFor DAFBExists ; vs BoxFlags for Spike/Eclipse/Zydeco ex<SM9> <Sys7.1>
|
||||
beq.s @dontChk ; if there's not a DAFB ex<SM9> <Sys7.1>
|
||||
|
||||
; Change to check for BoxFlags for Spike/Eclipse/Zydeco, instead of DAFBExists, since this
|
||||
; special stuff only applies to those 3 machines. <SM9>
|
||||
|
||||
move.l UnivInfoPtr,A0 ; get pointer to universal table
|
||||
cmp.b #BoxQuadra700,ProductInfo.ProductKind(A0) ; check for a Spike
|
||||
beq.s @DoSpikeEclipseZydeco ; Special setup for Spike/Eclipse/Zydeco
|
||||
cmp.b #BoxQuadra900,ProductInfo.ProductKind(A0) ; check for a Eclipse
|
||||
beq.s @DoSpikeEclipseZydeco ; Special setup for Spike/Eclipse/Zydeco
|
||||
cmp.b #BoxQuadra950,ProductInfo.ProductKind(A0) ; check for a Zydeco
|
||||
beq.s @DoSpikeEclipseZydeco ; Special setup for Spike/Eclipse/Zydeco
|
||||
IF forSmurf THEN
|
||||
cmp.b #boxRiscQuadra700,ProductInfo.ProductKind(A0) ; check for a RISC Spike <SM15>
|
||||
beq.s @DoSpikeEclipseZydeco ; Special setup for Spike/Eclipse/Zydeco <SM15>
|
||||
cmp.b #boxRiscQuadra900,ProductInfo.ProductKind(A0) ; check for a RISC Quadra900<SM15>
|
||||
beq.s @DoSpikeEclipseZydeco ; Special setup for Spike/Eclipse/Zydeco <SM15>
|
||||
cmp.b #boxRiscQuadra950,ProductInfo.ProductKind(A0) ; check for a RISC Quadra950<SM15>
|
||||
beq.s @DoSpikeEclipseZydeco ; Special setup for Spike/Eclipse/Zydeco <SM15>
|
||||
cmp.b #boxRiscCentris610,ProductInfo.ProductKind(A0) ; check for a RISC Centris610<SM15>
|
||||
beq.s @DoSpikeEclipseZydeco ; Special setup for Spike/Eclipse/Zydeco <SM15>
|
||||
cmp.b #boxRiscCentris650,ProductInfo.ProductKind(A0) ; check for a RISC Centris650<SM15>
|
||||
beq.s @DoSpikeEclipseZydeco ; Special setup for Spike/Eclipse/Zydeco <SM15>
|
||||
cmp.b #boxRiscQuadra800,ProductInfo.ProductKind(A0) ; check for a RISC Quadra800<SM15>
|
||||
beq.s @DoSpikeEclipseZydeco ; Special setup for Spike/Eclipse/Zydeco <SM15>
|
||||
cmp.b #boxRiscQuadra610,ProductInfo.ProductKind(A0) ; check for a RISC Quadra610<SM16>
|
||||
beq.s @DoSpikeEclipseZydeco ; Special setup for Spike/Eclipse/Zydeco <SM16>
|
||||
cmp.b #boxRiscQuadra650,ProductInfo.ProductKind(A0) ; check for a RISC Quadra650<SM16>
|
||||
beq.s @DoSpikeEclipseZydeco ; Special setup for Spike/Eclipse/Zydeco <SM16>
|
||||
ENDIF ; for Smurf
|
||||
bra.s @dontChk ; only Spike/Eclipse have a VIA2 and DAFB
|
||||
|
||||
@DoSpikeEclipseZydeco ; <SM9>
|
||||
move.l a0,-(sp) ; needlessly save a0... ex<SM9> <Sys7.1>
|
||||
move.l VIA2,a0 ; and get VIA2 so that we can check the speed bit
|
||||
move.b vBufB(a0),d0 ; read PBx values for 25/33MHz checks
|
||||
move.l (sp)+,a0 ; ...and restore a0 ex<SM9> <Sys7.1>
|
||||
btst #v2Speed,d0 ; are we 25 MHz or 33 Mhz?
|
||||
beq.s @25MHz ; IF Speed == 33MHz THEN
|
||||
move.l #tsc_cf_stg_33,(a4) ; setup DAFB SCSI config register.
|
||||
@ -245,20 +228,6 @@ InitHW_SCSI96
|
||||
move.l UnivInfoPtr,A0 ; get pointer to universal table <T9>
|
||||
cmp.b #boxQuadra700,ProductInfo.ProductKind(A0) ; check for a Spike <T9><2>
|
||||
beq.s @ForSpike ; (note - BoxFlag is not defined yet!) <T9>
|
||||
IF forSmurf THEN
|
||||
cmp.b #boxRiscQuadra700,ProductInfo.ProductKind(A0) ; check for a RISC Quadra700 <SM15>
|
||||
beq.s @ForSpike ; (note - BoxFlag is not defined yet!) <SM15>
|
||||
cmp.b #boxRiscCentris610,ProductInfo.ProductKind(A0) ; check for a RISC Centris610 <SM15>
|
||||
beq.s @ForSpike ; (note - BoxFlag is not defined yet!) <SM15>
|
||||
cmp.b #boxRiscCentris650,ProductInfo.ProductKind(A0) ; check for a RISC Centris650 <SM15>
|
||||
beq.s @ForSpike ; (note - BoxFlag is not defined yet!) <SM15>
|
||||
cmp.b #boxRiscQuadra800,ProductInfo.ProductKind(A0) ; check for a RISC Quadra800 <SM15>
|
||||
beq.s @ForSpike ; (note - BoxFlag is not defined yet!) <SM15>
|
||||
cmp.b #boxRiscQuadra610,ProductInfo.ProductKind(A0) ; check for a RISC Quadra610 <SM16>
|
||||
beq.s @ForSpike ; <SM16>
|
||||
cmp.b #boxRiscQuadra650,ProductInfo.ProductKind(A0) ; check for a RISC Quadra650 <SM16>
|
||||
beq.s @ForSpike ; <SM16>
|
||||
ENDIF ; for Smurf
|
||||
|
||||
; Check for difference between 25 and 33MHz Eclipse machines: <T6>
|
||||
|
||||
@ -301,7 +270,7 @@ InitHW_SCSI96
|
||||
; synch data xfer
|
||||
@4
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
move.b rINT(a3), d0 ; read & clear rFOS, rSTA & rINT into throwaway <T6>
|
||||
rts
|
||||
@ -400,6 +369,12 @@ linkSize EQU *
|
||||
|
||||
Transfer_96:
|
||||
link a6, #linkSize ; allocate local storage
|
||||
|
||||
moveq #Max020030BusErrs,d0 ; upper limit for 020s and 030s <Sys7.1>
|
||||
cmp.b #cpu68040,CpuFlag ; check if we're on an 040 <Sys7.1>
|
||||
bne.s @storeValue ; NO ... leave BusErrCount alone <Sys7.1>
|
||||
moveq #Max040BusErrs,d0 ; YES ... use 040 MaxBusErr value <Sys7.1>
|
||||
@storeValue ; <Sys7.1>
|
||||
move.l #0, BusErrAddr(a6) ; init so first bus err is seen as a new one
|
||||
|
||||
moveq.l #noErr, d0 ; assume no error
|
||||
@ -418,7 +393,7 @@ Transfer_96:
|
||||
|
||||
move.b #cFlshFFO, rCMD(a3) ; Flush FIFO <T8>
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
|
||||
; move.l BusErrVct, D0 ; compare old vector (at 8) <2> <3>removed
|
||||
@ -478,7 +453,7 @@ Transfer_96:
|
||||
OneByteRead ; <T2> thru next <T2>
|
||||
move.b #cIOXfer, rCMD(a3) ; load IO transfer cmd & begin xfers
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
jsr.w WaitForIntNoTime ; Wait for intrp w/o timeout
|
||||
; on exit d5 = rFOS|rINT|0|rSTA
|
||||
@ -494,11 +469,11 @@ OneByteRead ; <T2> thru next <T2>
|
||||
OneByteWrite
|
||||
move.b (a2)+, rFFO(a3) ; preload the FIFO
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
move.b #cIOXfer, rCMD(a3) ; load IO transfer cmd & begin xfers
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM12>
|
||||
; nop ; Force write to complete. <SM12><Sys7.1>
|
||||
endif
|
||||
jsr.w WaitForIntNoTime ; Wait for intrp w/o timeout
|
||||
; on exit d5 = rFOS|rINT|0|rSTA
|
||||
@ -522,7 +497,7 @@ errExit
|
||||
clr.l d1 ; no bytes transferred
|
||||
move.b #cFlshFFO, rCMD(a3) ; Flush FIFO
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
rts ; <T4>
|
||||
|
||||
@ -553,7 +528,7 @@ errExit
|
||||
Xfer1Byte
|
||||
move.b #cIOXfer, rCMD(a3) ; load IO transfer cmd & begin xfers
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
jsr.w WaitForIntNoTime ; Wait for intrp w/o timeout
|
||||
; on exit d5 = rFOS|rINT|0|rSTA
|
||||
@ -630,7 +605,7 @@ SlowRead_96
|
||||
move.b #0, rXCM(a3) ; rXCM = 0, clear most-sig. byte count
|
||||
move.b #$10, rXCL(a3) ; rXCL = 16 bytes, least-sig. byte value
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
and.l #$F, d2 ; d2 = remainder word count after 16-byte moves
|
||||
@read16
|
||||
@ -709,7 +684,7 @@ SlowRead_96
|
||||
bne.s @phaseErr ; bra. on phase err
|
||||
move.b #cIOXfer, rCMD(a3) ; load IO transfer cmd & begin xfers
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
@3
|
||||
btst.b #bINT, rSTA(a3) ; check for c96 INTRP
|
||||
@ -780,7 +755,7 @@ SlowRead_96
|
||||
jsr Error ; call Error proc - for debug
|
||||
move.b #cFlshFFO, rCMD(a3) ; Flush FIFO
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
rts ; <T5>
|
||||
|
||||
@ -834,7 +809,7 @@ SlowWrite_96
|
||||
move.l d2, d6 ; d6 = number 64KB block to perform
|
||||
swap d6 ; upper word of d6 = lower word of d2
|
||||
andi.l #$0000FFFF, d2 ; mask out upper word
|
||||
beq @2 ; if 0 then we have $10000 (64K) bytes to xfer
|
||||
beq.s @2 ; if 0 then we have $10000 (64K) bytes to xfer ex<SM7> ex<SM12> <Sys7.1>
|
||||
@next64KB
|
||||
moveq.l #iPhaseMsk, d3 ; load mask bits for phase value
|
||||
and.b rSTA(a3), d3 ; are we still in data-out phase?
|
||||
@ -847,7 +822,7 @@ SlowWrite_96
|
||||
lsr.l #8, d4 ; get upper byte of low word
|
||||
move.b d4, rXCM(a3) ; TC regr (most-sig. byte) <- d4.b
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM12>
|
||||
; nop ; Force write to complete. <SM12><Sys7.1>
|
||||
endif
|
||||
move.b #cDMAXfer, rCMD(a3) ; load DMA transfer cmd & begin xfers
|
||||
nop ; squoosh pipeline <T8>
|
||||
@ -891,7 +866,7 @@ SlowWrite_96
|
||||
@residual
|
||||
move.b (a2)+, rDMA(a3) ; xfer residual byte <T8>
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
@noResidual
|
||||
bsr.w WaitForIntNoTime ; Wait for intrp w/o timeout
|
||||
@ -938,7 +913,7 @@ SlowWrite_96
|
||||
jsr Error ; call Error proc - for debug
|
||||
move.b #cFlshFFO, rCMD(a3) ; Flush FIFO <T4>
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
rts ;
|
||||
|
||||
@ -991,7 +966,7 @@ FastWrite_96
|
||||
@doWrite
|
||||
move.b #cFlshFFO, rCMD(a3) ; Flush FIFO <T8>
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
moveq.l #iPhaseMsk, d0 ;
|
||||
and.b rSTA(a3), d0 ; are we in data-out phase?
|
||||
@ -1014,12 +989,12 @@ FastWrite_96
|
||||
lsr.l #8, d4 ; get upper byte of low word
|
||||
move.b d4, rXCM(a3) ; TC regr (most-sig. byte) <- d4.b
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM12>
|
||||
; nop ; Force write to complete. <SM12><Sys7.1>
|
||||
endif
|
||||
move.b #cDMAXfer, rCMD(a3) ; load DMA transfer cmd & begin xfers
|
||||
; DREQ* should be active at this time
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
move.w d2, d4 ; d4 = copy of transfer count
|
||||
lsr.w #5, d4 ; divide xfer count by 32
|
||||
@ -1057,7 +1032,7 @@ FastWrite_96
|
||||
@residual
|
||||
move.b (a2)+, rDMA(a3) ; xfer residual byte <T8>
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
@noResidual
|
||||
bsr.w WaitForIntNoTime ; Wait for intrp w/o timeout
|
||||
@ -1075,7 +1050,7 @@ FastWrite_96
|
||||
subq.l #1, d2 ; adjust for transfer count calc
|
||||
move.b (a2)+, rFFO(a3) ; ...preload fifo with odd byte <T4> thru next <T4>
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
bra.w @next64KB ; now we're word aligned
|
||||
@phaseErr
|
||||
@ -1101,7 +1076,7 @@ FastWrite_96
|
||||
jsr Error ; call Error proc - for debug
|
||||
move.b #cFlshFFO, rCMD(a3) ; Flush FIFO <T4>
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
rts ;
|
||||
|
||||
@ -1153,7 +1128,7 @@ FastRead_96
|
||||
@doRead
|
||||
move.b #cFlshFFO, rCMD(a3) ; Flush FIFO <T8>
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
moveq.l #iPhaseMsk, d0 ; load mask for phase bits <T4> thru next <T4>
|
||||
and.b rSTA(a3), d0 ; are we in data-in phase?
|
||||
@ -1175,7 +1150,7 @@ FastRead_96
|
||||
move.b #cDMAXfer, rCMD(a3) ; load DMA transfer cmd & begin xfers
|
||||
; DREQ* should be active at this time
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
; move.l a2, d5 ;
|
||||
; btst.l #0, d5 ; check if input buffer is on word boundary
|
||||
@ -1258,7 +1233,7 @@ FastRead_96
|
||||
jsr Error ; call Error proc - for debug
|
||||
move.b #cFlshFFO, rCMD(a3) ; Flush FIFO <T4>
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
rts ;
|
||||
|
||||
@ -1304,7 +1279,7 @@ ResetBus_96
|
||||
move.b #cRstSBus, rCMD(a3) ; load reset scsi bus cmd <T3>
|
||||
; re-enable all intrps
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
rts
|
||||
|
||||
@ -1379,7 +1354,7 @@ HandleSelInProg
|
||||
bsr.w WaitForIntNoTime
|
||||
move.b #cFlshFFO, rCMD(a3) ; Flush FIFO <3>
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
moveq.l #0, d0
|
||||
bra.s @gotInt
|
||||
@ -1565,7 +1540,7 @@ FastComp_96
|
||||
move.b #cDMAXfer, rCMD(a3) ; load DMA transfer cmd & begin xfers
|
||||
; DREQ* should be active at this time
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
|
||||
ror.l #1, d2 ; xfer byte count to word & remember odd byte
|
||||
@ -1615,7 +1590,7 @@ FastComp_96
|
||||
jsr Error ; call Error proc - for debug
|
||||
move.b #cFlshFFO, rCMD(a3) ; Flush FIFO
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
rts ;
|
||||
|
||||
@ -1691,7 +1666,7 @@ SlowComp_96
|
||||
@read16
|
||||
move.b #cDMAXfer, rCMD(a3) ; load DMA transfer cmd & start loading FIFO
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
@1 ; currently loaded transfer count is used/reused
|
||||
btst.b #bINT, rSTA(a3) ; poll for unexpected intrp while waiting
|
||||
@ -1741,7 +1716,7 @@ SlowComp_96
|
||||
bne.s @phaseErr ; bra. on phase err
|
||||
move.b #cIOXfer, rCMD(a3) ; load IO transfer cmd & begin xfers
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
@3
|
||||
btst.b #bINT, rSTA(a3) ; check for c96 INTRP
|
||||
@ -1789,7 +1764,7 @@ SlowComp_96
|
||||
jsr Error ; call Error proc - for debug
|
||||
move.b #cFlshFFO, rCMD(a3) ; Flush FIFO
|
||||
if nonSerializedIO Then
|
||||
nop ; Force write to complete. <SM7>
|
||||
; nop ; Force write to complete. <SM7><Sys7.1>
|
||||
endif
|
||||
rts ; <T5>
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted PDM-specific <SM8>
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: SCSIMgrInit96.a
|
||||
;
|
||||
@ -57,7 +64,7 @@
|
||||
; don't print includes
|
||||
|
||||
LOAD 'StandardEqu.d' ; from StandardEqu.a and for building ROMs
|
||||
INCLUDE 'HardwareEqu.a' ; <T2>
|
||||
INCLUDE 'HardwarePrivateEqu.a' ; <T2>
|
||||
INCLUDE 'SCSI.a'
|
||||
INCLUDE 'SCSIPriv.a'
|
||||
INCLUDE 'UniversalEqu.a' ; for TestFor <T2>
|
||||
@ -193,11 +200,7 @@ InitMgr_SCSI96
|
||||
|
||||
clr.b G_bitDREQ(a4) ; initialize bit position of DREQ regr <H4> thru to next <H4> jab
|
||||
|
||||
TestFor HMCDecoder ; are we PDM ? <SM8>
|
||||
beq.s @notPDM
|
||||
move.b #bDREQ_PDM,G_bitDREQ(a4) ; setup bit location of DREQ check
|
||||
move.l #SCSI0_DREQ_PDM,pdma5380(a4) ; setup DREQ location
|
||||
bra.s @chk2Bus ; <SM8>
|
||||
; Removed code to set DREQ register location (G_bitDREQ, pdma5380) on PDM ex<SM8><Sys7.1>
|
||||
|
||||
@notPDM cmpi.b #boxQuadra700,BoxFlag ; are we a Quadra 700?
|
||||
beq.s @wereQuadra ; yes ... set our DREQ location
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Changed <26> to treat "useFree" the same as "useATalk".
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: BeforePatches.a (formerly RomAllFix.a)
|
||||
;
|
||||
@ -585,6 +592,7 @@ RAMSysInit PROC EXPORT
|
||||
|
||||
move.b SPConfig,d0 ; <26> Get serial port configuration
|
||||
and.b #$0f,d0 ; <26> Mask off Port B bits
|
||||
beq.s @appleTalkIsActive ; <Sys7.1> Treat "useFree" as AppleTalk=active.
|
||||
cmp.b #useATalk,d0 ; <26> Configured for AppleTalk?
|
||||
beq.s @appleTalkIsActive ; <26> Yes. Don’t set emAppleTalkInactiveOnBoot
|
||||
|
||||
|
55
Patches/EDiskLocalNamePatch.a
Normal file
55
Patches/EDiskLocalNamePatch.a
Normal file
@ -0,0 +1,55 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Disassembled from scratch
|
||||
;
|
||||
|
||||
LOAD 'StandardEqu.d'
|
||||
INCLUDE 'SysEqu.a'
|
||||
INCLUDE 'EDiskEqu.a'
|
||||
INCLUDE 'LinkedPatchMacros.a'
|
||||
|
||||
|
||||
ROMInternalRAMDiskString RomBind (IIci,$E7DAA)
|
||||
|
||||
|
||||
EDiskShutdownPtch InstallProc (IIci,hasTERROR)
|
||||
lea DrvQHdr+QHead-QLink,a2
|
||||
@dqloop move.l (a2),d0
|
||||
beq.s @return
|
||||
move.l d0,a2 ; follow link
|
||||
move.w dQRefNum(a2),d0 ; calculate unit table offset from refNum
|
||||
add.w #1,d0
|
||||
neg.w d0
|
||||
asl.w #2,d0
|
||||
move.l UTableBase,a1
|
||||
move.l (a1,d0),a1
|
||||
move.l (a1),a1
|
||||
btst #dRAMBased,DCtlFlags+1(a1)
|
||||
bz.s @romBased
|
||||
move.l (a1),a1 ; ptr to rom or handle to ram
|
||||
@romBased move.l (a1),a1
|
||||
lea drvrName(a1),a1
|
||||
lea #'.EDisk',a0 ; searching for the EDisk drvr
|
||||
clr.l d0
|
||||
move.b (a0),d0
|
||||
@cmploop cmp.b (a0)+,(a1)+
|
||||
bne.s @dqloop ; not the EDisk
|
||||
dbra d0,@cmploop
|
||||
|
||||
move.l EDiskDriveInfo.WhereStringPtr(a2),a1
|
||||
cmpRom ROMInternalRAMDiskString,a1
|
||||
beq.s @isEphemeral
|
||||
cmp.l #$408E7DA0,a1 ; nearby location?
|
||||
bne.s @return
|
||||
@isEphemeral
|
||||
|
||||
subq #4,sp
|
||||
move.w #-16535,-(sp) ; 'Internal RAM Disk'
|
||||
_GetString
|
||||
move.l (sp)+,d0
|
||||
beq.s @return
|
||||
move.l d0,a1
|
||||
move.l (a1),EDiskDriveInfo.WhereStringPtr(a2)
|
||||
|
||||
@return rts
|
1
Patches/EDiskLocalNamePatch.a.idump
Normal file
1
Patches/EDiskLocalNamePatch.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
86
Patches/FinalInitialization.a
Normal file
86
Patches/FinalInitialization.a
Normal file
@ -0,0 +1,86 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Disassembled from scratch
|
||||
;
|
||||
|
||||
LOAD 'StandardEqu.d'
|
||||
INCLUDE 'SysPrivateEqu.a'
|
||||
INCLUDE 'Slots.a'
|
||||
INCLUDE 'LinkedPatchMacros.a'
|
||||
|
||||
|
||||
InitADBDrvr ROMBind (SE,$03C9E),(II,$07724),(Portable,$05BEE),(IIci,$0A7B0)
|
||||
OpenSlots ROMBind (II,$01370),(IIci,$02240)
|
||||
|
||||
|
||||
; Pieced together from StartBoot.a:InitSys7Toolbox
|
||||
|
||||
|
||||
MakeInstall AddFontsToChain,(Plus,SE,II,Portable,IIci)
|
||||
|
||||
|
||||
VMFinalInitialization InstallProc (Plus,SE,II,Portable,IIci,notAUX)
|
||||
; If VM loaded, we need to call MemoryDispatch with selector (-1) so VM can hold the system heap,
|
||||
; unhold the boot stack, patch the cursor task, and enable user mode.
|
||||
|
||||
MOVE.L #$5C,D0 ; _MemoryDispatch
|
||||
_GetOSTrapAddress
|
||||
MOVE.L A0,D1
|
||||
MOVE #$9F,D0 ; _Unimplemented
|
||||
_GetToolTrapAddress
|
||||
CMP.L A0,D1 ; Has VM installed itself?
|
||||
BEQ.S @noVM ; -> No. No Memory Dispatch
|
||||
|
||||
@hasVM MOVEQ #-1,D0 ; Finish VM initialization selector
|
||||
_MemoryDispatch ; Call VM.
|
||||
|
||||
@noVM RTS ; Return to boot3 (or Gibbly)
|
||||
|
||||
|
||||
ADBSecondaryInitialization InstallProc (SE,II,Portable,IIci,notAUX)
|
||||
JMPROM InitADBDrvr ; Another reinit
|
||||
|
||||
|
||||
SlotMgrSecondaryInitializationII InstallProc (II,notAUX)
|
||||
IMPORT Secondary_Init
|
||||
|
||||
SUB.W #spBlock.spBlockSize,SP ; Make room for a slot parameter block on the stack
|
||||
MOVEA.L SP,A0 ; Point A0 to the record
|
||||
BSET #fWarmStart,spBlock.spFlags(A0) ; Set warm start flag
|
||||
JSR Secondary_Init ; Wake everybody up again
|
||||
ADD.W #spBlock.spBlockSize,SP ; Remove the param block from the stack
|
||||
JMPROM OpenSlots ; Open all slot drivers...
|
||||
|
||||
|
||||
SlotMgrSecondaryInitializationIIci InstallProc (IIci,notAUX)
|
||||
SUB.W #spBlock.spBlockSize,SP ; Make room for a slot parameter block on the stack
|
||||
MOVEA.L SP,A0 ; Point A0 to the record
|
||||
BSET #fWarmStart,spBlock.spFlags(A0) ; Set warm start flag
|
||||
_SecondaryInit ; Wake everybody up again
|
||||
ADD.W #spBlock.spBlockSize,SP ; Remove the param block from the stack
|
||||
JMPROM OpenSlots ; Open all slot drivers...
|
||||
|
||||
|
||||
ColorQDSecondaryInitialization InstallProc (II,IIci)
|
||||
IMPORT DavesRandomVideoStuff
|
||||
|
||||
JSR DavesRandomVideoStuff ; re-do CheckDevices and video driver patching.
|
||||
MOVE.L (a5),-(sp) ; point to the same globals we are using now
|
||||
_InitGraf ; catch all the new devices
|
||||
_InitPalettes ,autoPop ; me too...
|
||||
|
||||
|
||||
SetUpIconCluts InstallProc (Plus,SE,II,Portable,IIci)
|
||||
IMPORT MakeIconData
|
||||
|
||||
MOVE.L ExpandMem,a0
|
||||
PEA ExpandMemRec.emIconCluts(a0)
|
||||
JSR MakeIconData
|
||||
RTS
|
||||
|
||||
|
||||
FontMgrSecondaryInitialization InstallProc (Plus,SE,II,Portable,IIci)
|
||||
_InitFonts ,autoPop ; Reinit the font manager (in case a new one's just been loaded)
|
||||
|
||||
END
|
1
Patches/FinalInitialization.a.idump
Normal file
1
Patches/FinalInitialization.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted the credits.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: LoadPatches.a
|
||||
;
|
||||
@ -130,20 +137,25 @@ Failed
|
||||
|
||||
Copyright
|
||||
string asis
|
||||
dc.b '© 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991 Apple Computer Inc.',13
|
||||
dc.b '© 1983-1992 Apple Computer Inc.',13
|
||||
dc.b 'All Rights Reserved.',13
|
||||
dc.b 13
|
||||
dc.b 'Help! Help! We’re being held prisoner in a system software factory!',13
|
||||
dc.b 'Help! Help! We’re still being held prisoner in a system software factory!',13
|
||||
dc.b 13
|
||||
dc.b 'The Blue Meanies',13
|
||||
dc.b 13
|
||||
dc.b 'Darin Adler',13
|
||||
dc.b 'Scott Boyd',13
|
||||
dc.b 'Lew Cirne',13
|
||||
dc.b 'David Collins',13
|
||||
dc.b 'Wayne Correia',13
|
||||
dc.b 'Chris Derossi',13
|
||||
dc.b 'Cynthia Jasper',13
|
||||
dc.b 'Pete Helme',13
|
||||
dc.b 'Fred Huxham',13
|
||||
dc.b 'Don Louv',13
|
||||
dc.b 'Kevin MacDonell',13
|
||||
dc.b 'Brian McGhie',13
|
||||
dc.b 'Greg Marriott',13
|
||||
dc.b 'Beatrice Sochor',13
|
||||
dc.b 'Jeff Miller',13
|
||||
dc.b 'Fred Monroe',13
|
||||
dc.b 'Dean Yu',13
|
||||
align
|
||||
|
||||
|
483
Patches/LowMemoryPrintingPatches.a
Normal file
483
Patches/LowMemoryPrintingPatches.a
Normal file
@ -0,0 +1,483 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Disassembled from scratch
|
||||
;
|
||||
|
||||
LOAD 'StandardEqu.d'
|
||||
INCLUDE 'LinkedPatchMacros.a'
|
||||
INCLUDE 'PrintTrapsEqu.a'
|
||||
INCLUDE 'Folders.a'
|
||||
INCLUDE 'FSEqu.a'
|
||||
INCLUDE 'LayerEqu.a'
|
||||
INCLUDE 'Processes.a'
|
||||
|
||||
|
||||
Globals RECORD 0,INCREMENT
|
||||
gPrmnModDate DS.L 1
|
||||
gPrmnPrefMem DS.L 1
|
||||
gPrmnVolRefNum DS.W 1
|
||||
gPrmnDirID DS.L 1
|
||||
gPrmnNameHand DS.L 1
|
||||
gDialogHit DS.W 1
|
||||
gFlag DS.W 1
|
||||
GlobalSize EQU *
|
||||
ENDR
|
||||
|
||||
|
||||
kCancel EQU 1
|
||||
kPrintLater EQU 2
|
||||
kPrintNow EQU 3
|
||||
|
||||
|
||||
|
||||
InstallLowMemoryPrinting InstallProc (Plus,SE,II,Portable,IIci)
|
||||
WITH Globals
|
||||
|
||||
MOVEQ #22,D0 ; create printing global handle
|
||||
_NewHandle ,sys,clear
|
||||
MOVE.L ExpandMem,A1
|
||||
MOVE.L A0,ExpandMemRec.emLowMemoryPrintingGlobals(A1)
|
||||
MOVE.L A0,A2 ; save printing globals
|
||||
|
||||
SUBQ #4,SP
|
||||
MOVE.L #'STR ',-(SP)
|
||||
MOVE.W #-16601,-(SP) ; "PrintMonitor"
|
||||
_GetResource ; get it in the system heap
|
||||
MOVE.L (A2),A0
|
||||
MOVE.L (SP)+,gPrmnNameHand(A0)
|
||||
RTS
|
||||
|
||||
|
||||
LowMemoryPrintingDialogPatch PatchProc _GetResource,(Plus,SE,II,Portable,IIci)
|
||||
IMPORT lowMemPrintDialog
|
||||
WITH Globals
|
||||
|
||||
MOVE.L ExpandMem,A0
|
||||
MOVE.L ExpandMemRec.emLowMemoryPrintingGlobals(A0),A0
|
||||
MOVE.L (A0),A0
|
||||
TST.B gFlag(A0)
|
||||
BNE.S @keepTesting
|
||||
@jmpOld jmpOld
|
||||
@keepTesting CMP.L #'PREC',6(SP)
|
||||
BNE.S @jmpOld
|
||||
CMP.W #127,4(SP)
|
||||
BNE.S @jmpOld
|
||||
|
||||
; PREC 127, call original routine...
|
||||
LEA 10(SP),A0
|
||||
SUBQ #4,SP
|
||||
MOVE.L -(A0),-(SP)
|
||||
MOVE.W -(A0),-(SP)
|
||||
BSR.S @jmpOld
|
||||
MOVE.L (SP)+,D0
|
||||
MOVE.L D0,10(SP)
|
||||
BEQ.S @tailReturn ; pass through nil
|
||||
|
||||
; and tail patch it...
|
||||
MOVE.L D0,A0
|
||||
MOVE.L (A0),A0
|
||||
BTST #7,(A0)
|
||||
BNE.S @tailReturn ; skip if first bit is set?
|
||||
|
||||
MOVE.L ExpandMem,A0
|
||||
MOVE.L ExpandMemRec.emLowMemoryPrintingGlobals(A0),A0
|
||||
_HLock
|
||||
MOVE.L (A0),A0
|
||||
LEA gDialogHit(A0),A0
|
||||
TST.W (A0)
|
||||
BNE.S @nodo
|
||||
MOVE.W ResErr,-(SP)
|
||||
MOVE.W MemErr,-(SP)
|
||||
MOVEM.L D1/D2/A0/A1,-(SP)
|
||||
MOVE.L A0,-(SP)
|
||||
JSR lowMemPrintDialog
|
||||
MOVE.L ExpandMem,A0
|
||||
MOVE.L ExpandMemRec.emLowMemoryPrintingGlobals(A0),A0
|
||||
_HUnlock
|
||||
MOVEM.L (SP)+,D1/D2/A0/A1
|
||||
MOVE.W (SP)+,MemErr
|
||||
MOVE.W (SP)+,ResErr
|
||||
@nodo
|
||||
CMP.W #3,(A0)
|
||||
BNE.S @tailReturn
|
||||
MOVE.L 10(SP),A0
|
||||
MOVE.L (A0),A0
|
||||
BSET #7,(A0)
|
||||
|
||||
@tailReturn MOVE.L (SP)+,A0
|
||||
ADDQ #6,SP
|
||||
JMP (A0)
|
||||
|
||||
|
||||
NastierPatch PatchProc $A8FD,(Plus,SE,II,Portable,IIci)
|
||||
IMPORT prmtRunning,prmtPrefMem
|
||||
WITH Globals
|
||||
|
||||
MOVE.L 4(SP),D0
|
||||
CMP.L #$04000C00,D0
|
||||
BEQ.S @PrOpenDoc
|
||||
CMP.L #$08000484,D0
|
||||
BEQ.S @PrClosDoc
|
||||
|
||||
@jmpOld jmpOld
|
||||
|
||||
@PrClosDoc LEA 12(SP),A0
|
||||
MOVE.L -(A0),-(SP)
|
||||
MOVE.L -(A0),-(SP)
|
||||
BSR.S @jmpOld
|
||||
|
||||
MOVE.L ExpandMem,A0
|
||||
MOVE.L ExpandMemRec.emLowMemoryPrintingGlobals(A0),A0
|
||||
MOVE.L (A0),A0
|
||||
CLR.B gFlag(A0)
|
||||
|
||||
MOVE.L (SP)+,A0
|
||||
ADDQ #8,SP
|
||||
JMP (A0)
|
||||
|
||||
@PrOpenDoc MOVE.L ExpandMem,A0
|
||||
MOVE.L ExpandMemRec.emLowMemoryPrintingGlobals(A0),A0
|
||||
MOVE.L (A0),A0
|
||||
CLR.W gDialogHit(A0)
|
||||
|
||||
SUBQ #2,SP
|
||||
JSR prmtRunning
|
||||
TST.B (SP)+
|
||||
BNE.S @jmpOld
|
||||
|
||||
MOVE.L D3,-(SP)
|
||||
SUBQ #4,SP
|
||||
JSR prmtPrefMem
|
||||
MOVE.L (SP)+,D3
|
||||
BEQ.S @cannotBackground
|
||||
BMI.S @cleanupgo
|
||||
|
||||
SUBQ #4,SP
|
||||
_TempFreeMem
|
||||
MOVE.L (SP)+,D1
|
||||
SUB.L #20*1024,D1
|
||||
CMP.L D3,D1
|
||||
BGE.S @cleanupgo
|
||||
|
||||
@cannotBackground
|
||||
MOVE.L (SP)+,D3
|
||||
|
||||
MOVE.L ExpandMem,A0
|
||||
MOVE.L ExpandMemRec.emLowMemoryPrintingGlobals(A0),A0
|
||||
MOVE.L (A0),A0
|
||||
MOVE.B #1,gFlag(A0)
|
||||
|
||||
LEA 20(SP),A0
|
||||
SUBQ #4,SP
|
||||
MOVE.L -(A0),-(SP)
|
||||
MOVE.L -(A0),-(SP)
|
||||
MOVE.L -(A0),-(SP)
|
||||
MOVE.L -(A0),-(SP)
|
||||
BSR.S @jmpOld
|
||||
MOVE.L (SP)+,20(SP)
|
||||
|
||||
MOVE.L ExpandMem,A0
|
||||
MOVE.L ExpandMemRec.emLowMemoryPrintingGlobals(A0),A0
|
||||
MOVE.L (A0),A0
|
||||
CMP.W #kCancel,gDialogHit(A0)
|
||||
BNE.S @noErr
|
||||
MOVE.W #128,-(SP)
|
||||
_PrSetError
|
||||
@noErr
|
||||
MOVE.L (SP)+,A0
|
||||
LEA 16(SP),SP
|
||||
JMP (A0)
|
||||
|
||||
@cleanupgo MOVE.L (SP)+,D3
|
||||
BRA.W @jmpOld
|
||||
|
||||
|
||||
|
||||
; Return a long, equal to the PrintMonitor's preferred memory partition
|
||||
; Error if negative
|
||||
prmtPrefMem PROC EXPORT
|
||||
WITH Globals,HParamBlockRec,HFileParam
|
||||
|
||||
prmtPrefMemFrm RECORD {A6Link},DECREMENT
|
||||
result DS.L 1
|
||||
return DS.L 1
|
||||
A6Link DS.L 1
|
||||
HFQEl DS.B ioHFQElSiz
|
||||
prmonRefNum DS.W 1
|
||||
LocalSize EQU *
|
||||
ENDR
|
||||
WITH prmtPrefMemFrm
|
||||
|
||||
LINK A6,#LocalSize
|
||||
MOVE.L A2,-(SP)
|
||||
CLR.L result(A6)
|
||||
|
||||
MOVE.L ExpandMem,A0
|
||||
MOVE.L ExpandMemRec.emLowMemoryPrintingGlobals(A0),A0
|
||||
_HLock
|
||||
MOVE.L (A0),A2
|
||||
TST.L gPrmnDirID(A2)
|
||||
BNE.S @gotExtn
|
||||
|
||||
SUB.L #2,SP
|
||||
MOVE.W #kOnSystemDisk,-(SP)
|
||||
MOVE.L #kExtensionFolderType,-(SP)
|
||||
CLR.W -(SP) ; do not create
|
||||
PEA gPrmnVolRefNum(A2)
|
||||
PEA gPrmnDirID(A2)
|
||||
MOVEQ #0,D0
|
||||
_AliasDispatch ; FindFolder
|
||||
MOVE.W (SP)+,D0
|
||||
BNE @return
|
||||
@gotExtn
|
||||
|
||||
LEA HFQEl(A6),A0
|
||||
MOVEQ #ioHFQElSiz/2-1,D0
|
||||
@clearLoop CLR.W (A0)+
|
||||
DBRA D0,@clearLoop
|
||||
|
||||
LEA HFQEl(A6),A0
|
||||
MOVE.L gPrmnNameHand(A2),A1
|
||||
MOVE.L (A1),ioNamePtr(A0)
|
||||
MOVE.W gPrmnVolRefNum(A2),ioVRefNum(A0)
|
||||
CLR.W ioFDirIndex(A0)
|
||||
MOVE.L gPrmnDirID(A2),ioDirID(A0)
|
||||
_GetCatInfo
|
||||
BEQ.S @gotPrintMon
|
||||
MOVE.L D0,result(A6)
|
||||
BRA.S @return
|
||||
@gotPrintMon
|
||||
|
||||
TST.L gPrmnModDate(A2)
|
||||
BEQ.S @globWasZero
|
||||
MOVE.L gPrmnModDate(A2),D0
|
||||
CMP.L ioFlMdDat(A0),D0
|
||||
BNE.S @globWasZero
|
||||
MOVE.L gPrmnPrefMem(A2),result(A6)
|
||||
BRA.S @return
|
||||
@globWasZero
|
||||
MOVE.L ioFlMdDat(A0),gPrmnModDate(A2)
|
||||
|
||||
SUB.L #2,SP
|
||||
MOVE.W gPrmnVolRefNum(A2),-(SP)
|
||||
MOVE.L gPrmnDirID(A2),-(SP)
|
||||
MOVE.L gPrmnNameHand(A2),A1
|
||||
MOVE.L (A1),-(SP)
|
||||
MOVE.B #1,-(SP)
|
||||
_HOpenResFile
|
||||
MOVE.W (SP)+,prmonRefNum(A6)
|
||||
BMI.S @return
|
||||
|
||||
SUB.L #4,SP
|
||||
MOVE.L #'SIZE',-(SP)
|
||||
MOVE.W #0,-(SP)
|
||||
_Get1Resource
|
||||
MOVE.L (SP)+,D0
|
||||
BNE.S @gotSizeRes
|
||||
SUB.L #4,SP
|
||||
MOVE.L #'SIZE',-(SP)
|
||||
MOVE.W #-1,-(SP)
|
||||
_Get1Resource
|
||||
MOVE.L (SP)+,D0
|
||||
BEQ.S @closeAndReturn
|
||||
@gotSizeRes
|
||||
|
||||
MOVE.L D0,A0
|
||||
MOVE.L (A0),A0
|
||||
MOVE.L 2(A0),D0
|
||||
MOVE.L D0,result(A6)
|
||||
MOVE.L D0,gPrmnPrefMem(A2)
|
||||
|
||||
@closeAndReturn
|
||||
MOVE.W prmonRefNum(A6),-(SP)
|
||||
_CloseResFile
|
||||
@return
|
||||
MOVE.L ExpandMem,A0
|
||||
MOVE.L ExpandMemRec.emLowMemoryPrintingGlobals(A0),A0
|
||||
_HUnlock
|
||||
MOVE.L (SP)+,A2
|
||||
UNLK A6
|
||||
RTS
|
||||
|
||||
|
||||
; Return a bool, true if the PrintMonitor is running
|
||||
prmtRunning PROC EXPORT
|
||||
WITH Globals
|
||||
|
||||
prmtRunningFrm RECORD {A6Link},DECREMENT
|
||||
result DS.W 1
|
||||
return DS.L 1
|
||||
A6Link DS.L 1
|
||||
psn DS ProcessSerialNumber
|
||||
procInfo DS ProcessInfoRec
|
||||
LocalSize EQU *
|
||||
ENDR
|
||||
WITH prmtRunningFrm
|
||||
|
||||
LINK A6,#LocalSize
|
||||
|
||||
MOVEQ #0,D0
|
||||
MOVE.L D0,psn.highLongOfPSN(A6)
|
||||
MOVE.L D0,psn.lowLongOfPSN(A6)
|
||||
MOVEQ #ProcessInfoRec.size,D1
|
||||
MOVE.L D1,procInfo.processInfoLength(A6)
|
||||
MOVE.L D0,procInfo.processName(A6)
|
||||
MOVE.L D0,procInfo.processAppSpec(A6)
|
||||
BRA.S @nextProcess
|
||||
|
||||
@getProcessInfo SUB.L #2,SP
|
||||
PEA psn(A6)
|
||||
PEA procInfo(A6)
|
||||
_GetProcessInformation
|
||||
TST.W (SP)+
|
||||
BNE.S @nextProcess
|
||||
CMP.L #'prmt',procInfo.processSignature(A6)
|
||||
BNE.S @nextProcess
|
||||
MOVE.B #1,result(A6)
|
||||
BRA.S @return ; Print Monitor 'prmt' running
|
||||
|
||||
@nextProcess SUB.L #2,SP
|
||||
PEA psn(A6)
|
||||
_GetNextProcess
|
||||
TST.W (SP)+
|
||||
BEQ.S @getProcessInfo
|
||||
|
||||
CLR.B result(A6) ; not running
|
||||
@return UNLK A6
|
||||
RTS
|
||||
|
||||
|
||||
; Dialog: "Your document will be printed in the background when more memory is available"
|
||||
; Takes one argument: a pointer to a word
|
||||
; The pointed-to word is set to the hit item: 1 = Cancel, 2 = Print Later, 3 = Print Now
|
||||
lowMemPrintDialog PROC EXPORT
|
||||
IMPORT HandToHand
|
||||
WITH Globals
|
||||
|
||||
lowMemPrintDialogFrm RECORD {A6Link},DECREMENT
|
||||
result DS.L 1
|
||||
return DS.L 1
|
||||
A6Link DS.L 1
|
||||
oldZone DS.L 1
|
||||
newDitlHand DS.L 1
|
||||
itemHit DS.W 1
|
||||
LocalSize EQU *
|
||||
savedRegs DS.L 3
|
||||
ENDR
|
||||
WITH lowMemPrintDialogFrm
|
||||
|
||||
@regs REG D7/A3/A4
|
||||
|
||||
LINK A6,#LocalSize
|
||||
MOVEM.L @regs,-(SP)
|
||||
|
||||
_GetZone
|
||||
MOVE.L A0,oldZone(A6)
|
||||
MOVE.L SysZone,A0
|
||||
_SetZone
|
||||
|
||||
SUB.L #4,SP
|
||||
MOVE.L #'DITL',-(SP)
|
||||
MOVE.W #-16601,-(SP)
|
||||
_GetResource
|
||||
MOVE.L (SP)+,A4
|
||||
|
||||
SUB.L #2,SP
|
||||
_ResError
|
||||
TST.W (SP)+
|
||||
BNE @return
|
||||
|
||||
SUB.L #4,SP
|
||||
MOVE.L #'RECT',-(SP)
|
||||
MOVE.W #-16601,-(SP)
|
||||
_GetResource
|
||||
MOVE.L (SP)+,A3
|
||||
|
||||
SUB.L #2,SP
|
||||
_ResError
|
||||
TST.W (SP)+
|
||||
BNE @return
|
||||
|
||||
MOVE.L A4,newDitlHand(A6)
|
||||
|
||||
SUB.L #2,SP
|
||||
PEA newDitlHand(A6)
|
||||
JSR HandToHand
|
||||
TST.W (SP)+
|
||||
BEQ.S @ditlCopied
|
||||
MOVE.L oldZone(A6),A0
|
||||
_SetZone
|
||||
BRA @return
|
||||
@ditlCopied
|
||||
|
||||
MOVE.L A3,A0 ; the dialog rect
|
||||
_HLock
|
||||
|
||||
SUB.L #4,SP
|
||||
MOVEQ #0,D0
|
||||
MOVE.L D0,-(SP) ; wStorage = nil
|
||||
MOVE.L (A3),-(SP) ; boundsRect
|
||||
MOVE.L D0,-(SP) ; title = nil
|
||||
MOVEQ #0,D1
|
||||
MOVE.B D1,-(SP) ; visible = false
|
||||
MOVEQ #1,D0
|
||||
MOVE.W D0,-(SP) ; procID = 1
|
||||
MOVEQ #-1,D0
|
||||
MOVE.L D0,-(SP) ; behind = -1
|
||||
MOVE.B D1,-(SP) ; goAwayFlag = false
|
||||
MOVEQ #0,D0
|
||||
MOVE.L D0,-(SP) ; refCon = 0
|
||||
MOVE.L newDitlHand(A6),-(SP) ; itmLstHndl = newDitlHand
|
||||
_NewDialog
|
||||
MOVE.L (SP)+,A4
|
||||
|
||||
SUB.L #2,SP
|
||||
MOVE.L A4,-(SP)
|
||||
MOVEQ #3,D0
|
||||
MOVE.W D0,-(SP)
|
||||
_SetDialogDefaultItem
|
||||
MOVE.W (SP)+,D7
|
||||
|
||||
SUB.L #2,SP
|
||||
MOVE.L A4,-(SP)
|
||||
MOVEQ #1,D0
|
||||
MOVE.W D0,-(SP)
|
||||
_SetDialogCancelItem
|
||||
MOVE.W (SP)+,D7
|
||||
|
||||
MOVE.L A4,-(SP) ; whichWindow = our dialog
|
||||
MOVEQ #lcMainScreen,D0
|
||||
MOVE.B D0,-(SP) ; where = lcMainScreen
|
||||
MOVEQ #hcCenter,D1
|
||||
MOVE.B D1,-(SP) ; horizontalControl = hcCenter
|
||||
MOVEQ #vcAlertCenter,D0
|
||||
MOVE.B D0,-(SP) ; verticalControl = vcAlertCenter
|
||||
_AutoPositionWindow
|
||||
|
||||
_InitCursor
|
||||
|
||||
MOVE.L A4,-(SP)
|
||||
_ShowWindow
|
||||
|
||||
MOVEQ #0,D0
|
||||
MOVE.L D0,-(SP) ; filterProc = nil
|
||||
PEA itemHit(A6)
|
||||
_ModalDialog
|
||||
|
||||
MOVE.L A4,-(SP)
|
||||
_DisposeDialog
|
||||
|
||||
MOVE.L A3,A0 ; the dialog rect
|
||||
_HUnlock
|
||||
|
||||
MOVE.L oldZone(A6),A0
|
||||
_SetZone
|
||||
|
||||
MOVE.L result(A6),A0
|
||||
MOVE.W itemHit(A6),(A0)
|
||||
|
||||
@return MOVEM.L savedRegs(A6),@regs
|
||||
UNLK A6
|
||||
MOVE.L (SP)+,(SP)
|
||||
RTS
|
1
Patches/LowMemoryPrintingPatches.a.idump
Normal file
1
Patches/LowMemoryPrintingPatches.a.idump
Normal file
@ -0,0 +1 @@
|
||||
TEXTMPS
|
@ -1,3 +1,14 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Restored the IIci check that <SM7> removed around Power Manager code.
|
||||
; Added TSM clean-up code to CleanupApp. Added ExpandMem-based dispatchers
|
||||
; for several Packs. Added includes to support this new code, plus
|
||||
; HardwarePrivateEqu.a to support UniversalEqu.a (odd that this was
|
||||
; missing).
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: MiscPatches.a
|
||||
;
|
||||
@ -135,6 +146,12 @@
|
||||
PRINT PUSH,OFF
|
||||
|
||||
LOAD 'StandardEqu.d'
|
||||
include 'Dictionary.a' ; <Sys7.1>
|
||||
include 'HardwarePrivateEqu.a' ; <Sys7.1>
|
||||
include 'Processes.a' ; <Sys7.1>
|
||||
include 'SysEqu.a' ; <Sys7.1>
|
||||
include 'SysPrivateEqu.a' ; <Sys7.1>
|
||||
include 'TSMPrivate.a' ; <Sys7.1>
|
||||
INCLUDE 'LinkedPatchMacros.a'
|
||||
INCLUDE 'BTreeEqu.a'
|
||||
include 'MMUEqu.a'
|
||||
@ -243,7 +260,9 @@ SynchIdleTimeProc PatchProc _SynchIdleTime
|
||||
_PPC ; PPC trap <PN>
|
||||
|
||||
WITH PMgrRec,PowerDispRec ;
|
||||
BRA.S @Done ; <PN> branch always because we are SM ROM
|
||||
MOVE.L ROMBase,A0 ; ex<SM7> <Sys7.1> check for IIci
|
||||
CMP.W #$67C,8(A0)
|
||||
BNE.S @Done
|
||||
Testfor hwCbPwrMgr ; do we have a power manager?
|
||||
BEQ.S @Done ; no power cycling
|
||||
MOVE.L PMgrBase,A0 ; Get the Power Manager Globals
|
||||
@ -338,6 +357,31 @@ CleanupApp PatchProc _CleanupApplication
|
||||
@noEditionMgr
|
||||
ENDIF
|
||||
|
||||
;
|
||||
; Clean up Text Services Manager <Sys7.1>
|
||||
;
|
||||
SUBQ #8,SP ; make space for PSN
|
||||
CLR.W -(SP) ; clear space to return OSErr
|
||||
PEA 2(SP) ; push PSN buf ptr
|
||||
_GetCurrentProcess
|
||||
TST.W (SP)+
|
||||
BNE.S @noKillTSM
|
||||
|
||||
CLR.W -(SP) ; room for result
|
||||
PEA 2(SP) ; PSN
|
||||
MOVE.W #0,-(SP) ; flag = false
|
||||
_InlineAware
|
||||
TST.B (SP)+
|
||||
BEQ.S @noKillTSM
|
||||
|
||||
CLR.W -(SP)
|
||||
MOVE.W #kMsgKillTSMApp,-(SP)
|
||||
PEA 4(SP)
|
||||
_InformTSM
|
||||
TST.W (SP)+
|
||||
@noKillTSM
|
||||
ADDQ #8,SP ; clean up PSN on stack
|
||||
|
||||
;
|
||||
; Clean up Compoents and Component insetances belong to this app.
|
||||
;
|
||||
@ -444,6 +488,64 @@ get70MgrAttr PROC
|
||||
;
|
||||
;___________________________________________________________________________________
|
||||
|
||||
; <Sys7.1> Dispatch Apple Event Manager through ExpandMem.
|
||||
Pack8Patch PatchProc _Pack8
|
||||
|
||||
MOVE.L App2Packs,A0
|
||||
MOVE.L ExpandMem,A1
|
||||
LEA ExpandMemRec.emPack8Globals(A1),A1
|
||||
_ProcHelper
|
||||
|
||||
|
||||
; <Sys7.1> Dispatch PPC Manager through ExpandMem.
|
||||
Pack9Patch PatchProc _Pack9
|
||||
|
||||
MOVE.L App2Packs+4,A0
|
||||
MOVE.L ExpandMem,A1
|
||||
LEA ExpandMemRec.emPack9Globals(A1),A1
|
||||
_ProcHelper
|
||||
|
||||
|
||||
; <Sys7.1> Dispatch Edition Manager through ExpandMem.
|
||||
Pack11Patch PatchProc _Pack11
|
||||
|
||||
MOVE.L App2Packs+12,A0
|
||||
MOVE.L ExpandMem,A1
|
||||
LEA ExpandMemRec.emPack11Globals(A1),A1
|
||||
_ProcHelper
|
||||
|
||||
|
||||
; <Sys7.1> Dispatch Data Access Manager through ExpandMem.
|
||||
Pack13Patch PatchProc _Pack13
|
||||
|
||||
TST.B D0
|
||||
BEQ.S @initialize
|
||||
; If not initializing right now, check that SnarfMan is initialized.
|
||||
MOVE.L ExpandMem,A0
|
||||
TST.L ExpandMemRec.emSnarfGlobals(A0)
|
||||
BEQ.S @uninitialized
|
||||
@initialize MOVE.L App2Packs+20,A0
|
||||
MOVE.L ExpandMem,A1
|
||||
LEA ExpandMemRec.emPack13Globals(A1),A1
|
||||
_ProcHelper
|
||||
; And if not already initialized, then fail.
|
||||
@uninitialized MOVE.L (SP)+,A0
|
||||
LSR.W #8,D0
|
||||
LSL.W #1,D0
|
||||
ADD.W D0,SP
|
||||
MOVE.W #rcDBPackNotInited,(SP)
|
||||
JMP (A0)
|
||||
|
||||
|
||||
; <Sys7.1> Dispatch Picture Utilities through ExpandMem.
|
||||
Pack15Patch PatchProc _Pack15
|
||||
|
||||
MOVE.L App2Packs+28,A0
|
||||
MOVE.L ExpandMem,A1
|
||||
LEA ExpandMemRec.emPack15Globals(A1),A1
|
||||
_ProcHelper
|
||||
|
||||
|
||||
;___________________________________________________________________________________
|
||||
;
|
||||
; dimg entry - Dictionary Manager
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Clobbered SlotVBLQ after disposing the block to prevent use-after-free.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: PatchIIROM.a
|
||||
;
|
||||
@ -6978,6 +6985,7 @@ InitSlotStuff
|
||||
;and dispose the old vbl queue header ptr structure
|
||||
movea.l SlotVBLQ,a0 ; release storage for old SlotVBLQ
|
||||
_DisposPtr
|
||||
move.l #-1,SlotVBLQ ; prevent use-after-free <Sys7.1>
|
||||
|
||||
|
||||
|
||||
|
@ -1,3 +1,14 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Added boxFlag setting code for LCII and PB145. Added code to treat LCII
|
||||
; like LC (GPI pin not connected). Brought the "new and improved bus error
|
||||
; handler" back from SCSIMgrHW.a. Removed the "FixBackSANE" patch, which
|
||||
; overrode the entirety of SANE in non-TERROR ROMs (fixing an unknown
|
||||
; bug). Protected some Egret- only patch code with checks for a Cuda.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: PatchIIciROM.a
|
||||
;
|
||||
@ -1492,6 +1503,8 @@ gestaltSerial PROC EXPORT
|
||||
moveq.l #0,d0 ; assume no GPI connections
|
||||
cmpi.w #gestaltMacLC,machType(a0) ; <107> use real machine name now...
|
||||
beq.s @noGPI
|
||||
cmpi.w #gestaltMacLCII,machType(a0) ; <Sys7.1> Like LC, LCII has no GPI pin connected
|
||||
beq.s @noGPI ; <Sys7.1>
|
||||
; IIci and IIsi have GPI connected
|
||||
moveq.l #(1<<gestaltHasGPIaToDCDa)|\ ; GPIa connected to DCDa
|
||||
(1<<gestaltHasGPIaToRTxCa)|\ ; GPIa connected to RTxCa clock input)
|
||||
@ -6359,10 +6372,25 @@ ROMBusErrRecovery EQU $00008a6c ; recovery delay routine in ROM <29>
|
||||
cmp.l SCSIHsk,d0 ; was it a SCSI chip access ?
|
||||
beq.s @start ; if so, start processing the bus error
|
||||
|
||||
movem.l d1/a4,-(sp) ; save what we will trash <PN><Sys7.1>
|
||||
move.l SCSIGlobals,a4 ; load our globals reference <PN><Sys7.1>
|
||||
move.l SCSI2Base,d1 ; is the external SCSI chip base address valid? <PN><Sys7.1>
|
||||
beq.s @NoSCSIBus2 ; -> no, cleanup and bail <PN><Sys7.1>
|
||||
|
||||
cmp.l scsiGlobalRecord.hhsk5380_2(a4),d0 ; was it an external SCSI chip access ? <PN><Sys7.1>
|
||||
beq.s @Is2ndSCSI ; if so, start processing the bus error <PN><Sys7.1>
|
||||
|
||||
@NoSCSIBus2 ; <PN><Sys7.1>
|
||||
movem.l (sp)+,d1/a4 ; restore d1/a4 <PN><Sys7.1>
|
||||
|
||||
|
||||
move.l (sp)+,d0 ; restore d0
|
||||
move.l OldBusErrVct(a6),-(sp) ; put old bus error handler addr on stack <end>
|
||||
rts ; jump to old handler, assuming it'll RTE <29>
|
||||
|
||||
@Is2ndSCSI ; <PN><Sys7.1>
|
||||
movem.l (sp)+,d1/a4 ; restore d1/a4 <PN><Sys7.1>
|
||||
|
||||
@start
|
||||
|
||||
subq.w #1,BusErrCount(a6) ; retry until we get tired
|
||||
@ -8047,6 +8075,18 @@ FixUpLooP move.l (A0)+, D1
|
||||
;=========================================================================================
|
||||
|
||||
|
||||
;———————————————————————————————————————————————————————————————————————————— <Sys7.1>
|
||||
; Distinguish LCII from the LC using ROM version
|
||||
;
|
||||
cmp.b #boxMacLC,BoxFlag
|
||||
bne.s @notLCII
|
||||
move.l RomBase,a0
|
||||
cmp.b #$19,ROMHeader.ROMRelease(a0)
|
||||
bne.s @notLCII
|
||||
move.b #boxMacLCII,BoxFlag
|
||||
@notLCII
|
||||
|
||||
|
||||
;———————————————————————————————————————————————————————————————————————————— GGD <8.4>
|
||||
; Fix _StripAddress to not check the MMStartMode bit of MMFlags at runtime,
|
||||
; because the memory manager changes that bit when accessing ROM resources,
|
||||
@ -8090,7 +8130,11 @@ FixStripAddress
|
||||
BTST.L #hwCbPwrMgr,D0 ; Do we have a PowerMgr?
|
||||
BEQ.S @DoneTimLC ; -> No. This is not a Portable of any kind
|
||||
; We're on a TERROR $67C ROM with a PwrMgr and no FPU.
|
||||
BTST.B #0,$50FB4000 ; Interrogate the JAWS "25MHz" flag. <Sys7.1>
|
||||
BNE.S @jaws25 ; -> Set. We're on a "25 MHz PowerBook 140"... <Sys7.1>
|
||||
MOVE.B #boxPowerBook140,boxFlag ; We're on a Tim LC. Stuff the right boxFlag <146>
|
||||
BRA.S @DoneTimLC ; -> Unset. <Sys7.1>
|
||||
@jaws25 MOVE.B #boxPowerBook145,boxFlag ; ...Which is a PowerBook 145! Stuff the boxFlag. <Sys7.1>
|
||||
@DoneTimLC
|
||||
|
||||
;———————————————————————————————————————————————————————————————————————————— <130><131><8><9>
|
||||
@ -8148,98 +8192,7 @@ FixStripAddress
|
||||
@FixPMLoopEnd MOVE.L D2,(A0)+ ; stash correct address, bump A0
|
||||
DBRA D0,@FixPMLoop ; and count down, including zero. dvb <8.3> end
|
||||
|
||||
;__________________________________________________________________________
|
||||
;__________________________________________________________________________
|
||||
|
||||
FixBackSANE MOVE.L #'fpu ',D0 ; Gestalt FPU selector
|
||||
_Gestalt ; Do it
|
||||
MOVE.L A0,D0 ; Do we have an FPU?
|
||||
BEQ @ReallyDone ; -> No, do nothing
|
||||
|
||||
MOVE.L ROMBase,A0 ; Get ROM base
|
||||
CMPI.B #TERRORminorVers,18(A0) ; Is this TERROR 067C ROM?
|
||||
BEQ @ReallyDone ; -> Yes, leave the ROM SANE enabled!
|
||||
CMPI.B #ZYDECOminorVers,18(A0) ; Is this Zydeco 067C ROM?
|
||||
BEQ @ReallyDone ; -> Yes, leave the ROM SANE enabled!
|
||||
|
||||
@DisableSANEinROM
|
||||
MOVE.B ResLoad,-(SP) ; Save current resLoad state
|
||||
MOVE.W CurMap,-(SP) ; Save Current Rsrc Map refNum
|
||||
CLR.W CurMap ; Make the System the current Map (CurMap = 0)
|
||||
|
||||
SF ResLoad ; Don't actually read the rsrc
|
||||
CLR.L -(SP) ; Result
|
||||
MOVE.L #'PACK',-(SP) ; Type
|
||||
MOVE.W #4,-(SP) ; Id 4
|
||||
_Get1Resource
|
||||
MOVE.L (SP)+,D0 ; Did we get it?
|
||||
BEQ @Done ; -> No, PACK 4 is not on the disk. Exit Now! (Use the ROM SANE)
|
||||
MOVE.L D0,-(SP)
|
||||
_ReleaseResource ; Make the System SANE handle go away. (or we'll get it at the _RmveRsrc)
|
||||
|
||||
SF ResLoad ; Don't actually read the rsrc
|
||||
CLR.L -(SP) ; Result
|
||||
MOVE.L #'PACK',-(SP) ; Type
|
||||
MOVE.W #5,-(SP) ; Id 5
|
||||
_Get1Resource
|
||||
MOVE.L (SP)+,D0 ; Did we get it?
|
||||
BEQ @Done ; -> No, PACK 5 is not on the disk. Exit Now! (Use the ROM SANE)
|
||||
MOVE.L D0,-(SP)
|
||||
_ReleaseResource ; Make the System SANE handle go away. (or we'll get it at the _RmveRsrc)
|
||||
|
||||
ST RomMapInsert ; Put the ROM map in first
|
||||
MOVE.W #1,CurMap ; Make the ROM map current
|
||||
|
||||
CLR.L -(SP) ; Result
|
||||
MOVE.L #'PACK',-(SP) ; Type
|
||||
MOVE.W #4,-(SP) ; Id 4
|
||||
_Get1Resource
|
||||
MOVE.L (SP)+,D0 ; Did we get it?
|
||||
BEQ.S @Try45 ; -> No, try 4 five.
|
||||
|
||||
MOVE.L D0,-(SP) ; The Handle (save a copy of it)
|
||||
MOVE.L ROMMapHndl,-(SP) ; Save this
|
||||
MOVE.L #-1,ROMMapHndl ; To fool SetResAttr into letting use change ROM rsrc attrs
|
||||
|
||||
MOVE.L D0,-(SP) ; The Handle (push it. Push it good)
|
||||
MOVE.W #$50,-(SP) ; A good value (Unprotected)
|
||||
_SetResAttrs
|
||||
MOVE.L (SP)+,ROMMapHndl
|
||||
|
||||
MOVE.W #1,CurMap ; Set CurMap to the ROM rsrc map
|
||||
ST RomMapInsert ; Dont load the rsrc into memory
|
||||
_RmveResource
|
||||
|
||||
@Try45 ST RomMapInsert ; Put the ROM map in first
|
||||
|
||||
CLR.L -(SP) ; Result
|
||||
MOVE.L #'PACK',-(SP) ; Type
|
||||
MOVE.W #5,-(SP) ; Id 5
|
||||
_Get1Resource
|
||||
MOVE.L (SP)+,D0 ; Did we get it?
|
||||
BEQ.S @Done ; -> No, exit
|
||||
|
||||
MOVE.L D0,-(SP) ; The Handle (save a copy of it)
|
||||
MOVE.L ROMMapHndl,-(SP) ; Save this
|
||||
MOVE.L #-1,ROMMapHndl ; To fool SetResAttr into letting use change ROM rsrc attrs
|
||||
|
||||
MOVE.L D0,-(SP) ; The Handle (push it. Push it good)
|
||||
MOVE.W #$50,-(SP) ; A good value (Unprotected)
|
||||
_SetResAttrs
|
||||
MOVE.L (SP)+,ROMMapHndl
|
||||
|
||||
MOVE.W #1,CurMap ; Set CurMap to the ROM rsrc map
|
||||
ST RomMapInsert ; Dont load the rsrc into memory
|
||||
_RmveResource
|
||||
|
||||
@Done MOVE.W (SP)+,CurMap ; Restore the current res map
|
||||
MOVE.B (SP)+,resLoad ; Restore ResLoad
|
||||
@ReallyDone
|
||||
;__________________________________________________________________________
|
||||
;__________________________________________________________________________
|
||||
|
||||
|
||||
|
||||
; <Sys7.1> Removed "FixBackSANE" patch to override the SANE in non-TERROR ROMs.
|
||||
;____________________________________________________________________________ <2> RMP
|
||||
; This patch is used to fix a problem in the MPW Shell on Eclipse. See above.
|
||||
|
||||
@ -8693,6 +8646,10 @@ FixQDColors ; <4.7>
|
||||
AND.B #ClockMask,D0 ; (bits 4-6) <107> SAM (Use ClockMask!)
|
||||
CMP.B #ClockEgret,D0 ; Is bit 5 on?
|
||||
BNE.S @EndOfEgretOnly ; -> Nope, skip this install code
|
||||
AND.L #EgretFWMask,D0 ; Get Egret "version". <Sys7.1>
|
||||
BEQ.S @EndOfEgretOnly ; No Egret -> Skip patch. <Sys7.1>
|
||||
CMP.L #Cuda,D0 ; Cuda? <Sys7.1>
|
||||
BGE.S @EndOfEgretOnly ; -> Skip patch. <Sys7.1>
|
||||
|
||||
;----------------------------------------------------------------------------------------------------
|
||||
; This patch bypasses the physical read of egret when reading the time. The time is automatically
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Removed code to preflight the system heap with ResrvMem
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: ProcessManagerSegmentTweaks.a
|
||||
;
|
||||
@ -34,21 +41,12 @@ LoadProcessManagerSegmentsLowerInSysHeap InstallProc (Plus,SE,II,IIci,Portable)
|
||||
_CurResFile ; Remember the current resource file
|
||||
clr.w -(sp)
|
||||
_UseResFile ; Work on the System file
|
||||
move.b ResLoad,-(sp) ; Save current resource load state
|
||||
|
||||
lea ProcessManagerSegmentTable,a4 ; Table of Process Manager segments to load low
|
||||
@loadLoop
|
||||
move.w (a4)+,d7 ; Get the segment number
|
||||
bz.s @doneWithSegments ; Did ’em all
|
||||
sf ResLoad ; Don’t load in resources
|
||||
subq #8,sp ; Space for _SizeResource result too
|
||||
move.l #kProcessManagerSegmentType,-(sp)
|
||||
move.w d7,-(sp)
|
||||
_Get1Resource
|
||||
_SizeRsrc ; Find out how big it is
|
||||
move.l (sp)+,d0 ; Get the size
|
||||
_ResrvMem ,Sys ; Make some space low in the heap
|
||||
st ResLoad ; Load it in for real now
|
||||
; <Sys7.1> Don't preflight with Get1Resource/SizeRsrc/ResrvMem
|
||||
subq #4,sp
|
||||
move.l #kProcessManagerSegmentType,-(sp)
|
||||
move.w d7,-(sp)
|
||||
@ -57,7 +55,6 @@ LoadProcessManagerSegmentsLowerInSysHeap InstallProc (Plus,SE,II,IIci,Portable)
|
||||
bra.s @loadLoop
|
||||
|
||||
@doneWithSegments
|
||||
move.b (sp)+,ResLoad ; Restore resource load state
|
||||
_UseResFile ; The current resource file is on the stack
|
||||
rts
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Added extra CLRs to ensure spId/spTBMask is initialized for the SlotMgr.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: VideoPatch.a
|
||||
;
|
||||
@ -481,7 +488,9 @@ ROMMinVer Equ $12 ; Offset from ROMBase to RAM Major version word.
|
||||
StartDAFB
|
||||
Move.l A3,A0 ; Get spBlock ptr into A0.
|
||||
Clr.b spSlot(A0) ; We only care about Slot $0.
|
||||
Clr.b spId(A0) ; <Sys7.1>
|
||||
Clr.b spExtDev(A0) ; (No external device.)
|
||||
Clr.b spTBMask(A0) ; <Sys7.1>
|
||||
Move.w #catDisplay,spCategory(A0) ; Look for: Display,
|
||||
Move.w #typVideo,spCType(A0) ; Video,
|
||||
Move.w #drSwApple,spDrvrSW(A0) ; Apple,
|
||||
@ -970,6 +979,7 @@ StartJMFB
|
||||
Move.b D3,spSlot(A0) ; Set the slot number to search in.
|
||||
Clr.b spId(A0) ; Begin at id 0.
|
||||
Clr.b spExtDev(A0) ; No external device.
|
||||
Clr.b spTBMask(A0) ; <Sys7.1>
|
||||
Move.w #catDisplay,spCategory(A0) ; Look for: Display,
|
||||
Move.w #typVideo,spCType(A0) ; Video,
|
||||
Move.w #drSwApple,spDrvrSW(A0) ; Apple,
|
||||
|
@ -1,3 +1,10 @@
|
||||
;
|
||||
; Hacks to match MacOS (most recent first):
|
||||
;
|
||||
; <Sys7.1> 8/3/92 Reverted <4> by recreating the non-standard "MyGestalt" glue asm.
|
||||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
;
|
||||
|
||||
;
|
||||
; File: DAHandler.a
|
||||
;
|
||||
@ -172,4 +179,20 @@ GSHSDone
|
||||
|
||||
ENDPROC
|
||||
|
||||
;---------------------------------------------------------------------------------------
|
||||
; Non-standard glue, only used at DAHandler init ex<4> <Sys7.1>
|
||||
; (Marks the Init segment for UnloadSeg calls)
|
||||
|
||||
SEG 'Init'
|
||||
MYGESTALT PROC EXPORT
|
||||
|
||||
MOVE.L 8(SP),D0
|
||||
_Gestalt
|
||||
MOVE.L 4(SP),A1
|
||||
MOVE.L A0,(A1)
|
||||
MOVE.L (SP)+,A0
|
||||
LEA.L 8(SP),SP
|
||||
MOVE.W D0,(SP)
|
||||
JMP (A0)
|
||||
|
||||
END
|
||||
|
@ -1,3 +1,11 @@
|
||||
/*
|
||||
Hacks to match MacOS (most recent first):
|
||||
|
||||
<Sys7.1> 8/3/92 Reverted <16> by using the non-standard "MyGestalt" glue for an init-
|
||||
time Gestalt call, and for freeing the Init code segment.
|
||||
9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
*/
|
||||
|
||||
/*
|
||||
File: DAHandler.c
|
||||
|
||||
@ -392,7 +400,7 @@ main(void)
|
||||
// <12> Now that DAHandler is up and running, it’s Init and %A5Init segments can be
|
||||
// unloaded.
|
||||
|
||||
UnloadSeg((Ptr) StartupCode); // <12> Unload Init
|
||||
UnloadSeg((Ptr) MyGestalt); // <12> ex<16> <Sys7.1> Unload Init
|
||||
UnloadSeg((Ptr) _DataInit); // <12> Unload %A5Init
|
||||
|
||||
/* The event loop */
|
||||
@ -509,7 +517,7 @@ InitConfig(void)
|
||||
Colorized = false;
|
||||
Has32BitQD = false;
|
||||
|
||||
if (Gestalt(gestaltQuickdrawVersion,&qdInfo) == noErr)
|
||||
if (MyGestalt(gestaltQuickdrawVersion,&qdInfo) == noErr) // ex<16> <Sys7.1>
|
||||
{
|
||||
qdInfo &= 0xFFFF;
|
||||
Colorized = (qdInfo >= gestalt8BitQD);
|
||||
|
@ -1,3 +1,11 @@
|
||||
/*
|
||||
Hacks to match MacOS (most recent first):
|
||||
|
||||
<Sys7.1> 8/3/92 Reverted the MemoryMgrPriv.h include from <25>, as incompatible with
|
||||
Zone.h, instead getting MoveHLow from EppcPrivate.h.
|
||||
9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
*/
|
||||
|
||||
/*
|
||||
File: Eppc.c
|
||||
|
||||
@ -206,7 +214,6 @@
|
||||
#include <Errors.h>
|
||||
#include <MFPrivate.h>
|
||||
#include <Memory.h>
|
||||
#include <MemoryMgrPriv.h>
|
||||
#include <PPCToolBox.h>
|
||||
#include <AppleEventsInternal.h>
|
||||
#include <Errors.h>
|
||||
|
@ -1,3 +1,11 @@
|
||||
/*
|
||||
Hacks to match MacOS (most recent first):
|
||||
|
||||
<Sys7.1> 8/3/92 Reverted <8> by bringing MoveHLow back from MemoryMgrPriv.h (to be
|
||||
included indirectly by Eppc.c).
|
||||
9/2/94 SuperMario ROM source dump (header preserved below)
|
||||
*/
|
||||
|
||||
/*
|
||||
File: EppcPrivate.h
|
||||
|
||||
@ -107,4 +115,8 @@ void postReturnReceipt(const MFmsgBlkPtr mfMsgBlk, signed short rtnModifiers);
|
||||
void postTranslationResult(MFmsgBlkPtr, OSErr);
|
||||
void flushMsg(MFmsgBlkPtr aMsg, unsigned short rtnModifiers);
|
||||
|
||||
#pragma parameter MoveHLow(__A0) // ex<8> <Sys7.1>
|
||||
pascal void MoveHLow(Handle h) // ex<8> <Sys7.1>
|
||||
= 0xA09D; // ex<8> <Sys7.1>
|
||||
|
||||
#endif __EPPCPRIVATE__
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user