Changed default settings
Now by default CD-ROM extension is disabled and ROM disk is mountedRC
parent
ad54853e60
commit
22fdedfd16
BIN
RDisk7M5.dsk
BIN
RDisk7M5.dsk
Binary file not shown.
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
|||
#include "RDiskCP.h"
static long RDiskCPMacDev() {
int i;
// Check signature and return 0 if doesn't match
// Don't check for length byte at beginning or null byte at endss
for (i = 1; i < sizeof(RDiskSigStr)-1; i++) {
if (RDiskSigPtr[i] != RDiskSigStr[i]) {
// If signature doesn't match,
// fail if not holding R key
if (!((*((char*)0x175)) & 0x80)) { return 0; }
}
}
return 1; // Otherwise return 1 if signature matches
}
static void RDiskCPUpdate(DialogPtr cpDialog, short numItems) {
GrafPtr savePort;
Handle h;
Rect r;
short type;
char startup, ram;
// Get startup and ram from PRAM
RDiskCPReadXPRam(1, 4, &startup);
RDiskCPReadXPRam(1, 5, &ram);
// Save GrafPort and set port to dialog before updating items
GetPort(&savePort);
SetPort(cpDialog);
GetDItem(cpDialog, BootCheckbox+numItems, &type, &h, &r);
SetCtlValue((ControlHandle)h, startup & 0x01 ? 1 : 0);
GetDItem(cpDialog, MountCheckbox+numItems, &type, &h, &r);
SetCtlValue((ControlHandle)h, startup & 0x02 && !(startup & 0x01) ? 1 : 0);
HiliteControl((ControlHandle)h, startup & 0x01 ? 255 : 0);
GetDItem(cpDialog, RAMCheckbox+numItems, &type, &h, &r);
SetCtlValue((ControlHandle)h, startup & 0x03 && ram & 0x01 ? 1 : 0);
HiliteControl((ControlHandle)h, startup & 0x03 ? 0 : 255);
GetDItem(cpDialog, DebugCheckbox+numItems, &type, &h, &r);
SetCtlValue((ControlHandle)h, startup & 0x04 && (startup & 0x01) ? 1 : 0);
HiliteControl((ControlHandle)h, !(startup & 0x01) || !*RDiskDBGDisPos ? 255 : 0);
GetDItem(cpDialog, CDROMCheckbox+numItems, &type, &h, &r);
SetCtlValue((ControlHandle)h, !(startup & 0x08) && (startup & 0x01) ? 1 : 0);
HiliteControl((ControlHandle)h, !(startup & 0x01) || !*RDiskCDROMDisPos ? 255 : 0);
// Restore old GrafPort
SetPort(savePort);
}
static void RDiskCPHitDev(short message, short item, short numItems,
short cpPrivateVal, EventRecord *theEvent,
void *cdevStorageValue, DialogPtr cpDialog) {
char startup, ram;
RDiskCPReadXPRam(1, 4, &startup);
RDiskCPReadXPRam(1, 5, &ram);
switch (item - numItems) {
case BootCheckbox:
if (startup & 0x01) { startup &= 0x0F & ~0x01; }
else { startup = startup & 0x0F | 0x01; }
break;
case MountCheckbox:
if (!(startup & 0x01)) {
if (startup & 0x02) { startup &= 0x0F & ~0x02; }
else { startup = startup & 0x0F | 0x02; }
}
break;
case RAMCheckbox:
GetDItem(cpDialog, RAMCheckbox+numItems, &type, &h, &r);
) {
if (ram & 0x01) { ram = 0x00; }
else { ram = 0x01; }
}
break;
case DebugCheckbox:
if (startup & 0x01) {
if (startup & 0x04) { startup &= 0x0F & ~0x04; }
else { startup = startup & 0x0F | 0x04; }
}
break;
case CDROMCheckbox:
if (startup & 0x01) {
if (startup & 0x08) { startup &= 0x0F & ~0x08; }
else { startup = startup & 0x0F | 0x08; }
}
break;
};
RDiskCPWriteXPRam(1, 4, &startup);
RDiskCPWriteXPRam(1, 5, &ram);
RDiskCPUpdate(cpDialog, numItems);
}
static void RDiskCPInitDev(short message, short item, short numItems,
short cpPrivateVal, EventRecord *theEvent,
void *cdevStorageValue, DialogPtr cpDialog) {
Str15 ramSize;
Str255 dbgName = "\pMacsBug";
Str255 cdromName = "\pCD-ROM Ext.";
int i;
ramSize[0] = 2;
if (RDiskCPMacDev()) {
ramSize[1] = RDiskRAMReq[0];
ramSize[2] = RDiskRAMReq[1];
} else {
ramSize[1] = '1';
ramSize[2] = '6';
}
if (RDiskCPMacDev() && *RDiskDBGNamePos != 0) {
for (i = 0; i < 255; i++) {
dbgName[i] = (*RDiskDBGNamePos)[i];
}
}
if (RDiskCPMacDev() && *RDiskCDROMNamePos != 0) {
for (i = 0; i < 255; i++) {
cdromName[i] = (*RDiskCDROMNamePos)[i];
}
}
ParamText(ramSize, dbgName, cdromName, 0);
}
pascal long main(short message, short item, short numItems,
short cpPrivateVal, EventRecord *theEvent,
void *cdevStorageValue, DialogPtr cpDialog)
{
long ret = (long)cdevStorageValue;
// Switch to our A4 world
EnterCodeResource();
// Handle message
switch (message) {
case initDev:
RDiskCPInitDev(message, item, numItems,
cpPrivateVal, theEvent,
cdevStorageValue, cpDialog);
// (fall through to return cdevUnset)
case closeDev:
ret = cdevUnset; break;
case macDev:
ret = RDiskCPMacDev(); break;
case updateDev:
case activDev:
case deactivDev:
RDiskCPUpdate(cpDialog, numItems);
break;
case hitDev:
RDiskCPHitDev(message, item, numItems,
cpPrivateVal, theEvent,
cdevStorageValue, cpDialog);
break;
};
// Restore old A4 world and return result
ExitCodeResource();
return ret;
}
|
||||
#include "RDiskCP.h"
static long RDiskCPMacDev() {
int i;
// Check signature and return 0 if doesn't match
// Don't check for length byte at beginning or null byte at endss
for (i = 1; i < sizeof(RDiskSigStr)-1; i++) {
if (RDiskSigPtr[i] != RDiskSigStr[i]) {
// If signature doesn't match,
// fail if not holding R key
if (!((*((char*)0x175)) & 0x80)) { return 0; }
}
}
return 1; // Otherwise return 1 if signature matches
}
static void RDiskCPUpdate(DialogPtr cpDialog, short numItems) {
GrafPtr savePort;
Handle h;
Rect r;
short type;
char startup, ram;
// Get startup and ram from PRAM
RDiskCPReadXPRam(1, 4, &startup);
RDiskCPReadXPRam(1, 5, &ram);
// Save GrafPort and set port to dialog before updating items
GetPort(&savePort);
SetPort(cpDialog);
GetDItem(cpDialog, BootCheckbox+numItems, &type, &h, &r);
SetCtlValue((ControlHandle)h, startup & 0x01 ? 1 : 0);
GetDItem(cpDialog, MountCheckbox+numItems, &type, &h, &r);
SetCtlValue((ControlHandle)h, !(startup & 0x02) && !(startup & 0x01) ? 1 : 0);
HiliteControl((ControlHandle)h, startup & 0x01 ? 255 : 0);
GetDItem(cpDialog, RAMCheckbox+numItems, &type, &h, &r);
HiliteControl((ControlHandle)h, startup & 0x03 ? 0 : 255);
GetDItem(cpDialog, DebugCheckbox+numItems, &type, &h, &r);
HiliteControl((ControlHandle)h, (startup & 0x01) || !(startup & 0x02) ? 0 : 255);
GetDItem(cpDialog, DebugCheckbox+numItems, &type, &h, &r);
SetCtlValue((ControlHandle)h, startup & 0x04 && (startup & 0x01) ? 1 : 0);
HiliteControl((ControlHandle)h, !(startup & 0x01) || !*RDiskDBGDisPos ? 255 : 0);
GetDItem(cpDialog, CDROMCheckbox+numItems, &type, &h, &r);
SetCtlValue((ControlHandle)h, startup & 0x08 && (startup & 0x01) ? 1 : 0);
HiliteControl((ControlHandle)h, !(startup & 0x01) || !*RDiskCDROMDisPos ? 255 : 0);
// Restore old GrafPort
SetPort(savePort);
}
static void RDiskCPHitDev(short message, short item, short numItems,
short cpPrivateVal, EventRecord *theEvent,
void *cdevStorageValue, DialogPtr cpDialog) {
char startup, ram;
RDiskCPReadXPRam(1, 4, &startup);
RDiskCPReadXPRam(1, 5, &ram);
switch (item - numItems) {
case BootCheckbox:
if (startup & 0x01) { startup &= 0x0F & ~0x01; }
else { startup = startup & 0x0F | 0x01; }
break;
case MountCheckbox:
if (!(startup & 0x01)) {
if (startup & 0x02) { startup &= 0x0F & ~0x02; }
else { startup = startup & 0x0F | 0x02; }
}
break;
case RAMCheckbox:
GetDItem(cpDialog, RAMCheckbox+numItems, &type, &h, &r);
) {
if (ram & 0x01) { ram = 0x00; }
else { ram = 0x01; }
}
break;
case DebugCheckbox:
if (startup & 0x01) {
if (startup & 0x04) { startup &= 0x0F & ~0x04; }
else { startup = startup & 0x0F | 0x04; }
}
break;
case CDROMCheckbox:
if (startup & 0x01) {
if (startup & 0x08) { startup &= 0x0F & ~0x08; }
else { startup = startup & 0x0F | 0x08; }
}
break;
};
RDiskCPWriteXPRam(1, 4, &startup);
RDiskCPWriteXPRam(1, 5, &ram);
RDiskCPUpdate(cpDialog, numItems);
}
static void RDiskCPInitDev(short message, short item, short numItems,
short cpPrivateVal, EventRecord *theEvent,
void *cdevStorageValue, DialogPtr cpDialog) {
Str15 ramSize;
Str255 dbgName = "\pMacsBug";
Str255 cdromName = "\pCD-ROM Ext.";
int i;
ramSize[0] = 2;
if (RDiskCPMacDev()) {
ramSize[1] = RDiskRAMReq[0];
ramSize[2] = RDiskRAMReq[1];
} else {
ramSize[1] = '1';
ramSize[2] = '6';
}
if (RDiskCPMacDev() && *RDiskDBGNamePos != 0) {
for (i = 0; i < 255; i++) {
dbgName[i] = (*RDiskDBGNamePos)[i];
}
}
if (RDiskCPMacDev() && *RDiskCDROMNamePos != 0) {
for (i = 0; i < 255; i++) {
cdromName[i] = (*RDiskCDROMNamePos)[i];
}
}
ParamText(ramSize, dbgName, cdromName, 0);
}
pascal long main(short message, short item, short numItems,
short cpPrivateVal, EventRecord *theEvent,
void *cdevStorageValue, DialogPtr cpDialog)
{
long ret = (long)cdevStorageValue;
// Switch to our A4 world
EnterCodeResource();
// Handle message
switch (message) {
case initDev:
RDiskCPInitDev(message, item, numItems,
cpPrivateVal, theEvent,
cdevStorageValue, cpDialog);
// (fall through to return cdevUnset)
case closeDev:
ret = cdevUnset; break;
case macDev:
ret = RDiskCPMacDev(); break;
case updateDev:
case activDev:
case deactivDev:
RDiskCPUpdate(cpDialog, numItems);
break;
case hitDev:
RDiskCPHitDev(message, item, numItems,
cpPrivateVal, theEvent,
cdevStorageValue, cpDialog);
break;
};
// Restore old A4 world and return result
ExitCodeResource();
return ret;
}
|
File diff suppressed because one or more lines are too long
|
@ -1,31 +1 @@
|
|||
(This file must be converted with BinHex 4.0)
|
||||
:#9*%DA0V3e!ZD!"849K868e$3`%!N!-$q!!!!CUGAL0TCQjNC@BJ8N4*8dY$8&p
|
||||
)$50NC@CTEQ8J8N4*8dY$8&p)$3dMD@jME(9NC5!m3646G(9QCLjS2Jd0)f4PCQP
|
||||
ZC5"#Efpd3fKPBfYLEhJJ-`dMC'9QD@jP)%*[Eh4$BA"dD@pZ)$B0)f4PCQPZC5"
|
||||
0Eh9ZG%0SC@0VBQpi)$80)f4PCQPZC5"0Eh9ZG%0KF(4TEfiJ1!dMC'9QD@jP)&*
|
||||
"680SC@0VBQpi)$F0)f4PCQPZC5"538e$BA"dD@pZ)$%`$50NC@CTEQ8J4'9LG@G
|
||||
$D'9MDf*[H#!a-`dMC'9QD@jP)%4PBR9R3f&`G'P[EL!a0!dMC'9QD@jP)%0%8Np
|
||||
03fKPBfYLEhJJ-680)f4PCQPZC5"$4&*2680KF(4TEfiJ-6B0$50NC@CTEQ8J8N4
|
||||
TFfY6D@G3G()J+#KMD'&b+LN`H$3`1$8a4$N`+3dMC'9QD@jP)&*%DA0V8fPR8h4
|
||||
b)#*F09*%DA0V)L![,b"cDATPEfBS8N4TFfY6D@G6G()T)$dp)$F0$50NC@CTEQ8
|
||||
J8N4TFfY%3NG1B@eP8'pc)#JSBfKKFLSU+6"i0$!i06&%36!T$50NC@CTEQ8J8N4
|
||||
TFfY%3NG%DA03Eh-J+#KMD'&b+LST-(Jd-$Je-83j1#N0)f4PCQPZC5"54'PcDd4
|
||||
#4d4TFd*jG'8J+#KMD'&b+LN`H$3`1$8a4%%i+3dMC'9QD@jP)&*%DA0V3d456de
|
||||
1B@eP8'pc)#JSBfKKFLSU+6"i0$!i06&%363T$50NC@CTEQ8J8N4TFfY$4&*2684
|
||||
TFe"[Fb!S+'0SBA)U+LN`H$3`1$8a4$P$+3dMC'9QD@jP)&*%DA0V3d456de%DA0
|
||||
#HA4P)#JSBfKKFLST-(Jd-$Je-84"15N0)f4PCQPZC5"54'PcDe*"69*PF5!S+'0
|
||||
SBA)U+6"i0$!i06&%38%T$3dMF(*KCfeK)("KFQ&YCA4PFL"IAd3`)&*%DA0V3e"
|
||||
5C@&N@&"5B@dSAep%-#`JAep%-5`JAep"-#N0FfK[FR3J8N4TFfY$8&*PB@4B8&*
|
||||
KE5KcD'pbG#"cDATP,#"cD'pbG#"[CQCcCA3X)'0SBA)J+RGSCA*P+5!p$3Pl-(J
|
||||
d1$3`,#!`H$-`-$%X)$"i36!e-Adl$3dMF(*KCfeK)("KFQ&YCA4PFL"IAd3`)&*
|
||||
%DA0V3e"AFQPdC9K38Q&Y+&pI4$!X)&pI4$%X)&pI36!T$A0SEh*d)&*%DA0V3e"
|
||||
AFQPdC9K38Q&Y+(0SEh*d)(0THQ8X)(0SEh*d)'pQCR0PG#`JBfKKFL!UGfKPFQ8
|
||||
T)$dJ$3Pl-(Jd1$3`,#!`H$-`-$%X)$"i36!e-Rdl$3dMC@jND@B0TQX!!!%!N!-
|
||||
"9!#3!e3!N!0'2i$`!!%krrm!!3!!rrm!!")!N!3'!!'R!!!"1KJ!!3P54'PcDd0
|
||||
3,QJ#!*!$9%9B9%e03d-"!2q3"!#3"P4&@&40680$!3$rN!3!N",FA1kQ!!!$b3!
|
||||
!!CS!!D&S!!#fX!!)!!#fGJ!"S@J!8!!"0I`!$!!$!!i!!3%kJ!!!")!"Irm!!6B
|
||||
5!!%f&[rr!*!$!6DB!!%fR!!+!"i"m3%L!I)!(J(a!5)"mJ!"0Li!!6J1!%#EPJ!
|
||||
"1A!!!,C1!!#f5J#3!`'JAJ!"DYi!!D"3!!&Uf!!!rrm!!")!N!4)!!P0EfjKBfm
|
||||
!N"X$!!3!9`!+!G`#J!"A!!S"h!+!h&j8#3!!!b)!!!-[!*!$1`%!N!3%!!%!!3!
|
||||
!!3#3!`&8!*!$9!#3!dB!idE)$V)!N!-F!%B!!8e38e)!N!-569G#3J#3!ai$lIr
|
||||
r!*!)!r$rr`#3!d`!N!3Fe`:
|
||||
(This file must be converted with BinHex 4.0)
:#9*%DA0V3e!ZD!"849K868e$3`%!!!!$q!!!!4j-8L0TCQjNC@BJ8N4*8dY$8&p
)$50NC@CTEQ8J8N4*8dY$8&p)$3dMD@jME(9NC5!m3646G(9QCLjS2Jd0)f4PCQP
ZC5"#Efpd3fKPBfYLEhJJ-`dMC'9QD@jP)%*[Eh4$BA"dD@pZ)$B0)f4PCQPZC5"
0Eh9ZG%0SC@0VBQpi)$80)f4PCQPZC5"0Eh9ZG%0KF(4TEfiJ1!dMC'9QD@jP)&*
"680SC@0VBQpi)$F0)f4PCQPZC5"538e$BA"dD@pZ)$%`$50NC@CTEQ8J4'9LG@G
$D'9MDf*[H#!a-`dMC'9QD@jP)%4PBR9R3f&`G'P[EL!a0!dMC'9QD@jP)%0%8Np
03fKPBfYLEhJJ-680)f4PCQPZC5"$4&*2680KF(4TEfiJ-6B0$50NC@CTEQ8J8N4
TFfY6D@G3G()J+#KMD'&b+LN`H$3`1$8a4$N`+3dMC'9QD@jP)&*%DA0V8fPR8h4
b)#*F09*%DA0V)L![,b"cDATPEfBS8N4TFfY6D@G6G()T)$dp)$F0$50NC@CTEQ8
J8N4TFfY%3NG1B@eP8'pc)#JSBfKKFLSU+6"i0$!i06&%36!T$50NC@CTEQ8J8N4
TFfY%3NG%DA03Eh-J+#KMD'&b+LST-(Jd-$Je-83j1#N0)f4PCQPZC5"54'PcDd4
#4d4TFd*jG'8J+#KMD'&b+LN`H$3`1$8a4%%i+3dMC'9QD@jP)&*%DA0V3d456de
1B@eP8'pc)#JSBfKKFLSU+6"i0$!i06&%363T$50NC@CTEQ8J8N4TFfY$4&*2684
TFe"[Fb!S+'0SBA)U+LN`H$3`1$8a4$P$+3dMC'9QD@jP)&*%DA0V3d456de%DA0
#HA4P)#JSBfKKFLST-(Jd-$Je-84"15N0)f4PCQPZC5"54'PcDe*"69*PF5!S+'0
SBA)U+6"i0$!i06&%38%T$3dMF(*KCfeK)("KFQ&YCA4PFL"IAd3`)&*%DA0V3e"
5C@&N@&"5B@dSAep%-#`JAep%-5`JAep"-#N0FfK[FR3J8N4TFfY$8&*PB@4B8&*
KE5KcD'pbG#"cDATP,#"cD'pbG#"[CQCcCA3X)'0SBA)J+RGSCA*P+5!p$3Pl-(J
d1$3`,#!`H$-`-$%X)$"i36!e-Adl$3dMF(*KCfeK)("KFQ&YCA4PFL"IAd3`)&*
%DA0V3e"AFQPdC9K38Q&Y+&pI4$!X)&pI4$%X)&pI36!T$A0SEh*d)&*%DA0V3e"
AFQPdC9K38Q&Y+(0SEh*d)(0THQ8X)(0SEh*d)'pQCR0PG#`JBfKKFL!UGfKPFQ8
T)$dJ$3Pl-(Jd1$3`,#!`H$-`-$%X)$"i36!e-Rdl$3dMC@jND@B0TQX!!!%!!!!
"!!!!!!!!!!!H!3")9d*3!3+#i9Ve9d*D6eT2AH3$U#iH(f!+i6X#rFS*8N4TFfY
$8#jS!J!!!%**6N&6594i!3!!!!"!!!!!!!!!3NP1390*9(J"!!!!!%!!!!!!!!!
!!!!!!!!!!!!!!!$FrS,E!!!$q!!!!4i5#!%!!!#q%J-!!!!!!3j!CQ0,@8h)Z*P
,!33S8!%%mV5$!5#!@8d#5T!!CajB!M&m!)#e@8eB!L&mIrpX6`%GI'C2`p42CB-
"@%qYBr)#3QhjVZ%45'd"qEa-!IqL%4!I!@FSi5-"qEK-!Iq8*!&R'Z%M!IQd6!(
rKL6@i5-"qE"-!3!!!3!!!!%!!!!!!!!!!"i!!!!!!!!!!!!F!"lrrbjV:
|
6
rdisk.c
6
rdisk.c
|
@ -31,15 +31,15 @@ static void RDDecodeSettings(Ptr unmountEN, Ptr mountEN, Ptr ramEN, Ptr dbgEN, P
|
|||
*mountEN = 0; // No need to mount later since we are boot disk
|
||||
*ramEN = a; // A enables RAM disk
|
||||
*dbgEN = 0;
|
||||
*cdrEN = 1;
|
||||
*cdrEN = 0;
|
||||
} else {
|
||||
if (legacy_startup & 0x01) { // Boot from ROM disk
|
||||
*unmountEN = 0; // Don't unmount so we boot from this drive
|
||||
*mountEN = 0; // No need to mount later since we are boot disk
|
||||
*ramEN = legacy_ram & 0x01; // Allocate RAM disk if bit 0 == 1
|
||||
*dbgEN = legacy_startup & 0x04; // MacsBug enabled if bit 2 == 1
|
||||
*cdrEN = !(legacy_startup & 0x08); // CD-ROM enabled if bit 3 == 0
|
||||
} else if (legacy_startup & 0x02) { // Mount ROM disk
|
||||
*cdrEN = legacy_startup & 0x08; // CD-ROM enabled if bit 3 == 1
|
||||
} else if (!(legacy_startup & 0x02)) { // Mount ROM disk
|
||||
*unmountEN = 1; // Unmount to not boot from our disk
|
||||
*mountEN = 1; // Mount in accRun
|
||||
*ramEN = legacy_ram & 0x01; // Allocate RAM disk if bit 0 == 1
|
||||
|
|
Loading…
Reference in New Issue