added README and tests
This commit is contained in:
parent
b11851912e
commit
8fdfd9fce2
|
@ -0,0 +1,149 @@
|
|||
This is a complete pure-Lua 65C02 emulator.
|
||||
|
||||
This requires Lua 5.3 (because of the bitwise functions). Yes, you
|
||||
could probably port it to 5.2 and 5.1 fairly easily with one of the
|
||||
Lua bitwise libraries. I'm more inclined to just leave it at Lua
|
||||
5.3+. If you want to fork, then have at it!
|
||||
|
||||
# How would you use this?
|
||||
|
||||
Well, if I wanted to build an (original) Apple ][ emulator, I would
|
||||
probably do it similarly to how I structured the tests. First build a
|
||||
CPU...
|
||||
|
||||
``` lua
|
||||
local _6502 = require '6502'
|
||||
local cpu = _6502:new()
|
||||
```
|
||||
|
||||
... and then override the simple memory array with a memory management
|
||||
unit, which implements the various pieces of Apple ][ memory magic:
|
||||
|
||||
``` lua
|
||||
local mmu = { ram = {} }
|
||||
local mmu_metatable = { __index = function(t, key)
|
||||
return t.ram[key] or 0
|
||||
end,
|
||||
__newindex = function(t, k, v)
|
||||
if (k == 0xF001 and v ~= nil) then
|
||||
io.write(string.format("%c", v))
|
||||
end
|
||||
if (k == 0x200 and v ~= nil) then
|
||||
if (v == 240) then
|
||||
print("All tests successful!")
|
||||
os.exit(0)
|
||||
end
|
||||
print(string.format("Start test %d", v))
|
||||
end
|
||||
t.ram[k] = v
|
||||
end,
|
||||
}
|
||||
setmetatable(mmu, mmu_metatable)
|
||||
cpu.ram = mmu
|
||||
```
|
||||
|
||||
Basically, the **__index** function gets called for any memory "read"; and
|
||||
the **__newindex** function gets called for any "write". This MMU was
|
||||
specifically built for the verbose CPU test; whenever it wants to
|
||||
output a character, the test writes it to memory location 0xF001; and
|
||||
whenever it starts a new test, it writes to memory location 0x200. So
|
||||
those two memory locations are treated specially when writing to this
|
||||
MMU; but it returns straight out of its "ram" table when reading
|
||||
(since there's nothing special about its reads).
|
||||
|
||||
For memory in an Apple ][, it would do straight reads and writes for
|
||||
any memory <= 0xC000. For 0xC000 through 0xCFFF, you'd do something
|
||||
with the hardware I/O (where reads and writes are both special); and
|
||||
then from 0xD000 through 0xFFFF you have ROM, which will need to be
|
||||
loaded from a file or some such:
|
||||
|
||||
``` lua
|
||||
local f = assert(io.open("apple2o.rom", "rb") )
|
||||
local data = f:read("*a")
|
||||
assert(#data == 12288)
|
||||
|
||||
local i = 0
|
||||
while (i < #data) do
|
||||
mmu[0xC000 + i] = data:byte(i+1)
|
||||
i = i + 1
|
||||
end
|
||||
```
|
||||
|
||||
Finally, you would reinitialize the CPU, perform a reset, and then
|
||||
start running it in a loop.
|
||||
|
||||
``` lua
|
||||
cpu:init()
|
||||
cpu:rst()
|
||||
while (true) do
|
||||
cpu:step()
|
||||
end
|
||||
```
|
||||
|
||||
Of course, then you get in to I/O issues, like keyboards and disk
|
||||
drives; how you're going to draw a display; performance issues; what
|
||||
about proper speed timing?; and details, details, details...
|
||||
|
||||
# Tests
|
||||
|
||||
The tests are from the fantastic project
|
||||
|
||||
https://github.com/Klaus2m5/6502_65C02_functional_tests
|
||||
|
||||
The tests in the tests/ directory are...
|
||||
|
||||
## 6502_functional_test.lua
|
||||
from git commit fe99e5616243a1bdbceaf5907390ce4443de7db0
|
||||
using files
|
||||
6502_functional_test.bin
|
||||
6502_functional_test.lst
|
||||
|
||||
This is basic testing of all core 6502 functions. In all, there are 43
|
||||
tests; it takes some time to execute them (about 40 seconds on my 2015
|
||||
Macbook Pro).
|
||||
|
||||
## 6502_functional_test_verbose.lua
|
||||
from git commit fe99e5616243a1bdbceaf5907390ce4443de7db0
|
||||
which I assembled with as65, with 'report' enabled
|
||||
6502_functional_test_verbose.bin
|
||||
6502_functional_test_verbose.lst
|
||||
|
||||
These are the same tests as above, but I assembled it in verbose mode;
|
||||
if there's a test failure, it's much more explicit about it. An error
|
||||
elicits output like this:
|
||||
|
||||
```
|
||||
regs Y X A PS PCLPCH
|
||||
01F9 04 02 20 B0 0B 2F 30
|
||||
000C 20 00 00 00 00 00 00
|
||||
0200 1E 00 00 00 00 00 00 00
|
||||
press C to continue
|
||||
```
|
||||
|
||||
(Of course, I haven't implemented "press C to continue" so it just
|
||||
busy-loops forever.)
|
||||
|
||||
## 65C02_extended_opcodes_test.lua
|
||||
from git commit f54e9a77efad2d78077107a919a412407c106f22
|
||||
65C02_extended_opcodes_test.bin
|
||||
65C02_extended_opcodes_test.lst
|
||||
|
||||
This tests much of the 65C02's extended behavior, including the
|
||||
"invalid" opcodes. This has 21 tests and should end with "All tests
|
||||
successful!" just like the other two tests.
|
||||
|
||||
## decimal_tests/*
|
||||
|
||||
The BCD "decimal mode" ADC and SBC operations behave in unexpected and difficult to explain ways - particularly the oVerflow flag, and especially when operating on "invalid" BCD numbers. For example - in Decimal mode, the operation "0x19 ADC 0x01" (hex 19 plus 1 -- or 25 + 1 in decimal) equals "0x20" (32). That's binary coded decimal, where the "hex" number 0x20 actually represents the decimal number 20.
|
||||
|
||||
So what happens when you tell it to add 0x1C + 0x01? 0x1C isn't a valid BCD number, so it's not obvious what should happen.
|
||||
|
||||
The test **65c02-all.bin** is a complete test of all decimal mode addition and subtraction, with validation of all of the N, V, Z, and C status flags. The wrapper 6502_decimal_test.lua take a "-f" argument that tells it which of the .bin files you want to load and execute. So it's invoked like this:
|
||||
|
||||
```
|
||||
$ tests/decimal-tests/6502_decimal_test.lua -f tests/decimal-tests/65c02-all.bin
|
||||
```
|
||||
|
||||
## Questions?
|
||||
|
||||
You can try emailing me at jorj@jorj.org. Glad to answer what I can, but my mailbox overfloweth perpetually and sometimes it takes a while for a reply!
|
Binary file not shown.
|
@ -0,0 +1,427 @@
|
|||
:16000A00000000000000000000C38241007F001F71800FFF7F80BE
|
||||
:20002000FF0F8F8F1702180219021A021B021F0103020402050206020B014E024F025002D4
|
||||
:1A004000510252025302540255024A024B024C024D020302040204010501B1
|
||||
:200200000000000000000000290060490060090060690060E90060C38241007F808000022A
|
||||
:20022000860482008705830161412000E1C1A0808101800281018000010001028180818012
|
||||
:200240007F80FF00010080800200001F71800FFF7F80FF0F8F8F00F11F00F0FFFFFFFFF068
|
||||
:0A026000F00F00FF7F800280008095
|
||||
:20040000D8A2FF9AA9008D0002A2054C3304A005D0084C120488888888888888888888F048
|
||||
:20042000174C2104CACACACACACACACACACAF0DE4C3004D0F44C3504AD0002C900D0FEA9CA
|
||||
:20044000018D0002A0FE8898AA1008186902EAEAEAEAEAEAEAEAEAEA497F8DE604A9004CB1
|
||||
:20046000E504CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACAE7
|
||||
:20048000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACA1C
|
||||
:2004A000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACAFC
|
||||
:2004C000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACADC
|
||||
:2004E000CACACACACAF03ECACACACACACACACACACACACACACACACACACACACACACACACACA22
|
||||
:20050000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACA9B
|
||||
:20052000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACA7B
|
||||
:20054000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACA5B
|
||||
:20056000CACACACACACAEAEAEAEAEAF0084C6D05EAEAEAEAEAEAEAEAEAEAC000F0034C460E
|
||||
:2005800004AD0002C901D0FEA9028D0002C001D0034C9105A900C900D0FE90FE30FEC9019A
|
||||
:2005A000F0FEB0FE10FEAAE000D0FE90FE30FEE001F0FEB0FE10FEA8C000D0FE90FE30FE00
|
||||
:2005C000C001F0FEB0FE10FEAD0002C902D0FEA9038D0002A2FF9AA95548A9AA48CDFE0145
|
||||
:2005E000D0FEBA8AC9FDD0FE68C9AAD0FE68C955D0FECDFF01D0FEBAE0FFD0FEAD0002C9DE
|
||||
:2006000003D0FEA9048D0002A9FF4828101A501B901CD01D30034C160670034C1B06B00359
|
||||
:200620004C2006F00F4C25064C28064C2B064C2E064C310608BAE0FED0FE68C9FFD0FEBAB2
|
||||
:20064000E0FFD0FEA9004828301A701BB01CF01D10034C520650034C570690034C5C06D062
|
||||
:200660000F4C61064C64064C67064C6A064C6D060868C930D0FEA9024828D002F0034C7EED
|
||||
:2006800006B00290034C8506300210034C8C06700250034C9306A9014828F002D0034C9EA2
|
||||
:2006A000069002B0034CA506300210034CAC06700250034CB306A9804828F002D0034CBE83
|
||||
:2006C00006B00290034CC506100230034CCC06700250034CD306A9404828F002D0034CDE23
|
||||
:2006E00006B00290034CE506300210034CEC06500270034CF306A9FD4828F002D0034CFEC6
|
||||
:20070000069002B0034C0507100230034C0C07500270034C1307A9FE4828D002F0034C1E21
|
||||
:2007200007B00290034C2507100230034C2C07500270034C3307A97F4828D002F0034C3EFF
|
||||
:20074000079002B0034C4507300210034C4C07500270034C5307A9BF4828D002F0034C5E1F
|
||||
:20076000079002B0034C6507100230034C6C07700250034C7307AD0002C904D0FEA9058D61
|
||||
:200780000002A255A0AAA9FF48A901284808C901D0FE6848C9FFD0FE28A90048A9002848F4
|
||||
:2007A00008C900D0FE6848C930D0FE28A9FF48A9FF284808C9FFD0FE6848C9FFD0FE28A93E
|
||||
:2007C0000048A901284808C901D0FE6848C930D0FE28A9FF48A900284808C900D0FE684820
|
||||
:2007E000C9FFD0FE28A90048A9FF284808C9FFD0FE6848C930D0FE28A9FF48A900286808C4
|
||||
:20080000C9FFD0FE6848C9FDD0FE28A90048A9FF286808C900D0FE6848C932D0FE28A9FFC5
|
||||
:2008200048A9FE286808C901D0FE6848C97DD0FE28A90048A900286808C9FFD0FE6848C96C
|
||||
:20084000B0D0FE28A9FF48A9FF286808C900D0FE6848C97FD0FE28A90048A9FE286808C944
|
||||
:2008600001D0FE6848C930D0FE28E055D0FEC0AAD0FEAD0002C905D0FEA9068D0002A9009D
|
||||
:2008800048A93C2849C308C9FFD0FE6848C9B0D0FE28A90048A9C32849C308C900D0FE68A2
|
||||
:2008A00048C932D0FE28AD0002C906D0FEA9078D0002A224A042A90048A91828EA08C9181F
|
||||
:2008C000D0FE6848C930D0FE28E024D0FEC042D0FEA2DBA0BDA9FF48A9E728EA08C9E7D015
|
||||
:2008E000FE6848C9FFD0FE28E0DBD0FEC0BDD0FEAD0002C907D0FEA9088D0002A900482812
|
||||
:20090000A946A241A0524CEF36EAEAD0FEE8E8F0FE10FE90FE50FEC9ECD0FEE042D0FEC025
|
||||
:200920004FD0FECAC8C8C849AA4C3209EAEAD0FEE8E8F0FE30FE90FE50FEC946D0FEE04196
|
||||
:20094000D0FEC052D0FEAD0002C908D0FEA9098D0002A9004828A949A24EA0446C1E37EAD0
|
||||
:20096000D0FE88880888888828F0FE10FE90FE50FEC9E3D0FEE04FD0FEC03ED0FEBAE0FF1D
|
||||
:20098000D0FEAD0002C909D0FEA90A8D0002A9004828A94AA253A052205D37088888882889
|
||||
:2009A000F0FE10FE90FE50FEC9E0D0FEE054D0FEC04CD0FEBAE0FFD0FEAD0002C90AD0FE55
|
||||
:2009C000A90B8D0002A90048A942A252A04B28008808888888C9E8D0FEE053D0FEC045D074
|
||||
:2009E000FE68C930D0FEBAE0FFD0FEA9FF48A9BDA2ADA0B428008808888888C917D0FEE08C
|
||||
:200A0000AED0FEC0AED0FE68C9FFD0FEBAE0FFD0FEAD0002C90BD0FEA90C8D0002A9FF4834
|
||||
:200A20002818086848C9FED0FE2838086848C9FFD0FE2858086848C9FBD0FE287808684859
|
||||
:200A4000C9FFD0FE28D8086848C9F7D0FE28F8086848C9FFD0FE28B8086848C9BFD0FE2836
|
||||
:200A6000A9004828086848C930D0FE2838086848C931D0FE2818086848C930D0FE28780897
|
||||
:200A80006848C934D0FE2858086848C930D0FE28F8086848C938D0FE28D8086848C930D0B4
|
||||
:200AA000FE28A9404828086848C970D0FE28B8086848C930D0FE28AD0002C90CD0FEA90D69
|
||||
:200AC0008D0002A2FEA9FF4828E808E0FFD0FE6848C9FDD0FE28E808E000D0FE6848C97F30
|
||||
:200AE000D0FE28E808E001D0FE6848C97DD0FE28CA08E000D0FE6848C97FD0FE28CA08E055
|
||||
:200B0000FFD0FE6848C9FDD0FE28CAA9004828E808E0FFD0FE6848C9B0D0FE28E808E0002D
|
||||
:200B2000D0FE6848C932D0FE28E808E001D0FE6848C930D0FE28CA08E000D0FE6848C932DD
|
||||
:200B4000D0FE28CA08E0FFD0FE6848C9B0D0FE28A0FEA9FF4828C808C0FFD0FE6848C9FD78
|
||||
:200B6000D0FE28C808C000D0FE6848C97FD0FE28C808C001D0FE6848C97DD0FE288808C098
|
||||
:200B800000D0FE6848C97FD0FE288808C0FFD0FE6848C9FDD0FE2888A9004828C808C0FFE0
|
||||
:200BA000D0FE6848C9B0D0FE28C808C000D0FE6848C932D0FE28C808C001D0FE6848C93041
|
||||
:200BC000D0FE288808C000D0FE6848C932D0FE288808C0FFD0FE6848C9B0D0FE28A2FFA9DA
|
||||
:200BE000FF48288A08C9FFD0FE6848C9FDD0FE2808E8288A08C900D0FE6848C97FD0FE28C3
|
||||
:200C000008E8288A08C901D0FE6848C97DD0FE28A90048288A08C901D0FE6848C930D0FEEC
|
||||
:200C20002808CA288A08C900D0FE6848C932D0FE2808CA288A08C9FFD0FE6848C9B0D0FEAF
|
||||
:200C400028A0FFA9FF48289808C9FFD0FE6848C9FDD0FE2808C8289808C900D0FE6848C96B
|
||||
:200C60007FD0FE2808C8289808C901D0FE6848C97DD0FE28A90048289808C901D0FE6848E2
|
||||
:200C8000C930D0FE280888289808C900D0FE6848C932D0FE280888289808C9FFD0FE684837
|
||||
:200CA000C9B0D0FE28A9FF48A2FF8A28A808C0FFD0FE6848C9FDD0FE2808E88A28A808C0C7
|
||||
:200CC00000D0FE6848C97FD0FE2808E88A28A808C001D0FE6848C97DD0FE28A90048A900F1
|
||||
:200CE0008A28A808C001D0FE6848C930D0FE2808CA8A28A808C000D0FE6848C932D0FE2801
|
||||
:200D000008CA8A28A808C0FFD0FE6848C9B0D0FE28A9FF48A0FF9828AA08E0FFD0FE684895
|
||||
:200D2000C9FDD0FE2808C89828AA08E000D0FE6848C97FD0FE2808C89828AA08E001D0FE28
|
||||
:200D40006848C97DD0FE28A90048A9009828AA08E001D0FE6848C930D0FE2808889828AA53
|
||||
:200D600008E000D0FE6848C932D0FE2808889828AA08E0FFD0FE6848C9B0D0FE28AD00029F
|
||||
:200D8000C90DD0FEA90E8D0002A201A9FF48289A08AD0101C9FFD0FEA90048289A08AD015E
|
||||
:200DA00001C930D0FECAA9FF48289A08AD0001C9FFD0FEA90048289A08AD0001C930D0FE73
|
||||
:200DC000CAA9FF48289A08ADFF01C9FFD0FEA90048289A08ADFF01C930A2019AA9FF482896
|
||||
:200DE000BA08E001D0FEAD0101C97DD0FEA9FF4828BA08E000D0FEAD0001C97FD0FEA9FFCB
|
||||
:200E00004828BA08E0FFD0FEADFF01C9FDD0FEA2019AA9004828BA08E001D0FEAD0101C973
|
||||
:200E200030D0FEA9004828BA08E000D0FEAD0001C932D0FEA9004828BA08E0FFD0FEADFF80
|
||||
:200E400001C9B0D0FE68AD0002C90ED0FEA90F8D0002A003A9004828B613088A49C3289963
|
||||
:200E600003020849C3D91702D0FE684930D91C02D0FE8810DFA003A9FF4828B613088A491D
|
||||
:200E8000C3289903020849C3D91702D0FE68497DD91C02D0FE8810DFA003A9004828BE17FA
|
||||
:200EA00002088A49C3AA28960C0849C3D91300D0FE684930D91C02D0FE8810DEA003A9FFE9
|
||||
:200EC0004828BE1702088A49C3AA28960C0849C3D91300D0FE68497DD91C02D0FE8810DE82
|
||||
:200EE000A003A200B90C0049C3D91300D0FE960CB9030249C3D91702D0FE8A990302881036
|
||||
:200F0000E3AD0002C90FD0FEA9108D0002A0FDB6198A99090188C0FAB0F5A0FDBE1D0196C2
|
||||
:200F20001288C0FAB0F6A003A200B90C00D91300D0FE960CB90302D91702D0FE8A990302AB
|
||||
:200F40008810E7AD0002C910D0FEA9118D0002A203A9004828B413089849C3289D03020870
|
||||
:200F600049C3DD1702D0FE684930DD1C02D0FECA10DFA203A9FF4828B413089849C3289D49
|
||||
:200F800003020849C3DD1702D0FE68497DDD1C02D0FECA10DFA203A9004828BC1702089891
|
||||
:200FA00049C3A828940C0849C3D513D0FE684930DD1C02D0FECA10DFA203A9FF4828BC17F8
|
||||
:200FC00002089849C3A828940C0849C3D513D0FE68497DDD1C02D0FECA10DFA203A000B57F
|
||||
:200FE0000C49C3D513D0FE940CBD030249C3DD1702D0FE8A9D0302CA10E5AD0002C911D0AD
|
||||
:20100000FEA9128D0002A2FDB419989D0901CAE0FAB0F5A2FDBC1D019412CAE0FAB0F6A289
|
||||
:2010200003A000B50CD513D0FE940CBD0302DD1702D0FE8A9D0302CA10E9AD0002C912D027
|
||||
:20104000FEA9138D0002A9004828A613088A49C3AA288E03020849C3AAE0C3D0FE68493062
|
||||
:20106000CD1C02D0FEA9004828A614088A49C3AA288E04020849C3AAE082D0FE684930CD44
|
||||
:201080001D02D0FEA9004828A615088A49C3AA288E05020849C3AAE041D0FE684930CD1E11
|
||||
:2010A00002D0FEA9004828A616088A49C3AA288E06020849C3AAE000D0FE684930CD1F024A
|
||||
:2010C000D0FEA9FF4828A613088A49C3AA288E03020849C3AAE0C3D0FE68497DCD1C02D056
|
||||
:2010E000FEA9FF4828A614088A49C3AA288E04020849C3AAE082D0FE68497DCD1D02D0FE46
|
||||
:20110000A9FF4828A615088A49C3AA288E05020849C3AAE041D0FE68497DCD1E02D0FEA9B8
|
||||
:20112000FF4828A616088A49C3AA288E06020849C3AAE000D0FE68497DCD1F02D0FEA9007F
|
||||
:201140004828AE1702088A49C3AA28860C0849C3C513D0FE684930CD1C02D0FEA9004828E9
|
||||
:20116000AE1802088A49C3AA28860D0849C3C514D0FE684930CD1D02D0FEA9004828AE196E
|
||||
:2011800002088A49C3AA28860E0849C3C515D0FE684930CD1E02D0FEA9004828AE1A020806
|
||||
:2011A0008A49C3AA28860F0849C3C516D0FE684930CD1F02D0FEA9FF4828AE1702088A491E
|
||||
:2011C000C3AA28860C0849C3AAE413D0FE68497DCD1C02D0FEA9FF4828AE1802088A49C300
|
||||
:2011E000AA28860D0849C3AAE414D0FE68497DCD1D02D0FEA9FF4828AE1902088A49C3AAF5
|
||||
:2012000028860E0849C3AAE415D0FE68497DCD1E02D0FEA9FF4828AE1A02088A49C3AA2852
|
||||
:20122000860F0849C3AAE416D0FE68497DCD1F02D0FEA9004828A2C308EC1702D0FE68499F
|
||||
:2012400030CD1C02D0FEA9004828A28208EC1802D0FE684930CD1D02D0FEA9004828A241F5
|
||||
:2012600008EC1902D0FE684930CD1E02D0FEA9004828A20008EC1A02D0FE684930CD1F028D
|
||||
:20128000D0FEA9FF4828A2C308EC1702D0FE68497DCD1C02D0FEA9FF4828A28208EC1802F7
|
||||
:2012A000D0FE68497DCD1D02D0FEA9FF4828A24108EC1902D0FE68497DCD1E02D0FEA9FF0F
|
||||
:2012C0004828A20008EC1A02D0FE68497DCD1F02D0FEA200A50C49C3C513D0FE860CAD03ED
|
||||
:2012E0000249C3CD1702D0FE8E0302A50D49C3C514D0FE860DAD040249C3CD1802D0FE8E9F
|
||||
:201300000402A50E49C3C515D0FE860EAD050249C3CD1902D0FE8E0502A50F49C3C516D056
|
||||
:20132000FE860FAD060249C3CD1A02D0FE8E0602AD0002C913D0FEA9148D0002A90048284E
|
||||
:20134000A413089849C3A8288C03020849C3A8C0C3D0FE684930CD1C02D0FEA9004828A465
|
||||
:2013600014089849C3A8288C04020849C3A8C082D0FE684930CD1D02D0FEA9004828A41512
|
||||
:20138000089849C3A8288C05020849C3A8C041D0FE684930CD1E02D0FEA9004828A416083C
|
||||
:2013A0009849C3A8288C06020849C3A8C000D0FE684930CD1F02D0FEA9FF4828A4130898CF
|
||||
:2013C00049C3A8288C03020849C3A8C0C3D0FE68497DCD1C02D0FEA9FF4828A414089849F3
|
||||
:2013E000C3A8288C04020849C3A8C082D0FE68497DCD1D02D0FEA9FF4828A415089849C397
|
||||
:20140000A8288C05020849C3A8C041D0FE68497DCD1E02D0FEA9FF4828A416089849C3A8CF
|
||||
:20142000288C06020849C3A8C000D0FE68497DCD1F02D0FEA9004828AC1702089849C3A88A
|
||||
:2014400028840C0849C3A8C413D0FE684930CD1C02D0FEA9004828AC1802089849C3A8287E
|
||||
:20146000840D0849C3A8C414D0FE684930CD1D02D0FEA9004828AC1902089849C3A82884FE
|
||||
:201480000E0849C3A8C415D0FE684930CD1E02D0FEA9004828AC1A02089849C3A828840F4F
|
||||
:2014A0000849C3A8C416D0FE684930CD1F02D0FEA9FF4828AC1702089849C3A828840C083A
|
||||
:2014C00049C3A8C513D0FE68497DCD1C02D0FEA9FF4828AC1802089849C3A828840D08498F
|
||||
:2014E000C3A8C514D0FE68497DCD1D02D0FEA9FF4828AC1902089849C3A828840E0849C3F1
|
||||
:20150000A8C515D0FE68497DCD1E02D0FEA9FF4828AC1A02089849C3A828840F0849C3A8E7
|
||||
:20152000C516D0FE68497DCD1F02D0FEA9004828A0C308CC1702D0FE684930CD1C02D0FE47
|
||||
:20154000A9004828A08208CC1802D0FE684930CD1D02D0FEA9004828A04108CC1902D0FE42
|
||||
:20156000684930CD1E02D0FEA9004828A00008CC1A02D0FE684930CD1F02D0FEA9FF4828A3
|
||||
:20158000A0C308CC1702D0FE68497DCD1C02D0FEA9FF4828A08208CC1802D0FE68497DCD55
|
||||
:2015A0001D02D0FEA9FF4828A04108CC1902D0FE68497DCD1E02D0FEA9FF4828A00008CC13
|
||||
:2015C0001A02D0FE68497DCD1F02D0FEA000A50C49C3C513D0FE840CAD030249C3CD170200
|
||||
:2015E000D0FE8C0302A50D49C3C514D0FE840DAD040249C3CD1802D0FE8C0402A50E49C3D1
|
||||
:20160000C515D0FE840EAD050249C3CD1902D0FE8C0502A50F49C3C516D0FE840FAD0602D6
|
||||
:2016200049C3CD1A02D0FE8C0602AD0002C914D0FEA9158D0002A203A9004828B5130849D5
|
||||
:20164000C3289D03020849C3DD1702D0FE684930DD1C02D0FECA10E0A203A9FF4828B5133C
|
||||
:201660000849C3289D03020849C3DD1702D0FE68497DDD1C02D0FECA10E0A203A900482845
|
||||
:20168000BD17020849C328950C0849C3D513D0FE684930DD1C02D0FECA10E1A203A9FF48D3
|
||||
:2016A00028BD17020849C328950C0849C3D513D0FE68497DDD1C02D0FECA10E1A203A0008E
|
||||
:2016C000B50C49C3D513D0FE940CBD030249C3DD1702D0FE8A9D0302CA10E5AD0002C915DD
|
||||
:2016E000D0FEA9168D0002A003A9004828B1240849C3289903020849C3D91702D0FE6849DE
|
||||
:2017000030D91C02D0FE8810E0A003A9FF4828B1240849C3289903020849C3D91702D0FE1E
|
||||
:2017200068497DD91C02D0FE8810E0A003A200B9030249C3D91702D0FE8A9903028810EFC0
|
||||
:20174000A003A9004828B917020849C32891300849C3D124D0FE684930D91C02D0FE8810E9
|
||||
:20176000E1A003A9FF4828B917020849C32891300849C3D124D0FE68497DD91C02D0FE88AC
|
||||
:2017800010E1A003A200B9030249C3D91702D0FE8A9903028810EFA206A003A9004828A1D5
|
||||
:2017A000240849C32881300849C3D91702D0FE684930D91C02D0FECACA8810DFA206A00348
|
||||
:2017C000A9FF4828A1240849C32881300849C3D91702D0FE68497DD91C02D0FECACA88104C
|
||||
:2017E000DFA003A200B9030249C3D91702D0FE8A9903028810EFAD0002C916D0FEA9178DE3
|
||||
:201800000002A2FDB5199D0901CAE0FAB0F6A2FDBD1D019512CAE0FAB0F6A203A000B50CF7
|
||||
:20182000D513D0FE940CBD0302DD1702D0FE8A9D0302CA10E9A0FBA2FEA12C990B01CACA9C
|
||||
:2018400088C0F8B0F4A003A200B90302D91702D0FE8A9903028810F1A0FBB91F019138886B
|
||||
:20186000C0F8B0F6A003A200B90302D91702D0FE8A9903028810F1A0FBA2FEB12E8138CAF9
|
||||
:20188000CA88C0F8B0F5A003A200B90302D91702D0FE8A9903028810F1AD0002C917D0FEC8
|
||||
:2018A000A9188D0002A9004828A5130849C3288D03020849C3C9C3D0FE684930CD1C02D02F
|
||||
:2018C000FEA9004828A5140849C3288D04020849C3C982D0FE684930CD1D02D0FEA90048B0
|
||||
:2018E00028A5150849C3288D05020849C3C941D0FE684930CD1E02D0FEA9004828A51608D2
|
||||
:2019000049C3288D06020849C3C900D0FE684930CD1F02D0FEA9FF4828A5130849C3288D1D
|
||||
:2019200003020849C3C9C3D0FE68497DCD1C02D0FEA9FF4828A5140849C3288D040208495C
|
||||
:20194000C3C982D0FE68497DCD1D02D0FEA9FF4828A5150849C3288D05020849C3C941D033
|
||||
:20196000FE68497DCD1E02D0FEA9FF4828A5160849C3288D06020849C3C900D0FE68497D03
|
||||
:20198000CD1F02D0FEA9004828AD17020849C328850C0849C3C513D0FE684930CD1C02D089
|
||||
:2019A000FEA9004828AD18020849C328850D0849C3C514D0FE684930CD1D02D0FEA9004834
|
||||
:2019C00028AD19020849C328850E0849C3C515D0FE684930CD1E02D0FEA9004828AD1A020E
|
||||
:2019E0000849C328850F0849C3C516D0FE684930CD1F02D0FEA9FF4828AD17020849C328A3
|
||||
:201A0000850C0849C3C513D0FE68497DCD1C02D0FEA9FF4828AD18020849C328850D084996
|
||||
:201A2000C3C514D0FE68497DCD1D02D0FEA9FF4828AD19020849C328850E0849C3C515D0E7
|
||||
:201A4000FE68497DCD1E02D0FEA9FF4828AD1A020849C328850F0849C3C516D0FE68497D03
|
||||
:201A6000CD1F02D0FEA9004828A9C308CD1702D0FE684930CD1C02D0FEA9004828A9820883
|
||||
:201A8000CD1802D0FE684930CD1D02D0FEA9004828A94108CD1902D0FE684930CD1E02D097
|
||||
:201AA000FEA9004828A90008CD1A02D0FE684930CD1F02D0FEA9FF4828A9C308CD1702D0C8
|
||||
:201AC000FE68497DCD1C02D0FEA9FF4828A98208CD1802D0FE68497DCD1D02D0FEA9FF4849
|
||||
:201AE00028A94108CD1902D0FE68497DCD1E02D0FEA9FF4828A90008CD1A02D0FE68497D7F
|
||||
:201B0000CD1F02D0FEA200A50C49C3C513D0FE860CAD030249C3CD1702D0FE8E0302A50DBB
|
||||
:201B200049C3C514D0FE860DAD040249C3CD1802D0FE8E0402A50E49C3C515D0FE860EADAF
|
||||
:201B4000050249C3CD1902D0FE8E0502A50F49C3C516D0FE860FAD060249C3CD1A02D0FEB1
|
||||
:201B60008E0602AD0002C918D0FEA9198D0002A90048A9FF28241608C9FFD0FE6848C932DC
|
||||
:201B8000D0FE28A90048A90128241508C901D0FE6848C970D0FE28A90048A90128241408D1
|
||||
:201BA000C901D0FE6848C9B2D0FE28A90048A90128241308C901D0FE6848C9F0D0FE28A9CA
|
||||
:201BC000FF48A9FF28241608C9FFD0FE6848C93FD0FE28A9FF48A90128241508C901D0FECD
|
||||
:201BE0006848C97DD0FE28A9FF48A90128241408C901D0FE6848C9BFD0FE28A9FF48A90197
|
||||
:201C000028241308C901D0FE6848C9FDD0FE28A90048A9FF282C1A0208C9FFD0FE6848C939
|
||||
:201C200032D0FE28A90048A901282C190208C901D0FE6848C970D0FE28A90048A901282C04
|
||||
:201C4000180208C901D0FE6848C9B2D0FE28A90048A901282C170208C901D0FE6848C9F098
|
||||
:201C6000D0FE28A9FF48A9FF282C1A0208C9FFD0FE6848C93FD0FE28A9FF48A901282C1913
|
||||
:201C80000208C901D0FE6848C97DD0FE28A9FF48A901282C180208C901D0FE6848C9BFD006
|
||||
:201CA000FE28A9FF48A901282C170208C901D0FE6848C9FDD0FE28AD0002C919D0FEA91AC9
|
||||
:201CC0008D0002A90048A28028E417086848C931D0FE28CAE417086848C933D0FE28CAE47A
|
||||
:201CE0001708E07ED0FE6848C9B0D0FE28A9FF48A28028E417086848C97DD0FE28CAE4178C
|
||||
:201D0000086848C97FD0FE28CAE41708E07ED0FE6848C9FCD0FE28A90048A28028EC1B0225
|
||||
:201D2000086848C931D0FE28CAEC1B02086848C933D0FE28CAEC1B0208E07ED0FE6848C9FE
|
||||
:201D4000B0D0FE28A9FF48A28028EC1B02086848C97DD0FE28CAEC1B02086848C97FD0FE05
|
||||
:201D600028CAEC1B0208E07ED0FE6848C9FCD0FE28A90048A28028E07F086848C931D0FEAF
|
||||
:201D800028CAE07F086848C933D0FE28CAE07F08E07ED0FE6848C9B0D0FE28A9FF48A280BA
|
||||
:201DA00028E07F086848C97DD0FE28CAE07F086848C97FD0FE28CAE07F08E07ED0FE68487C
|
||||
:201DC000C9FCD0FE28AD0002C91AD0FEA91B8D0002A90048A08028C417086848C931D0FE01
|
||||
:201DE0002888C417086848C933D0FE2888C41708C07ED0FE6848C9B0D0FE28A9FF48A08008
|
||||
:201E000028C417086848C97DD0FE2888C417086848C97FD0FE2888C41708C07ED0FE68484B
|
||||
:201E2000C9FCD0FE28A90048A08028CC1B02086848C931D0FE2888CC1B02086848C933D028
|
||||
:201E4000FE2888CC1B0208C07ED0FE6848C9B0D0FE28A9FF48A08028CC1B02086848C97D99
|
||||
:201E6000D0FE2888CC1B02086848C97FD0FE2888CC1B0208C07ED0FE6848C9FCD0FE28A96C
|
||||
:201E80000048A08028C07F086848C931D0FE2888C07F086848C933D0FE2888C07F08C07E4D
|
||||
:201EA000D0FE6848C9B0D0FE28A9FF48A08028C07F086848C97DD0FE2888C07F086848C982
|
||||
:201EC0007FD0FE2888C07F08C07ED0FE6848C9FCD0FE28AD0002C91BD0FEA91C8D0002A9E9
|
||||
:201EE0000048A98028C51708C980D0FE6848C931D0FE28A90048A97F28C51708C97FD0FE73
|
||||
:201F00006848C933D0FE28A90048A97E28C51708C97ED0FE6848C9B0D0FE28A9FF48A980AE
|
||||
:201F200028C51708C980D0FE6848C97DD0FE28A9FF48A97F28C51708C97FD0FE6848C97F60
|
||||
:201F4000D0FE28A9FF48A97E28C51708C97ED0FE6848C9FCD0FE28A90048A98028CD1B02BC
|
||||
:201F600008C980D0FE6848C931D0FE28A90048A97F28CD1B0208C97FD0FE6848C933D0FEDF
|
||||
:201F800028A90048A97E28CD1B0208C97ED0FE6848C9B0D0FE28A9FF48A98028CD1B020880
|
||||
:201FA000C980D0FE6848C97DD0FE28A9FF48A97F28CD1B0208C97FD0FE6848C97FD0FE28E8
|
||||
:201FC000A9FF48A97E28CD1B0208C97ED0FE6848C9FCD0FE28A90048A98028C97F08C98075
|
||||
:201FE000D0FE6848C931D0FE28A90048A97F28C97F08C97FD0FE6848C933D0FE28A9004839
|
||||
:20200000A97E28C97F08C97ED0FE6848C9B0D0FE28A9FF48A98028C97F08C980D0FE684895
|
||||
:20202000C97DD0FE28A9FF48A97F28C97F08C97FD0FE6848C97FD0FE28A9FF48A97E28C9C8
|
||||
:202040007F08C97ED0FE6848C9FCD0FE28A204A90048A98028D51308C980D0FE6848C931E0
|
||||
:20206000D0FE28A90048A97F28D51308C97FD0FE6848C933D0FE28A90048A97E28D5130851
|
||||
:20208000C97ED0FE6848C9B0D0FE28A9FF48A98028D51308C980D0FE6848C97DD0FE28A92F
|
||||
:2020A000FF48A97F28D51308C97FD0FE6848C97FD0FE28A9FF48A97E28D51308C97ED0FE51
|
||||
:2020C0006848C9FCD0FE28A90048A98028DD170208C980D0FE6848C931D0FE28A90048A904
|
||||
:2020E0007F28DD170208C97FD0FE6848C933D0FE28A90048A97E28DD170208C97ED0FE68C8
|
||||
:2021000048C9B0D0FE28A9FF48A98028DD170208C980D0FE6848C97DD0FE28A9FF48A97FAE
|
||||
:2021200028DD170208C97FD0FE6848C97FD0FE28A9FF48A97E28DD170208C97ED0FE684873
|
||||
:20214000C9FCD0FE28A004A208A90048A98028D9170208C980D0FE6848C931D0FE28A900DA
|
||||
:2021600048A97F28D9170208C97FD0FE6848C933D0FE28A90048A97E28D9170208C97ED0C4
|
||||
:20218000FE6848C9B0D0FE28A9FF48A98028D9170208C980D0FE6848C97DD0FE28A9FF48F4
|
||||
:2021A000A97F28D9170208C97FD0FE6848C97FD0FE28A9FF48A97E28D9170208C97ED0FE83
|
||||
:2021C0006848C9FCD0FE28A90048A98028C12408C980D0FE6848C931D0FE28A90048A97F95
|
||||
:2021E00028C12408C97FD0FE6848C933D0FE28A90048A97E28C12408C97ED0FE6848C9B0A7
|
||||
:20220000D0FE28A9FF48A98028C12408C980D0FE6848C97DD0FE28A9FF48A97F28C124086A
|
||||
:20222000C97FD0FE6848C97FD0FE28A9FF48A97E28C12408C97ED0FE6848C9FCD0FE28A945
|
||||
:202240000048A98028D12408C980D0FE6848C931D0FE28A90048A97F28D12408C97FD0FEDD
|
||||
:202260006848C933D0FE28A90048A97E28D12408C97ED0FE6848C9B0D0FE28A9FF48A98032
|
||||
:2022800028D12408C980D0FE6848C97DD0FE28A9FF48A97F28D12408C97FD0FE6848C97FCB
|
||||
:2022A000D0FE28A9FF48A97E28D12408C97ED0FE6848C9FCD0FE28AD0002C91CD0FEA91D44
|
||||
:2022C0008D0002A203A90048B513280A08DD2002D0FE684930DD3002D0FECA10E8A203A93C
|
||||
:2022E000FF48B513280A08DD2002D0FE68497CDD3002D0FECA10E8A203A90048B513284A2C
|
||||
:2023000008DD2802D0FE684930DD3802D0FECA10E8A203A9FF48B513284A08DD2802D0FEAC
|
||||
:2023200068497CDD3802D0FECA10E8A203A90048B513282A08DD2002D0FE684930DD300254
|
||||
:20234000D0FECA10E8A203A9FE48B513282A08DD2002D0FE68497CDD3002D0FECA10E8A2FC
|
||||
:2023600003A90148B513282A08DD2402D0FE684930DD3402D0FECA10E8A203A9FF48B51394
|
||||
:20238000282A08DD2402D0FE68497CDD3402D0FECA10E8A203A90048B513286A08DD280243
|
||||
:2023A000D0FE684930DD3802D0FECA10E8A203A9FE48B513286A08DD2802D0FE68497CDDF2
|
||||
:2023C0003802D0FECA10E8A203A90148B513286A08DD2C02D0FE684930DD3C02D0FECA10BD
|
||||
:2023E000E8A203A9FF48B513286A08DD2C02D0FE68497CDD3C02D0FECA10E8AD0002C91DB8
|
||||
:20240000D0FEA91E8D0002A203A90048B513850C28060C08A50CDD2002D0FE684930DD30FB
|
||||
:2024200002D0FECA10E3A203A9FF48B513850C28060C08A50CDD2002D0FE68497CDD300225
|
||||
:20244000D0FECA10E3A203A90048B513850C28460C08A50CDD2802D0FE684930DD3802D032
|
||||
:20246000FECA10E3A203A9FF48B513850C28460C08A50CDD2802D0FE68497CDD3802D0FE99
|
||||
:20248000CA10E3A203A90048B513850C28260C08A50CDD2002D0FE684930DD3002D0FECA28
|
||||
:2024A00010E3A203A9FE48B513850C28260C08A50CDD2002D0FE68497CDD3002D0FECA1078
|
||||
:2024C000E3A203A90148B513850C28260C08A50CDD2402D0FE684930DD3402D0FECA10E3C6
|
||||
:2024E000A203A9FF48B513850C28260C08A50CDD2402D0FE68497CDD3402D0FECA10E3A29D
|
||||
:2025000003A90048B513850C28660C08A50CDD2802D0FE684930DD3802D0FECA10E3A2031E
|
||||
:20252000A9FE48B513850C28660C08A50CDD2802D0FE68497CDD3802D0FECA10E3A203A90E
|
||||
:202540000148B513850C28660C08A50CDD2C02D0FE684930DD3C02D0FECA10E3A203A9FFD9
|
||||
:2025600048B513850C28660C08A50CDD2C02D0FE68497CDD3C02D0FECA10E3AD0002C91E25
|
||||
:20258000D0FEA91F8D0002A203A90048B5138D0302280E030208AD0302DD2002D0FE6849B3
|
||||
:2025A00030DD3002D0FECA10E0A203A9FF48B5138D0302280E030208AD0302DD2002D0FEA3
|
||||
:2025C00068497CDD3002D0FECA10E0A203A90048B5138D0302284E030208AD0302DD28020B
|
||||
:2025E000D0FE684930DD3802D0FECA10E0A203A9FF48B5138D0302284E030208AD0302DD8C
|
||||
:202600002802D0FE68497CDD3802D0FECA10E0A203A90048B5138D0302282E030208AD03F3
|
||||
:2026200002DD2002D0FE684930DD3002D0FECA10E0A203A9FE48B5138D0302282E03020802
|
||||
:20264000AD0302DD2002D0FE68497CDD3002D0FECA10E0A203A90148B5138D0302282E03ED
|
||||
:202660000208AD0302DD2402D0FE684930DD3402D0FECA10E0A203A9FF48B5138D0302283A
|
||||
:202680002E030208AD0302DD2402D0FE68497CDD3402D0FECA10E0A203A90048B5138D03C6
|
||||
:2026A00002286E030208AD0302DD2802D0FE684930DD3802D0FECA10E0A203A9FE48B51312
|
||||
:2026C0008D0302286E030208AD0302DD2802D0FE68497CDD3802D0FECA10E0A203A90148DB
|
||||
:2026E000B5138D0302286E030208AD0302DD2C02D0FE684930DD3C02D0FECA10E0A203A980
|
||||
:20270000FF48B5138D0302286E030208AD0302DD2C02D0FE68497CDD3C02D0FECA10E0AD6D
|
||||
:202720000002C91FD0FEA9208D0002A203A90048B513950C28160C08B50CDD2002D0FE6842
|
||||
:202740004930DD3002D0FECA10E3A203A9FF48B513950C28160C08B50CDD2002D0FE6849D7
|
||||
:202760007CDD3002D0FECA10E3A203A90048B513950C28560C08B50CDD2802D0FE6849303B
|
||||
:20278000DD3802D0FECA10E3A203A9FF48B513950C28560C08B50CDD2802D0FE68497CDD67
|
||||
:2027A0003802D0FECA10E3A203A90048B513950C28360C08B50CDD2002D0FE684930DD3067
|
||||
:2027C00002D0FECA10E3A203A9FE48B513950C28360C08B50CDD2002D0FE68497CDD300233
|
||||
:2027E000D0FECA10E3A203A90148B513950C28360C08B50CDD2402D0FE684930DD3402D086
|
||||
:20280000FECA10E3A203A9FF48B513950C28360C08B50CDD2402D0FE68497CDD3402D0FEED
|
||||
:20282000CA10E3A203A90048B513950C28760C08B50CDD2802D0FE684930DD3802D0FECA04
|
||||
:2028400010E3A203A9FE48B513950C28760C08B50CDD2802D0FE68497CDD3802D0FECA1054
|
||||
:20286000E3A203A90148B513950C28760C08B50CDD2C02D0FE684930DD3C02D0FECA10E3A2
|
||||
:20288000A203A9FF48B513950C28760C08B50CDD2C02D0FE68497CDD3C02D0FECA10E3AD6E
|
||||
:2028A0000002C920D0FEA9218D0002A203A90048B5139D0302281E030208BD0302DD2002F2
|
||||
:2028C000D0FE684930DD3002D0FECA10E0A203A9FF48B5139D0302281E030208BD0302DDC1
|
||||
:2028E0002002D0FE68497CDD3002D0FECA10E0A203A90048B5139D0302285E030208BD03D1
|
||||
:2029000002DD2802D0FE684930DD3802D0FECA10E0A203A9FF48B5139D0302285E030208CE
|
||||
:20292000BD0302DD2802D0FE68497CDD3802D0FECA10E0A203A90048B5139D0302283E03CB
|
||||
:202940000208BD0302DD2002D0FE684930DD3002D0FECA10E0A203A9FE48B5139D03022840
|
||||
:202960003E030208BD0302DD2002D0FE68497CDD3002D0FECA10E0A203A90148B5139D03BA
|
||||
:2029800002283E030208BD0302DD2402D0FE684930DD3402D0FECA10E0A203A9FF48B51356
|
||||
:2029A0009D0302283E030208BD0302DD2402D0FE68497CDD3402D0FECA10E0A203A9004811
|
||||
:2029C000B5139D0302287E030208BD0302DD2802D0FE684930DD3802D0FECA10E0A203A975
|
||||
:2029E000FE48B5139D0302287E030208BD0302DD2802D0FE68497CDD3802D0FECA10E0A26F
|
||||
:202A000003A90148B5139D0302287E030208BD0302DD2C02D0FE684930DD3C02D0FECA1065
|
||||
:202A2000E0A203A9FF48B5139D0302287E030208BD0302DD2C02D0FE68497CDD3C02D0FE53
|
||||
:202A4000CA10E0AD0002C921D0FEA9228D0002A200A97E850CA9004828E60C08A50CDD40C0
|
||||
:202A600002D0FE684930DD4502D0FEE8E002D004A9FE850CE005D0DDCAE60CA9004828C6B0
|
||||
:202A80000C08A50CDD4002D0FE684930DD4502D0FECA300AE001D0E3A981850CD0DDA2000F
|
||||
:202AA000A97E850CA9FF4828E60C08A50CDD4002D0FE68497DDD4502D0FEE8E002D004A947
|
||||
:202AC000FE850CE005D0DDCAE60CA9FF4828C60C08A50CDD4002D0FE68497DDD4502D0FE69
|
||||
:202AE000CA300AE001D0E3A981850CD0DDAD0002C922D0FEA9238D0002A200A97E8D0302B8
|
||||
:202B0000A9004828EE030208AD0302DD4002D0FE684930DD4502D0FEE8E002D005A9FE8D5C
|
||||
:202B20000302E005D0DACAEE0302A9004828CE030208AD0302DD4002D0FE684930DD4502AC
|
||||
:202B4000D0FECA300BE001D0E1A9818D0302D0DAA200A97E8D0302A9FF4828EE030208AD8F
|
||||
:202B60000302DD4002D0FE68497DDD4502D0FEE8E002D005A9FE8D0302E005D0DACAEE0321
|
||||
:202B800002A9FF4828CE030208AD0302DD4002D0FE68497DDD4502D0FECA300BE001D0E1EA
|
||||
:202BA000A9818D0302D0DAAD0002C923D0FEA9248D0002A200A97E950CA9004828F60C085D
|
||||
:202BC000B50CDD4002D0FE684930DD4502D0FEB50CE8E002D002A9FEE005D0DBCAA90295D6
|
||||
:202BE0000CA9004828D60C08B50CDD4002D0FE684930DD4502D0FEB50CCA3008E001D0DFF2
|
||||
:202C0000A981D0DBA200A97E950CA9FF4828F60C08B50CDD4002D0FE68497DDD4502D0FE85
|
||||
:202C2000B50CE8E002D002A9FEE005D0DBCAA902950CA9FF4828D60C08B50CDD4002D0FE3A
|
||||
:202C400068497DDD4502D0FEB50CCA3008E001D0DFA981D0DBAD0002C924D0FEA9258D0067
|
||||
:202C600002A200A97E9D0302A9004828FE030208BD0302DD4002D0FE684930DD4502D0FE41
|
||||
:202C8000BD0302E8E002D002A9FEE005D0D7CAA9029D0302A9004828DE030208BD0302DDE9
|
||||
:202CA0004002D0FE684930DD4502D0FEBD0302CA3008E001D0DBA981D0D7A200A97E9D03A7
|
||||
:202CC00002A9FF4828FE030208BD0302DD4002D0FE68497DDD4502D0FEBD0302E8E002D0A4
|
||||
:202CE00002A9FEE005D0D7CAA9029D0302A9FF4828DE030208BD0302DD4002D0FE68497DA8
|
||||
:202D0000DD4502D0FEBD0302CA3008E001D0DBA981D0D7AD0002C925D0FEA9268D0002A235
|
||||
:202D200003B51C8D0902A90048BD5A022820080208DD6202D0FE684930DD6602D0FECA10E6
|
||||
:202D4000E0A203B51C8D0902A9FF48BD5A022820080208DD6202D0FE68497DDD6602D0FED2
|
||||
:202D6000CA10E0A203B51C850CA90048BD5A0228250C08DD6202D0FE684930DD6602D0FE24
|
||||
:202D8000CA10E2A203B51C850CA9FF48BD5A0228250C08DD6202D0FE68497DDD6602D0FEB6
|
||||
:202DA000CA10E2A203B51C8D0302A90048BD5A02282D030208DD6202D0FE684930DD6602AE
|
||||
:202DC000D0FECA10E0A203B51C8D0302A9FF48BD5A02282D030208DD6202D0FE68497DDDDE
|
||||
:202DE0006602D0FECA1002A203A90048BD5A0228351C08DD6202D0FE684930DD6602D0FE8E
|
||||
:202E0000CA10E6A203A9FF48BD5A0228351C08DD6202D0FE68497DDD6602D0FECA10E6A211
|
||||
:202E200003A90048BD5A02283D4E0208DD6202D0FE684930DD6602D0FECA10E5A203A9FFB9
|
||||
:202E400048BD5A02283D4E0208DD6202D0FE68497DDD6602D0FECA10E5A003A90048B95A9E
|
||||
:202E60000228394E0208D96202D0FE684930D96602D0FE8810E5A003A9FF48B95A02283916
|
||||
:202E80004E0208D96202D0FE68497DD96602D0FE8810E5A206A003A90048B95A0228213A41
|
||||
:202EA00008D96202D0FE684930D96602D0FECACA8810E4A206A003A9FF48B95A0228213A2C
|
||||
:202EC00008D96202D0FE68497DD96602D0FECACA8810E4A003A90048B95A0228313A08D975
|
||||
:202EE0006202D0FE684930D96602D0FE8810E6A003A9FF48B95A0228313A08D96202D0FEE4
|
||||
:202F000068497DD96602D0FE8810E6AD0002C926D0FEA9278D0002A203B5208D0C02A9006D
|
||||
:202F200048BD5E0228200B0208DD6202D0FE684930DD6602D0FECA10E0A203B5208D0C02FD
|
||||
:202F4000A9FF48BD5E0228200B0208DD6202D0FE68497DDD6602D0FECA10E0A203B52085FE
|
||||
:202F60000CA90048BD5E0228450C08DD6202D0FE684930DD6602D0FECA10E2A203B52085F8
|
||||
:202F80000CA9FF48BD5E0228450C08DD6202D0FE68497DDD6602D0FECA10E2A203B5208D84
|
||||
:202FA0000302A90048BD5E02284D030208DD6202D0FE684930DD6602D0FECA10E0A203B565
|
||||
:202FC000208D0302A9FF48BD5E02284D030208DD6202D0FE68497DDD6602D0FECA1002A2E2
|
||||
:202FE00003A90048BD5E0228552008DD6202D0FE684930DD6602D0FECA10E6A203A9FF48C3
|
||||
:20300000BD5E0228552008DD6202D0FE68497DDD6602D0FECA10E6A203A90048BD5E022803
|
||||
:203020005D520208DD6202D0FE684930DD6602D0FECA10E5A203A9FF48BD5E02285D52028A
|
||||
:2030400008DD6202D0FE68497DDD6602D0FECA10E5A003A90048B95E022859520208D96294
|
||||
:2030600002D0FE684930D96602D0FE8810E5A003A9FF48B95E022859520208D96202D0FE7F
|
||||
:2030800068497DD96602D0FE8810E5A206A003A90048B95E0228414208D96202D0FE6849B2
|
||||
:2030A00030D96602D0FECACA8810E4A206A003A9FF48B95E0228414208D96202D0FE6849FE
|
||||
:2030C0007DD96602D0FECACA8810E4A003A90048B95E0228514208D96202D0FE684930D91F
|
||||
:2030E0006602D0FE8810E6A003A9FF48B95E0228514208D96202D0FE68497DD96602D0FE65
|
||||
:203100008810E6AD0002C927D0FEA9288D0002A203B5188D0F02A90048BD560228200E02F6
|
||||
:2031200008DD6202D0FE684930DD6602D0FECA10E0A203B5188D0F02A9FF48BD560228206D
|
||||
:203140000E0208DD6202D0FE68497DDD6602D0FECA10E0A203B518850CA90048BD5602281C
|
||||
:20316000050C08DD6202D0FE684930DD6602D0FECA10E2A203B518850CA9FF48BD56022847
|
||||
:20318000050C08DD6202D0FE68497DDD6602D0FECA10E2A203B5188D0302A90048BD560200
|
||||
:2031A000280D030208DD6202D0FE684930DD6602D0FECA10E0A203B5188D0302A9FF48BD5F
|
||||
:2031C0005602280D030208DD6202D0FE68497DDD6602D0FECA1002A203A90048BD56022856
|
||||
:2031E000151808DD6202D0FE684930DD6602D0FECA10E6A203A9FF48BD560228151808DDF3
|
||||
:203200006202D0FE68497DDD6602D0FECA10E6A203A90048BD5602281D4A0208DD6202D026
|
||||
:20322000FE684930DD6602D0FECA10E5A203A9FF48BD5602281D4A0208DD6202D0FE6849DA
|
||||
:203240007DDD6602D0FECA10E5A003A90048B9560228194A0208D96202D0FE684930D966BA
|
||||
:2032600002D0FE8810E5A003A9FF48B9560228194A0208D96202D0FE68497DD96602D0FE80
|
||||
:203280008810E5A206A003A90048B9560228014A08D96202D0FE684930D96602D0FECACA5A
|
||||
:2032A0008810E4A206A003A9FF48B9560228014A08D96202D0FE68497DD96602D0FECACAEF
|
||||
:2032C0008810E4A003A90048B9560228114A08D96202D0FE684930D96602D0FE8810E6A029
|
||||
:2032E00003A9FF48B9560228114A08D96202D0FE68497DD96602D0FE8810E658AD0002C9A9
|
||||
:2033000028D0FEA9298D0002D8A20EA0FFA900850C850D850E8D0302850F8510A9FF8512D6
|
||||
:203320008D0402A90285111820A235E60CE60F080868298228D002E610051085113820A20B
|
||||
:2033400035C60CE60DD0E0A9008510EE0302E60E086829828511C612CE0402A50E850FD02A
|
||||
:20336000C6AD0002C929D0FEA92A8D0002F8A20EA0FFA999850D850E8D0302850FA90185B3
|
||||
:203380000C8510A90085128D040238206F34C60CA50FD008C610A999850FD012290FD00CBE
|
||||
:2033A000C60FC60FC60FC60FC60FC60FC60F18206F34E60CA50DF015290FD00CC60DC60DFC
|
||||
:2033C000C60DC60DC60DC60DC60D4C8A33A999850DA50EF030290FD018C60EC60EC60EC6BC
|
||||
:2033E0000EC60EC60EE612E612E612E612E612E612C60EE612A5128D0402A50E8D03028567
|
||||
:203400000FE610D085AD0002C92AD0FEA92B8D000218D808A9556955C9AAD0FE18F808A9C9
|
||||
:20342000556955C910D0FED828A9556955C910D0FE28A9556955C9AAD0FE18A93448A9550F
|
||||
:203440004808F8A93448A94C4808D840A9556955C910D0FE40A9556955C9AAD0FEAD000253
|
||||
:20346000C92BD0FEA9F08D00024C69344C000408A50D650E08C50FD0FE682901C510D0FE1D
|
||||
:203480002808A50DE51208C50FD0FE682901C510D0FE2808A50D6D030208C50FD0FE6829E5
|
||||
:2034A00001C510D0FE2808A50DED040208C50FD0FE682901C510D0FE2808A50E8D1202A58B
|
||||
:2034C0000D20110208C50FD0FE682901C510D0FE2808A5128D1502A50D20140208C50FD0AE
|
||||
:2034E000FE682901C510D0FE2808A50D750008C50FD0FE682901C510D0FE2808A50DF50488
|
||||
:2035000008C50FD0FE682901C510D0FE2808A50D7DF50108C50FD0FE682901C510D0FE2870
|
||||
:2035200008A50DFDF60108C50FD0FE682901C510D0FE2808A50D79040108C50FD0FE682963
|
||||
:2035400001C510D0FE2808A50DF9050108C50FD0FE682901C510D0FE2808A50D614408C5B3
|
||||
:203560000FD0FE682901C510D0FE2808A50DE14608C50FD0FE682901C510D0FE2808A50D6F
|
||||
:20358000715608C50FD0FE682901C510D0FE2808A50DF15808C50FD0FE682901C510D0FE7B
|
||||
:2035A0002860A511298348A50D450E300AA50D450F10046809404868851108A50D650E0854
|
||||
:2035C000C50FD0FE6829C3C511D0FE2808A50DE51208C50FD0FE6829C3C511D0FE2808A501
|
||||
:2035E0000D6D030208C50FD0FE6829C3C511D0FE2808A50DED040208C50FD0FE6829C3C512
|
||||
:2036000011D0FE2808A50E8D1202A50D20110208C50FD0FE6829C3C511D0FE2808A5128D4C
|
||||
:203620001502A50D20140208C50FD0FE6829C3C511D0FE2808A50D750008C50FD0FE682957
|
||||
:20364000C3C511D0FE2808A50DF50408C50FD0FE6829C3C511D0FE2808A50D7DF50108C564
|
||||
:203660000FD0FE6829C3C511D0FE2808A50DFDF60108C50FD0FE6829C3C511D0FE2808A528
|
||||
:203680000D79040108C50FD0FE6829C3C511D0FE2808A50DF9050108C50FD0FE6829C3C559
|
||||
:2036A00011D0FE2808A50D614408C50FD0FE6829C3C511D0FE2808A50DE14608C50FD0FE4F
|
||||
:2036C0006829C3C511D0FE2808A50D715608C50FD0FE6829C3C511D0FE2808A50DF1580874
|
||||
:2036E000C50FD0FE6829C3C511D0FE286088880888888828B0FE70FE30FEF0FEC946D0FEBB
|
||||
:20370000E041D0FEC04FD0FE488A48BAE0FDD0FE68AAA9FF482868E849AA4C0F090027372F
|
||||
:2037200064094C223788880888888828B0FE70FE30FEF0FEC949D0FEE04ED0FEC041D0FEBC
|
||||
:20374000488A48BAE0FDD0FE68AAA9FF482868E849AA6C20374C55374C000488880888886A
|
||||
:203760008828B0FE70FE30FEF0FEC94AD0FEE053D0FEC04FD0FE488A48BAE0FBD0FEADFF79
|
||||
:2037800001C909D0FEADFE01C99AD0FEA9FF482868AA68E849AA604C97374C00044C9D3754
|
||||
:2037A0004C00044CA3374C0004888808888888C9BDF042C942D0FEE052D0FEC048D0FE85A7
|
||||
:2037C0000A860BBABD0201C930D0FE68C934D0FEBAE0FCD0FEADFF01C909D0FEADFE01C9B4
|
||||
:2037E000D1D0FEA9FF48A60BE8A50A49AA28404CEF374C0004E0ADD0FEC0B1D0FE850A8626
|
||||
:203800000BBABD0201C9FFD0FE680908C9FFD0FEBAE0FCD0FEADFF01C909D0FEADFE01C958
|
||||
:15382000F7D0FEA90448A60BE8A50A49AA28404C2F384C000433
|
||||
:06FFFA009D37A337AB3771
|
||||
:00040001FB
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,59 @@
|
|||
#!/usr/bin/env lua5.3
|
||||
|
||||
require 'std.strict'
|
||||
require 'lib' ("..")
|
||||
local _6502 = require '6502'
|
||||
|
||||
local cpu = _6502:new()
|
||||
|
||||
local inspect = require "inspect"
|
||||
|
||||
local running = true
|
||||
local mmu = { ram = {} }
|
||||
local mmu_metatable = { __index = function(t, key)
|
||||
return t.ram[key] or 0
|
||||
end,
|
||||
__newindex = function(t, k, v)
|
||||
if (k == 0x200 and v ~= nil) then
|
||||
if (v == 240) then
|
||||
print("All tests successful!")
|
||||
running = false
|
||||
-- os.exit(0)
|
||||
else
|
||||
print(string.format("Start test %d", v))
|
||||
end
|
||||
end
|
||||
t.ram[k] = v
|
||||
end,
|
||||
}
|
||||
|
||||
setmetatable(mmu, mmu_metatable)
|
||||
cpu.ram = mmu
|
||||
|
||||
cpu:init()
|
||||
cpu:rst()
|
||||
|
||||
local f = assert(io.open("6502_functional_test.bin", "rb") or
|
||||
io.open("tests/6502_functional_test.bin", "rb"))
|
||||
|
||||
local data = f:read("*a")
|
||||
assert(#data == 65536)
|
||||
|
||||
local i = 0
|
||||
while (i < #data) do
|
||||
cpu:writemem(i, data:byte(i+1))
|
||||
i = i + 1
|
||||
end
|
||||
|
||||
cpu.pc = 0x400
|
||||
while (running) do
|
||||
local o = cpu:readmem(cpu.pc)
|
||||
-- print(string.format("Executing opcode %s [0x%X]", cpu.opname[cpu.opcodes[o][1]], o))
|
||||
local cc = cpu:step()
|
||||
-- print(string.format("%d OP $%.2X #%d 0x%.2X X 0x%.2X Y 0x%.2X A 0x%.2X SP 0x%.2X S 0x%.2X",
|
||||
-- cpu.cycles, cpu:readmem(cpu.pc), cpu:readmem(0x200),
|
||||
-- cpu.pc, cpu.X, cpu.Y, cpu.A, cpu.sp, cpu.F))
|
||||
|
||||
end
|
||||
|
||||
|
Binary file not shown.
|
@ -0,0 +1,537 @@
|
|||
:16000A00000000000000000000C38241007F001F71800FFF7F80BE
|
||||
:20002000FF0F8F8F1702180219021A021B021F0103020402050206020B014E024F025002D4
|
||||
:1A004000510252025302540255024A024B024C024D020302040204010501B1
|
||||
:200200000000000000000000290060490060090060690060E90060C38241007F808000022A
|
||||
:20022000860482008705830161412000E1C1A0808101800281018000010001028180818012
|
||||
:200240007F80FF00010080800200001F71800FFF7F80FF0F8F8F00F11F00F0FFFFFFFFF068
|
||||
:0A026000F00F00FF7F800280008095
|
||||
:20040000D8A2FF9AA9008D0002204C44A2054C3604A005D008205B44888888888888888838
|
||||
:200420008888F017205B44CACACACACACACACACACAF0DE205B44D0F4205B44AD0002C9007A
|
||||
:20044000F003205B44A9018D0002A0FE8898AA1008186902EAEAEAEAEAEAEAEAEAEA497FC2
|
||||
:200460008DEC04A9004CEB04CACACACACACACACACACACACACACACACACACACACACACACACA2B
|
||||
:20048000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACA1C
|
||||
:2004A000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACAFC
|
||||
:2004C000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACADC
|
||||
:2004E000CACACACACACACACACACACAF03ECACACACACACACACACACACACACACACACACACACA22
|
||||
:20050000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACA9B
|
||||
:20052000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACA7B
|
||||
:20054000CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACA5B
|
||||
:20056000CACACACACACACACACACACACAEAEAEAEAEAF008205B44EAEAEAEAEAEAEAEAEAEA96
|
||||
:20058000C000F0034C4C04AD0002C901F003205B44A9028D0002C001D003205B44A900C9E2
|
||||
:2005A00000F003205B44B003205B441003205B44C901D003205B449003205B443003205BE9
|
||||
:2005C00044AAE000F003205B44B003205B441003205B44E001D003205B449003205B443062
|
||||
:2005E00003205B44A8C000F003205B44B003205B441003205B44C001D003205B44900320D5
|
||||
:200600005B443003205B44AD0002C902F003205B44A9038D0002A2FF9AA95548A9AA48CDF9
|
||||
:20062000FE01F003205B44BA8AC9FDF003205B4468C9AAF003205B4468C955F003205B4488
|
||||
:20064000CDFF01F003205B44BAE0FFF003205B44AD0002C903F003205B44A9048D0002A9BE
|
||||
:20066000FF4828101A501B901CD01D3003205B447003205B44B003205B44F00F205B442069
|
||||
:200680005B44205B44205B44205B4408BAE0FEF003205B4468C9FFF003205B44BAE0FFF0C1
|
||||
:2006A00003205B44A9004828301A701BB01CF01D1003205B445003205B449003205B44D0AB
|
||||
:2006C0000F205B44205B44205B44205B44205B440868C930F003205B44A9024828D002F058
|
||||
:2006E00003205B44B0029003205B4430021003205B4470025003205B44A9014828F002D0D0
|
||||
:2007000003205B449002B003205B4430021003205B4470025003205B44A9804828F002D030
|
||||
:2007200003205B44B0029003205B4410023003205B4470025003205B44A9404828F002D050
|
||||
:2007400003205B44B0029003205B4430021003205B4450027003205B44A9FD4828F002D073
|
||||
:2007600003205B449002B003205B4410023003205B4450027003205B44A9FE4828D002F052
|
||||
:2007800003205B44B0029003205B4410023003205B4450027003205B44A97F4828D002F0B1
|
||||
:2007A00003205B449002B003205B4430021003205B4450027003205B44A9BF4828D002F051
|
||||
:2007C00003205B449002B003205B4410023003205B4470025003205B44AD0002C904F0035C
|
||||
:2007E000205B44A9058D0002A255A0AAA9FF48A901284808C901F003205B446848C9FFF0C6
|
||||
:2008000003205B4428A90048A900284808C900F003205B446848C930F003205B4428A9FF36
|
||||
:2008200048A9FF284808C9FFF003205B446848C9FFF003205B4428A90048A901284808C9A8
|
||||
:2008400001F003205B446848C930F003205B4428A9FF48A900284808C900F003205B44686E
|
||||
:2008600048C9FFF003205B4428A90048A9FF284808C9FFF003205B446848C930F003205BEC
|
||||
:200880004428A9FF48A900286808C9FFF003205B446848C9FDF003205B4428A90048A9FF58
|
||||
:2008A000286808C900F003205B446848C932F003205B4428A9FF48A9FE286808C901F003B4
|
||||
:2008C000205B446848C97DF003205B4428A90048A900286808C9FFF003205B446848C9B0B4
|
||||
:2008E000F003205B4428A9FF48A9FF286808C900F003205B446848C97FF003205B4428A9F8
|
||||
:200900000048A9FE286808C901F003205B446848C930F003205B4428E055F003205B44C0AA
|
||||
:20092000AAF003205B44AD0002C905F003205B44A9068D0002A90048A93C2849C308C9FF14
|
||||
:20094000F003205B446848C9B0F003205B4428A90048A9C32849C308C900F003205B446866
|
||||
:2009600048C932F003205B4428AD0002C906F003205B44A9078D0002A224A042A90048A9A9
|
||||
:200980001828EA08C918F003205B446848C930F003205B4428E024F003205B44C042F00364
|
||||
:2009A000205B44A2DBA0BDA9FF48A9E728EA08C9E7F003205B446848C9FFF003205B442850
|
||||
:2009C000E0DBF003205B44C0BDF003205B44AD0002C907F003205B44A9088D0002A9004819
|
||||
:2009E00028A946A241A0524C8C42EAEAF003205B44E8E8D003205B443003205B44B0032044
|
||||
:200A00005B447003205B44C9ECF003205B44E042F003205B44C04FF003205B44CAC8C8C8E7
|
||||
:200A200049AA4C2E0AEAEAF003205B44E8E8D003205B441003205B44B003205B4470032080
|
||||
:200A40005B44C946F003205B44E041F003205B44C052F003205B44AD0002C908F003205BB1
|
||||
:200A600044A9098D0002A9004828A949A24EA0446CD242EAF003205B44888808888888281E
|
||||
:200A8000D003205B443003205B44B003205B447003205B44C9E3F003205B44E04FF003208E
|
||||
:200AA0005B44C03EF003205B44BAE0FFF003205B44AD0002C909F003205B44A90A8D000227
|
||||
:200AC000A9004828A94AA253A0522029430888888828D003205B443003205B44B003205B1D
|
||||
:200AE000447003205B44C9E0F003205B44E054F003205B44C04CF003205B44BAE0FFF003F5
|
||||
:200B0000205B44AD0002C90AF003205B44A90B8D0002A90048A942A252A04B2800880888A4
|
||||
:200B20008888C9E8F003205B44E053F003205B44C045F003205B4468C930F003205B44BAD9
|
||||
:200B4000E0FFF003205B44A9FF48A9BDA2ADA0B428008808888888C917F003205B44E0AE9B
|
||||
:200B6000F003205B44C0AEF003205B4468C9FFF003205B44BAE0FFF003205B44AD0002C9FE
|
||||
:200B80000BF003205B44A90C8D0002A9FF482818086848C9FEF003205B442838086848C912
|
||||
:200BA000FFF003205B442858086848C9FBF003205B442878086848C9FFF003205B4428D804
|
||||
:200BC000086848C9F7F003205B4428F8086848C9FFF003205B4428B8086848C9BFF0032066
|
||||
:200BE0005B4428A9004828086848C930F003205B442838086848C931F003205B44281808A6
|
||||
:200C00006848C930F003205B442878086848C934F003205B442858086848C930F003205BD3
|
||||
:200C20004428F8086848C938F003205B4428D8086848C930F003205B4428A9404828086891
|
||||
:200C400048C970F003205B4428B8086848C930F003205B4428AD0002C90CF003205B44A917
|
||||
:200C60000D8D0002A2FEA9FF4828E808E0FFF003205B446848C9FDF003205B4428E808E07F
|
||||
:200C800000F003205B446848C97FF003205B4428E808E001F003205B446848C97DF0032044
|
||||
:200CA0005B4428CA08E000F003205B446848C97FF003205B4428CA08E0FFF003205B44686C
|
||||
:200CC00048C9FDF003205B4428CAA9004828E808E0FFF003205B446848C9B0F003205B44ED
|
||||
:200CE00028E808E000F003205B446848C932F003205B4428E808E001F003205B446848C9C9
|
||||
:200D000030F003205B4428CA08E000F003205B446848C932F003205B4428CA08E0FFF0033C
|
||||
:200D2000205B446848C9B0F003205B4428A0FEA9FF4828C808C0FFF003205B446848C9FD84
|
||||
:200D4000F003205B4428C808C000F003205B446848C97FF003205B4428C808C001F0032001
|
||||
:200D60005B446848C97DF003205B44288808C000F003205B446848C97FF003205B442888A8
|
||||
:200D800008C0FFF003205B446848C9FDF003205B442888A9004828C808C0FFF003205B44A8
|
||||
:200DA0006848C9B0F003205B4428C808C000F003205B446848C932F003205B4428C808C0D9
|
||||
:200DC00001F003205B446848C930F003205B44288808C000F003205B446848C932F003201D
|
||||
:200DE0005B44288808C0FFF003205B446848C9B0F003205B4428A2FFA9FF48288A08C9FF15
|
||||
:200E0000F003205B446848C9FDF003205B442808E8288A08C900F003205B446848C97FF0C3
|
||||
:200E200003205B442808E8288A08C901F003205B446848C97DF003205B4428A90048288A2F
|
||||
:200E400008C901F003205B446848C930F003205B442808CA288A08C900F003205B446848D4
|
||||
:200E6000C932F003205B442808CA288A08C9FFF003205B446848C9B0F003205B4428A0FFF5
|
||||
:200E8000A9FF48289808C9FFF003205B446848C9FDF003205B442808C8289808C900F0037C
|
||||
:200EA000205B446848C97FF003205B442808C8289808C901F003205B446848C97DF0032084
|
||||
:200EC0005B4428A90048289808C901F003205B446848C930F003205B44280888289808C972
|
||||
:200EE00000F003205B446848C932F003205B44280888289808C9FFF003205B446848C9B0C0
|
||||
:200F0000F003205B4428A9FF48A2FF8A28A808C0FFF003205B446848C9FDF003205B442843
|
||||
:200F200008E88A28A808C000F003205B446848C97FF003205B442808E88A28A808C001F018
|
||||
:200F400003205B446848C97DF003205B4428A90048A9008A28A808C001F003205B446848E0
|
||||
:200F6000C930F003205B442808CA8A28A808C000F003205B446848C932F003205B4428086B
|
||||
:200F8000CA8A28A808C0FFF003205B446848C9B0F003205B4428A9FF48A0FF9828AA08E0D0
|
||||
:200FA000FFF003205B446848C9FDF003205B442808C89828AA08E000F003205B446848C9E3
|
||||
:200FC0007FF003205B442808C89828AA08E001F003205B446848C97DF003205B4428A9006A
|
||||
:200FE00048A9009828AA08E001F003205B446848C930F003205B442808889828AA08E00096
|
||||
:20100000F003205B446848C932F003205B442808889828AA08E0FFF003205B446848C9B0DD
|
||||
:20102000F003205B4428AD0002C90DF003205B44A90E8D0002A201A9FF48289A08AD01014D
|
||||
:20104000C9FFF003205B44A90048289A08AD0101C930F003205B44CAA9FF48289A08AD00D0
|
||||
:2010600001C9FFF003205B44A90048289A08AD0001C930F003205B44CAA9FF48289A08ADB0
|
||||
:20108000FF01C9FFF003205B44A90048289A08ADFF01C930A2019AA9FF4828BA08E001F08D
|
||||
:2010A00003205B44AD0101C97DF003205B44A9FF4828BA08E000F003205B44AD0001C97F65
|
||||
:2010C000F003205B44A9FF4828BA08E0FFF003205B44ADFF01C9FDF003205B44A2019AA9E8
|
||||
:2010E000004828BA08E001F003205B44AD0101C930F003205B44A9004828BA08E000F00323
|
||||
:20110000205B44AD0001C932F003205B44A9004828BA08E0FFF003205B44ADFF01C9B0F033
|
||||
:2011200003205B4468AD0002C90EF003205B44A90F8D0002A003A9004828B613088A49C3E3
|
||||
:20114000289903020849C3D91702F003205B44684930D91C02F003205B448810D9A003A9CA
|
||||
:20116000FF4828B613088A49C3289903020849C3D91702F003205B4468497DD91C02F00303
|
||||
:20118000205B448810D9A003A9004828BE1702088A49C3AA28960C0849C3D91300F0032067
|
||||
:2011A0005B44684930D91C02F003205B448810D8A003A9FF4828BE1702088A49C3AA2896FE
|
||||
:2011C0000C0849C3D91300F003205B4468497DD91C02F003205B448810D8A003A200B90C00
|
||||
:2011E0000049C3D91300F003205B44960CB9030249C3D91702F003205B448A990302881075
|
||||
:20120000DDAD0002C90FF003205B44A9108D0002A0FDB6198A99090188C0FAB0F5A0FDBE95
|
||||
:201220001D01961288C0FAB0F6A003A200B90C00D91300F003205B44960CB90302D9170206
|
||||
:20124000F003205B448A9903028810E1AD0002C910F003205B44A9118D0002A203A9004822
|
||||
:2012600028B413089849C3289D03020849C3DD1702F003205B44684930DD1C02F003205B03
|
||||
:2012800044CA10D9A203A9FF4828B413089849C3289D03020849C3DD1702F003205B446839
|
||||
:2012A000497DDD1C02F003205B44CA10D9A203A9004828BC1702089849C3A828940C084908
|
||||
:2012C000C3D513F003205B44684930DD1C02F003205B44CA10D9A203A9FF4828BC170208D6
|
||||
:2012E0009849C3A828940C0849C3D513F003205B4468497DDD1C02F003205B44CA10D9A2FC
|
||||
:2013000003A000B50C49C3D513F003205B44940CBD030249C3DD1702F003205B448A9D0383
|
||||
:2013200002CA10DFAD0002C911F003205B44A9128D0002A2FDB419989D0901CAE0FAB0F579
|
||||
:20134000A2FDBC1D019412CAE0FAB0F6A203A000B50CD513F003205B44940CBD0302DD172E
|
||||
:2013600002F003205B448A9D0302CA10E3AD0002C912F003205B44A9138D0002A900482830
|
||||
:20138000A613088A49C3AA288E03020849C3AAE0C3F003205B44684930CD1C02F003205B44
|
||||
:2013A00044A9004828A614088A49C3AA288E04020849C3AAE082F003205B44684930CD1D75
|
||||
:2013C00002F003205B44A9004828A615088A49C3AA288E05020849C3AAE041F003205B44EF
|
||||
:2013E000684930CD1E02F003205B44A9004828A616088A49C3AA288E06020849C3AAE000F4
|
||||
:20140000F003205B44684930CD1F02F003205B44A9FF4828A613088A49C3AA288E030208BD
|
||||
:2014200049C3AAE0C3F003205B4468497DCD1C02F003205B44A9FF4828A614088A49C3AABC
|
||||
:20144000288E04020849C3AAE082F003205B4468497DCD1D02F003205B44A9FF4828A6155F
|
||||
:20146000088A49C3AA288E05020849C3AAE041F003205B4468497DCD1E02F003205B44A960
|
||||
:20148000FF4828A616088A49C3AA288E06020849C3AAE000F003205B4468497DCD1F02F0BF
|
||||
:2014A00003205B44A9004828AE1702088A49C3AA28860C0849C3C513F003205B4468493009
|
||||
:2014C000CD1C02F003205B44A9004828AE1802088A49C3AA28860D0849C3C514F003205B30
|
||||
:2014E00044684930CD1D02F003205B44A9004828AE1902088A49C3AA28860E0849C3C51555
|
||||
:20150000F003205B44684930CD1E02F003205B44A9004828AE1A02088A49C3AA28860F08A9
|
||||
:2015200049C3C516F003205B44684930CD1F02F003205B44A9FF4828AE1702088A49C3AA6A
|
||||
:2015400028860C0849C3AAE413F003205B4468497DCD1C02F003205B44A9FF4828AE1802BF
|
||||
:20156000088A49C3AA28860D0849C3AAE414F003205B4468497DCD1D02F003205B44A9FF8C
|
||||
:201580004828AE1902088A49C3AA28860E0849C3AAE415F003205B4468497DCD1E02F00397
|
||||
:2015A000205B44A9FF4828AE1A02088A49C3AA28860F0849C3AAE416F003205B4468497DED
|
||||
:2015C000CD1F02F003205B44A9004828A2C308EC1702F003205B44684930CD1C02F003204F
|
||||
:2015E0005B44A9004828A28208EC1802F003205B44684930CD1D02F003205B44A9004828B7
|
||||
:20160000A24108EC1902F003205B44684930CD1E02F003205B44A9004828A20008EC1A02DB
|
||||
:20162000F003205B44684930CD1F02F003205B44A9FF4828A2C308EC1702F003205B4468D3
|
||||
:20164000497DCD1C02F003205B44A9FF4828A28208EC1802F003205B4468497DCD1D02F021
|
||||
:2016600003205B44A9FF4828A24108EC1902F003205B4468497DCD1E02F003205B44A9FF77
|
||||
:201680004828A20008EC1A02F003205B4468497DCD1F02F003205B44A200A50C49C3C51371
|
||||
:2016A000F003205B44860CAD030249C3CD1702F003205B448E0302A50D49C3C514F0032053
|
||||
:2016C0005B44860DAD040249C3CD1802F003205B448E0402A50E49C3C515F003205B44861B
|
||||
:2016E0000EAD050249C3CD1902F003205B448E0502A50F49C3C516F003205B44860FAD0658
|
||||
:201700000249C3CD1A02F003205B448E0602AD0002C913F003205B44A9148D0002A9004810
|
||||
:2017200028A413089849C3A8288C03020849C3A8C0C3F003205B44684930CD1C02F00320ED
|
||||
:201740005B44A9004828A414089849C3A8288C04020849C3A8C082F003205B44684930CDAD
|
||||
:201760001D02F003205B44A9004828A415089849C3A8288C05020849C3A8C041F003205B8C
|
||||
:2017800044684930CD1E02F003205B44A9004828A416089849C3A8288C06020849C3A8C026
|
||||
:2017A00000F003205B44684930CD1F02F003205B44A9FF4828A413089849C3A8288C03021A
|
||||
:2017C0000849C3A8C0C3F003205B4468497DCD1C02F003205B44A9FF4828A414089849C3D1
|
||||
:2017E000A8288C04020849C3A8C082F003205B4468497DCD1D02F003205B44A9FF4828A44F
|
||||
:2018000015089849C3A8288C05020849C3A8C041F003205B4468497DCD1E02F003205B4468
|
||||
:20182000A9FF4828A416089849C3A8288C06020849C3A8C000F003205B4468497DCD1F027C
|
||||
:20184000F003205B44A9004828AC1702089849C3A828840C0849C3A8C413F003205B44683F
|
||||
:201860004930CD1C02F003205B44A9004828AC1802089849C3A828840D0849C3A8C414F0E2
|
||||
:2018800003205B44684930CD1D02F003205B44A9004828AC1902089849C3A828840E0849C8
|
||||
:2018A000C3A8C415F003205B44684930CD1E02F003205B44A9004828AC1A02089849C3A87D
|
||||
:2018C00028840F0849C3A8C416F003205B44684930CD1F02F003205B44A9FF4828AC1702A7
|
||||
:2018E000089849C3A828840C0849C3A8C513F003205B4468497DCD1C02F003205B44A9FF23
|
||||
:201900004828AC1802089849C3A828840D0849C3A8C514F003205B4468497DCD1D02F00330
|
||||
:20192000205B44A9FF4828AC1902089849C3A828840E0849C3A8C515F003205B4468497D85
|
||||
:20194000CD1E02F003205B44A9FF4828AC1A02089849C3A828840F0849C3A8C516F003204F
|
||||
:201960005B4468497DCD1F02F003205B44A9004828A0C308CC1702F003205B44684930CD31
|
||||
:201980001C02F003205B44A9004828A08208CC1802F003205B44684930CD1D02F003205B61
|
||||
:2019A00044A9004828A04108CC1902F003205B44684930CD1E02F003205B44A9004828A00F
|
||||
:2019C0000008CC1A02F003205B44684930CD1F02F003205B44A9FF4828A0C308CC1702F08C
|
||||
:2019E00003205B4468497DCD1C02F003205B44A9FF4828A08208CC1802F003205B446849CF
|
||||
:201A00007DCD1D02F003205B44A9FF4828A04108CC1902F003205B4468497DCD1E02F00303
|
||||
:201A2000205B44A9FF4828A00008CC1A02F003205B4468497DCD1F02F003205B44A000A57A
|
||||
:201A40000C49C3C513F003205B44840CAD030249C3CD1702F003205B448C0302A50D49C3AF
|
||||
:201A6000C514F003205B44840DAD040249C3CD1802F003205B448C0402A50E49C3C515F0D7
|
||||
:201A800003205B44840EAD050249C3CD1902F003205B448C0502A50F49C3C516F003205BFC
|
||||
:201AA00044840FAD060249C3CD1A02F003205B448C0602AD0002C914F003205B44A9158DD6
|
||||
:201AC0000002A203A9004828B5130849C3289D03020849C3DD1702F003205B44684930DD26
|
||||
:201AE0001C02F003205B44CA10DAA203A9FF4828B5130849C3289D03020849C3DD1702F005
|
||||
:201B000003205B4468497DDD1C02F003205B44CA10DAA203A9004828BD17020849C328950F
|
||||
:201B20000C0849C3D513F003205B44684930DD1C02F003205B44CA10DBA203A9FF4828BD2E
|
||||
:201B400017020849C328950C0849C3D513F003205B4468497DDD1C02F003205B44CA10DB51
|
||||
:201B6000A203A000B50C49C3D513F003205B44940CBD030249C3DD1702F003205B448A9D7C
|
||||
:201B80000302CA10DFAD0002C915F003205B44A9168D0002A003A9004828B1240849C3282D
|
||||
:201BA0009903020849C3D91702F003205B44684930D91C02F003205B448810DAA003A9FF88
|
||||
:201BC0004828B1240849C3289903020849C3D91702F003205B4468497DD91C02F003205B9B
|
||||
:201BE000448810DAA003A200B9030249C3D91702F003205B448A9903028810ECA003A90084
|
||||
:201C00004828B917020849C32891300849C3D124F003205B44684930D91C02F003205B4440
|
||||
:201C20008810DBA003A9FF4828B917020849C32891300849C3D124F003205B4468497DD9E5
|
||||
:201C40001C02F003205B448810DBA003A200B9030249C3D91702F003205B448A99030288DE
|
||||
:201C600010ECA206A003A9004828A1240849C32881300849C3D91702F003205B44684930B9
|
||||
:201C8000D91C02F003205B44CACA8810D9A206A003A9FF4828A1240849C32881300849C36D
|
||||
:201CA000D91702F003205B4468497DD91C02F003205B44CACA8810D9A003A200B903024958
|
||||
:201CC000C3D91702F003205B448A9903028810ECAD0002C916F003205B44A9178D0002A2C0
|
||||
:201CE000FDB5199D0901CAE0FAB0F6A2FDBD1D019512CAE0FAB0F6A203A000B50CD513F0DF
|
||||
:201D000003205B44940CBD0302DD1702F003205B448A9D0302CA10E3A0FBA2FEA12C990B62
|
||||
:201D200001CACA88C0F8B0F4A003A200B90302D91702F003205B448A9903028810EEA0FB3A
|
||||
:201D4000B91F01913888C0F8B0F6A003A200B90302D91702F003205B448A9903028810EEA6
|
||||
:201D6000A0FBA2FEB12E8138CACA88C0F8B0F5A003A200B90302D91702F003205B448A994D
|
||||
:201D800003028810EEAD0002C917F003205B44A9188D0002A9004828A5130849C3288D038A
|
||||
:201DA000020849C3C9C3F003205B44684930CD1C02F003205B44A9004828A5140849C32843
|
||||
:201DC0008D04020849C3C982F003205B44684930CD1D02F003205B44A9004828A5150849BC
|
||||
:201DE000C3288D05020849C3C941F003205B44684930CD1E02F003205B44A9004828A51640
|
||||
:201E00000849C3288D06020849C3C900F003205B44684930CD1F02F003205B44A9FF4828C9
|
||||
:201E2000A5130849C3288D03020849C3C9C3F003205B4468497DCD1C02F003205B44A9FF57
|
||||
:201E40004828A5140849C3288D04020849C3C982F003205B4468497DCD1D02F003205B44AD
|
||||
:201E6000A9FF4828A5150849C3288D05020849C3C941F003205B4468497DCD1E02F00320C2
|
||||
:201E80005B44A9FF4828A5160849C3288D06020849C3C900F003205B4468497DCD1F02F064
|
||||
:201EA00003205B44A9004828AD17020849C328850C0849C3C513F003205B44684930CD1C4C
|
||||
:201EC00002F003205B44A9004828AD18020849C328850D0849C3C514F003205B4468493020
|
||||
:201EE000CD1D02F003205B44A9004828AD19020849C328850E0849C3C515F003205B44688C
|
||||
:201F00004930CD1E02F003205B44A9004828AD1A020849C328850F0849C3C516F003205B9A
|
||||
:201F200044684930CD1F02F003205B44A9FF4828AD17020849C328850C0849C3C513F00352
|
||||
:201F4000205B4468497DCD1C02F003205B44A9FF4828AD18020849C328850D0849C3C5145D
|
||||
:201F6000F003205B4468497DCD1D02F003205B44A9FF4828AD19020849C328850E0849C320
|
||||
:201F8000C515F003205B4468497DCD1E02F003205B44A9FF4828AD1A020849C328850F082F
|
||||
:201FA00049C3C516F003205B4468497DCD1F02F003205B44A9004828A9C308CD1702F00354
|
||||
:201FC000205B44684930CD1C02F003205B44A9004828A98208CD1802F003205B44684930FE
|
||||
:201FE000CD1D02F003205B44A9004828A94108CD1902F003205B44684930CD1E02F00320BD
|
||||
:202000005B44A9004828A90008CD1A02F003205B44684930CD1F02F003205B44A9FF482823
|
||||
:20202000A9C308CD1702F003205B4468497DCD1C02F003205B44A9FF4828A98208CD180297
|
||||
:20204000F003205B4468497DCD1D02F003205B44A9FF4828A94108CD1902F003205B4468F6
|
||||
:20206000497DCD1E02F003205B44A9FF4828A90008CD1A02F003205B4468497DCD1F02F08B
|
||||
:2020800003205B44A200A50C49C3C513F003205B44860CAD030249C3CD1702F003205B44AD
|
||||
:2020A0008E0302A50D49C3C514F003205B44860DAD040249C3CD1802F003205B448E0402C5
|
||||
:2020C000A50E49C3C515F003205B44860EAD050249C3CD1902F003205B448E0502A50F4935
|
||||
:2020E000C3C516F003205B44860FAD060249C3CD1A02F003205B448E0602AD0002C918F089
|
||||
:2021000003205B44A9198D0002A90048A9FF28241608C9FFF003205B446848C932F0032071
|
||||
:202120005B4428A90048A90128241508C901F003205B446848C970F003205B4428A90048A4
|
||||
:20214000A90128241408C901F003205B446848C9B2F003205B4428A90048A90128241308EA
|
||||
:20216000C901F003205B446848C9F0F003205B4428A9FF48A9FF28241608C9FFF003205B68
|
||||
:20218000446848C93FF003205B4428A9FF48A90128241508C901F003205B446848C97DF004
|
||||
:2021A00003205B4428A9FF48A90128241408C901F003205B446848C9BFF003205B4428A9FC
|
||||
:2021C000FF48A90128241308C901F003205B446848C9FDF003205B4428A90048A9FF282CEE
|
||||
:2021E0001A0208C9FFF003205B446848C932F003205B4428A90048A901282C190208C901E0
|
||||
:20220000F003205B446848C970F003205B4428A90048A901282C180208C901F003205B44BC
|
||||
:202220006848C9B2F003205B4428A90048A901282C170208C901F003205B446848C9F0F0B4
|
||||
:2022400003205B4428A9FF48A9FF282C1A0208C9FFF003205B446848C93FF003205B442878
|
||||
:20226000A9FF48A901282C190208C901F003205B446848C97DF003205B4428A9FF48A90167
|
||||
:20228000282C180208C901F003205B446848C9BFF003205B4428A9FF48A901282C1702082B
|
||||
:2022A000C901F003205B446848C9FDF003205B4428AD0002C919F003205B44A91A8D0002BD
|
||||
:2022C000A90048A28028E417086848C931F003205B4428CAE417086848C933F003205B4411
|
||||
:2022E00028CAE41708E07EF003205B446848C9B0F003205B4428A9FF48A28028E417086831
|
||||
:2023000048C97DF003205B4428CAE417086848C97FF003205B4428CAE41708E07EF0032078
|
||||
:202320005B446848C9FCF003205B4428A90048A28028EC1B02086848C931F003205B4428DF
|
||||
:20234000CAEC1B02086848C933F003205B4428CAEC1B0208E07EF003205B446848C9B0F018
|
||||
:2023600003205B4428A9FF48A28028EC1B02086848C97DF003205B4428CAEC1B02086848CD
|
||||
:20238000C97FF003205B4428CAEC1B0208E07EF003205B446848C9FCF003205B4428A90038
|
||||
:2023A00048A28028E07F086848C931F003205B4428CAE07F086848C933F003205B4428CA1F
|
||||
:2023C000E07F08E07EF003205B446848C9B0F003205B4428A9FF48A28028E07F086848C969
|
||||
:2023E0007DF003205B4428CAE07F086848C97FF003205B4428CAE07F08E07EF003205B4442
|
||||
:202400006848C9FCF003205B4428AD0002C91AF003205B44A91B8D0002A90048A08028C4D9
|
||||
:2024200017086848C931F003205B442888C417086848C933F003205B442888C41708C07E5F
|
||||
:20244000F003205B446848C9B0F003205B4428A9FF48A08028C417086848C97DF003205B48
|
||||
:20246000442888C417086848C97FF003205B442888C41708C07EF003205B446848C9FCF0F3
|
||||
:2024800003205B4428A90048A08028CC1B02086848C931F003205B442888CC1B020868487B
|
||||
:2024A000C933F003205B442888CC1B0208C07EF003205B446848C9B0F003205B4428A9FF32
|
||||
:2024C00048A08028CC1B02086848C97DF003205B442888CC1B02086848C97FF003205B4488
|
||||
:2024E0002888CC1B0208C07EF003205B446848C9FCF003205B4428A90048A08028C07F087C
|
||||
:202500006848C931F003205B442888C07F086848C933F003205B442888C07F08C07EF003E2
|
||||
:20252000205B446848C9B0F003205B4428A9FF48A08028C07F086848C97DF003205B44288A
|
||||
:2025400088C07F086848C97FF003205B442888C07F08C07EF003205B446848C9FCF0032093
|
||||
:202560005B4428AD0002C91BF003205B44A91C8D0002A90048A98028C51708C980F0032079
|
||||
:202580005B446848C931F003205B4428A90048A97F28C51708C97FF003205B446848C9334D
|
||||
:2025A000F003205B4428A90048A97E28C51708C97EF003205B446848C9B0F003205B442821
|
||||
:2025C000A9FF48A98028C51708C980F003205B446848C97DF003205B4428A9FF48A97F28CB
|
||||
:2025E000C51708C97FF003205B446848C97FF003205B4428A9FF48A97E28C51708C97EF0D1
|
||||
:2026000003205B446848C9FCF003205B4428A90048A98028CD1B0208C980F003205B446812
|
||||
:2026200048C931F003205B4428A90048A97F28CD1B0208C97FF003205B446848C933F003B2
|
||||
:20264000205B4428A90048A97E28CD1B0208C97EF003205B446848C9B0F003205B4428A9BC
|
||||
:20266000FF48A98028CD1B0208C980F003205B446848C97DF003205B4428A9FF48A97F28C5
|
||||
:20268000CD1B0208C97FF003205B446848C97FF003205B4428A9FF48A97E28CD1B0208C982
|
||||
:2026A0007EF003205B446848C9FCF003205B4428A90048A98028C97F08C980F003205B440E
|
||||
:2026C0006848C931F003205B4428A90048A97F28C97F08C97FF003205B446848C933F0034C
|
||||
:2026E000205B4428A90048A97E28C97F08C97EF003205B446848C9B0F003205B4428A9FFBF
|
||||
:2027000048A98028C97F08C980F003205B446848C97DF003205B4428A9FF48A97F28C97F7D
|
||||
:2027200008C97FF003205B446848C97FF003205B4428A9FF48A97E28C97F08C97EF00320DC
|
||||
:202740005B446848C9FCF003205B4428A204A90048A98028D51308C980F003205B44684808
|
||||
:20276000C931F003205B4428A90048A97F28D51308C97FF003205B446848C933F003205B40
|
||||
:202780004428A90048A97E28D51308C97EF003205B446848C9B0F003205B4428A9FF48A908
|
||||
:2027A0008028D51308C980F003205B446848C97DF003205B4428A9FF48A97F28D51308C9BD
|
||||
:2027C0007FF003205B446848C97FF003205B4428A9FF48A97E28D51308C97EF003205B44CE
|
||||
:2027E0006848C9FCF003205B4428A90048A98028DD170208C980F003205B446848C931F0B5
|
||||
:2028000003205B4428A90048A97F28DD170208C97FF003205B446848C933F003205B44280F
|
||||
:20282000A90048A97E28DD170208C97EF003205B446848C9B0F003205B4428A9FF48A98045
|
||||
:2028400028DD170208C980F003205B446848C97DF003205B4428A9FF48A97F28DD17020849
|
||||
:20286000C97FF003205B446848C97FF003205B4428A9FF48A97E28DD170208C97EF00320F5
|
||||
:202880005B446848C9FCF003205B4428A004A208A90048A98028D9170208C980F003205B09
|
||||
:2028A000446848C931F003205B4428A90048A97F28D9170208C97FF003205B446848C9336F
|
||||
:2028C000F003205B4428A90048A97E28D9170208C97EF003205B446848C9B0F003205B4410
|
||||
:2028E00028A9FF48A98028D9170208C980F003205B446848C97DF003205B4428A9FF48A911
|
||||
:202900007F28D9170208C97FF003205B446848C97FF003205B4428A9FF48A97E28D9170219
|
||||
:2029200008C97EF003205B446848C9FCF003205B4428A90048A98028C12408C980F00320BC
|
||||
:202940005B446848C931F003205B4428A90048A97F28C12408C97FF003205B446848C93380
|
||||
:20296000F003205B4428A90048A97E28C12408C97EF003205B446848C9B0F003205B442854
|
||||
:20298000A9FF48A98028C12408C980F003205B446848C97DF003205B4428A9FF48A97F28FE
|
||||
:2029A000C12408C97FF003205B446848C97FF003205B4428A9FF48A97E28C12408C97EF0FB
|
||||
:2029C00003205B446848C9FCF003205B4428A90048A98028D12408C980F003205B446848FC
|
||||
:2029E000C931F003205B4428A90048A97F28D12408C97FF003205B446848C933F003205BB1
|
||||
:202A00004428A90048A97E28D12408C97EF003205B446848C9B0F003205B4428A9FF48A978
|
||||
:202A20008028D12408C980F003205B446848C97DF003205B4428A9FF48A97F28D12408C920
|
||||
:202A40007FF003205B446848C97FF003205B4428A9FF48A97E28D12408C97EF003205B443E
|
||||
:202A60006848C9FCF003205B4428AD0002C91CF003205B44A91D8D0002A203A90048B5130E
|
||||
:202A8000280A08DD2002F003205B44684930DD3002F003205B44CA10E2A203A9FF48B51390
|
||||
:202AA000280A08DD2002F003205B4468497CDD3002F003205B44CA10E2A203A90048B51323
|
||||
:202AC000284A08DD2802F003205B44684930DD3802F003205B44CA10E2A203A9FF48B51300
|
||||
:202AE000284A08DD2802F003205B4468497CDD3802F003205B44CA10E2A203A90048B51393
|
||||
:202B0000282A08DD2002F003205B44684930DD3002F003205B44CA10E2A203A9FE48B513F0
|
||||
:202B2000282A08DD2002F003205B4468497CDD3002F003205B44CA10E2A203A90148B51381
|
||||
:202B4000282A08DD2402F003205B44684930DD3402F003205B44CA10E2A203A9FF48B513A7
|
||||
:202B6000282A08DD2402F003205B4468497CDD3402F003205B44CA10E2A203A90048B5133A
|
||||
:202B8000286A08DD2802F003205B44684930DD3802F003205B44CA10E2A203A9FE48B51320
|
||||
:202BA000286A08DD2802F003205B4468497CDD3802F003205B44CA10E2A203A90148B513B1
|
||||
:202BC000286A08DD2C02F003205B44684930DD3C02F003205B44CA10E2A203A9FF48B513D7
|
||||
:202BE000286A08DD2C02F003205B4468497CDD3C02F003205B44CA10E2AD0002C91DF00340
|
||||
:202C0000205B44A91E8D0002A203A90048B513850C28060C08A50CDD2002F003205B4468A4
|
||||
:202C20004930DD3002F003205B44CA10DDA203A9FF48B513850C28060C08A50CDD2002F0D3
|
||||
:202C400003205B4468497CDD3002F003205B44CA10DDA203A90048B513850C28460C08A5F7
|
||||
:202C60000CDD2802F003205B44684930DD3802F003205B44CA10DDA203A9FF48B513850C40
|
||||
:202C800028460C08A50CDD2802F003205B4468497CDD3802F003205B44CA10DDA203A9004D
|
||||
:202CA00048B513850C28260C08A50CDD2002F003205B44684930DD3002F003205B44CA1033
|
||||
:202CC000DDA203A9FE48B513850C28260C08A50CDD2002F003205B4468497CDD3002F00337
|
||||
:202CE000205B44CA10DDA203A90148B513850C28260C08A50CDD2402F003205B44684930C5
|
||||
:202D0000DD3402F003205B44CA10DDA203A9FF48B513850C28260C08A50CDD2402F0032020
|
||||
:202D20005B4468497CDD3402F003205B44CA10DDA203A90048B513850C28660C08A50CDD2C
|
||||
:202D40002802F003205B44684930DD3802F003205B44CA10DDA203A9FE48B513850C2866BB
|
||||
:202D60000C08A50CDD2802F003205B4468497CDD3802F003205B44CA10DDA203A90148B5DC
|
||||
:202D800013850C28660C08A50CDD2C02F003205B44684930DD3C02F003205B44CA10DDA278
|
||||
:202DA00003A9FF48B513850C28660C08A50CDD2C02F003205B4468497CDD3C02F003205B01
|
||||
:202DC00044CA10DDAD0002C91EF003205B44A91F8D0002A203A90048B5138D0302280E0330
|
||||
:202DE0000208AD0302DD2002F003205B44684930DD3002F003205B44CA10DAA203A9FF487B
|
||||
:202E0000B5138D0302280E030208AD0302DD2002F003205B4468497CDD3002F003205B44C4
|
||||
:202E2000CA10DAA203A90048B5138D0302284E030208AD0302DD2802F003205B446849301F
|
||||
:202E4000DD3802F003205B44CA10DAA203A9FF48B5138D0302284E030208AD0302DD2802CA
|
||||
:202E6000F003205B4468497CDD3802F003205B44CA10DAA203A90048B5138D0302282E03AD
|
||||
:202E80000208AD0302DD2002F003205B44684930DD3002F003205B44CA10DAA203A9FE48DB
|
||||
:202EA000B5138D0302282E030208AD0302DD2002F003205B4468497CDD3002F003205B4404
|
||||
:202EC000CA10DAA203A90148B5138D0302282E030208AD0302DD2402F003205B44684930A2
|
||||
:202EE000DD3402F003205B44CA10DAA203A9FF48B5138D0302282E030208AD0302DD240252
|
||||
:202F0000F003205B4468497CDD3402F003205B44CA10DAA203A90048B5138D0302286E03D0
|
||||
:202F20000208AD0302DD2802F003205B44684930DD3802F003205B44CA10DAA203A9FE482A
|
||||
:202F4000B5138D0302286E030208AD0302DD2802F003205B4468497CDD3802F003205B4413
|
||||
:202F6000CA10DAA203A90148B5138D0302286E030208AD0302DD2C02F003205B44684930B9
|
||||
:202F8000DD3C02F003205B44CA10DAA203A9FF48B5138D0302286E030208AD0302DD2C0261
|
||||
:202FA000F003205B4468497CDD3C02F003205B44CA10DAAD0002C91FF003205B44A9208D12
|
||||
:202FC0000002A203A90048B513950C28160C08B50CDD2002F003205B44684930DD3002F04C
|
||||
:202FE00003205B44CA10DDA203A9FF48B513950C28160C08B50CDD2002F003205B446849E5
|
||||
:203000007CDD3002F003205B44CA10DDA203A90048B513950C28560C08B50CDD2802F00370
|
||||
:20302000205B44684930DD3802F003205B44CA10DDA203A9FF48B513950C28560C08B50C1F
|
||||
:20304000DD2802F003205B4468497CDD3802F003205B44CA10DDA203A90048B513950C28E3
|
||||
:20306000360C08B50CDD2002F003205B44684930DD3002F003205B44CA10DDA203A9FE48A7
|
||||
:20308000B513950C28360C08B50CDD2002F003205B4468497CDD3002F003205B44CA10DD3E
|
||||
:2030A000A203A90148B513950C28360C08B50CDD2402F003205B44684930DD3402F0032021
|
||||
:2030C0005B44CA10DDA203A9FF48B513950C28360C08B50CDD2402F003205B4468497CDDAA
|
||||
:2030E0003402F003205B44CA10DDA203A90048B513950C28760C08B50CDD2802F003205B4A
|
||||
:2031000044684930DD3802F003205B44CA10DDA203A9FE48B513950C28760C08B50CDD2895
|
||||
:2031200002F003205B4468497CDD3802F003205B44CA10DDA203A90148B513950C28760C84
|
||||
:2031400008B50CDD2C02F003205B44684930DD3C02F003205B44CA10DDA203A9FF48B51327
|
||||
:20316000950C28760C08B50CDD2C02F003205B4468497CDD3C02F003205B44CA10DDAD0020
|
||||
:2031800002C920F003205B44A9218D0002A203A90048B5139D0302281E030208BD0302DD47
|
||||
:2031A0002002F003205B44684930DD3002F003205B44CA10DAA203A9FF48B5139D030228BE
|
||||
:2031C0001E030208BD0302DD2002F003205B4468497CDD3002F003205B44CA10DAA203A961
|
||||
:2031E0000048B5139D0302285E030208BD0302DD2802F003205B44684930DD3802F0032004
|
||||
:203200005B44CA10DAA203A9FF48B5139D0302285E030208BD0302DD2802F003205B4468E6
|
||||
:20322000497CDD3802F003205B44CA10DAA203A90048B5139D0302283E030208BD0302DD3A
|
||||
:203240002002F003205B44684930DD3002F003205B44CA10DAA203A9FE48B5139D0302281E
|
||||
:203260003E030208BD0302DD2002F003205B4468497CDD3002F003205B44CA10DAA203A9A0
|
||||
:203280000148B5139D0302283E030208BD0302DD2402F003205B44684930DD3402F003208A
|
||||
:2032A0005B44CA10DAA203A9FF48B5139D0302283E030208BD0302DD2402F003205B44686A
|
||||
:2032C000497CDD3402F003205B44CA10DAA203A90048B5139D0302287E030208BD0302DD5E
|
||||
:2032E0002802F003205B44684930DD3802F003205B44CA10DAA203A9FE48B5139D0302286E
|
||||
:203300007E030208BD0302DD2802F003205B4468497CDD3802F003205B44CA10DAA203A9AF
|
||||
:203320000148B5139D0302287E030208BD0302DD2C02F003205B44684930DD3C02F0032099
|
||||
:203340005B44CA10DAA203A9FF48B5139D0302287E030208BD0302DD2C02F003205B446881
|
||||
:20336000497CDD3C02F003205B44CA10DAAD0002C921F003205B44A9228D0002A200A97E99
|
||||
:20338000850CA9004828E60C08A50CDD4002F003205B44684930DD4502F003205B44E8E088
|
||||
:2033A00002D004A9FE850CE005D0D7CAE60CA9004828C60C08A50CDD4002F003205B4468DA
|
||||
:2033C0004930DD4502F003205B44CA300AE001D0DDA981850CD0D7A200A97E850CA9FF4860
|
||||
:2033E00028E60C08A50CDD4002F003205B4468497DDD4502F003205B44E8E002D004A9FEE0
|
||||
:20340000850CE005D0D7CAE60CA9FF4828C60C08A50CDD4002F003205B4468497DDD45020D
|
||||
:20342000F003205B44CA300AE001D0DDA981850CD0D7AD0002C922F003205B44A9238D0041
|
||||
:2034400002A200A97E8D0302A9004828EE030208AD0302DD4002F003205B44684930DD4575
|
||||
:2034600002F003205B44E8E002D005A9FE8D0302E005D0D4CAEE0302A9004828CE03020886
|
||||
:20348000AD0302DD4002F003205B44684930DD4502F003205B44CA300BE001D0DBA9818DAA
|
||||
:2034A0000302D0D4A200A97E8D0302A9FF4828EE030208AD0302DD4002F003205B446849C1
|
||||
:2034C0007DDD4502F003205B44E8E002D005A9FE8D0302E005D0D4CAEE0302A9FF4828CE95
|
||||
:2034E000030208AD0302DD4002F003205B4468497DDD4502F003205B44CA300BE001D0DBA7
|
||||
:20350000A9818D0302D0D4AD0002C923F003205B44A9248D0002A200A97E950CA90048281F
|
||||
:20352000F60C08B50CDD4002F003205B44684930DD4502F003205B44B50CE8E002D002A932
|
||||
:20354000FEE005D0D5CAA902950CA9004828D60C08B50CDD4002F003205B44684930DD4535
|
||||
:2035600002F003205B44B50CCA3008E001D0D9A981D0D5A200A97E950CA9FF4828F60C08EF
|
||||
:20358000B50CDD4002F003205B4468497DDD4502F003205B44B50CE8E002D002A9FEE005AC
|
||||
:2035A000D0D5CAA902950CA9FF4828D60C08B50CDD4002F003205B4468497DDD4502F00377
|
||||
:2035C000205B44B50CCA3008E001D0D9A981D0D5AD0002C924F003205B44A9258D0002A2C3
|
||||
:2035E00000A97E9D0302A9004828FE030208BD0302DD4002F003205B44684930DD4502F056
|
||||
:2036000003205B44BD0302E8E002D002A9FEE005D0D1CAA9029D0302A9004828DE03020842
|
||||
:20362000BD0302DD4002F003205B44684930DD4502F003205B44BD0302CA3008E001D0D5F6
|
||||
:20364000A981D0D1A200A97E9D0302A9FF4828FE030208BD0302DD4002F003205B446849CD
|
||||
:203660007DDD4502F003205B44BD0302E8E002D002A9FEE005D0D1CAA9029D0302A9FF4865
|
||||
:2036800028DE030208BD0302DD4002F003205B4468497DDD4502F003205B44BD0302CA30C4
|
||||
:2036A00008E001D0D5A981D0D1AD0002C925F003205B44A9268D0002A203B51C8D0902A94D
|
||||
:2036C0000048BD5A022820080208DD6202F003205B44684930DD6602F003205B44CA10DAB0
|
||||
:2036E000A203B51C8D0902A9FF48BD5A022820080208DD6202F003205B4468497DDD6602F3
|
||||
:20370000F003205B44CA10DAA203B51C850CA90048BD5A0228250C08DD6202F003205B44DE
|
||||
:20372000684930DD6602F003205B44CA10DCA203B51C850CA9FF48BD5A0228250C08DD624B
|
||||
:2037400002F003205B4468497DDD6602F003205B44CA10DCA203B51C8D0302A90048BD5ACA
|
||||
:2037600002282D030208DD6202F003205B44684930DD6602F003205B44CA10DAA203B51CF0
|
||||
:203780008D0302A9FF48BD5A02282D030208DD6202F003205B4468497DDD6602F003205B58
|
||||
:2037A00044CA1002A203A90048BD5A0228351C08DD6202F003205B44684930DD6602F003AD
|
||||
:2037C000205B44CA10E0A203A9FF48BD5A0228351C08DD6202F003205B4468497DDD6602DB
|
||||
:2037E000F003205B44CA10E0A203A90048BD5A02283D4E0208DD6202F003205B446849301D
|
||||
:20380000DD6602F003205B44CA10DFA203A9FF48BD5A02283D4E0208DD6202F003205B449A
|
||||
:2038200068497DDD6602F003205B44CA10DFA003A90048B95A0228394E0208D96202F00318
|
||||
:20384000205B44684930D96602F003205B448810DFA003A9FF48B95A0228394E0208D962C2
|
||||
:2038600002F003205B4468497DD96602F003205B448810DFA206A003A90048B95A02282162
|
||||
:203880003A08D96202F003205B44684930D96602F003205B44CACA8810DEA206A003A9FF26
|
||||
:2038A00048B95A0228213A08D96202F003205B4468497DD96602F003205B44CACA8810DE06
|
||||
:2038C000A003A90048B95A0228313A08D96202F003205B44684930D96602F003205B448859
|
||||
:2038E00010E0A003A9FF48B95A0228313A08D96202F003205B4468497DD96602F003205BC9
|
||||
:20390000448810E0AD0002C926F003205B44A9278D0002A203B5208D0C02A90048BD5E0219
|
||||
:2039200028200B0208DD6202F003205B44684930DD6602F003205B44CA10DAA203B5208DA4
|
||||
:203940000C02A9FF48BD5E0228200B0208DD6202F003205B4468497DDD6602F003205B44D7
|
||||
:20396000CA10DAA203B520850CA90048BD5E0228450C08DD6202F003205B44684930DD66E2
|
||||
:2039800002F003205B44CA10DCA203B520850CA9FF48BD5E0228450C08DD6202F003205B75
|
||||
:2039A0004468497DDD6602F003205B44CA10DCA203B5208D0302A90048BD5E02284D030254
|
||||
:2039C00008DD6202F003205B44684930DD6602F003205B44CA10DAA203B5208D0302A9FFAC
|
||||
:2039E00048BD5E02284D030208DD6202F003205B4468497DDD6602F003205B44CA1002A24A
|
||||
:203A000003A90048BD5E0228552008DD6202F003205B44684930DD6602F003205B44CA104B
|
||||
:203A2000E0A203A9FF48BD5E0228552008DD6202F003205B4468497DDD6602F003205B4437
|
||||
:203A4000CA10E0A203A90048BD5E02285D520208DD6202F003205B44684930DD6602F0030C
|
||||
:203A6000205B44CA10DFA203A9FF48BD5E02285D520208DD6202F003205B4468497DDD66D7
|
||||
:203A800002F003205B44CA10DFA003A90048B95E022859520208D96202F003205B4468498F
|
||||
:203AA00030D96602F003205B448810DFA003A9FF48B95E022859520208D96202F003205B38
|
||||
:203AC0004468497DD96602F003205B448810DFA206A003A90048B95E0228414208D96202C5
|
||||
:203AE000F003205B44684930D96602F003205B44CACA8810DEA206A003A9FF48B95E0228BA
|
||||
:203B0000414208D96202F003205B4468497DD96602F003205B44CACA8810DEA003A900486C
|
||||
:203B2000B95E0228514208D96202F003205B44684930D96602F003205B448810E0A003A922
|
||||
:203B4000FF48B95E0228514208D96202F003205B4468497DD96602F003205B448810E0AD0D
|
||||
:203B60000002C927F003205B44A9288D0002A203B5188D0F02A90048BD560228200E0208CB
|
||||
:203B8000DD6202F003205B44684930DD6602F003205B44CA10DAA203B5188D0F02A9FF48A6
|
||||
:203BA000BD560228200E0208DD6202F003205B4468497DDD6602F003205B44CA10DAA2031F
|
||||
:203BC000B518850CA90048BD560228050C08DD6202F003205B44684930DD6602F003205BB9
|
||||
:203BE00044CA10DCA203B518850CA9FF48BD560228050C08DD6202F003205B4468497DDD84
|
||||
:203C00006602F003205B44CA10DCA203B5188D0302A90048BD5602280D030208DD6202F057
|
||||
:203C200003205B44684930DD6602F003205B44CA10DAA203B5188D0302A9FF48BD56022805
|
||||
:203C40000D030208DD6202F003205B4468497DDD6602F003205B44CA1002A203A90048BD03
|
||||
:203C6000560228151808DD6202F003205B44684930DD6602F003205B44CA10E0A203A9FFBD
|
||||
:203C800048BD560228151808DD6202F003205B4468497DDD6602F003205B44CA10E0A203F3
|
||||
:203CA000A90048BD5602281D4A0208DD6202F003205B44684930DD6602F003205B44CA10C0
|
||||
:203CC000DFA203A9FF48BD5602281D4A0208DD6202F003205B4468497DDD6602F003205BEE
|
||||
:203CE00044CA10DFA003A90048B9560228194A0208D96202F003205B44684930D96602F08C
|
||||
:203D000003205B448810DFA003A9FF48B9560228194A0208D96202F003205B4468497DD93B
|
||||
:203D20006602F003205B448810DFA206A003A90048B9560228014A08D96202F003205B443B
|
||||
:203D4000684930D96602F003205B44CACA8810DEA206A003A9FF48B9560228014A08D96283
|
||||
:203D600002F003205B4468497DD96602F003205B44CACA8810DEA003A90048B95602281186
|
||||
:203D80004A08D96202F003205B44684930D96602F003205B448810E0A003A9FF48B95602F2
|
||||
:203DA00028114A08D96202F003205B4468497DD96602F003205B448810E058AD0002C928F8
|
||||
:203DC000F003205B44A9298D0002D8A20EA0FFA900850C850D850E8D0302850F8510A9FFE7
|
||||
:203DE00085128D0402A90285111820DF40E60CE60F080868298228D002E610051085113824
|
||||
:203E000020DF40C60CE60DD0E0A9008510EE0302E60E086829828511C612CE0402A50E8534
|
||||
:203E20000FD0C6AD0002C929F003205B44A92A8D0002F8A20EA0FFA999850D850E8D0302E8
|
||||
:203E4000850FA901850C8510A90085128D040238204C3FC60CA50FD008C610A999850FD06E
|
||||
:203E600012290FD00CC60FC60FC60FC60FC60FC60FC60F18204C3FE60CA50DF015290FD0D5
|
||||
:203E80000CC60DC60DC60DC60DC60DC60DC60D4C4F3EA999850DA50EF030290FD018C60EDD
|
||||
:203EA000C60EC60EC60EC60EC60EE612E612E612E612E612E612C60EE612A5128D0402A553
|
||||
:203EC0000E8D0302850FE610D085AD0002C92AF003205B44A92B8D000218D808A9556955F8
|
||||
:203EE000C9AAF003205B4418F808A9556955C910F003205B44D828A9556955C910F0032096
|
||||
:203F00005B4428A9556955C9AAF003205B4418A93F48A92C4808F8A93F48A9204808D84033
|
||||
:203F2000A9556955C910F003205B4440A9556955C9AAF003205B44AD0002C92BF003205B08
|
||||
:203F400044A9F08D00022024454C000408A50D650E08C50FF003205B44682901C510F00307
|
||||
:203F6000205B442808A50DE51208C50FF003205B44682901C510F003205B442808A50D6DB3
|
||||
:203F8000030208C50FF003205B44682901C510F003205B442808A50DED040208C50FF003D1
|
||||
:203FA000205B44682901C510F003205B442808A50E8D1202A50D20110208C50FF003205B76
|
||||
:203FC00044682901C510F003205B442808A5128D1502A50D20140208C50FF003205B44681B
|
||||
:203FE0002901C510F003205B442808A50D750008C50FF003205B44682901C510F003205B56
|
||||
:20400000442808A50DF50408C50FF003205B44682901C510F003205B442808A50D7DF50185
|
||||
:2040200008C50FF003205B44682901C510F003205B442808A50DFDF60108C50FF003205BB9
|
||||
:2040400044682901C510F003205B442808A50D79040108C50FF003205B44682901C510F0BE
|
||||
:2040600003205B442808A50DF9050108C50FF003205B44682901C510F003205B442808A521
|
||||
:204080000D614408C50FF003205B44682901C510F003205B442808A50DE14608C50FF003EF
|
||||
:2040A000205B44682901C510F003205B442808A50D715608C50FF003205B44682901C5108A
|
||||
:2040C000F003205B442808A50DF15808C50FF003205B44682901C510F003205B442860A52F
|
||||
:2040E00011298348A50D450E300AA50D450F10046809404868851108A50D650E08C50FF072
|
||||
:2041000003205B446829C3C511F003205B442808A50DE51208C50FF003205B446829C3C581
|
||||
:2041200011F003205B442808A50D6D030208C50FF003205B446829C3C511F003205B4428D6
|
||||
:2041400008A50DED040208C50FF003205B446829C3C511F003205B442808A50E8D1202A51F
|
||||
:204160000D20110208C50FF003205B446829C3C511F003205B442808A5128D1502A50D2038
|
||||
:20418000140208C50FF003205B446829C3C511F003205B442808A50D750008C50FF0032059
|
||||
:2041A0005B446829C3C511F003205B442808A50DF50408C50FF003205B446829C3C511F001
|
||||
:2041C00003205B442808A50D7DF50108C50FF003205B446829C3C511F003205B442808A589
|
||||
:2041E0000DFDF60108C50FF003205B446829C3C511F003205B442808A50D79040108C50F18
|
||||
:20420000F003205B446829C3C511F003205B442808A50DF9050108C50FF003205B44682910
|
||||
:20422000C3C511F003205B442808A50D614408C50FF003205B446829C3C511F003205B4442
|
||||
:204240002808A50DE14608C50FF003205B446829C3C511F003205B442808A50D715608C575
|
||||
:204260000FF003205B446829C3C511F003205B442808A50DF15808C50FF003205B44682957
|
||||
:20428000C3C511F003205B442860888808888888289003205B445003205B441003205B443D
|
||||
:2042A000D003205B44C946F003205B44E041F003205B44C04FF003205B44488A48BAE0FD66
|
||||
:2042C000F003205B4468AAA9FF482868E849AA4CF309DB427B0A205B44888808888888283E
|
||||
:2042E0009003205B445003205B441003205B44D003205B44C949F003205B44E04EF00320F1
|
||||
:204300005B44C041F003205B44488A48BAE0FDF003205B4468AAA9FF482868E849AA6CD43B
|
||||
:2043200042205B444C0004888808888888289003205B445003205B441003205B44D003202B
|
||||
:204340005B44C94AF003205B44E053F003205B44C04FF003205B44488A48BAE0FBF0032091
|
||||
:204360005B44ADFF01C90AF003205B44ADFE01C9CCF003205B44A9FF482868AA68E849AA0C
|
||||
:2043800060205B444C0004205B444C0004205B444C0004888808888888C9BDF05AC942F015
|
||||
:2043A00003205B44E052F003205B44C048F003205B44850A860BBABD0201C930F003205B9C
|
||||
:2043C0004468C934F003205B44BAE0FCF003205B44ADFF01C90BF003205B44ADFE01C91E74
|
||||
:2043E000F003205B44A9FF48A60BE8A50A49AA2840205B444C0004E0ADF003205B44C0B1B9
|
||||
:20440000F003205B44850A860BBABD0201C9FFF003205B44680908C9FFF003205B44BAE049
|
||||
:20442000FCF003205B44ADFF01C90BF003205B44ADFE01C953F003205B44A90448A60BE893
|
||||
:20444000A50A49AA2840205B444C0004A200AD6945206545E8BD6945D0F76008488A489848
|
||||
:2044600048D8A200AD7D45206545E8BD7D45D0F7BAE8A9012051458A205145204D45BD0062
|
||||
:2044800001205145E8D0F4204445A900205145A90CAA205145204D45B500205145E8E013A4
|
||||
:2044A000D0F3204445A902205145A900205145A200204D45BD0002205145E8E008D0F2A2D3
|
||||
:2044C00000AD9945206545E8BD9945D0F7203A45C953F00BC943D0F568A868AA682860A9FB
|
||||
:2044E000F0CD0002F0E7A2FF9AEE0002A900850CA904850DA004B10CD91F45D00A88300F43
|
||||
:20450000C001D0F288F0EFE60CD0E9E60DD0E5A001B10CC9F0F005CD0002D0EB6C0C00A9A7
|
||||
:20452000008D0002A200ADCB45206545E8BDCB45D0F7203A45C952D0F960AD04F0C9619009
|
||||
:2045400002295F60A90A206545A90DD018A920D014484A4A4A4A205C4568290F186930C95E
|
||||
:204560003A900269068D01F0600A0D537461727465642074657374696E670A0D000A0D7276
|
||||
:204580006567732059202058202041202050532050434C5043480A0D000A0D707265737332
|
||||
:2045A000204320746F20636F6E74696E7565206F72205320746F20736B69702063757272E6
|
||||
:2045C000656E7420746573740A0D000A0D416C6C20746573747320636F6D706C657465643D
|
||||
:1645E0002C207072657373205220746F207265706561740A0D001F
|
||||
:06FFFA0087438D4395438F
|
||||
:00040001FB
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,73 @@
|
|||
#!/usr/bin/env lua5.3
|
||||
|
||||
require 'std.strict'
|
||||
require 'lib' ("..")
|
||||
local _6502 = require '6502'
|
||||
|
||||
local cpu = _6502:new()
|
||||
|
||||
local mmu = { ram = {} }
|
||||
local mmu_metatable = { __index = function(t, key)
|
||||
return t.ram[key] or 0
|
||||
end,
|
||||
__newindex = function(t, k, v)
|
||||
if ((k == 0xBFF0 or
|
||||
k == 0xF001) and v ~= nil) then
|
||||
io.write(string.format("%c", v))
|
||||
end
|
||||
if (k == 0x200 and v ~= nil) then
|
||||
if (v == 240) then
|
||||
print("All tests successful!")
|
||||
os.exit(0)
|
||||
end
|
||||
print(string.format("Start test %d", v))
|
||||
end
|
||||
t.ram[k] = v
|
||||
end,
|
||||
}
|
||||
|
||||
setmetatable(mmu, mmu_metatable)
|
||||
cpu.ram = mmu
|
||||
|
||||
cpu:init()
|
||||
cpu:rst()
|
||||
|
||||
local f = assert(io.open("6502_functional_test_verbose.bin", "rb") or
|
||||
io.open("tests/6502_functional_test_verbose.bin", "rb"))
|
||||
|
||||
local data = f:read("*a")
|
||||
assert(#data == 65536)
|
||||
|
||||
local i = 0
|
||||
while (i < #data) do
|
||||
cpu:writemem(i, data:byte(i+1))
|
||||
i = i + 1
|
||||
end
|
||||
|
||||
cpu.pc = 0x400
|
||||
while (true) do
|
||||
if (cpu.pc == 0x453a) then
|
||||
print("Somehow wound up at input routine; exiting")
|
||||
os.exit(1)
|
||||
end
|
||||
|
||||
local o = cpu:readmem(cpu.pc)
|
||||
-- print(string.format("Executing opcode %s [0x%X]", cpu.opname[cpu.opcodes[o][1]], o))
|
||||
local cc = cpu:step()
|
||||
--[[ print(string.format("%d OP $%.2X #%d 0x%.2X X 0x%.2X Y 0x%.2X A 0x%.2X SP 0x%.2X S 0x%.2X %s %s %s %s %s %s %s %s [$11=]0x%.2X",
|
||||
cpu.cycles, cpu:readmem(cpu.pc), cpu:readmem(0x200),
|
||||
cpu.pc, cpu.X, cpu.Y, cpu.A, cpu.sp, cpu.F,
|
||||
((cpu.F & cpu.flags.N)~=0) and 'N' or 'n',
|
||||
((cpu.F & cpu.flags.V)~=0) and 'V' or 'v',
|
||||
((cpu.F & cpu.flags.UNK)~=0) and 'U' or '-',
|
||||
((cpu.F & cpu.flags.B)~=0) and 'B' or 'b',
|
||||
((cpu.F & cpu.flags.D)~=0) and 'D' or 'd',
|
||||
((cpu.F & cpu.flags.I)~=0) and 'I' or 'i',
|
||||
((cpu.F & cpu.flags.Z)~=0) and 'Z' or 'z',
|
||||
((cpu.F & cpu.flags.C)~=0) and 'C' or 'c',
|
||||
cpu:readmem(0x11)
|
||||
))
|
||||
--]]
|
||||
end
|
||||
|
||||
|
Binary file not shown.
|
@ -0,0 +1,302 @@
|
|||
:16000A00000000000000000000C38241007F001F71800FFF7F80BE
|
||||
:20002000FF0F8F8F10021102120213021402180105020602070208020D0147024802490209
|
||||
:1A0040004A024B024C024D024E0243024402450246020502060206010701E8
|
||||
:2002000000000000000000000000690060E90060C38241007F8080000286048200870583AA
|
||||
:200220000161412000E1C1A080810180028101800001000102818081807F80FF00010080AE
|
||||
:20024000800200001F71800FFF7F80FF0F8F8F00F11F00F0FFFFFFFFF0F00F00FF7F8002E8
|
||||
:030260008000809B
|
||||
:20040000D8A2FF9AA9008D0202AD0202C900D0FEA9018D0202A999A2FF9AA255DAA2AADA98
|
||||
:20042000ECFE01D0FEBAE0FDD0FE7AC0AAD0FE7AC055D0FECCFF01D0FEBAE0FFD0FEA0A549
|
||||
:200440005AA05A5ACCFE01D0FEBAE0FDD0FEFAE05AD0FEFAE0A5D0FEECFF01D0FEBAE0FF4E
|
||||
:20046000D0FEC999D0FEAD0202C901D0FEA9028D0202A0AAA9FF48A20128DA08E001D0FE63
|
||||
:200480006848C9FFD0FE28A90048A20028DA08E000D0FE6848C930D0FE28A9FF48A2FF284B
|
||||
:2004A000DA08E0FFD0FE6848C9FFD0FE28A90048A20128DA08E001D0FE6848C930D0FE2853
|
||||
:2004C000A9FF48A20028DA08E000D0FE6848C9FFD0FE28A90048A2FF28DA08E0FFD0FE68B3
|
||||
:2004E00048C930D0FE28A9FF48A20028FA08E0FFD0FE6848C9FDD0FE28A90048A2FF28FA3C
|
||||
:2005000008E000D0FE6848C932D0FE28A9FF48A2FE28FA08E001D0FE6848C97DD0FE28A986
|
||||
:200520000048A20028FA08E0FFD0FE6848C9B0D0FE28A9FF48A2FF28FA08E000D0FE6848C2
|
||||
:20054000C97FD0FE28A90048A2FE28FA08E001D0FE6848C930D0FE28C0AAD0FEAD0202C9A2
|
||||
:2005600002D0FEA9038D0202A255A9FF48A001285A08C001D0FE6848C9FFD0FE28A900486E
|
||||
:20058000A000285A08C000D0FE6848C930D0FE28A9FF48A0FF285A08C0FFD0FE6848C9FFE6
|
||||
:2005A000D0FE28A90048A001285A08C001D0FE6848C930D0FE28A9FF48A000285A08C00021
|
||||
:2005C000D0FE6848C9FFD0FE28A90048A0FF285A08C0FFD0FE6848C930D0FE28A9FF48A009
|
||||
:2005E00000287A08C0FFD0FE6848C9FDD0FE28A90048A0FF287A08C000D0FE6848C932D015
|
||||
:20060000FE28A9FF48A0FE287A08C001D0FE6848C97DD0FE28A90048A000287A08C0FFD037
|
||||
:20062000FE6848C9B0D0FE28A9FF48A0FF287A08C000D0FE6848C97FD0FE28A90048A0FE59
|
||||
:20064000287A08C001D0FE6848C930D0FE28E055D0FEAD0202C903D0FEA9048D0202A28113
|
||||
:20066000A07EA9FF48A9002880034C6A0608C900D0FE6848C9FFD0FE28A90048A9FF28800E
|
||||
:20068000034C810608C9FFD0FE6848C930D0FE28E081D0FEC07ED0FEAD0202C904D0FEA917
|
||||
:2006A000058D0202A0008061C001D0FEC88053C003D0FEC88045C005D0FEC8A0008004C894
|
||||
:2006C000C8C8C88003C8C8C8C88002C8C8C8C88001C8C8C8C88000C8C8C8C8C00AD0FE8024
|
||||
:2006E0001288888888800E88888880F5888880F78880F980FBC000D0FE8015C004D0FEC8AD
|
||||
:2007000080B4C002D0FEC880A6C000D0FEC88098AD0202C905D0FEA9068D0202A211A022B7
|
||||
:20072000A901850CA90048A933280F0C068F0C064C30074C330708C933D0FE6848C930D073
|
||||
:20074000FE28A9FF48A9CC280F0C068F0C064C4E074C510708C9CCD0FE6848C9FFD0FE2806
|
||||
:20076000A50CC901D0FEA9FE850CA90048A933288F0C060F0C064C76074C790708C933D0D8
|
||||
:20078000FE6848C930D0FE28A9FF48A9CC288F0C060F0C064C94074C970708C9CCD0FE68C9
|
||||
:2007A00048C9FFD0FE28A50CC9FED0FEA902850CA90048A933281F0C069F0C064CBC074C7F
|
||||
:2007C000BF0708C933D0FE6848C930D0FE28A9FF48A9CC281F0C069F0C064CDA074CDD0716
|
||||
:2007E00008C9CCD0FE6848C9FFD0FE28A50CC902D0FEA9FD850CA90048A933289F0C061FDA
|
||||
:200800000C064C02084C050808C933D0FE6848C930D0FE28A9FF48A9CC289F0C061F0C0637
|
||||
:200820004C20084C230808C9CCD0FE6848C9FFD0FE28A50CC9FDD0FEA904850CA90048A9D7
|
||||
:2008400033282F0C06AF0C064C48084C4B0808C933D0FE6848C930D0FE28A9FF48A9CC2802
|
||||
:200860002F0C06AF0C064C66084C690808C9CCD0FE6848C9FFD0FE28A50CC904D0FEA9FB36
|
||||
:20088000850CA90048A93328AF0C062F0C064C8E084C910808C933D0FE6848C930D0FE2898
|
||||
:2008A000A9FF48A9CC28AF0C062F0C064CAC084CAF0808C9CCD0FE6848C9FFD0FE28A50C1C
|
||||
:2008C000C9FBD0FEA908850CA90048A933283F0C06BF0C064CD4084CD70808C933D0FE68A0
|
||||
:2008E00048C930D0FE28A9FF48A9CC283F0C06BF0C064CF2084CF50808C9CCD0FE6848C99F
|
||||
:20090000FFD0FE28A50CC908D0FEA9F7850CA90048A93328BF0C063F0C064C1A094C1D0969
|
||||
:2009200008C933D0FE6848C930D0FE28A9FF48A9CC28BF0C063F0C064C38094C3B0908C9A9
|
||||
:20094000CCD0FE6848C9FFD0FE28A50CC9F7D0FEA910850CA90048A933284F0C06CF0C06CF
|
||||
:200960004C60094C630908C933D0FE6848C930D0FE28A9FF48A9CC284F0C06CF0C064C7E00
|
||||
:20098000094C810908C9CCD0FE6848C9FFD0FE28A50CC910D0FEA9EF850CA90048A9332829
|
||||
:2009A000CF0C064F0C064CA6094CA90908C933D0FE6848C930D0FE28A9FF48A9CC28CF0C23
|
||||
:2009C000064F0C064CC4094CC70908C9CCD0FE6848C9FFD0FE28A50CC9EFD0FEA920850C11
|
||||
:2009E000A90048A933285F0C06DF0C064CEC094CEF0908C933D0FE6848C930D0FE28A9FF02
|
||||
:200A000048A9CC285F0C06DF0C064C0A0A4C0D0A08C9CCD0FE6848C9FFD0FE28A50CC92059
|
||||
:200A2000D0FEA9DF850CA90048A93328DF0C065F0C064C320A4C350A08C933D0FE6848C91A
|
||||
:200A400030D0FE28A9FF48A9CC28DF0C065F0C064C500A4C530A08C9CCD0FE6848C9FFD07F
|
||||
:200A6000FE28A50CC9DFD0FEA940850CA90048A933286F0C06EF0C064C780A4C7B0A08C9C8
|
||||
:200A800033D0FE6848C930D0FE28A9FF48A9CC286F0C06EF0C064C960A4C990A08C9CCD05F
|
||||
:200AA000FE6848C9FFD0FE28A50CC940D0FEA9BF850CA90048A93328EF0C066F0C064CBEC8
|
||||
:200AC0000A4CC10A08C933D0FE6848C930D0FE28A9FF48A9CC28EF0C066F0C064CDC0A4CF7
|
||||
:200AE000DF0A08C9CCD0FE6848C9FFD0FE28A50CC9BFD0FEA980850CA90048A933287F0CF3
|
||||
:200B000006FF0C064C040B4C070B08C933D0FE6848C930D0FE28A9FF48A9CC287F0C06FF77
|
||||
:200B20000C064C220B4C250B08C9CCD0FE6848C9FFD0FE28A50CC980D0FEA97F850CA900AB
|
||||
:200B400048A93328FF0C067F0C064C4A0B4C4D0B08C933D0FE6848C930D0FE28A9FF48A958
|
||||
:200B6000CC28FF0C067F0C064C680B4C6B0B08C9CCD0FE6848C9FFD0FE28A50CC97FD0FEBE
|
||||
:200B8000E011D0FEC022D0FEAD0202C906D0FEA9078D0202A900850CA9000F0C0249011FEE
|
||||
:200BA0000C0249022F0C0249043F0C0249084F0C0249105F0C0249206F0C0249407F0C0295
|
||||
:200BC0004980450CD0FEA9FF8F0C0249019F0C024902AF0C024904BF0C024908CF0C024958
|
||||
:200BE00010DF0C024920EF0C024940FF0C024980450CD0FEE60CD0A0AD0202C907D0FEA9BA
|
||||
:200C0000088D0202A042A20202C8CACAD0FEA90048A9FD2802EAEA08C9FDD0FE6848C930AF
|
||||
:200C2000D0FE28A9FF48A9A82802EAEA08C9A8D0FE6848C9FFD0FE28C042D0FEE000D0FE4C
|
||||
:200C4000A042A20222C8CACAD0FEA90048A9DD2822EAEA08C9DDD0FE6848C930D0FE28A969
|
||||
:200C6000FF48A9882822EAEA08C988D0FE6848C9FFD0FE28C042D0FEE000D0FEA042A20245
|
||||
:200C800042C8CACAD0FEA90048A9BD2842EAEA08C9BDD0FE6848C930D0FE28A9FF48A96857
|
||||
:200CA0002842EAEA08C968D0FE6848C9FFD0FE28C042D0FEE000D0FEA042A20262C8CACABF
|
||||
:200CC000D0FEA90048A99D2862EAEA08C99DD0FE6848C930D0FE28A9FF48A9482862EAEA97
|
||||
:200CE00008C948D0FE6848C9FFD0FE28C042D0FEE000D0FEA042A20282C8CACAD0FEA90046
|
||||
:200D000048A97D2882EAEA08C97DD0FE6848C930D0FE28A9FF48A9282882EAEA08C928D024
|
||||
:200D2000FE6848C9FFD0FE28C042D0FEE000D0FEA042A202C2C8CACAD0FEA90048A93D2858
|
||||
:200D4000C2EAEA08C93DD0FE6848C930D0FE28A9FF48A9E828C2EAEA08C9E8D0FE6848C943
|
||||
:200D6000FFD0FE28C042D0FEE000D0FEA042A202E2C8CACAD0FEA90048A91D28E2EAEA08D1
|
||||
:200D8000C91DD0FE6848C930D0FE28A9FF48A9C828E2EAEA08C9C8D0FE6848C9FFD0FE28EC
|
||||
:200DA000C042D0FEE000D0FEA042A20244C8CACAD0FEA90048A9BB2844EAEA08C9BBD0FED2
|
||||
:200DC0006848C930D0FE28A9FF48A9662844EAEA08C966D0FE6848C9FFD0FE28C042D0FEF2
|
||||
:200DE000E000D0FEA042A20254C8CACAD0FEA90048A9AB2854EAEA08C9ABD0FE6848C930B9
|
||||
:200E0000D0FE28A9FF48A9562854EAEA08C956D0FE6848C9FFD0FE28C042D0FEE000D0FEBC
|
||||
:200E2000A042A202D4C8CACAD0FEA90048A92B28D4EAEA08C92BD0FE6848C930D0FE28A987
|
||||
:200E4000FF48A9D628D4EAEA08C9D6D0FE6848C9FFD0FE28C042D0FEE000D0FEA042A20215
|
||||
:200E6000F4C8CACAD0FEA90048A90B28F4EAEA08C90BD0FE6848C930D0FE28A9FF48A9B627
|
||||
:200E800028F4EAEA08C9B6D0FE6848C9FFD0FE28C042D0FEE000D0FEA042A2015CC8C8CAE6
|
||||
:200EA000D0FEA90048A9A3285CEAEA08C9A3D0FE6848C930D0FE28A9FF48A94E285CEAEAAF
|
||||
:200EC00008C94ED0FE6848C9FFD0FE28C042D0FEE000D0FEA042A201DCC8C8CAD0FEA90007
|
||||
:200EE00048A92328DCEAEA08C923D0FE6848C930D0FE28A9FF48A9CE28DCEAEA08C9CED0F7
|
||||
:200F0000FE6848C9FFD0FE28C042D0FEE000D0FEA042A201FCC8C8CAD0FEA90048A9032879
|
||||
:200F2000FCEAEA08C903D0FE6848C930D0FE28A9FF48A9AE28FCEAEA08C9AED0FE6848C99B
|
||||
:200F4000FFD0FE28C042D0FEE000D0FEA042A20303CACACAD0FEA90048A9FC2803EAEA08CB
|
||||
:200F6000C9FCD0FE6848C930D0FE28A9FF48A9A72803EAEA08C9A7D0FE6848C9FFD0FE284C
|
||||
:200F8000C042D0FEE000D0FEA042A20313CACACAD0FEA90048A9EC2813EAEA08C9ECD0FEED
|
||||
:200FA0006848C930D0FE28A9FF48A9972813EAEA08C997D0FE6848C9FFD0FE28C042D0FEDF
|
||||
:200FC000E000D0FEA042A20323CACACAD0FEA90048A9DC2823EAEA08C9DCD0FE6848C930D4
|
||||
:200FE000D0FE28A9FF48A9872823EAEA08C987D0FE6848C9FFD0FE28C042D0FEE000D0FEAA
|
||||
:20100000A042A20333CACACAD0FEA90048A9CC2833EAEA08C9CCD0FE6848C930D0FE28A9A2
|
||||
:20102000FF48A9772833EAEA08C977D0FE6848C9FFD0FE28C042D0FEE000D0FEA042A20391
|
||||
:2010400043CACACAD0FEA90048A9BC2843EAEA08C9BCD0FE6848C930D0FE28A9FF48A96792
|
||||
:201060002843EAEA08C967D0FE6848C9FFD0FE28C042D0FEE000D0FEA042A20353CACACA07
|
||||
:20108000D0FEA90048A9AC2853EAEA08C9ACD0FE6848C930D0FE28A9FF48A9572853EAEAC4
|
||||
:2010A00008C957D0FE6848C9FFD0FE28C042D0FEE000D0FEA042A20363CACACAD0FEA9008F
|
||||
:2010C00048A99C2863EAEA08C99CD0FE6848C930D0FE28A9FF48A9472863EAEA08C947D023
|
||||
:2010E000FE6848C9FFD0FE28C042D0FEE000D0FEA042A20373CACACAD0FEA90048A98C2892
|
||||
:2011000073EAEA08C98CD0FE6848C930D0FE28A9FF48A9372873EAEA08C937D0FE6848C930
|
||||
:20112000FFD0FE28C042D0FEE000D0FEA042A20383CACACAD0FEA90048A97C2883EAEA0869
|
||||
:20114000C97CD0FE6848C930D0FE28A9FF48A9272883EAEA08C927D0FE6848C9FFD0FE286A
|
||||
:20116000C042D0FEE000D0FEA042A20393CACACAD0FEA90048A96C2893EAEA08C96CD0FE0B
|
||||
:201180006848C930D0FE28A9FF48A9172893EAEA08C917D0FE6848C9FFD0FE28C042D0FE7D
|
||||
:2011A000E000D0FEA042A203A3CACACAD0FEA90048A95C28A3EAEA08C95CD0FE6848C930F2
|
||||
:2011C000D0FE28A9FF48A90728A3EAEA08C907D0FE6848C9FFD0FE28C042D0FEE000D0FE48
|
||||
:2011E000A042A203B3CACACAD0FEA90048A94C28B3EAEA08C94CD0FE6848C930D0FE28A9C1
|
||||
:20120000FF48A9F728B3EAEA08C9F7D0FE6848C9FFD0FE28C042D0FEE000D0FEA042A2032F
|
||||
:20122000C3CACACAD0FEA90048A93C28C3EAEA08C93CD0FE6848C930D0FE28A9FF48A9E730
|
||||
:2012400028C3EAEA08C9E7D0FE6848C9FFD0FE28C042D0FEE000D0FEA042A203D3CACACAA5
|
||||
:20126000D0FEA90048A92C28D3EAEA08C92CD0FE6848C930D0FE28A9FF48A9D728D3EAEA62
|
||||
:2012800008C9D7D0FE6848C9FFD0FE28C042D0FEE000D0FEA042A203E3CACACAD0FEA900AD
|
||||
:2012A00048A91C28E3EAEA08C91CD0FE6848C930D0FE28A9FF48A9C728E3EAEA08C9C7D041
|
||||
:2012C000FE6848C9FFD0FE28C042D0FEE000D0FEA042A203F3CACACAD0FEA90048A90C28B0
|
||||
:2012E000F3EAEA08C90CD0FE6848C930D0FE28A9FF48A9B728F3EAEA08C9B7D0FE6848C9CF
|
||||
:20130000FFD0FE28C042D0FEE000D0FEA042A2030BCACACAD0FEA90048A9F4280BEAEA08FF
|
||||
:20132000C9F4D0FE6848C930D0FE28A9FF48A99F280BEAEA08C99FD0FE6848C9FFD0FE2898
|
||||
:20134000C042D0FEE000D0FEA042A2031BCACACAD0FEA90048A9E4281BEAEA08C9E4D0FE29
|
||||
:201360006848C930D0FE28A9FF48A98F281BEAEA08C98FD0FE6848C9FFD0FE28C042D0FE23
|
||||
:20138000E000D0FEA042A2032BCACACAD0FEA90048A9D4282BEAEA08C9D4D0FE6848C93010
|
||||
:2013A000D0FE28A9FF48A97F282BEAEA08C97FD0FE6848C9FFD0FE28C042D0FEE000D0FEEE
|
||||
:2013C000A042A2033BCACACAD0FEA90048A9C4283BEAEA08C9C4D0FE6848C930D0FE28A9DF
|
||||
:2013E000FF48A96F283BEAEA08C96FD0FE6848C9FFD0FE28C042D0FEE000D0FEA042A203D6
|
||||
:201400004BCACACAD0FEA90048A9B4284BEAEA08C9B4D0FE6848C930D0FE28A9FF48A95FD6
|
||||
:20142000284BEAEA08C95FD0FE6848C9FFD0FE28C042D0FEE000D0FEA042A2035BCACACA3B
|
||||
:20144000D0FEA90048A9A4285BEAEA08C9A4D0FE6848C930D0FE28A9FF48A94F285BEAEA08
|
||||
:2014600008C94FD0FE6848C9FFD0FE28C042D0FEE000D0FEA042A2036BCACACAD0FEA900CB
|
||||
:2014800048A994286BEAEA08C994D0FE6848C930D0FE28A9FF48A93F286BEAEA08C93FD06F
|
||||
:2014A000FE6848C9FFD0FE28C042D0FEE000D0FEA042A2037BCACACAD0FEA90048A98428CE
|
||||
:2014C0007BEAEA08C984D0FE6848C930D0FE28A9FF48A92F287BEAEA08C92FD0FE6848C975
|
||||
:2014E000FFD0FE28C042D0FEE000D0FEA042A2038BCACACAD0FEA90048A974288BEAEA089E
|
||||
:20150000C974D0FE6848C930D0FE28A9FF48A91F288BEAEA08C91FD0FE6848C9FFD0FE28B6
|
||||
:20152000C042D0FEE000D0FEA042A2039BCACACAD0FEA90048A964289BEAEA08C964D0FE47
|
||||
:201540006848C930D0FE28A9FF48A90F289BEAEA08C90FD0FE6848C9FFD0FE28C042D0FEC1
|
||||
:20156000E000D0FEA042A203ABCACACAD0FEA90048A95428ABEAEA08C954D0FE6848C9302E
|
||||
:20158000D0FE28A9FF48A9FF28ABEAEA08C9FFD0FE6848C9FFD0FE28C042D0FEE000D0FE8C
|
||||
:2015A000A042A203BBCACACAD0FEA90048A94428BBEAEA08C944D0FE6848C930D0FE28A9FD
|
||||
:2015C000FF48A9EF28BBEAEA08C9EFD0FE6848C9FFD0FE28C042D0FEE000D0FEA042A20374
|
||||
:2015E000EBCACACAD0FEA90048A91428EBEAEA08C914D0FE6848C930D0FE28A9FF48A9BF95
|
||||
:2016000028EBEAEA08C9BFD0FE6848C9FFD0FE28C042D0FEE000D0FEA042A203FBCACACAB9
|
||||
:20162000D0FEA90048A90428FBEAEA08C904D0FE6848C930D0FE28A9FF48A9AF28FBEAEAC6
|
||||
:2016400008C9AFD0FE6848C9FFD0FE28C042D0FEE000D0FEAD0202C908D0FEA9098D0202BD
|
||||
:20166000A203BD8B269DFD02CA10F7A9288D0002A9004828A949A24EA0446CFD02EAD0FE88
|
||||
:2016800088880888888828F0FE10FE90FE50FEC9E3D0FEE04FD0FEC03ED0FEBAE0FFD0FEF0
|
||||
:2016A000AD0202C909D0FEA90A8D0202A20BBDC7269DF902CA10F7A9278D0002A90048285D
|
||||
:2016C000A958A204A0497CF902EAD0FE88880888888828F0FE10FE90FE50FEC9F2D0FEE032
|
||||
:2016E00006D0FEC043D0FEBAE0FFD0FEA9088D0003A9178D0103A9058D0002A9178D0102BF
|
||||
:20170000A2FF7C01024C0517AD0202C90AD0FEA90B8D0202A90048A942A252A04B2800883F
|
||||
:2017200008888888C9E8D0FEE053D0FEC045D0FE68C930D0FEBAE0FFD0FEA9FF48A9BDA228
|
||||
:20174000ADA0B428008808888888C917D0FEE0AED0FEC0AED0FE68C9FFD0FEBAE0FFD0FE8D
|
||||
:20176000AD0202C90BD0FEA90C8D0202A2ACA0DCA9FF48A9FE281A4808C9FFD0FE6848C9CE
|
||||
:20178000FDD0FE28681A4808C900D0FE6848C97FD0FE28681A4808C901D0FE6848C97DD0CF
|
||||
:2017A000FE28683A4808C900D0FE6848C97FD0FE28683A4808C9FFD0FE6848C9FDD0FE2898
|
||||
:2017C000683AA90048A9FE281A4808C9FFD0FE6848C9B0D0FE28681A4808C900D0FE68486F
|
||||
:2017E000C932D0FE28681A4808C901D0FE6848C930D0FE28683A4808C900D0FE6848C932BB
|
||||
:20180000D0FE28683A4808C9FFD0FE6848C9B0D0FE2868E0ACD0FEC0DCD0FEBAE0FFD0FE98
|
||||
:20182000AD0202C90CD0FEA90D8D0202A299A066A9004828B2240849C32892300849C3C902
|
||||
:20184000C3D0FE684930CD1502D0FEA9004828B2260849C32892320849C3C982D0FE684995
|
||||
:2018600030CD1602D0FEA9004828B2280849C32892340849C3C941D0FE684930CD1702D00D
|
||||
:20188000FEA9004828B22A0849C32892360849C3C900D0FE684930CD1802D0FEE099D0FEC9
|
||||
:2018A000C066D0FEA003A200B9050249C3D91002D0FE8A9905028810EFA299A066A9FF4888
|
||||
:2018C00028B2240849C32892300849C3C9C3D0FE68497DCD1502D0FEA9FF4828B22608497D
|
||||
:2018E000C32892320849C3C982D0FE68497DCD1602D0FEA9FF4828B2280849C3289234082F
|
||||
:2019000049C3C941D0FE68497DCD1702D0FEA9FF4828B22A0849C32892360849C3C900D05C
|
||||
:20192000FE68497DCD1802D0FEE099D0FEC066D0FEA003A200B9050249C3D91002D0FE8A37
|
||||
:201940009905028810EFBAE0FFD0FEAD0202C90DD0FEA90E8D0202A07BA204A907950C0A40
|
||||
:20196000CA10FAA204A9FF48A95528640C640D640E640F641008C955D0FE6848C9FFD0FE63
|
||||
:2019800028B50CD0FECA10F9A204A907950C0ACA10FAA204A90048A9AA28640C640D640E83
|
||||
:2019A000640F641008C9AAD0FE6848C930D0FE28B50CD0FECA10F9A204A9079D05020ACA28
|
||||
:2019C00010F9A204A9FF48A955289C05029C06029C07029C08029C090208C955D0FE684865
|
||||
:2019E000C9FFD0FE28BD0502D0FECA10F8A204A9079D05020ACA10F9A204A90048A9AA28DC
|
||||
:201A00009C05029C06029C07029C08029C090208C9AAD0FE6848C930D0FE28BD0502D0FE13
|
||||
:201A2000CA10F8A204A907950C0ACA10FAA204A9FF48A95528740C08C955D0FE6848C9FF57
|
||||
:201A4000D0FE28CA10E9A204B50CD0FECA10F9A204A907950C0ACA10FAA204A90048A9AA06
|
||||
:201A600028740C08C9AAD0FE6848C930D0FE28CA10E9A204B50CD0FECA10F9A204A9079D18
|
||||
:201A800005020ACA10F9A204A9FF48A955289E050208C955D0FE6848C9FFD0FE28CA10E8DD
|
||||
:201AA000A204BD0502D0FECA10F8A204A9079D05020ACA10F9A204A90048A9AA289E05028E
|
||||
:201AC00008C9AAD0FE6848C930D0FE28CA10E8A204BD0502D0FECA10F8C07BD0FEBAE0FFB0
|
||||
:201AE000D0FEAD0202C90ED0FEA90F8D0202A042A203A90048A9FF28341308C9FFD0FE68E4
|
||||
:201B000048C932D0FE28CAA90048A90128341308C901D0FE6848C970D0FE28CAA90048A9D5
|
||||
:201B20000128341308C901D0FE6848C9B2D0FE28CAA90048A90128341308C901D0FE684850
|
||||
:201B4000C9F0D0FE28A9FF48A90128341308C901D0FE6848C9FDD0FE28E8A9FF48A9012817
|
||||
:201B6000341308C901D0FE6848C9BFD0FE28E8A9FF48A90128341308C901D0FE6848C97DC9
|
||||
:201B8000D0FE28E8A9FF48A9FF28341308C9FFD0FE6848C93FD0FE28A90048A9FF283C1007
|
||||
:201BA0000208C9FFD0FE6848C932D0FE28CAA90048A901283C100208C901D0FE6848C97080
|
||||
:201BC000D0FE28CAA90048A901283C100208C901D0FE6848C9B2D0FE28CAA90048A90128E6
|
||||
:201BE0003C100208C901D0FE6848C9F0D0FE28A9FF48A901283C100208C901D0FE6848C96F
|
||||
:201C0000FDD0FE28E8A9FF48A901283C100208C901D0FE6848C9BFD0FE28E8A9FF48A90189
|
||||
:201C2000283C100208C901D0FE6848C97DD0FE28E8A9FF48A9FF283C100208C9FFD0FE68A6
|
||||
:201C400048C93FD0FE28A90048A9FF28890008C9FFD0FE6848C932D0FE28CAA90048A90150
|
||||
:201C600028894108C901D0FE6848C930D0FE28CAA90048A90128898208C901D0FE6848C982
|
||||
:201C800032D0FE28CAA90048A9012889C308C901D0FE6848C930D0FE28A9FF48A9012889B9
|
||||
:201CA000C308C901D0FE6848C9FDD0FE28E8A9FF48A90128898208C901D0FE6848C9FFD0B8
|
||||
:201CC000FE28E8A9FF48A90128894108C901D0FE6848C9FDD0FE28E8A9FF48A9FF2889002D
|
||||
:201CE00008C9FFD0FE6848C9FFD0FE28E003D0FEC042D0FEBAE0FFD0FEAD0202C90FD0FE99
|
||||
:201D0000A9108D0202A2C0A000640D98250D08682902850E9849FF050D49FF850F98050D96
|
||||
:201D20008510840CA9FF48A50D28140C08C50DD0FE68480902C9FFD0FE682902C50ED0FE67
|
||||
:201D4000A50FC50CD0FE8C0502A9FF48A50D281C050208C50DD0FE68480902C9FFD0FE684F
|
||||
:201D60002902C50ED0FEA50FC50CD0FE840CA90048A50D28140C08C50DD0FE68480902C99D
|
||||
:201D800032D0FE682902C50ED0FEA50FC50CD0FE8C0502A90048A50D281C050208C50DD091
|
||||
:201DA000FE68480902C932D0FE682902C50ED0FEA50FC50CD0FE840CA9FF48A50D28040CB0
|
||||
:201DC00008C50DD0FE68480902C9FFD0FE682902C50ED0FEA510C50CD0FE8C0502A9FF48FF
|
||||
:201DE000A50D280C050208C50DD0FE68480902C9FFD0FE682902C50ED0FEA510C50CD0FE75
|
||||
:201E0000840CA90048A50D28040C08C50DD0FE68480902C932D0FE682902C50ED0FEA51042
|
||||
:201E2000C50CD0FE8C0502A90048A50D280C050208C50DD0FE68480902C932D0FE682902D3
|
||||
:201E4000C50ED0FEA510C50CD0FEC8D004E60DF0034C0B1DE0C0D0FEBAE0FFD0FEAD020211
|
||||
:201E6000C910D0FEA9118D0202A2BAA0D0A9FF850CA90048A9A528070C08C9A5D0FE6848FD
|
||||
:201E8000C930D0FE28A50CC9FED0FEA901850CA9FF48A95A28070C08C95AD0FE6848C9FF33
|
||||
:201EA000D0FE28A50CD0FEA9FF850CA90048A9A528170C08C9A5D0FE6848C930D0FE28A562
|
||||
:201EC0000CC9FDD0FEA902850CA9FF48A95A28170C08C95AD0FE6848C9FFD0FE28A50CD000
|
||||
:201EE000FEA9FF850CA90048A9A528270C08C9A5D0FE6848C930D0FE28A50CC9FBD0FEA942
|
||||
:201F000004850CA9FF48A95A28270C08C95AD0FE6848C9FFD0FE28A50CD0FEA9FF850CA916
|
||||
:201F20000048A9A528370C08C9A5D0FE6848C930D0FE28A50CC9F7D0FEA908850CA9FF484C
|
||||
:201F4000A95A28370C08C95AD0FE6848C9FFD0FE28A50CD0FEA9FF850CA90048A9A5284746
|
||||
:201F60000C08C9A5D0FE6848C930D0FE28A50CC9EFD0FEA910850CA9FF48A95A28470C087B
|
||||
:201F8000C95AD0FE6848C9FFD0FE28A50CD0FEA9FF850CA90048A9A528570C08C9A5D0FE1C
|
||||
:201FA0006848C930D0FE28A50CC9DFD0FEA920850CA9FF48A95A28570C08C95AD0FE6848DA
|
||||
:201FC000C9FFD0FE28A50CD0FEA9FF850CA90048A9A528670C08C9A5D0FE6848C930D0FEF6
|
||||
:201FE00028A50CC9BFD0FEA940850CA9FF48A95A28670C08C95AD0FE6848C9FFD0FE28A59E
|
||||
:202000000CD0FEA9FF850CA90048A9A528770C08C9A5D0FE6848C930D0FE28A50CC97FD017
|
||||
:20202000FEA980850CA9FF48A95A28770C08C95AD0FE6848C9FFD0FE28A50CD0FEA9FE8538
|
||||
:202040000CA90048A9A528870C08C9A5D0FE6848C930D0FE28A50CC9FFD0FEA900850CA96D
|
||||
:20206000FF48A95A28870C08C95AD0FE6848C9FFD0FE28A50CC901D0FEA9FD850CA9004883
|
||||
:20208000A9A528970C08C9A5D0FE6848C930D0FE28A50CC9FFD0FEA900850CA9FF48A95AD0
|
||||
:2020A00028970C08C95AD0FE6848C9FFD0FE28A50CC902D0FEA9FB850CA90048A9A528A761
|
||||
:2020C0000C08C9A5D0FE6848C930D0FE28A50CC9FFD0FEA900850CA9FF48A95A28A70C08BA
|
||||
:2020E000C95AD0FE6848C9FFD0FE28A50CC904D0FEA9F7850CA90048A9A528B70C08C9A564
|
||||
:20210000D0FE6848C930D0FE28A50CC9FFD0FEA900850CA9FF48A95A28B70C08C95AD0FEFA
|
||||
:202120006848C9FFD0FE28A50CC908D0FEA9EF850CA90048A9A528C70C08C9A5D0FE68488A
|
||||
:20214000C930D0FE28A50CC9FFD0FEA900850CA9FF48A95A28C70C08C95AD0FE6848C9FFB0
|
||||
:20216000D0FE28A50CC910D0FEA9DF850CA90048A9A528D70C08C9A5D0FE6848C930D0FEF3
|
||||
:2021800028A50CC9FFD0FEA900850CA9FF48A95A28D70C08C95AD0FE6848C9FFD0FE28A58C
|
||||
:2021A0000CC920D0FEA9BF850CA90048A9A528E70C08C9A5D0FE6848C930D0FE28A50CC9AC
|
||||
:2021C000FFD0FEA900850CA9FF48A95A28E70C08C95AD0FE6848C9FFD0FE28A50CC940D0F9
|
||||
:2021E000FEA97F850CA90048A9A528F70C08C9A5D0FE6848C930D0FE28A50CC9FFD0FEA9EB
|
||||
:2022000000850CA9FF48A95A28F70C08C95AD0FE6848C9FFD0FE28A50CC980D0FEE0BAD076
|
||||
:20222000FEC0D0D0FEBAE0FFD0FEAD0202C911D0FEA9128D0202A2DEA0ADA90048A9802827
|
||||
:20224000D22C08C980D0FE6848C931D0FE28A90048A97F28D22C08C97FD0FE6848C933D0E8
|
||||
:20226000FE28A90048A97E28D22C08C97ED0FE6848C9B0D0FE28A9FF48A98028D22C08C9AE
|
||||
:2022800080D0FE6848C97DD0FE28A9FF48A97F28D22C08C97FD0FE6848C97FD0FE28A9FF12
|
||||
:2022A00048A97E28D22C08C97ED0FE6848C9FCD0FE28E0DED0FEC0ADD0FEBAE0FFD0FEAD26
|
||||
:2022C0000202C912D0FEA9138D0202A242A000A53A850CA53B850DA90048B9530228320C39
|
||||
:2022E00008D95B02D0FE684930D95F02D0FEE60CC8C004D0E288C60CA9FF48B95302283207
|
||||
:202300000C08D95B02D0FE68497DD95F02D0FEC60C8810E4A000A542850CA543850DA900E6
|
||||
:2023200048B9570228520C08D95B02D0FE684930D95F02D0FEE60CC8C004D0E288C60CA995
|
||||
:20234000FF48B9570228520C08D95B02D0FE68497DD95F02D0FEC60C8810E4A000A54A85FA
|
||||
:202360000CA54B850DA90048B94F0228120C08D95B02D0FE684930D95F02D0FEE60CC8C01F
|
||||
:2023800004D0E288C60CA9FF48B94F0228120C08D95B02D0FE68497DD95F02D0FEC60C8851
|
||||
:2023A00010E4E042D0FEBAE0FFD0FEAD0202C913D0FEA9148D020258D8A20EA0FFA900857C
|
||||
:2023C0000C850D850E8D0502850F8510A9FF85128D0602A902851118204E26E60CE60F085F
|
||||
:2023E0000868298228D002E6100510851138204E26C60CE60DD0E0A9008510EE0502E60EBF
|
||||
:20240000086829828511C612CE0602A50E850FD0C6E00ED0FEC0FFD0FEBAE0FFD0FEAD0221
|
||||
:2024200002C914D0FEA9158D0202F8A20EA0FFA999850D850E8D0502850FA901850C8510FA
|
||||
:20244000A9818511A90085128D06023820F724C60CA50FD008C610A999850FD012290FD080
|
||||
:202460000CC60FC60FC60FC60FC60FC60FC60F08682982051085111820F724E60CA50DF0D0
|
||||
:2024800015290FD00CC60DC60DC60DC60DC60DC60DC60D4C4B24A999850DA50EF039290FAB
|
||||
:2024A000D018C60EC60EC60EC60EC60EC60EE612E612E612E612E612E612C60EE612A512E9
|
||||
:2024C0008D0602A50E8D0502850F0868298209018511E6104C4B24E00ED0FEC0FFD0FEBA1D
|
||||
:2024E000E0FFD0FED8AD0202C915D0FEA9F08D02024CF1244C000408A50D650E08C50FD046
|
||||
:20250000FE682983C511D0FE2808A50DE51208C50FD0FE682983C511D0FE2808A50D6D0576
|
||||
:202520000208C50FD0FE682983C511D0FE2808A50DED060208C50FD0FE682983C511D0FEFE
|
||||
:202540002808A50E8D0B02A50D200A0208C50FD0FE682983C511D0FE2808A5128D0E02A595
|
||||
:202560000D200D0208C50FD0FE682983C511D0FE2808A50D750008C50FD0FE682983C511D2
|
||||
:20258000D0FE2808A50DF50408C50FD0FE682983C511D0FE2808A50D7DF70108C50FD0FE2F
|
||||
:2025A000682983C511D0FE2808A50DFDF80108C50FD0FE682983C511D0FE2808A50D7906C8
|
||||
:2025C0000108C50FD0FE682983C511D0FE2808A50DF9070108C50FD0FE682983C511D0FE53
|
||||
:2025E0002808A50D614408C50FD0FE682983C511D0FE2808A50DE14608C50FD0FE6829832B
|
||||
:20260000C511D0FE2808A50D715608C50FD0FE682983C511D0FE2808A50DF15808C50FD034
|
||||
:20262000FE682983C511D0FE2808A50D725208C50FD0FE682983C511D0FE2808A50DF254B4
|
||||
:2026400008C50FD0FE682983C511D0FE2860A511298348A50D450E300AA50D450F10046825
|
||||
:2026600009404868851108A50D725208C50FD0FE6829C3C511D0FE2808A50DF25408C50FA7
|
||||
:20268000D0FE6829C3C511D0FE28609126821688880888888828B0FE70FE30FEF0FEC9497B
|
||||
:2026A000D0FEE04ED0FEC041D0FE488A48BAE0FDD0FE68AAA9FF482868E849AA6CFF02EA3E
|
||||
:2026C000EA4CC1264C00040E270E27D526CE160E270E2788880888888828B0FE70FE30FEB8
|
||||
:2026E000F0FEC958D0FEE004D0FEC046D0FE488A48BAE0FDD0FE68AAA9FF482868E8E8494D
|
||||
:20270000AA7CF902EAEA4C06274C0004EAEAEAEA4C10274C00044C16274C00044C1C274CCC
|
||||
:202720000004888808888888C9BDF042C942D0FEE052D0FEC048D0FE850A860BBABD0201E4
|
||||
:20274000C930D0FE68C934D0FEBAE0FCD0FEADFF01C917D0FEADFE01C920D0FEA9FF48A6C7
|
||||
:202760000BE8A50A49AA28404C68274C0004E0ADD0FEC0B1D0FE850A860BBABD0201C9FF35
|
||||
:20278000D0FE68C9F7D0FEBAE0FCD0FEADFF01C917D0FEADFE01C946D0FEA90448A60BE89F
|
||||
:2027A000A50A49AA28404CA6274C00040000000000000000000000000000000000000000A6
|
||||
:2027C000000000000000000000000000EAEAEAEA4CD027000000000000000000000000000E
|
||||
:2027E0000000000000000000000000000000000000000000000000000000000000000000D9
|
||||
:202800000000000000000000000000000000000000000000000000000000000000000000B8
|
||||
:20282000000000000000000000000000000000000000000000000000000000000000000098
|
||||
:20284000000000000000000000000000000000000000000000000000000000000000000078
|
||||
:20286000000000000000000000000000000000000000000000000000000000000000000058
|
||||
:07288000EAEAEAEA4C8428B1
|
||||
:06FFFA0016271C27242736
|
||||
:00040001FB
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,55 @@
|
|||
#!/usr/bin/env lua5.3
|
||||
|
||||
require 'std.strict'
|
||||
require 'lib' ("..")
|
||||
local _6502 = require '6502'
|
||||
|
||||
local cpu = _6502:new()
|
||||
|
||||
local mmu = { ram = {} }
|
||||
local mmu_metatable = { __index = function(t, key)
|
||||
return t.ram[key] or 0
|
||||
end,
|
||||
__newindex = function(t, k, v)
|
||||
if (k == 0x202 and v ~= nil) then
|
||||
if (v == 240) then
|
||||
print("All tests successful!")
|
||||
os.exit(0)
|
||||
end
|
||||
print(string.format("Start test %d", v))
|
||||
end
|
||||
t.ram[k] = v
|
||||
end,
|
||||
}
|
||||
|
||||
setmetatable(mmu, mmu_metatable)
|
||||
cpu.ram = mmu
|
||||
|
||||
cpu:init()
|
||||
cpu:rst()
|
||||
|
||||
local f = assert(io.open("65C02_extended_opcodes_test.bin", "rb") or
|
||||
io.open("tests/65C02_extended_opcodes_test.bin", "rb"))
|
||||
|
||||
local data = f:read("*a")
|
||||
assert(#data == 65536)
|
||||
|
||||
local i = 0
|
||||
while (i < #data) do
|
||||
cpu:writemem(i, data:byte(i+1))
|
||||
i = i + 1
|
||||
end
|
||||
|
||||
cpu.pc = 0x400
|
||||
while (true) do
|
||||
local o = cpu:readmem(cpu.pc)
|
||||
-- These print statements were useful while debugging
|
||||
-- print(string.format("Executing opcode %s [0x%X]", cpu.opname[cpu.opcodes[o][1]], o))
|
||||
local cc = cpu:step()
|
||||
-- print(string.format("%d OP $%.2X #%d 0x%.2X X 0x%.2X Y 0x%.2X A 0x%.2X SP 0x%.2X S 0x%.2X",
|
||||
-- cpu.cycles, cpu:readmem(cpu.pc), cpu:readmem(0x202),
|
||||
-- cpu.pc, cpu.X, cpu.Y, cpu.A, cpu.sp, cpu.F))
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -0,0 +1,355 @@
|
|||
; Verify decimal mode behavior
|
||||
; Written by Bruce Clark. This code is public domain.
|
||||
; see http://www.6502.org/tutorials/decimal_mode.html
|
||||
;
|
||||
; Returns:
|
||||
; ERROR = 0 if the test passed
|
||||
; ERROR = 1 if the test failed
|
||||
; modify the code at the DONE label for desired program end
|
||||
;
|
||||
; This routine requires 17 bytes of RAM -- 1 byte each for:
|
||||
; AR, CF, DA, DNVZC, ERROR, HA, HNVZC, N1, N1H, N1L, N2, N2L, NF, VF, and ZF
|
||||
; and 2 bytes for N2H
|
||||
;
|
||||
; Variables:
|
||||
; N1 and N2 are the two numbers to be added or subtracted
|
||||
; N1H, N1L, N2H, and N2L are the upper 4 bits and lower 4 bits of N1 and N2
|
||||
; DA and DNVZC are the actual accumulator and flag results in decimal mode
|
||||
; HA and HNVZC are the accumulator and flag results when N1 and N2 are
|
||||
; added or subtracted using binary arithmetic
|
||||
; AR, NF, VF, ZF, and CF are the predicted decimal mode accumulator and
|
||||
; flag results, calculated using binary arithmetic
|
||||
;
|
||||
; This program takes approximately 1 minute at 1 MHz (a few seconds more on
|
||||
; a 65C02 than a 6502 or 65816)
|
||||
;
|
||||
|
||||
; Configuration:
|
||||
cputype = 1 ; 0 = 6502, 1 = 65C02, 2 = 65C816
|
||||
vld_bcd = 0 ; 0 = allow invalid bcd, 1 = valid bcd only
|
||||
chk_a = 1 ; check accumulator
|
||||
chk_n = 0 ; check sign (negative) flag
|
||||
chk_v = 0 ; check overflow flag
|
||||
chk_z = 0 ; check zero flag
|
||||
chk_c = 0 ; check carry flag
|
||||
|
||||
end_of_test macro
|
||||
db $db ;execute 65C02 stop instruction
|
||||
endm
|
||||
|
||||
bss
|
||||
org 0
|
||||
; operands - register Y = carry in
|
||||
N1 ds 1
|
||||
N2 ds 1
|
||||
; binary result
|
||||
HA ds 1
|
||||
HNVZC ds 1
|
||||
;04
|
||||
; decimal result
|
||||
DA ds 1
|
||||
DNVZC ds 1
|
||||
; predicted results
|
||||
AR ds 1
|
||||
NF ds 1
|
||||
;08
|
||||
VF ds 1
|
||||
ZF ds 1
|
||||
CF ds 1
|
||||
ERROR ds 1
|
||||
;0C
|
||||
; workspace
|
||||
N1L ds 1
|
||||