From: astoria-d Date: Fri, 6 Sep 2013 04:29:41 +0000 (+0900) Subject: - vram address increment size 32 is supported. X-Git-Tag: motonesfpga-gate-0.2.0~168 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=2502fb908466ed8e860683d7f24ab6aa0cfd71eb;p=motonesfpga%2Fmotonesfpga.git - vram address increment size 32 is supported. - test case for vertical text message added. --- diff --git a/simulation/ppu/ppu.vhd b/simulation/ppu/ppu.vhd index 0d7dda6..573d95e 100644 --- a/simulation/ppu/ppu.vhd +++ b/simulation/ppu/ppu.vhd @@ -124,6 +124,7 @@ constant PPUSCROLL : std_logic_vector(2 downto 0) := "101"; constant PPUADDR : std_logic_vector(2 downto 0) := "110"; constant PPUDATA : std_logic_vector(2 downto 0) := "111"; +constant PPUVAI : integer := 2; --vram address increment constant PPUNEN : integer := 7; --nmi enable constant ST_VBL : integer := 7; --vblank @@ -155,6 +156,8 @@ signal ppu_scroll_x : std_logic_vector (dsize - 1 downto 0); signal ppu_scroll_y : std_logic_vector (dsize - 1 downto 0); signal ppu_scroll_cnt : std_logic_vector (0 downto 0); signal ppu_addr : std_logic_vector (13 downto 0); +signal ppu_addr_inc1 : std_logic_vector (13 downto 0); +signal ppu_addr_inc32 : std_logic_vector (13 downto 0); signal ppu_addr_in : std_logic_vector (13 downto 0); signal ppu_addr_cnt : std_logic_vector (0 downto 0); signal ppu_data : std_logic_vector (dsize - 1 downto 0); @@ -210,8 +213,17 @@ begin port map (clk_n, ppu_latch_rst_n, ppu_scroll_cnt_ce_n, '1', (others => '0'), ppu_scroll_cnt); - ppu_addr_inst : counter_register generic map(14, 1) - port map (clk_n, rst_n, ppu_data_we_n, ppu_addr_we_n, ppu_addr_in, ppu_addr); +-- ppu_addr_inst : counter_register generic map(14, 1) +-- port map (clk_n, rst_n, ppu_data_we_n, ppu_addr_we_n, ppu_addr_in, ppu_addr); + + ppu_addr_inst_inc1 : counter_register generic map(14, 1) + port map (clk_n, rst_n, ppu_data_we_n, ppu_addr_we_n, ppu_addr_in, ppu_addr_inc1); + ppu_addr_inst_inc32 : counter_register generic map(14, 32) + port map (clk_n, rst_n, ppu_data_we_n, ppu_addr_we_n, ppu_addr_in, ppu_addr_inc32); + + ppu_addr <= ppu_addr_inc32 when ppu_ctrl(PPUVAI) = '1' else + ppu_addr_inc1; + ppu_addr_cnt_inst : counter_register generic map (1, 1) port map (clk_n, ppu_latch_rst_n, ppu_addr_cnt_ce_n, '1', (others => '0'), ppu_addr_cnt); diff --git a/tools/test-image/sample1.asm b/tools/test-image/sample1.asm index eeb0f8f..e9cfa48 100644 --- a/tools/test-image/sample1.asm +++ b/tools/test-image/sample1.asm @@ -90,13 +90,31 @@ copymap: dey bne copymap + ;;;vertical show test. + lda #$04 + sta $2000 + + lda #$20 + sta $2006 + lda #$cb + sta $2006 + ldx #$00 + ldy #$0d + + ;;load name table. +copymap2: + lda string, x + sta $2007 + inx + dey + bne copymap2 + + ;;scroll reg set. lda #$00 sta $2005 sta $2005 ;;show test msg. - lda #$00 - sta $2000 lda #$1e sta $2001