Expansion Memory Cards and Speed Limitations above 5MB on the Macintosh Portable

campbellashe

New Tinkerer
Sep 8, 2025
45
15
8
Asheville, NC
I'm currently in the process of developing RAM cards for my Portable. I have successfully created a 4MB and 8MB card and both work and boot.

However, I am trying to understand the issues with slow access speeds when more than 5MB are in play (1MB on the board, 4 MB on the card). Initially I thought the slow down was only post sleep. But now I realize that the slow down occurs regardless of cold boot or sleep. I haven't done in depth testing but using SNOOPER Memory Test, 85% speed with 4MB but at 8MB drops to 22% consistently.

Are there any solutions to this? Is this the GLU/DTACK issue only occurring above 5 MB total?
I was confused somewhat related to the prior discussions on this issue; I thought the impact of slow speeds was only after wake from sleep.

Thanks for any direction.

[ my board designs are available on GitHub if desired
8MB https://github.com/2tf2294x4g-maker/MacintoshPortable8MB_RAM
4MB https://github.com/2tf2294x4g-maker/MacintoshPortable4MB_RAM]
 
  • Like
Reactions: David Cook

campbellashe

New Tinkerer
Sep 8, 2025
45
15
8
Asheville, NC
8MB RAM Card — Speed Testing Results and Analysis

Following up on my earlier question about the slowdown with more than 5MB of RAM, I've done some deeper testing with my v2 8MB card (9MB total system RAM) and wanted to share the findings.

Benchmark results (Snooper Memory Move)

  • 4MB card (5MB total): 85%
  • 8MB card (9MB total): 51% -- cold boot, restart
Testing $FC0200

Based on prior discussion in this thread, I tested whether reading $FC0200 via Macsbug (DM FC0200 → G) restored speed. It made no difference — still 51%. This confirms what David Cook found with his Quiet Portable INIT: $FC0200 does not fix the slowdown with an 8MB card.

DTACKSpeedTest results (this is a small app that I created)

I ran a custom read-timing tool that tests each 1MB boundary across the expansion range against a built-in RAM baseline:

AddressTicksRatio
$100000–$4000001042–1043~1.00x
$500000–$8FC0001077~1.03x
Read timing is stable throughout the card — only 3% slower in the upper 4MB, essentially unchanged from the lower region and from onboard RAM. This is nowhere near enough to explain the drop in Snooper. But is slow throughout the range.

Conclusion: read timing is unchanged throughout the memory range .. but slow; is there a write difference?


Open questions

  • Does the GLU use different DTACK timing for write cycles vs read cycles to expansion RAM?
  • Are there other GLU registers beyond $FC0200 that control write timing?
Happy to share my rudimentary DTACKSpeedTest tool if anyone wants to run it on other cards/configurations.
 

campbellashe

New Tinkerer
Sep 8, 2025
45
15
8
Asheville, NC
I did confirm that a poke of $FC0200 after sleep does improve speed from 22% to 51% on Snooper speed test consistently. Before sleep 51%, after sleep 22% and then post poke -- back to 51%.

Addendum:
I’m using a non back lit Portable.
 
Last edited:

David Cook

Active Tinkerer
Jul 20, 2023
261
327
63
Let me try to summarize your findings:
1. The slowdown occurs even on a non-backlit Portable. (Previously, I thought this was a backlit problem.)

2. Speeds are:
A. 100% with no memory card (1 MB onboard)
B. 85% with +4MB memory card
C. 51% with +8MB memory card
D. 22% with +8MB memory card after waking from sleep
E. 51% with +8MB memory card after waking from sleep and then poking $FC0200

3. Slower speed occurs for reads at any memory location. That is, if the Portable is at 51% speed, this is true for reading onboard memory as well as the last 8MB of added memory.
 

campbellashe

New Tinkerer
Sep 8, 2025
45
15
8
Asheville, NC
1785005440681.jpeg

This is the baseline Memory Benchmark on the non back lite running Snooper 2 and OS 7.1. Bluescsi as drive.