From: rridge@csclub.uwaterloo.ca   
      
   Anssi Saari wrote:   
   >Well sure but how do you do that?   
      
   The 6510 CPU used by the Commodore 64 has built in 6-bit GPIO port,   
   which is accessable through device registers at memory locations 0000   
   and 0001. Address 0000 is the data direction register and determines   
   whether each GPIO line is a input or output. Address 0001 is the data   
   port and is where GPIO lines are read from and writen to. Bits 0, 1,   
   2 are named LORAM, HIRAM and CHAREN respectively and their lines are   
   connected to circuitry that maps ROM, RAM and I/O space in and out of the   
   C64's 64K address space. By setting LORAM and HIRAM to 0 (the state of   
   CHAREN doesn't matter) the entire 64K address space is mapped with RAM.   
   A notable exception are two device registers at 0000 and 0001 which as   
   they're built into the CPU can't be mapped out.   
      
   So presumably copy57.5K switches to the memory map where everything is   
   RAM and does the copy using the remaining 6.5K of RAM to store the code   
   that does the copying.   
      
    Ross Ridge   
      
   --   
    l/ // Ross Ridge -- The Great HTMU   
   [oo][oo] rridge@csclub.uwaterloo.ca   
   -()-/()/ http://www.csclub.uwaterloo.ca/~rridge/   
    db //    
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|