OSDN Git Service

apu address set bug fixex!!! motonesfpga-de1-0.8.0
authorastoria-d <astoria-d@mail.goo.ne.jp>
Mon, 2 May 2016 11:43:50 +0000 (20:43 +0900)
committerastoria-d <astoria-d@mail.goo.ne.jp>
Mon, 2 May 2016 11:43:50 +0000 (20:43 +0900)
de1_nes/apu/apu.vhd
de1_nes/de1_nes.vhd
de1_nes/ppu/ppu.vhd
de1_nes/sample1-prg.hex
de1_nes/simulation/modelsim/de1_nes_run_msim_gate_vhdl.do
de1_nes/simulation/modelsim/rom-file.nes
tools/regression-test/regression.asm

index 90778a3..3194314 100644 (file)
@@ -149,7 +149,7 @@ begin
                 r_nw <= 'Z';
             elsif (dma_status = DMA_ST_SETUP) then
                 cpu_addr <= OAMADDR;
-                cpu_d <= dma_addr(dsize * 2 - 1 downto dsize);
+                cpu_d <= (others => '0');
                 r_nw <= '0';
                 dma_next_status <= DMA_ST_PROCESS;
             elsif (dma_status = DMA_ST_PROCESS) then
index a542d46..d2b5b6c 100644 (file)
@@ -379,8 +379,8 @@ begin
     dbg_ppu_scrl_x(7) <= addr(15);
     dbg_ppu_scrl_y(2 downto 0) <= dbg_p_oam_ce_rn_wn(2 downto 0);
     dbg_ppu_scrl_y(5 downto 3) <= dbg_plt_ce_rn_wn(2 downto 0);
---    dbg_disp_ptn_l (7 downto 0) <= dbg_p_oam_addr;
---    dbg_disp_ptn_l (15 downto 8) <= dbg_p_oam_data;
+    dbg_disp_ptn_l (7 downto 0) <= dbg_p_oam_addr;
+    dbg_disp_ptn_l (15 downto 8) <= dbg_p_oam_data;
 
     dbg_cpu_clk <= cpu_clk;
     dbg_mem_clk <= mem_clk;
@@ -412,7 +412,7 @@ begin
         dbg_nes_y                        ,
         dbg_vga_y                        ,
         dbg_disp_nt, dbg_disp_attr                          ,
-        dbg_disp_ptn_h, dbg_disp_ptn_l     ,
+        dbg_disp_ptn_h, dbg_disp_ptn_l_dummy     ,
         dbg_plt_ce_rn_wn                 ,
         dbg_plt_addr                     ,
         dbg_plt_data                     ,
index bf02b9d..5ed8d65 100644 (file)
@@ -405,7 +405,7 @@ begin
     end process;
     
     --cpu and ppu clock timing adjustment...
-    clk_cnt_set_p : process (rst_n, ce_n, r_nw, cpu_addr, ppu_clk)
+    clk_cnt_set_p : process (rst_n, ce_n, r_nw, cpu_addr, ppu_clk, cpu_d, ppu_clk_cnt, ppu_addr_cnt)
     begin
         if (rst_n = '0') then
             ppu_latch_rst_n <= '0';
index 88bd075..aefd1f5 100644 (file)
@@ -1,13 +1,13 @@
-:2000000078A2FF9A20588E200E8EAD868E8500AD878E850120AE8D20AE8D20AE8D20AE8D71\r
-:2000200020AE8D20AE8D20009420F48B20BC8A203E8A20D58920DE8720EE83202C812043A5\r
-:2000400081201883ADA18E8500ADA28E850120AE8D4C6B80AD3D9FD005A900200000ADB585\r
-:200060008E8500ADB68E850120AE8DA9238D0620A9C18D0620A9D88D0720A9008D0520A9C6\r
-:20008000008D0520A93C8D0603A91E8D01208D0503A9808D00208D04034C998020068EADF9\r
-:2000A000168F8500AD178F850120AE8DA9088D0320A9148D0420A94D8D0420A9038D04200F\r
-:2000C000A9648D04206020068EAD278F8500AD288F850120AE8DA9508D0C04A9648D0D04E0\r
-:2000E000A9038D0E04A9648D0F04A95A8D1004A9648D1104A9038D1204A9328D1304A964DA\r
-:200100008D2004A9658D2104A9038D2204A9C88D2304A91E8D3004A9448D3104A9038D3248\r
-:2001200004A9C88D3304A9048D14406020068EAD458F8500AD468F850120AE8D209C80201F\r
+:2000000078A2FF9A20648E201A8EAD928E8500AD938E850120BA8D20BA8D20BA8D20BA8D11\r
+:2000200020BA8D20BA8D20009420008C20C88A204A8A20E18920EA8720FA83202C81204344\r
+:2000400081201883ADAD8E8500ADAE8E850120BA8D4C6B80AD3D9FD005A900200000ADC155\r
+:200060008E8500ADC28E850120BA8DA9238D0620A9C18D0620A9D88D0720A9008D0520A9AE\r
+:20008000008D0520A93C8D0603A91E8D01208D0503A9808D00208D04034C998020128EADED\r
+:2000A000228F8500AD238F850120BA8DA9088D0320A9148D0420A94D8D0420A9038D0420EB\r
+:2000C000A9648D04206020128EAD338F8500AD348F850120BA8DA9508D0C02A9648D0D02B4\r
+:2000E000A9038D0E02A9648D0F02A95A8D1002A9648D1102A9038D1202A9328D1302A964E6\r
+:200100008D2002A9658D2102A9038D2202A9C88D2302A91E8D3002A9448D3102A9038D3254\r
+:2001200002A9C88D3302A9028D14406020128EAD518F8500AD528F850120BA8D209C8020F5\r
 :20014000C68060A212A0E5A9558D7804A9C3187D6604C918F003205480A9558D4B05A9F111\r
 :2001600018796604C946F003205480A9558D1C05A91C8566A9058567A9C338E154C96EF098\r
 :2001800003205480A9558D2204A922850AA904850BA9C301F8C9D7F003205480A9558D9E0B\r
 :2002A00000000000000000000000000000000000000000000000000000000000000000003E\r
 :2002C00000000000000000000000000000000000000000000000000000000000000000001E\r
 :2002E0000000000000000000000000000000000000000000000000000000000000000000FE\r
-:2003000000A901C901F08020068EADE98E8500ADEA8E850120AE8D60A000A2418600A2008B\r
-:200320008A990004C8A500C95BD004A9418500E600990004C8A901990004C88A6903AA2A9E\r
-:20034000990004C8D0DAA9048D144020068EAD088F8500AD098F850120AE8D60A000B900A4\r
-:2003600004186901990004C8C8C8C8D0F1A9048D144060207D8320D383205C8340CE0603DF\r
-:20038000D050AD050329E78D01208D0503A93C8D0603AD0703F008CE0703A9314CA483EEF8\r
-:2003A0000703A932AE00038E0620AE01038E0620A2338E0720AE00038E0620EE0103AE01FD\r
-:2003C000038E06208D0720AD050309188D01208D050360A9008D05208D0203AE0303E8E0D0\r
-:2003E000F0D002A200A2008E05208E030360ADD88E8500ADD98E850120AE8D08A9004828A2\r
-:20040000A9EA086829EFC9A0F003205480A9004828A900086829EFC922F003205480A900AC\r
-:200420004828A2A4086829EFC9A0F003205480A9004828A200086829EFC922F00320548019\r
-:20044000A9004828A02B086829EFC920F003205480A9004828A0BB086829EFC9A0F00320E8\r
-:200460005480A9004828A000086829EFC922F003205480A9FBA9C348288D0105086829EFFA\r
-:20048000C9E3F003205480A2FBA9C348288E0F05086829EFC9E3F003205480A000A9C3483F\r
-:2004A000288C1005086829EFC9E3F003205480A9C34828AA086829EFC9E1F003205480A910\r
-:2004C000004828AA086829EFC922F003205480A9C34828A8086829EFC9E1F003205480C04B\r
-:2004E000C3F003205480A9004828A8086829EFC922F003205480C000F003205480A9C348DC\r
-:2005000028BA086829EFC9E1F003205480BA8AA8A900AA9AA9C34828BA086829EFC963F0CD\r
-:2005200003205480E000F00320548098AA9AA259A9C348288A086829EFC961F00320548027\r
-:20054000A2ACA9C348288A086829EFC9E1F003205480A200A9C348288A086829EFC963F022\r
-:2005600003205480BA8AA8A200A9C348289A086829EFC963F000A29AA9C348289A08682991\r
-:20058000EFC9E1F00098AA9AA000A9C3482898086829EFC963F003205480A0B5A9C3482816\r
-:2005A00098086829EFC9E1F003205480A9C34828A0C0845018A930655008AA6829EFC9A039\r
-:2005C000F003205480E0F0F003205480A9C34828A0EE8C500538A9AD6D500508AA6829EFB0\r
-:2005E000C9A1F003205480E09CF003205480A9C34828A0EE8C510538A9116D500508AA682D\r
-:2006000029EFC923F003205480E000F003205480A9C34828A04B8C520538A9646D5205086D\r
-:20062000AA6829EFC9E0F003205480E0B0F003205480A9C34828A08E84E4A9B3A23035B400\r
-:2006400008AA6829EFC9E1F003205480E082F003205480A9C34828A07E8CE404A981A23024\r
-:200660003DB40408AA6829EFC963F003205480E000F003205480A9C34828A9B30A08AA681D\r
-:2006800029EFC961F003205480E066F003205480A9C34828A961857BA2CE16AD086829EF63\r
-:2006A000C9E0F003205480B4ADC0C2F003205480A9C34828A98085E506E5086829EFC963D2\r
-:2006C000F003205480A4E5C000F003205480A9C34828A90085E5A90124E5086829EFC923ED\r
-:2006E000F003205480A9C34828A94A8D4004A9012C4004086829EFC963F003205480A9C352\r
-:200700004828A9918DE504A9E5A0F2D9F303086829EFC961F003205480A9C34828A2E58E40\r
-:20072000E504A9E5A0F2D9F303086829EFC963F003205480A9C34828A27E8ED705A9E585CD\r
-:2007400010A9048511A0F2A945D110086829EFC9E0F003205480BA8650A2D9A9C348289A4C\r
-:20076000086829EFC9E1F000A200A9C348289A086829EFC963F000A6509AA000A90BA9C34B\r
-:20078000482898086829EFC963F00320548098C900F003205480A0B0A900A9C348289808F9\r
-:2007A0006829EFC9E1F00320548098C9B0F003205480A9768572A9058573A9918D7605A290\r
-:2007C000A3A9C34828A99961CF08AA6829EFC961F003205480E02BF0032054802860AD5866\r
-:2007E0008F8500AD598F850120AE8D18900320548038B003205480A900F00320548018E960\r
-:20080000053003205480D003205480186906100320548038A992E946700320548038A992DB\r
-:20082000E9125003205480A900A200F07B4CA888EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAA4\r
+:2003000000A901C901F08020128EADF58E8500ADF68E850120BA8D60AD3E9FD00160A000AB\r
+:20032000A2418600A2008A990002C8A500C95BD004A9418500E600990002C8A9019900022B\r
+:20034000C88A6903AA2A990002C8D0DAA9028D144020128EAD148F8500AD158F850120BA2C\r
+:200360008D60AD3E9FD00160A000B90002186901990002C8C8C8C8D0F1A9028D1440602070\r
+:20038000898320DF8320628340CE0603D050AD050329E78D01208D0503A93C8D0603AD075C\r
+:2003A00003F008CE0703A9314CB083EE0703A932AE00038E0620AE01038E0620A2338E0709\r
+:2003C00020AE00038E0620EE0103AE01038E06208D0720AD050309188D01208D050360A96A\r
+:2003E000008D05208D0203AE0303E8E0F0D002A200A2008E05208E030360ADE48E8500AD3F\r
+:20040000E58E850120BA8D08A9004828A9EA086829EFC9A0F003205480A9004828A9000826\r
+:200420006829EFC922F003205480A9004828A2A4086829EFC9A0F003205480A9004828A278\r
+:2004400000086829EFC922F003205480A9004828A02B086829EFC920F003205480A9004815\r
+:2004600028A0BB086829EFC9A0F003205480A9004828A000086829EFC922F003205480A965\r
+:20048000FBA9C348288D0105086829EFC9E3F003205480A2FBA9C348288E0F05086829EF34\r
+:2004A000C9E3F003205480A000A9C348288C1005086829EFC9E3F003205480A9C34828AAEB\r
+:2004C000086829EFC9E1F003205480A9004828AA086829EFC922F003205480A9C34828A862\r
+:2004E000086829EFC9E1F003205480C0C3F003205480A9004828A8086829EFC922F0032032\r
+:200500005480C000F003205480A9C34828BA086829EFC9E1F003205480BA8AA8A900AA9AD8\r
+:20052000A9C34828BA086829EFC963F003205480E000F00320548098AA9AA259A9C3482810\r
+:200540008A086829EFC961F003205480A2ACA9C348288A086829EFC9E1F003205480A20009\r
+:20056000A9C348288A086829EFC963F003205480BA8AA8A200A9C348289A086829EFC963C2\r
+:20058000F000A29AA9C348289A086829EFC9E1F00098AA9AA000A9C3482898086829EFC956\r
+:2005A00063F003205480A0B5A9C3482898086829EFC9E1F003205480A9C34828A0C08450FF\r
+:2005C00018A930655008AA6829EFC9A0F003205480E0F0F003205480A9C34828A0EE8C50F6\r
+:2005E0000538A9AD6D500508AA6829EFC9A1F003205480E09CF003205480A9C34828A0EE56\r
+:200600008C510538A9116D500508AA6829EFC923F003205480E000F003205480A9C348289C\r
+:20062000A04B8C520538A9646D520508AA6829EFC9E0F003205480E0B0F003205480A9C33E\r
+:200640004828A08E84E4A9B3A23035B408AA6829EFC9E1F003205480E082F003205480A9C8\r
+:20066000C34828A07E8CE404A981A2303DB40408AA6829EFC963F003205480E000F003208C\r
+:200680005480A9C34828A9B30A08AA6829EFC961F003205480E066F003205480A9C34828F8\r
+:2006A000A961857BA2CE16AD086829EFC9E0F003205480B4ADC0C2F003205480A9C348283F\r
+:2006C000A98085E506E5086829EFC963F003205480A4E5C000F003205480A9C34828A9004C\r
+:2006E00085E5A90124E5086829EFC923F003205480A9C34828A94A8D4004A9012C400408C0\r
+:200700006829EFC963F003205480A9C34828A9918DE504A9E5A0F2D9F303086829EFC96119\r
+:20072000F003205480A9C34828A2E58EE504A9E5A0F2D9F303086829EFC963F0032054806E\r
+:20074000A9C34828A27E8ED705A9E58510A9048511A0F2A945D110086829EFC9E0F0032028\r
+:200760005480BA8650A2D9A9C348289A086829EFC9E1F000A200A9C348289A086829EFC999\r
+:2007800063F000A6509AA000A90BA9C3482898086829EFC963F00320548098C900F003209F\r
+:2007A0005480A0B0A900A9C3482898086829EFC9E1F00320548098C9B0F003205480A976C8\r
+:2007C0008572A9058573A9918D7605A2A3A9C34828A99961CF08AA6829EFC961F0032054E4\r
+:2007E00080E02BF0032054802860AD648F8500AD658F850120BA8D18900320548038B003C2\r
+:20080000205480A900F00320548018E9053003205480D0032054801869061003205480389A\r
+:20082000A992E946700320548038A992E9125003205480A900A200F07B4CB488EAEAEAEA4C\r
 :20084000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA58\r
 :20086000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA38\r
 :20088000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA18\r
-:2008A000EAEAEAEAEAEAEAEAE8E001F080A900A200F07B4C2E89EAEAEAEAEAEAEAEAEAEAD2\r
-:2008C000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAD8\r
+:2008A000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE8E001F080A900A200F07B4CB5\r
+:2008C0003A89EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE9\r
 :2008E000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAB8\r
 :20090000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA97\r
-:20092000EAEAEAEAEAEAEAEAEAEAEAEAEAEAE8E001F08018A964204089C9C8F00E20548021\r
-:20094000204489602048896069646038A9C84C5B8969324C60894C518969324C568969329C\r
-:20096000C9FBF00320548038A9C36C6D897F8975897A8984896C718969E669E66C73896CD8\r
-:200980006F8969E6C9AAF003205480A92348A94648A96E48380878081808A9FF08A90008CB\r
-:2009A000A9FF28F0032054802830032054802890032054802828B0032054805868C96EF0A4\r
-:2009C0000320548068C946F00320548068C923F00320548060AD6A8F8500AD6B8F850120AF\r
-:2009E000AE8DA939856BA9A18DCC04A99F85FFA2FD066BA56BC972F003205480CECC04ADEA\r
-:200A0000CC04C9A0F0032054805ECF03ADCC04C950F003205480F602A5FFC9A0F00320549D\r
-:200A2000801836023602A5FFC981F0032054803876027602A5FFC9E0F00320548060AD7CF4\r
-:200A40008F8500AD7D8F850120AE8DA97885A1A90585A2A9B7A2E1A08A85A98E990A9D8043\r
-:200A60000D941F91A1C5A9F003205480EC990AF003205480CD610EF003205480C400F003DF\r
-:200A8000205480CD0206F003205480A9F185B0A90585B1A27CA9618134ADF105C961F00356\r
-:200AA000205480A9AA8520A9048521A0EC8CAA04A21BA105C9ECF00320548060AD8E8F8583\r
-:200AC00000AD8F8F850120AE8D18A90D69FAC907F003205480A937855EA9C98571A9B625D3\r
-:200AE0005E2471F003205480A93B8D2104A9D78D1B05A9EB8DCC06AE2104E88A4D1B05A80C\r
-:200B0000CCCC06F003205480A217A0A1A92F8D5903A9909990018A19900138FD4203A8C01C\r
-:200B200068F003205480A2CDA9F18535A9AC85BCA98D3568A09A592200AAE02DF003205467\r
-:200B400080A9388590A9088591A9D98D0209A90AA0CA187190C9E3F003205480A93385C054\r
-:200B6000A90485C1A9D08D3304A26BA922386155C9F3F003205480A93485C1A90485C2A91C\r
-:200B8000F58D3404E8A91F2155C915F003205480A93585C2A90485C3A0758C3504E8A975B6\r
-:200BA000C155F003205480A93685C3A90485C4A9888D3604E8A9C14155C949F00320548042\r
-:200BC000A93785C4A90485C5A92E8D3704E8A9910155C9BFF003205480A93885C5A9048512\r
-:200BE000C6A97F8D3804E8A96A18E155C9EAF00320548060ADA08F8500ADA18F850120AE69\r
-:200C00008DA980180AF003205480B00320548010032054800AF003205480900320548010DF\r
-:200C200003205480A9400AD00320548090032054803003205480C980F003205480A9A50ACD\r
-:200C4000C94AF0032054800AC994F003205480A901084828B00320548018900320548028BC\r
-:200C6000A9400848287003205480B8500320548028A203CAD003205480E002F00320548086\r
-:200C80001003205480CAD003205480E001F0032054801003205480CAF003205480E000F06C\r
-:200CA000032054801003205480CAD0032054803003205480E0FFF003205480A28030032043\r
-:200CC0005480CA1003205480E07FF003205480A05088C04FF00320548088C04EF0032054BE\r
-:200CE00080C8C04FF003205480E8E080F003205480A901184AF003205480B0032054804AA3\r
-:200D0000F0032054809003205480A95A4AC92DF003205480A9A5386AC9D2F0032054806A5F\r
-:200D20009003205480C9E9F003205480182A2AC9A5F003205480B00320548008A90048280A\r
-:200D4000900320548038B0032054807808682904D0032054805808682904F003205480284D\r
-:200D6000A901AA1003205480D003205480E001F003205480CA8A1003205480F00320548047\r
-:200D8000A901A8C8C898C003F003205480BA8600A2309AA9DD48BAE02FF003205480A6005F\r
-:200DA0009AA9EEAD3001C9DDF0032054806020068EAD00038D0620AD01038D0620A000B16B\r
-:200DC000008D0720F004C84CBF8D98291FC91FF009A9008D0720C84CCA8DAD01038C010341\r
-:200DE0006D01038D0103AAAD000390061869018D0003C923D00F8AC9C0D00AA9208D0003DE\r
-:200E0000A9008D010360AD3D9FD00268686020068EA9008D00208D04038D01208D0503A923\r
-:200E20003F8D0620A9008D0620A200A020BD388E8D0720E888D0F6600F0010200F041424AB\r
-:200E40000F0818280F0C1C2C0F0010200F0616260F0818280F0A1A2AAD3D9FF028A9208D9D\r
-:200E60000003A9018D0103A9008D0203A9008D0303A9008D0403A9008D0503A9008D060303\r
-:200E8000A9008D070360888E72656772657373696F6E20746573742073746172742E2E2EA3\r
-:200EA00000A38E74657374207375636365656465642E2E2E00B78E74657374206661696C31\r
-:200EC000656421212100C88E6164647265737320746573742E2E2E00DA8E73746174757334\r
-:200EE00020746573742E2E2E00EB8E7061676520626F726465722063726F7373696E67202C\r
-:200F0000746573742E2E2E000A8F646D6120746573742E2E2E00188F737072697465207480\r
-:200F20006573742E2E2E00298F73696D706C652073707269746520746573742028646D6188\r
-:200F4000292E2E2E00478F70707520696E737420746573742E2E2E005A8F613520696E7382\r
-:200F60007420746573742E2E2E006C8F613420696E737420746573742E2E2E007E8F61331A\r
-:200F800020696E737420746573742E2E2E00908F613220696E737420746573742E2E2E000F\r
-:200FA000A28F73696E676C65206279746520696E737420746573742E2E2E00000000000062\r
-:200FC000000000000000000000000000000000000000000000000000000000000000000011\r
+:20092000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE8E001F08018A2\r
+:20094000A964204C89C9C8F00E205480205089602054896069646038A9C84C678969324C63\r
+:200960006C894C5D8969324C62896932C9FBF00320548038A9C36C79898B89818986899069\r
+:20098000896C7D8969E669E66C7F896C7B8969E6C9AAF003205480A92348A94648A96E4887\r
+:2009A000380878081808A9FF08A90008A9FF28F00320548028300320548028900320548041\r
+:2009C0002828B0032054805868C96EF00320548068C946F00320548068C923F003205480A9\r
+:2009E00060AD768F8500AD778F850120BA8DA939856BA9A18DCC04A99F85FFA2FD066BA5C6\r
+:200A00006BC972F003205480CECC04ADCC04C9A0F0032054805ECF03ADCC04C950F0032005\r
+:200A20005480F602A5FFC9A0F0032054801836023602A5FFC981F003205480387602760271\r
+:200A4000A5FFC9E0F00320548060AD888F8500AD898F850120BA8DA97885A1A90585A2A942\r
+:200A6000B7A2E1A08A85A98E990A9D800D941F91A1C5A9F003205480EC990AF003205480D9\r
+:200A8000CD610EF003205480C400F003205480CD0206F003205480A9F185B0A90585B1A277\r
+:200AA0007CA9618134ADF105C961F003205480A9AA8520A9048521A0EC8CAA04A21BA105D3\r
+:200AC000C9ECF00320548060AD9A8F8500AD9B8F850120BA8D18A90D69FAC907F003205493\r
+:200AE00080A937855EA9C98571A9B6255E2471F003205480A93B8D2104A9D78D1B05A9EB96\r
+:200B00008DCC06AE2104E88A4D1B05A8CCCC06F003205480A217A0A1A92F8D5903A990990A\r
+:200B200090018A19900138FD4203A8C068F003205480A2CDA9F18535A9AC85BCA98D356893\r
+:200B4000A09A592200AAE02DF003205480A9388590A9088591A9D98D0209A90AA0CA1871C5\r
+:200B600090C9E3F003205480A93385C0A90485C1A9D08D3304A26BA922386155C9F3F0038C\r
+:200B8000205480A93485C1A90485C2A9F58D3404E8A91F2155C915F003205480A93585C2D7\r
+:200BA000A90485C3A0758C3504E8A975C155F003205480A93685C3A90485C4A9888D36044E\r
+:200BC000E8A9C14155C949F003205480A93785C4A90485C5A92E8D3704E8A9910155C9BF75\r
+:200BE000F003205480A93885C5A90485C6A97F8D3804E8A96A18E155C9EAF00320548060B7\r
+:200C0000ADAC8F8500ADAD8F850120BA8DA980180AF003205480B0032054801003205480B1\r
+:200C20000AF00320548090032054801003205480A9400AD0032054809003205480300320A1\r
+:200C40005480C980F003205480A9A50AC94AF0032054800AC994F003205480A901084828CE\r
+:200C6000B00320548018900320548028A9400848287003205480B8500320548028A203CAA8\r
+:200C8000D003205480E002F0032054801003205480CAD003205480E001F003205480100351\r
+:200CA000205480CAF003205480E000F0032054801003205480CAD003205480300320548009\r
+:200CC000E0FFF003205480A2803003205480CA1003205480E07FF003205480A05088C04F67\r
+:200CE000F00320548088C04EF003205480C8C04FF003205480E8E080F003205480A90118E1\r
+:200D00004AF003205480B0032054804AF0032054809003205480A95A4AC92DF00320548019\r
+:200D2000A9A5386AC9D2F0032054806A9003205480C9E9F003205480182A2AC9A5F00320CA\r
+:200D40005480B00320548008A9004828900320548038B0032054807808682904D003205435\r
+:200D6000805808682904F00320548028A901AA1003205480D003205480E001F00320548005\r
+:200D8000CA8A1003205480F003205480A901A8C8C898C003F003205480BA8600A2309AA998\r
+:200DA000DD48BAE02FF003205480A6009AA9EEAD3001C9DDF0032054806020128EAD00034C\r
+:200DC0008D0620AD01038D0620A000B1008D0720F004C84CCB8D98291FC91FF009A9008DA0\r
+:200DE0000720C84CD68DAD01038C01036D01038D0103AAAD000390061869018D0003C92324\r
+:200E0000D00F8AC9C0D00AA9208D0003A9008D010360AD3D9FD00268686020128EA9008D92\r
+:200E200000208D04038D01208D0503A93F8D0620A9008D0620A200A020BD448E8D0720E837\r
+:200E400088D0F6600F0010200F0414240F0818280F0C1C2C0F0010200F0616260F081828B9\r
+:200E60000F0A1A2AAD3D9FF028A9208D0003A9018D0103A9008D0203A9008D0303A9008D33\r
+:200E80000403A9008D0503A9008D0603A9008D070360948E72656772657373696F6E207437\r
+:200EA0006573742073746172742E2E2E00AF8E74657374207375636365656465642E2E2EC2\r
+:200EC00000C38E74657374206661696C656421212100D48E616464726573732074657374F1\r
+:200EE0002E2E2E00E68E73746174757320746573742E2E2E00F78E7061676520626F7264FD\r
+:200F000065722063726F7373696E6720746573742E2E2E00168F646D6120746573742E2EF5\r
+:200F20002E00248F73707269746520746573742E2E2E00358F73696D706C652073707269A3\r
+:200F4000746520746573742028646D61292E2E2E00538F70707520696E73742074657374B6\r
+:200F60002E2E2E00668F613520696E737420746573742E2E2E00788F613420696E7374207A\r
+:200F8000746573742E2E2E008A8F613320696E737420746573742E2E2E009C8F61322069CB\r
+:200FA0006E737420746573742E2E2E00AE8F73696E676C65206279746520696E737420746D\r
+:200FC0006573742E2E2E00000000000000000000000000000000000000000000000000003B\r
 :200FE0000000000000000000000000000000000000000000000000000000000000000000F1\r
 :201000000000000000000000000000000000000000000000000000000000000000000000D0\r
 :201020000000000000000000000000000000000000000000000000000000000000000000B0\r
 :201EC0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AC2\r
 :201EE0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2C9FEA6C29\r
 :201F0000FC9E4C2F9F4CFE944CFD954CFC964CFC974CFF984CFC994CFB9A4CF49B4CFC9C30\r
-:201F20004C009D4CFD9D4C019E4CFE9E4C029FADC68E8500ADC78E850120AE8D6001000048\r
+:201F20004C009D4CFD9D4C019E4CFE9E4C029FADD28E8500ADD38E850120BA8D6001010023\r
 :201F4000000000000000000000000000000000000000000000000000000000000000000081\r
 :201F6000000000000000000000000000000000000000000000000000000000000000000061\r
 :201F8000000000000000000000000000000000000000000000000000000000000000000041\r
 :201FA000000000000000000000000000000000000000000000000000000000000000000021\r
 :201FC000000000000000000000000000000000000000000000000000000000000000000001\r
-:201FE00000000000000000000000000000000000000000000000000000007383008000006B\r
+:201FE00000000000000000000000000000000000000000000000000000007F83008000005F\r
 :00000001FF\r
index a518878..d6ee878 100644 (file)
@@ -40,59 +40,64 @@ add wave -label ea_carry   -radix decimal -unsigned  sim:/testbench_motones_sim/
 \r
 \r
 \r
-add wave -divider regs\r
-\r
+#add wave -divider regs\r
+#\r
 #add wave -label pcl  -radix hex sim:/testbench_motones_sim/sim_board/dbg_ppu_ctrl\r
 #add wave -label pch  -radix hex sim:/testbench_motones_sim/sim_board/dbg_ppu_mask\r
-\r
-add wave -label acc    -radix hex sim:/testbench_motones_sim/sim_board/dbg_acc\r
-add wave -label sp     -radix hex sim:/testbench_motones_sim/sim_board/dbg_sp\r
-add wave -label x      -radix hex sim:/testbench_motones_sim/sim_board/dbg_x\r
-add wave -label y      -radix hex sim:/testbench_motones_sim/sim_board/dbg_y\r
-add wave -label status -radix hex sim:/testbench_motones_sim/sim_board/dbg_status\r
-\r
-\r
-#add wave -divider ppu\r
-#add wave -label ppu_clk    sim:/testbench_motones_sim/sim_board/dbg_ppu_clk\r
-#add wave -label ppu_ce_n          sim:/testbench_motones_sim/sim_board/dbg_ppu_ce_n\r
-#add wave -label ppu_ctrl  -radix hex sim:/testbench_motones_sim/sim_board/dbg_ppu_ctrl\r
-#add wave -label ppu_mask  -radix hex sim:/testbench_motones_sim/sim_board/dbg_ppu_mask\r
-##add wave -label ppu_status   -radix hex sim:/testbench_motones_sim/sim_board/dbg_ppu_status\r
-#add wave -label ppu_addr -radix hex sim:/testbench_motones_sim/sim_board/dbg_ppu_addr\r
-#add wave -label ppu_data -radix hex sim:/testbench_motones_sim/sim_board/dbg_ppu_data\r
-\r
-\r
-###add wave -divider vga_pos\r
-####add wave -label nes_x           -radix decimal -unsigned  sim:/testbench_motones_sim/sim_board/dbg_ppu_addr\r
-###add wave -label dbg_disp_nt     -radix hex sim:/testbench_motones_sim/sim_board/dbg_disp_nt\r
-###add wave -label dbg_disp_attr   -radix hex sim:/testbench_motones_sim/sim_board/dbg_disp_attr\r
-####add wave -label dbg_disp_ptn_h  -radix hex sim:/testbench_motones_sim/sim_board/dbg_disp_ptn_h\r
-####add wave -label dbg_disp_ptn_l  -radix hex sim:/testbench_motones_sim/sim_board/dbg_disp_ptn_l\r
-###\r
-###add wave -divider vram\r
-###add wave -label ale sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_x(0)\r
-###add wave -label rd_n sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_x(1)\r
-###add wave -label wr_n sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_x(2)\r
-###add wave -label nt0_ce_n sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_x(3)\r
-###\r
-###add wave  -radix hex -label v_addr sim:/testbench_motones_sim/sim_board/dbg_disp_ptn_l\r
-###add wave  -radix hex -label vram_ad sim:/testbench_motones_sim/sim_board/dbg_vram_ad\r
-###\r
-###\r
-###add wave -label plt_ce_n sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_y(5)\r
-###add wave -label plt_r_n sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_y(4)\r
-###add wave -label plt_w_n sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_y(3)\r
-###add wave  -radix hex -label plt_addr {sim:/testbench_motones_sim/sim_board/dbg_disp_ptn_h(12 downto 8)}\r
-###add wave  -radix hex -label plt_data {sim:/testbench_motones_sim/sim_board/dbg_disp_ptn_h(7 downto 0)}\r
-###\r
-###\r
-###\r
-###add wave -divider vga_out\r
-###add wave -label h_sync_n    sim:/testbench_motones_sim/sim_board/v_sync_n\r
-###add wave -label v_sync_n    sim:/testbench_motones_sim/sim_board/h_sync_n\r
-###add wave -label r           -radix hex sim:/testbench_motones_sim/sim_board/r\r
-###add wave -label g           -radix hex sim:/testbench_motones_sim/sim_board/g\r
-###add wave -label b           -radix hex sim:/testbench_motones_sim/sim_board/b\r
+#\r
+#add wave -label acc    -radix hex sim:/testbench_motones_sim/sim_board/dbg_acc\r
+#add wave -label sp     -radix hex sim:/testbench_motones_sim/sim_board/dbg_sp\r
+#add wave -label x      -radix hex sim:/testbench_motones_sim/sim_board/dbg_x\r
+#add wave -label y      -radix hex sim:/testbench_motones_sim/sim_board/dbg_y\r
+#add wave -label status -radix hex sim:/testbench_motones_sim/sim_board/dbg_status\r
+\r
+\r
+add wave -divider ppu\r
+add wave -label ppu_clk    sim:/testbench_motones_sim/sim_board/dbg_ppu_clk\r
+add wave -label ppu_ce_n          sim:/testbench_motones_sim/sim_board/dbg_ppu_ce_n\r
+add wave -label ppu_ctrl  -radix hex sim:/testbench_motones_sim/sim_board/dbg_ppu_ctrl\r
+add wave -label ppu_mask  -radix hex sim:/testbench_motones_sim/sim_board/dbg_ppu_mask\r
+add wave -label ppu_status   -radix hex sim:/testbench_motones_sim/sim_board/dbg_ppu_status\r
+add wave -label ppu_addr -radix hex sim:/testbench_motones_sim/sim_board/dbg_ppu_addr\r
+add wave -label ppu_data -radix hex sim:/testbench_motones_sim/sim_board/dbg_ppu_data\r
+\r
+\r
+#add wave -divider vga_pos\r
+##add wave -label nes_x           -radix decimal -unsigned  sim:/testbench_motones_sim/sim_board/dbg_ppu_addr\r
+#add wave -label dbg_disp_nt     -radix hex sim:/testbench_motones_sim/sim_board/dbg_disp_nt\r
+#add wave -label dbg_disp_attr   -radix hex sim:/testbench_motones_sim/sim_board/dbg_disp_attr\r
+##add wave -label dbg_disp_ptn_h  -radix hex sim:/testbench_motones_sim/sim_board/dbg_disp_ptn_h\r
+##add wave -label dbg_disp_ptn_l  -radix hex sim:/testbench_motones_sim/sim_board/dbg_disp_ptn_l\r
+#\r
+add wave -divider vram\r
+#add wave -label ale sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_x(0)\r
+#add wave -label rd_n sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_x(1)\r
+#add wave -label wr_n sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_x(2)\r
+#add wave -label nt0_ce_n sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_x(3)\r
+\r
+add wave  -radix hex -label v_addr {sim:/testbench_motones_sim/sim_board/dbg_sp(5 downto 0)}\r
+add wave  -radix hex -label vram_ad sim:/testbench_motones_sim/sim_board/dbg_vram_ad\r
+\r
+#add wave -label plt_ce_n sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_y(5)\r
+#add wave -label plt_r_n sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_y(4)\r
+#add wave -label plt_w_n sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_y(3)\r
+add wave -label oam_ce_n sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_y(2)\r
+add wave -label oam_r_n sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_y(1)\r
+add wave -label oam_w_n sim:/testbench_motones_sim/sim_board/dbg_ppu_scrl_y(0)\r
+#add wave  -radix hex -label plt_addr {sim:/testbench_motones_sim/sim_board/dbg_disp_ptn_h(12 downto 8)}\r
+#add wave  -radix hex -label plt_data {sim:/testbench_motones_sim/sim_board/dbg_disp_ptn_h(7 downto 0)}\r
+\r
+\r
+add wave -divider oam\r
+add wave  -radix hex -label p_oam_addr {sim:/testbench_motones_sim/sim_board/dbg_disp_ptn_l (7 downto 0)}\r
+add wave  -radix hex -label p_oam_data {sim:/testbench_motones_sim/sim_board/dbg_disp_ptn_l (15 downto 8)}\r
+\r
+#add wave -divider vga_out\r
+#add wave -label h_sync_n    sim:/testbench_motones_sim/sim_board/v_sync_n\r
+#add wave -label v_sync_n    sim:/testbench_motones_sim/sim_board/h_sync_n\r
+#add wave -label r           -radix hex sim:/testbench_motones_sim/sim_board/r\r
+#add wave -label g           -radix hex sim:/testbench_motones_sim/sim_board/g\r
+#add wave -label b           -radix hex sim:/testbench_motones_sim/sim_board/b\r
 \r
 \r
 view structure\r
index a85b105..fad7035 100644 (file)
Binary files a/de1_nes/simulation/modelsim/rom-file.nes and b/de1_nes/simulation/modelsim/rom-file.nes differ
index 8c011ec..269a6b9 100644 (file)
@@ -159,47 +159,47 @@ mainloop:
 ;;set sprite addr=0C (forth sprite)\r
 ;;set sprite data: y=80\r
        lda     #80\r
-       sta     $040C\r
+       sta     $020C\r
 ;;tile=0x4d (ascii 'd')\r
        lda     #$64\r
-       sta     $040D\r
+       sta     $020D\r
 ;;set sprite attr=03 (palette 03)\r
        lda     #$03\r
-       sta     $040E\r
+       sta     $020E\r
 ;;set sprite data: x=100\r
        lda     #$64\r
-       sta     $040F\r
+       sta     $020F\r
 \r
     ;;more sprite...\r
        lda     #90\r
-       sta     $0410\r
+       sta     $0210\r
        lda     #$64\r
-       sta     $0411\r
+       sta     $0211\r
        lda     #$03\r
-       sta     $0412\r
+       sta     $0212\r
        lda     #50\r
-       sta     $0413\r
+       sta     $0213\r
 \r
        lda     #100\r
-       sta     $0420\r
+       sta     $0220\r
        lda     #$65\r
-       sta     $0421\r
+       sta     $0221\r
        lda     #$03\r
-       sta     $0422\r
+       sta     $0222\r
        lda     #200\r
-       sta     $0423\r
+       sta     $0223\r
 \r
        lda     #30\r
-       sta     $0430\r
+       sta     $0230\r
        lda     #$44\r
-       sta     $0431\r
+       sta     $0231\r
        lda     #$03\r
-       sta     $0432\r
+       sta     $0232\r
        lda     #200\r
-       sta     $0433\r
+       sta     $0233\r
 \r
     ;;dma start.\r
-    lda #$04\r
+    lda #$02\r
     sta $4014\r
 \r
     rts\r
@@ -528,6 +528,11 @@ mainloop:
 .endproc\r
 \r
 .proc dma_test\r
+    lda full_dma_test\r
+    bne :+\r
+    rts\r
+:\r
+\r
     ;;dma test data.\r
     ldy #$00\r
     ldx #$41\r
@@ -536,7 +541,7 @@ mainloop:
 dma_set:\r
     ;;y pos\r
     txa\r
-    sta $0400, y\r
+    sta $0200, y\r
     iny\r
     ;;tile index\r
     lda $00\r
@@ -546,23 +551,23 @@ dma_set:
     sta $00\r
 inc_tile:\r
     inc $00\r
-    sta $0400, y\r
+    sta $0200, y\r
     iny\r
     ;;attribute\r
     lda #$01\r
-    sta $0400, y\r
+    sta $0200, y\r
     iny\r
     ;;x pos\r
     txa\r
     adc #$03\r
     tax\r
     rol\r
-    sta $0400, y\r
+    sta $0200, y\r
     iny\r
     bne dma_set\r
 \r
     ;;dma start.\r
-    lda #$04\r
+    lda #$02\r
     sta $4014\r
 \r
     jsr check_ppu\r
@@ -576,15 +581,20 @@ inc_tile:
 .endproc\r
 \r
 \r
-.proc set_dma\r
+.proc update_dma\r
+    lda full_dma_test\r
+    bne :+\r
+    rts\r
+:\r
+\r
     ldy #0\r
 \r
 y_loop:\r
-    lda $0400, y\r
+    lda $0200, y\r
 \r
     clc\r
     adc #$1\r
-    sta $0400, y\r
+    sta $0200, y\r
 \r
     iny\r
     iny\r
@@ -594,7 +604,7 @@ y_loop:
     bne y_loop\r
 \r
     ;;dma start.\r
-    lda #$04\r
+    lda #$02\r
     sta $4014\r
 \r
     rts\r
@@ -603,7 +613,7 @@ y_loop:
 nmi_test:\r
     jsr update_counter\r
     jsr update_scroll\r
-    jsr set_dma\r
+    jsr update_dma\r
 \r
     rti\r
 \r
@@ -3214,6 +3224,9 @@ ad_single_test:
 use_ppu:\r
     .byte   $01\r
 \r
+full_dma_test:\r
+    .byte   $01\r
+\r
 ;;;;r/w global variables.\r
 .segment "BSS"\r
 vram_current:\r