mirror of
https://github.com/dpiponi/Stellarator.git
synced 2024-05-16 19:10:42 -04:00
6502 torture test semi-replicated from emu6502
This commit is contained in:
parent
3a8a1c8359
commit
80193ec9ec
|
@ -88,19 +88,25 @@ executable experiment-exe
|
|||
, Stellarator
|
||||
default-language: Haskell2010
|
||||
|
||||
-- test-suite emu6502-test
|
||||
-- type: exitcode-stdio-1.0
|
||||
-- hs-source-dirs: test
|
||||
-- main-is: Main.hs
|
||||
-- build-depends: base
|
||||
-- , emu6502
|
||||
-- , HUnit
|
||||
-- , array
|
||||
-- , mtl
|
||||
-- , lens
|
||||
-- , monad-loops
|
||||
-- ghc-options: -O5 -rtsopts -with-rtsopts=-N
|
||||
-- default-language: Haskell2010
|
||||
test-suite emu6502-test
|
||||
type: exitcode-stdio-1.0
|
||||
hs-source-dirs: test
|
||||
main-is: Main.hs
|
||||
other-modules: Intel, Vanilla
|
||||
build-depends: base
|
||||
, HUnit
|
||||
, array
|
||||
, mtl
|
||||
, lens
|
||||
, monad-loops
|
||||
, bytestring
|
||||
, binary
|
||||
, parsec
|
||||
, cmdargs
|
||||
, haskeline
|
||||
, Stellarator
|
||||
ghc-options: -O5
|
||||
default-language: Haskell2010
|
||||
|
||||
source-repository head
|
||||
type: git
|
||||
|
|
6026
asm/6502test.a65
Executable file
6026
asm/6502test.a65
Executable file
File diff suppressed because it is too large
Load diff
451
roms/6502test.hex
Normal file
451
roms/6502test.hex
Normal file
|
@ -0,0 +1,451 @@
|
|||
:16000A00000000000000000000C38241007F001F71800FFF7F80BE
|
||||
:20002000FF0F8F8F1702180219021A021B021F0103020402050206020B014E024F025002D4
|
||||
:1A004000510252025302540255024A024B024C024D020302040204010501B1
|
||||
:200200000000000000000000290060490060090060690060E90060C38241007F808000022A
|
||||
:20022000860482008705830161412000E1C1A0808101800281018000010001028180818012
|
||||
:200240007F80FF00010080800200001F71800FFF7F80FF0F8F8F00F11F00F0FFFFFFFFF068
|
||||
:0A026000F00F00FF7F800280008095
|
||||
:20040000D8A2FF9AA9008D0002A2054C2D04A005D0060088888888888888888888F01100A1
|
||||
:20042000CACACACACACACACACACAF0E200D0F600AD0002C900F00100A9018D0002A0FE8878
|
||||
:2004400098AA1008186902EAEAEAEAEAEAEAEAEAEA497F8DDF04A9004CDE04CACACACACA9A
|
||||
:20046000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACA3C
|
||||
:20048000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACA1C
|
||||
:2004A000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACAFC
|
||||
:2004C000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACAF03E42
|
||||
:2004E000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACABC
|
||||
:20050000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACA9B
|
||||
:20052000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACA7B
|
||||
:20054000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACAEA3B
|
||||
:20056000EAEAEAEAF00600EAEAEAEAEAEAEAEAEAEAC000F0034C3F04AD0002C901F001000D
|
||||
:20058000A9028D0002C001D00100A900C900F00100B00100100100C901D00100900100300E
|
||||
:2005A0000100AAE000F00100B00100100100E001D00100900100300100A8C000F00100B080
|
||||
:2005C0000100100100C001D00100900100300100AD0002C902F00100A9038D0002A2FF9AD4
|
||||
:2005E000A95548A9AA48CDFE01F00100BA8AC9FDF0010068C9AAF0010068C955F00100CD52
|
||||
:20060000FF01F00100BAE0FFF00100AD0002C903F00100A9048D0002A9FF4828101250111C
|
||||
:200620009010D00F300100700100B00100F005000000000008BAE0FEF0010068C9FFF00141
|
||||
:2006400000BAE0FFF00100A900482830127011B010F00F100100500100900100D0050000AD
|
||||
:200660000000000868C930F00100A9024828D002F00100B0029001003002100100700250FA
|
||||
:200680000100A9014828F002D001009002B0010030021001007002500100A9804828F002A8
|
||||
:2006A000D00100B00290010010023001007002500100A9404828F002D00100B002900100C1
|
||||
:2006C00030021001005002700100A9FD4828F002D001009002B001001002300100500270F3
|
||||
:2006E0000100A9FE4828D002F00100B00290010010023001005002700100A97F4828D0026C
|
||||
:20070000F001009002B0010030021001005002700100A9BF4828D002F001009002B00100C1
|
||||
:2007200010023001007002500100AD0002C904F00100A9058D0002A255A0AAA9FF48A9012E
|
||||
:20074000284808C901F001006848C9FFF0010028A90048A900284808C900F001006848C990
|
||||
:2007600030F0010028A9FF48A9FF284808C9FFF001006848C9FFF0010028A90048A9012813
|
||||
:200780004808C901F001006848C930F0010028A9FF48A900284808C900F001006848C9FF49
|
||||
:2007A000F0010028A90048A9FF284808C9FFF001006848C930F0010028A9FF48A90028686B
|
||||
:2007C00008C9FFF001006848C9FDF0010028A90048A9FF286808C900F001006848C932F043
|
||||
:2007E000010028A9FF48A9FE286808C901F001006848C97DF0010028A90048A900286808A5
|
||||
:20080000C9FFF001006848C9B0F0010028A9FF48A9FF286808C900F001006848C97FF0010A
|
||||
:200820000028A90048A9FE286808C901F001006848C930F0010028E055F00100C0AAF00162
|
||||
:2008400000AD0002C905F00100A9068D0002A90048A93C2849C308C9FFF001006848C9B0F8
|
||||
:20086000F0010028A90048A9C32849C308C900F001006848C932F0010028AD0002C906F0DA
|
||||
:200880000100A9078D0002A224A042A90048A91828EA08C918F001006848C930F001002810
|
||||
:2008A000E024F00100C042F00100A2DBA0BDA9FF48A9E728EA08C9E7F001006848C9FFF0D3
|
||||
:2008C000010028E0DBF00100C0BDF00100AD0002C907F00100A9088D0002A9004828A9461D
|
||||
:2008E000A241A0524C363AEAEAF00100E8E8D00100300100B00100700100C9ECF00100E028
|
||||
:2009000042F00100C04FF00100CAC8C8C849AA4C1909EAEAF00100E8E8D00100100100B0FA
|
||||
:200920000100700100C946F00100E041F00100C052F00100AD0002C908F00100A9098D0080
|
||||
:2009400002A9004828A949A24EA0446C6C3AEAF0010088880888888828D00100300100B03F
|
||||
:200960000100700100C9E3F00100E04FF00100C03EF00100BAE0FFF00100AD0002C909F05E
|
||||
:200980000100A90A8D0002A9004828A94AA253A05220AC3A0888888828D00100300100B0A1
|
||||
:2009A0000100700100C9E0F00100E054F00100C04CF00100BAE0FFF00100AD0002C90AF00D
|
||||
:2009C0000100A90B8D0002A9004828A942A252A04B008808888888C9E8F00100E053F00102
|
||||
:2009E00000C045F0010068C930F00100BAE0FFF00100AD0002C90BF00100A90C8D0002A9C4
|
||||
:200A0000FF482818086848C9FEF001002838086848C9FFF001002858086848C9FBF0010021
|
||||
:200A20002878086848C9FFF0010028D8086848C9F7F0010028F8086848C9FFF0010028B8CB
|
||||
:200A4000086848C9BFF0010028A9004828086848C930F001002838086848C931F001002857
|
||||
:200A600018086848C930F001002878086848C934F001002858086848C930F0010028F8082C
|
||||
:200A80006848C938F0010028D8086848C930F0010028A9404828086848C970F0010028B8CF
|
||||
:200AA000086848C930F0010028AD0002C90CF00100A90D8D0002A2FEA9FF4828E808E0FF2B
|
||||
:200AC000F001006848C9FDF0010028E808E000F001006848C97FF0010028E808E001F00102
|
||||
:200AE000006848C97DF0010028CA08E000F001006848C97FF0010028CA08E0FFF001006829
|
||||
:200B000048C9FDF0010028CAA9004828E808E0FFF001006848C9B0F0010028E808E000F009
|
||||
:200B200001006848C932F0010028E808E001F001006848C930F0010028CA08E000F00100C9
|
||||
:200B40006848C932F0010028CA08E0FFF001006848C9B0F0010028A0FEA9FF4828C808C0A7
|
||||
:200B6000FFF001006848C9FDF0010028C808C000F001006848C97FF0010028C808C001F0E3
|
||||
:200B800001006848C97DF00100288808C000F001006848C97FF00100288808C0FFF00100B3
|
||||
:200BA0006848C9FDF001002888A9004828C808C0FFF001006848C9B0F0010028C808C000B3
|
||||
:200BC000F001006848C932F0010028C808C001F001006848C930F00100288808C000F001DB
|
||||
:200BE000006848C932F00100288808C0FFF001006848C9B0F0010028A2FFA9FF48288A0864
|
||||
:200C0000C9FFF001006848C9FDF001002808E8288A08C900F001006848C97FF0010028080F
|
||||
:200C2000E8288A08C901F001006848C97DF0010028A90048288A08C901F001006848C93039
|
||||
:200C4000F001002808CA288A08C900F001006848C932F001002808CA288A08C9FFF001002C
|
||||
:200C60006848C9B0F0010028A0FFA9FF48289808C9FFF001006848C9FDF001002808C8289B
|
||||
:200C80009808C900F001006848C97FF001002808C8289808C901F001006848C97DF00100AF
|
||||
:200CA00028A90048289808C901F001006848C930F00100280888289808C900F00100684814
|
||||
:200CC000C932F00100280888289808C9FFF001006848C9B0F0010028A9FF48A2FF8A28A8C2
|
||||
:200CE00008C0FFF001006848C9FDF001002808E88A28A808C000F001006848C97FF00100C1
|
||||
:200D00002808E88A28A808C001F001006848C97DF0010028A90048A9008A28A808C001F0EB
|
||||
:200D200001006848C930F001002808CA8A28A808C000F001006848C932F001002808CA8AEB
|
||||
:200D400028A808C0FFF001006848C9B0F0010028A9FF48A0FF9828AA08E0FFF00100684848
|
||||
:200D6000C9FDF001002808C89828AA08E000F001006848C97FF001002808C89828AA08E04E
|
||||
:200D800001F001006848C97DF0010028A90048A9009828AA08E001F001006848C930F001DA
|
||||
:200DA000002808889828AA08E000F001006848C932F001002808889828AA08E0FFF00100A2
|
||||
:200DC0006848C9B0F0010028AD0002C90DF00100A90E8D0002A201A9FF48289A08AD010109
|
||||
:200DE000C9FFF00100A90048289A08AD0101C930F00100CAA9FF48289A08AD0001C9FFF0FC
|
||||
:200E00000100A90048289A08AD0001C930F00100CAA9FF48289A08ADFF01C9FFF00100A9EB
|
||||
:200E20000048289A08ADFF01C930A2019AA9FF4828BA08E001F00100AD0101C97DF001002B
|
||||
:200E4000A9FF4828BA08E000F00100AD0001C97FF00100A9FF4828BA08E0FFF00100ADFFAA
|
||||
:200E600001C9FDF00100A2019AA9004828BA08E001F00100AD0101C930F00100A90048281E
|
||||
:200E8000BA08E000F00100AD0001C932F00100A9004828BA08E0FFF00100ADFF01C9B0F064
|
||||
:200EA000010068AD0002C90EF00100A90F8D0002A003A9004828B613088A49C32899030222
|
||||
:200EC0000849C3D91702F00100684930D91C02F001008810DDA003A9FF4828B613088A497E
|
||||
:200EE000C3289903020849C3D91702F0010068497DD91C02F001008810DDA003A90048282B
|
||||
:200F0000BE1702088A49C3AA28960C0849C3D91300F00100684930D91C02F001008810DCBA
|
||||
:200F2000A003A9FF4828BE1702088A49C3AA28960C0849C3D91300F0010068497DD91C02F7
|
||||
:200F4000F001008810DCA003A200B90C0049C3D91300F00100960CB9030249C3D91702F0EB
|
||||
:200F600001008A9903028810E1AD0002C90FF00100A9108D0002A0FDB6198A99090188C02E
|
||||
:200F8000FAB0F5A0FDBE1D01961288C0FAB0F6A003A200B90C00D91300F00100960CB90364
|
||||
:200FA00002D91702F001008A9903028810E5AD0002C910F00100A9118D0002A203A900484F
|
||||
:200FC00028B413089849C3289D03020849C3DD1702F00100684930DD1C02F00100CA10DD2D
|
||||
:200FE000A203A9FF4828B413089849C3289D03020849C3DD1702F0010068497DDD1C02F0E3
|
||||
:201000000100CA10DDA203A9004828BC1702089849C3A828940C0849C3D513F001006849CB
|
||||
:2010200030DD1C02F00100CA10DDA203A9FF4828BC1702089849C3A828940C0849C3D51333
|
||||
:20104000F0010068497DDD1C02F00100CA10DDA203A000B50C49C3D513F00100940CBD0383
|
||||
:201060000249C3DD1702F001008A9D0302CA10E3AD0002C911F00100A9128D0002A2FDB47B
|
||||
:2010800019989D0901CAE0FAB0F5A2FDBC1D019412CAE0FAB0F6A203A000B50CD513F00167
|
||||
:2010A00000940CBD0302DD1702F001008A9D0302CA10E7AD0002C912F00100A9138D000234
|
||||
:2010C000A9004828A613088A49C3AA288E03020849C3AAE0C3F00100684930CD1C02F0012C
|
||||
:2010E00000A9004828A614088A49C3AA288E04020849C3AAE082F00100684930CD1D02F04B
|
||||
:201100000100A9004828A615088A49C3AA288E05020849C3AAE041F00100684930CD1E0257
|
||||
:20112000F00100A9004828A616088A49C3AA288E06020849C3AAE000F00100684930CD1F87
|
||||
:2011400002F00100A9FF4828A613088A49C3AA288E03020849C3AAE0C3F0010068497DCD7B
|
||||
:201160001C02F00100A9FF4828A614088A49C3AA288E04020849C3AAE082F0010068497D4B
|
||||
:20118000CD1D02F00100A9FF4828A615088A49C3AA288E05020849C3AAE041F00100684919
|
||||
:2011A0007DCD1E02F00100A9FF4828A616088A49C3AA288E06020849C3AAE000F001006803
|
||||
:2011C000497DCD1F02F00100A9004828AE1702088A49C3AA28860C0849C3C513F001006843
|
||||
:2011E0004930CD1C02F00100A9004828AE1802088A49C3AA28860D0849C3C514F001006870
|
||||
:201200004930CD1D02F00100A9004828AE1902088A49C3AA28860E0849C3C515F00100684B
|
||||
:201220004930CD1E02F00100A9004828AE1A02088A49C3AA28860F0849C3C516F001006827
|
||||
:201240004930CD1F02F00100A9FF4828AE1702088A49C3AA28860C0849C3AAE413F00100AF
|
||||
:2012600068497DCD1C02F00100A9FF4828AE1802088A49C3AA28860D0849C3AAE414F001DA
|
||||
:201280000068497DCD1D02F00100A9FF4828AE1902088A49C3AA28860E0849C3AAE415F0B7
|
||||
:2012A000010068497DCD1E02F00100A9FF4828AE1A02088A49C3AA28860F0849C3AAE41682
|
||||
:2012C000F0010068497DCD1F02F00100A9004828A2C308EC1702F00100684930CD1C02F0D8
|
||||
:2012E0000100A9004828A28208EC1802F00100684930CD1D02F00100A9004828A24108EC03
|
||||
:201300001902F00100684930CD1E02F00100A9004828A20008EC1A02F00100684930CD1F79
|
||||
:2013200002F00100A9FF4828A2C308EC1702F0010068497DCD1C02F00100A9FF4828A282F9
|
||||
:2013400008EC1802F0010068497DCD1D02F00100A9FF4828A24108EC1902F0010068497D5A
|
||||
:20136000CD1E02F00100A9FF4828A20008EC1A02F0010068497DCD1F02F00100A200A50C74
|
||||
:2013800049C3C513F00100860CAD030249C3CD1702F001008E0302A50D49C3C514F0010036
|
||||
:2013A000860DAD040249C3CD1802F001008E0402A50E49C3C515F00100860EAD050249C391
|
||||
:2013C000CD1902F001008E0502A50F49C3C516F00100860FAD060249C3CD1A02F001008E55
|
||||
:2013E0000602AD0002C913F00100A9148D0002A9004828A413089849C3A8288C03020849EF
|
||||
:20140000C3A8C0C3F00100684930CD1C02F00100A9004828A414089849C3A8288C04020849
|
||||
:2014200049C3A8C082F00100684930CD1D02F00100A9004828A415089849C3A8288C050226
|
||||
:201440000849C3A8C041F00100684930CD1E02F00100A9004828A416089849C3A8288C063E
|
||||
:20146000020849C3A8C000F00100684930CD1F02F00100A9FF4828A413089849C3A8288C66
|
||||
:2014800003020849C3A8C0C3F0010068497DCD1C02F00100A9FF4828A414089849C3A828C1
|
||||
:2014A0008C04020849C3A8C082F0010068497DCD1D02F00100A9FF4828A415089849C3A87B
|
||||
:2014C000288C05020849C3A8C041F0010068497DCD1E02F00100A9FF4828A416089849C319
|
||||
:2014E000A8288C06020849C3A8C000F0010068497DCD1F02F00100A9004828AC1702089890
|
||||
:2015000049C3A828840C0849C3A8C413F00100684930CD1C02F00100A9004828AC18020837
|
||||
:201520009849C3A828840D0849C3A8C414F00100684930CD1D02F00100A9004828AC190283
|
||||
:20154000089849C3A828840E0849C3A8C415F00100684930CD1E02F00100A9004828AC1A59
|
||||
:2015600002089849C3A828840F0849C3A8C416F00100684930CD1F02F00100A9FF4828AC4F
|
||||
:201580001702089849C3A828840C0849C3A8C513F0010068497DCD1C02F00100A9FF48287F
|
||||
:2015A000AC1802089849C3A828840D0849C3A8C514F0010068497DCD1D02F00100A9FF48D7
|
||||
:2015C00028AC1902089849C3A828840E0849C3A8C515F0010068497DCD1E02F00100A9FFD3
|
||||
:2015E0004828AC1A02089849C3A828840F0849C3A8C516F0010068497DCD1F02F00100A966
|
||||
:20160000004828A0C308CC1702F00100684930CD1C02F00100A9004828A08208CC1802F043
|
||||
:201620000100684930CD1D02F00100A9004828A04108CC1902F00100684930CD1E02F00152
|
||||
:2016400000A9004828A00008CC1A02F00100684930CD1F02F00100A9FF4828A0C308CC17CA
|
||||
:2016600002F0010068497DCD1C02F00100A9FF4828A08208CC1802F0010068497DCD1D023A
|
||||
:20168000F00100A9FF4828A04108CC1902F0010068497DCD1E02F00100A9FF4828A00008B4
|
||||
:2016A000CC1A02F0010068497DCD1F02F00100A000A50C49C3C513F00100840CAD03024993
|
||||
:2016C000C3CD1702F001008C0302A50D49C3C514F00100840DAD040249C3CD1802F001002F
|
||||
:2016E0008C0402A50E49C3C515F00100840EAD050249C3CD1902F001008C0502A50F49C350
|
||||
:20170000C516F00100840FAD060249C3CD1A02F001008C0602AD0002C914F00100A9158D73
|
||||
:201720000002A203A9004828B5130849C3289D03020849C3DD1702F00100684930DD1C026C
|
||||
:20174000F00100CA10DEA203A9FF4828B5130849C3289D03020849C3DD1702F001006849D1
|
||||
:201760007DDD1C02F00100CA10DEA203A9004828BD17020849C328950C0849C3D513F001EA
|
||||
:2017800000684930DD1C02F00100CA10DFA203A9FF4828BD17020849C328950C0849C3D56A
|
||||
:2017A00013F0010068497DDD1C02F00100CA10DFA203A000B50C49C3D513F00100940CBD0A
|
||||
:2017C000030249C3DD1702F001008A9D0302CA10E3AD0002C915F00100A9168D0002A003B9
|
||||
:2017E000A9004828B1240849C3289903020849C3D91702F00100684930D91C02F0010088D9
|
||||
:2018000010DEA003A9FF4828B1240849C3289903020849C3D91702F0010068497DD91C0254
|
||||
:20182000F001008810DEA003A200B9030249C3D91702F001008A9903028810EEA003A90055
|
||||
:201840004828B917020849C32891300849C3D124F00100684930D91C02F001008810DFA06F
|
||||
:2018600003A9FF4828B917020849C32891300849C3D124F0010068497DD91C02F0010088E6
|
||||
:2018800010DFA003A200B9030249C3D91702F001008A9903028810EEA206A003A900482855
|
||||
:2018A000A1240849C32881300849C3D91702F00100684930D91C02F00100CACA8810DDA20B
|
||||
:2018C00006A003A9FF4828A1240849C32881300849C3D91702F0010068497DD91C02F00188
|
||||
:2018E00000CACA8810DDA003A200B9030249C3D91702F001008A9903028810EEAD0002C9C7
|
||||
:2019000016F00100A9178D0002A2FDB5199D0901CAE0FAB0F6A2FDBD1D019512CAE0FAB09E
|
||||
:20192000F6A203A000B50CD513F00100940CBD0302DD1702F001008A9D0302CA10E7A0FB01
|
||||
:20194000A2FEA12C990B01CACA88C0F8B0F4A003A200B90302D91702F001008A9903028867
|
||||
:2019600010F0A0FBB91F01913888C0F8B0F6A003A200B90302D91702F001008A99030288AE
|
||||
:2019800010F0A0FBA2FEB12E8138CACA88C0F8B0F5A003A200B90302D91702F001008A99F2
|
||||
:2019A00003028810F0AD0002C917F00100A9188D0002A9004828A5130849C3288D03020823
|
||||
:2019C00049C3C9C3F00100684930CD1C02F00100A9004828A5140849C3288D04020849C30C
|
||||
:2019E000C982F00100684930CD1D02F00100A9004828A5150849C3288D05020849C3C9412C
|
||||
:201A0000F00100684930CD1E02F00100A9004828A5160849C3288D06020849C3C900F001A3
|
||||
:201A200000684930CD1F02F00100A9FF4828A5130849C3288D03020849C3C9C3F00100684F
|
||||
:201A4000497DCD1C02F00100A9FF4828A5140849C3288D04020849C3C982F0010068497DC6
|
||||
:201A6000CD1D02F00100A9FF4828A5150849C3288D05020849C3C941F0010068497DCD1EBF
|
||||
:201A800002F00100A9FF4828A5160849C3288D06020849C3C900F0010068497DCD1F02F0D5
|
||||
:201AA0000100A9004828AD17020849C328850C0849C3C513F00100684930CD1C02F00100DF
|
||||
:201AC000A9004828AD18020849C328850D0849C3C514F00100684930CD1D02F00100A90013
|
||||
:201AE0004828AD19020849C328850E0849C3C515F00100684930CD1E02F00100A900482828
|
||||
:201B0000AD1A020849C328850F0849C3C516F00100684930CD1F02F00100A9FF4828AD17B0
|
||||
:201B2000020849C328850C0849C3C513F0010068497DCD1C02F00100A9FF4828AD18020808
|
||||
:201B400049C328850D0849C3C514F0010068497DCD1D02F00100A9FF4828AD19020849C3E2
|
||||
:201B600028850E0849C3C515F0010068497DCD1E02F00100A9FF4828AD1A020849C328851D
|
||||
:201B80000F0849C3C516F0010068497DCD1F02F00100A9004828A9C308CD1702F00100687D
|
||||
:201BA0004930CD1C02F00100A9004828A98208CD1802F00100684930CD1D02F00100A90045
|
||||
:201BC0004828A94108CD1902F00100684930CD1E02F00100A9004828A90008CD1A02F00167
|
||||
:201BE00000684930CD1F02F00100A9FF4828A9C308CD1702F0010068497DCD1C02F00100B8
|
||||
:201C0000A9FF4828A98208CD1802F0010068497DCD1D02F00100A9FF4828A94108CD1902A4
|
||||
:201C2000F0010068497DCD1E02F00100A9FF4828A90008CD1A02F0010068497DCD1F02F0F8
|
||||
:201C40000100A200A50C49C3C513F00100860CAD030249C3CD1702F001008E0302A50D49A6
|
||||
:201C6000C3C514F00100860DAD040249C3CD1802F001008E0402A50E49C3C515F001008609
|
||||
:201C80000EAD050249C3CD1902F001008E0502A50F49C3C516F00100860FAD060249C3CD59
|
||||
:201CA0001A02F001008E0602AD0002C918F00100A9198D0002A90048A9FF28241608C9FFE4
|
||||
:201CC000F001006848C932F0010028A90048A90128241508C901F001006848C970F00100B6
|
||||
:201CE00028A90048A90128241408C901F001006848C9B2F0010028A90048A90128241308B8
|
||||
:201D0000C901F001006848C9F0F0010028A9FF48A9FF28241608C9FFF001006848C93FF023
|
||||
:201D2000010028A9FF48A90128241508C901F001006848C97DF0010028A9FF48A9012824C7
|
||||
:201D40001408C901F001006848C9BFF0010028A9FF48A90128241308C901F001006848C926
|
||||
:201D6000FDF0010028A90048A9FF282C1A0208C9FFF001006848C932F0010028A90048A925
|
||||
:201D800001282C190208C901F001006848C970F0010028A90048A901282C180208C901F043
|
||||
:201DA00001006848C9B2F0010028A90048A901282C170208C901F001006848C9F0F00100B9
|
||||
:201DC00028A9FF48A9FF282C1A0208C9FFF001006848C93FF0010028A9FF48A901282C193A
|
||||
:201DE0000208C901F001006848C97DF0010028A9FF48A901282C180208C901F00100684894
|
||||
:201E0000C9BFF0010028A9FF48A901282C170208C901F001006848C9FDF0010028AD000219
|
||||
:201E2000C919F00100A91A8D0002A90048A28028E417086848C931F0010028CAE417086847
|
||||
:201E400048C933F0010028CAE41708E07EF001006848C9B0F0010028A9FF48A28028E41792
|
||||
:201E6000086848C97DF0010028CAE417086848C97FF0010028CAE41708E07EF001006848A1
|
||||
:201E8000C9FCF0010028A90048A28028EC1B02086848C931F0010028CAEC1B02086848C901
|
||||
:201EA00033F0010028CAEC1B0208E07EF001006848C9B0F0010028A9FF48A28028EC1B0227
|
||||
:201EC000086848C97DF0010028CAEC1B02086848C97FF0010028CAEC1B0208E07EF00100D5
|
||||
:201EE0006848C9FCF0010028A90048A28028E07F086848C931F0010028CAE07F086848C945
|
||||
:201F000033F0010028CAE07F08E07EF001006848C9B0F0010028A9FF48A28028E07F0868AA
|
||||
:201F200048C97DF0010028CAE07F086848C97FF0010028CAE07F08E07EF001006848C9FCC3
|
||||
:201F4000F0010028AD0002C91AF00100A91B8D0002A90048A08028C417086848C931F001DB
|
||||
:201F6000002888C417086848C933F001002888C41708C07EF001006848C9B0F0010028A984
|
||||
:201F8000FF48A08028C417086848C97DF001002888C417086848C97FF001002888C41708D9
|
||||
:201FA000C07EF001006848C9FCF0010028A90048A08028CC1B02086848C931F001002888EF
|
||||
:201FC000CC1B02086848C933F001002888CC1B0208C07EF001006848C9B0F0010028A9FFB9
|
||||
:201FE00048A08028CC1B02086848C97DF001002888CC1B02086848C97FF001002888CC1B58
|
||||
:202000000208C07EF001006848C9FCF0010028A90048A08028C07F086848C931F0010028B6
|
||||
:2020200088C07F086848C933F001002888C07F08C07EF001006848C9B0F0010028A9FF48DC
|
||||
:20204000A08028C07F086848C97DF001002888C07F086848C97FF001002888C07F08C07EF5
|
||||
:20206000F001006848C9FCF0010028AD0002C91BF00100A91C8D0002A90048A98028C517EB
|
||||
:2020800008C980F001006848C931F0010028A90048A97F28C51708C97FF001006848C93331
|
||||
:2020A000F0010028A90048A97E28C51708C97EF001006848C9B0F0010028A9FF48A9802828
|
||||
:2020C000C51708C980F001006848C97DF0010028A9FF48A97F28C51708C97FF001006848C6
|
||||
:2020E000C97FF0010028A9FF48A97E28C51708C97EF001006848C9FCF0010028A90048A9FC
|
||||
:202100008028CD1B0208C980F001006848C931F0010028A90048A97F28CD1B0208C97FF0BD
|
||||
:2021200001006848C933F0010028A90048A97E28CD1B0208C97EF001006848C9B0F0010055
|
||||
:2021400028A9FF48A98028CD1B0208C980F001006848C97DF0010028A9FF48A97F28CD1BB3
|
||||
:202160000208C97FF001006848C97FF0010028A9FF48A97E28CD1B0208C97EF001006848F2
|
||||
:20218000C9FCF0010028A90048A98028C97F08C980F001006848C931F0010028A90048A938
|
||||
:2021A0007F28C97F08C97FF001006848C933F0010028A90048A97E28C97F08C97EF0010062
|
||||
:2021C0006848C9B0F0010028A9FF48A98028C97F08C980F001006848C97DF0010028A9FF3B
|
||||
:2021E00048A97F28C97F08C97FF001006848C97FF0010028A9FF48A97E28C97F08C97EF0E7
|
||||
:2022000001006848C9FCF0010028A204A90048A98028D51308C980F001006848C931F00182
|
||||
:202220000028A90048A97F28D51308C97FF001006848C933F0010028A90048A97E28D5131F
|
||||
:2022400008C97EF001006848C9B0F0010028A9FF48A98028D51308C980F001006848C97D9B
|
||||
:20226000F0010028A9FF48A97F28D51308C97FF001006848C97FF0010028A9FF48A97E288C
|
||||
:20228000D51308C97EF001006848C9FCF0010028A90048A98028DD170208C980F0010068A6
|
||||
:2022A00048C931F0010028A90048A97F28DD170208C97FF001006848C933F0010028A900DD
|
||||
:2022C00048A97E28DD170208C97EF001006848C9B0F0010028A9FF48A98028DD170208C9E7
|
||||
:2022E00080F001006848C97DF0010028A9FF48A97F28DD170208C97FF001006848C97FF0FF
|
||||
:20230000010028A9FF48A97E28DD170208C97EF001006848C9FCF0010028A004A208A9009A
|
||||
:2023200048A98028D9170208C980F001006848C931F0010028A90048A97F28D9170208C909
|
||||
:202340007FF001006848C933F0010028A90048A97E28D9170208C97EF001006848C9B0F0BD
|
||||
:20236000010028A9FF48A98028D9170208C980F001006848C97DF0010028A9FF48A97F2870
|
||||
:20238000D9170208C97FF001006848C97FF0010028A9FF48A97E28D9170208C97EF0010088
|
||||
:2023A0006848C9FCF0010028A90048A98028C12408C980F001006848C931F0010028A900BA
|
||||
:2023C00048A97F28C12408C97FF001006848C933F0010028A90048A97E28C12408C97EF016
|
||||
:2023E00001006848C9B0F0010028A9FF48A98028C12408C980F001006848C97DF001002823
|
||||
:20240000A9FF48A97F28C12408C97FF001006848C97FF0010028A9FF48A97E28C12408C950
|
||||
:202420007EF001006848C9FCF0010028A90048A98028D12408C980F001006848C931F0018B
|
||||
:202440000028A90048A97F28D12408C97FF001006848C933F0010028A90048A97E28D124E3
|
||||
:2024600008C97EF001006848C9B0F0010028A9FF48A98028D12408C980F001006848C97D6C
|
||||
:20248000F0010028A9FF48A97F28D12408C97FF001006848C97FF0010028A9FF48A97E285D
|
||||
:2024A000D12408C97EF001006848C9FCF0010028AD0002C91CF00100A91D8D0002A203A931
|
||||
:2024C0000048B513280A08DD2002F00100684930DD3002F00100CA10E6A203A9FF48B513C4
|
||||
:2024E000280A08DD2002F0010068497CDD3002F00100CA10E6A203A90048B513284A08DD10
|
||||
:202500002802F00100684930DD3802F00100CA10E6A203A9FF48B513284A08DD2802F00128
|
||||
:202520000068497CDD3802F00100CA10E6A203A90048B513282A08DD2002F001006849301D
|
||||
:20254000DD3002F00100CA10E6A203A9FE48B513282A08DD2002F0010068497CDD3002F0E9
|
||||
:202560000100CA10E6A203A90148B513282A08DD2402F00100684930DD3402F00100CA102E
|
||||
:20258000E6A203A9FF48B513282A08DD2402F0010068497CDD3402F00100CA10E6A203A96B
|
||||
:2025A0000048B513286A08DD2802F00100684930DD3802F00100CA10E6A203A9FE48B51374
|
||||
:2025C000286A08DD2802F0010068497CDD3802F00100CA10E6A203A90148B513286A08DD9E
|
||||
:2025E0002C02F00100684930DD3C02F00100CA10E6A203A9FF48B513286A08DD2C02F0011C
|
||||
:202600000068497CDD3C02F00100CA10E6AD0002C91DF00100A91E8D0002A203A90048B59A
|
||||
:2026200013850C28060C08A50CDD2002F00100684930DD3002F00100CA10E1A203A9FF48E2
|
||||
:20264000B513850C28060C08A50CDD2002F0010068497CDD3002F00100CA10E1A203A90008
|
||||
:2026600048B513850C28460C08A50CDD2802F00100684930DD3802F00100CA10E1A203A99C
|
||||
:20268000FF48B513850C28460C08A50CDD2802F0010068497CDD3802F00100CA10E1A203DA
|
||||
:2026A000A90048B513850C28260C08A50CDD2002F00100684930DD3002F00100CA10E1A28F
|
||||
:2026C00003A9FE48B513850C28260C08A50CDD2002F0010068497CDD3002F00100CA10E1C4
|
||||
:2026E000A203A90148B513850C28260C08A50CDD2402F00100684930DD3402F00100CA1024
|
||||
:20270000E1A203A9FF48B513850C28260C08A50CDD2402F0010068497CDD3402F00100CAE8
|
||||
:2027200010E1A203A90048B513850C28660C08A50CDD2802F00100684930DD3802F0010085
|
||||
:20274000CA10E1A203A9FE48B513850C28660C08A50CDD2802F0010068497CDD3802F00151
|
||||
:2027600000CA10E1A203A90148B513850C28660C08A50CDD2C02F00100684930DD3C02F073
|
||||
:202780000100CA10E1A203A9FF48B513850C28660C08A50CDD2C02F0010068497CDD3C02F8
|
||||
:2027A000F00100CA10E1AD0002C91EF00100A91F8D0002A203A90048B5138D0302280E0366
|
||||
:2027C0000208AD0302DD2002F00100684930DD3002F00100CA10DEA203A9FF48B5138D03C7
|
||||
:2027E00002280E030208AD0302DD2002F0010068497CDD3002F00100CA10DEA203A9004877
|
||||
:20280000B5138D0302284E030208AD0302DD2802F00100684930DD3802F00100CA10DEA2EE
|
||||
:2028200003A9FF48B5138D0302284E030208AD0302DD2802F0010068497CDD3802F00100E9
|
||||
:20284000CA10DEA203A90048B5138D0302282E030208AD0302DD2002F00100684930DD30DD
|
||||
:2028600002F00100CA10DEA203A9FE48B5138D0302282E030208AD0302DD2002F001006852
|
||||
:20288000497CDD3002F00100CA10DEA203A90148B5138D0302282E030208AD0302DD2402B2
|
||||
:2028A000F00100684930DD3402F00100CA10DEA203A9FF48B5138D0302282E030208AD0388
|
||||
:2028C00002DD2402F0010068497CDD3402F00100CA10DEA203A90048B5138D0302286E0390
|
||||
:2028E0000208AD0302DD2802F00100684930DD3802F00100CA10DEA203A9FE48B5138D0397
|
||||
:2029000002286E030208AD0302DD2802F0010068497CDD3802F00100CA10DEA203A90148E4
|
||||
:20292000B5138D0302286E030208AD0302DD2C02F00100684930DD3C02F00100CA10DEA2A5
|
||||
:2029400003A9FF48B5138D0302286E030208AD0302DD2C02F0010068497CDD3C02F00100A0
|
||||
:20296000CA10DEAD0002C91FF00100A9208D0002A203A90048B513950C28160C08B50CDDD0
|
||||
:202980002002F00100684930DD3002F00100CA10E1A203A9FF48B513950C28160C08B50C77
|
||||
:2029A000DD2002F0010068497CDD3002F00100CA10E1A203A90048B513950C28560C08B5F9
|
||||
:2029C0000CDD2802F00100684930DD3802F00100CA10E1A203A9FF48B513950C28560C08BF
|
||||
:2029E000B50CDD2802F0010068497CDD3802F00100CA10E1A203A90048B513950C28360CC5
|
||||
:202A000008B50CDD2002F00100684930DD3002F00100CA10E1A203A9FE48B513950C283606
|
||||
:202A20000C08B50CDD2002F0010068497CDD3002F00100CA10E1A203A90148B513950C28C1
|
||||
:202A4000360C08B50CDD2402F00100684930DD3402F00100CA10E1A203A9FF48B513950CD9
|
||||
:202A600028360C08B50CDD2402F0010068497CDD3402F00100CA10E1A203A90048B5139550
|
||||
:202A80000C28760C08B50CDD2802F00100684930DD3802F00100CA10E1A203A9FE48B513BF
|
||||
:202AA000950C28760C08B50CDD2802F0010068497CDD3802F00100CA10E1A203A90148B5CE
|
||||
:202AC00013950C28760C08B50CDD2C02F00100684930DD3C02F00100CA10E1A203A9FF4896
|
||||
:202AE000B513950C28760C08B50CDD2C02F0010068497CDD3C02F00100CA10E1AD0002C992
|
||||
:202B000020F00100A9218D0002A203A90048B5139D0302281E030208BD0302DD2002F00146
|
||||
:202B200000684930DD3002F00100CA10DEA203A9FF48B5139D0302281E030208BD0302DD0B
|
||||
:202B40002002F0010068497CDD3002F00100CA10DEA203A90048B5139D0302285E030208EA
|
||||
:202B6000BD0302DD2802F00100684930DD3802F00100CA10DEA203A9FF48B5139D030228D3
|
||||
:202B80005E030208BD0302DD2802F0010068497CDD3802F00100CA10DEA203A90048B513C5
|
||||
:202BA0009D0302283E030208BD0302DD2002F00100684930DD3002F00100CA10DEA203A967
|
||||
:202BC000FE48B5139D0302283E030208BD0302DD2002F0010068497CDD3002F00100CA1019
|
||||
:202BE000DEA203A90148B5139D0302283E030208BD0302DD2402F00100684930DD3402F0E9
|
||||
:202C00000100CA10DEA203A9FF48B5139D0302283E030208BD0302DD2402F0010068497CA6
|
||||
:202C2000DD3402F00100CA10DEA203A90048B5139D0302287E030208BD0302DD2802F0016B
|
||||
:202C400000684930DD3802F00100CA10DEA203A9FE48B5139D0302287E030208BD0302DD83
|
||||
:202C60002802F0010068497CDD3802F00100CA10DEA203A90148B5139D0302287E03020898
|
||||
:202C8000BD0302DD2C02F00100684930DD3C02F00100CA10DEA203A9FF48B5139D030228AA
|
||||
:202CA0007E030208BD0302DD2C02F0010068497CDD3C02F00100CA10DEAD0002C921F00150
|
||||
:202CC00000A9228D0002A200A97E850CA9004828E60C08A50CDD4002F00100684930DD4569
|
||||
:202CE00002F00100E8E002D004A9FE850CE005D0DBCAE60CA9004828C60C08A50CDD4002FC
|
||||
:202D0000F00100684930DD4502F00100CA300AE001D0E1A981850CD0DBA200A97E850CA9CD
|
||||
:202D2000FF4828E60C08A50CDD4002F0010068497DDD4502F00100E8E002D004A9FE850C50
|
||||
:202D4000E005D0DBCAE60CA9FF4828C60C08A50CDD4002F0010068497DDD4502F00100CA67
|
||||
:202D6000300AE001D0E1A981850CD0DBAD0002C922F00100A9238D0002A200A97E8D0302E0
|
||||
:202D8000A9004828EE030208AD0302DD4002F00100684930DD4502F00100E8E002D005A91F
|
||||
:202DA000FE8D0302E005D0D8CAEE0302A9004828CE030208AD0302DD4002F00100684930A2
|
||||
:202DC000DD4502F00100CA300BE001D0DFA9818D0302D0D8A200A97E8D0302A9FF4828EE84
|
||||
:202DE000030208AD0302DD4002F0010068497DDD4502F00100E8E002D005A9FE8D0302E009
|
||||
:202E000005D0D8CAEE0302A9FF4828CE030208AD0302DD4002F0010068497DDD4502F00150
|
||||
:202E200000CA300BE001D0DFA9818D0302D0D8AD0002C923F00100A9248D0002A200A97EE8
|
||||
:202E4000950CA9004828F60C08B50CDD4002F00100684930DD4502F00100B50CE8E002D08C
|
||||
:202E600002A9FEE005D0D9CAA902950CA9004828D60C08B50CDD4002F00100684930DD452E
|
||||
:202E800002F00100B50CCA3008E001D0DDA981D0D9A200A97E950CA9FF4828F60C08B50CCE
|
||||
:202EA000DD4002F0010068497DDD4502F00100B50CE8E002D002A9FEE005D0D9CAA9029523
|
||||
:202EC0000CA9FF4828D60C08B50CDD4002F0010068497DDD4502F00100B50CCA3008E0012C
|
||||
:202EE000D0DDA981D0D9AD0002C924F00100A9258D0002A200A97E9D0302A9004828FE03E3
|
||||
:202F00000208BD0302DD4002F00100684930DD4502F00100BD0302E8E002D002A9FEE005F5
|
||||
:202F2000D0D5CAA9029D0302A9004828DE030208BD0302DD4002F00100684930DD4502F00A
|
||||
:202F40000100BD0302CA3008E001D0D9A981D0D5A200A97E9D0302A9FF4828FE030208BD08
|
||||
:202F60000302DD4002F0010068497DDD4502F00100BD0302E8E002D002A9FEE005D0D5CAA0
|
||||
:202F8000A9029D0302A9FF4828DE030208BD0302DD4002F0010068497DDD4502F00100BD0F
|
||||
:202FA0000302CA3008E001D0D9A981D0D5AD0002C925F00100A9268D0002A203B51C8D09B9
|
||||
:202FC00002A90048BD5A022820080208DD6202F00100684930DD6602F00100CA10DEA203E5
|
||||
:202FE000B51C8D0902A9FF48BD5A022820080208DD6202F0010068497DDD6602F00100CAA5
|
||||
:2030000010DEA203B51C850CA90048BD5A0228250C08DD6202F00100684930DD6602F00107
|
||||
:2030200000CA10E0A203B51C850CA9FF48BD5A0228250C08DD6202F0010068497DDD6602C0
|
||||
:20304000F00100CA10E0A203B51C8D0302A90048BD5A02282D030208DD6202F0010068496E
|
||||
:2030600030DD6602F00100CA10DEA203B51C8D0302A9FF48BD5A02282D030208DD6202F08E
|
||||
:20308000010068497DDD6602F00100CA1002A203A90048BD5A0228351C08DD6202F001008D
|
||||
:2030A000684930DD6602F00100CA10E4A203A9FF48BD5A0228351C08DD6202F00100684929
|
||||
:2030C0007DDD6602F00100CA10E4A203A90048BD5A02283D4E0208DD6202F0010068493000
|
||||
:2030E000DD6602F00100CA10E3A203A9FF48BD5A02283D4E0208DD6202F0010068497DDD35
|
||||
:203100006602F00100CA10E3A003A90048B95A0228394E0208D96202F00100684930D966E9
|
||||
:2031200002F001008810E3A003A9FF48B95A0228394E0208D96202F0010068497DD9660223
|
||||
:20314000F001008810E3A206A003A90048B95A0228213A08D96202F00100684930D96602D7
|
||||
:20316000F00100CACA8810E2A206A003A9FF48B95A0228213A08D96202F0010068497DD940
|
||||
:203180006602F00100CACA8810E2A003A90048B95A0228313A08D96202F00100684930D99C
|
||||
:2031A0006602F001008810E4A003A9FF48B95A0228313A08D96202F0010068497DD966025A
|
||||
:2031C000F001008810E4AD0002C926F00100A9278D0002A203B5208D0C02A90048BD5E0271
|
||||
:2031E00028200B0208DD6202F00100684930DD6602F00100CA10DEA203B5208D0C02A9FFB4
|
||||
:2032000048BD5E0228200B0208DD6202F0010068497DDD6602F00100CA10DEA203B520859F
|
||||
:203220000CA90048BD5E0228450C08DD6202F00100684930DD6602F00100CA10E0A203B596
|
||||
:2032400020850CA9FF48BD5E0228450C08DD6202F0010068497DDD6602F00100CA10E0A23D
|
||||
:2032600003B5208D0302A90048BD5E02284D030208DD6202F00100684930DD6602F001000B
|
||||
:20328000CA10DEA203B5208D0302A9FF48BD5E02284D030208DD6202F0010068497DDD6638
|
||||
:2032A00002F00100CA1002A203A90048BD5E0228552008DD6202F00100684930DD6602F09F
|
||||
:2032C0000100CA10E4A203A9FF48BD5E0228552008DD6202F0010068497DDD6602F0010042
|
||||
:2032E000CA10E4A203A90048BD5E02285D520208DD6202F00100684930DD6602F00100CA69
|
||||
:2033000010E3A203A9FF48BD5E02285D520208DD6202F0010068497DDD6602F00100CA10B7
|
||||
:20332000E3A003A90048B95E022859520208D96202F00100684930D96602F001008810E364
|
||||
:20334000A003A9FF48B95E022859520208D96202F0010068497DD96602F001008810E3A239
|
||||
:2033600006A003A90048B95E0228414208D96202F00100684930D96602F00100CACA88107A
|
||||
:20338000E2A206A003A9FF48B95E0228414208D96202F0010068497DD96602F00100CACA22
|
||||
:2033A0008810E2A003A90048B95E0228514208D96202F00100684930D96602F0010088104A
|
||||
:2033C000E4A003A9FF48B95E0228514208D96202F0010068497DD96602F001008810E4ADE3
|
||||
:2033E0000002C927F00100A9288D0002A203B5188D0F02A90048BD560228200E0208DD62D5
|
||||
:2034000002F00100684930DD6602F00100CA10DEA203B5188D0F02A9FF48BD560228200E7F
|
||||
:203420000208DD6202F0010068497DDD6602F00100CA10DEA203B518850CA90048BD56022B
|
||||
:2034400028050C08DD6202F00100684930DD6602F00100CA10E0A203B518850CA9FF48BD78
|
||||
:20346000560228050C08DD6202F0010068497DDD6602F00100CA10E0A203B5188D0302A9B6
|
||||
:203480000048BD5602280D030208DD6202F00100684930DD6602F00100CA10DEA203B5181A
|
||||
:2034A0008D0302A9FF48BD5602280D030208DD6202F0010068497DDD6602F00100CA1002C1
|
||||
:2034C000A203A90048BD560228151808DD6202F00100684930DD6602F00100CA10E4A20338
|
||||
:2034E000A9FF48BD560228151808DD6202F0010068497DDD6602F00100CA10E4A203A900C8
|
||||
:2035000048BD5602281D4A0208DD6202F00100684930DD6602F00100CA10E3A203A9FF481A
|
||||
:20352000BD5602281D4A0208DD6202F0010068497DDD6602F00100CA10E3A003A90048B93D
|
||||
:20354000560228194A0208D96202F00100684930D96602F001008810E3A003A9FF48B95620
|
||||
:203560000228194A0208D96202F0010068497DD96602F001008810E3A206A003A90048B9B6
|
||||
:20358000560228014A08D96202F00100684930D96602F00100CACA8810E2A206A003A9FF16
|
||||
:2035A00048B9560228014A08D96202F0010068497DD96602F00100CACA8810E2A003A9004F
|
||||
:2035C00048B9560228114A08D96202F00100684930D96602F001008810E4A003A9FF48B9FE
|
||||
:2035E000560228114A08D96202F0010068497DD96602F001008810E458AD0002C928F001F5
|
||||
:2036000000A9298D0002D8A20EA0FFA900850C850D850E8D0302850F8510A9FF85128D0438
|
||||
:2036200002A90285111820C938E60CE60F080868298228D002E610051085113820C938C64A
|
||||
:203640000CE60DD0E0A9008510EE0302E60E086829828511C612CE0402A50E850FD0C6ADAF
|
||||
:203660000002C929F00100A92A8D0002F8A20EA0FFA999850D850E8D0302850FA901850CF4
|
||||
:203680008510A90085128D040238207637C60CA50FD008C610A999850FD012290FD00CC6F7
|
||||
:2036A0000FC60FC60FC60FC60FC60FC60F18207637E60CA50DF015290FD00CC60DC60DC6EF
|
||||
:2036C0000DC60DC60DC60DC60D4C8936A999850DA50EF030290FD018C60EC60EC60EC60E6F
|
||||
:2036E000C60EC60EE612E612E612E612E612E612C60EE612A5128D0402A50E8D0302850F63
|
||||
:20370000E610D085AD0002C92AF00100A92B8D000218D808A9556955C9AAF0010018F80838
|
||||
:20372000A9556955C910F00100D828A9556955C910F0010028A9556955C9AAF0010018A974
|
||||
:203740003748A95A4808F8A93748A9504808D840A9556955C910F0010040A9556955C9AA21
|
||||
:20376000F00100AD0002C92BF00100A9F08D00024C70374C000408A50D650E08C50FF0015F
|
||||
:2037800000682901C510F001002808A50DE51208C50FF00100682901C510F001002808A5FE
|
||||
:2037A0000D6D030208C50FF00100682901C510F001002808A50DED040208C50FF00100685B
|
||||
:2037C0002901C510F001002808A50E8D1202A50D20110208C50FF00100682901C510F0016B
|
||||
:2037E000002808A5128D1502A50D20140208C50FF00100682901C510F001002808A50D75DA
|
||||
:203800000008C50FF00100682901C510F001002808A50DF50408C50FF00100682901C51074
|
||||
:20382000F001002808A50D7DF50108C50FF00100682901C510F001002808A50DFDF601083F
|
||||
:20384000C50FF00100682901C510F001002808A50D79040108C50FF00100682901C510F0C7
|
||||
:2038600001002808A50DF9050108C50FF00100682901C510F001002808A50D614408C50FDE
|
||||
:20388000F00100682901C510F001002808A50DE14608C50FF00100682901C510F001002889
|
||||
:2038A00008A50D715608C50FF00100682901C510F001002808A50DF15808C50FF001006802
|
||||
:2038C0002901C510F001002860A511298348A50D450E300AA50D450F100468094048688587
|
||||
:2038E0001108A50D650E08C50FF001006829C3C511F001002808A50DE51208C50FF00100FC
|
||||
:203900006829C3C511F001002808A50D6D030208C50FF001006829C3C511F001002808A57B
|
||||
:203920000DED040208C50FF001006829C3C511F001002808A50E8D1202A50D20110208C569
|
||||
:203940000FF001006829C3C511F001002808A5128D1502A50D20140208C50FF0010068297B
|
||||
:20396000C3C511F001002808A50D750008C50FF001006829C3C511F001002808A50DF504A3
|
||||
:2039800008C50FF001006829C3C511F001002808A50D7DF50108C50FF001006829C3C511F3
|
||||
:2039A000F001002808A50DFDF60108C50FF001006829C3C511F001002808A50D79040108F0
|
||||
:2039C000C50FF001006829C3C511F001002808A50DF9050108C50FF001006829C3C511F03F
|
||||
:2039E00001002808A50D614408C50FF001006829C3C511F001002808A50DE14608C50FF082
|
||||
:203A000001006829C3C511F001002808A50D715608C50FF001006829C3C511F001002808C9
|
||||
:203A2000A50DF15808C50FF001006829C3C511F00100286088880888888828900100500161
|
||||
:203A400000100100D00100C946F00100E041F00100C04FF00100488A48BAE0FDF001006868
|
||||
:203A6000AAA9FF482868E849AA4CEE08733A5409008888088888882890010050010010012A
|
||||
:203A800000D00100C949F00100E04EF00100C041F00100488A48BAE0FDF0010068AAA9FFE5
|
||||
:203AA000482868E849AA6C6E3A0088880888888828900100500100100100D00100C94AF0A0
|
||||
:203AC0000100E053F00100C04FF00100488A48BAE0FBF00100ADFF01C909F00100ADFE0105
|
||||
:203AE000C993F00100A9FF482868AA68E849AA60000000888808888888C942F00100E052CE
|
||||
:203B0000F00100C048F00100850A860BBABD0201C930F0010068C934F00100BAE0FCF0015A
|
||||
:1E3B200000ADFF01C909F00100ADFE01C9D3F00100A9FF4828A60BE8A50A49AA40004B
|
||||
:06FFFA00F13AF23AF53A7B
|
||||
:00040001FB
|
|
@ -1099,8 +1099,8 @@ step = do
|
|||
--dumpState
|
||||
p0 <- getPC
|
||||
--if p0 == 0x3781 then debug .= True else return () -- XXX
|
||||
--if p0 == 0x400 then liftIO $ putStrLn "Started!!!" else return ()
|
||||
--if p0 == 0x3770 then liftIO $ putStrLn "Passed!!!" else return ()
|
||||
if p0 == 0x400 then liftIO $ putStrLn "Started!!!" else return ()
|
||||
if p0 == 0x3770 then liftIO $ putStrLn "Passed!!!" else return ()
|
||||
tick 1
|
||||
i <- readMemory p0
|
||||
incPC
|
||||
|
|
62
test/Intel.hs
Executable file
62
test/Intel.hs
Executable file
|
@ -0,0 +1,62 @@
|
|||
{-# LANGUAGE NoMonomorphismRestriction #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
|
||||
module Intel where
|
||||
|
||||
import Text.Parsec
|
||||
import Control.Applicative
|
||||
import Numeric (readHex)
|
||||
import System.IO
|
||||
import Control.Monad
|
||||
import Data.Array.IO
|
||||
import Control.Exception.Base
|
||||
|
||||
import Data.Word
|
||||
import Data.Bits
|
||||
|
||||
hexWord8 :: Stream s m Char => ParsecT s u m Word8
|
||||
hexWord8 = fromHex <$> count 2 hexDigit
|
||||
|
||||
hexWord16 :: Stream s m Char => ParsecT s u m Word16
|
||||
hexWord16 = fromHex <$> count 4 hexDigit
|
||||
|
||||
fromHex :: (Num a, Eq a) => String -> a
|
||||
fromHex = fst . head . readHex
|
||||
|
||||
data IntelHexRecord = IntelHexRecord Word8 Word16 Word8 [Word8] Word8 deriving Show
|
||||
|
||||
line :: Stream s m Char => ParsecT s u m IntelHexRecord
|
||||
line = do
|
||||
char ':'
|
||||
bc <- hexWord8
|
||||
addr <- hexWord16
|
||||
rt <- hexWord8
|
||||
rd <- count (fromIntegral bc) hexWord8
|
||||
cs <- hexWord8
|
||||
return $ IntelHexRecord bc addr rt rd cs
|
||||
|
||||
readIntel :: IOUArray Int Word8 -> FilePath -> IO ()
|
||||
readIntel arr fileName = do
|
||||
handle <- openFile fileName ReadMode
|
||||
text <- hGetContents handle
|
||||
--ram <- newArray (0, 0xffff) 0 :: IO (IOUArray Int Word8)
|
||||
forM_ (lines text) $ \l -> do
|
||||
let Right u = parse line "" l
|
||||
let IntelHexRecord len addr rec bytes check = u
|
||||
let s = len+fromIntegral addr
|
||||
+(fromIntegral $ addr `shift` (-8))
|
||||
+rec
|
||||
+sum bytes
|
||||
+check
|
||||
assert (s==0) $ return ()
|
||||
when (rec==0) $
|
||||
forM_ (zip [0..] bytes) $ \(i, b) -> do
|
||||
let dst = fromIntegral (addr+fromIntegral i)
|
||||
writeArray arr dst b
|
||||
|
||||
{-
|
||||
main = do
|
||||
ram <- readIntel "6502test.hex"
|
||||
bytes <- getElems ram
|
||||
print bytes
|
||||
-}
|
94
test/Main.hs
Executable file
94
test/Main.hs
Executable file
|
@ -0,0 +1,94 @@
|
|||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE BinaryLiterals #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
{-# LANGUAGE DeriveDataTypeable #-}
|
||||
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
|
||||
|
||||
import GHC.Exts
|
||||
import Data.Array.IO
|
||||
import Data.Word
|
||||
import Control.Monad.State
|
||||
import Control.Lens hiding (noneOf)
|
||||
import Data.Bits
|
||||
import Data.Bits.Lens
|
||||
import Data.ByteString as B hiding (putStrLn, putStr, count, head)
|
||||
import System.IO
|
||||
import Data.Binary.Get
|
||||
import Text.Parsec
|
||||
import Data.Binary
|
||||
import System.Console.CmdArgs hiding ((+=))
|
||||
import Numeric
|
||||
import Control.Monad.Loops
|
||||
import System.Console.Haskeline
|
||||
import Core
|
||||
import Binary
|
||||
import Intel hiding (hexWord16, fromHex)
|
||||
import Vanilla
|
||||
|
||||
data Args = Args { verbose :: Bool,
|
||||
file :: String,
|
||||
org :: String,
|
||||
entry :: String } deriving (Show, Data, Typeable)
|
||||
|
||||
clargs :: Args
|
||||
clargs = Args { verbose = False, org = "0", entry = "0", file = "test.bin" }
|
||||
|
||||
times :: (Integral n, Monad m) => n -> m a -> m ()
|
||||
times 0 _ = return ()
|
||||
times n m = m >> times (n-1) m
|
||||
|
||||
data FileSpec = Intel String {- | Binary String Word16 -} deriving Show
|
||||
|
||||
{-
|
||||
hexWord16 :: Stream s m Char => ParsecT s u m Word16
|
||||
hexWord16 = fromHex <$> count 4 hexDigit
|
||||
|
||||
fromHex :: (Num a, Eq a) => String -> a
|
||||
fromHex = fst . head . readHex
|
||||
|
||||
filespec = do
|
||||
char 'i'
|
||||
char ':'
|
||||
filename <- many (noneOf ",")
|
||||
return (Intel filename)
|
||||
|
||||
filespecs = filespec `sepBy1` (char ',')
|
||||
-}
|
||||
|
||||
--xxx = getPC
|
||||
|
||||
{-
|
||||
loadFile :: IOUArray Int Word8 -> FileSpec -> IO ()
|
||||
loadFile arr (Intel f) = readIntel arr f
|
||||
--loadFile arr (Binary f o) = readBinary arr f o
|
||||
-}
|
||||
|
||||
--step' :: Monad6502 ()
|
||||
--step' = step
|
||||
main :: IO ()
|
||||
main = do
|
||||
hSetBuffering stdin NoBuffering
|
||||
hSetBuffering stdout NoBuffering
|
||||
-- hSetEcho stdin False
|
||||
args <- cmdArgs clargs
|
||||
print args
|
||||
|
||||
arr <- newArray (0, 0xffff) 0 :: IO (IOUArray Int Word8)
|
||||
|
||||
{-
|
||||
putStrLn $ "Running from " ++ file args
|
||||
let Right specs = parse filespecs "" (file args)
|
||||
forM_ specs $ \spec ->
|
||||
loadFile arr spec
|
||||
-}
|
||||
readIntel arr "roms/6502test.hex"
|
||||
|
||||
--let [(entryPoint, _)] = readHex (entry args)
|
||||
let entryPoint = 0x400
|
||||
let state = S { _mem = arr, _clock = 0, _regs = R entryPoint 0 0 0 0 0xff,
|
||||
_debug = verbose args}
|
||||
|
||||
putStrLn $ "Executing from 0x" ++ showHex entryPoint ""
|
||||
flip execStateT state $ unM $ forever (inline step)
|
||||
--runInputT defaultSettings $ flip execStateT state $ unM $ forever (inline step)
|
||||
return ()
|
|
@ -1,2 +0,0 @@
|
|||
main :: IO ()
|
||||
main = putStrLn "Test suite not yet implemented"
|
166
test/Vanilla.hs
Executable file
166
test/Vanilla.hs
Executable file
|
@ -0,0 +1,166 @@
|
|||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
|
||||
|
||||
module Vanilla where
|
||||
|
||||
import Data.Array.IO
|
||||
import Control.Monad.State
|
||||
import Control.Lens
|
||||
import Data.Bits.Lens
|
||||
import Data.Bits
|
||||
import Data.Word
|
||||
import Numeric
|
||||
|
||||
import Core
|
||||
|
||||
data Registers = R {
|
||||
_pc :: !Word16,
|
||||
_p :: !Word8,
|
||||
_a :: !Word8,
|
||||
_x :: !Word8,
|
||||
_y :: !Word8,
|
||||
_s :: !Word8
|
||||
}
|
||||
|
||||
makeLenses ''Registers
|
||||
|
||||
{-# INLINE flagC #-}
|
||||
flagC :: Lens' Registers Bool
|
||||
flagC = p . bitAt 0
|
||||
|
||||
{-# INLINE flagZ #-}
|
||||
flagZ :: Lens' Registers Bool
|
||||
flagZ = p . bitAt 1
|
||||
|
||||
{-# INLINE flagI #-}
|
||||
flagI :: Lens' Registers Bool
|
||||
flagI = p . bitAt 2
|
||||
|
||||
{-# INLINE flagD #-}
|
||||
flagD :: Lens' Registers Bool
|
||||
flagD = p . bitAt 3
|
||||
|
||||
{-# INLINE flagB #-}
|
||||
flagB :: Lens' Registers Bool
|
||||
flagB = p . bitAt 4
|
||||
|
||||
{-# INLINE flagV #-}
|
||||
flagV :: Lens' Registers Bool
|
||||
flagV = p . bitAt 6
|
||||
|
||||
{-# INLINE flagN #-}
|
||||
flagN :: Lens' Registers Bool
|
||||
flagN = p . bitAt 7
|
||||
|
||||
data State6502 = S {
|
||||
_mem :: IOUArray Int Word8,
|
||||
_clock :: !Int,
|
||||
_regs :: !Registers,
|
||||
_debug :: !Bool
|
||||
}
|
||||
|
||||
makeLenses ''State6502
|
||||
|
||||
newtype Monad6502 a = M { unM :: StateT State6502 IO a }
|
||||
deriving (Functor, Applicative, Monad, MonadState State6502, MonadIO)
|
||||
|
||||
instance Emu6502 Monad6502 where
|
||||
{-# INLINE readMemory #-}
|
||||
readMemory addr = do
|
||||
-- debugStrLn 9 $ "Reading from addr " ++ showHex addr ""
|
||||
-- if addr == 0x8000
|
||||
-- then do
|
||||
-- c <- liftIO $ getChar
|
||||
-- return $ BS.c2w c
|
||||
-- else do
|
||||
-- m <- use mem
|
||||
-- liftIO $ readArray m addr
|
||||
|
||||
m <- use mem
|
||||
liftIO $ readArray m (fromIntegral addr)
|
||||
|
||||
{-# INLINE writeMemory #-}
|
||||
writeMemory addr v = do
|
||||
m <- use mem
|
||||
liftIO $ writeArray m (fromIntegral addr) v
|
||||
-- debugStrLn 9 $ "Writing " ++ showHex v "" ++ " to addr " ++ showHex addr ""
|
||||
-- if addr == 0x8000
|
||||
-- then do
|
||||
-- liftIO $ putChar (BS.w2c v)
|
||||
-- else do
|
||||
-- m <- use mem
|
||||
-- liftIO $ writeArray m addr v
|
||||
|
||||
{-# INLINE getPC #-}
|
||||
getPC = use (regs . pc)
|
||||
{-# INLINE tick #-}
|
||||
tick n = clock += n
|
||||
{-# INLINE putC #-}
|
||||
putC b = regs . flagC .= b
|
||||
{-# INLINE getC #-}
|
||||
getC = use (regs . flagC)
|
||||
{-# INLINE putZ #-}
|
||||
putZ b = regs . flagZ .= b
|
||||
{-# INLINE getZ #-}
|
||||
getZ = use (regs . flagZ)
|
||||
{-# INLINE putI #-}
|
||||
putI b = regs . flagI .= b
|
||||
{-# INLINE getI #-}
|
||||
getI = use (regs . flagI)
|
||||
{-# INLINE putD #-}
|
||||
putD b = regs . flagD .= b
|
||||
{-# INLINE getD #-}
|
||||
getD = use (regs . flagD)
|
||||
{-# INLINE putB #-}
|
||||
putB b = regs . flagB .= b
|
||||
{-# INLINE getB #-}
|
||||
getB = use (regs . flagB)
|
||||
{-# INLINE putV #-}
|
||||
putV b = regs . flagV .= b
|
||||
{-# INLINE getV #-}
|
||||
getV = use (regs . flagV)
|
||||
{-# INLINE putN #-}
|
||||
putN b = regs . flagN .= b
|
||||
{-# INLINE getN #-}
|
||||
getN = use (regs . flagN)
|
||||
{-# INLINE getA #-}
|
||||
getA = use (regs . a)
|
||||
{-# INLINE putA #-}
|
||||
putA r = regs . a .= r
|
||||
{-# INLINE getS #-}
|
||||
getS = use (regs . s)
|
||||
{-# INLINE putS #-}
|
||||
putS r = regs . s .= r
|
||||
{-# INLINE getX #-}
|
||||
getX = use (regs . x)
|
||||
{-# INLINE putX #-}
|
||||
putX r = regs . x .= r
|
||||
{-# INLINE getP #-}
|
||||
getP = use (regs . p)
|
||||
{-# INLINE putP #-}
|
||||
putP r = regs . p .= r
|
||||
{-# INLINE getY #-}
|
||||
getY = use (regs . y)
|
||||
{-# INLINE putY #-}
|
||||
putY r = regs . y .= r
|
||||
{-# INLINE putPC #-}
|
||||
putPC r = regs . pc .= r
|
||||
{-# INLINE addPC #-}
|
||||
addPC n = regs . pc += fromIntegral n
|
||||
|
||||
{-# INLINE debugStr #-}
|
||||
debugStr _ str = do
|
||||
d <- use debug
|
||||
if d
|
||||
then liftIO $ putStr str
|
||||
else return ()
|
||||
|
||||
{-# INLINE debugStrLn #-}
|
||||
debugStrLn _ str = do
|
||||
d <- use debug
|
||||
if d
|
||||
then liftIO $ putStrLn str
|
||||
else return ()
|
||||
|
||||
{-# INLINE illegal #-}
|
||||
illegal i = error $ "Illegal opcode 0x" ++ showHex i ""
|
Loading…
Reference in a new issue