6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Nov 23, 2024 10:54 am

All times are UTC




Post new topic Reply to topic  [ 5 posts ] 
Author Message
PostPosted: Sun Apr 19, 2020 8:31 pm 
Offline

Joined: Fri Apr 06, 2018 4:20 pm
Posts: 94
I was thinking about the different memory expansion schemes used in the past on 6502 systems. I understand how the Commodore REU DMA expansion works, how GeoRam works, and how Apple II expansion up to 128K works - but I never learned how the larger cards worked on Apple IIe and IIc.

Apple’s user guides for the 1MB cards are hilarious with a technical Appendix B for assembly programming that actually tells you that you don’t need to know how it works!

I know they can be used as RAM disks, but the manual says “sophisticated programs” can directly take advantage of the expansion memory.

Does anyone know how these worked?


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 20, 2020 10:19 am 
Offline

Joined: Wed Jan 08, 2014 3:31 pm
Posts: 578
I don't know, but here's a guess based upon how the video memory in the TMS9918 works.

Memory map a latch into the 6502's address space to hold the address lines of the expanded memory. You also need to memory map the data lines of the expanded memory into the 6502's address space. The normal read and write cycles to this memory mapped location access data in the expanded memory. The TMS9918 can also auto increment the address latch allowing a sequence of bytes to be read or written.


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 20, 2020 11:10 am 
Offline
User avatar

Joined: Tue Mar 02, 2004 8:55 am
Posts: 996
Location: Berkshire, UK
From what I can find the card has a 3 byte address register which auto increments when a data register is accessed for either reading or writing. The addresses of the registers depends on the slot the card is plugged into but is in the $C000-$C033 area.

Some of code uses absolute indexed X addressing with a base address in the $BFF8-BFFB range so that any dummy reads generated by LDA/STA abs,X will not affect the registers.

I'm not sure this is exactly the same as the official Apple card.

https://github.com/a2retrosystems/mxp/tree/master/slinky/diags
https://github.com/a2retrosystems/mxp/tree/master/slinky/rom

This schematic is for a 256K card with the same kind of interface

http://john.ccac.rwth-aachen.de:8000/patrick/data/256k_RAM.pdf

_________________
Andrew Jacobs
6502 & PIC Stuff - http://www.obelisk.me.uk/
Cross-Platform 6502/65C02/65816 Macro Assembler - http://www.obelisk.me.uk/dev65/
Open Source Projects - https://github.com/andrew-jacobs


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 20, 2020 2:14 pm 
Offline

Joined: Fri Apr 06, 2018 4:20 pm
Posts: 94
BitWise wrote:
From what I can find the card has a 3 byte address register which auto increments when a data register is accessed for either reading or writing. The addresses of the registers depends on the slot the card is plugged into but is in the $C000-$C033 area.

Some of code uses absolute indexed X addressing with a base address in the $BFF8-BFFB range so that any dummy reads generated by LDA/STA abs,X will not affect the registers.

I'm not sure this is exactly the same as the official Apple card.

https://github.com/a2retrosystems/mxp/tree/master/slinky/diags
https://github.com/a2retrosystems/mxp/tree/master/slinky/rom

This schematic is for a 256K card with the same kind of interface

http://john.ccac.rwth-aachen.de:8000/patrick/data/256k_RAM.pdf


This is great! Thank you


Top
 Profile  
Reply with quote  
PostPosted: Mon Apr 20, 2020 8:17 pm 
Offline

Joined: Mon Sep 14, 2015 8:50 pm
Posts: 112
Location: Virginia USA
One method to make use of memory beyond what's available is to use overlays.

HyperC uses this method for the Apple II.

Cheers,
Andy


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 14 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: