PARTNO XXXXX ; NAME U694 ; DATE January 11, 1990 ; REV 3 ; DESIGNER Haynie ; COMPANY Commodore ; ASSEMBLY A3000+ ; LOCATION U694 ; /************************************************************************/ /* */ /* A3000+ Bus Address Mapper */ /* */ /************************************************************************/ /* Allowable Target Device Types: 16L8-10 */ /************************************************************************/ /* Free Pins: NONE */ /************************************************************************/ /* HISTORY */ /* DBH Jan 29: Descended from A3000 U714, Rev 3. */ /************************************************************************/ /** Inputs **/ PIN [9..1] = [A30..22] ; /* Bus address */ PIN 11 = A31 ; PIN [18..15] = [A21..18] ; PIN 14 = !CCS ; /* 68000 compatible cycle strobe */ /** Outputs **/ PIN 19 = !ADDRZ3 ; /* Zorro III space */ PIN 13 = !IOZ2 ; /* Zorro II I/O space */ PIN 12 = !MEMZ2 ; /* Zorro II memory space */ /** Declarations and Intermediate Variable Definitions **/ field addr = [A31..18]; /* Full system address */ field addr68k = [A23..18]; /* 68000 address subset */ /* The 68000 space doesn't always get qualified with a full 32 bit address. Thus, it must be qualified either by address or by the presence of the proper strobe. */ cyc68k = addr:[00ffffff..00000000] # CCS; /** Logic Equations **/ /* The Zorro III space occupies the bottom 1/2 of memory, except for the first 256 megabytes. The top chunk for secondary autoconfig address is also Zorro III space. */ ADDRZ3 = addr:[7fffffff..10000000] # addr:[ff00ffff..ff000000]; /* The Zorro II I/O space is in the normal 68000 $e80000..$efffff range, just like on the A2000, plus an additional 1.5 megabyte chunk right above memory space (a reasonable place to put things like Bridge Cards, if they ever fix up their decoding...). */ IOZ2 = addr68k:[00efffff..00e80000] & cyc68k # addr68k:[00b7ffff..00a00000] & cyc68k; /* The Zorro II memory space is in the normal 68000 $200000..$9fffff range, just like on the A2000. The magic cookie space shows up here for private Commodore uses, and can only be seen by the local bus. */ MEMZ2 = addr68k:[009fffff..00200000] & cyc68k # addr:[00f7ffff..00f00000];