|| FILE: #0053XX.PLD || PROJ: 20180701 || C16 - NEW GAL FOR CPU 65C816 BOARD || REPLACEMENT FOR OLD GAL26CV12 CODE #0053 || || PART: G26CV12-#0053XX || || DEV : GAL26CV12 || || DESC: MASTER DECODER || | |GAL26CV12 | || INPUT | 1:A9, 2:A10, 3:A11, 4:A12, 5:A13, 6:A14, 8:A15, 9:A16, 10:A17, | 11:A18, 12:A19, 13:A20, 14:A21, 15:A22, 16:A23, 17:VMA, 18:RW, | 24:SYS, 25:X2E, 26:RUN, 27:SEL, 28:EEN, || OUTPUT | 19:FE, 20:CS0, 22:ME, 23:EE | | ACTIVE-LOW: FE, ME, EE | | SIGNATURE: "0053XX " | || /VMA (VALID MEM. ACCESS) IS THE INVERTED (VPA OR VDA) SIGNAL || SYS, X2E, RUN, SEL, EEN: SIGNALS FROM CONTROL REGISTER || /ME (MEMORY ENABLE) SELECT SYSTEM RAM || /FE (FLASH ENABLE) SELECT FLASH CHIP || /EE (EEROM ENABLE) SELECT ROM EMULATOR || CS0 IS A PARTIAL PRODUCT TERM USED INTERNALLY || || || $000000 - $00FBFF MAPPING || --------------------------------------- || ALWAYS MAP TO SYSTEM RAM || || $00FC00 - $00FDFF MAPPING || --------------------------------------- || ALWAYS MAP TO SYSTEM I/O || || $00FE00 - $00FFFF MAPPING || --------------------------------------- || SYS RW MAP TO: || 0 1 FLASH || 0 0 RAM || 1 X RAM || || $010000 - $013FFF MAPPING || --------------------------------------- || ALWAYS MAP TO EXPANSION RAM || || $014000 - $01FFFF MAPPING || --------------------------------------- || ALWAYS MAP TO SYSTEM RAM || || $F00000 - $F7FFFF MAPPING || --------------------------------------- || RUN SEL RW MAP TO: || 0 0 1 FLASH || 0 1 1 EEROM || 1 0 X RAM || 1 1 X FLASH || || $E00000 - $EFFFFF MAPPING || --------------------------------------- || X2E MAP TO: || 0 RAM || 1 DMA || || $080000 - $0FFFFF MAPPING || --------------------------------------- || EEN RW MAP TO: || 0 X RAM || 1 1 EEROM | | || BANK $00 : $000000 - $00FFFF | BANK0 = (A23' & A22' & A21' & A20' & A19' & A18' & A17' & A16' & VMA') || || $000000 - $007FFF 32K BLOCK MAPPED TO SYSTEM RAM | RB0 = (BANK0 & A15' ) || $008000 - $00BFFF 16K BLOCK MAPPED TO SYSTEM RAM | RB1 = (BANK0 & A15 & A14' ) || $00C000 - $00DFFF 8K BLOCK MAPPED TO SYSTEM RAM | RB2 = (BANK0 & A15 & A14 & A13' ) || $00E000 - $00EFFF 4K BLOCK MAPPED TO SYSTEM RAM | RB3 = (BANK0 & A15 & A14 & A13 & A12' ) || $00F000 - $00F7FF 2K BLOCK MAPPED TO SYSTEM RAM | RB4 = (BANK0 & A15 & A14 & A13 & A12 & A11' ) || $00F800 - $00FBFF 1K BLOCK MAPPED TO SYSTEM RAM | RB5 = (BANK0 & A15 & A14 & A13 & A12 & A11 & A10') || $00FC00 - $00FDFF 512 BYTES BLOCK RESERVED FOR I/O || RB6 = (BANK0 & A15 & A14 & A13 & A12 & A11 & A10 & A9') || || $00FE00 - $00FFFF 512 BYTES BLOCK MAPPED IN SYSTEM RAM OR FLASH | RB7 = (BANK0 & A15 & A14 & A13 & A12 & A11 & A10 & A9) || RB7 MAPPED R/W TO SYSTEM RAM IF SYS=1 | RB7R1 = RB7 & SYS || RB7 MAPPED WRITE ONLY TO SYSTEM RAM IF SYS=0 AND RW=0 | RB7R2 = RB7 & SYS' & RW' || RB7 MAPPED READ ONLY TO FLASH IF SYS=0 AND RW=1 | RB7F = RB7 & SYS' & RW || || BANK $00 SYSTEM RAM SELECT | CS0A = (RB0 # RB1 # RB2 # RB3 # RB4 # RB5 # RB7R1 # RB7R2) || || BANK $01 : $010000 - $01FFFF | BANK1 = (A23' & A22' & A21' & A20' & A19' & A18' & A17' & A16 & VMA') || || $010000 - $013FFF 16K BLOCK RESERVED FOR VIDEO RAM & I/O EXPANS. RAM || BR0 = (BANK1 & A15' & A14') || $014000 - $017FFF 16K BLOCK MAPPED TO SYSTEM RAM | BR1 = (BANK1 & A15' & A14) || $018000 - $01FFFF 32K BLOCK MAPPED TO SYSTEM RAM | BR2 = (BANK1 & A15) || || BANK $01 SYSTEM RAM SELECT | CS0B = (BR1 # BR2) || || BANK $02 & $03 : $020000 - $03FFFF (128K BLOCK) MAPPED TO SYSTEM RAM | CS0C = (A23' & A22' & A21' & A20' & A19' & A18' & A17 & VMA') || || BANK $03 - $07 : $040000 - $07FFFF (256K BLOCK) MAPPED TO SYSTEM RAM | CS0D = (A23' & A22' & A21' & A20' & A19' & A18 & VMA') || || BANK $00 - $07 SYSTEM RAM SELECTION (512K BLOCK) || SIGNAL CS0 IS USED INTERNALLY AND NOT USED ON EXP. BUS | CS0 = (CS0A # CS0B # CS0C # CS0D) || || BANK $08 - $0F : $080000 - $0FFFFF 512K BLOCK | BK080F = (A23' & A22' & A21' & A20' & A19 & VMA') || BANK $08 - $0F MAPPED TO SYSTEM RAM IF EEN=0 | BK080FR = BK080F & EEN' || BANK $08 - $0F MAPPED TO EEROM IF EEN=1 & RW=1 | BK080FE = BK080F & EEN & RW || BANK $10 - $1F : $100000 - $1FFFFF 1MB BLOCK MAPPED TO SYSTEM RAM | BK101F = (A23' & A22' & A21' & A20 & VMA') || BANK $20 - $3F : $200000 - $3FFFFF 2MB BLOCK MAPPED TO SYSTEM RAM | BK203F = (A23' & A22' & A21 & VMA') || BANK $40 - $7F : $400000 - $7FFFFF 4MB BLOCK MAPPED TO SYSTEM RAM | BK407F = (A23' & A22' & VMA') || BANK $80 - $BF : $800000 - $BFFFFF 4MB BLOCK MAPPED TO SYSTEM RAM | BK80BF = (A23 & A22' & VMA') || BANK $C0 - $DF : $C00000 - $DFFFFF 2MB BLOCK MAPPED TO SYSTEM RAM | BKC0DF = (A23 & A22 & A21' & VMA') || BANK $E0 - $EF : $E00000 - $EFFFFF 1MB BLOCK MAPPED TO SYSTEM RAM IF X2E=0 | BKE0EF = (A23 & A22 & A21 & A20' & VMA' & X2E') || BANK $F0 - $F7 : $F00000 - $F7FFFF 512K BLOCK | BKF0F7 = (A23 & A22 & A21 & A20 & A19' & VMA') || BANK $F0 - $F7 MAPPED TO SYSTEM RAM IF RUN=1 AND SEL=0 | BKF0F7R = BKF0F7 & RUN & SEL' || BANK $F0 - $F7 MAPPED R/W TO FLASH IF RUN=1 AND SEL=1 | BKF0F7F1 = BKF0F7 & RUN & SEL || BANK $F0 - $F7 MAPPED READ ONLY TO FLASH IF RUN=0 AND SEL=0 | BKF0F7F2 = BKF0F7 & RUN' & SEL' & RW || BANK $F0 - $F7 MAPPED READ ONLY TO EEROM IF RUN=0 AND SEL=1 | BKF0F7E = BKF0F7 & RUN' & SEL & RW || BANK $F8 - $FF : $F80000 - $FFFFFF 512K BLOCK MAPPED TO SYSTEM RAM | BKF8FF = (A23 & A22 & A21 & A20 & A19 & VMA') | || FINAL EQUATIONS || /ME SELECT SYSTEM RAM | MEL = (CS0 # BK080FR # BK101F # BK203F # BK407F) | MEH = (BK80BF # BKC0DF # BKE0EF # BKF0F7R # BKF8FF) | ME = MEL # MEH | || /FE SELECT FLASH | FE = (RB7F # BKF0F7F1 # BKF0F7F2) | || /EE SELECT EEROM | EE = (BK080FE # BKF0F7E)