Sangokushi 2
Elements:
Chip signature:
74157+74245+74374+74670+74670+16L8+16L8+16L8+74244+27C2001D+27C2001D+74157+62256P+74157+6116L24+74125+74670+74670+7432+7474
PCB top:
PCB bottom:
Shell top:
Shell bottom:
Screenshoots:
No photo
Extra info:
EX_CPU_RAM_!EN <= '0' when CPU-A10=1 and CPU-A12='1' and CPU-A13='0' and CPU-A14='1' and CPU-!ROMSEL='1' and M2='1' else '1'
'0' when cpu accessess $5400-$57FF or $5c00-$5fff else '1'
a a
1 1
5
0101x10000000000
0101010000000000 $5400
0101011111111111 $57FF
0101110000000000 $5C00
0101111111111111 $5FFF
--------------------------------------------------------------------------------------------------------------------------
SIG78 <= '0' when CPU-A10='1' and CPU-A12='0' and CPU-A13='0' and CPU-A14='1' and CPU-!ROMSEL='1' and M2='1' else '1'
'0' when cpu accessess $4400-$47ff or $4c00-$4fff
a a
1 1
5
0100x10000000000
0100010000000000 $4400
0100011111111111 $47FF
0100110000000000 $4C00
0100111111111111 $4FFF
--------------------------------------------------------------------------------------------------------------------------
RAM-!CS <= '0' when (CPU-A13='1' and CPU-A14='1' and CPU-!ROMSEL='1' and M2='1') or (REG0_D7='0' and CPU-A14='0' and CPU-!ROMSEL='0') else '1'
'0' when cpu accessess $6000-$7fff or $8000-$bfff and reg0_d7 = '0'
011xxxxxxxxxxxxx
0110000000000000 $6000
0111111111111111 $7FFF
10xxxxxxxxxxxxxx
1000000000000000 $8000
1011111111111111 $BFFF
--------------------------------------------------------------------------------------------------------------------------
PRG-!CE <= '0' when (REG0_D7='1' and CPU-!ROMSEL='0') or (CPU-A14='1' and CPU-!ROMSEL='0') else '1'
'0' when cpu accessess ($8000-$ffff and reg0_d7='1') or $c000-$ffff
--------------------------------------------------------------------------------------------------------------------------
1=LAST_PRG_B <= '0' when CPU-A14='0' or CPU-A13='0' else '1'
1000000000000000 8000
1001111111111111 9FFF
'0' when cpu accessess $8000-$cfff, else '1'
--------------------------------------------------------------------------------------------------------------------------
PRG-A15 <= '0' when (REG0_D2='0' and CPU-A14='0') or (REG0_D2='0' and CPU-A13='0')
'0' when REG0_D2='0' and $8000-$9fff else '1'
--------------------------------------------------------------------------------------------------------------------------
CPU_D7_!EN <= '0' when CPU-R/!W='1' and CPU-A10='1' and CPU-A12='0' and CPU-A13='0' and CPU-A14='1' and CPU-!ROMSEL='1' and M2='1' else '1'
'0' when cpu reads from $4400-$47ff/$4c00-4fff else '1'
0100x10000000000
0100010000000000 $4400
0100011111111111 $47FF
0100110000000000 $4C00
0100111111111111 $4FFF
--------------------------------------------------------------------------------------------------------------------------
EX_!CPU!/PPU <= '0' when SIG83='1' or (CPU-R/!W='0' and CPU-A10='1' and CPU-A12='1' and CPU-A13='0' and CPU-A14='1' and CPU-!ROMSEL='1' and M2='1') else '1'
SIG81=1 -> allow cpu access EX_RAM (on reads?)
REG0_!WR <= '0' when CPU-A11='1' and SIG78='0' and CPU-R/!W='0' and CPU-A5='0' and CPU-A4='0' else '1'
'0' when cpu writes at $4c00-$4fff (with a5='0' and a4='0')
$4c00-$4c03 (and $4c04-$4c0f as mirrors )
CHR_MODE1_!WR <= '0' when CPU-A11='1' and SIG78='0' and CPU-R/!W='0' and CPU-A5='0' and CPU-A4='1' else '1'
'0' when cpu writes at $4c00-$4fff (with a5='0' and a4='1')
EX-!OE <= '0' when CPU-D0='1' and SIG78='0' and CPU-R/!W='0' and (CPU-A4='0' or CPU-A5='0' or CPU-A11='0') else
'0' when CPU-D0='0' and (SIG78='1' or CPU-R/!W='1' or [CPU-A11='1' and CPU-A5='1' and CPU-A4='1') else
'1';
'0' when cpu writes at $4400-$47ff with d0='1' and (CPU-A4='0' or CPU-A5='0' or CPU-A11='0')
'0' when cpu reads
SIG83 <= '0' when CPU-D1='1' and CPU-D0='0' and SIG78='0' and CPU-R/!W='0' and (CPU-A4='0' or CPU-A5='0' or CPU-A11='0') else
'0' when CPU-D1=0 and (CPU-D0='1' or SIG78='1' or CPU-R/!W='1' or (CPU-A11='1' and CPU-A5='1' and CPU-A4='1')) else
'1';
'0' when cpu-writes 0bxxxxxx10 at $4400-$47ff or $4c00-$4fff with (CPU-A4='0' or CPU-A5='0' or CPU-A11='0')
'0' when cpu_reads 0bxxxxxx01 outside of ($4400-$47ff or $4c00-$4fff)
TODO
78 - 0 when $4400-$47ff or $4c00-$4fff
CIRAM-A10 <= '0' when PPU-A10='1' and CPU-D2='0' and [(CPU-A11='1' and CPU-A5='1) or CPU-D0='1' or SIG78='1' or CPU-R/!W='1' or CPU-D1='1') else
'0' when PPU-A10='0' and CPU-D0='1' and SIG78='0' and CPU-R/!W='0' and (CPU-A5='0' or CPU-A11='0') else
'0' when PPU-A10='1' and CPU-D2='1' and CPU-D0='0' and CPU-D0='0' and SIG78='0' and CPU-R/!W='0' and (CPU-A5='0' or CPU-A11='0') else
'0' when PPU-A10='0' and CPU-D0='0' and (SIG78='1' or CPU-R/!W='1' or (CPU-A11='1' and CPU-A5='1')) else
'1'
CHR_MODE0_!WR <= '1' when PPU-!RD='1' and PPU-A13='1' else '0'
CHR_MODE1_!EN <= '0' when PPU-A12='0' and PPU-A13='0' else '1'
U16_O5 <= '0' when PPU-A13='0' and PPU-!RD='0' else '1'
CIRAM-!CS <= '1' when (PPU-A9='1' and PPU-A8='1' and PPU-A7='1' and PPU-A6='1' and PPU-!RD='0') or PPU-A13='0' else '0'
PPU_1BYTE_!EN <= '0' when PPU-!RD='0' and PPU-A13='1' and PPU-A6='1' and PPU-A7='1' and PPU-A8='1' and PPU-A9='1' else '1'
CPU_D7_VAL <= '1' when A12_CNT='1' and PPU-!RD='1' and PPU-A13='0' else '0'
CHR_MODE0_!EN <= '1' when PPU-A12='0' and PPU-A13='0' else '0'
EX-!WE <= '0' when EX_R/!W='0' and CPU-R/!W='0' else '1'
---------------------------------SANGOKUSHI 2 ----------------------------
---------------------------------pirate cart ----------------------------
v1.0 Krzysiobal
CPU ADDRESS SPACE:
$5400-$57FF, mirror $5c00-$5fff: EX_RAM (CPU-A10=1 and CPU-A12='1' and CPU-A13='0' and CPU-A14='1' and CPU-!ROMSEL='1' and M2='1')
$6000-$7fff: RAM
$8000-$bfff: RAM or ROM
$c000-$ffff: RAM
Read Registers
-----------------------------------------------------------------------------------------------------------------------s
$4400-$47ff/$4c00-4fff (A12_COUNTER)
CPU-R/!W='1' and CPU-A10='1' and CPU-A12='0' and CPU-A13='0' and CPU-A14='1' and CPU-!ROMSEL='1' and M2='1' (U5A/U9A/U9B)
765543210
|
+------------ '1' when A12_CNT='1' and PPU-!RD='1' and PPU-A13='0' else '0'
-----------------------------------------------------------------------------------------------------------------------s
Write Registers
-----------------------------------------------------------------------------------------------------------------------s
$4430 / $4c30
CPU-A11='x' a10=1, a12=0, a13=0, a14=1, !romsel=1, m2=1, and CPU-R/!W='0' and CPU-A5='1' and CPU-A4='1'
76543210
|| exnoe|sig83
++-----00: 1 0 ex_ram connected to CPU, but disabled (reads returns open bus)
01: 0 0 ex_ram conneted to CPU, reading enabled
10: 0 1 ex_ram connected to PPU, reading enabled
11: 0 1 ex_ream connected to PPU, reading enabled
-----------------------------------------------------------------------------------------------------------------------
$4420 / $4c20
CPU-A11='x' a10=1, a12=0, a13=0, a14=1, !romsel=1, m2=1, and CPU-R/!W='0' and CPU-A5='1' and CPU-A4='0'
76543210
| |
+-+-- ciram_a10 (00: 0, 01: not ppu_a10, 10: ppu_a10, 11: 1)
-----------------------------------------------------------------------------------------------------------------------
$4c00-$4c03 (PRG_BANK) (mirrors also to $4c0f all over $4fff)
a10=1, a12=0, a13=0, a14=1, !romsel=1, m2=1, a11=1, a5=0, a4=0, r/!w=0, a1=x, a0=x (U6/U7/U8A/U8B/U8C/u8D)
|$6000-$7fff|$8000-$9fff|$a000-$bfff|$c000-$dfff|$e000-$ffff|
+-----------+-----------+-----------+-----------+-----------+
CPU_A15 | 0 | 1 | 1 | 1 | 1 |
CPU_A14 | 1 | 0 | 0 | 1 | 1 |
CPU_A13 | 1 | 0 | 1 | 0 | 1 |
| |$4c00.7==0?|$4c01.7==0?| | |
MEM_TYPE | RAM | RAM : ROM | RAM : ROM| ROM | ROM |
PRG_A13 | $4c03.0 | $4c00.0 | $4c01.0 | $4c02.0 | 1 |
PRG_A14 | $4c03.1 | $4c00.1 | $4c01.1 | $4c02.1 | 1 |
PRG_A15 | | $4c00.2 | $4c01.2 | $4c02.2 | 1 |
PRG_A16 | | $4c00.3 | $4c01.3 | $4c02.3 | 1 |
PRG_A17 | | $4c00.4 | $4c01.4 | $4c02.4 | 1 |
-----------------------------------------------------------------------------------------------------------------------
$4c10-$4c13 (CHR_BANK) (mirrors also to $4c1f all over $4fff)
CPU-A11='1' a10=1, a12=0, a13=0, a14=1, !romsel=1, m2=1, and CPU-R/!W='0' and CPU-A5='0' and CPU-A4='1' else '1'
read from
$23C0-$23FF
PPU_!RD | 0 | 1xxxx | xx | 0 | 0 | 0 | 0 |
PPU_A6 | 1 | x0xxx | xx | x | x | x | x |
PPU_A7 | 1 | xx0xx | xx | x | x | x | x |
PPU_A8 | 1 | xxx0x | xx | x | x | x | x |
PPU_A9 | 1 | xxxx0 | xx | x | x | x | x |
PPU_A10 | x | xxxxx | xx | 0 | 1 | 0 | 1 |
PPU_A11 | x | xxxxx | xx | 0 | 0 | 1 | 1 |
PPU_A12 | x | xxxxx | 1x | 0 | 0 | 0 | 0 |
PPU_A13 | 1 | 11111 | x1 | 0 | 0 | 0 | 0 | 1
MEM_TYPE | PPU_1BYTE | CIRAM | EX-RAM |CHR-ROM|CHR-ROM|CHR-ROM|CHR-ROM|
CHR_A10 | | | PPU_A10 |$4c10.0|$4c11.0|$4c12.0|$4c13.0|
CHR_A11 | | | PPU_A11 |$4c10.1|$4c11.1|$4c12.1|$4c13.1|
CHR_A12 | | | L_D0 |$4c10.2|$4c11.2|$4c12.2|$4c13.2|
CHR_A13 | | | L_D1 |$4c10.3|$4c11.3|$4c12.3|$4c13.3|
CHR_A14 | | | L_D2 |$4c10.4|$4c11.4|$4c12.4|$4c13.4|
CHR_A15 | | | L_D3 |$4c10.5|$4c11.5|$4c12.5|$4c13.5|
CHR_A16 | | | L_D4 |$4c10.6|$4c11.6|$4c12.6|$4c13.6|
CHR_A17 | | | L_D5 |$4c10.7|$4c11.7|$4c12.7|$4c13.7|
note | | | (1)
(1) L_D0..L_D5 <= data latched from EX_D0_D5 when CHR_MODE0_!WR goes up (when ppu starts rendering nametables)
-----------------------------------------------------------------------------------------------------------------------
x-no matter
Comments:
Want to leave a comment?