From 87d77d50052666e389c818794ba03bcfdc95fd8b Mon Sep 17 00:00:00 2001 From: Zane Kaminski Date: Sat, 27 Jun 2020 15:53:56 -0400 Subject: [PATCH] Works in 24 and 32 bit modes but no PRAM settings --- bin/driver.bin | Bin 1542 -> 1606 bytes bin/rom.bin | Bin 2097152 -> 2097152 bytes rdisk.c | 183 +++++++++++++++++++------------------------------ rdisk.h | 12 +++- 4 files changed, 78 insertions(+), 117 deletions(-) diff --git a/bin/driver.bin b/bin/driver.bin index b5551d7e46578011a83f9c441857b28f07a63130..fa5ccabfebbd60d2b3df2cace405e15ce59f592f 100755 GIT binary patch literal 1606 zcmcIkZ)h8382{ZRJFoSaM-5U+NpIIQ%d(P-Z5jDcwl|kfuA$t*Bszz(8?H&y&E#lv z!Hr-eI_ajap!+QOBCbP5?LZL3RX?d;RTzG-QiN^&VEdtnLRoy?YqR=gpJWHm`#yi) z=Y5~w^BnO1KIa26a@4X_CJa^%C$o=NV0&A zqLO75(PYmvsJ2IZ&}6n}q~vYedu5@oPO*XX1_G+ud`)d=22{NQMXNw=Cie8F7HseR zlVhdX^O=f!acBfE8%YC_#b^!s-nQ+1=zFBkog14e)g}S!o|=q~XBQDF$|jpwRb-ws z@ih>TwUkr_=kw~w6r?Y&mN%oFC*N__Yl0j9Oh0JR88a^XG#s&f zuhTBmt@JHS$ma}OXsTZfFma0W{9FuI2s_7B$;pvx>F zWR)Nt3mk*}6`k{HZoy;@TBrTf`rQY_+x}|V-WC64C)~+0U_5PfMk)xo!T>`!n-aVW zz_r{uL^%Zr)gtg)Hl-{VU(i#6qNjh_Zrum8lpwFoOAR21+bgdF-`)OpQsNo0eBcK` z85oD|c3VuVvw5JIFykQ9$a;OC4vK=V#Sv}hql|XFnKwq!O?QDY%Khz+x&Mg`C=}zg zYphd^BjZ{LqIL+<(tL3!T7f!5by%K)T#RWsI!pRurLalwQIm0WFLAv}c&g?Ndf^=> zq%mi0vCQLk>f)@KEOI7##`Y-FU+v0_mrGTScQ_TXqC8{BM+w5wST6fH!o|1rLFiPO zkM#6N9D_+wWOznl5J-28_5k0rtavHj@$0*498VEOBI(|vJx~B1W(Oe_s9CdbllGxs zU*H?Me?&j7O@ns<@dFI8yN!cmblbyFNlKU*hiYvoMu*YKaqfHR2zZ@}XqCxwL-*@V zSWm|&!fC|fNRV`iOLuSjeEEndX24_-Qo;2zNBq2$RXhH;yv~F+$nlD?LAn?DYlN9Z zcOWDGr2%jYVcw5AJTKIz1T%0YL-**Z{Xm-S`z5^ncN{)6au+xuX5s>{`x3iUCl zx2;F`b!$0gn&zjc(B+0R>*%GvB=l|1{nPoIXsi8Kc(Ho6>dpGmd+3L$zoroNJ3(yr z5lW$E++X|6n+WZkwDXS4g~}{{$CLP4^fhQO7e>PuuSB}WIdOi4bou-*`MK6y>q+Eo RpULw-?wcb6r?xNO{{@?5iYNd8 literal 1542 zcmbtUUuYa<5dZD&HEzx&Zo`R3DVMKnayc*I_7c)^4}ompVpXD0eDLWg{!3dVrXmOhBS@*mHzgEb0=~3HNkS>ohmdu?J@cn8zPK>o z_sz`CeDlrxW`O_qS@*DV4!Co2O@i$c%Iq^E@9Ic@Xta45%Lco!H%brDmOM7Ez zk_9vul&nz}O{2$vYP)m}n1=1@DS6v=&011NlV#8vU}ea4+jc(~&Wuf67#tbNOpeWr z0%sQ5s^ni9+=Qg6^;gvz)1hi*D85BvUw(SQcHi@@)8)#Wy?uanPfbRLvWo~6WYajg zrpUH?W+8DCkYx7q=>=AVxU>xvj?4&-%yRx&?JJ_`+e@XbXmI##XMIMfbbq0BTI3^F ze~w*1h~>;L5h2ouqGk;7!&Pq!;^8V}NIhvN$u5NHy)8Xe1!y&k2wCKFKpKGko$*eD z5fzUxPQsxn#v?3cW4{YgF8UV;)WK{XSeN3>HBIt@gulIIQdBS0ij z-h}$|B-tVE(7xohQja3_F|bALiKuTi|$DBdo_NxPE|$|*pYE&#VkCbC&U z(W>5k;FsGhCCI1!OqBcmkc8dm{QVa;B{e*Uj z?^%P^i_zxQi)tKCP*p|ZKcrpC0}ser^!GWEZu!1|zp|7s;+I(*?OK}RWc36;cNmD> zt#xLgvM#8^B{&-Jm9FT`dXOWet&eI*eN%w<3TZAkVkE4*9wQ6dXJc_BID$BT_o{y$ z@$ZZJx6xfJ{U5g(^cSnYSpP_;cy#EJkIM|d)w%PSPSP8gZRp?`R0)yy($TQ(R(^H< zCVD`$VY`=n6z3+#-k`RH9;E(M+RKFCBD7=-0nu3Vs4D`CUN%noI;)LCTjt%T5FamS zgr3)ELQvN7$&M;&{16(?-63Y;gLmHD^0gSnr>mrQnM~|yJOotPdwJj zrt^sCq3yo^@7yU(PnIYA*YEiVlLwhRgesBreH>-Ob*i^-y+PI++`2KfUYI^N?N0gk d?_-vR1x=~P(H?JLp7%w=QzP@~iSiWB{69dZpuzwE diff --git a/bin/rom.bin b/bin/rom.bin index cbc5ab79bc85993f604edd8f1a79cebd1eddf30b..f4124ec67c80ecd9a77cc8f5d72debfc0cb67fda 100755 GIT binary patch delta 142569 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%0DocRW}_rhm4klvDzqsc_3azFkp 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�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 U_IbC%-aY1A|DKUg2Ggwn2jL@{DgXcg delta 5630 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 CQGfUV diff --git a/rdisk.c b/rdisk.c index 36b50f3..5affd63 100644 --- a/rdisk.c +++ b/rdisk.c @@ -39,7 +39,7 @@ const long RDiskIcon[65] = { 0b10001111001111000001111001111001, 0b11000000000000000000000000000001, 0b01010101010101011101010101010101, - 0b01111111111111111111111111111111, + 0b01111111111111110111111111111111, 0b00000000000000000000000000000000, 0b00000000000000000000000000000000, // Mask @@ -78,28 +78,19 @@ const long RDiskIcon[65] = { 0 }; -// Switch to 24-bit mode and copy. Call this with -// PC==0x408XXXXX, not PC==0x008XXXXX -void RDiskCopy24(char *sourcePtr, char *destPtr, unsigned long byteCount) { +// Switch to 24-bit mode and copy +void RDiskCopy24(Ptr sourcePtr, Ptr destPtr, unsigned long byteCount) { char mode = true32b; SwapMMUMode(&mode); BlockMove(sourcePtr, destPtr, byteCount); SwapMMUMode(&mode); } -typedef struct RDiskStorage_s { - DrvSts2 drvsts; - unsigned long init_done; - char *ramdisk; - Ptr ramdisk_alloc; - char ramdisk_valid; -} RDiskStorage_t; - #pragma parameter __D0 RDiskOpen(__A0, __A1) OSErr RDiskOpen(IOParamPtr p, DCtlPtr d) { DrvQElPtr dq; - DrvSts2 *status; int drvNum; + Ptr copy24; RDiskStorage_t *c; // Do nothing if already opened @@ -114,6 +105,11 @@ OSErr RDiskOpen(IOParamPtr p, DCtlPtr d) { // Allocate storage struct d->dCtlStorage = NewHandleSysClear(sizeof(RDiskStorage_t)); if (!d->dCtlStorage) { return openErr; } + + // Allocate copy function buffer and copy RDiskCopy24 to it + copy24 = NewPtrSys(64); + if (!copy24) { DisposeHandle(d->dCtlStorage); return openErr; } + BlockMove(&RDiskCopy24, copy24, 64); // Lock our storage struct and get master pointer HLock(d->dCtlStorage); @@ -122,17 +118,15 @@ OSErr RDiskOpen(IOParamPtr p, DCtlPtr d) { // Initialize storage struct fields c->init_done = 0; c->ramdisk = NULL; - c->ramdisk_alloc = NULL; - c->ramdisk_valid = 0; + c->copy24 = (RDiskCopy_t)copy24; // Set drive status - status = &c->drvsts; - status->writeProt = 0xF0; - status->diskInPlace = 0x08; - status->dQDrive = drvNum; - status->dQRefNum = d->dCtlRefNum; - status->driveSize = (RDiskSize / 512) & 0xFFFF; - status->driveS1 = ((RDiskSize / 512) & 0xFFFF0000) >> 16; + c->status.writeProt = -1; + c->status.diskInPlace = 0x08; + c->status.dQDrive = drvNum; + c->status.dQRefNum = d->dCtlRefNum; + c->status.driveSize = RDiskSize / 512; + c->status.driveS1 = (RDiskSize / 512) >> 16; // Set driver flags? /* d->dCtlFlags |= dReadEnableMask | dWritEnableMask | @@ -140,7 +134,7 @@ OSErr RDiskOpen(IOParamPtr p, DCtlPtr d) { dNeedLockMask; // 0x4F */ // Add drive to drive queue and return - RDiskAddDrive(status->dQRefNum, drvNum, (DrvQElPtr)&status->qLink); + RDiskAddDrive(c->status.dQRefNum, drvNum, (DrvQElPtr)&c->status.qLink); return noErr; } @@ -151,61 +145,64 @@ OSErr RDiskInit(IOParamPtr p, DCtlPtr d, RDiskStorage_t *c) { c->init_done = 1; // Read PRAM - RDiskReadXPRAM(1, 4, &startup); - RDiskReadXPRAM(1, 5, &ram); + /*RDiskReadXPRAM(1, 4, &startup); + RDiskReadXPRAM(1, 5, &ram);*/ // Either enable ROM disk or remove ourselves from the drive queue - if (startup || RDiskIsRPressed()) { // If ROM disk boot set in PRAM or R pressed,*/ + if (/*startup || */RDiskIsRPressed()) { // If ROM disk boot set in PRAM or R pressed,*/ // Set ROM disk attributes - c->drvsts.writeProt = -1; // Set write protected - // Clear disk fields (even though we used NewHandleSysClear) - c->ramdisk = NULL; - c->ramdisk_alloc = NULL; - c->ramdisk_valid = 0; + c->status.writeProt = -1; // Set write protected // If RAM disk set in PRAM or A pressed, enable RAM disk - if (ram || RDiskIsAPressed()) { - unsigned long minBufPtr, newBufPtr; - // Clearing write protect marks RAM disk enabled - c->drvsts.writeProt = 0; - // Compute if there is enough high memory - minBufPtr = ((unsigned long)*MemTop / 2) + 1024; - newBufPtr = (unsigned long)*BufPtr - RDiskSize; - // If in 32-bit mode and there is enough high memory, set ramdisk pointer now - if (*MMU32bit & newBufPtr > minBufPtr && (unsigned long)*BufPtr > newBufPtr) { - // Allocate RAM disk buffer by lowering BufPtr - *BufPtr = (Ptr)newBufPtr; - // Set RAM disk buffer pointer. Defer copying until accRun - // Don't set ramdisk_alloc because there is nothing to free. - c->ramdisk = *BufPtr; + if (/*ram || */RDiskIsAPressed()) { + // Try to allocate RAM disk buffer + if (*MMU32bit) { // 32-bit mode + unsigned long minBufPtr, newBufPtr; + // Compute if there is enough high memory + minBufPtr = ((unsigned long)*MemTop / 2) + 1024; + newBufPtr = (unsigned long)*BufPtr - RDiskSize; + if (newBufPtr > minBufPtr && (unsigned long)*BufPtr > newBufPtr) { + // Allocate RAM disk buffer by lowering BufPtrå + *BufPtr = (Ptr)newBufPtr; + // Set RAM disk buffer pointer. + c->ramdisk = *BufPtr; + // Copy ROM disk image to RAM disk + BlockMove(RDiskBuf, c->ramdisk, RDiskSize); + // Clearing write protect marks RAM disk enabled + c->status.writeProt = 0; + } else { + // Not enough memory so stay write-only + c->status.writeProt = -1; + } + } else { // 24-bit mode + // Put RAM disk just past 8MB + c->ramdisk = (char*)(8 * 1024 * 1024); // Copy ROM disk image to RAM disk - BlockMove(RDiskBuf, c->ramdisk, RDiskSize); - c->ramdisk_valid = 1; - } else { - // Enable accRun to allocate and copy later - d->dCtlFlags |= dNeedTimeMask; - d->dCtlDelay = 0x10; + ((RDiskCopy_t)StripAddress(c->copy24))( + RDiskBuf, StripAddress(c->ramdisk), RDiskSize); + // Clearing write protect marks RAM disk enabled + c->status.writeProt = 0; + //FIXME: what if we don't have enough RAM? + // Will this wrap around and overwrite low memory? + // That's not the worst, since the system would just crash, + // but it would be better to switch to read-only status } } return noErr; } else { // Otherwise if R not held down and ROM boot not set in PRAM, + QHdrPtr head = GetDrvQHdr(); + DrvQElPtr dq = (DrvQElPtr)head->qHead; // Remove our driver from the drive queue - DrvQElPtr dq; - QHdrPtr QHead = DrvQHdr; - - // Loop through entire drive queue, searching for our device or stopping at the end. - dq = (DrvQElPtr)QHead->qHead; - while ((dq != (DrvQElPtr)(QHead->qTail)) && + // Loop through entire drive queue, searching for our device + while ((dq != (DrvQElPtr)(head->qTail)) && (dq->dQRefNum != d->dCtlRefNum)) { dq = (DrvQElPtr)(dq->qLink); } // If we found our driver, remove it from the queue if (dq->dQRefNum == d->dCtlRefNum) { - Dequeue((QElemPtr)dq, QHead); - if (c->ramdisk_alloc) { DisposePtr(c->ramdisk_alloc); } + Dequeue((QElemPtr)dq, head); DisposeHandle(d->dCtlStorage); } d->dCtlStorage = NULL; - // Return disk offline error return offLinErr; } @@ -217,7 +214,6 @@ OSErr RDiskPrime(IOParamPtr p, DCtlPtr d) { char cmd; char *disk; long offset; - RDiskCopy_t copy24 = &RDiskCopy24; // Return disk offline error if dCtlStorage null if (!d->dCtlStorage) { return offLinErr; } @@ -231,7 +227,7 @@ OSErr RDiskPrime(IOParamPtr p, DCtlPtr d) { } // Get pointer to RAM or ROM disk buffer - disk = c->ramdisk && c->ramdisk_valid ? c->ramdisk : RDiskBuf; + disk = c->ramdisk ? c->ramdisk : RDiskBuf; // Add offset to buffer pointer according to positioning mode switch (p->ioPosMode & 0x000F) { case fsAtMark: offset = d->dCtlPosition; break; @@ -250,14 +246,14 @@ OSErr RDiskPrime(IOParamPtr p, DCtlPtr d) { if (cmd == aRdCmd) { // Read // Return immediately if verify operation requested //FIXME: follow either old (verify) or new (read uncached) convention - /*if (p->ioPosMode & rdVerifyMask) { + if (p->ioPosMode & rdVerifyMask) { return noErr; - }*/ + } // Read from disk into buffer. if (*MMU32bit) { BlockMove(disk, p->ioBuffer, p->ioReqCount); } - else { // 24-bit addressing - char *buffer = (char*)Translate24To32(StripAddress(p->ioBuffer)); - copy24(disk, buffer, p->ioReqCount); + else { + ((RDiskCopy_t)StripAddress(c->copy24))( + disk, StripAddress(p->ioBuffer), p->ioReqCount); } // Update count p->ioActCount = p->ioReqCount; @@ -266,12 +262,12 @@ OSErr RDiskPrime(IOParamPtr p, DCtlPtr d) { return noErr; } else if (cmd == aWrCmd) { // Write // Fail if write protected or RAM disk buffer not set up - if (c->drvsts.writeProt || !c->ramdisk || !c->ramdisk_valid) { return wPrErr; } + if (c->status.writeProt || !c->ramdisk) { return wPrErr; } // Write from buffer into disk. - if (*MMU32bit) { BlockMove((char*)p->ioBuffer, disk, p->ioReqCount); } - else { // 24-bit addressing - char *buffer = (char*)Translate24To32(StripAddress(p->ioBuffer)); - copy24(buffer, disk, p->ioReqCount); + if (*MMU32bit) { BlockMove(p->ioBuffer, disk, p->ioReqCount); } + else { + ((RDiskCopy_t)StripAddress(c->copy24))( + StripAddress(p->ioBuffer), disk, p->ioReqCount); } // Update count and position/offset p->ioActCount = p->ioReqCount; @@ -282,47 +278,6 @@ OSErr RDiskPrime(IOParamPtr p, DCtlPtr d) { //FIXME: Should we fail if cmd isn't read or write? } -OSErr RDiskAccRun(CntrlParamPtr p, DCtlPtr d, RDiskStorage_t *c) { - // Disable accRun - d->dCtlDelay = 0; - d->dCtlFlags &= ~dNeedTimeMask; - RDiskBreak(); - - // Set RAM disk buffer if our disk is writable and no RAM buffer set - if (!c->drvsts.writeProt && !c->ramdisk) { - if (*MMU32bit) { // If in 32-bit mode, (implies System 7) - // Allocate RAM disk buffer on system heap (System 7 can resize system heap) - c->ramdisk_alloc = NewPtrSys(RDiskSize); - if (c->ramdisk_alloc) { // If allocation successful, - // Set RAM disk buffer pointer - c->ramdisk = c->ramdisk_alloc; - } - } else { // Otherwise in 24-bit mode, - // Put buffer just beyond the 8 MB of RAM which is usable in 24-bit mode - c->ramdisk = (char*)(8 * 1024 * 1024); - //FIXME: what if we don't have enough RAM? - // Will this wrap around and overwrite low memory? - // That's not the worst, since the system would just crash, - // but it would be better to switch to read-only status - } - // Clear ramdisk_valid just in case, since ROM disk not yet copied to RAM disk - c->ramdisk_valid = 0; - } - - if (!c->ramdisk) { // If RAM disk buffer couldn't be allocated, - // Mark write protected if we couldn't allocate RAM buffer? - c->drvsts.writeProt = -1; - } else if (c->ramdisk && !c->ramdisk_valid) { // Else if buffer exists but is not valid, - RDiskCopy_t copy24 = RDiskCopy24; - // Copy ROM disk to RAM disk buffer if not yet copied - if (*MMU32bit) { BlockMove(RDiskBuf, c->ramdisk, RDiskSize); } - else { copy24(RDiskBuf, c->ramdisk, RDiskSize); } - c->ramdisk_valid = 1; - } - - return noErr; // Always return success -} - #pragma parameter __D0 RDiskControl(__A0, __A1) OSErr RDiskControl(CntrlParamPtr p, DCtlPtr d) { RDiskStorage_t *c; @@ -361,7 +316,7 @@ OSErr RDiskClose(IOParamPtr p, DCtlPtr d) { // If dCtlStorage not null, dispose of it and its contents if (!d->dCtlStorage) { return noErr; } RDiskStorage_t *c = *(RDiskStorage_t**)d->dCtlStorage; - if (c->ramdisk_alloc) { DisposePtr(c->ramdisk_alloc); } + if (c->copy24) { DisposePtr((Ptr)c->copy24); } HUnlock(d->dCtlStorage); DisposeHandle(d->dCtlStorage); d->dCtlStorage = NULL; diff --git a/rdisk.h b/rdisk.h index aa43b96..213e4e6 100644 --- a/rdisk.h +++ b/rdisk.h @@ -7,9 +7,8 @@ #define MemTop ((Ptr*)0x108) #define MMU32bit ((char*)0xCB2) #define JIODone ((char*)0x8FC) -#define DrvQHdr ((QHdrPtr)0x308) -#pragma parameter __D0 RDReadXPRAM(__D0, __D1, __A0) +#pragma parameter __D0 RDiskReadXPRAM(__D0, __D1, __A0) OSErr RDiskReadXPRAM(short numBytes, short whichByte, void *dest) = {0x4840, 0x3001, 0xA051}; // Other definition of RDiskAddDrive with register calling convention @@ -34,6 +33,13 @@ inline char RDiskIsAPressed() { return *((char*)0x174) & 0x01; } void RDiskBreak() = { 0xA9FF }; -typedef void (*RDiskCopy_t)(char *, char *, unsigned long); +typedef void (*RDiskCopy_t)(Ptr, Ptr, unsigned long); + +typedef struct RDiskStorage_s { + DrvSts2 status; + unsigned long init_done; + char *ramdisk; + RDiskCopy_t copy24; +} RDiskStorage_t; #endif