OSDN Git Service

jmp inst pch page cross bug fixed motonesfpga-gate-0.2.1
authorastoria-d <astoria-d@mail.goo.ne.jp>
Sat, 13 Feb 2016 05:13:29 +0000 (14:13 +0900)
committerastoria-d <astoria-d@mail.goo.ne.jp>
Sat, 13 Feb 2016 05:13:29 +0000 (14:13 +0900)
de1_nes/cpu/decoder.vhd
de1_nes/de1_nes.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 b7c694f..e66f534 100644 (file)
@@ -2727,9 +2727,17 @@ end  procedure;
                 --pcl stop increment
                 pcl_inc_n <= '1';
                 back_we(pcl_cmd, '1');
-                --pch increment
-                back_we(pch_cmd, '0');
-                back_oe(pch_cmd, '0');
+
+                if ('0' & exec_cycle(4 downto 0) = T0 and
+                    instruction = conv_std_logic_vector(16#4c#, dsize) ) then
+                    --jmp instruction t0 cycle discards pch increment.
+                    back_we(pch_cmd, '1');
+                    front_we(pch_cmd, '1');
+                else
+                    --pch increment
+                    back_we(pch_cmd, '0');
+                    back_oe(pch_cmd, '0');
+                end if;
 
                 if ('0' & exec_cycle(4 downto 0) = T0) then
                     --do the t0 identical routine.
index 05292c9..d964a3a 100644 (file)
@@ -366,6 +366,8 @@ begin
     dbg_disp_ptn_l <= "00" & v_addr ;
     dbg_disp_ptn_h <= "000" & dbg_plt_addr & dbg_plt_data;
 
+--    dbg_ppu_ctrl <= dbg_pcl;
+--    dbg_ppu_mask <= dbg_pch;
     --nes ppu instance
     ppu_inst: ppu port map (  
         dbg_ppu_ce_n                                        ,
index 0a75252..867d430 100644 (file)
@@ -1,83 +1,83 @@
-:2000000078A2FF9A203A8620F685AD55868500AD56868501209685209685209685209685AA\r
-:2000200020968520968520DC83203B8320ED82208482208D80207C80AD70868500AD718623\r
-:2000400085012096854C5F80AD5486D005A900200000AD84868500AD85868501209685A931\r
-:20006000238D0620A9C18D0620A9D88D0720A91E8D0120A9808D00204C78804020EE85AD49\r
-:2000800095868500AD9686850120968560ADA8868500ADA986850120968518900320488046\r
-:2000A00038B003204880A900F00320488018E9053003204880D00320488018690610032053\r
-:2000C000488038A992E946700320488038A992E9125003204880A900A200F07B4C5781EAEE\r
-:2000E000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAC0\r
-:20010000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA9F\r
-:20012000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA7F\r
-:20014000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE8E001F080A900A20015\r
-:20016000F07B4CDD81EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEABC\r
-:20018000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA1F\r
-:2001A000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAFF\r
-:2001C000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE8E001D4\r
-:2001E000F08018A96420EF81C9C8F00E20488020F3816020F7816069646038A9C84C0A82C9\r
-:2002000069324C0F824C008269324C05826932C9FBF00320488038A9C36C1C822E822482EC\r
-:20022000298233826C208269E669E66C22826C1E8269E6C9AAF003204880A92348A94648AE\r
-:20024000A96E48380878081808A9FF08A90008A9FF28F00320488028300320488028900355\r
-:200260002048802828B0032048805868C96EF00320488068C946F00320488068C923F00340\r
-:2002800020488060ADBA868500ADBB868501209685A939856BA9A18DCC04A99F85FFA2FD11\r
-:2002A000066BA56BC972F003204880CECC04ADCC04C9A0F0032048805ECF03ADCC04C95082\r
-:2002C000F003204880F602A5FFC9A0F0032048801836023602A5FFC981F003204880387664\r
-:2002E000027602A5FFC9E0F00320488060ADCC868500ADCD868501209685A97885A1A905C2\r
-:2003000085A2A9B7A2E1A08A85A98E990A9D800D941F91A1C5A9F003204880EC990AF00370\r
-:20032000204880CD610EF003204880C400F003204880CD0206F00320488060ADDE86850079\r
-:20034000ADDF86850120968518A90D69FAC907F003204880A937855EA9C98571A9B6255EE1\r
-:200360002471F003204880A93B8D2104A9D78D1B05A9EB8DCC06AE2104E88A4D1B05A8CC31\r
-:20038000CC06F003204880A217A0A1A92F8D5903A9909990018A19900138FD4203A8C06814\r
-:2003A000F003204880A2CDA9F18535A9AC85BCA98D3568A09A592200AAE02DF003204880EF\r
-:2003C000A9388590A9088591A9D98D0209A90AA0CA187190C9E3F00320488060ADF0868581\r
-:2003E00000ADF1868501209685A980180AF003204880B00320488010032048800AF003203F\r
-:20040000488090032048801003204880A9400AD00320488090032048803003204880C98011\r
-:20042000F003204880A9A50AC94AF0032048800AC994F003204880A901084828B00320481C\r
-:200440008018900320488028A9400848287003204880B8500320488028A203CAD0032048E0\r
-:2004600080E002F0032048801003204880CAD003204880E001F0032048801003204880CA3E\r
-:20048000F003204880E000F0032048801003204880CAD0032048803003204880E0FFF00359\r
-:2004A000204880A2803003204880CA1003204880E07FF003204880A05088C04FF003204836\r
-:2004C0008088C04EF003204880C8C04FF003204880E8E080F003204880A901184AF0032037\r
-:2004E0004880B0032048804AF0032048809003204880A95A4AC92DF003204880A9A5386AEB\r
-:20050000C9D2F0032048806A9003204880C9E9F003204880182A2AC9A5F003204880B0038B\r
-:2005200020488008A9004828900320488038B0032048807808682904D003204880580868CC\r
-:200540002904F00320488028A901AA1003204880D003204880E001F003204880CA8A10033E\r
-:20056000204880F003204880A901A8C8C898C003F003204880BA8600A2309AA9DD48BAE08C\r
-:200580002FF003204880A6009AA9EEAD3001C9DDF0032048806020EE85AD00038D0620AD18\r
-:2005A00001038D0620A000B1008D0720F004C84CA78598291FC91FF009A9008D0720C84C19\r
-:2005C000B285AD01038C01036D01038D0103AAAD000390061869018D0003C923D00F8AC981\r
-:2005E000C0D00AA9208D0003A9008D010360AD5486D00268686020EE85A9008D00208D016E\r
-:2006000020A93F8D0620A9008D0620A200A020BD1A868D0720E888D0F6600F0010200F0468\r
-:2006200014240F0818280F0C1C2C0F0010200F0616260F0818280F0A1A2AAD5486F014A950\r
-:20064000208D0003A9018D0103A9008D0203A9008D03036001578672656772657373696F27\r
-:200660006E20746573742073746172742E2E2E0072867465737420737563636565646564D7\r
-:200680002E2E2E00868674657374206661696C656421212100978670707520696E737420AC\r
-:2006A000746573742E2E2E00AA86613520696E737420746573742E2E2E00BC866134206982\r
-:2006C0006E737420746573742E2E2E00CE86613320696E737420746573742E2E2E00E086C5\r
-:2006E000613220696E737420746573742E2E2E00F28673696E676C65206279746520696E5A\r
-:20070000737420746573742E2E2E0000000000000000000000000000000000000000000088\r
-:200720000000000000000000000000000000000000000000000000000000000000000000B9\r
-:20074000000000000000000000000000000000000000000000000000000000000000000099\r
-:20076000000000000000000000000000000000000000000000000000000000000000000079\r
-:20078000000000000000000000000000000000000000000000000000000000000000000059\r
-:2007A000000000000000000000000000000000000000000000000000000000000000000039\r
-:2007C000000000000000000000000000000000000000000000000000000000000000000019\r
-:2007E0000000000000000000000000000000000000000000000000000000000000000000F9\r
-:200800000000000000000000000000000000000000000000000000000000000000000000D8\r
-:200820000000000000000000000000000000000000000000000000000000000000000000B8\r
-:20084000000000000000000000000000000000000000000000000000000000000000000098\r
-:20086000000000000000000000000000000000000000000000000000000000000000000078\r
-:20088000000000000000000000000000000000000000000000000000000000000000000058\r
-:2008A000000000000000000000000000000000000000000000000000000000000000000038\r
-:2008C000000000000000000000000000000000000000000000000000000000000000000018\r
-:2008E0000000000000000000000000000000000000000000000000000000000000000000F8\r
-:200900000000000000000000000000000000000000000000000000000000000000000000D7\r
-:200920000000000000000000000000000000000000000000000000000000000000000000B7\r
-:20094000000000000000000000000000000000000000000000000000000000000000000097\r
-:20096000000000000000000000000000000000000000000000000000000000000000000077\r
-:20098000000000000000000000000000000000000000000000000000000000000000000057\r
-:2009A000000000000000000000000000000000000000000000000000000000000000000037\r
-:2009C000000000000000000000000000000000000000000000000000000000000000000017\r
-:2009E0000000000000000000000000000000000000000000000000000000000000000000F7\r
+:2000000078A2FF9A200C8920C888207F80AD26898500AD27898501206888206888206888F5\r
+:2000200020688820688820688820AE86200D8620BF85205685205F83204E83AD418985003B\r
+:20004000AD428985012068884C6280ADEE89D005A900200000AD55898500AD568985012060\r
+:200060006888A9238D0620A9C18D0620A9D88D0720A91E8D0120A9808D00204C7B8040EA03\r
+:20008000EA4C2A812A2A2A2A2A2A2A2A2A2A302A2A2A2A2A2A2A2A2A2A2A2A2A2A2A312ADA\r
+:2000A0002A2A2A2A2A2A2A2A2A2A2A2A2A2A322A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AF8\r
+:2000C0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AE0\r
+:2000E0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AC0\r
+:200100002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A9F\r
+:200120002A2A2A2A2A2A2A2A2A2AEA4C1E82332A2A2A2A2A2A2A2A2A2A2A2A2A2A2A342A3E\r
+:200140002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A5F\r
+:200160002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A3F\r
+:200180002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A1F\r
+:2001A0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AFF\r
+:2001C0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2ADF\r
+:2001E0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2ABF\r
+:200200002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A4C2B7B\r
+:2002200082352A2A2A2A2A2A2A2A2AEA4C1F83362A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2ADF\r
+:200240002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A5E\r
+:200260002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A3E\r
+:200280002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A1E\r
+:2002A0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AFE\r
+:2002C0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2ADE\r
+:2002E0002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2ABE\r
+:200300002A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A4C7B\r
+:200320002C83372A2A2A2A2A2A2A2A2AEA4C4083382A2A2A2A2A2A2A2A2A2A2A2A2A2A2AB6\r
+:20034000AD66898500AD678985012068886020C088AD78898500AD7989850120688860ADFC\r
+:200360008B898500AD8C898501206888189003204B8038B003204B80A900F003204B801881\r
+:20038000E9053003204B80D003204B801869061003204B8038A992E9467003204B8038A92D\r
+:2003A00092E9125003204B80A900A200F07B4C2984EAEAEAEAEAEAEAEAEAEAEAEAEAEAEA0D\r
+:2003C000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEADD\r
+:2003E000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEABD\r
+:20040000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA9C\r
+:20042000EAEAEAEAEAEAEAEAEAE8E001F080A900A200F07B4CAF84EAEAEAEAEAEAEAEAEADA\r
+:20044000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA5C\r
+:20046000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA3C\r
+:20048000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA1C\r
+:2004A000EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE8E001F08018A96420C184C9C8F00E204BC9\r
+:2004C0008020C5846020C9846069646038A9C84CDC8469324CE1844CD28469324CD78469EB\r
+:2004E00032C9FBF003204B8038A9C36CEE840085F684FB8405856CF28469E669E66CF4843A\r
+:200500006CF08469E6C9AAF003204B80A92348A94648A96E48380878081808A9FF08A90078\r
+:2005200008A9FF28F003204B80283003204B80289003204B802828B003204B805868C96E34\r
+:20054000F003204B8068C946F003204B8068C923F003204B8060AD9D898500AD9E89850124\r
+:20056000206888A939856BA9A18DCC04A99F85FFA2FD066BA56BC972F003204B80CECC044F\r
+:20058000ADCC04C9A0F003204B805ECF03ADCC04C950F003204B80F602A5FFC9A0F00320DB\r
+:2005A0004B801836023602A5FFC981F003204B803876027602A5FFC9E0F003204B8060ADBC\r
+:2005C000AF898500ADB0898501206888A97885A1A90585A2A9B7A2E1A08A85A98E990A9DBD\r
+:2005E000800D941F91A1C5A9F003204B80EC990AF003204B80CD610EF003204B80C400F002\r
+:2006000003204B80CD0206F003204B8060ADC1898500ADC289850120688818A90D69FAC9D5\r
+:2006200007F003204B80A937855EA9C98571A9B6255E2471F003204B80A93B8D2104A9D73F\r
+:200640008D1B05A9EB8DCC06AE2104E88A4D1B05A8CCCC06F003204B80A217A0A1A92F8DC5\r
+:200660005903A9909990018A19900138FD4203A8C068F003204B80A2CDA9F18535A9AC85C2\r
+:20068000BCA98D3568A09A592200AAE02DF003204B80A9388590A9088591A9D98D0209A901\r
+:2006A0000AA0CA187190C9E3F003204B8060ADD3898500ADD4898501206888A980180AF05A\r
+:2006C00003204B80B003204B801003204B800AF003204B809003204B801003204B80A94043\r
+:2006E0000AD003204B809003204B803003204B80C980F003204B80A9A50AC94AF003204BA6\r
+:20070000800AC994F003204B80A901084828B003204B80189003204B8028A94008482870C5\r
+:2007200003204B80B85003204B8028A203CAD003204B80E002F003204B801003204B80CAF8\r
+:20074000D003204B80E001F003204B801003204B80CAF003204B80E000F003204B801003A5\r
+:20076000204B80CAD003204B803003204B80E0FFF003204B80A2803003204B80CA100320EE\r
+:200780004B80E07FF003204B80A05088C04FF003204B8088C04EF003204B80C8C04FF003AE\r
+:2007A000204B80E8E080F003204B80A901184AF003204B80B003204B804AF003204B8090E8\r
+:2007C00003204B80A95A4AC92DF003204B80A9A5386AC9D2F003204B806A9003204B80C9F0\r
+:2007E000E9F003204B80182A2AC9A5F003204B80B003204B8008A90048289003204B803805\r
+:20080000B003204B807808682904D003204B805808682904F003204B8028A901AA100320E5\r
+:200820004B80D003204B80E001F003204B80CA8A1003204B80F003204B80A901A8C8C898C6\r
+:20084000C003F003204B80BA8600A2309AA9DD48BAE02FF003204B80A6009AA9EEAD300121\r
+:20086000C9DDF003204B806020C088AD00038D0620AD01038D0620A000B1008D0720F0046C\r
+:20088000C84C798898291FC91FF009A9008D0720C84C8488AD01038C01036D01038D0103C2\r
+:2008A000AAAD000390061869018D0003C923D00F8AC9C0D00AA9208D0003A9008D0103608B\r
+:2008C000ADEE89D00268686020C088A9008D00208D0120A93F8D0620A9008D0620A200A04D\r
+:2008E00020BDEC888D0720E888D0F6600F0010200F0414240F0818280F0C1C2C0F001020DA\r
+:200900000F0616260F0818280F0A1A2AADEE89F014A9208D0003A9018D0103A9008D0203DB\r
+:20092000A9008D030360288972656772657373696F6E20746573742073746172742E2E2E71\r
+:2009400000438974657374207375636365656465642E2E2E00578974657374206661696C60\r
+:2009600065642121210068896164647265737320746573742E2E2E007A8970707520696EBB\r
+:20098000737420746573742E2E2E008D89613520696E737420746573742E2E2E009F896189\r
+:2009A0003420696E737420746573742E2E2E00B189613320696E737420746573742E2E2EA5\r
+:2009C00000C389613220696E737420746573742E2E2E00D58973696E676C6520627974653C\r
+:2009E00020696E737420746573742E2E2E00010000000000000000000000000000000000AE\r
 :200A00000000000000000000000000000000000000000000000000000000000000000000D6\r
 :200A20000000000000000000000000000000000000000000000000000000000000000000B6\r
 :200A4000000000000000000000000000000000000000000000000000000000000000000096\r
 :200F8000000000000000000000000000000000000000000000000000000000000000000051\r
 :200FA000000000000000000000000000000000000000000000000000000000000000000031\r
 :200FC000000000000000000000000000000000000000000000000000000000000000000011\r
-:200FE00000000000000000000000000000000000000000000000000000007B800080000076\r
+:200FE00000000000000000000000000000000000000000000000000000007E800080000073\r
 :00000001FF\r
index 92d35a4..c7eaaa8 100644 (file)
@@ -38,7 +38,12 @@ add wave -label ea_carry   -radix decimal -unsigned  sim:/testbench_motones_sim/
 #add wave -label wait_a58_branch_next -radix hex sim:/testbench_motones_sim/sim_board/dbg_wait_a58_branch_next     \r
 \r
 \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
@@ -46,14 +51,14 @@ add wave -label y      -radix hex sim:/testbench_motones_sim/sim_board/dbg_y
 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
+#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
@@ -97,7 +102,7 @@ wave zoom full
 \r
 #wave zoom range 3339700 ps 5138320 ps\r
 \r
-run 122626377 ps\r
+run 36160968 ps\r
 \r
 #wave zoom full\r
 \r
index dc4ae1f..dedb872 100644 (file)
Binary files a/de1_nes/simulation/modelsim/rom-file.nes and b/de1_nes/simulation/modelsim/rom-file.nes differ
index 3723953..0306c18 100644 (file)
@@ -29,6 +29,7 @@
     jsr init_global\r
     jsr init_ppu\r
 \r
+    jsr addr_test\r
     lda ad_start_msg\r
     sta $00\r
     lda ad_start_msg+1\r
@@ -54,7 +55,7 @@
     jsr a3_inst_test\r
     jsr a4_inst_test\r
     jsr a5_inst_test\r
-    jsr ppu_test            ;;;<<<error!!!!\r
+    jsr ppu_test\r
 \r
 .endproc\r
 \r
@@ -112,6 +113,81 @@ mainloop:
 nmi_test:\r
     rti\r
 \r
+.proc addr_test\r
+    nop\r
+    nop\r
+    jmp :+\r
+    .byte   "**********"\r
+    .byte   "0***************"\r
+    .byte   "1***************"\r
+    .byte   "2************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "***************"\r
+:\r
+    nop\r
+    ;;page cross at cycle #0\r
+    jmp :+\r
+    .byte   "3***************"\r
+    .byte   "4***************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+:\r
+    ;;page cross at the cycle #2\r
+    jmp :+\r
+    .byte   "5*********"\r
+:\r
+    nop\r
+    jmp :+\r
+    .byte   "6***************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+    .byte   "****************"\r
+:\r
+    ;;page cross at the cycle #1\r
+    jmp :+\r
+    .byte   "7*********"\r
+:\r
+    nop\r
+    jmp :+\r
+    .byte   "8***************"\r
+:\r
+\r
+    lda ad_addr_test\r
+    sta $00\r
+    lda ad_addr_test+1\r
+    sta $01\r
+    jsr print_ln\r
+\r
+    rts\r
+.endproc\r
+\r
 \r
 .proc ppu_test\r
     jsr check_ppu\r
@@ -1058,6 +1134,12 @@ ad_test_failed_msg:
     .byte   "test failed!!!"\r
     .byte   $00\r
 \r
+ad_addr_test:\r
+    .addr   :+\r
+:\r
+    .byte   "address test..."\r
+    .byte   $00\r
+\r
 ad_ppu_test:\r
     .addr   :+\r
 :\r