Subject: Re: Accessing other aux banks in RAM cards Newsgroups: comp.sys.apple2.programmer References: <8jjlm4$9r1$1@nnrp1.deja.com> X-Newsreader: NN version 6.5.6 (NOV) From: david@uow.edu.au (David Wilson) NNTP-Posting-Host: 130.130.64.1 Message-ID: <395d9241$1@news.uow.edu.au> Date: 1 Jul 2000 16:40:01 +1000 X-Trace: 1 Jul 2000 16:40:01 +1000, 130.130.64.1 Organization: University of Wollongong Lines: 31 Path: lobby!newstf02.news.aol.com!portc01.blue.aol.com!news.maxwell.syr.edu!news.mel.connect.com.au!news1.optus.net.au!optus!news.usyd.edu.au!news.uow.edu.au!david bobryan9@my-deja.com writes: >I can access the aux memory in a 128k apple card now. This gives me >128k to work with. Thanks to Dave for the information on programming >the softswitches. >Now I'd like to access more than one bank, like on a RamWorks III. I >have a QRAM IIE (the one that WAS sold by Quality Computers). It has >1024k. If you read the Tech Ref Manual for the //e you will find that the only I/O space decode that is present in the Aux slot is C07X. What the various manufacturers have done is decode this further with the low order address bits 0..3 to give a one byte write-only bank register, probably at $c073 or another odd address in the range $c070..c07f ($c07x is used to trigger the 558 used by the joystick so picking an odd address avoids most programs messing with the bank register (as they typically use $c070). If $c073 does not work try $c071 or $c075. This one byte register could select up to 256x 64KB banks so on a 1MB card it will probably ignore the top 4 bits. >Did the apple 1 megabyte 'slinky' card act as bank switch memory or >just a RAMDISK? I've never used one. What is it's method of switching? No, the slinky card uses 4 bytes in the slot I/O space used by the slot the card is in. If I remember correctly, $c0m0 is the LSB, $c0m1 is the middle byte and $c0m2 is the top byte of the 3 byte address (less top 4 bits). $c0m3 is a one byte read/write port to the address selected above. The neat trick with the slinky card is that each time you read or write $c0m3, the address contained in the other three bytes auto increments making it easy to copy a block of memory into (or out of) the card. -- David Wilson School of IT & CS, Uni of Wollongong, Australia