• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Attempt to break the 10MB limit on the Classic II

gsteemso

Well-known member
Unless you use a third-party virtual memory utility, the required disk space is the same size as the total amount of virtual memory to be made available. The System 7 built-in virtual memory controller can’t work with smaller files.

 

Bunsen

Admin-Witchfinder-General
Okay, maybe I should have quoted more of the original post to make my point clearer.
 

Anyways, all you need is a address decoder/RAM RAS/CAS driver mux for the 25th+ address bit, and somehow write a driver to patch the OS, and trap the various routines in ROM to "stitch" RAM together, if its possible... 

Otherwise you could only allocate a RAM Disk to it using a custom control panel/driver like some accelerator cards supported. 

If you went with SRAM, you wouldnt need all that extra crap. Just an 4 to 16 Decoder with the appropriate lines hooked up. But, you still need the driver/OS/ROM patches to stitch the RAM together, or at least tell the OS where the RAM begins, ignoring the whole lower 10MB.
.
What I'm talking about is bypassing all the MMU/Eagle limitations as per the simpler RAMdisk-only mod discussed way back at the start by techknight and Paralel.
 

The RAM is originally routed through the EAGLE gate array, but is unnecessary if we're interfacing with the processor directly.
.
Bonus, with SRAM and a battery, arbitrarily large permanent RAMdisk at CPU-bus speed.

 

Gorgonops

Moderator
Staff member
RAMdisk-only mod discussed way back at the start by techknight and Paralel.
So...

This is probably a dumb question, but does someone here actually have one of those CPU upgrades for the LC/LCII that broke the 10MB barrier with onboard memory (like this one) and if so can they confirm that they actually create "real" RAM instead of requiring a lame hack like running Virtual Memory on a RAM disk? My impression was that the RAMdisk-as-VM thing was something that only applied to upgrades for Macs that originally came with 68000 CPUs. (In which the architecture of the host machine is very messy, the ROMs don't have any built-in 32 bit memory map support, and a software hack, IE "Compact Virtual", was needed to pull off the magic.)

Assuming the LC cards managed to pull off the creation of *real* RAM instead of just a RAMdisk then it would be worth looking into what exactly the drivers for those cards do in order to shuffle the memory map appropriately; things might be *slightly* harder on the Classic II because of the aforementioned issue of the video display being DMA'ed from the EAGLE-controlled RAM instead of being dedicated hardware mapped as a phantom Nubus card, but for the most part the same techniques would apply. (You're just stuck having to do it through the CPU socket instead of via a PDS card.)

Flipping back to those 680x0(*) accelerators for compact Macs in which "excess" RAM above the 4MB mark can *only* be used as a RAMdisk I have to admit I'm curious how that's actually accomplished, IE, is the RAM a linear block so far as the CPU is concerned but using the MMU to shuffle together a "real" 32 bit linear address space for MacOS a bridge too far given the other limitations of a 68000-targeted host machine, or do those cards have a paging unit built onto them that presents all RAM above the limit as "pages" or "sectors"?

(Edit: Changed to "680x0" because... I may be wrong, but I could sort of swear that there might have been MMU-less *68020* accellerators that also included extra RAM that could only be used for a RAMdisk? It would seem a card like that would *have* to do some interesting tricks with page-flipping in order to let it be used at all, with the magic crammed into the RAMDISK driver.)

 
Last edited by a moderator:

Bunsen

Admin-Witchfinder-General
*real* RAM instead of just a RAMdisk / RAMdisk-as-VM
Scuse me if I'm being dim*, but if that works, what's the problem?

*pun not intended.

 
Last edited by a moderator:

Gorgonops

Moderator
Staff member
The problem in this case is I have my doubts it's actually any (or much) easier to implement a fast RAMdisk on these machines than it is to just go the full extra mile bypassing the EAGLE and using it as real RAM by tickling the MMU. *If* the Classic II had a "PDS Slot space" where a writeable peripheral is intended to go then you could just wedge a "RAMdisk" device consisting of a block of memory, a page-flipper, and a suitable driver into it and go, but it doesn't. (Which makes it even more especially crippled than the *regular* LC models.) There's a ROM expansion space decoded by the EAGLE that would be big enough but it's write-only and attempting to use it otherwise would be less than trivial. Maybe(???) slightly easier from a software standpoint than the whole-hog rip-out-the-CPU-and-stick-in-a-daughterboard thing because you won't have to rewrite the screen (and possible other) device drivers, but the hardware might be just as hard and it won't work as well.

Virtual memory sucks compared to real RAM, always. Even at "RAMDISK SPEED!!!" generating a page fault, calling the memory manager, flushing a buffer (which may well mean copying pages *out* to disk if you don't have any free) and pulling the page you want in from the RAMdisk  and copying that page into the free'ed buffer is still a shedload of work compared to just, well, addressing the RAM you want directly. The overhead makes it several orders of magnitude slower than the real thing *even from a RAMDisk*.

 
Last edited by a moderator:

Bunsen

Admin-Witchfinder-General
Ahhhhh that clears things up a lot.  Thankyou.  I had no idea about the overhead, and that it may not in fact be any easier to implement.

 

Paralel

Well-known member
It would be interesting to find one of these LC upgrades in the wild. It would answer alot of questions. Hopefully someone on the forum has one. Better than trying to re-invent the wheel, so to speak.

 

Elfen

Well-known member
(Edit: Changed to "680x0" because... I may be wrong, but I could sort of swear that there might have been MMU-less *68020* accellerators that also included extra RAM that could only be used for a RAMdisk? It would seem a card like that would *have* to do some interesting tricks with page-flipping in order to let it be used at all, with the magic crammed into the RAMDISK driver.)
There were Classic Mac Accelerators that added RAM to the system; but not for the host CPU but for the accelerator's CPU. I had one for the SE long ago that used a '020 that gave 8 more megs to the system but only to the 020. The SE's 68K was blind to the extra RAM if you "Software shut off" the '020. But the '020 could access the 68k's RAM on top of it's own RAM.

But I never saw anything like this, an accelerator that added RAM, for the LC series, which would include the Classic II.

 

Paralel

Well-known member
I came across one particular accelerator online for the LC that somehow made 12 MB addressable. An extra 2 MB is not alot, but the secret in its sauce could provide alot more information about the end goal of expanding the RAM for the LC design type systems.

 
Last edited by a moderator:

Paralel

Well-known member
It could very well be, I'd have to find the page I saw it discussed on again since I didn't bookmark it. 26 MB, impressive.

I wonder if the ThunderCache Pro driver that is still available for download would reveal anything?

http://www.micromac.com/software/tcpv1.0.sit

I'd look into it myself, but that's way beyond my capabilities.

 
Last edited by a moderator:
Top